From 5a55934d924d3fe8bd370f957717fcdd9707c729 Mon Sep 17 00:00:00 2001 From: Carolina Menezes Date: Thu, 13 Aug 2026 12:06:25 -0300 Subject: [PATCH 1/4] feat: added `defaultOpen` property to `SidebarElement` interface to control initial expansion state --- dist/index.css | 42 +- dist/index.css.map | 2 +- dist/index.mjs | 1651 ++++++++++++++------- dist/index.mjs.map | 2 +- src/components/sidebar-elements/index.tsx | 14 +- src/utils/storybook-constants.tsx | 11 + 6 files changed, 1157 insertions(+), 565 deletions(-) diff --git a/dist/index.css b/dist/index.css index 0e427d7..dd4a244 100644 --- a/dist/index.css +++ b/dist/index.css @@ -1,16 +1,16 @@ /* src/lib/markdown-renderer/styles.module.css */ -.styles_module_img { +.styles_img { max-width: 100%; padding-top: 2vh; border-radius: 4px; } -.styles_module_heading::before { +.styles_heading::before { content: ""; display: block; visibility: hidden; pointer-events: none; } -.styles_module_code { +.styles_code { background-color: unset; background-color: var(--md-code-background, #f6f8fa); border-radius: 4px; @@ -21,10 +21,10 @@ word-break: break-word; overflow-wrap: break-word; } -table .styles_module_code { +table .styles_code { word-break: normal; } -.styles_module_blockquote { +.styles_blockquote { display: grid; padding: 20px; gap: 20px; @@ -37,67 +37,67 @@ table .styles_module_code { grid-template-rows: auto; word-break: break-word; } -.styles_module_blockquote a { +.styles_blockquote a { word-break: break-word; overflow-wrap: break-word; } -.styles_module_blockquote p, -.styles_module_blockquote div { +.styles_blockquote p, +.styles_blockquote div { margin: 0px; grid-column: 2 / -1; grid-row: 1 / 1; } -.styles_module_blockquote > div { +.styles_blockquote > div { width: 100%; max-width: 100%; min-width: 0; } -.styles_module_blockquote ch-code-scroll-parent { +.styles_blockquote ch-code-scroll-parent { width: 100% !important; overflow-x: auto !important; overflow-y: hidden !important; background-color: unset !important; } -.styles_module_blockquote a { +.styles_blockquote a { color: #e31c58 !important; -webkit-text-decoration: underline 1px solid; text-decoration: underline 1px solid; } -.styles_module_blockquote a:hover { +.styles_blockquote a:hover { color: #c81e51; } -.styles_module_blockquoteIcon { +.styles_blockquoteIcon { display: inline-block; flex-shrink: 0; grid-row: 1; } -.styles_module_blockquoteInfo { +.styles_blockquoteInfo { background: #f8f7fc; border: 1px solid #ccced8; } -.styles_module_blockquoteDanger { +.styles_blockquoteDanger { background: #fdefef; border: 1px solid #dc5a41; } -.styles_module_blockquoteWarning { +.styles_blockquoteWarning { background: #fff2d4; border: 1px solid #ffb100; } -.styles_module_blockquoteWarning code { +.styles_blockquoteWarning code { background-color: #ffe5b5; } -.styles_module_blockquoteInfo code { +.styles_blockquoteInfo code { background-color: unset; } -.styles_module_blockquoteSuccess { +.styles_blockquoteSuccess { background: #f3f8f3; border: 1px solid #80be80; } -.styles_module_flexWrap { +.styles_flexWrap { flex-wrap: wrap; justify-content: space-between; } -.styles_module_svgContainer { +.styles_svgContainer { width: 100%; } /*# sourceMappingURL=index.css.map */ \ No newline at end of file diff --git a/dist/index.css.map b/dist/index.css.map index 8cb5d13..a5c9910 100644 --- a/dist/index.css.map +++ b/dist/index.css.map @@ -1 +1 @@ -{"version":3,"sources":["../src/lib/markdown-renderer/styles.module.css"],"sourcesContent":[".img {\r\n max-width: 100%;\r\n padding-top: 2vh;\r\n border-radius: 4px;\r\n}\r\n\r\n.heading::before {\r\n content: '';\r\n display: block;\r\n visibility: hidden;\r\n pointer-events: none;\r\n}\r\n\r\n.code {\r\n background-color: unset;\r\n background-color: var(--md-code-background, #f6f8fa);\r\n border-radius: 4px;\r\n color: var(--md-code-text);\r\n margin: 0;\r\n padding: 0.2em 0.4em;\r\n font-size: 0.875em;\r\n word-break: break-word;\r\n overflow-wrap: break-word;\r\n}\r\n\r\ntable .code {\r\n word-break: normal;\r\n}\r\n\r\n.blockquote {\r\n display: grid;\r\n padding: 20px;\r\n gap: 20px;\r\n width: 100%;\r\n margin: 16px 0px 24px;\r\n border-radius: 4px;\r\n align-items: center;\r\n border: 1px solid #ccced8;\r\n grid-template-columns: 20px 1fr;\r\n grid-template-rows: auto;\r\n word-break: break-word;\r\n}\r\n\r\n.blockquote a {\r\n word-break: break-word;\r\n overflow-wrap: break-word;\r\n}\r\n\r\n.blockquote p,\r\n.blockquote div {\r\n margin: 0px;\r\n grid-column: 2 / -1;\r\n grid-row: 1 / 1;\r\n}\r\n\r\n.blockquote > div {\r\n width: 100%;\r\n max-width: 100%;\r\n min-width: 0;\r\n}\r\n\r\n.blockquote ch-code-scroll-parent {\r\n width: 100% !important;\r\n overflow-x: auto !important;\r\n overflow-y: hidden !important;\r\n background-color: unset !important;\r\n}\r\n\r\n.blockquote a {\r\n color: #e31c58 !important;\r\n -webkit-text-decoration: underline 1px solid;\r\n text-decoration: underline 1px solid;\r\n}\r\n\r\n.blockquote a:hover {\r\n color: #c81e51;\r\n}\r\n\r\n.blockquoteIcon {\r\n display: inline-block;\r\n flex-shrink: 0;\r\n grid-row: 1;\r\n}\r\n\r\n.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteWarning {\r\n background: #fff2d4;\r\n border: 1px solid #ffb100;\r\n}\r\n\r\n.blockquoteWarning code {\r\n background-color: #ffe5b5;\r\n}\r\n\r\n.blockquoteInfo code {\r\n background-color: unset;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.flexWrap {\r\n flex-wrap: wrap;\r\n justify-content: space-between;\r\n}\r\n\r\n.svgContainer {\r\n width: 100%;\r\n}"],"mappings":";AAAA,CAACA;AACC,aAAW;AACX,eAAa;AACb,iBAAe;AACjB;AAEA,CAACC,qBAAO;AACN,WAAS;AACT,WAAS;AACT,cAAY;AACZ,kBAAgB;AAClB;AAEA,CAACC;AACC,oBAAkB;AAClB,oBAAkB,IAAI,oBAAoB,EAAE;AAC5C,iBAAe;AACf,SAAO,IAAI;AACX,UAAQ;AACR,WAAS,MAAM;AACf,aAAW;AACX,cAAY;AACZ,iBAAe;AACjB;AAEA,MAAM,CAZLA;AAaC,cAAY;AACd;AAEA,CAACC;AACC,WAAS;AACT,WAAS;AACT,OAAK;AACL,SAAO;AACP,UAAQ,KAAK,IAAI;AACjB,iBAAe;AACf,eAAa;AACb,UAAQ,IAAI,MAAM;AAClB,yBAAuB,KAAK;AAC5B,sBAAoB;AACpB,cAAY;AACd;AAEA,CAdCA,yBAcW;AACV,cAAY;AACZ,iBAAe;AACjB;AAEA,CAnBCA,yBAmBW;AACZ,CApBCA,yBAoBW;AACV,UAAQ;AACR,eAAa,EAAE,EAAE;AACjB,YAAU,EAAE,EAAE;AAChB;AAEA,CA1BCA,yBA0BW,EAAE;AACZ,SAAO;AACP,aAAW;AACX,aAAW;AACb;AAEA,CAhCCA,yBAgCW;AACV,SAAO;AACP,cAAY;AACZ,cAAY;AACZ,oBAAkB;AACpB;AAEA,CAvCCA,yBAuCW;AACV,SAAO;AACP,2BAAyB,UAAU,IAAI;AAC/B,mBAAiB,UAAU,IAAI;AACzC;AAEA,CA7CCA,yBA6CW,CAAC;AACX,SAAO;AACT;AAEA,CAACC;AACC,WAAS;AACT,eAAa;AACb,YAAU;AACZ;AAEA,CAACC;AACC,cAAY;AACZ,UAAQ,IAAI,MAAM;AACpB;AAEA,CAACC;AACC,cAAY;AACZ,UAAQ,IAAI,MAAM;AACpB;AAEA,CAACC;AACC,cAAY;AACZ,UAAQ,IAAI,MAAM;AACpB;AAEA,CALCA,gCAKkB;AACjB,oBAAkB;AACpB;AAEA,CAnBCF,6BAmBe;AACd,oBAAkB;AACpB;AAEA,CAACG;AACC,cAAY;AACZ,UAAQ,IAAI,MAAM;AACpB;AAEA,CAACC;AACC,aAAW;AACX,mBAAiB;AACnB;AAEA,CAACC;AACC,SAAO;AACT;","names":["img","heading","code","blockquote","blockquoteIcon","blockquoteInfo","blockquoteDanger","blockquoteWarning","blockquoteSuccess","flexWrap","svgContainer"]} \ No newline at end of file +{"version":3,"sources":["../src/lib/markdown-renderer/styles.module.css"],"sourcesContent":[".img {\n max-width: 100%;\n padding-top: 2vh;\n border-radius: 4px;\n}\n\n.heading::before {\n content: '';\n display: block;\n visibility: hidden;\n pointer-events: none;\n}\n\n.code {\n background-color: unset;\n background-color: var(--md-code-background, #f6f8fa);\n border-radius: 4px;\n color: var(--md-code-text);\n margin: 0;\n padding: 0.2em 0.4em;\n font-size: 0.875em;\n word-break: break-word;\n overflow-wrap: break-word;\n}\n\ntable .code {\n word-break: normal;\n}\n\n.blockquote {\n display: grid;\n padding: 20px;\n gap: 20px;\n width: 100%;\n margin: 16px 0px 24px;\n border-radius: 4px;\n align-items: center;\n border: 1px solid #ccced8;\n grid-template-columns: 20px 1fr;\n grid-template-rows: auto;\n word-break: break-word;\n}\n\n.blockquote a {\n word-break: break-word;\n overflow-wrap: break-word;\n}\n\n.blockquote p,\n.blockquote div {\n margin: 0px;\n grid-column: 2 / -1;\n grid-row: 1 / 1;\n}\n\n.blockquote > div {\n width: 100%;\n max-width: 100%;\n min-width: 0;\n}\n\n.blockquote ch-code-scroll-parent {\n width: 100% !important;\n overflow-x: auto !important;\n overflow-y: hidden !important;\n background-color: unset !important;\n}\n\n.blockquote a {\n color: #e31c58 !important;\n -webkit-text-decoration: underline 1px solid;\n text-decoration: underline 1px solid;\n}\n\n.blockquote a:hover {\n color: #c81e51;\n}\n\n.blockquoteIcon {\n display: inline-block;\n flex-shrink: 0;\n grid-row: 1;\n}\n\n.blockquoteInfo {\n background: #f8f7fc;\n border: 1px solid #ccced8;\n}\n\n.blockquoteDanger {\n background: #fdefef;\n border: 1px solid #dc5a41;\n}\n\n.blockquoteWarning {\n background: #fff2d4;\n border: 1px solid #ffb100;\n}\n\n.blockquoteWarning code {\n background-color: #ffe5b5;\n}\n\n.blockquoteInfo code {\n background-color: unset;\n}\n\n.blockquoteSuccess {\n background: #f3f8f3;\n border: 1px solid #80be80;\n}\n\n.flexWrap {\n flex-wrap: wrap;\n justify-content: space-between;\n}\n\n.svgContainer {\n width: 100%;\n}"],"mappings":";AAAA,CAACA;AACC,aAAW;AACX,eAAa;AACb,iBAAe;AACjB;AAEA,CAACC,cAAO;AACN,WAAS;AACT,WAAS;AACT,cAAY;AACZ,kBAAgB;AAClB;AAEA,CAACC;AACC,oBAAkB;AAClB,oBAAkB,IAAI,oBAAoB,EAAE;AAC5C,iBAAe;AACf,SAAO,IAAI;AACX,UAAQ;AACR,WAAS,MAAM;AACf,aAAW;AACX,cAAY;AACZ,iBAAe;AACjB;AAEA,MAAM,CAZLA;AAaC,cAAY;AACd;AAEA,CAACC;AACC,WAAS;AACT,WAAS;AACT,OAAK;AACL,SAAO;AACP,UAAQ,KAAK,IAAI;AACjB,iBAAe;AACf,eAAa;AACb,UAAQ,IAAI,MAAM;AAClB,yBAAuB,KAAK;AAC5B,sBAAoB;AACpB,cAAY;AACd;AAEA,CAdCA,kBAcW;AACV,cAAY;AACZ,iBAAe;AACjB;AAEA,CAnBCA,kBAmBW;AACZ,CApBCA,kBAoBW;AACV,UAAQ;AACR,eAAa,EAAE,EAAE;AACjB,YAAU,EAAE,EAAE;AAChB;AAEA,CA1BCA,kBA0BW,EAAE;AACZ,SAAO;AACP,aAAW;AACX,aAAW;AACb;AAEA,CAhCCA,kBAgCW;AACV,SAAO;AACP,cAAY;AACZ,cAAY;AACZ,oBAAkB;AACpB;AAEA,CAvCCA,kBAuCW;AACV,SAAO;AACP,2BAAyB,UAAU,IAAI;AAC/B,mBAAiB,UAAU,IAAI;AACzC;AAEA,CA7CCA,kBA6CW,CAAC;AACX,SAAO;AACT;AAEA,CAACC;AACC,WAAS;AACT,eAAa;AACb,YAAU;AACZ;AAEA,CAACC;AACC,cAAY;AACZ,UAAQ,IAAI,MAAM;AACpB;AAEA,CAACC;AACC,cAAY;AACZ,UAAQ,IAAI,MAAM;AACpB;AAEA,CAACC;AACC,cAAY;AACZ,UAAQ,IAAI,MAAM;AACpB;AAEA,CALCA,yBAKkB;AACjB,oBAAkB;AACpB;AAEA,CAnBCF,sBAmBe;AACd,oBAAkB;AACpB;AAEA,CAACG;AACC,cAAY;AACZ,UAAQ,IAAI,MAAM;AACpB;AAEA,CAACC;AACC,aAAW;AACX,mBAAiB;AACnB;AAEA,CAACC;AACC,SAAO;AACT;","names":["img","heading","code","blockquote","blockquoteIcon","blockquoteInfo","blockquoteDanger","blockquoteWarning","blockquoteSuccess","flexWrap","svgContainer"]} \ No newline at end of file diff --git a/dist/index.mjs b/dist/index.mjs index b3ba152..1b9ef0d 100644 --- a/dist/index.mjs +++ b/dist/index.mjs @@ -1081,19 +1081,7 @@ var init_cache_in_memory_esm = __esm({ } }); -// node_modules/@algolia/client-common/dist/client-common.esm.js -var client_common_esm_exports = {}; -__export(client_common_esm_exports, { - AuthMode: () => AuthMode, - addMethods: () => addMethods, - createAuth: () => createAuth, - createRetryablePromise: () => createRetryablePromise, - createWaitablePromise: () => createWaitablePromise, - destroy: () => destroy, - encode: () => encode, - shuffle: () => shuffle, - version: () => version -}); +// node_modules/@algolia/client-analytics/node_modules/@algolia/client-common/dist/client-common.esm.js function createAuth(authMode, appId, apiKey) { const credentials = { "x-algolia-api-key": apiKey, @@ -1108,37 +1096,6 @@ function createAuth(authMode, appId, apiKey) { } }; } -function createRetryablePromise(callback) { - let retriesCount = 0; - const retry = () => { - retriesCount++; - return new Promise((resolve) => { - setTimeout(() => { - resolve(callback(retry)); - }, Math.min(100 * retriesCount, 1e3)); - }); - }; - return callback(retry); -} -function createWaitablePromise(promise, wait = (_response, _requestOptions) => { - return Promise.resolve(); -}) { - return Object.assign(promise, { - wait(requestOptions) { - return createWaitablePromise(promise.then((response) => Promise.all([wait(response, requestOptions), response])).then((promiseResults) => promiseResults[1])); - } - }); -} -function shuffle(array) { - let c = array.length - 1; - for (c; c > 0; c--) { - const b = Math.floor(Math.random() * (c + 1)); - const a = array[c]; - array[c] = array[b]; - array[b] = a; - } - return array; -} function addMethods(base, methods) { if (!methods) { return base; @@ -1152,16 +1109,10 @@ function encode(format, ...args) { let i = 0; return format.replace(/%s/g, () => encodeURIComponent(args[i++])); } -var version, destroy, AuthMode; +var AuthMode; var init_client_common_esm = __esm({ - "node_modules/@algolia/client-common/dist/client-common.esm.js"() { + "node_modules/@algolia/client-analytics/node_modules/@algolia/client-common/dist/client-common.esm.js"() { "use strict"; - version = "4.20.0"; - destroy = (base) => { - return () => { - return base.transporter.requester.destroy(); - }; - }; AuthMode = { /** * If auth credentials should be in query parameters. @@ -1176,6 +1127,10 @@ var init_client_common_esm = __esm({ }); // node_modules/@algolia/requester-common/dist/requester-common.esm.js +var requester_common_esm_exports = {}; +__export(requester_common_esm_exports, { + MethodEnum: () => MethodEnum +}); var MethodEnum; var init_requester_common_esm = __esm({ "node_modules/@algolia/requester-common/dist/requester-common.esm.js"() { @@ -1398,9 +1353,9 @@ function createTransporter(options) { }; return transporter; } -function createUserAgent(version2) { +function createUserAgent(version3) { const userAgent = { - value: `Algolia for JavaScript (${version2})`, + value: `Algolia for JavaScript (${version3})`, add(options) { const addedUserAgent = `; ${options.segment}${options.version !== void 0 ? ` (${options.version})` : ""}`; if (userAgent.value.indexOf(addedUserAgent) === -1) { @@ -1495,7 +1450,7 @@ function createDeserializationError(message, response) { function createRetryError(transporterStackTrace) { return { name: "RetryError", - message: "Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.", + message: "Unreachable hosts - your application id may be incorrect. If the error persists, please reach out to the Algolia Support team: https://alg.li/support .", transporterStackTrace }; } @@ -1627,6 +1582,141 @@ var init_client_analytics_esm = __esm({ } }); +// node_modules/algoliasearch/node_modules/@algolia/client-common/dist/client-common.esm.js +var client_common_esm_exports = {}; +__export(client_common_esm_exports, { + AuthMode: () => AuthMode2, + addMethods: () => addMethods2, + createAuth: () => createAuth2, + createRetryablePromise: () => createRetryablePromise, + createWaitablePromise: () => createWaitablePromise, + destroy: () => destroy, + encode: () => encode3, + shuffle: () => shuffle, + version: () => version +}); +function createAuth2(authMode, appId, apiKey) { + const credentials = { + "x-algolia-api-key": apiKey, + "x-algolia-application-id": appId + }; + return { + headers() { + return authMode === AuthMode2.WithinHeaders ? credentials : {}; + }, + queryParameters() { + return authMode === AuthMode2.WithinQueryParameters ? credentials : {}; + } + }; +} +function createRetryablePromise(callback) { + let retriesCount = 0; + const retry = () => { + retriesCount++; + return new Promise((resolve) => { + setTimeout(() => { + resolve(callback(retry)); + }, Math.min(100 * retriesCount, 1e3)); + }); + }; + return callback(retry); +} +function createWaitablePromise(promise, wait = (_response, _requestOptions) => { + return Promise.resolve(); +}) { + return Object.assign(promise, { + wait(requestOptions) { + return createWaitablePromise(promise.then((response) => Promise.all([wait(response, requestOptions), response])).then((promiseResults) => promiseResults[1])); + } + }); +} +function shuffle(array) { + let c = array.length - 1; + for (c; c > 0; c--) { + const b = Math.floor(Math.random() * (c + 1)); + const a = array[c]; + array[c] = array[b]; + array[b] = a; + } + return array; +} +function addMethods2(base, methods) { + if (!methods) { + return base; + } + Object.keys(methods).forEach((key) => { + base[key] = methods[key](base); + }); + return base; +} +function encode3(format, ...args) { + let i = 0; + return format.replace(/%s/g, () => encodeURIComponent(args[i++])); +} +var version, destroy, AuthMode2; +var init_client_common_esm2 = __esm({ + "node_modules/algoliasearch/node_modules/@algolia/client-common/dist/client-common.esm.js"() { + "use strict"; + version = "4.24.0"; + destroy = (base) => { + return () => { + return base.transporter.requester.destroy(); + }; + }; + AuthMode2 = { + /** + * If auth credentials should be in query parameters. + */ + WithinQueryParameters: 0, + /** + * If auth credentials should be in headers. + */ + WithinHeaders: 1 + }; + } +}); + +// node_modules/@algolia/client-personalization/node_modules/@algolia/client-common/dist/client-common.esm.js +function createAuth3(authMode, appId, apiKey) { + const credentials = { + "x-algolia-api-key": apiKey, + "x-algolia-application-id": appId + }; + return { + headers() { + return authMode === AuthMode3.WithinHeaders ? credentials : {}; + }, + queryParameters() { + return authMode === AuthMode3.WithinQueryParameters ? credentials : {}; + } + }; +} +function addMethods3(base, methods) { + if (!methods) { + return base; + } + Object.keys(methods).forEach((key) => { + base[key] = methods[key](base); + }); + return base; +} +var AuthMode3; +var init_client_common_esm3 = __esm({ + "node_modules/@algolia/client-personalization/node_modules/@algolia/client-common/dist/client-common.esm.js"() { + "use strict"; + AuthMode3 = { + /** + * If auth credentials should be in query parameters. + */ + WithinQueryParameters: 0, + /** + * If auth credentials should be in headers. + */ + WithinHeaders: 1 + }; + } +}); + // node_modules/@algolia/client-personalization/dist/client-personalization.esm.js var client_personalization_esm_exports = {}; __export(client_personalization_esm_exports, { @@ -1638,12 +1728,12 @@ var createPersonalizationClient, getPersonalizationStrategy, setPersonalizationS var init_client_personalization_esm = __esm({ "node_modules/@algolia/client-personalization/dist/client-personalization.esm.js"() { "use strict"; - init_client_common_esm(); + init_client_common_esm3(); init_transporter_esm(); init_requester_common_esm(); createPersonalizationClient = (options) => { const region = options.region || "us"; - const auth = createAuth(AuthMode.WithinHeaders, options.appId, options.apiKey); + const auth = createAuth3(AuthMode3.WithinHeaders, options.appId, options.apiKey); const transporter = createTransporter({ hosts: [{ url: `personalization.${region}.algolia.com` }], ...options, @@ -1657,7 +1747,7 @@ var init_client_personalization_esm = __esm({ ...options.queryParameters } }); - return addMethods({ appId: options.appId, transporter }, options.methods); + return addMethods3({ appId: options.appId, transporter }, options.methods); }; getPersonalizationStrategy = (base) => { return (requestOptions) => { @@ -1679,6 +1769,82 @@ var init_client_personalization_esm = __esm({ } }); +// node_modules/@algolia/client-search/node_modules/@algolia/client-common/dist/client-common.esm.js +function createAuth4(authMode, appId, apiKey) { + const credentials = { + "x-algolia-api-key": apiKey, + "x-algolia-application-id": appId + }; + return { + headers() { + return authMode === AuthMode4.WithinHeaders ? credentials : {}; + }, + queryParameters() { + return authMode === AuthMode4.WithinQueryParameters ? credentials : {}; + } + }; +} +function createRetryablePromise2(callback) { + let retriesCount = 0; + const retry = () => { + retriesCount++; + return new Promise((resolve) => { + setTimeout(() => { + resolve(callback(retry)); + }, Math.min(100 * retriesCount, 1e3)); + }); + }; + return callback(retry); +} +function createWaitablePromise2(promise, wait = (_response, _requestOptions) => { + return Promise.resolve(); +}) { + return Object.assign(promise, { + wait(requestOptions) { + return createWaitablePromise2(promise.then((response) => Promise.all([wait(response, requestOptions), response])).then((promiseResults) => promiseResults[1])); + } + }); +} +function shuffle2(array) { + let c = array.length - 1; + for (c; c > 0; c--) { + const b = Math.floor(Math.random() * (c + 1)); + const a = array[c]; + array[c] = array[b]; + array[b] = a; + } + return array; +} +function addMethods4(base, methods) { + if (!methods) { + return base; + } + Object.keys(methods).forEach((key) => { + base[key] = methods[key](base); + }); + return base; +} +function encode4(format, ...args) { + let i = 0; + return format.replace(/%s/g, () => encodeURIComponent(args[i++])); +} +var AuthMode4; +var init_client_common_esm4 = __esm({ + "node_modules/@algolia/client-search/node_modules/@algolia/client-common/dist/client-common.esm.js"() { + "use strict"; + AuthMode4 = { + /** + * If auth credentials should be in query parameters. + */ + WithinQueryParameters: 0, + /** + * If auth credentials should be in headers. + */ + WithinHeaders: 1 + }; + } +}); + // node_modules/@algolia/client-search/dist/client-search.esm.js var client_search_esm_exports = {}; __export(client_search_esm_exports, { @@ -1817,17 +1983,17 @@ var createSearchClient, addApiKey, assignUserID, assignUserIDs, clearDictionaryE var init_client_search_esm = __esm({ "node_modules/@algolia/client-search/dist/client-search.esm.js"() { "use strict"; - init_client_common_esm(); + init_client_common_esm4(); init_transporter_esm(); init_requester_common_esm(); createSearchClient = (options) => { const appId = options.appId; - const auth = createAuth(options.authMode !== void 0 ? options.authMode : AuthMode.WithinHeaders, appId, options.apiKey); + const auth = createAuth4(options.authMode !== void 0 ? options.authMode : AuthMode4.WithinHeaders, appId, options.apiKey); const transporter = createTransporter({ hosts: [ { url: `${appId}-dsn.algolia.net`, accept: CallEnum.Read }, { url: `${appId}.algolia.net`, accept: CallEnum.Write } - ].concat(shuffle([ + ].concat(shuffle2([ { url: `${appId}-1.algolianet.com` }, { url: `${appId}-2.algolianet.com` }, { url: `${appId}-3.algolianet.com` } @@ -1846,8 +2012,8 @@ var init_client_search_esm = __esm({ const base = { transporter, appId, - addAlgoliaAgent(segment, version2) { - transporter.userAgent.add({ segment, version: version2 }); + addAlgoliaAgent(segment, version3) { + transporter.userAgent.add({ segment, version: version3 }); }, clearCache() { return Promise.all([ @@ -1856,7 +2022,7 @@ var init_client_search_esm = __esm({ ]).then(() => void 0); } }; - return addMethods(base, options.methods); + return addMethods4(base, options.methods); }; addApiKey = (base) => { return (acl, requestOptions) => { @@ -1866,7 +2032,7 @@ var init_client_search_esm = __esm({ ...queryParameters !== void 0 ? { queryParameters } : {} }; const wait = (response, waitRequestOptions) => { - return createRetryablePromise((retry) => { + return createRetryablePromise2((retry) => { return getApiKey(base)(response.key, waitRequestOptions).catch((apiError) => { if (apiError.status !== 404) { throw apiError; @@ -1875,7 +2041,7 @@ var init_client_search_esm = __esm({ }); }); }; - return createWaitablePromise(base.transporter.write({ + return createWaitablePromise2(base.transporter.write({ method: MethodEnum.Post, path: "1/keys", data @@ -1907,9 +2073,9 @@ var init_client_search_esm = __esm({ }; clearDictionaryEntries = (base) => { return (dictionary, requestOptions) => { - return createWaitablePromise(base.transporter.write({ + return createWaitablePromise2(base.transporter.write({ method: MethodEnum.Post, - path: encode("/1/dictionaries/%s/batch", dictionary), + path: encode4("/1/dictionaries/%s/batch", dictionary), data: { clearExistingDictionaryEntries: true, requests: { action: "addEntry", body: [] } @@ -1924,9 +2090,9 @@ var init_client_search_esm = __esm({ methods: { waitTask } }).waitTask(response.taskID, waitRequestOptions); }; - return createWaitablePromise(base.transporter.write({ + return createWaitablePromise2(base.transporter.write({ method: MethodEnum.Post, - path: encode("1/indexes/%s/operation", from), + path: encode4("1/indexes/%s/operation", from), data: { operation: "copy", destination: to @@ -1969,7 +2135,7 @@ var init_client_search_esm = __esm({ deleteApiKey = (base) => { return (apiKey, requestOptions) => { const wait = (_, waitRequestOptions) => { - return createRetryablePromise((retry) => { + return createRetryablePromise2((retry) => { return getApiKey(base)(apiKey, waitRequestOptions).then(retry).catch((apiError) => { if (apiError.status !== 404) { throw apiError; @@ -1977,9 +2143,9 @@ var init_client_search_esm = __esm({ }); }); }; - return createWaitablePromise(base.transporter.write({ + return createWaitablePromise2(base.transporter.write({ method: MethodEnum.Delete, - path: encode("1/keys/%s", apiKey) + path: encode4("1/keys/%s", apiKey) }, requestOptions), wait); }; }; @@ -1989,9 +2155,9 @@ var init_client_search_esm = __esm({ action: "deleteEntry", body: { objectID } })); - return createWaitablePromise(base.transporter.write({ + return createWaitablePromise2(base.transporter.write({ method: MethodEnum.Post, - path: encode("/1/dictionaries/%s/batch", dictionary), + path: encode4("/1/dictionaries/%s/batch", dictionary), data: { clearExistingDictionaryEntries: false, requests } }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions)); }; @@ -2007,7 +2173,7 @@ var init_client_search_esm = __esm({ return (apiKey, requestOptions) => { return base.transporter.read({ method: MethodEnum.Get, - path: encode("1/keys/%s", apiKey) + path: encode4("1/keys/%s", apiKey) }, requestOptions); }; }; @@ -2015,7 +2181,7 @@ var init_client_search_esm = __esm({ return (taskID, requestOptions) => { return base.transporter.read({ method: MethodEnum.Get, - path: encode("1/task/%s", taskID.toString()) + path: encode4("1/task/%s", taskID.toString()) }, requestOptions); }; }; @@ -2058,7 +2224,7 @@ var init_client_search_esm = __esm({ return (userID, requestOptions) => { return base.transporter.read({ method: MethodEnum.Get, - path: encode("1/clusters/mapping/%s", userID) + path: encode4("1/clusters/mapping/%s", userID) }, requestOptions); }; }; @@ -2081,7 +2247,7 @@ var init_client_search_esm = __esm({ appId: base.appId, indexName }; - return addMethods(searchIndex2, options.methods); + return addMethods4(searchIndex2, options.methods); }; }; listApiKeys = (base) => { @@ -2123,9 +2289,9 @@ var init_client_search_esm = __esm({ methods: { waitTask } }).waitTask(response.taskID, waitRequestOptions); }; - return createWaitablePromise(base.transporter.write({ + return createWaitablePromise2(base.transporter.write({ method: MethodEnum.Post, - path: encode("1/indexes/%s/operation", from), + path: encode4("1/indexes/%s/operation", from), data: { operation: "move", destination: to @@ -2142,7 +2308,7 @@ var init_client_search_esm = __esm({ }).waitTask(response.taskID[indexName], waitRequestOptions); })); }; - return createWaitablePromise(base.transporter.write({ + return createWaitablePromise2(base.transporter.write({ method: MethodEnum.Post, path: "1/indexes/*/batch", data: { @@ -2209,9 +2375,9 @@ var init_client_search_esm = __esm({ action: "addEntry", body: entry })); - return createWaitablePromise(base.transporter.write({ + return createWaitablePromise2(base.transporter.write({ method: MethodEnum.Post, - path: encode("/1/dictionaries/%s/batch", dictionary), + path: encode4("/1/dictionaries/%s/batch", dictionary), data: { clearExistingDictionaryEntries: true, requests } }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions)); }; @@ -2219,7 +2385,7 @@ var init_client_search_esm = __esm({ restoreApiKey = (base) => { return (apiKey, requestOptions) => { const wait = (_, waitRequestOptions) => { - return createRetryablePromise((retry) => { + return createRetryablePromise2((retry) => { return getApiKey(base)(apiKey, waitRequestOptions).catch((apiError) => { if (apiError.status !== 404) { throw apiError; @@ -2228,9 +2394,9 @@ var init_client_search_esm = __esm({ }); }); }; - return createWaitablePromise(base.transporter.write({ + return createWaitablePromise2(base.transporter.write({ method: MethodEnum.Post, - path: encode("1/keys/%s/restore", apiKey) + path: encode4("1/keys/%s/restore", apiKey) }, requestOptions), wait); }; }; @@ -2240,9 +2406,9 @@ var init_client_search_esm = __esm({ action: "addEntry", body: entry })); - return createWaitablePromise(base.transporter.write({ + return createWaitablePromise2(base.transporter.write({ method: MethodEnum.Post, - path: encode("/1/dictionaries/%s/batch", dictionary), + path: encode4("/1/dictionaries/%s/batch", dictionary), data: { clearExistingDictionaryEntries: false, requests } }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions)); }; @@ -2251,7 +2417,7 @@ var init_client_search_esm = __esm({ return (dictionary, query, requestOptions) => { return base.transporter.read({ method: MethodEnum.Post, - path: encode("/1/dictionaries/%s/search", dictionary), + path: encode4("/1/dictionaries/%s/search", dictionary), data: { query }, @@ -2272,7 +2438,7 @@ var init_client_search_esm = __esm({ }; setDictionarySettings = (base) => { return (settings, requestOptions) => { - return createWaitablePromise(base.transporter.write({ + return createWaitablePromise2(base.transporter.write({ method: MethodEnum.Put, path: "/1/dictionaries/*/settings", data: settings @@ -2304,21 +2470,21 @@ var init_client_search_esm = __esm({ } }); }; - const wait = (_, waitRequestOptions) => createRetryablePromise((retry) => { + const wait = (_, waitRequestOptions) => createRetryablePromise2((retry) => { return getApiKey(base)(apiKey, waitRequestOptions).then((getApiKeyResponse) => { return hasChanged(getApiKeyResponse) ? Promise.resolve() : retry(); }); }); - return createWaitablePromise(base.transporter.write({ + return createWaitablePromise2(base.transporter.write({ method: MethodEnum.Put, - path: encode("1/keys/%s", apiKey), + path: encode4("1/keys/%s", apiKey), data }, options), wait); }; }; waitAppTask = (base) => { return (taskID, requestOptions) => { - return createRetryablePromise((retry) => { + return createRetryablePromise2((retry) => { return getAppTask(base)(taskID, requestOptions).then((response) => { return response.status !== "published" ? retry() : void 0; }); @@ -2330,9 +2496,9 @@ var init_client_search_esm = __esm({ const wait = (response, waitRequestOptions) => { return waitTask(base)(response.taskID, waitRequestOptions); }; - return createWaitablePromise(base.transporter.write({ + return createWaitablePromise2(base.transporter.write({ method: MethodEnum.Post, - path: encode("1/indexes/%s/batch", base.indexName), + path: encode4("1/indexes/%s/batch", base.indexName), data: { requests } @@ -2346,7 +2512,7 @@ var init_client_search_esm = __esm({ ...requestOptions, request: (data) => base.transporter.read({ method: MethodEnum.Post, - path: encode("1/indexes/%s/browse", base.indexName), + path: encode4("1/indexes/%s/browse", base.indexName), data }, requestOptions) }); @@ -2429,7 +2595,7 @@ var init_client_search_esm = __esm({ return forEachBatch(index); }); }; - return createWaitablePromise(forEachBatch(), (chunkedBatchResponse, waitRequestOptions) => { + return createWaitablePromise2(forEachBatch(), (chunkedBatchResponse, waitRequestOptions) => { return Promise.all(chunkedBatchResponse.taskIDs.map((taskID) => { return waitTask(base)(taskID, waitRequestOptions); })); @@ -2438,9 +2604,9 @@ var init_client_search_esm = __esm({ }; clearObjects = (base) => { return (requestOptions) => { - return createWaitablePromise(base.transporter.write({ + return createWaitablePromise2(base.transporter.write({ method: MethodEnum.Post, - path: encode("1/indexes/%s/clear", base.indexName) + path: encode4("1/indexes/%s/clear", base.indexName) }, requestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); }; }; @@ -2451,9 +2617,9 @@ var init_client_search_esm = __esm({ if (forwardToReplicas) { mappedRequestOptions.queryParameters.forwardToReplicas = 1; } - return createWaitablePromise(base.transporter.write({ + return createWaitablePromise2(base.transporter.write({ method: MethodEnum.Post, - path: encode("1/indexes/%s/rules/clear", base.indexName) + path: encode4("1/indexes/%s/rules/clear", base.indexName) }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); }; }; @@ -2464,32 +2630,32 @@ var init_client_search_esm = __esm({ if (forwardToReplicas) { mappedRequestOptions.queryParameters.forwardToReplicas = 1; } - return createWaitablePromise(base.transporter.write({ + return createWaitablePromise2(base.transporter.write({ method: MethodEnum.Post, - path: encode("1/indexes/%s/synonyms/clear", base.indexName) + path: encode4("1/indexes/%s/synonyms/clear", base.indexName) }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); }; }; deleteBy = (base) => { return (filters, requestOptions) => { - return createWaitablePromise(base.transporter.write({ + return createWaitablePromise2(base.transporter.write({ method: MethodEnum.Post, - path: encode("1/indexes/%s/deleteByQuery", base.indexName), + path: encode4("1/indexes/%s/deleteByQuery", base.indexName), data: filters }, requestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); }; }; deleteIndex = (base) => { return (requestOptions) => { - return createWaitablePromise(base.transporter.write({ + return createWaitablePromise2(base.transporter.write({ method: MethodEnum.Delete, - path: encode("1/indexes/%s", base.indexName) + path: encode4("1/indexes/%s", base.indexName) }, requestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); }; }; deleteObject = (base) => { return (objectID, requestOptions) => { - return createWaitablePromise(deleteObjects(base)([objectID], requestOptions).then((response) => { + return createWaitablePromise2(deleteObjects(base)([objectID], requestOptions).then((response) => { return { taskID: response.taskIDs[0] }; }), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); }; @@ -2509,9 +2675,9 @@ var init_client_search_esm = __esm({ if (forwardToReplicas) { mappedRequestOptions.queryParameters.forwardToReplicas = 1; } - return createWaitablePromise(base.transporter.write({ + return createWaitablePromise2(base.transporter.write({ method: MethodEnum.Delete, - path: encode("1/indexes/%s/rules/%s", base.indexName, objectID) + path: encode4("1/indexes/%s/rules/%s", base.indexName, objectID) }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); }; }; @@ -2522,9 +2688,9 @@ var init_client_search_esm = __esm({ if (forwardToReplicas) { mappedRequestOptions.queryParameters.forwardToReplicas = 1; } - return createWaitablePromise(base.transporter.write({ + return createWaitablePromise2(base.transporter.write({ method: MethodEnum.Delete, - path: encode("1/indexes/%s/synonyms/%s", base.indexName, objectID) + path: encode4("1/indexes/%s/synonyms/%s", base.indexName, objectID) }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); }; }; @@ -2542,7 +2708,7 @@ var init_client_search_esm = __esm({ return (query, queryLanguages, requestOptions) => { return base.transporter.read({ method: MethodEnum.Post, - path: encode("1/answers/%s/prediction", base.indexName), + path: encode4("1/answers/%s/prediction", base.indexName), data: { query, queryLanguages @@ -2580,7 +2746,7 @@ var init_client_search_esm = __esm({ return (objectID, requestOptions) => { return base.transporter.read({ method: MethodEnum.Get, - path: encode("1/indexes/%s/%s", base.indexName, objectID) + path: encode4("1/indexes/%s/%s", base.indexName, objectID) }, requestOptions); }; }; @@ -2617,7 +2783,7 @@ var init_client_search_esm = __esm({ return (objectID, requestOptions) => { return base.transporter.read({ method: MethodEnum.Get, - path: encode("1/indexes/%s/rules/%s", base.indexName, objectID) + path: encode4("1/indexes/%s/rules/%s", base.indexName, objectID) }, requestOptions); }; }; @@ -2625,7 +2791,7 @@ var init_client_search_esm = __esm({ return (requestOptions) => { return base.transporter.read({ method: MethodEnum.Get, - path: encode("1/indexes/%s/settings", base.indexName), + path: encode4("1/indexes/%s/settings", base.indexName), data: { getVersion: 2 } @@ -2636,7 +2802,7 @@ var init_client_search_esm = __esm({ return (objectID, requestOptions) => { return base.transporter.read({ method: MethodEnum.Get, - path: encode(`1/indexes/%s/synonyms/%s`, base.indexName, objectID) + path: encode4(`1/indexes/%s/synonyms/%s`, base.indexName, objectID) }, requestOptions); }; }; @@ -2644,13 +2810,13 @@ var init_client_search_esm = __esm({ return (taskID, requestOptions) => { return base.transporter.read({ method: MethodEnum.Get, - path: encode("1/indexes/%s/task/%s", base.indexName, taskID.toString()) + path: encode4("1/indexes/%s/task/%s", base.indexName, taskID.toString()) }, requestOptions); }; }; partialUpdateObject = (base) => { return (object, requestOptions) => { - return createWaitablePromise(partialUpdateObjects(base)([object], requestOptions).then((response) => { + return createWaitablePromise2(partialUpdateObjects(base)([object], requestOptions).then((response) => { return { objectID: response.objectIDs[0], taskID: response.taskIDs[0] @@ -2669,9 +2835,9 @@ var init_client_search_esm = __esm({ return (objects, requestOptions) => { const { safe, autoGenerateObjectIDIfNotExist, batchSize, ...options } = requestOptions || {}; const operation = (from, to, type, operationRequestOptions) => { - return createWaitablePromise(base.transporter.write({ + return createWaitablePromise2(base.transporter.write({ method: MethodEnum.Post, - path: encode("1/indexes/%s/operation", from), + path: encode4("1/indexes/%s/operation", from), data: { operation: type, destination: to @@ -2709,7 +2875,7 @@ var init_client_search_esm = __esm({ taskIDs: [copyResponse.taskID, ...saveObjectsResponse.taskIDs, moveResponse.taskID] }; }); - return createWaitablePromise(result, (_, waitRequestOptions) => { + return createWaitablePromise2(result, (_, waitRequestOptions) => { return Promise.all(responses.map((response) => response.wait(waitRequestOptions))); }); }; @@ -2732,7 +2898,7 @@ var init_client_search_esm = __esm({ }; saveObject = (base) => { return (object, requestOptions) => { - return createWaitablePromise(saveObjects(base)([object], requestOptions).then((response) => { + return createWaitablePromise2(saveObjects(base)([object], requestOptions).then((response) => { return { objectID: response.objectIDs[0], taskID: response.taskIDs[0] @@ -2747,7 +2913,7 @@ var init_client_search_esm = __esm({ if (action === BatchActionEnum.UpdateObject) { for (const object of objects) { if (object.objectID === void 0) { - return createWaitablePromise(Promise.reject(createMissingObjectIDError())); + return createWaitablePromise2(Promise.reject(createMissingObjectIDError())); } } } @@ -2766,200 +2932,586 @@ var init_client_search_esm = __esm({ if (forwardToReplicas) { mappedRequestOptions.queryParameters.forwardToReplicas = 1; } - if (clearExistingRules) { - mappedRequestOptions.queryParameters.clearExistingRules = 1; + if (clearExistingRules) { + mappedRequestOptions.queryParameters.clearExistingRules = 1; + } + return createWaitablePromise2(base.transporter.write({ + method: MethodEnum.Post, + path: encode4("1/indexes/%s/rules/batch", base.indexName), + data: rules + }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); + }; + }; + saveSynonym = (base) => { + return (synonym, requestOptions) => { + return saveSynonyms(base)([synonym], requestOptions); + }; + }; + saveSynonyms = (base) => { + return (synonyms, requestOptions) => { + const { forwardToReplicas, clearExistingSynonyms, replaceExistingSynonyms, ...options } = requestOptions || {}; + const mappedRequestOptions = createMappedRequestOptions(options); + if (forwardToReplicas) { + mappedRequestOptions.queryParameters.forwardToReplicas = 1; + } + if (replaceExistingSynonyms || clearExistingSynonyms) { + mappedRequestOptions.queryParameters.replaceExistingSynonyms = 1; + } + return createWaitablePromise2(base.transporter.write({ + method: MethodEnum.Post, + path: encode4("1/indexes/%s/synonyms/batch", base.indexName), + data: synonyms + }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); + }; + }; + search = (base) => { + return (query, requestOptions) => { + return base.transporter.read({ + method: MethodEnum.Post, + path: encode4("1/indexes/%s/query", base.indexName), + data: { + query + }, + cacheable: true + }, requestOptions); + }; + }; + searchForFacetValues = (base) => { + return (facetName, facetQuery, requestOptions) => { + return base.transporter.read({ + method: MethodEnum.Post, + path: encode4("1/indexes/%s/facets/%s/query", base.indexName, facetName), + data: { + facetQuery + }, + cacheable: true + }, requestOptions); + }; + }; + searchRules = (base) => { + return (query, requestOptions) => { + return base.transporter.read({ + method: MethodEnum.Post, + path: encode4("1/indexes/%s/rules/search", base.indexName), + data: { + query + } + }, requestOptions); + }; + }; + searchSynonyms = (base) => { + return (query, requestOptions) => { + return base.transporter.read({ + method: MethodEnum.Post, + path: encode4("1/indexes/%s/synonyms/search", base.indexName), + data: { + query + } + }, requestOptions); + }; + }; + setSettings = (base) => { + return (settings, requestOptions) => { + const { forwardToReplicas, ...options } = requestOptions || {}; + const mappedRequestOptions = createMappedRequestOptions(options); + if (forwardToReplicas) { + mappedRequestOptions.queryParameters.forwardToReplicas = 1; + } + return createWaitablePromise2(base.transporter.write({ + method: MethodEnum.Put, + path: encode4("1/indexes/%s/settings", base.indexName), + data: settings + }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); + }; + }; + waitTask = (base) => { + return (taskID, requestOptions) => { + return createRetryablePromise2((retry) => { + return getTask(base)(taskID, requestOptions).then((response) => { + return response.status !== "published" ? retry() : void 0; + }); + }); + }; + }; + ApiKeyACLEnum = { + AddObject: "addObject", + Analytics: "analytics", + Browser: "browse", + DeleteIndex: "deleteIndex", + DeleteObject: "deleteObject", + EditSettings: "editSettings", + Inference: "inference", + ListIndexes: "listIndexes", + Logs: "logs", + Personalization: "personalization", + Recommendation: "recommendation", + Search: "search", + SeeUnretrievableAttributes: "seeUnretrievableAttributes", + Settings: "settings", + Usage: "usage" + }; + BatchActionEnum = { + AddObject: "addObject", + UpdateObject: "updateObject", + PartialUpdateObject: "partialUpdateObject", + PartialUpdateObjectNoCreate: "partialUpdateObjectNoCreate", + DeleteObject: "deleteObject", + DeleteIndex: "delete", + ClearIndex: "clear" + }; + ScopeEnum = { + Settings: "settings", + Synonyms: "synonyms", + Rules: "rules" + }; + StrategyEnum = { + None: "none", + StopIfEnoughMatches: "stopIfEnoughMatches" + }; + SynonymEnum = { + Synonym: "synonym", + OneWaySynonym: "oneWaySynonym", + AltCorrection1: "altCorrection1", + AltCorrection2: "altCorrection2", + Placeholder: "placeholder" + }; + } +}); + +// node_modules/@algolia/logger-common/dist/logger-common.esm.js +var logger_common_esm_exports = {}; +__export(logger_common_esm_exports, { + LogLevelEnum: () => LogLevelEnum, + createNullLogger: () => createNullLogger +}); +function createNullLogger() { + return { + debug(_message, _args) { + return Promise.resolve(); + }, + info(_message, _args) { + return Promise.resolve(); + }, + error(_message, _args) { + return Promise.resolve(); + } + }; +} +var LogLevelEnum; +var init_logger_common_esm = __esm({ + "node_modules/@algolia/logger-common/dist/logger-common.esm.js"() { + "use strict"; + LogLevelEnum = { + Debug: 1, + Info: 2, + Error: 3 + }; + } +}); + +// node_modules/@algolia/recommend/node_modules/@algolia/client-common/dist/client-common.esm.js +var client_common_esm_exports2 = {}; +__export(client_common_esm_exports2, { + AuthMode: () => AuthMode5, + addMethods: () => addMethods5, + createAuth: () => createAuth5, + createRetryablePromise: () => createRetryablePromise3, + createWaitablePromise: () => createWaitablePromise3, + destroy: () => destroy2, + encode: () => encode5, + shuffle: () => shuffle3, + version: () => version2 +}); +function createAuth5(authMode, appId, apiKey) { + const credentials = { + "x-algolia-api-key": apiKey, + "x-algolia-application-id": appId + }; + return { + headers() { + return authMode === AuthMode5.WithinHeaders ? credentials : {}; + }, + queryParameters() { + return authMode === AuthMode5.WithinQueryParameters ? credentials : {}; + } + }; +} +function createRetryablePromise3(callback) { + let retriesCount = 0; + const retry = () => { + retriesCount++; + return new Promise((resolve) => { + setTimeout(() => { + resolve(callback(retry)); + }, Math.min(100 * retriesCount, 1e3)); + }); + }; + return callback(retry); +} +function createWaitablePromise3(promise, wait = (_response, _requestOptions) => { + return Promise.resolve(); +}) { + return Object.assign(promise, { + wait(requestOptions) { + return createWaitablePromise3(promise.then((response) => Promise.all([wait(response, requestOptions), response])).then((promiseResults) => promiseResults[1])); + } + }); +} +function shuffle3(array) { + let c = array.length - 1; + for (c; c > 0; c--) { + const b = Math.floor(Math.random() * (c + 1)); + const a = array[c]; + array[c] = array[b]; + array[b] = a; + } + return array; +} +function addMethods5(base, methods) { + if (!methods) { + return base; + } + Object.keys(methods).forEach((key) => { + base[key] = methods[key](base); + }); + return base; +} +function encode5(format, ...args) { + let i = 0; + return format.replace(/%s/g, () => encodeURIComponent(args[i++])); +} +var version2, destroy2, AuthMode5; +var init_client_common_esm5 = __esm({ + "node_modules/@algolia/recommend/node_modules/@algolia/client-common/dist/client-common.esm.js"() { + "use strict"; + version2 = "4.24.0"; + destroy2 = (base) => { + return () => { + return base.transporter.requester.destroy(); + }; + }; + AuthMode5 = { + /** + * If auth credentials should be in query parameters. + */ + WithinQueryParameters: 0, + /** + * If auth credentials should be in headers. + */ + WithinHeaders: 1 + }; + } +}); + +// node_modules/@algolia/recommend/node_modules/@algolia/requester-node-http/dist/requester-node-http.esm.js +var requester_node_http_esm_exports = {}; +__export(requester_node_http_esm_exports, { + createNodeHttpRequester: () => createNodeHttpRequester +}); +import * as http from "http"; +import { Agent } from "http"; +import * as https from "https"; +import { Agent as Agent$1 } from "https"; +import { parse as parse2 } from "url"; +function createNodeHttpRequester({ agent: userGlobalAgent, httpAgent: userHttpAgent, httpsAgent: userHttpsAgent, requesterOptions = {} } = {}) { + const httpAgent = userHttpAgent || userGlobalAgent || defaultHttpAgent; + const httpsAgent = userHttpsAgent || userGlobalAgent || defaultHttpsAgent; + return { + send(request) { + return new Promise((resolve) => { + const url = parse2(request.url); + const path = url.query === null ? url.pathname : `${url.pathname}?${url.query}`; + const options = { + ...requesterOptions, + agent: url.protocol === "https:" ? httpsAgent : httpAgent, + hostname: url.hostname, + path, + method: request.method, + headers: { + ...requesterOptions && requesterOptions.headers ? requesterOptions.headers : {}, + ...request.headers + }, + ...url.port !== void 0 ? { port: url.port || "" } : {} + }; + const req = (url.protocol === "https:" ? https : http).request(options, (response) => { + let contentBuffers = []; + response.on("data", (chunk) => { + contentBuffers = contentBuffers.concat(chunk); + }); + response.on("end", () => { + clearTimeout(connectTimeout); + clearTimeout(responseTimeout); + resolve({ + status: response.statusCode || 0, + content: Buffer.concat(contentBuffers).toString(), + isTimedOut: false + }); + }); + }); + const createTimeout = (timeout, content) => { + return setTimeout(() => { + req.abort(); + resolve({ + status: 0, + content, + isTimedOut: true + }); + }, timeout * 1e3); + }; + const connectTimeout = createTimeout(request.connectTimeout, "Connection timeout"); + let responseTimeout; + req.on("error", (error) => { + clearTimeout(connectTimeout); + clearTimeout(responseTimeout); + resolve({ status: 0, content: error.message, isTimedOut: false }); + }); + req.once("response", () => { + clearTimeout(connectTimeout); + responseTimeout = createTimeout(request.responseTimeout, "Socket timeout"); + }); + if (request.data !== void 0) { + req.write(request.data); + } + req.end(); + }); + }, + destroy() { + httpAgent.destroy(); + httpsAgent.destroy(); + return Promise.resolve(); + } + }; +} +var agentOptions, defaultHttpAgent, defaultHttpsAgent; +var init_requester_node_http_esm = __esm({ + "node_modules/@algolia/recommend/node_modules/@algolia/requester-node-http/dist/requester-node-http.esm.js"() { + "use strict"; + agentOptions = { keepAlive: true }; + defaultHttpAgent = new Agent(agentOptions); + defaultHttpsAgent = new Agent$1(agentOptions); + } +}); + +// node_modules/@algolia/recommend/dist/recommend.cjs.js +var require_recommend_cjs = __commonJS({ + "node_modules/@algolia/recommend/dist/recommend.cjs.js"(exports, module) { + "use strict"; + var cacheCommon = (init_cache_common_esm(), __toCommonJS(cache_common_esm_exports)); + var cacheInMemory = (init_cache_in_memory_esm(), __toCommonJS(cache_in_memory_esm_exports)); + var clientCommon = (init_client_common_esm5(), __toCommonJS(client_common_esm_exports2)); + var loggerCommon = (init_logger_common_esm(), __toCommonJS(logger_common_esm_exports)); + var requesterNodeHttp = (init_requester_node_http_esm(), __toCommonJS(requester_node_http_esm_exports)); + var transporter = (init_transporter_esm(), __toCommonJS(transporter_esm_exports)); + var requesterCommon = (init_requester_common_esm(), __toCommonJS(requester_common_esm_exports)); + var createRecommendClient = (options) => { + const appId = options.appId; + const auth = clientCommon.createAuth(options.authMode !== void 0 ? options.authMode : clientCommon.AuthMode.WithinHeaders, appId, options.apiKey); + const transporter$1 = transporter.createTransporter({ + hosts: [ + { url: `${appId}-dsn.algolia.net`, accept: transporter.CallEnum.Read }, + { url: `${appId}.algolia.net`, accept: transporter.CallEnum.Write } + ].concat(clientCommon.shuffle([ + { url: `${appId}-1.algolianet.com` }, + { url: `${appId}-2.algolianet.com` }, + { url: `${appId}-3.algolianet.com` } + ])), + ...options, + headers: { + ...auth.headers(), + ...{ "content-type": "application/x-www-form-urlencoded" }, + ...options.headers + }, + queryParameters: { + ...auth.queryParameters(), + ...options.queryParameters + } + }); + const base = { + transporter: transporter$1, + appId, + addAlgoliaAgent(segment, version3) { + transporter$1.userAgent.add({ segment, version: version3 }); + }, + clearCache() { + return Promise.all([ + transporter$1.requestsCache.clear(), + transporter$1.responsesCache.clear() + ]).then(() => void 0); } - return createWaitablePromise(base.transporter.write({ - method: MethodEnum.Post, - path: encode("1/indexes/%s/rules/batch", base.indexName), - data: rules - }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); }; + return clientCommon.addMethods(base, options.methods); }; - saveSynonym = (base) => { - return (synonym, requestOptions) => { - return saveSynonyms(base)([synonym], requestOptions); + var getRecommendations = (base) => { + return (queries, requestOptions) => { + const requests = queries.map((query) => ({ + ...query, + // The `threshold` param is required by the endpoint to make it easier + // to provide a default value later, so we default it in the client + // so that users don't have to provide a value. + threshold: query.threshold || 0 + })); + return base.transporter.read({ + method: requesterCommon.MethodEnum.Post, + path: "1/indexes/*/recommendations", + data: { + requests + }, + cacheable: true + }, requestOptions); }; }; - saveSynonyms = (base) => { - return (synonyms, requestOptions) => { - const { forwardToReplicas, clearExistingSynonyms, replaceExistingSynonyms, ...options } = requestOptions || {}; - const mappedRequestOptions = createMappedRequestOptions(options); - if (forwardToReplicas) { - mappedRequestOptions.queryParameters.forwardToReplicas = 1; - } - if (replaceExistingSynonyms || clearExistingSynonyms) { - mappedRequestOptions.queryParameters.replaceExistingSynonyms = 1; - } - return createWaitablePromise(base.transporter.write({ - method: MethodEnum.Post, - path: encode("1/indexes/%s/synonyms/batch", base.indexName), - data: synonyms - }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); + var getFrequentlyBoughtTogether = (base) => { + return (queries, requestOptions) => { + return getRecommendations(base)(queries.map((query) => ({ + ...query, + fallbackParameters: {}, + model: "bought-together" + })), requestOptions); }; }; - search = (base) => { - return (query, requestOptions) => { + var getRelatedProducts = (base) => { + return (queries, requestOptions) => { + return getRecommendations(base)(queries.map((query) => ({ + ...query, + model: "related-products" + })), requestOptions); + }; + }; + var getTrendingFacets = (base) => { + return (queries, requestOptions) => { + const requests = queries.map((query) => ({ + ...query, + model: "trending-facets", + // The `threshold` param is required by the endpoint to make it easier + // to provide a default value later, so we default it in the client + // so that users don't have to provide a value. + threshold: query.threshold || 0 + })); return base.transporter.read({ - method: MethodEnum.Post, - path: encode("1/indexes/%s/query", base.indexName), + method: requesterCommon.MethodEnum.Post, + path: "1/indexes/*/recommendations", data: { - query + requests }, cacheable: true }, requestOptions); }; }; - searchForFacetValues = (base) => { - return (facetName, facetQuery, requestOptions) => { + var getTrendingItems = (base) => { + return (queries, requestOptions) => { + const requests = queries.map((query) => ({ + ...query, + model: "trending-items", + // The `threshold` param is required by the endpoint to make it easier + // to provide a default value later, so we default it in the client + // so that users don't have to provide a value. + threshold: query.threshold || 0 + })); return base.transporter.read({ - method: MethodEnum.Post, - path: encode("1/indexes/%s/facets/%s/query", base.indexName, facetName), + method: requesterCommon.MethodEnum.Post, + path: "1/indexes/*/recommendations", data: { - facetQuery + requests }, cacheable: true }, requestOptions); }; }; - searchRules = (base) => { - return (query, requestOptions) => { - return base.transporter.read({ - method: MethodEnum.Post, - path: encode("1/indexes/%s/rules/search", base.indexName), - data: { - query - } - }, requestOptions); + var getLookingSimilar = (base) => { + return (queries, requestOptions) => { + return getRecommendations(base)(queries.map((query) => ({ + ...query, + model: "looking-similar" + })), requestOptions); }; }; - searchSynonyms = (base) => { - return (query, requestOptions) => { + var getRecommendedForYou = (base) => { + return (queries, requestOptions) => { + const requests = queries.map((query) => ({ + ...query, + model: "recommended-for-you", + threshold: query.threshold || 0 + })); return base.transporter.read({ - method: MethodEnum.Post, - path: encode("1/indexes/%s/synonyms/search", base.indexName), + method: requesterCommon.MethodEnum.Post, + path: "1/indexes/*/recommendations", data: { - query - } + requests + }, + cacheable: true }, requestOptions); }; }; - setSettings = (base) => { - return (settings, requestOptions) => { - const { forwardToReplicas, ...options } = requestOptions || {}; - const mappedRequestOptions = createMappedRequestOptions(options); - if (forwardToReplicas) { - mappedRequestOptions.queryParameters.forwardToReplicas = 1; - } - return createWaitablePromise(base.transporter.write({ - method: MethodEnum.Put, - path: encode("1/indexes/%s/settings", base.indexName), - data: settings - }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); - }; - }; - waitTask = (base) => { - return (taskID, requestOptions) => { - return createRetryablePromise((retry) => { - return getTask(base)(taskID, requestOptions).then((response) => { - return response.status !== "published" ? retry() : void 0; - }); - }); + function recommend(appId, apiKey, options) { + const commonOptions = { + appId, + apiKey, + timeouts: { + connect: 2, + read: 5, + write: 30 + }, + requester: requesterNodeHttp.createNodeHttpRequester(), + logger: loggerCommon.createNullLogger(), + responsesCache: cacheCommon.createNullCache(), + requestsCache: cacheCommon.createNullCache(), + hostsCache: cacheInMemory.createInMemoryCache(), + userAgent: transporter.createUserAgent(clientCommon.version).add({ segment: "Recommend", version: clientCommon.version }).add({ segment: "Node.js", version: process.versions.node }) }; - }; - ApiKeyACLEnum = { - AddObject: "addObject", - Analytics: "analytics", - Browser: "browse", - DeleteIndex: "deleteIndex", - DeleteObject: "deleteObject", - EditSettings: "editSettings", - Inference: "inference", - ListIndexes: "listIndexes", - Logs: "logs", - Personalization: "personalization", - Recommendation: "recommendation", - Search: "search", - SeeUnretrievableAttributes: "seeUnretrievableAttributes", - Settings: "settings", - Usage: "usage" - }; - BatchActionEnum = { - AddObject: "addObject", - UpdateObject: "updateObject", - PartialUpdateObject: "partialUpdateObject", - PartialUpdateObjectNoCreate: "partialUpdateObjectNoCreate", - DeleteObject: "deleteObject", - DeleteIndex: "delete", - ClearIndex: "clear" - }; - ScopeEnum = { - Settings: "settings", - Synonyms: "synonyms", - Rules: "rules" - }; - StrategyEnum = { - None: "none", - StopIfEnoughMatches: "stopIfEnoughMatches" - }; - SynonymEnum = { - Synonym: "synonym", - OneWaySynonym: "oneWaySynonym", - AltCorrection1: "altCorrection1", - AltCorrection2: "altCorrection2", - Placeholder: "placeholder" - }; + return createRecommendClient({ + ...commonOptions, + ...options, + methods: { + destroy: clientCommon.destroy, + getFrequentlyBoughtTogether, + getRecommendations, + getRelatedProducts, + getTrendingFacets, + getTrendingItems, + getLookingSimilar, + getRecommendedForYou + } + }); + } + recommend.version = clientCommon.version; + recommend.getFrequentlyBoughtTogether = getFrequentlyBoughtTogether; + recommend.getRecommendations = getRecommendations; + recommend.getRelatedProducts = getRelatedProducts; + recommend.getTrendingFacets = getTrendingFacets; + recommend.getTrendingItems = getTrendingItems; + recommend.getLookingSimilar = getLookingSimilar; + recommend.getRecommendedForYou = getRecommendedForYou; + module.exports = recommend; } }); -// node_modules/@algolia/logger-common/dist/logger-common.esm.js -var logger_common_esm_exports = {}; -__export(logger_common_esm_exports, { - LogLevelEnum: () => LogLevelEnum, - createNullLogger: () => createNullLogger -}); -function createNullLogger() { - return { - debug(_message, _args) { - return Promise.resolve(); - }, - info(_message, _args) { - return Promise.resolve(); - }, - error(_message, _args) { - return Promise.resolve(); - } - }; -} -var LogLevelEnum; -var init_logger_common_esm = __esm({ - "node_modules/@algolia/logger-common/dist/logger-common.esm.js"() { +// node_modules/@algolia/recommend/index.js +var require_recommend = __commonJS({ + "node_modules/@algolia/recommend/index.js"(exports, module) { "use strict"; - LogLevelEnum = { - Debug: 1, - Info: 2, - Error: 3 - }; + var recommend = require_recommend_cjs(); + module.exports = recommend; + module.exports.default = recommend; } }); -// node_modules/@algolia/requester-node-http/dist/requester-node-http.esm.js -var requester_node_http_esm_exports = {}; -__export(requester_node_http_esm_exports, { - createNodeHttpRequester: () => createNodeHttpRequester +// node_modules/algoliasearch/node_modules/@algolia/requester-node-http/dist/requester-node-http.esm.js +var requester_node_http_esm_exports2 = {}; +__export(requester_node_http_esm_exports2, { + createNodeHttpRequester: () => createNodeHttpRequester2 }); -import * as http from "http"; -import { Agent } from "http"; -import * as https from "https"; -import { Agent as Agent$1 } from "https"; -import { parse as parse2 } from "url"; -function createNodeHttpRequester({ agent: userGlobalAgent, httpAgent: userHttpAgent, httpsAgent: userHttpsAgent, requesterOptions = {} } = {}) { - const httpAgent = userHttpAgent || userGlobalAgent || defaultHttpAgent; - const httpsAgent = userHttpsAgent || userGlobalAgent || defaultHttpsAgent; +import * as http2 from "http"; +import { Agent as Agent2 } from "http"; +import * as https2 from "https"; +import { Agent as Agent$12 } from "https"; +import { parse as parse3 } from "url"; +function createNodeHttpRequester2({ agent: userGlobalAgent, httpAgent: userHttpAgent, httpsAgent: userHttpsAgent, requesterOptions = {} } = {}) { + const httpAgent = userHttpAgent || userGlobalAgent || defaultHttpAgent2; + const httpsAgent = userHttpsAgent || userGlobalAgent || defaultHttpsAgent2; return { send(request) { return new Promise((resolve) => { - const url = parse2(request.url); + const url = parse3(request.url); const path = url.query === null ? url.pathname : `${url.pathname}?${url.query}`; const options = { ...requesterOptions, @@ -2973,7 +3525,7 @@ function createNodeHttpRequester({ agent: userGlobalAgent, httpAgent: userHttpAg }, ...url.port !== void 0 ? { port: url.port || "" } : {} }; - const req = (url.protocol === "https:" ? https : http).request(options, (response) => { + const req = (url.protocol === "https:" ? https2 : http2).request(options, (response) => { let contentBuffers = []; response.on("data", (chunk) => { contentBuffers = contentBuffers.concat(chunk); @@ -3022,13 +3574,13 @@ function createNodeHttpRequester({ agent: userGlobalAgent, httpAgent: userHttpAg } }; } -var agentOptions, defaultHttpAgent, defaultHttpsAgent; -var init_requester_node_http_esm = __esm({ - "node_modules/@algolia/requester-node-http/dist/requester-node-http.esm.js"() { +var agentOptions2, defaultHttpAgent2, defaultHttpsAgent2; +var init_requester_node_http_esm2 = __esm({ + "node_modules/algoliasearch/node_modules/@algolia/requester-node-http/dist/requester-node-http.esm.js"() { "use strict"; - agentOptions = { keepAlive: true }; - defaultHttpAgent = new Agent(agentOptions); - defaultHttpsAgent = new Agent$1(agentOptions); + agentOptions2 = { keepAlive: true }; + defaultHttpAgent2 = new Agent2(agentOptions2); + defaultHttpsAgent2 = new Agent$12(agentOptions2); } }); @@ -3039,11 +3591,12 @@ var require_algoliasearch_cjs = __commonJS({ var cacheCommon = (init_cache_common_esm(), __toCommonJS(cache_common_esm_exports)); var cacheInMemory = (init_cache_in_memory_esm(), __toCommonJS(cache_in_memory_esm_exports)); var clientAnalytics = (init_client_analytics_esm(), __toCommonJS(client_analytics_esm_exports)); - var clientCommon = (init_client_common_esm(), __toCommonJS(client_common_esm_exports)); + var clientCommon = (init_client_common_esm2(), __toCommonJS(client_common_esm_exports)); var clientPersonalization = (init_client_personalization_esm(), __toCommonJS(client_personalization_esm_exports)); var clientSearch = (init_client_search_esm(), __toCommonJS(client_search_esm_exports)); var loggerCommon = (init_logger_common_esm(), __toCommonJS(logger_common_esm_exports)); - var requesterNodeHttp = (init_requester_node_http_esm(), __toCommonJS(requester_node_http_esm_exports)); + var recommend = require_recommend(); + var requesterNodeHttp = (init_requester_node_http_esm2(), __toCommonJS(requester_node_http_esm_exports2)); var transporter = (init_transporter_esm(), __toCommonJS(transporter_esm_exports)); function algoliasearch2(appId, apiKey, options) { const commonOptions = { @@ -3181,7 +3734,14 @@ var require_algoliasearch_cjs = __commonJS({ initRecommendation: () => (clientOptions) => { searchClientOptions.logger.info("The `initRecommendation` method is deprecated. Use `initPersonalization` instead."); return initPersonalization()(clientOptions); - } + }, + getRecommendations: recommend.getRecommendations, + getFrequentlyBoughtTogether: recommend.getFrequentlyBoughtTogether, + getLookingSimilar: recommend.getLookingSimilar, + getRecommendedForYou: recommend.getRecommendedForYou, + getRelatedProducts: recommend.getRelatedProducts, + getTrendingFacets: recommend.getTrendingFacets, + getTrendingItems: recommend.getTrendingItems } }); } @@ -5907,18 +6467,18 @@ var mermaidInit = () => { var mermaidInit_default = mermaidInit; // src/lib/markdown-renderer/styles.module.css -var styles_module_default = { - img: "styles_module_img", - heading: "styles_module_heading", - code: "styles_module_code", - blockquote: "styles_module_blockquote", - blockquoteIcon: "styles_module_blockquoteIcon", - blockquoteInfo: "styles_module_blockquoteInfo", - blockquoteDanger: "styles_module_blockquoteDanger", - blockquoteWarning: "styles_module_blockquoteWarning", - blockquoteSuccess: "styles_module_blockquoteSuccess", - flexWrap: "styles_module_flexWrap", - svgContainer: "styles_module_svgContainer" +var styles_default5 = { + img: "styles_img", + heading: "styles_heading", + code: "styles_code", + blockquote: "styles_blockquote", + blockquoteIcon: "styles_blockquoteIcon", + blockquoteInfo: "styles_blockquoteInfo", + blockquoteDanger: "styles_blockquoteDanger", + blockquoteWarning: "styles_blockquoteWarning", + blockquoteSuccess: "styles_blockquoteSuccess", + flexWrap: "styles_flexWrap", + svgContainer: "styles_svgContainer" }; // src/messages/en.json @@ -6071,7 +6631,7 @@ var ObservableHeading = ({ onLeaveView(slug, entry, y); setY(entry.boundingClientRect.y); }, - children: level === 2 ? /* @__PURE__ */ jsx9("h2", { id: slug, className: styles_module_default.heading, ...headingProps }) : /* @__PURE__ */ jsx9("h3", { id: slug, className: styles_module_default.heading, ...headingProps }) + children: level === 2 ? /* @__PURE__ */ jsx9("h2", { id: slug, className: styles_default5.heading, ...headingProps }) : /* @__PURE__ */ jsx9("h3", { id: slug, className: styles_default5.heading, ...headingProps }) } ); }; @@ -6084,7 +6644,7 @@ var calloutColors = { var CalloutIcon = ({ type }) => /* @__PURE__ */ jsxs6( "svg", { - className: styles_module_default.blockquoteIcon, + className: styles_default5.blockquoteIcon, width: "20", height: "20", viewBox: "0 0 20 20", @@ -6116,7 +6676,7 @@ var Callout = ({ node, icon: icon4, ...props }) => { return /* @__PURE__ */ jsxs6( "blockquote", { - className: `${styles_module_default.blockquote} ${blockquoteType === "info" ? styles_module_default.blockquoteInfo : blockquoteType === "danger" ? styles_module_default.blockquoteDanger : blockquoteType === "warning" ? styles_module_default.blockquoteWarning : blockquoteType === "success" ? styles_module_default.blockquoteSuccess : ""}`, + className: `${styles_default5.blockquote} ${blockquoteType === "info" ? styles_default5.blockquoteInfo : blockquoteType === "danger" ? styles_default5.blockquoteDanger : blockquoteType === "warning" ? styles_default5.blockquoteWarning : blockquoteType === "success" ? styles_default5.blockquoteSuccess : ""}`, children: [ /* @__PURE__ */ jsx9(CalloutIcon, { type: blockquoteType }), /* @__PURE__ */ jsx9("div", { ...props }) @@ -6147,7 +6707,7 @@ var MermaidDiagram = ({ node, ...props }) => { if (ref.current) resizeObserver.observe(ref.current); }, []); - return /* @__PURE__ */ jsx9(Box5, { ref, className: styles_module_default.svgContainer, children: /* @__PURE__ */ jsx9( + return /* @__PURE__ */ jsx9(Box5, { ref, className: styles_default5.svgContainer, children: /* @__PURE__ */ jsx9( UncontrolledReactSVGPanZoom, { ref: viewerRef, @@ -6173,7 +6733,7 @@ var ImageComponent = ({ node, ...props }) => { // eslint-disable-next-line @next/next/no-img-element /* @__PURE__ */ jsx9("img", { src: props.src, alt: props.alt, onError: () => setSrcHasError(true) }) ); - const errorMessage = /* @__PURE__ */ jsxs6("blockquote", { className: `${styles_module_default.blockquote} ${styles_module_default.blockquoteWarning}`, children: [ + const errorMessage = /* @__PURE__ */ jsxs6("blockquote", { className: `${styles_default5.blockquote} ${styles_default5.blockquoteWarning}`, children: [ messages[locale]["image.error_loading"], " ", props.src @@ -6193,7 +6753,7 @@ var components_default = { WhatsNextCard: whats_next_card_default, YoutubeFrame: youtube_frame_default, Steps: steps_default, - Flex: ({ node, ...props }) => /* @__PURE__ */ jsx9(Flex4, { className: styles_module_default.flexWrap, ...props }), + Flex: ({ node, ...props }) => /* @__PURE__ */ jsx9(Flex4, { className: styles_default5.flexWrap, ...props }), table: ({ node, ...props }) => /* @__PURE__ */ jsx9("table", { ...props }), td: ({ node, ...props }) => /* @__PURE__ */ jsx9("td", { ...props }), img: ImageComponent, @@ -6204,12 +6764,12 @@ var components_default = { return /* @__PURE__ */ jsx9(Callout, { ...props }); }, code: ({ node, ...props }) => { - return /* @__PURE__ */ jsx9("code", { className: styles_module_default.code, ...props }); + return /* @__PURE__ */ jsx9("code", { className: styles_default5.code, ...props }); }, pre: ({ ...props }) => { if (props.className && props.className === "mermaid") return /* @__PURE__ */ jsx9(MermaidDiagram, { ...props }); - return /* @__PURE__ */ jsx9("pre", { className: styles_module_default.pre, ...props }); + return /* @__PURE__ */ jsx9("pre", { className: styles_default5.pre, ...props }); }, h2: ({ node, ...props }) => { const { activeItem, setActiveItem, goToPreviousItem } = useContext(LibraryContext); @@ -6328,7 +6888,7 @@ var subItemsContainer = { ml: "16px", borderLeft: "1px solid #E7E9EE" }; -var styles_default5 = { tocTitle, itemsContainer, item, subItemsContainer, headings }; +var styles_default6 = { tocTitle, itemsContainer, item, subItemsContainer, headings }; // src/lib/table-of-contents/TableOfContents.tsx import { jsx as jsx11, jsxs as jsxs7 } from "react/jsx-runtime"; @@ -6372,13 +6932,13 @@ var TableOfContents = ({ headingList, children }) => { subItem: level === 1 ? "" : slug })); }, - children: /* @__PURE__ */ jsx11(Text2, { sx: styles_default5.item(level, active), children: title7 }) + children: /* @__PURE__ */ jsx11(Text2, { sx: styles_default6.item(level, active), children: title7 }) } ); }; - return /* @__PURE__ */ jsxs7(Box7, { sx: styles_default5.itemsContainer, "data-cy": "table-of-contents", children: [ - headingItems.length > 0 && /* @__PURE__ */ jsx11(Text2, { sx: styles_default5.tocTitle, children: "ON THIS PAGE" }), - /* @__PURE__ */ jsx11(Box7, { sx: styles_default5.headings, children: headingItems.map((item2) => /* @__PURE__ */ jsxs7(Box7, { children: [ + return /* @__PURE__ */ jsxs7(Box7, { sx: styles_default6.itemsContainer, "data-cy": "table-of-contents", children: [ + headingItems.length > 0 && /* @__PURE__ */ jsx11(Text2, { sx: styles_default6.tocTitle, children: "ON THIS PAGE" }), + /* @__PURE__ */ jsx11(Box7, { sx: styles_default6.headings, children: headingItems.map((item2) => /* @__PURE__ */ jsxs7(Box7, { children: [ /* @__PURE__ */ jsx11( Item, { @@ -6393,7 +6953,7 @@ var TableOfContents = ({ headingList, children }) => { { duration: 300, height: item2.slug === activeItem.item ? "auto" : 0, - children: /* @__PURE__ */ jsx11(Box7, { sx: styles_default5.subItemsContainer, children: item2.children.map((subItem) => /* @__PURE__ */ jsx11( + children: /* @__PURE__ */ jsx11(Box7, { sx: styles_default6.subItemsContainer, children: item2.children.map((subItem) => /* @__PURE__ */ jsx11( Item, { title: subItem.title, @@ -6412,7 +6972,7 @@ var TableOfContents = ({ headingList, children }) => { var TableOfContents_default = TableOfContents; // src/lib/sidebar/index.tsx -import { useEffect as useEffect8, useRef as useRef4, useState as useState7, useContext as useContext6 } from "react"; +import { useEffect as useEffect9, useRef as useRef4, useState as useState7, useContext as useContext6 } from "react"; import { Flex as Flex10, Text as Text6, Box as Box12 } from "@vtex/brand-ui"; import Link5 from "next/link.js"; @@ -6534,7 +7094,7 @@ var iconTooltip = { "none !important" ] }; -var styles_default6 = { +var styles_default7 = { sidebar, sidebarIcons, sidebarIconsContainer, @@ -6655,7 +7215,7 @@ var labelStyle = (documentationSection) => { return labelDocumentationContainer; return labelContibutorsContainer; }; -var styles_default7 = { tooltipContainer, caret, labelStyle }; +var styles_default8 = { tooltipContainer, caret, labelStyle }; // src/components/icons/caret.tsx import { Icon as Icon3 } from "@vtex/brand-ui"; @@ -6716,7 +7276,7 @@ var Tooltip = ({ children, label: label2, placement, sx, isCard }) => { visible && (isCard ?? true) && /* @__PURE__ */ jsxs8( Flex5, { - sx: styles_default7.tooltipContainer( + sx: styles_default8.tooltipContainer( sx, placement || "top", boxWidth, @@ -6725,8 +7285,8 @@ var Tooltip = ({ children, label: label2, placement, sx, isCard }) => { boxOffsetTop ), children: [ - /* @__PURE__ */ jsx13(caret_default, { sx: styles_default7.caret(placement || "top") }), - /* @__PURE__ */ jsx13(Box8, { sx: styles_default7.labelStyle(isCard ?? false), children: label2 }) + /* @__PURE__ */ jsx13(caret_default, { sx: styles_default8.caret(placement || "top") }), + /* @__PURE__ */ jsx13(Box8, { sx: styles_default8.labelStyle(isCard ?? false), children: label2 }) ] } ) @@ -6970,7 +7530,7 @@ var previewMode = { mr: "10px" } }; -var styles_default8 = { +var styles_default9 = { sidebarContainer, sidebarContainerHamburger, sidebarContainerBox, @@ -7017,7 +7577,7 @@ var closeIcon = { width: "12px", ml: "4px" }; -var styles_default9 = { +var styles_default10 = { container: container3, text, closeIcon @@ -7058,7 +7618,7 @@ var categoryStyle = (method, active, sx) => { background: "#F8E3E3" }; const categoryStyle2 = active ? { - ...styles_default9.container, + ...styles_default10.container, ...categoryColors, ...sx, ":hover": { @@ -7072,7 +7632,7 @@ var categoryStyle = (method, active, sx) => { } } } : { - ...styles_default9.container, + ...styles_default10.container, color: categoryColors.color, ...sx }; @@ -7087,7 +7647,7 @@ var categoryText = (method, origin) => { var closeCategoryStyle = (method) => { const categoryColors = methodsColors[method]; const categoryStyle2 = { - ...styles_default9.closeIcon, + ...styles_default10.closeIcon, rect: { fill: "transparent" }, @@ -7146,7 +7706,7 @@ var MethodCategory = ({ sx }) => { return /* @__PURE__ */ jsxs10(Flex6, { className: "method-category", sx: categoryStyle(method, active, sx), children: [ - /* @__PURE__ */ jsx15(Text3, { sx: styles_default9.text, children: categoryText(method, origin) }), + /* @__PURE__ */ jsx15(Text3, { sx: styles_default10.text, children: categoryText(method, origin) }), origin === "filter" && active && /* @__PURE__ */ jsx15( close_filter_icon_default, { @@ -7191,7 +7751,7 @@ var clear = { color: "#000711" } }; -var styles_default10 = { +var styles_default11 = { container: container4, text: text2, category, @@ -7237,7 +7797,7 @@ var SectionFilter = ({ children: /* @__PURE__ */ jsx16( method_category_default, { - sx: styles_default10.category, + sx: styles_default11.category, active: methodFilter.active, method: methodFilter.name, origin: "filter" @@ -7247,8 +7807,8 @@ var SectionFilter = ({ `filter-category-${methodFilter.name}` ); }; - return /* @__PURE__ */ jsxs11(Box9, { sx: styles_default10.container, children: [ - /* @__PURE__ */ jsx16(Text4, { sx: styles_default10.text, children: messages[locale]["api_reference_sidebar_filter"] }), + return /* @__PURE__ */ jsxs11(Box9, { sx: styles_default11.container, children: [ + /* @__PURE__ */ jsx16(Text4, { sx: styles_default11.text, children: messages[locale]["api_reference_sidebar_filter"] }), /* @__PURE__ */ jsxs11(Flex7, { children: [ methodFilterList.map((methodFilter) => /* @__PURE__ */ jsx16( MethodButton, @@ -7257,7 +7817,7 @@ var SectionFilter = ({ }, `filter-category-${methodFilter.name}` )), - activeFilters.length > 1 && /* @__PURE__ */ jsx16(Text4, { onClick: () => setFilter(null), sx: styles_default10.clear, children: messages[locale]["api_reference_sidebar_filter_clear"] }) + activeFilters.length > 1 && /* @__PURE__ */ jsx16(Text4, { onClick: () => setFilter(null), sx: styles_default11.clear, children: messages[locale]["api_reference_sidebar_filter_clear"] }) ] }) ] }); }; @@ -7265,7 +7825,7 @@ var sidebar_section_filter_default = SectionFilter; // src/components/sidebar-elements/index.tsx import { useRouter as useRouter3 } from "next/router.js"; -import { Fragment as Fragment2, useContext as useContext4 } from "react"; +import { Fragment as Fragment2, useContext as useContext4, useEffect as useEffect8 } from "react"; import { Box as Box10, Flex as Flex8, @@ -7329,7 +7889,7 @@ var sectionDivider2 = { var methodBox = { mr: "10px" }; -var styles_default11 = { +var styles_default12 = { elementContainer, elementText, elementActive, @@ -7354,13 +7914,13 @@ var textStyle = (active, icon4) => { const ml = icon4 ? "4px" : "16px"; if (active) { const textStyleActive = { - ...styles_default11.elementActive, + ...styles_default12.elementActive, ml }; return textStyleActive; } const textStyle2 = { - ...styles_default11.elementText, + ...styles_default12.elementText, ml }; return textStyle2; @@ -7374,10 +7934,19 @@ var SidebarElements = ({ slugPrefix, items, subItemLevel }) => { activeSidebarElement, sidebarElementStatus, toggleSidebarElementStatus, + openSidebarElement, sidebarDataMaster, locale } = useContext4(LibraryContext); const router = useRouter3(); + useEffect8(() => { + items?.forEach((item2) => { + const slug = typeof item2.slug === "string" ? item2.slug : item2.slug[locale]; + if (item2.defaultOpen && !sidebarElementStatus.has(slug)) { + openSidebarElement(slug); + } + }); + }, [items]); const handleClick = (e, pathSuffix, slug) => { e.preventDefault(); const hasEndpointQuery = router.query.endpoint; @@ -7427,14 +7996,14 @@ var SidebarElements = ({ slugPrefix, items, subItemLevel }) => { const isExpandable = children.length > 0; const pathSuffix = method ? `#${method.toLowerCase()}-${endpoint}` : ""; const activeItem = method ? `${localizedSlug}${pathSuffix}` : localizedSlug; - return /* @__PURE__ */ jsx17(Box10, { sx: styles_default11.elementContainer, children: /* @__PURE__ */ jsxs12(Flex8, { sx: styleByLevelNormal(subItemLevel, isExpandable || false), children: [ + return /* @__PURE__ */ jsx17(Box10, { sx: styles_default12.elementContainer, children: /* @__PURE__ */ jsxs12(Flex8, { sx: styleByLevelNormal(subItemLevel, isExpandable || false), children: [ isExpandable && /* @__PURE__ */ jsx17( Button2, { "aria-label": sidebarElementStatus.has(localizedSlug) && sidebarElementStatus.get(localizedSlug) ? "Collapse category" : "Expand category", size: "regular", variant: "tertiary", - sx: sidebarElementStatus.has(localizedSlug) && sidebarElementStatus.get(localizedSlug) ? styles_default11.arrowIconActive : styles_default11.arrowIcon, + sx: sidebarElementStatus.has(localizedSlug) && sidebarElementStatus.get(localizedSlug) ? styles_default12.arrowIconActive : styles_default12.arrowIcon, icon: () => /* @__PURE__ */ jsx17( IconCaret2, { @@ -7466,7 +8035,7 @@ var SidebarElements = ({ slugPrefix, items, subItemLevel }) => { method && /* @__PURE__ */ jsx17( method_category_default, { - sx: styles_default11.methodBox, + sx: styles_default12.methodBox, active: activeSidebarElement === activeItem, origin: "sidebar", method @@ -7479,7 +8048,7 @@ var SidebarElements = ({ slugPrefix, items, subItemLevel }) => { sidebarDataMaster, localizedSlug, "link" - ) ? /* @__PURE__ */ jsxs12(Link4, { href: localizedSlug, target: "_blank", sx: styles_default11.elementText, children: [ + ) ? /* @__PURE__ */ jsxs12(Link4, { href: localizedSlug, target: "_blank", sx: styles_default12.elementText, children: [ /* @__PURE__ */ jsx17(IconExternalLink, { size: 16, sx: { marginRight: "10px" } }), localizedName ] }) : /* @__PURE__ */ jsxs12( @@ -7496,7 +8065,7 @@ var SidebarElements = ({ slugPrefix, items, subItemLevel }) => { method && /* @__PURE__ */ jsx17( method_category_default, { - sx: styles_default11.methodBox, + sx: styles_default12.methodBox, active: activeSidebarElement === localizedSlug, origin: "sidebar", method @@ -7527,7 +8096,7 @@ var SidebarElements = ({ slugPrefix, items, subItemLevel }) => { return /* @__PURE__ */ jsxs12(Fragment2, { children: [ /* @__PURE__ */ jsx17(ElementRoot, { ...item2, slug }), /* @__PURE__ */ jsx17(Box10, { children: /* @__PURE__ */ jsx17(ElementChildren, { ...item2, slug }) }), - subItemLevel == 0 ? /* @__PURE__ */ jsx17(Box10, { sx: styles_default11.sectionDivider, children: /* @__PURE__ */ jsx17("hr", {}) }) : null + subItemLevel == 0 ? /* @__PURE__ */ jsx17(Box10, { sx: styles_default12.sectionDivider, children: /* @__PURE__ */ jsx17("hr", {}) }) : null ] }, String(key)); }) }); }; @@ -7708,18 +8277,18 @@ var SidebarSection = ({ Box11, { className: sidebarSectionHidden ? "active" : "", - sx: styles_default8.sidebarContainerHamburger, + sx: styles_default9.sidebarContainerHamburger, children: /* @__PURE__ */ jsxs15( Box11, { className: sidebarSectionHidden ? "sidebarHide" : "", - sx: styles_default8.sidebarContainerBoxHamburger, + sx: styles_default9.sidebarContainerBoxHamburger, children: [ - /* @__PURE__ */ jsxs15(Flex9, { sx: styles_default8.sidebarContainerTitle, children: [ + /* @__PURE__ */ jsxs15(Flex9, { sx: styles_default9.sidebarContainerTitle, children: [ /* @__PURE__ */ jsx21( Button3, { - sx: styles_default8.arrowButton, + sx: styles_default9.arrowButton, "aria-label": "Go back", size: "small", variant: "tertiary", @@ -7730,15 +8299,15 @@ var SidebarSection = ({ } ), DocIcon && /* @__PURE__ */ jsx21(DocIcon, {}), - /* @__PURE__ */ jsx21(Text5, { sx: styles_default8.sidebarTitle, children: localizedSectionTitle }) + /* @__PURE__ */ jsx21(Text5, { sx: styles_default9.sidebarTitle, children: localizedSectionTitle }) ] }), - /* @__PURE__ */ jsxs15(Box11, { sx: styles_default8.sidebarContainerBody, children: [ - /* @__PURE__ */ jsxs15(Flex9, { sx: styles_default8.searchBox, children: [ - /* @__PURE__ */ jsx21(search_icon_default, { sx: styles_default8.searchIcon }), + /* @__PURE__ */ jsxs15(Box11, { sx: styles_default9.sidebarContainerBody, children: [ + /* @__PURE__ */ jsxs15(Flex9, { sx: styles_default9.searchBox, children: [ + /* @__PURE__ */ jsx21(search_icon_default, { sx: styles_default9.searchIcon }), /* @__PURE__ */ jsx21( "input", { - style: styles_default8.searchInput, + style: styles_default9.searchInput, className: "searchComponent", type: "text", placeholder: messages[locale]["sidebar_search.placeholder"] + " " + localizedSectionTitle, @@ -7755,7 +8324,7 @@ var SidebarSection = ({ } ) ] }), - /* @__PURE__ */ jsx21(Box11, { sx: styles_default8.sidebarContainerBody, children: /* @__PURE__ */ jsx21( + /* @__PURE__ */ jsx21(Box11, { sx: styles_default9.sidebarContainerBody, children: /* @__PURE__ */ jsx21( sidebar_elements_default, { items: filteredResult, @@ -7771,17 +8340,17 @@ var SidebarSection = ({ Box11, { className: sidebarSectionHidden ? "active" : "", - sx: styles_default8.sidebarContainer, + sx: styles_default9.sidebarContainer, children: [ /* @__PURE__ */ jsxs15( Box11, { className: sidebarSectionHidden ? "sidebarHide" : "", - sx: styles_default8.sidebarContainerBox, + sx: styles_default9.sidebarContainerBox, "data-cy": "sidebar-section", children: [ - /* @__PURE__ */ jsxs15(Box11, { sx: styles_default8.sidebarContainerHeader, children: [ - isEditorPreview && /* @__PURE__ */ jsxs15(Text5, { sx: styles_default8.previewMode, children: [ + /* @__PURE__ */ jsxs15(Box11, { sx: styles_default9.sidebarContainerHeader, children: [ + isEditorPreview && /* @__PURE__ */ jsxs15(Text5, { sx: styles_default9.previewMode, children: [ /* @__PURE__ */ jsxs15( "svg", { @@ -7811,13 +8380,13 @@ var SidebarSection = ({ ), "PREVIEW MODE" ] }), - /* @__PURE__ */ jsx21(Text5, { sx: styles_default8.sidebarTitle, children: localizedSectionTitle }), - /* @__PURE__ */ jsxs15(Flex9, { sx: styles_default8.searchBox, children: [ - /* @__PURE__ */ jsx21(search_icon_default, { sx: styles_default8.searchIcon }), + /* @__PURE__ */ jsx21(Text5, { sx: styles_default9.sidebarTitle, children: localizedSectionTitle }), + /* @__PURE__ */ jsxs15(Flex9, { sx: styles_default9.searchBox, children: [ + /* @__PURE__ */ jsx21(search_icon_default, { sx: styles_default9.searchIcon }), /* @__PURE__ */ jsx21( "input", { - style: styles_default8.searchInput, + style: styles_default9.searchInput, className: "searchComponent", type: "text", placeholder: messages[locale]["sidebar_search.placeholder"] + " " + localizedSectionTitle, @@ -7834,7 +8403,7 @@ var SidebarSection = ({ setMethodFilter: setMethodFilterList } ), - /* @__PURE__ */ jsx21(Box11, { sx: styles_default8.sidebarContainerBody, children: /* @__PURE__ */ jsx21( + /* @__PURE__ */ jsx21(Box11, { sx: styles_default9.sidebarContainerBody, children: /* @__PURE__ */ jsx21( sidebar_elements_default, { items: filteredResult, @@ -7849,7 +8418,7 @@ var SidebarSection = ({ Flex9, { className: "toggleIcon", - sx: sidebarSectionHidden ? styles_default8.toggleIconBoxActive : styles_default8.toggleIconBox, + sx: sidebarSectionHidden ? styles_default9.toggleIconBoxActive : styles_default9.toggleIconBox, children: /* @__PURE__ */ jsx21( sidebar_toggle_icon_default, { @@ -7858,7 +8427,7 @@ var SidebarSection = ({ (sidebarSectionHidden2) => !sidebarSectionHidden2 ); }, - sx: sidebarSectionHidden ? styles_default8.toggleIcon : {} + sx: sidebarSectionHidden ? styles_default9.toggleIcon : {} } ) } @@ -7891,7 +8460,7 @@ var Sidebar = ({ parentsArray = [] }) => { parentsArray, context }); - useEffect8(() => { + useEffect9(() => { let timer = void 0; if (sidebarSectionContent.categories?.length > 0) timer = setTimeout( @@ -7908,7 +8477,7 @@ var Sidebar = ({ parentsArray = [] }) => { const [iconTooltip2, setIconTooltip] = useState7(false); const [tooltipLabel, setTooltipLabel] = useState7(sectionElement.title); const titleRef = useRef4(); - useEffect8(() => { + useEffect9(() => { const resizeObserver = new MutationObserver(function(entries) { const target = entries[0].target; if (target.offsetWidth < target.scrollWidth) @@ -7929,7 +8498,7 @@ var Sidebar = ({ parentsArray = [] }) => { resizeObserver.disconnect; }; }, [titleRef.current]); - return /* @__PURE__ */ jsx22(Box12, { sx: styles_default6.linkContainer, children: /* @__PURE__ */ jsx22( + return /* @__PURE__ */ jsx22(Box12, { sx: styles_default7.linkContainer, children: /* @__PURE__ */ jsx22( tooltip_default, { sx: iconTooltipStyle(iconTooltip2), @@ -7951,12 +8520,12 @@ var Sidebar = ({ parentsArray = [] }) => { children: /* @__PURE__ */ jsxs16( Flex10, { - sx: activeSectionName === sectionElement.id ? styles_default6.iconBoxActive : styles_default6.iconBox, + sx: activeSectionName === sectionElement.id ? styles_default7.iconBoxActive : styles_default7.iconBox, children: [ /* @__PURE__ */ jsx22( sectionElement.Icon, { - sx: activeSectionName === sectionElement.id ? styles_default6.iconActive : styles_default6.icon + sx: activeSectionName === sectionElement.id ? styles_default7.iconActive : styles_default7.icon } ), /* @__PURE__ */ jsx22( @@ -7964,7 +8533,7 @@ var Sidebar = ({ parentsArray = [] }) => { { className: expandDelayStatus ? "iconDescriptionExpanded" : "", ref: titleRef, - sx: styles_default6.iconTitle, + sx: styles_default7.iconTitle, children: sectionElement.title } ) @@ -7976,16 +8545,16 @@ var Sidebar = ({ parentsArray = [] }) => { } ) }); }; - return /* @__PURE__ */ jsxs16(Flex10, { sx: styles_default6.sidebar, children: [ + return /* @__PURE__ */ jsxs16(Flex10, { sx: styles_default7.sidebar, children: [ /* @__PURE__ */ jsx22( Flex10, { className: expandDelayStatus ? "iconContainerExpanded" : "", - sx: styles_default6.sidebarIcons, + sx: styles_default7.sidebarIcons, children: sidebarSections.map((section, id) => { return /* @__PURE__ */ jsxs16(Fragment4, { children: [ - id > 0 && /* @__PURE__ */ jsx22(Box12, { sx: styles_default6.sectionDivider, children: /* @__PURE__ */ jsx22("hr", {}) }, `${id}-divider`), - /* @__PURE__ */ jsx22(Flex10, { sx: styles_default6.sidebarIconsContainer, children: section.map((element) => /* @__PURE__ */ createElement( + id > 0 && /* @__PURE__ */ jsx22(Box12, { sx: styles_default7.sectionDivider, children: /* @__PURE__ */ jsx22("hr", {}) }, `${id}-divider`), + /* @__PURE__ */ jsx22(Flex10, { sx: styles_default7.sidebarIconsContainer, children: section.map((element) => /* @__PURE__ */ createElement( SideBarIcon, { ...element, @@ -8075,7 +8644,7 @@ var arrowIconActive2 = { ...arrowIcon2, color: "#D71D55" }; -var styles_default12 = { +var styles_default13 = { menuContainer, cardContainer, sideMenuContainer, @@ -8128,7 +8697,7 @@ var description2 = { lineHeight: "18px", color: "muted.1" }; -var styles_default13 = { +var styles_default14 = { cardContainer: cardContainer2, description: description2, title: title2, @@ -8140,7 +8709,7 @@ var cardContainer3 = (containerType) => { const containerWidth = containerType === "dropdown" ? ["308px", "442px", "444px", "480px"] : containerType === "mobile" ? "100%" : ["324px", "544px", "544px", "544px", "544px", "720px", "1400px"]; const textWidth = containerType === "dropdown" ? ["276px", "410px", "412px", "432px"] : containerType === "mobile" ? "90%" : ["276px", "496px", "496px", "496px", "496px", "672px", "1352px"]; const cardContainer5 = { - ...styles_default13.cardContainer, + ...styles_default14.cardContainer, width: containerWidth, ".title, .description": { width: textWidth @@ -8151,7 +8720,7 @@ var cardContainer3 = (containerType) => { var titleContainer2 = (containerType) => { const marginBottom = containerType === "dropdown" ? ["5px", "5px", "5px", "1px"] : "8px"; const titleContainer3 = { - ...styles_default13.titleContainer, + ...styles_default14.titleContainer, marginBottom }; return titleContainer3; @@ -8168,7 +8737,7 @@ var cardTitle = (containerType) => { lineHeight: "22px" }; const cardTitle2 = { - ...styles_default13.title, + ...styles_default14.title, ...titleAttributes }; return cardTitle2; @@ -8189,7 +8758,7 @@ var DocumentationCard = ({ /* @__PURE__ */ jsx23(Icon68, { sx: { color: "#4A596B" }, size: 24 }), /* @__PURE__ */ jsx23(Text7, { className: "title", sx: cardTitle(containerType), children: title7 }) ] }), - /* @__PURE__ */ jsx23(Text7, { className: "description", sx: styles_default13.description, children: description6 }) + /* @__PURE__ */ jsx23(Text7, { className: "description", sx: styles_default14.description, children: description6 }) ] }) }) }); }; var documentation_card_default = DocumentationCard; @@ -8362,7 +8931,7 @@ var hitContentHighlighted = { width: "auto", background: "#FFE0EF" }; -var styles_default14 = { +var styles_default15 = { resultsOuterContainer, resultsInnerContainer, resultsBox, @@ -8407,12 +8976,12 @@ var SearchBoxComponent = ({ changeFocus(false); } }; - return /* @__PURE__ */ jsxs18(Flex12, { sx: styles_default14.searchContainer, onClick: handleClick, children: [ - /* @__PURE__ */ jsx24(search_icon_default, { sx: styles_default14.searchIcon }), + return /* @__PURE__ */ jsxs18(Flex12, { sx: styles_default15.searchContainer, onClick: handleClick, children: [ + /* @__PURE__ */ jsx24(search_icon_default, { sx: styles_default15.searchIcon }), /* @__PURE__ */ jsx24( "input", { - style: styles_default14.searchInput, + style: styles_default15.searchInput, ref: inputRef, className: "searchComponent", type: "text", @@ -9134,7 +9703,7 @@ var getTitleById = (sections, id) => { }; // src/components/search-input/customHighlight.tsx -import { useEffect as useEffect9, useRef as useRef6, useState as useState8 } from "react"; +import { useEffect as useEffect10, useRef as useRef6, useState as useState8 } from "react"; import { connectHighlight } from "react-instantsearch-dom"; import { Flex as Flex13, Text as Text8 } from "@vtex/brand-ui"; import { jsx as jsx37 } from "react/jsx-runtime"; @@ -9165,7 +9734,7 @@ var Highlight = ({ ellipsedContent.push(part); }); } - useEffect9(() => { + useEffect10(() => { if (searchPage) return; const titleSize = textContainer.current ? textContainer.current.offsetWidth / 7.75 : 40; @@ -9224,9 +9793,9 @@ var Highlight = ({ { ref: textContainer, className: "hit-content-title", - sx: styles_default14.hitContentContainer, - children: /* @__PURE__ */ jsx37(Text8, { sx: searchPage ? styles_default14.hitContent : styles_default14.hitContentSmall, children: (searchPage ? ellipsedContent : parsedHit).map( - (part, index) => part.isHighlighted ? /* @__PURE__ */ jsx37("mark", { style: styles_default14.hitContentHighlighted, children: part.value }, index) : part.value + sx: styles_default15.hitContentContainer, + children: /* @__PURE__ */ jsx37(Text8, { sx: searchPage ? styles_default15.hitContent : styles_default15.hitContentSmall, children: (searchPage ? ellipsedContent : parsedHit).map( + (part, index) => part.isHighlighted ? /* @__PURE__ */ jsx37("mark", { style: styles_default15.hitContentHighlighted, children: part.value }, index) : part.value ) }) } ); @@ -9248,17 +9817,17 @@ var Hit2 = ({ hit, insights }) => { eventName: "Search in top bar", objectIDs: [hit.objectID] }), - children: /* @__PURE__ */ jsxs31(Box14, { sx: styles_default14.hitBox, children: [ + children: /* @__PURE__ */ jsxs31(Box14, { sx: styles_default15.hitBox, children: [ /* @__PURE__ */ jsxs31(Flex14, { children: [ - DocIcon && /* @__PURE__ */ jsx38(DocIcon, { className: "hit-icon", sx: styles_default14.hitIcon }), - /* @__PURE__ */ jsx38(Text9, { sx: styles_default14.hitContent, children: /* @__PURE__ */ jsx38(customHighlight_default, { hit, attribute: "content" }) }) + DocIcon && /* @__PURE__ */ jsx38(DocIcon, { className: "hit-icon", sx: styles_default15.hitIcon }), + /* @__PURE__ */ jsx38(Text9, { sx: styles_default15.hitContent, children: /* @__PURE__ */ jsx38(customHighlight_default, { hit, attribute: "content" }) }) ] }), - /* @__PURE__ */ jsxs31(Flex14, { sx: styles_default14.alignCenter, children: [ - /* @__PURE__ */ jsx38(Text9, { sx: styles_default14.hitBreadCrumbIn, children: `In ${hit.doctype}` }), - breadcrumbsList.length > 0 && /* @__PURE__ */ jsx38(IconCaret3, { direction: "right", sx: styles_default14.hitBreadCrumbArrow }), - breadcrumbsList.map((filter, index) => /* @__PURE__ */ jsxs31(Flex14, { sx: styles_default14.alignCenter, children: [ - /* @__PURE__ */ jsx38(Text9, { sx: styles_default14.hitBreadCrumb, children: filter }), - index < breadcrumbsList.length - 1 ? /* @__PURE__ */ jsx38(IconCaret3, { direction: "right", sx: styles_default14.hitBreadCrumbArrow }) : null + /* @__PURE__ */ jsxs31(Flex14, { sx: styles_default15.alignCenter, children: [ + /* @__PURE__ */ jsx38(Text9, { sx: styles_default15.hitBreadCrumbIn, children: `In ${hit.doctype}` }), + breadcrumbsList.length > 0 && /* @__PURE__ */ jsx38(IconCaret3, { direction: "right", sx: styles_default15.hitBreadCrumbArrow }), + breadcrumbsList.map((filter, index) => /* @__PURE__ */ jsxs31(Flex14, { sx: styles_default15.alignCenter, children: [ + /* @__PURE__ */ jsx38(Text9, { sx: styles_default15.hitBreadCrumb, children: filter }), + index < breadcrumbsList.length - 1 ? /* @__PURE__ */ jsx38(IconCaret3, { direction: "right", sx: styles_default15.hitBreadCrumbArrow }) : null ] }, `${filter}${index}`)) ] }) ] }) @@ -9284,8 +9853,8 @@ var HitsBox = connectStateResults( __position: searchResults.hitsPerPage * searchResults.page + index + 1 }; }; - return /* @__PURE__ */ jsx38(Fragment5, { children: searchResults && /* @__PURE__ */ jsx38(Box14, { sx: styles_default14.resultsOuterContainer, children: /* @__PURE__ */ jsxs31(Box14, { sx: styles_default14.resultsInnerContainer, children: [ - /* @__PURE__ */ jsx38(Box14, { sx: searchResults.hits.length && styles_default14.resultsBox, children: searchResults.hits.map( + return /* @__PURE__ */ jsx38(Fragment5, { children: searchResults && /* @__PURE__ */ jsx38(Box14, { sx: styles_default15.resultsOuterContainer, children: /* @__PURE__ */ jsxs31(Box14, { sx: styles_default15.resultsInnerContainer, children: [ + /* @__PURE__ */ jsx38(Box14, { sx: searchResults.hits.length && styles_default15.resultsBox, children: searchResults.hits.map( (searchResult, index) => index < 7 && /* @__PURE__ */ jsx38( Box14, { @@ -9303,12 +9872,12 @@ var HitsBox = connectStateResults( searchResults.hits.length > 7 && /* @__PURE__ */ jsx38( Box14, { - sx: styles_default14.seeAll, + sx: styles_default15.seeAll, onClick: () => seeAllSubmit(searchState.query || ""), children: /* @__PURE__ */ jsx38(Text9, { children: messages[locale]["search_input.see_all"] || "See all results" }) } ), - !searchResults.hits.length && /* @__PURE__ */ jsx38(Flex14, { sx: styles_default14.noResults, children: /* @__PURE__ */ jsx38(Text9, { children: messages[locale]["search_input.empty"] || "No results found. Try different search terms." }) }) + !searchResults.hits.length && /* @__PURE__ */ jsx38(Flex14, { sx: styles_default15.noResults, children: /* @__PURE__ */ jsx38(Text9, { children: messages[locale]["search_input.empty"] || "No results found. Try different search terms." }) }) ] }) }) }); } ); @@ -9861,15 +10430,15 @@ var HamburgerMenu = ({ parentsArray = [] }) => { return isDoc; }; updateOpenPage({ parentsArray, context }); - return /* @__PURE__ */ jsx40(Header.ActionButton, { children: /* @__PURE__ */ jsx40(VtexHamburgerMenu, { sx: styles_default12.hamburgerContainer, children: /* @__PURE__ */ jsx40(VtexHamburgerMenu.Menu, { sx: styles_default12.innerHambugerContainer, children: /* @__PURE__ */ jsxs33(Box16, { sx: styles_default12.menuContainer, children: [ - /* @__PURE__ */ jsxs33(Box16, { sx: styles_default12.cardContainer, children: [ - /* @__PURE__ */ jsx40(Box16, { sx: styles_default12.hamburgerSearchContainer, children: /* @__PURE__ */ jsx40(SearchInput, {}) }), + return /* @__PURE__ */ jsx40(Header.ActionButton, { children: /* @__PURE__ */ jsx40(VtexHamburgerMenu, { sx: styles_default13.hamburgerContainer, children: /* @__PURE__ */ jsx40(VtexHamburgerMenu.Menu, { sx: styles_default13.innerHambugerContainer, children: /* @__PURE__ */ jsxs33(Box16, { sx: styles_default13.menuContainer, children: [ + /* @__PURE__ */ jsxs33(Box16, { sx: styles_default13.cardContainer, children: [ + /* @__PURE__ */ jsx40(Box16, { sx: styles_default13.hamburgerSearchContainer, children: /* @__PURE__ */ jsx40(SearchInput, {}) }), hamburguerSections.map((section, id) => /* @__PURE__ */ jsx40( Box16, { - sx: id > 0 ? styles_default12.updatesContainer : styles_default12.documentationContainer, + sx: id > 0 ? styles_default13.updatesContainer : styles_default13.documentationContainer, "data-cy": "dropdown-menu-first-section", - children: section.map((card) => /* @__PURE__ */ jsxs33(Box16, { sx: styles_default12.innerCardContainer, children: [ + children: section.map((card) => /* @__PURE__ */ jsxs33(Box16, { sx: styles_default13.innerCardContainer, children: [ /* @__PURE__ */ jsx40(documentation_card_default, { containerType: "mobile", ...card }), isDocument(sidebarDataMaster, card.id) ? /* @__PURE__ */ jsx40( Button4, @@ -9878,7 +10447,7 @@ var HamburgerMenu = ({ parentsArray = [] }) => { size: "regular", variant: "tertiary", icon: () => /* @__PURE__ */ jsx40(IconCaret4, { direction: "right", size: 32 }), - sx: activeSectionName === card.id && !sidebarSectionHidden ? styles_default12.arrowIconActive : styles_default12.arrowIcon, + sx: activeSectionName === card.id && !sidebarSectionHidden ? styles_default13.arrowIconActive : styles_default13.arrowIcon, onClick: () => { setActiveSectionName(card.id); setSidebarSectionHidden(false); @@ -9894,7 +10463,7 @@ var HamburgerMenu = ({ parentsArray = [] }) => { Box16, { className: sidebarSectionHidden || !activeSectionName ? "" : "menuHidden", - sx: styles_default12.sideMenuContainer, + sx: styles_default13.sideMenuContainer, children: activeSectionName ? /* @__PURE__ */ jsx40( sidebar_section_default, { @@ -10031,7 +10600,7 @@ var LikeSelectedIcon = (props) => /* @__PURE__ */ jsxs36( var like_selected_icon_default = LikeSelectedIcon; // src/lib/feedback-section/index.tsx -import { useContext as useContext11, useEffect as useEffect10, useState as useState11 } from "react"; +import { useContext as useContext11, useEffect as useEffect11, useState as useState11 } from "react"; // src/lib/feedback-section/styles.ts var container5 = ({ small } = {}) => ({ @@ -10113,7 +10682,7 @@ var editIcon = { mr: "4px" }; var shareButton = { // ml: ['0', 'auto'], }; -var styles_default15 = { +var styles_default16 = { disabled, container: container5, question, @@ -10285,7 +10854,7 @@ var innerContainer = { var divider = { borderBottom: "1px solid #E7E9EE" }; -var styles_default16 = { +var styles_default17 = { container: container6, button: button2, shareIcon, @@ -10367,38 +10936,38 @@ var ShareButton = ({ url, sx = {} }) => { console.error("Error copying link to clipboard:", error); } }; - return /* @__PURE__ */ jsxs39(Flex15, { sx: { ...styles_default16.container, ...sx }, ref: containerRef, children: [ + return /* @__PURE__ */ jsxs39(Flex15, { sx: { ...styles_default17.container, ...sx }, ref: containerRef, children: [ /* @__PURE__ */ jsxs39( Button5, { - sx: styles_default16.button, + sx: styles_default17.button, variant: "tertiary", onClick: () => setIsOpen(!isOpen), children: [ - /* @__PURE__ */ jsx50(share_icon_default, { sx: styles_default16.shareIcon, size: 24 }), + /* @__PURE__ */ jsx50(share_icon_default, { sx: styles_default17.shareIcon, size: 24 }), " Share" ] } ), - isOpen && /* @__PURE__ */ jsxs39(Flex15, { sx: styles_default16.innerContainer, children: [ - /* @__PURE__ */ jsxs39(Flex15, { sx: styles_default16.innerButton, onClick: handleCopyLink, children: [ + isOpen && /* @__PURE__ */ jsxs39(Flex15, { sx: styles_default17.innerContainer, children: [ + /* @__PURE__ */ jsxs39(Flex15, { sx: styles_default17.innerButton, onClick: handleCopyLink, children: [ /* @__PURE__ */ jsx50(link_icon_default, { size: 16 }), /* @__PURE__ */ jsx50(Text10, { children: "Copy link" }) ] }), - /* @__PURE__ */ jsx50(Box17, { sx: styles_default16.divider }), - /* @__PURE__ */ jsx50(EmailShareButton, { url, children: /* @__PURE__ */ jsxs39(Flex15, { sx: styles_default16.innerButton, onClick: handleCopyLink, children: [ + /* @__PURE__ */ jsx50(Box17, { sx: styles_default17.divider }), + /* @__PURE__ */ jsx50(EmailShareButton, { url, children: /* @__PURE__ */ jsxs39(Flex15, { sx: styles_default17.innerButton, onClick: handleCopyLink, children: [ /* @__PURE__ */ jsx50(email_icon_default, { size: 16 }), /* @__PURE__ */ jsx50(Text10, { children: "E-mail" }) ] }) }), - /* @__PURE__ */ jsx50(TwitterShareButton, { url, children: /* @__PURE__ */ jsxs39(Flex15, { sx: styles_default16.innerButton, children: [ + /* @__PURE__ */ jsx50(TwitterShareButton, { url, children: /* @__PURE__ */ jsxs39(Flex15, { sx: styles_default17.innerButton, children: [ /* @__PURE__ */ jsx50(twitter_icon_default, { size: 16 }), /* @__PURE__ */ jsx50(Text10, { children: "Twitter" }) ] }) }), - /* @__PURE__ */ jsx50(FacebookShareButton, { url, children: /* @__PURE__ */ jsxs39(Flex15, { sx: styles_default16.innerButton, children: [ + /* @__PURE__ */ jsx50(FacebookShareButton, { url, children: /* @__PURE__ */ jsxs39(Flex15, { sx: styles_default17.innerButton, children: [ /* @__PURE__ */ jsx50(facebook_icon_default, { size: 16 }), /* @__PURE__ */ jsx50(Text10, { children: "Facebook" }) ] }) }), - /* @__PURE__ */ jsx50(LinkedinShareButton, { url, children: /* @__PURE__ */ jsxs39(Flex15, { sx: styles_default16.innerButton, children: [ + /* @__PURE__ */ jsx50(LinkedinShareButton, { url, children: /* @__PURE__ */ jsxs39(Flex15, { sx: styles_default17.innerButton, children: [ /* @__PURE__ */ jsx50(linkedin_icon_default, { size: 16 }), /* @__PURE__ */ jsx50(Text10, { children: "LinkedIn" }) ] }) }) @@ -10419,7 +10988,7 @@ var FeedbackSection = ({ }) => { const [feedback, setFeedback] = useState11(void 0); const { locale } = useContext11(LibraryContext); - useEffect10(() => { + useEffect11(() => { setFeedback(void 0); }, [slug]); const handleSend = async (liked) => { @@ -10432,20 +11001,20 @@ var FeedbackSection = ({ setFeedback(void 0); } }; - return /* @__PURE__ */ jsxs40(Flex16, { sx: styles_default15.container({ small }), "data-cy": "feedback-section", children: [ - /* @__PURE__ */ jsxs40(Flex16, { sx: styles_default15.likeContainer, children: [ - /* @__PURE__ */ jsx51(Text11, { sx: styles_default15.question({ small }), children: feedback !== void 0 ? messages[locale]["feedback_section.response"] : messages[locale]["feedback_section.question"] }), - /* @__PURE__ */ jsxs40(Flex16, { sx: styles_default15.iconsContainer({ small }), children: [ + return /* @__PURE__ */ jsxs40(Flex16, { sx: styles_default16.container({ small }), "data-cy": "feedback-section", children: [ + /* @__PURE__ */ jsxs40(Flex16, { sx: styles_default16.likeContainer, children: [ + /* @__PURE__ */ jsx51(Text11, { sx: styles_default16.question({ small }), children: feedback !== void 0 ? messages[locale]["feedback_section.response"] : messages[locale]["feedback_section.question"] }), + /* @__PURE__ */ jsxs40(Flex16, { sx: styles_default16.iconsContainer({ small }), children: [ /* @__PURE__ */ jsxs40( Flex16, { - sx: feedback === void 0 ? styles_default15.button : feedback === true ? styles_default15.selectedButton : styles_default15.disabled, + sx: feedback === void 0 ? styles_default16.button : feedback === true ? styles_default16.selectedButton : styles_default16.disabled, onClick: () => handleSend(true), role: "button", "aria-pressed": feedback === true, "data-cy": "feedback-section-like", children: [ - feedback === true ? /* @__PURE__ */ jsx51(like_selected_icon_default, { size: small ? 18 : 24, sx: styles_default15.likeIcon }) : /* @__PURE__ */ jsx51(like_icon_default, { size: small ? 18 : 24, sx: styles_default15.likeIcon }), + feedback === true ? /* @__PURE__ */ jsx51(like_selected_icon_default, { size: small ? 18 : 24, sx: styles_default16.likeIcon }) : /* @__PURE__ */ jsx51(like_icon_default, { size: small ? 18 : 24, sx: styles_default16.likeIcon }), !small && /* @__PURE__ */ jsx51(Text11, { children: messages[locale]["feedback_section.positive"] }) ] } @@ -10453,7 +11022,7 @@ var FeedbackSection = ({ /* @__PURE__ */ jsxs40( Flex16, { - sx: feedback === void 0 ? styles_default15.button : feedback === false ? styles_default15.selectedButton : styles_default15.disabled, + sx: feedback === void 0 ? styles_default16.button : feedback === false ? styles_default16.selectedButton : styles_default16.disabled, onClick: () => handleSend(false), role: "button", "aria-pressed": feedback === false, @@ -10463,9 +11032,9 @@ var FeedbackSection = ({ like_selected_icon_default, { size: small ? 18 : 24, - sx: styles_default15.dislikeIcon + sx: styles_default16.dislikeIcon } - ) : /* @__PURE__ */ jsx51(like_icon_default, { size: small ? 18 : 24, sx: styles_default15.dislikeIcon }), + ) : /* @__PURE__ */ jsx51(like_icon_default, { size: small ? 18 : 24, sx: styles_default16.dislikeIcon }), !small && /* @__PURE__ */ jsx51(Text11, { children: messages[locale]["feedback_section.negative"] }) ] } @@ -10478,14 +11047,14 @@ var FeedbackSection = ({ target: "_blank", rel: "noopener noreferrer", href: urlToEdit, - sx: styles_default15.editContainer({ small }), + sx: styles_default16.editContainer({ small }), children: [ - /* @__PURE__ */ jsx51(edit_icon_default, { size: small ? 18 : 24, sx: styles_default15.editIcon }), + /* @__PURE__ */ jsx51(edit_icon_default, { size: small ? 18 : 24, sx: styles_default16.editIcon }), /* @__PURE__ */ jsx51(Text11, { children: messages[locale]["feedback_section.edit"] }) ] } ), - shareButton2 && /* @__PURE__ */ jsx51(share_button_default, { url: window.location.href, sx: styles_default15.shareButton }) + shareButton2 && /* @__PURE__ */ jsx51(share_button_default, { url: window.location.href, sx: styles_default16.shareButton }) ] }); }; var feedback_section_default = FeedbackSection; @@ -10498,7 +11067,7 @@ import { Box as Box19 } from "@vtex/brand-ui"; // src/components/search-section/index.tsx import { Box as Box18, Flex as Flex17, Text as Text12 } from "@vtex/brand-ui"; -import { useContext as useContext12, useEffect as useEffect11 } from "react"; +import { useContext as useContext12, useEffect as useEffect12 } from "react"; // src/components/search-section/styles.ts var sectionContainer = (disabled2 = false) => ({ @@ -10557,7 +11126,7 @@ var allResultsTextActive = { fontWeight: "bold", color: "#0C1522" }; -var styles_default17 = { +var styles_default18 = { sectionContainer, sectionIconTitleBox, sectionIcon, @@ -10614,21 +11183,21 @@ var SearchSection = ({ dataElement, index }) => { router.query.filter = value; changeFilterSelectedSection(value); }; - useEffect11(() => { + useEffect12(() => { updateFilter(""); }, [router.query]); const allCountLabel = formatSearchTabCount(ocurrenceCount[""]); if (!dataElement) { - return /* @__PURE__ */ jsxs41(Flex17, { sx: styles_default17.sectionContainer(), onClick: () => updateFilter(""), children: [ + return /* @__PURE__ */ jsxs41(Flex17, { sx: styles_default18.sectionContainer(), onClick: () => updateFilter(""), children: [ /* @__PURE__ */ jsx53( Text12, { className: "search-section-title", - sx: filterSelectedSection ? styles_default17.allResultsText : styles_default17.allResultsTextActive, + sx: filterSelectedSection ? styles_default18.allResultsText : styles_default18.allResultsTextActive, children: messages[locale]["search_results.all"] || "All results" } ), - allCountLabel !== void 0 && /* @__PURE__ */ jsx53(Box18, { className: "search-section-count", sx: styles_default17.sectionCount, children: allCountLabel }) + allCountLabel !== void 0 && /* @__PURE__ */ jsx53(Box18, { className: "search-section-count", sx: styles_default18.sectionCount, children: allCountLabel }) ] }); } const count = ocurrenceCount[dataElement.id]; @@ -10637,7 +11206,7 @@ var SearchSection = ({ dataElement, index }) => { return /* @__PURE__ */ jsxs41( Flex17, { - sx: styles_default17.sectionContainer(isDisabled), + sx: styles_default18.sectionContainer(isDisabled), onClick: () => { if (isDisabled) return; @@ -10645,18 +11214,18 @@ var SearchSection = ({ dataElement, index }) => { }, "data-disabled": String(isDisabled), children: [ - /* @__PURE__ */ jsxs41(Flex17, { sx: styles_default17.sectionIconTitleBox, children: [ - /* @__PURE__ */ jsx53(dataElement.Icon, { sx: styles_default17.sectionIcon(isDisabled) }), + /* @__PURE__ */ jsxs41(Flex17, { sx: styles_default18.sectionIconTitleBox, children: [ + /* @__PURE__ */ jsx53(dataElement.Icon, { sx: styles_default18.sectionIcon(isDisabled) }), /* @__PURE__ */ jsx53( Text12, { className: "search-section-title", - sx: filterSelectedSection === dataElement.id ? styles_default17.sectionTitleActive : styles_default17.sectionTitle(isDisabled), + sx: filterSelectedSection === dataElement.id ? styles_default18.sectionTitleActive : styles_default18.sectionTitle(isDisabled), children: dataElement.title } ) ] }), - countLabel !== void 0 && /* @__PURE__ */ jsx53(Box18, { className: "search-section-count", sx: styles_default17.sectionCount, children: countLabel }) + countLabel !== void 0 && /* @__PURE__ */ jsx53(Box18, { className: "search-section-count", sx: styles_default18.sectionCount, children: countLabel }) ] }, `search-section-${dataElement.id}${index}` @@ -10682,7 +11251,7 @@ var docsSection = { ...notesSection, borderBottom: "1px solid #E7E9EE" }; -var styles_default18 = { +var styles_default19 = { container: container7, notesSection, docsSection @@ -10696,10 +11265,10 @@ var SearchSections = () => { const internalOnlySections = sidebarSections.map( (section) => section.filter((item2) => !item2.isExternalLink) ); - return /* @__PURE__ */ jsx54(Box19, { sx: styles_default18.container, children: internalOnlySections.map((sections, id) => /* @__PURE__ */ jsxs42( + return /* @__PURE__ */ jsx54(Box19, { sx: styles_default19.container, children: internalOnlySections.map((sections, id) => /* @__PURE__ */ jsxs42( Box19, { - sx: id < internalOnlySections.length - 1 ? styles_default18.docsSection : styles_default18.notesSection, + sx: id < internalOnlySections.length - 1 ? styles_default19.docsSection : styles_default19.notesSection, children: [ id === 0 && /* @__PURE__ */ jsx54(search_section_default, { dataElement: null }), sections.map((section, index) => /* @__PURE__ */ jsx54( @@ -10719,12 +11288,12 @@ var search_sections_default = SearchSections; // src/components/search-results/index.tsx import { useRouter as useRouter7 } from "next/router.js"; -import { useContext as useContext16, useEffect as useEffect13, useState as useState14 } from "react"; +import { useContext as useContext16, useEffect as useEffect14, useState as useState14 } from "react"; import { Box as Box22, Text as Text14 } from "@vtex/brand-ui"; import { Configure as Configure2, InstantSearch as InstantSearch2 } from "react-instantsearch-dom"; // src/components/search-results/infiniteHits.tsx -import { useContext as useContext15, useEffect as useEffect12, useMemo as useMemo2, useRef as useRef10 } from "react"; +import { useContext as useContext15, useEffect as useEffect13, useMemo as useMemo2, useRef as useRef10 } from "react"; import { connectInfiniteHits, connectStateResults as connectStateResults2 @@ -10851,7 +11420,7 @@ var actionIcon = { height: "16px", mr: "8px" }; -var styles_default19 = { +var styles_default20 = { containerActive, title: title3, httpMethod, @@ -10932,14 +11501,14 @@ var SearchCard = ({ const actionValue = actionType ? getAction(actionType) : null; const [toggleChildResults, setToggleChildResults] = useState13(false); const { locale } = useContext14(LibraryContext); - return /* @__PURE__ */ jsx56(Link9, { href: url, legacyBehavior: true, children: /* @__PURE__ */ jsxs44(Flex18, { sx: styles_default19.containerActive(method), children: [ + return /* @__PURE__ */ jsx56(Link9, { href: url, legacyBehavior: true, children: /* @__PURE__ */ jsxs44(Flex18, { sx: styles_default20.containerActive(method), children: [ /* @__PURE__ */ jsxs44(Box20, { children: [ - /* @__PURE__ */ jsxs44(Text13, { className: "searchCardTitle", sx: styles_default19.title, children: [ - Icon68 && /* @__PURE__ */ jsx56(Icon68, { sx: styles_default19.icon }), + /* @__PURE__ */ jsxs44(Text13, { className: "searchCardTitle", sx: styles_default20.title, children: [ + Icon68 && /* @__PURE__ */ jsx56(Icon68, { sx: styles_default20.icon }), method ? /* @__PURE__ */ jsx56( method_category_default, { - sx: styles_default19.httpMethod, + sx: styles_default20.httpMethod, origin: "search", method, active: false @@ -10948,7 +11517,7 @@ var SearchCard = ({ title7 === "overview" && `${hit.doccategory} `, title7 ] }), - /* @__PURE__ */ jsxs44(Text13, { className: "searchCardDescription", sx: styles_default19.description, children: [ + /* @__PURE__ */ jsxs44(Text13, { className: "searchCardDescription", sx: styles_default20.description, children: [ /* @__PURE__ */ jsx56(Flex18, { children: /* @__PURE__ */ jsx56( customHighlight_default, { @@ -10960,7 +11529,7 @@ var SearchCard = ({ toggleChildResults && hit.filteredMatches?.map((childHit, index) => /* @__PURE__ */ jsx56( Box20, { - sx: styles_default19.descriptionExpandedItem, + sx: styles_default20.descriptionExpandedItem, children: /* @__PURE__ */ jsx56( customHighlight_default, { @@ -10973,22 +11542,22 @@ var SearchCard = ({ `search-card-${hit.objectID}-${index}` )) ] }), - breadcrumbs ? /* @__PURE__ */ jsxs44(Box20, { sx: styles_default19.breadcrumbsContainer, children: [ - /* @__PURE__ */ jsx56(Text13, { sx: styles_default19.breadcrumbsIn, children: messages[locale]["search_card.in"] || "In" }), + breadcrumbs ? /* @__PURE__ */ jsxs44(Box20, { sx: styles_default20.breadcrumbsContainer, children: [ + /* @__PURE__ */ jsx56(Text13, { sx: styles_default20.breadcrumbsIn, children: messages[locale]["search_card.in"] || "In" }), breadcrumbs.map((breadcrumb2, index) => /* @__PURE__ */ jsxs44( Flex18, { - sx: index === 0 ? styles_default19.documentation : styles_default19.alignCenter, + sx: index === 0 ? styles_default20.documentation : styles_default20.alignCenter, children: [ - /* @__PURE__ */ jsx56(Tooltip2, { label: breadcrumb2, placement: "top", children: /* @__PURE__ */ jsx56(Text13, { sx: styles_default19.breadcrumb, children: breadcrumb2 }) }), - index < breadcrumbs.length - 1 ? /* @__PURE__ */ jsx56(IconCaret5, { direction: "right", sx: styles_default19.breadcrumbsArrow }) : null + /* @__PURE__ */ jsx56(Tooltip2, { label: breadcrumb2, placement: "top", children: /* @__PURE__ */ jsx56(Text13, { sx: styles_default20.breadcrumb, children: breadcrumb2 }) }), + index < breadcrumbs.length - 1 ? /* @__PURE__ */ jsx56(IconCaret5, { direction: "right", sx: styles_default20.breadcrumbsArrow }) : null ] }, `${breadcrumb2}${index}` )) ] }) : null, - actionValue ? /* @__PURE__ */ jsxs44(Flex18, { sx: styles_default19.actionContainer, children: [ - /* @__PURE__ */ jsx56(actionValue.Icon, { sx: styles_default19.actionIcon }), + actionValue ? /* @__PURE__ */ jsxs44(Flex18, { sx: styles_default20.actionContainer, children: [ + /* @__PURE__ */ jsx56(actionValue.Icon, { sx: styles_default20.actionIcon }), " ", /* @__PURE__ */ jsx56(Text13, { children: actionValue?.title }) ] }) : null @@ -10996,7 +11565,7 @@ var SearchCard = ({ hit.filteredMatches && hit.filteredMatches.length > 0 && /* @__PURE__ */ jsx56( Box20, { - sx: styles_default19.descriptionToggle, + sx: styles_default20.descriptionToggle, onClick: (event) => { setToggleChildResults(!toggleChildResults); event.stopPropagation(); @@ -11038,7 +11607,7 @@ var HitCard = ({ hit }) => { var StateResults = connectStateResults2( ({ searchResults }) => { const { updateOcurrenceCount } = useContext15(SearchContext); - useEffect12(() => { + useEffect13(() => { if (!searchResults) return; const results = searchResults; @@ -11101,7 +11670,7 @@ var InfiniteHits = ({ hits, hasMore, refineNext }) => { }); return mergeHits; }, [hits]); - useEffect12(() => { + useEffect13(() => { const observer = new IntersectionObserver(onSentinelIntersection, {}); if (scrollRef.current) observer.observe(scrollRef.current); @@ -11166,7 +11735,7 @@ var noResults2 = { alignContent: "center", padding: "12px" }; -var styles_default20 = { +var styles_default21 = { resultContainer, resultText, paginationContainer, @@ -11191,7 +11760,7 @@ var SearchResults = () => { const [prevFilter, setPrevFilter] = useState14(""); const [prevKeyword, setPrevKeyword] = useState14(keyword); const [searchState, setSearchState] = useState14({}); - useEffect13(() => { + useEffect14(() => { if (!keyword || keyword === prevKeyword) return; setPrevKeyword(keyword); @@ -11212,8 +11781,8 @@ var SearchResults = () => { page }); }; - return /* @__PURE__ */ jsxs46(Box22, { sx: styles_default20.resultContainer, children: [ - /* @__PURE__ */ jsx58(Text14, { sx: styles_default20.resultText, children: `${messages[locale]["search_results.showing"] || "Showing"} ${formatSearchTabCount(ocurrenceCount[filterSelectedSection]) ?? ""} ${messages[locale]["search_results.results_for"] || "results for"} ${router.query.keyword} ${messages[locale]["search_results.in"] || "in"} ${!filterSelectedSection ? messages[locale]["search_results.all_lowercase"] || "all results" : filterSelectedSection}` }), + return /* @__PURE__ */ jsxs46(Box22, { sx: styles_default21.resultContainer, children: [ + /* @__PURE__ */ jsx58(Text14, { sx: styles_default21.resultText, children: `${messages[locale]["search_results.showing"] || "Showing"} ${formatSearchTabCount(ocurrenceCount[filterSelectedSection]) ?? ""} ${messages[locale]["search_results.results_for"] || "results for"} ${router.query.keyword} ${messages[locale]["search_results.in"] || "in"} ${!filterSelectedSection ? messages[locale]["search_results.all_lowercase"] || "all results" : filterSelectedSection}` }), /* @__PURE__ */ jsx58("hr", {}), /* @__PURE__ */ jsx58(Box22, { children: /* @__PURE__ */ jsxs46( InstantSearch2, @@ -11282,7 +11851,7 @@ var tabCount = { borderRadius: "24px", backgroundColor: "#F8F7FC" }; -var styles_default21 = { container: container9, tab, tabTitle, tabCount }; +var styles_default22 = { container: container9, tab, tabTitle, tabCount }; // src/components/search-filter-tab-bar/index.tsx import { jsx as jsx59, jsxs as jsxs47 } from "react/jsx-runtime"; @@ -11302,7 +11871,7 @@ var SearchFilterTab = ({ filter }) => { return /* @__PURE__ */ jsxs47( Flex20, { - sx: styles_default21.tab(isActive, isDisabled), + sx: styles_default22.tab(isActive, isDisabled), onClick: handleClick, "data-testid": "doctype-filter-tab", "data-filter": filter, @@ -11312,19 +11881,19 @@ var SearchFilterTab = ({ filter }) => { /* @__PURE__ */ jsx59( Text15, { - sx: styles_default21.tabTitle(isActive, isDisabled), + sx: styles_default22.tabTitle(isActive, isDisabled), "data-testid": "doctype-filter-tab-title", children: filter || messages[locale]["search_results.all"] || "All results" } ), - formattedCount !== void 0 && /* @__PURE__ */ jsx59(Text15, { sx: styles_default21.tabCount, "data-testid": "doctype-filter-tab-count", children: formattedCount }) + formattedCount !== void 0 && /* @__PURE__ */ jsx59(Text15, { sx: styles_default22.tabCount, "data-testid": "doctype-filter-tab-count", children: formattedCount }) ] } ); }; var SearchFilterTabBar = () => { const { sidebarSections } = useContext17(LibraryContext); - return /* @__PURE__ */ jsxs47(Flex20, { sx: styles_default21.container, "data-testid": "doctype-filter-tab-bar", children: [ + return /* @__PURE__ */ jsxs47(Flex20, { sx: styles_default22.container, "data-testid": "doctype-filter-tab-bar", children: [ /* @__PURE__ */ jsx59(SearchFilterTab, { filter: "" }), sidebarSections.flat().map((section) => { return /* @__PURE__ */ jsx59(SearchFilterTab, { filter: section.id }, section.id); @@ -11343,7 +11912,7 @@ var body = { background: "#FFFFFF", justifyContent: "center" }; -var styles_default22 = { +var styles_default23 = { searchBarContainer, body }; @@ -11353,10 +11922,10 @@ import { jsx as jsx60, jsxs as jsxs48 } from "react/jsx-runtime"; var Search = () => { return /* @__PURE__ */ jsxs48(search_default, { children: [ /* @__PURE__ */ jsxs48(Box23, { children: [ - /* @__PURE__ */ jsx60(Flex21, { sx: styles_default22.searchBarContainer, children: /* @__PURE__ */ jsx60(SearchInput, {}) }), + /* @__PURE__ */ jsx60(Flex21, { sx: styles_default23.searchBarContainer, children: /* @__PURE__ */ jsx60(SearchInput, {}) }), /* @__PURE__ */ jsx60(search_filter_tab_bar_default, {}) ] }), - /* @__PURE__ */ jsxs48(Flex21, { sx: styles_default22.body, children: [ + /* @__PURE__ */ jsxs48(Flex21, { sx: styles_default23.body, children: [ /* @__PURE__ */ jsx60(search_sections_default, {}), /* @__PURE__ */ jsx60(search_results_default, {}) ] }) @@ -11426,7 +11995,7 @@ var declineButton = { opacity: "0.7" } }; -var styles_default23 = { +var styles_default24 = { bar, barContent, title: title4, @@ -11448,9 +12017,9 @@ var CookieBar = ({ onAccept }) => { CookieConsent, { enableDeclineButton: true, - buttonStyle: styles_default23.acceptButton, - declineButtonStyle: styles_default23.declineButton, - style: styles_default23.bar, + buttonStyle: styles_default24.acceptButton, + declineButtonStyle: styles_default24.declineButton, + style: styles_default24.bar, onAccept: () => { aa3("init", { partial: true, @@ -11461,10 +12030,10 @@ var CookieBar = ({ onAccept }) => { declineButtonText: messages[locale]["cookie_bar.decline"], buttonText: messages[locale]["cookie_bar.accept"], ButtonComponent: Button6, - customButtonWrapperAttributes: { style: styles_default23.buttonContainer }, - customContentAttributes: { style: styles_default23.barContent }, + customButtonWrapperAttributes: { style: styles_default24.buttonContainer }, + customContentAttributes: { style: styles_default24.barContent }, children: [ - /* @__PURE__ */ jsx61(Text16, { sx: styles_default23.title, children: messages[locale]["cookie_bar.title"] }), + /* @__PURE__ */ jsx61(Text16, { sx: styles_default24.title, children: messages[locale]["cookie_bar.title"] }), /* @__PURE__ */ jsx61(Text16, { children: messages[locale]["cookie_bar.description"] }) ] } @@ -11532,7 +12101,7 @@ var copyLinkButton = { backgroundColor: "#EFEFEF" } }; -var styles_default24 = { +var styles_default25 = { copyIcon, copyLinkButton }; @@ -11548,12 +12117,12 @@ var CopyLinkButton = () => { setTooltipText("Copied!"); }, 2e3); }; - return /* @__PURE__ */ jsx63(tooltip_default, { label: tooltipText, placement: "bottom", children: /* @__PURE__ */ jsx63(Button7, { onClick: handleCopy, sx: styles_default24.copyLinkButton, children: /* @__PURE__ */ jsx63(copy_icon_default, { sx: styles_default24.copyIcon, size: 16 }) }) }); + return /* @__PURE__ */ jsx63(tooltip_default, { label: tooltipText, placement: "bottom", children: /* @__PURE__ */ jsx63(Button7, { onClick: handleCopy, sx: styles_default25.copyLinkButton, children: /* @__PURE__ */ jsx63(copy_icon_default, { sx: styles_default25.copyIcon, size: 16 }) }) }); }; var copy_link_button_default = CopyLinkButton; // src/components/input/index.tsx -import { useState as useState16, useEffect as useEffect14 } from "react"; +import { useState as useState16, useEffect as useEffect15 } from "react"; // src/components/input/styles.ts var input = { @@ -11589,23 +12158,23 @@ var container10 = { border: "1px solid #3B3B3B" } }; -var styles_default25 = { container: container10, input, icon: icon3 }; +var styles_default26 = { container: container10, input, icon: icon3 }; // src/components/input/index.tsx import { Flex as Flex23 } from "@vtex/brand-ui"; import { jsx as jsx64, jsxs as jsxs51 } from "react/jsx-runtime"; var Input = ({ value, onChange, placeholder = "", Icon: Icon68 }) => { const [inputValue, setInputValue] = useState16(value ?? ""); - useEffect14(() => { + useEffect15(() => { if (inputValue !== value) setInputValue(value); }, [value]); - return /* @__PURE__ */ jsxs51(Flex23, { sx: styles_default25.container, children: [ - Icon68 && /* @__PURE__ */ jsx64(Icon68, { sx: styles_default25.icon }), + return /* @__PURE__ */ jsxs51(Flex23, { sx: styles_default26.container, children: [ + Icon68 && /* @__PURE__ */ jsx64(Icon68, { sx: styles_default26.icon }), /* @__PURE__ */ jsx64( "input", { - style: styles_default25.input, + style: styles_default26.input, value: inputValue, placeholder, onChange: (e) => { @@ -11730,7 +12299,7 @@ var popupCard = { marginTop: "16px", alignSelf: "center" }; -var styles_default26 = { +var styles_default27 = { sectionContainer: sectionContainer2, cardContainer: cardContainer4, title: title5, @@ -11847,10 +12416,10 @@ var SubscriptionList = () => { showMessage("error", localizedMessages["subscription_list.error"]); } }; - return /* @__PURE__ */ jsxs52(Box24, { sx: styles_default26.sectionContainer, children: [ - /* @__PURE__ */ jsx65(Text17, { sx: styles_default26.title, children: localizedMessages["landing_page_subscription.title"] }), - /* @__PURE__ */ jsx65(Flex24, { sx: styles_default26.cardContainer, children: /* @__PURE__ */ jsxs52("div", { children: [ - /* @__PURE__ */ jsxs52(Text17, { sx: styles_default26.description, children: [ + return /* @__PURE__ */ jsxs52(Box24, { sx: styles_default27.sectionContainer, children: [ + /* @__PURE__ */ jsx65(Text17, { sx: styles_default27.title, children: localizedMessages["landing_page_subscription.title"] }), + /* @__PURE__ */ jsx65(Flex24, { sx: styles_default27.cardContainer, children: /* @__PURE__ */ jsxs52("div", { children: [ + /* @__PURE__ */ jsxs52(Text17, { sx: styles_default27.description, children: [ localizedMessages["landing_page_subscription.description"].split( "newsletter" )[0], @@ -11867,7 +12436,7 @@ var SubscriptionList = () => { "newsletter" )[1] ] }), - /* @__PURE__ */ jsxs52(Flex24, { sx: styles_default26.inputContainer, children: [ + /* @__PURE__ */ jsxs52(Flex24, { sx: styles_default27.inputContainer, children: [ /* @__PURE__ */ jsx65( Box24, { @@ -11878,7 +12447,7 @@ var SubscriptionList = () => { placeholder: "Email", value: email, onChange: (e) => setEmail(e.target.value), - sx: styles_default26.emailInputField + sx: styles_default27.emailInputField } ), /* @__PURE__ */ jsx65( @@ -11887,12 +12456,12 @@ var SubscriptionList = () => { type: "button", size: "regular", onClick: handleSubscribe, - sx: styles_default26.button, + sx: styles_default27.button, children: localizedMessages["landing_page_newsletter.Button"] } ) ] }), - /* @__PURE__ */ jsxs52(Text17, { sx: styles_default26.privacyText, children: [ + /* @__PURE__ */ jsxs52(Text17, { sx: styles_default27.privacyText, children: [ localizedMessages["subscription_list.privacy_notice"], " ", /* @__PURE__ */ jsx65( @@ -11909,7 +12478,7 @@ var SubscriptionList = () => { Box24, { sx: { - ...styles_default26.popupCard, + ...styles_default27.popupCard, backgroundColor: messageType === "success" ? "#dff1e0" : "#f8e3e3" }, children: /* @__PURE__ */ jsx65(Text17, { children: message }) @@ -12002,7 +12571,7 @@ var statusColors = { background: "#DFF5DB" } }; -var styles_default27 = { +var styles_default28 = { statusColors, tag }; @@ -12013,7 +12582,7 @@ var Tag = ({ sx = {}, children, color = "Default", onClick }) => { return /* @__PURE__ */ jsx66( Text18, { - sx: { ...styles_default27.tag, ...sx, ...styles_default27.statusColors[color] }, + sx: { ...styles_default28.tag, ...sx, ...styles_default28.statusColors[color] }, onClick, children } @@ -12356,7 +12925,7 @@ var removeButton = { color: "#E31C58" } }; -var styles_default28 = { +var styles_default29 = { filterButton, filterButtonText, numberOfFilters, @@ -12433,7 +13002,7 @@ var ListingFilter = ({ const FilterButton = () => /* @__PURE__ */ jsxs55( Flex25, { - sx: { ...styles_default28.filterButton, ...buttonSx }, + sx: { ...styles_default29.filterButton, ...buttonSx }, onClick: () => { setTempFilters({ checklist: selectedCheckboxes ?? [], @@ -12443,24 +13012,24 @@ var ListingFilter = ({ }, children: [ /* @__PURE__ */ jsx69(filter_icon_default, { size: 16 }), - /* @__PURE__ */ jsx69(Text19, { sx: styles_default28.filterButtonText, children: resolvedLabels.button }), - numberOfFilters2 > 0 && /* @__PURE__ */ jsx69(Text19, { sx: styles_default28.numberOfFilters, children: numberOfFilters2 }) + /* @__PURE__ */ jsx69(Text19, { sx: styles_default29.filterButtonText, children: resolvedLabels.button }), + numberOfFilters2 > 0 && /* @__PURE__ */ jsx69(Text19, { sx: styles_default29.numberOfFilters, children: numberOfFilters2 }) ] } ); const TagFilter = () => { if (!normalizedTagFilter) return null; - return /* @__PURE__ */ jsxs55(Box25, { sx: styles_default28.filterContainer, children: [ - /* @__PURE__ */ jsx69(Text19, { sx: styles_default28.filterTitle, children: normalizedTagFilter.name }), + return /* @__PURE__ */ jsxs55(Box25, { sx: styles_default29.filterContainer, children: [ + /* @__PURE__ */ jsx69(Text19, { sx: styles_default29.filterTitle, children: normalizedTagFilter.name }), /* @__PURE__ */ jsx69( Flex25, { - sx: centeredTagOptions ? styles_default28.tagContainerCentered : styles_default28.tagContainer, + sx: centeredTagOptions ? styles_default29.tagContainerCentered : styles_default29.tagContainer, children: normalizedTagFilter.options.map((option) => /* @__PURE__ */ jsx69( tag_default, { - sx: styles_default28.tag, + sx: styles_default29.tag, color: isFilterSelected(option.id, "tag") ? "Selected" : "Default", onClick: () => handleFilterClick(option.id, "tag"), children: option.name @@ -12476,9 +13045,9 @@ var ListingFilter = ({ return null; return /* @__PURE__ */ jsx69(Fragment6, { children: checkboxGroups.map((group, groupIndex) => /* @__PURE__ */ jsxs55(Box25, { children: [ groupIndex > 0 && /* @__PURE__ */ jsx69(Divider, {}), - /* @__PURE__ */ jsxs55(Box25, { sx: styles_default28.filterContainer, children: [ - /* @__PURE__ */ jsx69(Text19, { sx: styles_default28.filterTitle, children: group.name }), - /* @__PURE__ */ jsx69(Box25, { sx: styles_default28.checkBoxContainer, children: group.options.map((option) => /* @__PURE__ */ jsx69( + /* @__PURE__ */ jsxs55(Box25, { sx: styles_default29.filterContainer, children: [ + /* @__PURE__ */ jsx69(Text19, { sx: styles_default29.filterTitle, children: group.name }), + /* @__PURE__ */ jsx69(Box25, { sx: styles_default29.checkBoxContainer, children: group.options.map((option) => /* @__PURE__ */ jsx69( Checkbox, { label: option.name, @@ -12490,31 +13059,31 @@ var ListingFilter = ({ ] }) ] }, group.name)) }); }; - const Divider = () => /* @__PURE__ */ jsx69(Box25, { sx: styles_default28.sectionDivider, children: /* @__PURE__ */ jsx69("hr", {}) }); + const Divider = () => /* @__PURE__ */ jsx69(Box25, { sx: styles_default29.sectionDivider, children: /* @__PURE__ */ jsx69("hr", {}) }); const FilterModal = () => /* @__PURE__ */ jsxs55(Fragment6, { children: [ - /* @__PURE__ */ jsx69(Box25, { sx: styles_default28.blanket, onClick: () => setIsModalOpen(false) }), - /* @__PURE__ */ jsxs55(Box25, { sx: styles_default28.container, children: [ - /* @__PURE__ */ jsxs55(Box25, { sx: styles_default28.topContainer, children: [ - /* @__PURE__ */ jsx69(Text19, { sx: styles_default28.modalTitle, children: resolvedLabels.modalTitle }), + /* @__PURE__ */ jsx69(Box25, { sx: styles_default29.blanket, onClick: () => setIsModalOpen(false) }), + /* @__PURE__ */ jsxs55(Box25, { sx: styles_default29.container, children: [ + /* @__PURE__ */ jsxs55(Box25, { sx: styles_default29.topContainer, children: [ + /* @__PURE__ */ jsx69(Text19, { sx: styles_default29.modalTitle, children: resolvedLabels.modalTitle }), /* @__PURE__ */ jsx69( Flex25, { - sx: styles_default28.closeButtonContainer, + sx: styles_default29.closeButtonContainer, onClick: () => setIsModalOpen(false), children: /* @__PURE__ */ jsx69(close_icon_default, { size: 32 }) } ) ] }), - /* @__PURE__ */ jsxs55(Box25, { sx: styles_default28.innerContainer, children: [ + /* @__PURE__ */ jsxs55(Box25, { sx: styles_default29.innerContainer, children: [ /* @__PURE__ */ jsx69(TagFilter, {}), normalizedTagFilter && checkboxGroups.length > 0 && /* @__PURE__ */ jsx69(Divider, {}), /* @__PURE__ */ jsx69(CheckboxFilters, {}) ] }), - /* @__PURE__ */ jsxs55(Flex25, { sx: styles_default28.buttonsContainer, children: [ + /* @__PURE__ */ jsxs55(Flex25, { sx: styles_default29.buttonsContainer, children: [ /* @__PURE__ */ jsx69( Button9, { - sx: styles_default28.removeButton, + sx: styles_default29.removeButton, icon: () => /* @__PURE__ */ jsx69(trashcan_icon_default, { sx: { mr: "8px" }, size: 18 }), onClick: () => setTempFilters({ tag: [], checklist: [] }), children: resolvedLabels.remove @@ -12638,7 +13207,7 @@ var helpcenterTagsContainer = { flexWrap: "wrap", alignItems: "center" }; -var styles_default29 = { +var styles_default30 = { devportalContainer, helpcenterContainer, title: title6, @@ -12680,29 +13249,29 @@ var TroubleshootingCard = ({ const fallbackTags = tags?.filter(Boolean) ?? []; const hasStructuredTags = resolvedSymptomFilters.length > 0 || resolvedDomainFilters.length > 0; if (variant === "helpcenter") { - return /* @__PURE__ */ jsx70(Link11, { href: cardHref, children: /* @__PURE__ */ jsxs56(Box26, { sx: styles_default29.helpcenterContainer, children: [ - /* @__PURE__ */ jsx70(Text20, { sx: styles_default29.title, className: "title", children: title7 }), - hasStructuredTags ? /* @__PURE__ */ jsxs56(Box26, { sx: styles_default29.groupsContainer, children: [ - resolvedSymptomFilters.length > 0 && /* @__PURE__ */ jsx70(Box26, { sx: styles_default29.groupContainer, children: /* @__PURE__ */ jsx70(Box26, { sx: styles_default29.helpcenterTagsContainer, children: resolvedSymptomFilters.map((filter) => /* @__PURE__ */ jsx70( + return /* @__PURE__ */ jsx70(Link11, { href: cardHref, children: /* @__PURE__ */ jsxs56(Box26, { sx: styles_default30.helpcenterContainer, children: [ + /* @__PURE__ */ jsx70(Text20, { sx: styles_default30.title, className: "title", children: title7 }), + hasStructuredTags ? /* @__PURE__ */ jsxs56(Box26, { sx: styles_default30.groupsContainer, children: [ + resolvedSymptomFilters.length > 0 && /* @__PURE__ */ jsx70(Box26, { sx: styles_default30.groupContainer, children: /* @__PURE__ */ jsx70(Box26, { sx: styles_default30.helpcenterTagsContainer, children: resolvedSymptomFilters.map((filter) => /* @__PURE__ */ jsx70( tag_default, { - sx: styles_default29.tag, + sx: styles_default30.tag, color: "Blue", children: filter }, `symptom-${filter}` )) }) }), - resolvedDomainFilters.length > 0 && /* @__PURE__ */ jsx70(Box26, { sx: styles_default29.groupContainer, children: /* @__PURE__ */ jsx70(Box26, { sx: styles_default29.helpcenterTagsContainer, children: resolvedDomainFilters.map((filter) => /* @__PURE__ */ jsx70(tag_default, { sx: styles_default29.tag, color: "Gray", children: filter }, `domain-${filter}`)) }) }) + resolvedDomainFilters.length > 0 && /* @__PURE__ */ jsx70(Box26, { sx: styles_default30.groupContainer, children: /* @__PURE__ */ jsx70(Box26, { sx: styles_default30.helpcenterTagsContainer, children: resolvedDomainFilters.map((filter) => /* @__PURE__ */ jsx70(tag_default, { sx: styles_default30.tag, color: "Gray", children: filter }, `domain-${filter}`)) }) }) ] }) : null ] }) }); } - return /* @__PURE__ */ jsx70(Link11, { href: cardHref, sx: styles_default29.devportalContainer, children: /* @__PURE__ */ jsxs56(Box26, { children: [ - /* @__PURE__ */ jsx70(Text20, { sx: styles_default29.title, className: "title", children: title7 }), - description6 ? /* @__PURE__ */ jsx70(Text20, { sx: styles_default29.description, className: "description", children: description6 }) : null, - /* @__PURE__ */ jsxs56(Box26, { sx: styles_default29.tagsContainer, children: [ - resolvedSymptomFilters.length > 0 && /* @__PURE__ */ jsx70(Box26, { sx: styles_default29.tagGroup, children: resolvedSymptomFilters.map((filter) => /* @__PURE__ */ jsx70(tag_default, { sx: styles_default29.tag, color: "Blue", children: filter }, `symptom-${filter}`)) }), - resolvedDomainFilters.length > 0 && /* @__PURE__ */ jsx70(Box26, { sx: styles_default29.tagGroup, children: resolvedDomainFilters.map((filter) => /* @__PURE__ */ jsx70(tag_default, { sx: styles_default29.tag, color: "Gray", children: filter }, `domain-${filter}`)) }), - !hasStructuredTags && fallbackTags.map((moduleTag) => /* @__PURE__ */ jsx70(tag_default, { sx: styles_default29.tag, color: "Gray", children: moduleTag }, `tags-${moduleTag}`)) + return /* @__PURE__ */ jsx70(Link11, { href: cardHref, sx: styles_default30.devportalContainer, children: /* @__PURE__ */ jsxs56(Box26, { children: [ + /* @__PURE__ */ jsx70(Text20, { sx: styles_default30.title, className: "title", children: title7 }), + description6 ? /* @__PURE__ */ jsx70(Text20, { sx: styles_default30.description, className: "description", children: description6 }) : null, + /* @__PURE__ */ jsxs56(Box26, { sx: styles_default30.tagsContainer, children: [ + resolvedSymptomFilters.length > 0 && /* @__PURE__ */ jsx70(Box26, { sx: styles_default30.tagGroup, children: resolvedSymptomFilters.map((filter) => /* @__PURE__ */ jsx70(tag_default, { sx: styles_default30.tag, color: "Blue", children: filter }, `symptom-${filter}`)) }), + resolvedDomainFilters.length > 0 && /* @__PURE__ */ jsx70(Box26, { sx: styles_default30.tagGroup, children: resolvedDomainFilters.map((filter) => /* @__PURE__ */ jsx70(tag_default, { sx: styles_default30.tag, color: "Gray", children: filter }, `domain-${filter}`)) }), + !hasStructuredTags && fallbackTags.map((moduleTag) => /* @__PURE__ */ jsx70(tag_default, { sx: styles_default30.tag, color: "Gray", children: moduleTag }, `tags-${moduleTag}`)) ] }) ] }) }); }; diff --git a/dist/index.mjs.map b/dist/index.mjs.map index 2b0619d..fbffed8 100644 --- a/dist/index.mjs.map +++ b/dist/index.mjs.map @@ -1 +1 @@ -{"version":3,"sources":["../node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js","../node_modules/prop-types/node_modules/react-is/index.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/lib/has.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/@algolia/cache-common/dist/cache-common.esm.js","../node_modules/@algolia/cache-in-memory/dist/cache-in-memory.esm.js","../node_modules/@algolia/client-common/dist/client-common.esm.js","../node_modules/@algolia/requester-common/dist/requester-common.esm.js","../node_modules/@algolia/transporter/dist/transporter.esm.js","../node_modules/@algolia/client-analytics/dist/client-analytics.esm.js","../node_modules/@algolia/client-personalization/dist/client-personalization.esm.js","../node_modules/@algolia/client-search/dist/client-search.esm.js","../node_modules/@algolia/logger-common/dist/logger-common.esm.js","../node_modules/@algolia/requester-node-http/dist/requester-node-http.esm.js","../node_modules/algoliasearch/dist/algoliasearch.cjs.js","../node_modules/algoliasearch/index.js","../node_modules/algoliasearch/lite.js","../src/lib/markdown-renderer/MarkdownRenderer.tsx","../src/lib/markdown-renderer/components.tsx","../src/components/overview-card/styles.ts","../src/components/overview-card/index.tsx","../src/components/overview-card/icons.tsx","../src/components/youtube-frame/index.tsx","../src/components/steps/index.tsx","../src/components/steps/styles.ts","../src/components/lightbox/index.tsx","../src/components/icons/close-icon.tsx","../src/utils/hooks/useClickOutside.ts","../src/components/lightbox/styles.ts","../src/components/whats-next-card/index.tsx","../src/components/whats-next-card/styles.ts","../src/utils/context/libraryContext.tsx","../src/utils/string-utils.ts","../src/utils/mermaidInit.ts","../src/lib/markdown-renderer/styles.module.css","../src/messages/en.json","../src/messages/es.json","../src/messages/pt.json","../src/utils/get-message.ts","../src/lib/table-of-contents/TableOfContents.tsx","../src/lib/table-of-contents/styles.ts","../src/lib/sidebar/index.tsx","../src/lib/sidebar/styles.ts","../src/lib/sidebar/functions.ts","../src/components/tooltip/index.tsx","../src/components/tooltip/styles.ts","../src/components/icons/caret.tsx","../src/utils/navigation-utils.ts","../src/utils/sidebar-utils.ts","../src/components/sidebar-section/index.tsx","../src/components/sidebar-section/styles.ts","../src/components/sidebar-section-filter/index.tsx","../src/components/method-category/index.tsx","../src/components/method-category/styles.ts","../src/components/method-category/functions.ts","../src/components/icons/close-filter-icon.tsx","../src/components/sidebar-section-filter/styles.ts","../src/components/sidebar-elements/index.tsx","../src/components/sidebar-elements/styles.ts","../src/components/sidebar-elements/functions.tsx","../src/components/icons/search-icon.tsx","../src/components/icons/sidebar-toggle-icon.tsx","../src/components/icons/arrow-left-icon.tsx","../src/lib/hamburger-menu/index.tsx","../src/lib/hamburger-menu/styles.ts","../src/components/documentation-card/index.tsx","../src/components/documentation-card/styles.ts","../src/components/documentation-card/functions.ts","../src/components/search-input/index.tsx","../src/components/search-input/search-box.tsx","../src/components/search-input/styles.ts","../src/components/search-input/results-box.tsx","../src/components/icons/api-guides-icon.tsx","../src/components/icons/api-reference-icon.tsx","../src/components/icons/app-development-icon.tsx","../src/components/icons/release-notes-icon.tsx","../src/components/icons/storefront-development-icon.tsx","../src/components/icons/vtex-io-apps-icon.tsx","../src/components/icons/troubleshooting-icon.tsx","../src/components/icons/added-icon.tsx","../src/components/icons/deprecated-icon.tsx","../src/components/icons/fixed-icon.tsx","../src/components/icons/improved-icon.tsx","../src/components/icons/removed-icon.tsx","../src/utils/search-utils.ts","../src/components/search-input/customHighlight.tsx","../src/utils/config/search-config.ts","../src/lib/feedback-section/index.tsx","../src/components/icons/edit-icon.tsx","../src/components/icons/like-icon.tsx","../src/components/icons/like-selected-icon.tsx","../src/lib/feedback-section/styles.ts","../src/components/share-button/index.tsx","../src/components/icons/facebook-icon.tsx","../src/components/icons/linkedin-icon.tsx","../src/components/icons/share-icon.tsx","../src/components/icons/twitter-icon.tsx","../src/components/share-button/styles.ts","../src/components/icons/email-icon.tsx","../src/components/icons/link-icon.tsx","../src/lib/search/index.tsx","../src/components/search-sections/index.tsx","../src/components/search-section/index.tsx","../src/components/search-section/styles.ts","../src/utils/context/search.tsx","../src/components/search-sections/styles.ts","../src/components/search-results/index.tsx","../src/components/search-results/infiniteHits.tsx","../src/components/search-card/index.tsx","../src/components/search-card/styles.ts","../src/components/icons/expanded-results-icon.tsx","../src/components/search-results/styles.ts","../src/components/search-filter-tab-bar/index.tsx","../src/components/search-filter-tab-bar/styles.ts","../src/lib/search/styles.ts","../src/lib/cookie-bar/index.tsx","../src/lib/cookie-bar/styles.ts","../src/components/copy-link-button/index.tsx","../src/components/icons/copy-icon.tsx","../src/components/copy-link-button/styles.ts","../src/components/input/index.tsx","../src/components/input/styles.ts","../src/components/subscription-list/index.tsx","../src/utils/get-url.tsx","../src/components/subscription-list/styles.ts","../src/components/tag/index.tsx","../src/components/tag/styles.ts","../src/components/listing-filter/index.tsx","../src/components/icons/filter-icon.tsx","../src/components/icons/trashcan-icon.tsx","../src/components/listing-filter/normalize.ts","../src/components/listing-filter/styles.ts","../src/components/troubleshooting-card/index.tsx","../src/components/troubleshooting-card/styles.ts","../src/utils/troubleshooting/filterItems.ts","../src/utils/troubleshooting/collectFilterOptions.ts","../src/utils/get-days-elapsed.ts","../src/components/icons/gear-troubleshooting-icon.tsx","../src/components/icons/documentation-updates-icon.tsx","../src/components/icons/helpcenter-icon.tsx","../src/components/icons/developer-portal-icon.tsx","../src/components/icons/faq-icon.tsx","../src/components/icons/known-issues-icon.tsx","../src/components/icons/megaphone-icon.tsx","../src/components/icons/graph-icon.tsx","../src/components/icons/warning-icon.tsx","../src/components/icons/paper-icon.tsx","../src/components/icons/start-here-icon.tsx","../src/components/icons/tutorials-icon.tsx","../src/components/icons/announcement-icon.tsx","../src/components/icons/vtex-devportal-icon.tsx","../src/components/icons/vtex-helpcenter-icon.tsx","../src/components/icons/info-icon.tsx","../src/components/icons/new-icon.tsx","../src/components/icons/github-icon.tsx","../src/components/icons/community-icon.tsx","../src/components/icons/facebook-circle-icon.tsx","../src/components/icons/linkedin-circle-icon.tsx","../src/components/icons/twitter-circle-icon.tsx","../src/components/icons/youtube-icon.tsx","../src/components/icons/instagram-icon.tsx","../src/components/icons/chatgpt-icon.tsx","../src/components/icons/claude-icon.tsx","../src/components/icons/gemini-icon.tsx","../src/components/icons/copilot-icon.tsx","../src/components/icons/grid-icon.tsx","../src/components/icons/menu-icon.tsx","../src/components/icons/checkbox.tsx","../src/components/icons/resize-icon.tsx","../src/components/icons/arrow-right-icon.tsx","../src/components/icons/long-arrow-icon.tsx","../src/components/icons/vtex-logo-footer.tsx"],"sourcesContent":["/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","// @todo Add logger on options to debug when caches go wrong.\r\nfunction createFallbackableCache(options) {\r\n const caches = [...options.caches];\r\n const current = caches.shift(); // eslint-disable-line functional/immutable-data\r\n if (current === undefined) {\r\n return createNullCache();\r\n }\r\n return {\r\n get(key, defaultValue, events = {\r\n miss: () => Promise.resolve(),\r\n }) {\r\n return current.get(key, defaultValue, events).catch(() => {\r\n return createFallbackableCache({ caches }).get(key, defaultValue, events);\r\n });\r\n },\r\n set(key, value) {\r\n return current.set(key, value).catch(() => {\r\n return createFallbackableCache({ caches }).set(key, value);\r\n });\r\n },\r\n delete(key) {\r\n return current.delete(key).catch(() => {\r\n return createFallbackableCache({ caches }).delete(key);\r\n });\r\n },\r\n clear() {\r\n return current.clear().catch(() => {\r\n return createFallbackableCache({ caches }).clear();\r\n });\r\n },\r\n };\r\n}\n\nfunction createNullCache() {\r\n return {\r\n get(_key, defaultValue, events = {\r\n miss: () => Promise.resolve(),\r\n }) {\r\n const value = defaultValue();\r\n return value\r\n .then(result => Promise.all([result, events.miss(result)]))\r\n .then(([result]) => result);\r\n },\r\n set(_key, value) {\r\n return Promise.resolve(value);\r\n },\r\n delete(_key) {\r\n return Promise.resolve();\r\n },\r\n clear() {\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nexport { createFallbackableCache, createNullCache };\n","function createInMemoryCache(options = { serializable: true }) {\r\n // eslint-disable-next-line functional/no-let\r\n let cache = {};\r\n return {\r\n get(key, defaultValue, events = {\r\n miss: () => Promise.resolve(),\r\n }) {\r\n const keyAsString = JSON.stringify(key);\r\n if (keyAsString in cache) {\r\n return Promise.resolve(options.serializable ? JSON.parse(cache[keyAsString]) : cache[keyAsString]);\r\n }\r\n const promise = defaultValue();\r\n const miss = (events && events.miss) || (() => Promise.resolve());\r\n return promise.then((value) => miss(value)).then(() => promise);\r\n },\r\n set(key, value) {\r\n // eslint-disable-next-line functional/immutable-data\r\n cache[JSON.stringify(key)] = options.serializable ? JSON.stringify(value) : value;\r\n return Promise.resolve(value);\r\n },\r\n delete(key) {\r\n // eslint-disable-next-line functional/immutable-data\r\n delete cache[JSON.stringify(key)];\r\n return Promise.resolve();\r\n },\r\n clear() {\r\n cache = {};\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nexport { createInMemoryCache };\n","function createAuth(authMode, appId, apiKey) {\r\n const credentials = {\r\n 'x-algolia-api-key': apiKey,\r\n 'x-algolia-application-id': appId,\r\n };\r\n return {\r\n headers() {\r\n return authMode === AuthMode.WithinHeaders ? credentials : {};\r\n },\r\n queryParameters() {\r\n return authMode === AuthMode.WithinQueryParameters ? credentials : {};\r\n },\r\n };\r\n}\n\nfunction createRetryablePromise(callback) {\r\n let retriesCount = 0; // eslint-disable-line functional/no-let\r\n const retry = () => {\r\n retriesCount++;\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve(callback(retry));\r\n }, Math.min(100 * retriesCount, 1000));\r\n });\r\n };\r\n return callback(retry);\r\n}\n\nfunction createWaitablePromise(promise, wait = (_response, _requestOptions) => {\r\n return Promise.resolve();\r\n}) {\r\n // eslint-disable-next-line functional/immutable-data\r\n return Object.assign(promise, {\r\n wait(requestOptions) {\r\n return createWaitablePromise(promise\r\n .then(response => Promise.all([wait(response, requestOptions), response]))\r\n .then(promiseResults => promiseResults[1]));\r\n },\r\n });\r\n}\n\n// eslint-disable-next-line functional/prefer-readonly-type\r\nfunction shuffle(array) {\r\n let c = array.length - 1; // eslint-disable-line functional/no-let\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (c; c > 0; c--) {\r\n const b = Math.floor(Math.random() * (c + 1));\r\n const a = array[c];\r\n array[c] = array[b]; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n array[b] = a; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n }\r\n return array;\r\n}\r\nfunction addMethods(base, methods) {\r\n if (!methods) {\r\n return base;\r\n }\r\n Object.keys(methods).forEach(key => {\r\n // eslint-disable-next-line functional/immutable-data, no-param-reassign\r\n base[key] = methods[key](base);\r\n });\r\n return base;\r\n}\r\nfunction encode(format, ...args) {\r\n // eslint-disable-next-line functional/no-let\r\n let i = 0;\r\n return format.replace(/%s/g, () => encodeURIComponent(args[i++]));\r\n}\n\nconst version = '4.20.0';\n\nconst destroy = (base) => {\r\n return () => {\r\n return base.transporter.requester.destroy();\r\n };\r\n};\n\nconst AuthMode = {\r\n /**\r\n * If auth credentials should be in query parameters.\r\n */\r\n WithinQueryParameters: 0,\r\n /**\r\n * If auth credentials should be in headers.\r\n */\r\n WithinHeaders: 1,\r\n};\n\nexport { AuthMode, addMethods, createAuth, createRetryablePromise, createWaitablePromise, destroy, encode, shuffle, version };\n","const MethodEnum = {\r\n Delete: 'DELETE',\r\n Get: 'GET',\r\n Post: 'POST',\r\n Put: 'PUT',\r\n};\n\nexport { MethodEnum };\n","import { MethodEnum } from '@algolia/requester-common';\n\nfunction createMappedRequestOptions(requestOptions, timeout) {\r\n const options = requestOptions || {};\r\n const data = options.data || {};\r\n Object.keys(options).forEach(key => {\r\n if (['timeout', 'headers', 'queryParameters', 'data', 'cacheable'].indexOf(key) === -1) {\r\n data[key] = options[key]; // eslint-disable-line functional/immutable-data\r\n }\r\n });\r\n return {\r\n data: Object.entries(data).length > 0 ? data : undefined,\r\n timeout: options.timeout || timeout,\r\n headers: options.headers || {},\r\n queryParameters: options.queryParameters || {},\r\n cacheable: options.cacheable,\r\n };\r\n}\n\nconst CallEnum = {\r\n /**\r\n * If the host is read only.\r\n */\r\n Read: 1,\r\n /**\r\n * If the host is write only.\r\n */\r\n Write: 2,\r\n /**\r\n * If the host is both read and write.\r\n */\r\n Any: 3,\r\n};\n\nconst HostStatusEnum = {\r\n Up: 1,\r\n Down: 2,\r\n Timeouted: 3,\r\n};\n\n// By default, API Clients at Algolia have expiration delay\r\n// of 5 mins. In the JavaScript client, we have 2 mins.\r\nconst EXPIRATION_DELAY = 2 * 60 * 1000;\r\nfunction createStatefulHost(host, status = HostStatusEnum.Up) {\r\n return {\r\n ...host,\r\n status,\r\n lastUpdate: Date.now(),\r\n };\r\n}\r\nfunction isStatefulHostUp(host) {\r\n return host.status === HostStatusEnum.Up || Date.now() - host.lastUpdate > EXPIRATION_DELAY;\r\n}\r\nfunction isStatefulHostTimeouted(host) {\r\n return (host.status === HostStatusEnum.Timeouted && Date.now() - host.lastUpdate <= EXPIRATION_DELAY);\r\n}\n\nfunction createStatelessHost(options) {\r\n if (typeof options === 'string') {\r\n return {\r\n protocol: 'https',\r\n url: options,\r\n accept: CallEnum.Any,\r\n };\r\n }\r\n return {\r\n protocol: options.protocol || 'https',\r\n url: options.url,\r\n accept: options.accept || CallEnum.Any,\r\n };\r\n}\n\nfunction createRetryableOptions(hostsCache, statelessHosts) {\r\n return Promise.all(statelessHosts.map(statelessHost => {\r\n return hostsCache.get(statelessHost, () => {\r\n return Promise.resolve(createStatefulHost(statelessHost));\r\n });\r\n })).then(statefulHosts => {\r\n const hostsUp = statefulHosts.filter(host => isStatefulHostUp(host));\r\n const hostsTimeouted = statefulHosts.filter(host => isStatefulHostTimeouted(host));\r\n /**\r\n * Note, we put the hosts that previously timeouted on the end of the list.\r\n */\r\n const hostsAvailable = [...hostsUp, ...hostsTimeouted];\r\n const statelessHostsAvailable = hostsAvailable.length > 0\r\n ? hostsAvailable.map(host => createStatelessHost(host))\r\n : statelessHosts;\r\n return {\r\n getTimeout(timeoutsCount, baseTimeout) {\r\n /**\r\n * Imagine that you have 4 hosts, if timeouts will increase\r\n * on the following way: 1 (timeouted) > 4 (timeouted) > 5 (200)\r\n *\r\n * Note that, the very next request, we start from the previous timeout\r\n *\r\n * 5 (timeouted) > 6 (timeouted) > 7 ...\r\n *\r\n * This strategy may need to be reviewed, but is the strategy on the our\r\n * current v3 version.\r\n */\r\n const timeoutMultiplier = hostsTimeouted.length === 0 && timeoutsCount === 0\r\n ? 1\r\n : hostsTimeouted.length + 3 + timeoutsCount;\r\n return timeoutMultiplier * baseTimeout;\r\n },\r\n statelessHosts: statelessHostsAvailable,\r\n };\r\n });\r\n}\n\nconst isNetworkError = ({ isTimedOut, status }) => {\r\n return !isTimedOut && ~~status === 0;\r\n};\r\nconst isRetryable = (response) => {\r\n const status = response.status;\r\n const isTimedOut = response.isTimedOut;\r\n return (isTimedOut || isNetworkError(response) || (~~(status / 100) !== 2 && ~~(status / 100) !== 4));\r\n};\r\nconst isSuccess = ({ status }) => {\r\n return ~~(status / 100) === 2;\r\n};\r\nconst retryDecision = (response, outcomes) => {\r\n if (isRetryable(response)) {\r\n return outcomes.onRetry(response);\r\n }\r\n if (isSuccess(response)) {\r\n return outcomes.onSuccess(response);\r\n }\r\n return outcomes.onFail(response);\r\n};\n\nfunction retryableRequest(transporter, statelessHosts, request, requestOptions) {\r\n const stackTrace = []; // eslint-disable-line functional/prefer-readonly-type\r\n /**\r\n * First we prepare the payload that do not depend from hosts.\r\n */\r\n const data = serializeData(request, requestOptions);\r\n const headers = serializeHeaders(transporter, requestOptions);\r\n const method = request.method;\r\n // On `GET`, the data is proxied to query parameters.\r\n const dataQueryParameters = request.method !== MethodEnum.Get\r\n ? {}\r\n : {\r\n ...request.data,\r\n ...requestOptions.data,\r\n };\r\n const queryParameters = {\r\n 'x-algolia-agent': transporter.userAgent.value,\r\n ...transporter.queryParameters,\r\n ...dataQueryParameters,\r\n ...requestOptions.queryParameters,\r\n };\r\n let timeoutsCount = 0; // eslint-disable-line functional/no-let\r\n const retry = (hosts, // eslint-disable-line functional/prefer-readonly-type\r\n getTimeout) => {\r\n /**\r\n * We iterate on each host, until there is no host left.\r\n */\r\n const host = hosts.pop(); // eslint-disable-line functional/immutable-data\r\n if (host === undefined) {\r\n throw createRetryError(stackTraceWithoutCredentials(stackTrace));\r\n }\r\n const payload = {\r\n data,\r\n headers,\r\n method,\r\n url: serializeUrl(host, request.path, queryParameters),\r\n connectTimeout: getTimeout(timeoutsCount, transporter.timeouts.connect),\r\n responseTimeout: getTimeout(timeoutsCount, requestOptions.timeout),\r\n };\r\n /**\r\n * The stackFrame is pushed to the stackTrace so we\r\n * can have information about onRetry and onFailure\r\n * decisions.\r\n */\r\n const pushToStackTrace = (response) => {\r\n const stackFrame = {\r\n request: payload,\r\n response,\r\n host,\r\n triesLeft: hosts.length,\r\n };\r\n // eslint-disable-next-line functional/immutable-data\r\n stackTrace.push(stackFrame);\r\n return stackFrame;\r\n };\r\n const decisions = {\r\n onSuccess: response => deserializeSuccess(response),\r\n onRetry(response) {\r\n const stackFrame = pushToStackTrace(response);\r\n /**\r\n * If response is a timeout, we increaset the number of\r\n * timeouts so we can increase the timeout later.\r\n */\r\n if (response.isTimedOut) {\r\n timeoutsCount++;\r\n }\r\n return Promise.all([\r\n /**\r\n * Failures are individually send the logger, allowing\r\n * the end user to debug / store stack frames even\r\n * when a retry error does not happen.\r\n */\r\n transporter.logger.info('Retryable failure', stackFrameWithoutCredentials(stackFrame)),\r\n /**\r\n * We also store the state of the host in failure cases. If the host, is\r\n * down it will remain down for the next 2 minutes. In a timeout situation,\r\n * this host will be added end of the list of hosts on the next request.\r\n */\r\n transporter.hostsCache.set(host, createStatefulHost(host, response.isTimedOut ? HostStatusEnum.Timeouted : HostStatusEnum.Down)),\r\n ]).then(() => retry(hosts, getTimeout));\r\n },\r\n onFail(response) {\r\n pushToStackTrace(response);\r\n throw deserializeFailure(response, stackTraceWithoutCredentials(stackTrace));\r\n },\r\n };\r\n return transporter.requester.send(payload).then(response => {\r\n return retryDecision(response, decisions);\r\n });\r\n };\r\n /**\r\n * Finally, for each retryable host perform request until we got a non\r\n * retryable response. Some notes here:\r\n *\r\n * 1. The reverse here is applied so we can apply a `pop` later on => more performant.\r\n * 2. We also get from the retryable options a timeout multiplier that is tailored\r\n * for the current context.\r\n */\r\n return createRetryableOptions(transporter.hostsCache, statelessHosts).then(options => {\r\n return retry([...options.statelessHosts].reverse(), options.getTimeout);\r\n });\r\n}\n\nfunction createTransporter(options) {\r\n const { hostsCache, logger, requester, requestsCache, responsesCache, timeouts, userAgent, hosts, queryParameters, headers, } = options;\r\n const transporter = {\r\n hostsCache,\r\n logger,\r\n requester,\r\n requestsCache,\r\n responsesCache,\r\n timeouts,\r\n userAgent,\r\n headers,\r\n queryParameters,\r\n hosts: hosts.map(host => createStatelessHost(host)),\r\n read(request, requestOptions) {\r\n /**\r\n * First, we compute the user request options. Now, keep in mind,\r\n * that using request options the user is able to modified the intire\r\n * payload of the request. Such as headers, query parameters, and others.\r\n */\r\n const mappedRequestOptions = createMappedRequestOptions(requestOptions, transporter.timeouts.read);\r\n const createRetryableRequest = () => {\r\n /**\r\n * Then, we prepare a function factory that contains the construction of\r\n * the retryable request. At this point, we may *not* perform the actual\r\n * request. But we want to have the function factory ready.\r\n */\r\n return retryableRequest(transporter, transporter.hosts.filter(host => (host.accept & CallEnum.Read) !== 0), request, mappedRequestOptions);\r\n };\r\n /**\r\n * Once we have the function factory ready, we need to determine of the\r\n * request is \"cacheable\" - should be cached. Note that, once again,\r\n * the user can force this option.\r\n */\r\n const cacheable = mappedRequestOptions.cacheable !== undefined\r\n ? mappedRequestOptions.cacheable\r\n : request.cacheable;\r\n /**\r\n * If is not \"cacheable\", we immediatly trigger the retryable request, no\r\n * need to check cache implementations.\r\n */\r\n if (cacheable !== true) {\r\n return createRetryableRequest();\r\n }\r\n /**\r\n * If the request is \"cacheable\", we need to first compute the key to ask\r\n * the cache implementations if this request is on progress or if the\r\n * response already exists on the cache.\r\n */\r\n const key = {\r\n request,\r\n mappedRequestOptions,\r\n transporter: {\r\n queryParameters: transporter.queryParameters,\r\n headers: transporter.headers,\r\n },\r\n };\r\n /**\r\n * With the computed key, we first ask the responses cache\r\n * implemention if this request was been resolved before.\r\n */\r\n return transporter.responsesCache.get(key, () => {\r\n /**\r\n * If the request has never resolved before, we actually ask if there\r\n * is a current request with the same key on progress.\r\n */\r\n return transporter.requestsCache.get(key, () => {\r\n return (transporter.requestsCache\r\n /**\r\n * Finally, if there is no request in progress with the same key,\r\n * this `createRetryableRequest()` will actually trigger the\r\n * retryable request.\r\n */\r\n .set(key, createRetryableRequest())\r\n .then(response => Promise.all([transporter.requestsCache.delete(key), response]), err => Promise.all([transporter.requestsCache.delete(key), Promise.reject(err)]))\r\n .then(([_, response]) => response));\r\n });\r\n }, {\r\n /**\r\n * Of course, once we get this response back from the server, we\r\n * tell response cache to actually store the received response\r\n * to be used later.\r\n */\r\n miss: response => transporter.responsesCache.set(key, response),\r\n });\r\n },\r\n write(request, requestOptions) {\r\n /**\r\n * On write requests, no cache mechanisms are applied, and we\r\n * proxy the request immediately to the requester.\r\n */\r\n return retryableRequest(transporter, transporter.hosts.filter(host => (host.accept & CallEnum.Write) !== 0), request, createMappedRequestOptions(requestOptions, transporter.timeouts.write));\r\n },\r\n };\r\n return transporter;\r\n}\n\nfunction createUserAgent(version) {\r\n const userAgent = {\r\n value: `Algolia for JavaScript (${version})`,\r\n add(options) {\r\n const addedUserAgent = `; ${options.segment}${options.version !== undefined ? ` (${options.version})` : ''}`;\r\n if (userAgent.value.indexOf(addedUserAgent) === -1) {\r\n // eslint-disable-next-line functional/immutable-data\r\n userAgent.value = `${userAgent.value}${addedUserAgent}`;\r\n }\r\n return userAgent;\r\n },\r\n };\r\n return userAgent;\r\n}\n\nfunction deserializeSuccess(response) {\r\n // eslint-disable-next-line functional/no-try-statement\r\n try {\r\n return JSON.parse(response.content);\r\n }\r\n catch (e) {\r\n throw createDeserializationError(e.message, response);\r\n }\r\n}\r\nfunction deserializeFailure({ content, status }, stackFrame) {\r\n // eslint-disable-next-line functional/no-let\r\n let message = content;\r\n // eslint-disable-next-line functional/no-try-statement\r\n try {\r\n message = JSON.parse(content).message;\r\n }\r\n catch (e) {\r\n // ..\r\n }\r\n return createApiError(message, status, stackFrame);\r\n}\n\n// eslint-disable-next-line functional/prefer-readonly-type\r\nfunction encode(format, ...args) {\r\n // eslint-disable-next-line functional/no-let\r\n let i = 0;\r\n return format.replace(/%s/g, () => encodeURIComponent(args[i++]));\r\n}\n\nfunction serializeUrl(host, path, queryParameters) {\r\n const queryParametersAsString = serializeQueryParameters(queryParameters);\r\n // eslint-disable-next-line functional/no-let\r\n let url = `${host.protocol}://${host.url}/${path.charAt(0) === '/' ? path.substr(1) : path}`;\r\n if (queryParametersAsString.length) {\r\n url += `?${queryParametersAsString}`;\r\n }\r\n return url;\r\n}\r\nfunction serializeQueryParameters(parameters) {\r\n const isObjectOrArray = (value) => Object.prototype.toString.call(value) === '[object Object]' ||\r\n Object.prototype.toString.call(value) === '[object Array]';\r\n return Object.keys(parameters)\r\n .map(key => encode('%s=%s', key, isObjectOrArray(parameters[key]) ? JSON.stringify(parameters[key]) : parameters[key]))\r\n .join('&');\r\n}\r\nfunction serializeData(request, requestOptions) {\r\n if (request.method === MethodEnum.Get ||\r\n (request.data === undefined && requestOptions.data === undefined)) {\r\n return undefined;\r\n }\r\n const data = Array.isArray(request.data)\r\n ? request.data\r\n : { ...request.data, ...requestOptions.data };\r\n return JSON.stringify(data);\r\n}\r\nfunction serializeHeaders(transporter, requestOptions) {\r\n const headers = {\r\n ...transporter.headers,\r\n ...requestOptions.headers,\r\n };\r\n const serializedHeaders = {};\r\n Object.keys(headers).forEach(header => {\r\n const value = headers[header];\r\n // @ts-ignore\r\n // eslint-disable-next-line functional/immutable-data\r\n serializedHeaders[header.toLowerCase()] = value;\r\n });\r\n return serializedHeaders;\r\n}\n\nfunction stackTraceWithoutCredentials(stackTrace) {\r\n return stackTrace.map(stackFrame => stackFrameWithoutCredentials(stackFrame));\r\n}\r\nfunction stackFrameWithoutCredentials(stackFrame) {\r\n const modifiedHeaders = stackFrame.request.headers['x-algolia-api-key']\r\n ? { 'x-algolia-api-key': '*****' }\r\n : {};\r\n return {\r\n ...stackFrame,\r\n request: {\r\n ...stackFrame.request,\r\n headers: {\r\n ...stackFrame.request.headers,\r\n ...modifiedHeaders,\r\n },\r\n },\r\n };\r\n}\n\nfunction createApiError(message, status, transporterStackTrace) {\r\n return {\r\n name: 'ApiError',\r\n message,\r\n status,\r\n transporterStackTrace,\r\n };\r\n}\n\nfunction createDeserializationError(message, response) {\r\n return {\r\n name: 'DeserializationError',\r\n message,\r\n response,\r\n };\r\n}\n\nfunction createRetryError(transporterStackTrace) {\r\n return {\r\n name: 'RetryError',\r\n message: 'Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.',\r\n transporterStackTrace,\r\n };\r\n}\n\nexport { CallEnum, HostStatusEnum, createApiError, createDeserializationError, createMappedRequestOptions, createRetryError, createStatefulHost, createStatelessHost, createTransporter, createUserAgent, deserializeFailure, deserializeSuccess, isStatefulHostTimeouted, isStatefulHostUp, serializeData, serializeHeaders, serializeQueryParameters, serializeUrl, stackFrameWithoutCredentials, stackTraceWithoutCredentials };\n","import { createAuth, AuthMode, addMethods, encode } from '@algolia/client-common';\nimport { createTransporter } from '@algolia/transporter';\nimport { MethodEnum } from '@algolia/requester-common';\n\nconst createAnalyticsClient = options => {\r\n const region = options.region || 'us';\r\n const auth = createAuth(AuthMode.WithinHeaders, options.appId, options.apiKey);\r\n const transporter = createTransporter({\r\n hosts: [{ url: `analytics.${region}.algolia.com` }],\r\n ...options,\r\n headers: {\r\n ...auth.headers(),\r\n ...{ 'content-type': 'application/json' },\r\n ...options.headers,\r\n },\r\n queryParameters: {\r\n ...auth.queryParameters(),\r\n ...options.queryParameters,\r\n },\r\n });\r\n const appId = options.appId;\r\n return addMethods({ appId, transporter }, options.methods);\r\n};\n\nconst addABTest = (base) => {\r\n return (abTest, requestOptions) => {\r\n return base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: '2/abtests',\r\n data: abTest,\r\n }, requestOptions);\r\n };\r\n};\n\nconst deleteABTest = (base) => {\r\n return (abTestID, requestOptions) => {\r\n return base.transporter.write({\r\n method: MethodEnum.Delete,\r\n path: encode('2/abtests/%s', abTestID),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getABTest = (base) => {\r\n return (abTestID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('2/abtests/%s', abTestID),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getABTests = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '2/abtests',\r\n }, requestOptions);\r\n };\r\n};\n\nconst stopABTest = (base) => {\r\n return (abTestID, requestOptions) => {\r\n return base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('2/abtests/%s/stop', abTestID),\r\n }, requestOptions);\r\n };\r\n};\n\nexport { addABTest, createAnalyticsClient, deleteABTest, getABTest, getABTests, stopABTest };\n","import { createAuth, AuthMode, addMethods } from '@algolia/client-common';\nimport { createTransporter } from '@algolia/transporter';\nimport { MethodEnum } from '@algolia/requester-common';\n\nconst createPersonalizationClient = options => {\r\n const region = options.region || 'us';\r\n const auth = createAuth(AuthMode.WithinHeaders, options.appId, options.apiKey);\r\n const transporter = createTransporter({\r\n hosts: [{ url: `personalization.${region}.algolia.com` }],\r\n ...options,\r\n headers: {\r\n ...auth.headers(),\r\n ...{ 'content-type': 'application/json' },\r\n ...options.headers,\r\n },\r\n queryParameters: {\r\n ...auth.queryParameters(),\r\n ...options.queryParameters,\r\n },\r\n });\r\n return addMethods({ appId: options.appId, transporter }, options.methods);\r\n};\n\nconst getPersonalizationStrategy = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/strategies/personalization',\r\n }, requestOptions);\r\n };\r\n};\n\nconst setPersonalizationStrategy = (base) => {\r\n return (personalizationStrategy, requestOptions) => {\r\n return base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: '1/strategies/personalization',\r\n data: personalizationStrategy,\r\n }, requestOptions);\r\n };\r\n};\n\nexport { createPersonalizationClient, getPersonalizationStrategy, setPersonalizationStrategy };\n","import { createAuth, AuthMode, shuffle, addMethods, createWaitablePromise, createRetryablePromise, encode } from '@algolia/client-common';\nimport { createTransporter, CallEnum, createMappedRequestOptions, serializeQueryParameters } from '@algolia/transporter';\nimport { MethodEnum } from '@algolia/requester-common';\nimport { createHmac } from 'crypto';\n\nfunction createBrowsablePromise(options) {\r\n const browse = (data) => {\r\n return options.request(data).then(response => {\r\n /**\r\n * First we send to the developer the\r\n * batch retrieved from the API.\r\n */\r\n if (options.batch !== undefined) {\r\n options.batch(response.hits);\r\n }\r\n /**\r\n * Then, we ask to the browse concrete implementation\r\n * if we should stop browsing. As example, the `browseObjects`\r\n * method will stop if the cursor is not present on the response.\r\n */\r\n if (options.shouldStop(response)) {\r\n return undefined;\r\n }\r\n /**\r\n * Finally, if the response contains a cursor, we browse to the next\r\n * batch using that same cursor. Otherwise, we just use the traditional\r\n * browsing using the page element.\r\n */\r\n if (response.cursor) {\r\n return browse({\r\n cursor: response.cursor,\r\n });\r\n }\r\n return browse({\r\n page: (data.page || 0) + 1,\r\n });\r\n });\r\n };\r\n return browse({});\r\n}\n\nconst createSearchClient = options => {\r\n const appId = options.appId;\r\n const auth = createAuth(options.authMode !== undefined ? options.authMode : AuthMode.WithinHeaders, appId, options.apiKey);\r\n const transporter = createTransporter({\r\n hosts: [\r\n { url: `${appId}-dsn.algolia.net`, accept: CallEnum.Read },\r\n { url: `${appId}.algolia.net`, accept: CallEnum.Write },\r\n ].concat(shuffle([\r\n { url: `${appId}-1.algolianet.com` },\r\n { url: `${appId}-2.algolianet.com` },\r\n { url: `${appId}-3.algolianet.com` },\r\n ])),\r\n ...options,\r\n headers: {\r\n ...auth.headers(),\r\n ...{ 'content-type': 'application/x-www-form-urlencoded' },\r\n ...options.headers,\r\n },\r\n queryParameters: {\r\n ...auth.queryParameters(),\r\n ...options.queryParameters,\r\n },\r\n });\r\n const base = {\r\n transporter,\r\n appId,\r\n addAlgoliaAgent(segment, version) {\r\n transporter.userAgent.add({ segment, version });\r\n },\r\n clearCache() {\r\n return Promise.all([\r\n transporter.requestsCache.clear(),\r\n transporter.responsesCache.clear(),\r\n ]).then(() => undefined);\r\n },\r\n };\r\n return addMethods(base, options.methods);\r\n};\n\nfunction createMissingObjectIDError() {\r\n return {\r\n name: 'MissingObjectIDError',\r\n message: 'All objects must have an unique objectID ' +\r\n '(like a primary key) to be valid. ' +\r\n 'Algolia is also able to generate objectIDs ' +\r\n \"automatically but *it's not recommended*. \" +\r\n \"To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option.\",\r\n };\r\n}\n\nfunction createObjectNotFoundError() {\r\n return {\r\n name: 'ObjectNotFoundError',\r\n message: 'Object not found.',\r\n };\r\n}\n\nfunction createValidUntilNotFoundError() {\r\n return {\r\n name: 'ValidUntilNotFoundError',\r\n message: 'ValidUntil not found in given secured api key.',\r\n };\r\n}\n\nconst addApiKey = (base) => {\r\n return (acl, requestOptions) => {\r\n const { queryParameters, ...options } = requestOptions || {};\r\n const data = {\r\n acl,\r\n ...(queryParameters !== undefined ? { queryParameters } : {}),\r\n };\r\n const wait = (response, waitRequestOptions) => {\r\n return createRetryablePromise(retry => {\r\n return getApiKey(base)(response.key, waitRequestOptions).catch((apiError) => {\r\n if (apiError.status !== 404) {\r\n throw apiError;\r\n }\r\n return retry();\r\n });\r\n });\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: '1/keys',\r\n data,\r\n }, options), wait);\r\n };\r\n};\n\nconst assignUserID = (base) => {\r\n return (userID, clusterName, requestOptions) => {\r\n const mappedRequestOptions = createMappedRequestOptions(requestOptions);\r\n // eslint-disable-next-line functional/immutable-data\r\n mappedRequestOptions.queryParameters['X-Algolia-User-ID'] = userID;\r\n return base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: '1/clusters/mapping',\r\n data: { cluster: clusterName },\r\n }, mappedRequestOptions);\r\n };\r\n};\n\nconst assignUserIDs = (base) => {\r\n return (userIDs, clusterName, requestOptions) => {\r\n return base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: '1/clusters/mapping/batch',\r\n data: {\r\n users: userIDs,\r\n cluster: clusterName,\r\n },\r\n }, requestOptions);\r\n };\r\n};\n\nconst clearDictionaryEntries = (base) => {\r\n return (dictionary, requestOptions) => {\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('/1/dictionaries/%s/batch', dictionary),\r\n data: {\r\n clearExistingDictionaryEntries: true,\r\n requests: { action: 'addEntry', body: [] },\r\n },\r\n }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst copyIndex = (base) => {\r\n return (from, to, requestOptions) => {\r\n const wait = (response, waitRequestOptions) => {\r\n return initIndex(base)(from, {\r\n methods: { waitTask },\r\n }).waitTask(response.taskID, waitRequestOptions);\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/operation', from),\r\n data: {\r\n operation: 'copy',\r\n destination: to,\r\n },\r\n }, requestOptions), wait);\r\n };\r\n};\n\nconst copyRules = (base) => {\r\n return (from, to, requestOptions) => {\r\n return copyIndex(base)(from, to, {\r\n ...requestOptions,\r\n scope: [ScopeEnum.Rules],\r\n });\r\n };\r\n};\n\nconst copySettings = (base) => {\r\n return (from, to, requestOptions) => {\r\n return copyIndex(base)(from, to, {\r\n ...requestOptions,\r\n scope: [ScopeEnum.Settings],\r\n });\r\n };\r\n};\n\nconst copySynonyms = (base) => {\r\n return (from, to, requestOptions) => {\r\n return copyIndex(base)(from, to, {\r\n ...requestOptions,\r\n scope: [ScopeEnum.Synonyms],\r\n });\r\n };\r\n};\n\nconst customRequest = (base) => {\r\n return (request, requestOptions) => {\r\n if (request.method === MethodEnum.Get) {\r\n return base.transporter.read(request, requestOptions);\r\n }\r\n return base.transporter.write(request, requestOptions);\r\n };\r\n};\n\nconst deleteApiKey = (base) => {\r\n return (apiKey, requestOptions) => {\r\n const wait = (_, waitRequestOptions) => {\r\n return createRetryablePromise(retry => {\r\n return getApiKey(base)(apiKey, waitRequestOptions)\r\n .then(retry)\r\n .catch((apiError) => {\r\n if (apiError.status !== 404) {\r\n throw apiError;\r\n }\r\n });\r\n });\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Delete,\r\n path: encode('1/keys/%s', apiKey),\r\n }, requestOptions), wait);\r\n };\r\n};\n\nconst deleteDictionaryEntries = (base) => {\r\n return (dictionary, objectIDs, requestOptions) => {\r\n const requests = objectIDs.map(objectID => ({\r\n action: 'deleteEntry',\r\n body: { objectID },\r\n }));\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('/1/dictionaries/%s/batch', dictionary),\r\n data: { clearExistingDictionaryEntries: false, requests },\r\n }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst generateSecuredApiKey = () => {\r\n return (parentApiKey, restrictions) => {\r\n const queryParameters = serializeQueryParameters(restrictions);\r\n const securedKey = createHmac('sha256', parentApiKey)\r\n .update(queryParameters)\r\n .digest('hex');\r\n return Buffer.from(securedKey + queryParameters).toString('base64');\r\n };\r\n};\n\nconst getApiKey = (base) => {\r\n return (apiKey, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/keys/%s', apiKey),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getAppTask = (base) => {\r\n return (taskID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/task/%s', taskID.toString()),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getDictionarySettings = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '/1/dictionaries/*/settings',\r\n }, requestOptions);\r\n };\r\n};\n\nconst getLogs = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/logs',\r\n }, requestOptions);\r\n };\r\n};\n\nconst getSecuredApiKeyRemainingValidity = () => {\r\n return (securedApiKey) => {\r\n const decodedString = Buffer.from(securedApiKey, 'base64').toString('ascii');\r\n const regex = /validUntil=(\\d+)/;\r\n const match = decodedString.match(regex);\r\n if (match === null) {\r\n throw createValidUntilNotFoundError();\r\n }\r\n return parseInt(match[1], 10) - Math.round(new Date().getTime() / 1000);\r\n };\r\n};\n\nconst getTopUserIDs = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/clusters/mapping/top',\r\n }, requestOptions);\r\n };\r\n};\n\nconst getUserID = (base) => {\r\n return (userID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/clusters/mapping/%s', userID),\r\n }, requestOptions);\r\n };\r\n};\n\nconst hasPendingMappings = (base) => {\r\n return (requestOptions) => {\r\n const { retrieveMappings, ...options } = requestOptions || {};\r\n if (retrieveMappings === true) {\r\n // eslint-disable-next-line functional/immutable-data\r\n options.getClusters = true;\r\n }\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/clusters/mapping/pending',\r\n }, options);\r\n };\r\n};\n\nconst initIndex = (base) => {\r\n return (indexName, options = {}) => {\r\n const searchIndex = {\r\n transporter: base.transporter,\r\n appId: base.appId,\r\n indexName,\r\n };\r\n return addMethods(searchIndex, options.methods);\r\n };\r\n};\n\nconst listApiKeys = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/keys',\r\n }, requestOptions);\r\n };\r\n};\n\nconst listClusters = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/clusters',\r\n }, requestOptions);\r\n };\r\n};\n\nconst listIndices = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/indexes',\r\n }, requestOptions);\r\n };\r\n};\n\nconst listUserIDs = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/clusters/mapping',\r\n }, requestOptions);\r\n };\r\n};\n\nconst moveIndex = (base) => {\r\n return (from, to, requestOptions) => {\r\n const wait = (response, waitRequestOptions) => {\r\n return initIndex(base)(from, {\r\n methods: { waitTask },\r\n }).waitTask(response.taskID, waitRequestOptions);\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/operation', from),\r\n data: {\r\n operation: 'move',\r\n destination: to,\r\n },\r\n }, requestOptions), wait);\r\n };\r\n};\n\nconst multipleBatch = (base) => {\r\n return (requests, requestOptions) => {\r\n const wait = (response, waitRequestOptions) => {\r\n return Promise.all(Object.keys(response.taskID).map(indexName => {\r\n return initIndex(base)(indexName, {\r\n methods: { waitTask },\r\n }).waitTask(response.taskID[indexName], waitRequestOptions);\r\n }));\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: '1/indexes/*/batch',\r\n data: {\r\n requests,\r\n },\r\n }, requestOptions), wait);\r\n };\r\n};\n\nconst multipleGetObjects = (base) => {\r\n return (requests, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: '1/indexes/*/objects',\r\n data: {\r\n requests,\r\n },\r\n }, requestOptions);\r\n };\r\n};\n\nconst multipleQueries = (base) => {\r\n return (queries, requestOptions) => {\r\n const requests = queries.map(query => {\r\n return {\r\n ...query,\r\n params: serializeQueryParameters(query.params || {}),\r\n };\r\n });\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: '1/indexes/*/queries',\r\n data: {\r\n requests,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst multipleSearchForFacetValues = (base) => {\r\n return (queries, requestOptions) => {\r\n return Promise.all(queries.map(query => {\r\n const { facetName, facetQuery, ...params } = query.params;\r\n return initIndex(base)(query.indexName, {\r\n methods: { searchForFacetValues },\r\n }).searchForFacetValues(facetName, facetQuery, {\r\n ...requestOptions,\r\n ...params,\r\n });\r\n }));\r\n };\r\n};\n\nconst removeUserID = (base) => {\r\n return (userID, requestOptions) => {\r\n const mappedRequestOptions = createMappedRequestOptions(requestOptions);\r\n // eslint-disable-next-line functional/immutable-data\r\n mappedRequestOptions.queryParameters['X-Algolia-User-ID'] = userID;\r\n return base.transporter.write({\r\n method: MethodEnum.Delete,\r\n path: '1/clusters/mapping',\r\n }, mappedRequestOptions);\r\n };\r\n};\n\nconst replaceDictionaryEntries = (base) => {\r\n return (dictionary, entries, requestOptions) => {\r\n const requests = entries.map(entry => ({\r\n action: 'addEntry',\r\n body: entry,\r\n }));\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('/1/dictionaries/%s/batch', dictionary),\r\n data: { clearExistingDictionaryEntries: true, requests },\r\n }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst restoreApiKey = (base) => {\r\n return (apiKey, requestOptions) => {\r\n const wait = (_, waitRequestOptions) => {\r\n return createRetryablePromise(retry => {\r\n return getApiKey(base)(apiKey, waitRequestOptions).catch((apiError) => {\r\n if (apiError.status !== 404) {\r\n throw apiError;\r\n }\r\n return retry();\r\n });\r\n });\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/keys/%s/restore', apiKey),\r\n }, requestOptions), wait);\r\n };\r\n};\n\nconst saveDictionaryEntries = (base) => {\r\n return (dictionary, entries, requestOptions) => {\r\n const requests = entries.map(entry => ({\r\n action: 'addEntry',\r\n body: entry,\r\n }));\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('/1/dictionaries/%s/batch', dictionary),\r\n data: { clearExistingDictionaryEntries: false, requests },\r\n }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst searchDictionaryEntries = (base) => {\r\n return (dictionary, query, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('/1/dictionaries/%s/search', dictionary),\r\n data: {\r\n query,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst searchUserIDs = (base) => {\r\n return (query, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: '1/clusters/mapping/search',\r\n data: {\r\n query,\r\n },\r\n }, requestOptions);\r\n };\r\n};\n\nconst setDictionarySettings = (base) => {\r\n return (settings, requestOptions) => {\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Put,\r\n path: '/1/dictionaries/*/settings',\r\n data: settings,\r\n }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst updateApiKey = (base) => {\r\n return (apiKey, requestOptions) => {\r\n const updatedFields = Object.assign({}, requestOptions);\r\n const { queryParameters, ...options } = requestOptions || {};\r\n const data = queryParameters ? { queryParameters } : {};\r\n const apiKeyFields = [\r\n 'acl',\r\n 'indexes',\r\n 'referers',\r\n 'restrictSources',\r\n 'queryParameters',\r\n 'description',\r\n 'maxQueriesPerIPPerHour',\r\n 'maxHitsPerQuery',\r\n ];\r\n // Check that all the fields retrieved through getApiKey are the same as the ones we wanted to update\r\n const hasChanged = (getApiKeyResponse) => {\r\n return Object.keys(updatedFields)\r\n .filter((updatedField) => apiKeyFields.indexOf(updatedField) !== -1)\r\n .every(updatedField => {\r\n // If the field is an array, we need to check that they are the same length and that all the values are the same\r\n if (Array.isArray(getApiKeyResponse[updatedField]) &&\r\n Array.isArray(updatedFields[updatedField])) {\r\n const getApiKeyResponseArray = getApiKeyResponse[updatedField];\r\n return (getApiKeyResponseArray.length === updatedFields[updatedField].length &&\r\n getApiKeyResponseArray.every((value, index) => value === updatedFields[updatedField][index]));\r\n }\r\n else {\r\n return getApiKeyResponse[updatedField] === updatedFields[updatedField];\r\n }\r\n });\r\n };\r\n const wait = (_, waitRequestOptions) => createRetryablePromise(retry => {\r\n return getApiKey(base)(apiKey, waitRequestOptions).then(getApiKeyResponse => {\r\n return hasChanged(getApiKeyResponse) ? Promise.resolve() : retry();\r\n });\r\n });\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Put,\r\n path: encode('1/keys/%s', apiKey),\r\n data,\r\n }, options), wait);\r\n };\r\n};\n\nconst waitAppTask = (base) => {\r\n return (taskID, requestOptions) => {\r\n return createRetryablePromise(retry => {\r\n return getAppTask(base)(taskID, requestOptions).then(response => {\r\n return response.status !== 'published' ? retry() : undefined;\r\n });\r\n });\r\n };\r\n};\n\nconst batch = (base) => {\r\n return (requests, requestOptions) => {\r\n const wait = (response, waitRequestOptions) => {\r\n return waitTask(base)(response.taskID, waitRequestOptions);\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/batch', base.indexName),\r\n data: {\r\n requests,\r\n },\r\n }, requestOptions), wait);\r\n };\r\n};\n\nconst browseObjects = (base) => {\r\n return (requestOptions) => {\r\n return createBrowsablePromise({\r\n shouldStop: response => response.cursor === undefined,\r\n ...requestOptions,\r\n request: (data) => base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/browse', base.indexName),\r\n data,\r\n }, requestOptions),\r\n });\r\n };\r\n};\n\nconst browseRules = (base) => {\r\n return (requestOptions) => {\r\n const options = {\r\n hitsPerPage: 1000,\r\n ...requestOptions,\r\n };\r\n return createBrowsablePromise({\r\n shouldStop: response => response.hits.length < options.hitsPerPage,\r\n ...options,\r\n request(data) {\r\n return searchRules(base)('', { ...options, ...data }).then((response) => {\r\n return {\r\n ...response,\r\n hits: response.hits.map(rule => {\r\n // eslint-disable-next-line functional/immutable-data,no-param-reassign\r\n delete rule._highlightResult;\r\n return rule;\r\n }),\r\n };\r\n });\r\n },\r\n });\r\n };\r\n};\n\nconst browseSynonyms = (base) => {\r\n return (requestOptions) => {\r\n const options = {\r\n hitsPerPage: 1000,\r\n ...requestOptions,\r\n };\r\n return createBrowsablePromise({\r\n shouldStop: response => response.hits.length < options.hitsPerPage,\r\n ...options,\r\n request(data) {\r\n return searchSynonyms(base)('', { ...options, ...data }).then((response) => {\r\n return {\r\n ...response,\r\n hits: response.hits.map(synonym => {\r\n // eslint-disable-next-line functional/immutable-data,no-param-reassign\r\n delete synonym._highlightResult;\r\n return synonym;\r\n }),\r\n };\r\n });\r\n },\r\n });\r\n };\r\n};\n\nconst chunkedBatch = (base) => {\r\n return (bodies, action, requestOptions) => {\r\n const { batchSize, ...options } = requestOptions || {};\r\n const response = {\r\n taskIDs: [],\r\n objectIDs: [],\r\n };\r\n const forEachBatch = (lastIndex = 0) => {\r\n // eslint-disable-next-line functional/prefer-readonly-type\r\n const bodiesChunk = [];\r\n // eslint-disable-next-line functional/no-let\r\n let index;\r\n /* eslint-disable-next-line functional/no-loop-statement */\r\n for (index = lastIndex; index < bodies.length; index++) {\r\n // eslint-disable-next-line functional/immutable-data\r\n bodiesChunk.push(bodies[index]);\r\n if (bodiesChunk.length === (batchSize || 1000)) {\r\n break;\r\n }\r\n }\r\n if (bodiesChunk.length === 0) {\r\n return Promise.resolve(response);\r\n }\r\n return batch(base)(bodiesChunk.map(body => {\r\n return {\r\n action,\r\n body,\r\n };\r\n }), options).then(res => {\r\n response.objectIDs = response.objectIDs.concat(res.objectIDs); // eslint-disable-line functional/immutable-data\r\n response.taskIDs.push(res.taskID); // eslint-disable-line functional/immutable-data\r\n index++;\r\n return forEachBatch(index);\r\n });\r\n };\r\n return createWaitablePromise(forEachBatch(), (chunkedBatchResponse, waitRequestOptions) => {\r\n return Promise.all(chunkedBatchResponse.taskIDs.map(taskID => {\r\n return waitTask(base)(taskID, waitRequestOptions);\r\n }));\r\n });\r\n };\r\n};\n\nconst clearObjects = (base) => {\r\n return (requestOptions) => {\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/clear', base.indexName),\r\n }, requestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst clearRules = (base) => {\r\n return (requestOptions) => {\r\n const { forwardToReplicas, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/rules/clear', base.indexName),\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst clearSynonyms = (base) => {\r\n return (requestOptions) => {\r\n const { forwardToReplicas, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/synonyms/clear', base.indexName),\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst deleteBy = (base) => {\r\n return (filters, requestOptions) => {\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/deleteByQuery', base.indexName),\r\n data: filters,\r\n }, requestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst deleteIndex = (base) => {\r\n return (requestOptions) => {\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Delete,\r\n path: encode('1/indexes/%s', base.indexName),\r\n }, requestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst deleteObject = (base) => {\r\n return (objectID, requestOptions) => {\r\n return createWaitablePromise(deleteObjects(base)([objectID], requestOptions).then(response => {\r\n return { taskID: response.taskIDs[0] };\r\n }), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst deleteObjects = (base) => {\r\n return (objectIDs, requestOptions) => {\r\n const objects = objectIDs.map(objectID => {\r\n return { objectID };\r\n });\r\n return chunkedBatch(base)(objects, BatchActionEnum.DeleteObject, requestOptions);\r\n };\r\n};\n\nconst deleteRule = (base) => {\r\n return (objectID, requestOptions) => {\r\n const { forwardToReplicas, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Delete,\r\n path: encode('1/indexes/%s/rules/%s', base.indexName, objectID),\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst deleteSynonym = (base) => {\r\n return (objectID, requestOptions) => {\r\n const { forwardToReplicas, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Delete,\r\n path: encode('1/indexes/%s/synonyms/%s', base.indexName, objectID),\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst exists = (base) => {\r\n return (requestOptions) => {\r\n return getSettings(base)(requestOptions)\r\n .then(() => true)\r\n .catch(error => {\r\n if (error.status !== 404) {\r\n throw error;\r\n }\r\n return false;\r\n });\r\n };\r\n};\n\nconst findAnswers = (base) => {\r\n return (query, queryLanguages, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/answers/%s/prediction', base.indexName),\r\n data: {\r\n query,\r\n queryLanguages,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst findObject = (base) => {\r\n return (callback, requestOptions) => {\r\n const { query, paginate, ...options } = requestOptions || {};\r\n // eslint-disable-next-line functional/no-let\r\n let page = 0;\r\n const forEachPage = () => {\r\n return search(base)(query || '', { ...options, page }).then(result => {\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (const [position, hit] of Object.entries(result.hits)) {\r\n // eslint-disable-next-line promise/no-callback-in-promise\r\n if (callback(hit)) {\r\n return {\r\n object: hit,\r\n position: parseInt(position, 10),\r\n page,\r\n };\r\n }\r\n }\r\n page++;\r\n // paginate if option was set and has next page\r\n if (paginate === false || page >= result.nbPages) {\r\n throw createObjectNotFoundError();\r\n }\r\n return forEachPage();\r\n });\r\n };\r\n return forEachPage();\r\n };\r\n};\n\nconst getObject = (base) => {\r\n return (objectID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/indexes/%s/%s', base.indexName, objectID),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getObjectPosition = () => {\r\n return (searchResponse, objectID) => {\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (const [position, hit] of Object.entries(searchResponse.hits)) {\r\n if (hit.objectID === objectID) {\r\n return parseInt(position, 10);\r\n }\r\n }\r\n return -1;\r\n };\r\n};\n\nconst getObjects = (base) => {\r\n return (objectIDs, requestOptions) => {\r\n const { attributesToRetrieve, ...options } = requestOptions || {};\r\n const requests = objectIDs.map(objectID => {\r\n return {\r\n indexName: base.indexName,\r\n objectID,\r\n ...(attributesToRetrieve ? { attributesToRetrieve } : {}),\r\n };\r\n });\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: '1/indexes/*/objects',\r\n data: {\r\n requests,\r\n },\r\n }, options);\r\n };\r\n};\n\nconst getRule = (base) => {\r\n return (objectID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/indexes/%s/rules/%s', base.indexName, objectID),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getSettings = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/indexes/%s/settings', base.indexName),\r\n data: {\r\n getVersion: 2,\r\n },\r\n }, requestOptions);\r\n };\r\n};\n\nconst getSynonym = (base) => {\r\n return (objectID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode(`1/indexes/%s/synonyms/%s`, base.indexName, objectID),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getTask = (base) => {\r\n return (taskID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/indexes/%s/task/%s', base.indexName, taskID.toString()),\r\n }, requestOptions);\r\n };\r\n};\n\nconst partialUpdateObject = (base) => {\r\n return (object, requestOptions) => {\r\n return createWaitablePromise(partialUpdateObjects(base)([object], requestOptions).then(response => {\r\n return {\r\n objectID: response.objectIDs[0],\r\n taskID: response.taskIDs[0],\r\n };\r\n }), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst partialUpdateObjects = (base) => {\r\n return (objects, requestOptions) => {\r\n const { createIfNotExists, ...options } = requestOptions || {};\r\n const action = createIfNotExists\r\n ? BatchActionEnum.PartialUpdateObject\r\n : BatchActionEnum.PartialUpdateObjectNoCreate;\r\n return chunkedBatch(base)(objects, action, options);\r\n };\r\n};\n\nconst replaceAllObjects = (base) => {\r\n return (objects, requestOptions) => {\r\n const { safe, autoGenerateObjectIDIfNotExist, batchSize, ...options } = requestOptions || {};\r\n const operation = (from, to, type, operationRequestOptions) => {\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/operation', from),\r\n data: {\r\n operation: type,\r\n destination: to,\r\n },\r\n }, operationRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n const randomSuffix = Math.random()\r\n .toString(36)\r\n .substring(7);\r\n const temporaryIndexName = `${base.indexName}_tmp_${randomSuffix}`;\r\n const saveObjectsInTemporary = saveObjects({\r\n appId: base.appId,\r\n transporter: base.transporter,\r\n indexName: temporaryIndexName,\r\n });\r\n // @ts-ignore\r\n // eslint-disable-next-line prefer-const, functional/no-let, functional/prefer-readonly-type\r\n let responses = [];\r\n const copyWaitablePromise = operation(base.indexName, temporaryIndexName, 'copy', {\r\n ...options,\r\n scope: ['settings', 'synonyms', 'rules'],\r\n });\r\n // eslint-disable-next-line functional/immutable-data\r\n responses.push(copyWaitablePromise);\r\n const result = (safe\r\n ? copyWaitablePromise.wait(options)\r\n : copyWaitablePromise)\r\n .then(() => {\r\n const saveObjectsWaitablePromise = saveObjectsInTemporary(objects, {\r\n ...options,\r\n autoGenerateObjectIDIfNotExist,\r\n batchSize,\r\n });\r\n // eslint-disable-next-line functional/immutable-data\r\n responses.push(saveObjectsWaitablePromise);\r\n return safe ? saveObjectsWaitablePromise.wait(options) : saveObjectsWaitablePromise;\r\n })\r\n .then(() => {\r\n const moveWaitablePromise = operation(temporaryIndexName, base.indexName, 'move', options);\r\n // eslint-disable-next-line functional/immutable-data\r\n responses.push(moveWaitablePromise);\r\n return safe ? moveWaitablePromise.wait(options) : moveWaitablePromise;\r\n })\r\n .then(() => Promise.all(responses))\r\n .then(([copyResponse, saveObjectsResponse, moveResponse]) => {\r\n return {\r\n objectIDs: saveObjectsResponse.objectIDs,\r\n taskIDs: [copyResponse.taskID, ...saveObjectsResponse.taskIDs, moveResponse.taskID],\r\n };\r\n });\r\n return createWaitablePromise(result, (_, waitRequestOptions) => {\r\n return Promise.all(responses.map(response => response.wait(waitRequestOptions)));\r\n });\r\n };\r\n};\n\nconst replaceAllRules = (base) => {\r\n return (rules, requestOptions) => {\r\n return saveRules(base)(rules, {\r\n ...requestOptions,\r\n clearExistingRules: true,\r\n });\r\n };\r\n};\n\nconst replaceAllSynonyms = (base) => {\r\n return (synonyms, requestOptions) => {\r\n return saveSynonyms(base)(synonyms, {\r\n ...requestOptions,\r\n clearExistingSynonyms: true,\r\n });\r\n };\r\n};\n\nconst saveObject = (base) => {\r\n return (object, requestOptions) => {\r\n return createWaitablePromise(saveObjects(base)([object], requestOptions).then(response => {\r\n return {\r\n objectID: response.objectIDs[0],\r\n taskID: response.taskIDs[0],\r\n };\r\n }), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst saveObjects = (base) => {\r\n return (objects, requestOptions) => {\r\n const { autoGenerateObjectIDIfNotExist, ...options } = requestOptions || {};\r\n const action = autoGenerateObjectIDIfNotExist\r\n ? BatchActionEnum.AddObject\r\n : BatchActionEnum.UpdateObject;\r\n if (action === BatchActionEnum.UpdateObject) {\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (const object of objects) {\r\n if (object.objectID === undefined) {\r\n return createWaitablePromise(Promise.reject(createMissingObjectIDError()));\r\n }\r\n }\r\n }\r\n return chunkedBatch(base)(objects, action, options);\r\n };\r\n};\n\nconst saveRule = (base) => {\r\n return (rule, requestOptions) => {\r\n return saveRules(base)([rule], requestOptions);\r\n };\r\n};\n\nconst saveRules = (base) => {\r\n return (rules, requestOptions) => {\r\n const { forwardToReplicas, clearExistingRules, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n if (clearExistingRules) {\r\n mappedRequestOptions.queryParameters.clearExistingRules = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/rules/batch', base.indexName),\r\n data: rules,\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst saveSynonym = (base) => {\r\n return (synonym, requestOptions) => {\r\n return saveSynonyms(base)([synonym], requestOptions);\r\n };\r\n};\n\nconst saveSynonyms = (base) => {\r\n return (synonyms, requestOptions) => {\r\n const { forwardToReplicas, clearExistingSynonyms, replaceExistingSynonyms, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n if (replaceExistingSynonyms || clearExistingSynonyms) {\r\n mappedRequestOptions.queryParameters.replaceExistingSynonyms = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/synonyms/batch', base.indexName),\r\n data: synonyms,\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst search = (base) => {\r\n return (query, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/query', base.indexName),\r\n data: {\r\n query,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst searchForFacetValues = (base) => {\r\n return (facetName, facetQuery, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/facets/%s/query', base.indexName, facetName),\r\n data: {\r\n facetQuery,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst searchRules = (base) => {\r\n return (query, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/rules/search', base.indexName),\r\n data: {\r\n query,\r\n },\r\n }, requestOptions);\r\n };\r\n};\n\nconst searchSynonyms = (base) => {\r\n return (query, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/synonyms/search', base.indexName),\r\n data: {\r\n query,\r\n },\r\n }, requestOptions);\r\n };\r\n};\n\nconst setSettings = (base) => {\r\n return (settings, requestOptions) => {\r\n const { forwardToReplicas, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Put,\r\n path: encode('1/indexes/%s/settings', base.indexName),\r\n data: settings,\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst waitTask = (base) => {\r\n return (taskID, requestOptions) => {\r\n return createRetryablePromise(retry => {\r\n return getTask(base)(taskID, requestOptions).then(response => {\r\n return response.status !== 'published' ? retry() : undefined;\r\n });\r\n });\r\n };\r\n};\n\nconst ApiKeyACLEnum = {\r\n AddObject: 'addObject',\r\n Analytics: 'analytics',\r\n Browser: 'browse',\r\n DeleteIndex: 'deleteIndex',\r\n DeleteObject: 'deleteObject',\r\n EditSettings: 'editSettings',\r\n Inference: 'inference',\r\n ListIndexes: 'listIndexes',\r\n Logs: 'logs',\r\n Personalization: 'personalization',\r\n Recommendation: 'recommendation',\r\n Search: 'search',\r\n SeeUnretrievableAttributes: 'seeUnretrievableAttributes',\r\n Settings: 'settings',\r\n Usage: 'usage',\r\n};\n\nconst BatchActionEnum = {\r\n AddObject: 'addObject',\r\n UpdateObject: 'updateObject',\r\n PartialUpdateObject: 'partialUpdateObject',\r\n PartialUpdateObjectNoCreate: 'partialUpdateObjectNoCreate',\r\n DeleteObject: 'deleteObject',\r\n DeleteIndex: 'delete',\r\n ClearIndex: 'clear',\r\n};\n\nconst ScopeEnum = {\r\n Settings: 'settings',\r\n Synonyms: 'synonyms',\r\n Rules: 'rules',\r\n};\n\nconst StrategyEnum = {\r\n None: 'none',\r\n StopIfEnoughMatches: 'stopIfEnoughMatches',\r\n};\n\nconst SynonymEnum = {\r\n Synonym: 'synonym',\r\n OneWaySynonym: 'oneWaySynonym',\r\n AltCorrection1: 'altCorrection1',\r\n AltCorrection2: 'altCorrection2',\r\n Placeholder: 'placeholder',\r\n};\n\nexport { ApiKeyACLEnum, BatchActionEnum, ScopeEnum, StrategyEnum, SynonymEnum, addApiKey, assignUserID, assignUserIDs, batch, browseObjects, browseRules, browseSynonyms, chunkedBatch, clearDictionaryEntries, clearObjects, clearRules, clearSynonyms, copyIndex, copyRules, copySettings, copySynonyms, createBrowsablePromise, createMissingObjectIDError, createObjectNotFoundError, createSearchClient, createValidUntilNotFoundError, customRequest, deleteApiKey, deleteBy, deleteDictionaryEntries, deleteIndex, deleteObject, deleteObjects, deleteRule, deleteSynonym, exists, findAnswers, findObject, generateSecuredApiKey, getApiKey, getAppTask, getDictionarySettings, getLogs, getObject, getObjectPosition, getObjects, getRule, getSecuredApiKeyRemainingValidity, getSettings, getSynonym, getTask, getTopUserIDs, getUserID, hasPendingMappings, initIndex, listApiKeys, listClusters, listIndices, listUserIDs, moveIndex, multipleBatch, multipleGetObjects, multipleQueries, multipleSearchForFacetValues, partialUpdateObject, partialUpdateObjects, removeUserID, replaceAllObjects, replaceAllRules, replaceAllSynonyms, replaceDictionaryEntries, restoreApiKey, saveDictionaryEntries, saveObject, saveObjects, saveRule, saveRules, saveSynonym, saveSynonyms, search, searchDictionaryEntries, searchForFacetValues, searchRules, searchSynonyms, searchUserIDs, setDictionarySettings, setSettings, updateApiKey, waitAppTask, waitTask };\n","function createNullLogger() {\r\n return {\r\n debug(_message, _args) {\r\n return Promise.resolve();\r\n },\r\n info(_message, _args) {\r\n return Promise.resolve();\r\n },\r\n error(_message, _args) {\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nconst LogLevelEnum = {\r\n Debug: 1,\r\n Info: 2,\r\n Error: 3,\r\n};\n\nexport { LogLevelEnum, createNullLogger };\n","import * as http from 'http';\nimport { Agent } from 'http';\nimport * as https from 'https';\nimport { Agent as Agent$1 } from 'https';\nimport { parse } from 'url';\n\n/* eslint functional/prefer-readonly-type: 0 */\r\nconst agentOptions = { keepAlive: true };\r\nconst defaultHttpAgent = new Agent(agentOptions);\r\nconst defaultHttpsAgent = new Agent$1(agentOptions);\r\nfunction createNodeHttpRequester({ agent: userGlobalAgent, httpAgent: userHttpAgent, httpsAgent: userHttpsAgent, requesterOptions = {}, } = {}) {\r\n const httpAgent = userHttpAgent || userGlobalAgent || defaultHttpAgent;\r\n const httpsAgent = userHttpsAgent || userGlobalAgent || defaultHttpsAgent;\r\n return {\r\n send(request) {\r\n return new Promise(resolve => {\r\n const url = parse(request.url);\r\n const path = url.query === null ? url.pathname : `${url.pathname}?${url.query}`;\r\n const options = {\r\n ...requesterOptions,\r\n agent: url.protocol === 'https:' ? httpsAgent : httpAgent,\r\n hostname: url.hostname,\r\n path,\r\n method: request.method,\r\n headers: {\r\n ...(requesterOptions && requesterOptions.headers ? requesterOptions.headers : {}),\r\n ...request.headers,\r\n },\r\n ...(url.port !== undefined ? { port: url.port || '' } : {}),\r\n };\r\n const req = (url.protocol === 'https:' ? https : http).request(options, response => {\r\n // eslint-disable-next-line functional/no-let\r\n let contentBuffers = [];\r\n response.on('data', chunk => {\r\n contentBuffers = contentBuffers.concat(chunk);\r\n });\r\n response.on('end', () => {\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n clearTimeout(connectTimeout);\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n clearTimeout(responseTimeout);\r\n resolve({\r\n status: response.statusCode || 0,\r\n content: Buffer.concat(contentBuffers).toString(),\r\n isTimedOut: false,\r\n });\r\n });\r\n });\r\n const createTimeout = (timeout, content) => {\r\n return setTimeout(() => {\r\n req.abort();\r\n resolve({\r\n status: 0,\r\n content,\r\n isTimedOut: true,\r\n });\r\n }, timeout * 1000);\r\n };\r\n const connectTimeout = createTimeout(request.connectTimeout, 'Connection timeout');\r\n // eslint-disable-next-line functional/no-let\r\n let responseTimeout;\r\n req.on('error', error => {\r\n clearTimeout(connectTimeout);\r\n clearTimeout(responseTimeout);\r\n resolve({ status: 0, content: error.message, isTimedOut: false });\r\n });\r\n req.once('response', () => {\r\n clearTimeout(connectTimeout);\r\n responseTimeout = createTimeout(request.responseTimeout, 'Socket timeout');\r\n });\r\n if (request.data !== undefined) {\r\n req.write(request.data);\r\n }\r\n req.end();\r\n });\r\n },\r\n destroy() {\r\n httpAgent.destroy();\r\n httpsAgent.destroy();\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nexport { createNodeHttpRequester };\n","'use strict';\n\nvar cacheCommon = require('@algolia/cache-common');\nvar cacheInMemory = require('@algolia/cache-in-memory');\nvar clientAnalytics = require('@algolia/client-analytics');\nvar clientCommon = require('@algolia/client-common');\nvar clientPersonalization = require('@algolia/client-personalization');\nvar clientSearch = require('@algolia/client-search');\nvar loggerCommon = require('@algolia/logger-common');\nvar requesterNodeHttp = require('@algolia/requester-node-http');\nvar transporter = require('@algolia/transporter');\n\nfunction algoliasearch(appId, apiKey, options) {\r\n const commonOptions = {\r\n appId,\r\n apiKey,\r\n timeouts: {\r\n connect: 2,\r\n read: 5,\r\n write: 30,\r\n },\r\n requester: requesterNodeHttp.createNodeHttpRequester(),\r\n logger: loggerCommon.createNullLogger(),\r\n responsesCache: cacheCommon.createNullCache(),\r\n requestsCache: cacheCommon.createNullCache(),\r\n hostsCache: cacheInMemory.createInMemoryCache(),\r\n userAgent: transporter.createUserAgent(clientCommon.version).add({\r\n segment: 'Node.js',\r\n version: process.versions.node,\r\n }),\r\n };\r\n const searchClientOptions = { ...commonOptions, ...options };\r\n const initPersonalization = () => (clientOptions) => {\r\n return clientPersonalization.createPersonalizationClient({\r\n ...commonOptions,\r\n ...clientOptions,\r\n methods: {\r\n getPersonalizationStrategy: clientPersonalization.getPersonalizationStrategy,\r\n setPersonalizationStrategy: clientPersonalization.setPersonalizationStrategy,\r\n },\r\n });\r\n };\r\n return clientSearch.createSearchClient({\r\n ...searchClientOptions,\r\n methods: {\r\n search: clientSearch.multipleQueries,\r\n searchForFacetValues: clientSearch.multipleSearchForFacetValues,\r\n multipleBatch: clientSearch.multipleBatch,\r\n multipleGetObjects: clientSearch.multipleGetObjects,\r\n multipleQueries: clientSearch.multipleQueries,\r\n copyIndex: clientSearch.copyIndex,\r\n copySettings: clientSearch.copySettings,\r\n copyRules: clientSearch.copyRules,\r\n copySynonyms: clientSearch.copySynonyms,\r\n moveIndex: clientSearch.moveIndex,\r\n listIndices: clientSearch.listIndices,\r\n getLogs: clientSearch.getLogs,\r\n listClusters: clientSearch.listClusters,\r\n multipleSearchForFacetValues: clientSearch.multipleSearchForFacetValues,\r\n getApiKey: clientSearch.getApiKey,\r\n addApiKey: clientSearch.addApiKey,\r\n listApiKeys: clientSearch.listApiKeys,\r\n updateApiKey: clientSearch.updateApiKey,\r\n deleteApiKey: clientSearch.deleteApiKey,\r\n restoreApiKey: clientSearch.restoreApiKey,\r\n assignUserID: clientSearch.assignUserID,\r\n assignUserIDs: clientSearch.assignUserIDs,\r\n getUserID: clientSearch.getUserID,\r\n searchUserIDs: clientSearch.searchUserIDs,\r\n listUserIDs: clientSearch.listUserIDs,\r\n getTopUserIDs: clientSearch.getTopUserIDs,\r\n removeUserID: clientSearch.removeUserID,\r\n hasPendingMappings: clientSearch.hasPendingMappings,\r\n generateSecuredApiKey: clientSearch.generateSecuredApiKey,\r\n getSecuredApiKeyRemainingValidity: clientSearch.getSecuredApiKeyRemainingValidity,\r\n destroy: clientCommon.destroy,\r\n clearDictionaryEntries: clientSearch.clearDictionaryEntries,\r\n deleteDictionaryEntries: clientSearch.deleteDictionaryEntries,\r\n getDictionarySettings: clientSearch.getDictionarySettings,\r\n getAppTask: clientSearch.getAppTask,\r\n replaceDictionaryEntries: clientSearch.replaceDictionaryEntries,\r\n saveDictionaryEntries: clientSearch.saveDictionaryEntries,\r\n searchDictionaryEntries: clientSearch.searchDictionaryEntries,\r\n setDictionarySettings: clientSearch.setDictionarySettings,\r\n waitAppTask: clientSearch.waitAppTask,\r\n customRequest: clientSearch.customRequest,\r\n initIndex: base => (indexName) => {\r\n return clientSearch.initIndex(base)(indexName, {\r\n methods: {\r\n batch: clientSearch.batch,\r\n delete: clientSearch.deleteIndex,\r\n findAnswers: clientSearch.findAnswers,\r\n getObject: clientSearch.getObject,\r\n getObjects: clientSearch.getObjects,\r\n saveObject: clientSearch.saveObject,\r\n saveObjects: clientSearch.saveObjects,\r\n search: clientSearch.search,\r\n searchForFacetValues: clientSearch.searchForFacetValues,\r\n waitTask: clientSearch.waitTask,\r\n setSettings: clientSearch.setSettings,\r\n getSettings: clientSearch.getSettings,\r\n partialUpdateObject: clientSearch.partialUpdateObject,\r\n partialUpdateObjects: clientSearch.partialUpdateObjects,\r\n deleteObject: clientSearch.deleteObject,\r\n deleteObjects: clientSearch.deleteObjects,\r\n deleteBy: clientSearch.deleteBy,\r\n clearObjects: clientSearch.clearObjects,\r\n browseObjects: clientSearch.browseObjects,\r\n getObjectPosition: clientSearch.getObjectPosition,\r\n findObject: clientSearch.findObject,\r\n exists: clientSearch.exists,\r\n saveSynonym: clientSearch.saveSynonym,\r\n saveSynonyms: clientSearch.saveSynonyms,\r\n getSynonym: clientSearch.getSynonym,\r\n searchSynonyms: clientSearch.searchSynonyms,\r\n browseSynonyms: clientSearch.browseSynonyms,\r\n deleteSynonym: clientSearch.deleteSynonym,\r\n clearSynonyms: clientSearch.clearSynonyms,\r\n replaceAllObjects: clientSearch.replaceAllObjects,\r\n replaceAllSynonyms: clientSearch.replaceAllSynonyms,\r\n searchRules: clientSearch.searchRules,\r\n getRule: clientSearch.getRule,\r\n deleteRule: clientSearch.deleteRule,\r\n saveRule: clientSearch.saveRule,\r\n saveRules: clientSearch.saveRules,\r\n replaceAllRules: clientSearch.replaceAllRules,\r\n browseRules: clientSearch.browseRules,\r\n clearRules: clientSearch.clearRules,\r\n },\r\n });\r\n },\r\n initAnalytics: () => (clientOptions) => {\r\n return clientAnalytics.createAnalyticsClient({\r\n ...commonOptions,\r\n ...clientOptions,\r\n methods: {\r\n addABTest: clientAnalytics.addABTest,\r\n getABTest: clientAnalytics.getABTest,\r\n getABTests: clientAnalytics.getABTests,\r\n stopABTest: clientAnalytics.stopABTest,\r\n deleteABTest: clientAnalytics.deleteABTest,\r\n },\r\n });\r\n },\r\n initPersonalization,\r\n initRecommendation: () => (clientOptions) => {\r\n searchClientOptions.logger.info('The `initRecommendation` method is deprecated. Use `initPersonalization` instead.');\r\n return initPersonalization()(clientOptions);\r\n },\r\n },\r\n });\r\n}\r\n// eslint-disable-next-line functional/immutable-data\r\nalgoliasearch.version = clientCommon.version;\n\nmodule.exports = algoliasearch;\n","/* eslint-disable functional/immutable-data, import/no-commonjs */\nconst algoliasearch = require('./dist/algoliasearch.cjs.js');\n\n/**\n * The Common JS build is the default entry point for the Node environment. Keep in\n * in mind, that for the browser environment, we hint the bundler to use the UMD\n * build instead as specified on the key `browser` of our `package.json` file.\n */\nmodule.exports = algoliasearch;\n\n/**\n * In addition, we also set explicitly the default export below making\n * this Common JS module in compliance with es6 modules specification.\n */\nmodule.exports.default = algoliasearch;\n","// eslint-disable-next-line functional/immutable-data, import/no-commonjs\nmodule.exports = require('./index');\n","import { Box } from '@vtex/brand-ui'\r\nimport { MDXRemote } from 'next-mdx-remote'\r\nimport { MarkdownRendererProps } from './MarkdownRenderer.types'\r\nimport components from './components'\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nconst MDXRemote2 = MDXRemote as any\r\n\r\nconst MarkdownRenderer = ({\r\n serialized,\r\n customComponents,\r\n scope,\r\n}: MarkdownRendererProps) => {\r\n if (components && scope) {\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default MarkdownRenderer\r\n","/* eslint-disable @typescript-eslint/no-unused-vars */\r\nimport { useContext, useEffect, useRef, useState } from 'react'\r\nimport { Box, Flex } from '@vtex/brand-ui'\r\nimport {\r\n ReactSVGPanZoom,\r\n UncontrolledReactSVGPanZoom,\r\n} from 'react-svg-pan-zoom'\r\nimport mermaid from 'mermaid'\r\nimport parse from 'html-react-parser'\r\nimport { InView } from 'react-intersection-observer'\r\n\r\nimport { CH } from '@code-hike/mdx/components'\r\nimport OverviewCard from 'components/overview-card'\r\nimport YoutubeFrame from 'components/youtube-frame'\r\nimport Steps from 'components/steps'\r\nimport LightBox from 'components/lightbox'\r\nimport WhatsNextCard from 'components/whats-next-card'\r\n\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { childrenToString, slugify } from 'utils/string-utils'\r\nimport mermaidInit from 'utils/mermaidInit'\r\n\r\nimport { Component, ObservableHeadingProps } from './MarkdownRenderer.types'\r\nimport styles from './styles.module.css'\r\nimport { messages } from 'utils/get-message'\r\n\r\nmermaidInit()\r\n\r\nconst ObservableHeading = ({\r\n level,\r\n onEnterView,\r\n onLeaveView,\r\n ...headingProps\r\n}: ObservableHeadingProps) => {\r\n const [y, setY] = useState(Infinity)\r\n const toSlugify = childrenToString(headingProps.children)\r\n const slug = slugify(toSlugify)\r\n return (\r\n {\r\n if (inView) onEnterView(slug)\r\n else onLeaveView(slug, entry, y)\r\n\r\n setY(entry.boundingClientRect.y)\r\n }}\r\n >\r\n {level === 2 ? (\r\n

\r\n ) : (\r\n

\r\n )}\r\n \r\n )\r\n}\r\n\r\nconst calloutColors: Record = {\r\n info: '#8C929D',\r\n danger: '#DC5A41',\r\n warning: '#FFB100',\r\n success: '#80BE80',\r\n}\r\n\r\nconst CalloutIcon = ({ type }: { type: string }) => (\r\n \r\n \r\n {type === 'success' ? (\r\n \r\n ) : type === 'info' ? (\r\n <>\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n )}\r\n \r\n)\r\n\r\nexport const Callout = ({ node, icon, ...props }: Component) => {\r\n const blockquoteType: string = icon ? icon : 'info'\r\n return (\r\n \r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nconst MermaidDiagram = ({ node, ...props }: Component) => {\r\n const viewerRef = useRef(null)\r\n const ref = useRef()\r\n\r\n const [diagram, setDiagram] = useState('')\r\n const [width, setWidth] = useState(0)\r\n const [height, setHeight] = useState(0)\r\n\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(() => {\r\n if (!ref.current) return\r\n setWidth(ref.current?.clientWidth ?? 0)\r\n setHeight(ref.current?.clientWidth / 2 ?? 0)\r\n })\r\n\r\n const mermaidRenderer = async function () {\r\n const { svg } = await mermaid.render('mermaid-id', props.children)\r\n setDiagram(\r\n svg.replace('id=\"mermaid-id\"', '').replaceAll('#mermaid-id', '')\r\n )\r\n }\r\n\r\n mermaidRenderer()\r\n if (ref.current) resizeObserver.observe(ref.current)\r\n }, [])\r\n\r\n return (\r\n \r\n \r\n \r\n {parse(diagram)}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nconst ImageComponent = ({ node, ...props }: Component) => {\r\n const [srcHasError, setSrcHasError] = useState(false)\r\n const { locale } = useContext(LibraryContext)\r\n const regularImg = (\r\n // eslint-disable-next-line @next/next/no-img-element\r\n {props.alt} setSrcHasError(true)} />\r\n )\r\n const errorMessage = (\r\n
\r\n {messages[locale]['image.error_loading']} {props.src}\r\n
\r\n )\r\n\r\n let data: { base64: string; img: object } = { base64: '', img: {} }\r\n try {\r\n data = JSON.parse(props.alt)\r\n } catch (error) {\r\n console.log(`Error parsing`, error)\r\n return errorMessage\r\n }\r\n return !srcHasError ? {regularImg} : errorMessage\r\n}\r\n\r\nexport default {\r\n CH,\r\n OverviewCard,\r\n WhatsNextCard,\r\n YoutubeFrame,\r\n Steps,\r\n Flex: ({ node, ...props }: Component) => (\r\n \r\n ),\r\n table: ({ node, ...props }: Component) => ,\r\n td: ({ node, ...props }: Component) =>
,\r\n img: ImageComponent,\r\n text: ({ node, ...props }: Component) => {\r\n return \r\n },\r\n blockquote: ({ ...props }: Component) => {\r\n return \r\n },\r\n code: ({ node, ...props }: Component) => {\r\n return \r\n },\r\n pre: ({ ...props }: Component) => {\r\n if (props.className && props.className === 'mermaid')\r\n return \r\n\r\n return
\r\n  },\r\n  h2: ({ node, ...props }: Component) => {\r\n    const { activeItem, setActiveItem, goToPreviousItem } =\r\n      useContext(LibraryContext)\r\n\r\n    return (\r\n       {\r\n          setActiveItem(({ item, subItem }) => ({\r\n            item: slug,\r\n            subItem: item !== slug ? '' : subItem,\r\n          }))\r\n        }}\r\n        onLeaveView={(slug, entry, y) => {\r\n          if (entry.boundingClientRect.y > y && activeItem.item === slug) {\r\n            goToPreviousItem()\r\n          }\r\n        }}\r\n        {...props}\r\n      />\r\n    )\r\n  },\r\n  h3: ({ node, ...props }: Component) => {\r\n    const { activeItem, setActiveItem, goToPreviousSubItem } =\r\n      useContext(LibraryContext)\r\n\r\n    return (\r\n       {\r\n          setActiveItem(({ item }) => ({\r\n            item,\r\n            subItem: slug,\r\n          }))\r\n        }}\r\n        onLeaveView={(slug, entry, y) => {\r\n          if (entry.boundingClientRect.y > y && activeItem.subItem === slug) {\r\n            goToPreviousSubItem()\r\n          }\r\n        }}\r\n        {...props}\r\n      />\r\n    )\r\n  },\r\n}\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst overviewCard: SxStyleProp = {\r\n  alignItems: 'flex-start',\r\n  margin: '20px 0px',\r\n  border: '1px solid #E7E9EE',\r\n  borderRadius: '4px',\r\n  padding: '18px 24px 4px',\r\n  color: '#4A596B',\r\n  ':active, :hover': {\r\n    borderColor: 'muted.2',\r\n    boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\r\n    transition: 'all 0.3 ease-out',\r\n    '*':{\r\n      color: '#000711',\r\n    }\r\n  },\r\n  ul: {\r\n    borderLeft: '1px rgb(202, 203, 204) solid',\r\n    fontSize: '0.9em',\r\n    mt: '0',\r\n    paddingLeft: '1.5em',\r\n    listStyleType: 'none',\r\n    display: 'block',\r\n    textDecoration: 'none',\r\n  },\r\n  'h3, h4': {\r\n    color: '#4A596B',\r\n    fontSize: '1.125em',\r\n    fontWeight: '400',\r\n    my: '0',\r\n  },\r\n}\r\n\r\nconst overviewIcon: SxStyleProp = {\r\n  marginRight: '1.25em',\r\n  marginTop: '0.375em',\r\n}\r\n\r\nexport default {\r\n  overviewCard,\r\n  overviewIcon,\r\n}\r\n","import styles from './styles'\r\nimport { Flex, Box } from '@vtex/brand-ui'\r\nimport * as Icons from './icons'\r\nimport { IconComponent } from 'utils/typings/types'\r\nimport Link from 'next/link.js'\r\n\r\ninterface IconsI {\r\n  name: string\r\n  Icon: IconComponent\r\n}\r\n\r\nconst IconsMap: IconsI[] = [\r\n  {\r\n    name: 'StorageUnit',\r\n    Icon: Icons.StorageUnit,\r\n  },\r\n  {\r\n    name: 'Board',\r\n    Icon: Icons.Board,\r\n  },\r\n  {\r\n    name: 'Integration',\r\n    Icon: Icons.Integration,\r\n  },\r\n  {\r\n    name: 'SearchList',\r\n    Icon: Icons.SearchList,\r\n  },\r\n  {\r\n    name: 'SearchDetails',\r\n    Icon: Icons.SearchDetails,\r\n  },\r\n  {\r\n    name: 'SwitchArrows',\r\n    Icon: Icons.SwitchArrows,\r\n  },\r\n  {\r\n    name: 'ChangeCart',\r\n    Icon: Icons.ChangeCart,\r\n  },\r\n  {\r\n    name: 'ToStore',\r\n    Icon: Icons.ToStore,\r\n  },\r\n  {\r\n    name: 'PaymentHand',\r\n    Icon: Icons.PaymentHand,\r\n  },\r\n  {\r\n    name: 'GlobeCart',\r\n    Icon: Icons.GlobeCart,\r\n  },\r\n  {\r\n    name: 'StoreCart',\r\n    Icon: Icons.StoreCart,\r\n  },\r\n  {\r\n    name: 'List',\r\n    Icon: Icons.List,\r\n  },\r\n  {\r\n    name: 'Blocks',\r\n    Icon: Icons.Blocks,\r\n  },\r\n  {\r\n    name: 'StoreData',\r\n    Icon: Icons.StoreData,\r\n  },\r\n  {\r\n    name: 'Cart',\r\n    Icon: Icons.Cart,\r\n  },\r\n  {\r\n    name: 'FileConfiguration',\r\n    Icon: Icons.FileConfiguration,\r\n  },\r\n  {\r\n    name: 'Platform',\r\n    Icon: Icons.Platform,\r\n  },\r\n  {\r\n    name: 'RestApis',\r\n    Icon: Icons.RestApis,\r\n  },\r\n  {\r\n    name: 'Catalog',\r\n    Icon: Icons.Catalog,\r\n  },\r\n  {\r\n    name: 'Orders',\r\n    Icon: Icons.Orders,\r\n  },\r\n  {\r\n    name: 'Checkout',\r\n    Icon: Icons.Checkout,\r\n  },\r\n  {\r\n    name: 'Payments',\r\n    Icon: Icons.Payments,\r\n  },\r\n  {\r\n    name: 'Promotions',\r\n    Icon: Icons.Promotions,\r\n  },\r\n  {\r\n    name: 'Pricing',\r\n    Icon: Icons.Pricing,\r\n  },\r\n  {\r\n    name: 'AccountManagement',\r\n    Icon: Icons.AccountManagement,\r\n  },\r\n  {\r\n    name: 'StoreSearch',\r\n    Icon: Icons.StoreSearch,\r\n  },\r\n  {\r\n    name: 'Subscriptions',\r\n    Icon: Icons.Subscriptions,\r\n  },\r\n  {\r\n    name: 'Fulfillment',\r\n    Icon: Icons.Fulfillment,\r\n  },\r\n]\r\n\r\nconst getIcon = (name: string) => {\r\n  return IconsMap.find((icon) => icon.name === name)?.Icon\r\n}\r\n\r\n//Interfaces\r\nexport interface OverviewCardProps {\r\n  icon: string\r\n  link: string\r\n  children: string\r\n}\r\n\r\nconst OverviewCard = ({ icon, link, children }: OverviewCardProps) => {\r\n  const Icon = getIcon(icon)\r\n  return (\r\n    \r\n      \r\n        {Icon && }\r\n        {children}\r\n      \r\n    \r\n  )\r\n}\r\n\r\nexport default OverviewCard\r\n","import React from 'react'\r\nimport type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst StorageUnit = (props: IconProps) => (\r\n  \r\n    \r\n      \r\n      \r\n      \r\n      \r\n      \r\n      \r\n      \r\n    \r\n  \r\n)\r\n\r\nconst Board = (props: IconProps) => (\r\n  \r\n    \r\n      \r\n      \r\n      \r\n      \r\n    \r\n  \r\n)\r\n\r\nconst Composable = (props: IconProps) => (\r\n  \r\n    \r\n      \r\n      \r\n      \r\n      \r\n    \r\n  \r\n)\r\n\r\nconst Integration = (props: IconProps) => (\r\n  \r\n    \r\n    \r\n    \r\n    \r\n    \r\n  \r\n)\r\n\r\nconst SearchList = (props: IconProps) => (\r\n  \r\n    \r\n    \r\n    \r\n    \r\n    \r\n    \r\n    \r\n  \r\n)\r\n\r\nconst SwitchArrows = (props: IconProps) => (\r\n  \r\n    \r\n    \r\n    \r\n    \r\n    \r\n    \r\n  \r\n)\r\n\r\nconst SearchDetails = (props: IconProps) => (\r\n  \r\n    \r\n    \r\n    \r\n  \r\n)\r\n\r\nconst List = (props: IconProps) => (\r\n  \r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    \r\n  \r\n)\r\n\r\nconst StoreCart = (props: IconProps) => (\r\n  \r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    \r\n  \r\n)\r\n\r\nconst GlobeCart = (props: IconProps) => (\r\n  \r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    \r\n  \r\n)\r\n\r\nconst PaymentHand = (props: IconProps) => (\r\n  \r\n    \r\n    \r\n    \r\n    \r\n    \r\n  \r\n)\r\n\r\nconst ToStore = (props: IconProps) => (\r\n  \r\n    \r\n    \r\n    \r\n    \r\n    \r\n    \r\n  \r\n)\r\nconst ChangeCart = (props: IconProps) => (\r\n  \r\n    \r\n    \r\n    \r\n    \r\n    \r\n    \r\n    \r\n  \r\n)\r\n\r\nconst Blocks = (props: IconProps) => (\r\n  \r\n    {' '}\r\n    \r\n      {' '}\r\n      {' '}\r\n      {' '}\r\n      {' '}\r\n      {' '}\r\n    \r\n  \r\n)\r\nconst StoreData = (props: IconProps) => (\r\n  \r\n    \r\n    \r\n    \r\n    \r\n    \r\n  \r\n)\r\nconst FileConfiguration = (props: IconProps) => (\r\n  \r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    \r\n  \r\n)\r\nconst Cart = (props: IconProps) => (\r\n  \r\n    \r\n    \r\n    \r\n    \r\n  \r\n)\r\n\r\nconst Platform = (props: IconProps) => (\r\n  \r\n    \r\n      \r\n      \r\n      \r\n      \r\n      \r\n      \r\n      \r\n    \r\n  \r\n)\r\n\r\nconst RestApis = (props: IconProps) => (\r\n  \r\n    \r\n      \r\n      \r\n      \r\n      \r\n    \r\n  \r\n)\r\n\r\nconst Catalog = (props: IconProps) => (\r\n  \r\n    {' '}\r\n    \r\n  \r\n)\r\n\r\nconst Orders = (props: IconProps) => (\r\n  \r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    \r\n  \r\n)\r\n\r\nconst Checkout = (props: IconProps) => (\r\n  \r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    \r\n  \r\n)\r\n\r\nconst Payments = (props: IconProps) => (\r\n  \r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    \r\n  \r\n)\r\n\r\nconst Promotions = (props: IconProps) => (\r\n  \r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    \r\n  \r\n)\r\n\r\nconst Pricing = (props: IconProps) => (\r\n  \r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    \r\n  \r\n)\r\n\r\nconst AccountManagement = (props: IconProps) => (\r\n  \r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    \r\n  \r\n)\r\n\r\nconst StoreSearch = (props: IconProps) => (\r\n  \r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    \r\n  \r\n)\r\nconst Subscriptions = (props: IconProps) => (\r\n  \r\n    \r\n      \r\n      \r\n      \r\n      \r\n      \r\n      \r\n    \r\n  \r\n)\r\n\r\nconst Fulfillment = (props: IconProps) => (\r\n  \r\n    \r\n      \r\n      \r\n      \r\n      \r\n      \r\n      \r\n      \r\n      \r\n      \r\n      \r\n    \r\n  \r\n)\r\n\r\nexport {\r\n  StorageUnit,\r\n  Board,\r\n  Composable,\r\n  Integration,\r\n  SearchList,\r\n  SwitchArrows,\r\n  SearchDetails,\r\n  ChangeCart,\r\n  ToStore,\r\n  PaymentHand,\r\n  GlobeCart,\r\n  StoreCart,\r\n  List,\r\n  Blocks,\r\n  StoreData,\r\n  FileConfiguration,\r\n  Cart,\r\n  Platform,\r\n  RestApis,\r\n  Catalog,\r\n  Orders,\r\n  Checkout,\r\n  Payments,\r\n  Promotions,\r\n  Pricing,\r\n  AccountManagement,\r\n  StoreSearch,\r\n  Subscriptions,\r\n  Fulfillment,\r\n}\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\n\r\nexport interface IYoutubeFrame {\r\n  embedId: string\r\n}\r\nconst YoutubeFrame = ({ embedId }: IYoutubeFrame) => (\r\n  
\r\n \r\n
\r\n)\r\n\r\nYoutubeFrame.propTypes = {\r\n embedId: PropTypes.string.isRequired,\r\n}\r\n\r\nexport default YoutubeFrame\r\n","import React from 'react'\r\nimport { Box } from '@vtex/brand-ui'\r\nimport styles from './styles'\r\n\r\nexport interface StepsProps {\r\n children: string\r\n}\r\nconst Steps = ({ children }: StepsProps) => {\r\n return {children}\r\n}\r\nexport default Steps\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst steps: SxStyleProp = {\r\n ml: '4px',\r\n mt: '12px',\r\n mb: '27px',\r\n borderLeft: '1px solid #e5e7eb',\r\n pl: '25px',\r\n position: 'relative',\r\n '.heading': {\r\n counterIncrement: `step`,\r\n },\r\n '.heading:before': {\r\n content: `counter(step)`,\r\n position: 'absolute',\r\n border: '4px solid #ffffff',\r\n width: '2em',\r\n height: '2em',\r\n left: '-1.3em',\r\n color: '#a1a1aa',\r\n backgroundColor: '#f2f3f6',\r\n borderRadius: '9999px',\r\n fontSize: '1em',\r\n textAlign: 'center',\r\n lineHeight: '2.1em',\r\n boxSizing: 'content-box',\r\n },\r\n}\r\n\r\nexport default {\r\n steps,\r\n}\r\n","import React, { ReactElement, useEffect, useRef, useState } from 'react'\r\nimport { Box, Button, Flex } from '@vtex/brand-ui'\r\nimport CloseIcon from 'components/icons/close-icon'\r\nimport useClickOutside from 'utils/hooks/useClickOutside'\r\nimport styles from './styles'\r\n\r\ninterface Props {\r\n children: ReactElement\r\n}\r\n\r\nexport default function LightBox({ children }: Props) {\r\n const [isModalOpen, setIsModalOpen] = useState(false)\r\n const modalRef = useRef()\r\n\r\n useEffect(() => {\r\n if (isModalOpen) {\r\n const scrollTop = document.body.getBoundingClientRect().top\r\n document.body.style.top = `${scrollTop}px`\r\n document.body.classList.add('modal-open')\r\n } else {\r\n document.body.classList.remove('modal-open')\r\n document.body.style.removeProperty('top')\r\n }\r\n }, [isModalOpen])\r\n\r\n useClickOutside(modalRef, () => setIsModalOpen(false))\r\n\r\n return (\r\n
\r\n {isModalOpen && (\r\n \r\n }\r\n onClick={() => setIsModalOpen(false)}\r\n />\r\n \r\n {children}\r\n \r\n \r\n )}\r\n setIsModalOpen(true)}>\r\n {children}\r\n \r\n
\r\n )\r\n}\r\n","import React from 'react'\r\nimport type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst CloseIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default CloseIcon\r\n","import { useEffect, MutableRefObject, SetStateAction, Dispatch } from 'react'\r\n\r\nexport default function useClickOutside(\r\n ref: MutableRefObject,\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n openModal: Dispatch>\r\n) {\r\n useEffect(() => {\r\n function handleClickOutside(event: MouseEvent) {\r\n const { body, documentElement } = document\r\n if (\r\n ref.current &&\r\n event.target instanceof Node &&\r\n !ref.current.contains(event.target)\r\n ) {\r\n openModal({ modalToggle: false })\r\n const scrollTop = body.getBoundingClientRect().top * -1\r\n body.classList.remove('modal-open')\r\n documentElement.scrollTop = scrollTop\r\n body.style.removeProperty('top')\r\n }\r\n }\r\n document.addEventListener('mousedown', handleClickOutside)\r\n return () => {\r\n document.removeEventListener('mousedown', handleClickOutside)\r\n }\r\n }, [])\r\n}\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst imageContainer: SxStyleProp = {\r\n cursor: 'pointer',\r\n borderRadius: '5px',\r\n width: 'fit-content',\r\n mt: '16px',\r\n mb: '24px',\r\n transition: '0.3s',\r\n ':hover': {\r\n boxShadow: '2px 4px 8px 2px rgb(0 0 0 / 10%)',\r\n },\r\n\r\n '> img': {\r\n maxWidth: '100%',\r\n display: 'block',\r\n padding: '0',\r\n margin: '0',\r\n border: '1px solid #e7e9ed',\r\n borderRadius: '4px'\r\n },\r\n}\r\n\r\nconst container: SxStyleProp = {\r\n margin: '0',\r\n width: '100%',\r\n height: '100%',\r\n backgroundColor: 'rgba(0,0,0,0.9)',\r\n position: 'fixed',\r\n top: '0',\r\n left: '0',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n zIndex: '10000',\r\n}\r\n\r\nconst modal: SxStyleProp = {\r\n display: 'inline-block',\r\n margin: 'auto',\r\n boxShadow: '2px 4px 16px rgb(0 0 0 / 30%)',\r\n position: 'relative',\r\n zIndex: '10001',\r\n padding: '0',\r\n\r\n '> img': {\r\n display: 'block',\r\n maxHeight: 'calc(100vh - 50px)',\r\n maxWidth: 'calc(100vw - 50px)',\r\n width: 'auto',\r\n margin: '0',\r\n padding: '0',\r\n },\r\n}\r\n\r\nconst closeButton: SxStyleProp = {\r\n position: 'absolute',\r\n zIndex: '10002',\r\n top: '10px',\r\n right: '10px',\r\n color: '#FEFEFE',\r\n\r\n ':hover': {\r\n color: 'rgb(100, 100, 100)',\r\n },\r\n}\r\n\r\nexport default {\r\n imageContainer,\r\n container,\r\n modal,\r\n closeButton,\r\n}\r\n","import React from 'react'\r\nimport { Box, Flex, IconCaret, Text, Link } from '@vtex/brand-ui'\r\nimport styles from './styles'\r\nimport Image from 'next/image.js'\r\n\r\nexport type WhatsNextDataElement = {\r\n title: string\r\n description?: string\r\n linkTitle?: string\r\n linkTo: string\r\n image?: string\r\n}\r\n\r\nconst WhatsNextCard = ({\r\n title,\r\n description,\r\n linkTitle,\r\n linkTo,\r\n image,\r\n}: WhatsNextDataElement) => {\r\n return (\r\n \r\n {image ? (\r\n \r\n \r\n \r\n {title}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {title}\r\n \r\n {description && (\r\n \r\n {description}\r\n \r\n )}\r\n {linkTitle && (\r\n \r\n \r\n {linkTitle}\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default WhatsNextCard\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst container: SxStyleProp = {\r\n mt: '16px',\r\n borderRadius: '4px',\r\n border: '1px solid #E7E9EE',\r\n width: ['100%', '49%'],\r\n transition: 'all 0.3s ease-out',\r\n ':hover': {\r\n cursor: 'pointer',\r\n },\r\n ':active, :hover': {\r\n borderColor: 'muted.2',\r\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\r\n transition: 'all 0.3 ease-out',\r\n '.title, .description': {\r\n transition: 'all 0.3s ease-out',\r\n color: '#000711',\r\n },\r\n '.link, .caret': {\r\n transition: 'all 0.3s ease-out',\r\n color: 'muted.0',\r\n },\r\n },\r\n}\r\n\r\nconst title: SxStyleProp = {\r\n mb: '8px',\r\n fontSize: '16px',\r\n fontWeight: '400',\r\n lineHeight: ['22px', '18px'],\r\n color: 'muted.0',\r\n}\r\n\r\nconst imageTitle: SxStyleProp = {\r\n padding: '16px',\r\n fontSize: '16px',\r\n fontWeight: '400',\r\n color: 'muted.0',\r\n ':after': {\r\n content: `url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='rgb(74 89 108)' %3E%3Cpath fill-rule='evenodd' d='M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z' clip-rule='evenodd' /%3E%3C/svg%3E\")`,\r\n position: 'absolute',\r\n height: '16px',\r\n width: '16px',\r\n marginLeft: '3px',\r\n lineHeight: '30px',\r\n },\r\n}\r\n\r\nconst description: SxStyleProp = {\r\n fontSize: '14px',\r\n fontWeight: '400',\r\n lineHeight: '20px',\r\n color: 'muted.0',\r\n}\r\n\r\nconst linkContainer: SxStyleProp = {\r\n mt: '8px',\r\n alignItems: 'center',\r\n}\r\n\r\nconst link: SxStyleProp = {\r\n ...description,\r\n color: 'muted.1',\r\n}\r\n\r\nexport default {\r\n container,\r\n title,\r\n imageTitle,\r\n description,\r\n linkContainer,\r\n link,\r\n}","import type { Dispatch, ReactNode, SetStateAction } from 'react'\r\nimport { createContext, useEffect, useState } from 'react'\r\nimport { Item } from 'lib/table-of-contents/TableOfContents.types'\r\nimport { Section } from 'utils/typings/types'\r\nimport { SWRConfig } from 'swr'\r\n\r\ninterface Props extends Partial {\r\n children: ReactNode\r\n /** The navigation array containing the list of documentations shown in the sidebar. */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n fallback?: any\r\n /** Documentation sections, the same sections that divide the fallback. */\r\n sections: Section[][]\r\n /** Whether is a branch preview or not. */\r\n isPreview: boolean\r\n /** The section currently selected. */\r\n sectionSelected: string\r\n /** The sections to be used on the hamburguer menu */\r\n hamburguerMenuSections: Section[][]\r\n /** The portal language. The default is english. */\r\n locale?: 'en' | 'pt' | 'es'\r\n}\r\n\r\nexport type ContextType = {\r\n headingItems: Item[]\r\n setHeadingItems: Dispatch>\r\n activeItem: ActiveItem\r\n setActiveItem: Dispatch>\r\n goToPreviousItem: () => void\r\n goToPreviousSubItem: () => void\r\n isEditorPreview: boolean\r\n sidebarSectionHidden: boolean\r\n activeSectionName: string\r\n activeSidebarElement: string\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n sidebarDataMaster: any\r\n sidebarElementStatus: Map\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n setSidebarDataMaster: Dispatch>\r\n setIsEditorPreview: Dispatch>\r\n setSidebarSectionHidden: Dispatch>\r\n setActiveSectionName: Dispatch>\r\n setActiveSidebarElement: Dispatch>\r\n toggleSidebarElementStatus: (title: string) => void\r\n openSidebarElement: (title: string) => void\r\n closeSidebarElements: (parentsArray: string[]) => void\r\n sidebarSections: Section[][]\r\n setSidebarSections: Dispatch>\r\n hamburguerSections: Section[][]\r\n setHamburguerSections: Dispatch>\r\n locale: 'en' | 'pt' | 'es'\r\n}\r\n\r\ntype ActiveItem = {\r\n item: string\r\n subItem: string\r\n}\r\n\r\nexport const LibraryContext = createContext({\r\n headingItems: [],\r\n setHeadingItems: () => undefined,\r\n activeItem: {\r\n item: '',\r\n subItem: '',\r\n },\r\n setActiveItem: () => undefined,\r\n goToPreviousItem: () => undefined,\r\n goToPreviousSubItem: () => undefined,\r\n isEditorPreview: false,\r\n sidebarSectionHidden: false,\r\n activeSectionName: '',\r\n activeSidebarElement: '',\r\n sidebarDataMaster: {},\r\n setIsEditorPreview: () => undefined,\r\n sidebarElementStatus: new Map(),\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any\r\n setSidebarDataMaster: (_: any) => undefined,\r\n setSidebarSectionHidden: () => undefined,\r\n setActiveSectionName: () => undefined,\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any\r\n setActiveSidebarElement: (_: any) => undefined,\r\n toggleSidebarElementStatus: () => undefined,\r\n openSidebarElement: () => undefined,\r\n closeSidebarElements: () => undefined,\r\n sidebarSections: [],\r\n setSidebarSections: () => undefined,\r\n hamburguerSections: [],\r\n setHamburguerSections: () => undefined,\r\n locale: 'en',\r\n})\r\n\r\n/** Provider for the LibraryContext created with React.createContext. The context is used in the following components: feedback, search, sidebar, hamburger menu, markdown renderer and table of contents. */\r\nconst LibraryContextProvider = ({ children, ...props }: Props) => {\r\n const [headingItems, setHeadingItems] = useState([])\r\n const [activeItem, setActiveItem] = useState({\r\n item: '',\r\n subItem: '',\r\n })\r\n\r\n const [activeSectionName, setActiveSectionName] = useState(\r\n props.sectionSelected\r\n )\r\n const [sidebarSectionHidden, setSidebarSectionHidden] = useState(false)\r\n const [activeSidebarElement, setActiveSidebarElement] = useState('')\r\n const [sidebarElementStatus, setSidebarElementStatus] = useState(new Map())\r\n const [sidebarDataMaster, setSidebarDataMaster] = useState(props.fallback)\r\n const [isEditorPreview, setIsEditorPreview] = useState(props.isPreview)\r\n const [sidebarSections, setSidebarSections] = useState(props.sections)\r\n const [hamburguerSections, setHamburguerSections] = useState(\r\n props.hamburguerMenuSections\r\n )\r\n const { locale: propsLocale, ...restProps } = props\r\n const locale = propsLocale ?? 'en'\r\n const fallback = restProps.fallback\r\n\r\n useEffect(() => {\r\n setSidebarDataMaster(props.fallback)\r\n }, [props.fallback])\r\n\r\n useEffect(() => {\r\n if (props.sectionSelected === '') setSidebarSectionHidden(true)\r\n else if (props.sectionSelected !== activeSectionName)\r\n setActiveSectionName(props.sectionSelected)\r\n }, [props.sectionSelected])\r\n\r\n const toggleSidebarElementStatus = (title: string) => {\r\n setSidebarElementStatus((sidebarElementStatus) => {\r\n const open =\r\n sidebarElementStatus.has(title) === false\r\n ? true\r\n : !sidebarElementStatus.get(title)\r\n\r\n return new Map(sidebarElementStatus.set(title, open))\r\n })\r\n }\r\n\r\n const closeSidebarElements = (parentsArray: string[]) => {\r\n sidebarElementStatus.forEach((_value, key) => {\r\n if (!parentsArray.includes(key)) {\r\n setSidebarElementStatus((sidebarElementStatus) => {\r\n return new Map(sidebarElementStatus.set(key, false))\r\n })\r\n }\r\n })\r\n }\r\n\r\n const openSidebarElement = (title: string) => {\r\n setSidebarElementStatus((sidebarElementStatus) => {\r\n return new Map(sidebarElementStatus.set(title, true))\r\n })\r\n }\r\n\r\n const goToPreviousItem = () => {\r\n setActiveItem(({ item, subItem }) => {\r\n const index = headingItems.findIndex((heading) => heading.slug === item)\r\n if (index === -1) return { item, subItem }\r\n\r\n const previousItem = !index ? '' : headingItems[index - 1].slug\r\n const previousChildren = !index ? [] : headingItems[index - 1].children\r\n const previousSubItem = !previousChildren.length\r\n ? ''\r\n : previousChildren.slice(-1)[0].slug\r\n\r\n return {\r\n item: previousItem,\r\n subItem: previousSubItem,\r\n }\r\n })\r\n }\r\n\r\n const goToPreviousSubItem = () => {\r\n setActiveItem(({ item, subItem }) => {\r\n const heading = headingItems.find((heading) => heading.slug === item)\r\n const index = heading?.children.findIndex(\r\n (child) => child.slug === subItem\r\n )\r\n\r\n if (!heading || index === -1) return { item, subItem }\r\n\r\n return {\r\n item,\r\n subItem: !index ? '' : heading.children[index - 1].slug,\r\n }\r\n })\r\n }\r\n\r\n return (\r\n \r\n \r\n {children}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default LibraryContextProvider\r\n","export const removeHTML = (str: string) => str.replace(/<\\/?[^>]+>/g, '')\r\n\r\nconst SYMBOL_RUN_THRESHOLD = 3\r\n\r\n/**\r\n * Strips Markdown syntax from text snippets to render as plain text.\r\n * Removes headings, bold, italic, inline code, images, and links while preserving\r\n * the readable content. Also handles tokens left truncated by the upstream\r\n * snippet (e.g. an image/link cut off mid-URL with no closing paren).\r\n */\r\nexport const stripMarkdownForSnippet = (str: string): string => {\r\n if (!str) return ''\r\n\r\n let cleaned = str\r\n // Drop closed fenced blocks (code, mermaid, etc.) including their contents\r\n .replace(/```[\\s\\S]*?```/g, '')\r\n // Drop unclosed/truncated fenced blocks at the end of a snippet\r\n .replace(/```[^\\n]*(?:\\n[\\s\\S]*)?$/g, '')\r\n // Remove markdown images ![alt](url) entirely (alt is usually a filename)\r\n .replace(/!\\[[^\\]]*\\]\\([^)]*\\)/g, '')\r\n // Remove markdown links [text](url) - keep only the text\r\n .replace(/\\[([^\\]]+)\\]\\([^)]+\\)/g, '$1')\r\n // Remove truncated markdown images/links left dangling at the end of a\r\n // snippet (upstream cuts the string mid-token, e.g. \"![alt](https://...\" )\r\n .replace(/!?\\[[^\\]]*\\]\\([^)]*$/g, '')\r\n // Remove a dangling image/link label with no closing bracket (\"![alt\" )\r\n .replace(/!?\\[[^\\]]*$/g, '')\r\n // Remove markdown headings (# ## ### etc.) at line start\r\n .replace(/^#{1,6}\\s+/gm, '')\r\n // Remove markdown headings anywhere in text\r\n .replace(/\\s#{1,6}\\s+/g, ' ')\r\n // Remove bold (**text** or __text__)\r\n .replace(/\\*\\*(.+?)\\*\\*/g, '$1')\r\n .replace(/__(.+?)__/g, '$1')\r\n // Remove italic (*text* or _text_)\r\n .replace(/\\*(.+?)\\*/g, '$1')\r\n .replace(/_(.+?)_/g, '$1')\r\n // Remove inline code (`text`) — keep readable inner text\r\n .replace(/`([^`]+)`/g, '$1')\r\n // Remove horizontal rules (---, ***, ___)\r\n .replace(/^(\\*{3,}|-{3,}|_{3,})$/gm, '')\r\n // Remove blockquotes (>)\r\n .replace(/^>\\s+/gm, '')\r\n // Remove table separator rows (| --- | :--: | etc.)\r\n .replace(/^\\s*\\|?\\s*:?-{3,}:?\\s*(\\|\\s*:?-{3,}:?\\s*)*\\|?\\s*$/gm, '')\r\n // Replace remaining table pipes with spaces so cell content stays readable\r\n .replace(/\\s*\\|\\s*/g, ' ')\r\n // Collapse stray horizontal-rule / table-separator symbol runs\r\n .replace(new RegExp(`-{${SYMBOL_RUN_THRESHOLD},}`, 'g'), ' ')\r\n .replace(new RegExp(`={${SYMBOL_RUN_THRESHOLD},}`, 'g'), ' ')\r\n .replace(new RegExp(`\\\\|{${SYMBOL_RUN_THRESHOLD},}`, 'g'), ' ')\r\n // Remove extra whitespace and normalize spaces\r\n .replace(/\\s+/g, ' ')\r\n .trim()\r\n\r\n // If the snippet starts mid-word (lowercase letter), try to find the start of the next word\r\n if (cleaned.length > 0 && /^[a-zà-ÿ]/.test(cleaned)) {\r\n const firstSpaceIndex = cleaned.indexOf(' ')\r\n if (firstSpaceIndex > 0 && firstSpaceIndex < 50) {\r\n cleaned = cleaned.substring(firstSpaceIndex + 1).trim()\r\n }\r\n }\r\n\r\n return cleaned\r\n}\r\n\r\nexport const capitalizeFirstLetter = (str: string) => {\r\n return str.charAt(0).toUpperCase() + str.slice(1)\r\n}\r\n\r\nexport const toCamelCase = (str: string) => {\r\n const [firstWord, ...otherWords] = str.split('-')\r\n return `${firstWord}${otherWords.map(capitalizeFirstLetter).join('')}`\r\n}\r\n\r\nexport const slugify = (str: string) => {\r\n return str\r\n .normalize('NFD') // Decomposes diacritics (e.g., \"é\" → \"é\")\r\n .replace(/[\\u0300-\\u036f]/g, '') // Removes diacritic marks\r\n .toLowerCase()\r\n .replace(/[^\\w\\s-]/g, '') // Removes non-word characters except spaces and hyphens\r\n .replace(/\\s+/g, '-') // Replaces spaces with hyphens\r\n .replace(/-+/g, '-') // Removes multiple consecutive hyphens\r\n .trim() // Trims leading/trailing spaces\r\n}\r\n\r\ntype Child = string | { props: { children: Child[] } }\r\n\r\nexport const childrenToString: (children: Child[]) => string = (children) => {\r\n if (!children) return ''\r\n else if (Array.isArray(children))\r\n return children\r\n .map((child) => {\r\n if (typeof child === 'string') return child\r\n return childrenToString(child.props.children)\r\n })\r\n .join('')\r\n else {\r\n if (typeof children === 'string') return children\r\n return childrenToString(children['props']['children'])\r\n }\r\n}\r\n\r\nexport const matrixToMarkdownTable: (matrix: string[][]) => string = (\r\n matrix\r\n) => {\r\n const matrixRowToMarkdownTableRow = (matrixRow: string[]) =>\r\n `|${matrixRow\r\n .map((matrixElement) => ` ${matrixElement.replace(/\\n/g, '
')} |`)\r\n .join('')}`\r\n\r\n let table = matrixRowToMarkdownTableRow(matrix[0]) + '\\n|'\r\n for (let i = 0; i < matrix[0].length; i++) table += ' --- |'\r\n\r\n table += '\\n'\r\n for (let i = 1; i < matrix.length; i++)\r\n table += matrixRowToMarkdownTableRow(matrix[i]) + '\\n'\r\n\r\n return table\r\n}\r\n","import mermaid from 'mermaid'\r\n\r\nconst mermaidInit = () => {\r\n mermaid.initialize({\r\n theme: 'base',\r\n themeVariables: {\r\n primaryColor: '#FFFFFF',\r\n primaryTextColor: '#142032',\r\n primaryBorderColor: '#A1AAB7',\r\n labelBoxBorderColor: '#E31C58',\r\n labelTextColor: '#E31C58',\r\n labelBoxBkgColor: '#FFF3F6',\r\n lineColor: '#A1AAB7',\r\n mainBkg: '#F8F7FC',\r\n },\r\n })\r\n}\r\n\r\nexport default mermaidInit\r\n",".img {\r\n max-width: 100%;\r\n padding-top: 2vh;\r\n border-radius: 4px;\r\n}\r\n\r\n.heading::before {\r\n content: '';\r\n display: block;\r\n visibility: hidden;\r\n pointer-events: none;\r\n}\r\n\r\n.code {\r\n background-color: unset;\r\n background-color: var(--md-code-background, #f6f8fa);\r\n border-radius: 4px;\r\n color: var(--md-code-text);\r\n margin: 0;\r\n padding: 0.2em 0.4em;\r\n font-size: 0.875em;\r\n word-break: break-word;\r\n overflow-wrap: break-word;\r\n}\r\n\r\ntable .code {\r\n word-break: normal;\r\n}\r\n\r\n.blockquote {\r\n display: grid;\r\n padding: 20px;\r\n gap: 20px;\r\n width: 100%;\r\n margin: 16px 0px 24px;\r\n border-radius: 4px;\r\n align-items: center;\r\n border: 1px solid #ccced8;\r\n grid-template-columns: 20px 1fr;\r\n grid-template-rows: auto;\r\n word-break: break-word;\r\n}\r\n\r\n.blockquote a {\r\n word-break: break-word;\r\n overflow-wrap: break-word;\r\n}\r\n\r\n.blockquote p,\r\n.blockquote div {\r\n margin: 0px;\r\n grid-column: 2 / -1;\r\n grid-row: 1 / 1;\r\n}\r\n\r\n.blockquote > div {\r\n width: 100%;\r\n max-width: 100%;\r\n min-width: 0;\r\n}\r\n\r\n.blockquote ch-code-scroll-parent {\r\n width: 100% !important;\r\n overflow-x: auto !important;\r\n overflow-y: hidden !important;\r\n background-color: unset !important;\r\n}\r\n\r\n.blockquote a {\r\n color: #e31c58 !important;\r\n -webkit-text-decoration: underline 1px solid;\r\n text-decoration: underline 1px solid;\r\n}\r\n\r\n.blockquote a:hover {\r\n color: #c81e51;\r\n}\r\n\r\n.blockquoteIcon {\r\n display: inline-block;\r\n flex-shrink: 0;\r\n grid-row: 1;\r\n}\r\n\r\n.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteWarning {\r\n background: #fff2d4;\r\n border: 1px solid #ffb100;\r\n}\r\n\r\n.blockquoteWarning code {\r\n background-color: #ffe5b5;\r\n}\r\n\r\n.blockquoteInfo code {\r\n background-color: unset;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.flexWrap {\r\n flex-wrap: wrap;\r\n justify-content: space-between;\r\n}\r\n\r\n.svgContainer {\r\n width: 100%;\r\n}","{\r\n \"feedback_section.question\": \"Was this helpful?\",\r\n \"feedback_section.response\": \"Thanks for the feedback!\",\r\n \"feedback_section.positive\": \"Yes\",\r\n \"feedback_section.negative\": \"No\",\r\n \"feedback_section.edit\": \"Suggest Edits (GitHub)\",\r\n \"feedback_modal.title\": \"Leave a Comment (Optional)\",\r\n \"feedback_modal.button\": \"Send Feedback\",\r\n \"search_input.empty\": \"No results found. Try different search terms.\",\r\n \"search_input.placeholder\": \"Search\",\r\n \"search_results.showing\": \"Showing\",\r\n \"search_results.results_for\": \"results for\",\r\n \"search_results.in\": \"in\",\r\n \"search_results.all_lowercase\": \"all results\",\r\n \"sidebar_search.placeholder\": \"Search in\",\r\n \"search_input.see_all\": \"See all results\",\r\n \"search_results.summary\": \"Showing {count} results for \\\"{keyword}\\\" in {section}\",\r\n \"search_results.all\": \"All results\",\r\n \"search_card.in\": \"In\",\r\n \"image.error_loading\": \"An error occurred while loading the image\",\r\n \"api_reference_sidebar_filter_clear\": \"Clear All\",\r\n \"api_reference_sidebar_filter\": \"Filter By\",\r\n \"cookie_bar.title\": \"We use cookies\",\r\n \"cookie_bar.description\": \"This website uses cookies to improve navigation, analyze usage, and assist with our marketing efforts.\",\r\n \"cookie_bar.accept\": \"I agree\",\r\n \"cookie_bar.decline\": \"I decline\",\r\n \"landing_page_subscription.title\": \"Stay up to date with VTEX documentation\",\r\n \"landing_page_subscription.description\": \"Subscribe to our monthly newsletter to receive information about the latest announcements, release notes, and newly published articles.\",\r\n \"landing_page_newsletter.Button\": \"Subscribe\",\r\n \"subscription_list.api_key_error\": \"Newsletter API key is not defined\",\r\n \"subscription_list.invalid_email\": \"Invalid email address, please try another one.\",\r\n \"subscription_list.success\": \"You've successfully subscribed!\",\r\n \"subscription_list.error\": \"Sorry, we couldn't subscribe you. Please try again later.\",\r\n \"subscription_list.privacy_notice\": \"By subscribing to our newsletter, you agree to our\",\r\n \"subscription_list.privacy_policy_link\": \"Privacy Policy\"\r\n}\r\n","{\r\n \"feedback_section.question\": \"¿Te ha parecido útil?\",\r\n \"feedback_section.response\": \"Gracias por tu feedback\",\r\n \"feedback_section.positive\": \"Sí\",\r\n \"feedback_section.negative\": \"No\",\r\n \"feedback_section.edit\": \"Sugerir cambios (GitHub)\",\r\n \"feedback_modal.title\": \"Dar feedback (opcional)\",\r\n \"feedback_modal.button\": \"Enviar feedback\",\r\n \"search_input.empty\": \"No se encontraron resultados. Intenta utilizar otros términos.\",\r\n \"search_input.placeholder\": \"Buscar\",\r\n \"sidebar_search.placeholder\": \"Buscar en\",\r\n \"search_results.showing\": \"Mostrando\",\r\n \"search_results.results_for\": \"resultados para\",\r\n \"search_results.in\": \"en\",\r\n \"search_results.all_lowercase\": \"todos los resultados\",\r\n \"search_input.see_all\": \"Ver todos los resultados\",\r\n \"search_results.summary\": \"Mostrando {count} resultados para \\\"{keyword}\\\" en {section}\",\r\n \"search_results.all\": \"Todos los resultados\",\r\n \"search_card.in\": \"En\",\r\n \"image.error_loading\": \"Se produjo un error al cargar la imagen\",\r\n \"api_reference_sidebar_filter_clear\": \"Limpiar todo\",\r\n \"api_reference_sidebar_filter\": \"Filtrar por\",\r\n \"cookie_bar.title\": \"Utilizamos cookies\",\r\n \"cookie_bar.description\": \"Este sitio web utiliza cookies para optimizar la navegación, analizar el uso e impulsar nuestros esfuerzos de marketing.\",\r\n \"cookie_bar.accept\": \"Acepto\",\r\n \"cookie_bar.decline\": \"Rechazo\",\r\n \"landing_page_subscription.title\": \"Mantente al día con la documentación de VTEX\",\r\n \"landing_page_subscription.description\": \"Suscríbete a nuestro newsletter mensual para recibir información sobre los últimos anuncios, release notes y artículos recién publicados.\",\r\n \"landing_page_newsletter.Button\": \"Inscríbete\",\r\n \"subscription_list.api_key_error\": \"La clave de API de la newsletter no está definida\",\r\n \"subscription_list.invalid_email\": \"Dirección de email inválida, por favor intenta con otra.\",\r\n \"subscription_list.success\": \"¡Te has suscrito con éxito!\",\r\n \"subscription_list.error\": \"Lo sentimos, no pudimos suscribirte. Por favor, inténtalo de nuevo más tarde.\",\r\n \"subscription_list.privacy_notice\": \"Al suscribirte a nuestra newsletter, aceptas nuestro\",\r\n \"subscription_list.privacy_policy_link\": \"Aviso de privacidad\"\r\n}\r\n","{\r\n \"feedback_section.question\": \"Isso foi útil?\",\r\n \"feedback_section.response\": \"Agradecemos pelo seu feedback.\",\r\n \"feedback_section.positive\": \"Sim\",\r\n \"feedback_section.negative\": \"Não\",\r\n \"feedback_section.edit\": \"Sugerir edições (GitHub)\",\r\n \"feedback_modal.title\": \"Deixe um comentário (opcional)\",\r\n \"feedback_modal.button\": \"Enviar feedback\",\r\n \"search_input.empty\": \"Nenhum resultado encontrado. Tente buscar por outros termos.\",\r\n \"search_input.placeholder\": \"Buscar\",\r\n \"sidebar_search.placeholder\": \"Buscar em\",\r\n \"search_results.showing\": \"Mostrando\",\r\n \"search_results.results_for\": \"resultados para\",\r\n \"search_results.in\": \"em\",\r\n \"search_results.all_lowercase\": \"todos os resultados\",\r\n \"search_input.see_all\": \"Ver todos os resultados\",\r\n \"search_results.summary\": \"Mostrando {count} resultados para \\\"{keyword}\\\" em {section}\",\r\n \"search_results.all\": \"Todos os resultados\",\r\n \"search_card.in\": \"Em\",\r\n \"image.error_loading\": \"Ocorreu um erro ao carregar a imagem\",\r\n \"api_reference_sidebar_filter_clear\": \"Limpar tudo\",\r\n \"api_reference_sidebar_filter\": \"Filtrar por\",\r\n \"cookie_bar.title\": \"Nós usamos cookies\",\r\n \"cookie_bar.description\": \"Este site utiliza cookies para melhorar a navegação, analisar a experiência de uso e auxiliar em nossas ações de marketing.\",\r\n \"cookie_bar.accept\": \"Concordo\",\r\n \"cookie_bar.decline\": \"Discordo\",\r\n \"landing_page_subscription.title\": \"Mantenha-se em dia com a documentação da VTEX\",\r\n \"landing_page_subscription.description\": \"Assine nossa newsletter mensal para receber informações sobre os Announcements mais recentes, Release Notes e os artigos recém-publicados.\",\r\n \"landing_page_newsletter.Button\": \"Inscreva-se\",\r\n \"subscription_list.api_key_error\": \"A chave da API da newsletter não está definida\",\r\n \"subscription_list.invalid_email\": \"Endereço de email inválido, por favor tente outro.\",\r\n \"subscription_list.success\": \"Você se inscreveu com sucesso!\",\r\n \"subscription_list.error\": \"Desculpe, não foi possível realizar sua inscrição. Por favor, tente novamente mais tarde.\",\r\n \"subscription_list.privacy_notice\": \"Ao assinar nossa newsletter, você concorda com a nossa\",\r\n \"subscription_list.privacy_policy_link\": \"Política de Privacidade\"\r\n}","import enMessages from '../messages/en.json'\r\nimport esMessages from '../messages/es.json'\r\nimport ptMessages from '../messages/pt.json'\r\nimport { MessagesType } from './typings/messages-types'\r\n\r\nconst getMessages = (): {\r\n en: MessagesType\r\n es: MessagesType\r\n pt: MessagesType\r\n} => {\r\n const messages = {\r\n en: enMessages,\r\n es: esMessages,\r\n pt: ptMessages,\r\n }\r\n\r\n return messages\r\n}\r\n\r\nexport const messages = getMessages()\r\n","import { useContext, useEffect } from 'react'\r\nimport Link from 'next/link.js'\r\nimport { useRouter } from 'next/router.js'\r\nimport { Box, Text } from '@vtex/brand-ui'\r\nimport AnimateHeight from 'react-animate-height'\r\n\r\nimport { removeHTML } from 'utils/string-utils'\r\nimport { Item } from './TableOfContents.types'\r\n\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\n\r\nimport styles from './styles'\r\n\r\ninterface Props {\r\n /** List of headings in the current documentation page */\r\n headingList?: Item[]\r\n children?: React.ReactNode\r\n}\r\n\r\n/** Table of contents for documentation pages. */\r\nconst TableOfContents = ({ headingList, children }: Props) => {\r\n const router = useRouter()\r\n const { headingItems, activeItem, setHeadingItems, setActiveItem } =\r\n useContext(LibraryContext)\r\n\r\n useEffect(() => {\r\n const headings: Item[] = headingList ?? []\r\n if (!headings.length) {\r\n document.querySelectorAll('h2, h3').forEach((heading) => {\r\n const headingSlug = heading.id\r\n const item = {\r\n title: removeHTML(heading.innerHTML).replace(':', ''),\r\n slug: headingSlug,\r\n }\r\n\r\n if (heading.tagName === 'H2') {\r\n headings.push({ ...item, children: [] })\r\n } else if (headings.length > 0) {\r\n headings[headings.length - 1].children.push({ ...item })\r\n } else {\r\n headings.push({ ...item, children: [] })\r\n }\r\n })\r\n setHeadingItems(headings)\r\n } else setHeadingItems(headings)\r\n }, [router.asPath, headingList])\r\n\r\n const Item = ({\r\n title,\r\n slug,\r\n level,\r\n active,\r\n }: {\r\n title: string\r\n slug: string\r\n level: number\r\n active: boolean\r\n }) => {\r\n return (\r\n {\r\n setActiveItem(({ item }) => ({\r\n item: level === 1 ? slug : item,\r\n subItem: level === 1 ? '' : slug,\r\n }))\r\n }}\r\n >\r\n {title}\r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n {headingItems.length > 0 && (\r\n ON THIS PAGE\r\n )}\r\n \r\n {headingItems.map((item) => (\r\n \r\n \r\n \r\n \r\n {item.children.map((subItem) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n ))}\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport default TableOfContents\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst itemsContainer: SxStyleProp = {\r\n position: 'sticky',\r\n top: 'calc(5rem + 32px)',\r\n}\r\n\r\nconst tocTitle: SxStyleProp = {\r\n fontSize: '10px',\r\n fontWeight: '600',\r\n textTransform: 'uppercase',\r\n mb: '6px',\r\n color: 'muted.0',\r\n}\r\n\r\nconst headings: SxStyleProp = {\r\n borderLeft: '1px solid #E7E9EE',\r\n mb: '16px',\r\n}\r\n\r\nconst item: (level: number, active: boolean) => SxStyleProp = (\r\n level,\r\n active\r\n) => {\r\n const defaultLineHeight = `${level === 1 ? 18 : 22}px`\r\n return {\r\n ml: '-1px',\r\n pl: `${level * 8}px`,\r\n py: ['6px', '6px', '6px', '6px', '4px', '4px'],\r\n borderLeft: `1px solid ${active && level === 1 ? '#E31C58' : '#E7E9EE'}`,\r\n fontSize: ['16px', '16px', '16px', '16px', '12px', '16px'],\r\n lineHeight: [\r\n defaultLineHeight,\r\n defaultLineHeight,\r\n defaultLineHeight,\r\n defaultLineHeight,\r\n `${level === 1 ? 16 : 18}px`,\r\n defaultLineHeight,\r\n ],\r\n fontWeight: `${active ? '600' : '400'}`,\r\n color: `${active ? '#0C1522' : 'muted.0'}`,\r\n\r\n ':hover': {\r\n color: '#000711',\r\n },\r\n }\r\n}\r\n\r\nconst subItemsContainer: SxStyleProp = {\r\n ml: '16px',\r\n borderLeft: '1px solid #E7E9EE',\r\n}\r\n\r\nexport default { tocTitle, itemsContainer, item, subItemsContainer, headings }\r\n","import { useEffect, useRef, useState, useContext } from 'react'\r\nimport { Flex, Text, Box } from '@vtex/brand-ui'\r\nimport Link from 'next/link.js'\r\n\r\nimport styles from './styles'\r\nimport { iconTooltipStyle } from './functions'\r\n\r\nimport { Section } from 'utils/typings/types'\r\nimport Tooltip from 'components/tooltip'\r\nimport { updateOpenPage } from 'utils/sidebar-utils'\r\nimport SidebarSection, { SidebarSectionProps } from 'components/sidebar-section'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\n\r\nexport interface SideBarSectionState {\r\n /** Array containing the name of the parents of the expanded page in the menu. */\r\n parentsArray?: string[]\r\n}\r\n\r\n/**\r\n * Sidebar component.\r\n */\r\nconst Sidebar = ({ parentsArray = [] }: SideBarSectionState) => {\r\n const [expandDelayStatus, setExpandDelayStatus] = useState(true)\r\n\r\n const context = useContext(LibraryContext)\r\n const {\r\n isEditorPreview,\r\n setActiveSectionName,\r\n activeSectionName,\r\n sidebarSections,\r\n sidebarDataMaster,\r\n } = context\r\n\r\n const sidebarSectionContent = {\r\n ...(Array.isArray(sidebarDataMaster)\r\n ? sidebarDataMaster?.find(\r\n (section: SidebarSectionProps) =>\r\n section.documentation === activeSectionName\r\n )\r\n : null),\r\n }\r\n\r\n updateOpenPage({\r\n parentsArray,\r\n context,\r\n })\r\n\r\n useEffect(() => {\r\n let timer: NodeJS.Timeout | undefined = undefined\r\n if (sidebarSectionContent.categories?.length > 0)\r\n timer = setTimeout(\r\n () => setExpandDelayStatus && setExpandDelayStatus(false),\r\n 5000\r\n )\r\n else setExpandDelayStatus && setExpandDelayStatus(true)\r\n\r\n return () => {\r\n timer && clearTimeout(timer)\r\n }\r\n }, [activeSectionName])\r\n\r\n const SideBarIcon = (sectionElement: Section) => {\r\n const [iconTooltip, setIconTooltip] = useState(false)\r\n const [tooltipLabel, setTooltipLabel] = useState(sectionElement.title)\r\n const titleRef = useRef()\r\n\r\n useEffect(() => {\r\n const resizeObserver = new MutationObserver(function (entries) {\r\n const target = entries[0].target as HTMLElement\r\n if (target.offsetWidth < target.scrollWidth) setIconTooltip(true)\r\n else setIconTooltip(false)\r\n\r\n if (target.offsetWidth > 0) setTooltipLabel(target.innerText)\r\n })\r\n if (titleRef.current) {\r\n if (titleRef.current.offsetWidth < titleRef.current.scrollWidth)\r\n setIconTooltip(true)\r\n resizeObserver.observe(titleRef.current, {\r\n childList: true,\r\n })\r\n }\r\n return () => {\r\n resizeObserver.disconnect\r\n }\r\n }, [titleRef.current])\r\n\r\n return (\r\n \r\n \r\n {\r\n if (isEditorPreview) {\r\n e.preventDefault()\r\n }\r\n setActiveSectionName(sectionElement.id)\r\n }}\r\n passHref\r\n aria-label={sectionElement.title}\r\n >\r\n \r\n \r\n \r\n {sectionElement.title}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n {sidebarSections.map((section, id) => {\r\n return (\r\n <>\r\n {id > 0 && (\r\n \r\n
\r\n
\r\n )}\r\n \r\n {section.map((element) => (\r\n \r\n ))}\r\n \r\n \r\n )\r\n })}\r\n
\r\n {activeSectionName ? : null}\r\n \r\n )\r\n}\r\n\r\nexport default Sidebar\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst sidebar: SxStyleProp = {\r\n display: [\r\n 'none !important',\r\n 'none !important',\r\n 'none !important',\r\n 'flex !important',\r\n ],\r\n position: 'sticky',\r\n left: '0',\r\n top: '5rem',\r\n flex: '1 0 auto',\r\n height: 'calc(100vh - 5rem)',\r\n width: 'auto',\r\n minWidth: 'auto',\r\n transition: 'all 0.3s ease-in-out',\r\n '.active': {\r\n marginLeft: '-276px',\r\n transition: 'all 0.3s ease-in-out',\r\n },\r\n '.iconContainerExpanded': {\r\n transition: 'all 0.3s ease-in-out',\r\n width: '160px',\r\n },\r\n '.iconDescriptionExpanded': {\r\n display: 'block',\r\n },\r\n}\r\n\r\nconst sidebarIcons: SxStyleProp = {\r\n width: ['56px', '56px', '56px', '56px', '56px', '160px'],\r\n minWidth: 'max-content',\r\n transition: 'all 0.3s ease-in-out',\r\n flexDirection: 'column',\r\n borderRight: '1px solid #E7E9EE',\r\n background: '#FFFFFF',\r\n zIndex: '2',\r\n paddingBottom: '32px',\r\n}\r\n\r\nconst linkContainer: SxStyleProp = {\r\n minWidth: '100%',\r\n}\r\n\r\nconst iconBox: SxStyleProp = {\r\n mt: ['16px'],\r\n width: '100%',\r\n maxWidth: '144px',\r\n paddingLeft: ['0', '0', '0', '8px'],\r\n paddingRight: ['0', '0', '0', '8px', '8px', '0'],\r\n py: ['0', '0', '0', '8px', '8px', '10px'],\r\n height: '40px',\r\n borderRadius: '4px',\r\n alignItems: 'center',\r\n justifyContent: 'flex-start',\r\n background: 'transparent',\r\n color: 'muted.0',\r\n cursor: 'pointer',\r\n ':hover': {\r\n background: '#F8F7FC',\r\n color: '#000711',\r\n path: {\r\n stroke: [\r\n '#000711',\r\n '#000711',\r\n '#000711',\r\n '#000711',\r\n '#000711',\r\n '#4A596B',\r\n ],\r\n },\r\n },\r\n}\r\n\r\nconst iconBoxActive: SxStyleProp = {\r\n ...iconBox,\r\n background: ['#F8F7FC', '#F8F7FC', '#F8F7FC', '#F8F7FC', '#F8F7FC', 'none'],\r\n color: '#E31C58',\r\n}\r\n\r\nconst sidebarIconsContainer: SxStyleProp = {\r\n width: '100%',\r\n flexDirection: 'column',\r\n alignItems: 'flex-start',\r\n px: ['0', '0', '0', '8px'],\r\n}\r\n\r\nconst icon: SxStyleProp = {\r\n width: ['24px'],\r\n height: ['24px'],\r\n}\r\n\r\nconst iconActive: SxStyleProp = {\r\n ...icon,\r\n '> path': {\r\n stroke: '#E31C58',\r\n },\r\n}\r\n\r\nconst sectionDivider: SxStyleProp = {\r\n px: '8px',\r\n marginTop: '16px',\r\n hr: {\r\n border: '1px solid #E7E9EE',\r\n borderTop: 'none',\r\n },\r\n}\r\n\r\nconst iconTitle: SxStyleProp = {\r\n display: ['none', 'none', 'none', 'none', 'none', 'block'],\r\n width: '100%',\r\n fontSize: '14px',\r\n ml: ['8px', '8px', '8px', '8px', '8px', '12px'],\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n}\r\n\r\nconst iconTooltip: SxStyleProp = {\r\n display: [\r\n 'flex !important',\r\n 'flex !important',\r\n 'flex !important',\r\n 'flex !important',\r\n 'flex !important',\r\n 'none !important',\r\n ],\r\n}\r\n\r\nexport default {\r\n sidebar,\r\n sidebarIcons,\r\n sidebarIconsContainer,\r\n linkContainer,\r\n iconBox,\r\n icon,\r\n iconActive,\r\n iconBoxActive,\r\n sectionDivider,\r\n iconTitle,\r\n iconTooltip,\r\n}\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nexport const iconTooltipStyle: SxStyleProp = (tooltipState: boolean) => {\r\n const iconTooltip: SxStyleProp = {\r\n display: [\r\n 'flex',\r\n 'flex',\r\n 'flex',\r\n 'flex',\r\n 'flex',\r\n tooltipState ? 'flex' : 'none !important',\r\n ],\r\n }\r\n return iconTooltip\r\n}\r\n","import { useEffect, useRef, useState } from 'react'\r\nimport { Box, Flex, TooltipProps, SxStyleProp } from '@vtex/brand-ui'\r\n\r\nimport styles from './styles'\r\nimport CaretIcon from 'components/icons/caret'\r\ninterface Props extends Pick {\r\n sx?: SxStyleProp\r\n isCard?: boolean\r\n}\r\n\r\nconst Tooltip = ({ children, label, placement, sx, isCard }: Props) => {\r\n const box = useRef()\r\n const [boxWidth, setBoxWidth] = useState(0)\r\n const [boxHeight, setBoxHeight] = useState(0)\r\n const [boxOffsetLeft, setBoxOffsetLeft] = useState(0)\r\n const [boxOffsetTop, setBoxOffsetTop] = useState(0)\r\n const [visible, setVisible] = useState(false)\r\n\r\n useEffect(() => {\r\n if (box.current) {\r\n setBoxWidth(box.current.clientWidth)\r\n setBoxHeight(box.current.clientHeight)\r\n setBoxOffsetLeft(box.current.offsetLeft)\r\n setBoxOffsetTop(box.current.offsetTop)\r\n }\r\n }, [\r\n box.current,\r\n box.current?.clientWidth,\r\n box.current?.clientHeight,\r\n box.current?.offsetLeft,\r\n box.current?.offsetTop,\r\n ])\r\n\r\n return (\r\n \r\n setVisible(true)}\r\n onMouseLeave={() => setVisible(false)}\r\n >\r\n {children}\r\n \r\n {visible && (isCard ?? true) && (\r\n \r\n \r\n {label}\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default Tooltip\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\ntype Placement = 'top' | 'right' | 'bottom' | 'left'\r\n\r\nconst tooltipContainer: (\r\n sx: SxStyleProp,\r\n placement: Placement,\r\n width: number,\r\n height: number,\r\n x: number,\r\n y: number\r\n) => SxStyleProp = (sx, placement, width, height, x, y) => {\r\n const position = {\r\n bottom: {\r\n left: `${x + width / 2}px`,\r\n top: `${y + height + 3}px`,\r\n },\r\n left: {\r\n left: `${x - 1}px`,\r\n top: `${y + height / 2}px`,\r\n },\r\n top: {\r\n left: `${x + width / 2}px`,\r\n top: `${y - 3}px`,\r\n },\r\n right: {\r\n left: `${x + width + 1}px`,\r\n top: `${y + height / 2}px`,\r\n },\r\n }\r\n\r\n const translation = {\r\n bottom: 'translateX(-50%)',\r\n left: 'translateX(-100%) translateY(-50%)',\r\n top: 'translateX(-50%) translateY(-100%)',\r\n right: 'translateY(-50%)',\r\n }\r\n\r\n const direction = {\r\n bottom: 'column',\r\n left: 'row-reverse',\r\n top: 'column-reverse',\r\n right: 'row',\r\n }\r\n\r\n return {\r\n ...sx,\r\n zIndex: '100',\r\n position: 'absolute',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n ...position[placement],\r\n transform: translation[placement],\r\n flexDirection: direction[placement],\r\n }\r\n}\r\n\r\nconst caret: (placement: Placement) => SxStyleProp = (placement) => {\r\n const rotation = {\r\n bottom: 0,\r\n left: 90,\r\n top: 180,\r\n right: 270,\r\n }\r\n\r\n const translation = {\r\n bottom: 1,\r\n left: 3,\r\n top: 1,\r\n right: 3,\r\n }\r\n\r\n return {\r\n width: '8px',\r\n height: '4px',\r\n minWidth: 'initial',\r\n minHeight: 'initial',\r\n transform: `rotate(${rotation[placement]}deg) translateY(${translation[placement]}px)`,\r\n }\r\n}\r\n\r\nconst label: SxStyleProp = {\r\n borderRadius: '4px',\r\n backgroundColor: 'black',\r\n color: 'white',\r\n fontSize: '12px',\r\n fontWeight: '400',\r\n lineHeight: '130%',\r\n}\r\n\r\nconst labelContibutorsContainer: SxStyleProp = {\r\n ...label,\r\n padding: '4px 8px',\r\n}\r\n\r\nconst labelDocumentationContainer: SxStyleProp = {\r\n ...label,\r\n width: '284px',\r\n textAlign: 'center',\r\n px: '12px',\r\n py: '8px',\r\n}\r\n\r\nconst labelStyle = (documentationSection: boolean): SxStyleProp => {\r\n if (documentationSection) return labelDocumentationContainer\r\n return labelContibutorsContainer\r\n}\r\nexport default { tooltipContainer, caret, labelStyle }\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst CaretIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n)\r\n\r\nexport default CaretIcon\r\n","export const flattenJSON = (\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n obj: any = {},\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n res: any = {},\r\n extraKey = ''\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n): any => {\r\n for (const key in obj) {\r\n if (typeof obj[key] !== 'object') {\r\n res[extraKey + key] = obj[key]\r\n } else {\r\n flattenJSON(obj[key], res, `${extraKey}${key}.`)\r\n }\r\n }\r\n return res\r\n}\r\n\r\nexport const getKeyByEndpoint = (\r\n object: { [x: string]: string },\r\n endpoint: string,\r\n slug: string,\r\n method?: string\r\n) => {\r\n const slugPaths = Object.keys(object).filter((key) => object[key] === slug)\r\n let path = ''\r\n slugPaths?.map((el) => {\r\n if (\r\n method &&\r\n object[`${el.replace('.slug', '.method')}`] == method?.toUpperCase() &&\r\n object[`${el.replace('.slug', '.endpoint')}`] == endpoint\r\n ) {\r\n path = el\r\n } else if (hasChildren(object, el.replace('.slug', '.children'))) {\r\n path = el\r\n }\r\n })\r\n return path\r\n}\r\n\r\nfunction hasChildren(\r\n flattenedJson: { [x: string]: string },\r\n elementKey: string\r\n): boolean {\r\n for (const key in flattenedJson) {\r\n if (key.startsWith(`${elementKey}.`)) {\r\n return true\r\n }\r\n }\r\n return false\r\n}\r\n\r\nexport const getParents = (\r\n path: string,\r\n data: string,\r\n flattenedSidebar: { [x: string]: string },\r\n parentsArray: string[],\r\n parent?: string\r\n) => {\r\n const pathParts = path?.split('children')\r\n pathParts?.splice(-1)\r\n let prev = ''\r\n pathParts?.map((el) => {\r\n el = prev + el\r\n prev = el + 'children'\r\n\r\n if (!parent || flattenedSidebar[`${el}${data}`].includes(parent)) {\r\n parentsArray.push(flattenedSidebar[`${el}${data}`])\r\n }\r\n })\r\n return parentsArray\r\n}\r\n","import { Section } from './typings/types'\r\nimport { flattenJSON, getKeyByEndpoint, getParents } from './navigation-utils'\r\nimport { useRouter } from 'next/router.js'\r\nimport { useEffect } from 'react'\r\nimport { ContextType } from './context/libraryContext'\r\n\r\nexport const getIcon = (doc: string, sections: Section[][]) => {\r\n for (const section of sections) {\r\n return section.find((icon) => icon.title === doc)?.Icon\r\n }\r\n}\r\n\r\ninterface updateOpenPageProps {\r\n parentsArray?: string[]\r\n context: ContextType\r\n}\r\nexport const updateOpenPage = ({\r\n parentsArray = [],\r\n context,\r\n}: updateOpenPageProps) => {\r\n const {\r\n activeSidebarElement,\r\n sidebarDataMaster,\r\n setActiveSidebarElement,\r\n openSidebarElement,\r\n closeSidebarElements,\r\n } = context\r\n const flattenedSidebar = flattenJSON(sidebarDataMaster)\r\n const router = useRouter()\r\n\r\n let activeSlug = ''\r\n const querySlug = router.query.slug\r\n\r\n if (querySlug && router.pathname === '/docs/api-reference/[slug]') {\r\n activeSlug = router.asPath.replace('/docs/api-reference/', '')\r\n const docPath = activeSlug.split('/')\r\n const hasHashTag = router.asPath.indexOf('#') > -1\r\n const apiSlug = docPath[0].split(hasHashTag ? '#' : '?endpoint=')[0]\r\n const endpoint = '/' + docPath.splice(1, docPath.length).join('/')\r\n let keyPath\r\n if (endpoint == '/') {\r\n activeSlug = apiSlug\r\n keyPath = getKeyByEndpoint(flattenedSidebar, '', apiSlug)\r\n } else {\r\n const method = docPath[0]\r\n .split(hasHashTag ? '#' : '?endpoint=')[1]\r\n .split('-')[0]\r\n keyPath = getKeyByEndpoint(flattenedSidebar, endpoint, apiSlug, method)\r\n }\r\n parentsArray.push(activeSlug)\r\n if (keyPath) {\r\n getParents(keyPath, 'slug', flattenedSidebar, parentsArray)\r\n }\r\n } else {\r\n activeSlug = parentsArray[parentsArray.length - 1]\r\n }\r\n\r\n useEffect(() => {\r\n closeSidebarElements(parentsArray)\r\n parentsArray.forEach((slug: string) => {\r\n openSidebarElement(slug)\r\n })\r\n setActiveSidebarElement(activeSlug?.replace('?endpoint=', '#'))\r\n }, [activeSidebarElement, router])\r\n}\r\n","// Sidebar Section\r\nimport { Flex, Box, Text, Button } from '@vtex/brand-ui'\r\nimport { useContext, useMemo, useState } from 'react'\r\n\r\nimport styles from './styles'\r\nimport { SidebarElement } from '../sidebar-elements'\r\nimport SectionFilter from '../sidebar-section-filter'\r\nimport SideBarElements from '../sidebar-elements'\r\nimport SearchIcon from 'components/icons/search-icon'\r\nimport SideBarToggleIcon from 'components/icons/sidebar-toggle-icon'\r\nimport ArrowLeftIcon from 'components/icons/arrow-left-icon'\r\nimport { getIcon } from 'utils/sidebar-utils'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\n\r\nexport interface SidebarSectionProps {\r\n documentation: string\r\n name: string | { en: string, es: string, pt: string }\r\n categories: SidebarElement[]\r\n slugPrefix: string\r\n isHamburgerMenu: boolean\r\n}\r\n\r\nconst SidebarSection = ({\r\n documentation,\r\n name,\r\n categories,\r\n slugPrefix,\r\n isHamburgerMenu = false,\r\n}: SidebarSectionProps) => {\r\n const [searchValue, setSearchValue] = useState('')\r\n const {\r\n isEditorPreview,\r\n sidebarSectionHidden,\r\n setSidebarSectionHidden,\r\n sidebarSections,\r\n locale\r\n } = useContext(LibraryContext)\r\n const [methodFilterList, setMethodFilterList] = useState([\r\n { name: 'POST', active: false },\r\n { name: 'GET', active: false },\r\n { name: 'PUT', active: false },\r\n { name: 'DELETE', active: false },\r\n { name: 'PATCH', active: false },\r\n ])\r\n\r\n const filterStatus = methodFilterList.some(\r\n (methodFilter) => methodFilter.active\r\n )\r\n\r\n const filteredResult = useMemo(() => {\r\n if (!filterStatus && searchValue === '') return categories\r\n\r\n const dataCopy = JSON.parse(JSON.stringify(categories))\r\n\r\n const filteredCategories = dataCopy\r\n .map((category: SidebarElement) => {\r\n category.children = category.children\r\n .map((subcategory) => {\r\n subcategory.children = subcategory.children.filter((endpoint) => {\r\n const hasMethodFilter =\r\n !filterStatus ||\r\n methodFilterList.find(\r\n (methodFilter) => methodFilter.name === endpoint.method\r\n )?.active\r\n const hasInputFilter =\r\n searchValue === '' ||\r\n (typeof endpoint.name === 'string'\r\n ? endpoint.name\r\n : endpoint.name[locale]\r\n )\r\n .toLowerCase()\r\n .includes(searchValue.toLowerCase())\r\n return hasMethodFilter && hasInputFilter\r\n })\r\n return subcategory\r\n })\r\n .filter(\r\n (subcategory) =>\r\n subcategory.children.length > 0 ||\r\n (subcategory.type === 'markdown' &&\r\n (typeof subcategory.name === 'string'\r\n ? subcategory.name\r\n : subcategory.name[locale]\r\n )\r\n .toLowerCase()\r\n .includes(searchValue.toLowerCase()))\r\n )\r\n return category\r\n })\r\n .filter((category: SidebarElement) => category.children.length > 0)\r\n return filteredCategories\r\n }, [filterStatus, methodFilterList, categories, searchValue])\r\n\r\n const DocIcon = getIcon(documentation, sidebarSections)\r\n\r\n let localizedSectionTitle = ''\r\n\r\n if (!categories || categories.length <= 0) {\r\n return <>\r\n } else {\r\n localizedSectionTitle = typeof(name) === 'string' ? name : name[locale]\r\n }\r\n\r\n return isHamburgerMenu ? (\r\n \r\n \r\n \r\n }\r\n onClick={() => {\r\n setSidebarSectionHidden(true)\r\n }}\r\n />\r\n {DocIcon && }\r\n {localizedSectionTitle}\r\n \r\n \r\n \r\n \r\n setSearchValue(e.currentTarget.value)}\r\n />\r\n \r\n {documentation == 'API Reference' && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n {isEditorPreview && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n PREVIEW MODE\r\n \r\n )}\r\n {localizedSectionTitle}\r\n \r\n \r\n setSearchValue(e.currentTarget.value)}\r\n />\r\n \r\n \r\n {documentation == 'API Reference' && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {\r\n setSidebarSectionHidden(\r\n (sidebarSectionHidden) => !sidebarSectionHidden\r\n )\r\n }}\r\n sx={sidebarSectionHidden ? styles.toggleIcon : {}}\r\n />\r\n \r\n \r\n )\r\n}\r\n\r\nexport default SidebarSection\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst sidebarContainer: SxStyleProp = {\r\n position: 'relative',\r\n width: 'auto',\r\n height: 'inherit',\r\n borderRight: '1px solid #E7E9EE',\r\n zIndex: '1',\r\n left: '0',\r\n transition: 'all 0.3s ease-in-out',\r\n '.toggleIcon': {\r\n opacity: '0',\r\n transition: 'all 0.3s ease-out',\r\n },\r\n '.sidebarHide': {\r\n opacity: '0',\r\n transition: 'all 0.5s ease-out',\r\n },\r\n ':hover': {\r\n '.toggleIcon': {\r\n opacity: '100',\r\n transition: 'all 0.3s ease-out',\r\n },\r\n },\r\n}\r\n\r\nconst sidebarContainerHamburger: SxStyleProp = {\r\n width: 'auto',\r\n minHeight: '692px',\r\n zIndex: '1',\r\n}\r\n\r\nconst sidebarContainerBox: SxStyleProp = {\r\n opacity: '100',\r\n paddingTop: '34px',\r\n paddingBottom: '24px',\r\n overflowY: 'auto',\r\n height: 'inherit',\r\n maskImage:\r\n 'linear-gradient(to top, transparent, black), linear-gradient(to left, transparent 17px, black 17px)',\r\n maskSize: '100% 20000px',\r\n maskPosition: 'left bottom',\r\n transition: 'mask-position 0.3s, -webkit-mask-position 0.3s',\r\n ':hover': {\r\n maskPosition: 'left top',\r\n },\r\n}\r\n\r\nconst sidebarContainerBoxHamburger: SxStyleProp = {\r\n opacity: '100',\r\n transition: 'all 1s ease-out',\r\n}\r\n\r\nconst sidebarContainerBody: SxStyleProp = {\r\n px: '17px',\r\n}\r\n\r\nconst sidebarContainerHeader: SxStyleProp = {\r\n ...sidebarContainerBody,\r\n}\r\n\r\nconst sidebarContainerTitle: SxStyleProp = {\r\n alignItems: 'center',\r\n lineHeight: '22px',\r\n gap: '5px',\r\n padding: '17px 0px 17px 17px',\r\n borderBottom: '1px solid #E7E9EE',\r\n}\r\n\r\nconst sidebarTitle: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n fontSize: '16px',\r\n lineHeight: '18px',\r\n}\r\n\r\nconst sidebarHelpIcon: SxStyleProp = {\r\n ml: '4px',\r\n width: '24px',\r\n height: '24px',\r\n}\r\n\r\nconst searchBox: SxStyleProp = {\r\n mt: '16px',\r\n mb: '20px',\r\n alignItems: 'center',\r\n borderRadius: '4px',\r\n background: '#F4F4F4',\r\n width: '265px',\r\n height: '40px',\r\n paddingLeft: '12px',\r\n}\r\n\r\nconst searchInput: SxStyleProp = {\r\n width: 'auto',\r\n background: '#F4F4F4',\r\n border: '#F4F4F4',\r\n color: '#545454',\r\n fontSize: ['14px'],\r\n}\r\n\r\nconst searchIcon: SxStyleProp = {\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n width: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst toggleIconBox: SxStyleProp = {\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n width: '32px',\r\n height: '32px',\r\n borderRadius: '50%',\r\n border: '1px solid #E7E9EE',\r\n background: '#FFFFFF',\r\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\r\n position: 'absolute',\r\n top: '32px',\r\n right: '-16px',\r\n cursor: 'pointer',\r\n}\r\n\r\nconst toggleIconBoxActive: SxStyleProp = {\r\n ...toggleIconBox,\r\n opacity: '100 !important',\r\n}\r\n\r\nconst toggleIcon: SxStyleProp = {\r\n transform: 'scaleX(-1)',\r\n}\r\n\r\nconst arrowButton: SxStyleProp = {\r\n padding: '0px',\r\n}\r\n\r\nconst previewMode: SxStyleProp = {\r\n display: 'flex',\r\n color: '#A87600',\r\n backgroundColor: '#ffe5b5',\r\n padding: '10px',\r\n borderRadius: '10px',\r\n fontWeight: '600',\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n letterSpacing: '0.5px',\r\n mb: '20px',\r\n svg: {\r\n width: '20px',\r\n mr: '10px',\r\n },\r\n}\r\n\r\nexport default {\r\n sidebarContainer,\r\n sidebarContainerHamburger,\r\n sidebarContainerBox,\r\n sidebarContainerBoxHamburger,\r\n sidebarContainerBody,\r\n sidebarContainerHeader,\r\n sidebarContainerTitle,\r\n sidebarTitle,\r\n sidebarHelpIcon,\r\n searchBox,\r\n searchInput,\r\n searchIcon,\r\n toggleIconBox,\r\n toggleIconBoxActive,\r\n toggleIcon,\r\n arrowButton,\r\n previewMode,\r\n}\r\n","import { Box, Flex, Text } from '@vtex/brand-ui'\r\nimport MethodCategory from 'components/method-category'\r\nimport { Dispatch, SetStateAction, useContext, useState } from 'react'\r\n\r\nimport styles from './styles'\r\nimport { MethodType } from 'utils/typings/types'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\n\r\ntype MethodFilter = {\r\n name: string\r\n active: boolean\r\n}\r\n\r\ninterface MethodButtonProps {\r\n methodFilter: MethodFilter\r\n}\r\n\r\ninterface SectionFilterProps {\r\n methodFilterList: MethodFilter[]\r\n setMethodFilter: Dispatch>\r\n}\r\n\r\nconst SectionFilter = ({\r\n methodFilterList,\r\n setMethodFilter,\r\n}: SectionFilterProps) => {\r\n const [activeFilters, setActiveFilters] = useState([])\r\n const { locale } = useContext(LibraryContext)\r\n\r\n const setFilter = (methodFilterChanged: MethodType | null) => {\r\n if (methodFilterChanged) {\r\n const index = activeFilters.indexOf(methodFilterChanged)\r\n index === -1\r\n ? setActiveFilters([...activeFilters, methodFilterChanged])\r\n : setActiveFilters(\r\n activeFilters.filter((filter) => filter !== methodFilterChanged)\r\n )\r\n setMethodFilter(\r\n methodFilterList.map((methodFilter) => {\r\n if (methodFilter.name === methodFilterChanged)\r\n methodFilter.active = !methodFilter.active\r\n return methodFilter\r\n })\r\n )\r\n } else {\r\n setActiveFilters([])\r\n setMethodFilter(\r\n methodFilterList.map((methodFilter) => {\r\n methodFilter.active = false\r\n return methodFilter\r\n })\r\n )\r\n }\r\n }\r\n\r\n const MethodButton = ({ methodFilter }: MethodButtonProps) => {\r\n return (\r\n setFilter(methodFilter.name as MethodType)}\r\n >\r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n {messages[locale]['api_reference_sidebar_filter']}\r\n \r\n \r\n {methodFilterList.map((methodFilter) => (\r\n \r\n ))}\r\n {activeFilters.length > 1 && (\r\n setFilter(null)} sx={styles.clear}>\r\n {messages[locale]['api_reference_sidebar_filter_clear']}\r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default SectionFilter\r\n","import { Flex, Text, SxStyleProp } from '@vtex/brand-ui'\r\nimport { categoryStyle, categoryText, closeCategoryStyle } from './functions'\r\nimport styles from './styles'\r\nimport CloseFilterIcon from 'components/icons/close-filter-icon'\r\nimport { MethodType } from 'utils/typings/types'\r\n\r\nexport interface MethodCategoryProps {\r\n method: MethodType\r\n active: boolean\r\n origin: 'sidebar' | 'search' | 'filter' | 'pagination'\r\n sx?: SxStyleProp\r\n}\r\n\r\nconst MethodCategory = ({\r\n method,\r\n active,\r\n origin,\r\n sx,\r\n}: MethodCategoryProps) => {\r\n return (\r\n \r\n {categoryText(method, origin)}\r\n {origin === 'filter' && active && (\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default MethodCategory\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst container: SxStyleProp = {\r\n border: '1px solid #DDDDDD',\r\n background: '#F4F4F4',\r\n borderRadius: '2px',\r\n width: '24px',\r\n height: '24px',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n}\r\n\r\nconst text: SxStyleProp = {\r\n fontWeight: '600',\r\n fontSize: '12px',\r\n}\r\n\r\nconst closeIcon: SxStyleProp = {\r\n minWidth: '12px',\r\n minHeight: '12px',\r\n height: '12px',\r\n width: '12px',\r\n ml: '4px',\r\n}\r\n\r\nexport default {\r\n container,\r\n text,\r\n closeIcon,\r\n}\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\nimport { MethodType } from 'utils/typings/unionTypes'\r\n\r\nimport styles from './styles'\r\n\r\nexport const methodsColors = {\r\n POST: {\r\n border: '1px solid #7CBBEA',\r\n color: '#2978B5',\r\n background: '#DEECF7',\r\n },\r\n GET: {\r\n border: '1px solid #83D187',\r\n color: '#38853C',\r\n background: '#DFF1E0',\r\n },\r\n PUT: {\r\n border: '1px solid #F5AE70',\r\n color: '#D56A00',\r\n background: '#FFEBD7',\r\n },\r\n DELETE: {\r\n border: '1px solid #F49494',\r\n color: '#CC3D3D',\r\n background: '#F8E3E3',\r\n },\r\n PATCH: {\r\n border: '1px solid #afa871',\r\n color: '#6C6314',\r\n background: '#e9e7da',\r\n },\r\n}\r\n\r\nexport const categoryStyle = (\r\n method: MethodType,\r\n active: boolean,\r\n sx?: SxStyleProp\r\n): SxStyleProp => {\r\n const categoryColors = methodsColors[method] || {\r\n border: '1px solid #F49494',\r\n color: '#CC3D3D',\r\n background: '#F8E3E3',\r\n }\r\n\r\n const categoryStyle: SxStyleProp = active\r\n ? {\r\n ...styles.container,\r\n ...categoryColors,\r\n ...sx,\r\n ':hover': {\r\n '.filter-close-button': {\r\n rect: {\r\n fill: categoryColors.color,\r\n },\r\n path: {\r\n stroke: '#DEECF7',\r\n },\r\n },\r\n },\r\n }\r\n : {\r\n ...styles.container,\r\n color: categoryColors.color,\r\n ...sx,\r\n }\r\n\r\n return categoryStyle\r\n}\r\n\r\nexport const categoryText = (method: MethodType, origin: string): string => {\r\n const textPascalCase = method[0] + method.slice(1).toLowerCase()\r\n if (origin == 'filter') return textPascalCase\r\n return textPascalCase.slice(0, 2)\r\n}\r\n\r\nexport const closeCategoryStyle = (method: MethodType) => {\r\n const categoryColors = methodsColors[method]\r\n const categoryStyle: SxStyleProp = {\r\n ...styles.closeIcon,\r\n rect: {\r\n fill: 'transparent',\r\n },\r\n path: {\r\n stroke: categoryColors.color,\r\n },\r\n }\r\n\r\n return categoryStyle\r\n}\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst CloseFilterIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default CloseFilterIcon\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst container: SxStyleProp = {\r\n px: '17px',\r\n paddingTop: '6px',\r\n borderBottom: '1px solid #E7E9EE',\r\n paddingBottom: '16px',\r\n mb: '24px',\r\n}\r\n\r\nconst text: SxStyleProp = {\r\n mb: '8px',\r\n}\r\n\r\nconst category: SxStyleProp = {\r\n mr: '8px',\r\n px: '4px',\r\n width: 'auto',\r\n cursor: 'pointer',\r\n ':hover': {\r\n borderWidth: '2px',\r\n },\r\n}\r\n\r\nconst clear: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n color: 'muted.0',\r\n fontSize: '12px',\r\n cursor: 'pointer',\r\n ':hover': {\r\n color: '#000711',\r\n },\r\n}\r\n\r\nexport default {\r\n container,\r\n text,\r\n category,\r\n clear,\r\n}\r\n","import { useRouter } from 'next/router.js'\r\nimport React, { Fragment, useContext } from 'react'\r\nimport {\r\n Box,\r\n Flex,\r\n Link,\r\n Button,\r\n IconCaret,\r\n IconExternalLink,\r\n} from '@vtex/brand-ui'\r\n\r\nimport MethodCategory from 'components/method-category'\r\n\r\nimport { styleByLevelNormal, textStyle } from './functions'\r\nimport styles from './styles'\r\nimport { MethodType } from 'utils/typings/types'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\n\r\nexport interface SidebarElement {\r\n name: string | { en: string; pt: string; es: string }\r\n slug: string | { en: string; pt: string; es: string }\r\n origin: string\r\n type: string\r\n method?: MethodType\r\n endpoint?: string\r\n children: SidebarElement[]\r\n}\r\n\r\nexport interface SidebarProps {\r\n slugPrefix?: string\r\n items: SidebarElement[]\r\n subItemLevel: number\r\n}\r\n\r\nconst SidebarElements = ({ slugPrefix, items, subItemLevel }: SidebarProps) => {\r\n const {\r\n isEditorPreview,\r\n activeSidebarElement,\r\n sidebarElementStatus,\r\n toggleSidebarElementStatus,\r\n sidebarDataMaster,\r\n locale,\r\n } = useContext(LibraryContext)\r\n const router = useRouter()\r\n\r\n const handleClick = (\r\n e: { preventDefault: () => void },\r\n pathSuffix: string,\r\n slug: string\r\n ) => {\r\n e.preventDefault()\r\n const hasEndpointQuery = router.query.endpoint\r\n const href = getHref(slugPrefix || '', pathSuffix, slug)\r\n router.push(href, href, { locale }).then(() => {\r\n if (hasEndpointQuery) router.reload()\r\n })\r\n }\r\n\r\n // eslint-disable-next-line\r\n // @ts-ignore\r\n const checkDocumentationType = (\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n sidebarData: any,\r\n slug: string,\r\n type: string\r\n ) => {\r\n if (\r\n !sidebarData ||\r\n (typeof sidebarData !== 'object' && !Array.isArray(sidebarData))\r\n ) {\r\n return false\r\n } else if (sidebarData?.slug == slug && sidebarData?.type == type) {\r\n return true\r\n } else if (Array.isArray(sidebarData)) {\r\n for (let i = 0; i < sidebarData.length; i++) {\r\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n // @ts-ignore\r\n const result = checkDocumentationType(sidebarData[i], slug, type)\r\n if (result) {\r\n return result\r\n }\r\n }\r\n } else {\r\n for (const k in sidebarData) {\r\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n // @ts-ignore\r\n const result = checkDocumentationType(sidebarData[k], slug, type)\r\n if (result) {\r\n return result\r\n }\r\n }\r\n }\r\n\r\n return false\r\n }\r\n\r\n const getHref = (slugPrefix: string, pathSuffix: string, slug: string) => {\r\n const validLocales = ['pt', 'es']\r\n const localePrefix =\r\n locale && validLocales.includes(locale) ? `/${locale}` : ''\r\n const href =\r\n slugPrefix === 'docs/api-reference'\r\n ? `/${slugPrefix}/${slug}/${pathSuffix}`\r\n : `${localePrefix}/${slugPrefix}/${slug}`\r\n return href.replaceAll('//', '/')\r\n }\r\n\r\n const ElementRoot = ({\r\n slug,\r\n name,\r\n method,\r\n endpoint,\r\n children,\r\n }: SidebarElement) => {\r\n const localizedName: string = typeof name === 'string' ? name : name[locale]\r\n const localizedSlug: string = typeof slug === 'string' ? slug : slug[locale]\r\n const isExpandable = children.length > 0\r\n const pathSuffix = method ? `#${method.toLowerCase()}-${endpoint}` : ''\r\n const activeItem = method ? `${localizedSlug}${pathSuffix}` : localizedSlug\r\n return (\r\n \r\n \r\n {isExpandable && (\r\n (\r\n \r\n )}\r\n onClick={() => toggleSidebarElementStatus(localizedSlug)}\r\n />\r\n )}\r\n {!checkDocumentationType(\r\n sidebarDataMaster,\r\n localizedSlug,\r\n 'category'\r\n ) &&\r\n !checkDocumentationType(sidebarDataMaster, localizedSlug, 'link') ? (\r\n void }) => {\r\n if (!isEditorPreview) {\r\n handleClick(e, pathSuffix, localizedSlug)\r\n }\r\n toggleSidebarElementStatus(activeItem)\r\n }}\r\n href={getHref(slugPrefix || '', pathSuffix, localizedSlug)}\r\n target={isEditorPreview === true ? '_blank' : '_self'}\r\n locale={locale}\r\n >\r\n {method && (\r\n \r\n )}\r\n {localizedName}\r\n \r\n ) : checkDocumentationType(\r\n sidebarDataMaster,\r\n localizedSlug,\r\n 'link'\r\n ) ? (\r\n \r\n \r\n {localizedName}\r\n \r\n ) : (\r\n {\r\n toggleSidebarElementStatus(localizedSlug)\r\n }}\r\n >\r\n {method && (\r\n \r\n )}\r\n {localizedName}\r\n \r\n )}\r\n \r\n \r\n )\r\n }\r\n\r\n const ElementChildren = ({ slug, children }: SidebarElement) => {\r\n const isExpandable = children.length > 0\r\n // const newPathPrefix =\r\n // slugPrefix === 'api-reference' ? `/api-reference/${slug}` : slugPrefix\r\n\r\n const localizedSlug: string = typeof slug === 'string' ? slug : slug[locale]\r\n return isExpandable &&\r\n sidebarElementStatus.has(localizedSlug) &&\r\n sidebarElementStatus.get(localizedSlug) ? (\r\n \r\n \r\n \r\n ) : null\r\n }\r\n\r\n return (\r\n \r\n {items?.map((item, index) => {\r\n const key =\r\n typeof item.slug === 'string'\r\n ? String(item.slug) + String(index)\r\n : String(item.slug[locale]) + String(index)\r\n const slug =\r\n typeof item.slug === 'string'\r\n ? `${item.slug}`\r\n : `${item.slug[locale]}`\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {subItemLevel == 0 ? (\r\n \r\n
\r\n
\r\n ) : null}\r\n
\r\n )\r\n })}\r\n
\r\n )\r\n}\r\n\r\nexport default SidebarElements\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst elementContainer: SxStyleProp = {\r\n maxWidth: '265px',\r\n background: '#FFFFFF',\r\n ':hover': {\r\n background: '#F8F7FC',\r\n a: {\r\n color: '#142032',\r\n '& > :first-of-type': {\r\n borderWidth: '2px',\r\n },\r\n },\r\n },\r\n}\r\n\r\nconst elementText: SxStyleProp = {\r\n color: 'muted.0',\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n fontWeight: '400',\r\n textAlign: 'initial',\r\n paddingBlock: '7px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n cursor: 'pointer',\r\n}\r\n\r\nconst elementActive: SxStyleProp = {\r\n ...elementText,\r\n color: '#D71D55 !important',\r\n}\r\n\r\nconst arrowIcon: SxStyleProp = {\r\n padding: '0',\r\n color: 'muted.1',\r\n height: '34px',\r\n}\r\n\r\nconst arrowIconActive: SxStyleProp = {\r\n ...arrowIcon,\r\n color: '#D71D55',\r\n}\r\n\r\nconst elementButton: SxStyleProp = {\r\n textTransform: 'initial',\r\n fontVariationSettings: 'unset',\r\n padding: '0',\r\n margin: '0',\r\n textDecoration: 'none !important',\r\n}\r\n\r\nconst sectionDivider: SxStyleProp = {\r\n hr: {\r\n border: '1px solid #E7E9EE',\r\n borderTop: 'none',\r\n },\r\n}\r\n\r\nconst methodBox: SxStyleProp = {\r\n mr: '10px',\r\n}\r\n\r\nexport default {\r\n elementContainer,\r\n elementText,\r\n elementActive,\r\n arrowIcon,\r\n arrowIconActive,\r\n elementButton,\r\n sectionDivider,\r\n methodBox,\r\n}\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\nimport styles from './styles'\r\n\r\nexport const styleByLevelNormal = (level: number, icon: boolean) => {\r\n const ml = 8 + (icon ? (level - 1) * 20 + 6 : (level - 1) * 20 + 14)\r\n const borderLeft = icon ? 'none' : level >= 2 ? '1px solid #E7E9EE' : ''\r\n const normal: SxStyleProp = {\r\n marginLeft: `${ml}px`,\r\n borderLeft,\r\n }\r\n\r\n return normal\r\n}\r\n\r\nexport const textStyle = (active: boolean, icon: boolean) => {\r\n const ml = icon ? '4px' : '16px'\r\n if (active) {\r\n const textStyleActive: SxStyleProp = {\r\n ...styles.elementActive,\r\n ml,\r\n }\r\n return textStyleActive\r\n }\r\n const textStyle: SxStyleProp = {\r\n ...styles.elementText,\r\n ml,\r\n }\r\n\r\n return textStyle\r\n}\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst SearchIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n)\r\n\r\nexport default SearchIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst SideBarToggleIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default SideBarToggleIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst ArrowLeftIcon = (props: IconProps) => (\r\n \r\n {' '}\r\n \r\n \r\n \r\n)\r\n\r\nexport default ArrowLeftIcon\r\n","import {\r\n Header,\r\n HamburgerMenu as VtexHamburgerMenu,\r\n Box,\r\n IconCaret,\r\n Button,\r\n} from '@vtex/brand-ui'\r\nimport styles from './styles'\r\n\r\nimport { useContext } from 'react'\r\nimport DocumentationCard from 'components/documentation-card'\r\nimport SidebarSection, { SidebarSectionProps } from 'components/sidebar-section'\r\nimport { updateOpenPage } from 'utils/sidebar-utils'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport SearchInput from 'components/search-input'\r\n\r\nexport interface HamburgerMenuProps {\r\n /** Array that contains the name of the sections in the menu that should be expanded. */\r\n parentsArray?: string[]\r\n}\r\n\r\n/** Hamburger Menu component, the menu uses the sidebar components internally, but it is only visible on the smaller breakpoints. */\r\nconst HamburgerMenu = ({ parentsArray = [] }: HamburgerMenuProps) => {\r\n const context = useContext(LibraryContext)\r\n const {\r\n sidebarDataMaster,\r\n sidebarSectionHidden,\r\n activeSectionName,\r\n setActiveSectionName,\r\n setSidebarSectionHidden,\r\n hamburguerSections,\r\n } = context\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const isDocument = (sections: any, documentID: string) => {\r\n let isDoc = false\r\n\r\n if (Array.isArray(sections)) {\r\n isDoc = sections.find((section) => section.documentation === documentID)\r\n }\r\n\r\n return isDoc\r\n }\r\n\r\n updateOpenPage({ parentsArray, context })\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {hamburguerSections.map((section, id) => (\r\n 0\r\n ? styles.updatesContainer\r\n : styles.documentationContainer\r\n }\r\n key={id}\r\n data-cy=\"dropdown-menu-first-section\"\r\n >\r\n {section.map((card) => (\r\n \r\n \r\n {isDocument(sidebarDataMaster, card.id) ? (\r\n }\r\n sx={\r\n activeSectionName === card.id &&\r\n !sidebarSectionHidden\r\n ? styles.arrowIconActive\r\n : styles.arrowIcon\r\n }\r\n onClick={() => {\r\n setActiveSectionName(card.id)\r\n setSidebarSectionHidden(false)\r\n }}\r\n />\r\n ) : null}\r\n \r\n ))}\r\n \r\n ))}\r\n \r\n \r\n {activeSectionName ? (\r\n \r\n section.documentation === activeSectionName\r\n )\r\n : null)}\r\n />\r\n ) : null}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default HamburgerMenu\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst menuContainer: SxStyleProp = {\r\n display: 'flex',\r\n width: 'max-content',\r\n}\r\n\r\nconst cardContainer: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n width: '100vw',\r\n overflowY: 'scroll',\r\n height: 'calc(100vh - 5rem)',\r\n}\r\n\r\nconst sideMenuContainer: SxStyleProp = {\r\n backgroundColor: '#ffff',\r\n height: 'calc(100vh - 5rem)',\r\n width: '100vw',\r\n overflowY: 'auto',\r\n overflowX: 'hidden',\r\n transform: 'translate(0)',\r\n transition: 'transform .5s cubic-bezier(.4,0,.2,1)',\r\n}\r\n\r\nconst hamburgerContainer: SxStyleProp = {\r\n display: ['block', 'block', 'block', 'none'],\r\n backgroundColor: '#ffff',\r\n width: '100%',\r\n '.menuHidden': {\r\n transform: 'translate(-100%)',\r\n },\r\n}\r\n\r\n// eslint-disable-next-line prettier/prettier\r\n\r\nconst hamburgerSearchContainer: SxStyleProp = {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n paddingBlock: '18px',\r\n height: 'auto',\r\n}\r\n\r\nconst documentationContainer: SxStyleProp = {\r\n px: '16px',\r\n paddingBottom: '8px',\r\n}\r\n\r\nconst updatesContainer: SxStyleProp = {\r\n px: '16px',\r\n paddingTop: '8px',\r\n borderRadius: '0px 0px 8px 8px',\r\n borderTop: '1px solid #E7E9EE',\r\n}\r\n\r\nconst innerHambugerContainer: SxStyleProp = {\r\n padding: '0px',\r\n position: 'relative',\r\n overflowX: 'hidden',\r\n}\r\n\r\nconst innerCardContainer: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n}\r\n\r\nconst arrowIcon: SxStyleProp = {\r\n padding: '0',\r\n height: '50px',\r\n width: '50px',\r\n color: 'muted.1',\r\n}\r\n\r\nconst arrowIconActive: SxStyleProp = {\r\n ...arrowIcon,\r\n color: '#D71D55',\r\n}\r\n\r\nexport default {\r\n menuContainer,\r\n cardContainer,\r\n sideMenuContainer,\r\n hamburgerSearchContainer,\r\n documentationContainer,\r\n updatesContainer,\r\n hamburgerContainer,\r\n innerHambugerContainer,\r\n innerCardContainer,\r\n arrowIcon,\r\n arrowIconActive,\r\n}\r\n","import Link from 'next/link.js'\r\nimport { Box, Flex, Text } from '@vtex/brand-ui'\r\n\r\nimport styles from './styles'\r\nimport { cardContainer, cardTitle, titleContainer } from './functions'\r\nimport { MouseEventHandler } from 'react'\r\nimport { DataElement } from 'utils/typings/types'\r\n\r\nexport interface DocumentProps extends DataElement {\r\n title: string\r\n}\r\nexport interface CardProps extends DocumentProps {\r\n containerType: 'dropdown' | 'see-also' | 'mobile'\r\n onClick?: MouseEventHandler | undefined\r\n}\r\nconst DocumentationCard = ({\r\n title,\r\n description,\r\n link,\r\n containerType,\r\n Icon,\r\n onClick,\r\n}: CardProps) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {title}\r\n \r\n \r\n \r\n {description}\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default DocumentationCard\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst cardContainer: SxStyleProp = {\r\n my: ['16px', '16px', '16px', '16px', '16px', '16px', '24px'],\r\n padding: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\r\n borderRadius: '4px',\r\n backgroundColor: '#F8F7FC',\r\n\r\n '.description': {\r\n color: 'muted.0',\r\n },\r\n },\r\n\r\n ':active .title': {\r\n color: '#0C1522',\r\n },\r\n\r\n ':hover .title': {\r\n color: '#000711',\r\n },\r\n}\r\n\r\nconst titleContainer: SxStyleProp = {\r\n alignItems: 'center',\r\n}\r\n\r\nconst title: SxStyleProp = {\r\n ml: '8px',\r\n color: 'muted.0',\r\n}\r\n\r\nconst description: SxStyleProp = {\r\n ml: '32px',\r\n fontSize: '16px',\r\n lineHeight: '18px',\r\n color: 'muted.1',\r\n}\r\n\r\nexport default {\r\n cardContainer,\r\n description,\r\n title,\r\n titleContainer,\r\n}\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\nimport styles from './styles'\r\n\r\nconst cardContainer = (containerType: string) => {\r\n const containerWidth =\r\n containerType === 'dropdown'\r\n ? ['308px', '442px', '444px', '480px']\r\n : containerType === 'mobile'\r\n ? '100%'\r\n : ['324px', '544px', '544px', '544px', '544px', '720px', '1400px']\r\n\r\n const textWidth =\r\n containerType === 'dropdown'\r\n ? ['276px', '410px', '412px', '432px']\r\n : containerType === 'mobile'\r\n ? '90%'\r\n : ['276px', '496px', '496px', '496px', '496px', '672px', '1352px']\r\n\r\n const cardContainer: SxStyleProp = {\r\n ...styles.cardContainer,\r\n width: containerWidth,\r\n\r\n '.title, .description': {\r\n width: textWidth,\r\n },\r\n }\r\n\r\n return cardContainer\r\n}\r\n\r\nconst titleContainer = (containerType: string) => {\r\n const marginBottom =\r\n containerType === 'dropdown' ? ['5px', '5px', '5px', '1px'] : '8px'\r\n\r\n const titleContainer: SxStyleProp = {\r\n ...styles.titleContainer,\r\n marginBottom,\r\n }\r\n\r\n return titleContainer\r\n}\r\n\r\nconst cardTitle = (containerType: string) => {\r\n const titleAttributes =\r\n containerType === 'see-also'\r\n ? {\r\n textOverflow: 'ellipsis',\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n fontSize: '18px',\r\n lineHeight: '24px',\r\n }\r\n : {\r\n fontSize: '16px',\r\n lineHeight: '22px',\r\n }\r\n\r\n const cardTitle: SxStyleProp = {\r\n ...styles.title,\r\n ...titleAttributes,\r\n }\r\n\r\n return cardTitle\r\n}\r\n\r\nexport { cardContainer, cardTitle, titleContainer }\r\n","import { Configure, InstantSearch } from 'react-instantsearch-dom'\r\nimport SearchBox from './search-box'\r\nimport Results from './results-box'\r\nimport { Box } from '@vtex/brand-ui'\r\nimport { useContext, useRef, useState } from 'react'\r\nimport useClickOutside from 'utils/hooks/useClickOutside'\r\nimport { searchClient, searchIndex } from 'utils/config/search-config'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\n\r\nexport default function SearchInput() {\r\n const { locale } = useContext(LibraryContext)\r\n const [focusOut, setfocusOut] = useState<{ modaltoggle: boolean }>({\r\n modaltoggle: true,\r\n })\r\n const resultsBox = useRef()\r\n useClickOutside(resultsBox, setfocusOut)\r\n\r\n const changeFocus = (value: boolean) => {\r\n setfocusOut({ modaltoggle: value })\r\n }\r\n\r\n return (\r\n \r\n {searchClient.instantSearchConfigs && (\r\n \r\n )}\r\n {searchClient.useLanguageFilter && (\r\n \r\n )}\r\n {!searchClient.useLanguageFilter && }\r\n setfocusOut({ modaltoggle: true })} ref={resultsBox}>\r\n \r\n {focusOut.modaltoggle && }\r\n \r\n \r\n )\r\n}\r\n","import { useRef, KeyboardEvent, useContext } from 'react'\r\nimport { useRouter } from 'next/router.js'\r\nimport { Flex } from '@vtex/brand-ui'\r\nimport { connectSearchBox } from 'react-instantsearch-dom'\r\nimport { SearchBoxProvided } from 'react-instantsearch-core'\r\n\r\nimport SearchIcon from 'components/icons/search-icon'\r\nimport styles from './styles'\r\nimport { messages } from 'utils/get-message'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\n\r\ninterface SearchBoxProps extends SearchBoxProvided {\r\n changeFocus: (value: boolean) => void\r\n}\r\n\r\nconst SearchBoxComponent = ({\r\n currentRefinement,\r\n refine,\r\n changeFocus,\r\n}: SearchBoxProps) => {\r\n const router = useRouter()\r\n const inputRef = useRef(null)\r\n const { locale } = useContext(LibraryContext)\r\n\r\n const handleClick = () => {\r\n if (inputRef.current != null) inputRef.current.focus()\r\n }\r\n\r\n const keyPressed = (e: KeyboardEvent) => {\r\n if (e.key === 'Enter') {\r\n router.push({\r\n pathname: '/search',\r\n query: { keyword: inputRef.current?.value },\r\n })\r\n inputRef.current?.blur()\r\n changeFocus(false)\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n keyPressed(e)}\r\n onChange={(e) => refine(e.currentTarget.value)}\r\n />\r\n \r\n )\r\n}\r\n\r\nconst SearchBox = connectSearchBox(SearchBoxComponent)\r\n\r\nexport default SearchBox\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst resultsOuterContainer: SxStyleProp = {\r\n position: 'relative',\r\n}\r\n\r\nconst resultsInnerContainer: SxStyleProp = {\r\n top: 0,\r\n position: 'absolute',\r\n width: ['288px', '458px', '458px', '288px', '416px', '544px'],\r\n border: '1px solid #B9B9B9',\r\n borderRadius: '0px 0px 4px 4px',\r\n background: '#FFFFFF',\r\n}\r\n\r\nconst resultsBox: SxStyleProp = {\r\n padding: '16px',\r\n}\r\n\r\nconst seeAll: SxStyleProp = {\r\n padding: '24px',\r\n borderTop: '1px solid #E7E9EE',\r\n color: 'muted.0',\r\n cursor: 'pointer',\r\n ':hover': {\r\n background: '#F8F7FC',\r\n borderTop: '1px solid #d0cdcd',\r\n },\r\n}\r\n\r\nconst hitBox: SxStyleProp = {\r\n padding: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\r\n backgroundColor: '#F8F7FC',\r\n borderRadius: '4px',\r\n '.hit-content-title': {\r\n color: '#000711',\r\n },\r\n '.hit-icon': {\r\n '> path': {\r\n stroke: '#000711',\r\n },\r\n },\r\n },\r\n}\r\n\r\nconst hitIcon: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n marginRight: '8px',\r\n}\r\n\r\nconst hitContentContainer: SxStyleProp = {\r\n width: '100%',\r\n minWidth: 0,\r\n overflow: 'hidden',\r\n}\r\n\r\nconst snippetText: SxStyleProp = {\r\n overflowWrap: 'break-word',\r\n wordBreak: 'break-word',\r\n overflow: 'hidden',\r\n display: '-webkit-box',\r\n WebkitBoxOrient: 'vertical',\r\n}\r\n\r\nconst hitContent: SxStyleProp = {\r\n color: 'muted.0',\r\n fontSize: ['14px', '16px'],\r\n lineHeight: ['20px', '22px'],\r\n width: '100%',\r\n minWidth: 0,\r\n ...snippetText,\r\n WebkitLineClamp: 4,\r\n}\r\n\r\nconst hitContentSmall: SxStyleProp = {\r\n color: 'muted.0',\r\n fontSize: ['14px', '16px'],\r\n lineHeight: ['20px', '22px'],\r\n width: '100%',\r\n minWidth: 0,\r\n ...snippetText,\r\n WebkitLineClamp: 2,\r\n}\r\n\r\nconst alignCenter: SxStyleProp = {\r\n alignItems: 'center',\r\n}\r\n\r\nconst hitBreadCrumb: SxStyleProp = {\r\n color: 'muted.1',\r\n fontSize: '12px',\r\n lineHeight: '16px',\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n}\r\n\r\nconst hitBreadCrumbIn: SxStyleProp = {\r\n ...hitBreadCrumb,\r\n minWidth: 'fit-content',\r\n}\r\n\r\nconst hitBreadCrumbArrow: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n color: 'muted.2',\r\n}\r\n\r\nconst searchInput: SxStyleProp = {\r\n width: '76px',\r\n background: 'none',\r\n border: '#F4F4F4',\r\n color: '#545454',\r\n fontSize: ['14px'],\r\n flex: 0,\r\n transition: 'flex 0.3s',\r\n}\r\n\r\nconst searchIcon: SxStyleProp = {\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n width: '16px',\r\n mr: '8px',\r\n flex: 0,\r\n maxWidth: 'fit-content',\r\n}\r\n\r\nconst searchContainer: SxStyleProp = {\r\n paddingLeft: '12px',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n background: '#F4F4F4',\r\n width: '288px',\r\n height: '40px',\r\n borderRadius: '4px',\r\n transition: 'all 0.3s ease-out',\r\n cursor: 'pointer',\r\n ':hover': {\r\n transition: 'all 0.3s ease-out',\r\n width: ['288px', '458px', '458px', '288px', '416px', '544px'],\r\n border: '1px solid #3B3B3B',\r\n },\r\n ':focus-within': {\r\n background: '#FFFFFF',\r\n width: ['288px', '458px', '458px', '288px', '416px', '544px'],\r\n transition: 'all 0.3s ease-out',\r\n border: '1px solid #3B3B3B',\r\n boxShadow: '0px 0px 0px 1px #FFFFFF, 0px 0px 0px 3px #B9B9B9',\r\n flex: 'auto',\r\n '.searchComponent': {\r\n flex: '1 !important',\r\n },\r\n },\r\n '.searchComponent': {\r\n ':placeholder-shown': {\r\n width: '76px',\r\n },\r\n ':not(:placeholder-shown)': {\r\n flex: '1 !important',\r\n },\r\n },\r\n}\r\n\r\nconst noResults: SxStyleProp = {\r\n justifyContent: 'center',\r\n alignContent: 'center',\r\n padding: '12px',\r\n}\r\n\r\nconst hitContentHighlighted: SxStyleProp = {\r\n ...hitContent,\r\n color: '#4A596B',\r\n width: 'auto',\r\n background: '#FFE0EF',\r\n}\r\n\r\nexport default {\r\n resultsOuterContainer,\r\n resultsInnerContainer,\r\n resultsBox,\r\n seeAll,\r\n hitBox,\r\n hitIcon,\r\n hitContentContainer,\r\n hitContent,\r\n hitContentSmall,\r\n hitBreadCrumb,\r\n hitBreadCrumbIn,\r\n hitBreadCrumbArrow,\r\n searchInput,\r\n searchIcon,\r\n searchContainer,\r\n alignCenter,\r\n noResults,\r\n hitContentHighlighted,\r\n}\r\n","import { useRouter } from 'next/router.js'\r\nimport Link from 'next/link.js'\r\nimport {\r\n connectStateResults,\r\n connectHitInsights,\r\n} from 'react-instantsearch-dom'\r\nimport {\r\n Hit,\r\n StateResultsProvided,\r\n WrappedInsightsClient,\r\n} from 'react-instantsearch-core'\r\nimport aa from 'search-insights'\r\nimport { Box, Flex, IconCaret, Text } from '@vtex/brand-ui'\r\n\r\nimport {\r\n getBreadcrumbs,\r\n getIconFromSection,\r\n getRelativeURL,\r\n} from 'utils/search-utils'\r\nimport CustomHighlight from './customHighlight'\r\nimport styles from './styles'\r\nimport { useContext } from 'react'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\n\r\ninterface HitProps {\r\n hit: Hit\r\n insights: WrappedInsightsClient\r\n}\r\n\r\ninterface HitsBoxProps extends StateResultsProvided {\r\n changeFocus: (value: boolean) => void\r\n}\r\n\r\nconst Hit2 = ({ hit, insights }: HitProps) => {\r\n const { sidebarSections } = useContext(LibraryContext)\r\n const breadcrumbsList = getBreadcrumbs(hit)\r\n const DocIcon = getIconFromSection(sidebarSections, hit.doctype)\r\n return (\r\n \r\n \r\n insights('clickedObjectIDsAfterSearch', {\r\n eventName: 'Search in top bar',\r\n objectIDs: [hit.objectID],\r\n })\r\n }\r\n >\r\n \r\n \r\n {DocIcon && }\r\n \r\n \r\n \r\n \r\n \r\n {`In ${hit.doctype}`}\r\n {breadcrumbsList.length > 0 && (\r\n \r\n )}\r\n {breadcrumbsList.map((filter: string, index: number) => (\r\n \r\n {filter}\r\n {index < breadcrumbsList.length - 1 ? (\r\n \r\n ) : null}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nconst HitWithInsights = connectHitInsights(aa)(Hit2)\r\n\r\nconst HitsBox = connectStateResults(\r\n ({ searchState, searchResults, changeFocus }) => {\r\n const router = useRouter()\r\n const { locale } = useContext(LibraryContext)\r\n\r\n const seeAllSubmit = (keyword: string) => {\r\n router.push({\r\n pathname: '/search',\r\n query: { keyword },\r\n })\r\n changeFocus(false)\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const setQueryIDAndPosition = (hit: Hit, index: number): any => {\r\n return {\r\n ...hit,\r\n __queryID: searchResults.queryID || '',\r\n __position: searchResults.hitsPerPage * searchResults.page + index + 1,\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {searchResults && (\r\n \r\n \r\n \r\n {searchResults.hits.map(\r\n (searchResult, index) =>\r\n index < 7 && (\r\n changeFocus(false)}\r\n >\r\n \r\n \r\n )\r\n )}\r\n \r\n {searchResults.hits.length > 7 && (\r\n seeAllSubmit(searchState.query || '')}\r\n >\r\n \r\n {messages[locale]['search_input.see_all'] || 'See all results'}\r\n \r\n \r\n )}\r\n {!searchResults.hits.length && (\r\n \r\n \r\n {messages[locale]['search_input.empty'] || 'No results found. Try different search terms.'}\r\n \r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n )\r\n }\r\n)\r\n\r\nexport default HitsBox\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst APIGuidesIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default APIGuidesIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst APIReferenceIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default APIReferenceIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst AppDevelopmentIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default AppDevelopmentIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst ReleaseNotesIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default ReleaseNotesIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst StorefrontDevelopmentIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default StorefrontDevelopmentIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst VTEXIOAppsIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default VTEXIOAppsIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst TroubleshootingIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default TroubleshootingIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst AddedIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default AddedIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst DeprecatedIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default DeprecatedIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst FixedIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default FixedIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst ImprovedIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default ImprovedIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst RemovedIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default RemovedIcon\r\n","import { Hit } from 'react-instantsearch-core'\r\n\r\nimport APIGuidesIcon from 'components/icons/api-guides-icon'\r\nimport APIReferenceIcon from 'components/icons/api-reference-icon'\r\nimport AppDevelopmentIcon from 'components/icons/app-development-icon'\r\nimport ReleaseNotesIcon from 'components/icons/release-notes-icon'\r\nimport StorefrontDevelopmentIcon from 'components/icons/storefront-development-icon'\r\nimport VTEXIOAppsIcon from 'components/icons/vtex-io-apps-icon'\r\nimport TroubleshootingIcon from 'components/icons/troubleshooting-icon'\r\nimport { IconComponent, Section } from './typings/types'\r\nimport AddedIcon from 'components/icons/added-icon'\r\nimport DeprecatedIcon from 'components/icons/deprecated-icon'\r\nimport FixedIcon from 'components/icons/fixed-icon'\r\nimport ImprovedIcon from 'components/icons/improved-icon'\r\nimport RemovedIcon from 'components/icons/removed-icon'\r\n\r\nexport const getBreadcrumbs = (hit: Hit) => {\r\n const breadcrumbs: string[] = []\r\n if (hit.doctype === 'API Reference' && hit.doccategory)\r\n breadcrumbs.push(hit.doccategory)\r\n breadcrumbs.push(hit.doctitle)\r\n return breadcrumbs\r\n}\r\n\r\nexport const getRelativeURL = (url: string) => {\r\n const relativeURL = url.replace(/^(?:\\/\\/|[^/]+)*\\//, '')\r\n return '/' + relativeURL\r\n}\r\n\r\n/** Display cap for tab counts; values at or above this render as \"999+\". */\r\nexport const HYBRID_SEARCH_COUNT_CAP = 1000\r\n\r\nexport function formatSearchTabCount(\r\n count: number | undefined\r\n): string | undefined {\r\n if (count === undefined) return undefined\r\n if (count >= HYBRID_SEARCH_COUNT_CAP) return '999+'\r\n return String(count)\r\n}\r\n\r\ninterface IconsI {\r\n name: string\r\n Icon: IconComponent\r\n}\r\n\r\nconst iconsMap: IconsI[] = [\r\n {\r\n Icon: APIGuidesIcon,\r\n name: 'Guides',\r\n },\r\n {\r\n Icon: APIReferenceIcon,\r\n name: 'API Reference',\r\n },\r\n {\r\n Icon: AppDevelopmentIcon,\r\n name: 'App Development',\r\n },\r\n {\r\n Icon: StorefrontDevelopmentIcon,\r\n name: 'Storefront Development',\r\n },\r\n {\r\n Icon: VTEXIOAppsIcon,\r\n name: 'VTEX IO Apps',\r\n },\r\n {\r\n Icon: TroubleshootingIcon,\r\n name: 'Troubleshooting',\r\n },\r\n {\r\n Icon: ReleaseNotesIcon,\r\n name: 'Release Notes',\r\n },\r\n]\r\n\r\nexport const getIcon = (name: string) => {\r\n return iconsMap.find((icon) => icon.name === name)?.Icon\r\n}\r\n\r\nexport const getIconFromSection = (sections: Section[][], id: string) => {\r\n return sections.flat().find((section) => section.id === id)?.Icon\r\n}\r\n\r\nexport type ActionType =\r\n | 'added'\r\n | 'deprecated'\r\n | 'fixed'\r\n | 'improved'\r\n | 'removed'\r\nexport interface Action {\r\n type: ActionType\r\n title: string\r\n Icon: IconComponent\r\n}\r\n\r\nconst actions: Action[] = [\r\n {\r\n type: 'added',\r\n title: 'Added',\r\n Icon: AddedIcon,\r\n },\r\n {\r\n type: 'deprecated',\r\n title: 'Deprecated',\r\n Icon: DeprecatedIcon,\r\n },\r\n {\r\n type: 'fixed',\r\n title: 'Fixed',\r\n Icon: FixedIcon,\r\n },\r\n {\r\n type: 'improved',\r\n title: 'Improved',\r\n Icon: ImprovedIcon,\r\n },\r\n {\r\n type: 'removed',\r\n title: 'Removed',\r\n Icon: RemovedIcon,\r\n },\r\n]\r\n\r\nexport const getAction = (actionType: ActionType): Action => {\r\n return actions.find((action) => action.type === actionType) as Action\r\n}\r\n\r\nexport const getTitleById = (sections: Section[][], id: string) => {\r\n return sections.flat().find((item) => item.id === id)?.title || id\r\n}\r\n","import { useEffect, useRef, useState } from 'react'\r\nimport { connectHighlight } from 'react-instantsearch-dom'\r\nimport { HighlightProps, Hit } from 'react-instantsearch-core'\r\nimport { Flex, Text } from '@vtex/brand-ui'\r\nimport styles from './styles'\r\n\r\ninterface HighLightPartsProps {\r\n index: number\r\n isBetween: boolean\r\n size: number\r\n}\r\n\r\ninterface HitHighlightProps {\r\n value: string\r\n isHighlighted: boolean\r\n}\r\ninterface CustomHighlightProps extends HighlightProps {\r\n searchPage?: boolean\r\n}\r\n\r\nconst Highlight = ({\r\n highlight,\r\n attribute,\r\n hit,\r\n searchPage,\r\n}: CustomHighlightProps) => {\r\n const [parsedHit, setParsedHit] = useState([])\r\n const textContainer = useRef(null)\r\n const hitHighlights: HitHighlightProps[] = highlight({\r\n highlightProperty: '_highlightResult',\r\n attribute: hit.type != 'content' ? `hierarchy.${hit.type}` : attribute,\r\n hit,\r\n })\r\n const maxDescriptionSize = 700\r\n const ellipsedContent: HitHighlightProps[] = []\r\n if (searchPage) {\r\n let charCount = 0\r\n hitHighlights.forEach((part) => {\r\n if (maxDescriptionSize - charCount <= 0) return\r\n if (part.value.length + charCount >= maxDescriptionSize) {\r\n part.value =\r\n part.value.slice(0, maxDescriptionSize - charCount - 3) + '...'\r\n }\r\n charCount += part.value.length\r\n ellipsedContent.push(part)\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n if (searchPage) return\r\n const titleSize = textContainer.current\r\n ? textContainer.current.offsetWidth / 7.75\r\n : 40\r\n\r\n const highlightParts: HighLightPartsProps[] = []\r\n let highlightCount = 0,\r\n highlightLength = 0\r\n\r\n hitHighlights.forEach((match: HitHighlightProps, index: number) => {\r\n const isBetween =\r\n index > 0 && index < hitHighlights.length - 1 ? true : false\r\n if (match.isHighlighted) {\r\n if (isBetween) highlightCount++\r\n highlightCount++\r\n highlightLength += match.value.length\r\n } else {\r\n highlightParts.push({\r\n index,\r\n isBetween,\r\n size: match.value.length,\r\n })\r\n }\r\n })\r\n\r\n highlightParts.sort(\r\n (a: HighLightPartsProps, b: HighLightPartsProps) => a.size - b.size\r\n )\r\n\r\n let sizeRemaining = titleSize - highlightLength\r\n let size = sizeRemaining / (highlightCount || 1)\r\n\r\n highlightParts.forEach((match: HighLightPartsProps) => {\r\n const value = hitHighlights[match.index].value\r\n if (match.isBetween) {\r\n if (match.size >= size * 2) {\r\n const reticences = (size * 2 - 3) / 2\r\n hitHighlights[match.index].value =\r\n value.slice(0, reticences) +\r\n '...' +\r\n value.slice(value.length - reticences)\r\n sizeRemaining -= size * 2\r\n } else {\r\n sizeRemaining -= match.size\r\n }\r\n highlightCount -= 2\r\n } else {\r\n if (match.size >= size) {\r\n if (match.index === 0)\r\n hitHighlights[match.index].value =\r\n '...' + value.slice(value.length - (size - 3))\r\n else\r\n hitHighlights[match.index].value = value.slice(0, size - 3) + '...'\r\n sizeRemaining -= size\r\n } else {\r\n sizeRemaining -= match.size\r\n }\r\n highlightCount -= 1\r\n }\r\n size = sizeRemaining / highlightCount\r\n hitHighlights[match.index].value = hitHighlights[\r\n match.index\r\n ].value.replace(/\\s+/g, '\\u00A0')\r\n })\r\n setParsedHit(hitHighlights)\r\n }, [hit, textContainer.current])\r\n\r\n return (\r\n \r\n \r\n {(searchPage ? ellipsedContent : parsedHit).map(\r\n (part: HitHighlightProps, index: number) =>\r\n part.isHighlighted ? (\r\n \r\n {part.value}\r\n \r\n ) : (\r\n part.value\r\n )\r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\ninterface HighlightPassedThru {\r\n hit: Hit\r\n attribute: string\r\n highlightProperty?: string | undefined\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nconst connectedHighlight: React.ComponentClass> =\r\n connectHighlight(Highlight)\r\n\r\nexport default connectedHighlight\r\n","import algoliasearch, { AlgoliaSearchOptions } from 'algoliasearch/lite'\r\nimport aa from 'search-insights'\r\nimport {\r\n MultipleQueriesQuery,\r\n MultipleQueriesResponse,\r\n} from '@algolia/client-search'\r\nimport { stripMarkdownForSnippet } from '../string-utils'\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport let searchClient: any = {}\r\nexport let searchIndex = ''\r\nexport let hitsPerPage = 10 // Default page size for search results\r\n\r\nexport interface AlgoliaConfig {\r\n appId: string\r\n apiKey: string\r\n index: string\r\n algoliaOptions?: AlgoliaSearchOptions\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n customOptions?: any\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n instantSearchConfigs?: any\r\n useLanguageFilter?: boolean\r\n}\r\n\r\nexport interface HybridSearchConfig {\r\n apiEndpoint: string\r\n source: 'help-center' | 'dev-portal'\r\n defaultLimit?: number\r\n itemsPerPage?: number // Alias for defaultLimit (for backward compatibility)\r\n useLanguageFilter?: boolean\r\n /**\r\n * Max number of results to request from the upstream API in a single call.\r\n * The Hybrid Search upstream does not support pagination, so the adapter\r\n * fetches a large slice once and paginates / filters client-side.\r\n * Defaults to 100 (the upstream HS_MAX_LIMIT).\r\n */\r\n upstreamFetchSize?: number\r\n /**\r\n * TTL (ms) for the in-memory response cache keyed by query+locale.\r\n * A short TTL is enough to let `connectInfiniteHits` page through the\r\n * results without re-fetching the upstream on every refineNext call.\r\n * Defaults to 60_000 ms.\r\n */\r\n cacheTtlMs?: number\r\n}\r\n\r\nexport type SearchBackendConfig =\r\n | { backend: 'algolia'; algolia: AlgoliaConfig }\r\n | { backend: 'hybrid'; hybrid: HybridSearchConfig; index: string }\r\n\r\nconst createAlgoliaClient = (config: AlgoliaConfig) => {\r\n const {\r\n apiKey,\r\n appId,\r\n index,\r\n algoliaOptions,\r\n customOptions,\r\n instantSearchConfigs,\r\n useLanguageFilter = true,\r\n } = config\r\n searchIndex = index\r\n\r\n aa('init', {\r\n appId: appId || '',\r\n apiKey: apiKey || '',\r\n useCookie: false,\r\n })\r\n\r\n aa('getUserToken', null, (err) => {\r\n if (err) {\r\n console.error(err)\r\n return\r\n }\r\n })\r\n\r\n const algoliaClient = algoliasearch(appId || '', apiKey || '', algoliaOptions)\r\n\r\n searchClient = {\r\n ...algoliaClient,\r\n ...customOptions,\r\n instantSearchConfigs,\r\n useLanguageFilter,\r\n search(requests: MultipleQueriesQuery[]) {\r\n if (requests.every(({ params }) => !params?.query)) return\r\n return algoliaClient.search(requests)\r\n },\r\n }\r\n}\r\n\r\n// Upstream hard cap (must match HS_MAX_LIMIT in the API proxy).\r\nconst HYBRID_UPSTREAM_MAX_LIMIT = 100\r\n\r\n/** Fixed Help Center doctype ids (matches helpcenter src/utils/constants.ts). */\r\nconst HYBRID_DOCTYPE_IDS = [\r\n 'tracks',\r\n 'tutorials',\r\n 'faq',\r\n 'known-issues',\r\n 'troubleshooting',\r\n 'announcements',\r\n] as const\r\n\r\n/** Portal tab id → upstream canonical doctype (matches helpcenter search proxy). */\r\nconst PORTAL_TO_CANONICAL_DOCTYPE: Record = {\r\n tutorials: 'tutorial',\r\n tracks: 'tracks',\r\n faq: 'faq',\r\n troubleshooting: 'troubleshooting',\r\n announcements: 'announcements',\r\n}\r\n\r\ntype HybridDoctypeCounts = Record\r\n\r\ntype HybridSearchCountsApiResponse = {\r\n counts: {\r\n tracks: number\r\n tutorial: number\r\n faq: number\r\n troubleshooting: number\r\n announcements: number\r\n }\r\n total: number\r\n}\r\n\r\ntype HybridCacheEntry = {\r\n key: string\r\n ts: number\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n hits: any[]\r\n}\r\n\r\ntype HybridCountCacheEntry = {\r\n key: string\r\n ts: number\r\n counts: HybridDoctypeCounts\r\n}\r\n\r\ntype HybridDoctypeDeepCacheEntry = {\r\n key: string\r\n ts: number\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n hits: any[]\r\n}\r\n\r\nconst createHybridClient = (config: HybridSearchConfig) => {\r\n const {\r\n apiEndpoint,\r\n defaultLimit,\r\n itemsPerPage,\r\n useLanguageFilter = true,\r\n upstreamFetchSize = HYBRID_UPSTREAM_MAX_LIMIT,\r\n cacheTtlMs = 60_000,\r\n } = config\r\n\r\n // Support both defaultLimit and itemsPerPage (itemsPerPage takes precedence)\r\n const pageSize = itemsPerPage ?? defaultLimit ?? 10\r\n hitsPerPage = pageSize\r\n\r\n const effectiveUpstreamLimit = clampUpstreamLimit(upstreamFetchSize)\r\n const cache: HybridCacheEntry[] = []\r\n const countCache: HybridCountCacheEntry[] = []\r\n const doctypeDeepCache: HybridDoctypeDeepCacheEntry[] = []\r\n const deepenPagination = new Map<\r\n string,\r\n { lastPage: number; endOffset: number }\r\n >()\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const getCached = (key: string): any[] | undefined => {\r\n const now = Date.now()\r\n for (let i = cache.length - 1; i >= 0; i--) {\r\n if (now - cache[i].ts > cacheTtlMs) {\r\n cache.splice(i, 1)\r\n }\r\n }\r\n return cache.find((e) => e.key === key)?.hits\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const setCached = (key: string, hits: any[]) => {\r\n cache.push({ key, ts: Date.now(), hits })\r\n while (cache.length > 20) cache.shift()\r\n }\r\n\r\n const getCachedCounts = (key: string): HybridDoctypeCounts | undefined => {\r\n const now = Date.now()\r\n for (let i = countCache.length - 1; i >= 0; i--) {\r\n if (now - countCache[i].ts > cacheTtlMs) {\r\n countCache.splice(i, 1)\r\n }\r\n }\r\n return countCache.find((e) => e.key === key)?.counts\r\n }\r\n\r\n const setCachedCounts = (key: string, counts: HybridDoctypeCounts) => {\r\n countCache.push({ key, ts: Date.now(), counts })\r\n while (countCache.length > 20) countCache.shift()\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const getDoctypeDeepCached = (key: string): any[] | undefined => {\r\n const now = Date.now()\r\n for (let i = doctypeDeepCache.length - 1; i >= 0; i--) {\r\n if (now - doctypeDeepCache[i].ts > cacheTtlMs) {\r\n doctypeDeepCache.splice(i, 1)\r\n }\r\n }\r\n return doctypeDeepCache.find((e) => e.key === key)?.hits\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const setDoctypeDeepCached = (key: string, hits: any[]) => {\r\n doctypeDeepCache.push({ key, ts: Date.now(), hits })\r\n while (doctypeDeepCache.length > 20) doctypeDeepCache.shift()\r\n }\r\n\r\n const countsEndpoint = `${apiEndpoint.replace(/\\/?$/, '')}/counts`\r\n\r\n const mapApiCountsToPortal = (\r\n counts: HybridSearchCountsApiResponse['counts'],\r\n total: number\r\n ): HybridDoctypeCounts => ({\r\n '': total,\r\n tracks: counts.tracks,\r\n tutorials: counts.tutorial,\r\n faq: counts.faq,\r\n troubleshooting: counts.troubleshooting,\r\n announcements: counts.announcements,\r\n 'known-issues': 0,\r\n })\r\n\r\n const fetchDoctypeCounts = async (\r\n query: string,\r\n locale: string\r\n ): Promise => {\r\n try {\r\n const url = new URL(countsEndpoint, window.location.origin)\r\n url.searchParams.set('q', query)\r\n if (useLanguageFilter && locale) {\r\n url.searchParams.set('locale', locale)\r\n }\r\n\r\n const response = await fetch(url.toString())\r\n if (!response.ok) {\r\n return undefined\r\n }\r\n\r\n const data =\r\n (await response.json()) as Partial\r\n const { counts, total } = data\r\n if (\r\n !counts ||\r\n typeof total !== 'number' ||\r\n typeof counts.tracks !== 'number' ||\r\n typeof counts.tutorial !== 'number' ||\r\n typeof counts.faq !== 'number' ||\r\n typeof counts.troubleshooting !== 'number' ||\r\n typeof counts.announcements !== 'number'\r\n ) {\r\n return undefined\r\n }\r\n\r\n return mapApiCountsToPortal(counts, total)\r\n } catch {\r\n return undefined\r\n }\r\n }\r\n\r\n // Initialize minimal analytics (disabled for hybrid)\r\n aa('init', {\r\n appId: 'hybrid-search',\r\n apiKey: 'none',\r\n useCookie: false,\r\n })\r\n\r\n searchClient = {\r\n appId: 'hybrid-search',\r\n apiKey: 'hybrid',\r\n useLanguageFilter,\r\n instantSearchConfigs: null,\r\n\r\n async search(\r\n requests: MultipleQueriesQuery[]\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n ): Promise | undefined> {\r\n if (requests.every(({ params }) => !params?.query)) {\r\n return undefined\r\n }\r\n\r\n try {\r\n // Find the first request with a non-empty query\r\n const request =\r\n requests.find(({ params }) => params?.query) || requests[0]\r\n const params = request.params || {}\r\n const query = params.query || ''\r\n const hitsPerPage = params.hitsPerPage || pageSize\r\n const page = params.page || 0\r\n\r\n const { locale, doctypes } = extractHybridFilters(params)\r\n\r\n // The upstream Hybrid Search API does not support pagination, so we\r\n // fetch a large slice once per (query, locale) pair and paginate /\r\n // doctype-filter client-side for the result list.\r\n const cacheKey = JSON.stringify({\r\n q: query,\r\n locale: useLanguageFilter ? locale || '' : '',\r\n limit: effectiveUpstreamLimit,\r\n })\r\n\r\n const countCacheKey = JSON.stringify({\r\n q: query,\r\n locale: useLanguageFilter ? locale || '' : '',\r\n })\r\n\r\n const isSearchResultsRequest =\r\n typeof params?.filters === 'string' && params.filters.length > 0\r\n\r\n const cachedHits = getCached(cacheKey)\r\n let cachedCounts = getCachedCounts(countCacheKey)\r\n\r\n const hitsPromise = (async () => {\r\n if (cachedHits) return cachedHits\r\n\r\n const url = new URL(apiEndpoint, window.location.origin)\r\n url.searchParams.set('q', query)\r\n url.searchParams.set('limit', String(effectiveUpstreamLimit))\r\n if (useLanguageFilter && locale) {\r\n url.searchParams.set('locale', locale)\r\n }\r\n\r\n const response = await fetch(url.toString())\r\n if (!response.ok) {\r\n throw new Error(`Hybrid search failed: ${response.status}`)\r\n }\r\n\r\n const data = await response.json()\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const rawResults: any[] = Array.isArray(data?.results)\r\n ? data.results\r\n : []\r\n const allHits = rawResults.map(transformHybridToAlgolia)\r\n setCached(cacheKey, allHits)\r\n return allHits\r\n })()\r\n\r\n const countsPromise = (async (): Promise<\r\n HybridDoctypeCounts | undefined\r\n > => {\r\n if (!isSearchResultsRequest) return undefined\r\n if (cachedCounts) return cachedCounts\r\n\r\n const counts = await fetchDoctypeCounts(query, locale)\r\n if (counts) {\r\n setCachedCounts(countCacheKey, counts)\r\n }\r\n return counts\r\n })()\r\n\r\n const [allHits, doctypeCounts] = await Promise.all([\r\n hitsPromise,\r\n countsPromise,\r\n ])\r\n\r\n if (doctypeCounts) {\r\n cachedCounts = doctypeCounts\r\n }\r\n\r\n const initialFilteredHits = filterHitsByDoctype(allHits, doctypes)\r\n let listHits = doctypes.length ? initialFilteredHits : allHits\r\n\r\n const doctypeDeepCacheKey =\r\n doctypes.length === 1\r\n ? JSON.stringify({\r\n q: query,\r\n locale: useLanguageFilter ? locale || '' : '',\r\n doctype: doctypes[0],\r\n limit: effectiveUpstreamLimit,\r\n })\r\n : ''\r\n\r\n let start = page * hitsPerPage\r\n\r\n if (doctypes.length === 1) {\r\n const portalDoctype = doctypes[0]\r\n const canonicalDoctype = PORTAL_TO_CANONICAL_DOCTYPE[portalDoctype]\r\n const prevPage = deepenPagination.get(doctypeDeepCacheKey)\r\n\r\n if (page === 0 || !prevPage || prevPage.lastPage !== page - 1) {\r\n start = page === 0 ? 0 : page * hitsPerPage\r\n if (page === 0) deepenPagination.delete(doctypeDeepCacheKey)\r\n } else {\r\n start = prevPage.endOffset\r\n }\r\n\r\n if (canonicalDoctype && start >= initialFilteredHits.length) {\r\n let deepenedHits = getDoctypeDeepCached(doctypeDeepCacheKey)\r\n if (!deepenedHits) {\r\n const url = new URL(apiEndpoint, window.location.origin)\r\n url.searchParams.set('q', query)\r\n url.searchParams.set('limit', String(effectiveUpstreamLimit))\r\n url.searchParams.set('doctype', portalDoctype)\r\n if (useLanguageFilter && locale) {\r\n url.searchParams.set('locale', locale)\r\n }\r\n\r\n const response = await fetch(url.toString())\r\n if (response.ok) {\r\n const data = await response.json()\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const rawResults: any[] = Array.isArray(data?.results)\r\n ? data.results\r\n : []\r\n deepenedHits = rawResults.map(transformHybridToAlgolia)\r\n setDoctypeDeepCached(doctypeDeepCacheKey, deepenedHits)\r\n } else {\r\n deepenedHits = []\r\n }\r\n }\r\n\r\n listHits = mergeDeepenedHits(initialFilteredHits, deepenedHits)\r\n }\r\n }\r\n\r\n const doctypeCount =\r\n doctypes.length === 1 ? cachedCounts?.[doctypes[0]] : undefined\r\n const hasDeepened =\r\n doctypes.length === 1 &&\r\n (Boolean(getDoctypeDeepCached(doctypeDeepCacheKey)) ||\r\n listHits.length > initialFilteredHits.length)\r\n const nbHits = (() => {\r\n if (!doctypes.length) return allHits.length\r\n const cap = HYBRID_UPSTREAM_MAX_LIMIT\r\n if (typeof doctypeCount === 'number') {\r\n if (hasDeepened) {\r\n return Math.min(doctypeCount, cap, listHits.length)\r\n }\r\n return Math.min(doctypeCount, cap)\r\n }\r\n return Math.min(listHits.length, cap)\r\n })()\r\n const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage))\r\n const pageHits = listHits.slice(start, start + hitsPerPage)\r\n\r\n if (doctypes.length === 1) {\r\n deepenPagination.set(doctypeDeepCacheKey, {\r\n lastPage: page,\r\n endOffset: start + pageHits.length,\r\n })\r\n }\r\n\r\n const doctypeFacetData: Record = {}\r\n if (cachedCounts) {\r\n HYBRID_DOCTYPE_IDS.forEach((id) => {\r\n const count = cachedCounts[id]\r\n if (typeof count === 'number') {\r\n doctypeFacetData[id] = count\r\n }\r\n })\r\n }\r\n\r\n const hybridAllCount = cachedCounts?.['']\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const searchResult: any = {\r\n hits: pageHits,\r\n nbHits,\r\n page,\r\n nbPages,\r\n hitsPerPage,\r\n exhaustiveNbHits: true,\r\n query,\r\n params: '',\r\n index: request.indexName || '',\r\n processingTimeMS: 0,\r\n facets: {\r\n doctype: doctypeFacetData,\r\n language: {},\r\n },\r\n facets_stats: {},\r\n exhaustiveFacetsCount: true,\r\n queryID: generateQueryID(),\r\n _hybridCountsAttempted: isSearchResultsRequest,\r\n _hybridAllCount:\r\n typeof hybridAllCount === 'number' ? hybridAllCount : undefined,\r\n }\r\n\r\n return {\r\n results: [searchResult],\r\n }\r\n } catch (error) {\r\n console.error('Hybrid search error:', error)\r\n return {\r\n results: [\r\n {\r\n hits: [],\r\n nbHits: 0,\r\n page: 0,\r\n nbPages: 0,\r\n hitsPerPage: pageSize,\r\n exhaustiveNbHits: true,\r\n query: requests[0]?.params?.query || '',\r\n params: '',\r\n index: requests[0]?.indexName || '',\r\n processingTimeMS: 0,\r\n },\r\n ],\r\n }\r\n }\r\n },\r\n }\r\n}\r\n\r\nfunction clampUpstreamLimit(raw: number): number {\r\n if (!Number.isFinite(raw) || raw <= 0) return HYBRID_UPSTREAM_MAX_LIMIT\r\n return Math.min(HYBRID_UPSTREAM_MAX_LIMIT, Math.max(1, Math.floor(raw)))\r\n}\r\n\r\n/**\r\n * Extracts the language and doctype filters from an InstantSearch request.\r\n *\r\n * Two filter shapes need to be supported:\r\n * 1. `Configure.filters` (a single string like\r\n * `language:en AND doctype:\"tutorials\"`), used by the full Search page.\r\n * 2. `Configure.facetFilters` (an array like `['language:en']`), used by\r\n * the SearchInput dropdown in the header.\r\n */\r\nfunction extractHybridFilters(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n params: any\r\n): { locale: string; doctypes: string[] } {\r\n let locale = ''\r\n const doctypes: string[] = []\r\n\r\n const pushDoctype = (raw: string) => {\r\n const value = raw.replace(/^\"|\"$/g, '').trim()\r\n if (value && !doctypes.includes(value)) doctypes.push(value)\r\n }\r\n\r\n // 1) Configure.filters as a string expression\r\n const filtersStr = typeof params?.filters === 'string' ? params.filters : ''\r\n if (filtersStr) {\r\n const langMatch = filtersStr.match(/language\\s*:\\s*([\\w-]+)/i)\r\n if (langMatch) locale = langMatch[1]\r\n\r\n const doctypeRegex = /doctype\\s*:\\s*(?:\"([^\"]+)\"|([^\\s)]+))/gi\r\n let m: RegExpExecArray | null\r\n while ((m = doctypeRegex.exec(filtersStr)) !== null) {\r\n pushDoctype(m[1] || m[2] || '')\r\n }\r\n }\r\n\r\n // 2) facetFilters (string | string[] | (string | string[])[])\r\n const facetFilters = params?.facetFilters\r\n const visit = (entry: unknown) => {\r\n if (typeof entry === 'string') {\r\n if (!locale && entry.startsWith('language:')) {\r\n locale = entry.slice('language:'.length)\r\n } else if (entry.startsWith('doctype:')) {\r\n pushDoctype(entry.slice('doctype:'.length))\r\n }\r\n } else if (Array.isArray(entry)) {\r\n entry.forEach(visit)\r\n }\r\n }\r\n visit(facetFilters)\r\n\r\n return { locale, doctypes }\r\n}\r\n\r\nfunction filterHitsByDoctype(\r\n hits: T[],\r\n doctypes: string[]\r\n): T[] {\r\n if (!doctypes.length) return hits\r\n const wanted = new Set(doctypes.map((d) => d.toLowerCase()))\r\n return hits.filter((h) => wanted.has(String(h.doctype || '').toLowerCase()))\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction mergeDeepenedHits(initial: any[], deepened: any[]): any[] {\r\n const seen = new Set()\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const merged: any[] = []\r\n\r\n for (const hit of [...initial, ...deepened]) {\r\n const key = hit.url_without_anchor || hit.objectID || ''\r\n if (!key || seen.has(key)) continue\r\n seen.add(key)\r\n merged.push(hit)\r\n }\r\n\r\n return merged.slice(0, HYBRID_UPSTREAM_MAX_LIMIT)\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction transformHybridToAlgolia(result: any): any {\r\n const filePath = result.filePath || ''\r\n const doctype = deriveDoctypeFromFilePath(filePath)\r\n\r\n const hierarchy = {\r\n lvl0: doctype,\r\n lvl1: result.title || 'Untitled',\r\n lvl2: deriveCategoryFromFilePath(filePath),\r\n }\r\n\r\n const url = buildUrlFromFilePath(filePath)\r\n\r\n // Strip markdown syntax from snippets for display\r\n const rawContent = result.snippet || result.content || ''\r\n const cleanContent = stripMarkdownForSnippet(rawContent)\r\n\r\n return {\r\n objectID: String(result.id),\r\n ...result,\r\n url,\r\n url_without_anchor: url.split('#')[0],\r\n doctype,\r\n doctitle: result.title || 'Untitled',\r\n content: cleanContent,\r\n hierarchy,\r\n language: result.metadata?.locale || 'en',\r\n type: 'content',\r\n _highlightResult: {\r\n content: {\r\n value: cleanContent,\r\n matchLevel: 'full',\r\n fullyHighlighted: false,\r\n matchedWords: [],\r\n },\r\n hierarchy: {\r\n lvl0: {\r\n value: hierarchy.lvl0,\r\n matchLevel: 'none',\r\n },\r\n lvl1: {\r\n value: hierarchy.lvl1,\r\n matchLevel: result.title ? 'partial' : 'none',\r\n },\r\n },\r\n },\r\n _snippetResult: {\r\n content: {\r\n value: result.snippet ? stripMarkdownForSnippet(result.snippet) : '',\r\n matchLevel: 'full',\r\n },\r\n },\r\n }\r\n}\r\n\r\nconst LOCALE_SEGMENT = /^(en|es|pt)$/i\r\n\r\n/**\r\n * Derives the doctype id from a filePath returned by the Hybrid Search upstream.\r\n *\r\n * Supports the two layouts currently produced by the help-center / dev-portal\r\n * content repositories:\r\n * - `docs///...` → doctype = 3rd segment\r\n * - `//...` → doctype = 1st segment\r\n * - `/...` → doctype = 1st segment (fallback)\r\n *\r\n * Returns 'documentation' as a safe default so SearchCard rendering does not\r\n * break. The id is kept lowercase so it can be matched against the\r\n * `filterSelectedSection` values defined in the consuming app\r\n * (e.g. 'tutorials', 'faq', 'known-issues', 'troubleshooting', 'announcements').\r\n */\r\nfunction deriveDoctypeFromFilePath(filePath: string): string {\r\n const parts = filePath.split('/').filter(Boolean)\r\n if (parts.length === 0) return 'documentation'\r\n\r\n if (parts[0] === 'docs' && parts.length > 2) {\r\n return parts[2].toLowerCase()\r\n }\r\n\r\n if (parts.length > 1 && LOCALE_SEGMENT.test(parts[1])) {\r\n return parts[0].toLowerCase()\r\n }\r\n\r\n return parts[0].toLowerCase()\r\n}\r\n\r\nfunction deriveCategoryFromFilePath(filePath: string): string | null {\r\n const parts = filePath.split('/').filter(Boolean)\r\n if (parts[0] === 'docs' && parts.length > 3) return parts[3]\r\n if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1])) return parts[2]\r\n if (parts.length > 1) return parts[1]\r\n return null\r\n}\r\n\r\n/**\r\n * Builds the user-facing URL for a search hit from its upstream filePath.\r\n *\r\n * The rule is doctype-driven (not path-position-driven):\r\n * - tutorials/tracks → //docs//\r\n * - everything else → ///\r\n *\r\n * The doctype comes from deriveDoctypeFromFilePath (the same source used for\r\n * the facet tabs) and the slug is always the last path segment, so this works\r\n * regardless of how deep the file is nested or where the doctype sits in the\r\n * path (`docs///...` or `//...`).\r\n */\r\nfunction buildUrlFromFilePath(filePath: string): string {\r\n const parts = filePath.split('/').filter(Boolean)\r\n if (parts.length === 0) return '/'\r\n\r\n const stripExt = (s: string) => s.replace(/\\.mdx?$/, '')\r\n const slug = stripExt(parts[parts.length - 1])\r\n\r\n const doctype = deriveDoctypeFromFilePath(filePath)\r\n\r\n // Locale is the 2nd segment in both supported layouts:\r\n // docs//... and //...\r\n const locale =\r\n parts.length > 1 && LOCALE_SEGMENT.test(parts[1])\r\n ? parts[1].toLowerCase()\r\n : 'en'\r\n\r\n if (doctype === 'tutorials' || doctype === 'tracks') {\r\n return `/${locale}/docs/${doctype}/${slug}`\r\n }\r\n\r\n return `/${locale}/${doctype}/${slug}`\r\n}\r\n\r\nfunction generateQueryID(): string {\r\n return `hybrid_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`\r\n}\r\n\r\nexport default function SearchConfig(\r\n config: SearchBackendConfig | AlgoliaConfig\r\n) {\r\n // Backward compatibility: if config doesn't have 'backend', assume Algolia\r\n if ('backend' in config) {\r\n if (config.backend === 'hybrid') {\r\n searchIndex = config.index\r\n createHybridClient(config.hybrid)\r\n } else {\r\n createAlgoliaClient(config.algolia)\r\n }\r\n } else {\r\n // Old API: direct AlgoliaConfig\r\n createAlgoliaClient(config as AlgoliaConfig)\r\n }\r\n}\r\n","import { Flex, Text, Link } from '@vtex/brand-ui'\r\nimport EditIcon from 'components/icons/edit-icon'\r\nimport LikeIcon from 'components/icons/like-icon'\r\nimport LikeSelectedIcon from 'components/icons/like-selected-icon'\r\nimport { useContext, useEffect, useRef, useState } from 'react'\r\nimport styles from './styles'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport ShareButton from 'components/share-button'\r\n\r\nexport interface DocPath {\r\n /** Slug that corresponds to the current page. */\r\n slug?: string\r\n /** Github edit URL to the corresponding documentation file. */\r\n urlToEdit?: string\r\n /** Whether is possible for the user to suggest edits or not. */\r\n suggestEdits?: boolean\r\n /** Include or not a share button. */\r\n shareButton?: boolean\r\n /** Executes when the user sends the feedback. Receives whether it was positive (liked). */\r\n sendFeedback: (liked: boolean) => Promise\r\n /** Whether to render the small version of the component or not. */\r\n small?: boolean\r\n}\r\n\r\nconst FeedbackSection = ({\r\n slug,\r\n urlToEdit,\r\n suggestEdits = true,\r\n shareButton = false,\r\n sendFeedback,\r\n small = false,\r\n}: DocPath) => {\r\n const [feedback, setFeedback] = useState(undefined)\r\n const { locale } = useContext(LibraryContext)\r\n\r\n // Reset feedback selection whenever the page (slug) changes\r\n useEffect(() => {\r\n setFeedback(undefined)\r\n }, [slug])\r\n\r\n const handleSend = async (liked: boolean) => {\r\n if (feedback !== undefined) return\r\n setFeedback(liked)\r\n try {\r\n await sendFeedback(liked)\r\n } catch (e) {\r\n setFeedback(undefined)\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {feedback !== undefined\r\n ? messages[locale]['feedback_section.response']\r\n : messages[locale]['feedback_section.question']}\r\n \r\n\r\n \r\n {/* LIKE */}\r\n handleSend(true)}\r\n role=\"button\"\r\n aria-pressed={feedback === true}\r\n data-cy=\"feedback-section-like\"\r\n >\r\n {feedback === true ? (\r\n \r\n ) : (\r\n \r\n )}\r\n {!small && (\r\n {messages[locale]['feedback_section.positive']}\r\n )}\r\n \r\n\r\n {/* DISLIKE */}\r\n handleSend(false)}\r\n role=\"button\"\r\n aria-pressed={feedback === false}\r\n data-cy=\"feedback-section-dislike\"\r\n >\r\n {feedback === false ? (\r\n \r\n ) : (\r\n \r\n )}\r\n {!small && (\r\n {messages[locale]['feedback_section.negative']}\r\n )}\r\n \r\n \r\n \r\n {suggestEdits && (\r\n \r\n \r\n {messages[locale]['feedback_section.edit']}\r\n \r\n )}\r\n {shareButton && (\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default FeedbackSection\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst EditIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default EditIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst LikeIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default LikeIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst LikeSelectedIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default LikeSelectedIcon\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\ntype StyleFn = (opts?: { small?: boolean }) => SxStyleProp\r\n\r\nconst container: StyleFn = ({ small } = {}) => ({\r\n width: '100%',\r\n flexDirection: small ? 'column' : ['column', 'row'],\r\n alignItems: small ? 'flex-start' : 'center',\r\n alignContent: ['initial', 'space-between'],\r\n justifyContent: ['initial', 'space-between'],\r\n marginTop: small ? '0px' : '32px',\r\n marginBottom: small ? '0px' : '16px',\r\n gap: small ? '8px' : '0px',\r\n})\r\n\r\nconst question: StyleFn = ({ small } = {}) => ({\r\n fontSize: small ? '12px' : '16px',\r\n lineHeight: '18px',\r\n color: '#4A596B',\r\n})\r\n\r\nconst iconsContainer: StyleFn = ({ small } = {}) => ({\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: small ? '0px' : '4px',\r\n ml: small ? '3px' : '6px',\r\n})\r\n\r\nconst likeContainer: SxStyleProp = {\r\n paddingBottom: ['16px', '0'],\r\n borderBottom: ['1px solid #E7E9EE', 'none'],\r\n mt: ['8px', '0'],\r\n mb: ['16px', '0'],\r\n width: ['100%', 'auto'],\r\n justifyContent: ['center', 'initial'],\r\n alignItems: 'center',\r\n}\r\n\r\nconst likeIcon: SxStyleProp = {\r\n mr: '2px',\r\n}\r\n\r\nconst dislikeIcon: SxStyleProp = {\r\n mr: '2px',\r\n transform: 'rotateX(180deg) rotateY(180deg)',\r\n}\r\n\r\nconst button: SxStyleProp = {\r\n ':hover': {\r\n cursor: 'pointer',\r\n color: '#000711',\r\n 'svg > path': {\r\n stroke: '#000711',\r\n },\r\n },\r\n}\r\n\r\nconst buttonActive: SxStyleProp = {\r\n cursor: 'pointer',\r\n color: '#000711',\r\n 'svg > path': {\r\n stroke: '#000711',\r\n },\r\n}\r\n\r\nconst selectedButton: SxStyleProp = {\r\n color: 'muted.1',\r\n}\r\n\r\nconst box: StyleFn = ({ small } = {}) => ({\r\n alignItems: 'center',\r\n color: 'muted.0',\r\n fontSize: small ? '12px' : '16px',\r\n lineHeight: '22px',\r\n})\r\n\r\nconst disabled: SxStyleProp = {\r\n display: 'none !important',\r\n}\r\n\r\nconst editContainer: StyleFn = ({ small } = {}) => ({\r\n ...box({ small }),\r\n ...button,\r\n ':hover': {\r\n color: '#000711 !important',\r\n },\r\n // ml: ['0', 'auto'],\r\n color: '#4A596B !important',\r\n display: 'flex',\r\n})\r\n\r\nconst editIcon: SxStyleProp = { mr: '4px' }\r\n\r\nconst shareButton: SxStyleProp = {\r\n // ml: ['0', 'auto'],\r\n}\r\n\r\nexport default {\r\n disabled,\r\n container,\r\n question,\r\n likeContainer,\r\n likeIcon,\r\n dislikeIcon,\r\n editContainer,\r\n editIcon,\r\n box,\r\n button,\r\n buttonActive,\r\n selectedButton,\r\n shareButton,\r\n iconsContainer,\r\n}\r\n","import { Box, Button, Flex, Text } from '@vtex/brand-ui'\r\nimport FacebookIcon from 'components/icons/facebook-icon'\r\nimport LinkedinIcon from 'components/icons/linkedin-icon'\r\nimport ShareIcon from 'components/icons/share-icon'\r\nimport TwitterIcon from 'components/icons/twitter-icon'\r\nimport { useRef, useState } from 'react'\r\nimport {\r\n FacebookShareButton,\r\n LinkedinShareButton,\r\n TwitterShareButton,\r\n EmailShareButton,\r\n} from 'react-share'\r\nimport styles from './styles'\r\nimport EmailIcon from 'components/icons/email-icon'\r\nimport LinkIcon from 'components/icons/link-icon'\r\nimport { SxStyleProp } from '@vtex/brand-ui'\r\nimport useClickOutside from 'utils/hooks/useClickOutside'\r\n\r\ninterface Props {\r\n url: string\r\n sx?: SxStyleProp\r\n}\r\n\r\nconst ShareButton = ({ url, sx={} }: Props) => {\r\n const [isOpen, setIsOpen] = useState(false)\r\n const containerRef = useRef()\r\n useClickOutside(containerRef, () => setIsOpen(false))\r\n\r\n const handleCopyLink = async () => {\r\n try {\r\n if (window) await navigator.clipboard.writeText(window.location.href)\r\n } catch (error) {\r\n console.error('Error copying link to clipboard:', error)\r\n }\r\n }\r\n\r\n return (\r\n \r\n setIsOpen(!isOpen)}\r\n >\r\n Share\r\n \r\n {isOpen && (\r\n \r\n \r\n \r\n Copy link\r\n \r\n \r\n \r\n \r\n \r\n E-mail\r\n \r\n \r\n \r\n \r\n \r\n Twitter\r\n \r\n \r\n \r\n \r\n \r\n Facebook\r\n \r\n \r\n \r\n \r\n \r\n LinkedIn\r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default ShareButton\r\n\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst FacebookIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n)\r\n\r\nexport default FacebookIcon\r\n\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst LinkedinIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n)\r\n\r\nexport default LinkedinIcon\r\n\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst ShareIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default ShareIcon\r\n\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst TwitterIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n)\r\n\r\nexport default TwitterIcon\r\n\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst container: SxStyleProp = {\r\n position: 'relative',\r\n height: '24px',\r\n}\r\n\r\nconst button: SxStyleProp = {\r\n cursor: 'pointer',\r\n textTransform: 'none',\r\n fontSize: '16px',\r\n lineHeight: '18px',\r\n color: '#4A596B',\r\n width: '24px',\r\n height: '24px',\r\n transition: '0.3s',\r\n ':hover': {\r\n color: '#000711 !important',\r\n textDecoration: 'none',\r\n },\r\n alignItems: 'start',\r\n}\r\n\r\nconst shareIcon: SxStyleProp = {\r\n marginRight: '4px',\r\n}\r\n\r\nconst innerButton: SxStyleProp = {\r\n gap: '16px',\r\n color: '#A1AAB7',\r\n cursor: 'pointer',\r\n transition: '0.3s',\r\n ':hover': {\r\n color: '#4A4A4A',\r\n },\r\n alignItems: 'center',\r\n}\r\n\r\nconst innerContainer: SxStyleProp = {\r\n position: 'absolute',\r\n backgroundColor: 'white',\r\n flexDirection: 'column',\r\n top: '100%',\r\n right: '0',\r\n mt: '8px',\r\n padding: '16px',\r\n gap: '16px',\r\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\r\n borderRadius: '5px',\r\n\r\n ':before': {\r\n content: \"''\",\r\n position: 'absolute',\r\n top: '-8px',\r\n right: '8px',\r\n borderLeft: '8px solid transparent',\r\n borderRight: '8px solid transparent',\r\n borderBottom: '8px solid white',\r\n boxShadow: '0 16px 10px -17px rgba(0, 0, 0, 0.5)',\r\n },\r\n}\r\n\r\nconst divider: SxStyleProp = {\r\n borderBottom: '1px solid #E7E9EE',\r\n}\r\n\r\nexport default {\r\n container,\r\n button,\r\n shareIcon,\r\n innerButton,\r\n innerContainer,\r\n divider,\r\n}\r\n\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst EmailIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n)\r\n\r\nexport default EmailIcon\r\n\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst LinkIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default LinkIcon\r\n\r\n","import { Box, Flex } from '@vtex/brand-ui'\r\nimport SearchSections from 'components/search-sections'\r\nimport SearchResults from 'components/search-results'\r\nimport SearchFilterTabBar from 'components/search-filter-tab-bar'\r\nimport SearchContextProvider from 'utils/context/search'\r\nimport styles from './styles'\r\nimport SearchInput from 'components/search-input'\r\n\r\nconst Search = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default Search\r\n","import { Box } from '@vtex/brand-ui'\r\n\r\nimport SearchSection from 'components/search-section'\r\nimport styles from './styles'\r\nimport { useContext } from 'react'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\n\r\nconst SearchSections = () => {\r\n const { sidebarSections } = useContext(LibraryContext)\r\n\r\n const internalOnlySections = sidebarSections.map((section) =>\r\n section.filter((item) => !item.isExternalLink)\r\n )\r\n\r\n return (\r\n \r\n {internalOnlySections.map((sections, id) => (\r\n \r\n {id === 0 && }\r\n {sections.map((section, index) => (\r\n \r\n ))}\r\n \r\n ))}\r\n \r\n )\r\n}\r\n\r\nexport default SearchSections\r\n","import { Box, Flex, Text } from '@vtex/brand-ui'\r\nimport { useContext, useEffect } from 'react'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport styles from './styles'\r\nimport { useRouter } from 'next/router.js'\r\nimport { FilterType, SearchContext } from 'utils/context/search'\r\nimport { Section } from 'utils/typings/types'\r\nimport { formatSearchTabCount } from 'utils/search-utils'\r\n\r\ninterface SearchSectionProps {\r\n dataElement: Section | null\r\n index?: number\r\n}\r\n\r\nconst SearchSection = ({ dataElement, index }: SearchSectionProps) => {\r\n const router = useRouter()\r\n const { filterSelectedSection, ocurrenceCount, changeFilterSelectedSection } =\r\n useContext(SearchContext)\r\n const { locale } = useContext(LibraryContext)\r\n\r\n const updateFilter = (value: FilterType) => {\r\n router.query.filter = value\r\n changeFilterSelectedSection(value)\r\n }\r\n\r\n useEffect(() => {\r\n updateFilter('')\r\n }, [router.query])\r\n\r\n const allCountLabel = formatSearchTabCount(ocurrenceCount[''])\r\n\r\n if (!dataElement) {\r\n return (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results'}\r\n \r\n {allCountLabel !== undefined && (\r\n \r\n {allCountLabel}\r\n \r\n )}\r\n \r\n )\r\n }\r\n\r\n const count = ocurrenceCount[dataElement.id]\r\n const isDisabled = count === 0\r\n const countLabel = formatSearchTabCount(count)\r\n\r\n return (\r\n {\r\n if (isDisabled) return\r\n updateFilter(dataElement.id)\r\n }}\r\n data-disabled={String(isDisabled)}\r\n >\r\n \r\n \r\n \r\n {dataElement.title}\r\n \r\n \r\n {countLabel !== undefined && (\r\n \r\n {countLabel}\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default SearchSection\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst sectionContainer: (disabled?: boolean) => SxStyleProp = (\r\n disabled = false\r\n) => ({\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: disabled ? 'not-allowed' : 'pointer',\r\n opacity: disabled ? 0.5 : 1,\r\n ':active, :hover': disabled\r\n ? {}\r\n : {\r\n backgroundColor: '#F8F7FC',\r\n borderRadius: '4px',\r\n '.search-section-title': {\r\n color: '#000711',\r\n },\r\n '.search-section-count': {\r\n background: '#E7E9EE',\r\n },\r\n },\r\n})\r\n\r\nconst sectionIconTitleBox: SxStyleProp = {\r\n alignItems: 'center',\r\n}\r\n\r\nconst sectionIcon: (disabled?: boolean) => SxStyleProp = (\r\n disabled = false\r\n) => ({\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n opacity: disabled ? 0.6 : 1,\r\n})\r\n\r\nconst sectionTitle: (disabled?: boolean) => SxStyleProp = (\r\n disabled = false\r\n) => ({\r\n fontSize: '12px',\r\n lineHeight: '16px',\r\n color: disabled ? '#AFAFAF' : undefined,\r\n})\r\n\r\nconst sectionTitleActive: SxStyleProp = {\r\n ...sectionTitle(),\r\n color: '#142032',\r\n fontWeight: '600',\r\n}\r\n\r\nconst sectionCount: SxStyleProp = {\r\n background: '#F8F7FC',\r\n borderRadius: '24px',\r\n width: 'auto',\r\n textAlign: 'center',\r\n px: '8px',\r\n fontSize: '12px',\r\n lineHeight: '16px',\r\n}\r\n\r\nconst allResultsText: SxStyleProp = {\r\n ...sectionTitle(),\r\n ml: '24px',\r\n}\r\n\r\nconst allResultsTextActive: SxStyleProp = {\r\n ...allResultsText,\r\n fontWeight: 'bold',\r\n color: '#0C1522',\r\n}\r\n\r\nexport default {\r\n sectionContainer,\r\n sectionIconTitleBox,\r\n sectionIcon,\r\n sectionTitle,\r\n sectionTitleActive,\r\n sectionCount,\r\n allResultsText,\r\n allResultsTextActive,\r\n}\r\n","import {\r\n createContext,\r\n Dispatch,\r\n ReactNode,\r\n SetStateAction,\r\n useState,\r\n} from 'react'\r\n\r\nexport type FilterType = string\r\n\r\ntype OcurrenceType = {\r\n [key: string]: number | undefined\r\n}\r\n\r\ntype SearchContextType = {\r\n filterSelectedSection: FilterType\r\n changeFilterSelectedSection: Dispatch>\r\n ocurrenceCount: OcurrenceType\r\n updateOcurrenceCount: (resultsData: OcurrenceType) => void\r\n}\r\n\r\nexport const SearchContext = createContext({\r\n filterSelectedSection: '',\r\n changeFilterSelectedSection: () => undefined,\r\n ocurrenceCount: {},\r\n updateOcurrenceCount: () => undefined,\r\n})\r\n\r\ninterface Props {\r\n children: ReactNode\r\n}\r\n\r\nconst SearchContextProvider = ({ children }: Props) => {\r\n const [filterSelectedSection, changeFilterSelectedSection] =\r\n useState('')\r\n const [ocurrenceCount, changeOcurrenceCount] = useState({})\r\n\r\n const updateOcurrenceCount = (resultsData: OcurrenceType) => {\r\n changeOcurrenceCount(resultsData)\r\n }\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport default SearchContextProvider\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst container: SxStyleProp = {\r\n display: ['none', 'none', 'none', 'initial'],\r\n height: '100%',\r\n width: '242px',\r\n border: '1px solid #E7E9EE',\r\n borderRadius: '4px',\r\n mr: ['32px', '32px', '32px', '32px', '32px', '32px', '64px'],\r\n mt: '96px',\r\n}\r\n\r\nconst notesSection: SxStyleProp = {\r\n px: '8px',\r\n paddingTop: '8px',\r\n}\r\n\r\nconst docsSection: SxStyleProp = {\r\n ...notesSection,\r\n borderBottom: '1px solid #E7E9EE',\r\n}\r\n\r\nexport default {\r\n container,\r\n notesSection,\r\n docsSection,\r\n}\r\n","import { useRouter } from 'next/router.js'\r\nimport { useContext, useEffect, useState } from 'react'\r\n\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport { Box, Text } from '@vtex/brand-ui'\r\n\r\nimport { Configure, InstantSearch } from 'react-instantsearch-dom'\r\nimport { SearchState } from 'react-instantsearch-core'\r\nimport InfiniteHits from './infiniteHits'\r\n\r\nimport styles from './styles'\r\nimport { SearchContext } from 'utils/context/search'\r\nimport {\r\n searchClient,\r\n searchIndex,\r\n hitsPerPage,\r\n} from 'utils/config/search-config'\r\nimport { formatSearchTabCount } from 'utils/search-utils'\r\n\r\nconst SearchResults = () => {\r\n const router = useRouter()\r\n const { filterSelectedSection, ocurrenceCount } = useContext(SearchContext)\r\n const { locale } = useContext(LibraryContext)\r\n const filters = [\r\n `language:${locale}`,\r\n filterSelectedSection ? `doctype:\"${filterSelectedSection}\"` : '',\r\n ]\r\n .filter(Boolean)\r\n .join(' AND ')\r\n const keyword = String(router.query.keyword ?? '')\r\n const [prevFilter, setPrevFilter] = useState('')\r\n const [prevKeyword, setPrevKeyword] = useState(keyword)\r\n const [searchState, setSearchState] = useState({})\r\n\r\n useEffect(() => {\r\n if (!keyword || keyword === prevKeyword) return\r\n setPrevKeyword(keyword)\r\n setSearchState((currentState) => ({\r\n ...currentState,\r\n page: 1,\r\n }))\r\n }, [keyword, prevKeyword])\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const keywordChanged = keyword !== prevKeyword\r\n const filterChanged = filters !== prevFilter\r\n const page = keywordChanged || filterChanged ? 1 : currentState.page || 1\r\n if (keywordChanged) setPrevKeyword(keyword)\r\n setPrevFilter(filters)\r\n setSearchState({\r\n ...currentState,\r\n page,\r\n })\r\n }\r\n\r\n return (\r\n \r\n \r\n {`${messages[locale]['search_results.showing'] || 'Showing'} ${\r\n formatSearchTabCount(ocurrenceCount[filterSelectedSection]) ?? ''\r\n } ${messages[locale]['search_results.results_for'] || 'results for'} ${\r\n router.query.keyword\r\n } ${messages[locale]['search_results.in'] || 'in'} ${\r\n !filterSelectedSection\r\n ? messages[locale]['search_results.all_lowercase'] || 'all results'\r\n : filterSelectedSection\r\n }`}\r\n \r\n
\r\n \r\n \r\n updateSearchState(currentState)\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default SearchResults\r\n","import { useContext, useEffect, useMemo, useRef } from 'react'\r\nimport {\r\n connectInfiniteHits,\r\n connectStateResults,\r\n} from 'react-instantsearch-dom'\r\nimport {\r\n Hit,\r\n InfiniteHitsProvided,\r\n StateResultsProvided,\r\n} from 'react-instantsearch-core'\r\nimport SearchCard from 'components/search-card'\r\nimport {\r\n ActionType,\r\n getIconFromSection,\r\n getRelativeURL,\r\n getTitleById,\r\n} from 'utils/search-utils'\r\nimport { Box, Flex } from '@vtex/brand-ui'\r\nimport { MethodType } from 'utils/typings/types'\r\nimport { SearchContext } from 'utils/context/search'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\n\r\nexport type FilteredHit2 = Hit & { filteredMatches?: Hit[] }\r\n\r\ninterface HitProps {\r\n hit: FilteredHit2\r\n}\r\n\r\nconst HitCard = ({ hit }: HitProps) => {\r\n const { sidebarSections } = useContext(LibraryContext)\r\n const breadcrumbTitle = getTitleById(sidebarSections, hit.doctype)\r\n\r\n const breadcrumbs = [\r\n breadcrumbTitle,\r\n ...(hit.doccategory ? [hit.doccategory] : []),\r\n ,\r\n hit.doctitle,\r\n ]\r\n const DocIcon = getIconFromSection(sidebarSections, hit.doctype)\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nconst StateResults = connectStateResults(\r\n ({ searchResults }: StateResultsProvided) => {\r\n const { updateOcurrenceCount } = useContext(SearchContext)\r\n\r\n useEffect(() => {\r\n if (!searchResults) return\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const results = searchResults as any\r\n const isFilteringByDoctype =\r\n typeof results?._state.filters === 'string' &&\r\n results._state.filters.includes('doctype:')\r\n\r\n const formattedFacets: Record = {}\r\n const rawFacets = results?.facets\r\n\r\n if (Array.isArray(rawFacets)) {\r\n const doctypeFacet = rawFacets.find(\r\n (facet: { name?: string; data?: Record }) =>\r\n facet.name === 'doctype'\r\n )\r\n if (doctypeFacet?.data) {\r\n Object.entries(doctypeFacet.data).forEach(([key, value]) => {\r\n if (typeof value === 'number') {\r\n formattedFacets[key] = value\r\n }\r\n })\r\n }\r\n } else if (rawFacets?.doctype && typeof rawFacets.doctype === 'object') {\r\n Object.entries(rawFacets.doctype).forEach(([key, value]) => {\r\n if (typeof value === 'number') {\r\n formattedFacets[key] = value\r\n }\r\n })\r\n }\r\n\r\n const hybridAllCount = results?._hybridAllCount\r\n const hybridCountsAttempted = results?._hybridCountsAttempted === true\r\n if (typeof hybridAllCount === 'number') {\r\n formattedFacets[''] = hybridAllCount\r\n } else if (!isFilteringByDoctype && !hybridCountsAttempted) {\r\n formattedFacets[''] = results?.nbHits ?? 0\r\n }\r\n\r\n if (!isFilteringByDoctype) {\r\n updateOcurrenceCount(formattedFacets)\r\n }\r\n }, [searchResults?.queryID])\r\n\r\n return null\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n) as any\r\n\r\nconst InfiniteHits = ({ hits, hasMore, refineNext }: InfiniteHitsProvided) => {\r\n const scrollRef = useRef(null)\r\n\r\n function onSentinelIntersection(entries: IntersectionObserverEntry[]) {\r\n entries.forEach((entry: IntersectionObserverEntry) => {\r\n if (entry.isIntersecting && hasMore) {\r\n refineNext()\r\n }\r\n })\r\n }\r\n\r\n const filteredResult = useMemo(() => {\r\n const mergeHits: FilteredHit2[] = [] //hitsData\r\n hits.forEach((hit) => {\r\n const alreadyExists = mergeHits.findIndex(\r\n (e) => e.url_without_anchor === hit.url_without_anchor\r\n )\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const filteredHit: any = { ...hit, filteredMatches: [] }\r\n if (alreadyExists >= 0) {\r\n mergeHits[alreadyExists].filteredMatches?.push(filteredHit)\r\n } else mergeHits.push(filteredHit)\r\n })\r\n return mergeHits\r\n }, [hits])\r\n\r\n useEffect(() => {\r\n const observer = new IntersectionObserver(onSentinelIntersection, {})\r\n\r\n if (scrollRef.current) observer.observe(scrollRef.current)\r\n return () => {\r\n observer.disconnect()\r\n }\r\n }, [hits])\r\n return (\r\n \r\n \r\n {filteredResult.map((hit: Hit, index: number) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n )\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport default connectInfiniteHits(InfiniteHits) as any\r\n","import { Box, Flex, Text, IconCaret, Tooltip } from '@vtex/brand-ui'\r\n\r\nimport styles from './styles'\r\nimport Link from 'next/link.js'\r\nimport CustomHighlight from 'components/search-input/customHighlight'\r\nimport { useState } from 'react'\r\nimport { useContext } from 'react'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport ExpandedResultsIcon from 'components/icons/expanded-results-icon'\r\nimport { Hit } from 'react-instantsearch-core'\r\nimport MethodCategory from 'components/method-category'\r\nimport { IconComponent, MethodType } from 'utils/typings/types'\r\nimport { ActionType, getAction } from 'utils/search-utils'\r\n\r\nexport type FilteredHit = Hit & { filteredMatches?: Hit[] }\r\ninterface SearchCardProps {\r\n doc: string\r\n title: string\r\n breadcrumbs?: string[]\r\n method?: MethodType\r\n actionType?: ActionType\r\n Icon?: IconComponent\r\n url: string\r\n hit: FilteredHit\r\n}\r\n\r\nconst SearchCard = ({\r\n Icon,\r\n title,\r\n method,\r\n breadcrumbs,\r\n actionType,\r\n url,\r\n hit,\r\n}: SearchCardProps) => {\r\n const actionValue = actionType ? getAction(actionType) : null\r\n const [toggleChildResults, setToggleChildResults] = useState(false)\r\n const { locale } = useContext(LibraryContext)\r\n return (\r\n \r\n \r\n \r\n \r\n {Icon && }\r\n {method ? (\r\n \r\n ) : null}\r\n {title === 'overview' && `${hit.doccategory} `}\r\n {title}\r\n \r\n \r\n \r\n \r\n \r\n {toggleChildResults &&\r\n hit.filteredMatches?.map((childHit, index: number) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n {breadcrumbs ? (\r\n \r\n \r\n {messages[locale]['search_card.in'] || 'In'}\r\n \r\n {breadcrumbs.map((breadcrumb, index) => (\r\n \r\n \r\n {breadcrumb}\r\n \r\n {index < breadcrumbs.length - 1 ? (\r\n \r\n ) : null}\r\n \r\n ))}\r\n \r\n ) : null}\r\n {actionValue ? (\r\n \r\n {' '}\r\n {actionValue?.title}\r\n \r\n ) : null}\r\n \r\n {hit.filteredMatches && hit.filteredMatches.length > 0 && (\r\n {\r\n setToggleChildResults(!toggleChildResults)\r\n event.stopPropagation()\r\n }}\r\n >\r\n \r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default SearchCard\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\nimport { methodsColors } from 'components/method-category/functions'\r\nimport { MethodType } from 'utils/typings/unionTypes'\r\n\r\nconst container: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n borderRadius: '9px',\r\n border: '1px solid #DDDDDD',\r\n width: '100%',\r\n mb: '18px',\r\n paddingTop: '26px',\r\n paddingBottom: '10px',\r\n paddingLeft: ['13px', '44px'],\r\n paddingRight: ['13px', '34px'],\r\n background: '#FFFFFF',\r\n cursor: 'pointer',\r\n}\r\n\r\nconst containerActive = (method: MethodType | undefined): SxStyleProp => {\r\n const methodCategory = method ? methodsColors[method] : ''\r\n return {\r\n ...container,\r\n ':hover': {\r\n background: '#F8F7FC',\r\n '.searchCardTitle, .searchCardDescription': {\r\n color: '#142032',\r\n },\r\n '.method-category': {\r\n ...methodCategory,\r\n },\r\n },\r\n }\r\n}\r\n\r\nconst title: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'flex-start',\r\n fontSize: ['16px', '18px'],\r\n lineHeight: ['22px', '24px'],\r\n color: 'muted.0',\r\n}\r\n\r\nconst httpMethod: SxStyleProp = {\r\n mr: '4px',\r\n}\r\n\r\nconst icon: SxStyleProp = {\r\n width: '24px',\r\n height: '24px',\r\n mr: '8px',\r\n path: {\r\n stroke: '#A1A8B3',\r\n },\r\n}\r\n\r\nconst description: SxStyleProp = {\r\n fontSize: '16px',\r\n lineHeight: '22px',\r\n paddingLeft: '32px',\r\n color: 'muted.0',\r\n mt: '4px',\r\n mb: '8px',\r\n minWidth: 0,\r\n overflowWrap: 'break-word',\r\n wordBreak: 'break-word',\r\n overflow: 'hidden',\r\n display: '-webkit-box',\r\n WebkitLineClamp: 4,\r\n WebkitBoxOrient: 'vertical',\r\n}\r\n\r\nconst descriptionToggle: SxStyleProp = {\r\n height: 'auto',\r\n minWidth: 'auto',\r\n}\r\n\r\nconst descriptionExpandedItem: SxStyleProp = {\r\n mt: '24px',\r\n}\r\n\r\nconst breadcrumbsContainer: SxStyleProp = {\r\n display: ['none', 'flex'],\r\n paddingLeft: '32px',\r\n alignItems: 'center',\r\n}\r\n\r\nconst alignCenter: SxStyleProp = {\r\n alignItems: 'center',\r\n}\r\n\r\nconst documentation: SxStyleProp = {\r\n ...alignCenter,\r\n minWidth: 'max-content',\r\n}\r\n\r\nconst breadcrumb: SxStyleProp = {\r\n color: 'muted.1',\r\n fontSize: '16px',\r\n lineHeight: '18px',\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n}\r\n\r\nconst lastBreadcrumb: SxStyleProp = {\r\n ...breadcrumb,\r\n margin: 'auto 0',\r\n display: 'block',\r\n overflow: 'hidden',\r\n maxWidth: 'max-content',\r\n whiteSpace: 'nowrap',\r\n}\r\n\r\nconst breadcrumbsIn: SxStyleProp = {\r\n ...breadcrumb,\r\n mr: '4px',\r\n minWidth: 'fit-content',\r\n}\r\n\r\nconst breadcrumbsArrow: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n color: 'muted.2',\r\n}\r\n\r\nconst actionContainer: SxStyleProp = {\r\n paddingLeft: '32px',\r\n alignItems: 'center',\r\n}\r\n\r\nconst actionIcon: SxStyleProp = {\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n width: '16px',\r\n height: '16px',\r\n mr: '8px',\r\n}\r\n\r\nexport default {\r\n containerActive,\r\n title,\r\n httpMethod,\r\n icon,\r\n description,\r\n descriptionToggle,\r\n descriptionExpandedItem,\r\n breadcrumbsContainer,\r\n alignCenter,\r\n documentation,\r\n breadcrumb,\r\n lastBreadcrumb,\r\n breadcrumbsIn,\r\n breadcrumbsArrow,\r\n actionContainer,\r\n actionIcon,\r\n}\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\ninterface ExpandedResultsProps extends IconProps {\r\n active: boolean\r\n}\r\n\r\nconst ExpandedResultsIcon = ({ active }: ExpandedResultsProps) =>\r\n active ? (\r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n\r\nexport default ExpandedResultsIcon\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst resultContainer: SxStyleProp = {\r\n width: ['80%', '544px', '544px', '544px', '720px', '720px', '1400px'],\r\n paddingTop: ['32px', '32px', '32px', '64px'],\r\n hr: {\r\n marginTop: '16px',\r\n marginBottom: '32px',\r\n borderTop: 'none',\r\n borderColor: '#DDDDDD',\r\n display: ['none', 'none', 'none', 'block'],\r\n },\r\n}\r\n\r\nconst resultText: SxStyleProp = {\r\n mb: '16px',\r\n fontSize: '16px',\r\n lineHeight: '22px',\r\n display: ['none', 'none', 'none', 'initial'],\r\n}\r\n\r\nconst paginationContainer: SxStyleProp = {\r\n mt: ['48px', '115px'],\r\n mb: '34px',\r\n justifyContent: 'center',\r\n}\r\n\r\nconst paginationLink: SxStyleProp = {\r\n fontSize: '16px',\r\n lineHeight: '20px',\r\n color: '#EE2565',\r\n cursor: 'pointer',\r\n}\r\n\r\nconst paginationLinkDisabled: SxStyleProp = {\r\n ...paginationLink,\r\n color: 'muted.1',\r\n}\r\n\r\nconst paginationNumber: SxStyleProp = {\r\n display: 'flex',\r\n fontSize: ['14px', '16px'],\r\n lineHeight: '20px',\r\n color: '#4A596B',\r\n mx: ['18px', '27px'],\r\n}\r\n\r\nconst paginationActualNumber: SxStyleProp = {\r\n fontWeight: '700',\r\n mx: '4px',\r\n}\r\n\r\nconst noResults: SxStyleProp = {\r\n justifyContent: 'center',\r\n alignContent: 'center',\r\n padding: '12px',\r\n}\r\n\r\nexport default {\r\n resultContainer,\r\n resultText,\r\n paginationContainer,\r\n paginationLink,\r\n paginationLinkDisabled,\r\n paginationNumber,\r\n paginationActualNumber,\r\n noResults,\r\n}\r\n","import { useContext } from 'react'\r\nimport { Flex, Text } from '@vtex/brand-ui'\r\n\r\nimport styles from './styles'\r\nimport { SearchContext } from 'utils/context/search'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport { formatSearchTabCount } from 'utils/search-utils'\r\n\r\nconst SearchFilterTab = ({ filter }: { filter: string }) => {\r\n const { filterSelectedSection, changeFilterSelectedSection, ocurrenceCount } =\r\n useContext(SearchContext)\r\n const { locale } = useContext(LibraryContext)\r\n\r\n const count = ocurrenceCount[filter]\r\n const isAllTab = filter === ''\r\n const isDisabled = !isAllTab && count === 0\r\n const formattedCount = formatSearchTabCount(count)\r\n const isActive = filterSelectedSection === filter\r\n\r\n const handleClick = () => {\r\n if (isDisabled) return\r\n changeFilterSelectedSection(filter)\r\n }\r\n\r\n return (\r\n \r\n \r\n {filter || messages[locale]['search_results.all'] || 'All results'}\r\n \r\n {formattedCount !== undefined && (\r\n \r\n {formattedCount}\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nconst SearchFilterTabBar = () => {\r\n const { sidebarSections } = useContext(LibraryContext)\r\n return (\r\n \r\n \r\n {sidebarSections.flat().map((section) => {\r\n return \r\n })}\r\n \r\n )\r\n}\r\n\r\nexport default SearchFilterTabBar\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst container: SxStyleProp = {\r\n display: ['flex', 'flex', 'flex', 'none'],\r\n overflowX: 'scroll',\r\n scrollbarWidth: 'none',\r\n '::-webkit-scrollbar': {\r\n display: 'none',\r\n },\r\n}\r\n\r\nconst tab: (active: boolean, disabled?: boolean) => SxStyleProp = (\r\n active,\r\n disabled = false\r\n) => ({\r\n pt: '8px',\r\n pb: '14px',\r\n px: '24px',\r\n cursor: disabled ? 'not-allowed' : 'pointer',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n borderBottom: `${active ? 2 : 1}px solid #${active ? 'D71D55' : 'DDDDDD'}`,\r\n minWidth: 'max-content',\r\n opacity: disabled ? 0.5 : 1,\r\n})\r\n\r\nconst tabTitle: (active: boolean, disabled?: boolean) => SxStyleProp = (\r\n active,\r\n disabled = false\r\n) => ({\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '16.38px',\r\n whiteSpace: 'nowrap',\r\n color: `#${disabled ? 'AFAFAF' : active ? 'D71D55' : '545454'}`,\r\n})\r\n\r\nconst tabCount: SxStyleProp = {\r\n px: '8px',\r\n ml: '2px',\r\n fontSize: '12px',\r\n fontWeight: '400',\r\n lineHeight: '16px',\r\n borderRadius: '24px',\r\n backgroundColor: '#F8F7FC',\r\n}\r\n\r\nexport default { container, tab, tabTitle, tabCount }\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst searchBarContainer: SxStyleProp = {\r\n display: ['flex', 'flex', 'flex', 'none'],\r\n justifyContent: 'center',\r\n py: '16px',\r\n}\r\n\r\nconst body: SxStyleProp = {\r\n background: '#FFFFFF',\r\n justifyContent: 'center',\r\n}\r\n\r\nexport default {\r\n searchBarContainer,\r\n body,\r\n}\r\n","import { ReactNode, useContext } from 'react'\r\nimport { CookieConsent } from 'react-cookie-consent'\r\nimport styles from './styles'\r\nimport { Flex, SxStyleProp, Text } from '@vtex/brand-ui'\r\nimport { messages } from 'utils/get-message'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport aa from 'search-insights'\r\n\r\ninterface Props {\r\n onAccept: () => void\r\n}\r\n\r\ninterface ButtonProps {\r\n children: ReactNode[]\r\n style: SxStyleProp\r\n}\r\n\r\nconst Button = ({ children, style, ...props }: ButtonProps) => {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nconst CookieBar = ({ onAccept }: Props) => {\r\n const { locale } = useContext(LibraryContext)\r\n\r\n return (\r\n {\r\n aa('init', {\r\n partial: true,\r\n useCookie: true,\r\n })\r\n onAccept()\r\n }}\r\n declineButtonText={messages[locale]['cookie_bar.decline']}\r\n buttonText={messages[locale]['cookie_bar.accept']}\r\n ButtonComponent={Button}\r\n customButtonWrapperAttributes={{ style: styles.buttonContainer }}\r\n customContentAttributes={{ style: styles.barContent }}\r\n >\r\n {messages[locale]['cookie_bar.title']}\r\n {messages[locale]['cookie_bar.description']}\r\n \r\n )\r\n}\r\n\r\nexport default CookieBar\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst bar: SxStyleProp = {\r\n backgroundColor: '#FFF',\r\n borderRadius: '8px',\r\n color: '#5E6E84',\r\n padding: '20px',\r\n width: '80%',\r\n left: '50%',\r\n transform: 'translateX(-50%)',\r\n maxWidth: '1280px',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n boxShadow: '0 0 10px rgba(0, 0, 0, 0.1)',\r\n}\r\n\r\nconst barContent: SxStyleProp = {\r\n display: 'flex',\r\n flex: '1 0 300px',\r\n flexDirection: 'column',\r\n maxWidth: '100%',\r\n}\r\n\r\nconst title: SxStyleProp = {\r\n color: '#5E6E84',\r\n marginBottom: '10px',\r\n lineHeight: '28px',\r\n fontSize: '25px',\r\n fontWeight: '400',\r\n}\r\n\r\nconst buttonContainer: SxStyleProp = {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n gap: '10px',\r\n justifyContent: 'center',\r\n margin: '15px',\r\n}\r\n\r\nconst acceptButton: SxStyleProp = {\r\n background: '#F71963',\r\n color: '#FFF',\r\n padding: '7px 16px',\r\n borderRadius: '2px',\r\n margin: '0',\r\n height: '32px',\r\n fontWeight: '400',\r\n\r\n ':hover': {\r\n opacity: '0.7',\r\n },\r\n}\r\n\r\nconst declineButton: SxStyleProp = {\r\n border: '1px solid #F71963',\r\n background: '#FFF',\r\n color: '#F71963',\r\n borderRadius: '2px',\r\n fontWeight: '400',\r\n margin: '0',\r\n height: '32px',\r\n\r\n ':hover': {\r\n opacity: '0.7',\r\n },\r\n}\r\n\r\nexport default {\r\n bar,\r\n barContent,\r\n title,\r\n acceptButton,\r\n declineButton,\r\n buttonContainer,\r\n}\r\n","import { Button } from '@vtex/brand-ui'\r\nimport Tooltip from 'components/tooltip'\r\nimport CopyIcon from '../icons/copy-icon'\r\nimport { useState } from 'react'\r\nimport styles from './styles'\r\n\r\nconst CopyLinkButton = () => {\r\n const [tooltipText, setTooltipText] = useState('Copy')\r\n\r\n const handleCopy = () => {\r\n navigator.clipboard.writeText(window.location.href)\r\n setTooltipText('Copy')\r\n\r\n setTimeout(() => {\r\n setTooltipText('Copied!')\r\n }, 2000)\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default CopyLinkButton\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst CopyIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default CopyIcon\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst copyIcon: SxStyleProp = {\r\n marginRight: '4px',\r\n}\r\n\r\nconst copyLinkButton: SxStyleProp = {\r\n textTransform: 'none',\r\n color: '#3F3F3F',\r\n fontWeight: '100',\r\n fontSize: '12px',\r\n lineHeight: '18px',\r\n height: 'none',\r\n padding: '8px 5px 8px 8px',\r\n border: '1px solid #A1AAB7',\r\n backgroundColor: 'white',\r\n ':hover': {\r\n backgroundColor: '#EFEFEF',\r\n },\r\n}\r\n\r\nexport default {\r\n copyIcon,\r\n copyLinkButton,\r\n}\r\n","import { useState, useEffect } from 'react'\r\nimport styles from './styles'\r\nimport { Flex } from '@vtex/brand-ui'\r\nimport { IconComponent } from 'utils/typings/types'\r\n\r\ninterface InputProps {\r\n value: string\r\n Icon?: IconComponent\r\n placeholder?: string\r\n onChange: (value: string) => void\r\n}\r\n\r\nconst Input = ({ value, onChange, placeholder = '', Icon }: InputProps) => {\r\n const [inputValue, setInputValue] = useState(value ?? '')\r\n\r\n useEffect(() => {\r\n if (inputValue !== value) setInputValue(value)\r\n }, [value])\r\n\r\n return (\r\n \r\n {Icon && }\r\n {\r\n setInputValue(e.currentTarget.value)\r\n onChange(e.currentTarget.value)\r\n }}\r\n />\r\n \r\n )\r\n}\r\n\r\nexport default Input\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst input: SxStyleProp = {\r\n background: 'none',\r\n border: '#F4F4F4',\r\n color: '#545454',\r\n fontSize: ['14px'],\r\n width: '100%',\r\n transition: 'flex 0.3s',\r\n outline: 'none',\r\n}\r\n\r\nconst icon: SxStyleProp = {\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n width: '16px',\r\n mr: '8px',\r\n flex: 0,\r\n maxWidth: 'fit-content',\r\n}\r\n\r\nconst container: SxStyleProp = {\r\n paddingLeft: '12px',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n background: '#F4F4F4',\r\n width: '100%',\r\n height: '40px',\r\n borderRadius: '4px',\r\n transition: 'all 0.3s ease-out',\r\n cursor: 'pointer',\r\n border: '1px solid #F4F4F4',\r\n\r\n ':hover': {\r\n transition: 'all 0.3s ease-out',\r\n border: '1px solid #3B3B3B',\r\n },\r\n}\r\n\r\nexport default { container, input, icon }\r\n","import React, { useContext, useState } from 'react'\r\nimport { Box, Button, Text, Flex, Link } from '@vtex/brand-ui'\r\nimport { messages } from 'utils/get-message'\r\nimport { getPrivacyNoticeURL, getNewsletterURL } from 'utils/get-url'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport styles from './styles'\r\n\r\ntype EmailValidationResult = 'valid' | 'invalid' | 'error'\r\n\r\nconst SubscriptionList: React.FC = () => {\r\n const { locale } = useContext(LibraryContext)\r\n const localizedMessages = messages[locale] ?? messages.en\r\n const [email, setEmail] = useState('')\r\n const [message, setMessage] = useState('')\r\n const [messageType, setMessageType] = useState<'success' | 'error' | ''>('')\r\n\r\n const clearMessageAfterTimeout = () => {\r\n setTimeout(() => {\r\n setMessage('')\r\n setMessageType('')\r\n }, 3000)\r\n }\r\n\r\n const showMessage = (type: 'success' | 'error', text: string) => {\r\n setMessageType(type)\r\n setMessage(text)\r\n clearMessageAfterTimeout()\r\n if (type === 'success') setEmail('')\r\n }\r\n\r\n const checkEmail = async (email: string): Promise => {\r\n const apiKey = process.env.NEXT_PUBLIC_NEWSLETTER_API_KEY\r\n if (!apiKey) {\r\n console.error(localizedMessages['subscription_list.api_key_error'])\r\n return 'error'\r\n }\r\n\r\n const url = `https://mailcheck.p.rapidapi.com/?email=${encodeURIComponent(\r\n email\r\n )}`\r\n\r\n try {\r\n const response = await fetch(url, {\r\n method: 'GET',\r\n headers: {\r\n 'x-rapidapi-host': 'mailcheck.p.rapidapi.com',\r\n 'x-rapidapi-key': apiKey,\r\n },\r\n })\r\n\r\n if (!response.ok) {\r\n console.error(\r\n 'Email validation failed:',\r\n response.status,\r\n response.statusText\r\n )\r\n return 'error'\r\n }\r\n\r\n const data = await response.json()\r\n if (typeof data.block !== 'boolean') {\r\n console.error('Email validation returned an unusable response:', data)\r\n return 'error'\r\n }\r\n\r\n return data.block ? 'invalid' : 'valid'\r\n } catch (error) {\r\n console.error(error)\r\n return 'error'\r\n }\r\n }\r\n\r\n const handleSubscribe = async () => {\r\n if (!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email)) {\r\n showMessage('error', localizedMessages['subscription_list.invalid_email'])\r\n return\r\n }\r\n\r\n const validationResult = await checkEmail(email)\r\n if (validationResult === 'invalid') {\r\n showMessage('error', localizedMessages['subscription_list.invalid_email'])\r\n return\r\n }\r\n if (validationResult === 'error') {\r\n showMessage('error', localizedMessages['subscription_list.error'])\r\n return\r\n }\r\n\r\n const baseURL =\r\n 'https://hooks.zapier.com/hooks/catch/11585741/2pahup2/?email='\r\n\r\n const browserLocale = navigator.language || 'en-US'\r\n const currentDate = new Date()\r\n const formattedDate = currentDate.toLocaleString(browserLocale, {\r\n month: 'short',\r\n day: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n second: '2-digit',\r\n hour12: false,\r\n })\r\n\r\n const urlEnd = `&locale=${browserLocale}&date=${encodeURIComponent(\r\n formattedDate\r\n )}`\r\n const emailEncoded = encodeURIComponent(email)\r\n const url = baseURL + emailEncoded + urlEnd\r\n\r\n try {\r\n const response = await fetch(url, { method: 'POST' })\r\n\r\n if (!response.ok) {\r\n console.error(\r\n 'Subscription failed:',\r\n response.status,\r\n response.statusText\r\n )\r\n showMessage('error', localizedMessages['subscription_list.error'])\r\n return\r\n }\r\n\r\n showMessage('success', localizedMessages['subscription_list.success'])\r\n } catch (error) {\r\n console.error('Error:', error)\r\n showMessage('error', localizedMessages['subscription_list.error'])\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n {localizedMessages['landing_page_subscription.title']}\r\n \r\n \r\n
\r\n \r\n {\r\n localizedMessages['landing_page_subscription.description'].split(\r\n 'newsletter'\r\n )[0]\r\n }\r\n \r\n newsletter\r\n \r\n {\r\n localizedMessages['landing_page_subscription.description'].split(\r\n 'newsletter'\r\n )[1]\r\n }\r\n \r\n \r\n ) =>\r\n setEmail(e.target.value)\r\n }\r\n sx={styles.emailInputField}\r\n />\r\n \r\n {localizedMessages['landing_page_newsletter.Button']}\r\n \r\n \r\n \r\n {localizedMessages['subscription_list.privacy_notice']}{' '}\r\n \r\n {localizedMessages['subscription_list.privacy_policy_link']}\r\n \r\n \r\n {message && (\r\n \r\n {message}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default SubscriptionList\r\n","export const getFeedbackURL = () => {\r\n return `https://docs.google.com/forms/d/e/1FAIpQLSfmnotPvPjw-SjiE7lt2Nt3RQgNUe10ixXZmuO2v9enOJReoQ/viewform?entry.1972292648=developers.vtex.com&entry.1799503232=`\r\n}\r\n\r\nexport const getGithubURL = () => {\r\n return `https://github.com/vtex-apps`\r\n}\r\n\r\nexport const getHelpCenterURL = () => {\r\n return `https://help.vtex.com/`\r\n}\r\n\r\nexport const getCommunityURL = () => {\r\n return `https://community.vtex.com/?_ga=2.198523433.743584735.1647618303-1974737580.1645714642`\r\n}\r\n\r\nexport const getLearningCenterURL = () => {\r\n return 'https://learn.vtex.com/'\r\n}\r\n\r\nexport const getSupportURL = () => {\r\n return 'https://help.vtex.com/en/support'\r\n}\r\n\r\nexport const getNewsletterURL = (locale: 'en' | 'pt' | 'es' = 'en') => {\r\n return `https://vtexhelp.myvtex.com/educationnewsletter/${locale}`\r\n}\r\n\r\nexport const getPrivacyNoticeURL = (locale: 'en' | 'pt' | 'es' = 'en') => {\r\n const localeMap = { en: 'us-en', pt: 'pt-br', es: 'es-mx' }\r\n return `https://vtex.com/${localeMap[locale]}/trust/general-external-privacy-notice/`\r\n}\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst controlHeight = '48px'\r\n\r\nconst sectionContainer: SxStyleProp = {\r\n borderTop: '1px solid #e7e9ef',\r\n px: ['16px', '24px', '32px'],\r\n py: ['42px', '44px', '64px'],\r\n backgroundColor: 'muted.4',\r\n textAlign: 'center',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n}\r\n\r\nconst cardContainer: SxStyleProp = {\r\n mt: ['16px', '24px', '32px'],\r\n px: ['16px', '24px', '50px'],\r\n py: ['16px', '24px', '40px'],\r\n width: ['100%', '90%', '80%'],\r\n maxWidth: '1035px',\r\n backgroundColor: 'white',\r\n borderRadius: '8px',\r\n border: '1px solid #E7E9EE',\r\n}\r\n\r\nconst title: SxStyleProp = {\r\n fontSize: ['20px', '28px', '28px', '40px'],\r\n lineHeight: ['30px', '38px', '38px', '50px'],\r\n fontWeight: '400',\r\n color: '#4A4A4A',\r\n textAlign: 'center',\r\n}\r\n\r\nconst description: SxStyleProp = {\r\n fontSize: ['14px', '16px'],\r\n lineHeight: ['20px', '22px'],\r\n textAlign: 'center',\r\n marginBottom: '16px',\r\n}\r\n\r\nconst inputContainer: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: ['column', 'row'],\r\n gap: '5px',\r\n justifyContent: 'center',\r\n alignItems: ['center', 'flex-end'],\r\n width: '100%',\r\n}\r\n\r\nconst emailInputField: SxStyleProp = {\r\n flex: 1,\r\n minWidth: 0,\r\n width: '100%',\r\n border: '1px solid #a1a8b3',\r\n borderRadius: '4px',\r\n color: '#4A4A4A',\r\n fontSize: '16px',\r\n lineHeight: '22px',\r\n px: '16px',\r\n py: 0,\r\n height: controlHeight,\r\n minHeight: controlHeight,\r\n boxSizing: 'border-box',\r\n '&::placeholder': {\r\n color: '#4A4A4A',\r\n },\r\n '&:focus': {\r\n outline: 'none',\r\n borderColor: '#A1A8B3',\r\n },\r\n}\r\n\r\nconst button: SxStyleProp = {\r\n transition: 'all 0.3s ease-out',\r\n minHeight: controlHeight,\r\n height: controlHeight,\r\n alignSelf: ['center', 'stretch'],\r\n minWidth: '140px',\r\n whiteSpace: 'nowrap',\r\n px: '16px',\r\n}\r\n\r\nconst privacyText: SxStyleProp = {\r\n fontSize: ['14px', '16px'],\r\n color: '#A1A8B3',\r\n lineHeight: ['16px', '22px'],\r\n pl: ['22px', '32px'],\r\n fontWeight: '400',\r\n margin: '16px',\r\n}\r\n\r\nconst popupCard: SxStyleProp = {\r\n backgroundColor: 'white',\r\n boxShadow: '0 4px 6px rgba(0, 0, 0, 0.1)',\r\n width: '100%',\r\n maxWidth: '400px',\r\n padding: ['8px', '12px'],\r\n boxSizing: 'border-box',\r\n margin: '0 auto',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n borderRadius: '6px',\r\n marginTop: '16px',\r\n alignSelf: 'center',\r\n}\r\n\r\nexport default {\r\n sectionContainer,\r\n cardContainer,\r\n title,\r\n description,\r\n inputContainer,\r\n emailInputField,\r\n button,\r\n privacyText,\r\n popupCard,\r\n}\r\n","import { SxStyleProp, Text } from '@vtex/brand-ui'\r\n\r\nimport styles from './styles'\r\n\r\nexport type TagColor =\r\n | 'Default'\r\n | 'Selected'\r\n | 'New'\r\n | 'Gray'\r\n | 'Blue'\r\n | 'Green'\r\n | 'Deprecation'\r\n | 'Backlog'\r\n | 'Fixed'\r\n | 'Closed'\r\n | 'Scheduled'\r\n | 'No_Fix'\r\n\r\nexport type TagProps = {\r\n sx?: SxStyleProp\r\n children: React.ReactNode\r\n color?: TagColor\r\n onClick?: () => void\r\n}\r\n\r\nconst Tag = ({ sx = {}, children, color = 'Default', onClick }: TagProps) => {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport default Tag\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nimport type { TagColor } from './index'\r\n\r\nconst tag: SxStyleProp = {\r\n borderRadius: '11.5px',\r\n height: '20px',\r\n fontSize: '12px',\r\n lineHeight: '20px',\r\n px: '7px',\r\n textAlign: 'center',\r\n textWrap: 'nowrap',\r\n minWidth: 'max-content',\r\n}\r\n\r\nconst statusColors: Record = {\r\n Backlog: {\r\n border: '1px solid #D3D3D3',\r\n color: '#4A596B',\r\n background: '#E9E9E9',\r\n },\r\n Fixed: {\r\n border: '1px solid #9FCDB4',\r\n color: '#3A6E32',\r\n background: '#DFF5DB',\r\n },\r\n Closed: {\r\n border: '1px solid #A5C0FF',\r\n color: '#2953B2',\r\n background: '#DEE8FE',\r\n },\r\n Scheduled: {\r\n border: '1px solid #FFD581',\r\n color: '#D77809',\r\n background: '#FFF3DA',\r\n },\r\n No_Fix: {\r\n border: '1px solid #FAA397',\r\n color: '#CB2610',\r\n background: '#FFDFDB',\r\n },\r\n Default: {\r\n border: '1px solid #A1AAB7',\r\n color: '#A1AAB7',\r\n background: '#ffff',\r\n\r\n ':hover': {\r\n color: '#4A596B',\r\n border: '1px solid #4A596B',\r\n },\r\n },\r\n Selected: {\r\n border: '1px solid #A1AAB7',\r\n color: '#ffff',\r\n background: '#A1AAB7',\r\n\r\n ':hover': {\r\n color: '#142032',\r\n },\r\n },\r\n New: {\r\n border: '1px solid #F71963',\r\n color: '#F71963',\r\n background: '#FFE0EF',\r\n },\r\n Gray: {\r\n color: '#4A596B',\r\n background: '#E7E9EE',\r\n },\r\n Deprecation: {\r\n border: '1px solid #E8A5BE',\r\n color: '#A23D6E',\r\n background: '#FCEAF2',\r\n },\r\n Blue: {\r\n border: '1px solid #A5C0FF',\r\n color: '#2953B2',\r\n background: '#DEE8FE',\r\n },\r\n Green: {\r\n border: '1px solid #9FCDB4',\r\n color: '#3A6E32',\r\n background: '#DFF5DB',\r\n },\r\n}\r\n\r\nexport default {\r\n statusColors,\r\n tag,\r\n}\r\n","import { Box, Button, Checkbox, Flex, SxStyleProp, Text } from '@vtex/brand-ui'\r\nimport CloseIcon from 'components/icons/close-icon'\r\nimport FilterIcon from 'components/icons/filter-icon'\r\nimport TrashcanIcon from 'components/icons/trashcan-icon'\r\nimport Tag from 'components/tag'\r\nimport { useState } from 'react'\r\n\r\nimport { toFilterGroup, toFilterGroups } from './normalize'\r\nimport styles from './styles'\r\nimport type {\r\n FilterGroup,\r\n ListingFilterLabels,\r\n ListingFilterSelection,\r\n} from './types'\r\n\r\nexport type { FilterGroup, FilterOption, ListingFilterLabels, ListingFilterSelection } from './types'\r\n\r\nexport type ListingFilterProps = {\r\n tagFilter?: FilterGroup | string[]\r\n tagFilterName?: string\r\n checkBoxFilter?: FilterGroup | string[]\r\n checkBoxFilters?: FilterGroup[]\r\n filterName?: string\r\n selectedCheckboxes?: string[]\r\n selectedTags?: string[]\r\n onApply: (filters: ListingFilterSelection) => void\r\n labels?: ListingFilterLabels\r\n buttonSx?: SxStyleProp\r\n centeredTagOptions?: boolean\r\n}\r\n\r\ntype SelectedFilters = ListingFilterSelection\r\n\r\nconst defaultLabels: Required = {\r\n button: 'Filters',\r\n modalTitle: 'Filters',\r\n remove: 'Remove filters',\r\n apply: 'Apply filters',\r\n}\r\n\r\nconst ListingFilter = ({\r\n tagFilter,\r\n tagFilterName,\r\n checkBoxFilter,\r\n checkBoxFilters,\r\n filterName = '',\r\n onApply,\r\n selectedCheckboxes,\r\n selectedTags,\r\n labels,\r\n buttonSx,\r\n centeredTagOptions = false,\r\n}: ListingFilterProps) => {\r\n const resolvedLabels = { ...defaultLabels, ...labels }\r\n const normalizedTagFilter = toFilterGroup(tagFilter, tagFilterName)\r\n const checkboxGroups = toFilterGroups(\r\n checkBoxFilter,\r\n checkBoxFilters,\r\n filterName\r\n )\r\n\r\n const [isModalOpen, setIsModalOpen] = useState(false)\r\n const [tempFilters, setTempFilters] = useState({\r\n tag: [],\r\n checklist: [],\r\n })\r\n\r\n const numberOfFilters =\r\n getSelectedFiltersLength(selectedTags) +\r\n getSelectedFiltersLength(selectedCheckboxes)\r\n\r\n function getSelectedFiltersLength(filters: string[] | undefined) {\r\n return filters?.length ?? 0\r\n }\r\n\r\n function handleFilterClick(option: string, type: 'tag' | 'checklist') {\r\n setTempFilters((prev) => {\r\n const current = prev[type]\r\n const updatedFilters = current.includes(option)\r\n ? current.filter((filter) => filter !== option)\r\n : [...current, option]\r\n\r\n return { ...prev, [type]: updatedFilters }\r\n })\r\n }\r\n\r\n function isFilterSelected(option: string, type: 'tag' | 'checklist') {\r\n if (isModalOpen) {\r\n return tempFilters[type].includes(option)\r\n }\r\n\r\n if (type === 'tag') {\r\n return selectedTags?.includes(option) ?? false\r\n }\r\n\r\n return selectedCheckboxes?.includes(option) ?? false\r\n }\r\n\r\n const FilterButton = () => (\r\n {\r\n setTempFilters({\r\n checklist: selectedCheckboxes ?? [],\r\n tag: selectedTags ?? [],\r\n })\r\n setIsModalOpen(true)\r\n }}\r\n >\r\n \r\n {resolvedLabels.button}\r\n {numberOfFilters > 0 && (\r\n {numberOfFilters}\r\n )}\r\n \r\n )\r\n\r\n const TagFilter = () => {\r\n if (!normalizedTagFilter) return null\r\n\r\n return (\r\n \r\n {normalizedTagFilter.name}\r\n \r\n {normalizedTagFilter.options.map((option) => (\r\n handleFilterClick(option.id, 'tag')}\r\n >\r\n {option.name}\r\n \r\n ))}\r\n \r\n \r\n )\r\n }\r\n\r\n const CheckboxFilters = () => {\r\n if (checkboxGroups.length === 0) return null\r\n\r\n return (\r\n <>\r\n {checkboxGroups.map((group, groupIndex) => (\r\n \r\n {groupIndex > 0 && }\r\n \r\n {group.name}\r\n \r\n {group.options.map((option) => (\r\n handleFilterClick(option.id, 'checklist')}\r\n />\r\n ))}\r\n \r\n \r\n \r\n ))}\r\n \r\n )\r\n }\r\n\r\n const Divider = () => (\r\n \r\n
\r\n
\r\n )\r\n\r\n const FilterModal = () => (\r\n <>\r\n setIsModalOpen(false)} />\r\n \r\n \r\n {resolvedLabels.modalTitle}\r\n setIsModalOpen(false)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n {normalizedTagFilter && checkboxGroups.length > 0 && }\r\n \r\n \r\n \r\n }\r\n onClick={() => setTempFilters({ tag: [], checklist: [] })}\r\n >\r\n {resolvedLabels.remove}\r\n \r\n {\r\n setIsModalOpen(false)\r\n onApply(tempFilters)\r\n }}\r\n >\r\n {resolvedLabels.apply}\r\n \r\n \r\n \r\n \r\n )\r\n\r\n return (\r\n <>\r\n \r\n {isModalOpen && }\r\n \r\n )\r\n}\r\n\r\nexport default ListingFilter\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst FilterIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default FilterIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst TrashcanIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default TrashcanIcon\r\n","import type { FilterGroup } from './types'\r\n\r\nexport function isFilterGroup(value: unknown): value is FilterGroup {\r\n return (\r\n typeof value === 'object' &&\r\n value !== null &&\r\n 'name' in value &&\r\n 'options' in value &&\r\n Array.isArray((value as FilterGroup).options)\r\n )\r\n}\r\n\r\nexport function toFilterGroup(\r\n input: FilterGroup | string[] | undefined,\r\n name = ''\r\n): FilterGroup | undefined {\r\n if (!input) return undefined\r\n\r\n if (isFilterGroup(input)) {\r\n return input\r\n }\r\n\r\n return {\r\n name,\r\n options: input.map((option) => ({ id: option, name: option })),\r\n }\r\n}\r\n\r\nexport function toFilterGroups(\r\n checkBoxFilter: FilterGroup | string[] | undefined,\r\n checkBoxFilters: FilterGroup[] | undefined,\r\n filterName = ''\r\n): FilterGroup[] {\r\n if (checkBoxFilters?.length) {\r\n return checkBoxFilters\r\n }\r\n\r\n const normalized = toFilterGroup(checkBoxFilter, filterName)\r\n return normalized ? [normalized] : []\r\n}\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst filterButton: SxStyleProp = {\r\n cursor: 'pointer',\r\n alignItems: 'center',\r\n borderRadius: '4px',\r\n border: '1px solid #E7E9EE',\r\n fontSize: '14px',\r\n gap: '8px',\r\n px: '8px',\r\n transition: '0.3s',\r\n height: '30px',\r\n ':hover': {\r\n color: '#F71963',\r\n },\r\n width: 'min-content',\r\n}\r\n\r\nconst filterButtonText: SxStyleProp = {\r\n display: ['none', 'block', 'block'],\r\n}\r\n\r\nconst numberOfFilters: SxStyleProp = {\r\n backgroundColor: '#FFE0EF',\r\n color: '#F71963',\r\n borderRadius: '4px',\r\n px: '4px',\r\n}\r\n\r\nconst blanket: SxStyleProp = {\r\n margin: '0',\r\n width: '100%',\r\n height: '100%',\r\n background: 'rgba(20, 32, 50, 0.70)',\r\n position: 'fixed',\r\n top: '0',\r\n left: '0',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n zIndex: '9999',\r\n}\r\n\r\nconst container: SxStyleProp = {\r\n position: 'fixed',\r\n top: '50%',\r\n left: '50%',\r\n transform: 'translate(-50%, -50%)',\r\n width: '612px',\r\n maxWidth: '100vw',\r\n borderRadius: '5px',\r\n backgroundColor: '#ffff',\r\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\r\n zIndex: '10000',\r\n overflow: 'auto',\r\n height: ['100vh', 'auto'],\r\n}\r\n\r\nconst innerContainer: SxStyleProp = {\r\n p: '24px',\r\n maxHeight: ['calc(100vh - 145px)', 'calc(100vh - 6rem - 112px)'],\r\n overflow: 'auto',\r\n}\r\n\r\nconst topContainer: SxStyleProp = {\r\n display: 'grid',\r\n width: '100%',\r\n borderBottom: '1px solid #E7E9EE',\r\n gridTemplateColumns: '1fr 64px',\r\n alignItems: 'center',\r\n gap: '24px',\r\n height: '64px',\r\n}\r\n\r\nconst modalTitle: SxStyleProp = {\r\n fontSize: '16px',\r\n textAlign: 'center',\r\n}\r\n\r\nconst closeButtonContainer: SxStyleProp = {\r\n cursor: 'pointer',\r\n borderLeft: '1px solid #E7E9EE',\r\n height: '100%',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n transition: '0.3s',\r\n ':hover': {\r\n color: '#E31C58',\r\n },\r\n}\r\n\r\nconst filterContainer: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '24px',\r\n}\r\n\r\nconst tagContainer: SxStyleProp = {\r\n gap: '16px',\r\n flexWrap: 'wrap',\r\n}\r\n\r\nconst tagContainerCentered: SxStyleProp = {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n gap: '12px',\r\n justifyContent: 'center',\r\n overflow: 'visible',\r\n maxWidth: '100%',\r\n}\r\n\r\nconst tag: SxStyleProp = {\r\n cursor: 'pointer',\r\n transition: '0.3s',\r\n flex: '0 0 auto',\r\n ':active': {\r\n position: 'relative',\r\n top: '1px',\r\n },\r\n}\r\n\r\nconst checkBoxContainer: SxStyleProp = {\r\n display: 'grid',\r\n gridTemplateColumns: 'repeat(auto-fill, minmax(150px, 1fr))',\r\n gap: '24px',\r\n alignItems: 'top',\r\n fontSize: '12px',\r\n color: '#4A596B',\r\n}\r\n\r\nconst buttonsContainer: SxStyleProp = {\r\n py: '16px',\r\n px: '32px',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n borderTop: '1px solid #E7E9EE',\r\n}\r\n\r\nconst sectionDivider: SxStyleProp = {\r\n hr: {\r\n border: '1px solid #E7E9EE',\r\n mb: '24px',\r\n mt: '24px',\r\n },\r\n}\r\n\r\nconst filterTitle: SxStyleProp = {\r\n fontSize: '20px',\r\n}\r\n\r\nconst removeButton: SxStyleProp = {\r\n backgroundColor: 'transparent',\r\n color: '#4A596B',\r\n textTransform: 'none',\r\n transition: '0.3s',\r\n p: '0',\r\n\r\n ':hover': {\r\n backgroundColor: 'transparent',\r\n color: '#E31C58',\r\n },\r\n}\r\n\r\nexport default {\r\n filterButton,\r\n filterButtonText,\r\n numberOfFilters,\r\n blanket,\r\n container,\r\n innerContainer,\r\n topContainer,\r\n modalTitle,\r\n closeButtonContainer,\r\n filterContainer,\r\n tagContainer,\r\n tagContainerCentered,\r\n tag,\r\n checkBoxContainer,\r\n buttonsContainer,\r\n sectionDivider,\r\n filterTitle,\r\n removeButton,\r\n}\r\n","import { Box, Link, Text } from '@vtex/brand-ui'\r\nimport Tag from 'components/tag'\r\n\r\nimport type { TroubleshootingItem } from '../../utils/troubleshooting/types'\r\nimport styles from './styles'\r\n\r\nexport type TroubleshootingCardVariant = 'devportal' | 'helpcenter'\r\n\r\nexport type TroubleshootingCardProps = TroubleshootingItem & {\r\n href?: string\r\n basePath?: string\r\n variant?: TroubleshootingCardVariant\r\n}\r\n\r\nfunction buildHref({\r\n slug,\r\n href,\r\n basePath = '/docs/troubleshooting',\r\n}: Pick) {\r\n if (href) return href\r\n\r\n const normalizedBasePath = basePath.replace(/\\/$/, '')\r\n return `${normalizedBasePath}/${slug}`\r\n}\r\n\r\nconst TroubleshootingCard = ({\r\n title,\r\n description,\r\n slug,\r\n tags,\r\n domainFilters,\r\n symptomFilters,\r\n href,\r\n basePath,\r\n variant = 'devportal',\r\n}: TroubleshootingCardProps) => {\r\n const cardHref = buildHref({ slug, href, basePath })\r\n const resolvedSymptomFilters = symptomFilters?.filter(Boolean) ?? []\r\n const resolvedDomainFilters = domainFilters?.filter(Boolean) ?? []\r\n const fallbackTags = tags?.filter(Boolean) ?? []\r\n const hasStructuredTags =\r\n resolvedSymptomFilters.length > 0 || resolvedDomainFilters.length > 0\r\n\r\n if (variant === 'helpcenter') {\r\n return (\r\n \r\n \r\n \r\n {title}\r\n \r\n {hasStructuredTags ? (\r\n \r\n {resolvedSymptomFilters.length > 0 && (\r\n \r\n \r\n {resolvedSymptomFilters.map((filter) => (\r\n \r\n {filter}\r\n \r\n ))}\r\n \r\n \r\n )}\r\n {resolvedDomainFilters.length > 0 && (\r\n \r\n \r\n {resolvedDomainFilters.map((filter) => (\r\n \r\n {filter}\r\n \r\n ))}\r\n \r\n \r\n )}\r\n \r\n ) : null}\r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {title}\r\n \r\n {description ? (\r\n \r\n {description}\r\n \r\n ) : null}\r\n \r\n {resolvedSymptomFilters.length > 0 && (\r\n \r\n {resolvedSymptomFilters.map((filter) => (\r\n \r\n {filter}\r\n \r\n ))}\r\n \r\n )}\r\n {resolvedDomainFilters.length > 0 && (\r\n \r\n {resolvedDomainFilters.map((filter) => (\r\n \r\n {filter}\r\n \r\n ))}\r\n \r\n )}\r\n {!hasStructuredTags &&\r\n fallbackTags.map((moduleTag) => (\r\n \r\n {moduleTag}\r\n \r\n ))}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default TroubleshootingCard\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst devportalContainer: SxStyleProp = {\r\n mt: '16px',\r\n padding: '25px',\r\n borderRadius: '4px',\r\n border: '1px solid #E7E9EE',\r\n width: '100%',\r\n transition: 'all 0.3s ease-out',\r\n ':hover': {\r\n cursor: 'pointer',\r\n },\r\n ':active, :hover': {\r\n borderColor: 'muted.2',\r\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\r\n transition: 'all 0.3 ease-out',\r\n\r\n '.title, .description': {\r\n transition: 'all 0.3s ease-out',\r\n color: '#000711',\r\n },\r\n },\r\n}\r\n\r\nconst helpcenterContainer: SxStyleProp = {\r\n px: ['32px', '32px', '36px', '64px'],\r\n py: '24px',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '16px',\r\n borderRadius: '4px',\r\n border: '1px solid #E7E9EE',\r\n width: ['320px', '544px', '720px'],\r\n transition: 'all 0.3s ease-out',\r\n ':hover': {\r\n cursor: 'pointer',\r\n },\r\n ':active, :hover': {\r\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\r\n transition: 'all 0.3 ease-out',\r\n\r\n '.title': {\r\n transition: 'all 0.3s ease-out',\r\n color: '#000711',\r\n },\r\n },\r\n}\r\n\r\nconst title: SxStyleProp = {\r\n mb: '8px',\r\n fontSize: ['14px', '20px'],\r\n fontWeight: '400',\r\n lineHeight: ['22px', '30px'],\r\n color: 'muted.0',\r\n}\r\n\r\nconst description: SxStyleProp = {\r\n fontSize: '16px',\r\n lineHeight: '22px',\r\n fontWeight: '400',\r\n color: 'muted.1',\r\n overflow: 'hidden',\r\n width: '100%',\r\n height: '50%',\r\n display: ['none', 'none', 'block', 'block', 'block', 'block', 'block'],\r\n}\r\n\r\nconst tag: SxStyleProp = {\r\n width: 'max-content',\r\n px: '8px',\r\n margin: '4px',\r\n}\r\n\r\nconst tagsContainer: SxStyleProp = {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n mt: '12px',\r\n gap: '16px',\r\n}\r\n\r\nconst tagGroup: SxStyleProp = {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n gap: '8px',\r\n}\r\n\r\nconst groupsContainer: SxStyleProp = {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n alignItems: 'center',\r\n gap: '12px 20px',\r\n}\r\n\r\nconst groupContainer: SxStyleProp = {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n alignItems: 'center',\r\n gap: '8px',\r\n flex: '0 1 auto',\r\n maxWidth: '100%',\r\n}\r\n\r\nconst helpcenterTagsContainer: SxStyleProp = {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n alignItems: 'center',\r\n}\r\n\r\nexport default {\r\n devportalContainer,\r\n helpcenterContainer,\r\n title,\r\n description,\r\n tag,\r\n tagsContainer,\r\n tagGroup,\r\n groupsContainer,\r\n groupContainer,\r\n helpcenterTagsContainer,\r\n}\r\n","import type { TroubleshootingFilterState, TroubleshootingItem } from './types'\r\n\r\nexport function filterTroubleshootingItems(\r\n items: T[],\r\n { search, domainFilters, symptomFilters }: TroubleshootingFilterState\r\n): T[] {\r\n const selectedDomainFilters = new Set(\r\n domainFilters.map((filter) => filter.toLowerCase())\r\n )\r\n const selectedSymptomFilters = new Set(\r\n symptomFilters.map((filter) => filter.toLowerCase())\r\n )\r\n const hasDomainFilters = selectedDomainFilters.size > 0\r\n const hasSymptomFilters = selectedSymptomFilters.size > 0\r\n const normalizedSearch = search.toLowerCase()\r\n\r\n return items.filter((item) => {\r\n const matchesSearch =\r\n !normalizedSearch ||\r\n item.title.toLowerCase().includes(normalizedSearch)\r\n\r\n const itemDomainFiltersLower = (item.domainFilters ?? []).map((filter) =>\r\n filter.toLowerCase()\r\n )\r\n const itemSymptomFiltersLower = (item.symptomFilters ?? []).map((filter) =>\r\n filter.toLowerCase()\r\n )\r\n const matchesDomainFilters =\r\n !hasDomainFilters ||\r\n itemDomainFiltersLower.some((filter) =>\r\n selectedDomainFilters.has(filter)\r\n )\r\n const matchesSymptomFilters =\r\n !hasSymptomFilters ||\r\n itemSymptomFiltersLower.some((filter) =>\r\n selectedSymptomFilters.has(filter)\r\n )\r\n\r\n return matchesSearch && matchesDomainFilters && matchesSymptomFilters\r\n })\r\n}\r\n","import type { TroubleshootingItem } from './types'\r\n\r\nexport function collectTroubleshootingFilterOptions<\r\n T extends Pick\r\n>(items: T[]) {\r\n const domainFilters = new Set()\r\n const symptomFilters = new Set()\r\n\r\n items.forEach((item) => {\r\n item.domainFilters?.forEach((filter) => domainFilters.add(filter))\r\n item.symptomFilters?.forEach((filter) => symptomFilters.add(filter))\r\n })\r\n\r\n return {\r\n domainFilters: Array.from(domainFilters).sort(),\r\n symptomFilters: Array.from(symptomFilters).sort(),\r\n }\r\n}\r\n","export const getDaysElapsed = (date: Date) => {\r\n const msInDay = 1000 * 60 * 60 * 24\r\n const msElapsed = new Date().getTime() - date.getTime()\r\n return Math.floor(msElapsed / msInDay)\r\n}\r\n","import { Icon } from '@vtex/brand-ui'\r\nimport type { IconProps } from '@vtex/brand-ui'\r\n\r\nconst GearTroubleshootingIcon = (props: IconProps) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default GearTroubleshootingIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst DocumentationUpdatesIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default DocumentationUpdatesIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst HelpCenterIcon = (props: IconProps) => (\r\n \r\n {' '}\r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default HelpCenterIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst DeveloperPortalIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default DeveloperPortalIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst FAQIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default FAQIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst KnownIssueIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n
\r\n \r\n)\r\n\r\nexport default KnownIssueIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst MegaphoneIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default MegaphoneIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst GraphIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default GraphIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst WarningIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default WarningIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst PaperIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default PaperIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst StartHereIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default StartHereIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst TutorialsIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default TutorialsIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst AnnouncementIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default AnnouncementIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst VTEXDevPortalIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default VTEXDevPortalIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst VTEXHelpCenterIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default VTEXHelpCenterIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst InfoIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default InfoIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst NewIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default NewIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst GithubIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n)\r\n\r\nexport default GithubIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst CommunityIcon = (props: IconProps) => (\r\n \r\n {' '}\r\n \r\n \r\n \r\n)\r\n\r\nexport default CommunityIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst FacebookCircleIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default FacebookCircleIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst LinkedinCircleIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default LinkedinCircleIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst TwitterCircleIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default TwitterCircleIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst YoutubeIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default YoutubeIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst IgIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default IgIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst ChatGPTIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n)\r\n\r\nexport default ChatGPTIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst ClaudeIcon = (props: IconProps) => (\r\n \r\n Claude\r\n \r\n \r\n)\r\n\r\nexport default ClaudeIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst GeminiIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n)\r\n\r\nexport default GeminiIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst CopilotIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n)\r\n\r\nexport default CopilotIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst GridIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default GridIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst MenuIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default MenuIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\ninterface CheckboxProps extends IconProps {\r\n checked: boolean\r\n}\r\n\r\nconst CheckboxIcon = (props: CheckboxProps) => (\r\n \r\n {!props.checked ? (\r\n <>\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n )}\r\n \r\n)\r\n\r\nexport default CheckboxIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst ResizeIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n)\r\n\r\nexport default ResizeIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst ArrowRightIcon = (props: IconProps) => (\r\n \r\n {' '}\r\n \r\n \r\n \r\n)\r\n\r\nexport default ArrowRightIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst LongArrowIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default LongArrowIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst VTEXLogoFooter = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default VTEXLogoFooter\r\n"],"mappings":"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","names":["Fragment","text","text","i","checker","version","encode","version","searchIndex","body","parse","algoliasearch","algoliasearch","Box","useEffect","useRef","useState","Box","Flex","mermaid","jsx","jsxs","icon","link","Icon","jsx","PropTypes","Box","styles_default","jsx","Box","styles_default","useEffect","Box","Flex","Icon","jsx","jsxs","body","styles_default","jsx","jsxs","useEffect","Flex","styles_default","Box","Box","Flex","Link","container","styles_default","jsx","jsxs","title","description","Link","styles_default","Box","Flex","useEffect","useState","jsx","title","sidebarElementStatus","item","heading","img","heading","code","blockquote","blockquoteIcon","blockquoteInfo","blockquoteDanger","blockquoteWarning","blockquoteSuccess","flexWrap","svgContainer","messages","jsx","jsxs","useState","icon","useRef","useEffect","mermaid","Box","Flex","item","jsx","Box","useContext","useEffect","Link","Box","Text","styles_default","jsx","jsxs","useContext","useEffect","headings","item","title","Link","Text","styles_default","Box","useEffect","useRef","useState","useContext","Flex","Text","Box","Link","linkContainer","styles_default","iconTooltip","useEffect","useRef","useState","Box","Flex","styles_default","Icon","jsx","jsx","jsxs","label","box","useRef","useState","useEffect","Box","Flex","styles_default","useRouter","useEffect","getIcon","icon","Flex","Box","Text","Button","useContext","useState","styles_default","Box","Flex","Text","Flex","Text","container","styles_default","categoryStyle","styles_default","Icon","jsx","jsxs","jsx","jsxs","Flex","Text","styles_default","useContext","useState","container","text","styles_default","jsx","jsxs","useState","useContext","Box","styles_default","Text","Flex","useRouter","Fragment","useContext","Box","Flex","Link","Button","IconCaret","sectionDivider","styles_default","icon","styles_default","textStyle","jsx","jsxs","useContext","useRouter","slugPrefix","Box","styles_default","Flex","Button","IconCaret","Link","item","Fragment","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","jsxs","Fragment","jsx","jsxs","documentation","useState","useContext","category","getIcon","Box","styles_default","Flex","Button","Text","sidebarSectionHidden","Fragment","jsx","jsxs","useState","useContext","useEffect","iconTooltip","useRef","Box","styles_default","Link","Flex","Text","Box","IconCaret","Button","arrowIcon","arrowIconActive","styles_default","useContext","Link","Box","Flex","Text","cardContainer","title","description","styles_default","cardContainer","styles_default","titleContainer","cardTitle","jsx","jsxs","title","description","link","Icon","Link","Box","cardContainer","Flex","titleContainer","Text","styles_default","useRef","useContext","useRouter","Flex","searchInput","searchIcon","styles_default","jsx","jsxs","useRouter","useRef","useContext","Flex","styles_default","useRouter","Link","Box","Flex","IconCaret","Text","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","item","useEffect","useRef","useState","Flex","Text","jsx","useState","useRef","useEffect","Flex","styles_default","Text","useContext","Fragment","jsx","jsxs","useContext","Link","Box","styles_default","Flex","Text","IconCaret","useRouter","Box","useContext","useRef","useState","aa","aa","algoliasearch","params","hitsPerPage","allHits","jsx","jsxs","useContext","useState","resultsBox","useRef","Box","jsx","jsxs","useContext","styles_default","Box","Button","IconCaret","Flex","Text","Link","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","useContext","useEffect","useState","container","styles_default","Box","Button","Flex","Text","Icon","jsx","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","useRef","useState","container","button","styles_default","Icon","jsx","Icon","jsx","jsxs","jsx","jsxs","useState","useRef","Flex","styles_default","Button","Text","Box","jsx","jsxs","shareButton","useState","useContext","useEffect","Flex","styles_default","Text","Link","Box","Flex","Box","Box","Flex","Text","useContext","useEffect","disabled","styles_default","useRouter","createContext","useState","jsx","jsx","jsxs","useRouter","useContext","useEffect","Flex","styles_default","Text","Box","container","styles_default","useContext","jsx","jsxs","useContext","item","Box","styles_default","useRouter","useContext","useEffect","useState","Box","Text","Configure","InstantSearch","useContext","useEffect","useMemo","useRef","connectStateResults","Box","Flex","Text","IconCaret","Tooltip","container","title","icon","description","alignCenter","styles_default","Link","useState","useContext","Icon","jsx","jsxs","jsx","jsxs","Icon","title","useState","useContext","Link","Flex","styles_default","Box","Text","breadcrumb","Tooltip","IconCaret","Box","Flex","jsx","jsxs","useContext","connectStateResults","useEffect","useRef","useMemo","Box","Flex","noResults","styles_default","jsx","jsxs","useRouter","useContext","useState","useEffect","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","disabled","styles_default","jsx","jsxs","useContext","Flex","styles_default","Text","styles_default","jsx","jsxs","Box","Flex","styles_default","search_default","useContext","title","styles_default","Flex","Text","aa","jsx","jsxs","Button","Flex","useContext","styles_default","Text","Button","Icon","jsx","jsxs","useState","styles_default","jsx","useState","Button","styles_default","useState","useEffect","icon","container","styles_default","Flex","jsx","jsxs","Icon","useState","useEffect","styles_default","useContext","useState","Box","Button","Text","Flex","Link","sectionContainer","cardContainer","title","description","button","styles_default","jsx","jsxs","useContext","useState","text","email","Box","styles_default","Text","Flex","Button","Link","Text","styles_default","jsx","Text","styles_default","Box","Button","Flex","Text","Icon","jsx","jsxs","Icon","jsx","jsxs","useState","input","container","innerContainer","tag","sectionDivider","styles_default","Fragment","jsx","jsxs","useState","numberOfFilters","Flex","styles_default","Text","Box","Button","Box","Link","Text","title","description","tag","styles_default","jsx","jsxs","title","description","Link","Box","styles_default","Text","search","item","item","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","Fragment","jsx","jsxs","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs"]} \ No newline at end of file +{"version":3,"sources":["../node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js","../node_modules/prop-types/node_modules/react-is/index.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/lib/has.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/@algolia/cache-common/dist/cache-common.esm.js","../node_modules/@algolia/cache-in-memory/dist/cache-in-memory.esm.js","../node_modules/@algolia/client-analytics/node_modules/@algolia/client-common/dist/client-common.esm.js","../node_modules/@algolia/requester-common/dist/requester-common.esm.js","../node_modules/@algolia/transporter/dist/transporter.esm.js","../node_modules/@algolia/client-analytics/dist/client-analytics.esm.js","../node_modules/algoliasearch/node_modules/@algolia/client-common/dist/client-common.esm.js","../node_modules/@algolia/client-personalization/node_modules/@algolia/client-common/dist/client-common.esm.js","../node_modules/@algolia/client-personalization/dist/client-personalization.esm.js","../node_modules/@algolia/client-search/node_modules/@algolia/client-common/dist/client-common.esm.js","../node_modules/@algolia/client-search/dist/client-search.esm.js","../node_modules/@algolia/logger-common/dist/logger-common.esm.js","../node_modules/@algolia/recommend/node_modules/@algolia/client-common/dist/client-common.esm.js","../node_modules/@algolia/recommend/node_modules/@algolia/requester-node-http/dist/requester-node-http.esm.js","../node_modules/@algolia/recommend/dist/recommend.cjs.js","../node_modules/@algolia/recommend/index.js","../node_modules/algoliasearch/node_modules/@algolia/requester-node-http/dist/requester-node-http.esm.js","../node_modules/algoliasearch/dist/algoliasearch.cjs.js","../node_modules/algoliasearch/index.js","../node_modules/algoliasearch/lite.js","../src/lib/markdown-renderer/MarkdownRenderer.tsx","../src/lib/markdown-renderer/components.tsx","../src/components/overview-card/styles.ts","../src/components/overview-card/index.tsx","../src/components/overview-card/icons.tsx","../src/components/youtube-frame/index.tsx","../src/components/steps/index.tsx","../src/components/steps/styles.ts","../src/components/lightbox/index.tsx","../src/components/icons/close-icon.tsx","../src/utils/hooks/useClickOutside.ts","../src/components/lightbox/styles.ts","../src/components/whats-next-card/index.tsx","../src/components/whats-next-card/styles.ts","../src/utils/context/libraryContext.tsx","../src/utils/string-utils.ts","../src/utils/mermaidInit.ts","../src/lib/markdown-renderer/styles.module.css","../src/messages/en.json","../src/messages/es.json","../src/messages/pt.json","../src/utils/get-message.ts","../src/lib/table-of-contents/TableOfContents.tsx","../src/lib/table-of-contents/styles.ts","../src/lib/sidebar/index.tsx","../src/lib/sidebar/styles.ts","../src/lib/sidebar/functions.ts","../src/components/tooltip/index.tsx","../src/components/tooltip/styles.ts","../src/components/icons/caret.tsx","../src/utils/navigation-utils.ts","../src/utils/sidebar-utils.ts","../src/components/sidebar-section/index.tsx","../src/components/sidebar-section/styles.ts","../src/components/sidebar-section-filter/index.tsx","../src/components/method-category/index.tsx","../src/components/method-category/styles.ts","../src/components/method-category/functions.ts","../src/components/icons/close-filter-icon.tsx","../src/components/sidebar-section-filter/styles.ts","../src/components/sidebar-elements/index.tsx","../src/components/sidebar-elements/styles.ts","../src/components/sidebar-elements/functions.tsx","../src/components/icons/search-icon.tsx","../src/components/icons/sidebar-toggle-icon.tsx","../src/components/icons/arrow-left-icon.tsx","../src/lib/hamburger-menu/index.tsx","../src/lib/hamburger-menu/styles.ts","../src/components/documentation-card/index.tsx","../src/components/documentation-card/styles.ts","../src/components/documentation-card/functions.ts","../src/components/search-input/index.tsx","../src/components/search-input/search-box.tsx","../src/components/search-input/styles.ts","../src/components/search-input/results-box.tsx","../src/components/icons/api-guides-icon.tsx","../src/components/icons/api-reference-icon.tsx","../src/components/icons/app-development-icon.tsx","../src/components/icons/release-notes-icon.tsx","../src/components/icons/storefront-development-icon.tsx","../src/components/icons/vtex-io-apps-icon.tsx","../src/components/icons/troubleshooting-icon.tsx","../src/components/icons/added-icon.tsx","../src/components/icons/deprecated-icon.tsx","../src/components/icons/fixed-icon.tsx","../src/components/icons/improved-icon.tsx","../src/components/icons/removed-icon.tsx","../src/utils/search-utils.ts","../src/components/search-input/customHighlight.tsx","../src/utils/config/search-config.ts","../src/lib/feedback-section/index.tsx","../src/components/icons/edit-icon.tsx","../src/components/icons/like-icon.tsx","../src/components/icons/like-selected-icon.tsx","../src/lib/feedback-section/styles.ts","../src/components/share-button/index.tsx","../src/components/icons/facebook-icon.tsx","../src/components/icons/linkedin-icon.tsx","../src/components/icons/share-icon.tsx","../src/components/icons/twitter-icon.tsx","../src/components/share-button/styles.ts","../src/components/icons/email-icon.tsx","../src/components/icons/link-icon.tsx","../src/lib/search/index.tsx","../src/components/search-sections/index.tsx","../src/components/search-section/index.tsx","../src/components/search-section/styles.ts","../src/utils/context/search.tsx","../src/components/search-sections/styles.ts","../src/components/search-results/index.tsx","../src/components/search-results/infiniteHits.tsx","../src/components/search-card/index.tsx","../src/components/search-card/styles.ts","../src/components/icons/expanded-results-icon.tsx","../src/components/search-results/styles.ts","../src/components/search-filter-tab-bar/index.tsx","../src/components/search-filter-tab-bar/styles.ts","../src/lib/search/styles.ts","../src/lib/cookie-bar/index.tsx","../src/lib/cookie-bar/styles.ts","../src/components/copy-link-button/index.tsx","../src/components/icons/copy-icon.tsx","../src/components/copy-link-button/styles.ts","../src/components/input/index.tsx","../src/components/input/styles.ts","../src/components/subscription-list/index.tsx","../src/utils/get-url.tsx","../src/components/subscription-list/styles.ts","../src/components/tag/index.tsx","../src/components/tag/styles.ts","../src/components/listing-filter/index.tsx","../src/components/icons/filter-icon.tsx","../src/components/icons/trashcan-icon.tsx","../src/components/listing-filter/normalize.ts","../src/components/listing-filter/styles.ts","../src/components/troubleshooting-card/index.tsx","../src/components/troubleshooting-card/styles.ts","../src/utils/troubleshooting/filterItems.ts","../src/utils/troubleshooting/collectFilterOptions.ts","../src/utils/get-days-elapsed.ts","../src/components/icons/gear-troubleshooting-icon.tsx","../src/components/icons/documentation-updates-icon.tsx","../src/components/icons/helpcenter-icon.tsx","../src/components/icons/developer-portal-icon.tsx","../src/components/icons/faq-icon.tsx","../src/components/icons/known-issues-icon.tsx","../src/components/icons/megaphone-icon.tsx","../src/components/icons/graph-icon.tsx","../src/components/icons/warning-icon.tsx","../src/components/icons/paper-icon.tsx","../src/components/icons/start-here-icon.tsx","../src/components/icons/tutorials-icon.tsx","../src/components/icons/announcement-icon.tsx","../src/components/icons/vtex-devportal-icon.tsx","../src/components/icons/vtex-helpcenter-icon.tsx","../src/components/icons/info-icon.tsx","../src/components/icons/new-icon.tsx","../src/components/icons/github-icon.tsx","../src/components/icons/community-icon.tsx","../src/components/icons/facebook-circle-icon.tsx","../src/components/icons/linkedin-circle-icon.tsx","../src/components/icons/twitter-circle-icon.tsx","../src/components/icons/youtube-icon.tsx","../src/components/icons/instagram-icon.tsx","../src/components/icons/chatgpt-icon.tsx","../src/components/icons/claude-icon.tsx","../src/components/icons/gemini-icon.tsx","../src/components/icons/copilot-icon.tsx","../src/components/icons/grid-icon.tsx","../src/components/icons/menu-icon.tsx","../src/components/icons/checkbox.tsx","../src/components/icons/resize-icon.tsx","../src/components/icons/arrow-right-icon.tsx","../src/components/icons/long-arrow-icon.tsx","../src/components/icons/vtex-logo-footer.tsx"],"sourcesContent":["/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","// @todo Add logger on options to debug when caches go wrong.\r\nfunction createFallbackableCache(options) {\r\n const caches = [...options.caches];\r\n const current = caches.shift(); // eslint-disable-line functional/immutable-data\r\n if (current === undefined) {\r\n return createNullCache();\r\n }\r\n return {\r\n get(key, defaultValue, events = {\r\n miss: () => Promise.resolve(),\r\n }) {\r\n return current.get(key, defaultValue, events).catch(() => {\r\n return createFallbackableCache({ caches }).get(key, defaultValue, events);\r\n });\r\n },\r\n set(key, value) {\r\n return current.set(key, value).catch(() => {\r\n return createFallbackableCache({ caches }).set(key, value);\r\n });\r\n },\r\n delete(key) {\r\n return current.delete(key).catch(() => {\r\n return createFallbackableCache({ caches }).delete(key);\r\n });\r\n },\r\n clear() {\r\n return current.clear().catch(() => {\r\n return createFallbackableCache({ caches }).clear();\r\n });\r\n },\r\n };\r\n}\n\nfunction createNullCache() {\r\n return {\r\n get(_key, defaultValue, events = {\r\n miss: () => Promise.resolve(),\r\n }) {\r\n const value = defaultValue();\r\n return value\r\n .then(result => Promise.all([result, events.miss(result)]))\r\n .then(([result]) => result);\r\n },\r\n set(_key, value) {\r\n return Promise.resolve(value);\r\n },\r\n delete(_key) {\r\n return Promise.resolve();\r\n },\r\n clear() {\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nexport { createFallbackableCache, createNullCache };\n","function createInMemoryCache(options = { serializable: true }) {\r\n // eslint-disable-next-line functional/no-let\r\n let cache = {};\r\n return {\r\n get(key, defaultValue, events = {\r\n miss: () => Promise.resolve(),\r\n }) {\r\n const keyAsString = JSON.stringify(key);\r\n if (keyAsString in cache) {\r\n return Promise.resolve(options.serializable ? JSON.parse(cache[keyAsString]) : cache[keyAsString]);\r\n }\r\n const promise = defaultValue();\r\n const miss = (events && events.miss) || (() => Promise.resolve());\r\n return promise.then((value) => miss(value)).then(() => promise);\r\n },\r\n set(key, value) {\r\n // eslint-disable-next-line functional/immutable-data\r\n cache[JSON.stringify(key)] = options.serializable ? JSON.stringify(value) : value;\r\n return Promise.resolve(value);\r\n },\r\n delete(key) {\r\n // eslint-disable-next-line functional/immutable-data\r\n delete cache[JSON.stringify(key)];\r\n return Promise.resolve();\r\n },\r\n clear() {\r\n cache = {};\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nexport { createInMemoryCache };\n","function createAuth(authMode, appId, apiKey) {\r\n const credentials = {\r\n 'x-algolia-api-key': apiKey,\r\n 'x-algolia-application-id': appId,\r\n };\r\n return {\r\n headers() {\r\n return authMode === AuthMode.WithinHeaders ? credentials : {};\r\n },\r\n queryParameters() {\r\n return authMode === AuthMode.WithinQueryParameters ? credentials : {};\r\n },\r\n };\r\n}\n\nfunction createRetryablePromise(callback) {\r\n let retriesCount = 0; // eslint-disable-line functional/no-let\r\n const retry = () => {\r\n retriesCount++;\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve(callback(retry));\r\n }, Math.min(100 * retriesCount, 1000));\r\n });\r\n };\r\n return callback(retry);\r\n}\n\nfunction createWaitablePromise(promise, wait = (_response, _requestOptions) => {\r\n return Promise.resolve();\r\n}) {\r\n // eslint-disable-next-line functional/immutable-data\r\n return Object.assign(promise, {\r\n wait(requestOptions) {\r\n return createWaitablePromise(promise\r\n .then(response => Promise.all([wait(response, requestOptions), response]))\r\n .then(promiseResults => promiseResults[1]));\r\n },\r\n });\r\n}\n\n// eslint-disable-next-line functional/prefer-readonly-type\r\nfunction shuffle(array) {\r\n let c = array.length - 1; // eslint-disable-line functional/no-let\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (c; c > 0; c--) {\r\n const b = Math.floor(Math.random() * (c + 1));\r\n const a = array[c];\r\n array[c] = array[b]; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n array[b] = a; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n }\r\n return array;\r\n}\r\nfunction addMethods(base, methods) {\r\n if (!methods) {\r\n return base;\r\n }\r\n Object.keys(methods).forEach(key => {\r\n // eslint-disable-next-line functional/immutable-data, no-param-reassign\r\n base[key] = methods[key](base);\r\n });\r\n return base;\r\n}\r\nfunction encode(format, ...args) {\r\n // eslint-disable-next-line functional/no-let\r\n let i = 0;\r\n return format.replace(/%s/g, () => encodeURIComponent(args[i++]));\r\n}\n\nconst version = '4.24.0';\n\nconst destroy = (base) => {\r\n return () => {\r\n return base.transporter.requester.destroy();\r\n };\r\n};\n\nconst AuthMode = {\r\n /**\r\n * If auth credentials should be in query parameters.\r\n */\r\n WithinQueryParameters: 0,\r\n /**\r\n * If auth credentials should be in headers.\r\n */\r\n WithinHeaders: 1,\r\n};\n\nexport { AuthMode, addMethods, createAuth, createRetryablePromise, createWaitablePromise, destroy, encode, shuffle, version };\n","const MethodEnum = {\r\n Delete: 'DELETE',\r\n Get: 'GET',\r\n Post: 'POST',\r\n Put: 'PUT',\r\n};\n\nexport { MethodEnum };\n","import { MethodEnum } from '@algolia/requester-common';\n\nfunction createMappedRequestOptions(requestOptions, timeout) {\r\n const options = requestOptions || {};\r\n const data = options.data || {};\r\n Object.keys(options).forEach(key => {\r\n if (['timeout', 'headers', 'queryParameters', 'data', 'cacheable'].indexOf(key) === -1) {\r\n data[key] = options[key]; // eslint-disable-line functional/immutable-data\r\n }\r\n });\r\n return {\r\n data: Object.entries(data).length > 0 ? data : undefined,\r\n timeout: options.timeout || timeout,\r\n headers: options.headers || {},\r\n queryParameters: options.queryParameters || {},\r\n cacheable: options.cacheable,\r\n };\r\n}\n\nconst CallEnum = {\r\n /**\r\n * If the host is read only.\r\n */\r\n Read: 1,\r\n /**\r\n * If the host is write only.\r\n */\r\n Write: 2,\r\n /**\r\n * If the host is both read and write.\r\n */\r\n Any: 3,\r\n};\n\nconst HostStatusEnum = {\r\n Up: 1,\r\n Down: 2,\r\n Timeouted: 3,\r\n};\n\n// By default, API Clients at Algolia have expiration delay\r\n// of 5 mins. In the JavaScript client, we have 2 mins.\r\nconst EXPIRATION_DELAY = 2 * 60 * 1000;\r\nfunction createStatefulHost(host, status = HostStatusEnum.Up) {\r\n return {\r\n ...host,\r\n status,\r\n lastUpdate: Date.now(),\r\n };\r\n}\r\nfunction isStatefulHostUp(host) {\r\n return host.status === HostStatusEnum.Up || Date.now() - host.lastUpdate > EXPIRATION_DELAY;\r\n}\r\nfunction isStatefulHostTimeouted(host) {\r\n return (host.status === HostStatusEnum.Timeouted && Date.now() - host.lastUpdate <= EXPIRATION_DELAY);\r\n}\n\nfunction createStatelessHost(options) {\r\n if (typeof options === 'string') {\r\n return {\r\n protocol: 'https',\r\n url: options,\r\n accept: CallEnum.Any,\r\n };\r\n }\r\n return {\r\n protocol: options.protocol || 'https',\r\n url: options.url,\r\n accept: options.accept || CallEnum.Any,\r\n };\r\n}\n\nfunction createRetryableOptions(hostsCache, statelessHosts) {\r\n return Promise.all(statelessHosts.map(statelessHost => {\r\n return hostsCache.get(statelessHost, () => {\r\n return Promise.resolve(createStatefulHost(statelessHost));\r\n });\r\n })).then(statefulHosts => {\r\n const hostsUp = statefulHosts.filter(host => isStatefulHostUp(host));\r\n const hostsTimeouted = statefulHosts.filter(host => isStatefulHostTimeouted(host));\r\n /**\r\n * Note, we put the hosts that previously timeouted on the end of the list.\r\n */\r\n const hostsAvailable = [...hostsUp, ...hostsTimeouted];\r\n const statelessHostsAvailable = hostsAvailable.length > 0\r\n ? hostsAvailable.map(host => createStatelessHost(host))\r\n : statelessHosts;\r\n return {\r\n getTimeout(timeoutsCount, baseTimeout) {\r\n /**\r\n * Imagine that you have 4 hosts, if timeouts will increase\r\n * on the following way: 1 (timeouted) > 4 (timeouted) > 5 (200)\r\n *\r\n * Note that, the very next request, we start from the previous timeout\r\n *\r\n * 5 (timeouted) > 6 (timeouted) > 7 ...\r\n *\r\n * This strategy may need to be reviewed, but is the strategy on the our\r\n * current v3 version.\r\n */\r\n const timeoutMultiplier = hostsTimeouted.length === 0 && timeoutsCount === 0\r\n ? 1\r\n : hostsTimeouted.length + 3 + timeoutsCount;\r\n return timeoutMultiplier * baseTimeout;\r\n },\r\n statelessHosts: statelessHostsAvailable,\r\n };\r\n });\r\n}\n\nconst isNetworkError = ({ isTimedOut, status }) => {\r\n return !isTimedOut && ~~status === 0;\r\n};\r\nconst isRetryable = (response) => {\r\n const status = response.status;\r\n const isTimedOut = response.isTimedOut;\r\n return (isTimedOut || isNetworkError(response) || (~~(status / 100) !== 2 && ~~(status / 100) !== 4));\r\n};\r\nconst isSuccess = ({ status }) => {\r\n return ~~(status / 100) === 2;\r\n};\r\nconst retryDecision = (response, outcomes) => {\r\n if (isRetryable(response)) {\r\n return outcomes.onRetry(response);\r\n }\r\n if (isSuccess(response)) {\r\n return outcomes.onSuccess(response);\r\n }\r\n return outcomes.onFail(response);\r\n};\n\nfunction retryableRequest(transporter, statelessHosts, request, requestOptions) {\r\n const stackTrace = []; // eslint-disable-line functional/prefer-readonly-type\r\n /**\r\n * First we prepare the payload that do not depend from hosts.\r\n */\r\n const data = serializeData(request, requestOptions);\r\n const headers = serializeHeaders(transporter, requestOptions);\r\n const method = request.method;\r\n // On `GET`, the data is proxied to query parameters.\r\n const dataQueryParameters = request.method !== MethodEnum.Get\r\n ? {}\r\n : {\r\n ...request.data,\r\n ...requestOptions.data,\r\n };\r\n const queryParameters = {\r\n 'x-algolia-agent': transporter.userAgent.value,\r\n ...transporter.queryParameters,\r\n ...dataQueryParameters,\r\n ...requestOptions.queryParameters,\r\n };\r\n let timeoutsCount = 0; // eslint-disable-line functional/no-let\r\n const retry = (hosts, // eslint-disable-line functional/prefer-readonly-type\r\n getTimeout) => {\r\n /**\r\n * We iterate on each host, until there is no host left.\r\n */\r\n const host = hosts.pop(); // eslint-disable-line functional/immutable-data\r\n if (host === undefined) {\r\n throw createRetryError(stackTraceWithoutCredentials(stackTrace));\r\n }\r\n const payload = {\r\n data,\r\n headers,\r\n method,\r\n url: serializeUrl(host, request.path, queryParameters),\r\n connectTimeout: getTimeout(timeoutsCount, transporter.timeouts.connect),\r\n responseTimeout: getTimeout(timeoutsCount, requestOptions.timeout),\r\n };\r\n /**\r\n * The stackFrame is pushed to the stackTrace so we\r\n * can have information about onRetry and onFailure\r\n * decisions.\r\n */\r\n const pushToStackTrace = (response) => {\r\n const stackFrame = {\r\n request: payload,\r\n response,\r\n host,\r\n triesLeft: hosts.length,\r\n };\r\n // eslint-disable-next-line functional/immutable-data\r\n stackTrace.push(stackFrame);\r\n return stackFrame;\r\n };\r\n const decisions = {\r\n onSuccess: response => deserializeSuccess(response),\r\n onRetry(response) {\r\n const stackFrame = pushToStackTrace(response);\r\n /**\r\n * If response is a timeout, we increaset the number of\r\n * timeouts so we can increase the timeout later.\r\n */\r\n if (response.isTimedOut) {\r\n timeoutsCount++;\r\n }\r\n return Promise.all([\r\n /**\r\n * Failures are individually send the logger, allowing\r\n * the end user to debug / store stack frames even\r\n * when a retry error does not happen.\r\n */\r\n transporter.logger.info('Retryable failure', stackFrameWithoutCredentials(stackFrame)),\r\n /**\r\n * We also store the state of the host in failure cases. If the host, is\r\n * down it will remain down for the next 2 minutes. In a timeout situation,\r\n * this host will be added end of the list of hosts on the next request.\r\n */\r\n transporter.hostsCache.set(host, createStatefulHost(host, response.isTimedOut ? HostStatusEnum.Timeouted : HostStatusEnum.Down)),\r\n ]).then(() => retry(hosts, getTimeout));\r\n },\r\n onFail(response) {\r\n pushToStackTrace(response);\r\n throw deserializeFailure(response, stackTraceWithoutCredentials(stackTrace));\r\n },\r\n };\r\n return transporter.requester.send(payload).then(response => {\r\n return retryDecision(response, decisions);\r\n });\r\n };\r\n /**\r\n * Finally, for each retryable host perform request until we got a non\r\n * retryable response. Some notes here:\r\n *\r\n * 1. The reverse here is applied so we can apply a `pop` later on => more performant.\r\n * 2. We also get from the retryable options a timeout multiplier that is tailored\r\n * for the current context.\r\n */\r\n return createRetryableOptions(transporter.hostsCache, statelessHosts).then(options => {\r\n return retry([...options.statelessHosts].reverse(), options.getTimeout);\r\n });\r\n}\n\nfunction createTransporter(options) {\r\n const { hostsCache, logger, requester, requestsCache, responsesCache, timeouts, userAgent, hosts, queryParameters, headers, } = options;\r\n const transporter = {\r\n hostsCache,\r\n logger,\r\n requester,\r\n requestsCache,\r\n responsesCache,\r\n timeouts,\r\n userAgent,\r\n headers,\r\n queryParameters,\r\n hosts: hosts.map(host => createStatelessHost(host)),\r\n read(request, requestOptions) {\r\n /**\r\n * First, we compute the user request options. Now, keep in mind,\r\n * that using request options the user is able to modified the intire\r\n * payload of the request. Such as headers, query parameters, and others.\r\n */\r\n const mappedRequestOptions = createMappedRequestOptions(requestOptions, transporter.timeouts.read);\r\n const createRetryableRequest = () => {\r\n /**\r\n * Then, we prepare a function factory that contains the construction of\r\n * the retryable request. At this point, we may *not* perform the actual\r\n * request. But we want to have the function factory ready.\r\n */\r\n return retryableRequest(transporter, transporter.hosts.filter(host => (host.accept & CallEnum.Read) !== 0), request, mappedRequestOptions);\r\n };\r\n /**\r\n * Once we have the function factory ready, we need to determine of the\r\n * request is \"cacheable\" - should be cached. Note that, once again,\r\n * the user can force this option.\r\n */\r\n const cacheable = mappedRequestOptions.cacheable !== undefined\r\n ? mappedRequestOptions.cacheable\r\n : request.cacheable;\r\n /**\r\n * If is not \"cacheable\", we immediatly trigger the retryable request, no\r\n * need to check cache implementations.\r\n */\r\n if (cacheable !== true) {\r\n return createRetryableRequest();\r\n }\r\n /**\r\n * If the request is \"cacheable\", we need to first compute the key to ask\r\n * the cache implementations if this request is on progress or if the\r\n * response already exists on the cache.\r\n */\r\n const key = {\r\n request,\r\n mappedRequestOptions,\r\n transporter: {\r\n queryParameters: transporter.queryParameters,\r\n headers: transporter.headers,\r\n },\r\n };\r\n /**\r\n * With the computed key, we first ask the responses cache\r\n * implemention if this request was been resolved before.\r\n */\r\n return transporter.responsesCache.get(key, () => {\r\n /**\r\n * If the request has never resolved before, we actually ask if there\r\n * is a current request with the same key on progress.\r\n */\r\n return transporter.requestsCache.get(key, () => {\r\n return (transporter.requestsCache\r\n /**\r\n * Finally, if there is no request in progress with the same key,\r\n * this `createRetryableRequest()` will actually trigger the\r\n * retryable request.\r\n */\r\n .set(key, createRetryableRequest())\r\n .then(response => Promise.all([transporter.requestsCache.delete(key), response]), err => Promise.all([transporter.requestsCache.delete(key), Promise.reject(err)]))\r\n .then(([_, response]) => response));\r\n });\r\n }, {\r\n /**\r\n * Of course, once we get this response back from the server, we\r\n * tell response cache to actually store the received response\r\n * to be used later.\r\n */\r\n miss: response => transporter.responsesCache.set(key, response),\r\n });\r\n },\r\n write(request, requestOptions) {\r\n /**\r\n * On write requests, no cache mechanisms are applied, and we\r\n * proxy the request immediately to the requester.\r\n */\r\n return retryableRequest(transporter, transporter.hosts.filter(host => (host.accept & CallEnum.Write) !== 0), request, createMappedRequestOptions(requestOptions, transporter.timeouts.write));\r\n },\r\n };\r\n return transporter;\r\n}\n\nfunction createUserAgent(version) {\r\n const userAgent = {\r\n value: `Algolia for JavaScript (${version})`,\r\n add(options) {\r\n const addedUserAgent = `; ${options.segment}${options.version !== undefined ? ` (${options.version})` : ''}`;\r\n if (userAgent.value.indexOf(addedUserAgent) === -1) {\r\n // eslint-disable-next-line functional/immutable-data\r\n userAgent.value = `${userAgent.value}${addedUserAgent}`;\r\n }\r\n return userAgent;\r\n },\r\n };\r\n return userAgent;\r\n}\n\nfunction deserializeSuccess(response) {\r\n // eslint-disable-next-line functional/no-try-statement\r\n try {\r\n return JSON.parse(response.content);\r\n }\r\n catch (e) {\r\n throw createDeserializationError(e.message, response);\r\n }\r\n}\r\nfunction deserializeFailure({ content, status }, stackFrame) {\r\n // eslint-disable-next-line functional/no-let\r\n let message = content;\r\n // eslint-disable-next-line functional/no-try-statement\r\n try {\r\n message = JSON.parse(content).message;\r\n }\r\n catch (e) {\r\n // ..\r\n }\r\n return createApiError(message, status, stackFrame);\r\n}\n\n// eslint-disable-next-line functional/prefer-readonly-type\r\nfunction encode(format, ...args) {\r\n // eslint-disable-next-line functional/no-let\r\n let i = 0;\r\n return format.replace(/%s/g, () => encodeURIComponent(args[i++]));\r\n}\n\nfunction serializeUrl(host, path, queryParameters) {\r\n const queryParametersAsString = serializeQueryParameters(queryParameters);\r\n // eslint-disable-next-line functional/no-let\r\n let url = `${host.protocol}://${host.url}/${path.charAt(0) === '/' ? path.substr(1) : path}`;\r\n if (queryParametersAsString.length) {\r\n url += `?${queryParametersAsString}`;\r\n }\r\n return url;\r\n}\r\nfunction serializeQueryParameters(parameters) {\r\n const isObjectOrArray = (value) => Object.prototype.toString.call(value) === '[object Object]' ||\r\n Object.prototype.toString.call(value) === '[object Array]';\r\n return Object.keys(parameters)\r\n .map(key => encode('%s=%s', key, isObjectOrArray(parameters[key]) ? JSON.stringify(parameters[key]) : parameters[key]))\r\n .join('&');\r\n}\r\nfunction serializeData(request, requestOptions) {\r\n if (request.method === MethodEnum.Get ||\r\n (request.data === undefined && requestOptions.data === undefined)) {\r\n return undefined;\r\n }\r\n const data = Array.isArray(request.data)\r\n ? request.data\r\n : { ...request.data, ...requestOptions.data };\r\n return JSON.stringify(data);\r\n}\r\nfunction serializeHeaders(transporter, requestOptions) {\r\n const headers = {\r\n ...transporter.headers,\r\n ...requestOptions.headers,\r\n };\r\n const serializedHeaders = {};\r\n Object.keys(headers).forEach(header => {\r\n const value = headers[header];\r\n // @ts-ignore\r\n // eslint-disable-next-line functional/immutable-data\r\n serializedHeaders[header.toLowerCase()] = value;\r\n });\r\n return serializedHeaders;\r\n}\n\nfunction stackTraceWithoutCredentials(stackTrace) {\r\n return stackTrace.map(stackFrame => stackFrameWithoutCredentials(stackFrame));\r\n}\r\nfunction stackFrameWithoutCredentials(stackFrame) {\r\n const modifiedHeaders = stackFrame.request.headers['x-algolia-api-key']\r\n ? { 'x-algolia-api-key': '*****' }\r\n : {};\r\n return {\r\n ...stackFrame,\r\n request: {\r\n ...stackFrame.request,\r\n headers: {\r\n ...stackFrame.request.headers,\r\n ...modifiedHeaders,\r\n },\r\n },\r\n };\r\n}\n\nfunction createApiError(message, status, transporterStackTrace) {\r\n return {\r\n name: 'ApiError',\r\n message,\r\n status,\r\n transporterStackTrace,\r\n };\r\n}\n\nfunction createDeserializationError(message, response) {\r\n return {\r\n name: 'DeserializationError',\r\n message,\r\n response,\r\n };\r\n}\n\nfunction createRetryError(transporterStackTrace) {\r\n return {\r\n name: 'RetryError',\r\n message: 'Unreachable hosts - your application id may be incorrect. If the error persists, please reach out to the Algolia Support team: https://alg.li/support .',\r\n transporterStackTrace,\r\n };\r\n}\n\nexport { CallEnum, HostStatusEnum, createApiError, createDeserializationError, createMappedRequestOptions, createRetryError, createStatefulHost, createStatelessHost, createTransporter, createUserAgent, deserializeFailure, deserializeSuccess, isStatefulHostTimeouted, isStatefulHostUp, serializeData, serializeHeaders, serializeQueryParameters, serializeUrl, stackFrameWithoutCredentials, stackTraceWithoutCredentials };\n","import { createAuth, AuthMode, addMethods, encode } from '@algolia/client-common';\nimport { createTransporter } from '@algolia/transporter';\nimport { MethodEnum } from '@algolia/requester-common';\n\nconst createAnalyticsClient = options => {\r\n const region = options.region || 'us';\r\n const auth = createAuth(AuthMode.WithinHeaders, options.appId, options.apiKey);\r\n const transporter = createTransporter({\r\n hosts: [{ url: `analytics.${region}.algolia.com` }],\r\n ...options,\r\n headers: {\r\n ...auth.headers(),\r\n ...{ 'content-type': 'application/json' },\r\n ...options.headers,\r\n },\r\n queryParameters: {\r\n ...auth.queryParameters(),\r\n ...options.queryParameters,\r\n },\r\n });\r\n const appId = options.appId;\r\n return addMethods({ appId, transporter }, options.methods);\r\n};\n\nconst addABTest = (base) => {\r\n return (abTest, requestOptions) => {\r\n return base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: '2/abtests',\r\n data: abTest,\r\n }, requestOptions);\r\n };\r\n};\n\nconst deleteABTest = (base) => {\r\n return (abTestID, requestOptions) => {\r\n return base.transporter.write({\r\n method: MethodEnum.Delete,\r\n path: encode('2/abtests/%s', abTestID),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getABTest = (base) => {\r\n return (abTestID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('2/abtests/%s', abTestID),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getABTests = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '2/abtests',\r\n }, requestOptions);\r\n };\r\n};\n\nconst stopABTest = (base) => {\r\n return (abTestID, requestOptions) => {\r\n return base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('2/abtests/%s/stop', abTestID),\r\n }, requestOptions);\r\n };\r\n};\n\nexport { addABTest, createAnalyticsClient, deleteABTest, getABTest, getABTests, stopABTest };\n","function createAuth(authMode, appId, apiKey) {\r\n const credentials = {\r\n 'x-algolia-api-key': apiKey,\r\n 'x-algolia-application-id': appId,\r\n };\r\n return {\r\n headers() {\r\n return authMode === AuthMode.WithinHeaders ? credentials : {};\r\n },\r\n queryParameters() {\r\n return authMode === AuthMode.WithinQueryParameters ? credentials : {};\r\n },\r\n };\r\n}\n\nfunction createRetryablePromise(callback) {\r\n let retriesCount = 0; // eslint-disable-line functional/no-let\r\n const retry = () => {\r\n retriesCount++;\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve(callback(retry));\r\n }, Math.min(100 * retriesCount, 1000));\r\n });\r\n };\r\n return callback(retry);\r\n}\n\nfunction createWaitablePromise(promise, wait = (_response, _requestOptions) => {\r\n return Promise.resolve();\r\n}) {\r\n // eslint-disable-next-line functional/immutable-data\r\n return Object.assign(promise, {\r\n wait(requestOptions) {\r\n return createWaitablePromise(promise\r\n .then(response => Promise.all([wait(response, requestOptions), response]))\r\n .then(promiseResults => promiseResults[1]));\r\n },\r\n });\r\n}\n\n// eslint-disable-next-line functional/prefer-readonly-type\r\nfunction shuffle(array) {\r\n let c = array.length - 1; // eslint-disable-line functional/no-let\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (c; c > 0; c--) {\r\n const b = Math.floor(Math.random() * (c + 1));\r\n const a = array[c];\r\n array[c] = array[b]; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n array[b] = a; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n }\r\n return array;\r\n}\r\nfunction addMethods(base, methods) {\r\n if (!methods) {\r\n return base;\r\n }\r\n Object.keys(methods).forEach(key => {\r\n // eslint-disable-next-line functional/immutable-data, no-param-reassign\r\n base[key] = methods[key](base);\r\n });\r\n return base;\r\n}\r\nfunction encode(format, ...args) {\r\n // eslint-disable-next-line functional/no-let\r\n let i = 0;\r\n return format.replace(/%s/g, () => encodeURIComponent(args[i++]));\r\n}\n\nconst version = '4.24.0';\n\nconst destroy = (base) => {\r\n return () => {\r\n return base.transporter.requester.destroy();\r\n };\r\n};\n\nconst AuthMode = {\r\n /**\r\n * If auth credentials should be in query parameters.\r\n */\r\n WithinQueryParameters: 0,\r\n /**\r\n * If auth credentials should be in headers.\r\n */\r\n WithinHeaders: 1,\r\n};\n\nexport { AuthMode, addMethods, createAuth, createRetryablePromise, createWaitablePromise, destroy, encode, shuffle, version };\n","function createAuth(authMode, appId, apiKey) {\r\n const credentials = {\r\n 'x-algolia-api-key': apiKey,\r\n 'x-algolia-application-id': appId,\r\n };\r\n return {\r\n headers() {\r\n return authMode === AuthMode.WithinHeaders ? credentials : {};\r\n },\r\n queryParameters() {\r\n return authMode === AuthMode.WithinQueryParameters ? credentials : {};\r\n },\r\n };\r\n}\n\nfunction createRetryablePromise(callback) {\r\n let retriesCount = 0; // eslint-disable-line functional/no-let\r\n const retry = () => {\r\n retriesCount++;\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve(callback(retry));\r\n }, Math.min(100 * retriesCount, 1000));\r\n });\r\n };\r\n return callback(retry);\r\n}\n\nfunction createWaitablePromise(promise, wait = (_response, _requestOptions) => {\r\n return Promise.resolve();\r\n}) {\r\n // eslint-disable-next-line functional/immutable-data\r\n return Object.assign(promise, {\r\n wait(requestOptions) {\r\n return createWaitablePromise(promise\r\n .then(response => Promise.all([wait(response, requestOptions), response]))\r\n .then(promiseResults => promiseResults[1]));\r\n },\r\n });\r\n}\n\n// eslint-disable-next-line functional/prefer-readonly-type\r\nfunction shuffle(array) {\r\n let c = array.length - 1; // eslint-disable-line functional/no-let\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (c; c > 0; c--) {\r\n const b = Math.floor(Math.random() * (c + 1));\r\n const a = array[c];\r\n array[c] = array[b]; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n array[b] = a; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n }\r\n return array;\r\n}\r\nfunction addMethods(base, methods) {\r\n if (!methods) {\r\n return base;\r\n }\r\n Object.keys(methods).forEach(key => {\r\n // eslint-disable-next-line functional/immutable-data, no-param-reassign\r\n base[key] = methods[key](base);\r\n });\r\n return base;\r\n}\r\nfunction encode(format, ...args) {\r\n // eslint-disable-next-line functional/no-let\r\n let i = 0;\r\n return format.replace(/%s/g, () => encodeURIComponent(args[i++]));\r\n}\n\nconst version = '4.24.0';\n\nconst destroy = (base) => {\r\n return () => {\r\n return base.transporter.requester.destroy();\r\n };\r\n};\n\nconst AuthMode = {\r\n /**\r\n * If auth credentials should be in query parameters.\r\n */\r\n WithinQueryParameters: 0,\r\n /**\r\n * If auth credentials should be in headers.\r\n */\r\n WithinHeaders: 1,\r\n};\n\nexport { AuthMode, addMethods, createAuth, createRetryablePromise, createWaitablePromise, destroy, encode, shuffle, version };\n","import { createAuth, AuthMode, addMethods } from '@algolia/client-common';\nimport { createTransporter } from '@algolia/transporter';\nimport { MethodEnum } from '@algolia/requester-common';\n\nconst createPersonalizationClient = options => {\r\n const region = options.region || 'us';\r\n const auth = createAuth(AuthMode.WithinHeaders, options.appId, options.apiKey);\r\n const transporter = createTransporter({\r\n hosts: [{ url: `personalization.${region}.algolia.com` }],\r\n ...options,\r\n headers: {\r\n ...auth.headers(),\r\n ...{ 'content-type': 'application/json' },\r\n ...options.headers,\r\n },\r\n queryParameters: {\r\n ...auth.queryParameters(),\r\n ...options.queryParameters,\r\n },\r\n });\r\n return addMethods({ appId: options.appId, transporter }, options.methods);\r\n};\n\nconst getPersonalizationStrategy = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/strategies/personalization',\r\n }, requestOptions);\r\n };\r\n};\n\nconst setPersonalizationStrategy = (base) => {\r\n return (personalizationStrategy, requestOptions) => {\r\n return base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: '1/strategies/personalization',\r\n data: personalizationStrategy,\r\n }, requestOptions);\r\n };\r\n};\n\nexport { createPersonalizationClient, getPersonalizationStrategy, setPersonalizationStrategy };\n","function createAuth(authMode, appId, apiKey) {\r\n const credentials = {\r\n 'x-algolia-api-key': apiKey,\r\n 'x-algolia-application-id': appId,\r\n };\r\n return {\r\n headers() {\r\n return authMode === AuthMode.WithinHeaders ? credentials : {};\r\n },\r\n queryParameters() {\r\n return authMode === AuthMode.WithinQueryParameters ? credentials : {};\r\n },\r\n };\r\n}\n\nfunction createRetryablePromise(callback) {\r\n let retriesCount = 0; // eslint-disable-line functional/no-let\r\n const retry = () => {\r\n retriesCount++;\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve(callback(retry));\r\n }, Math.min(100 * retriesCount, 1000));\r\n });\r\n };\r\n return callback(retry);\r\n}\n\nfunction createWaitablePromise(promise, wait = (_response, _requestOptions) => {\r\n return Promise.resolve();\r\n}) {\r\n // eslint-disable-next-line functional/immutable-data\r\n return Object.assign(promise, {\r\n wait(requestOptions) {\r\n return createWaitablePromise(promise\r\n .then(response => Promise.all([wait(response, requestOptions), response]))\r\n .then(promiseResults => promiseResults[1]));\r\n },\r\n });\r\n}\n\n// eslint-disable-next-line functional/prefer-readonly-type\r\nfunction shuffle(array) {\r\n let c = array.length - 1; // eslint-disable-line functional/no-let\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (c; c > 0; c--) {\r\n const b = Math.floor(Math.random() * (c + 1));\r\n const a = array[c];\r\n array[c] = array[b]; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n array[b] = a; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n }\r\n return array;\r\n}\r\nfunction addMethods(base, methods) {\r\n if (!methods) {\r\n return base;\r\n }\r\n Object.keys(methods).forEach(key => {\r\n // eslint-disable-next-line functional/immutable-data, no-param-reassign\r\n base[key] = methods[key](base);\r\n });\r\n return base;\r\n}\r\nfunction encode(format, ...args) {\r\n // eslint-disable-next-line functional/no-let\r\n let i = 0;\r\n return format.replace(/%s/g, () => encodeURIComponent(args[i++]));\r\n}\n\nconst version = '4.24.0';\n\nconst destroy = (base) => {\r\n return () => {\r\n return base.transporter.requester.destroy();\r\n };\r\n};\n\nconst AuthMode = {\r\n /**\r\n * If auth credentials should be in query parameters.\r\n */\r\n WithinQueryParameters: 0,\r\n /**\r\n * If auth credentials should be in headers.\r\n */\r\n WithinHeaders: 1,\r\n};\n\nexport { AuthMode, addMethods, createAuth, createRetryablePromise, createWaitablePromise, destroy, encode, shuffle, version };\n","import { createAuth, AuthMode, shuffle, addMethods, createWaitablePromise, createRetryablePromise, encode } from '@algolia/client-common';\nimport { createTransporter, CallEnum, createMappedRequestOptions, serializeQueryParameters } from '@algolia/transporter';\nimport { MethodEnum } from '@algolia/requester-common';\nimport { createHmac } from 'crypto';\n\nfunction createBrowsablePromise(options) {\r\n const browse = (data) => {\r\n return options.request(data).then(response => {\r\n /**\r\n * First we send to the developer the\r\n * batch retrieved from the API.\r\n */\r\n if (options.batch !== undefined) {\r\n options.batch(response.hits);\r\n }\r\n /**\r\n * Then, we ask to the browse concrete implementation\r\n * if we should stop browsing. As example, the `browseObjects`\r\n * method will stop if the cursor is not present on the response.\r\n */\r\n if (options.shouldStop(response)) {\r\n return undefined;\r\n }\r\n /**\r\n * Finally, if the response contains a cursor, we browse to the next\r\n * batch using that same cursor. Otherwise, we just use the traditional\r\n * browsing using the page element.\r\n */\r\n if (response.cursor) {\r\n return browse({\r\n cursor: response.cursor,\r\n });\r\n }\r\n return browse({\r\n page: (data.page || 0) + 1,\r\n });\r\n });\r\n };\r\n return browse({});\r\n}\n\nconst createSearchClient = options => {\r\n const appId = options.appId;\r\n const auth = createAuth(options.authMode !== undefined ? options.authMode : AuthMode.WithinHeaders, appId, options.apiKey);\r\n const transporter = createTransporter({\r\n hosts: [\r\n { url: `${appId}-dsn.algolia.net`, accept: CallEnum.Read },\r\n { url: `${appId}.algolia.net`, accept: CallEnum.Write },\r\n ].concat(shuffle([\r\n { url: `${appId}-1.algolianet.com` },\r\n { url: `${appId}-2.algolianet.com` },\r\n { url: `${appId}-3.algolianet.com` },\r\n ])),\r\n ...options,\r\n headers: {\r\n ...auth.headers(),\r\n ...{ 'content-type': 'application/x-www-form-urlencoded' },\r\n ...options.headers,\r\n },\r\n queryParameters: {\r\n ...auth.queryParameters(),\r\n ...options.queryParameters,\r\n },\r\n });\r\n const base = {\r\n transporter,\r\n appId,\r\n addAlgoliaAgent(segment, version) {\r\n transporter.userAgent.add({ segment, version });\r\n },\r\n clearCache() {\r\n return Promise.all([\r\n transporter.requestsCache.clear(),\r\n transporter.responsesCache.clear(),\r\n ]).then(() => undefined);\r\n },\r\n };\r\n return addMethods(base, options.methods);\r\n};\n\nfunction createMissingObjectIDError() {\r\n return {\r\n name: 'MissingObjectIDError',\r\n message: 'All objects must have an unique objectID ' +\r\n '(like a primary key) to be valid. ' +\r\n 'Algolia is also able to generate objectIDs ' +\r\n \"automatically but *it's not recommended*. \" +\r\n \"To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option.\",\r\n };\r\n}\n\nfunction createObjectNotFoundError() {\r\n return {\r\n name: 'ObjectNotFoundError',\r\n message: 'Object not found.',\r\n };\r\n}\n\nfunction createValidUntilNotFoundError() {\r\n return {\r\n name: 'ValidUntilNotFoundError',\r\n message: 'ValidUntil not found in given secured api key.',\r\n };\r\n}\n\nconst addApiKey = (base) => {\r\n return (acl, requestOptions) => {\r\n const { queryParameters, ...options } = requestOptions || {};\r\n const data = {\r\n acl,\r\n ...(queryParameters !== undefined ? { queryParameters } : {}),\r\n };\r\n const wait = (response, waitRequestOptions) => {\r\n return createRetryablePromise(retry => {\r\n return getApiKey(base)(response.key, waitRequestOptions).catch((apiError) => {\r\n if (apiError.status !== 404) {\r\n throw apiError;\r\n }\r\n return retry();\r\n });\r\n });\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: '1/keys',\r\n data,\r\n }, options), wait);\r\n };\r\n};\n\nconst assignUserID = (base) => {\r\n return (userID, clusterName, requestOptions) => {\r\n const mappedRequestOptions = createMappedRequestOptions(requestOptions);\r\n // eslint-disable-next-line functional/immutable-data\r\n mappedRequestOptions.queryParameters['X-Algolia-User-ID'] = userID;\r\n return base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: '1/clusters/mapping',\r\n data: { cluster: clusterName },\r\n }, mappedRequestOptions);\r\n };\r\n};\n\nconst assignUserIDs = (base) => {\r\n return (userIDs, clusterName, requestOptions) => {\r\n return base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: '1/clusters/mapping/batch',\r\n data: {\r\n users: userIDs,\r\n cluster: clusterName,\r\n },\r\n }, requestOptions);\r\n };\r\n};\n\nconst clearDictionaryEntries = (base) => {\r\n return (dictionary, requestOptions) => {\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('/1/dictionaries/%s/batch', dictionary),\r\n data: {\r\n clearExistingDictionaryEntries: true,\r\n requests: { action: 'addEntry', body: [] },\r\n },\r\n }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst copyIndex = (base) => {\r\n return (from, to, requestOptions) => {\r\n const wait = (response, waitRequestOptions) => {\r\n return initIndex(base)(from, {\r\n methods: { waitTask },\r\n }).waitTask(response.taskID, waitRequestOptions);\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/operation', from),\r\n data: {\r\n operation: 'copy',\r\n destination: to,\r\n },\r\n }, requestOptions), wait);\r\n };\r\n};\n\nconst copyRules = (base) => {\r\n return (from, to, requestOptions) => {\r\n return copyIndex(base)(from, to, {\r\n ...requestOptions,\r\n scope: [ScopeEnum.Rules],\r\n });\r\n };\r\n};\n\nconst copySettings = (base) => {\r\n return (from, to, requestOptions) => {\r\n return copyIndex(base)(from, to, {\r\n ...requestOptions,\r\n scope: [ScopeEnum.Settings],\r\n });\r\n };\r\n};\n\nconst copySynonyms = (base) => {\r\n return (from, to, requestOptions) => {\r\n return copyIndex(base)(from, to, {\r\n ...requestOptions,\r\n scope: [ScopeEnum.Synonyms],\r\n });\r\n };\r\n};\n\nconst customRequest = (base) => {\r\n return (request, requestOptions) => {\r\n if (request.method === MethodEnum.Get) {\r\n return base.transporter.read(request, requestOptions);\r\n }\r\n return base.transporter.write(request, requestOptions);\r\n };\r\n};\n\nconst deleteApiKey = (base) => {\r\n return (apiKey, requestOptions) => {\r\n const wait = (_, waitRequestOptions) => {\r\n return createRetryablePromise(retry => {\r\n return getApiKey(base)(apiKey, waitRequestOptions)\r\n .then(retry)\r\n .catch((apiError) => {\r\n if (apiError.status !== 404) {\r\n throw apiError;\r\n }\r\n });\r\n });\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Delete,\r\n path: encode('1/keys/%s', apiKey),\r\n }, requestOptions), wait);\r\n };\r\n};\n\nconst deleteDictionaryEntries = (base) => {\r\n return (dictionary, objectIDs, requestOptions) => {\r\n const requests = objectIDs.map(objectID => ({\r\n action: 'deleteEntry',\r\n body: { objectID },\r\n }));\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('/1/dictionaries/%s/batch', dictionary),\r\n data: { clearExistingDictionaryEntries: false, requests },\r\n }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst generateSecuredApiKey = () => {\r\n return (parentApiKey, restrictions) => {\r\n const queryParameters = serializeQueryParameters(restrictions);\r\n const securedKey = createHmac('sha256', parentApiKey)\r\n .update(queryParameters)\r\n .digest('hex');\r\n return Buffer.from(securedKey + queryParameters).toString('base64');\r\n };\r\n};\n\nconst getApiKey = (base) => {\r\n return (apiKey, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/keys/%s', apiKey),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getAppTask = (base) => {\r\n return (taskID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/task/%s', taskID.toString()),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getDictionarySettings = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '/1/dictionaries/*/settings',\r\n }, requestOptions);\r\n };\r\n};\n\nconst getLogs = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/logs',\r\n }, requestOptions);\r\n };\r\n};\n\nconst getSecuredApiKeyRemainingValidity = () => {\r\n return (securedApiKey) => {\r\n const decodedString = Buffer.from(securedApiKey, 'base64').toString('ascii');\r\n const regex = /validUntil=(\\d+)/;\r\n const match = decodedString.match(regex);\r\n if (match === null) {\r\n throw createValidUntilNotFoundError();\r\n }\r\n return parseInt(match[1], 10) - Math.round(new Date().getTime() / 1000);\r\n };\r\n};\n\nconst getTopUserIDs = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/clusters/mapping/top',\r\n }, requestOptions);\r\n };\r\n};\n\nconst getUserID = (base) => {\r\n return (userID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/clusters/mapping/%s', userID),\r\n }, requestOptions);\r\n };\r\n};\n\nconst hasPendingMappings = (base) => {\r\n return (requestOptions) => {\r\n const { retrieveMappings, ...options } = requestOptions || {};\r\n if (retrieveMappings === true) {\r\n // eslint-disable-next-line functional/immutable-data\r\n options.getClusters = true;\r\n }\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/clusters/mapping/pending',\r\n }, options);\r\n };\r\n};\n\nconst initIndex = (base) => {\r\n return (indexName, options = {}) => {\r\n const searchIndex = {\r\n transporter: base.transporter,\r\n appId: base.appId,\r\n indexName,\r\n };\r\n return addMethods(searchIndex, options.methods);\r\n };\r\n};\n\nconst listApiKeys = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/keys',\r\n }, requestOptions);\r\n };\r\n};\n\nconst listClusters = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/clusters',\r\n }, requestOptions);\r\n };\r\n};\n\nconst listIndices = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/indexes',\r\n }, requestOptions);\r\n };\r\n};\n\nconst listUserIDs = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/clusters/mapping',\r\n }, requestOptions);\r\n };\r\n};\n\nconst moveIndex = (base) => {\r\n return (from, to, requestOptions) => {\r\n const wait = (response, waitRequestOptions) => {\r\n return initIndex(base)(from, {\r\n methods: { waitTask },\r\n }).waitTask(response.taskID, waitRequestOptions);\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/operation', from),\r\n data: {\r\n operation: 'move',\r\n destination: to,\r\n },\r\n }, requestOptions), wait);\r\n };\r\n};\n\nconst multipleBatch = (base) => {\r\n return (requests, requestOptions) => {\r\n const wait = (response, waitRequestOptions) => {\r\n return Promise.all(Object.keys(response.taskID).map(indexName => {\r\n return initIndex(base)(indexName, {\r\n methods: { waitTask },\r\n }).waitTask(response.taskID[indexName], waitRequestOptions);\r\n }));\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: '1/indexes/*/batch',\r\n data: {\r\n requests,\r\n },\r\n }, requestOptions), wait);\r\n };\r\n};\n\nconst multipleGetObjects = (base) => {\r\n return (requests, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: '1/indexes/*/objects',\r\n data: {\r\n requests,\r\n },\r\n }, requestOptions);\r\n };\r\n};\n\nconst multipleQueries = (base) => {\r\n return (queries, requestOptions) => {\r\n const requests = queries.map(query => {\r\n return {\r\n ...query,\r\n params: serializeQueryParameters(query.params || {}),\r\n };\r\n });\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: '1/indexes/*/queries',\r\n data: {\r\n requests,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst multipleSearchForFacetValues = (base) => {\r\n return (queries, requestOptions) => {\r\n return Promise.all(queries.map(query => {\r\n const { facetName, facetQuery, ...params } = query.params;\r\n return initIndex(base)(query.indexName, {\r\n methods: { searchForFacetValues },\r\n }).searchForFacetValues(facetName, facetQuery, {\r\n ...requestOptions,\r\n ...params,\r\n });\r\n }));\r\n };\r\n};\n\nconst removeUserID = (base) => {\r\n return (userID, requestOptions) => {\r\n const mappedRequestOptions = createMappedRequestOptions(requestOptions);\r\n // eslint-disable-next-line functional/immutable-data\r\n mappedRequestOptions.queryParameters['X-Algolia-User-ID'] = userID;\r\n return base.transporter.write({\r\n method: MethodEnum.Delete,\r\n path: '1/clusters/mapping',\r\n }, mappedRequestOptions);\r\n };\r\n};\n\nconst replaceDictionaryEntries = (base) => {\r\n return (dictionary, entries, requestOptions) => {\r\n const requests = entries.map(entry => ({\r\n action: 'addEntry',\r\n body: entry,\r\n }));\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('/1/dictionaries/%s/batch', dictionary),\r\n data: { clearExistingDictionaryEntries: true, requests },\r\n }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst restoreApiKey = (base) => {\r\n return (apiKey, requestOptions) => {\r\n const wait = (_, waitRequestOptions) => {\r\n return createRetryablePromise(retry => {\r\n return getApiKey(base)(apiKey, waitRequestOptions).catch((apiError) => {\r\n if (apiError.status !== 404) {\r\n throw apiError;\r\n }\r\n return retry();\r\n });\r\n });\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/keys/%s/restore', apiKey),\r\n }, requestOptions), wait);\r\n };\r\n};\n\nconst saveDictionaryEntries = (base) => {\r\n return (dictionary, entries, requestOptions) => {\r\n const requests = entries.map(entry => ({\r\n action: 'addEntry',\r\n body: entry,\r\n }));\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('/1/dictionaries/%s/batch', dictionary),\r\n data: { clearExistingDictionaryEntries: false, requests },\r\n }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst searchDictionaryEntries = (base) => {\r\n return (dictionary, query, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('/1/dictionaries/%s/search', dictionary),\r\n data: {\r\n query,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst searchUserIDs = (base) => {\r\n return (query, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: '1/clusters/mapping/search',\r\n data: {\r\n query,\r\n },\r\n }, requestOptions);\r\n };\r\n};\n\nconst setDictionarySettings = (base) => {\r\n return (settings, requestOptions) => {\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Put,\r\n path: '/1/dictionaries/*/settings',\r\n data: settings,\r\n }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst updateApiKey = (base) => {\r\n return (apiKey, requestOptions) => {\r\n const updatedFields = Object.assign({}, requestOptions);\r\n const { queryParameters, ...options } = requestOptions || {};\r\n const data = queryParameters ? { queryParameters } : {};\r\n const apiKeyFields = [\r\n 'acl',\r\n 'indexes',\r\n 'referers',\r\n 'restrictSources',\r\n 'queryParameters',\r\n 'description',\r\n 'maxQueriesPerIPPerHour',\r\n 'maxHitsPerQuery',\r\n ];\r\n // Check that all the fields retrieved through getApiKey are the same as the ones we wanted to update\r\n const hasChanged = (getApiKeyResponse) => {\r\n return Object.keys(updatedFields)\r\n .filter((updatedField) => apiKeyFields.indexOf(updatedField) !== -1)\r\n .every(updatedField => {\r\n // If the field is an array, we need to check that they are the same length and that all the values are the same\r\n if (Array.isArray(getApiKeyResponse[updatedField]) &&\r\n Array.isArray(updatedFields[updatedField])) {\r\n const getApiKeyResponseArray = getApiKeyResponse[updatedField];\r\n return (getApiKeyResponseArray.length === updatedFields[updatedField].length &&\r\n getApiKeyResponseArray.every((value, index) => value === updatedFields[updatedField][index]));\r\n }\r\n else {\r\n return getApiKeyResponse[updatedField] === updatedFields[updatedField];\r\n }\r\n });\r\n };\r\n const wait = (_, waitRequestOptions) => createRetryablePromise(retry => {\r\n return getApiKey(base)(apiKey, waitRequestOptions).then(getApiKeyResponse => {\r\n return hasChanged(getApiKeyResponse) ? Promise.resolve() : retry();\r\n });\r\n });\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Put,\r\n path: encode('1/keys/%s', apiKey),\r\n data,\r\n }, options), wait);\r\n };\r\n};\n\nconst waitAppTask = (base) => {\r\n return (taskID, requestOptions) => {\r\n return createRetryablePromise(retry => {\r\n return getAppTask(base)(taskID, requestOptions).then(response => {\r\n return response.status !== 'published' ? retry() : undefined;\r\n });\r\n });\r\n };\r\n};\n\nconst batch = (base) => {\r\n return (requests, requestOptions) => {\r\n const wait = (response, waitRequestOptions) => {\r\n return waitTask(base)(response.taskID, waitRequestOptions);\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/batch', base.indexName),\r\n data: {\r\n requests,\r\n },\r\n }, requestOptions), wait);\r\n };\r\n};\n\nconst browseObjects = (base) => {\r\n return (requestOptions) => {\r\n return createBrowsablePromise({\r\n shouldStop: response => response.cursor === undefined,\r\n ...requestOptions,\r\n request: (data) => base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/browse', base.indexName),\r\n data,\r\n }, requestOptions),\r\n });\r\n };\r\n};\n\nconst browseRules = (base) => {\r\n return (requestOptions) => {\r\n const options = {\r\n hitsPerPage: 1000,\r\n ...requestOptions,\r\n };\r\n return createBrowsablePromise({\r\n shouldStop: response => response.hits.length < options.hitsPerPage,\r\n ...options,\r\n request(data) {\r\n return searchRules(base)('', { ...options, ...data }).then((response) => {\r\n return {\r\n ...response,\r\n hits: response.hits.map(rule => {\r\n // eslint-disable-next-line functional/immutable-data,no-param-reassign\r\n delete rule._highlightResult;\r\n return rule;\r\n }),\r\n };\r\n });\r\n },\r\n });\r\n };\r\n};\n\nconst browseSynonyms = (base) => {\r\n return (requestOptions) => {\r\n const options = {\r\n hitsPerPage: 1000,\r\n ...requestOptions,\r\n };\r\n return createBrowsablePromise({\r\n shouldStop: response => response.hits.length < options.hitsPerPage,\r\n ...options,\r\n request(data) {\r\n return searchSynonyms(base)('', { ...options, ...data }).then((response) => {\r\n return {\r\n ...response,\r\n hits: response.hits.map(synonym => {\r\n // eslint-disable-next-line functional/immutable-data,no-param-reassign\r\n delete synonym._highlightResult;\r\n return synonym;\r\n }),\r\n };\r\n });\r\n },\r\n });\r\n };\r\n};\n\nconst chunkedBatch = (base) => {\r\n return (bodies, action, requestOptions) => {\r\n const { batchSize, ...options } = requestOptions || {};\r\n const response = {\r\n taskIDs: [],\r\n objectIDs: [],\r\n };\r\n const forEachBatch = (lastIndex = 0) => {\r\n // eslint-disable-next-line functional/prefer-readonly-type\r\n const bodiesChunk = [];\r\n // eslint-disable-next-line functional/no-let\r\n let index;\r\n /* eslint-disable-next-line functional/no-loop-statement */\r\n for (index = lastIndex; index < bodies.length; index++) {\r\n // eslint-disable-next-line functional/immutable-data\r\n bodiesChunk.push(bodies[index]);\r\n if (bodiesChunk.length === (batchSize || 1000)) {\r\n break;\r\n }\r\n }\r\n if (bodiesChunk.length === 0) {\r\n return Promise.resolve(response);\r\n }\r\n return batch(base)(bodiesChunk.map(body => {\r\n return {\r\n action,\r\n body,\r\n };\r\n }), options).then(res => {\r\n response.objectIDs = response.objectIDs.concat(res.objectIDs); // eslint-disable-line functional/immutable-data\r\n response.taskIDs.push(res.taskID); // eslint-disable-line functional/immutable-data\r\n index++;\r\n return forEachBatch(index);\r\n });\r\n };\r\n return createWaitablePromise(forEachBatch(), (chunkedBatchResponse, waitRequestOptions) => {\r\n return Promise.all(chunkedBatchResponse.taskIDs.map(taskID => {\r\n return waitTask(base)(taskID, waitRequestOptions);\r\n }));\r\n });\r\n };\r\n};\n\nconst clearObjects = (base) => {\r\n return (requestOptions) => {\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/clear', base.indexName),\r\n }, requestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst clearRules = (base) => {\r\n return (requestOptions) => {\r\n const { forwardToReplicas, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/rules/clear', base.indexName),\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst clearSynonyms = (base) => {\r\n return (requestOptions) => {\r\n const { forwardToReplicas, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/synonyms/clear', base.indexName),\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst deleteBy = (base) => {\r\n return (filters, requestOptions) => {\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/deleteByQuery', base.indexName),\r\n data: filters,\r\n }, requestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst deleteIndex = (base) => {\r\n return (requestOptions) => {\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Delete,\r\n path: encode('1/indexes/%s', base.indexName),\r\n }, requestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst deleteObject = (base) => {\r\n return (objectID, requestOptions) => {\r\n return createWaitablePromise(deleteObjects(base)([objectID], requestOptions).then(response => {\r\n return { taskID: response.taskIDs[0] };\r\n }), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst deleteObjects = (base) => {\r\n return (objectIDs, requestOptions) => {\r\n const objects = objectIDs.map(objectID => {\r\n return { objectID };\r\n });\r\n return chunkedBatch(base)(objects, BatchActionEnum.DeleteObject, requestOptions);\r\n };\r\n};\n\nconst deleteRule = (base) => {\r\n return (objectID, requestOptions) => {\r\n const { forwardToReplicas, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Delete,\r\n path: encode('1/indexes/%s/rules/%s', base.indexName, objectID),\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst deleteSynonym = (base) => {\r\n return (objectID, requestOptions) => {\r\n const { forwardToReplicas, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Delete,\r\n path: encode('1/indexes/%s/synonyms/%s', base.indexName, objectID),\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst exists = (base) => {\r\n return (requestOptions) => {\r\n return getSettings(base)(requestOptions)\r\n .then(() => true)\r\n .catch(error => {\r\n if (error.status !== 404) {\r\n throw error;\r\n }\r\n return false;\r\n });\r\n };\r\n};\n\nconst findAnswers = (base) => {\r\n return (query, queryLanguages, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/answers/%s/prediction', base.indexName),\r\n data: {\r\n query,\r\n queryLanguages,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst findObject = (base) => {\r\n return (callback, requestOptions) => {\r\n const { query, paginate, ...options } = requestOptions || {};\r\n // eslint-disable-next-line functional/no-let\r\n let page = 0;\r\n const forEachPage = () => {\r\n return search(base)(query || '', { ...options, page }).then(result => {\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (const [position, hit] of Object.entries(result.hits)) {\r\n // eslint-disable-next-line promise/no-callback-in-promise\r\n if (callback(hit)) {\r\n return {\r\n object: hit,\r\n position: parseInt(position, 10),\r\n page,\r\n };\r\n }\r\n }\r\n page++;\r\n // paginate if option was set and has next page\r\n if (paginate === false || page >= result.nbPages) {\r\n throw createObjectNotFoundError();\r\n }\r\n return forEachPage();\r\n });\r\n };\r\n return forEachPage();\r\n };\r\n};\n\nconst getObject = (base) => {\r\n return (objectID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/indexes/%s/%s', base.indexName, objectID),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getObjectPosition = () => {\r\n return (searchResponse, objectID) => {\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (const [position, hit] of Object.entries(searchResponse.hits)) {\r\n if (hit.objectID === objectID) {\r\n return parseInt(position, 10);\r\n }\r\n }\r\n return -1;\r\n };\r\n};\n\nconst getObjects = (base) => {\r\n return (objectIDs, requestOptions) => {\r\n const { attributesToRetrieve, ...options } = requestOptions || {};\r\n const requests = objectIDs.map(objectID => {\r\n return {\r\n indexName: base.indexName,\r\n objectID,\r\n ...(attributesToRetrieve ? { attributesToRetrieve } : {}),\r\n };\r\n });\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: '1/indexes/*/objects',\r\n data: {\r\n requests,\r\n },\r\n }, options);\r\n };\r\n};\n\nconst getRule = (base) => {\r\n return (objectID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/indexes/%s/rules/%s', base.indexName, objectID),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getSettings = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/indexes/%s/settings', base.indexName),\r\n data: {\r\n getVersion: 2,\r\n },\r\n }, requestOptions);\r\n };\r\n};\n\nconst getSynonym = (base) => {\r\n return (objectID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode(`1/indexes/%s/synonyms/%s`, base.indexName, objectID),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getTask = (base) => {\r\n return (taskID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/indexes/%s/task/%s', base.indexName, taskID.toString()),\r\n }, requestOptions);\r\n };\r\n};\n\nconst partialUpdateObject = (base) => {\r\n return (object, requestOptions) => {\r\n return createWaitablePromise(partialUpdateObjects(base)([object], requestOptions).then(response => {\r\n return {\r\n objectID: response.objectIDs[0],\r\n taskID: response.taskIDs[0],\r\n };\r\n }), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst partialUpdateObjects = (base) => {\r\n return (objects, requestOptions) => {\r\n const { createIfNotExists, ...options } = requestOptions || {};\r\n const action = createIfNotExists\r\n ? BatchActionEnum.PartialUpdateObject\r\n : BatchActionEnum.PartialUpdateObjectNoCreate;\r\n return chunkedBatch(base)(objects, action, options);\r\n };\r\n};\n\nconst replaceAllObjects = (base) => {\r\n return (objects, requestOptions) => {\r\n const { safe, autoGenerateObjectIDIfNotExist, batchSize, ...options } = requestOptions || {};\r\n const operation = (from, to, type, operationRequestOptions) => {\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/operation', from),\r\n data: {\r\n operation: type,\r\n destination: to,\r\n },\r\n }, operationRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n const randomSuffix = Math.random()\r\n .toString(36)\r\n .substring(7);\r\n const temporaryIndexName = `${base.indexName}_tmp_${randomSuffix}`;\r\n const saveObjectsInTemporary = saveObjects({\r\n appId: base.appId,\r\n transporter: base.transporter,\r\n indexName: temporaryIndexName,\r\n });\r\n // @ts-ignore\r\n // eslint-disable-next-line prefer-const, functional/no-let, functional/prefer-readonly-type\r\n let responses = [];\r\n const copyWaitablePromise = operation(base.indexName, temporaryIndexName, 'copy', {\r\n ...options,\r\n scope: ['settings', 'synonyms', 'rules'],\r\n });\r\n // eslint-disable-next-line functional/immutable-data\r\n responses.push(copyWaitablePromise);\r\n const result = (safe\r\n ? copyWaitablePromise.wait(options)\r\n : copyWaitablePromise)\r\n .then(() => {\r\n const saveObjectsWaitablePromise = saveObjectsInTemporary(objects, {\r\n ...options,\r\n autoGenerateObjectIDIfNotExist,\r\n batchSize,\r\n });\r\n // eslint-disable-next-line functional/immutable-data\r\n responses.push(saveObjectsWaitablePromise);\r\n return safe ? saveObjectsWaitablePromise.wait(options) : saveObjectsWaitablePromise;\r\n })\r\n .then(() => {\r\n const moveWaitablePromise = operation(temporaryIndexName, base.indexName, 'move', options);\r\n // eslint-disable-next-line functional/immutable-data\r\n responses.push(moveWaitablePromise);\r\n return safe ? moveWaitablePromise.wait(options) : moveWaitablePromise;\r\n })\r\n .then(() => Promise.all(responses))\r\n .then(([copyResponse, saveObjectsResponse, moveResponse]) => {\r\n return {\r\n objectIDs: saveObjectsResponse.objectIDs,\r\n taskIDs: [copyResponse.taskID, ...saveObjectsResponse.taskIDs, moveResponse.taskID],\r\n };\r\n });\r\n return createWaitablePromise(result, (_, waitRequestOptions) => {\r\n return Promise.all(responses.map(response => response.wait(waitRequestOptions)));\r\n });\r\n };\r\n};\n\nconst replaceAllRules = (base) => {\r\n return (rules, requestOptions) => {\r\n return saveRules(base)(rules, {\r\n ...requestOptions,\r\n clearExistingRules: true,\r\n });\r\n };\r\n};\n\nconst replaceAllSynonyms = (base) => {\r\n return (synonyms, requestOptions) => {\r\n return saveSynonyms(base)(synonyms, {\r\n ...requestOptions,\r\n clearExistingSynonyms: true,\r\n });\r\n };\r\n};\n\nconst saveObject = (base) => {\r\n return (object, requestOptions) => {\r\n return createWaitablePromise(saveObjects(base)([object], requestOptions).then(response => {\r\n return {\r\n objectID: response.objectIDs[0],\r\n taskID: response.taskIDs[0],\r\n };\r\n }), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst saveObjects = (base) => {\r\n return (objects, requestOptions) => {\r\n const { autoGenerateObjectIDIfNotExist, ...options } = requestOptions || {};\r\n const action = autoGenerateObjectIDIfNotExist\r\n ? BatchActionEnum.AddObject\r\n : BatchActionEnum.UpdateObject;\r\n if (action === BatchActionEnum.UpdateObject) {\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (const object of objects) {\r\n if (object.objectID === undefined) {\r\n return createWaitablePromise(Promise.reject(createMissingObjectIDError()));\r\n }\r\n }\r\n }\r\n return chunkedBatch(base)(objects, action, options);\r\n };\r\n};\n\nconst saveRule = (base) => {\r\n return (rule, requestOptions) => {\r\n return saveRules(base)([rule], requestOptions);\r\n };\r\n};\n\nconst saveRules = (base) => {\r\n return (rules, requestOptions) => {\r\n const { forwardToReplicas, clearExistingRules, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n if (clearExistingRules) {\r\n mappedRequestOptions.queryParameters.clearExistingRules = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/rules/batch', base.indexName),\r\n data: rules,\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst saveSynonym = (base) => {\r\n return (synonym, requestOptions) => {\r\n return saveSynonyms(base)([synonym], requestOptions);\r\n };\r\n};\n\nconst saveSynonyms = (base) => {\r\n return (synonyms, requestOptions) => {\r\n const { forwardToReplicas, clearExistingSynonyms, replaceExistingSynonyms, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n if (replaceExistingSynonyms || clearExistingSynonyms) {\r\n mappedRequestOptions.queryParameters.replaceExistingSynonyms = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/synonyms/batch', base.indexName),\r\n data: synonyms,\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst search = (base) => {\r\n return (query, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/query', base.indexName),\r\n data: {\r\n query,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst searchForFacetValues = (base) => {\r\n return (facetName, facetQuery, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/facets/%s/query', base.indexName, facetName),\r\n data: {\r\n facetQuery,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst searchRules = (base) => {\r\n return (query, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/rules/search', base.indexName),\r\n data: {\r\n query,\r\n },\r\n }, requestOptions);\r\n };\r\n};\n\nconst searchSynonyms = (base) => {\r\n return (query, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/synonyms/search', base.indexName),\r\n data: {\r\n query,\r\n },\r\n }, requestOptions);\r\n };\r\n};\n\nconst setSettings = (base) => {\r\n return (settings, requestOptions) => {\r\n const { forwardToReplicas, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Put,\r\n path: encode('1/indexes/%s/settings', base.indexName),\r\n data: settings,\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst waitTask = (base) => {\r\n return (taskID, requestOptions) => {\r\n return createRetryablePromise(retry => {\r\n return getTask(base)(taskID, requestOptions).then(response => {\r\n return response.status !== 'published' ? retry() : undefined;\r\n });\r\n });\r\n };\r\n};\n\nconst ApiKeyACLEnum = {\r\n AddObject: 'addObject',\r\n Analytics: 'analytics',\r\n Browser: 'browse',\r\n DeleteIndex: 'deleteIndex',\r\n DeleteObject: 'deleteObject',\r\n EditSettings: 'editSettings',\r\n Inference: 'inference',\r\n ListIndexes: 'listIndexes',\r\n Logs: 'logs',\r\n Personalization: 'personalization',\r\n Recommendation: 'recommendation',\r\n Search: 'search',\r\n SeeUnretrievableAttributes: 'seeUnretrievableAttributes',\r\n Settings: 'settings',\r\n Usage: 'usage',\r\n};\n\nconst BatchActionEnum = {\r\n AddObject: 'addObject',\r\n UpdateObject: 'updateObject',\r\n PartialUpdateObject: 'partialUpdateObject',\r\n PartialUpdateObjectNoCreate: 'partialUpdateObjectNoCreate',\r\n DeleteObject: 'deleteObject',\r\n DeleteIndex: 'delete',\r\n ClearIndex: 'clear',\r\n};\n\nconst ScopeEnum = {\r\n Settings: 'settings',\r\n Synonyms: 'synonyms',\r\n Rules: 'rules',\r\n};\n\nconst StrategyEnum = {\r\n None: 'none',\r\n StopIfEnoughMatches: 'stopIfEnoughMatches',\r\n};\n\nconst SynonymEnum = {\r\n Synonym: 'synonym',\r\n OneWaySynonym: 'oneWaySynonym',\r\n AltCorrection1: 'altCorrection1',\r\n AltCorrection2: 'altCorrection2',\r\n Placeholder: 'placeholder',\r\n};\n\nexport { ApiKeyACLEnum, BatchActionEnum, ScopeEnum, StrategyEnum, SynonymEnum, addApiKey, assignUserID, assignUserIDs, batch, browseObjects, browseRules, browseSynonyms, chunkedBatch, clearDictionaryEntries, clearObjects, clearRules, clearSynonyms, copyIndex, copyRules, copySettings, copySynonyms, createBrowsablePromise, createMissingObjectIDError, createObjectNotFoundError, createSearchClient, createValidUntilNotFoundError, customRequest, deleteApiKey, deleteBy, deleteDictionaryEntries, deleteIndex, deleteObject, deleteObjects, deleteRule, deleteSynonym, exists, findAnswers, findObject, generateSecuredApiKey, getApiKey, getAppTask, getDictionarySettings, getLogs, getObject, getObjectPosition, getObjects, getRule, getSecuredApiKeyRemainingValidity, getSettings, getSynonym, getTask, getTopUserIDs, getUserID, hasPendingMappings, initIndex, listApiKeys, listClusters, listIndices, listUserIDs, moveIndex, multipleBatch, multipleGetObjects, multipleQueries, multipleSearchForFacetValues, partialUpdateObject, partialUpdateObjects, removeUserID, replaceAllObjects, replaceAllRules, replaceAllSynonyms, replaceDictionaryEntries, restoreApiKey, saveDictionaryEntries, saveObject, saveObjects, saveRule, saveRules, saveSynonym, saveSynonyms, search, searchDictionaryEntries, searchForFacetValues, searchRules, searchSynonyms, searchUserIDs, setDictionarySettings, setSettings, updateApiKey, waitAppTask, waitTask };\n","function createNullLogger() {\r\n return {\r\n debug(_message, _args) {\r\n return Promise.resolve();\r\n },\r\n info(_message, _args) {\r\n return Promise.resolve();\r\n },\r\n error(_message, _args) {\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nconst LogLevelEnum = {\r\n Debug: 1,\r\n Info: 2,\r\n Error: 3,\r\n};\n\nexport { LogLevelEnum, createNullLogger };\n","function createAuth(authMode, appId, apiKey) {\r\n const credentials = {\r\n 'x-algolia-api-key': apiKey,\r\n 'x-algolia-application-id': appId,\r\n };\r\n return {\r\n headers() {\r\n return authMode === AuthMode.WithinHeaders ? credentials : {};\r\n },\r\n queryParameters() {\r\n return authMode === AuthMode.WithinQueryParameters ? credentials : {};\r\n },\r\n };\r\n}\n\nfunction createRetryablePromise(callback) {\r\n let retriesCount = 0; // eslint-disable-line functional/no-let\r\n const retry = () => {\r\n retriesCount++;\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve(callback(retry));\r\n }, Math.min(100 * retriesCount, 1000));\r\n });\r\n };\r\n return callback(retry);\r\n}\n\nfunction createWaitablePromise(promise, wait = (_response, _requestOptions) => {\r\n return Promise.resolve();\r\n}) {\r\n // eslint-disable-next-line functional/immutable-data\r\n return Object.assign(promise, {\r\n wait(requestOptions) {\r\n return createWaitablePromise(promise\r\n .then(response => Promise.all([wait(response, requestOptions), response]))\r\n .then(promiseResults => promiseResults[1]));\r\n },\r\n });\r\n}\n\n// eslint-disable-next-line functional/prefer-readonly-type\r\nfunction shuffle(array) {\r\n let c = array.length - 1; // eslint-disable-line functional/no-let\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (c; c > 0; c--) {\r\n const b = Math.floor(Math.random() * (c + 1));\r\n const a = array[c];\r\n array[c] = array[b]; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n array[b] = a; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n }\r\n return array;\r\n}\r\nfunction addMethods(base, methods) {\r\n if (!methods) {\r\n return base;\r\n }\r\n Object.keys(methods).forEach(key => {\r\n // eslint-disable-next-line functional/immutable-data, no-param-reassign\r\n base[key] = methods[key](base);\r\n });\r\n return base;\r\n}\r\nfunction encode(format, ...args) {\r\n // eslint-disable-next-line functional/no-let\r\n let i = 0;\r\n return format.replace(/%s/g, () => encodeURIComponent(args[i++]));\r\n}\n\nconst version = '4.24.0';\n\nconst destroy = (base) => {\r\n return () => {\r\n return base.transporter.requester.destroy();\r\n };\r\n};\n\nconst AuthMode = {\r\n /**\r\n * If auth credentials should be in query parameters.\r\n */\r\n WithinQueryParameters: 0,\r\n /**\r\n * If auth credentials should be in headers.\r\n */\r\n WithinHeaders: 1,\r\n};\n\nexport { AuthMode, addMethods, createAuth, createRetryablePromise, createWaitablePromise, destroy, encode, shuffle, version };\n","import * as http from 'http';\nimport { Agent } from 'http';\nimport * as https from 'https';\nimport { Agent as Agent$1 } from 'https';\nimport { parse } from 'url';\n\n/* eslint functional/prefer-readonly-type: 0 */\r\nconst agentOptions = { keepAlive: true };\r\nconst defaultHttpAgent = new Agent(agentOptions);\r\nconst defaultHttpsAgent = new Agent$1(agentOptions);\r\nfunction createNodeHttpRequester({ agent: userGlobalAgent, httpAgent: userHttpAgent, httpsAgent: userHttpsAgent, requesterOptions = {}, } = {}) {\r\n const httpAgent = userHttpAgent || userGlobalAgent || defaultHttpAgent;\r\n const httpsAgent = userHttpsAgent || userGlobalAgent || defaultHttpsAgent;\r\n return {\r\n send(request) {\r\n return new Promise(resolve => {\r\n const url = parse(request.url);\r\n const path = url.query === null ? url.pathname : `${url.pathname}?${url.query}`;\r\n const options = {\r\n ...requesterOptions,\r\n agent: url.protocol === 'https:' ? httpsAgent : httpAgent,\r\n hostname: url.hostname,\r\n path,\r\n method: request.method,\r\n headers: {\r\n ...(requesterOptions && requesterOptions.headers ? requesterOptions.headers : {}),\r\n ...request.headers,\r\n },\r\n ...(url.port !== undefined ? { port: url.port || '' } : {}),\r\n };\r\n const req = (url.protocol === 'https:' ? https : http).request(options, response => {\r\n // eslint-disable-next-line functional/no-let\r\n let contentBuffers = [];\r\n response.on('data', chunk => {\r\n contentBuffers = contentBuffers.concat(chunk);\r\n });\r\n response.on('end', () => {\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n clearTimeout(connectTimeout);\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n clearTimeout(responseTimeout);\r\n resolve({\r\n status: response.statusCode || 0,\r\n content: Buffer.concat(contentBuffers).toString(),\r\n isTimedOut: false,\r\n });\r\n });\r\n });\r\n const createTimeout = (timeout, content) => {\r\n return setTimeout(() => {\r\n req.abort();\r\n resolve({\r\n status: 0,\r\n content,\r\n isTimedOut: true,\r\n });\r\n }, timeout * 1000);\r\n };\r\n const connectTimeout = createTimeout(request.connectTimeout, 'Connection timeout');\r\n // eslint-disable-next-line functional/no-let\r\n let responseTimeout;\r\n req.on('error', error => {\r\n clearTimeout(connectTimeout);\r\n clearTimeout(responseTimeout);\r\n resolve({ status: 0, content: error.message, isTimedOut: false });\r\n });\r\n req.once('response', () => {\r\n clearTimeout(connectTimeout);\r\n responseTimeout = createTimeout(request.responseTimeout, 'Socket timeout');\r\n });\r\n if (request.data !== undefined) {\r\n req.write(request.data);\r\n }\r\n req.end();\r\n });\r\n },\r\n destroy() {\r\n httpAgent.destroy();\r\n httpsAgent.destroy();\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nexport { createNodeHttpRequester };\n","'use strict';\n\nvar cacheCommon = require('@algolia/cache-common');\nvar cacheInMemory = require('@algolia/cache-in-memory');\nvar clientCommon = require('@algolia/client-common');\nvar loggerCommon = require('@algolia/logger-common');\nvar requesterNodeHttp = require('@algolia/requester-node-http');\nvar transporter = require('@algolia/transporter');\nvar requesterCommon = require('@algolia/requester-common');\n\nconst createRecommendClient = options => {\r\n const appId = options.appId;\r\n const auth = clientCommon.createAuth(options.authMode !== undefined ? options.authMode : clientCommon.AuthMode.WithinHeaders, appId, options.apiKey);\r\n const transporter$1 = transporter.createTransporter({\r\n hosts: [\r\n { url: `${appId}-dsn.algolia.net`, accept: transporter.CallEnum.Read },\r\n { url: `${appId}.algolia.net`, accept: transporter.CallEnum.Write },\r\n ].concat(clientCommon.shuffle([\r\n { url: `${appId}-1.algolianet.com` },\r\n { url: `${appId}-2.algolianet.com` },\r\n { url: `${appId}-3.algolianet.com` },\r\n ])),\r\n ...options,\r\n headers: {\r\n ...auth.headers(),\r\n ...{ 'content-type': 'application/x-www-form-urlencoded' },\r\n ...options.headers,\r\n },\r\n queryParameters: {\r\n ...auth.queryParameters(),\r\n ...options.queryParameters,\r\n },\r\n });\r\n const base = {\r\n transporter: transporter$1,\r\n appId,\r\n addAlgoliaAgent(segment, version) {\r\n transporter$1.userAgent.add({ segment, version });\r\n },\r\n clearCache() {\r\n return Promise.all([\r\n transporter$1.requestsCache.clear(),\r\n transporter$1.responsesCache.clear(),\r\n ]).then(() => undefined);\r\n },\r\n };\r\n return clientCommon.addMethods(base, options.methods);\r\n};\n\nconst getRecommendations = base => {\r\n return (queries, requestOptions) => {\r\n const requests = queries.map(query => ({\r\n ...query,\r\n // The `threshold` param is required by the endpoint to make it easier\r\n // to provide a default value later, so we default it in the client\r\n // so that users don't have to provide a value.\r\n threshold: query.threshold || 0,\r\n }));\r\n return base.transporter.read({\r\n method: requesterCommon.MethodEnum.Post,\r\n path: '1/indexes/*/recommendations',\r\n data: {\r\n requests,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst getFrequentlyBoughtTogether = base => {\r\n return (queries, requestOptions) => {\r\n return getRecommendations(base)(queries.map(query => ({\r\n ...query,\r\n fallbackParameters: {},\r\n model: 'bought-together',\r\n })), requestOptions);\r\n };\r\n};\n\nconst getRelatedProducts = base => {\r\n return (queries, requestOptions) => {\r\n return getRecommendations(base)(queries.map(query => ({\r\n ...query,\r\n model: 'related-products',\r\n })), requestOptions);\r\n };\r\n};\n\nconst getTrendingFacets = base => {\r\n return (queries, requestOptions) => {\r\n const requests = queries.map(query => ({\r\n ...query,\r\n model: 'trending-facets',\r\n // The `threshold` param is required by the endpoint to make it easier\r\n // to provide a default value later, so we default it in the client\r\n // so that users don't have to provide a value.\r\n threshold: query.threshold || 0,\r\n }));\r\n return base.transporter.read({\r\n method: requesterCommon.MethodEnum.Post,\r\n path: '1/indexes/*/recommendations',\r\n data: {\r\n requests,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst getTrendingItems = base => {\r\n return (queries, requestOptions) => {\r\n const requests = queries.map(query => ({\r\n ...query,\r\n model: 'trending-items',\r\n // The `threshold` param is required by the endpoint to make it easier\r\n // to provide a default value later, so we default it in the client\r\n // so that users don't have to provide a value.\r\n threshold: query.threshold || 0,\r\n }));\r\n return base.transporter.read({\r\n method: requesterCommon.MethodEnum.Post,\r\n path: '1/indexes/*/recommendations',\r\n data: {\r\n requests,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst getLookingSimilar = base => {\r\n return (queries, requestOptions) => {\r\n return getRecommendations(base)(queries.map(query => ({\r\n ...query,\r\n model: 'looking-similar',\r\n })), requestOptions);\r\n };\r\n};\n\nconst getRecommendedForYou = base => {\r\n return (queries, requestOptions) => {\r\n const requests = queries.map(query => ({\r\n ...query,\r\n model: 'recommended-for-you',\r\n threshold: query.threshold || 0,\r\n }));\r\n return base.transporter.read({\r\n method: requesterCommon.MethodEnum.Post,\r\n path: '1/indexes/*/recommendations',\r\n data: {\r\n requests,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nfunction recommend(appId, apiKey, options) {\r\n const commonOptions = {\r\n appId,\r\n apiKey,\r\n timeouts: {\r\n connect: 2,\r\n read: 5,\r\n write: 30,\r\n },\r\n requester: requesterNodeHttp.createNodeHttpRequester(),\r\n logger: loggerCommon.createNullLogger(),\r\n responsesCache: cacheCommon.createNullCache(),\r\n requestsCache: cacheCommon.createNullCache(),\r\n hostsCache: cacheInMemory.createInMemoryCache(),\r\n userAgent: transporter.createUserAgent(clientCommon.version)\r\n .add({ segment: 'Recommend', version: clientCommon.version })\r\n .add({ segment: 'Node.js', version: process.versions.node }),\r\n };\r\n return createRecommendClient({\r\n ...commonOptions,\r\n ...options,\r\n methods: {\r\n destroy: clientCommon.destroy,\r\n getFrequentlyBoughtTogether,\r\n getRecommendations,\r\n getRelatedProducts,\r\n getTrendingFacets,\r\n getTrendingItems,\r\n getLookingSimilar,\r\n getRecommendedForYou,\r\n },\r\n });\r\n}\r\n/* eslint-disable functional/immutable-data */\r\nrecommend.version = clientCommon.version;\r\nrecommend.getFrequentlyBoughtTogether = getFrequentlyBoughtTogether;\r\nrecommend.getRecommendations = getRecommendations;\r\nrecommend.getRelatedProducts = getRelatedProducts;\r\nrecommend.getTrendingFacets = getTrendingFacets;\r\nrecommend.getTrendingItems = getTrendingItems;\r\nrecommend.getLookingSimilar = getLookingSimilar;\r\nrecommend.getRecommendedForYou = getRecommendedForYou;\n\nmodule.exports = recommend;\n","/* eslint-disable functional/immutable-data, import/no-commonjs */\nconst recommend = require('./dist/recommend.cjs.js');\n\n/**\n * The Common JS build is the default entry point for the Node environment. Keep in\n * in mind, that for the browser environment, we hint the bundler to use the UMD\n * build instead as specified on the key `browser` of our `package.json` file.\n */\nmodule.exports = recommend;\n\n/**\n * In addition, we also set explicitly the default export below making\n * this Common JS module in compliance with es6 modules specification.\n */\nmodule.exports.default = recommend;\n","import * as http from 'http';\nimport { Agent } from 'http';\nimport * as https from 'https';\nimport { Agent as Agent$1 } from 'https';\nimport { parse } from 'url';\n\n/* eslint functional/prefer-readonly-type: 0 */\r\nconst agentOptions = { keepAlive: true };\r\nconst defaultHttpAgent = new Agent(agentOptions);\r\nconst defaultHttpsAgent = new Agent$1(agentOptions);\r\nfunction createNodeHttpRequester({ agent: userGlobalAgent, httpAgent: userHttpAgent, httpsAgent: userHttpsAgent, requesterOptions = {}, } = {}) {\r\n const httpAgent = userHttpAgent || userGlobalAgent || defaultHttpAgent;\r\n const httpsAgent = userHttpsAgent || userGlobalAgent || defaultHttpsAgent;\r\n return {\r\n send(request) {\r\n return new Promise(resolve => {\r\n const url = parse(request.url);\r\n const path = url.query === null ? url.pathname : `${url.pathname}?${url.query}`;\r\n const options = {\r\n ...requesterOptions,\r\n agent: url.protocol === 'https:' ? httpsAgent : httpAgent,\r\n hostname: url.hostname,\r\n path,\r\n method: request.method,\r\n headers: {\r\n ...(requesterOptions && requesterOptions.headers ? requesterOptions.headers : {}),\r\n ...request.headers,\r\n },\r\n ...(url.port !== undefined ? { port: url.port || '' } : {}),\r\n };\r\n const req = (url.protocol === 'https:' ? https : http).request(options, response => {\r\n // eslint-disable-next-line functional/no-let\r\n let contentBuffers = [];\r\n response.on('data', chunk => {\r\n contentBuffers = contentBuffers.concat(chunk);\r\n });\r\n response.on('end', () => {\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n clearTimeout(connectTimeout);\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n clearTimeout(responseTimeout);\r\n resolve({\r\n status: response.statusCode || 0,\r\n content: Buffer.concat(contentBuffers).toString(),\r\n isTimedOut: false,\r\n });\r\n });\r\n });\r\n const createTimeout = (timeout, content) => {\r\n return setTimeout(() => {\r\n req.abort();\r\n resolve({\r\n status: 0,\r\n content,\r\n isTimedOut: true,\r\n });\r\n }, timeout * 1000);\r\n };\r\n const connectTimeout = createTimeout(request.connectTimeout, 'Connection timeout');\r\n // eslint-disable-next-line functional/no-let\r\n let responseTimeout;\r\n req.on('error', error => {\r\n clearTimeout(connectTimeout);\r\n clearTimeout(responseTimeout);\r\n resolve({ status: 0, content: error.message, isTimedOut: false });\r\n });\r\n req.once('response', () => {\r\n clearTimeout(connectTimeout);\r\n responseTimeout = createTimeout(request.responseTimeout, 'Socket timeout');\r\n });\r\n if (request.data !== undefined) {\r\n req.write(request.data);\r\n }\r\n req.end();\r\n });\r\n },\r\n destroy() {\r\n httpAgent.destroy();\r\n httpsAgent.destroy();\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nexport { createNodeHttpRequester };\n","'use strict';\n\nvar cacheCommon = require('@algolia/cache-common');\nvar cacheInMemory = require('@algolia/cache-in-memory');\nvar clientAnalytics = require('@algolia/client-analytics');\nvar clientCommon = require('@algolia/client-common');\nvar clientPersonalization = require('@algolia/client-personalization');\nvar clientSearch = require('@algolia/client-search');\nvar loggerCommon = require('@algolia/logger-common');\nvar recommend = require('@algolia/recommend');\nvar requesterNodeHttp = require('@algolia/requester-node-http');\nvar transporter = require('@algolia/transporter');\n\nfunction algoliasearch(appId, apiKey, options) {\r\n const commonOptions = {\r\n appId,\r\n apiKey,\r\n timeouts: {\r\n connect: 2,\r\n read: 5,\r\n write: 30,\r\n },\r\n requester: requesterNodeHttp.createNodeHttpRequester(),\r\n logger: loggerCommon.createNullLogger(),\r\n responsesCache: cacheCommon.createNullCache(),\r\n requestsCache: cacheCommon.createNullCache(),\r\n hostsCache: cacheInMemory.createInMemoryCache(),\r\n userAgent: transporter.createUserAgent(clientCommon.version).add({\r\n segment: 'Node.js',\r\n version: process.versions.node,\r\n }),\r\n };\r\n const searchClientOptions = { ...commonOptions, ...options };\r\n const initPersonalization = () => (clientOptions) => {\r\n return clientPersonalization.createPersonalizationClient({\r\n ...commonOptions,\r\n ...clientOptions,\r\n methods: {\r\n getPersonalizationStrategy: clientPersonalization.getPersonalizationStrategy,\r\n setPersonalizationStrategy: clientPersonalization.setPersonalizationStrategy,\r\n },\r\n });\r\n };\r\n return clientSearch.createSearchClient({\r\n ...searchClientOptions,\r\n methods: {\r\n search: clientSearch.multipleQueries,\r\n searchForFacetValues: clientSearch.multipleSearchForFacetValues,\r\n multipleBatch: clientSearch.multipleBatch,\r\n multipleGetObjects: clientSearch.multipleGetObjects,\r\n multipleQueries: clientSearch.multipleQueries,\r\n copyIndex: clientSearch.copyIndex,\r\n copySettings: clientSearch.copySettings,\r\n copyRules: clientSearch.copyRules,\r\n copySynonyms: clientSearch.copySynonyms,\r\n moveIndex: clientSearch.moveIndex,\r\n listIndices: clientSearch.listIndices,\r\n getLogs: clientSearch.getLogs,\r\n listClusters: clientSearch.listClusters,\r\n multipleSearchForFacetValues: clientSearch.multipleSearchForFacetValues,\r\n getApiKey: clientSearch.getApiKey,\r\n addApiKey: clientSearch.addApiKey,\r\n listApiKeys: clientSearch.listApiKeys,\r\n updateApiKey: clientSearch.updateApiKey,\r\n deleteApiKey: clientSearch.deleteApiKey,\r\n restoreApiKey: clientSearch.restoreApiKey,\r\n assignUserID: clientSearch.assignUserID,\r\n assignUserIDs: clientSearch.assignUserIDs,\r\n getUserID: clientSearch.getUserID,\r\n searchUserIDs: clientSearch.searchUserIDs,\r\n listUserIDs: clientSearch.listUserIDs,\r\n getTopUserIDs: clientSearch.getTopUserIDs,\r\n removeUserID: clientSearch.removeUserID,\r\n hasPendingMappings: clientSearch.hasPendingMappings,\r\n generateSecuredApiKey: clientSearch.generateSecuredApiKey,\r\n getSecuredApiKeyRemainingValidity: clientSearch.getSecuredApiKeyRemainingValidity,\r\n destroy: clientCommon.destroy,\r\n clearDictionaryEntries: clientSearch.clearDictionaryEntries,\r\n deleteDictionaryEntries: clientSearch.deleteDictionaryEntries,\r\n getDictionarySettings: clientSearch.getDictionarySettings,\r\n getAppTask: clientSearch.getAppTask,\r\n replaceDictionaryEntries: clientSearch.replaceDictionaryEntries,\r\n saveDictionaryEntries: clientSearch.saveDictionaryEntries,\r\n searchDictionaryEntries: clientSearch.searchDictionaryEntries,\r\n setDictionarySettings: clientSearch.setDictionarySettings,\r\n waitAppTask: clientSearch.waitAppTask,\r\n customRequest: clientSearch.customRequest,\r\n initIndex: base => (indexName) => {\r\n return clientSearch.initIndex(base)(indexName, {\r\n methods: {\r\n batch: clientSearch.batch,\r\n delete: clientSearch.deleteIndex,\r\n findAnswers: clientSearch.findAnswers,\r\n getObject: clientSearch.getObject,\r\n getObjects: clientSearch.getObjects,\r\n saveObject: clientSearch.saveObject,\r\n saveObjects: clientSearch.saveObjects,\r\n search: clientSearch.search,\r\n searchForFacetValues: clientSearch.searchForFacetValues,\r\n waitTask: clientSearch.waitTask,\r\n setSettings: clientSearch.setSettings,\r\n getSettings: clientSearch.getSettings,\r\n partialUpdateObject: clientSearch.partialUpdateObject,\r\n partialUpdateObjects: clientSearch.partialUpdateObjects,\r\n deleteObject: clientSearch.deleteObject,\r\n deleteObjects: clientSearch.deleteObjects,\r\n deleteBy: clientSearch.deleteBy,\r\n clearObjects: clientSearch.clearObjects,\r\n browseObjects: clientSearch.browseObjects,\r\n getObjectPosition: clientSearch.getObjectPosition,\r\n findObject: clientSearch.findObject,\r\n exists: clientSearch.exists,\r\n saveSynonym: clientSearch.saveSynonym,\r\n saveSynonyms: clientSearch.saveSynonyms,\r\n getSynonym: clientSearch.getSynonym,\r\n searchSynonyms: clientSearch.searchSynonyms,\r\n browseSynonyms: clientSearch.browseSynonyms,\r\n deleteSynonym: clientSearch.deleteSynonym,\r\n clearSynonyms: clientSearch.clearSynonyms,\r\n replaceAllObjects: clientSearch.replaceAllObjects,\r\n replaceAllSynonyms: clientSearch.replaceAllSynonyms,\r\n searchRules: clientSearch.searchRules,\r\n getRule: clientSearch.getRule,\r\n deleteRule: clientSearch.deleteRule,\r\n saveRule: clientSearch.saveRule,\r\n saveRules: clientSearch.saveRules,\r\n replaceAllRules: clientSearch.replaceAllRules,\r\n browseRules: clientSearch.browseRules,\r\n clearRules: clientSearch.clearRules,\r\n },\r\n });\r\n },\r\n initAnalytics: () => (clientOptions) => {\r\n return clientAnalytics.createAnalyticsClient({\r\n ...commonOptions,\r\n ...clientOptions,\r\n methods: {\r\n addABTest: clientAnalytics.addABTest,\r\n getABTest: clientAnalytics.getABTest,\r\n getABTests: clientAnalytics.getABTests,\r\n stopABTest: clientAnalytics.stopABTest,\r\n deleteABTest: clientAnalytics.deleteABTest,\r\n },\r\n });\r\n },\r\n initPersonalization,\r\n initRecommendation: () => (clientOptions) => {\r\n searchClientOptions.logger.info('The `initRecommendation` method is deprecated. Use `initPersonalization` instead.');\r\n return initPersonalization()(clientOptions);\r\n },\r\n getRecommendations: recommend.getRecommendations,\r\n getFrequentlyBoughtTogether: recommend.getFrequentlyBoughtTogether,\r\n getLookingSimilar: recommend.getLookingSimilar,\r\n getRecommendedForYou: recommend.getRecommendedForYou,\r\n getRelatedProducts: recommend.getRelatedProducts,\r\n getTrendingFacets: recommend.getTrendingFacets,\r\n getTrendingItems: recommend.getTrendingItems,\r\n },\r\n });\r\n}\r\n// eslint-disable-next-line functional/immutable-data\r\nalgoliasearch.version = clientCommon.version;\n\nmodule.exports = algoliasearch;\n","/* eslint-disable functional/immutable-data, import/no-commonjs */\nconst algoliasearch = require('./dist/algoliasearch.cjs.js');\n\n/**\n * The Common JS build is the default entry point for the Node environment. Keep in\n * in mind, that for the browser environment, we hint the bundler to use the UMD\n * build instead as specified on the key `browser` of our `package.json` file.\n */\nmodule.exports = algoliasearch;\n\n/**\n * In addition, we also set explicitly the default export below making\n * this Common JS module in compliance with es6 modules specification.\n */\nmodule.exports.default = algoliasearch;\n","// eslint-disable-next-line functional/immutable-data, import/no-commonjs\nmodule.exports = require('./index');\n","import { Box } from '@vtex/brand-ui'\nimport { MDXRemote } from 'next-mdx-remote'\nimport { MarkdownRendererProps } from './MarkdownRenderer.types'\nimport components from './components'\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst MDXRemote2 = MDXRemote as any\n\nconst MarkdownRenderer = ({\n serialized,\n customComponents,\n scope,\n}: MarkdownRendererProps) => {\n if (components && scope) {\n return (\n \n \n \n )\n }\n\n return (\n \n \n \n )\n}\n\nexport default MarkdownRenderer\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { useContext, useEffect, useRef, useState } from 'react'\nimport { Box, Flex } from '@vtex/brand-ui'\nimport {\n ReactSVGPanZoom,\n UncontrolledReactSVGPanZoom,\n} from 'react-svg-pan-zoom'\nimport mermaid from 'mermaid'\nimport parse from 'html-react-parser'\nimport { InView } from 'react-intersection-observer'\n\nimport { CH } from '@code-hike/mdx/components'\nimport OverviewCard from 'components/overview-card'\nimport YoutubeFrame from 'components/youtube-frame'\nimport Steps from 'components/steps'\nimport LightBox from 'components/lightbox'\nimport WhatsNextCard from 'components/whats-next-card'\n\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { childrenToString, slugify } from 'utils/string-utils'\nimport mermaidInit from 'utils/mermaidInit'\n\nimport { Component, ObservableHeadingProps } from './MarkdownRenderer.types'\nimport styles from './styles.module.css'\nimport { messages } from 'utils/get-message'\n\nmermaidInit()\n\nconst ObservableHeading = ({\n level,\n onEnterView,\n onLeaveView,\n ...headingProps\n}: ObservableHeadingProps) => {\n const [y, setY] = useState(Infinity)\n const toSlugify = childrenToString(headingProps.children)\n const slug = slugify(toSlugify)\n return (\n {\n if (inView) onEnterView(slug)\n else onLeaveView(slug, entry, y)\n\n setY(entry.boundingClientRect.y)\n }}\n >\n {level === 2 ? (\n

\n ) : (\n

\n )}\n \n )\n}\n\nconst calloutColors: Record = {\n info: '#8C929D',\n danger: '#DC5A41',\n warning: '#FFB100',\n success: '#80BE80',\n}\n\nconst CalloutIcon = ({ type }: { type: string }) => (\n \n \n {type === 'success' ? (\n \n ) : type === 'info' ? (\n <>\n \n \n \n ) : (\n <>\n \n \n \n )}\n \n)\n\nexport const Callout = ({ node, icon, ...props }: Component) => {\n const blockquoteType: string = icon ? icon : 'info'\n return (\n \n \n
\n \n )\n}\n\nconst MermaidDiagram = ({ node, ...props }: Component) => {\n const viewerRef = useRef(null)\n const ref = useRef()\n\n const [diagram, setDiagram] = useState('')\n const [width, setWidth] = useState(0)\n const [height, setHeight] = useState(0)\n\n useEffect(() => {\n const resizeObserver = new ResizeObserver(() => {\n if (!ref.current) return\n setWidth(ref.current?.clientWidth ?? 0)\n setHeight(ref.current?.clientWidth / 2 ?? 0)\n })\n\n const mermaidRenderer = async function () {\n const { svg } = await mermaid.render('mermaid-id', props.children)\n setDiagram(\n svg.replace('id=\"mermaid-id\"', '').replaceAll('#mermaid-id', '')\n )\n }\n\n mermaidRenderer()\n if (ref.current) resizeObserver.observe(ref.current)\n }, [])\n\n return (\n \n \n \n {parse(diagram)}\n \n \n \n )\n}\n\nconst ImageComponent = ({ node, ...props }: Component) => {\n const [srcHasError, setSrcHasError] = useState(false)\n const { locale } = useContext(LibraryContext)\n const regularImg = (\n // eslint-disable-next-line @next/next/no-img-element\n {props.alt} setSrcHasError(true)} />\n )\n const errorMessage = (\n
\n {messages[locale]['image.error_loading']} {props.src}\n
\n )\n\n let data: { base64: string; img: object } = { base64: '', img: {} }\n try {\n data = JSON.parse(props.alt)\n } catch (error) {\n console.log(`Error parsing`, error)\n return errorMessage\n }\n return !srcHasError ? {regularImg} : errorMessage\n}\n\nexport default {\n CH,\n OverviewCard,\n WhatsNextCard,\n YoutubeFrame,\n Steps,\n Flex: ({ node, ...props }: Component) => (\n \n ),\n table: ({ node, ...props }: Component) => ,\n td: ({ node, ...props }: Component) =>
,\n img: ImageComponent,\n text: ({ node, ...props }: Component) => {\n return \n },\n blockquote: ({ ...props }: Component) => {\n return \n },\n code: ({ node, ...props }: Component) => {\n return \n },\n pre: ({ ...props }: Component) => {\n if (props.className && props.className === 'mermaid')\n return \n\n return
\n  },\n  h2: ({ node, ...props }: Component) => {\n    const { activeItem, setActiveItem, goToPreviousItem } =\n      useContext(LibraryContext)\n\n    return (\n       {\n          setActiveItem(({ item, subItem }) => ({\n            item: slug,\n            subItem: item !== slug ? '' : subItem,\n          }))\n        }}\n        onLeaveView={(slug, entry, y) => {\n          if (entry.boundingClientRect.y > y && activeItem.item === slug) {\n            goToPreviousItem()\n          }\n        }}\n        {...props}\n      />\n    )\n  },\n  h3: ({ node, ...props }: Component) => {\n    const { activeItem, setActiveItem, goToPreviousSubItem } =\n      useContext(LibraryContext)\n\n    return (\n       {\n          setActiveItem(({ item }) => ({\n            item,\n            subItem: slug,\n          }))\n        }}\n        onLeaveView={(slug, entry, y) => {\n          if (entry.boundingClientRect.y > y && activeItem.subItem === slug) {\n            goToPreviousSubItem()\n          }\n        }}\n        {...props}\n      />\n    )\n  },\n}\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst overviewCard: SxStyleProp = {\n  alignItems: 'flex-start',\n  margin: '20px 0px',\n  border: '1px solid #E7E9EE',\n  borderRadius: '4px',\n  padding: '18px 24px 4px',\n  color: '#4A596B',\n  ':active, :hover': {\n    borderColor: 'muted.2',\n    boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\n    transition: 'all 0.3 ease-out',\n    '*':{\n      color: '#000711',\n    }\n  },\n  ul: {\n    borderLeft: '1px rgb(202, 203, 204) solid',\n    fontSize: '0.9em',\n    mt: '0',\n    paddingLeft: '1.5em',\n    listStyleType: 'none',\n    display: 'block',\n    textDecoration: 'none',\n  },\n  'h3, h4': {\n    color: '#4A596B',\n    fontSize: '1.125em',\n    fontWeight: '400',\n    my: '0',\n  },\n}\n\nconst overviewIcon: SxStyleProp = {\n  marginRight: '1.25em',\n  marginTop: '0.375em',\n}\n\nexport default {\n  overviewCard,\n  overviewIcon,\n}\n","import styles from './styles'\nimport { Flex, Box } from '@vtex/brand-ui'\nimport * as Icons from './icons'\nimport { IconComponent } from 'utils/typings/types'\nimport Link from 'next/link.js'\n\ninterface IconsI {\n  name: string\n  Icon: IconComponent\n}\n\nconst IconsMap: IconsI[] = [\n  {\n    name: 'StorageUnit',\n    Icon: Icons.StorageUnit,\n  },\n  {\n    name: 'Board',\n    Icon: Icons.Board,\n  },\n  {\n    name: 'Integration',\n    Icon: Icons.Integration,\n  },\n  {\n    name: 'SearchList',\n    Icon: Icons.SearchList,\n  },\n  {\n    name: 'SearchDetails',\n    Icon: Icons.SearchDetails,\n  },\n  {\n    name: 'SwitchArrows',\n    Icon: Icons.SwitchArrows,\n  },\n  {\n    name: 'ChangeCart',\n    Icon: Icons.ChangeCart,\n  },\n  {\n    name: 'ToStore',\n    Icon: Icons.ToStore,\n  },\n  {\n    name: 'PaymentHand',\n    Icon: Icons.PaymentHand,\n  },\n  {\n    name: 'GlobeCart',\n    Icon: Icons.GlobeCart,\n  },\n  {\n    name: 'StoreCart',\n    Icon: Icons.StoreCart,\n  },\n  {\n    name: 'List',\n    Icon: Icons.List,\n  },\n  {\n    name: 'Blocks',\n    Icon: Icons.Blocks,\n  },\n  {\n    name: 'StoreData',\n    Icon: Icons.StoreData,\n  },\n  {\n    name: 'Cart',\n    Icon: Icons.Cart,\n  },\n  {\n    name: 'FileConfiguration',\n    Icon: Icons.FileConfiguration,\n  },\n  {\n    name: 'Platform',\n    Icon: Icons.Platform,\n  },\n  {\n    name: 'RestApis',\n    Icon: Icons.RestApis,\n  },\n  {\n    name: 'Catalog',\n    Icon: Icons.Catalog,\n  },\n  {\n    name: 'Orders',\n    Icon: Icons.Orders,\n  },\n  {\n    name: 'Checkout',\n    Icon: Icons.Checkout,\n  },\n  {\n    name: 'Payments',\n    Icon: Icons.Payments,\n  },\n  {\n    name: 'Promotions',\n    Icon: Icons.Promotions,\n  },\n  {\n    name: 'Pricing',\n    Icon: Icons.Pricing,\n  },\n  {\n    name: 'AccountManagement',\n    Icon: Icons.AccountManagement,\n  },\n  {\n    name: 'StoreSearch',\n    Icon: Icons.StoreSearch,\n  },\n  {\n    name: 'Subscriptions',\n    Icon: Icons.Subscriptions,\n  },\n  {\n    name: 'Fulfillment',\n    Icon: Icons.Fulfillment,\n  },\n]\n\nconst getIcon = (name: string) => {\n  return IconsMap.find((icon) => icon.name === name)?.Icon\n}\n\n//Interfaces\nexport interface OverviewCardProps {\n  icon: string\n  link: string\n  children: string\n}\n\nconst OverviewCard = ({ icon, link, children }: OverviewCardProps) => {\n  const Icon = getIcon(icon)\n  return (\n    \n      \n        {Icon && }\n        {children}\n      \n    \n  )\n}\n\nexport default OverviewCard\n","import React from 'react'\nimport type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst StorageUnit = (props: IconProps) => (\n  \n    \n      \n      \n      \n      \n      \n      \n      \n    \n  \n)\n\nconst Board = (props: IconProps) => (\n  \n    \n      \n      \n      \n      \n    \n  \n)\n\nconst Composable = (props: IconProps) => (\n  \n    \n      \n      \n      \n      \n    \n  \n)\n\nconst Integration = (props: IconProps) => (\n  \n    \n    \n    \n    \n    \n  \n)\n\nconst SearchList = (props: IconProps) => (\n  \n    \n    \n    \n    \n    \n    \n    \n  \n)\n\nconst SwitchArrows = (props: IconProps) => (\n  \n    \n    \n    \n    \n    \n    \n  \n)\n\nconst SearchDetails = (props: IconProps) => (\n  \n    \n    \n    \n  \n)\n\nconst List = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\n\nconst StoreCart = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\n\nconst GlobeCart = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\n\nconst PaymentHand = (props: IconProps) => (\n  \n    \n    \n    \n    \n    \n  \n)\n\nconst ToStore = (props: IconProps) => (\n  \n    \n    \n    \n    \n    \n    \n  \n)\nconst ChangeCart = (props: IconProps) => (\n  \n    \n    \n    \n    \n    \n    \n    \n  \n)\n\nconst Blocks = (props: IconProps) => (\n  \n    {' '}\n    \n      {' '}\n      {' '}\n      {' '}\n      {' '}\n      {' '}\n    \n  \n)\nconst StoreData = (props: IconProps) => (\n  \n    \n    \n    \n    \n    \n  \n)\nconst FileConfiguration = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\nconst Cart = (props: IconProps) => (\n  \n    \n    \n    \n    \n  \n)\n\nconst Platform = (props: IconProps) => (\n  \n    \n      \n      \n      \n      \n      \n      \n      \n    \n  \n)\n\nconst RestApis = (props: IconProps) => (\n  \n    \n      \n      \n      \n      \n    \n  \n)\n\nconst Catalog = (props: IconProps) => (\n  \n    {' '}\n    \n  \n)\n\nconst Orders = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\n\nconst Checkout = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\n\nconst Payments = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\n\nconst Promotions = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\n\nconst Pricing = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\n\nconst AccountManagement = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\n\nconst StoreSearch = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\nconst Subscriptions = (props: IconProps) => (\n  \n    \n      \n      \n      \n      \n      \n      \n    \n  \n)\n\nconst Fulfillment = (props: IconProps) => (\n  \n    \n      \n      \n      \n      \n      \n      \n      \n      \n      \n      \n    \n  \n)\n\nexport {\n  StorageUnit,\n  Board,\n  Composable,\n  Integration,\n  SearchList,\n  SwitchArrows,\n  SearchDetails,\n  ChangeCart,\n  ToStore,\n  PaymentHand,\n  GlobeCart,\n  StoreCart,\n  List,\n  Blocks,\n  StoreData,\n  FileConfiguration,\n  Cart,\n  Platform,\n  RestApis,\n  Catalog,\n  Orders,\n  Checkout,\n  Payments,\n  Promotions,\n  Pricing,\n  AccountManagement,\n  StoreSearch,\n  Subscriptions,\n  Fulfillment,\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\n\nexport interface IYoutubeFrame {\n  embedId: string\n}\nconst YoutubeFrame = ({ embedId }: IYoutubeFrame) => (\n  
\n \n
\n)\n\nYoutubeFrame.propTypes = {\n embedId: PropTypes.string.isRequired,\n}\n\nexport default YoutubeFrame\n","import React from 'react'\nimport { Box } from '@vtex/brand-ui'\nimport styles from './styles'\n\nexport interface StepsProps {\n children: string\n}\nconst Steps = ({ children }: StepsProps) => {\n return {children}\n}\nexport default Steps\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst steps: SxStyleProp = {\n ml: '4px',\n mt: '12px',\n mb: '27px',\n borderLeft: '1px solid #e5e7eb',\n pl: '25px',\n position: 'relative',\n '.heading': {\n counterIncrement: `step`,\n },\n '.heading:before': {\n content: `counter(step)`,\n position: 'absolute',\n border: '4px solid #ffffff',\n width: '2em',\n height: '2em',\n left: '-1.3em',\n color: '#a1a1aa',\n backgroundColor: '#f2f3f6',\n borderRadius: '9999px',\n fontSize: '1em',\n textAlign: 'center',\n lineHeight: '2.1em',\n boxSizing: 'content-box',\n },\n}\n\nexport default {\n steps,\n}\n","import React, { ReactElement, useEffect, useRef, useState } from 'react'\nimport { Box, Button, Flex } from '@vtex/brand-ui'\nimport CloseIcon from 'components/icons/close-icon'\nimport useClickOutside from 'utils/hooks/useClickOutside'\nimport styles from './styles'\n\ninterface Props {\n children: ReactElement\n}\n\nexport default function LightBox({ children }: Props) {\n const [isModalOpen, setIsModalOpen] = useState(false)\n const modalRef = useRef()\n\n useEffect(() => {\n if (isModalOpen) {\n const scrollTop = document.body.getBoundingClientRect().top\n document.body.style.top = `${scrollTop}px`\n document.body.classList.add('modal-open')\n } else {\n document.body.classList.remove('modal-open')\n document.body.style.removeProperty('top')\n }\n }, [isModalOpen])\n\n useClickOutside(modalRef, () => setIsModalOpen(false))\n\n return (\n
\n {isModalOpen && (\n \n }\n onClick={() => setIsModalOpen(false)}\n />\n \n {children}\n \n \n )}\n setIsModalOpen(true)}>\n {children}\n \n
\n )\n}\n","import React from 'react'\nimport type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst CloseIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default CloseIcon\n","import { useEffect, MutableRefObject, SetStateAction, Dispatch } from 'react'\n\nexport default function useClickOutside(\n ref: MutableRefObject,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n openModal: Dispatch>\n) {\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n const { body, documentElement } = document\n if (\n ref.current &&\n event.target instanceof Node &&\n !ref.current.contains(event.target)\n ) {\n openModal({ modalToggle: false })\n const scrollTop = body.getBoundingClientRect().top * -1\n body.classList.remove('modal-open')\n documentElement.scrollTop = scrollTop\n body.style.removeProperty('top')\n }\n }\n document.addEventListener('mousedown', handleClickOutside)\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n }\n }, [])\n}\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst imageContainer: SxStyleProp = {\n cursor: 'pointer',\n borderRadius: '5px',\n width: 'fit-content',\n mt: '16px',\n mb: '24px',\n transition: '0.3s',\n ':hover': {\n boxShadow: '2px 4px 8px 2px rgb(0 0 0 / 10%)',\n },\n\n '> img': {\n maxWidth: '100%',\n display: 'block',\n padding: '0',\n margin: '0',\n border: '1px solid #e7e9ed',\n borderRadius: '4px'\n },\n}\n\nconst container: SxStyleProp = {\n margin: '0',\n width: '100%',\n height: '100%',\n backgroundColor: 'rgba(0,0,0,0.9)',\n position: 'fixed',\n top: '0',\n left: '0',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n zIndex: '10000',\n}\n\nconst modal: SxStyleProp = {\n display: 'inline-block',\n margin: 'auto',\n boxShadow: '2px 4px 16px rgb(0 0 0 / 30%)',\n position: 'relative',\n zIndex: '10001',\n padding: '0',\n\n '> img': {\n display: 'block',\n maxHeight: 'calc(100vh - 50px)',\n maxWidth: 'calc(100vw - 50px)',\n width: 'auto',\n margin: '0',\n padding: '0',\n },\n}\n\nconst closeButton: SxStyleProp = {\n position: 'absolute',\n zIndex: '10002',\n top: '10px',\n right: '10px',\n color: '#FEFEFE',\n\n ':hover': {\n color: 'rgb(100, 100, 100)',\n },\n}\n\nexport default {\n imageContainer,\n container,\n modal,\n closeButton,\n}\n","import React from 'react'\nimport { Box, Flex, IconCaret, Text, Link } from '@vtex/brand-ui'\nimport styles from './styles'\nimport Image from 'next/image.js'\n\nexport type WhatsNextDataElement = {\n title: string\n description?: string\n linkTitle?: string\n linkTo: string\n image?: string\n}\n\nconst WhatsNextCard = ({\n title,\n description,\n linkTitle,\n linkTo,\n image,\n}: WhatsNextDataElement) => {\n return (\n \n {image ? (\n \n \n \n {title}\n \n \n ) : (\n \n \n {title}\n \n {description && (\n \n {description}\n \n )}\n {linkTitle && (\n \n \n {linkTitle}\n \n \n \n )}\n \n )}\n \n )\n}\n\nexport default WhatsNextCard\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst container: SxStyleProp = {\n mt: '16px',\n borderRadius: '4px',\n border: '1px solid #E7E9EE',\n width: ['100%', '49%'],\n transition: 'all 0.3s ease-out',\n ':hover': {\n cursor: 'pointer',\n },\n ':active, :hover': {\n borderColor: 'muted.2',\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\n transition: 'all 0.3 ease-out',\n '.title, .description': {\n transition: 'all 0.3s ease-out',\n color: '#000711',\n },\n '.link, .caret': {\n transition: 'all 0.3s ease-out',\n color: 'muted.0',\n },\n },\n}\n\nconst title: SxStyleProp = {\n mb: '8px',\n fontSize: '16px',\n fontWeight: '400',\n lineHeight: ['22px', '18px'],\n color: 'muted.0',\n}\n\nconst imageTitle: SxStyleProp = {\n padding: '16px',\n fontSize: '16px',\n fontWeight: '400',\n color: 'muted.0',\n ':after': {\n content: `url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='rgb(74 89 108)' %3E%3Cpath fill-rule='evenodd' d='M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z' clip-rule='evenodd' /%3E%3C/svg%3E\")`,\n position: 'absolute',\n height: '16px',\n width: '16px',\n marginLeft: '3px',\n lineHeight: '30px',\n },\n}\n\nconst description: SxStyleProp = {\n fontSize: '14px',\n fontWeight: '400',\n lineHeight: '20px',\n color: 'muted.0',\n}\n\nconst linkContainer: SxStyleProp = {\n mt: '8px',\n alignItems: 'center',\n}\n\nconst link: SxStyleProp = {\n ...description,\n color: 'muted.1',\n}\n\nexport default {\n container,\n title,\n imageTitle,\n description,\n linkContainer,\n link,\n}","import type { Dispatch, ReactNode, SetStateAction } from 'react'\nimport { createContext, useEffect, useState } from 'react'\nimport { Item } from 'lib/table-of-contents/TableOfContents.types'\nimport { Section } from 'utils/typings/types'\nimport { SWRConfig } from 'swr'\n\ninterface Props extends Partial {\n children: ReactNode\n /** The navigation array containing the list of documentations shown in the sidebar. */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fallback?: any\n /** Documentation sections, the same sections that divide the fallback. */\n sections: Section[][]\n /** Whether is a branch preview or not. */\n isPreview: boolean\n /** The section currently selected. */\n sectionSelected: string\n /** The sections to be used on the hamburguer menu */\n hamburguerMenuSections: Section[][]\n /** The portal language. The default is english. */\n locale?: 'en' | 'pt' | 'es'\n}\n\nexport type ContextType = {\n headingItems: Item[]\n setHeadingItems: Dispatch>\n activeItem: ActiveItem\n setActiveItem: Dispatch>\n goToPreviousItem: () => void\n goToPreviousSubItem: () => void\n isEditorPreview: boolean\n sidebarSectionHidden: boolean\n activeSectionName: string\n activeSidebarElement: string\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n sidebarDataMaster: any\n sidebarElementStatus: Map\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setSidebarDataMaster: Dispatch>\n setIsEditorPreview: Dispatch>\n setSidebarSectionHidden: Dispatch>\n setActiveSectionName: Dispatch>\n setActiveSidebarElement: Dispatch>\n toggleSidebarElementStatus: (title: string) => void\n openSidebarElement: (title: string) => void\n closeSidebarElements: (parentsArray: string[]) => void\n sidebarSections: Section[][]\n setSidebarSections: Dispatch>\n hamburguerSections: Section[][]\n setHamburguerSections: Dispatch>\n locale: 'en' | 'pt' | 'es'\n}\n\ntype ActiveItem = {\n item: string\n subItem: string\n}\n\nexport const LibraryContext = createContext({\n headingItems: [],\n setHeadingItems: () => undefined,\n activeItem: {\n item: '',\n subItem: '',\n },\n setActiveItem: () => undefined,\n goToPreviousItem: () => undefined,\n goToPreviousSubItem: () => undefined,\n isEditorPreview: false,\n sidebarSectionHidden: false,\n activeSectionName: '',\n activeSidebarElement: '',\n sidebarDataMaster: {},\n setIsEditorPreview: () => undefined,\n sidebarElementStatus: new Map(),\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any\n setSidebarDataMaster: (_: any) => undefined,\n setSidebarSectionHidden: () => undefined,\n setActiveSectionName: () => undefined,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any\n setActiveSidebarElement: (_: any) => undefined,\n toggleSidebarElementStatus: () => undefined,\n openSidebarElement: () => undefined,\n closeSidebarElements: () => undefined,\n sidebarSections: [],\n setSidebarSections: () => undefined,\n hamburguerSections: [],\n setHamburguerSections: () => undefined,\n locale: 'en',\n})\n\n/** Provider for the LibraryContext created with React.createContext. The context is used in the following components: feedback, search, sidebar, hamburger menu, markdown renderer and table of contents. */\nconst LibraryContextProvider = ({ children, ...props }: Props) => {\n const [headingItems, setHeadingItems] = useState([])\n const [activeItem, setActiveItem] = useState({\n item: '',\n subItem: '',\n })\n\n const [activeSectionName, setActiveSectionName] = useState(\n props.sectionSelected\n )\n const [sidebarSectionHidden, setSidebarSectionHidden] = useState(false)\n const [activeSidebarElement, setActiveSidebarElement] = useState('')\n const [sidebarElementStatus, setSidebarElementStatus] = useState(new Map())\n const [sidebarDataMaster, setSidebarDataMaster] = useState(props.fallback)\n const [isEditorPreview, setIsEditorPreview] = useState(props.isPreview)\n const [sidebarSections, setSidebarSections] = useState(props.sections)\n const [hamburguerSections, setHamburguerSections] = useState(\n props.hamburguerMenuSections\n )\n const { locale: propsLocale, ...restProps } = props\n const locale = propsLocale ?? 'en'\n const fallback = restProps.fallback\n\n useEffect(() => {\n setSidebarDataMaster(props.fallback)\n }, [props.fallback])\n\n useEffect(() => {\n if (props.sectionSelected === '') setSidebarSectionHidden(true)\n else if (props.sectionSelected !== activeSectionName)\n setActiveSectionName(props.sectionSelected)\n }, [props.sectionSelected])\n\n const toggleSidebarElementStatus = (title: string) => {\n setSidebarElementStatus((sidebarElementStatus) => {\n const open =\n sidebarElementStatus.has(title) === false\n ? true\n : !sidebarElementStatus.get(title)\n\n return new Map(sidebarElementStatus.set(title, open))\n })\n }\n\n const closeSidebarElements = (parentsArray: string[]) => {\n sidebarElementStatus.forEach((_value, key) => {\n if (!parentsArray.includes(key)) {\n setSidebarElementStatus((sidebarElementStatus) => {\n return new Map(sidebarElementStatus.set(key, false))\n })\n }\n })\n }\n\n const openSidebarElement = (title: string) => {\n setSidebarElementStatus((sidebarElementStatus) => {\n return new Map(sidebarElementStatus.set(title, true))\n })\n }\n\n const goToPreviousItem = () => {\n setActiveItem(({ item, subItem }) => {\n const index = headingItems.findIndex((heading) => heading.slug === item)\n if (index === -1) return { item, subItem }\n\n const previousItem = !index ? '' : headingItems[index - 1].slug\n const previousChildren = !index ? [] : headingItems[index - 1].children\n const previousSubItem = !previousChildren.length\n ? ''\n : previousChildren.slice(-1)[0].slug\n\n return {\n item: previousItem,\n subItem: previousSubItem,\n }\n })\n }\n\n const goToPreviousSubItem = () => {\n setActiveItem(({ item, subItem }) => {\n const heading = headingItems.find((heading) => heading.slug === item)\n const index = heading?.children.findIndex(\n (child) => child.slug === subItem\n )\n\n if (!heading || index === -1) return { item, subItem }\n\n return {\n item,\n subItem: !index ? '' : heading.children[index - 1].slug,\n }\n })\n }\n\n return (\n \n \n {children}\n \n \n )\n}\n\nexport default LibraryContextProvider\n","export const removeHTML = (str: string) => str.replace(/<\\/?[^>]+>/g, '')\n\nconst SYMBOL_RUN_THRESHOLD = 3\n\n/**\n * Strips Markdown syntax from text snippets to render as plain text.\n * Removes headings, bold, italic, inline code, images, and links while preserving\n * the readable content. Also handles tokens left truncated by the upstream\n * snippet (e.g. an image/link cut off mid-URL with no closing paren).\n */\nexport const stripMarkdownForSnippet = (str: string): string => {\n if (!str) return ''\n\n let cleaned = str\n // Drop closed fenced blocks (code, mermaid, etc.) including their contents\n .replace(/```[\\s\\S]*?```/g, '')\n // Drop unclosed/truncated fenced blocks at the end of a snippet\n .replace(/```[^\\n]*(?:\\n[\\s\\S]*)?$/g, '')\n // Remove markdown images ![alt](url) entirely (alt is usually a filename)\n .replace(/!\\[[^\\]]*\\]\\([^)]*\\)/g, '')\n // Remove markdown links [text](url) - keep only the text\n .replace(/\\[([^\\]]+)\\]\\([^)]+\\)/g, '$1')\n // Remove truncated markdown images/links left dangling at the end of a\n // snippet (upstream cuts the string mid-token, e.g. \"![alt](https://...\" )\n .replace(/!?\\[[^\\]]*\\]\\([^)]*$/g, '')\n // Remove a dangling image/link label with no closing bracket (\"![alt\" )\n .replace(/!?\\[[^\\]]*$/g, '')\n // Remove markdown headings (# ## ### etc.) at line start\n .replace(/^#{1,6}\\s+/gm, '')\n // Remove markdown headings anywhere in text\n .replace(/\\s#{1,6}\\s+/g, ' ')\n // Remove bold (**text** or __text__)\n .replace(/\\*\\*(.+?)\\*\\*/g, '$1')\n .replace(/__(.+?)__/g, '$1')\n // Remove italic (*text* or _text_)\n .replace(/\\*(.+?)\\*/g, '$1')\n .replace(/_(.+?)_/g, '$1')\n // Remove inline code (`text`) — keep readable inner text\n .replace(/`([^`]+)`/g, '$1')\n // Remove horizontal rules (---, ***, ___)\n .replace(/^(\\*{3,}|-{3,}|_{3,})$/gm, '')\n // Remove blockquotes (>)\n .replace(/^>\\s+/gm, '')\n // Remove table separator rows (| --- | :--: | etc.)\n .replace(/^\\s*\\|?\\s*:?-{3,}:?\\s*(\\|\\s*:?-{3,}:?\\s*)*\\|?\\s*$/gm, '')\n // Replace remaining table pipes with spaces so cell content stays readable\n .replace(/\\s*\\|\\s*/g, ' ')\n // Collapse stray horizontal-rule / table-separator symbol runs\n .replace(new RegExp(`-{${SYMBOL_RUN_THRESHOLD},}`, 'g'), ' ')\n .replace(new RegExp(`={${SYMBOL_RUN_THRESHOLD},}`, 'g'), ' ')\n .replace(new RegExp(`\\\\|{${SYMBOL_RUN_THRESHOLD},}`, 'g'), ' ')\n // Remove extra whitespace and normalize spaces\n .replace(/\\s+/g, ' ')\n .trim()\n\n // If the snippet starts mid-word (lowercase letter), try to find the start of the next word\n if (cleaned.length > 0 && /^[a-zà-ÿ]/.test(cleaned)) {\n const firstSpaceIndex = cleaned.indexOf(' ')\n if (firstSpaceIndex > 0 && firstSpaceIndex < 50) {\n cleaned = cleaned.substring(firstSpaceIndex + 1).trim()\n }\n }\n\n return cleaned\n}\n\nexport const capitalizeFirstLetter = (str: string) => {\n return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\nexport const toCamelCase = (str: string) => {\n const [firstWord, ...otherWords] = str.split('-')\n return `${firstWord}${otherWords.map(capitalizeFirstLetter).join('')}`\n}\n\nexport const slugify = (str: string) => {\n return str\n .normalize('NFD') // Decomposes diacritics (e.g., \"é\" → \"é\")\n .replace(/[\\u0300-\\u036f]/g, '') // Removes diacritic marks\n .toLowerCase()\n .replace(/[^\\w\\s-]/g, '') // Removes non-word characters except spaces and hyphens\n .replace(/\\s+/g, '-') // Replaces spaces with hyphens\n .replace(/-+/g, '-') // Removes multiple consecutive hyphens\n .trim() // Trims leading/trailing spaces\n}\n\ntype Child = string | { props: { children: Child[] } }\n\nexport const childrenToString: (children: Child[]) => string = (children) => {\n if (!children) return ''\n else if (Array.isArray(children))\n return children\n .map((child) => {\n if (typeof child === 'string') return child\n return childrenToString(child.props.children)\n })\n .join('')\n else {\n if (typeof children === 'string') return children\n return childrenToString(children['props']['children'])\n }\n}\n\nexport const matrixToMarkdownTable: (matrix: string[][]) => string = (\n matrix\n) => {\n const matrixRowToMarkdownTableRow = (matrixRow: string[]) =>\n `|${matrixRow\n .map((matrixElement) => ` ${matrixElement.replace(/\\n/g, '
')} |`)\n .join('')}`\n\n let table = matrixRowToMarkdownTableRow(matrix[0]) + '\\n|'\n for (let i = 0; i < matrix[0].length; i++) table += ' --- |'\n\n table += '\\n'\n for (let i = 1; i < matrix.length; i++)\n table += matrixRowToMarkdownTableRow(matrix[i]) + '\\n'\n\n return table\n}\n","import mermaid from 'mermaid'\n\nconst mermaidInit = () => {\n mermaid.initialize({\n theme: 'base',\n themeVariables: {\n primaryColor: '#FFFFFF',\n primaryTextColor: '#142032',\n primaryBorderColor: '#A1AAB7',\n labelBoxBorderColor: '#E31C58',\n labelTextColor: '#E31C58',\n labelBoxBkgColor: '#FFF3F6',\n lineColor: '#A1AAB7',\n mainBkg: '#F8F7FC',\n },\n })\n}\n\nexport default mermaidInit\n",".img {\n max-width: 100%;\n padding-top: 2vh;\n border-radius: 4px;\n}\n\n.heading::before {\n content: '';\n display: block;\n visibility: hidden;\n pointer-events: none;\n}\n\n.code {\n background-color: unset;\n background-color: var(--md-code-background, #f6f8fa);\n border-radius: 4px;\n color: var(--md-code-text);\n margin: 0;\n padding: 0.2em 0.4em;\n font-size: 0.875em;\n word-break: break-word;\n overflow-wrap: break-word;\n}\n\ntable .code {\n word-break: normal;\n}\n\n.blockquote {\n display: grid;\n padding: 20px;\n gap: 20px;\n width: 100%;\n margin: 16px 0px 24px;\n border-radius: 4px;\n align-items: center;\n border: 1px solid #ccced8;\n grid-template-columns: 20px 1fr;\n grid-template-rows: auto;\n word-break: break-word;\n}\n\n.blockquote a {\n word-break: break-word;\n overflow-wrap: break-word;\n}\n\n.blockquote p,\n.blockquote div {\n margin: 0px;\n grid-column: 2 / -1;\n grid-row: 1 / 1;\n}\n\n.blockquote > div {\n width: 100%;\n max-width: 100%;\n min-width: 0;\n}\n\n.blockquote ch-code-scroll-parent {\n width: 100% !important;\n overflow-x: auto !important;\n overflow-y: hidden !important;\n background-color: unset !important;\n}\n\n.blockquote a {\n color: #e31c58 !important;\n -webkit-text-decoration: underline 1px solid;\n text-decoration: underline 1px solid;\n}\n\n.blockquote a:hover {\n color: #c81e51;\n}\n\n.blockquoteIcon {\n display: inline-block;\n flex-shrink: 0;\n grid-row: 1;\n}\n\n.blockquoteInfo {\n background: #f8f7fc;\n border: 1px solid #ccced8;\n}\n\n.blockquoteDanger {\n background: #fdefef;\n border: 1px solid #dc5a41;\n}\n\n.blockquoteWarning {\n background: #fff2d4;\n border: 1px solid #ffb100;\n}\n\n.blockquoteWarning code {\n background-color: #ffe5b5;\n}\n\n.blockquoteInfo code {\n background-color: unset;\n}\n\n.blockquoteSuccess {\n background: #f3f8f3;\n border: 1px solid #80be80;\n}\n\n.flexWrap {\n flex-wrap: wrap;\n justify-content: space-between;\n}\n\n.svgContainer {\n width: 100%;\n}","{\r\n \"feedback_section.question\": \"Was this helpful?\",\r\n \"feedback_section.response\": \"Thanks for the feedback!\",\r\n \"feedback_section.positive\": \"Yes\",\r\n \"feedback_section.negative\": \"No\",\r\n \"feedback_section.edit\": \"Suggest Edits (GitHub)\",\r\n \"feedback_modal.title\": \"Leave a Comment (Optional)\",\r\n \"feedback_modal.button\": \"Send Feedback\",\r\n \"search_input.empty\": \"No results found. Try different search terms.\",\r\n \"search_input.placeholder\": \"Search\",\r\n \"search_results.showing\": \"Showing\",\r\n \"search_results.results_for\": \"results for\",\r\n \"search_results.in\": \"in\",\r\n \"search_results.all_lowercase\": \"all results\",\r\n \"sidebar_search.placeholder\": \"Search in\",\r\n \"search_input.see_all\": \"See all results\",\r\n \"search_results.summary\": \"Showing {count} results for \\\"{keyword}\\\" in {section}\",\r\n \"search_results.all\": \"All results\",\r\n \"search_card.in\": \"In\",\r\n \"image.error_loading\": \"An error occurred while loading the image\",\r\n \"api_reference_sidebar_filter_clear\": \"Clear All\",\r\n \"api_reference_sidebar_filter\": \"Filter By\",\r\n \"cookie_bar.title\": \"We use cookies\",\r\n \"cookie_bar.description\": \"This website uses cookies to improve navigation, analyze usage, and assist with our marketing efforts.\",\r\n \"cookie_bar.accept\": \"I agree\",\r\n \"cookie_bar.decline\": \"I decline\",\r\n \"landing_page_subscription.title\": \"Stay up to date with VTEX documentation\",\r\n \"landing_page_subscription.description\": \"Subscribe to our monthly newsletter to receive information about the latest announcements, release notes, and newly published articles.\",\r\n \"landing_page_newsletter.Button\": \"Subscribe\",\r\n \"subscription_list.api_key_error\": \"Newsletter API key is not defined\",\r\n \"subscription_list.invalid_email\": \"Invalid email address, please try another one.\",\r\n \"subscription_list.success\": \"You've successfully subscribed!\",\r\n \"subscription_list.error\": \"Sorry, we couldn't subscribe you. Please try again later.\",\r\n \"subscription_list.privacy_notice\": \"By subscribing to our newsletter, you agree to our\",\r\n \"subscription_list.privacy_policy_link\": \"Privacy Policy\"\r\n}\r\n","{\r\n \"feedback_section.question\": \"¿Te ha parecido útil?\",\r\n \"feedback_section.response\": \"Gracias por tu feedback\",\r\n \"feedback_section.positive\": \"Sí\",\r\n \"feedback_section.negative\": \"No\",\r\n \"feedback_section.edit\": \"Sugerir cambios (GitHub)\",\r\n \"feedback_modal.title\": \"Dar feedback (opcional)\",\r\n \"feedback_modal.button\": \"Enviar feedback\",\r\n \"search_input.empty\": \"No se encontraron resultados. Intenta utilizar otros términos.\",\r\n \"search_input.placeholder\": \"Buscar\",\r\n \"sidebar_search.placeholder\": \"Buscar en\",\r\n \"search_results.showing\": \"Mostrando\",\r\n \"search_results.results_for\": \"resultados para\",\r\n \"search_results.in\": \"en\",\r\n \"search_results.all_lowercase\": \"todos los resultados\",\r\n \"search_input.see_all\": \"Ver todos los resultados\",\r\n \"search_results.summary\": \"Mostrando {count} resultados para \\\"{keyword}\\\" en {section}\",\r\n \"search_results.all\": \"Todos los resultados\",\r\n \"search_card.in\": \"En\",\r\n \"image.error_loading\": \"Se produjo un error al cargar la imagen\",\r\n \"api_reference_sidebar_filter_clear\": \"Limpiar todo\",\r\n \"api_reference_sidebar_filter\": \"Filtrar por\",\r\n \"cookie_bar.title\": \"Utilizamos cookies\",\r\n \"cookie_bar.description\": \"Este sitio web utiliza cookies para optimizar la navegación, analizar el uso e impulsar nuestros esfuerzos de marketing.\",\r\n \"cookie_bar.accept\": \"Acepto\",\r\n \"cookie_bar.decline\": \"Rechazo\",\r\n \"landing_page_subscription.title\": \"Mantente al día con la documentación de VTEX\",\r\n \"landing_page_subscription.description\": \"Suscríbete a nuestro newsletter mensual para recibir información sobre los últimos anuncios, release notes y artículos recién publicados.\",\r\n \"landing_page_newsletter.Button\": \"Inscríbete\",\r\n \"subscription_list.api_key_error\": \"La clave de API de la newsletter no está definida\",\r\n \"subscription_list.invalid_email\": \"Dirección de email inválida, por favor intenta con otra.\",\r\n \"subscription_list.success\": \"¡Te has suscrito con éxito!\",\r\n \"subscription_list.error\": \"Lo sentimos, no pudimos suscribirte. Por favor, inténtalo de nuevo más tarde.\",\r\n \"subscription_list.privacy_notice\": \"Al suscribirte a nuestra newsletter, aceptas nuestro\",\r\n \"subscription_list.privacy_policy_link\": \"Aviso de privacidad\"\r\n}\r\n","{\r\n \"feedback_section.question\": \"Isso foi útil?\",\r\n \"feedback_section.response\": \"Agradecemos pelo seu feedback.\",\r\n \"feedback_section.positive\": \"Sim\",\r\n \"feedback_section.negative\": \"Não\",\r\n \"feedback_section.edit\": \"Sugerir edições (GitHub)\",\r\n \"feedback_modal.title\": \"Deixe um comentário (opcional)\",\r\n \"feedback_modal.button\": \"Enviar feedback\",\r\n \"search_input.empty\": \"Nenhum resultado encontrado. Tente buscar por outros termos.\",\r\n \"search_input.placeholder\": \"Buscar\",\r\n \"sidebar_search.placeholder\": \"Buscar em\",\r\n \"search_results.showing\": \"Mostrando\",\r\n \"search_results.results_for\": \"resultados para\",\r\n \"search_results.in\": \"em\",\r\n \"search_results.all_lowercase\": \"todos os resultados\",\r\n \"search_input.see_all\": \"Ver todos os resultados\",\r\n \"search_results.summary\": \"Mostrando {count} resultados para \\\"{keyword}\\\" em {section}\",\r\n \"search_results.all\": \"Todos os resultados\",\r\n \"search_card.in\": \"Em\",\r\n \"image.error_loading\": \"Ocorreu um erro ao carregar a imagem\",\r\n \"api_reference_sidebar_filter_clear\": \"Limpar tudo\",\r\n \"api_reference_sidebar_filter\": \"Filtrar por\",\r\n \"cookie_bar.title\": \"Nós usamos cookies\",\r\n \"cookie_bar.description\": \"Este site utiliza cookies para melhorar a navegação, analisar a experiência de uso e auxiliar em nossas ações de marketing.\",\r\n \"cookie_bar.accept\": \"Concordo\",\r\n \"cookie_bar.decline\": \"Discordo\",\r\n \"landing_page_subscription.title\": \"Mantenha-se em dia com a documentação da VTEX\",\r\n \"landing_page_subscription.description\": \"Assine nossa newsletter mensal para receber informações sobre os Announcements mais recentes, Release Notes e os artigos recém-publicados.\",\r\n \"landing_page_newsletter.Button\": \"Inscreva-se\",\r\n \"subscription_list.api_key_error\": \"A chave da API da newsletter não está definida\",\r\n \"subscription_list.invalid_email\": \"Endereço de email inválido, por favor tente outro.\",\r\n \"subscription_list.success\": \"Você se inscreveu com sucesso!\",\r\n \"subscription_list.error\": \"Desculpe, não foi possível realizar sua inscrição. Por favor, tente novamente mais tarde.\",\r\n \"subscription_list.privacy_notice\": \"Ao assinar nossa newsletter, você concorda com a nossa\",\r\n \"subscription_list.privacy_policy_link\": \"Política de Privacidade\"\r\n}","import enMessages from '../messages/en.json'\nimport esMessages from '../messages/es.json'\nimport ptMessages from '../messages/pt.json'\nimport { MessagesType } from './typings/messages-types'\n\nconst getMessages = (): {\n en: MessagesType\n es: MessagesType\n pt: MessagesType\n} => {\n const messages = {\n en: enMessages,\n es: esMessages,\n pt: ptMessages,\n }\n\n return messages\n}\n\nexport const messages = getMessages()\n","import { useContext, useEffect } from 'react'\nimport Link from 'next/link.js'\nimport { useRouter } from 'next/router.js'\nimport { Box, Text } from '@vtex/brand-ui'\nimport AnimateHeight from 'react-animate-height'\n\nimport { removeHTML } from 'utils/string-utils'\nimport { Item } from './TableOfContents.types'\n\nimport { LibraryContext } from 'utils/context/libraryContext'\n\nimport styles from './styles'\n\ninterface Props {\n /** List of headings in the current documentation page */\n headingList?: Item[]\n children?: React.ReactNode\n}\n\n/** Table of contents for documentation pages. */\nconst TableOfContents = ({ headingList, children }: Props) => {\n const router = useRouter()\n const { headingItems, activeItem, setHeadingItems, setActiveItem } =\n useContext(LibraryContext)\n\n useEffect(() => {\n const headings: Item[] = headingList ?? []\n if (!headings.length) {\n document.querySelectorAll('h2, h3').forEach((heading) => {\n const headingSlug = heading.id\n const item = {\n title: removeHTML(heading.innerHTML).replace(':', ''),\n slug: headingSlug,\n }\n\n if (heading.tagName === 'H2') {\n headings.push({ ...item, children: [] })\n } else if (headings.length > 0) {\n headings[headings.length - 1].children.push({ ...item })\n } else {\n headings.push({ ...item, children: [] })\n }\n })\n setHeadingItems(headings)\n } else setHeadingItems(headings)\n }, [router.asPath, headingList])\n\n const Item = ({\n title,\n slug,\n level,\n active,\n }: {\n title: string\n slug: string\n level: number\n active: boolean\n }) => {\n return (\n {\n setActiveItem(({ item }) => ({\n item: level === 1 ? slug : item,\n subItem: level === 1 ? '' : slug,\n }))\n }}\n >\n {title}\n \n )\n }\n\n return (\n \n {headingItems.length > 0 && (\n ON THIS PAGE\n )}\n \n {headingItems.map((item) => (\n \n \n \n \n {item.children.map((subItem) => (\n \n ))}\n \n \n \n ))}\n \n {children}\n \n )\n}\n\nexport default TableOfContents\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst itemsContainer: SxStyleProp = {\n position: 'sticky',\n top: 'calc(5rem + 32px)',\n}\n\nconst tocTitle: SxStyleProp = {\n fontSize: '10px',\n fontWeight: '600',\n textTransform: 'uppercase',\n mb: '6px',\n color: 'muted.0',\n}\n\nconst headings: SxStyleProp = {\n borderLeft: '1px solid #E7E9EE',\n mb: '16px',\n}\n\nconst item: (level: number, active: boolean) => SxStyleProp = (\n level,\n active\n) => {\n const defaultLineHeight = `${level === 1 ? 18 : 22}px`\n return {\n ml: '-1px',\n pl: `${level * 8}px`,\n py: ['6px', '6px', '6px', '6px', '4px', '4px'],\n borderLeft: `1px solid ${active && level === 1 ? '#E31C58' : '#E7E9EE'}`,\n fontSize: ['16px', '16px', '16px', '16px', '12px', '16px'],\n lineHeight: [\n defaultLineHeight,\n defaultLineHeight,\n defaultLineHeight,\n defaultLineHeight,\n `${level === 1 ? 16 : 18}px`,\n defaultLineHeight,\n ],\n fontWeight: `${active ? '600' : '400'}`,\n color: `${active ? '#0C1522' : 'muted.0'}`,\n\n ':hover': {\n color: '#000711',\n },\n }\n}\n\nconst subItemsContainer: SxStyleProp = {\n ml: '16px',\n borderLeft: '1px solid #E7E9EE',\n}\n\nexport default { tocTitle, itemsContainer, item, subItemsContainer, headings }\n","import { useEffect, useRef, useState, useContext } from 'react'\nimport { Flex, Text, Box } from '@vtex/brand-ui'\nimport Link from 'next/link.js'\n\nimport styles from './styles'\nimport { iconTooltipStyle } from './functions'\n\nimport { Section } from 'utils/typings/types'\nimport Tooltip from 'components/tooltip'\nimport { updateOpenPage } from 'utils/sidebar-utils'\nimport SidebarSection, { SidebarSectionProps } from 'components/sidebar-section'\nimport { LibraryContext } from 'utils/context/libraryContext'\n\nexport interface SideBarSectionState {\n /** Array containing the name of the parents of the expanded page in the menu. */\n parentsArray?: string[]\n}\n\n/**\n * Sidebar component.\n */\nconst Sidebar = ({ parentsArray = [] }: SideBarSectionState) => {\n const [expandDelayStatus, setExpandDelayStatus] = useState(true)\n\n const context = useContext(LibraryContext)\n const {\n isEditorPreview,\n setActiveSectionName,\n activeSectionName,\n sidebarSections,\n sidebarDataMaster,\n } = context\n\n const sidebarSectionContent = {\n ...(Array.isArray(sidebarDataMaster)\n ? sidebarDataMaster?.find(\n (section: SidebarSectionProps) =>\n section.documentation === activeSectionName\n )\n : null),\n }\n\n updateOpenPage({\n parentsArray,\n context,\n })\n\n useEffect(() => {\n let timer: NodeJS.Timeout | undefined = undefined\n if (sidebarSectionContent.categories?.length > 0)\n timer = setTimeout(\n () => setExpandDelayStatus && setExpandDelayStatus(false),\n 5000\n )\n else setExpandDelayStatus && setExpandDelayStatus(true)\n\n return () => {\n timer && clearTimeout(timer)\n }\n }, [activeSectionName])\n\n const SideBarIcon = (sectionElement: Section) => {\n const [iconTooltip, setIconTooltip] = useState(false)\n const [tooltipLabel, setTooltipLabel] = useState(sectionElement.title)\n const titleRef = useRef()\n\n useEffect(() => {\n const resizeObserver = new MutationObserver(function (entries) {\n const target = entries[0].target as HTMLElement\n if (target.offsetWidth < target.scrollWidth) setIconTooltip(true)\n else setIconTooltip(false)\n\n if (target.offsetWidth > 0) setTooltipLabel(target.innerText)\n })\n if (titleRef.current) {\n if (titleRef.current.offsetWidth < titleRef.current.scrollWidth)\n setIconTooltip(true)\n resizeObserver.observe(titleRef.current, {\n childList: true,\n })\n }\n return () => {\n resizeObserver.disconnect\n }\n }, [titleRef.current])\n\n return (\n \n \n {\n if (isEditorPreview) {\n e.preventDefault()\n }\n setActiveSectionName(sectionElement.id)\n }}\n passHref\n aria-label={sectionElement.title}\n >\n \n \n \n {sectionElement.title}\n \n \n \n \n \n )\n }\n\n return (\n \n \n {sidebarSections.map((section, id) => {\n return (\n <>\n {id > 0 && (\n \n
\n
\n )}\n \n {section.map((element) => (\n \n ))}\n \n \n )\n })}\n
\n {activeSectionName ? : null}\n \n )\n}\n\nexport default Sidebar\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst sidebar: SxStyleProp = {\n display: [\n 'none !important',\n 'none !important',\n 'none !important',\n 'flex !important',\n ],\n position: 'sticky',\n left: '0',\n top: '5rem',\n flex: '1 0 auto',\n height: 'calc(100vh - 5rem)',\n width: 'auto',\n minWidth: 'auto',\n transition: 'all 0.3s ease-in-out',\n '.active': {\n marginLeft: '-276px',\n transition: 'all 0.3s ease-in-out',\n },\n '.iconContainerExpanded': {\n transition: 'all 0.3s ease-in-out',\n width: '160px',\n },\n '.iconDescriptionExpanded': {\n display: 'block',\n },\n}\n\nconst sidebarIcons: SxStyleProp = {\n width: ['56px', '56px', '56px', '56px', '56px', '160px'],\n minWidth: 'max-content',\n transition: 'all 0.3s ease-in-out',\n flexDirection: 'column',\n borderRight: '1px solid #E7E9EE',\n background: '#FFFFFF',\n zIndex: '2',\n paddingBottom: '32px',\n}\n\nconst linkContainer: SxStyleProp = {\n minWidth: '100%',\n}\n\nconst iconBox: SxStyleProp = {\n mt: ['16px'],\n width: '100%',\n maxWidth: '144px',\n paddingLeft: ['0', '0', '0', '8px'],\n paddingRight: ['0', '0', '0', '8px', '8px', '0'],\n py: ['0', '0', '0', '8px', '8px', '10px'],\n height: '40px',\n borderRadius: '4px',\n alignItems: 'center',\n justifyContent: 'flex-start',\n background: 'transparent',\n color: 'muted.0',\n cursor: 'pointer',\n ':hover': {\n background: '#F8F7FC',\n color: '#000711',\n path: {\n stroke: [\n '#000711',\n '#000711',\n '#000711',\n '#000711',\n '#000711',\n '#4A596B',\n ],\n },\n },\n}\n\nconst iconBoxActive: SxStyleProp = {\n ...iconBox,\n background: ['#F8F7FC', '#F8F7FC', '#F8F7FC', '#F8F7FC', '#F8F7FC', 'none'],\n color: '#E31C58',\n}\n\nconst sidebarIconsContainer: SxStyleProp = {\n width: '100%',\n flexDirection: 'column',\n alignItems: 'flex-start',\n px: ['0', '0', '0', '8px'],\n}\n\nconst icon: SxStyleProp = {\n width: ['24px'],\n height: ['24px'],\n}\n\nconst iconActive: SxStyleProp = {\n ...icon,\n '> path': {\n stroke: '#E31C58',\n },\n}\n\nconst sectionDivider: SxStyleProp = {\n px: '8px',\n marginTop: '16px',\n hr: {\n border: '1px solid #E7E9EE',\n borderTop: 'none',\n },\n}\n\nconst iconTitle: SxStyleProp = {\n display: ['none', 'none', 'none', 'none', 'none', 'block'],\n width: '100%',\n fontSize: '14px',\n ml: ['8px', '8px', '8px', '8px', '8px', '12px'],\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n}\n\nconst iconTooltip: SxStyleProp = {\n display: [\n 'flex !important',\n 'flex !important',\n 'flex !important',\n 'flex !important',\n 'flex !important',\n 'none !important',\n ],\n}\n\nexport default {\n sidebar,\n sidebarIcons,\n sidebarIconsContainer,\n linkContainer,\n iconBox,\n icon,\n iconActive,\n iconBoxActive,\n sectionDivider,\n iconTitle,\n iconTooltip,\n}\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nexport const iconTooltipStyle: SxStyleProp = (tooltipState: boolean) => {\n const iconTooltip: SxStyleProp = {\n display: [\n 'flex',\n 'flex',\n 'flex',\n 'flex',\n 'flex',\n tooltipState ? 'flex' : 'none !important',\n ],\n }\n return iconTooltip\n}\n","import { useEffect, useRef, useState } from 'react'\nimport { Box, Flex, TooltipProps, SxStyleProp } from '@vtex/brand-ui'\n\nimport styles from './styles'\nimport CaretIcon from 'components/icons/caret'\ninterface Props extends Pick {\n sx?: SxStyleProp\n isCard?: boolean\n}\n\nconst Tooltip = ({ children, label, placement, sx, isCard }: Props) => {\n const box = useRef()\n const [boxWidth, setBoxWidth] = useState(0)\n const [boxHeight, setBoxHeight] = useState(0)\n const [boxOffsetLeft, setBoxOffsetLeft] = useState(0)\n const [boxOffsetTop, setBoxOffsetTop] = useState(0)\n const [visible, setVisible] = useState(false)\n\n useEffect(() => {\n if (box.current) {\n setBoxWidth(box.current.clientWidth)\n setBoxHeight(box.current.clientHeight)\n setBoxOffsetLeft(box.current.offsetLeft)\n setBoxOffsetTop(box.current.offsetTop)\n }\n }, [\n box.current,\n box.current?.clientWidth,\n box.current?.clientHeight,\n box.current?.offsetLeft,\n box.current?.offsetTop,\n ])\n\n return (\n \n setVisible(true)}\n onMouseLeave={() => setVisible(false)}\n >\n {children}\n \n {visible && (isCard ?? true) && (\n \n \n {label}\n \n )}\n \n )\n}\n\nexport default Tooltip\n","import { SxStyleProp } from '@vtex/brand-ui'\n\ntype Placement = 'top' | 'right' | 'bottom' | 'left'\n\nconst tooltipContainer: (\n sx: SxStyleProp,\n placement: Placement,\n width: number,\n height: number,\n x: number,\n y: number\n) => SxStyleProp = (sx, placement, width, height, x, y) => {\n const position = {\n bottom: {\n left: `${x + width / 2}px`,\n top: `${y + height + 3}px`,\n },\n left: {\n left: `${x - 1}px`,\n top: `${y + height / 2}px`,\n },\n top: {\n left: `${x + width / 2}px`,\n top: `${y - 3}px`,\n },\n right: {\n left: `${x + width + 1}px`,\n top: `${y + height / 2}px`,\n },\n }\n\n const translation = {\n bottom: 'translateX(-50%)',\n left: 'translateX(-100%) translateY(-50%)',\n top: 'translateX(-50%) translateY(-100%)',\n right: 'translateY(-50%)',\n }\n\n const direction = {\n bottom: 'column',\n left: 'row-reverse',\n top: 'column-reverse',\n right: 'row',\n }\n\n return {\n ...sx,\n zIndex: '100',\n position: 'absolute',\n alignItems: 'center',\n justifyContent: 'center',\n ...position[placement],\n transform: translation[placement],\n flexDirection: direction[placement],\n }\n}\n\nconst caret: (placement: Placement) => SxStyleProp = (placement) => {\n const rotation = {\n bottom: 0,\n left: 90,\n top: 180,\n right: 270,\n }\n\n const translation = {\n bottom: 1,\n left: 3,\n top: 1,\n right: 3,\n }\n\n return {\n width: '8px',\n height: '4px',\n minWidth: 'initial',\n minHeight: 'initial',\n transform: `rotate(${rotation[placement]}deg) translateY(${translation[placement]}px)`,\n }\n}\n\nconst label: SxStyleProp = {\n borderRadius: '4px',\n backgroundColor: 'black',\n color: 'white',\n fontSize: '12px',\n fontWeight: '400',\n lineHeight: '130%',\n}\n\nconst labelContibutorsContainer: SxStyleProp = {\n ...label,\n padding: '4px 8px',\n}\n\nconst labelDocumentationContainer: SxStyleProp = {\n ...label,\n width: '284px',\n textAlign: 'center',\n px: '12px',\n py: '8px',\n}\n\nconst labelStyle = (documentationSection: boolean): SxStyleProp => {\n if (documentationSection) return labelDocumentationContainer\n return labelContibutorsContainer\n}\nexport default { tooltipContainer, caret, labelStyle }\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst CaretIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default CaretIcon\n","export const flattenJSON = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n obj: any = {},\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n res: any = {},\n extraKey = ''\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): any => {\n for (const key in obj) {\n if (typeof obj[key] !== 'object') {\n res[extraKey + key] = obj[key]\n } else {\n flattenJSON(obj[key], res, `${extraKey}${key}.`)\n }\n }\n return res\n}\n\nexport const getKeyByEndpoint = (\n object: { [x: string]: string },\n endpoint: string,\n slug: string,\n method?: string\n) => {\n const slugPaths = Object.keys(object).filter((key) => object[key] === slug)\n let path = ''\n slugPaths?.map((el) => {\n if (\n method &&\n object[`${el.replace('.slug', '.method')}`] == method?.toUpperCase() &&\n object[`${el.replace('.slug', '.endpoint')}`] == endpoint\n ) {\n path = el\n } else if (hasChildren(object, el.replace('.slug', '.children'))) {\n path = el\n }\n })\n return path\n}\n\nfunction hasChildren(\n flattenedJson: { [x: string]: string },\n elementKey: string\n): boolean {\n for (const key in flattenedJson) {\n if (key.startsWith(`${elementKey}.`)) {\n return true\n }\n }\n return false\n}\n\nexport const getParents = (\n path: string,\n data: string,\n flattenedSidebar: { [x: string]: string },\n parentsArray: string[],\n parent?: string\n) => {\n const pathParts = path?.split('children')\n pathParts?.splice(-1)\n let prev = ''\n pathParts?.map((el) => {\n el = prev + el\n prev = el + 'children'\n\n if (!parent || flattenedSidebar[`${el}${data}`].includes(parent)) {\n parentsArray.push(flattenedSidebar[`${el}${data}`])\n }\n })\n return parentsArray\n}\n","import { Section } from './typings/types'\nimport { flattenJSON, getKeyByEndpoint, getParents } from './navigation-utils'\nimport { useRouter } from 'next/router.js'\nimport { useEffect } from 'react'\nimport { ContextType } from './context/libraryContext'\n\nexport const getIcon = (doc: string, sections: Section[][]) => {\n for (const section of sections) {\n return section.find((icon) => icon.title === doc)?.Icon\n }\n}\n\ninterface updateOpenPageProps {\n parentsArray?: string[]\n context: ContextType\n}\nexport const updateOpenPage = ({\n parentsArray = [],\n context,\n}: updateOpenPageProps) => {\n const {\n activeSidebarElement,\n sidebarDataMaster,\n setActiveSidebarElement,\n openSidebarElement,\n closeSidebarElements,\n } = context\n const flattenedSidebar = flattenJSON(sidebarDataMaster)\n const router = useRouter()\n\n let activeSlug = ''\n const querySlug = router.query.slug\n\n if (querySlug && router.pathname === '/docs/api-reference/[slug]') {\n activeSlug = router.asPath.replace('/docs/api-reference/', '')\n const docPath = activeSlug.split('/')\n const hasHashTag = router.asPath.indexOf('#') > -1\n const apiSlug = docPath[0].split(hasHashTag ? '#' : '?endpoint=')[0]\n const endpoint = '/' + docPath.splice(1, docPath.length).join('/')\n let keyPath\n if (endpoint == '/') {\n activeSlug = apiSlug\n keyPath = getKeyByEndpoint(flattenedSidebar, '', apiSlug)\n } else {\n const method = docPath[0]\n .split(hasHashTag ? '#' : '?endpoint=')[1]\n .split('-')[0]\n keyPath = getKeyByEndpoint(flattenedSidebar, endpoint, apiSlug, method)\n }\n parentsArray.push(activeSlug)\n if (keyPath) {\n getParents(keyPath, 'slug', flattenedSidebar, parentsArray)\n }\n } else {\n activeSlug = parentsArray[parentsArray.length - 1]\n }\n\n useEffect(() => {\n closeSidebarElements(parentsArray)\n parentsArray.forEach((slug: string) => {\n openSidebarElement(slug)\n })\n setActiveSidebarElement(activeSlug?.replace('?endpoint=', '#'))\n }, [activeSidebarElement, router])\n}\n","// Sidebar Section\nimport { Flex, Box, Text, Button } from '@vtex/brand-ui'\nimport { useContext, useMemo, useState } from 'react'\n\nimport styles from './styles'\nimport { SidebarElement } from '../sidebar-elements'\nimport SectionFilter from '../sidebar-section-filter'\nimport SideBarElements from '../sidebar-elements'\nimport SearchIcon from 'components/icons/search-icon'\nimport SideBarToggleIcon from 'components/icons/sidebar-toggle-icon'\nimport ArrowLeftIcon from 'components/icons/arrow-left-icon'\nimport { getIcon } from 'utils/sidebar-utils'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\n\nexport interface SidebarSectionProps {\n documentation: string\n name: string | { en: string, es: string, pt: string }\n categories: SidebarElement[]\n slugPrefix: string\n isHamburgerMenu: boolean\n}\n\nconst SidebarSection = ({\n documentation,\n name,\n categories,\n slugPrefix,\n isHamburgerMenu = false,\n}: SidebarSectionProps) => {\n const [searchValue, setSearchValue] = useState('')\n const {\n isEditorPreview,\n sidebarSectionHidden,\n setSidebarSectionHidden,\n sidebarSections,\n locale\n } = useContext(LibraryContext)\n const [methodFilterList, setMethodFilterList] = useState([\n { name: 'POST', active: false },\n { name: 'GET', active: false },\n { name: 'PUT', active: false },\n { name: 'DELETE', active: false },\n { name: 'PATCH', active: false },\n ])\n\n const filterStatus = methodFilterList.some(\n (methodFilter) => methodFilter.active\n )\n\n const filteredResult = useMemo(() => {\n if (!filterStatus && searchValue === '') return categories\n\n const dataCopy = JSON.parse(JSON.stringify(categories))\n\n const filteredCategories = dataCopy\n .map((category: SidebarElement) => {\n category.children = category.children\n .map((subcategory) => {\n subcategory.children = subcategory.children.filter((endpoint) => {\n const hasMethodFilter =\n !filterStatus ||\n methodFilterList.find(\n (methodFilter) => methodFilter.name === endpoint.method\n )?.active\n const hasInputFilter =\n searchValue === '' ||\n (typeof endpoint.name === 'string'\n ? endpoint.name\n : endpoint.name[locale]\n )\n .toLowerCase()\n .includes(searchValue.toLowerCase())\n return hasMethodFilter && hasInputFilter\n })\n return subcategory\n })\n .filter(\n (subcategory) =>\n subcategory.children.length > 0 ||\n (subcategory.type === 'markdown' &&\n (typeof subcategory.name === 'string'\n ? subcategory.name\n : subcategory.name[locale]\n )\n .toLowerCase()\n .includes(searchValue.toLowerCase()))\n )\n return category\n })\n .filter((category: SidebarElement) => category.children.length > 0)\n return filteredCategories\n }, [filterStatus, methodFilterList, categories, searchValue])\n\n const DocIcon = getIcon(documentation, sidebarSections)\n\n let localizedSectionTitle = ''\n\n if (!categories || categories.length <= 0) {\n return <>\n } else {\n localizedSectionTitle = typeof(name) === 'string' ? name : name[locale]\n }\n\n return isHamburgerMenu ? (\n \n \n \n }\n onClick={() => {\n setSidebarSectionHidden(true)\n }}\n />\n {DocIcon && }\n {localizedSectionTitle}\n \n \n \n \n setSearchValue(e.currentTarget.value)}\n />\n \n {documentation == 'API Reference' && (\n \n )}\n \n \n \n \n \n \n ) : (\n \n \n \n {isEditorPreview && (\n \n \n \n \n \n \n PREVIEW MODE\n \n )}\n {localizedSectionTitle}\n \n \n setSearchValue(e.currentTarget.value)}\n />\n \n \n {documentation == 'API Reference' && (\n \n )}\n \n \n \n \n \n {\n setSidebarSectionHidden(\n (sidebarSectionHidden) => !sidebarSectionHidden\n )\n }}\n sx={sidebarSectionHidden ? styles.toggleIcon : {}}\n />\n \n \n )\n}\n\nexport default SidebarSection\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst sidebarContainer: SxStyleProp = {\n position: 'relative',\n width: 'auto',\n height: 'inherit',\n borderRight: '1px solid #E7E9EE',\n zIndex: '1',\n left: '0',\n transition: 'all 0.3s ease-in-out',\n '.toggleIcon': {\n opacity: '0',\n transition: 'all 0.3s ease-out',\n },\n '.sidebarHide': {\n opacity: '0',\n transition: 'all 0.5s ease-out',\n },\n ':hover': {\n '.toggleIcon': {\n opacity: '100',\n transition: 'all 0.3s ease-out',\n },\n },\n}\n\nconst sidebarContainerHamburger: SxStyleProp = {\n width: 'auto',\n minHeight: '692px',\n zIndex: '1',\n}\n\nconst sidebarContainerBox: SxStyleProp = {\n opacity: '100',\n paddingTop: '34px',\n paddingBottom: '24px',\n overflowY: 'auto',\n height: 'inherit',\n maskImage:\n 'linear-gradient(to top, transparent, black), linear-gradient(to left, transparent 17px, black 17px)',\n maskSize: '100% 20000px',\n maskPosition: 'left bottom',\n transition: 'mask-position 0.3s, -webkit-mask-position 0.3s',\n ':hover': {\n maskPosition: 'left top',\n },\n}\n\nconst sidebarContainerBoxHamburger: SxStyleProp = {\n opacity: '100',\n transition: 'all 1s ease-out',\n}\n\nconst sidebarContainerBody: SxStyleProp = {\n px: '17px',\n}\n\nconst sidebarContainerHeader: SxStyleProp = {\n ...sidebarContainerBody,\n}\n\nconst sidebarContainerTitle: SxStyleProp = {\n alignItems: 'center',\n lineHeight: '22px',\n gap: '5px',\n padding: '17px 0px 17px 17px',\n borderBottom: '1px solid #E7E9EE',\n}\n\nconst sidebarTitle: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n fontSize: '16px',\n lineHeight: '18px',\n}\n\nconst sidebarHelpIcon: SxStyleProp = {\n ml: '4px',\n width: '24px',\n height: '24px',\n}\n\nconst searchBox: SxStyleProp = {\n mt: '16px',\n mb: '20px',\n alignItems: 'center',\n borderRadius: '4px',\n background: '#F4F4F4',\n width: '265px',\n height: '40px',\n paddingLeft: '12px',\n}\n\nconst searchInput: SxStyleProp = {\n width: 'auto',\n background: '#F4F4F4',\n border: '#F4F4F4',\n color: '#545454',\n fontSize: ['14px'],\n}\n\nconst searchIcon: SxStyleProp = {\n minWidth: '16px',\n minHeight: '16px',\n width: '16px',\n mr: '8px',\n}\n\nconst toggleIconBox: SxStyleProp = {\n justifyContent: 'center',\n alignItems: 'center',\n width: '32px',\n height: '32px',\n borderRadius: '50%',\n border: '1px solid #E7E9EE',\n background: '#FFFFFF',\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\n position: 'absolute',\n top: '32px',\n right: '-16px',\n cursor: 'pointer',\n}\n\nconst toggleIconBoxActive: SxStyleProp = {\n ...toggleIconBox,\n opacity: '100 !important',\n}\n\nconst toggleIcon: SxStyleProp = {\n transform: 'scaleX(-1)',\n}\n\nconst arrowButton: SxStyleProp = {\n padding: '0px',\n}\n\nconst previewMode: SxStyleProp = {\n display: 'flex',\n color: '#A87600',\n backgroundColor: '#ffe5b5',\n padding: '10px',\n borderRadius: '10px',\n fontWeight: '600',\n fontSize: '14px',\n lineHeight: '20px',\n letterSpacing: '0.5px',\n mb: '20px',\n svg: {\n width: '20px',\n mr: '10px',\n },\n}\n\nexport default {\n sidebarContainer,\n sidebarContainerHamburger,\n sidebarContainerBox,\n sidebarContainerBoxHamburger,\n sidebarContainerBody,\n sidebarContainerHeader,\n sidebarContainerTitle,\n sidebarTitle,\n sidebarHelpIcon,\n searchBox,\n searchInput,\n searchIcon,\n toggleIconBox,\n toggleIconBoxActive,\n toggleIcon,\n arrowButton,\n previewMode,\n}\n","import { Box, Flex, Text } from '@vtex/brand-ui'\nimport MethodCategory from 'components/method-category'\nimport { Dispatch, SetStateAction, useContext, useState } from 'react'\n\nimport styles from './styles'\nimport { MethodType } from 'utils/typings/types'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\n\ntype MethodFilter = {\n name: string\n active: boolean\n}\n\ninterface MethodButtonProps {\n methodFilter: MethodFilter\n}\n\ninterface SectionFilterProps {\n methodFilterList: MethodFilter[]\n setMethodFilter: Dispatch>\n}\n\nconst SectionFilter = ({\n methodFilterList,\n setMethodFilter,\n}: SectionFilterProps) => {\n const [activeFilters, setActiveFilters] = useState([])\n const { locale } = useContext(LibraryContext)\n\n const setFilter = (methodFilterChanged: MethodType | null) => {\n if (methodFilterChanged) {\n const index = activeFilters.indexOf(methodFilterChanged)\n index === -1\n ? setActiveFilters([...activeFilters, methodFilterChanged])\n : setActiveFilters(\n activeFilters.filter((filter) => filter !== methodFilterChanged)\n )\n setMethodFilter(\n methodFilterList.map((methodFilter) => {\n if (methodFilter.name === methodFilterChanged)\n methodFilter.active = !methodFilter.active\n return methodFilter\n })\n )\n } else {\n setActiveFilters([])\n setMethodFilter(\n methodFilterList.map((methodFilter) => {\n methodFilter.active = false\n return methodFilter\n })\n )\n }\n }\n\n const MethodButton = ({ methodFilter }: MethodButtonProps) => {\n return (\n setFilter(methodFilter.name as MethodType)}\n >\n \n \n )\n }\n\n return (\n \n \n {messages[locale]['api_reference_sidebar_filter']}\n \n \n {methodFilterList.map((methodFilter) => (\n \n ))}\n {activeFilters.length > 1 && (\n setFilter(null)} sx={styles.clear}>\n {messages[locale]['api_reference_sidebar_filter_clear']}\n \n )}\n \n \n )\n}\n\nexport default SectionFilter\n","import { Flex, Text, SxStyleProp } from '@vtex/brand-ui'\nimport { categoryStyle, categoryText, closeCategoryStyle } from './functions'\nimport styles from './styles'\nimport CloseFilterIcon from 'components/icons/close-filter-icon'\nimport { MethodType } from 'utils/typings/types'\n\nexport interface MethodCategoryProps {\n method: MethodType\n active: boolean\n origin: 'sidebar' | 'search' | 'filter' | 'pagination'\n sx?: SxStyleProp\n}\n\nconst MethodCategory = ({\n method,\n active,\n origin,\n sx,\n}: MethodCategoryProps) => {\n return (\n \n {categoryText(method, origin)}\n {origin === 'filter' && active && (\n \n )}\n \n )\n}\n\nexport default MethodCategory\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst container: SxStyleProp = {\n border: '1px solid #DDDDDD',\n background: '#F4F4F4',\n borderRadius: '2px',\n width: '24px',\n height: '24px',\n alignItems: 'center',\n justifyContent: 'center',\n}\n\nconst text: SxStyleProp = {\n fontWeight: '600',\n fontSize: '12px',\n}\n\nconst closeIcon: SxStyleProp = {\n minWidth: '12px',\n minHeight: '12px',\n height: '12px',\n width: '12px',\n ml: '4px',\n}\n\nexport default {\n container,\n text,\n closeIcon,\n}\n","import { SxStyleProp } from '@vtex/brand-ui'\nimport { MethodType } from 'utils/typings/unionTypes'\n\nimport styles from './styles'\n\nexport const methodsColors = {\n POST: {\n border: '1px solid #7CBBEA',\n color: '#2978B5',\n background: '#DEECF7',\n },\n GET: {\n border: '1px solid #83D187',\n color: '#38853C',\n background: '#DFF1E0',\n },\n PUT: {\n border: '1px solid #F5AE70',\n color: '#D56A00',\n background: '#FFEBD7',\n },\n DELETE: {\n border: '1px solid #F49494',\n color: '#CC3D3D',\n background: '#F8E3E3',\n },\n PATCH: {\n border: '1px solid #afa871',\n color: '#6C6314',\n background: '#e9e7da',\n },\n}\n\nexport const categoryStyle = (\n method: MethodType,\n active: boolean,\n sx?: SxStyleProp\n): SxStyleProp => {\n const categoryColors = methodsColors[method] || {\n border: '1px solid #F49494',\n color: '#CC3D3D',\n background: '#F8E3E3',\n }\n\n const categoryStyle: SxStyleProp = active\n ? {\n ...styles.container,\n ...categoryColors,\n ...sx,\n ':hover': {\n '.filter-close-button': {\n rect: {\n fill: categoryColors.color,\n },\n path: {\n stroke: '#DEECF7',\n },\n },\n },\n }\n : {\n ...styles.container,\n color: categoryColors.color,\n ...sx,\n }\n\n return categoryStyle\n}\n\nexport const categoryText = (method: MethodType, origin: string): string => {\n const textPascalCase = method[0] + method.slice(1).toLowerCase()\n if (origin == 'filter') return textPascalCase\n return textPascalCase.slice(0, 2)\n}\n\nexport const closeCategoryStyle = (method: MethodType) => {\n const categoryColors = methodsColors[method]\n const categoryStyle: SxStyleProp = {\n ...styles.closeIcon,\n rect: {\n fill: 'transparent',\n },\n path: {\n stroke: categoryColors.color,\n },\n }\n\n return categoryStyle\n}\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst CloseFilterIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default CloseFilterIcon\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst container: SxStyleProp = {\n px: '17px',\n paddingTop: '6px',\n borderBottom: '1px solid #E7E9EE',\n paddingBottom: '16px',\n mb: '24px',\n}\n\nconst text: SxStyleProp = {\n mb: '8px',\n}\n\nconst category: SxStyleProp = {\n mr: '8px',\n px: '4px',\n width: 'auto',\n cursor: 'pointer',\n ':hover': {\n borderWidth: '2px',\n },\n}\n\nconst clear: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n color: 'muted.0',\n fontSize: '12px',\n cursor: 'pointer',\n ':hover': {\n color: '#000711',\n },\n}\n\nexport default {\n container,\n text,\n category,\n clear,\n}\n","import { useRouter } from 'next/router.js'\nimport React, { Fragment, useContext, useEffect } from 'react'\nimport {\n Box,\n Flex,\n Link,\n Button,\n IconCaret,\n IconExternalLink,\n} from '@vtex/brand-ui'\n\nimport MethodCategory from 'components/method-category'\n\nimport { styleByLevelNormal, textStyle } from './functions'\nimport styles from './styles'\nimport { MethodType } from 'utils/typings/types'\nimport { LibraryContext } from 'utils/context/libraryContext'\n\nexport interface SidebarElement {\n name: string | { en: string; pt: string; es: string }\n slug: string | { en: string; pt: string; es: string }\n origin: string\n type: string\n method?: MethodType\n endpoint?: string\n children: SidebarElement[]\n /** When true, the category starts expanded instead of collapsed. */\n defaultOpen?: boolean\n}\n\nexport interface SidebarProps {\n slugPrefix?: string\n items: SidebarElement[]\n subItemLevel: number\n}\n\nconst SidebarElements = ({ slugPrefix, items, subItemLevel }: SidebarProps) => {\n const {\n isEditorPreview,\n activeSidebarElement,\n sidebarElementStatus,\n toggleSidebarElementStatus,\n openSidebarElement,\n sidebarDataMaster,\n locale,\n } = useContext(LibraryContext)\n const router = useRouter()\n\n useEffect(() => {\n items?.forEach((item) => {\n const slug = typeof item.slug === 'string' ? item.slug : item.slug[locale]\n if (item.defaultOpen && !sidebarElementStatus.has(slug)) {\n openSidebarElement(slug)\n }\n })\n }, [items])\n\n const handleClick = (\n e: { preventDefault: () => void },\n pathSuffix: string,\n slug: string\n ) => {\n e.preventDefault()\n const hasEndpointQuery = router.query.endpoint\n const href = getHref(slugPrefix || '', pathSuffix, slug)\n router.push(href, href, { locale }).then(() => {\n if (hasEndpointQuery) router.reload()\n })\n }\n\n // eslint-disable-next-line\n // @ts-ignore\n const checkDocumentationType = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n sidebarData: any,\n slug: string,\n type: string\n ) => {\n if (\n !sidebarData ||\n (typeof sidebarData !== 'object' && !Array.isArray(sidebarData))\n ) {\n return false\n } else if (sidebarData?.slug == slug && sidebarData?.type == type) {\n return true\n } else if (Array.isArray(sidebarData)) {\n for (let i = 0; i < sidebarData.length; i++) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const result = checkDocumentationType(sidebarData[i], slug, type)\n if (result) {\n return result\n }\n }\n } else {\n for (const k in sidebarData) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const result = checkDocumentationType(sidebarData[k], slug, type)\n if (result) {\n return result\n }\n }\n }\n\n return false\n }\n\n const getHref = (slugPrefix: string, pathSuffix: string, slug: string) => {\n const validLocales = ['pt', 'es']\n const localePrefix =\n locale && validLocales.includes(locale) ? `/${locale}` : ''\n const href =\n slugPrefix === 'docs/api-reference'\n ? `/${slugPrefix}/${slug}/${pathSuffix}`\n : `${localePrefix}/${slugPrefix}/${slug}`\n return href.replaceAll('//', '/')\n }\n\n const ElementRoot = ({\n slug,\n name,\n method,\n endpoint,\n children,\n }: SidebarElement) => {\n const localizedName: string = typeof name === 'string' ? name : name[locale]\n const localizedSlug: string = typeof slug === 'string' ? slug : slug[locale]\n const isExpandable = children.length > 0\n const pathSuffix = method ? `#${method.toLowerCase()}-${endpoint}` : ''\n const activeItem = method ? `${localizedSlug}${pathSuffix}` : localizedSlug\n return (\n \n \n {isExpandable && (\n (\n \n )}\n onClick={() => toggleSidebarElementStatus(localizedSlug)}\n />\n )}\n {!checkDocumentationType(\n sidebarDataMaster,\n localizedSlug,\n 'category'\n ) &&\n !checkDocumentationType(sidebarDataMaster, localizedSlug, 'link') ? (\n void }) => {\n if (!isEditorPreview) {\n handleClick(e, pathSuffix, localizedSlug)\n }\n toggleSidebarElementStatus(activeItem)\n }}\n href={getHref(slugPrefix || '', pathSuffix, localizedSlug)}\n target={isEditorPreview === true ? '_blank' : '_self'}\n locale={locale}\n >\n {method && (\n \n )}\n {localizedName}\n \n ) : checkDocumentationType(\n sidebarDataMaster,\n localizedSlug,\n 'link'\n ) ? (\n \n \n {localizedName}\n \n ) : (\n {\n toggleSidebarElementStatus(localizedSlug)\n }}\n >\n {method && (\n \n )}\n {localizedName}\n \n )}\n \n \n )\n }\n\n const ElementChildren = ({ slug, children }: SidebarElement) => {\n const isExpandable = children.length > 0\n // const newPathPrefix =\n // slugPrefix === 'api-reference' ? `/api-reference/${slug}` : slugPrefix\n\n const localizedSlug: string = typeof slug === 'string' ? slug : slug[locale]\n return isExpandable &&\n sidebarElementStatus.has(localizedSlug) &&\n sidebarElementStatus.get(localizedSlug) ? (\n \n \n \n ) : null\n }\n\n return (\n \n {items?.map((item, index) => {\n const key =\n typeof item.slug === 'string'\n ? String(item.slug) + String(index)\n : String(item.slug[locale]) + String(index)\n const slug =\n typeof item.slug === 'string'\n ? `${item.slug}`\n : `${item.slug[locale]}`\n\n return (\n \n \n \n \n \n {subItemLevel == 0 ? (\n \n
\n
\n ) : null}\n
\n )\n })}\n
\n )\n}\n\nexport default SidebarElements\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst elementContainer: SxStyleProp = {\n maxWidth: '265px',\n background: '#FFFFFF',\n ':hover': {\n background: '#F8F7FC',\n a: {\n color: '#142032',\n '& > :first-of-type': {\n borderWidth: '2px',\n },\n },\n },\n}\n\nconst elementText: SxStyleProp = {\n color: 'muted.0',\n fontSize: '14px',\n lineHeight: '20px',\n fontWeight: '400',\n textAlign: 'initial',\n paddingBlock: '7px',\n display: 'flex',\n alignItems: 'center',\n cursor: 'pointer',\n}\n\nconst elementActive: SxStyleProp = {\n ...elementText,\n color: '#D71D55 !important',\n}\n\nconst arrowIcon: SxStyleProp = {\n padding: '0',\n color: 'muted.1',\n height: '34px',\n}\n\nconst arrowIconActive: SxStyleProp = {\n ...arrowIcon,\n color: '#D71D55',\n}\n\nconst elementButton: SxStyleProp = {\n textTransform: 'initial',\n fontVariationSettings: 'unset',\n padding: '0',\n margin: '0',\n textDecoration: 'none !important',\n}\n\nconst sectionDivider: SxStyleProp = {\n hr: {\n border: '1px solid #E7E9EE',\n borderTop: 'none',\n },\n}\n\nconst methodBox: SxStyleProp = {\n mr: '10px',\n}\n\nexport default {\n elementContainer,\n elementText,\n elementActive,\n arrowIcon,\n arrowIconActive,\n elementButton,\n sectionDivider,\n methodBox,\n}\n","import { SxStyleProp } from '@vtex/brand-ui'\nimport styles from './styles'\n\nexport const styleByLevelNormal = (level: number, icon: boolean) => {\n const ml = 8 + (icon ? (level - 1) * 20 + 6 : (level - 1) * 20 + 14)\n const borderLeft = icon ? 'none' : level >= 2 ? '1px solid #E7E9EE' : ''\n const normal: SxStyleProp = {\n marginLeft: `${ml}px`,\n borderLeft,\n }\n\n return normal\n}\n\nexport const textStyle = (active: boolean, icon: boolean) => {\n const ml = icon ? '4px' : '16px'\n if (active) {\n const textStyleActive: SxStyleProp = {\n ...styles.elementActive,\n ml,\n }\n return textStyleActive\n }\n const textStyle: SxStyleProp = {\n ...styles.elementText,\n ml,\n }\n\n return textStyle\n}\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst SearchIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default SearchIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst SideBarToggleIcon = (props: IconProps) => (\n \n \n \n \n \n \n)\n\nexport default SideBarToggleIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst ArrowLeftIcon = (props: IconProps) => (\n \n {' '}\n \n \n \n)\n\nexport default ArrowLeftIcon\n","import {\n Header,\n HamburgerMenu as VtexHamburgerMenu,\n Box,\n IconCaret,\n Button,\n} from '@vtex/brand-ui'\nimport styles from './styles'\n\nimport { useContext } from 'react'\nimport DocumentationCard from 'components/documentation-card'\nimport SidebarSection, { SidebarSectionProps } from 'components/sidebar-section'\nimport { updateOpenPage } from 'utils/sidebar-utils'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport SearchInput from 'components/search-input'\n\nexport interface HamburgerMenuProps {\n /** Array that contains the name of the sections in the menu that should be expanded. */\n parentsArray?: string[]\n}\n\n/** Hamburger Menu component, the menu uses the sidebar components internally, but it is only visible on the smaller breakpoints. */\nconst HamburgerMenu = ({ parentsArray = [] }: HamburgerMenuProps) => {\n const context = useContext(LibraryContext)\n const {\n sidebarDataMaster,\n sidebarSectionHidden,\n activeSectionName,\n setActiveSectionName,\n setSidebarSectionHidden,\n hamburguerSections,\n } = context\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const isDocument = (sections: any, documentID: string) => {\n let isDoc = false\n\n if (Array.isArray(sections)) {\n isDoc = sections.find((section) => section.documentation === documentID)\n }\n\n return isDoc\n }\n\n updateOpenPage({ parentsArray, context })\n\n return (\n \n \n \n \n \n \n \n \n {hamburguerSections.map((section, id) => (\n 0\n ? styles.updatesContainer\n : styles.documentationContainer\n }\n key={id}\n data-cy=\"dropdown-menu-first-section\"\n >\n {section.map((card) => (\n \n \n {isDocument(sidebarDataMaster, card.id) ? (\n }\n sx={\n activeSectionName === card.id &&\n !sidebarSectionHidden\n ? styles.arrowIconActive\n : styles.arrowIcon\n }\n onClick={() => {\n setActiveSectionName(card.id)\n setSidebarSectionHidden(false)\n }}\n />\n ) : null}\n \n ))}\n \n ))}\n \n \n {activeSectionName ? (\n \n section.documentation === activeSectionName\n )\n : null)}\n />\n ) : null}\n \n \n \n \n \n )\n}\n\nexport default HamburgerMenu\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst menuContainer: SxStyleProp = {\n display: 'flex',\n width: 'max-content',\n}\n\nconst cardContainer: SxStyleProp = {\n display: 'flex',\n flexDirection: 'column',\n width: '100vw',\n overflowY: 'scroll',\n height: 'calc(100vh - 5rem)',\n}\n\nconst sideMenuContainer: SxStyleProp = {\n backgroundColor: '#ffff',\n height: 'calc(100vh - 5rem)',\n width: '100vw',\n overflowY: 'auto',\n overflowX: 'hidden',\n transform: 'translate(0)',\n transition: 'transform .5s cubic-bezier(.4,0,.2,1)',\n}\n\nconst hamburgerContainer: SxStyleProp = {\n display: ['block', 'block', 'block', 'none'],\n backgroundColor: '#ffff',\n width: '100%',\n '.menuHidden': {\n transform: 'translate(-100%)',\n },\n}\n\n// eslint-disable-next-line prettier/prettier\n\nconst hamburgerSearchContainer: SxStyleProp = {\n display: 'flex',\n justifyContent: 'center',\n paddingBlock: '18px',\n height: 'auto',\n}\n\nconst documentationContainer: SxStyleProp = {\n px: '16px',\n paddingBottom: '8px',\n}\n\nconst updatesContainer: SxStyleProp = {\n px: '16px',\n paddingTop: '8px',\n borderRadius: '0px 0px 8px 8px',\n borderTop: '1px solid #E7E9EE',\n}\n\nconst innerHambugerContainer: SxStyleProp = {\n padding: '0px',\n position: 'relative',\n overflowX: 'hidden',\n}\n\nconst innerCardContainer: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n}\n\nconst arrowIcon: SxStyleProp = {\n padding: '0',\n height: '50px',\n width: '50px',\n color: 'muted.1',\n}\n\nconst arrowIconActive: SxStyleProp = {\n ...arrowIcon,\n color: '#D71D55',\n}\n\nexport default {\n menuContainer,\n cardContainer,\n sideMenuContainer,\n hamburgerSearchContainer,\n documentationContainer,\n updatesContainer,\n hamburgerContainer,\n innerHambugerContainer,\n innerCardContainer,\n arrowIcon,\n arrowIconActive,\n}\n","import Link from 'next/link.js'\nimport { Box, Flex, Text } from '@vtex/brand-ui'\n\nimport styles from './styles'\nimport { cardContainer, cardTitle, titleContainer } from './functions'\nimport { MouseEventHandler } from 'react'\nimport { DataElement } from 'utils/typings/types'\n\nexport interface DocumentProps extends DataElement {\n title: string\n}\nexport interface CardProps extends DocumentProps {\n containerType: 'dropdown' | 'see-also' | 'mobile'\n onClick?: MouseEventHandler | undefined\n}\nconst DocumentationCard = ({\n title,\n description,\n link,\n containerType,\n Icon,\n onClick,\n}: CardProps) => {\n return (\n \n \n \n \n \n \n {title}\n \n \n \n {description}\n \n \n \n \n )\n}\n\nexport default DocumentationCard\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst cardContainer: SxStyleProp = {\n my: ['16px', '16px', '16px', '16px', '16px', '16px', '24px'],\n padding: '8px',\n cursor: 'pointer',\n ':active, :hover': {\n borderRadius: '4px',\n backgroundColor: '#F8F7FC',\n\n '.description': {\n color: 'muted.0',\n },\n },\n\n ':active .title': {\n color: '#0C1522',\n },\n\n ':hover .title': {\n color: '#000711',\n },\n}\n\nconst titleContainer: SxStyleProp = {\n alignItems: 'center',\n}\n\nconst title: SxStyleProp = {\n ml: '8px',\n color: 'muted.0',\n}\n\nconst description: SxStyleProp = {\n ml: '32px',\n fontSize: '16px',\n lineHeight: '18px',\n color: 'muted.1',\n}\n\nexport default {\n cardContainer,\n description,\n title,\n titleContainer,\n}\n","import { SxStyleProp } from '@vtex/brand-ui'\nimport styles from './styles'\n\nconst cardContainer = (containerType: string) => {\n const containerWidth =\n containerType === 'dropdown'\n ? ['308px', '442px', '444px', '480px']\n : containerType === 'mobile'\n ? '100%'\n : ['324px', '544px', '544px', '544px', '544px', '720px', '1400px']\n\n const textWidth =\n containerType === 'dropdown'\n ? ['276px', '410px', '412px', '432px']\n : containerType === 'mobile'\n ? '90%'\n : ['276px', '496px', '496px', '496px', '496px', '672px', '1352px']\n\n const cardContainer: SxStyleProp = {\n ...styles.cardContainer,\n width: containerWidth,\n\n '.title, .description': {\n width: textWidth,\n },\n }\n\n return cardContainer\n}\n\nconst titleContainer = (containerType: string) => {\n const marginBottom =\n containerType === 'dropdown' ? ['5px', '5px', '5px', '1px'] : '8px'\n\n const titleContainer: SxStyleProp = {\n ...styles.titleContainer,\n marginBottom,\n }\n\n return titleContainer\n}\n\nconst cardTitle = (containerType: string) => {\n const titleAttributes =\n containerType === 'see-also'\n ? {\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n fontSize: '18px',\n lineHeight: '24px',\n }\n : {\n fontSize: '16px',\n lineHeight: '22px',\n }\n\n const cardTitle: SxStyleProp = {\n ...styles.title,\n ...titleAttributes,\n }\n\n return cardTitle\n}\n\nexport { cardContainer, cardTitle, titleContainer }\n","import { Configure, InstantSearch } from 'react-instantsearch-dom'\nimport SearchBox from './search-box'\nimport Results from './results-box'\nimport { Box } from '@vtex/brand-ui'\nimport { useContext, useRef, useState } from 'react'\nimport useClickOutside from 'utils/hooks/useClickOutside'\nimport { searchClient, searchIndex } from 'utils/config/search-config'\nimport { LibraryContext } from 'utils/context/libraryContext'\n\nexport default function SearchInput() {\n const { locale } = useContext(LibraryContext)\n const [focusOut, setfocusOut] = useState<{ modaltoggle: boolean }>({\n modaltoggle: true,\n })\n const resultsBox = useRef()\n useClickOutside(resultsBox, setfocusOut)\n\n const changeFocus = (value: boolean) => {\n setfocusOut({ modaltoggle: value })\n }\n\n return (\n \n {searchClient.instantSearchConfigs && (\n \n )}\n {searchClient.useLanguageFilter && (\n \n )}\n {!searchClient.useLanguageFilter && }\n setfocusOut({ modaltoggle: true })} ref={resultsBox}>\n \n {focusOut.modaltoggle && }\n \n \n )\n}\n","import { useRef, KeyboardEvent, useContext } from 'react'\nimport { useRouter } from 'next/router.js'\nimport { Flex } from '@vtex/brand-ui'\nimport { connectSearchBox } from 'react-instantsearch-dom'\nimport { SearchBoxProvided } from 'react-instantsearch-core'\n\nimport SearchIcon from 'components/icons/search-icon'\nimport styles from './styles'\nimport { messages } from 'utils/get-message'\nimport { LibraryContext } from 'utils/context/libraryContext'\n\ninterface SearchBoxProps extends SearchBoxProvided {\n changeFocus: (value: boolean) => void\n}\n\nconst SearchBoxComponent = ({\n currentRefinement,\n refine,\n changeFocus,\n}: SearchBoxProps) => {\n const router = useRouter()\n const inputRef = useRef(null)\n const { locale } = useContext(LibraryContext)\n\n const handleClick = () => {\n if (inputRef.current != null) inputRef.current.focus()\n }\n\n const keyPressed = (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n router.push({\n pathname: '/search',\n query: { keyword: inputRef.current?.value },\n })\n inputRef.current?.blur()\n changeFocus(false)\n }\n }\n\n return (\n \n \n keyPressed(e)}\n onChange={(e) => refine(e.currentTarget.value)}\n />\n \n )\n}\n\nconst SearchBox = connectSearchBox(SearchBoxComponent)\n\nexport default SearchBox\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst resultsOuterContainer: SxStyleProp = {\n position: 'relative',\n}\n\nconst resultsInnerContainer: SxStyleProp = {\n top: 0,\n position: 'absolute',\n width: ['288px', '458px', '458px', '288px', '416px', '544px'],\n border: '1px solid #B9B9B9',\n borderRadius: '0px 0px 4px 4px',\n background: '#FFFFFF',\n}\n\nconst resultsBox: SxStyleProp = {\n padding: '16px',\n}\n\nconst seeAll: SxStyleProp = {\n padding: '24px',\n borderTop: '1px solid #E7E9EE',\n color: 'muted.0',\n cursor: 'pointer',\n ':hover': {\n background: '#F8F7FC',\n borderTop: '1px solid #d0cdcd',\n },\n}\n\nconst hitBox: SxStyleProp = {\n padding: '8px',\n cursor: 'pointer',\n ':active, :hover': {\n backgroundColor: '#F8F7FC',\n borderRadius: '4px',\n '.hit-content-title': {\n color: '#000711',\n },\n '.hit-icon': {\n '> path': {\n stroke: '#000711',\n },\n },\n },\n}\n\nconst hitIcon: SxStyleProp = {\n width: '16px',\n height: '16px',\n marginRight: '8px',\n}\n\nconst hitContentContainer: SxStyleProp = {\n width: '100%',\n minWidth: 0,\n overflow: 'hidden',\n}\n\nconst snippetText: SxStyleProp = {\n overflowWrap: 'break-word',\n wordBreak: 'break-word',\n overflow: 'hidden',\n display: '-webkit-box',\n WebkitBoxOrient: 'vertical',\n}\n\nconst hitContent: SxStyleProp = {\n color: 'muted.0',\n fontSize: ['14px', '16px'],\n lineHeight: ['20px', '22px'],\n width: '100%',\n minWidth: 0,\n ...snippetText,\n WebkitLineClamp: 4,\n}\n\nconst hitContentSmall: SxStyleProp = {\n color: 'muted.0',\n fontSize: ['14px', '16px'],\n lineHeight: ['20px', '22px'],\n width: '100%',\n minWidth: 0,\n ...snippetText,\n WebkitLineClamp: 2,\n}\n\nconst alignCenter: SxStyleProp = {\n alignItems: 'center',\n}\n\nconst hitBreadCrumb: SxStyleProp = {\n color: 'muted.1',\n fontSize: '12px',\n lineHeight: '16px',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n}\n\nconst hitBreadCrumbIn: SxStyleProp = {\n ...hitBreadCrumb,\n minWidth: 'fit-content',\n}\n\nconst hitBreadCrumbArrow: SxStyleProp = {\n width: '16px',\n height: '16px',\n color: 'muted.2',\n}\n\nconst searchInput: SxStyleProp = {\n width: '76px',\n background: 'none',\n border: '#F4F4F4',\n color: '#545454',\n fontSize: ['14px'],\n flex: 0,\n transition: 'flex 0.3s',\n}\n\nconst searchIcon: SxStyleProp = {\n minWidth: '16px',\n minHeight: '16px',\n width: '16px',\n mr: '8px',\n flex: 0,\n maxWidth: 'fit-content',\n}\n\nconst searchContainer: SxStyleProp = {\n paddingLeft: '12px',\n alignItems: 'center',\n justifyContent: 'center',\n background: '#F4F4F4',\n width: '288px',\n height: '40px',\n borderRadius: '4px',\n transition: 'all 0.3s ease-out',\n cursor: 'pointer',\n ':hover': {\n transition: 'all 0.3s ease-out',\n width: ['288px', '458px', '458px', '288px', '416px', '544px'],\n border: '1px solid #3B3B3B',\n },\n ':focus-within': {\n background: '#FFFFFF',\n width: ['288px', '458px', '458px', '288px', '416px', '544px'],\n transition: 'all 0.3s ease-out',\n border: '1px solid #3B3B3B',\n boxShadow: '0px 0px 0px 1px #FFFFFF, 0px 0px 0px 3px #B9B9B9',\n flex: 'auto',\n '.searchComponent': {\n flex: '1 !important',\n },\n },\n '.searchComponent': {\n ':placeholder-shown': {\n width: '76px',\n },\n ':not(:placeholder-shown)': {\n flex: '1 !important',\n },\n },\n}\n\nconst noResults: SxStyleProp = {\n justifyContent: 'center',\n alignContent: 'center',\n padding: '12px',\n}\n\nconst hitContentHighlighted: SxStyleProp = {\n ...hitContent,\n color: '#4A596B',\n width: 'auto',\n background: '#FFE0EF',\n}\n\nexport default {\n resultsOuterContainer,\n resultsInnerContainer,\n resultsBox,\n seeAll,\n hitBox,\n hitIcon,\n hitContentContainer,\n hitContent,\n hitContentSmall,\n hitBreadCrumb,\n hitBreadCrumbIn,\n hitBreadCrumbArrow,\n searchInput,\n searchIcon,\n searchContainer,\n alignCenter,\n noResults,\n hitContentHighlighted,\n}\n","import { useRouter } from 'next/router.js'\nimport Link from 'next/link.js'\nimport {\n connectStateResults,\n connectHitInsights,\n} from 'react-instantsearch-dom'\nimport {\n Hit,\n StateResultsProvided,\n WrappedInsightsClient,\n} from 'react-instantsearch-core'\nimport aa from 'search-insights'\nimport { Box, Flex, IconCaret, Text } from '@vtex/brand-ui'\n\nimport {\n getBreadcrumbs,\n getIconFromSection,\n getRelativeURL,\n} from 'utils/search-utils'\nimport CustomHighlight from './customHighlight'\nimport styles from './styles'\nimport { useContext } from 'react'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\n\ninterface HitProps {\n hit: Hit\n insights: WrappedInsightsClient\n}\n\ninterface HitsBoxProps extends StateResultsProvided {\n changeFocus: (value: boolean) => void\n}\n\nconst Hit2 = ({ hit, insights }: HitProps) => {\n const { sidebarSections } = useContext(LibraryContext)\n const breadcrumbsList = getBreadcrumbs(hit)\n const DocIcon = getIconFromSection(sidebarSections, hit.doctype)\n return (\n \n \n insights('clickedObjectIDsAfterSearch', {\n eventName: 'Search in top bar',\n objectIDs: [hit.objectID],\n })\n }\n >\n \n \n {DocIcon && }\n \n \n \n \n \n {`In ${hit.doctype}`}\n {breadcrumbsList.length > 0 && (\n \n )}\n {breadcrumbsList.map((filter: string, index: number) => (\n \n {filter}\n {index < breadcrumbsList.length - 1 ? (\n \n ) : null}\n \n ))}\n \n \n \n \n )\n}\n\nconst HitWithInsights = connectHitInsights(aa)(Hit2)\n\nconst HitsBox = connectStateResults(\n ({ searchState, searchResults, changeFocus }) => {\n const router = useRouter()\n const { locale } = useContext(LibraryContext)\n\n const seeAllSubmit = (keyword: string) => {\n router.push({\n pathname: '/search',\n query: { keyword },\n })\n changeFocus(false)\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const setQueryIDAndPosition = (hit: Hit, index: number): any => {\n return {\n ...hit,\n __queryID: searchResults.queryID || '',\n __position: searchResults.hitsPerPage * searchResults.page + index + 1,\n }\n }\n\n return (\n <>\n {searchResults && (\n \n \n \n {searchResults.hits.map(\n (searchResult, index) =>\n index < 7 && (\n changeFocus(false)}\n >\n \n \n )\n )}\n \n {searchResults.hits.length > 7 && (\n seeAllSubmit(searchState.query || '')}\n >\n \n {messages[locale]['search_input.see_all'] || 'See all results'}\n \n \n )}\n {!searchResults.hits.length && (\n \n \n {messages[locale]['search_input.empty'] || 'No results found. Try different search terms.'}\n \n \n )}\n \n \n )}\n \n )\n }\n)\n\nexport default HitsBox\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst APIGuidesIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n)\n\nexport default APIGuidesIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst APIReferenceIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default APIReferenceIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst AppDevelopmentIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default AppDevelopmentIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst ReleaseNotesIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n)\n\nexport default ReleaseNotesIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst StorefrontDevelopmentIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n)\n\nexport default StorefrontDevelopmentIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst VTEXIOAppsIcon = (props: IconProps) => (\n \n \n \n \n \n \n)\n\nexport default VTEXIOAppsIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst TroubleshootingIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default TroubleshootingIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst AddedIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default AddedIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst DeprecatedIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default DeprecatedIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst FixedIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default FixedIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst ImprovedIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default ImprovedIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst RemovedIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default RemovedIcon\n","import { Hit } from 'react-instantsearch-core'\n\nimport APIGuidesIcon from 'components/icons/api-guides-icon'\nimport APIReferenceIcon from 'components/icons/api-reference-icon'\nimport AppDevelopmentIcon from 'components/icons/app-development-icon'\nimport ReleaseNotesIcon from 'components/icons/release-notes-icon'\nimport StorefrontDevelopmentIcon from 'components/icons/storefront-development-icon'\nimport VTEXIOAppsIcon from 'components/icons/vtex-io-apps-icon'\nimport TroubleshootingIcon from 'components/icons/troubleshooting-icon'\nimport { IconComponent, Section } from './typings/types'\nimport AddedIcon from 'components/icons/added-icon'\nimport DeprecatedIcon from 'components/icons/deprecated-icon'\nimport FixedIcon from 'components/icons/fixed-icon'\nimport ImprovedIcon from 'components/icons/improved-icon'\nimport RemovedIcon from 'components/icons/removed-icon'\n\nexport const getBreadcrumbs = (hit: Hit) => {\n const breadcrumbs: string[] = []\n if (hit.doctype === 'API Reference' && hit.doccategory)\n breadcrumbs.push(hit.doccategory)\n breadcrumbs.push(hit.doctitle)\n return breadcrumbs\n}\n\nexport const getRelativeURL = (url: string) => {\n const relativeURL = url.replace(/^(?:\\/\\/|[^/]+)*\\//, '')\n return '/' + relativeURL\n}\n\n/** Display cap for tab counts; values at or above this render as \"999+\". */\nexport const HYBRID_SEARCH_COUNT_CAP = 1000\n\nexport function formatSearchTabCount(\n count: number | undefined\n): string | undefined {\n if (count === undefined) return undefined\n if (count >= HYBRID_SEARCH_COUNT_CAP) return '999+'\n return String(count)\n}\n\ninterface IconsI {\n name: string\n Icon: IconComponent\n}\n\nconst iconsMap: IconsI[] = [\n {\n Icon: APIGuidesIcon,\n name: 'Guides',\n },\n {\n Icon: APIReferenceIcon,\n name: 'API Reference',\n },\n {\n Icon: AppDevelopmentIcon,\n name: 'App Development',\n },\n {\n Icon: StorefrontDevelopmentIcon,\n name: 'Storefront Development',\n },\n {\n Icon: VTEXIOAppsIcon,\n name: 'VTEX IO Apps',\n },\n {\n Icon: TroubleshootingIcon,\n name: 'Troubleshooting',\n },\n {\n Icon: ReleaseNotesIcon,\n name: 'Release Notes',\n },\n]\n\nexport const getIcon = (name: string) => {\n return iconsMap.find((icon) => icon.name === name)?.Icon\n}\n\nexport const getIconFromSection = (sections: Section[][], id: string) => {\n return sections.flat().find((section) => section.id === id)?.Icon\n}\n\nexport type ActionType =\n | 'added'\n | 'deprecated'\n | 'fixed'\n | 'improved'\n | 'removed'\nexport interface Action {\n type: ActionType\n title: string\n Icon: IconComponent\n}\n\nconst actions: Action[] = [\n {\n type: 'added',\n title: 'Added',\n Icon: AddedIcon,\n },\n {\n type: 'deprecated',\n title: 'Deprecated',\n Icon: DeprecatedIcon,\n },\n {\n type: 'fixed',\n title: 'Fixed',\n Icon: FixedIcon,\n },\n {\n type: 'improved',\n title: 'Improved',\n Icon: ImprovedIcon,\n },\n {\n type: 'removed',\n title: 'Removed',\n Icon: RemovedIcon,\n },\n]\n\nexport const getAction = (actionType: ActionType): Action => {\n return actions.find((action) => action.type === actionType) as Action\n}\n\nexport const getTitleById = (sections: Section[][], id: string) => {\n return sections.flat().find((item) => item.id === id)?.title || id\n}\n","import { useEffect, useRef, useState } from 'react'\nimport { connectHighlight } from 'react-instantsearch-dom'\nimport { HighlightProps, Hit } from 'react-instantsearch-core'\nimport { Flex, Text } from '@vtex/brand-ui'\nimport styles from './styles'\n\ninterface HighLightPartsProps {\n index: number\n isBetween: boolean\n size: number\n}\n\ninterface HitHighlightProps {\n value: string\n isHighlighted: boolean\n}\ninterface CustomHighlightProps extends HighlightProps {\n searchPage?: boolean\n}\n\nconst Highlight = ({\n highlight,\n attribute,\n hit,\n searchPage,\n}: CustomHighlightProps) => {\n const [parsedHit, setParsedHit] = useState([])\n const textContainer = useRef(null)\n const hitHighlights: HitHighlightProps[] = highlight({\n highlightProperty: '_highlightResult',\n attribute: hit.type != 'content' ? `hierarchy.${hit.type}` : attribute,\n hit,\n })\n const maxDescriptionSize = 700\n const ellipsedContent: HitHighlightProps[] = []\n if (searchPage) {\n let charCount = 0\n hitHighlights.forEach((part) => {\n if (maxDescriptionSize - charCount <= 0) return\n if (part.value.length + charCount >= maxDescriptionSize) {\n part.value =\n part.value.slice(0, maxDescriptionSize - charCount - 3) + '...'\n }\n charCount += part.value.length\n ellipsedContent.push(part)\n })\n }\n\n useEffect(() => {\n if (searchPage) return\n const titleSize = textContainer.current\n ? textContainer.current.offsetWidth / 7.75\n : 40\n\n const highlightParts: HighLightPartsProps[] = []\n let highlightCount = 0,\n highlightLength = 0\n\n hitHighlights.forEach((match: HitHighlightProps, index: number) => {\n const isBetween =\n index > 0 && index < hitHighlights.length - 1 ? true : false\n if (match.isHighlighted) {\n if (isBetween) highlightCount++\n highlightCount++\n highlightLength += match.value.length\n } else {\n highlightParts.push({\n index,\n isBetween,\n size: match.value.length,\n })\n }\n })\n\n highlightParts.sort(\n (a: HighLightPartsProps, b: HighLightPartsProps) => a.size - b.size\n )\n\n let sizeRemaining = titleSize - highlightLength\n let size = sizeRemaining / (highlightCount || 1)\n\n highlightParts.forEach((match: HighLightPartsProps) => {\n const value = hitHighlights[match.index].value\n if (match.isBetween) {\n if (match.size >= size * 2) {\n const reticences = (size * 2 - 3) / 2\n hitHighlights[match.index].value =\n value.slice(0, reticences) +\n '...' +\n value.slice(value.length - reticences)\n sizeRemaining -= size * 2\n } else {\n sizeRemaining -= match.size\n }\n highlightCount -= 2\n } else {\n if (match.size >= size) {\n if (match.index === 0)\n hitHighlights[match.index].value =\n '...' + value.slice(value.length - (size - 3))\n else\n hitHighlights[match.index].value = value.slice(0, size - 3) + '...'\n sizeRemaining -= size\n } else {\n sizeRemaining -= match.size\n }\n highlightCount -= 1\n }\n size = sizeRemaining / highlightCount\n hitHighlights[match.index].value = hitHighlights[\n match.index\n ].value.replace(/\\s+/g, '\\u00A0')\n })\n setParsedHit(hitHighlights)\n }, [hit, textContainer.current])\n\n return (\n \n \n {(searchPage ? ellipsedContent : parsedHit).map(\n (part: HitHighlightProps, index: number) =>\n part.isHighlighted ? (\n \n {part.value}\n \n ) : (\n part.value\n )\n )}\n \n \n )\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ninterface HighlightPassedThru {\n hit: Hit\n attribute: string\n highlightProperty?: string | undefined\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst connectedHighlight: React.ComponentClass> =\n connectHighlight(Highlight)\n\nexport default connectedHighlight\n","import algoliasearch, { AlgoliaSearchOptions } from 'algoliasearch/lite'\nimport aa from 'search-insights'\nimport {\n MultipleQueriesQuery,\n MultipleQueriesResponse,\n} from '@algolia/client-search'\nimport { stripMarkdownForSnippet } from '../string-utils'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport let searchClient: any = {}\nexport let searchIndex = ''\nexport let hitsPerPage = 10 // Default page size for search results\n\nexport interface AlgoliaConfig {\n appId: string\n apiKey: string\n index: string\n algoliaOptions?: AlgoliaSearchOptions\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n customOptions?: any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n instantSearchConfigs?: any\n useLanguageFilter?: boolean\n}\n\nexport interface HybridSearchConfig {\n apiEndpoint: string\n source: 'help-center' | 'dev-portal'\n defaultLimit?: number\n itemsPerPage?: number // Alias for defaultLimit (for backward compatibility)\n useLanguageFilter?: boolean\n /**\n * Max number of results to request from the upstream API in a single call.\n * The Hybrid Search upstream does not support pagination, so the adapter\n * fetches a large slice once and paginates / filters client-side.\n * Defaults to 100 (the upstream HS_MAX_LIMIT).\n */\n upstreamFetchSize?: number\n /**\n * TTL (ms) for the in-memory response cache keyed by query+locale.\n * A short TTL is enough to let `connectInfiniteHits` page through the\n * results without re-fetching the upstream on every refineNext call.\n * Defaults to 60_000 ms.\n */\n cacheTtlMs?: number\n}\n\nexport type SearchBackendConfig =\n | { backend: 'algolia'; algolia: AlgoliaConfig }\n | { backend: 'hybrid'; hybrid: HybridSearchConfig; index: string }\n\nconst createAlgoliaClient = (config: AlgoliaConfig) => {\n const {\n apiKey,\n appId,\n index,\n algoliaOptions,\n customOptions,\n instantSearchConfigs,\n useLanguageFilter = true,\n } = config\n searchIndex = index\n\n aa('init', {\n appId: appId || '',\n apiKey: apiKey || '',\n useCookie: false,\n })\n\n aa('getUserToken', null, (err) => {\n if (err) {\n console.error(err)\n return\n }\n })\n\n const algoliaClient = algoliasearch(appId || '', apiKey || '', algoliaOptions)\n\n searchClient = {\n ...algoliaClient,\n ...customOptions,\n instantSearchConfigs,\n useLanguageFilter,\n search(requests: MultipleQueriesQuery[]) {\n if (requests.every(({ params }) => !params?.query)) return\n return algoliaClient.search(requests)\n },\n }\n}\n\n// Upstream hard cap (must match HS_MAX_LIMIT in the API proxy).\nconst HYBRID_UPSTREAM_MAX_LIMIT = 100\n\n/** Fixed Help Center doctype ids (matches helpcenter src/utils/constants.ts). */\nconst HYBRID_DOCTYPE_IDS = [\n 'tracks',\n 'tutorials',\n 'faq',\n 'known-issues',\n 'troubleshooting',\n 'announcements',\n] as const\n\n/** Portal tab id → upstream canonical doctype (matches helpcenter search proxy). */\nconst PORTAL_TO_CANONICAL_DOCTYPE: Record = {\n tutorials: 'tutorial',\n tracks: 'tracks',\n faq: 'faq',\n troubleshooting: 'troubleshooting',\n announcements: 'announcements',\n}\n\ntype HybridDoctypeCounts = Record\n\ntype HybridSearchCountsApiResponse = {\n counts: {\n tracks: number\n tutorial: number\n faq: number\n troubleshooting: number\n announcements: number\n }\n total: number\n}\n\ntype HybridCacheEntry = {\n key: string\n ts: number\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n hits: any[]\n}\n\ntype HybridCountCacheEntry = {\n key: string\n ts: number\n counts: HybridDoctypeCounts\n}\n\ntype HybridDoctypeDeepCacheEntry = {\n key: string\n ts: number\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n hits: any[]\n}\n\nconst createHybridClient = (config: HybridSearchConfig) => {\n const {\n apiEndpoint,\n defaultLimit,\n itemsPerPage,\n useLanguageFilter = true,\n upstreamFetchSize = HYBRID_UPSTREAM_MAX_LIMIT,\n cacheTtlMs = 60_000,\n } = config\n\n // Support both defaultLimit and itemsPerPage (itemsPerPage takes precedence)\n const pageSize = itemsPerPage ?? defaultLimit ?? 10\n hitsPerPage = pageSize\n\n const effectiveUpstreamLimit = clampUpstreamLimit(upstreamFetchSize)\n const cache: HybridCacheEntry[] = []\n const countCache: HybridCountCacheEntry[] = []\n const doctypeDeepCache: HybridDoctypeDeepCacheEntry[] = []\n const deepenPagination = new Map<\n string,\n { lastPage: number; endOffset: number }\n >()\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const getCached = (key: string): any[] | undefined => {\n const now = Date.now()\n for (let i = cache.length - 1; i >= 0; i--) {\n if (now - cache[i].ts > cacheTtlMs) {\n cache.splice(i, 1)\n }\n }\n return cache.find((e) => e.key === key)?.hits\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const setCached = (key: string, hits: any[]) => {\n cache.push({ key, ts: Date.now(), hits })\n while (cache.length > 20) cache.shift()\n }\n\n const getCachedCounts = (key: string): HybridDoctypeCounts | undefined => {\n const now = Date.now()\n for (let i = countCache.length - 1; i >= 0; i--) {\n if (now - countCache[i].ts > cacheTtlMs) {\n countCache.splice(i, 1)\n }\n }\n return countCache.find((e) => e.key === key)?.counts\n }\n\n const setCachedCounts = (key: string, counts: HybridDoctypeCounts) => {\n countCache.push({ key, ts: Date.now(), counts })\n while (countCache.length > 20) countCache.shift()\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const getDoctypeDeepCached = (key: string): any[] | undefined => {\n const now = Date.now()\n for (let i = doctypeDeepCache.length - 1; i >= 0; i--) {\n if (now - doctypeDeepCache[i].ts > cacheTtlMs) {\n doctypeDeepCache.splice(i, 1)\n }\n }\n return doctypeDeepCache.find((e) => e.key === key)?.hits\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const setDoctypeDeepCached = (key: string, hits: any[]) => {\n doctypeDeepCache.push({ key, ts: Date.now(), hits })\n while (doctypeDeepCache.length > 20) doctypeDeepCache.shift()\n }\n\n const countsEndpoint = `${apiEndpoint.replace(/\\/?$/, '')}/counts`\n\n const mapApiCountsToPortal = (\n counts: HybridSearchCountsApiResponse['counts'],\n total: number\n ): HybridDoctypeCounts => ({\n '': total,\n tracks: counts.tracks,\n tutorials: counts.tutorial,\n faq: counts.faq,\n troubleshooting: counts.troubleshooting,\n announcements: counts.announcements,\n 'known-issues': 0,\n })\n\n const fetchDoctypeCounts = async (\n query: string,\n locale: string\n ): Promise => {\n try {\n const url = new URL(countsEndpoint, window.location.origin)\n url.searchParams.set('q', query)\n if (useLanguageFilter && locale) {\n url.searchParams.set('locale', locale)\n }\n\n const response = await fetch(url.toString())\n if (!response.ok) {\n return undefined\n }\n\n const data =\n (await response.json()) as Partial\n const { counts, total } = data\n if (\n !counts ||\n typeof total !== 'number' ||\n typeof counts.tracks !== 'number' ||\n typeof counts.tutorial !== 'number' ||\n typeof counts.faq !== 'number' ||\n typeof counts.troubleshooting !== 'number' ||\n typeof counts.announcements !== 'number'\n ) {\n return undefined\n }\n\n return mapApiCountsToPortal(counts, total)\n } catch {\n return undefined\n }\n }\n\n // Initialize minimal analytics (disabled for hybrid)\n aa('init', {\n appId: 'hybrid-search',\n apiKey: 'none',\n useCookie: false,\n })\n\n searchClient = {\n appId: 'hybrid-search',\n apiKey: 'hybrid',\n useLanguageFilter,\n instantSearchConfigs: null,\n\n async search(\n requests: MultipleQueriesQuery[]\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): Promise | undefined> {\n if (requests.every(({ params }) => !params?.query)) {\n return undefined\n }\n\n try {\n // Find the first request with a non-empty query\n const request =\n requests.find(({ params }) => params?.query) || requests[0]\n const params = request.params || {}\n const query = params.query || ''\n const hitsPerPage = params.hitsPerPage || pageSize\n const page = params.page || 0\n\n const { locale, doctypes } = extractHybridFilters(params)\n\n // The upstream Hybrid Search API does not support pagination, so we\n // fetch a large slice once per (query, locale) pair and paginate /\n // doctype-filter client-side for the result list.\n const cacheKey = JSON.stringify({\n q: query,\n locale: useLanguageFilter ? locale || '' : '',\n limit: effectiveUpstreamLimit,\n })\n\n const countCacheKey = JSON.stringify({\n q: query,\n locale: useLanguageFilter ? locale || '' : '',\n })\n\n const isSearchResultsRequest =\n typeof params?.filters === 'string' && params.filters.length > 0\n\n const cachedHits = getCached(cacheKey)\n let cachedCounts = getCachedCounts(countCacheKey)\n\n const hitsPromise = (async () => {\n if (cachedHits) return cachedHits\n\n const url = new URL(apiEndpoint, window.location.origin)\n url.searchParams.set('q', query)\n url.searchParams.set('limit', String(effectiveUpstreamLimit))\n if (useLanguageFilter && locale) {\n url.searchParams.set('locale', locale)\n }\n\n const response = await fetch(url.toString())\n if (!response.ok) {\n throw new Error(`Hybrid search failed: ${response.status}`)\n }\n\n const data = await response.json()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const rawResults: any[] = Array.isArray(data?.results)\n ? data.results\n : []\n const allHits = rawResults.map(transformHybridToAlgolia)\n setCached(cacheKey, allHits)\n return allHits\n })()\n\n const countsPromise = (async (): Promise<\n HybridDoctypeCounts | undefined\n > => {\n if (!isSearchResultsRequest) return undefined\n if (cachedCounts) return cachedCounts\n\n const counts = await fetchDoctypeCounts(query, locale)\n if (counts) {\n setCachedCounts(countCacheKey, counts)\n }\n return counts\n })()\n\n const [allHits, doctypeCounts] = await Promise.all([\n hitsPromise,\n countsPromise,\n ])\n\n if (doctypeCounts) {\n cachedCounts = doctypeCounts\n }\n\n const initialFilteredHits = filterHitsByDoctype(allHits, doctypes)\n let listHits = doctypes.length ? initialFilteredHits : allHits\n\n const doctypeDeepCacheKey =\n doctypes.length === 1\n ? JSON.stringify({\n q: query,\n locale: useLanguageFilter ? locale || '' : '',\n doctype: doctypes[0],\n limit: effectiveUpstreamLimit,\n })\n : ''\n\n let start = page * hitsPerPage\n\n if (doctypes.length === 1) {\n const portalDoctype = doctypes[0]\n const canonicalDoctype = PORTAL_TO_CANONICAL_DOCTYPE[portalDoctype]\n const prevPage = deepenPagination.get(doctypeDeepCacheKey)\n\n if (page === 0 || !prevPage || prevPage.lastPage !== page - 1) {\n start = page === 0 ? 0 : page * hitsPerPage\n if (page === 0) deepenPagination.delete(doctypeDeepCacheKey)\n } else {\n start = prevPage.endOffset\n }\n\n if (canonicalDoctype && start >= initialFilteredHits.length) {\n let deepenedHits = getDoctypeDeepCached(doctypeDeepCacheKey)\n if (!deepenedHits) {\n const url = new URL(apiEndpoint, window.location.origin)\n url.searchParams.set('q', query)\n url.searchParams.set('limit', String(effectiveUpstreamLimit))\n url.searchParams.set('doctype', portalDoctype)\n if (useLanguageFilter && locale) {\n url.searchParams.set('locale', locale)\n }\n\n const response = await fetch(url.toString())\n if (response.ok) {\n const data = await response.json()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const rawResults: any[] = Array.isArray(data?.results)\n ? data.results\n : []\n deepenedHits = rawResults.map(transformHybridToAlgolia)\n setDoctypeDeepCached(doctypeDeepCacheKey, deepenedHits)\n } else {\n deepenedHits = []\n }\n }\n\n listHits = mergeDeepenedHits(initialFilteredHits, deepenedHits)\n }\n }\n\n const doctypeCount =\n doctypes.length === 1 ? cachedCounts?.[doctypes[0]] : undefined\n const hasDeepened =\n doctypes.length === 1 &&\n (Boolean(getDoctypeDeepCached(doctypeDeepCacheKey)) ||\n listHits.length > initialFilteredHits.length)\n const nbHits = (() => {\n if (!doctypes.length) return allHits.length\n const cap = HYBRID_UPSTREAM_MAX_LIMIT\n if (typeof doctypeCount === 'number') {\n if (hasDeepened) {\n return Math.min(doctypeCount, cap, listHits.length)\n }\n return Math.min(doctypeCount, cap)\n }\n return Math.min(listHits.length, cap)\n })()\n const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage))\n const pageHits = listHits.slice(start, start + hitsPerPage)\n\n if (doctypes.length === 1) {\n deepenPagination.set(doctypeDeepCacheKey, {\n lastPage: page,\n endOffset: start + pageHits.length,\n })\n }\n\n const doctypeFacetData: Record = {}\n if (cachedCounts) {\n HYBRID_DOCTYPE_IDS.forEach((id) => {\n const count = cachedCounts[id]\n if (typeof count === 'number') {\n doctypeFacetData[id] = count\n }\n })\n }\n\n const hybridAllCount = cachedCounts?.['']\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const searchResult: any = {\n hits: pageHits,\n nbHits,\n page,\n nbPages,\n hitsPerPage,\n exhaustiveNbHits: true,\n query,\n params: '',\n index: request.indexName || '',\n processingTimeMS: 0,\n facets: {\n doctype: doctypeFacetData,\n language: {},\n },\n facets_stats: {},\n exhaustiveFacetsCount: true,\n queryID: generateQueryID(),\n _hybridCountsAttempted: isSearchResultsRequest,\n _hybridAllCount:\n typeof hybridAllCount === 'number' ? hybridAllCount : undefined,\n }\n\n return {\n results: [searchResult],\n }\n } catch (error) {\n console.error('Hybrid search error:', error)\n return {\n results: [\n {\n hits: [],\n nbHits: 0,\n page: 0,\n nbPages: 0,\n hitsPerPage: pageSize,\n exhaustiveNbHits: true,\n query: requests[0]?.params?.query || '',\n params: '',\n index: requests[0]?.indexName || '',\n processingTimeMS: 0,\n },\n ],\n }\n }\n },\n }\n}\n\nfunction clampUpstreamLimit(raw: number): number {\n if (!Number.isFinite(raw) || raw <= 0) return HYBRID_UPSTREAM_MAX_LIMIT\n return Math.min(HYBRID_UPSTREAM_MAX_LIMIT, Math.max(1, Math.floor(raw)))\n}\n\n/**\n * Extracts the language and doctype filters from an InstantSearch request.\n *\n * Two filter shapes need to be supported:\n * 1. `Configure.filters` (a single string like\n * `language:en AND doctype:\"tutorials\"`), used by the full Search page.\n * 2. `Configure.facetFilters` (an array like `['language:en']`), used by\n * the SearchInput dropdown in the header.\n */\nfunction extractHybridFilters(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n params: any\n): { locale: string; doctypes: string[] } {\n let locale = ''\n const doctypes: string[] = []\n\n const pushDoctype = (raw: string) => {\n const value = raw.replace(/^\"|\"$/g, '').trim()\n if (value && !doctypes.includes(value)) doctypes.push(value)\n }\n\n // 1) Configure.filters as a string expression\n const filtersStr = typeof params?.filters === 'string' ? params.filters : ''\n if (filtersStr) {\n const langMatch = filtersStr.match(/language\\s*:\\s*([\\w-]+)/i)\n if (langMatch) locale = langMatch[1]\n\n const doctypeRegex = /doctype\\s*:\\s*(?:\"([^\"]+)\"|([^\\s)]+))/gi\n let m: RegExpExecArray | null\n while ((m = doctypeRegex.exec(filtersStr)) !== null) {\n pushDoctype(m[1] || m[2] || '')\n }\n }\n\n // 2) facetFilters (string | string[] | (string | string[])[])\n const facetFilters = params?.facetFilters\n const visit = (entry: unknown) => {\n if (typeof entry === 'string') {\n if (!locale && entry.startsWith('language:')) {\n locale = entry.slice('language:'.length)\n } else if (entry.startsWith('doctype:')) {\n pushDoctype(entry.slice('doctype:'.length))\n }\n } else if (Array.isArray(entry)) {\n entry.forEach(visit)\n }\n }\n visit(facetFilters)\n\n return { locale, doctypes }\n}\n\nfunction filterHitsByDoctype(\n hits: T[],\n doctypes: string[]\n): T[] {\n if (!doctypes.length) return hits\n const wanted = new Set(doctypes.map((d) => d.toLowerCase()))\n return hits.filter((h) => wanted.has(String(h.doctype || '').toLowerCase()))\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction mergeDeepenedHits(initial: any[], deepened: any[]): any[] {\n const seen = new Set()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const merged: any[] = []\n\n for (const hit of [...initial, ...deepened]) {\n const key = hit.url_without_anchor || hit.objectID || ''\n if (!key || seen.has(key)) continue\n seen.add(key)\n merged.push(hit)\n }\n\n return merged.slice(0, HYBRID_UPSTREAM_MAX_LIMIT)\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction transformHybridToAlgolia(result: any): any {\n const filePath = result.filePath || ''\n const doctype = deriveDoctypeFromFilePath(filePath)\n\n const hierarchy = {\n lvl0: doctype,\n lvl1: result.title || 'Untitled',\n lvl2: deriveCategoryFromFilePath(filePath),\n }\n\n const url = buildUrlFromFilePath(filePath)\n\n // Strip markdown syntax from snippets for display\n const rawContent = result.snippet || result.content || ''\n const cleanContent = stripMarkdownForSnippet(rawContent)\n\n return {\n objectID: String(result.id),\n ...result,\n url,\n url_without_anchor: url.split('#')[0],\n doctype,\n doctitle: result.title || 'Untitled',\n content: cleanContent,\n hierarchy,\n language: result.metadata?.locale || 'en',\n type: 'content',\n _highlightResult: {\n content: {\n value: cleanContent,\n matchLevel: 'full',\n fullyHighlighted: false,\n matchedWords: [],\n },\n hierarchy: {\n lvl0: {\n value: hierarchy.lvl0,\n matchLevel: 'none',\n },\n lvl1: {\n value: hierarchy.lvl1,\n matchLevel: result.title ? 'partial' : 'none',\n },\n },\n },\n _snippetResult: {\n content: {\n value: result.snippet ? stripMarkdownForSnippet(result.snippet) : '',\n matchLevel: 'full',\n },\n },\n }\n}\n\nconst LOCALE_SEGMENT = /^(en|es|pt)$/i\n\n/**\n * Derives the doctype id from a filePath returned by the Hybrid Search upstream.\n *\n * Supports the two layouts currently produced by the help-center / dev-portal\n * content repositories:\n * - `docs///...` → doctype = 3rd segment\n * - `//...` → doctype = 1st segment\n * - `/...` → doctype = 1st segment (fallback)\n *\n * Returns 'documentation' as a safe default so SearchCard rendering does not\n * break. The id is kept lowercase so it can be matched against the\n * `filterSelectedSection` values defined in the consuming app\n * (e.g. 'tutorials', 'faq', 'known-issues', 'troubleshooting', 'announcements').\n */\nfunction deriveDoctypeFromFilePath(filePath: string): string {\n const parts = filePath.split('/').filter(Boolean)\n if (parts.length === 0) return 'documentation'\n\n if (parts[0] === 'docs' && parts.length > 2) {\n return parts[2].toLowerCase()\n }\n\n if (parts.length > 1 && LOCALE_SEGMENT.test(parts[1])) {\n return parts[0].toLowerCase()\n }\n\n return parts[0].toLowerCase()\n}\n\nfunction deriveCategoryFromFilePath(filePath: string): string | null {\n const parts = filePath.split('/').filter(Boolean)\n if (parts[0] === 'docs' && parts.length > 3) return parts[3]\n if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1])) return parts[2]\n if (parts.length > 1) return parts[1]\n return null\n}\n\n/**\n * Builds the user-facing URL for a search hit from its upstream filePath.\n *\n * The rule is doctype-driven (not path-position-driven):\n * - tutorials/tracks → //docs//\n * - everything else → ///\n *\n * The doctype comes from deriveDoctypeFromFilePath (the same source used for\n * the facet tabs) and the slug is always the last path segment, so this works\n * regardless of how deep the file is nested or where the doctype sits in the\n * path (`docs///...` or `//...`).\n */\nfunction buildUrlFromFilePath(filePath: string): string {\n const parts = filePath.split('/').filter(Boolean)\n if (parts.length === 0) return '/'\n\n const stripExt = (s: string) => s.replace(/\\.mdx?$/, '')\n const slug = stripExt(parts[parts.length - 1])\n\n const doctype = deriveDoctypeFromFilePath(filePath)\n\n // Locale is the 2nd segment in both supported layouts:\n // docs//... and //...\n const locale =\n parts.length > 1 && LOCALE_SEGMENT.test(parts[1])\n ? parts[1].toLowerCase()\n : 'en'\n\n if (doctype === 'tutorials' || doctype === 'tracks') {\n return `/${locale}/docs/${doctype}/${slug}`\n }\n\n return `/${locale}/${doctype}/${slug}`\n}\n\nfunction generateQueryID(): string {\n return `hybrid_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`\n}\n\nexport default function SearchConfig(\n config: SearchBackendConfig | AlgoliaConfig\n) {\n // Backward compatibility: if config doesn't have 'backend', assume Algolia\n if ('backend' in config) {\n if (config.backend === 'hybrid') {\n searchIndex = config.index\n createHybridClient(config.hybrid)\n } else {\n createAlgoliaClient(config.algolia)\n }\n } else {\n // Old API: direct AlgoliaConfig\n createAlgoliaClient(config as AlgoliaConfig)\n }\n}\n","import { Flex, Text, Link } from '@vtex/brand-ui'\nimport EditIcon from 'components/icons/edit-icon'\nimport LikeIcon from 'components/icons/like-icon'\nimport LikeSelectedIcon from 'components/icons/like-selected-icon'\nimport { useContext, useEffect, useRef, useState } from 'react'\nimport styles from './styles'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\nimport ShareButton from 'components/share-button'\n\nexport interface DocPath {\n /** Slug that corresponds to the current page. */\n slug?: string\n /** Github edit URL to the corresponding documentation file. */\n urlToEdit?: string\n /** Whether is possible for the user to suggest edits or not. */\n suggestEdits?: boolean\n /** Include or not a share button. */\n shareButton?: boolean\n /** Executes when the user sends the feedback. Receives whether it was positive (liked). */\n sendFeedback: (liked: boolean) => Promise\n /** Whether to render the small version of the component or not. */\n small?: boolean\n}\n\nconst FeedbackSection = ({\n slug,\n urlToEdit,\n suggestEdits = true,\n shareButton = false,\n sendFeedback,\n small = false,\n}: DocPath) => {\n const [feedback, setFeedback] = useState(undefined)\n const { locale } = useContext(LibraryContext)\n\n // Reset feedback selection whenever the page (slug) changes\n useEffect(() => {\n setFeedback(undefined)\n }, [slug])\n\n const handleSend = async (liked: boolean) => {\n if (feedback !== undefined) return\n setFeedback(liked)\n try {\n await sendFeedback(liked)\n } catch (e) {\n setFeedback(undefined)\n }\n }\n\n return (\n \n \n \n {feedback !== undefined\n ? messages[locale]['feedback_section.response']\n : messages[locale]['feedback_section.question']}\n \n\n \n {/* LIKE */}\n handleSend(true)}\n role=\"button\"\n aria-pressed={feedback === true}\n data-cy=\"feedback-section-like\"\n >\n {feedback === true ? (\n \n ) : (\n \n )}\n {!small && (\n {messages[locale]['feedback_section.positive']}\n )}\n \n\n {/* DISLIKE */}\n handleSend(false)}\n role=\"button\"\n aria-pressed={feedback === false}\n data-cy=\"feedback-section-dislike\"\n >\n {feedback === false ? (\n \n ) : (\n \n )}\n {!small && (\n {messages[locale]['feedback_section.negative']}\n )}\n \n \n \n {suggestEdits && (\n \n \n {messages[locale]['feedback_section.edit']}\n \n )}\n {shareButton && (\n \n )}\n \n )\n}\n\nexport default FeedbackSection\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst EditIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default EditIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst LikeIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default LikeIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst LikeSelectedIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default LikeSelectedIcon\n","import { SxStyleProp } from '@vtex/brand-ui'\n\ntype StyleFn = (opts?: { small?: boolean }) => SxStyleProp\n\nconst container: StyleFn = ({ small } = {}) => ({\n width: '100%',\n flexDirection: small ? 'column' : ['column', 'row'],\n alignItems: small ? 'flex-start' : 'center',\n alignContent: ['initial', 'space-between'],\n justifyContent: ['initial', 'space-between'],\n marginTop: small ? '0px' : '32px',\n marginBottom: small ? '0px' : '16px',\n gap: small ? '8px' : '0px',\n})\n\nconst question: StyleFn = ({ small } = {}) => ({\n fontSize: small ? '12px' : '16px',\n lineHeight: '18px',\n color: '#4A596B',\n})\n\nconst iconsContainer: StyleFn = ({ small } = {}) => ({\n display: 'flex',\n alignItems: 'center',\n gap: small ? '0px' : '4px',\n ml: small ? '3px' : '6px',\n})\n\nconst likeContainer: SxStyleProp = {\n paddingBottom: ['16px', '0'],\n borderBottom: ['1px solid #E7E9EE', 'none'],\n mt: ['8px', '0'],\n mb: ['16px', '0'],\n width: ['100%', 'auto'],\n justifyContent: ['center', 'initial'],\n alignItems: 'center',\n}\n\nconst likeIcon: SxStyleProp = {\n mr: '2px',\n}\n\nconst dislikeIcon: SxStyleProp = {\n mr: '2px',\n transform: 'rotateX(180deg) rotateY(180deg)',\n}\n\nconst button: SxStyleProp = {\n ':hover': {\n cursor: 'pointer',\n color: '#000711',\n 'svg > path': {\n stroke: '#000711',\n },\n },\n}\n\nconst buttonActive: SxStyleProp = {\n cursor: 'pointer',\n color: '#000711',\n 'svg > path': {\n stroke: '#000711',\n },\n}\n\nconst selectedButton: SxStyleProp = {\n color: 'muted.1',\n}\n\nconst box: StyleFn = ({ small } = {}) => ({\n alignItems: 'center',\n color: 'muted.0',\n fontSize: small ? '12px' : '16px',\n lineHeight: '22px',\n})\n\nconst disabled: SxStyleProp = {\n display: 'none !important',\n}\n\nconst editContainer: StyleFn = ({ small } = {}) => ({\n ...box({ small }),\n ...button,\n ':hover': {\n color: '#000711 !important',\n },\n // ml: ['0', 'auto'],\n color: '#4A596B !important',\n display: 'flex',\n})\n\nconst editIcon: SxStyleProp = { mr: '4px' }\n\nconst shareButton: SxStyleProp = {\n // ml: ['0', 'auto'],\n}\n\nexport default {\n disabled,\n container,\n question,\n likeContainer,\n likeIcon,\n dislikeIcon,\n editContainer,\n editIcon,\n box,\n button,\n buttonActive,\n selectedButton,\n shareButton,\n iconsContainer,\n}\n","import { Box, Button, Flex, Text } from '@vtex/brand-ui'\nimport FacebookIcon from 'components/icons/facebook-icon'\nimport LinkedinIcon from 'components/icons/linkedin-icon'\nimport ShareIcon from 'components/icons/share-icon'\nimport TwitterIcon from 'components/icons/twitter-icon'\nimport { useRef, useState } from 'react'\nimport {\n FacebookShareButton,\n LinkedinShareButton,\n TwitterShareButton,\n EmailShareButton,\n} from 'react-share'\nimport styles from './styles'\nimport EmailIcon from 'components/icons/email-icon'\nimport LinkIcon from 'components/icons/link-icon'\nimport { SxStyleProp } from '@vtex/brand-ui'\nimport useClickOutside from 'utils/hooks/useClickOutside'\n\ninterface Props {\n url: string\n sx?: SxStyleProp\n}\n\nconst ShareButton = ({ url, sx={} }: Props) => {\n const [isOpen, setIsOpen] = useState(false)\n const containerRef = useRef()\n useClickOutside(containerRef, () => setIsOpen(false))\n\n const handleCopyLink = async () => {\n try {\n if (window) await navigator.clipboard.writeText(window.location.href)\n } catch (error) {\n console.error('Error copying link to clipboard:', error)\n }\n }\n\n return (\n \n setIsOpen(!isOpen)}\n >\n Share\n \n {isOpen && (\n \n \n \n Copy link\n \n \n \n \n \n E-mail\n \n \n \n \n \n Twitter\n \n \n \n \n \n Facebook\n \n \n \n \n \n LinkedIn\n \n \n \n )}\n \n )\n}\n\nexport default ShareButton\n\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst FacebookIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default FacebookIcon\n\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst LinkedinIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default LinkedinIcon\n\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst ShareIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default ShareIcon\n\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst TwitterIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default TwitterIcon\n\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst container: SxStyleProp = {\n position: 'relative',\n height: '24px',\n}\n\nconst button: SxStyleProp = {\n cursor: 'pointer',\n textTransform: 'none',\n fontSize: '16px',\n lineHeight: '18px',\n color: '#4A596B',\n width: '24px',\n height: '24px',\n transition: '0.3s',\n ':hover': {\n color: '#000711 !important',\n textDecoration: 'none',\n },\n alignItems: 'start',\n}\n\nconst shareIcon: SxStyleProp = {\n marginRight: '4px',\n}\n\nconst innerButton: SxStyleProp = {\n gap: '16px',\n color: '#A1AAB7',\n cursor: 'pointer',\n transition: '0.3s',\n ':hover': {\n color: '#4A4A4A',\n },\n alignItems: 'center',\n}\n\nconst innerContainer: SxStyleProp = {\n position: 'absolute',\n backgroundColor: 'white',\n flexDirection: 'column',\n top: '100%',\n right: '0',\n mt: '8px',\n padding: '16px',\n gap: '16px',\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\n borderRadius: '5px',\n\n ':before': {\n content: \"''\",\n position: 'absolute',\n top: '-8px',\n right: '8px',\n borderLeft: '8px solid transparent',\n borderRight: '8px solid transparent',\n borderBottom: '8px solid white',\n boxShadow: '0 16px 10px -17px rgba(0, 0, 0, 0.5)',\n },\n}\n\nconst divider: SxStyleProp = {\n borderBottom: '1px solid #E7E9EE',\n}\n\nexport default {\n container,\n button,\n shareIcon,\n innerButton,\n innerContainer,\n divider,\n}\n\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst EmailIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default EmailIcon\n\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst LinkIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default LinkIcon\n\n","import { Box, Flex } from '@vtex/brand-ui'\nimport SearchSections from 'components/search-sections'\nimport SearchResults from 'components/search-results'\nimport SearchFilterTabBar from 'components/search-filter-tab-bar'\nimport SearchContextProvider from 'utils/context/search'\nimport styles from './styles'\nimport SearchInput from 'components/search-input'\n\nconst Search = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default Search\n","import { Box } from '@vtex/brand-ui'\n\nimport SearchSection from 'components/search-section'\nimport styles from './styles'\nimport { useContext } from 'react'\nimport { LibraryContext } from 'utils/context/libraryContext'\n\nconst SearchSections = () => {\n const { sidebarSections } = useContext(LibraryContext)\n\n const internalOnlySections = sidebarSections.map((section) =>\n section.filter((item) => !item.isExternalLink)\n )\n\n return (\n \n {internalOnlySections.map((sections, id) => (\n \n {id === 0 && }\n {sections.map((section, index) => (\n \n ))}\n \n ))}\n \n )\n}\n\nexport default SearchSections\n","import { Box, Flex, Text } from '@vtex/brand-ui'\nimport { useContext, useEffect } from 'react'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\nimport styles from './styles'\nimport { useRouter } from 'next/router.js'\nimport { FilterType, SearchContext } from 'utils/context/search'\nimport { Section } from 'utils/typings/types'\nimport { formatSearchTabCount } from 'utils/search-utils'\n\ninterface SearchSectionProps {\n dataElement: Section | null\n index?: number\n}\n\nconst SearchSection = ({ dataElement, index }: SearchSectionProps) => {\n const router = useRouter()\n const { filterSelectedSection, ocurrenceCount, changeFilterSelectedSection } =\n useContext(SearchContext)\n const { locale } = useContext(LibraryContext)\n\n const updateFilter = (value: FilterType) => {\n router.query.filter = value\n changeFilterSelectedSection(value)\n }\n\n useEffect(() => {\n updateFilter('')\n }, [router.query])\n\n const allCountLabel = formatSearchTabCount(ocurrenceCount[''])\n\n if (!dataElement) {\n return (\n updateFilter('')}>\n \n {messages[locale]['search_results.all'] || 'All results'}\n \n {allCountLabel !== undefined && (\n \n {allCountLabel}\n \n )}\n \n )\n }\n\n const count = ocurrenceCount[dataElement.id]\n const isDisabled = count === 0\n const countLabel = formatSearchTabCount(count)\n\n return (\n {\n if (isDisabled) return\n updateFilter(dataElement.id)\n }}\n data-disabled={String(isDisabled)}\n >\n \n \n \n {dataElement.title}\n \n \n {countLabel !== undefined && (\n \n {countLabel}\n \n )}\n \n )\n}\n\nexport default SearchSection\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst sectionContainer: (disabled?: boolean) => SxStyleProp = (\n disabled = false\n) => ({\n justifyContent: 'space-between',\n padding: '8px',\n mb: '8px',\n cursor: disabled ? 'not-allowed' : 'pointer',\n opacity: disabled ? 0.5 : 1,\n ':active, :hover': disabled\n ? {}\n : {\n backgroundColor: '#F8F7FC',\n borderRadius: '4px',\n '.search-section-title': {\n color: '#000711',\n },\n '.search-section-count': {\n background: '#E7E9EE',\n },\n },\n})\n\nconst sectionIconTitleBox: SxStyleProp = {\n alignItems: 'center',\n}\n\nconst sectionIcon: (disabled?: boolean) => SxStyleProp = (\n disabled = false\n) => ({\n width: '16px',\n height: '16px',\n minWidth: '16px',\n minHeight: '16px',\n mr: '8px',\n opacity: disabled ? 0.6 : 1,\n})\n\nconst sectionTitle: (disabled?: boolean) => SxStyleProp = (\n disabled = false\n) => ({\n fontSize: '12px',\n lineHeight: '16px',\n color: disabled ? '#AFAFAF' : undefined,\n})\n\nconst sectionTitleActive: SxStyleProp = {\n ...sectionTitle(),\n color: '#142032',\n fontWeight: '600',\n}\n\nconst sectionCount: SxStyleProp = {\n background: '#F8F7FC',\n borderRadius: '24px',\n width: 'auto',\n textAlign: 'center',\n px: '8px',\n fontSize: '12px',\n lineHeight: '16px',\n}\n\nconst allResultsText: SxStyleProp = {\n ...sectionTitle(),\n ml: '24px',\n}\n\nconst allResultsTextActive: SxStyleProp = {\n ...allResultsText,\n fontWeight: 'bold',\n color: '#0C1522',\n}\n\nexport default {\n sectionContainer,\n sectionIconTitleBox,\n sectionIcon,\n sectionTitle,\n sectionTitleActive,\n sectionCount,\n allResultsText,\n allResultsTextActive,\n}\n","import {\n createContext,\n Dispatch,\n ReactNode,\n SetStateAction,\n useState,\n} from 'react'\n\nexport type FilterType = string\n\ntype OcurrenceType = {\n [key: string]: number | undefined\n}\n\ntype SearchContextType = {\n filterSelectedSection: FilterType\n changeFilterSelectedSection: Dispatch>\n ocurrenceCount: OcurrenceType\n updateOcurrenceCount: (resultsData: OcurrenceType) => void\n}\n\nexport const SearchContext = createContext({\n filterSelectedSection: '',\n changeFilterSelectedSection: () => undefined,\n ocurrenceCount: {},\n updateOcurrenceCount: () => undefined,\n})\n\ninterface Props {\n children: ReactNode\n}\n\nconst SearchContextProvider = ({ children }: Props) => {\n const [filterSelectedSection, changeFilterSelectedSection] =\n useState('')\n const [ocurrenceCount, changeOcurrenceCount] = useState({})\n\n const updateOcurrenceCount = (resultsData: OcurrenceType) => {\n changeOcurrenceCount(resultsData)\n }\n\n return (\n \n {children}\n \n )\n}\n\nexport default SearchContextProvider\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst container: SxStyleProp = {\n display: ['none', 'none', 'none', 'initial'],\n height: '100%',\n width: '242px',\n border: '1px solid #E7E9EE',\n borderRadius: '4px',\n mr: ['32px', '32px', '32px', '32px', '32px', '32px', '64px'],\n mt: '96px',\n}\n\nconst notesSection: SxStyleProp = {\n px: '8px',\n paddingTop: '8px',\n}\n\nconst docsSection: SxStyleProp = {\n ...notesSection,\n borderBottom: '1px solid #E7E9EE',\n}\n\nexport default {\n container,\n notesSection,\n docsSection,\n}\n","import { useRouter } from 'next/router.js'\nimport { useContext, useEffect, useState } from 'react'\n\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\nimport { Box, Text } from '@vtex/brand-ui'\n\nimport { Configure, InstantSearch } from 'react-instantsearch-dom'\nimport { SearchState } from 'react-instantsearch-core'\nimport InfiniteHits from './infiniteHits'\n\nimport styles from './styles'\nimport { SearchContext } from 'utils/context/search'\nimport {\n searchClient,\n searchIndex,\n hitsPerPage,\n} from 'utils/config/search-config'\nimport { formatSearchTabCount } from 'utils/search-utils'\n\nconst SearchResults = () => {\n const router = useRouter()\n const { filterSelectedSection, ocurrenceCount } = useContext(SearchContext)\n const { locale } = useContext(LibraryContext)\n const filters = [\n `language:${locale}`,\n filterSelectedSection ? `doctype:\"${filterSelectedSection}\"` : '',\n ]\n .filter(Boolean)\n .join(' AND ')\n const keyword = String(router.query.keyword ?? '')\n const [prevFilter, setPrevFilter] = useState('')\n const [prevKeyword, setPrevKeyword] = useState(keyword)\n const [searchState, setSearchState] = useState({})\n\n useEffect(() => {\n if (!keyword || keyword === prevKeyword) return\n setPrevKeyword(keyword)\n setSearchState((currentState) => ({\n ...currentState,\n page: 1,\n }))\n }, [keyword, prevKeyword])\n\n const updateSearchState = (currentState: SearchState) => {\n const keywordChanged = keyword !== prevKeyword\n const filterChanged = filters !== prevFilter\n const page = keywordChanged || filterChanged ? 1 : currentState.page || 1\n if (keywordChanged) setPrevKeyword(keyword)\n setPrevFilter(filters)\n setSearchState({\n ...currentState,\n page,\n })\n }\n\n return (\n \n \n {`${messages[locale]['search_results.showing'] || 'Showing'} ${\n formatSearchTabCount(ocurrenceCount[filterSelectedSection]) ?? ''\n } ${messages[locale]['search_results.results_for'] || 'results for'} ${\n router.query.keyword\n } ${messages[locale]['search_results.in'] || 'in'} ${\n !filterSelectedSection\n ? messages[locale]['search_results.all_lowercase'] || 'all results'\n : filterSelectedSection\n }`}\n \n
\n \n \n updateSearchState(currentState)\n }\n >\n \n \n \n \n
\n )\n}\n\nexport default SearchResults\n","import { useContext, useEffect, useMemo, useRef } from 'react'\nimport {\n connectInfiniteHits,\n connectStateResults,\n} from 'react-instantsearch-dom'\nimport {\n Hit,\n InfiniteHitsProvided,\n StateResultsProvided,\n} from 'react-instantsearch-core'\nimport SearchCard from 'components/search-card'\nimport {\n ActionType,\n getIconFromSection,\n getRelativeURL,\n getTitleById,\n} from 'utils/search-utils'\nimport { Box, Flex } from '@vtex/brand-ui'\nimport { MethodType } from 'utils/typings/types'\nimport { SearchContext } from 'utils/context/search'\nimport { LibraryContext } from 'utils/context/libraryContext'\n\nexport type FilteredHit2 = Hit & { filteredMatches?: Hit[] }\n\ninterface HitProps {\n hit: FilteredHit2\n}\n\nconst HitCard = ({ hit }: HitProps) => {\n const { sidebarSections } = useContext(LibraryContext)\n const breadcrumbTitle = getTitleById(sidebarSections, hit.doctype)\n\n const breadcrumbs = [\n breadcrumbTitle,\n ...(hit.doccategory ? [hit.doccategory] : []),\n ,\n hit.doctitle,\n ]\n const DocIcon = getIconFromSection(sidebarSections, hit.doctype)\n\n return (\n \n )\n}\n\nconst StateResults = connectStateResults(\n ({ searchResults }: StateResultsProvided) => {\n const { updateOcurrenceCount } = useContext(SearchContext)\n\n useEffect(() => {\n if (!searchResults) return\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const results = searchResults as any\n const isFilteringByDoctype =\n typeof results?._state.filters === 'string' &&\n results._state.filters.includes('doctype:')\n\n const formattedFacets: Record = {}\n const rawFacets = results?.facets\n\n if (Array.isArray(rawFacets)) {\n const doctypeFacet = rawFacets.find(\n (facet: { name?: string; data?: Record }) =>\n facet.name === 'doctype'\n )\n if (doctypeFacet?.data) {\n Object.entries(doctypeFacet.data).forEach(([key, value]) => {\n if (typeof value === 'number') {\n formattedFacets[key] = value\n }\n })\n }\n } else if (rawFacets?.doctype && typeof rawFacets.doctype === 'object') {\n Object.entries(rawFacets.doctype).forEach(([key, value]) => {\n if (typeof value === 'number') {\n formattedFacets[key] = value\n }\n })\n }\n\n const hybridAllCount = results?._hybridAllCount\n const hybridCountsAttempted = results?._hybridCountsAttempted === true\n if (typeof hybridAllCount === 'number') {\n formattedFacets[''] = hybridAllCount\n } else if (!isFilteringByDoctype && !hybridCountsAttempted) {\n formattedFacets[''] = results?.nbHits ?? 0\n }\n\n if (!isFilteringByDoctype) {\n updateOcurrenceCount(formattedFacets)\n }\n }, [searchResults?.queryID])\n\n return null\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n) as any\n\nconst InfiniteHits = ({ hits, hasMore, refineNext }: InfiniteHitsProvided) => {\n const scrollRef = useRef(null)\n\n function onSentinelIntersection(entries: IntersectionObserverEntry[]) {\n entries.forEach((entry: IntersectionObserverEntry) => {\n if (entry.isIntersecting && hasMore) {\n refineNext()\n }\n })\n }\n\n const filteredResult = useMemo(() => {\n const mergeHits: FilteredHit2[] = [] //hitsData\n hits.forEach((hit) => {\n const alreadyExists = mergeHits.findIndex(\n (e) => e.url_without_anchor === hit.url_without_anchor\n )\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const filteredHit: any = { ...hit, filteredMatches: [] }\n if (alreadyExists >= 0) {\n mergeHits[alreadyExists].filteredMatches?.push(filteredHit)\n } else mergeHits.push(filteredHit)\n })\n return mergeHits\n }, [hits])\n\n useEffect(() => {\n const observer = new IntersectionObserver(onSentinelIntersection, {})\n\n if (scrollRef.current) observer.observe(scrollRef.current)\n return () => {\n observer.disconnect()\n }\n }, [hits])\n return (\n \n \n {filteredResult.map((hit: Hit, index: number) => (\n \n \n \n ))}\n \n \n )\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport default connectInfiniteHits(InfiniteHits) as any\n","import { Box, Flex, Text, IconCaret, Tooltip } from '@vtex/brand-ui'\n\nimport styles from './styles'\nimport Link from 'next/link.js'\nimport CustomHighlight from 'components/search-input/customHighlight'\nimport { useState } from 'react'\nimport { useContext } from 'react'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\nimport ExpandedResultsIcon from 'components/icons/expanded-results-icon'\nimport { Hit } from 'react-instantsearch-core'\nimport MethodCategory from 'components/method-category'\nimport { IconComponent, MethodType } from 'utils/typings/types'\nimport { ActionType, getAction } from 'utils/search-utils'\n\nexport type FilteredHit = Hit & { filteredMatches?: Hit[] }\ninterface SearchCardProps {\n doc: string\n title: string\n breadcrumbs?: string[]\n method?: MethodType\n actionType?: ActionType\n Icon?: IconComponent\n url: string\n hit: FilteredHit\n}\n\nconst SearchCard = ({\n Icon,\n title,\n method,\n breadcrumbs,\n actionType,\n url,\n hit,\n}: SearchCardProps) => {\n const actionValue = actionType ? getAction(actionType) : null\n const [toggleChildResults, setToggleChildResults] = useState(false)\n const { locale } = useContext(LibraryContext)\n return (\n \n \n \n \n {Icon && }\n {method ? (\n \n ) : null}\n {title === 'overview' && `${hit.doccategory} `}\n {title}\n \n \n \n \n \n {toggleChildResults &&\n hit.filteredMatches?.map((childHit, index: number) => (\n \n \n \n ))}\n \n {breadcrumbs ? (\n \n \n {messages[locale]['search_card.in'] || 'In'}\n \n {breadcrumbs.map((breadcrumb, index) => (\n \n \n {breadcrumb}\n \n {index < breadcrumbs.length - 1 ? (\n \n ) : null}\n \n ))}\n \n ) : null}\n {actionValue ? (\n \n {' '}\n {actionValue?.title}\n \n ) : null}\n \n {hit.filteredMatches && hit.filteredMatches.length > 0 && (\n {\n setToggleChildResults(!toggleChildResults)\n event.stopPropagation()\n }}\n >\n \n \n )}\n \n \n )\n}\n\nexport default SearchCard\n","import { SxStyleProp } from '@vtex/brand-ui'\nimport { methodsColors } from 'components/method-category/functions'\nimport { MethodType } from 'utils/typings/unionTypes'\n\nconst container: SxStyleProp = {\n justifyContent: 'space-between',\n borderRadius: '9px',\n border: '1px solid #DDDDDD',\n width: '100%',\n mb: '18px',\n paddingTop: '26px',\n paddingBottom: '10px',\n paddingLeft: ['13px', '44px'],\n paddingRight: ['13px', '34px'],\n background: '#FFFFFF',\n cursor: 'pointer',\n}\n\nconst containerActive = (method: MethodType | undefined): SxStyleProp => {\n const methodCategory = method ? methodsColors[method] : ''\n return {\n ...container,\n ':hover': {\n background: '#F8F7FC',\n '.searchCardTitle, .searchCardDescription': {\n color: '#142032',\n },\n '.method-category': {\n ...methodCategory,\n },\n },\n }\n}\n\nconst title: SxStyleProp = {\n display: 'flex',\n alignItems: 'flex-start',\n fontSize: ['16px', '18px'],\n lineHeight: ['22px', '24px'],\n color: 'muted.0',\n}\n\nconst httpMethod: SxStyleProp = {\n mr: '4px',\n}\n\nconst icon: SxStyleProp = {\n width: '24px',\n height: '24px',\n mr: '8px',\n path: {\n stroke: '#A1A8B3',\n },\n}\n\nconst description: SxStyleProp = {\n fontSize: '16px',\n lineHeight: '22px',\n paddingLeft: '32px',\n color: 'muted.0',\n mt: '4px',\n mb: '8px',\n minWidth: 0,\n overflowWrap: 'break-word',\n wordBreak: 'break-word',\n overflow: 'hidden',\n display: '-webkit-box',\n WebkitLineClamp: 4,\n WebkitBoxOrient: 'vertical',\n}\n\nconst descriptionToggle: SxStyleProp = {\n height: 'auto',\n minWidth: 'auto',\n}\n\nconst descriptionExpandedItem: SxStyleProp = {\n mt: '24px',\n}\n\nconst breadcrumbsContainer: SxStyleProp = {\n display: ['none', 'flex'],\n paddingLeft: '32px',\n alignItems: 'center',\n}\n\nconst alignCenter: SxStyleProp = {\n alignItems: 'center',\n}\n\nconst documentation: SxStyleProp = {\n ...alignCenter,\n minWidth: 'max-content',\n}\n\nconst breadcrumb: SxStyleProp = {\n color: 'muted.1',\n fontSize: '16px',\n lineHeight: '18px',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n}\n\nconst lastBreadcrumb: SxStyleProp = {\n ...breadcrumb,\n margin: 'auto 0',\n display: 'block',\n overflow: 'hidden',\n maxWidth: 'max-content',\n whiteSpace: 'nowrap',\n}\n\nconst breadcrumbsIn: SxStyleProp = {\n ...breadcrumb,\n mr: '4px',\n minWidth: 'fit-content',\n}\n\nconst breadcrumbsArrow: SxStyleProp = {\n width: '16px',\n height: '16px',\n color: 'muted.2',\n}\n\nconst actionContainer: SxStyleProp = {\n paddingLeft: '32px',\n alignItems: 'center',\n}\n\nconst actionIcon: SxStyleProp = {\n minWidth: '16px',\n minHeight: '16px',\n width: '16px',\n height: '16px',\n mr: '8px',\n}\n\nexport default {\n containerActive,\n title,\n httpMethod,\n icon,\n description,\n descriptionToggle,\n descriptionExpandedItem,\n breadcrumbsContainer,\n alignCenter,\n documentation,\n breadcrumb,\n lastBreadcrumb,\n breadcrumbsIn,\n breadcrumbsArrow,\n actionContainer,\n actionIcon,\n}\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\ninterface ExpandedResultsProps extends IconProps {\n active: boolean\n}\n\nconst ExpandedResultsIcon = ({ active }: ExpandedResultsProps) =>\n active ? (\n \n \n \n \n ) : (\n \n \n \n \n \n )\n\nexport default ExpandedResultsIcon\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst resultContainer: SxStyleProp = {\n width: ['80%', '544px', '544px', '544px', '720px', '720px', '1400px'],\n paddingTop: ['32px', '32px', '32px', '64px'],\n hr: {\n marginTop: '16px',\n marginBottom: '32px',\n borderTop: 'none',\n borderColor: '#DDDDDD',\n display: ['none', 'none', 'none', 'block'],\n },\n}\n\nconst resultText: SxStyleProp = {\n mb: '16px',\n fontSize: '16px',\n lineHeight: '22px',\n display: ['none', 'none', 'none', 'initial'],\n}\n\nconst paginationContainer: SxStyleProp = {\n mt: ['48px', '115px'],\n mb: '34px',\n justifyContent: 'center',\n}\n\nconst paginationLink: SxStyleProp = {\n fontSize: '16px',\n lineHeight: '20px',\n color: '#EE2565',\n cursor: 'pointer',\n}\n\nconst paginationLinkDisabled: SxStyleProp = {\n ...paginationLink,\n color: 'muted.1',\n}\n\nconst paginationNumber: SxStyleProp = {\n display: 'flex',\n fontSize: ['14px', '16px'],\n lineHeight: '20px',\n color: '#4A596B',\n mx: ['18px', '27px'],\n}\n\nconst paginationActualNumber: SxStyleProp = {\n fontWeight: '700',\n mx: '4px',\n}\n\nconst noResults: SxStyleProp = {\n justifyContent: 'center',\n alignContent: 'center',\n padding: '12px',\n}\n\nexport default {\n resultContainer,\n resultText,\n paginationContainer,\n paginationLink,\n paginationLinkDisabled,\n paginationNumber,\n paginationActualNumber,\n noResults,\n}\n","import { useContext } from 'react'\nimport { Flex, Text } from '@vtex/brand-ui'\n\nimport styles from './styles'\nimport { SearchContext } from 'utils/context/search'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\nimport { formatSearchTabCount } from 'utils/search-utils'\n\nconst SearchFilterTab = ({ filter }: { filter: string }) => {\n const { filterSelectedSection, changeFilterSelectedSection, ocurrenceCount } =\n useContext(SearchContext)\n const { locale } = useContext(LibraryContext)\n\n const count = ocurrenceCount[filter]\n const isAllTab = filter === ''\n const isDisabled = !isAllTab && count === 0\n const formattedCount = formatSearchTabCount(count)\n const isActive = filterSelectedSection === filter\n\n const handleClick = () => {\n if (isDisabled) return\n changeFilterSelectedSection(filter)\n }\n\n return (\n \n \n {filter || messages[locale]['search_results.all'] || 'All results'}\n \n {formattedCount !== undefined && (\n \n {formattedCount}\n \n )}\n \n )\n}\n\nconst SearchFilterTabBar = () => {\n const { sidebarSections } = useContext(LibraryContext)\n return (\n \n \n {sidebarSections.flat().map((section) => {\n return \n })}\n \n )\n}\n\nexport default SearchFilterTabBar\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst container: SxStyleProp = {\n display: ['flex', 'flex', 'flex', 'none'],\n overflowX: 'scroll',\n scrollbarWidth: 'none',\n '::-webkit-scrollbar': {\n display: 'none',\n },\n}\n\nconst tab: (active: boolean, disabled?: boolean) => SxStyleProp = (\n active,\n disabled = false\n) => ({\n pt: '8px',\n pb: '14px',\n px: '24px',\n cursor: disabled ? 'not-allowed' : 'pointer',\n justifyContent: 'center',\n alignItems: 'center',\n borderBottom: `${active ? 2 : 1}px solid #${active ? 'D71D55' : 'DDDDDD'}`,\n minWidth: 'max-content',\n opacity: disabled ? 0.5 : 1,\n})\n\nconst tabTitle: (active: boolean, disabled?: boolean) => SxStyleProp = (\n active,\n disabled = false\n) => ({\n fontSize: '14px',\n fontWeight: '600',\n lineHeight: '16.38px',\n whiteSpace: 'nowrap',\n color: `#${disabled ? 'AFAFAF' : active ? 'D71D55' : '545454'}`,\n})\n\nconst tabCount: SxStyleProp = {\n px: '8px',\n ml: '2px',\n fontSize: '12px',\n fontWeight: '400',\n lineHeight: '16px',\n borderRadius: '24px',\n backgroundColor: '#F8F7FC',\n}\n\nexport default { container, tab, tabTitle, tabCount }\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst searchBarContainer: SxStyleProp = {\n display: ['flex', 'flex', 'flex', 'none'],\n justifyContent: 'center',\n py: '16px',\n}\n\nconst body: SxStyleProp = {\n background: '#FFFFFF',\n justifyContent: 'center',\n}\n\nexport default {\n searchBarContainer,\n body,\n}\n","import { ReactNode, useContext } from 'react'\nimport { CookieConsent } from 'react-cookie-consent'\nimport styles from './styles'\nimport { Flex, SxStyleProp, Text } from '@vtex/brand-ui'\nimport { messages } from 'utils/get-message'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport aa from 'search-insights'\n\ninterface Props {\n onAccept: () => void\n}\n\ninterface ButtonProps {\n children: ReactNode[]\n style: SxStyleProp\n}\n\nconst Button = ({ children, style, ...props }: ButtonProps) => {\n return (\n \n {children}\n \n )\n}\n\nconst CookieBar = ({ onAccept }: Props) => {\n const { locale } = useContext(LibraryContext)\n\n return (\n {\n aa('init', {\n partial: true,\n useCookie: true,\n })\n onAccept()\n }}\n declineButtonText={messages[locale]['cookie_bar.decline']}\n buttonText={messages[locale]['cookie_bar.accept']}\n ButtonComponent={Button}\n customButtonWrapperAttributes={{ style: styles.buttonContainer }}\n customContentAttributes={{ style: styles.barContent }}\n >\n {messages[locale]['cookie_bar.title']}\n {messages[locale]['cookie_bar.description']}\n \n )\n}\n\nexport default CookieBar\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst bar: SxStyleProp = {\n backgroundColor: '#FFF',\n borderRadius: '8px',\n color: '#5E6E84',\n padding: '20px',\n width: '80%',\n left: '50%',\n transform: 'translateX(-50%)',\n maxWidth: '1280px',\n alignItems: 'center',\n justifyContent: 'center',\n boxShadow: '0 0 10px rgba(0, 0, 0, 0.1)',\n}\n\nconst barContent: SxStyleProp = {\n display: 'flex',\n flex: '1 0 300px',\n flexDirection: 'column',\n maxWidth: '100%',\n}\n\nconst title: SxStyleProp = {\n color: '#5E6E84',\n marginBottom: '10px',\n lineHeight: '28px',\n fontSize: '25px',\n fontWeight: '400',\n}\n\nconst buttonContainer: SxStyleProp = {\n display: 'flex',\n flexWrap: 'wrap',\n gap: '10px',\n justifyContent: 'center',\n margin: '15px',\n}\n\nconst acceptButton: SxStyleProp = {\n background: '#F71963',\n color: '#FFF',\n padding: '7px 16px',\n borderRadius: '2px',\n margin: '0',\n height: '32px',\n fontWeight: '400',\n\n ':hover': {\n opacity: '0.7',\n },\n}\n\nconst declineButton: SxStyleProp = {\n border: '1px solid #F71963',\n background: '#FFF',\n color: '#F71963',\n borderRadius: '2px',\n fontWeight: '400',\n margin: '0',\n height: '32px',\n\n ':hover': {\n opacity: '0.7',\n },\n}\n\nexport default {\n bar,\n barContent,\n title,\n acceptButton,\n declineButton,\n buttonContainer,\n}\n","import { Button } from '@vtex/brand-ui'\nimport Tooltip from 'components/tooltip'\nimport CopyIcon from '../icons/copy-icon'\nimport { useState } from 'react'\nimport styles from './styles'\n\nconst CopyLinkButton = () => {\n const [tooltipText, setTooltipText] = useState('Copy')\n\n const handleCopy = () => {\n navigator.clipboard.writeText(window.location.href)\n setTooltipText('Copy')\n\n setTimeout(() => {\n setTooltipText('Copied!')\n }, 2000)\n }\n\n return (\n \n \n \n )\n}\n\nexport default CopyLinkButton\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst CopyIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default CopyIcon\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst copyIcon: SxStyleProp = {\n marginRight: '4px',\n}\n\nconst copyLinkButton: SxStyleProp = {\n textTransform: 'none',\n color: '#3F3F3F',\n fontWeight: '100',\n fontSize: '12px',\n lineHeight: '18px',\n height: 'none',\n padding: '8px 5px 8px 8px',\n border: '1px solid #A1AAB7',\n backgroundColor: 'white',\n ':hover': {\n backgroundColor: '#EFEFEF',\n },\n}\n\nexport default {\n copyIcon,\n copyLinkButton,\n}\n","import { useState, useEffect } from 'react'\nimport styles from './styles'\nimport { Flex } from '@vtex/brand-ui'\nimport { IconComponent } from 'utils/typings/types'\n\ninterface InputProps {\n value: string\n Icon?: IconComponent\n placeholder?: string\n onChange: (value: string) => void\n}\n\nconst Input = ({ value, onChange, placeholder = '', Icon }: InputProps) => {\n const [inputValue, setInputValue] = useState(value ?? '')\n\n useEffect(() => {\n if (inputValue !== value) setInputValue(value)\n }, [value])\n\n return (\n \n {Icon && }\n {\n setInputValue(e.currentTarget.value)\n onChange(e.currentTarget.value)\n }}\n />\n \n )\n}\n\nexport default Input\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst input: SxStyleProp = {\n background: 'none',\n border: '#F4F4F4',\n color: '#545454',\n fontSize: ['14px'],\n width: '100%',\n transition: 'flex 0.3s',\n outline: 'none',\n}\n\nconst icon: SxStyleProp = {\n minWidth: '16px',\n minHeight: '16px',\n width: '16px',\n mr: '8px',\n flex: 0,\n maxWidth: 'fit-content',\n}\n\nconst container: SxStyleProp = {\n paddingLeft: '12px',\n alignItems: 'center',\n justifyContent: 'center',\n background: '#F4F4F4',\n width: '100%',\n height: '40px',\n borderRadius: '4px',\n transition: 'all 0.3s ease-out',\n cursor: 'pointer',\n border: '1px solid #F4F4F4',\n\n ':hover': {\n transition: 'all 0.3s ease-out',\n border: '1px solid #3B3B3B',\n },\n}\n\nexport default { container, input, icon }\n","import React, { useContext, useState } from 'react'\nimport { Box, Button, Text, Flex, Link } from '@vtex/brand-ui'\nimport { messages } from 'utils/get-message'\nimport { getPrivacyNoticeURL, getNewsletterURL } from 'utils/get-url'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport styles from './styles'\n\ntype EmailValidationResult = 'valid' | 'invalid' | 'error'\n\nconst SubscriptionList: React.FC = () => {\n const { locale } = useContext(LibraryContext)\n const localizedMessages = messages[locale] ?? messages.en\n const [email, setEmail] = useState('')\n const [message, setMessage] = useState('')\n const [messageType, setMessageType] = useState<'success' | 'error' | ''>('')\n\n const clearMessageAfterTimeout = () => {\n setTimeout(() => {\n setMessage('')\n setMessageType('')\n }, 3000)\n }\n\n const showMessage = (type: 'success' | 'error', text: string) => {\n setMessageType(type)\n setMessage(text)\n clearMessageAfterTimeout()\n if (type === 'success') setEmail('')\n }\n\n const checkEmail = async (email: string): Promise => {\n const apiKey = process.env.NEXT_PUBLIC_NEWSLETTER_API_KEY\n if (!apiKey) {\n console.error(localizedMessages['subscription_list.api_key_error'])\n return 'error'\n }\n\n const url = `https://mailcheck.p.rapidapi.com/?email=${encodeURIComponent(\n email\n )}`\n\n try {\n const response = await fetch(url, {\n method: 'GET',\n headers: {\n 'x-rapidapi-host': 'mailcheck.p.rapidapi.com',\n 'x-rapidapi-key': apiKey,\n },\n })\n\n if (!response.ok) {\n console.error(\n 'Email validation failed:',\n response.status,\n response.statusText\n )\n return 'error'\n }\n\n const data = await response.json()\n if (typeof data.block !== 'boolean') {\n console.error('Email validation returned an unusable response:', data)\n return 'error'\n }\n\n return data.block ? 'invalid' : 'valid'\n } catch (error) {\n console.error(error)\n return 'error'\n }\n }\n\n const handleSubscribe = async () => {\n if (!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email)) {\n showMessage('error', localizedMessages['subscription_list.invalid_email'])\n return\n }\n\n const validationResult = await checkEmail(email)\n if (validationResult === 'invalid') {\n showMessage('error', localizedMessages['subscription_list.invalid_email'])\n return\n }\n if (validationResult === 'error') {\n showMessage('error', localizedMessages['subscription_list.error'])\n return\n }\n\n const baseURL =\n 'https://hooks.zapier.com/hooks/catch/11585741/2pahup2/?email='\n\n const browserLocale = navigator.language || 'en-US'\n const currentDate = new Date()\n const formattedDate = currentDate.toLocaleString(browserLocale, {\n month: 'short',\n day: '2-digit',\n year: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: false,\n })\n\n const urlEnd = `&locale=${browserLocale}&date=${encodeURIComponent(\n formattedDate\n )}`\n const emailEncoded = encodeURIComponent(email)\n const url = baseURL + emailEncoded + urlEnd\n\n try {\n const response = await fetch(url, { method: 'POST' })\n\n if (!response.ok) {\n console.error(\n 'Subscription failed:',\n response.status,\n response.statusText\n )\n showMessage('error', localizedMessages['subscription_list.error'])\n return\n }\n\n showMessage('success', localizedMessages['subscription_list.success'])\n } catch (error) {\n console.error('Error:', error)\n showMessage('error', localizedMessages['subscription_list.error'])\n }\n }\n\n return (\n \n \n {localizedMessages['landing_page_subscription.title']}\n \n \n
\n \n {\n localizedMessages['landing_page_subscription.description'].split(\n 'newsletter'\n )[0]\n }\n \n newsletter\n \n {\n localizedMessages['landing_page_subscription.description'].split(\n 'newsletter'\n )[1]\n }\n \n \n ) =>\n setEmail(e.target.value)\n }\n sx={styles.emailInputField}\n />\n \n {localizedMessages['landing_page_newsletter.Button']}\n \n \n \n {localizedMessages['subscription_list.privacy_notice']}{' '}\n \n {localizedMessages['subscription_list.privacy_policy_link']}\n \n \n {message && (\n \n {message}\n \n )}\n
\n
\n
\n )\n}\n\nexport default SubscriptionList\n","export const getFeedbackURL = () => {\r\n return `https://docs.google.com/forms/d/e/1FAIpQLSfmnotPvPjw-SjiE7lt2Nt3RQgNUe10ixXZmuO2v9enOJReoQ/viewform?entry.1972292648=developers.vtex.com&entry.1799503232=`\r\n}\r\n\r\nexport const getGithubURL = () => {\r\n return `https://github.com/vtex-apps`\r\n}\r\n\r\nexport const getHelpCenterURL = () => {\r\n return `https://help.vtex.com/`\r\n}\r\n\r\nexport const getCommunityURL = () => {\r\n return `https://community.vtex.com/?_ga=2.198523433.743584735.1647618303-1974737580.1645714642`\r\n}\r\n\r\nexport const getLearningCenterURL = () => {\r\n return 'https://learn.vtex.com/'\r\n}\r\n\r\nexport const getSupportURL = () => {\r\n return 'https://help.vtex.com/en/support'\r\n}\r\n\r\nexport const getNewsletterURL = (locale: 'en' | 'pt' | 'es' = 'en') => {\r\n return `https://vtexhelp.myvtex.com/educationnewsletter/${locale}`\r\n}\r\n\r\nexport const getPrivacyNoticeURL = (locale: 'en' | 'pt' | 'es' = 'en') => {\r\n const localeMap = { en: 'us-en', pt: 'pt-br', es: 'es-mx' }\r\n return `https://vtex.com/${localeMap[locale]}/trust/general-external-privacy-notice/`\r\n}\r\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst controlHeight = '48px'\n\nconst sectionContainer: SxStyleProp = {\n borderTop: '1px solid #e7e9ef',\n px: ['16px', '24px', '32px'],\n py: ['42px', '44px', '64px'],\n backgroundColor: 'muted.4',\n textAlign: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n}\n\nconst cardContainer: SxStyleProp = {\n mt: ['16px', '24px', '32px'],\n px: ['16px', '24px', '50px'],\n py: ['16px', '24px', '40px'],\n width: ['100%', '90%', '80%'],\n maxWidth: '1035px',\n backgroundColor: 'white',\n borderRadius: '8px',\n border: '1px solid #E7E9EE',\n}\n\nconst title: SxStyleProp = {\n fontSize: ['20px', '28px', '28px', '40px'],\n lineHeight: ['30px', '38px', '38px', '50px'],\n fontWeight: '400',\n color: '#4A4A4A',\n textAlign: 'center',\n}\n\nconst description: SxStyleProp = {\n fontSize: ['14px', '16px'],\n lineHeight: ['20px', '22px'],\n textAlign: 'center',\n marginBottom: '16px',\n}\n\nconst inputContainer: SxStyleProp = {\n display: 'flex',\n flexDirection: ['column', 'row'],\n gap: '5px',\n justifyContent: 'center',\n alignItems: ['center', 'flex-end'],\n width: '100%',\n}\n\nconst emailInputField: SxStyleProp = {\n flex: 1,\n minWidth: 0,\n width: '100%',\n border: '1px solid #a1a8b3',\n borderRadius: '4px',\n color: '#4A4A4A',\n fontSize: '16px',\n lineHeight: '22px',\n px: '16px',\n py: 0,\n height: controlHeight,\n minHeight: controlHeight,\n boxSizing: 'border-box',\n '&::placeholder': {\n color: '#4A4A4A',\n },\n '&:focus': {\n outline: 'none',\n borderColor: '#A1A8B3',\n },\n}\n\nconst button: SxStyleProp = {\n transition: 'all 0.3s ease-out',\n minHeight: controlHeight,\n height: controlHeight,\n alignSelf: ['center', 'stretch'],\n minWidth: '140px',\n whiteSpace: 'nowrap',\n px: '16px',\n}\n\nconst privacyText: SxStyleProp = {\n fontSize: ['14px', '16px'],\n color: '#A1A8B3',\n lineHeight: ['16px', '22px'],\n pl: ['22px', '32px'],\n fontWeight: '400',\n margin: '16px',\n}\n\nconst popupCard: SxStyleProp = {\n backgroundColor: 'white',\n boxShadow: '0 4px 6px rgba(0, 0, 0, 0.1)',\n width: '100%',\n maxWidth: '400px',\n padding: ['8px', '12px'],\n boxSizing: 'border-box',\n margin: '0 auto',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: '6px',\n marginTop: '16px',\n alignSelf: 'center',\n}\n\nexport default {\n sectionContainer,\n cardContainer,\n title,\n description,\n inputContainer,\n emailInputField,\n button,\n privacyText,\n popupCard,\n}\n","import { SxStyleProp, Text } from '@vtex/brand-ui'\n\nimport styles from './styles'\n\nexport type TagColor =\n | 'Default'\n | 'Selected'\n | 'New'\n | 'Gray'\n | 'Blue'\n | 'Green'\n | 'Deprecation'\n | 'Backlog'\n | 'Fixed'\n | 'Closed'\n | 'Scheduled'\n | 'No_Fix'\n\nexport type TagProps = {\n sx?: SxStyleProp\n children: React.ReactNode\n color?: TagColor\n onClick?: () => void\n}\n\nconst Tag = ({ sx = {}, children, color = 'Default', onClick }: TagProps) => {\n return (\n \n {children}\n \n )\n}\n\nexport default Tag\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nimport type { TagColor } from './index'\n\nconst tag: SxStyleProp = {\n borderRadius: '11.5px',\n height: '20px',\n fontSize: '12px',\n lineHeight: '20px',\n px: '7px',\n textAlign: 'center',\n textWrap: 'nowrap',\n minWidth: 'max-content',\n}\n\nconst statusColors: Record = {\n Backlog: {\n border: '1px solid #D3D3D3',\n color: '#4A596B',\n background: '#E9E9E9',\n },\n Fixed: {\n border: '1px solid #9FCDB4',\n color: '#3A6E32',\n background: '#DFF5DB',\n },\n Closed: {\n border: '1px solid #A5C0FF',\n color: '#2953B2',\n background: '#DEE8FE',\n },\n Scheduled: {\n border: '1px solid #FFD581',\n color: '#D77809',\n background: '#FFF3DA',\n },\n No_Fix: {\n border: '1px solid #FAA397',\n color: '#CB2610',\n background: '#FFDFDB',\n },\n Default: {\n border: '1px solid #A1AAB7',\n color: '#A1AAB7',\n background: '#ffff',\n\n ':hover': {\n color: '#4A596B',\n border: '1px solid #4A596B',\n },\n },\n Selected: {\n border: '1px solid #A1AAB7',\n color: '#ffff',\n background: '#A1AAB7',\n\n ':hover': {\n color: '#142032',\n },\n },\n New: {\n border: '1px solid #F71963',\n color: '#F71963',\n background: '#FFE0EF',\n },\n Gray: {\n color: '#4A596B',\n background: '#E7E9EE',\n },\n Deprecation: {\n border: '1px solid #E8A5BE',\n color: '#A23D6E',\n background: '#FCEAF2',\n },\n Blue: {\n border: '1px solid #A5C0FF',\n color: '#2953B2',\n background: '#DEE8FE',\n },\n Green: {\n border: '1px solid #9FCDB4',\n color: '#3A6E32',\n background: '#DFF5DB',\n },\n}\n\nexport default {\n statusColors,\n tag,\n}\n","import { Box, Button, Checkbox, Flex, SxStyleProp, Text } from '@vtex/brand-ui'\nimport CloseIcon from 'components/icons/close-icon'\nimport FilterIcon from 'components/icons/filter-icon'\nimport TrashcanIcon from 'components/icons/trashcan-icon'\nimport Tag from 'components/tag'\nimport { useState } from 'react'\n\nimport { toFilterGroup, toFilterGroups } from './normalize'\nimport styles from './styles'\nimport type {\n FilterGroup,\n ListingFilterLabels,\n ListingFilterSelection,\n} from './types'\n\nexport type { FilterGroup, FilterOption, ListingFilterLabels, ListingFilterSelection } from './types'\n\nexport type ListingFilterProps = {\n tagFilter?: FilterGroup | string[]\n tagFilterName?: string\n checkBoxFilter?: FilterGroup | string[]\n checkBoxFilters?: FilterGroup[]\n filterName?: string\n selectedCheckboxes?: string[]\n selectedTags?: string[]\n onApply: (filters: ListingFilterSelection) => void\n labels?: ListingFilterLabels\n buttonSx?: SxStyleProp\n centeredTagOptions?: boolean\n}\n\ntype SelectedFilters = ListingFilterSelection\n\nconst defaultLabels: Required = {\n button: 'Filters',\n modalTitle: 'Filters',\n remove: 'Remove filters',\n apply: 'Apply filters',\n}\n\nconst ListingFilter = ({\n tagFilter,\n tagFilterName,\n checkBoxFilter,\n checkBoxFilters,\n filterName = '',\n onApply,\n selectedCheckboxes,\n selectedTags,\n labels,\n buttonSx,\n centeredTagOptions = false,\n}: ListingFilterProps) => {\n const resolvedLabels = { ...defaultLabels, ...labels }\n const normalizedTagFilter = toFilterGroup(tagFilter, tagFilterName)\n const checkboxGroups = toFilterGroups(\n checkBoxFilter,\n checkBoxFilters,\n filterName\n )\n\n const [isModalOpen, setIsModalOpen] = useState(false)\n const [tempFilters, setTempFilters] = useState({\n tag: [],\n checklist: [],\n })\n\n const numberOfFilters =\n getSelectedFiltersLength(selectedTags) +\n getSelectedFiltersLength(selectedCheckboxes)\n\n function getSelectedFiltersLength(filters: string[] | undefined) {\n return filters?.length ?? 0\n }\n\n function handleFilterClick(option: string, type: 'tag' | 'checklist') {\n setTempFilters((prev) => {\n const current = prev[type]\n const updatedFilters = current.includes(option)\n ? current.filter((filter) => filter !== option)\n : [...current, option]\n\n return { ...prev, [type]: updatedFilters }\n })\n }\n\n function isFilterSelected(option: string, type: 'tag' | 'checklist') {\n if (isModalOpen) {\n return tempFilters[type].includes(option)\n }\n\n if (type === 'tag') {\n return selectedTags?.includes(option) ?? false\n }\n\n return selectedCheckboxes?.includes(option) ?? false\n }\n\n const FilterButton = () => (\n {\n setTempFilters({\n checklist: selectedCheckboxes ?? [],\n tag: selectedTags ?? [],\n })\n setIsModalOpen(true)\n }}\n >\n \n {resolvedLabels.button}\n {numberOfFilters > 0 && (\n {numberOfFilters}\n )}\n \n )\n\n const TagFilter = () => {\n if (!normalizedTagFilter) return null\n\n return (\n \n {normalizedTagFilter.name}\n \n {normalizedTagFilter.options.map((option) => (\n handleFilterClick(option.id, 'tag')}\n >\n {option.name}\n \n ))}\n \n \n )\n }\n\n const CheckboxFilters = () => {\n if (checkboxGroups.length === 0) return null\n\n return (\n <>\n {checkboxGroups.map((group, groupIndex) => (\n \n {groupIndex > 0 && }\n \n {group.name}\n \n {group.options.map((option) => (\n handleFilterClick(option.id, 'checklist')}\n />\n ))}\n \n \n \n ))}\n \n )\n }\n\n const Divider = () => (\n \n
\n
\n )\n\n const FilterModal = () => (\n <>\n setIsModalOpen(false)} />\n \n \n {resolvedLabels.modalTitle}\n setIsModalOpen(false)}\n >\n \n \n \n \n \n {normalizedTagFilter && checkboxGroups.length > 0 && }\n \n \n \n }\n onClick={() => setTempFilters({ tag: [], checklist: [] })}\n >\n {resolvedLabels.remove}\n \n {\n setIsModalOpen(false)\n onApply(tempFilters)\n }}\n >\n {resolvedLabels.apply}\n \n \n \n \n )\n\n return (\n <>\n \n {isModalOpen && }\n \n )\n}\n\nexport default ListingFilter\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst FilterIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default FilterIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst TrashcanIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n)\n\nexport default TrashcanIcon\n","import type { FilterGroup } from './types'\n\nexport function isFilterGroup(value: unknown): value is FilterGroup {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'name' in value &&\n 'options' in value &&\n Array.isArray((value as FilterGroup).options)\n )\n}\n\nexport function toFilterGroup(\n input: FilterGroup | string[] | undefined,\n name = ''\n): FilterGroup | undefined {\n if (!input) return undefined\n\n if (isFilterGroup(input)) {\n return input\n }\n\n return {\n name,\n options: input.map((option) => ({ id: option, name: option })),\n }\n}\n\nexport function toFilterGroups(\n checkBoxFilter: FilterGroup | string[] | undefined,\n checkBoxFilters: FilterGroup[] | undefined,\n filterName = ''\n): FilterGroup[] {\n if (checkBoxFilters?.length) {\n return checkBoxFilters\n }\n\n const normalized = toFilterGroup(checkBoxFilter, filterName)\n return normalized ? [normalized] : []\n}\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst filterButton: SxStyleProp = {\n cursor: 'pointer',\n alignItems: 'center',\n borderRadius: '4px',\n border: '1px solid #E7E9EE',\n fontSize: '14px',\n gap: '8px',\n px: '8px',\n transition: '0.3s',\n height: '30px',\n ':hover': {\n color: '#F71963',\n },\n width: 'min-content',\n}\n\nconst filterButtonText: SxStyleProp = {\n display: ['none', 'block', 'block'],\n}\n\nconst numberOfFilters: SxStyleProp = {\n backgroundColor: '#FFE0EF',\n color: '#F71963',\n borderRadius: '4px',\n px: '4px',\n}\n\nconst blanket: SxStyleProp = {\n margin: '0',\n width: '100%',\n height: '100%',\n background: 'rgba(20, 32, 50, 0.70)',\n position: 'fixed',\n top: '0',\n left: '0',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n zIndex: '9999',\n}\n\nconst container: SxStyleProp = {\n position: 'fixed',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n width: '612px',\n maxWidth: '100vw',\n borderRadius: '5px',\n backgroundColor: '#ffff',\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\n zIndex: '10000',\n overflow: 'auto',\n height: ['100vh', 'auto'],\n}\n\nconst innerContainer: SxStyleProp = {\n p: '24px',\n maxHeight: ['calc(100vh - 145px)', 'calc(100vh - 6rem - 112px)'],\n overflow: 'auto',\n}\n\nconst topContainer: SxStyleProp = {\n display: 'grid',\n width: '100%',\n borderBottom: '1px solid #E7E9EE',\n gridTemplateColumns: '1fr 64px',\n alignItems: 'center',\n gap: '24px',\n height: '64px',\n}\n\nconst modalTitle: SxStyleProp = {\n fontSize: '16px',\n textAlign: 'center',\n}\n\nconst closeButtonContainer: SxStyleProp = {\n cursor: 'pointer',\n borderLeft: '1px solid #E7E9EE',\n height: '100%',\n justifyContent: 'center',\n alignItems: 'center',\n transition: '0.3s',\n ':hover': {\n color: '#E31C58',\n },\n}\n\nconst filterContainer: SxStyleProp = {\n display: 'flex',\n flexDirection: 'column',\n gap: '24px',\n}\n\nconst tagContainer: SxStyleProp = {\n gap: '16px',\n flexWrap: 'wrap',\n}\n\nconst tagContainerCentered: SxStyleProp = {\n display: 'flex',\n flexWrap: 'wrap',\n gap: '12px',\n justifyContent: 'center',\n overflow: 'visible',\n maxWidth: '100%',\n}\n\nconst tag: SxStyleProp = {\n cursor: 'pointer',\n transition: '0.3s',\n flex: '0 0 auto',\n ':active': {\n position: 'relative',\n top: '1px',\n },\n}\n\nconst checkBoxContainer: SxStyleProp = {\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fill, minmax(150px, 1fr))',\n gap: '24px',\n alignItems: 'top',\n fontSize: '12px',\n color: '#4A596B',\n}\n\nconst buttonsContainer: SxStyleProp = {\n py: '16px',\n px: '32px',\n alignItems: 'center',\n justifyContent: 'space-between',\n borderTop: '1px solid #E7E9EE',\n}\n\nconst sectionDivider: SxStyleProp = {\n hr: {\n border: '1px solid #E7E9EE',\n mb: '24px',\n mt: '24px',\n },\n}\n\nconst filterTitle: SxStyleProp = {\n fontSize: '20px',\n}\n\nconst removeButton: SxStyleProp = {\n backgroundColor: 'transparent',\n color: '#4A596B',\n textTransform: 'none',\n transition: '0.3s',\n p: '0',\n\n ':hover': {\n backgroundColor: 'transparent',\n color: '#E31C58',\n },\n}\n\nexport default {\n filterButton,\n filterButtonText,\n numberOfFilters,\n blanket,\n container,\n innerContainer,\n topContainer,\n modalTitle,\n closeButtonContainer,\n filterContainer,\n tagContainer,\n tagContainerCentered,\n tag,\n checkBoxContainer,\n buttonsContainer,\n sectionDivider,\n filterTitle,\n removeButton,\n}\n","import { Box, Link, Text } from '@vtex/brand-ui'\nimport Tag from 'components/tag'\n\nimport type { TroubleshootingItem } from '../../utils/troubleshooting/types'\nimport styles from './styles'\n\nexport type TroubleshootingCardVariant = 'devportal' | 'helpcenter'\n\nexport type TroubleshootingCardProps = TroubleshootingItem & {\n href?: string\n basePath?: string\n variant?: TroubleshootingCardVariant\n}\n\nfunction buildHref({\n slug,\n href,\n basePath = '/docs/troubleshooting',\n}: Pick) {\n if (href) return href\n\n const normalizedBasePath = basePath.replace(/\\/$/, '')\n return `${normalizedBasePath}/${slug}`\n}\n\nconst TroubleshootingCard = ({\n title,\n description,\n slug,\n tags,\n domainFilters,\n symptomFilters,\n href,\n basePath,\n variant = 'devportal',\n}: TroubleshootingCardProps) => {\n const cardHref = buildHref({ slug, href, basePath })\n const resolvedSymptomFilters = symptomFilters?.filter(Boolean) ?? []\n const resolvedDomainFilters = domainFilters?.filter(Boolean) ?? []\n const fallbackTags = tags?.filter(Boolean) ?? []\n const hasStructuredTags =\n resolvedSymptomFilters.length > 0 || resolvedDomainFilters.length > 0\n\n if (variant === 'helpcenter') {\n return (\n \n \n \n {title}\n \n {hasStructuredTags ? (\n \n {resolvedSymptomFilters.length > 0 && (\n \n \n {resolvedSymptomFilters.map((filter) => (\n \n {filter}\n \n ))}\n \n \n )}\n {resolvedDomainFilters.length > 0 && (\n \n \n {resolvedDomainFilters.map((filter) => (\n \n {filter}\n \n ))}\n \n \n )}\n \n ) : null}\n \n \n )\n }\n\n return (\n \n \n \n {title}\n \n {description ? (\n \n {description}\n \n ) : null}\n \n {resolvedSymptomFilters.length > 0 && (\n \n {resolvedSymptomFilters.map((filter) => (\n \n {filter}\n \n ))}\n \n )}\n {resolvedDomainFilters.length > 0 && (\n \n {resolvedDomainFilters.map((filter) => (\n \n {filter}\n \n ))}\n \n )}\n {!hasStructuredTags &&\n fallbackTags.map((moduleTag) => (\n \n {moduleTag}\n \n ))}\n \n \n \n )\n}\n\nexport default TroubleshootingCard\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst devportalContainer: SxStyleProp = {\n mt: '16px',\n padding: '25px',\n borderRadius: '4px',\n border: '1px solid #E7E9EE',\n width: '100%',\n transition: 'all 0.3s ease-out',\n ':hover': {\n cursor: 'pointer',\n },\n ':active, :hover': {\n borderColor: 'muted.2',\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\n transition: 'all 0.3 ease-out',\n\n '.title, .description': {\n transition: 'all 0.3s ease-out',\n color: '#000711',\n },\n },\n}\n\nconst helpcenterContainer: SxStyleProp = {\n px: ['32px', '32px', '36px', '64px'],\n py: '24px',\n display: 'flex',\n flexDirection: 'column',\n gap: '16px',\n borderRadius: '4px',\n border: '1px solid #E7E9EE',\n width: ['320px', '544px', '720px'],\n transition: 'all 0.3s ease-out',\n ':hover': {\n cursor: 'pointer',\n },\n ':active, :hover': {\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\n transition: 'all 0.3 ease-out',\n\n '.title': {\n transition: 'all 0.3s ease-out',\n color: '#000711',\n },\n },\n}\n\nconst title: SxStyleProp = {\n mb: '8px',\n fontSize: ['14px', '20px'],\n fontWeight: '400',\n lineHeight: ['22px', '30px'],\n color: 'muted.0',\n}\n\nconst description: SxStyleProp = {\n fontSize: '16px',\n lineHeight: '22px',\n fontWeight: '400',\n color: 'muted.1',\n overflow: 'hidden',\n width: '100%',\n height: '50%',\n display: ['none', 'none', 'block', 'block', 'block', 'block', 'block'],\n}\n\nconst tag: SxStyleProp = {\n width: 'max-content',\n px: '8px',\n margin: '4px',\n}\n\nconst tagsContainer: SxStyleProp = {\n display: 'flex',\n flexWrap: 'wrap',\n mt: '12px',\n gap: '16px',\n}\n\nconst tagGroup: SxStyleProp = {\n display: 'flex',\n flexWrap: 'wrap',\n gap: '8px',\n}\n\nconst groupsContainer: SxStyleProp = {\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n gap: '12px 20px',\n}\n\nconst groupContainer: SxStyleProp = {\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n gap: '8px',\n flex: '0 1 auto',\n maxWidth: '100%',\n}\n\nconst helpcenterTagsContainer: SxStyleProp = {\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n}\n\nexport default {\n devportalContainer,\n helpcenterContainer,\n title,\n description,\n tag,\n tagsContainer,\n tagGroup,\n groupsContainer,\n groupContainer,\n helpcenterTagsContainer,\n}\n","import type { TroubleshootingFilterState, TroubleshootingItem } from './types'\n\nexport function filterTroubleshootingItems(\n items: T[],\n { search, domainFilters, symptomFilters }: TroubleshootingFilterState\n): T[] {\n const selectedDomainFilters = new Set(\n domainFilters.map((filter) => filter.toLowerCase())\n )\n const selectedSymptomFilters = new Set(\n symptomFilters.map((filter) => filter.toLowerCase())\n )\n const hasDomainFilters = selectedDomainFilters.size > 0\n const hasSymptomFilters = selectedSymptomFilters.size > 0\n const normalizedSearch = search.toLowerCase()\n\n return items.filter((item) => {\n const matchesSearch =\n !normalizedSearch ||\n item.title.toLowerCase().includes(normalizedSearch)\n\n const itemDomainFiltersLower = (item.domainFilters ?? []).map((filter) =>\n filter.toLowerCase()\n )\n const itemSymptomFiltersLower = (item.symptomFilters ?? []).map((filter) =>\n filter.toLowerCase()\n )\n const matchesDomainFilters =\n !hasDomainFilters ||\n itemDomainFiltersLower.some((filter) =>\n selectedDomainFilters.has(filter)\n )\n const matchesSymptomFilters =\n !hasSymptomFilters ||\n itemSymptomFiltersLower.some((filter) =>\n selectedSymptomFilters.has(filter)\n )\n\n return matchesSearch && matchesDomainFilters && matchesSymptomFilters\n })\n}\n","import type { TroubleshootingItem } from './types'\n\nexport function collectTroubleshootingFilterOptions<\n T extends Pick\n>(items: T[]) {\n const domainFilters = new Set()\n const symptomFilters = new Set()\n\n items.forEach((item) => {\n item.domainFilters?.forEach((filter) => domainFilters.add(filter))\n item.symptomFilters?.forEach((filter) => symptomFilters.add(filter))\n })\n\n return {\n domainFilters: Array.from(domainFilters).sort(),\n symptomFilters: Array.from(symptomFilters).sort(),\n }\n}\n","export const getDaysElapsed = (date: Date) => {\n const msInDay = 1000 * 60 * 60 * 24\n const msElapsed = new Date().getTime() - date.getTime()\n return Math.floor(msElapsed / msInDay)\n}\n","import { Icon } from '@vtex/brand-ui'\nimport type { IconProps } from '@vtex/brand-ui'\n\nconst GearTroubleshootingIcon = (props: IconProps) => {\n return (\n \n \n \n \n \n \n \n \n )\n}\n\nexport default GearTroubleshootingIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst DocumentationUpdatesIcon = (props: IconProps) => (\n \n \n \n \n \n \n)\n\nexport default DocumentationUpdatesIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst HelpCenterIcon = (props: IconProps) => (\n \n {' '}\n \n \n \n \n \n)\n\nexport default HelpCenterIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst DeveloperPortalIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n)\n\nexport default DeveloperPortalIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst FAQIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default FAQIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst KnownIssueIcon = (props: IconProps) => (\n \n \n \n \n
\n \n)\n\nexport default KnownIssueIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst MegaphoneIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n)\n\nexport default MegaphoneIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst GraphIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default GraphIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst WarningIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default WarningIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst PaperIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n)\n\nexport default PaperIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst StartHereIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default StartHereIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst TutorialsIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n)\n\nexport default TutorialsIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst AnnouncementIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default AnnouncementIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst VTEXDevPortalIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default VTEXDevPortalIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst VTEXHelpCenterIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default VTEXHelpCenterIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst InfoIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default InfoIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst NewIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default NewIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst GithubIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default GithubIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst CommunityIcon = (props: IconProps) => (\n \n {' '}\n \n \n \n)\n\nexport default CommunityIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst FacebookCircleIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default FacebookCircleIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst LinkedinCircleIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default LinkedinCircleIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst TwitterCircleIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default TwitterCircleIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst YoutubeIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default YoutubeIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst IgIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default IgIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst ChatGPTIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default ChatGPTIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst ClaudeIcon = (props: IconProps) => (\n \n Claude\n \n \n)\n\nexport default ClaudeIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst GeminiIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default GeminiIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst CopilotIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default CopilotIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst GridIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default GridIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst MenuIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n)\n\nexport default MenuIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\ninterface CheckboxProps extends IconProps {\n checked: boolean\n}\n\nconst CheckboxIcon = (props: CheckboxProps) => (\n \n {!props.checked ? (\n <>\n \n \n \n ) : (\n <>\n \n \n \n )}\n \n)\n\nexport default CheckboxIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst ResizeIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default ResizeIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst ArrowRightIcon = (props: IconProps) => (\n \n {' '}\n \n \n \n)\n\nexport default ArrowRightIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst LongArrowIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default LongArrowIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst VTEXLogoFooter = (props: IconProps) => (\n \n \n \n \n \n \n \n)\n\nexport default VTEXLogoFooter\n"],"mappings":"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","names":["Fragment","text","text","i","checker","version","encode","AuthMode","addMethods","createAuth","encode","init_client_common_esm","createAuth","AuthMode","addMethods","init_client_common_esm","init_client_common_esm","createAuth","AuthMode","addMethods","createAuth","AuthMode","createRetryablePromise","createWaitablePromise","shuffle","addMethods","encode","init_client_common_esm","init_client_common_esm","createAuth","AuthMode","shuffle","version","addMethods","createRetryablePromise","createWaitablePromise","encode","searchIndex","body","client_common_esm_exports","AuthMode","addMethods","createAuth","createRetryablePromise","createWaitablePromise","destroy","encode","shuffle","version","init_client_common_esm","parse","version","requester_node_http_esm_exports","createNodeHttpRequester","http","Agent","https","Agent$1","parse","defaultHttpAgent","defaultHttpsAgent","agentOptions","init_requester_node_http_esm","algoliasearch","algoliasearch","Box","useEffect","useRef","useState","Box","Flex","mermaid","jsx","jsxs","icon","link","Icon","jsx","PropTypes","Box","styles_default","jsx","Box","styles_default","useEffect","Box","Flex","Icon","jsx","jsxs","body","styles_default","jsx","jsxs","useEffect","Flex","styles_default","Box","Box","Flex","Link","container","styles_default","jsx","jsxs","title","description","Link","styles_default","Box","Flex","useEffect","useState","jsx","title","sidebarElementStatus","item","heading","styles_default","img","heading","code","blockquote","blockquoteIcon","blockquoteInfo","blockquoteDanger","blockquoteWarning","blockquoteSuccess","flexWrap","svgContainer","messages","jsx","jsxs","useState","styles_default","icon","useRef","useEffect","mermaid","Box","Flex","item","jsx","Box","useContext","useEffect","Link","Box","Text","styles_default","jsx","jsxs","useContext","useEffect","headings","item","title","Link","Text","styles_default","Box","useEffect","useRef","useState","useContext","Flex","Text","Box","Link","linkContainer","styles_default","iconTooltip","useEffect","useRef","useState","Box","Flex","styles_default","Icon","jsx","jsx","jsxs","label","box","useRef","useState","useEffect","Box","Flex","styles_default","useRouter","useEffect","getIcon","icon","Flex","Box","Text","Button","useContext","useState","styles_default","Box","Flex","Text","Flex","Text","container","styles_default","categoryStyle","styles_default","Icon","jsx","jsxs","jsx","jsxs","Flex","Text","styles_default","useContext","useState","container","text","styles_default","jsx","jsxs","useState","useContext","Box","styles_default","Text","Flex","useRouter","Fragment","useContext","useEffect","Box","Flex","Link","Button","IconCaret","sectionDivider","styles_default","icon","styles_default","textStyle","jsx","jsxs","useContext","useRouter","useEffect","item","slugPrefix","Box","styles_default","Flex","Button","IconCaret","Link","Fragment","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","jsxs","Fragment","jsx","jsxs","documentation","useState","useContext","category","getIcon","Box","styles_default","Flex","Button","Text","sidebarSectionHidden","Fragment","jsx","jsxs","useState","useContext","useEffect","iconTooltip","useRef","Box","styles_default","Link","Flex","Text","Box","IconCaret","Button","arrowIcon","arrowIconActive","styles_default","useContext","Link","Box","Flex","Text","cardContainer","title","description","styles_default","cardContainer","styles_default","titleContainer","cardTitle","jsx","jsxs","title","description","link","Icon","Link","Box","cardContainer","Flex","titleContainer","Text","styles_default","useRef","useContext","useRouter","Flex","searchInput","searchIcon","styles_default","jsx","jsxs","useRouter","useRef","useContext","Flex","styles_default","useRouter","Link","Box","Flex","IconCaret","Text","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","item","useEffect","useRef","useState","Flex","Text","jsx","useState","useRef","useEffect","Flex","styles_default","Text","useContext","Fragment","jsx","jsxs","useContext","Link","Box","styles_default","Flex","Text","IconCaret","useRouter","Box","useContext","useRef","useState","aa","aa","algoliasearch","params","hitsPerPage","allHits","jsx","jsxs","useContext","useState","resultsBox","useRef","Box","jsx","jsxs","useContext","styles_default","Box","Button","IconCaret","Flex","Text","Link","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","useContext","useEffect","useState","container","styles_default","Box","Button","Flex","Text","Icon","jsx","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","useRef","useState","container","button","styles_default","Icon","jsx","Icon","jsx","jsxs","jsx","jsxs","useState","useRef","Flex","styles_default","Button","Text","Box","jsx","jsxs","shareButton","useState","useContext","useEffect","Flex","styles_default","Text","Link","Box","Flex","Box","Box","Flex","Text","useContext","useEffect","disabled","styles_default","useRouter","createContext","useState","jsx","jsx","jsxs","useRouter","useContext","useEffect","Flex","styles_default","Text","Box","container","styles_default","useContext","jsx","jsxs","useContext","item","Box","styles_default","useRouter","useContext","useEffect","useState","Box","Text","Configure","InstantSearch","useContext","useEffect","useMemo","useRef","connectStateResults","Box","Flex","Text","IconCaret","Tooltip","container","title","icon","description","alignCenter","styles_default","Link","useState","useContext","Icon","jsx","jsxs","jsx","jsxs","Icon","title","useState","useContext","Link","Flex","styles_default","Box","Text","breadcrumb","Tooltip","IconCaret","Box","Flex","jsx","jsxs","useContext","connectStateResults","useEffect","useRef","useMemo","Box","Flex","noResults","styles_default","jsx","jsxs","useRouter","useContext","useState","useEffect","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","disabled","styles_default","jsx","jsxs","useContext","Flex","styles_default","Text","styles_default","jsx","jsxs","Box","Flex","styles_default","search_default","useContext","title","styles_default","Flex","Text","aa","jsx","jsxs","Button","Flex","useContext","styles_default","Text","Button","Icon","jsx","jsxs","useState","styles_default","jsx","useState","Button","styles_default","useState","useEffect","icon","container","styles_default","Flex","jsx","jsxs","Icon","useState","useEffect","styles_default","useContext","useState","Box","Button","Text","Flex","Link","sectionContainer","cardContainer","title","description","button","styles_default","jsx","jsxs","useContext","useState","text","email","Box","styles_default","Text","Flex","Button","Link","Text","styles_default","jsx","Text","styles_default","Box","Button","Flex","Text","Icon","jsx","jsxs","Icon","jsx","jsxs","useState","input","container","innerContainer","tag","sectionDivider","styles_default","Fragment","jsx","jsxs","useState","numberOfFilters","Flex","styles_default","Text","Box","Button","Box","Link","Text","title","description","tag","styles_default","jsx","jsxs","title","description","Link","Box","styles_default","Text","search","item","item","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","Fragment","jsx","jsxs","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs"]} \ No newline at end of file diff --git a/src/components/sidebar-elements/index.tsx b/src/components/sidebar-elements/index.tsx index e3f09e7..0b0eda4 100644 --- a/src/components/sidebar-elements/index.tsx +++ b/src/components/sidebar-elements/index.tsx @@ -1,5 +1,5 @@ import { useRouter } from 'next/router.js' -import React, { Fragment, useContext } from 'react' +import React, { Fragment, useContext, useEffect } from 'react' import { Box, Flex, @@ -24,6 +24,8 @@ export interface SidebarElement { method?: MethodType endpoint?: string children: SidebarElement[] + /** When true, the category starts expanded instead of collapsed. */ + defaultOpen?: boolean } export interface SidebarProps { @@ -38,11 +40,21 @@ const SidebarElements = ({ slugPrefix, items, subItemLevel }: SidebarProps) => { activeSidebarElement, sidebarElementStatus, toggleSidebarElementStatus, + openSidebarElement, sidebarDataMaster, locale, } = useContext(LibraryContext) const router = useRouter() + useEffect(() => { + items?.forEach((item) => { + const slug = typeof item.slug === 'string' ? item.slug : item.slug[locale] + if (item.defaultOpen && !sidebarElementStatus.has(slug)) { + openSidebarElement(slug) + } + }) + }, [items]) + const handleClick = ( e: { preventDefault: () => void }, pathSuffix: string, diff --git a/src/utils/storybook-constants.tsx b/src/utils/storybook-constants.tsx index 78b4840..e6bf25a 100644 --- a/src/utils/storybook-constants.tsx +++ b/src/utils/storybook-constants.tsx @@ -6,6 +6,7 @@ import { serialize } from 'next-mdx-remote/serialize' export const sections = [ [ { + id: 'Guides', Icon: APIGuidesIcon, title: 'Guides', description: 'Guides description', @@ -14,6 +15,7 @@ export const sections = [ ], [ { + id: 'Reference', Icon: APIReferenceIcon, title: 'Reference', description: 'Reference description', @@ -25,6 +27,7 @@ export const sections = [ export const hamburguerSections = [ [ { + id: 'Guides', Icon: APIGuidesIcon, title: 'Guides', description: 'Guides description', @@ -33,6 +36,7 @@ export const hamburguerSections = [ ], [ { + id: 'Reference', Icon: APIReferenceIcon, title: 'Reference', description: 'Reference description', @@ -44,6 +48,7 @@ export const hamburguerSections = [ export const navigationLocale = [ { documentation: 'Guides', + name: { en: 'Guides', es: 'Guías', pt: 'Guias' }, slugPrefix: 'docs/guides', categories: [ { @@ -55,6 +60,7 @@ export const navigationLocale = [ slug: 'getting-started', origin: '', type: 'markdown', + defaultOpen: true, children: [ { name: { @@ -73,6 +79,7 @@ export const navigationLocale = [ }, { documentation: 'Reference', + name: { en: 'Reference', es: 'Referencia', pt: 'Referência' }, slugPrefix: 'docs/reference', categories: [], }, @@ -81,6 +88,7 @@ export const navigationLocale = [ export const navigation = [ { documentation: 'Guides', + name: 'Guides', slugPrefix: 'docs/guides', categories: [ { @@ -180,6 +188,7 @@ export const navigation = [ slug: 'faststore/atoms', origin: '', type: 'category', + defaultOpen: true, children: [ { name: 'Badge', @@ -697,6 +706,7 @@ export const navigation = [ }, { documentation: 'Reference', + name: 'Reference', slugPrefix: 'docs/reference', categories: [], }, @@ -717,6 +727,7 @@ export const exampleContextPropsLocale = { isPreview: false, sectionSelected: '', fallback: navigationLocale, + hamburguerMenuSections: hamburguerSections, locale, } From 23693591d9ae610468889b0f23c5e6845c627568 Mon Sep 17 00:00:00 2001 From: Carolina Menezes Date: Thu, 13 Aug 2026 12:46:14 -0300 Subject: [PATCH 2/4] fix: ensure defaultOpen is always open --- dist/index.d.mts | 2 +- dist/index.mjs | 72 ++++++++++------------- dist/index.mjs.map | 2 +- src/components/sidebar-elements/index.tsx | 49 ++++----------- src/utils/context/libraryContext.tsx | 11 ++-- 5 files changed, 49 insertions(+), 87 deletions(-) diff --git a/dist/index.d.mts b/dist/index.d.mts index 167c4dc..edb9fce 100644 --- a/dist/index.d.mts +++ b/dist/index.d.mts @@ -209,7 +209,7 @@ type ContextType = { setSidebarSectionHidden: Dispatch>; setActiveSectionName: Dispatch>; setActiveSidebarElement: Dispatch>; - toggleSidebarElementStatus: (title: string) => void; + toggleSidebarElementStatus: (title: string, currentlyOpen?: boolean) => void; openSidebarElement: (title: string) => void; closeSidebarElements: (parentsArray: string[]) => void; sidebarSections: Section[][]; diff --git a/dist/index.mjs b/dist/index.mjs index 1b9ef0d..79942b0 100644 --- a/dist/index.mjs +++ b/dist/index.mjs @@ -6318,9 +6318,9 @@ var LibraryContextProvider = ({ children, ...props }) => { else if (props.sectionSelected !== activeSectionName) setActiveSectionName(props.sectionSelected); }, [props.sectionSelected]); - const toggleSidebarElementStatus = (title7) => { + const toggleSidebarElementStatus = (title7, currentlyOpen) => { setSidebarElementStatus((sidebarElementStatus2) => { - const open = sidebarElementStatus2.has(title7) === false ? true : !sidebarElementStatus2.get(title7); + const open = sidebarElementStatus2.has(title7) ? !sidebarElementStatus2.get(title7) : !currentlyOpen; return new Map(sidebarElementStatus2.set(title7, open)); }); }; @@ -6972,7 +6972,7 @@ var TableOfContents = ({ headingList, children }) => { var TableOfContents_default = TableOfContents; // src/lib/sidebar/index.tsx -import { useEffect as useEffect9, useRef as useRef4, useState as useState7, useContext as useContext6 } from "react"; +import { useEffect as useEffect8, useRef as useRef4, useState as useState7, useContext as useContext6 } from "react"; import { Flex as Flex10, Text as Text6, Box as Box12 } from "@vtex/brand-ui"; import Link5 from "next/link.js"; @@ -7825,7 +7825,7 @@ var sidebar_section_filter_default = SectionFilter; // src/components/sidebar-elements/index.tsx import { useRouter as useRouter3 } from "next/router.js"; -import { Fragment as Fragment2, useContext as useContext4, useEffect as useEffect8 } from "react"; +import { Fragment as Fragment2, useContext as useContext4 } from "react"; import { Box as Box10, Flex as Flex8, @@ -7934,19 +7934,11 @@ var SidebarElements = ({ slugPrefix, items, subItemLevel }) => { activeSidebarElement, sidebarElementStatus, toggleSidebarElementStatus, - openSidebarElement, sidebarDataMaster, locale } = useContext4(LibraryContext); const router = useRouter3(); - useEffect8(() => { - items?.forEach((item2) => { - const slug = typeof item2.slug === "string" ? item2.slug : item2.slug[locale]; - if (item2.defaultOpen && !sidebarElementStatus.has(slug)) { - openSidebarElement(slug); - } - }); - }, [items]); + const isElementOpen = (slug, defaultOpen) => sidebarElementStatus.has(slug) ? sidebarElementStatus.get(slug) : !!defaultOpen; const handleClick = (e, pathSuffix, slug) => { e.preventDefault(); const hasEndpointQuery = router.query.endpoint; @@ -7989,29 +7981,25 @@ var SidebarElements = ({ slugPrefix, items, subItemLevel }) => { name, method, endpoint, - children + children, + defaultOpen }) => { const localizedName = typeof name === "string" ? name : name[locale]; const localizedSlug = typeof slug === "string" ? slug : slug[locale]; const isExpandable = children.length > 0; + const isOpen = isElementOpen(localizedSlug, defaultOpen); const pathSuffix = method ? `#${method.toLowerCase()}-${endpoint}` : ""; const activeItem = method ? `${localizedSlug}${pathSuffix}` : localizedSlug; return /* @__PURE__ */ jsx17(Box10, { sx: styles_default12.elementContainer, children: /* @__PURE__ */ jsxs12(Flex8, { sx: styleByLevelNormal(subItemLevel, isExpandable || false), children: [ isExpandable && /* @__PURE__ */ jsx17( Button2, { - "aria-label": sidebarElementStatus.has(localizedSlug) && sidebarElementStatus.get(localizedSlug) ? "Collapse category" : "Expand category", + "aria-label": isOpen ? "Collapse category" : "Expand category", size: "regular", variant: "tertiary", - sx: sidebarElementStatus.has(localizedSlug) && sidebarElementStatus.get(localizedSlug) ? styles_default12.arrowIconActive : styles_default12.arrowIcon, - icon: () => /* @__PURE__ */ jsx17( - IconCaret2, - { - direction: sidebarElementStatus.has(localizedSlug) && sidebarElementStatus.get(localizedSlug) ? "down" : "right", - size: 24 - } - ), - onClick: () => toggleSidebarElementStatus(localizedSlug) + sx: isOpen ? styles_default12.arrowIconActive : styles_default12.arrowIcon, + icon: () => /* @__PURE__ */ jsx17(IconCaret2, { direction: isOpen ? "down" : "right", size: 24 }), + onClick: () => toggleSidebarElementStatus(localizedSlug, isOpen) } ), !checkDocumentationType( @@ -8059,7 +8047,7 @@ var SidebarElements = ({ slugPrefix, items, subItemLevel }) => { isExpandable ), onClick: () => { - toggleSidebarElementStatus(localizedSlug); + toggleSidebarElementStatus(localizedSlug, isOpen); }, children: [ method && /* @__PURE__ */ jsx17( @@ -8077,10 +8065,10 @@ var SidebarElements = ({ slugPrefix, items, subItemLevel }) => { ) ] }) }); }; - const ElementChildren = ({ slug, children }) => { + const ElementChildren = ({ slug, children, defaultOpen }) => { const isExpandable = children.length > 0; const localizedSlug = typeof slug === "string" ? slug : slug[locale]; - return isExpandable && sidebarElementStatus.has(localizedSlug) && sidebarElementStatus.get(localizedSlug) ? /* @__PURE__ */ jsx17(Box10, { children: /* @__PURE__ */ jsx17( + return isExpandable && isElementOpen(localizedSlug, defaultOpen) ? /* @__PURE__ */ jsx17(Box10, { children: /* @__PURE__ */ jsx17( SidebarElements, { slugPrefix, @@ -8460,7 +8448,7 @@ var Sidebar = ({ parentsArray = [] }) => { parentsArray, context }); - useEffect9(() => { + useEffect8(() => { let timer = void 0; if (sidebarSectionContent.categories?.length > 0) timer = setTimeout( @@ -8477,7 +8465,7 @@ var Sidebar = ({ parentsArray = [] }) => { const [iconTooltip2, setIconTooltip] = useState7(false); const [tooltipLabel, setTooltipLabel] = useState7(sectionElement.title); const titleRef = useRef4(); - useEffect9(() => { + useEffect8(() => { const resizeObserver = new MutationObserver(function(entries) { const target = entries[0].target; if (target.offsetWidth < target.scrollWidth) @@ -9703,7 +9691,7 @@ var getTitleById = (sections, id) => { }; // src/components/search-input/customHighlight.tsx -import { useEffect as useEffect10, useRef as useRef6, useState as useState8 } from "react"; +import { useEffect as useEffect9, useRef as useRef6, useState as useState8 } from "react"; import { connectHighlight } from "react-instantsearch-dom"; import { Flex as Flex13, Text as Text8 } from "@vtex/brand-ui"; import { jsx as jsx37 } from "react/jsx-runtime"; @@ -9734,7 +9722,7 @@ var Highlight = ({ ellipsedContent.push(part); }); } - useEffect10(() => { + useEffect9(() => { if (searchPage) return; const titleSize = textContainer.current ? textContainer.current.offsetWidth / 7.75 : 40; @@ -10600,7 +10588,7 @@ var LikeSelectedIcon = (props) => /* @__PURE__ */ jsxs36( var like_selected_icon_default = LikeSelectedIcon; // src/lib/feedback-section/index.tsx -import { useContext as useContext11, useEffect as useEffect11, useState as useState11 } from "react"; +import { useContext as useContext11, useEffect as useEffect10, useState as useState11 } from "react"; // src/lib/feedback-section/styles.ts var container5 = ({ small } = {}) => ({ @@ -10988,7 +10976,7 @@ var FeedbackSection = ({ }) => { const [feedback, setFeedback] = useState11(void 0); const { locale } = useContext11(LibraryContext); - useEffect11(() => { + useEffect10(() => { setFeedback(void 0); }, [slug]); const handleSend = async (liked) => { @@ -11067,7 +11055,7 @@ import { Box as Box19 } from "@vtex/brand-ui"; // src/components/search-section/index.tsx import { Box as Box18, Flex as Flex17, Text as Text12 } from "@vtex/brand-ui"; -import { useContext as useContext12, useEffect as useEffect12 } from "react"; +import { useContext as useContext12, useEffect as useEffect11 } from "react"; // src/components/search-section/styles.ts var sectionContainer = (disabled2 = false) => ({ @@ -11183,7 +11171,7 @@ var SearchSection = ({ dataElement, index }) => { router.query.filter = value; changeFilterSelectedSection(value); }; - useEffect12(() => { + useEffect11(() => { updateFilter(""); }, [router.query]); const allCountLabel = formatSearchTabCount(ocurrenceCount[""]); @@ -11288,12 +11276,12 @@ var search_sections_default = SearchSections; // src/components/search-results/index.tsx import { useRouter as useRouter7 } from "next/router.js"; -import { useContext as useContext16, useEffect as useEffect14, useState as useState14 } from "react"; +import { useContext as useContext16, useEffect as useEffect13, useState as useState14 } from "react"; import { Box as Box22, Text as Text14 } from "@vtex/brand-ui"; import { Configure as Configure2, InstantSearch as InstantSearch2 } from "react-instantsearch-dom"; // src/components/search-results/infiniteHits.tsx -import { useContext as useContext15, useEffect as useEffect13, useMemo as useMemo2, useRef as useRef10 } from "react"; +import { useContext as useContext15, useEffect as useEffect12, useMemo as useMemo2, useRef as useRef10 } from "react"; import { connectInfiniteHits, connectStateResults as connectStateResults2 @@ -11607,7 +11595,7 @@ var HitCard = ({ hit }) => { var StateResults = connectStateResults2( ({ searchResults }) => { const { updateOcurrenceCount } = useContext15(SearchContext); - useEffect13(() => { + useEffect12(() => { if (!searchResults) return; const results = searchResults; @@ -11670,7 +11658,7 @@ var InfiniteHits = ({ hits, hasMore, refineNext }) => { }); return mergeHits; }, [hits]); - useEffect13(() => { + useEffect12(() => { const observer = new IntersectionObserver(onSentinelIntersection, {}); if (scrollRef.current) observer.observe(scrollRef.current); @@ -11760,7 +11748,7 @@ var SearchResults = () => { const [prevFilter, setPrevFilter] = useState14(""); const [prevKeyword, setPrevKeyword] = useState14(keyword); const [searchState, setSearchState] = useState14({}); - useEffect14(() => { + useEffect13(() => { if (!keyword || keyword === prevKeyword) return; setPrevKeyword(keyword); @@ -12122,7 +12110,7 @@ var CopyLinkButton = () => { var copy_link_button_default = CopyLinkButton; // src/components/input/index.tsx -import { useState as useState16, useEffect as useEffect15 } from "react"; +import { useState as useState16, useEffect as useEffect14 } from "react"; // src/components/input/styles.ts var input = { @@ -12165,7 +12153,7 @@ import { Flex as Flex23 } from "@vtex/brand-ui"; import { jsx as jsx64, jsxs as jsxs51 } from "react/jsx-runtime"; var Input = ({ value, onChange, placeholder = "", Icon: Icon68 }) => { const [inputValue, setInputValue] = useState16(value ?? ""); - useEffect15(() => { + useEffect14(() => { if (inputValue !== value) setInputValue(value); }, [value]); diff --git a/dist/index.mjs.map b/dist/index.mjs.map index fbffed8..c348ec0 100644 --- a/dist/index.mjs.map +++ b/dist/index.mjs.map @@ -1 +1 @@ -{"version":3,"sources":["../node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js","../node_modules/prop-types/node_modules/react-is/index.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/lib/has.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/@algolia/cache-common/dist/cache-common.esm.js","../node_modules/@algolia/cache-in-memory/dist/cache-in-memory.esm.js","../node_modules/@algolia/client-analytics/node_modules/@algolia/client-common/dist/client-common.esm.js","../node_modules/@algolia/requester-common/dist/requester-common.esm.js","../node_modules/@algolia/transporter/dist/transporter.esm.js","../node_modules/@algolia/client-analytics/dist/client-analytics.esm.js","../node_modules/algoliasearch/node_modules/@algolia/client-common/dist/client-common.esm.js","../node_modules/@algolia/client-personalization/node_modules/@algolia/client-common/dist/client-common.esm.js","../node_modules/@algolia/client-personalization/dist/client-personalization.esm.js","../node_modules/@algolia/client-search/node_modules/@algolia/client-common/dist/client-common.esm.js","../node_modules/@algolia/client-search/dist/client-search.esm.js","../node_modules/@algolia/logger-common/dist/logger-common.esm.js","../node_modules/@algolia/recommend/node_modules/@algolia/client-common/dist/client-common.esm.js","../node_modules/@algolia/recommend/node_modules/@algolia/requester-node-http/dist/requester-node-http.esm.js","../node_modules/@algolia/recommend/dist/recommend.cjs.js","../node_modules/@algolia/recommend/index.js","../node_modules/algoliasearch/node_modules/@algolia/requester-node-http/dist/requester-node-http.esm.js","../node_modules/algoliasearch/dist/algoliasearch.cjs.js","../node_modules/algoliasearch/index.js","../node_modules/algoliasearch/lite.js","../src/lib/markdown-renderer/MarkdownRenderer.tsx","../src/lib/markdown-renderer/components.tsx","../src/components/overview-card/styles.ts","../src/components/overview-card/index.tsx","../src/components/overview-card/icons.tsx","../src/components/youtube-frame/index.tsx","../src/components/steps/index.tsx","../src/components/steps/styles.ts","../src/components/lightbox/index.tsx","../src/components/icons/close-icon.tsx","../src/utils/hooks/useClickOutside.ts","../src/components/lightbox/styles.ts","../src/components/whats-next-card/index.tsx","../src/components/whats-next-card/styles.ts","../src/utils/context/libraryContext.tsx","../src/utils/string-utils.ts","../src/utils/mermaidInit.ts","../src/lib/markdown-renderer/styles.module.css","../src/messages/en.json","../src/messages/es.json","../src/messages/pt.json","../src/utils/get-message.ts","../src/lib/table-of-contents/TableOfContents.tsx","../src/lib/table-of-contents/styles.ts","../src/lib/sidebar/index.tsx","../src/lib/sidebar/styles.ts","../src/lib/sidebar/functions.ts","../src/components/tooltip/index.tsx","../src/components/tooltip/styles.ts","../src/components/icons/caret.tsx","../src/utils/navigation-utils.ts","../src/utils/sidebar-utils.ts","../src/components/sidebar-section/index.tsx","../src/components/sidebar-section/styles.ts","../src/components/sidebar-section-filter/index.tsx","../src/components/method-category/index.tsx","../src/components/method-category/styles.ts","../src/components/method-category/functions.ts","../src/components/icons/close-filter-icon.tsx","../src/components/sidebar-section-filter/styles.ts","../src/components/sidebar-elements/index.tsx","../src/components/sidebar-elements/styles.ts","../src/components/sidebar-elements/functions.tsx","../src/components/icons/search-icon.tsx","../src/components/icons/sidebar-toggle-icon.tsx","../src/components/icons/arrow-left-icon.tsx","../src/lib/hamburger-menu/index.tsx","../src/lib/hamburger-menu/styles.ts","../src/components/documentation-card/index.tsx","../src/components/documentation-card/styles.ts","../src/components/documentation-card/functions.ts","../src/components/search-input/index.tsx","../src/components/search-input/search-box.tsx","../src/components/search-input/styles.ts","../src/components/search-input/results-box.tsx","../src/components/icons/api-guides-icon.tsx","../src/components/icons/api-reference-icon.tsx","../src/components/icons/app-development-icon.tsx","../src/components/icons/release-notes-icon.tsx","../src/components/icons/storefront-development-icon.tsx","../src/components/icons/vtex-io-apps-icon.tsx","../src/components/icons/troubleshooting-icon.tsx","../src/components/icons/added-icon.tsx","../src/components/icons/deprecated-icon.tsx","../src/components/icons/fixed-icon.tsx","../src/components/icons/improved-icon.tsx","../src/components/icons/removed-icon.tsx","../src/utils/search-utils.ts","../src/components/search-input/customHighlight.tsx","../src/utils/config/search-config.ts","../src/lib/feedback-section/index.tsx","../src/components/icons/edit-icon.tsx","../src/components/icons/like-icon.tsx","../src/components/icons/like-selected-icon.tsx","../src/lib/feedback-section/styles.ts","../src/components/share-button/index.tsx","../src/components/icons/facebook-icon.tsx","../src/components/icons/linkedin-icon.tsx","../src/components/icons/share-icon.tsx","../src/components/icons/twitter-icon.tsx","../src/components/share-button/styles.ts","../src/components/icons/email-icon.tsx","../src/components/icons/link-icon.tsx","../src/lib/search/index.tsx","../src/components/search-sections/index.tsx","../src/components/search-section/index.tsx","../src/components/search-section/styles.ts","../src/utils/context/search.tsx","../src/components/search-sections/styles.ts","../src/components/search-results/index.tsx","../src/components/search-results/infiniteHits.tsx","../src/components/search-card/index.tsx","../src/components/search-card/styles.ts","../src/components/icons/expanded-results-icon.tsx","../src/components/search-results/styles.ts","../src/components/search-filter-tab-bar/index.tsx","../src/components/search-filter-tab-bar/styles.ts","../src/lib/search/styles.ts","../src/lib/cookie-bar/index.tsx","../src/lib/cookie-bar/styles.ts","../src/components/copy-link-button/index.tsx","../src/components/icons/copy-icon.tsx","../src/components/copy-link-button/styles.ts","../src/components/input/index.tsx","../src/components/input/styles.ts","../src/components/subscription-list/index.tsx","../src/utils/get-url.tsx","../src/components/subscription-list/styles.ts","../src/components/tag/index.tsx","../src/components/tag/styles.ts","../src/components/listing-filter/index.tsx","../src/components/icons/filter-icon.tsx","../src/components/icons/trashcan-icon.tsx","../src/components/listing-filter/normalize.ts","../src/components/listing-filter/styles.ts","../src/components/troubleshooting-card/index.tsx","../src/components/troubleshooting-card/styles.ts","../src/utils/troubleshooting/filterItems.ts","../src/utils/troubleshooting/collectFilterOptions.ts","../src/utils/get-days-elapsed.ts","../src/components/icons/gear-troubleshooting-icon.tsx","../src/components/icons/documentation-updates-icon.tsx","../src/components/icons/helpcenter-icon.tsx","../src/components/icons/developer-portal-icon.tsx","../src/components/icons/faq-icon.tsx","../src/components/icons/known-issues-icon.tsx","../src/components/icons/megaphone-icon.tsx","../src/components/icons/graph-icon.tsx","../src/components/icons/warning-icon.tsx","../src/components/icons/paper-icon.tsx","../src/components/icons/start-here-icon.tsx","../src/components/icons/tutorials-icon.tsx","../src/components/icons/announcement-icon.tsx","../src/components/icons/vtex-devportal-icon.tsx","../src/components/icons/vtex-helpcenter-icon.tsx","../src/components/icons/info-icon.tsx","../src/components/icons/new-icon.tsx","../src/components/icons/github-icon.tsx","../src/components/icons/community-icon.tsx","../src/components/icons/facebook-circle-icon.tsx","../src/components/icons/linkedin-circle-icon.tsx","../src/components/icons/twitter-circle-icon.tsx","../src/components/icons/youtube-icon.tsx","../src/components/icons/instagram-icon.tsx","../src/components/icons/chatgpt-icon.tsx","../src/components/icons/claude-icon.tsx","../src/components/icons/gemini-icon.tsx","../src/components/icons/copilot-icon.tsx","../src/components/icons/grid-icon.tsx","../src/components/icons/menu-icon.tsx","../src/components/icons/checkbox.tsx","../src/components/icons/resize-icon.tsx","../src/components/icons/arrow-right-icon.tsx","../src/components/icons/long-arrow-icon.tsx","../src/components/icons/vtex-logo-footer.tsx"],"sourcesContent":["/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","// @todo Add logger on options to debug when caches go wrong.\r\nfunction createFallbackableCache(options) {\r\n const caches = [...options.caches];\r\n const current = caches.shift(); // eslint-disable-line functional/immutable-data\r\n if (current === undefined) {\r\n return createNullCache();\r\n }\r\n return {\r\n get(key, defaultValue, events = {\r\n miss: () => Promise.resolve(),\r\n }) {\r\n return current.get(key, defaultValue, events).catch(() => {\r\n return createFallbackableCache({ caches }).get(key, defaultValue, events);\r\n });\r\n },\r\n set(key, value) {\r\n return current.set(key, value).catch(() => {\r\n return createFallbackableCache({ caches }).set(key, value);\r\n });\r\n },\r\n delete(key) {\r\n return current.delete(key).catch(() => {\r\n return createFallbackableCache({ caches }).delete(key);\r\n });\r\n },\r\n clear() {\r\n return current.clear().catch(() => {\r\n return createFallbackableCache({ caches }).clear();\r\n });\r\n },\r\n };\r\n}\n\nfunction createNullCache() {\r\n return {\r\n get(_key, defaultValue, events = {\r\n miss: () => Promise.resolve(),\r\n }) {\r\n const value = defaultValue();\r\n return value\r\n .then(result => Promise.all([result, events.miss(result)]))\r\n .then(([result]) => result);\r\n },\r\n set(_key, value) {\r\n return Promise.resolve(value);\r\n },\r\n delete(_key) {\r\n return Promise.resolve();\r\n },\r\n clear() {\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nexport { createFallbackableCache, createNullCache };\n","function createInMemoryCache(options = { serializable: true }) {\r\n // eslint-disable-next-line functional/no-let\r\n let cache = {};\r\n return {\r\n get(key, defaultValue, events = {\r\n miss: () => Promise.resolve(),\r\n }) {\r\n const keyAsString = JSON.stringify(key);\r\n if (keyAsString in cache) {\r\n return Promise.resolve(options.serializable ? JSON.parse(cache[keyAsString]) : cache[keyAsString]);\r\n }\r\n const promise = defaultValue();\r\n const miss = (events && events.miss) || (() => Promise.resolve());\r\n return promise.then((value) => miss(value)).then(() => promise);\r\n },\r\n set(key, value) {\r\n // eslint-disable-next-line functional/immutable-data\r\n cache[JSON.stringify(key)] = options.serializable ? JSON.stringify(value) : value;\r\n return Promise.resolve(value);\r\n },\r\n delete(key) {\r\n // eslint-disable-next-line functional/immutable-data\r\n delete cache[JSON.stringify(key)];\r\n return Promise.resolve();\r\n },\r\n clear() {\r\n cache = {};\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nexport { createInMemoryCache };\n","function createAuth(authMode, appId, apiKey) {\r\n const credentials = {\r\n 'x-algolia-api-key': apiKey,\r\n 'x-algolia-application-id': appId,\r\n };\r\n return {\r\n headers() {\r\n return authMode === AuthMode.WithinHeaders ? credentials : {};\r\n },\r\n queryParameters() {\r\n return authMode === AuthMode.WithinQueryParameters ? credentials : {};\r\n },\r\n };\r\n}\n\nfunction createRetryablePromise(callback) {\r\n let retriesCount = 0; // eslint-disable-line functional/no-let\r\n const retry = () => {\r\n retriesCount++;\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve(callback(retry));\r\n }, Math.min(100 * retriesCount, 1000));\r\n });\r\n };\r\n return callback(retry);\r\n}\n\nfunction createWaitablePromise(promise, wait = (_response, _requestOptions) => {\r\n return Promise.resolve();\r\n}) {\r\n // eslint-disable-next-line functional/immutable-data\r\n return Object.assign(promise, {\r\n wait(requestOptions) {\r\n return createWaitablePromise(promise\r\n .then(response => Promise.all([wait(response, requestOptions), response]))\r\n .then(promiseResults => promiseResults[1]));\r\n },\r\n });\r\n}\n\n// eslint-disable-next-line functional/prefer-readonly-type\r\nfunction shuffle(array) {\r\n let c = array.length - 1; // eslint-disable-line functional/no-let\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (c; c > 0; c--) {\r\n const b = Math.floor(Math.random() * (c + 1));\r\n const a = array[c];\r\n array[c] = array[b]; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n array[b] = a; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n }\r\n return array;\r\n}\r\nfunction addMethods(base, methods) {\r\n if (!methods) {\r\n return base;\r\n }\r\n Object.keys(methods).forEach(key => {\r\n // eslint-disable-next-line functional/immutable-data, no-param-reassign\r\n base[key] = methods[key](base);\r\n });\r\n return base;\r\n}\r\nfunction encode(format, ...args) {\r\n // eslint-disable-next-line functional/no-let\r\n let i = 0;\r\n return format.replace(/%s/g, () => encodeURIComponent(args[i++]));\r\n}\n\nconst version = '4.24.0';\n\nconst destroy = (base) => {\r\n return () => {\r\n return base.transporter.requester.destroy();\r\n };\r\n};\n\nconst AuthMode = {\r\n /**\r\n * If auth credentials should be in query parameters.\r\n */\r\n WithinQueryParameters: 0,\r\n /**\r\n * If auth credentials should be in headers.\r\n */\r\n WithinHeaders: 1,\r\n};\n\nexport { AuthMode, addMethods, createAuth, createRetryablePromise, createWaitablePromise, destroy, encode, shuffle, version };\n","const MethodEnum = {\r\n Delete: 'DELETE',\r\n Get: 'GET',\r\n Post: 'POST',\r\n Put: 'PUT',\r\n};\n\nexport { MethodEnum };\n","import { MethodEnum } from '@algolia/requester-common';\n\nfunction createMappedRequestOptions(requestOptions, timeout) {\r\n const options = requestOptions || {};\r\n const data = options.data || {};\r\n Object.keys(options).forEach(key => {\r\n if (['timeout', 'headers', 'queryParameters', 'data', 'cacheable'].indexOf(key) === -1) {\r\n data[key] = options[key]; // eslint-disable-line functional/immutable-data\r\n }\r\n });\r\n return {\r\n data: Object.entries(data).length > 0 ? data : undefined,\r\n timeout: options.timeout || timeout,\r\n headers: options.headers || {},\r\n queryParameters: options.queryParameters || {},\r\n cacheable: options.cacheable,\r\n };\r\n}\n\nconst CallEnum = {\r\n /**\r\n * If the host is read only.\r\n */\r\n Read: 1,\r\n /**\r\n * If the host is write only.\r\n */\r\n Write: 2,\r\n /**\r\n * If the host is both read and write.\r\n */\r\n Any: 3,\r\n};\n\nconst HostStatusEnum = {\r\n Up: 1,\r\n Down: 2,\r\n Timeouted: 3,\r\n};\n\n// By default, API Clients at Algolia have expiration delay\r\n// of 5 mins. In the JavaScript client, we have 2 mins.\r\nconst EXPIRATION_DELAY = 2 * 60 * 1000;\r\nfunction createStatefulHost(host, status = HostStatusEnum.Up) {\r\n return {\r\n ...host,\r\n status,\r\n lastUpdate: Date.now(),\r\n };\r\n}\r\nfunction isStatefulHostUp(host) {\r\n return host.status === HostStatusEnum.Up || Date.now() - host.lastUpdate > EXPIRATION_DELAY;\r\n}\r\nfunction isStatefulHostTimeouted(host) {\r\n return (host.status === HostStatusEnum.Timeouted && Date.now() - host.lastUpdate <= EXPIRATION_DELAY);\r\n}\n\nfunction createStatelessHost(options) {\r\n if (typeof options === 'string') {\r\n return {\r\n protocol: 'https',\r\n url: options,\r\n accept: CallEnum.Any,\r\n };\r\n }\r\n return {\r\n protocol: options.protocol || 'https',\r\n url: options.url,\r\n accept: options.accept || CallEnum.Any,\r\n };\r\n}\n\nfunction createRetryableOptions(hostsCache, statelessHosts) {\r\n return Promise.all(statelessHosts.map(statelessHost => {\r\n return hostsCache.get(statelessHost, () => {\r\n return Promise.resolve(createStatefulHost(statelessHost));\r\n });\r\n })).then(statefulHosts => {\r\n const hostsUp = statefulHosts.filter(host => isStatefulHostUp(host));\r\n const hostsTimeouted = statefulHosts.filter(host => isStatefulHostTimeouted(host));\r\n /**\r\n * Note, we put the hosts that previously timeouted on the end of the list.\r\n */\r\n const hostsAvailable = [...hostsUp, ...hostsTimeouted];\r\n const statelessHostsAvailable = hostsAvailable.length > 0\r\n ? hostsAvailable.map(host => createStatelessHost(host))\r\n : statelessHosts;\r\n return {\r\n getTimeout(timeoutsCount, baseTimeout) {\r\n /**\r\n * Imagine that you have 4 hosts, if timeouts will increase\r\n * on the following way: 1 (timeouted) > 4 (timeouted) > 5 (200)\r\n *\r\n * Note that, the very next request, we start from the previous timeout\r\n *\r\n * 5 (timeouted) > 6 (timeouted) > 7 ...\r\n *\r\n * This strategy may need to be reviewed, but is the strategy on the our\r\n * current v3 version.\r\n */\r\n const timeoutMultiplier = hostsTimeouted.length === 0 && timeoutsCount === 0\r\n ? 1\r\n : hostsTimeouted.length + 3 + timeoutsCount;\r\n return timeoutMultiplier * baseTimeout;\r\n },\r\n statelessHosts: statelessHostsAvailable,\r\n };\r\n });\r\n}\n\nconst isNetworkError = ({ isTimedOut, status }) => {\r\n return !isTimedOut && ~~status === 0;\r\n};\r\nconst isRetryable = (response) => {\r\n const status = response.status;\r\n const isTimedOut = response.isTimedOut;\r\n return (isTimedOut || isNetworkError(response) || (~~(status / 100) !== 2 && ~~(status / 100) !== 4));\r\n};\r\nconst isSuccess = ({ status }) => {\r\n return ~~(status / 100) === 2;\r\n};\r\nconst retryDecision = (response, outcomes) => {\r\n if (isRetryable(response)) {\r\n return outcomes.onRetry(response);\r\n }\r\n if (isSuccess(response)) {\r\n return outcomes.onSuccess(response);\r\n }\r\n return outcomes.onFail(response);\r\n};\n\nfunction retryableRequest(transporter, statelessHosts, request, requestOptions) {\r\n const stackTrace = []; // eslint-disable-line functional/prefer-readonly-type\r\n /**\r\n * First we prepare the payload that do not depend from hosts.\r\n */\r\n const data = serializeData(request, requestOptions);\r\n const headers = serializeHeaders(transporter, requestOptions);\r\n const method = request.method;\r\n // On `GET`, the data is proxied to query parameters.\r\n const dataQueryParameters = request.method !== MethodEnum.Get\r\n ? {}\r\n : {\r\n ...request.data,\r\n ...requestOptions.data,\r\n };\r\n const queryParameters = {\r\n 'x-algolia-agent': transporter.userAgent.value,\r\n ...transporter.queryParameters,\r\n ...dataQueryParameters,\r\n ...requestOptions.queryParameters,\r\n };\r\n let timeoutsCount = 0; // eslint-disable-line functional/no-let\r\n const retry = (hosts, // eslint-disable-line functional/prefer-readonly-type\r\n getTimeout) => {\r\n /**\r\n * We iterate on each host, until there is no host left.\r\n */\r\n const host = hosts.pop(); // eslint-disable-line functional/immutable-data\r\n if (host === undefined) {\r\n throw createRetryError(stackTraceWithoutCredentials(stackTrace));\r\n }\r\n const payload = {\r\n data,\r\n headers,\r\n method,\r\n url: serializeUrl(host, request.path, queryParameters),\r\n connectTimeout: getTimeout(timeoutsCount, transporter.timeouts.connect),\r\n responseTimeout: getTimeout(timeoutsCount, requestOptions.timeout),\r\n };\r\n /**\r\n * The stackFrame is pushed to the stackTrace so we\r\n * can have information about onRetry and onFailure\r\n * decisions.\r\n */\r\n const pushToStackTrace = (response) => {\r\n const stackFrame = {\r\n request: payload,\r\n response,\r\n host,\r\n triesLeft: hosts.length,\r\n };\r\n // eslint-disable-next-line functional/immutable-data\r\n stackTrace.push(stackFrame);\r\n return stackFrame;\r\n };\r\n const decisions = {\r\n onSuccess: response => deserializeSuccess(response),\r\n onRetry(response) {\r\n const stackFrame = pushToStackTrace(response);\r\n /**\r\n * If response is a timeout, we increaset the number of\r\n * timeouts so we can increase the timeout later.\r\n */\r\n if (response.isTimedOut) {\r\n timeoutsCount++;\r\n }\r\n return Promise.all([\r\n /**\r\n * Failures are individually send the logger, allowing\r\n * the end user to debug / store stack frames even\r\n * when a retry error does not happen.\r\n */\r\n transporter.logger.info('Retryable failure', stackFrameWithoutCredentials(stackFrame)),\r\n /**\r\n * We also store the state of the host in failure cases. If the host, is\r\n * down it will remain down for the next 2 minutes. In a timeout situation,\r\n * this host will be added end of the list of hosts on the next request.\r\n */\r\n transporter.hostsCache.set(host, createStatefulHost(host, response.isTimedOut ? HostStatusEnum.Timeouted : HostStatusEnum.Down)),\r\n ]).then(() => retry(hosts, getTimeout));\r\n },\r\n onFail(response) {\r\n pushToStackTrace(response);\r\n throw deserializeFailure(response, stackTraceWithoutCredentials(stackTrace));\r\n },\r\n };\r\n return transporter.requester.send(payload).then(response => {\r\n return retryDecision(response, decisions);\r\n });\r\n };\r\n /**\r\n * Finally, for each retryable host perform request until we got a non\r\n * retryable response. Some notes here:\r\n *\r\n * 1. The reverse here is applied so we can apply a `pop` later on => more performant.\r\n * 2. We also get from the retryable options a timeout multiplier that is tailored\r\n * for the current context.\r\n */\r\n return createRetryableOptions(transporter.hostsCache, statelessHosts).then(options => {\r\n return retry([...options.statelessHosts].reverse(), options.getTimeout);\r\n });\r\n}\n\nfunction createTransporter(options) {\r\n const { hostsCache, logger, requester, requestsCache, responsesCache, timeouts, userAgent, hosts, queryParameters, headers, } = options;\r\n const transporter = {\r\n hostsCache,\r\n logger,\r\n requester,\r\n requestsCache,\r\n responsesCache,\r\n timeouts,\r\n userAgent,\r\n headers,\r\n queryParameters,\r\n hosts: hosts.map(host => createStatelessHost(host)),\r\n read(request, requestOptions) {\r\n /**\r\n * First, we compute the user request options. Now, keep in mind,\r\n * that using request options the user is able to modified the intire\r\n * payload of the request. Such as headers, query parameters, and others.\r\n */\r\n const mappedRequestOptions = createMappedRequestOptions(requestOptions, transporter.timeouts.read);\r\n const createRetryableRequest = () => {\r\n /**\r\n * Then, we prepare a function factory that contains the construction of\r\n * the retryable request. At this point, we may *not* perform the actual\r\n * request. But we want to have the function factory ready.\r\n */\r\n return retryableRequest(transporter, transporter.hosts.filter(host => (host.accept & CallEnum.Read) !== 0), request, mappedRequestOptions);\r\n };\r\n /**\r\n * Once we have the function factory ready, we need to determine of the\r\n * request is \"cacheable\" - should be cached. Note that, once again,\r\n * the user can force this option.\r\n */\r\n const cacheable = mappedRequestOptions.cacheable !== undefined\r\n ? mappedRequestOptions.cacheable\r\n : request.cacheable;\r\n /**\r\n * If is not \"cacheable\", we immediatly trigger the retryable request, no\r\n * need to check cache implementations.\r\n */\r\n if (cacheable !== true) {\r\n return createRetryableRequest();\r\n }\r\n /**\r\n * If the request is \"cacheable\", we need to first compute the key to ask\r\n * the cache implementations if this request is on progress or if the\r\n * response already exists on the cache.\r\n */\r\n const key = {\r\n request,\r\n mappedRequestOptions,\r\n transporter: {\r\n queryParameters: transporter.queryParameters,\r\n headers: transporter.headers,\r\n },\r\n };\r\n /**\r\n * With the computed key, we first ask the responses cache\r\n * implemention if this request was been resolved before.\r\n */\r\n return transporter.responsesCache.get(key, () => {\r\n /**\r\n * If the request has never resolved before, we actually ask if there\r\n * is a current request with the same key on progress.\r\n */\r\n return transporter.requestsCache.get(key, () => {\r\n return (transporter.requestsCache\r\n /**\r\n * Finally, if there is no request in progress with the same key,\r\n * this `createRetryableRequest()` will actually trigger the\r\n * retryable request.\r\n */\r\n .set(key, createRetryableRequest())\r\n .then(response => Promise.all([transporter.requestsCache.delete(key), response]), err => Promise.all([transporter.requestsCache.delete(key), Promise.reject(err)]))\r\n .then(([_, response]) => response));\r\n });\r\n }, {\r\n /**\r\n * Of course, once we get this response back from the server, we\r\n * tell response cache to actually store the received response\r\n * to be used later.\r\n */\r\n miss: response => transporter.responsesCache.set(key, response),\r\n });\r\n },\r\n write(request, requestOptions) {\r\n /**\r\n * On write requests, no cache mechanisms are applied, and we\r\n * proxy the request immediately to the requester.\r\n */\r\n return retryableRequest(transporter, transporter.hosts.filter(host => (host.accept & CallEnum.Write) !== 0), request, createMappedRequestOptions(requestOptions, transporter.timeouts.write));\r\n },\r\n };\r\n return transporter;\r\n}\n\nfunction createUserAgent(version) {\r\n const userAgent = {\r\n value: `Algolia for JavaScript (${version})`,\r\n add(options) {\r\n const addedUserAgent = `; ${options.segment}${options.version !== undefined ? ` (${options.version})` : ''}`;\r\n if (userAgent.value.indexOf(addedUserAgent) === -1) {\r\n // eslint-disable-next-line functional/immutable-data\r\n userAgent.value = `${userAgent.value}${addedUserAgent}`;\r\n }\r\n return userAgent;\r\n },\r\n };\r\n return userAgent;\r\n}\n\nfunction deserializeSuccess(response) {\r\n // eslint-disable-next-line functional/no-try-statement\r\n try {\r\n return JSON.parse(response.content);\r\n }\r\n catch (e) {\r\n throw createDeserializationError(e.message, response);\r\n }\r\n}\r\nfunction deserializeFailure({ content, status }, stackFrame) {\r\n // eslint-disable-next-line functional/no-let\r\n let message = content;\r\n // eslint-disable-next-line functional/no-try-statement\r\n try {\r\n message = JSON.parse(content).message;\r\n }\r\n catch (e) {\r\n // ..\r\n }\r\n return createApiError(message, status, stackFrame);\r\n}\n\n// eslint-disable-next-line functional/prefer-readonly-type\r\nfunction encode(format, ...args) {\r\n // eslint-disable-next-line functional/no-let\r\n let i = 0;\r\n return format.replace(/%s/g, () => encodeURIComponent(args[i++]));\r\n}\n\nfunction serializeUrl(host, path, queryParameters) {\r\n const queryParametersAsString = serializeQueryParameters(queryParameters);\r\n // eslint-disable-next-line functional/no-let\r\n let url = `${host.protocol}://${host.url}/${path.charAt(0) === '/' ? path.substr(1) : path}`;\r\n if (queryParametersAsString.length) {\r\n url += `?${queryParametersAsString}`;\r\n }\r\n return url;\r\n}\r\nfunction serializeQueryParameters(parameters) {\r\n const isObjectOrArray = (value) => Object.prototype.toString.call(value) === '[object Object]' ||\r\n Object.prototype.toString.call(value) === '[object Array]';\r\n return Object.keys(parameters)\r\n .map(key => encode('%s=%s', key, isObjectOrArray(parameters[key]) ? JSON.stringify(parameters[key]) : parameters[key]))\r\n .join('&');\r\n}\r\nfunction serializeData(request, requestOptions) {\r\n if (request.method === MethodEnum.Get ||\r\n (request.data === undefined && requestOptions.data === undefined)) {\r\n return undefined;\r\n }\r\n const data = Array.isArray(request.data)\r\n ? request.data\r\n : { ...request.data, ...requestOptions.data };\r\n return JSON.stringify(data);\r\n}\r\nfunction serializeHeaders(transporter, requestOptions) {\r\n const headers = {\r\n ...transporter.headers,\r\n ...requestOptions.headers,\r\n };\r\n const serializedHeaders = {};\r\n Object.keys(headers).forEach(header => {\r\n const value = headers[header];\r\n // @ts-ignore\r\n // eslint-disable-next-line functional/immutable-data\r\n serializedHeaders[header.toLowerCase()] = value;\r\n });\r\n return serializedHeaders;\r\n}\n\nfunction stackTraceWithoutCredentials(stackTrace) {\r\n return stackTrace.map(stackFrame => stackFrameWithoutCredentials(stackFrame));\r\n}\r\nfunction stackFrameWithoutCredentials(stackFrame) {\r\n const modifiedHeaders = stackFrame.request.headers['x-algolia-api-key']\r\n ? { 'x-algolia-api-key': '*****' }\r\n : {};\r\n return {\r\n ...stackFrame,\r\n request: {\r\n ...stackFrame.request,\r\n headers: {\r\n ...stackFrame.request.headers,\r\n ...modifiedHeaders,\r\n },\r\n },\r\n };\r\n}\n\nfunction createApiError(message, status, transporterStackTrace) {\r\n return {\r\n name: 'ApiError',\r\n message,\r\n status,\r\n transporterStackTrace,\r\n };\r\n}\n\nfunction createDeserializationError(message, response) {\r\n return {\r\n name: 'DeserializationError',\r\n message,\r\n response,\r\n };\r\n}\n\nfunction createRetryError(transporterStackTrace) {\r\n return {\r\n name: 'RetryError',\r\n message: 'Unreachable hosts - your application id may be incorrect. If the error persists, please reach out to the Algolia Support team: https://alg.li/support .',\r\n transporterStackTrace,\r\n };\r\n}\n\nexport { CallEnum, HostStatusEnum, createApiError, createDeserializationError, createMappedRequestOptions, createRetryError, createStatefulHost, createStatelessHost, createTransporter, createUserAgent, deserializeFailure, deserializeSuccess, isStatefulHostTimeouted, isStatefulHostUp, serializeData, serializeHeaders, serializeQueryParameters, serializeUrl, stackFrameWithoutCredentials, stackTraceWithoutCredentials };\n","import { createAuth, AuthMode, addMethods, encode } from '@algolia/client-common';\nimport { createTransporter } from '@algolia/transporter';\nimport { MethodEnum } from '@algolia/requester-common';\n\nconst createAnalyticsClient = options => {\r\n const region = options.region || 'us';\r\n const auth = createAuth(AuthMode.WithinHeaders, options.appId, options.apiKey);\r\n const transporter = createTransporter({\r\n hosts: [{ url: `analytics.${region}.algolia.com` }],\r\n ...options,\r\n headers: {\r\n ...auth.headers(),\r\n ...{ 'content-type': 'application/json' },\r\n ...options.headers,\r\n },\r\n queryParameters: {\r\n ...auth.queryParameters(),\r\n ...options.queryParameters,\r\n },\r\n });\r\n const appId = options.appId;\r\n return addMethods({ appId, transporter }, options.methods);\r\n};\n\nconst addABTest = (base) => {\r\n return (abTest, requestOptions) => {\r\n return base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: '2/abtests',\r\n data: abTest,\r\n }, requestOptions);\r\n };\r\n};\n\nconst deleteABTest = (base) => {\r\n return (abTestID, requestOptions) => {\r\n return base.transporter.write({\r\n method: MethodEnum.Delete,\r\n path: encode('2/abtests/%s', abTestID),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getABTest = (base) => {\r\n return (abTestID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('2/abtests/%s', abTestID),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getABTests = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '2/abtests',\r\n }, requestOptions);\r\n };\r\n};\n\nconst stopABTest = (base) => {\r\n return (abTestID, requestOptions) => {\r\n return base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('2/abtests/%s/stop', abTestID),\r\n }, requestOptions);\r\n };\r\n};\n\nexport { addABTest, createAnalyticsClient, deleteABTest, getABTest, getABTests, stopABTest };\n","function createAuth(authMode, appId, apiKey) {\r\n const credentials = {\r\n 'x-algolia-api-key': apiKey,\r\n 'x-algolia-application-id': appId,\r\n };\r\n return {\r\n headers() {\r\n return authMode === AuthMode.WithinHeaders ? credentials : {};\r\n },\r\n queryParameters() {\r\n return authMode === AuthMode.WithinQueryParameters ? credentials : {};\r\n },\r\n };\r\n}\n\nfunction createRetryablePromise(callback) {\r\n let retriesCount = 0; // eslint-disable-line functional/no-let\r\n const retry = () => {\r\n retriesCount++;\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve(callback(retry));\r\n }, Math.min(100 * retriesCount, 1000));\r\n });\r\n };\r\n return callback(retry);\r\n}\n\nfunction createWaitablePromise(promise, wait = (_response, _requestOptions) => {\r\n return Promise.resolve();\r\n}) {\r\n // eslint-disable-next-line functional/immutable-data\r\n return Object.assign(promise, {\r\n wait(requestOptions) {\r\n return createWaitablePromise(promise\r\n .then(response => Promise.all([wait(response, requestOptions), response]))\r\n .then(promiseResults => promiseResults[1]));\r\n },\r\n });\r\n}\n\n// eslint-disable-next-line functional/prefer-readonly-type\r\nfunction shuffle(array) {\r\n let c = array.length - 1; // eslint-disable-line functional/no-let\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (c; c > 0; c--) {\r\n const b = Math.floor(Math.random() * (c + 1));\r\n const a = array[c];\r\n array[c] = array[b]; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n array[b] = a; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n }\r\n return array;\r\n}\r\nfunction addMethods(base, methods) {\r\n if (!methods) {\r\n return base;\r\n }\r\n Object.keys(methods).forEach(key => {\r\n // eslint-disable-next-line functional/immutable-data, no-param-reassign\r\n base[key] = methods[key](base);\r\n });\r\n return base;\r\n}\r\nfunction encode(format, ...args) {\r\n // eslint-disable-next-line functional/no-let\r\n let i = 0;\r\n return format.replace(/%s/g, () => encodeURIComponent(args[i++]));\r\n}\n\nconst version = '4.24.0';\n\nconst destroy = (base) => {\r\n return () => {\r\n return base.transporter.requester.destroy();\r\n };\r\n};\n\nconst AuthMode = {\r\n /**\r\n * If auth credentials should be in query parameters.\r\n */\r\n WithinQueryParameters: 0,\r\n /**\r\n * If auth credentials should be in headers.\r\n */\r\n WithinHeaders: 1,\r\n};\n\nexport { AuthMode, addMethods, createAuth, createRetryablePromise, createWaitablePromise, destroy, encode, shuffle, version };\n","function createAuth(authMode, appId, apiKey) {\r\n const credentials = {\r\n 'x-algolia-api-key': apiKey,\r\n 'x-algolia-application-id': appId,\r\n };\r\n return {\r\n headers() {\r\n return authMode === AuthMode.WithinHeaders ? credentials : {};\r\n },\r\n queryParameters() {\r\n return authMode === AuthMode.WithinQueryParameters ? credentials : {};\r\n },\r\n };\r\n}\n\nfunction createRetryablePromise(callback) {\r\n let retriesCount = 0; // eslint-disable-line functional/no-let\r\n const retry = () => {\r\n retriesCount++;\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve(callback(retry));\r\n }, Math.min(100 * retriesCount, 1000));\r\n });\r\n };\r\n return callback(retry);\r\n}\n\nfunction createWaitablePromise(promise, wait = (_response, _requestOptions) => {\r\n return Promise.resolve();\r\n}) {\r\n // eslint-disable-next-line functional/immutable-data\r\n return Object.assign(promise, {\r\n wait(requestOptions) {\r\n return createWaitablePromise(promise\r\n .then(response => Promise.all([wait(response, requestOptions), response]))\r\n .then(promiseResults => promiseResults[1]));\r\n },\r\n });\r\n}\n\n// eslint-disable-next-line functional/prefer-readonly-type\r\nfunction shuffle(array) {\r\n let c = array.length - 1; // eslint-disable-line functional/no-let\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (c; c > 0; c--) {\r\n const b = Math.floor(Math.random() * (c + 1));\r\n const a = array[c];\r\n array[c] = array[b]; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n array[b] = a; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n }\r\n return array;\r\n}\r\nfunction addMethods(base, methods) {\r\n if (!methods) {\r\n return base;\r\n }\r\n Object.keys(methods).forEach(key => {\r\n // eslint-disable-next-line functional/immutable-data, no-param-reassign\r\n base[key] = methods[key](base);\r\n });\r\n return base;\r\n}\r\nfunction encode(format, ...args) {\r\n // eslint-disable-next-line functional/no-let\r\n let i = 0;\r\n return format.replace(/%s/g, () => encodeURIComponent(args[i++]));\r\n}\n\nconst version = '4.24.0';\n\nconst destroy = (base) => {\r\n return () => {\r\n return base.transporter.requester.destroy();\r\n };\r\n};\n\nconst AuthMode = {\r\n /**\r\n * If auth credentials should be in query parameters.\r\n */\r\n WithinQueryParameters: 0,\r\n /**\r\n * If auth credentials should be in headers.\r\n */\r\n WithinHeaders: 1,\r\n};\n\nexport { AuthMode, addMethods, createAuth, createRetryablePromise, createWaitablePromise, destroy, encode, shuffle, version };\n","import { createAuth, AuthMode, addMethods } from '@algolia/client-common';\nimport { createTransporter } from '@algolia/transporter';\nimport { MethodEnum } from '@algolia/requester-common';\n\nconst createPersonalizationClient = options => {\r\n const region = options.region || 'us';\r\n const auth = createAuth(AuthMode.WithinHeaders, options.appId, options.apiKey);\r\n const transporter = createTransporter({\r\n hosts: [{ url: `personalization.${region}.algolia.com` }],\r\n ...options,\r\n headers: {\r\n ...auth.headers(),\r\n ...{ 'content-type': 'application/json' },\r\n ...options.headers,\r\n },\r\n queryParameters: {\r\n ...auth.queryParameters(),\r\n ...options.queryParameters,\r\n },\r\n });\r\n return addMethods({ appId: options.appId, transporter }, options.methods);\r\n};\n\nconst getPersonalizationStrategy = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/strategies/personalization',\r\n }, requestOptions);\r\n };\r\n};\n\nconst setPersonalizationStrategy = (base) => {\r\n return (personalizationStrategy, requestOptions) => {\r\n return base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: '1/strategies/personalization',\r\n data: personalizationStrategy,\r\n }, requestOptions);\r\n };\r\n};\n\nexport { createPersonalizationClient, getPersonalizationStrategy, setPersonalizationStrategy };\n","function createAuth(authMode, appId, apiKey) {\r\n const credentials = {\r\n 'x-algolia-api-key': apiKey,\r\n 'x-algolia-application-id': appId,\r\n };\r\n return {\r\n headers() {\r\n return authMode === AuthMode.WithinHeaders ? credentials : {};\r\n },\r\n queryParameters() {\r\n return authMode === AuthMode.WithinQueryParameters ? credentials : {};\r\n },\r\n };\r\n}\n\nfunction createRetryablePromise(callback) {\r\n let retriesCount = 0; // eslint-disable-line functional/no-let\r\n const retry = () => {\r\n retriesCount++;\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve(callback(retry));\r\n }, Math.min(100 * retriesCount, 1000));\r\n });\r\n };\r\n return callback(retry);\r\n}\n\nfunction createWaitablePromise(promise, wait = (_response, _requestOptions) => {\r\n return Promise.resolve();\r\n}) {\r\n // eslint-disable-next-line functional/immutable-data\r\n return Object.assign(promise, {\r\n wait(requestOptions) {\r\n return createWaitablePromise(promise\r\n .then(response => Promise.all([wait(response, requestOptions), response]))\r\n .then(promiseResults => promiseResults[1]));\r\n },\r\n });\r\n}\n\n// eslint-disable-next-line functional/prefer-readonly-type\r\nfunction shuffle(array) {\r\n let c = array.length - 1; // eslint-disable-line functional/no-let\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (c; c > 0; c--) {\r\n const b = Math.floor(Math.random() * (c + 1));\r\n const a = array[c];\r\n array[c] = array[b]; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n array[b] = a; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n }\r\n return array;\r\n}\r\nfunction addMethods(base, methods) {\r\n if (!methods) {\r\n return base;\r\n }\r\n Object.keys(methods).forEach(key => {\r\n // eslint-disable-next-line functional/immutable-data, no-param-reassign\r\n base[key] = methods[key](base);\r\n });\r\n return base;\r\n}\r\nfunction encode(format, ...args) {\r\n // eslint-disable-next-line functional/no-let\r\n let i = 0;\r\n return format.replace(/%s/g, () => encodeURIComponent(args[i++]));\r\n}\n\nconst version = '4.24.0';\n\nconst destroy = (base) => {\r\n return () => {\r\n return base.transporter.requester.destroy();\r\n };\r\n};\n\nconst AuthMode = {\r\n /**\r\n * If auth credentials should be in query parameters.\r\n */\r\n WithinQueryParameters: 0,\r\n /**\r\n * If auth credentials should be in headers.\r\n */\r\n WithinHeaders: 1,\r\n};\n\nexport { AuthMode, addMethods, createAuth, createRetryablePromise, createWaitablePromise, destroy, encode, shuffle, version };\n","import { createAuth, AuthMode, shuffle, addMethods, createWaitablePromise, createRetryablePromise, encode } from '@algolia/client-common';\nimport { createTransporter, CallEnum, createMappedRequestOptions, serializeQueryParameters } from '@algolia/transporter';\nimport { MethodEnum } from '@algolia/requester-common';\nimport { createHmac } from 'crypto';\n\nfunction createBrowsablePromise(options) {\r\n const browse = (data) => {\r\n return options.request(data).then(response => {\r\n /**\r\n * First we send to the developer the\r\n * batch retrieved from the API.\r\n */\r\n if (options.batch !== undefined) {\r\n options.batch(response.hits);\r\n }\r\n /**\r\n * Then, we ask to the browse concrete implementation\r\n * if we should stop browsing. As example, the `browseObjects`\r\n * method will stop if the cursor is not present on the response.\r\n */\r\n if (options.shouldStop(response)) {\r\n return undefined;\r\n }\r\n /**\r\n * Finally, if the response contains a cursor, we browse to the next\r\n * batch using that same cursor. Otherwise, we just use the traditional\r\n * browsing using the page element.\r\n */\r\n if (response.cursor) {\r\n return browse({\r\n cursor: response.cursor,\r\n });\r\n }\r\n return browse({\r\n page: (data.page || 0) + 1,\r\n });\r\n });\r\n };\r\n return browse({});\r\n}\n\nconst createSearchClient = options => {\r\n const appId = options.appId;\r\n const auth = createAuth(options.authMode !== undefined ? options.authMode : AuthMode.WithinHeaders, appId, options.apiKey);\r\n const transporter = createTransporter({\r\n hosts: [\r\n { url: `${appId}-dsn.algolia.net`, accept: CallEnum.Read },\r\n { url: `${appId}.algolia.net`, accept: CallEnum.Write },\r\n ].concat(shuffle([\r\n { url: `${appId}-1.algolianet.com` },\r\n { url: `${appId}-2.algolianet.com` },\r\n { url: `${appId}-3.algolianet.com` },\r\n ])),\r\n ...options,\r\n headers: {\r\n ...auth.headers(),\r\n ...{ 'content-type': 'application/x-www-form-urlencoded' },\r\n ...options.headers,\r\n },\r\n queryParameters: {\r\n ...auth.queryParameters(),\r\n ...options.queryParameters,\r\n },\r\n });\r\n const base = {\r\n transporter,\r\n appId,\r\n addAlgoliaAgent(segment, version) {\r\n transporter.userAgent.add({ segment, version });\r\n },\r\n clearCache() {\r\n return Promise.all([\r\n transporter.requestsCache.clear(),\r\n transporter.responsesCache.clear(),\r\n ]).then(() => undefined);\r\n },\r\n };\r\n return addMethods(base, options.methods);\r\n};\n\nfunction createMissingObjectIDError() {\r\n return {\r\n name: 'MissingObjectIDError',\r\n message: 'All objects must have an unique objectID ' +\r\n '(like a primary key) to be valid. ' +\r\n 'Algolia is also able to generate objectIDs ' +\r\n \"automatically but *it's not recommended*. \" +\r\n \"To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option.\",\r\n };\r\n}\n\nfunction createObjectNotFoundError() {\r\n return {\r\n name: 'ObjectNotFoundError',\r\n message: 'Object not found.',\r\n };\r\n}\n\nfunction createValidUntilNotFoundError() {\r\n return {\r\n name: 'ValidUntilNotFoundError',\r\n message: 'ValidUntil not found in given secured api key.',\r\n };\r\n}\n\nconst addApiKey = (base) => {\r\n return (acl, requestOptions) => {\r\n const { queryParameters, ...options } = requestOptions || {};\r\n const data = {\r\n acl,\r\n ...(queryParameters !== undefined ? { queryParameters } : {}),\r\n };\r\n const wait = (response, waitRequestOptions) => {\r\n return createRetryablePromise(retry => {\r\n return getApiKey(base)(response.key, waitRequestOptions).catch((apiError) => {\r\n if (apiError.status !== 404) {\r\n throw apiError;\r\n }\r\n return retry();\r\n });\r\n });\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: '1/keys',\r\n data,\r\n }, options), wait);\r\n };\r\n};\n\nconst assignUserID = (base) => {\r\n return (userID, clusterName, requestOptions) => {\r\n const mappedRequestOptions = createMappedRequestOptions(requestOptions);\r\n // eslint-disable-next-line functional/immutable-data\r\n mappedRequestOptions.queryParameters['X-Algolia-User-ID'] = userID;\r\n return base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: '1/clusters/mapping',\r\n data: { cluster: clusterName },\r\n }, mappedRequestOptions);\r\n };\r\n};\n\nconst assignUserIDs = (base) => {\r\n return (userIDs, clusterName, requestOptions) => {\r\n return base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: '1/clusters/mapping/batch',\r\n data: {\r\n users: userIDs,\r\n cluster: clusterName,\r\n },\r\n }, requestOptions);\r\n };\r\n};\n\nconst clearDictionaryEntries = (base) => {\r\n return (dictionary, requestOptions) => {\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('/1/dictionaries/%s/batch', dictionary),\r\n data: {\r\n clearExistingDictionaryEntries: true,\r\n requests: { action: 'addEntry', body: [] },\r\n },\r\n }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst copyIndex = (base) => {\r\n return (from, to, requestOptions) => {\r\n const wait = (response, waitRequestOptions) => {\r\n return initIndex(base)(from, {\r\n methods: { waitTask },\r\n }).waitTask(response.taskID, waitRequestOptions);\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/operation', from),\r\n data: {\r\n operation: 'copy',\r\n destination: to,\r\n },\r\n }, requestOptions), wait);\r\n };\r\n};\n\nconst copyRules = (base) => {\r\n return (from, to, requestOptions) => {\r\n return copyIndex(base)(from, to, {\r\n ...requestOptions,\r\n scope: [ScopeEnum.Rules],\r\n });\r\n };\r\n};\n\nconst copySettings = (base) => {\r\n return (from, to, requestOptions) => {\r\n return copyIndex(base)(from, to, {\r\n ...requestOptions,\r\n scope: [ScopeEnum.Settings],\r\n });\r\n };\r\n};\n\nconst copySynonyms = (base) => {\r\n return (from, to, requestOptions) => {\r\n return copyIndex(base)(from, to, {\r\n ...requestOptions,\r\n scope: [ScopeEnum.Synonyms],\r\n });\r\n };\r\n};\n\nconst customRequest = (base) => {\r\n return (request, requestOptions) => {\r\n if (request.method === MethodEnum.Get) {\r\n return base.transporter.read(request, requestOptions);\r\n }\r\n return base.transporter.write(request, requestOptions);\r\n };\r\n};\n\nconst deleteApiKey = (base) => {\r\n return (apiKey, requestOptions) => {\r\n const wait = (_, waitRequestOptions) => {\r\n return createRetryablePromise(retry => {\r\n return getApiKey(base)(apiKey, waitRequestOptions)\r\n .then(retry)\r\n .catch((apiError) => {\r\n if (apiError.status !== 404) {\r\n throw apiError;\r\n }\r\n });\r\n });\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Delete,\r\n path: encode('1/keys/%s', apiKey),\r\n }, requestOptions), wait);\r\n };\r\n};\n\nconst deleteDictionaryEntries = (base) => {\r\n return (dictionary, objectIDs, requestOptions) => {\r\n const requests = objectIDs.map(objectID => ({\r\n action: 'deleteEntry',\r\n body: { objectID },\r\n }));\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('/1/dictionaries/%s/batch', dictionary),\r\n data: { clearExistingDictionaryEntries: false, requests },\r\n }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst generateSecuredApiKey = () => {\r\n return (parentApiKey, restrictions) => {\r\n const queryParameters = serializeQueryParameters(restrictions);\r\n const securedKey = createHmac('sha256', parentApiKey)\r\n .update(queryParameters)\r\n .digest('hex');\r\n return Buffer.from(securedKey + queryParameters).toString('base64');\r\n };\r\n};\n\nconst getApiKey = (base) => {\r\n return (apiKey, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/keys/%s', apiKey),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getAppTask = (base) => {\r\n return (taskID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/task/%s', taskID.toString()),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getDictionarySettings = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '/1/dictionaries/*/settings',\r\n }, requestOptions);\r\n };\r\n};\n\nconst getLogs = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/logs',\r\n }, requestOptions);\r\n };\r\n};\n\nconst getSecuredApiKeyRemainingValidity = () => {\r\n return (securedApiKey) => {\r\n const decodedString = Buffer.from(securedApiKey, 'base64').toString('ascii');\r\n const regex = /validUntil=(\\d+)/;\r\n const match = decodedString.match(regex);\r\n if (match === null) {\r\n throw createValidUntilNotFoundError();\r\n }\r\n return parseInt(match[1], 10) - Math.round(new Date().getTime() / 1000);\r\n };\r\n};\n\nconst getTopUserIDs = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/clusters/mapping/top',\r\n }, requestOptions);\r\n };\r\n};\n\nconst getUserID = (base) => {\r\n return (userID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/clusters/mapping/%s', userID),\r\n }, requestOptions);\r\n };\r\n};\n\nconst hasPendingMappings = (base) => {\r\n return (requestOptions) => {\r\n const { retrieveMappings, ...options } = requestOptions || {};\r\n if (retrieveMappings === true) {\r\n // eslint-disable-next-line functional/immutable-data\r\n options.getClusters = true;\r\n }\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/clusters/mapping/pending',\r\n }, options);\r\n };\r\n};\n\nconst initIndex = (base) => {\r\n return (indexName, options = {}) => {\r\n const searchIndex = {\r\n transporter: base.transporter,\r\n appId: base.appId,\r\n indexName,\r\n };\r\n return addMethods(searchIndex, options.methods);\r\n };\r\n};\n\nconst listApiKeys = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/keys',\r\n }, requestOptions);\r\n };\r\n};\n\nconst listClusters = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/clusters',\r\n }, requestOptions);\r\n };\r\n};\n\nconst listIndices = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/indexes',\r\n }, requestOptions);\r\n };\r\n};\n\nconst listUserIDs = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/clusters/mapping',\r\n }, requestOptions);\r\n };\r\n};\n\nconst moveIndex = (base) => {\r\n return (from, to, requestOptions) => {\r\n const wait = (response, waitRequestOptions) => {\r\n return initIndex(base)(from, {\r\n methods: { waitTask },\r\n }).waitTask(response.taskID, waitRequestOptions);\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/operation', from),\r\n data: {\r\n operation: 'move',\r\n destination: to,\r\n },\r\n }, requestOptions), wait);\r\n };\r\n};\n\nconst multipleBatch = (base) => {\r\n return (requests, requestOptions) => {\r\n const wait = (response, waitRequestOptions) => {\r\n return Promise.all(Object.keys(response.taskID).map(indexName => {\r\n return initIndex(base)(indexName, {\r\n methods: { waitTask },\r\n }).waitTask(response.taskID[indexName], waitRequestOptions);\r\n }));\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: '1/indexes/*/batch',\r\n data: {\r\n requests,\r\n },\r\n }, requestOptions), wait);\r\n };\r\n};\n\nconst multipleGetObjects = (base) => {\r\n return (requests, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: '1/indexes/*/objects',\r\n data: {\r\n requests,\r\n },\r\n }, requestOptions);\r\n };\r\n};\n\nconst multipleQueries = (base) => {\r\n return (queries, requestOptions) => {\r\n const requests = queries.map(query => {\r\n return {\r\n ...query,\r\n params: serializeQueryParameters(query.params || {}),\r\n };\r\n });\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: '1/indexes/*/queries',\r\n data: {\r\n requests,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst multipleSearchForFacetValues = (base) => {\r\n return (queries, requestOptions) => {\r\n return Promise.all(queries.map(query => {\r\n const { facetName, facetQuery, ...params } = query.params;\r\n return initIndex(base)(query.indexName, {\r\n methods: { searchForFacetValues },\r\n }).searchForFacetValues(facetName, facetQuery, {\r\n ...requestOptions,\r\n ...params,\r\n });\r\n }));\r\n };\r\n};\n\nconst removeUserID = (base) => {\r\n return (userID, requestOptions) => {\r\n const mappedRequestOptions = createMappedRequestOptions(requestOptions);\r\n // eslint-disable-next-line functional/immutable-data\r\n mappedRequestOptions.queryParameters['X-Algolia-User-ID'] = userID;\r\n return base.transporter.write({\r\n method: MethodEnum.Delete,\r\n path: '1/clusters/mapping',\r\n }, mappedRequestOptions);\r\n };\r\n};\n\nconst replaceDictionaryEntries = (base) => {\r\n return (dictionary, entries, requestOptions) => {\r\n const requests = entries.map(entry => ({\r\n action: 'addEntry',\r\n body: entry,\r\n }));\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('/1/dictionaries/%s/batch', dictionary),\r\n data: { clearExistingDictionaryEntries: true, requests },\r\n }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst restoreApiKey = (base) => {\r\n return (apiKey, requestOptions) => {\r\n const wait = (_, waitRequestOptions) => {\r\n return createRetryablePromise(retry => {\r\n return getApiKey(base)(apiKey, waitRequestOptions).catch((apiError) => {\r\n if (apiError.status !== 404) {\r\n throw apiError;\r\n }\r\n return retry();\r\n });\r\n });\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/keys/%s/restore', apiKey),\r\n }, requestOptions), wait);\r\n };\r\n};\n\nconst saveDictionaryEntries = (base) => {\r\n return (dictionary, entries, requestOptions) => {\r\n const requests = entries.map(entry => ({\r\n action: 'addEntry',\r\n body: entry,\r\n }));\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('/1/dictionaries/%s/batch', dictionary),\r\n data: { clearExistingDictionaryEntries: false, requests },\r\n }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst searchDictionaryEntries = (base) => {\r\n return (dictionary, query, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('/1/dictionaries/%s/search', dictionary),\r\n data: {\r\n query,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst searchUserIDs = (base) => {\r\n return (query, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: '1/clusters/mapping/search',\r\n data: {\r\n query,\r\n },\r\n }, requestOptions);\r\n };\r\n};\n\nconst setDictionarySettings = (base) => {\r\n return (settings, requestOptions) => {\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Put,\r\n path: '/1/dictionaries/*/settings',\r\n data: settings,\r\n }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst updateApiKey = (base) => {\r\n return (apiKey, requestOptions) => {\r\n const updatedFields = Object.assign({}, requestOptions);\r\n const { queryParameters, ...options } = requestOptions || {};\r\n const data = queryParameters ? { queryParameters } : {};\r\n const apiKeyFields = [\r\n 'acl',\r\n 'indexes',\r\n 'referers',\r\n 'restrictSources',\r\n 'queryParameters',\r\n 'description',\r\n 'maxQueriesPerIPPerHour',\r\n 'maxHitsPerQuery',\r\n ];\r\n // Check that all the fields retrieved through getApiKey are the same as the ones we wanted to update\r\n const hasChanged = (getApiKeyResponse) => {\r\n return Object.keys(updatedFields)\r\n .filter((updatedField) => apiKeyFields.indexOf(updatedField) !== -1)\r\n .every(updatedField => {\r\n // If the field is an array, we need to check that they are the same length and that all the values are the same\r\n if (Array.isArray(getApiKeyResponse[updatedField]) &&\r\n Array.isArray(updatedFields[updatedField])) {\r\n const getApiKeyResponseArray = getApiKeyResponse[updatedField];\r\n return (getApiKeyResponseArray.length === updatedFields[updatedField].length &&\r\n getApiKeyResponseArray.every((value, index) => value === updatedFields[updatedField][index]));\r\n }\r\n else {\r\n return getApiKeyResponse[updatedField] === updatedFields[updatedField];\r\n }\r\n });\r\n };\r\n const wait = (_, waitRequestOptions) => createRetryablePromise(retry => {\r\n return getApiKey(base)(apiKey, waitRequestOptions).then(getApiKeyResponse => {\r\n return hasChanged(getApiKeyResponse) ? Promise.resolve() : retry();\r\n });\r\n });\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Put,\r\n path: encode('1/keys/%s', apiKey),\r\n data,\r\n }, options), wait);\r\n };\r\n};\n\nconst waitAppTask = (base) => {\r\n return (taskID, requestOptions) => {\r\n return createRetryablePromise(retry => {\r\n return getAppTask(base)(taskID, requestOptions).then(response => {\r\n return response.status !== 'published' ? retry() : undefined;\r\n });\r\n });\r\n };\r\n};\n\nconst batch = (base) => {\r\n return (requests, requestOptions) => {\r\n const wait = (response, waitRequestOptions) => {\r\n return waitTask(base)(response.taskID, waitRequestOptions);\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/batch', base.indexName),\r\n data: {\r\n requests,\r\n },\r\n }, requestOptions), wait);\r\n };\r\n};\n\nconst browseObjects = (base) => {\r\n return (requestOptions) => {\r\n return createBrowsablePromise({\r\n shouldStop: response => response.cursor === undefined,\r\n ...requestOptions,\r\n request: (data) => base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/browse', base.indexName),\r\n data,\r\n }, requestOptions),\r\n });\r\n };\r\n};\n\nconst browseRules = (base) => {\r\n return (requestOptions) => {\r\n const options = {\r\n hitsPerPage: 1000,\r\n ...requestOptions,\r\n };\r\n return createBrowsablePromise({\r\n shouldStop: response => response.hits.length < options.hitsPerPage,\r\n ...options,\r\n request(data) {\r\n return searchRules(base)('', { ...options, ...data }).then((response) => {\r\n return {\r\n ...response,\r\n hits: response.hits.map(rule => {\r\n // eslint-disable-next-line functional/immutable-data,no-param-reassign\r\n delete rule._highlightResult;\r\n return rule;\r\n }),\r\n };\r\n });\r\n },\r\n });\r\n };\r\n};\n\nconst browseSynonyms = (base) => {\r\n return (requestOptions) => {\r\n const options = {\r\n hitsPerPage: 1000,\r\n ...requestOptions,\r\n };\r\n return createBrowsablePromise({\r\n shouldStop: response => response.hits.length < options.hitsPerPage,\r\n ...options,\r\n request(data) {\r\n return searchSynonyms(base)('', { ...options, ...data }).then((response) => {\r\n return {\r\n ...response,\r\n hits: response.hits.map(synonym => {\r\n // eslint-disable-next-line functional/immutable-data,no-param-reassign\r\n delete synonym._highlightResult;\r\n return synonym;\r\n }),\r\n };\r\n });\r\n },\r\n });\r\n };\r\n};\n\nconst chunkedBatch = (base) => {\r\n return (bodies, action, requestOptions) => {\r\n const { batchSize, ...options } = requestOptions || {};\r\n const response = {\r\n taskIDs: [],\r\n objectIDs: [],\r\n };\r\n const forEachBatch = (lastIndex = 0) => {\r\n // eslint-disable-next-line functional/prefer-readonly-type\r\n const bodiesChunk = [];\r\n // eslint-disable-next-line functional/no-let\r\n let index;\r\n /* eslint-disable-next-line functional/no-loop-statement */\r\n for (index = lastIndex; index < bodies.length; index++) {\r\n // eslint-disable-next-line functional/immutable-data\r\n bodiesChunk.push(bodies[index]);\r\n if (bodiesChunk.length === (batchSize || 1000)) {\r\n break;\r\n }\r\n }\r\n if (bodiesChunk.length === 0) {\r\n return Promise.resolve(response);\r\n }\r\n return batch(base)(bodiesChunk.map(body => {\r\n return {\r\n action,\r\n body,\r\n };\r\n }), options).then(res => {\r\n response.objectIDs = response.objectIDs.concat(res.objectIDs); // eslint-disable-line functional/immutable-data\r\n response.taskIDs.push(res.taskID); // eslint-disable-line functional/immutable-data\r\n index++;\r\n return forEachBatch(index);\r\n });\r\n };\r\n return createWaitablePromise(forEachBatch(), (chunkedBatchResponse, waitRequestOptions) => {\r\n return Promise.all(chunkedBatchResponse.taskIDs.map(taskID => {\r\n return waitTask(base)(taskID, waitRequestOptions);\r\n }));\r\n });\r\n };\r\n};\n\nconst clearObjects = (base) => {\r\n return (requestOptions) => {\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/clear', base.indexName),\r\n }, requestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst clearRules = (base) => {\r\n return (requestOptions) => {\r\n const { forwardToReplicas, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/rules/clear', base.indexName),\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst clearSynonyms = (base) => {\r\n return (requestOptions) => {\r\n const { forwardToReplicas, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/synonyms/clear', base.indexName),\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst deleteBy = (base) => {\r\n return (filters, requestOptions) => {\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/deleteByQuery', base.indexName),\r\n data: filters,\r\n }, requestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst deleteIndex = (base) => {\r\n return (requestOptions) => {\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Delete,\r\n path: encode('1/indexes/%s', base.indexName),\r\n }, requestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst deleteObject = (base) => {\r\n return (objectID, requestOptions) => {\r\n return createWaitablePromise(deleteObjects(base)([objectID], requestOptions).then(response => {\r\n return { taskID: response.taskIDs[0] };\r\n }), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst deleteObjects = (base) => {\r\n return (objectIDs, requestOptions) => {\r\n const objects = objectIDs.map(objectID => {\r\n return { objectID };\r\n });\r\n return chunkedBatch(base)(objects, BatchActionEnum.DeleteObject, requestOptions);\r\n };\r\n};\n\nconst deleteRule = (base) => {\r\n return (objectID, requestOptions) => {\r\n const { forwardToReplicas, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Delete,\r\n path: encode('1/indexes/%s/rules/%s', base.indexName, objectID),\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst deleteSynonym = (base) => {\r\n return (objectID, requestOptions) => {\r\n const { forwardToReplicas, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Delete,\r\n path: encode('1/indexes/%s/synonyms/%s', base.indexName, objectID),\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst exists = (base) => {\r\n return (requestOptions) => {\r\n return getSettings(base)(requestOptions)\r\n .then(() => true)\r\n .catch(error => {\r\n if (error.status !== 404) {\r\n throw error;\r\n }\r\n return false;\r\n });\r\n };\r\n};\n\nconst findAnswers = (base) => {\r\n return (query, queryLanguages, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/answers/%s/prediction', base.indexName),\r\n data: {\r\n query,\r\n queryLanguages,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst findObject = (base) => {\r\n return (callback, requestOptions) => {\r\n const { query, paginate, ...options } = requestOptions || {};\r\n // eslint-disable-next-line functional/no-let\r\n let page = 0;\r\n const forEachPage = () => {\r\n return search(base)(query || '', { ...options, page }).then(result => {\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (const [position, hit] of Object.entries(result.hits)) {\r\n // eslint-disable-next-line promise/no-callback-in-promise\r\n if (callback(hit)) {\r\n return {\r\n object: hit,\r\n position: parseInt(position, 10),\r\n page,\r\n };\r\n }\r\n }\r\n page++;\r\n // paginate if option was set and has next page\r\n if (paginate === false || page >= result.nbPages) {\r\n throw createObjectNotFoundError();\r\n }\r\n return forEachPage();\r\n });\r\n };\r\n return forEachPage();\r\n };\r\n};\n\nconst getObject = (base) => {\r\n return (objectID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/indexes/%s/%s', base.indexName, objectID),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getObjectPosition = () => {\r\n return (searchResponse, objectID) => {\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (const [position, hit] of Object.entries(searchResponse.hits)) {\r\n if (hit.objectID === objectID) {\r\n return parseInt(position, 10);\r\n }\r\n }\r\n return -1;\r\n };\r\n};\n\nconst getObjects = (base) => {\r\n return (objectIDs, requestOptions) => {\r\n const { attributesToRetrieve, ...options } = requestOptions || {};\r\n const requests = objectIDs.map(objectID => {\r\n return {\r\n indexName: base.indexName,\r\n objectID,\r\n ...(attributesToRetrieve ? { attributesToRetrieve } : {}),\r\n };\r\n });\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: '1/indexes/*/objects',\r\n data: {\r\n requests,\r\n },\r\n }, options);\r\n };\r\n};\n\nconst getRule = (base) => {\r\n return (objectID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/indexes/%s/rules/%s', base.indexName, objectID),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getSettings = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/indexes/%s/settings', base.indexName),\r\n data: {\r\n getVersion: 2,\r\n },\r\n }, requestOptions);\r\n };\r\n};\n\nconst getSynonym = (base) => {\r\n return (objectID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode(`1/indexes/%s/synonyms/%s`, base.indexName, objectID),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getTask = (base) => {\r\n return (taskID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/indexes/%s/task/%s', base.indexName, taskID.toString()),\r\n }, requestOptions);\r\n };\r\n};\n\nconst partialUpdateObject = (base) => {\r\n return (object, requestOptions) => {\r\n return createWaitablePromise(partialUpdateObjects(base)([object], requestOptions).then(response => {\r\n return {\r\n objectID: response.objectIDs[0],\r\n taskID: response.taskIDs[0],\r\n };\r\n }), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst partialUpdateObjects = (base) => {\r\n return (objects, requestOptions) => {\r\n const { createIfNotExists, ...options } = requestOptions || {};\r\n const action = createIfNotExists\r\n ? BatchActionEnum.PartialUpdateObject\r\n : BatchActionEnum.PartialUpdateObjectNoCreate;\r\n return chunkedBatch(base)(objects, action, options);\r\n };\r\n};\n\nconst replaceAllObjects = (base) => {\r\n return (objects, requestOptions) => {\r\n const { safe, autoGenerateObjectIDIfNotExist, batchSize, ...options } = requestOptions || {};\r\n const operation = (from, to, type, operationRequestOptions) => {\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/operation', from),\r\n data: {\r\n operation: type,\r\n destination: to,\r\n },\r\n }, operationRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n const randomSuffix = Math.random()\r\n .toString(36)\r\n .substring(7);\r\n const temporaryIndexName = `${base.indexName}_tmp_${randomSuffix}`;\r\n const saveObjectsInTemporary = saveObjects({\r\n appId: base.appId,\r\n transporter: base.transporter,\r\n indexName: temporaryIndexName,\r\n });\r\n // @ts-ignore\r\n // eslint-disable-next-line prefer-const, functional/no-let, functional/prefer-readonly-type\r\n let responses = [];\r\n const copyWaitablePromise = operation(base.indexName, temporaryIndexName, 'copy', {\r\n ...options,\r\n scope: ['settings', 'synonyms', 'rules'],\r\n });\r\n // eslint-disable-next-line functional/immutable-data\r\n responses.push(copyWaitablePromise);\r\n const result = (safe\r\n ? copyWaitablePromise.wait(options)\r\n : copyWaitablePromise)\r\n .then(() => {\r\n const saveObjectsWaitablePromise = saveObjectsInTemporary(objects, {\r\n ...options,\r\n autoGenerateObjectIDIfNotExist,\r\n batchSize,\r\n });\r\n // eslint-disable-next-line functional/immutable-data\r\n responses.push(saveObjectsWaitablePromise);\r\n return safe ? saveObjectsWaitablePromise.wait(options) : saveObjectsWaitablePromise;\r\n })\r\n .then(() => {\r\n const moveWaitablePromise = operation(temporaryIndexName, base.indexName, 'move', options);\r\n // eslint-disable-next-line functional/immutable-data\r\n responses.push(moveWaitablePromise);\r\n return safe ? moveWaitablePromise.wait(options) : moveWaitablePromise;\r\n })\r\n .then(() => Promise.all(responses))\r\n .then(([copyResponse, saveObjectsResponse, moveResponse]) => {\r\n return {\r\n objectIDs: saveObjectsResponse.objectIDs,\r\n taskIDs: [copyResponse.taskID, ...saveObjectsResponse.taskIDs, moveResponse.taskID],\r\n };\r\n });\r\n return createWaitablePromise(result, (_, waitRequestOptions) => {\r\n return Promise.all(responses.map(response => response.wait(waitRequestOptions)));\r\n });\r\n };\r\n};\n\nconst replaceAllRules = (base) => {\r\n return (rules, requestOptions) => {\r\n return saveRules(base)(rules, {\r\n ...requestOptions,\r\n clearExistingRules: true,\r\n });\r\n };\r\n};\n\nconst replaceAllSynonyms = (base) => {\r\n return (synonyms, requestOptions) => {\r\n return saveSynonyms(base)(synonyms, {\r\n ...requestOptions,\r\n clearExistingSynonyms: true,\r\n });\r\n };\r\n};\n\nconst saveObject = (base) => {\r\n return (object, requestOptions) => {\r\n return createWaitablePromise(saveObjects(base)([object], requestOptions).then(response => {\r\n return {\r\n objectID: response.objectIDs[0],\r\n taskID: response.taskIDs[0],\r\n };\r\n }), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst saveObjects = (base) => {\r\n return (objects, requestOptions) => {\r\n const { autoGenerateObjectIDIfNotExist, ...options } = requestOptions || {};\r\n const action = autoGenerateObjectIDIfNotExist\r\n ? BatchActionEnum.AddObject\r\n : BatchActionEnum.UpdateObject;\r\n if (action === BatchActionEnum.UpdateObject) {\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (const object of objects) {\r\n if (object.objectID === undefined) {\r\n return createWaitablePromise(Promise.reject(createMissingObjectIDError()));\r\n }\r\n }\r\n }\r\n return chunkedBatch(base)(objects, action, options);\r\n };\r\n};\n\nconst saveRule = (base) => {\r\n return (rule, requestOptions) => {\r\n return saveRules(base)([rule], requestOptions);\r\n };\r\n};\n\nconst saveRules = (base) => {\r\n return (rules, requestOptions) => {\r\n const { forwardToReplicas, clearExistingRules, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n if (clearExistingRules) {\r\n mappedRequestOptions.queryParameters.clearExistingRules = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/rules/batch', base.indexName),\r\n data: rules,\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst saveSynonym = (base) => {\r\n return (synonym, requestOptions) => {\r\n return saveSynonyms(base)([synonym], requestOptions);\r\n };\r\n};\n\nconst saveSynonyms = (base) => {\r\n return (synonyms, requestOptions) => {\r\n const { forwardToReplicas, clearExistingSynonyms, replaceExistingSynonyms, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n if (replaceExistingSynonyms || clearExistingSynonyms) {\r\n mappedRequestOptions.queryParameters.replaceExistingSynonyms = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/synonyms/batch', base.indexName),\r\n data: synonyms,\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst search = (base) => {\r\n return (query, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/query', base.indexName),\r\n data: {\r\n query,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst searchForFacetValues = (base) => {\r\n return (facetName, facetQuery, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/facets/%s/query', base.indexName, facetName),\r\n data: {\r\n facetQuery,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst searchRules = (base) => {\r\n return (query, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/rules/search', base.indexName),\r\n data: {\r\n query,\r\n },\r\n }, requestOptions);\r\n };\r\n};\n\nconst searchSynonyms = (base) => {\r\n return (query, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/synonyms/search', base.indexName),\r\n data: {\r\n query,\r\n },\r\n }, requestOptions);\r\n };\r\n};\n\nconst setSettings = (base) => {\r\n return (settings, requestOptions) => {\r\n const { forwardToReplicas, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Put,\r\n path: encode('1/indexes/%s/settings', base.indexName),\r\n data: settings,\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst waitTask = (base) => {\r\n return (taskID, requestOptions) => {\r\n return createRetryablePromise(retry => {\r\n return getTask(base)(taskID, requestOptions).then(response => {\r\n return response.status !== 'published' ? retry() : undefined;\r\n });\r\n });\r\n };\r\n};\n\nconst ApiKeyACLEnum = {\r\n AddObject: 'addObject',\r\n Analytics: 'analytics',\r\n Browser: 'browse',\r\n DeleteIndex: 'deleteIndex',\r\n DeleteObject: 'deleteObject',\r\n EditSettings: 'editSettings',\r\n Inference: 'inference',\r\n ListIndexes: 'listIndexes',\r\n Logs: 'logs',\r\n Personalization: 'personalization',\r\n Recommendation: 'recommendation',\r\n Search: 'search',\r\n SeeUnretrievableAttributes: 'seeUnretrievableAttributes',\r\n Settings: 'settings',\r\n Usage: 'usage',\r\n};\n\nconst BatchActionEnum = {\r\n AddObject: 'addObject',\r\n UpdateObject: 'updateObject',\r\n PartialUpdateObject: 'partialUpdateObject',\r\n PartialUpdateObjectNoCreate: 'partialUpdateObjectNoCreate',\r\n DeleteObject: 'deleteObject',\r\n DeleteIndex: 'delete',\r\n ClearIndex: 'clear',\r\n};\n\nconst ScopeEnum = {\r\n Settings: 'settings',\r\n Synonyms: 'synonyms',\r\n Rules: 'rules',\r\n};\n\nconst StrategyEnum = {\r\n None: 'none',\r\n StopIfEnoughMatches: 'stopIfEnoughMatches',\r\n};\n\nconst SynonymEnum = {\r\n Synonym: 'synonym',\r\n OneWaySynonym: 'oneWaySynonym',\r\n AltCorrection1: 'altCorrection1',\r\n AltCorrection2: 'altCorrection2',\r\n Placeholder: 'placeholder',\r\n};\n\nexport { ApiKeyACLEnum, BatchActionEnum, ScopeEnum, StrategyEnum, SynonymEnum, addApiKey, assignUserID, assignUserIDs, batch, browseObjects, browseRules, browseSynonyms, chunkedBatch, clearDictionaryEntries, clearObjects, clearRules, clearSynonyms, copyIndex, copyRules, copySettings, copySynonyms, createBrowsablePromise, createMissingObjectIDError, createObjectNotFoundError, createSearchClient, createValidUntilNotFoundError, customRequest, deleteApiKey, deleteBy, deleteDictionaryEntries, deleteIndex, deleteObject, deleteObjects, deleteRule, deleteSynonym, exists, findAnswers, findObject, generateSecuredApiKey, getApiKey, getAppTask, getDictionarySettings, getLogs, getObject, getObjectPosition, getObjects, getRule, getSecuredApiKeyRemainingValidity, getSettings, getSynonym, getTask, getTopUserIDs, getUserID, hasPendingMappings, initIndex, listApiKeys, listClusters, listIndices, listUserIDs, moveIndex, multipleBatch, multipleGetObjects, multipleQueries, multipleSearchForFacetValues, partialUpdateObject, partialUpdateObjects, removeUserID, replaceAllObjects, replaceAllRules, replaceAllSynonyms, replaceDictionaryEntries, restoreApiKey, saveDictionaryEntries, saveObject, saveObjects, saveRule, saveRules, saveSynonym, saveSynonyms, search, searchDictionaryEntries, searchForFacetValues, searchRules, searchSynonyms, searchUserIDs, setDictionarySettings, setSettings, updateApiKey, waitAppTask, waitTask };\n","function createNullLogger() {\r\n return {\r\n debug(_message, _args) {\r\n return Promise.resolve();\r\n },\r\n info(_message, _args) {\r\n return Promise.resolve();\r\n },\r\n error(_message, _args) {\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nconst LogLevelEnum = {\r\n Debug: 1,\r\n Info: 2,\r\n Error: 3,\r\n};\n\nexport { LogLevelEnum, createNullLogger };\n","function createAuth(authMode, appId, apiKey) {\r\n const credentials = {\r\n 'x-algolia-api-key': apiKey,\r\n 'x-algolia-application-id': appId,\r\n };\r\n return {\r\n headers() {\r\n return authMode === AuthMode.WithinHeaders ? credentials : {};\r\n },\r\n queryParameters() {\r\n return authMode === AuthMode.WithinQueryParameters ? credentials : {};\r\n },\r\n };\r\n}\n\nfunction createRetryablePromise(callback) {\r\n let retriesCount = 0; // eslint-disable-line functional/no-let\r\n const retry = () => {\r\n retriesCount++;\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve(callback(retry));\r\n }, Math.min(100 * retriesCount, 1000));\r\n });\r\n };\r\n return callback(retry);\r\n}\n\nfunction createWaitablePromise(promise, wait = (_response, _requestOptions) => {\r\n return Promise.resolve();\r\n}) {\r\n // eslint-disable-next-line functional/immutable-data\r\n return Object.assign(promise, {\r\n wait(requestOptions) {\r\n return createWaitablePromise(promise\r\n .then(response => Promise.all([wait(response, requestOptions), response]))\r\n .then(promiseResults => promiseResults[1]));\r\n },\r\n });\r\n}\n\n// eslint-disable-next-line functional/prefer-readonly-type\r\nfunction shuffle(array) {\r\n let c = array.length - 1; // eslint-disable-line functional/no-let\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (c; c > 0; c--) {\r\n const b = Math.floor(Math.random() * (c + 1));\r\n const a = array[c];\r\n array[c] = array[b]; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n array[b] = a; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n }\r\n return array;\r\n}\r\nfunction addMethods(base, methods) {\r\n if (!methods) {\r\n return base;\r\n }\r\n Object.keys(methods).forEach(key => {\r\n // eslint-disable-next-line functional/immutable-data, no-param-reassign\r\n base[key] = methods[key](base);\r\n });\r\n return base;\r\n}\r\nfunction encode(format, ...args) {\r\n // eslint-disable-next-line functional/no-let\r\n let i = 0;\r\n return format.replace(/%s/g, () => encodeURIComponent(args[i++]));\r\n}\n\nconst version = '4.24.0';\n\nconst destroy = (base) => {\r\n return () => {\r\n return base.transporter.requester.destroy();\r\n };\r\n};\n\nconst AuthMode = {\r\n /**\r\n * If auth credentials should be in query parameters.\r\n */\r\n WithinQueryParameters: 0,\r\n /**\r\n * If auth credentials should be in headers.\r\n */\r\n WithinHeaders: 1,\r\n};\n\nexport { AuthMode, addMethods, createAuth, createRetryablePromise, createWaitablePromise, destroy, encode, shuffle, version };\n","import * as http from 'http';\nimport { Agent } from 'http';\nimport * as https from 'https';\nimport { Agent as Agent$1 } from 'https';\nimport { parse } from 'url';\n\n/* eslint functional/prefer-readonly-type: 0 */\r\nconst agentOptions = { keepAlive: true };\r\nconst defaultHttpAgent = new Agent(agentOptions);\r\nconst defaultHttpsAgent = new Agent$1(agentOptions);\r\nfunction createNodeHttpRequester({ agent: userGlobalAgent, httpAgent: userHttpAgent, httpsAgent: userHttpsAgent, requesterOptions = {}, } = {}) {\r\n const httpAgent = userHttpAgent || userGlobalAgent || defaultHttpAgent;\r\n const httpsAgent = userHttpsAgent || userGlobalAgent || defaultHttpsAgent;\r\n return {\r\n send(request) {\r\n return new Promise(resolve => {\r\n const url = parse(request.url);\r\n const path = url.query === null ? url.pathname : `${url.pathname}?${url.query}`;\r\n const options = {\r\n ...requesterOptions,\r\n agent: url.protocol === 'https:' ? httpsAgent : httpAgent,\r\n hostname: url.hostname,\r\n path,\r\n method: request.method,\r\n headers: {\r\n ...(requesterOptions && requesterOptions.headers ? requesterOptions.headers : {}),\r\n ...request.headers,\r\n },\r\n ...(url.port !== undefined ? { port: url.port || '' } : {}),\r\n };\r\n const req = (url.protocol === 'https:' ? https : http).request(options, response => {\r\n // eslint-disable-next-line functional/no-let\r\n let contentBuffers = [];\r\n response.on('data', chunk => {\r\n contentBuffers = contentBuffers.concat(chunk);\r\n });\r\n response.on('end', () => {\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n clearTimeout(connectTimeout);\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n clearTimeout(responseTimeout);\r\n resolve({\r\n status: response.statusCode || 0,\r\n content: Buffer.concat(contentBuffers).toString(),\r\n isTimedOut: false,\r\n });\r\n });\r\n });\r\n const createTimeout = (timeout, content) => {\r\n return setTimeout(() => {\r\n req.abort();\r\n resolve({\r\n status: 0,\r\n content,\r\n isTimedOut: true,\r\n });\r\n }, timeout * 1000);\r\n };\r\n const connectTimeout = createTimeout(request.connectTimeout, 'Connection timeout');\r\n // eslint-disable-next-line functional/no-let\r\n let responseTimeout;\r\n req.on('error', error => {\r\n clearTimeout(connectTimeout);\r\n clearTimeout(responseTimeout);\r\n resolve({ status: 0, content: error.message, isTimedOut: false });\r\n });\r\n req.once('response', () => {\r\n clearTimeout(connectTimeout);\r\n responseTimeout = createTimeout(request.responseTimeout, 'Socket timeout');\r\n });\r\n if (request.data !== undefined) {\r\n req.write(request.data);\r\n }\r\n req.end();\r\n });\r\n },\r\n destroy() {\r\n httpAgent.destroy();\r\n httpsAgent.destroy();\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nexport { createNodeHttpRequester };\n","'use strict';\n\nvar cacheCommon = require('@algolia/cache-common');\nvar cacheInMemory = require('@algolia/cache-in-memory');\nvar clientCommon = require('@algolia/client-common');\nvar loggerCommon = require('@algolia/logger-common');\nvar requesterNodeHttp = require('@algolia/requester-node-http');\nvar transporter = require('@algolia/transporter');\nvar requesterCommon = require('@algolia/requester-common');\n\nconst createRecommendClient = options => {\r\n const appId = options.appId;\r\n const auth = clientCommon.createAuth(options.authMode !== undefined ? options.authMode : clientCommon.AuthMode.WithinHeaders, appId, options.apiKey);\r\n const transporter$1 = transporter.createTransporter({\r\n hosts: [\r\n { url: `${appId}-dsn.algolia.net`, accept: transporter.CallEnum.Read },\r\n { url: `${appId}.algolia.net`, accept: transporter.CallEnum.Write },\r\n ].concat(clientCommon.shuffle([\r\n { url: `${appId}-1.algolianet.com` },\r\n { url: `${appId}-2.algolianet.com` },\r\n { url: `${appId}-3.algolianet.com` },\r\n ])),\r\n ...options,\r\n headers: {\r\n ...auth.headers(),\r\n ...{ 'content-type': 'application/x-www-form-urlencoded' },\r\n ...options.headers,\r\n },\r\n queryParameters: {\r\n ...auth.queryParameters(),\r\n ...options.queryParameters,\r\n },\r\n });\r\n const base = {\r\n transporter: transporter$1,\r\n appId,\r\n addAlgoliaAgent(segment, version) {\r\n transporter$1.userAgent.add({ segment, version });\r\n },\r\n clearCache() {\r\n return Promise.all([\r\n transporter$1.requestsCache.clear(),\r\n transporter$1.responsesCache.clear(),\r\n ]).then(() => undefined);\r\n },\r\n };\r\n return clientCommon.addMethods(base, options.methods);\r\n};\n\nconst getRecommendations = base => {\r\n return (queries, requestOptions) => {\r\n const requests = queries.map(query => ({\r\n ...query,\r\n // The `threshold` param is required by the endpoint to make it easier\r\n // to provide a default value later, so we default it in the client\r\n // so that users don't have to provide a value.\r\n threshold: query.threshold || 0,\r\n }));\r\n return base.transporter.read({\r\n method: requesterCommon.MethodEnum.Post,\r\n path: '1/indexes/*/recommendations',\r\n data: {\r\n requests,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst getFrequentlyBoughtTogether = base => {\r\n return (queries, requestOptions) => {\r\n return getRecommendations(base)(queries.map(query => ({\r\n ...query,\r\n fallbackParameters: {},\r\n model: 'bought-together',\r\n })), requestOptions);\r\n };\r\n};\n\nconst getRelatedProducts = base => {\r\n return (queries, requestOptions) => {\r\n return getRecommendations(base)(queries.map(query => ({\r\n ...query,\r\n model: 'related-products',\r\n })), requestOptions);\r\n };\r\n};\n\nconst getTrendingFacets = base => {\r\n return (queries, requestOptions) => {\r\n const requests = queries.map(query => ({\r\n ...query,\r\n model: 'trending-facets',\r\n // The `threshold` param is required by the endpoint to make it easier\r\n // to provide a default value later, so we default it in the client\r\n // so that users don't have to provide a value.\r\n threshold: query.threshold || 0,\r\n }));\r\n return base.transporter.read({\r\n method: requesterCommon.MethodEnum.Post,\r\n path: '1/indexes/*/recommendations',\r\n data: {\r\n requests,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst getTrendingItems = base => {\r\n return (queries, requestOptions) => {\r\n const requests = queries.map(query => ({\r\n ...query,\r\n model: 'trending-items',\r\n // The `threshold` param is required by the endpoint to make it easier\r\n // to provide a default value later, so we default it in the client\r\n // so that users don't have to provide a value.\r\n threshold: query.threshold || 0,\r\n }));\r\n return base.transporter.read({\r\n method: requesterCommon.MethodEnum.Post,\r\n path: '1/indexes/*/recommendations',\r\n data: {\r\n requests,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst getLookingSimilar = base => {\r\n return (queries, requestOptions) => {\r\n return getRecommendations(base)(queries.map(query => ({\r\n ...query,\r\n model: 'looking-similar',\r\n })), requestOptions);\r\n };\r\n};\n\nconst getRecommendedForYou = base => {\r\n return (queries, requestOptions) => {\r\n const requests = queries.map(query => ({\r\n ...query,\r\n model: 'recommended-for-you',\r\n threshold: query.threshold || 0,\r\n }));\r\n return base.transporter.read({\r\n method: requesterCommon.MethodEnum.Post,\r\n path: '1/indexes/*/recommendations',\r\n data: {\r\n requests,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nfunction recommend(appId, apiKey, options) {\r\n const commonOptions = {\r\n appId,\r\n apiKey,\r\n timeouts: {\r\n connect: 2,\r\n read: 5,\r\n write: 30,\r\n },\r\n requester: requesterNodeHttp.createNodeHttpRequester(),\r\n logger: loggerCommon.createNullLogger(),\r\n responsesCache: cacheCommon.createNullCache(),\r\n requestsCache: cacheCommon.createNullCache(),\r\n hostsCache: cacheInMemory.createInMemoryCache(),\r\n userAgent: transporter.createUserAgent(clientCommon.version)\r\n .add({ segment: 'Recommend', version: clientCommon.version })\r\n .add({ segment: 'Node.js', version: process.versions.node }),\r\n };\r\n return createRecommendClient({\r\n ...commonOptions,\r\n ...options,\r\n methods: {\r\n destroy: clientCommon.destroy,\r\n getFrequentlyBoughtTogether,\r\n getRecommendations,\r\n getRelatedProducts,\r\n getTrendingFacets,\r\n getTrendingItems,\r\n getLookingSimilar,\r\n getRecommendedForYou,\r\n },\r\n });\r\n}\r\n/* eslint-disable functional/immutable-data */\r\nrecommend.version = clientCommon.version;\r\nrecommend.getFrequentlyBoughtTogether = getFrequentlyBoughtTogether;\r\nrecommend.getRecommendations = getRecommendations;\r\nrecommend.getRelatedProducts = getRelatedProducts;\r\nrecommend.getTrendingFacets = getTrendingFacets;\r\nrecommend.getTrendingItems = getTrendingItems;\r\nrecommend.getLookingSimilar = getLookingSimilar;\r\nrecommend.getRecommendedForYou = getRecommendedForYou;\n\nmodule.exports = recommend;\n","/* eslint-disable functional/immutable-data, import/no-commonjs */\nconst recommend = require('./dist/recommend.cjs.js');\n\n/**\n * The Common JS build is the default entry point for the Node environment. Keep in\n * in mind, that for the browser environment, we hint the bundler to use the UMD\n * build instead as specified on the key `browser` of our `package.json` file.\n */\nmodule.exports = recommend;\n\n/**\n * In addition, we also set explicitly the default export below making\n * this Common JS module in compliance with es6 modules specification.\n */\nmodule.exports.default = recommend;\n","import * as http from 'http';\nimport { Agent } from 'http';\nimport * as https from 'https';\nimport { Agent as Agent$1 } from 'https';\nimport { parse } from 'url';\n\n/* eslint functional/prefer-readonly-type: 0 */\r\nconst agentOptions = { keepAlive: true };\r\nconst defaultHttpAgent = new Agent(agentOptions);\r\nconst defaultHttpsAgent = new Agent$1(agentOptions);\r\nfunction createNodeHttpRequester({ agent: userGlobalAgent, httpAgent: userHttpAgent, httpsAgent: userHttpsAgent, requesterOptions = {}, } = {}) {\r\n const httpAgent = userHttpAgent || userGlobalAgent || defaultHttpAgent;\r\n const httpsAgent = userHttpsAgent || userGlobalAgent || defaultHttpsAgent;\r\n return {\r\n send(request) {\r\n return new Promise(resolve => {\r\n const url = parse(request.url);\r\n const path = url.query === null ? url.pathname : `${url.pathname}?${url.query}`;\r\n const options = {\r\n ...requesterOptions,\r\n agent: url.protocol === 'https:' ? httpsAgent : httpAgent,\r\n hostname: url.hostname,\r\n path,\r\n method: request.method,\r\n headers: {\r\n ...(requesterOptions && requesterOptions.headers ? requesterOptions.headers : {}),\r\n ...request.headers,\r\n },\r\n ...(url.port !== undefined ? { port: url.port || '' } : {}),\r\n };\r\n const req = (url.protocol === 'https:' ? https : http).request(options, response => {\r\n // eslint-disable-next-line functional/no-let\r\n let contentBuffers = [];\r\n response.on('data', chunk => {\r\n contentBuffers = contentBuffers.concat(chunk);\r\n });\r\n response.on('end', () => {\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n clearTimeout(connectTimeout);\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n clearTimeout(responseTimeout);\r\n resolve({\r\n status: response.statusCode || 0,\r\n content: Buffer.concat(contentBuffers).toString(),\r\n isTimedOut: false,\r\n });\r\n });\r\n });\r\n const createTimeout = (timeout, content) => {\r\n return setTimeout(() => {\r\n req.abort();\r\n resolve({\r\n status: 0,\r\n content,\r\n isTimedOut: true,\r\n });\r\n }, timeout * 1000);\r\n };\r\n const connectTimeout = createTimeout(request.connectTimeout, 'Connection timeout');\r\n // eslint-disable-next-line functional/no-let\r\n let responseTimeout;\r\n req.on('error', error => {\r\n clearTimeout(connectTimeout);\r\n clearTimeout(responseTimeout);\r\n resolve({ status: 0, content: error.message, isTimedOut: false });\r\n });\r\n req.once('response', () => {\r\n clearTimeout(connectTimeout);\r\n responseTimeout = createTimeout(request.responseTimeout, 'Socket timeout');\r\n });\r\n if (request.data !== undefined) {\r\n req.write(request.data);\r\n }\r\n req.end();\r\n });\r\n },\r\n destroy() {\r\n httpAgent.destroy();\r\n httpsAgent.destroy();\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nexport { createNodeHttpRequester };\n","'use strict';\n\nvar cacheCommon = require('@algolia/cache-common');\nvar cacheInMemory = require('@algolia/cache-in-memory');\nvar clientAnalytics = require('@algolia/client-analytics');\nvar clientCommon = require('@algolia/client-common');\nvar clientPersonalization = require('@algolia/client-personalization');\nvar clientSearch = require('@algolia/client-search');\nvar loggerCommon = require('@algolia/logger-common');\nvar recommend = require('@algolia/recommend');\nvar requesterNodeHttp = require('@algolia/requester-node-http');\nvar transporter = require('@algolia/transporter');\n\nfunction algoliasearch(appId, apiKey, options) {\r\n const commonOptions = {\r\n appId,\r\n apiKey,\r\n timeouts: {\r\n connect: 2,\r\n read: 5,\r\n write: 30,\r\n },\r\n requester: requesterNodeHttp.createNodeHttpRequester(),\r\n logger: loggerCommon.createNullLogger(),\r\n responsesCache: cacheCommon.createNullCache(),\r\n requestsCache: cacheCommon.createNullCache(),\r\n hostsCache: cacheInMemory.createInMemoryCache(),\r\n userAgent: transporter.createUserAgent(clientCommon.version).add({\r\n segment: 'Node.js',\r\n version: process.versions.node,\r\n }),\r\n };\r\n const searchClientOptions = { ...commonOptions, ...options };\r\n const initPersonalization = () => (clientOptions) => {\r\n return clientPersonalization.createPersonalizationClient({\r\n ...commonOptions,\r\n ...clientOptions,\r\n methods: {\r\n getPersonalizationStrategy: clientPersonalization.getPersonalizationStrategy,\r\n setPersonalizationStrategy: clientPersonalization.setPersonalizationStrategy,\r\n },\r\n });\r\n };\r\n return clientSearch.createSearchClient({\r\n ...searchClientOptions,\r\n methods: {\r\n search: clientSearch.multipleQueries,\r\n searchForFacetValues: clientSearch.multipleSearchForFacetValues,\r\n multipleBatch: clientSearch.multipleBatch,\r\n multipleGetObjects: clientSearch.multipleGetObjects,\r\n multipleQueries: clientSearch.multipleQueries,\r\n copyIndex: clientSearch.copyIndex,\r\n copySettings: clientSearch.copySettings,\r\n copyRules: clientSearch.copyRules,\r\n copySynonyms: clientSearch.copySynonyms,\r\n moveIndex: clientSearch.moveIndex,\r\n listIndices: clientSearch.listIndices,\r\n getLogs: clientSearch.getLogs,\r\n listClusters: clientSearch.listClusters,\r\n multipleSearchForFacetValues: clientSearch.multipleSearchForFacetValues,\r\n getApiKey: clientSearch.getApiKey,\r\n addApiKey: clientSearch.addApiKey,\r\n listApiKeys: clientSearch.listApiKeys,\r\n updateApiKey: clientSearch.updateApiKey,\r\n deleteApiKey: clientSearch.deleteApiKey,\r\n restoreApiKey: clientSearch.restoreApiKey,\r\n assignUserID: clientSearch.assignUserID,\r\n assignUserIDs: clientSearch.assignUserIDs,\r\n getUserID: clientSearch.getUserID,\r\n searchUserIDs: clientSearch.searchUserIDs,\r\n listUserIDs: clientSearch.listUserIDs,\r\n getTopUserIDs: clientSearch.getTopUserIDs,\r\n removeUserID: clientSearch.removeUserID,\r\n hasPendingMappings: clientSearch.hasPendingMappings,\r\n generateSecuredApiKey: clientSearch.generateSecuredApiKey,\r\n getSecuredApiKeyRemainingValidity: clientSearch.getSecuredApiKeyRemainingValidity,\r\n destroy: clientCommon.destroy,\r\n clearDictionaryEntries: clientSearch.clearDictionaryEntries,\r\n deleteDictionaryEntries: clientSearch.deleteDictionaryEntries,\r\n getDictionarySettings: clientSearch.getDictionarySettings,\r\n getAppTask: clientSearch.getAppTask,\r\n replaceDictionaryEntries: clientSearch.replaceDictionaryEntries,\r\n saveDictionaryEntries: clientSearch.saveDictionaryEntries,\r\n searchDictionaryEntries: clientSearch.searchDictionaryEntries,\r\n setDictionarySettings: clientSearch.setDictionarySettings,\r\n waitAppTask: clientSearch.waitAppTask,\r\n customRequest: clientSearch.customRequest,\r\n initIndex: base => (indexName) => {\r\n return clientSearch.initIndex(base)(indexName, {\r\n methods: {\r\n batch: clientSearch.batch,\r\n delete: clientSearch.deleteIndex,\r\n findAnswers: clientSearch.findAnswers,\r\n getObject: clientSearch.getObject,\r\n getObjects: clientSearch.getObjects,\r\n saveObject: clientSearch.saveObject,\r\n saveObjects: clientSearch.saveObjects,\r\n search: clientSearch.search,\r\n searchForFacetValues: clientSearch.searchForFacetValues,\r\n waitTask: clientSearch.waitTask,\r\n setSettings: clientSearch.setSettings,\r\n getSettings: clientSearch.getSettings,\r\n partialUpdateObject: clientSearch.partialUpdateObject,\r\n partialUpdateObjects: clientSearch.partialUpdateObjects,\r\n deleteObject: clientSearch.deleteObject,\r\n deleteObjects: clientSearch.deleteObjects,\r\n deleteBy: clientSearch.deleteBy,\r\n clearObjects: clientSearch.clearObjects,\r\n browseObjects: clientSearch.browseObjects,\r\n getObjectPosition: clientSearch.getObjectPosition,\r\n findObject: clientSearch.findObject,\r\n exists: clientSearch.exists,\r\n saveSynonym: clientSearch.saveSynonym,\r\n saveSynonyms: clientSearch.saveSynonyms,\r\n getSynonym: clientSearch.getSynonym,\r\n searchSynonyms: clientSearch.searchSynonyms,\r\n browseSynonyms: clientSearch.browseSynonyms,\r\n deleteSynonym: clientSearch.deleteSynonym,\r\n clearSynonyms: clientSearch.clearSynonyms,\r\n replaceAllObjects: clientSearch.replaceAllObjects,\r\n replaceAllSynonyms: clientSearch.replaceAllSynonyms,\r\n searchRules: clientSearch.searchRules,\r\n getRule: clientSearch.getRule,\r\n deleteRule: clientSearch.deleteRule,\r\n saveRule: clientSearch.saveRule,\r\n saveRules: clientSearch.saveRules,\r\n replaceAllRules: clientSearch.replaceAllRules,\r\n browseRules: clientSearch.browseRules,\r\n clearRules: clientSearch.clearRules,\r\n },\r\n });\r\n },\r\n initAnalytics: () => (clientOptions) => {\r\n return clientAnalytics.createAnalyticsClient({\r\n ...commonOptions,\r\n ...clientOptions,\r\n methods: {\r\n addABTest: clientAnalytics.addABTest,\r\n getABTest: clientAnalytics.getABTest,\r\n getABTests: clientAnalytics.getABTests,\r\n stopABTest: clientAnalytics.stopABTest,\r\n deleteABTest: clientAnalytics.deleteABTest,\r\n },\r\n });\r\n },\r\n initPersonalization,\r\n initRecommendation: () => (clientOptions) => {\r\n searchClientOptions.logger.info('The `initRecommendation` method is deprecated. Use `initPersonalization` instead.');\r\n return initPersonalization()(clientOptions);\r\n },\r\n getRecommendations: recommend.getRecommendations,\r\n getFrequentlyBoughtTogether: recommend.getFrequentlyBoughtTogether,\r\n getLookingSimilar: recommend.getLookingSimilar,\r\n getRecommendedForYou: recommend.getRecommendedForYou,\r\n getRelatedProducts: recommend.getRelatedProducts,\r\n getTrendingFacets: recommend.getTrendingFacets,\r\n getTrendingItems: recommend.getTrendingItems,\r\n },\r\n });\r\n}\r\n// eslint-disable-next-line functional/immutable-data\r\nalgoliasearch.version = clientCommon.version;\n\nmodule.exports = algoliasearch;\n","/* eslint-disable functional/immutable-data, import/no-commonjs */\nconst algoliasearch = require('./dist/algoliasearch.cjs.js');\n\n/**\n * The Common JS build is the default entry point for the Node environment. Keep in\n * in mind, that for the browser environment, we hint the bundler to use the UMD\n * build instead as specified on the key `browser` of our `package.json` file.\n */\nmodule.exports = algoliasearch;\n\n/**\n * In addition, we also set explicitly the default export below making\n * this Common JS module in compliance with es6 modules specification.\n */\nmodule.exports.default = algoliasearch;\n","// eslint-disable-next-line functional/immutable-data, import/no-commonjs\nmodule.exports = require('./index');\n","import { Box } from '@vtex/brand-ui'\nimport { MDXRemote } from 'next-mdx-remote'\nimport { MarkdownRendererProps } from './MarkdownRenderer.types'\nimport components from './components'\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst MDXRemote2 = MDXRemote as any\n\nconst MarkdownRenderer = ({\n serialized,\n customComponents,\n scope,\n}: MarkdownRendererProps) => {\n if (components && scope) {\n return (\n \n \n \n )\n }\n\n return (\n \n \n \n )\n}\n\nexport default MarkdownRenderer\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { useContext, useEffect, useRef, useState } from 'react'\nimport { Box, Flex } from '@vtex/brand-ui'\nimport {\n ReactSVGPanZoom,\n UncontrolledReactSVGPanZoom,\n} from 'react-svg-pan-zoom'\nimport mermaid from 'mermaid'\nimport parse from 'html-react-parser'\nimport { InView } from 'react-intersection-observer'\n\nimport { CH } from '@code-hike/mdx/components'\nimport OverviewCard from 'components/overview-card'\nimport YoutubeFrame from 'components/youtube-frame'\nimport Steps from 'components/steps'\nimport LightBox from 'components/lightbox'\nimport WhatsNextCard from 'components/whats-next-card'\n\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { childrenToString, slugify } from 'utils/string-utils'\nimport mermaidInit from 'utils/mermaidInit'\n\nimport { Component, ObservableHeadingProps } from './MarkdownRenderer.types'\nimport styles from './styles.module.css'\nimport { messages } from 'utils/get-message'\n\nmermaidInit()\n\nconst ObservableHeading = ({\n level,\n onEnterView,\n onLeaveView,\n ...headingProps\n}: ObservableHeadingProps) => {\n const [y, setY] = useState(Infinity)\n const toSlugify = childrenToString(headingProps.children)\n const slug = slugify(toSlugify)\n return (\n {\n if (inView) onEnterView(slug)\n else onLeaveView(slug, entry, y)\n\n setY(entry.boundingClientRect.y)\n }}\n >\n {level === 2 ? (\n

\n ) : (\n

\n )}\n \n )\n}\n\nconst calloutColors: Record = {\n info: '#8C929D',\n danger: '#DC5A41',\n warning: '#FFB100',\n success: '#80BE80',\n}\n\nconst CalloutIcon = ({ type }: { type: string }) => (\n \n \n {type === 'success' ? (\n \n ) : type === 'info' ? (\n <>\n \n \n \n ) : (\n <>\n \n \n \n )}\n \n)\n\nexport const Callout = ({ node, icon, ...props }: Component) => {\n const blockquoteType: string = icon ? icon : 'info'\n return (\n \n \n
\n \n )\n}\n\nconst MermaidDiagram = ({ node, ...props }: Component) => {\n const viewerRef = useRef(null)\n const ref = useRef()\n\n const [diagram, setDiagram] = useState('')\n const [width, setWidth] = useState(0)\n const [height, setHeight] = useState(0)\n\n useEffect(() => {\n const resizeObserver = new ResizeObserver(() => {\n if (!ref.current) return\n setWidth(ref.current?.clientWidth ?? 0)\n setHeight(ref.current?.clientWidth / 2 ?? 0)\n })\n\n const mermaidRenderer = async function () {\n const { svg } = await mermaid.render('mermaid-id', props.children)\n setDiagram(\n svg.replace('id=\"mermaid-id\"', '').replaceAll('#mermaid-id', '')\n )\n }\n\n mermaidRenderer()\n if (ref.current) resizeObserver.observe(ref.current)\n }, [])\n\n return (\n \n \n \n {parse(diagram)}\n \n \n \n )\n}\n\nconst ImageComponent = ({ node, ...props }: Component) => {\n const [srcHasError, setSrcHasError] = useState(false)\n const { locale } = useContext(LibraryContext)\n const regularImg = (\n // eslint-disable-next-line @next/next/no-img-element\n {props.alt} setSrcHasError(true)} />\n )\n const errorMessage = (\n
\n {messages[locale]['image.error_loading']} {props.src}\n
\n )\n\n let data: { base64: string; img: object } = { base64: '', img: {} }\n try {\n data = JSON.parse(props.alt)\n } catch (error) {\n console.log(`Error parsing`, error)\n return errorMessage\n }\n return !srcHasError ? {regularImg} : errorMessage\n}\n\nexport default {\n CH,\n OverviewCard,\n WhatsNextCard,\n YoutubeFrame,\n Steps,\n Flex: ({ node, ...props }: Component) => (\n \n ),\n table: ({ node, ...props }: Component) => ,\n td: ({ node, ...props }: Component) =>
,\n img: ImageComponent,\n text: ({ node, ...props }: Component) => {\n return \n },\n blockquote: ({ ...props }: Component) => {\n return \n },\n code: ({ node, ...props }: Component) => {\n return \n },\n pre: ({ ...props }: Component) => {\n if (props.className && props.className === 'mermaid')\n return \n\n return
\n  },\n  h2: ({ node, ...props }: Component) => {\n    const { activeItem, setActiveItem, goToPreviousItem } =\n      useContext(LibraryContext)\n\n    return (\n       {\n          setActiveItem(({ item, subItem }) => ({\n            item: slug,\n            subItem: item !== slug ? '' : subItem,\n          }))\n        }}\n        onLeaveView={(slug, entry, y) => {\n          if (entry.boundingClientRect.y > y && activeItem.item === slug) {\n            goToPreviousItem()\n          }\n        }}\n        {...props}\n      />\n    )\n  },\n  h3: ({ node, ...props }: Component) => {\n    const { activeItem, setActiveItem, goToPreviousSubItem } =\n      useContext(LibraryContext)\n\n    return (\n       {\n          setActiveItem(({ item }) => ({\n            item,\n            subItem: slug,\n          }))\n        }}\n        onLeaveView={(slug, entry, y) => {\n          if (entry.boundingClientRect.y > y && activeItem.subItem === slug) {\n            goToPreviousSubItem()\n          }\n        }}\n        {...props}\n      />\n    )\n  },\n}\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst overviewCard: SxStyleProp = {\n  alignItems: 'flex-start',\n  margin: '20px 0px',\n  border: '1px solid #E7E9EE',\n  borderRadius: '4px',\n  padding: '18px 24px 4px',\n  color: '#4A596B',\n  ':active, :hover': {\n    borderColor: 'muted.2',\n    boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\n    transition: 'all 0.3 ease-out',\n    '*':{\n      color: '#000711',\n    }\n  },\n  ul: {\n    borderLeft: '1px rgb(202, 203, 204) solid',\n    fontSize: '0.9em',\n    mt: '0',\n    paddingLeft: '1.5em',\n    listStyleType: 'none',\n    display: 'block',\n    textDecoration: 'none',\n  },\n  'h3, h4': {\n    color: '#4A596B',\n    fontSize: '1.125em',\n    fontWeight: '400',\n    my: '0',\n  },\n}\n\nconst overviewIcon: SxStyleProp = {\n  marginRight: '1.25em',\n  marginTop: '0.375em',\n}\n\nexport default {\n  overviewCard,\n  overviewIcon,\n}\n","import styles from './styles'\nimport { Flex, Box } from '@vtex/brand-ui'\nimport * as Icons from './icons'\nimport { IconComponent } from 'utils/typings/types'\nimport Link from 'next/link.js'\n\ninterface IconsI {\n  name: string\n  Icon: IconComponent\n}\n\nconst IconsMap: IconsI[] = [\n  {\n    name: 'StorageUnit',\n    Icon: Icons.StorageUnit,\n  },\n  {\n    name: 'Board',\n    Icon: Icons.Board,\n  },\n  {\n    name: 'Integration',\n    Icon: Icons.Integration,\n  },\n  {\n    name: 'SearchList',\n    Icon: Icons.SearchList,\n  },\n  {\n    name: 'SearchDetails',\n    Icon: Icons.SearchDetails,\n  },\n  {\n    name: 'SwitchArrows',\n    Icon: Icons.SwitchArrows,\n  },\n  {\n    name: 'ChangeCart',\n    Icon: Icons.ChangeCart,\n  },\n  {\n    name: 'ToStore',\n    Icon: Icons.ToStore,\n  },\n  {\n    name: 'PaymentHand',\n    Icon: Icons.PaymentHand,\n  },\n  {\n    name: 'GlobeCart',\n    Icon: Icons.GlobeCart,\n  },\n  {\n    name: 'StoreCart',\n    Icon: Icons.StoreCart,\n  },\n  {\n    name: 'List',\n    Icon: Icons.List,\n  },\n  {\n    name: 'Blocks',\n    Icon: Icons.Blocks,\n  },\n  {\n    name: 'StoreData',\n    Icon: Icons.StoreData,\n  },\n  {\n    name: 'Cart',\n    Icon: Icons.Cart,\n  },\n  {\n    name: 'FileConfiguration',\n    Icon: Icons.FileConfiguration,\n  },\n  {\n    name: 'Platform',\n    Icon: Icons.Platform,\n  },\n  {\n    name: 'RestApis',\n    Icon: Icons.RestApis,\n  },\n  {\n    name: 'Catalog',\n    Icon: Icons.Catalog,\n  },\n  {\n    name: 'Orders',\n    Icon: Icons.Orders,\n  },\n  {\n    name: 'Checkout',\n    Icon: Icons.Checkout,\n  },\n  {\n    name: 'Payments',\n    Icon: Icons.Payments,\n  },\n  {\n    name: 'Promotions',\n    Icon: Icons.Promotions,\n  },\n  {\n    name: 'Pricing',\n    Icon: Icons.Pricing,\n  },\n  {\n    name: 'AccountManagement',\n    Icon: Icons.AccountManagement,\n  },\n  {\n    name: 'StoreSearch',\n    Icon: Icons.StoreSearch,\n  },\n  {\n    name: 'Subscriptions',\n    Icon: Icons.Subscriptions,\n  },\n  {\n    name: 'Fulfillment',\n    Icon: Icons.Fulfillment,\n  },\n]\n\nconst getIcon = (name: string) => {\n  return IconsMap.find((icon) => icon.name === name)?.Icon\n}\n\n//Interfaces\nexport interface OverviewCardProps {\n  icon: string\n  link: string\n  children: string\n}\n\nconst OverviewCard = ({ icon, link, children }: OverviewCardProps) => {\n  const Icon = getIcon(icon)\n  return (\n    \n      \n        {Icon && }\n        {children}\n      \n    \n  )\n}\n\nexport default OverviewCard\n","import React from 'react'\nimport type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst StorageUnit = (props: IconProps) => (\n  \n    \n      \n      \n      \n      \n      \n      \n      \n    \n  \n)\n\nconst Board = (props: IconProps) => (\n  \n    \n      \n      \n      \n      \n    \n  \n)\n\nconst Composable = (props: IconProps) => (\n  \n    \n      \n      \n      \n      \n    \n  \n)\n\nconst Integration = (props: IconProps) => (\n  \n    \n    \n    \n    \n    \n  \n)\n\nconst SearchList = (props: IconProps) => (\n  \n    \n    \n    \n    \n    \n    \n    \n  \n)\n\nconst SwitchArrows = (props: IconProps) => (\n  \n    \n    \n    \n    \n    \n    \n  \n)\n\nconst SearchDetails = (props: IconProps) => (\n  \n    \n    \n    \n  \n)\n\nconst List = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\n\nconst StoreCart = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\n\nconst GlobeCart = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\n\nconst PaymentHand = (props: IconProps) => (\n  \n    \n    \n    \n    \n    \n  \n)\n\nconst ToStore = (props: IconProps) => (\n  \n    \n    \n    \n    \n    \n    \n  \n)\nconst ChangeCart = (props: IconProps) => (\n  \n    \n    \n    \n    \n    \n    \n    \n  \n)\n\nconst Blocks = (props: IconProps) => (\n  \n    {' '}\n    \n      {' '}\n      {' '}\n      {' '}\n      {' '}\n      {' '}\n    \n  \n)\nconst StoreData = (props: IconProps) => (\n  \n    \n    \n    \n    \n    \n  \n)\nconst FileConfiguration = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\nconst Cart = (props: IconProps) => (\n  \n    \n    \n    \n    \n  \n)\n\nconst Platform = (props: IconProps) => (\n  \n    \n      \n      \n      \n      \n      \n      \n      \n    \n  \n)\n\nconst RestApis = (props: IconProps) => (\n  \n    \n      \n      \n      \n      \n    \n  \n)\n\nconst Catalog = (props: IconProps) => (\n  \n    {' '}\n    \n  \n)\n\nconst Orders = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\n\nconst Checkout = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\n\nconst Payments = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\n\nconst Promotions = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\n\nconst Pricing = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\n\nconst AccountManagement = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\n\nconst StoreSearch = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\nconst Subscriptions = (props: IconProps) => (\n  \n    \n      \n      \n      \n      \n      \n      \n    \n  \n)\n\nconst Fulfillment = (props: IconProps) => (\n  \n    \n      \n      \n      \n      \n      \n      \n      \n      \n      \n      \n    \n  \n)\n\nexport {\n  StorageUnit,\n  Board,\n  Composable,\n  Integration,\n  SearchList,\n  SwitchArrows,\n  SearchDetails,\n  ChangeCart,\n  ToStore,\n  PaymentHand,\n  GlobeCart,\n  StoreCart,\n  List,\n  Blocks,\n  StoreData,\n  FileConfiguration,\n  Cart,\n  Platform,\n  RestApis,\n  Catalog,\n  Orders,\n  Checkout,\n  Payments,\n  Promotions,\n  Pricing,\n  AccountManagement,\n  StoreSearch,\n  Subscriptions,\n  Fulfillment,\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\n\nexport interface IYoutubeFrame {\n  embedId: string\n}\nconst YoutubeFrame = ({ embedId }: IYoutubeFrame) => (\n  
\n \n
\n)\n\nYoutubeFrame.propTypes = {\n embedId: PropTypes.string.isRequired,\n}\n\nexport default YoutubeFrame\n","import React from 'react'\nimport { Box } from '@vtex/brand-ui'\nimport styles from './styles'\n\nexport interface StepsProps {\n children: string\n}\nconst Steps = ({ children }: StepsProps) => {\n return {children}\n}\nexport default Steps\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst steps: SxStyleProp = {\n ml: '4px',\n mt: '12px',\n mb: '27px',\n borderLeft: '1px solid #e5e7eb',\n pl: '25px',\n position: 'relative',\n '.heading': {\n counterIncrement: `step`,\n },\n '.heading:before': {\n content: `counter(step)`,\n position: 'absolute',\n border: '4px solid #ffffff',\n width: '2em',\n height: '2em',\n left: '-1.3em',\n color: '#a1a1aa',\n backgroundColor: '#f2f3f6',\n borderRadius: '9999px',\n fontSize: '1em',\n textAlign: 'center',\n lineHeight: '2.1em',\n boxSizing: 'content-box',\n },\n}\n\nexport default {\n steps,\n}\n","import React, { ReactElement, useEffect, useRef, useState } from 'react'\nimport { Box, Button, Flex } from '@vtex/brand-ui'\nimport CloseIcon from 'components/icons/close-icon'\nimport useClickOutside from 'utils/hooks/useClickOutside'\nimport styles from './styles'\n\ninterface Props {\n children: ReactElement\n}\n\nexport default function LightBox({ children }: Props) {\n const [isModalOpen, setIsModalOpen] = useState(false)\n const modalRef = useRef()\n\n useEffect(() => {\n if (isModalOpen) {\n const scrollTop = document.body.getBoundingClientRect().top\n document.body.style.top = `${scrollTop}px`\n document.body.classList.add('modal-open')\n } else {\n document.body.classList.remove('modal-open')\n document.body.style.removeProperty('top')\n }\n }, [isModalOpen])\n\n useClickOutside(modalRef, () => setIsModalOpen(false))\n\n return (\n
\n {isModalOpen && (\n \n }\n onClick={() => setIsModalOpen(false)}\n />\n \n {children}\n \n \n )}\n setIsModalOpen(true)}>\n {children}\n \n
\n )\n}\n","import React from 'react'\nimport type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst CloseIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default CloseIcon\n","import { useEffect, MutableRefObject, SetStateAction, Dispatch } from 'react'\n\nexport default function useClickOutside(\n ref: MutableRefObject,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n openModal: Dispatch>\n) {\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n const { body, documentElement } = document\n if (\n ref.current &&\n event.target instanceof Node &&\n !ref.current.contains(event.target)\n ) {\n openModal({ modalToggle: false })\n const scrollTop = body.getBoundingClientRect().top * -1\n body.classList.remove('modal-open')\n documentElement.scrollTop = scrollTop\n body.style.removeProperty('top')\n }\n }\n document.addEventListener('mousedown', handleClickOutside)\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n }\n }, [])\n}\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst imageContainer: SxStyleProp = {\n cursor: 'pointer',\n borderRadius: '5px',\n width: 'fit-content',\n mt: '16px',\n mb: '24px',\n transition: '0.3s',\n ':hover': {\n boxShadow: '2px 4px 8px 2px rgb(0 0 0 / 10%)',\n },\n\n '> img': {\n maxWidth: '100%',\n display: 'block',\n padding: '0',\n margin: '0',\n border: '1px solid #e7e9ed',\n borderRadius: '4px'\n },\n}\n\nconst container: SxStyleProp = {\n margin: '0',\n width: '100%',\n height: '100%',\n backgroundColor: 'rgba(0,0,0,0.9)',\n position: 'fixed',\n top: '0',\n left: '0',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n zIndex: '10000',\n}\n\nconst modal: SxStyleProp = {\n display: 'inline-block',\n margin: 'auto',\n boxShadow: '2px 4px 16px rgb(0 0 0 / 30%)',\n position: 'relative',\n zIndex: '10001',\n padding: '0',\n\n '> img': {\n display: 'block',\n maxHeight: 'calc(100vh - 50px)',\n maxWidth: 'calc(100vw - 50px)',\n width: 'auto',\n margin: '0',\n padding: '0',\n },\n}\n\nconst closeButton: SxStyleProp = {\n position: 'absolute',\n zIndex: '10002',\n top: '10px',\n right: '10px',\n color: '#FEFEFE',\n\n ':hover': {\n color: 'rgb(100, 100, 100)',\n },\n}\n\nexport default {\n imageContainer,\n container,\n modal,\n closeButton,\n}\n","import React from 'react'\nimport { Box, Flex, IconCaret, Text, Link } from '@vtex/brand-ui'\nimport styles from './styles'\nimport Image from 'next/image.js'\n\nexport type WhatsNextDataElement = {\n title: string\n description?: string\n linkTitle?: string\n linkTo: string\n image?: string\n}\n\nconst WhatsNextCard = ({\n title,\n description,\n linkTitle,\n linkTo,\n image,\n}: WhatsNextDataElement) => {\n return (\n \n {image ? (\n \n \n \n {title}\n \n \n ) : (\n \n \n {title}\n \n {description && (\n \n {description}\n \n )}\n {linkTitle && (\n \n \n {linkTitle}\n \n \n \n )}\n \n )}\n \n )\n}\n\nexport default WhatsNextCard\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst container: SxStyleProp = {\n mt: '16px',\n borderRadius: '4px',\n border: '1px solid #E7E9EE',\n width: ['100%', '49%'],\n transition: 'all 0.3s ease-out',\n ':hover': {\n cursor: 'pointer',\n },\n ':active, :hover': {\n borderColor: 'muted.2',\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\n transition: 'all 0.3 ease-out',\n '.title, .description': {\n transition: 'all 0.3s ease-out',\n color: '#000711',\n },\n '.link, .caret': {\n transition: 'all 0.3s ease-out',\n color: 'muted.0',\n },\n },\n}\n\nconst title: SxStyleProp = {\n mb: '8px',\n fontSize: '16px',\n fontWeight: '400',\n lineHeight: ['22px', '18px'],\n color: 'muted.0',\n}\n\nconst imageTitle: SxStyleProp = {\n padding: '16px',\n fontSize: '16px',\n fontWeight: '400',\n color: 'muted.0',\n ':after': {\n content: `url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='rgb(74 89 108)' %3E%3Cpath fill-rule='evenodd' d='M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z' clip-rule='evenodd' /%3E%3C/svg%3E\")`,\n position: 'absolute',\n height: '16px',\n width: '16px',\n marginLeft: '3px',\n lineHeight: '30px',\n },\n}\n\nconst description: SxStyleProp = {\n fontSize: '14px',\n fontWeight: '400',\n lineHeight: '20px',\n color: 'muted.0',\n}\n\nconst linkContainer: SxStyleProp = {\n mt: '8px',\n alignItems: 'center',\n}\n\nconst link: SxStyleProp = {\n ...description,\n color: 'muted.1',\n}\n\nexport default {\n container,\n title,\n imageTitle,\n description,\n linkContainer,\n link,\n}","import type { Dispatch, ReactNode, SetStateAction } from 'react'\nimport { createContext, useEffect, useState } from 'react'\nimport { Item } from 'lib/table-of-contents/TableOfContents.types'\nimport { Section } from 'utils/typings/types'\nimport { SWRConfig } from 'swr'\n\ninterface Props extends Partial {\n children: ReactNode\n /** The navigation array containing the list of documentations shown in the sidebar. */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fallback?: any\n /** Documentation sections, the same sections that divide the fallback. */\n sections: Section[][]\n /** Whether is a branch preview or not. */\n isPreview: boolean\n /** The section currently selected. */\n sectionSelected: string\n /** The sections to be used on the hamburguer menu */\n hamburguerMenuSections: Section[][]\n /** The portal language. The default is english. */\n locale?: 'en' | 'pt' | 'es'\n}\n\nexport type ContextType = {\n headingItems: Item[]\n setHeadingItems: Dispatch>\n activeItem: ActiveItem\n setActiveItem: Dispatch>\n goToPreviousItem: () => void\n goToPreviousSubItem: () => void\n isEditorPreview: boolean\n sidebarSectionHidden: boolean\n activeSectionName: string\n activeSidebarElement: string\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n sidebarDataMaster: any\n sidebarElementStatus: Map\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setSidebarDataMaster: Dispatch>\n setIsEditorPreview: Dispatch>\n setSidebarSectionHidden: Dispatch>\n setActiveSectionName: Dispatch>\n setActiveSidebarElement: Dispatch>\n toggleSidebarElementStatus: (title: string) => void\n openSidebarElement: (title: string) => void\n closeSidebarElements: (parentsArray: string[]) => void\n sidebarSections: Section[][]\n setSidebarSections: Dispatch>\n hamburguerSections: Section[][]\n setHamburguerSections: Dispatch>\n locale: 'en' | 'pt' | 'es'\n}\n\ntype ActiveItem = {\n item: string\n subItem: string\n}\n\nexport const LibraryContext = createContext({\n headingItems: [],\n setHeadingItems: () => undefined,\n activeItem: {\n item: '',\n subItem: '',\n },\n setActiveItem: () => undefined,\n goToPreviousItem: () => undefined,\n goToPreviousSubItem: () => undefined,\n isEditorPreview: false,\n sidebarSectionHidden: false,\n activeSectionName: '',\n activeSidebarElement: '',\n sidebarDataMaster: {},\n setIsEditorPreview: () => undefined,\n sidebarElementStatus: new Map(),\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any\n setSidebarDataMaster: (_: any) => undefined,\n setSidebarSectionHidden: () => undefined,\n setActiveSectionName: () => undefined,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any\n setActiveSidebarElement: (_: any) => undefined,\n toggleSidebarElementStatus: () => undefined,\n openSidebarElement: () => undefined,\n closeSidebarElements: () => undefined,\n sidebarSections: [],\n setSidebarSections: () => undefined,\n hamburguerSections: [],\n setHamburguerSections: () => undefined,\n locale: 'en',\n})\n\n/** Provider for the LibraryContext created with React.createContext. The context is used in the following components: feedback, search, sidebar, hamburger menu, markdown renderer and table of contents. */\nconst LibraryContextProvider = ({ children, ...props }: Props) => {\n const [headingItems, setHeadingItems] = useState([])\n const [activeItem, setActiveItem] = useState({\n item: '',\n subItem: '',\n })\n\n const [activeSectionName, setActiveSectionName] = useState(\n props.sectionSelected\n )\n const [sidebarSectionHidden, setSidebarSectionHidden] = useState(false)\n const [activeSidebarElement, setActiveSidebarElement] = useState('')\n const [sidebarElementStatus, setSidebarElementStatus] = useState(new Map())\n const [sidebarDataMaster, setSidebarDataMaster] = useState(props.fallback)\n const [isEditorPreview, setIsEditorPreview] = useState(props.isPreview)\n const [sidebarSections, setSidebarSections] = useState(props.sections)\n const [hamburguerSections, setHamburguerSections] = useState(\n props.hamburguerMenuSections\n )\n const { locale: propsLocale, ...restProps } = props\n const locale = propsLocale ?? 'en'\n const fallback = restProps.fallback\n\n useEffect(() => {\n setSidebarDataMaster(props.fallback)\n }, [props.fallback])\n\n useEffect(() => {\n if (props.sectionSelected === '') setSidebarSectionHidden(true)\n else if (props.sectionSelected !== activeSectionName)\n setActiveSectionName(props.sectionSelected)\n }, [props.sectionSelected])\n\n const toggleSidebarElementStatus = (title: string) => {\n setSidebarElementStatus((sidebarElementStatus) => {\n const open =\n sidebarElementStatus.has(title) === false\n ? true\n : !sidebarElementStatus.get(title)\n\n return new Map(sidebarElementStatus.set(title, open))\n })\n }\n\n const closeSidebarElements = (parentsArray: string[]) => {\n sidebarElementStatus.forEach((_value, key) => {\n if (!parentsArray.includes(key)) {\n setSidebarElementStatus((sidebarElementStatus) => {\n return new Map(sidebarElementStatus.set(key, false))\n })\n }\n })\n }\n\n const openSidebarElement = (title: string) => {\n setSidebarElementStatus((sidebarElementStatus) => {\n return new Map(sidebarElementStatus.set(title, true))\n })\n }\n\n const goToPreviousItem = () => {\n setActiveItem(({ item, subItem }) => {\n const index = headingItems.findIndex((heading) => heading.slug === item)\n if (index === -1) return { item, subItem }\n\n const previousItem = !index ? '' : headingItems[index - 1].slug\n const previousChildren = !index ? [] : headingItems[index - 1].children\n const previousSubItem = !previousChildren.length\n ? ''\n : previousChildren.slice(-1)[0].slug\n\n return {\n item: previousItem,\n subItem: previousSubItem,\n }\n })\n }\n\n const goToPreviousSubItem = () => {\n setActiveItem(({ item, subItem }) => {\n const heading = headingItems.find((heading) => heading.slug === item)\n const index = heading?.children.findIndex(\n (child) => child.slug === subItem\n )\n\n if (!heading || index === -1) return { item, subItem }\n\n return {\n item,\n subItem: !index ? '' : heading.children[index - 1].slug,\n }\n })\n }\n\n return (\n \n \n {children}\n \n \n )\n}\n\nexport default LibraryContextProvider\n","export const removeHTML = (str: string) => str.replace(/<\\/?[^>]+>/g, '')\n\nconst SYMBOL_RUN_THRESHOLD = 3\n\n/**\n * Strips Markdown syntax from text snippets to render as plain text.\n * Removes headings, bold, italic, inline code, images, and links while preserving\n * the readable content. Also handles tokens left truncated by the upstream\n * snippet (e.g. an image/link cut off mid-URL with no closing paren).\n */\nexport const stripMarkdownForSnippet = (str: string): string => {\n if (!str) return ''\n\n let cleaned = str\n // Drop closed fenced blocks (code, mermaid, etc.) including their contents\n .replace(/```[\\s\\S]*?```/g, '')\n // Drop unclosed/truncated fenced blocks at the end of a snippet\n .replace(/```[^\\n]*(?:\\n[\\s\\S]*)?$/g, '')\n // Remove markdown images ![alt](url) entirely (alt is usually a filename)\n .replace(/!\\[[^\\]]*\\]\\([^)]*\\)/g, '')\n // Remove markdown links [text](url) - keep only the text\n .replace(/\\[([^\\]]+)\\]\\([^)]+\\)/g, '$1')\n // Remove truncated markdown images/links left dangling at the end of a\n // snippet (upstream cuts the string mid-token, e.g. \"![alt](https://...\" )\n .replace(/!?\\[[^\\]]*\\]\\([^)]*$/g, '')\n // Remove a dangling image/link label with no closing bracket (\"![alt\" )\n .replace(/!?\\[[^\\]]*$/g, '')\n // Remove markdown headings (# ## ### etc.) at line start\n .replace(/^#{1,6}\\s+/gm, '')\n // Remove markdown headings anywhere in text\n .replace(/\\s#{1,6}\\s+/g, ' ')\n // Remove bold (**text** or __text__)\n .replace(/\\*\\*(.+?)\\*\\*/g, '$1')\n .replace(/__(.+?)__/g, '$1')\n // Remove italic (*text* or _text_)\n .replace(/\\*(.+?)\\*/g, '$1')\n .replace(/_(.+?)_/g, '$1')\n // Remove inline code (`text`) — keep readable inner text\n .replace(/`([^`]+)`/g, '$1')\n // Remove horizontal rules (---, ***, ___)\n .replace(/^(\\*{3,}|-{3,}|_{3,})$/gm, '')\n // Remove blockquotes (>)\n .replace(/^>\\s+/gm, '')\n // Remove table separator rows (| --- | :--: | etc.)\n .replace(/^\\s*\\|?\\s*:?-{3,}:?\\s*(\\|\\s*:?-{3,}:?\\s*)*\\|?\\s*$/gm, '')\n // Replace remaining table pipes with spaces so cell content stays readable\n .replace(/\\s*\\|\\s*/g, ' ')\n // Collapse stray horizontal-rule / table-separator symbol runs\n .replace(new RegExp(`-{${SYMBOL_RUN_THRESHOLD},}`, 'g'), ' ')\n .replace(new RegExp(`={${SYMBOL_RUN_THRESHOLD},}`, 'g'), ' ')\n .replace(new RegExp(`\\\\|{${SYMBOL_RUN_THRESHOLD},}`, 'g'), ' ')\n // Remove extra whitespace and normalize spaces\n .replace(/\\s+/g, ' ')\n .trim()\n\n // If the snippet starts mid-word (lowercase letter), try to find the start of the next word\n if (cleaned.length > 0 && /^[a-zà-ÿ]/.test(cleaned)) {\n const firstSpaceIndex = cleaned.indexOf(' ')\n if (firstSpaceIndex > 0 && firstSpaceIndex < 50) {\n cleaned = cleaned.substring(firstSpaceIndex + 1).trim()\n }\n }\n\n return cleaned\n}\n\nexport const capitalizeFirstLetter = (str: string) => {\n return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\nexport const toCamelCase = (str: string) => {\n const [firstWord, ...otherWords] = str.split('-')\n return `${firstWord}${otherWords.map(capitalizeFirstLetter).join('')}`\n}\n\nexport const slugify = (str: string) => {\n return str\n .normalize('NFD') // Decomposes diacritics (e.g., \"é\" → \"é\")\n .replace(/[\\u0300-\\u036f]/g, '') // Removes diacritic marks\n .toLowerCase()\n .replace(/[^\\w\\s-]/g, '') // Removes non-word characters except spaces and hyphens\n .replace(/\\s+/g, '-') // Replaces spaces with hyphens\n .replace(/-+/g, '-') // Removes multiple consecutive hyphens\n .trim() // Trims leading/trailing spaces\n}\n\ntype Child = string | { props: { children: Child[] } }\n\nexport const childrenToString: (children: Child[]) => string = (children) => {\n if (!children) return ''\n else if (Array.isArray(children))\n return children\n .map((child) => {\n if (typeof child === 'string') return child\n return childrenToString(child.props.children)\n })\n .join('')\n else {\n if (typeof children === 'string') return children\n return childrenToString(children['props']['children'])\n }\n}\n\nexport const matrixToMarkdownTable: (matrix: string[][]) => string = (\n matrix\n) => {\n const matrixRowToMarkdownTableRow = (matrixRow: string[]) =>\n `|${matrixRow\n .map((matrixElement) => ` ${matrixElement.replace(/\\n/g, '
')} |`)\n .join('')}`\n\n let table = matrixRowToMarkdownTableRow(matrix[0]) + '\\n|'\n for (let i = 0; i < matrix[0].length; i++) table += ' --- |'\n\n table += '\\n'\n for (let i = 1; i < matrix.length; i++)\n table += matrixRowToMarkdownTableRow(matrix[i]) + '\\n'\n\n return table\n}\n","import mermaid from 'mermaid'\n\nconst mermaidInit = () => {\n mermaid.initialize({\n theme: 'base',\n themeVariables: {\n primaryColor: '#FFFFFF',\n primaryTextColor: '#142032',\n primaryBorderColor: '#A1AAB7',\n labelBoxBorderColor: '#E31C58',\n labelTextColor: '#E31C58',\n labelBoxBkgColor: '#FFF3F6',\n lineColor: '#A1AAB7',\n mainBkg: '#F8F7FC',\n },\n })\n}\n\nexport default mermaidInit\n",".img {\n max-width: 100%;\n padding-top: 2vh;\n border-radius: 4px;\n}\n\n.heading::before {\n content: '';\n display: block;\n visibility: hidden;\n pointer-events: none;\n}\n\n.code {\n background-color: unset;\n background-color: var(--md-code-background, #f6f8fa);\n border-radius: 4px;\n color: var(--md-code-text);\n margin: 0;\n padding: 0.2em 0.4em;\n font-size: 0.875em;\n word-break: break-word;\n overflow-wrap: break-word;\n}\n\ntable .code {\n word-break: normal;\n}\n\n.blockquote {\n display: grid;\n padding: 20px;\n gap: 20px;\n width: 100%;\n margin: 16px 0px 24px;\n border-radius: 4px;\n align-items: center;\n border: 1px solid #ccced8;\n grid-template-columns: 20px 1fr;\n grid-template-rows: auto;\n word-break: break-word;\n}\n\n.blockquote a {\n word-break: break-word;\n overflow-wrap: break-word;\n}\n\n.blockquote p,\n.blockquote div {\n margin: 0px;\n grid-column: 2 / -1;\n grid-row: 1 / 1;\n}\n\n.blockquote > div {\n width: 100%;\n max-width: 100%;\n min-width: 0;\n}\n\n.blockquote ch-code-scroll-parent {\n width: 100% !important;\n overflow-x: auto !important;\n overflow-y: hidden !important;\n background-color: unset !important;\n}\n\n.blockquote a {\n color: #e31c58 !important;\n -webkit-text-decoration: underline 1px solid;\n text-decoration: underline 1px solid;\n}\n\n.blockquote a:hover {\n color: #c81e51;\n}\n\n.blockquoteIcon {\n display: inline-block;\n flex-shrink: 0;\n grid-row: 1;\n}\n\n.blockquoteInfo {\n background: #f8f7fc;\n border: 1px solid #ccced8;\n}\n\n.blockquoteDanger {\n background: #fdefef;\n border: 1px solid #dc5a41;\n}\n\n.blockquoteWarning {\n background: #fff2d4;\n border: 1px solid #ffb100;\n}\n\n.blockquoteWarning code {\n background-color: #ffe5b5;\n}\n\n.blockquoteInfo code {\n background-color: unset;\n}\n\n.blockquoteSuccess {\n background: #f3f8f3;\n border: 1px solid #80be80;\n}\n\n.flexWrap {\n flex-wrap: wrap;\n justify-content: space-between;\n}\n\n.svgContainer {\n width: 100%;\n}","{\r\n \"feedback_section.question\": \"Was this helpful?\",\r\n \"feedback_section.response\": \"Thanks for the feedback!\",\r\n \"feedback_section.positive\": \"Yes\",\r\n \"feedback_section.negative\": \"No\",\r\n \"feedback_section.edit\": \"Suggest Edits (GitHub)\",\r\n \"feedback_modal.title\": \"Leave a Comment (Optional)\",\r\n \"feedback_modal.button\": \"Send Feedback\",\r\n \"search_input.empty\": \"No results found. Try different search terms.\",\r\n \"search_input.placeholder\": \"Search\",\r\n \"search_results.showing\": \"Showing\",\r\n \"search_results.results_for\": \"results for\",\r\n \"search_results.in\": \"in\",\r\n \"search_results.all_lowercase\": \"all results\",\r\n \"sidebar_search.placeholder\": \"Search in\",\r\n \"search_input.see_all\": \"See all results\",\r\n \"search_results.summary\": \"Showing {count} results for \\\"{keyword}\\\" in {section}\",\r\n \"search_results.all\": \"All results\",\r\n \"search_card.in\": \"In\",\r\n \"image.error_loading\": \"An error occurred while loading the image\",\r\n \"api_reference_sidebar_filter_clear\": \"Clear All\",\r\n \"api_reference_sidebar_filter\": \"Filter By\",\r\n \"cookie_bar.title\": \"We use cookies\",\r\n \"cookie_bar.description\": \"This website uses cookies to improve navigation, analyze usage, and assist with our marketing efforts.\",\r\n \"cookie_bar.accept\": \"I agree\",\r\n \"cookie_bar.decline\": \"I decline\",\r\n \"landing_page_subscription.title\": \"Stay up to date with VTEX documentation\",\r\n \"landing_page_subscription.description\": \"Subscribe to our monthly newsletter to receive information about the latest announcements, release notes, and newly published articles.\",\r\n \"landing_page_newsletter.Button\": \"Subscribe\",\r\n \"subscription_list.api_key_error\": \"Newsletter API key is not defined\",\r\n \"subscription_list.invalid_email\": \"Invalid email address, please try another one.\",\r\n \"subscription_list.success\": \"You've successfully subscribed!\",\r\n \"subscription_list.error\": \"Sorry, we couldn't subscribe you. Please try again later.\",\r\n \"subscription_list.privacy_notice\": \"By subscribing to our newsletter, you agree to our\",\r\n \"subscription_list.privacy_policy_link\": \"Privacy Policy\"\r\n}\r\n","{\r\n \"feedback_section.question\": \"¿Te ha parecido útil?\",\r\n \"feedback_section.response\": \"Gracias por tu feedback\",\r\n \"feedback_section.positive\": \"Sí\",\r\n \"feedback_section.negative\": \"No\",\r\n \"feedback_section.edit\": \"Sugerir cambios (GitHub)\",\r\n \"feedback_modal.title\": \"Dar feedback (opcional)\",\r\n \"feedback_modal.button\": \"Enviar feedback\",\r\n \"search_input.empty\": \"No se encontraron resultados. Intenta utilizar otros términos.\",\r\n \"search_input.placeholder\": \"Buscar\",\r\n \"sidebar_search.placeholder\": \"Buscar en\",\r\n \"search_results.showing\": \"Mostrando\",\r\n \"search_results.results_for\": \"resultados para\",\r\n \"search_results.in\": \"en\",\r\n \"search_results.all_lowercase\": \"todos los resultados\",\r\n \"search_input.see_all\": \"Ver todos los resultados\",\r\n \"search_results.summary\": \"Mostrando {count} resultados para \\\"{keyword}\\\" en {section}\",\r\n \"search_results.all\": \"Todos los resultados\",\r\n \"search_card.in\": \"En\",\r\n \"image.error_loading\": \"Se produjo un error al cargar la imagen\",\r\n \"api_reference_sidebar_filter_clear\": \"Limpiar todo\",\r\n \"api_reference_sidebar_filter\": \"Filtrar por\",\r\n \"cookie_bar.title\": \"Utilizamos cookies\",\r\n \"cookie_bar.description\": \"Este sitio web utiliza cookies para optimizar la navegación, analizar el uso e impulsar nuestros esfuerzos de marketing.\",\r\n \"cookie_bar.accept\": \"Acepto\",\r\n \"cookie_bar.decline\": \"Rechazo\",\r\n \"landing_page_subscription.title\": \"Mantente al día con la documentación de VTEX\",\r\n \"landing_page_subscription.description\": \"Suscríbete a nuestro newsletter mensual para recibir información sobre los últimos anuncios, release notes y artículos recién publicados.\",\r\n \"landing_page_newsletter.Button\": \"Inscríbete\",\r\n \"subscription_list.api_key_error\": \"La clave de API de la newsletter no está definida\",\r\n \"subscription_list.invalid_email\": \"Dirección de email inválida, por favor intenta con otra.\",\r\n \"subscription_list.success\": \"¡Te has suscrito con éxito!\",\r\n \"subscription_list.error\": \"Lo sentimos, no pudimos suscribirte. Por favor, inténtalo de nuevo más tarde.\",\r\n \"subscription_list.privacy_notice\": \"Al suscribirte a nuestra newsletter, aceptas nuestro\",\r\n \"subscription_list.privacy_policy_link\": \"Aviso de privacidad\"\r\n}\r\n","{\r\n \"feedback_section.question\": \"Isso foi útil?\",\r\n \"feedback_section.response\": \"Agradecemos pelo seu feedback.\",\r\n \"feedback_section.positive\": \"Sim\",\r\n \"feedback_section.negative\": \"Não\",\r\n \"feedback_section.edit\": \"Sugerir edições (GitHub)\",\r\n \"feedback_modal.title\": \"Deixe um comentário (opcional)\",\r\n \"feedback_modal.button\": \"Enviar feedback\",\r\n \"search_input.empty\": \"Nenhum resultado encontrado. Tente buscar por outros termos.\",\r\n \"search_input.placeholder\": \"Buscar\",\r\n \"sidebar_search.placeholder\": \"Buscar em\",\r\n \"search_results.showing\": \"Mostrando\",\r\n \"search_results.results_for\": \"resultados para\",\r\n \"search_results.in\": \"em\",\r\n \"search_results.all_lowercase\": \"todos os resultados\",\r\n \"search_input.see_all\": \"Ver todos os resultados\",\r\n \"search_results.summary\": \"Mostrando {count} resultados para \\\"{keyword}\\\" em {section}\",\r\n \"search_results.all\": \"Todos os resultados\",\r\n \"search_card.in\": \"Em\",\r\n \"image.error_loading\": \"Ocorreu um erro ao carregar a imagem\",\r\n \"api_reference_sidebar_filter_clear\": \"Limpar tudo\",\r\n \"api_reference_sidebar_filter\": \"Filtrar por\",\r\n \"cookie_bar.title\": \"Nós usamos cookies\",\r\n \"cookie_bar.description\": \"Este site utiliza cookies para melhorar a navegação, analisar a experiência de uso e auxiliar em nossas ações de marketing.\",\r\n \"cookie_bar.accept\": \"Concordo\",\r\n \"cookie_bar.decline\": \"Discordo\",\r\n \"landing_page_subscription.title\": \"Mantenha-se em dia com a documentação da VTEX\",\r\n \"landing_page_subscription.description\": \"Assine nossa newsletter mensal para receber informações sobre os Announcements mais recentes, Release Notes e os artigos recém-publicados.\",\r\n \"landing_page_newsletter.Button\": \"Inscreva-se\",\r\n \"subscription_list.api_key_error\": \"A chave da API da newsletter não está definida\",\r\n \"subscription_list.invalid_email\": \"Endereço de email inválido, por favor tente outro.\",\r\n \"subscription_list.success\": \"Você se inscreveu com sucesso!\",\r\n \"subscription_list.error\": \"Desculpe, não foi possível realizar sua inscrição. Por favor, tente novamente mais tarde.\",\r\n \"subscription_list.privacy_notice\": \"Ao assinar nossa newsletter, você concorda com a nossa\",\r\n \"subscription_list.privacy_policy_link\": \"Política de Privacidade\"\r\n}","import enMessages from '../messages/en.json'\nimport esMessages from '../messages/es.json'\nimport ptMessages from '../messages/pt.json'\nimport { MessagesType } from './typings/messages-types'\n\nconst getMessages = (): {\n en: MessagesType\n es: MessagesType\n pt: MessagesType\n} => {\n const messages = {\n en: enMessages,\n es: esMessages,\n pt: ptMessages,\n }\n\n return messages\n}\n\nexport const messages = getMessages()\n","import { useContext, useEffect } from 'react'\nimport Link from 'next/link.js'\nimport { useRouter } from 'next/router.js'\nimport { Box, Text } from '@vtex/brand-ui'\nimport AnimateHeight from 'react-animate-height'\n\nimport { removeHTML } from 'utils/string-utils'\nimport { Item } from './TableOfContents.types'\n\nimport { LibraryContext } from 'utils/context/libraryContext'\n\nimport styles from './styles'\n\ninterface Props {\n /** List of headings in the current documentation page */\n headingList?: Item[]\n children?: React.ReactNode\n}\n\n/** Table of contents for documentation pages. */\nconst TableOfContents = ({ headingList, children }: Props) => {\n const router = useRouter()\n const { headingItems, activeItem, setHeadingItems, setActiveItem } =\n useContext(LibraryContext)\n\n useEffect(() => {\n const headings: Item[] = headingList ?? []\n if (!headings.length) {\n document.querySelectorAll('h2, h3').forEach((heading) => {\n const headingSlug = heading.id\n const item = {\n title: removeHTML(heading.innerHTML).replace(':', ''),\n slug: headingSlug,\n }\n\n if (heading.tagName === 'H2') {\n headings.push({ ...item, children: [] })\n } else if (headings.length > 0) {\n headings[headings.length - 1].children.push({ ...item })\n } else {\n headings.push({ ...item, children: [] })\n }\n })\n setHeadingItems(headings)\n } else setHeadingItems(headings)\n }, [router.asPath, headingList])\n\n const Item = ({\n title,\n slug,\n level,\n active,\n }: {\n title: string\n slug: string\n level: number\n active: boolean\n }) => {\n return (\n {\n setActiveItem(({ item }) => ({\n item: level === 1 ? slug : item,\n subItem: level === 1 ? '' : slug,\n }))\n }}\n >\n {title}\n \n )\n }\n\n return (\n \n {headingItems.length > 0 && (\n ON THIS PAGE\n )}\n \n {headingItems.map((item) => (\n \n \n \n \n {item.children.map((subItem) => (\n \n ))}\n \n \n \n ))}\n \n {children}\n \n )\n}\n\nexport default TableOfContents\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst itemsContainer: SxStyleProp = {\n position: 'sticky',\n top: 'calc(5rem + 32px)',\n}\n\nconst tocTitle: SxStyleProp = {\n fontSize: '10px',\n fontWeight: '600',\n textTransform: 'uppercase',\n mb: '6px',\n color: 'muted.0',\n}\n\nconst headings: SxStyleProp = {\n borderLeft: '1px solid #E7E9EE',\n mb: '16px',\n}\n\nconst item: (level: number, active: boolean) => SxStyleProp = (\n level,\n active\n) => {\n const defaultLineHeight = `${level === 1 ? 18 : 22}px`\n return {\n ml: '-1px',\n pl: `${level * 8}px`,\n py: ['6px', '6px', '6px', '6px', '4px', '4px'],\n borderLeft: `1px solid ${active && level === 1 ? '#E31C58' : '#E7E9EE'}`,\n fontSize: ['16px', '16px', '16px', '16px', '12px', '16px'],\n lineHeight: [\n defaultLineHeight,\n defaultLineHeight,\n defaultLineHeight,\n defaultLineHeight,\n `${level === 1 ? 16 : 18}px`,\n defaultLineHeight,\n ],\n fontWeight: `${active ? '600' : '400'}`,\n color: `${active ? '#0C1522' : 'muted.0'}`,\n\n ':hover': {\n color: '#000711',\n },\n }\n}\n\nconst subItemsContainer: SxStyleProp = {\n ml: '16px',\n borderLeft: '1px solid #E7E9EE',\n}\n\nexport default { tocTitle, itemsContainer, item, subItemsContainer, headings }\n","import { useEffect, useRef, useState, useContext } from 'react'\nimport { Flex, Text, Box } from '@vtex/brand-ui'\nimport Link from 'next/link.js'\n\nimport styles from './styles'\nimport { iconTooltipStyle } from './functions'\n\nimport { Section } from 'utils/typings/types'\nimport Tooltip from 'components/tooltip'\nimport { updateOpenPage } from 'utils/sidebar-utils'\nimport SidebarSection, { SidebarSectionProps } from 'components/sidebar-section'\nimport { LibraryContext } from 'utils/context/libraryContext'\n\nexport interface SideBarSectionState {\n /** Array containing the name of the parents of the expanded page in the menu. */\n parentsArray?: string[]\n}\n\n/**\n * Sidebar component.\n */\nconst Sidebar = ({ parentsArray = [] }: SideBarSectionState) => {\n const [expandDelayStatus, setExpandDelayStatus] = useState(true)\n\n const context = useContext(LibraryContext)\n const {\n isEditorPreview,\n setActiveSectionName,\n activeSectionName,\n sidebarSections,\n sidebarDataMaster,\n } = context\n\n const sidebarSectionContent = {\n ...(Array.isArray(sidebarDataMaster)\n ? sidebarDataMaster?.find(\n (section: SidebarSectionProps) =>\n section.documentation === activeSectionName\n )\n : null),\n }\n\n updateOpenPage({\n parentsArray,\n context,\n })\n\n useEffect(() => {\n let timer: NodeJS.Timeout | undefined = undefined\n if (sidebarSectionContent.categories?.length > 0)\n timer = setTimeout(\n () => setExpandDelayStatus && setExpandDelayStatus(false),\n 5000\n )\n else setExpandDelayStatus && setExpandDelayStatus(true)\n\n return () => {\n timer && clearTimeout(timer)\n }\n }, [activeSectionName])\n\n const SideBarIcon = (sectionElement: Section) => {\n const [iconTooltip, setIconTooltip] = useState(false)\n const [tooltipLabel, setTooltipLabel] = useState(sectionElement.title)\n const titleRef = useRef()\n\n useEffect(() => {\n const resizeObserver = new MutationObserver(function (entries) {\n const target = entries[0].target as HTMLElement\n if (target.offsetWidth < target.scrollWidth) setIconTooltip(true)\n else setIconTooltip(false)\n\n if (target.offsetWidth > 0) setTooltipLabel(target.innerText)\n })\n if (titleRef.current) {\n if (titleRef.current.offsetWidth < titleRef.current.scrollWidth)\n setIconTooltip(true)\n resizeObserver.observe(titleRef.current, {\n childList: true,\n })\n }\n return () => {\n resizeObserver.disconnect\n }\n }, [titleRef.current])\n\n return (\n \n \n {\n if (isEditorPreview) {\n e.preventDefault()\n }\n setActiveSectionName(sectionElement.id)\n }}\n passHref\n aria-label={sectionElement.title}\n >\n \n \n \n {sectionElement.title}\n \n \n \n \n \n )\n }\n\n return (\n \n \n {sidebarSections.map((section, id) => {\n return (\n <>\n {id > 0 && (\n \n
\n
\n )}\n \n {section.map((element) => (\n \n ))}\n \n \n )\n })}\n
\n {activeSectionName ? : null}\n \n )\n}\n\nexport default Sidebar\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst sidebar: SxStyleProp = {\n display: [\n 'none !important',\n 'none !important',\n 'none !important',\n 'flex !important',\n ],\n position: 'sticky',\n left: '0',\n top: '5rem',\n flex: '1 0 auto',\n height: 'calc(100vh - 5rem)',\n width: 'auto',\n minWidth: 'auto',\n transition: 'all 0.3s ease-in-out',\n '.active': {\n marginLeft: '-276px',\n transition: 'all 0.3s ease-in-out',\n },\n '.iconContainerExpanded': {\n transition: 'all 0.3s ease-in-out',\n width: '160px',\n },\n '.iconDescriptionExpanded': {\n display: 'block',\n },\n}\n\nconst sidebarIcons: SxStyleProp = {\n width: ['56px', '56px', '56px', '56px', '56px', '160px'],\n minWidth: 'max-content',\n transition: 'all 0.3s ease-in-out',\n flexDirection: 'column',\n borderRight: '1px solid #E7E9EE',\n background: '#FFFFFF',\n zIndex: '2',\n paddingBottom: '32px',\n}\n\nconst linkContainer: SxStyleProp = {\n minWidth: '100%',\n}\n\nconst iconBox: SxStyleProp = {\n mt: ['16px'],\n width: '100%',\n maxWidth: '144px',\n paddingLeft: ['0', '0', '0', '8px'],\n paddingRight: ['0', '0', '0', '8px', '8px', '0'],\n py: ['0', '0', '0', '8px', '8px', '10px'],\n height: '40px',\n borderRadius: '4px',\n alignItems: 'center',\n justifyContent: 'flex-start',\n background: 'transparent',\n color: 'muted.0',\n cursor: 'pointer',\n ':hover': {\n background: '#F8F7FC',\n color: '#000711',\n path: {\n stroke: [\n '#000711',\n '#000711',\n '#000711',\n '#000711',\n '#000711',\n '#4A596B',\n ],\n },\n },\n}\n\nconst iconBoxActive: SxStyleProp = {\n ...iconBox,\n background: ['#F8F7FC', '#F8F7FC', '#F8F7FC', '#F8F7FC', '#F8F7FC', 'none'],\n color: '#E31C58',\n}\n\nconst sidebarIconsContainer: SxStyleProp = {\n width: '100%',\n flexDirection: 'column',\n alignItems: 'flex-start',\n px: ['0', '0', '0', '8px'],\n}\n\nconst icon: SxStyleProp = {\n width: ['24px'],\n height: ['24px'],\n}\n\nconst iconActive: SxStyleProp = {\n ...icon,\n '> path': {\n stroke: '#E31C58',\n },\n}\n\nconst sectionDivider: SxStyleProp = {\n px: '8px',\n marginTop: '16px',\n hr: {\n border: '1px solid #E7E9EE',\n borderTop: 'none',\n },\n}\n\nconst iconTitle: SxStyleProp = {\n display: ['none', 'none', 'none', 'none', 'none', 'block'],\n width: '100%',\n fontSize: '14px',\n ml: ['8px', '8px', '8px', '8px', '8px', '12px'],\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n}\n\nconst iconTooltip: SxStyleProp = {\n display: [\n 'flex !important',\n 'flex !important',\n 'flex !important',\n 'flex !important',\n 'flex !important',\n 'none !important',\n ],\n}\n\nexport default {\n sidebar,\n sidebarIcons,\n sidebarIconsContainer,\n linkContainer,\n iconBox,\n icon,\n iconActive,\n iconBoxActive,\n sectionDivider,\n iconTitle,\n iconTooltip,\n}\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nexport const iconTooltipStyle: SxStyleProp = (tooltipState: boolean) => {\n const iconTooltip: SxStyleProp = {\n display: [\n 'flex',\n 'flex',\n 'flex',\n 'flex',\n 'flex',\n tooltipState ? 'flex' : 'none !important',\n ],\n }\n return iconTooltip\n}\n","import { useEffect, useRef, useState } from 'react'\nimport { Box, Flex, TooltipProps, SxStyleProp } from '@vtex/brand-ui'\n\nimport styles from './styles'\nimport CaretIcon from 'components/icons/caret'\ninterface Props extends Pick {\n sx?: SxStyleProp\n isCard?: boolean\n}\n\nconst Tooltip = ({ children, label, placement, sx, isCard }: Props) => {\n const box = useRef()\n const [boxWidth, setBoxWidth] = useState(0)\n const [boxHeight, setBoxHeight] = useState(0)\n const [boxOffsetLeft, setBoxOffsetLeft] = useState(0)\n const [boxOffsetTop, setBoxOffsetTop] = useState(0)\n const [visible, setVisible] = useState(false)\n\n useEffect(() => {\n if (box.current) {\n setBoxWidth(box.current.clientWidth)\n setBoxHeight(box.current.clientHeight)\n setBoxOffsetLeft(box.current.offsetLeft)\n setBoxOffsetTop(box.current.offsetTop)\n }\n }, [\n box.current,\n box.current?.clientWidth,\n box.current?.clientHeight,\n box.current?.offsetLeft,\n box.current?.offsetTop,\n ])\n\n return (\n \n setVisible(true)}\n onMouseLeave={() => setVisible(false)}\n >\n {children}\n \n {visible && (isCard ?? true) && (\n \n \n {label}\n \n )}\n \n )\n}\n\nexport default Tooltip\n","import { SxStyleProp } from '@vtex/brand-ui'\n\ntype Placement = 'top' | 'right' | 'bottom' | 'left'\n\nconst tooltipContainer: (\n sx: SxStyleProp,\n placement: Placement,\n width: number,\n height: number,\n x: number,\n y: number\n) => SxStyleProp = (sx, placement, width, height, x, y) => {\n const position = {\n bottom: {\n left: `${x + width / 2}px`,\n top: `${y + height + 3}px`,\n },\n left: {\n left: `${x - 1}px`,\n top: `${y + height / 2}px`,\n },\n top: {\n left: `${x + width / 2}px`,\n top: `${y - 3}px`,\n },\n right: {\n left: `${x + width + 1}px`,\n top: `${y + height / 2}px`,\n },\n }\n\n const translation = {\n bottom: 'translateX(-50%)',\n left: 'translateX(-100%) translateY(-50%)',\n top: 'translateX(-50%) translateY(-100%)',\n right: 'translateY(-50%)',\n }\n\n const direction = {\n bottom: 'column',\n left: 'row-reverse',\n top: 'column-reverse',\n right: 'row',\n }\n\n return {\n ...sx,\n zIndex: '100',\n position: 'absolute',\n alignItems: 'center',\n justifyContent: 'center',\n ...position[placement],\n transform: translation[placement],\n flexDirection: direction[placement],\n }\n}\n\nconst caret: (placement: Placement) => SxStyleProp = (placement) => {\n const rotation = {\n bottom: 0,\n left: 90,\n top: 180,\n right: 270,\n }\n\n const translation = {\n bottom: 1,\n left: 3,\n top: 1,\n right: 3,\n }\n\n return {\n width: '8px',\n height: '4px',\n minWidth: 'initial',\n minHeight: 'initial',\n transform: `rotate(${rotation[placement]}deg) translateY(${translation[placement]}px)`,\n }\n}\n\nconst label: SxStyleProp = {\n borderRadius: '4px',\n backgroundColor: 'black',\n color: 'white',\n fontSize: '12px',\n fontWeight: '400',\n lineHeight: '130%',\n}\n\nconst labelContibutorsContainer: SxStyleProp = {\n ...label,\n padding: '4px 8px',\n}\n\nconst labelDocumentationContainer: SxStyleProp = {\n ...label,\n width: '284px',\n textAlign: 'center',\n px: '12px',\n py: '8px',\n}\n\nconst labelStyle = (documentationSection: boolean): SxStyleProp => {\n if (documentationSection) return labelDocumentationContainer\n return labelContibutorsContainer\n}\nexport default { tooltipContainer, caret, labelStyle }\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst CaretIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default CaretIcon\n","export const flattenJSON = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n obj: any = {},\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n res: any = {},\n extraKey = ''\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): any => {\n for (const key in obj) {\n if (typeof obj[key] !== 'object') {\n res[extraKey + key] = obj[key]\n } else {\n flattenJSON(obj[key], res, `${extraKey}${key}.`)\n }\n }\n return res\n}\n\nexport const getKeyByEndpoint = (\n object: { [x: string]: string },\n endpoint: string,\n slug: string,\n method?: string\n) => {\n const slugPaths = Object.keys(object).filter((key) => object[key] === slug)\n let path = ''\n slugPaths?.map((el) => {\n if (\n method &&\n object[`${el.replace('.slug', '.method')}`] == method?.toUpperCase() &&\n object[`${el.replace('.slug', '.endpoint')}`] == endpoint\n ) {\n path = el\n } else if (hasChildren(object, el.replace('.slug', '.children'))) {\n path = el\n }\n })\n return path\n}\n\nfunction hasChildren(\n flattenedJson: { [x: string]: string },\n elementKey: string\n): boolean {\n for (const key in flattenedJson) {\n if (key.startsWith(`${elementKey}.`)) {\n return true\n }\n }\n return false\n}\n\nexport const getParents = (\n path: string,\n data: string,\n flattenedSidebar: { [x: string]: string },\n parentsArray: string[],\n parent?: string\n) => {\n const pathParts = path?.split('children')\n pathParts?.splice(-1)\n let prev = ''\n pathParts?.map((el) => {\n el = prev + el\n prev = el + 'children'\n\n if (!parent || flattenedSidebar[`${el}${data}`].includes(parent)) {\n parentsArray.push(flattenedSidebar[`${el}${data}`])\n }\n })\n return parentsArray\n}\n","import { Section } from './typings/types'\nimport { flattenJSON, getKeyByEndpoint, getParents } from './navigation-utils'\nimport { useRouter } from 'next/router.js'\nimport { useEffect } from 'react'\nimport { ContextType } from './context/libraryContext'\n\nexport const getIcon = (doc: string, sections: Section[][]) => {\n for (const section of sections) {\n return section.find((icon) => icon.title === doc)?.Icon\n }\n}\n\ninterface updateOpenPageProps {\n parentsArray?: string[]\n context: ContextType\n}\nexport const updateOpenPage = ({\n parentsArray = [],\n context,\n}: updateOpenPageProps) => {\n const {\n activeSidebarElement,\n sidebarDataMaster,\n setActiveSidebarElement,\n openSidebarElement,\n closeSidebarElements,\n } = context\n const flattenedSidebar = flattenJSON(sidebarDataMaster)\n const router = useRouter()\n\n let activeSlug = ''\n const querySlug = router.query.slug\n\n if (querySlug && router.pathname === '/docs/api-reference/[slug]') {\n activeSlug = router.asPath.replace('/docs/api-reference/', '')\n const docPath = activeSlug.split('/')\n const hasHashTag = router.asPath.indexOf('#') > -1\n const apiSlug = docPath[0].split(hasHashTag ? '#' : '?endpoint=')[0]\n const endpoint = '/' + docPath.splice(1, docPath.length).join('/')\n let keyPath\n if (endpoint == '/') {\n activeSlug = apiSlug\n keyPath = getKeyByEndpoint(flattenedSidebar, '', apiSlug)\n } else {\n const method = docPath[0]\n .split(hasHashTag ? '#' : '?endpoint=')[1]\n .split('-')[0]\n keyPath = getKeyByEndpoint(flattenedSidebar, endpoint, apiSlug, method)\n }\n parentsArray.push(activeSlug)\n if (keyPath) {\n getParents(keyPath, 'slug', flattenedSidebar, parentsArray)\n }\n } else {\n activeSlug = parentsArray[parentsArray.length - 1]\n }\n\n useEffect(() => {\n closeSidebarElements(parentsArray)\n parentsArray.forEach((slug: string) => {\n openSidebarElement(slug)\n })\n setActiveSidebarElement(activeSlug?.replace('?endpoint=', '#'))\n }, [activeSidebarElement, router])\n}\n","// Sidebar Section\nimport { Flex, Box, Text, Button } from '@vtex/brand-ui'\nimport { useContext, useMemo, useState } from 'react'\n\nimport styles from './styles'\nimport { SidebarElement } from '../sidebar-elements'\nimport SectionFilter from '../sidebar-section-filter'\nimport SideBarElements from '../sidebar-elements'\nimport SearchIcon from 'components/icons/search-icon'\nimport SideBarToggleIcon from 'components/icons/sidebar-toggle-icon'\nimport ArrowLeftIcon from 'components/icons/arrow-left-icon'\nimport { getIcon } from 'utils/sidebar-utils'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\n\nexport interface SidebarSectionProps {\n documentation: string\n name: string | { en: string, es: string, pt: string }\n categories: SidebarElement[]\n slugPrefix: string\n isHamburgerMenu: boolean\n}\n\nconst SidebarSection = ({\n documentation,\n name,\n categories,\n slugPrefix,\n isHamburgerMenu = false,\n}: SidebarSectionProps) => {\n const [searchValue, setSearchValue] = useState('')\n const {\n isEditorPreview,\n sidebarSectionHidden,\n setSidebarSectionHidden,\n sidebarSections,\n locale\n } = useContext(LibraryContext)\n const [methodFilterList, setMethodFilterList] = useState([\n { name: 'POST', active: false },\n { name: 'GET', active: false },\n { name: 'PUT', active: false },\n { name: 'DELETE', active: false },\n { name: 'PATCH', active: false },\n ])\n\n const filterStatus = methodFilterList.some(\n (methodFilter) => methodFilter.active\n )\n\n const filteredResult = useMemo(() => {\n if (!filterStatus && searchValue === '') return categories\n\n const dataCopy = JSON.parse(JSON.stringify(categories))\n\n const filteredCategories = dataCopy\n .map((category: SidebarElement) => {\n category.children = category.children\n .map((subcategory) => {\n subcategory.children = subcategory.children.filter((endpoint) => {\n const hasMethodFilter =\n !filterStatus ||\n methodFilterList.find(\n (methodFilter) => methodFilter.name === endpoint.method\n )?.active\n const hasInputFilter =\n searchValue === '' ||\n (typeof endpoint.name === 'string'\n ? endpoint.name\n : endpoint.name[locale]\n )\n .toLowerCase()\n .includes(searchValue.toLowerCase())\n return hasMethodFilter && hasInputFilter\n })\n return subcategory\n })\n .filter(\n (subcategory) =>\n subcategory.children.length > 0 ||\n (subcategory.type === 'markdown' &&\n (typeof subcategory.name === 'string'\n ? subcategory.name\n : subcategory.name[locale]\n )\n .toLowerCase()\n .includes(searchValue.toLowerCase()))\n )\n return category\n })\n .filter((category: SidebarElement) => category.children.length > 0)\n return filteredCategories\n }, [filterStatus, methodFilterList, categories, searchValue])\n\n const DocIcon = getIcon(documentation, sidebarSections)\n\n let localizedSectionTitle = ''\n\n if (!categories || categories.length <= 0) {\n return <>\n } else {\n localizedSectionTitle = typeof(name) === 'string' ? name : name[locale]\n }\n\n return isHamburgerMenu ? (\n \n \n \n }\n onClick={() => {\n setSidebarSectionHidden(true)\n }}\n />\n {DocIcon && }\n {localizedSectionTitle}\n \n \n \n \n setSearchValue(e.currentTarget.value)}\n />\n \n {documentation == 'API Reference' && (\n \n )}\n \n \n \n \n \n \n ) : (\n \n \n \n {isEditorPreview && (\n \n \n \n \n \n \n PREVIEW MODE\n \n )}\n {localizedSectionTitle}\n \n \n setSearchValue(e.currentTarget.value)}\n />\n \n \n {documentation == 'API Reference' && (\n \n )}\n \n \n \n \n \n {\n setSidebarSectionHidden(\n (sidebarSectionHidden) => !sidebarSectionHidden\n )\n }}\n sx={sidebarSectionHidden ? styles.toggleIcon : {}}\n />\n \n \n )\n}\n\nexport default SidebarSection\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst sidebarContainer: SxStyleProp = {\n position: 'relative',\n width: 'auto',\n height: 'inherit',\n borderRight: '1px solid #E7E9EE',\n zIndex: '1',\n left: '0',\n transition: 'all 0.3s ease-in-out',\n '.toggleIcon': {\n opacity: '0',\n transition: 'all 0.3s ease-out',\n },\n '.sidebarHide': {\n opacity: '0',\n transition: 'all 0.5s ease-out',\n },\n ':hover': {\n '.toggleIcon': {\n opacity: '100',\n transition: 'all 0.3s ease-out',\n },\n },\n}\n\nconst sidebarContainerHamburger: SxStyleProp = {\n width: 'auto',\n minHeight: '692px',\n zIndex: '1',\n}\n\nconst sidebarContainerBox: SxStyleProp = {\n opacity: '100',\n paddingTop: '34px',\n paddingBottom: '24px',\n overflowY: 'auto',\n height: 'inherit',\n maskImage:\n 'linear-gradient(to top, transparent, black), linear-gradient(to left, transparent 17px, black 17px)',\n maskSize: '100% 20000px',\n maskPosition: 'left bottom',\n transition: 'mask-position 0.3s, -webkit-mask-position 0.3s',\n ':hover': {\n maskPosition: 'left top',\n },\n}\n\nconst sidebarContainerBoxHamburger: SxStyleProp = {\n opacity: '100',\n transition: 'all 1s ease-out',\n}\n\nconst sidebarContainerBody: SxStyleProp = {\n px: '17px',\n}\n\nconst sidebarContainerHeader: SxStyleProp = {\n ...sidebarContainerBody,\n}\n\nconst sidebarContainerTitle: SxStyleProp = {\n alignItems: 'center',\n lineHeight: '22px',\n gap: '5px',\n padding: '17px 0px 17px 17px',\n borderBottom: '1px solid #E7E9EE',\n}\n\nconst sidebarTitle: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n fontSize: '16px',\n lineHeight: '18px',\n}\n\nconst sidebarHelpIcon: SxStyleProp = {\n ml: '4px',\n width: '24px',\n height: '24px',\n}\n\nconst searchBox: SxStyleProp = {\n mt: '16px',\n mb: '20px',\n alignItems: 'center',\n borderRadius: '4px',\n background: '#F4F4F4',\n width: '265px',\n height: '40px',\n paddingLeft: '12px',\n}\n\nconst searchInput: SxStyleProp = {\n width: 'auto',\n background: '#F4F4F4',\n border: '#F4F4F4',\n color: '#545454',\n fontSize: ['14px'],\n}\n\nconst searchIcon: SxStyleProp = {\n minWidth: '16px',\n minHeight: '16px',\n width: '16px',\n mr: '8px',\n}\n\nconst toggleIconBox: SxStyleProp = {\n justifyContent: 'center',\n alignItems: 'center',\n width: '32px',\n height: '32px',\n borderRadius: '50%',\n border: '1px solid #E7E9EE',\n background: '#FFFFFF',\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\n position: 'absolute',\n top: '32px',\n right: '-16px',\n cursor: 'pointer',\n}\n\nconst toggleIconBoxActive: SxStyleProp = {\n ...toggleIconBox,\n opacity: '100 !important',\n}\n\nconst toggleIcon: SxStyleProp = {\n transform: 'scaleX(-1)',\n}\n\nconst arrowButton: SxStyleProp = {\n padding: '0px',\n}\n\nconst previewMode: SxStyleProp = {\n display: 'flex',\n color: '#A87600',\n backgroundColor: '#ffe5b5',\n padding: '10px',\n borderRadius: '10px',\n fontWeight: '600',\n fontSize: '14px',\n lineHeight: '20px',\n letterSpacing: '0.5px',\n mb: '20px',\n svg: {\n width: '20px',\n mr: '10px',\n },\n}\n\nexport default {\n sidebarContainer,\n sidebarContainerHamburger,\n sidebarContainerBox,\n sidebarContainerBoxHamburger,\n sidebarContainerBody,\n sidebarContainerHeader,\n sidebarContainerTitle,\n sidebarTitle,\n sidebarHelpIcon,\n searchBox,\n searchInput,\n searchIcon,\n toggleIconBox,\n toggleIconBoxActive,\n toggleIcon,\n arrowButton,\n previewMode,\n}\n","import { Box, Flex, Text } from '@vtex/brand-ui'\nimport MethodCategory from 'components/method-category'\nimport { Dispatch, SetStateAction, useContext, useState } from 'react'\n\nimport styles from './styles'\nimport { MethodType } from 'utils/typings/types'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\n\ntype MethodFilter = {\n name: string\n active: boolean\n}\n\ninterface MethodButtonProps {\n methodFilter: MethodFilter\n}\n\ninterface SectionFilterProps {\n methodFilterList: MethodFilter[]\n setMethodFilter: Dispatch>\n}\n\nconst SectionFilter = ({\n methodFilterList,\n setMethodFilter,\n}: SectionFilterProps) => {\n const [activeFilters, setActiveFilters] = useState([])\n const { locale } = useContext(LibraryContext)\n\n const setFilter = (methodFilterChanged: MethodType | null) => {\n if (methodFilterChanged) {\n const index = activeFilters.indexOf(methodFilterChanged)\n index === -1\n ? setActiveFilters([...activeFilters, methodFilterChanged])\n : setActiveFilters(\n activeFilters.filter((filter) => filter !== methodFilterChanged)\n )\n setMethodFilter(\n methodFilterList.map((methodFilter) => {\n if (methodFilter.name === methodFilterChanged)\n methodFilter.active = !methodFilter.active\n return methodFilter\n })\n )\n } else {\n setActiveFilters([])\n setMethodFilter(\n methodFilterList.map((methodFilter) => {\n methodFilter.active = false\n return methodFilter\n })\n )\n }\n }\n\n const MethodButton = ({ methodFilter }: MethodButtonProps) => {\n return (\n setFilter(methodFilter.name as MethodType)}\n >\n \n \n )\n }\n\n return (\n \n \n {messages[locale]['api_reference_sidebar_filter']}\n \n \n {methodFilterList.map((methodFilter) => (\n \n ))}\n {activeFilters.length > 1 && (\n setFilter(null)} sx={styles.clear}>\n {messages[locale]['api_reference_sidebar_filter_clear']}\n \n )}\n \n \n )\n}\n\nexport default SectionFilter\n","import { Flex, Text, SxStyleProp } from '@vtex/brand-ui'\nimport { categoryStyle, categoryText, closeCategoryStyle } from './functions'\nimport styles from './styles'\nimport CloseFilterIcon from 'components/icons/close-filter-icon'\nimport { MethodType } from 'utils/typings/types'\n\nexport interface MethodCategoryProps {\n method: MethodType\n active: boolean\n origin: 'sidebar' | 'search' | 'filter' | 'pagination'\n sx?: SxStyleProp\n}\n\nconst MethodCategory = ({\n method,\n active,\n origin,\n sx,\n}: MethodCategoryProps) => {\n return (\n \n {categoryText(method, origin)}\n {origin === 'filter' && active && (\n \n )}\n \n )\n}\n\nexport default MethodCategory\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst container: SxStyleProp = {\n border: '1px solid #DDDDDD',\n background: '#F4F4F4',\n borderRadius: '2px',\n width: '24px',\n height: '24px',\n alignItems: 'center',\n justifyContent: 'center',\n}\n\nconst text: SxStyleProp = {\n fontWeight: '600',\n fontSize: '12px',\n}\n\nconst closeIcon: SxStyleProp = {\n minWidth: '12px',\n minHeight: '12px',\n height: '12px',\n width: '12px',\n ml: '4px',\n}\n\nexport default {\n container,\n text,\n closeIcon,\n}\n","import { SxStyleProp } from '@vtex/brand-ui'\nimport { MethodType } from 'utils/typings/unionTypes'\n\nimport styles from './styles'\n\nexport const methodsColors = {\n POST: {\n border: '1px solid #7CBBEA',\n color: '#2978B5',\n background: '#DEECF7',\n },\n GET: {\n border: '1px solid #83D187',\n color: '#38853C',\n background: '#DFF1E0',\n },\n PUT: {\n border: '1px solid #F5AE70',\n color: '#D56A00',\n background: '#FFEBD7',\n },\n DELETE: {\n border: '1px solid #F49494',\n color: '#CC3D3D',\n background: '#F8E3E3',\n },\n PATCH: {\n border: '1px solid #afa871',\n color: '#6C6314',\n background: '#e9e7da',\n },\n}\n\nexport const categoryStyle = (\n method: MethodType,\n active: boolean,\n sx?: SxStyleProp\n): SxStyleProp => {\n const categoryColors = methodsColors[method] || {\n border: '1px solid #F49494',\n color: '#CC3D3D',\n background: '#F8E3E3',\n }\n\n const categoryStyle: SxStyleProp = active\n ? {\n ...styles.container,\n ...categoryColors,\n ...sx,\n ':hover': {\n '.filter-close-button': {\n rect: {\n fill: categoryColors.color,\n },\n path: {\n stroke: '#DEECF7',\n },\n },\n },\n }\n : {\n ...styles.container,\n color: categoryColors.color,\n ...sx,\n }\n\n return categoryStyle\n}\n\nexport const categoryText = (method: MethodType, origin: string): string => {\n const textPascalCase = method[0] + method.slice(1).toLowerCase()\n if (origin == 'filter') return textPascalCase\n return textPascalCase.slice(0, 2)\n}\n\nexport const closeCategoryStyle = (method: MethodType) => {\n const categoryColors = methodsColors[method]\n const categoryStyle: SxStyleProp = {\n ...styles.closeIcon,\n rect: {\n fill: 'transparent',\n },\n path: {\n stroke: categoryColors.color,\n },\n }\n\n return categoryStyle\n}\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst CloseFilterIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default CloseFilterIcon\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst container: SxStyleProp = {\n px: '17px',\n paddingTop: '6px',\n borderBottom: '1px solid #E7E9EE',\n paddingBottom: '16px',\n mb: '24px',\n}\n\nconst text: SxStyleProp = {\n mb: '8px',\n}\n\nconst category: SxStyleProp = {\n mr: '8px',\n px: '4px',\n width: 'auto',\n cursor: 'pointer',\n ':hover': {\n borderWidth: '2px',\n },\n}\n\nconst clear: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n color: 'muted.0',\n fontSize: '12px',\n cursor: 'pointer',\n ':hover': {\n color: '#000711',\n },\n}\n\nexport default {\n container,\n text,\n category,\n clear,\n}\n","import { useRouter } from 'next/router.js'\nimport React, { Fragment, useContext, useEffect } from 'react'\nimport {\n Box,\n Flex,\n Link,\n Button,\n IconCaret,\n IconExternalLink,\n} from '@vtex/brand-ui'\n\nimport MethodCategory from 'components/method-category'\n\nimport { styleByLevelNormal, textStyle } from './functions'\nimport styles from './styles'\nimport { MethodType } from 'utils/typings/types'\nimport { LibraryContext } from 'utils/context/libraryContext'\n\nexport interface SidebarElement {\n name: string | { en: string; pt: string; es: string }\n slug: string | { en: string; pt: string; es: string }\n origin: string\n type: string\n method?: MethodType\n endpoint?: string\n children: SidebarElement[]\n /** When true, the category starts expanded instead of collapsed. */\n defaultOpen?: boolean\n}\n\nexport interface SidebarProps {\n slugPrefix?: string\n items: SidebarElement[]\n subItemLevel: number\n}\n\nconst SidebarElements = ({ slugPrefix, items, subItemLevel }: SidebarProps) => {\n const {\n isEditorPreview,\n activeSidebarElement,\n sidebarElementStatus,\n toggleSidebarElementStatus,\n openSidebarElement,\n sidebarDataMaster,\n locale,\n } = useContext(LibraryContext)\n const router = useRouter()\n\n useEffect(() => {\n items?.forEach((item) => {\n const slug = typeof item.slug === 'string' ? item.slug : item.slug[locale]\n if (item.defaultOpen && !sidebarElementStatus.has(slug)) {\n openSidebarElement(slug)\n }\n })\n }, [items])\n\n const handleClick = (\n e: { preventDefault: () => void },\n pathSuffix: string,\n slug: string\n ) => {\n e.preventDefault()\n const hasEndpointQuery = router.query.endpoint\n const href = getHref(slugPrefix || '', pathSuffix, slug)\n router.push(href, href, { locale }).then(() => {\n if (hasEndpointQuery) router.reload()\n })\n }\n\n // eslint-disable-next-line\n // @ts-ignore\n const checkDocumentationType = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n sidebarData: any,\n slug: string,\n type: string\n ) => {\n if (\n !sidebarData ||\n (typeof sidebarData !== 'object' && !Array.isArray(sidebarData))\n ) {\n return false\n } else if (sidebarData?.slug == slug && sidebarData?.type == type) {\n return true\n } else if (Array.isArray(sidebarData)) {\n for (let i = 0; i < sidebarData.length; i++) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const result = checkDocumentationType(sidebarData[i], slug, type)\n if (result) {\n return result\n }\n }\n } else {\n for (const k in sidebarData) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const result = checkDocumentationType(sidebarData[k], slug, type)\n if (result) {\n return result\n }\n }\n }\n\n return false\n }\n\n const getHref = (slugPrefix: string, pathSuffix: string, slug: string) => {\n const validLocales = ['pt', 'es']\n const localePrefix =\n locale && validLocales.includes(locale) ? `/${locale}` : ''\n const href =\n slugPrefix === 'docs/api-reference'\n ? `/${slugPrefix}/${slug}/${pathSuffix}`\n : `${localePrefix}/${slugPrefix}/${slug}`\n return href.replaceAll('//', '/')\n }\n\n const ElementRoot = ({\n slug,\n name,\n method,\n endpoint,\n children,\n }: SidebarElement) => {\n const localizedName: string = typeof name === 'string' ? name : name[locale]\n const localizedSlug: string = typeof slug === 'string' ? slug : slug[locale]\n const isExpandable = children.length > 0\n const pathSuffix = method ? `#${method.toLowerCase()}-${endpoint}` : ''\n const activeItem = method ? `${localizedSlug}${pathSuffix}` : localizedSlug\n return (\n \n \n {isExpandable && (\n (\n \n )}\n onClick={() => toggleSidebarElementStatus(localizedSlug)}\n />\n )}\n {!checkDocumentationType(\n sidebarDataMaster,\n localizedSlug,\n 'category'\n ) &&\n !checkDocumentationType(sidebarDataMaster, localizedSlug, 'link') ? (\n void }) => {\n if (!isEditorPreview) {\n handleClick(e, pathSuffix, localizedSlug)\n }\n toggleSidebarElementStatus(activeItem)\n }}\n href={getHref(slugPrefix || '', pathSuffix, localizedSlug)}\n target={isEditorPreview === true ? '_blank' : '_self'}\n locale={locale}\n >\n {method && (\n \n )}\n {localizedName}\n \n ) : checkDocumentationType(\n sidebarDataMaster,\n localizedSlug,\n 'link'\n ) ? (\n \n \n {localizedName}\n \n ) : (\n {\n toggleSidebarElementStatus(localizedSlug)\n }}\n >\n {method && (\n \n )}\n {localizedName}\n \n )}\n \n \n )\n }\n\n const ElementChildren = ({ slug, children }: SidebarElement) => {\n const isExpandable = children.length > 0\n // const newPathPrefix =\n // slugPrefix === 'api-reference' ? `/api-reference/${slug}` : slugPrefix\n\n const localizedSlug: string = typeof slug === 'string' ? slug : slug[locale]\n return isExpandable &&\n sidebarElementStatus.has(localizedSlug) &&\n sidebarElementStatus.get(localizedSlug) ? (\n \n \n \n ) : null\n }\n\n return (\n \n {items?.map((item, index) => {\n const key =\n typeof item.slug === 'string'\n ? String(item.slug) + String(index)\n : String(item.slug[locale]) + String(index)\n const slug =\n typeof item.slug === 'string'\n ? `${item.slug}`\n : `${item.slug[locale]}`\n\n return (\n \n \n \n \n \n {subItemLevel == 0 ? (\n \n
\n
\n ) : null}\n
\n )\n })}\n
\n )\n}\n\nexport default SidebarElements\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst elementContainer: SxStyleProp = {\n maxWidth: '265px',\n background: '#FFFFFF',\n ':hover': {\n background: '#F8F7FC',\n a: {\n color: '#142032',\n '& > :first-of-type': {\n borderWidth: '2px',\n },\n },\n },\n}\n\nconst elementText: SxStyleProp = {\n color: 'muted.0',\n fontSize: '14px',\n lineHeight: '20px',\n fontWeight: '400',\n textAlign: 'initial',\n paddingBlock: '7px',\n display: 'flex',\n alignItems: 'center',\n cursor: 'pointer',\n}\n\nconst elementActive: SxStyleProp = {\n ...elementText,\n color: '#D71D55 !important',\n}\n\nconst arrowIcon: SxStyleProp = {\n padding: '0',\n color: 'muted.1',\n height: '34px',\n}\n\nconst arrowIconActive: SxStyleProp = {\n ...arrowIcon,\n color: '#D71D55',\n}\n\nconst elementButton: SxStyleProp = {\n textTransform: 'initial',\n fontVariationSettings: 'unset',\n padding: '0',\n margin: '0',\n textDecoration: 'none !important',\n}\n\nconst sectionDivider: SxStyleProp = {\n hr: {\n border: '1px solid #E7E9EE',\n borderTop: 'none',\n },\n}\n\nconst methodBox: SxStyleProp = {\n mr: '10px',\n}\n\nexport default {\n elementContainer,\n elementText,\n elementActive,\n arrowIcon,\n arrowIconActive,\n elementButton,\n sectionDivider,\n methodBox,\n}\n","import { SxStyleProp } from '@vtex/brand-ui'\nimport styles from './styles'\n\nexport const styleByLevelNormal = (level: number, icon: boolean) => {\n const ml = 8 + (icon ? (level - 1) * 20 + 6 : (level - 1) * 20 + 14)\n const borderLeft = icon ? 'none' : level >= 2 ? '1px solid #E7E9EE' : ''\n const normal: SxStyleProp = {\n marginLeft: `${ml}px`,\n borderLeft,\n }\n\n return normal\n}\n\nexport const textStyle = (active: boolean, icon: boolean) => {\n const ml = icon ? '4px' : '16px'\n if (active) {\n const textStyleActive: SxStyleProp = {\n ...styles.elementActive,\n ml,\n }\n return textStyleActive\n }\n const textStyle: SxStyleProp = {\n ...styles.elementText,\n ml,\n }\n\n return textStyle\n}\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst SearchIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default SearchIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst SideBarToggleIcon = (props: IconProps) => (\n \n \n \n \n \n \n)\n\nexport default SideBarToggleIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst ArrowLeftIcon = (props: IconProps) => (\n \n {' '}\n \n \n \n)\n\nexport default ArrowLeftIcon\n","import {\n Header,\n HamburgerMenu as VtexHamburgerMenu,\n Box,\n IconCaret,\n Button,\n} from '@vtex/brand-ui'\nimport styles from './styles'\n\nimport { useContext } from 'react'\nimport DocumentationCard from 'components/documentation-card'\nimport SidebarSection, { SidebarSectionProps } from 'components/sidebar-section'\nimport { updateOpenPage } from 'utils/sidebar-utils'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport SearchInput from 'components/search-input'\n\nexport interface HamburgerMenuProps {\n /** Array that contains the name of the sections in the menu that should be expanded. */\n parentsArray?: string[]\n}\n\n/** Hamburger Menu component, the menu uses the sidebar components internally, but it is only visible on the smaller breakpoints. */\nconst HamburgerMenu = ({ parentsArray = [] }: HamburgerMenuProps) => {\n const context = useContext(LibraryContext)\n const {\n sidebarDataMaster,\n sidebarSectionHidden,\n activeSectionName,\n setActiveSectionName,\n setSidebarSectionHidden,\n hamburguerSections,\n } = context\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const isDocument = (sections: any, documentID: string) => {\n let isDoc = false\n\n if (Array.isArray(sections)) {\n isDoc = sections.find((section) => section.documentation === documentID)\n }\n\n return isDoc\n }\n\n updateOpenPage({ parentsArray, context })\n\n return (\n \n \n \n \n \n \n \n \n {hamburguerSections.map((section, id) => (\n 0\n ? styles.updatesContainer\n : styles.documentationContainer\n }\n key={id}\n data-cy=\"dropdown-menu-first-section\"\n >\n {section.map((card) => (\n \n \n {isDocument(sidebarDataMaster, card.id) ? (\n }\n sx={\n activeSectionName === card.id &&\n !sidebarSectionHidden\n ? styles.arrowIconActive\n : styles.arrowIcon\n }\n onClick={() => {\n setActiveSectionName(card.id)\n setSidebarSectionHidden(false)\n }}\n />\n ) : null}\n \n ))}\n \n ))}\n \n \n {activeSectionName ? (\n \n section.documentation === activeSectionName\n )\n : null)}\n />\n ) : null}\n \n \n \n \n \n )\n}\n\nexport default HamburgerMenu\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst menuContainer: SxStyleProp = {\n display: 'flex',\n width: 'max-content',\n}\n\nconst cardContainer: SxStyleProp = {\n display: 'flex',\n flexDirection: 'column',\n width: '100vw',\n overflowY: 'scroll',\n height: 'calc(100vh - 5rem)',\n}\n\nconst sideMenuContainer: SxStyleProp = {\n backgroundColor: '#ffff',\n height: 'calc(100vh - 5rem)',\n width: '100vw',\n overflowY: 'auto',\n overflowX: 'hidden',\n transform: 'translate(0)',\n transition: 'transform .5s cubic-bezier(.4,0,.2,1)',\n}\n\nconst hamburgerContainer: SxStyleProp = {\n display: ['block', 'block', 'block', 'none'],\n backgroundColor: '#ffff',\n width: '100%',\n '.menuHidden': {\n transform: 'translate(-100%)',\n },\n}\n\n// eslint-disable-next-line prettier/prettier\n\nconst hamburgerSearchContainer: SxStyleProp = {\n display: 'flex',\n justifyContent: 'center',\n paddingBlock: '18px',\n height: 'auto',\n}\n\nconst documentationContainer: SxStyleProp = {\n px: '16px',\n paddingBottom: '8px',\n}\n\nconst updatesContainer: SxStyleProp = {\n px: '16px',\n paddingTop: '8px',\n borderRadius: '0px 0px 8px 8px',\n borderTop: '1px solid #E7E9EE',\n}\n\nconst innerHambugerContainer: SxStyleProp = {\n padding: '0px',\n position: 'relative',\n overflowX: 'hidden',\n}\n\nconst innerCardContainer: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n}\n\nconst arrowIcon: SxStyleProp = {\n padding: '0',\n height: '50px',\n width: '50px',\n color: 'muted.1',\n}\n\nconst arrowIconActive: SxStyleProp = {\n ...arrowIcon,\n color: '#D71D55',\n}\n\nexport default {\n menuContainer,\n cardContainer,\n sideMenuContainer,\n hamburgerSearchContainer,\n documentationContainer,\n updatesContainer,\n hamburgerContainer,\n innerHambugerContainer,\n innerCardContainer,\n arrowIcon,\n arrowIconActive,\n}\n","import Link from 'next/link.js'\nimport { Box, Flex, Text } from '@vtex/brand-ui'\n\nimport styles from './styles'\nimport { cardContainer, cardTitle, titleContainer } from './functions'\nimport { MouseEventHandler } from 'react'\nimport { DataElement } from 'utils/typings/types'\n\nexport interface DocumentProps extends DataElement {\n title: string\n}\nexport interface CardProps extends DocumentProps {\n containerType: 'dropdown' | 'see-also' | 'mobile'\n onClick?: MouseEventHandler | undefined\n}\nconst DocumentationCard = ({\n title,\n description,\n link,\n containerType,\n Icon,\n onClick,\n}: CardProps) => {\n return (\n \n \n \n \n \n \n {title}\n \n \n \n {description}\n \n \n \n \n )\n}\n\nexport default DocumentationCard\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst cardContainer: SxStyleProp = {\n my: ['16px', '16px', '16px', '16px', '16px', '16px', '24px'],\n padding: '8px',\n cursor: 'pointer',\n ':active, :hover': {\n borderRadius: '4px',\n backgroundColor: '#F8F7FC',\n\n '.description': {\n color: 'muted.0',\n },\n },\n\n ':active .title': {\n color: '#0C1522',\n },\n\n ':hover .title': {\n color: '#000711',\n },\n}\n\nconst titleContainer: SxStyleProp = {\n alignItems: 'center',\n}\n\nconst title: SxStyleProp = {\n ml: '8px',\n color: 'muted.0',\n}\n\nconst description: SxStyleProp = {\n ml: '32px',\n fontSize: '16px',\n lineHeight: '18px',\n color: 'muted.1',\n}\n\nexport default {\n cardContainer,\n description,\n title,\n titleContainer,\n}\n","import { SxStyleProp } from '@vtex/brand-ui'\nimport styles from './styles'\n\nconst cardContainer = (containerType: string) => {\n const containerWidth =\n containerType === 'dropdown'\n ? ['308px', '442px', '444px', '480px']\n : containerType === 'mobile'\n ? '100%'\n : ['324px', '544px', '544px', '544px', '544px', '720px', '1400px']\n\n const textWidth =\n containerType === 'dropdown'\n ? ['276px', '410px', '412px', '432px']\n : containerType === 'mobile'\n ? '90%'\n : ['276px', '496px', '496px', '496px', '496px', '672px', '1352px']\n\n const cardContainer: SxStyleProp = {\n ...styles.cardContainer,\n width: containerWidth,\n\n '.title, .description': {\n width: textWidth,\n },\n }\n\n return cardContainer\n}\n\nconst titleContainer = (containerType: string) => {\n const marginBottom =\n containerType === 'dropdown' ? ['5px', '5px', '5px', '1px'] : '8px'\n\n const titleContainer: SxStyleProp = {\n ...styles.titleContainer,\n marginBottom,\n }\n\n return titleContainer\n}\n\nconst cardTitle = (containerType: string) => {\n const titleAttributes =\n containerType === 'see-also'\n ? {\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n fontSize: '18px',\n lineHeight: '24px',\n }\n : {\n fontSize: '16px',\n lineHeight: '22px',\n }\n\n const cardTitle: SxStyleProp = {\n ...styles.title,\n ...titleAttributes,\n }\n\n return cardTitle\n}\n\nexport { cardContainer, cardTitle, titleContainer }\n","import { Configure, InstantSearch } from 'react-instantsearch-dom'\nimport SearchBox from './search-box'\nimport Results from './results-box'\nimport { Box } from '@vtex/brand-ui'\nimport { useContext, useRef, useState } from 'react'\nimport useClickOutside from 'utils/hooks/useClickOutside'\nimport { searchClient, searchIndex } from 'utils/config/search-config'\nimport { LibraryContext } from 'utils/context/libraryContext'\n\nexport default function SearchInput() {\n const { locale } = useContext(LibraryContext)\n const [focusOut, setfocusOut] = useState<{ modaltoggle: boolean }>({\n modaltoggle: true,\n })\n const resultsBox = useRef()\n useClickOutside(resultsBox, setfocusOut)\n\n const changeFocus = (value: boolean) => {\n setfocusOut({ modaltoggle: value })\n }\n\n return (\n \n {searchClient.instantSearchConfigs && (\n \n )}\n {searchClient.useLanguageFilter && (\n \n )}\n {!searchClient.useLanguageFilter && }\n setfocusOut({ modaltoggle: true })} ref={resultsBox}>\n \n {focusOut.modaltoggle && }\n \n \n )\n}\n","import { useRef, KeyboardEvent, useContext } from 'react'\nimport { useRouter } from 'next/router.js'\nimport { Flex } from '@vtex/brand-ui'\nimport { connectSearchBox } from 'react-instantsearch-dom'\nimport { SearchBoxProvided } from 'react-instantsearch-core'\n\nimport SearchIcon from 'components/icons/search-icon'\nimport styles from './styles'\nimport { messages } from 'utils/get-message'\nimport { LibraryContext } from 'utils/context/libraryContext'\n\ninterface SearchBoxProps extends SearchBoxProvided {\n changeFocus: (value: boolean) => void\n}\n\nconst SearchBoxComponent = ({\n currentRefinement,\n refine,\n changeFocus,\n}: SearchBoxProps) => {\n const router = useRouter()\n const inputRef = useRef(null)\n const { locale } = useContext(LibraryContext)\n\n const handleClick = () => {\n if (inputRef.current != null) inputRef.current.focus()\n }\n\n const keyPressed = (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n router.push({\n pathname: '/search',\n query: { keyword: inputRef.current?.value },\n })\n inputRef.current?.blur()\n changeFocus(false)\n }\n }\n\n return (\n \n \n keyPressed(e)}\n onChange={(e) => refine(e.currentTarget.value)}\n />\n \n )\n}\n\nconst SearchBox = connectSearchBox(SearchBoxComponent)\n\nexport default SearchBox\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst resultsOuterContainer: SxStyleProp = {\n position: 'relative',\n}\n\nconst resultsInnerContainer: SxStyleProp = {\n top: 0,\n position: 'absolute',\n width: ['288px', '458px', '458px', '288px', '416px', '544px'],\n border: '1px solid #B9B9B9',\n borderRadius: '0px 0px 4px 4px',\n background: '#FFFFFF',\n}\n\nconst resultsBox: SxStyleProp = {\n padding: '16px',\n}\n\nconst seeAll: SxStyleProp = {\n padding: '24px',\n borderTop: '1px solid #E7E9EE',\n color: 'muted.0',\n cursor: 'pointer',\n ':hover': {\n background: '#F8F7FC',\n borderTop: '1px solid #d0cdcd',\n },\n}\n\nconst hitBox: SxStyleProp = {\n padding: '8px',\n cursor: 'pointer',\n ':active, :hover': {\n backgroundColor: '#F8F7FC',\n borderRadius: '4px',\n '.hit-content-title': {\n color: '#000711',\n },\n '.hit-icon': {\n '> path': {\n stroke: '#000711',\n },\n },\n },\n}\n\nconst hitIcon: SxStyleProp = {\n width: '16px',\n height: '16px',\n marginRight: '8px',\n}\n\nconst hitContentContainer: SxStyleProp = {\n width: '100%',\n minWidth: 0,\n overflow: 'hidden',\n}\n\nconst snippetText: SxStyleProp = {\n overflowWrap: 'break-word',\n wordBreak: 'break-word',\n overflow: 'hidden',\n display: '-webkit-box',\n WebkitBoxOrient: 'vertical',\n}\n\nconst hitContent: SxStyleProp = {\n color: 'muted.0',\n fontSize: ['14px', '16px'],\n lineHeight: ['20px', '22px'],\n width: '100%',\n minWidth: 0,\n ...snippetText,\n WebkitLineClamp: 4,\n}\n\nconst hitContentSmall: SxStyleProp = {\n color: 'muted.0',\n fontSize: ['14px', '16px'],\n lineHeight: ['20px', '22px'],\n width: '100%',\n minWidth: 0,\n ...snippetText,\n WebkitLineClamp: 2,\n}\n\nconst alignCenter: SxStyleProp = {\n alignItems: 'center',\n}\n\nconst hitBreadCrumb: SxStyleProp = {\n color: 'muted.1',\n fontSize: '12px',\n lineHeight: '16px',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n}\n\nconst hitBreadCrumbIn: SxStyleProp = {\n ...hitBreadCrumb,\n minWidth: 'fit-content',\n}\n\nconst hitBreadCrumbArrow: SxStyleProp = {\n width: '16px',\n height: '16px',\n color: 'muted.2',\n}\n\nconst searchInput: SxStyleProp = {\n width: '76px',\n background: 'none',\n border: '#F4F4F4',\n color: '#545454',\n fontSize: ['14px'],\n flex: 0,\n transition: 'flex 0.3s',\n}\n\nconst searchIcon: SxStyleProp = {\n minWidth: '16px',\n minHeight: '16px',\n width: '16px',\n mr: '8px',\n flex: 0,\n maxWidth: 'fit-content',\n}\n\nconst searchContainer: SxStyleProp = {\n paddingLeft: '12px',\n alignItems: 'center',\n justifyContent: 'center',\n background: '#F4F4F4',\n width: '288px',\n height: '40px',\n borderRadius: '4px',\n transition: 'all 0.3s ease-out',\n cursor: 'pointer',\n ':hover': {\n transition: 'all 0.3s ease-out',\n width: ['288px', '458px', '458px', '288px', '416px', '544px'],\n border: '1px solid #3B3B3B',\n },\n ':focus-within': {\n background: '#FFFFFF',\n width: ['288px', '458px', '458px', '288px', '416px', '544px'],\n transition: 'all 0.3s ease-out',\n border: '1px solid #3B3B3B',\n boxShadow: '0px 0px 0px 1px #FFFFFF, 0px 0px 0px 3px #B9B9B9',\n flex: 'auto',\n '.searchComponent': {\n flex: '1 !important',\n },\n },\n '.searchComponent': {\n ':placeholder-shown': {\n width: '76px',\n },\n ':not(:placeholder-shown)': {\n flex: '1 !important',\n },\n },\n}\n\nconst noResults: SxStyleProp = {\n justifyContent: 'center',\n alignContent: 'center',\n padding: '12px',\n}\n\nconst hitContentHighlighted: SxStyleProp = {\n ...hitContent,\n color: '#4A596B',\n width: 'auto',\n background: '#FFE0EF',\n}\n\nexport default {\n resultsOuterContainer,\n resultsInnerContainer,\n resultsBox,\n seeAll,\n hitBox,\n hitIcon,\n hitContentContainer,\n hitContent,\n hitContentSmall,\n hitBreadCrumb,\n hitBreadCrumbIn,\n hitBreadCrumbArrow,\n searchInput,\n searchIcon,\n searchContainer,\n alignCenter,\n noResults,\n hitContentHighlighted,\n}\n","import { useRouter } from 'next/router.js'\nimport Link from 'next/link.js'\nimport {\n connectStateResults,\n connectHitInsights,\n} from 'react-instantsearch-dom'\nimport {\n Hit,\n StateResultsProvided,\n WrappedInsightsClient,\n} from 'react-instantsearch-core'\nimport aa from 'search-insights'\nimport { Box, Flex, IconCaret, Text } from '@vtex/brand-ui'\n\nimport {\n getBreadcrumbs,\n getIconFromSection,\n getRelativeURL,\n} from 'utils/search-utils'\nimport CustomHighlight from './customHighlight'\nimport styles from './styles'\nimport { useContext } from 'react'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\n\ninterface HitProps {\n hit: Hit\n insights: WrappedInsightsClient\n}\n\ninterface HitsBoxProps extends StateResultsProvided {\n changeFocus: (value: boolean) => void\n}\n\nconst Hit2 = ({ hit, insights }: HitProps) => {\n const { sidebarSections } = useContext(LibraryContext)\n const breadcrumbsList = getBreadcrumbs(hit)\n const DocIcon = getIconFromSection(sidebarSections, hit.doctype)\n return (\n \n \n insights('clickedObjectIDsAfterSearch', {\n eventName: 'Search in top bar',\n objectIDs: [hit.objectID],\n })\n }\n >\n \n \n {DocIcon && }\n \n \n \n \n \n {`In ${hit.doctype}`}\n {breadcrumbsList.length > 0 && (\n \n )}\n {breadcrumbsList.map((filter: string, index: number) => (\n \n {filter}\n {index < breadcrumbsList.length - 1 ? (\n \n ) : null}\n \n ))}\n \n \n \n \n )\n}\n\nconst HitWithInsights = connectHitInsights(aa)(Hit2)\n\nconst HitsBox = connectStateResults(\n ({ searchState, searchResults, changeFocus }) => {\n const router = useRouter()\n const { locale } = useContext(LibraryContext)\n\n const seeAllSubmit = (keyword: string) => {\n router.push({\n pathname: '/search',\n query: { keyword },\n })\n changeFocus(false)\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const setQueryIDAndPosition = (hit: Hit, index: number): any => {\n return {\n ...hit,\n __queryID: searchResults.queryID || '',\n __position: searchResults.hitsPerPage * searchResults.page + index + 1,\n }\n }\n\n return (\n <>\n {searchResults && (\n \n \n \n {searchResults.hits.map(\n (searchResult, index) =>\n index < 7 && (\n changeFocus(false)}\n >\n \n \n )\n )}\n \n {searchResults.hits.length > 7 && (\n seeAllSubmit(searchState.query || '')}\n >\n \n {messages[locale]['search_input.see_all'] || 'See all results'}\n \n \n )}\n {!searchResults.hits.length && (\n \n \n {messages[locale]['search_input.empty'] || 'No results found. Try different search terms.'}\n \n \n )}\n \n \n )}\n \n )\n }\n)\n\nexport default HitsBox\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst APIGuidesIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n)\n\nexport default APIGuidesIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst APIReferenceIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default APIReferenceIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst AppDevelopmentIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default AppDevelopmentIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst ReleaseNotesIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n)\n\nexport default ReleaseNotesIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst StorefrontDevelopmentIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n)\n\nexport default StorefrontDevelopmentIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst VTEXIOAppsIcon = (props: IconProps) => (\n \n \n \n \n \n \n)\n\nexport default VTEXIOAppsIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst TroubleshootingIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default TroubleshootingIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst AddedIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default AddedIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst DeprecatedIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default DeprecatedIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst FixedIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default FixedIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst ImprovedIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default ImprovedIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst RemovedIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default RemovedIcon\n","import { Hit } from 'react-instantsearch-core'\n\nimport APIGuidesIcon from 'components/icons/api-guides-icon'\nimport APIReferenceIcon from 'components/icons/api-reference-icon'\nimport AppDevelopmentIcon from 'components/icons/app-development-icon'\nimport ReleaseNotesIcon from 'components/icons/release-notes-icon'\nimport StorefrontDevelopmentIcon from 'components/icons/storefront-development-icon'\nimport VTEXIOAppsIcon from 'components/icons/vtex-io-apps-icon'\nimport TroubleshootingIcon from 'components/icons/troubleshooting-icon'\nimport { IconComponent, Section } from './typings/types'\nimport AddedIcon from 'components/icons/added-icon'\nimport DeprecatedIcon from 'components/icons/deprecated-icon'\nimport FixedIcon from 'components/icons/fixed-icon'\nimport ImprovedIcon from 'components/icons/improved-icon'\nimport RemovedIcon from 'components/icons/removed-icon'\n\nexport const getBreadcrumbs = (hit: Hit) => {\n const breadcrumbs: string[] = []\n if (hit.doctype === 'API Reference' && hit.doccategory)\n breadcrumbs.push(hit.doccategory)\n breadcrumbs.push(hit.doctitle)\n return breadcrumbs\n}\n\nexport const getRelativeURL = (url: string) => {\n const relativeURL = url.replace(/^(?:\\/\\/|[^/]+)*\\//, '')\n return '/' + relativeURL\n}\n\n/** Display cap for tab counts; values at or above this render as \"999+\". */\nexport const HYBRID_SEARCH_COUNT_CAP = 1000\n\nexport function formatSearchTabCount(\n count: number | undefined\n): string | undefined {\n if (count === undefined) return undefined\n if (count >= HYBRID_SEARCH_COUNT_CAP) return '999+'\n return String(count)\n}\n\ninterface IconsI {\n name: string\n Icon: IconComponent\n}\n\nconst iconsMap: IconsI[] = [\n {\n Icon: APIGuidesIcon,\n name: 'Guides',\n },\n {\n Icon: APIReferenceIcon,\n name: 'API Reference',\n },\n {\n Icon: AppDevelopmentIcon,\n name: 'App Development',\n },\n {\n Icon: StorefrontDevelopmentIcon,\n name: 'Storefront Development',\n },\n {\n Icon: VTEXIOAppsIcon,\n name: 'VTEX IO Apps',\n },\n {\n Icon: TroubleshootingIcon,\n name: 'Troubleshooting',\n },\n {\n Icon: ReleaseNotesIcon,\n name: 'Release Notes',\n },\n]\n\nexport const getIcon = (name: string) => {\n return iconsMap.find((icon) => icon.name === name)?.Icon\n}\n\nexport const getIconFromSection = (sections: Section[][], id: string) => {\n return sections.flat().find((section) => section.id === id)?.Icon\n}\n\nexport type ActionType =\n | 'added'\n | 'deprecated'\n | 'fixed'\n | 'improved'\n | 'removed'\nexport interface Action {\n type: ActionType\n title: string\n Icon: IconComponent\n}\n\nconst actions: Action[] = [\n {\n type: 'added',\n title: 'Added',\n Icon: AddedIcon,\n },\n {\n type: 'deprecated',\n title: 'Deprecated',\n Icon: DeprecatedIcon,\n },\n {\n type: 'fixed',\n title: 'Fixed',\n Icon: FixedIcon,\n },\n {\n type: 'improved',\n title: 'Improved',\n Icon: ImprovedIcon,\n },\n {\n type: 'removed',\n title: 'Removed',\n Icon: RemovedIcon,\n },\n]\n\nexport const getAction = (actionType: ActionType): Action => {\n return actions.find((action) => action.type === actionType) as Action\n}\n\nexport const getTitleById = (sections: Section[][], id: string) => {\n return sections.flat().find((item) => item.id === id)?.title || id\n}\n","import { useEffect, useRef, useState } from 'react'\nimport { connectHighlight } from 'react-instantsearch-dom'\nimport { HighlightProps, Hit } from 'react-instantsearch-core'\nimport { Flex, Text } from '@vtex/brand-ui'\nimport styles from './styles'\n\ninterface HighLightPartsProps {\n index: number\n isBetween: boolean\n size: number\n}\n\ninterface HitHighlightProps {\n value: string\n isHighlighted: boolean\n}\ninterface CustomHighlightProps extends HighlightProps {\n searchPage?: boolean\n}\n\nconst Highlight = ({\n highlight,\n attribute,\n hit,\n searchPage,\n}: CustomHighlightProps) => {\n const [parsedHit, setParsedHit] = useState([])\n const textContainer = useRef(null)\n const hitHighlights: HitHighlightProps[] = highlight({\n highlightProperty: '_highlightResult',\n attribute: hit.type != 'content' ? `hierarchy.${hit.type}` : attribute,\n hit,\n })\n const maxDescriptionSize = 700\n const ellipsedContent: HitHighlightProps[] = []\n if (searchPage) {\n let charCount = 0\n hitHighlights.forEach((part) => {\n if (maxDescriptionSize - charCount <= 0) return\n if (part.value.length + charCount >= maxDescriptionSize) {\n part.value =\n part.value.slice(0, maxDescriptionSize - charCount - 3) + '...'\n }\n charCount += part.value.length\n ellipsedContent.push(part)\n })\n }\n\n useEffect(() => {\n if (searchPage) return\n const titleSize = textContainer.current\n ? textContainer.current.offsetWidth / 7.75\n : 40\n\n const highlightParts: HighLightPartsProps[] = []\n let highlightCount = 0,\n highlightLength = 0\n\n hitHighlights.forEach((match: HitHighlightProps, index: number) => {\n const isBetween =\n index > 0 && index < hitHighlights.length - 1 ? true : false\n if (match.isHighlighted) {\n if (isBetween) highlightCount++\n highlightCount++\n highlightLength += match.value.length\n } else {\n highlightParts.push({\n index,\n isBetween,\n size: match.value.length,\n })\n }\n })\n\n highlightParts.sort(\n (a: HighLightPartsProps, b: HighLightPartsProps) => a.size - b.size\n )\n\n let sizeRemaining = titleSize - highlightLength\n let size = sizeRemaining / (highlightCount || 1)\n\n highlightParts.forEach((match: HighLightPartsProps) => {\n const value = hitHighlights[match.index].value\n if (match.isBetween) {\n if (match.size >= size * 2) {\n const reticences = (size * 2 - 3) / 2\n hitHighlights[match.index].value =\n value.slice(0, reticences) +\n '...' +\n value.slice(value.length - reticences)\n sizeRemaining -= size * 2\n } else {\n sizeRemaining -= match.size\n }\n highlightCount -= 2\n } else {\n if (match.size >= size) {\n if (match.index === 0)\n hitHighlights[match.index].value =\n '...' + value.slice(value.length - (size - 3))\n else\n hitHighlights[match.index].value = value.slice(0, size - 3) + '...'\n sizeRemaining -= size\n } else {\n sizeRemaining -= match.size\n }\n highlightCount -= 1\n }\n size = sizeRemaining / highlightCount\n hitHighlights[match.index].value = hitHighlights[\n match.index\n ].value.replace(/\\s+/g, '\\u00A0')\n })\n setParsedHit(hitHighlights)\n }, [hit, textContainer.current])\n\n return (\n \n \n {(searchPage ? ellipsedContent : parsedHit).map(\n (part: HitHighlightProps, index: number) =>\n part.isHighlighted ? (\n \n {part.value}\n \n ) : (\n part.value\n )\n )}\n \n \n )\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ninterface HighlightPassedThru {\n hit: Hit\n attribute: string\n highlightProperty?: string | undefined\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst connectedHighlight: React.ComponentClass> =\n connectHighlight(Highlight)\n\nexport default connectedHighlight\n","import algoliasearch, { AlgoliaSearchOptions } from 'algoliasearch/lite'\nimport aa from 'search-insights'\nimport {\n MultipleQueriesQuery,\n MultipleQueriesResponse,\n} from '@algolia/client-search'\nimport { stripMarkdownForSnippet } from '../string-utils'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport let searchClient: any = {}\nexport let searchIndex = ''\nexport let hitsPerPage = 10 // Default page size for search results\n\nexport interface AlgoliaConfig {\n appId: string\n apiKey: string\n index: string\n algoliaOptions?: AlgoliaSearchOptions\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n customOptions?: any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n instantSearchConfigs?: any\n useLanguageFilter?: boolean\n}\n\nexport interface HybridSearchConfig {\n apiEndpoint: string\n source: 'help-center' | 'dev-portal'\n defaultLimit?: number\n itemsPerPage?: number // Alias for defaultLimit (for backward compatibility)\n useLanguageFilter?: boolean\n /**\n * Max number of results to request from the upstream API in a single call.\n * The Hybrid Search upstream does not support pagination, so the adapter\n * fetches a large slice once and paginates / filters client-side.\n * Defaults to 100 (the upstream HS_MAX_LIMIT).\n */\n upstreamFetchSize?: number\n /**\n * TTL (ms) for the in-memory response cache keyed by query+locale.\n * A short TTL is enough to let `connectInfiniteHits` page through the\n * results without re-fetching the upstream on every refineNext call.\n * Defaults to 60_000 ms.\n */\n cacheTtlMs?: number\n}\n\nexport type SearchBackendConfig =\n | { backend: 'algolia'; algolia: AlgoliaConfig }\n | { backend: 'hybrid'; hybrid: HybridSearchConfig; index: string }\n\nconst createAlgoliaClient = (config: AlgoliaConfig) => {\n const {\n apiKey,\n appId,\n index,\n algoliaOptions,\n customOptions,\n instantSearchConfigs,\n useLanguageFilter = true,\n } = config\n searchIndex = index\n\n aa('init', {\n appId: appId || '',\n apiKey: apiKey || '',\n useCookie: false,\n })\n\n aa('getUserToken', null, (err) => {\n if (err) {\n console.error(err)\n return\n }\n })\n\n const algoliaClient = algoliasearch(appId || '', apiKey || '', algoliaOptions)\n\n searchClient = {\n ...algoliaClient,\n ...customOptions,\n instantSearchConfigs,\n useLanguageFilter,\n search(requests: MultipleQueriesQuery[]) {\n if (requests.every(({ params }) => !params?.query)) return\n return algoliaClient.search(requests)\n },\n }\n}\n\n// Upstream hard cap (must match HS_MAX_LIMIT in the API proxy).\nconst HYBRID_UPSTREAM_MAX_LIMIT = 100\n\n/** Fixed Help Center doctype ids (matches helpcenter src/utils/constants.ts). */\nconst HYBRID_DOCTYPE_IDS = [\n 'tracks',\n 'tutorials',\n 'faq',\n 'known-issues',\n 'troubleshooting',\n 'announcements',\n] as const\n\n/** Portal tab id → upstream canonical doctype (matches helpcenter search proxy). */\nconst PORTAL_TO_CANONICAL_DOCTYPE: Record = {\n tutorials: 'tutorial',\n tracks: 'tracks',\n faq: 'faq',\n troubleshooting: 'troubleshooting',\n announcements: 'announcements',\n}\n\ntype HybridDoctypeCounts = Record\n\ntype HybridSearchCountsApiResponse = {\n counts: {\n tracks: number\n tutorial: number\n faq: number\n troubleshooting: number\n announcements: number\n }\n total: number\n}\n\ntype HybridCacheEntry = {\n key: string\n ts: number\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n hits: any[]\n}\n\ntype HybridCountCacheEntry = {\n key: string\n ts: number\n counts: HybridDoctypeCounts\n}\n\ntype HybridDoctypeDeepCacheEntry = {\n key: string\n ts: number\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n hits: any[]\n}\n\nconst createHybridClient = (config: HybridSearchConfig) => {\n const {\n apiEndpoint,\n defaultLimit,\n itemsPerPage,\n useLanguageFilter = true,\n upstreamFetchSize = HYBRID_UPSTREAM_MAX_LIMIT,\n cacheTtlMs = 60_000,\n } = config\n\n // Support both defaultLimit and itemsPerPage (itemsPerPage takes precedence)\n const pageSize = itemsPerPage ?? defaultLimit ?? 10\n hitsPerPage = pageSize\n\n const effectiveUpstreamLimit = clampUpstreamLimit(upstreamFetchSize)\n const cache: HybridCacheEntry[] = []\n const countCache: HybridCountCacheEntry[] = []\n const doctypeDeepCache: HybridDoctypeDeepCacheEntry[] = []\n const deepenPagination = new Map<\n string,\n { lastPage: number; endOffset: number }\n >()\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const getCached = (key: string): any[] | undefined => {\n const now = Date.now()\n for (let i = cache.length - 1; i >= 0; i--) {\n if (now - cache[i].ts > cacheTtlMs) {\n cache.splice(i, 1)\n }\n }\n return cache.find((e) => e.key === key)?.hits\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const setCached = (key: string, hits: any[]) => {\n cache.push({ key, ts: Date.now(), hits })\n while (cache.length > 20) cache.shift()\n }\n\n const getCachedCounts = (key: string): HybridDoctypeCounts | undefined => {\n const now = Date.now()\n for (let i = countCache.length - 1; i >= 0; i--) {\n if (now - countCache[i].ts > cacheTtlMs) {\n countCache.splice(i, 1)\n }\n }\n return countCache.find((e) => e.key === key)?.counts\n }\n\n const setCachedCounts = (key: string, counts: HybridDoctypeCounts) => {\n countCache.push({ key, ts: Date.now(), counts })\n while (countCache.length > 20) countCache.shift()\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const getDoctypeDeepCached = (key: string): any[] | undefined => {\n const now = Date.now()\n for (let i = doctypeDeepCache.length - 1; i >= 0; i--) {\n if (now - doctypeDeepCache[i].ts > cacheTtlMs) {\n doctypeDeepCache.splice(i, 1)\n }\n }\n return doctypeDeepCache.find((e) => e.key === key)?.hits\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const setDoctypeDeepCached = (key: string, hits: any[]) => {\n doctypeDeepCache.push({ key, ts: Date.now(), hits })\n while (doctypeDeepCache.length > 20) doctypeDeepCache.shift()\n }\n\n const countsEndpoint = `${apiEndpoint.replace(/\\/?$/, '')}/counts`\n\n const mapApiCountsToPortal = (\n counts: HybridSearchCountsApiResponse['counts'],\n total: number\n ): HybridDoctypeCounts => ({\n '': total,\n tracks: counts.tracks,\n tutorials: counts.tutorial,\n faq: counts.faq,\n troubleshooting: counts.troubleshooting,\n announcements: counts.announcements,\n 'known-issues': 0,\n })\n\n const fetchDoctypeCounts = async (\n query: string,\n locale: string\n ): Promise => {\n try {\n const url = new URL(countsEndpoint, window.location.origin)\n url.searchParams.set('q', query)\n if (useLanguageFilter && locale) {\n url.searchParams.set('locale', locale)\n }\n\n const response = await fetch(url.toString())\n if (!response.ok) {\n return undefined\n }\n\n const data =\n (await response.json()) as Partial\n const { counts, total } = data\n if (\n !counts ||\n typeof total !== 'number' ||\n typeof counts.tracks !== 'number' ||\n typeof counts.tutorial !== 'number' ||\n typeof counts.faq !== 'number' ||\n typeof counts.troubleshooting !== 'number' ||\n typeof counts.announcements !== 'number'\n ) {\n return undefined\n }\n\n return mapApiCountsToPortal(counts, total)\n } catch {\n return undefined\n }\n }\n\n // Initialize minimal analytics (disabled for hybrid)\n aa('init', {\n appId: 'hybrid-search',\n apiKey: 'none',\n useCookie: false,\n })\n\n searchClient = {\n appId: 'hybrid-search',\n apiKey: 'hybrid',\n useLanguageFilter,\n instantSearchConfigs: null,\n\n async search(\n requests: MultipleQueriesQuery[]\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): Promise | undefined> {\n if (requests.every(({ params }) => !params?.query)) {\n return undefined\n }\n\n try {\n // Find the first request with a non-empty query\n const request =\n requests.find(({ params }) => params?.query) || requests[0]\n const params = request.params || {}\n const query = params.query || ''\n const hitsPerPage = params.hitsPerPage || pageSize\n const page = params.page || 0\n\n const { locale, doctypes } = extractHybridFilters(params)\n\n // The upstream Hybrid Search API does not support pagination, so we\n // fetch a large slice once per (query, locale) pair and paginate /\n // doctype-filter client-side for the result list.\n const cacheKey = JSON.stringify({\n q: query,\n locale: useLanguageFilter ? locale || '' : '',\n limit: effectiveUpstreamLimit,\n })\n\n const countCacheKey = JSON.stringify({\n q: query,\n locale: useLanguageFilter ? locale || '' : '',\n })\n\n const isSearchResultsRequest =\n typeof params?.filters === 'string' && params.filters.length > 0\n\n const cachedHits = getCached(cacheKey)\n let cachedCounts = getCachedCounts(countCacheKey)\n\n const hitsPromise = (async () => {\n if (cachedHits) return cachedHits\n\n const url = new URL(apiEndpoint, window.location.origin)\n url.searchParams.set('q', query)\n url.searchParams.set('limit', String(effectiveUpstreamLimit))\n if (useLanguageFilter && locale) {\n url.searchParams.set('locale', locale)\n }\n\n const response = await fetch(url.toString())\n if (!response.ok) {\n throw new Error(`Hybrid search failed: ${response.status}`)\n }\n\n const data = await response.json()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const rawResults: any[] = Array.isArray(data?.results)\n ? data.results\n : []\n const allHits = rawResults.map(transformHybridToAlgolia)\n setCached(cacheKey, allHits)\n return allHits\n })()\n\n const countsPromise = (async (): Promise<\n HybridDoctypeCounts | undefined\n > => {\n if (!isSearchResultsRequest) return undefined\n if (cachedCounts) return cachedCounts\n\n const counts = await fetchDoctypeCounts(query, locale)\n if (counts) {\n setCachedCounts(countCacheKey, counts)\n }\n return counts\n })()\n\n const [allHits, doctypeCounts] = await Promise.all([\n hitsPromise,\n countsPromise,\n ])\n\n if (doctypeCounts) {\n cachedCounts = doctypeCounts\n }\n\n const initialFilteredHits = filterHitsByDoctype(allHits, doctypes)\n let listHits = doctypes.length ? initialFilteredHits : allHits\n\n const doctypeDeepCacheKey =\n doctypes.length === 1\n ? JSON.stringify({\n q: query,\n locale: useLanguageFilter ? locale || '' : '',\n doctype: doctypes[0],\n limit: effectiveUpstreamLimit,\n })\n : ''\n\n let start = page * hitsPerPage\n\n if (doctypes.length === 1) {\n const portalDoctype = doctypes[0]\n const canonicalDoctype = PORTAL_TO_CANONICAL_DOCTYPE[portalDoctype]\n const prevPage = deepenPagination.get(doctypeDeepCacheKey)\n\n if (page === 0 || !prevPage || prevPage.lastPage !== page - 1) {\n start = page === 0 ? 0 : page * hitsPerPage\n if (page === 0) deepenPagination.delete(doctypeDeepCacheKey)\n } else {\n start = prevPage.endOffset\n }\n\n if (canonicalDoctype && start >= initialFilteredHits.length) {\n let deepenedHits = getDoctypeDeepCached(doctypeDeepCacheKey)\n if (!deepenedHits) {\n const url = new URL(apiEndpoint, window.location.origin)\n url.searchParams.set('q', query)\n url.searchParams.set('limit', String(effectiveUpstreamLimit))\n url.searchParams.set('doctype', portalDoctype)\n if (useLanguageFilter && locale) {\n url.searchParams.set('locale', locale)\n }\n\n const response = await fetch(url.toString())\n if (response.ok) {\n const data = await response.json()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const rawResults: any[] = Array.isArray(data?.results)\n ? data.results\n : []\n deepenedHits = rawResults.map(transformHybridToAlgolia)\n setDoctypeDeepCached(doctypeDeepCacheKey, deepenedHits)\n } else {\n deepenedHits = []\n }\n }\n\n listHits = mergeDeepenedHits(initialFilteredHits, deepenedHits)\n }\n }\n\n const doctypeCount =\n doctypes.length === 1 ? cachedCounts?.[doctypes[0]] : undefined\n const hasDeepened =\n doctypes.length === 1 &&\n (Boolean(getDoctypeDeepCached(doctypeDeepCacheKey)) ||\n listHits.length > initialFilteredHits.length)\n const nbHits = (() => {\n if (!doctypes.length) return allHits.length\n const cap = HYBRID_UPSTREAM_MAX_LIMIT\n if (typeof doctypeCount === 'number') {\n if (hasDeepened) {\n return Math.min(doctypeCount, cap, listHits.length)\n }\n return Math.min(doctypeCount, cap)\n }\n return Math.min(listHits.length, cap)\n })()\n const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage))\n const pageHits = listHits.slice(start, start + hitsPerPage)\n\n if (doctypes.length === 1) {\n deepenPagination.set(doctypeDeepCacheKey, {\n lastPage: page,\n endOffset: start + pageHits.length,\n })\n }\n\n const doctypeFacetData: Record = {}\n if (cachedCounts) {\n HYBRID_DOCTYPE_IDS.forEach((id) => {\n const count = cachedCounts[id]\n if (typeof count === 'number') {\n doctypeFacetData[id] = count\n }\n })\n }\n\n const hybridAllCount = cachedCounts?.['']\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const searchResult: any = {\n hits: pageHits,\n nbHits,\n page,\n nbPages,\n hitsPerPage,\n exhaustiveNbHits: true,\n query,\n params: '',\n index: request.indexName || '',\n processingTimeMS: 0,\n facets: {\n doctype: doctypeFacetData,\n language: {},\n },\n facets_stats: {},\n exhaustiveFacetsCount: true,\n queryID: generateQueryID(),\n _hybridCountsAttempted: isSearchResultsRequest,\n _hybridAllCount:\n typeof hybridAllCount === 'number' ? hybridAllCount : undefined,\n }\n\n return {\n results: [searchResult],\n }\n } catch (error) {\n console.error('Hybrid search error:', error)\n return {\n results: [\n {\n hits: [],\n nbHits: 0,\n page: 0,\n nbPages: 0,\n hitsPerPage: pageSize,\n exhaustiveNbHits: true,\n query: requests[0]?.params?.query || '',\n params: '',\n index: requests[0]?.indexName || '',\n processingTimeMS: 0,\n },\n ],\n }\n }\n },\n }\n}\n\nfunction clampUpstreamLimit(raw: number): number {\n if (!Number.isFinite(raw) || raw <= 0) return HYBRID_UPSTREAM_MAX_LIMIT\n return Math.min(HYBRID_UPSTREAM_MAX_LIMIT, Math.max(1, Math.floor(raw)))\n}\n\n/**\n * Extracts the language and doctype filters from an InstantSearch request.\n *\n * Two filter shapes need to be supported:\n * 1. `Configure.filters` (a single string like\n * `language:en AND doctype:\"tutorials\"`), used by the full Search page.\n * 2. `Configure.facetFilters` (an array like `['language:en']`), used by\n * the SearchInput dropdown in the header.\n */\nfunction extractHybridFilters(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n params: any\n): { locale: string; doctypes: string[] } {\n let locale = ''\n const doctypes: string[] = []\n\n const pushDoctype = (raw: string) => {\n const value = raw.replace(/^\"|\"$/g, '').trim()\n if (value && !doctypes.includes(value)) doctypes.push(value)\n }\n\n // 1) Configure.filters as a string expression\n const filtersStr = typeof params?.filters === 'string' ? params.filters : ''\n if (filtersStr) {\n const langMatch = filtersStr.match(/language\\s*:\\s*([\\w-]+)/i)\n if (langMatch) locale = langMatch[1]\n\n const doctypeRegex = /doctype\\s*:\\s*(?:\"([^\"]+)\"|([^\\s)]+))/gi\n let m: RegExpExecArray | null\n while ((m = doctypeRegex.exec(filtersStr)) !== null) {\n pushDoctype(m[1] || m[2] || '')\n }\n }\n\n // 2) facetFilters (string | string[] | (string | string[])[])\n const facetFilters = params?.facetFilters\n const visit = (entry: unknown) => {\n if (typeof entry === 'string') {\n if (!locale && entry.startsWith('language:')) {\n locale = entry.slice('language:'.length)\n } else if (entry.startsWith('doctype:')) {\n pushDoctype(entry.slice('doctype:'.length))\n }\n } else if (Array.isArray(entry)) {\n entry.forEach(visit)\n }\n }\n visit(facetFilters)\n\n return { locale, doctypes }\n}\n\nfunction filterHitsByDoctype(\n hits: T[],\n doctypes: string[]\n): T[] {\n if (!doctypes.length) return hits\n const wanted = new Set(doctypes.map((d) => d.toLowerCase()))\n return hits.filter((h) => wanted.has(String(h.doctype || '').toLowerCase()))\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction mergeDeepenedHits(initial: any[], deepened: any[]): any[] {\n const seen = new Set()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const merged: any[] = []\n\n for (const hit of [...initial, ...deepened]) {\n const key = hit.url_without_anchor || hit.objectID || ''\n if (!key || seen.has(key)) continue\n seen.add(key)\n merged.push(hit)\n }\n\n return merged.slice(0, HYBRID_UPSTREAM_MAX_LIMIT)\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction transformHybridToAlgolia(result: any): any {\n const filePath = result.filePath || ''\n const doctype = deriveDoctypeFromFilePath(filePath)\n\n const hierarchy = {\n lvl0: doctype,\n lvl1: result.title || 'Untitled',\n lvl2: deriveCategoryFromFilePath(filePath),\n }\n\n const url = buildUrlFromFilePath(filePath)\n\n // Strip markdown syntax from snippets for display\n const rawContent = result.snippet || result.content || ''\n const cleanContent = stripMarkdownForSnippet(rawContent)\n\n return {\n objectID: String(result.id),\n ...result,\n url,\n url_without_anchor: url.split('#')[0],\n doctype,\n doctitle: result.title || 'Untitled',\n content: cleanContent,\n hierarchy,\n language: result.metadata?.locale || 'en',\n type: 'content',\n _highlightResult: {\n content: {\n value: cleanContent,\n matchLevel: 'full',\n fullyHighlighted: false,\n matchedWords: [],\n },\n hierarchy: {\n lvl0: {\n value: hierarchy.lvl0,\n matchLevel: 'none',\n },\n lvl1: {\n value: hierarchy.lvl1,\n matchLevel: result.title ? 'partial' : 'none',\n },\n },\n },\n _snippetResult: {\n content: {\n value: result.snippet ? stripMarkdownForSnippet(result.snippet) : '',\n matchLevel: 'full',\n },\n },\n }\n}\n\nconst LOCALE_SEGMENT = /^(en|es|pt)$/i\n\n/**\n * Derives the doctype id from a filePath returned by the Hybrid Search upstream.\n *\n * Supports the two layouts currently produced by the help-center / dev-portal\n * content repositories:\n * - `docs///...` → doctype = 3rd segment\n * - `//...` → doctype = 1st segment\n * - `/...` → doctype = 1st segment (fallback)\n *\n * Returns 'documentation' as a safe default so SearchCard rendering does not\n * break. The id is kept lowercase so it can be matched against the\n * `filterSelectedSection` values defined in the consuming app\n * (e.g. 'tutorials', 'faq', 'known-issues', 'troubleshooting', 'announcements').\n */\nfunction deriveDoctypeFromFilePath(filePath: string): string {\n const parts = filePath.split('/').filter(Boolean)\n if (parts.length === 0) return 'documentation'\n\n if (parts[0] === 'docs' && parts.length > 2) {\n return parts[2].toLowerCase()\n }\n\n if (parts.length > 1 && LOCALE_SEGMENT.test(parts[1])) {\n return parts[0].toLowerCase()\n }\n\n return parts[0].toLowerCase()\n}\n\nfunction deriveCategoryFromFilePath(filePath: string): string | null {\n const parts = filePath.split('/').filter(Boolean)\n if (parts[0] === 'docs' && parts.length > 3) return parts[3]\n if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1])) return parts[2]\n if (parts.length > 1) return parts[1]\n return null\n}\n\n/**\n * Builds the user-facing URL for a search hit from its upstream filePath.\n *\n * The rule is doctype-driven (not path-position-driven):\n * - tutorials/tracks → //docs//\n * - everything else → ///\n *\n * The doctype comes from deriveDoctypeFromFilePath (the same source used for\n * the facet tabs) and the slug is always the last path segment, so this works\n * regardless of how deep the file is nested or where the doctype sits in the\n * path (`docs///...` or `//...`).\n */\nfunction buildUrlFromFilePath(filePath: string): string {\n const parts = filePath.split('/').filter(Boolean)\n if (parts.length === 0) return '/'\n\n const stripExt = (s: string) => s.replace(/\\.mdx?$/, '')\n const slug = stripExt(parts[parts.length - 1])\n\n const doctype = deriveDoctypeFromFilePath(filePath)\n\n // Locale is the 2nd segment in both supported layouts:\n // docs//... and //...\n const locale =\n parts.length > 1 && LOCALE_SEGMENT.test(parts[1])\n ? parts[1].toLowerCase()\n : 'en'\n\n if (doctype === 'tutorials' || doctype === 'tracks') {\n return `/${locale}/docs/${doctype}/${slug}`\n }\n\n return `/${locale}/${doctype}/${slug}`\n}\n\nfunction generateQueryID(): string {\n return `hybrid_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`\n}\n\nexport default function SearchConfig(\n config: SearchBackendConfig | AlgoliaConfig\n) {\n // Backward compatibility: if config doesn't have 'backend', assume Algolia\n if ('backend' in config) {\n if (config.backend === 'hybrid') {\n searchIndex = config.index\n createHybridClient(config.hybrid)\n } else {\n createAlgoliaClient(config.algolia)\n }\n } else {\n // Old API: direct AlgoliaConfig\n createAlgoliaClient(config as AlgoliaConfig)\n }\n}\n","import { Flex, Text, Link } from '@vtex/brand-ui'\nimport EditIcon from 'components/icons/edit-icon'\nimport LikeIcon from 'components/icons/like-icon'\nimport LikeSelectedIcon from 'components/icons/like-selected-icon'\nimport { useContext, useEffect, useRef, useState } from 'react'\nimport styles from './styles'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\nimport ShareButton from 'components/share-button'\n\nexport interface DocPath {\n /** Slug that corresponds to the current page. */\n slug?: string\n /** Github edit URL to the corresponding documentation file. */\n urlToEdit?: string\n /** Whether is possible for the user to suggest edits or not. */\n suggestEdits?: boolean\n /** Include or not a share button. */\n shareButton?: boolean\n /** Executes when the user sends the feedback. Receives whether it was positive (liked). */\n sendFeedback: (liked: boolean) => Promise\n /** Whether to render the small version of the component or not. */\n small?: boolean\n}\n\nconst FeedbackSection = ({\n slug,\n urlToEdit,\n suggestEdits = true,\n shareButton = false,\n sendFeedback,\n small = false,\n}: DocPath) => {\n const [feedback, setFeedback] = useState(undefined)\n const { locale } = useContext(LibraryContext)\n\n // Reset feedback selection whenever the page (slug) changes\n useEffect(() => {\n setFeedback(undefined)\n }, [slug])\n\n const handleSend = async (liked: boolean) => {\n if (feedback !== undefined) return\n setFeedback(liked)\n try {\n await sendFeedback(liked)\n } catch (e) {\n setFeedback(undefined)\n }\n }\n\n return (\n \n \n \n {feedback !== undefined\n ? messages[locale]['feedback_section.response']\n : messages[locale]['feedback_section.question']}\n \n\n \n {/* LIKE */}\n handleSend(true)}\n role=\"button\"\n aria-pressed={feedback === true}\n data-cy=\"feedback-section-like\"\n >\n {feedback === true ? (\n \n ) : (\n \n )}\n {!small && (\n {messages[locale]['feedback_section.positive']}\n )}\n \n\n {/* DISLIKE */}\n handleSend(false)}\n role=\"button\"\n aria-pressed={feedback === false}\n data-cy=\"feedback-section-dislike\"\n >\n {feedback === false ? (\n \n ) : (\n \n )}\n {!small && (\n {messages[locale]['feedback_section.negative']}\n )}\n \n \n \n {suggestEdits && (\n \n \n {messages[locale]['feedback_section.edit']}\n \n )}\n {shareButton && (\n \n )}\n \n )\n}\n\nexport default FeedbackSection\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst EditIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default EditIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst LikeIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default LikeIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst LikeSelectedIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default LikeSelectedIcon\n","import { SxStyleProp } from '@vtex/brand-ui'\n\ntype StyleFn = (opts?: { small?: boolean }) => SxStyleProp\n\nconst container: StyleFn = ({ small } = {}) => ({\n width: '100%',\n flexDirection: small ? 'column' : ['column', 'row'],\n alignItems: small ? 'flex-start' : 'center',\n alignContent: ['initial', 'space-between'],\n justifyContent: ['initial', 'space-between'],\n marginTop: small ? '0px' : '32px',\n marginBottom: small ? '0px' : '16px',\n gap: small ? '8px' : '0px',\n})\n\nconst question: StyleFn = ({ small } = {}) => ({\n fontSize: small ? '12px' : '16px',\n lineHeight: '18px',\n color: '#4A596B',\n})\n\nconst iconsContainer: StyleFn = ({ small } = {}) => ({\n display: 'flex',\n alignItems: 'center',\n gap: small ? '0px' : '4px',\n ml: small ? '3px' : '6px',\n})\n\nconst likeContainer: SxStyleProp = {\n paddingBottom: ['16px', '0'],\n borderBottom: ['1px solid #E7E9EE', 'none'],\n mt: ['8px', '0'],\n mb: ['16px', '0'],\n width: ['100%', 'auto'],\n justifyContent: ['center', 'initial'],\n alignItems: 'center',\n}\n\nconst likeIcon: SxStyleProp = {\n mr: '2px',\n}\n\nconst dislikeIcon: SxStyleProp = {\n mr: '2px',\n transform: 'rotateX(180deg) rotateY(180deg)',\n}\n\nconst button: SxStyleProp = {\n ':hover': {\n cursor: 'pointer',\n color: '#000711',\n 'svg > path': {\n stroke: '#000711',\n },\n },\n}\n\nconst buttonActive: SxStyleProp = {\n cursor: 'pointer',\n color: '#000711',\n 'svg > path': {\n stroke: '#000711',\n },\n}\n\nconst selectedButton: SxStyleProp = {\n color: 'muted.1',\n}\n\nconst box: StyleFn = ({ small } = {}) => ({\n alignItems: 'center',\n color: 'muted.0',\n fontSize: small ? '12px' : '16px',\n lineHeight: '22px',\n})\n\nconst disabled: SxStyleProp = {\n display: 'none !important',\n}\n\nconst editContainer: StyleFn = ({ small } = {}) => ({\n ...box({ small }),\n ...button,\n ':hover': {\n color: '#000711 !important',\n },\n // ml: ['0', 'auto'],\n color: '#4A596B !important',\n display: 'flex',\n})\n\nconst editIcon: SxStyleProp = { mr: '4px' }\n\nconst shareButton: SxStyleProp = {\n // ml: ['0', 'auto'],\n}\n\nexport default {\n disabled,\n container,\n question,\n likeContainer,\n likeIcon,\n dislikeIcon,\n editContainer,\n editIcon,\n box,\n button,\n buttonActive,\n selectedButton,\n shareButton,\n iconsContainer,\n}\n","import { Box, Button, Flex, Text } from '@vtex/brand-ui'\nimport FacebookIcon from 'components/icons/facebook-icon'\nimport LinkedinIcon from 'components/icons/linkedin-icon'\nimport ShareIcon from 'components/icons/share-icon'\nimport TwitterIcon from 'components/icons/twitter-icon'\nimport { useRef, useState } from 'react'\nimport {\n FacebookShareButton,\n LinkedinShareButton,\n TwitterShareButton,\n EmailShareButton,\n} from 'react-share'\nimport styles from './styles'\nimport EmailIcon from 'components/icons/email-icon'\nimport LinkIcon from 'components/icons/link-icon'\nimport { SxStyleProp } from '@vtex/brand-ui'\nimport useClickOutside from 'utils/hooks/useClickOutside'\n\ninterface Props {\n url: string\n sx?: SxStyleProp\n}\n\nconst ShareButton = ({ url, sx={} }: Props) => {\n const [isOpen, setIsOpen] = useState(false)\n const containerRef = useRef()\n useClickOutside(containerRef, () => setIsOpen(false))\n\n const handleCopyLink = async () => {\n try {\n if (window) await navigator.clipboard.writeText(window.location.href)\n } catch (error) {\n console.error('Error copying link to clipboard:', error)\n }\n }\n\n return (\n \n setIsOpen(!isOpen)}\n >\n Share\n \n {isOpen && (\n \n \n \n Copy link\n \n \n \n \n \n E-mail\n \n \n \n \n \n Twitter\n \n \n \n \n \n Facebook\n \n \n \n \n \n LinkedIn\n \n \n \n )}\n \n )\n}\n\nexport default ShareButton\n\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst FacebookIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default FacebookIcon\n\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst LinkedinIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default LinkedinIcon\n\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst ShareIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default ShareIcon\n\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst TwitterIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default TwitterIcon\n\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst container: SxStyleProp = {\n position: 'relative',\n height: '24px',\n}\n\nconst button: SxStyleProp = {\n cursor: 'pointer',\n textTransform: 'none',\n fontSize: '16px',\n lineHeight: '18px',\n color: '#4A596B',\n width: '24px',\n height: '24px',\n transition: '0.3s',\n ':hover': {\n color: '#000711 !important',\n textDecoration: 'none',\n },\n alignItems: 'start',\n}\n\nconst shareIcon: SxStyleProp = {\n marginRight: '4px',\n}\n\nconst innerButton: SxStyleProp = {\n gap: '16px',\n color: '#A1AAB7',\n cursor: 'pointer',\n transition: '0.3s',\n ':hover': {\n color: '#4A4A4A',\n },\n alignItems: 'center',\n}\n\nconst innerContainer: SxStyleProp = {\n position: 'absolute',\n backgroundColor: 'white',\n flexDirection: 'column',\n top: '100%',\n right: '0',\n mt: '8px',\n padding: '16px',\n gap: '16px',\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\n borderRadius: '5px',\n\n ':before': {\n content: \"''\",\n position: 'absolute',\n top: '-8px',\n right: '8px',\n borderLeft: '8px solid transparent',\n borderRight: '8px solid transparent',\n borderBottom: '8px solid white',\n boxShadow: '0 16px 10px -17px rgba(0, 0, 0, 0.5)',\n },\n}\n\nconst divider: SxStyleProp = {\n borderBottom: '1px solid #E7E9EE',\n}\n\nexport default {\n container,\n button,\n shareIcon,\n innerButton,\n innerContainer,\n divider,\n}\n\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst EmailIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default EmailIcon\n\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst LinkIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default LinkIcon\n\n","import { Box, Flex } from '@vtex/brand-ui'\nimport SearchSections from 'components/search-sections'\nimport SearchResults from 'components/search-results'\nimport SearchFilterTabBar from 'components/search-filter-tab-bar'\nimport SearchContextProvider from 'utils/context/search'\nimport styles from './styles'\nimport SearchInput from 'components/search-input'\n\nconst Search = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default Search\n","import { Box } from '@vtex/brand-ui'\n\nimport SearchSection from 'components/search-section'\nimport styles from './styles'\nimport { useContext } from 'react'\nimport { LibraryContext } from 'utils/context/libraryContext'\n\nconst SearchSections = () => {\n const { sidebarSections } = useContext(LibraryContext)\n\n const internalOnlySections = sidebarSections.map((section) =>\n section.filter((item) => !item.isExternalLink)\n )\n\n return (\n \n {internalOnlySections.map((sections, id) => (\n \n {id === 0 && }\n {sections.map((section, index) => (\n \n ))}\n \n ))}\n \n )\n}\n\nexport default SearchSections\n","import { Box, Flex, Text } from '@vtex/brand-ui'\nimport { useContext, useEffect } from 'react'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\nimport styles from './styles'\nimport { useRouter } from 'next/router.js'\nimport { FilterType, SearchContext } from 'utils/context/search'\nimport { Section } from 'utils/typings/types'\nimport { formatSearchTabCount } from 'utils/search-utils'\n\ninterface SearchSectionProps {\n dataElement: Section | null\n index?: number\n}\n\nconst SearchSection = ({ dataElement, index }: SearchSectionProps) => {\n const router = useRouter()\n const { filterSelectedSection, ocurrenceCount, changeFilterSelectedSection } =\n useContext(SearchContext)\n const { locale } = useContext(LibraryContext)\n\n const updateFilter = (value: FilterType) => {\n router.query.filter = value\n changeFilterSelectedSection(value)\n }\n\n useEffect(() => {\n updateFilter('')\n }, [router.query])\n\n const allCountLabel = formatSearchTabCount(ocurrenceCount[''])\n\n if (!dataElement) {\n return (\n updateFilter('')}>\n \n {messages[locale]['search_results.all'] || 'All results'}\n \n {allCountLabel !== undefined && (\n \n {allCountLabel}\n \n )}\n \n )\n }\n\n const count = ocurrenceCount[dataElement.id]\n const isDisabled = count === 0\n const countLabel = formatSearchTabCount(count)\n\n return (\n {\n if (isDisabled) return\n updateFilter(dataElement.id)\n }}\n data-disabled={String(isDisabled)}\n >\n \n \n \n {dataElement.title}\n \n \n {countLabel !== undefined && (\n \n {countLabel}\n \n )}\n \n )\n}\n\nexport default SearchSection\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst sectionContainer: (disabled?: boolean) => SxStyleProp = (\n disabled = false\n) => ({\n justifyContent: 'space-between',\n padding: '8px',\n mb: '8px',\n cursor: disabled ? 'not-allowed' : 'pointer',\n opacity: disabled ? 0.5 : 1,\n ':active, :hover': disabled\n ? {}\n : {\n backgroundColor: '#F8F7FC',\n borderRadius: '4px',\n '.search-section-title': {\n color: '#000711',\n },\n '.search-section-count': {\n background: '#E7E9EE',\n },\n },\n})\n\nconst sectionIconTitleBox: SxStyleProp = {\n alignItems: 'center',\n}\n\nconst sectionIcon: (disabled?: boolean) => SxStyleProp = (\n disabled = false\n) => ({\n width: '16px',\n height: '16px',\n minWidth: '16px',\n minHeight: '16px',\n mr: '8px',\n opacity: disabled ? 0.6 : 1,\n})\n\nconst sectionTitle: (disabled?: boolean) => SxStyleProp = (\n disabled = false\n) => ({\n fontSize: '12px',\n lineHeight: '16px',\n color: disabled ? '#AFAFAF' : undefined,\n})\n\nconst sectionTitleActive: SxStyleProp = {\n ...sectionTitle(),\n color: '#142032',\n fontWeight: '600',\n}\n\nconst sectionCount: SxStyleProp = {\n background: '#F8F7FC',\n borderRadius: '24px',\n width: 'auto',\n textAlign: 'center',\n px: '8px',\n fontSize: '12px',\n lineHeight: '16px',\n}\n\nconst allResultsText: SxStyleProp = {\n ...sectionTitle(),\n ml: '24px',\n}\n\nconst allResultsTextActive: SxStyleProp = {\n ...allResultsText,\n fontWeight: 'bold',\n color: '#0C1522',\n}\n\nexport default {\n sectionContainer,\n sectionIconTitleBox,\n sectionIcon,\n sectionTitle,\n sectionTitleActive,\n sectionCount,\n allResultsText,\n allResultsTextActive,\n}\n","import {\n createContext,\n Dispatch,\n ReactNode,\n SetStateAction,\n useState,\n} from 'react'\n\nexport type FilterType = string\n\ntype OcurrenceType = {\n [key: string]: number | undefined\n}\n\ntype SearchContextType = {\n filterSelectedSection: FilterType\n changeFilterSelectedSection: Dispatch>\n ocurrenceCount: OcurrenceType\n updateOcurrenceCount: (resultsData: OcurrenceType) => void\n}\n\nexport const SearchContext = createContext({\n filterSelectedSection: '',\n changeFilterSelectedSection: () => undefined,\n ocurrenceCount: {},\n updateOcurrenceCount: () => undefined,\n})\n\ninterface Props {\n children: ReactNode\n}\n\nconst SearchContextProvider = ({ children }: Props) => {\n const [filterSelectedSection, changeFilterSelectedSection] =\n useState('')\n const [ocurrenceCount, changeOcurrenceCount] = useState({})\n\n const updateOcurrenceCount = (resultsData: OcurrenceType) => {\n changeOcurrenceCount(resultsData)\n }\n\n return (\n \n {children}\n \n )\n}\n\nexport default SearchContextProvider\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst container: SxStyleProp = {\n display: ['none', 'none', 'none', 'initial'],\n height: '100%',\n width: '242px',\n border: '1px solid #E7E9EE',\n borderRadius: '4px',\n mr: ['32px', '32px', '32px', '32px', '32px', '32px', '64px'],\n mt: '96px',\n}\n\nconst notesSection: SxStyleProp = {\n px: '8px',\n paddingTop: '8px',\n}\n\nconst docsSection: SxStyleProp = {\n ...notesSection,\n borderBottom: '1px solid #E7E9EE',\n}\n\nexport default {\n container,\n notesSection,\n docsSection,\n}\n","import { useRouter } from 'next/router.js'\nimport { useContext, useEffect, useState } from 'react'\n\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\nimport { Box, Text } from '@vtex/brand-ui'\n\nimport { Configure, InstantSearch } from 'react-instantsearch-dom'\nimport { SearchState } from 'react-instantsearch-core'\nimport InfiniteHits from './infiniteHits'\n\nimport styles from './styles'\nimport { SearchContext } from 'utils/context/search'\nimport {\n searchClient,\n searchIndex,\n hitsPerPage,\n} from 'utils/config/search-config'\nimport { formatSearchTabCount } from 'utils/search-utils'\n\nconst SearchResults = () => {\n const router = useRouter()\n const { filterSelectedSection, ocurrenceCount } = useContext(SearchContext)\n const { locale } = useContext(LibraryContext)\n const filters = [\n `language:${locale}`,\n filterSelectedSection ? `doctype:\"${filterSelectedSection}\"` : '',\n ]\n .filter(Boolean)\n .join(' AND ')\n const keyword = String(router.query.keyword ?? '')\n const [prevFilter, setPrevFilter] = useState('')\n const [prevKeyword, setPrevKeyword] = useState(keyword)\n const [searchState, setSearchState] = useState({})\n\n useEffect(() => {\n if (!keyword || keyword === prevKeyword) return\n setPrevKeyword(keyword)\n setSearchState((currentState) => ({\n ...currentState,\n page: 1,\n }))\n }, [keyword, prevKeyword])\n\n const updateSearchState = (currentState: SearchState) => {\n const keywordChanged = keyword !== prevKeyword\n const filterChanged = filters !== prevFilter\n const page = keywordChanged || filterChanged ? 1 : currentState.page || 1\n if (keywordChanged) setPrevKeyword(keyword)\n setPrevFilter(filters)\n setSearchState({\n ...currentState,\n page,\n })\n }\n\n return (\n \n \n {`${messages[locale]['search_results.showing'] || 'Showing'} ${\n formatSearchTabCount(ocurrenceCount[filterSelectedSection]) ?? ''\n } ${messages[locale]['search_results.results_for'] || 'results for'} ${\n router.query.keyword\n } ${messages[locale]['search_results.in'] || 'in'} ${\n !filterSelectedSection\n ? messages[locale]['search_results.all_lowercase'] || 'all results'\n : filterSelectedSection\n }`}\n \n
\n \n \n updateSearchState(currentState)\n }\n >\n \n \n \n \n
\n )\n}\n\nexport default SearchResults\n","import { useContext, useEffect, useMemo, useRef } from 'react'\nimport {\n connectInfiniteHits,\n connectStateResults,\n} from 'react-instantsearch-dom'\nimport {\n Hit,\n InfiniteHitsProvided,\n StateResultsProvided,\n} from 'react-instantsearch-core'\nimport SearchCard from 'components/search-card'\nimport {\n ActionType,\n getIconFromSection,\n getRelativeURL,\n getTitleById,\n} from 'utils/search-utils'\nimport { Box, Flex } from '@vtex/brand-ui'\nimport { MethodType } from 'utils/typings/types'\nimport { SearchContext } from 'utils/context/search'\nimport { LibraryContext } from 'utils/context/libraryContext'\n\nexport type FilteredHit2 = Hit & { filteredMatches?: Hit[] }\n\ninterface HitProps {\n hit: FilteredHit2\n}\n\nconst HitCard = ({ hit }: HitProps) => {\n const { sidebarSections } = useContext(LibraryContext)\n const breadcrumbTitle = getTitleById(sidebarSections, hit.doctype)\n\n const breadcrumbs = [\n breadcrumbTitle,\n ...(hit.doccategory ? [hit.doccategory] : []),\n ,\n hit.doctitle,\n ]\n const DocIcon = getIconFromSection(sidebarSections, hit.doctype)\n\n return (\n \n )\n}\n\nconst StateResults = connectStateResults(\n ({ searchResults }: StateResultsProvided) => {\n const { updateOcurrenceCount } = useContext(SearchContext)\n\n useEffect(() => {\n if (!searchResults) return\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const results = searchResults as any\n const isFilteringByDoctype =\n typeof results?._state.filters === 'string' &&\n results._state.filters.includes('doctype:')\n\n const formattedFacets: Record = {}\n const rawFacets = results?.facets\n\n if (Array.isArray(rawFacets)) {\n const doctypeFacet = rawFacets.find(\n (facet: { name?: string; data?: Record }) =>\n facet.name === 'doctype'\n )\n if (doctypeFacet?.data) {\n Object.entries(doctypeFacet.data).forEach(([key, value]) => {\n if (typeof value === 'number') {\n formattedFacets[key] = value\n }\n })\n }\n } else if (rawFacets?.doctype && typeof rawFacets.doctype === 'object') {\n Object.entries(rawFacets.doctype).forEach(([key, value]) => {\n if (typeof value === 'number') {\n formattedFacets[key] = value\n }\n })\n }\n\n const hybridAllCount = results?._hybridAllCount\n const hybridCountsAttempted = results?._hybridCountsAttempted === true\n if (typeof hybridAllCount === 'number') {\n formattedFacets[''] = hybridAllCount\n } else if (!isFilteringByDoctype && !hybridCountsAttempted) {\n formattedFacets[''] = results?.nbHits ?? 0\n }\n\n if (!isFilteringByDoctype) {\n updateOcurrenceCount(formattedFacets)\n }\n }, [searchResults?.queryID])\n\n return null\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n) as any\n\nconst InfiniteHits = ({ hits, hasMore, refineNext }: InfiniteHitsProvided) => {\n const scrollRef = useRef(null)\n\n function onSentinelIntersection(entries: IntersectionObserverEntry[]) {\n entries.forEach((entry: IntersectionObserverEntry) => {\n if (entry.isIntersecting && hasMore) {\n refineNext()\n }\n })\n }\n\n const filteredResult = useMemo(() => {\n const mergeHits: FilteredHit2[] = [] //hitsData\n hits.forEach((hit) => {\n const alreadyExists = mergeHits.findIndex(\n (e) => e.url_without_anchor === hit.url_without_anchor\n )\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const filteredHit: any = { ...hit, filteredMatches: [] }\n if (alreadyExists >= 0) {\n mergeHits[alreadyExists].filteredMatches?.push(filteredHit)\n } else mergeHits.push(filteredHit)\n })\n return mergeHits\n }, [hits])\n\n useEffect(() => {\n const observer = new IntersectionObserver(onSentinelIntersection, {})\n\n if (scrollRef.current) observer.observe(scrollRef.current)\n return () => {\n observer.disconnect()\n }\n }, [hits])\n return (\n \n \n {filteredResult.map((hit: Hit, index: number) => (\n \n \n \n ))}\n \n \n )\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport default connectInfiniteHits(InfiniteHits) as any\n","import { Box, Flex, Text, IconCaret, Tooltip } from '@vtex/brand-ui'\n\nimport styles from './styles'\nimport Link from 'next/link.js'\nimport CustomHighlight from 'components/search-input/customHighlight'\nimport { useState } from 'react'\nimport { useContext } from 'react'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\nimport ExpandedResultsIcon from 'components/icons/expanded-results-icon'\nimport { Hit } from 'react-instantsearch-core'\nimport MethodCategory from 'components/method-category'\nimport { IconComponent, MethodType } from 'utils/typings/types'\nimport { ActionType, getAction } from 'utils/search-utils'\n\nexport type FilteredHit = Hit & { filteredMatches?: Hit[] }\ninterface SearchCardProps {\n doc: string\n title: string\n breadcrumbs?: string[]\n method?: MethodType\n actionType?: ActionType\n Icon?: IconComponent\n url: string\n hit: FilteredHit\n}\n\nconst SearchCard = ({\n Icon,\n title,\n method,\n breadcrumbs,\n actionType,\n url,\n hit,\n}: SearchCardProps) => {\n const actionValue = actionType ? getAction(actionType) : null\n const [toggleChildResults, setToggleChildResults] = useState(false)\n const { locale } = useContext(LibraryContext)\n return (\n \n \n \n \n {Icon && }\n {method ? (\n \n ) : null}\n {title === 'overview' && `${hit.doccategory} `}\n {title}\n \n \n \n \n \n {toggleChildResults &&\n hit.filteredMatches?.map((childHit, index: number) => (\n \n \n \n ))}\n \n {breadcrumbs ? (\n \n \n {messages[locale]['search_card.in'] || 'In'}\n \n {breadcrumbs.map((breadcrumb, index) => (\n \n \n {breadcrumb}\n \n {index < breadcrumbs.length - 1 ? (\n \n ) : null}\n \n ))}\n \n ) : null}\n {actionValue ? (\n \n {' '}\n {actionValue?.title}\n \n ) : null}\n \n {hit.filteredMatches && hit.filteredMatches.length > 0 && (\n {\n setToggleChildResults(!toggleChildResults)\n event.stopPropagation()\n }}\n >\n \n \n )}\n \n \n )\n}\n\nexport default SearchCard\n","import { SxStyleProp } from '@vtex/brand-ui'\nimport { methodsColors } from 'components/method-category/functions'\nimport { MethodType } from 'utils/typings/unionTypes'\n\nconst container: SxStyleProp = {\n justifyContent: 'space-between',\n borderRadius: '9px',\n border: '1px solid #DDDDDD',\n width: '100%',\n mb: '18px',\n paddingTop: '26px',\n paddingBottom: '10px',\n paddingLeft: ['13px', '44px'],\n paddingRight: ['13px', '34px'],\n background: '#FFFFFF',\n cursor: 'pointer',\n}\n\nconst containerActive = (method: MethodType | undefined): SxStyleProp => {\n const methodCategory = method ? methodsColors[method] : ''\n return {\n ...container,\n ':hover': {\n background: '#F8F7FC',\n '.searchCardTitle, .searchCardDescription': {\n color: '#142032',\n },\n '.method-category': {\n ...methodCategory,\n },\n },\n }\n}\n\nconst title: SxStyleProp = {\n display: 'flex',\n alignItems: 'flex-start',\n fontSize: ['16px', '18px'],\n lineHeight: ['22px', '24px'],\n color: 'muted.0',\n}\n\nconst httpMethod: SxStyleProp = {\n mr: '4px',\n}\n\nconst icon: SxStyleProp = {\n width: '24px',\n height: '24px',\n mr: '8px',\n path: {\n stroke: '#A1A8B3',\n },\n}\n\nconst description: SxStyleProp = {\n fontSize: '16px',\n lineHeight: '22px',\n paddingLeft: '32px',\n color: 'muted.0',\n mt: '4px',\n mb: '8px',\n minWidth: 0,\n overflowWrap: 'break-word',\n wordBreak: 'break-word',\n overflow: 'hidden',\n display: '-webkit-box',\n WebkitLineClamp: 4,\n WebkitBoxOrient: 'vertical',\n}\n\nconst descriptionToggle: SxStyleProp = {\n height: 'auto',\n minWidth: 'auto',\n}\n\nconst descriptionExpandedItem: SxStyleProp = {\n mt: '24px',\n}\n\nconst breadcrumbsContainer: SxStyleProp = {\n display: ['none', 'flex'],\n paddingLeft: '32px',\n alignItems: 'center',\n}\n\nconst alignCenter: SxStyleProp = {\n alignItems: 'center',\n}\n\nconst documentation: SxStyleProp = {\n ...alignCenter,\n minWidth: 'max-content',\n}\n\nconst breadcrumb: SxStyleProp = {\n color: 'muted.1',\n fontSize: '16px',\n lineHeight: '18px',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n}\n\nconst lastBreadcrumb: SxStyleProp = {\n ...breadcrumb,\n margin: 'auto 0',\n display: 'block',\n overflow: 'hidden',\n maxWidth: 'max-content',\n whiteSpace: 'nowrap',\n}\n\nconst breadcrumbsIn: SxStyleProp = {\n ...breadcrumb,\n mr: '4px',\n minWidth: 'fit-content',\n}\n\nconst breadcrumbsArrow: SxStyleProp = {\n width: '16px',\n height: '16px',\n color: 'muted.2',\n}\n\nconst actionContainer: SxStyleProp = {\n paddingLeft: '32px',\n alignItems: 'center',\n}\n\nconst actionIcon: SxStyleProp = {\n minWidth: '16px',\n minHeight: '16px',\n width: '16px',\n height: '16px',\n mr: '8px',\n}\n\nexport default {\n containerActive,\n title,\n httpMethod,\n icon,\n description,\n descriptionToggle,\n descriptionExpandedItem,\n breadcrumbsContainer,\n alignCenter,\n documentation,\n breadcrumb,\n lastBreadcrumb,\n breadcrumbsIn,\n breadcrumbsArrow,\n actionContainer,\n actionIcon,\n}\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\ninterface ExpandedResultsProps extends IconProps {\n active: boolean\n}\n\nconst ExpandedResultsIcon = ({ active }: ExpandedResultsProps) =>\n active ? (\n \n \n \n \n ) : (\n \n \n \n \n \n )\n\nexport default ExpandedResultsIcon\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst resultContainer: SxStyleProp = {\n width: ['80%', '544px', '544px', '544px', '720px', '720px', '1400px'],\n paddingTop: ['32px', '32px', '32px', '64px'],\n hr: {\n marginTop: '16px',\n marginBottom: '32px',\n borderTop: 'none',\n borderColor: '#DDDDDD',\n display: ['none', 'none', 'none', 'block'],\n },\n}\n\nconst resultText: SxStyleProp = {\n mb: '16px',\n fontSize: '16px',\n lineHeight: '22px',\n display: ['none', 'none', 'none', 'initial'],\n}\n\nconst paginationContainer: SxStyleProp = {\n mt: ['48px', '115px'],\n mb: '34px',\n justifyContent: 'center',\n}\n\nconst paginationLink: SxStyleProp = {\n fontSize: '16px',\n lineHeight: '20px',\n color: '#EE2565',\n cursor: 'pointer',\n}\n\nconst paginationLinkDisabled: SxStyleProp = {\n ...paginationLink,\n color: 'muted.1',\n}\n\nconst paginationNumber: SxStyleProp = {\n display: 'flex',\n fontSize: ['14px', '16px'],\n lineHeight: '20px',\n color: '#4A596B',\n mx: ['18px', '27px'],\n}\n\nconst paginationActualNumber: SxStyleProp = {\n fontWeight: '700',\n mx: '4px',\n}\n\nconst noResults: SxStyleProp = {\n justifyContent: 'center',\n alignContent: 'center',\n padding: '12px',\n}\n\nexport default {\n resultContainer,\n resultText,\n paginationContainer,\n paginationLink,\n paginationLinkDisabled,\n paginationNumber,\n paginationActualNumber,\n noResults,\n}\n","import { useContext } from 'react'\nimport { Flex, Text } from '@vtex/brand-ui'\n\nimport styles from './styles'\nimport { SearchContext } from 'utils/context/search'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\nimport { formatSearchTabCount } from 'utils/search-utils'\n\nconst SearchFilterTab = ({ filter }: { filter: string }) => {\n const { filterSelectedSection, changeFilterSelectedSection, ocurrenceCount } =\n useContext(SearchContext)\n const { locale } = useContext(LibraryContext)\n\n const count = ocurrenceCount[filter]\n const isAllTab = filter === ''\n const isDisabled = !isAllTab && count === 0\n const formattedCount = formatSearchTabCount(count)\n const isActive = filterSelectedSection === filter\n\n const handleClick = () => {\n if (isDisabled) return\n changeFilterSelectedSection(filter)\n }\n\n return (\n \n \n {filter || messages[locale]['search_results.all'] || 'All results'}\n \n {formattedCount !== undefined && (\n \n {formattedCount}\n \n )}\n \n )\n}\n\nconst SearchFilterTabBar = () => {\n const { sidebarSections } = useContext(LibraryContext)\n return (\n \n \n {sidebarSections.flat().map((section) => {\n return \n })}\n \n )\n}\n\nexport default SearchFilterTabBar\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst container: SxStyleProp = {\n display: ['flex', 'flex', 'flex', 'none'],\n overflowX: 'scroll',\n scrollbarWidth: 'none',\n '::-webkit-scrollbar': {\n display: 'none',\n },\n}\n\nconst tab: (active: boolean, disabled?: boolean) => SxStyleProp = (\n active,\n disabled = false\n) => ({\n pt: '8px',\n pb: '14px',\n px: '24px',\n cursor: disabled ? 'not-allowed' : 'pointer',\n justifyContent: 'center',\n alignItems: 'center',\n borderBottom: `${active ? 2 : 1}px solid #${active ? 'D71D55' : 'DDDDDD'}`,\n minWidth: 'max-content',\n opacity: disabled ? 0.5 : 1,\n})\n\nconst tabTitle: (active: boolean, disabled?: boolean) => SxStyleProp = (\n active,\n disabled = false\n) => ({\n fontSize: '14px',\n fontWeight: '600',\n lineHeight: '16.38px',\n whiteSpace: 'nowrap',\n color: `#${disabled ? 'AFAFAF' : active ? 'D71D55' : '545454'}`,\n})\n\nconst tabCount: SxStyleProp = {\n px: '8px',\n ml: '2px',\n fontSize: '12px',\n fontWeight: '400',\n lineHeight: '16px',\n borderRadius: '24px',\n backgroundColor: '#F8F7FC',\n}\n\nexport default { container, tab, tabTitle, tabCount }\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst searchBarContainer: SxStyleProp = {\n display: ['flex', 'flex', 'flex', 'none'],\n justifyContent: 'center',\n py: '16px',\n}\n\nconst body: SxStyleProp = {\n background: '#FFFFFF',\n justifyContent: 'center',\n}\n\nexport default {\n searchBarContainer,\n body,\n}\n","import { ReactNode, useContext } from 'react'\nimport { CookieConsent } from 'react-cookie-consent'\nimport styles from './styles'\nimport { Flex, SxStyleProp, Text } from '@vtex/brand-ui'\nimport { messages } from 'utils/get-message'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport aa from 'search-insights'\n\ninterface Props {\n onAccept: () => void\n}\n\ninterface ButtonProps {\n children: ReactNode[]\n style: SxStyleProp\n}\n\nconst Button = ({ children, style, ...props }: ButtonProps) => {\n return (\n \n {children}\n \n )\n}\n\nconst CookieBar = ({ onAccept }: Props) => {\n const { locale } = useContext(LibraryContext)\n\n return (\n {\n aa('init', {\n partial: true,\n useCookie: true,\n })\n onAccept()\n }}\n declineButtonText={messages[locale]['cookie_bar.decline']}\n buttonText={messages[locale]['cookie_bar.accept']}\n ButtonComponent={Button}\n customButtonWrapperAttributes={{ style: styles.buttonContainer }}\n customContentAttributes={{ style: styles.barContent }}\n >\n {messages[locale]['cookie_bar.title']}\n {messages[locale]['cookie_bar.description']}\n \n )\n}\n\nexport default CookieBar\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst bar: SxStyleProp = {\n backgroundColor: '#FFF',\n borderRadius: '8px',\n color: '#5E6E84',\n padding: '20px',\n width: '80%',\n left: '50%',\n transform: 'translateX(-50%)',\n maxWidth: '1280px',\n alignItems: 'center',\n justifyContent: 'center',\n boxShadow: '0 0 10px rgba(0, 0, 0, 0.1)',\n}\n\nconst barContent: SxStyleProp = {\n display: 'flex',\n flex: '1 0 300px',\n flexDirection: 'column',\n maxWidth: '100%',\n}\n\nconst title: SxStyleProp = {\n color: '#5E6E84',\n marginBottom: '10px',\n lineHeight: '28px',\n fontSize: '25px',\n fontWeight: '400',\n}\n\nconst buttonContainer: SxStyleProp = {\n display: 'flex',\n flexWrap: 'wrap',\n gap: '10px',\n justifyContent: 'center',\n margin: '15px',\n}\n\nconst acceptButton: SxStyleProp = {\n background: '#F71963',\n color: '#FFF',\n padding: '7px 16px',\n borderRadius: '2px',\n margin: '0',\n height: '32px',\n fontWeight: '400',\n\n ':hover': {\n opacity: '0.7',\n },\n}\n\nconst declineButton: SxStyleProp = {\n border: '1px solid #F71963',\n background: '#FFF',\n color: '#F71963',\n borderRadius: '2px',\n fontWeight: '400',\n margin: '0',\n height: '32px',\n\n ':hover': {\n opacity: '0.7',\n },\n}\n\nexport default {\n bar,\n barContent,\n title,\n acceptButton,\n declineButton,\n buttonContainer,\n}\n","import { Button } from '@vtex/brand-ui'\nimport Tooltip from 'components/tooltip'\nimport CopyIcon from '../icons/copy-icon'\nimport { useState } from 'react'\nimport styles from './styles'\n\nconst CopyLinkButton = () => {\n const [tooltipText, setTooltipText] = useState('Copy')\n\n const handleCopy = () => {\n navigator.clipboard.writeText(window.location.href)\n setTooltipText('Copy')\n\n setTimeout(() => {\n setTooltipText('Copied!')\n }, 2000)\n }\n\n return (\n \n \n \n )\n}\n\nexport default CopyLinkButton\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst CopyIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default CopyIcon\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst copyIcon: SxStyleProp = {\n marginRight: '4px',\n}\n\nconst copyLinkButton: SxStyleProp = {\n textTransform: 'none',\n color: '#3F3F3F',\n fontWeight: '100',\n fontSize: '12px',\n lineHeight: '18px',\n height: 'none',\n padding: '8px 5px 8px 8px',\n border: '1px solid #A1AAB7',\n backgroundColor: 'white',\n ':hover': {\n backgroundColor: '#EFEFEF',\n },\n}\n\nexport default {\n copyIcon,\n copyLinkButton,\n}\n","import { useState, useEffect } from 'react'\nimport styles from './styles'\nimport { Flex } from '@vtex/brand-ui'\nimport { IconComponent } from 'utils/typings/types'\n\ninterface InputProps {\n value: string\n Icon?: IconComponent\n placeholder?: string\n onChange: (value: string) => void\n}\n\nconst Input = ({ value, onChange, placeholder = '', Icon }: InputProps) => {\n const [inputValue, setInputValue] = useState(value ?? '')\n\n useEffect(() => {\n if (inputValue !== value) setInputValue(value)\n }, [value])\n\n return (\n \n {Icon && }\n {\n setInputValue(e.currentTarget.value)\n onChange(e.currentTarget.value)\n }}\n />\n \n )\n}\n\nexport default Input\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst input: SxStyleProp = {\n background: 'none',\n border: '#F4F4F4',\n color: '#545454',\n fontSize: ['14px'],\n width: '100%',\n transition: 'flex 0.3s',\n outline: 'none',\n}\n\nconst icon: SxStyleProp = {\n minWidth: '16px',\n minHeight: '16px',\n width: '16px',\n mr: '8px',\n flex: 0,\n maxWidth: 'fit-content',\n}\n\nconst container: SxStyleProp = {\n paddingLeft: '12px',\n alignItems: 'center',\n justifyContent: 'center',\n background: '#F4F4F4',\n width: '100%',\n height: '40px',\n borderRadius: '4px',\n transition: 'all 0.3s ease-out',\n cursor: 'pointer',\n border: '1px solid #F4F4F4',\n\n ':hover': {\n transition: 'all 0.3s ease-out',\n border: '1px solid #3B3B3B',\n },\n}\n\nexport default { container, input, icon }\n","import React, { useContext, useState } from 'react'\nimport { Box, Button, Text, Flex, Link } from '@vtex/brand-ui'\nimport { messages } from 'utils/get-message'\nimport { getPrivacyNoticeURL, getNewsletterURL } from 'utils/get-url'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport styles from './styles'\n\ntype EmailValidationResult = 'valid' | 'invalid' | 'error'\n\nconst SubscriptionList: React.FC = () => {\n const { locale } = useContext(LibraryContext)\n const localizedMessages = messages[locale] ?? messages.en\n const [email, setEmail] = useState('')\n const [message, setMessage] = useState('')\n const [messageType, setMessageType] = useState<'success' | 'error' | ''>('')\n\n const clearMessageAfterTimeout = () => {\n setTimeout(() => {\n setMessage('')\n setMessageType('')\n }, 3000)\n }\n\n const showMessage = (type: 'success' | 'error', text: string) => {\n setMessageType(type)\n setMessage(text)\n clearMessageAfterTimeout()\n if (type === 'success') setEmail('')\n }\n\n const checkEmail = async (email: string): Promise => {\n const apiKey = process.env.NEXT_PUBLIC_NEWSLETTER_API_KEY\n if (!apiKey) {\n console.error(localizedMessages['subscription_list.api_key_error'])\n return 'error'\n }\n\n const url = `https://mailcheck.p.rapidapi.com/?email=${encodeURIComponent(\n email\n )}`\n\n try {\n const response = await fetch(url, {\n method: 'GET',\n headers: {\n 'x-rapidapi-host': 'mailcheck.p.rapidapi.com',\n 'x-rapidapi-key': apiKey,\n },\n })\n\n if (!response.ok) {\n console.error(\n 'Email validation failed:',\n response.status,\n response.statusText\n )\n return 'error'\n }\n\n const data = await response.json()\n if (typeof data.block !== 'boolean') {\n console.error('Email validation returned an unusable response:', data)\n return 'error'\n }\n\n return data.block ? 'invalid' : 'valid'\n } catch (error) {\n console.error(error)\n return 'error'\n }\n }\n\n const handleSubscribe = async () => {\n if (!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email)) {\n showMessage('error', localizedMessages['subscription_list.invalid_email'])\n return\n }\n\n const validationResult = await checkEmail(email)\n if (validationResult === 'invalid') {\n showMessage('error', localizedMessages['subscription_list.invalid_email'])\n return\n }\n if (validationResult === 'error') {\n showMessage('error', localizedMessages['subscription_list.error'])\n return\n }\n\n const baseURL =\n 'https://hooks.zapier.com/hooks/catch/11585741/2pahup2/?email='\n\n const browserLocale = navigator.language || 'en-US'\n const currentDate = new Date()\n const formattedDate = currentDate.toLocaleString(browserLocale, {\n month: 'short',\n day: '2-digit',\n year: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: false,\n })\n\n const urlEnd = `&locale=${browserLocale}&date=${encodeURIComponent(\n formattedDate\n )}`\n const emailEncoded = encodeURIComponent(email)\n const url = baseURL + emailEncoded + urlEnd\n\n try {\n const response = await fetch(url, { method: 'POST' })\n\n if (!response.ok) {\n console.error(\n 'Subscription failed:',\n response.status,\n response.statusText\n )\n showMessage('error', localizedMessages['subscription_list.error'])\n return\n }\n\n showMessage('success', localizedMessages['subscription_list.success'])\n } catch (error) {\n console.error('Error:', error)\n showMessage('error', localizedMessages['subscription_list.error'])\n }\n }\n\n return (\n \n \n {localizedMessages['landing_page_subscription.title']}\n \n \n
\n \n {\n localizedMessages['landing_page_subscription.description'].split(\n 'newsletter'\n )[0]\n }\n \n newsletter\n \n {\n localizedMessages['landing_page_subscription.description'].split(\n 'newsletter'\n )[1]\n }\n \n \n ) =>\n setEmail(e.target.value)\n }\n sx={styles.emailInputField}\n />\n \n {localizedMessages['landing_page_newsletter.Button']}\n \n \n \n {localizedMessages['subscription_list.privacy_notice']}{' '}\n \n {localizedMessages['subscription_list.privacy_policy_link']}\n \n \n {message && (\n \n {message}\n \n )}\n
\n
\n
\n )\n}\n\nexport default SubscriptionList\n","export const getFeedbackURL = () => {\r\n return `https://docs.google.com/forms/d/e/1FAIpQLSfmnotPvPjw-SjiE7lt2Nt3RQgNUe10ixXZmuO2v9enOJReoQ/viewform?entry.1972292648=developers.vtex.com&entry.1799503232=`\r\n}\r\n\r\nexport const getGithubURL = () => {\r\n return `https://github.com/vtex-apps`\r\n}\r\n\r\nexport const getHelpCenterURL = () => {\r\n return `https://help.vtex.com/`\r\n}\r\n\r\nexport const getCommunityURL = () => {\r\n return `https://community.vtex.com/?_ga=2.198523433.743584735.1647618303-1974737580.1645714642`\r\n}\r\n\r\nexport const getLearningCenterURL = () => {\r\n return 'https://learn.vtex.com/'\r\n}\r\n\r\nexport const getSupportURL = () => {\r\n return 'https://help.vtex.com/en/support'\r\n}\r\n\r\nexport const getNewsletterURL = (locale: 'en' | 'pt' | 'es' = 'en') => {\r\n return `https://vtexhelp.myvtex.com/educationnewsletter/${locale}`\r\n}\r\n\r\nexport const getPrivacyNoticeURL = (locale: 'en' | 'pt' | 'es' = 'en') => {\r\n const localeMap = { en: 'us-en', pt: 'pt-br', es: 'es-mx' }\r\n return `https://vtex.com/${localeMap[locale]}/trust/general-external-privacy-notice/`\r\n}\r\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst controlHeight = '48px'\n\nconst sectionContainer: SxStyleProp = {\n borderTop: '1px solid #e7e9ef',\n px: ['16px', '24px', '32px'],\n py: ['42px', '44px', '64px'],\n backgroundColor: 'muted.4',\n textAlign: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n}\n\nconst cardContainer: SxStyleProp = {\n mt: ['16px', '24px', '32px'],\n px: ['16px', '24px', '50px'],\n py: ['16px', '24px', '40px'],\n width: ['100%', '90%', '80%'],\n maxWidth: '1035px',\n backgroundColor: 'white',\n borderRadius: '8px',\n border: '1px solid #E7E9EE',\n}\n\nconst title: SxStyleProp = {\n fontSize: ['20px', '28px', '28px', '40px'],\n lineHeight: ['30px', '38px', '38px', '50px'],\n fontWeight: '400',\n color: '#4A4A4A',\n textAlign: 'center',\n}\n\nconst description: SxStyleProp = {\n fontSize: ['14px', '16px'],\n lineHeight: ['20px', '22px'],\n textAlign: 'center',\n marginBottom: '16px',\n}\n\nconst inputContainer: SxStyleProp = {\n display: 'flex',\n flexDirection: ['column', 'row'],\n gap: '5px',\n justifyContent: 'center',\n alignItems: ['center', 'flex-end'],\n width: '100%',\n}\n\nconst emailInputField: SxStyleProp = {\n flex: 1,\n minWidth: 0,\n width: '100%',\n border: '1px solid #a1a8b3',\n borderRadius: '4px',\n color: '#4A4A4A',\n fontSize: '16px',\n lineHeight: '22px',\n px: '16px',\n py: 0,\n height: controlHeight,\n minHeight: controlHeight,\n boxSizing: 'border-box',\n '&::placeholder': {\n color: '#4A4A4A',\n },\n '&:focus': {\n outline: 'none',\n borderColor: '#A1A8B3',\n },\n}\n\nconst button: SxStyleProp = {\n transition: 'all 0.3s ease-out',\n minHeight: controlHeight,\n height: controlHeight,\n alignSelf: ['center', 'stretch'],\n minWidth: '140px',\n whiteSpace: 'nowrap',\n px: '16px',\n}\n\nconst privacyText: SxStyleProp = {\n fontSize: ['14px', '16px'],\n color: '#A1A8B3',\n lineHeight: ['16px', '22px'],\n pl: ['22px', '32px'],\n fontWeight: '400',\n margin: '16px',\n}\n\nconst popupCard: SxStyleProp = {\n backgroundColor: 'white',\n boxShadow: '0 4px 6px rgba(0, 0, 0, 0.1)',\n width: '100%',\n maxWidth: '400px',\n padding: ['8px', '12px'],\n boxSizing: 'border-box',\n margin: '0 auto',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: '6px',\n marginTop: '16px',\n alignSelf: 'center',\n}\n\nexport default {\n sectionContainer,\n cardContainer,\n title,\n description,\n inputContainer,\n emailInputField,\n button,\n privacyText,\n popupCard,\n}\n","import { SxStyleProp, Text } from '@vtex/brand-ui'\n\nimport styles from './styles'\n\nexport type TagColor =\n | 'Default'\n | 'Selected'\n | 'New'\n | 'Gray'\n | 'Blue'\n | 'Green'\n | 'Deprecation'\n | 'Backlog'\n | 'Fixed'\n | 'Closed'\n | 'Scheduled'\n | 'No_Fix'\n\nexport type TagProps = {\n sx?: SxStyleProp\n children: React.ReactNode\n color?: TagColor\n onClick?: () => void\n}\n\nconst Tag = ({ sx = {}, children, color = 'Default', onClick }: TagProps) => {\n return (\n \n {children}\n \n )\n}\n\nexport default Tag\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nimport type { TagColor } from './index'\n\nconst tag: SxStyleProp = {\n borderRadius: '11.5px',\n height: '20px',\n fontSize: '12px',\n lineHeight: '20px',\n px: '7px',\n textAlign: 'center',\n textWrap: 'nowrap',\n minWidth: 'max-content',\n}\n\nconst statusColors: Record = {\n Backlog: {\n border: '1px solid #D3D3D3',\n color: '#4A596B',\n background: '#E9E9E9',\n },\n Fixed: {\n border: '1px solid #9FCDB4',\n color: '#3A6E32',\n background: '#DFF5DB',\n },\n Closed: {\n border: '1px solid #A5C0FF',\n color: '#2953B2',\n background: '#DEE8FE',\n },\n Scheduled: {\n border: '1px solid #FFD581',\n color: '#D77809',\n background: '#FFF3DA',\n },\n No_Fix: {\n border: '1px solid #FAA397',\n color: '#CB2610',\n background: '#FFDFDB',\n },\n Default: {\n border: '1px solid #A1AAB7',\n color: '#A1AAB7',\n background: '#ffff',\n\n ':hover': {\n color: '#4A596B',\n border: '1px solid #4A596B',\n },\n },\n Selected: {\n border: '1px solid #A1AAB7',\n color: '#ffff',\n background: '#A1AAB7',\n\n ':hover': {\n color: '#142032',\n },\n },\n New: {\n border: '1px solid #F71963',\n color: '#F71963',\n background: '#FFE0EF',\n },\n Gray: {\n color: '#4A596B',\n background: '#E7E9EE',\n },\n Deprecation: {\n border: '1px solid #E8A5BE',\n color: '#A23D6E',\n background: '#FCEAF2',\n },\n Blue: {\n border: '1px solid #A5C0FF',\n color: '#2953B2',\n background: '#DEE8FE',\n },\n Green: {\n border: '1px solid #9FCDB4',\n color: '#3A6E32',\n background: '#DFF5DB',\n },\n}\n\nexport default {\n statusColors,\n tag,\n}\n","import { Box, Button, Checkbox, Flex, SxStyleProp, Text } from '@vtex/brand-ui'\nimport CloseIcon from 'components/icons/close-icon'\nimport FilterIcon from 'components/icons/filter-icon'\nimport TrashcanIcon from 'components/icons/trashcan-icon'\nimport Tag from 'components/tag'\nimport { useState } from 'react'\n\nimport { toFilterGroup, toFilterGroups } from './normalize'\nimport styles from './styles'\nimport type {\n FilterGroup,\n ListingFilterLabels,\n ListingFilterSelection,\n} from './types'\n\nexport type { FilterGroup, FilterOption, ListingFilterLabels, ListingFilterSelection } from './types'\n\nexport type ListingFilterProps = {\n tagFilter?: FilterGroup | string[]\n tagFilterName?: string\n checkBoxFilter?: FilterGroup | string[]\n checkBoxFilters?: FilterGroup[]\n filterName?: string\n selectedCheckboxes?: string[]\n selectedTags?: string[]\n onApply: (filters: ListingFilterSelection) => void\n labels?: ListingFilterLabels\n buttonSx?: SxStyleProp\n centeredTagOptions?: boolean\n}\n\ntype SelectedFilters = ListingFilterSelection\n\nconst defaultLabels: Required = {\n button: 'Filters',\n modalTitle: 'Filters',\n remove: 'Remove filters',\n apply: 'Apply filters',\n}\n\nconst ListingFilter = ({\n tagFilter,\n tagFilterName,\n checkBoxFilter,\n checkBoxFilters,\n filterName = '',\n onApply,\n selectedCheckboxes,\n selectedTags,\n labels,\n buttonSx,\n centeredTagOptions = false,\n}: ListingFilterProps) => {\n const resolvedLabels = { ...defaultLabels, ...labels }\n const normalizedTagFilter = toFilterGroup(tagFilter, tagFilterName)\n const checkboxGroups = toFilterGroups(\n checkBoxFilter,\n checkBoxFilters,\n filterName\n )\n\n const [isModalOpen, setIsModalOpen] = useState(false)\n const [tempFilters, setTempFilters] = useState({\n tag: [],\n checklist: [],\n })\n\n const numberOfFilters =\n getSelectedFiltersLength(selectedTags) +\n getSelectedFiltersLength(selectedCheckboxes)\n\n function getSelectedFiltersLength(filters: string[] | undefined) {\n return filters?.length ?? 0\n }\n\n function handleFilterClick(option: string, type: 'tag' | 'checklist') {\n setTempFilters((prev) => {\n const current = prev[type]\n const updatedFilters = current.includes(option)\n ? current.filter((filter) => filter !== option)\n : [...current, option]\n\n return { ...prev, [type]: updatedFilters }\n })\n }\n\n function isFilterSelected(option: string, type: 'tag' | 'checklist') {\n if (isModalOpen) {\n return tempFilters[type].includes(option)\n }\n\n if (type === 'tag') {\n return selectedTags?.includes(option) ?? false\n }\n\n return selectedCheckboxes?.includes(option) ?? false\n }\n\n const FilterButton = () => (\n {\n setTempFilters({\n checklist: selectedCheckboxes ?? [],\n tag: selectedTags ?? [],\n })\n setIsModalOpen(true)\n }}\n >\n \n {resolvedLabels.button}\n {numberOfFilters > 0 && (\n {numberOfFilters}\n )}\n \n )\n\n const TagFilter = () => {\n if (!normalizedTagFilter) return null\n\n return (\n \n {normalizedTagFilter.name}\n \n {normalizedTagFilter.options.map((option) => (\n handleFilterClick(option.id, 'tag')}\n >\n {option.name}\n \n ))}\n \n \n )\n }\n\n const CheckboxFilters = () => {\n if (checkboxGroups.length === 0) return null\n\n return (\n <>\n {checkboxGroups.map((group, groupIndex) => (\n \n {groupIndex > 0 && }\n \n {group.name}\n \n {group.options.map((option) => (\n handleFilterClick(option.id, 'checklist')}\n />\n ))}\n \n \n \n ))}\n \n )\n }\n\n const Divider = () => (\n \n
\n
\n )\n\n const FilterModal = () => (\n <>\n setIsModalOpen(false)} />\n \n \n {resolvedLabels.modalTitle}\n setIsModalOpen(false)}\n >\n \n \n \n \n \n {normalizedTagFilter && checkboxGroups.length > 0 && }\n \n \n \n }\n onClick={() => setTempFilters({ tag: [], checklist: [] })}\n >\n {resolvedLabels.remove}\n \n {\n setIsModalOpen(false)\n onApply(tempFilters)\n }}\n >\n {resolvedLabels.apply}\n \n \n \n \n )\n\n return (\n <>\n \n {isModalOpen && }\n \n )\n}\n\nexport default ListingFilter\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst FilterIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default FilterIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst TrashcanIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n)\n\nexport default TrashcanIcon\n","import type { FilterGroup } from './types'\n\nexport function isFilterGroup(value: unknown): value is FilterGroup {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'name' in value &&\n 'options' in value &&\n Array.isArray((value as FilterGroup).options)\n )\n}\n\nexport function toFilterGroup(\n input: FilterGroup | string[] | undefined,\n name = ''\n): FilterGroup | undefined {\n if (!input) return undefined\n\n if (isFilterGroup(input)) {\n return input\n }\n\n return {\n name,\n options: input.map((option) => ({ id: option, name: option })),\n }\n}\n\nexport function toFilterGroups(\n checkBoxFilter: FilterGroup | string[] | undefined,\n checkBoxFilters: FilterGroup[] | undefined,\n filterName = ''\n): FilterGroup[] {\n if (checkBoxFilters?.length) {\n return checkBoxFilters\n }\n\n const normalized = toFilterGroup(checkBoxFilter, filterName)\n return normalized ? [normalized] : []\n}\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst filterButton: SxStyleProp = {\n cursor: 'pointer',\n alignItems: 'center',\n borderRadius: '4px',\n border: '1px solid #E7E9EE',\n fontSize: '14px',\n gap: '8px',\n px: '8px',\n transition: '0.3s',\n height: '30px',\n ':hover': {\n color: '#F71963',\n },\n width: 'min-content',\n}\n\nconst filterButtonText: SxStyleProp = {\n display: ['none', 'block', 'block'],\n}\n\nconst numberOfFilters: SxStyleProp = {\n backgroundColor: '#FFE0EF',\n color: '#F71963',\n borderRadius: '4px',\n px: '4px',\n}\n\nconst blanket: SxStyleProp = {\n margin: '0',\n width: '100%',\n height: '100%',\n background: 'rgba(20, 32, 50, 0.70)',\n position: 'fixed',\n top: '0',\n left: '0',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n zIndex: '9999',\n}\n\nconst container: SxStyleProp = {\n position: 'fixed',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n width: '612px',\n maxWidth: '100vw',\n borderRadius: '5px',\n backgroundColor: '#ffff',\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\n zIndex: '10000',\n overflow: 'auto',\n height: ['100vh', 'auto'],\n}\n\nconst innerContainer: SxStyleProp = {\n p: '24px',\n maxHeight: ['calc(100vh - 145px)', 'calc(100vh - 6rem - 112px)'],\n overflow: 'auto',\n}\n\nconst topContainer: SxStyleProp = {\n display: 'grid',\n width: '100%',\n borderBottom: '1px solid #E7E9EE',\n gridTemplateColumns: '1fr 64px',\n alignItems: 'center',\n gap: '24px',\n height: '64px',\n}\n\nconst modalTitle: SxStyleProp = {\n fontSize: '16px',\n textAlign: 'center',\n}\n\nconst closeButtonContainer: SxStyleProp = {\n cursor: 'pointer',\n borderLeft: '1px solid #E7E9EE',\n height: '100%',\n justifyContent: 'center',\n alignItems: 'center',\n transition: '0.3s',\n ':hover': {\n color: '#E31C58',\n },\n}\n\nconst filterContainer: SxStyleProp = {\n display: 'flex',\n flexDirection: 'column',\n gap: '24px',\n}\n\nconst tagContainer: SxStyleProp = {\n gap: '16px',\n flexWrap: 'wrap',\n}\n\nconst tagContainerCentered: SxStyleProp = {\n display: 'flex',\n flexWrap: 'wrap',\n gap: '12px',\n justifyContent: 'center',\n overflow: 'visible',\n maxWidth: '100%',\n}\n\nconst tag: SxStyleProp = {\n cursor: 'pointer',\n transition: '0.3s',\n flex: '0 0 auto',\n ':active': {\n position: 'relative',\n top: '1px',\n },\n}\n\nconst checkBoxContainer: SxStyleProp = {\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fill, minmax(150px, 1fr))',\n gap: '24px',\n alignItems: 'top',\n fontSize: '12px',\n color: '#4A596B',\n}\n\nconst buttonsContainer: SxStyleProp = {\n py: '16px',\n px: '32px',\n alignItems: 'center',\n justifyContent: 'space-between',\n borderTop: '1px solid #E7E9EE',\n}\n\nconst sectionDivider: SxStyleProp = {\n hr: {\n border: '1px solid #E7E9EE',\n mb: '24px',\n mt: '24px',\n },\n}\n\nconst filterTitle: SxStyleProp = {\n fontSize: '20px',\n}\n\nconst removeButton: SxStyleProp = {\n backgroundColor: 'transparent',\n color: '#4A596B',\n textTransform: 'none',\n transition: '0.3s',\n p: '0',\n\n ':hover': {\n backgroundColor: 'transparent',\n color: '#E31C58',\n },\n}\n\nexport default {\n filterButton,\n filterButtonText,\n numberOfFilters,\n blanket,\n container,\n innerContainer,\n topContainer,\n modalTitle,\n closeButtonContainer,\n filterContainer,\n tagContainer,\n tagContainerCentered,\n tag,\n checkBoxContainer,\n buttonsContainer,\n sectionDivider,\n filterTitle,\n removeButton,\n}\n","import { Box, Link, Text } from '@vtex/brand-ui'\nimport Tag from 'components/tag'\n\nimport type { TroubleshootingItem } from '../../utils/troubleshooting/types'\nimport styles from './styles'\n\nexport type TroubleshootingCardVariant = 'devportal' | 'helpcenter'\n\nexport type TroubleshootingCardProps = TroubleshootingItem & {\n href?: string\n basePath?: string\n variant?: TroubleshootingCardVariant\n}\n\nfunction buildHref({\n slug,\n href,\n basePath = '/docs/troubleshooting',\n}: Pick) {\n if (href) return href\n\n const normalizedBasePath = basePath.replace(/\\/$/, '')\n return `${normalizedBasePath}/${slug}`\n}\n\nconst TroubleshootingCard = ({\n title,\n description,\n slug,\n tags,\n domainFilters,\n symptomFilters,\n href,\n basePath,\n variant = 'devportal',\n}: TroubleshootingCardProps) => {\n const cardHref = buildHref({ slug, href, basePath })\n const resolvedSymptomFilters = symptomFilters?.filter(Boolean) ?? []\n const resolvedDomainFilters = domainFilters?.filter(Boolean) ?? []\n const fallbackTags = tags?.filter(Boolean) ?? []\n const hasStructuredTags =\n resolvedSymptomFilters.length > 0 || resolvedDomainFilters.length > 0\n\n if (variant === 'helpcenter') {\n return (\n \n \n \n {title}\n \n {hasStructuredTags ? (\n \n {resolvedSymptomFilters.length > 0 && (\n \n \n {resolvedSymptomFilters.map((filter) => (\n \n {filter}\n \n ))}\n \n \n )}\n {resolvedDomainFilters.length > 0 && (\n \n \n {resolvedDomainFilters.map((filter) => (\n \n {filter}\n \n ))}\n \n \n )}\n \n ) : null}\n \n \n )\n }\n\n return (\n \n \n \n {title}\n \n {description ? (\n \n {description}\n \n ) : null}\n \n {resolvedSymptomFilters.length > 0 && (\n \n {resolvedSymptomFilters.map((filter) => (\n \n {filter}\n \n ))}\n \n )}\n {resolvedDomainFilters.length > 0 && (\n \n {resolvedDomainFilters.map((filter) => (\n \n {filter}\n \n ))}\n \n )}\n {!hasStructuredTags &&\n fallbackTags.map((moduleTag) => (\n \n {moduleTag}\n \n ))}\n \n \n \n )\n}\n\nexport default TroubleshootingCard\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst devportalContainer: SxStyleProp = {\n mt: '16px',\n padding: '25px',\n borderRadius: '4px',\n border: '1px solid #E7E9EE',\n width: '100%',\n transition: 'all 0.3s ease-out',\n ':hover': {\n cursor: 'pointer',\n },\n ':active, :hover': {\n borderColor: 'muted.2',\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\n transition: 'all 0.3 ease-out',\n\n '.title, .description': {\n transition: 'all 0.3s ease-out',\n color: '#000711',\n },\n },\n}\n\nconst helpcenterContainer: SxStyleProp = {\n px: ['32px', '32px', '36px', '64px'],\n py: '24px',\n display: 'flex',\n flexDirection: 'column',\n gap: '16px',\n borderRadius: '4px',\n border: '1px solid #E7E9EE',\n width: ['320px', '544px', '720px'],\n transition: 'all 0.3s ease-out',\n ':hover': {\n cursor: 'pointer',\n },\n ':active, :hover': {\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\n transition: 'all 0.3 ease-out',\n\n '.title': {\n transition: 'all 0.3s ease-out',\n color: '#000711',\n },\n },\n}\n\nconst title: SxStyleProp = {\n mb: '8px',\n fontSize: ['14px', '20px'],\n fontWeight: '400',\n lineHeight: ['22px', '30px'],\n color: 'muted.0',\n}\n\nconst description: SxStyleProp = {\n fontSize: '16px',\n lineHeight: '22px',\n fontWeight: '400',\n color: 'muted.1',\n overflow: 'hidden',\n width: '100%',\n height: '50%',\n display: ['none', 'none', 'block', 'block', 'block', 'block', 'block'],\n}\n\nconst tag: SxStyleProp = {\n width: 'max-content',\n px: '8px',\n margin: '4px',\n}\n\nconst tagsContainer: SxStyleProp = {\n display: 'flex',\n flexWrap: 'wrap',\n mt: '12px',\n gap: '16px',\n}\n\nconst tagGroup: SxStyleProp = {\n display: 'flex',\n flexWrap: 'wrap',\n gap: '8px',\n}\n\nconst groupsContainer: SxStyleProp = {\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n gap: '12px 20px',\n}\n\nconst groupContainer: SxStyleProp = {\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n gap: '8px',\n flex: '0 1 auto',\n maxWidth: '100%',\n}\n\nconst helpcenterTagsContainer: SxStyleProp = {\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n}\n\nexport default {\n devportalContainer,\n helpcenterContainer,\n title,\n description,\n tag,\n tagsContainer,\n tagGroup,\n groupsContainer,\n groupContainer,\n helpcenterTagsContainer,\n}\n","import type { TroubleshootingFilterState, TroubleshootingItem } from './types'\n\nexport function filterTroubleshootingItems(\n items: T[],\n { search, domainFilters, symptomFilters }: TroubleshootingFilterState\n): T[] {\n const selectedDomainFilters = new Set(\n domainFilters.map((filter) => filter.toLowerCase())\n )\n const selectedSymptomFilters = new Set(\n symptomFilters.map((filter) => filter.toLowerCase())\n )\n const hasDomainFilters = selectedDomainFilters.size > 0\n const hasSymptomFilters = selectedSymptomFilters.size > 0\n const normalizedSearch = search.toLowerCase()\n\n return items.filter((item) => {\n const matchesSearch =\n !normalizedSearch ||\n item.title.toLowerCase().includes(normalizedSearch)\n\n const itemDomainFiltersLower = (item.domainFilters ?? []).map((filter) =>\n filter.toLowerCase()\n )\n const itemSymptomFiltersLower = (item.symptomFilters ?? []).map((filter) =>\n filter.toLowerCase()\n )\n const matchesDomainFilters =\n !hasDomainFilters ||\n itemDomainFiltersLower.some((filter) =>\n selectedDomainFilters.has(filter)\n )\n const matchesSymptomFilters =\n !hasSymptomFilters ||\n itemSymptomFiltersLower.some((filter) =>\n selectedSymptomFilters.has(filter)\n )\n\n return matchesSearch && matchesDomainFilters && matchesSymptomFilters\n })\n}\n","import type { TroubleshootingItem } from './types'\n\nexport function collectTroubleshootingFilterOptions<\n T extends Pick\n>(items: T[]) {\n const domainFilters = new Set()\n const symptomFilters = new Set()\n\n items.forEach((item) => {\n item.domainFilters?.forEach((filter) => domainFilters.add(filter))\n item.symptomFilters?.forEach((filter) => symptomFilters.add(filter))\n })\n\n return {\n domainFilters: Array.from(domainFilters).sort(),\n symptomFilters: Array.from(symptomFilters).sort(),\n }\n}\n","export const getDaysElapsed = (date: Date) => {\n const msInDay = 1000 * 60 * 60 * 24\n const msElapsed = new Date().getTime() - date.getTime()\n return Math.floor(msElapsed / msInDay)\n}\n","import { Icon } from '@vtex/brand-ui'\nimport type { IconProps } from '@vtex/brand-ui'\n\nconst GearTroubleshootingIcon = (props: IconProps) => {\n return (\n \n \n \n \n \n \n \n \n )\n}\n\nexport default GearTroubleshootingIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst DocumentationUpdatesIcon = (props: IconProps) => (\n \n \n \n \n \n \n)\n\nexport default DocumentationUpdatesIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst HelpCenterIcon = (props: IconProps) => (\n \n {' '}\n \n \n \n \n \n)\n\nexport default HelpCenterIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst DeveloperPortalIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n)\n\nexport default DeveloperPortalIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst FAQIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default FAQIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst KnownIssueIcon = (props: IconProps) => (\n \n \n \n \n
\n \n)\n\nexport default KnownIssueIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst MegaphoneIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n)\n\nexport default MegaphoneIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst GraphIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default GraphIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst WarningIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default WarningIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst PaperIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n)\n\nexport default PaperIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst StartHereIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default StartHereIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst TutorialsIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n)\n\nexport default TutorialsIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst AnnouncementIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default AnnouncementIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst VTEXDevPortalIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default VTEXDevPortalIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst VTEXHelpCenterIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default VTEXHelpCenterIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst InfoIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default InfoIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst NewIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default NewIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst GithubIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default GithubIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst CommunityIcon = (props: IconProps) => (\n \n {' '}\n \n \n \n)\n\nexport default CommunityIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst FacebookCircleIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default FacebookCircleIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst LinkedinCircleIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default LinkedinCircleIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst TwitterCircleIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default TwitterCircleIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst YoutubeIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default YoutubeIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst IgIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default IgIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst ChatGPTIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default ChatGPTIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst ClaudeIcon = (props: IconProps) => (\n \n Claude\n \n \n)\n\nexport default ClaudeIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst GeminiIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default GeminiIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst CopilotIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default CopilotIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst GridIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default GridIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst MenuIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n)\n\nexport default MenuIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\ninterface CheckboxProps extends IconProps {\n checked: boolean\n}\n\nconst CheckboxIcon = (props: CheckboxProps) => (\n \n {!props.checked ? (\n <>\n \n \n \n ) : (\n <>\n \n \n \n )}\n \n)\n\nexport default CheckboxIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst ResizeIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default ResizeIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst ArrowRightIcon = (props: IconProps) => (\n \n {' '}\n \n \n \n)\n\nexport default ArrowRightIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst LongArrowIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default LongArrowIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst VTEXLogoFooter = (props: IconProps) => (\n \n \n \n \n \n \n \n)\n\nexport default VTEXLogoFooter\n"],"mappings":"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","names":["Fragment","text","text","i","checker","version","encode","AuthMode","addMethods","createAuth","encode","init_client_common_esm","createAuth","AuthMode","addMethods","init_client_common_esm","init_client_common_esm","createAuth","AuthMode","addMethods","createAuth","AuthMode","createRetryablePromise","createWaitablePromise","shuffle","addMethods","encode","init_client_common_esm","init_client_common_esm","createAuth","AuthMode","shuffle","version","addMethods","createRetryablePromise","createWaitablePromise","encode","searchIndex","body","client_common_esm_exports","AuthMode","addMethods","createAuth","createRetryablePromise","createWaitablePromise","destroy","encode","shuffle","version","init_client_common_esm","parse","version","requester_node_http_esm_exports","createNodeHttpRequester","http","Agent","https","Agent$1","parse","defaultHttpAgent","defaultHttpsAgent","agentOptions","init_requester_node_http_esm","algoliasearch","algoliasearch","Box","useEffect","useRef","useState","Box","Flex","mermaid","jsx","jsxs","icon","link","Icon","jsx","PropTypes","Box","styles_default","jsx","Box","styles_default","useEffect","Box","Flex","Icon","jsx","jsxs","body","styles_default","jsx","jsxs","useEffect","Flex","styles_default","Box","Box","Flex","Link","container","styles_default","jsx","jsxs","title","description","Link","styles_default","Box","Flex","useEffect","useState","jsx","title","sidebarElementStatus","item","heading","styles_default","img","heading","code","blockquote","blockquoteIcon","blockquoteInfo","blockquoteDanger","blockquoteWarning","blockquoteSuccess","flexWrap","svgContainer","messages","jsx","jsxs","useState","styles_default","icon","useRef","useEffect","mermaid","Box","Flex","item","jsx","Box","useContext","useEffect","Link","Box","Text","styles_default","jsx","jsxs","useContext","useEffect","headings","item","title","Link","Text","styles_default","Box","useEffect","useRef","useState","useContext","Flex","Text","Box","Link","linkContainer","styles_default","iconTooltip","useEffect","useRef","useState","Box","Flex","styles_default","Icon","jsx","jsx","jsxs","label","box","useRef","useState","useEffect","Box","Flex","styles_default","useRouter","useEffect","getIcon","icon","Flex","Box","Text","Button","useContext","useState","styles_default","Box","Flex","Text","Flex","Text","container","styles_default","categoryStyle","styles_default","Icon","jsx","jsxs","jsx","jsxs","Flex","Text","styles_default","useContext","useState","container","text","styles_default","jsx","jsxs","useState","useContext","Box","styles_default","Text","Flex","useRouter","Fragment","useContext","useEffect","Box","Flex","Link","Button","IconCaret","sectionDivider","styles_default","icon","styles_default","textStyle","jsx","jsxs","useContext","useRouter","useEffect","item","slugPrefix","Box","styles_default","Flex","Button","IconCaret","Link","Fragment","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","jsxs","Fragment","jsx","jsxs","documentation","useState","useContext","category","getIcon","Box","styles_default","Flex","Button","Text","sidebarSectionHidden","Fragment","jsx","jsxs","useState","useContext","useEffect","iconTooltip","useRef","Box","styles_default","Link","Flex","Text","Box","IconCaret","Button","arrowIcon","arrowIconActive","styles_default","useContext","Link","Box","Flex","Text","cardContainer","title","description","styles_default","cardContainer","styles_default","titleContainer","cardTitle","jsx","jsxs","title","description","link","Icon","Link","Box","cardContainer","Flex","titleContainer","Text","styles_default","useRef","useContext","useRouter","Flex","searchInput","searchIcon","styles_default","jsx","jsxs","useRouter","useRef","useContext","Flex","styles_default","useRouter","Link","Box","Flex","IconCaret","Text","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","item","useEffect","useRef","useState","Flex","Text","jsx","useState","useRef","useEffect","Flex","styles_default","Text","useContext","Fragment","jsx","jsxs","useContext","Link","Box","styles_default","Flex","Text","IconCaret","useRouter","Box","useContext","useRef","useState","aa","aa","algoliasearch","params","hitsPerPage","allHits","jsx","jsxs","useContext","useState","resultsBox","useRef","Box","jsx","jsxs","useContext","styles_default","Box","Button","IconCaret","Flex","Text","Link","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","useContext","useEffect","useState","container","styles_default","Box","Button","Flex","Text","Icon","jsx","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","useRef","useState","container","button","styles_default","Icon","jsx","Icon","jsx","jsxs","jsx","jsxs","useState","useRef","Flex","styles_default","Button","Text","Box","jsx","jsxs","shareButton","useState","useContext","useEffect","Flex","styles_default","Text","Link","Box","Flex","Box","Box","Flex","Text","useContext","useEffect","disabled","styles_default","useRouter","createContext","useState","jsx","jsx","jsxs","useRouter","useContext","useEffect","Flex","styles_default","Text","Box","container","styles_default","useContext","jsx","jsxs","useContext","item","Box","styles_default","useRouter","useContext","useEffect","useState","Box","Text","Configure","InstantSearch","useContext","useEffect","useMemo","useRef","connectStateResults","Box","Flex","Text","IconCaret","Tooltip","container","title","icon","description","alignCenter","styles_default","Link","useState","useContext","Icon","jsx","jsxs","jsx","jsxs","Icon","title","useState","useContext","Link","Flex","styles_default","Box","Text","breadcrumb","Tooltip","IconCaret","Box","Flex","jsx","jsxs","useContext","connectStateResults","useEffect","useRef","useMemo","Box","Flex","noResults","styles_default","jsx","jsxs","useRouter","useContext","useState","useEffect","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","disabled","styles_default","jsx","jsxs","useContext","Flex","styles_default","Text","styles_default","jsx","jsxs","Box","Flex","styles_default","search_default","useContext","title","styles_default","Flex","Text","aa","jsx","jsxs","Button","Flex","useContext","styles_default","Text","Button","Icon","jsx","jsxs","useState","styles_default","jsx","useState","Button","styles_default","useState","useEffect","icon","container","styles_default","Flex","jsx","jsxs","Icon","useState","useEffect","styles_default","useContext","useState","Box","Button","Text","Flex","Link","sectionContainer","cardContainer","title","description","button","styles_default","jsx","jsxs","useContext","useState","text","email","Box","styles_default","Text","Flex","Button","Link","Text","styles_default","jsx","Text","styles_default","Box","Button","Flex","Text","Icon","jsx","jsxs","Icon","jsx","jsxs","useState","input","container","innerContainer","tag","sectionDivider","styles_default","Fragment","jsx","jsxs","useState","numberOfFilters","Flex","styles_default","Text","Box","Button","Box","Link","Text","title","description","tag","styles_default","jsx","jsxs","title","description","Link","Box","styles_default","Text","search","item","item","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","Fragment","jsx","jsxs","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs"]} \ No newline at end of file +{"version":3,"sources":["../node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js","../node_modules/prop-types/node_modules/react-is/index.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/lib/has.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/@algolia/cache-common/dist/cache-common.esm.js","../node_modules/@algolia/cache-in-memory/dist/cache-in-memory.esm.js","../node_modules/@algolia/client-analytics/node_modules/@algolia/client-common/dist/client-common.esm.js","../node_modules/@algolia/requester-common/dist/requester-common.esm.js","../node_modules/@algolia/transporter/dist/transporter.esm.js","../node_modules/@algolia/client-analytics/dist/client-analytics.esm.js","../node_modules/algoliasearch/node_modules/@algolia/client-common/dist/client-common.esm.js","../node_modules/@algolia/client-personalization/node_modules/@algolia/client-common/dist/client-common.esm.js","../node_modules/@algolia/client-personalization/dist/client-personalization.esm.js","../node_modules/@algolia/client-search/node_modules/@algolia/client-common/dist/client-common.esm.js","../node_modules/@algolia/client-search/dist/client-search.esm.js","../node_modules/@algolia/logger-common/dist/logger-common.esm.js","../node_modules/@algolia/recommend/node_modules/@algolia/client-common/dist/client-common.esm.js","../node_modules/@algolia/recommend/node_modules/@algolia/requester-node-http/dist/requester-node-http.esm.js","../node_modules/@algolia/recommend/dist/recommend.cjs.js","../node_modules/@algolia/recommend/index.js","../node_modules/algoliasearch/node_modules/@algolia/requester-node-http/dist/requester-node-http.esm.js","../node_modules/algoliasearch/dist/algoliasearch.cjs.js","../node_modules/algoliasearch/index.js","../node_modules/algoliasearch/lite.js","../src/lib/markdown-renderer/MarkdownRenderer.tsx","../src/lib/markdown-renderer/components.tsx","../src/components/overview-card/styles.ts","../src/components/overview-card/index.tsx","../src/components/overview-card/icons.tsx","../src/components/youtube-frame/index.tsx","../src/components/steps/index.tsx","../src/components/steps/styles.ts","../src/components/lightbox/index.tsx","../src/components/icons/close-icon.tsx","../src/utils/hooks/useClickOutside.ts","../src/components/lightbox/styles.ts","../src/components/whats-next-card/index.tsx","../src/components/whats-next-card/styles.ts","../src/utils/context/libraryContext.tsx","../src/utils/string-utils.ts","../src/utils/mermaidInit.ts","../src/lib/markdown-renderer/styles.module.css","../src/messages/en.json","../src/messages/es.json","../src/messages/pt.json","../src/utils/get-message.ts","../src/lib/table-of-contents/TableOfContents.tsx","../src/lib/table-of-contents/styles.ts","../src/lib/sidebar/index.tsx","../src/lib/sidebar/styles.ts","../src/lib/sidebar/functions.ts","../src/components/tooltip/index.tsx","../src/components/tooltip/styles.ts","../src/components/icons/caret.tsx","../src/utils/navigation-utils.ts","../src/utils/sidebar-utils.ts","../src/components/sidebar-section/index.tsx","../src/components/sidebar-section/styles.ts","../src/components/sidebar-section-filter/index.tsx","../src/components/method-category/index.tsx","../src/components/method-category/styles.ts","../src/components/method-category/functions.ts","../src/components/icons/close-filter-icon.tsx","../src/components/sidebar-section-filter/styles.ts","../src/components/sidebar-elements/index.tsx","../src/components/sidebar-elements/styles.ts","../src/components/sidebar-elements/functions.tsx","../src/components/icons/search-icon.tsx","../src/components/icons/sidebar-toggle-icon.tsx","../src/components/icons/arrow-left-icon.tsx","../src/lib/hamburger-menu/index.tsx","../src/lib/hamburger-menu/styles.ts","../src/components/documentation-card/index.tsx","../src/components/documentation-card/styles.ts","../src/components/documentation-card/functions.ts","../src/components/search-input/index.tsx","../src/components/search-input/search-box.tsx","../src/components/search-input/styles.ts","../src/components/search-input/results-box.tsx","../src/components/icons/api-guides-icon.tsx","../src/components/icons/api-reference-icon.tsx","../src/components/icons/app-development-icon.tsx","../src/components/icons/release-notes-icon.tsx","../src/components/icons/storefront-development-icon.tsx","../src/components/icons/vtex-io-apps-icon.tsx","../src/components/icons/troubleshooting-icon.tsx","../src/components/icons/added-icon.tsx","../src/components/icons/deprecated-icon.tsx","../src/components/icons/fixed-icon.tsx","../src/components/icons/improved-icon.tsx","../src/components/icons/removed-icon.tsx","../src/utils/search-utils.ts","../src/components/search-input/customHighlight.tsx","../src/utils/config/search-config.ts","../src/lib/feedback-section/index.tsx","../src/components/icons/edit-icon.tsx","../src/components/icons/like-icon.tsx","../src/components/icons/like-selected-icon.tsx","../src/lib/feedback-section/styles.ts","../src/components/share-button/index.tsx","../src/components/icons/facebook-icon.tsx","../src/components/icons/linkedin-icon.tsx","../src/components/icons/share-icon.tsx","../src/components/icons/twitter-icon.tsx","../src/components/share-button/styles.ts","../src/components/icons/email-icon.tsx","../src/components/icons/link-icon.tsx","../src/lib/search/index.tsx","../src/components/search-sections/index.tsx","../src/components/search-section/index.tsx","../src/components/search-section/styles.ts","../src/utils/context/search.tsx","../src/components/search-sections/styles.ts","../src/components/search-results/index.tsx","../src/components/search-results/infiniteHits.tsx","../src/components/search-card/index.tsx","../src/components/search-card/styles.ts","../src/components/icons/expanded-results-icon.tsx","../src/components/search-results/styles.ts","../src/components/search-filter-tab-bar/index.tsx","../src/components/search-filter-tab-bar/styles.ts","../src/lib/search/styles.ts","../src/lib/cookie-bar/index.tsx","../src/lib/cookie-bar/styles.ts","../src/components/copy-link-button/index.tsx","../src/components/icons/copy-icon.tsx","../src/components/copy-link-button/styles.ts","../src/components/input/index.tsx","../src/components/input/styles.ts","../src/components/subscription-list/index.tsx","../src/utils/get-url.tsx","../src/components/subscription-list/styles.ts","../src/components/tag/index.tsx","../src/components/tag/styles.ts","../src/components/listing-filter/index.tsx","../src/components/icons/filter-icon.tsx","../src/components/icons/trashcan-icon.tsx","../src/components/listing-filter/normalize.ts","../src/components/listing-filter/styles.ts","../src/components/troubleshooting-card/index.tsx","../src/components/troubleshooting-card/styles.ts","../src/utils/troubleshooting/filterItems.ts","../src/utils/troubleshooting/collectFilterOptions.ts","../src/utils/get-days-elapsed.ts","../src/components/icons/gear-troubleshooting-icon.tsx","../src/components/icons/documentation-updates-icon.tsx","../src/components/icons/helpcenter-icon.tsx","../src/components/icons/developer-portal-icon.tsx","../src/components/icons/faq-icon.tsx","../src/components/icons/known-issues-icon.tsx","../src/components/icons/megaphone-icon.tsx","../src/components/icons/graph-icon.tsx","../src/components/icons/warning-icon.tsx","../src/components/icons/paper-icon.tsx","../src/components/icons/start-here-icon.tsx","../src/components/icons/tutorials-icon.tsx","../src/components/icons/announcement-icon.tsx","../src/components/icons/vtex-devportal-icon.tsx","../src/components/icons/vtex-helpcenter-icon.tsx","../src/components/icons/info-icon.tsx","../src/components/icons/new-icon.tsx","../src/components/icons/github-icon.tsx","../src/components/icons/community-icon.tsx","../src/components/icons/facebook-circle-icon.tsx","../src/components/icons/linkedin-circle-icon.tsx","../src/components/icons/twitter-circle-icon.tsx","../src/components/icons/youtube-icon.tsx","../src/components/icons/instagram-icon.tsx","../src/components/icons/chatgpt-icon.tsx","../src/components/icons/claude-icon.tsx","../src/components/icons/gemini-icon.tsx","../src/components/icons/copilot-icon.tsx","../src/components/icons/grid-icon.tsx","../src/components/icons/menu-icon.tsx","../src/components/icons/checkbox.tsx","../src/components/icons/resize-icon.tsx","../src/components/icons/arrow-right-icon.tsx","../src/components/icons/long-arrow-icon.tsx","../src/components/icons/vtex-logo-footer.tsx"],"sourcesContent":["/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","// @todo Add logger on options to debug when caches go wrong.\r\nfunction createFallbackableCache(options) {\r\n const caches = [...options.caches];\r\n const current = caches.shift(); // eslint-disable-line functional/immutable-data\r\n if (current === undefined) {\r\n return createNullCache();\r\n }\r\n return {\r\n get(key, defaultValue, events = {\r\n miss: () => Promise.resolve(),\r\n }) {\r\n return current.get(key, defaultValue, events).catch(() => {\r\n return createFallbackableCache({ caches }).get(key, defaultValue, events);\r\n });\r\n },\r\n set(key, value) {\r\n return current.set(key, value).catch(() => {\r\n return createFallbackableCache({ caches }).set(key, value);\r\n });\r\n },\r\n delete(key) {\r\n return current.delete(key).catch(() => {\r\n return createFallbackableCache({ caches }).delete(key);\r\n });\r\n },\r\n clear() {\r\n return current.clear().catch(() => {\r\n return createFallbackableCache({ caches }).clear();\r\n });\r\n },\r\n };\r\n}\n\nfunction createNullCache() {\r\n return {\r\n get(_key, defaultValue, events = {\r\n miss: () => Promise.resolve(),\r\n }) {\r\n const value = defaultValue();\r\n return value\r\n .then(result => Promise.all([result, events.miss(result)]))\r\n .then(([result]) => result);\r\n },\r\n set(_key, value) {\r\n return Promise.resolve(value);\r\n },\r\n delete(_key) {\r\n return Promise.resolve();\r\n },\r\n clear() {\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nexport { createFallbackableCache, createNullCache };\n","function createInMemoryCache(options = { serializable: true }) {\r\n // eslint-disable-next-line functional/no-let\r\n let cache = {};\r\n return {\r\n get(key, defaultValue, events = {\r\n miss: () => Promise.resolve(),\r\n }) {\r\n const keyAsString = JSON.stringify(key);\r\n if (keyAsString in cache) {\r\n return Promise.resolve(options.serializable ? JSON.parse(cache[keyAsString]) : cache[keyAsString]);\r\n }\r\n const promise = defaultValue();\r\n const miss = (events && events.miss) || (() => Promise.resolve());\r\n return promise.then((value) => miss(value)).then(() => promise);\r\n },\r\n set(key, value) {\r\n // eslint-disable-next-line functional/immutable-data\r\n cache[JSON.stringify(key)] = options.serializable ? JSON.stringify(value) : value;\r\n return Promise.resolve(value);\r\n },\r\n delete(key) {\r\n // eslint-disable-next-line functional/immutable-data\r\n delete cache[JSON.stringify(key)];\r\n return Promise.resolve();\r\n },\r\n clear() {\r\n cache = {};\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nexport { createInMemoryCache };\n","function createAuth(authMode, appId, apiKey) {\r\n const credentials = {\r\n 'x-algolia-api-key': apiKey,\r\n 'x-algolia-application-id': appId,\r\n };\r\n return {\r\n headers() {\r\n return authMode === AuthMode.WithinHeaders ? credentials : {};\r\n },\r\n queryParameters() {\r\n return authMode === AuthMode.WithinQueryParameters ? credentials : {};\r\n },\r\n };\r\n}\n\nfunction createRetryablePromise(callback) {\r\n let retriesCount = 0; // eslint-disable-line functional/no-let\r\n const retry = () => {\r\n retriesCount++;\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve(callback(retry));\r\n }, Math.min(100 * retriesCount, 1000));\r\n });\r\n };\r\n return callback(retry);\r\n}\n\nfunction createWaitablePromise(promise, wait = (_response, _requestOptions) => {\r\n return Promise.resolve();\r\n}) {\r\n // eslint-disable-next-line functional/immutable-data\r\n return Object.assign(promise, {\r\n wait(requestOptions) {\r\n return createWaitablePromise(promise\r\n .then(response => Promise.all([wait(response, requestOptions), response]))\r\n .then(promiseResults => promiseResults[1]));\r\n },\r\n });\r\n}\n\n// eslint-disable-next-line functional/prefer-readonly-type\r\nfunction shuffle(array) {\r\n let c = array.length - 1; // eslint-disable-line functional/no-let\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (c; c > 0; c--) {\r\n const b = Math.floor(Math.random() * (c + 1));\r\n const a = array[c];\r\n array[c] = array[b]; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n array[b] = a; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n }\r\n return array;\r\n}\r\nfunction addMethods(base, methods) {\r\n if (!methods) {\r\n return base;\r\n }\r\n Object.keys(methods).forEach(key => {\r\n // eslint-disable-next-line functional/immutable-data, no-param-reassign\r\n base[key] = methods[key](base);\r\n });\r\n return base;\r\n}\r\nfunction encode(format, ...args) {\r\n // eslint-disable-next-line functional/no-let\r\n let i = 0;\r\n return format.replace(/%s/g, () => encodeURIComponent(args[i++]));\r\n}\n\nconst version = '4.24.0';\n\nconst destroy = (base) => {\r\n return () => {\r\n return base.transporter.requester.destroy();\r\n };\r\n};\n\nconst AuthMode = {\r\n /**\r\n * If auth credentials should be in query parameters.\r\n */\r\n WithinQueryParameters: 0,\r\n /**\r\n * If auth credentials should be in headers.\r\n */\r\n WithinHeaders: 1,\r\n};\n\nexport { AuthMode, addMethods, createAuth, createRetryablePromise, createWaitablePromise, destroy, encode, shuffle, version };\n","const MethodEnum = {\r\n Delete: 'DELETE',\r\n Get: 'GET',\r\n Post: 'POST',\r\n Put: 'PUT',\r\n};\n\nexport { MethodEnum };\n","import { MethodEnum } from '@algolia/requester-common';\n\nfunction createMappedRequestOptions(requestOptions, timeout) {\r\n const options = requestOptions || {};\r\n const data = options.data || {};\r\n Object.keys(options).forEach(key => {\r\n if (['timeout', 'headers', 'queryParameters', 'data', 'cacheable'].indexOf(key) === -1) {\r\n data[key] = options[key]; // eslint-disable-line functional/immutable-data\r\n }\r\n });\r\n return {\r\n data: Object.entries(data).length > 0 ? data : undefined,\r\n timeout: options.timeout || timeout,\r\n headers: options.headers || {},\r\n queryParameters: options.queryParameters || {},\r\n cacheable: options.cacheable,\r\n };\r\n}\n\nconst CallEnum = {\r\n /**\r\n * If the host is read only.\r\n */\r\n Read: 1,\r\n /**\r\n * If the host is write only.\r\n */\r\n Write: 2,\r\n /**\r\n * If the host is both read and write.\r\n */\r\n Any: 3,\r\n};\n\nconst HostStatusEnum = {\r\n Up: 1,\r\n Down: 2,\r\n Timeouted: 3,\r\n};\n\n// By default, API Clients at Algolia have expiration delay\r\n// of 5 mins. In the JavaScript client, we have 2 mins.\r\nconst EXPIRATION_DELAY = 2 * 60 * 1000;\r\nfunction createStatefulHost(host, status = HostStatusEnum.Up) {\r\n return {\r\n ...host,\r\n status,\r\n lastUpdate: Date.now(),\r\n };\r\n}\r\nfunction isStatefulHostUp(host) {\r\n return host.status === HostStatusEnum.Up || Date.now() - host.lastUpdate > EXPIRATION_DELAY;\r\n}\r\nfunction isStatefulHostTimeouted(host) {\r\n return (host.status === HostStatusEnum.Timeouted && Date.now() - host.lastUpdate <= EXPIRATION_DELAY);\r\n}\n\nfunction createStatelessHost(options) {\r\n if (typeof options === 'string') {\r\n return {\r\n protocol: 'https',\r\n url: options,\r\n accept: CallEnum.Any,\r\n };\r\n }\r\n return {\r\n protocol: options.protocol || 'https',\r\n url: options.url,\r\n accept: options.accept || CallEnum.Any,\r\n };\r\n}\n\nfunction createRetryableOptions(hostsCache, statelessHosts) {\r\n return Promise.all(statelessHosts.map(statelessHost => {\r\n return hostsCache.get(statelessHost, () => {\r\n return Promise.resolve(createStatefulHost(statelessHost));\r\n });\r\n })).then(statefulHosts => {\r\n const hostsUp = statefulHosts.filter(host => isStatefulHostUp(host));\r\n const hostsTimeouted = statefulHosts.filter(host => isStatefulHostTimeouted(host));\r\n /**\r\n * Note, we put the hosts that previously timeouted on the end of the list.\r\n */\r\n const hostsAvailable = [...hostsUp, ...hostsTimeouted];\r\n const statelessHostsAvailable = hostsAvailable.length > 0\r\n ? hostsAvailable.map(host => createStatelessHost(host))\r\n : statelessHosts;\r\n return {\r\n getTimeout(timeoutsCount, baseTimeout) {\r\n /**\r\n * Imagine that you have 4 hosts, if timeouts will increase\r\n * on the following way: 1 (timeouted) > 4 (timeouted) > 5 (200)\r\n *\r\n * Note that, the very next request, we start from the previous timeout\r\n *\r\n * 5 (timeouted) > 6 (timeouted) > 7 ...\r\n *\r\n * This strategy may need to be reviewed, but is the strategy on the our\r\n * current v3 version.\r\n */\r\n const timeoutMultiplier = hostsTimeouted.length === 0 && timeoutsCount === 0\r\n ? 1\r\n : hostsTimeouted.length + 3 + timeoutsCount;\r\n return timeoutMultiplier * baseTimeout;\r\n },\r\n statelessHosts: statelessHostsAvailable,\r\n };\r\n });\r\n}\n\nconst isNetworkError = ({ isTimedOut, status }) => {\r\n return !isTimedOut && ~~status === 0;\r\n};\r\nconst isRetryable = (response) => {\r\n const status = response.status;\r\n const isTimedOut = response.isTimedOut;\r\n return (isTimedOut || isNetworkError(response) || (~~(status / 100) !== 2 && ~~(status / 100) !== 4));\r\n};\r\nconst isSuccess = ({ status }) => {\r\n return ~~(status / 100) === 2;\r\n};\r\nconst retryDecision = (response, outcomes) => {\r\n if (isRetryable(response)) {\r\n return outcomes.onRetry(response);\r\n }\r\n if (isSuccess(response)) {\r\n return outcomes.onSuccess(response);\r\n }\r\n return outcomes.onFail(response);\r\n};\n\nfunction retryableRequest(transporter, statelessHosts, request, requestOptions) {\r\n const stackTrace = []; // eslint-disable-line functional/prefer-readonly-type\r\n /**\r\n * First we prepare the payload that do not depend from hosts.\r\n */\r\n const data = serializeData(request, requestOptions);\r\n const headers = serializeHeaders(transporter, requestOptions);\r\n const method = request.method;\r\n // On `GET`, the data is proxied to query parameters.\r\n const dataQueryParameters = request.method !== MethodEnum.Get\r\n ? {}\r\n : {\r\n ...request.data,\r\n ...requestOptions.data,\r\n };\r\n const queryParameters = {\r\n 'x-algolia-agent': transporter.userAgent.value,\r\n ...transporter.queryParameters,\r\n ...dataQueryParameters,\r\n ...requestOptions.queryParameters,\r\n };\r\n let timeoutsCount = 0; // eslint-disable-line functional/no-let\r\n const retry = (hosts, // eslint-disable-line functional/prefer-readonly-type\r\n getTimeout) => {\r\n /**\r\n * We iterate on each host, until there is no host left.\r\n */\r\n const host = hosts.pop(); // eslint-disable-line functional/immutable-data\r\n if (host === undefined) {\r\n throw createRetryError(stackTraceWithoutCredentials(stackTrace));\r\n }\r\n const payload = {\r\n data,\r\n headers,\r\n method,\r\n url: serializeUrl(host, request.path, queryParameters),\r\n connectTimeout: getTimeout(timeoutsCount, transporter.timeouts.connect),\r\n responseTimeout: getTimeout(timeoutsCount, requestOptions.timeout),\r\n };\r\n /**\r\n * The stackFrame is pushed to the stackTrace so we\r\n * can have information about onRetry and onFailure\r\n * decisions.\r\n */\r\n const pushToStackTrace = (response) => {\r\n const stackFrame = {\r\n request: payload,\r\n response,\r\n host,\r\n triesLeft: hosts.length,\r\n };\r\n // eslint-disable-next-line functional/immutable-data\r\n stackTrace.push(stackFrame);\r\n return stackFrame;\r\n };\r\n const decisions = {\r\n onSuccess: response => deserializeSuccess(response),\r\n onRetry(response) {\r\n const stackFrame = pushToStackTrace(response);\r\n /**\r\n * If response is a timeout, we increaset the number of\r\n * timeouts so we can increase the timeout later.\r\n */\r\n if (response.isTimedOut) {\r\n timeoutsCount++;\r\n }\r\n return Promise.all([\r\n /**\r\n * Failures are individually send the logger, allowing\r\n * the end user to debug / store stack frames even\r\n * when a retry error does not happen.\r\n */\r\n transporter.logger.info('Retryable failure', stackFrameWithoutCredentials(stackFrame)),\r\n /**\r\n * We also store the state of the host in failure cases. If the host, is\r\n * down it will remain down for the next 2 minutes. In a timeout situation,\r\n * this host will be added end of the list of hosts on the next request.\r\n */\r\n transporter.hostsCache.set(host, createStatefulHost(host, response.isTimedOut ? HostStatusEnum.Timeouted : HostStatusEnum.Down)),\r\n ]).then(() => retry(hosts, getTimeout));\r\n },\r\n onFail(response) {\r\n pushToStackTrace(response);\r\n throw deserializeFailure(response, stackTraceWithoutCredentials(stackTrace));\r\n },\r\n };\r\n return transporter.requester.send(payload).then(response => {\r\n return retryDecision(response, decisions);\r\n });\r\n };\r\n /**\r\n * Finally, for each retryable host perform request until we got a non\r\n * retryable response. Some notes here:\r\n *\r\n * 1. The reverse here is applied so we can apply a `pop` later on => more performant.\r\n * 2. We also get from the retryable options a timeout multiplier that is tailored\r\n * for the current context.\r\n */\r\n return createRetryableOptions(transporter.hostsCache, statelessHosts).then(options => {\r\n return retry([...options.statelessHosts].reverse(), options.getTimeout);\r\n });\r\n}\n\nfunction createTransporter(options) {\r\n const { hostsCache, logger, requester, requestsCache, responsesCache, timeouts, userAgent, hosts, queryParameters, headers, } = options;\r\n const transporter = {\r\n hostsCache,\r\n logger,\r\n requester,\r\n requestsCache,\r\n responsesCache,\r\n timeouts,\r\n userAgent,\r\n headers,\r\n queryParameters,\r\n hosts: hosts.map(host => createStatelessHost(host)),\r\n read(request, requestOptions) {\r\n /**\r\n * First, we compute the user request options. Now, keep in mind,\r\n * that using request options the user is able to modified the intire\r\n * payload of the request. Such as headers, query parameters, and others.\r\n */\r\n const mappedRequestOptions = createMappedRequestOptions(requestOptions, transporter.timeouts.read);\r\n const createRetryableRequest = () => {\r\n /**\r\n * Then, we prepare a function factory that contains the construction of\r\n * the retryable request. At this point, we may *not* perform the actual\r\n * request. But we want to have the function factory ready.\r\n */\r\n return retryableRequest(transporter, transporter.hosts.filter(host => (host.accept & CallEnum.Read) !== 0), request, mappedRequestOptions);\r\n };\r\n /**\r\n * Once we have the function factory ready, we need to determine of the\r\n * request is \"cacheable\" - should be cached. Note that, once again,\r\n * the user can force this option.\r\n */\r\n const cacheable = mappedRequestOptions.cacheable !== undefined\r\n ? mappedRequestOptions.cacheable\r\n : request.cacheable;\r\n /**\r\n * If is not \"cacheable\", we immediatly trigger the retryable request, no\r\n * need to check cache implementations.\r\n */\r\n if (cacheable !== true) {\r\n return createRetryableRequest();\r\n }\r\n /**\r\n * If the request is \"cacheable\", we need to first compute the key to ask\r\n * the cache implementations if this request is on progress or if the\r\n * response already exists on the cache.\r\n */\r\n const key = {\r\n request,\r\n mappedRequestOptions,\r\n transporter: {\r\n queryParameters: transporter.queryParameters,\r\n headers: transporter.headers,\r\n },\r\n };\r\n /**\r\n * With the computed key, we first ask the responses cache\r\n * implemention if this request was been resolved before.\r\n */\r\n return transporter.responsesCache.get(key, () => {\r\n /**\r\n * If the request has never resolved before, we actually ask if there\r\n * is a current request with the same key on progress.\r\n */\r\n return transporter.requestsCache.get(key, () => {\r\n return (transporter.requestsCache\r\n /**\r\n * Finally, if there is no request in progress with the same key,\r\n * this `createRetryableRequest()` will actually trigger the\r\n * retryable request.\r\n */\r\n .set(key, createRetryableRequest())\r\n .then(response => Promise.all([transporter.requestsCache.delete(key), response]), err => Promise.all([transporter.requestsCache.delete(key), Promise.reject(err)]))\r\n .then(([_, response]) => response));\r\n });\r\n }, {\r\n /**\r\n * Of course, once we get this response back from the server, we\r\n * tell response cache to actually store the received response\r\n * to be used later.\r\n */\r\n miss: response => transporter.responsesCache.set(key, response),\r\n });\r\n },\r\n write(request, requestOptions) {\r\n /**\r\n * On write requests, no cache mechanisms are applied, and we\r\n * proxy the request immediately to the requester.\r\n */\r\n return retryableRequest(transporter, transporter.hosts.filter(host => (host.accept & CallEnum.Write) !== 0), request, createMappedRequestOptions(requestOptions, transporter.timeouts.write));\r\n },\r\n };\r\n return transporter;\r\n}\n\nfunction createUserAgent(version) {\r\n const userAgent = {\r\n value: `Algolia for JavaScript (${version})`,\r\n add(options) {\r\n const addedUserAgent = `; ${options.segment}${options.version !== undefined ? ` (${options.version})` : ''}`;\r\n if (userAgent.value.indexOf(addedUserAgent) === -1) {\r\n // eslint-disable-next-line functional/immutable-data\r\n userAgent.value = `${userAgent.value}${addedUserAgent}`;\r\n }\r\n return userAgent;\r\n },\r\n };\r\n return userAgent;\r\n}\n\nfunction deserializeSuccess(response) {\r\n // eslint-disable-next-line functional/no-try-statement\r\n try {\r\n return JSON.parse(response.content);\r\n }\r\n catch (e) {\r\n throw createDeserializationError(e.message, response);\r\n }\r\n}\r\nfunction deserializeFailure({ content, status }, stackFrame) {\r\n // eslint-disable-next-line functional/no-let\r\n let message = content;\r\n // eslint-disable-next-line functional/no-try-statement\r\n try {\r\n message = JSON.parse(content).message;\r\n }\r\n catch (e) {\r\n // ..\r\n }\r\n return createApiError(message, status, stackFrame);\r\n}\n\n// eslint-disable-next-line functional/prefer-readonly-type\r\nfunction encode(format, ...args) {\r\n // eslint-disable-next-line functional/no-let\r\n let i = 0;\r\n return format.replace(/%s/g, () => encodeURIComponent(args[i++]));\r\n}\n\nfunction serializeUrl(host, path, queryParameters) {\r\n const queryParametersAsString = serializeQueryParameters(queryParameters);\r\n // eslint-disable-next-line functional/no-let\r\n let url = `${host.protocol}://${host.url}/${path.charAt(0) === '/' ? path.substr(1) : path}`;\r\n if (queryParametersAsString.length) {\r\n url += `?${queryParametersAsString}`;\r\n }\r\n return url;\r\n}\r\nfunction serializeQueryParameters(parameters) {\r\n const isObjectOrArray = (value) => Object.prototype.toString.call(value) === '[object Object]' ||\r\n Object.prototype.toString.call(value) === '[object Array]';\r\n return Object.keys(parameters)\r\n .map(key => encode('%s=%s', key, isObjectOrArray(parameters[key]) ? JSON.stringify(parameters[key]) : parameters[key]))\r\n .join('&');\r\n}\r\nfunction serializeData(request, requestOptions) {\r\n if (request.method === MethodEnum.Get ||\r\n (request.data === undefined && requestOptions.data === undefined)) {\r\n return undefined;\r\n }\r\n const data = Array.isArray(request.data)\r\n ? request.data\r\n : { ...request.data, ...requestOptions.data };\r\n return JSON.stringify(data);\r\n}\r\nfunction serializeHeaders(transporter, requestOptions) {\r\n const headers = {\r\n ...transporter.headers,\r\n ...requestOptions.headers,\r\n };\r\n const serializedHeaders = {};\r\n Object.keys(headers).forEach(header => {\r\n const value = headers[header];\r\n // @ts-ignore\r\n // eslint-disable-next-line functional/immutable-data\r\n serializedHeaders[header.toLowerCase()] = value;\r\n });\r\n return serializedHeaders;\r\n}\n\nfunction stackTraceWithoutCredentials(stackTrace) {\r\n return stackTrace.map(stackFrame => stackFrameWithoutCredentials(stackFrame));\r\n}\r\nfunction stackFrameWithoutCredentials(stackFrame) {\r\n const modifiedHeaders = stackFrame.request.headers['x-algolia-api-key']\r\n ? { 'x-algolia-api-key': '*****' }\r\n : {};\r\n return {\r\n ...stackFrame,\r\n request: {\r\n ...stackFrame.request,\r\n headers: {\r\n ...stackFrame.request.headers,\r\n ...modifiedHeaders,\r\n },\r\n },\r\n };\r\n}\n\nfunction createApiError(message, status, transporterStackTrace) {\r\n return {\r\n name: 'ApiError',\r\n message,\r\n status,\r\n transporterStackTrace,\r\n };\r\n}\n\nfunction createDeserializationError(message, response) {\r\n return {\r\n name: 'DeserializationError',\r\n message,\r\n response,\r\n };\r\n}\n\nfunction createRetryError(transporterStackTrace) {\r\n return {\r\n name: 'RetryError',\r\n message: 'Unreachable hosts - your application id may be incorrect. If the error persists, please reach out to the Algolia Support team: https://alg.li/support .',\r\n transporterStackTrace,\r\n };\r\n}\n\nexport { CallEnum, HostStatusEnum, createApiError, createDeserializationError, createMappedRequestOptions, createRetryError, createStatefulHost, createStatelessHost, createTransporter, createUserAgent, deserializeFailure, deserializeSuccess, isStatefulHostTimeouted, isStatefulHostUp, serializeData, serializeHeaders, serializeQueryParameters, serializeUrl, stackFrameWithoutCredentials, stackTraceWithoutCredentials };\n","import { createAuth, AuthMode, addMethods, encode } from '@algolia/client-common';\nimport { createTransporter } from '@algolia/transporter';\nimport { MethodEnum } from '@algolia/requester-common';\n\nconst createAnalyticsClient = options => {\r\n const region = options.region || 'us';\r\n const auth = createAuth(AuthMode.WithinHeaders, options.appId, options.apiKey);\r\n const transporter = createTransporter({\r\n hosts: [{ url: `analytics.${region}.algolia.com` }],\r\n ...options,\r\n headers: {\r\n ...auth.headers(),\r\n ...{ 'content-type': 'application/json' },\r\n ...options.headers,\r\n },\r\n queryParameters: {\r\n ...auth.queryParameters(),\r\n ...options.queryParameters,\r\n },\r\n });\r\n const appId = options.appId;\r\n return addMethods({ appId, transporter }, options.methods);\r\n};\n\nconst addABTest = (base) => {\r\n return (abTest, requestOptions) => {\r\n return base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: '2/abtests',\r\n data: abTest,\r\n }, requestOptions);\r\n };\r\n};\n\nconst deleteABTest = (base) => {\r\n return (abTestID, requestOptions) => {\r\n return base.transporter.write({\r\n method: MethodEnum.Delete,\r\n path: encode('2/abtests/%s', abTestID),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getABTest = (base) => {\r\n return (abTestID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('2/abtests/%s', abTestID),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getABTests = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '2/abtests',\r\n }, requestOptions);\r\n };\r\n};\n\nconst stopABTest = (base) => {\r\n return (abTestID, requestOptions) => {\r\n return base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('2/abtests/%s/stop', abTestID),\r\n }, requestOptions);\r\n };\r\n};\n\nexport { addABTest, createAnalyticsClient, deleteABTest, getABTest, getABTests, stopABTest };\n","function createAuth(authMode, appId, apiKey) {\r\n const credentials = {\r\n 'x-algolia-api-key': apiKey,\r\n 'x-algolia-application-id': appId,\r\n };\r\n return {\r\n headers() {\r\n return authMode === AuthMode.WithinHeaders ? credentials : {};\r\n },\r\n queryParameters() {\r\n return authMode === AuthMode.WithinQueryParameters ? credentials : {};\r\n },\r\n };\r\n}\n\nfunction createRetryablePromise(callback) {\r\n let retriesCount = 0; // eslint-disable-line functional/no-let\r\n const retry = () => {\r\n retriesCount++;\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve(callback(retry));\r\n }, Math.min(100 * retriesCount, 1000));\r\n });\r\n };\r\n return callback(retry);\r\n}\n\nfunction createWaitablePromise(promise, wait = (_response, _requestOptions) => {\r\n return Promise.resolve();\r\n}) {\r\n // eslint-disable-next-line functional/immutable-data\r\n return Object.assign(promise, {\r\n wait(requestOptions) {\r\n return createWaitablePromise(promise\r\n .then(response => Promise.all([wait(response, requestOptions), response]))\r\n .then(promiseResults => promiseResults[1]));\r\n },\r\n });\r\n}\n\n// eslint-disable-next-line functional/prefer-readonly-type\r\nfunction shuffle(array) {\r\n let c = array.length - 1; // eslint-disable-line functional/no-let\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (c; c > 0; c--) {\r\n const b = Math.floor(Math.random() * (c + 1));\r\n const a = array[c];\r\n array[c] = array[b]; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n array[b] = a; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n }\r\n return array;\r\n}\r\nfunction addMethods(base, methods) {\r\n if (!methods) {\r\n return base;\r\n }\r\n Object.keys(methods).forEach(key => {\r\n // eslint-disable-next-line functional/immutable-data, no-param-reassign\r\n base[key] = methods[key](base);\r\n });\r\n return base;\r\n}\r\nfunction encode(format, ...args) {\r\n // eslint-disable-next-line functional/no-let\r\n let i = 0;\r\n return format.replace(/%s/g, () => encodeURIComponent(args[i++]));\r\n}\n\nconst version = '4.24.0';\n\nconst destroy = (base) => {\r\n return () => {\r\n return base.transporter.requester.destroy();\r\n };\r\n};\n\nconst AuthMode = {\r\n /**\r\n * If auth credentials should be in query parameters.\r\n */\r\n WithinQueryParameters: 0,\r\n /**\r\n * If auth credentials should be in headers.\r\n */\r\n WithinHeaders: 1,\r\n};\n\nexport { AuthMode, addMethods, createAuth, createRetryablePromise, createWaitablePromise, destroy, encode, shuffle, version };\n","function createAuth(authMode, appId, apiKey) {\r\n const credentials = {\r\n 'x-algolia-api-key': apiKey,\r\n 'x-algolia-application-id': appId,\r\n };\r\n return {\r\n headers() {\r\n return authMode === AuthMode.WithinHeaders ? credentials : {};\r\n },\r\n queryParameters() {\r\n return authMode === AuthMode.WithinQueryParameters ? credentials : {};\r\n },\r\n };\r\n}\n\nfunction createRetryablePromise(callback) {\r\n let retriesCount = 0; // eslint-disable-line functional/no-let\r\n const retry = () => {\r\n retriesCount++;\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve(callback(retry));\r\n }, Math.min(100 * retriesCount, 1000));\r\n });\r\n };\r\n return callback(retry);\r\n}\n\nfunction createWaitablePromise(promise, wait = (_response, _requestOptions) => {\r\n return Promise.resolve();\r\n}) {\r\n // eslint-disable-next-line functional/immutable-data\r\n return Object.assign(promise, {\r\n wait(requestOptions) {\r\n return createWaitablePromise(promise\r\n .then(response => Promise.all([wait(response, requestOptions), response]))\r\n .then(promiseResults => promiseResults[1]));\r\n },\r\n });\r\n}\n\n// eslint-disable-next-line functional/prefer-readonly-type\r\nfunction shuffle(array) {\r\n let c = array.length - 1; // eslint-disable-line functional/no-let\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (c; c > 0; c--) {\r\n const b = Math.floor(Math.random() * (c + 1));\r\n const a = array[c];\r\n array[c] = array[b]; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n array[b] = a; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n }\r\n return array;\r\n}\r\nfunction addMethods(base, methods) {\r\n if (!methods) {\r\n return base;\r\n }\r\n Object.keys(methods).forEach(key => {\r\n // eslint-disable-next-line functional/immutable-data, no-param-reassign\r\n base[key] = methods[key](base);\r\n });\r\n return base;\r\n}\r\nfunction encode(format, ...args) {\r\n // eslint-disable-next-line functional/no-let\r\n let i = 0;\r\n return format.replace(/%s/g, () => encodeURIComponent(args[i++]));\r\n}\n\nconst version = '4.24.0';\n\nconst destroy = (base) => {\r\n return () => {\r\n return base.transporter.requester.destroy();\r\n };\r\n};\n\nconst AuthMode = {\r\n /**\r\n * If auth credentials should be in query parameters.\r\n */\r\n WithinQueryParameters: 0,\r\n /**\r\n * If auth credentials should be in headers.\r\n */\r\n WithinHeaders: 1,\r\n};\n\nexport { AuthMode, addMethods, createAuth, createRetryablePromise, createWaitablePromise, destroy, encode, shuffle, version };\n","import { createAuth, AuthMode, addMethods } from '@algolia/client-common';\nimport { createTransporter } from '@algolia/transporter';\nimport { MethodEnum } from '@algolia/requester-common';\n\nconst createPersonalizationClient = options => {\r\n const region = options.region || 'us';\r\n const auth = createAuth(AuthMode.WithinHeaders, options.appId, options.apiKey);\r\n const transporter = createTransporter({\r\n hosts: [{ url: `personalization.${region}.algolia.com` }],\r\n ...options,\r\n headers: {\r\n ...auth.headers(),\r\n ...{ 'content-type': 'application/json' },\r\n ...options.headers,\r\n },\r\n queryParameters: {\r\n ...auth.queryParameters(),\r\n ...options.queryParameters,\r\n },\r\n });\r\n return addMethods({ appId: options.appId, transporter }, options.methods);\r\n};\n\nconst getPersonalizationStrategy = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/strategies/personalization',\r\n }, requestOptions);\r\n };\r\n};\n\nconst setPersonalizationStrategy = (base) => {\r\n return (personalizationStrategy, requestOptions) => {\r\n return base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: '1/strategies/personalization',\r\n data: personalizationStrategy,\r\n }, requestOptions);\r\n };\r\n};\n\nexport { createPersonalizationClient, getPersonalizationStrategy, setPersonalizationStrategy };\n","function createAuth(authMode, appId, apiKey) {\r\n const credentials = {\r\n 'x-algolia-api-key': apiKey,\r\n 'x-algolia-application-id': appId,\r\n };\r\n return {\r\n headers() {\r\n return authMode === AuthMode.WithinHeaders ? credentials : {};\r\n },\r\n queryParameters() {\r\n return authMode === AuthMode.WithinQueryParameters ? credentials : {};\r\n },\r\n };\r\n}\n\nfunction createRetryablePromise(callback) {\r\n let retriesCount = 0; // eslint-disable-line functional/no-let\r\n const retry = () => {\r\n retriesCount++;\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve(callback(retry));\r\n }, Math.min(100 * retriesCount, 1000));\r\n });\r\n };\r\n return callback(retry);\r\n}\n\nfunction createWaitablePromise(promise, wait = (_response, _requestOptions) => {\r\n return Promise.resolve();\r\n}) {\r\n // eslint-disable-next-line functional/immutable-data\r\n return Object.assign(promise, {\r\n wait(requestOptions) {\r\n return createWaitablePromise(promise\r\n .then(response => Promise.all([wait(response, requestOptions), response]))\r\n .then(promiseResults => promiseResults[1]));\r\n },\r\n });\r\n}\n\n// eslint-disable-next-line functional/prefer-readonly-type\r\nfunction shuffle(array) {\r\n let c = array.length - 1; // eslint-disable-line functional/no-let\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (c; c > 0; c--) {\r\n const b = Math.floor(Math.random() * (c + 1));\r\n const a = array[c];\r\n array[c] = array[b]; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n array[b] = a; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n }\r\n return array;\r\n}\r\nfunction addMethods(base, methods) {\r\n if (!methods) {\r\n return base;\r\n }\r\n Object.keys(methods).forEach(key => {\r\n // eslint-disable-next-line functional/immutable-data, no-param-reassign\r\n base[key] = methods[key](base);\r\n });\r\n return base;\r\n}\r\nfunction encode(format, ...args) {\r\n // eslint-disable-next-line functional/no-let\r\n let i = 0;\r\n return format.replace(/%s/g, () => encodeURIComponent(args[i++]));\r\n}\n\nconst version = '4.24.0';\n\nconst destroy = (base) => {\r\n return () => {\r\n return base.transporter.requester.destroy();\r\n };\r\n};\n\nconst AuthMode = {\r\n /**\r\n * If auth credentials should be in query parameters.\r\n */\r\n WithinQueryParameters: 0,\r\n /**\r\n * If auth credentials should be in headers.\r\n */\r\n WithinHeaders: 1,\r\n};\n\nexport { AuthMode, addMethods, createAuth, createRetryablePromise, createWaitablePromise, destroy, encode, shuffle, version };\n","import { createAuth, AuthMode, shuffle, addMethods, createWaitablePromise, createRetryablePromise, encode } from '@algolia/client-common';\nimport { createTransporter, CallEnum, createMappedRequestOptions, serializeQueryParameters } from '@algolia/transporter';\nimport { MethodEnum } from '@algolia/requester-common';\nimport { createHmac } from 'crypto';\n\nfunction createBrowsablePromise(options) {\r\n const browse = (data) => {\r\n return options.request(data).then(response => {\r\n /**\r\n * First we send to the developer the\r\n * batch retrieved from the API.\r\n */\r\n if (options.batch !== undefined) {\r\n options.batch(response.hits);\r\n }\r\n /**\r\n * Then, we ask to the browse concrete implementation\r\n * if we should stop browsing. As example, the `browseObjects`\r\n * method will stop if the cursor is not present on the response.\r\n */\r\n if (options.shouldStop(response)) {\r\n return undefined;\r\n }\r\n /**\r\n * Finally, if the response contains a cursor, we browse to the next\r\n * batch using that same cursor. Otherwise, we just use the traditional\r\n * browsing using the page element.\r\n */\r\n if (response.cursor) {\r\n return browse({\r\n cursor: response.cursor,\r\n });\r\n }\r\n return browse({\r\n page: (data.page || 0) + 1,\r\n });\r\n });\r\n };\r\n return browse({});\r\n}\n\nconst createSearchClient = options => {\r\n const appId = options.appId;\r\n const auth = createAuth(options.authMode !== undefined ? options.authMode : AuthMode.WithinHeaders, appId, options.apiKey);\r\n const transporter = createTransporter({\r\n hosts: [\r\n { url: `${appId}-dsn.algolia.net`, accept: CallEnum.Read },\r\n { url: `${appId}.algolia.net`, accept: CallEnum.Write },\r\n ].concat(shuffle([\r\n { url: `${appId}-1.algolianet.com` },\r\n { url: `${appId}-2.algolianet.com` },\r\n { url: `${appId}-3.algolianet.com` },\r\n ])),\r\n ...options,\r\n headers: {\r\n ...auth.headers(),\r\n ...{ 'content-type': 'application/x-www-form-urlencoded' },\r\n ...options.headers,\r\n },\r\n queryParameters: {\r\n ...auth.queryParameters(),\r\n ...options.queryParameters,\r\n },\r\n });\r\n const base = {\r\n transporter,\r\n appId,\r\n addAlgoliaAgent(segment, version) {\r\n transporter.userAgent.add({ segment, version });\r\n },\r\n clearCache() {\r\n return Promise.all([\r\n transporter.requestsCache.clear(),\r\n transporter.responsesCache.clear(),\r\n ]).then(() => undefined);\r\n },\r\n };\r\n return addMethods(base, options.methods);\r\n};\n\nfunction createMissingObjectIDError() {\r\n return {\r\n name: 'MissingObjectIDError',\r\n message: 'All objects must have an unique objectID ' +\r\n '(like a primary key) to be valid. ' +\r\n 'Algolia is also able to generate objectIDs ' +\r\n \"automatically but *it's not recommended*. \" +\r\n \"To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option.\",\r\n };\r\n}\n\nfunction createObjectNotFoundError() {\r\n return {\r\n name: 'ObjectNotFoundError',\r\n message: 'Object not found.',\r\n };\r\n}\n\nfunction createValidUntilNotFoundError() {\r\n return {\r\n name: 'ValidUntilNotFoundError',\r\n message: 'ValidUntil not found in given secured api key.',\r\n };\r\n}\n\nconst addApiKey = (base) => {\r\n return (acl, requestOptions) => {\r\n const { queryParameters, ...options } = requestOptions || {};\r\n const data = {\r\n acl,\r\n ...(queryParameters !== undefined ? { queryParameters } : {}),\r\n };\r\n const wait = (response, waitRequestOptions) => {\r\n return createRetryablePromise(retry => {\r\n return getApiKey(base)(response.key, waitRequestOptions).catch((apiError) => {\r\n if (apiError.status !== 404) {\r\n throw apiError;\r\n }\r\n return retry();\r\n });\r\n });\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: '1/keys',\r\n data,\r\n }, options), wait);\r\n };\r\n};\n\nconst assignUserID = (base) => {\r\n return (userID, clusterName, requestOptions) => {\r\n const mappedRequestOptions = createMappedRequestOptions(requestOptions);\r\n // eslint-disable-next-line functional/immutable-data\r\n mappedRequestOptions.queryParameters['X-Algolia-User-ID'] = userID;\r\n return base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: '1/clusters/mapping',\r\n data: { cluster: clusterName },\r\n }, mappedRequestOptions);\r\n };\r\n};\n\nconst assignUserIDs = (base) => {\r\n return (userIDs, clusterName, requestOptions) => {\r\n return base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: '1/clusters/mapping/batch',\r\n data: {\r\n users: userIDs,\r\n cluster: clusterName,\r\n },\r\n }, requestOptions);\r\n };\r\n};\n\nconst clearDictionaryEntries = (base) => {\r\n return (dictionary, requestOptions) => {\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('/1/dictionaries/%s/batch', dictionary),\r\n data: {\r\n clearExistingDictionaryEntries: true,\r\n requests: { action: 'addEntry', body: [] },\r\n },\r\n }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst copyIndex = (base) => {\r\n return (from, to, requestOptions) => {\r\n const wait = (response, waitRequestOptions) => {\r\n return initIndex(base)(from, {\r\n methods: { waitTask },\r\n }).waitTask(response.taskID, waitRequestOptions);\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/operation', from),\r\n data: {\r\n operation: 'copy',\r\n destination: to,\r\n },\r\n }, requestOptions), wait);\r\n };\r\n};\n\nconst copyRules = (base) => {\r\n return (from, to, requestOptions) => {\r\n return copyIndex(base)(from, to, {\r\n ...requestOptions,\r\n scope: [ScopeEnum.Rules],\r\n });\r\n };\r\n};\n\nconst copySettings = (base) => {\r\n return (from, to, requestOptions) => {\r\n return copyIndex(base)(from, to, {\r\n ...requestOptions,\r\n scope: [ScopeEnum.Settings],\r\n });\r\n };\r\n};\n\nconst copySynonyms = (base) => {\r\n return (from, to, requestOptions) => {\r\n return copyIndex(base)(from, to, {\r\n ...requestOptions,\r\n scope: [ScopeEnum.Synonyms],\r\n });\r\n };\r\n};\n\nconst customRequest = (base) => {\r\n return (request, requestOptions) => {\r\n if (request.method === MethodEnum.Get) {\r\n return base.transporter.read(request, requestOptions);\r\n }\r\n return base.transporter.write(request, requestOptions);\r\n };\r\n};\n\nconst deleteApiKey = (base) => {\r\n return (apiKey, requestOptions) => {\r\n const wait = (_, waitRequestOptions) => {\r\n return createRetryablePromise(retry => {\r\n return getApiKey(base)(apiKey, waitRequestOptions)\r\n .then(retry)\r\n .catch((apiError) => {\r\n if (apiError.status !== 404) {\r\n throw apiError;\r\n }\r\n });\r\n });\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Delete,\r\n path: encode('1/keys/%s', apiKey),\r\n }, requestOptions), wait);\r\n };\r\n};\n\nconst deleteDictionaryEntries = (base) => {\r\n return (dictionary, objectIDs, requestOptions) => {\r\n const requests = objectIDs.map(objectID => ({\r\n action: 'deleteEntry',\r\n body: { objectID },\r\n }));\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('/1/dictionaries/%s/batch', dictionary),\r\n data: { clearExistingDictionaryEntries: false, requests },\r\n }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst generateSecuredApiKey = () => {\r\n return (parentApiKey, restrictions) => {\r\n const queryParameters = serializeQueryParameters(restrictions);\r\n const securedKey = createHmac('sha256', parentApiKey)\r\n .update(queryParameters)\r\n .digest('hex');\r\n return Buffer.from(securedKey + queryParameters).toString('base64');\r\n };\r\n};\n\nconst getApiKey = (base) => {\r\n return (apiKey, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/keys/%s', apiKey),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getAppTask = (base) => {\r\n return (taskID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/task/%s', taskID.toString()),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getDictionarySettings = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '/1/dictionaries/*/settings',\r\n }, requestOptions);\r\n };\r\n};\n\nconst getLogs = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/logs',\r\n }, requestOptions);\r\n };\r\n};\n\nconst getSecuredApiKeyRemainingValidity = () => {\r\n return (securedApiKey) => {\r\n const decodedString = Buffer.from(securedApiKey, 'base64').toString('ascii');\r\n const regex = /validUntil=(\\d+)/;\r\n const match = decodedString.match(regex);\r\n if (match === null) {\r\n throw createValidUntilNotFoundError();\r\n }\r\n return parseInt(match[1], 10) - Math.round(new Date().getTime() / 1000);\r\n };\r\n};\n\nconst getTopUserIDs = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/clusters/mapping/top',\r\n }, requestOptions);\r\n };\r\n};\n\nconst getUserID = (base) => {\r\n return (userID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/clusters/mapping/%s', userID),\r\n }, requestOptions);\r\n };\r\n};\n\nconst hasPendingMappings = (base) => {\r\n return (requestOptions) => {\r\n const { retrieveMappings, ...options } = requestOptions || {};\r\n if (retrieveMappings === true) {\r\n // eslint-disable-next-line functional/immutable-data\r\n options.getClusters = true;\r\n }\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/clusters/mapping/pending',\r\n }, options);\r\n };\r\n};\n\nconst initIndex = (base) => {\r\n return (indexName, options = {}) => {\r\n const searchIndex = {\r\n transporter: base.transporter,\r\n appId: base.appId,\r\n indexName,\r\n };\r\n return addMethods(searchIndex, options.methods);\r\n };\r\n};\n\nconst listApiKeys = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/keys',\r\n }, requestOptions);\r\n };\r\n};\n\nconst listClusters = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/clusters',\r\n }, requestOptions);\r\n };\r\n};\n\nconst listIndices = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/indexes',\r\n }, requestOptions);\r\n };\r\n};\n\nconst listUserIDs = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/clusters/mapping',\r\n }, requestOptions);\r\n };\r\n};\n\nconst moveIndex = (base) => {\r\n return (from, to, requestOptions) => {\r\n const wait = (response, waitRequestOptions) => {\r\n return initIndex(base)(from, {\r\n methods: { waitTask },\r\n }).waitTask(response.taskID, waitRequestOptions);\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/operation', from),\r\n data: {\r\n operation: 'move',\r\n destination: to,\r\n },\r\n }, requestOptions), wait);\r\n };\r\n};\n\nconst multipleBatch = (base) => {\r\n return (requests, requestOptions) => {\r\n const wait = (response, waitRequestOptions) => {\r\n return Promise.all(Object.keys(response.taskID).map(indexName => {\r\n return initIndex(base)(indexName, {\r\n methods: { waitTask },\r\n }).waitTask(response.taskID[indexName], waitRequestOptions);\r\n }));\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: '1/indexes/*/batch',\r\n data: {\r\n requests,\r\n },\r\n }, requestOptions), wait);\r\n };\r\n};\n\nconst multipleGetObjects = (base) => {\r\n return (requests, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: '1/indexes/*/objects',\r\n data: {\r\n requests,\r\n },\r\n }, requestOptions);\r\n };\r\n};\n\nconst multipleQueries = (base) => {\r\n return (queries, requestOptions) => {\r\n const requests = queries.map(query => {\r\n return {\r\n ...query,\r\n params: serializeQueryParameters(query.params || {}),\r\n };\r\n });\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: '1/indexes/*/queries',\r\n data: {\r\n requests,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst multipleSearchForFacetValues = (base) => {\r\n return (queries, requestOptions) => {\r\n return Promise.all(queries.map(query => {\r\n const { facetName, facetQuery, ...params } = query.params;\r\n return initIndex(base)(query.indexName, {\r\n methods: { searchForFacetValues },\r\n }).searchForFacetValues(facetName, facetQuery, {\r\n ...requestOptions,\r\n ...params,\r\n });\r\n }));\r\n };\r\n};\n\nconst removeUserID = (base) => {\r\n return (userID, requestOptions) => {\r\n const mappedRequestOptions = createMappedRequestOptions(requestOptions);\r\n // eslint-disable-next-line functional/immutable-data\r\n mappedRequestOptions.queryParameters['X-Algolia-User-ID'] = userID;\r\n return base.transporter.write({\r\n method: MethodEnum.Delete,\r\n path: '1/clusters/mapping',\r\n }, mappedRequestOptions);\r\n };\r\n};\n\nconst replaceDictionaryEntries = (base) => {\r\n return (dictionary, entries, requestOptions) => {\r\n const requests = entries.map(entry => ({\r\n action: 'addEntry',\r\n body: entry,\r\n }));\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('/1/dictionaries/%s/batch', dictionary),\r\n data: { clearExistingDictionaryEntries: true, requests },\r\n }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst restoreApiKey = (base) => {\r\n return (apiKey, requestOptions) => {\r\n const wait = (_, waitRequestOptions) => {\r\n return createRetryablePromise(retry => {\r\n return getApiKey(base)(apiKey, waitRequestOptions).catch((apiError) => {\r\n if (apiError.status !== 404) {\r\n throw apiError;\r\n }\r\n return retry();\r\n });\r\n });\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/keys/%s/restore', apiKey),\r\n }, requestOptions), wait);\r\n };\r\n};\n\nconst saveDictionaryEntries = (base) => {\r\n return (dictionary, entries, requestOptions) => {\r\n const requests = entries.map(entry => ({\r\n action: 'addEntry',\r\n body: entry,\r\n }));\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('/1/dictionaries/%s/batch', dictionary),\r\n data: { clearExistingDictionaryEntries: false, requests },\r\n }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst searchDictionaryEntries = (base) => {\r\n return (dictionary, query, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('/1/dictionaries/%s/search', dictionary),\r\n data: {\r\n query,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst searchUserIDs = (base) => {\r\n return (query, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: '1/clusters/mapping/search',\r\n data: {\r\n query,\r\n },\r\n }, requestOptions);\r\n };\r\n};\n\nconst setDictionarySettings = (base) => {\r\n return (settings, requestOptions) => {\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Put,\r\n path: '/1/dictionaries/*/settings',\r\n data: settings,\r\n }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst updateApiKey = (base) => {\r\n return (apiKey, requestOptions) => {\r\n const updatedFields = Object.assign({}, requestOptions);\r\n const { queryParameters, ...options } = requestOptions || {};\r\n const data = queryParameters ? { queryParameters } : {};\r\n const apiKeyFields = [\r\n 'acl',\r\n 'indexes',\r\n 'referers',\r\n 'restrictSources',\r\n 'queryParameters',\r\n 'description',\r\n 'maxQueriesPerIPPerHour',\r\n 'maxHitsPerQuery',\r\n ];\r\n // Check that all the fields retrieved through getApiKey are the same as the ones we wanted to update\r\n const hasChanged = (getApiKeyResponse) => {\r\n return Object.keys(updatedFields)\r\n .filter((updatedField) => apiKeyFields.indexOf(updatedField) !== -1)\r\n .every(updatedField => {\r\n // If the field is an array, we need to check that they are the same length and that all the values are the same\r\n if (Array.isArray(getApiKeyResponse[updatedField]) &&\r\n Array.isArray(updatedFields[updatedField])) {\r\n const getApiKeyResponseArray = getApiKeyResponse[updatedField];\r\n return (getApiKeyResponseArray.length === updatedFields[updatedField].length &&\r\n getApiKeyResponseArray.every((value, index) => value === updatedFields[updatedField][index]));\r\n }\r\n else {\r\n return getApiKeyResponse[updatedField] === updatedFields[updatedField];\r\n }\r\n });\r\n };\r\n const wait = (_, waitRequestOptions) => createRetryablePromise(retry => {\r\n return getApiKey(base)(apiKey, waitRequestOptions).then(getApiKeyResponse => {\r\n return hasChanged(getApiKeyResponse) ? Promise.resolve() : retry();\r\n });\r\n });\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Put,\r\n path: encode('1/keys/%s', apiKey),\r\n data,\r\n }, options), wait);\r\n };\r\n};\n\nconst waitAppTask = (base) => {\r\n return (taskID, requestOptions) => {\r\n return createRetryablePromise(retry => {\r\n return getAppTask(base)(taskID, requestOptions).then(response => {\r\n return response.status !== 'published' ? retry() : undefined;\r\n });\r\n });\r\n };\r\n};\n\nconst batch = (base) => {\r\n return (requests, requestOptions) => {\r\n const wait = (response, waitRequestOptions) => {\r\n return waitTask(base)(response.taskID, waitRequestOptions);\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/batch', base.indexName),\r\n data: {\r\n requests,\r\n },\r\n }, requestOptions), wait);\r\n };\r\n};\n\nconst browseObjects = (base) => {\r\n return (requestOptions) => {\r\n return createBrowsablePromise({\r\n shouldStop: response => response.cursor === undefined,\r\n ...requestOptions,\r\n request: (data) => base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/browse', base.indexName),\r\n data,\r\n }, requestOptions),\r\n });\r\n };\r\n};\n\nconst browseRules = (base) => {\r\n return (requestOptions) => {\r\n const options = {\r\n hitsPerPage: 1000,\r\n ...requestOptions,\r\n };\r\n return createBrowsablePromise({\r\n shouldStop: response => response.hits.length < options.hitsPerPage,\r\n ...options,\r\n request(data) {\r\n return searchRules(base)('', { ...options, ...data }).then((response) => {\r\n return {\r\n ...response,\r\n hits: response.hits.map(rule => {\r\n // eslint-disable-next-line functional/immutable-data,no-param-reassign\r\n delete rule._highlightResult;\r\n return rule;\r\n }),\r\n };\r\n });\r\n },\r\n });\r\n };\r\n};\n\nconst browseSynonyms = (base) => {\r\n return (requestOptions) => {\r\n const options = {\r\n hitsPerPage: 1000,\r\n ...requestOptions,\r\n };\r\n return createBrowsablePromise({\r\n shouldStop: response => response.hits.length < options.hitsPerPage,\r\n ...options,\r\n request(data) {\r\n return searchSynonyms(base)('', { ...options, ...data }).then((response) => {\r\n return {\r\n ...response,\r\n hits: response.hits.map(synonym => {\r\n // eslint-disable-next-line functional/immutable-data,no-param-reassign\r\n delete synonym._highlightResult;\r\n return synonym;\r\n }),\r\n };\r\n });\r\n },\r\n });\r\n };\r\n};\n\nconst chunkedBatch = (base) => {\r\n return (bodies, action, requestOptions) => {\r\n const { batchSize, ...options } = requestOptions || {};\r\n const response = {\r\n taskIDs: [],\r\n objectIDs: [],\r\n };\r\n const forEachBatch = (lastIndex = 0) => {\r\n // eslint-disable-next-line functional/prefer-readonly-type\r\n const bodiesChunk = [];\r\n // eslint-disable-next-line functional/no-let\r\n let index;\r\n /* eslint-disable-next-line functional/no-loop-statement */\r\n for (index = lastIndex; index < bodies.length; index++) {\r\n // eslint-disable-next-line functional/immutable-data\r\n bodiesChunk.push(bodies[index]);\r\n if (bodiesChunk.length === (batchSize || 1000)) {\r\n break;\r\n }\r\n }\r\n if (bodiesChunk.length === 0) {\r\n return Promise.resolve(response);\r\n }\r\n return batch(base)(bodiesChunk.map(body => {\r\n return {\r\n action,\r\n body,\r\n };\r\n }), options).then(res => {\r\n response.objectIDs = response.objectIDs.concat(res.objectIDs); // eslint-disable-line functional/immutable-data\r\n response.taskIDs.push(res.taskID); // eslint-disable-line functional/immutable-data\r\n index++;\r\n return forEachBatch(index);\r\n });\r\n };\r\n return createWaitablePromise(forEachBatch(), (chunkedBatchResponse, waitRequestOptions) => {\r\n return Promise.all(chunkedBatchResponse.taskIDs.map(taskID => {\r\n return waitTask(base)(taskID, waitRequestOptions);\r\n }));\r\n });\r\n };\r\n};\n\nconst clearObjects = (base) => {\r\n return (requestOptions) => {\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/clear', base.indexName),\r\n }, requestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst clearRules = (base) => {\r\n return (requestOptions) => {\r\n const { forwardToReplicas, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/rules/clear', base.indexName),\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst clearSynonyms = (base) => {\r\n return (requestOptions) => {\r\n const { forwardToReplicas, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/synonyms/clear', base.indexName),\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst deleteBy = (base) => {\r\n return (filters, requestOptions) => {\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/deleteByQuery', base.indexName),\r\n data: filters,\r\n }, requestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst deleteIndex = (base) => {\r\n return (requestOptions) => {\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Delete,\r\n path: encode('1/indexes/%s', base.indexName),\r\n }, requestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst deleteObject = (base) => {\r\n return (objectID, requestOptions) => {\r\n return createWaitablePromise(deleteObjects(base)([objectID], requestOptions).then(response => {\r\n return { taskID: response.taskIDs[0] };\r\n }), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst deleteObjects = (base) => {\r\n return (objectIDs, requestOptions) => {\r\n const objects = objectIDs.map(objectID => {\r\n return { objectID };\r\n });\r\n return chunkedBatch(base)(objects, BatchActionEnum.DeleteObject, requestOptions);\r\n };\r\n};\n\nconst deleteRule = (base) => {\r\n return (objectID, requestOptions) => {\r\n const { forwardToReplicas, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Delete,\r\n path: encode('1/indexes/%s/rules/%s', base.indexName, objectID),\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst deleteSynonym = (base) => {\r\n return (objectID, requestOptions) => {\r\n const { forwardToReplicas, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Delete,\r\n path: encode('1/indexes/%s/synonyms/%s', base.indexName, objectID),\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst exists = (base) => {\r\n return (requestOptions) => {\r\n return getSettings(base)(requestOptions)\r\n .then(() => true)\r\n .catch(error => {\r\n if (error.status !== 404) {\r\n throw error;\r\n }\r\n return false;\r\n });\r\n };\r\n};\n\nconst findAnswers = (base) => {\r\n return (query, queryLanguages, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/answers/%s/prediction', base.indexName),\r\n data: {\r\n query,\r\n queryLanguages,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst findObject = (base) => {\r\n return (callback, requestOptions) => {\r\n const { query, paginate, ...options } = requestOptions || {};\r\n // eslint-disable-next-line functional/no-let\r\n let page = 0;\r\n const forEachPage = () => {\r\n return search(base)(query || '', { ...options, page }).then(result => {\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (const [position, hit] of Object.entries(result.hits)) {\r\n // eslint-disable-next-line promise/no-callback-in-promise\r\n if (callback(hit)) {\r\n return {\r\n object: hit,\r\n position: parseInt(position, 10),\r\n page,\r\n };\r\n }\r\n }\r\n page++;\r\n // paginate if option was set and has next page\r\n if (paginate === false || page >= result.nbPages) {\r\n throw createObjectNotFoundError();\r\n }\r\n return forEachPage();\r\n });\r\n };\r\n return forEachPage();\r\n };\r\n};\n\nconst getObject = (base) => {\r\n return (objectID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/indexes/%s/%s', base.indexName, objectID),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getObjectPosition = () => {\r\n return (searchResponse, objectID) => {\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (const [position, hit] of Object.entries(searchResponse.hits)) {\r\n if (hit.objectID === objectID) {\r\n return parseInt(position, 10);\r\n }\r\n }\r\n return -1;\r\n };\r\n};\n\nconst getObjects = (base) => {\r\n return (objectIDs, requestOptions) => {\r\n const { attributesToRetrieve, ...options } = requestOptions || {};\r\n const requests = objectIDs.map(objectID => {\r\n return {\r\n indexName: base.indexName,\r\n objectID,\r\n ...(attributesToRetrieve ? { attributesToRetrieve } : {}),\r\n };\r\n });\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: '1/indexes/*/objects',\r\n data: {\r\n requests,\r\n },\r\n }, options);\r\n };\r\n};\n\nconst getRule = (base) => {\r\n return (objectID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/indexes/%s/rules/%s', base.indexName, objectID),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getSettings = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/indexes/%s/settings', base.indexName),\r\n data: {\r\n getVersion: 2,\r\n },\r\n }, requestOptions);\r\n };\r\n};\n\nconst getSynonym = (base) => {\r\n return (objectID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode(`1/indexes/%s/synonyms/%s`, base.indexName, objectID),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getTask = (base) => {\r\n return (taskID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/indexes/%s/task/%s', base.indexName, taskID.toString()),\r\n }, requestOptions);\r\n };\r\n};\n\nconst partialUpdateObject = (base) => {\r\n return (object, requestOptions) => {\r\n return createWaitablePromise(partialUpdateObjects(base)([object], requestOptions).then(response => {\r\n return {\r\n objectID: response.objectIDs[0],\r\n taskID: response.taskIDs[0],\r\n };\r\n }), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst partialUpdateObjects = (base) => {\r\n return (objects, requestOptions) => {\r\n const { createIfNotExists, ...options } = requestOptions || {};\r\n const action = createIfNotExists\r\n ? BatchActionEnum.PartialUpdateObject\r\n : BatchActionEnum.PartialUpdateObjectNoCreate;\r\n return chunkedBatch(base)(objects, action, options);\r\n };\r\n};\n\nconst replaceAllObjects = (base) => {\r\n return (objects, requestOptions) => {\r\n const { safe, autoGenerateObjectIDIfNotExist, batchSize, ...options } = requestOptions || {};\r\n const operation = (from, to, type, operationRequestOptions) => {\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/operation', from),\r\n data: {\r\n operation: type,\r\n destination: to,\r\n },\r\n }, operationRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n const randomSuffix = Math.random()\r\n .toString(36)\r\n .substring(7);\r\n const temporaryIndexName = `${base.indexName}_tmp_${randomSuffix}`;\r\n const saveObjectsInTemporary = saveObjects({\r\n appId: base.appId,\r\n transporter: base.transporter,\r\n indexName: temporaryIndexName,\r\n });\r\n // @ts-ignore\r\n // eslint-disable-next-line prefer-const, functional/no-let, functional/prefer-readonly-type\r\n let responses = [];\r\n const copyWaitablePromise = operation(base.indexName, temporaryIndexName, 'copy', {\r\n ...options,\r\n scope: ['settings', 'synonyms', 'rules'],\r\n });\r\n // eslint-disable-next-line functional/immutable-data\r\n responses.push(copyWaitablePromise);\r\n const result = (safe\r\n ? copyWaitablePromise.wait(options)\r\n : copyWaitablePromise)\r\n .then(() => {\r\n const saveObjectsWaitablePromise = saveObjectsInTemporary(objects, {\r\n ...options,\r\n autoGenerateObjectIDIfNotExist,\r\n batchSize,\r\n });\r\n // eslint-disable-next-line functional/immutable-data\r\n responses.push(saveObjectsWaitablePromise);\r\n return safe ? saveObjectsWaitablePromise.wait(options) : saveObjectsWaitablePromise;\r\n })\r\n .then(() => {\r\n const moveWaitablePromise = operation(temporaryIndexName, base.indexName, 'move', options);\r\n // eslint-disable-next-line functional/immutable-data\r\n responses.push(moveWaitablePromise);\r\n return safe ? moveWaitablePromise.wait(options) : moveWaitablePromise;\r\n })\r\n .then(() => Promise.all(responses))\r\n .then(([copyResponse, saveObjectsResponse, moveResponse]) => {\r\n return {\r\n objectIDs: saveObjectsResponse.objectIDs,\r\n taskIDs: [copyResponse.taskID, ...saveObjectsResponse.taskIDs, moveResponse.taskID],\r\n };\r\n });\r\n return createWaitablePromise(result, (_, waitRequestOptions) => {\r\n return Promise.all(responses.map(response => response.wait(waitRequestOptions)));\r\n });\r\n };\r\n};\n\nconst replaceAllRules = (base) => {\r\n return (rules, requestOptions) => {\r\n return saveRules(base)(rules, {\r\n ...requestOptions,\r\n clearExistingRules: true,\r\n });\r\n };\r\n};\n\nconst replaceAllSynonyms = (base) => {\r\n return (synonyms, requestOptions) => {\r\n return saveSynonyms(base)(synonyms, {\r\n ...requestOptions,\r\n clearExistingSynonyms: true,\r\n });\r\n };\r\n};\n\nconst saveObject = (base) => {\r\n return (object, requestOptions) => {\r\n return createWaitablePromise(saveObjects(base)([object], requestOptions).then(response => {\r\n return {\r\n objectID: response.objectIDs[0],\r\n taskID: response.taskIDs[0],\r\n };\r\n }), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst saveObjects = (base) => {\r\n return (objects, requestOptions) => {\r\n const { autoGenerateObjectIDIfNotExist, ...options } = requestOptions || {};\r\n const action = autoGenerateObjectIDIfNotExist\r\n ? BatchActionEnum.AddObject\r\n : BatchActionEnum.UpdateObject;\r\n if (action === BatchActionEnum.UpdateObject) {\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (const object of objects) {\r\n if (object.objectID === undefined) {\r\n return createWaitablePromise(Promise.reject(createMissingObjectIDError()));\r\n }\r\n }\r\n }\r\n return chunkedBatch(base)(objects, action, options);\r\n };\r\n};\n\nconst saveRule = (base) => {\r\n return (rule, requestOptions) => {\r\n return saveRules(base)([rule], requestOptions);\r\n };\r\n};\n\nconst saveRules = (base) => {\r\n return (rules, requestOptions) => {\r\n const { forwardToReplicas, clearExistingRules, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n if (clearExistingRules) {\r\n mappedRequestOptions.queryParameters.clearExistingRules = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/rules/batch', base.indexName),\r\n data: rules,\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst saveSynonym = (base) => {\r\n return (synonym, requestOptions) => {\r\n return saveSynonyms(base)([synonym], requestOptions);\r\n };\r\n};\n\nconst saveSynonyms = (base) => {\r\n return (synonyms, requestOptions) => {\r\n const { forwardToReplicas, clearExistingSynonyms, replaceExistingSynonyms, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n if (replaceExistingSynonyms || clearExistingSynonyms) {\r\n mappedRequestOptions.queryParameters.replaceExistingSynonyms = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/synonyms/batch', base.indexName),\r\n data: synonyms,\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst search = (base) => {\r\n return (query, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/query', base.indexName),\r\n data: {\r\n query,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst searchForFacetValues = (base) => {\r\n return (facetName, facetQuery, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/facets/%s/query', base.indexName, facetName),\r\n data: {\r\n facetQuery,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst searchRules = (base) => {\r\n return (query, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/rules/search', base.indexName),\r\n data: {\r\n query,\r\n },\r\n }, requestOptions);\r\n };\r\n};\n\nconst searchSynonyms = (base) => {\r\n return (query, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/synonyms/search', base.indexName),\r\n data: {\r\n query,\r\n },\r\n }, requestOptions);\r\n };\r\n};\n\nconst setSettings = (base) => {\r\n return (settings, requestOptions) => {\r\n const { forwardToReplicas, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Put,\r\n path: encode('1/indexes/%s/settings', base.indexName),\r\n data: settings,\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst waitTask = (base) => {\r\n return (taskID, requestOptions) => {\r\n return createRetryablePromise(retry => {\r\n return getTask(base)(taskID, requestOptions).then(response => {\r\n return response.status !== 'published' ? retry() : undefined;\r\n });\r\n });\r\n };\r\n};\n\nconst ApiKeyACLEnum = {\r\n AddObject: 'addObject',\r\n Analytics: 'analytics',\r\n Browser: 'browse',\r\n DeleteIndex: 'deleteIndex',\r\n DeleteObject: 'deleteObject',\r\n EditSettings: 'editSettings',\r\n Inference: 'inference',\r\n ListIndexes: 'listIndexes',\r\n Logs: 'logs',\r\n Personalization: 'personalization',\r\n Recommendation: 'recommendation',\r\n Search: 'search',\r\n SeeUnretrievableAttributes: 'seeUnretrievableAttributes',\r\n Settings: 'settings',\r\n Usage: 'usage',\r\n};\n\nconst BatchActionEnum = {\r\n AddObject: 'addObject',\r\n UpdateObject: 'updateObject',\r\n PartialUpdateObject: 'partialUpdateObject',\r\n PartialUpdateObjectNoCreate: 'partialUpdateObjectNoCreate',\r\n DeleteObject: 'deleteObject',\r\n DeleteIndex: 'delete',\r\n ClearIndex: 'clear',\r\n};\n\nconst ScopeEnum = {\r\n Settings: 'settings',\r\n Synonyms: 'synonyms',\r\n Rules: 'rules',\r\n};\n\nconst StrategyEnum = {\r\n None: 'none',\r\n StopIfEnoughMatches: 'stopIfEnoughMatches',\r\n};\n\nconst SynonymEnum = {\r\n Synonym: 'synonym',\r\n OneWaySynonym: 'oneWaySynonym',\r\n AltCorrection1: 'altCorrection1',\r\n AltCorrection2: 'altCorrection2',\r\n Placeholder: 'placeholder',\r\n};\n\nexport { ApiKeyACLEnum, BatchActionEnum, ScopeEnum, StrategyEnum, SynonymEnum, addApiKey, assignUserID, assignUserIDs, batch, browseObjects, browseRules, browseSynonyms, chunkedBatch, clearDictionaryEntries, clearObjects, clearRules, clearSynonyms, copyIndex, copyRules, copySettings, copySynonyms, createBrowsablePromise, createMissingObjectIDError, createObjectNotFoundError, createSearchClient, createValidUntilNotFoundError, customRequest, deleteApiKey, deleteBy, deleteDictionaryEntries, deleteIndex, deleteObject, deleteObjects, deleteRule, deleteSynonym, exists, findAnswers, findObject, generateSecuredApiKey, getApiKey, getAppTask, getDictionarySettings, getLogs, getObject, getObjectPosition, getObjects, getRule, getSecuredApiKeyRemainingValidity, getSettings, getSynonym, getTask, getTopUserIDs, getUserID, hasPendingMappings, initIndex, listApiKeys, listClusters, listIndices, listUserIDs, moveIndex, multipleBatch, multipleGetObjects, multipleQueries, multipleSearchForFacetValues, partialUpdateObject, partialUpdateObjects, removeUserID, replaceAllObjects, replaceAllRules, replaceAllSynonyms, replaceDictionaryEntries, restoreApiKey, saveDictionaryEntries, saveObject, saveObjects, saveRule, saveRules, saveSynonym, saveSynonyms, search, searchDictionaryEntries, searchForFacetValues, searchRules, searchSynonyms, searchUserIDs, setDictionarySettings, setSettings, updateApiKey, waitAppTask, waitTask };\n","function createNullLogger() {\r\n return {\r\n debug(_message, _args) {\r\n return Promise.resolve();\r\n },\r\n info(_message, _args) {\r\n return Promise.resolve();\r\n },\r\n error(_message, _args) {\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nconst LogLevelEnum = {\r\n Debug: 1,\r\n Info: 2,\r\n Error: 3,\r\n};\n\nexport { LogLevelEnum, createNullLogger };\n","function createAuth(authMode, appId, apiKey) {\r\n const credentials = {\r\n 'x-algolia-api-key': apiKey,\r\n 'x-algolia-application-id': appId,\r\n };\r\n return {\r\n headers() {\r\n return authMode === AuthMode.WithinHeaders ? credentials : {};\r\n },\r\n queryParameters() {\r\n return authMode === AuthMode.WithinQueryParameters ? credentials : {};\r\n },\r\n };\r\n}\n\nfunction createRetryablePromise(callback) {\r\n let retriesCount = 0; // eslint-disable-line functional/no-let\r\n const retry = () => {\r\n retriesCount++;\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve(callback(retry));\r\n }, Math.min(100 * retriesCount, 1000));\r\n });\r\n };\r\n return callback(retry);\r\n}\n\nfunction createWaitablePromise(promise, wait = (_response, _requestOptions) => {\r\n return Promise.resolve();\r\n}) {\r\n // eslint-disable-next-line functional/immutable-data\r\n return Object.assign(promise, {\r\n wait(requestOptions) {\r\n return createWaitablePromise(promise\r\n .then(response => Promise.all([wait(response, requestOptions), response]))\r\n .then(promiseResults => promiseResults[1]));\r\n },\r\n });\r\n}\n\n// eslint-disable-next-line functional/prefer-readonly-type\r\nfunction shuffle(array) {\r\n let c = array.length - 1; // eslint-disable-line functional/no-let\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (c; c > 0; c--) {\r\n const b = Math.floor(Math.random() * (c + 1));\r\n const a = array[c];\r\n array[c] = array[b]; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n array[b] = a; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n }\r\n return array;\r\n}\r\nfunction addMethods(base, methods) {\r\n if (!methods) {\r\n return base;\r\n }\r\n Object.keys(methods).forEach(key => {\r\n // eslint-disable-next-line functional/immutable-data, no-param-reassign\r\n base[key] = methods[key](base);\r\n });\r\n return base;\r\n}\r\nfunction encode(format, ...args) {\r\n // eslint-disable-next-line functional/no-let\r\n let i = 0;\r\n return format.replace(/%s/g, () => encodeURIComponent(args[i++]));\r\n}\n\nconst version = '4.24.0';\n\nconst destroy = (base) => {\r\n return () => {\r\n return base.transporter.requester.destroy();\r\n };\r\n};\n\nconst AuthMode = {\r\n /**\r\n * If auth credentials should be in query parameters.\r\n */\r\n WithinQueryParameters: 0,\r\n /**\r\n * If auth credentials should be in headers.\r\n */\r\n WithinHeaders: 1,\r\n};\n\nexport { AuthMode, addMethods, createAuth, createRetryablePromise, createWaitablePromise, destroy, encode, shuffle, version };\n","import * as http from 'http';\nimport { Agent } from 'http';\nimport * as https from 'https';\nimport { Agent as Agent$1 } from 'https';\nimport { parse } from 'url';\n\n/* eslint functional/prefer-readonly-type: 0 */\r\nconst agentOptions = { keepAlive: true };\r\nconst defaultHttpAgent = new Agent(agentOptions);\r\nconst defaultHttpsAgent = new Agent$1(agentOptions);\r\nfunction createNodeHttpRequester({ agent: userGlobalAgent, httpAgent: userHttpAgent, httpsAgent: userHttpsAgent, requesterOptions = {}, } = {}) {\r\n const httpAgent = userHttpAgent || userGlobalAgent || defaultHttpAgent;\r\n const httpsAgent = userHttpsAgent || userGlobalAgent || defaultHttpsAgent;\r\n return {\r\n send(request) {\r\n return new Promise(resolve => {\r\n const url = parse(request.url);\r\n const path = url.query === null ? url.pathname : `${url.pathname}?${url.query}`;\r\n const options = {\r\n ...requesterOptions,\r\n agent: url.protocol === 'https:' ? httpsAgent : httpAgent,\r\n hostname: url.hostname,\r\n path,\r\n method: request.method,\r\n headers: {\r\n ...(requesterOptions && requesterOptions.headers ? requesterOptions.headers : {}),\r\n ...request.headers,\r\n },\r\n ...(url.port !== undefined ? { port: url.port || '' } : {}),\r\n };\r\n const req = (url.protocol === 'https:' ? https : http).request(options, response => {\r\n // eslint-disable-next-line functional/no-let\r\n let contentBuffers = [];\r\n response.on('data', chunk => {\r\n contentBuffers = contentBuffers.concat(chunk);\r\n });\r\n response.on('end', () => {\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n clearTimeout(connectTimeout);\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n clearTimeout(responseTimeout);\r\n resolve({\r\n status: response.statusCode || 0,\r\n content: Buffer.concat(contentBuffers).toString(),\r\n isTimedOut: false,\r\n });\r\n });\r\n });\r\n const createTimeout = (timeout, content) => {\r\n return setTimeout(() => {\r\n req.abort();\r\n resolve({\r\n status: 0,\r\n content,\r\n isTimedOut: true,\r\n });\r\n }, timeout * 1000);\r\n };\r\n const connectTimeout = createTimeout(request.connectTimeout, 'Connection timeout');\r\n // eslint-disable-next-line functional/no-let\r\n let responseTimeout;\r\n req.on('error', error => {\r\n clearTimeout(connectTimeout);\r\n clearTimeout(responseTimeout);\r\n resolve({ status: 0, content: error.message, isTimedOut: false });\r\n });\r\n req.once('response', () => {\r\n clearTimeout(connectTimeout);\r\n responseTimeout = createTimeout(request.responseTimeout, 'Socket timeout');\r\n });\r\n if (request.data !== undefined) {\r\n req.write(request.data);\r\n }\r\n req.end();\r\n });\r\n },\r\n destroy() {\r\n httpAgent.destroy();\r\n httpsAgent.destroy();\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nexport { createNodeHttpRequester };\n","'use strict';\n\nvar cacheCommon = require('@algolia/cache-common');\nvar cacheInMemory = require('@algolia/cache-in-memory');\nvar clientCommon = require('@algolia/client-common');\nvar loggerCommon = require('@algolia/logger-common');\nvar requesterNodeHttp = require('@algolia/requester-node-http');\nvar transporter = require('@algolia/transporter');\nvar requesterCommon = require('@algolia/requester-common');\n\nconst createRecommendClient = options => {\r\n const appId = options.appId;\r\n const auth = clientCommon.createAuth(options.authMode !== undefined ? options.authMode : clientCommon.AuthMode.WithinHeaders, appId, options.apiKey);\r\n const transporter$1 = transporter.createTransporter({\r\n hosts: [\r\n { url: `${appId}-dsn.algolia.net`, accept: transporter.CallEnum.Read },\r\n { url: `${appId}.algolia.net`, accept: transporter.CallEnum.Write },\r\n ].concat(clientCommon.shuffle([\r\n { url: `${appId}-1.algolianet.com` },\r\n { url: `${appId}-2.algolianet.com` },\r\n { url: `${appId}-3.algolianet.com` },\r\n ])),\r\n ...options,\r\n headers: {\r\n ...auth.headers(),\r\n ...{ 'content-type': 'application/x-www-form-urlencoded' },\r\n ...options.headers,\r\n },\r\n queryParameters: {\r\n ...auth.queryParameters(),\r\n ...options.queryParameters,\r\n },\r\n });\r\n const base = {\r\n transporter: transporter$1,\r\n appId,\r\n addAlgoliaAgent(segment, version) {\r\n transporter$1.userAgent.add({ segment, version });\r\n },\r\n clearCache() {\r\n return Promise.all([\r\n transporter$1.requestsCache.clear(),\r\n transporter$1.responsesCache.clear(),\r\n ]).then(() => undefined);\r\n },\r\n };\r\n return clientCommon.addMethods(base, options.methods);\r\n};\n\nconst getRecommendations = base => {\r\n return (queries, requestOptions) => {\r\n const requests = queries.map(query => ({\r\n ...query,\r\n // The `threshold` param is required by the endpoint to make it easier\r\n // to provide a default value later, so we default it in the client\r\n // so that users don't have to provide a value.\r\n threshold: query.threshold || 0,\r\n }));\r\n return base.transporter.read({\r\n method: requesterCommon.MethodEnum.Post,\r\n path: '1/indexes/*/recommendations',\r\n data: {\r\n requests,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst getFrequentlyBoughtTogether = base => {\r\n return (queries, requestOptions) => {\r\n return getRecommendations(base)(queries.map(query => ({\r\n ...query,\r\n fallbackParameters: {},\r\n model: 'bought-together',\r\n })), requestOptions);\r\n };\r\n};\n\nconst getRelatedProducts = base => {\r\n return (queries, requestOptions) => {\r\n return getRecommendations(base)(queries.map(query => ({\r\n ...query,\r\n model: 'related-products',\r\n })), requestOptions);\r\n };\r\n};\n\nconst getTrendingFacets = base => {\r\n return (queries, requestOptions) => {\r\n const requests = queries.map(query => ({\r\n ...query,\r\n model: 'trending-facets',\r\n // The `threshold` param is required by the endpoint to make it easier\r\n // to provide a default value later, so we default it in the client\r\n // so that users don't have to provide a value.\r\n threshold: query.threshold || 0,\r\n }));\r\n return base.transporter.read({\r\n method: requesterCommon.MethodEnum.Post,\r\n path: '1/indexes/*/recommendations',\r\n data: {\r\n requests,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst getTrendingItems = base => {\r\n return (queries, requestOptions) => {\r\n const requests = queries.map(query => ({\r\n ...query,\r\n model: 'trending-items',\r\n // The `threshold` param is required by the endpoint to make it easier\r\n // to provide a default value later, so we default it in the client\r\n // so that users don't have to provide a value.\r\n threshold: query.threshold || 0,\r\n }));\r\n return base.transporter.read({\r\n method: requesterCommon.MethodEnum.Post,\r\n path: '1/indexes/*/recommendations',\r\n data: {\r\n requests,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst getLookingSimilar = base => {\r\n return (queries, requestOptions) => {\r\n return getRecommendations(base)(queries.map(query => ({\r\n ...query,\r\n model: 'looking-similar',\r\n })), requestOptions);\r\n };\r\n};\n\nconst getRecommendedForYou = base => {\r\n return (queries, requestOptions) => {\r\n const requests = queries.map(query => ({\r\n ...query,\r\n model: 'recommended-for-you',\r\n threshold: query.threshold || 0,\r\n }));\r\n return base.transporter.read({\r\n method: requesterCommon.MethodEnum.Post,\r\n path: '1/indexes/*/recommendations',\r\n data: {\r\n requests,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nfunction recommend(appId, apiKey, options) {\r\n const commonOptions = {\r\n appId,\r\n apiKey,\r\n timeouts: {\r\n connect: 2,\r\n read: 5,\r\n write: 30,\r\n },\r\n requester: requesterNodeHttp.createNodeHttpRequester(),\r\n logger: loggerCommon.createNullLogger(),\r\n responsesCache: cacheCommon.createNullCache(),\r\n requestsCache: cacheCommon.createNullCache(),\r\n hostsCache: cacheInMemory.createInMemoryCache(),\r\n userAgent: transporter.createUserAgent(clientCommon.version)\r\n .add({ segment: 'Recommend', version: clientCommon.version })\r\n .add({ segment: 'Node.js', version: process.versions.node }),\r\n };\r\n return createRecommendClient({\r\n ...commonOptions,\r\n ...options,\r\n methods: {\r\n destroy: clientCommon.destroy,\r\n getFrequentlyBoughtTogether,\r\n getRecommendations,\r\n getRelatedProducts,\r\n getTrendingFacets,\r\n getTrendingItems,\r\n getLookingSimilar,\r\n getRecommendedForYou,\r\n },\r\n });\r\n}\r\n/* eslint-disable functional/immutable-data */\r\nrecommend.version = clientCommon.version;\r\nrecommend.getFrequentlyBoughtTogether = getFrequentlyBoughtTogether;\r\nrecommend.getRecommendations = getRecommendations;\r\nrecommend.getRelatedProducts = getRelatedProducts;\r\nrecommend.getTrendingFacets = getTrendingFacets;\r\nrecommend.getTrendingItems = getTrendingItems;\r\nrecommend.getLookingSimilar = getLookingSimilar;\r\nrecommend.getRecommendedForYou = getRecommendedForYou;\n\nmodule.exports = recommend;\n","/* eslint-disable functional/immutable-data, import/no-commonjs */\nconst recommend = require('./dist/recommend.cjs.js');\n\n/**\n * The Common JS build is the default entry point for the Node environment. Keep in\n * in mind, that for the browser environment, we hint the bundler to use the UMD\n * build instead as specified on the key `browser` of our `package.json` file.\n */\nmodule.exports = recommend;\n\n/**\n * In addition, we also set explicitly the default export below making\n * this Common JS module in compliance with es6 modules specification.\n */\nmodule.exports.default = recommend;\n","import * as http from 'http';\nimport { Agent } from 'http';\nimport * as https from 'https';\nimport { Agent as Agent$1 } from 'https';\nimport { parse } from 'url';\n\n/* eslint functional/prefer-readonly-type: 0 */\r\nconst agentOptions = { keepAlive: true };\r\nconst defaultHttpAgent = new Agent(agentOptions);\r\nconst defaultHttpsAgent = new Agent$1(agentOptions);\r\nfunction createNodeHttpRequester({ agent: userGlobalAgent, httpAgent: userHttpAgent, httpsAgent: userHttpsAgent, requesterOptions = {}, } = {}) {\r\n const httpAgent = userHttpAgent || userGlobalAgent || defaultHttpAgent;\r\n const httpsAgent = userHttpsAgent || userGlobalAgent || defaultHttpsAgent;\r\n return {\r\n send(request) {\r\n return new Promise(resolve => {\r\n const url = parse(request.url);\r\n const path = url.query === null ? url.pathname : `${url.pathname}?${url.query}`;\r\n const options = {\r\n ...requesterOptions,\r\n agent: url.protocol === 'https:' ? httpsAgent : httpAgent,\r\n hostname: url.hostname,\r\n path,\r\n method: request.method,\r\n headers: {\r\n ...(requesterOptions && requesterOptions.headers ? requesterOptions.headers : {}),\r\n ...request.headers,\r\n },\r\n ...(url.port !== undefined ? { port: url.port || '' } : {}),\r\n };\r\n const req = (url.protocol === 'https:' ? https : http).request(options, response => {\r\n // eslint-disable-next-line functional/no-let\r\n let contentBuffers = [];\r\n response.on('data', chunk => {\r\n contentBuffers = contentBuffers.concat(chunk);\r\n });\r\n response.on('end', () => {\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n clearTimeout(connectTimeout);\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n clearTimeout(responseTimeout);\r\n resolve({\r\n status: response.statusCode || 0,\r\n content: Buffer.concat(contentBuffers).toString(),\r\n isTimedOut: false,\r\n });\r\n });\r\n });\r\n const createTimeout = (timeout, content) => {\r\n return setTimeout(() => {\r\n req.abort();\r\n resolve({\r\n status: 0,\r\n content,\r\n isTimedOut: true,\r\n });\r\n }, timeout * 1000);\r\n };\r\n const connectTimeout = createTimeout(request.connectTimeout, 'Connection timeout');\r\n // eslint-disable-next-line functional/no-let\r\n let responseTimeout;\r\n req.on('error', error => {\r\n clearTimeout(connectTimeout);\r\n clearTimeout(responseTimeout);\r\n resolve({ status: 0, content: error.message, isTimedOut: false });\r\n });\r\n req.once('response', () => {\r\n clearTimeout(connectTimeout);\r\n responseTimeout = createTimeout(request.responseTimeout, 'Socket timeout');\r\n });\r\n if (request.data !== undefined) {\r\n req.write(request.data);\r\n }\r\n req.end();\r\n });\r\n },\r\n destroy() {\r\n httpAgent.destroy();\r\n httpsAgent.destroy();\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nexport { createNodeHttpRequester };\n","'use strict';\n\nvar cacheCommon = require('@algolia/cache-common');\nvar cacheInMemory = require('@algolia/cache-in-memory');\nvar clientAnalytics = require('@algolia/client-analytics');\nvar clientCommon = require('@algolia/client-common');\nvar clientPersonalization = require('@algolia/client-personalization');\nvar clientSearch = require('@algolia/client-search');\nvar loggerCommon = require('@algolia/logger-common');\nvar recommend = require('@algolia/recommend');\nvar requesterNodeHttp = require('@algolia/requester-node-http');\nvar transporter = require('@algolia/transporter');\n\nfunction algoliasearch(appId, apiKey, options) {\r\n const commonOptions = {\r\n appId,\r\n apiKey,\r\n timeouts: {\r\n connect: 2,\r\n read: 5,\r\n write: 30,\r\n },\r\n requester: requesterNodeHttp.createNodeHttpRequester(),\r\n logger: loggerCommon.createNullLogger(),\r\n responsesCache: cacheCommon.createNullCache(),\r\n requestsCache: cacheCommon.createNullCache(),\r\n hostsCache: cacheInMemory.createInMemoryCache(),\r\n userAgent: transporter.createUserAgent(clientCommon.version).add({\r\n segment: 'Node.js',\r\n version: process.versions.node,\r\n }),\r\n };\r\n const searchClientOptions = { ...commonOptions, ...options };\r\n const initPersonalization = () => (clientOptions) => {\r\n return clientPersonalization.createPersonalizationClient({\r\n ...commonOptions,\r\n ...clientOptions,\r\n methods: {\r\n getPersonalizationStrategy: clientPersonalization.getPersonalizationStrategy,\r\n setPersonalizationStrategy: clientPersonalization.setPersonalizationStrategy,\r\n },\r\n });\r\n };\r\n return clientSearch.createSearchClient({\r\n ...searchClientOptions,\r\n methods: {\r\n search: clientSearch.multipleQueries,\r\n searchForFacetValues: clientSearch.multipleSearchForFacetValues,\r\n multipleBatch: clientSearch.multipleBatch,\r\n multipleGetObjects: clientSearch.multipleGetObjects,\r\n multipleQueries: clientSearch.multipleQueries,\r\n copyIndex: clientSearch.copyIndex,\r\n copySettings: clientSearch.copySettings,\r\n copyRules: clientSearch.copyRules,\r\n copySynonyms: clientSearch.copySynonyms,\r\n moveIndex: clientSearch.moveIndex,\r\n listIndices: clientSearch.listIndices,\r\n getLogs: clientSearch.getLogs,\r\n listClusters: clientSearch.listClusters,\r\n multipleSearchForFacetValues: clientSearch.multipleSearchForFacetValues,\r\n getApiKey: clientSearch.getApiKey,\r\n addApiKey: clientSearch.addApiKey,\r\n listApiKeys: clientSearch.listApiKeys,\r\n updateApiKey: clientSearch.updateApiKey,\r\n deleteApiKey: clientSearch.deleteApiKey,\r\n restoreApiKey: clientSearch.restoreApiKey,\r\n assignUserID: clientSearch.assignUserID,\r\n assignUserIDs: clientSearch.assignUserIDs,\r\n getUserID: clientSearch.getUserID,\r\n searchUserIDs: clientSearch.searchUserIDs,\r\n listUserIDs: clientSearch.listUserIDs,\r\n getTopUserIDs: clientSearch.getTopUserIDs,\r\n removeUserID: clientSearch.removeUserID,\r\n hasPendingMappings: clientSearch.hasPendingMappings,\r\n generateSecuredApiKey: clientSearch.generateSecuredApiKey,\r\n getSecuredApiKeyRemainingValidity: clientSearch.getSecuredApiKeyRemainingValidity,\r\n destroy: clientCommon.destroy,\r\n clearDictionaryEntries: clientSearch.clearDictionaryEntries,\r\n deleteDictionaryEntries: clientSearch.deleteDictionaryEntries,\r\n getDictionarySettings: clientSearch.getDictionarySettings,\r\n getAppTask: clientSearch.getAppTask,\r\n replaceDictionaryEntries: clientSearch.replaceDictionaryEntries,\r\n saveDictionaryEntries: clientSearch.saveDictionaryEntries,\r\n searchDictionaryEntries: clientSearch.searchDictionaryEntries,\r\n setDictionarySettings: clientSearch.setDictionarySettings,\r\n waitAppTask: clientSearch.waitAppTask,\r\n customRequest: clientSearch.customRequest,\r\n initIndex: base => (indexName) => {\r\n return clientSearch.initIndex(base)(indexName, {\r\n methods: {\r\n batch: clientSearch.batch,\r\n delete: clientSearch.deleteIndex,\r\n findAnswers: clientSearch.findAnswers,\r\n getObject: clientSearch.getObject,\r\n getObjects: clientSearch.getObjects,\r\n saveObject: clientSearch.saveObject,\r\n saveObjects: clientSearch.saveObjects,\r\n search: clientSearch.search,\r\n searchForFacetValues: clientSearch.searchForFacetValues,\r\n waitTask: clientSearch.waitTask,\r\n setSettings: clientSearch.setSettings,\r\n getSettings: clientSearch.getSettings,\r\n partialUpdateObject: clientSearch.partialUpdateObject,\r\n partialUpdateObjects: clientSearch.partialUpdateObjects,\r\n deleteObject: clientSearch.deleteObject,\r\n deleteObjects: clientSearch.deleteObjects,\r\n deleteBy: clientSearch.deleteBy,\r\n clearObjects: clientSearch.clearObjects,\r\n browseObjects: clientSearch.browseObjects,\r\n getObjectPosition: clientSearch.getObjectPosition,\r\n findObject: clientSearch.findObject,\r\n exists: clientSearch.exists,\r\n saveSynonym: clientSearch.saveSynonym,\r\n saveSynonyms: clientSearch.saveSynonyms,\r\n getSynonym: clientSearch.getSynonym,\r\n searchSynonyms: clientSearch.searchSynonyms,\r\n browseSynonyms: clientSearch.browseSynonyms,\r\n deleteSynonym: clientSearch.deleteSynonym,\r\n clearSynonyms: clientSearch.clearSynonyms,\r\n replaceAllObjects: clientSearch.replaceAllObjects,\r\n replaceAllSynonyms: clientSearch.replaceAllSynonyms,\r\n searchRules: clientSearch.searchRules,\r\n getRule: clientSearch.getRule,\r\n deleteRule: clientSearch.deleteRule,\r\n saveRule: clientSearch.saveRule,\r\n saveRules: clientSearch.saveRules,\r\n replaceAllRules: clientSearch.replaceAllRules,\r\n browseRules: clientSearch.browseRules,\r\n clearRules: clientSearch.clearRules,\r\n },\r\n });\r\n },\r\n initAnalytics: () => (clientOptions) => {\r\n return clientAnalytics.createAnalyticsClient({\r\n ...commonOptions,\r\n ...clientOptions,\r\n methods: {\r\n addABTest: clientAnalytics.addABTest,\r\n getABTest: clientAnalytics.getABTest,\r\n getABTests: clientAnalytics.getABTests,\r\n stopABTest: clientAnalytics.stopABTest,\r\n deleteABTest: clientAnalytics.deleteABTest,\r\n },\r\n });\r\n },\r\n initPersonalization,\r\n initRecommendation: () => (clientOptions) => {\r\n searchClientOptions.logger.info('The `initRecommendation` method is deprecated. Use `initPersonalization` instead.');\r\n return initPersonalization()(clientOptions);\r\n },\r\n getRecommendations: recommend.getRecommendations,\r\n getFrequentlyBoughtTogether: recommend.getFrequentlyBoughtTogether,\r\n getLookingSimilar: recommend.getLookingSimilar,\r\n getRecommendedForYou: recommend.getRecommendedForYou,\r\n getRelatedProducts: recommend.getRelatedProducts,\r\n getTrendingFacets: recommend.getTrendingFacets,\r\n getTrendingItems: recommend.getTrendingItems,\r\n },\r\n });\r\n}\r\n// eslint-disable-next-line functional/immutable-data\r\nalgoliasearch.version = clientCommon.version;\n\nmodule.exports = algoliasearch;\n","/* eslint-disable functional/immutable-data, import/no-commonjs */\nconst algoliasearch = require('./dist/algoliasearch.cjs.js');\n\n/**\n * The Common JS build is the default entry point for the Node environment. Keep in\n * in mind, that for the browser environment, we hint the bundler to use the UMD\n * build instead as specified on the key `browser` of our `package.json` file.\n */\nmodule.exports = algoliasearch;\n\n/**\n * In addition, we also set explicitly the default export below making\n * this Common JS module in compliance with es6 modules specification.\n */\nmodule.exports.default = algoliasearch;\n","// eslint-disable-next-line functional/immutable-data, import/no-commonjs\nmodule.exports = require('./index');\n","import { Box } from '@vtex/brand-ui'\nimport { MDXRemote } from 'next-mdx-remote'\nimport { MarkdownRendererProps } from './MarkdownRenderer.types'\nimport components from './components'\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst MDXRemote2 = MDXRemote as any\n\nconst MarkdownRenderer = ({\n serialized,\n customComponents,\n scope,\n}: MarkdownRendererProps) => {\n if (components && scope) {\n return (\n \n \n \n )\n }\n\n return (\n \n \n \n )\n}\n\nexport default MarkdownRenderer\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { useContext, useEffect, useRef, useState } from 'react'\nimport { Box, Flex } from '@vtex/brand-ui'\nimport {\n ReactSVGPanZoom,\n UncontrolledReactSVGPanZoom,\n} from 'react-svg-pan-zoom'\nimport mermaid from 'mermaid'\nimport parse from 'html-react-parser'\nimport { InView } from 'react-intersection-observer'\n\nimport { CH } from '@code-hike/mdx/components'\nimport OverviewCard from 'components/overview-card'\nimport YoutubeFrame from 'components/youtube-frame'\nimport Steps from 'components/steps'\nimport LightBox from 'components/lightbox'\nimport WhatsNextCard from 'components/whats-next-card'\n\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { childrenToString, slugify } from 'utils/string-utils'\nimport mermaidInit from 'utils/mermaidInit'\n\nimport { Component, ObservableHeadingProps } from './MarkdownRenderer.types'\nimport styles from './styles.module.css'\nimport { messages } from 'utils/get-message'\n\nmermaidInit()\n\nconst ObservableHeading = ({\n level,\n onEnterView,\n onLeaveView,\n ...headingProps\n}: ObservableHeadingProps) => {\n const [y, setY] = useState(Infinity)\n const toSlugify = childrenToString(headingProps.children)\n const slug = slugify(toSlugify)\n return (\n {\n if (inView) onEnterView(slug)\n else onLeaveView(slug, entry, y)\n\n setY(entry.boundingClientRect.y)\n }}\n >\n {level === 2 ? (\n

\n ) : (\n

\n )}\n \n )\n}\n\nconst calloutColors: Record = {\n info: '#8C929D',\n danger: '#DC5A41',\n warning: '#FFB100',\n success: '#80BE80',\n}\n\nconst CalloutIcon = ({ type }: { type: string }) => (\n \n \n {type === 'success' ? (\n \n ) : type === 'info' ? (\n <>\n \n \n \n ) : (\n <>\n \n \n \n )}\n \n)\n\nexport const Callout = ({ node, icon, ...props }: Component) => {\n const blockquoteType: string = icon ? icon : 'info'\n return (\n \n \n
\n \n )\n}\n\nconst MermaidDiagram = ({ node, ...props }: Component) => {\n const viewerRef = useRef(null)\n const ref = useRef()\n\n const [diagram, setDiagram] = useState('')\n const [width, setWidth] = useState(0)\n const [height, setHeight] = useState(0)\n\n useEffect(() => {\n const resizeObserver = new ResizeObserver(() => {\n if (!ref.current) return\n setWidth(ref.current?.clientWidth ?? 0)\n setHeight(ref.current?.clientWidth / 2 ?? 0)\n })\n\n const mermaidRenderer = async function () {\n const { svg } = await mermaid.render('mermaid-id', props.children)\n setDiagram(\n svg.replace('id=\"mermaid-id\"', '').replaceAll('#mermaid-id', '')\n )\n }\n\n mermaidRenderer()\n if (ref.current) resizeObserver.observe(ref.current)\n }, [])\n\n return (\n \n \n \n {parse(diagram)}\n \n \n \n )\n}\n\nconst ImageComponent = ({ node, ...props }: Component) => {\n const [srcHasError, setSrcHasError] = useState(false)\n const { locale } = useContext(LibraryContext)\n const regularImg = (\n // eslint-disable-next-line @next/next/no-img-element\n {props.alt} setSrcHasError(true)} />\n )\n const errorMessage = (\n
\n {messages[locale]['image.error_loading']} {props.src}\n
\n )\n\n let data: { base64: string; img: object } = { base64: '', img: {} }\n try {\n data = JSON.parse(props.alt)\n } catch (error) {\n console.log(`Error parsing`, error)\n return errorMessage\n }\n return !srcHasError ? {regularImg} : errorMessage\n}\n\nexport default {\n CH,\n OverviewCard,\n WhatsNextCard,\n YoutubeFrame,\n Steps,\n Flex: ({ node, ...props }: Component) => (\n \n ),\n table: ({ node, ...props }: Component) => ,\n td: ({ node, ...props }: Component) =>
,\n img: ImageComponent,\n text: ({ node, ...props }: Component) => {\n return \n },\n blockquote: ({ ...props }: Component) => {\n return \n },\n code: ({ node, ...props }: Component) => {\n return \n },\n pre: ({ ...props }: Component) => {\n if (props.className && props.className === 'mermaid')\n return \n\n return
\n  },\n  h2: ({ node, ...props }: Component) => {\n    const { activeItem, setActiveItem, goToPreviousItem } =\n      useContext(LibraryContext)\n\n    return (\n       {\n          setActiveItem(({ item, subItem }) => ({\n            item: slug,\n            subItem: item !== slug ? '' : subItem,\n          }))\n        }}\n        onLeaveView={(slug, entry, y) => {\n          if (entry.boundingClientRect.y > y && activeItem.item === slug) {\n            goToPreviousItem()\n          }\n        }}\n        {...props}\n      />\n    )\n  },\n  h3: ({ node, ...props }: Component) => {\n    const { activeItem, setActiveItem, goToPreviousSubItem } =\n      useContext(LibraryContext)\n\n    return (\n       {\n          setActiveItem(({ item }) => ({\n            item,\n            subItem: slug,\n          }))\n        }}\n        onLeaveView={(slug, entry, y) => {\n          if (entry.boundingClientRect.y > y && activeItem.subItem === slug) {\n            goToPreviousSubItem()\n          }\n        }}\n        {...props}\n      />\n    )\n  },\n}\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst overviewCard: SxStyleProp = {\n  alignItems: 'flex-start',\n  margin: '20px 0px',\n  border: '1px solid #E7E9EE',\n  borderRadius: '4px',\n  padding: '18px 24px 4px',\n  color: '#4A596B',\n  ':active, :hover': {\n    borderColor: 'muted.2',\n    boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\n    transition: 'all 0.3 ease-out',\n    '*':{\n      color: '#000711',\n    }\n  },\n  ul: {\n    borderLeft: '1px rgb(202, 203, 204) solid',\n    fontSize: '0.9em',\n    mt: '0',\n    paddingLeft: '1.5em',\n    listStyleType: 'none',\n    display: 'block',\n    textDecoration: 'none',\n  },\n  'h3, h4': {\n    color: '#4A596B',\n    fontSize: '1.125em',\n    fontWeight: '400',\n    my: '0',\n  },\n}\n\nconst overviewIcon: SxStyleProp = {\n  marginRight: '1.25em',\n  marginTop: '0.375em',\n}\n\nexport default {\n  overviewCard,\n  overviewIcon,\n}\n","import styles from './styles'\nimport { Flex, Box } from '@vtex/brand-ui'\nimport * as Icons from './icons'\nimport { IconComponent } from 'utils/typings/types'\nimport Link from 'next/link.js'\n\ninterface IconsI {\n  name: string\n  Icon: IconComponent\n}\n\nconst IconsMap: IconsI[] = [\n  {\n    name: 'StorageUnit',\n    Icon: Icons.StorageUnit,\n  },\n  {\n    name: 'Board',\n    Icon: Icons.Board,\n  },\n  {\n    name: 'Integration',\n    Icon: Icons.Integration,\n  },\n  {\n    name: 'SearchList',\n    Icon: Icons.SearchList,\n  },\n  {\n    name: 'SearchDetails',\n    Icon: Icons.SearchDetails,\n  },\n  {\n    name: 'SwitchArrows',\n    Icon: Icons.SwitchArrows,\n  },\n  {\n    name: 'ChangeCart',\n    Icon: Icons.ChangeCart,\n  },\n  {\n    name: 'ToStore',\n    Icon: Icons.ToStore,\n  },\n  {\n    name: 'PaymentHand',\n    Icon: Icons.PaymentHand,\n  },\n  {\n    name: 'GlobeCart',\n    Icon: Icons.GlobeCart,\n  },\n  {\n    name: 'StoreCart',\n    Icon: Icons.StoreCart,\n  },\n  {\n    name: 'List',\n    Icon: Icons.List,\n  },\n  {\n    name: 'Blocks',\n    Icon: Icons.Blocks,\n  },\n  {\n    name: 'StoreData',\n    Icon: Icons.StoreData,\n  },\n  {\n    name: 'Cart',\n    Icon: Icons.Cart,\n  },\n  {\n    name: 'FileConfiguration',\n    Icon: Icons.FileConfiguration,\n  },\n  {\n    name: 'Platform',\n    Icon: Icons.Platform,\n  },\n  {\n    name: 'RestApis',\n    Icon: Icons.RestApis,\n  },\n  {\n    name: 'Catalog',\n    Icon: Icons.Catalog,\n  },\n  {\n    name: 'Orders',\n    Icon: Icons.Orders,\n  },\n  {\n    name: 'Checkout',\n    Icon: Icons.Checkout,\n  },\n  {\n    name: 'Payments',\n    Icon: Icons.Payments,\n  },\n  {\n    name: 'Promotions',\n    Icon: Icons.Promotions,\n  },\n  {\n    name: 'Pricing',\n    Icon: Icons.Pricing,\n  },\n  {\n    name: 'AccountManagement',\n    Icon: Icons.AccountManagement,\n  },\n  {\n    name: 'StoreSearch',\n    Icon: Icons.StoreSearch,\n  },\n  {\n    name: 'Subscriptions',\n    Icon: Icons.Subscriptions,\n  },\n  {\n    name: 'Fulfillment',\n    Icon: Icons.Fulfillment,\n  },\n]\n\nconst getIcon = (name: string) => {\n  return IconsMap.find((icon) => icon.name === name)?.Icon\n}\n\n//Interfaces\nexport interface OverviewCardProps {\n  icon: string\n  link: string\n  children: string\n}\n\nconst OverviewCard = ({ icon, link, children }: OverviewCardProps) => {\n  const Icon = getIcon(icon)\n  return (\n    \n      \n        {Icon && }\n        {children}\n      \n    \n  )\n}\n\nexport default OverviewCard\n","import React from 'react'\nimport type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst StorageUnit = (props: IconProps) => (\n  \n    \n      \n      \n      \n      \n      \n      \n      \n    \n  \n)\n\nconst Board = (props: IconProps) => (\n  \n    \n      \n      \n      \n      \n    \n  \n)\n\nconst Composable = (props: IconProps) => (\n  \n    \n      \n      \n      \n      \n    \n  \n)\n\nconst Integration = (props: IconProps) => (\n  \n    \n    \n    \n    \n    \n  \n)\n\nconst SearchList = (props: IconProps) => (\n  \n    \n    \n    \n    \n    \n    \n    \n  \n)\n\nconst SwitchArrows = (props: IconProps) => (\n  \n    \n    \n    \n    \n    \n    \n  \n)\n\nconst SearchDetails = (props: IconProps) => (\n  \n    \n    \n    \n  \n)\n\nconst List = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\n\nconst StoreCart = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\n\nconst GlobeCart = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\n\nconst PaymentHand = (props: IconProps) => (\n  \n    \n    \n    \n    \n    \n  \n)\n\nconst ToStore = (props: IconProps) => (\n  \n    \n    \n    \n    \n    \n    \n  \n)\nconst ChangeCart = (props: IconProps) => (\n  \n    \n    \n    \n    \n    \n    \n    \n  \n)\n\nconst Blocks = (props: IconProps) => (\n  \n    {' '}\n    \n      {' '}\n      {' '}\n      {' '}\n      {' '}\n      {' '}\n    \n  \n)\nconst StoreData = (props: IconProps) => (\n  \n    \n    \n    \n    \n    \n  \n)\nconst FileConfiguration = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\nconst Cart = (props: IconProps) => (\n  \n    \n    \n    \n    \n  \n)\n\nconst Platform = (props: IconProps) => (\n  \n    \n      \n      \n      \n      \n      \n      \n      \n    \n  \n)\n\nconst RestApis = (props: IconProps) => (\n  \n    \n      \n      \n      \n      \n    \n  \n)\n\nconst Catalog = (props: IconProps) => (\n  \n    {' '}\n    \n  \n)\n\nconst Orders = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\n\nconst Checkout = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\n\nconst Payments = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\n\nconst Promotions = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\n\nconst Pricing = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\n\nconst AccountManagement = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\n\nconst StoreSearch = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\nconst Subscriptions = (props: IconProps) => (\n  \n    \n      \n      \n      \n      \n      \n      \n    \n  \n)\n\nconst Fulfillment = (props: IconProps) => (\n  \n    \n      \n      \n      \n      \n      \n      \n      \n      \n      \n      \n    \n  \n)\n\nexport {\n  StorageUnit,\n  Board,\n  Composable,\n  Integration,\n  SearchList,\n  SwitchArrows,\n  SearchDetails,\n  ChangeCart,\n  ToStore,\n  PaymentHand,\n  GlobeCart,\n  StoreCart,\n  List,\n  Blocks,\n  StoreData,\n  FileConfiguration,\n  Cart,\n  Platform,\n  RestApis,\n  Catalog,\n  Orders,\n  Checkout,\n  Payments,\n  Promotions,\n  Pricing,\n  AccountManagement,\n  StoreSearch,\n  Subscriptions,\n  Fulfillment,\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\n\nexport interface IYoutubeFrame {\n  embedId: string\n}\nconst YoutubeFrame = ({ embedId }: IYoutubeFrame) => (\n  
\n \n
\n)\n\nYoutubeFrame.propTypes = {\n embedId: PropTypes.string.isRequired,\n}\n\nexport default YoutubeFrame\n","import React from 'react'\nimport { Box } from '@vtex/brand-ui'\nimport styles from './styles'\n\nexport interface StepsProps {\n children: string\n}\nconst Steps = ({ children }: StepsProps) => {\n return {children}\n}\nexport default Steps\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst steps: SxStyleProp = {\n ml: '4px',\n mt: '12px',\n mb: '27px',\n borderLeft: '1px solid #e5e7eb',\n pl: '25px',\n position: 'relative',\n '.heading': {\n counterIncrement: `step`,\n },\n '.heading:before': {\n content: `counter(step)`,\n position: 'absolute',\n border: '4px solid #ffffff',\n width: '2em',\n height: '2em',\n left: '-1.3em',\n color: '#a1a1aa',\n backgroundColor: '#f2f3f6',\n borderRadius: '9999px',\n fontSize: '1em',\n textAlign: 'center',\n lineHeight: '2.1em',\n boxSizing: 'content-box',\n },\n}\n\nexport default {\n steps,\n}\n","import React, { ReactElement, useEffect, useRef, useState } from 'react'\nimport { Box, Button, Flex } from '@vtex/brand-ui'\nimport CloseIcon from 'components/icons/close-icon'\nimport useClickOutside from 'utils/hooks/useClickOutside'\nimport styles from './styles'\n\ninterface Props {\n children: ReactElement\n}\n\nexport default function LightBox({ children }: Props) {\n const [isModalOpen, setIsModalOpen] = useState(false)\n const modalRef = useRef()\n\n useEffect(() => {\n if (isModalOpen) {\n const scrollTop = document.body.getBoundingClientRect().top\n document.body.style.top = `${scrollTop}px`\n document.body.classList.add('modal-open')\n } else {\n document.body.classList.remove('modal-open')\n document.body.style.removeProperty('top')\n }\n }, [isModalOpen])\n\n useClickOutside(modalRef, () => setIsModalOpen(false))\n\n return (\n
\n {isModalOpen && (\n \n }\n onClick={() => setIsModalOpen(false)}\n />\n \n {children}\n \n \n )}\n setIsModalOpen(true)}>\n {children}\n \n
\n )\n}\n","import React from 'react'\nimport type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst CloseIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default CloseIcon\n","import { useEffect, MutableRefObject, SetStateAction, Dispatch } from 'react'\n\nexport default function useClickOutside(\n ref: MutableRefObject,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n openModal: Dispatch>\n) {\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n const { body, documentElement } = document\n if (\n ref.current &&\n event.target instanceof Node &&\n !ref.current.contains(event.target)\n ) {\n openModal({ modalToggle: false })\n const scrollTop = body.getBoundingClientRect().top * -1\n body.classList.remove('modal-open')\n documentElement.scrollTop = scrollTop\n body.style.removeProperty('top')\n }\n }\n document.addEventListener('mousedown', handleClickOutside)\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n }\n }, [])\n}\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst imageContainer: SxStyleProp = {\n cursor: 'pointer',\n borderRadius: '5px',\n width: 'fit-content',\n mt: '16px',\n mb: '24px',\n transition: '0.3s',\n ':hover': {\n boxShadow: '2px 4px 8px 2px rgb(0 0 0 / 10%)',\n },\n\n '> img': {\n maxWidth: '100%',\n display: 'block',\n padding: '0',\n margin: '0',\n border: '1px solid #e7e9ed',\n borderRadius: '4px'\n },\n}\n\nconst container: SxStyleProp = {\n margin: '0',\n width: '100%',\n height: '100%',\n backgroundColor: 'rgba(0,0,0,0.9)',\n position: 'fixed',\n top: '0',\n left: '0',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n zIndex: '10000',\n}\n\nconst modal: SxStyleProp = {\n display: 'inline-block',\n margin: 'auto',\n boxShadow: '2px 4px 16px rgb(0 0 0 / 30%)',\n position: 'relative',\n zIndex: '10001',\n padding: '0',\n\n '> img': {\n display: 'block',\n maxHeight: 'calc(100vh - 50px)',\n maxWidth: 'calc(100vw - 50px)',\n width: 'auto',\n margin: '0',\n padding: '0',\n },\n}\n\nconst closeButton: SxStyleProp = {\n position: 'absolute',\n zIndex: '10002',\n top: '10px',\n right: '10px',\n color: '#FEFEFE',\n\n ':hover': {\n color: 'rgb(100, 100, 100)',\n },\n}\n\nexport default {\n imageContainer,\n container,\n modal,\n closeButton,\n}\n","import React from 'react'\nimport { Box, Flex, IconCaret, Text, Link } from '@vtex/brand-ui'\nimport styles from './styles'\nimport Image from 'next/image.js'\n\nexport type WhatsNextDataElement = {\n title: string\n description?: string\n linkTitle?: string\n linkTo: string\n image?: string\n}\n\nconst WhatsNextCard = ({\n title,\n description,\n linkTitle,\n linkTo,\n image,\n}: WhatsNextDataElement) => {\n return (\n \n {image ? (\n \n \n \n {title}\n \n \n ) : (\n \n \n {title}\n \n {description && (\n \n {description}\n \n )}\n {linkTitle && (\n \n \n {linkTitle}\n \n \n \n )}\n \n )}\n \n )\n}\n\nexport default WhatsNextCard\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst container: SxStyleProp = {\n mt: '16px',\n borderRadius: '4px',\n border: '1px solid #E7E9EE',\n width: ['100%', '49%'],\n transition: 'all 0.3s ease-out',\n ':hover': {\n cursor: 'pointer',\n },\n ':active, :hover': {\n borderColor: 'muted.2',\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\n transition: 'all 0.3 ease-out',\n '.title, .description': {\n transition: 'all 0.3s ease-out',\n color: '#000711',\n },\n '.link, .caret': {\n transition: 'all 0.3s ease-out',\n color: 'muted.0',\n },\n },\n}\n\nconst title: SxStyleProp = {\n mb: '8px',\n fontSize: '16px',\n fontWeight: '400',\n lineHeight: ['22px', '18px'],\n color: 'muted.0',\n}\n\nconst imageTitle: SxStyleProp = {\n padding: '16px',\n fontSize: '16px',\n fontWeight: '400',\n color: 'muted.0',\n ':after': {\n content: `url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='rgb(74 89 108)' %3E%3Cpath fill-rule='evenodd' d='M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z' clip-rule='evenodd' /%3E%3C/svg%3E\")`,\n position: 'absolute',\n height: '16px',\n width: '16px',\n marginLeft: '3px',\n lineHeight: '30px',\n },\n}\n\nconst description: SxStyleProp = {\n fontSize: '14px',\n fontWeight: '400',\n lineHeight: '20px',\n color: 'muted.0',\n}\n\nconst linkContainer: SxStyleProp = {\n mt: '8px',\n alignItems: 'center',\n}\n\nconst link: SxStyleProp = {\n ...description,\n color: 'muted.1',\n}\n\nexport default {\n container,\n title,\n imageTitle,\n description,\n linkContainer,\n link,\n}","import type { Dispatch, ReactNode, SetStateAction } from 'react'\nimport { createContext, useEffect, useState } from 'react'\nimport { Item } from 'lib/table-of-contents/TableOfContents.types'\nimport { Section } from 'utils/typings/types'\nimport { SWRConfig } from 'swr'\n\ninterface Props extends Partial {\n children: ReactNode\n /** The navigation array containing the list of documentations shown in the sidebar. */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fallback?: any\n /** Documentation sections, the same sections that divide the fallback. */\n sections: Section[][]\n /** Whether is a branch preview or not. */\n isPreview: boolean\n /** The section currently selected. */\n sectionSelected: string\n /** The sections to be used on the hamburguer menu */\n hamburguerMenuSections: Section[][]\n /** The portal language. The default is english. */\n locale?: 'en' | 'pt' | 'es'\n}\n\nexport type ContextType = {\n headingItems: Item[]\n setHeadingItems: Dispatch>\n activeItem: ActiveItem\n setActiveItem: Dispatch>\n goToPreviousItem: () => void\n goToPreviousSubItem: () => void\n isEditorPreview: boolean\n sidebarSectionHidden: boolean\n activeSectionName: string\n activeSidebarElement: string\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n sidebarDataMaster: any\n sidebarElementStatus: Map\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setSidebarDataMaster: Dispatch>\n setIsEditorPreview: Dispatch>\n setSidebarSectionHidden: Dispatch>\n setActiveSectionName: Dispatch>\n setActiveSidebarElement: Dispatch>\n toggleSidebarElementStatus: (title: string, currentlyOpen?: boolean) => void\n openSidebarElement: (title: string) => void\n closeSidebarElements: (parentsArray: string[]) => void\n sidebarSections: Section[][]\n setSidebarSections: Dispatch>\n hamburguerSections: Section[][]\n setHamburguerSections: Dispatch>\n locale: 'en' | 'pt' | 'es'\n}\n\ntype ActiveItem = {\n item: string\n subItem: string\n}\n\nexport const LibraryContext = createContext({\n headingItems: [],\n setHeadingItems: () => undefined,\n activeItem: {\n item: '',\n subItem: '',\n },\n setActiveItem: () => undefined,\n goToPreviousItem: () => undefined,\n goToPreviousSubItem: () => undefined,\n isEditorPreview: false,\n sidebarSectionHidden: false,\n activeSectionName: '',\n activeSidebarElement: '',\n sidebarDataMaster: {},\n setIsEditorPreview: () => undefined,\n sidebarElementStatus: new Map(),\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any\n setSidebarDataMaster: (_: any) => undefined,\n setSidebarSectionHidden: () => undefined,\n setActiveSectionName: () => undefined,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any\n setActiveSidebarElement: (_: any) => undefined,\n toggleSidebarElementStatus: () => undefined,\n openSidebarElement: () => undefined,\n closeSidebarElements: () => undefined,\n sidebarSections: [],\n setSidebarSections: () => undefined,\n hamburguerSections: [],\n setHamburguerSections: () => undefined,\n locale: 'en',\n})\n\n/** Provider for the LibraryContext created with React.createContext. The context is used in the following components: feedback, search, sidebar, hamburger menu, markdown renderer and table of contents. */\nconst LibraryContextProvider = ({ children, ...props }: Props) => {\n const [headingItems, setHeadingItems] = useState([])\n const [activeItem, setActiveItem] = useState({\n item: '',\n subItem: '',\n })\n\n const [activeSectionName, setActiveSectionName] = useState(\n props.sectionSelected\n )\n const [sidebarSectionHidden, setSidebarSectionHidden] = useState(false)\n const [activeSidebarElement, setActiveSidebarElement] = useState('')\n const [sidebarElementStatus, setSidebarElementStatus] = useState(new Map())\n const [sidebarDataMaster, setSidebarDataMaster] = useState(props.fallback)\n const [isEditorPreview, setIsEditorPreview] = useState(props.isPreview)\n const [sidebarSections, setSidebarSections] = useState(props.sections)\n const [hamburguerSections, setHamburguerSections] = useState(\n props.hamburguerMenuSections\n )\n const { locale: propsLocale, ...restProps } = props\n const locale = propsLocale ?? 'en'\n const fallback = restProps.fallback\n\n useEffect(() => {\n setSidebarDataMaster(props.fallback)\n }, [props.fallback])\n\n useEffect(() => {\n if (props.sectionSelected === '') setSidebarSectionHidden(true)\n else if (props.sectionSelected !== activeSectionName)\n setActiveSectionName(props.sectionSelected)\n }, [props.sectionSelected])\n\n const toggleSidebarElementStatus = (title: string, currentlyOpen?: boolean) => {\n setSidebarElementStatus((sidebarElementStatus) => {\n const open = sidebarElementStatus.has(title)\n ? !sidebarElementStatus.get(title)\n : !currentlyOpen\n\n return new Map(sidebarElementStatus.set(title, open))\n })\n }\n\n const closeSidebarElements = (parentsArray: string[]) => {\n sidebarElementStatus.forEach((_value, key) => {\n if (!parentsArray.includes(key)) {\n setSidebarElementStatus((sidebarElementStatus) => {\n return new Map(sidebarElementStatus.set(key, false))\n })\n }\n })\n }\n\n const openSidebarElement = (title: string) => {\n setSidebarElementStatus((sidebarElementStatus) => {\n return new Map(sidebarElementStatus.set(title, true))\n })\n }\n\n const goToPreviousItem = () => {\n setActiveItem(({ item, subItem }) => {\n const index = headingItems.findIndex((heading) => heading.slug === item)\n if (index === -1) return { item, subItem }\n\n const previousItem = !index ? '' : headingItems[index - 1].slug\n const previousChildren = !index ? [] : headingItems[index - 1].children\n const previousSubItem = !previousChildren.length\n ? ''\n : previousChildren.slice(-1)[0].slug\n\n return {\n item: previousItem,\n subItem: previousSubItem,\n }\n })\n }\n\n const goToPreviousSubItem = () => {\n setActiveItem(({ item, subItem }) => {\n const heading = headingItems.find((heading) => heading.slug === item)\n const index = heading?.children.findIndex(\n (child) => child.slug === subItem\n )\n\n if (!heading || index === -1) return { item, subItem }\n\n return {\n item,\n subItem: !index ? '' : heading.children[index - 1].slug,\n }\n })\n }\n\n return (\n \n \n {children}\n \n \n )\n}\n\nexport default LibraryContextProvider\n","export const removeHTML = (str: string) => str.replace(/<\\/?[^>]+>/g, '')\n\nconst SYMBOL_RUN_THRESHOLD = 3\n\n/**\n * Strips Markdown syntax from text snippets to render as plain text.\n * Removes headings, bold, italic, inline code, images, and links while preserving\n * the readable content. Also handles tokens left truncated by the upstream\n * snippet (e.g. an image/link cut off mid-URL with no closing paren).\n */\nexport const stripMarkdownForSnippet = (str: string): string => {\n if (!str) return ''\n\n let cleaned = str\n // Drop closed fenced blocks (code, mermaid, etc.) including their contents\n .replace(/```[\\s\\S]*?```/g, '')\n // Drop unclosed/truncated fenced blocks at the end of a snippet\n .replace(/```[^\\n]*(?:\\n[\\s\\S]*)?$/g, '')\n // Remove markdown images ![alt](url) entirely (alt is usually a filename)\n .replace(/!\\[[^\\]]*\\]\\([^)]*\\)/g, '')\n // Remove markdown links [text](url) - keep only the text\n .replace(/\\[([^\\]]+)\\]\\([^)]+\\)/g, '$1')\n // Remove truncated markdown images/links left dangling at the end of a\n // snippet (upstream cuts the string mid-token, e.g. \"![alt](https://...\" )\n .replace(/!?\\[[^\\]]*\\]\\([^)]*$/g, '')\n // Remove a dangling image/link label with no closing bracket (\"![alt\" )\n .replace(/!?\\[[^\\]]*$/g, '')\n // Remove markdown headings (# ## ### etc.) at line start\n .replace(/^#{1,6}\\s+/gm, '')\n // Remove markdown headings anywhere in text\n .replace(/\\s#{1,6}\\s+/g, ' ')\n // Remove bold (**text** or __text__)\n .replace(/\\*\\*(.+?)\\*\\*/g, '$1')\n .replace(/__(.+?)__/g, '$1')\n // Remove italic (*text* or _text_)\n .replace(/\\*(.+?)\\*/g, '$1')\n .replace(/_(.+?)_/g, '$1')\n // Remove inline code (`text`) — keep readable inner text\n .replace(/`([^`]+)`/g, '$1')\n // Remove horizontal rules (---, ***, ___)\n .replace(/^(\\*{3,}|-{3,}|_{3,})$/gm, '')\n // Remove blockquotes (>)\n .replace(/^>\\s+/gm, '')\n // Remove table separator rows (| --- | :--: | etc.)\n .replace(/^\\s*\\|?\\s*:?-{3,}:?\\s*(\\|\\s*:?-{3,}:?\\s*)*\\|?\\s*$/gm, '')\n // Replace remaining table pipes with spaces so cell content stays readable\n .replace(/\\s*\\|\\s*/g, ' ')\n // Collapse stray horizontal-rule / table-separator symbol runs\n .replace(new RegExp(`-{${SYMBOL_RUN_THRESHOLD},}`, 'g'), ' ')\n .replace(new RegExp(`={${SYMBOL_RUN_THRESHOLD},}`, 'g'), ' ')\n .replace(new RegExp(`\\\\|{${SYMBOL_RUN_THRESHOLD},}`, 'g'), ' ')\n // Remove extra whitespace and normalize spaces\n .replace(/\\s+/g, ' ')\n .trim()\n\n // If the snippet starts mid-word (lowercase letter), try to find the start of the next word\n if (cleaned.length > 0 && /^[a-zà-ÿ]/.test(cleaned)) {\n const firstSpaceIndex = cleaned.indexOf(' ')\n if (firstSpaceIndex > 0 && firstSpaceIndex < 50) {\n cleaned = cleaned.substring(firstSpaceIndex + 1).trim()\n }\n }\n\n return cleaned\n}\n\nexport const capitalizeFirstLetter = (str: string) => {\n return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\nexport const toCamelCase = (str: string) => {\n const [firstWord, ...otherWords] = str.split('-')\n return `${firstWord}${otherWords.map(capitalizeFirstLetter).join('')}`\n}\n\nexport const slugify = (str: string) => {\n return str\n .normalize('NFD') // Decomposes diacritics (e.g., \"é\" → \"é\")\n .replace(/[\\u0300-\\u036f]/g, '') // Removes diacritic marks\n .toLowerCase()\n .replace(/[^\\w\\s-]/g, '') // Removes non-word characters except spaces and hyphens\n .replace(/\\s+/g, '-') // Replaces spaces with hyphens\n .replace(/-+/g, '-') // Removes multiple consecutive hyphens\n .trim() // Trims leading/trailing spaces\n}\n\ntype Child = string | { props: { children: Child[] } }\n\nexport const childrenToString: (children: Child[]) => string = (children) => {\n if (!children) return ''\n else if (Array.isArray(children))\n return children\n .map((child) => {\n if (typeof child === 'string') return child\n return childrenToString(child.props.children)\n })\n .join('')\n else {\n if (typeof children === 'string') return children\n return childrenToString(children['props']['children'])\n }\n}\n\nexport const matrixToMarkdownTable: (matrix: string[][]) => string = (\n matrix\n) => {\n const matrixRowToMarkdownTableRow = (matrixRow: string[]) =>\n `|${matrixRow\n .map((matrixElement) => ` ${matrixElement.replace(/\\n/g, '
')} |`)\n .join('')}`\n\n let table = matrixRowToMarkdownTableRow(matrix[0]) + '\\n|'\n for (let i = 0; i < matrix[0].length; i++) table += ' --- |'\n\n table += '\\n'\n for (let i = 1; i < matrix.length; i++)\n table += matrixRowToMarkdownTableRow(matrix[i]) + '\\n'\n\n return table\n}\n","import mermaid from 'mermaid'\n\nconst mermaidInit = () => {\n mermaid.initialize({\n theme: 'base',\n themeVariables: {\n primaryColor: '#FFFFFF',\n primaryTextColor: '#142032',\n primaryBorderColor: '#A1AAB7',\n labelBoxBorderColor: '#E31C58',\n labelTextColor: '#E31C58',\n labelBoxBkgColor: '#FFF3F6',\n lineColor: '#A1AAB7',\n mainBkg: '#F8F7FC',\n },\n })\n}\n\nexport default mermaidInit\n",".img {\n max-width: 100%;\n padding-top: 2vh;\n border-radius: 4px;\n}\n\n.heading::before {\n content: '';\n display: block;\n visibility: hidden;\n pointer-events: none;\n}\n\n.code {\n background-color: unset;\n background-color: var(--md-code-background, #f6f8fa);\n border-radius: 4px;\n color: var(--md-code-text);\n margin: 0;\n padding: 0.2em 0.4em;\n font-size: 0.875em;\n word-break: break-word;\n overflow-wrap: break-word;\n}\n\ntable .code {\n word-break: normal;\n}\n\n.blockquote {\n display: grid;\n padding: 20px;\n gap: 20px;\n width: 100%;\n margin: 16px 0px 24px;\n border-radius: 4px;\n align-items: center;\n border: 1px solid #ccced8;\n grid-template-columns: 20px 1fr;\n grid-template-rows: auto;\n word-break: break-word;\n}\n\n.blockquote a {\n word-break: break-word;\n overflow-wrap: break-word;\n}\n\n.blockquote p,\n.blockquote div {\n margin: 0px;\n grid-column: 2 / -1;\n grid-row: 1 / 1;\n}\n\n.blockquote > div {\n width: 100%;\n max-width: 100%;\n min-width: 0;\n}\n\n.blockquote ch-code-scroll-parent {\n width: 100% !important;\n overflow-x: auto !important;\n overflow-y: hidden !important;\n background-color: unset !important;\n}\n\n.blockquote a {\n color: #e31c58 !important;\n -webkit-text-decoration: underline 1px solid;\n text-decoration: underline 1px solid;\n}\n\n.blockquote a:hover {\n color: #c81e51;\n}\n\n.blockquoteIcon {\n display: inline-block;\n flex-shrink: 0;\n grid-row: 1;\n}\n\n.blockquoteInfo {\n background: #f8f7fc;\n border: 1px solid #ccced8;\n}\n\n.blockquoteDanger {\n background: #fdefef;\n border: 1px solid #dc5a41;\n}\n\n.blockquoteWarning {\n background: #fff2d4;\n border: 1px solid #ffb100;\n}\n\n.blockquoteWarning code {\n background-color: #ffe5b5;\n}\n\n.blockquoteInfo code {\n background-color: unset;\n}\n\n.blockquoteSuccess {\n background: #f3f8f3;\n border: 1px solid #80be80;\n}\n\n.flexWrap {\n flex-wrap: wrap;\n justify-content: space-between;\n}\n\n.svgContainer {\n width: 100%;\n}","{\r\n \"feedback_section.question\": \"Was this helpful?\",\r\n \"feedback_section.response\": \"Thanks for the feedback!\",\r\n \"feedback_section.positive\": \"Yes\",\r\n \"feedback_section.negative\": \"No\",\r\n \"feedback_section.edit\": \"Suggest Edits (GitHub)\",\r\n \"feedback_modal.title\": \"Leave a Comment (Optional)\",\r\n \"feedback_modal.button\": \"Send Feedback\",\r\n \"search_input.empty\": \"No results found. Try different search terms.\",\r\n \"search_input.placeholder\": \"Search\",\r\n \"search_results.showing\": \"Showing\",\r\n \"search_results.results_for\": \"results for\",\r\n \"search_results.in\": \"in\",\r\n \"search_results.all_lowercase\": \"all results\",\r\n \"sidebar_search.placeholder\": \"Search in\",\r\n \"search_input.see_all\": \"See all results\",\r\n \"search_results.summary\": \"Showing {count} results for \\\"{keyword}\\\" in {section}\",\r\n \"search_results.all\": \"All results\",\r\n \"search_card.in\": \"In\",\r\n \"image.error_loading\": \"An error occurred while loading the image\",\r\n \"api_reference_sidebar_filter_clear\": \"Clear All\",\r\n \"api_reference_sidebar_filter\": \"Filter By\",\r\n \"cookie_bar.title\": \"We use cookies\",\r\n \"cookie_bar.description\": \"This website uses cookies to improve navigation, analyze usage, and assist with our marketing efforts.\",\r\n \"cookie_bar.accept\": \"I agree\",\r\n \"cookie_bar.decline\": \"I decline\",\r\n \"landing_page_subscription.title\": \"Stay up to date with VTEX documentation\",\r\n \"landing_page_subscription.description\": \"Subscribe to our monthly newsletter to receive information about the latest announcements, release notes, and newly published articles.\",\r\n \"landing_page_newsletter.Button\": \"Subscribe\",\r\n \"subscription_list.api_key_error\": \"Newsletter API key is not defined\",\r\n \"subscription_list.invalid_email\": \"Invalid email address, please try another one.\",\r\n \"subscription_list.success\": \"You've successfully subscribed!\",\r\n \"subscription_list.error\": \"Sorry, we couldn't subscribe you. Please try again later.\",\r\n \"subscription_list.privacy_notice\": \"By subscribing to our newsletter, you agree to our\",\r\n \"subscription_list.privacy_policy_link\": \"Privacy Policy\"\r\n}\r\n","{\r\n \"feedback_section.question\": \"¿Te ha parecido útil?\",\r\n \"feedback_section.response\": \"Gracias por tu feedback\",\r\n \"feedback_section.positive\": \"Sí\",\r\n \"feedback_section.negative\": \"No\",\r\n \"feedback_section.edit\": \"Sugerir cambios (GitHub)\",\r\n \"feedback_modal.title\": \"Dar feedback (opcional)\",\r\n \"feedback_modal.button\": \"Enviar feedback\",\r\n \"search_input.empty\": \"No se encontraron resultados. Intenta utilizar otros términos.\",\r\n \"search_input.placeholder\": \"Buscar\",\r\n \"sidebar_search.placeholder\": \"Buscar en\",\r\n \"search_results.showing\": \"Mostrando\",\r\n \"search_results.results_for\": \"resultados para\",\r\n \"search_results.in\": \"en\",\r\n \"search_results.all_lowercase\": \"todos los resultados\",\r\n \"search_input.see_all\": \"Ver todos los resultados\",\r\n \"search_results.summary\": \"Mostrando {count} resultados para \\\"{keyword}\\\" en {section}\",\r\n \"search_results.all\": \"Todos los resultados\",\r\n \"search_card.in\": \"En\",\r\n \"image.error_loading\": \"Se produjo un error al cargar la imagen\",\r\n \"api_reference_sidebar_filter_clear\": \"Limpiar todo\",\r\n \"api_reference_sidebar_filter\": \"Filtrar por\",\r\n \"cookie_bar.title\": \"Utilizamos cookies\",\r\n \"cookie_bar.description\": \"Este sitio web utiliza cookies para optimizar la navegación, analizar el uso e impulsar nuestros esfuerzos de marketing.\",\r\n \"cookie_bar.accept\": \"Acepto\",\r\n \"cookie_bar.decline\": \"Rechazo\",\r\n \"landing_page_subscription.title\": \"Mantente al día con la documentación de VTEX\",\r\n \"landing_page_subscription.description\": \"Suscríbete a nuestro newsletter mensual para recibir información sobre los últimos anuncios, release notes y artículos recién publicados.\",\r\n \"landing_page_newsletter.Button\": \"Inscríbete\",\r\n \"subscription_list.api_key_error\": \"La clave de API de la newsletter no está definida\",\r\n \"subscription_list.invalid_email\": \"Dirección de email inválida, por favor intenta con otra.\",\r\n \"subscription_list.success\": \"¡Te has suscrito con éxito!\",\r\n \"subscription_list.error\": \"Lo sentimos, no pudimos suscribirte. Por favor, inténtalo de nuevo más tarde.\",\r\n \"subscription_list.privacy_notice\": \"Al suscribirte a nuestra newsletter, aceptas nuestro\",\r\n \"subscription_list.privacy_policy_link\": \"Aviso de privacidad\"\r\n}\r\n","{\r\n \"feedback_section.question\": \"Isso foi útil?\",\r\n \"feedback_section.response\": \"Agradecemos pelo seu feedback.\",\r\n \"feedback_section.positive\": \"Sim\",\r\n \"feedback_section.negative\": \"Não\",\r\n \"feedback_section.edit\": \"Sugerir edições (GitHub)\",\r\n \"feedback_modal.title\": \"Deixe um comentário (opcional)\",\r\n \"feedback_modal.button\": \"Enviar feedback\",\r\n \"search_input.empty\": \"Nenhum resultado encontrado. Tente buscar por outros termos.\",\r\n \"search_input.placeholder\": \"Buscar\",\r\n \"sidebar_search.placeholder\": \"Buscar em\",\r\n \"search_results.showing\": \"Mostrando\",\r\n \"search_results.results_for\": \"resultados para\",\r\n \"search_results.in\": \"em\",\r\n \"search_results.all_lowercase\": \"todos os resultados\",\r\n \"search_input.see_all\": \"Ver todos os resultados\",\r\n \"search_results.summary\": \"Mostrando {count} resultados para \\\"{keyword}\\\" em {section}\",\r\n \"search_results.all\": \"Todos os resultados\",\r\n \"search_card.in\": \"Em\",\r\n \"image.error_loading\": \"Ocorreu um erro ao carregar a imagem\",\r\n \"api_reference_sidebar_filter_clear\": \"Limpar tudo\",\r\n \"api_reference_sidebar_filter\": \"Filtrar por\",\r\n \"cookie_bar.title\": \"Nós usamos cookies\",\r\n \"cookie_bar.description\": \"Este site utiliza cookies para melhorar a navegação, analisar a experiência de uso e auxiliar em nossas ações de marketing.\",\r\n \"cookie_bar.accept\": \"Concordo\",\r\n \"cookie_bar.decline\": \"Discordo\",\r\n \"landing_page_subscription.title\": \"Mantenha-se em dia com a documentação da VTEX\",\r\n \"landing_page_subscription.description\": \"Assine nossa newsletter mensal para receber informações sobre os Announcements mais recentes, Release Notes e os artigos recém-publicados.\",\r\n \"landing_page_newsletter.Button\": \"Inscreva-se\",\r\n \"subscription_list.api_key_error\": \"A chave da API da newsletter não está definida\",\r\n \"subscription_list.invalid_email\": \"Endereço de email inválido, por favor tente outro.\",\r\n \"subscription_list.success\": \"Você se inscreveu com sucesso!\",\r\n \"subscription_list.error\": \"Desculpe, não foi possível realizar sua inscrição. Por favor, tente novamente mais tarde.\",\r\n \"subscription_list.privacy_notice\": \"Ao assinar nossa newsletter, você concorda com a nossa\",\r\n \"subscription_list.privacy_policy_link\": \"Política de Privacidade\"\r\n}","import enMessages from '../messages/en.json'\nimport esMessages from '../messages/es.json'\nimport ptMessages from '../messages/pt.json'\nimport { MessagesType } from './typings/messages-types'\n\nconst getMessages = (): {\n en: MessagesType\n es: MessagesType\n pt: MessagesType\n} => {\n const messages = {\n en: enMessages,\n es: esMessages,\n pt: ptMessages,\n }\n\n return messages\n}\n\nexport const messages = getMessages()\n","import { useContext, useEffect } from 'react'\nimport Link from 'next/link.js'\nimport { useRouter } from 'next/router.js'\nimport { Box, Text } from '@vtex/brand-ui'\nimport AnimateHeight from 'react-animate-height'\n\nimport { removeHTML } from 'utils/string-utils'\nimport { Item } from './TableOfContents.types'\n\nimport { LibraryContext } from 'utils/context/libraryContext'\n\nimport styles from './styles'\n\ninterface Props {\n /** List of headings in the current documentation page */\n headingList?: Item[]\n children?: React.ReactNode\n}\n\n/** Table of contents for documentation pages. */\nconst TableOfContents = ({ headingList, children }: Props) => {\n const router = useRouter()\n const { headingItems, activeItem, setHeadingItems, setActiveItem } =\n useContext(LibraryContext)\n\n useEffect(() => {\n const headings: Item[] = headingList ?? []\n if (!headings.length) {\n document.querySelectorAll('h2, h3').forEach((heading) => {\n const headingSlug = heading.id\n const item = {\n title: removeHTML(heading.innerHTML).replace(':', ''),\n slug: headingSlug,\n }\n\n if (heading.tagName === 'H2') {\n headings.push({ ...item, children: [] })\n } else if (headings.length > 0) {\n headings[headings.length - 1].children.push({ ...item })\n } else {\n headings.push({ ...item, children: [] })\n }\n })\n setHeadingItems(headings)\n } else setHeadingItems(headings)\n }, [router.asPath, headingList])\n\n const Item = ({\n title,\n slug,\n level,\n active,\n }: {\n title: string\n slug: string\n level: number\n active: boolean\n }) => {\n return (\n {\n setActiveItem(({ item }) => ({\n item: level === 1 ? slug : item,\n subItem: level === 1 ? '' : slug,\n }))\n }}\n >\n {title}\n \n )\n }\n\n return (\n \n {headingItems.length > 0 && (\n ON THIS PAGE\n )}\n \n {headingItems.map((item) => (\n \n \n \n \n {item.children.map((subItem) => (\n \n ))}\n \n \n \n ))}\n \n {children}\n \n )\n}\n\nexport default TableOfContents\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst itemsContainer: SxStyleProp = {\n position: 'sticky',\n top: 'calc(5rem + 32px)',\n}\n\nconst tocTitle: SxStyleProp = {\n fontSize: '10px',\n fontWeight: '600',\n textTransform: 'uppercase',\n mb: '6px',\n color: 'muted.0',\n}\n\nconst headings: SxStyleProp = {\n borderLeft: '1px solid #E7E9EE',\n mb: '16px',\n}\n\nconst item: (level: number, active: boolean) => SxStyleProp = (\n level,\n active\n) => {\n const defaultLineHeight = `${level === 1 ? 18 : 22}px`\n return {\n ml: '-1px',\n pl: `${level * 8}px`,\n py: ['6px', '6px', '6px', '6px', '4px', '4px'],\n borderLeft: `1px solid ${active && level === 1 ? '#E31C58' : '#E7E9EE'}`,\n fontSize: ['16px', '16px', '16px', '16px', '12px', '16px'],\n lineHeight: [\n defaultLineHeight,\n defaultLineHeight,\n defaultLineHeight,\n defaultLineHeight,\n `${level === 1 ? 16 : 18}px`,\n defaultLineHeight,\n ],\n fontWeight: `${active ? '600' : '400'}`,\n color: `${active ? '#0C1522' : 'muted.0'}`,\n\n ':hover': {\n color: '#000711',\n },\n }\n}\n\nconst subItemsContainer: SxStyleProp = {\n ml: '16px',\n borderLeft: '1px solid #E7E9EE',\n}\n\nexport default { tocTitle, itemsContainer, item, subItemsContainer, headings }\n","import { useEffect, useRef, useState, useContext } from 'react'\nimport { Flex, Text, Box } from '@vtex/brand-ui'\nimport Link from 'next/link.js'\n\nimport styles from './styles'\nimport { iconTooltipStyle } from './functions'\n\nimport { Section } from 'utils/typings/types'\nimport Tooltip from 'components/tooltip'\nimport { updateOpenPage } from 'utils/sidebar-utils'\nimport SidebarSection, { SidebarSectionProps } from 'components/sidebar-section'\nimport { LibraryContext } from 'utils/context/libraryContext'\n\nexport interface SideBarSectionState {\n /** Array containing the name of the parents of the expanded page in the menu. */\n parentsArray?: string[]\n}\n\n/**\n * Sidebar component.\n */\nconst Sidebar = ({ parentsArray = [] }: SideBarSectionState) => {\n const [expandDelayStatus, setExpandDelayStatus] = useState(true)\n\n const context = useContext(LibraryContext)\n const {\n isEditorPreview,\n setActiveSectionName,\n activeSectionName,\n sidebarSections,\n sidebarDataMaster,\n } = context\n\n const sidebarSectionContent = {\n ...(Array.isArray(sidebarDataMaster)\n ? sidebarDataMaster?.find(\n (section: SidebarSectionProps) =>\n section.documentation === activeSectionName\n )\n : null),\n }\n\n updateOpenPage({\n parentsArray,\n context,\n })\n\n useEffect(() => {\n let timer: NodeJS.Timeout | undefined = undefined\n if (sidebarSectionContent.categories?.length > 0)\n timer = setTimeout(\n () => setExpandDelayStatus && setExpandDelayStatus(false),\n 5000\n )\n else setExpandDelayStatus && setExpandDelayStatus(true)\n\n return () => {\n timer && clearTimeout(timer)\n }\n }, [activeSectionName])\n\n const SideBarIcon = (sectionElement: Section) => {\n const [iconTooltip, setIconTooltip] = useState(false)\n const [tooltipLabel, setTooltipLabel] = useState(sectionElement.title)\n const titleRef = useRef()\n\n useEffect(() => {\n const resizeObserver = new MutationObserver(function (entries) {\n const target = entries[0].target as HTMLElement\n if (target.offsetWidth < target.scrollWidth) setIconTooltip(true)\n else setIconTooltip(false)\n\n if (target.offsetWidth > 0) setTooltipLabel(target.innerText)\n })\n if (titleRef.current) {\n if (titleRef.current.offsetWidth < titleRef.current.scrollWidth)\n setIconTooltip(true)\n resizeObserver.observe(titleRef.current, {\n childList: true,\n })\n }\n return () => {\n resizeObserver.disconnect\n }\n }, [titleRef.current])\n\n return (\n \n \n {\n if (isEditorPreview) {\n e.preventDefault()\n }\n setActiveSectionName(sectionElement.id)\n }}\n passHref\n aria-label={sectionElement.title}\n >\n \n \n \n {sectionElement.title}\n \n \n \n \n \n )\n }\n\n return (\n \n \n {sidebarSections.map((section, id) => {\n return (\n <>\n {id > 0 && (\n \n
\n
\n )}\n \n {section.map((element) => (\n \n ))}\n \n \n )\n })}\n
\n {activeSectionName ? : null}\n \n )\n}\n\nexport default Sidebar\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst sidebar: SxStyleProp = {\n display: [\n 'none !important',\n 'none !important',\n 'none !important',\n 'flex !important',\n ],\n position: 'sticky',\n left: '0',\n top: '5rem',\n flex: '1 0 auto',\n height: 'calc(100vh - 5rem)',\n width: 'auto',\n minWidth: 'auto',\n transition: 'all 0.3s ease-in-out',\n '.active': {\n marginLeft: '-276px',\n transition: 'all 0.3s ease-in-out',\n },\n '.iconContainerExpanded': {\n transition: 'all 0.3s ease-in-out',\n width: '160px',\n },\n '.iconDescriptionExpanded': {\n display: 'block',\n },\n}\n\nconst sidebarIcons: SxStyleProp = {\n width: ['56px', '56px', '56px', '56px', '56px', '160px'],\n minWidth: 'max-content',\n transition: 'all 0.3s ease-in-out',\n flexDirection: 'column',\n borderRight: '1px solid #E7E9EE',\n background: '#FFFFFF',\n zIndex: '2',\n paddingBottom: '32px',\n}\n\nconst linkContainer: SxStyleProp = {\n minWidth: '100%',\n}\n\nconst iconBox: SxStyleProp = {\n mt: ['16px'],\n width: '100%',\n maxWidth: '144px',\n paddingLeft: ['0', '0', '0', '8px'],\n paddingRight: ['0', '0', '0', '8px', '8px', '0'],\n py: ['0', '0', '0', '8px', '8px', '10px'],\n height: '40px',\n borderRadius: '4px',\n alignItems: 'center',\n justifyContent: 'flex-start',\n background: 'transparent',\n color: 'muted.0',\n cursor: 'pointer',\n ':hover': {\n background: '#F8F7FC',\n color: '#000711',\n path: {\n stroke: [\n '#000711',\n '#000711',\n '#000711',\n '#000711',\n '#000711',\n '#4A596B',\n ],\n },\n },\n}\n\nconst iconBoxActive: SxStyleProp = {\n ...iconBox,\n background: ['#F8F7FC', '#F8F7FC', '#F8F7FC', '#F8F7FC', '#F8F7FC', 'none'],\n color: '#E31C58',\n}\n\nconst sidebarIconsContainer: SxStyleProp = {\n width: '100%',\n flexDirection: 'column',\n alignItems: 'flex-start',\n px: ['0', '0', '0', '8px'],\n}\n\nconst icon: SxStyleProp = {\n width: ['24px'],\n height: ['24px'],\n}\n\nconst iconActive: SxStyleProp = {\n ...icon,\n '> path': {\n stroke: '#E31C58',\n },\n}\n\nconst sectionDivider: SxStyleProp = {\n px: '8px',\n marginTop: '16px',\n hr: {\n border: '1px solid #E7E9EE',\n borderTop: 'none',\n },\n}\n\nconst iconTitle: SxStyleProp = {\n display: ['none', 'none', 'none', 'none', 'none', 'block'],\n width: '100%',\n fontSize: '14px',\n ml: ['8px', '8px', '8px', '8px', '8px', '12px'],\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n}\n\nconst iconTooltip: SxStyleProp = {\n display: [\n 'flex !important',\n 'flex !important',\n 'flex !important',\n 'flex !important',\n 'flex !important',\n 'none !important',\n ],\n}\n\nexport default {\n sidebar,\n sidebarIcons,\n sidebarIconsContainer,\n linkContainer,\n iconBox,\n icon,\n iconActive,\n iconBoxActive,\n sectionDivider,\n iconTitle,\n iconTooltip,\n}\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nexport const iconTooltipStyle: SxStyleProp = (tooltipState: boolean) => {\n const iconTooltip: SxStyleProp = {\n display: [\n 'flex',\n 'flex',\n 'flex',\n 'flex',\n 'flex',\n tooltipState ? 'flex' : 'none !important',\n ],\n }\n return iconTooltip\n}\n","import { useEffect, useRef, useState } from 'react'\nimport { Box, Flex, TooltipProps, SxStyleProp } from '@vtex/brand-ui'\n\nimport styles from './styles'\nimport CaretIcon from 'components/icons/caret'\ninterface Props extends Pick {\n sx?: SxStyleProp\n isCard?: boolean\n}\n\nconst Tooltip = ({ children, label, placement, sx, isCard }: Props) => {\n const box = useRef()\n const [boxWidth, setBoxWidth] = useState(0)\n const [boxHeight, setBoxHeight] = useState(0)\n const [boxOffsetLeft, setBoxOffsetLeft] = useState(0)\n const [boxOffsetTop, setBoxOffsetTop] = useState(0)\n const [visible, setVisible] = useState(false)\n\n useEffect(() => {\n if (box.current) {\n setBoxWidth(box.current.clientWidth)\n setBoxHeight(box.current.clientHeight)\n setBoxOffsetLeft(box.current.offsetLeft)\n setBoxOffsetTop(box.current.offsetTop)\n }\n }, [\n box.current,\n box.current?.clientWidth,\n box.current?.clientHeight,\n box.current?.offsetLeft,\n box.current?.offsetTop,\n ])\n\n return (\n \n setVisible(true)}\n onMouseLeave={() => setVisible(false)}\n >\n {children}\n \n {visible && (isCard ?? true) && (\n \n \n {label}\n \n )}\n \n )\n}\n\nexport default Tooltip\n","import { SxStyleProp } from '@vtex/brand-ui'\n\ntype Placement = 'top' | 'right' | 'bottom' | 'left'\n\nconst tooltipContainer: (\n sx: SxStyleProp,\n placement: Placement,\n width: number,\n height: number,\n x: number,\n y: number\n) => SxStyleProp = (sx, placement, width, height, x, y) => {\n const position = {\n bottom: {\n left: `${x + width / 2}px`,\n top: `${y + height + 3}px`,\n },\n left: {\n left: `${x - 1}px`,\n top: `${y + height / 2}px`,\n },\n top: {\n left: `${x + width / 2}px`,\n top: `${y - 3}px`,\n },\n right: {\n left: `${x + width + 1}px`,\n top: `${y + height / 2}px`,\n },\n }\n\n const translation = {\n bottom: 'translateX(-50%)',\n left: 'translateX(-100%) translateY(-50%)',\n top: 'translateX(-50%) translateY(-100%)',\n right: 'translateY(-50%)',\n }\n\n const direction = {\n bottom: 'column',\n left: 'row-reverse',\n top: 'column-reverse',\n right: 'row',\n }\n\n return {\n ...sx,\n zIndex: '100',\n position: 'absolute',\n alignItems: 'center',\n justifyContent: 'center',\n ...position[placement],\n transform: translation[placement],\n flexDirection: direction[placement],\n }\n}\n\nconst caret: (placement: Placement) => SxStyleProp = (placement) => {\n const rotation = {\n bottom: 0,\n left: 90,\n top: 180,\n right: 270,\n }\n\n const translation = {\n bottom: 1,\n left: 3,\n top: 1,\n right: 3,\n }\n\n return {\n width: '8px',\n height: '4px',\n minWidth: 'initial',\n minHeight: 'initial',\n transform: `rotate(${rotation[placement]}deg) translateY(${translation[placement]}px)`,\n }\n}\n\nconst label: SxStyleProp = {\n borderRadius: '4px',\n backgroundColor: 'black',\n color: 'white',\n fontSize: '12px',\n fontWeight: '400',\n lineHeight: '130%',\n}\n\nconst labelContibutorsContainer: SxStyleProp = {\n ...label,\n padding: '4px 8px',\n}\n\nconst labelDocumentationContainer: SxStyleProp = {\n ...label,\n width: '284px',\n textAlign: 'center',\n px: '12px',\n py: '8px',\n}\n\nconst labelStyle = (documentationSection: boolean): SxStyleProp => {\n if (documentationSection) return labelDocumentationContainer\n return labelContibutorsContainer\n}\nexport default { tooltipContainer, caret, labelStyle }\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst CaretIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default CaretIcon\n","export const flattenJSON = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n obj: any = {},\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n res: any = {},\n extraKey = ''\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): any => {\n for (const key in obj) {\n if (typeof obj[key] !== 'object') {\n res[extraKey + key] = obj[key]\n } else {\n flattenJSON(obj[key], res, `${extraKey}${key}.`)\n }\n }\n return res\n}\n\nexport const getKeyByEndpoint = (\n object: { [x: string]: string },\n endpoint: string,\n slug: string,\n method?: string\n) => {\n const slugPaths = Object.keys(object).filter((key) => object[key] === slug)\n let path = ''\n slugPaths?.map((el) => {\n if (\n method &&\n object[`${el.replace('.slug', '.method')}`] == method?.toUpperCase() &&\n object[`${el.replace('.slug', '.endpoint')}`] == endpoint\n ) {\n path = el\n } else if (hasChildren(object, el.replace('.slug', '.children'))) {\n path = el\n }\n })\n return path\n}\n\nfunction hasChildren(\n flattenedJson: { [x: string]: string },\n elementKey: string\n): boolean {\n for (const key in flattenedJson) {\n if (key.startsWith(`${elementKey}.`)) {\n return true\n }\n }\n return false\n}\n\nexport const getParents = (\n path: string,\n data: string,\n flattenedSidebar: { [x: string]: string },\n parentsArray: string[],\n parent?: string\n) => {\n const pathParts = path?.split('children')\n pathParts?.splice(-1)\n let prev = ''\n pathParts?.map((el) => {\n el = prev + el\n prev = el + 'children'\n\n if (!parent || flattenedSidebar[`${el}${data}`].includes(parent)) {\n parentsArray.push(flattenedSidebar[`${el}${data}`])\n }\n })\n return parentsArray\n}\n","import { Section } from './typings/types'\nimport { flattenJSON, getKeyByEndpoint, getParents } from './navigation-utils'\nimport { useRouter } from 'next/router.js'\nimport { useEffect } from 'react'\nimport { ContextType } from './context/libraryContext'\n\nexport const getIcon = (doc: string, sections: Section[][]) => {\n for (const section of sections) {\n return section.find((icon) => icon.title === doc)?.Icon\n }\n}\n\ninterface updateOpenPageProps {\n parentsArray?: string[]\n context: ContextType\n}\nexport const updateOpenPage = ({\n parentsArray = [],\n context,\n}: updateOpenPageProps) => {\n const {\n activeSidebarElement,\n sidebarDataMaster,\n setActiveSidebarElement,\n openSidebarElement,\n closeSidebarElements,\n } = context\n const flattenedSidebar = flattenJSON(sidebarDataMaster)\n const router = useRouter()\n\n let activeSlug = ''\n const querySlug = router.query.slug\n\n if (querySlug && router.pathname === '/docs/api-reference/[slug]') {\n activeSlug = router.asPath.replace('/docs/api-reference/', '')\n const docPath = activeSlug.split('/')\n const hasHashTag = router.asPath.indexOf('#') > -1\n const apiSlug = docPath[0].split(hasHashTag ? '#' : '?endpoint=')[0]\n const endpoint = '/' + docPath.splice(1, docPath.length).join('/')\n let keyPath\n if (endpoint == '/') {\n activeSlug = apiSlug\n keyPath = getKeyByEndpoint(flattenedSidebar, '', apiSlug)\n } else {\n const method = docPath[0]\n .split(hasHashTag ? '#' : '?endpoint=')[1]\n .split('-')[0]\n keyPath = getKeyByEndpoint(flattenedSidebar, endpoint, apiSlug, method)\n }\n parentsArray.push(activeSlug)\n if (keyPath) {\n getParents(keyPath, 'slug', flattenedSidebar, parentsArray)\n }\n } else {\n activeSlug = parentsArray[parentsArray.length - 1]\n }\n\n useEffect(() => {\n closeSidebarElements(parentsArray)\n parentsArray.forEach((slug: string) => {\n openSidebarElement(slug)\n })\n setActiveSidebarElement(activeSlug?.replace('?endpoint=', '#'))\n }, [activeSidebarElement, router])\n}\n","// Sidebar Section\nimport { Flex, Box, Text, Button } from '@vtex/brand-ui'\nimport { useContext, useMemo, useState } from 'react'\n\nimport styles from './styles'\nimport { SidebarElement } from '../sidebar-elements'\nimport SectionFilter from '../sidebar-section-filter'\nimport SideBarElements from '../sidebar-elements'\nimport SearchIcon from 'components/icons/search-icon'\nimport SideBarToggleIcon from 'components/icons/sidebar-toggle-icon'\nimport ArrowLeftIcon from 'components/icons/arrow-left-icon'\nimport { getIcon } from 'utils/sidebar-utils'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\n\nexport interface SidebarSectionProps {\n documentation: string\n name: string | { en: string, es: string, pt: string }\n categories: SidebarElement[]\n slugPrefix: string\n isHamburgerMenu: boolean\n}\n\nconst SidebarSection = ({\n documentation,\n name,\n categories,\n slugPrefix,\n isHamburgerMenu = false,\n}: SidebarSectionProps) => {\n const [searchValue, setSearchValue] = useState('')\n const {\n isEditorPreview,\n sidebarSectionHidden,\n setSidebarSectionHidden,\n sidebarSections,\n locale\n } = useContext(LibraryContext)\n const [methodFilterList, setMethodFilterList] = useState([\n { name: 'POST', active: false },\n { name: 'GET', active: false },\n { name: 'PUT', active: false },\n { name: 'DELETE', active: false },\n { name: 'PATCH', active: false },\n ])\n\n const filterStatus = methodFilterList.some(\n (methodFilter) => methodFilter.active\n )\n\n const filteredResult = useMemo(() => {\n if (!filterStatus && searchValue === '') return categories\n\n const dataCopy = JSON.parse(JSON.stringify(categories))\n\n const filteredCategories = dataCopy\n .map((category: SidebarElement) => {\n category.children = category.children\n .map((subcategory) => {\n subcategory.children = subcategory.children.filter((endpoint) => {\n const hasMethodFilter =\n !filterStatus ||\n methodFilterList.find(\n (methodFilter) => methodFilter.name === endpoint.method\n )?.active\n const hasInputFilter =\n searchValue === '' ||\n (typeof endpoint.name === 'string'\n ? endpoint.name\n : endpoint.name[locale]\n )\n .toLowerCase()\n .includes(searchValue.toLowerCase())\n return hasMethodFilter && hasInputFilter\n })\n return subcategory\n })\n .filter(\n (subcategory) =>\n subcategory.children.length > 0 ||\n (subcategory.type === 'markdown' &&\n (typeof subcategory.name === 'string'\n ? subcategory.name\n : subcategory.name[locale]\n )\n .toLowerCase()\n .includes(searchValue.toLowerCase()))\n )\n return category\n })\n .filter((category: SidebarElement) => category.children.length > 0)\n return filteredCategories\n }, [filterStatus, methodFilterList, categories, searchValue])\n\n const DocIcon = getIcon(documentation, sidebarSections)\n\n let localizedSectionTitle = ''\n\n if (!categories || categories.length <= 0) {\n return <>\n } else {\n localizedSectionTitle = typeof(name) === 'string' ? name : name[locale]\n }\n\n return isHamburgerMenu ? (\n \n \n \n }\n onClick={() => {\n setSidebarSectionHidden(true)\n }}\n />\n {DocIcon && }\n {localizedSectionTitle}\n \n \n \n \n setSearchValue(e.currentTarget.value)}\n />\n \n {documentation == 'API Reference' && (\n \n )}\n \n \n \n \n \n \n ) : (\n \n \n \n {isEditorPreview && (\n \n \n \n \n \n \n PREVIEW MODE\n \n )}\n {localizedSectionTitle}\n \n \n setSearchValue(e.currentTarget.value)}\n />\n \n \n {documentation == 'API Reference' && (\n \n )}\n \n \n \n \n \n {\n setSidebarSectionHidden(\n (sidebarSectionHidden) => !sidebarSectionHidden\n )\n }}\n sx={sidebarSectionHidden ? styles.toggleIcon : {}}\n />\n \n \n )\n}\n\nexport default SidebarSection\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst sidebarContainer: SxStyleProp = {\n position: 'relative',\n width: 'auto',\n height: 'inherit',\n borderRight: '1px solid #E7E9EE',\n zIndex: '1',\n left: '0',\n transition: 'all 0.3s ease-in-out',\n '.toggleIcon': {\n opacity: '0',\n transition: 'all 0.3s ease-out',\n },\n '.sidebarHide': {\n opacity: '0',\n transition: 'all 0.5s ease-out',\n },\n ':hover': {\n '.toggleIcon': {\n opacity: '100',\n transition: 'all 0.3s ease-out',\n },\n },\n}\n\nconst sidebarContainerHamburger: SxStyleProp = {\n width: 'auto',\n minHeight: '692px',\n zIndex: '1',\n}\n\nconst sidebarContainerBox: SxStyleProp = {\n opacity: '100',\n paddingTop: '34px',\n paddingBottom: '24px',\n overflowY: 'auto',\n height: 'inherit',\n maskImage:\n 'linear-gradient(to top, transparent, black), linear-gradient(to left, transparent 17px, black 17px)',\n maskSize: '100% 20000px',\n maskPosition: 'left bottom',\n transition: 'mask-position 0.3s, -webkit-mask-position 0.3s',\n ':hover': {\n maskPosition: 'left top',\n },\n}\n\nconst sidebarContainerBoxHamburger: SxStyleProp = {\n opacity: '100',\n transition: 'all 1s ease-out',\n}\n\nconst sidebarContainerBody: SxStyleProp = {\n px: '17px',\n}\n\nconst sidebarContainerHeader: SxStyleProp = {\n ...sidebarContainerBody,\n}\n\nconst sidebarContainerTitle: SxStyleProp = {\n alignItems: 'center',\n lineHeight: '22px',\n gap: '5px',\n padding: '17px 0px 17px 17px',\n borderBottom: '1px solid #E7E9EE',\n}\n\nconst sidebarTitle: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n fontSize: '16px',\n lineHeight: '18px',\n}\n\nconst sidebarHelpIcon: SxStyleProp = {\n ml: '4px',\n width: '24px',\n height: '24px',\n}\n\nconst searchBox: SxStyleProp = {\n mt: '16px',\n mb: '20px',\n alignItems: 'center',\n borderRadius: '4px',\n background: '#F4F4F4',\n width: '265px',\n height: '40px',\n paddingLeft: '12px',\n}\n\nconst searchInput: SxStyleProp = {\n width: 'auto',\n background: '#F4F4F4',\n border: '#F4F4F4',\n color: '#545454',\n fontSize: ['14px'],\n}\n\nconst searchIcon: SxStyleProp = {\n minWidth: '16px',\n minHeight: '16px',\n width: '16px',\n mr: '8px',\n}\n\nconst toggleIconBox: SxStyleProp = {\n justifyContent: 'center',\n alignItems: 'center',\n width: '32px',\n height: '32px',\n borderRadius: '50%',\n border: '1px solid #E7E9EE',\n background: '#FFFFFF',\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\n position: 'absolute',\n top: '32px',\n right: '-16px',\n cursor: 'pointer',\n}\n\nconst toggleIconBoxActive: SxStyleProp = {\n ...toggleIconBox,\n opacity: '100 !important',\n}\n\nconst toggleIcon: SxStyleProp = {\n transform: 'scaleX(-1)',\n}\n\nconst arrowButton: SxStyleProp = {\n padding: '0px',\n}\n\nconst previewMode: SxStyleProp = {\n display: 'flex',\n color: '#A87600',\n backgroundColor: '#ffe5b5',\n padding: '10px',\n borderRadius: '10px',\n fontWeight: '600',\n fontSize: '14px',\n lineHeight: '20px',\n letterSpacing: '0.5px',\n mb: '20px',\n svg: {\n width: '20px',\n mr: '10px',\n },\n}\n\nexport default {\n sidebarContainer,\n sidebarContainerHamburger,\n sidebarContainerBox,\n sidebarContainerBoxHamburger,\n sidebarContainerBody,\n sidebarContainerHeader,\n sidebarContainerTitle,\n sidebarTitle,\n sidebarHelpIcon,\n searchBox,\n searchInput,\n searchIcon,\n toggleIconBox,\n toggleIconBoxActive,\n toggleIcon,\n arrowButton,\n previewMode,\n}\n","import { Box, Flex, Text } from '@vtex/brand-ui'\nimport MethodCategory from 'components/method-category'\nimport { Dispatch, SetStateAction, useContext, useState } from 'react'\n\nimport styles from './styles'\nimport { MethodType } from 'utils/typings/types'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\n\ntype MethodFilter = {\n name: string\n active: boolean\n}\n\ninterface MethodButtonProps {\n methodFilter: MethodFilter\n}\n\ninterface SectionFilterProps {\n methodFilterList: MethodFilter[]\n setMethodFilter: Dispatch>\n}\n\nconst SectionFilter = ({\n methodFilterList,\n setMethodFilter,\n}: SectionFilterProps) => {\n const [activeFilters, setActiveFilters] = useState([])\n const { locale } = useContext(LibraryContext)\n\n const setFilter = (methodFilterChanged: MethodType | null) => {\n if (methodFilterChanged) {\n const index = activeFilters.indexOf(methodFilterChanged)\n index === -1\n ? setActiveFilters([...activeFilters, methodFilterChanged])\n : setActiveFilters(\n activeFilters.filter((filter) => filter !== methodFilterChanged)\n )\n setMethodFilter(\n methodFilterList.map((methodFilter) => {\n if (methodFilter.name === methodFilterChanged)\n methodFilter.active = !methodFilter.active\n return methodFilter\n })\n )\n } else {\n setActiveFilters([])\n setMethodFilter(\n methodFilterList.map((methodFilter) => {\n methodFilter.active = false\n return methodFilter\n })\n )\n }\n }\n\n const MethodButton = ({ methodFilter }: MethodButtonProps) => {\n return (\n setFilter(methodFilter.name as MethodType)}\n >\n \n \n )\n }\n\n return (\n \n \n {messages[locale]['api_reference_sidebar_filter']}\n \n \n {methodFilterList.map((methodFilter) => (\n \n ))}\n {activeFilters.length > 1 && (\n setFilter(null)} sx={styles.clear}>\n {messages[locale]['api_reference_sidebar_filter_clear']}\n \n )}\n \n \n )\n}\n\nexport default SectionFilter\n","import { Flex, Text, SxStyleProp } from '@vtex/brand-ui'\nimport { categoryStyle, categoryText, closeCategoryStyle } from './functions'\nimport styles from './styles'\nimport CloseFilterIcon from 'components/icons/close-filter-icon'\nimport { MethodType } from 'utils/typings/types'\n\nexport interface MethodCategoryProps {\n method: MethodType\n active: boolean\n origin: 'sidebar' | 'search' | 'filter' | 'pagination'\n sx?: SxStyleProp\n}\n\nconst MethodCategory = ({\n method,\n active,\n origin,\n sx,\n}: MethodCategoryProps) => {\n return (\n \n {categoryText(method, origin)}\n {origin === 'filter' && active && (\n \n )}\n \n )\n}\n\nexport default MethodCategory\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst container: SxStyleProp = {\n border: '1px solid #DDDDDD',\n background: '#F4F4F4',\n borderRadius: '2px',\n width: '24px',\n height: '24px',\n alignItems: 'center',\n justifyContent: 'center',\n}\n\nconst text: SxStyleProp = {\n fontWeight: '600',\n fontSize: '12px',\n}\n\nconst closeIcon: SxStyleProp = {\n minWidth: '12px',\n minHeight: '12px',\n height: '12px',\n width: '12px',\n ml: '4px',\n}\n\nexport default {\n container,\n text,\n closeIcon,\n}\n","import { SxStyleProp } from '@vtex/brand-ui'\nimport { MethodType } from 'utils/typings/unionTypes'\n\nimport styles from './styles'\n\nexport const methodsColors = {\n POST: {\n border: '1px solid #7CBBEA',\n color: '#2978B5',\n background: '#DEECF7',\n },\n GET: {\n border: '1px solid #83D187',\n color: '#38853C',\n background: '#DFF1E0',\n },\n PUT: {\n border: '1px solid #F5AE70',\n color: '#D56A00',\n background: '#FFEBD7',\n },\n DELETE: {\n border: '1px solid #F49494',\n color: '#CC3D3D',\n background: '#F8E3E3',\n },\n PATCH: {\n border: '1px solid #afa871',\n color: '#6C6314',\n background: '#e9e7da',\n },\n}\n\nexport const categoryStyle = (\n method: MethodType,\n active: boolean,\n sx?: SxStyleProp\n): SxStyleProp => {\n const categoryColors = methodsColors[method] || {\n border: '1px solid #F49494',\n color: '#CC3D3D',\n background: '#F8E3E3',\n }\n\n const categoryStyle: SxStyleProp = active\n ? {\n ...styles.container,\n ...categoryColors,\n ...sx,\n ':hover': {\n '.filter-close-button': {\n rect: {\n fill: categoryColors.color,\n },\n path: {\n stroke: '#DEECF7',\n },\n },\n },\n }\n : {\n ...styles.container,\n color: categoryColors.color,\n ...sx,\n }\n\n return categoryStyle\n}\n\nexport const categoryText = (method: MethodType, origin: string): string => {\n const textPascalCase = method[0] + method.slice(1).toLowerCase()\n if (origin == 'filter') return textPascalCase\n return textPascalCase.slice(0, 2)\n}\n\nexport const closeCategoryStyle = (method: MethodType) => {\n const categoryColors = methodsColors[method]\n const categoryStyle: SxStyleProp = {\n ...styles.closeIcon,\n rect: {\n fill: 'transparent',\n },\n path: {\n stroke: categoryColors.color,\n },\n }\n\n return categoryStyle\n}\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst CloseFilterIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default CloseFilterIcon\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst container: SxStyleProp = {\n px: '17px',\n paddingTop: '6px',\n borderBottom: '1px solid #E7E9EE',\n paddingBottom: '16px',\n mb: '24px',\n}\n\nconst text: SxStyleProp = {\n mb: '8px',\n}\n\nconst category: SxStyleProp = {\n mr: '8px',\n px: '4px',\n width: 'auto',\n cursor: 'pointer',\n ':hover': {\n borderWidth: '2px',\n },\n}\n\nconst clear: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n color: 'muted.0',\n fontSize: '12px',\n cursor: 'pointer',\n ':hover': {\n color: '#000711',\n },\n}\n\nexport default {\n container,\n text,\n category,\n clear,\n}\n","import { useRouter } from 'next/router.js'\nimport React, { Fragment, useContext } from 'react'\nimport {\n Box,\n Flex,\n Link,\n Button,\n IconCaret,\n IconExternalLink,\n} from '@vtex/brand-ui'\n\nimport MethodCategory from 'components/method-category'\n\nimport { styleByLevelNormal, textStyle } from './functions'\nimport styles from './styles'\nimport { MethodType } from 'utils/typings/types'\nimport { LibraryContext } from 'utils/context/libraryContext'\n\nexport interface SidebarElement {\n name: string | { en: string; pt: string; es: string }\n slug: string | { en: string; pt: string; es: string }\n origin: string\n type: string\n method?: MethodType\n endpoint?: string\n children: SidebarElement[]\n /** When true, the category starts expanded instead of collapsed. */\n defaultOpen?: boolean\n}\n\nexport interface SidebarProps {\n slugPrefix?: string\n items: SidebarElement[]\n subItemLevel: number\n}\n\nconst SidebarElements = ({ slugPrefix, items, subItemLevel }: SidebarProps) => {\n const {\n isEditorPreview,\n activeSidebarElement,\n sidebarElementStatus,\n toggleSidebarElementStatus,\n sidebarDataMaster,\n locale,\n } = useContext(LibraryContext)\n const router = useRouter()\n\n const isElementOpen = (slug: string, defaultOpen?: boolean) =>\n sidebarElementStatus.has(slug) ? sidebarElementStatus.get(slug) : !!defaultOpen\n\n const handleClick = (\n e: { preventDefault: () => void },\n pathSuffix: string,\n slug: string\n ) => {\n e.preventDefault()\n const hasEndpointQuery = router.query.endpoint\n const href = getHref(slugPrefix || '', pathSuffix, slug)\n router.push(href, href, { locale }).then(() => {\n if (hasEndpointQuery) router.reload()\n })\n }\n\n // eslint-disable-next-line\n // @ts-ignore\n const checkDocumentationType = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n sidebarData: any,\n slug: string,\n type: string\n ) => {\n if (\n !sidebarData ||\n (typeof sidebarData !== 'object' && !Array.isArray(sidebarData))\n ) {\n return false\n } else if (sidebarData?.slug == slug && sidebarData?.type == type) {\n return true\n } else if (Array.isArray(sidebarData)) {\n for (let i = 0; i < sidebarData.length; i++) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const result = checkDocumentationType(sidebarData[i], slug, type)\n if (result) {\n return result\n }\n }\n } else {\n for (const k in sidebarData) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const result = checkDocumentationType(sidebarData[k], slug, type)\n if (result) {\n return result\n }\n }\n }\n\n return false\n }\n\n const getHref = (slugPrefix: string, pathSuffix: string, slug: string) => {\n const validLocales = ['pt', 'es']\n const localePrefix =\n locale && validLocales.includes(locale) ? `/${locale}` : ''\n const href =\n slugPrefix === 'docs/api-reference'\n ? `/${slugPrefix}/${slug}/${pathSuffix}`\n : `${localePrefix}/${slugPrefix}/${slug}`\n return href.replaceAll('//', '/')\n }\n\n const ElementRoot = ({\n slug,\n name,\n method,\n endpoint,\n children,\n defaultOpen,\n }: SidebarElement) => {\n const localizedName: string = typeof name === 'string' ? name : name[locale]\n const localizedSlug: string = typeof slug === 'string' ? slug : slug[locale]\n const isExpandable = children.length > 0\n const isOpen = isElementOpen(localizedSlug, defaultOpen)\n const pathSuffix = method ? `#${method.toLowerCase()}-${endpoint}` : ''\n const activeItem = method ? `${localizedSlug}${pathSuffix}` : localizedSlug\n return (\n \n \n {isExpandable && (\n (\n \n )}\n onClick={() => toggleSidebarElementStatus(localizedSlug, isOpen)}\n />\n )}\n {!checkDocumentationType(\n sidebarDataMaster,\n localizedSlug,\n 'category'\n ) &&\n !checkDocumentationType(sidebarDataMaster, localizedSlug, 'link') ? (\n void }) => {\n if (!isEditorPreview) {\n handleClick(e, pathSuffix, localizedSlug)\n }\n toggleSidebarElementStatus(activeItem)\n }}\n href={getHref(slugPrefix || '', pathSuffix, localizedSlug)}\n target={isEditorPreview === true ? '_blank' : '_self'}\n locale={locale}\n >\n {method && (\n \n )}\n {localizedName}\n \n ) : checkDocumentationType(\n sidebarDataMaster,\n localizedSlug,\n 'link'\n ) ? (\n \n \n {localizedName}\n \n ) : (\n {\n toggleSidebarElementStatus(localizedSlug, isOpen)\n }}\n >\n {method && (\n \n )}\n {localizedName}\n \n )}\n \n \n )\n }\n\n const ElementChildren = ({ slug, children, defaultOpen }: SidebarElement) => {\n const isExpandable = children.length > 0\n // const newPathPrefix =\n // slugPrefix === 'api-reference' ? `/api-reference/${slug}` : slugPrefix\n\n const localizedSlug: string = typeof slug === 'string' ? slug : slug[locale]\n return isExpandable && isElementOpen(localizedSlug, defaultOpen) ? (\n \n \n \n ) : null\n }\n\n return (\n \n {items?.map((item, index) => {\n const key =\n typeof item.slug === 'string'\n ? String(item.slug) + String(index)\n : String(item.slug[locale]) + String(index)\n const slug =\n typeof item.slug === 'string'\n ? `${item.slug}`\n : `${item.slug[locale]}`\n\n return (\n \n \n \n \n \n {subItemLevel == 0 ? (\n \n
\n
\n ) : null}\n
\n )\n })}\n
\n )\n}\n\nexport default SidebarElements\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst elementContainer: SxStyleProp = {\n maxWidth: '265px',\n background: '#FFFFFF',\n ':hover': {\n background: '#F8F7FC',\n a: {\n color: '#142032',\n '& > :first-of-type': {\n borderWidth: '2px',\n },\n },\n },\n}\n\nconst elementText: SxStyleProp = {\n color: 'muted.0',\n fontSize: '14px',\n lineHeight: '20px',\n fontWeight: '400',\n textAlign: 'initial',\n paddingBlock: '7px',\n display: 'flex',\n alignItems: 'center',\n cursor: 'pointer',\n}\n\nconst elementActive: SxStyleProp = {\n ...elementText,\n color: '#D71D55 !important',\n}\n\nconst arrowIcon: SxStyleProp = {\n padding: '0',\n color: 'muted.1',\n height: '34px',\n}\n\nconst arrowIconActive: SxStyleProp = {\n ...arrowIcon,\n color: '#D71D55',\n}\n\nconst elementButton: SxStyleProp = {\n textTransform: 'initial',\n fontVariationSettings: 'unset',\n padding: '0',\n margin: '0',\n textDecoration: 'none !important',\n}\n\nconst sectionDivider: SxStyleProp = {\n hr: {\n border: '1px solid #E7E9EE',\n borderTop: 'none',\n },\n}\n\nconst methodBox: SxStyleProp = {\n mr: '10px',\n}\n\nexport default {\n elementContainer,\n elementText,\n elementActive,\n arrowIcon,\n arrowIconActive,\n elementButton,\n sectionDivider,\n methodBox,\n}\n","import { SxStyleProp } from '@vtex/brand-ui'\nimport styles from './styles'\n\nexport const styleByLevelNormal = (level: number, icon: boolean) => {\n const ml = 8 + (icon ? (level - 1) * 20 + 6 : (level - 1) * 20 + 14)\n const borderLeft = icon ? 'none' : level >= 2 ? '1px solid #E7E9EE' : ''\n const normal: SxStyleProp = {\n marginLeft: `${ml}px`,\n borderLeft,\n }\n\n return normal\n}\n\nexport const textStyle = (active: boolean, icon: boolean) => {\n const ml = icon ? '4px' : '16px'\n if (active) {\n const textStyleActive: SxStyleProp = {\n ...styles.elementActive,\n ml,\n }\n return textStyleActive\n }\n const textStyle: SxStyleProp = {\n ...styles.elementText,\n ml,\n }\n\n return textStyle\n}\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst SearchIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default SearchIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst SideBarToggleIcon = (props: IconProps) => (\n \n \n \n \n \n \n)\n\nexport default SideBarToggleIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst ArrowLeftIcon = (props: IconProps) => (\n \n {' '}\n \n \n \n)\n\nexport default ArrowLeftIcon\n","import {\n Header,\n HamburgerMenu as VtexHamburgerMenu,\n Box,\n IconCaret,\n Button,\n} from '@vtex/brand-ui'\nimport styles from './styles'\n\nimport { useContext } from 'react'\nimport DocumentationCard from 'components/documentation-card'\nimport SidebarSection, { SidebarSectionProps } from 'components/sidebar-section'\nimport { updateOpenPage } from 'utils/sidebar-utils'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport SearchInput from 'components/search-input'\n\nexport interface HamburgerMenuProps {\n /** Array that contains the name of the sections in the menu that should be expanded. */\n parentsArray?: string[]\n}\n\n/** Hamburger Menu component, the menu uses the sidebar components internally, but it is only visible on the smaller breakpoints. */\nconst HamburgerMenu = ({ parentsArray = [] }: HamburgerMenuProps) => {\n const context = useContext(LibraryContext)\n const {\n sidebarDataMaster,\n sidebarSectionHidden,\n activeSectionName,\n setActiveSectionName,\n setSidebarSectionHidden,\n hamburguerSections,\n } = context\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const isDocument = (sections: any, documentID: string) => {\n let isDoc = false\n\n if (Array.isArray(sections)) {\n isDoc = sections.find((section) => section.documentation === documentID)\n }\n\n return isDoc\n }\n\n updateOpenPage({ parentsArray, context })\n\n return (\n \n \n \n \n \n \n \n \n {hamburguerSections.map((section, id) => (\n 0\n ? styles.updatesContainer\n : styles.documentationContainer\n }\n key={id}\n data-cy=\"dropdown-menu-first-section\"\n >\n {section.map((card) => (\n \n \n {isDocument(sidebarDataMaster, card.id) ? (\n }\n sx={\n activeSectionName === card.id &&\n !sidebarSectionHidden\n ? styles.arrowIconActive\n : styles.arrowIcon\n }\n onClick={() => {\n setActiveSectionName(card.id)\n setSidebarSectionHidden(false)\n }}\n />\n ) : null}\n \n ))}\n \n ))}\n \n \n {activeSectionName ? (\n \n section.documentation === activeSectionName\n )\n : null)}\n />\n ) : null}\n \n \n \n \n \n )\n}\n\nexport default HamburgerMenu\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst menuContainer: SxStyleProp = {\n display: 'flex',\n width: 'max-content',\n}\n\nconst cardContainer: SxStyleProp = {\n display: 'flex',\n flexDirection: 'column',\n width: '100vw',\n overflowY: 'scroll',\n height: 'calc(100vh - 5rem)',\n}\n\nconst sideMenuContainer: SxStyleProp = {\n backgroundColor: '#ffff',\n height: 'calc(100vh - 5rem)',\n width: '100vw',\n overflowY: 'auto',\n overflowX: 'hidden',\n transform: 'translate(0)',\n transition: 'transform .5s cubic-bezier(.4,0,.2,1)',\n}\n\nconst hamburgerContainer: SxStyleProp = {\n display: ['block', 'block', 'block', 'none'],\n backgroundColor: '#ffff',\n width: '100%',\n '.menuHidden': {\n transform: 'translate(-100%)',\n },\n}\n\n// eslint-disable-next-line prettier/prettier\n\nconst hamburgerSearchContainer: SxStyleProp = {\n display: 'flex',\n justifyContent: 'center',\n paddingBlock: '18px',\n height: 'auto',\n}\n\nconst documentationContainer: SxStyleProp = {\n px: '16px',\n paddingBottom: '8px',\n}\n\nconst updatesContainer: SxStyleProp = {\n px: '16px',\n paddingTop: '8px',\n borderRadius: '0px 0px 8px 8px',\n borderTop: '1px solid #E7E9EE',\n}\n\nconst innerHambugerContainer: SxStyleProp = {\n padding: '0px',\n position: 'relative',\n overflowX: 'hidden',\n}\n\nconst innerCardContainer: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n}\n\nconst arrowIcon: SxStyleProp = {\n padding: '0',\n height: '50px',\n width: '50px',\n color: 'muted.1',\n}\n\nconst arrowIconActive: SxStyleProp = {\n ...arrowIcon,\n color: '#D71D55',\n}\n\nexport default {\n menuContainer,\n cardContainer,\n sideMenuContainer,\n hamburgerSearchContainer,\n documentationContainer,\n updatesContainer,\n hamburgerContainer,\n innerHambugerContainer,\n innerCardContainer,\n arrowIcon,\n arrowIconActive,\n}\n","import Link from 'next/link.js'\nimport { Box, Flex, Text } from '@vtex/brand-ui'\n\nimport styles from './styles'\nimport { cardContainer, cardTitle, titleContainer } from './functions'\nimport { MouseEventHandler } from 'react'\nimport { DataElement } from 'utils/typings/types'\n\nexport interface DocumentProps extends DataElement {\n title: string\n}\nexport interface CardProps extends DocumentProps {\n containerType: 'dropdown' | 'see-also' | 'mobile'\n onClick?: MouseEventHandler | undefined\n}\nconst DocumentationCard = ({\n title,\n description,\n link,\n containerType,\n Icon,\n onClick,\n}: CardProps) => {\n return (\n \n \n \n \n \n \n {title}\n \n \n \n {description}\n \n \n \n \n )\n}\n\nexport default DocumentationCard\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst cardContainer: SxStyleProp = {\n my: ['16px', '16px', '16px', '16px', '16px', '16px', '24px'],\n padding: '8px',\n cursor: 'pointer',\n ':active, :hover': {\n borderRadius: '4px',\n backgroundColor: '#F8F7FC',\n\n '.description': {\n color: 'muted.0',\n },\n },\n\n ':active .title': {\n color: '#0C1522',\n },\n\n ':hover .title': {\n color: '#000711',\n },\n}\n\nconst titleContainer: SxStyleProp = {\n alignItems: 'center',\n}\n\nconst title: SxStyleProp = {\n ml: '8px',\n color: 'muted.0',\n}\n\nconst description: SxStyleProp = {\n ml: '32px',\n fontSize: '16px',\n lineHeight: '18px',\n color: 'muted.1',\n}\n\nexport default {\n cardContainer,\n description,\n title,\n titleContainer,\n}\n","import { SxStyleProp } from '@vtex/brand-ui'\nimport styles from './styles'\n\nconst cardContainer = (containerType: string) => {\n const containerWidth =\n containerType === 'dropdown'\n ? ['308px', '442px', '444px', '480px']\n : containerType === 'mobile'\n ? '100%'\n : ['324px', '544px', '544px', '544px', '544px', '720px', '1400px']\n\n const textWidth =\n containerType === 'dropdown'\n ? ['276px', '410px', '412px', '432px']\n : containerType === 'mobile'\n ? '90%'\n : ['276px', '496px', '496px', '496px', '496px', '672px', '1352px']\n\n const cardContainer: SxStyleProp = {\n ...styles.cardContainer,\n width: containerWidth,\n\n '.title, .description': {\n width: textWidth,\n },\n }\n\n return cardContainer\n}\n\nconst titleContainer = (containerType: string) => {\n const marginBottom =\n containerType === 'dropdown' ? ['5px', '5px', '5px', '1px'] : '8px'\n\n const titleContainer: SxStyleProp = {\n ...styles.titleContainer,\n marginBottom,\n }\n\n return titleContainer\n}\n\nconst cardTitle = (containerType: string) => {\n const titleAttributes =\n containerType === 'see-also'\n ? {\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n fontSize: '18px',\n lineHeight: '24px',\n }\n : {\n fontSize: '16px',\n lineHeight: '22px',\n }\n\n const cardTitle: SxStyleProp = {\n ...styles.title,\n ...titleAttributes,\n }\n\n return cardTitle\n}\n\nexport { cardContainer, cardTitle, titleContainer }\n","import { Configure, InstantSearch } from 'react-instantsearch-dom'\nimport SearchBox from './search-box'\nimport Results from './results-box'\nimport { Box } from '@vtex/brand-ui'\nimport { useContext, useRef, useState } from 'react'\nimport useClickOutside from 'utils/hooks/useClickOutside'\nimport { searchClient, searchIndex } from 'utils/config/search-config'\nimport { LibraryContext } from 'utils/context/libraryContext'\n\nexport default function SearchInput() {\n const { locale } = useContext(LibraryContext)\n const [focusOut, setfocusOut] = useState<{ modaltoggle: boolean }>({\n modaltoggle: true,\n })\n const resultsBox = useRef()\n useClickOutside(resultsBox, setfocusOut)\n\n const changeFocus = (value: boolean) => {\n setfocusOut({ modaltoggle: value })\n }\n\n return (\n \n {searchClient.instantSearchConfigs && (\n \n )}\n {searchClient.useLanguageFilter && (\n \n )}\n {!searchClient.useLanguageFilter && }\n setfocusOut({ modaltoggle: true })} ref={resultsBox}>\n \n {focusOut.modaltoggle && }\n \n \n )\n}\n","import { useRef, KeyboardEvent, useContext } from 'react'\nimport { useRouter } from 'next/router.js'\nimport { Flex } from '@vtex/brand-ui'\nimport { connectSearchBox } from 'react-instantsearch-dom'\nimport { SearchBoxProvided } from 'react-instantsearch-core'\n\nimport SearchIcon from 'components/icons/search-icon'\nimport styles from './styles'\nimport { messages } from 'utils/get-message'\nimport { LibraryContext } from 'utils/context/libraryContext'\n\ninterface SearchBoxProps extends SearchBoxProvided {\n changeFocus: (value: boolean) => void\n}\n\nconst SearchBoxComponent = ({\n currentRefinement,\n refine,\n changeFocus,\n}: SearchBoxProps) => {\n const router = useRouter()\n const inputRef = useRef(null)\n const { locale } = useContext(LibraryContext)\n\n const handleClick = () => {\n if (inputRef.current != null) inputRef.current.focus()\n }\n\n const keyPressed = (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n router.push({\n pathname: '/search',\n query: { keyword: inputRef.current?.value },\n })\n inputRef.current?.blur()\n changeFocus(false)\n }\n }\n\n return (\n \n \n keyPressed(e)}\n onChange={(e) => refine(e.currentTarget.value)}\n />\n \n )\n}\n\nconst SearchBox = connectSearchBox(SearchBoxComponent)\n\nexport default SearchBox\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst resultsOuterContainer: SxStyleProp = {\n position: 'relative',\n}\n\nconst resultsInnerContainer: SxStyleProp = {\n top: 0,\n position: 'absolute',\n width: ['288px', '458px', '458px', '288px', '416px', '544px'],\n border: '1px solid #B9B9B9',\n borderRadius: '0px 0px 4px 4px',\n background: '#FFFFFF',\n}\n\nconst resultsBox: SxStyleProp = {\n padding: '16px',\n}\n\nconst seeAll: SxStyleProp = {\n padding: '24px',\n borderTop: '1px solid #E7E9EE',\n color: 'muted.0',\n cursor: 'pointer',\n ':hover': {\n background: '#F8F7FC',\n borderTop: '1px solid #d0cdcd',\n },\n}\n\nconst hitBox: SxStyleProp = {\n padding: '8px',\n cursor: 'pointer',\n ':active, :hover': {\n backgroundColor: '#F8F7FC',\n borderRadius: '4px',\n '.hit-content-title': {\n color: '#000711',\n },\n '.hit-icon': {\n '> path': {\n stroke: '#000711',\n },\n },\n },\n}\n\nconst hitIcon: SxStyleProp = {\n width: '16px',\n height: '16px',\n marginRight: '8px',\n}\n\nconst hitContentContainer: SxStyleProp = {\n width: '100%',\n minWidth: 0,\n overflow: 'hidden',\n}\n\nconst snippetText: SxStyleProp = {\n overflowWrap: 'break-word',\n wordBreak: 'break-word',\n overflow: 'hidden',\n display: '-webkit-box',\n WebkitBoxOrient: 'vertical',\n}\n\nconst hitContent: SxStyleProp = {\n color: 'muted.0',\n fontSize: ['14px', '16px'],\n lineHeight: ['20px', '22px'],\n width: '100%',\n minWidth: 0,\n ...snippetText,\n WebkitLineClamp: 4,\n}\n\nconst hitContentSmall: SxStyleProp = {\n color: 'muted.0',\n fontSize: ['14px', '16px'],\n lineHeight: ['20px', '22px'],\n width: '100%',\n minWidth: 0,\n ...snippetText,\n WebkitLineClamp: 2,\n}\n\nconst alignCenter: SxStyleProp = {\n alignItems: 'center',\n}\n\nconst hitBreadCrumb: SxStyleProp = {\n color: 'muted.1',\n fontSize: '12px',\n lineHeight: '16px',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n}\n\nconst hitBreadCrumbIn: SxStyleProp = {\n ...hitBreadCrumb,\n minWidth: 'fit-content',\n}\n\nconst hitBreadCrumbArrow: SxStyleProp = {\n width: '16px',\n height: '16px',\n color: 'muted.2',\n}\n\nconst searchInput: SxStyleProp = {\n width: '76px',\n background: 'none',\n border: '#F4F4F4',\n color: '#545454',\n fontSize: ['14px'],\n flex: 0,\n transition: 'flex 0.3s',\n}\n\nconst searchIcon: SxStyleProp = {\n minWidth: '16px',\n minHeight: '16px',\n width: '16px',\n mr: '8px',\n flex: 0,\n maxWidth: 'fit-content',\n}\n\nconst searchContainer: SxStyleProp = {\n paddingLeft: '12px',\n alignItems: 'center',\n justifyContent: 'center',\n background: '#F4F4F4',\n width: '288px',\n height: '40px',\n borderRadius: '4px',\n transition: 'all 0.3s ease-out',\n cursor: 'pointer',\n ':hover': {\n transition: 'all 0.3s ease-out',\n width: ['288px', '458px', '458px', '288px', '416px', '544px'],\n border: '1px solid #3B3B3B',\n },\n ':focus-within': {\n background: '#FFFFFF',\n width: ['288px', '458px', '458px', '288px', '416px', '544px'],\n transition: 'all 0.3s ease-out',\n border: '1px solid #3B3B3B',\n boxShadow: '0px 0px 0px 1px #FFFFFF, 0px 0px 0px 3px #B9B9B9',\n flex: 'auto',\n '.searchComponent': {\n flex: '1 !important',\n },\n },\n '.searchComponent': {\n ':placeholder-shown': {\n width: '76px',\n },\n ':not(:placeholder-shown)': {\n flex: '1 !important',\n },\n },\n}\n\nconst noResults: SxStyleProp = {\n justifyContent: 'center',\n alignContent: 'center',\n padding: '12px',\n}\n\nconst hitContentHighlighted: SxStyleProp = {\n ...hitContent,\n color: '#4A596B',\n width: 'auto',\n background: '#FFE0EF',\n}\n\nexport default {\n resultsOuterContainer,\n resultsInnerContainer,\n resultsBox,\n seeAll,\n hitBox,\n hitIcon,\n hitContentContainer,\n hitContent,\n hitContentSmall,\n hitBreadCrumb,\n hitBreadCrumbIn,\n hitBreadCrumbArrow,\n searchInput,\n searchIcon,\n searchContainer,\n alignCenter,\n noResults,\n hitContentHighlighted,\n}\n","import { useRouter } from 'next/router.js'\nimport Link from 'next/link.js'\nimport {\n connectStateResults,\n connectHitInsights,\n} from 'react-instantsearch-dom'\nimport {\n Hit,\n StateResultsProvided,\n WrappedInsightsClient,\n} from 'react-instantsearch-core'\nimport aa from 'search-insights'\nimport { Box, Flex, IconCaret, Text } from '@vtex/brand-ui'\n\nimport {\n getBreadcrumbs,\n getIconFromSection,\n getRelativeURL,\n} from 'utils/search-utils'\nimport CustomHighlight from './customHighlight'\nimport styles from './styles'\nimport { useContext } from 'react'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\n\ninterface HitProps {\n hit: Hit\n insights: WrappedInsightsClient\n}\n\ninterface HitsBoxProps extends StateResultsProvided {\n changeFocus: (value: boolean) => void\n}\n\nconst Hit2 = ({ hit, insights }: HitProps) => {\n const { sidebarSections } = useContext(LibraryContext)\n const breadcrumbsList = getBreadcrumbs(hit)\n const DocIcon = getIconFromSection(sidebarSections, hit.doctype)\n return (\n \n \n insights('clickedObjectIDsAfterSearch', {\n eventName: 'Search in top bar',\n objectIDs: [hit.objectID],\n })\n }\n >\n \n \n {DocIcon && }\n \n \n \n \n \n {`In ${hit.doctype}`}\n {breadcrumbsList.length > 0 && (\n \n )}\n {breadcrumbsList.map((filter: string, index: number) => (\n \n {filter}\n {index < breadcrumbsList.length - 1 ? (\n \n ) : null}\n \n ))}\n \n \n \n \n )\n}\n\nconst HitWithInsights = connectHitInsights(aa)(Hit2)\n\nconst HitsBox = connectStateResults(\n ({ searchState, searchResults, changeFocus }) => {\n const router = useRouter()\n const { locale } = useContext(LibraryContext)\n\n const seeAllSubmit = (keyword: string) => {\n router.push({\n pathname: '/search',\n query: { keyword },\n })\n changeFocus(false)\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const setQueryIDAndPosition = (hit: Hit, index: number): any => {\n return {\n ...hit,\n __queryID: searchResults.queryID || '',\n __position: searchResults.hitsPerPage * searchResults.page + index + 1,\n }\n }\n\n return (\n <>\n {searchResults && (\n \n \n \n {searchResults.hits.map(\n (searchResult, index) =>\n index < 7 && (\n changeFocus(false)}\n >\n \n \n )\n )}\n \n {searchResults.hits.length > 7 && (\n seeAllSubmit(searchState.query || '')}\n >\n \n {messages[locale]['search_input.see_all'] || 'See all results'}\n \n \n )}\n {!searchResults.hits.length && (\n \n \n {messages[locale]['search_input.empty'] || 'No results found. Try different search terms.'}\n \n \n )}\n \n \n )}\n \n )\n }\n)\n\nexport default HitsBox\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst APIGuidesIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n)\n\nexport default APIGuidesIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst APIReferenceIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default APIReferenceIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst AppDevelopmentIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default AppDevelopmentIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst ReleaseNotesIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n)\n\nexport default ReleaseNotesIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst StorefrontDevelopmentIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n)\n\nexport default StorefrontDevelopmentIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst VTEXIOAppsIcon = (props: IconProps) => (\n \n \n \n \n \n \n)\n\nexport default VTEXIOAppsIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst TroubleshootingIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default TroubleshootingIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst AddedIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default AddedIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst DeprecatedIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default DeprecatedIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst FixedIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default FixedIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst ImprovedIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default ImprovedIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst RemovedIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default RemovedIcon\n","import { Hit } from 'react-instantsearch-core'\n\nimport APIGuidesIcon from 'components/icons/api-guides-icon'\nimport APIReferenceIcon from 'components/icons/api-reference-icon'\nimport AppDevelopmentIcon from 'components/icons/app-development-icon'\nimport ReleaseNotesIcon from 'components/icons/release-notes-icon'\nimport StorefrontDevelopmentIcon from 'components/icons/storefront-development-icon'\nimport VTEXIOAppsIcon from 'components/icons/vtex-io-apps-icon'\nimport TroubleshootingIcon from 'components/icons/troubleshooting-icon'\nimport { IconComponent, Section } from './typings/types'\nimport AddedIcon from 'components/icons/added-icon'\nimport DeprecatedIcon from 'components/icons/deprecated-icon'\nimport FixedIcon from 'components/icons/fixed-icon'\nimport ImprovedIcon from 'components/icons/improved-icon'\nimport RemovedIcon from 'components/icons/removed-icon'\n\nexport const getBreadcrumbs = (hit: Hit) => {\n const breadcrumbs: string[] = []\n if (hit.doctype === 'API Reference' && hit.doccategory)\n breadcrumbs.push(hit.doccategory)\n breadcrumbs.push(hit.doctitle)\n return breadcrumbs\n}\n\nexport const getRelativeURL = (url: string) => {\n const relativeURL = url.replace(/^(?:\\/\\/|[^/]+)*\\//, '')\n return '/' + relativeURL\n}\n\n/** Display cap for tab counts; values at or above this render as \"999+\". */\nexport const HYBRID_SEARCH_COUNT_CAP = 1000\n\nexport function formatSearchTabCount(\n count: number | undefined\n): string | undefined {\n if (count === undefined) return undefined\n if (count >= HYBRID_SEARCH_COUNT_CAP) return '999+'\n return String(count)\n}\n\ninterface IconsI {\n name: string\n Icon: IconComponent\n}\n\nconst iconsMap: IconsI[] = [\n {\n Icon: APIGuidesIcon,\n name: 'Guides',\n },\n {\n Icon: APIReferenceIcon,\n name: 'API Reference',\n },\n {\n Icon: AppDevelopmentIcon,\n name: 'App Development',\n },\n {\n Icon: StorefrontDevelopmentIcon,\n name: 'Storefront Development',\n },\n {\n Icon: VTEXIOAppsIcon,\n name: 'VTEX IO Apps',\n },\n {\n Icon: TroubleshootingIcon,\n name: 'Troubleshooting',\n },\n {\n Icon: ReleaseNotesIcon,\n name: 'Release Notes',\n },\n]\n\nexport const getIcon = (name: string) => {\n return iconsMap.find((icon) => icon.name === name)?.Icon\n}\n\nexport const getIconFromSection = (sections: Section[][], id: string) => {\n return sections.flat().find((section) => section.id === id)?.Icon\n}\n\nexport type ActionType =\n | 'added'\n | 'deprecated'\n | 'fixed'\n | 'improved'\n | 'removed'\nexport interface Action {\n type: ActionType\n title: string\n Icon: IconComponent\n}\n\nconst actions: Action[] = [\n {\n type: 'added',\n title: 'Added',\n Icon: AddedIcon,\n },\n {\n type: 'deprecated',\n title: 'Deprecated',\n Icon: DeprecatedIcon,\n },\n {\n type: 'fixed',\n title: 'Fixed',\n Icon: FixedIcon,\n },\n {\n type: 'improved',\n title: 'Improved',\n Icon: ImprovedIcon,\n },\n {\n type: 'removed',\n title: 'Removed',\n Icon: RemovedIcon,\n },\n]\n\nexport const getAction = (actionType: ActionType): Action => {\n return actions.find((action) => action.type === actionType) as Action\n}\n\nexport const getTitleById = (sections: Section[][], id: string) => {\n return sections.flat().find((item) => item.id === id)?.title || id\n}\n","import { useEffect, useRef, useState } from 'react'\nimport { connectHighlight } from 'react-instantsearch-dom'\nimport { HighlightProps, Hit } from 'react-instantsearch-core'\nimport { Flex, Text } from '@vtex/brand-ui'\nimport styles from './styles'\n\ninterface HighLightPartsProps {\n index: number\n isBetween: boolean\n size: number\n}\n\ninterface HitHighlightProps {\n value: string\n isHighlighted: boolean\n}\ninterface CustomHighlightProps extends HighlightProps {\n searchPage?: boolean\n}\n\nconst Highlight = ({\n highlight,\n attribute,\n hit,\n searchPage,\n}: CustomHighlightProps) => {\n const [parsedHit, setParsedHit] = useState([])\n const textContainer = useRef(null)\n const hitHighlights: HitHighlightProps[] = highlight({\n highlightProperty: '_highlightResult',\n attribute: hit.type != 'content' ? `hierarchy.${hit.type}` : attribute,\n hit,\n })\n const maxDescriptionSize = 700\n const ellipsedContent: HitHighlightProps[] = []\n if (searchPage) {\n let charCount = 0\n hitHighlights.forEach((part) => {\n if (maxDescriptionSize - charCount <= 0) return\n if (part.value.length + charCount >= maxDescriptionSize) {\n part.value =\n part.value.slice(0, maxDescriptionSize - charCount - 3) + '...'\n }\n charCount += part.value.length\n ellipsedContent.push(part)\n })\n }\n\n useEffect(() => {\n if (searchPage) return\n const titleSize = textContainer.current\n ? textContainer.current.offsetWidth / 7.75\n : 40\n\n const highlightParts: HighLightPartsProps[] = []\n let highlightCount = 0,\n highlightLength = 0\n\n hitHighlights.forEach((match: HitHighlightProps, index: number) => {\n const isBetween =\n index > 0 && index < hitHighlights.length - 1 ? true : false\n if (match.isHighlighted) {\n if (isBetween) highlightCount++\n highlightCount++\n highlightLength += match.value.length\n } else {\n highlightParts.push({\n index,\n isBetween,\n size: match.value.length,\n })\n }\n })\n\n highlightParts.sort(\n (a: HighLightPartsProps, b: HighLightPartsProps) => a.size - b.size\n )\n\n let sizeRemaining = titleSize - highlightLength\n let size = sizeRemaining / (highlightCount || 1)\n\n highlightParts.forEach((match: HighLightPartsProps) => {\n const value = hitHighlights[match.index].value\n if (match.isBetween) {\n if (match.size >= size * 2) {\n const reticences = (size * 2 - 3) / 2\n hitHighlights[match.index].value =\n value.slice(0, reticences) +\n '...' +\n value.slice(value.length - reticences)\n sizeRemaining -= size * 2\n } else {\n sizeRemaining -= match.size\n }\n highlightCount -= 2\n } else {\n if (match.size >= size) {\n if (match.index === 0)\n hitHighlights[match.index].value =\n '...' + value.slice(value.length - (size - 3))\n else\n hitHighlights[match.index].value = value.slice(0, size - 3) + '...'\n sizeRemaining -= size\n } else {\n sizeRemaining -= match.size\n }\n highlightCount -= 1\n }\n size = sizeRemaining / highlightCount\n hitHighlights[match.index].value = hitHighlights[\n match.index\n ].value.replace(/\\s+/g, '\\u00A0')\n })\n setParsedHit(hitHighlights)\n }, [hit, textContainer.current])\n\n return (\n \n \n {(searchPage ? ellipsedContent : parsedHit).map(\n (part: HitHighlightProps, index: number) =>\n part.isHighlighted ? (\n \n {part.value}\n \n ) : (\n part.value\n )\n )}\n \n \n )\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ninterface HighlightPassedThru {\n hit: Hit\n attribute: string\n highlightProperty?: string | undefined\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst connectedHighlight: React.ComponentClass> =\n connectHighlight(Highlight)\n\nexport default connectedHighlight\n","import algoliasearch, { AlgoliaSearchOptions } from 'algoliasearch/lite'\nimport aa from 'search-insights'\nimport {\n MultipleQueriesQuery,\n MultipleQueriesResponse,\n} from '@algolia/client-search'\nimport { stripMarkdownForSnippet } from '../string-utils'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport let searchClient: any = {}\nexport let searchIndex = ''\nexport let hitsPerPage = 10 // Default page size for search results\n\nexport interface AlgoliaConfig {\n appId: string\n apiKey: string\n index: string\n algoliaOptions?: AlgoliaSearchOptions\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n customOptions?: any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n instantSearchConfigs?: any\n useLanguageFilter?: boolean\n}\n\nexport interface HybridSearchConfig {\n apiEndpoint: string\n source: 'help-center' | 'dev-portal'\n defaultLimit?: number\n itemsPerPage?: number // Alias for defaultLimit (for backward compatibility)\n useLanguageFilter?: boolean\n /**\n * Max number of results to request from the upstream API in a single call.\n * The Hybrid Search upstream does not support pagination, so the adapter\n * fetches a large slice once and paginates / filters client-side.\n * Defaults to 100 (the upstream HS_MAX_LIMIT).\n */\n upstreamFetchSize?: number\n /**\n * TTL (ms) for the in-memory response cache keyed by query+locale.\n * A short TTL is enough to let `connectInfiniteHits` page through the\n * results without re-fetching the upstream on every refineNext call.\n * Defaults to 60_000 ms.\n */\n cacheTtlMs?: number\n}\n\nexport type SearchBackendConfig =\n | { backend: 'algolia'; algolia: AlgoliaConfig }\n | { backend: 'hybrid'; hybrid: HybridSearchConfig; index: string }\n\nconst createAlgoliaClient = (config: AlgoliaConfig) => {\n const {\n apiKey,\n appId,\n index,\n algoliaOptions,\n customOptions,\n instantSearchConfigs,\n useLanguageFilter = true,\n } = config\n searchIndex = index\n\n aa('init', {\n appId: appId || '',\n apiKey: apiKey || '',\n useCookie: false,\n })\n\n aa('getUserToken', null, (err) => {\n if (err) {\n console.error(err)\n return\n }\n })\n\n const algoliaClient = algoliasearch(appId || '', apiKey || '', algoliaOptions)\n\n searchClient = {\n ...algoliaClient,\n ...customOptions,\n instantSearchConfigs,\n useLanguageFilter,\n search(requests: MultipleQueriesQuery[]) {\n if (requests.every(({ params }) => !params?.query)) return\n return algoliaClient.search(requests)\n },\n }\n}\n\n// Upstream hard cap (must match HS_MAX_LIMIT in the API proxy).\nconst HYBRID_UPSTREAM_MAX_LIMIT = 100\n\n/** Fixed Help Center doctype ids (matches helpcenter src/utils/constants.ts). */\nconst HYBRID_DOCTYPE_IDS = [\n 'tracks',\n 'tutorials',\n 'faq',\n 'known-issues',\n 'troubleshooting',\n 'announcements',\n] as const\n\n/** Portal tab id → upstream canonical doctype (matches helpcenter search proxy). */\nconst PORTAL_TO_CANONICAL_DOCTYPE: Record = {\n tutorials: 'tutorial',\n tracks: 'tracks',\n faq: 'faq',\n troubleshooting: 'troubleshooting',\n announcements: 'announcements',\n}\n\ntype HybridDoctypeCounts = Record\n\ntype HybridSearchCountsApiResponse = {\n counts: {\n tracks: number\n tutorial: number\n faq: number\n troubleshooting: number\n announcements: number\n }\n total: number\n}\n\ntype HybridCacheEntry = {\n key: string\n ts: number\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n hits: any[]\n}\n\ntype HybridCountCacheEntry = {\n key: string\n ts: number\n counts: HybridDoctypeCounts\n}\n\ntype HybridDoctypeDeepCacheEntry = {\n key: string\n ts: number\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n hits: any[]\n}\n\nconst createHybridClient = (config: HybridSearchConfig) => {\n const {\n apiEndpoint,\n defaultLimit,\n itemsPerPage,\n useLanguageFilter = true,\n upstreamFetchSize = HYBRID_UPSTREAM_MAX_LIMIT,\n cacheTtlMs = 60_000,\n } = config\n\n // Support both defaultLimit and itemsPerPage (itemsPerPage takes precedence)\n const pageSize = itemsPerPage ?? defaultLimit ?? 10\n hitsPerPage = pageSize\n\n const effectiveUpstreamLimit = clampUpstreamLimit(upstreamFetchSize)\n const cache: HybridCacheEntry[] = []\n const countCache: HybridCountCacheEntry[] = []\n const doctypeDeepCache: HybridDoctypeDeepCacheEntry[] = []\n const deepenPagination = new Map<\n string,\n { lastPage: number; endOffset: number }\n >()\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const getCached = (key: string): any[] | undefined => {\n const now = Date.now()\n for (let i = cache.length - 1; i >= 0; i--) {\n if (now - cache[i].ts > cacheTtlMs) {\n cache.splice(i, 1)\n }\n }\n return cache.find((e) => e.key === key)?.hits\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const setCached = (key: string, hits: any[]) => {\n cache.push({ key, ts: Date.now(), hits })\n while (cache.length > 20) cache.shift()\n }\n\n const getCachedCounts = (key: string): HybridDoctypeCounts | undefined => {\n const now = Date.now()\n for (let i = countCache.length - 1; i >= 0; i--) {\n if (now - countCache[i].ts > cacheTtlMs) {\n countCache.splice(i, 1)\n }\n }\n return countCache.find((e) => e.key === key)?.counts\n }\n\n const setCachedCounts = (key: string, counts: HybridDoctypeCounts) => {\n countCache.push({ key, ts: Date.now(), counts })\n while (countCache.length > 20) countCache.shift()\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const getDoctypeDeepCached = (key: string): any[] | undefined => {\n const now = Date.now()\n for (let i = doctypeDeepCache.length - 1; i >= 0; i--) {\n if (now - doctypeDeepCache[i].ts > cacheTtlMs) {\n doctypeDeepCache.splice(i, 1)\n }\n }\n return doctypeDeepCache.find((e) => e.key === key)?.hits\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const setDoctypeDeepCached = (key: string, hits: any[]) => {\n doctypeDeepCache.push({ key, ts: Date.now(), hits })\n while (doctypeDeepCache.length > 20) doctypeDeepCache.shift()\n }\n\n const countsEndpoint = `${apiEndpoint.replace(/\\/?$/, '')}/counts`\n\n const mapApiCountsToPortal = (\n counts: HybridSearchCountsApiResponse['counts'],\n total: number\n ): HybridDoctypeCounts => ({\n '': total,\n tracks: counts.tracks,\n tutorials: counts.tutorial,\n faq: counts.faq,\n troubleshooting: counts.troubleshooting,\n announcements: counts.announcements,\n 'known-issues': 0,\n })\n\n const fetchDoctypeCounts = async (\n query: string,\n locale: string\n ): Promise => {\n try {\n const url = new URL(countsEndpoint, window.location.origin)\n url.searchParams.set('q', query)\n if (useLanguageFilter && locale) {\n url.searchParams.set('locale', locale)\n }\n\n const response = await fetch(url.toString())\n if (!response.ok) {\n return undefined\n }\n\n const data =\n (await response.json()) as Partial\n const { counts, total } = data\n if (\n !counts ||\n typeof total !== 'number' ||\n typeof counts.tracks !== 'number' ||\n typeof counts.tutorial !== 'number' ||\n typeof counts.faq !== 'number' ||\n typeof counts.troubleshooting !== 'number' ||\n typeof counts.announcements !== 'number'\n ) {\n return undefined\n }\n\n return mapApiCountsToPortal(counts, total)\n } catch {\n return undefined\n }\n }\n\n // Initialize minimal analytics (disabled for hybrid)\n aa('init', {\n appId: 'hybrid-search',\n apiKey: 'none',\n useCookie: false,\n })\n\n searchClient = {\n appId: 'hybrid-search',\n apiKey: 'hybrid',\n useLanguageFilter,\n instantSearchConfigs: null,\n\n async search(\n requests: MultipleQueriesQuery[]\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): Promise | undefined> {\n if (requests.every(({ params }) => !params?.query)) {\n return undefined\n }\n\n try {\n // Find the first request with a non-empty query\n const request =\n requests.find(({ params }) => params?.query) || requests[0]\n const params = request.params || {}\n const query = params.query || ''\n const hitsPerPage = params.hitsPerPage || pageSize\n const page = params.page || 0\n\n const { locale, doctypes } = extractHybridFilters(params)\n\n // The upstream Hybrid Search API does not support pagination, so we\n // fetch a large slice once per (query, locale) pair and paginate /\n // doctype-filter client-side for the result list.\n const cacheKey = JSON.stringify({\n q: query,\n locale: useLanguageFilter ? locale || '' : '',\n limit: effectiveUpstreamLimit,\n })\n\n const countCacheKey = JSON.stringify({\n q: query,\n locale: useLanguageFilter ? locale || '' : '',\n })\n\n const isSearchResultsRequest =\n typeof params?.filters === 'string' && params.filters.length > 0\n\n const cachedHits = getCached(cacheKey)\n let cachedCounts = getCachedCounts(countCacheKey)\n\n const hitsPromise = (async () => {\n if (cachedHits) return cachedHits\n\n const url = new URL(apiEndpoint, window.location.origin)\n url.searchParams.set('q', query)\n url.searchParams.set('limit', String(effectiveUpstreamLimit))\n if (useLanguageFilter && locale) {\n url.searchParams.set('locale', locale)\n }\n\n const response = await fetch(url.toString())\n if (!response.ok) {\n throw new Error(`Hybrid search failed: ${response.status}`)\n }\n\n const data = await response.json()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const rawResults: any[] = Array.isArray(data?.results)\n ? data.results\n : []\n const allHits = rawResults.map(transformHybridToAlgolia)\n setCached(cacheKey, allHits)\n return allHits\n })()\n\n const countsPromise = (async (): Promise<\n HybridDoctypeCounts | undefined\n > => {\n if (!isSearchResultsRequest) return undefined\n if (cachedCounts) return cachedCounts\n\n const counts = await fetchDoctypeCounts(query, locale)\n if (counts) {\n setCachedCounts(countCacheKey, counts)\n }\n return counts\n })()\n\n const [allHits, doctypeCounts] = await Promise.all([\n hitsPromise,\n countsPromise,\n ])\n\n if (doctypeCounts) {\n cachedCounts = doctypeCounts\n }\n\n const initialFilteredHits = filterHitsByDoctype(allHits, doctypes)\n let listHits = doctypes.length ? initialFilteredHits : allHits\n\n const doctypeDeepCacheKey =\n doctypes.length === 1\n ? JSON.stringify({\n q: query,\n locale: useLanguageFilter ? locale || '' : '',\n doctype: doctypes[0],\n limit: effectiveUpstreamLimit,\n })\n : ''\n\n let start = page * hitsPerPage\n\n if (doctypes.length === 1) {\n const portalDoctype = doctypes[0]\n const canonicalDoctype = PORTAL_TO_CANONICAL_DOCTYPE[portalDoctype]\n const prevPage = deepenPagination.get(doctypeDeepCacheKey)\n\n if (page === 0 || !prevPage || prevPage.lastPage !== page - 1) {\n start = page === 0 ? 0 : page * hitsPerPage\n if (page === 0) deepenPagination.delete(doctypeDeepCacheKey)\n } else {\n start = prevPage.endOffset\n }\n\n if (canonicalDoctype && start >= initialFilteredHits.length) {\n let deepenedHits = getDoctypeDeepCached(doctypeDeepCacheKey)\n if (!deepenedHits) {\n const url = new URL(apiEndpoint, window.location.origin)\n url.searchParams.set('q', query)\n url.searchParams.set('limit', String(effectiveUpstreamLimit))\n url.searchParams.set('doctype', portalDoctype)\n if (useLanguageFilter && locale) {\n url.searchParams.set('locale', locale)\n }\n\n const response = await fetch(url.toString())\n if (response.ok) {\n const data = await response.json()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const rawResults: any[] = Array.isArray(data?.results)\n ? data.results\n : []\n deepenedHits = rawResults.map(transformHybridToAlgolia)\n setDoctypeDeepCached(doctypeDeepCacheKey, deepenedHits)\n } else {\n deepenedHits = []\n }\n }\n\n listHits = mergeDeepenedHits(initialFilteredHits, deepenedHits)\n }\n }\n\n const doctypeCount =\n doctypes.length === 1 ? cachedCounts?.[doctypes[0]] : undefined\n const hasDeepened =\n doctypes.length === 1 &&\n (Boolean(getDoctypeDeepCached(doctypeDeepCacheKey)) ||\n listHits.length > initialFilteredHits.length)\n const nbHits = (() => {\n if (!doctypes.length) return allHits.length\n const cap = HYBRID_UPSTREAM_MAX_LIMIT\n if (typeof doctypeCount === 'number') {\n if (hasDeepened) {\n return Math.min(doctypeCount, cap, listHits.length)\n }\n return Math.min(doctypeCount, cap)\n }\n return Math.min(listHits.length, cap)\n })()\n const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage))\n const pageHits = listHits.slice(start, start + hitsPerPage)\n\n if (doctypes.length === 1) {\n deepenPagination.set(doctypeDeepCacheKey, {\n lastPage: page,\n endOffset: start + pageHits.length,\n })\n }\n\n const doctypeFacetData: Record = {}\n if (cachedCounts) {\n HYBRID_DOCTYPE_IDS.forEach((id) => {\n const count = cachedCounts[id]\n if (typeof count === 'number') {\n doctypeFacetData[id] = count\n }\n })\n }\n\n const hybridAllCount = cachedCounts?.['']\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const searchResult: any = {\n hits: pageHits,\n nbHits,\n page,\n nbPages,\n hitsPerPage,\n exhaustiveNbHits: true,\n query,\n params: '',\n index: request.indexName || '',\n processingTimeMS: 0,\n facets: {\n doctype: doctypeFacetData,\n language: {},\n },\n facets_stats: {},\n exhaustiveFacetsCount: true,\n queryID: generateQueryID(),\n _hybridCountsAttempted: isSearchResultsRequest,\n _hybridAllCount:\n typeof hybridAllCount === 'number' ? hybridAllCount : undefined,\n }\n\n return {\n results: [searchResult],\n }\n } catch (error) {\n console.error('Hybrid search error:', error)\n return {\n results: [\n {\n hits: [],\n nbHits: 0,\n page: 0,\n nbPages: 0,\n hitsPerPage: pageSize,\n exhaustiveNbHits: true,\n query: requests[0]?.params?.query || '',\n params: '',\n index: requests[0]?.indexName || '',\n processingTimeMS: 0,\n },\n ],\n }\n }\n },\n }\n}\n\nfunction clampUpstreamLimit(raw: number): number {\n if (!Number.isFinite(raw) || raw <= 0) return HYBRID_UPSTREAM_MAX_LIMIT\n return Math.min(HYBRID_UPSTREAM_MAX_LIMIT, Math.max(1, Math.floor(raw)))\n}\n\n/**\n * Extracts the language and doctype filters from an InstantSearch request.\n *\n * Two filter shapes need to be supported:\n * 1. `Configure.filters` (a single string like\n * `language:en AND doctype:\"tutorials\"`), used by the full Search page.\n * 2. `Configure.facetFilters` (an array like `['language:en']`), used by\n * the SearchInput dropdown in the header.\n */\nfunction extractHybridFilters(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n params: any\n): { locale: string; doctypes: string[] } {\n let locale = ''\n const doctypes: string[] = []\n\n const pushDoctype = (raw: string) => {\n const value = raw.replace(/^\"|\"$/g, '').trim()\n if (value && !doctypes.includes(value)) doctypes.push(value)\n }\n\n // 1) Configure.filters as a string expression\n const filtersStr = typeof params?.filters === 'string' ? params.filters : ''\n if (filtersStr) {\n const langMatch = filtersStr.match(/language\\s*:\\s*([\\w-]+)/i)\n if (langMatch) locale = langMatch[1]\n\n const doctypeRegex = /doctype\\s*:\\s*(?:\"([^\"]+)\"|([^\\s)]+))/gi\n let m: RegExpExecArray | null\n while ((m = doctypeRegex.exec(filtersStr)) !== null) {\n pushDoctype(m[1] || m[2] || '')\n }\n }\n\n // 2) facetFilters (string | string[] | (string | string[])[])\n const facetFilters = params?.facetFilters\n const visit = (entry: unknown) => {\n if (typeof entry === 'string') {\n if (!locale && entry.startsWith('language:')) {\n locale = entry.slice('language:'.length)\n } else if (entry.startsWith('doctype:')) {\n pushDoctype(entry.slice('doctype:'.length))\n }\n } else if (Array.isArray(entry)) {\n entry.forEach(visit)\n }\n }\n visit(facetFilters)\n\n return { locale, doctypes }\n}\n\nfunction filterHitsByDoctype(\n hits: T[],\n doctypes: string[]\n): T[] {\n if (!doctypes.length) return hits\n const wanted = new Set(doctypes.map((d) => d.toLowerCase()))\n return hits.filter((h) => wanted.has(String(h.doctype || '').toLowerCase()))\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction mergeDeepenedHits(initial: any[], deepened: any[]): any[] {\n const seen = new Set()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const merged: any[] = []\n\n for (const hit of [...initial, ...deepened]) {\n const key = hit.url_without_anchor || hit.objectID || ''\n if (!key || seen.has(key)) continue\n seen.add(key)\n merged.push(hit)\n }\n\n return merged.slice(0, HYBRID_UPSTREAM_MAX_LIMIT)\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction transformHybridToAlgolia(result: any): any {\n const filePath = result.filePath || ''\n const doctype = deriveDoctypeFromFilePath(filePath)\n\n const hierarchy = {\n lvl0: doctype,\n lvl1: result.title || 'Untitled',\n lvl2: deriveCategoryFromFilePath(filePath),\n }\n\n const url = buildUrlFromFilePath(filePath)\n\n // Strip markdown syntax from snippets for display\n const rawContent = result.snippet || result.content || ''\n const cleanContent = stripMarkdownForSnippet(rawContent)\n\n return {\n objectID: String(result.id),\n ...result,\n url,\n url_without_anchor: url.split('#')[0],\n doctype,\n doctitle: result.title || 'Untitled',\n content: cleanContent,\n hierarchy,\n language: result.metadata?.locale || 'en',\n type: 'content',\n _highlightResult: {\n content: {\n value: cleanContent,\n matchLevel: 'full',\n fullyHighlighted: false,\n matchedWords: [],\n },\n hierarchy: {\n lvl0: {\n value: hierarchy.lvl0,\n matchLevel: 'none',\n },\n lvl1: {\n value: hierarchy.lvl1,\n matchLevel: result.title ? 'partial' : 'none',\n },\n },\n },\n _snippetResult: {\n content: {\n value: result.snippet ? stripMarkdownForSnippet(result.snippet) : '',\n matchLevel: 'full',\n },\n },\n }\n}\n\nconst LOCALE_SEGMENT = /^(en|es|pt)$/i\n\n/**\n * Derives the doctype id from a filePath returned by the Hybrid Search upstream.\n *\n * Supports the two layouts currently produced by the help-center / dev-portal\n * content repositories:\n * - `docs///...` → doctype = 3rd segment\n * - `//...` → doctype = 1st segment\n * - `/...` → doctype = 1st segment (fallback)\n *\n * Returns 'documentation' as a safe default so SearchCard rendering does not\n * break. The id is kept lowercase so it can be matched against the\n * `filterSelectedSection` values defined in the consuming app\n * (e.g. 'tutorials', 'faq', 'known-issues', 'troubleshooting', 'announcements').\n */\nfunction deriveDoctypeFromFilePath(filePath: string): string {\n const parts = filePath.split('/').filter(Boolean)\n if (parts.length === 0) return 'documentation'\n\n if (parts[0] === 'docs' && parts.length > 2) {\n return parts[2].toLowerCase()\n }\n\n if (parts.length > 1 && LOCALE_SEGMENT.test(parts[1])) {\n return parts[0].toLowerCase()\n }\n\n return parts[0].toLowerCase()\n}\n\nfunction deriveCategoryFromFilePath(filePath: string): string | null {\n const parts = filePath.split('/').filter(Boolean)\n if (parts[0] === 'docs' && parts.length > 3) return parts[3]\n if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1])) return parts[2]\n if (parts.length > 1) return parts[1]\n return null\n}\n\n/**\n * Builds the user-facing URL for a search hit from its upstream filePath.\n *\n * The rule is doctype-driven (not path-position-driven):\n * - tutorials/tracks → //docs//\n * - everything else → ///\n *\n * The doctype comes from deriveDoctypeFromFilePath (the same source used for\n * the facet tabs) and the slug is always the last path segment, so this works\n * regardless of how deep the file is nested or where the doctype sits in the\n * path (`docs///...` or `//...`).\n */\nfunction buildUrlFromFilePath(filePath: string): string {\n const parts = filePath.split('/').filter(Boolean)\n if (parts.length === 0) return '/'\n\n const stripExt = (s: string) => s.replace(/\\.mdx?$/, '')\n const slug = stripExt(parts[parts.length - 1])\n\n const doctype = deriveDoctypeFromFilePath(filePath)\n\n // Locale is the 2nd segment in both supported layouts:\n // docs//... and //...\n const locale =\n parts.length > 1 && LOCALE_SEGMENT.test(parts[1])\n ? parts[1].toLowerCase()\n : 'en'\n\n if (doctype === 'tutorials' || doctype === 'tracks') {\n return `/${locale}/docs/${doctype}/${slug}`\n }\n\n return `/${locale}/${doctype}/${slug}`\n}\n\nfunction generateQueryID(): string {\n return `hybrid_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`\n}\n\nexport default function SearchConfig(\n config: SearchBackendConfig | AlgoliaConfig\n) {\n // Backward compatibility: if config doesn't have 'backend', assume Algolia\n if ('backend' in config) {\n if (config.backend === 'hybrid') {\n searchIndex = config.index\n createHybridClient(config.hybrid)\n } else {\n createAlgoliaClient(config.algolia)\n }\n } else {\n // Old API: direct AlgoliaConfig\n createAlgoliaClient(config as AlgoliaConfig)\n }\n}\n","import { Flex, Text, Link } from '@vtex/brand-ui'\nimport EditIcon from 'components/icons/edit-icon'\nimport LikeIcon from 'components/icons/like-icon'\nimport LikeSelectedIcon from 'components/icons/like-selected-icon'\nimport { useContext, useEffect, useRef, useState } from 'react'\nimport styles from './styles'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\nimport ShareButton from 'components/share-button'\n\nexport interface DocPath {\n /** Slug that corresponds to the current page. */\n slug?: string\n /** Github edit URL to the corresponding documentation file. */\n urlToEdit?: string\n /** Whether is possible for the user to suggest edits or not. */\n suggestEdits?: boolean\n /** Include or not a share button. */\n shareButton?: boolean\n /** Executes when the user sends the feedback. Receives whether it was positive (liked). */\n sendFeedback: (liked: boolean) => Promise\n /** Whether to render the small version of the component or not. */\n small?: boolean\n}\n\nconst FeedbackSection = ({\n slug,\n urlToEdit,\n suggestEdits = true,\n shareButton = false,\n sendFeedback,\n small = false,\n}: DocPath) => {\n const [feedback, setFeedback] = useState(undefined)\n const { locale } = useContext(LibraryContext)\n\n // Reset feedback selection whenever the page (slug) changes\n useEffect(() => {\n setFeedback(undefined)\n }, [slug])\n\n const handleSend = async (liked: boolean) => {\n if (feedback !== undefined) return\n setFeedback(liked)\n try {\n await sendFeedback(liked)\n } catch (e) {\n setFeedback(undefined)\n }\n }\n\n return (\n \n \n \n {feedback !== undefined\n ? messages[locale]['feedback_section.response']\n : messages[locale]['feedback_section.question']}\n \n\n \n {/* LIKE */}\n handleSend(true)}\n role=\"button\"\n aria-pressed={feedback === true}\n data-cy=\"feedback-section-like\"\n >\n {feedback === true ? (\n \n ) : (\n \n )}\n {!small && (\n {messages[locale]['feedback_section.positive']}\n )}\n \n\n {/* DISLIKE */}\n handleSend(false)}\n role=\"button\"\n aria-pressed={feedback === false}\n data-cy=\"feedback-section-dislike\"\n >\n {feedback === false ? (\n \n ) : (\n \n )}\n {!small && (\n {messages[locale]['feedback_section.negative']}\n )}\n \n \n \n {suggestEdits && (\n \n \n {messages[locale]['feedback_section.edit']}\n \n )}\n {shareButton && (\n \n )}\n \n )\n}\n\nexport default FeedbackSection\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst EditIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default EditIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst LikeIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default LikeIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst LikeSelectedIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default LikeSelectedIcon\n","import { SxStyleProp } from '@vtex/brand-ui'\n\ntype StyleFn = (opts?: { small?: boolean }) => SxStyleProp\n\nconst container: StyleFn = ({ small } = {}) => ({\n width: '100%',\n flexDirection: small ? 'column' : ['column', 'row'],\n alignItems: small ? 'flex-start' : 'center',\n alignContent: ['initial', 'space-between'],\n justifyContent: ['initial', 'space-between'],\n marginTop: small ? '0px' : '32px',\n marginBottom: small ? '0px' : '16px',\n gap: small ? '8px' : '0px',\n})\n\nconst question: StyleFn = ({ small } = {}) => ({\n fontSize: small ? '12px' : '16px',\n lineHeight: '18px',\n color: '#4A596B',\n})\n\nconst iconsContainer: StyleFn = ({ small } = {}) => ({\n display: 'flex',\n alignItems: 'center',\n gap: small ? '0px' : '4px',\n ml: small ? '3px' : '6px',\n})\n\nconst likeContainer: SxStyleProp = {\n paddingBottom: ['16px', '0'],\n borderBottom: ['1px solid #E7E9EE', 'none'],\n mt: ['8px', '0'],\n mb: ['16px', '0'],\n width: ['100%', 'auto'],\n justifyContent: ['center', 'initial'],\n alignItems: 'center',\n}\n\nconst likeIcon: SxStyleProp = {\n mr: '2px',\n}\n\nconst dislikeIcon: SxStyleProp = {\n mr: '2px',\n transform: 'rotateX(180deg) rotateY(180deg)',\n}\n\nconst button: SxStyleProp = {\n ':hover': {\n cursor: 'pointer',\n color: '#000711',\n 'svg > path': {\n stroke: '#000711',\n },\n },\n}\n\nconst buttonActive: SxStyleProp = {\n cursor: 'pointer',\n color: '#000711',\n 'svg > path': {\n stroke: '#000711',\n },\n}\n\nconst selectedButton: SxStyleProp = {\n color: 'muted.1',\n}\n\nconst box: StyleFn = ({ small } = {}) => ({\n alignItems: 'center',\n color: 'muted.0',\n fontSize: small ? '12px' : '16px',\n lineHeight: '22px',\n})\n\nconst disabled: SxStyleProp = {\n display: 'none !important',\n}\n\nconst editContainer: StyleFn = ({ small } = {}) => ({\n ...box({ small }),\n ...button,\n ':hover': {\n color: '#000711 !important',\n },\n // ml: ['0', 'auto'],\n color: '#4A596B !important',\n display: 'flex',\n})\n\nconst editIcon: SxStyleProp = { mr: '4px' }\n\nconst shareButton: SxStyleProp = {\n // ml: ['0', 'auto'],\n}\n\nexport default {\n disabled,\n container,\n question,\n likeContainer,\n likeIcon,\n dislikeIcon,\n editContainer,\n editIcon,\n box,\n button,\n buttonActive,\n selectedButton,\n shareButton,\n iconsContainer,\n}\n","import { Box, Button, Flex, Text } from '@vtex/brand-ui'\nimport FacebookIcon from 'components/icons/facebook-icon'\nimport LinkedinIcon from 'components/icons/linkedin-icon'\nimport ShareIcon from 'components/icons/share-icon'\nimport TwitterIcon from 'components/icons/twitter-icon'\nimport { useRef, useState } from 'react'\nimport {\n FacebookShareButton,\n LinkedinShareButton,\n TwitterShareButton,\n EmailShareButton,\n} from 'react-share'\nimport styles from './styles'\nimport EmailIcon from 'components/icons/email-icon'\nimport LinkIcon from 'components/icons/link-icon'\nimport { SxStyleProp } from '@vtex/brand-ui'\nimport useClickOutside from 'utils/hooks/useClickOutside'\n\ninterface Props {\n url: string\n sx?: SxStyleProp\n}\n\nconst ShareButton = ({ url, sx={} }: Props) => {\n const [isOpen, setIsOpen] = useState(false)\n const containerRef = useRef()\n useClickOutside(containerRef, () => setIsOpen(false))\n\n const handleCopyLink = async () => {\n try {\n if (window) await navigator.clipboard.writeText(window.location.href)\n } catch (error) {\n console.error('Error copying link to clipboard:', error)\n }\n }\n\n return (\n \n setIsOpen(!isOpen)}\n >\n Share\n \n {isOpen && (\n \n \n \n Copy link\n \n \n \n \n \n E-mail\n \n \n \n \n \n Twitter\n \n \n \n \n \n Facebook\n \n \n \n \n \n LinkedIn\n \n \n \n )}\n \n )\n}\n\nexport default ShareButton\n\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst FacebookIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default FacebookIcon\n\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst LinkedinIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default LinkedinIcon\n\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst ShareIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default ShareIcon\n\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst TwitterIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default TwitterIcon\n\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst container: SxStyleProp = {\n position: 'relative',\n height: '24px',\n}\n\nconst button: SxStyleProp = {\n cursor: 'pointer',\n textTransform: 'none',\n fontSize: '16px',\n lineHeight: '18px',\n color: '#4A596B',\n width: '24px',\n height: '24px',\n transition: '0.3s',\n ':hover': {\n color: '#000711 !important',\n textDecoration: 'none',\n },\n alignItems: 'start',\n}\n\nconst shareIcon: SxStyleProp = {\n marginRight: '4px',\n}\n\nconst innerButton: SxStyleProp = {\n gap: '16px',\n color: '#A1AAB7',\n cursor: 'pointer',\n transition: '0.3s',\n ':hover': {\n color: '#4A4A4A',\n },\n alignItems: 'center',\n}\n\nconst innerContainer: SxStyleProp = {\n position: 'absolute',\n backgroundColor: 'white',\n flexDirection: 'column',\n top: '100%',\n right: '0',\n mt: '8px',\n padding: '16px',\n gap: '16px',\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\n borderRadius: '5px',\n\n ':before': {\n content: \"''\",\n position: 'absolute',\n top: '-8px',\n right: '8px',\n borderLeft: '8px solid transparent',\n borderRight: '8px solid transparent',\n borderBottom: '8px solid white',\n boxShadow: '0 16px 10px -17px rgba(0, 0, 0, 0.5)',\n },\n}\n\nconst divider: SxStyleProp = {\n borderBottom: '1px solid #E7E9EE',\n}\n\nexport default {\n container,\n button,\n shareIcon,\n innerButton,\n innerContainer,\n divider,\n}\n\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst EmailIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default EmailIcon\n\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst LinkIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default LinkIcon\n\n","import { Box, Flex } from '@vtex/brand-ui'\nimport SearchSections from 'components/search-sections'\nimport SearchResults from 'components/search-results'\nimport SearchFilterTabBar from 'components/search-filter-tab-bar'\nimport SearchContextProvider from 'utils/context/search'\nimport styles from './styles'\nimport SearchInput from 'components/search-input'\n\nconst Search = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default Search\n","import { Box } from '@vtex/brand-ui'\n\nimport SearchSection from 'components/search-section'\nimport styles from './styles'\nimport { useContext } from 'react'\nimport { LibraryContext } from 'utils/context/libraryContext'\n\nconst SearchSections = () => {\n const { sidebarSections } = useContext(LibraryContext)\n\n const internalOnlySections = sidebarSections.map((section) =>\n section.filter((item) => !item.isExternalLink)\n )\n\n return (\n \n {internalOnlySections.map((sections, id) => (\n \n {id === 0 && }\n {sections.map((section, index) => (\n \n ))}\n \n ))}\n \n )\n}\n\nexport default SearchSections\n","import { Box, Flex, Text } from '@vtex/brand-ui'\nimport { useContext, useEffect } from 'react'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\nimport styles from './styles'\nimport { useRouter } from 'next/router.js'\nimport { FilterType, SearchContext } from 'utils/context/search'\nimport { Section } from 'utils/typings/types'\nimport { formatSearchTabCount } from 'utils/search-utils'\n\ninterface SearchSectionProps {\n dataElement: Section | null\n index?: number\n}\n\nconst SearchSection = ({ dataElement, index }: SearchSectionProps) => {\n const router = useRouter()\n const { filterSelectedSection, ocurrenceCount, changeFilterSelectedSection } =\n useContext(SearchContext)\n const { locale } = useContext(LibraryContext)\n\n const updateFilter = (value: FilterType) => {\n router.query.filter = value\n changeFilterSelectedSection(value)\n }\n\n useEffect(() => {\n updateFilter('')\n }, [router.query])\n\n const allCountLabel = formatSearchTabCount(ocurrenceCount[''])\n\n if (!dataElement) {\n return (\n updateFilter('')}>\n \n {messages[locale]['search_results.all'] || 'All results'}\n \n {allCountLabel !== undefined && (\n \n {allCountLabel}\n \n )}\n \n )\n }\n\n const count = ocurrenceCount[dataElement.id]\n const isDisabled = count === 0\n const countLabel = formatSearchTabCount(count)\n\n return (\n {\n if (isDisabled) return\n updateFilter(dataElement.id)\n }}\n data-disabled={String(isDisabled)}\n >\n \n \n \n {dataElement.title}\n \n \n {countLabel !== undefined && (\n \n {countLabel}\n \n )}\n \n )\n}\n\nexport default SearchSection\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst sectionContainer: (disabled?: boolean) => SxStyleProp = (\n disabled = false\n) => ({\n justifyContent: 'space-between',\n padding: '8px',\n mb: '8px',\n cursor: disabled ? 'not-allowed' : 'pointer',\n opacity: disabled ? 0.5 : 1,\n ':active, :hover': disabled\n ? {}\n : {\n backgroundColor: '#F8F7FC',\n borderRadius: '4px',\n '.search-section-title': {\n color: '#000711',\n },\n '.search-section-count': {\n background: '#E7E9EE',\n },\n },\n})\n\nconst sectionIconTitleBox: SxStyleProp = {\n alignItems: 'center',\n}\n\nconst sectionIcon: (disabled?: boolean) => SxStyleProp = (\n disabled = false\n) => ({\n width: '16px',\n height: '16px',\n minWidth: '16px',\n minHeight: '16px',\n mr: '8px',\n opacity: disabled ? 0.6 : 1,\n})\n\nconst sectionTitle: (disabled?: boolean) => SxStyleProp = (\n disabled = false\n) => ({\n fontSize: '12px',\n lineHeight: '16px',\n color: disabled ? '#AFAFAF' : undefined,\n})\n\nconst sectionTitleActive: SxStyleProp = {\n ...sectionTitle(),\n color: '#142032',\n fontWeight: '600',\n}\n\nconst sectionCount: SxStyleProp = {\n background: '#F8F7FC',\n borderRadius: '24px',\n width: 'auto',\n textAlign: 'center',\n px: '8px',\n fontSize: '12px',\n lineHeight: '16px',\n}\n\nconst allResultsText: SxStyleProp = {\n ...sectionTitle(),\n ml: '24px',\n}\n\nconst allResultsTextActive: SxStyleProp = {\n ...allResultsText,\n fontWeight: 'bold',\n color: '#0C1522',\n}\n\nexport default {\n sectionContainer,\n sectionIconTitleBox,\n sectionIcon,\n sectionTitle,\n sectionTitleActive,\n sectionCount,\n allResultsText,\n allResultsTextActive,\n}\n","import {\n createContext,\n Dispatch,\n ReactNode,\n SetStateAction,\n useState,\n} from 'react'\n\nexport type FilterType = string\n\ntype OcurrenceType = {\n [key: string]: number | undefined\n}\n\ntype SearchContextType = {\n filterSelectedSection: FilterType\n changeFilterSelectedSection: Dispatch>\n ocurrenceCount: OcurrenceType\n updateOcurrenceCount: (resultsData: OcurrenceType) => void\n}\n\nexport const SearchContext = createContext({\n filterSelectedSection: '',\n changeFilterSelectedSection: () => undefined,\n ocurrenceCount: {},\n updateOcurrenceCount: () => undefined,\n})\n\ninterface Props {\n children: ReactNode\n}\n\nconst SearchContextProvider = ({ children }: Props) => {\n const [filterSelectedSection, changeFilterSelectedSection] =\n useState('')\n const [ocurrenceCount, changeOcurrenceCount] = useState({})\n\n const updateOcurrenceCount = (resultsData: OcurrenceType) => {\n changeOcurrenceCount(resultsData)\n }\n\n return (\n \n {children}\n \n )\n}\n\nexport default SearchContextProvider\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst container: SxStyleProp = {\n display: ['none', 'none', 'none', 'initial'],\n height: '100%',\n width: '242px',\n border: '1px solid #E7E9EE',\n borderRadius: '4px',\n mr: ['32px', '32px', '32px', '32px', '32px', '32px', '64px'],\n mt: '96px',\n}\n\nconst notesSection: SxStyleProp = {\n px: '8px',\n paddingTop: '8px',\n}\n\nconst docsSection: SxStyleProp = {\n ...notesSection,\n borderBottom: '1px solid #E7E9EE',\n}\n\nexport default {\n container,\n notesSection,\n docsSection,\n}\n","import { useRouter } from 'next/router.js'\nimport { useContext, useEffect, useState } from 'react'\n\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\nimport { Box, Text } from '@vtex/brand-ui'\n\nimport { Configure, InstantSearch } from 'react-instantsearch-dom'\nimport { SearchState } from 'react-instantsearch-core'\nimport InfiniteHits from './infiniteHits'\n\nimport styles from './styles'\nimport { SearchContext } from 'utils/context/search'\nimport {\n searchClient,\n searchIndex,\n hitsPerPage,\n} from 'utils/config/search-config'\nimport { formatSearchTabCount } from 'utils/search-utils'\n\nconst SearchResults = () => {\n const router = useRouter()\n const { filterSelectedSection, ocurrenceCount } = useContext(SearchContext)\n const { locale } = useContext(LibraryContext)\n const filters = [\n `language:${locale}`,\n filterSelectedSection ? `doctype:\"${filterSelectedSection}\"` : '',\n ]\n .filter(Boolean)\n .join(' AND ')\n const keyword = String(router.query.keyword ?? '')\n const [prevFilter, setPrevFilter] = useState('')\n const [prevKeyword, setPrevKeyword] = useState(keyword)\n const [searchState, setSearchState] = useState({})\n\n useEffect(() => {\n if (!keyword || keyword === prevKeyword) return\n setPrevKeyword(keyword)\n setSearchState((currentState) => ({\n ...currentState,\n page: 1,\n }))\n }, [keyword, prevKeyword])\n\n const updateSearchState = (currentState: SearchState) => {\n const keywordChanged = keyword !== prevKeyword\n const filterChanged = filters !== prevFilter\n const page = keywordChanged || filterChanged ? 1 : currentState.page || 1\n if (keywordChanged) setPrevKeyword(keyword)\n setPrevFilter(filters)\n setSearchState({\n ...currentState,\n page,\n })\n }\n\n return (\n \n \n {`${messages[locale]['search_results.showing'] || 'Showing'} ${\n formatSearchTabCount(ocurrenceCount[filterSelectedSection]) ?? ''\n } ${messages[locale]['search_results.results_for'] || 'results for'} ${\n router.query.keyword\n } ${messages[locale]['search_results.in'] || 'in'} ${\n !filterSelectedSection\n ? messages[locale]['search_results.all_lowercase'] || 'all results'\n : filterSelectedSection\n }`}\n \n
\n \n \n updateSearchState(currentState)\n }\n >\n \n \n \n \n
\n )\n}\n\nexport default SearchResults\n","import { useContext, useEffect, useMemo, useRef } from 'react'\nimport {\n connectInfiniteHits,\n connectStateResults,\n} from 'react-instantsearch-dom'\nimport {\n Hit,\n InfiniteHitsProvided,\n StateResultsProvided,\n} from 'react-instantsearch-core'\nimport SearchCard from 'components/search-card'\nimport {\n ActionType,\n getIconFromSection,\n getRelativeURL,\n getTitleById,\n} from 'utils/search-utils'\nimport { Box, Flex } from '@vtex/brand-ui'\nimport { MethodType } from 'utils/typings/types'\nimport { SearchContext } from 'utils/context/search'\nimport { LibraryContext } from 'utils/context/libraryContext'\n\nexport type FilteredHit2 = Hit & { filteredMatches?: Hit[] }\n\ninterface HitProps {\n hit: FilteredHit2\n}\n\nconst HitCard = ({ hit }: HitProps) => {\n const { sidebarSections } = useContext(LibraryContext)\n const breadcrumbTitle = getTitleById(sidebarSections, hit.doctype)\n\n const breadcrumbs = [\n breadcrumbTitle,\n ...(hit.doccategory ? [hit.doccategory] : []),\n ,\n hit.doctitle,\n ]\n const DocIcon = getIconFromSection(sidebarSections, hit.doctype)\n\n return (\n \n )\n}\n\nconst StateResults = connectStateResults(\n ({ searchResults }: StateResultsProvided) => {\n const { updateOcurrenceCount } = useContext(SearchContext)\n\n useEffect(() => {\n if (!searchResults) return\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const results = searchResults as any\n const isFilteringByDoctype =\n typeof results?._state.filters === 'string' &&\n results._state.filters.includes('doctype:')\n\n const formattedFacets: Record = {}\n const rawFacets = results?.facets\n\n if (Array.isArray(rawFacets)) {\n const doctypeFacet = rawFacets.find(\n (facet: { name?: string; data?: Record }) =>\n facet.name === 'doctype'\n )\n if (doctypeFacet?.data) {\n Object.entries(doctypeFacet.data).forEach(([key, value]) => {\n if (typeof value === 'number') {\n formattedFacets[key] = value\n }\n })\n }\n } else if (rawFacets?.doctype && typeof rawFacets.doctype === 'object') {\n Object.entries(rawFacets.doctype).forEach(([key, value]) => {\n if (typeof value === 'number') {\n formattedFacets[key] = value\n }\n })\n }\n\n const hybridAllCount = results?._hybridAllCount\n const hybridCountsAttempted = results?._hybridCountsAttempted === true\n if (typeof hybridAllCount === 'number') {\n formattedFacets[''] = hybridAllCount\n } else if (!isFilteringByDoctype && !hybridCountsAttempted) {\n formattedFacets[''] = results?.nbHits ?? 0\n }\n\n if (!isFilteringByDoctype) {\n updateOcurrenceCount(formattedFacets)\n }\n }, [searchResults?.queryID])\n\n return null\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n) as any\n\nconst InfiniteHits = ({ hits, hasMore, refineNext }: InfiniteHitsProvided) => {\n const scrollRef = useRef(null)\n\n function onSentinelIntersection(entries: IntersectionObserverEntry[]) {\n entries.forEach((entry: IntersectionObserverEntry) => {\n if (entry.isIntersecting && hasMore) {\n refineNext()\n }\n })\n }\n\n const filteredResult = useMemo(() => {\n const mergeHits: FilteredHit2[] = [] //hitsData\n hits.forEach((hit) => {\n const alreadyExists = mergeHits.findIndex(\n (e) => e.url_without_anchor === hit.url_without_anchor\n )\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const filteredHit: any = { ...hit, filteredMatches: [] }\n if (alreadyExists >= 0) {\n mergeHits[alreadyExists].filteredMatches?.push(filteredHit)\n } else mergeHits.push(filteredHit)\n })\n return mergeHits\n }, [hits])\n\n useEffect(() => {\n const observer = new IntersectionObserver(onSentinelIntersection, {})\n\n if (scrollRef.current) observer.observe(scrollRef.current)\n return () => {\n observer.disconnect()\n }\n }, [hits])\n return (\n \n \n {filteredResult.map((hit: Hit, index: number) => (\n \n \n \n ))}\n \n \n )\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport default connectInfiniteHits(InfiniteHits) as any\n","import { Box, Flex, Text, IconCaret, Tooltip } from '@vtex/brand-ui'\n\nimport styles from './styles'\nimport Link from 'next/link.js'\nimport CustomHighlight from 'components/search-input/customHighlight'\nimport { useState } from 'react'\nimport { useContext } from 'react'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\nimport ExpandedResultsIcon from 'components/icons/expanded-results-icon'\nimport { Hit } from 'react-instantsearch-core'\nimport MethodCategory from 'components/method-category'\nimport { IconComponent, MethodType } from 'utils/typings/types'\nimport { ActionType, getAction } from 'utils/search-utils'\n\nexport type FilteredHit = Hit & { filteredMatches?: Hit[] }\ninterface SearchCardProps {\n doc: string\n title: string\n breadcrumbs?: string[]\n method?: MethodType\n actionType?: ActionType\n Icon?: IconComponent\n url: string\n hit: FilteredHit\n}\n\nconst SearchCard = ({\n Icon,\n title,\n method,\n breadcrumbs,\n actionType,\n url,\n hit,\n}: SearchCardProps) => {\n const actionValue = actionType ? getAction(actionType) : null\n const [toggleChildResults, setToggleChildResults] = useState(false)\n const { locale } = useContext(LibraryContext)\n return (\n \n \n \n \n {Icon && }\n {method ? (\n \n ) : null}\n {title === 'overview' && `${hit.doccategory} `}\n {title}\n \n \n \n \n \n {toggleChildResults &&\n hit.filteredMatches?.map((childHit, index: number) => (\n \n \n \n ))}\n \n {breadcrumbs ? (\n \n \n {messages[locale]['search_card.in'] || 'In'}\n \n {breadcrumbs.map((breadcrumb, index) => (\n \n \n {breadcrumb}\n \n {index < breadcrumbs.length - 1 ? (\n \n ) : null}\n \n ))}\n \n ) : null}\n {actionValue ? (\n \n {' '}\n {actionValue?.title}\n \n ) : null}\n \n {hit.filteredMatches && hit.filteredMatches.length > 0 && (\n {\n setToggleChildResults(!toggleChildResults)\n event.stopPropagation()\n }}\n >\n \n \n )}\n \n \n )\n}\n\nexport default SearchCard\n","import { SxStyleProp } from '@vtex/brand-ui'\nimport { methodsColors } from 'components/method-category/functions'\nimport { MethodType } from 'utils/typings/unionTypes'\n\nconst container: SxStyleProp = {\n justifyContent: 'space-between',\n borderRadius: '9px',\n border: '1px solid #DDDDDD',\n width: '100%',\n mb: '18px',\n paddingTop: '26px',\n paddingBottom: '10px',\n paddingLeft: ['13px', '44px'],\n paddingRight: ['13px', '34px'],\n background: '#FFFFFF',\n cursor: 'pointer',\n}\n\nconst containerActive = (method: MethodType | undefined): SxStyleProp => {\n const methodCategory = method ? methodsColors[method] : ''\n return {\n ...container,\n ':hover': {\n background: '#F8F7FC',\n '.searchCardTitle, .searchCardDescription': {\n color: '#142032',\n },\n '.method-category': {\n ...methodCategory,\n },\n },\n }\n}\n\nconst title: SxStyleProp = {\n display: 'flex',\n alignItems: 'flex-start',\n fontSize: ['16px', '18px'],\n lineHeight: ['22px', '24px'],\n color: 'muted.0',\n}\n\nconst httpMethod: SxStyleProp = {\n mr: '4px',\n}\n\nconst icon: SxStyleProp = {\n width: '24px',\n height: '24px',\n mr: '8px',\n path: {\n stroke: '#A1A8B3',\n },\n}\n\nconst description: SxStyleProp = {\n fontSize: '16px',\n lineHeight: '22px',\n paddingLeft: '32px',\n color: 'muted.0',\n mt: '4px',\n mb: '8px',\n minWidth: 0,\n overflowWrap: 'break-word',\n wordBreak: 'break-word',\n overflow: 'hidden',\n display: '-webkit-box',\n WebkitLineClamp: 4,\n WebkitBoxOrient: 'vertical',\n}\n\nconst descriptionToggle: SxStyleProp = {\n height: 'auto',\n minWidth: 'auto',\n}\n\nconst descriptionExpandedItem: SxStyleProp = {\n mt: '24px',\n}\n\nconst breadcrumbsContainer: SxStyleProp = {\n display: ['none', 'flex'],\n paddingLeft: '32px',\n alignItems: 'center',\n}\n\nconst alignCenter: SxStyleProp = {\n alignItems: 'center',\n}\n\nconst documentation: SxStyleProp = {\n ...alignCenter,\n minWidth: 'max-content',\n}\n\nconst breadcrumb: SxStyleProp = {\n color: 'muted.1',\n fontSize: '16px',\n lineHeight: '18px',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n}\n\nconst lastBreadcrumb: SxStyleProp = {\n ...breadcrumb,\n margin: 'auto 0',\n display: 'block',\n overflow: 'hidden',\n maxWidth: 'max-content',\n whiteSpace: 'nowrap',\n}\n\nconst breadcrumbsIn: SxStyleProp = {\n ...breadcrumb,\n mr: '4px',\n minWidth: 'fit-content',\n}\n\nconst breadcrumbsArrow: SxStyleProp = {\n width: '16px',\n height: '16px',\n color: 'muted.2',\n}\n\nconst actionContainer: SxStyleProp = {\n paddingLeft: '32px',\n alignItems: 'center',\n}\n\nconst actionIcon: SxStyleProp = {\n minWidth: '16px',\n minHeight: '16px',\n width: '16px',\n height: '16px',\n mr: '8px',\n}\n\nexport default {\n containerActive,\n title,\n httpMethod,\n icon,\n description,\n descriptionToggle,\n descriptionExpandedItem,\n breadcrumbsContainer,\n alignCenter,\n documentation,\n breadcrumb,\n lastBreadcrumb,\n breadcrumbsIn,\n breadcrumbsArrow,\n actionContainer,\n actionIcon,\n}\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\ninterface ExpandedResultsProps extends IconProps {\n active: boolean\n}\n\nconst ExpandedResultsIcon = ({ active }: ExpandedResultsProps) =>\n active ? (\n \n \n \n \n ) : (\n \n \n \n \n \n )\n\nexport default ExpandedResultsIcon\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst resultContainer: SxStyleProp = {\n width: ['80%', '544px', '544px', '544px', '720px', '720px', '1400px'],\n paddingTop: ['32px', '32px', '32px', '64px'],\n hr: {\n marginTop: '16px',\n marginBottom: '32px',\n borderTop: 'none',\n borderColor: '#DDDDDD',\n display: ['none', 'none', 'none', 'block'],\n },\n}\n\nconst resultText: SxStyleProp = {\n mb: '16px',\n fontSize: '16px',\n lineHeight: '22px',\n display: ['none', 'none', 'none', 'initial'],\n}\n\nconst paginationContainer: SxStyleProp = {\n mt: ['48px', '115px'],\n mb: '34px',\n justifyContent: 'center',\n}\n\nconst paginationLink: SxStyleProp = {\n fontSize: '16px',\n lineHeight: '20px',\n color: '#EE2565',\n cursor: 'pointer',\n}\n\nconst paginationLinkDisabled: SxStyleProp = {\n ...paginationLink,\n color: 'muted.1',\n}\n\nconst paginationNumber: SxStyleProp = {\n display: 'flex',\n fontSize: ['14px', '16px'],\n lineHeight: '20px',\n color: '#4A596B',\n mx: ['18px', '27px'],\n}\n\nconst paginationActualNumber: SxStyleProp = {\n fontWeight: '700',\n mx: '4px',\n}\n\nconst noResults: SxStyleProp = {\n justifyContent: 'center',\n alignContent: 'center',\n padding: '12px',\n}\n\nexport default {\n resultContainer,\n resultText,\n paginationContainer,\n paginationLink,\n paginationLinkDisabled,\n paginationNumber,\n paginationActualNumber,\n noResults,\n}\n","import { useContext } from 'react'\nimport { Flex, Text } from '@vtex/brand-ui'\n\nimport styles from './styles'\nimport { SearchContext } from 'utils/context/search'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\nimport { formatSearchTabCount } from 'utils/search-utils'\n\nconst SearchFilterTab = ({ filter }: { filter: string }) => {\n const { filterSelectedSection, changeFilterSelectedSection, ocurrenceCount } =\n useContext(SearchContext)\n const { locale } = useContext(LibraryContext)\n\n const count = ocurrenceCount[filter]\n const isAllTab = filter === ''\n const isDisabled = !isAllTab && count === 0\n const formattedCount = formatSearchTabCount(count)\n const isActive = filterSelectedSection === filter\n\n const handleClick = () => {\n if (isDisabled) return\n changeFilterSelectedSection(filter)\n }\n\n return (\n \n \n {filter || messages[locale]['search_results.all'] || 'All results'}\n \n {formattedCount !== undefined && (\n \n {formattedCount}\n \n )}\n \n )\n}\n\nconst SearchFilterTabBar = () => {\n const { sidebarSections } = useContext(LibraryContext)\n return (\n \n \n {sidebarSections.flat().map((section) => {\n return \n })}\n \n )\n}\n\nexport default SearchFilterTabBar\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst container: SxStyleProp = {\n display: ['flex', 'flex', 'flex', 'none'],\n overflowX: 'scroll',\n scrollbarWidth: 'none',\n '::-webkit-scrollbar': {\n display: 'none',\n },\n}\n\nconst tab: (active: boolean, disabled?: boolean) => SxStyleProp = (\n active,\n disabled = false\n) => ({\n pt: '8px',\n pb: '14px',\n px: '24px',\n cursor: disabled ? 'not-allowed' : 'pointer',\n justifyContent: 'center',\n alignItems: 'center',\n borderBottom: `${active ? 2 : 1}px solid #${active ? 'D71D55' : 'DDDDDD'}`,\n minWidth: 'max-content',\n opacity: disabled ? 0.5 : 1,\n})\n\nconst tabTitle: (active: boolean, disabled?: boolean) => SxStyleProp = (\n active,\n disabled = false\n) => ({\n fontSize: '14px',\n fontWeight: '600',\n lineHeight: '16.38px',\n whiteSpace: 'nowrap',\n color: `#${disabled ? 'AFAFAF' : active ? 'D71D55' : '545454'}`,\n})\n\nconst tabCount: SxStyleProp = {\n px: '8px',\n ml: '2px',\n fontSize: '12px',\n fontWeight: '400',\n lineHeight: '16px',\n borderRadius: '24px',\n backgroundColor: '#F8F7FC',\n}\n\nexport default { container, tab, tabTitle, tabCount }\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst searchBarContainer: SxStyleProp = {\n display: ['flex', 'flex', 'flex', 'none'],\n justifyContent: 'center',\n py: '16px',\n}\n\nconst body: SxStyleProp = {\n background: '#FFFFFF',\n justifyContent: 'center',\n}\n\nexport default {\n searchBarContainer,\n body,\n}\n","import { ReactNode, useContext } from 'react'\nimport { CookieConsent } from 'react-cookie-consent'\nimport styles from './styles'\nimport { Flex, SxStyleProp, Text } from '@vtex/brand-ui'\nimport { messages } from 'utils/get-message'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport aa from 'search-insights'\n\ninterface Props {\n onAccept: () => void\n}\n\ninterface ButtonProps {\n children: ReactNode[]\n style: SxStyleProp\n}\n\nconst Button = ({ children, style, ...props }: ButtonProps) => {\n return (\n \n {children}\n \n )\n}\n\nconst CookieBar = ({ onAccept }: Props) => {\n const { locale } = useContext(LibraryContext)\n\n return (\n {\n aa('init', {\n partial: true,\n useCookie: true,\n })\n onAccept()\n }}\n declineButtonText={messages[locale]['cookie_bar.decline']}\n buttonText={messages[locale]['cookie_bar.accept']}\n ButtonComponent={Button}\n customButtonWrapperAttributes={{ style: styles.buttonContainer }}\n customContentAttributes={{ style: styles.barContent }}\n >\n {messages[locale]['cookie_bar.title']}\n {messages[locale]['cookie_bar.description']}\n \n )\n}\n\nexport default CookieBar\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst bar: SxStyleProp = {\n backgroundColor: '#FFF',\n borderRadius: '8px',\n color: '#5E6E84',\n padding: '20px',\n width: '80%',\n left: '50%',\n transform: 'translateX(-50%)',\n maxWidth: '1280px',\n alignItems: 'center',\n justifyContent: 'center',\n boxShadow: '0 0 10px rgba(0, 0, 0, 0.1)',\n}\n\nconst barContent: SxStyleProp = {\n display: 'flex',\n flex: '1 0 300px',\n flexDirection: 'column',\n maxWidth: '100%',\n}\n\nconst title: SxStyleProp = {\n color: '#5E6E84',\n marginBottom: '10px',\n lineHeight: '28px',\n fontSize: '25px',\n fontWeight: '400',\n}\n\nconst buttonContainer: SxStyleProp = {\n display: 'flex',\n flexWrap: 'wrap',\n gap: '10px',\n justifyContent: 'center',\n margin: '15px',\n}\n\nconst acceptButton: SxStyleProp = {\n background: '#F71963',\n color: '#FFF',\n padding: '7px 16px',\n borderRadius: '2px',\n margin: '0',\n height: '32px',\n fontWeight: '400',\n\n ':hover': {\n opacity: '0.7',\n },\n}\n\nconst declineButton: SxStyleProp = {\n border: '1px solid #F71963',\n background: '#FFF',\n color: '#F71963',\n borderRadius: '2px',\n fontWeight: '400',\n margin: '0',\n height: '32px',\n\n ':hover': {\n opacity: '0.7',\n },\n}\n\nexport default {\n bar,\n barContent,\n title,\n acceptButton,\n declineButton,\n buttonContainer,\n}\n","import { Button } from '@vtex/brand-ui'\nimport Tooltip from 'components/tooltip'\nimport CopyIcon from '../icons/copy-icon'\nimport { useState } from 'react'\nimport styles from './styles'\n\nconst CopyLinkButton = () => {\n const [tooltipText, setTooltipText] = useState('Copy')\n\n const handleCopy = () => {\n navigator.clipboard.writeText(window.location.href)\n setTooltipText('Copy')\n\n setTimeout(() => {\n setTooltipText('Copied!')\n }, 2000)\n }\n\n return (\n \n \n \n )\n}\n\nexport default CopyLinkButton\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst CopyIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default CopyIcon\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst copyIcon: SxStyleProp = {\n marginRight: '4px',\n}\n\nconst copyLinkButton: SxStyleProp = {\n textTransform: 'none',\n color: '#3F3F3F',\n fontWeight: '100',\n fontSize: '12px',\n lineHeight: '18px',\n height: 'none',\n padding: '8px 5px 8px 8px',\n border: '1px solid #A1AAB7',\n backgroundColor: 'white',\n ':hover': {\n backgroundColor: '#EFEFEF',\n },\n}\n\nexport default {\n copyIcon,\n copyLinkButton,\n}\n","import { useState, useEffect } from 'react'\nimport styles from './styles'\nimport { Flex } from '@vtex/brand-ui'\nimport { IconComponent } from 'utils/typings/types'\n\ninterface InputProps {\n value: string\n Icon?: IconComponent\n placeholder?: string\n onChange: (value: string) => void\n}\n\nconst Input = ({ value, onChange, placeholder = '', Icon }: InputProps) => {\n const [inputValue, setInputValue] = useState(value ?? '')\n\n useEffect(() => {\n if (inputValue !== value) setInputValue(value)\n }, [value])\n\n return (\n \n {Icon && }\n {\n setInputValue(e.currentTarget.value)\n onChange(e.currentTarget.value)\n }}\n />\n \n )\n}\n\nexport default Input\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst input: SxStyleProp = {\n background: 'none',\n border: '#F4F4F4',\n color: '#545454',\n fontSize: ['14px'],\n width: '100%',\n transition: 'flex 0.3s',\n outline: 'none',\n}\n\nconst icon: SxStyleProp = {\n minWidth: '16px',\n minHeight: '16px',\n width: '16px',\n mr: '8px',\n flex: 0,\n maxWidth: 'fit-content',\n}\n\nconst container: SxStyleProp = {\n paddingLeft: '12px',\n alignItems: 'center',\n justifyContent: 'center',\n background: '#F4F4F4',\n width: '100%',\n height: '40px',\n borderRadius: '4px',\n transition: 'all 0.3s ease-out',\n cursor: 'pointer',\n border: '1px solid #F4F4F4',\n\n ':hover': {\n transition: 'all 0.3s ease-out',\n border: '1px solid #3B3B3B',\n },\n}\n\nexport default { container, input, icon }\n","import React, { useContext, useState } from 'react'\nimport { Box, Button, Text, Flex, Link } from '@vtex/brand-ui'\nimport { messages } from 'utils/get-message'\nimport { getPrivacyNoticeURL, getNewsletterURL } from 'utils/get-url'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport styles from './styles'\n\ntype EmailValidationResult = 'valid' | 'invalid' | 'error'\n\nconst SubscriptionList: React.FC = () => {\n const { locale } = useContext(LibraryContext)\n const localizedMessages = messages[locale] ?? messages.en\n const [email, setEmail] = useState('')\n const [message, setMessage] = useState('')\n const [messageType, setMessageType] = useState<'success' | 'error' | ''>('')\n\n const clearMessageAfterTimeout = () => {\n setTimeout(() => {\n setMessage('')\n setMessageType('')\n }, 3000)\n }\n\n const showMessage = (type: 'success' | 'error', text: string) => {\n setMessageType(type)\n setMessage(text)\n clearMessageAfterTimeout()\n if (type === 'success') setEmail('')\n }\n\n const checkEmail = async (email: string): Promise => {\n const apiKey = process.env.NEXT_PUBLIC_NEWSLETTER_API_KEY\n if (!apiKey) {\n console.error(localizedMessages['subscription_list.api_key_error'])\n return 'error'\n }\n\n const url = `https://mailcheck.p.rapidapi.com/?email=${encodeURIComponent(\n email\n )}`\n\n try {\n const response = await fetch(url, {\n method: 'GET',\n headers: {\n 'x-rapidapi-host': 'mailcheck.p.rapidapi.com',\n 'x-rapidapi-key': apiKey,\n },\n })\n\n if (!response.ok) {\n console.error(\n 'Email validation failed:',\n response.status,\n response.statusText\n )\n return 'error'\n }\n\n const data = await response.json()\n if (typeof data.block !== 'boolean') {\n console.error('Email validation returned an unusable response:', data)\n return 'error'\n }\n\n return data.block ? 'invalid' : 'valid'\n } catch (error) {\n console.error(error)\n return 'error'\n }\n }\n\n const handleSubscribe = async () => {\n if (!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email)) {\n showMessage('error', localizedMessages['subscription_list.invalid_email'])\n return\n }\n\n const validationResult = await checkEmail(email)\n if (validationResult === 'invalid') {\n showMessage('error', localizedMessages['subscription_list.invalid_email'])\n return\n }\n if (validationResult === 'error') {\n showMessage('error', localizedMessages['subscription_list.error'])\n return\n }\n\n const baseURL =\n 'https://hooks.zapier.com/hooks/catch/11585741/2pahup2/?email='\n\n const browserLocale = navigator.language || 'en-US'\n const currentDate = new Date()\n const formattedDate = currentDate.toLocaleString(browserLocale, {\n month: 'short',\n day: '2-digit',\n year: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: false,\n })\n\n const urlEnd = `&locale=${browserLocale}&date=${encodeURIComponent(\n formattedDate\n )}`\n const emailEncoded = encodeURIComponent(email)\n const url = baseURL + emailEncoded + urlEnd\n\n try {\n const response = await fetch(url, { method: 'POST' })\n\n if (!response.ok) {\n console.error(\n 'Subscription failed:',\n response.status,\n response.statusText\n )\n showMessage('error', localizedMessages['subscription_list.error'])\n return\n }\n\n showMessage('success', localizedMessages['subscription_list.success'])\n } catch (error) {\n console.error('Error:', error)\n showMessage('error', localizedMessages['subscription_list.error'])\n }\n }\n\n return (\n \n \n {localizedMessages['landing_page_subscription.title']}\n \n \n
\n \n {\n localizedMessages['landing_page_subscription.description'].split(\n 'newsletter'\n )[0]\n }\n \n newsletter\n \n {\n localizedMessages['landing_page_subscription.description'].split(\n 'newsletter'\n )[1]\n }\n \n \n ) =>\n setEmail(e.target.value)\n }\n sx={styles.emailInputField}\n />\n \n {localizedMessages['landing_page_newsletter.Button']}\n \n \n \n {localizedMessages['subscription_list.privacy_notice']}{' '}\n \n {localizedMessages['subscription_list.privacy_policy_link']}\n \n \n {message && (\n \n {message}\n \n )}\n
\n
\n
\n )\n}\n\nexport default SubscriptionList\n","export const getFeedbackURL = () => {\r\n return `https://docs.google.com/forms/d/e/1FAIpQLSfmnotPvPjw-SjiE7lt2Nt3RQgNUe10ixXZmuO2v9enOJReoQ/viewform?entry.1972292648=developers.vtex.com&entry.1799503232=`\r\n}\r\n\r\nexport const getGithubURL = () => {\r\n return `https://github.com/vtex-apps`\r\n}\r\n\r\nexport const getHelpCenterURL = () => {\r\n return `https://help.vtex.com/`\r\n}\r\n\r\nexport const getCommunityURL = () => {\r\n return `https://community.vtex.com/?_ga=2.198523433.743584735.1647618303-1974737580.1645714642`\r\n}\r\n\r\nexport const getLearningCenterURL = () => {\r\n return 'https://learn.vtex.com/'\r\n}\r\n\r\nexport const getSupportURL = () => {\r\n return 'https://help.vtex.com/en/support'\r\n}\r\n\r\nexport const getNewsletterURL = (locale: 'en' | 'pt' | 'es' = 'en') => {\r\n return `https://vtexhelp.myvtex.com/educationnewsletter/${locale}`\r\n}\r\n\r\nexport const getPrivacyNoticeURL = (locale: 'en' | 'pt' | 'es' = 'en') => {\r\n const localeMap = { en: 'us-en', pt: 'pt-br', es: 'es-mx' }\r\n return `https://vtex.com/${localeMap[locale]}/trust/general-external-privacy-notice/`\r\n}\r\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst controlHeight = '48px'\n\nconst sectionContainer: SxStyleProp = {\n borderTop: '1px solid #e7e9ef',\n px: ['16px', '24px', '32px'],\n py: ['42px', '44px', '64px'],\n backgroundColor: 'muted.4',\n textAlign: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n}\n\nconst cardContainer: SxStyleProp = {\n mt: ['16px', '24px', '32px'],\n px: ['16px', '24px', '50px'],\n py: ['16px', '24px', '40px'],\n width: ['100%', '90%', '80%'],\n maxWidth: '1035px',\n backgroundColor: 'white',\n borderRadius: '8px',\n border: '1px solid #E7E9EE',\n}\n\nconst title: SxStyleProp = {\n fontSize: ['20px', '28px', '28px', '40px'],\n lineHeight: ['30px', '38px', '38px', '50px'],\n fontWeight: '400',\n color: '#4A4A4A',\n textAlign: 'center',\n}\n\nconst description: SxStyleProp = {\n fontSize: ['14px', '16px'],\n lineHeight: ['20px', '22px'],\n textAlign: 'center',\n marginBottom: '16px',\n}\n\nconst inputContainer: SxStyleProp = {\n display: 'flex',\n flexDirection: ['column', 'row'],\n gap: '5px',\n justifyContent: 'center',\n alignItems: ['center', 'flex-end'],\n width: '100%',\n}\n\nconst emailInputField: SxStyleProp = {\n flex: 1,\n minWidth: 0,\n width: '100%',\n border: '1px solid #a1a8b3',\n borderRadius: '4px',\n color: '#4A4A4A',\n fontSize: '16px',\n lineHeight: '22px',\n px: '16px',\n py: 0,\n height: controlHeight,\n minHeight: controlHeight,\n boxSizing: 'border-box',\n '&::placeholder': {\n color: '#4A4A4A',\n },\n '&:focus': {\n outline: 'none',\n borderColor: '#A1A8B3',\n },\n}\n\nconst button: SxStyleProp = {\n transition: 'all 0.3s ease-out',\n minHeight: controlHeight,\n height: controlHeight,\n alignSelf: ['center', 'stretch'],\n minWidth: '140px',\n whiteSpace: 'nowrap',\n px: '16px',\n}\n\nconst privacyText: SxStyleProp = {\n fontSize: ['14px', '16px'],\n color: '#A1A8B3',\n lineHeight: ['16px', '22px'],\n pl: ['22px', '32px'],\n fontWeight: '400',\n margin: '16px',\n}\n\nconst popupCard: SxStyleProp = {\n backgroundColor: 'white',\n boxShadow: '0 4px 6px rgba(0, 0, 0, 0.1)',\n width: '100%',\n maxWidth: '400px',\n padding: ['8px', '12px'],\n boxSizing: 'border-box',\n margin: '0 auto',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: '6px',\n marginTop: '16px',\n alignSelf: 'center',\n}\n\nexport default {\n sectionContainer,\n cardContainer,\n title,\n description,\n inputContainer,\n emailInputField,\n button,\n privacyText,\n popupCard,\n}\n","import { SxStyleProp, Text } from '@vtex/brand-ui'\n\nimport styles from './styles'\n\nexport type TagColor =\n | 'Default'\n | 'Selected'\n | 'New'\n | 'Gray'\n | 'Blue'\n | 'Green'\n | 'Deprecation'\n | 'Backlog'\n | 'Fixed'\n | 'Closed'\n | 'Scheduled'\n | 'No_Fix'\n\nexport type TagProps = {\n sx?: SxStyleProp\n children: React.ReactNode\n color?: TagColor\n onClick?: () => void\n}\n\nconst Tag = ({ sx = {}, children, color = 'Default', onClick }: TagProps) => {\n return (\n \n {children}\n \n )\n}\n\nexport default Tag\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nimport type { TagColor } from './index'\n\nconst tag: SxStyleProp = {\n borderRadius: '11.5px',\n height: '20px',\n fontSize: '12px',\n lineHeight: '20px',\n px: '7px',\n textAlign: 'center',\n textWrap: 'nowrap',\n minWidth: 'max-content',\n}\n\nconst statusColors: Record = {\n Backlog: {\n border: '1px solid #D3D3D3',\n color: '#4A596B',\n background: '#E9E9E9',\n },\n Fixed: {\n border: '1px solid #9FCDB4',\n color: '#3A6E32',\n background: '#DFF5DB',\n },\n Closed: {\n border: '1px solid #A5C0FF',\n color: '#2953B2',\n background: '#DEE8FE',\n },\n Scheduled: {\n border: '1px solid #FFD581',\n color: '#D77809',\n background: '#FFF3DA',\n },\n No_Fix: {\n border: '1px solid #FAA397',\n color: '#CB2610',\n background: '#FFDFDB',\n },\n Default: {\n border: '1px solid #A1AAB7',\n color: '#A1AAB7',\n background: '#ffff',\n\n ':hover': {\n color: '#4A596B',\n border: '1px solid #4A596B',\n },\n },\n Selected: {\n border: '1px solid #A1AAB7',\n color: '#ffff',\n background: '#A1AAB7',\n\n ':hover': {\n color: '#142032',\n },\n },\n New: {\n border: '1px solid #F71963',\n color: '#F71963',\n background: '#FFE0EF',\n },\n Gray: {\n color: '#4A596B',\n background: '#E7E9EE',\n },\n Deprecation: {\n border: '1px solid #E8A5BE',\n color: '#A23D6E',\n background: '#FCEAF2',\n },\n Blue: {\n border: '1px solid #A5C0FF',\n color: '#2953B2',\n background: '#DEE8FE',\n },\n Green: {\n border: '1px solid #9FCDB4',\n color: '#3A6E32',\n background: '#DFF5DB',\n },\n}\n\nexport default {\n statusColors,\n tag,\n}\n","import { Box, Button, Checkbox, Flex, SxStyleProp, Text } from '@vtex/brand-ui'\nimport CloseIcon from 'components/icons/close-icon'\nimport FilterIcon from 'components/icons/filter-icon'\nimport TrashcanIcon from 'components/icons/trashcan-icon'\nimport Tag from 'components/tag'\nimport { useState } from 'react'\n\nimport { toFilterGroup, toFilterGroups } from './normalize'\nimport styles from './styles'\nimport type {\n FilterGroup,\n ListingFilterLabels,\n ListingFilterSelection,\n} from './types'\n\nexport type { FilterGroup, FilterOption, ListingFilterLabels, ListingFilterSelection } from './types'\n\nexport type ListingFilterProps = {\n tagFilter?: FilterGroup | string[]\n tagFilterName?: string\n checkBoxFilter?: FilterGroup | string[]\n checkBoxFilters?: FilterGroup[]\n filterName?: string\n selectedCheckboxes?: string[]\n selectedTags?: string[]\n onApply: (filters: ListingFilterSelection) => void\n labels?: ListingFilterLabels\n buttonSx?: SxStyleProp\n centeredTagOptions?: boolean\n}\n\ntype SelectedFilters = ListingFilterSelection\n\nconst defaultLabels: Required = {\n button: 'Filters',\n modalTitle: 'Filters',\n remove: 'Remove filters',\n apply: 'Apply filters',\n}\n\nconst ListingFilter = ({\n tagFilter,\n tagFilterName,\n checkBoxFilter,\n checkBoxFilters,\n filterName = '',\n onApply,\n selectedCheckboxes,\n selectedTags,\n labels,\n buttonSx,\n centeredTagOptions = false,\n}: ListingFilterProps) => {\n const resolvedLabels = { ...defaultLabels, ...labels }\n const normalizedTagFilter = toFilterGroup(tagFilter, tagFilterName)\n const checkboxGroups = toFilterGroups(\n checkBoxFilter,\n checkBoxFilters,\n filterName\n )\n\n const [isModalOpen, setIsModalOpen] = useState(false)\n const [tempFilters, setTempFilters] = useState({\n tag: [],\n checklist: [],\n })\n\n const numberOfFilters =\n getSelectedFiltersLength(selectedTags) +\n getSelectedFiltersLength(selectedCheckboxes)\n\n function getSelectedFiltersLength(filters: string[] | undefined) {\n return filters?.length ?? 0\n }\n\n function handleFilterClick(option: string, type: 'tag' | 'checklist') {\n setTempFilters((prev) => {\n const current = prev[type]\n const updatedFilters = current.includes(option)\n ? current.filter((filter) => filter !== option)\n : [...current, option]\n\n return { ...prev, [type]: updatedFilters }\n })\n }\n\n function isFilterSelected(option: string, type: 'tag' | 'checklist') {\n if (isModalOpen) {\n return tempFilters[type].includes(option)\n }\n\n if (type === 'tag') {\n return selectedTags?.includes(option) ?? false\n }\n\n return selectedCheckboxes?.includes(option) ?? false\n }\n\n const FilterButton = () => (\n {\n setTempFilters({\n checklist: selectedCheckboxes ?? [],\n tag: selectedTags ?? [],\n })\n setIsModalOpen(true)\n }}\n >\n \n {resolvedLabels.button}\n {numberOfFilters > 0 && (\n {numberOfFilters}\n )}\n \n )\n\n const TagFilter = () => {\n if (!normalizedTagFilter) return null\n\n return (\n \n {normalizedTagFilter.name}\n \n {normalizedTagFilter.options.map((option) => (\n handleFilterClick(option.id, 'tag')}\n >\n {option.name}\n \n ))}\n \n \n )\n }\n\n const CheckboxFilters = () => {\n if (checkboxGroups.length === 0) return null\n\n return (\n <>\n {checkboxGroups.map((group, groupIndex) => (\n \n {groupIndex > 0 && }\n \n {group.name}\n \n {group.options.map((option) => (\n handleFilterClick(option.id, 'checklist')}\n />\n ))}\n \n \n \n ))}\n \n )\n }\n\n const Divider = () => (\n \n
\n
\n )\n\n const FilterModal = () => (\n <>\n setIsModalOpen(false)} />\n \n \n {resolvedLabels.modalTitle}\n setIsModalOpen(false)}\n >\n \n \n \n \n \n {normalizedTagFilter && checkboxGroups.length > 0 && }\n \n \n \n }\n onClick={() => setTempFilters({ tag: [], checklist: [] })}\n >\n {resolvedLabels.remove}\n \n {\n setIsModalOpen(false)\n onApply(tempFilters)\n }}\n >\n {resolvedLabels.apply}\n \n \n \n \n )\n\n return (\n <>\n \n {isModalOpen && }\n \n )\n}\n\nexport default ListingFilter\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst FilterIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default FilterIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst TrashcanIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n)\n\nexport default TrashcanIcon\n","import type { FilterGroup } from './types'\n\nexport function isFilterGroup(value: unknown): value is FilterGroup {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'name' in value &&\n 'options' in value &&\n Array.isArray((value as FilterGroup).options)\n )\n}\n\nexport function toFilterGroup(\n input: FilterGroup | string[] | undefined,\n name = ''\n): FilterGroup | undefined {\n if (!input) return undefined\n\n if (isFilterGroup(input)) {\n return input\n }\n\n return {\n name,\n options: input.map((option) => ({ id: option, name: option })),\n }\n}\n\nexport function toFilterGroups(\n checkBoxFilter: FilterGroup | string[] | undefined,\n checkBoxFilters: FilterGroup[] | undefined,\n filterName = ''\n): FilterGroup[] {\n if (checkBoxFilters?.length) {\n return checkBoxFilters\n }\n\n const normalized = toFilterGroup(checkBoxFilter, filterName)\n return normalized ? [normalized] : []\n}\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst filterButton: SxStyleProp = {\n cursor: 'pointer',\n alignItems: 'center',\n borderRadius: '4px',\n border: '1px solid #E7E9EE',\n fontSize: '14px',\n gap: '8px',\n px: '8px',\n transition: '0.3s',\n height: '30px',\n ':hover': {\n color: '#F71963',\n },\n width: 'min-content',\n}\n\nconst filterButtonText: SxStyleProp = {\n display: ['none', 'block', 'block'],\n}\n\nconst numberOfFilters: SxStyleProp = {\n backgroundColor: '#FFE0EF',\n color: '#F71963',\n borderRadius: '4px',\n px: '4px',\n}\n\nconst blanket: SxStyleProp = {\n margin: '0',\n width: '100%',\n height: '100%',\n background: 'rgba(20, 32, 50, 0.70)',\n position: 'fixed',\n top: '0',\n left: '0',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n zIndex: '9999',\n}\n\nconst container: SxStyleProp = {\n position: 'fixed',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n width: '612px',\n maxWidth: '100vw',\n borderRadius: '5px',\n backgroundColor: '#ffff',\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\n zIndex: '10000',\n overflow: 'auto',\n height: ['100vh', 'auto'],\n}\n\nconst innerContainer: SxStyleProp = {\n p: '24px',\n maxHeight: ['calc(100vh - 145px)', 'calc(100vh - 6rem - 112px)'],\n overflow: 'auto',\n}\n\nconst topContainer: SxStyleProp = {\n display: 'grid',\n width: '100%',\n borderBottom: '1px solid #E7E9EE',\n gridTemplateColumns: '1fr 64px',\n alignItems: 'center',\n gap: '24px',\n height: '64px',\n}\n\nconst modalTitle: SxStyleProp = {\n fontSize: '16px',\n textAlign: 'center',\n}\n\nconst closeButtonContainer: SxStyleProp = {\n cursor: 'pointer',\n borderLeft: '1px solid #E7E9EE',\n height: '100%',\n justifyContent: 'center',\n alignItems: 'center',\n transition: '0.3s',\n ':hover': {\n color: '#E31C58',\n },\n}\n\nconst filterContainer: SxStyleProp = {\n display: 'flex',\n flexDirection: 'column',\n gap: '24px',\n}\n\nconst tagContainer: SxStyleProp = {\n gap: '16px',\n flexWrap: 'wrap',\n}\n\nconst tagContainerCentered: SxStyleProp = {\n display: 'flex',\n flexWrap: 'wrap',\n gap: '12px',\n justifyContent: 'center',\n overflow: 'visible',\n maxWidth: '100%',\n}\n\nconst tag: SxStyleProp = {\n cursor: 'pointer',\n transition: '0.3s',\n flex: '0 0 auto',\n ':active': {\n position: 'relative',\n top: '1px',\n },\n}\n\nconst checkBoxContainer: SxStyleProp = {\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fill, minmax(150px, 1fr))',\n gap: '24px',\n alignItems: 'top',\n fontSize: '12px',\n color: '#4A596B',\n}\n\nconst buttonsContainer: SxStyleProp = {\n py: '16px',\n px: '32px',\n alignItems: 'center',\n justifyContent: 'space-between',\n borderTop: '1px solid #E7E9EE',\n}\n\nconst sectionDivider: SxStyleProp = {\n hr: {\n border: '1px solid #E7E9EE',\n mb: '24px',\n mt: '24px',\n },\n}\n\nconst filterTitle: SxStyleProp = {\n fontSize: '20px',\n}\n\nconst removeButton: SxStyleProp = {\n backgroundColor: 'transparent',\n color: '#4A596B',\n textTransform: 'none',\n transition: '0.3s',\n p: '0',\n\n ':hover': {\n backgroundColor: 'transparent',\n color: '#E31C58',\n },\n}\n\nexport default {\n filterButton,\n filterButtonText,\n numberOfFilters,\n blanket,\n container,\n innerContainer,\n topContainer,\n modalTitle,\n closeButtonContainer,\n filterContainer,\n tagContainer,\n tagContainerCentered,\n tag,\n checkBoxContainer,\n buttonsContainer,\n sectionDivider,\n filterTitle,\n removeButton,\n}\n","import { Box, Link, Text } from '@vtex/brand-ui'\nimport Tag from 'components/tag'\n\nimport type { TroubleshootingItem } from '../../utils/troubleshooting/types'\nimport styles from './styles'\n\nexport type TroubleshootingCardVariant = 'devportal' | 'helpcenter'\n\nexport type TroubleshootingCardProps = TroubleshootingItem & {\n href?: string\n basePath?: string\n variant?: TroubleshootingCardVariant\n}\n\nfunction buildHref({\n slug,\n href,\n basePath = '/docs/troubleshooting',\n}: Pick) {\n if (href) return href\n\n const normalizedBasePath = basePath.replace(/\\/$/, '')\n return `${normalizedBasePath}/${slug}`\n}\n\nconst TroubleshootingCard = ({\n title,\n description,\n slug,\n tags,\n domainFilters,\n symptomFilters,\n href,\n basePath,\n variant = 'devportal',\n}: TroubleshootingCardProps) => {\n const cardHref = buildHref({ slug, href, basePath })\n const resolvedSymptomFilters = symptomFilters?.filter(Boolean) ?? []\n const resolvedDomainFilters = domainFilters?.filter(Boolean) ?? []\n const fallbackTags = tags?.filter(Boolean) ?? []\n const hasStructuredTags =\n resolvedSymptomFilters.length > 0 || resolvedDomainFilters.length > 0\n\n if (variant === 'helpcenter') {\n return (\n \n \n \n {title}\n \n {hasStructuredTags ? (\n \n {resolvedSymptomFilters.length > 0 && (\n \n \n {resolvedSymptomFilters.map((filter) => (\n \n {filter}\n \n ))}\n \n \n )}\n {resolvedDomainFilters.length > 0 && (\n \n \n {resolvedDomainFilters.map((filter) => (\n \n {filter}\n \n ))}\n \n \n )}\n \n ) : null}\n \n \n )\n }\n\n return (\n \n \n \n {title}\n \n {description ? (\n \n {description}\n \n ) : null}\n \n {resolvedSymptomFilters.length > 0 && (\n \n {resolvedSymptomFilters.map((filter) => (\n \n {filter}\n \n ))}\n \n )}\n {resolvedDomainFilters.length > 0 && (\n \n {resolvedDomainFilters.map((filter) => (\n \n {filter}\n \n ))}\n \n )}\n {!hasStructuredTags &&\n fallbackTags.map((moduleTag) => (\n \n {moduleTag}\n \n ))}\n \n \n \n )\n}\n\nexport default TroubleshootingCard\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst devportalContainer: SxStyleProp = {\n mt: '16px',\n padding: '25px',\n borderRadius: '4px',\n border: '1px solid #E7E9EE',\n width: '100%',\n transition: 'all 0.3s ease-out',\n ':hover': {\n cursor: 'pointer',\n },\n ':active, :hover': {\n borderColor: 'muted.2',\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\n transition: 'all 0.3 ease-out',\n\n '.title, .description': {\n transition: 'all 0.3s ease-out',\n color: '#000711',\n },\n },\n}\n\nconst helpcenterContainer: SxStyleProp = {\n px: ['32px', '32px', '36px', '64px'],\n py: '24px',\n display: 'flex',\n flexDirection: 'column',\n gap: '16px',\n borderRadius: '4px',\n border: '1px solid #E7E9EE',\n width: ['320px', '544px', '720px'],\n transition: 'all 0.3s ease-out',\n ':hover': {\n cursor: 'pointer',\n },\n ':active, :hover': {\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\n transition: 'all 0.3 ease-out',\n\n '.title': {\n transition: 'all 0.3s ease-out',\n color: '#000711',\n },\n },\n}\n\nconst title: SxStyleProp = {\n mb: '8px',\n fontSize: ['14px', '20px'],\n fontWeight: '400',\n lineHeight: ['22px', '30px'],\n color: 'muted.0',\n}\n\nconst description: SxStyleProp = {\n fontSize: '16px',\n lineHeight: '22px',\n fontWeight: '400',\n color: 'muted.1',\n overflow: 'hidden',\n width: '100%',\n height: '50%',\n display: ['none', 'none', 'block', 'block', 'block', 'block', 'block'],\n}\n\nconst tag: SxStyleProp = {\n width: 'max-content',\n px: '8px',\n margin: '4px',\n}\n\nconst tagsContainer: SxStyleProp = {\n display: 'flex',\n flexWrap: 'wrap',\n mt: '12px',\n gap: '16px',\n}\n\nconst tagGroup: SxStyleProp = {\n display: 'flex',\n flexWrap: 'wrap',\n gap: '8px',\n}\n\nconst groupsContainer: SxStyleProp = {\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n gap: '12px 20px',\n}\n\nconst groupContainer: SxStyleProp = {\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n gap: '8px',\n flex: '0 1 auto',\n maxWidth: '100%',\n}\n\nconst helpcenterTagsContainer: SxStyleProp = {\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n}\n\nexport default {\n devportalContainer,\n helpcenterContainer,\n title,\n description,\n tag,\n tagsContainer,\n tagGroup,\n groupsContainer,\n groupContainer,\n helpcenterTagsContainer,\n}\n","import type { TroubleshootingFilterState, TroubleshootingItem } from './types'\n\nexport function filterTroubleshootingItems(\n items: T[],\n { search, domainFilters, symptomFilters }: TroubleshootingFilterState\n): T[] {\n const selectedDomainFilters = new Set(\n domainFilters.map((filter) => filter.toLowerCase())\n )\n const selectedSymptomFilters = new Set(\n symptomFilters.map((filter) => filter.toLowerCase())\n )\n const hasDomainFilters = selectedDomainFilters.size > 0\n const hasSymptomFilters = selectedSymptomFilters.size > 0\n const normalizedSearch = search.toLowerCase()\n\n return items.filter((item) => {\n const matchesSearch =\n !normalizedSearch ||\n item.title.toLowerCase().includes(normalizedSearch)\n\n const itemDomainFiltersLower = (item.domainFilters ?? []).map((filter) =>\n filter.toLowerCase()\n )\n const itemSymptomFiltersLower = (item.symptomFilters ?? []).map((filter) =>\n filter.toLowerCase()\n )\n const matchesDomainFilters =\n !hasDomainFilters ||\n itemDomainFiltersLower.some((filter) =>\n selectedDomainFilters.has(filter)\n )\n const matchesSymptomFilters =\n !hasSymptomFilters ||\n itemSymptomFiltersLower.some((filter) =>\n selectedSymptomFilters.has(filter)\n )\n\n return matchesSearch && matchesDomainFilters && matchesSymptomFilters\n })\n}\n","import type { TroubleshootingItem } from './types'\n\nexport function collectTroubleshootingFilterOptions<\n T extends Pick\n>(items: T[]) {\n const domainFilters = new Set()\n const symptomFilters = new Set()\n\n items.forEach((item) => {\n item.domainFilters?.forEach((filter) => domainFilters.add(filter))\n item.symptomFilters?.forEach((filter) => symptomFilters.add(filter))\n })\n\n return {\n domainFilters: Array.from(domainFilters).sort(),\n symptomFilters: Array.from(symptomFilters).sort(),\n }\n}\n","export const getDaysElapsed = (date: Date) => {\n const msInDay = 1000 * 60 * 60 * 24\n const msElapsed = new Date().getTime() - date.getTime()\n return Math.floor(msElapsed / msInDay)\n}\n","import { Icon } from '@vtex/brand-ui'\nimport type { IconProps } from '@vtex/brand-ui'\n\nconst GearTroubleshootingIcon = (props: IconProps) => {\n return (\n \n \n \n \n \n \n \n \n )\n}\n\nexport default GearTroubleshootingIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst DocumentationUpdatesIcon = (props: IconProps) => (\n \n \n \n \n \n \n)\n\nexport default DocumentationUpdatesIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst HelpCenterIcon = (props: IconProps) => (\n \n {' '}\n \n \n \n \n \n)\n\nexport default HelpCenterIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst DeveloperPortalIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n)\n\nexport default DeveloperPortalIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst FAQIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default FAQIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst KnownIssueIcon = (props: IconProps) => (\n \n \n \n \n
\n \n)\n\nexport default KnownIssueIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst MegaphoneIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n)\n\nexport default MegaphoneIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst GraphIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default GraphIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst WarningIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default WarningIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst PaperIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n)\n\nexport default PaperIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst StartHereIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default StartHereIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst TutorialsIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n)\n\nexport default TutorialsIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst AnnouncementIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default AnnouncementIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst VTEXDevPortalIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default VTEXDevPortalIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst VTEXHelpCenterIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default VTEXHelpCenterIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst InfoIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default InfoIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst NewIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default NewIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst GithubIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default GithubIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst CommunityIcon = (props: IconProps) => (\n \n {' '}\n \n \n \n)\n\nexport default CommunityIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst FacebookCircleIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default FacebookCircleIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst LinkedinCircleIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default LinkedinCircleIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst TwitterCircleIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default TwitterCircleIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst YoutubeIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default YoutubeIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst IgIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default IgIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst ChatGPTIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default ChatGPTIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst ClaudeIcon = (props: IconProps) => (\n \n Claude\n \n \n)\n\nexport default ClaudeIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst GeminiIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default GeminiIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst CopilotIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default CopilotIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst GridIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default GridIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst MenuIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n)\n\nexport default MenuIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\ninterface CheckboxProps extends IconProps {\n checked: boolean\n}\n\nconst CheckboxIcon = (props: CheckboxProps) => (\n \n {!props.checked ? (\n <>\n \n \n \n ) : (\n <>\n \n \n \n )}\n \n)\n\nexport default CheckboxIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst ResizeIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default ResizeIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst ArrowRightIcon = (props: IconProps) => (\n \n {' '}\n \n \n \n)\n\nexport default ArrowRightIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst LongArrowIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default LongArrowIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst VTEXLogoFooter = (props: IconProps) => (\n \n \n \n \n \n \n \n)\n\nexport default VTEXLogoFooter\n"],"mappings":"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","names":["Fragment","text","text","i","checker","version","encode","AuthMode","addMethods","createAuth","encode","init_client_common_esm","createAuth","AuthMode","addMethods","init_client_common_esm","init_client_common_esm","createAuth","AuthMode","addMethods","createAuth","AuthMode","createRetryablePromise","createWaitablePromise","shuffle","addMethods","encode","init_client_common_esm","init_client_common_esm","createAuth","AuthMode","shuffle","version","addMethods","createRetryablePromise","createWaitablePromise","encode","searchIndex","body","client_common_esm_exports","AuthMode","addMethods","createAuth","createRetryablePromise","createWaitablePromise","destroy","encode","shuffle","version","init_client_common_esm","parse","version","requester_node_http_esm_exports","createNodeHttpRequester","http","Agent","https","Agent$1","parse","defaultHttpAgent","defaultHttpsAgent","agentOptions","init_requester_node_http_esm","algoliasearch","algoliasearch","Box","useEffect","useRef","useState","Box","Flex","mermaid","jsx","jsxs","icon","link","Icon","jsx","PropTypes","Box","styles_default","jsx","Box","styles_default","useEffect","Box","Flex","Icon","jsx","jsxs","body","styles_default","jsx","jsxs","useEffect","Flex","styles_default","Box","Box","Flex","Link","container","styles_default","jsx","jsxs","title","description","Link","styles_default","Box","Flex","useEffect","useState","jsx","title","sidebarElementStatus","item","heading","styles_default","img","heading","code","blockquote","blockquoteIcon","blockquoteInfo","blockquoteDanger","blockquoteWarning","blockquoteSuccess","flexWrap","svgContainer","messages","jsx","jsxs","useState","styles_default","icon","useRef","useEffect","mermaid","Box","Flex","item","jsx","Box","useContext","useEffect","Link","Box","Text","styles_default","jsx","jsxs","useContext","useEffect","headings","item","title","Link","Text","styles_default","Box","useEffect","useRef","useState","useContext","Flex","Text","Box","Link","linkContainer","styles_default","iconTooltip","useEffect","useRef","useState","Box","Flex","styles_default","Icon","jsx","jsx","jsxs","label","box","useRef","useState","useEffect","Box","Flex","styles_default","useRouter","useEffect","getIcon","icon","Flex","Box","Text","Button","useContext","useState","styles_default","Box","Flex","Text","Flex","Text","container","styles_default","categoryStyle","styles_default","Icon","jsx","jsxs","jsx","jsxs","Flex","Text","styles_default","useContext","useState","container","text","styles_default","jsx","jsxs","useState","useContext","Box","styles_default","Text","Flex","useRouter","Fragment","useContext","Box","Flex","Link","Button","IconCaret","sectionDivider","styles_default","icon","styles_default","textStyle","jsx","jsxs","useContext","useRouter","slugPrefix","Box","styles_default","Flex","Button","IconCaret","Link","item","Fragment","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","jsxs","Fragment","jsx","jsxs","documentation","useState","useContext","category","getIcon","Box","styles_default","Flex","Button","Text","sidebarSectionHidden","Fragment","jsx","jsxs","useState","useContext","useEffect","iconTooltip","useRef","Box","styles_default","Link","Flex","Text","Box","IconCaret","Button","arrowIcon","arrowIconActive","styles_default","useContext","Link","Box","Flex","Text","cardContainer","title","description","styles_default","cardContainer","styles_default","titleContainer","cardTitle","jsx","jsxs","title","description","link","Icon","Link","Box","cardContainer","Flex","titleContainer","Text","styles_default","useRef","useContext","useRouter","Flex","searchInput","searchIcon","styles_default","jsx","jsxs","useRouter","useRef","useContext","Flex","styles_default","useRouter","Link","Box","Flex","IconCaret","Text","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","item","useEffect","useRef","useState","Flex","Text","jsx","useState","useRef","useEffect","Flex","styles_default","Text","useContext","Fragment","jsx","jsxs","useContext","Link","Box","styles_default","Flex","Text","IconCaret","useRouter","Box","useContext","useRef","useState","aa","aa","algoliasearch","params","hitsPerPage","allHits","jsx","jsxs","useContext","useState","resultsBox","useRef","Box","jsx","jsxs","useContext","styles_default","Box","Button","IconCaret","Flex","Text","Link","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","useContext","useEffect","useState","container","styles_default","Box","Button","Flex","Text","Icon","jsx","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","useRef","useState","container","button","styles_default","Icon","jsx","Icon","jsx","jsxs","jsx","jsxs","useState","useRef","Flex","styles_default","Button","Text","Box","jsx","jsxs","shareButton","useState","useContext","useEffect","Flex","styles_default","Text","Link","Box","Flex","Box","Box","Flex","Text","useContext","useEffect","disabled","styles_default","useRouter","createContext","useState","jsx","jsx","jsxs","useRouter","useContext","useEffect","Flex","styles_default","Text","Box","container","styles_default","useContext","jsx","jsxs","useContext","item","Box","styles_default","useRouter","useContext","useEffect","useState","Box","Text","Configure","InstantSearch","useContext","useEffect","useMemo","useRef","connectStateResults","Box","Flex","Text","IconCaret","Tooltip","container","title","icon","description","alignCenter","styles_default","Link","useState","useContext","Icon","jsx","jsxs","jsx","jsxs","Icon","title","useState","useContext","Link","Flex","styles_default","Box","Text","breadcrumb","Tooltip","IconCaret","Box","Flex","jsx","jsxs","useContext","connectStateResults","useEffect","useRef","useMemo","Box","Flex","noResults","styles_default","jsx","jsxs","useRouter","useContext","useState","useEffect","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","disabled","styles_default","jsx","jsxs","useContext","Flex","styles_default","Text","styles_default","jsx","jsxs","Box","Flex","styles_default","search_default","useContext","title","styles_default","Flex","Text","aa","jsx","jsxs","Button","Flex","useContext","styles_default","Text","Button","Icon","jsx","jsxs","useState","styles_default","jsx","useState","Button","styles_default","useState","useEffect","icon","container","styles_default","Flex","jsx","jsxs","Icon","useState","useEffect","styles_default","useContext","useState","Box","Button","Text","Flex","Link","sectionContainer","cardContainer","title","description","button","styles_default","jsx","jsxs","useContext","useState","text","email","Box","styles_default","Text","Flex","Button","Link","Text","styles_default","jsx","Text","styles_default","Box","Button","Flex","Text","Icon","jsx","jsxs","Icon","jsx","jsxs","useState","input","container","innerContainer","tag","sectionDivider","styles_default","Fragment","jsx","jsxs","useState","numberOfFilters","Flex","styles_default","Text","Box","Button","Box","Link","Text","title","description","tag","styles_default","jsx","jsxs","title","description","Link","Box","styles_default","Text","search","item","item","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","Fragment","jsx","jsxs","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs"]} \ No newline at end of file diff --git a/src/components/sidebar-elements/index.tsx b/src/components/sidebar-elements/index.tsx index 0b0eda4..b3b4c73 100644 --- a/src/components/sidebar-elements/index.tsx +++ b/src/components/sidebar-elements/index.tsx @@ -1,5 +1,5 @@ import { useRouter } from 'next/router.js' -import React, { Fragment, useContext, useEffect } from 'react' +import React, { Fragment, useContext } from 'react' import { Box, Flex, @@ -40,20 +40,13 @@ const SidebarElements = ({ slugPrefix, items, subItemLevel }: SidebarProps) => { activeSidebarElement, sidebarElementStatus, toggleSidebarElementStatus, - openSidebarElement, sidebarDataMaster, locale, } = useContext(LibraryContext) const router = useRouter() - useEffect(() => { - items?.forEach((item) => { - const slug = typeof item.slug === 'string' ? item.slug : item.slug[locale] - if (item.defaultOpen && !sidebarElementStatus.has(slug)) { - openSidebarElement(slug) - } - }) - }, [items]) + const isElementOpen = (slug: string, defaultOpen?: boolean) => + sidebarElementStatus.has(slug) ? sidebarElementStatus.get(slug) : !!defaultOpen const handleClick = ( e: { preventDefault: () => void }, @@ -123,10 +116,12 @@ const SidebarElements = ({ slugPrefix, items, subItemLevel }: SidebarProps) => { method, endpoint, children, + defaultOpen, }: SidebarElement) => { const localizedName: string = typeof name === 'string' ? name : name[locale] const localizedSlug: string = typeof slug === 'string' ? slug : slug[locale] const isExpandable = children.length > 0 + const isOpen = isElementOpen(localizedSlug, defaultOpen) const pathSuffix = method ? `#${method.toLowerCase()}-${endpoint}` : '' const activeItem = method ? `${localizedSlug}${pathSuffix}` : localizedSlug return ( @@ -134,32 +129,14 @@ const SidebarElements = ({ slugPrefix, items, subItemLevel }: SidebarProps) => { {isExpandable && (