From 14d2d19426e7c650c56d52a272eb50fb8130eda0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A1rbara=20Celi?= Date: Tue, 5 May 2026 13:02:18 -0300 Subject: [PATCH 01/23] feat: implement hybrid search support in @vtexdocs/components This commit introduces a new hybrid search adapter for the `@vtexdocs/components` package, allowing integration with the Help Center's API while maintaining backward compatibility with Algolia. Key changes include the addition of a new `HybridSearchConfig` interface, updates to the `search-config.ts` file to support hybrid search, and modifications to the `SearchConfig` function to handle both Algolia and hybrid configurations. The implementation aims for minimal code changes and reuses existing components. --- HYBRID_SEARCH_IMPLEMENTATION.md | 674 ++++++++++++++++++++++++++++++ dist/index.css.map | 2 +- dist/index.d.mts | 18 +- dist/index.mjs | 189 ++++++++- dist/index.mjs.map | 2 +- src/index.ts | 5 + src/utils/config/search-config.ts | 231 +++++++++- 7 files changed, 1110 insertions(+), 11 deletions(-) create mode 100644 HYBRID_SEARCH_IMPLEMENTATION.md diff --git a/HYBRID_SEARCH_IMPLEMENTATION.md b/HYBRID_SEARCH_IMPLEMENTATION.md new file mode 100644 index 0000000..c66729b --- /dev/null +++ b/HYBRID_SEARCH_IMPLEMENTATION.md @@ -0,0 +1,674 @@ +# Hybrid Search Implementation for @vtexdocs/components + +## Overview + +This document outlines the implementation strategy to add hybrid search support to the `@vtexdocs/components` package while maintaining backward compatibility with Algolia. + +## Current Architecture + +The package uses a **singleton pattern** for search configuration: + +``` +SearchConfig() called once at app startup + ↓ +Creates global searchClient + searchIndex + ↓ +SearchInput & SearchResults import these globals + ↓ +Both wrap in InstantSearch (react-instantsearch-dom) +``` + +**Key Constraint:** The package is **tightly coupled to Algolia** through `react-instantsearch-dom` and expects Algolia's multi-query response format. + +## Implementation Strategy: Hybrid Adapter Pattern + +Instead of rewriting components, we'll create a **hybrid search adapter** that implements Algolia's client interface while calling the Help Center's `/api/search` endpoint. + +### Benefits +- ✅ Minimal code changes +- ✅ Backward compatible (Algolia still works) +- ✅ Reuses existing InstantSearch components +- ✅ Feature-flagged (easy rollback) +- ✅ Works for both Help Center and Dev Portal + +### Architecture + +``` +App calls SearchConfig({ backend: 'hybrid', ... }) + ↓ +search-config.ts creates hybridSearchClient + ↓ +hybridSearchClient implements Algolia interface + ↓ +Translates InstantSearch queries → /api/search + ↓ +Transforms results → Algolia format + ↓ +InstantSearch components work unchanged +``` + +## Code Changes + +### 1. Update search-config.ts + +**File:** `src/utils/config/search-config.ts` + +```typescript +import algoliasearch, { AlgoliaSearchOptions } from 'algoliasearch/lite' +import aa from 'search-insights' +import { MultipleQueriesQuery, MultipleQueriesResponse } from '@algolia/client-search' + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export let searchClient: any = {} +export let searchIndex = '' + +interface AlgoliaConfig { + appId: string + apiKey: string + index: string + algoliaOptions?: AlgoliaSearchOptions + // eslint-disable-next-line @typescript-eslint/no-explicit-any + customOptions?: any + // eslint-disable-next-line @typescript-eslint/no-explicit-any + instantSearchConfigs?: any + useLanguageFilter?: boolean +} + +interface HybridSearchConfig { + apiEndpoint: string // e.g., '/api/search' + source: 'help-center' | 'dev-portal' + defaultLimit?: number + useLanguageFilter?: boolean +} + +type SearchBackendConfig = + | { backend: 'algolia'; algolia: AlgoliaConfig } + | { backend: 'hybrid'; hybrid: HybridSearchConfig; index: string } + +// Algolia client (existing implementation) +const createAlgoliaClient = (config: AlgoliaConfig) => { + const { + apiKey, + appId, + index, + algoliaOptions, + customOptions, + instantSearchConfigs, + useLanguageFilter = true, + } = config + searchIndex = index + + aa('init', { + appId: appId || '', + apiKey: apiKey || '', + useCookie: false, + }) + + aa('getUserToken', null, (err) => { + if (err) { + console.error(err) + return + } + }) + + const algoliaClient = algoliasearch(appId || '', apiKey || '', algoliaOptions) + + searchClient = { + ...algoliaClient, + ...customOptions, + instantSearchConfigs, + useLanguageFilter, + search(requests: MultipleQueriesQuery[]) { + if (requests.every(({ params }) => !params?.query)) return + return algoliaClient.search(requests) + }, + } +} + +// Hybrid search client (NEW) +const createHybridClient = (config: HybridSearchConfig) => { + const { + apiEndpoint, + source, + defaultLimit = 10, + useLanguageFilter = true, + } = config + + // Disable Algolia insights for hybrid search + aa('init', { + appId: 'hybrid-search', + apiKey: 'none', + useCookie: false, + }) + + searchClient = { + appId: 'hybrid-search', + apiKey: 'hybrid', + useLanguageFilter, + instantSearchConfigs: null, + + // Implement Algolia's multi-query search interface + async search(requests: MultipleQueriesQuery[]): Promise { + // Filter out empty queries + if (requests.every(({ params }) => !params?.query)) { + return undefined + } + + try { + // Take the first request (InstantSearch typically sends one) + const request = requests[0] + const query = request.params?.query || '' + const limit = request.params?.hitsPerPage || defaultLimit + + // Extract locale from facetFilters + let locale = '' + const facetFilters = request.params?.facetFilters || [] + if (Array.isArray(facetFilters)) { + const langFilter = facetFilters.find((f: string | string[]) => + typeof f === 'string' && f.startsWith('language:') + ) + if (langFilter && typeof langFilter === 'string') { + locale = langFilter.replace('language:', '') + } + } + + // Call hybrid search API + const url = new URL(apiEndpoint, window.location.origin) + url.searchParams.set('q', query) + url.searchParams.set('limit', String(limit)) + if (locale) { + url.searchParams.set('locale', locale) + } + + const response = await fetch(url.toString()) + if (!response.ok) { + throw new Error(`Hybrid search failed: ${response.status}`) + } + + const data = await response.json() + + // Transform hybrid results to Algolia format + const hits = (data.results || []).map(transformHybridToAlgolia) + + // Extract facets if needed + const facets = extractFacetsFromHits(hits) + + return { + results: [ + { + hits, + nbHits: data.total || hits.length, + page: request.params?.page || 0, + nbPages: Math.ceil((data.total || hits.length) / limit), + hitsPerPage: limit, + exhaustiveNbHits: true, + query, + params: '', + index: request.indexName || '', + processingTimeMS: 0, + facets: facets.facets, + facets_stats: {}, + exhaustiveFacetsCount: true, + exhaustiveTypo: true, + queryID: generateQueryID(), + }, + ], + } + } catch (error) { + console.error('Hybrid search error:', error) + // Return empty results on error + return { + results: [ + { + hits: [], + nbHits: 0, + page: 0, + nbPages: 0, + hitsPerPage: defaultLimit, + exhaustiveNbHits: true, + query: requests[0]?.params?.query || '', + params: '', + index: requests[0]?.indexName || '', + processingTimeMS: 0, + }, + ], + } + } + }, + } +} + +// Transform hybrid search result to Algolia hit format +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function transformHybridToAlgolia(result: any): any { + // Extract path components for hierarchy and breadcrumbs + const filePath = result.filePath || '' + const pathParts = filePath.split('/').filter(Boolean) + + // Try to extract category from path (e.g., docs/en/tutorials/checkout.md) + let doctype = 'Documentation' + let hierarchy = { + lvl0: 'Documentation', + lvl1: result.title || 'Untitled', + lvl2: null, + } + + if (pathParts.length > 2) { + // Path structure: docs/locale/category/... + doctype = pathParts[2] || 'Documentation' + hierarchy = { + lvl0: doctype, + lvl1: result.title || 'Untitled', + lvl2: pathParts[3] || null, + } + } + + // Build URL from filePath + const url = buildUrlFromFilePath(filePath) + + return { + objectID: String(result.id), + // Keep original fields for compatibility + ...result, + // Add Algolia-expected fields + url, + url_without_anchor: url.split('#')[0], + doctype, + doctitle: result.title || 'Untitled', + content: result.snippet || result.content || '', + hierarchy, + language: result.metadata?.locale || 'en', + type: 'content', + // Highlighting + _highlightResult: { + content: { + value: result.snippet || result.content || '', + matchLevel: 'full', + fullyHighlighted: false, + matchedWords: [], + }, + hierarchy: { + lvl0: { + value: hierarchy.lvl0, + matchLevel: 'none', + }, + lvl1: { + value: hierarchy.lvl1, + matchLevel: result.title ? 'partial' : 'none', + }, + }, + }, + _snippetResult: { + content: { + value: result.snippet || '', + matchLevel: 'full', + }, + }, + } +} + +function buildUrlFromFilePath(filePath: string): string { + // Transform: docs/en/tutorials/checkout.md → /docs/tutorials/checkout + const parts = filePath.split('/') + if (parts[0] === 'docs' && parts.length > 2) { + // Remove 'docs', locale, and file extension + const pathWithoutDocs = parts.slice(2) + const pathWithoutExt = pathWithoutDocs.join('/').replace(/\.mdx?$/, '') + return `/docs/${pathWithoutExt}` + } + // Fallback: just remove extension + return '/' + filePath.replace(/\.mdx?$/, '') +} + +// Extract facets from hits for filtering +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function extractFacetsFromHits(hits: any[]): { facets: Record> } { + const facets: Record> = { + doctype: {}, + language: {}, + } + + hits.forEach((hit) => { + // Count doctypes + const doctype = hit.doctype || 'Other' + facets.doctype[doctype] = (facets.doctype[doctype] || 0) + 1 + + // Count languages + const language = hit.language || 'en' + facets.language[language] = (facets.language[language] || 0) + 1 + }) + + return { facets } +} + +function generateQueryID(): string { + return `hybrid_${Date.now()}_${Math.random().toString(36).substr(2, 9)}` +} + +// Main export - now handles both backends +export default function SearchConfig(config: SearchBackendConfig) { + if (config.backend === 'hybrid') { + searchIndex = config.index + createHybridClient(config.hybrid) + } else { + createAlgoliaClient(config.algolia) + } +} +``` + +### 2. Update Help Center Configuration + +**File:** `helpcenter/src/utils/libraryConfig.ts` + +```typescript +import { SearchConfig } from '@vtexdocs/components' + +const useHybridSearch = process.env.NEXT_PUBLIC_HYBRID_SEARCH_ENABLED === 'true' + +const libraryConfig = useHybridSearch + ? { + backend: 'hybrid' as const, + index: 'helpcenter-docs', // Still needed for InstantSearch + hybrid: { + apiEndpoint: '/api/search', + source: 'help-center' as const, + defaultLimit: 10, + useLanguageFilter: true, + }, + } + : { + backend: 'algolia' as const, + algolia: { + appId: process.env.NEXT_PUBLIC_ALGOLIA_APP_ID || '', + apiKey: process.env.NEXT_PUBLIC_ALGOLIA_WRITE_KEY || '', + index: 'helpcenter-docs', + }, + } + +export default SearchConfig(libraryConfig) +``` + +### 3. Update TypeScript Exports + +**File:** `src/index.ts` + +Add type exports for configuration: + +```typescript +// ... existing exports ... + +export { default as SearchConfig } from 'utils/config/search-config' + +// Export types for consumers +export type { + SearchBackendConfig, + AlgoliaConfig, + HybridSearchConfig, +} from 'utils/config/search-config' +``` + +### 4. Update Package Dependencies + +**File:** `package.json` + +Ensure `swr` is available (already in dependencies ✓), and document that `algoliasearch` is optional for hybrid mode: + +```json +{ + "dependencies": { + "swr": "^1.3.0" + }, + "peerDependencies": { + "algoliasearch": "^4.14.2" + }, + "peerDependenciesMeta": { + "algoliasearch": { + "optional": true + } + } +} +``` + +## Testing Strategy + +### 1. Unit Tests for Transformer + +Create `src/utils/config/__tests__/search-config.test.ts`: + +```typescript +import { transformHybridToAlgolia, buildUrlFromFilePath } from '../search-config' + +describe('transformHybridToAlgolia', () => { + it('transforms hybrid result to Algolia format', () => { + const hybridResult = { + id: 123, + title: 'Setting up checkout', + filePath: 'docs/en/tutorials/checkout-setup.md', + snippet: 'Learn how to configure checkout settings', + content: 'Full content here...', + score: 0.95, + metadata: { locale: 'en' }, + } + + const algoliaHit = transformHybridToAlgolia(hybridResult) + + expect(algoliaHit.objectID).toBe('123') + expect(algoliaHit.url).toBe('/docs/tutorials/checkout-setup') + expect(algoliaHit.doctype).toBe('tutorials') + expect(algoliaHit.hierarchy.lvl0).toBe('tutorials') + expect(algoliaHit.hierarchy.lvl1).toBe('Setting up checkout') + expect(algoliaHit._highlightResult.content.value).toContain('checkout') + }) + + it('handles missing fields gracefully', () => { + const minimal = { + id: 1, + filePath: 'test.md', + } + + const hit = transformHybridToAlgolia(minimal) + + expect(hit.objectID).toBe('1') + expect(hit.doctitle).toBe('Untitled') + expect(hit.hierarchy.lvl1).toBe('Untitled') + }) +}) + +describe('buildUrlFromFilePath', () => { + it('converts filePath to URL', () => { + expect(buildUrlFromFilePath('docs/en/tutorials/test.md')).toBe('/docs/tutorials/test') + expect(buildUrlFromFilePath('docs/pt/faq/question.mdx')).toBe('/docs/faq/question') + }) + + it('handles non-standard paths', () => { + expect(buildUrlFromFilePath('other/path.md')).toBe('/other/path') + }) +}) +``` + +### 2. Integration Test with Mock API + +Create `src/components/search-input/__tests__/hybrid-search.test.tsx`: + +```typescript +import { render, screen, waitFor } from '@testing-library/react' +import userEvent from '@testing-library/user-event' +import SearchInput from '../index' +import SearchConfig from 'utils/config/search-config' + +// Mock fetch +global.fetch = jest.fn() + +beforeEach(() => { + jest.clearAllMocks() +}) + +describe('SearchInput with hybrid backend', () => { + beforeAll(() => { + SearchConfig({ + backend: 'hybrid', + index: 'test-index', + hybrid: { + apiEndpoint: '/api/search', + source: 'help-center', + }, + }) + }) + + it('calls hybrid API when user types', async () => { + (global.fetch as jest.Mock).mockResolvedValue({ + ok: true, + json: async () => ({ + results: [ + { + id: 1, + title: 'Test Result', + filePath: 'docs/en/test.md', + snippet: 'Test snippet', + }, + ], + total: 1, + }), + }) + + render() + + const input = screen.getByRole('searchbox') + await userEvent.type(input, 'checkout') + + await waitFor(() => { + expect(global.fetch).toHaveBeenCalledWith( + expect.stringContaining('/api/search?q=checkout') + ) + }) + }) + + it('displays transformed results', async () => { + (global.fetch as jest.Mock).mockResolvedValue({ + ok: true, + json: async () => ({ + results: [ + { + id: 1, + title: 'Checkout Guide', + filePath: 'docs/en/tutorials/checkout.md', + snippet: 'How to configure checkout', + }, + ], + total: 1, + }), + }) + + render() + + const input = screen.getByRole('searchbox') + await userEvent.type(input, 'checkout') + + await waitFor(() => { + expect(screen.getByText(/Checkout Guide/i)).toBeInTheDocument() + }) + }) +}) +``` + +### 3. Storybook Stories + +Update `src/components/search-input/SearchInput.stories.tsx`: + +```typescript +import SearchInput from './index' +import SearchConfig from 'utils/config/search-config' + +export default { + title: 'Components/SearchInput', + component: SearchInput, +} + +export const AlgoliaBackend = () => { + SearchConfig({ + backend: 'algolia', + algolia: { + appId: 'test', + apiKey: 'test', + index: 'test', + }, + }) + return +} + +export const HybridBackend = () => { + SearchConfig({ + backend: 'hybrid', + index: 'test', + hybrid: { + apiEndpoint: '/api/search', + source: 'help-center', + }, + }) + return +} +``` + +## Deployment Checklist + +### Phase 1: Development +- [ ] Implement hybrid adapter in `search-config.ts` +- [ ] Add type definitions +- [ ] Write unit tests +- [ ] Test in Storybook +- [ ] Update documentation + +### Phase 2: Package Release +- [ ] Build package: `yarn build` +- [ ] Verify dist output +- [ ] Test package locally in helpcenter +- [ ] Commit to components repo +- [ ] Tag version (e.g., `v6.1.0`) +- [ ] Push to GitHub + +### Phase 3: Help Center Integration +- [ ] Update helpcenter's `package.json` to new version +- [ ] Update `libraryConfig.ts` to support hybrid +- [ ] Add feature flag in `.env.example` +- [ ] Test locally with `NEXT_PUBLIC_HYBRID_SEARCH_ENABLED=true` +- [ ] Verify API calls in Network tab +- [ ] Test search functionality + +### Phase 4: Deployment +- [ ] Deploy to preview environment +- [ ] Test with real data +- [ ] Enable feature flag in Netlify +- [ ] Monitor for errors +- [ ] Collect metrics + +## Rollback Plan + +If issues occur: + +1. **Quick rollback:** Set `NEXT_PUBLIC_HYBRID_SEARCH_ENABLED=false` in Netlify +2. **Package rollback:** Revert to previous `@vtexdocs/components` version +3. **Emergency:** The adapter returns empty results on error, so Algolia credentials can be added back + +## Known Limitations + +1. **Faceting:** Facets are extracted from results, not from a separate facet index (may be less accurate for large result sets) +2. **Analytics:** Algolia Insights won't work for hybrid results +3. **Query suggestions:** No autocomplete suggestions (would need separate endpoint) +4. **Performance:** Adds network hop through Next.js API route +5. **Relevance tuning:** Cannot use Algolia dashboard for ranking tweaks + +## Future Enhancements + +1. **Server-side rendering:** Hybrid client currently assumes `window` exists (client-side only) +2. **Facet API:** Add `/api/facets` endpoint for accurate counts +3. **Analytics:** Integrate with custom analytics instead of Algolia Insights +4. **Caching:** Add client-side SWR caching for better performance +5. **A/B testing:** Run both backends and compare quality +6. **Query suggestions:** Add autocomplete endpoint + +## Resources + +- Original implementation plan: `helpcenter/docs/hybrid-search-integration-plan.md` +- Backend API: `helpcenter/src/pages/api/search.ts` +- Hybrid client: `helpcenter/src/utils/hybrid-search-client.ts` +- Components repo: https://github.com/vtexdocs/components diff --git a/dist/index.css.map b/dist/index.css.map index 76f474d..de0b318 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 {\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: #f6f8fa;\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: 1fr;\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 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.blockquoteInfo {\n background: #f8f7fc;\n border: 1px solid #ccced8;\n}\n\n.blockquoteInfo:before {\n display: inline-block;\n height: 20px;\n width: 20px;\n content: '';\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\n no-repeat 0 0;\n background-size: 20px 20px;\n}\n\n.blockquoteDanger {\n background: #fdefef;\n border: 1px solid #dc5a41;\n}\n\n.blockquoteDanger:before {\n display: inline-block;\n height: 20px;\n width: 20px;\n content: '';\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\n no-repeat 0 0;\n background-size: 20px 20px;\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: #ecebf3;\n}\n\n.blockquoteWarning:before {\n display: inline-block;\n height: 20px;\n width: 20px;\n content: '';\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\n no-repeat 0 0;\n background-size: 20px 20px;\n}\n\n.blockquoteSuccess {\n background: #f3f8f3;\n border: 1px solid #80be80;\n}\n\n.blockquoteSuccess:before {\n display: inline-block;\n height: 20px;\n width: 20px;\n content: '';\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\n no-repeat 0 0;\n background-size: 20px 20px;\n}\n\n.flexWrap {\n flex-wrap: wrap;\n justify-content: space-between;\n}\n\n.svgContainer {\n width: 100%;\n}\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;AACV,SAAO;AACP,2BAAyB,UAAU,IAAI;AAC/B,mBAAiB,UAAU,IAAI;AACzC;AAEA,CAhCCA,kBAgCW,CAAC;AACX,SAAO;AACT;AAEA,CAACC;AACC,cAAY;AACZ,UAAQ,IAAI,MAAM;AACpB;AAEA,CALCA,qBAKc;AACb,WAAS;AACT,UAAQ;AACR,SAAO;AACP,WAAS;AACT,cAAY,6EACV,UAAU,EAAE;AACd,mBAAiB,KAAK;AACxB;AAEA,CAACC;AACC,cAAY;AACZ,UAAQ,IAAI,MAAM;AACpB;AAEA,CALCA,uBAKgB;AACf,WAAS;AACT,UAAQ;AACR,SAAO;AACP,WAAS;AACT,cAAY,+EACV,UAAU,EAAE;AACd,mBAAiB,KAAK;AACxB;AAEA,CAACC;AACC,cAAY;AACZ,UAAQ,IAAI,MAAM;AACpB;AAEA,CALCA,yBAKkB;AACjB,oBAAkB;AACpB;AAEA,CAvCCF,sBAuCe;AACd,oBAAkB;AACpB;AAEA,CAbCE,wBAaiB;AAChB,WAAS;AACT,UAAQ;AACR,SAAO;AACP,WAAS;AACT,cAAY,gFACV,UAAU,EAAE;AACd,mBAAiB,KAAK;AACxB;AAEA,CAACC;AACC,cAAY;AACZ,UAAQ,IAAI,MAAM;AACpB;AAEA,CALCA,wBAKiB;AAChB,WAAS;AACT,UAAQ;AACR,SAAO;AACP,WAAS;AACT,cAAY,gFACV,UAAU,EAAE;AACd,mBAAiB,KAAK;AACxB;AAEA,CAACC;AACC,aAAW;AACX,mBAAiB;AACnB;AAEA,CAACC;AACC,SAAO;AACT;","names":["img","heading","code","blockquote","blockquoteInfo","blockquoteDanger","blockquoteWarning","blockquoteSuccess","flexWrap","svgContainer"]} \ No newline at end of file +{"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: #f6f8fa;\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: 1fr;\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 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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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: #ecebf3;\r\n}\r\n\r\n.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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"],"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;AACV,SAAO;AACP,2BAAyB,UAAU,IAAI;AAC/B,mBAAiB,UAAU,IAAI;AACzC;AAEA,CAhCCA,kBAgCW,CAAC;AACX,SAAO;AACT;AAEA,CAACC;AACC,cAAY;AACZ,UAAQ,IAAI,MAAM;AACpB;AAEA,CALCA,qBAKc;AACb,WAAS;AACT,UAAQ;AACR,SAAO;AACP,WAAS;AACT,cAAY,6EACV,UAAU,EAAE;AACd,mBAAiB,KAAK;AACxB;AAEA,CAACC;AACC,cAAY;AACZ,UAAQ,IAAI,MAAM;AACpB;AAEA,CALCA,uBAKgB;AACf,WAAS;AACT,UAAQ;AACR,SAAO;AACP,WAAS;AACT,cAAY,+EACV,UAAU,EAAE;AACd,mBAAiB,KAAK;AACxB;AAEA,CAACC;AACC,cAAY;AACZ,UAAQ,IAAI,MAAM;AACpB;AAEA,CALCA,yBAKkB;AACjB,oBAAkB;AACpB;AAEA,CAvCCF,sBAuCe;AACd,oBAAkB;AACpB;AAEA,CAbCE,wBAaiB;AAChB,WAAS;AACT,UAAQ;AACR,SAAO;AACP,WAAS;AACT,cAAY,gFACV,UAAU,EAAE;AACd,mBAAiB,KAAK;AACxB;AAEA,CAACC;AACC,cAAY;AACZ,UAAQ,IAAI,MAAM;AACpB;AAEA,CALCA,wBAKiB;AAChB,WAAS;AACT,UAAQ;AACR,SAAO;AACP,WAAS;AACT,cAAY,gFACV,UAAU,EAAE;AACd,mBAAiB,KAAK;AACxB;AAEA,CAACC;AACC,aAAW;AACX,mBAAiB;AACnB;AAEA,CAACC;AACC,SAAO;AACT;","names":["img","heading","code","blockquote","blockquoteInfo","blockquoteDanger","blockquoteWarning","blockquoteSuccess","flexWrap","svgContainer"]} \ No newline at end of file diff --git a/dist/index.d.mts b/dist/index.d.mts index bd167bf..d8e66bf 100644 --- a/dist/index.d.mts +++ b/dist/index.d.mts @@ -161,7 +161,21 @@ interface AlgoliaConfig { instantSearchConfigs?: any; useLanguageFilter?: boolean; } -declare const createAlgoliaClient: (config: AlgoliaConfig) => void; +interface HybridSearchConfig { + apiEndpoint: string; + source: 'help-center' | 'dev-portal'; + defaultLimit?: number; + useLanguageFilter?: boolean; +} +type SearchBackendConfig = { + backend: 'algolia'; + algolia: AlgoliaConfig; +} | { + backend: 'hybrid'; + hybrid: HybridSearchConfig; + index: string; +}; +declare function SearchConfig(config: SearchBackendConfig | AlgoliaConfig): void; declare const APIGuidesIcon: (props: IconProps) => react_jsx_runtime.JSX.Element; @@ -301,4 +315,4 @@ declare const LikeIcon: (props: IconProps) => react_jsx_runtime.JSX.Element; declare const LikeSelectedIcon: (props: IconProps) => react_jsx_runtime.JSX.Element; -export { APIGuidesIcon, APIReferenceIcon, AddedIcon, AnnouncementIcon, AppDevelopmentIcon, ArrowLeftIcon, ArrowRightIcon, CaretIcon, ChatGPTIcon, CheckboxIcon, ClaudeIcon, CloseFilterIcon, CloseIcon, CommunityIcon, CookieBar, CopilotIcon, CopyIcon, CopyLinkButton, DeprecatedIcon, DeveloperPortalIcon, DocumentationUpdatesIcon, EditIcon, EmailIcon, ExpandedResultsIcon, FAQIcon, FacebookCircleIcon, FacebookIcon, FeedbackSection, FilterIcon, FixedIcon, GearTroubleshootingIcon, GeminiIcon, GithubIcon, GraphIcon, GridIcon, HamburgerMenu, HelpCenterIcon, ImprovedIcon, InfoIcon, Input, IgIcon as InstagramIcon, type Item, KnownIssueIcon as KnownIssuesIcon, LibraryContext, LibraryContextProvider, LikeIcon, LikeSelectedIcon, LinkIcon, LinkedinCircleIcon, LinkedinIcon, LongArrowIcon, MarkdownRenderer, MegaphoneIcon, MenuIcon, NewIcon, PaperIcon, ReleaseNotesIcon, RemovedIcon, ResizeIcon, Search, createAlgoliaClient as SearchConfig, SearchIcon, SearchInput, ShareButton, ShareIcon, SideBarToggleIcon, Sidebar, StartHereIcon, StorefrontDevelopmentIcon, TableOfContents, TrashcanIcon, TroubleshootingIcon, TutorialsIcon, TwitterCircleIcon, TwitterIcon, VTEXDevPortalIcon, VTEXHelpCenterIcon, VTEXIOAppsIcon, VTEXLogoFooter, WarningIcon, YoutubeIcon, getDaysElapsed }; +export { APIGuidesIcon, APIReferenceIcon, AddedIcon, type AlgoliaConfig, AnnouncementIcon, AppDevelopmentIcon, ArrowLeftIcon, ArrowRightIcon, CaretIcon, ChatGPTIcon, CheckboxIcon, ClaudeIcon, CloseFilterIcon, CloseIcon, CommunityIcon, CookieBar, CopilotIcon, CopyIcon, CopyLinkButton, DeprecatedIcon, DeveloperPortalIcon, DocumentationUpdatesIcon, EditIcon, EmailIcon, ExpandedResultsIcon, FAQIcon, FacebookCircleIcon, FacebookIcon, FeedbackSection, FilterIcon, FixedIcon, GearTroubleshootingIcon, GeminiIcon, GithubIcon, GraphIcon, GridIcon, HamburgerMenu, HelpCenterIcon, type HybridSearchConfig, ImprovedIcon, InfoIcon, Input, IgIcon as InstagramIcon, type Item, KnownIssueIcon as KnownIssuesIcon, LibraryContext, LibraryContextProvider, LikeIcon, LikeSelectedIcon, LinkIcon, LinkedinCircleIcon, LinkedinIcon, LongArrowIcon, MarkdownRenderer, MegaphoneIcon, MenuIcon, NewIcon, PaperIcon, ReleaseNotesIcon, RemovedIcon, ResizeIcon, Search, type SearchBackendConfig, SearchConfig, SearchIcon, SearchInput, ShareButton, ShareIcon, SideBarToggleIcon, Sidebar, StartHereIcon, StorefrontDevelopmentIcon, TableOfContents, TrashcanIcon, TroubleshootingIcon, TutorialsIcon, TwitterCircleIcon, TwitterIcon, VTEXDevPortalIcon, VTEXHelpCenterIcon, VTEXIOAppsIcon, VTEXLogoFooter, WarningIcon, YoutubeIcon, getDaysElapsed }; diff --git a/dist/index.mjs b/dist/index.mjs index 115b9e6..02d6ab5 100644 --- a/dist/index.mjs +++ b/dist/index.mjs @@ -7861,7 +7861,8 @@ var SidebarElements = ({ slugPrefix, items, subItemLevel }) => { const handleClick = (e, pathSuffix, slug) => { e.preventDefault(); const hasEndpointQuery = router.query.endpoint; - router.push(getHref(slugPrefix || "", pathSuffix, slug)).then(() => { + const href = getHref(slugPrefix || "", pathSuffix, slug); + router.push(href, href, { locale }).then(() => { if (hasEndpointQuery) router.reload(); }); @@ -7940,7 +7941,7 @@ var SidebarElements = ({ slugPrefix, items, subItemLevel }) => { }, href: getHref(slugPrefix || "", pathSuffix, localizedSlug), target: isEditorPreview === true ? "_blank" : "_self", - locale: false, + locale, children: [ method && /* @__PURE__ */ jsx17( method_category_default, @@ -9817,7 +9818,187 @@ var createAlgoliaClient = (config) => { } }; }; -var search_config_default = createAlgoliaClient; +var createHybridClient = (config) => { + const { + apiEndpoint, + defaultLimit = 10, + useLanguageFilter = true + } = config; + aa2("init", { + appId: "hybrid-search", + apiKey: "none", + useCookie: false + }); + searchClient = { + appId: "hybrid-search", + apiKey: "hybrid", + useLanguageFilter, + instantSearchConfigs: null, + async search(requests) { + if (requests.every(({ params }) => !params?.query)) { + return void 0; + } + try { + const request = requests[0]; + const query = request.params?.query || ""; + const limit = request.params?.hitsPerPage || defaultLimit; + let locale = ""; + const facetFilters = request.params?.facetFilters || []; + if (Array.isArray(facetFilters)) { + const langFilter = facetFilters.find( + (f) => typeof f === "string" && f.startsWith("language:") + ); + if (langFilter && typeof langFilter === "string") { + locale = langFilter.replace("language:", ""); + } + } + const url = new URL(apiEndpoint, window.location.origin); + url.searchParams.set("q", query); + url.searchParams.set("limit", String(limit)); + if (locale) { + url.searchParams.set("locale", locale); + } + const response = await fetch(url.toString()); + if (!response.ok) { + throw new Error(`Hybrid search failed: ${response.status}`); + } + const data = await response.json(); + const hits = (data.results || []).map(transformHybridToAlgolia); + const facets = extractFacetsFromHits(hits); + return { + results: [ + { + hits, + nbHits: data.total || hits.length, + page: request.params?.page || 0, + nbPages: Math.ceil((data.total || hits.length) / limit), + hitsPerPage: limit, + exhaustiveNbHits: true, + query, + params: "", + index: request.indexName || "", + processingTimeMS: 0, + facets: facets.facets, + facets_stats: {}, + exhaustiveFacetsCount: true, + queryID: generateQueryID() + } + ] + }; + } catch (error) { + console.error("Hybrid search error:", error); + return { + results: [ + { + hits: [], + nbHits: 0, + page: 0, + nbPages: 0, + hitsPerPage: defaultLimit, + exhaustiveNbHits: true, + query: requests[0]?.params?.query || "", + params: "", + index: requests[0]?.indexName || "", + processingTimeMS: 0 + } + ] + }; + } + } + }; +}; +function transformHybridToAlgolia(result) { + const filePath = result.filePath || ""; + const pathParts = filePath.split("/").filter(Boolean); + let doctype = "Documentation"; + let hierarchy = { + lvl0: "Documentation", + lvl1: result.title || "Untitled", + lvl2: null + }; + if (pathParts.length > 2) { + doctype = pathParts[2] || "Documentation"; + hierarchy = { + lvl0: doctype, + lvl1: result.title || "Untitled", + lvl2: pathParts[3] || null + }; + } + const url = buildUrlFromFilePath(filePath); + return { + objectID: String(result.id), + ...result, + url, + url_without_anchor: url.split("#")[0], + doctype, + doctitle: result.title || "Untitled", + content: result.snippet || result.content || "", + hierarchy, + language: result.metadata?.locale || "en", + type: "content", + _highlightResult: { + content: { + value: result.snippet || result.content || "", + matchLevel: "full", + fullyHighlighted: false, + matchedWords: [] + }, + hierarchy: { + lvl0: { + value: hierarchy.lvl0, + matchLevel: "none" + }, + lvl1: { + value: hierarchy.lvl1, + matchLevel: result.title ? "partial" : "none" + } + } + }, + _snippetResult: { + content: { + value: result.snippet || "", + matchLevel: "full" + } + } + }; +} +function buildUrlFromFilePath(filePath) { + const parts = filePath.split("/"); + if (parts[0] === "docs" && parts.length > 2) { + const pathWithoutDocs = parts.slice(2); + const pathWithoutExt = pathWithoutDocs.join("/").replace(/\.mdx?$/, ""); + return `/docs/${pathWithoutExt}`; + } + return "/" + filePath.replace(/\.mdx?$/, ""); +} +function extractFacetsFromHits(hits) { + const facets = { + doctype: {}, + language: {} + }; + hits.forEach((hit) => { + const doctype = hit.doctype || "Other"; + facets.doctype[doctype] = (facets.doctype[doctype] || 0) + 1; + const language = hit.language || "en"; + facets.language[language] = (facets.language[language] || 0) + 1; + }); + return { facets }; +} +function generateQueryID() { + return `hybrid_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`; +} +function SearchConfig(config) { + if ("backend" in config) { + if (config.backend === "hybrid") { + searchIndex = config.index; + createHybridClient(config.hybrid); + } else { + createAlgoliaClient(config.algolia); + } + } else { + createAlgoliaClient(config); + } +} // src/components/search-input/index.tsx import { jsx as jsx39, jsxs as jsxs32 } from "react/jsx-runtime"; @@ -13366,7 +13547,7 @@ export { removed_icon_default as RemovedIcon, resize_icon_default as ResizeIcon, search_default2 as Search, - search_config_default as SearchConfig, + SearchConfig, search_icon_default as SearchIcon, SearchInput, share_button_default as ShareButton, diff --git a/dist/index.mjs.map b/dist/index.mjs.map index 3b51678..ec2bf0f 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/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/trashcan-icon.tsx","../src/components/icons/filter-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 Callout = ({ node, icon, ...props }: Component) => {\n const blockquoteType: string = icon ? icon : 'info'\n return (\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\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: #f6f8fa;\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: 1fr;\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 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.blockquoteInfo {\n background: #f8f7fc;\n border: 1px solid #ccced8;\n}\n\n.blockquoteInfo:before {\n display: inline-block;\n height: 20px;\n width: 20px;\n content: '';\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\n no-repeat 0 0;\n background-size: 20px 20px;\n}\n\n.blockquoteDanger {\n background: #fdefef;\n border: 1px solid #dc5a41;\n}\n\n.blockquoteDanger:before {\n display: inline-block;\n height: 20px;\n width: 20px;\n content: '';\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\n no-repeat 0 0;\n background-size: 20px 20px;\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: #ecebf3;\n}\n\n.blockquoteWarning:before {\n display: inline-block;\n height: 20px;\n width: 20px;\n content: '';\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\n no-repeat 0 0;\n background-size: 20px 20px;\n}\n\n.blockquoteSuccess {\n background: #f3f8f3;\n border: 1px solid #80be80;\n}\n\n.blockquoteSuccess:before {\n display: inline-block;\n height: 20px;\n width: 20px;\n content: '';\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\n no-repeat 0 0;\n background-size: 20px 20px;\n}\n\n.flexWrap {\n flex-wrap: wrap;\n justify-content: space-between;\n}\n\n.svgContainer {\n width: 100%;\n}\n","{\n \"feedback_section.question\": \"Was this helpful?\",\n \"feedback_section.response\": \"Thanks for the feedback!\",\n \"feedback_section.positive\": \"Yes\",\n \"feedback_section.negative\": \"No\",\n \"feedback_section.edit\": \"Suggest Edits (GitHub)\",\n \"feedback_modal.title\": \"Leave a Comment (Optional)\",\n \"feedback_modal.button\": \"Send Feedback\",\n \"search_input.empty\": \"No results found. Try different search terms.\",\n \"search_input.placeholder\": \"Search\",\n \"search_results.showing\": \"Showing\",\n \"search_results.results_for\": \"results for\",\n \"search_results.in\": \"in\",\n \"search_results.all_lowercase\": \"all results\",\n \"sidebar_search.placeholder\": \"Search in\",\n \"search_input.see_all\": \"See all results\",\n \"search_results.summary\": \"Showing {count} results for \\\"{keyword}\\\" in {section}\",\n \"search_results.all\": \"All results\",\n \"search_card.in\": \"In\",\n \"image.error_loading\": \"An error occurred while loading the image\",\n \"api_reference_sidebar_filter_clear\": \"Clear All\",\n \"api_reference_sidebar_filter\": \"Filter By\",\n \"cookie_bar.title\": \"We use cookies\",\n \"cookie_bar.description\": \"This website uses cookies to improve navigation, analyze usage, and assist with our marketing efforts.\",\n \"cookie_bar.accept\": \"I agree\",\n \"cookie_bar.decline\": \"I decline\"\n}\n","{\n \"feedback_section.question\": \"¿Te ha parecido útil?\",\n \"feedback_section.response\": \"Gracias por tu feedback\",\n \"feedback_section.positive\": \"Sí\",\n \"feedback_section.negative\": \"No\",\n \"feedback_section.edit\": \"Sugerir cambios (GitHub)\",\n \"feedback_modal.title\": \"Dar feedback (opcional)\",\n \"feedback_modal.button\": \"Enviar feedback\",\n \"search_input.empty\": \"No se encontraron resultados. Intenta utilizar otros términos.\",\n \"search_input.placeholder\": \"Buscar\",\n \"sidebar_search.placeholder\": \"Buscar en\",\n \"search_results.showing\": \"Mostrando\",\n \"search_results.results_for\": \"resultados para\",\n \"search_results.in\": \"en\",\n \"search_results.all_lowercase\": \"todos los resultados\",\n \"search_input.see_all\": \"Ver todos los resultados\",\n \"search_results.summary\": \"Mostrando {count} resultados para \\\"{keyword}\\\" en {section}\",\n \"search_results.all\": \"Todos los resultados\",\n \"search_card.in\": \"En\",\n \"image.error_loading\": \"Se produjo un error al cargar la imagen\",\n \"api_reference_sidebar_filter_clear\": \"Limpiar todo\",\n \"api_reference_sidebar_filter\": \"Filtrar por\",\n \"cookie_bar.title\": \"Utilizamos cookies\",\n \"cookie_bar.description\": \"Este sitio web utiliza cookies para optimizar la navegación, analizar el uso e impulsar nuestros esfuerzos de marketing.\",\n \"cookie_bar.accept\": \"Acepto\",\n \"cookie_bar.decline\": \"Rechazo\"\n}\n","{\n \"feedback_section.question\": \"Isso foi útil?\",\n \"feedback_section.response\": \"Agradecemos pelo seu feedback.\",\n \"feedback_section.positive\": \"Sim\",\n \"feedback_section.negative\": \"Não\",\n \"feedback_section.edit\": \"Sugerir edições (GitHub)\",\n \"feedback_modal.title\": \"Deixe um comentário (opcional)\",\n \"feedback_modal.button\": \"Enviar feedback\",\n \"search_input.empty\": \"Nenhum resultado encontrado. Tente buscar por outros termos.\",\n \"search_input.placeholder\": \"Buscar\",\n \"sidebar_search.placeholder\": \"Buscar em\",\n \"search_results.showing\": \"Mostrando\",\n \"search_results.results_for\": \"resultados para\",\n \"search_results.in\": \"em\",\n \"search_results.all_lowercase\": \"todos os resultados\",\n \"search_input.see_all\": \"Ver todos os resultados\",\n \"search_results.summary\": \"Mostrando {count} resultados para \\\"{keyword}\\\" em {section}\",\n \"search_results.all\": \"Todos os resultados\",\n \"search_card.in\": \"Em\",\n \"image.error_loading\": \"Ocorreu um erro ao carregar a imagem\",\n \"api_reference_sidebar_filter_clear\": \"Limpar tudo\",\n \"api_reference_sidebar_filter\": \"Filtrar por\",\n \"cookie_bar.title\": \"Nós usamos cookies\",\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.\",\n \"cookie_bar.accept\": \"Concordo\",\n \"cookie_bar.decline\": \"Discordo\"\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}\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 handleClick = (\n e: { preventDefault: () => void },\n pathSuffix: string,\n slug: string\n ) => {\n e.preventDefault()\n const hasEndpointQuery = router.query.endpoint\n router.push(getHref(slugPrefix || '', pathSuffix, slug)).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={false}\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}\n\nconst hitContent: SxStyleProp = {\n color: 'muted.0',\n fontSize: ['14px', '16px'],\n lineHeight: ['20px', '22px'],\n width: '100%',\n}\n\nconst hitContentSmall: SxStyleProp = {\n color: 'muted.0',\n fontSize: ['14px', '16px'],\n lineHeight: ['20px', '22px'],\n width: '100%',\n whiteSpace: 'pre',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\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\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 { MultipleQueriesQuery } from '@algolia/client-search'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport let searchClient: any = {}\nexport let searchIndex = ''\n\ninterface 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\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\nexport default createAlgoliaClient\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'\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 return !dataElement ? (\n updateFilter('')}>\n \n {messages[locale]['search_results.all'] || 'All results' }\n \n \n {ocurrenceCount['']}\n \n \n ) : (\n updateFilter(dataElement.id)}\n >\n \n \n \n {dataElement.title}\n \n \n \n {ocurrenceCount[dataElement.id] || 0}\n \n \n )\n}\n\nexport default SearchSection\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst sectionContainer: SxStyleProp = {\n justifyContent: 'space-between',\n padding: '8px',\n mb: '8px',\n cursor: 'pointer',\n ':active, :hover': {\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: SxStyleProp = {\n width: '16px',\n height: '16px',\n minWidth: '16px',\n minHeight: '16px',\n mr: '8px',\n}\n\nconst sectionTitle: SxStyleProp = {\n fontSize: '12px',\n lineHeight: '16px',\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\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, 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 { searchClient, searchIndex } from 'utils/config/search-config'\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 [prevFilter, setPrevFilter] = useState('')\n const [searchState, setSearchState] = useState({})\n\n const updateSearchState = (currentState: SearchState) => {\n const page = filters !== prevFilter ? 1 : currentState.page || 1\n setPrevFilter(filters)\n setSearchState({\n ...currentState,\n page,\n })\n }\n\n return (\n \n \n {`${messages[locale]['search_results.showing'] || 'Showing'} ${\n ocurrenceCount[filterSelectedSection] === undefined\n ? ''\n : 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 facets = results?.facets as\n | Array<{\n name: string\n data: Record\n exhaustive?: boolean\n }>\n | undefined\n\n const doctypeFacet = facets?.find((facet) => facet.name === 'doctype')\n const nbHits = results?.nbHits ?? 0\n\n const formattedFacets: Record = {}\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\n formattedFacets[''] = nbHits\n\n if (!isFilteringByDoctype) {\n updateOcurrenceCount(formattedFacets)\n }\n }, [searchResults?.queryID])\n\n return null\n }\n)\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\nexport default connectInfiniteHits(InfiniteHits)\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}\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'\n\nconst SearchFilterTab = ({ filter }: { filter: string }) => {\n const { filterSelectedSection, changeFilterSelectedSection, ocurrenceCount } =\n useContext(SearchContext)\n const { locale } = useContext(LibraryContext)\n\n return (\n changeFilterSelectedSection(filter)}\n >\n \n {filter || messages[locale]['search_results.all'] || 'All results'}\n \n {ocurrenceCount[filter] || 0}\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) => SxStyleProp = (active) => ({\n pt: '8px',\n pb: '14px',\n px: '24px',\n cursor: 'pointer',\n justifyContent: 'center',\n alignItems: 'center',\n borderBottom: `${active ? 2 : 1}px solid #${active ? 'D71D55' : 'DDDDDD'}`,\n minWidth: 'max-content',\n})\n\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\n fontSize: '14px',\n fontWeight: '600',\n lineHeight: '16.38px',\n whiteSpace: 'nowrap',\n color: `#${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","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 TrashcanIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n)\n\nexport default TrashcanIcon\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 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","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","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","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","algoliasearch","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","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","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","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","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","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","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/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/trashcan-icon.tsx","../src/components/icons/filter-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'\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 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\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\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: #f6f8fa;\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: 1fr;\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 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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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: #ecebf3;\r\n}\r\n\r\n.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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","{\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}\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}\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}","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}\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}\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 whiteSpace: 'pre',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\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\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\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport let searchClient: any = {}\r\nexport let searchIndex = ''\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 useLanguageFilter?: boolean\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\nconst createHybridClient = (config: HybridSearchConfig) => {\r\n const {\r\n apiEndpoint,\r\n defaultLimit = 10,\r\n useLanguageFilter = true,\r\n } = config\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 ): Promise | undefined> {\r\n if (requests.every(({ params }) => !params?.query)) {\r\n return undefined\r\n }\r\n\r\n try {\r\n const request = requests[0]\r\n const query = request.params?.query || ''\r\n const limit = request.params?.hitsPerPage || defaultLimit\r\n\r\n let locale = ''\r\n const facetFilters = request.params?.facetFilters || []\r\n if (Array.isArray(facetFilters)) {\r\n const langFilter = facetFilters.find(\r\n (f: string | string[]) =>\r\n typeof f === 'string' && f.startsWith('language:')\r\n )\r\n if (langFilter && typeof langFilter === 'string') {\r\n locale = langFilter.replace('language:', '')\r\n }\r\n }\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(limit))\r\n if (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 const hits = (data.results || []).map(transformHybridToAlgolia)\r\n const facets = extractFacetsFromHits(hits)\r\n\r\n return {\r\n results: [\r\n {\r\n hits,\r\n nbHits: data.total || hits.length,\r\n page: request.params?.page || 0,\r\n nbPages: Math.ceil((data.total || hits.length) / limit),\r\n hitsPerPage: limit,\r\n exhaustiveNbHits: true,\r\n query,\r\n params: '',\r\n index: request.indexName || '',\r\n processingTimeMS: 0,\r\n facets: facets.facets,\r\n facets_stats: {},\r\n exhaustiveFacetsCount: true,\r\n queryID: generateQueryID(),\r\n },\r\n ],\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: defaultLimit,\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\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 pathParts = filePath.split('/').filter(Boolean)\r\n\r\n let doctype = 'Documentation'\r\n let hierarchy = {\r\n lvl0: 'Documentation',\r\n lvl1: result.title || 'Untitled',\r\n lvl2: null,\r\n }\r\n\r\n if (pathParts.length > 2) {\r\n doctype = pathParts[2] || 'Documentation'\r\n hierarchy = {\r\n lvl0: doctype,\r\n lvl1: result.title || 'Untitled',\r\n lvl2: pathParts[3] || null,\r\n }\r\n }\r\n\r\n const url = buildUrlFromFilePath(filePath)\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: result.snippet || result.content || '',\r\n hierarchy,\r\n language: result.metadata?.locale || 'en',\r\n type: 'content',\r\n _highlightResult: {\r\n content: {\r\n value: result.snippet || result.content || '',\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 || '',\r\n matchLevel: 'full',\r\n },\r\n },\r\n }\r\n}\r\n\r\nfunction buildUrlFromFilePath(filePath: string): string {\r\n const parts = filePath.split('/')\r\n if (parts[0] === 'docs' && parts.length > 2) {\r\n const pathWithoutDocs = parts.slice(2)\r\n const pathWithoutExt = pathWithoutDocs.join('/').replace(/\\.mdx?$/, '')\r\n return `/docs/${pathWithoutExt}`\r\n }\r\n return '/' + filePath.replace(/\\.mdx?$/, '')\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction extractFacetsFromHits(\r\n hits: any[]\r\n): { facets: Record> } {\r\n const facets: Record> = {\r\n doctype: {},\r\n language: {},\r\n }\r\n\r\n hits.forEach((hit) => {\r\n const doctype = hit.doctype || 'Other'\r\n facets.doctype[doctype] = (facets.doctype[doctype] || 0) + 1\r\n\r\n const language = hit.language || 'en'\r\n facets.language[language] = (facets.language[language] || 0) + 1\r\n })\r\n\r\n return { facets }\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(config: SearchBackendConfig | AlgoliaConfig) {\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\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 return !dataElement ? (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results' }\r\n \r\n \r\n {ocurrenceCount['']}\r\n \r\n \r\n ) : (\r\n updateFilter(dataElement.id)}\r\n >\r\n \r\n \r\n \r\n {dataElement.title}\r\n \r\n \r\n \r\n {ocurrenceCount[dataElement.id] || 0}\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: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\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: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n fontSize: '12px',\r\n lineHeight: '16px',\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\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, 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 { searchClient, searchIndex } from 'utils/config/search-config'\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 [prevFilter, setPrevFilter] = useState('')\r\n const [searchState, setSearchState] = useState({})\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const page = filters !== prevFilter ? 1 : currentState.page || 1\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 ocurrenceCount[filterSelectedSection] === undefined\r\n ? ''\r\n : 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 facets = results?.facets as\r\n | Array<{\r\n name: string\r\n data: Record\r\n exhaustive?: boolean\r\n }>\r\n | undefined\r\n\r\n const doctypeFacet = facets?.find((facet) => facet.name === 'doctype')\r\n const nbHits = results?.nbHits ?? 0\r\n\r\n const formattedFacets: Record = {}\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\r\n formattedFacets[''] = nbHits\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)\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\nexport default connectInfiniteHits(InfiniteHits)\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}\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\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 return (\r\n changeFilterSelectedSection(filter)}\r\n >\r\n \r\n {filter || messages[locale]['search_results.all'] || 'All results'}\r\n \r\n {ocurrenceCount[filter] || 0}\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) => SxStyleProp = (active) => ({\r\n pt: '8px',\r\n pb: '14px',\r\n px: '24px',\r\n cursor: '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})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '16.38px',\r\n whiteSpace: 'nowrap',\r\n color: `#${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","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 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 { 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 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","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","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","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","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","algoliasearch","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","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","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","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","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","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","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/index.ts b/src/index.ts index 9419d81..7d10c42 100644 --- a/src/index.ts +++ b/src/index.ts @@ -16,6 +16,11 @@ export { getDaysElapsed } from 'utils/get-days-elapsed' export { default as LibraryContextProvider } from 'utils/context/libraryContext' export { LibraryContext } from 'utils/context/libraryContext' export { default as SearchConfig } from 'utils/config/search-config' +export type { + SearchBackendConfig, + AlgoliaConfig, + HybridSearchConfig, +} from 'utils/config/search-config' // Icons // Documentation Category Icons diff --git a/src/utils/config/search-config.ts b/src/utils/config/search-config.ts index 599646a..fc8081e 100644 --- a/src/utils/config/search-config.ts +++ b/src/utils/config/search-config.ts @@ -1,12 +1,15 @@ import algoliasearch, { AlgoliaSearchOptions } from 'algoliasearch/lite' import aa from 'search-insights' -import { MultipleQueriesQuery } from '@algolia/client-search' +import { + MultipleQueriesQuery, + MultipleQueriesResponse, +} from '@algolia/client-search' // eslint-disable-next-line @typescript-eslint/no-explicit-any export let searchClient: any = {} export let searchIndex = '' -interface AlgoliaConfig { +export interface AlgoliaConfig { appId: string apiKey: string index: string @@ -18,6 +21,17 @@ interface AlgoliaConfig { useLanguageFilter?: boolean } +export interface HybridSearchConfig { + apiEndpoint: string + source: 'help-center' | 'dev-portal' + defaultLimit?: number + useLanguageFilter?: boolean +} + +export type SearchBackendConfig = + | { backend: 'algolia'; algolia: AlgoliaConfig } + | { backend: 'hybrid'; hybrid: HybridSearchConfig; index: string } + const createAlgoliaClient = (config: AlgoliaConfig) => { const { apiKey, @@ -57,4 +71,215 @@ const createAlgoliaClient = (config: AlgoliaConfig) => { } } -export default createAlgoliaClient +const createHybridClient = (config: HybridSearchConfig) => { + const { + apiEndpoint, + defaultLimit = 10, + useLanguageFilter = true, + } = config + + // Initialize minimal analytics (disabled for hybrid) + aa('init', { + appId: 'hybrid-search', + apiKey: 'none', + useCookie: false, + }) + + searchClient = { + appId: 'hybrid-search', + apiKey: 'hybrid', + useLanguageFilter, + instantSearchConfigs: null, + + async search( + requests: MultipleQueriesQuery[] + ): Promise | undefined> { + if (requests.every(({ params }) => !params?.query)) { + return undefined + } + + try { + const request = requests[0] + const query = request.params?.query || '' + const limit = request.params?.hitsPerPage || defaultLimit + + let locale = '' + const facetFilters = request.params?.facetFilters || [] + if (Array.isArray(facetFilters)) { + const langFilter = facetFilters.find( + (f: string | string[]) => + typeof f === 'string' && f.startsWith('language:') + ) + if (langFilter && typeof langFilter === 'string') { + locale = langFilter.replace('language:', '') + } + } + + const url = new URL(apiEndpoint, window.location.origin) + url.searchParams.set('q', query) + url.searchParams.set('limit', String(limit)) + if (locale) { + url.searchParams.set('locale', locale) + } + + const response = await fetch(url.toString()) + if (!response.ok) { + throw new Error(`Hybrid search failed: ${response.status}`) + } + + const data = await response.json() + const hits = (data.results || []).map(transformHybridToAlgolia) + const facets = extractFacetsFromHits(hits) + + return { + results: [ + { + hits, + nbHits: data.total || hits.length, + page: request.params?.page || 0, + nbPages: Math.ceil((data.total || hits.length) / limit), + hitsPerPage: limit, + exhaustiveNbHits: true, + query, + params: '', + index: request.indexName || '', + processingTimeMS: 0, + facets: facets.facets, + facets_stats: {}, + exhaustiveFacetsCount: true, + queryID: generateQueryID(), + }, + ], + } + } catch (error) { + console.error('Hybrid search error:', error) + return { + results: [ + { + hits: [], + nbHits: 0, + page: 0, + nbPages: 0, + hitsPerPage: defaultLimit, + exhaustiveNbHits: true, + query: requests[0]?.params?.query || '', + params: '', + index: requests[0]?.indexName || '', + processingTimeMS: 0, + }, + ], + } + } + }, + } +} + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function transformHybridToAlgolia(result: any): any { + const filePath = result.filePath || '' + const pathParts = filePath.split('/').filter(Boolean) + + let doctype = 'Documentation' + let hierarchy = { + lvl0: 'Documentation', + lvl1: result.title || 'Untitled', + lvl2: null, + } + + if (pathParts.length > 2) { + doctype = pathParts[2] || 'Documentation' + hierarchy = { + lvl0: doctype, + lvl1: result.title || 'Untitled', + lvl2: pathParts[3] || null, + } + } + + const url = buildUrlFromFilePath(filePath) + + return { + objectID: String(result.id), + ...result, + url, + url_without_anchor: url.split('#')[0], + doctype, + doctitle: result.title || 'Untitled', + content: result.snippet || result.content || '', + hierarchy, + language: result.metadata?.locale || 'en', + type: 'content', + _highlightResult: { + content: { + value: result.snippet || result.content || '', + matchLevel: 'full', + fullyHighlighted: false, + matchedWords: [], + }, + hierarchy: { + lvl0: { + value: hierarchy.lvl0, + matchLevel: 'none', + }, + lvl1: { + value: hierarchy.lvl1, + matchLevel: result.title ? 'partial' : 'none', + }, + }, + }, + _snippetResult: { + content: { + value: result.snippet || '', + matchLevel: 'full', + }, + }, + } +} + +function buildUrlFromFilePath(filePath: string): string { + const parts = filePath.split('/') + if (parts[0] === 'docs' && parts.length > 2) { + const pathWithoutDocs = parts.slice(2) + const pathWithoutExt = pathWithoutDocs.join('/').replace(/\.mdx?$/, '') + return `/docs/${pathWithoutExt}` + } + return '/' + filePath.replace(/\.mdx?$/, '') +} + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function extractFacetsFromHits( + hits: any[] +): { facets: Record> } { + const facets: Record> = { + doctype: {}, + language: {}, + } + + hits.forEach((hit) => { + const doctype = hit.doctype || 'Other' + facets.doctype[doctype] = (facets.doctype[doctype] || 0) + 1 + + const language = hit.language || 'en' + facets.language[language] = (facets.language[language] || 0) + 1 + }) + + return { facets } +} + +function generateQueryID(): string { + return `hybrid_${Date.now()}_${Math.random().toString(36).substr(2, 9)}` +} + +export default function SearchConfig(config: SearchBackendConfig | AlgoliaConfig) { + // Backward compatibility: if config doesn't have 'backend', assume Algolia + if ('backend' in config) { + if (config.backend === 'hybrid') { + searchIndex = config.index + createHybridClient(config.hybrid) + } else { + createAlgoliaClient(config.algolia) + } + } else { + // Old API: direct AlgoliaConfig + createAlgoliaClient(config as AlgoliaConfig) + } +} From b5c2371c1057e68c0e097ab9fae50cdd4f96354e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A1rbara=20Celi?= Date: Tue, 5 May 2026 14:47:30 -0300 Subject: [PATCH 02/23] fix: improve request selection in hybrid search configuration This update modifies the request selection logic in the `search-config.ts` file to prioritize requests with a non-empty query. If no such request is found, it defaults to the first request in the array. This change enhances the hybrid search functionality by ensuring more relevant queries are processed. --- src/utils/config/search-config.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/utils/config/search-config.ts b/src/utils/config/search-config.ts index fc8081e..74441ef 100644 --- a/src/utils/config/search-config.ts +++ b/src/utils/config/search-config.ts @@ -99,7 +99,8 @@ const createHybridClient = (config: HybridSearchConfig) => { } try { - const request = requests[0] + // Find the first request with a non-empty query + const request = requests.find(({ params }) => params?.query) || requests[0] const query = request.params?.query || '' const limit = request.params?.hitsPerPage || defaultLimit From 946079ec8f2506797b203c8ce446a30a143f608c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A1rbara=20Celi?= Date: Tue, 5 May 2026 16:36:58 -0300 Subject: [PATCH 03/23] docs: remove outdated hybrid search implementation documentation --- HYBRID_SEARCH_IMPLEMENTATION.md | 674 -------------------------------- 1 file changed, 674 deletions(-) delete mode 100644 HYBRID_SEARCH_IMPLEMENTATION.md diff --git a/HYBRID_SEARCH_IMPLEMENTATION.md b/HYBRID_SEARCH_IMPLEMENTATION.md deleted file mode 100644 index c66729b..0000000 --- a/HYBRID_SEARCH_IMPLEMENTATION.md +++ /dev/null @@ -1,674 +0,0 @@ -# Hybrid Search Implementation for @vtexdocs/components - -## Overview - -This document outlines the implementation strategy to add hybrid search support to the `@vtexdocs/components` package while maintaining backward compatibility with Algolia. - -## Current Architecture - -The package uses a **singleton pattern** for search configuration: - -``` -SearchConfig() called once at app startup - ↓ -Creates global searchClient + searchIndex - ↓ -SearchInput & SearchResults import these globals - ↓ -Both wrap in InstantSearch (react-instantsearch-dom) -``` - -**Key Constraint:** The package is **tightly coupled to Algolia** through `react-instantsearch-dom` and expects Algolia's multi-query response format. - -## Implementation Strategy: Hybrid Adapter Pattern - -Instead of rewriting components, we'll create a **hybrid search adapter** that implements Algolia's client interface while calling the Help Center's `/api/search` endpoint. - -### Benefits -- ✅ Minimal code changes -- ✅ Backward compatible (Algolia still works) -- ✅ Reuses existing InstantSearch components -- ✅ Feature-flagged (easy rollback) -- ✅ Works for both Help Center and Dev Portal - -### Architecture - -``` -App calls SearchConfig({ backend: 'hybrid', ... }) - ↓ -search-config.ts creates hybridSearchClient - ↓ -hybridSearchClient implements Algolia interface - ↓ -Translates InstantSearch queries → /api/search - ↓ -Transforms results → Algolia format - ↓ -InstantSearch components work unchanged -``` - -## Code Changes - -### 1. Update search-config.ts - -**File:** `src/utils/config/search-config.ts` - -```typescript -import algoliasearch, { AlgoliaSearchOptions } from 'algoliasearch/lite' -import aa from 'search-insights' -import { MultipleQueriesQuery, MultipleQueriesResponse } from '@algolia/client-search' - -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export let searchClient: any = {} -export let searchIndex = '' - -interface AlgoliaConfig { - appId: string - apiKey: string - index: string - algoliaOptions?: AlgoliaSearchOptions - // eslint-disable-next-line @typescript-eslint/no-explicit-any - customOptions?: any - // eslint-disable-next-line @typescript-eslint/no-explicit-any - instantSearchConfigs?: any - useLanguageFilter?: boolean -} - -interface HybridSearchConfig { - apiEndpoint: string // e.g., '/api/search' - source: 'help-center' | 'dev-portal' - defaultLimit?: number - useLanguageFilter?: boolean -} - -type SearchBackendConfig = - | { backend: 'algolia'; algolia: AlgoliaConfig } - | { backend: 'hybrid'; hybrid: HybridSearchConfig; index: string } - -// Algolia client (existing implementation) -const createAlgoliaClient = (config: AlgoliaConfig) => { - const { - apiKey, - appId, - index, - algoliaOptions, - customOptions, - instantSearchConfigs, - useLanguageFilter = true, - } = config - searchIndex = index - - aa('init', { - appId: appId || '', - apiKey: apiKey || '', - useCookie: false, - }) - - aa('getUserToken', null, (err) => { - if (err) { - console.error(err) - return - } - }) - - const algoliaClient = algoliasearch(appId || '', apiKey || '', algoliaOptions) - - searchClient = { - ...algoliaClient, - ...customOptions, - instantSearchConfigs, - useLanguageFilter, - search(requests: MultipleQueriesQuery[]) { - if (requests.every(({ params }) => !params?.query)) return - return algoliaClient.search(requests) - }, - } -} - -// Hybrid search client (NEW) -const createHybridClient = (config: HybridSearchConfig) => { - const { - apiEndpoint, - source, - defaultLimit = 10, - useLanguageFilter = true, - } = config - - // Disable Algolia insights for hybrid search - aa('init', { - appId: 'hybrid-search', - apiKey: 'none', - useCookie: false, - }) - - searchClient = { - appId: 'hybrid-search', - apiKey: 'hybrid', - useLanguageFilter, - instantSearchConfigs: null, - - // Implement Algolia's multi-query search interface - async search(requests: MultipleQueriesQuery[]): Promise { - // Filter out empty queries - if (requests.every(({ params }) => !params?.query)) { - return undefined - } - - try { - // Take the first request (InstantSearch typically sends one) - const request = requests[0] - const query = request.params?.query || '' - const limit = request.params?.hitsPerPage || defaultLimit - - // Extract locale from facetFilters - let locale = '' - const facetFilters = request.params?.facetFilters || [] - if (Array.isArray(facetFilters)) { - const langFilter = facetFilters.find((f: string | string[]) => - typeof f === 'string' && f.startsWith('language:') - ) - if (langFilter && typeof langFilter === 'string') { - locale = langFilter.replace('language:', '') - } - } - - // Call hybrid search API - const url = new URL(apiEndpoint, window.location.origin) - url.searchParams.set('q', query) - url.searchParams.set('limit', String(limit)) - if (locale) { - url.searchParams.set('locale', locale) - } - - const response = await fetch(url.toString()) - if (!response.ok) { - throw new Error(`Hybrid search failed: ${response.status}`) - } - - const data = await response.json() - - // Transform hybrid results to Algolia format - const hits = (data.results || []).map(transformHybridToAlgolia) - - // Extract facets if needed - const facets = extractFacetsFromHits(hits) - - return { - results: [ - { - hits, - nbHits: data.total || hits.length, - page: request.params?.page || 0, - nbPages: Math.ceil((data.total || hits.length) / limit), - hitsPerPage: limit, - exhaustiveNbHits: true, - query, - params: '', - index: request.indexName || '', - processingTimeMS: 0, - facets: facets.facets, - facets_stats: {}, - exhaustiveFacetsCount: true, - exhaustiveTypo: true, - queryID: generateQueryID(), - }, - ], - } - } catch (error) { - console.error('Hybrid search error:', error) - // Return empty results on error - return { - results: [ - { - hits: [], - nbHits: 0, - page: 0, - nbPages: 0, - hitsPerPage: defaultLimit, - exhaustiveNbHits: true, - query: requests[0]?.params?.query || '', - params: '', - index: requests[0]?.indexName || '', - processingTimeMS: 0, - }, - ], - } - } - }, - } -} - -// Transform hybrid search result to Algolia hit format -// eslint-disable-next-line @typescript-eslint/no-explicit-any -function transformHybridToAlgolia(result: any): any { - // Extract path components for hierarchy and breadcrumbs - const filePath = result.filePath || '' - const pathParts = filePath.split('/').filter(Boolean) - - // Try to extract category from path (e.g., docs/en/tutorials/checkout.md) - let doctype = 'Documentation' - let hierarchy = { - lvl0: 'Documentation', - lvl1: result.title || 'Untitled', - lvl2: null, - } - - if (pathParts.length > 2) { - // Path structure: docs/locale/category/... - doctype = pathParts[2] || 'Documentation' - hierarchy = { - lvl0: doctype, - lvl1: result.title || 'Untitled', - lvl2: pathParts[3] || null, - } - } - - // Build URL from filePath - const url = buildUrlFromFilePath(filePath) - - return { - objectID: String(result.id), - // Keep original fields for compatibility - ...result, - // Add Algolia-expected fields - url, - url_without_anchor: url.split('#')[0], - doctype, - doctitle: result.title || 'Untitled', - content: result.snippet || result.content || '', - hierarchy, - language: result.metadata?.locale || 'en', - type: 'content', - // Highlighting - _highlightResult: { - content: { - value: result.snippet || result.content || '', - matchLevel: 'full', - fullyHighlighted: false, - matchedWords: [], - }, - hierarchy: { - lvl0: { - value: hierarchy.lvl0, - matchLevel: 'none', - }, - lvl1: { - value: hierarchy.lvl1, - matchLevel: result.title ? 'partial' : 'none', - }, - }, - }, - _snippetResult: { - content: { - value: result.snippet || '', - matchLevel: 'full', - }, - }, - } -} - -function buildUrlFromFilePath(filePath: string): string { - // Transform: docs/en/tutorials/checkout.md → /docs/tutorials/checkout - const parts = filePath.split('/') - if (parts[0] === 'docs' && parts.length > 2) { - // Remove 'docs', locale, and file extension - const pathWithoutDocs = parts.slice(2) - const pathWithoutExt = pathWithoutDocs.join('/').replace(/\.mdx?$/, '') - return `/docs/${pathWithoutExt}` - } - // Fallback: just remove extension - return '/' + filePath.replace(/\.mdx?$/, '') -} - -// Extract facets from hits for filtering -// eslint-disable-next-line @typescript-eslint/no-explicit-any -function extractFacetsFromHits(hits: any[]): { facets: Record> } { - const facets: Record> = { - doctype: {}, - language: {}, - } - - hits.forEach((hit) => { - // Count doctypes - const doctype = hit.doctype || 'Other' - facets.doctype[doctype] = (facets.doctype[doctype] || 0) + 1 - - // Count languages - const language = hit.language || 'en' - facets.language[language] = (facets.language[language] || 0) + 1 - }) - - return { facets } -} - -function generateQueryID(): string { - return `hybrid_${Date.now()}_${Math.random().toString(36).substr(2, 9)}` -} - -// Main export - now handles both backends -export default function SearchConfig(config: SearchBackendConfig) { - if (config.backend === 'hybrid') { - searchIndex = config.index - createHybridClient(config.hybrid) - } else { - createAlgoliaClient(config.algolia) - } -} -``` - -### 2. Update Help Center Configuration - -**File:** `helpcenter/src/utils/libraryConfig.ts` - -```typescript -import { SearchConfig } from '@vtexdocs/components' - -const useHybridSearch = process.env.NEXT_PUBLIC_HYBRID_SEARCH_ENABLED === 'true' - -const libraryConfig = useHybridSearch - ? { - backend: 'hybrid' as const, - index: 'helpcenter-docs', // Still needed for InstantSearch - hybrid: { - apiEndpoint: '/api/search', - source: 'help-center' as const, - defaultLimit: 10, - useLanguageFilter: true, - }, - } - : { - backend: 'algolia' as const, - algolia: { - appId: process.env.NEXT_PUBLIC_ALGOLIA_APP_ID || '', - apiKey: process.env.NEXT_PUBLIC_ALGOLIA_WRITE_KEY || '', - index: 'helpcenter-docs', - }, - } - -export default SearchConfig(libraryConfig) -``` - -### 3. Update TypeScript Exports - -**File:** `src/index.ts` - -Add type exports for configuration: - -```typescript -// ... existing exports ... - -export { default as SearchConfig } from 'utils/config/search-config' - -// Export types for consumers -export type { - SearchBackendConfig, - AlgoliaConfig, - HybridSearchConfig, -} from 'utils/config/search-config' -``` - -### 4. Update Package Dependencies - -**File:** `package.json` - -Ensure `swr` is available (already in dependencies ✓), and document that `algoliasearch` is optional for hybrid mode: - -```json -{ - "dependencies": { - "swr": "^1.3.0" - }, - "peerDependencies": { - "algoliasearch": "^4.14.2" - }, - "peerDependenciesMeta": { - "algoliasearch": { - "optional": true - } - } -} -``` - -## Testing Strategy - -### 1. Unit Tests for Transformer - -Create `src/utils/config/__tests__/search-config.test.ts`: - -```typescript -import { transformHybridToAlgolia, buildUrlFromFilePath } from '../search-config' - -describe('transformHybridToAlgolia', () => { - it('transforms hybrid result to Algolia format', () => { - const hybridResult = { - id: 123, - title: 'Setting up checkout', - filePath: 'docs/en/tutorials/checkout-setup.md', - snippet: 'Learn how to configure checkout settings', - content: 'Full content here...', - score: 0.95, - metadata: { locale: 'en' }, - } - - const algoliaHit = transformHybridToAlgolia(hybridResult) - - expect(algoliaHit.objectID).toBe('123') - expect(algoliaHit.url).toBe('/docs/tutorials/checkout-setup') - expect(algoliaHit.doctype).toBe('tutorials') - expect(algoliaHit.hierarchy.lvl0).toBe('tutorials') - expect(algoliaHit.hierarchy.lvl1).toBe('Setting up checkout') - expect(algoliaHit._highlightResult.content.value).toContain('checkout') - }) - - it('handles missing fields gracefully', () => { - const minimal = { - id: 1, - filePath: 'test.md', - } - - const hit = transformHybridToAlgolia(minimal) - - expect(hit.objectID).toBe('1') - expect(hit.doctitle).toBe('Untitled') - expect(hit.hierarchy.lvl1).toBe('Untitled') - }) -}) - -describe('buildUrlFromFilePath', () => { - it('converts filePath to URL', () => { - expect(buildUrlFromFilePath('docs/en/tutorials/test.md')).toBe('/docs/tutorials/test') - expect(buildUrlFromFilePath('docs/pt/faq/question.mdx')).toBe('/docs/faq/question') - }) - - it('handles non-standard paths', () => { - expect(buildUrlFromFilePath('other/path.md')).toBe('/other/path') - }) -}) -``` - -### 2. Integration Test with Mock API - -Create `src/components/search-input/__tests__/hybrid-search.test.tsx`: - -```typescript -import { render, screen, waitFor } from '@testing-library/react' -import userEvent from '@testing-library/user-event' -import SearchInput from '../index' -import SearchConfig from 'utils/config/search-config' - -// Mock fetch -global.fetch = jest.fn() - -beforeEach(() => { - jest.clearAllMocks() -}) - -describe('SearchInput with hybrid backend', () => { - beforeAll(() => { - SearchConfig({ - backend: 'hybrid', - index: 'test-index', - hybrid: { - apiEndpoint: '/api/search', - source: 'help-center', - }, - }) - }) - - it('calls hybrid API when user types', async () => { - (global.fetch as jest.Mock).mockResolvedValue({ - ok: true, - json: async () => ({ - results: [ - { - id: 1, - title: 'Test Result', - filePath: 'docs/en/test.md', - snippet: 'Test snippet', - }, - ], - total: 1, - }), - }) - - render() - - const input = screen.getByRole('searchbox') - await userEvent.type(input, 'checkout') - - await waitFor(() => { - expect(global.fetch).toHaveBeenCalledWith( - expect.stringContaining('/api/search?q=checkout') - ) - }) - }) - - it('displays transformed results', async () => { - (global.fetch as jest.Mock).mockResolvedValue({ - ok: true, - json: async () => ({ - results: [ - { - id: 1, - title: 'Checkout Guide', - filePath: 'docs/en/tutorials/checkout.md', - snippet: 'How to configure checkout', - }, - ], - total: 1, - }), - }) - - render() - - const input = screen.getByRole('searchbox') - await userEvent.type(input, 'checkout') - - await waitFor(() => { - expect(screen.getByText(/Checkout Guide/i)).toBeInTheDocument() - }) - }) -}) -``` - -### 3. Storybook Stories - -Update `src/components/search-input/SearchInput.stories.tsx`: - -```typescript -import SearchInput from './index' -import SearchConfig from 'utils/config/search-config' - -export default { - title: 'Components/SearchInput', - component: SearchInput, -} - -export const AlgoliaBackend = () => { - SearchConfig({ - backend: 'algolia', - algolia: { - appId: 'test', - apiKey: 'test', - index: 'test', - }, - }) - return -} - -export const HybridBackend = () => { - SearchConfig({ - backend: 'hybrid', - index: 'test', - hybrid: { - apiEndpoint: '/api/search', - source: 'help-center', - }, - }) - return -} -``` - -## Deployment Checklist - -### Phase 1: Development -- [ ] Implement hybrid adapter in `search-config.ts` -- [ ] Add type definitions -- [ ] Write unit tests -- [ ] Test in Storybook -- [ ] Update documentation - -### Phase 2: Package Release -- [ ] Build package: `yarn build` -- [ ] Verify dist output -- [ ] Test package locally in helpcenter -- [ ] Commit to components repo -- [ ] Tag version (e.g., `v6.1.0`) -- [ ] Push to GitHub - -### Phase 3: Help Center Integration -- [ ] Update helpcenter's `package.json` to new version -- [ ] Update `libraryConfig.ts` to support hybrid -- [ ] Add feature flag in `.env.example` -- [ ] Test locally with `NEXT_PUBLIC_HYBRID_SEARCH_ENABLED=true` -- [ ] Verify API calls in Network tab -- [ ] Test search functionality - -### Phase 4: Deployment -- [ ] Deploy to preview environment -- [ ] Test with real data -- [ ] Enable feature flag in Netlify -- [ ] Monitor for errors -- [ ] Collect metrics - -## Rollback Plan - -If issues occur: - -1. **Quick rollback:** Set `NEXT_PUBLIC_HYBRID_SEARCH_ENABLED=false` in Netlify -2. **Package rollback:** Revert to previous `@vtexdocs/components` version -3. **Emergency:** The adapter returns empty results on error, so Algolia credentials can be added back - -## Known Limitations - -1. **Faceting:** Facets are extracted from results, not from a separate facet index (may be less accurate for large result sets) -2. **Analytics:** Algolia Insights won't work for hybrid results -3. **Query suggestions:** No autocomplete suggestions (would need separate endpoint) -4. **Performance:** Adds network hop through Next.js API route -5. **Relevance tuning:** Cannot use Algolia dashboard for ranking tweaks - -## Future Enhancements - -1. **Server-side rendering:** Hybrid client currently assumes `window` exists (client-side only) -2. **Facet API:** Add `/api/facets` endpoint for accurate counts -3. **Analytics:** Integrate with custom analytics instead of Algolia Insights -4. **Caching:** Add client-side SWR caching for better performance -5. **A/B testing:** Run both backends and compare quality -6. **Query suggestions:** Add autocomplete endpoint - -## Resources - -- Original implementation plan: `helpcenter/docs/hybrid-search-integration-plan.md` -- Backend API: `helpcenter/src/pages/api/search.ts` -- Hybrid client: `helpcenter/src/utils/hybrid-search-client.ts` -- Components repo: https://github.com/vtexdocs/components From dfe539e73cc0b7d1a044ac27ef69e910736806c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A1rbara=20Celi?= Date: Wed, 13 May 2026 10:00:21 -0300 Subject: [PATCH 04/23] feat: enhance hybrid search configuration with caching and upstream fetch size --- dist/index.d.mts | 14 ++ dist/index.mjs | 193 +++++++++++++++------ dist/index.mjs.map | 2 +- src/utils/config/search-config.ts | 277 ++++++++++++++++++++++++------ 4 files changed, 386 insertions(+), 100 deletions(-) diff --git a/dist/index.d.mts b/dist/index.d.mts index d8e66bf..d1955a4 100644 --- a/dist/index.d.mts +++ b/dist/index.d.mts @@ -166,6 +166,20 @@ interface HybridSearchConfig { source: 'help-center' | 'dev-portal'; defaultLimit?: number; useLanguageFilter?: boolean; + /** + * Max number of results to request from the upstream API in a single call. + * The Hybrid Search upstream does not support pagination, so the adapter + * fetches a large slice once and paginates / filters client-side. + * Defaults to 100 (the upstream HS_MAX_LIMIT). + */ + upstreamFetchSize?: number; + /** + * TTL (ms) for the in-memory response cache keyed by query+locale. + * A short TTL is enough to let `connectInfiniteHits` page through the + * results without re-fetching the upstream on every refineNext call. + * Defaults to 60_000 ms. + */ + cacheTtlMs?: number; } type SearchBackendConfig = { backend: 'algolia'; diff --git a/dist/index.mjs b/dist/index.mjs index 02d6ab5..33da517 100644 --- a/dist/index.mjs +++ b/dist/index.mjs @@ -9818,12 +9818,31 @@ var createAlgoliaClient = (config) => { } }; }; +var HYBRID_UPSTREAM_MAX_LIMIT = 100; var createHybridClient = (config) => { const { apiEndpoint, defaultLimit = 10, - useLanguageFilter = true + useLanguageFilter = true, + upstreamFetchSize = HYBRID_UPSTREAM_MAX_LIMIT, + cacheTtlMs = 6e4 } = config; + const effectiveUpstreamLimit = clampUpstreamLimit(upstreamFetchSize); + const cache = []; + const getCached = (key) => { + const now = Date.now(); + for (let i = cache.length - 1; i >= 0; i--) { + if (now - cache[i].ts > cacheTtlMs) { + cache.splice(i, 1); + } + } + return cache.find((e) => e.key === key)?.hits; + }; + const setCached = (key, hits) => { + cache.push({ key, ts: Date.now(), hits }); + while (cache.length > 20) + cache.shift(); + }; aa2("init", { appId: "hybrid-search", apiKey: "none", @@ -9839,40 +9858,51 @@ var createHybridClient = (config) => { return void 0; } try { - const request = requests[0]; - const query = request.params?.query || ""; - const limit = request.params?.hitsPerPage || defaultLimit; - let locale = ""; - const facetFilters = request.params?.facetFilters || []; - if (Array.isArray(facetFilters)) { - const langFilter = facetFilters.find( - (f) => typeof f === "string" && f.startsWith("language:") - ); - if (langFilter && typeof langFilter === "string") { - locale = langFilter.replace("language:", ""); + const request = requests.find(({ params: params2 }) => params2?.query) || requests[0]; + const params = request.params || {}; + const query = params.query || ""; + const hitsPerPage = params.hitsPerPage || defaultLimit; + const page = params.page || 0; + const { locale, doctypes } = extractHybridFilters(params); + const cacheKey = JSON.stringify({ + q: query, + locale: useLanguageFilter ? locale || "" : "", + limit: effectiveUpstreamLimit + }); + const cachedHits = getCached(cacheKey); + let allHits; + if (cachedHits) { + allHits = cachedHits; + } else { + const url = new URL(apiEndpoint, window.location.origin); + url.searchParams.set("q", query); + url.searchParams.set("limit", String(effectiveUpstreamLimit)); + if (useLanguageFilter && locale) { + url.searchParams.set("locale", locale); } - } - const url = new URL(apiEndpoint, window.location.origin); - url.searchParams.set("q", query); - url.searchParams.set("limit", String(limit)); - if (locale) { - url.searchParams.set("locale", locale); - } - const response = await fetch(url.toString()); - if (!response.ok) { - throw new Error(`Hybrid search failed: ${response.status}`); - } - const data = await response.json(); - const hits = (data.results || []).map(transformHybridToAlgolia); - const facets = extractFacetsFromHits(hits); + const response = await fetch(url.toString()); + if (!response.ok) { + throw new Error(`Hybrid search failed: ${response.status}`); + } + const data = await response.json(); + const rawResults = Array.isArray(data?.results) ? data.results : []; + allHits = rawResults.map(transformHybridToAlgolia); + setCached(cacheKey, allHits); + } + const filteredHits = filterHitsByDoctype(allHits, doctypes); + const nbHits = filteredHits.length; + const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage)); + const start = page * hitsPerPage; + const pageHits = filteredHits.slice(start, start + hitsPerPage); + const facets = extractFacetsFromHits(allHits); return { results: [ { - hits, - nbHits: data.total || hits.length, - page: request.params?.page || 0, - nbPages: Math.ceil((data.total || hits.length) / limit), - hitsPerPage: limit, + hits: pageHits, + nbHits, + page, + nbPages, + hitsPerPage, exhaustiveNbHits: true, query, params: "", @@ -9907,23 +9937,61 @@ var createHybridClient = (config) => { } }; }; +function clampUpstreamLimit(raw) { + if (!Number.isFinite(raw) || raw <= 0) + return HYBRID_UPSTREAM_MAX_LIMIT; + return Math.min(HYBRID_UPSTREAM_MAX_LIMIT, Math.max(1, Math.floor(raw))); +} +function extractHybridFilters(params) { + let locale = ""; + const doctypes = []; + const pushDoctype = (raw) => { + const value = raw.replace(/^"|"$/g, "").trim(); + if (value && !doctypes.includes(value)) + doctypes.push(value); + }; + const filtersStr = typeof params?.filters === "string" ? params.filters : ""; + if (filtersStr) { + const langMatch = filtersStr.match(/language\s*:\s*([\w-]+)/i); + if (langMatch) + locale = langMatch[1]; + const doctypeRegex = /doctype\s*:\s*(?:"([^"]+)"|([^\s)]+))/gi; + let m; + while ((m = doctypeRegex.exec(filtersStr)) !== null) { + pushDoctype(m[1] || m[2] || ""); + } + } + const facetFilters = params?.facetFilters; + const visit = (entry) => { + if (typeof entry === "string") { + if (!locale && entry.startsWith("language:")) { + locale = entry.slice("language:".length); + } else if (entry.startsWith("doctype:")) { + pushDoctype(entry.slice("doctype:".length)); + } + } else if (Array.isArray(entry)) { + entry.forEach(visit); + } + }; + visit(facetFilters); + return { locale, doctypes }; +} +function filterHitsByDoctype(hits, doctypes) { + if (!doctypes.length) + return hits; + const wanted = new Set(doctypes.map((d) => d.toLowerCase())); + return hits.filter( + (h) => wanted.has(String(h.doctype || "").toLowerCase()) + ); +} function transformHybridToAlgolia(result) { const filePath = result.filePath || ""; - const pathParts = filePath.split("/").filter(Boolean); - let doctype = "Documentation"; - let hierarchy = { - lvl0: "Documentation", + const doctype = deriveDoctypeFromFilePath(filePath); + const hierarchy = { + lvl0: doctype, lvl1: result.title || "Untitled", - lvl2: null + lvl2: deriveCategoryFromFilePath(filePath) }; - if (pathParts.length > 2) { - doctype = pathParts[2] || "Documentation"; - hierarchy = { - lvl0: doctype, - lvl1: result.title || "Untitled", - lvl2: pathParts[3] || null - }; - } const url = buildUrlFromFilePath(filePath); return { objectID: String(result.id), @@ -9962,14 +10030,41 @@ function transformHybridToAlgolia(result) { } }; } +var LOCALE_SEGMENT = /^(en|es|pt)$/i; +function deriveDoctypeFromFilePath(filePath) { + const parts = filePath.split("/").filter(Boolean); + if (parts.length === 0) + return "documentation"; + if (parts[0] === "docs" && parts.length > 2) { + return parts[2].toLowerCase(); + } + if (parts.length > 1 && LOCALE_SEGMENT.test(parts[1])) { + return parts[0].toLowerCase(); + } + return parts[0].toLowerCase(); +} +function deriveCategoryFromFilePath(filePath) { + const parts = filePath.split("/").filter(Boolean); + if (parts[0] === "docs" && parts.length > 3) + return parts[3]; + if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1])) + return parts[2]; + if (parts.length > 1) + return parts[1]; + return null; +} function buildUrlFromFilePath(filePath) { - const parts = filePath.split("/"); + const parts = filePath.split("/").filter(Boolean); + if (parts.length === 0) + return "/"; + const stripExt = (s) => s.replace(/\.mdx?$/, ""); if (parts[0] === "docs" && parts.length > 2) { - const pathWithoutDocs = parts.slice(2); - const pathWithoutExt = pathWithoutDocs.join("/").replace(/\.mdx?$/, ""); - return `/docs/${pathWithoutExt}`; + return `/docs/${stripExt(parts.slice(2).join("/"))}`; + } + if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1])) { + return `/${parts[0]}/${stripExt(parts.slice(2).join("/"))}`; } - return "/" + filePath.replace(/\.mdx?$/, ""); + return "/" + stripExt(parts.join("/")); } function extractFacetsFromHits(hits) { const facets = { diff --git a/dist/index.mjs.map b/dist/index.mjs.map index ec2bf0f..68a5f05 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/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/trashcan-icon.tsx","../src/components/icons/filter-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'\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 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\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\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: #f6f8fa;\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: 1fr;\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 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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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: #ecebf3;\r\n}\r\n\r\n.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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","{\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}\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}\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}","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}\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}\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 whiteSpace: 'pre',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\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\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\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport let searchClient: any = {}\r\nexport let searchIndex = ''\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 useLanguageFilter?: boolean\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\nconst createHybridClient = (config: HybridSearchConfig) => {\r\n const {\r\n apiEndpoint,\r\n defaultLimit = 10,\r\n useLanguageFilter = true,\r\n } = config\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 ): Promise | undefined> {\r\n if (requests.every(({ params }) => !params?.query)) {\r\n return undefined\r\n }\r\n\r\n try {\r\n const request = requests[0]\r\n const query = request.params?.query || ''\r\n const limit = request.params?.hitsPerPage || defaultLimit\r\n\r\n let locale = ''\r\n const facetFilters = request.params?.facetFilters || []\r\n if (Array.isArray(facetFilters)) {\r\n const langFilter = facetFilters.find(\r\n (f: string | string[]) =>\r\n typeof f === 'string' && f.startsWith('language:')\r\n )\r\n if (langFilter && typeof langFilter === 'string') {\r\n locale = langFilter.replace('language:', '')\r\n }\r\n }\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(limit))\r\n if (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 const hits = (data.results || []).map(transformHybridToAlgolia)\r\n const facets = extractFacetsFromHits(hits)\r\n\r\n return {\r\n results: [\r\n {\r\n hits,\r\n nbHits: data.total || hits.length,\r\n page: request.params?.page || 0,\r\n nbPages: Math.ceil((data.total || hits.length) / limit),\r\n hitsPerPage: limit,\r\n exhaustiveNbHits: true,\r\n query,\r\n params: '',\r\n index: request.indexName || '',\r\n processingTimeMS: 0,\r\n facets: facets.facets,\r\n facets_stats: {},\r\n exhaustiveFacetsCount: true,\r\n queryID: generateQueryID(),\r\n },\r\n ],\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: defaultLimit,\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\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 pathParts = filePath.split('/').filter(Boolean)\r\n\r\n let doctype = 'Documentation'\r\n let hierarchy = {\r\n lvl0: 'Documentation',\r\n lvl1: result.title || 'Untitled',\r\n lvl2: null,\r\n }\r\n\r\n if (pathParts.length > 2) {\r\n doctype = pathParts[2] || 'Documentation'\r\n hierarchy = {\r\n lvl0: doctype,\r\n lvl1: result.title || 'Untitled',\r\n lvl2: pathParts[3] || null,\r\n }\r\n }\r\n\r\n const url = buildUrlFromFilePath(filePath)\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: result.snippet || result.content || '',\r\n hierarchy,\r\n language: result.metadata?.locale || 'en',\r\n type: 'content',\r\n _highlightResult: {\r\n content: {\r\n value: result.snippet || result.content || '',\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 || '',\r\n matchLevel: 'full',\r\n },\r\n },\r\n }\r\n}\r\n\r\nfunction buildUrlFromFilePath(filePath: string): string {\r\n const parts = filePath.split('/')\r\n if (parts[0] === 'docs' && parts.length > 2) {\r\n const pathWithoutDocs = parts.slice(2)\r\n const pathWithoutExt = pathWithoutDocs.join('/').replace(/\\.mdx?$/, '')\r\n return `/docs/${pathWithoutExt}`\r\n }\r\n return '/' + filePath.replace(/\\.mdx?$/, '')\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction extractFacetsFromHits(\r\n hits: any[]\r\n): { facets: Record> } {\r\n const facets: Record> = {\r\n doctype: {},\r\n language: {},\r\n }\r\n\r\n hits.forEach((hit) => {\r\n const doctype = hit.doctype || 'Other'\r\n facets.doctype[doctype] = (facets.doctype[doctype] || 0) + 1\r\n\r\n const language = hit.language || 'en'\r\n facets.language[language] = (facets.language[language] || 0) + 1\r\n })\r\n\r\n return { facets }\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(config: SearchBackendConfig | AlgoliaConfig) {\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\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 return !dataElement ? (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results' }\r\n \r\n \r\n {ocurrenceCount['']}\r\n \r\n \r\n ) : (\r\n updateFilter(dataElement.id)}\r\n >\r\n \r\n \r\n \r\n {dataElement.title}\r\n \r\n \r\n \r\n {ocurrenceCount[dataElement.id] || 0}\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: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\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: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n fontSize: '12px',\r\n lineHeight: '16px',\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\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, 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 { searchClient, searchIndex } from 'utils/config/search-config'\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 [prevFilter, setPrevFilter] = useState('')\r\n const [searchState, setSearchState] = useState({})\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const page = filters !== prevFilter ? 1 : currentState.page || 1\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 ocurrenceCount[filterSelectedSection] === undefined\r\n ? ''\r\n : 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 facets = results?.facets as\r\n | Array<{\r\n name: string\r\n data: Record\r\n exhaustive?: boolean\r\n }>\r\n | undefined\r\n\r\n const doctypeFacet = facets?.find((facet) => facet.name === 'doctype')\r\n const nbHits = results?.nbHits ?? 0\r\n\r\n const formattedFacets: Record = {}\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\r\n formattedFacets[''] = nbHits\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)\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\nexport default connectInfiniteHits(InfiniteHits)\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}\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\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 return (\r\n changeFilterSelectedSection(filter)}\r\n >\r\n \r\n {filter || messages[locale]['search_results.all'] || 'All results'}\r\n \r\n {ocurrenceCount[filter] || 0}\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) => SxStyleProp = (active) => ({\r\n pt: '8px',\r\n pb: '14px',\r\n px: '24px',\r\n cursor: '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})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '16.38px',\r\n whiteSpace: 'nowrap',\r\n color: `#${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","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 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 { 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 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","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","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","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","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","algoliasearch","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","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","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","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","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","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","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/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/trashcan-icon.tsx","../src/components/icons/filter-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'\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 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\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\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: #f6f8fa;\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: 1fr;\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 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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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: #ecebf3;\r\n}\r\n\r\n.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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","{\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}\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}\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}","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}\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}\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 whiteSpace: 'pre',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\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\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\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport let searchClient: any = {}\r\nexport let searchIndex = ''\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 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\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\nconst createHybridClient = (config: HybridSearchConfig) => {\r\n const {\r\n apiEndpoint,\r\n defaultLimit = 10,\r\n useLanguageFilter = true,\r\n upstreamFetchSize = HYBRID_UPSTREAM_MAX_LIMIT,\r\n cacheTtlMs = 60_000,\r\n } = config\r\n\r\n const effectiveUpstreamLimit = clampUpstreamLimit(upstreamFetchSize)\r\n const cache: HybridCacheEntry[] = []\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 // 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 ): 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 || defaultLimit\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 or doctype\r\n // filtering, so we always fetch a large slice once per (query, locale)\r\n // pair and paginate / doctype-filter client-side.\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 cachedHits = getCached(cacheKey)\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let allHits: any[]\r\n if (cachedHits) {\r\n allHits = cachedHits\r\n } else {\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 allHits = rawResults.map(transformHybridToAlgolia)\r\n setCached(cacheKey, allHits)\r\n }\r\n\r\n // Doctype filter is applied client-side because the upstream API\r\n // does not understand it. Facet counts are computed on `allHits`\r\n // (i.e. ignoring the doctype filter) so that the tabs keep showing\r\n // counts for the other doctypes.\r\n const filteredHits = filterHitsByDoctype(allHits, doctypes)\r\n const nbHits = filteredHits.length\r\n const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage))\r\n const start = page * hitsPerPage\r\n const pageHits = filteredHits.slice(start, start + hitsPerPage)\r\n\r\n const facets = extractFacetsFromHits(allHits)\r\n\r\n return {\r\n results: [\r\n {\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: facets.facets,\r\n facets_stats: {},\r\n exhaustiveFacetsCount: true,\r\n queryID: generateQueryID(),\r\n },\r\n ],\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: defaultLimit,\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) =>\r\n wanted.has(String(h.doctype || '').toLowerCase())\r\n )\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 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: result.snippet || result.content || '',\r\n hierarchy,\r\n language: result.metadata?.locale || 'en',\r\n type: 'content',\r\n _highlightResult: {\r\n content: {\r\n value: result.snippet || result.content || '',\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 || '',\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\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\r\n // docs///...\r\n if (parts[0] === 'docs' && parts.length > 2) {\r\n return `/docs/${stripExt(parts.slice(2).join('/'))}`\r\n }\r\n\r\n // //... (announcements, faq, known-issues, troubleshooting, ...)\r\n if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1])) {\r\n return `/${parts[0]}/${stripExt(parts.slice(2).join('/'))}`\r\n }\r\n\r\n return '/' + stripExt(parts.join('/'))\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction extractFacetsFromHits(\r\n hits: any[]\r\n): { facets: Record> } {\r\n const facets: Record> = {\r\n doctype: {},\r\n language: {},\r\n }\r\n\r\n hits.forEach((hit) => {\r\n const doctype = hit.doctype || 'Other'\r\n facets.doctype[doctype] = (facets.doctype[doctype] || 0) + 1\r\n\r\n const language = hit.language || 'en'\r\n facets.language[language] = (facets.language[language] || 0) + 1\r\n })\r\n\r\n return { facets }\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(config: SearchBackendConfig | AlgoliaConfig) {\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\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 return !dataElement ? (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results' }\r\n \r\n \r\n {ocurrenceCount['']}\r\n \r\n \r\n ) : (\r\n updateFilter(dataElement.id)}\r\n >\r\n \r\n \r\n \r\n {dataElement.title}\r\n \r\n \r\n \r\n {ocurrenceCount[dataElement.id] || 0}\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: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\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: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n fontSize: '12px',\r\n lineHeight: '16px',\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\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, 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 { searchClient, searchIndex } from 'utils/config/search-config'\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 [prevFilter, setPrevFilter] = useState('')\r\n const [searchState, setSearchState] = useState({})\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const page = filters !== prevFilter ? 1 : currentState.page || 1\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 ocurrenceCount[filterSelectedSection] === undefined\r\n ? ''\r\n : 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 facets = results?.facets as\r\n | Array<{\r\n name: string\r\n data: Record\r\n exhaustive?: boolean\r\n }>\r\n | undefined\r\n\r\n const doctypeFacet = facets?.find((facet) => facet.name === 'doctype')\r\n const nbHits = results?.nbHits ?? 0\r\n\r\n const formattedFacets: Record = {}\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\r\n formattedFacets[''] = nbHits\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)\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\nexport default connectInfiniteHits(InfiniteHits)\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}\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\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 return (\r\n changeFilterSelectedSection(filter)}\r\n >\r\n \r\n {filter || messages[locale]['search_results.all'] || 'All results'}\r\n \r\n {ocurrenceCount[filter] || 0}\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) => SxStyleProp = (active) => ({\r\n pt: '8px',\r\n pb: '14px',\r\n px: '24px',\r\n cursor: '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})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '16.38px',\r\n whiteSpace: 'nowrap',\r\n color: `#${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","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 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 { 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 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","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","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","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","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","algoliasearch","params","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","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","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","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","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","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","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/utils/config/search-config.ts b/src/utils/config/search-config.ts index 74441ef..fff2b8d 100644 --- a/src/utils/config/search-config.ts +++ b/src/utils/config/search-config.ts @@ -26,6 +26,20 @@ export interface HybridSearchConfig { source: 'help-center' | 'dev-portal' defaultLimit?: number useLanguageFilter?: boolean + /** + * Max number of results to request from the upstream API in a single call. + * The Hybrid Search upstream does not support pagination, so the adapter + * fetches a large slice once and paginates / filters client-side. + * Defaults to 100 (the upstream HS_MAX_LIMIT). + */ + upstreamFetchSize?: number + /** + * TTL (ms) for the in-memory response cache keyed by query+locale. + * A short TTL is enough to let `connectInfiniteHits` page through the + * results without re-fetching the upstream on every refineNext call. + * Defaults to 60_000 ms. + */ + cacheTtlMs?: number } export type SearchBackendConfig = @@ -71,13 +85,45 @@ const createAlgoliaClient = (config: AlgoliaConfig) => { } } +// Upstream hard cap (must match HS_MAX_LIMIT in the API proxy). +const HYBRID_UPSTREAM_MAX_LIMIT = 100 + +type HybridCacheEntry = { + key: string + ts: number + // eslint-disable-next-line @typescript-eslint/no-explicit-any + hits: any[] +} + const createHybridClient = (config: HybridSearchConfig) => { const { apiEndpoint, defaultLimit = 10, useLanguageFilter = true, + upstreamFetchSize = HYBRID_UPSTREAM_MAX_LIMIT, + cacheTtlMs = 60_000, } = config + const effectiveUpstreamLimit = clampUpstreamLimit(upstreamFetchSize) + const cache: HybridCacheEntry[] = [] + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const getCached = (key: string): any[] | undefined => { + const now = Date.now() + for (let i = cache.length - 1; i >= 0; i--) { + if (now - cache[i].ts > cacheTtlMs) { + cache.splice(i, 1) + } + } + return cache.find((e) => e.key === key)?.hits + } + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const setCached = (key: string, hits: any[]) => { + cache.push({ key, ts: Date.now(), hits }) + while (cache.length > 20) cache.shift() + } + // Initialize minimal analytics (disabled for hybrid) aa('init', { appId: 'hybrid-search', @@ -100,46 +146,71 @@ const createHybridClient = (config: HybridSearchConfig) => { try { // Find the first request with a non-empty query - const request = requests.find(({ params }) => params?.query) || requests[0] - const query = request.params?.query || '' - const limit = request.params?.hitsPerPage || defaultLimit - - let locale = '' - const facetFilters = request.params?.facetFilters || [] - if (Array.isArray(facetFilters)) { - const langFilter = facetFilters.find( - (f: string | string[]) => - typeof f === 'string' && f.startsWith('language:') - ) - if (langFilter && typeof langFilter === 'string') { - locale = langFilter.replace('language:', '') + const request = + requests.find(({ params }) => params?.query) || requests[0] + const params = request.params || {} + const query = params.query || '' + const hitsPerPage = params.hitsPerPage || defaultLimit + const page = params.page || 0 + + const { locale, doctypes } = extractHybridFilters(params) + + // The upstream Hybrid Search API does not support pagination or doctype + // filtering, so we always fetch a large slice once per (query, locale) + // pair and paginate / doctype-filter client-side. + const cacheKey = JSON.stringify({ + q: query, + locale: useLanguageFilter ? locale || '' : '', + limit: effectiveUpstreamLimit, + }) + + const cachedHits = getCached(cacheKey) + // eslint-disable-next-line @typescript-eslint/no-explicit-any + let allHits: any[] + if (cachedHits) { + allHits = cachedHits + } else { + const url = new URL(apiEndpoint, window.location.origin) + url.searchParams.set('q', query) + url.searchParams.set('limit', String(effectiveUpstreamLimit)) + if (useLanguageFilter && locale) { + url.searchParams.set('locale', locale) } - } - const url = new URL(apiEndpoint, window.location.origin) - url.searchParams.set('q', query) - url.searchParams.set('limit', String(limit)) - if (locale) { - url.searchParams.set('locale', locale) - } + const response = await fetch(url.toString()) + if (!response.ok) { + throw new Error(`Hybrid search failed: ${response.status}`) + } - const response = await fetch(url.toString()) - if (!response.ok) { - throw new Error(`Hybrid search failed: ${response.status}`) + const data = await response.json() + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const rawResults: any[] = Array.isArray(data?.results) + ? data.results + : [] + allHits = rawResults.map(transformHybridToAlgolia) + setCached(cacheKey, allHits) } - const data = await response.json() - const hits = (data.results || []).map(transformHybridToAlgolia) - const facets = extractFacetsFromHits(hits) + // Doctype filter is applied client-side because the upstream API + // does not understand it. Facet counts are computed on `allHits` + // (i.e. ignoring the doctype filter) so that the tabs keep showing + // counts for the other doctypes. + const filteredHits = filterHitsByDoctype(allHits, doctypes) + const nbHits = filteredHits.length + const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage)) + const start = page * hitsPerPage + const pageHits = filteredHits.slice(start, start + hitsPerPage) + + const facets = extractFacetsFromHits(allHits) return { results: [ { - hits, - nbHits: data.total || hits.length, - page: request.params?.page || 0, - nbPages: Math.ceil((data.total || hits.length) / limit), - hitsPerPage: limit, + hits: pageHits, + nbHits, + page, + nbPages, + hitsPerPage, exhaustiveNbHits: true, query, params: '', @@ -175,25 +246,83 @@ const createHybridClient = (config: HybridSearchConfig) => { } } +function clampUpstreamLimit(raw: number): number { + if (!Number.isFinite(raw) || raw <= 0) return HYBRID_UPSTREAM_MAX_LIMIT + return Math.min(HYBRID_UPSTREAM_MAX_LIMIT, Math.max(1, Math.floor(raw))) +} + +/** + * Extracts the language and doctype filters from an InstantSearch request. + * + * Two filter shapes need to be supported: + * 1. `Configure.filters` (a single string like + * `language:en AND doctype:"tutorials"`), used by the full Search page. + * 2. `Configure.facetFilters` (an array like `['language:en']`), used by + * the SearchInput dropdown in the header. + */ +function extractHybridFilters( + // eslint-disable-next-line @typescript-eslint/no-explicit-any + params: any +): { locale: string; doctypes: string[] } { + let locale = '' + const doctypes: string[] = [] + + const pushDoctype = (raw: string) => { + const value = raw.replace(/^"|"$/g, '').trim() + if (value && !doctypes.includes(value)) doctypes.push(value) + } + + // 1) Configure.filters as a string expression + const filtersStr = typeof params?.filters === 'string' ? params.filters : '' + if (filtersStr) { + const langMatch = filtersStr.match(/language\s*:\s*([\w-]+)/i) + if (langMatch) locale = langMatch[1] + + const doctypeRegex = /doctype\s*:\s*(?:"([^"]+)"|([^\s)]+))/gi + let m: RegExpExecArray | null + while ((m = doctypeRegex.exec(filtersStr)) !== null) { + pushDoctype(m[1] || m[2] || '') + } + } + + // 2) facetFilters (string | string[] | (string | string[])[]) + const facetFilters = params?.facetFilters + const visit = (entry: unknown) => { + if (typeof entry === 'string') { + if (!locale && entry.startsWith('language:')) { + locale = entry.slice('language:'.length) + } else if (entry.startsWith('doctype:')) { + pushDoctype(entry.slice('doctype:'.length)) + } + } else if (Array.isArray(entry)) { + entry.forEach(visit) + } + } + visit(facetFilters) + + return { locale, doctypes } +} + +function filterHitsByDoctype( + hits: T[], + doctypes: string[] +): T[] { + if (!doctypes.length) return hits + const wanted = new Set(doctypes.map((d) => d.toLowerCase())) + return hits.filter((h) => + wanted.has(String(h.doctype || '').toLowerCase()) + ) +} + // eslint-disable-next-line @typescript-eslint/no-explicit-any function transformHybridToAlgolia(result: any): any { const filePath = result.filePath || '' - const pathParts = filePath.split('/').filter(Boolean) + const doctype = deriveDoctypeFromFilePath(filePath) - let doctype = 'Documentation' - let hierarchy = { - lvl0: 'Documentation', + const hierarchy = { + lvl0: doctype, lvl1: result.title || 'Untitled', - lvl2: null, - } - - if (pathParts.length > 2) { - doctype = pathParts[2] || 'Documentation' - hierarchy = { - lvl0: doctype, - lvl1: result.title || 'Untitled', - lvl2: pathParts[3] || null, - } + lvl2: deriveCategoryFromFilePath(filePath), } const url = buildUrlFromFilePath(filePath) @@ -236,14 +365,62 @@ function transformHybridToAlgolia(result: any): any { } } +const LOCALE_SEGMENT = /^(en|es|pt)$/i + +/** + * Derives the doctype id from a filePath returned by the Hybrid Search upstream. + * + * Supports the two layouts currently produced by the help-center / dev-portal + * content repositories: + * - `docs///...` → doctype = 3rd segment + * - `//...` → doctype = 1st segment + * - `/...` → doctype = 1st segment (fallback) + * + * Returns 'documentation' as a safe default so SearchCard rendering does not + * break. The id is kept lowercase so it can be matched against the + * `filterSelectedSection` values defined in the consuming app + * (e.g. 'tutorials', 'faq', 'known-issues', 'troubleshooting', 'announcements'). + */ +function deriveDoctypeFromFilePath(filePath: string): string { + const parts = filePath.split('/').filter(Boolean) + if (parts.length === 0) return 'documentation' + + if (parts[0] === 'docs' && parts.length > 2) { + return parts[2].toLowerCase() + } + + if (parts.length > 1 && LOCALE_SEGMENT.test(parts[1])) { + return parts[0].toLowerCase() + } + + return parts[0].toLowerCase() +} + +function deriveCategoryFromFilePath(filePath: string): string | null { + const parts = filePath.split('/').filter(Boolean) + if (parts[0] === 'docs' && parts.length > 3) return parts[3] + if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1])) return parts[2] + if (parts.length > 1) return parts[1] + return null +} + function buildUrlFromFilePath(filePath: string): string { - const parts = filePath.split('/') + const parts = filePath.split('/').filter(Boolean) + if (parts.length === 0) return '/' + + const stripExt = (s: string) => s.replace(/\.mdx?$/, '') + + // docs///... if (parts[0] === 'docs' && parts.length > 2) { - const pathWithoutDocs = parts.slice(2) - const pathWithoutExt = pathWithoutDocs.join('/').replace(/\.mdx?$/, '') - return `/docs/${pathWithoutExt}` + return `/docs/${stripExt(parts.slice(2).join('/'))}` } - return '/' + filePath.replace(/\.mdx?$/, '') + + // //... (announcements, faq, known-issues, troubleshooting, ...) + if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1])) { + return `/${parts[0]}/${stripExt(parts.slice(2).join('/'))}` + } + + return '/' + stripExt(parts.join('/')) } // eslint-disable-next-line @typescript-eslint/no-explicit-any From 96433c24488ec18ac529200579d897c6cd0affd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A1rbara=20Celi?= Date: Tue, 19 May 2026 08:25:18 -0300 Subject: [PATCH 05/23] fix: update search results pagination and improve request handling --- dist/index.d.mts | 2 +- dist/index.mjs | 412 ++++++++++++++++++------ dist/index.mjs.map | 2 +- src/components/search-results/index.tsx | 2 +- 4 files changed, 318 insertions(+), 100 deletions(-) diff --git a/dist/index.d.mts b/dist/index.d.mts index d1955a4..ebb27b8 100644 --- a/dist/index.d.mts +++ b/dist/index.d.mts @@ -2,7 +2,7 @@ import * as react_jsx_runtime from 'react/jsx-runtime'; import { MDXRemoteSerializeResult } from 'next-mdx-remote'; import { SxStyleProp, IconProps } from '@vtex/brand-ui'; import * as react from 'react'; -import { ReactNode, Dispatch, SetStateAction } from 'react'; +import { Dispatch, SetStateAction, ReactNode } from 'react'; import { AlgoliaSearchOptions } from 'algoliasearch/lite'; interface MarkdownRendererProps { diff --git a/dist/index.mjs b/dist/index.mjs index 33da517..99267de 100644 --- a/dist/index.mjs +++ b/dist/index.mjs @@ -1657,7 +1657,7 @@ 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"; + version = "4.26.0"; destroy = (base) => { return () => { return base.transporter.requester.destroy(); @@ -2874,6 +2874,15 @@ var init_client_search_esm = __esm({ objectIDs: saveObjectsResponse.objectIDs, taskIDs: [copyResponse.taskID, ...saveObjectsResponse.taskIDs, moveResponse.taskID] }; + }).catch((error) => { + return deleteIndex({ + appId: base.appId, + transporter: base.transporter, + indexName: temporaryIndexName + })().catch(() => { + }).then(() => { + throw error; + }); }); return createWaitablePromise2(result, (_, waitRequestOptions) => { return Promise.all(responses.map((response) => response.wait(waitRequestOptions))); @@ -3184,7 +3193,7 @@ 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"; + version2 = "4.26.0"; destroy2 = (base) => { return () => { return base.transporter.requester.destroy(); @@ -3213,6 +3222,7 @@ import { Agent } from "http"; import * as https from "https"; import { Agent as Agent$1 } from "https"; import { parse as parse2 } from "url"; +import { createGunzip, gzip } from "zlib"; function createNodeHttpRequester({ agent: userGlobalAgent, httpAgent: userHttpAgent, httpsAgent: userHttpsAgent, requesterOptions = {} } = {}) { const httpAgent = userHttpAgent || userGlobalAgent || defaultHttpAgent; const httpsAgent = userHttpsAgent || userGlobalAgent || defaultHttpsAgent; @@ -3221,6 +3231,9 @@ function createNodeHttpRequester({ agent: userGlobalAgent, httpAgent: userHttpAg return new Promise((resolve) => { const url = parse2(request.url); const path = url.query === null ? url.pathname : `${url.pathname}?${url.query}`; + const COMPRESSION_THRESHOLD = 750; + const acceptEncoding = request.headers["accept-encoding"]; + const shouldCompress = request.data !== void 0 && Buffer.byteLength(request.data) >= COMPRESSION_THRESHOLD && acceptEncoding !== void 0 && acceptEncoding.toLowerCase().includes("gzip"); const options = { ...requesterOptions, agent: url.protocol === "https:" ? httpsAgent : httpAgent, @@ -3229,28 +3242,58 @@ function createNodeHttpRequester({ agent: userGlobalAgent, httpAgent: userHttpAg method: request.method, headers: { ...requesterOptions && requesterOptions.headers ? requesterOptions.headers : {}, - ...request.headers + ...request.headers, + ...shouldCompress ? { "content-encoding": "gzip" } : {} }, ...url.port !== void 0 ? { port: url.port || "" } : {} }; + let connectTimeout; + let responseTimeout; + let gunzip; + const cleanup = () => { + clearTimeout(connectTimeout); + clearTimeout(responseTimeout); + if (gunzip) { + gunzip.destroy(); + } + }; + const onError = (error) => { + cleanup(); + resolve({ status: 0, content: error.message, isTimedOut: false }); + }; const req = (url.protocol === "https:" ? https : http).request(options, (response) => { + const contentEncoding = response.headers["content-encoding"]; + const isGzipResponse = contentEncoding !== void 0 && contentEncoding.toLowerCase().includes("gzip"); let contentBuffers = []; - response.on("data", (chunk) => { + const onData = (chunk) => { contentBuffers = contentBuffers.concat(chunk); - }); - response.on("end", () => { - clearTimeout(connectTimeout); - clearTimeout(responseTimeout); + }; + const onEnd = () => { + cleanup(); resolve({ status: response.statusCode || 0, content: Buffer.concat(contentBuffers).toString(), isTimedOut: false }); - }); + }; + response.on("error", onError); + if (isGzipResponse) { + gunzip = createGunzip(); + response.pipe(gunzip); + gunzip.on("data", onData); + gunzip.on("end", onEnd); + gunzip.on("error", onError); + } else { + response.on("data", onData); + response.on("end", onEnd); + } }); const createTimeout = (timeout, content) => { return setTimeout(() => { req.abort(); + if (gunzip) { + gunzip.destroy(); + } resolve({ status: 0, content, @@ -3258,21 +3301,29 @@ function createNodeHttpRequester({ agent: userGlobalAgent, httpAgent: userHttpAg }); }, 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 }); - }); + connectTimeout = createTimeout(request.connectTimeout, "Connection timeout"); + req.on("error", onError); req.once("response", () => { clearTimeout(connectTimeout); responseTimeout = createTimeout(request.responseTimeout, "Socket timeout"); }); - if (request.data !== void 0) { - req.write(request.data); + if (request.data !== void 0 && shouldCompress) { + gzip(request.data, (error, compressedBody) => { + if (error) { + onError(error); + return; + } + req.setHeader("content-length", compressedBody.byteLength); + req.write(compressedBody); + req.end(); + }); + } else { + if (request.data !== void 0) { + req.setHeader("content-length", Buffer.byteLength(request.data)); + req.write(request.data); + } + req.end(); } - req.end(); }); }, destroy() { @@ -3505,6 +3556,7 @@ import { Agent as Agent2 } from "http"; import * as https2 from "https"; import { Agent as Agent$12 } from "https"; import { parse as parse3 } from "url"; +import { createGunzip as createGunzip2, gzip as gzip2 } from "zlib"; function createNodeHttpRequester2({ agent: userGlobalAgent, httpAgent: userHttpAgent, httpsAgent: userHttpsAgent, requesterOptions = {} } = {}) { const httpAgent = userHttpAgent || userGlobalAgent || defaultHttpAgent2; const httpsAgent = userHttpsAgent || userGlobalAgent || defaultHttpsAgent2; @@ -3513,6 +3565,9 @@ function createNodeHttpRequester2({ agent: userGlobalAgent, httpAgent: userHttpA return new Promise((resolve) => { const url = parse3(request.url); const path = url.query === null ? url.pathname : `${url.pathname}?${url.query}`; + const COMPRESSION_THRESHOLD = 750; + const acceptEncoding = request.headers["accept-encoding"]; + const shouldCompress = request.data !== void 0 && Buffer.byteLength(request.data) >= COMPRESSION_THRESHOLD && acceptEncoding !== void 0 && acceptEncoding.toLowerCase().includes("gzip"); const options = { ...requesterOptions, agent: url.protocol === "https:" ? httpsAgent : httpAgent, @@ -3521,28 +3576,58 @@ function createNodeHttpRequester2({ agent: userGlobalAgent, httpAgent: userHttpA method: request.method, headers: { ...requesterOptions && requesterOptions.headers ? requesterOptions.headers : {}, - ...request.headers + ...request.headers, + ...shouldCompress ? { "content-encoding": "gzip" } : {} }, ...url.port !== void 0 ? { port: url.port || "" } : {} }; + let connectTimeout; + let responseTimeout; + let gunzip; + const cleanup = () => { + clearTimeout(connectTimeout); + clearTimeout(responseTimeout); + if (gunzip) { + gunzip.destroy(); + } + }; + const onError = (error) => { + cleanup(); + resolve({ status: 0, content: error.message, isTimedOut: false }); + }; const req = (url.protocol === "https:" ? https2 : http2).request(options, (response) => { + const contentEncoding = response.headers["content-encoding"]; + const isGzipResponse = contentEncoding !== void 0 && contentEncoding.toLowerCase().includes("gzip"); let contentBuffers = []; - response.on("data", (chunk) => { + const onData = (chunk) => { contentBuffers = contentBuffers.concat(chunk); - }); - response.on("end", () => { - clearTimeout(connectTimeout); - clearTimeout(responseTimeout); + }; + const onEnd = () => { + cleanup(); resolve({ status: response.statusCode || 0, content: Buffer.concat(contentBuffers).toString(), isTimedOut: false }); - }); + }; + response.on("error", onError); + if (isGzipResponse) { + gunzip = createGunzip2(); + response.pipe(gunzip); + gunzip.on("data", onData); + gunzip.on("end", onEnd); + gunzip.on("error", onError); + } else { + response.on("data", onData); + response.on("end", onEnd); + } }); const createTimeout = (timeout, content) => { return setTimeout(() => { req.abort(); + if (gunzip) { + gunzip.destroy(); + } resolve({ status: 0, content, @@ -3550,21 +3635,29 @@ function createNodeHttpRequester2({ agent: userGlobalAgent, httpAgent: userHttpA }); }, 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 }); - }); + connectTimeout = createTimeout(request.connectTimeout, "Connection timeout"); + req.on("error", onError); req.once("response", () => { clearTimeout(connectTimeout); responseTimeout = createTimeout(request.responseTimeout, "Socket timeout"); }); - if (request.data !== void 0) { - req.write(request.data); + if (request.data !== void 0 && shouldCompress) { + gzip2(request.data, (error, compressedBody) => { + if (error) { + onError(error); + return; + } + req.setHeader("content-length", compressedBody.byteLength); + req.write(compressedBody); + req.end(); + }); + } else { + if (request.data !== void 0) { + req.setHeader("content-length", Buffer.byteLength(request.data)); + req.write(request.data); + } + req.end(); } - req.end(); }); }, destroy() { @@ -3598,6 +3691,111 @@ var require_algoliasearch_cjs = __commonJS({ 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)); + var requesterCommon = (init_requester_common_esm(), __toCommonJS(requester_common_esm_exports)); + function createIngestionClient(options) { + if (!options || !options.transformation || !options.transformation.region) { + throw transformationConfigurationError("`region` must be provided when leveraging the transformation pipeline"); + } + if (options.transformation.region !== "eu" && options.transformation.region !== "us") { + throw transformationConfigurationError("`region` is required and must be one of the following: eu, us"); + } + const appId = options.appId; + const auth = clientCommon.createAuth(clientCommon.AuthMode.WithinHeaders, appId, options.apiKey); + const transporter$1 = transporter.createTransporter({ + hosts: [ + { + url: `data.${options.transformation.region}.algolia.com`, + accept: transporter.CallEnum.ReadWrite, + protocol: "https" + } + ], + ...options, + headers: { + ...auth.headers(), + ...{ "content-type": "text/plain" }, + ...options.headers + }, + queryParameters: { + ...auth.queryParameters(), + ...options.queryParameters + } + }); + return { + transporter: transporter$1, + appId, + addAlgoliaAgent(segment, version3) { + transporter$1.userAgent.add({ segment, version: version3 }); + transporter$1.userAgent.add({ segment: "Ingestion", version: version3 }); + transporter$1.userAgent.add({ segment: "Ingestion via Algoliasearch" }); + }, + clearCache() { + return Promise.all([ + transporter$1.requestsCache.clear(), + transporter$1.responsesCache.clear() + ]).then(() => void 0); + }, + push({ indexName, pushTaskPayload, watch }, requestOptions) { + if (!indexName) { + throw transformationConfigurationError("Parameter `indexName` is required when calling `push`."); + } + if (!pushTaskPayload) { + throw transformationConfigurationError("Parameter `pushTaskPayload` is required when calling `push`."); + } + if (!pushTaskPayload.action) { + throw transformationConfigurationError("Parameter `pushTaskPayload.action` is required when calling `push`."); + } + if (!pushTaskPayload.records) { + throw transformationConfigurationError("Parameter `pushTaskPayload.records` is required when calling `push`."); + } + const opts = requestOptions || { queryParameters: {} }; + return transporter$1.write({ + method: requesterCommon.MethodEnum.Post, + path: clientCommon.encode("1/push/%s", indexName), + data: pushTaskPayload + }, { + ...opts, + queryParameters: { + ...opts.queryParameters, + watch: watch !== void 0 + } + }); + } + }; + } + function saveObjectsWithTransformation(indexName, client) { + return (objects, requestOptions) => { + if (!client) { + throw transformationConfigurationError("`options.transformation.region` must be provided at client instantiation before calling this method."); + } + const { autoGenerateObjectIDIfNotExist, watch, ...rest } = requestOptions || {}; + const action = autoGenerateObjectIDIfNotExist ? clientSearch.BatchActionEnum.AddObject : clientSearch.BatchActionEnum.UpdateObject; + return client.push({ + indexName, + pushTaskPayload: { action, records: objects }, + watch + }, rest); + }; + } + function partialUpdateObjectsWithTransformation(indexName, client) { + return (objects, requestOptions) => { + if (!client) { + throw transformationConfigurationError("`options.transformation.region` must be provided at client instantiation before calling this method."); + } + const { createIfNotExists, watch, ...rest } = requestOptions || {}; + const action = createIfNotExists ? clientSearch.BatchActionEnum.PartialUpdateObject : clientSearch.BatchActionEnum.PartialUpdateObjectNoCreate; + return client.push({ + indexName, + pushTaskPayload: { action, records: objects }, + watch + }, rest); + }; + } + function transformationConfigurationError(message) { + return { + name: "TransformationConfigurationError", + message + }; + } function algoliasearch2(appId, apiKey, options) { const commonOptions = { appId, @@ -3628,6 +3826,13 @@ var require_algoliasearch_cjs = __commonJS({ } }); }; + let ingestionTransporter; + if (options && options.transformation) { + if (!options.transformation.region) { + throw transformationConfigurationError("`region` must be provided when leveraging the transformation pipeline"); + } + ingestionTransporter = createIngestionClient({ ...options, ...commonOptions }); + } return clientSearch.createSearchClient({ ...searchClientOptions, methods: { @@ -3673,49 +3878,53 @@ var require_algoliasearch_cjs = __commonJS({ waitAppTask: clientSearch.waitAppTask, customRequest: clientSearch.customRequest, initIndex: (base) => (indexName) => { - return clientSearch.initIndex(base)(indexName, { - methods: { - batch: clientSearch.batch, - delete: clientSearch.deleteIndex, - findAnswers: clientSearch.findAnswers, - getObject: clientSearch.getObject, - getObjects: clientSearch.getObjects, - saveObject: clientSearch.saveObject, - saveObjects: clientSearch.saveObjects, - search: clientSearch.search, - searchForFacetValues: clientSearch.searchForFacetValues, - waitTask: clientSearch.waitTask, - setSettings: clientSearch.setSettings, - getSettings: clientSearch.getSettings, - partialUpdateObject: clientSearch.partialUpdateObject, - partialUpdateObjects: clientSearch.partialUpdateObjects, - deleteObject: clientSearch.deleteObject, - deleteObjects: clientSearch.deleteObjects, - deleteBy: clientSearch.deleteBy, - clearObjects: clientSearch.clearObjects, - browseObjects: clientSearch.browseObjects, - getObjectPosition: clientSearch.getObjectPosition, - findObject: clientSearch.findObject, - exists: clientSearch.exists, - saveSynonym: clientSearch.saveSynonym, - saveSynonyms: clientSearch.saveSynonyms, - getSynonym: clientSearch.getSynonym, - searchSynonyms: clientSearch.searchSynonyms, - browseSynonyms: clientSearch.browseSynonyms, - deleteSynonym: clientSearch.deleteSynonym, - clearSynonyms: clientSearch.clearSynonyms, - replaceAllObjects: clientSearch.replaceAllObjects, - replaceAllSynonyms: clientSearch.replaceAllSynonyms, - searchRules: clientSearch.searchRules, - getRule: clientSearch.getRule, - deleteRule: clientSearch.deleteRule, - saveRule: clientSearch.saveRule, - saveRules: clientSearch.saveRules, - replaceAllRules: clientSearch.replaceAllRules, - browseRules: clientSearch.browseRules, - clearRules: clientSearch.clearRules - } - }); + return { + ...clientSearch.initIndex(base)(indexName, { + methods: { + batch: clientSearch.batch, + delete: clientSearch.deleteIndex, + findAnswers: clientSearch.findAnswers, + getObject: clientSearch.getObject, + getObjects: clientSearch.getObjects, + saveObject: clientSearch.saveObject, + saveObjects: clientSearch.saveObjects, + search: clientSearch.search, + searchForFacetValues: clientSearch.searchForFacetValues, + waitTask: clientSearch.waitTask, + setSettings: clientSearch.setSettings, + getSettings: clientSearch.getSettings, + partialUpdateObject: clientSearch.partialUpdateObject, + partialUpdateObjects: clientSearch.partialUpdateObjects, + deleteObject: clientSearch.deleteObject, + deleteObjects: clientSearch.deleteObjects, + deleteBy: clientSearch.deleteBy, + clearObjects: clientSearch.clearObjects, + browseObjects: clientSearch.browseObjects, + getObjectPosition: clientSearch.getObjectPosition, + findObject: clientSearch.findObject, + exists: clientSearch.exists, + saveSynonym: clientSearch.saveSynonym, + saveSynonyms: clientSearch.saveSynonyms, + getSynonym: clientSearch.getSynonym, + searchSynonyms: clientSearch.searchSynonyms, + browseSynonyms: clientSearch.browseSynonyms, + deleteSynonym: clientSearch.deleteSynonym, + clearSynonyms: clientSearch.clearSynonyms, + replaceAllObjects: clientSearch.replaceAllObjects, + replaceAllSynonyms: clientSearch.replaceAllSynonyms, + searchRules: clientSearch.searchRules, + getRule: clientSearch.getRule, + deleteRule: clientSearch.deleteRule, + saveRule: clientSearch.saveRule, + saveRules: clientSearch.saveRules, + replaceAllRules: clientSearch.replaceAllRules, + browseRules: clientSearch.browseRules, + clearRules: clientSearch.clearRules + } + }), + saveObjectsWithTransformation: saveObjectsWithTransformation(indexName, ingestionTransporter), + partialUpdateObjectsWithTransformation: partialUpdateObjectsWithTransformation(indexName, ingestionTransporter) + }; }, initAnalytics: () => (clientOptions) => { return clientAnalytics.createAnalyticsClient({ @@ -6614,8 +6823,9 @@ var MermaidDiagram = ({ node, ...props }) => { const resizeObserver = new ResizeObserver(() => { if (!ref.current) return; - setWidth(ref.current?.clientWidth ?? 0); - setHeight(ref.current?.clientWidth / 2); + const width2 = ref.current.clientWidth; + setWidth(width2); + setHeight(width2 / 2); }); const mermaidRenderer = async function() { const { svg } = await mermaid2.render("mermaid-id", props.children); @@ -10107,21 +10317,28 @@ function SearchInput() { const changeFocus = (value) => { setfocusOut({ modaltoggle: value }); }; - return /* @__PURE__ */ jsxs32(InstantSearch, { searchClient, indexName: searchIndex, children: [ - searchClient.instantSearchConfigs && /* @__PURE__ */ jsx39(Configure, { ...searchClient.instantSearchConfigs }), - searchClient.useLanguageFilter && /* @__PURE__ */ jsx39( - Configure, - { - clickAnalytics: true, - facetFilters: [`language:${locale}`] - } - ), - !searchClient.useLanguageFilter && /* @__PURE__ */ jsx39(Configure, { clickAnalytics: true }), - /* @__PURE__ */ jsxs32(Box15, { onFocus: () => setfocusOut({ modaltoggle: true }), ref: resultsBox2, children: [ - /* @__PURE__ */ jsx39(search_box_default, { changeFocus }), - focusOut.modaltoggle && /* @__PURE__ */ jsx39(results_box_default, { changeFocus }) + return ( + // @ts-expect-error - React type conflict with @mdx-js/react + /* @__PURE__ */ jsxs32(InstantSearch, { searchClient, indexName: searchIndex, children: [ + searchClient.instantSearchConfigs && // @ts-expect-error - React type conflict with @mdx-js/react + /* @__PURE__ */ jsx39(Configure, { ...searchClient.instantSearchConfigs }), + searchClient.useLanguageFilter && // @ts-expect-error - React type conflict with @mdx-js/react + /* @__PURE__ */ jsx39( + Configure, + { + clickAnalytics: true, + facetFilters: [`language:${locale}`] + } + ), + !searchClient.useLanguageFilter && // @ts-expect-error - React type conflict with @mdx-js/react + /* @__PURE__ */ jsx39(Configure, { clickAnalytics: true }), + /* @__PURE__ */ jsxs32(Box15, { onFocus: () => setfocusOut({ modaltoggle: true }), ref: resultsBox2, children: [ + /* @__PURE__ */ jsx39(search_box_default, { changeFocus }), + focusOut.modaltoggle && // @ts-expect-error - React type conflict with @mdx-js/react + /* @__PURE__ */ jsx39(results_box_default, { changeFocus }) + ] }) ] }) - ] }); + ); } // src/lib/hamburger-menu/index.tsx @@ -11360,7 +11577,8 @@ var InfiniteHits = ({ hits, hasMore, refineNext }) => { /* @__PURE__ */ jsx57("span", { ref: scrollRef }) ] }); }; -var infiniteHits_default = connectInfiniteHits(InfiniteHits); +var ConnectedInfiniteHits = connectInfiniteHits(InfiniteHits); +var infiniteHits_default = ConnectedInfiniteHits; // src/components/search-results/styles.ts var resultContainer = { @@ -11459,7 +11677,7 @@ var SearchResults = () => { filters, query: router.query.keyword, clickAnalytics: true, - hitsPerPage: 6, + hitsPerPage: 10, facets: ["doctype", "language"], facetingAfterDistinct: true } diff --git a/dist/index.mjs.map b/dist/index.mjs.map index 68a5f05..87b4174 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/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/trashcan-icon.tsx","../src/components/icons/filter-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'\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 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\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\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: #f6f8fa;\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: 1fr;\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 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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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: #ecebf3;\r\n}\r\n\r\n.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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","{\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}\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}\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}","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}\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}\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 whiteSpace: 'pre',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\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\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\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport let searchClient: any = {}\r\nexport let searchIndex = ''\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 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\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\nconst createHybridClient = (config: HybridSearchConfig) => {\r\n const {\r\n apiEndpoint,\r\n defaultLimit = 10,\r\n useLanguageFilter = true,\r\n upstreamFetchSize = HYBRID_UPSTREAM_MAX_LIMIT,\r\n cacheTtlMs = 60_000,\r\n } = config\r\n\r\n const effectiveUpstreamLimit = clampUpstreamLimit(upstreamFetchSize)\r\n const cache: HybridCacheEntry[] = []\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 // 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 ): 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 || defaultLimit\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 or doctype\r\n // filtering, so we always fetch a large slice once per (query, locale)\r\n // pair and paginate / doctype-filter client-side.\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 cachedHits = getCached(cacheKey)\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let allHits: any[]\r\n if (cachedHits) {\r\n allHits = cachedHits\r\n } else {\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 allHits = rawResults.map(transformHybridToAlgolia)\r\n setCached(cacheKey, allHits)\r\n }\r\n\r\n // Doctype filter is applied client-side because the upstream API\r\n // does not understand it. Facet counts are computed on `allHits`\r\n // (i.e. ignoring the doctype filter) so that the tabs keep showing\r\n // counts for the other doctypes.\r\n const filteredHits = filterHitsByDoctype(allHits, doctypes)\r\n const nbHits = filteredHits.length\r\n const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage))\r\n const start = page * hitsPerPage\r\n const pageHits = filteredHits.slice(start, start + hitsPerPage)\r\n\r\n const facets = extractFacetsFromHits(allHits)\r\n\r\n return {\r\n results: [\r\n {\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: facets.facets,\r\n facets_stats: {},\r\n exhaustiveFacetsCount: true,\r\n queryID: generateQueryID(),\r\n },\r\n ],\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: defaultLimit,\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) =>\r\n wanted.has(String(h.doctype || '').toLowerCase())\r\n )\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 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: result.snippet || result.content || '',\r\n hierarchy,\r\n language: result.metadata?.locale || 'en',\r\n type: 'content',\r\n _highlightResult: {\r\n content: {\r\n value: result.snippet || result.content || '',\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 || '',\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\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\r\n // docs///...\r\n if (parts[0] === 'docs' && parts.length > 2) {\r\n return `/docs/${stripExt(parts.slice(2).join('/'))}`\r\n }\r\n\r\n // //... (announcements, faq, known-issues, troubleshooting, ...)\r\n if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1])) {\r\n return `/${parts[0]}/${stripExt(parts.slice(2).join('/'))}`\r\n }\r\n\r\n return '/' + stripExt(parts.join('/'))\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction extractFacetsFromHits(\r\n hits: any[]\r\n): { facets: Record> } {\r\n const facets: Record> = {\r\n doctype: {},\r\n language: {},\r\n }\r\n\r\n hits.forEach((hit) => {\r\n const doctype = hit.doctype || 'Other'\r\n facets.doctype[doctype] = (facets.doctype[doctype] || 0) + 1\r\n\r\n const language = hit.language || 'en'\r\n facets.language[language] = (facets.language[language] || 0) + 1\r\n })\r\n\r\n return { facets }\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(config: SearchBackendConfig | AlgoliaConfig) {\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\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 return !dataElement ? (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results' }\r\n \r\n \r\n {ocurrenceCount['']}\r\n \r\n \r\n ) : (\r\n updateFilter(dataElement.id)}\r\n >\r\n \r\n \r\n \r\n {dataElement.title}\r\n \r\n \r\n \r\n {ocurrenceCount[dataElement.id] || 0}\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: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\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: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n fontSize: '12px',\r\n lineHeight: '16px',\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\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, 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 { searchClient, searchIndex } from 'utils/config/search-config'\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 [prevFilter, setPrevFilter] = useState('')\r\n const [searchState, setSearchState] = useState({})\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const page = filters !== prevFilter ? 1 : currentState.page || 1\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 ocurrenceCount[filterSelectedSection] === undefined\r\n ? ''\r\n : 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 facets = results?.facets as\r\n | Array<{\r\n name: string\r\n data: Record\r\n exhaustive?: boolean\r\n }>\r\n | undefined\r\n\r\n const doctypeFacet = facets?.find((facet) => facet.name === 'doctype')\r\n const nbHits = results?.nbHits ?? 0\r\n\r\n const formattedFacets: Record = {}\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\r\n formattedFacets[''] = nbHits\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)\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\nexport default connectInfiniteHits(InfiniteHits)\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}\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\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 return (\r\n changeFilterSelectedSection(filter)}\r\n >\r\n \r\n {filter || messages[locale]['search_results.all'] || 'All results'}\r\n \r\n {ocurrenceCount[filter] || 0}\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) => SxStyleProp = (active) => ({\r\n pt: '8px',\r\n pb: '14px',\r\n px: '24px',\r\n cursor: '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})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '16.38px',\r\n whiteSpace: 'nowrap',\r\n color: `#${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","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 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 { 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 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","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","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","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","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","algoliasearch","params","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","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","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","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","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","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","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/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/trashcan-icon.tsx","../src/components/icons/filter-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.26.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.26.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.26.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.26.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 .catch(error => {\r\n // Clean up temporary index if there's an error\r\n // eslint-disable-next-line promise/no-nesting\r\n return deleteIndex({\r\n appId: base.appId,\r\n transporter: base.transporter,\r\n indexName: temporaryIndexName,\r\n })()\r\n .catch(() => {\r\n // Ignore delete errors\r\n })\r\n .then(() => {\r\n throw error;\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.26.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';\nimport { createGunzip, gzip } from 'zlib';\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 COMPRESSION_THRESHOLD = 750;\r\n const acceptEncoding = request.headers['accept-encoding'];\r\n const shouldCompress = request.data !== undefined &&\r\n Buffer.byteLength(request.data) >= COMPRESSION_THRESHOLD &&\r\n acceptEncoding !== undefined &&\r\n acceptEncoding.toLowerCase().includes('gzip');\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 ...(shouldCompress ? { 'content-encoding': 'gzip' } : {}),\r\n },\r\n ...(url.port !== undefined ? { port: url.port || '' } : {}),\r\n };\r\n // eslint-disable-next-line functional/no-let, prefer-const\r\n let connectTimeout;\r\n // eslint-disable-next-line functional/no-let\r\n let responseTimeout;\r\n // eslint-disable-next-line functional/no-let\r\n let gunzip;\r\n const cleanup = () => {\r\n clearTimeout(connectTimeout);\r\n clearTimeout(responseTimeout);\r\n if (gunzip) {\r\n gunzip.destroy();\r\n }\r\n };\r\n const onError = (error) => {\r\n cleanup();\r\n resolve({ status: 0, content: error.message, isTimedOut: false });\r\n };\r\n const req = (url.protocol === 'https:' ? https : http).request(options, response => {\r\n const contentEncoding = response.headers['content-encoding'];\r\n const isGzipResponse = contentEncoding !== undefined && contentEncoding.toLowerCase().includes('gzip');\r\n // eslint-disable-next-line functional/no-let\r\n let contentBuffers = [];\r\n const onData = (chunk) => {\r\n contentBuffers = contentBuffers.concat(chunk);\r\n };\r\n const onEnd = () => {\r\n cleanup();\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 response.on('error', onError);\r\n if (isGzipResponse) {\r\n gunzip = createGunzip();\r\n response.pipe(gunzip);\r\n gunzip.on('data', onData);\r\n gunzip.on('end', onEnd);\r\n gunzip.on('error', onError);\r\n }\r\n else {\r\n response.on('data', onData);\r\n response.on('end', onEnd);\r\n }\r\n });\r\n const createTimeout = (timeout, content) => {\r\n return setTimeout(() => {\r\n req.abort();\r\n if (gunzip) {\r\n gunzip.destroy();\r\n }\r\n resolve({\r\n status: 0,\r\n content,\r\n isTimedOut: true,\r\n });\r\n }, timeout * 1000);\r\n };\r\n connectTimeout = createTimeout(request.connectTimeout, 'Connection timeout');\r\n req.on('error', onError);\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 && shouldCompress) {\r\n gzip(request.data, (error, compressedBody) => {\r\n if (error) {\r\n onError(error);\r\n return;\r\n }\r\n req.setHeader('content-length', compressedBody.byteLength);\r\n req.write(compressedBody);\r\n req.end();\r\n });\r\n }\r\n else {\r\n if (request.data !== undefined) {\r\n req.setHeader('content-length', Buffer.byteLength(request.data));\r\n req.write(request.data);\r\n }\r\n req.end();\r\n }\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';\nimport { createGunzip, gzip } from 'zlib';\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 COMPRESSION_THRESHOLD = 750;\r\n const acceptEncoding = request.headers['accept-encoding'];\r\n const shouldCompress = request.data !== undefined &&\r\n Buffer.byteLength(request.data) >= COMPRESSION_THRESHOLD &&\r\n acceptEncoding !== undefined &&\r\n acceptEncoding.toLowerCase().includes('gzip');\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 ...(shouldCompress ? { 'content-encoding': 'gzip' } : {}),\r\n },\r\n ...(url.port !== undefined ? { port: url.port || '' } : {}),\r\n };\r\n // eslint-disable-next-line functional/no-let, prefer-const\r\n let connectTimeout;\r\n // eslint-disable-next-line functional/no-let\r\n let responseTimeout;\r\n // eslint-disable-next-line functional/no-let\r\n let gunzip;\r\n const cleanup = () => {\r\n clearTimeout(connectTimeout);\r\n clearTimeout(responseTimeout);\r\n if (gunzip) {\r\n gunzip.destroy();\r\n }\r\n };\r\n const onError = (error) => {\r\n cleanup();\r\n resolve({ status: 0, content: error.message, isTimedOut: false });\r\n };\r\n const req = (url.protocol === 'https:' ? https : http).request(options, response => {\r\n const contentEncoding = response.headers['content-encoding'];\r\n const isGzipResponse = contentEncoding !== undefined && contentEncoding.toLowerCase().includes('gzip');\r\n // eslint-disable-next-line functional/no-let\r\n let contentBuffers = [];\r\n const onData = (chunk) => {\r\n contentBuffers = contentBuffers.concat(chunk);\r\n };\r\n const onEnd = () => {\r\n cleanup();\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 response.on('error', onError);\r\n if (isGzipResponse) {\r\n gunzip = createGunzip();\r\n response.pipe(gunzip);\r\n gunzip.on('data', onData);\r\n gunzip.on('end', onEnd);\r\n gunzip.on('error', onError);\r\n }\r\n else {\r\n response.on('data', onData);\r\n response.on('end', onEnd);\r\n }\r\n });\r\n const createTimeout = (timeout, content) => {\r\n return setTimeout(() => {\r\n req.abort();\r\n if (gunzip) {\r\n gunzip.destroy();\r\n }\r\n resolve({\r\n status: 0,\r\n content,\r\n isTimedOut: true,\r\n });\r\n }, timeout * 1000);\r\n };\r\n connectTimeout = createTimeout(request.connectTimeout, 'Connection timeout');\r\n req.on('error', onError);\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 && shouldCompress) {\r\n gzip(request.data, (error, compressedBody) => {\r\n if (error) {\r\n onError(error);\r\n return;\r\n }\r\n req.setHeader('content-length', compressedBody.byteLength);\r\n req.write(compressedBody);\r\n req.end();\r\n });\r\n }\r\n else {\r\n if (request.data !== undefined) {\r\n req.setHeader('content-length', Buffer.byteLength(request.data));\r\n req.write(request.data);\r\n }\r\n req.end();\r\n }\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');\nvar requesterCommon = require('@algolia/requester-common');\n\nfunction createIngestionClient(options) {\r\n if (!options || !options.transformation || !options.transformation.region) {\r\n throw transformationConfigurationError('`region` must be provided when leveraging the transformation pipeline');\r\n }\r\n if (options.transformation.region !== 'eu' && options.transformation.region !== 'us') {\r\n throw transformationConfigurationError('`region` is required and must be one of the following: eu, us');\r\n }\r\n const appId = options.appId;\r\n const auth = clientCommon.createAuth(clientCommon.AuthMode.WithinHeaders, appId, options.apiKey);\r\n const transporter$1 = transporter.createTransporter({\r\n hosts: [\r\n {\r\n url: `data.${options.transformation.region}.algolia.com`,\r\n accept: transporter.CallEnum.ReadWrite,\r\n protocol: 'https',\r\n },\r\n ],\r\n ...options,\r\n headers: {\r\n ...auth.headers(),\r\n ...{ 'content-type': 'text/plain' },\r\n ...options.headers,\r\n },\r\n queryParameters: {\r\n ...auth.queryParameters(),\r\n ...options.queryParameters,\r\n },\r\n });\r\n return {\r\n transporter: transporter$1,\r\n appId,\r\n addAlgoliaAgent(segment, version) {\r\n transporter$1.userAgent.add({ segment, version });\r\n transporter$1.userAgent.add({ segment: 'Ingestion', version });\r\n transporter$1.userAgent.add({ segment: 'Ingestion via Algoliasearch' });\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 push({ indexName, pushTaskPayload, watch }, requestOptions) {\r\n if (!indexName) {\r\n throw transformationConfigurationError('Parameter `indexName` is required when calling `push`.');\r\n }\r\n if (!pushTaskPayload) {\r\n throw transformationConfigurationError('Parameter `pushTaskPayload` is required when calling `push`.');\r\n }\r\n if (!pushTaskPayload.action) {\r\n throw transformationConfigurationError('Parameter `pushTaskPayload.action` is required when calling `push`.');\r\n }\r\n if (!pushTaskPayload.records) {\r\n throw transformationConfigurationError('Parameter `pushTaskPayload.records` is required when calling `push`.');\r\n }\r\n const opts = requestOptions || { queryParameters: {} };\r\n return transporter$1.write({\r\n method: requesterCommon.MethodEnum.Post,\r\n path: clientCommon.encode('1/push/%s', indexName),\r\n data: pushTaskPayload,\r\n }, {\r\n ...opts,\r\n queryParameters: {\r\n ...opts.queryParameters,\r\n watch: watch !== undefined,\r\n },\r\n });\r\n },\r\n };\r\n}\r\nfunction saveObjectsWithTransformation(indexName, client) {\r\n return (objects, requestOptions) => {\r\n if (!client) {\r\n throw transformationConfigurationError('`options.transformation.region` must be provided at client instantiation before calling this method.');\r\n }\r\n const { autoGenerateObjectIDIfNotExist, watch, ...rest } = requestOptions || {};\r\n const action = autoGenerateObjectIDIfNotExist\r\n ? clientSearch.BatchActionEnum.AddObject\r\n : clientSearch.BatchActionEnum.UpdateObject;\r\n /* eslint functional/immutable-data: \"off\" */\r\n return client.push({\r\n indexName,\r\n pushTaskPayload: { action, records: objects },\r\n watch,\r\n }, rest);\r\n };\r\n}\r\nfunction partialUpdateObjectsWithTransformation(indexName, client) {\r\n return (objects, requestOptions) => {\r\n if (!client) {\r\n throw transformationConfigurationError('`options.transformation.region` must be provided at client instantiation before calling this method.');\r\n }\r\n const { createIfNotExists, watch, ...rest } = requestOptions || {};\r\n const action = createIfNotExists\r\n ? clientSearch.BatchActionEnum.PartialUpdateObject\r\n : clientSearch.BatchActionEnum.PartialUpdateObjectNoCreate;\r\n /* eslint functional/immutable-data: \"off\" */\r\n return client.push({\r\n indexName,\r\n pushTaskPayload: { action, records: objects },\r\n watch,\r\n }, rest);\r\n };\r\n}\r\nfunction transformationConfigurationError(message) {\r\n return {\r\n name: 'TransformationConfigurationError',\r\n message,\r\n };\r\n}\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 /* eslint functional/no-let: \"off\" */\r\n let ingestionTransporter;\r\n if (options && options.transformation) {\r\n if (!options.transformation.region) {\r\n throw transformationConfigurationError('`region` must be provided when leveraging the transformation pipeline');\r\n }\r\n ingestionTransporter = createIngestionClient({ ...options, ...commonOptions });\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 {\r\n ...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 saveObjectsWithTransformation: saveObjectsWithTransformation(indexName, ingestionTransporter),\r\n partialUpdateObjectsWithTransformation: partialUpdateObjectsWithTransformation(indexName, ingestionTransporter),\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'\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 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\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 const width = ref.current.clientWidth\r\n setWidth(width)\r\n setHeight(width / 2)\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\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: #f6f8fa;\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: 1fr;\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 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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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: #ecebf3;\r\n}\r\n\r\n.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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","{\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}\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}\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}","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 // @ts-expect-error - React type conflict with @mdx-js/react\r\n \r\n {searchClient.instantSearchConfigs && (\r\n // @ts-expect-error - React type conflict with @mdx-js/react\r\n \r\n )}\r\n {searchClient.useLanguageFilter && (\r\n // @ts-expect-error - React type conflict with @mdx-js/react\r\n \r\n )}\r\n {!searchClient.useLanguageFilter && (\r\n // @ts-expect-error - React type conflict with @mdx-js/react\r\n \r\n )}\r\n setfocusOut({ modaltoggle: true })} ref={resultsBox}>\r\n {/* @ts-expect-error - React type conflict with @mdx-js/react */}\r\n \r\n {focusOut.modaltoggle && (\r\n // @ts-expect-error - React type conflict with @mdx-js/react\r\n \r\n )}\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}\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}\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 whiteSpace: 'pre',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\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\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\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport let searchClient: any = {}\r\nexport let searchIndex = ''\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 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\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\nconst createHybridClient = (config: HybridSearchConfig) => {\r\n const {\r\n apiEndpoint,\r\n defaultLimit = 10,\r\n useLanguageFilter = true,\r\n upstreamFetchSize = HYBRID_UPSTREAM_MAX_LIMIT,\r\n cacheTtlMs = 60_000,\r\n } = config\r\n\r\n const effectiveUpstreamLimit = clampUpstreamLimit(upstreamFetchSize)\r\n const cache: HybridCacheEntry[] = []\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 // 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 ): 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 || defaultLimit\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 or doctype\r\n // filtering, so we always fetch a large slice once per (query, locale)\r\n // pair and paginate / doctype-filter client-side.\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 cachedHits = getCached(cacheKey)\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let allHits: any[]\r\n if (cachedHits) {\r\n allHits = cachedHits\r\n } else {\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 allHits = rawResults.map(transformHybridToAlgolia)\r\n setCached(cacheKey, allHits)\r\n }\r\n\r\n // Doctype filter is applied client-side because the upstream API\r\n // does not understand it. Facet counts are computed on `allHits`\r\n // (i.e. ignoring the doctype filter) so that the tabs keep showing\r\n // counts for the other doctypes.\r\n const filteredHits = filterHitsByDoctype(allHits, doctypes)\r\n const nbHits = filteredHits.length\r\n const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage))\r\n const start = page * hitsPerPage\r\n const pageHits = filteredHits.slice(start, start + hitsPerPage)\r\n\r\n const facets = extractFacetsFromHits(allHits)\r\n\r\n return {\r\n results: [\r\n {\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: facets.facets,\r\n facets_stats: {},\r\n exhaustiveFacetsCount: true,\r\n queryID: generateQueryID(),\r\n },\r\n ],\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: defaultLimit,\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) =>\r\n wanted.has(String(h.doctype || '').toLowerCase())\r\n )\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 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: result.snippet || result.content || '',\r\n hierarchy,\r\n language: result.metadata?.locale || 'en',\r\n type: 'content',\r\n _highlightResult: {\r\n content: {\r\n value: result.snippet || result.content || '',\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 || '',\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\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\r\n // docs///...\r\n if (parts[0] === 'docs' && parts.length > 2) {\r\n return `/docs/${stripExt(parts.slice(2).join('/'))}`\r\n }\r\n\r\n // //... (announcements, faq, known-issues, troubleshooting, ...)\r\n if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1])) {\r\n return `/${parts[0]}/${stripExt(parts.slice(2).join('/'))}`\r\n }\r\n\r\n return '/' + stripExt(parts.join('/'))\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction extractFacetsFromHits(\r\n hits: any[]\r\n): { facets: Record> } {\r\n const facets: Record> = {\r\n doctype: {},\r\n language: {},\r\n }\r\n\r\n hits.forEach((hit) => {\r\n const doctype = hit.doctype || 'Other'\r\n facets.doctype[doctype] = (facets.doctype[doctype] || 0) + 1\r\n\r\n const language = hit.language || 'en'\r\n facets.language[language] = (facets.language[language] || 0) + 1\r\n })\r\n\r\n return { facets }\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(config: SearchBackendConfig | AlgoliaConfig) {\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\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 return !dataElement ? (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results' }\r\n \r\n \r\n {ocurrenceCount['']}\r\n \r\n \r\n ) : (\r\n updateFilter(dataElement.id)}\r\n >\r\n \r\n \r\n \r\n {dataElement.title}\r\n \r\n \r\n \r\n {ocurrenceCount[dataElement.id] || 0}\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: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\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: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n fontSize: '12px',\r\n lineHeight: '16px',\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\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, 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 { searchClient, searchIndex } from 'utils/config/search-config'\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 [prevFilter, setPrevFilter] = useState('')\r\n const [searchState, setSearchState] = useState({})\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const page = filters !== prevFilter ? 1 : currentState.page || 1\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 ocurrenceCount[filterSelectedSection] === undefined\r\n ? ''\r\n : 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, FC } 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 facets = results?.facets as\r\n | Array<{\r\n name: string\r\n data: Record\r\n exhaustive?: boolean\r\n }>\r\n | undefined\r\n\r\n const doctypeFacet = facets?.find((facet) => facet.name === 'doctype')\r\n const nbHits = results?.nbHits ?? 0\r\n\r\n const formattedFacets: Record = {}\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\r\n formattedFacets[''] = nbHits\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)\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\nconst ConnectedInfiniteHits: FC = connectInfiniteHits(InfiniteHits) as FC\r\n\r\nexport default ConnectedInfiniteHits\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}\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\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 return (\r\n changeFilterSelectedSection(filter)}\r\n >\r\n \r\n {filter || messages[locale]['search_results.all'] || 'All results'}\r\n \r\n {ocurrenceCount[filter] || 0}\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) => SxStyleProp = (active) => ({\r\n pt: '8px',\r\n pb: '14px',\r\n px: '24px',\r\n cursor: '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})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '16.38px',\r\n whiteSpace: 'nowrap',\r\n color: `#${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","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 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 { 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 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AASa,QAAI,IAAE,eAAa,OAAO,UAAQ,OAAO;AAAzC,QAA6C,IAAE,IAAE,OAAO,IAAI,eAAe,IAAE;AAA7E,QAAmF,IAAE,IAAE,OAAO,IAAI,cAAc,IAAE;AAAlH,QAAwH,IAAE,IAAE,OAAO,IAAI,gBAAgB,IAAE;AAAzJ,QAA+J,IAAE,IAAE,OAAO,IAAI,mBAAmB,IAAE;AAAnM,QAAyM,IAAE,IAAE,OAAO,IAAI,gBAAgB,IAAE;AAA1O,QAAgP,IAAE,IAAE,OAAO,IAAI,gBAAgB,IAAE;AAAjR,QAAuR,IAAE,IAAE,OAAO,IAAI,eAAe,IAAE;AAAvT,QAA6T,IAAE,IAAE,OAAO,IAAI,kBAAkB,IAAE;AAAhW,QAAsW,IAAE,IAAE,OAAO,IAAI,uBAAuB,IAAE;AAA9Y,QAAoZ,IAAE,IAAE,OAAO,IAAI,mBAAmB,IAAE;AAAxb,QAA8b,IAAE,IAAE,OAAO,IAAI,gBAAgB,IAAE;AAA/d,QAAqe,IAAE,IACpf,OAAO,IAAI,qBAAqB,IAAE;AADrB,QAC2B,IAAE,IAAE,OAAO,IAAI,YAAY,IAAE;AADxD,QAC8D,IAAE,IAAE,OAAO,IAAI,YAAY,IAAE;AAD3F,QACiG,IAAE,IAAE,OAAO,IAAI,aAAa,IAAE;AAD/H,QACqI,IAAE,IAAE,OAAO,IAAI,mBAAmB,IAAE;AADzK,QAC+K,IAAE,IAAE,OAAO,IAAI,iBAAiB,IAAE;AADjN,QACuN,IAAE,IAAE,OAAO,IAAI,aAAa,IAAE;AAClQ,aAAS,EAAE,GAAE;AAAC,UAAG,aAAW,OAAO,KAAG,SAAO,GAAE;AAAC,YAAI,IAAE,EAAE;AAAS,gBAAO,GAAE;AAAA,UAAC,KAAK;AAAE,oBAAO,IAAE,EAAE,MAAK,GAAE;AAAA,cAAC,KAAK;AAAA,cAAE,KAAK;AAAA,cAAE,KAAK;AAAA,cAAE,KAAK;AAAA,cAAE,KAAK;AAAA,cAAE,KAAK;AAAE,uBAAO;AAAA,cAAE;AAAQ,wBAAO,IAAE,KAAG,EAAE,UAAS,GAAE;AAAA,kBAAC,KAAK;AAAA,kBAAE,KAAK;AAAA,kBAAE,KAAK;AAAA,kBAAE,KAAK;AAAA,kBAAE,KAAK;AAAE,2BAAO;AAAA,kBAAE;AAAQ,2BAAO;AAAA,gBAAC;AAAA,YAAC;AAAA,UAAC,KAAK;AAAE,mBAAO;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC;AAAC,aAAS,EAAE,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAAC,YAAQ,YAAU;AAAE,YAAQ,iBAAe;AAAE,YAAQ,kBAAgB;AAAE,YAAQ,kBAAgB;AAAE,YAAQ,UAAQ;AAAE,YAAQ,aAAW;AAAE,YAAQ,WAAS;AAAE,YAAQ,OAAK;AAAE,YAAQ,OAAK;AAAE,YAAQ,SAAO;AAChf,YAAQ,WAAS;AAAE,YAAQ,aAAW;AAAE,YAAQ,WAAS;AAAE,YAAQ,cAAY,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,KAAG,EAAE,CAAC,MAAI;AAAA,IAAC;AAAE,YAAQ,mBAAiB;AAAE,YAAQ,oBAAkB,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAAE,YAAQ,oBAAkB,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAAE,YAAQ,YAAU,SAAS,GAAE;AAAC,aAAM,aAAW,OAAO,KAAG,SAAO,KAAG,EAAE,aAAW;AAAA,IAAC;AAAE,YAAQ,eAAa,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAAE,YAAQ,aAAW,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAAE,YAAQ,SAAO,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAC1d,YAAQ,SAAO,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAAE,YAAQ,WAAS,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAAE,YAAQ,aAAW,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAAE,YAAQ,eAAa,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAAE,YAAQ,aAAW,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAC1O,YAAQ,qBAAmB,SAAS,GAAE;AAAC,aAAM,aAAW,OAAO,KAAG,eAAa,OAAO,KAAG,MAAI,KAAG,MAAI,KAAG,MAAI,KAAG,MAAI,KAAG,MAAI,KAAG,MAAI,KAAG,aAAW,OAAO,KAAG,SAAO,MAAI,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW;AAAA,IAAE;AAAE,YAAQ,SAAO;AAAA;AAAA;;;ACdnU;AAAA;AAAA;AAaA,QAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,OAAC,WAAW;AACd;AAIA,YAAI,YAAY,OAAO,WAAW,cAAc,OAAO;AACvD,YAAI,qBAAqB,YAAY,OAAO,IAAI,eAAe,IAAI;AACnE,YAAI,oBAAoB,YAAY,OAAO,IAAI,cAAc,IAAI;AACjE,YAAI,sBAAsB,YAAY,OAAO,IAAI,gBAAgB,IAAI;AACrE,YAAI,yBAAyB,YAAY,OAAO,IAAI,mBAAmB,IAAI;AAC3E,YAAI,sBAAsB,YAAY,OAAO,IAAI,gBAAgB,IAAI;AACrE,YAAI,sBAAsB,YAAY,OAAO,IAAI,gBAAgB,IAAI;AACrE,YAAI,qBAAqB,YAAY,OAAO,IAAI,eAAe,IAAI;AAGnE,YAAI,wBAAwB,YAAY,OAAO,IAAI,kBAAkB,IAAI;AACzE,YAAI,6BAA6B,YAAY,OAAO,IAAI,uBAAuB,IAAI;AACnF,YAAI,yBAAyB,YAAY,OAAO,IAAI,mBAAmB,IAAI;AAC3E,YAAI,sBAAsB,YAAY,OAAO,IAAI,gBAAgB,IAAI;AACrE,YAAI,2BAA2B,YAAY,OAAO,IAAI,qBAAqB,IAAI;AAC/E,YAAI,kBAAkB,YAAY,OAAO,IAAI,YAAY,IAAI;AAC7D,YAAI,kBAAkB,YAAY,OAAO,IAAI,YAAY,IAAI;AAC7D,YAAI,mBAAmB,YAAY,OAAO,IAAI,aAAa,IAAI;AAC/D,YAAI,yBAAyB,YAAY,OAAO,IAAI,mBAAmB,IAAI;AAC3E,YAAI,uBAAuB,YAAY,OAAO,IAAI,iBAAiB,IAAI;AACvE,YAAI,mBAAmB,YAAY,OAAO,IAAI,aAAa,IAAI;AAE/D,iBAAS,mBAAmB,MAAM;AAChC,iBAAO,OAAO,SAAS,YAAY,OAAO,SAAS;AAAA,UACnD,SAAS,uBAAuB,SAAS,8BAA8B,SAAS,uBAAuB,SAAS,0BAA0B,SAAS,uBAAuB,SAAS,4BAA4B,OAAO,SAAS,YAAY,SAAS,SAAS,KAAK,aAAa,mBAAmB,KAAK,aAAa,mBAAmB,KAAK,aAAa,uBAAuB,KAAK,aAAa,sBAAsB,KAAK,aAAa,0BAA0B,KAAK,aAAa,0BAA0B,KAAK,aAAa,wBAAwB,KAAK,aAAa,oBAAoB,KAAK,aAAa;AAAA,QACplB;AAEA,iBAAS,OAAO,QAAQ;AACtB,cAAI,OAAO,WAAW,YAAY,WAAW,MAAM;AACjD,gBAAI,WAAW,OAAO;AAEtB,oBAAQ,UAAU;AAAA,cAChB,KAAK;AACH,oBAAI,OAAO,OAAO;AAElB,wBAAQ,MAAM;AAAA,kBACZ,KAAK;AAAA,kBACL,KAAK;AAAA,kBACL,KAAK;AAAA,kBACL,KAAK;AAAA,kBACL,KAAK;AAAA,kBACL,KAAK;AACH,2BAAO;AAAA,kBAET;AACE,wBAAI,eAAe,QAAQ,KAAK;AAEhC,4BAAQ,cAAc;AAAA,sBACpB,KAAK;AAAA,sBACL,KAAK;AAAA,sBACL,KAAK;AAAA,sBACL,KAAK;AAAA,sBACL,KAAK;AACH,+BAAO;AAAA,sBAET;AACE,+BAAO;AAAA,oBACX;AAAA,gBAEJ;AAAA,cAEF,KAAK;AACH,uBAAO;AAAA,YACX;AAAA,UACF;AAEA,iBAAO;AAAA,QACT;AAEA,YAAI,YAAY;AAChB,YAAI,iBAAiB;AACrB,YAAI,kBAAkB;AACtB,YAAI,kBAAkB;AACtB,YAAI,UAAU;AACd,YAAI,aAAa;AACjB,YAAIA,YAAW;AACf,YAAI,OAAO;AACX,YAAI,OAAO;AACX,YAAI,SAAS;AACb,YAAI,WAAW;AACf,YAAI,aAAa;AACjB,YAAI,WAAW;AACf,YAAI,sCAAsC;AAE1C,iBAAS,YAAY,QAAQ;AAC3B;AACE,gBAAI,CAAC,qCAAqC;AACxC,oDAAsC;AAEtC,sBAAQ,MAAM,EAAE,+KAAyL;AAAA,YAC3M;AAAA,UACF;AAEA,iBAAO,iBAAiB,MAAM,KAAK,OAAO,MAAM,MAAM;AAAA,QACxD;AACA,iBAAS,iBAAiB,QAAQ;AAChC,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,kBAAkB,QAAQ;AACjC,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,kBAAkB,QAAQ;AACjC,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,UAAU,QAAQ;AACzB,iBAAO,OAAO,WAAW,YAAY,WAAW,QAAQ,OAAO,aAAa;AAAA,QAC9E;AACA,iBAAS,aAAa,QAAQ;AAC5B,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,WAAW,QAAQ;AAC1B,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,OAAO,QAAQ;AACtB,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,OAAO,QAAQ;AACtB,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,SAAS,QAAQ;AACxB,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,WAAW,QAAQ;AAC1B,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,aAAa,QAAQ;AAC5B,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,WAAW,QAAQ;AAC1B,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AAEA,gBAAQ,YAAY;AACpB,gBAAQ,iBAAiB;AACzB,gBAAQ,kBAAkB;AAC1B,gBAAQ,kBAAkB;AAC1B,gBAAQ,UAAU;AAClB,gBAAQ,aAAa;AACrB,gBAAQ,WAAWA;AACnB,gBAAQ,OAAO;AACf,gBAAQ,OAAO;AACf,gBAAQ,SAAS;AACjB,gBAAQ,WAAW;AACnB,gBAAQ,aAAa;AACrB,gBAAQ,WAAW;AACnB,gBAAQ,cAAc;AACtB,gBAAQ,mBAAmB;AAC3B,gBAAQ,oBAAoB;AAC5B,gBAAQ,oBAAoB;AAC5B,gBAAQ,YAAY;AACpB,gBAAQ,eAAe;AACvB,gBAAQ,aAAa;AACrB,gBAAQ,SAAS;AACjB,gBAAQ,SAAS;AACjB,gBAAQ,WAAW;AACnB,gBAAQ,aAAa;AACrB,gBAAQ,eAAe;AACvB,gBAAQ,aAAa;AACrB,gBAAQ,qBAAqB;AAC7B,gBAAQ,SAAS;AAAA,MACf,GAAG;AAAA,IACL;AAAA;AAAA;;;ACpLA;AAAA;AAAA;AAEA,QAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,aAAO,UAAU;AAAA,IACnB,OAAO;AACL,aAAO,UAAU;AAAA,IACnB;AAAA;AAAA;;;ACNA;AAAA;AAAA;AAQA,QAAI,wBAAwB,OAAO;AACnC,QAAI,iBAAiB,OAAO,UAAU;AACtC,QAAI,mBAAmB,OAAO,UAAU;AAExC,aAAS,SAAS,KAAK;AACtB,UAAI,QAAQ,QAAQ,QAAQ,QAAW;AACtC,cAAM,IAAI,UAAU,uDAAuD;AAAA,MAC5E;AAEA,aAAO,OAAO,GAAG;AAAA,IAClB;AAEA,aAAS,kBAAkB;AAC1B,UAAI;AACH,YAAI,CAAC,OAAO,QAAQ;AACnB,iBAAO;AAAA,QACR;AAKA,YAAI,QAAQ,IAAI,OAAO,KAAK;AAC5B,cAAM,CAAC,IAAI;AACX,YAAI,OAAO,oBAAoB,KAAK,EAAE,CAAC,MAAM,KAAK;AACjD,iBAAO;AAAA,QACR;AAGA,YAAI,QAAQ,CAAC;AACb,iBAAS,IAAI,GAAG,IAAI,IAAI,KAAK;AAC5B,gBAAM,MAAM,OAAO,aAAa,CAAC,CAAC,IAAI;AAAA,QACvC;AACA,YAAI,SAAS,OAAO,oBAAoB,KAAK,EAAE,IAAI,SAAU,GAAG;AAC/D,iBAAO,MAAM,CAAC;AAAA,QACf,CAAC;AACD,YAAI,OAAO,KAAK,EAAE,MAAM,cAAc;AACrC,iBAAO;AAAA,QACR;AAGA,YAAI,QAAQ,CAAC;AACb,+BAAuB,MAAM,EAAE,EAAE,QAAQ,SAAU,QAAQ;AAC1D,gBAAM,MAAM,IAAI;AAAA,QACjB,CAAC;AACD,YAAI,OAAO,KAAK,OAAO,OAAO,CAAC,GAAG,KAAK,CAAC,EAAE,KAAK,EAAE,MAC/C,wBAAwB;AACzB,iBAAO;AAAA,QACR;AAEA,eAAO;AAAA,MACR,SAAS,KAAK;AAEb,eAAO;AAAA,MACR;AAAA,IACD;AAEA,WAAO,UAAU,gBAAgB,IAAI,OAAO,SAAS,SAAU,QAAQ,QAAQ;AAC9E,UAAI;AACJ,UAAI,KAAK,SAAS,MAAM;AACxB,UAAI;AAEJ,eAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAC1C,eAAO,OAAO,UAAU,CAAC,CAAC;AAE1B,iBAAS,OAAO,MAAM;AACrB,cAAI,eAAe,KAAK,MAAM,GAAG,GAAG;AACnC,eAAG,GAAG,IAAI,KAAK,GAAG;AAAA,UACnB;AAAA,QACD;AAEA,YAAI,uBAAuB;AAC1B,oBAAU,sBAAsB,IAAI;AACpC,mBAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACxC,gBAAI,iBAAiB,KAAK,MAAM,QAAQ,CAAC,CAAC,GAAG;AAC5C,iBAAG,QAAQ,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;AAAA,YACjC;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAEA,aAAO;AAAA,IACR;AAAA;AAAA;;;ACzFA;AAAA;AAAA;AASA,QAAI,uBAAuB;AAE3B,WAAO,UAAU;AAAA;AAAA;;;ACXjB;AAAA;AAAA;AAAA,WAAO,UAAU,SAAS,KAAK,KAAK,OAAO,UAAU,cAAc;AAAA;AAAA;;;ACAnE;AAAA;AAAA;AASA,QAAI,eAAe,WAAW;AAAA,IAAC;AAE/B,QAAI,QAAQ,IAAI,aAAa,cAAc;AACrC,6BAAuB;AACvB,2BAAqB,CAAC;AACtB,YAAM;AAEV,qBAAe,SAASC,OAAM;AAC5B,YAAI,UAAU,cAAcA;AAC5B,YAAI,OAAO,YAAY,aAAa;AAClC,kBAAQ,MAAM,OAAO;AAAA,QACvB;AACA,YAAI;AAIF,gBAAM,IAAI,MAAM,OAAO;AAAA,QACzB,SAAS,GAAG;AAAA,QAAO;AAAA,MACrB;AAAA,IACF;AAhBM;AACA;AACA;AA2BN,aAAS,eAAe,WAAW,QAAQ,UAAU,eAAe,UAAU;AAC5E,UAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,iBAAS,gBAAgB,WAAW;AAClC,cAAI,IAAI,WAAW,YAAY,GAAG;AAChC,gBAAI;AAIJ,gBAAI;AAGF,kBAAI,OAAO,UAAU,YAAY,MAAM,YAAY;AACjD,oBAAI,MAAM;AAAA,mBACP,iBAAiB,iBAAiB,OAAO,WAAW,YAAY,eAAe,+FACC,OAAO,UAAU,YAAY,IAAI;AAAA,gBAEpH;AACA,oBAAI,OAAO;AACX,sBAAM;AAAA,cACR;AACA,sBAAQ,UAAU,YAAY,EAAE,QAAQ,cAAc,eAAe,UAAU,MAAM,oBAAoB;AAAA,YAC3G,SAAS,IAAI;AACX,sBAAQ;AAAA,YACV;AACA,gBAAI,SAAS,EAAE,iBAAiB,QAAQ;AACtC;AAAA,iBACG,iBAAiB,iBAAiB,6BACnC,WAAW,OAAO,eAAe,6FAC6B,OAAO,QAAQ;AAAA,cAI/E;AAAA,YACF;AACA,gBAAI,iBAAiB,SAAS,EAAE,MAAM,WAAW,qBAAqB;AAGpE,iCAAmB,MAAM,OAAO,IAAI;AAEpC,kBAAI,QAAQ,WAAW,SAAS,IAAI;AAEpC;AAAA,gBACE,YAAY,WAAW,YAAY,MAAM,WAAW,SAAS,OAAO,QAAQ;AAAA,cAC9E;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAOA,mBAAe,oBAAoB,WAAW;AAC5C,UAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,6BAAqB,CAAC;AAAA,MACxB;AAAA,IACF;AAEA,WAAO,UAAU;AAAA;AAAA;;;ACtGjB;AAAA;AAAA;AASA,QAAI,UAAU;AACd,QAAI,SAAS;AAEb,QAAI,uBAAuB;AAC3B,QAAI,MAAM;AACV,QAAI,iBAAiB;AAErB,QAAI,eAAe,WAAW;AAAA,IAAC;AAE/B,QAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,qBAAe,SAASC,OAAM;AAC5B,YAAI,UAAU,cAAcA;AAC5B,YAAI,OAAO,YAAY,aAAa;AAClC,kBAAQ,MAAM,OAAO;AAAA,QACvB;AACA,YAAI;AAIF,gBAAM,IAAI,MAAM,OAAO;AAAA,QACzB,SAAS,GAAG;AAAA,QAAC;AAAA,MACf;AAAA,IACF;AAEA,aAAS,+BAA+B;AACtC,aAAO;AAAA,IACT;AAEA,WAAO,UAAU,SAAS,gBAAgB,qBAAqB;AAE7D,UAAI,kBAAkB,OAAO,WAAW,cAAc,OAAO;AAC7D,UAAI,uBAAuB;AAgB3B,eAAS,cAAc,eAAe;AACpC,YAAI,aAAa,kBAAkB,mBAAmB,cAAc,eAAe,KAAK,cAAc,oBAAoB;AAC1H,YAAI,OAAO,eAAe,YAAY;AACpC,iBAAO;AAAA,QACT;AAAA,MACF;AAiDA,UAAI,YAAY;AAIhB,UAAI,iBAAiB;AAAA,QACnB,OAAO,2BAA2B,OAAO;AAAA,QACzC,QAAQ,2BAA2B,QAAQ;AAAA,QAC3C,MAAM,2BAA2B,SAAS;AAAA,QAC1C,MAAM,2BAA2B,UAAU;AAAA,QAC3C,QAAQ,2BAA2B,QAAQ;AAAA,QAC3C,QAAQ,2BAA2B,QAAQ;AAAA,QAC3C,QAAQ,2BAA2B,QAAQ;AAAA,QAC3C,QAAQ,2BAA2B,QAAQ;AAAA,QAE3C,KAAK,qBAAqB;AAAA,QAC1B,SAAS;AAAA,QACT,SAAS,yBAAyB;AAAA,QAClC,aAAa,6BAA6B;AAAA,QAC1C,YAAY;AAAA,QACZ,MAAM,kBAAkB;AAAA,QACxB,UAAU;AAAA,QACV,OAAO;AAAA,QACP,WAAW;AAAA,QACX,OAAO;AAAA,QACP,OAAO;AAAA,MACT;AAOA,eAAS,GAAG,GAAG,GAAG;AAEhB,YAAI,MAAM,GAAG;AAGX,iBAAO,MAAM,KAAK,IAAI,MAAM,IAAI;AAAA,QAClC,OAAO;AAEL,iBAAO,MAAM,KAAK,MAAM;AAAA,QAC1B;AAAA,MACF;AAUA,eAAS,cAAc,SAAS,MAAM;AACpC,aAAK,UAAU;AACf,aAAK,OAAO,QAAQ,OAAO,SAAS,WAAW,OAAM,CAAC;AACtD,aAAK,QAAQ;AAAA,MACf;AAEA,oBAAc,YAAY,MAAM;AAEhC,eAAS,2BAA2B,UAAU;AAC5C,YAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,cAAI,0BAA0B,CAAC;AAC/B,cAAI,6BAA6B;AAAA,QACnC;AACA,iBAAS,UAAU,YAAY,OAAO,UAAU,eAAe,UAAU,cAAc,QAAQ;AAC7F,0BAAgB,iBAAiB;AACjC,yBAAe,gBAAgB;AAE/B,cAAI,WAAW,sBAAsB;AACnC,gBAAI,qBAAqB;AAEvB,kBAAI,MAAM,IAAI;AAAA,gBACZ;AAAA,cAGF;AACA,kBAAI,OAAO;AACX,oBAAM;AAAA,YACR,WAAW,QAAQ,IAAI,aAAa,gBAAgB,OAAO,YAAY,aAAa;AAElF,kBAAI,WAAW,gBAAgB,MAAM;AACrC,kBACE,CAAC,wBAAwB,QAAQ;AAAA,cAEjC,6BAA6B,GAC7B;AACA;AAAA,kBACE,6EACuB,eAAe,gBAAgB,gBAAgB;AAAA,gBAIxE;AACA,wCAAwB,QAAQ,IAAI;AACpC;AAAA,cACF;AAAA,YACF;AAAA,UACF;AACA,cAAI,MAAM,QAAQ,KAAK,MAAM;AAC3B,gBAAI,YAAY;AACd,kBAAI,MAAM,QAAQ,MAAM,MAAM;AAC5B,uBAAO,IAAI,cAAc,SAAS,WAAW,OAAO,eAAe,8BAA8B,SAAS,gBAAgB,8BAA8B;AAAA,cAC1J;AACA,qBAAO,IAAI,cAAc,SAAS,WAAW,OAAO,eAAe,iCAAiC,MAAM,gBAAgB,mCAAmC;AAAA,YAC/J;AACA,mBAAO;AAAA,UACT,OAAO;AACL,mBAAO,SAAS,OAAO,UAAU,eAAe,UAAU,YAAY;AAAA,UACxE;AAAA,QACF;AAEA,YAAI,mBAAmB,UAAU,KAAK,MAAM,KAAK;AACjD,yBAAiB,aAAa,UAAU,KAAK,MAAM,IAAI;AAEvD,eAAO;AAAA,MACT;AAEA,eAAS,2BAA2B,cAAc;AAChD,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc,QAAQ;AAChF,cAAI,YAAY,MAAM,QAAQ;AAC9B,cAAI,WAAW,YAAY,SAAS;AACpC,cAAI,aAAa,cAAc;AAI7B,gBAAI,cAAc,eAAe,SAAS;AAE1C,mBAAO,IAAI;AAAA,cACT,aAAa,WAAW,OAAO,eAAe,gBAAgB,MAAM,cAAc,oBAAoB,gBAAgB,mBAAmB,MAAM,eAAe;AAAA,cAC9J,EAAC,aAA0B;AAAA,YAC7B;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,uBAAuB;AAC9B,eAAO,2BAA2B,4BAA4B;AAAA,MAChE;AAEA,eAAS,yBAAyB,aAAa;AAC7C,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,OAAO,gBAAgB,YAAY;AACrC,mBAAO,IAAI,cAAc,eAAe,eAAe,qBAAqB,gBAAgB,iDAAiD;AAAA,UAC/I;AACA,cAAI,YAAY,MAAM,QAAQ;AAC9B,cAAI,CAAC,MAAM,QAAQ,SAAS,GAAG;AAC7B,gBAAI,WAAW,YAAY,SAAS;AACpC,mBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,gBAAgB,MAAM,WAAW,oBAAoB,gBAAgB,wBAAwB;AAAA,UACtK;AACA,mBAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AACzC,gBAAI,QAAQ,YAAY,WAAW,GAAG,eAAe,UAAU,eAAe,MAAM,IAAI,KAAK,oBAAoB;AACjH,gBAAI,iBAAiB,OAAO;AAC1B,qBAAO;AAAA,YACT;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,2BAA2B;AAClC,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,YAAY,MAAM,QAAQ;AAC9B,cAAI,CAAC,eAAe,SAAS,GAAG;AAC9B,gBAAI,WAAW,YAAY,SAAS;AACpC,mBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,gBAAgB,MAAM,WAAW,oBAAoB,gBAAgB,qCAAqC;AAAA,UACnL;AACA,iBAAO;AAAA,QACT;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,+BAA+B;AACtC,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,YAAY,MAAM,QAAQ;AAC9B,cAAI,CAAC,QAAQ,mBAAmB,SAAS,GAAG;AAC1C,gBAAI,WAAW,YAAY,SAAS;AACpC,mBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,gBAAgB,MAAM,WAAW,oBAAoB,gBAAgB,0CAA0C;AAAA,UACxL;AACA,iBAAO;AAAA,QACT;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,0BAA0B,eAAe;AAChD,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,EAAE,MAAM,QAAQ,aAAa,gBAAgB;AAC/C,gBAAI,oBAAoB,cAAc,QAAQ;AAC9C,gBAAI,kBAAkB,aAAa,MAAM,QAAQ,CAAC;AAClD,mBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,gBAAgB,MAAM,kBAAkB,oBAAoB,gBAAgB,mBAAmB,kBAAkB,oBAAoB,KAAK;AAAA,UACnN;AACA,iBAAO;AAAA,QACT;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,sBAAsB,gBAAgB;AAC7C,YAAI,CAAC,MAAM,QAAQ,cAAc,GAAG;AAClC,cAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,gBAAI,UAAU,SAAS,GAAG;AACxB;AAAA,gBACE,iEAAiE,UAAU,SAAS;AAAA,cAEtF;AAAA,YACF,OAAO;AACL,2BAAa,wDAAwD;AAAA,YACvE;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AAEA,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,YAAY,MAAM,QAAQ;AAC9B,mBAAS,IAAI,GAAG,IAAI,eAAe,QAAQ,KAAK;AAC9C,gBAAI,GAAG,WAAW,eAAe,CAAC,CAAC,GAAG;AACpC,qBAAO;AAAA,YACT;AAAA,UACF;AAEA,cAAI,eAAe,KAAK,UAAU,gBAAgB,SAAS,SAAS,KAAK,OAAO;AAC9E,gBAAI,OAAO,eAAe,KAAK;AAC/B,gBAAI,SAAS,UAAU;AACrB,qBAAO,OAAO,KAAK;AAAA,YACrB;AACA,mBAAO;AAAA,UACT,CAAC;AACD,iBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,iBAAiB,OAAO,SAAS,IAAI,QAAQ,kBAAkB,gBAAgB,wBAAwB,eAAe,IAAI;AAAA,QACnM;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,0BAA0B,aAAa;AAC9C,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,OAAO,gBAAgB,YAAY;AACrC,mBAAO,IAAI,cAAc,eAAe,eAAe,qBAAqB,gBAAgB,kDAAkD;AAAA,UAChJ;AACA,cAAI,YAAY,MAAM,QAAQ;AAC9B,cAAI,WAAW,YAAY,SAAS;AACpC,cAAI,aAAa,UAAU;AACzB,mBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,gBAAgB,MAAM,WAAW,oBAAoB,gBAAgB,yBAAyB;AAAA,UACvK;AACA,mBAAS,OAAO,WAAW;AACzB,gBAAI,IAAI,WAAW,GAAG,GAAG;AACvB,kBAAI,QAAQ,YAAY,WAAW,KAAK,eAAe,UAAU,eAAe,MAAM,KAAK,oBAAoB;AAC/G,kBAAI,iBAAiB,OAAO;AAC1B,uBAAO;AAAA,cACT;AAAA,YACF;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,uBAAuB,qBAAqB;AACnD,YAAI,CAAC,MAAM,QAAQ,mBAAmB,GAAG;AACvC,kBAAQ,IAAI,aAAa,eAAe,aAAa,wEAAwE,IAAI;AACjI,iBAAO;AAAA,QACT;AAEA,iBAAS,IAAI,GAAG,IAAI,oBAAoB,QAAQ,KAAK;AACnD,cAAI,UAAU,oBAAoB,CAAC;AACnC,cAAI,OAAO,YAAY,YAAY;AACjC;AAAA,cACE,gGACc,yBAAyB,OAAO,IAAI,eAAe,IAAI;AAAA,YACvE;AACA,mBAAO;AAAA,UACT;AAAA,QACF;AAEA,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,gBAAgB,CAAC;AACrB,mBAASC,KAAI,GAAGA,KAAI,oBAAoB,QAAQA,MAAK;AACnD,gBAAIC,WAAU,oBAAoBD,EAAC;AACnC,gBAAI,gBAAgBC,SAAQ,OAAO,UAAU,eAAe,UAAU,cAAc,oBAAoB;AACxG,gBAAI,iBAAiB,MAAM;AACzB,qBAAO;AAAA,YACT;AACA,gBAAI,cAAc,QAAQ,IAAI,cAAc,MAAM,cAAc,GAAG;AACjE,4BAAc,KAAK,cAAc,KAAK,YAAY;AAAA,YACpD;AAAA,UACF;AACA,cAAI,uBAAwB,cAAc,SAAS,IAAK,6BAA6B,cAAc,KAAK,IAAI,IAAI,MAAK;AACrH,iBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,oBAAoB,MAAM,gBAAgB,MAAM,uBAAuB,IAAI;AAAA,QACpJ;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,oBAAoB;AAC3B,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,CAAC,OAAO,MAAM,QAAQ,CAAC,GAAG;AAC5B,mBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,oBAAoB,MAAM,gBAAgB,2BAA2B;AAAA,UAC9I;AACA,iBAAO;AAAA,QACT;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,sBAAsB,eAAe,UAAU,cAAc,KAAK,MAAM;AAC/E,eAAO,IAAI;AAAA,WACR,iBAAiB,iBAAiB,OAAO,WAAW,YAAY,eAAe,MAAM,MAAM,+FACX,OAAO;AAAA,QAC1F;AAAA,MACF;AAEA,eAAS,uBAAuB,YAAY;AAC1C,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,YAAY,MAAM,QAAQ;AAC9B,cAAI,WAAW,YAAY,SAAS;AACpC,cAAI,aAAa,UAAU;AACzB,mBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,gBAAgB,WAAW,QAAQ,kBAAkB,gBAAgB,wBAAwB;AAAA,UACtK;AACA,mBAAS,OAAO,YAAY;AAC1B,gBAAI,UAAU,WAAW,GAAG;AAC5B,gBAAI,OAAO,YAAY,YAAY;AACjC,qBAAO,sBAAsB,eAAe,UAAU,cAAc,KAAK,eAAe,OAAO,CAAC;AAAA,YAClG;AACA,gBAAI,QAAQ,QAAQ,WAAW,KAAK,eAAe,UAAU,eAAe,MAAM,KAAK,oBAAoB;AAC3G,gBAAI,OAAO;AACT,qBAAO;AAAA,YACT;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,6BAA6B,YAAY;AAChD,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,YAAY,MAAM,QAAQ;AAC9B,cAAI,WAAW,YAAY,SAAS;AACpC,cAAI,aAAa,UAAU;AACzB,mBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,gBAAgB,WAAW,QAAQ,kBAAkB,gBAAgB,wBAAwB;AAAA,UACtK;AAEA,cAAI,UAAU,OAAO,CAAC,GAAG,MAAM,QAAQ,GAAG,UAAU;AACpD,mBAAS,OAAO,SAAS;AACvB,gBAAI,UAAU,WAAW,GAAG;AAC5B,gBAAI,IAAI,YAAY,GAAG,KAAK,OAAO,YAAY,YAAY;AACzD,qBAAO,sBAAsB,eAAe,UAAU,cAAc,KAAK,eAAe,OAAO,CAAC;AAAA,YAClG;AACA,gBAAI,CAAC,SAAS;AACZ,qBAAO,IAAI;AAAA,gBACT,aAAa,WAAW,OAAO,eAAe,YAAY,MAAM,oBAAoB,gBAAgB,qBACjF,KAAK,UAAU,MAAM,QAAQ,GAAG,MAAM,IAAI,IAC7D,mBAAmB,KAAK,UAAU,OAAO,KAAK,UAAU,GAAG,MAAM,IAAI;AAAA,cACvE;AAAA,YACF;AACA,gBAAI,QAAQ,QAAQ,WAAW,KAAK,eAAe,UAAU,eAAe,MAAM,KAAK,oBAAoB;AAC3G,gBAAI,OAAO;AACT,qBAAO;AAAA,YACT;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AAEA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,OAAO,WAAW;AACzB,gBAAQ,OAAO,WAAW;AAAA,UACxB,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AACH,mBAAO;AAAA,UACT,KAAK;AACH,mBAAO,CAAC;AAAA,UACV,KAAK;AACH,gBAAI,MAAM,QAAQ,SAAS,GAAG;AAC5B,qBAAO,UAAU,MAAM,MAAM;AAAA,YAC/B;AACA,gBAAI,cAAc,QAAQ,eAAe,SAAS,GAAG;AACnD,qBAAO;AAAA,YACT;AAEA,gBAAI,aAAa,cAAc,SAAS;AACxC,gBAAI,YAAY;AACd,kBAAI,WAAW,WAAW,KAAK,SAAS;AACxC,kBAAI;AACJ,kBAAI,eAAe,UAAU,SAAS;AACpC,uBAAO,EAAE,OAAO,SAAS,KAAK,GAAG,MAAM;AACrC,sBAAI,CAAC,OAAO,KAAK,KAAK,GAAG;AACvB,2BAAO;AAAA,kBACT;AAAA,gBACF;AAAA,cACF,OAAO;AAEL,uBAAO,EAAE,OAAO,SAAS,KAAK,GAAG,MAAM;AACrC,sBAAI,QAAQ,KAAK;AACjB,sBAAI,OAAO;AACT,wBAAI,CAAC,OAAO,MAAM,CAAC,CAAC,GAAG;AACrB,6BAAO;AAAA,oBACT;AAAA,kBACF;AAAA,gBACF;AAAA,cACF;AAAA,YACF,OAAO;AACL,qBAAO;AAAA,YACT;AAEA,mBAAO;AAAA,UACT;AACE,mBAAO;AAAA,QACX;AAAA,MACF;AAEA,eAAS,SAAS,UAAU,WAAW;AAErC,YAAI,aAAa,UAAU;AACzB,iBAAO;AAAA,QACT;AAGA,YAAI,CAAC,WAAW;AACd,iBAAO;AAAA,QACT;AAGA,YAAI,UAAU,eAAe,MAAM,UAAU;AAC3C,iBAAO;AAAA,QACT;AAGA,YAAI,OAAO,WAAW,cAAc,qBAAqB,QAAQ;AAC/D,iBAAO;AAAA,QACT;AAEA,eAAO;AAAA,MACT;AAGA,eAAS,YAAY,WAAW;AAC9B,YAAI,WAAW,OAAO;AACtB,YAAI,MAAM,QAAQ,SAAS,GAAG;AAC5B,iBAAO;AAAA,QACT;AACA,YAAI,qBAAqB,QAAQ;AAI/B,iBAAO;AAAA,QACT;AACA,YAAI,SAAS,UAAU,SAAS,GAAG;AACjC,iBAAO;AAAA,QACT;AACA,eAAO;AAAA,MACT;AAIA,eAAS,eAAe,WAAW;AACjC,YAAI,OAAO,cAAc,eAAe,cAAc,MAAM;AAC1D,iBAAO,KAAK;AAAA,QACd;AACA,YAAI,WAAW,YAAY,SAAS;AACpC,YAAI,aAAa,UAAU;AACzB,cAAI,qBAAqB,MAAM;AAC7B,mBAAO;AAAA,UACT,WAAW,qBAAqB,QAAQ;AACtC,mBAAO;AAAA,UACT;AAAA,QACF;AACA,eAAO;AAAA,MACT;AAIA,eAAS,yBAAyB,OAAO;AACvC,YAAI,OAAO,eAAe,KAAK;AAC/B,gBAAQ,MAAM;AAAA,UACZ,KAAK;AAAA,UACL,KAAK;AACH,mBAAO,QAAQ;AAAA,UACjB,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AACH,mBAAO,OAAO;AAAA,UAChB;AACE,mBAAO;AAAA,QACX;AAAA,MACF;AAGA,eAAS,aAAa,WAAW;AAC/B,YAAI,CAAC,UAAU,eAAe,CAAC,UAAU,YAAY,MAAM;AACzD,iBAAO;AAAA,QACT;AACA,eAAO,UAAU,YAAY;AAAA,MAC/B;AAEA,qBAAe,iBAAiB;AAChC,qBAAe,oBAAoB,eAAe;AAClD,qBAAe,YAAY;AAE3B,aAAO;AAAA,IACT;AAAA;AAAA;;;ACjmBA;AAAA;AAAA;AASA,QAAI,uBAAuB;AAE3B,aAAS,gBAAgB;AAAA,IAAC;AAC1B,aAAS,yBAAyB;AAAA,IAAC;AACnC,2BAAuB,oBAAoB;AAE3C,WAAO,UAAU,WAAW;AAC1B,eAAS,KAAK,OAAO,UAAU,eAAe,UAAU,cAAc,QAAQ;AAC5E,YAAI,WAAW,sBAAsB;AAEnC;AAAA,QACF;AACA,YAAI,MAAM,IAAI;AAAA,UACZ;AAAA,QAGF;AACA,YAAI,OAAO;AACX,cAAM;AAAA,MACR;AAAC;AACD,WAAK,aAAa;AAClB,eAAS,UAAU;AACjB,eAAO;AAAA,MACT;AAAC;AAGD,UAAI,iBAAiB;AAAA,QACnB,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QAER,KAAK;AAAA,QACL,SAAS;AAAA,QACT,SAAS;AAAA,QACT,aAAa;AAAA,QACb,YAAY;AAAA,QACZ,MAAM;AAAA,QACN,UAAU;AAAA,QACV,OAAO;AAAA,QACP,WAAW;AAAA,QACX,OAAO;AAAA,QACP,OAAO;AAAA,QAEP,gBAAgB;AAAA,QAChB,mBAAmB;AAAA,MACrB;AAEA,qBAAe,YAAY;AAE3B,aAAO;AAAA,IACT;AAAA;AAAA;;;AChEA;AAAA;AAAA;AAOA,QAAI,QAAQ,IAAI,aAAa,cAAc;AACrC,gBAAU;AAIV,4BAAsB;AAC1B,aAAO,UAAU,kCAAqC,QAAQ,WAAW,mBAAmB;AAAA,IAC9F,OAAO;AAGL,aAAO,UAAU,mCAAsC;AAAA,IACzD;AAVM;AAIA;AAAA;AAAA;;;ACZN;AAAA;AAAA;AAAA;AAAA;AACA,SAAS,wBAAwB,SAAS;AACtC,QAAM,SAAS,CAAC,GAAG,QAAQ,MAAM;AACjC,QAAM,UAAU,OAAO,MAAM;AAC7B,MAAI,YAAY,QAAW;AACvB,WAAO,gBAAgB;AAAA,EAC3B;AACA,SAAO;AAAA,IACH,IAAI,KAAK,cAAc,SAAS;AAAA,MAC5B,MAAM,MAAM,QAAQ,QAAQ;AAAA,IAChC,GAAG;AACC,aAAO,QAAQ,IAAI,KAAK,cAAc,MAAM,EAAE,MAAM,MAAM;AACtD,eAAO,wBAAwB,EAAE,OAAO,CAAC,EAAE,IAAI,KAAK,cAAc,MAAM;AAAA,MAC5E,CAAC;AAAA,IACL;AAAA,IACA,IAAI,KAAK,OAAO;AACZ,aAAO,QAAQ,IAAI,KAAK,KAAK,EAAE,MAAM,MAAM;AACvC,eAAO,wBAAwB,EAAE,OAAO,CAAC,EAAE,IAAI,KAAK,KAAK;AAAA,MAC7D,CAAC;AAAA,IACL;AAAA,IACA,OAAO,KAAK;AACR,aAAO,QAAQ,OAAO,GAAG,EAAE,MAAM,MAAM;AACnC,eAAO,wBAAwB,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG;AAAA,MACzD,CAAC;AAAA,IACL;AAAA,IACA,QAAQ;AACJ,aAAO,QAAQ,MAAM,EAAE,MAAM,MAAM;AAC/B,eAAO,wBAAwB,EAAE,OAAO,CAAC,EAAE,MAAM;AAAA,MACrD,CAAC;AAAA,IACL;AAAA,EACJ;AACJ;AAEA,SAAS,kBAAkB;AACvB,SAAO;AAAA,IACH,IAAI,MAAM,cAAc,SAAS;AAAA,MAC7B,MAAM,MAAM,QAAQ,QAAQ;AAAA,IAChC,GAAG;AACC,YAAM,QAAQ,aAAa;AAC3B,aAAO,MACF,KAAK,YAAU,QAAQ,IAAI,CAAC,QAAQ,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,EACzD,KAAK,CAAC,CAAC,MAAM,MAAM,MAAM;AAAA,IAClC;AAAA,IACA,IAAI,MAAM,OAAO;AACb,aAAO,QAAQ,QAAQ,KAAK;AAAA,IAChC;AAAA,IACA,OAAO,MAAM;AACT,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAAA,IACA,QAAQ;AACJ,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAAA,EACJ;AACJ;AArDA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AAAA,SAAS,oBAAoB,UAAU,EAAE,cAAc,KAAK,GAAG;AAE3D,MAAI,QAAQ,CAAC;AACb,SAAO;AAAA,IACH,IAAI,KAAK,cAAc,SAAS;AAAA,MAC5B,MAAM,MAAM,QAAQ,QAAQ;AAAA,IAChC,GAAG;AACC,YAAM,cAAc,KAAK,UAAU,GAAG;AACtC,UAAI,eAAe,OAAO;AACtB,eAAO,QAAQ,QAAQ,QAAQ,eAAe,KAAK,MAAM,MAAM,WAAW,CAAC,IAAI,MAAM,WAAW,CAAC;AAAA,MACrG;AACA,YAAM,UAAU,aAAa;AAC7B,YAAM,OAAQ,UAAU,OAAO,SAAU,MAAM,QAAQ,QAAQ;AAC/D,aAAO,QAAQ,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,EAAE,KAAK,MAAM,OAAO;AAAA,IAClE;AAAA,IACA,IAAI,KAAK,OAAO;AAEZ,YAAM,KAAK,UAAU,GAAG,CAAC,IAAI,QAAQ,eAAe,KAAK,UAAU,KAAK,IAAI;AAC5E,aAAO,QAAQ,QAAQ,KAAK;AAAA,IAChC;AAAA,IACA,OAAO,KAAK;AAER,aAAO,MAAM,KAAK,UAAU,GAAG,CAAC;AAChC,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAAA,IACA,QAAQ;AACJ,cAAQ,CAAC;AACT,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAAA,EACJ;AACJ;AA9BA;AAAA;AAAA;AAAA;AAAA;;;ACAA,SAAS,WAAW,UAAU,OAAO,QAAQ;AACzC,QAAM,cAAc;AAAA,IAChB,qBAAqB;AAAA,IACrB,4BAA4B;AAAA,EAChC;AACA,SAAO;AAAA,IACH,UAAU;AACN,aAAO,aAAa,SAAS,gBAAgB,cAAc,CAAC;AAAA,IAChE;AAAA,IACA,kBAAkB;AACd,aAAO,aAAa,SAAS,wBAAwB,cAAc,CAAC;AAAA,IACxE;AAAA,EACJ;AACJ;AAwCA,SAAS,WAAW,MAAM,SAAS;AAC/B,MAAI,CAAC,SAAS;AACV,WAAO;AAAA,EACX;AACA,SAAO,KAAK,OAAO,EAAE,QAAQ,SAAO;AAEhC,SAAK,GAAG,IAAI,QAAQ,GAAG,EAAE,IAAI;AAAA,EACjC,CAAC;AACD,SAAO;AACX;AACA,SAAS,OAAO,WAAW,MAAM;AAE7B,MAAI,IAAI;AACR,SAAO,OAAO,QAAQ,OAAO,MAAM,mBAAmB,KAAK,GAAG,CAAC,CAAC;AACpE;AAnEA,IA6EM;AA7EN;AAAA;AAAA;AA6EA,IAAM,WAAW;AAAA;AAAA;AAAA;AAAA,MAIb,uBAAuB;AAAA;AAAA;AAAA;AAAA,MAIvB,eAAe;AAAA,IACnB;AAAA;AAAA;;;ACtFA;AAAA;AAAA;AAAA;AAAA,IAAM;AAAN;AAAA;AAAA;AAAA,IAAM,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,KAAK;AAAA,MACL,MAAM;AAAA,MACN,KAAK;AAAA,IACT;AAAA;AAAA;;;ACLA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,SAAS,2BAA2B,gBAAgB,SAAS;AACzD,QAAM,UAAU,kBAAkB,CAAC;AACnC,QAAM,OAAO,QAAQ,QAAQ,CAAC;AAC9B,SAAO,KAAK,OAAO,EAAE,QAAQ,SAAO;AAChC,QAAI,CAAC,WAAW,WAAW,mBAAmB,QAAQ,WAAW,EAAE,QAAQ,GAAG,MAAM,IAAI;AACpF,WAAK,GAAG,IAAI,QAAQ,GAAG;AAAA,IAC3B;AAAA,EACJ,CAAC;AACD,SAAO;AAAA,IACH,MAAM,OAAO,QAAQ,IAAI,EAAE,SAAS,IAAI,OAAO;AAAA,IAC/C,SAAS,QAAQ,WAAW;AAAA,IAC5B,SAAS,QAAQ,WAAW,CAAC;AAAA,IAC7B,iBAAiB,QAAQ,mBAAmB,CAAC;AAAA,IAC7C,WAAW,QAAQ;AAAA,EACvB;AACJ;AA0BA,SAAS,mBAAmB,MAAM,SAAS,eAAe,IAAI;AAC1D,SAAO;AAAA,IACH,GAAG;AAAA,IACH;AAAA,IACA,YAAY,KAAK,IAAI;AAAA,EACzB;AACJ;AACA,SAAS,iBAAiB,MAAM;AAC5B,SAAO,KAAK,WAAW,eAAe,MAAM,KAAK,IAAI,IAAI,KAAK,aAAa;AAC/E;AACA,SAAS,wBAAwB,MAAM;AACnC,SAAQ,KAAK,WAAW,eAAe,aAAa,KAAK,IAAI,IAAI,KAAK,cAAc;AACxF;AAEA,SAAS,oBAAoB,SAAS;AAClC,MAAI,OAAO,YAAY,UAAU;AAC7B,WAAO;AAAA,MACH,UAAU;AAAA,MACV,KAAK;AAAA,MACL,QAAQ,SAAS;AAAA,IACrB;AAAA,EACJ;AACA,SAAO;AAAA,IACH,UAAU,QAAQ,YAAY;AAAA,IAC9B,KAAK,QAAQ;AAAA,IACb,QAAQ,QAAQ,UAAU,SAAS;AAAA,EACvC;AACJ;AAEA,SAAS,uBAAuB,YAAY,gBAAgB;AACxD,SAAO,QAAQ,IAAI,eAAe,IAAI,mBAAiB;AACnD,WAAO,WAAW,IAAI,eAAe,MAAM;AACvC,aAAO,QAAQ,QAAQ,mBAAmB,aAAa,CAAC;AAAA,IAC5D,CAAC;AAAA,EACL,CAAC,CAAC,EAAE,KAAK,mBAAiB;AACtB,UAAM,UAAU,cAAc,OAAO,UAAQ,iBAAiB,IAAI,CAAC;AACnE,UAAM,iBAAiB,cAAc,OAAO,UAAQ,wBAAwB,IAAI,CAAC;AAIjF,UAAM,iBAAiB,CAAC,GAAG,SAAS,GAAG,cAAc;AACrD,UAAM,0BAA0B,eAAe,SAAS,IAClD,eAAe,IAAI,UAAQ,oBAAoB,IAAI,CAAC,IACpD;AACN,WAAO;AAAA,MACH,WAAW,eAAe,aAAa;AAYnC,cAAM,oBAAoB,eAAe,WAAW,KAAK,kBAAkB,IACrE,IACA,eAAe,SAAS,IAAI;AAClC,eAAO,oBAAoB;AAAA,MAC/B;AAAA,MACA,gBAAgB;AAAA,IACpB;AAAA,EACJ,CAAC;AACL;AAuBA,SAAS,iBAAiB,aAAa,gBAAgB,SAAS,gBAAgB;AAC5E,QAAM,aAAa,CAAC;AAIpB,QAAM,OAAO,cAAc,SAAS,cAAc;AAClD,QAAM,UAAU,iBAAiB,aAAa,cAAc;AAC5D,QAAM,SAAS,QAAQ;AAEvB,QAAM,sBAAsB,QAAQ,WAAW,WAAW,MACpD,CAAC,IACD;AAAA,IACE,GAAG,QAAQ;AAAA,IACX,GAAG,eAAe;AAAA,EACtB;AACJ,QAAM,kBAAkB;AAAA,IACpB,mBAAmB,YAAY,UAAU;AAAA,IACzC,GAAG,YAAY;AAAA,IACf,GAAG;AAAA,IACH,GAAG,eAAe;AAAA,EACtB;AACA,MAAI,gBAAgB;AACpB,QAAM,QAAQ,CAAC,OACf,eAAe;AAIX,UAAM,OAAO,MAAM,IAAI;AACvB,QAAI,SAAS,QAAW;AACpB,YAAM,iBAAiB,6BAA6B,UAAU,CAAC;AAAA,IACnE;AACA,UAAM,UAAU;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA,KAAK,aAAa,MAAM,QAAQ,MAAM,eAAe;AAAA,MACrD,gBAAgB,WAAW,eAAe,YAAY,SAAS,OAAO;AAAA,MACtE,iBAAiB,WAAW,eAAe,eAAe,OAAO;AAAA,IACrE;AAMA,UAAM,mBAAmB,CAAC,aAAa;AACnC,YAAM,aAAa;AAAA,QACf,SAAS;AAAA,QACT;AAAA,QACA;AAAA,QACA,WAAW,MAAM;AAAA,MACrB;AAEA,iBAAW,KAAK,UAAU;AAC1B,aAAO;AAAA,IACX;AACA,UAAM,YAAY;AAAA,MACd,WAAW,cAAY,mBAAmB,QAAQ;AAAA,MAClD,QAAQ,UAAU;AACd,cAAM,aAAa,iBAAiB,QAAQ;AAK5C,YAAI,SAAS,YAAY;AACrB;AAAA,QACJ;AACA,eAAO,QAAQ,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAMf,YAAY,OAAO,KAAK,qBAAqB,6BAA6B,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAMrF,YAAY,WAAW,IAAI,MAAM,mBAAmB,MAAM,SAAS,aAAa,eAAe,YAAY,eAAe,IAAI,CAAC;AAAA,QACnI,CAAC,EAAE,KAAK,MAAM,MAAM,OAAO,UAAU,CAAC;AAAA,MAC1C;AAAA,MACA,OAAO,UAAU;AACb,yBAAiB,QAAQ;AACzB,cAAM,mBAAmB,UAAU,6BAA6B,UAAU,CAAC;AAAA,MAC/E;AAAA,IACJ;AACA,WAAO,YAAY,UAAU,KAAK,OAAO,EAAE,KAAK,cAAY;AACxD,aAAO,cAAc,UAAU,SAAS;AAAA,IAC5C,CAAC;AAAA,EACL;AASA,SAAO,uBAAuB,YAAY,YAAY,cAAc,EAAE,KAAK,aAAW;AAClF,WAAO,MAAM,CAAC,GAAG,QAAQ,cAAc,EAAE,QAAQ,GAAG,QAAQ,UAAU;AAAA,EAC1E,CAAC;AACL;AAEA,SAAS,kBAAkB,SAAS;AAChC,QAAM,EAAE,YAAY,QAAQ,WAAW,eAAe,gBAAgB,UAAU,WAAW,OAAO,iBAAiB,QAAS,IAAI;AAChI,QAAM,cAAc;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO,MAAM,IAAI,UAAQ,oBAAoB,IAAI,CAAC;AAAA,IAClD,KAAK,SAAS,gBAAgB;AAM1B,YAAM,uBAAuB,2BAA2B,gBAAgB,YAAY,SAAS,IAAI;AACjG,YAAM,yBAAyB,MAAM;AAMjC,eAAO,iBAAiB,aAAa,YAAY,MAAM,OAAO,WAAS,KAAK,SAAS,SAAS,UAAU,CAAC,GAAG,SAAS,oBAAoB;AAAA,MAC7I;AAMA,YAAM,YAAY,qBAAqB,cAAc,SAC/C,qBAAqB,YACrB,QAAQ;AAKd,UAAI,cAAc,MAAM;AACpB,eAAO,uBAAuB;AAAA,MAClC;AAMA,YAAM,MAAM;AAAA,QACR;AAAA,QACA;AAAA,QACA,aAAa;AAAA,UACT,iBAAiB,YAAY;AAAA,UAC7B,SAAS,YAAY;AAAA,QACzB;AAAA,MACJ;AAKA,aAAO,YAAY,eAAe,IAAI,KAAK,MAAM;AAK7C,eAAO,YAAY,cAAc,IAAI,KAAK,MAAM;AAC5C,iBAAQ,YAAY,cAMf,IAAI,KAAK,uBAAuB,CAAC,EACjC,KAAK,cAAY,QAAQ,IAAI,CAAC,YAAY,cAAc,OAAO,GAAG,GAAG,QAAQ,CAAC,GAAG,SAAO,QAAQ,IAAI,CAAC,YAAY,cAAc,OAAO,GAAG,GAAG,QAAQ,OAAO,GAAG,CAAC,CAAC,CAAC,EACjK,KAAK,CAAC,CAAC,GAAG,QAAQ,MAAM,QAAQ;AAAA,QACzC,CAAC;AAAA,MACL,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAMC,MAAM,cAAY,YAAY,eAAe,IAAI,KAAK,QAAQ;AAAA,MAClE,CAAC;AAAA,IACL;AAAA,IACA,MAAM,SAAS,gBAAgB;AAK3B,aAAO,iBAAiB,aAAa,YAAY,MAAM,OAAO,WAAS,KAAK,SAAS,SAAS,WAAW,CAAC,GAAG,SAAS,2BAA2B,gBAAgB,YAAY,SAAS,KAAK,CAAC;AAAA,IAChM;AAAA,EACJ;AACA,SAAO;AACX;AAEA,SAAS,gBAAgBC,UAAS;AAC9B,QAAM,YAAY;AAAA,IACd,OAAO,2BAA2BA,QAAO;AAAA,IACzC,IAAI,SAAS;AACT,YAAM,iBAAiB,KAAK,QAAQ,OAAO,GAAG,QAAQ,YAAY,SAAY,KAAK,QAAQ,OAAO,MAAM,EAAE;AAC1G,UAAI,UAAU,MAAM,QAAQ,cAAc,MAAM,IAAI;AAEhD,kBAAU,QAAQ,GAAG,UAAU,KAAK,GAAG,cAAc;AAAA,MACzD;AACA,aAAO;AAAA,IACX;AAAA,EACJ;AACA,SAAO;AACX;AAEA,SAAS,mBAAmB,UAAU;AAElC,MAAI;AACA,WAAO,KAAK,MAAM,SAAS,OAAO;AAAA,EACtC,SACO,GAAG;AACN,UAAM,2BAA2B,EAAE,SAAS,QAAQ;AAAA,EACxD;AACJ;AACA,SAAS,mBAAmB,EAAE,SAAS,OAAO,GAAG,YAAY;AAEzD,MAAI,UAAU;AAEd,MAAI;AACA,cAAU,KAAK,MAAM,OAAO,EAAE;AAAA,EAClC,SACO,GAAG;AAAA,EAEV;AACA,SAAO,eAAe,SAAS,QAAQ,UAAU;AACrD;AAGA,SAASC,QAAO,WAAW,MAAM;AAE7B,MAAI,IAAI;AACR,SAAO,OAAO,QAAQ,OAAO,MAAM,mBAAmB,KAAK,GAAG,CAAC,CAAC;AACpE;AAEA,SAAS,aAAa,MAAM,MAAM,iBAAiB;AAC/C,QAAM,0BAA0B,yBAAyB,eAAe;AAExE,MAAI,MAAM,GAAG,KAAK,QAAQ,MAAM,KAAK,GAAG,IAAI,KAAK,OAAO,CAAC,MAAM,MAAM,KAAK,OAAO,CAAC,IAAI,IAAI;AAC1F,MAAI,wBAAwB,QAAQ;AAChC,WAAO,IAAI,uBAAuB;AAAA,EACtC;AACA,SAAO;AACX;AACA,SAAS,yBAAyB,YAAY;AAC1C,QAAM,kBAAkB,CAAC,UAAU,OAAO,UAAU,SAAS,KAAK,KAAK,MAAM,qBACzE,OAAO,UAAU,SAAS,KAAK,KAAK,MAAM;AAC9C,SAAO,OAAO,KAAK,UAAU,EACxB,IAAI,SAAOA,QAAO,SAAS,KAAK,gBAAgB,WAAW,GAAG,CAAC,IAAI,KAAK,UAAU,WAAW,GAAG,CAAC,IAAI,WAAW,GAAG,CAAC,CAAC,EACrH,KAAK,GAAG;AACjB;AACA,SAAS,cAAc,SAAS,gBAAgB;AAC5C,MAAI,QAAQ,WAAW,WAAW,OAC7B,QAAQ,SAAS,UAAa,eAAe,SAAS,QAAY;AACnE,WAAO;AAAA,EACX;AACA,QAAM,OAAO,MAAM,QAAQ,QAAQ,IAAI,IACjC,QAAQ,OACR,EAAE,GAAG,QAAQ,MAAM,GAAG,eAAe,KAAK;AAChD,SAAO,KAAK,UAAU,IAAI;AAC9B;AACA,SAAS,iBAAiB,aAAa,gBAAgB;AACnD,QAAM,UAAU;AAAA,IACZ,GAAG,YAAY;AAAA,IACf,GAAG,eAAe;AAAA,EACtB;AACA,QAAM,oBAAoB,CAAC;AAC3B,SAAO,KAAK,OAAO,EAAE,QAAQ,YAAU;AACnC,UAAM,QAAQ,QAAQ,MAAM;AAG5B,sBAAkB,OAAO,YAAY,CAAC,IAAI;AAAA,EAC9C,CAAC;AACD,SAAO;AACX;AAEA,SAAS,6BAA6B,YAAY;AAC9C,SAAO,WAAW,IAAI,gBAAc,6BAA6B,UAAU,CAAC;AAChF;AACA,SAAS,6BAA6B,YAAY;AAC9C,QAAM,kBAAkB,WAAW,QAAQ,QAAQ,mBAAmB,IAChE,EAAE,qBAAqB,QAAQ,IAC/B,CAAC;AACP,SAAO;AAAA,IACH,GAAG;AAAA,IACH,SAAS;AAAA,MACL,GAAG,WAAW;AAAA,MACd,SAAS;AAAA,QACL,GAAG,WAAW,QAAQ;AAAA,QACtB,GAAG;AAAA,MACP;AAAA,IACJ;AAAA,EACJ;AACJ;AAEA,SAAS,eAAe,SAAS,QAAQ,uBAAuB;AAC5D,SAAO;AAAA,IACH,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACJ;AAEA,SAAS,2BAA2B,SAAS,UAAU;AACnD,SAAO;AAAA,IACH,MAAM;AAAA,IACN;AAAA,IACA;AAAA,EACJ;AACJ;AAEA,SAAS,iBAAiB,uBAAuB;AAC7C,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS;AAAA,IACT;AAAA,EACJ;AACJ;AAzcA,IAmBM,UAeA,gBAQA,kBAoEA,gBAGA,aAKA,WAGA;AAzHN;AAAA;AAAA;AAAA;AAmBA,IAAM,WAAW;AAAA;AAAA;AAAA;AAAA,MAIb,MAAM;AAAA;AAAA;AAAA;AAAA,MAIN,OAAO;AAAA;AAAA;AAAA;AAAA,MAIP,KAAK;AAAA,IACT;AAEA,IAAM,iBAAiB;AAAA,MACnB,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,WAAW;AAAA,IACf;AAIA,IAAM,mBAAmB,IAAI,KAAK;AAoElC,IAAM,iBAAiB,CAAC,EAAE,YAAY,OAAO,MAAM;AAC/C,aAAO,CAAC,cAAc,CAAC,CAAC,WAAW;AAAA,IACvC;AACA,IAAM,cAAc,CAAC,aAAa;AAC9B,YAAM,SAAS,SAAS;AACxB,YAAM,aAAa,SAAS;AAC5B,aAAQ,cAAc,eAAe,QAAQ,KAAM,CAAC,EAAE,SAAS,SAAS,KAAK,CAAC,EAAE,SAAS,SAAS;AAAA,IACtG;AACA,IAAM,YAAY,CAAC,EAAE,OAAO,MAAM;AAC9B,aAAO,CAAC,EAAE,SAAS,SAAS;AAAA,IAChC;AACA,IAAM,gBAAgB,CAAC,UAAU,aAAa;AAC1C,UAAI,YAAY,QAAQ,GAAG;AACvB,eAAO,SAAS,QAAQ,QAAQ;AAAA,MACpC;AACA,UAAI,UAAU,QAAQ,GAAG;AACrB,eAAO,SAAS,UAAU,QAAQ;AAAA,MACtC;AACA,aAAO,SAAS,OAAO,QAAQ;AAAA,IACnC;AAAA;AAAA;;;ACjIA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAIM,uBAoBA,WAUA,cASA,WASA,YASA;AA7DN;AAAA;AAAA;AAAA;AACA;AACA;AAEA,IAAM,wBAAwB,aAAW;AACrC,YAAM,SAAS,QAAQ,UAAU;AACjC,YAAM,OAAO,WAAW,SAAS,eAAe,QAAQ,OAAO,QAAQ,MAAM;AAC7E,YAAM,cAAc,kBAAkB;AAAA,QAClC,OAAO,CAAC,EAAE,KAAK,aAAa,MAAM,eAAe,CAAC;AAAA,QAClD,GAAG;AAAA,QACH,SAAS;AAAA,UACL,GAAG,KAAK,QAAQ;AAAA,UAChB,GAAG,EAAE,gBAAgB,mBAAmB;AAAA,UACxC,GAAG,QAAQ;AAAA,QACf;AAAA,QACA,iBAAiB;AAAA,UACb,GAAG,KAAK,gBAAgB;AAAA,UACxB,GAAG,QAAQ;AAAA,QACf;AAAA,MACJ,CAAC;AACD,YAAM,QAAQ,QAAQ;AACtB,aAAO,WAAW,EAAE,OAAO,YAAY,GAAG,QAAQ,OAAO;AAAA,IAC7D;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,eAAO,KAAK,YAAY,MAAM;AAAA,UAC1B,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAO,KAAK,YAAY,MAAM;AAAA,UAC1B,QAAQ,WAAW;AAAA,UACnB,MAAM,OAAO,gBAAgB,QAAQ;AAAA,QACzC,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM,OAAO,gBAAgB,QAAQ;AAAA,QACzC,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,aAAa,CAAC,SAAS;AACzB,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,aAAa,CAAC,SAAS;AACzB,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAO,KAAK,YAAY,MAAM;AAAA,UAC1B,QAAQ,WAAW;AAAA,UACnB,MAAM,OAAO,qBAAqB,QAAQ;AAAA,QAC9C,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAAA;AAAA;;;ACpEA;AAAA;AAAA,kBAAAC;AAAA,EAAA,kBAAAC;AAAA,EAAA,kBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA,gBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA,SAASD,YAAW,UAAU,OAAO,QAAQ;AACzC,QAAM,cAAc;AAAA,IAChB,qBAAqB;AAAA,IACrB,4BAA4B;AAAA,EAChC;AACA,SAAO;AAAA,IACH,UAAU;AACN,aAAO,aAAaF,UAAS,gBAAgB,cAAc,CAAC;AAAA,IAChE;AAAA,IACA,kBAAkB;AACd,aAAO,aAAaA,UAAS,wBAAwB,cAAc,CAAC;AAAA,IACxE;AAAA,EACJ;AACJ;AAEA,SAAS,uBAAuB,UAAU;AACtC,MAAI,eAAe;AACnB,QAAM,QAAQ,MAAM;AAChB;AACA,WAAO,IAAI,QAAQ,CAAC,YAAY;AAC5B,iBAAW,MAAM;AACb,gBAAQ,SAAS,KAAK,CAAC;AAAA,MAC3B,GAAG,KAAK,IAAI,MAAM,cAAc,GAAI,CAAC;AAAA,IACzC,CAAC;AAAA,EACL;AACA,SAAO,SAAS,KAAK;AACzB;AAEA,SAAS,sBAAsB,SAAS,OAAO,CAAC,WAAW,oBAAoB;AAC3E,SAAO,QAAQ,QAAQ;AAC3B,GAAG;AAEC,SAAO,OAAO,OAAO,SAAS;AAAA,IAC1B,KAAK,gBAAgB;AACjB,aAAO,sBAAsB,QACxB,KAAK,cAAY,QAAQ,IAAI,CAAC,KAAK,UAAU,cAAc,GAAG,QAAQ,CAAC,CAAC,EACxE,KAAK,oBAAkB,eAAe,CAAC,CAAC,CAAC;AAAA,IAClD;AAAA,EACJ,CAAC;AACL;AAGA,SAAS,QAAQ,OAAO;AACpB,MAAI,IAAI,MAAM,SAAS;AAEvB,OAAK,GAAG,IAAI,GAAG,KAAK;AAChB,UAAM,IAAI,KAAK,MAAM,KAAK,OAAO,KAAK,IAAI,EAAE;AAC5C,UAAM,IAAI,MAAM,CAAC;AACjB,UAAM,CAAC,IAAI,MAAM,CAAC;AAClB,UAAM,CAAC,IAAI;AAAA,EACf;AACA,SAAO;AACX;AACA,SAASC,YAAW,MAAM,SAAS;AAC/B,MAAI,CAAC,SAAS;AACV,WAAO;AAAA,EACX;AACA,SAAO,KAAK,OAAO,EAAE,QAAQ,SAAO;AAEhC,SAAK,GAAG,IAAI,QAAQ,GAAG,EAAE,IAAI;AAAA,EACjC,CAAC;AACD,SAAO;AACX;AACA,SAASE,QAAO,WAAW,MAAM;AAE7B,MAAI,IAAI;AACR,SAAO,OAAO,QAAQ,OAAO,MAAM,mBAAmB,KAAK,GAAG,CAAC,CAAC;AACpE;AAnEA,IAqEM,SAEA,SAMAH;AA7EN,IAAAI,0BAAA;AAAA;AAAA;AAqEA,IAAM,UAAU;AAEhB,IAAM,UAAU,CAAC,SAAS;AACtB,aAAO,MAAM;AACT,eAAO,KAAK,YAAY,UAAU,QAAQ;AAAA,MAC9C;AAAA,IACJ;AAEA,IAAMJ,YAAW;AAAA;AAAA;AAAA;AAAA,MAIb,uBAAuB;AAAA;AAAA;AAAA;AAAA,MAIvB,eAAe;AAAA,IACnB;AAAA;AAAA;;;ACtFA,SAASK,YAAW,UAAU,OAAO,QAAQ;AACzC,QAAM,cAAc;AAAA,IAChB,qBAAqB;AAAA,IACrB,4BAA4B;AAAA,EAChC;AACA,SAAO;AAAA,IACH,UAAU;AACN,aAAO,aAAaC,UAAS,gBAAgB,cAAc,CAAC;AAAA,IAChE;AAAA,IACA,kBAAkB;AACd,aAAO,aAAaA,UAAS,wBAAwB,cAAc,CAAC;AAAA,IACxE;AAAA,EACJ;AACJ;AAwCA,SAASC,YAAW,MAAM,SAAS;AAC/B,MAAI,CAAC,SAAS;AACV,WAAO;AAAA,EACX;AACA,SAAO,KAAK,OAAO,EAAE,QAAQ,SAAO;AAEhC,SAAK,GAAG,IAAI,QAAQ,GAAG,EAAE,IAAI;AAAA,EACjC,CAAC;AACD,SAAO;AACX;AA9DA,IA6EMD;AA7EN,IAAAE,0BAAA;AAAA;AAAA;AA6EA,IAAMF,YAAW;AAAA;AAAA;AAAA;AAAA,MAIb,uBAAuB;AAAA;AAAA;AAAA;AAAA,MAIvB,eAAe;AAAA,IACnB;AAAA;AAAA;;;ACtFA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAIM,6BAmBA,4BASA;AAhCN;AAAA;AAAA;AAAA,IAAAG;AACA;AACA;AAEA,IAAM,8BAA8B,aAAW;AAC3C,YAAM,SAAS,QAAQ,UAAU;AACjC,YAAM,OAAOC,YAAWC,UAAS,eAAe,QAAQ,OAAO,QAAQ,MAAM;AAC7E,YAAM,cAAc,kBAAkB;AAAA,QAClC,OAAO,CAAC,EAAE,KAAK,mBAAmB,MAAM,eAAe,CAAC;AAAA,QACxD,GAAG;AAAA,QACH,SAAS;AAAA,UACL,GAAG,KAAK,QAAQ;AAAA,UAChB,GAAG,EAAE,gBAAgB,mBAAmB;AAAA,UACxC,GAAG,QAAQ;AAAA,QACf;AAAA,QACA,iBAAiB;AAAA,UACb,GAAG,KAAK,gBAAgB;AAAA,UACxB,GAAG,QAAQ;AAAA,QACf;AAAA,MACJ,CAAC;AACD,aAAOC,YAAW,EAAE,OAAO,QAAQ,OAAO,YAAY,GAAG,QAAQ,OAAO;AAAA,IAC5E;AAEA,IAAM,6BAA6B,CAAC,SAAS;AACzC,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,6BAA6B,CAAC,SAAS;AACzC,aAAO,CAAC,yBAAyB,mBAAmB;AAChD,eAAO,KAAK,YAAY,MAAM;AAAA,UAC1B,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAAA;AAAA;;;ACxCA,SAASC,YAAW,UAAU,OAAO,QAAQ;AACzC,QAAM,cAAc;AAAA,IAChB,qBAAqB;AAAA,IACrB,4BAA4B;AAAA,EAChC;AACA,SAAO;AAAA,IACH,UAAU;AACN,aAAO,aAAaC,UAAS,gBAAgB,cAAc,CAAC;AAAA,IAChE;AAAA,IACA,kBAAkB;AACd,aAAO,aAAaA,UAAS,wBAAwB,cAAc,CAAC;AAAA,IACxE;AAAA,EACJ;AACJ;AAEA,SAASC,wBAAuB,UAAU;AACtC,MAAI,eAAe;AACnB,QAAM,QAAQ,MAAM;AAChB;AACA,WAAO,IAAI,QAAQ,CAAC,YAAY;AAC5B,iBAAW,MAAM;AACb,gBAAQ,SAAS,KAAK,CAAC;AAAA,MAC3B,GAAG,KAAK,IAAI,MAAM,cAAc,GAAI,CAAC;AAAA,IACzC,CAAC;AAAA,EACL;AACA,SAAO,SAAS,KAAK;AACzB;AAEA,SAASC,uBAAsB,SAAS,OAAO,CAAC,WAAW,oBAAoB;AAC3E,SAAO,QAAQ,QAAQ;AAC3B,GAAG;AAEC,SAAO,OAAO,OAAO,SAAS;AAAA,IAC1B,KAAK,gBAAgB;AACjB,aAAOA,uBAAsB,QACxB,KAAK,cAAY,QAAQ,IAAI,CAAC,KAAK,UAAU,cAAc,GAAG,QAAQ,CAAC,CAAC,EACxE,KAAK,oBAAkB,eAAe,CAAC,CAAC,CAAC;AAAA,IAClD;AAAA,EACJ,CAAC;AACL;AAGA,SAASC,SAAQ,OAAO;AACpB,MAAI,IAAI,MAAM,SAAS;AAEvB,OAAK,GAAG,IAAI,GAAG,KAAK;AAChB,UAAM,IAAI,KAAK,MAAM,KAAK,OAAO,KAAK,IAAI,EAAE;AAC5C,UAAM,IAAI,MAAM,CAAC;AACjB,UAAM,CAAC,IAAI,MAAM,CAAC;AAClB,UAAM,CAAC,IAAI;AAAA,EACf;AACA,SAAO;AACX;AACA,SAASC,YAAW,MAAM,SAAS;AAC/B,MAAI,CAAC,SAAS;AACV,WAAO;AAAA,EACX;AACA,SAAO,KAAK,OAAO,EAAE,QAAQ,SAAO;AAEhC,SAAK,GAAG,IAAI,QAAQ,GAAG,EAAE,IAAI;AAAA,EACjC,CAAC;AACD,SAAO;AACX;AACA,SAASC,QAAO,WAAW,MAAM;AAE7B,MAAI,IAAI;AACR,SAAO,OAAO,QAAQ,OAAO,MAAM,mBAAmB,KAAK,GAAG,CAAC,CAAC;AACpE;AAnEA,IA6EML;AA7EN,IAAAM,0BAAA;AAAA;AAAA;AA6EA,IAAMN,YAAW;AAAA;AAAA;AAAA;AAAA,MAIb,uBAAuB;AAAA;AAAA;AAAA;AAAA,MAIvB,eAAe;AAAA,IACnB;AAAA;AAAA;;;ACtFA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,SAAS,kBAAkB;AAE3B,SAAS,uBAAuB,SAAS;AACrC,QAAM,SAAS,CAAC,SAAS;AACrB,WAAO,QAAQ,QAAQ,IAAI,EAAE,KAAK,cAAY;AAK1C,UAAI,QAAQ,UAAU,QAAW;AAC7B,gBAAQ,MAAM,SAAS,IAAI;AAAA,MAC/B;AAMA,UAAI,QAAQ,WAAW,QAAQ,GAAG;AAC9B,eAAO;AAAA,MACX;AAMA,UAAI,SAAS,QAAQ;AACjB,eAAO,OAAO;AAAA,UACV,QAAQ,SAAS;AAAA,QACrB,CAAC;AAAA,MACL;AACA,aAAO,OAAO;AAAA,QACV,OAAO,KAAK,QAAQ,KAAK;AAAA,MAC7B,CAAC;AAAA,IACL,CAAC;AAAA,EACL;AACA,SAAO,OAAO,CAAC,CAAC;AACpB;AAyCA,SAAS,6BAA6B;AAClC,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS;AAAA,EAKb;AACJ;AAEA,SAAS,4BAA4B;AACjC,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS;AAAA,EACb;AACJ;AAEA,SAAS,gCAAgC;AACrC,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS;AAAA,EACb;AACJ;AAvGA,IAyCM,oBAgEA,WAyBA,cAaA,eAaA,wBAaA,WAkBA,WASA,cASA,cASA,eASA,cAoBA,yBAcA,uBAUA,WASA,YASA,uBASA,SASA,mCAYA,eASA,WASA,oBAcA,WAWA,aASA,cASA,aASA,aASA,WAkBA,eAmBA,oBAYA,iBAmBA,8BAcA,cAYA,0BAcA,eAmBA,uBAcA,yBAaA,eAYA,uBAUA,cA6CA,aAUA,OAeA,eAcA,aAyBA,gBAyBA,cA2CA,cASA,YAcA,eAcA,UAUA,aASA,cAQA,eASA,YAcA,eAcA,QAaA,aAcA,YA8BA,WASA,mBAYA,YAoBA,SASA,aAYA,YASA,SASA,qBAWA,sBAUA,mBA8EA,iBASA,oBASA,YAWA,aAkBA,UAMA,WAkBA,aAMA,cAkBA,QAaA,sBAaA,aAYA,gBAYA,aAeA,UAUA,eAkBA,iBAUA,WAMA,cAKA;AA7wCN;AAAA;AAAA;AAAA,IAAAO;AACA;AACA;AAuCA,IAAM,qBAAqB,aAAW;AAClC,YAAM,QAAQ,QAAQ;AACtB,YAAM,OAAOC,YAAW,QAAQ,aAAa,SAAY,QAAQ,WAAWC,UAAS,eAAe,OAAO,QAAQ,MAAM;AACzH,YAAM,cAAc,kBAAkB;AAAA,QAClC,OAAO;AAAA,UACH,EAAE,KAAK,GAAG,KAAK,oBAAoB,QAAQ,SAAS,KAAK;AAAA,UACzD,EAAE,KAAK,GAAG,KAAK,gBAAgB,QAAQ,SAAS,MAAM;AAAA,QAC1D,EAAE,OAAOC,SAAQ;AAAA,UACb,EAAE,KAAK,GAAG,KAAK,oBAAoB;AAAA,UACnC,EAAE,KAAK,GAAG,KAAK,oBAAoB;AAAA,UACnC,EAAE,KAAK,GAAG,KAAK,oBAAoB;AAAA,QACvC,CAAC,CAAC;AAAA,QACF,GAAG;AAAA,QACH,SAAS;AAAA,UACL,GAAG,KAAK,QAAQ;AAAA,UAChB,GAAG,EAAE,gBAAgB,oCAAoC;AAAA,UACzD,GAAG,QAAQ;AAAA,QACf;AAAA,QACA,iBAAiB;AAAA,UACb,GAAG,KAAK,gBAAgB;AAAA,UACxB,GAAG,QAAQ;AAAA,QACf;AAAA,MACJ,CAAC;AACD,YAAM,OAAO;AAAA,QACT;AAAA,QACA;AAAA,QACA,gBAAgB,SAASC,UAAS;AAC9B,sBAAY,UAAU,IAAI,EAAE,SAAS,SAAAA,SAAQ,CAAC;AAAA,QAClD;AAAA,QACA,aAAa;AACT,iBAAO,QAAQ,IAAI;AAAA,YACf,YAAY,cAAc,MAAM;AAAA,YAChC,YAAY,eAAe,MAAM;AAAA,UACrC,CAAC,EAAE,KAAK,MAAM,MAAS;AAAA,QAC3B;AAAA,MACJ;AACA,aAAOC,YAAW,MAAM,QAAQ,OAAO;AAAA,IAC3C;AA2BA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,KAAK,mBAAmB;AAC5B,cAAM,EAAE,iBAAiB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC3D,cAAM,OAAO;AAAA,UACT;AAAA,UACA,GAAI,oBAAoB,SAAY,EAAE,gBAAgB,IAAI,CAAC;AAAA,QAC/D;AACA,cAAM,OAAO,CAAC,UAAU,uBAAuB;AAC3C,iBAAOC,wBAAuB,WAAS;AACnC,mBAAO,UAAU,IAAI,EAAE,SAAS,KAAK,kBAAkB,EAAE,MAAM,CAAC,aAAa;AACzE,kBAAI,SAAS,WAAW,KAAK;AACzB,sBAAM;AAAA,cACV;AACA,qBAAO,MAAM;AAAA,YACjB,CAAC;AAAA,UACL,CAAC;AAAA,QACL;AACA,eAAOC,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN;AAAA,QACJ,GAAG,OAAO,GAAG,IAAI;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,QAAQ,aAAa,mBAAmB;AAC5C,cAAM,uBAAuB,2BAA2B,cAAc;AAEtE,6BAAqB,gBAAgB,mBAAmB,IAAI;AAC5D,eAAO,KAAK,YAAY,MAAM;AAAA,UAC1B,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM,EAAE,SAAS,YAAY;AAAA,QACjC,GAAG,oBAAoB;AAAA,MAC3B;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,SAAS,aAAa,mBAAmB;AAC7C,eAAO,KAAK,YAAY,MAAM;AAAA,UAC1B,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM;AAAA,YACF,OAAO;AAAA,YACP,SAAS;AAAA,UACb;AAAA,QACJ,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,yBAAyB,CAAC,SAAS;AACrC,aAAO,CAAC,YAAY,mBAAmB;AACnC,eAAOA,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,4BAA4B,UAAU;AAAA,UACnD,MAAM;AAAA,YACF,gCAAgC;AAAA,YAChC,UAAU,EAAE,QAAQ,YAAY,MAAM,CAAC,EAAE;AAAA,UAC7C;AAAA,QACJ,GAAG,cAAc,GAAG,CAAC,UAAU,uBAAuB,YAAY,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAChH;AAAA,IACJ;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,MAAM,IAAI,mBAAmB;AACjC,cAAM,OAAO,CAAC,UAAU,uBAAuB;AAC3C,iBAAO,UAAU,IAAI,EAAE,MAAM;AAAA,YACzB,SAAS,EAAE,SAAS;AAAA,UACxB,CAAC,EAAE,SAAS,SAAS,QAAQ,kBAAkB;AAAA,QACnD;AACA,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,0BAA0B,IAAI;AAAA,UAC3C,MAAM;AAAA,YACF,WAAW;AAAA,YACX,aAAa;AAAA,UACjB;AAAA,QACJ,GAAG,cAAc,GAAG,IAAI;AAAA,MAC5B;AAAA,IACJ;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,MAAM,IAAI,mBAAmB;AACjC,eAAO,UAAU,IAAI,EAAE,MAAM,IAAI;AAAA,UAC7B,GAAG;AAAA,UACH,OAAO,CAAC,UAAU,KAAK;AAAA,QAC3B,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,MAAM,IAAI,mBAAmB;AACjC,eAAO,UAAU,IAAI,EAAE,MAAM,IAAI;AAAA,UAC7B,GAAG;AAAA,UACH,OAAO,CAAC,UAAU,QAAQ;AAAA,QAC9B,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,MAAM,IAAI,mBAAmB;AACjC,eAAO,UAAU,IAAI,EAAE,MAAM,IAAI;AAAA,UAC7B,GAAG;AAAA,UACH,OAAO,CAAC,UAAU,QAAQ;AAAA,QAC9B,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,SAAS,mBAAmB;AAChC,YAAI,QAAQ,WAAW,WAAW,KAAK;AACnC,iBAAO,KAAK,YAAY,KAAK,SAAS,cAAc;AAAA,QACxD;AACA,eAAO,KAAK,YAAY,MAAM,SAAS,cAAc;AAAA,MACzD;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,cAAM,OAAO,CAAC,GAAG,uBAAuB;AACpC,iBAAOF,wBAAuB,WAAS;AACnC,mBAAO,UAAU,IAAI,EAAE,QAAQ,kBAAkB,EAC5C,KAAK,KAAK,EACV,MAAM,CAAC,aAAa;AACrB,kBAAI,SAAS,WAAW,KAAK;AACzB,sBAAM;AAAA,cACV;AAAA,YACJ,CAAC;AAAA,UACL,CAAC;AAAA,QACL;AACA,eAAOC,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,aAAa,MAAM;AAAA,QACpC,GAAG,cAAc,GAAG,IAAI;AAAA,MAC5B;AAAA,IACJ;AAEA,IAAM,0BAA0B,CAAC,SAAS;AACtC,aAAO,CAAC,YAAY,WAAW,mBAAmB;AAC9C,cAAM,WAAW,UAAU,IAAI,eAAa;AAAA,UACxC,QAAQ;AAAA,UACR,MAAM,EAAE,SAAS;AAAA,QACrB,EAAE;AACF,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,4BAA4B,UAAU;AAAA,UACnD,MAAM,EAAE,gCAAgC,OAAO,SAAS;AAAA,QAC5D,GAAG,cAAc,GAAG,CAAC,UAAU,uBAAuB,YAAY,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAChH;AAAA,IACJ;AAEA,IAAM,wBAAwB,MAAM;AAChC,aAAO,CAAC,cAAc,iBAAiB;AACnC,cAAM,kBAAkB,yBAAyB,YAAY;AAC7D,cAAM,aAAa,WAAW,UAAU,YAAY,EAC/C,OAAO,eAAe,EACtB,OAAO,KAAK;AACjB,eAAO,OAAO,KAAK,aAAa,eAAe,EAAE,SAAS,QAAQ;AAAA,MACtE;AAAA,IACJ;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,aAAa,MAAM;AAAA,QACpC,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,aAAa,CAAC,SAAS;AACzB,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,aAAa,OAAO,SAAS,CAAC;AAAA,QAC/C,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,wBAAwB,CAAC,SAAS;AACpC,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,UAAU,CAAC,SAAS;AACtB,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,oCAAoC,MAAM;AAC5C,aAAO,CAAC,kBAAkB;AACtB,cAAM,gBAAgB,OAAO,KAAK,eAAe,QAAQ,EAAE,SAAS,OAAO;AAC3E,cAAM,QAAQ;AACd,cAAM,QAAQ,cAAc,MAAM,KAAK;AACvC,YAAI,UAAU,MAAM;AAChB,gBAAM,8BAA8B;AAAA,QACxC;AACA,eAAO,SAAS,MAAM,CAAC,GAAG,EAAE,IAAI,KAAK,OAAM,oBAAI,KAAK,GAAE,QAAQ,IAAI,GAAI;AAAA,MAC1E;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,yBAAyB,MAAM;AAAA,QAChD,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,qBAAqB,CAAC,SAAS;AACjC,aAAO,CAAC,mBAAmB;AACvB,cAAM,EAAE,kBAAkB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC5D,YAAI,qBAAqB,MAAM;AAE3B,kBAAQ,cAAc;AAAA,QAC1B;AACA,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,OAAO;AAAA,MACd;AAAA,IACJ;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,WAAW,UAAU,CAAC,MAAM;AAChC,cAAMC,eAAc;AAAA,UAChB,aAAa,KAAK;AAAA,UAClB,OAAO,KAAK;AAAA,UACZ;AAAA,QACJ;AACA,eAAOJ,YAAWI,cAAa,QAAQ,OAAO;AAAA,MAClD;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,MAAM,IAAI,mBAAmB;AACjC,cAAM,OAAO,CAAC,UAAU,uBAAuB;AAC3C,iBAAO,UAAU,IAAI,EAAE,MAAM;AAAA,YACzB,SAAS,EAAE,SAAS;AAAA,UACxB,CAAC,EAAE,SAAS,SAAS,QAAQ,kBAAkB;AAAA,QACnD;AACA,eAAOF,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,0BAA0B,IAAI;AAAA,UAC3C,MAAM;AAAA,YACF,WAAW;AAAA,YACX,aAAa;AAAA,UACjB;AAAA,QACJ,GAAG,cAAc,GAAG,IAAI;AAAA,MAC5B;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,UAAU,mBAAmB;AACjC,cAAM,OAAO,CAAC,UAAU,uBAAuB;AAC3C,iBAAO,QAAQ,IAAI,OAAO,KAAK,SAAS,MAAM,EAAE,IAAI,eAAa;AAC7D,mBAAO,UAAU,IAAI,EAAE,WAAW;AAAA,cAC9B,SAAS,EAAE,SAAS;AAAA,YACxB,CAAC,EAAE,SAAS,SAAS,OAAO,SAAS,GAAG,kBAAkB;AAAA,UAC9D,CAAC,CAAC;AAAA,QACN;AACA,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,QACJ,GAAG,cAAc,GAAG,IAAI;AAAA,MAC5B;AAAA,IACJ;AAEA,IAAM,qBAAqB,CAAC,SAAS;AACjC,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,QACJ,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,kBAAkB,CAAC,SAAS;AAC9B,aAAO,CAAC,SAAS,mBAAmB;AAChC,cAAM,WAAW,QAAQ,IAAI,WAAS;AAClC,iBAAO;AAAA,YACH,GAAG;AAAA,YACH,QAAQ,yBAAyB,MAAM,UAAU,CAAC,CAAC;AAAA,UACvD;AAAA,QACJ,CAAC;AACD,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,QACf,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,+BAA+B,CAAC,SAAS;AAC3C,aAAO,CAAC,SAAS,mBAAmB;AAChC,eAAO,QAAQ,IAAI,QAAQ,IAAI,WAAS;AACpC,gBAAM,EAAE,WAAW,YAAY,GAAG,OAAO,IAAI,MAAM;AACnD,iBAAO,UAAU,IAAI,EAAE,MAAM,WAAW;AAAA,YACpC,SAAS,EAAE,qBAAqB;AAAA,UACpC,CAAC,EAAE,qBAAqB,WAAW,YAAY;AAAA,YAC3C,GAAG;AAAA,YACH,GAAG;AAAA,UACP,CAAC;AAAA,QACL,CAAC,CAAC;AAAA,MACN;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,cAAM,uBAAuB,2BAA2B,cAAc;AAEtE,6BAAqB,gBAAgB,mBAAmB,IAAI;AAC5D,eAAO,KAAK,YAAY,MAAM;AAAA,UAC1B,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,oBAAoB;AAAA,MAC3B;AAAA,IACJ;AAEA,IAAM,2BAA2B,CAAC,SAAS;AACvC,aAAO,CAAC,YAAY,SAAS,mBAAmB;AAC5C,cAAM,WAAW,QAAQ,IAAI,YAAU;AAAA,UACnC,QAAQ;AAAA,UACR,MAAM;AAAA,QACV,EAAE;AACF,eAAOA,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,4BAA4B,UAAU;AAAA,UACnD,MAAM,EAAE,gCAAgC,MAAM,SAAS;AAAA,QAC3D,GAAG,cAAc,GAAG,CAAC,UAAU,uBAAuB,YAAY,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAChH;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,cAAM,OAAO,CAAC,GAAG,uBAAuB;AACpC,iBAAOF,wBAAuB,WAAS;AACnC,mBAAO,UAAU,IAAI,EAAE,QAAQ,kBAAkB,EAAE,MAAM,CAAC,aAAa;AACnE,kBAAI,SAAS,WAAW,KAAK;AACzB,sBAAM;AAAA,cACV;AACA,qBAAO,MAAM;AAAA,YACjB,CAAC;AAAA,UACL,CAAC;AAAA,QACL;AACA,eAAOC,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,qBAAqB,MAAM;AAAA,QAC5C,GAAG,cAAc,GAAG,IAAI;AAAA,MAC5B;AAAA,IACJ;AAEA,IAAM,wBAAwB,CAAC,SAAS;AACpC,aAAO,CAAC,YAAY,SAAS,mBAAmB;AAC5C,cAAM,WAAW,QAAQ,IAAI,YAAU;AAAA,UACnC,QAAQ;AAAA,UACR,MAAM;AAAA,QACV,EAAE;AACF,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,4BAA4B,UAAU;AAAA,UACnD,MAAM,EAAE,gCAAgC,OAAO,SAAS;AAAA,QAC5D,GAAG,cAAc,GAAG,CAAC,UAAU,uBAAuB,YAAY,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAChH;AAAA,IACJ;AAEA,IAAM,0BAA0B,CAAC,SAAS;AACtC,aAAO,CAAC,YAAY,OAAO,mBAAmB;AAC1C,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,6BAA6B,UAAU;AAAA,UACpD,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,QACf,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,OAAO,mBAAmB;AAC9B,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,QACJ,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,wBAAwB,CAAC,SAAS;AACpC,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM;AAAA,QACV,GAAG,cAAc,GAAG,CAAC,UAAU,uBAAuB,YAAY,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAChH;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,cAAM,gBAAgB,OAAO,OAAO,CAAC,GAAG,cAAc;AACtD,cAAM,EAAE,iBAAiB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC3D,cAAM,OAAO,kBAAkB,EAAE,gBAAgB,IAAI,CAAC;AACtD,cAAM,eAAe;AAAA,UACjB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACJ;AAEA,cAAM,aAAa,CAAC,sBAAsB;AACtC,iBAAO,OAAO,KAAK,aAAa,EAC3B,OAAO,CAAC,iBAAiB,aAAa,QAAQ,YAAY,MAAM,EAAE,EAClE,MAAM,kBAAgB;AAEvB,gBAAI,MAAM,QAAQ,kBAAkB,YAAY,CAAC,KAC7C,MAAM,QAAQ,cAAc,YAAY,CAAC,GAAG;AAC5C,oBAAM,yBAAyB,kBAAkB,YAAY;AAC7D,qBAAQ,uBAAuB,WAAW,cAAc,YAAY,EAAE,UAClE,uBAAuB,MAAM,CAAC,OAAO,UAAU,UAAU,cAAc,YAAY,EAAE,KAAK,CAAC;AAAA,YACnG,OACK;AACD,qBAAO,kBAAkB,YAAY,MAAM,cAAc,YAAY;AAAA,YACzE;AAAA,UACJ,CAAC;AAAA,QACL;AACA,cAAM,OAAO,CAAC,GAAG,uBAAuBD,wBAAuB,WAAS;AACpE,iBAAO,UAAU,IAAI,EAAE,QAAQ,kBAAkB,EAAE,KAAK,uBAAqB;AACzE,mBAAO,WAAW,iBAAiB,IAAI,QAAQ,QAAQ,IAAI,MAAM;AAAA,UACrE,CAAC;AAAA,QACL,CAAC;AACD,eAAOC,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,aAAa,MAAM;AAAA,UAChC;AAAA,QACJ,GAAG,OAAO,GAAG,IAAI;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,eAAOF,wBAAuB,WAAS;AACnC,iBAAO,WAAW,IAAI,EAAE,QAAQ,cAAc,EAAE,KAAK,cAAY;AAC7D,mBAAO,SAAS,WAAW,cAAc,MAAM,IAAI;AAAA,UACvD,CAAC;AAAA,QACL,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,QAAQ,CAAC,SAAS;AACpB,aAAO,CAAC,UAAU,mBAAmB;AACjC,cAAM,OAAO,CAAC,UAAU,uBAAuB;AAC3C,iBAAO,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB;AAAA,QAC7D;AACA,eAAOC,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,sBAAsB,KAAK,SAAS;AAAA,UACjD,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,QACJ,GAAG,cAAc,GAAG,IAAI;AAAA,MAC5B;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,mBAAmB;AACvB,eAAO,uBAAuB;AAAA,UAC1B,YAAY,cAAY,SAAS,WAAW;AAAA,UAC5C,GAAG;AAAA,UACH,SAAS,CAAC,SAAS,KAAK,YAAY,KAAK;AAAA,YACrC,QAAQ,WAAW;AAAA,YACnB,MAAMA,QAAO,uBAAuB,KAAK,SAAS;AAAA,YAClD;AAAA,UACJ,GAAG,cAAc;AAAA,QACrB,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,mBAAmB;AACvB,cAAM,UAAU;AAAA,UACZ,aAAa;AAAA,UACb,GAAG;AAAA,QACP;AACA,eAAO,uBAAuB;AAAA,UAC1B,YAAY,cAAY,SAAS,KAAK,SAAS,QAAQ;AAAA,UACvD,GAAG;AAAA,UACH,QAAQ,MAAM;AACV,mBAAO,YAAY,IAAI,EAAE,IAAI,EAAE,GAAG,SAAS,GAAG,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa;AACrE,qBAAO;AAAA,gBACH,GAAG;AAAA,gBACH,MAAM,SAAS,KAAK,IAAI,UAAQ;AAE5B,yBAAO,KAAK;AACZ,yBAAO;AAAA,gBACX,CAAC;AAAA,cACL;AAAA,YACJ,CAAC;AAAA,UACL;AAAA,QACJ,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,iBAAiB,CAAC,SAAS;AAC7B,aAAO,CAAC,mBAAmB;AACvB,cAAM,UAAU;AAAA,UACZ,aAAa;AAAA,UACb,GAAG;AAAA,QACP;AACA,eAAO,uBAAuB;AAAA,UAC1B,YAAY,cAAY,SAAS,KAAK,SAAS,QAAQ;AAAA,UACvD,GAAG;AAAA,UACH,QAAQ,MAAM;AACV,mBAAO,eAAe,IAAI,EAAE,IAAI,EAAE,GAAG,SAAS,GAAG,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa;AACxE,qBAAO;AAAA,gBACH,GAAG;AAAA,gBACH,MAAM,SAAS,KAAK,IAAI,aAAW;AAE/B,yBAAO,QAAQ;AACf,yBAAO;AAAA,gBACX,CAAC;AAAA,cACL;AAAA,YACJ,CAAC;AAAA,UACL;AAAA,QACJ,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,QAAQ,QAAQ,mBAAmB;AACvC,cAAM,EAAE,WAAW,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AACrD,cAAM,WAAW;AAAA,UACb,SAAS,CAAC;AAAA,UACV,WAAW,CAAC;AAAA,QAChB;AACA,cAAM,eAAe,CAAC,YAAY,MAAM;AAEpC,gBAAM,cAAc,CAAC;AAErB,cAAI;AAEJ,eAAK,QAAQ,WAAW,QAAQ,OAAO,QAAQ,SAAS;AAEpD,wBAAY,KAAK,OAAO,KAAK,CAAC;AAC9B,gBAAI,YAAY,YAAY,aAAa,MAAO;AAC5C;AAAA,YACJ;AAAA,UACJ;AACA,cAAI,YAAY,WAAW,GAAG;AAC1B,mBAAO,QAAQ,QAAQ,QAAQ;AAAA,UACnC;AACA,iBAAO,MAAM,IAAI,EAAE,YAAY,IAAI,CAAAE,UAAQ;AACvC,mBAAO;AAAA,cACH;AAAA,cACA,MAAAA;AAAA,YACJ;AAAA,UACJ,CAAC,GAAG,OAAO,EAAE,KAAK,SAAO;AACrB,qBAAS,YAAY,SAAS,UAAU,OAAO,IAAI,SAAS;AAC5D,qBAAS,QAAQ,KAAK,IAAI,MAAM;AAChC;AACA,mBAAO,aAAa,KAAK;AAAA,UAC7B,CAAC;AAAA,QACL;AACA,eAAOH,uBAAsB,aAAa,GAAG,CAAC,sBAAsB,uBAAuB;AACvF,iBAAO,QAAQ,IAAI,qBAAqB,QAAQ,IAAI,YAAU;AAC1D,mBAAO,SAAS,IAAI,EAAE,QAAQ,kBAAkB;AAAA,UACpD,CAAC,CAAC;AAAA,QACN,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,mBAAmB;AACvB,eAAOA,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,sBAAsB,KAAK,SAAS;AAAA,QACrD,GAAG,cAAc,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAC7G;AAAA,IACJ;AAEA,IAAM,aAAa,CAAC,SAAS;AACzB,aAAO,CAAC,mBAAmB;AACvB,cAAM,EAAE,mBAAmB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC7D,cAAM,uBAAuB,2BAA2B,OAAO;AAC/D,YAAI,mBAAmB;AACnB,+BAAqB,gBAAgB,oBAAoB;AAAA,QAC7D;AACA,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,4BAA4B,KAAK,SAAS;AAAA,QAC3D,GAAG,oBAAoB,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MACnH;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,mBAAmB;AACvB,cAAM,EAAE,mBAAmB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC7D,cAAM,uBAAuB,2BAA2B,OAAO;AAC/D,YAAI,mBAAmB;AACnB,+BAAqB,gBAAgB,oBAAoB;AAAA,QAC7D;AACA,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,+BAA+B,KAAK,SAAS;AAAA,QAC9D,GAAG,oBAAoB,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MACnH;AAAA,IACJ;AAEA,IAAM,WAAW,CAAC,SAAS;AACvB,aAAO,CAAC,SAAS,mBAAmB;AAChC,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,8BAA8B,KAAK,SAAS;AAAA,UACzD,MAAM;AAAA,QACV,GAAG,cAAc,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAC7G;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,mBAAmB;AACvB,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,gBAAgB,KAAK,SAAS;AAAA,QAC/C,GAAG,cAAc,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAC7G;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAOD,uBAAsB,cAAc,IAAI,EAAE,CAAC,QAAQ,GAAG,cAAc,EAAE,KAAK,cAAY;AAC1F,iBAAO,EAAE,QAAQ,SAAS,QAAQ,CAAC,EAAE;AAAA,QACzC,CAAC,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAC7F;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,WAAW,mBAAmB;AAClC,cAAM,UAAU,UAAU,IAAI,cAAY;AACtC,iBAAO,EAAE,SAAS;AAAA,QACtB,CAAC;AACD,eAAO,aAAa,IAAI,EAAE,SAAS,gBAAgB,cAAc,cAAc;AAAA,MACnF;AAAA,IACJ;AAEA,IAAM,aAAa,CAAC,SAAS;AACzB,aAAO,CAAC,UAAU,mBAAmB;AACjC,cAAM,EAAE,mBAAmB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC7D,cAAM,uBAAuB,2BAA2B,OAAO;AAC/D,YAAI,mBAAmB;AACnB,+BAAqB,gBAAgB,oBAAoB;AAAA,QAC7D;AACA,eAAOA,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,yBAAyB,KAAK,WAAW,QAAQ;AAAA,QAClE,GAAG,oBAAoB,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MACnH;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,UAAU,mBAAmB;AACjC,cAAM,EAAE,mBAAmB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC7D,cAAM,uBAAuB,2BAA2B,OAAO;AAC/D,YAAI,mBAAmB;AACnB,+BAAqB,gBAAgB,oBAAoB;AAAA,QAC7D;AACA,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,4BAA4B,KAAK,WAAW,QAAQ;AAAA,QACrE,GAAG,oBAAoB,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MACnH;AAAA,IACJ;AAEA,IAAM,SAAS,CAAC,SAAS;AACrB,aAAO,CAAC,mBAAmB;AACvB,eAAO,YAAY,IAAI,EAAE,cAAc,EAClC,KAAK,MAAM,IAAI,EACf,MAAM,WAAS;AAChB,cAAI,MAAM,WAAW,KAAK;AACtB,kBAAM;AAAA,UACV;AACA,iBAAO;AAAA,QACX,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,OAAO,gBAAgB,mBAAmB;AAC9C,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,2BAA2B,KAAK,SAAS;AAAA,UACtD,MAAM;AAAA,YACF;AAAA,YACA;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,QACf,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,aAAa,CAAC,SAAS;AACzB,aAAO,CAAC,UAAU,mBAAmB;AACjC,cAAM,EAAE,OAAO,UAAU,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAE3D,YAAI,OAAO;AACX,cAAM,cAAc,MAAM;AACtB,iBAAO,OAAO,IAAI,EAAE,SAAS,IAAI,EAAE,GAAG,SAAS,KAAK,CAAC,EAAE,KAAK,YAAU;AAElE,uBAAW,CAAC,UAAU,GAAG,KAAK,OAAO,QAAQ,OAAO,IAAI,GAAG;AAEvD,kBAAI,SAAS,GAAG,GAAG;AACf,uBAAO;AAAA,kBACH,QAAQ;AAAA,kBACR,UAAU,SAAS,UAAU,EAAE;AAAA,kBAC/B;AAAA,gBACJ;AAAA,cACJ;AAAA,YACJ;AACA;AAEA,gBAAI,aAAa,SAAS,QAAQ,OAAO,SAAS;AAC9C,oBAAM,0BAA0B;AAAA,YACpC;AACA,mBAAO,YAAY;AAAA,UACvB,CAAC;AAAA,QACL;AACA,eAAO,YAAY;AAAA,MACvB;AAAA,IACJ;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,mBAAmB,KAAK,WAAW,QAAQ;AAAA,QAC5D,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,oBAAoB,MAAM;AAC5B,aAAO,CAAC,gBAAgB,aAAa;AAEjC,mBAAW,CAAC,UAAU,GAAG,KAAK,OAAO,QAAQ,eAAe,IAAI,GAAG;AAC/D,cAAI,IAAI,aAAa,UAAU;AAC3B,mBAAO,SAAS,UAAU,EAAE;AAAA,UAChC;AAAA,QACJ;AACA,eAAO;AAAA,MACX;AAAA,IACJ;AAEA,IAAM,aAAa,CAAC,SAAS;AACzB,aAAO,CAAC,WAAW,mBAAmB;AAClC,cAAM,EAAE,sBAAsB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAChE,cAAM,WAAW,UAAU,IAAI,cAAY;AACvC,iBAAO;AAAA,YACH,WAAW,KAAK;AAAA,YAChB;AAAA,YACA,GAAI,uBAAuB,EAAE,qBAAqB,IAAI,CAAC;AAAA,UAC3D;AAAA,QACJ,CAAC;AACD,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,QACJ,GAAG,OAAO;AAAA,MACd;AAAA,IACJ;AAEA,IAAM,UAAU,CAAC,SAAS;AACtB,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,yBAAyB,KAAK,WAAW,QAAQ;AAAA,QAClE,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,yBAAyB,KAAK,SAAS;AAAA,UACpD,MAAM;AAAA,YACF,YAAY;AAAA,UAChB;AAAA,QACJ,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,aAAa,CAAC,SAAS;AACzB,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,4BAA4B,KAAK,WAAW,QAAQ;AAAA,QACrE,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,UAAU,CAAC,SAAS;AACtB,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,wBAAwB,KAAK,WAAW,OAAO,SAAS,CAAC;AAAA,QAC1E,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,sBAAsB,CAAC,SAAS;AAClC,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,eAAOD,uBAAsB,qBAAqB,IAAI,EAAE,CAAC,MAAM,GAAG,cAAc,EAAE,KAAK,cAAY;AAC/F,iBAAO;AAAA,YACH,UAAU,SAAS,UAAU,CAAC;AAAA,YAC9B,QAAQ,SAAS,QAAQ,CAAC;AAAA,UAC9B;AAAA,QACJ,CAAC,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAC7F;AAAA,IACJ;AAEA,IAAM,uBAAuB,CAAC,SAAS;AACnC,aAAO,CAAC,SAAS,mBAAmB;AAChC,cAAM,EAAE,mBAAmB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC7D,cAAM,SAAS,oBACT,gBAAgB,sBAChB,gBAAgB;AACtB,eAAO,aAAa,IAAI,EAAE,SAAS,QAAQ,OAAO;AAAA,MACtD;AAAA,IACJ;AAEA,IAAM,oBAAoB,CAAC,SAAS;AAChC,aAAO,CAAC,SAAS,mBAAmB;AAChC,cAAM,EAAE,MAAM,gCAAgC,WAAW,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC3F,cAAM,YAAY,CAAC,MAAM,IAAI,MAAM,4BAA4B;AAC3D,iBAAOA,uBAAsB,KAAK,YAAY,MAAM;AAAA,YAChD,QAAQ,WAAW;AAAA,YACnB,MAAMC,QAAO,0BAA0B,IAAI;AAAA,YAC3C,MAAM;AAAA,cACF,WAAW;AAAA,cACX,aAAa;AAAA,YACjB;AAAA,UACJ,GAAG,uBAAuB,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,QACtH;AACA,cAAM,eAAe,KAAK,OAAO,EAC5B,SAAS,EAAE,EACX,UAAU,CAAC;AAChB,cAAM,qBAAqB,GAAG,KAAK,SAAS,QAAQ,YAAY;AAChE,cAAM,yBAAyB,YAAY;AAAA,UACvC,OAAO,KAAK;AAAA,UACZ,aAAa,KAAK;AAAA,UAClB,WAAW;AAAA,QACf,CAAC;AAGD,YAAI,YAAY,CAAC;AACjB,cAAM,sBAAsB,UAAU,KAAK,WAAW,oBAAoB,QAAQ;AAAA,UAC9E,GAAG;AAAA,UACH,OAAO,CAAC,YAAY,YAAY,OAAO;AAAA,QAC3C,CAAC;AAED,kBAAU,KAAK,mBAAmB;AAClC,cAAM,UAAU,OACV,oBAAoB,KAAK,OAAO,IAChC,qBACD,KAAK,MAAM;AACZ,gBAAM,6BAA6B,uBAAuB,SAAS;AAAA,YAC/D,GAAG;AAAA,YACH;AAAA,YACA;AAAA,UACJ,CAAC;AAED,oBAAU,KAAK,0BAA0B;AACzC,iBAAO,OAAO,2BAA2B,KAAK,OAAO,IAAI;AAAA,QAC7D,CAAC,EACI,KAAK,MAAM;AACZ,gBAAM,sBAAsB,UAAU,oBAAoB,KAAK,WAAW,QAAQ,OAAO;AAEzF,oBAAU,KAAK,mBAAmB;AAClC,iBAAO,OAAO,oBAAoB,KAAK,OAAO,IAAI;AAAA,QACtD,CAAC,EACI,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,EACjC,KAAK,CAAC,CAAC,cAAc,qBAAqB,YAAY,MAAM;AAC7D,iBAAO;AAAA,YACH,WAAW,oBAAoB;AAAA,YAC/B,SAAS,CAAC,aAAa,QAAQ,GAAG,oBAAoB,SAAS,aAAa,MAAM;AAAA,UACtF;AAAA,QACJ,CAAC,EACI,MAAM,WAAS;AAGhB,iBAAO,YAAY;AAAA,YACf,OAAO,KAAK;AAAA,YACZ,aAAa,KAAK;AAAA,YAClB,WAAW;AAAA,UACf,CAAC,EAAE,EACE,MAAM,MAAM;AAAA,UAEjB,CAAC,EACI,KAAK,MAAM;AACZ,kBAAM;AAAA,UACV,CAAC;AAAA,QACL,CAAC;AACD,eAAOD,uBAAsB,QAAQ,CAAC,GAAG,uBAAuB;AAC5D,iBAAO,QAAQ,IAAI,UAAU,IAAI,cAAY,SAAS,KAAK,kBAAkB,CAAC,CAAC;AAAA,QACnF,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,kBAAkB,CAAC,SAAS;AAC9B,aAAO,CAAC,OAAO,mBAAmB;AAC9B,eAAO,UAAU,IAAI,EAAE,OAAO;AAAA,UAC1B,GAAG;AAAA,UACH,oBAAoB;AAAA,QACxB,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,qBAAqB,CAAC,SAAS;AACjC,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAO,aAAa,IAAI,EAAE,UAAU;AAAA,UAChC,GAAG;AAAA,UACH,uBAAuB;AAAA,QAC3B,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,aAAa,CAAC,SAAS;AACzB,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,eAAOA,uBAAsB,YAAY,IAAI,EAAE,CAAC,MAAM,GAAG,cAAc,EAAE,KAAK,cAAY;AACtF,iBAAO;AAAA,YACH,UAAU,SAAS,UAAU,CAAC;AAAA,YAC9B,QAAQ,SAAS,QAAQ,CAAC;AAAA,UAC9B;AAAA,QACJ,CAAC,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAC7F;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,SAAS,mBAAmB;AAChC,cAAM,EAAE,gCAAgC,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC1E,cAAM,SAAS,iCACT,gBAAgB,YAChB,gBAAgB;AACtB,YAAI,WAAW,gBAAgB,cAAc;AAEzC,qBAAW,UAAU,SAAS;AAC1B,gBAAI,OAAO,aAAa,QAAW;AAC/B,qBAAOA,uBAAsB,QAAQ,OAAO,2BAA2B,CAAC,CAAC;AAAA,YAC7E;AAAA,UACJ;AAAA,QACJ;AACA,eAAO,aAAa,IAAI,EAAE,SAAS,QAAQ,OAAO;AAAA,MACtD;AAAA,IACJ;AAEA,IAAM,WAAW,CAAC,SAAS;AACvB,aAAO,CAAC,MAAM,mBAAmB;AAC7B,eAAO,UAAU,IAAI,EAAE,CAAC,IAAI,GAAG,cAAc;AAAA,MACjD;AAAA,IACJ;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,OAAO,mBAAmB;AAC9B,cAAM,EAAE,mBAAmB,oBAAoB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AACjF,cAAM,uBAAuB,2BAA2B,OAAO;AAC/D,YAAI,mBAAmB;AACnB,+BAAqB,gBAAgB,oBAAoB;AAAA,QAC7D;AACA,YAAI,oBAAoB;AACpB,+BAAqB,gBAAgB,qBAAqB;AAAA,QAC9D;AACA,eAAOA,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,4BAA4B,KAAK,SAAS;AAAA,UACvD,MAAM;AAAA,QACV,GAAG,oBAAoB,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MACnH;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,SAAS,mBAAmB;AAChC,eAAO,aAAa,IAAI,EAAE,CAAC,OAAO,GAAG,cAAc;AAAA,MACvD;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,UAAU,mBAAmB;AACjC,cAAM,EAAE,mBAAmB,uBAAuB,yBAAyB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC7G,cAAM,uBAAuB,2BAA2B,OAAO;AAC/D,YAAI,mBAAmB;AACnB,+BAAqB,gBAAgB,oBAAoB;AAAA,QAC7D;AACA,YAAI,2BAA2B,uBAAuB;AAClD,+BAAqB,gBAAgB,0BAA0B;AAAA,QACnE;AACA,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,+BAA+B,KAAK,SAAS;AAAA,UAC1D,MAAM;AAAA,QACV,GAAG,oBAAoB,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MACnH;AAAA,IACJ;AAEA,IAAM,SAAS,CAAC,SAAS;AACrB,aAAO,CAAC,OAAO,mBAAmB;AAC9B,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,sBAAsB,KAAK,SAAS;AAAA,UACjD,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,QACf,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,uBAAuB,CAAC,SAAS;AACnC,aAAO,CAAC,WAAW,YAAY,mBAAmB;AAC9C,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,gCAAgC,KAAK,WAAW,SAAS;AAAA,UACtE,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,QACf,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,OAAO,mBAAmB;AAC9B,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,6BAA6B,KAAK,SAAS;AAAA,UACxD,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,QACJ,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,iBAAiB,CAAC,SAAS;AAC7B,aAAO,CAAC,OAAO,mBAAmB;AAC9B,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,gCAAgC,KAAK,SAAS;AAAA,UAC3D,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,QACJ,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,UAAU,mBAAmB;AACjC,cAAM,EAAE,mBAAmB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC7D,cAAM,uBAAuB,2BAA2B,OAAO;AAC/D,YAAI,mBAAmB;AACnB,+BAAqB,gBAAgB,oBAAoB;AAAA,QAC7D;AACA,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,yBAAyB,KAAK,SAAS;AAAA,UACpD,MAAM;AAAA,QACV,GAAG,oBAAoB,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MACnH;AAAA,IACJ;AAEA,IAAM,WAAW,CAAC,SAAS;AACvB,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,eAAOF,wBAAuB,WAAS;AACnC,iBAAO,QAAQ,IAAI,EAAE,QAAQ,cAAc,EAAE,KAAK,cAAY;AAC1D,mBAAO,SAAS,WAAW,cAAc,MAAM,IAAI;AAAA,UACvD,CAAC;AAAA,QACL,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,gBAAgB;AAAA,MAClB,WAAW;AAAA,MACX,WAAW;AAAA,MACX,SAAS;AAAA,MACT,aAAa;AAAA,MACb,cAAc;AAAA,MACd,cAAc;AAAA,MACd,WAAW;AAAA,MACX,aAAa;AAAA,MACb,MAAM;AAAA,MACN,iBAAiB;AAAA,MACjB,gBAAgB;AAAA,MAChB,QAAQ;AAAA,MACR,4BAA4B;AAAA,MAC5B,UAAU;AAAA,MACV,OAAO;AAAA,IACX;AAEA,IAAM,kBAAkB;AAAA,MACpB,WAAW;AAAA,MACX,cAAc;AAAA,MACd,qBAAqB;AAAA,MACrB,6BAA6B;AAAA,MAC7B,cAAc;AAAA,MACd,aAAa;AAAA,MACb,YAAY;AAAA,IAChB;AAEA,IAAM,YAAY;AAAA,MACd,UAAU;AAAA,MACV,UAAU;AAAA,MACV,OAAO;AAAA,IACX;AAEA,IAAM,eAAe;AAAA,MACjB,MAAM;AAAA,MACN,qBAAqB;AAAA,IACzB;AAEA,IAAM,cAAc;AAAA,MAChB,SAAS;AAAA,MACT,eAAe;AAAA,MACf,gBAAgB;AAAA,MAChB,gBAAgB;AAAA,MAChB,aAAa;AAAA,IACjB;AAAA;AAAA;;;ACnxCA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAS,mBAAmB;AACxB,SAAO;AAAA,IACH,MAAM,UAAU,OAAO;AACnB,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAAA,IACA,KAAK,UAAU,OAAO;AAClB,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAAA,IACA,MAAM,UAAU,OAAO;AACnB,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAAA,EACJ;AACJ;AAZA,IAcM;AAdN;AAAA;AAAA;AAcA,IAAM,eAAe;AAAA,MACjB,OAAO;AAAA,MACP,MAAM;AAAA,MACN,OAAO;AAAA,IACX;AAAA;AAAA;;;AClBA,IAAAK,6BAAA;AAAA,SAAAA,4BAAA;AAAA,kBAAAC;AAAA,EAAA,kBAAAC;AAAA,EAAA,kBAAAC;AAAA,EAAA,8BAAAC;AAAA,EAAA,6BAAAC;AAAA,EAAA,eAAAC;AAAA,EAAA,cAAAC;AAAA,EAAA,eAAAC;AAAA,EAAA,eAAAC;AAAA;AAAA,SAASN,YAAW,UAAU,OAAO,QAAQ;AACzC,QAAM,cAAc;AAAA,IAChB,qBAAqB;AAAA,IACrB,4BAA4B;AAAA,EAChC;AACA,SAAO;AAAA,IACH,UAAU;AACN,aAAO,aAAaF,UAAS,gBAAgB,cAAc,CAAC;AAAA,IAChE;AAAA,IACA,kBAAkB;AACd,aAAO,aAAaA,UAAS,wBAAwB,cAAc,CAAC;AAAA,IACxE;AAAA,EACJ;AACJ;AAEA,SAASG,wBAAuB,UAAU;AACtC,MAAI,eAAe;AACnB,QAAM,QAAQ,MAAM;AAChB;AACA,WAAO,IAAI,QAAQ,CAAC,YAAY;AAC5B,iBAAW,MAAM;AACb,gBAAQ,SAAS,KAAK,CAAC;AAAA,MAC3B,GAAG,KAAK,IAAI,MAAM,cAAc,GAAI,CAAC;AAAA,IACzC,CAAC;AAAA,EACL;AACA,SAAO,SAAS,KAAK;AACzB;AAEA,SAASC,uBAAsB,SAAS,OAAO,CAAC,WAAW,oBAAoB;AAC3E,SAAO,QAAQ,QAAQ;AAC3B,GAAG;AAEC,SAAO,OAAO,OAAO,SAAS;AAAA,IAC1B,KAAK,gBAAgB;AACjB,aAAOA,uBAAsB,QACxB,KAAK,cAAY,QAAQ,IAAI,CAAC,KAAK,UAAU,cAAc,GAAG,QAAQ,CAAC,CAAC,EACxE,KAAK,oBAAkB,eAAe,CAAC,CAAC,CAAC;AAAA,IAClD;AAAA,EACJ,CAAC;AACL;AAGA,SAASG,SAAQ,OAAO;AACpB,MAAI,IAAI,MAAM,SAAS;AAEvB,OAAK,GAAG,IAAI,GAAG,KAAK;AAChB,UAAM,IAAI,KAAK,MAAM,KAAK,OAAO,KAAK,IAAI,EAAE;AAC5C,UAAM,IAAI,MAAM,CAAC;AACjB,UAAM,CAAC,IAAI,MAAM,CAAC;AAClB,UAAM,CAAC,IAAI;AAAA,EACf;AACA,SAAO;AACX;AACA,SAASN,YAAW,MAAM,SAAS;AAC/B,MAAI,CAAC,SAAS;AACV,WAAO;AAAA,EACX;AACA,SAAO,KAAK,OAAO,EAAE,QAAQ,SAAO;AAEhC,SAAK,GAAG,IAAI,QAAQ,GAAG,EAAE,IAAI;AAAA,EACjC,CAAC;AACD,SAAO;AACX;AACA,SAASK,QAAO,WAAW,MAAM;AAE7B,MAAI,IAAI;AACR,SAAO,OAAO,QAAQ,OAAO,MAAM,mBAAmB,KAAK,GAAG,CAAC,CAAC;AACpE;AAnEA,IAqEME,UAEAH,UAMAL;AA7EN,IAAAS,0BAAA;AAAA;AAAA;AAqEA,IAAMD,WAAU;AAEhB,IAAMH,WAAU,CAAC,SAAS;AACtB,aAAO,MAAM;AACT,eAAO,KAAK,YAAY,UAAU,QAAQ;AAAA,MAC9C;AAAA,IACJ;AAEA,IAAML,YAAW;AAAA;AAAA;AAAA;AAAA,MAIb,uBAAuB;AAAA;AAAA;AAAA;AAAA,MAIvB,eAAe;AAAA,IACnB;AAAA;AAAA;;;ACtFA;AAAA;AAAA;AAAA;AAAA,YAAY,UAAU;AACtB,SAAS,aAAa;AACtB,YAAY,WAAW;AACvB,SAAS,SAAS,eAAe;AACjC,SAAS,SAAAU,cAAa;AACtB,SAAS,cAAc,YAAY;AAMnC,SAAS,wBAAwB,EAAE,OAAO,iBAAiB,WAAW,eAAe,YAAY,gBAAgB,mBAAmB,CAAC,EAAG,IAAI,CAAC,GAAG;AAC5I,QAAM,YAAY,iBAAiB,mBAAmB;AACtD,QAAM,aAAa,kBAAkB,mBAAmB;AACxD,SAAO;AAAA,IACH,KAAK,SAAS;AACV,aAAO,IAAI,QAAQ,aAAW;AAC1B,cAAM,MAAMA,OAAM,QAAQ,GAAG;AAC7B,cAAM,OAAO,IAAI,UAAU,OAAO,IAAI,WAAW,GAAG,IAAI,QAAQ,IAAI,IAAI,KAAK;AAC7E,cAAM,wBAAwB;AAC9B,cAAM,iBAAiB,QAAQ,QAAQ,iBAAiB;AACxD,cAAM,iBAAiB,QAAQ,SAAS,UACpC,OAAO,WAAW,QAAQ,IAAI,KAAK,yBACnC,mBAAmB,UACnB,eAAe,YAAY,EAAE,SAAS,MAAM;AAChD,cAAM,UAAU;AAAA,UACZ,GAAG;AAAA,UACH,OAAO,IAAI,aAAa,WAAW,aAAa;AAAA,UAChD,UAAU,IAAI;AAAA,UACd;AAAA,UACA,QAAQ,QAAQ;AAAA,UAChB,SAAS;AAAA,YACL,GAAI,oBAAoB,iBAAiB,UAAU,iBAAiB,UAAU,CAAC;AAAA,YAC/E,GAAG,QAAQ;AAAA,YACX,GAAI,iBAAiB,EAAE,oBAAoB,OAAO,IAAI,CAAC;AAAA,UAC3D;AAAA,UACA,GAAI,IAAI,SAAS,SAAY,EAAE,MAAM,IAAI,QAAQ,GAAG,IAAI,CAAC;AAAA,QAC7D;AAEA,YAAI;AAEJ,YAAI;AAEJ,YAAI;AACJ,cAAM,UAAU,MAAM;AAClB,uBAAa,cAAc;AAC3B,uBAAa,eAAe;AAC5B,cAAI,QAAQ;AACR,mBAAO,QAAQ;AAAA,UACnB;AAAA,QACJ;AACA,cAAM,UAAU,CAAC,UAAU;AACvB,kBAAQ;AACR,kBAAQ,EAAE,QAAQ,GAAG,SAAS,MAAM,SAAS,YAAY,MAAM,CAAC;AAAA,QACpE;AACA,cAAM,OAAO,IAAI,aAAa,WAAW,QAAQ,MAAM,QAAQ,SAAS,cAAY;AAChF,gBAAM,kBAAkB,SAAS,QAAQ,kBAAkB;AAC3D,gBAAM,iBAAiB,oBAAoB,UAAa,gBAAgB,YAAY,EAAE,SAAS,MAAM;AAErG,cAAI,iBAAiB,CAAC;AACtB,gBAAM,SAAS,CAAC,UAAU;AACtB,6BAAiB,eAAe,OAAO,KAAK;AAAA,UAChD;AACA,gBAAM,QAAQ,MAAM;AAChB,oBAAQ;AACR,oBAAQ;AAAA,cACJ,QAAQ,SAAS,cAAc;AAAA,cAC/B,SAAS,OAAO,OAAO,cAAc,EAAE,SAAS;AAAA,cAChD,YAAY;AAAA,YAChB,CAAC;AAAA,UACL;AACA,mBAAS,GAAG,SAAS,OAAO;AAC5B,cAAI,gBAAgB;AAChB,qBAAS,aAAa;AACtB,qBAAS,KAAK,MAAM;AACpB,mBAAO,GAAG,QAAQ,MAAM;AACxB,mBAAO,GAAG,OAAO,KAAK;AACtB,mBAAO,GAAG,SAAS,OAAO;AAAA,UAC9B,OACK;AACD,qBAAS,GAAG,QAAQ,MAAM;AAC1B,qBAAS,GAAG,OAAO,KAAK;AAAA,UAC5B;AAAA,QACJ,CAAC;AACD,cAAM,gBAAgB,CAAC,SAAS,YAAY;AACxC,iBAAO,WAAW,MAAM;AACpB,gBAAI,MAAM;AACV,gBAAI,QAAQ;AACR,qBAAO,QAAQ;AAAA,YACnB;AACA,oBAAQ;AAAA,cACJ,QAAQ;AAAA,cACR;AAAA,cACA,YAAY;AAAA,YAChB,CAAC;AAAA,UACL,GAAG,UAAU,GAAI;AAAA,QACrB;AACA,yBAAiB,cAAc,QAAQ,gBAAgB,oBAAoB;AAC3E,YAAI,GAAG,SAAS,OAAO;AACvB,YAAI,KAAK,YAAY,MAAM;AACvB,uBAAa,cAAc;AAC3B,4BAAkB,cAAc,QAAQ,iBAAiB,gBAAgB;AAAA,QAC7E,CAAC;AACD,YAAI,QAAQ,SAAS,UAAa,gBAAgB;AAC9C,eAAK,QAAQ,MAAM,CAAC,OAAO,mBAAmB;AAC1C,gBAAI,OAAO;AACP,sBAAQ,KAAK;AACb;AAAA,YACJ;AACA,gBAAI,UAAU,kBAAkB,eAAe,UAAU;AACzD,gBAAI,MAAM,cAAc;AACxB,gBAAI,IAAI;AAAA,UACZ,CAAC;AAAA,QACL,OACK;AACD,cAAI,QAAQ,SAAS,QAAW;AAC5B,gBAAI,UAAU,kBAAkB,OAAO,WAAW,QAAQ,IAAI,CAAC;AAC/D,gBAAI,MAAM,QAAQ,IAAI;AAAA,UAC1B;AACA,cAAI,IAAI;AAAA,QACZ;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,IACA,UAAU;AACN,gBAAU,QAAQ;AAClB,iBAAW,QAAQ;AACnB,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAAA,EACJ;AACJ;AAjIA,IAQM,cACA,kBACA;AAVN;AAAA;AAAA;AAQA,IAAM,eAAe,EAAE,WAAW,KAAK;AACvC,IAAM,mBAAmB,IAAI,MAAM,YAAY;AAC/C,IAAM,oBAAoB,IAAI,QAAQ,YAAY;AAAA;AAAA;;;ACVlD;AAAA;AAAA;AAEA,QAAI,cAAc;AAClB,QAAI,gBAAgB;AACpB,QAAI,eAAe;AACnB,QAAI,eAAe;AACnB,QAAI,oBAAoB;AACxB,QAAI,cAAc;AAClB,QAAI,kBAAkB;AAEtB,QAAM,wBAAwB,aAAW;AACrC,YAAM,QAAQ,QAAQ;AACtB,YAAM,OAAO,aAAa,WAAW,QAAQ,aAAa,SAAY,QAAQ,WAAW,aAAa,SAAS,eAAe,OAAO,QAAQ,MAAM;AACnJ,YAAM,gBAAgB,YAAY,kBAAkB;AAAA,QAChD,OAAO;AAAA,UACH,EAAE,KAAK,GAAG,KAAK,oBAAoB,QAAQ,YAAY,SAAS,KAAK;AAAA,UACrE,EAAE,KAAK,GAAG,KAAK,gBAAgB,QAAQ,YAAY,SAAS,MAAM;AAAA,QACtE,EAAE,OAAO,aAAa,QAAQ;AAAA,UAC1B,EAAE,KAAK,GAAG,KAAK,oBAAoB;AAAA,UACnC,EAAE,KAAK,GAAG,KAAK,oBAAoB;AAAA,UACnC,EAAE,KAAK,GAAG,KAAK,oBAAoB;AAAA,QACvC,CAAC,CAAC;AAAA,QACF,GAAG;AAAA,QACH,SAAS;AAAA,UACL,GAAG,KAAK,QAAQ;AAAA,UAChB,GAAG,EAAE,gBAAgB,oCAAoC;AAAA,UACzD,GAAG,QAAQ;AAAA,QACf;AAAA,QACA,iBAAiB;AAAA,UACb,GAAG,KAAK,gBAAgB;AAAA,UACxB,GAAG,QAAQ;AAAA,QACf;AAAA,MACJ,CAAC;AACD,YAAM,OAAO;AAAA,QACT,aAAa;AAAA,QACb;AAAA,QACA,gBAAgB,SAASC,UAAS;AAC9B,wBAAc,UAAU,IAAI,EAAE,SAAS,SAAAA,SAAQ,CAAC;AAAA,QACpD;AAAA,QACA,aAAa;AACT,iBAAO,QAAQ,IAAI;AAAA,YACf,cAAc,cAAc,MAAM;AAAA,YAClC,cAAc,eAAe,MAAM;AAAA,UACvC,CAAC,EAAE,KAAK,MAAM,MAAS;AAAA,QAC3B;AAAA,MACJ;AACA,aAAO,aAAa,WAAW,MAAM,QAAQ,OAAO;AAAA,IACxD;AAEA,QAAM,qBAAqB,UAAQ;AAC/B,aAAO,CAAC,SAAS,mBAAmB;AAChC,cAAM,WAAW,QAAQ,IAAI,YAAU;AAAA,UACnC,GAAG;AAAA;AAAA;AAAA;AAAA,UAIH,WAAW,MAAM,aAAa;AAAA,QAClC,EAAE;AACF,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,gBAAgB,WAAW;AAAA,UACnC,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,QACf,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,QAAM,8BAA8B,UAAQ;AACxC,aAAO,CAAC,SAAS,mBAAmB;AAChC,eAAO,mBAAmB,IAAI,EAAE,QAAQ,IAAI,YAAU;AAAA,UAClD,GAAG;AAAA,UACH,oBAAoB,CAAC;AAAA,UACrB,OAAO;AAAA,QACX,EAAE,GAAG,cAAc;AAAA,MACvB;AAAA,IACJ;AAEA,QAAM,qBAAqB,UAAQ;AAC/B,aAAO,CAAC,SAAS,mBAAmB;AAChC,eAAO,mBAAmB,IAAI,EAAE,QAAQ,IAAI,YAAU;AAAA,UAClD,GAAG;AAAA,UACH,OAAO;AAAA,QACX,EAAE,GAAG,cAAc;AAAA,MACvB;AAAA,IACJ;AAEA,QAAM,oBAAoB,UAAQ;AAC9B,aAAO,CAAC,SAAS,mBAAmB;AAChC,cAAM,WAAW,QAAQ,IAAI,YAAU;AAAA,UACnC,GAAG;AAAA,UACH,OAAO;AAAA;AAAA;AAAA;AAAA,UAIP,WAAW,MAAM,aAAa;AAAA,QAClC,EAAE;AACF,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,gBAAgB,WAAW;AAAA,UACnC,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,QACf,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,QAAM,mBAAmB,UAAQ;AAC7B,aAAO,CAAC,SAAS,mBAAmB;AAChC,cAAM,WAAW,QAAQ,IAAI,YAAU;AAAA,UACnC,GAAG;AAAA,UACH,OAAO;AAAA;AAAA;AAAA;AAAA,UAIP,WAAW,MAAM,aAAa;AAAA,QAClC,EAAE;AACF,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,gBAAgB,WAAW;AAAA,UACnC,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,QACf,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,QAAM,oBAAoB,UAAQ;AAC9B,aAAO,CAAC,SAAS,mBAAmB;AAChC,eAAO,mBAAmB,IAAI,EAAE,QAAQ,IAAI,YAAU;AAAA,UAClD,GAAG;AAAA,UACH,OAAO;AAAA,QACX,EAAE,GAAG,cAAc;AAAA,MACvB;AAAA,IACJ;AAEA,QAAM,uBAAuB,UAAQ;AACjC,aAAO,CAAC,SAAS,mBAAmB;AAChC,cAAM,WAAW,QAAQ,IAAI,YAAU;AAAA,UACnC,GAAG;AAAA,UACH,OAAO;AAAA,UACP,WAAW,MAAM,aAAa;AAAA,QAClC,EAAE;AACF,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,gBAAgB,WAAW;AAAA,UACnC,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,QACf,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,aAAS,UAAU,OAAO,QAAQ,SAAS;AACvC,YAAM,gBAAgB;AAAA,QAClB;AAAA,QACA;AAAA,QACA,UAAU;AAAA,UACN,SAAS;AAAA,UACT,MAAM;AAAA,UACN,OAAO;AAAA,QACX;AAAA,QACA,WAAW,kBAAkB,wBAAwB;AAAA,QACrD,QAAQ,aAAa,iBAAiB;AAAA,QACtC,gBAAgB,YAAY,gBAAgB;AAAA,QAC5C,eAAe,YAAY,gBAAgB;AAAA,QAC3C,YAAY,cAAc,oBAAoB;AAAA,QAC9C,WAAW,YAAY,gBAAgB,aAAa,OAAO,EACtD,IAAI,EAAE,SAAS,aAAa,SAAS,aAAa,QAAQ,CAAC,EAC3D,IAAI,EAAE,SAAS,WAAW,SAAS,QAAQ,SAAS,KAAK,CAAC;AAAA,MACnE;AACA,aAAO,sBAAsB;AAAA,QACzB,GAAG;AAAA,QACH,GAAG;AAAA,QACH,SAAS;AAAA,UACL,SAAS,aAAa;AAAA,UACtB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACJ;AAAA,MACJ,CAAC;AAAA,IACL;AAEA,cAAU,UAAU,aAAa;AACjC,cAAU,8BAA8B;AACxC,cAAU,qBAAqB;AAC/B,cAAU,qBAAqB;AAC/B,cAAU,oBAAoB;AAC9B,cAAU,mBAAmB;AAC7B,cAAU,oBAAoB;AAC9B,cAAU,uBAAuB;AAEjC,WAAO,UAAU;AAAA;AAAA;;;ACxMjB;AAAA;AAAA;AACA,QAAM,YAAY;AAOlB,WAAO,UAAU;AAMjB,WAAO,QAAQ,UAAU;AAAA;AAAA;;;ACdzB,IAAAC,mCAAA;AAAA,SAAAA,kCAAA;AAAA,iCAAAC;AAAA;AAAA,YAAYC,WAAU;AACtB,SAAS,SAAAC,cAAa;AACtB,YAAYC,YAAW;AACvB,SAAS,SAASC,gBAAe;AACjC,SAAS,SAAAC,cAAa;AACtB,SAAS,gBAAAC,eAAc,QAAAC,aAAY;AAMnC,SAASP,yBAAwB,EAAE,OAAO,iBAAiB,WAAW,eAAe,YAAY,gBAAgB,mBAAmB,CAAC,EAAG,IAAI,CAAC,GAAG;AAC5I,QAAM,YAAY,iBAAiB,mBAAmBQ;AACtD,QAAM,aAAa,kBAAkB,mBAAmBC;AACxD,SAAO;AAAA,IACH,KAAK,SAAS;AACV,aAAO,IAAI,QAAQ,aAAW;AAC1B,cAAM,MAAMJ,OAAM,QAAQ,GAAG;AAC7B,cAAM,OAAO,IAAI,UAAU,OAAO,IAAI,WAAW,GAAG,IAAI,QAAQ,IAAI,IAAI,KAAK;AAC7E,cAAM,wBAAwB;AAC9B,cAAM,iBAAiB,QAAQ,QAAQ,iBAAiB;AACxD,cAAM,iBAAiB,QAAQ,SAAS,UACpC,OAAO,WAAW,QAAQ,IAAI,KAAK,yBACnC,mBAAmB,UACnB,eAAe,YAAY,EAAE,SAAS,MAAM;AAChD,cAAM,UAAU;AAAA,UACZ,GAAG;AAAA,UACH,OAAO,IAAI,aAAa,WAAW,aAAa;AAAA,UAChD,UAAU,IAAI;AAAA,UACd;AAAA,UACA,QAAQ,QAAQ;AAAA,UAChB,SAAS;AAAA,YACL,GAAI,oBAAoB,iBAAiB,UAAU,iBAAiB,UAAU,CAAC;AAAA,YAC/E,GAAG,QAAQ;AAAA,YACX,GAAI,iBAAiB,EAAE,oBAAoB,OAAO,IAAI,CAAC;AAAA,UAC3D;AAAA,UACA,GAAI,IAAI,SAAS,SAAY,EAAE,MAAM,IAAI,QAAQ,GAAG,IAAI,CAAC;AAAA,QAC7D;AAEA,YAAI;AAEJ,YAAI;AAEJ,YAAI;AACJ,cAAM,UAAU,MAAM;AAClB,uBAAa,cAAc;AAC3B,uBAAa,eAAe;AAC5B,cAAI,QAAQ;AACR,mBAAO,QAAQ;AAAA,UACnB;AAAA,QACJ;AACA,cAAM,UAAU,CAAC,UAAU;AACvB,kBAAQ;AACR,kBAAQ,EAAE,QAAQ,GAAG,SAAS,MAAM,SAAS,YAAY,MAAM,CAAC;AAAA,QACpE;AACA,cAAM,OAAO,IAAI,aAAa,WAAWF,SAAQF,OAAM,QAAQ,SAAS,cAAY;AAChF,gBAAM,kBAAkB,SAAS,QAAQ,kBAAkB;AAC3D,gBAAM,iBAAiB,oBAAoB,UAAa,gBAAgB,YAAY,EAAE,SAAS,MAAM;AAErG,cAAI,iBAAiB,CAAC;AACtB,gBAAM,SAAS,CAAC,UAAU;AACtB,6BAAiB,eAAe,OAAO,KAAK;AAAA,UAChD;AACA,gBAAM,QAAQ,MAAM;AAChB,oBAAQ;AACR,oBAAQ;AAAA,cACJ,QAAQ,SAAS,cAAc;AAAA,cAC/B,SAAS,OAAO,OAAO,cAAc,EAAE,SAAS;AAAA,cAChD,YAAY;AAAA,YAChB,CAAC;AAAA,UACL;AACA,mBAAS,GAAG,SAAS,OAAO;AAC5B,cAAI,gBAAgB;AAChB,qBAASK,cAAa;AACtB,qBAAS,KAAK,MAAM;AACpB,mBAAO,GAAG,QAAQ,MAAM;AACxB,mBAAO,GAAG,OAAO,KAAK;AACtB,mBAAO,GAAG,SAAS,OAAO;AAAA,UAC9B,OACK;AACD,qBAAS,GAAG,QAAQ,MAAM;AAC1B,qBAAS,GAAG,OAAO,KAAK;AAAA,UAC5B;AAAA,QACJ,CAAC;AACD,cAAM,gBAAgB,CAAC,SAAS,YAAY;AACxC,iBAAO,WAAW,MAAM;AACpB,gBAAI,MAAM;AACV,gBAAI,QAAQ;AACR,qBAAO,QAAQ;AAAA,YACnB;AACA,oBAAQ;AAAA,cACJ,QAAQ;AAAA,cACR;AAAA,cACA,YAAY;AAAA,YAChB,CAAC;AAAA,UACL,GAAG,UAAU,GAAI;AAAA,QACrB;AACA,yBAAiB,cAAc,QAAQ,gBAAgB,oBAAoB;AAC3E,YAAI,GAAG,SAAS,OAAO;AACvB,YAAI,KAAK,YAAY,MAAM;AACvB,uBAAa,cAAc;AAC3B,4BAAkB,cAAc,QAAQ,iBAAiB,gBAAgB;AAAA,QAC7E,CAAC;AACD,YAAI,QAAQ,SAAS,UAAa,gBAAgB;AAC9C,UAAAC,MAAK,QAAQ,MAAM,CAAC,OAAO,mBAAmB;AAC1C,gBAAI,OAAO;AACP,sBAAQ,KAAK;AACb;AAAA,YACJ;AACA,gBAAI,UAAU,kBAAkB,eAAe,UAAU;AACzD,gBAAI,MAAM,cAAc;AACxB,gBAAI,IAAI;AAAA,UACZ,CAAC;AAAA,QACL,OACK;AACD,cAAI,QAAQ,SAAS,QAAW;AAC5B,gBAAI,UAAU,kBAAkB,OAAO,WAAW,QAAQ,IAAI,CAAC;AAC/D,gBAAI,MAAM,QAAQ,IAAI;AAAA,UAC1B;AACA,cAAI,IAAI;AAAA,QACZ;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,IACA,UAAU;AACN,gBAAU,QAAQ;AAClB,iBAAW,QAAQ;AACnB,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAAA,EACJ;AACJ;AAjIA,IAQMG,eACAF,mBACAC;AAVN,IAAAE,gCAAA;AAAA;AAAA;AAQA,IAAMD,gBAAe,EAAE,WAAW,KAAK;AACvC,IAAMF,oBAAmB,IAAIN,OAAMQ,aAAY;AAC/C,IAAMD,qBAAoB,IAAIL,SAAQM,aAAY;AAAA;AAAA;;;ACVlD;AAAA;AAAA;AAEA,QAAI,cAAc;AAClB,QAAI,gBAAgB;AACpB,QAAI,kBAAkB;AACtB,QAAI,eAAe;AACnB,QAAI,wBAAwB;AAC5B,QAAI,eAAe;AACnB,QAAI,eAAe;AACnB,QAAI,YAAY;AAChB,QAAI,oBAAoB;AACxB,QAAI,cAAc;AAClB,QAAI,kBAAkB;AAEtB,aAAS,sBAAsB,SAAS;AACpC,UAAI,CAAC,WAAW,CAAC,QAAQ,kBAAkB,CAAC,QAAQ,eAAe,QAAQ;AACvE,cAAM,iCAAiC,uEAAuE;AAAA,MAClH;AACA,UAAI,QAAQ,eAAe,WAAW,QAAQ,QAAQ,eAAe,WAAW,MAAM;AAClF,cAAM,iCAAiC,+DAA+D;AAAA,MAC1G;AACA,YAAM,QAAQ,QAAQ;AACtB,YAAM,OAAO,aAAa,WAAW,aAAa,SAAS,eAAe,OAAO,QAAQ,MAAM;AAC/F,YAAM,gBAAgB,YAAY,kBAAkB;AAAA,QAChD,OAAO;AAAA,UACH;AAAA,YACI,KAAK,QAAQ,QAAQ,eAAe,MAAM;AAAA,YAC1C,QAAQ,YAAY,SAAS;AAAA,YAC7B,UAAU;AAAA,UACd;AAAA,QACJ;AAAA,QACA,GAAG;AAAA,QACH,SAAS;AAAA,UACL,GAAG,KAAK,QAAQ;AAAA,UAChB,GAAG,EAAE,gBAAgB,aAAa;AAAA,UAClC,GAAG,QAAQ;AAAA,QACf;AAAA,QACA,iBAAiB;AAAA,UACb,GAAG,KAAK,gBAAgB;AAAA,UACxB,GAAG,QAAQ;AAAA,QACf;AAAA,MACJ,CAAC;AACD,aAAO;AAAA,QACH,aAAa;AAAA,QACb;AAAA,QACA,gBAAgB,SAASE,UAAS;AAC9B,wBAAc,UAAU,IAAI,EAAE,SAAS,SAAAA,SAAQ,CAAC;AAChD,wBAAc,UAAU,IAAI,EAAE,SAAS,aAAa,SAAAA,SAAQ,CAAC;AAC7D,wBAAc,UAAU,IAAI,EAAE,SAAS,8BAA8B,CAAC;AAAA,QAC1E;AAAA,QACA,aAAa;AACT,iBAAO,QAAQ,IAAI;AAAA,YACf,cAAc,cAAc,MAAM;AAAA,YAClC,cAAc,eAAe,MAAM;AAAA,UACvC,CAAC,EAAE,KAAK,MAAM,MAAS;AAAA,QAC3B;AAAA,QACA,KAAK,EAAE,WAAW,iBAAiB,MAAM,GAAG,gBAAgB;AACxD,cAAI,CAAC,WAAW;AACZ,kBAAM,iCAAiC,wDAAwD;AAAA,UACnG;AACA,cAAI,CAAC,iBAAiB;AAClB,kBAAM,iCAAiC,8DAA8D;AAAA,UACzG;AACA,cAAI,CAAC,gBAAgB,QAAQ;AACzB,kBAAM,iCAAiC,qEAAqE;AAAA,UAChH;AACA,cAAI,CAAC,gBAAgB,SAAS;AAC1B,kBAAM,iCAAiC,sEAAsE;AAAA,UACjH;AACA,gBAAM,OAAO,kBAAkB,EAAE,iBAAiB,CAAC,EAAE;AACrD,iBAAO,cAAc,MAAM;AAAA,YACvB,QAAQ,gBAAgB,WAAW;AAAA,YACnC,MAAM,aAAa,OAAO,aAAa,SAAS;AAAA,YAChD,MAAM;AAAA,UACV,GAAG;AAAA,YACC,GAAG;AAAA,YACH,iBAAiB;AAAA,cACb,GAAG,KAAK;AAAA,cACR,OAAO,UAAU;AAAA,YACrB;AAAA,UACJ,CAAC;AAAA,QACL;AAAA,MACJ;AAAA,IACJ;AACA,aAAS,8BAA8B,WAAW,QAAQ;AACtD,aAAO,CAAC,SAAS,mBAAmB;AAChC,YAAI,CAAC,QAAQ;AACT,gBAAM,iCAAiC,sGAAsG;AAAA,QACjJ;AACA,cAAM,EAAE,gCAAgC,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAAC;AAC9E,cAAM,SAAS,iCACT,aAAa,gBAAgB,YAC7B,aAAa,gBAAgB;AAEnC,eAAO,OAAO,KAAK;AAAA,UACf;AAAA,UACA,iBAAiB,EAAE,QAAQ,SAAS,QAAQ;AAAA,UAC5C;AAAA,QACJ,GAAG,IAAI;AAAA,MACX;AAAA,IACJ;AACA,aAAS,uCAAuC,WAAW,QAAQ;AAC/D,aAAO,CAAC,SAAS,mBAAmB;AAChC,YAAI,CAAC,QAAQ;AACT,gBAAM,iCAAiC,sGAAsG;AAAA,QACjJ;AACA,cAAM,EAAE,mBAAmB,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAAC;AACjE,cAAM,SAAS,oBACT,aAAa,gBAAgB,sBAC7B,aAAa,gBAAgB;AAEnC,eAAO,OAAO,KAAK;AAAA,UACf;AAAA,UACA,iBAAiB,EAAE,QAAQ,SAAS,QAAQ;AAAA,UAC5C;AAAA,QACJ,GAAG,IAAI;AAAA,MACX;AAAA,IACJ;AACA,aAAS,iCAAiC,SAAS;AAC/C,aAAO;AAAA,QACH,MAAM;AAAA,QACN;AAAA,MACJ;AAAA,IACJ;AAEA,aAASC,eAAc,OAAO,QAAQ,SAAS;AAC3C,YAAM,gBAAgB;AAAA,QAClB;AAAA,QACA;AAAA,QACA,UAAU;AAAA,UACN,SAAS;AAAA,UACT,MAAM;AAAA,UACN,OAAO;AAAA,QACX;AAAA,QACA,WAAW,kBAAkB,wBAAwB;AAAA,QACrD,QAAQ,aAAa,iBAAiB;AAAA,QACtC,gBAAgB,YAAY,gBAAgB;AAAA,QAC5C,eAAe,YAAY,gBAAgB;AAAA,QAC3C,YAAY,cAAc,oBAAoB;AAAA,QAC9C,WAAW,YAAY,gBAAgB,aAAa,OAAO,EAAE,IAAI;AAAA,UAC7D,SAAS;AAAA,UACT,SAAS,QAAQ,SAAS;AAAA,QAC9B,CAAC;AAAA,MACL;AACA,YAAM,sBAAsB,EAAE,GAAG,eAAe,GAAG,QAAQ;AAC3D,YAAM,sBAAsB,MAAM,CAAC,kBAAkB;AACjD,eAAO,sBAAsB,4BAA4B;AAAA,UACrD,GAAG;AAAA,UACH,GAAG;AAAA,UACH,SAAS;AAAA,YACL,4BAA4B,sBAAsB;AAAA,YAClD,4BAA4B,sBAAsB;AAAA,UACtD;AAAA,QACJ,CAAC;AAAA,MACL;AAEA,UAAI;AACJ,UAAI,WAAW,QAAQ,gBAAgB;AACnC,YAAI,CAAC,QAAQ,eAAe,QAAQ;AAChC,gBAAM,iCAAiC,uEAAuE;AAAA,QAClH;AACA,+BAAuB,sBAAsB,EAAE,GAAG,SAAS,GAAG,cAAc,CAAC;AAAA,MACjF;AACA,aAAO,aAAa,mBAAmB;AAAA,QACnC,GAAG;AAAA,QACH,SAAS;AAAA,UACL,QAAQ,aAAa;AAAA,UACrB,sBAAsB,aAAa;AAAA,UACnC,eAAe,aAAa;AAAA,UAC5B,oBAAoB,aAAa;AAAA,UACjC,iBAAiB,aAAa;AAAA,UAC9B,WAAW,aAAa;AAAA,UACxB,cAAc,aAAa;AAAA,UAC3B,WAAW,aAAa;AAAA,UACxB,cAAc,aAAa;AAAA,UAC3B,WAAW,aAAa;AAAA,UACxB,aAAa,aAAa;AAAA,UAC1B,SAAS,aAAa;AAAA,UACtB,cAAc,aAAa;AAAA,UAC3B,8BAA8B,aAAa;AAAA,UAC3C,WAAW,aAAa;AAAA,UACxB,WAAW,aAAa;AAAA,UACxB,aAAa,aAAa;AAAA,UAC1B,cAAc,aAAa;AAAA,UAC3B,cAAc,aAAa;AAAA,UAC3B,eAAe,aAAa;AAAA,UAC5B,cAAc,aAAa;AAAA,UAC3B,eAAe,aAAa;AAAA,UAC5B,WAAW,aAAa;AAAA,UACxB,eAAe,aAAa;AAAA,UAC5B,aAAa,aAAa;AAAA,UAC1B,eAAe,aAAa;AAAA,UAC5B,cAAc,aAAa;AAAA,UAC3B,oBAAoB,aAAa;AAAA,UACjC,uBAAuB,aAAa;AAAA,UACpC,mCAAmC,aAAa;AAAA,UAChD,SAAS,aAAa;AAAA,UACtB,wBAAwB,aAAa;AAAA,UACrC,yBAAyB,aAAa;AAAA,UACtC,uBAAuB,aAAa;AAAA,UACpC,YAAY,aAAa;AAAA,UACzB,0BAA0B,aAAa;AAAA,UACvC,uBAAuB,aAAa;AAAA,UACpC,yBAAyB,aAAa;AAAA,UACtC,uBAAuB,aAAa;AAAA,UACpC,aAAa,aAAa;AAAA,UAC1B,eAAe,aAAa;AAAA,UAC5B,WAAW,UAAQ,CAAC,cAAc;AAC9B,mBAAO;AAAA,cACH,GAAG,aAAa,UAAU,IAAI,EAAE,WAAW;AAAA,gBACvC,SAAS;AAAA,kBACL,OAAO,aAAa;AAAA,kBACpB,QAAQ,aAAa;AAAA,kBACrB,aAAa,aAAa;AAAA,kBAC1B,WAAW,aAAa;AAAA,kBACxB,YAAY,aAAa;AAAA,kBACzB,YAAY,aAAa;AAAA,kBACzB,aAAa,aAAa;AAAA,kBAC1B,QAAQ,aAAa;AAAA,kBACrB,sBAAsB,aAAa;AAAA,kBACnC,UAAU,aAAa;AAAA,kBACvB,aAAa,aAAa;AAAA,kBAC1B,aAAa,aAAa;AAAA,kBAC1B,qBAAqB,aAAa;AAAA,kBAClC,sBAAsB,aAAa;AAAA,kBACnC,cAAc,aAAa;AAAA,kBAC3B,eAAe,aAAa;AAAA,kBAC5B,UAAU,aAAa;AAAA,kBACvB,cAAc,aAAa;AAAA,kBAC3B,eAAe,aAAa;AAAA,kBAC5B,mBAAmB,aAAa;AAAA,kBAChC,YAAY,aAAa;AAAA,kBACzB,QAAQ,aAAa;AAAA,kBACrB,aAAa,aAAa;AAAA,kBAC1B,cAAc,aAAa;AAAA,kBAC3B,YAAY,aAAa;AAAA,kBACzB,gBAAgB,aAAa;AAAA,kBAC7B,gBAAgB,aAAa;AAAA,kBAC7B,eAAe,aAAa;AAAA,kBAC5B,eAAe,aAAa;AAAA,kBAC5B,mBAAmB,aAAa;AAAA,kBAChC,oBAAoB,aAAa;AAAA,kBACjC,aAAa,aAAa;AAAA,kBAC1B,SAAS,aAAa;AAAA,kBACtB,YAAY,aAAa;AAAA,kBACzB,UAAU,aAAa;AAAA,kBACvB,WAAW,aAAa;AAAA,kBACxB,iBAAiB,aAAa;AAAA,kBAC9B,aAAa,aAAa;AAAA,kBAC1B,YAAY,aAAa;AAAA,gBAC7B;AAAA,cACJ,CAAC;AAAA,cACD,+BAA+B,8BAA8B,WAAW,oBAAoB;AAAA,cAC5F,wCAAwC,uCAAuC,WAAW,oBAAoB;AAAA,YAClH;AAAA,UACJ;AAAA,UACA,eAAe,MAAM,CAAC,kBAAkB;AACpC,mBAAO,gBAAgB,sBAAsB;AAAA,cACzC,GAAG;AAAA,cACH,GAAG;AAAA,cACH,SAAS;AAAA,gBACL,WAAW,gBAAgB;AAAA,gBAC3B,WAAW,gBAAgB;AAAA,gBAC3B,YAAY,gBAAgB;AAAA,gBAC5B,YAAY,gBAAgB;AAAA,gBAC5B,cAAc,gBAAgB;AAAA,cAClC;AAAA,YACJ,CAAC;AAAA,UACL;AAAA,UACA;AAAA,UACA,oBAAoB,MAAM,CAAC,kBAAkB;AACzC,gCAAoB,OAAO,KAAK,mFAAmF;AACnH,mBAAO,oBAAoB,EAAE,aAAa;AAAA,UAC9C;AAAA,UACA,oBAAoB,UAAU;AAAA,UAC9B,6BAA6B,UAAU;AAAA,UACvC,mBAAmB,UAAU;AAAA,UAC7B,sBAAsB,UAAU;AAAA,UAChC,oBAAoB,UAAU;AAAA,UAC9B,mBAAmB,UAAU;AAAA,UAC7B,kBAAkB,UAAU;AAAA,QAChC;AAAA,MACJ,CAAC;AAAA,IACL;AAEA,IAAAA,eAAc,UAAU,aAAa;AAErC,WAAO,UAAUA;AAAA;AAAA;;;AC/RjB;AAAA;AAAA;AACA,QAAMC,iBAAgB;AAOtB,WAAO,UAAUA;AAMjB,WAAO,QAAQ,UAAUA;AAAA;AAAA;;;ACdzB;AAAA;AAAA;AACA,WAAO,UAAU;AAAA;AAAA;;;ACDjB,SAAS,OAAAC,YAAW;AACpB,SAAS,iBAAiB;;;ACA1B,SAAS,YAAY,aAAAC,YAAW,UAAAC,SAAQ,YAAAC,iBAAgB;AACxD,SAAS,OAAAC,MAAK,QAAAC,aAAY;AAC1B;AAAA,EAEE;AAAA,OACK;AACP,OAAOC,cAAa;AACpB,OAAO,WAAW;AAClB,SAAS,cAAc;AAEvB,SAAS,UAAU;;;ACTnB,IAAM,eAA4B;AAAA,EAChC,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,SAAS;AAAA,EACT,OAAO;AAAA,EACP,mBAAmB;AAAA,IACjB,aAAa;AAAA,IACb,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,KAAI;AAAA,MACF,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,IAAI;AAAA,IACF,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,IAAI;AAAA,IACJ,aAAa;AAAA,IACb,eAAe;AAAA,IACf,SAAS;AAAA,IACT,gBAAgB;AAAA,EAClB;AAAA,EACA,UAAU;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,IAAI;AAAA,EACN;AACF;AAEA,IAAM,eAA4B;AAAA,EAChC,aAAa;AAAA,EACb,WAAW;AACb;AAEA,IAAO,iBAAQ;AAAA,EACb;AAAA,EACA;AACF;;;ACzCA,SAAS,MAAM,WAAW;;;ACC1B,SAAS,YAAY;AASjB,SAOE,KAPF;AAPJ,IAAM,cAAc,CAAC,UACnB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,MAAM;AAAA,IAEN;AAAA,MAAC;AAAA;AAAA,QACC,eAAc;AAAA,QACd,gBAAe;AAAA,QACf,aAAY;AAAA,QACZ,MAAK;AAAA,QACL,QAAO;AAAA,QAEP;AAAA;AAAA,YAAC;AAAA;AAAA,cACC,GAAE;AAAA,cACF,GAAE;AAAA,cACF,OAAM;AAAA,cACN,QAAO;AAAA,cACP,MAAK;AAAA,cACL,QAAO;AAAA,cACP,kBAAiB;AAAA;AAAA,UACnB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,QAAO;AAAA,cACP,MAAK;AAAA,cACL,kBAAiB;AAAA,cACjB,eAAc;AAAA;AAAA,UAChB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,IAAG;AAAA,cACH,IAAG;AAAA,cACH,IAAG;AAAA,cACH,IAAG;AAAA,cACH,MAAK;AAAA,cACL,QAAO;AAAA,cACP,kBAAiB;AAAA;AAAA,UACnB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,GAAE;AAAA,cACF,GAAE;AAAA,cACF,OAAM;AAAA,cACN,QAAO;AAAA,cACP,MAAK;AAAA,cACL,QAAO;AAAA,cACP,kBAAiB;AAAA;AAAA,UACnB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,IAAG;AAAA,cACH,IAAG;AAAA,cACH,IAAG;AAAA,cACH,IAAG;AAAA,cACH,MAAK;AAAA,cACL,QAAO;AAAA,cACP,kBAAiB;AAAA;AAAA,UACnB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,GAAE;AAAA,cACF,GAAE;AAAA,cACF,OAAM;AAAA,cACN,QAAO;AAAA,cACP,MAAK;AAAA,cACL,QAAO;AAAA,cACP,kBAAiB;AAAA;AAAA,UACnB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,IAAG;AAAA,cACH,IAAG;AAAA,cACH,IAAG;AAAA,cACH,IAAG;AAAA,cACH,MAAK;AAAA,cACL,QAAO;AAAA,cACP,kBAAiB;AAAA;AAAA,UACnB;AAAA;AAAA;AAAA,IACF;AAAA;AACF;AAGF,IAAM,QAAQ,CAAC,UACb;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,MAAM;AAAA,IAEN;AAAA,MAAC;AAAA;AAAA,QACC,eAAc;AAAA,QACd,gBAAe;AAAA,QACf,aAAY;AAAA,QACZ,MAAK;AAAA,QACL,QAAO;AAAA,QAEP;AAAA;AAAA,YAAC;AAAA;AAAA,cACC,GAAE;AAAA,cACF,GAAE;AAAA,cACF,OAAM;AAAA,cACN,QAAO;AAAA,cACP,MAAK;AAAA,cACL,QAAO;AAAA,cACP,kBAAiB;AAAA;AAAA,UACnB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,GAAE;AAAA,cACF,GAAE;AAAA,cACF,OAAM;AAAA,cACN,QAAO;AAAA,cACP,MAAK;AAAA,cACL,kBAAiB;AAAA;AAAA,UACnB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,GAAE;AAAA,cACF,GAAE;AAAA,cACF,OAAM;AAAA,cACN,QAAO;AAAA,cACP,MAAK;AAAA,cACL,kBAAiB;AAAA;AAAA,UACnB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,GAAE;AAAA,cACF,GAAE;AAAA,cACF,OAAM;AAAA,cACN,QAAO;AAAA,cACP,MAAK;AAAA,cACL,kBAAiB;AAAA;AAAA,UACnB;AAAA;AAAA;AAAA,IACF;AAAA;AACF;AA+DF,IAAM,cAAc,CAAC,UACnB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAM,aAAa,CAAC,UAClB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAM,eAAe,CAAC,UACpB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACd;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACd;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAM,gBAAgB,CAAC,UACrB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,OAAO,CAAC,UACZ;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,YAAY,CAAC,UACjB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,YAAY,CAAC,UACjB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,cAAc,CAAC,UACnB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,UAAU,CAAC,UACf;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAEF,IAAM,aAAa,CAAC,UAClB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,SAAS,CAAC,UACd;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEN;AAAA;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAY;AAAA,UACZ,MAAK;AAAA,UACL,QAAO;AAAA,UAEN;AAAA;AAAA,YACD;AAAA,cAAC;AAAA;AAAA,gBACC,GAAE;AAAA,gBACF,GAAE;AAAA,gBACF,OAAM;AAAA,gBACN,QAAO;AAAA,gBACP,MAAK;AAAA,gBACL,QAAO;AAAA,gBACP,kBAAiB;AAAA;AAAA,YAClB;AAAA,YAAQ;AAAA,YACT;AAAA,cAAC;AAAA;AAAA,gBACC,GAAE;AAAA,gBACF,GAAE;AAAA,gBACF,OAAM;AAAA,gBACN,QAAO;AAAA,gBACP,MAAK;AAAA,gBACL,kBAAiB;AAAA;AAAA,YAClB;AAAA,YAAQ;AAAA,YACT;AAAA,cAAC;AAAA;AAAA,gBACC,GAAE;AAAA,gBACF,GAAE;AAAA,gBACF,OAAM;AAAA,gBACN,QAAO;AAAA,gBACP,MAAK;AAAA,gBACL,kBAAiB;AAAA;AAAA,YAClB;AAAA,YAAQ;AAAA,YACT;AAAA,cAAC;AAAA;AAAA,gBACC,GAAE;AAAA,gBACF,GAAE;AAAA,gBACF,OAAM;AAAA,gBACN,QAAO;AAAA,gBACP,MAAK;AAAA,gBACL,kBAAiB;AAAA;AAAA,YAClB;AAAA,YAAQ;AAAA;AAAA;AAAA,MACX;AAAA;AAAA;AACF;AAEF,IAAM,YAAY,CAAC,UACjB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAEF,IAAM,oBAAoB,CAAC,UACzB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAEF,IAAM,OAAO,CAAC,UACZ;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,WAAW,CAAC,UAChB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA,MAAC;AAAA;AAAA,QACC,eAAc;AAAA,QACd,aAAY;AAAA,QACZ,MAAK;AAAA,QACL,QAAO;AAAA,QACP,gBAAe;AAAA,QACf,kBAAiB;AAAA,QAEjB;AAAA,8BAAC,UAAK,GAAE,KAAI,GAAE,MAAK,OAAM,KAAI,QAAO,KAAI;AAAA,UACxC,oBAAC,UAAK,GAAE,MAAK,GAAE,MAAK,OAAM,KAAI,QAAO,KAAI;AAAA,UACzC,oBAAC,UAAK,GAAE,KAAI,GAAE,KAAI,OAAM,KAAI,QAAO,KAAI;AAAA,UACvC;AAAA,YAAC;AAAA;AAAA,cACC,QAAO;AAAA,cACP,YAAS;AAAA,cACT,eAAc;AAAA,cACd,QAAO;AAAA;AAAA,UACR;AAAA,UACD,oBAAC,UAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK;AAAA,UACrC,oBAAC,UAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK;AAAA,UACtC,oBAAC,UAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK;AAAA;AAAA;AAAA,IACtC;AAAA;AACF;AAGF,IAAM,WAAW,CAAC,UAChB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP,+BAAC,OAAE,MAAK,WACN;AAAA,0BAAC,UAAK,GAAE,sgBAAqgB;AAAA,MAC7gB;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACN;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACN;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACN;AAAA,OACH;AAAA;AACF;AAGF,IAAM,UAAU,CAAC,UACf;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,SAAS,CAAC,UACd;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,WAAW,CAAC,UAChB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,WAAW,CAAC,UAChB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,aAAa,CAAC,UAClB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,UAAU,CAAC,UACf;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,oBAAoB,CAAC,UACzB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,cAAc,CAAC,UACnB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAEF,IAAM,gBAAgB,CAAC,UACrB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP,+BAAC,SACC;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,OACF;AAAA;AACF;AAGF,IAAM,cAAc,CAAC,UACnB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP,+BAAC,SACC;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,OACF;AAAA;AACF;;;ADz8CF,OAAO,UAAU;AAyIX,SACW,OAAAC,MADX,QAAAC,aAAA;AAlIN,IAAM,WAAqB;AAAA,EACzB;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AACF;AAEA,IAAM,UAAU,CAAC,SAAiB;AAChC,SAAO,SAAS,KAAK,CAACC,UAASA,MAAK,SAAS,IAAI,GAAG;AACtD;AASA,IAAM,eAAe,CAAC,EAAE,MAAAA,OAAM,MAAAC,OAAM,SAAS,MAAyB;AACpE,QAAMC,SAAO,QAAQF,KAAI;AACzB,SACE,gBAAAF,KAAC,QAAK,MAAMG,OACV,0BAAAF,MAAC,QAAK,IAAI,eAAO,cACd;AAAA,IAAAG,UAAQ,gBAAAJ,KAACI,QAAA,EAAK,IAAI,eAAO,cAAc;AAAA,IACxC,gBAAAJ,KAAC,OAAK,UAAS;AAAA,KACjB,GACF;AAEJ;AAEA,IAAO,wBAAQ;;;AEpJf,wBAAsB;AAOlB,gBAAAK,YAAA;AAFJ,IAAM,eAAe,CAAC,EAAE,QAAQ,MAC9B,gBAAAA,KAAC,SAAI,WAAU,oBACb,0BAAAA;AAAA,EAAC;AAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,KAAK,iCAAiC,OAAO;AAAA,IAC7C,aAAY;AAAA,IACZ,OAAM;AAAA,IACN,iBAAe;AAAA,IACf,OAAM;AAAA;AACR,GACF;AAGF,aAAa,YAAY;AAAA,EACvB,SAAS,kBAAAC,QAAU,OAAO;AAC5B;AAEA,IAAO,wBAAQ;;;ACvBf,SAAS,OAAAC,YAAW;;;ACCpB,IAAM,QAAqB;AAAA,EACzB,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,YAAY;AAAA,EACZ,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,YAAY;AAAA,IACV,kBAAkB;AAAA,EACpB;AAAA,EACA,mBAAmB;AAAA,IACjB,SAAS;AAAA,IACT,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,iBAAiB;AAAA,IACjB,cAAc;AAAA,IACd,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,WAAW;AAAA,EACb;AACF;AAEA,IAAOC,kBAAQ;AAAA,EACb;AACF;;;ADvBS,gBAAAC,YAAA;AADT,IAAM,QAAQ,CAAC,EAAE,SAAS,MAAkB;AAC1C,SAAO,gBAAAA,KAACC,MAAA,EAAI,IAAIC,gBAAO,OAAQ,UAAS;AAC1C;AACA,IAAO,gBAAQ;;;AEVf,SAA8B,aAAAC,YAAW,QAAQ,gBAAgB;AACjE,SAAS,OAAAC,MAAK,QAAQ,QAAAC,aAAY;;;ACClC,SAAS,QAAAC,aAAY;AAGnB,SAQE,OAAAC,MARF,QAAAC,aAAA;AADF,IAAM,YAAY,CAAC,UACjB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,qBAAQ;;;AC9Bf,SAAS,iBAA6D;AAEvD,SAAR,gBACL,KAEA,WACA;AACA,YAAU,MAAM;AACd,aAAS,mBAAmB,OAAmB;AAC7C,YAAM,EAAE,MAAAE,OAAM,gBAAgB,IAAI;AAClC,UACE,IAAI,WACJ,MAAM,kBAAkB,QACxB,CAAC,IAAI,QAAQ,SAAS,MAAM,MAAM,GAClC;AACA,kBAAU,EAAE,aAAa,MAAM,CAAC;AAChC,cAAM,YAAYA,MAAK,sBAAsB,EAAE,MAAM;AACrD,QAAAA,MAAK,UAAU,OAAO,YAAY;AAClC,wBAAgB,YAAY;AAC5B,QAAAA,MAAK,MAAM,eAAe,KAAK;AAAA,MACjC;AAAA,IACF;AACA,aAAS,iBAAiB,aAAa,kBAAkB;AACzD,WAAO,MAAM;AACX,eAAS,oBAAoB,aAAa,kBAAkB;AAAA,IAC9D;AAAA,EACF,GAAG,CAAC,CAAC;AACP;;;ACzBA,IAAM,iBAA8B;AAAA,EAClC,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,YAAY;AAAA,EACZ,UAAU;AAAA,IACR,WAAW;AAAA,EACb;AAAA,EAEA,SAAS;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA,IACT,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,cAAc;AAAA,EAChB;AACF;AAEA,IAAM,YAAyB;AAAA,EAC7B,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,iBAAiB;AAAA,EACjB,UAAU;AAAA,EACV,KAAK;AAAA,EACL,MAAM;AAAA,EACN,SAAS;AAAA,EACT,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,QAAQ;AACV;AAEA,IAAM,QAAqB;AAAA,EACzB,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,SAAS;AAAA,EAET,SAAS;AAAA,IACP,SAAS;AAAA,IACT,WAAW;AAAA,IACX,UAAU;AAAA,IACV,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,EACX;AACF;AAEA,IAAM,cAA2B;AAAA,EAC/B,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,OAAO;AAAA,EACP,OAAO;AAAA,EAEP,UAAU;AAAA,IACR,OAAO;AAAA,EACT;AACF;AAEA,IAAOC,kBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;AH1CQ,SAMgB,OAAAC,MANhB,QAAAC,aAAA;AApBO,SAAR,SAA0B,EAAE,SAAS,GAAU;AACpD,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,KAAK;AACpD,QAAM,WAAW,OAAuB;AAExC,EAAAC,WAAU,MAAM;AACd,QAAI,aAAa;AACf,YAAM,YAAY,SAAS,KAAK,sBAAsB,EAAE;AACxD,eAAS,KAAK,MAAM,MAAM,GAAG,SAAS;AACtC,eAAS,KAAK,UAAU,IAAI,YAAY;AAAA,IAC1C,OAAO;AACL,eAAS,KAAK,UAAU,OAAO,YAAY;AAC3C,eAAS,KAAK,MAAM,eAAe,KAAK;AAAA,IAC1C;AAAA,EACF,GAAG,CAAC,WAAW,CAAC;AAEhB,kBAAgB,UAAU,MAAM,eAAe,KAAK,CAAC;AAErD,SACE,gBAAAD,MAAC,SACE;AAAA,mBACC,gBAAAA,MAACE,OAAA,EAAK,IAAIC,gBAAO,WACf;AAAA,sBAAAJ;AAAA,QAAC;AAAA;AAAA,UACC,IAAII,gBAAO;AAAA,UACX,cAAY;AAAA,UACZ,MAAK;AAAA,UACL,SAAQ;AAAA,UACR,MAAM,MAAM,gBAAAJ,KAAC,sBAAU,MAAM,IAAI;AAAA,UACjC,SAAS,MAAM,eAAe,KAAK;AAAA;AAAA,MACrC;AAAA,MACA,gBAAAA,KAACK,MAAA,EAAI,IAAID,gBAAO,OAAO,KAAK,UACzB,UACH;AAAA,OACF;AAAA,IAEF,gBAAAJ,KAACK,MAAA,EAAI,IAAID,gBAAO,gBAAgB,SAAS,MAAM,eAAe,IAAI,GAC/D,UACH;AAAA,KACF;AAEJ;;;AIhDA,SAAS,OAAAE,MAAK,QAAAC,OAAM,WAAW,MAAM,QAAAC,aAAY;;;ACCjD,IAAMC,aAAyB;AAAA,EAC7B,IAAI;AAAA,EACJ,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,OAAO,CAAC,QAAQ,KAAK;AAAA,EACrB,YAAY;AAAA,EACZ,UAAU;AAAA,IACR,QAAQ;AAAA,EACV;AAAA,EACA,mBAAmB;AAAA,IACjB,aAAa;AAAA,IACb,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,wBAAwB;AAAA,MACtB,YAAY;AAAA,MACZ,OAAO;AAAA,IACT;AAAA,IACA,iBAAiB;AAAA,MACf,YAAY;AAAA,MACZ,OAAO;AAAA,IACT;AAAA,EACF;AACF;AAEA,IAAM,QAAqB;AAAA,EACzB,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY,CAAC,QAAQ,MAAM;AAAA,EAC3B,OAAO;AACT;AAEA,IAAM,aAA0B;AAAA,EAC9B,SAAS;AAAA,EACT,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,UAAU;AAAA,IACR,SAAS;AAAA,IACT,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,YAAY;AAAA,EACd;AACF;AAEA,IAAM,cAA2B;AAAA,EAC/B,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,OAAO;AACT;AAEA,IAAM,gBAA6B;AAAA,EACjC,IAAI;AAAA,EACJ,YAAY;AACd;AAEA,IAAM,OAAoB;AAAA,EACxB,GAAG;AAAA,EACH,OAAO;AACT;AAEA,IAAOC,kBAAQ;AAAA,EACb,WAAAD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ADtEA,OAAO,WAAW;AAoBV,SACE,OAAAE,MADF,QAAAC,aAAA;AAVR,IAAM,gBAAgB,CAAC;AAAA,EACrB,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA4B;AAC1B,SACE,gBAAAH,KAACI,OAAA,EAAK,MAAM,QAAQ,IAAIC,gBAAO,WAC5B,kBACC,gBAAAJ,MAACK,MAAA,EACC;AAAA,oBAAAN;AAAA,MAAC;AAAA;AAAA,QACC,KAAK;AAAA,QACL,KAAKE;AAAA,QACL,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,OAAM;AAAA,QACN,OAAO,EAAE,OAAO,QAAQ,QAAQ,OAAO;AAAA;AAAA,IACzC;AAAA,IACA,gBAAAF,KAAC,QAAK,IAAIK,gBAAO,YAAY,WAAU,SACpC,UAAAH,QACH;AAAA,KACF,IAEA,gBAAAD,MAACK,MAAA,EAAI,IAAI,EAAE,SAAS,OAAO,GACzB;AAAA,oBAAAN,KAAC,QAAK,IAAIK,gBAAO,OAAO,WAAU,SAC/B,UAAAH,QACH;AAAA,IACCC,gBACC,gBAAAH,KAAC,QAAK,IAAIK,gBAAO,aAAa,WAAU,eACrC,UAAAF,cACH;AAAA,IAED,aACC,gBAAAF,MAACM,OAAA,EAAK,IAAIF,gBAAO,eACf;AAAA,sBAAAL,KAAC,QAAK,IAAIK,gBAAO,MAAM,WAAU,QAC9B,qBACH;AAAA,MACA,gBAAAL;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,OAAM;AAAA,UACN,WAAU;AAAA,UACV,MAAM;AAAA;AAAA,MACR;AAAA,OACF;AAAA,KAEJ,GAEJ;AAEJ;AAEA,IAAO,0BAAQ;;;AEhEf,SAAS,eAAe,aAAAQ,YAAW,YAAAC,iBAAgB;AAGnD,SAAS,iBAAiB;AAqNpB,gBAAAC,YAAA;AA/JC,IAAM,iBAAiB,cAA2B;AAAA,EACvD,cAAc,CAAC;AAAA,EACf,iBAAiB,MAAM;AAAA,EACvB,YAAY;AAAA,IACV,MAAM;AAAA,IACN,SAAS;AAAA,EACX;AAAA,EACA,eAAe,MAAM;AAAA,EACrB,kBAAkB,MAAM;AAAA,EACxB,qBAAqB,MAAM;AAAA,EAC3B,iBAAiB;AAAA,EACjB,sBAAsB;AAAA,EACtB,mBAAmB;AAAA,EACnB,sBAAsB;AAAA,EACtB,mBAAmB,CAAC;AAAA,EACpB,oBAAoB,MAAM;AAAA,EAC1B,sBAAsB,oBAAI,IAAI;AAAA;AAAA,EAE9B,sBAAsB,CAAC,MAAW;AAAA,EAClC,yBAAyB,MAAM;AAAA,EAC/B,sBAAsB,MAAM;AAAA;AAAA,EAE5B,yBAAyB,CAAC,MAAW;AAAA,EACrC,4BAA4B,MAAM;AAAA,EAClC,oBAAoB,MAAM;AAAA,EAC1B,sBAAsB,MAAM;AAAA,EAC5B,iBAAiB,CAAC;AAAA,EAClB,oBAAoB,MAAM;AAAA,EAC1B,oBAAoB,CAAC;AAAA,EACrB,uBAAuB,MAAM;AAAA,EAC7B,QAAQ;AACV,CAAC;AAGD,IAAM,yBAAyB,CAAC,EAAE,UAAU,GAAG,MAAM,MAAa;AAChE,QAAM,CAAC,cAAc,eAAe,IAAID,UAAiB,CAAC,CAAC;AAC3D,QAAM,CAAC,YAAY,aAAa,IAAIA,UAAqB;AAAA,IACvD,MAAM;AAAA,IACN,SAAS;AAAA,EACX,CAAC;AAED,QAAM,CAAC,mBAAmB,oBAAoB,IAAIA;AAAA,IAChD,MAAM;AAAA,EACR;AACA,QAAM,CAAC,sBAAsB,uBAAuB,IAAIA,UAAS,KAAK;AACtE,QAAM,CAAC,sBAAsB,uBAAuB,IAAIA,UAAS,EAAE;AACnE,QAAM,CAAC,sBAAsB,uBAAuB,IAAIA,UAAS,oBAAI,IAAI,CAAC;AAC1E,QAAM,CAAC,mBAAmB,oBAAoB,IAAIA,UAAS,MAAM,QAAQ;AACzE,QAAM,CAAC,iBAAiB,kBAAkB,IAAIA,UAAS,MAAM,SAAS;AACtE,QAAM,CAAC,iBAAiB,kBAAkB,IAAIA,UAAS,MAAM,QAAQ;AACrE,QAAM,CAAC,oBAAoB,qBAAqB,IAAIA;AAAA,IAClD,MAAM;AAAA,EACR;AACA,QAAM,EAAE,QAAQ,aAAa,GAAG,UAAU,IAAI;AAC9C,QAAM,SAAS,eAAe;AAC9B,QAAM,WAAW,UAAU;AAE3B,EAAAD,WAAU,MAAM;AACd,yBAAqB,MAAM,QAAQ;AAAA,EACrC,GAAG,CAAC,MAAM,QAAQ,CAAC;AAEnB,EAAAA,WAAU,MAAM;AACd,QAAI,MAAM,oBAAoB;AAAI,8BAAwB,IAAI;AAAA,aACrD,MAAM,oBAAoB;AACjC,2BAAqB,MAAM,eAAe;AAAA,EAC9C,GAAG,CAAC,MAAM,eAAe,CAAC;AAE1B,QAAM,6BAA6B,CAACG,WAAkB;AACpD,4BAAwB,CAACC,0BAAyB;AAChD,YAAM,OACJA,sBAAqB,IAAID,MAAK,MAAM,QAChC,OACA,CAACC,sBAAqB,IAAID,MAAK;AAErC,aAAO,IAAI,IAAIC,sBAAqB,IAAID,QAAO,IAAI,CAAC;AAAA,IACtD,CAAC;AAAA,EACH;AAEA,QAAM,uBAAuB,CAAC,iBAA2B;AACvD,yBAAqB,QAAQ,CAAC,QAAQ,QAAQ;AAC5C,UAAI,CAAC,aAAa,SAAS,GAAG,GAAG;AAC/B,gCAAwB,CAACC,0BAAyB;AAChD,iBAAO,IAAI,IAAIA,sBAAqB,IAAI,KAAK,KAAK,CAAC;AAAA,QACrD,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH;AAEA,QAAM,qBAAqB,CAACD,WAAkB;AAC5C,4BAAwB,CAACC,0BAAyB;AAChD,aAAO,IAAI,IAAIA,sBAAqB,IAAID,QAAO,IAAI,CAAC;AAAA,IACtD,CAAC;AAAA,EACH;AAEA,QAAM,mBAAmB,MAAM;AAC7B,kBAAc,CAAC,EAAE,MAAAE,OAAM,QAAQ,MAAM;AACnC,YAAM,QAAQ,aAAa,UAAU,CAAC,YAAY,QAAQ,SAASA,KAAI;AACvE,UAAI,UAAU;AAAI,eAAO,EAAE,MAAAA,OAAM,QAAQ;AAEzC,YAAM,eAAe,CAAC,QAAQ,KAAK,aAAa,QAAQ,CAAC,EAAE;AAC3D,YAAM,mBAAmB,CAAC,QAAQ,CAAC,IAAI,aAAa,QAAQ,CAAC,EAAE;AAC/D,YAAM,kBAAkB,CAAC,iBAAiB,SACtC,KACA,iBAAiB,MAAM,EAAE,EAAE,CAAC,EAAE;AAElC,aAAO;AAAA,QACL,MAAM;AAAA,QACN,SAAS;AAAA,MACX;AAAA,IACF,CAAC;AAAA,EACH;AAEA,QAAM,sBAAsB,MAAM;AAChC,kBAAc,CAAC,EAAE,MAAAA,OAAM,QAAQ,MAAM;AACnC,YAAM,UAAU,aAAa,KAAK,CAACC,aAAYA,SAAQ,SAASD,KAAI;AACpE,YAAM,QAAQ,SAAS,SAAS;AAAA,QAC9B,CAAC,UAAU,MAAM,SAAS;AAAA,MAC5B;AAEA,UAAI,CAAC,WAAW,UAAU;AAAI,eAAO,EAAE,MAAAA,OAAM,QAAQ;AAErD,aAAO;AAAA,QACL,MAAAA;AAAA,QACA,SAAS,CAAC,QAAQ,KAAK,QAAQ,SAAS,QAAQ,CAAC,EAAE;AAAA,MACrD;AAAA,IACF,CAAC;AAAA,EACH;AAEA,SACE,gBAAAH;AAAA,IAAC,eAAe;AAAA,IAAf;AAAA,MACC,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,GAAG;AAAA,MACL;AAAA,MAEA,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAO;AAAA,YACL,UAAU;AAAA,cACR,mBAAmB,WAAW,WAAW,CAAC;AAAA,YAC5C;AAAA,UACF;AAAA,UAEC;AAAA;AAAA,MACH;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,yBAAQ;;;ACtOR,IAAM,aAAa,CAAC,QAAgB,IAAI,QAAQ,eAAe,EAAE;AAWjE,IAAM,UAAU,CAAC,QAAgB;AACtC,SAAO,IACJ,UAAU,KAAK,EACf,QAAQ,oBAAoB,EAAE,EAC9B,YAAY,EACZ,QAAQ,aAAa,EAAE,EACvB,QAAQ,QAAQ,GAAG,EACnB,QAAQ,OAAO,GAAG,EAClB,KAAK;AACV;AAIO,IAAM,mBAAkD,CAAC,aAAa;AAC3E,MAAI,CAAC;AAAU,WAAO;AAAA,WACb,MAAM,QAAQ,QAAQ;AAC7B,WAAO,SACJ,IAAI,CAAC,UAAU;AACd,UAAI,OAAO,UAAU;AAAU,eAAO;AACtC,aAAO,iBAAiB,MAAM,MAAM,QAAQ;AAAA,IAC9C,CAAC,EACA,KAAK,EAAE;AAAA,OACP;AACH,QAAI,OAAO,aAAa;AAAU,aAAO;AACzC,WAAO,iBAAiB,SAAS,OAAO,EAAE,UAAU,CAAC;AAAA,EACvD;AACF;;;ACrCA,OAAO,aAAa;AAEpB,IAAM,cAAc,MAAM;AACxB,UAAQ,WAAW;AAAA,IACjB,OAAO;AAAA,IACP,gBAAgB;AAAA,MACd,cAAc;AAAA,MACd,kBAAkB;AAAA,MAClB,oBAAoB;AAAA,MACpB,qBAAqB;AAAA,MACrB,gBAAgB;AAAA,MAChB,kBAAkB;AAAA,MAClB,WAAW;AAAA,MACX,SAAS;AAAA,IACX;AAAA,EACF,CAAC;AACH;AAEA,IAAO,sBAAQ;;;AClBf,IAAAK,kBAAA;AAAA,EAAC,KAAAC;AAAA,EAMA,SAAAC;AAAA,EAOA,MAAAC;AAAA,EAgBA,YAAAC;AAAA,EAoCA,gBAAAC;AAAA,EAeA,kBAAAC;AAAA,EAeA,mBAAAC;AAAA,EAuBA,mBAAAC;AAAA,EAeA,UAAAC;AAAA,EAKA,cAAAC;AAAA;;;AC1ID;AAAA,EACE,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,yBAAyB;AAAA,EACzB,wBAAwB;AAAA,EACxB,yBAAyB;AAAA,EACzB,sBAAsB;AAAA,EACtB,4BAA4B;AAAA,EAC5B,0BAA0B;AAAA,EAC1B,8BAA8B;AAAA,EAC9B,qBAAqB;AAAA,EACrB,gCAAgC;AAAA,EAChC,8BAA8B;AAAA,EAC9B,wBAAwB;AAAA,EACxB,0BAA0B;AAAA,EAC1B,sBAAsB;AAAA,EACtB,kBAAkB;AAAA,EAClB,uBAAuB;AAAA,EACvB,oCAAsC;AAAA,EACtC,8BAAgC;AAAA,EAChC,oBAAoB;AAAA,EACpB,0BAA0B;AAAA,EAC1B,qBAAqB;AAAA,EACrB,sBAAsB;AACxB;;;AC1BA;AAAA,EACE,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,yBAAyB;AAAA,EACzB,wBAAwB;AAAA,EACxB,yBAAyB;AAAA,EACzB,sBAAsB;AAAA,EACtB,4BAA4B;AAAA,EAC5B,8BAA8B;AAAA,EAC9B,0BAA0B;AAAA,EAC1B,8BAA8B;AAAA,EAC9B,qBAAqB;AAAA,EACrB,gCAAgC;AAAA,EAChC,wBAAwB;AAAA,EACxB,0BAA0B;AAAA,EAC1B,sBAAsB;AAAA,EACtB,kBAAkB;AAAA,EAClB,uBAAuB;AAAA,EACvB,oCAAsC;AAAA,EACtC,8BAAgC;AAAA,EAChC,oBAAoB;AAAA,EACpB,0BAA0B;AAAA,EAC1B,qBAAqB;AAAA,EACrB,sBAAsB;AACxB;;;AC1BA;AAAA,EACE,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,yBAAyB;AAAA,EACzB,wBAAwB;AAAA,EACxB,yBAAyB;AAAA,EACzB,sBAAsB;AAAA,EACtB,4BAA4B;AAAA,EAC5B,8BAA8B;AAAA,EAC9B,0BAA0B;AAAA,EAC1B,8BAA8B;AAAA,EAC9B,qBAAqB;AAAA,EACrB,gCAAgC;AAAA,EAChC,wBAAwB;AAAA,EACxB,0BAA0B;AAAA,EAC1B,sBAAsB;AAAA,EACtB,kBAAkB;AAAA,EAClB,uBAAuB;AAAA,EACvB,oCAAsC;AAAA,EACtC,8BAAgC;AAAA,EAChC,oBAAoB;AAAA,EACpB,0BAA0B;AAAA,EAC1B,qBAAqB;AAAA,EACrB,sBAAsB;AACxB;;;ACrBA,IAAM,cAAc,MAIf;AACH,QAAMC,YAAW;AAAA,IACf,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EACN;AAEA,SAAOA;AACT;AAEO,IAAM,WAAW,YAAY;;;ApB+B5B,gBAAAC,MAwFJ,QAAAC,aAxFI;AAxBR,oBAAY;AAEZ,IAAM,oBAAoB,CAAC;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAA8B;AAC5B,QAAM,CAAC,GAAG,IAAI,IAAIC,UAAS,QAAQ;AACnC,QAAM,YAAY,iBAAiB,aAAa,QAAQ;AACxD,QAAM,OAAO,QAAQ,SAAS;AAC9B,SACE,gBAAAF;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,MACX,WAAU;AAAA,MACV,YAAW;AAAA,MACX,UAAU,CAAC,QAAQ,UAAU;AAC3B,YAAI;AAAQ,sBAAY,IAAI;AAAA;AACvB,sBAAY,MAAM,OAAO,CAAC;AAE/B,aAAK,MAAM,mBAAmB,CAAC;AAAA,MACjC;AAAA,MAEC,oBAAU,IACT,gBAAAA,KAAC,QAAG,IAAI,MAAM,WAAWG,gBAAO,SAAU,GAAG,cAAc,IAE3D,gBAAAH,KAAC,QAAG,IAAI,MAAM,WAAWG,gBAAO,SAAU,GAAG,cAAc;AAAA;AAAA,EAE/D;AAEJ;AAEA,IAAM,UAAU,CAAC,EAAE,MAAM,MAAAC,OAAM,GAAG,MAAM,MAAiB;AACvD,QAAM,iBAAyBA,QAAOA,QAAO;AAC7C,SACE,gBAAAJ;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,GAAGG,gBAAO,UAAU,IAC7B,mBAAmB,SACfA,gBAAO,iBACP,mBAAmB,WACnBA,gBAAO,mBACP,mBAAmB,YACnBA,gBAAO,oBACP,mBAAmB,YACnBA,gBAAO,oBACP,EACN;AAAA,MAEA,0BAAAH,KAAC,SAAK,GAAG,OAAO;AAAA;AAAA,EAClB;AAEJ;AAEA,IAAM,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,MAAiB;AACxD,QAAM,YAAYK,QAAwB,IAAI;AAC9C,QAAM,MAAMA,QAAoB;AAEhC,QAAM,CAAC,SAAS,UAAU,IAAIH,UAAS,EAAE;AACzC,QAAM,CAAC,OAAO,QAAQ,IAAIA,UAAS,CAAC;AACpC,QAAM,CAAC,QAAQ,SAAS,IAAIA,UAAS,CAAC;AAEtC,EAAAI,WAAU,MAAM;AACd,UAAM,iBAAiB,IAAI,eAAe,MAAM;AAC9C,UAAI,CAAC,IAAI;AAAS;AAClB,YAAMC,SAAQ,IAAI,QAAQ;AAC1B,eAASA,MAAK;AACd,gBAAUA,SAAQ,CAAC;AAAA,IACrB,CAAC;AAED,UAAM,kBAAkB,iBAAkB;AACxC,YAAM,EAAE,IAAI,IAAI,MAAMC,SAAQ,OAAO,cAAc,MAAM,QAAQ;AACjE;AAAA,QACE,IAAI,QAAQ,mBAAmB,EAAE,EAAE,WAAW,eAAe,EAAE;AAAA,MACjE;AAAA,IACF;AAEA,oBAAgB;AAChB,QAAI,IAAI;AAAS,qBAAe,QAAQ,IAAI,OAAO;AAAA,EACrD,GAAG,CAAC,CAAC;AAEL,SACE,gBAAAR,KAACS,MAAA,EAAI,KAAU,WAAWN,gBAAO,cAC/B,0BAAAH;AAAA,IAAC;AAAA;AAAA,MACC,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA,gBAAgB;AAAA,QACd,UAAU;AAAA,QACV,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,YAAY;AAAA,MACd;AAAA,MACA,YAAY;AAAA,MACZ,eAAe;AAAA,MACf,aAAa;AAAA,MAEb,0BAAAA,KAAC,SAAI,OAAc,QAChB,gBAAM,OAAO,GAChB;AAAA;AAAA,EACF,GACF;AAEJ;AAEA,IAAM,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,MAAiB;AACxD,QAAM,CAAC,aAAa,cAAc,IAAIE,UAAS,KAAK;AACpD,QAAM,EAAE,OAAO,IAAI,WAAW,cAAc;AAC5C,QAAM;AAAA;AAAA,IAEJ,gBAAAF,KAAC,SAAI,KAAK,MAAM,KAAK,KAAK,MAAM,KAAK,SAAS,MAAM,eAAe,IAAI,GAAG;AAAA;AAE5E,QAAM,eACJ,gBAAAC,MAAC,gBAAW,WAAW,GAAGE,gBAAO,UAAU,IAAIA,gBAAO,iBAAiB,IACpE;AAAA,aAAS,MAAM,EAAE,qBAAqB;AAAA,IAAE;AAAA,IAAE,MAAM;AAAA,KACnD;AAGF,MAAI,OAAwC,EAAE,QAAQ,IAAI,KAAK,CAAC,EAAE;AAClE,MAAI;AACF,WAAO,KAAK,MAAM,MAAM,GAAG;AAAA,EAC7B,SAAS,OAAO;AACd,YAAQ,IAAI,iBAAiB,KAAK;AAClC,WAAO;AAAA,EACT;AACA,SAAO,CAAC,cAAc,gBAAAH,KAAC,YAAU,sBAAW,IAAc;AAC5D;AAEA,IAAO,qBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,MACtB,gBAAAA,KAACU,OAAA,EAAK,WAAWP,gBAAO,UAAW,GAAG,OAAO;AAAA,EAE/C,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,MAAiB,gBAAAH,KAAC,WAAO,GAAG,OAAO;AAAA,EAC5D,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,MAAiB,gBAAAA,KAAC,QAAI,GAAG,OAAO;AAAA,EACtD,KAAK;AAAA,EACL,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,MAAiB;AACvC,WAAO,gBAAAA,KAACS,MAAA,EAAI,IAAI,EAAE,aAAa,MAAM,GAAI,GAAG,OAAO;AAAA,EACrD;AAAA,EACA,YAAY,CAAC,EAAE,GAAG,MAAM,MAAiB;AACvC,WAAO,gBAAAT,KAAC,WAAS,GAAG,OAAO;AAAA,EAC7B;AAAA,EACA,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,MAAiB;AACvC,WAAO,gBAAAA,KAAC,UAAK,WAAWG,gBAAO,MAAO,GAAG,OAAO;AAAA,EAClD;AAAA,EACA,KAAK,CAAC,EAAE,GAAG,MAAM,MAAiB;AAChC,QAAI,MAAM,aAAa,MAAM,cAAc;AACzC,aAAO,gBAAAH,KAAC,kBAAgB,GAAG,OAAO;AAEpC,WAAO,gBAAAA,KAAC,SAAI,WAAWG,gBAAO,KAAM,GAAG,OAAO;AAAA,EAChD;AAAA,EACA,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,MAAiB;AACrC,UAAM,EAAE,YAAY,eAAe,iBAAiB,IAClD,WAAW,cAAc;AAE3B,WACE,gBAAAH;AAAA,MAAC;AAAA;AAAA,QACC,OAAO;AAAA,QACP,aAAa,CAAC,SAAS;AACrB,wBAAc,CAAC,EAAE,MAAAW,OAAM,QAAQ,OAAO;AAAA,YACpC,MAAM;AAAA,YACN,SAASA,UAAS,OAAO,KAAK;AAAA,UAChC,EAAE;AAAA,QACJ;AAAA,QACA,aAAa,CAAC,MAAM,OAAO,MAAM;AAC/B,cAAI,MAAM,mBAAmB,IAAI,KAAK,WAAW,SAAS,MAAM;AAC9D,6BAAiB;AAAA,UACnB;AAAA,QACF;AAAA,QACC,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AAAA,EACA,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,MAAiB;AACrC,UAAM,EAAE,YAAY,eAAe,oBAAoB,IACrD,WAAW,cAAc;AAE3B,WACE,gBAAAX;AAAA,MAAC;AAAA;AAAA,QACC,OAAO;AAAA,QACP,aAAa,CAAC,SAAS;AACrB,wBAAc,CAAC,EAAE,MAAAW,MAAK,OAAO;AAAA,YAC3B,MAAAA;AAAA,YACA,SAAS;AAAA,UACX,EAAE;AAAA,QACJ;AAAA,QACA,aAAa,CAAC,MAAM,OAAO,MAAM;AAC/B,cAAI,MAAM,mBAAmB,IAAI,KAAK,WAAW,YAAY,MAAM;AACjE,gCAAoB;AAAA,UACtB;AAAA,QACF;AAAA,QACC,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACF;;;ADjNQ,gBAAAC,aAAA;AAVR,IAAM,aAAa;AAEnB,IAAM,mBAAmB,CAAC;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AACF,MAA6B;AAC3B,MAAI,sBAAc,OAAO;AACvB,WACE,gBAAAA,MAACC,MAAA,EACC,0BAAAD;AAAA,MAAC;AAAA;AAAA,QACC,YAAY,EAAE,GAAG,oBAAY,GAAG,iBAAiB;AAAA,QACjD,MAAI;AAAA,QACH,GAAG;AAAA,QACJ;AAAA;AAAA,IACF,GACF;AAAA,EAEJ;AAEA,SACE,gBAAAA,MAACC,MAAA,EACC,0BAAAD,MAAC,cAAW,YAAY,oBAAY,MAAI,MAAE,GAAG,YAAY,GAC3D;AAEJ;AAEA,IAAO,2BAAQ;;;AsBhCf,SAAS,cAAAE,aAAY,aAAAC,kBAAiB;AACtC,OAAOC,WAAU;AACjB,SAAS,iBAAiB;AAC1B,SAAS,OAAAC,MAAK,QAAAC,aAAY;AAC1B,OAAO,mBAAmB;;;ACF1B,IAAM,iBAA8B;AAAA,EAClC,UAAU;AAAA,EACV,KAAK;AACP;AAEA,IAAM,WAAwB;AAAA,EAC5B,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,IAAI;AAAA,EACJ,OAAO;AACT;AAEA,IAAM,WAAwB;AAAA,EAC5B,YAAY;AAAA,EACZ,IAAI;AACN;AAEA,IAAM,OAAwD,CAC5D,OACA,WACG;AACH,QAAM,oBAAoB,GAAG,UAAU,IAAI,KAAK,EAAE;AAClD,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,IAAI,GAAG,QAAQ,CAAC;AAAA,IAChB,IAAI,CAAC,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK;AAAA,IAC7C,YAAY,aAAa,UAAU,UAAU,IAAI,YAAY,SAAS;AAAA,IACtE,UAAU,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,MAAM;AAAA,IACzD,YAAY;AAAA,MACV;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG,UAAU,IAAI,KAAK,EAAE;AAAA,MACxB;AAAA,IACF;AAAA,IACA,YAAY,GAAG,SAAS,QAAQ,KAAK;AAAA,IACrC,OAAO,GAAG,SAAS,YAAY,SAAS;AAAA,IAExC,UAAU;AAAA,MACR,OAAO;AAAA,IACT;AAAA,EACF;AACF;AAEA,IAAM,oBAAiC;AAAA,EACrC,IAAI;AAAA,EACJ,YAAY;AACd;AAEA,IAAOC,kBAAQ,EAAE,UAAU,gBAAgB,MAAM,mBAAmB,SAAS;;;ADerE,gBAAAC,OAYE,QAAAC,aAZF;AAhDR,IAAM,kBAAkB,CAAC,EAAE,aAAa,SAAS,MAAa;AAC5D,QAAM,SAAS,UAAU;AACzB,QAAM,EAAE,cAAc,YAAY,iBAAiB,cAAc,IAC/DC,YAAW,cAAc;AAE3B,EAAAC,WAAU,MAAM;AACd,UAAMC,YAAmB,eAAe,CAAC;AACzC,QAAI,CAACA,UAAS,QAAQ;AACpB,eAAS,iBAAiB,QAAQ,EAAE,QAAQ,CAAC,YAAY;AACvD,cAAM,cAAc,QAAQ;AAC5B,cAAMC,QAAO;AAAA,UACX,OAAO,WAAW,QAAQ,SAAS,EAAE,QAAQ,KAAK,EAAE;AAAA,UACpD,MAAM;AAAA,QACR;AAEA,YAAI,QAAQ,YAAY,MAAM;AAC5B,UAAAD,UAAS,KAAK,EAAE,GAAGC,OAAM,UAAU,CAAC,EAAE,CAAC;AAAA,QACzC,WAAWD,UAAS,SAAS,GAAG;AAC9B,UAAAA,UAASA,UAAS,SAAS,CAAC,EAAE,SAAS,KAAK,EAAE,GAAGC,MAAK,CAAC;AAAA,QACzD,OAAO;AACL,UAAAD,UAAS,KAAK,EAAE,GAAGC,OAAM,UAAU,CAAC,EAAE,CAAC;AAAA,QACzC;AAAA,MACF,CAAC;AACD,sBAAgBD,SAAQ;AAAA,IAC1B;AAAO,sBAAgBA,SAAQ;AAAA,EACjC,GAAG,CAAC,OAAO,QAAQ,WAAW,CAAC;AAE/B,QAAM,OAAO,CAAC;AAAA,IACZ,OAAAE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,MAKM;AACJ,WACE,gBAAAN;AAAA,MAACO;AAAA,MAAA;AAAA,QACC,MAAM,IAAI,IAAI;AAAA,QACd,SAAS,MAAM;AACb,wBAAc,CAAC,EAAE,MAAAF,MAAK,OAAO;AAAA,YAC3B,MAAM,UAAU,IAAI,OAAOA;AAAA,YAC3B,SAAS,UAAU,IAAI,KAAK;AAAA,UAC9B,EAAE;AAAA,QACJ;AAAA,QAEA,0BAAAL,MAACQ,OAAA,EAAK,IAAIC,gBAAO,KAAK,OAAO,MAAM,GAAI,UAAAH,QAAM;AAAA;AAAA,IAC/C;AAAA,EAEJ;AAEA,SACE,gBAAAL,MAACS,MAAA,EAAI,IAAID,gBAAO,gBAAgB,WAAQ,qBACrC;AAAA,iBAAa,SAAS,KACrB,gBAAAT,MAACQ,OAAA,EAAK,IAAIC,gBAAO,UAAU,0BAAY;AAAA,IAEzC,gBAAAT,MAACU,MAAA,EAAI,IAAID,gBAAO,UACb,uBAAa,IAAI,CAACJ,UACjB,gBAAAJ,MAACS,MAAA,EACC;AAAA,sBAAAV;AAAA,QAAC;AAAA;AAAA,UACC,OAAOK,MAAK;AAAA,UACZ,MAAMA,MAAK;AAAA,UACX,OAAO;AAAA,UACP,QAAQA,MAAK,SAAS,WAAW;AAAA;AAAA,MACnC;AAAA,MACA,gBAAAL;AAAA,QAAC;AAAA;AAAA,UACC,UAAU;AAAA,UACV,QAAQK,MAAK,SAAS,WAAW,OAAO,SAAS;AAAA,UAEjD,0BAAAL,MAACU,MAAA,EAAI,IAAID,gBAAO,mBACb,UAAAJ,MAAK,SAAS,IAAI,CAAC,YAClB,gBAAAL;AAAA,YAAC;AAAA;AAAA,cAEC,OAAO,QAAQ;AAAA,cACf,MAAM,QAAQ;AAAA,cACd,OAAO;AAAA,cACP,QAAQ,QAAQ,SAAS,WAAW;AAAA;AAAA,YAJ/B,QAAQ;AAAA,UAKf,CACD,GACH;AAAA;AAAA,MACF;AAAA,SAtBQK,MAAK,IAuBf,CACD,GACH;AAAA,IACC;AAAA,KACH;AAEJ;AAEA,IAAO,0BAAQ;;;AE/Gf,SAAS,aAAAM,YAAW,UAAAC,SAAQ,YAAAC,WAAU,cAAAC,mBAAkB;AACxD,SAAS,QAAAC,QAAM,QAAAC,OAAM,OAAAC,aAAW;AAChC,OAAOC,WAAU;;;ACAjB,IAAM,UAAuB;AAAA,EAC3B,SAAS;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,UAAU;AAAA,EACV,MAAM;AAAA,EACN,KAAK;AAAA,EACL,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,WAAW;AAAA,IACT,YAAY;AAAA,IACZ,YAAY;AAAA,EACd;AAAA,EACA,0BAA0B;AAAA,IACxB,YAAY;AAAA,IACZ,OAAO;AAAA,EACT;AAAA,EACA,4BAA4B;AAAA,IAC1B,SAAS;AAAA,EACX;AACF;AAEA,IAAM,eAA4B;AAAA,EAChC,OAAO,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,OAAO;AAAA,EACvD,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,eAAe;AACjB;AAEA,IAAMC,iBAA6B;AAAA,EACjC,UAAU;AACZ;AAEA,IAAM,UAAuB;AAAA,EAC3B,IAAI,CAAC,MAAM;AAAA,EACX,OAAO;AAAA,EACP,UAAU;AAAA,EACV,aAAa,CAAC,KAAK,KAAK,KAAK,KAAK;AAAA,EAClC,cAAc,CAAC,KAAK,KAAK,KAAK,OAAO,OAAO,GAAG;AAAA,EAC/C,IAAI,CAAC,KAAK,KAAK,KAAK,OAAO,OAAO,MAAM;AAAA,EACxC,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,MAAM;AAAA,MACJ,QAAQ;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAM,gBAA6B;AAAA,EACjC,GAAG;AAAA,EACH,YAAY,CAAC,WAAW,WAAW,WAAW,WAAW,WAAW,MAAM;AAAA,EAC1E,OAAO;AACT;AAEA,IAAM,wBAAqC;AAAA,EACzC,OAAO;AAAA,EACP,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,IAAI,CAAC,KAAK,KAAK,KAAK,KAAK;AAC3B;AAEA,IAAM,OAAoB;AAAA,EACxB,OAAO,CAAC,MAAM;AAAA,EACd,QAAQ,CAAC,MAAM;AACjB;AAEA,IAAM,aAA0B;AAAA,EAC9B,GAAG;AAAA,EACH,UAAU;AAAA,IACR,QAAQ;AAAA,EACV;AACF;AAEA,IAAM,iBAA8B;AAAA,EAClC,IAAI;AAAA,EACJ,WAAW;AAAA,EACX,IAAI;AAAA,IACF,QAAQ;AAAA,IACR,WAAW;AAAA,EACb;AACF;AAEA,IAAM,YAAyB;AAAA,EAC7B,SAAS,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,OAAO;AAAA,EACzD,OAAO;AAAA,EACP,UAAU;AAAA,EACV,IAAI,CAAC,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM;AAAA,EAC9C,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,cAAc;AAChB;AAEA,IAAM,cAA2B;AAAA,EAC/B,SAAS;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,IAAOC,kBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA,eAAAD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;AC5IO,IAAM,mBAAgC,CAAC,iBAA0B;AACtE,QAAME,eAA2B;AAAA,IAC/B,SAAS;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAe,SAAS;AAAA,IAC1B;AAAA,EACF;AACA,SAAOA;AACT;;;ACdA,SAAS,aAAAC,YAAW,UAAAC,SAAQ,YAAAC,iBAAgB;AAC5C,SAAS,OAAAC,MAAK,QAAAC,aAAuC;;;ACGrD,IAAM,mBAOa,CAAC,IAAI,WAAW,OAAO,QAAQ,GAAG,MAAM;AACzD,QAAM,WAAW;AAAA,IACf,QAAQ;AAAA,MACN,MAAM,GAAG,IAAI,QAAQ,CAAC;AAAA,MACtB,KAAK,GAAG,IAAI,SAAS,CAAC;AAAA,IACxB;AAAA,IACA,MAAM;AAAA,MACJ,MAAM,GAAG,IAAI,CAAC;AAAA,MACd,KAAK,GAAG,IAAI,SAAS,CAAC;AAAA,IACxB;AAAA,IACA,KAAK;AAAA,MACH,MAAM,GAAG,IAAI,QAAQ,CAAC;AAAA,MACtB,KAAK,GAAG,IAAI,CAAC;AAAA,IACf;AAAA,IACA,OAAO;AAAA,MACL,MAAM,GAAG,IAAI,QAAQ,CAAC;AAAA,MACtB,KAAK,GAAG,IAAI,SAAS,CAAC;AAAA,IACxB;AAAA,EACF;AAEA,QAAM,cAAc;AAAA,IAClB,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,KAAK;AAAA,IACL,OAAO;AAAA,EACT;AAEA,QAAM,YAAY;AAAA,IAChB,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,KAAK;AAAA,IACL,OAAO;AAAA,EACT;AAEA,SAAO;AAAA,IACL,GAAG;AAAA,IACH,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,GAAG,SAAS,SAAS;AAAA,IACrB,WAAW,YAAY,SAAS;AAAA,IAChC,eAAe,UAAU,SAAS;AAAA,EACpC;AACF;AAEA,IAAM,QAA+C,CAAC,cAAc;AAClE,QAAM,WAAW;AAAA,IACf,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,KAAK;AAAA,IACL,OAAO;AAAA,EACT;AAEA,QAAM,cAAc;AAAA,IAClB,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,KAAK;AAAA,IACL,OAAO;AAAA,EACT;AAEA,SAAO;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,WAAW,UAAU,SAAS,SAAS,CAAC,mBAAmB,YAAY,SAAS,CAAC;AAAA,EACnF;AACF;AAEA,IAAM,QAAqB;AAAA,EACzB,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AACd;AAEA,IAAM,4BAAyC;AAAA,EAC7C,GAAG;AAAA,EACH,SAAS;AACX;AAEA,IAAM,8BAA2C;AAAA,EAC/C,GAAG;AAAA,EACH,OAAO;AAAA,EACP,WAAW;AAAA,EACX,IAAI;AAAA,EACJ,IAAI;AACN;AAEA,IAAM,aAAa,CAAC,yBAA+C;AACjE,MAAI;AAAsB,WAAO;AACjC,SAAO;AACT;AACA,IAAOC,kBAAQ,EAAE,kBAAkB,OAAO,WAAW;;;AC1GrD,SAAS,QAAAC,aAAY;AAWjB,gBAAAC,aAAA;AATJ,IAAM,YAAY,CAAC,UACjB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN,0BAAAC;AAAA,MAAC;AAAA;AAAA,QACC,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA;AACF;AAGF,IAAO,gBAAQ;;;AFgBT,gBAAAC,OAQE,QAAAC,aARF;AAzBN,IAAM,UAAU,CAAC,EAAE,UAAU,OAAAC,QAAO,WAAW,IAAI,OAAO,MAAa;AACrE,QAAMC,OAAMC,QAAuB;AACnC,QAAM,CAAC,UAAU,WAAW,IAAIC,UAAS,CAAC;AAC1C,QAAM,CAAC,WAAW,YAAY,IAAIA,UAAS,CAAC;AAC5C,QAAM,CAAC,eAAe,gBAAgB,IAAIA,UAAS,CAAC;AACpD,QAAM,CAAC,cAAc,eAAe,IAAIA,UAAS,CAAC;AAClD,QAAM,CAAC,SAAS,UAAU,IAAIA,UAAS,KAAK;AAE5C,EAAAC,WAAU,MAAM;AACd,QAAIH,KAAI,SAAS;AACf,kBAAYA,KAAI,QAAQ,WAAW;AACnC,mBAAaA,KAAI,QAAQ,YAAY;AACrC,uBAAiBA,KAAI,QAAQ,UAAU;AACvC,sBAAgBA,KAAI,QAAQ,SAAS;AAAA,IACvC;AAAA,EACF,GAAG;AAAA,IACDA,KAAI;AAAA,IACJA,KAAI,SAAS;AAAA,IACbA,KAAI,SAAS;AAAA,IACbA,KAAI,SAAS;AAAA,IACbA,KAAI,SAAS;AAAA,EACf,CAAC;AAED,SACE,gBAAAF,MAACM,MAAA,EACC;AAAA,oBAAAP;AAAA,MAACO;AAAA,MAAA;AAAA,QACC,KAAKJ;AAAA,QACL,cAAc,MAAM,WAAW,IAAI;AAAA,QACnC,cAAc,MAAM,WAAW,KAAK;AAAA,QAEnC;AAAA;AAAA,IACH;AAAA,IACC,YAAY,UAAU,SACrB,gBAAAF;AAAA,MAACO;AAAA,MAAA;AAAA,QACC,IAAIC,gBAAO;AAAA,UACT;AAAA,UACA,aAAa;AAAA,UACb;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QAEA;AAAA,0BAAAT,MAAC,iBAAU,IAAIS,gBAAO,MAAM,aAAa,KAAK,GAAG;AAAA,UACjD,gBAAAT,MAACO,MAAA,EAAI,IAAIE,gBAAO,WAAW,UAAU,KAAK,GAAI,UAAAP,QAAM;AAAA;AAAA;AAAA,IACtD;AAAA,KAEJ;AAEJ;AAEA,IAAO,kBAAQ;;;AG7DR,IAAM,cAAc,CAEzB,MAAW,CAAC,GAEZ,MAAW,CAAC,GACZ,WAAW,OAEH;AACR,aAAW,OAAO,KAAK;AACrB,QAAI,OAAO,IAAI,GAAG,MAAM,UAAU;AAChC,UAAI,WAAW,GAAG,IAAI,IAAI,GAAG;AAAA,IAC/B,OAAO;AACL,kBAAY,IAAI,GAAG,GAAG,KAAK,GAAG,QAAQ,GAAG,GAAG,GAAG;AAAA,IACjD;AAAA,EACF;AACA,SAAO;AACT;AAEO,IAAM,mBAAmB,CAC9B,QACA,UACA,MACA,WACG;AACH,QAAM,YAAY,OAAO,KAAK,MAAM,EAAE,OAAO,CAAC,QAAQ,OAAO,GAAG,MAAM,IAAI;AAC1E,MAAI,OAAO;AACX,aAAW,IAAI,CAAC,OAAO;AACrB,QACE,UACA,OAAO,GAAG,GAAG,QAAQ,SAAS,SAAS,CAAC,EAAE,KAAK,QAAQ,YAAY,KACnE,OAAO,GAAG,GAAG,QAAQ,SAAS,WAAW,CAAC,EAAE,KAAK,UACjD;AACA,aAAO;AAAA,IACT,WAAW,YAAY,QAAQ,GAAG,QAAQ,SAAS,WAAW,CAAC,GAAG;AAChE,aAAO;AAAA,IACT;AAAA,EACF,CAAC;AACD,SAAO;AACT;AAEA,SAAS,YACP,eACA,YACS;AACT,aAAW,OAAO,eAAe;AAC/B,QAAI,IAAI,WAAW,GAAG,UAAU,GAAG,GAAG;AACpC,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AAEO,IAAM,aAAa,CACxB,MACA,MACA,kBACA,cACA,WACG;AACH,QAAM,YAAY,MAAM,MAAM,UAAU;AACxC,aAAW,OAAO,EAAE;AACpB,MAAI,OAAO;AACX,aAAW,IAAI,CAAC,OAAO;AACrB,SAAK,OAAO;AACZ,WAAO,KAAK;AAEZ,QAAI,CAAC,UAAU,iBAAiB,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,SAAS,MAAM,GAAG;AAChE,mBAAa,KAAK,iBAAiB,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;AAAA,IACpD;AAAA,EACF,CAAC;AACD,SAAO;AACT;;;ACrEA,SAAS,aAAAQ,kBAAiB;AAC1B,SAAS,aAAAC,kBAAiB;AAGnB,IAAMC,WAAU,CAAC,KAAa,aAA0B;AAC7D,aAAW,WAAW,UAAU;AAC9B,WAAO,QAAQ,KAAK,CAACC,UAASA,MAAK,UAAU,GAAG,GAAG;AAAA,EACrD;AACF;AAMO,IAAM,iBAAiB,CAAC;AAAA,EAC7B,eAAe,CAAC;AAAA,EAChB;AACF,MAA2B;AACzB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,mBAAmB,YAAY,iBAAiB;AACtD,QAAM,SAASH,WAAU;AAEzB,MAAI,aAAa;AACjB,QAAM,YAAY,OAAO,MAAM;AAE/B,MAAI,aAAa,OAAO,aAAa,8BAA8B;AACjE,iBAAa,OAAO,OAAO,QAAQ,wBAAwB,EAAE;AAC7D,UAAM,UAAU,WAAW,MAAM,GAAG;AACpC,UAAM,aAAa,OAAO,OAAO,QAAQ,GAAG,IAAI;AAChD,UAAM,UAAU,QAAQ,CAAC,EAAE,MAAM,aAAa,MAAM,YAAY,EAAE,CAAC;AACnE,UAAM,WAAW,MAAM,QAAQ,OAAO,GAAG,QAAQ,MAAM,EAAE,KAAK,GAAG;AACjE,QAAI;AACJ,QAAI,YAAY,KAAK;AACnB,mBAAa;AACb,gBAAU,iBAAiB,kBAAkB,IAAI,OAAO;AAAA,IAC1D,OAAO;AACL,YAAM,SAAS,QAAQ,CAAC,EACrB,MAAM,aAAa,MAAM,YAAY,EAAE,CAAC,EACxC,MAAM,GAAG,EAAE,CAAC;AACf,gBAAU,iBAAiB,kBAAkB,UAAU,SAAS,MAAM;AAAA,IACxE;AACA,iBAAa,KAAK,UAAU;AAC5B,QAAI,SAAS;AACX,iBAAW,SAAS,QAAQ,kBAAkB,YAAY;AAAA,IAC5D;AAAA,EACF,OAAO;AACL,iBAAa,aAAa,aAAa,SAAS,CAAC;AAAA,EACnD;AAEA,EAAAC,WAAU,MAAM;AACd,yBAAqB,YAAY;AACjC,iBAAa,QAAQ,CAAC,SAAiB;AACrC,yBAAmB,IAAI;AAAA,IACzB,CAAC;AACD,4BAAwB,YAAY,QAAQ,cAAc,GAAG,CAAC;AAAA,EAChE,GAAG,CAAC,sBAAsB,MAAM,CAAC;AACnC;;;AC/DA,SAAS,QAAAG,OAAM,OAAAC,OAAK,QAAAC,OAAM,UAAAC,eAAc;AACxC,SAAS,cAAAC,aAAY,SAAS,YAAAC,iBAAgB;;;ACA9C,IAAM,mBAAgC;AAAA,EACpC,UAAU;AAAA,EACV,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,eAAe;AAAA,IACb,SAAS;AAAA,IACT,YAAY;AAAA,EACd;AAAA,EACA,gBAAgB;AAAA,IACd,SAAS;AAAA,IACT,YAAY;AAAA,EACd;AAAA,EACA,UAAU;AAAA,IACR,eAAe;AAAA,MACb,SAAS;AAAA,MACT,YAAY;AAAA,IACd;AAAA,EACF;AACF;AAEA,IAAM,4BAAyC;AAAA,EAC7C,OAAO;AAAA,EACP,WAAW;AAAA,EACX,QAAQ;AACV;AAEA,IAAM,sBAAmC;AAAA,EACvC,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,WACE;AAAA,EACF,UAAU;AAAA,EACV,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,UAAU;AAAA,IACR,cAAc;AAAA,EAChB;AACF;AAEA,IAAM,+BAA4C;AAAA,EAChD,SAAS;AAAA,EACT,YAAY;AACd;AAEA,IAAM,uBAAoC;AAAA,EACxC,IAAI;AACN;AAEA,IAAM,yBAAsC;AAAA,EAC1C,GAAG;AACL;AAEA,IAAM,wBAAqC;AAAA,EACzC,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,KAAK;AAAA,EACL,SAAS;AAAA,EACT,cAAc;AAChB;AAEA,IAAM,eAA4B;AAAA,EAChC,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,YAAY;AACd;AAEA,IAAM,kBAA+B;AAAA,EACnC,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,QAAQ;AACV;AAEA,IAAM,YAAyB;AAAA,EAC7B,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,aAAa;AACf;AAEA,IAAM,cAA2B;AAAA,EAC/B,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,UAAU,CAAC,MAAM;AACnB;AAEA,IAAM,aAA0B;AAAA,EAC9B,UAAU;AAAA,EACV,WAAW;AAAA,EACX,OAAO;AAAA,EACP,IAAI;AACN;AAEA,IAAM,gBAA6B;AAAA,EACjC,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,UAAU;AAAA,EACV,KAAK;AAAA,EACL,OAAO;AAAA,EACP,QAAQ;AACV;AAEA,IAAM,sBAAmC;AAAA,EACvC,GAAG;AAAA,EACH,SAAS;AACX;AAEA,IAAM,aAA0B;AAAA,EAC9B,WAAW;AACb;AAEA,IAAM,cAA2B;AAAA,EAC/B,SAAS;AACX;AAEA,IAAM,cAA2B;AAAA,EAC/B,SAAS;AAAA,EACT,OAAO;AAAA,EACP,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,IAAI;AAAA,EACJ,KAAK;AAAA,IACH,OAAO;AAAA,IACP,IAAI;AAAA,EACN;AACF;AAEA,IAAOC,kBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;AC3KA,SAAS,OAAAC,MAAK,QAAAC,OAAM,QAAAC,aAAY;;;ACAhC,SAAS,QAAAC,OAAM,QAAAC,aAAyB;;;ACExC,IAAMC,aAAyB;AAAA,EAC7B,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,gBAAgB;AAClB;AAEA,IAAM,OAAoB;AAAA,EACxB,YAAY;AAAA,EACZ,UAAU;AACZ;AAEA,IAAM,YAAyB;AAAA,EAC7B,UAAU;AAAA,EACV,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,IAAI;AACN;AAEA,IAAOC,mBAAQ;AAAA,EACb,WAAAD;AAAA,EACA;AAAA,EACA;AACF;;;ACxBO,IAAM,gBAAgB;AAAA,EAC3B,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,YAAY;AAAA,EACd;AAAA,EACA,KAAK;AAAA,IACH,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,YAAY;AAAA,EACd;AAAA,EACA,KAAK;AAAA,IACH,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,YAAY;AAAA,EACd;AAAA,EACA,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,YAAY;AAAA,EACd;AAAA,EACA,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,YAAY;AAAA,EACd;AACF;AAEO,IAAM,gBAAgB,CAC3B,QACA,QACA,OACgB;AAChB,QAAM,iBAAiB,cAAc,MAAM,KAAK;AAAA,IAC9C,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,YAAY;AAAA,EACd;AAEA,QAAME,iBAA6B,SAC/B;AAAA,IACE,GAAGC,iBAAO;AAAA,IACV,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,MACR,wBAAwB;AAAA,QACtB,MAAM;AAAA,UACJ,MAAM,eAAe;AAAA,QACvB;AAAA,QACA,MAAM;AAAA,UACJ,QAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF;AAAA,EACF,IACA;AAAA,IACE,GAAGA,iBAAO;AAAA,IACV,OAAO,eAAe;AAAA,IACtB,GAAG;AAAA,EACL;AAEJ,SAAOD;AACT;AAEO,IAAM,eAAe,CAAC,QAAoB,WAA2B;AAC1E,QAAM,iBAAiB,OAAO,CAAC,IAAI,OAAO,MAAM,CAAC,EAAE,YAAY;AAC/D,MAAI,UAAU;AAAU,WAAO;AAC/B,SAAO,eAAe,MAAM,GAAG,CAAC;AAClC;AAEO,IAAM,qBAAqB,CAAC,WAAuB;AACxD,QAAM,iBAAiB,cAAc,MAAM;AAC3C,QAAMA,iBAA6B;AAAA,IACjC,GAAGC,iBAAO;AAAA,IACV,MAAM;AAAA,MACJ,MAAM;AAAA,IACR;AAAA,IACA,MAAM;AAAA,MACJ,QAAQ,eAAe;AAAA,IACzB;AAAA,EACF;AAEA,SAAOD;AACT;;;ACvFA,SAAS,QAAAE,aAAY;AAGnB,SAQE,OAAAC,OARF,QAAAC,aAAA;AADF,IAAM,kBAAkB,CAAC,UACvB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,UAAK,OAAM,MAAK,QAAO,MAAK,IAAG,KAAI,MAAK,WAAU;AAAA,MACnD,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,4BAAQ;;;AHVX,SACE,OAAAE,OADF,QAAAC,cAAA;AAPJ,IAAM,iBAAiB,CAAC;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA2B;AACzB,SACE,gBAAAA,OAACC,OAAA,EAAK,WAAU,mBAAkB,IAAI,cAAc,QAAQ,QAAQ,EAAE,GACpE;AAAA,oBAAAF,MAACG,OAAA,EAAK,IAAIC,iBAAO,MAAO,uBAAa,QAAQ,MAAM,GAAE;AAAA,IACpD,WAAW,YAAY,UACtB,gBAAAJ;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,IAAI,mBAAmB,MAAM;AAAA;AAAA,IAC/B;AAAA,KAEJ;AAEJ;AAEA,IAAO,0BAAQ;;;AD9Bf,SAAmC,cAAAK,aAAY,YAAAC,iBAAgB;;;AKA/D,IAAMC,aAAyB;AAAA,EAC7B,IAAI;AAAA,EACJ,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,eAAe;AAAA,EACf,IAAI;AACN;AAEA,IAAMC,QAAoB;AAAA,EACxB,IAAI;AACN;AAEA,IAAM,WAAwB;AAAA,EAC5B,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,IACR,aAAa;AAAA,EACf;AACF;AAEA,IAAM,QAAqB;AAAA,EACzB,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,UAAU;AAAA,IACR,OAAO;AAAA,EACT;AACF;AAEA,IAAOC,mBAAQ;AAAA,EACb,WAAAF;AAAA,EACA,MAAAC;AAAA,EACA;AAAA,EACA;AACF;;;ALsBQ,gBAAAE,OAeF,QAAAC,cAfE;AAvCR,IAAM,gBAAgB,CAAC;AAAA,EACrB;AAAA,EACA;AACF,MAA0B;AACxB,QAAM,CAAC,eAAe,gBAAgB,IAAIC,UAAuB,CAAC,CAAC;AACnE,QAAM,EAAE,OAAO,IAAIC,YAAW,cAAc;AAE5C,QAAM,YAAY,CAAC,wBAA2C;AAC5D,QAAI,qBAAqB;AACvB,YAAM,QAAQ,cAAc,QAAQ,mBAAmB;AACvD,gBAAU,KACN,iBAAiB,CAAC,GAAG,eAAe,mBAAmB,CAAC,IACxD;AAAA,QACE,cAAc,OAAO,CAAC,WAAW,WAAW,mBAAmB;AAAA,MACjE;AACJ;AAAA,QACE,iBAAiB,IAAI,CAAC,iBAAiB;AACrC,cAAI,aAAa,SAAS;AACxB,yBAAa,SAAS,CAAC,aAAa;AACtC,iBAAO;AAAA,QACT,CAAC;AAAA,MACH;AAAA,IACF,OAAO;AACL,uBAAiB,CAAC,CAAC;AACnB;AAAA,QACE,iBAAiB,IAAI,CAAC,iBAAiB;AACrC,uBAAa,SAAS;AACtB,iBAAO;AAAA,QACT,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AAEA,QAAM,eAAe,CAAC,EAAE,aAAa,MAAyB;AAC5D,WACE,gBAAAH;AAAA,MAACI;AAAA,MAAA;AAAA,QAEC,SAAS,MAAM,UAAU,aAAa,IAAkB;AAAA,QAExD,0BAAAJ;AAAA,UAAC;AAAA;AAAA,YACC,IAAIK,iBAAO;AAAA,YACX,QAAQ,aAAa;AAAA,YACrB,QAAQ,aAAa;AAAA,YACrB,QAAQ;AAAA;AAAA,QACV;AAAA;AAAA,MARK,mBAAmB,aAAa,IAAI;AAAA,IAS3C;AAAA,EAEJ;AAEA,SACE,gBAAAJ,OAACG,MAAA,EAAI,IAAIC,iBAAO,WACd;AAAA,oBAAAL,MAACM,OAAA,EAAK,IAAID,iBAAO,MACd,mBAAS,MAAM,EAAE,8BAA8B,GAClD;AAAA,IACA,gBAAAJ,OAACM,OAAA,EACE;AAAA,uBAAiB,IAAI,CAAC,iBACrB,gBAAAP;AAAA,QAAC;AAAA;AAAA,UAEC;AAAA;AAAA,QADK,mBAAmB,aAAa,IAAI;AAAA,MAE3C,CACD;AAAA,MACA,cAAc,SAAS,KACtB,gBAAAA,MAACM,OAAA,EAAK,SAAS,MAAM,UAAU,IAAI,GAAG,IAAID,iBAAO,OAC9C,mBAAS,MAAM,EAAE,oCAAoC,GACxD;AAAA,OAEJ;AAAA,KACF;AAEJ;AAEA,IAAO,iCAAQ;;;AM9Ff,SAAS,aAAAG,kBAAiB;AAC1B,SAAgB,UAAU,cAAAC,mBAAkB;AAC5C;AAAA,EACE,OAAAC;AAAA,EACA,QAAAC;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC;AAAA,EACA,aAAAC;AAAA,EACA;AAAA,OACK;;;ACPP,IAAM,mBAAgC;AAAA,EACpC,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,UAAU;AAAA,IACR,YAAY;AAAA,IACZ,GAAG;AAAA,MACD,OAAO;AAAA,MACP,sBAAsB;AAAA,QACpB,aAAa;AAAA,MACf;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAM,cAA2B;AAAA,EAC/B,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,cAAc;AAAA,EACd,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,QAAQ;AACV;AAEA,IAAM,gBAA6B;AAAA,EACjC,GAAG;AAAA,EACH,OAAO;AACT;AAEA,IAAM,YAAyB;AAAA,EAC7B,SAAS;AAAA,EACT,OAAO;AAAA,EACP,QAAQ;AACV;AAEA,IAAM,kBAA+B;AAAA,EACnC,GAAG;AAAA,EACH,OAAO;AACT;AAEA,IAAM,gBAA6B;AAAA,EACjC,eAAe;AAAA,EACf,uBAAuB;AAAA,EACvB,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,gBAAgB;AAClB;AAEA,IAAMC,kBAA8B;AAAA,EAClC,IAAI;AAAA,IACF,QAAQ;AAAA,IACR,WAAW;AAAA,EACb;AACF;AAEA,IAAM,YAAyB;AAAA,EAC7B,IAAI;AACN;AAEA,IAAOC,mBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,gBAAAD;AAAA,EACA;AACF;;;ACrEO,IAAM,qBAAqB,CAAC,OAAeE,UAAkB;AAClE,QAAM,KAAK,KAAKA,SAAQ,QAAQ,KAAK,KAAK,KAAK,QAAQ,KAAK,KAAK;AACjE,QAAM,aAAaA,QAAO,SAAS,SAAS,IAAI,sBAAsB;AACtE,QAAM,SAAsB;AAAA,IAC1B,YAAY,GAAG,EAAE;AAAA,IACjB;AAAA,EACF;AAEA,SAAO;AACT;AAEO,IAAM,YAAY,CAAC,QAAiBA,UAAkB;AAC3D,QAAM,KAAKA,QAAO,QAAQ;AAC1B,MAAI,QAAQ;AACV,UAAM,kBAA+B;AAAA,MACnC,GAAGC,iBAAO;AAAA,MACV;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,QAAMC,aAAyB;AAAA,IAC7B,GAAGD,iBAAO;AAAA,IACV;AAAA,EACF;AAEA,SAAOC;AACT;;;AF8GgB,gBAAAC,OAmBJ,QAAAC,cAnBI;AAzGhB,IAAM,kBAAkB,CAAC,EAAE,YAAY,OAAO,aAAa,MAAoB;AAC7E,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAIC,YAAW,cAAc;AAC7B,QAAM,SAASC,WAAU;AAEzB,QAAM,cAAc,CAClB,GACA,YACA,SACG;AACH,MAAE,eAAe;AACjB,UAAM,mBAAmB,OAAO,MAAM;AACtC,UAAM,OAAO,QAAQ,cAAc,IAAI,YAAY,IAAI;AACvD,WAAO,KAAK,MAAM,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,MAAM;AAC7C,UAAI;AAAkB,eAAO,OAAO;AAAA,IACtC,CAAC;AAAA,EACH;AAIA,QAAM,yBAAyB,CAE7B,aACA,MACA,SACG;AACH,QACE,CAAC,eACA,OAAO,gBAAgB,YAAY,CAAC,MAAM,QAAQ,WAAW,GAC9D;AACA,aAAO;AAAA,IACT,WAAW,aAAa,QAAQ,QAAQ,aAAa,QAAQ,MAAM;AACjE,aAAO;AAAA,IACT,WAAW,MAAM,QAAQ,WAAW,GAAG;AACrC,eAAS,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK;AAG3C,cAAM,SAAS,uBAAuB,YAAY,CAAC,GAAG,MAAM,IAAI;AAChE,YAAI,QAAQ;AACV,iBAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF,OAAO;AACL,iBAAW,KAAK,aAAa;AAG3B,cAAM,SAAS,uBAAuB,YAAY,CAAC,GAAG,MAAM,IAAI;AAChE,YAAI,QAAQ;AACV,iBAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAEA,QAAM,UAAU,CAACC,aAAoB,YAAoB,SAAiB;AACxE,UAAM,eAAe,CAAC,MAAM,IAAI;AAChC,UAAM,eACJ,UAAU,aAAa,SAAS,MAAM,IAAI,IAAI,MAAM,KAAK;AAC3D,UAAM,OACJA,gBAAe,uBACX,IAAIA,WAAU,IAAI,IAAI,IAAI,UAAU,KACpC,GAAG,YAAY,IAAIA,WAAU,IAAI,IAAI;AAC3C,WAAO,KAAK,WAAW,MAAM,GAAG;AAAA,EAClC;AAEA,QAAM,cAAc,CAAC;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,MAAsB;AACpB,UAAM,gBAAwB,OAAO,SAAS,WAAW,OAAO,KAAK,MAAM;AAC3E,UAAM,gBAAwB,OAAO,SAAS,WAAW,OAAO,KAAK,MAAM;AAC3E,UAAM,eAAe,SAAS,SAAS;AACvC,UAAM,aAAa,SAAS,IAAI,OAAO,YAAY,CAAC,IAAI,QAAQ,KAAK;AACrE,UAAM,aAAa,SAAS,GAAG,aAAa,GAAG,UAAU,KAAK;AAC9D,WACE,gBAAAJ,MAACK,OAAA,EAAI,IAAIC,iBAAO,kBACd,0BAAAL,OAACM,OAAA,EAAK,IAAI,mBAAmB,cAAc,gBAAgB,KAAK,GAC7D;AAAA,sBACC,gBAAAP;AAAA,QAACQ;AAAA,QAAA;AAAA,UACC,cACE,qBAAqB,IAAI,aAAa,KACtC,qBAAqB,IAAI,aAAa,IAClC,sBACA;AAAA,UAEN,MAAK;AAAA,UACL,SAAQ;AAAA,UACR,IACE,qBAAqB,IAAI,aAAa,KACtC,qBAAqB,IAAI,aAAa,IAClCF,iBAAO,kBACPA,iBAAO;AAAA,UAEb,MAAM,MACJ,gBAAAN;AAAA,YAACS;AAAA,YAAA;AAAA,cACC,WACE,qBAAqB,IAAI,aAAa,KACtC,qBAAqB,IAAI,aAAa,IAClC,SACA;AAAA,cAEN,MAAM;AAAA;AAAA,UACR;AAAA,UAEF,SAAS,MAAM,2BAA2B,aAAa;AAAA;AAAA,MACzD;AAAA,MAED,CAAC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,KACA,CAAC,uBAAuB,mBAAmB,eAAe,MAAM,IAC9D,gBAAAR;AAAA,QAACS;AAAA,QAAA;AAAA,UACC,IAAI,UAAU,yBAAyB,YAAY,YAAY;AAAA,UAC/D,SAAS,CAAC,MAAsC;AAC9C,gBAAI,CAAC,iBAAiB;AACpB,0BAAY,GAAG,YAAY,aAAa;AAAA,YAC1C;AACA,uCAA2B,UAAU;AAAA,UACvC;AAAA,UACA,MAAM,QAAQ,cAAc,IAAI,YAAY,aAAa;AAAA,UACzD,QAAQ,oBAAoB,OAAO,WAAW;AAAA,UAC9C;AAAA,UAEC;AAAA,sBACC,gBAAAV;AAAA,cAAC;AAAA;AAAA,gBACC,IAAIM,iBAAO;AAAA,gBACX,QAAQ,yBAAyB;AAAA,gBACjC,QAAO;AAAA,gBACP;AAAA;AAAA,YACF;AAAA,YAED;AAAA;AAAA;AAAA,MACH,IACE;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,IACA,gBAAAL,OAACS,OAAA,EAAK,MAAM,eAAe,QAAO,UAAS,IAAIJ,iBAAO,aACpD;AAAA,wBAAAN,MAAC,oBAAiB,MAAM,IAAI,IAAI,EAAE,aAAa,OAAO,GAAG;AAAA,QACxD;AAAA,SACH,IAEA,gBAAAC;AAAA,QAACI;AAAA,QAAA;AAAA,UACC,IAAI;AAAA,YACF,yBAAyB;AAAA,YACzB;AAAA,UACF;AAAA,UACA,SAAS,MAAM;AACb,uCAA2B,aAAa;AAAA,UAC1C;AAAA,UAEC;AAAA,sBACC,gBAAAL;AAAA,cAAC;AAAA;AAAA,gBACC,IAAIM,iBAAO;AAAA,gBACX,QAAQ,yBAAyB;AAAA,gBACjC,QAAO;AAAA,gBACP;AAAA;AAAA,YACF;AAAA,YAED;AAAA;AAAA;AAAA,MACH;AAAA,OAEJ,GACF;AAAA,EAEJ;AAEA,QAAM,kBAAkB,CAAC,EAAE,MAAM,SAAS,MAAsB;AAC9D,UAAM,eAAe,SAAS,SAAS;AAIvC,UAAM,gBAAwB,OAAO,SAAS,WAAW,OAAO,KAAK,MAAM;AAC3E,WAAO,gBACL,qBAAqB,IAAI,aAAa,KACtC,qBAAqB,IAAI,aAAa,IACtC,gBAAAN,MAACK,OAAA,EACC,0BAAAL;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,OAAO;AAAA,QACP,cAAc,eAAe;AAAA;AAAA,MACxB,GAAG,aAAa;AAAA,IACvB,GACF,IACE;AAAA,EACN;AAEA,SACE,gBAAAA,MAACK,OAAA,EAAI,WAAU,qBACZ,iBAAO,IAAI,CAACM,OAAM,UAAU;AAC3B,UAAM,MACJ,OAAOA,MAAK,SAAS,WACjB,OAAOA,MAAK,IAAI,IAAI,OAAO,KAAK,IAChC,OAAOA,MAAK,KAAK,MAAM,CAAC,IAAI,OAAO,KAAK;AAC9C,UAAM,OACJ,OAAOA,MAAK,SAAS,WACjB,GAAGA,MAAK,IAAI,KACZ,GAAGA,MAAK,KAAK,MAAM,CAAC;AAE1B,WACE,gBAAAV,OAAC,YACC;AAAA,sBAAAD,MAAC,eAAa,GAAGW,OAAM,MAAY;AAAA,MACnC,gBAAAX,MAACK,OAAA,EACC,0BAAAL,MAAC,mBAAiB,GAAGW,OAAM,MAAY,GACzC;AAAA,MACC,gBAAgB,IACf,gBAAAX,MAACK,OAAA,EAAI,IAAIC,iBAAO,gBACd,0BAAAN,MAAC,QAAG,GACN,IACE;AAAA,SATS,OAAO,GAAG,CAUzB;AAAA,EAEJ,CAAC,GACH;AAEJ;AAEA,IAAO,2BAAQ;;;AGxQf,SAAS,QAAAY,aAAY;AASjB,gBAAAC,aAAA;AAPJ,IAAM,aAAa,CAAC,UAClB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN,0BAAAC;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,UAAS;AAAA,QACT,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA;AACF;AAGF,IAAO,sBAAQ;;;AClBf,SAAS,QAAAC,aAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,oBAAoB,CAAC,UACzB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,8BAAQ;;;ACxCf,SAAS,QAAAE,aAAY;AAGnB,SAOE,OAAAC,OAPF,QAAAC,cAAA;AADF,IAAM,gBAAgB,CAAC,UACrB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEL;AAAA;AAAA,MACD,gBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,0BAAQ;;;AbuEJ,qBAAAE,WAAA,OAAAC,OAcH,QAAAC,cAdG;AA5EX,IAAM,iBAAiB,CAAC;AAAA,EACtB,eAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,kBAAkB;AACpB,MAA2B;AACzB,QAAM,CAAC,aAAa,cAAc,IAAIC,UAAS,EAAE;AACjD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAIC,YAAW,cAAc;AAC7B,QAAM,CAAC,kBAAkB,mBAAmB,IAAID,UAAS;AAAA,IACvD,EAAE,MAAM,QAAQ,QAAQ,MAAM;AAAA,IAC9B,EAAE,MAAM,OAAO,QAAQ,MAAM;AAAA,IAC7B,EAAE,MAAM,OAAO,QAAQ,MAAM;AAAA,IAC7B,EAAE,MAAM,UAAU,QAAQ,MAAM;AAAA,IAChC,EAAE,MAAM,SAAS,QAAQ,MAAM;AAAA,EACjC,CAAC;AAED,QAAM,eAAe,iBAAiB;AAAA,IACpC,CAAC,iBAAiB,aAAa;AAAA,EACjC;AAEA,QAAM,iBAAiB,QAAQ,MAAM;AACnC,QAAI,CAAC,gBAAgB,gBAAgB;AAAI,aAAO;AAEhD,UAAM,WAAW,KAAK,MAAM,KAAK,UAAU,UAAU,CAAC;AAEtD,UAAM,qBAAqB,SACxB,IAAI,CAACE,cAA6B;AACjC,MAAAA,UAAS,WAAWA,UAAS,SAC1B,IAAI,CAAC,gBAAgB;AACpB,oBAAY,WAAW,YAAY,SAAS,OAAO,CAAC,aAAa;AAC/D,gBAAM,kBACJ,CAAC,gBACD,iBAAiB;AAAA,YACf,CAAC,iBAAiB,aAAa,SAAS,SAAS;AAAA,UACnD,GAAG;AACL,gBAAM,iBACJ,gBAAgB,OACf,OAAO,SAAS,SAAS,WACtB,SAAS,OACT,SAAS,KAAK,MAAM,GAErB,YAAY,EACZ,SAAS,YAAY,YAAY,CAAC;AACvC,iBAAO,mBAAmB;AAAA,QAC5B,CAAC;AACD,eAAO;AAAA,MACT,CAAC,EACA;AAAA,QACC,CAAC,gBACC,YAAY,SAAS,SAAS,KAC7B,YAAY,SAAS,eACnB,OAAO,YAAY,SAAS,WACzB,YAAY,OACZ,YAAY,KAAK,MAAM,GAExB,YAAY,EACZ,SAAS,YAAY,YAAY,CAAC;AAAA,MAC3C;AACF,aAAOA;AAAA,IACT,CAAC,EACA,OAAO,CAACA,cAA6BA,UAAS,SAAS,SAAS,CAAC;AACpE,WAAO;AAAA,EACT,GAAG,CAAC,cAAc,kBAAkB,YAAY,WAAW,CAAC;AAE5D,QAAM,UAAUC,SAAQJ,gBAAe,eAAe;AAEtD,MAAI,wBAAwB;AAE5B,MAAI,CAAC,cAAc,WAAW,UAAU,GAAG;AACzC,WAAO,gBAAAF,MAAAD,WAAA,EAAE;AAAA,EACX,OAAO;AACL,4BAAwB,OAAO,SAAU,WAAW,OAAO,KAAK,MAAM;AAAA,EACxE;AAEA,SAAO,kBACL,gBAAAC;AAAA,IAACO;AAAA,IAAA;AAAA,MACC,WAAW,uBAAuB,WAAW;AAAA,MAC7C,IAAIC,gBAAO;AAAA,MAEX,0BAAAP;AAAA,QAACM;AAAA,QAAA;AAAA,UACC,WAAW,uBAAuB,gBAAgB;AAAA,UAClD,IAAIC,gBAAO;AAAA,UAEX;AAAA,4BAAAP,OAACQ,OAAA,EAAK,IAAID,gBAAO,uBACf;AAAA,8BAAAR;AAAA,gBAACU;AAAA,gBAAA;AAAA,kBACC,IAAIF,gBAAO;AAAA,kBACX,cAAY;AAAA,kBACZ,MAAK;AAAA,kBACL,SAAQ;AAAA,kBACR,MAAM,MAAM,gBAAAR,MAAC,2BAAc,MAAM,IAAI;AAAA,kBACrC,SAAS,MAAM;AACb,4CAAwB,IAAI;AAAA,kBAC9B;AAAA;AAAA,cACF;AAAA,cACC,WAAW,gBAAAA,MAAC,WAAQ;AAAA,cACrB,gBAAAA,MAACW,OAAA,EAAK,IAAIH,gBAAO,cAAe,iCAAsB;AAAA,eACxD;AAAA,YACA,gBAAAP,OAACM,OAAA,EAAI,IAAIC,gBAAO,sBACd;AAAA,8BAAAP,OAACQ,OAAA,EAAK,IAAID,gBAAO,WACf;AAAA,gCAAAR,MAAC,uBAAW,IAAIQ,gBAAO,YAAY;AAAA,gBACnC,gBAAAR;AAAA,kBAAC;AAAA;AAAA,oBACC,OAAOQ,gBAAO;AAAA,oBACd,WAAU;AAAA,oBACV,MAAK;AAAA,oBACL,aACE,SAAS,MAAM,EAAE,4BAA4B,IAC7C,MACA;AAAA,oBAEF,OAAO;AAAA,oBACP,UAAU,CAAC,MAAM,eAAe,EAAE,cAAc,KAAK;AAAA;AAAA,gBACvD;AAAA,iBACF;AAAA,cACCN,kBAAiB,mBAChB,gBAAAF;AAAA,gBAAC;AAAA;AAAA,kBACC;AAAA,kBACA,iBAAiB;AAAA;AAAA,cACnB;AAAA,eAEJ;AAAA,YACA,gBAAAA,MAACO,OAAA,EAAI,IAAIC,gBAAO,sBACd,0BAAAR;AAAA,cAAC;AAAA;AAAA,gBACC,OAAO;AAAA,gBACP,cAAc;AAAA,gBACd;AAAA;AAAA,YACF,GACF;AAAA;AAAA;AAAA,MACF;AAAA;AAAA,EACF,IAEA,gBAAAC;AAAA,IAACM;AAAA,IAAA;AAAA,MACC,WAAW,uBAAuB,WAAW;AAAA,MAC7C,IAAIC,gBAAO;AAAA,MAEX;AAAA,wBAAAP;AAAA,UAACM;AAAA,UAAA;AAAA,YACC,WAAW,uBAAuB,gBAAgB;AAAA,YAClD,IAAIC,gBAAO;AAAA,YACX,WAAQ;AAAA,YAER;AAAA,8BAAAP,OAACM,OAAA,EAAI,IAAIC,gBAAO,wBACb;AAAA,mCACC,gBAAAP,OAACU,OAAA,EAAK,IAAIH,gBAAO,aACf;AAAA,kCAAAP;AAAA,oBAAC;AAAA;AAAA,sBACC,OAAM;AAAA,sBACN,OAAM;AAAA,sBACN,QAAO;AAAA,sBACP,SAAQ;AAAA,sBACR,MAAK;AAAA,sBAEL;AAAA,wCAAAD,MAAC,YAAO,IAAG,MAAK,IAAG,MAAK,GAAE,MAAK,MAAK,WAAU;AAAA,wBAC9C,gBAAAA;AAAA,0BAAC;AAAA;AAAA,4BACC,GAAE;AAAA,4BACF,MAAK;AAAA;AAAA,wBACP;AAAA,wBACA,gBAAAA;AAAA,0BAAC;AAAA;AAAA,4BACC,GAAE;AAAA,4BACF,MAAK;AAAA;AAAA,wBACP;AAAA;AAAA;AAAA,kBACF;AAAA,kBAAM;AAAA,mBAER;AAAA,gBAEF,gBAAAA,MAACW,OAAA,EAAK,IAAIH,gBAAO,cAAe,iCAAsB;AAAA,gBACtD,gBAAAP,OAACQ,OAAA,EAAK,IAAID,gBAAO,WACf;AAAA,kCAAAR,MAAC,uBAAW,IAAIQ,gBAAO,YAAY;AAAA,kBACnC,gBAAAR;AAAA,oBAAC;AAAA;AAAA,sBACC,OAAOQ,gBAAO;AAAA,sBACd,WAAU;AAAA,sBACV,MAAK;AAAA,sBACL,aACE,SAAS,MAAM,EAAE,4BAA4B,IAC7C,MACA;AAAA,sBAEF,OAAO;AAAA,sBACP,UAAU,CAAC,MAAM,eAAe,EAAE,cAAc,KAAK;AAAA;AAAA,kBACvD;AAAA,mBACF;AAAA,iBACF;AAAA,cACCN,kBAAiB,mBAChB,gBAAAF;AAAA,gBAAC;AAAA;AAAA,kBACC;AAAA,kBACA,iBAAiB;AAAA;AAAA,cACnB;AAAA,cAEF,gBAAAA,MAACO,OAAA,EAAI,IAAIC,gBAAO,sBACd,0BAAAR;AAAA,gBAAC;AAAA;AAAA,kBACC,OAAO;AAAA,kBACP,cAAc;AAAA,kBACd;AAAA;AAAA,cACF,GACF;AAAA;AAAA;AAAA,QACF;AAAA,QACA,gBAAAA;AAAA,UAACS;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,IACE,uBACID,gBAAO,sBACPA,gBAAO;AAAA,YAGb,0BAAAR;AAAA,cAAC;AAAA;AAAA,gBACC,SAAS,MAAM;AACb;AAAA,oBACE,CAACY,0BAAyB,CAACA;AAAA,kBAC7B;AAAA,gBACF;AAAA,gBACA,IAAI,uBAAuBJ,gBAAO,aAAa,CAAC;AAAA;AAAA,YAClD;AAAA;AAAA,QACF;AAAA;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,0BAAQ;;;AR3IH,SAoCA,YAAAK,WA7BE,OAAAC,OAPF,QAAAC,cAAA;AA4CM;AAhIlB,IAAM,UAAU,CAAC,EAAE,eAAe,CAAC,EAAE,MAA2B;AAC9D,QAAM,CAAC,mBAAmB,oBAAoB,IAAIC,UAAS,IAAI;AAE/D,QAAM,UAAUC,YAAW,cAAc;AACzC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,QAAM,wBAAwB;AAAA,IAC5B,GAAI,MAAM,QAAQ,iBAAiB,IAC/B,mBAAmB;AAAA,MACjB,CAAC,YACC,QAAQ,kBAAkB;AAAA,IAC9B,IACA;AAAA,EACN;AAEA,iBAAe;AAAA,IACb;AAAA,IACA;AAAA,EACF,CAAC;AAED,EAAAC,WAAU,MAAM;AACd,QAAI,QAAoC;AACxC,QAAI,sBAAsB,YAAY,SAAS;AAC7C,cAAQ;AAAA,QACN,MAAM,wBAAwB,qBAAqB,KAAK;AAAA,QACxD;AAAA,MACF;AAAA;AACG,8BAAwB,qBAAqB,IAAI;AAEtD,WAAO,MAAM;AACX,eAAS,aAAa,KAAK;AAAA,IAC7B;AAAA,EACF,GAAG,CAAC,iBAAiB,CAAC;AAEtB,QAAM,cAAc,CAAC,mBAA4B;AAC/C,UAAM,CAACC,cAAa,cAAc,IAAIH,UAAS,KAAK;AACpD,UAAM,CAAC,cAAc,eAAe,IAAIA,UAAS,eAAe,KAAK;AACrE,UAAM,WAAWI,QAAoB;AAErC,IAAAF,WAAU,MAAM;AACd,YAAM,iBAAiB,IAAI,iBAAiB,SAAU,SAAS;AAC7D,cAAM,SAAS,QAAQ,CAAC,EAAE;AAC1B,YAAI,OAAO,cAAc,OAAO;AAAa,yBAAe,IAAI;AAAA;AAC3D,yBAAe,KAAK;AAEzB,YAAI,OAAO,cAAc;AAAG,0BAAgB,OAAO,SAAS;AAAA,MAC9D,CAAC;AACD,UAAI,SAAS,SAAS;AACpB,YAAI,SAAS,QAAQ,cAAc,SAAS,QAAQ;AAClD,yBAAe,IAAI;AACrB,uBAAe,QAAQ,SAAS,SAAS;AAAA,UACvC,WAAW;AAAA,QACb,CAAC;AAAA,MACH;AACA,aAAO,MAAM;AACX,uBAAe;AAAA,MACjB;AAAA,IACF,GAAG,CAAC,SAAS,OAAO,CAAC;AAErB,WACE,gBAAAJ,MAACO,OAAA,EAAI,IAAIC,gBAAO,eACd,0BAAAR;AAAA,MAAC;AAAA;AAAA,QACC,IAAI,iBAAiBK,YAAW;AAAA,QAChC,WAAU;AAAA,QACV,OAAO;AAAA,QAEP,0BAAAL;AAAA,UAACS;AAAA,UAAA;AAAA,YACC,MAAM,CAAC,kBAAkB,eAAe,OAAO;AAAA,YAC/C,QAAQ,gBAAgB,kBAAkB,OAAO,WAAW;AAAA,YAC5D,SAAS,CAAC,MAAM;AACd,kBAAI,iBAAiB;AACnB,kBAAE,eAAe;AAAA,cACnB;AACA,mCAAqB,eAAe,EAAE;AAAA,YACxC;AAAA,YACA,UAAQ;AAAA,YACR,cAAY,eAAe;AAAA,YAE3B,0BAAAR;AAAA,cAACS;AAAA,cAAA;AAAA,gBACC,IACE,sBAAsB,eAAe,KACjCF,gBAAO,gBACPA,gBAAO;AAAA,gBAGb;AAAA,kCAAAR;AAAA,oBAAC,eAAe;AAAA,oBAAf;AAAA,sBACC,IACE,sBAAsB,eAAe,KACjCQ,gBAAO,aACPA,gBAAO;AAAA;AAAA,kBAEf;AAAA,kBACA,gBAAAR;AAAA,oBAACW;AAAA,oBAAA;AAAA,sBACC,WAAW,oBAAoB,4BAA4B;AAAA,sBAC3D,KAAK;AAAA,sBACL,IAAIH,gBAAO;AAAA,sBAEV,yBAAe;AAAA;AAAA,kBAClB;AAAA;AAAA;AAAA,YACF;AAAA;AAAA,QACF;AAAA;AAAA,IACF,GACF;AAAA,EAEJ;AAEA,SACE,gBAAAP,OAACS,QAAA,EAAK,IAAIF,gBAAO,SACf;AAAA,oBAAAR;AAAA,MAACU;AAAA,MAAA;AAAA,QACC,WAAW,oBAAoB,0BAA0B;AAAA,QACzD,IAAIF,gBAAO;AAAA,QAEV,0BAAgB,IAAI,CAAC,SAAS,OAAO;AACpC,iBACE,gBAAAP,OAAAF,WAAA,EACG;AAAA,iBAAK,KACJ,gBAAAC,MAACO,OAAA,EAAI,IAAIC,gBAAO,gBACd,0BAAAR,MAAC,QAAG,KAD+B,GAAG,EAAE,UAE1C;AAAA,YAEF,gBAAAA,MAACU,QAAA,EAAK,IAAIF,gBAAO,uBACd,kBAAQ,IAAI,CAAC,YACZ;AAAA,cAAC;AAAA;AAAA,gBACE,GAAG;AAAA,gBACJ,KAAK,gBAAgB,QAAQ,KAAK;AAAA;AAAA,YACpC,CACD,KAN0C,EAO7C;AAAA,aACF;AAAA,QAEJ,CAAC;AAAA;AAAA,IACH;AAAA,IACC,oBAAoB,gBAAAR,MAAC,2BAAgB,GAAG,uBAAuB,IAAK;AAAA,KACvE;AAEJ;AAEA,IAAO,kBAAQ;;;AsBpKf;AAAA,EACE;AAAA,EACA,iBAAiB;AAAA,EACjB,OAAAY;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC;AAAA,OACK;;;ACJP,IAAM,gBAA6B;AAAA,EACjC,SAAS;AAAA,EACT,OAAO;AACT;AAEA,IAAM,gBAA6B;AAAA,EACjC,SAAS;AAAA,EACT,eAAe;AAAA,EACf,OAAO;AAAA,EACP,WAAW;AAAA,EACX,QAAQ;AACV;AAEA,IAAM,oBAAiC;AAAA,EACrC,iBAAiB;AAAA,EACjB,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,WAAW;AAAA,EACX,WAAW;AAAA,EACX,WAAW;AAAA,EACX,YAAY;AACd;AAEA,IAAM,qBAAkC;AAAA,EACtC,SAAS,CAAC,SAAS,SAAS,SAAS,MAAM;AAAA,EAC3C,iBAAiB;AAAA,EACjB,OAAO;AAAA,EACP,eAAe;AAAA,IACb,WAAW;AAAA,EACb;AACF;AAIA,IAAM,2BAAwC;AAAA,EAC5C,SAAS;AAAA,EACT,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,QAAQ;AACV;AAEA,IAAM,yBAAsC;AAAA,EAC1C,IAAI;AAAA,EACJ,eAAe;AACjB;AAEA,IAAM,mBAAgC;AAAA,EACpC,IAAI;AAAA,EACJ,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,WAAW;AACb;AAEA,IAAM,yBAAsC;AAAA,EAC1C,SAAS;AAAA,EACT,UAAU;AAAA,EACV,WAAW;AACb;AAEA,IAAM,qBAAkC;AAAA,EACtC,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,gBAAgB;AAClB;AAEA,IAAMC,aAAyB;AAAA,EAC7B,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,OAAO;AACT;AAEA,IAAMC,mBAA+B;AAAA,EACnC,GAAGD;AAAA,EACH,OAAO;AACT;AAEA,IAAOE,mBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAAF;AAAA,EACA,iBAAAC;AACF;;;ADlFA,SAAS,cAAAE,oBAAkB;;;AET3B,OAAOC,WAAU;AACjB,SAAS,OAAAC,OAAK,QAAAC,QAAM,QAAAC,aAAY;;;ACChC,IAAMC,iBAA6B;AAAA,EACjC,IAAI,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,MAAM;AAAA,EAC3D,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,mBAAmB;AAAA,IACjB,cAAc;AAAA,IACd,iBAAiB;AAAA,IAEjB,gBAAgB;AAAA,MACd,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,kBAAkB;AAAA,IAChB,OAAO;AAAA,EACT;AAAA,EAEA,iBAAiB;AAAA,IACf,OAAO;AAAA,EACT;AACF;AAEA,IAAM,iBAA8B;AAAA,EAClC,YAAY;AACd;AAEA,IAAMC,SAAqB;AAAA,EACzB,IAAI;AAAA,EACJ,OAAO;AACT;AAEA,IAAMC,eAA2B;AAAA,EAC/B,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,OAAO;AACT;AAEA,IAAOC,mBAAQ;AAAA,EACb,eAAAH;AAAA,EACA,aAAAE;AAAA,EACA,OAAAD;AAAA,EACA;AACF;;;AC1CA,IAAMG,iBAAgB,CAAC,kBAA0B;AAC/C,QAAM,iBACJ,kBAAkB,aACd,CAAC,SAAS,SAAS,SAAS,OAAO,IACnC,kBAAkB,WAClB,SACA,CAAC,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ;AAErE,QAAM,YACJ,kBAAkB,aACd,CAAC,SAAS,SAAS,SAAS,OAAO,IACnC,kBAAkB,WAClB,QACA,CAAC,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ;AAErE,QAAMA,iBAA6B;AAAA,IACjC,GAAGC,iBAAO;AAAA,IACV,OAAO;AAAA,IAEP,wBAAwB;AAAA,MACtB,OAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAOD;AACT;AAEA,IAAME,kBAAiB,CAAC,kBAA0B;AAChD,QAAM,eACJ,kBAAkB,aAAa,CAAC,OAAO,OAAO,OAAO,KAAK,IAAI;AAEhE,QAAMA,kBAA8B;AAAA,IAClC,GAAGD,iBAAO;AAAA,IACV;AAAA,EACF;AAEA,SAAOC;AACT;AAEA,IAAM,YAAY,CAAC,kBAA0B;AAC3C,QAAM,kBACJ,kBAAkB,aACd;AAAA,IACE,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY;AAAA,EACd,IACA;AAAA,IACE,UAAU;AAAA,IACV,YAAY;AAAA,EACd;AAEN,QAAMC,aAAyB;AAAA,IAC7B,GAAGF,iBAAO;AAAA,IACV,GAAG;AAAA,EACL;AAEA,SAAOE;AACT;;;AFpCU,SACE,OAAAC,OADF,QAAAC,cAAA;AAZV,IAAM,oBAAoB,CAAC;AAAA,EACzB,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,MAAAC;AAAA,EACA;AAAA,EACA,MAAAC;AAAA,EACA;AACF,MAAiB;AACf,SACE,gBAAAL,MAACM,OAAA,EAAK,MAAMF,OAAM,gBAAc,MAC9B,0BAAAJ,MAAC,OAAE,SAAkB,OAAO,EAAE,OAAO,OAAO,GAC1C,0BAAAC,OAACM,OAAA,EAAI,IAAIC,eAAc,aAAa,GAClC;AAAA,oBAAAP,OAACQ,QAAA,EAAK,IAAIC,gBAAe,aAAa,GACpC;AAAA,sBAAAV,MAACK,QAAA,EAAK,IAAI,EAAE,OAAO,UAAU,GAAG,MAAM,IAAI;AAAA,MAC1C,gBAAAL,MAACW,OAAA,EAAK,WAAU,SAAQ,IAAI,UAAU,aAAa,GAChD,UAAAT,QACH;AAAA,OACF;AAAA,IACA,gBAAAF,MAACW,OAAA,EAAK,WAAU,eAAc,IAAIC,iBAAO,aACtC,UAAAT,cACH;AAAA,KACF,GACF,GACF;AAEJ;AAEA,IAAO,6BAAQ;;;AG1Cf,SAAS,WAAW,qBAAqB;;;ACAzC,SAAS,UAAAU,SAAuB,cAAAC,mBAAkB;AAClD,SAAS,aAAAC,kBAAiB;AAC1B,SAAS,QAAAC,cAAY;AACrB,SAAS,wBAAwB;;;ACDjC,IAAM,wBAAqC;AAAA,EACzC,UAAU;AACZ;AAEA,IAAM,wBAAqC;AAAA,EACzC,KAAK;AAAA,EACL,UAAU;AAAA,EACV,OAAO,CAAC,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO;AAAA,EAC5D,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,YAAY;AACd;AAEA,IAAM,aAA0B;AAAA,EAC9B,SAAS;AACX;AAEA,IAAM,SAAsB;AAAA,EAC1B,SAAS;AAAA,EACT,WAAW;AAAA,EACX,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,EACb;AACF;AAEA,IAAM,SAAsB;AAAA,EAC1B,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,mBAAmB;AAAA,IACjB,iBAAiB;AAAA,IACjB,cAAc;AAAA,IACd,sBAAsB;AAAA,MACpB,OAAO;AAAA,IACT;AAAA,IACA,aAAa;AAAA,MACX,UAAU;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAM,UAAuB;AAAA,EAC3B,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,aAAa;AACf;AAEA,IAAM,sBAAmC;AAAA,EACvC,OAAO;AACT;AAEA,IAAM,aAA0B;AAAA,EAC9B,OAAO;AAAA,EACP,UAAU,CAAC,QAAQ,MAAM;AAAA,EACzB,YAAY,CAAC,QAAQ,MAAM;AAAA,EAC3B,OAAO;AACT;AAEA,IAAM,kBAA+B;AAAA,EACnC,OAAO;AAAA,EACP,UAAU,CAAC,QAAQ,MAAM;AAAA,EACzB,YAAY,CAAC,QAAQ,MAAM;AAAA,EAC3B,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,cAAc;AAChB;AAEA,IAAM,cAA2B;AAAA,EAC/B,YAAY;AACd;AAEA,IAAM,gBAA6B;AAAA,EACjC,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,cAAc;AAChB;AAEA,IAAM,kBAA+B;AAAA,EACnC,GAAG;AAAA,EACH,UAAU;AACZ;AAEA,IAAM,qBAAkC;AAAA,EACtC,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AACT;AAEA,IAAMC,eAA2B;AAAA,EAC/B,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,UAAU,CAAC,MAAM;AAAA,EACjB,MAAM;AAAA,EACN,YAAY;AACd;AAEA,IAAMC,cAA0B;AAAA,EAC9B,UAAU;AAAA,EACV,WAAW;AAAA,EACX,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,UAAU;AACZ;AAEA,IAAM,kBAA+B;AAAA,EACnC,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,UAAU;AAAA,IACR,YAAY;AAAA,IACZ,OAAO,CAAC,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO;AAAA,IAC5D,QAAQ;AAAA,EACV;AAAA,EACA,iBAAiB;AAAA,IACf,YAAY;AAAA,IACZ,OAAO,CAAC,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO;AAAA,IAC5D,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,MAAM;AAAA,IACN,oBAAoB;AAAA,MAClB,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,oBAAoB;AAAA,IAClB,sBAAsB;AAAA,MACpB,OAAO;AAAA,IACT;AAAA,IACA,4BAA4B;AAAA,MAC1B,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAEA,IAAM,YAAyB;AAAA,EAC7B,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,SAAS;AACX;AAEA,IAAM,wBAAqC;AAAA,EACzC,GAAG;AAAA,EACH,OAAO;AAAA,EACP,OAAO;AAAA,EACP,YAAY;AACd;AAEA,IAAOC,mBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAAF;AAAA,EACA,YAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ADjJI,SACE,OAAAE,OADF,QAAAC,cAAA;AAzBJ,IAAM,qBAAqB,CAAC;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AACF,MAAsB;AACpB,QAAM,SAASC,WAAU;AACzB,QAAM,WAAWC,QAAyB,IAAI;AAC9C,QAAM,EAAE,OAAO,IAAIC,YAAW,cAAc;AAE5C,QAAM,cAAc,MAAM;AACxB,QAAI,SAAS,WAAW;AAAM,eAAS,QAAQ,MAAM;AAAA,EACvD;AAEA,QAAM,aAAa,CAAC,MAAuC;AACzD,QAAI,EAAE,QAAQ,SAAS;AACrB,aAAO,KAAK;AAAA,QACV,UAAU;AAAA,QACV,OAAO,EAAE,SAAS,SAAS,SAAS,MAAM;AAAA,MAC5C,CAAC;AACD,eAAS,SAAS,KAAK;AACvB,kBAAY,KAAK;AAAA,IACnB;AAAA,EACF;AAEA,SACE,gBAAAH,OAACI,QAAA,EAAK,IAAIC,iBAAO,iBAAiB,SAAS,aACzC;AAAA,oBAAAN,MAAC,uBAAW,IAAIM,iBAAO,YAAY;AAAA,IACnC,gBAAAN;AAAA,MAAC;AAAA;AAAA,QACC,OAAOM,iBAAO;AAAA,QACd,KAAK;AAAA,QACL,WAAU;AAAA,QACV,MAAK;AAAA,QACL,aAAa,SAAS,MAAM,EAAE,0BAA0B;AAAA,QACxD,OAAO;AAAA,QACP,WAAQ;AAAA,QACR,WAAW,CAAC,MAAM,WAAW,CAAC;AAAA,QAC9B,UAAU,CAAC,MAAM,OAAO,EAAE,cAAc,KAAK;AAAA;AAAA,IAC/C;AAAA,KACF;AAEJ;AAEA,IAAM,YAAY,iBAAiB,kBAAkB;AAErD,IAAO,qBAAQ;;;AE3Df,SAAS,aAAAC,kBAAiB;AAC1B,OAAOC,WAAU;AACjB;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAMP,OAAO,QAAQ;AACf,SAAS,OAAAC,OAAK,QAAAC,QAAM,aAAAC,YAAW,QAAAC,aAAY;;;ACX3C,SAAS,QAAAC,aAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,gBAAgB,CAAC,UACrB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,0BAAQ;;;ACjDf,SAAS,QAAAE,aAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,mBAAmB,CAAC,UACxB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,6BAAQ;;;ACjCf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,qBAAqB,CAAC,UAC1B,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,+BAAQ;;;ACnCf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,mBAAmB,CAAC,UACxB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,6BAAQ;;;ACjDf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,4BAA4B,CAAC,UACjC,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,sCAAQ;;;AC/Df,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,iBAAiB,CAAC,UACtB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,4BAAQ;;;AChDf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,sBAAsB,CAAC,UAC3B,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,UAAS;AAAA,UACT,UAAS;AAAA,UACT,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACb;AAAA,MACD,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,UAAS;AAAA,UACT,UAAS;AAAA,UACT,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACb;AAAA,MACD,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,GAAE;AAAA;AAAA,MACH;AAAA;AAAA;AACH;AAGF,IAAO,+BAAQ;;;ACjCf,SAAS,QAAAE,cAAY;AASjB,gBAAAC,OACA,QAAAC,cADA;AAPJ,IAAM,YAAY,CAAC,UACjB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,YAAO,IAAG,KAAI,IAAG,KAAI,GAAE,KAAI,MAAK,WAAU;AAAA,MAC3C,gBAAAC,OAAC,OAAE,UAAS,0BACV;AAAA,wBAAAD;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,UAAS;AAAA,YACT,UAAS;AAAA,YACT,GAAE;AAAA,YACF,MAAK;AAAA;AAAA,QACP;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,UAAS;AAAA,YACT,UAAS;AAAA,YACT,GAAE;AAAA,YACF,MAAK;AAAA;AAAA,QACP;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,UAAS;AAAA,YACT,UAAS;AAAA,YACT,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,UAAS;AAAA,YACT,UAAS;AAAA,YACT,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,SACF;AAAA,MACA,gBAAAA,MAAC,UACC,0BAAAA,MAAC,cAAS,IAAG,oBACX,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,QAAO;AAAA,UACP,MAAK;AAAA,UACL,WAAU;AAAA;AAAA,MACZ,GACF,GACF;AAAA;AAAA;AACF;AAGF,IAAO,qBAAQ;;;ACrEf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,iBAAiB,CAAC,UACtB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,YAAO,IAAG,KAAI,IAAG,KAAI,GAAE,KAAI,MAAK,WAAU;AAAA,MAC3C,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA;AAAA;AACF;AAGF,IAAO,0BAAQ;;;ACnBf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,YAAY,CAAC,UACjB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,YAAO,IAAG,KAAI,IAAG,KAAI,GAAE,KAAI,MAAK,WAAU;AAAA,MAC3C,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA,UACL,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,qBAAQ;;;ACvBf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,eAAe,CAAC,UACpB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,YAAO,IAAG,OAAM,IAAG,KAAI,GAAE,KAAI,MAAK,WAAU;AAAA,MAC7C,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,wBAAQ;;;ACpBf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,cAAc,CAAC,UACnB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,YAAO,IAAG,OAAM,IAAG,KAAI,GAAE,KAAI,MAAK,WAAU;AAAA,MAC7C,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,uBAAQ;;;ACZR,IAAM,iBAAiB,CAAC,QAAa;AAC1C,QAAM,cAAwB,CAAC;AAC/B,MAAI,IAAI,YAAY,mBAAmB,IAAI;AACzC,gBAAY,KAAK,IAAI,WAAW;AAClC,cAAY,KAAK,IAAI,QAAQ;AAC7B,SAAO;AACT;AAEO,IAAM,iBAAiB,CAAC,QAAgB;AAC7C,QAAM,cAAc,IAAI,QAAQ,sBAAsB,EAAE;AACxD,SAAO,MAAM;AACf;AA0CO,IAAM,qBAAqB,CAAC,UAAuB,OAAe;AACvE,SAAO,SAAS,KAAK,EAAE,KAAK,CAAC,YAAY,QAAQ,OAAO,EAAE,GAAG;AAC/D;AAcA,IAAM,UAAoB;AAAA,EACxB;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AACF;AAEO,IAAM,YAAY,CAAC,eAAmC;AAC3D,SAAO,QAAQ,KAAK,CAAC,WAAW,OAAO,SAAS,UAAU;AAC5D;AAEO,IAAM,eAAe,CAAC,UAAuB,OAAe;AACjE,SAAO,SAAS,KAAK,EAAE,KAAK,CAACE,UAASA,MAAK,OAAO,EAAE,GAAG,SAAS;AAClE;;;ACvHA,SAAS,aAAAC,YAAW,UAAAC,SAAQ,YAAAC,iBAAgB;AAC5C,SAAS,wBAAwB;AAEjC,SAAS,QAAAC,QAAM,QAAAC,aAAY;AA2Hb,gBAAAC,aAAA;AA1Gd,IAAM,YAAY,CAAC;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA4B;AAC1B,QAAM,CAAC,WAAW,YAAY,IAAIC,UAA8B,CAAC,CAAC;AAClE,QAAM,gBAAgBC,QAAoB,IAAI;AAC9C,QAAM,gBAAqC,UAAU;AAAA,IACnD,mBAAmB;AAAA,IACnB,WAAW,IAAI,QAAQ,YAAY,aAAa,IAAI,IAAI,KAAK;AAAA,IAC7D;AAAA,EACF,CAAC;AACD,QAAM,qBAAqB;AAC3B,QAAM,kBAAuC,CAAC;AAC9C,MAAI,YAAY;AACd,QAAI,YAAY;AAChB,kBAAc,QAAQ,CAAC,SAAS;AAC9B,UAAI,qBAAqB,aAAa;AAAG;AACzC,UAAI,KAAK,MAAM,SAAS,aAAa,oBAAoB;AACvD,aAAK,QACH,KAAK,MAAM,MAAM,GAAG,qBAAqB,YAAY,CAAC,IAAI;AAAA,MAC9D;AACA,mBAAa,KAAK,MAAM;AACxB,sBAAgB,KAAK,IAAI;AAAA,IAC3B,CAAC;AAAA,EACH;AAEA,EAAAC,WAAU,MAAM;AACd,QAAI;AAAY;AAChB,UAAM,YAAY,cAAc,UAC5B,cAAc,QAAQ,cAAc,OACpC;AAEJ,UAAM,iBAAwC,CAAC;AAC/C,QAAI,iBAAiB,GACnB,kBAAkB;AAEpB,kBAAc,QAAQ,CAAC,OAA0B,UAAkB;AACjE,YAAM,YACJ,QAAQ,KAAK,QAAQ,cAAc,SAAS,IAAI,OAAO;AACzD,UAAI,MAAM,eAAe;AACvB,YAAI;AAAW;AACf;AACA,2BAAmB,MAAM,MAAM;AAAA,MACjC,OAAO;AACL,uBAAe,KAAK;AAAA,UAClB;AAAA,UACA;AAAA,UACA,MAAM,MAAM,MAAM;AAAA,QACpB,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAED,mBAAe;AAAA,MACb,CAAC,GAAwB,MAA2B,EAAE,OAAO,EAAE;AAAA,IACjE;AAEA,QAAI,gBAAgB,YAAY;AAChC,QAAI,OAAO,iBAAiB,kBAAkB;AAE9C,mBAAe,QAAQ,CAAC,UAA+B;AACrD,YAAM,QAAQ,cAAc,MAAM,KAAK,EAAE;AACzC,UAAI,MAAM,WAAW;AACnB,YAAI,MAAM,QAAQ,OAAO,GAAG;AAC1B,gBAAM,cAAc,OAAO,IAAI,KAAK;AACpC,wBAAc,MAAM,KAAK,EAAE,QACzB,MAAM,MAAM,GAAG,UAAU,IACzB,QACA,MAAM,MAAM,MAAM,SAAS,UAAU;AACvC,2BAAiB,OAAO;AAAA,QAC1B,OAAO;AACL,2BAAiB,MAAM;AAAA,QACzB;AACA,0BAAkB;AAAA,MACpB,OAAO;AACL,YAAI,MAAM,QAAQ,MAAM;AACtB,cAAI,MAAM,UAAU;AAClB,0BAAc,MAAM,KAAK,EAAE,QACzB,QAAQ,MAAM,MAAM,MAAM,UAAU,OAAO,EAAE;AAAA;AAE/C,0BAAc,MAAM,KAAK,EAAE,QAAQ,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI;AAChE,2BAAiB;AAAA,QACnB,OAAO;AACL,2BAAiB,MAAM;AAAA,QACzB;AACA,0BAAkB;AAAA,MACpB;AACA,aAAO,gBAAgB;AACvB,oBAAc,MAAM,KAAK,EAAE,QAAQ,cACjC,MAAM,KACR,EAAE,MAAM,QAAQ,QAAQ,MAAQ;AAAA,IAClC,CAAC;AACD,iBAAa,aAAa;AAAA,EAC5B,GAAG,CAAC,KAAK,cAAc,OAAO,CAAC;AAE/B,SACE,gBAAAH;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,KAAK;AAAA,MACL,WAAU;AAAA,MACV,IAAIC,iBAAO;AAAA,MAEX,0BAAAL,MAACM,OAAA,EAAK,IAAI,aAAaD,iBAAO,aAAaA,iBAAO,iBAC9C,wBAAa,kBAAkB,WAAW;AAAA,QAC1C,CAAC,MAAyB,UACxB,KAAK,gBACH,gBAAAL,MAAC,UAAK,OAAOK,iBAAO,uBACjB,eAAK,SADwC,KAEhD,IAEA,KAAK;AAAA,MAEX,GACF;AAAA;AAAA,EACF;AAEJ;AAUA,IAAM,qBACJ,iBAAiB,SAAS;AAE5B,IAAO,0BAAQ;;;AdhIf,SAAS,cAAAE,mBAAkB;AA4BjB,SAmDJ,YAAAC,WAlDkB,OAAAC,OADd,QAAAC,cAAA;AAfV,IAAM,OAAO,CAAC,EAAE,KAAK,SAAS,MAAgB;AAC5C,QAAM,EAAE,gBAAgB,IAAIC,YAAW,cAAc;AACrD,QAAM,kBAAkB,eAAe,GAAG;AAC1C,QAAM,UAAU,mBAAmB,iBAAiB,IAAI,OAAO;AAC/D,SACE,gBAAAF,MAACG,OAAA,EAAK,MAAM,eAAe,IAAI,GAAG,GAAG,gBAAc,MACjD,0BAAAH;AAAA,IAAC;AAAA;AAAA,MACC,SAAS,MACP,SAAS,+BAA+B;AAAA,QACtC,WAAW;AAAA,QACX,WAAW,CAAC,IAAI,QAAQ;AAAA,MAC1B,CAAC;AAAA,MAGH,0BAAAC,OAACG,OAAA,EAAI,IAAIC,iBAAO,QACd;AAAA,wBAAAJ,OAACK,QAAA,EACE;AAAA,qBAAW,gBAAAN,MAAC,WAAQ,WAAU,YAAW,IAAIK,iBAAO,SAAS;AAAA,UAC9D,gBAAAL,MAACO,OAAA,EAAK,IAAIF,iBAAO,YACf,0BAAAL,MAAC,2BAAgB,KAAU,WAAU,WAAU,GACjD;AAAA,WACF;AAAA,QACA,gBAAAC,OAACK,QAAA,EAAK,IAAID,iBAAO,aACf;AAAA,0BAAAL,MAACO,OAAA,EAAK,IAAIF,iBAAO,iBAAkB,gBAAM,IAAI,OAAO,IAAG;AAAA,UACtD,gBAAgB,SAAS,KACxB,gBAAAL,MAACQ,YAAA,EAAU,WAAU,SAAQ,IAAIH,iBAAO,oBAAoB;AAAA,UAE7D,gBAAgB,IAAI,CAAC,QAAgB,UACpC,gBAAAJ,OAACK,QAAA,EAAK,IAAID,iBAAO,aACf;AAAA,4BAAAL,MAACO,OAAA,EAAK,IAAIF,iBAAO,eAAgB,kBAAO;AAAA,YACvC,QAAQ,gBAAgB,SAAS,IAChC,gBAAAL,MAACQ,YAAA,EAAU,WAAU,SAAQ,IAAIH,iBAAO,oBAAoB,IAC1D;AAAA,eAJ6B,GAAG,MAAM,GAAG,KAAK,EAKpD,CACD;AAAA,WACH;AAAA,SACF;AAAA;AAAA,EACF,GACF;AAEJ;AAEA,IAAM,kBAAkB,mBAAmB,EAAE,EAAE,IAAI;AAEnD,IAAM,UAAU;AAAA,EACd,CAAC,EAAE,aAAa,eAAe,YAAY,MAAM;AAC/C,UAAM,SAASI,WAAU;AACzB,UAAM,EAAE,OAAO,IAAIP,YAAW,cAAc;AAE5C,UAAM,eAAe,CAAC,YAAoB;AACxC,aAAO,KAAK;AAAA,QACV,UAAU;AAAA,QACV,OAAO,EAAE,QAAQ;AAAA,MACnB,CAAC;AACD,kBAAY,KAAK;AAAA,IACnB;AAGA,UAAM,wBAAwB,CAAC,KAAU,UAAuB;AAC9D,aAAO;AAAA,QACL,GAAG;AAAA,QACH,WAAW,cAAc,WAAW;AAAA,QACpC,YAAY,cAAc,cAAc,cAAc,OAAO,QAAQ;AAAA,MACvE;AAAA,IACF;AAEA,WACE,gBAAAF,MAAAD,WAAA,EACG,2BACC,gBAAAC,MAACI,OAAA,EAAI,IAAIC,iBAAO,uBACd,0BAAAJ,OAACG,OAAA,EAAI,IAAIC,iBAAO,uBACd;AAAA,sBAAAL,MAACI,OAAA,EAAI,IAAI,cAAc,KAAK,UAAUC,iBAAO,YAC1C,wBAAc,KAAK;AAAA,QAClB,CAAC,cAAc,UACb,QAAQ,KACN,gBAAAL;AAAA,UAACI;AAAA,UAAA;AAAA,YAEC,SAAS,MAAM,YAAY,KAAK;AAAA,YAEhC,0BAAAJ;AAAA,cAAC;AAAA;AAAA,gBACC,KAAK,sBAAsB,cAAc,KAAK;AAAA;AAAA,YAChD;AAAA;AAAA,UALK,kBAAkB,KAAK;AAAA,QAM9B;AAAA,MAEN,GACF;AAAA,MACC,cAAc,KAAK,SAAS,KAC3B,gBAAAA;AAAA,QAACI;AAAA,QAAA;AAAA,UACC,IAAIC,iBAAO;AAAA,UACX,SAAS,MAAM,aAAa,YAAY,SAAS,EAAE;AAAA,UAEnD,0BAAAL,MAACO,OAAA,EACE,mBAAS,MAAM,EAAE,sBAAsB,KAAK,mBAC/C;AAAA;AAAA,MACF;AAAA,MAED,CAAC,cAAc,KAAK,UACnB,gBAAAP,MAACM,QAAA,EAAK,IAAID,iBAAO,WACf,0BAAAL,MAACO,OAAA,EACE,mBAAS,MAAM,EAAE,oBAAoB,KAAK,iDAC7C,GACF;AAAA,OAEJ,GACF,GAEJ;AAAA,EAEJ;AACF;AAEA,IAAO,sBAAQ;;;AH7If,SAAS,OAAAG,aAAW;AACpB,SAAS,cAAAC,aAAY,UAAAC,SAAQ,YAAAC,iBAAgB;;;AkBJ7C,kBAAoD;AACpD,OAAOC,SAAQ;AAOR,IAAI,eAAoB,CAAC;AACzB,IAAI,cAAc;AAuCzB,IAAM,sBAAsB,CAAC,WAA0B;AACrD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,oBAAoB;AAAA,EACtB,IAAI;AACJ,gBAAc;AAEd,EAAAA,IAAG,QAAQ;AAAA,IACT,OAAO,SAAS;AAAA,IAChB,QAAQ,UAAU;AAAA,IAClB,WAAW;AAAA,EACb,CAAC;AAED,EAAAA,IAAG,gBAAgB,MAAM,CAAC,QAAQ;AAChC,QAAI,KAAK;AACP,cAAQ,MAAM,GAAG;AACjB;AAAA,IACF;AAAA,EACF,CAAC;AAED,QAAM,oBAAgB,YAAAC,SAAc,SAAS,IAAI,UAAU,IAAI,cAAc;AAE7E,iBAAe;AAAA,IACb,GAAG;AAAA,IACH,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA,OAAO,UAAkC;AACvC,UAAI,SAAS,MAAM,CAAC,EAAE,OAAO,MAAM,CAAC,QAAQ,KAAK;AAAG;AACpD,aAAO,cAAc,OAAO,QAAQ;AAAA,IACtC;AAAA,EACF;AACF;AAGA,IAAM,4BAA4B;AASlC,IAAM,qBAAqB,CAAC,WAA+B;AACzD,QAAM;AAAA,IACJ;AAAA,IACA,eAAe;AAAA,IACf,oBAAoB;AAAA,IACpB,oBAAoB;AAAA,IACpB,aAAa;AAAA,EACf,IAAI;AAEJ,QAAM,yBAAyB,mBAAmB,iBAAiB;AACnE,QAAM,QAA4B,CAAC;AAGnC,QAAM,YAAY,CAAC,QAAmC;AACpD,UAAM,MAAM,KAAK,IAAI;AACrB,aAAS,IAAI,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK;AAC1C,UAAI,MAAM,MAAM,CAAC,EAAE,KAAK,YAAY;AAClC,cAAM,OAAO,GAAG,CAAC;AAAA,MACnB;AAAA,IACF;AACA,WAAO,MAAM,KAAK,CAAC,MAAM,EAAE,QAAQ,GAAG,GAAG;AAAA,EAC3C;AAGA,QAAM,YAAY,CAAC,KAAa,SAAgB;AAC9C,UAAM,KAAK,EAAE,KAAK,IAAI,KAAK,IAAI,GAAG,KAAK,CAAC;AACxC,WAAO,MAAM,SAAS;AAAI,YAAM,MAAM;AAAA,EACxC;AAGA,EAAAD,IAAG,QAAQ;AAAA,IACT,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,WAAW;AAAA,EACb,CAAC;AAED,iBAAe;AAAA,IACb,OAAO;AAAA,IACP,QAAQ;AAAA,IACR;AAAA,IACA,sBAAsB;AAAA,IAEtB,MAAM,OACJ,UACmD;AACnD,UAAI,SAAS,MAAM,CAAC,EAAE,OAAO,MAAM,CAAC,QAAQ,KAAK,GAAG;AAClD,eAAO;AAAA,MACT;AAEA,UAAI;AAEF,cAAM,UACJ,SAAS,KAAK,CAAC,EAAE,QAAAE,QAAO,MAAMA,SAAQ,KAAK,KAAK,SAAS,CAAC;AAC5D,cAAM,SAAS,QAAQ,UAAU,CAAC;AAClC,cAAM,QAAQ,OAAO,SAAS;AAC9B,cAAM,cAAc,OAAO,eAAe;AAC1C,cAAM,OAAO,OAAO,QAAQ;AAE5B,cAAM,EAAE,QAAQ,SAAS,IAAI,qBAAqB,MAAM;AAKxD,cAAM,WAAW,KAAK,UAAU;AAAA,UAC9B,GAAG;AAAA,UACH,QAAQ,oBAAoB,UAAU,KAAK;AAAA,UAC3C,OAAO;AAAA,QACT,CAAC;AAED,cAAM,aAAa,UAAU,QAAQ;AAErC,YAAI;AACJ,YAAI,YAAY;AACd,oBAAU;AAAA,QACZ,OAAO;AACL,gBAAM,MAAM,IAAI,IAAI,aAAa,OAAO,SAAS,MAAM;AACvD,cAAI,aAAa,IAAI,KAAK,KAAK;AAC/B,cAAI,aAAa,IAAI,SAAS,OAAO,sBAAsB,CAAC;AAC5D,cAAI,qBAAqB,QAAQ;AAC/B,gBAAI,aAAa,IAAI,UAAU,MAAM;AAAA,UACvC;AAEA,gBAAM,WAAW,MAAM,MAAM,IAAI,SAAS,CAAC;AAC3C,cAAI,CAAC,SAAS,IAAI;AAChB,kBAAM,IAAI,MAAM,yBAAyB,SAAS,MAAM,EAAE;AAAA,UAC5D;AAEA,gBAAM,OAAO,MAAM,SAAS,KAAK;AAEjC,gBAAM,aAAoB,MAAM,QAAQ,MAAM,OAAO,IACjD,KAAK,UACL,CAAC;AACL,oBAAU,WAAW,IAAI,wBAAwB;AACjD,oBAAU,UAAU,OAAO;AAAA,QAC7B;AAMA,cAAM,eAAe,oBAAoB,SAAS,QAAQ;AAC1D,cAAM,SAAS,aAAa;AAC5B,cAAM,UAAU,KAAK,IAAI,GAAG,KAAK,KAAK,SAAS,WAAW,CAAC;AAC3D,cAAM,QAAQ,OAAO;AACrB,cAAM,WAAW,aAAa,MAAM,OAAO,QAAQ,WAAW;AAE9D,cAAM,SAAS,sBAAsB,OAAO;AAE5C,eAAO;AAAA,UACL,SAAS;AAAA,YACP;AAAA,cACE,MAAM;AAAA,cACN;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA,kBAAkB;AAAA,cAClB;AAAA,cACA,QAAQ;AAAA,cACR,OAAO,QAAQ,aAAa;AAAA,cAC5B,kBAAkB;AAAA,cAClB,QAAQ,OAAO;AAAA,cACf,cAAc,CAAC;AAAA,cACf,uBAAuB;AAAA,cACvB,SAAS,gBAAgB;AAAA,YAC3B;AAAA,UACF;AAAA,QACF;AAAA,MACF,SAAS,OAAO;AACd,gBAAQ,MAAM,wBAAwB,KAAK;AAC3C,eAAO;AAAA,UACL,SAAS;AAAA,YACP;AAAA,cACE,MAAM,CAAC;AAAA,cACP,QAAQ;AAAA,cACR,MAAM;AAAA,cACN,SAAS;AAAA,cACT,aAAa;AAAA,cACb,kBAAkB;AAAA,cAClB,OAAO,SAAS,CAAC,GAAG,QAAQ,SAAS;AAAA,cACrC,QAAQ;AAAA,cACR,OAAO,SAAS,CAAC,GAAG,aAAa;AAAA,cACjC,kBAAkB;AAAA,YACpB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,mBAAmB,KAAqB;AAC/C,MAAI,CAAC,OAAO,SAAS,GAAG,KAAK,OAAO;AAAG,WAAO;AAC9C,SAAO,KAAK,IAAI,2BAA2B,KAAK,IAAI,GAAG,KAAK,MAAM,GAAG,CAAC,CAAC;AACzE;AAWA,SAAS,qBAEP,QACwC;AACxC,MAAI,SAAS;AACb,QAAM,WAAqB,CAAC;AAE5B,QAAM,cAAc,CAAC,QAAgB;AACnC,UAAM,QAAQ,IAAI,QAAQ,UAAU,EAAE,EAAE,KAAK;AAC7C,QAAI,SAAS,CAAC,SAAS,SAAS,KAAK;AAAG,eAAS,KAAK,KAAK;AAAA,EAC7D;AAGA,QAAM,aAAa,OAAO,QAAQ,YAAY,WAAW,OAAO,UAAU;AAC1E,MAAI,YAAY;AACd,UAAM,YAAY,WAAW,MAAM,0BAA0B;AAC7D,QAAI;AAAW,eAAS,UAAU,CAAC;AAEnC,UAAM,eAAe;AACrB,QAAI;AACJ,YAAQ,IAAI,aAAa,KAAK,UAAU,OAAO,MAAM;AACnD,kBAAY,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE;AAAA,IAChC;AAAA,EACF;AAGA,QAAM,eAAe,QAAQ;AAC7B,QAAM,QAAQ,CAAC,UAAmB;AAChC,QAAI,OAAO,UAAU,UAAU;AAC7B,UAAI,CAAC,UAAU,MAAM,WAAW,WAAW,GAAG;AAC5C,iBAAS,MAAM,MAAM,YAAY,MAAM;AAAA,MACzC,WAAW,MAAM,WAAW,UAAU,GAAG;AACvC,oBAAY,MAAM,MAAM,WAAW,MAAM,CAAC;AAAA,MAC5C;AAAA,IACF,WAAW,MAAM,QAAQ,KAAK,GAAG;AAC/B,YAAM,QAAQ,KAAK;AAAA,IACrB;AAAA,EACF;AACA,QAAM,YAAY;AAElB,SAAO,EAAE,QAAQ,SAAS;AAC5B;AAEA,SAAS,oBACP,MACA,UACK;AACL,MAAI,CAAC,SAAS;AAAQ,WAAO;AAC7B,QAAM,SAAS,IAAI,IAAI,SAAS,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAC3D,SAAO,KAAK;AAAA,IAAO,CAAC,MAClB,OAAO,IAAI,OAAO,EAAE,WAAW,EAAE,EAAE,YAAY,CAAC;AAAA,EAClD;AACF;AAGA,SAAS,yBAAyB,QAAkB;AAClD,QAAM,WAAW,OAAO,YAAY;AACpC,QAAM,UAAU,0BAA0B,QAAQ;AAElD,QAAM,YAAY;AAAA,IAChB,MAAM;AAAA,IACN,MAAM,OAAO,SAAS;AAAA,IACtB,MAAM,2BAA2B,QAAQ;AAAA,EAC3C;AAEA,QAAM,MAAM,qBAAqB,QAAQ;AAEzC,SAAO;AAAA,IACL,UAAU,OAAO,OAAO,EAAE;AAAA,IAC1B,GAAG;AAAA,IACH;AAAA,IACA,oBAAoB,IAAI,MAAM,GAAG,EAAE,CAAC;AAAA,IACpC;AAAA,IACA,UAAU,OAAO,SAAS;AAAA,IAC1B,SAAS,OAAO,WAAW,OAAO,WAAW;AAAA,IAC7C;AAAA,IACA,UAAU,OAAO,UAAU,UAAU;AAAA,IACrC,MAAM;AAAA,IACN,kBAAkB;AAAA,MAChB,SAAS;AAAA,QACP,OAAO,OAAO,WAAW,OAAO,WAAW;AAAA,QAC3C,YAAY;AAAA,QACZ,kBAAkB;AAAA,QAClB,cAAc,CAAC;AAAA,MACjB;AAAA,MACA,WAAW;AAAA,QACT,MAAM;AAAA,UACJ,OAAO,UAAU;AAAA,UACjB,YAAY;AAAA,QACd;AAAA,QACA,MAAM;AAAA,UACJ,OAAO,UAAU;AAAA,UACjB,YAAY,OAAO,QAAQ,YAAY;AAAA,QACzC;AAAA,MACF;AAAA,IACF;AAAA,IACA,gBAAgB;AAAA,MACd,SAAS;AAAA,QACP,OAAO,OAAO,WAAW;AAAA,QACzB,YAAY;AAAA,MACd;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAM,iBAAiB;AAgBvB,SAAS,0BAA0B,UAA0B;AAC3D,QAAM,QAAQ,SAAS,MAAM,GAAG,EAAE,OAAO,OAAO;AAChD,MAAI,MAAM,WAAW;AAAG,WAAO;AAE/B,MAAI,MAAM,CAAC,MAAM,UAAU,MAAM,SAAS,GAAG;AAC3C,WAAO,MAAM,CAAC,EAAE,YAAY;AAAA,EAC9B;AAEA,MAAI,MAAM,SAAS,KAAK,eAAe,KAAK,MAAM,CAAC,CAAC,GAAG;AACrD,WAAO,MAAM,CAAC,EAAE,YAAY;AAAA,EAC9B;AAEA,SAAO,MAAM,CAAC,EAAE,YAAY;AAC9B;AAEA,SAAS,2BAA2B,UAAiC;AACnE,QAAM,QAAQ,SAAS,MAAM,GAAG,EAAE,OAAO,OAAO;AAChD,MAAI,MAAM,CAAC,MAAM,UAAU,MAAM,SAAS;AAAG,WAAO,MAAM,CAAC;AAC3D,MAAI,MAAM,SAAS,KAAK,eAAe,KAAK,MAAM,CAAC,CAAC;AAAG,WAAO,MAAM,CAAC;AACrE,MAAI,MAAM,SAAS;AAAG,WAAO,MAAM,CAAC;AACpC,SAAO;AACT;AAEA,SAAS,qBAAqB,UAA0B;AACtD,QAAM,QAAQ,SAAS,MAAM,GAAG,EAAE,OAAO,OAAO;AAChD,MAAI,MAAM,WAAW;AAAG,WAAO;AAE/B,QAAM,WAAW,CAAC,MAAc,EAAE,QAAQ,WAAW,EAAE;AAGvD,MAAI,MAAM,CAAC,MAAM,UAAU,MAAM,SAAS,GAAG;AAC3C,WAAO,SAAS,SAAS,MAAM,MAAM,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;AAAA,EACpD;AAGA,MAAI,MAAM,SAAS,KAAK,eAAe,KAAK,MAAM,CAAC,CAAC,GAAG;AACrD,WAAO,IAAI,MAAM,CAAC,CAAC,IAAI,SAAS,MAAM,MAAM,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;AAAA,EAC3D;AAEA,SAAO,MAAM,SAAS,MAAM,KAAK,GAAG,CAAC;AACvC;AAGA,SAAS,sBACP,MACoD;AACpD,QAAM,SAAiD;AAAA,IACrD,SAAS,CAAC;AAAA,IACV,UAAU,CAAC;AAAA,EACb;AAEA,OAAK,QAAQ,CAAC,QAAQ;AACpB,UAAM,UAAU,IAAI,WAAW;AAC/B,WAAO,QAAQ,OAAO,KAAK,OAAO,QAAQ,OAAO,KAAK,KAAK;AAE3D,UAAM,WAAW,IAAI,YAAY;AACjC,WAAO,SAAS,QAAQ,KAAK,OAAO,SAAS,QAAQ,KAAK,KAAK;AAAA,EACjE,CAAC;AAED,SAAO,EAAE,OAAO;AAClB;AAEA,SAAS,kBAA0B;AACjC,SAAO,UAAU,KAAK,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,OAAO,GAAG,CAAC,CAAC;AACxE;AAEe,SAAR,aAA8B,QAA6C;AAEhF,MAAI,aAAa,QAAQ;AACvB,QAAI,OAAO,YAAY,UAAU;AAC/B,oBAAc,OAAO;AACrB,yBAAmB,OAAO,MAAM;AAAA,IAClC,OAAO;AACL,0BAAoB,OAAO,OAAO;AAAA,IACpC;AAAA,EACF,OAAO;AAEL,wBAAoB,MAAuB;AAAA,EAC7C;AACF;;;AlBpbQ,gBAAAC,OAaF,QAAAC,cAbE;AAjBO,SAAR,cAA+B;AACpC,QAAM,EAAE,OAAO,IAAIC,YAAW,cAAc;AAC5C,QAAM,CAAC,UAAU,WAAW,IAAIC,UAAmC;AAAA,IACjE,aAAa;AAAA,EACf,CAAC;AACD,QAAMC,cAAaC,QAAoB;AACvC,kBAAgBD,aAAY,WAAW;AAEvC,QAAM,cAAc,CAAC,UAAmB;AACtC,gBAAY,EAAE,aAAa,MAAM,CAAC;AAAA,EACpC;AAEA;AAAA;AAAA,IAEE,gBAAAH,OAAC,iBAAc,cAA4B,WAAW,aACnD;AAAA,mBAAa;AAAA,MAEZ,gBAAAD,MAAC,aAAW,GAAG,aAAa,sBAAsB;AAAA,MAEnD,aAAa;AAAA,MAEZ,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,gBAAgB;AAAA,UAChB,cAAc,CAAC,YAAY,MAAM,EAAE;AAAA;AAAA,MACrC;AAAA,MAED,CAAC,aAAa;AAAA,MAEb,gBAAAA,MAAC,aAAU,gBAAgB,MAAM;AAAA,MAEnC,gBAAAC,OAACK,OAAA,EAAI,SAAS,MAAM,YAAY,EAAE,aAAa,KAAK,CAAC,GAAG,KAAKF,aAE3D;AAAA,wBAAAJ,MAAC,sBAAU,aAA0B;AAAA,QACpC,SAAS;AAAA,QAER,gBAAAA,MAAC,uBAAQ,aAA0B;AAAA,SAEvC;AAAA,OACF;AAAA;AAEJ;;;ALIgB,gBAAAO,OAaI,QAAAC,cAbJ;AA/BhB,IAAM,gBAAgB,CAAC,EAAE,eAAe,CAAC,EAAE,MAA0B;AACnE,QAAM,UAAUC,aAAW,cAAc;AACzC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAGJ,QAAM,aAAa,CAAC,UAAe,eAAuB;AACxD,QAAI,QAAQ;AAEZ,QAAI,MAAM,QAAQ,QAAQ,GAAG;AAC3B,cAAQ,SAAS,KAAK,CAAC,YAAY,QAAQ,kBAAkB,UAAU;AAAA,IACzE;AAEA,WAAO;AAAA,EACT;AAEA,iBAAe,EAAE,cAAc,QAAQ,CAAC;AAExC,SACE,gBAAAF,MAAC,OAAO,cAAP,EACC,0BAAAA,MAAC,qBAAkB,IAAIG,iBAAO,oBAC5B,0BAAAH,MAAC,kBAAkB,MAAlB,EAAuB,IAAIG,iBAAO,wBACjC,0BAAAF,OAACG,OAAA,EAAI,IAAID,iBAAO,eACd;AAAA,oBAAAF,OAACG,OAAA,EAAI,IAAID,iBAAO,eACd;AAAA,sBAAAH,MAACI,OAAA,EAAI,IAAID,iBAAO,0BACd,0BAAAH,MAAC,eAAY,GACf;AAAA,MACC,mBAAmB,IAAI,CAAC,SAAS,OAChC,gBAAAA;AAAA,QAACI;AAAA,QAAA;AAAA,UACC,IACE,KAAK,IACDD,iBAAO,mBACPA,iBAAO;AAAA,UAGb,WAAQ;AAAA,UAEP,kBAAQ,IAAI,CAAC,SACZ,gBAAAF,OAACG,OAAA,EAAI,IAAID,iBAAO,oBACd;AAAA,4BAAAH,MAAC,8BAAkB,eAAc,UAAU,GAAG,MAAM;AAAA,YACnD,WAAW,mBAAmB,KAAK,EAAE,IACpC,gBAAAA;AAAA,cAACK;AAAA,cAAA;AAAA,gBACC,cAAY;AAAA,gBACZ,MAAK;AAAA,gBACL,SAAQ;AAAA,gBACR,MAAM,MAAM,gBAAAL,MAACM,YAAA,EAAU,WAAU,SAAQ,MAAM,IAAI;AAAA,gBACnD,IACE,sBAAsB,KAAK,MAC3B,CAAC,uBACGH,iBAAO,kBACPA,iBAAO;AAAA,gBAEb,SAAS,MAAM;AACb,uCAAqB,KAAK,EAAE;AAC5B,0CAAwB,KAAK;AAAA,gBAC/B;AAAA;AAAA,YACF,IACE;AAAA,eAnBmC,KAAK,KAoB9C,CACD;AAAA;AAAA,QAzBI;AAAA,MA0BP,CACD;AAAA,OACH;AAAA,IACA,gBAAAH;AAAA,MAACI;AAAA,MAAA;AAAA,QACC,WACE,wBAAwB,CAAC,oBAAoB,KAAK;AAAA,QAEpD,IAAID,iBAAO;AAAA,QAEV,8BACC,gBAAAH;AAAA,UAAC;AAAA;AAAA,YACC,iBAAiB;AAAA,YAChB,GAAI,MAAM,QAAQ,iBAAiB,IAChC,mBAAmB;AAAA,cACjB,CAAC,YACC,QAAQ,kBAAkB;AAAA,YAC9B,IACA;AAAA;AAAA,QACN,IACE;AAAA;AAAA,IACN;AAAA,KACF,GACF,GACF,GACF;AAEJ;AAEA,IAAO,yBAAQ;;;AwBpHf,SAAS,QAAAO,QAAM,QAAAC,QAAM,QAAAC,aAAY;;;ACCjC,SAAS,QAAAC,cAAY;AAGnB,SAQE,OAAAC,OARF,QAAAC,cAAA;AADF,IAAM,WAAW,CAAC,UAChB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,oBAAQ;;;AC9Bf,SAAS,QAAAE,cAAY;AAGnB,SAQE,OAAAC,OARF,QAAAC,cAAA;AADF,IAAM,WAAW,CAAC,UAChB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,oBAAQ;;;AC9Bf,SAAS,QAAAE,cAAY;AAGnB,SAQE,OAAAC,OARF,QAAAC,cAAA;AADF,IAAM,mBAAmB,CAAC,UACxB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA,UACL,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,6BAAQ;;;AHxBf,SAAS,cAAAE,cAAY,aAAAC,aAAmB,YAAAC,kBAAgB;;;AIAxD,IAAMC,aAAqB,CAAC,EAAE,MAAM,IAAI,CAAC,OAAO;AAAA,EAC9C,OAAO;AAAA,EACP,eAAe,QAAQ,WAAW,CAAC,UAAU,KAAK;AAAA,EAClD,YAAY,QAAQ,eAAe;AAAA,EACnC,cAAc,CAAC,WAAW,eAAe;AAAA,EACzC,gBAAgB,CAAC,WAAW,eAAe;AAAA,EAC3C,WAAW,QAAQ,QAAQ;AAAA,EAC3B,cAAc,QAAQ,QAAQ;AAAA,EAC9B,KAAK,QAAQ,QAAQ;AACvB;AAEA,IAAM,WAAoB,CAAC,EAAE,MAAM,IAAI,CAAC,OAAO;AAAA,EAC7C,UAAU,QAAQ,SAAS;AAAA,EAC3B,YAAY;AAAA,EACZ,OAAO;AACT;AAEA,IAAM,iBAA0B,CAAC,EAAE,MAAM,IAAI,CAAC,OAAO;AAAA,EACnD,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,KAAK,QAAQ,QAAQ;AAAA,EACrB,IAAI,QAAQ,QAAQ;AACtB;AAEA,IAAM,gBAA6B;AAAA,EACjC,eAAe,CAAC,QAAQ,GAAG;AAAA,EAC3B,cAAc,CAAC,qBAAqB,MAAM;AAAA,EAC1C,IAAI,CAAC,OAAO,GAAG;AAAA,EACf,IAAI,CAAC,QAAQ,GAAG;AAAA,EAChB,OAAO,CAAC,QAAQ,MAAM;AAAA,EACtB,gBAAgB,CAAC,UAAU,SAAS;AAAA,EACpC,YAAY;AACd;AAEA,IAAM,WAAwB;AAAA,EAC5B,IAAI;AACN;AAEA,IAAM,cAA2B;AAAA,EAC/B,IAAI;AAAA,EACJ,WAAW;AACb;AAEA,IAAM,SAAsB;AAAA,EAC1B,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,cAAc;AAAA,MACZ,QAAQ;AAAA,IACV;AAAA,EACF;AACF;AAEA,IAAM,eAA4B;AAAA,EAChC,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,cAAc;AAAA,IACZ,QAAQ;AAAA,EACV;AACF;AAEA,IAAM,iBAA8B;AAAA,EAClC,OAAO;AACT;AAEA,IAAM,MAAe,CAAC,EAAE,MAAM,IAAI,CAAC,OAAO;AAAA,EACxC,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,UAAU,QAAQ,SAAS;AAAA,EAC3B,YAAY;AACd;AAEA,IAAM,WAAwB;AAAA,EAC5B,SAAS;AACX;AAEA,IAAM,gBAAyB,CAAC,EAAE,MAAM,IAAI,CAAC,OAAO;AAAA,EAClD,GAAG,IAAI,EAAE,MAAM,CAAC;AAAA,EAChB,GAAG;AAAA,EACH,UAAU;AAAA,IACR,OAAO;AAAA,EACT;AAAA;AAAA,EAEA,OAAO;AAAA,EACP,SAAS;AACX;AAEA,IAAM,WAAwB,EAAE,IAAI,MAAM;AAE1C,IAAM,cAA2B;AAAA;AAEjC;AAEA,IAAOC,mBAAQ;AAAA,EACb;AAAA,EACA,WAAAD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;AChHA,SAAS,OAAAE,OAAK,UAAAC,SAAQ,QAAAC,QAAM,QAAAC,cAAY;;;ACCxC,SAAS,QAAAC,cAAY;AASjB,gBAAAC,aAAA;AAPJ,IAAM,eAAe,CAAC,UACpB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN,0BAAAC;AAAA,MAAC;AAAA;AAAA,QACC,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA;AACF;AAGF,IAAO,wBAAQ;;;AChBf,SAAS,QAAAC,cAAY;AASjB,gBAAAC,aAAA;AAPJ,IAAM,eAAe,CAAC,UACpB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN,0BAAAC;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,UAAS;AAAA,QACT,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA;AACF;AAGF,IAAO,wBAAQ;;;AClBf,SAAS,QAAAC,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,YAAY,CAAC,UACjB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,UAAK,GAAE,mBAAkB,SAAQ,KAAI,QAAO,gBAAc;AAAA,MAC3D,gBAAAA,MAAC,UAAK,GAAE,2JAA0J,MAAK,gBAAc;AAAA;AAAA;AACvL;AAGF,IAAO,qBAAQ;;;ACdf,SAAS,QAAAE,cAAY;AASjB,gBAAAC,aAAA;AAPJ,IAAM,cAAc,CAAC,UACnB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN,0BAAAC;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,UAAS;AAAA,QACT,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA;AACF;AAGF,IAAO,uBAAQ;;;AJdf,SAAS,UAAAC,SAAQ,YAAAC,kBAAgB;AACjC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;;;AKTP,IAAMC,aAAyB;AAAA,EAC7B,UAAU;AAAA,EACV,QAAQ;AACV;AAEA,IAAMC,UAAsB;AAAA,EAC1B,QAAQ;AAAA,EACR,eAAe;AAAA,EACf,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,UAAU;AAAA,IACR,OAAO;AAAA,IACP,gBAAgB;AAAA,EAClB;AAAA,EACA,YAAY;AACd;AAEA,IAAM,YAAyB;AAAA,EAC7B,aAAa;AACf;AAEA,IAAM,cAA2B;AAAA,EAC/B,KAAK;AAAA,EACL,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,UAAU;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA,YAAY;AACd;AAEA,IAAM,iBAA8B;AAAA,EAClC,UAAU;AAAA,EACV,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,KAAK;AAAA,EACL,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,KAAK;AAAA,EACL,WAAW;AAAA,EACX,cAAc;AAAA,EAEd,WAAW;AAAA,IACT,SAAS;AAAA,IACT,UAAU;AAAA,IACV,KAAK;AAAA,IACL,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,cAAc;AAAA,IACd,WAAW;AAAA,EACb;AACF;AAEA,IAAM,UAAuB;AAAA,EAC3B,cAAc;AAChB;AAEA,IAAOC,mBAAQ;AAAA,EACb,WAAAF;AAAA,EACA,QAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ACxEA,SAAS,QAAAE,cAAY;AAWjB,gBAAAC,aAAA;AATJ,IAAM,YAAY,CAAC,UACjB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN,0BAAAC;AAAA,MAAC;AAAA;AAAA,QACC,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA;AACF;AAGF,IAAO,qBAAQ;;;AClBf,SAAS,QAAAC,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,WAAW,CAAC,UAChB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,oBAAQ;;;APWT,SAKE,OAAAE,OALF,QAAAC,cAAA;AAfN,IAAM,cAAc,CAAC,EAAE,KAAK,KAAG,CAAC,EAAE,MAAa;AAC7C,QAAM,CAAC,QAAQ,SAAS,IAAIC,WAAS,KAAK;AAC1C,QAAM,eAAeC,QAAO;AAC5B,kBAAgB,cAAc,MAAM,UAAU,KAAK,CAAC;AAEpD,QAAM,iBAAiB,YAAY;AACjC,QAAI;AACF,UAAI;AAAQ,cAAM,UAAU,UAAU,UAAU,OAAO,SAAS,IAAI;AAAA,IACtE,SAAS,OAAO;AACd,cAAQ,MAAM,oCAAoC,KAAK;AAAA,IACzD;AAAA,EACF;AAEA,SACE,gBAAAF,OAACG,QAAA,EAAK,IAAI,EAAC,GAAGC,iBAAO,WAAW,GAAG,GAAE,GAAG,KAAK,cAC3C;AAAA,oBAAAJ;AAAA,MAACK;AAAA,MAAA;AAAA,QACC,IAAID,iBAAO;AAAA,QACX,SAAQ;AAAA,QACR,SAAS,MAAM,UAAU,CAAC,MAAM;AAAA,QAEhC;AAAA,0BAAAL,MAAC,sBAAU,IAAIK,iBAAO,WAAW,MAAM,IAAG;AAAA,UAAE;AAAA;AAAA;AAAA,IAC9C;AAAA,IACC,UACC,gBAAAJ,OAACG,QAAA,EAAK,IAAIC,iBAAO,gBACf;AAAA,sBAAAJ,OAACG,QAAA,EAAK,IAAIC,iBAAO,aAAa,SAAS,gBACrC;AAAA,wBAAAL,MAAC,qBAAS,MAAM,IAAI;AAAA,QACpB,gBAAAA,MAACO,QAAA,EAAK,uBAAS;AAAA,SACjB;AAAA,MACA,gBAAAP,MAACQ,OAAA,EAAI,IAAIH,iBAAO,SAAS;AAAA,MACzB,gBAAAL,MAAC,oBAAiB,KAChB,0BAAAC,OAACG,QAAA,EAAK,IAAIC,iBAAO,aAAa,SAAS,gBACrC;AAAA,wBAAAL,MAAC,sBAAU,MAAM,IAAI;AAAA,QACrB,gBAAAA,MAACO,QAAA,EAAK,oBAAM;AAAA,SACd,GACF;AAAA,MACA,gBAAAP,MAAC,sBAAmB,KAClB,0BAAAC,OAACG,QAAA,EAAK,IAAIC,iBAAO,aACf;AAAA,wBAAAL,MAAC,wBAAY,MAAM,IAAI;AAAA,QACvB,gBAAAA,MAACO,QAAA,EAAK,qBAAO;AAAA,SACf,GACF;AAAA,MACA,gBAAAP,MAAC,uBAAoB,KACnB,0BAAAC,OAACG,QAAA,EAAK,IAAIC,iBAAO,aACf;AAAA,wBAAAL,MAAC,yBAAa,MAAM,IAAI;AAAA,QACxB,gBAAAA,MAACO,QAAA,EAAK,sBAAQ;AAAA,SAChB,GACF;AAAA,MACA,gBAAAP,MAAC,uBAAoB,KACnB,0BAAAC,OAACG,QAAA,EAAK,IAAIC,iBAAO,aACf;AAAA,wBAAAL,MAAC,yBAAa,MAAM,IAAI;AAAA,QACxB,gBAAAA,MAACO,QAAA,EAAK,sBAAQ;AAAA,SAChB,GACF;AAAA,OACF;AAAA,KAEJ;AAEJ;AAEA,IAAO,uBAAQ;;;AL5BP,gBAAAE,OAQE,QAAAC,cARF;AA7BR,IAAM,kBAAkB,CAAC;AAAA,EACvB;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf,aAAAC,eAAc;AAAA,EACd;AAAA,EACA,QAAQ;AACV,MAAe;AACb,QAAM,CAAC,UAAU,WAAW,IAAIC,WAA8B,MAAS;AACvE,QAAM,EAAE,OAAO,IAAIC,aAAW,cAAc;AAG5C,EAAAC,YAAU,MAAM;AACd,gBAAY,MAAS;AAAA,EACvB,GAAG,CAAC,IAAI,CAAC;AAET,QAAM,aAAa,OAAO,UAAmB;AAC3C,QAAI,aAAa;AAAW;AAC5B,gBAAY,KAAK;AACjB,QAAI;AACF,YAAM,aAAa,KAAK;AAAA,IAC1B,SAAS,GAAG;AACV,kBAAY,MAAS;AAAA,IACvB;AAAA,EACF;AAEA,SACE,gBAAAJ,OAACK,QAAA,EAAK,IAAIC,iBAAO,UAAU,EAAE,MAAM,CAAC,GAAG,WAAQ,oBAC7C;AAAA,oBAAAN,OAACK,QAAA,EAAK,IAAIC,iBAAO,eACf;AAAA,sBAAAP,MAACQ,QAAA,EAAK,IAAID,iBAAO,SAAS,EAAE,MAAM,CAAC,GAChC,uBAAa,SACV,SAAS,MAAM,EAAE,2BAA2B,IAC5C,SAAS,MAAM,EAAE,2BAA2B,GAClD;AAAA,MAEA,gBAAAN,OAACK,QAAA,EAAK,IAAIC,iBAAO,eAAe,EAAE,MAAM,CAAC,GAEvC;AAAA,wBAAAN;AAAA,UAACK;AAAA,UAAA;AAAA,YACC,IACE,aAAa,SACTC,iBAAO,SACP,aAAa,OACbA,iBAAO,iBACPA,iBAAO;AAAA,YAEb,SAAS,MAAM,WAAW,IAAI;AAAA,YAC9B,MAAK;AAAA,YACL,gBAAc,aAAa;AAAA,YAC3B,WAAQ;AAAA,YAEP;AAAA,2BAAa,OACZ,gBAAAP,MAAC,8BAAiB,MAAM,QAAQ,KAAK,IAAI,IAAIO,iBAAO,UAAU,IAE9D,gBAAAP,MAAC,qBAAS,MAAM,QAAQ,KAAK,IAAI,IAAIO,iBAAO,UAAU;AAAA,cAEvD,CAAC,SACA,gBAAAP,MAACQ,QAAA,EAAM,mBAAS,MAAM,EAAE,2BAA2B,GAAE;AAAA;AAAA;AAAA,QAEzD;AAAA,QAGA,gBAAAP;AAAA,UAACK;AAAA,UAAA;AAAA,YACC,IACE,aAAa,SACTC,iBAAO,SACP,aAAa,QACbA,iBAAO,iBACPA,iBAAO;AAAA,YAEb,SAAS,MAAM,WAAW,KAAK;AAAA,YAC/B,MAAK;AAAA,YACL,gBAAc,aAAa;AAAA,YAC3B,WAAQ;AAAA,YAEP;AAAA,2BAAa,QACZ,gBAAAP;AAAA,gBAAC;AAAA;AAAA,kBACC,MAAM,QAAQ,KAAK;AAAA,kBACnB,IAAIO,iBAAO;AAAA;AAAA,cACb,IAEA,gBAAAP,MAAC,qBAAS,MAAM,QAAQ,KAAK,IAAI,IAAIO,iBAAO,aAAa;AAAA,cAE1D,CAAC,SACA,gBAAAP,MAACQ,QAAA,EAAM,mBAAS,MAAM,EAAE,2BAA2B,GAAE;AAAA;AAAA;AAAA,QAEzD;AAAA,SACF;AAAA,OACF;AAAA,IACC,gBACC,gBAAAP;AAAA,MAACQ;AAAA,MAAA;AAAA,QACC,QAAO;AAAA,QACP,KAAI;AAAA,QACJ,MAAM;AAAA,QACN,IAAIF,iBAAO,cAAc,EAAE,MAAM,CAAC;AAAA,QAElC;AAAA,0BAAAP,MAAC,qBAAS,MAAM,QAAQ,KAAK,IAAI,IAAIO,iBAAO,UAAU;AAAA,UACtD,gBAAAP,MAACQ,QAAA,EAAM,mBAAS,MAAM,EAAE,uBAAuB,GAAE;AAAA;AAAA;AAAA,IACnD;AAAA,IAEDN,gBACC,gBAAAF,MAAC,wBAAY,KAAK,OAAO,SAAS,MAAM,IAAIO,iBAAO,aAAa;AAAA,KAEpE;AAEJ;AAEA,IAAO,2BAAQ;;;AanIf,SAAS,OAAAG,OAAK,QAAAC,cAAY;;;ACA1B,SAAS,OAAAC,aAAW;;;ACApB,SAAS,OAAAC,OAAK,QAAAC,QAAM,QAAAC,cAAY;AAChC,SAAS,cAAAC,cAAY,aAAAC,mBAAiB;;;ACCtC,IAAM,mBAAgC;AAAA,EACpC,gBAAgB;AAAA,EAChB,SAAS;AAAA,EACT,IAAI;AAAA,EACJ,QAAQ;AAAA,EACR,mBAAmB;AAAA,IACjB,iBAAiB;AAAA,IACjB,cAAc;AAAA,IACd,yBAAyB;AAAA,MACvB,OAAO;AAAA,IACT;AAAA,IACA,yBAAyB;AAAA,MACvB,YAAY;AAAA,IACd;AAAA,EACF;AACF;AAEA,IAAM,sBAAmC;AAAA,EACvC,YAAY;AACd;AAEA,IAAM,cAA2B;AAAA,EAC/B,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,WAAW;AAAA,EACX,IAAI;AACN;AAEA,IAAM,eAA4B;AAAA,EAChC,UAAU;AAAA,EACV,YAAY;AACd;AAEA,IAAM,qBAAkC;AAAA,EACtC,GAAG;AAAA,EACH,OAAO;AAAA,EACP,YAAY;AACd;AAEA,IAAM,eAA4B;AAAA,EAChC,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,OAAO;AAAA,EACP,WAAW;AAAA,EACX,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,YAAY;AACd;AAEA,IAAM,iBAA8B;AAAA,EAClC,GAAG;AAAA,EACH,IAAI;AACN;AAEA,IAAM,uBAAoC;AAAA,EACxC,GAAG;AAAA,EACH,YAAY;AAAA,EACZ,OAAO;AACT;AAEA,IAAOC,mBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ADnEA,SAAS,aAAAC,kBAAiB;;;AEL1B;AAAA,EACE,iBAAAC;AAAA,EAIA,YAAAC;AAAA,OACK;AAoCH,gBAAAC,aAAA;AArBG,IAAM,gBAAgBF,eAAiC;AAAA,EAC5D,uBAAuB;AAAA,EACvB,6BAA6B,MAAM;AAAA,EACnC,gBAAgB,CAAC;AAAA,EACjB,sBAAsB,MAAM;AAC9B,CAAC;AAMD,IAAM,wBAAwB,CAAC,EAAE,SAAS,MAAa;AACrD,QAAM,CAAC,uBAAuB,2BAA2B,IACvDC,WAAqB,EAAE;AACzB,QAAM,CAAC,gBAAgB,oBAAoB,IAAIA,WAAwB,CAAC,CAAC;AAEzE,QAAM,uBAAuB,CAAC,gBAA+B;AAC3D,yBAAqB,WAAW;AAAA,EAClC;AAEA,SACE,gBAAAC;AAAA,IAAC,cAAc;AAAA,IAAd;AAAA,MACC,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MAEC;AAAA;AAAA,EACH;AAEJ;AAEA,IAAO,iBAAQ;;;AFzBX,SACE,OAAAC,OADF,QAAAC,cAAA;AAhBJ,IAAM,gBAAgB,CAAC,EAAE,aAAa,MAAM,MAA0B;AACpE,QAAM,SAASC,WAAU;AACzB,QAAM,EAAE,uBAAuB,gBAAgB,4BAA4B,IACzEC,aAAW,aAAa;AAC1B,QAAM,EAAE,OAAO,IAAIA,aAAW,cAAc;AAE5C,QAAM,eAAe,CAAC,UAAsB;AAC1C,WAAO,MAAM,SAAS;AACtB,gCAA4B,KAAK;AAAA,EACnC;AAEA,EAAAC,YAAU,MAAM;AACd,iBAAa,EAAE;AAAA,EACjB,GAAG,CAAC,OAAO,KAAK,CAAC;AAEjB,SAAO,CAAC,cACN,gBAAAH,OAACI,QAAA,EAAK,IAAIC,iBAAO,kBAAkB,SAAS,MAAM,aAAa,EAAE,GAC/D;AAAA,oBAAAN;AAAA,MAACO;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,IACE,wBACID,iBAAO,iBACPA,iBAAO;AAAA,QAGZ,mBAAS,MAAM,EAAE,oBAAoB,KAAK;AAAA;AAAA,IAC7C;AAAA,IACA,gBAAAN,MAACQ,OAAA,EAAI,WAAU,wBAAuB,IAAIF,iBAAO,cAC9C,yBAAe,EAAE,GACpB;AAAA,KACF,IAEA,gBAAAL;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,IAAIC,iBAAO;AAAA,MAEX,SAAS,MAAM,aAAa,YAAY,EAAE;AAAA,MAE1C;AAAA,wBAAAL,OAACI,QAAA,EAAK,IAAIC,iBAAO,qBACf;AAAA,0BAAAN,MAAC,YAAY,MAAZ,EAAiB,IAAIM,iBAAO,aAAa;AAAA,UAC1C,gBAAAN;AAAA,YAACO;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,IACE,0BAA0B,YAAY,KAClCD,iBAAO,qBACPA,iBAAO;AAAA,cAGZ,sBAAY;AAAA;AAAA,UACf;AAAA,WACF;AAAA,QACA,gBAAAN,MAACQ,OAAA,EAAI,WAAU,wBAAuB,IAAIF,iBAAO,cAC9C,yBAAe,YAAY,EAAE,KAAK,GACrC;AAAA;AAAA;AAAA,IAlBK,kBAAkB,YAAY,EAAE,GAAG,KAAK;AAAA,EAmB/C;AAEJ;AAEA,IAAO,yBAAQ;;;AGrEf,IAAMG,aAAyB;AAAA,EAC7B,SAAS,CAAC,QAAQ,QAAQ,QAAQ,SAAS;AAAA,EAC3C,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,IAAI,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,MAAM;AAAA,EAC3D,IAAI;AACN;AAEA,IAAM,eAA4B;AAAA,EAChC,IAAI;AAAA,EACJ,YAAY;AACd;AAEA,IAAM,cAA2B;AAAA,EAC/B,GAAG;AAAA,EACH,cAAc;AAChB;AAEA,IAAOC,mBAAQ;AAAA,EACb,WAAAD;AAAA,EACA;AAAA,EACA;AACF;;;AJtBA,SAAS,cAAAE,oBAAkB;AAanB,SAQe,OAAAC,OARf,QAAAC,cAAA;AAVR,IAAM,iBAAiB,MAAM;AAC3B,QAAM,EAAE,gBAAgB,IAAIC,aAAW,cAAc;AAErD,QAAM,uBAAuB,gBAAgB;AAAA,IAAI,CAAC,YAChD,QAAQ,OAAO,CAACC,UAAS,CAACA,MAAK,cAAc;AAAA,EAC/C;AAEA,SACE,gBAAAH,MAACI,OAAA,EAAI,IAAIC,iBAAO,WACb,+BAAqB,IAAI,CAAC,UAAU,OACnC,gBAAAJ;AAAA,IAACG;AAAA,IAAA;AAAA,MAEC,IACE,KAAK,qBAAqB,SAAS,IAC/BC,iBAAO,cACPA,iBAAO;AAAA,MAGZ;AAAA,eAAO,KAAK,gBAAAL,MAAC,0BAAc,aAAa,MAAM;AAAA,QAC9C,SAAS,IAAI,CAAC,SAAS,UACtB,gBAAAA;AAAA,UAAC;AAAA;AAAA,YAEC,aAAa;AAAA,YACb;AAAA;AAAA,UAFK,uBAAuB,QAAQ,EAAE;AAAA,QAGxC,CACD;AAAA;AAAA;AAAA,IAdI,kBAAkB,EAAE;AAAA,EAe3B,CACD,GACH;AAEJ;AAEA,IAAO,0BAAQ;;;AKvCf,SAAS,aAAAM,kBAAiB;AAC1B,SAAS,cAAAC,cAAY,YAAAC,kBAAgB;AAIrC,SAAS,OAAAC,OAAK,QAAAC,cAAY;AAE1B,SAAS,aAAAC,YAAW,iBAAAC,sBAAqB;;;ACPzC,SAAS,cAAAC,cAAY,aAAAC,aAAW,WAAAC,UAAS,UAAAC,gBAAkB;AAC3D;AAAA,EACE;AAAA,EACA,uBAAAC;AAAA,OACK;;;ACJP,SAAS,OAAAC,OAAK,QAAAC,QAAM,QAAAC,QAAM,aAAAC,YAAW,WAAAC,gBAAe;;;ACIpD,IAAMC,aAAyB;AAAA,EAC7B,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,aAAa,CAAC,QAAQ,MAAM;AAAA,EAC5B,cAAc,CAAC,QAAQ,MAAM;AAAA,EAC7B,YAAY;AAAA,EACZ,QAAQ;AACV;AAEA,IAAM,kBAAkB,CAAC,WAAgD;AACvE,QAAM,iBAAiB,SAAS,cAAc,MAAM,IAAI;AACxD,SAAO;AAAA,IACL,GAAGA;AAAA,IACH,UAAU;AAAA,MACR,YAAY;AAAA,MACZ,4CAA4C;AAAA,QAC1C,OAAO;AAAA,MACT;AAAA,MACA,oBAAoB;AAAA,QAClB,GAAG;AAAA,MACL;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAMC,SAAqB;AAAA,EACzB,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,UAAU,CAAC,QAAQ,MAAM;AAAA,EACzB,YAAY,CAAC,QAAQ,MAAM;AAAA,EAC3B,OAAO;AACT;AAEA,IAAM,aAA0B;AAAA,EAC9B,IAAI;AACN;AAEA,IAAMC,QAAoB;AAAA,EACxB,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,IAAI;AAAA,EACJ,MAAM;AAAA,IACJ,QAAQ;AAAA,EACV;AACF;AAEA,IAAMC,eAA2B;AAAA,EAC/B,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,IAAI;AACN;AAEA,IAAM,oBAAiC;AAAA,EACrC,QAAQ;AAAA,EACR,UAAU;AACZ;AAEA,IAAM,0BAAuC;AAAA,EAC3C,IAAI;AACN;AAEA,IAAM,uBAAoC;AAAA,EACxC,SAAS,CAAC,QAAQ,MAAM;AAAA,EACxB,aAAa;AAAA,EACb,YAAY;AACd;AAEA,IAAMC,eAA2B;AAAA,EAC/B,YAAY;AACd;AAEA,IAAM,gBAA6B;AAAA,EACjC,GAAGA;AAAA,EACH,UAAU;AACZ;AAEA,IAAM,aAA0B;AAAA,EAC9B,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,cAAc;AAChB;AAEA,IAAM,iBAA8B;AAAA,EAClC,GAAG;AAAA,EACH,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,UAAU;AAAA,EACV,UAAU;AAAA,EACV,YAAY;AACd;AAEA,IAAM,gBAA6B;AAAA,EACjC,GAAG;AAAA,EACH,IAAI;AAAA,EACJ,UAAU;AACZ;AAEA,IAAM,mBAAgC;AAAA,EACpC,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AACT;AAEA,IAAM,kBAA+B;AAAA,EACnC,aAAa;AAAA,EACb,YAAY;AACd;AAEA,IAAM,aAA0B;AAAA,EAC9B,UAAU;AAAA,EACV,WAAW;AAAA,EACX,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,IAAI;AACN;AAEA,IAAOC,mBAAQ;AAAA,EACb;AAAA,EACA,OAAAJ;AAAA,EACA;AAAA,EACA,MAAAC;AAAA,EACA,aAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ADjJA,OAAOE,WAAU;AAEjB,SAAS,YAAAC,kBAAgB;AACzB,SAAS,cAAAC,oBAAkB;;;AEL3B,SAAS,QAAAC,cAAY;AAQjB,SACE,OAAAC,OADF,QAAAC,cAAA;AAFJ,IAAM,sBAAsB,CAAC,EAAE,OAAO,MACpC,SACE,gBAAAA,OAACF,QAAA,EAAK,SAAQ,aAAY,MAAK,QAAO,OAAM,8BAC1C;AAAA,kBAAAC;AAAA,IAAC;AAAA;AAAA,MACC,GAAE;AAAA,MACF,MAAK;AAAA;AAAA,EACP;AAAA,EACA,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,GAAE;AAAA,MACF,MAAK;AAAA;AAAA,EACP;AAAA,GACF,IAEA,gBAAAC,OAACF,QAAA,EAAK,SAAQ,aAAY,MAAK,QAAO,OAAM,8BAC1C;AAAA,kBAAAC;AAAA,IAAC;AAAA;AAAA,MACC,GAAE;AAAA,MACF,MAAK;AAAA;AAAA,EACP;AAAA,EACA,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,GAAE;AAAA,MACF,MAAK;AAAA;AAAA,EACP;AAAA,EACA,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,GAAE;AAAA,MACF,MAAK;AAAA;AAAA,EACP;AAAA,GACF;AAGJ,IAAO,gCAAQ;;;AFOL,SACW,OAAAE,OADX,QAAAC,cAAA;AAhBV,IAAM,aAAa,CAAC;AAAA,EAClB,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAuB;AACrB,QAAM,cAAc,aAAa,UAAU,UAAU,IAAI;AACzD,QAAM,CAAC,oBAAoB,qBAAqB,IAAIC,WAAkB,KAAK;AAC3E,QAAM,EAAE,OAAO,IAAIC,aAAW,cAAc;AAC5C,SACE,gBAAAL,MAACM,OAAA,EAAK,MAAM,KAAK,gBAAc,MAC7B,0BAAAL,OAACM,QAAA,EAAK,IAAIC,iBAAO,gBAAgB,MAAM,GACrC;AAAA,oBAAAP,OAACQ,OAAA,EACC;AAAA,sBAAAR,OAACS,QAAA,EAAK,WAAU,mBAAkB,IAAIF,iBAAO,OAC1C;AAAA,QAAAN,UAAQ,gBAAAF,MAACE,QAAA,EAAK,IAAIM,iBAAO,MAAM;AAAA,QAC/B,SACC,gBAAAR;AAAA,UAAC;AAAA;AAAA,YACC,IAAIQ,iBAAO;AAAA,YACX,QAAO;AAAA,YACP;AAAA,YACA,QAAQ;AAAA;AAAA,QACV,IACE;AAAA,QACHL,WAAU,cAAc,GAAG,IAAI,WAAW;AAAA,QAC1CA;AAAA,SACH;AAAA,MACA,gBAAAF,OAACS,QAAA,EAAK,WAAU,yBAAwB,IAAIF,iBAAO,aACjD;AAAA,wBAAAR,MAACO,QAAA,EACC,0BAAAP;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA,WAAU;AAAA,YACT,GAAG,EAAE,YAAY,KAAK;AAAA;AAAA,QACzB,GACF;AAAA,QACC,sBACC,IAAI,iBAAiB,IAAI,CAAC,UAAU,UAClC,gBAAAA;AAAA,UAACS;AAAA,UAAA;AAAA,YACC,IAAID,iBAAO;AAAA,YAGX,0BAAAR;AAAA,cAAC;AAAA;AAAA,gBACC,KAAK;AAAA,gBACL,WAAU;AAAA,gBACT,GAAG,EAAE,YAAY,KAAK;AAAA;AAAA,YACzB;AAAA;AAAA,UANK,eAAe,IAAI,QAAQ,IAAI,KAAK;AAAA,QAO3C,CACD;AAAA,SACL;AAAA,MACC,cACC,gBAAAC,OAACQ,OAAA,EAAI,IAAID,iBAAO,sBACd;AAAA,wBAAAR,MAACU,QAAA,EAAK,IAAIF,iBAAO,eACd,mBAAS,MAAM,EAAE,gBAAgB,KAAK,MACzC;AAAA,QACC,YAAY,IAAI,CAACG,aAAY,UAC5B,gBAAAV;AAAA,UAACM;AAAA,UAAA;AAAA,YACC,IAAI,UAAU,IAAIC,iBAAO,gBAAgBA,iBAAO;AAAA,YAGhD;AAAA,8BAAAR,MAACY,UAAA,EAAQ,OAAOD,aAAY,WAAU,OACpC,0BAAAX,MAACU,QAAA,EAAK,IAAIF,iBAAO,YAAa,UAAAG,aAAW,GAC3C;AAAA,cACC,QAAQ,YAAY,SAAS,IAC5B,gBAAAX,MAACa,YAAA,EAAU,WAAU,SAAQ,IAAIL,iBAAO,kBAAkB,IACxD;AAAA;AAAA;AAAA,UAPC,GAAGG,WAAU,GAAG,KAAK;AAAA,QAQ5B,CACD;AAAA,SACH,IACE;AAAA,MACH,cACC,gBAAAV,OAACM,QAAA,EAAK,IAAIC,iBAAO,iBACf;AAAA,wBAAAR,MAAC,YAAY,MAAZ,EAAiB,IAAIQ,iBAAO,YAAY;AAAA,QAAG;AAAA,QAC5C,gBAAAR,MAACU,QAAA,EAAM,uBAAa,OAAM;AAAA,SAC5B,IACE;AAAA,OACN;AAAA,IACC,IAAI,mBAAmB,IAAI,gBAAgB,SAAS,KACnD,gBAAAV;AAAA,MAACS;AAAA,MAAA;AAAA,QACC,IAAID,iBAAO;AAAA,QACX,SAAS,CAAC,UAAiB;AACzB,gCAAsB,CAAC,kBAAkB;AACzC,gBAAM,gBAAgB;AAAA,QACxB;AAAA,QAEA,0BAAAR,MAAC,iCAAoB,QAAQ,oBAAoB;AAAA;AAAA,IACnD;AAAA,KAEJ,GACF;AAEJ;AAEA,IAAO,sBAAQ;;;ADxGf,SAAS,OAAAc,OAAK,QAAAC,cAAY;AAwBtB,gBAAAC,OA6FA,QAAAC,cA7FA;AAbJ,IAAM,UAAU,CAAC,EAAE,IAAI,MAAgB;AACrC,QAAM,EAAE,gBAAgB,IAAIC,aAAW,cAAc;AACrD,QAAM,kBAAkB,aAAa,iBAAiB,IAAI,OAAO;AAEjE,QAAM,cAAc;AAAA,IAClB;AAAA,IACA,GAAI,IAAI,cAAc,CAAC,IAAI,WAAW,IAAI,CAAC;AAAA,IAC3C;AAAA,IACA,IAAI;AAAA,EACN;AACA,QAAM,UAAU,mBAAmB,iBAAiB,IAAI,OAAO;AAE/D,SACE,gBAAAF;AAAA,IAAC;AAAA;AAAA,MACC,KAAK,IAAI;AAAA,MACT,MAAM;AAAA,MACN,OAAO,IAAI;AAAA,MACX,QAAS,IAAI,UAAyB;AAAA,MACtC,aAAc,eAA4B,CAAC;AAAA,MAC3C,YAAa,IAAI,cAA6B;AAAA,MAC9C,KAAK,eAAe,IAAI,GAAG;AAAA,MAC3B;AAAA;AAAA,EACF;AAEJ;AAEA,IAAM,eAAeG;AAAA,EACnB,CAAC,EAAE,cAAc,MAA4B;AAC3C,UAAM,EAAE,qBAAqB,IAAID,aAAW,aAAa;AAEzD,IAAAE,YAAU,MAAM;AACd,UAAI,CAAC;AAAe;AAGpB,YAAM,UAAU;AAChB,YAAM,uBACJ,OAAO,SAAS,OAAO,YAAY,YACnC,QAAQ,OAAO,QAAQ,SAAS,UAAU;AAE5C,YAAM,SAAS,SAAS;AAQxB,YAAM,eAAe,QAAQ,KAAK,CAAC,UAAU,MAAM,SAAS,SAAS;AACrE,YAAM,SAAS,SAAS,UAAU;AAElC,YAAM,kBAA0C,CAAC;AAEjD,UAAI,cAAc,MAAM;AACtB,eAAO,QAAQ,aAAa,IAAI,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAC1D,cAAI,OAAO,UAAU,UAAU;AAC7B,4BAAgB,GAAG,IAAI;AAAA,UACzB;AAAA,QACF,CAAC;AAAA,MACH;AAEA,sBAAgB,EAAE,IAAI;AAEtB,UAAI,CAAC,sBAAsB;AACzB,6BAAqB,eAAe;AAAA,MACtC;AAAA,IACF,GAAG,CAAC,eAAe,OAAO,CAAC;AAE3B,WAAO;AAAA,EACT;AACF;AAEA,IAAM,eAAe,CAAC,EAAE,MAAM,SAAS,WAAW,MAA4B;AAC5E,QAAM,YAAYC,SAAwB,IAAI;AAE9C,WAAS,uBAAuB,SAAsC;AACpE,YAAQ,QAAQ,CAAC,UAAqC;AACpD,UAAI,MAAM,kBAAkB,SAAS;AACnC,mBAAW;AAAA,MACb;AAAA,IACF,CAAC;AAAA,EACH;AAEA,QAAM,iBAAiBC,SAAQ,MAAM;AACnC,UAAM,YAA4B,CAAC;AACnC,SAAK,QAAQ,CAAC,QAAQ;AACpB,YAAM,gBAAgB,UAAU;AAAA,QAC9B,CAAC,MAAM,EAAE,uBAAuB,IAAI;AAAA,MACtC;AAEA,YAAM,cAAmB,EAAE,GAAG,KAAK,iBAAiB,CAAC,EAAE;AACvD,UAAI,iBAAiB,GAAG;AACtB,kBAAU,aAAa,EAAE,iBAAiB,KAAK,WAAW;AAAA,MAC5D;AAAO,kBAAU,KAAK,WAAW;AAAA,IACnC,CAAC;AACD,WAAO;AAAA,EACT,GAAG,CAAC,IAAI,CAAC;AAET,EAAAF,YAAU,MAAM;AACd,UAAM,WAAW,IAAI,qBAAqB,wBAAwB,CAAC,CAAC;AAEpE,QAAI,UAAU;AAAS,eAAS,QAAQ,UAAU,OAAO;AACzD,WAAO,MAAM;AACX,eAAS,WAAW;AAAA,IACtB;AAAA,EACF,GAAG,CAAC,IAAI,CAAC;AACT,SACE,gBAAAH,OAACM,OAAA,EACC;AAAA,oBAAAP,MAAC,gBAAa;AAAA,IACb,eAAe,IAAI,CAAC,KAAU,UAC7B,gBAAAA,MAACQ,QAAA,EACC,0BAAAR,MAAC,WAAQ,OAAe,KAAO,KADtB,IAAI,QAEf,CACD;AAAA,IACD,gBAAAA,MAAC,UAAK,KAAK,WAAW;AAAA,KACxB;AAEJ;AAEA,IAAM,wBAA4B,oBAAoB,YAAY;AAElE,IAAO,uBAAQ;;;AIlJf,IAAM,kBAA+B;AAAA,EACnC,OAAO,CAAC,OAAO,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ;AAAA,EACpE,YAAY,CAAC,QAAQ,QAAQ,QAAQ,MAAM;AAAA,EAC3C,IAAI;AAAA,IACF,WAAW;AAAA,IACX,cAAc;AAAA,IACd,WAAW;AAAA,IACX,aAAa;AAAA,IACb,SAAS,CAAC,QAAQ,QAAQ,QAAQ,OAAO;AAAA,EAC3C;AACF;AAEA,IAAM,aAA0B;AAAA,EAC9B,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,SAAS,CAAC,QAAQ,QAAQ,QAAQ,SAAS;AAC7C;AAEA,IAAM,sBAAmC;AAAA,EACvC,IAAI,CAAC,QAAQ,OAAO;AAAA,EACpB,IAAI;AAAA,EACJ,gBAAgB;AAClB;AAEA,IAAM,iBAA8B;AAAA,EAClC,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,QAAQ;AACV;AAEA,IAAM,yBAAsC;AAAA,EAC1C,GAAG;AAAA,EACH,OAAO;AACT;AAEA,IAAM,mBAAgC;AAAA,EACpC,SAAS;AAAA,EACT,UAAU,CAAC,QAAQ,MAAM;AAAA,EACzB,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,IAAI,CAAC,QAAQ,MAAM;AACrB;AAEA,IAAM,yBAAsC;AAAA,EAC1C,YAAY;AAAA,EACZ,IAAI;AACN;AAEA,IAAMS,aAAyB;AAAA,EAC7B,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,SAAS;AACX;AAEA,IAAOC,mBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAAD;AACF;;;AL5BM,gBAAAE,OAeE,QAAAC,cAfF;AAxBN,IAAM,gBAAgB,MAAM;AAC1B,QAAM,SAASC,WAAU;AACzB,QAAM,EAAE,uBAAuB,eAAe,IAAIC,aAAW,aAAa;AAC1E,QAAM,EAAE,OAAO,IAAIA,aAAW,cAAc;AAC5C,QAAM,UAAU;AAAA,IACd,YAAY,MAAM;AAAA,IAClB,wBAAwB,YAAY,qBAAqB,MAAM;AAAA,EACjE,EACG,OAAO,OAAO,EACd,KAAK,OAAO;AACf,QAAM,CAAC,YAAY,aAAa,IAAIC,WAAS,EAAE;AAC/C,QAAM,CAAC,aAAa,cAAc,IAAIA,WAAS,CAAC,CAAC;AAEjD,QAAM,oBAAoB,CAAC,iBAA8B;AACvD,UAAM,OAAO,YAAY,aAAa,IAAI,aAAa,QAAQ;AAC/D,kBAAc,OAAO;AACrB,mBAAe;AAAA,MACb,GAAG;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH;AAEA,SACE,gBAAAH,OAACI,OAAA,EAAI,IAAIC,iBAAO,iBACd;AAAA,oBAAAN,MAACO,QAAA,EAAK,IAAID,iBAAO,YACd,aAAG,SAAS,MAAM,EAAE,wBAAwB,KAAK,SAAS,IACzD,eAAe,qBAAqB,MAAM,SACtC,KACA,eAAe,qBAAqB,CAC1C,IAAI,SAAS,MAAM,EAAE,4BAA4B,KAAK,aAAa,IACjE,OAAO,MAAM,OACf,IAAI,SAAS,MAAM,EAAE,mBAAmB,KAAK,IAAI,IAC/C,CAAC,wBACG,SAAS,MAAM,EAAE,8BAA8B,KAAK,gBACpD,qBACN,IACF;AAAA,IACA,gBAAAN,MAAC,QAAG;AAAA,IACJ,gBAAAA,MAACK,OAAA,EACC,0BAAAJ;AAAA,MAACO;AAAA,MAAA;AAAA,QACC;AAAA,QACA,WAAW;AAAA,QACX;AAAA,QACA,qBAAqB,CAAC,iBACpB,kBAAkB,YAAY;AAAA,QAGhC;AAAA,0BAAAR;AAAA,YAACS;AAAA,YAAA;AAAA,cACC;AAAA,cACA,OAAO,OAAO,MAAM;AAAA,cACpB,gBAAgB;AAAA,cAChB,aAAa;AAAA,cACb,QAAQ,CAAC,WAAW,UAAU;AAAA,cAC9B,uBAAuB;AAAA;AAAA,UACzB;AAAA,UACA,gBAAAT,MAAC,wBAAa;AAAA;AAAA;AAAA,IAChB,GACF;AAAA,KACF;AAEJ;AAEA,IAAO,yBAAQ;;;AM7Ef,SAAS,cAAAU,oBAAkB;AAC3B,SAAS,QAAAC,QAAM,QAAAC,cAAY;;;ACC3B,IAAMC,aAAyB;AAAA,EAC7B,SAAS,CAAC,QAAQ,QAAQ,QAAQ,MAAM;AAAA,EACxC,WAAW;AAAA,EACX,gBAAgB;AAAA,EAChB,uBAAuB;AAAA,IACrB,SAAS;AAAA,EACX;AACF;AAEA,IAAM,MAAwC,CAAC,YAAY;AAAA,EACzD,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,QAAQ;AAAA,EACR,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,cAAc,GAAG,SAAS,IAAI,CAAC,aAAa,SAAS,WAAW,QAAQ;AAAA,EACxE,UAAU;AACZ;AAEA,IAAM,WAA6C,CAAC,YAAY;AAAA,EAC9D,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,OAAO,IAAI,SAAS,WAAW,QAAQ;AACzC;AAEA,IAAM,WAAwB;AAAA,EAC5B,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,iBAAiB;AACnB;AAEA,IAAOC,mBAAQ,EAAE,WAAAD,YAAW,KAAK,UAAU,SAAS;;;AD1BhD,SAIE,OAAAE,OAJF,QAAAC,cAAA;AANJ,IAAM,kBAAkB,CAAC,EAAE,OAAO,MAA0B;AAC1D,QAAM,EAAE,uBAAuB,6BAA6B,eAAe,IACzEC,aAAW,aAAa;AAC1B,QAAM,EAAE,OAAO,IAAIA,aAAW,cAAc;AAE5C,SACE,gBAAAD;AAAA,IAACE;AAAA,IAAA;AAAA,MACC,IAAIC,iBAAO,IAAI,0BAA0B,MAAM;AAAA,MAC/C,SAAS,MAAM,4BAA4B,MAAM;AAAA,MAEjD;AAAA,wBAAAJ,MAACK,QAAA,EAAK,IAAID,iBAAO,SAAS,0BAA0B,MAAM,GACvD,oBAAU,SAAS,MAAM,EAAE,oBAAoB,KAAK,eACvD;AAAA,QACA,gBAAAJ,MAACK,QAAA,EAAK,IAAID,iBAAO,UAAW,yBAAe,MAAM,KAAK,GAAE;AAAA;AAAA;AAAA,EAC1D;AAEJ;AAEA,IAAM,qBAAqB,MAAM;AAC/B,QAAM,EAAE,gBAAgB,IAAIF,aAAW,cAAc;AACrD,SACE,gBAAAD,OAACE,QAAA,EAAK,IAAIC,iBAAO,WACf;AAAA,oBAAAJ,MAAC,mBAAgB,QAAO,IAAG;AAAA,IAC1B,gBAAgB,KAAK,EAAE,IAAI,CAAC,YAAY;AACvC,aAAO,gBAAAA,MAAC,mBAAiC,QAAQ,QAAQ,MAA5B,QAAQ,EAAwB;AAAA,IAC/D,CAAC;AAAA,KACH;AAEJ;AAEA,IAAO,gCAAQ;;;AEpCf,IAAM,qBAAkC;AAAA,EACtC,SAAS,CAAC,QAAQ,QAAQ,QAAQ,MAAM;AAAA,EACxC,gBAAgB;AAAA,EAChB,IAAI;AACN;AAEA,IAAM,OAAoB;AAAA,EACxB,YAAY;AAAA,EACZ,gBAAgB;AAClB;AAEA,IAAOM,mBAAQ;AAAA,EACb;AAAA,EACA;AACF;;;AdLM,SAEI,OAAAC,OAFJ,QAAAC,cAAA;AAHN,IAAM,SAAS,MAAM;AACnB,SACE,gBAAAA,OAAC,kBACC;AAAA,oBAAAA,OAACC,OAAA,EACC;AAAA,sBAAAF,MAACG,QAAA,EAAK,IAAIC,iBAAO,oBACf,0BAAAJ,MAAC,eAAY,GACf;AAAA,MACA,gBAAAA,MAAC,iCAAmB;AAAA,OACtB;AAAA,IACA,gBAAAC,OAACE,QAAA,EAAK,IAAIC,iBAAO,MACf;AAAA,sBAAAJ,MAAC,2BAAe;AAAA,MAChB,gBAAAA,MAAC,0BAAc;AAAA,OACjB;AAAA,KACF;AAEJ;AAEA,IAAOK,kBAAQ;;;AezBf,SAAoB,cAAAC,oBAAkB;AACtC,SAAS,qBAAqB;;;ACC9B,IAAM,MAAmB;AAAA,EACvB,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,OAAO;AAAA,EACP,SAAS;AAAA,EACT,OAAO;AAAA,EACP,MAAM;AAAA,EACN,WAAW;AAAA,EACX,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,WAAW;AACb;AAEA,IAAM,aAA0B;AAAA,EAC9B,SAAS;AAAA,EACT,MAAM;AAAA,EACN,eAAe;AAAA,EACf,UAAU;AACZ;AAEA,IAAMC,SAAqB;AAAA,EACzB,OAAO;AAAA,EACP,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,YAAY;AACd;AAEA,IAAM,kBAA+B;AAAA,EACnC,SAAS;AAAA,EACT,UAAU;AAAA,EACV,KAAK;AAAA,EACL,gBAAgB;AAAA,EAChB,QAAQ;AACV;AAEA,IAAM,eAA4B;AAAA,EAChC,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,SAAS;AAAA,EACT,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,YAAY;AAAA,EAEZ,UAAU;AAAA,IACR,SAAS;AAAA,EACX;AACF;AAEA,IAAM,gBAA6B;AAAA,EACjC,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,QAAQ;AAAA,EAER,UAAU;AAAA,IACR,SAAS;AAAA,EACX;AACF;AAEA,IAAOC,mBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA,OAAAD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ADvEA,SAAS,QAAAE,QAAmB,QAAAC,cAAY;AAGxC,OAAOC,SAAQ;AAaX,gBAAAC,OAUA,QAAAC,cAVA;AAFJ,IAAMC,UAAS,CAAC,EAAE,UAAU,OAAO,GAAG,MAAM,MAAmB;AAC7D,SACE,gBAAAF,MAACG,QAAA,EAAK,IAAI,OAAQ,GAAG,OAClB,UACH;AAEJ;AAEA,IAAM,YAAY,CAAC,EAAE,SAAS,MAAa;AACzC,QAAM,EAAE,OAAO,IAAIC,aAAW,cAAc;AAE5C,SACE,gBAAAH;AAAA,IAAC;AAAA;AAAA,MACC,qBAAmB;AAAA,MACnB,aAAaI,iBAAO;AAAA,MACpB,oBAAoBA,iBAAO;AAAA,MAC3B,OAAOA,iBAAO;AAAA,MACd,UAAU,MAAM;AACd,QAAAN,IAAG,QAAQ;AAAA,UACT,SAAS;AAAA,UACT,WAAW;AAAA,QACb,CAAC;AACD,iBAAS;AAAA,MACX;AAAA,MACA,mBAAmB,SAAS,MAAM,EAAE,oBAAoB;AAAA,MACxD,YAAY,SAAS,MAAM,EAAE,mBAAmB;AAAA,MAChD,iBAAiBG;AAAA,MACjB,+BAA+B,EAAE,OAAOG,iBAAO,gBAAgB;AAAA,MAC/D,yBAAyB,EAAE,OAAOA,iBAAO,WAAW;AAAA,MAEpD;AAAA,wBAAAL,MAACM,QAAA,EAAK,IAAID,iBAAO,OAAQ,mBAAS,MAAM,EAAE,kBAAkB,GAAE;AAAA,QAC9D,gBAAAL,MAACM,QAAA,EAAM,mBAAS,MAAM,EAAE,wBAAwB,GAAE;AAAA;AAAA;AAAA,EACpD;AAEJ;AAEA,IAAO,qBAAQ;;;AErDf,SAAS,UAAAC,eAAc;;;ACCvB,SAAS,QAAAC,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,WAAW,CAAC,UAChB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,oBAAQ;;;ADxBf,SAAS,YAAAE,kBAAgB;;;AEDzB,IAAM,WAAwB;AAAA,EAC5B,aAAa;AACf;AAEA,IAAM,iBAA8B;AAAA,EAClC,eAAe;AAAA,EACf,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,iBAAiB;AAAA,EACjB,UAAU;AAAA,IACR,iBAAiB;AAAA,EACnB;AACF;AAEA,IAAOC,mBAAQ;AAAA,EACb;AAAA,EACA;AACF;;;AFHQ,gBAAAC,aAAA;AAfR,IAAM,iBAAiB,MAAM;AAC3B,QAAM,CAAC,aAAa,cAAc,IAAIC,WAAS,MAAM;AAErD,QAAM,aAAa,MAAM;AACvB,cAAU,UAAU,UAAU,OAAO,SAAS,IAAI;AAClD,mBAAe,MAAM;AAErB,eAAW,MAAM;AACf,qBAAe,SAAS;AAAA,IAC1B,GAAG,GAAI;AAAA,EACT;AAEA,SACE,gBAAAD,MAAC,mBAAQ,OAAO,aAAa,WAAU,UACrC,0BAAAA,MAACE,SAAA,EAAO,SAAS,YAAY,IAAIC,iBAAO,gBACtC,0BAAAH,MAAC,qBAAS,IAAIG,iBAAO,UAAU,MAAM,IAAI,GAC3C,GACF;AAEJ;AAEA,IAAO,2BAAQ;;;AG3Bf,SAAS,YAAAC,YAAU,aAAAC,mBAAiB;;;ACEpC,IAAM,QAAqB;AAAA,EACzB,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,UAAU,CAAC,MAAM;AAAA,EACjB,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,SAAS;AACX;AAEA,IAAMC,QAAoB;AAAA,EACxB,UAAU;AAAA,EACV,WAAW;AAAA,EACX,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,UAAU;AACZ;AAEA,IAAMC,cAAyB;AAAA,EAC7B,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,QAAQ;AAAA,EAER,UAAU;AAAA,IACR,YAAY;AAAA,IACZ,QAAQ;AAAA,EACV;AACF;AAEA,IAAOC,mBAAQ,EAAE,WAAAD,aAAW,OAAO,MAAAD,MAAK;;;ADrCxC,SAAS,QAAAG,cAAY;AAkBjB,SACW,OAAAC,OADX,QAAAC,cAAA;AARJ,IAAM,QAAQ,CAAC,EAAE,OAAO,UAAU,cAAc,IAAI,MAAAC,OAAK,MAAkB;AACzE,QAAM,CAAC,YAAY,aAAa,IAAIC,WAAS,SAAS,EAAE;AAExD,EAAAC,YAAU,MAAM;AACd,QAAI,eAAe;AAAO,oBAAc,KAAK;AAAA,EAC/C,GAAG,CAAC,KAAK,CAAC;AAEV,SACE,gBAAAH,OAACF,QAAA,EAAK,IAAIM,iBAAO,WACd;AAAA,IAAAH,UAAQ,gBAAAF,MAACE,QAAA,EAAK,IAAIG,iBAAO,MAAM;AAAA,IAChC,gBAAAL;AAAA,MAAC;AAAA;AAAA,QACC,OAAOK,iBAAO;AAAA,QACd,OAAO;AAAA,QACP;AAAA,QACA,UAAU,CAAC,MAAM;AACf,wBAAc,EAAE,cAAc,KAAK;AACnC,mBAAS,EAAE,cAAc,KAAK;AAAA,QAChC;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;AAEA,IAAO,gBAAQ;;;AEnCR,IAAM,iBAAiB,CAAC,SAAe;AAC5C,QAAM,UAAU,MAAO,KAAK,KAAK;AACjC,QAAM,aAAY,oBAAI,KAAK,GAAE,QAAQ,IAAI,KAAK,QAAQ;AACtD,SAAO,KAAK,MAAM,YAAY,OAAO;AACvC;;;ACJA,SAAS,QAAAC,cAAY;AAKjB,SAME,OAAAC,OANF,QAAAC,cAAA;AAFJ,IAAM,0BAA0B,CAAC,UAAqB;AACpD,SACE,gBAAAA;AAAA,IAACF;AAAA,IAAA;AAAA,MACE,GAAG;AAAA,MACJ,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,OAAM;AAAA,MAEN;AAAA,wBAAAC;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,gBAAe;AAAA;AAAA,QACjB;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA;AAAA,QAChB;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA;AAAA,QAChB;AAAA;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,oCAAQ;;;ACrDf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,2BAA2B,CAAC,UAChC,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,qCAAQ;;;AC1Cf,SAAS,QAAAE,cAAY;AAGnB,SAOE,OAAAC,OAPF,QAAAC,cAAA;AADF,IAAM,iBAAiB,CAAC,UACtB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEL;AAAA;AAAA,MACD,gBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,0BAAQ;;;AC3Cf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,sBAAsB,CAAC,UAC3B,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,GAAE;AAAA,UACF,OAAM;AAAA,UACN,QAAO;AAAA,UACP,IAAG;AAAA,UACH,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACd;AAAA,MACA,gBAAAA,MAAC,UAAK,GAAE,aAAY,QAAO,WAAU,aAAY,OAAM;AAAA,MACvD,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,gCAAQ;;;AC3Cf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,UAAU,CAAC,UACf,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA;AAAA,MAChB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,mBAAQ;;;AC/Bf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,iBAAiB,CAAC,UACtB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,UAAK,OAAM,SAAQ,QAAO,SAAQ,MAAK,QAAO;AAAA,MAC/C,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,IAAG;AAAA,UACH,IAAG;AAAA,UACH,IAAG;AAAA,UACH,IAAG;AAAA,UACH,MAAK;AAAA,UACL,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAY;AAAA;AAAA,MACb;AAAA,MACD,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,IAAG;AAAA,UACH,IAAG;AAAA,UACH,IAAG;AAAA,UACH,IAAG;AAAA,UACH,MAAK;AAAA,UACL,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAY;AAAA;AAAA,MACb;AAAA,MACD,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,GAAE;AAAA,UACF,OAAM;AAAA,UACN,QAAO;AAAA,UACP,IAAG;AAAA,UACH,aAAY;AAAA,UACZ,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,MAAK;AAAA;AAAA,MACN;AAAA;AAAA;AACH;AAGF,IAAO,4BAAQ;;;AC/Cf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,gBAAgB,CAAC,UACrB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACd;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACd;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACd;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACd;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,yBAAQ;;;ACvCf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,YAAY,CAAC,UACjB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACd;AAAA;AAAA;AACF;AAGF,IAAO,qBAAQ;;;ACxBf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,cAAc,CAAC,UACnB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,uBAAQ;;;ACjCf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,YAAY,CAAC,UACjB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,qBAAQ;;;AC/Cf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,gBAAgB,CAAC,UACrB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,0BAAQ;;;AC1Bf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,gBAAgB,CAAC,UACrB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,yBAAQ;;;ACtDf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,mBAAmB,CAAC,UACxB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,UAAK,OAAM,SAAQ,QAAO,SAAQ,MAAK,QAAO;AAAA,MAC/C,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA,UACL,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAY;AAAA;AAAA,MACb;AAAA,MACD,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA,UACL,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAY;AAAA;AAAA,MACb;AAAA;AAAA;AACH;AAGF,IAAO,4BAAQ;;;AC7Bf,SAAS,QAAAE,cAAY;AAGnB,SAOI,OAAAC,OAPJ,QAAAC,cAAA;AADF,IAAM,oBAAoB,CAAC,UACzB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,OAAE,UAAS,2BACV,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP,GACF;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA,MAAC,UACC,0BAAAA,MAAC,cAAS,IAAG,qBACX,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,QAAO;AAAA,UACP,MAAK;AAAA,UACL,WAAU;AAAA;AAAA,MACZ,GACF,GACF;AAAA;AAAA;AACF;AAGF,IAAO,8BAAQ;;;ACpCf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,qBAAqB,CAAC,UAC1B,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA,MAAC,UAAK,GAAE,yCAAwC,MAAK,WAAU;AAAA,MAC/D,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA;AAAA;AACF;AAGF,IAAO,+BAAQ;;;ACrBf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,WAAW,CAAC,UAChB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA;AAAA;AACF;AAGF,IAAO,oBAAQ;;;ACxBf,SAAS,QAAAE,cAAY;AASjB,gBAAAC,OACA,QAAAC,cADA;AAPJ,IAAM,UAAU,CAAC,UACf,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,YAAO,IAAG,WAAU,IAAG,KAAI,GAAE,KAAI,MAAK,WAAU;AAAA,MACjD,gBAAAC,OAAC,OAAE,UAAS,yBACV;AAAA,wBAAAD;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,SACF;AAAA,MACA,gBAAAA,MAAC,UACC,0BAAAA,MAAC,cAAS,IAAG,mBACX,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,QAAO;AAAA,UACP,MAAK;AAAA,UACL,WAAU;AAAA;AAAA,MACZ,GACF,GACF;AAAA;AAAA;AACF;AAGF,IAAO,mBAAQ;;;ACrCf,SAAS,QAAAE,cAAY;AASjB,gBAAAC,aAAA;AAPJ,IAAM,aAAa,CAAC,UAClB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN,0BAAAC;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,UAAS;AAAA,QACT,GAAE;AAAA,QACF,QAAO;AAAA,QACP,aAAY;AAAA,QACZ,eAAc;AAAA,QACd,gBAAe;AAAA;AAAA,IACjB;AAAA;AACF;AAGF,IAAO,sBAAQ;;;ACrBf,SAAS,QAAAC,cAAY;AAGnB,SAOE,OAAAC,OAPF,QAAAC,cAAA;AADF,IAAM,gBAAgB,CAAC,UACrB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEL;AAAA;AAAA,MACD,gBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,yBAAQ;;;AC/Bf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,qBAAqB,CAAC,UAC1B,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA;AAAA,MACT;AAAA,MACA,gBAAAA,MAAC,OAAE,UAAS,yBACV,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP,GACF;AAAA,MACA,gBAAAA,MAAC,UACC,0BAAAA,MAAC,cAAS,IAAG,mBACX,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,QAAO;AAAA,UACP,MAAK;AAAA,UACL,WAAU;AAAA;AAAA,MACZ,GACF,GACF;AAAA;AAAA;AACF;AAGF,IAAO,+BAAQ;;;AChCf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,qBAAqB,CAAC,UAC1B,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA;AAAA,MACT;AAAA,MACA,gBAAAA,MAAC,OAAE,UAAS,yBACV,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP,GACF;AAAA,MACA,gBAAAA,MAAC,UACC,0BAAAA,MAAC,cAAS,IAAG,mBACX,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,QAAO;AAAA,UACP,MAAK;AAAA,UACL,WAAU;AAAA;AAAA,MACZ,GACF,GACF;AAAA;AAAA;AACF;AAGF,IAAO,+BAAQ;;;AChCf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,oBAAoB,CAAC,UACzB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA;AAAA,MACT;AAAA;AAAA;AACF;AAGF,IAAO,8BAAQ;;;ACpBf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,cAAc,CAAC,UACnB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA;AAAA,MACT;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA;AAAA,MACT;AAAA,MACA,gBAAAA,MAAC,OAAE,UAAS,yBACV,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP,GACF;AAAA,MACA,gBAAAA,MAAC,UACC,0BAAAA,MAAC,cAAS,IAAG,mBACX,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,QAAO;AAAA,UACP,MAAK;AAAA,UACL,WAAU;AAAA;AAAA,MACZ,GACF,GACF;AAAA;AAAA;AACF;AAGF,IAAO,uBAAQ;;;ACpCf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,SAAS,CAAC,UACd,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA;AAAA,MACT;AAAA,MACA,gBAAAA,MAAC,OAAE,UAAS,yBACV,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP,GACF;AAAA,MACA,gBAAAA,MAAC,UACC,0BAAAA,MAAC,cAAS,IAAG,mBACX,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,QAAO;AAAA,UACP,MAAK;AAAA,UACL,WAAU;AAAA;AAAA,MACZ,GACF,GACF;AAAA;AAAA;AACF;AAGF,IAAO,yBAAQ;;;AChCf,SAAS,QAAAE,cAAY;AAYjB,gBAAAC,aAAA;AAVJ,IAAM,cAAc,CAAC,UACnB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,MAAK;AAAA,IACL,aAAU;AAAA,IACV,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,OAAM;AAAA,IAEN,0BAAAC,MAAC,UAAK,GAAE,q+CAAo+C;AAAA;AAC9+C;AAGF,IAAO,uBAAQ;;;AChBf,SAAS,QAAAC,cAAY;AAGnB,SASE,OAAAC,OATF,QAAAC,cAAA;AADF,IAAM,aAAa,CAAC,UAClB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,MAAK;AAAA,IACL,aAAU;AAAA,IACV,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,WAAM,oBAAM;AAAA,MACb,gBAAAA,MAAC,UAAK,GAAE,+9CAA89C;AAAA;AAAA;AACx+C;AAGF,IAAO,sBAAQ;;;ACjBf,SAAS,QAAAE,cAAY;AAYjB,gBAAAC,aAAA;AAVJ,IAAM,aAAa,CAAC,UAClB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,MAAK;AAAA,IACL,aAAU;AAAA,IACV,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,OAAM;AAAA,IAEN,0BAAAC,MAAC,UAAK,GAAE,qcAAoc;AAAA;AAC9c;AAGF,IAAO,sBAAQ;;;AChBf,SAAS,QAAAC,cAAY;AAYjB,gBAAAC,aAAA;AAVJ,IAAM,cAAc,CAAC,UACnB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,MAAK;AAAA,IACL,aAAU;AAAA,IACV,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,OAAM;AAAA,IAEN,0BAAAC,MAAC,UAAK,GAAE,0iBAAyiB;AAAA;AACnjB;AAGF,IAAO,uBAAQ;;;AChBf,SAAS,QAAAC,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,WAAW,CAAC,UAChB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA;AAAA;AACF;AAGF,IAAO,oBAAQ;;;AClEf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,eAAe,CAAC,UACpB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,wBAAQ;;;AC/Cf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,aAAa,CAAC,UAClB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,sBAAQ;;;AClEf,SAAS,QAAAE,cAAY;AAGnB,SAQE,OAAAC,OARF,QAAAC,cAAA;AADF,IAAM,WAAW,CAAC,UAChB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,oBAAQ;;;ACjEf,SAAS,QAAAE,cAAY;AAcf,qBAAAC,WACE,OAAAC,OADF,QAAAC,cAAA;AARN,IAAM,eAAe,CAAC,UACpB,gBAAAD;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEL,WAAC,MAAM,UACN,gBAAAG,OAAAF,WAAA,EACE;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,GAAE;AAAA,UACF,OAAM;AAAA,UACN,QAAO;AAAA,UACP,IAAG;AAAA,UACH,MAAK;AAAA,UACL,aAAY;AAAA;AAAA,MACd;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,GAAE;AAAA,UACF,OAAM;AAAA,UACN,QAAO;AAAA,UACP,IAAG;AAAA,UACH,QAAO;AAAA;AAAA,MACT;AAAA,OACF,IAEA,gBAAAC,OAAAF,WAAA,EACE;AAAA,sBAAAC,MAAC,UAAK,OAAM,MAAK,QAAO,MAAK,IAAG,KAAI,MAAK,WAAU;AAAA,MACnD,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,OACF;AAAA;AAEJ;AAGF,IAAO,mBAAQ;;;AC/Cf,SAAS,QAAAE,cAAY;AASjB,gBAAAC,aAAA;AAPJ,IAAM,aAAa,CAAC,UAClB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN,0BAAAC;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,GAAE;AAAA;AAAA,IACJ;AAAA;AACF;AAGF,IAAO,sBAAQ;;;AChBf,SAAS,QAAAC,cAAY;AAGnB,SAOE,OAAAC,OAPF,QAAAC,cAAA;AADF,IAAM,iBAAiB,CAAC,UACtB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEL;AAAA;AAAA,MACD,gBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,2BAAQ;;;AC3Bf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,QANF,QAAAC,cAAA;AADF,IAAM,gBAAgB,CAAC,UACrB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,0BAAQ;;;AC1Bf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,QANF,QAAAC,cAAA;AADF,IAAM,iBAAiB,CAAC,UACtB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA;AAAA;AACF;AAGF,IAAO,2BAAQ;","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","createGunzip","gzip","defaultHttpAgent","defaultHttpsAgent","agentOptions","init_requester_node_http_esm","version","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","blockquoteInfo","blockquoteDanger","blockquoteWarning","blockquoteSuccess","flexWrap","svgContainer","messages","jsx","jsxs","useState","styles_default","icon","useRef","useEffect","width","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","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","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","algoliasearch","params","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","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","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","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","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","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","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/search-results/index.tsx b/src/components/search-results/index.tsx index 5fac8b5..2a142d9 100644 --- a/src/components/search-results/index.tsx +++ b/src/components/search-results/index.tsx @@ -64,7 +64,7 @@ const SearchResults = () => { filters={filters} query={router.query.keyword} clickAnalytics={true} - hitsPerPage={6} + hitsPerPage={10} facets={['doctype', 'language']} facetingAfterDistinct={true} /> From 977f53a5fc8f92a1bdc3c2d904a39cbf5eb48312 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A1rbara=20Celi?= Date: Tue, 19 May 2026 09:37:50 -0300 Subject: [PATCH 06/23] refactor: streamline InfiniteHits component export and add TypeScript type assertion --- dist/index.mjs | 3 +-- dist/index.mjs.map | 2 +- src/components/search-results/infiniteHits.tsx | 5 +++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/dist/index.mjs b/dist/index.mjs index 99267de..ee7dc6a 100644 --- a/dist/index.mjs +++ b/dist/index.mjs @@ -11577,8 +11577,7 @@ var InfiniteHits = ({ hits, hasMore, refineNext }) => { /* @__PURE__ */ jsx57("span", { ref: scrollRef }) ] }); }; -var ConnectedInfiniteHits = connectInfiniteHits(InfiniteHits); -var infiniteHits_default = ConnectedInfiniteHits; +var infiniteHits_default = connectInfiniteHits(InfiniteHits); // src/components/search-results/styles.ts var resultContainer = { diff --git a/dist/index.mjs.map b/dist/index.mjs.map index 87b4174..ac1586a 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/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/trashcan-icon.tsx","../src/components/icons/filter-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.26.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.26.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.26.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.26.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 .catch(error => {\r\n // Clean up temporary index if there's an error\r\n // eslint-disable-next-line promise/no-nesting\r\n return deleteIndex({\r\n appId: base.appId,\r\n transporter: base.transporter,\r\n indexName: temporaryIndexName,\r\n })()\r\n .catch(() => {\r\n // Ignore delete errors\r\n })\r\n .then(() => {\r\n throw error;\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.26.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';\nimport { createGunzip, gzip } from 'zlib';\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 COMPRESSION_THRESHOLD = 750;\r\n const acceptEncoding = request.headers['accept-encoding'];\r\n const shouldCompress = request.data !== undefined &&\r\n Buffer.byteLength(request.data) >= COMPRESSION_THRESHOLD &&\r\n acceptEncoding !== undefined &&\r\n acceptEncoding.toLowerCase().includes('gzip');\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 ...(shouldCompress ? { 'content-encoding': 'gzip' } : {}),\r\n },\r\n ...(url.port !== undefined ? { port: url.port || '' } : {}),\r\n };\r\n // eslint-disable-next-line functional/no-let, prefer-const\r\n let connectTimeout;\r\n // eslint-disable-next-line functional/no-let\r\n let responseTimeout;\r\n // eslint-disable-next-line functional/no-let\r\n let gunzip;\r\n const cleanup = () => {\r\n clearTimeout(connectTimeout);\r\n clearTimeout(responseTimeout);\r\n if (gunzip) {\r\n gunzip.destroy();\r\n }\r\n };\r\n const onError = (error) => {\r\n cleanup();\r\n resolve({ status: 0, content: error.message, isTimedOut: false });\r\n };\r\n const req = (url.protocol === 'https:' ? https : http).request(options, response => {\r\n const contentEncoding = response.headers['content-encoding'];\r\n const isGzipResponse = contentEncoding !== undefined && contentEncoding.toLowerCase().includes('gzip');\r\n // eslint-disable-next-line functional/no-let\r\n let contentBuffers = [];\r\n const onData = (chunk) => {\r\n contentBuffers = contentBuffers.concat(chunk);\r\n };\r\n const onEnd = () => {\r\n cleanup();\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 response.on('error', onError);\r\n if (isGzipResponse) {\r\n gunzip = createGunzip();\r\n response.pipe(gunzip);\r\n gunzip.on('data', onData);\r\n gunzip.on('end', onEnd);\r\n gunzip.on('error', onError);\r\n }\r\n else {\r\n response.on('data', onData);\r\n response.on('end', onEnd);\r\n }\r\n });\r\n const createTimeout = (timeout, content) => {\r\n return setTimeout(() => {\r\n req.abort();\r\n if (gunzip) {\r\n gunzip.destroy();\r\n }\r\n resolve({\r\n status: 0,\r\n content,\r\n isTimedOut: true,\r\n });\r\n }, timeout * 1000);\r\n };\r\n connectTimeout = createTimeout(request.connectTimeout, 'Connection timeout');\r\n req.on('error', onError);\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 && shouldCompress) {\r\n gzip(request.data, (error, compressedBody) => {\r\n if (error) {\r\n onError(error);\r\n return;\r\n }\r\n req.setHeader('content-length', compressedBody.byteLength);\r\n req.write(compressedBody);\r\n req.end();\r\n });\r\n }\r\n else {\r\n if (request.data !== undefined) {\r\n req.setHeader('content-length', Buffer.byteLength(request.data));\r\n req.write(request.data);\r\n }\r\n req.end();\r\n }\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';\nimport { createGunzip, gzip } from 'zlib';\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 COMPRESSION_THRESHOLD = 750;\r\n const acceptEncoding = request.headers['accept-encoding'];\r\n const shouldCompress = request.data !== undefined &&\r\n Buffer.byteLength(request.data) >= COMPRESSION_THRESHOLD &&\r\n acceptEncoding !== undefined &&\r\n acceptEncoding.toLowerCase().includes('gzip');\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 ...(shouldCompress ? { 'content-encoding': 'gzip' } : {}),\r\n },\r\n ...(url.port !== undefined ? { port: url.port || '' } : {}),\r\n };\r\n // eslint-disable-next-line functional/no-let, prefer-const\r\n let connectTimeout;\r\n // eslint-disable-next-line functional/no-let\r\n let responseTimeout;\r\n // eslint-disable-next-line functional/no-let\r\n let gunzip;\r\n const cleanup = () => {\r\n clearTimeout(connectTimeout);\r\n clearTimeout(responseTimeout);\r\n if (gunzip) {\r\n gunzip.destroy();\r\n }\r\n };\r\n const onError = (error) => {\r\n cleanup();\r\n resolve({ status: 0, content: error.message, isTimedOut: false });\r\n };\r\n const req = (url.protocol === 'https:' ? https : http).request(options, response => {\r\n const contentEncoding = response.headers['content-encoding'];\r\n const isGzipResponse = contentEncoding !== undefined && contentEncoding.toLowerCase().includes('gzip');\r\n // eslint-disable-next-line functional/no-let\r\n let contentBuffers = [];\r\n const onData = (chunk) => {\r\n contentBuffers = contentBuffers.concat(chunk);\r\n };\r\n const onEnd = () => {\r\n cleanup();\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 response.on('error', onError);\r\n if (isGzipResponse) {\r\n gunzip = createGunzip();\r\n response.pipe(gunzip);\r\n gunzip.on('data', onData);\r\n gunzip.on('end', onEnd);\r\n gunzip.on('error', onError);\r\n }\r\n else {\r\n response.on('data', onData);\r\n response.on('end', onEnd);\r\n }\r\n });\r\n const createTimeout = (timeout, content) => {\r\n return setTimeout(() => {\r\n req.abort();\r\n if (gunzip) {\r\n gunzip.destroy();\r\n }\r\n resolve({\r\n status: 0,\r\n content,\r\n isTimedOut: true,\r\n });\r\n }, timeout * 1000);\r\n };\r\n connectTimeout = createTimeout(request.connectTimeout, 'Connection timeout');\r\n req.on('error', onError);\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 && shouldCompress) {\r\n gzip(request.data, (error, compressedBody) => {\r\n if (error) {\r\n onError(error);\r\n return;\r\n }\r\n req.setHeader('content-length', compressedBody.byteLength);\r\n req.write(compressedBody);\r\n req.end();\r\n });\r\n }\r\n else {\r\n if (request.data !== undefined) {\r\n req.setHeader('content-length', Buffer.byteLength(request.data));\r\n req.write(request.data);\r\n }\r\n req.end();\r\n }\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');\nvar requesterCommon = require('@algolia/requester-common');\n\nfunction createIngestionClient(options) {\r\n if (!options || !options.transformation || !options.transformation.region) {\r\n throw transformationConfigurationError('`region` must be provided when leveraging the transformation pipeline');\r\n }\r\n if (options.transformation.region !== 'eu' && options.transformation.region !== 'us') {\r\n throw transformationConfigurationError('`region` is required and must be one of the following: eu, us');\r\n }\r\n const appId = options.appId;\r\n const auth = clientCommon.createAuth(clientCommon.AuthMode.WithinHeaders, appId, options.apiKey);\r\n const transporter$1 = transporter.createTransporter({\r\n hosts: [\r\n {\r\n url: `data.${options.transformation.region}.algolia.com`,\r\n accept: transporter.CallEnum.ReadWrite,\r\n protocol: 'https',\r\n },\r\n ],\r\n ...options,\r\n headers: {\r\n ...auth.headers(),\r\n ...{ 'content-type': 'text/plain' },\r\n ...options.headers,\r\n },\r\n queryParameters: {\r\n ...auth.queryParameters(),\r\n ...options.queryParameters,\r\n },\r\n });\r\n return {\r\n transporter: transporter$1,\r\n appId,\r\n addAlgoliaAgent(segment, version) {\r\n transporter$1.userAgent.add({ segment, version });\r\n transporter$1.userAgent.add({ segment: 'Ingestion', version });\r\n transporter$1.userAgent.add({ segment: 'Ingestion via Algoliasearch' });\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 push({ indexName, pushTaskPayload, watch }, requestOptions) {\r\n if (!indexName) {\r\n throw transformationConfigurationError('Parameter `indexName` is required when calling `push`.');\r\n }\r\n if (!pushTaskPayload) {\r\n throw transformationConfigurationError('Parameter `pushTaskPayload` is required when calling `push`.');\r\n }\r\n if (!pushTaskPayload.action) {\r\n throw transformationConfigurationError('Parameter `pushTaskPayload.action` is required when calling `push`.');\r\n }\r\n if (!pushTaskPayload.records) {\r\n throw transformationConfigurationError('Parameter `pushTaskPayload.records` is required when calling `push`.');\r\n }\r\n const opts = requestOptions || { queryParameters: {} };\r\n return transporter$1.write({\r\n method: requesterCommon.MethodEnum.Post,\r\n path: clientCommon.encode('1/push/%s', indexName),\r\n data: pushTaskPayload,\r\n }, {\r\n ...opts,\r\n queryParameters: {\r\n ...opts.queryParameters,\r\n watch: watch !== undefined,\r\n },\r\n });\r\n },\r\n };\r\n}\r\nfunction saveObjectsWithTransformation(indexName, client) {\r\n return (objects, requestOptions) => {\r\n if (!client) {\r\n throw transformationConfigurationError('`options.transformation.region` must be provided at client instantiation before calling this method.');\r\n }\r\n const { autoGenerateObjectIDIfNotExist, watch, ...rest } = requestOptions || {};\r\n const action = autoGenerateObjectIDIfNotExist\r\n ? clientSearch.BatchActionEnum.AddObject\r\n : clientSearch.BatchActionEnum.UpdateObject;\r\n /* eslint functional/immutable-data: \"off\" */\r\n return client.push({\r\n indexName,\r\n pushTaskPayload: { action, records: objects },\r\n watch,\r\n }, rest);\r\n };\r\n}\r\nfunction partialUpdateObjectsWithTransformation(indexName, client) {\r\n return (objects, requestOptions) => {\r\n if (!client) {\r\n throw transformationConfigurationError('`options.transformation.region` must be provided at client instantiation before calling this method.');\r\n }\r\n const { createIfNotExists, watch, ...rest } = requestOptions || {};\r\n const action = createIfNotExists\r\n ? clientSearch.BatchActionEnum.PartialUpdateObject\r\n : clientSearch.BatchActionEnum.PartialUpdateObjectNoCreate;\r\n /* eslint functional/immutable-data: \"off\" */\r\n return client.push({\r\n indexName,\r\n pushTaskPayload: { action, records: objects },\r\n watch,\r\n }, rest);\r\n };\r\n}\r\nfunction transformationConfigurationError(message) {\r\n return {\r\n name: 'TransformationConfigurationError',\r\n message,\r\n };\r\n}\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 /* eslint functional/no-let: \"off\" */\r\n let ingestionTransporter;\r\n if (options && options.transformation) {\r\n if (!options.transformation.region) {\r\n throw transformationConfigurationError('`region` must be provided when leveraging the transformation pipeline');\r\n }\r\n ingestionTransporter = createIngestionClient({ ...options, ...commonOptions });\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 {\r\n ...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 saveObjectsWithTransformation: saveObjectsWithTransformation(indexName, ingestionTransporter),\r\n partialUpdateObjectsWithTransformation: partialUpdateObjectsWithTransformation(indexName, ingestionTransporter),\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'\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 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\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 const width = ref.current.clientWidth\r\n setWidth(width)\r\n setHeight(width / 2)\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\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: #f6f8fa;\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: 1fr;\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 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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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: #ecebf3;\r\n}\r\n\r\n.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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","{\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}\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}\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}","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 // @ts-expect-error - React type conflict with @mdx-js/react\r\n \r\n {searchClient.instantSearchConfigs && (\r\n // @ts-expect-error - React type conflict with @mdx-js/react\r\n \r\n )}\r\n {searchClient.useLanguageFilter && (\r\n // @ts-expect-error - React type conflict with @mdx-js/react\r\n \r\n )}\r\n {!searchClient.useLanguageFilter && (\r\n // @ts-expect-error - React type conflict with @mdx-js/react\r\n \r\n )}\r\n setfocusOut({ modaltoggle: true })} ref={resultsBox}>\r\n {/* @ts-expect-error - React type conflict with @mdx-js/react */}\r\n \r\n {focusOut.modaltoggle && (\r\n // @ts-expect-error - React type conflict with @mdx-js/react\r\n \r\n )}\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}\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}\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 whiteSpace: 'pre',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\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\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\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport let searchClient: any = {}\r\nexport let searchIndex = ''\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 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\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\nconst createHybridClient = (config: HybridSearchConfig) => {\r\n const {\r\n apiEndpoint,\r\n defaultLimit = 10,\r\n useLanguageFilter = true,\r\n upstreamFetchSize = HYBRID_UPSTREAM_MAX_LIMIT,\r\n cacheTtlMs = 60_000,\r\n } = config\r\n\r\n const effectiveUpstreamLimit = clampUpstreamLimit(upstreamFetchSize)\r\n const cache: HybridCacheEntry[] = []\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 // 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 ): 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 || defaultLimit\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 or doctype\r\n // filtering, so we always fetch a large slice once per (query, locale)\r\n // pair and paginate / doctype-filter client-side.\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 cachedHits = getCached(cacheKey)\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let allHits: any[]\r\n if (cachedHits) {\r\n allHits = cachedHits\r\n } else {\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 allHits = rawResults.map(transformHybridToAlgolia)\r\n setCached(cacheKey, allHits)\r\n }\r\n\r\n // Doctype filter is applied client-side because the upstream API\r\n // does not understand it. Facet counts are computed on `allHits`\r\n // (i.e. ignoring the doctype filter) so that the tabs keep showing\r\n // counts for the other doctypes.\r\n const filteredHits = filterHitsByDoctype(allHits, doctypes)\r\n const nbHits = filteredHits.length\r\n const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage))\r\n const start = page * hitsPerPage\r\n const pageHits = filteredHits.slice(start, start + hitsPerPage)\r\n\r\n const facets = extractFacetsFromHits(allHits)\r\n\r\n return {\r\n results: [\r\n {\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: facets.facets,\r\n facets_stats: {},\r\n exhaustiveFacetsCount: true,\r\n queryID: generateQueryID(),\r\n },\r\n ],\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: defaultLimit,\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) =>\r\n wanted.has(String(h.doctype || '').toLowerCase())\r\n )\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 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: result.snippet || result.content || '',\r\n hierarchy,\r\n language: result.metadata?.locale || 'en',\r\n type: 'content',\r\n _highlightResult: {\r\n content: {\r\n value: result.snippet || result.content || '',\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 || '',\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\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\r\n // docs///...\r\n if (parts[0] === 'docs' && parts.length > 2) {\r\n return `/docs/${stripExt(parts.slice(2).join('/'))}`\r\n }\r\n\r\n // //... (announcements, faq, known-issues, troubleshooting, ...)\r\n if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1])) {\r\n return `/${parts[0]}/${stripExt(parts.slice(2).join('/'))}`\r\n }\r\n\r\n return '/' + stripExt(parts.join('/'))\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction extractFacetsFromHits(\r\n hits: any[]\r\n): { facets: Record> } {\r\n const facets: Record> = {\r\n doctype: {},\r\n language: {},\r\n }\r\n\r\n hits.forEach((hit) => {\r\n const doctype = hit.doctype || 'Other'\r\n facets.doctype[doctype] = (facets.doctype[doctype] || 0) + 1\r\n\r\n const language = hit.language || 'en'\r\n facets.language[language] = (facets.language[language] || 0) + 1\r\n })\r\n\r\n return { facets }\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(config: SearchBackendConfig | AlgoliaConfig) {\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\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 return !dataElement ? (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results' }\r\n \r\n \r\n {ocurrenceCount['']}\r\n \r\n \r\n ) : (\r\n updateFilter(dataElement.id)}\r\n >\r\n \r\n \r\n \r\n {dataElement.title}\r\n \r\n \r\n \r\n {ocurrenceCount[dataElement.id] || 0}\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: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\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: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n fontSize: '12px',\r\n lineHeight: '16px',\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\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, 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 { searchClient, searchIndex } from 'utils/config/search-config'\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 [prevFilter, setPrevFilter] = useState('')\r\n const [searchState, setSearchState] = useState({})\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const page = filters !== prevFilter ? 1 : currentState.page || 1\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 ocurrenceCount[filterSelectedSection] === undefined\r\n ? ''\r\n : 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, FC } 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 facets = results?.facets as\r\n | Array<{\r\n name: string\r\n data: Record\r\n exhaustive?: boolean\r\n }>\r\n | undefined\r\n\r\n const doctypeFacet = facets?.find((facet) => facet.name === 'doctype')\r\n const nbHits = results?.nbHits ?? 0\r\n\r\n const formattedFacets: Record = {}\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\r\n formattedFacets[''] = nbHits\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)\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\nconst ConnectedInfiniteHits: FC = connectInfiniteHits(InfiniteHits) as FC\r\n\r\nexport default ConnectedInfiniteHits\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}\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\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 return (\r\n changeFilterSelectedSection(filter)}\r\n >\r\n \r\n {filter || messages[locale]['search_results.all'] || 'All results'}\r\n \r\n {ocurrenceCount[filter] || 0}\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) => SxStyleProp = (active) => ({\r\n pt: '8px',\r\n pb: '14px',\r\n px: '24px',\r\n cursor: '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})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '16.38px',\r\n whiteSpace: 'nowrap',\r\n color: `#${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","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 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 { 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 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AASa,QAAI,IAAE,eAAa,OAAO,UAAQ,OAAO;AAAzC,QAA6C,IAAE,IAAE,OAAO,IAAI,eAAe,IAAE;AAA7E,QAAmF,IAAE,IAAE,OAAO,IAAI,cAAc,IAAE;AAAlH,QAAwH,IAAE,IAAE,OAAO,IAAI,gBAAgB,IAAE;AAAzJ,QAA+J,IAAE,IAAE,OAAO,IAAI,mBAAmB,IAAE;AAAnM,QAAyM,IAAE,IAAE,OAAO,IAAI,gBAAgB,IAAE;AAA1O,QAAgP,IAAE,IAAE,OAAO,IAAI,gBAAgB,IAAE;AAAjR,QAAuR,IAAE,IAAE,OAAO,IAAI,eAAe,IAAE;AAAvT,QAA6T,IAAE,IAAE,OAAO,IAAI,kBAAkB,IAAE;AAAhW,QAAsW,IAAE,IAAE,OAAO,IAAI,uBAAuB,IAAE;AAA9Y,QAAoZ,IAAE,IAAE,OAAO,IAAI,mBAAmB,IAAE;AAAxb,QAA8b,IAAE,IAAE,OAAO,IAAI,gBAAgB,IAAE;AAA/d,QAAqe,IAAE,IACpf,OAAO,IAAI,qBAAqB,IAAE;AADrB,QAC2B,IAAE,IAAE,OAAO,IAAI,YAAY,IAAE;AADxD,QAC8D,IAAE,IAAE,OAAO,IAAI,YAAY,IAAE;AAD3F,QACiG,IAAE,IAAE,OAAO,IAAI,aAAa,IAAE;AAD/H,QACqI,IAAE,IAAE,OAAO,IAAI,mBAAmB,IAAE;AADzK,QAC+K,IAAE,IAAE,OAAO,IAAI,iBAAiB,IAAE;AADjN,QACuN,IAAE,IAAE,OAAO,IAAI,aAAa,IAAE;AAClQ,aAAS,EAAE,GAAE;AAAC,UAAG,aAAW,OAAO,KAAG,SAAO,GAAE;AAAC,YAAI,IAAE,EAAE;AAAS,gBAAO,GAAE;AAAA,UAAC,KAAK;AAAE,oBAAO,IAAE,EAAE,MAAK,GAAE;AAAA,cAAC,KAAK;AAAA,cAAE,KAAK;AAAA,cAAE,KAAK;AAAA,cAAE,KAAK;AAAA,cAAE,KAAK;AAAA,cAAE,KAAK;AAAE,uBAAO;AAAA,cAAE;AAAQ,wBAAO,IAAE,KAAG,EAAE,UAAS,GAAE;AAAA,kBAAC,KAAK;AAAA,kBAAE,KAAK;AAAA,kBAAE,KAAK;AAAA,kBAAE,KAAK;AAAA,kBAAE,KAAK;AAAE,2BAAO;AAAA,kBAAE;AAAQ,2BAAO;AAAA,gBAAC;AAAA,YAAC;AAAA,UAAC,KAAK;AAAE,mBAAO;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC;AAAC,aAAS,EAAE,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAAC,YAAQ,YAAU;AAAE,YAAQ,iBAAe;AAAE,YAAQ,kBAAgB;AAAE,YAAQ,kBAAgB;AAAE,YAAQ,UAAQ;AAAE,YAAQ,aAAW;AAAE,YAAQ,WAAS;AAAE,YAAQ,OAAK;AAAE,YAAQ,OAAK;AAAE,YAAQ,SAAO;AAChf,YAAQ,WAAS;AAAE,YAAQ,aAAW;AAAE,YAAQ,WAAS;AAAE,YAAQ,cAAY,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,KAAG,EAAE,CAAC,MAAI;AAAA,IAAC;AAAE,YAAQ,mBAAiB;AAAE,YAAQ,oBAAkB,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAAE,YAAQ,oBAAkB,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAAE,YAAQ,YAAU,SAAS,GAAE;AAAC,aAAM,aAAW,OAAO,KAAG,SAAO,KAAG,EAAE,aAAW;AAAA,IAAC;AAAE,YAAQ,eAAa,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAAE,YAAQ,aAAW,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAAE,YAAQ,SAAO,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAC1d,YAAQ,SAAO,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAAE,YAAQ,WAAS,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAAE,YAAQ,aAAW,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAAE,YAAQ,eAAa,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAAE,YAAQ,aAAW,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAC1O,YAAQ,qBAAmB,SAAS,GAAE;AAAC,aAAM,aAAW,OAAO,KAAG,eAAa,OAAO,KAAG,MAAI,KAAG,MAAI,KAAG,MAAI,KAAG,MAAI,KAAG,MAAI,KAAG,MAAI,KAAG,aAAW,OAAO,KAAG,SAAO,MAAI,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW;AAAA,IAAE;AAAE,YAAQ,SAAO;AAAA;AAAA;;;ACdnU;AAAA;AAAA;AAaA,QAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,OAAC,WAAW;AACd;AAIA,YAAI,YAAY,OAAO,WAAW,cAAc,OAAO;AACvD,YAAI,qBAAqB,YAAY,OAAO,IAAI,eAAe,IAAI;AACnE,YAAI,oBAAoB,YAAY,OAAO,IAAI,cAAc,IAAI;AACjE,YAAI,sBAAsB,YAAY,OAAO,IAAI,gBAAgB,IAAI;AACrE,YAAI,yBAAyB,YAAY,OAAO,IAAI,mBAAmB,IAAI;AAC3E,YAAI,sBAAsB,YAAY,OAAO,IAAI,gBAAgB,IAAI;AACrE,YAAI,sBAAsB,YAAY,OAAO,IAAI,gBAAgB,IAAI;AACrE,YAAI,qBAAqB,YAAY,OAAO,IAAI,eAAe,IAAI;AAGnE,YAAI,wBAAwB,YAAY,OAAO,IAAI,kBAAkB,IAAI;AACzE,YAAI,6BAA6B,YAAY,OAAO,IAAI,uBAAuB,IAAI;AACnF,YAAI,yBAAyB,YAAY,OAAO,IAAI,mBAAmB,IAAI;AAC3E,YAAI,sBAAsB,YAAY,OAAO,IAAI,gBAAgB,IAAI;AACrE,YAAI,2BAA2B,YAAY,OAAO,IAAI,qBAAqB,IAAI;AAC/E,YAAI,kBAAkB,YAAY,OAAO,IAAI,YAAY,IAAI;AAC7D,YAAI,kBAAkB,YAAY,OAAO,IAAI,YAAY,IAAI;AAC7D,YAAI,mBAAmB,YAAY,OAAO,IAAI,aAAa,IAAI;AAC/D,YAAI,yBAAyB,YAAY,OAAO,IAAI,mBAAmB,IAAI;AAC3E,YAAI,uBAAuB,YAAY,OAAO,IAAI,iBAAiB,IAAI;AACvE,YAAI,mBAAmB,YAAY,OAAO,IAAI,aAAa,IAAI;AAE/D,iBAAS,mBAAmB,MAAM;AAChC,iBAAO,OAAO,SAAS,YAAY,OAAO,SAAS;AAAA,UACnD,SAAS,uBAAuB,SAAS,8BAA8B,SAAS,uBAAuB,SAAS,0BAA0B,SAAS,uBAAuB,SAAS,4BAA4B,OAAO,SAAS,YAAY,SAAS,SAAS,KAAK,aAAa,mBAAmB,KAAK,aAAa,mBAAmB,KAAK,aAAa,uBAAuB,KAAK,aAAa,sBAAsB,KAAK,aAAa,0BAA0B,KAAK,aAAa,0BAA0B,KAAK,aAAa,wBAAwB,KAAK,aAAa,oBAAoB,KAAK,aAAa;AAAA,QACplB;AAEA,iBAAS,OAAO,QAAQ;AACtB,cAAI,OAAO,WAAW,YAAY,WAAW,MAAM;AACjD,gBAAI,WAAW,OAAO;AAEtB,oBAAQ,UAAU;AAAA,cAChB,KAAK;AACH,oBAAI,OAAO,OAAO;AAElB,wBAAQ,MAAM;AAAA,kBACZ,KAAK;AAAA,kBACL,KAAK;AAAA,kBACL,KAAK;AAAA,kBACL,KAAK;AAAA,kBACL,KAAK;AAAA,kBACL,KAAK;AACH,2BAAO;AAAA,kBAET;AACE,wBAAI,eAAe,QAAQ,KAAK;AAEhC,4BAAQ,cAAc;AAAA,sBACpB,KAAK;AAAA,sBACL,KAAK;AAAA,sBACL,KAAK;AAAA,sBACL,KAAK;AAAA,sBACL,KAAK;AACH,+BAAO;AAAA,sBAET;AACE,+BAAO;AAAA,oBACX;AAAA,gBAEJ;AAAA,cAEF,KAAK;AACH,uBAAO;AAAA,YACX;AAAA,UACF;AAEA,iBAAO;AAAA,QACT;AAEA,YAAI,YAAY;AAChB,YAAI,iBAAiB;AACrB,YAAI,kBAAkB;AACtB,YAAI,kBAAkB;AACtB,YAAI,UAAU;AACd,YAAI,aAAa;AACjB,YAAIA,YAAW;AACf,YAAI,OAAO;AACX,YAAI,OAAO;AACX,YAAI,SAAS;AACb,YAAI,WAAW;AACf,YAAI,aAAa;AACjB,YAAI,WAAW;AACf,YAAI,sCAAsC;AAE1C,iBAAS,YAAY,QAAQ;AAC3B;AACE,gBAAI,CAAC,qCAAqC;AACxC,oDAAsC;AAEtC,sBAAQ,MAAM,EAAE,+KAAyL;AAAA,YAC3M;AAAA,UACF;AAEA,iBAAO,iBAAiB,MAAM,KAAK,OAAO,MAAM,MAAM;AAAA,QACxD;AACA,iBAAS,iBAAiB,QAAQ;AAChC,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,kBAAkB,QAAQ;AACjC,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,kBAAkB,QAAQ;AACjC,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,UAAU,QAAQ;AACzB,iBAAO,OAAO,WAAW,YAAY,WAAW,QAAQ,OAAO,aAAa;AAAA,QAC9E;AACA,iBAAS,aAAa,QAAQ;AAC5B,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,WAAW,QAAQ;AAC1B,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,OAAO,QAAQ;AACtB,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,OAAO,QAAQ;AACtB,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,SAAS,QAAQ;AACxB,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,WAAW,QAAQ;AAC1B,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,aAAa,QAAQ;AAC5B,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,WAAW,QAAQ;AAC1B,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AAEA,gBAAQ,YAAY;AACpB,gBAAQ,iBAAiB;AACzB,gBAAQ,kBAAkB;AAC1B,gBAAQ,kBAAkB;AAC1B,gBAAQ,UAAU;AAClB,gBAAQ,aAAa;AACrB,gBAAQ,WAAWA;AACnB,gBAAQ,OAAO;AACf,gBAAQ,OAAO;AACf,gBAAQ,SAAS;AACjB,gBAAQ,WAAW;AACnB,gBAAQ,aAAa;AACrB,gBAAQ,WAAW;AACnB,gBAAQ,cAAc;AACtB,gBAAQ,mBAAmB;AAC3B,gBAAQ,oBAAoB;AAC5B,gBAAQ,oBAAoB;AAC5B,gBAAQ,YAAY;AACpB,gBAAQ,eAAe;AACvB,gBAAQ,aAAa;AACrB,gBAAQ,SAAS;AACjB,gBAAQ,SAAS;AACjB,gBAAQ,WAAW;AACnB,gBAAQ,aAAa;AACrB,gBAAQ,eAAe;AACvB,gBAAQ,aAAa;AACrB,gBAAQ,qBAAqB;AAC7B,gBAAQ,SAAS;AAAA,MACf,GAAG;AAAA,IACL;AAAA;AAAA;;;ACpLA;AAAA;AAAA;AAEA,QAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,aAAO,UAAU;AAAA,IACnB,OAAO;AACL,aAAO,UAAU;AAAA,IACnB;AAAA;AAAA;;;ACNA;AAAA;AAAA;AAQA,QAAI,wBAAwB,OAAO;AACnC,QAAI,iBAAiB,OAAO,UAAU;AACtC,QAAI,mBAAmB,OAAO,UAAU;AAExC,aAAS,SAAS,KAAK;AACtB,UAAI,QAAQ,QAAQ,QAAQ,QAAW;AACtC,cAAM,IAAI,UAAU,uDAAuD;AAAA,MAC5E;AAEA,aAAO,OAAO,GAAG;AAAA,IAClB;AAEA,aAAS,kBAAkB;AAC1B,UAAI;AACH,YAAI,CAAC,OAAO,QAAQ;AACnB,iBAAO;AAAA,QACR;AAKA,YAAI,QAAQ,IAAI,OAAO,KAAK;AAC5B,cAAM,CAAC,IAAI;AACX,YAAI,OAAO,oBAAoB,KAAK,EAAE,CAAC,MAAM,KAAK;AACjD,iBAAO;AAAA,QACR;AAGA,YAAI,QAAQ,CAAC;AACb,iBAAS,IAAI,GAAG,IAAI,IAAI,KAAK;AAC5B,gBAAM,MAAM,OAAO,aAAa,CAAC,CAAC,IAAI;AAAA,QACvC;AACA,YAAI,SAAS,OAAO,oBAAoB,KAAK,EAAE,IAAI,SAAU,GAAG;AAC/D,iBAAO,MAAM,CAAC;AAAA,QACf,CAAC;AACD,YAAI,OAAO,KAAK,EAAE,MAAM,cAAc;AACrC,iBAAO;AAAA,QACR;AAGA,YAAI,QAAQ,CAAC;AACb,+BAAuB,MAAM,EAAE,EAAE,QAAQ,SAAU,QAAQ;AAC1D,gBAAM,MAAM,IAAI;AAAA,QACjB,CAAC;AACD,YAAI,OAAO,KAAK,OAAO,OAAO,CAAC,GAAG,KAAK,CAAC,EAAE,KAAK,EAAE,MAC/C,wBAAwB;AACzB,iBAAO;AAAA,QACR;AAEA,eAAO;AAAA,MACR,SAAS,KAAK;AAEb,eAAO;AAAA,MACR;AAAA,IACD;AAEA,WAAO,UAAU,gBAAgB,IAAI,OAAO,SAAS,SAAU,QAAQ,QAAQ;AAC9E,UAAI;AACJ,UAAI,KAAK,SAAS,MAAM;AACxB,UAAI;AAEJ,eAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAC1C,eAAO,OAAO,UAAU,CAAC,CAAC;AAE1B,iBAAS,OAAO,MAAM;AACrB,cAAI,eAAe,KAAK,MAAM,GAAG,GAAG;AACnC,eAAG,GAAG,IAAI,KAAK,GAAG;AAAA,UACnB;AAAA,QACD;AAEA,YAAI,uBAAuB;AAC1B,oBAAU,sBAAsB,IAAI;AACpC,mBAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACxC,gBAAI,iBAAiB,KAAK,MAAM,QAAQ,CAAC,CAAC,GAAG;AAC5C,iBAAG,QAAQ,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;AAAA,YACjC;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAEA,aAAO;AAAA,IACR;AAAA;AAAA;;;ACzFA;AAAA;AAAA;AASA,QAAI,uBAAuB;AAE3B,WAAO,UAAU;AAAA;AAAA;;;ACXjB;AAAA;AAAA;AAAA,WAAO,UAAU,SAAS,KAAK,KAAK,OAAO,UAAU,cAAc;AAAA;AAAA;;;ACAnE;AAAA;AAAA;AASA,QAAI,eAAe,WAAW;AAAA,IAAC;AAE/B,QAAI,QAAQ,IAAI,aAAa,cAAc;AACrC,6BAAuB;AACvB,2BAAqB,CAAC;AACtB,YAAM;AAEV,qBAAe,SAASC,OAAM;AAC5B,YAAI,UAAU,cAAcA;AAC5B,YAAI,OAAO,YAAY,aAAa;AAClC,kBAAQ,MAAM,OAAO;AAAA,QACvB;AACA,YAAI;AAIF,gBAAM,IAAI,MAAM,OAAO;AAAA,QACzB,SAAS,GAAG;AAAA,QAAO;AAAA,MACrB;AAAA,IACF;AAhBM;AACA;AACA;AA2BN,aAAS,eAAe,WAAW,QAAQ,UAAU,eAAe,UAAU;AAC5E,UAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,iBAAS,gBAAgB,WAAW;AAClC,cAAI,IAAI,WAAW,YAAY,GAAG;AAChC,gBAAI;AAIJ,gBAAI;AAGF,kBAAI,OAAO,UAAU,YAAY,MAAM,YAAY;AACjD,oBAAI,MAAM;AAAA,mBACP,iBAAiB,iBAAiB,OAAO,WAAW,YAAY,eAAe,+FACC,OAAO,UAAU,YAAY,IAAI;AAAA,gBAEpH;AACA,oBAAI,OAAO;AACX,sBAAM;AAAA,cACR;AACA,sBAAQ,UAAU,YAAY,EAAE,QAAQ,cAAc,eAAe,UAAU,MAAM,oBAAoB;AAAA,YAC3G,SAAS,IAAI;AACX,sBAAQ;AAAA,YACV;AACA,gBAAI,SAAS,EAAE,iBAAiB,QAAQ;AACtC;AAAA,iBACG,iBAAiB,iBAAiB,6BACnC,WAAW,OAAO,eAAe,6FAC6B,OAAO,QAAQ;AAAA,cAI/E;AAAA,YACF;AACA,gBAAI,iBAAiB,SAAS,EAAE,MAAM,WAAW,qBAAqB;AAGpE,iCAAmB,MAAM,OAAO,IAAI;AAEpC,kBAAI,QAAQ,WAAW,SAAS,IAAI;AAEpC;AAAA,gBACE,YAAY,WAAW,YAAY,MAAM,WAAW,SAAS,OAAO,QAAQ;AAAA,cAC9E;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAOA,mBAAe,oBAAoB,WAAW;AAC5C,UAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,6BAAqB,CAAC;AAAA,MACxB;AAAA,IACF;AAEA,WAAO,UAAU;AAAA;AAAA;;;ACtGjB;AAAA;AAAA;AASA,QAAI,UAAU;AACd,QAAI,SAAS;AAEb,QAAI,uBAAuB;AAC3B,QAAI,MAAM;AACV,QAAI,iBAAiB;AAErB,QAAI,eAAe,WAAW;AAAA,IAAC;AAE/B,QAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,qBAAe,SAASC,OAAM;AAC5B,YAAI,UAAU,cAAcA;AAC5B,YAAI,OAAO,YAAY,aAAa;AAClC,kBAAQ,MAAM,OAAO;AAAA,QACvB;AACA,YAAI;AAIF,gBAAM,IAAI,MAAM,OAAO;AAAA,QACzB,SAAS,GAAG;AAAA,QAAC;AAAA,MACf;AAAA,IACF;AAEA,aAAS,+BAA+B;AACtC,aAAO;AAAA,IACT;AAEA,WAAO,UAAU,SAAS,gBAAgB,qBAAqB;AAE7D,UAAI,kBAAkB,OAAO,WAAW,cAAc,OAAO;AAC7D,UAAI,uBAAuB;AAgB3B,eAAS,cAAc,eAAe;AACpC,YAAI,aAAa,kBAAkB,mBAAmB,cAAc,eAAe,KAAK,cAAc,oBAAoB;AAC1H,YAAI,OAAO,eAAe,YAAY;AACpC,iBAAO;AAAA,QACT;AAAA,MACF;AAiDA,UAAI,YAAY;AAIhB,UAAI,iBAAiB;AAAA,QACnB,OAAO,2BAA2B,OAAO;AAAA,QACzC,QAAQ,2BAA2B,QAAQ;AAAA,QAC3C,MAAM,2BAA2B,SAAS;AAAA,QAC1C,MAAM,2BAA2B,UAAU;AAAA,QAC3C,QAAQ,2BAA2B,QAAQ;AAAA,QAC3C,QAAQ,2BAA2B,QAAQ;AAAA,QAC3C,QAAQ,2BAA2B,QAAQ;AAAA,QAC3C,QAAQ,2BAA2B,QAAQ;AAAA,QAE3C,KAAK,qBAAqB;AAAA,QAC1B,SAAS;AAAA,QACT,SAAS,yBAAyB;AAAA,QAClC,aAAa,6BAA6B;AAAA,QAC1C,YAAY;AAAA,QACZ,MAAM,kBAAkB;AAAA,QACxB,UAAU;AAAA,QACV,OAAO;AAAA,QACP,WAAW;AAAA,QACX,OAAO;AAAA,QACP,OAAO;AAAA,MACT;AAOA,eAAS,GAAG,GAAG,GAAG;AAEhB,YAAI,MAAM,GAAG;AAGX,iBAAO,MAAM,KAAK,IAAI,MAAM,IAAI;AAAA,QAClC,OAAO;AAEL,iBAAO,MAAM,KAAK,MAAM;AAAA,QAC1B;AAAA,MACF;AAUA,eAAS,cAAc,SAAS,MAAM;AACpC,aAAK,UAAU;AACf,aAAK,OAAO,QAAQ,OAAO,SAAS,WAAW,OAAM,CAAC;AACtD,aAAK,QAAQ;AAAA,MACf;AAEA,oBAAc,YAAY,MAAM;AAEhC,eAAS,2BAA2B,UAAU;AAC5C,YAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,cAAI,0BAA0B,CAAC;AAC/B,cAAI,6BAA6B;AAAA,QACnC;AACA,iBAAS,UAAU,YAAY,OAAO,UAAU,eAAe,UAAU,cAAc,QAAQ;AAC7F,0BAAgB,iBAAiB;AACjC,yBAAe,gBAAgB;AAE/B,cAAI,WAAW,sBAAsB;AACnC,gBAAI,qBAAqB;AAEvB,kBAAI,MAAM,IAAI;AAAA,gBACZ;AAAA,cAGF;AACA,kBAAI,OAAO;AACX,oBAAM;AAAA,YACR,WAAW,QAAQ,IAAI,aAAa,gBAAgB,OAAO,YAAY,aAAa;AAElF,kBAAI,WAAW,gBAAgB,MAAM;AACrC,kBACE,CAAC,wBAAwB,QAAQ;AAAA,cAEjC,6BAA6B,GAC7B;AACA;AAAA,kBACE,6EACuB,eAAe,gBAAgB,gBAAgB;AAAA,gBAIxE;AACA,wCAAwB,QAAQ,IAAI;AACpC;AAAA,cACF;AAAA,YACF;AAAA,UACF;AACA,cAAI,MAAM,QAAQ,KAAK,MAAM;AAC3B,gBAAI,YAAY;AACd,kBAAI,MAAM,QAAQ,MAAM,MAAM;AAC5B,uBAAO,IAAI,cAAc,SAAS,WAAW,OAAO,eAAe,8BAA8B,SAAS,gBAAgB,8BAA8B;AAAA,cAC1J;AACA,qBAAO,IAAI,cAAc,SAAS,WAAW,OAAO,eAAe,iCAAiC,MAAM,gBAAgB,mCAAmC;AAAA,YAC/J;AACA,mBAAO;AAAA,UACT,OAAO;AACL,mBAAO,SAAS,OAAO,UAAU,eAAe,UAAU,YAAY;AAAA,UACxE;AAAA,QACF;AAEA,YAAI,mBAAmB,UAAU,KAAK,MAAM,KAAK;AACjD,yBAAiB,aAAa,UAAU,KAAK,MAAM,IAAI;AAEvD,eAAO;AAAA,MACT;AAEA,eAAS,2BAA2B,cAAc;AAChD,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc,QAAQ;AAChF,cAAI,YAAY,MAAM,QAAQ;AAC9B,cAAI,WAAW,YAAY,SAAS;AACpC,cAAI,aAAa,cAAc;AAI7B,gBAAI,cAAc,eAAe,SAAS;AAE1C,mBAAO,IAAI;AAAA,cACT,aAAa,WAAW,OAAO,eAAe,gBAAgB,MAAM,cAAc,oBAAoB,gBAAgB,mBAAmB,MAAM,eAAe;AAAA,cAC9J,EAAC,aAA0B;AAAA,YAC7B;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,uBAAuB;AAC9B,eAAO,2BAA2B,4BAA4B;AAAA,MAChE;AAEA,eAAS,yBAAyB,aAAa;AAC7C,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,OAAO,gBAAgB,YAAY;AACrC,mBAAO,IAAI,cAAc,eAAe,eAAe,qBAAqB,gBAAgB,iDAAiD;AAAA,UAC/I;AACA,cAAI,YAAY,MAAM,QAAQ;AAC9B,cAAI,CAAC,MAAM,QAAQ,SAAS,GAAG;AAC7B,gBAAI,WAAW,YAAY,SAAS;AACpC,mBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,gBAAgB,MAAM,WAAW,oBAAoB,gBAAgB,wBAAwB;AAAA,UACtK;AACA,mBAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AACzC,gBAAI,QAAQ,YAAY,WAAW,GAAG,eAAe,UAAU,eAAe,MAAM,IAAI,KAAK,oBAAoB;AACjH,gBAAI,iBAAiB,OAAO;AAC1B,qBAAO;AAAA,YACT;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,2BAA2B;AAClC,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,YAAY,MAAM,QAAQ;AAC9B,cAAI,CAAC,eAAe,SAAS,GAAG;AAC9B,gBAAI,WAAW,YAAY,SAAS;AACpC,mBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,gBAAgB,MAAM,WAAW,oBAAoB,gBAAgB,qCAAqC;AAAA,UACnL;AACA,iBAAO;AAAA,QACT;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,+BAA+B;AACtC,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,YAAY,MAAM,QAAQ;AAC9B,cAAI,CAAC,QAAQ,mBAAmB,SAAS,GAAG;AAC1C,gBAAI,WAAW,YAAY,SAAS;AACpC,mBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,gBAAgB,MAAM,WAAW,oBAAoB,gBAAgB,0CAA0C;AAAA,UACxL;AACA,iBAAO;AAAA,QACT;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,0BAA0B,eAAe;AAChD,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,EAAE,MAAM,QAAQ,aAAa,gBAAgB;AAC/C,gBAAI,oBAAoB,cAAc,QAAQ;AAC9C,gBAAI,kBAAkB,aAAa,MAAM,QAAQ,CAAC;AAClD,mBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,gBAAgB,MAAM,kBAAkB,oBAAoB,gBAAgB,mBAAmB,kBAAkB,oBAAoB,KAAK;AAAA,UACnN;AACA,iBAAO;AAAA,QACT;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,sBAAsB,gBAAgB;AAC7C,YAAI,CAAC,MAAM,QAAQ,cAAc,GAAG;AAClC,cAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,gBAAI,UAAU,SAAS,GAAG;AACxB;AAAA,gBACE,iEAAiE,UAAU,SAAS;AAAA,cAEtF;AAAA,YACF,OAAO;AACL,2BAAa,wDAAwD;AAAA,YACvE;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AAEA,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,YAAY,MAAM,QAAQ;AAC9B,mBAAS,IAAI,GAAG,IAAI,eAAe,QAAQ,KAAK;AAC9C,gBAAI,GAAG,WAAW,eAAe,CAAC,CAAC,GAAG;AACpC,qBAAO;AAAA,YACT;AAAA,UACF;AAEA,cAAI,eAAe,KAAK,UAAU,gBAAgB,SAAS,SAAS,KAAK,OAAO;AAC9E,gBAAI,OAAO,eAAe,KAAK;AAC/B,gBAAI,SAAS,UAAU;AACrB,qBAAO,OAAO,KAAK;AAAA,YACrB;AACA,mBAAO;AAAA,UACT,CAAC;AACD,iBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,iBAAiB,OAAO,SAAS,IAAI,QAAQ,kBAAkB,gBAAgB,wBAAwB,eAAe,IAAI;AAAA,QACnM;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,0BAA0B,aAAa;AAC9C,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,OAAO,gBAAgB,YAAY;AACrC,mBAAO,IAAI,cAAc,eAAe,eAAe,qBAAqB,gBAAgB,kDAAkD;AAAA,UAChJ;AACA,cAAI,YAAY,MAAM,QAAQ;AAC9B,cAAI,WAAW,YAAY,SAAS;AACpC,cAAI,aAAa,UAAU;AACzB,mBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,gBAAgB,MAAM,WAAW,oBAAoB,gBAAgB,yBAAyB;AAAA,UACvK;AACA,mBAAS,OAAO,WAAW;AACzB,gBAAI,IAAI,WAAW,GAAG,GAAG;AACvB,kBAAI,QAAQ,YAAY,WAAW,KAAK,eAAe,UAAU,eAAe,MAAM,KAAK,oBAAoB;AAC/G,kBAAI,iBAAiB,OAAO;AAC1B,uBAAO;AAAA,cACT;AAAA,YACF;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,uBAAuB,qBAAqB;AACnD,YAAI,CAAC,MAAM,QAAQ,mBAAmB,GAAG;AACvC,kBAAQ,IAAI,aAAa,eAAe,aAAa,wEAAwE,IAAI;AACjI,iBAAO;AAAA,QACT;AAEA,iBAAS,IAAI,GAAG,IAAI,oBAAoB,QAAQ,KAAK;AACnD,cAAI,UAAU,oBAAoB,CAAC;AACnC,cAAI,OAAO,YAAY,YAAY;AACjC;AAAA,cACE,gGACc,yBAAyB,OAAO,IAAI,eAAe,IAAI;AAAA,YACvE;AACA,mBAAO;AAAA,UACT;AAAA,QACF;AAEA,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,gBAAgB,CAAC;AACrB,mBAASC,KAAI,GAAGA,KAAI,oBAAoB,QAAQA,MAAK;AACnD,gBAAIC,WAAU,oBAAoBD,EAAC;AACnC,gBAAI,gBAAgBC,SAAQ,OAAO,UAAU,eAAe,UAAU,cAAc,oBAAoB;AACxG,gBAAI,iBAAiB,MAAM;AACzB,qBAAO;AAAA,YACT;AACA,gBAAI,cAAc,QAAQ,IAAI,cAAc,MAAM,cAAc,GAAG;AACjE,4BAAc,KAAK,cAAc,KAAK,YAAY;AAAA,YACpD;AAAA,UACF;AACA,cAAI,uBAAwB,cAAc,SAAS,IAAK,6BAA6B,cAAc,KAAK,IAAI,IAAI,MAAK;AACrH,iBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,oBAAoB,MAAM,gBAAgB,MAAM,uBAAuB,IAAI;AAAA,QACpJ;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,oBAAoB;AAC3B,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,CAAC,OAAO,MAAM,QAAQ,CAAC,GAAG;AAC5B,mBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,oBAAoB,MAAM,gBAAgB,2BAA2B;AAAA,UAC9I;AACA,iBAAO;AAAA,QACT;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,sBAAsB,eAAe,UAAU,cAAc,KAAK,MAAM;AAC/E,eAAO,IAAI;AAAA,WACR,iBAAiB,iBAAiB,OAAO,WAAW,YAAY,eAAe,MAAM,MAAM,+FACX,OAAO;AAAA,QAC1F;AAAA,MACF;AAEA,eAAS,uBAAuB,YAAY;AAC1C,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,YAAY,MAAM,QAAQ;AAC9B,cAAI,WAAW,YAAY,SAAS;AACpC,cAAI,aAAa,UAAU;AACzB,mBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,gBAAgB,WAAW,QAAQ,kBAAkB,gBAAgB,wBAAwB;AAAA,UACtK;AACA,mBAAS,OAAO,YAAY;AAC1B,gBAAI,UAAU,WAAW,GAAG;AAC5B,gBAAI,OAAO,YAAY,YAAY;AACjC,qBAAO,sBAAsB,eAAe,UAAU,cAAc,KAAK,eAAe,OAAO,CAAC;AAAA,YAClG;AACA,gBAAI,QAAQ,QAAQ,WAAW,KAAK,eAAe,UAAU,eAAe,MAAM,KAAK,oBAAoB;AAC3G,gBAAI,OAAO;AACT,qBAAO;AAAA,YACT;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,6BAA6B,YAAY;AAChD,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,YAAY,MAAM,QAAQ;AAC9B,cAAI,WAAW,YAAY,SAAS;AACpC,cAAI,aAAa,UAAU;AACzB,mBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,gBAAgB,WAAW,QAAQ,kBAAkB,gBAAgB,wBAAwB;AAAA,UACtK;AAEA,cAAI,UAAU,OAAO,CAAC,GAAG,MAAM,QAAQ,GAAG,UAAU;AACpD,mBAAS,OAAO,SAAS;AACvB,gBAAI,UAAU,WAAW,GAAG;AAC5B,gBAAI,IAAI,YAAY,GAAG,KAAK,OAAO,YAAY,YAAY;AACzD,qBAAO,sBAAsB,eAAe,UAAU,cAAc,KAAK,eAAe,OAAO,CAAC;AAAA,YAClG;AACA,gBAAI,CAAC,SAAS;AACZ,qBAAO,IAAI;AAAA,gBACT,aAAa,WAAW,OAAO,eAAe,YAAY,MAAM,oBAAoB,gBAAgB,qBACjF,KAAK,UAAU,MAAM,QAAQ,GAAG,MAAM,IAAI,IAC7D,mBAAmB,KAAK,UAAU,OAAO,KAAK,UAAU,GAAG,MAAM,IAAI;AAAA,cACvE;AAAA,YACF;AACA,gBAAI,QAAQ,QAAQ,WAAW,KAAK,eAAe,UAAU,eAAe,MAAM,KAAK,oBAAoB;AAC3G,gBAAI,OAAO;AACT,qBAAO;AAAA,YACT;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AAEA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,OAAO,WAAW;AACzB,gBAAQ,OAAO,WAAW;AAAA,UACxB,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AACH,mBAAO;AAAA,UACT,KAAK;AACH,mBAAO,CAAC;AAAA,UACV,KAAK;AACH,gBAAI,MAAM,QAAQ,SAAS,GAAG;AAC5B,qBAAO,UAAU,MAAM,MAAM;AAAA,YAC/B;AACA,gBAAI,cAAc,QAAQ,eAAe,SAAS,GAAG;AACnD,qBAAO;AAAA,YACT;AAEA,gBAAI,aAAa,cAAc,SAAS;AACxC,gBAAI,YAAY;AACd,kBAAI,WAAW,WAAW,KAAK,SAAS;AACxC,kBAAI;AACJ,kBAAI,eAAe,UAAU,SAAS;AACpC,uBAAO,EAAE,OAAO,SAAS,KAAK,GAAG,MAAM;AACrC,sBAAI,CAAC,OAAO,KAAK,KAAK,GAAG;AACvB,2BAAO;AAAA,kBACT;AAAA,gBACF;AAAA,cACF,OAAO;AAEL,uBAAO,EAAE,OAAO,SAAS,KAAK,GAAG,MAAM;AACrC,sBAAI,QAAQ,KAAK;AACjB,sBAAI,OAAO;AACT,wBAAI,CAAC,OAAO,MAAM,CAAC,CAAC,GAAG;AACrB,6BAAO;AAAA,oBACT;AAAA,kBACF;AAAA,gBACF;AAAA,cACF;AAAA,YACF,OAAO;AACL,qBAAO;AAAA,YACT;AAEA,mBAAO;AAAA,UACT;AACE,mBAAO;AAAA,QACX;AAAA,MACF;AAEA,eAAS,SAAS,UAAU,WAAW;AAErC,YAAI,aAAa,UAAU;AACzB,iBAAO;AAAA,QACT;AAGA,YAAI,CAAC,WAAW;AACd,iBAAO;AAAA,QACT;AAGA,YAAI,UAAU,eAAe,MAAM,UAAU;AAC3C,iBAAO;AAAA,QACT;AAGA,YAAI,OAAO,WAAW,cAAc,qBAAqB,QAAQ;AAC/D,iBAAO;AAAA,QACT;AAEA,eAAO;AAAA,MACT;AAGA,eAAS,YAAY,WAAW;AAC9B,YAAI,WAAW,OAAO;AACtB,YAAI,MAAM,QAAQ,SAAS,GAAG;AAC5B,iBAAO;AAAA,QACT;AACA,YAAI,qBAAqB,QAAQ;AAI/B,iBAAO;AAAA,QACT;AACA,YAAI,SAAS,UAAU,SAAS,GAAG;AACjC,iBAAO;AAAA,QACT;AACA,eAAO;AAAA,MACT;AAIA,eAAS,eAAe,WAAW;AACjC,YAAI,OAAO,cAAc,eAAe,cAAc,MAAM;AAC1D,iBAAO,KAAK;AAAA,QACd;AACA,YAAI,WAAW,YAAY,SAAS;AACpC,YAAI,aAAa,UAAU;AACzB,cAAI,qBAAqB,MAAM;AAC7B,mBAAO;AAAA,UACT,WAAW,qBAAqB,QAAQ;AACtC,mBAAO;AAAA,UACT;AAAA,QACF;AACA,eAAO;AAAA,MACT;AAIA,eAAS,yBAAyB,OAAO;AACvC,YAAI,OAAO,eAAe,KAAK;AAC/B,gBAAQ,MAAM;AAAA,UACZ,KAAK;AAAA,UACL,KAAK;AACH,mBAAO,QAAQ;AAAA,UACjB,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AACH,mBAAO,OAAO;AAAA,UAChB;AACE,mBAAO;AAAA,QACX;AAAA,MACF;AAGA,eAAS,aAAa,WAAW;AAC/B,YAAI,CAAC,UAAU,eAAe,CAAC,UAAU,YAAY,MAAM;AACzD,iBAAO;AAAA,QACT;AACA,eAAO,UAAU,YAAY;AAAA,MAC/B;AAEA,qBAAe,iBAAiB;AAChC,qBAAe,oBAAoB,eAAe;AAClD,qBAAe,YAAY;AAE3B,aAAO;AAAA,IACT;AAAA;AAAA;;;ACjmBA;AAAA;AAAA;AASA,QAAI,uBAAuB;AAE3B,aAAS,gBAAgB;AAAA,IAAC;AAC1B,aAAS,yBAAyB;AAAA,IAAC;AACnC,2BAAuB,oBAAoB;AAE3C,WAAO,UAAU,WAAW;AAC1B,eAAS,KAAK,OAAO,UAAU,eAAe,UAAU,cAAc,QAAQ;AAC5E,YAAI,WAAW,sBAAsB;AAEnC;AAAA,QACF;AACA,YAAI,MAAM,IAAI;AAAA,UACZ;AAAA,QAGF;AACA,YAAI,OAAO;AACX,cAAM;AAAA,MACR;AAAC;AACD,WAAK,aAAa;AAClB,eAAS,UAAU;AACjB,eAAO;AAAA,MACT;AAAC;AAGD,UAAI,iBAAiB;AAAA,QACnB,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QAER,KAAK;AAAA,QACL,SAAS;AAAA,QACT,SAAS;AAAA,QACT,aAAa;AAAA,QACb,YAAY;AAAA,QACZ,MAAM;AAAA,QACN,UAAU;AAAA,QACV,OAAO;AAAA,QACP,WAAW;AAAA,QACX,OAAO;AAAA,QACP,OAAO;AAAA,QAEP,gBAAgB;AAAA,QAChB,mBAAmB;AAAA,MACrB;AAEA,qBAAe,YAAY;AAE3B,aAAO;AAAA,IACT;AAAA;AAAA;;;AChEA;AAAA;AAAA;AAOA,QAAI,QAAQ,IAAI,aAAa,cAAc;AACrC,gBAAU;AAIV,4BAAsB;AAC1B,aAAO,UAAU,kCAAqC,QAAQ,WAAW,mBAAmB;AAAA,IAC9F,OAAO;AAGL,aAAO,UAAU,mCAAsC;AAAA,IACzD;AAVM;AAIA;AAAA;AAAA;;;ACZN;AAAA;AAAA;AAAA;AAAA;AACA,SAAS,wBAAwB,SAAS;AACtC,QAAM,SAAS,CAAC,GAAG,QAAQ,MAAM;AACjC,QAAM,UAAU,OAAO,MAAM;AAC7B,MAAI,YAAY,QAAW;AACvB,WAAO,gBAAgB;AAAA,EAC3B;AACA,SAAO;AAAA,IACH,IAAI,KAAK,cAAc,SAAS;AAAA,MAC5B,MAAM,MAAM,QAAQ,QAAQ;AAAA,IAChC,GAAG;AACC,aAAO,QAAQ,IAAI,KAAK,cAAc,MAAM,EAAE,MAAM,MAAM;AACtD,eAAO,wBAAwB,EAAE,OAAO,CAAC,EAAE,IAAI,KAAK,cAAc,MAAM;AAAA,MAC5E,CAAC;AAAA,IACL;AAAA,IACA,IAAI,KAAK,OAAO;AACZ,aAAO,QAAQ,IAAI,KAAK,KAAK,EAAE,MAAM,MAAM;AACvC,eAAO,wBAAwB,EAAE,OAAO,CAAC,EAAE,IAAI,KAAK,KAAK;AAAA,MAC7D,CAAC;AAAA,IACL;AAAA,IACA,OAAO,KAAK;AACR,aAAO,QAAQ,OAAO,GAAG,EAAE,MAAM,MAAM;AACnC,eAAO,wBAAwB,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG;AAAA,MACzD,CAAC;AAAA,IACL;AAAA,IACA,QAAQ;AACJ,aAAO,QAAQ,MAAM,EAAE,MAAM,MAAM;AAC/B,eAAO,wBAAwB,EAAE,OAAO,CAAC,EAAE,MAAM;AAAA,MACrD,CAAC;AAAA,IACL;AAAA,EACJ;AACJ;AAEA,SAAS,kBAAkB;AACvB,SAAO;AAAA,IACH,IAAI,MAAM,cAAc,SAAS;AAAA,MAC7B,MAAM,MAAM,QAAQ,QAAQ;AAAA,IAChC,GAAG;AACC,YAAM,QAAQ,aAAa;AAC3B,aAAO,MACF,KAAK,YAAU,QAAQ,IAAI,CAAC,QAAQ,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,EACzD,KAAK,CAAC,CAAC,MAAM,MAAM,MAAM;AAAA,IAClC;AAAA,IACA,IAAI,MAAM,OAAO;AACb,aAAO,QAAQ,QAAQ,KAAK;AAAA,IAChC;AAAA,IACA,OAAO,MAAM;AACT,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAAA,IACA,QAAQ;AACJ,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAAA,EACJ;AACJ;AArDA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AAAA,SAAS,oBAAoB,UAAU,EAAE,cAAc,KAAK,GAAG;AAE3D,MAAI,QAAQ,CAAC;AACb,SAAO;AAAA,IACH,IAAI,KAAK,cAAc,SAAS;AAAA,MAC5B,MAAM,MAAM,QAAQ,QAAQ;AAAA,IAChC,GAAG;AACC,YAAM,cAAc,KAAK,UAAU,GAAG;AACtC,UAAI,eAAe,OAAO;AACtB,eAAO,QAAQ,QAAQ,QAAQ,eAAe,KAAK,MAAM,MAAM,WAAW,CAAC,IAAI,MAAM,WAAW,CAAC;AAAA,MACrG;AACA,YAAM,UAAU,aAAa;AAC7B,YAAM,OAAQ,UAAU,OAAO,SAAU,MAAM,QAAQ,QAAQ;AAC/D,aAAO,QAAQ,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,EAAE,KAAK,MAAM,OAAO;AAAA,IAClE;AAAA,IACA,IAAI,KAAK,OAAO;AAEZ,YAAM,KAAK,UAAU,GAAG,CAAC,IAAI,QAAQ,eAAe,KAAK,UAAU,KAAK,IAAI;AAC5E,aAAO,QAAQ,QAAQ,KAAK;AAAA,IAChC;AAAA,IACA,OAAO,KAAK;AAER,aAAO,MAAM,KAAK,UAAU,GAAG,CAAC;AAChC,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAAA,IACA,QAAQ;AACJ,cAAQ,CAAC;AACT,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAAA,EACJ;AACJ;AA9BA;AAAA;AAAA;AAAA;AAAA;;;ACAA,SAAS,WAAW,UAAU,OAAO,QAAQ;AACzC,QAAM,cAAc;AAAA,IAChB,qBAAqB;AAAA,IACrB,4BAA4B;AAAA,EAChC;AACA,SAAO;AAAA,IACH,UAAU;AACN,aAAO,aAAa,SAAS,gBAAgB,cAAc,CAAC;AAAA,IAChE;AAAA,IACA,kBAAkB;AACd,aAAO,aAAa,SAAS,wBAAwB,cAAc,CAAC;AAAA,IACxE;AAAA,EACJ;AACJ;AAwCA,SAAS,WAAW,MAAM,SAAS;AAC/B,MAAI,CAAC,SAAS;AACV,WAAO;AAAA,EACX;AACA,SAAO,KAAK,OAAO,EAAE,QAAQ,SAAO;AAEhC,SAAK,GAAG,IAAI,QAAQ,GAAG,EAAE,IAAI;AAAA,EACjC,CAAC;AACD,SAAO;AACX;AACA,SAAS,OAAO,WAAW,MAAM;AAE7B,MAAI,IAAI;AACR,SAAO,OAAO,QAAQ,OAAO,MAAM,mBAAmB,KAAK,GAAG,CAAC,CAAC;AACpE;AAnEA,IA6EM;AA7EN;AAAA;AAAA;AA6EA,IAAM,WAAW;AAAA;AAAA;AAAA;AAAA,MAIb,uBAAuB;AAAA;AAAA;AAAA;AAAA,MAIvB,eAAe;AAAA,IACnB;AAAA;AAAA;;;ACtFA;AAAA;AAAA;AAAA;AAAA,IAAM;AAAN;AAAA;AAAA;AAAA,IAAM,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,KAAK;AAAA,MACL,MAAM;AAAA,MACN,KAAK;AAAA,IACT;AAAA;AAAA;;;ACLA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,SAAS,2BAA2B,gBAAgB,SAAS;AACzD,QAAM,UAAU,kBAAkB,CAAC;AACnC,QAAM,OAAO,QAAQ,QAAQ,CAAC;AAC9B,SAAO,KAAK,OAAO,EAAE,QAAQ,SAAO;AAChC,QAAI,CAAC,WAAW,WAAW,mBAAmB,QAAQ,WAAW,EAAE,QAAQ,GAAG,MAAM,IAAI;AACpF,WAAK,GAAG,IAAI,QAAQ,GAAG;AAAA,IAC3B;AAAA,EACJ,CAAC;AACD,SAAO;AAAA,IACH,MAAM,OAAO,QAAQ,IAAI,EAAE,SAAS,IAAI,OAAO;AAAA,IAC/C,SAAS,QAAQ,WAAW;AAAA,IAC5B,SAAS,QAAQ,WAAW,CAAC;AAAA,IAC7B,iBAAiB,QAAQ,mBAAmB,CAAC;AAAA,IAC7C,WAAW,QAAQ;AAAA,EACvB;AACJ;AA0BA,SAAS,mBAAmB,MAAM,SAAS,eAAe,IAAI;AAC1D,SAAO;AAAA,IACH,GAAG;AAAA,IACH;AAAA,IACA,YAAY,KAAK,IAAI;AAAA,EACzB;AACJ;AACA,SAAS,iBAAiB,MAAM;AAC5B,SAAO,KAAK,WAAW,eAAe,MAAM,KAAK,IAAI,IAAI,KAAK,aAAa;AAC/E;AACA,SAAS,wBAAwB,MAAM;AACnC,SAAQ,KAAK,WAAW,eAAe,aAAa,KAAK,IAAI,IAAI,KAAK,cAAc;AACxF;AAEA,SAAS,oBAAoB,SAAS;AAClC,MAAI,OAAO,YAAY,UAAU;AAC7B,WAAO;AAAA,MACH,UAAU;AAAA,MACV,KAAK;AAAA,MACL,QAAQ,SAAS;AAAA,IACrB;AAAA,EACJ;AACA,SAAO;AAAA,IACH,UAAU,QAAQ,YAAY;AAAA,IAC9B,KAAK,QAAQ;AAAA,IACb,QAAQ,QAAQ,UAAU,SAAS;AAAA,EACvC;AACJ;AAEA,SAAS,uBAAuB,YAAY,gBAAgB;AACxD,SAAO,QAAQ,IAAI,eAAe,IAAI,mBAAiB;AACnD,WAAO,WAAW,IAAI,eAAe,MAAM;AACvC,aAAO,QAAQ,QAAQ,mBAAmB,aAAa,CAAC;AAAA,IAC5D,CAAC;AAAA,EACL,CAAC,CAAC,EAAE,KAAK,mBAAiB;AACtB,UAAM,UAAU,cAAc,OAAO,UAAQ,iBAAiB,IAAI,CAAC;AACnE,UAAM,iBAAiB,cAAc,OAAO,UAAQ,wBAAwB,IAAI,CAAC;AAIjF,UAAM,iBAAiB,CAAC,GAAG,SAAS,GAAG,cAAc;AACrD,UAAM,0BAA0B,eAAe,SAAS,IAClD,eAAe,IAAI,UAAQ,oBAAoB,IAAI,CAAC,IACpD;AACN,WAAO;AAAA,MACH,WAAW,eAAe,aAAa;AAYnC,cAAM,oBAAoB,eAAe,WAAW,KAAK,kBAAkB,IACrE,IACA,eAAe,SAAS,IAAI;AAClC,eAAO,oBAAoB;AAAA,MAC/B;AAAA,MACA,gBAAgB;AAAA,IACpB;AAAA,EACJ,CAAC;AACL;AAuBA,SAAS,iBAAiB,aAAa,gBAAgB,SAAS,gBAAgB;AAC5E,QAAM,aAAa,CAAC;AAIpB,QAAM,OAAO,cAAc,SAAS,cAAc;AAClD,QAAM,UAAU,iBAAiB,aAAa,cAAc;AAC5D,QAAM,SAAS,QAAQ;AAEvB,QAAM,sBAAsB,QAAQ,WAAW,WAAW,MACpD,CAAC,IACD;AAAA,IACE,GAAG,QAAQ;AAAA,IACX,GAAG,eAAe;AAAA,EACtB;AACJ,QAAM,kBAAkB;AAAA,IACpB,mBAAmB,YAAY,UAAU;AAAA,IACzC,GAAG,YAAY;AAAA,IACf,GAAG;AAAA,IACH,GAAG,eAAe;AAAA,EACtB;AACA,MAAI,gBAAgB;AACpB,QAAM,QAAQ,CAAC,OACf,eAAe;AAIX,UAAM,OAAO,MAAM,IAAI;AACvB,QAAI,SAAS,QAAW;AACpB,YAAM,iBAAiB,6BAA6B,UAAU,CAAC;AAAA,IACnE;AACA,UAAM,UAAU;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA,KAAK,aAAa,MAAM,QAAQ,MAAM,eAAe;AAAA,MACrD,gBAAgB,WAAW,eAAe,YAAY,SAAS,OAAO;AAAA,MACtE,iBAAiB,WAAW,eAAe,eAAe,OAAO;AAAA,IACrE;AAMA,UAAM,mBAAmB,CAAC,aAAa;AACnC,YAAM,aAAa;AAAA,QACf,SAAS;AAAA,QACT;AAAA,QACA;AAAA,QACA,WAAW,MAAM;AAAA,MACrB;AAEA,iBAAW,KAAK,UAAU;AAC1B,aAAO;AAAA,IACX;AACA,UAAM,YAAY;AAAA,MACd,WAAW,cAAY,mBAAmB,QAAQ;AAAA,MAClD,QAAQ,UAAU;AACd,cAAM,aAAa,iBAAiB,QAAQ;AAK5C,YAAI,SAAS,YAAY;AACrB;AAAA,QACJ;AACA,eAAO,QAAQ,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAMf,YAAY,OAAO,KAAK,qBAAqB,6BAA6B,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAMrF,YAAY,WAAW,IAAI,MAAM,mBAAmB,MAAM,SAAS,aAAa,eAAe,YAAY,eAAe,IAAI,CAAC;AAAA,QACnI,CAAC,EAAE,KAAK,MAAM,MAAM,OAAO,UAAU,CAAC;AAAA,MAC1C;AAAA,MACA,OAAO,UAAU;AACb,yBAAiB,QAAQ;AACzB,cAAM,mBAAmB,UAAU,6BAA6B,UAAU,CAAC;AAAA,MAC/E;AAAA,IACJ;AACA,WAAO,YAAY,UAAU,KAAK,OAAO,EAAE,KAAK,cAAY;AACxD,aAAO,cAAc,UAAU,SAAS;AAAA,IAC5C,CAAC;AAAA,EACL;AASA,SAAO,uBAAuB,YAAY,YAAY,cAAc,EAAE,KAAK,aAAW;AAClF,WAAO,MAAM,CAAC,GAAG,QAAQ,cAAc,EAAE,QAAQ,GAAG,QAAQ,UAAU;AAAA,EAC1E,CAAC;AACL;AAEA,SAAS,kBAAkB,SAAS;AAChC,QAAM,EAAE,YAAY,QAAQ,WAAW,eAAe,gBAAgB,UAAU,WAAW,OAAO,iBAAiB,QAAS,IAAI;AAChI,QAAM,cAAc;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO,MAAM,IAAI,UAAQ,oBAAoB,IAAI,CAAC;AAAA,IAClD,KAAK,SAAS,gBAAgB;AAM1B,YAAM,uBAAuB,2BAA2B,gBAAgB,YAAY,SAAS,IAAI;AACjG,YAAM,yBAAyB,MAAM;AAMjC,eAAO,iBAAiB,aAAa,YAAY,MAAM,OAAO,WAAS,KAAK,SAAS,SAAS,UAAU,CAAC,GAAG,SAAS,oBAAoB;AAAA,MAC7I;AAMA,YAAM,YAAY,qBAAqB,cAAc,SAC/C,qBAAqB,YACrB,QAAQ;AAKd,UAAI,cAAc,MAAM;AACpB,eAAO,uBAAuB;AAAA,MAClC;AAMA,YAAM,MAAM;AAAA,QACR;AAAA,QACA;AAAA,QACA,aAAa;AAAA,UACT,iBAAiB,YAAY;AAAA,UAC7B,SAAS,YAAY;AAAA,QACzB;AAAA,MACJ;AAKA,aAAO,YAAY,eAAe,IAAI,KAAK,MAAM;AAK7C,eAAO,YAAY,cAAc,IAAI,KAAK,MAAM;AAC5C,iBAAQ,YAAY,cAMf,IAAI,KAAK,uBAAuB,CAAC,EACjC,KAAK,cAAY,QAAQ,IAAI,CAAC,YAAY,cAAc,OAAO,GAAG,GAAG,QAAQ,CAAC,GAAG,SAAO,QAAQ,IAAI,CAAC,YAAY,cAAc,OAAO,GAAG,GAAG,QAAQ,OAAO,GAAG,CAAC,CAAC,CAAC,EACjK,KAAK,CAAC,CAAC,GAAG,QAAQ,MAAM,QAAQ;AAAA,QACzC,CAAC;AAAA,MACL,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAMC,MAAM,cAAY,YAAY,eAAe,IAAI,KAAK,QAAQ;AAAA,MAClE,CAAC;AAAA,IACL;AAAA,IACA,MAAM,SAAS,gBAAgB;AAK3B,aAAO,iBAAiB,aAAa,YAAY,MAAM,OAAO,WAAS,KAAK,SAAS,SAAS,WAAW,CAAC,GAAG,SAAS,2BAA2B,gBAAgB,YAAY,SAAS,KAAK,CAAC;AAAA,IAChM;AAAA,EACJ;AACA,SAAO;AACX;AAEA,SAAS,gBAAgBC,UAAS;AAC9B,QAAM,YAAY;AAAA,IACd,OAAO,2BAA2BA,QAAO;AAAA,IACzC,IAAI,SAAS;AACT,YAAM,iBAAiB,KAAK,QAAQ,OAAO,GAAG,QAAQ,YAAY,SAAY,KAAK,QAAQ,OAAO,MAAM,EAAE;AAC1G,UAAI,UAAU,MAAM,QAAQ,cAAc,MAAM,IAAI;AAEhD,kBAAU,QAAQ,GAAG,UAAU,KAAK,GAAG,cAAc;AAAA,MACzD;AACA,aAAO;AAAA,IACX;AAAA,EACJ;AACA,SAAO;AACX;AAEA,SAAS,mBAAmB,UAAU;AAElC,MAAI;AACA,WAAO,KAAK,MAAM,SAAS,OAAO;AAAA,EACtC,SACO,GAAG;AACN,UAAM,2BAA2B,EAAE,SAAS,QAAQ;AAAA,EACxD;AACJ;AACA,SAAS,mBAAmB,EAAE,SAAS,OAAO,GAAG,YAAY;AAEzD,MAAI,UAAU;AAEd,MAAI;AACA,cAAU,KAAK,MAAM,OAAO,EAAE;AAAA,EAClC,SACO,GAAG;AAAA,EAEV;AACA,SAAO,eAAe,SAAS,QAAQ,UAAU;AACrD;AAGA,SAASC,QAAO,WAAW,MAAM;AAE7B,MAAI,IAAI;AACR,SAAO,OAAO,QAAQ,OAAO,MAAM,mBAAmB,KAAK,GAAG,CAAC,CAAC;AACpE;AAEA,SAAS,aAAa,MAAM,MAAM,iBAAiB;AAC/C,QAAM,0BAA0B,yBAAyB,eAAe;AAExE,MAAI,MAAM,GAAG,KAAK,QAAQ,MAAM,KAAK,GAAG,IAAI,KAAK,OAAO,CAAC,MAAM,MAAM,KAAK,OAAO,CAAC,IAAI,IAAI;AAC1F,MAAI,wBAAwB,QAAQ;AAChC,WAAO,IAAI,uBAAuB;AAAA,EACtC;AACA,SAAO;AACX;AACA,SAAS,yBAAyB,YAAY;AAC1C,QAAM,kBAAkB,CAAC,UAAU,OAAO,UAAU,SAAS,KAAK,KAAK,MAAM,qBACzE,OAAO,UAAU,SAAS,KAAK,KAAK,MAAM;AAC9C,SAAO,OAAO,KAAK,UAAU,EACxB,IAAI,SAAOA,QAAO,SAAS,KAAK,gBAAgB,WAAW,GAAG,CAAC,IAAI,KAAK,UAAU,WAAW,GAAG,CAAC,IAAI,WAAW,GAAG,CAAC,CAAC,EACrH,KAAK,GAAG;AACjB;AACA,SAAS,cAAc,SAAS,gBAAgB;AAC5C,MAAI,QAAQ,WAAW,WAAW,OAC7B,QAAQ,SAAS,UAAa,eAAe,SAAS,QAAY;AACnE,WAAO;AAAA,EACX;AACA,QAAM,OAAO,MAAM,QAAQ,QAAQ,IAAI,IACjC,QAAQ,OACR,EAAE,GAAG,QAAQ,MAAM,GAAG,eAAe,KAAK;AAChD,SAAO,KAAK,UAAU,IAAI;AAC9B;AACA,SAAS,iBAAiB,aAAa,gBAAgB;AACnD,QAAM,UAAU;AAAA,IACZ,GAAG,YAAY;AAAA,IACf,GAAG,eAAe;AAAA,EACtB;AACA,QAAM,oBAAoB,CAAC;AAC3B,SAAO,KAAK,OAAO,EAAE,QAAQ,YAAU;AACnC,UAAM,QAAQ,QAAQ,MAAM;AAG5B,sBAAkB,OAAO,YAAY,CAAC,IAAI;AAAA,EAC9C,CAAC;AACD,SAAO;AACX;AAEA,SAAS,6BAA6B,YAAY;AAC9C,SAAO,WAAW,IAAI,gBAAc,6BAA6B,UAAU,CAAC;AAChF;AACA,SAAS,6BAA6B,YAAY;AAC9C,QAAM,kBAAkB,WAAW,QAAQ,QAAQ,mBAAmB,IAChE,EAAE,qBAAqB,QAAQ,IAC/B,CAAC;AACP,SAAO;AAAA,IACH,GAAG;AAAA,IACH,SAAS;AAAA,MACL,GAAG,WAAW;AAAA,MACd,SAAS;AAAA,QACL,GAAG,WAAW,QAAQ;AAAA,QACtB,GAAG;AAAA,MACP;AAAA,IACJ;AAAA,EACJ;AACJ;AAEA,SAAS,eAAe,SAAS,QAAQ,uBAAuB;AAC5D,SAAO;AAAA,IACH,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACJ;AAEA,SAAS,2BAA2B,SAAS,UAAU;AACnD,SAAO;AAAA,IACH,MAAM;AAAA,IACN;AAAA,IACA;AAAA,EACJ;AACJ;AAEA,SAAS,iBAAiB,uBAAuB;AAC7C,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS;AAAA,IACT;AAAA,EACJ;AACJ;AAzcA,IAmBM,UAeA,gBAQA,kBAoEA,gBAGA,aAKA,WAGA;AAzHN;AAAA;AAAA;AAAA;AAmBA,IAAM,WAAW;AAAA;AAAA;AAAA;AAAA,MAIb,MAAM;AAAA;AAAA;AAAA;AAAA,MAIN,OAAO;AAAA;AAAA;AAAA;AAAA,MAIP,KAAK;AAAA,IACT;AAEA,IAAM,iBAAiB;AAAA,MACnB,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,WAAW;AAAA,IACf;AAIA,IAAM,mBAAmB,IAAI,KAAK;AAoElC,IAAM,iBAAiB,CAAC,EAAE,YAAY,OAAO,MAAM;AAC/C,aAAO,CAAC,cAAc,CAAC,CAAC,WAAW;AAAA,IACvC;AACA,IAAM,cAAc,CAAC,aAAa;AAC9B,YAAM,SAAS,SAAS;AACxB,YAAM,aAAa,SAAS;AAC5B,aAAQ,cAAc,eAAe,QAAQ,KAAM,CAAC,EAAE,SAAS,SAAS,KAAK,CAAC,EAAE,SAAS,SAAS;AAAA,IACtG;AACA,IAAM,YAAY,CAAC,EAAE,OAAO,MAAM;AAC9B,aAAO,CAAC,EAAE,SAAS,SAAS;AAAA,IAChC;AACA,IAAM,gBAAgB,CAAC,UAAU,aAAa;AAC1C,UAAI,YAAY,QAAQ,GAAG;AACvB,eAAO,SAAS,QAAQ,QAAQ;AAAA,MACpC;AACA,UAAI,UAAU,QAAQ,GAAG;AACrB,eAAO,SAAS,UAAU,QAAQ;AAAA,MACtC;AACA,aAAO,SAAS,OAAO,QAAQ;AAAA,IACnC;AAAA;AAAA;;;ACjIA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAIM,uBAoBA,WAUA,cASA,WASA,YASA;AA7DN;AAAA;AAAA;AAAA;AACA;AACA;AAEA,IAAM,wBAAwB,aAAW;AACrC,YAAM,SAAS,QAAQ,UAAU;AACjC,YAAM,OAAO,WAAW,SAAS,eAAe,QAAQ,OAAO,QAAQ,MAAM;AAC7E,YAAM,cAAc,kBAAkB;AAAA,QAClC,OAAO,CAAC,EAAE,KAAK,aAAa,MAAM,eAAe,CAAC;AAAA,QAClD,GAAG;AAAA,QACH,SAAS;AAAA,UACL,GAAG,KAAK,QAAQ;AAAA,UAChB,GAAG,EAAE,gBAAgB,mBAAmB;AAAA,UACxC,GAAG,QAAQ;AAAA,QACf;AAAA,QACA,iBAAiB;AAAA,UACb,GAAG,KAAK,gBAAgB;AAAA,UACxB,GAAG,QAAQ;AAAA,QACf;AAAA,MACJ,CAAC;AACD,YAAM,QAAQ,QAAQ;AACtB,aAAO,WAAW,EAAE,OAAO,YAAY,GAAG,QAAQ,OAAO;AAAA,IAC7D;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,eAAO,KAAK,YAAY,MAAM;AAAA,UAC1B,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAO,KAAK,YAAY,MAAM;AAAA,UAC1B,QAAQ,WAAW;AAAA,UACnB,MAAM,OAAO,gBAAgB,QAAQ;AAAA,QACzC,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM,OAAO,gBAAgB,QAAQ;AAAA,QACzC,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,aAAa,CAAC,SAAS;AACzB,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,aAAa,CAAC,SAAS;AACzB,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAO,KAAK,YAAY,MAAM;AAAA,UAC1B,QAAQ,WAAW;AAAA,UACnB,MAAM,OAAO,qBAAqB,QAAQ;AAAA,QAC9C,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAAA;AAAA;;;ACpEA;AAAA;AAAA,kBAAAC;AAAA,EAAA,kBAAAC;AAAA,EAAA,kBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA,gBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA,SAASD,YAAW,UAAU,OAAO,QAAQ;AACzC,QAAM,cAAc;AAAA,IAChB,qBAAqB;AAAA,IACrB,4BAA4B;AAAA,EAChC;AACA,SAAO;AAAA,IACH,UAAU;AACN,aAAO,aAAaF,UAAS,gBAAgB,cAAc,CAAC;AAAA,IAChE;AAAA,IACA,kBAAkB;AACd,aAAO,aAAaA,UAAS,wBAAwB,cAAc,CAAC;AAAA,IACxE;AAAA,EACJ;AACJ;AAEA,SAAS,uBAAuB,UAAU;AACtC,MAAI,eAAe;AACnB,QAAM,QAAQ,MAAM;AAChB;AACA,WAAO,IAAI,QAAQ,CAAC,YAAY;AAC5B,iBAAW,MAAM;AACb,gBAAQ,SAAS,KAAK,CAAC;AAAA,MAC3B,GAAG,KAAK,IAAI,MAAM,cAAc,GAAI,CAAC;AAAA,IACzC,CAAC;AAAA,EACL;AACA,SAAO,SAAS,KAAK;AACzB;AAEA,SAAS,sBAAsB,SAAS,OAAO,CAAC,WAAW,oBAAoB;AAC3E,SAAO,QAAQ,QAAQ;AAC3B,GAAG;AAEC,SAAO,OAAO,OAAO,SAAS;AAAA,IAC1B,KAAK,gBAAgB;AACjB,aAAO,sBAAsB,QACxB,KAAK,cAAY,QAAQ,IAAI,CAAC,KAAK,UAAU,cAAc,GAAG,QAAQ,CAAC,CAAC,EACxE,KAAK,oBAAkB,eAAe,CAAC,CAAC,CAAC;AAAA,IAClD;AAAA,EACJ,CAAC;AACL;AAGA,SAAS,QAAQ,OAAO;AACpB,MAAI,IAAI,MAAM,SAAS;AAEvB,OAAK,GAAG,IAAI,GAAG,KAAK;AAChB,UAAM,IAAI,KAAK,MAAM,KAAK,OAAO,KAAK,IAAI,EAAE;AAC5C,UAAM,IAAI,MAAM,CAAC;AACjB,UAAM,CAAC,IAAI,MAAM,CAAC;AAClB,UAAM,CAAC,IAAI;AAAA,EACf;AACA,SAAO;AACX;AACA,SAASC,YAAW,MAAM,SAAS;AAC/B,MAAI,CAAC,SAAS;AACV,WAAO;AAAA,EACX;AACA,SAAO,KAAK,OAAO,EAAE,QAAQ,SAAO;AAEhC,SAAK,GAAG,IAAI,QAAQ,GAAG,EAAE,IAAI;AAAA,EACjC,CAAC;AACD,SAAO;AACX;AACA,SAASE,QAAO,WAAW,MAAM;AAE7B,MAAI,IAAI;AACR,SAAO,OAAO,QAAQ,OAAO,MAAM,mBAAmB,KAAK,GAAG,CAAC,CAAC;AACpE;AAnEA,IAqEM,SAEA,SAMAH;AA7EN,IAAAI,0BAAA;AAAA;AAAA;AAqEA,IAAM,UAAU;AAEhB,IAAM,UAAU,CAAC,SAAS;AACtB,aAAO,MAAM;AACT,eAAO,KAAK,YAAY,UAAU,QAAQ;AAAA,MAC9C;AAAA,IACJ;AAEA,IAAMJ,YAAW;AAAA;AAAA;AAAA;AAAA,MAIb,uBAAuB;AAAA;AAAA;AAAA;AAAA,MAIvB,eAAe;AAAA,IACnB;AAAA;AAAA;;;ACtFA,SAASK,YAAW,UAAU,OAAO,QAAQ;AACzC,QAAM,cAAc;AAAA,IAChB,qBAAqB;AAAA,IACrB,4BAA4B;AAAA,EAChC;AACA,SAAO;AAAA,IACH,UAAU;AACN,aAAO,aAAaC,UAAS,gBAAgB,cAAc,CAAC;AAAA,IAChE;AAAA,IACA,kBAAkB;AACd,aAAO,aAAaA,UAAS,wBAAwB,cAAc,CAAC;AAAA,IACxE;AAAA,EACJ;AACJ;AAwCA,SAASC,YAAW,MAAM,SAAS;AAC/B,MAAI,CAAC,SAAS;AACV,WAAO;AAAA,EACX;AACA,SAAO,KAAK,OAAO,EAAE,QAAQ,SAAO;AAEhC,SAAK,GAAG,IAAI,QAAQ,GAAG,EAAE,IAAI;AAAA,EACjC,CAAC;AACD,SAAO;AACX;AA9DA,IA6EMD;AA7EN,IAAAE,0BAAA;AAAA;AAAA;AA6EA,IAAMF,YAAW;AAAA;AAAA;AAAA;AAAA,MAIb,uBAAuB;AAAA;AAAA;AAAA;AAAA,MAIvB,eAAe;AAAA,IACnB;AAAA;AAAA;;;ACtFA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAIM,6BAmBA,4BASA;AAhCN;AAAA;AAAA;AAAA,IAAAG;AACA;AACA;AAEA,IAAM,8BAA8B,aAAW;AAC3C,YAAM,SAAS,QAAQ,UAAU;AACjC,YAAM,OAAOC,YAAWC,UAAS,eAAe,QAAQ,OAAO,QAAQ,MAAM;AAC7E,YAAM,cAAc,kBAAkB;AAAA,QAClC,OAAO,CAAC,EAAE,KAAK,mBAAmB,MAAM,eAAe,CAAC;AAAA,QACxD,GAAG;AAAA,QACH,SAAS;AAAA,UACL,GAAG,KAAK,QAAQ;AAAA,UAChB,GAAG,EAAE,gBAAgB,mBAAmB;AAAA,UACxC,GAAG,QAAQ;AAAA,QACf;AAAA,QACA,iBAAiB;AAAA,UACb,GAAG,KAAK,gBAAgB;AAAA,UACxB,GAAG,QAAQ;AAAA,QACf;AAAA,MACJ,CAAC;AACD,aAAOC,YAAW,EAAE,OAAO,QAAQ,OAAO,YAAY,GAAG,QAAQ,OAAO;AAAA,IAC5E;AAEA,IAAM,6BAA6B,CAAC,SAAS;AACzC,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,6BAA6B,CAAC,SAAS;AACzC,aAAO,CAAC,yBAAyB,mBAAmB;AAChD,eAAO,KAAK,YAAY,MAAM;AAAA,UAC1B,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAAA;AAAA;;;ACxCA,SAASC,YAAW,UAAU,OAAO,QAAQ;AACzC,QAAM,cAAc;AAAA,IAChB,qBAAqB;AAAA,IACrB,4BAA4B;AAAA,EAChC;AACA,SAAO;AAAA,IACH,UAAU;AACN,aAAO,aAAaC,UAAS,gBAAgB,cAAc,CAAC;AAAA,IAChE;AAAA,IACA,kBAAkB;AACd,aAAO,aAAaA,UAAS,wBAAwB,cAAc,CAAC;AAAA,IACxE;AAAA,EACJ;AACJ;AAEA,SAASC,wBAAuB,UAAU;AACtC,MAAI,eAAe;AACnB,QAAM,QAAQ,MAAM;AAChB;AACA,WAAO,IAAI,QAAQ,CAAC,YAAY;AAC5B,iBAAW,MAAM;AACb,gBAAQ,SAAS,KAAK,CAAC;AAAA,MAC3B,GAAG,KAAK,IAAI,MAAM,cAAc,GAAI,CAAC;AAAA,IACzC,CAAC;AAAA,EACL;AACA,SAAO,SAAS,KAAK;AACzB;AAEA,SAASC,uBAAsB,SAAS,OAAO,CAAC,WAAW,oBAAoB;AAC3E,SAAO,QAAQ,QAAQ;AAC3B,GAAG;AAEC,SAAO,OAAO,OAAO,SAAS;AAAA,IAC1B,KAAK,gBAAgB;AACjB,aAAOA,uBAAsB,QACxB,KAAK,cAAY,QAAQ,IAAI,CAAC,KAAK,UAAU,cAAc,GAAG,QAAQ,CAAC,CAAC,EACxE,KAAK,oBAAkB,eAAe,CAAC,CAAC,CAAC;AAAA,IAClD;AAAA,EACJ,CAAC;AACL;AAGA,SAASC,SAAQ,OAAO;AACpB,MAAI,IAAI,MAAM,SAAS;AAEvB,OAAK,GAAG,IAAI,GAAG,KAAK;AAChB,UAAM,IAAI,KAAK,MAAM,KAAK,OAAO,KAAK,IAAI,EAAE;AAC5C,UAAM,IAAI,MAAM,CAAC;AACjB,UAAM,CAAC,IAAI,MAAM,CAAC;AAClB,UAAM,CAAC,IAAI;AAAA,EACf;AACA,SAAO;AACX;AACA,SAASC,YAAW,MAAM,SAAS;AAC/B,MAAI,CAAC,SAAS;AACV,WAAO;AAAA,EACX;AACA,SAAO,KAAK,OAAO,EAAE,QAAQ,SAAO;AAEhC,SAAK,GAAG,IAAI,QAAQ,GAAG,EAAE,IAAI;AAAA,EACjC,CAAC;AACD,SAAO;AACX;AACA,SAASC,QAAO,WAAW,MAAM;AAE7B,MAAI,IAAI;AACR,SAAO,OAAO,QAAQ,OAAO,MAAM,mBAAmB,KAAK,GAAG,CAAC,CAAC;AACpE;AAnEA,IA6EML;AA7EN,IAAAM,0BAAA;AAAA;AAAA;AA6EA,IAAMN,YAAW;AAAA;AAAA;AAAA;AAAA,MAIb,uBAAuB;AAAA;AAAA;AAAA;AAAA,MAIvB,eAAe;AAAA,IACnB;AAAA;AAAA;;;ACtFA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,SAAS,kBAAkB;AAE3B,SAAS,uBAAuB,SAAS;AACrC,QAAM,SAAS,CAAC,SAAS;AACrB,WAAO,QAAQ,QAAQ,IAAI,EAAE,KAAK,cAAY;AAK1C,UAAI,QAAQ,UAAU,QAAW;AAC7B,gBAAQ,MAAM,SAAS,IAAI;AAAA,MAC/B;AAMA,UAAI,QAAQ,WAAW,QAAQ,GAAG;AAC9B,eAAO;AAAA,MACX;AAMA,UAAI,SAAS,QAAQ;AACjB,eAAO,OAAO;AAAA,UACV,QAAQ,SAAS;AAAA,QACrB,CAAC;AAAA,MACL;AACA,aAAO,OAAO;AAAA,QACV,OAAO,KAAK,QAAQ,KAAK;AAAA,MAC7B,CAAC;AAAA,IACL,CAAC;AAAA,EACL;AACA,SAAO,OAAO,CAAC,CAAC;AACpB;AAyCA,SAAS,6BAA6B;AAClC,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS;AAAA,EAKb;AACJ;AAEA,SAAS,4BAA4B;AACjC,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS;AAAA,EACb;AACJ;AAEA,SAAS,gCAAgC;AACrC,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS;AAAA,EACb;AACJ;AAvGA,IAyCM,oBAgEA,WAyBA,cAaA,eAaA,wBAaA,WAkBA,WASA,cASA,cASA,eASA,cAoBA,yBAcA,uBAUA,WASA,YASA,uBASA,SASA,mCAYA,eASA,WASA,oBAcA,WAWA,aASA,cASA,aASA,aASA,WAkBA,eAmBA,oBAYA,iBAmBA,8BAcA,cAYA,0BAcA,eAmBA,uBAcA,yBAaA,eAYA,uBAUA,cA6CA,aAUA,OAeA,eAcA,aAyBA,gBAyBA,cA2CA,cASA,YAcA,eAcA,UAUA,aASA,cAQA,eASA,YAcA,eAcA,QAaA,aAcA,YA8BA,WASA,mBAYA,YAoBA,SASA,aAYA,YASA,SASA,qBAWA,sBAUA,mBA8EA,iBASA,oBASA,YAWA,aAkBA,UAMA,WAkBA,aAMA,cAkBA,QAaA,sBAaA,aAYA,gBAYA,aAeA,UAUA,eAkBA,iBAUA,WAMA,cAKA;AA7wCN;AAAA;AAAA;AAAA,IAAAO;AACA;AACA;AAuCA,IAAM,qBAAqB,aAAW;AAClC,YAAM,QAAQ,QAAQ;AACtB,YAAM,OAAOC,YAAW,QAAQ,aAAa,SAAY,QAAQ,WAAWC,UAAS,eAAe,OAAO,QAAQ,MAAM;AACzH,YAAM,cAAc,kBAAkB;AAAA,QAClC,OAAO;AAAA,UACH,EAAE,KAAK,GAAG,KAAK,oBAAoB,QAAQ,SAAS,KAAK;AAAA,UACzD,EAAE,KAAK,GAAG,KAAK,gBAAgB,QAAQ,SAAS,MAAM;AAAA,QAC1D,EAAE,OAAOC,SAAQ;AAAA,UACb,EAAE,KAAK,GAAG,KAAK,oBAAoB;AAAA,UACnC,EAAE,KAAK,GAAG,KAAK,oBAAoB;AAAA,UACnC,EAAE,KAAK,GAAG,KAAK,oBAAoB;AAAA,QACvC,CAAC,CAAC;AAAA,QACF,GAAG;AAAA,QACH,SAAS;AAAA,UACL,GAAG,KAAK,QAAQ;AAAA,UAChB,GAAG,EAAE,gBAAgB,oCAAoC;AAAA,UACzD,GAAG,QAAQ;AAAA,QACf;AAAA,QACA,iBAAiB;AAAA,UACb,GAAG,KAAK,gBAAgB;AAAA,UACxB,GAAG,QAAQ;AAAA,QACf;AAAA,MACJ,CAAC;AACD,YAAM,OAAO;AAAA,QACT;AAAA,QACA;AAAA,QACA,gBAAgB,SAASC,UAAS;AAC9B,sBAAY,UAAU,IAAI,EAAE,SAAS,SAAAA,SAAQ,CAAC;AAAA,QAClD;AAAA,QACA,aAAa;AACT,iBAAO,QAAQ,IAAI;AAAA,YACf,YAAY,cAAc,MAAM;AAAA,YAChC,YAAY,eAAe,MAAM;AAAA,UACrC,CAAC,EAAE,KAAK,MAAM,MAAS;AAAA,QAC3B;AAAA,MACJ;AACA,aAAOC,YAAW,MAAM,QAAQ,OAAO;AAAA,IAC3C;AA2BA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,KAAK,mBAAmB;AAC5B,cAAM,EAAE,iBAAiB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC3D,cAAM,OAAO;AAAA,UACT;AAAA,UACA,GAAI,oBAAoB,SAAY,EAAE,gBAAgB,IAAI,CAAC;AAAA,QAC/D;AACA,cAAM,OAAO,CAAC,UAAU,uBAAuB;AAC3C,iBAAOC,wBAAuB,WAAS;AACnC,mBAAO,UAAU,IAAI,EAAE,SAAS,KAAK,kBAAkB,EAAE,MAAM,CAAC,aAAa;AACzE,kBAAI,SAAS,WAAW,KAAK;AACzB,sBAAM;AAAA,cACV;AACA,qBAAO,MAAM;AAAA,YACjB,CAAC;AAAA,UACL,CAAC;AAAA,QACL;AACA,eAAOC,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN;AAAA,QACJ,GAAG,OAAO,GAAG,IAAI;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,QAAQ,aAAa,mBAAmB;AAC5C,cAAM,uBAAuB,2BAA2B,cAAc;AAEtE,6BAAqB,gBAAgB,mBAAmB,IAAI;AAC5D,eAAO,KAAK,YAAY,MAAM;AAAA,UAC1B,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM,EAAE,SAAS,YAAY;AAAA,QACjC,GAAG,oBAAoB;AAAA,MAC3B;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,SAAS,aAAa,mBAAmB;AAC7C,eAAO,KAAK,YAAY,MAAM;AAAA,UAC1B,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM;AAAA,YACF,OAAO;AAAA,YACP,SAAS;AAAA,UACb;AAAA,QACJ,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,yBAAyB,CAAC,SAAS;AACrC,aAAO,CAAC,YAAY,mBAAmB;AACnC,eAAOA,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,4BAA4B,UAAU;AAAA,UACnD,MAAM;AAAA,YACF,gCAAgC;AAAA,YAChC,UAAU,EAAE,QAAQ,YAAY,MAAM,CAAC,EAAE;AAAA,UAC7C;AAAA,QACJ,GAAG,cAAc,GAAG,CAAC,UAAU,uBAAuB,YAAY,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAChH;AAAA,IACJ;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,MAAM,IAAI,mBAAmB;AACjC,cAAM,OAAO,CAAC,UAAU,uBAAuB;AAC3C,iBAAO,UAAU,IAAI,EAAE,MAAM;AAAA,YACzB,SAAS,EAAE,SAAS;AAAA,UACxB,CAAC,EAAE,SAAS,SAAS,QAAQ,kBAAkB;AAAA,QACnD;AACA,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,0BAA0B,IAAI;AAAA,UAC3C,MAAM;AAAA,YACF,WAAW;AAAA,YACX,aAAa;AAAA,UACjB;AAAA,QACJ,GAAG,cAAc,GAAG,IAAI;AAAA,MAC5B;AAAA,IACJ;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,MAAM,IAAI,mBAAmB;AACjC,eAAO,UAAU,IAAI,EAAE,MAAM,IAAI;AAAA,UAC7B,GAAG;AAAA,UACH,OAAO,CAAC,UAAU,KAAK;AAAA,QAC3B,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,MAAM,IAAI,mBAAmB;AACjC,eAAO,UAAU,IAAI,EAAE,MAAM,IAAI;AAAA,UAC7B,GAAG;AAAA,UACH,OAAO,CAAC,UAAU,QAAQ;AAAA,QAC9B,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,MAAM,IAAI,mBAAmB;AACjC,eAAO,UAAU,IAAI,EAAE,MAAM,IAAI;AAAA,UAC7B,GAAG;AAAA,UACH,OAAO,CAAC,UAAU,QAAQ;AAAA,QAC9B,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,SAAS,mBAAmB;AAChC,YAAI,QAAQ,WAAW,WAAW,KAAK;AACnC,iBAAO,KAAK,YAAY,KAAK,SAAS,cAAc;AAAA,QACxD;AACA,eAAO,KAAK,YAAY,MAAM,SAAS,cAAc;AAAA,MACzD;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,cAAM,OAAO,CAAC,GAAG,uBAAuB;AACpC,iBAAOF,wBAAuB,WAAS;AACnC,mBAAO,UAAU,IAAI,EAAE,QAAQ,kBAAkB,EAC5C,KAAK,KAAK,EACV,MAAM,CAAC,aAAa;AACrB,kBAAI,SAAS,WAAW,KAAK;AACzB,sBAAM;AAAA,cACV;AAAA,YACJ,CAAC;AAAA,UACL,CAAC;AAAA,QACL;AACA,eAAOC,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,aAAa,MAAM;AAAA,QACpC,GAAG,cAAc,GAAG,IAAI;AAAA,MAC5B;AAAA,IACJ;AAEA,IAAM,0BAA0B,CAAC,SAAS;AACtC,aAAO,CAAC,YAAY,WAAW,mBAAmB;AAC9C,cAAM,WAAW,UAAU,IAAI,eAAa;AAAA,UACxC,QAAQ;AAAA,UACR,MAAM,EAAE,SAAS;AAAA,QACrB,EAAE;AACF,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,4BAA4B,UAAU;AAAA,UACnD,MAAM,EAAE,gCAAgC,OAAO,SAAS;AAAA,QAC5D,GAAG,cAAc,GAAG,CAAC,UAAU,uBAAuB,YAAY,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAChH;AAAA,IACJ;AAEA,IAAM,wBAAwB,MAAM;AAChC,aAAO,CAAC,cAAc,iBAAiB;AACnC,cAAM,kBAAkB,yBAAyB,YAAY;AAC7D,cAAM,aAAa,WAAW,UAAU,YAAY,EAC/C,OAAO,eAAe,EACtB,OAAO,KAAK;AACjB,eAAO,OAAO,KAAK,aAAa,eAAe,EAAE,SAAS,QAAQ;AAAA,MACtE;AAAA,IACJ;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,aAAa,MAAM;AAAA,QACpC,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,aAAa,CAAC,SAAS;AACzB,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,aAAa,OAAO,SAAS,CAAC;AAAA,QAC/C,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,wBAAwB,CAAC,SAAS;AACpC,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,UAAU,CAAC,SAAS;AACtB,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,oCAAoC,MAAM;AAC5C,aAAO,CAAC,kBAAkB;AACtB,cAAM,gBAAgB,OAAO,KAAK,eAAe,QAAQ,EAAE,SAAS,OAAO;AAC3E,cAAM,QAAQ;AACd,cAAM,QAAQ,cAAc,MAAM,KAAK;AACvC,YAAI,UAAU,MAAM;AAChB,gBAAM,8BAA8B;AAAA,QACxC;AACA,eAAO,SAAS,MAAM,CAAC,GAAG,EAAE,IAAI,KAAK,OAAM,oBAAI,KAAK,GAAE,QAAQ,IAAI,GAAI;AAAA,MAC1E;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,yBAAyB,MAAM;AAAA,QAChD,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,qBAAqB,CAAC,SAAS;AACjC,aAAO,CAAC,mBAAmB;AACvB,cAAM,EAAE,kBAAkB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC5D,YAAI,qBAAqB,MAAM;AAE3B,kBAAQ,cAAc;AAAA,QAC1B;AACA,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,OAAO;AAAA,MACd;AAAA,IACJ;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,WAAW,UAAU,CAAC,MAAM;AAChC,cAAMC,eAAc;AAAA,UAChB,aAAa,KAAK;AAAA,UAClB,OAAO,KAAK;AAAA,UACZ;AAAA,QACJ;AACA,eAAOJ,YAAWI,cAAa,QAAQ,OAAO;AAAA,MAClD;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,MAAM,IAAI,mBAAmB;AACjC,cAAM,OAAO,CAAC,UAAU,uBAAuB;AAC3C,iBAAO,UAAU,IAAI,EAAE,MAAM;AAAA,YACzB,SAAS,EAAE,SAAS;AAAA,UACxB,CAAC,EAAE,SAAS,SAAS,QAAQ,kBAAkB;AAAA,QACnD;AACA,eAAOF,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,0BAA0B,IAAI;AAAA,UAC3C,MAAM;AAAA,YACF,WAAW;AAAA,YACX,aAAa;AAAA,UACjB;AAAA,QACJ,GAAG,cAAc,GAAG,IAAI;AAAA,MAC5B;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,UAAU,mBAAmB;AACjC,cAAM,OAAO,CAAC,UAAU,uBAAuB;AAC3C,iBAAO,QAAQ,IAAI,OAAO,KAAK,SAAS,MAAM,EAAE,IAAI,eAAa;AAC7D,mBAAO,UAAU,IAAI,EAAE,WAAW;AAAA,cAC9B,SAAS,EAAE,SAAS;AAAA,YACxB,CAAC,EAAE,SAAS,SAAS,OAAO,SAAS,GAAG,kBAAkB;AAAA,UAC9D,CAAC,CAAC;AAAA,QACN;AACA,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,QACJ,GAAG,cAAc,GAAG,IAAI;AAAA,MAC5B;AAAA,IACJ;AAEA,IAAM,qBAAqB,CAAC,SAAS;AACjC,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,QACJ,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,kBAAkB,CAAC,SAAS;AAC9B,aAAO,CAAC,SAAS,mBAAmB;AAChC,cAAM,WAAW,QAAQ,IAAI,WAAS;AAClC,iBAAO;AAAA,YACH,GAAG;AAAA,YACH,QAAQ,yBAAyB,MAAM,UAAU,CAAC,CAAC;AAAA,UACvD;AAAA,QACJ,CAAC;AACD,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,QACf,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,+BAA+B,CAAC,SAAS;AAC3C,aAAO,CAAC,SAAS,mBAAmB;AAChC,eAAO,QAAQ,IAAI,QAAQ,IAAI,WAAS;AACpC,gBAAM,EAAE,WAAW,YAAY,GAAG,OAAO,IAAI,MAAM;AACnD,iBAAO,UAAU,IAAI,EAAE,MAAM,WAAW;AAAA,YACpC,SAAS,EAAE,qBAAqB;AAAA,UACpC,CAAC,EAAE,qBAAqB,WAAW,YAAY;AAAA,YAC3C,GAAG;AAAA,YACH,GAAG;AAAA,UACP,CAAC;AAAA,QACL,CAAC,CAAC;AAAA,MACN;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,cAAM,uBAAuB,2BAA2B,cAAc;AAEtE,6BAAqB,gBAAgB,mBAAmB,IAAI;AAC5D,eAAO,KAAK,YAAY,MAAM;AAAA,UAC1B,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,oBAAoB;AAAA,MAC3B;AAAA,IACJ;AAEA,IAAM,2BAA2B,CAAC,SAAS;AACvC,aAAO,CAAC,YAAY,SAAS,mBAAmB;AAC5C,cAAM,WAAW,QAAQ,IAAI,YAAU;AAAA,UACnC,QAAQ;AAAA,UACR,MAAM;AAAA,QACV,EAAE;AACF,eAAOA,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,4BAA4B,UAAU;AAAA,UACnD,MAAM,EAAE,gCAAgC,MAAM,SAAS;AAAA,QAC3D,GAAG,cAAc,GAAG,CAAC,UAAU,uBAAuB,YAAY,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAChH;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,cAAM,OAAO,CAAC,GAAG,uBAAuB;AACpC,iBAAOF,wBAAuB,WAAS;AACnC,mBAAO,UAAU,IAAI,EAAE,QAAQ,kBAAkB,EAAE,MAAM,CAAC,aAAa;AACnE,kBAAI,SAAS,WAAW,KAAK;AACzB,sBAAM;AAAA,cACV;AACA,qBAAO,MAAM;AAAA,YACjB,CAAC;AAAA,UACL,CAAC;AAAA,QACL;AACA,eAAOC,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,qBAAqB,MAAM;AAAA,QAC5C,GAAG,cAAc,GAAG,IAAI;AAAA,MAC5B;AAAA,IACJ;AAEA,IAAM,wBAAwB,CAAC,SAAS;AACpC,aAAO,CAAC,YAAY,SAAS,mBAAmB;AAC5C,cAAM,WAAW,QAAQ,IAAI,YAAU;AAAA,UACnC,QAAQ;AAAA,UACR,MAAM;AAAA,QACV,EAAE;AACF,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,4BAA4B,UAAU;AAAA,UACnD,MAAM,EAAE,gCAAgC,OAAO,SAAS;AAAA,QAC5D,GAAG,cAAc,GAAG,CAAC,UAAU,uBAAuB,YAAY,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAChH;AAAA,IACJ;AAEA,IAAM,0BAA0B,CAAC,SAAS;AACtC,aAAO,CAAC,YAAY,OAAO,mBAAmB;AAC1C,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,6BAA6B,UAAU;AAAA,UACpD,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,QACf,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,OAAO,mBAAmB;AAC9B,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,QACJ,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,wBAAwB,CAAC,SAAS;AACpC,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM;AAAA,QACV,GAAG,cAAc,GAAG,CAAC,UAAU,uBAAuB,YAAY,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAChH;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,cAAM,gBAAgB,OAAO,OAAO,CAAC,GAAG,cAAc;AACtD,cAAM,EAAE,iBAAiB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC3D,cAAM,OAAO,kBAAkB,EAAE,gBAAgB,IAAI,CAAC;AACtD,cAAM,eAAe;AAAA,UACjB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACJ;AAEA,cAAM,aAAa,CAAC,sBAAsB;AACtC,iBAAO,OAAO,KAAK,aAAa,EAC3B,OAAO,CAAC,iBAAiB,aAAa,QAAQ,YAAY,MAAM,EAAE,EAClE,MAAM,kBAAgB;AAEvB,gBAAI,MAAM,QAAQ,kBAAkB,YAAY,CAAC,KAC7C,MAAM,QAAQ,cAAc,YAAY,CAAC,GAAG;AAC5C,oBAAM,yBAAyB,kBAAkB,YAAY;AAC7D,qBAAQ,uBAAuB,WAAW,cAAc,YAAY,EAAE,UAClE,uBAAuB,MAAM,CAAC,OAAO,UAAU,UAAU,cAAc,YAAY,EAAE,KAAK,CAAC;AAAA,YACnG,OACK;AACD,qBAAO,kBAAkB,YAAY,MAAM,cAAc,YAAY;AAAA,YACzE;AAAA,UACJ,CAAC;AAAA,QACL;AACA,cAAM,OAAO,CAAC,GAAG,uBAAuBD,wBAAuB,WAAS;AACpE,iBAAO,UAAU,IAAI,EAAE,QAAQ,kBAAkB,EAAE,KAAK,uBAAqB;AACzE,mBAAO,WAAW,iBAAiB,IAAI,QAAQ,QAAQ,IAAI,MAAM;AAAA,UACrE,CAAC;AAAA,QACL,CAAC;AACD,eAAOC,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,aAAa,MAAM;AAAA,UAChC;AAAA,QACJ,GAAG,OAAO,GAAG,IAAI;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,eAAOF,wBAAuB,WAAS;AACnC,iBAAO,WAAW,IAAI,EAAE,QAAQ,cAAc,EAAE,KAAK,cAAY;AAC7D,mBAAO,SAAS,WAAW,cAAc,MAAM,IAAI;AAAA,UACvD,CAAC;AAAA,QACL,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,QAAQ,CAAC,SAAS;AACpB,aAAO,CAAC,UAAU,mBAAmB;AACjC,cAAM,OAAO,CAAC,UAAU,uBAAuB;AAC3C,iBAAO,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB;AAAA,QAC7D;AACA,eAAOC,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,sBAAsB,KAAK,SAAS;AAAA,UACjD,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,QACJ,GAAG,cAAc,GAAG,IAAI;AAAA,MAC5B;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,mBAAmB;AACvB,eAAO,uBAAuB;AAAA,UAC1B,YAAY,cAAY,SAAS,WAAW;AAAA,UAC5C,GAAG;AAAA,UACH,SAAS,CAAC,SAAS,KAAK,YAAY,KAAK;AAAA,YACrC,QAAQ,WAAW;AAAA,YACnB,MAAMA,QAAO,uBAAuB,KAAK,SAAS;AAAA,YAClD;AAAA,UACJ,GAAG,cAAc;AAAA,QACrB,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,mBAAmB;AACvB,cAAM,UAAU;AAAA,UACZ,aAAa;AAAA,UACb,GAAG;AAAA,QACP;AACA,eAAO,uBAAuB;AAAA,UAC1B,YAAY,cAAY,SAAS,KAAK,SAAS,QAAQ;AAAA,UACvD,GAAG;AAAA,UACH,QAAQ,MAAM;AACV,mBAAO,YAAY,IAAI,EAAE,IAAI,EAAE,GAAG,SAAS,GAAG,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa;AACrE,qBAAO;AAAA,gBACH,GAAG;AAAA,gBACH,MAAM,SAAS,KAAK,IAAI,UAAQ;AAE5B,yBAAO,KAAK;AACZ,yBAAO;AAAA,gBACX,CAAC;AAAA,cACL;AAAA,YACJ,CAAC;AAAA,UACL;AAAA,QACJ,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,iBAAiB,CAAC,SAAS;AAC7B,aAAO,CAAC,mBAAmB;AACvB,cAAM,UAAU;AAAA,UACZ,aAAa;AAAA,UACb,GAAG;AAAA,QACP;AACA,eAAO,uBAAuB;AAAA,UAC1B,YAAY,cAAY,SAAS,KAAK,SAAS,QAAQ;AAAA,UACvD,GAAG;AAAA,UACH,QAAQ,MAAM;AACV,mBAAO,eAAe,IAAI,EAAE,IAAI,EAAE,GAAG,SAAS,GAAG,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa;AACxE,qBAAO;AAAA,gBACH,GAAG;AAAA,gBACH,MAAM,SAAS,KAAK,IAAI,aAAW;AAE/B,yBAAO,QAAQ;AACf,yBAAO;AAAA,gBACX,CAAC;AAAA,cACL;AAAA,YACJ,CAAC;AAAA,UACL;AAAA,QACJ,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,QAAQ,QAAQ,mBAAmB;AACvC,cAAM,EAAE,WAAW,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AACrD,cAAM,WAAW;AAAA,UACb,SAAS,CAAC;AAAA,UACV,WAAW,CAAC;AAAA,QAChB;AACA,cAAM,eAAe,CAAC,YAAY,MAAM;AAEpC,gBAAM,cAAc,CAAC;AAErB,cAAI;AAEJ,eAAK,QAAQ,WAAW,QAAQ,OAAO,QAAQ,SAAS;AAEpD,wBAAY,KAAK,OAAO,KAAK,CAAC;AAC9B,gBAAI,YAAY,YAAY,aAAa,MAAO;AAC5C;AAAA,YACJ;AAAA,UACJ;AACA,cAAI,YAAY,WAAW,GAAG;AAC1B,mBAAO,QAAQ,QAAQ,QAAQ;AAAA,UACnC;AACA,iBAAO,MAAM,IAAI,EAAE,YAAY,IAAI,CAAAE,UAAQ;AACvC,mBAAO;AAAA,cACH;AAAA,cACA,MAAAA;AAAA,YACJ;AAAA,UACJ,CAAC,GAAG,OAAO,EAAE,KAAK,SAAO;AACrB,qBAAS,YAAY,SAAS,UAAU,OAAO,IAAI,SAAS;AAC5D,qBAAS,QAAQ,KAAK,IAAI,MAAM;AAChC;AACA,mBAAO,aAAa,KAAK;AAAA,UAC7B,CAAC;AAAA,QACL;AACA,eAAOH,uBAAsB,aAAa,GAAG,CAAC,sBAAsB,uBAAuB;AACvF,iBAAO,QAAQ,IAAI,qBAAqB,QAAQ,IAAI,YAAU;AAC1D,mBAAO,SAAS,IAAI,EAAE,QAAQ,kBAAkB;AAAA,UACpD,CAAC,CAAC;AAAA,QACN,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,mBAAmB;AACvB,eAAOA,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,sBAAsB,KAAK,SAAS;AAAA,QACrD,GAAG,cAAc,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAC7G;AAAA,IACJ;AAEA,IAAM,aAAa,CAAC,SAAS;AACzB,aAAO,CAAC,mBAAmB;AACvB,cAAM,EAAE,mBAAmB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC7D,cAAM,uBAAuB,2BAA2B,OAAO;AAC/D,YAAI,mBAAmB;AACnB,+BAAqB,gBAAgB,oBAAoB;AAAA,QAC7D;AACA,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,4BAA4B,KAAK,SAAS;AAAA,QAC3D,GAAG,oBAAoB,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MACnH;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,mBAAmB;AACvB,cAAM,EAAE,mBAAmB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC7D,cAAM,uBAAuB,2BAA2B,OAAO;AAC/D,YAAI,mBAAmB;AACnB,+BAAqB,gBAAgB,oBAAoB;AAAA,QAC7D;AACA,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,+BAA+B,KAAK,SAAS;AAAA,QAC9D,GAAG,oBAAoB,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MACnH;AAAA,IACJ;AAEA,IAAM,WAAW,CAAC,SAAS;AACvB,aAAO,CAAC,SAAS,mBAAmB;AAChC,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,8BAA8B,KAAK,SAAS;AAAA,UACzD,MAAM;AAAA,QACV,GAAG,cAAc,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAC7G;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,mBAAmB;AACvB,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,gBAAgB,KAAK,SAAS;AAAA,QAC/C,GAAG,cAAc,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAC7G;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAOD,uBAAsB,cAAc,IAAI,EAAE,CAAC,QAAQ,GAAG,cAAc,EAAE,KAAK,cAAY;AAC1F,iBAAO,EAAE,QAAQ,SAAS,QAAQ,CAAC,EAAE;AAAA,QACzC,CAAC,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAC7F;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,WAAW,mBAAmB;AAClC,cAAM,UAAU,UAAU,IAAI,cAAY;AACtC,iBAAO,EAAE,SAAS;AAAA,QACtB,CAAC;AACD,eAAO,aAAa,IAAI,EAAE,SAAS,gBAAgB,cAAc,cAAc;AAAA,MACnF;AAAA,IACJ;AAEA,IAAM,aAAa,CAAC,SAAS;AACzB,aAAO,CAAC,UAAU,mBAAmB;AACjC,cAAM,EAAE,mBAAmB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC7D,cAAM,uBAAuB,2BAA2B,OAAO;AAC/D,YAAI,mBAAmB;AACnB,+BAAqB,gBAAgB,oBAAoB;AAAA,QAC7D;AACA,eAAOA,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,yBAAyB,KAAK,WAAW,QAAQ;AAAA,QAClE,GAAG,oBAAoB,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MACnH;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,UAAU,mBAAmB;AACjC,cAAM,EAAE,mBAAmB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC7D,cAAM,uBAAuB,2BAA2B,OAAO;AAC/D,YAAI,mBAAmB;AACnB,+BAAqB,gBAAgB,oBAAoB;AAAA,QAC7D;AACA,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,4BAA4B,KAAK,WAAW,QAAQ;AAAA,QACrE,GAAG,oBAAoB,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MACnH;AAAA,IACJ;AAEA,IAAM,SAAS,CAAC,SAAS;AACrB,aAAO,CAAC,mBAAmB;AACvB,eAAO,YAAY,IAAI,EAAE,cAAc,EAClC,KAAK,MAAM,IAAI,EACf,MAAM,WAAS;AAChB,cAAI,MAAM,WAAW,KAAK;AACtB,kBAAM;AAAA,UACV;AACA,iBAAO;AAAA,QACX,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,OAAO,gBAAgB,mBAAmB;AAC9C,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,2BAA2B,KAAK,SAAS;AAAA,UACtD,MAAM;AAAA,YACF;AAAA,YACA;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,QACf,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,aAAa,CAAC,SAAS;AACzB,aAAO,CAAC,UAAU,mBAAmB;AACjC,cAAM,EAAE,OAAO,UAAU,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAE3D,YAAI,OAAO;AACX,cAAM,cAAc,MAAM;AACtB,iBAAO,OAAO,IAAI,EAAE,SAAS,IAAI,EAAE,GAAG,SAAS,KAAK,CAAC,EAAE,KAAK,YAAU;AAElE,uBAAW,CAAC,UAAU,GAAG,KAAK,OAAO,QAAQ,OAAO,IAAI,GAAG;AAEvD,kBAAI,SAAS,GAAG,GAAG;AACf,uBAAO;AAAA,kBACH,QAAQ;AAAA,kBACR,UAAU,SAAS,UAAU,EAAE;AAAA,kBAC/B;AAAA,gBACJ;AAAA,cACJ;AAAA,YACJ;AACA;AAEA,gBAAI,aAAa,SAAS,QAAQ,OAAO,SAAS;AAC9C,oBAAM,0BAA0B;AAAA,YACpC;AACA,mBAAO,YAAY;AAAA,UACvB,CAAC;AAAA,QACL;AACA,eAAO,YAAY;AAAA,MACvB;AAAA,IACJ;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,mBAAmB,KAAK,WAAW,QAAQ;AAAA,QAC5D,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,oBAAoB,MAAM;AAC5B,aAAO,CAAC,gBAAgB,aAAa;AAEjC,mBAAW,CAAC,UAAU,GAAG,KAAK,OAAO,QAAQ,eAAe,IAAI,GAAG;AAC/D,cAAI,IAAI,aAAa,UAAU;AAC3B,mBAAO,SAAS,UAAU,EAAE;AAAA,UAChC;AAAA,QACJ;AACA,eAAO;AAAA,MACX;AAAA,IACJ;AAEA,IAAM,aAAa,CAAC,SAAS;AACzB,aAAO,CAAC,WAAW,mBAAmB;AAClC,cAAM,EAAE,sBAAsB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAChE,cAAM,WAAW,UAAU,IAAI,cAAY;AACvC,iBAAO;AAAA,YACH,WAAW,KAAK;AAAA,YAChB;AAAA,YACA,GAAI,uBAAuB,EAAE,qBAAqB,IAAI,CAAC;AAAA,UAC3D;AAAA,QACJ,CAAC;AACD,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,QACJ,GAAG,OAAO;AAAA,MACd;AAAA,IACJ;AAEA,IAAM,UAAU,CAAC,SAAS;AACtB,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,yBAAyB,KAAK,WAAW,QAAQ;AAAA,QAClE,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,yBAAyB,KAAK,SAAS;AAAA,UACpD,MAAM;AAAA,YACF,YAAY;AAAA,UAChB;AAAA,QACJ,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,aAAa,CAAC,SAAS;AACzB,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,4BAA4B,KAAK,WAAW,QAAQ;AAAA,QACrE,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,UAAU,CAAC,SAAS;AACtB,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,wBAAwB,KAAK,WAAW,OAAO,SAAS,CAAC;AAAA,QAC1E,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,sBAAsB,CAAC,SAAS;AAClC,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,eAAOD,uBAAsB,qBAAqB,IAAI,EAAE,CAAC,MAAM,GAAG,cAAc,EAAE,KAAK,cAAY;AAC/F,iBAAO;AAAA,YACH,UAAU,SAAS,UAAU,CAAC;AAAA,YAC9B,QAAQ,SAAS,QAAQ,CAAC;AAAA,UAC9B;AAAA,QACJ,CAAC,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAC7F;AAAA,IACJ;AAEA,IAAM,uBAAuB,CAAC,SAAS;AACnC,aAAO,CAAC,SAAS,mBAAmB;AAChC,cAAM,EAAE,mBAAmB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC7D,cAAM,SAAS,oBACT,gBAAgB,sBAChB,gBAAgB;AACtB,eAAO,aAAa,IAAI,EAAE,SAAS,QAAQ,OAAO;AAAA,MACtD;AAAA,IACJ;AAEA,IAAM,oBAAoB,CAAC,SAAS;AAChC,aAAO,CAAC,SAAS,mBAAmB;AAChC,cAAM,EAAE,MAAM,gCAAgC,WAAW,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC3F,cAAM,YAAY,CAAC,MAAM,IAAI,MAAM,4BAA4B;AAC3D,iBAAOA,uBAAsB,KAAK,YAAY,MAAM;AAAA,YAChD,QAAQ,WAAW;AAAA,YACnB,MAAMC,QAAO,0BAA0B,IAAI;AAAA,YAC3C,MAAM;AAAA,cACF,WAAW;AAAA,cACX,aAAa;AAAA,YACjB;AAAA,UACJ,GAAG,uBAAuB,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,QACtH;AACA,cAAM,eAAe,KAAK,OAAO,EAC5B,SAAS,EAAE,EACX,UAAU,CAAC;AAChB,cAAM,qBAAqB,GAAG,KAAK,SAAS,QAAQ,YAAY;AAChE,cAAM,yBAAyB,YAAY;AAAA,UACvC,OAAO,KAAK;AAAA,UACZ,aAAa,KAAK;AAAA,UAClB,WAAW;AAAA,QACf,CAAC;AAGD,YAAI,YAAY,CAAC;AACjB,cAAM,sBAAsB,UAAU,KAAK,WAAW,oBAAoB,QAAQ;AAAA,UAC9E,GAAG;AAAA,UACH,OAAO,CAAC,YAAY,YAAY,OAAO;AAAA,QAC3C,CAAC;AAED,kBAAU,KAAK,mBAAmB;AAClC,cAAM,UAAU,OACV,oBAAoB,KAAK,OAAO,IAChC,qBACD,KAAK,MAAM;AACZ,gBAAM,6BAA6B,uBAAuB,SAAS;AAAA,YAC/D,GAAG;AAAA,YACH;AAAA,YACA;AAAA,UACJ,CAAC;AAED,oBAAU,KAAK,0BAA0B;AACzC,iBAAO,OAAO,2BAA2B,KAAK,OAAO,IAAI;AAAA,QAC7D,CAAC,EACI,KAAK,MAAM;AACZ,gBAAM,sBAAsB,UAAU,oBAAoB,KAAK,WAAW,QAAQ,OAAO;AAEzF,oBAAU,KAAK,mBAAmB;AAClC,iBAAO,OAAO,oBAAoB,KAAK,OAAO,IAAI;AAAA,QACtD,CAAC,EACI,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,EACjC,KAAK,CAAC,CAAC,cAAc,qBAAqB,YAAY,MAAM;AAC7D,iBAAO;AAAA,YACH,WAAW,oBAAoB;AAAA,YAC/B,SAAS,CAAC,aAAa,QAAQ,GAAG,oBAAoB,SAAS,aAAa,MAAM;AAAA,UACtF;AAAA,QACJ,CAAC,EACI,MAAM,WAAS;AAGhB,iBAAO,YAAY;AAAA,YACf,OAAO,KAAK;AAAA,YACZ,aAAa,KAAK;AAAA,YAClB,WAAW;AAAA,UACf,CAAC,EAAE,EACE,MAAM,MAAM;AAAA,UAEjB,CAAC,EACI,KAAK,MAAM;AACZ,kBAAM;AAAA,UACV,CAAC;AAAA,QACL,CAAC;AACD,eAAOD,uBAAsB,QAAQ,CAAC,GAAG,uBAAuB;AAC5D,iBAAO,QAAQ,IAAI,UAAU,IAAI,cAAY,SAAS,KAAK,kBAAkB,CAAC,CAAC;AAAA,QACnF,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,kBAAkB,CAAC,SAAS;AAC9B,aAAO,CAAC,OAAO,mBAAmB;AAC9B,eAAO,UAAU,IAAI,EAAE,OAAO;AAAA,UAC1B,GAAG;AAAA,UACH,oBAAoB;AAAA,QACxB,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,qBAAqB,CAAC,SAAS;AACjC,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAO,aAAa,IAAI,EAAE,UAAU;AAAA,UAChC,GAAG;AAAA,UACH,uBAAuB;AAAA,QAC3B,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,aAAa,CAAC,SAAS;AACzB,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,eAAOA,uBAAsB,YAAY,IAAI,EAAE,CAAC,MAAM,GAAG,cAAc,EAAE,KAAK,cAAY;AACtF,iBAAO;AAAA,YACH,UAAU,SAAS,UAAU,CAAC;AAAA,YAC9B,QAAQ,SAAS,QAAQ,CAAC;AAAA,UAC9B;AAAA,QACJ,CAAC,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAC7F;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,SAAS,mBAAmB;AAChC,cAAM,EAAE,gCAAgC,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC1E,cAAM,SAAS,iCACT,gBAAgB,YAChB,gBAAgB;AACtB,YAAI,WAAW,gBAAgB,cAAc;AAEzC,qBAAW,UAAU,SAAS;AAC1B,gBAAI,OAAO,aAAa,QAAW;AAC/B,qBAAOA,uBAAsB,QAAQ,OAAO,2BAA2B,CAAC,CAAC;AAAA,YAC7E;AAAA,UACJ;AAAA,QACJ;AACA,eAAO,aAAa,IAAI,EAAE,SAAS,QAAQ,OAAO;AAAA,MACtD;AAAA,IACJ;AAEA,IAAM,WAAW,CAAC,SAAS;AACvB,aAAO,CAAC,MAAM,mBAAmB;AAC7B,eAAO,UAAU,IAAI,EAAE,CAAC,IAAI,GAAG,cAAc;AAAA,MACjD;AAAA,IACJ;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,OAAO,mBAAmB;AAC9B,cAAM,EAAE,mBAAmB,oBAAoB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AACjF,cAAM,uBAAuB,2BAA2B,OAAO;AAC/D,YAAI,mBAAmB;AACnB,+BAAqB,gBAAgB,oBAAoB;AAAA,QAC7D;AACA,YAAI,oBAAoB;AACpB,+BAAqB,gBAAgB,qBAAqB;AAAA,QAC9D;AACA,eAAOA,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,4BAA4B,KAAK,SAAS;AAAA,UACvD,MAAM;AAAA,QACV,GAAG,oBAAoB,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MACnH;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,SAAS,mBAAmB;AAChC,eAAO,aAAa,IAAI,EAAE,CAAC,OAAO,GAAG,cAAc;AAAA,MACvD;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,UAAU,mBAAmB;AACjC,cAAM,EAAE,mBAAmB,uBAAuB,yBAAyB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC7G,cAAM,uBAAuB,2BAA2B,OAAO;AAC/D,YAAI,mBAAmB;AACnB,+BAAqB,gBAAgB,oBAAoB;AAAA,QAC7D;AACA,YAAI,2BAA2B,uBAAuB;AAClD,+BAAqB,gBAAgB,0BAA0B;AAAA,QACnE;AACA,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,+BAA+B,KAAK,SAAS;AAAA,UAC1D,MAAM;AAAA,QACV,GAAG,oBAAoB,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MACnH;AAAA,IACJ;AAEA,IAAM,SAAS,CAAC,SAAS;AACrB,aAAO,CAAC,OAAO,mBAAmB;AAC9B,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,sBAAsB,KAAK,SAAS;AAAA,UACjD,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,QACf,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,uBAAuB,CAAC,SAAS;AACnC,aAAO,CAAC,WAAW,YAAY,mBAAmB;AAC9C,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,gCAAgC,KAAK,WAAW,SAAS;AAAA,UACtE,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,QACf,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,OAAO,mBAAmB;AAC9B,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,6BAA6B,KAAK,SAAS;AAAA,UACxD,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,QACJ,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,iBAAiB,CAAC,SAAS;AAC7B,aAAO,CAAC,OAAO,mBAAmB;AAC9B,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,gCAAgC,KAAK,SAAS;AAAA,UAC3D,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,QACJ,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,UAAU,mBAAmB;AACjC,cAAM,EAAE,mBAAmB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC7D,cAAM,uBAAuB,2BAA2B,OAAO;AAC/D,YAAI,mBAAmB;AACnB,+BAAqB,gBAAgB,oBAAoB;AAAA,QAC7D;AACA,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,yBAAyB,KAAK,SAAS;AAAA,UACpD,MAAM;AAAA,QACV,GAAG,oBAAoB,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MACnH;AAAA,IACJ;AAEA,IAAM,WAAW,CAAC,SAAS;AACvB,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,eAAOF,wBAAuB,WAAS;AACnC,iBAAO,QAAQ,IAAI,EAAE,QAAQ,cAAc,EAAE,KAAK,cAAY;AAC1D,mBAAO,SAAS,WAAW,cAAc,MAAM,IAAI;AAAA,UACvD,CAAC;AAAA,QACL,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,gBAAgB;AAAA,MAClB,WAAW;AAAA,MACX,WAAW;AAAA,MACX,SAAS;AAAA,MACT,aAAa;AAAA,MACb,cAAc;AAAA,MACd,cAAc;AAAA,MACd,WAAW;AAAA,MACX,aAAa;AAAA,MACb,MAAM;AAAA,MACN,iBAAiB;AAAA,MACjB,gBAAgB;AAAA,MAChB,QAAQ;AAAA,MACR,4BAA4B;AAAA,MAC5B,UAAU;AAAA,MACV,OAAO;AAAA,IACX;AAEA,IAAM,kBAAkB;AAAA,MACpB,WAAW;AAAA,MACX,cAAc;AAAA,MACd,qBAAqB;AAAA,MACrB,6BAA6B;AAAA,MAC7B,cAAc;AAAA,MACd,aAAa;AAAA,MACb,YAAY;AAAA,IAChB;AAEA,IAAM,YAAY;AAAA,MACd,UAAU;AAAA,MACV,UAAU;AAAA,MACV,OAAO;AAAA,IACX;AAEA,IAAM,eAAe;AAAA,MACjB,MAAM;AAAA,MACN,qBAAqB;AAAA,IACzB;AAEA,IAAM,cAAc;AAAA,MAChB,SAAS;AAAA,MACT,eAAe;AAAA,MACf,gBAAgB;AAAA,MAChB,gBAAgB;AAAA,MAChB,aAAa;AAAA,IACjB;AAAA;AAAA;;;ACnxCA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAS,mBAAmB;AACxB,SAAO;AAAA,IACH,MAAM,UAAU,OAAO;AACnB,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAAA,IACA,KAAK,UAAU,OAAO;AAClB,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAAA,IACA,MAAM,UAAU,OAAO;AACnB,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAAA,EACJ;AACJ;AAZA,IAcM;AAdN;AAAA;AAAA;AAcA,IAAM,eAAe;AAAA,MACjB,OAAO;AAAA,MACP,MAAM;AAAA,MACN,OAAO;AAAA,IACX;AAAA;AAAA;;;AClBA,IAAAK,6BAAA;AAAA,SAAAA,4BAAA;AAAA,kBAAAC;AAAA,EAAA,kBAAAC;AAAA,EAAA,kBAAAC;AAAA,EAAA,8BAAAC;AAAA,EAAA,6BAAAC;AAAA,EAAA,eAAAC;AAAA,EAAA,cAAAC;AAAA,EAAA,eAAAC;AAAA,EAAA,eAAAC;AAAA;AAAA,SAASN,YAAW,UAAU,OAAO,QAAQ;AACzC,QAAM,cAAc;AAAA,IAChB,qBAAqB;AAAA,IACrB,4BAA4B;AAAA,EAChC;AACA,SAAO;AAAA,IACH,UAAU;AACN,aAAO,aAAaF,UAAS,gBAAgB,cAAc,CAAC;AAAA,IAChE;AAAA,IACA,kBAAkB;AACd,aAAO,aAAaA,UAAS,wBAAwB,cAAc,CAAC;AAAA,IACxE;AAAA,EACJ;AACJ;AAEA,SAASG,wBAAuB,UAAU;AACtC,MAAI,eAAe;AACnB,QAAM,QAAQ,MAAM;AAChB;AACA,WAAO,IAAI,QAAQ,CAAC,YAAY;AAC5B,iBAAW,MAAM;AACb,gBAAQ,SAAS,KAAK,CAAC;AAAA,MAC3B,GAAG,KAAK,IAAI,MAAM,cAAc,GAAI,CAAC;AAAA,IACzC,CAAC;AAAA,EACL;AACA,SAAO,SAAS,KAAK;AACzB;AAEA,SAASC,uBAAsB,SAAS,OAAO,CAAC,WAAW,oBAAoB;AAC3E,SAAO,QAAQ,QAAQ;AAC3B,GAAG;AAEC,SAAO,OAAO,OAAO,SAAS;AAAA,IAC1B,KAAK,gBAAgB;AACjB,aAAOA,uBAAsB,QACxB,KAAK,cAAY,QAAQ,IAAI,CAAC,KAAK,UAAU,cAAc,GAAG,QAAQ,CAAC,CAAC,EACxE,KAAK,oBAAkB,eAAe,CAAC,CAAC,CAAC;AAAA,IAClD;AAAA,EACJ,CAAC;AACL;AAGA,SAASG,SAAQ,OAAO;AACpB,MAAI,IAAI,MAAM,SAAS;AAEvB,OAAK,GAAG,IAAI,GAAG,KAAK;AAChB,UAAM,IAAI,KAAK,MAAM,KAAK,OAAO,KAAK,IAAI,EAAE;AAC5C,UAAM,IAAI,MAAM,CAAC;AACjB,UAAM,CAAC,IAAI,MAAM,CAAC;AAClB,UAAM,CAAC,IAAI;AAAA,EACf;AACA,SAAO;AACX;AACA,SAASN,YAAW,MAAM,SAAS;AAC/B,MAAI,CAAC,SAAS;AACV,WAAO;AAAA,EACX;AACA,SAAO,KAAK,OAAO,EAAE,QAAQ,SAAO;AAEhC,SAAK,GAAG,IAAI,QAAQ,GAAG,EAAE,IAAI;AAAA,EACjC,CAAC;AACD,SAAO;AACX;AACA,SAASK,QAAO,WAAW,MAAM;AAE7B,MAAI,IAAI;AACR,SAAO,OAAO,QAAQ,OAAO,MAAM,mBAAmB,KAAK,GAAG,CAAC,CAAC;AACpE;AAnEA,IAqEME,UAEAH,UAMAL;AA7EN,IAAAS,0BAAA;AAAA;AAAA;AAqEA,IAAMD,WAAU;AAEhB,IAAMH,WAAU,CAAC,SAAS;AACtB,aAAO,MAAM;AACT,eAAO,KAAK,YAAY,UAAU,QAAQ;AAAA,MAC9C;AAAA,IACJ;AAEA,IAAML,YAAW;AAAA;AAAA;AAAA;AAAA,MAIb,uBAAuB;AAAA;AAAA;AAAA;AAAA,MAIvB,eAAe;AAAA,IACnB;AAAA;AAAA;;;ACtFA;AAAA;AAAA;AAAA;AAAA,YAAY,UAAU;AACtB,SAAS,aAAa;AACtB,YAAY,WAAW;AACvB,SAAS,SAAS,eAAe;AACjC,SAAS,SAAAU,cAAa;AACtB,SAAS,cAAc,YAAY;AAMnC,SAAS,wBAAwB,EAAE,OAAO,iBAAiB,WAAW,eAAe,YAAY,gBAAgB,mBAAmB,CAAC,EAAG,IAAI,CAAC,GAAG;AAC5I,QAAM,YAAY,iBAAiB,mBAAmB;AACtD,QAAM,aAAa,kBAAkB,mBAAmB;AACxD,SAAO;AAAA,IACH,KAAK,SAAS;AACV,aAAO,IAAI,QAAQ,aAAW;AAC1B,cAAM,MAAMA,OAAM,QAAQ,GAAG;AAC7B,cAAM,OAAO,IAAI,UAAU,OAAO,IAAI,WAAW,GAAG,IAAI,QAAQ,IAAI,IAAI,KAAK;AAC7E,cAAM,wBAAwB;AAC9B,cAAM,iBAAiB,QAAQ,QAAQ,iBAAiB;AACxD,cAAM,iBAAiB,QAAQ,SAAS,UACpC,OAAO,WAAW,QAAQ,IAAI,KAAK,yBACnC,mBAAmB,UACnB,eAAe,YAAY,EAAE,SAAS,MAAM;AAChD,cAAM,UAAU;AAAA,UACZ,GAAG;AAAA,UACH,OAAO,IAAI,aAAa,WAAW,aAAa;AAAA,UAChD,UAAU,IAAI;AAAA,UACd;AAAA,UACA,QAAQ,QAAQ;AAAA,UAChB,SAAS;AAAA,YACL,GAAI,oBAAoB,iBAAiB,UAAU,iBAAiB,UAAU,CAAC;AAAA,YAC/E,GAAG,QAAQ;AAAA,YACX,GAAI,iBAAiB,EAAE,oBAAoB,OAAO,IAAI,CAAC;AAAA,UAC3D;AAAA,UACA,GAAI,IAAI,SAAS,SAAY,EAAE,MAAM,IAAI,QAAQ,GAAG,IAAI,CAAC;AAAA,QAC7D;AAEA,YAAI;AAEJ,YAAI;AAEJ,YAAI;AACJ,cAAM,UAAU,MAAM;AAClB,uBAAa,cAAc;AAC3B,uBAAa,eAAe;AAC5B,cAAI,QAAQ;AACR,mBAAO,QAAQ;AAAA,UACnB;AAAA,QACJ;AACA,cAAM,UAAU,CAAC,UAAU;AACvB,kBAAQ;AACR,kBAAQ,EAAE,QAAQ,GAAG,SAAS,MAAM,SAAS,YAAY,MAAM,CAAC;AAAA,QACpE;AACA,cAAM,OAAO,IAAI,aAAa,WAAW,QAAQ,MAAM,QAAQ,SAAS,cAAY;AAChF,gBAAM,kBAAkB,SAAS,QAAQ,kBAAkB;AAC3D,gBAAM,iBAAiB,oBAAoB,UAAa,gBAAgB,YAAY,EAAE,SAAS,MAAM;AAErG,cAAI,iBAAiB,CAAC;AACtB,gBAAM,SAAS,CAAC,UAAU;AACtB,6BAAiB,eAAe,OAAO,KAAK;AAAA,UAChD;AACA,gBAAM,QAAQ,MAAM;AAChB,oBAAQ;AACR,oBAAQ;AAAA,cACJ,QAAQ,SAAS,cAAc;AAAA,cAC/B,SAAS,OAAO,OAAO,cAAc,EAAE,SAAS;AAAA,cAChD,YAAY;AAAA,YAChB,CAAC;AAAA,UACL;AACA,mBAAS,GAAG,SAAS,OAAO;AAC5B,cAAI,gBAAgB;AAChB,qBAAS,aAAa;AACtB,qBAAS,KAAK,MAAM;AACpB,mBAAO,GAAG,QAAQ,MAAM;AACxB,mBAAO,GAAG,OAAO,KAAK;AACtB,mBAAO,GAAG,SAAS,OAAO;AAAA,UAC9B,OACK;AACD,qBAAS,GAAG,QAAQ,MAAM;AAC1B,qBAAS,GAAG,OAAO,KAAK;AAAA,UAC5B;AAAA,QACJ,CAAC;AACD,cAAM,gBAAgB,CAAC,SAAS,YAAY;AACxC,iBAAO,WAAW,MAAM;AACpB,gBAAI,MAAM;AACV,gBAAI,QAAQ;AACR,qBAAO,QAAQ;AAAA,YACnB;AACA,oBAAQ;AAAA,cACJ,QAAQ;AAAA,cACR;AAAA,cACA,YAAY;AAAA,YAChB,CAAC;AAAA,UACL,GAAG,UAAU,GAAI;AAAA,QACrB;AACA,yBAAiB,cAAc,QAAQ,gBAAgB,oBAAoB;AAC3E,YAAI,GAAG,SAAS,OAAO;AACvB,YAAI,KAAK,YAAY,MAAM;AACvB,uBAAa,cAAc;AAC3B,4BAAkB,cAAc,QAAQ,iBAAiB,gBAAgB;AAAA,QAC7E,CAAC;AACD,YAAI,QAAQ,SAAS,UAAa,gBAAgB;AAC9C,eAAK,QAAQ,MAAM,CAAC,OAAO,mBAAmB;AAC1C,gBAAI,OAAO;AACP,sBAAQ,KAAK;AACb;AAAA,YACJ;AACA,gBAAI,UAAU,kBAAkB,eAAe,UAAU;AACzD,gBAAI,MAAM,cAAc;AACxB,gBAAI,IAAI;AAAA,UACZ,CAAC;AAAA,QACL,OACK;AACD,cAAI,QAAQ,SAAS,QAAW;AAC5B,gBAAI,UAAU,kBAAkB,OAAO,WAAW,QAAQ,IAAI,CAAC;AAC/D,gBAAI,MAAM,QAAQ,IAAI;AAAA,UAC1B;AACA,cAAI,IAAI;AAAA,QACZ;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,IACA,UAAU;AACN,gBAAU,QAAQ;AAClB,iBAAW,QAAQ;AACnB,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAAA,EACJ;AACJ;AAjIA,IAQM,cACA,kBACA;AAVN;AAAA;AAAA;AAQA,IAAM,eAAe,EAAE,WAAW,KAAK;AACvC,IAAM,mBAAmB,IAAI,MAAM,YAAY;AAC/C,IAAM,oBAAoB,IAAI,QAAQ,YAAY;AAAA;AAAA;;;ACVlD;AAAA;AAAA;AAEA,QAAI,cAAc;AAClB,QAAI,gBAAgB;AACpB,QAAI,eAAe;AACnB,QAAI,eAAe;AACnB,QAAI,oBAAoB;AACxB,QAAI,cAAc;AAClB,QAAI,kBAAkB;AAEtB,QAAM,wBAAwB,aAAW;AACrC,YAAM,QAAQ,QAAQ;AACtB,YAAM,OAAO,aAAa,WAAW,QAAQ,aAAa,SAAY,QAAQ,WAAW,aAAa,SAAS,eAAe,OAAO,QAAQ,MAAM;AACnJ,YAAM,gBAAgB,YAAY,kBAAkB;AAAA,QAChD,OAAO;AAAA,UACH,EAAE,KAAK,GAAG,KAAK,oBAAoB,QAAQ,YAAY,SAAS,KAAK;AAAA,UACrE,EAAE,KAAK,GAAG,KAAK,gBAAgB,QAAQ,YAAY,SAAS,MAAM;AAAA,QACtE,EAAE,OAAO,aAAa,QAAQ;AAAA,UAC1B,EAAE,KAAK,GAAG,KAAK,oBAAoB;AAAA,UACnC,EAAE,KAAK,GAAG,KAAK,oBAAoB;AAAA,UACnC,EAAE,KAAK,GAAG,KAAK,oBAAoB;AAAA,QACvC,CAAC,CAAC;AAAA,QACF,GAAG;AAAA,QACH,SAAS;AAAA,UACL,GAAG,KAAK,QAAQ;AAAA,UAChB,GAAG,EAAE,gBAAgB,oCAAoC;AAAA,UACzD,GAAG,QAAQ;AAAA,QACf;AAAA,QACA,iBAAiB;AAAA,UACb,GAAG,KAAK,gBAAgB;AAAA,UACxB,GAAG,QAAQ;AAAA,QACf;AAAA,MACJ,CAAC;AACD,YAAM,OAAO;AAAA,QACT,aAAa;AAAA,QACb;AAAA,QACA,gBAAgB,SAASC,UAAS;AAC9B,wBAAc,UAAU,IAAI,EAAE,SAAS,SAAAA,SAAQ,CAAC;AAAA,QACpD;AAAA,QACA,aAAa;AACT,iBAAO,QAAQ,IAAI;AAAA,YACf,cAAc,cAAc,MAAM;AAAA,YAClC,cAAc,eAAe,MAAM;AAAA,UACvC,CAAC,EAAE,KAAK,MAAM,MAAS;AAAA,QAC3B;AAAA,MACJ;AACA,aAAO,aAAa,WAAW,MAAM,QAAQ,OAAO;AAAA,IACxD;AAEA,QAAM,qBAAqB,UAAQ;AAC/B,aAAO,CAAC,SAAS,mBAAmB;AAChC,cAAM,WAAW,QAAQ,IAAI,YAAU;AAAA,UACnC,GAAG;AAAA;AAAA;AAAA;AAAA,UAIH,WAAW,MAAM,aAAa;AAAA,QAClC,EAAE;AACF,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,gBAAgB,WAAW;AAAA,UACnC,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,QACf,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,QAAM,8BAA8B,UAAQ;AACxC,aAAO,CAAC,SAAS,mBAAmB;AAChC,eAAO,mBAAmB,IAAI,EAAE,QAAQ,IAAI,YAAU;AAAA,UAClD,GAAG;AAAA,UACH,oBAAoB,CAAC;AAAA,UACrB,OAAO;AAAA,QACX,EAAE,GAAG,cAAc;AAAA,MACvB;AAAA,IACJ;AAEA,QAAM,qBAAqB,UAAQ;AAC/B,aAAO,CAAC,SAAS,mBAAmB;AAChC,eAAO,mBAAmB,IAAI,EAAE,QAAQ,IAAI,YAAU;AAAA,UAClD,GAAG;AAAA,UACH,OAAO;AAAA,QACX,EAAE,GAAG,cAAc;AAAA,MACvB;AAAA,IACJ;AAEA,QAAM,oBAAoB,UAAQ;AAC9B,aAAO,CAAC,SAAS,mBAAmB;AAChC,cAAM,WAAW,QAAQ,IAAI,YAAU;AAAA,UACnC,GAAG;AAAA,UACH,OAAO;AAAA;AAAA;AAAA;AAAA,UAIP,WAAW,MAAM,aAAa;AAAA,QAClC,EAAE;AACF,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,gBAAgB,WAAW;AAAA,UACnC,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,QACf,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,QAAM,mBAAmB,UAAQ;AAC7B,aAAO,CAAC,SAAS,mBAAmB;AAChC,cAAM,WAAW,QAAQ,IAAI,YAAU;AAAA,UACnC,GAAG;AAAA,UACH,OAAO;AAAA;AAAA;AAAA;AAAA,UAIP,WAAW,MAAM,aAAa;AAAA,QAClC,EAAE;AACF,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,gBAAgB,WAAW;AAAA,UACnC,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,QACf,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,QAAM,oBAAoB,UAAQ;AAC9B,aAAO,CAAC,SAAS,mBAAmB;AAChC,eAAO,mBAAmB,IAAI,EAAE,QAAQ,IAAI,YAAU;AAAA,UAClD,GAAG;AAAA,UACH,OAAO;AAAA,QACX,EAAE,GAAG,cAAc;AAAA,MACvB;AAAA,IACJ;AAEA,QAAM,uBAAuB,UAAQ;AACjC,aAAO,CAAC,SAAS,mBAAmB;AAChC,cAAM,WAAW,QAAQ,IAAI,YAAU;AAAA,UACnC,GAAG;AAAA,UACH,OAAO;AAAA,UACP,WAAW,MAAM,aAAa;AAAA,QAClC,EAAE;AACF,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,gBAAgB,WAAW;AAAA,UACnC,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,QACf,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,aAAS,UAAU,OAAO,QAAQ,SAAS;AACvC,YAAM,gBAAgB;AAAA,QAClB;AAAA,QACA;AAAA,QACA,UAAU;AAAA,UACN,SAAS;AAAA,UACT,MAAM;AAAA,UACN,OAAO;AAAA,QACX;AAAA,QACA,WAAW,kBAAkB,wBAAwB;AAAA,QACrD,QAAQ,aAAa,iBAAiB;AAAA,QACtC,gBAAgB,YAAY,gBAAgB;AAAA,QAC5C,eAAe,YAAY,gBAAgB;AAAA,QAC3C,YAAY,cAAc,oBAAoB;AAAA,QAC9C,WAAW,YAAY,gBAAgB,aAAa,OAAO,EACtD,IAAI,EAAE,SAAS,aAAa,SAAS,aAAa,QAAQ,CAAC,EAC3D,IAAI,EAAE,SAAS,WAAW,SAAS,QAAQ,SAAS,KAAK,CAAC;AAAA,MACnE;AACA,aAAO,sBAAsB;AAAA,QACzB,GAAG;AAAA,QACH,GAAG;AAAA,QACH,SAAS;AAAA,UACL,SAAS,aAAa;AAAA,UACtB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACJ;AAAA,MACJ,CAAC;AAAA,IACL;AAEA,cAAU,UAAU,aAAa;AACjC,cAAU,8BAA8B;AACxC,cAAU,qBAAqB;AAC/B,cAAU,qBAAqB;AAC/B,cAAU,oBAAoB;AAC9B,cAAU,mBAAmB;AAC7B,cAAU,oBAAoB;AAC9B,cAAU,uBAAuB;AAEjC,WAAO,UAAU;AAAA;AAAA;;;ACxMjB;AAAA;AAAA;AACA,QAAM,YAAY;AAOlB,WAAO,UAAU;AAMjB,WAAO,QAAQ,UAAU;AAAA;AAAA;;;ACdzB,IAAAC,mCAAA;AAAA,SAAAA,kCAAA;AAAA,iCAAAC;AAAA;AAAA,YAAYC,WAAU;AACtB,SAAS,SAAAC,cAAa;AACtB,YAAYC,YAAW;AACvB,SAAS,SAASC,gBAAe;AACjC,SAAS,SAAAC,cAAa;AACtB,SAAS,gBAAAC,eAAc,QAAAC,aAAY;AAMnC,SAASP,yBAAwB,EAAE,OAAO,iBAAiB,WAAW,eAAe,YAAY,gBAAgB,mBAAmB,CAAC,EAAG,IAAI,CAAC,GAAG;AAC5I,QAAM,YAAY,iBAAiB,mBAAmBQ;AACtD,QAAM,aAAa,kBAAkB,mBAAmBC;AACxD,SAAO;AAAA,IACH,KAAK,SAAS;AACV,aAAO,IAAI,QAAQ,aAAW;AAC1B,cAAM,MAAMJ,OAAM,QAAQ,GAAG;AAC7B,cAAM,OAAO,IAAI,UAAU,OAAO,IAAI,WAAW,GAAG,IAAI,QAAQ,IAAI,IAAI,KAAK;AAC7E,cAAM,wBAAwB;AAC9B,cAAM,iBAAiB,QAAQ,QAAQ,iBAAiB;AACxD,cAAM,iBAAiB,QAAQ,SAAS,UACpC,OAAO,WAAW,QAAQ,IAAI,KAAK,yBACnC,mBAAmB,UACnB,eAAe,YAAY,EAAE,SAAS,MAAM;AAChD,cAAM,UAAU;AAAA,UACZ,GAAG;AAAA,UACH,OAAO,IAAI,aAAa,WAAW,aAAa;AAAA,UAChD,UAAU,IAAI;AAAA,UACd;AAAA,UACA,QAAQ,QAAQ;AAAA,UAChB,SAAS;AAAA,YACL,GAAI,oBAAoB,iBAAiB,UAAU,iBAAiB,UAAU,CAAC;AAAA,YAC/E,GAAG,QAAQ;AAAA,YACX,GAAI,iBAAiB,EAAE,oBAAoB,OAAO,IAAI,CAAC;AAAA,UAC3D;AAAA,UACA,GAAI,IAAI,SAAS,SAAY,EAAE,MAAM,IAAI,QAAQ,GAAG,IAAI,CAAC;AAAA,QAC7D;AAEA,YAAI;AAEJ,YAAI;AAEJ,YAAI;AACJ,cAAM,UAAU,MAAM;AAClB,uBAAa,cAAc;AAC3B,uBAAa,eAAe;AAC5B,cAAI,QAAQ;AACR,mBAAO,QAAQ;AAAA,UACnB;AAAA,QACJ;AACA,cAAM,UAAU,CAAC,UAAU;AACvB,kBAAQ;AACR,kBAAQ,EAAE,QAAQ,GAAG,SAAS,MAAM,SAAS,YAAY,MAAM,CAAC;AAAA,QACpE;AACA,cAAM,OAAO,IAAI,aAAa,WAAWF,SAAQF,OAAM,QAAQ,SAAS,cAAY;AAChF,gBAAM,kBAAkB,SAAS,QAAQ,kBAAkB;AAC3D,gBAAM,iBAAiB,oBAAoB,UAAa,gBAAgB,YAAY,EAAE,SAAS,MAAM;AAErG,cAAI,iBAAiB,CAAC;AACtB,gBAAM,SAAS,CAAC,UAAU;AACtB,6BAAiB,eAAe,OAAO,KAAK;AAAA,UAChD;AACA,gBAAM,QAAQ,MAAM;AAChB,oBAAQ;AACR,oBAAQ;AAAA,cACJ,QAAQ,SAAS,cAAc;AAAA,cAC/B,SAAS,OAAO,OAAO,cAAc,EAAE,SAAS;AAAA,cAChD,YAAY;AAAA,YAChB,CAAC;AAAA,UACL;AACA,mBAAS,GAAG,SAAS,OAAO;AAC5B,cAAI,gBAAgB;AAChB,qBAASK,cAAa;AACtB,qBAAS,KAAK,MAAM;AACpB,mBAAO,GAAG,QAAQ,MAAM;AACxB,mBAAO,GAAG,OAAO,KAAK;AACtB,mBAAO,GAAG,SAAS,OAAO;AAAA,UAC9B,OACK;AACD,qBAAS,GAAG,QAAQ,MAAM;AAC1B,qBAAS,GAAG,OAAO,KAAK;AAAA,UAC5B;AAAA,QACJ,CAAC;AACD,cAAM,gBAAgB,CAAC,SAAS,YAAY;AACxC,iBAAO,WAAW,MAAM;AACpB,gBAAI,MAAM;AACV,gBAAI,QAAQ;AACR,qBAAO,QAAQ;AAAA,YACnB;AACA,oBAAQ;AAAA,cACJ,QAAQ;AAAA,cACR;AAAA,cACA,YAAY;AAAA,YAChB,CAAC;AAAA,UACL,GAAG,UAAU,GAAI;AAAA,QACrB;AACA,yBAAiB,cAAc,QAAQ,gBAAgB,oBAAoB;AAC3E,YAAI,GAAG,SAAS,OAAO;AACvB,YAAI,KAAK,YAAY,MAAM;AACvB,uBAAa,cAAc;AAC3B,4BAAkB,cAAc,QAAQ,iBAAiB,gBAAgB;AAAA,QAC7E,CAAC;AACD,YAAI,QAAQ,SAAS,UAAa,gBAAgB;AAC9C,UAAAC,MAAK,QAAQ,MAAM,CAAC,OAAO,mBAAmB;AAC1C,gBAAI,OAAO;AACP,sBAAQ,KAAK;AACb;AAAA,YACJ;AACA,gBAAI,UAAU,kBAAkB,eAAe,UAAU;AACzD,gBAAI,MAAM,cAAc;AACxB,gBAAI,IAAI;AAAA,UACZ,CAAC;AAAA,QACL,OACK;AACD,cAAI,QAAQ,SAAS,QAAW;AAC5B,gBAAI,UAAU,kBAAkB,OAAO,WAAW,QAAQ,IAAI,CAAC;AAC/D,gBAAI,MAAM,QAAQ,IAAI;AAAA,UAC1B;AACA,cAAI,IAAI;AAAA,QACZ;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,IACA,UAAU;AACN,gBAAU,QAAQ;AAClB,iBAAW,QAAQ;AACnB,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAAA,EACJ;AACJ;AAjIA,IAQMG,eACAF,mBACAC;AAVN,IAAAE,gCAAA;AAAA;AAAA;AAQA,IAAMD,gBAAe,EAAE,WAAW,KAAK;AACvC,IAAMF,oBAAmB,IAAIN,OAAMQ,aAAY;AAC/C,IAAMD,qBAAoB,IAAIL,SAAQM,aAAY;AAAA;AAAA;;;ACVlD;AAAA;AAAA;AAEA,QAAI,cAAc;AAClB,QAAI,gBAAgB;AACpB,QAAI,kBAAkB;AACtB,QAAI,eAAe;AACnB,QAAI,wBAAwB;AAC5B,QAAI,eAAe;AACnB,QAAI,eAAe;AACnB,QAAI,YAAY;AAChB,QAAI,oBAAoB;AACxB,QAAI,cAAc;AAClB,QAAI,kBAAkB;AAEtB,aAAS,sBAAsB,SAAS;AACpC,UAAI,CAAC,WAAW,CAAC,QAAQ,kBAAkB,CAAC,QAAQ,eAAe,QAAQ;AACvE,cAAM,iCAAiC,uEAAuE;AAAA,MAClH;AACA,UAAI,QAAQ,eAAe,WAAW,QAAQ,QAAQ,eAAe,WAAW,MAAM;AAClF,cAAM,iCAAiC,+DAA+D;AAAA,MAC1G;AACA,YAAM,QAAQ,QAAQ;AACtB,YAAM,OAAO,aAAa,WAAW,aAAa,SAAS,eAAe,OAAO,QAAQ,MAAM;AAC/F,YAAM,gBAAgB,YAAY,kBAAkB;AAAA,QAChD,OAAO;AAAA,UACH;AAAA,YACI,KAAK,QAAQ,QAAQ,eAAe,MAAM;AAAA,YAC1C,QAAQ,YAAY,SAAS;AAAA,YAC7B,UAAU;AAAA,UACd;AAAA,QACJ;AAAA,QACA,GAAG;AAAA,QACH,SAAS;AAAA,UACL,GAAG,KAAK,QAAQ;AAAA,UAChB,GAAG,EAAE,gBAAgB,aAAa;AAAA,UAClC,GAAG,QAAQ;AAAA,QACf;AAAA,QACA,iBAAiB;AAAA,UACb,GAAG,KAAK,gBAAgB;AAAA,UACxB,GAAG,QAAQ;AAAA,QACf;AAAA,MACJ,CAAC;AACD,aAAO;AAAA,QACH,aAAa;AAAA,QACb;AAAA,QACA,gBAAgB,SAASE,UAAS;AAC9B,wBAAc,UAAU,IAAI,EAAE,SAAS,SAAAA,SAAQ,CAAC;AAChD,wBAAc,UAAU,IAAI,EAAE,SAAS,aAAa,SAAAA,SAAQ,CAAC;AAC7D,wBAAc,UAAU,IAAI,EAAE,SAAS,8BAA8B,CAAC;AAAA,QAC1E;AAAA,QACA,aAAa;AACT,iBAAO,QAAQ,IAAI;AAAA,YACf,cAAc,cAAc,MAAM;AAAA,YAClC,cAAc,eAAe,MAAM;AAAA,UACvC,CAAC,EAAE,KAAK,MAAM,MAAS;AAAA,QAC3B;AAAA,QACA,KAAK,EAAE,WAAW,iBAAiB,MAAM,GAAG,gBAAgB;AACxD,cAAI,CAAC,WAAW;AACZ,kBAAM,iCAAiC,wDAAwD;AAAA,UACnG;AACA,cAAI,CAAC,iBAAiB;AAClB,kBAAM,iCAAiC,8DAA8D;AAAA,UACzG;AACA,cAAI,CAAC,gBAAgB,QAAQ;AACzB,kBAAM,iCAAiC,qEAAqE;AAAA,UAChH;AACA,cAAI,CAAC,gBAAgB,SAAS;AAC1B,kBAAM,iCAAiC,sEAAsE;AAAA,UACjH;AACA,gBAAM,OAAO,kBAAkB,EAAE,iBAAiB,CAAC,EAAE;AACrD,iBAAO,cAAc,MAAM;AAAA,YACvB,QAAQ,gBAAgB,WAAW;AAAA,YACnC,MAAM,aAAa,OAAO,aAAa,SAAS;AAAA,YAChD,MAAM;AAAA,UACV,GAAG;AAAA,YACC,GAAG;AAAA,YACH,iBAAiB;AAAA,cACb,GAAG,KAAK;AAAA,cACR,OAAO,UAAU;AAAA,YACrB;AAAA,UACJ,CAAC;AAAA,QACL;AAAA,MACJ;AAAA,IACJ;AACA,aAAS,8BAA8B,WAAW,QAAQ;AACtD,aAAO,CAAC,SAAS,mBAAmB;AAChC,YAAI,CAAC,QAAQ;AACT,gBAAM,iCAAiC,sGAAsG;AAAA,QACjJ;AACA,cAAM,EAAE,gCAAgC,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAAC;AAC9E,cAAM,SAAS,iCACT,aAAa,gBAAgB,YAC7B,aAAa,gBAAgB;AAEnC,eAAO,OAAO,KAAK;AAAA,UACf;AAAA,UACA,iBAAiB,EAAE,QAAQ,SAAS,QAAQ;AAAA,UAC5C;AAAA,QACJ,GAAG,IAAI;AAAA,MACX;AAAA,IACJ;AACA,aAAS,uCAAuC,WAAW,QAAQ;AAC/D,aAAO,CAAC,SAAS,mBAAmB;AAChC,YAAI,CAAC,QAAQ;AACT,gBAAM,iCAAiC,sGAAsG;AAAA,QACjJ;AACA,cAAM,EAAE,mBAAmB,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAAC;AACjE,cAAM,SAAS,oBACT,aAAa,gBAAgB,sBAC7B,aAAa,gBAAgB;AAEnC,eAAO,OAAO,KAAK;AAAA,UACf;AAAA,UACA,iBAAiB,EAAE,QAAQ,SAAS,QAAQ;AAAA,UAC5C;AAAA,QACJ,GAAG,IAAI;AAAA,MACX;AAAA,IACJ;AACA,aAAS,iCAAiC,SAAS;AAC/C,aAAO;AAAA,QACH,MAAM;AAAA,QACN;AAAA,MACJ;AAAA,IACJ;AAEA,aAASC,eAAc,OAAO,QAAQ,SAAS;AAC3C,YAAM,gBAAgB;AAAA,QAClB;AAAA,QACA;AAAA,QACA,UAAU;AAAA,UACN,SAAS;AAAA,UACT,MAAM;AAAA,UACN,OAAO;AAAA,QACX;AAAA,QACA,WAAW,kBAAkB,wBAAwB;AAAA,QACrD,QAAQ,aAAa,iBAAiB;AAAA,QACtC,gBAAgB,YAAY,gBAAgB;AAAA,QAC5C,eAAe,YAAY,gBAAgB;AAAA,QAC3C,YAAY,cAAc,oBAAoB;AAAA,QAC9C,WAAW,YAAY,gBAAgB,aAAa,OAAO,EAAE,IAAI;AAAA,UAC7D,SAAS;AAAA,UACT,SAAS,QAAQ,SAAS;AAAA,QAC9B,CAAC;AAAA,MACL;AACA,YAAM,sBAAsB,EAAE,GAAG,eAAe,GAAG,QAAQ;AAC3D,YAAM,sBAAsB,MAAM,CAAC,kBAAkB;AACjD,eAAO,sBAAsB,4BAA4B;AAAA,UACrD,GAAG;AAAA,UACH,GAAG;AAAA,UACH,SAAS;AAAA,YACL,4BAA4B,sBAAsB;AAAA,YAClD,4BAA4B,sBAAsB;AAAA,UACtD;AAAA,QACJ,CAAC;AAAA,MACL;AAEA,UAAI;AACJ,UAAI,WAAW,QAAQ,gBAAgB;AACnC,YAAI,CAAC,QAAQ,eAAe,QAAQ;AAChC,gBAAM,iCAAiC,uEAAuE;AAAA,QAClH;AACA,+BAAuB,sBAAsB,EAAE,GAAG,SAAS,GAAG,cAAc,CAAC;AAAA,MACjF;AACA,aAAO,aAAa,mBAAmB;AAAA,QACnC,GAAG;AAAA,QACH,SAAS;AAAA,UACL,QAAQ,aAAa;AAAA,UACrB,sBAAsB,aAAa;AAAA,UACnC,eAAe,aAAa;AAAA,UAC5B,oBAAoB,aAAa;AAAA,UACjC,iBAAiB,aAAa;AAAA,UAC9B,WAAW,aAAa;AAAA,UACxB,cAAc,aAAa;AAAA,UAC3B,WAAW,aAAa;AAAA,UACxB,cAAc,aAAa;AAAA,UAC3B,WAAW,aAAa;AAAA,UACxB,aAAa,aAAa;AAAA,UAC1B,SAAS,aAAa;AAAA,UACtB,cAAc,aAAa;AAAA,UAC3B,8BAA8B,aAAa;AAAA,UAC3C,WAAW,aAAa;AAAA,UACxB,WAAW,aAAa;AAAA,UACxB,aAAa,aAAa;AAAA,UAC1B,cAAc,aAAa;AAAA,UAC3B,cAAc,aAAa;AAAA,UAC3B,eAAe,aAAa;AAAA,UAC5B,cAAc,aAAa;AAAA,UAC3B,eAAe,aAAa;AAAA,UAC5B,WAAW,aAAa;AAAA,UACxB,eAAe,aAAa;AAAA,UAC5B,aAAa,aAAa;AAAA,UAC1B,eAAe,aAAa;AAAA,UAC5B,cAAc,aAAa;AAAA,UAC3B,oBAAoB,aAAa;AAAA,UACjC,uBAAuB,aAAa;AAAA,UACpC,mCAAmC,aAAa;AAAA,UAChD,SAAS,aAAa;AAAA,UACtB,wBAAwB,aAAa;AAAA,UACrC,yBAAyB,aAAa;AAAA,UACtC,uBAAuB,aAAa;AAAA,UACpC,YAAY,aAAa;AAAA,UACzB,0BAA0B,aAAa;AAAA,UACvC,uBAAuB,aAAa;AAAA,UACpC,yBAAyB,aAAa;AAAA,UACtC,uBAAuB,aAAa;AAAA,UACpC,aAAa,aAAa;AAAA,UAC1B,eAAe,aAAa;AAAA,UAC5B,WAAW,UAAQ,CAAC,cAAc;AAC9B,mBAAO;AAAA,cACH,GAAG,aAAa,UAAU,IAAI,EAAE,WAAW;AAAA,gBACvC,SAAS;AAAA,kBACL,OAAO,aAAa;AAAA,kBACpB,QAAQ,aAAa;AAAA,kBACrB,aAAa,aAAa;AAAA,kBAC1B,WAAW,aAAa;AAAA,kBACxB,YAAY,aAAa;AAAA,kBACzB,YAAY,aAAa;AAAA,kBACzB,aAAa,aAAa;AAAA,kBAC1B,QAAQ,aAAa;AAAA,kBACrB,sBAAsB,aAAa;AAAA,kBACnC,UAAU,aAAa;AAAA,kBACvB,aAAa,aAAa;AAAA,kBAC1B,aAAa,aAAa;AAAA,kBAC1B,qBAAqB,aAAa;AAAA,kBAClC,sBAAsB,aAAa;AAAA,kBACnC,cAAc,aAAa;AAAA,kBAC3B,eAAe,aAAa;AAAA,kBAC5B,UAAU,aAAa;AAAA,kBACvB,cAAc,aAAa;AAAA,kBAC3B,eAAe,aAAa;AAAA,kBAC5B,mBAAmB,aAAa;AAAA,kBAChC,YAAY,aAAa;AAAA,kBACzB,QAAQ,aAAa;AAAA,kBACrB,aAAa,aAAa;AAAA,kBAC1B,cAAc,aAAa;AAAA,kBAC3B,YAAY,aAAa;AAAA,kBACzB,gBAAgB,aAAa;AAAA,kBAC7B,gBAAgB,aAAa;AAAA,kBAC7B,eAAe,aAAa;AAAA,kBAC5B,eAAe,aAAa;AAAA,kBAC5B,mBAAmB,aAAa;AAAA,kBAChC,oBAAoB,aAAa;AAAA,kBACjC,aAAa,aAAa;AAAA,kBAC1B,SAAS,aAAa;AAAA,kBACtB,YAAY,aAAa;AAAA,kBACzB,UAAU,aAAa;AAAA,kBACvB,WAAW,aAAa;AAAA,kBACxB,iBAAiB,aAAa;AAAA,kBAC9B,aAAa,aAAa;AAAA,kBAC1B,YAAY,aAAa;AAAA,gBAC7B;AAAA,cACJ,CAAC;AAAA,cACD,+BAA+B,8BAA8B,WAAW,oBAAoB;AAAA,cAC5F,wCAAwC,uCAAuC,WAAW,oBAAoB;AAAA,YAClH;AAAA,UACJ;AAAA,UACA,eAAe,MAAM,CAAC,kBAAkB;AACpC,mBAAO,gBAAgB,sBAAsB;AAAA,cACzC,GAAG;AAAA,cACH,GAAG;AAAA,cACH,SAAS;AAAA,gBACL,WAAW,gBAAgB;AAAA,gBAC3B,WAAW,gBAAgB;AAAA,gBAC3B,YAAY,gBAAgB;AAAA,gBAC5B,YAAY,gBAAgB;AAAA,gBAC5B,cAAc,gBAAgB;AAAA,cAClC;AAAA,YACJ,CAAC;AAAA,UACL;AAAA,UACA;AAAA,UACA,oBAAoB,MAAM,CAAC,kBAAkB;AACzC,gCAAoB,OAAO,KAAK,mFAAmF;AACnH,mBAAO,oBAAoB,EAAE,aAAa;AAAA,UAC9C;AAAA,UACA,oBAAoB,UAAU;AAAA,UAC9B,6BAA6B,UAAU;AAAA,UACvC,mBAAmB,UAAU;AAAA,UAC7B,sBAAsB,UAAU;AAAA,UAChC,oBAAoB,UAAU;AAAA,UAC9B,mBAAmB,UAAU;AAAA,UAC7B,kBAAkB,UAAU;AAAA,QAChC;AAAA,MACJ,CAAC;AAAA,IACL;AAEA,IAAAA,eAAc,UAAU,aAAa;AAErC,WAAO,UAAUA;AAAA;AAAA;;;AC/RjB;AAAA;AAAA;AACA,QAAMC,iBAAgB;AAOtB,WAAO,UAAUA;AAMjB,WAAO,QAAQ,UAAUA;AAAA;AAAA;;;ACdzB;AAAA;AAAA;AACA,WAAO,UAAU;AAAA;AAAA;;;ACDjB,SAAS,OAAAC,YAAW;AACpB,SAAS,iBAAiB;;;ACA1B,SAAS,YAAY,aAAAC,YAAW,UAAAC,SAAQ,YAAAC,iBAAgB;AACxD,SAAS,OAAAC,MAAK,QAAAC,aAAY;AAC1B;AAAA,EAEE;AAAA,OACK;AACP,OAAOC,cAAa;AACpB,OAAO,WAAW;AAClB,SAAS,cAAc;AAEvB,SAAS,UAAU;;;ACTnB,IAAM,eAA4B;AAAA,EAChC,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,SAAS;AAAA,EACT,OAAO;AAAA,EACP,mBAAmB;AAAA,IACjB,aAAa;AAAA,IACb,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,KAAI;AAAA,MACF,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,IAAI;AAAA,IACF,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,IAAI;AAAA,IACJ,aAAa;AAAA,IACb,eAAe;AAAA,IACf,SAAS;AAAA,IACT,gBAAgB;AAAA,EAClB;AAAA,EACA,UAAU;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,IAAI;AAAA,EACN;AACF;AAEA,IAAM,eAA4B;AAAA,EAChC,aAAa;AAAA,EACb,WAAW;AACb;AAEA,IAAO,iBAAQ;AAAA,EACb;AAAA,EACA;AACF;;;ACzCA,SAAS,MAAM,WAAW;;;ACC1B,SAAS,YAAY;AASjB,SAOE,KAPF;AAPJ,IAAM,cAAc,CAAC,UACnB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,MAAM;AAAA,IAEN;AAAA,MAAC;AAAA;AAAA,QACC,eAAc;AAAA,QACd,gBAAe;AAAA,QACf,aAAY;AAAA,QACZ,MAAK;AAAA,QACL,QAAO;AAAA,QAEP;AAAA;AAAA,YAAC;AAAA;AAAA,cACC,GAAE;AAAA,cACF,GAAE;AAAA,cACF,OAAM;AAAA,cACN,QAAO;AAAA,cACP,MAAK;AAAA,cACL,QAAO;AAAA,cACP,kBAAiB;AAAA;AAAA,UACnB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,QAAO;AAAA,cACP,MAAK;AAAA,cACL,kBAAiB;AAAA,cACjB,eAAc;AAAA;AAAA,UAChB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,IAAG;AAAA,cACH,IAAG;AAAA,cACH,IAAG;AAAA,cACH,IAAG;AAAA,cACH,MAAK;AAAA,cACL,QAAO;AAAA,cACP,kBAAiB;AAAA;AAAA,UACnB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,GAAE;AAAA,cACF,GAAE;AAAA,cACF,OAAM;AAAA,cACN,QAAO;AAAA,cACP,MAAK;AAAA,cACL,QAAO;AAAA,cACP,kBAAiB;AAAA;AAAA,UACnB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,IAAG;AAAA,cACH,IAAG;AAAA,cACH,IAAG;AAAA,cACH,IAAG;AAAA,cACH,MAAK;AAAA,cACL,QAAO;AAAA,cACP,kBAAiB;AAAA;AAAA,UACnB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,GAAE;AAAA,cACF,GAAE;AAAA,cACF,OAAM;AAAA,cACN,QAAO;AAAA,cACP,MAAK;AAAA,cACL,QAAO;AAAA,cACP,kBAAiB;AAAA;AAAA,UACnB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,IAAG;AAAA,cACH,IAAG;AAAA,cACH,IAAG;AAAA,cACH,IAAG;AAAA,cACH,MAAK;AAAA,cACL,QAAO;AAAA,cACP,kBAAiB;AAAA;AAAA,UACnB;AAAA;AAAA;AAAA,IACF;AAAA;AACF;AAGF,IAAM,QAAQ,CAAC,UACb;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,MAAM;AAAA,IAEN;AAAA,MAAC;AAAA;AAAA,QACC,eAAc;AAAA,QACd,gBAAe;AAAA,QACf,aAAY;AAAA,QACZ,MAAK;AAAA,QACL,QAAO;AAAA,QAEP;AAAA;AAAA,YAAC;AAAA;AAAA,cACC,GAAE;AAAA,cACF,GAAE;AAAA,cACF,OAAM;AAAA,cACN,QAAO;AAAA,cACP,MAAK;AAAA,cACL,QAAO;AAAA,cACP,kBAAiB;AAAA;AAAA,UACnB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,GAAE;AAAA,cACF,GAAE;AAAA,cACF,OAAM;AAAA,cACN,QAAO;AAAA,cACP,MAAK;AAAA,cACL,kBAAiB;AAAA;AAAA,UACnB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,GAAE;AAAA,cACF,GAAE;AAAA,cACF,OAAM;AAAA,cACN,QAAO;AAAA,cACP,MAAK;AAAA,cACL,kBAAiB;AAAA;AAAA,UACnB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,GAAE;AAAA,cACF,GAAE;AAAA,cACF,OAAM;AAAA,cACN,QAAO;AAAA,cACP,MAAK;AAAA,cACL,kBAAiB;AAAA;AAAA,UACnB;AAAA;AAAA;AAAA,IACF;AAAA;AACF;AA+DF,IAAM,cAAc,CAAC,UACnB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAM,aAAa,CAAC,UAClB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAM,eAAe,CAAC,UACpB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACd;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACd;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAM,gBAAgB,CAAC,UACrB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,OAAO,CAAC,UACZ;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,YAAY,CAAC,UACjB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,YAAY,CAAC,UACjB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,cAAc,CAAC,UACnB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,UAAU,CAAC,UACf;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAEF,IAAM,aAAa,CAAC,UAClB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,SAAS,CAAC,UACd;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEN;AAAA;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAY;AAAA,UACZ,MAAK;AAAA,UACL,QAAO;AAAA,UAEN;AAAA;AAAA,YACD;AAAA,cAAC;AAAA;AAAA,gBACC,GAAE;AAAA,gBACF,GAAE;AAAA,gBACF,OAAM;AAAA,gBACN,QAAO;AAAA,gBACP,MAAK;AAAA,gBACL,QAAO;AAAA,gBACP,kBAAiB;AAAA;AAAA,YAClB;AAAA,YAAQ;AAAA,YACT;AAAA,cAAC;AAAA;AAAA,gBACC,GAAE;AAAA,gBACF,GAAE;AAAA,gBACF,OAAM;AAAA,gBACN,QAAO;AAAA,gBACP,MAAK;AAAA,gBACL,kBAAiB;AAAA;AAAA,YAClB;AAAA,YAAQ;AAAA,YACT;AAAA,cAAC;AAAA;AAAA,gBACC,GAAE;AAAA,gBACF,GAAE;AAAA,gBACF,OAAM;AAAA,gBACN,QAAO;AAAA,gBACP,MAAK;AAAA,gBACL,kBAAiB;AAAA;AAAA,YAClB;AAAA,YAAQ;AAAA,YACT;AAAA,cAAC;AAAA;AAAA,gBACC,GAAE;AAAA,gBACF,GAAE;AAAA,gBACF,OAAM;AAAA,gBACN,QAAO;AAAA,gBACP,MAAK;AAAA,gBACL,kBAAiB;AAAA;AAAA,YAClB;AAAA,YAAQ;AAAA;AAAA;AAAA,MACX;AAAA;AAAA;AACF;AAEF,IAAM,YAAY,CAAC,UACjB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAEF,IAAM,oBAAoB,CAAC,UACzB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAEF,IAAM,OAAO,CAAC,UACZ;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,WAAW,CAAC,UAChB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA,MAAC;AAAA;AAAA,QACC,eAAc;AAAA,QACd,aAAY;AAAA,QACZ,MAAK;AAAA,QACL,QAAO;AAAA,QACP,gBAAe;AAAA,QACf,kBAAiB;AAAA,QAEjB;AAAA,8BAAC,UAAK,GAAE,KAAI,GAAE,MAAK,OAAM,KAAI,QAAO,KAAI;AAAA,UACxC,oBAAC,UAAK,GAAE,MAAK,GAAE,MAAK,OAAM,KAAI,QAAO,KAAI;AAAA,UACzC,oBAAC,UAAK,GAAE,KAAI,GAAE,KAAI,OAAM,KAAI,QAAO,KAAI;AAAA,UACvC;AAAA,YAAC;AAAA;AAAA,cACC,QAAO;AAAA,cACP,YAAS;AAAA,cACT,eAAc;AAAA,cACd,QAAO;AAAA;AAAA,UACR;AAAA,UACD,oBAAC,UAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK;AAAA,UACrC,oBAAC,UAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK;AAAA,UACtC,oBAAC,UAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK;AAAA;AAAA;AAAA,IACtC;AAAA;AACF;AAGF,IAAM,WAAW,CAAC,UAChB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP,+BAAC,OAAE,MAAK,WACN;AAAA,0BAAC,UAAK,GAAE,sgBAAqgB;AAAA,MAC7gB;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACN;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACN;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACN;AAAA,OACH;AAAA;AACF;AAGF,IAAM,UAAU,CAAC,UACf;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,SAAS,CAAC,UACd;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,WAAW,CAAC,UAChB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,WAAW,CAAC,UAChB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,aAAa,CAAC,UAClB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,UAAU,CAAC,UACf;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,oBAAoB,CAAC,UACzB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,cAAc,CAAC,UACnB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAEF,IAAM,gBAAgB,CAAC,UACrB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP,+BAAC,SACC;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,OACF;AAAA;AACF;AAGF,IAAM,cAAc,CAAC,UACnB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP,+BAAC,SACC;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,OACF;AAAA;AACF;;;ADz8CF,OAAO,UAAU;AAyIX,SACW,OAAAC,MADX,QAAAC,aAAA;AAlIN,IAAM,WAAqB;AAAA,EACzB;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AACF;AAEA,IAAM,UAAU,CAAC,SAAiB;AAChC,SAAO,SAAS,KAAK,CAACC,UAASA,MAAK,SAAS,IAAI,GAAG;AACtD;AASA,IAAM,eAAe,CAAC,EAAE,MAAAA,OAAM,MAAAC,OAAM,SAAS,MAAyB;AACpE,QAAMC,SAAO,QAAQF,KAAI;AACzB,SACE,gBAAAF,KAAC,QAAK,MAAMG,OACV,0BAAAF,MAAC,QAAK,IAAI,eAAO,cACd;AAAA,IAAAG,UAAQ,gBAAAJ,KAACI,QAAA,EAAK,IAAI,eAAO,cAAc;AAAA,IACxC,gBAAAJ,KAAC,OAAK,UAAS;AAAA,KACjB,GACF;AAEJ;AAEA,IAAO,wBAAQ;;;AEpJf,wBAAsB;AAOlB,gBAAAK,YAAA;AAFJ,IAAM,eAAe,CAAC,EAAE,QAAQ,MAC9B,gBAAAA,KAAC,SAAI,WAAU,oBACb,0BAAAA;AAAA,EAAC;AAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,KAAK,iCAAiC,OAAO;AAAA,IAC7C,aAAY;AAAA,IACZ,OAAM;AAAA,IACN,iBAAe;AAAA,IACf,OAAM;AAAA;AACR,GACF;AAGF,aAAa,YAAY;AAAA,EACvB,SAAS,kBAAAC,QAAU,OAAO;AAC5B;AAEA,IAAO,wBAAQ;;;ACvBf,SAAS,OAAAC,YAAW;;;ACCpB,IAAM,QAAqB;AAAA,EACzB,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,YAAY;AAAA,EACZ,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,YAAY;AAAA,IACV,kBAAkB;AAAA,EACpB;AAAA,EACA,mBAAmB;AAAA,IACjB,SAAS;AAAA,IACT,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,iBAAiB;AAAA,IACjB,cAAc;AAAA,IACd,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,WAAW;AAAA,EACb;AACF;AAEA,IAAOC,kBAAQ;AAAA,EACb;AACF;;;ADvBS,gBAAAC,YAAA;AADT,IAAM,QAAQ,CAAC,EAAE,SAAS,MAAkB;AAC1C,SAAO,gBAAAA,KAACC,MAAA,EAAI,IAAIC,gBAAO,OAAQ,UAAS;AAC1C;AACA,IAAO,gBAAQ;;;AEVf,SAA8B,aAAAC,YAAW,QAAQ,gBAAgB;AACjE,SAAS,OAAAC,MAAK,QAAQ,QAAAC,aAAY;;;ACClC,SAAS,QAAAC,aAAY;AAGnB,SAQE,OAAAC,MARF,QAAAC,aAAA;AADF,IAAM,YAAY,CAAC,UACjB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,qBAAQ;;;AC9Bf,SAAS,iBAA6D;AAEvD,SAAR,gBACL,KAEA,WACA;AACA,YAAU,MAAM;AACd,aAAS,mBAAmB,OAAmB;AAC7C,YAAM,EAAE,MAAAE,OAAM,gBAAgB,IAAI;AAClC,UACE,IAAI,WACJ,MAAM,kBAAkB,QACxB,CAAC,IAAI,QAAQ,SAAS,MAAM,MAAM,GAClC;AACA,kBAAU,EAAE,aAAa,MAAM,CAAC;AAChC,cAAM,YAAYA,MAAK,sBAAsB,EAAE,MAAM;AACrD,QAAAA,MAAK,UAAU,OAAO,YAAY;AAClC,wBAAgB,YAAY;AAC5B,QAAAA,MAAK,MAAM,eAAe,KAAK;AAAA,MACjC;AAAA,IACF;AACA,aAAS,iBAAiB,aAAa,kBAAkB;AACzD,WAAO,MAAM;AACX,eAAS,oBAAoB,aAAa,kBAAkB;AAAA,IAC9D;AAAA,EACF,GAAG,CAAC,CAAC;AACP;;;ACzBA,IAAM,iBAA8B;AAAA,EAClC,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,YAAY;AAAA,EACZ,UAAU;AAAA,IACR,WAAW;AAAA,EACb;AAAA,EAEA,SAAS;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA,IACT,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,cAAc;AAAA,EAChB;AACF;AAEA,IAAM,YAAyB;AAAA,EAC7B,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,iBAAiB;AAAA,EACjB,UAAU;AAAA,EACV,KAAK;AAAA,EACL,MAAM;AAAA,EACN,SAAS;AAAA,EACT,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,QAAQ;AACV;AAEA,IAAM,QAAqB;AAAA,EACzB,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,SAAS;AAAA,EAET,SAAS;AAAA,IACP,SAAS;AAAA,IACT,WAAW;AAAA,IACX,UAAU;AAAA,IACV,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,EACX;AACF;AAEA,IAAM,cAA2B;AAAA,EAC/B,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,OAAO;AAAA,EACP,OAAO;AAAA,EAEP,UAAU;AAAA,IACR,OAAO;AAAA,EACT;AACF;AAEA,IAAOC,kBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;AH1CQ,SAMgB,OAAAC,MANhB,QAAAC,aAAA;AApBO,SAAR,SAA0B,EAAE,SAAS,GAAU;AACpD,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,KAAK;AACpD,QAAM,WAAW,OAAuB;AAExC,EAAAC,WAAU,MAAM;AACd,QAAI,aAAa;AACf,YAAM,YAAY,SAAS,KAAK,sBAAsB,EAAE;AACxD,eAAS,KAAK,MAAM,MAAM,GAAG,SAAS;AACtC,eAAS,KAAK,UAAU,IAAI,YAAY;AAAA,IAC1C,OAAO;AACL,eAAS,KAAK,UAAU,OAAO,YAAY;AAC3C,eAAS,KAAK,MAAM,eAAe,KAAK;AAAA,IAC1C;AAAA,EACF,GAAG,CAAC,WAAW,CAAC;AAEhB,kBAAgB,UAAU,MAAM,eAAe,KAAK,CAAC;AAErD,SACE,gBAAAD,MAAC,SACE;AAAA,mBACC,gBAAAA,MAACE,OAAA,EAAK,IAAIC,gBAAO,WACf;AAAA,sBAAAJ;AAAA,QAAC;AAAA;AAAA,UACC,IAAII,gBAAO;AAAA,UACX,cAAY;AAAA,UACZ,MAAK;AAAA,UACL,SAAQ;AAAA,UACR,MAAM,MAAM,gBAAAJ,KAAC,sBAAU,MAAM,IAAI;AAAA,UACjC,SAAS,MAAM,eAAe,KAAK;AAAA;AAAA,MACrC;AAAA,MACA,gBAAAA,KAACK,MAAA,EAAI,IAAID,gBAAO,OAAO,KAAK,UACzB,UACH;AAAA,OACF;AAAA,IAEF,gBAAAJ,KAACK,MAAA,EAAI,IAAID,gBAAO,gBAAgB,SAAS,MAAM,eAAe,IAAI,GAC/D,UACH;AAAA,KACF;AAEJ;;;AIhDA,SAAS,OAAAE,MAAK,QAAAC,OAAM,WAAW,MAAM,QAAAC,aAAY;;;ACCjD,IAAMC,aAAyB;AAAA,EAC7B,IAAI;AAAA,EACJ,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,OAAO,CAAC,QAAQ,KAAK;AAAA,EACrB,YAAY;AAAA,EACZ,UAAU;AAAA,IACR,QAAQ;AAAA,EACV;AAAA,EACA,mBAAmB;AAAA,IACjB,aAAa;AAAA,IACb,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,wBAAwB;AAAA,MACtB,YAAY;AAAA,MACZ,OAAO;AAAA,IACT;AAAA,IACA,iBAAiB;AAAA,MACf,YAAY;AAAA,MACZ,OAAO;AAAA,IACT;AAAA,EACF;AACF;AAEA,IAAM,QAAqB;AAAA,EACzB,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY,CAAC,QAAQ,MAAM;AAAA,EAC3B,OAAO;AACT;AAEA,IAAM,aAA0B;AAAA,EAC9B,SAAS;AAAA,EACT,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,UAAU;AAAA,IACR,SAAS;AAAA,IACT,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,YAAY;AAAA,EACd;AACF;AAEA,IAAM,cAA2B;AAAA,EAC/B,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,OAAO;AACT;AAEA,IAAM,gBAA6B;AAAA,EACjC,IAAI;AAAA,EACJ,YAAY;AACd;AAEA,IAAM,OAAoB;AAAA,EACxB,GAAG;AAAA,EACH,OAAO;AACT;AAEA,IAAOC,kBAAQ;AAAA,EACb,WAAAD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ADtEA,OAAO,WAAW;AAoBV,SACE,OAAAE,MADF,QAAAC,aAAA;AAVR,IAAM,gBAAgB,CAAC;AAAA,EACrB,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA4B;AAC1B,SACE,gBAAAH,KAACI,OAAA,EAAK,MAAM,QAAQ,IAAIC,gBAAO,WAC5B,kBACC,gBAAAJ,MAACK,MAAA,EACC;AAAA,oBAAAN;AAAA,MAAC;AAAA;AAAA,QACC,KAAK;AAAA,QACL,KAAKE;AAAA,QACL,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,OAAM;AAAA,QACN,OAAO,EAAE,OAAO,QAAQ,QAAQ,OAAO;AAAA;AAAA,IACzC;AAAA,IACA,gBAAAF,KAAC,QAAK,IAAIK,gBAAO,YAAY,WAAU,SACpC,UAAAH,QACH;AAAA,KACF,IAEA,gBAAAD,MAACK,MAAA,EAAI,IAAI,EAAE,SAAS,OAAO,GACzB;AAAA,oBAAAN,KAAC,QAAK,IAAIK,gBAAO,OAAO,WAAU,SAC/B,UAAAH,QACH;AAAA,IACCC,gBACC,gBAAAH,KAAC,QAAK,IAAIK,gBAAO,aAAa,WAAU,eACrC,UAAAF,cACH;AAAA,IAED,aACC,gBAAAF,MAACM,OAAA,EAAK,IAAIF,gBAAO,eACf;AAAA,sBAAAL,KAAC,QAAK,IAAIK,gBAAO,MAAM,WAAU,QAC9B,qBACH;AAAA,MACA,gBAAAL;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,OAAM;AAAA,UACN,WAAU;AAAA,UACV,MAAM;AAAA;AAAA,MACR;AAAA,OACF;AAAA,KAEJ,GAEJ;AAEJ;AAEA,IAAO,0BAAQ;;;AEhEf,SAAS,eAAe,aAAAQ,YAAW,YAAAC,iBAAgB;AAGnD,SAAS,iBAAiB;AAqNpB,gBAAAC,YAAA;AA/JC,IAAM,iBAAiB,cAA2B;AAAA,EACvD,cAAc,CAAC;AAAA,EACf,iBAAiB,MAAM;AAAA,EACvB,YAAY;AAAA,IACV,MAAM;AAAA,IACN,SAAS;AAAA,EACX;AAAA,EACA,eAAe,MAAM;AAAA,EACrB,kBAAkB,MAAM;AAAA,EACxB,qBAAqB,MAAM;AAAA,EAC3B,iBAAiB;AAAA,EACjB,sBAAsB;AAAA,EACtB,mBAAmB;AAAA,EACnB,sBAAsB;AAAA,EACtB,mBAAmB,CAAC;AAAA,EACpB,oBAAoB,MAAM;AAAA,EAC1B,sBAAsB,oBAAI,IAAI;AAAA;AAAA,EAE9B,sBAAsB,CAAC,MAAW;AAAA,EAClC,yBAAyB,MAAM;AAAA,EAC/B,sBAAsB,MAAM;AAAA;AAAA,EAE5B,yBAAyB,CAAC,MAAW;AAAA,EACrC,4BAA4B,MAAM;AAAA,EAClC,oBAAoB,MAAM;AAAA,EAC1B,sBAAsB,MAAM;AAAA,EAC5B,iBAAiB,CAAC;AAAA,EAClB,oBAAoB,MAAM;AAAA,EAC1B,oBAAoB,CAAC;AAAA,EACrB,uBAAuB,MAAM;AAAA,EAC7B,QAAQ;AACV,CAAC;AAGD,IAAM,yBAAyB,CAAC,EAAE,UAAU,GAAG,MAAM,MAAa;AAChE,QAAM,CAAC,cAAc,eAAe,IAAID,UAAiB,CAAC,CAAC;AAC3D,QAAM,CAAC,YAAY,aAAa,IAAIA,UAAqB;AAAA,IACvD,MAAM;AAAA,IACN,SAAS;AAAA,EACX,CAAC;AAED,QAAM,CAAC,mBAAmB,oBAAoB,IAAIA;AAAA,IAChD,MAAM;AAAA,EACR;AACA,QAAM,CAAC,sBAAsB,uBAAuB,IAAIA,UAAS,KAAK;AACtE,QAAM,CAAC,sBAAsB,uBAAuB,IAAIA,UAAS,EAAE;AACnE,QAAM,CAAC,sBAAsB,uBAAuB,IAAIA,UAAS,oBAAI,IAAI,CAAC;AAC1E,QAAM,CAAC,mBAAmB,oBAAoB,IAAIA,UAAS,MAAM,QAAQ;AACzE,QAAM,CAAC,iBAAiB,kBAAkB,IAAIA,UAAS,MAAM,SAAS;AACtE,QAAM,CAAC,iBAAiB,kBAAkB,IAAIA,UAAS,MAAM,QAAQ;AACrE,QAAM,CAAC,oBAAoB,qBAAqB,IAAIA;AAAA,IAClD,MAAM;AAAA,EACR;AACA,QAAM,EAAE,QAAQ,aAAa,GAAG,UAAU,IAAI;AAC9C,QAAM,SAAS,eAAe;AAC9B,QAAM,WAAW,UAAU;AAE3B,EAAAD,WAAU,MAAM;AACd,yBAAqB,MAAM,QAAQ;AAAA,EACrC,GAAG,CAAC,MAAM,QAAQ,CAAC;AAEnB,EAAAA,WAAU,MAAM;AACd,QAAI,MAAM,oBAAoB;AAAI,8BAAwB,IAAI;AAAA,aACrD,MAAM,oBAAoB;AACjC,2BAAqB,MAAM,eAAe;AAAA,EAC9C,GAAG,CAAC,MAAM,eAAe,CAAC;AAE1B,QAAM,6BAA6B,CAACG,WAAkB;AACpD,4BAAwB,CAACC,0BAAyB;AAChD,YAAM,OACJA,sBAAqB,IAAID,MAAK,MAAM,QAChC,OACA,CAACC,sBAAqB,IAAID,MAAK;AAErC,aAAO,IAAI,IAAIC,sBAAqB,IAAID,QAAO,IAAI,CAAC;AAAA,IACtD,CAAC;AAAA,EACH;AAEA,QAAM,uBAAuB,CAAC,iBAA2B;AACvD,yBAAqB,QAAQ,CAAC,QAAQ,QAAQ;AAC5C,UAAI,CAAC,aAAa,SAAS,GAAG,GAAG;AAC/B,gCAAwB,CAACC,0BAAyB;AAChD,iBAAO,IAAI,IAAIA,sBAAqB,IAAI,KAAK,KAAK,CAAC;AAAA,QACrD,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH;AAEA,QAAM,qBAAqB,CAACD,WAAkB;AAC5C,4BAAwB,CAACC,0BAAyB;AAChD,aAAO,IAAI,IAAIA,sBAAqB,IAAID,QAAO,IAAI,CAAC;AAAA,IACtD,CAAC;AAAA,EACH;AAEA,QAAM,mBAAmB,MAAM;AAC7B,kBAAc,CAAC,EAAE,MAAAE,OAAM,QAAQ,MAAM;AACnC,YAAM,QAAQ,aAAa,UAAU,CAAC,YAAY,QAAQ,SAASA,KAAI;AACvE,UAAI,UAAU;AAAI,eAAO,EAAE,MAAAA,OAAM,QAAQ;AAEzC,YAAM,eAAe,CAAC,QAAQ,KAAK,aAAa,QAAQ,CAAC,EAAE;AAC3D,YAAM,mBAAmB,CAAC,QAAQ,CAAC,IAAI,aAAa,QAAQ,CAAC,EAAE;AAC/D,YAAM,kBAAkB,CAAC,iBAAiB,SACtC,KACA,iBAAiB,MAAM,EAAE,EAAE,CAAC,EAAE;AAElC,aAAO;AAAA,QACL,MAAM;AAAA,QACN,SAAS;AAAA,MACX;AAAA,IACF,CAAC;AAAA,EACH;AAEA,QAAM,sBAAsB,MAAM;AAChC,kBAAc,CAAC,EAAE,MAAAA,OAAM,QAAQ,MAAM;AACnC,YAAM,UAAU,aAAa,KAAK,CAACC,aAAYA,SAAQ,SAASD,KAAI;AACpE,YAAM,QAAQ,SAAS,SAAS;AAAA,QAC9B,CAAC,UAAU,MAAM,SAAS;AAAA,MAC5B;AAEA,UAAI,CAAC,WAAW,UAAU;AAAI,eAAO,EAAE,MAAAA,OAAM,QAAQ;AAErD,aAAO;AAAA,QACL,MAAAA;AAAA,QACA,SAAS,CAAC,QAAQ,KAAK,QAAQ,SAAS,QAAQ,CAAC,EAAE;AAAA,MACrD;AAAA,IACF,CAAC;AAAA,EACH;AAEA,SACE,gBAAAH;AAAA,IAAC,eAAe;AAAA,IAAf;AAAA,MACC,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,GAAG;AAAA,MACL;AAAA,MAEA,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAO;AAAA,YACL,UAAU;AAAA,cACR,mBAAmB,WAAW,WAAW,CAAC;AAAA,YAC5C;AAAA,UACF;AAAA,UAEC;AAAA;AAAA,MACH;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,yBAAQ;;;ACtOR,IAAM,aAAa,CAAC,QAAgB,IAAI,QAAQ,eAAe,EAAE;AAWjE,IAAM,UAAU,CAAC,QAAgB;AACtC,SAAO,IACJ,UAAU,KAAK,EACf,QAAQ,oBAAoB,EAAE,EAC9B,YAAY,EACZ,QAAQ,aAAa,EAAE,EACvB,QAAQ,QAAQ,GAAG,EACnB,QAAQ,OAAO,GAAG,EAClB,KAAK;AACV;AAIO,IAAM,mBAAkD,CAAC,aAAa;AAC3E,MAAI,CAAC;AAAU,WAAO;AAAA,WACb,MAAM,QAAQ,QAAQ;AAC7B,WAAO,SACJ,IAAI,CAAC,UAAU;AACd,UAAI,OAAO,UAAU;AAAU,eAAO;AACtC,aAAO,iBAAiB,MAAM,MAAM,QAAQ;AAAA,IAC9C,CAAC,EACA,KAAK,EAAE;AAAA,OACP;AACH,QAAI,OAAO,aAAa;AAAU,aAAO;AACzC,WAAO,iBAAiB,SAAS,OAAO,EAAE,UAAU,CAAC;AAAA,EACvD;AACF;;;ACrCA,OAAO,aAAa;AAEpB,IAAM,cAAc,MAAM;AACxB,UAAQ,WAAW;AAAA,IACjB,OAAO;AAAA,IACP,gBAAgB;AAAA,MACd,cAAc;AAAA,MACd,kBAAkB;AAAA,MAClB,oBAAoB;AAAA,MACpB,qBAAqB;AAAA,MACrB,gBAAgB;AAAA,MAChB,kBAAkB;AAAA,MAClB,WAAW;AAAA,MACX,SAAS;AAAA,IACX;AAAA,EACF,CAAC;AACH;AAEA,IAAO,sBAAQ;;;AClBf,IAAAK,kBAAA;AAAA,EAAC,KAAAC;AAAA,EAMA,SAAAC;AAAA,EAOA,MAAAC;AAAA,EAgBA,YAAAC;AAAA,EAoCA,gBAAAC;AAAA,EAeA,kBAAAC;AAAA,EAeA,mBAAAC;AAAA,EAuBA,mBAAAC;AAAA,EAeA,UAAAC;AAAA,EAKA,cAAAC;AAAA;;;AC1ID;AAAA,EACE,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,yBAAyB;AAAA,EACzB,wBAAwB;AAAA,EACxB,yBAAyB;AAAA,EACzB,sBAAsB;AAAA,EACtB,4BAA4B;AAAA,EAC5B,0BAA0B;AAAA,EAC1B,8BAA8B;AAAA,EAC9B,qBAAqB;AAAA,EACrB,gCAAgC;AAAA,EAChC,8BAA8B;AAAA,EAC9B,wBAAwB;AAAA,EACxB,0BAA0B;AAAA,EAC1B,sBAAsB;AAAA,EACtB,kBAAkB;AAAA,EAClB,uBAAuB;AAAA,EACvB,oCAAsC;AAAA,EACtC,8BAAgC;AAAA,EAChC,oBAAoB;AAAA,EACpB,0BAA0B;AAAA,EAC1B,qBAAqB;AAAA,EACrB,sBAAsB;AACxB;;;AC1BA;AAAA,EACE,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,yBAAyB;AAAA,EACzB,wBAAwB;AAAA,EACxB,yBAAyB;AAAA,EACzB,sBAAsB;AAAA,EACtB,4BAA4B;AAAA,EAC5B,8BAA8B;AAAA,EAC9B,0BAA0B;AAAA,EAC1B,8BAA8B;AAAA,EAC9B,qBAAqB;AAAA,EACrB,gCAAgC;AAAA,EAChC,wBAAwB;AAAA,EACxB,0BAA0B;AAAA,EAC1B,sBAAsB;AAAA,EACtB,kBAAkB;AAAA,EAClB,uBAAuB;AAAA,EACvB,oCAAsC;AAAA,EACtC,8BAAgC;AAAA,EAChC,oBAAoB;AAAA,EACpB,0BAA0B;AAAA,EAC1B,qBAAqB;AAAA,EACrB,sBAAsB;AACxB;;;AC1BA;AAAA,EACE,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,yBAAyB;AAAA,EACzB,wBAAwB;AAAA,EACxB,yBAAyB;AAAA,EACzB,sBAAsB;AAAA,EACtB,4BAA4B;AAAA,EAC5B,8BAA8B;AAAA,EAC9B,0BAA0B;AAAA,EAC1B,8BAA8B;AAAA,EAC9B,qBAAqB;AAAA,EACrB,gCAAgC;AAAA,EAChC,wBAAwB;AAAA,EACxB,0BAA0B;AAAA,EAC1B,sBAAsB;AAAA,EACtB,kBAAkB;AAAA,EAClB,uBAAuB;AAAA,EACvB,oCAAsC;AAAA,EACtC,8BAAgC;AAAA,EAChC,oBAAoB;AAAA,EACpB,0BAA0B;AAAA,EAC1B,qBAAqB;AAAA,EACrB,sBAAsB;AACxB;;;ACrBA,IAAM,cAAc,MAIf;AACH,QAAMC,YAAW;AAAA,IACf,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EACN;AAEA,SAAOA;AACT;AAEO,IAAM,WAAW,YAAY;;;ApB+B5B,gBAAAC,MAwFJ,QAAAC,aAxFI;AAxBR,oBAAY;AAEZ,IAAM,oBAAoB,CAAC;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAA8B;AAC5B,QAAM,CAAC,GAAG,IAAI,IAAIC,UAAS,QAAQ;AACnC,QAAM,YAAY,iBAAiB,aAAa,QAAQ;AACxD,QAAM,OAAO,QAAQ,SAAS;AAC9B,SACE,gBAAAF;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,MACX,WAAU;AAAA,MACV,YAAW;AAAA,MACX,UAAU,CAAC,QAAQ,UAAU;AAC3B,YAAI;AAAQ,sBAAY,IAAI;AAAA;AACvB,sBAAY,MAAM,OAAO,CAAC;AAE/B,aAAK,MAAM,mBAAmB,CAAC;AAAA,MACjC;AAAA,MAEC,oBAAU,IACT,gBAAAA,KAAC,QAAG,IAAI,MAAM,WAAWG,gBAAO,SAAU,GAAG,cAAc,IAE3D,gBAAAH,KAAC,QAAG,IAAI,MAAM,WAAWG,gBAAO,SAAU,GAAG,cAAc;AAAA;AAAA,EAE/D;AAEJ;AAEA,IAAM,UAAU,CAAC,EAAE,MAAM,MAAAC,OAAM,GAAG,MAAM,MAAiB;AACvD,QAAM,iBAAyBA,QAAOA,QAAO;AAC7C,SACE,gBAAAJ;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,GAAGG,gBAAO,UAAU,IAC7B,mBAAmB,SACfA,gBAAO,iBACP,mBAAmB,WACnBA,gBAAO,mBACP,mBAAmB,YACnBA,gBAAO,oBACP,mBAAmB,YACnBA,gBAAO,oBACP,EACN;AAAA,MAEA,0BAAAH,KAAC,SAAK,GAAG,OAAO;AAAA;AAAA,EAClB;AAEJ;AAEA,IAAM,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,MAAiB;AACxD,QAAM,YAAYK,QAAwB,IAAI;AAC9C,QAAM,MAAMA,QAAoB;AAEhC,QAAM,CAAC,SAAS,UAAU,IAAIH,UAAS,EAAE;AACzC,QAAM,CAAC,OAAO,QAAQ,IAAIA,UAAS,CAAC;AACpC,QAAM,CAAC,QAAQ,SAAS,IAAIA,UAAS,CAAC;AAEtC,EAAAI,WAAU,MAAM;AACd,UAAM,iBAAiB,IAAI,eAAe,MAAM;AAC9C,UAAI,CAAC,IAAI;AAAS;AAClB,YAAMC,SAAQ,IAAI,QAAQ;AAC1B,eAASA,MAAK;AACd,gBAAUA,SAAQ,CAAC;AAAA,IACrB,CAAC;AAED,UAAM,kBAAkB,iBAAkB;AACxC,YAAM,EAAE,IAAI,IAAI,MAAMC,SAAQ,OAAO,cAAc,MAAM,QAAQ;AACjE;AAAA,QACE,IAAI,QAAQ,mBAAmB,EAAE,EAAE,WAAW,eAAe,EAAE;AAAA,MACjE;AAAA,IACF;AAEA,oBAAgB;AAChB,QAAI,IAAI;AAAS,qBAAe,QAAQ,IAAI,OAAO;AAAA,EACrD,GAAG,CAAC,CAAC;AAEL,SACE,gBAAAR,KAACS,MAAA,EAAI,KAAU,WAAWN,gBAAO,cAC/B,0BAAAH;AAAA,IAAC;AAAA;AAAA,MACC,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA,gBAAgB;AAAA,QACd,UAAU;AAAA,QACV,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,YAAY;AAAA,MACd;AAAA,MACA,YAAY;AAAA,MACZ,eAAe;AAAA,MACf,aAAa;AAAA,MAEb,0BAAAA,KAAC,SAAI,OAAc,QAChB,gBAAM,OAAO,GAChB;AAAA;AAAA,EACF,GACF;AAEJ;AAEA,IAAM,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,MAAiB;AACxD,QAAM,CAAC,aAAa,cAAc,IAAIE,UAAS,KAAK;AACpD,QAAM,EAAE,OAAO,IAAI,WAAW,cAAc;AAC5C,QAAM;AAAA;AAAA,IAEJ,gBAAAF,KAAC,SAAI,KAAK,MAAM,KAAK,KAAK,MAAM,KAAK,SAAS,MAAM,eAAe,IAAI,GAAG;AAAA;AAE5E,QAAM,eACJ,gBAAAC,MAAC,gBAAW,WAAW,GAAGE,gBAAO,UAAU,IAAIA,gBAAO,iBAAiB,IACpE;AAAA,aAAS,MAAM,EAAE,qBAAqB;AAAA,IAAE;AAAA,IAAE,MAAM;AAAA,KACnD;AAGF,MAAI,OAAwC,EAAE,QAAQ,IAAI,KAAK,CAAC,EAAE;AAClE,MAAI;AACF,WAAO,KAAK,MAAM,MAAM,GAAG;AAAA,EAC7B,SAAS,OAAO;AACd,YAAQ,IAAI,iBAAiB,KAAK;AAClC,WAAO;AAAA,EACT;AACA,SAAO,CAAC,cAAc,gBAAAH,KAAC,YAAU,sBAAW,IAAc;AAC5D;AAEA,IAAO,qBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,MACtB,gBAAAA,KAACU,OAAA,EAAK,WAAWP,gBAAO,UAAW,GAAG,OAAO;AAAA,EAE/C,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,MAAiB,gBAAAH,KAAC,WAAO,GAAG,OAAO;AAAA,EAC5D,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,MAAiB,gBAAAA,KAAC,QAAI,GAAG,OAAO;AAAA,EACtD,KAAK;AAAA,EACL,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,MAAiB;AACvC,WAAO,gBAAAA,KAACS,MAAA,EAAI,IAAI,EAAE,aAAa,MAAM,GAAI,GAAG,OAAO;AAAA,EACrD;AAAA,EACA,YAAY,CAAC,EAAE,GAAG,MAAM,MAAiB;AACvC,WAAO,gBAAAT,KAAC,WAAS,GAAG,OAAO;AAAA,EAC7B;AAAA,EACA,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,MAAiB;AACvC,WAAO,gBAAAA,KAAC,UAAK,WAAWG,gBAAO,MAAO,GAAG,OAAO;AAAA,EAClD;AAAA,EACA,KAAK,CAAC,EAAE,GAAG,MAAM,MAAiB;AAChC,QAAI,MAAM,aAAa,MAAM,cAAc;AACzC,aAAO,gBAAAH,KAAC,kBAAgB,GAAG,OAAO;AAEpC,WAAO,gBAAAA,KAAC,SAAI,WAAWG,gBAAO,KAAM,GAAG,OAAO;AAAA,EAChD;AAAA,EACA,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,MAAiB;AACrC,UAAM,EAAE,YAAY,eAAe,iBAAiB,IAClD,WAAW,cAAc;AAE3B,WACE,gBAAAH;AAAA,MAAC;AAAA;AAAA,QACC,OAAO;AAAA,QACP,aAAa,CAAC,SAAS;AACrB,wBAAc,CAAC,EAAE,MAAAW,OAAM,QAAQ,OAAO;AAAA,YACpC,MAAM;AAAA,YACN,SAASA,UAAS,OAAO,KAAK;AAAA,UAChC,EAAE;AAAA,QACJ;AAAA,QACA,aAAa,CAAC,MAAM,OAAO,MAAM;AAC/B,cAAI,MAAM,mBAAmB,IAAI,KAAK,WAAW,SAAS,MAAM;AAC9D,6BAAiB;AAAA,UACnB;AAAA,QACF;AAAA,QACC,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AAAA,EACA,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,MAAiB;AACrC,UAAM,EAAE,YAAY,eAAe,oBAAoB,IACrD,WAAW,cAAc;AAE3B,WACE,gBAAAX;AAAA,MAAC;AAAA;AAAA,QACC,OAAO;AAAA,QACP,aAAa,CAAC,SAAS;AACrB,wBAAc,CAAC,EAAE,MAAAW,MAAK,OAAO;AAAA,YAC3B,MAAAA;AAAA,YACA,SAAS;AAAA,UACX,EAAE;AAAA,QACJ;AAAA,QACA,aAAa,CAAC,MAAM,OAAO,MAAM;AAC/B,cAAI,MAAM,mBAAmB,IAAI,KAAK,WAAW,YAAY,MAAM;AACjE,gCAAoB;AAAA,UACtB;AAAA,QACF;AAAA,QACC,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACF;;;ADjNQ,gBAAAC,aAAA;AAVR,IAAM,aAAa;AAEnB,IAAM,mBAAmB,CAAC;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AACF,MAA6B;AAC3B,MAAI,sBAAc,OAAO;AACvB,WACE,gBAAAA,MAACC,MAAA,EACC,0BAAAD;AAAA,MAAC;AAAA;AAAA,QACC,YAAY,EAAE,GAAG,oBAAY,GAAG,iBAAiB;AAAA,QACjD,MAAI;AAAA,QACH,GAAG;AAAA,QACJ;AAAA;AAAA,IACF,GACF;AAAA,EAEJ;AAEA,SACE,gBAAAA,MAACC,MAAA,EACC,0BAAAD,MAAC,cAAW,YAAY,oBAAY,MAAI,MAAE,GAAG,YAAY,GAC3D;AAEJ;AAEA,IAAO,2BAAQ;;;AsBhCf,SAAS,cAAAE,aAAY,aAAAC,kBAAiB;AACtC,OAAOC,WAAU;AACjB,SAAS,iBAAiB;AAC1B,SAAS,OAAAC,MAAK,QAAAC,aAAY;AAC1B,OAAO,mBAAmB;;;ACF1B,IAAM,iBAA8B;AAAA,EAClC,UAAU;AAAA,EACV,KAAK;AACP;AAEA,IAAM,WAAwB;AAAA,EAC5B,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,IAAI;AAAA,EACJ,OAAO;AACT;AAEA,IAAM,WAAwB;AAAA,EAC5B,YAAY;AAAA,EACZ,IAAI;AACN;AAEA,IAAM,OAAwD,CAC5D,OACA,WACG;AACH,QAAM,oBAAoB,GAAG,UAAU,IAAI,KAAK,EAAE;AAClD,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,IAAI,GAAG,QAAQ,CAAC;AAAA,IAChB,IAAI,CAAC,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK;AAAA,IAC7C,YAAY,aAAa,UAAU,UAAU,IAAI,YAAY,SAAS;AAAA,IACtE,UAAU,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,MAAM;AAAA,IACzD,YAAY;AAAA,MACV;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG,UAAU,IAAI,KAAK,EAAE;AAAA,MACxB;AAAA,IACF;AAAA,IACA,YAAY,GAAG,SAAS,QAAQ,KAAK;AAAA,IACrC,OAAO,GAAG,SAAS,YAAY,SAAS;AAAA,IAExC,UAAU;AAAA,MACR,OAAO;AAAA,IACT;AAAA,EACF;AACF;AAEA,IAAM,oBAAiC;AAAA,EACrC,IAAI;AAAA,EACJ,YAAY;AACd;AAEA,IAAOC,kBAAQ,EAAE,UAAU,gBAAgB,MAAM,mBAAmB,SAAS;;;ADerE,gBAAAC,OAYE,QAAAC,aAZF;AAhDR,IAAM,kBAAkB,CAAC,EAAE,aAAa,SAAS,MAAa;AAC5D,QAAM,SAAS,UAAU;AACzB,QAAM,EAAE,cAAc,YAAY,iBAAiB,cAAc,IAC/DC,YAAW,cAAc;AAE3B,EAAAC,WAAU,MAAM;AACd,UAAMC,YAAmB,eAAe,CAAC;AACzC,QAAI,CAACA,UAAS,QAAQ;AACpB,eAAS,iBAAiB,QAAQ,EAAE,QAAQ,CAAC,YAAY;AACvD,cAAM,cAAc,QAAQ;AAC5B,cAAMC,QAAO;AAAA,UACX,OAAO,WAAW,QAAQ,SAAS,EAAE,QAAQ,KAAK,EAAE;AAAA,UACpD,MAAM;AAAA,QACR;AAEA,YAAI,QAAQ,YAAY,MAAM;AAC5B,UAAAD,UAAS,KAAK,EAAE,GAAGC,OAAM,UAAU,CAAC,EAAE,CAAC;AAAA,QACzC,WAAWD,UAAS,SAAS,GAAG;AAC9B,UAAAA,UAASA,UAAS,SAAS,CAAC,EAAE,SAAS,KAAK,EAAE,GAAGC,MAAK,CAAC;AAAA,QACzD,OAAO;AACL,UAAAD,UAAS,KAAK,EAAE,GAAGC,OAAM,UAAU,CAAC,EAAE,CAAC;AAAA,QACzC;AAAA,MACF,CAAC;AACD,sBAAgBD,SAAQ;AAAA,IAC1B;AAAO,sBAAgBA,SAAQ;AAAA,EACjC,GAAG,CAAC,OAAO,QAAQ,WAAW,CAAC;AAE/B,QAAM,OAAO,CAAC;AAAA,IACZ,OAAAE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,MAKM;AACJ,WACE,gBAAAN;AAAA,MAACO;AAAA,MAAA;AAAA,QACC,MAAM,IAAI,IAAI;AAAA,QACd,SAAS,MAAM;AACb,wBAAc,CAAC,EAAE,MAAAF,MAAK,OAAO;AAAA,YAC3B,MAAM,UAAU,IAAI,OAAOA;AAAA,YAC3B,SAAS,UAAU,IAAI,KAAK;AAAA,UAC9B,EAAE;AAAA,QACJ;AAAA,QAEA,0BAAAL,MAACQ,OAAA,EAAK,IAAIC,gBAAO,KAAK,OAAO,MAAM,GAAI,UAAAH,QAAM;AAAA;AAAA,IAC/C;AAAA,EAEJ;AAEA,SACE,gBAAAL,MAACS,MAAA,EAAI,IAAID,gBAAO,gBAAgB,WAAQ,qBACrC;AAAA,iBAAa,SAAS,KACrB,gBAAAT,MAACQ,OAAA,EAAK,IAAIC,gBAAO,UAAU,0BAAY;AAAA,IAEzC,gBAAAT,MAACU,MAAA,EAAI,IAAID,gBAAO,UACb,uBAAa,IAAI,CAACJ,UACjB,gBAAAJ,MAACS,MAAA,EACC;AAAA,sBAAAV;AAAA,QAAC;AAAA;AAAA,UACC,OAAOK,MAAK;AAAA,UACZ,MAAMA,MAAK;AAAA,UACX,OAAO;AAAA,UACP,QAAQA,MAAK,SAAS,WAAW;AAAA;AAAA,MACnC;AAAA,MACA,gBAAAL;AAAA,QAAC;AAAA;AAAA,UACC,UAAU;AAAA,UACV,QAAQK,MAAK,SAAS,WAAW,OAAO,SAAS;AAAA,UAEjD,0BAAAL,MAACU,MAAA,EAAI,IAAID,gBAAO,mBACb,UAAAJ,MAAK,SAAS,IAAI,CAAC,YAClB,gBAAAL;AAAA,YAAC;AAAA;AAAA,cAEC,OAAO,QAAQ;AAAA,cACf,MAAM,QAAQ;AAAA,cACd,OAAO;AAAA,cACP,QAAQ,QAAQ,SAAS,WAAW;AAAA;AAAA,YAJ/B,QAAQ;AAAA,UAKf,CACD,GACH;AAAA;AAAA,MACF;AAAA,SAtBQK,MAAK,IAuBf,CACD,GACH;AAAA,IACC;AAAA,KACH;AAEJ;AAEA,IAAO,0BAAQ;;;AE/Gf,SAAS,aAAAM,YAAW,UAAAC,SAAQ,YAAAC,WAAU,cAAAC,mBAAkB;AACxD,SAAS,QAAAC,QAAM,QAAAC,OAAM,OAAAC,aAAW;AAChC,OAAOC,WAAU;;;ACAjB,IAAM,UAAuB;AAAA,EAC3B,SAAS;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,UAAU;AAAA,EACV,MAAM;AAAA,EACN,KAAK;AAAA,EACL,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,WAAW;AAAA,IACT,YAAY;AAAA,IACZ,YAAY;AAAA,EACd;AAAA,EACA,0BAA0B;AAAA,IACxB,YAAY;AAAA,IACZ,OAAO;AAAA,EACT;AAAA,EACA,4BAA4B;AAAA,IAC1B,SAAS;AAAA,EACX;AACF;AAEA,IAAM,eAA4B;AAAA,EAChC,OAAO,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,OAAO;AAAA,EACvD,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,eAAe;AACjB;AAEA,IAAMC,iBAA6B;AAAA,EACjC,UAAU;AACZ;AAEA,IAAM,UAAuB;AAAA,EAC3B,IAAI,CAAC,MAAM;AAAA,EACX,OAAO;AAAA,EACP,UAAU;AAAA,EACV,aAAa,CAAC,KAAK,KAAK,KAAK,KAAK;AAAA,EAClC,cAAc,CAAC,KAAK,KAAK,KAAK,OAAO,OAAO,GAAG;AAAA,EAC/C,IAAI,CAAC,KAAK,KAAK,KAAK,OAAO,OAAO,MAAM;AAAA,EACxC,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,MAAM;AAAA,MACJ,QAAQ;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAM,gBAA6B;AAAA,EACjC,GAAG;AAAA,EACH,YAAY,CAAC,WAAW,WAAW,WAAW,WAAW,WAAW,MAAM;AAAA,EAC1E,OAAO;AACT;AAEA,IAAM,wBAAqC;AAAA,EACzC,OAAO;AAAA,EACP,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,IAAI,CAAC,KAAK,KAAK,KAAK,KAAK;AAC3B;AAEA,IAAM,OAAoB;AAAA,EACxB,OAAO,CAAC,MAAM;AAAA,EACd,QAAQ,CAAC,MAAM;AACjB;AAEA,IAAM,aAA0B;AAAA,EAC9B,GAAG;AAAA,EACH,UAAU;AAAA,IACR,QAAQ;AAAA,EACV;AACF;AAEA,IAAM,iBAA8B;AAAA,EAClC,IAAI;AAAA,EACJ,WAAW;AAAA,EACX,IAAI;AAAA,IACF,QAAQ;AAAA,IACR,WAAW;AAAA,EACb;AACF;AAEA,IAAM,YAAyB;AAAA,EAC7B,SAAS,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,OAAO;AAAA,EACzD,OAAO;AAAA,EACP,UAAU;AAAA,EACV,IAAI,CAAC,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM;AAAA,EAC9C,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,cAAc;AAChB;AAEA,IAAM,cAA2B;AAAA,EAC/B,SAAS;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,IAAOC,kBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA,eAAAD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;AC5IO,IAAM,mBAAgC,CAAC,iBAA0B;AACtE,QAAME,eAA2B;AAAA,IAC/B,SAAS;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAe,SAAS;AAAA,IAC1B;AAAA,EACF;AACA,SAAOA;AACT;;;ACdA,SAAS,aAAAC,YAAW,UAAAC,SAAQ,YAAAC,iBAAgB;AAC5C,SAAS,OAAAC,MAAK,QAAAC,aAAuC;;;ACGrD,IAAM,mBAOa,CAAC,IAAI,WAAW,OAAO,QAAQ,GAAG,MAAM;AACzD,QAAM,WAAW;AAAA,IACf,QAAQ;AAAA,MACN,MAAM,GAAG,IAAI,QAAQ,CAAC;AAAA,MACtB,KAAK,GAAG,IAAI,SAAS,CAAC;AAAA,IACxB;AAAA,IACA,MAAM;AAAA,MACJ,MAAM,GAAG,IAAI,CAAC;AAAA,MACd,KAAK,GAAG,IAAI,SAAS,CAAC;AAAA,IACxB;AAAA,IACA,KAAK;AAAA,MACH,MAAM,GAAG,IAAI,QAAQ,CAAC;AAAA,MACtB,KAAK,GAAG,IAAI,CAAC;AAAA,IACf;AAAA,IACA,OAAO;AAAA,MACL,MAAM,GAAG,IAAI,QAAQ,CAAC;AAAA,MACtB,KAAK,GAAG,IAAI,SAAS,CAAC;AAAA,IACxB;AAAA,EACF;AAEA,QAAM,cAAc;AAAA,IAClB,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,KAAK;AAAA,IACL,OAAO;AAAA,EACT;AAEA,QAAM,YAAY;AAAA,IAChB,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,KAAK;AAAA,IACL,OAAO;AAAA,EACT;AAEA,SAAO;AAAA,IACL,GAAG;AAAA,IACH,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,GAAG,SAAS,SAAS;AAAA,IACrB,WAAW,YAAY,SAAS;AAAA,IAChC,eAAe,UAAU,SAAS;AAAA,EACpC;AACF;AAEA,IAAM,QAA+C,CAAC,cAAc;AAClE,QAAM,WAAW;AAAA,IACf,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,KAAK;AAAA,IACL,OAAO;AAAA,EACT;AAEA,QAAM,cAAc;AAAA,IAClB,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,KAAK;AAAA,IACL,OAAO;AAAA,EACT;AAEA,SAAO;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,WAAW,UAAU,SAAS,SAAS,CAAC,mBAAmB,YAAY,SAAS,CAAC;AAAA,EACnF;AACF;AAEA,IAAM,QAAqB;AAAA,EACzB,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AACd;AAEA,IAAM,4BAAyC;AAAA,EAC7C,GAAG;AAAA,EACH,SAAS;AACX;AAEA,IAAM,8BAA2C;AAAA,EAC/C,GAAG;AAAA,EACH,OAAO;AAAA,EACP,WAAW;AAAA,EACX,IAAI;AAAA,EACJ,IAAI;AACN;AAEA,IAAM,aAAa,CAAC,yBAA+C;AACjE,MAAI;AAAsB,WAAO;AACjC,SAAO;AACT;AACA,IAAOC,kBAAQ,EAAE,kBAAkB,OAAO,WAAW;;;AC1GrD,SAAS,QAAAC,aAAY;AAWjB,gBAAAC,aAAA;AATJ,IAAM,YAAY,CAAC,UACjB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN,0BAAAC;AAAA,MAAC;AAAA;AAAA,QACC,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA;AACF;AAGF,IAAO,gBAAQ;;;AFgBT,gBAAAC,OAQE,QAAAC,aARF;AAzBN,IAAM,UAAU,CAAC,EAAE,UAAU,OAAAC,QAAO,WAAW,IAAI,OAAO,MAAa;AACrE,QAAMC,OAAMC,QAAuB;AACnC,QAAM,CAAC,UAAU,WAAW,IAAIC,UAAS,CAAC;AAC1C,QAAM,CAAC,WAAW,YAAY,IAAIA,UAAS,CAAC;AAC5C,QAAM,CAAC,eAAe,gBAAgB,IAAIA,UAAS,CAAC;AACpD,QAAM,CAAC,cAAc,eAAe,IAAIA,UAAS,CAAC;AAClD,QAAM,CAAC,SAAS,UAAU,IAAIA,UAAS,KAAK;AAE5C,EAAAC,WAAU,MAAM;AACd,QAAIH,KAAI,SAAS;AACf,kBAAYA,KAAI,QAAQ,WAAW;AACnC,mBAAaA,KAAI,QAAQ,YAAY;AACrC,uBAAiBA,KAAI,QAAQ,UAAU;AACvC,sBAAgBA,KAAI,QAAQ,SAAS;AAAA,IACvC;AAAA,EACF,GAAG;AAAA,IACDA,KAAI;AAAA,IACJA,KAAI,SAAS;AAAA,IACbA,KAAI,SAAS;AAAA,IACbA,KAAI,SAAS;AAAA,IACbA,KAAI,SAAS;AAAA,EACf,CAAC;AAED,SACE,gBAAAF,MAACM,MAAA,EACC;AAAA,oBAAAP;AAAA,MAACO;AAAA,MAAA;AAAA,QACC,KAAKJ;AAAA,QACL,cAAc,MAAM,WAAW,IAAI;AAAA,QACnC,cAAc,MAAM,WAAW,KAAK;AAAA,QAEnC;AAAA;AAAA,IACH;AAAA,IACC,YAAY,UAAU,SACrB,gBAAAF;AAAA,MAACO;AAAA,MAAA;AAAA,QACC,IAAIC,gBAAO;AAAA,UACT;AAAA,UACA,aAAa;AAAA,UACb;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QAEA;AAAA,0BAAAT,MAAC,iBAAU,IAAIS,gBAAO,MAAM,aAAa,KAAK,GAAG;AAAA,UACjD,gBAAAT,MAACO,MAAA,EAAI,IAAIE,gBAAO,WAAW,UAAU,KAAK,GAAI,UAAAP,QAAM;AAAA;AAAA;AAAA,IACtD;AAAA,KAEJ;AAEJ;AAEA,IAAO,kBAAQ;;;AG7DR,IAAM,cAAc,CAEzB,MAAW,CAAC,GAEZ,MAAW,CAAC,GACZ,WAAW,OAEH;AACR,aAAW,OAAO,KAAK;AACrB,QAAI,OAAO,IAAI,GAAG,MAAM,UAAU;AAChC,UAAI,WAAW,GAAG,IAAI,IAAI,GAAG;AAAA,IAC/B,OAAO;AACL,kBAAY,IAAI,GAAG,GAAG,KAAK,GAAG,QAAQ,GAAG,GAAG,GAAG;AAAA,IACjD;AAAA,EACF;AACA,SAAO;AACT;AAEO,IAAM,mBAAmB,CAC9B,QACA,UACA,MACA,WACG;AACH,QAAM,YAAY,OAAO,KAAK,MAAM,EAAE,OAAO,CAAC,QAAQ,OAAO,GAAG,MAAM,IAAI;AAC1E,MAAI,OAAO;AACX,aAAW,IAAI,CAAC,OAAO;AACrB,QACE,UACA,OAAO,GAAG,GAAG,QAAQ,SAAS,SAAS,CAAC,EAAE,KAAK,QAAQ,YAAY,KACnE,OAAO,GAAG,GAAG,QAAQ,SAAS,WAAW,CAAC,EAAE,KAAK,UACjD;AACA,aAAO;AAAA,IACT,WAAW,YAAY,QAAQ,GAAG,QAAQ,SAAS,WAAW,CAAC,GAAG;AAChE,aAAO;AAAA,IACT;AAAA,EACF,CAAC;AACD,SAAO;AACT;AAEA,SAAS,YACP,eACA,YACS;AACT,aAAW,OAAO,eAAe;AAC/B,QAAI,IAAI,WAAW,GAAG,UAAU,GAAG,GAAG;AACpC,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AAEO,IAAM,aAAa,CACxB,MACA,MACA,kBACA,cACA,WACG;AACH,QAAM,YAAY,MAAM,MAAM,UAAU;AACxC,aAAW,OAAO,EAAE;AACpB,MAAI,OAAO;AACX,aAAW,IAAI,CAAC,OAAO;AACrB,SAAK,OAAO;AACZ,WAAO,KAAK;AAEZ,QAAI,CAAC,UAAU,iBAAiB,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,SAAS,MAAM,GAAG;AAChE,mBAAa,KAAK,iBAAiB,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;AAAA,IACpD;AAAA,EACF,CAAC;AACD,SAAO;AACT;;;ACrEA,SAAS,aAAAQ,kBAAiB;AAC1B,SAAS,aAAAC,kBAAiB;AAGnB,IAAMC,WAAU,CAAC,KAAa,aAA0B;AAC7D,aAAW,WAAW,UAAU;AAC9B,WAAO,QAAQ,KAAK,CAACC,UAASA,MAAK,UAAU,GAAG,GAAG;AAAA,EACrD;AACF;AAMO,IAAM,iBAAiB,CAAC;AAAA,EAC7B,eAAe,CAAC;AAAA,EAChB;AACF,MAA2B;AACzB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,mBAAmB,YAAY,iBAAiB;AACtD,QAAM,SAASH,WAAU;AAEzB,MAAI,aAAa;AACjB,QAAM,YAAY,OAAO,MAAM;AAE/B,MAAI,aAAa,OAAO,aAAa,8BAA8B;AACjE,iBAAa,OAAO,OAAO,QAAQ,wBAAwB,EAAE;AAC7D,UAAM,UAAU,WAAW,MAAM,GAAG;AACpC,UAAM,aAAa,OAAO,OAAO,QAAQ,GAAG,IAAI;AAChD,UAAM,UAAU,QAAQ,CAAC,EAAE,MAAM,aAAa,MAAM,YAAY,EAAE,CAAC;AACnE,UAAM,WAAW,MAAM,QAAQ,OAAO,GAAG,QAAQ,MAAM,EAAE,KAAK,GAAG;AACjE,QAAI;AACJ,QAAI,YAAY,KAAK;AACnB,mBAAa;AACb,gBAAU,iBAAiB,kBAAkB,IAAI,OAAO;AAAA,IAC1D,OAAO;AACL,YAAM,SAAS,QAAQ,CAAC,EACrB,MAAM,aAAa,MAAM,YAAY,EAAE,CAAC,EACxC,MAAM,GAAG,EAAE,CAAC;AACf,gBAAU,iBAAiB,kBAAkB,UAAU,SAAS,MAAM;AAAA,IACxE;AACA,iBAAa,KAAK,UAAU;AAC5B,QAAI,SAAS;AACX,iBAAW,SAAS,QAAQ,kBAAkB,YAAY;AAAA,IAC5D;AAAA,EACF,OAAO;AACL,iBAAa,aAAa,aAAa,SAAS,CAAC;AAAA,EACnD;AAEA,EAAAC,WAAU,MAAM;AACd,yBAAqB,YAAY;AACjC,iBAAa,QAAQ,CAAC,SAAiB;AACrC,yBAAmB,IAAI;AAAA,IACzB,CAAC;AACD,4BAAwB,YAAY,QAAQ,cAAc,GAAG,CAAC;AAAA,EAChE,GAAG,CAAC,sBAAsB,MAAM,CAAC;AACnC;;;AC/DA,SAAS,QAAAG,OAAM,OAAAC,OAAK,QAAAC,OAAM,UAAAC,eAAc;AACxC,SAAS,cAAAC,aAAY,SAAS,YAAAC,iBAAgB;;;ACA9C,IAAM,mBAAgC;AAAA,EACpC,UAAU;AAAA,EACV,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,eAAe;AAAA,IACb,SAAS;AAAA,IACT,YAAY;AAAA,EACd;AAAA,EACA,gBAAgB;AAAA,IACd,SAAS;AAAA,IACT,YAAY;AAAA,EACd;AAAA,EACA,UAAU;AAAA,IACR,eAAe;AAAA,MACb,SAAS;AAAA,MACT,YAAY;AAAA,IACd;AAAA,EACF;AACF;AAEA,IAAM,4BAAyC;AAAA,EAC7C,OAAO;AAAA,EACP,WAAW;AAAA,EACX,QAAQ;AACV;AAEA,IAAM,sBAAmC;AAAA,EACvC,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,WACE;AAAA,EACF,UAAU;AAAA,EACV,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,UAAU;AAAA,IACR,cAAc;AAAA,EAChB;AACF;AAEA,IAAM,+BAA4C;AAAA,EAChD,SAAS;AAAA,EACT,YAAY;AACd;AAEA,IAAM,uBAAoC;AAAA,EACxC,IAAI;AACN;AAEA,IAAM,yBAAsC;AAAA,EAC1C,GAAG;AACL;AAEA,IAAM,wBAAqC;AAAA,EACzC,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,KAAK;AAAA,EACL,SAAS;AAAA,EACT,cAAc;AAChB;AAEA,IAAM,eAA4B;AAAA,EAChC,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,YAAY;AACd;AAEA,IAAM,kBAA+B;AAAA,EACnC,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,QAAQ;AACV;AAEA,IAAM,YAAyB;AAAA,EAC7B,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,aAAa;AACf;AAEA,IAAM,cAA2B;AAAA,EAC/B,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,UAAU,CAAC,MAAM;AACnB;AAEA,IAAM,aAA0B;AAAA,EAC9B,UAAU;AAAA,EACV,WAAW;AAAA,EACX,OAAO;AAAA,EACP,IAAI;AACN;AAEA,IAAM,gBAA6B;AAAA,EACjC,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,UAAU;AAAA,EACV,KAAK;AAAA,EACL,OAAO;AAAA,EACP,QAAQ;AACV;AAEA,IAAM,sBAAmC;AAAA,EACvC,GAAG;AAAA,EACH,SAAS;AACX;AAEA,IAAM,aAA0B;AAAA,EAC9B,WAAW;AACb;AAEA,IAAM,cAA2B;AAAA,EAC/B,SAAS;AACX;AAEA,IAAM,cAA2B;AAAA,EAC/B,SAAS;AAAA,EACT,OAAO;AAAA,EACP,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,IAAI;AAAA,EACJ,KAAK;AAAA,IACH,OAAO;AAAA,IACP,IAAI;AAAA,EACN;AACF;AAEA,IAAOC,kBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;AC3KA,SAAS,OAAAC,MAAK,QAAAC,OAAM,QAAAC,aAAY;;;ACAhC,SAAS,QAAAC,OAAM,QAAAC,aAAyB;;;ACExC,IAAMC,aAAyB;AAAA,EAC7B,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,gBAAgB;AAClB;AAEA,IAAM,OAAoB;AAAA,EACxB,YAAY;AAAA,EACZ,UAAU;AACZ;AAEA,IAAM,YAAyB;AAAA,EAC7B,UAAU;AAAA,EACV,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,IAAI;AACN;AAEA,IAAOC,mBAAQ;AAAA,EACb,WAAAD;AAAA,EACA;AAAA,EACA;AACF;;;ACxBO,IAAM,gBAAgB;AAAA,EAC3B,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,YAAY;AAAA,EACd;AAAA,EACA,KAAK;AAAA,IACH,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,YAAY;AAAA,EACd;AAAA,EACA,KAAK;AAAA,IACH,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,YAAY;AAAA,EACd;AAAA,EACA,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,YAAY;AAAA,EACd;AAAA,EACA,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,YAAY;AAAA,EACd;AACF;AAEO,IAAM,gBAAgB,CAC3B,QACA,QACA,OACgB;AAChB,QAAM,iBAAiB,cAAc,MAAM,KAAK;AAAA,IAC9C,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,YAAY;AAAA,EACd;AAEA,QAAME,iBAA6B,SAC/B;AAAA,IACE,GAAGC,iBAAO;AAAA,IACV,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,MACR,wBAAwB;AAAA,QACtB,MAAM;AAAA,UACJ,MAAM,eAAe;AAAA,QACvB;AAAA,QACA,MAAM;AAAA,UACJ,QAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF;AAAA,EACF,IACA;AAAA,IACE,GAAGA,iBAAO;AAAA,IACV,OAAO,eAAe;AAAA,IACtB,GAAG;AAAA,EACL;AAEJ,SAAOD;AACT;AAEO,IAAM,eAAe,CAAC,QAAoB,WAA2B;AAC1E,QAAM,iBAAiB,OAAO,CAAC,IAAI,OAAO,MAAM,CAAC,EAAE,YAAY;AAC/D,MAAI,UAAU;AAAU,WAAO;AAC/B,SAAO,eAAe,MAAM,GAAG,CAAC;AAClC;AAEO,IAAM,qBAAqB,CAAC,WAAuB;AACxD,QAAM,iBAAiB,cAAc,MAAM;AAC3C,QAAMA,iBAA6B;AAAA,IACjC,GAAGC,iBAAO;AAAA,IACV,MAAM;AAAA,MACJ,MAAM;AAAA,IACR;AAAA,IACA,MAAM;AAAA,MACJ,QAAQ,eAAe;AAAA,IACzB;AAAA,EACF;AAEA,SAAOD;AACT;;;ACvFA,SAAS,QAAAE,aAAY;AAGnB,SAQE,OAAAC,OARF,QAAAC,aAAA;AADF,IAAM,kBAAkB,CAAC,UACvB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,UAAK,OAAM,MAAK,QAAO,MAAK,IAAG,KAAI,MAAK,WAAU;AAAA,MACnD,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,4BAAQ;;;AHVX,SACE,OAAAE,OADF,QAAAC,cAAA;AAPJ,IAAM,iBAAiB,CAAC;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA2B;AACzB,SACE,gBAAAA,OAACC,OAAA,EAAK,WAAU,mBAAkB,IAAI,cAAc,QAAQ,QAAQ,EAAE,GACpE;AAAA,oBAAAF,MAACG,OAAA,EAAK,IAAIC,iBAAO,MAAO,uBAAa,QAAQ,MAAM,GAAE;AAAA,IACpD,WAAW,YAAY,UACtB,gBAAAJ;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,IAAI,mBAAmB,MAAM;AAAA;AAAA,IAC/B;AAAA,KAEJ;AAEJ;AAEA,IAAO,0BAAQ;;;AD9Bf,SAAmC,cAAAK,aAAY,YAAAC,iBAAgB;;;AKA/D,IAAMC,aAAyB;AAAA,EAC7B,IAAI;AAAA,EACJ,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,eAAe;AAAA,EACf,IAAI;AACN;AAEA,IAAMC,QAAoB;AAAA,EACxB,IAAI;AACN;AAEA,IAAM,WAAwB;AAAA,EAC5B,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,IACR,aAAa;AAAA,EACf;AACF;AAEA,IAAM,QAAqB;AAAA,EACzB,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,UAAU;AAAA,IACR,OAAO;AAAA,EACT;AACF;AAEA,IAAOC,mBAAQ;AAAA,EACb,WAAAF;AAAA,EACA,MAAAC;AAAA,EACA;AAAA,EACA;AACF;;;ALsBQ,gBAAAE,OAeF,QAAAC,cAfE;AAvCR,IAAM,gBAAgB,CAAC;AAAA,EACrB;AAAA,EACA;AACF,MAA0B;AACxB,QAAM,CAAC,eAAe,gBAAgB,IAAIC,UAAuB,CAAC,CAAC;AACnE,QAAM,EAAE,OAAO,IAAIC,YAAW,cAAc;AAE5C,QAAM,YAAY,CAAC,wBAA2C;AAC5D,QAAI,qBAAqB;AACvB,YAAM,QAAQ,cAAc,QAAQ,mBAAmB;AACvD,gBAAU,KACN,iBAAiB,CAAC,GAAG,eAAe,mBAAmB,CAAC,IACxD;AAAA,QACE,cAAc,OAAO,CAAC,WAAW,WAAW,mBAAmB;AAAA,MACjE;AACJ;AAAA,QACE,iBAAiB,IAAI,CAAC,iBAAiB;AACrC,cAAI,aAAa,SAAS;AACxB,yBAAa,SAAS,CAAC,aAAa;AACtC,iBAAO;AAAA,QACT,CAAC;AAAA,MACH;AAAA,IACF,OAAO;AACL,uBAAiB,CAAC,CAAC;AACnB;AAAA,QACE,iBAAiB,IAAI,CAAC,iBAAiB;AACrC,uBAAa,SAAS;AACtB,iBAAO;AAAA,QACT,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AAEA,QAAM,eAAe,CAAC,EAAE,aAAa,MAAyB;AAC5D,WACE,gBAAAH;AAAA,MAACI;AAAA,MAAA;AAAA,QAEC,SAAS,MAAM,UAAU,aAAa,IAAkB;AAAA,QAExD,0BAAAJ;AAAA,UAAC;AAAA;AAAA,YACC,IAAIK,iBAAO;AAAA,YACX,QAAQ,aAAa;AAAA,YACrB,QAAQ,aAAa;AAAA,YACrB,QAAQ;AAAA;AAAA,QACV;AAAA;AAAA,MARK,mBAAmB,aAAa,IAAI;AAAA,IAS3C;AAAA,EAEJ;AAEA,SACE,gBAAAJ,OAACG,MAAA,EAAI,IAAIC,iBAAO,WACd;AAAA,oBAAAL,MAACM,OAAA,EAAK,IAAID,iBAAO,MACd,mBAAS,MAAM,EAAE,8BAA8B,GAClD;AAAA,IACA,gBAAAJ,OAACM,OAAA,EACE;AAAA,uBAAiB,IAAI,CAAC,iBACrB,gBAAAP;AAAA,QAAC;AAAA;AAAA,UAEC;AAAA;AAAA,QADK,mBAAmB,aAAa,IAAI;AAAA,MAE3C,CACD;AAAA,MACA,cAAc,SAAS,KACtB,gBAAAA,MAACM,OAAA,EAAK,SAAS,MAAM,UAAU,IAAI,GAAG,IAAID,iBAAO,OAC9C,mBAAS,MAAM,EAAE,oCAAoC,GACxD;AAAA,OAEJ;AAAA,KACF;AAEJ;AAEA,IAAO,iCAAQ;;;AM9Ff,SAAS,aAAAG,kBAAiB;AAC1B,SAAgB,UAAU,cAAAC,mBAAkB;AAC5C;AAAA,EACE,OAAAC;AAAA,EACA,QAAAC;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC;AAAA,EACA,aAAAC;AAAA,EACA;AAAA,OACK;;;ACPP,IAAM,mBAAgC;AAAA,EACpC,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,UAAU;AAAA,IACR,YAAY;AAAA,IACZ,GAAG;AAAA,MACD,OAAO;AAAA,MACP,sBAAsB;AAAA,QACpB,aAAa;AAAA,MACf;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAM,cAA2B;AAAA,EAC/B,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,cAAc;AAAA,EACd,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,QAAQ;AACV;AAEA,IAAM,gBAA6B;AAAA,EACjC,GAAG;AAAA,EACH,OAAO;AACT;AAEA,IAAM,YAAyB;AAAA,EAC7B,SAAS;AAAA,EACT,OAAO;AAAA,EACP,QAAQ;AACV;AAEA,IAAM,kBAA+B;AAAA,EACnC,GAAG;AAAA,EACH,OAAO;AACT;AAEA,IAAM,gBAA6B;AAAA,EACjC,eAAe;AAAA,EACf,uBAAuB;AAAA,EACvB,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,gBAAgB;AAClB;AAEA,IAAMC,kBAA8B;AAAA,EAClC,IAAI;AAAA,IACF,QAAQ;AAAA,IACR,WAAW;AAAA,EACb;AACF;AAEA,IAAM,YAAyB;AAAA,EAC7B,IAAI;AACN;AAEA,IAAOC,mBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,gBAAAD;AAAA,EACA;AACF;;;ACrEO,IAAM,qBAAqB,CAAC,OAAeE,UAAkB;AAClE,QAAM,KAAK,KAAKA,SAAQ,QAAQ,KAAK,KAAK,KAAK,QAAQ,KAAK,KAAK;AACjE,QAAM,aAAaA,QAAO,SAAS,SAAS,IAAI,sBAAsB;AACtE,QAAM,SAAsB;AAAA,IAC1B,YAAY,GAAG,EAAE;AAAA,IACjB;AAAA,EACF;AAEA,SAAO;AACT;AAEO,IAAM,YAAY,CAAC,QAAiBA,UAAkB;AAC3D,QAAM,KAAKA,QAAO,QAAQ;AAC1B,MAAI,QAAQ;AACV,UAAM,kBAA+B;AAAA,MACnC,GAAGC,iBAAO;AAAA,MACV;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,QAAMC,aAAyB;AAAA,IAC7B,GAAGD,iBAAO;AAAA,IACV;AAAA,EACF;AAEA,SAAOC;AACT;;;AF8GgB,gBAAAC,OAmBJ,QAAAC,cAnBI;AAzGhB,IAAM,kBAAkB,CAAC,EAAE,YAAY,OAAO,aAAa,MAAoB;AAC7E,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAIC,YAAW,cAAc;AAC7B,QAAM,SAASC,WAAU;AAEzB,QAAM,cAAc,CAClB,GACA,YACA,SACG;AACH,MAAE,eAAe;AACjB,UAAM,mBAAmB,OAAO,MAAM;AACtC,UAAM,OAAO,QAAQ,cAAc,IAAI,YAAY,IAAI;AACvD,WAAO,KAAK,MAAM,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,MAAM;AAC7C,UAAI;AAAkB,eAAO,OAAO;AAAA,IACtC,CAAC;AAAA,EACH;AAIA,QAAM,yBAAyB,CAE7B,aACA,MACA,SACG;AACH,QACE,CAAC,eACA,OAAO,gBAAgB,YAAY,CAAC,MAAM,QAAQ,WAAW,GAC9D;AACA,aAAO;AAAA,IACT,WAAW,aAAa,QAAQ,QAAQ,aAAa,QAAQ,MAAM;AACjE,aAAO;AAAA,IACT,WAAW,MAAM,QAAQ,WAAW,GAAG;AACrC,eAAS,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK;AAG3C,cAAM,SAAS,uBAAuB,YAAY,CAAC,GAAG,MAAM,IAAI;AAChE,YAAI,QAAQ;AACV,iBAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF,OAAO;AACL,iBAAW,KAAK,aAAa;AAG3B,cAAM,SAAS,uBAAuB,YAAY,CAAC,GAAG,MAAM,IAAI;AAChE,YAAI,QAAQ;AACV,iBAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAEA,QAAM,UAAU,CAACC,aAAoB,YAAoB,SAAiB;AACxE,UAAM,eAAe,CAAC,MAAM,IAAI;AAChC,UAAM,eACJ,UAAU,aAAa,SAAS,MAAM,IAAI,IAAI,MAAM,KAAK;AAC3D,UAAM,OACJA,gBAAe,uBACX,IAAIA,WAAU,IAAI,IAAI,IAAI,UAAU,KACpC,GAAG,YAAY,IAAIA,WAAU,IAAI,IAAI;AAC3C,WAAO,KAAK,WAAW,MAAM,GAAG;AAAA,EAClC;AAEA,QAAM,cAAc,CAAC;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,MAAsB;AACpB,UAAM,gBAAwB,OAAO,SAAS,WAAW,OAAO,KAAK,MAAM;AAC3E,UAAM,gBAAwB,OAAO,SAAS,WAAW,OAAO,KAAK,MAAM;AAC3E,UAAM,eAAe,SAAS,SAAS;AACvC,UAAM,aAAa,SAAS,IAAI,OAAO,YAAY,CAAC,IAAI,QAAQ,KAAK;AACrE,UAAM,aAAa,SAAS,GAAG,aAAa,GAAG,UAAU,KAAK;AAC9D,WACE,gBAAAJ,MAACK,OAAA,EAAI,IAAIC,iBAAO,kBACd,0BAAAL,OAACM,OAAA,EAAK,IAAI,mBAAmB,cAAc,gBAAgB,KAAK,GAC7D;AAAA,sBACC,gBAAAP;AAAA,QAACQ;AAAA,QAAA;AAAA,UACC,cACE,qBAAqB,IAAI,aAAa,KACtC,qBAAqB,IAAI,aAAa,IAClC,sBACA;AAAA,UAEN,MAAK;AAAA,UACL,SAAQ;AAAA,UACR,IACE,qBAAqB,IAAI,aAAa,KACtC,qBAAqB,IAAI,aAAa,IAClCF,iBAAO,kBACPA,iBAAO;AAAA,UAEb,MAAM,MACJ,gBAAAN;AAAA,YAACS;AAAA,YAAA;AAAA,cACC,WACE,qBAAqB,IAAI,aAAa,KACtC,qBAAqB,IAAI,aAAa,IAClC,SACA;AAAA,cAEN,MAAM;AAAA;AAAA,UACR;AAAA,UAEF,SAAS,MAAM,2BAA2B,aAAa;AAAA;AAAA,MACzD;AAAA,MAED,CAAC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,KACA,CAAC,uBAAuB,mBAAmB,eAAe,MAAM,IAC9D,gBAAAR;AAAA,QAACS;AAAA,QAAA;AAAA,UACC,IAAI,UAAU,yBAAyB,YAAY,YAAY;AAAA,UAC/D,SAAS,CAAC,MAAsC;AAC9C,gBAAI,CAAC,iBAAiB;AACpB,0BAAY,GAAG,YAAY,aAAa;AAAA,YAC1C;AACA,uCAA2B,UAAU;AAAA,UACvC;AAAA,UACA,MAAM,QAAQ,cAAc,IAAI,YAAY,aAAa;AAAA,UACzD,QAAQ,oBAAoB,OAAO,WAAW;AAAA,UAC9C;AAAA,UAEC;AAAA,sBACC,gBAAAV;AAAA,cAAC;AAAA;AAAA,gBACC,IAAIM,iBAAO;AAAA,gBACX,QAAQ,yBAAyB;AAAA,gBACjC,QAAO;AAAA,gBACP;AAAA;AAAA,YACF;AAAA,YAED;AAAA;AAAA;AAAA,MACH,IACE;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,IACA,gBAAAL,OAACS,OAAA,EAAK,MAAM,eAAe,QAAO,UAAS,IAAIJ,iBAAO,aACpD;AAAA,wBAAAN,MAAC,oBAAiB,MAAM,IAAI,IAAI,EAAE,aAAa,OAAO,GAAG;AAAA,QACxD;AAAA,SACH,IAEA,gBAAAC;AAAA,QAACI;AAAA,QAAA;AAAA,UACC,IAAI;AAAA,YACF,yBAAyB;AAAA,YACzB;AAAA,UACF;AAAA,UACA,SAAS,MAAM;AACb,uCAA2B,aAAa;AAAA,UAC1C;AAAA,UAEC;AAAA,sBACC,gBAAAL;AAAA,cAAC;AAAA;AAAA,gBACC,IAAIM,iBAAO;AAAA,gBACX,QAAQ,yBAAyB;AAAA,gBACjC,QAAO;AAAA,gBACP;AAAA;AAAA,YACF;AAAA,YAED;AAAA;AAAA;AAAA,MACH;AAAA,OAEJ,GACF;AAAA,EAEJ;AAEA,QAAM,kBAAkB,CAAC,EAAE,MAAM,SAAS,MAAsB;AAC9D,UAAM,eAAe,SAAS,SAAS;AAIvC,UAAM,gBAAwB,OAAO,SAAS,WAAW,OAAO,KAAK,MAAM;AAC3E,WAAO,gBACL,qBAAqB,IAAI,aAAa,KACtC,qBAAqB,IAAI,aAAa,IACtC,gBAAAN,MAACK,OAAA,EACC,0BAAAL;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,OAAO;AAAA,QACP,cAAc,eAAe;AAAA;AAAA,MACxB,GAAG,aAAa;AAAA,IACvB,GACF,IACE;AAAA,EACN;AAEA,SACE,gBAAAA,MAACK,OAAA,EAAI,WAAU,qBACZ,iBAAO,IAAI,CAACM,OAAM,UAAU;AAC3B,UAAM,MACJ,OAAOA,MAAK,SAAS,WACjB,OAAOA,MAAK,IAAI,IAAI,OAAO,KAAK,IAChC,OAAOA,MAAK,KAAK,MAAM,CAAC,IAAI,OAAO,KAAK;AAC9C,UAAM,OACJ,OAAOA,MAAK,SAAS,WACjB,GAAGA,MAAK,IAAI,KACZ,GAAGA,MAAK,KAAK,MAAM,CAAC;AAE1B,WACE,gBAAAV,OAAC,YACC;AAAA,sBAAAD,MAAC,eAAa,GAAGW,OAAM,MAAY;AAAA,MACnC,gBAAAX,MAACK,OAAA,EACC,0BAAAL,MAAC,mBAAiB,GAAGW,OAAM,MAAY,GACzC;AAAA,MACC,gBAAgB,IACf,gBAAAX,MAACK,OAAA,EAAI,IAAIC,iBAAO,gBACd,0BAAAN,MAAC,QAAG,GACN,IACE;AAAA,SATS,OAAO,GAAG,CAUzB;AAAA,EAEJ,CAAC,GACH;AAEJ;AAEA,IAAO,2BAAQ;;;AGxQf,SAAS,QAAAY,aAAY;AASjB,gBAAAC,aAAA;AAPJ,IAAM,aAAa,CAAC,UAClB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN,0BAAAC;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,UAAS;AAAA,QACT,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA;AACF;AAGF,IAAO,sBAAQ;;;AClBf,SAAS,QAAAC,aAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,oBAAoB,CAAC,UACzB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,8BAAQ;;;ACxCf,SAAS,QAAAE,aAAY;AAGnB,SAOE,OAAAC,OAPF,QAAAC,cAAA;AADF,IAAM,gBAAgB,CAAC,UACrB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEL;AAAA;AAAA,MACD,gBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,0BAAQ;;;AbuEJ,qBAAAE,WAAA,OAAAC,OAcH,QAAAC,cAdG;AA5EX,IAAM,iBAAiB,CAAC;AAAA,EACtB,eAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,kBAAkB;AACpB,MAA2B;AACzB,QAAM,CAAC,aAAa,cAAc,IAAIC,UAAS,EAAE;AACjD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAIC,YAAW,cAAc;AAC7B,QAAM,CAAC,kBAAkB,mBAAmB,IAAID,UAAS;AAAA,IACvD,EAAE,MAAM,QAAQ,QAAQ,MAAM;AAAA,IAC9B,EAAE,MAAM,OAAO,QAAQ,MAAM;AAAA,IAC7B,EAAE,MAAM,OAAO,QAAQ,MAAM;AAAA,IAC7B,EAAE,MAAM,UAAU,QAAQ,MAAM;AAAA,IAChC,EAAE,MAAM,SAAS,QAAQ,MAAM;AAAA,EACjC,CAAC;AAED,QAAM,eAAe,iBAAiB;AAAA,IACpC,CAAC,iBAAiB,aAAa;AAAA,EACjC;AAEA,QAAM,iBAAiB,QAAQ,MAAM;AACnC,QAAI,CAAC,gBAAgB,gBAAgB;AAAI,aAAO;AAEhD,UAAM,WAAW,KAAK,MAAM,KAAK,UAAU,UAAU,CAAC;AAEtD,UAAM,qBAAqB,SACxB,IAAI,CAACE,cAA6B;AACjC,MAAAA,UAAS,WAAWA,UAAS,SAC1B,IAAI,CAAC,gBAAgB;AACpB,oBAAY,WAAW,YAAY,SAAS,OAAO,CAAC,aAAa;AAC/D,gBAAM,kBACJ,CAAC,gBACD,iBAAiB;AAAA,YACf,CAAC,iBAAiB,aAAa,SAAS,SAAS;AAAA,UACnD,GAAG;AACL,gBAAM,iBACJ,gBAAgB,OACf,OAAO,SAAS,SAAS,WACtB,SAAS,OACT,SAAS,KAAK,MAAM,GAErB,YAAY,EACZ,SAAS,YAAY,YAAY,CAAC;AACvC,iBAAO,mBAAmB;AAAA,QAC5B,CAAC;AACD,eAAO;AAAA,MACT,CAAC,EACA;AAAA,QACC,CAAC,gBACC,YAAY,SAAS,SAAS,KAC7B,YAAY,SAAS,eACnB,OAAO,YAAY,SAAS,WACzB,YAAY,OACZ,YAAY,KAAK,MAAM,GAExB,YAAY,EACZ,SAAS,YAAY,YAAY,CAAC;AAAA,MAC3C;AACF,aAAOA;AAAA,IACT,CAAC,EACA,OAAO,CAACA,cAA6BA,UAAS,SAAS,SAAS,CAAC;AACpE,WAAO;AAAA,EACT,GAAG,CAAC,cAAc,kBAAkB,YAAY,WAAW,CAAC;AAE5D,QAAM,UAAUC,SAAQJ,gBAAe,eAAe;AAEtD,MAAI,wBAAwB;AAE5B,MAAI,CAAC,cAAc,WAAW,UAAU,GAAG;AACzC,WAAO,gBAAAF,MAAAD,WAAA,EAAE;AAAA,EACX,OAAO;AACL,4BAAwB,OAAO,SAAU,WAAW,OAAO,KAAK,MAAM;AAAA,EACxE;AAEA,SAAO,kBACL,gBAAAC;AAAA,IAACO;AAAA,IAAA;AAAA,MACC,WAAW,uBAAuB,WAAW;AAAA,MAC7C,IAAIC,gBAAO;AAAA,MAEX,0BAAAP;AAAA,QAACM;AAAA,QAAA;AAAA,UACC,WAAW,uBAAuB,gBAAgB;AAAA,UAClD,IAAIC,gBAAO;AAAA,UAEX;AAAA,4BAAAP,OAACQ,OAAA,EAAK,IAAID,gBAAO,uBACf;AAAA,8BAAAR;AAAA,gBAACU;AAAA,gBAAA;AAAA,kBACC,IAAIF,gBAAO;AAAA,kBACX,cAAY;AAAA,kBACZ,MAAK;AAAA,kBACL,SAAQ;AAAA,kBACR,MAAM,MAAM,gBAAAR,MAAC,2BAAc,MAAM,IAAI;AAAA,kBACrC,SAAS,MAAM;AACb,4CAAwB,IAAI;AAAA,kBAC9B;AAAA;AAAA,cACF;AAAA,cACC,WAAW,gBAAAA,MAAC,WAAQ;AAAA,cACrB,gBAAAA,MAACW,OAAA,EAAK,IAAIH,gBAAO,cAAe,iCAAsB;AAAA,eACxD;AAAA,YACA,gBAAAP,OAACM,OAAA,EAAI,IAAIC,gBAAO,sBACd;AAAA,8BAAAP,OAACQ,OAAA,EAAK,IAAID,gBAAO,WACf;AAAA,gCAAAR,MAAC,uBAAW,IAAIQ,gBAAO,YAAY;AAAA,gBACnC,gBAAAR;AAAA,kBAAC;AAAA;AAAA,oBACC,OAAOQ,gBAAO;AAAA,oBACd,WAAU;AAAA,oBACV,MAAK;AAAA,oBACL,aACE,SAAS,MAAM,EAAE,4BAA4B,IAC7C,MACA;AAAA,oBAEF,OAAO;AAAA,oBACP,UAAU,CAAC,MAAM,eAAe,EAAE,cAAc,KAAK;AAAA;AAAA,gBACvD;AAAA,iBACF;AAAA,cACCN,kBAAiB,mBAChB,gBAAAF;AAAA,gBAAC;AAAA;AAAA,kBACC;AAAA,kBACA,iBAAiB;AAAA;AAAA,cACnB;AAAA,eAEJ;AAAA,YACA,gBAAAA,MAACO,OAAA,EAAI,IAAIC,gBAAO,sBACd,0BAAAR;AAAA,cAAC;AAAA;AAAA,gBACC,OAAO;AAAA,gBACP,cAAc;AAAA,gBACd;AAAA;AAAA,YACF,GACF;AAAA;AAAA;AAAA,MACF;AAAA;AAAA,EACF,IAEA,gBAAAC;AAAA,IAACM;AAAA,IAAA;AAAA,MACC,WAAW,uBAAuB,WAAW;AAAA,MAC7C,IAAIC,gBAAO;AAAA,MAEX;AAAA,wBAAAP;AAAA,UAACM;AAAA,UAAA;AAAA,YACC,WAAW,uBAAuB,gBAAgB;AAAA,YAClD,IAAIC,gBAAO;AAAA,YACX,WAAQ;AAAA,YAER;AAAA,8BAAAP,OAACM,OAAA,EAAI,IAAIC,gBAAO,wBACb;AAAA,mCACC,gBAAAP,OAACU,OAAA,EAAK,IAAIH,gBAAO,aACf;AAAA,kCAAAP;AAAA,oBAAC;AAAA;AAAA,sBACC,OAAM;AAAA,sBACN,OAAM;AAAA,sBACN,QAAO;AAAA,sBACP,SAAQ;AAAA,sBACR,MAAK;AAAA,sBAEL;AAAA,wCAAAD,MAAC,YAAO,IAAG,MAAK,IAAG,MAAK,GAAE,MAAK,MAAK,WAAU;AAAA,wBAC9C,gBAAAA;AAAA,0BAAC;AAAA;AAAA,4BACC,GAAE;AAAA,4BACF,MAAK;AAAA;AAAA,wBACP;AAAA,wBACA,gBAAAA;AAAA,0BAAC;AAAA;AAAA,4BACC,GAAE;AAAA,4BACF,MAAK;AAAA;AAAA,wBACP;AAAA;AAAA;AAAA,kBACF;AAAA,kBAAM;AAAA,mBAER;AAAA,gBAEF,gBAAAA,MAACW,OAAA,EAAK,IAAIH,gBAAO,cAAe,iCAAsB;AAAA,gBACtD,gBAAAP,OAACQ,OAAA,EAAK,IAAID,gBAAO,WACf;AAAA,kCAAAR,MAAC,uBAAW,IAAIQ,gBAAO,YAAY;AAAA,kBACnC,gBAAAR;AAAA,oBAAC;AAAA;AAAA,sBACC,OAAOQ,gBAAO;AAAA,sBACd,WAAU;AAAA,sBACV,MAAK;AAAA,sBACL,aACE,SAAS,MAAM,EAAE,4BAA4B,IAC7C,MACA;AAAA,sBAEF,OAAO;AAAA,sBACP,UAAU,CAAC,MAAM,eAAe,EAAE,cAAc,KAAK;AAAA;AAAA,kBACvD;AAAA,mBACF;AAAA,iBACF;AAAA,cACCN,kBAAiB,mBAChB,gBAAAF;AAAA,gBAAC;AAAA;AAAA,kBACC;AAAA,kBACA,iBAAiB;AAAA;AAAA,cACnB;AAAA,cAEF,gBAAAA,MAACO,OAAA,EAAI,IAAIC,gBAAO,sBACd,0BAAAR;AAAA,gBAAC;AAAA;AAAA,kBACC,OAAO;AAAA,kBACP,cAAc;AAAA,kBACd;AAAA;AAAA,cACF,GACF;AAAA;AAAA;AAAA,QACF;AAAA,QACA,gBAAAA;AAAA,UAACS;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,IACE,uBACID,gBAAO,sBACPA,gBAAO;AAAA,YAGb,0BAAAR;AAAA,cAAC;AAAA;AAAA,gBACC,SAAS,MAAM;AACb;AAAA,oBACE,CAACY,0BAAyB,CAACA;AAAA,kBAC7B;AAAA,gBACF;AAAA,gBACA,IAAI,uBAAuBJ,gBAAO,aAAa,CAAC;AAAA;AAAA,YAClD;AAAA;AAAA,QACF;AAAA;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,0BAAQ;;;AR3IH,SAoCA,YAAAK,WA7BE,OAAAC,OAPF,QAAAC,cAAA;AA4CM;AAhIlB,IAAM,UAAU,CAAC,EAAE,eAAe,CAAC,EAAE,MAA2B;AAC9D,QAAM,CAAC,mBAAmB,oBAAoB,IAAIC,UAAS,IAAI;AAE/D,QAAM,UAAUC,YAAW,cAAc;AACzC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,QAAM,wBAAwB;AAAA,IAC5B,GAAI,MAAM,QAAQ,iBAAiB,IAC/B,mBAAmB;AAAA,MACjB,CAAC,YACC,QAAQ,kBAAkB;AAAA,IAC9B,IACA;AAAA,EACN;AAEA,iBAAe;AAAA,IACb;AAAA,IACA;AAAA,EACF,CAAC;AAED,EAAAC,WAAU,MAAM;AACd,QAAI,QAAoC;AACxC,QAAI,sBAAsB,YAAY,SAAS;AAC7C,cAAQ;AAAA,QACN,MAAM,wBAAwB,qBAAqB,KAAK;AAAA,QACxD;AAAA,MACF;AAAA;AACG,8BAAwB,qBAAqB,IAAI;AAEtD,WAAO,MAAM;AACX,eAAS,aAAa,KAAK;AAAA,IAC7B;AAAA,EACF,GAAG,CAAC,iBAAiB,CAAC;AAEtB,QAAM,cAAc,CAAC,mBAA4B;AAC/C,UAAM,CAACC,cAAa,cAAc,IAAIH,UAAS,KAAK;AACpD,UAAM,CAAC,cAAc,eAAe,IAAIA,UAAS,eAAe,KAAK;AACrE,UAAM,WAAWI,QAAoB;AAErC,IAAAF,WAAU,MAAM;AACd,YAAM,iBAAiB,IAAI,iBAAiB,SAAU,SAAS;AAC7D,cAAM,SAAS,QAAQ,CAAC,EAAE;AAC1B,YAAI,OAAO,cAAc,OAAO;AAAa,yBAAe,IAAI;AAAA;AAC3D,yBAAe,KAAK;AAEzB,YAAI,OAAO,cAAc;AAAG,0BAAgB,OAAO,SAAS;AAAA,MAC9D,CAAC;AACD,UAAI,SAAS,SAAS;AACpB,YAAI,SAAS,QAAQ,cAAc,SAAS,QAAQ;AAClD,yBAAe,IAAI;AACrB,uBAAe,QAAQ,SAAS,SAAS;AAAA,UACvC,WAAW;AAAA,QACb,CAAC;AAAA,MACH;AACA,aAAO,MAAM;AACX,uBAAe;AAAA,MACjB;AAAA,IACF,GAAG,CAAC,SAAS,OAAO,CAAC;AAErB,WACE,gBAAAJ,MAACO,OAAA,EAAI,IAAIC,gBAAO,eACd,0BAAAR;AAAA,MAAC;AAAA;AAAA,QACC,IAAI,iBAAiBK,YAAW;AAAA,QAChC,WAAU;AAAA,QACV,OAAO;AAAA,QAEP,0BAAAL;AAAA,UAACS;AAAA,UAAA;AAAA,YACC,MAAM,CAAC,kBAAkB,eAAe,OAAO;AAAA,YAC/C,QAAQ,gBAAgB,kBAAkB,OAAO,WAAW;AAAA,YAC5D,SAAS,CAAC,MAAM;AACd,kBAAI,iBAAiB;AACnB,kBAAE,eAAe;AAAA,cACnB;AACA,mCAAqB,eAAe,EAAE;AAAA,YACxC;AAAA,YACA,UAAQ;AAAA,YACR,cAAY,eAAe;AAAA,YAE3B,0BAAAR;AAAA,cAACS;AAAA,cAAA;AAAA,gBACC,IACE,sBAAsB,eAAe,KACjCF,gBAAO,gBACPA,gBAAO;AAAA,gBAGb;AAAA,kCAAAR;AAAA,oBAAC,eAAe;AAAA,oBAAf;AAAA,sBACC,IACE,sBAAsB,eAAe,KACjCQ,gBAAO,aACPA,gBAAO;AAAA;AAAA,kBAEf;AAAA,kBACA,gBAAAR;AAAA,oBAACW;AAAA,oBAAA;AAAA,sBACC,WAAW,oBAAoB,4BAA4B;AAAA,sBAC3D,KAAK;AAAA,sBACL,IAAIH,gBAAO;AAAA,sBAEV,yBAAe;AAAA;AAAA,kBAClB;AAAA;AAAA;AAAA,YACF;AAAA;AAAA,QACF;AAAA;AAAA,IACF,GACF;AAAA,EAEJ;AAEA,SACE,gBAAAP,OAACS,QAAA,EAAK,IAAIF,gBAAO,SACf;AAAA,oBAAAR;AAAA,MAACU;AAAA,MAAA;AAAA,QACC,WAAW,oBAAoB,0BAA0B;AAAA,QACzD,IAAIF,gBAAO;AAAA,QAEV,0BAAgB,IAAI,CAAC,SAAS,OAAO;AACpC,iBACE,gBAAAP,OAAAF,WAAA,EACG;AAAA,iBAAK,KACJ,gBAAAC,MAACO,OAAA,EAAI,IAAIC,gBAAO,gBACd,0BAAAR,MAAC,QAAG,KAD+B,GAAG,EAAE,UAE1C;AAAA,YAEF,gBAAAA,MAACU,QAAA,EAAK,IAAIF,gBAAO,uBACd,kBAAQ,IAAI,CAAC,YACZ;AAAA,cAAC;AAAA;AAAA,gBACE,GAAG;AAAA,gBACJ,KAAK,gBAAgB,QAAQ,KAAK;AAAA;AAAA,YACpC,CACD,KAN0C,EAO7C;AAAA,aACF;AAAA,QAEJ,CAAC;AAAA;AAAA,IACH;AAAA,IACC,oBAAoB,gBAAAR,MAAC,2BAAgB,GAAG,uBAAuB,IAAK;AAAA,KACvE;AAEJ;AAEA,IAAO,kBAAQ;;;AsBpKf;AAAA,EACE;AAAA,EACA,iBAAiB;AAAA,EACjB,OAAAY;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC;AAAA,OACK;;;ACJP,IAAM,gBAA6B;AAAA,EACjC,SAAS;AAAA,EACT,OAAO;AACT;AAEA,IAAM,gBAA6B;AAAA,EACjC,SAAS;AAAA,EACT,eAAe;AAAA,EACf,OAAO;AAAA,EACP,WAAW;AAAA,EACX,QAAQ;AACV;AAEA,IAAM,oBAAiC;AAAA,EACrC,iBAAiB;AAAA,EACjB,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,WAAW;AAAA,EACX,WAAW;AAAA,EACX,WAAW;AAAA,EACX,YAAY;AACd;AAEA,IAAM,qBAAkC;AAAA,EACtC,SAAS,CAAC,SAAS,SAAS,SAAS,MAAM;AAAA,EAC3C,iBAAiB;AAAA,EACjB,OAAO;AAAA,EACP,eAAe;AAAA,IACb,WAAW;AAAA,EACb;AACF;AAIA,IAAM,2BAAwC;AAAA,EAC5C,SAAS;AAAA,EACT,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,QAAQ;AACV;AAEA,IAAM,yBAAsC;AAAA,EAC1C,IAAI;AAAA,EACJ,eAAe;AACjB;AAEA,IAAM,mBAAgC;AAAA,EACpC,IAAI;AAAA,EACJ,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,WAAW;AACb;AAEA,IAAM,yBAAsC;AAAA,EAC1C,SAAS;AAAA,EACT,UAAU;AAAA,EACV,WAAW;AACb;AAEA,IAAM,qBAAkC;AAAA,EACtC,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,gBAAgB;AAClB;AAEA,IAAMC,aAAyB;AAAA,EAC7B,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,OAAO;AACT;AAEA,IAAMC,mBAA+B;AAAA,EACnC,GAAGD;AAAA,EACH,OAAO;AACT;AAEA,IAAOE,mBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAAF;AAAA,EACA,iBAAAC;AACF;;;ADlFA,SAAS,cAAAE,oBAAkB;;;AET3B,OAAOC,WAAU;AACjB,SAAS,OAAAC,OAAK,QAAAC,QAAM,QAAAC,aAAY;;;ACChC,IAAMC,iBAA6B;AAAA,EACjC,IAAI,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,MAAM;AAAA,EAC3D,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,mBAAmB;AAAA,IACjB,cAAc;AAAA,IACd,iBAAiB;AAAA,IAEjB,gBAAgB;AAAA,MACd,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,kBAAkB;AAAA,IAChB,OAAO;AAAA,EACT;AAAA,EAEA,iBAAiB;AAAA,IACf,OAAO;AAAA,EACT;AACF;AAEA,IAAM,iBAA8B;AAAA,EAClC,YAAY;AACd;AAEA,IAAMC,SAAqB;AAAA,EACzB,IAAI;AAAA,EACJ,OAAO;AACT;AAEA,IAAMC,eAA2B;AAAA,EAC/B,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,OAAO;AACT;AAEA,IAAOC,mBAAQ;AAAA,EACb,eAAAH;AAAA,EACA,aAAAE;AAAA,EACA,OAAAD;AAAA,EACA;AACF;;;AC1CA,IAAMG,iBAAgB,CAAC,kBAA0B;AAC/C,QAAM,iBACJ,kBAAkB,aACd,CAAC,SAAS,SAAS,SAAS,OAAO,IACnC,kBAAkB,WAClB,SACA,CAAC,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ;AAErE,QAAM,YACJ,kBAAkB,aACd,CAAC,SAAS,SAAS,SAAS,OAAO,IACnC,kBAAkB,WAClB,QACA,CAAC,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ;AAErE,QAAMA,iBAA6B;AAAA,IACjC,GAAGC,iBAAO;AAAA,IACV,OAAO;AAAA,IAEP,wBAAwB;AAAA,MACtB,OAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAOD;AACT;AAEA,IAAME,kBAAiB,CAAC,kBAA0B;AAChD,QAAM,eACJ,kBAAkB,aAAa,CAAC,OAAO,OAAO,OAAO,KAAK,IAAI;AAEhE,QAAMA,kBAA8B;AAAA,IAClC,GAAGD,iBAAO;AAAA,IACV;AAAA,EACF;AAEA,SAAOC;AACT;AAEA,IAAM,YAAY,CAAC,kBAA0B;AAC3C,QAAM,kBACJ,kBAAkB,aACd;AAAA,IACE,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY;AAAA,EACd,IACA;AAAA,IACE,UAAU;AAAA,IACV,YAAY;AAAA,EACd;AAEN,QAAMC,aAAyB;AAAA,IAC7B,GAAGF,iBAAO;AAAA,IACV,GAAG;AAAA,EACL;AAEA,SAAOE;AACT;;;AFpCU,SACE,OAAAC,OADF,QAAAC,cAAA;AAZV,IAAM,oBAAoB,CAAC;AAAA,EACzB,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,MAAAC;AAAA,EACA;AAAA,EACA,MAAAC;AAAA,EACA;AACF,MAAiB;AACf,SACE,gBAAAL,MAACM,OAAA,EAAK,MAAMF,OAAM,gBAAc,MAC9B,0BAAAJ,MAAC,OAAE,SAAkB,OAAO,EAAE,OAAO,OAAO,GAC1C,0BAAAC,OAACM,OAAA,EAAI,IAAIC,eAAc,aAAa,GAClC;AAAA,oBAAAP,OAACQ,QAAA,EAAK,IAAIC,gBAAe,aAAa,GACpC;AAAA,sBAAAV,MAACK,QAAA,EAAK,IAAI,EAAE,OAAO,UAAU,GAAG,MAAM,IAAI;AAAA,MAC1C,gBAAAL,MAACW,OAAA,EAAK,WAAU,SAAQ,IAAI,UAAU,aAAa,GAChD,UAAAT,QACH;AAAA,OACF;AAAA,IACA,gBAAAF,MAACW,OAAA,EAAK,WAAU,eAAc,IAAIC,iBAAO,aACtC,UAAAT,cACH;AAAA,KACF,GACF,GACF;AAEJ;AAEA,IAAO,6BAAQ;;;AG1Cf,SAAS,WAAW,qBAAqB;;;ACAzC,SAAS,UAAAU,SAAuB,cAAAC,mBAAkB;AAClD,SAAS,aAAAC,kBAAiB;AAC1B,SAAS,QAAAC,cAAY;AACrB,SAAS,wBAAwB;;;ACDjC,IAAM,wBAAqC;AAAA,EACzC,UAAU;AACZ;AAEA,IAAM,wBAAqC;AAAA,EACzC,KAAK;AAAA,EACL,UAAU;AAAA,EACV,OAAO,CAAC,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO;AAAA,EAC5D,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,YAAY;AACd;AAEA,IAAM,aAA0B;AAAA,EAC9B,SAAS;AACX;AAEA,IAAM,SAAsB;AAAA,EAC1B,SAAS;AAAA,EACT,WAAW;AAAA,EACX,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,EACb;AACF;AAEA,IAAM,SAAsB;AAAA,EAC1B,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,mBAAmB;AAAA,IACjB,iBAAiB;AAAA,IACjB,cAAc;AAAA,IACd,sBAAsB;AAAA,MACpB,OAAO;AAAA,IACT;AAAA,IACA,aAAa;AAAA,MACX,UAAU;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAM,UAAuB;AAAA,EAC3B,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,aAAa;AACf;AAEA,IAAM,sBAAmC;AAAA,EACvC,OAAO;AACT;AAEA,IAAM,aAA0B;AAAA,EAC9B,OAAO;AAAA,EACP,UAAU,CAAC,QAAQ,MAAM;AAAA,EACzB,YAAY,CAAC,QAAQ,MAAM;AAAA,EAC3B,OAAO;AACT;AAEA,IAAM,kBAA+B;AAAA,EACnC,OAAO;AAAA,EACP,UAAU,CAAC,QAAQ,MAAM;AAAA,EACzB,YAAY,CAAC,QAAQ,MAAM;AAAA,EAC3B,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,cAAc;AAChB;AAEA,IAAM,cAA2B;AAAA,EAC/B,YAAY;AACd;AAEA,IAAM,gBAA6B;AAAA,EACjC,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,cAAc;AAChB;AAEA,IAAM,kBAA+B;AAAA,EACnC,GAAG;AAAA,EACH,UAAU;AACZ;AAEA,IAAM,qBAAkC;AAAA,EACtC,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AACT;AAEA,IAAMC,eAA2B;AAAA,EAC/B,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,UAAU,CAAC,MAAM;AAAA,EACjB,MAAM;AAAA,EACN,YAAY;AACd;AAEA,IAAMC,cAA0B;AAAA,EAC9B,UAAU;AAAA,EACV,WAAW;AAAA,EACX,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,UAAU;AACZ;AAEA,IAAM,kBAA+B;AAAA,EACnC,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,UAAU;AAAA,IACR,YAAY;AAAA,IACZ,OAAO,CAAC,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO;AAAA,IAC5D,QAAQ;AAAA,EACV;AAAA,EACA,iBAAiB;AAAA,IACf,YAAY;AAAA,IACZ,OAAO,CAAC,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO;AAAA,IAC5D,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,MAAM;AAAA,IACN,oBAAoB;AAAA,MAClB,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,oBAAoB;AAAA,IAClB,sBAAsB;AAAA,MACpB,OAAO;AAAA,IACT;AAAA,IACA,4BAA4B;AAAA,MAC1B,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAEA,IAAM,YAAyB;AAAA,EAC7B,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,SAAS;AACX;AAEA,IAAM,wBAAqC;AAAA,EACzC,GAAG;AAAA,EACH,OAAO;AAAA,EACP,OAAO;AAAA,EACP,YAAY;AACd;AAEA,IAAOC,mBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAAF;AAAA,EACA,YAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ADjJI,SACE,OAAAE,OADF,QAAAC,cAAA;AAzBJ,IAAM,qBAAqB,CAAC;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AACF,MAAsB;AACpB,QAAM,SAASC,WAAU;AACzB,QAAM,WAAWC,QAAyB,IAAI;AAC9C,QAAM,EAAE,OAAO,IAAIC,YAAW,cAAc;AAE5C,QAAM,cAAc,MAAM;AACxB,QAAI,SAAS,WAAW;AAAM,eAAS,QAAQ,MAAM;AAAA,EACvD;AAEA,QAAM,aAAa,CAAC,MAAuC;AACzD,QAAI,EAAE,QAAQ,SAAS;AACrB,aAAO,KAAK;AAAA,QACV,UAAU;AAAA,QACV,OAAO,EAAE,SAAS,SAAS,SAAS,MAAM;AAAA,MAC5C,CAAC;AACD,eAAS,SAAS,KAAK;AACvB,kBAAY,KAAK;AAAA,IACnB;AAAA,EACF;AAEA,SACE,gBAAAH,OAACI,QAAA,EAAK,IAAIC,iBAAO,iBAAiB,SAAS,aACzC;AAAA,oBAAAN,MAAC,uBAAW,IAAIM,iBAAO,YAAY;AAAA,IACnC,gBAAAN;AAAA,MAAC;AAAA;AAAA,QACC,OAAOM,iBAAO;AAAA,QACd,KAAK;AAAA,QACL,WAAU;AAAA,QACV,MAAK;AAAA,QACL,aAAa,SAAS,MAAM,EAAE,0BAA0B;AAAA,QACxD,OAAO;AAAA,QACP,WAAQ;AAAA,QACR,WAAW,CAAC,MAAM,WAAW,CAAC;AAAA,QAC9B,UAAU,CAAC,MAAM,OAAO,EAAE,cAAc,KAAK;AAAA;AAAA,IAC/C;AAAA,KACF;AAEJ;AAEA,IAAM,YAAY,iBAAiB,kBAAkB;AAErD,IAAO,qBAAQ;;;AE3Df,SAAS,aAAAC,kBAAiB;AAC1B,OAAOC,WAAU;AACjB;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAMP,OAAO,QAAQ;AACf,SAAS,OAAAC,OAAK,QAAAC,QAAM,aAAAC,YAAW,QAAAC,aAAY;;;ACX3C,SAAS,QAAAC,aAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,gBAAgB,CAAC,UACrB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,0BAAQ;;;ACjDf,SAAS,QAAAE,aAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,mBAAmB,CAAC,UACxB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,6BAAQ;;;ACjCf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,qBAAqB,CAAC,UAC1B,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,+BAAQ;;;ACnCf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,mBAAmB,CAAC,UACxB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,6BAAQ;;;ACjDf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,4BAA4B,CAAC,UACjC,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,sCAAQ;;;AC/Df,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,iBAAiB,CAAC,UACtB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,4BAAQ;;;AChDf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,sBAAsB,CAAC,UAC3B,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,UAAS;AAAA,UACT,UAAS;AAAA,UACT,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACb;AAAA,MACD,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,UAAS;AAAA,UACT,UAAS;AAAA,UACT,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACb;AAAA,MACD,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,GAAE;AAAA;AAAA,MACH;AAAA;AAAA;AACH;AAGF,IAAO,+BAAQ;;;ACjCf,SAAS,QAAAE,cAAY;AASjB,gBAAAC,OACA,QAAAC,cADA;AAPJ,IAAM,YAAY,CAAC,UACjB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,YAAO,IAAG,KAAI,IAAG,KAAI,GAAE,KAAI,MAAK,WAAU;AAAA,MAC3C,gBAAAC,OAAC,OAAE,UAAS,0BACV;AAAA,wBAAAD;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,UAAS;AAAA,YACT,UAAS;AAAA,YACT,GAAE;AAAA,YACF,MAAK;AAAA;AAAA,QACP;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,UAAS;AAAA,YACT,UAAS;AAAA,YACT,GAAE;AAAA,YACF,MAAK;AAAA;AAAA,QACP;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,UAAS;AAAA,YACT,UAAS;AAAA,YACT,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,UAAS;AAAA,YACT,UAAS;AAAA,YACT,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,SACF;AAAA,MACA,gBAAAA,MAAC,UACC,0BAAAA,MAAC,cAAS,IAAG,oBACX,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,QAAO;AAAA,UACP,MAAK;AAAA,UACL,WAAU;AAAA;AAAA,MACZ,GACF,GACF;AAAA;AAAA;AACF;AAGF,IAAO,qBAAQ;;;ACrEf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,iBAAiB,CAAC,UACtB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,YAAO,IAAG,KAAI,IAAG,KAAI,GAAE,KAAI,MAAK,WAAU;AAAA,MAC3C,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA;AAAA;AACF;AAGF,IAAO,0BAAQ;;;ACnBf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,YAAY,CAAC,UACjB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,YAAO,IAAG,KAAI,IAAG,KAAI,GAAE,KAAI,MAAK,WAAU;AAAA,MAC3C,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA,UACL,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,qBAAQ;;;ACvBf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,eAAe,CAAC,UACpB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,YAAO,IAAG,OAAM,IAAG,KAAI,GAAE,KAAI,MAAK,WAAU;AAAA,MAC7C,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,wBAAQ;;;ACpBf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,cAAc,CAAC,UACnB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,YAAO,IAAG,OAAM,IAAG,KAAI,GAAE,KAAI,MAAK,WAAU;AAAA,MAC7C,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,uBAAQ;;;ACZR,IAAM,iBAAiB,CAAC,QAAa;AAC1C,QAAM,cAAwB,CAAC;AAC/B,MAAI,IAAI,YAAY,mBAAmB,IAAI;AACzC,gBAAY,KAAK,IAAI,WAAW;AAClC,cAAY,KAAK,IAAI,QAAQ;AAC7B,SAAO;AACT;AAEO,IAAM,iBAAiB,CAAC,QAAgB;AAC7C,QAAM,cAAc,IAAI,QAAQ,sBAAsB,EAAE;AACxD,SAAO,MAAM;AACf;AA0CO,IAAM,qBAAqB,CAAC,UAAuB,OAAe;AACvE,SAAO,SAAS,KAAK,EAAE,KAAK,CAAC,YAAY,QAAQ,OAAO,EAAE,GAAG;AAC/D;AAcA,IAAM,UAAoB;AAAA,EACxB;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AACF;AAEO,IAAM,YAAY,CAAC,eAAmC;AAC3D,SAAO,QAAQ,KAAK,CAAC,WAAW,OAAO,SAAS,UAAU;AAC5D;AAEO,IAAM,eAAe,CAAC,UAAuB,OAAe;AACjE,SAAO,SAAS,KAAK,EAAE,KAAK,CAACE,UAASA,MAAK,OAAO,EAAE,GAAG,SAAS;AAClE;;;ACvHA,SAAS,aAAAC,YAAW,UAAAC,SAAQ,YAAAC,iBAAgB;AAC5C,SAAS,wBAAwB;AAEjC,SAAS,QAAAC,QAAM,QAAAC,aAAY;AA2Hb,gBAAAC,aAAA;AA1Gd,IAAM,YAAY,CAAC;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA4B;AAC1B,QAAM,CAAC,WAAW,YAAY,IAAIC,UAA8B,CAAC,CAAC;AAClE,QAAM,gBAAgBC,QAAoB,IAAI;AAC9C,QAAM,gBAAqC,UAAU;AAAA,IACnD,mBAAmB;AAAA,IACnB,WAAW,IAAI,QAAQ,YAAY,aAAa,IAAI,IAAI,KAAK;AAAA,IAC7D;AAAA,EACF,CAAC;AACD,QAAM,qBAAqB;AAC3B,QAAM,kBAAuC,CAAC;AAC9C,MAAI,YAAY;AACd,QAAI,YAAY;AAChB,kBAAc,QAAQ,CAAC,SAAS;AAC9B,UAAI,qBAAqB,aAAa;AAAG;AACzC,UAAI,KAAK,MAAM,SAAS,aAAa,oBAAoB;AACvD,aAAK,QACH,KAAK,MAAM,MAAM,GAAG,qBAAqB,YAAY,CAAC,IAAI;AAAA,MAC9D;AACA,mBAAa,KAAK,MAAM;AACxB,sBAAgB,KAAK,IAAI;AAAA,IAC3B,CAAC;AAAA,EACH;AAEA,EAAAC,WAAU,MAAM;AACd,QAAI;AAAY;AAChB,UAAM,YAAY,cAAc,UAC5B,cAAc,QAAQ,cAAc,OACpC;AAEJ,UAAM,iBAAwC,CAAC;AAC/C,QAAI,iBAAiB,GACnB,kBAAkB;AAEpB,kBAAc,QAAQ,CAAC,OAA0B,UAAkB;AACjE,YAAM,YACJ,QAAQ,KAAK,QAAQ,cAAc,SAAS,IAAI,OAAO;AACzD,UAAI,MAAM,eAAe;AACvB,YAAI;AAAW;AACf;AACA,2BAAmB,MAAM,MAAM;AAAA,MACjC,OAAO;AACL,uBAAe,KAAK;AAAA,UAClB;AAAA,UACA;AAAA,UACA,MAAM,MAAM,MAAM;AAAA,QACpB,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAED,mBAAe;AAAA,MACb,CAAC,GAAwB,MAA2B,EAAE,OAAO,EAAE;AAAA,IACjE;AAEA,QAAI,gBAAgB,YAAY;AAChC,QAAI,OAAO,iBAAiB,kBAAkB;AAE9C,mBAAe,QAAQ,CAAC,UAA+B;AACrD,YAAM,QAAQ,cAAc,MAAM,KAAK,EAAE;AACzC,UAAI,MAAM,WAAW;AACnB,YAAI,MAAM,QAAQ,OAAO,GAAG;AAC1B,gBAAM,cAAc,OAAO,IAAI,KAAK;AACpC,wBAAc,MAAM,KAAK,EAAE,QACzB,MAAM,MAAM,GAAG,UAAU,IACzB,QACA,MAAM,MAAM,MAAM,SAAS,UAAU;AACvC,2BAAiB,OAAO;AAAA,QAC1B,OAAO;AACL,2BAAiB,MAAM;AAAA,QACzB;AACA,0BAAkB;AAAA,MACpB,OAAO;AACL,YAAI,MAAM,QAAQ,MAAM;AACtB,cAAI,MAAM,UAAU;AAClB,0BAAc,MAAM,KAAK,EAAE,QACzB,QAAQ,MAAM,MAAM,MAAM,UAAU,OAAO,EAAE;AAAA;AAE/C,0BAAc,MAAM,KAAK,EAAE,QAAQ,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI;AAChE,2BAAiB;AAAA,QACnB,OAAO;AACL,2BAAiB,MAAM;AAAA,QACzB;AACA,0BAAkB;AAAA,MACpB;AACA,aAAO,gBAAgB;AACvB,oBAAc,MAAM,KAAK,EAAE,QAAQ,cACjC,MAAM,KACR,EAAE,MAAM,QAAQ,QAAQ,MAAQ;AAAA,IAClC,CAAC;AACD,iBAAa,aAAa;AAAA,EAC5B,GAAG,CAAC,KAAK,cAAc,OAAO,CAAC;AAE/B,SACE,gBAAAH;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,KAAK;AAAA,MACL,WAAU;AAAA,MACV,IAAIC,iBAAO;AAAA,MAEX,0BAAAL,MAACM,OAAA,EAAK,IAAI,aAAaD,iBAAO,aAAaA,iBAAO,iBAC9C,wBAAa,kBAAkB,WAAW;AAAA,QAC1C,CAAC,MAAyB,UACxB,KAAK,gBACH,gBAAAL,MAAC,UAAK,OAAOK,iBAAO,uBACjB,eAAK,SADwC,KAEhD,IAEA,KAAK;AAAA,MAEX,GACF;AAAA;AAAA,EACF;AAEJ;AAUA,IAAM,qBACJ,iBAAiB,SAAS;AAE5B,IAAO,0BAAQ;;;AdhIf,SAAS,cAAAE,mBAAkB;AA4BjB,SAmDJ,YAAAC,WAlDkB,OAAAC,OADd,QAAAC,cAAA;AAfV,IAAM,OAAO,CAAC,EAAE,KAAK,SAAS,MAAgB;AAC5C,QAAM,EAAE,gBAAgB,IAAIC,YAAW,cAAc;AACrD,QAAM,kBAAkB,eAAe,GAAG;AAC1C,QAAM,UAAU,mBAAmB,iBAAiB,IAAI,OAAO;AAC/D,SACE,gBAAAF,MAACG,OAAA,EAAK,MAAM,eAAe,IAAI,GAAG,GAAG,gBAAc,MACjD,0BAAAH;AAAA,IAAC;AAAA;AAAA,MACC,SAAS,MACP,SAAS,+BAA+B;AAAA,QACtC,WAAW;AAAA,QACX,WAAW,CAAC,IAAI,QAAQ;AAAA,MAC1B,CAAC;AAAA,MAGH,0BAAAC,OAACG,OAAA,EAAI,IAAIC,iBAAO,QACd;AAAA,wBAAAJ,OAACK,QAAA,EACE;AAAA,qBAAW,gBAAAN,MAAC,WAAQ,WAAU,YAAW,IAAIK,iBAAO,SAAS;AAAA,UAC9D,gBAAAL,MAACO,OAAA,EAAK,IAAIF,iBAAO,YACf,0BAAAL,MAAC,2BAAgB,KAAU,WAAU,WAAU,GACjD;AAAA,WACF;AAAA,QACA,gBAAAC,OAACK,QAAA,EAAK,IAAID,iBAAO,aACf;AAAA,0BAAAL,MAACO,OAAA,EAAK,IAAIF,iBAAO,iBAAkB,gBAAM,IAAI,OAAO,IAAG;AAAA,UACtD,gBAAgB,SAAS,KACxB,gBAAAL,MAACQ,YAAA,EAAU,WAAU,SAAQ,IAAIH,iBAAO,oBAAoB;AAAA,UAE7D,gBAAgB,IAAI,CAAC,QAAgB,UACpC,gBAAAJ,OAACK,QAAA,EAAK,IAAID,iBAAO,aACf;AAAA,4BAAAL,MAACO,OAAA,EAAK,IAAIF,iBAAO,eAAgB,kBAAO;AAAA,YACvC,QAAQ,gBAAgB,SAAS,IAChC,gBAAAL,MAACQ,YAAA,EAAU,WAAU,SAAQ,IAAIH,iBAAO,oBAAoB,IAC1D;AAAA,eAJ6B,GAAG,MAAM,GAAG,KAAK,EAKpD,CACD;AAAA,WACH;AAAA,SACF;AAAA;AAAA,EACF,GACF;AAEJ;AAEA,IAAM,kBAAkB,mBAAmB,EAAE,EAAE,IAAI;AAEnD,IAAM,UAAU;AAAA,EACd,CAAC,EAAE,aAAa,eAAe,YAAY,MAAM;AAC/C,UAAM,SAASI,WAAU;AACzB,UAAM,EAAE,OAAO,IAAIP,YAAW,cAAc;AAE5C,UAAM,eAAe,CAAC,YAAoB;AACxC,aAAO,KAAK;AAAA,QACV,UAAU;AAAA,QACV,OAAO,EAAE,QAAQ;AAAA,MACnB,CAAC;AACD,kBAAY,KAAK;AAAA,IACnB;AAGA,UAAM,wBAAwB,CAAC,KAAU,UAAuB;AAC9D,aAAO;AAAA,QACL,GAAG;AAAA,QACH,WAAW,cAAc,WAAW;AAAA,QACpC,YAAY,cAAc,cAAc,cAAc,OAAO,QAAQ;AAAA,MACvE;AAAA,IACF;AAEA,WACE,gBAAAF,MAAAD,WAAA,EACG,2BACC,gBAAAC,MAACI,OAAA,EAAI,IAAIC,iBAAO,uBACd,0BAAAJ,OAACG,OAAA,EAAI,IAAIC,iBAAO,uBACd;AAAA,sBAAAL,MAACI,OAAA,EAAI,IAAI,cAAc,KAAK,UAAUC,iBAAO,YAC1C,wBAAc,KAAK;AAAA,QAClB,CAAC,cAAc,UACb,QAAQ,KACN,gBAAAL;AAAA,UAACI;AAAA,UAAA;AAAA,YAEC,SAAS,MAAM,YAAY,KAAK;AAAA,YAEhC,0BAAAJ;AAAA,cAAC;AAAA;AAAA,gBACC,KAAK,sBAAsB,cAAc,KAAK;AAAA;AAAA,YAChD;AAAA;AAAA,UALK,kBAAkB,KAAK;AAAA,QAM9B;AAAA,MAEN,GACF;AAAA,MACC,cAAc,KAAK,SAAS,KAC3B,gBAAAA;AAAA,QAACI;AAAA,QAAA;AAAA,UACC,IAAIC,iBAAO;AAAA,UACX,SAAS,MAAM,aAAa,YAAY,SAAS,EAAE;AAAA,UAEnD,0BAAAL,MAACO,OAAA,EACE,mBAAS,MAAM,EAAE,sBAAsB,KAAK,mBAC/C;AAAA;AAAA,MACF;AAAA,MAED,CAAC,cAAc,KAAK,UACnB,gBAAAP,MAACM,QAAA,EAAK,IAAID,iBAAO,WACf,0BAAAL,MAACO,OAAA,EACE,mBAAS,MAAM,EAAE,oBAAoB,KAAK,iDAC7C,GACF;AAAA,OAEJ,GACF,GAEJ;AAAA,EAEJ;AACF;AAEA,IAAO,sBAAQ;;;AH7If,SAAS,OAAAG,aAAW;AACpB,SAAS,cAAAC,aAAY,UAAAC,SAAQ,YAAAC,iBAAgB;;;AkBJ7C,kBAAoD;AACpD,OAAOC,SAAQ;AAOR,IAAI,eAAoB,CAAC;AACzB,IAAI,cAAc;AAuCzB,IAAM,sBAAsB,CAAC,WAA0B;AACrD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,oBAAoB;AAAA,EACtB,IAAI;AACJ,gBAAc;AAEd,EAAAA,IAAG,QAAQ;AAAA,IACT,OAAO,SAAS;AAAA,IAChB,QAAQ,UAAU;AAAA,IAClB,WAAW;AAAA,EACb,CAAC;AAED,EAAAA,IAAG,gBAAgB,MAAM,CAAC,QAAQ;AAChC,QAAI,KAAK;AACP,cAAQ,MAAM,GAAG;AACjB;AAAA,IACF;AAAA,EACF,CAAC;AAED,QAAM,oBAAgB,YAAAC,SAAc,SAAS,IAAI,UAAU,IAAI,cAAc;AAE7E,iBAAe;AAAA,IACb,GAAG;AAAA,IACH,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA,OAAO,UAAkC;AACvC,UAAI,SAAS,MAAM,CAAC,EAAE,OAAO,MAAM,CAAC,QAAQ,KAAK;AAAG;AACpD,aAAO,cAAc,OAAO,QAAQ;AAAA,IACtC;AAAA,EACF;AACF;AAGA,IAAM,4BAA4B;AASlC,IAAM,qBAAqB,CAAC,WAA+B;AACzD,QAAM;AAAA,IACJ;AAAA,IACA,eAAe;AAAA,IACf,oBAAoB;AAAA,IACpB,oBAAoB;AAAA,IACpB,aAAa;AAAA,EACf,IAAI;AAEJ,QAAM,yBAAyB,mBAAmB,iBAAiB;AACnE,QAAM,QAA4B,CAAC;AAGnC,QAAM,YAAY,CAAC,QAAmC;AACpD,UAAM,MAAM,KAAK,IAAI;AACrB,aAAS,IAAI,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK;AAC1C,UAAI,MAAM,MAAM,CAAC,EAAE,KAAK,YAAY;AAClC,cAAM,OAAO,GAAG,CAAC;AAAA,MACnB;AAAA,IACF;AACA,WAAO,MAAM,KAAK,CAAC,MAAM,EAAE,QAAQ,GAAG,GAAG;AAAA,EAC3C;AAGA,QAAM,YAAY,CAAC,KAAa,SAAgB;AAC9C,UAAM,KAAK,EAAE,KAAK,IAAI,KAAK,IAAI,GAAG,KAAK,CAAC;AACxC,WAAO,MAAM,SAAS;AAAI,YAAM,MAAM;AAAA,EACxC;AAGA,EAAAD,IAAG,QAAQ;AAAA,IACT,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,WAAW;AAAA,EACb,CAAC;AAED,iBAAe;AAAA,IACb,OAAO;AAAA,IACP,QAAQ;AAAA,IACR;AAAA,IACA,sBAAsB;AAAA,IAEtB,MAAM,OACJ,UACmD;AACnD,UAAI,SAAS,MAAM,CAAC,EAAE,OAAO,MAAM,CAAC,QAAQ,KAAK,GAAG;AAClD,eAAO;AAAA,MACT;AAEA,UAAI;AAEF,cAAM,UACJ,SAAS,KAAK,CAAC,EAAE,QAAAE,QAAO,MAAMA,SAAQ,KAAK,KAAK,SAAS,CAAC;AAC5D,cAAM,SAAS,QAAQ,UAAU,CAAC;AAClC,cAAM,QAAQ,OAAO,SAAS;AAC9B,cAAM,cAAc,OAAO,eAAe;AAC1C,cAAM,OAAO,OAAO,QAAQ;AAE5B,cAAM,EAAE,QAAQ,SAAS,IAAI,qBAAqB,MAAM;AAKxD,cAAM,WAAW,KAAK,UAAU;AAAA,UAC9B,GAAG;AAAA,UACH,QAAQ,oBAAoB,UAAU,KAAK;AAAA,UAC3C,OAAO;AAAA,QACT,CAAC;AAED,cAAM,aAAa,UAAU,QAAQ;AAErC,YAAI;AACJ,YAAI,YAAY;AACd,oBAAU;AAAA,QACZ,OAAO;AACL,gBAAM,MAAM,IAAI,IAAI,aAAa,OAAO,SAAS,MAAM;AACvD,cAAI,aAAa,IAAI,KAAK,KAAK;AAC/B,cAAI,aAAa,IAAI,SAAS,OAAO,sBAAsB,CAAC;AAC5D,cAAI,qBAAqB,QAAQ;AAC/B,gBAAI,aAAa,IAAI,UAAU,MAAM;AAAA,UACvC;AAEA,gBAAM,WAAW,MAAM,MAAM,IAAI,SAAS,CAAC;AAC3C,cAAI,CAAC,SAAS,IAAI;AAChB,kBAAM,IAAI,MAAM,yBAAyB,SAAS,MAAM,EAAE;AAAA,UAC5D;AAEA,gBAAM,OAAO,MAAM,SAAS,KAAK;AAEjC,gBAAM,aAAoB,MAAM,QAAQ,MAAM,OAAO,IACjD,KAAK,UACL,CAAC;AACL,oBAAU,WAAW,IAAI,wBAAwB;AACjD,oBAAU,UAAU,OAAO;AAAA,QAC7B;AAMA,cAAM,eAAe,oBAAoB,SAAS,QAAQ;AAC1D,cAAM,SAAS,aAAa;AAC5B,cAAM,UAAU,KAAK,IAAI,GAAG,KAAK,KAAK,SAAS,WAAW,CAAC;AAC3D,cAAM,QAAQ,OAAO;AACrB,cAAM,WAAW,aAAa,MAAM,OAAO,QAAQ,WAAW;AAE9D,cAAM,SAAS,sBAAsB,OAAO;AAE5C,eAAO;AAAA,UACL,SAAS;AAAA,YACP;AAAA,cACE,MAAM;AAAA,cACN;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA,kBAAkB;AAAA,cAClB;AAAA,cACA,QAAQ;AAAA,cACR,OAAO,QAAQ,aAAa;AAAA,cAC5B,kBAAkB;AAAA,cAClB,QAAQ,OAAO;AAAA,cACf,cAAc,CAAC;AAAA,cACf,uBAAuB;AAAA,cACvB,SAAS,gBAAgB;AAAA,YAC3B;AAAA,UACF;AAAA,QACF;AAAA,MACF,SAAS,OAAO;AACd,gBAAQ,MAAM,wBAAwB,KAAK;AAC3C,eAAO;AAAA,UACL,SAAS;AAAA,YACP;AAAA,cACE,MAAM,CAAC;AAAA,cACP,QAAQ;AAAA,cACR,MAAM;AAAA,cACN,SAAS;AAAA,cACT,aAAa;AAAA,cACb,kBAAkB;AAAA,cAClB,OAAO,SAAS,CAAC,GAAG,QAAQ,SAAS;AAAA,cACrC,QAAQ;AAAA,cACR,OAAO,SAAS,CAAC,GAAG,aAAa;AAAA,cACjC,kBAAkB;AAAA,YACpB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,mBAAmB,KAAqB;AAC/C,MAAI,CAAC,OAAO,SAAS,GAAG,KAAK,OAAO;AAAG,WAAO;AAC9C,SAAO,KAAK,IAAI,2BAA2B,KAAK,IAAI,GAAG,KAAK,MAAM,GAAG,CAAC,CAAC;AACzE;AAWA,SAAS,qBAEP,QACwC;AACxC,MAAI,SAAS;AACb,QAAM,WAAqB,CAAC;AAE5B,QAAM,cAAc,CAAC,QAAgB;AACnC,UAAM,QAAQ,IAAI,QAAQ,UAAU,EAAE,EAAE,KAAK;AAC7C,QAAI,SAAS,CAAC,SAAS,SAAS,KAAK;AAAG,eAAS,KAAK,KAAK;AAAA,EAC7D;AAGA,QAAM,aAAa,OAAO,QAAQ,YAAY,WAAW,OAAO,UAAU;AAC1E,MAAI,YAAY;AACd,UAAM,YAAY,WAAW,MAAM,0BAA0B;AAC7D,QAAI;AAAW,eAAS,UAAU,CAAC;AAEnC,UAAM,eAAe;AACrB,QAAI;AACJ,YAAQ,IAAI,aAAa,KAAK,UAAU,OAAO,MAAM;AACnD,kBAAY,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE;AAAA,IAChC;AAAA,EACF;AAGA,QAAM,eAAe,QAAQ;AAC7B,QAAM,QAAQ,CAAC,UAAmB;AAChC,QAAI,OAAO,UAAU,UAAU;AAC7B,UAAI,CAAC,UAAU,MAAM,WAAW,WAAW,GAAG;AAC5C,iBAAS,MAAM,MAAM,YAAY,MAAM;AAAA,MACzC,WAAW,MAAM,WAAW,UAAU,GAAG;AACvC,oBAAY,MAAM,MAAM,WAAW,MAAM,CAAC;AAAA,MAC5C;AAAA,IACF,WAAW,MAAM,QAAQ,KAAK,GAAG;AAC/B,YAAM,QAAQ,KAAK;AAAA,IACrB;AAAA,EACF;AACA,QAAM,YAAY;AAElB,SAAO,EAAE,QAAQ,SAAS;AAC5B;AAEA,SAAS,oBACP,MACA,UACK;AACL,MAAI,CAAC,SAAS;AAAQ,WAAO;AAC7B,QAAM,SAAS,IAAI,IAAI,SAAS,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAC3D,SAAO,KAAK;AAAA,IAAO,CAAC,MAClB,OAAO,IAAI,OAAO,EAAE,WAAW,EAAE,EAAE,YAAY,CAAC;AAAA,EAClD;AACF;AAGA,SAAS,yBAAyB,QAAkB;AAClD,QAAM,WAAW,OAAO,YAAY;AACpC,QAAM,UAAU,0BAA0B,QAAQ;AAElD,QAAM,YAAY;AAAA,IAChB,MAAM;AAAA,IACN,MAAM,OAAO,SAAS;AAAA,IACtB,MAAM,2BAA2B,QAAQ;AAAA,EAC3C;AAEA,QAAM,MAAM,qBAAqB,QAAQ;AAEzC,SAAO;AAAA,IACL,UAAU,OAAO,OAAO,EAAE;AAAA,IAC1B,GAAG;AAAA,IACH;AAAA,IACA,oBAAoB,IAAI,MAAM,GAAG,EAAE,CAAC;AAAA,IACpC;AAAA,IACA,UAAU,OAAO,SAAS;AAAA,IAC1B,SAAS,OAAO,WAAW,OAAO,WAAW;AAAA,IAC7C;AAAA,IACA,UAAU,OAAO,UAAU,UAAU;AAAA,IACrC,MAAM;AAAA,IACN,kBAAkB;AAAA,MAChB,SAAS;AAAA,QACP,OAAO,OAAO,WAAW,OAAO,WAAW;AAAA,QAC3C,YAAY;AAAA,QACZ,kBAAkB;AAAA,QAClB,cAAc,CAAC;AAAA,MACjB;AAAA,MACA,WAAW;AAAA,QACT,MAAM;AAAA,UACJ,OAAO,UAAU;AAAA,UACjB,YAAY;AAAA,QACd;AAAA,QACA,MAAM;AAAA,UACJ,OAAO,UAAU;AAAA,UACjB,YAAY,OAAO,QAAQ,YAAY;AAAA,QACzC;AAAA,MACF;AAAA,IACF;AAAA,IACA,gBAAgB;AAAA,MACd,SAAS;AAAA,QACP,OAAO,OAAO,WAAW;AAAA,QACzB,YAAY;AAAA,MACd;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAM,iBAAiB;AAgBvB,SAAS,0BAA0B,UAA0B;AAC3D,QAAM,QAAQ,SAAS,MAAM,GAAG,EAAE,OAAO,OAAO;AAChD,MAAI,MAAM,WAAW;AAAG,WAAO;AAE/B,MAAI,MAAM,CAAC,MAAM,UAAU,MAAM,SAAS,GAAG;AAC3C,WAAO,MAAM,CAAC,EAAE,YAAY;AAAA,EAC9B;AAEA,MAAI,MAAM,SAAS,KAAK,eAAe,KAAK,MAAM,CAAC,CAAC,GAAG;AACrD,WAAO,MAAM,CAAC,EAAE,YAAY;AAAA,EAC9B;AAEA,SAAO,MAAM,CAAC,EAAE,YAAY;AAC9B;AAEA,SAAS,2BAA2B,UAAiC;AACnE,QAAM,QAAQ,SAAS,MAAM,GAAG,EAAE,OAAO,OAAO;AAChD,MAAI,MAAM,CAAC,MAAM,UAAU,MAAM,SAAS;AAAG,WAAO,MAAM,CAAC;AAC3D,MAAI,MAAM,SAAS,KAAK,eAAe,KAAK,MAAM,CAAC,CAAC;AAAG,WAAO,MAAM,CAAC;AACrE,MAAI,MAAM,SAAS;AAAG,WAAO,MAAM,CAAC;AACpC,SAAO;AACT;AAEA,SAAS,qBAAqB,UAA0B;AACtD,QAAM,QAAQ,SAAS,MAAM,GAAG,EAAE,OAAO,OAAO;AAChD,MAAI,MAAM,WAAW;AAAG,WAAO;AAE/B,QAAM,WAAW,CAAC,MAAc,EAAE,QAAQ,WAAW,EAAE;AAGvD,MAAI,MAAM,CAAC,MAAM,UAAU,MAAM,SAAS,GAAG;AAC3C,WAAO,SAAS,SAAS,MAAM,MAAM,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;AAAA,EACpD;AAGA,MAAI,MAAM,SAAS,KAAK,eAAe,KAAK,MAAM,CAAC,CAAC,GAAG;AACrD,WAAO,IAAI,MAAM,CAAC,CAAC,IAAI,SAAS,MAAM,MAAM,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;AAAA,EAC3D;AAEA,SAAO,MAAM,SAAS,MAAM,KAAK,GAAG,CAAC;AACvC;AAGA,SAAS,sBACP,MACoD;AACpD,QAAM,SAAiD;AAAA,IACrD,SAAS,CAAC;AAAA,IACV,UAAU,CAAC;AAAA,EACb;AAEA,OAAK,QAAQ,CAAC,QAAQ;AACpB,UAAM,UAAU,IAAI,WAAW;AAC/B,WAAO,QAAQ,OAAO,KAAK,OAAO,QAAQ,OAAO,KAAK,KAAK;AAE3D,UAAM,WAAW,IAAI,YAAY;AACjC,WAAO,SAAS,QAAQ,KAAK,OAAO,SAAS,QAAQ,KAAK,KAAK;AAAA,EACjE,CAAC;AAED,SAAO,EAAE,OAAO;AAClB;AAEA,SAAS,kBAA0B;AACjC,SAAO,UAAU,KAAK,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,OAAO,GAAG,CAAC,CAAC;AACxE;AAEe,SAAR,aAA8B,QAA6C;AAEhF,MAAI,aAAa,QAAQ;AACvB,QAAI,OAAO,YAAY,UAAU;AAC/B,oBAAc,OAAO;AACrB,yBAAmB,OAAO,MAAM;AAAA,IAClC,OAAO;AACL,0BAAoB,OAAO,OAAO;AAAA,IACpC;AAAA,EACF,OAAO;AAEL,wBAAoB,MAAuB;AAAA,EAC7C;AACF;;;AlBpbQ,gBAAAC,OAaF,QAAAC,cAbE;AAjBO,SAAR,cAA+B;AACpC,QAAM,EAAE,OAAO,IAAIC,YAAW,cAAc;AAC5C,QAAM,CAAC,UAAU,WAAW,IAAIC,UAAmC;AAAA,IACjE,aAAa;AAAA,EACf,CAAC;AACD,QAAMC,cAAaC,QAAoB;AACvC,kBAAgBD,aAAY,WAAW;AAEvC,QAAM,cAAc,CAAC,UAAmB;AACtC,gBAAY,EAAE,aAAa,MAAM,CAAC;AAAA,EACpC;AAEA;AAAA;AAAA,IAEE,gBAAAH,OAAC,iBAAc,cAA4B,WAAW,aACnD;AAAA,mBAAa;AAAA,MAEZ,gBAAAD,MAAC,aAAW,GAAG,aAAa,sBAAsB;AAAA,MAEnD,aAAa;AAAA,MAEZ,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,gBAAgB;AAAA,UAChB,cAAc,CAAC,YAAY,MAAM,EAAE;AAAA;AAAA,MACrC;AAAA,MAED,CAAC,aAAa;AAAA,MAEb,gBAAAA,MAAC,aAAU,gBAAgB,MAAM;AAAA,MAEnC,gBAAAC,OAACK,OAAA,EAAI,SAAS,MAAM,YAAY,EAAE,aAAa,KAAK,CAAC,GAAG,KAAKF,aAE3D;AAAA,wBAAAJ,MAAC,sBAAU,aAA0B;AAAA,QACpC,SAAS;AAAA,QAER,gBAAAA,MAAC,uBAAQ,aAA0B;AAAA,SAEvC;AAAA,OACF;AAAA;AAEJ;;;ALIgB,gBAAAO,OAaI,QAAAC,cAbJ;AA/BhB,IAAM,gBAAgB,CAAC,EAAE,eAAe,CAAC,EAAE,MAA0B;AACnE,QAAM,UAAUC,aAAW,cAAc;AACzC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAGJ,QAAM,aAAa,CAAC,UAAe,eAAuB;AACxD,QAAI,QAAQ;AAEZ,QAAI,MAAM,QAAQ,QAAQ,GAAG;AAC3B,cAAQ,SAAS,KAAK,CAAC,YAAY,QAAQ,kBAAkB,UAAU;AAAA,IACzE;AAEA,WAAO;AAAA,EACT;AAEA,iBAAe,EAAE,cAAc,QAAQ,CAAC;AAExC,SACE,gBAAAF,MAAC,OAAO,cAAP,EACC,0BAAAA,MAAC,qBAAkB,IAAIG,iBAAO,oBAC5B,0BAAAH,MAAC,kBAAkB,MAAlB,EAAuB,IAAIG,iBAAO,wBACjC,0BAAAF,OAACG,OAAA,EAAI,IAAID,iBAAO,eACd;AAAA,oBAAAF,OAACG,OAAA,EAAI,IAAID,iBAAO,eACd;AAAA,sBAAAH,MAACI,OAAA,EAAI,IAAID,iBAAO,0BACd,0BAAAH,MAAC,eAAY,GACf;AAAA,MACC,mBAAmB,IAAI,CAAC,SAAS,OAChC,gBAAAA;AAAA,QAACI;AAAA,QAAA;AAAA,UACC,IACE,KAAK,IACDD,iBAAO,mBACPA,iBAAO;AAAA,UAGb,WAAQ;AAAA,UAEP,kBAAQ,IAAI,CAAC,SACZ,gBAAAF,OAACG,OAAA,EAAI,IAAID,iBAAO,oBACd;AAAA,4BAAAH,MAAC,8BAAkB,eAAc,UAAU,GAAG,MAAM;AAAA,YACnD,WAAW,mBAAmB,KAAK,EAAE,IACpC,gBAAAA;AAAA,cAACK;AAAA,cAAA;AAAA,gBACC,cAAY;AAAA,gBACZ,MAAK;AAAA,gBACL,SAAQ;AAAA,gBACR,MAAM,MAAM,gBAAAL,MAACM,YAAA,EAAU,WAAU,SAAQ,MAAM,IAAI;AAAA,gBACnD,IACE,sBAAsB,KAAK,MAC3B,CAAC,uBACGH,iBAAO,kBACPA,iBAAO;AAAA,gBAEb,SAAS,MAAM;AACb,uCAAqB,KAAK,EAAE;AAC5B,0CAAwB,KAAK;AAAA,gBAC/B;AAAA;AAAA,YACF,IACE;AAAA,eAnBmC,KAAK,KAoB9C,CACD;AAAA;AAAA,QAzBI;AAAA,MA0BP,CACD;AAAA,OACH;AAAA,IACA,gBAAAH;AAAA,MAACI;AAAA,MAAA;AAAA,QACC,WACE,wBAAwB,CAAC,oBAAoB,KAAK;AAAA,QAEpD,IAAID,iBAAO;AAAA,QAEV,8BACC,gBAAAH;AAAA,UAAC;AAAA;AAAA,YACC,iBAAiB;AAAA,YAChB,GAAI,MAAM,QAAQ,iBAAiB,IAChC,mBAAmB;AAAA,cACjB,CAAC,YACC,QAAQ,kBAAkB;AAAA,YAC9B,IACA;AAAA;AAAA,QACN,IACE;AAAA;AAAA,IACN;AAAA,KACF,GACF,GACF,GACF;AAEJ;AAEA,IAAO,yBAAQ;;;AwBpHf,SAAS,QAAAO,QAAM,QAAAC,QAAM,QAAAC,aAAY;;;ACCjC,SAAS,QAAAC,cAAY;AAGnB,SAQE,OAAAC,OARF,QAAAC,cAAA;AADF,IAAM,WAAW,CAAC,UAChB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,oBAAQ;;;AC9Bf,SAAS,QAAAE,cAAY;AAGnB,SAQE,OAAAC,OARF,QAAAC,cAAA;AADF,IAAM,WAAW,CAAC,UAChB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,oBAAQ;;;AC9Bf,SAAS,QAAAE,cAAY;AAGnB,SAQE,OAAAC,OARF,QAAAC,cAAA;AADF,IAAM,mBAAmB,CAAC,UACxB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA,UACL,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,6BAAQ;;;AHxBf,SAAS,cAAAE,cAAY,aAAAC,aAAmB,YAAAC,kBAAgB;;;AIAxD,IAAMC,aAAqB,CAAC,EAAE,MAAM,IAAI,CAAC,OAAO;AAAA,EAC9C,OAAO;AAAA,EACP,eAAe,QAAQ,WAAW,CAAC,UAAU,KAAK;AAAA,EAClD,YAAY,QAAQ,eAAe;AAAA,EACnC,cAAc,CAAC,WAAW,eAAe;AAAA,EACzC,gBAAgB,CAAC,WAAW,eAAe;AAAA,EAC3C,WAAW,QAAQ,QAAQ;AAAA,EAC3B,cAAc,QAAQ,QAAQ;AAAA,EAC9B,KAAK,QAAQ,QAAQ;AACvB;AAEA,IAAM,WAAoB,CAAC,EAAE,MAAM,IAAI,CAAC,OAAO;AAAA,EAC7C,UAAU,QAAQ,SAAS;AAAA,EAC3B,YAAY;AAAA,EACZ,OAAO;AACT;AAEA,IAAM,iBAA0B,CAAC,EAAE,MAAM,IAAI,CAAC,OAAO;AAAA,EACnD,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,KAAK,QAAQ,QAAQ;AAAA,EACrB,IAAI,QAAQ,QAAQ;AACtB;AAEA,IAAM,gBAA6B;AAAA,EACjC,eAAe,CAAC,QAAQ,GAAG;AAAA,EAC3B,cAAc,CAAC,qBAAqB,MAAM;AAAA,EAC1C,IAAI,CAAC,OAAO,GAAG;AAAA,EACf,IAAI,CAAC,QAAQ,GAAG;AAAA,EAChB,OAAO,CAAC,QAAQ,MAAM;AAAA,EACtB,gBAAgB,CAAC,UAAU,SAAS;AAAA,EACpC,YAAY;AACd;AAEA,IAAM,WAAwB;AAAA,EAC5B,IAAI;AACN;AAEA,IAAM,cAA2B;AAAA,EAC/B,IAAI;AAAA,EACJ,WAAW;AACb;AAEA,IAAM,SAAsB;AAAA,EAC1B,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,cAAc;AAAA,MACZ,QAAQ;AAAA,IACV;AAAA,EACF;AACF;AAEA,IAAM,eAA4B;AAAA,EAChC,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,cAAc;AAAA,IACZ,QAAQ;AAAA,EACV;AACF;AAEA,IAAM,iBAA8B;AAAA,EAClC,OAAO;AACT;AAEA,IAAM,MAAe,CAAC,EAAE,MAAM,IAAI,CAAC,OAAO;AAAA,EACxC,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,UAAU,QAAQ,SAAS;AAAA,EAC3B,YAAY;AACd;AAEA,IAAM,WAAwB;AAAA,EAC5B,SAAS;AACX;AAEA,IAAM,gBAAyB,CAAC,EAAE,MAAM,IAAI,CAAC,OAAO;AAAA,EAClD,GAAG,IAAI,EAAE,MAAM,CAAC;AAAA,EAChB,GAAG;AAAA,EACH,UAAU;AAAA,IACR,OAAO;AAAA,EACT;AAAA;AAAA,EAEA,OAAO;AAAA,EACP,SAAS;AACX;AAEA,IAAM,WAAwB,EAAE,IAAI,MAAM;AAE1C,IAAM,cAA2B;AAAA;AAEjC;AAEA,IAAOC,mBAAQ;AAAA,EACb;AAAA,EACA,WAAAD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;AChHA,SAAS,OAAAE,OAAK,UAAAC,SAAQ,QAAAC,QAAM,QAAAC,cAAY;;;ACCxC,SAAS,QAAAC,cAAY;AASjB,gBAAAC,aAAA;AAPJ,IAAM,eAAe,CAAC,UACpB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN,0BAAAC;AAAA,MAAC;AAAA;AAAA,QACC,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA;AACF;AAGF,IAAO,wBAAQ;;;AChBf,SAAS,QAAAC,cAAY;AASjB,gBAAAC,aAAA;AAPJ,IAAM,eAAe,CAAC,UACpB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN,0BAAAC;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,UAAS;AAAA,QACT,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA;AACF;AAGF,IAAO,wBAAQ;;;AClBf,SAAS,QAAAC,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,YAAY,CAAC,UACjB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,UAAK,GAAE,mBAAkB,SAAQ,KAAI,QAAO,gBAAc;AAAA,MAC3D,gBAAAA,MAAC,UAAK,GAAE,2JAA0J,MAAK,gBAAc;AAAA;AAAA;AACvL;AAGF,IAAO,qBAAQ;;;ACdf,SAAS,QAAAE,cAAY;AASjB,gBAAAC,aAAA;AAPJ,IAAM,cAAc,CAAC,UACnB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN,0BAAAC;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,UAAS;AAAA,QACT,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA;AACF;AAGF,IAAO,uBAAQ;;;AJdf,SAAS,UAAAC,SAAQ,YAAAC,kBAAgB;AACjC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;;;AKTP,IAAMC,aAAyB;AAAA,EAC7B,UAAU;AAAA,EACV,QAAQ;AACV;AAEA,IAAMC,UAAsB;AAAA,EAC1B,QAAQ;AAAA,EACR,eAAe;AAAA,EACf,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,UAAU;AAAA,IACR,OAAO;AAAA,IACP,gBAAgB;AAAA,EAClB;AAAA,EACA,YAAY;AACd;AAEA,IAAM,YAAyB;AAAA,EAC7B,aAAa;AACf;AAEA,IAAM,cAA2B;AAAA,EAC/B,KAAK;AAAA,EACL,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,UAAU;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA,YAAY;AACd;AAEA,IAAM,iBAA8B;AAAA,EAClC,UAAU;AAAA,EACV,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,KAAK;AAAA,EACL,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,KAAK;AAAA,EACL,WAAW;AAAA,EACX,cAAc;AAAA,EAEd,WAAW;AAAA,IACT,SAAS;AAAA,IACT,UAAU;AAAA,IACV,KAAK;AAAA,IACL,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,cAAc;AAAA,IACd,WAAW;AAAA,EACb;AACF;AAEA,IAAM,UAAuB;AAAA,EAC3B,cAAc;AAChB;AAEA,IAAOC,mBAAQ;AAAA,EACb,WAAAF;AAAA,EACA,QAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ACxEA,SAAS,QAAAE,cAAY;AAWjB,gBAAAC,aAAA;AATJ,IAAM,YAAY,CAAC,UACjB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN,0BAAAC;AAAA,MAAC;AAAA;AAAA,QACC,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA;AACF;AAGF,IAAO,qBAAQ;;;AClBf,SAAS,QAAAC,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,WAAW,CAAC,UAChB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,oBAAQ;;;APWT,SAKE,OAAAE,OALF,QAAAC,cAAA;AAfN,IAAM,cAAc,CAAC,EAAE,KAAK,KAAG,CAAC,EAAE,MAAa;AAC7C,QAAM,CAAC,QAAQ,SAAS,IAAIC,WAAS,KAAK;AAC1C,QAAM,eAAeC,QAAO;AAC5B,kBAAgB,cAAc,MAAM,UAAU,KAAK,CAAC;AAEpD,QAAM,iBAAiB,YAAY;AACjC,QAAI;AACF,UAAI;AAAQ,cAAM,UAAU,UAAU,UAAU,OAAO,SAAS,IAAI;AAAA,IACtE,SAAS,OAAO;AACd,cAAQ,MAAM,oCAAoC,KAAK;AAAA,IACzD;AAAA,EACF;AAEA,SACE,gBAAAF,OAACG,QAAA,EAAK,IAAI,EAAC,GAAGC,iBAAO,WAAW,GAAG,GAAE,GAAG,KAAK,cAC3C;AAAA,oBAAAJ;AAAA,MAACK;AAAA,MAAA;AAAA,QACC,IAAID,iBAAO;AAAA,QACX,SAAQ;AAAA,QACR,SAAS,MAAM,UAAU,CAAC,MAAM;AAAA,QAEhC;AAAA,0BAAAL,MAAC,sBAAU,IAAIK,iBAAO,WAAW,MAAM,IAAG;AAAA,UAAE;AAAA;AAAA;AAAA,IAC9C;AAAA,IACC,UACC,gBAAAJ,OAACG,QAAA,EAAK,IAAIC,iBAAO,gBACf;AAAA,sBAAAJ,OAACG,QAAA,EAAK,IAAIC,iBAAO,aAAa,SAAS,gBACrC;AAAA,wBAAAL,MAAC,qBAAS,MAAM,IAAI;AAAA,QACpB,gBAAAA,MAACO,QAAA,EAAK,uBAAS;AAAA,SACjB;AAAA,MACA,gBAAAP,MAACQ,OAAA,EAAI,IAAIH,iBAAO,SAAS;AAAA,MACzB,gBAAAL,MAAC,oBAAiB,KAChB,0BAAAC,OAACG,QAAA,EAAK,IAAIC,iBAAO,aAAa,SAAS,gBACrC;AAAA,wBAAAL,MAAC,sBAAU,MAAM,IAAI;AAAA,QACrB,gBAAAA,MAACO,QAAA,EAAK,oBAAM;AAAA,SACd,GACF;AAAA,MACA,gBAAAP,MAAC,sBAAmB,KAClB,0BAAAC,OAACG,QAAA,EAAK,IAAIC,iBAAO,aACf;AAAA,wBAAAL,MAAC,wBAAY,MAAM,IAAI;AAAA,QACvB,gBAAAA,MAACO,QAAA,EAAK,qBAAO;AAAA,SACf,GACF;AAAA,MACA,gBAAAP,MAAC,uBAAoB,KACnB,0BAAAC,OAACG,QAAA,EAAK,IAAIC,iBAAO,aACf;AAAA,wBAAAL,MAAC,yBAAa,MAAM,IAAI;AAAA,QACxB,gBAAAA,MAACO,QAAA,EAAK,sBAAQ;AAAA,SAChB,GACF;AAAA,MACA,gBAAAP,MAAC,uBAAoB,KACnB,0BAAAC,OAACG,QAAA,EAAK,IAAIC,iBAAO,aACf;AAAA,wBAAAL,MAAC,yBAAa,MAAM,IAAI;AAAA,QACxB,gBAAAA,MAACO,QAAA,EAAK,sBAAQ;AAAA,SAChB,GACF;AAAA,OACF;AAAA,KAEJ;AAEJ;AAEA,IAAO,uBAAQ;;;AL5BP,gBAAAE,OAQE,QAAAC,cARF;AA7BR,IAAM,kBAAkB,CAAC;AAAA,EACvB;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf,aAAAC,eAAc;AAAA,EACd;AAAA,EACA,QAAQ;AACV,MAAe;AACb,QAAM,CAAC,UAAU,WAAW,IAAIC,WAA8B,MAAS;AACvE,QAAM,EAAE,OAAO,IAAIC,aAAW,cAAc;AAG5C,EAAAC,YAAU,MAAM;AACd,gBAAY,MAAS;AAAA,EACvB,GAAG,CAAC,IAAI,CAAC;AAET,QAAM,aAAa,OAAO,UAAmB;AAC3C,QAAI,aAAa;AAAW;AAC5B,gBAAY,KAAK;AACjB,QAAI;AACF,YAAM,aAAa,KAAK;AAAA,IAC1B,SAAS,GAAG;AACV,kBAAY,MAAS;AAAA,IACvB;AAAA,EACF;AAEA,SACE,gBAAAJ,OAACK,QAAA,EAAK,IAAIC,iBAAO,UAAU,EAAE,MAAM,CAAC,GAAG,WAAQ,oBAC7C;AAAA,oBAAAN,OAACK,QAAA,EAAK,IAAIC,iBAAO,eACf;AAAA,sBAAAP,MAACQ,QAAA,EAAK,IAAID,iBAAO,SAAS,EAAE,MAAM,CAAC,GAChC,uBAAa,SACV,SAAS,MAAM,EAAE,2BAA2B,IAC5C,SAAS,MAAM,EAAE,2BAA2B,GAClD;AAAA,MAEA,gBAAAN,OAACK,QAAA,EAAK,IAAIC,iBAAO,eAAe,EAAE,MAAM,CAAC,GAEvC;AAAA,wBAAAN;AAAA,UAACK;AAAA,UAAA;AAAA,YACC,IACE,aAAa,SACTC,iBAAO,SACP,aAAa,OACbA,iBAAO,iBACPA,iBAAO;AAAA,YAEb,SAAS,MAAM,WAAW,IAAI;AAAA,YAC9B,MAAK;AAAA,YACL,gBAAc,aAAa;AAAA,YAC3B,WAAQ;AAAA,YAEP;AAAA,2BAAa,OACZ,gBAAAP,MAAC,8BAAiB,MAAM,QAAQ,KAAK,IAAI,IAAIO,iBAAO,UAAU,IAE9D,gBAAAP,MAAC,qBAAS,MAAM,QAAQ,KAAK,IAAI,IAAIO,iBAAO,UAAU;AAAA,cAEvD,CAAC,SACA,gBAAAP,MAACQ,QAAA,EAAM,mBAAS,MAAM,EAAE,2BAA2B,GAAE;AAAA;AAAA;AAAA,QAEzD;AAAA,QAGA,gBAAAP;AAAA,UAACK;AAAA,UAAA;AAAA,YACC,IACE,aAAa,SACTC,iBAAO,SACP,aAAa,QACbA,iBAAO,iBACPA,iBAAO;AAAA,YAEb,SAAS,MAAM,WAAW,KAAK;AAAA,YAC/B,MAAK;AAAA,YACL,gBAAc,aAAa;AAAA,YAC3B,WAAQ;AAAA,YAEP;AAAA,2BAAa,QACZ,gBAAAP;AAAA,gBAAC;AAAA;AAAA,kBACC,MAAM,QAAQ,KAAK;AAAA,kBACnB,IAAIO,iBAAO;AAAA;AAAA,cACb,IAEA,gBAAAP,MAAC,qBAAS,MAAM,QAAQ,KAAK,IAAI,IAAIO,iBAAO,aAAa;AAAA,cAE1D,CAAC,SACA,gBAAAP,MAACQ,QAAA,EAAM,mBAAS,MAAM,EAAE,2BAA2B,GAAE;AAAA;AAAA;AAAA,QAEzD;AAAA,SACF;AAAA,OACF;AAAA,IACC,gBACC,gBAAAP;AAAA,MAACQ;AAAA,MAAA;AAAA,QACC,QAAO;AAAA,QACP,KAAI;AAAA,QACJ,MAAM;AAAA,QACN,IAAIF,iBAAO,cAAc,EAAE,MAAM,CAAC;AAAA,QAElC;AAAA,0BAAAP,MAAC,qBAAS,MAAM,QAAQ,KAAK,IAAI,IAAIO,iBAAO,UAAU;AAAA,UACtD,gBAAAP,MAACQ,QAAA,EAAM,mBAAS,MAAM,EAAE,uBAAuB,GAAE;AAAA;AAAA;AAAA,IACnD;AAAA,IAEDN,gBACC,gBAAAF,MAAC,wBAAY,KAAK,OAAO,SAAS,MAAM,IAAIO,iBAAO,aAAa;AAAA,KAEpE;AAEJ;AAEA,IAAO,2BAAQ;;;AanIf,SAAS,OAAAG,OAAK,QAAAC,cAAY;;;ACA1B,SAAS,OAAAC,aAAW;;;ACApB,SAAS,OAAAC,OAAK,QAAAC,QAAM,QAAAC,cAAY;AAChC,SAAS,cAAAC,cAAY,aAAAC,mBAAiB;;;ACCtC,IAAM,mBAAgC;AAAA,EACpC,gBAAgB;AAAA,EAChB,SAAS;AAAA,EACT,IAAI;AAAA,EACJ,QAAQ;AAAA,EACR,mBAAmB;AAAA,IACjB,iBAAiB;AAAA,IACjB,cAAc;AAAA,IACd,yBAAyB;AAAA,MACvB,OAAO;AAAA,IACT;AAAA,IACA,yBAAyB;AAAA,MACvB,YAAY;AAAA,IACd;AAAA,EACF;AACF;AAEA,IAAM,sBAAmC;AAAA,EACvC,YAAY;AACd;AAEA,IAAM,cAA2B;AAAA,EAC/B,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,WAAW;AAAA,EACX,IAAI;AACN;AAEA,IAAM,eAA4B;AAAA,EAChC,UAAU;AAAA,EACV,YAAY;AACd;AAEA,IAAM,qBAAkC;AAAA,EACtC,GAAG;AAAA,EACH,OAAO;AAAA,EACP,YAAY;AACd;AAEA,IAAM,eAA4B;AAAA,EAChC,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,OAAO;AAAA,EACP,WAAW;AAAA,EACX,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,YAAY;AACd;AAEA,IAAM,iBAA8B;AAAA,EAClC,GAAG;AAAA,EACH,IAAI;AACN;AAEA,IAAM,uBAAoC;AAAA,EACxC,GAAG;AAAA,EACH,YAAY;AAAA,EACZ,OAAO;AACT;AAEA,IAAOC,mBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ADnEA,SAAS,aAAAC,kBAAiB;;;AEL1B;AAAA,EACE,iBAAAC;AAAA,EAIA,YAAAC;AAAA,OACK;AAoCH,gBAAAC,aAAA;AArBG,IAAM,gBAAgBF,eAAiC;AAAA,EAC5D,uBAAuB;AAAA,EACvB,6BAA6B,MAAM;AAAA,EACnC,gBAAgB,CAAC;AAAA,EACjB,sBAAsB,MAAM;AAC9B,CAAC;AAMD,IAAM,wBAAwB,CAAC,EAAE,SAAS,MAAa;AACrD,QAAM,CAAC,uBAAuB,2BAA2B,IACvDC,WAAqB,EAAE;AACzB,QAAM,CAAC,gBAAgB,oBAAoB,IAAIA,WAAwB,CAAC,CAAC;AAEzE,QAAM,uBAAuB,CAAC,gBAA+B;AAC3D,yBAAqB,WAAW;AAAA,EAClC;AAEA,SACE,gBAAAC;AAAA,IAAC,cAAc;AAAA,IAAd;AAAA,MACC,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MAEC;AAAA;AAAA,EACH;AAEJ;AAEA,IAAO,iBAAQ;;;AFzBX,SACE,OAAAC,OADF,QAAAC,cAAA;AAhBJ,IAAM,gBAAgB,CAAC,EAAE,aAAa,MAAM,MAA0B;AACpE,QAAM,SAASC,WAAU;AACzB,QAAM,EAAE,uBAAuB,gBAAgB,4BAA4B,IACzEC,aAAW,aAAa;AAC1B,QAAM,EAAE,OAAO,IAAIA,aAAW,cAAc;AAE5C,QAAM,eAAe,CAAC,UAAsB;AAC1C,WAAO,MAAM,SAAS;AACtB,gCAA4B,KAAK;AAAA,EACnC;AAEA,EAAAC,YAAU,MAAM;AACd,iBAAa,EAAE;AAAA,EACjB,GAAG,CAAC,OAAO,KAAK,CAAC;AAEjB,SAAO,CAAC,cACN,gBAAAH,OAACI,QAAA,EAAK,IAAIC,iBAAO,kBAAkB,SAAS,MAAM,aAAa,EAAE,GAC/D;AAAA,oBAAAN;AAAA,MAACO;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,IACE,wBACID,iBAAO,iBACPA,iBAAO;AAAA,QAGZ,mBAAS,MAAM,EAAE,oBAAoB,KAAK;AAAA;AAAA,IAC7C;AAAA,IACA,gBAAAN,MAACQ,OAAA,EAAI,WAAU,wBAAuB,IAAIF,iBAAO,cAC9C,yBAAe,EAAE,GACpB;AAAA,KACF,IAEA,gBAAAL;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,IAAIC,iBAAO;AAAA,MAEX,SAAS,MAAM,aAAa,YAAY,EAAE;AAAA,MAE1C;AAAA,wBAAAL,OAACI,QAAA,EAAK,IAAIC,iBAAO,qBACf;AAAA,0BAAAN,MAAC,YAAY,MAAZ,EAAiB,IAAIM,iBAAO,aAAa;AAAA,UAC1C,gBAAAN;AAAA,YAACO;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,IACE,0BAA0B,YAAY,KAClCD,iBAAO,qBACPA,iBAAO;AAAA,cAGZ,sBAAY;AAAA;AAAA,UACf;AAAA,WACF;AAAA,QACA,gBAAAN,MAACQ,OAAA,EAAI,WAAU,wBAAuB,IAAIF,iBAAO,cAC9C,yBAAe,YAAY,EAAE,KAAK,GACrC;AAAA;AAAA;AAAA,IAlBK,kBAAkB,YAAY,EAAE,GAAG,KAAK;AAAA,EAmB/C;AAEJ;AAEA,IAAO,yBAAQ;;;AGrEf,IAAMG,aAAyB;AAAA,EAC7B,SAAS,CAAC,QAAQ,QAAQ,QAAQ,SAAS;AAAA,EAC3C,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,IAAI,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,MAAM;AAAA,EAC3D,IAAI;AACN;AAEA,IAAM,eAA4B;AAAA,EAChC,IAAI;AAAA,EACJ,YAAY;AACd;AAEA,IAAM,cAA2B;AAAA,EAC/B,GAAG;AAAA,EACH,cAAc;AAChB;AAEA,IAAOC,mBAAQ;AAAA,EACb,WAAAD;AAAA,EACA;AAAA,EACA;AACF;;;AJtBA,SAAS,cAAAE,oBAAkB;AAanB,SAQe,OAAAC,OARf,QAAAC,cAAA;AAVR,IAAM,iBAAiB,MAAM;AAC3B,QAAM,EAAE,gBAAgB,IAAIC,aAAW,cAAc;AAErD,QAAM,uBAAuB,gBAAgB;AAAA,IAAI,CAAC,YAChD,QAAQ,OAAO,CAACC,UAAS,CAACA,MAAK,cAAc;AAAA,EAC/C;AAEA,SACE,gBAAAH,MAACI,OAAA,EAAI,IAAIC,iBAAO,WACb,+BAAqB,IAAI,CAAC,UAAU,OACnC,gBAAAJ;AAAA,IAACG;AAAA,IAAA;AAAA,MAEC,IACE,KAAK,qBAAqB,SAAS,IAC/BC,iBAAO,cACPA,iBAAO;AAAA,MAGZ;AAAA,eAAO,KAAK,gBAAAL,MAAC,0BAAc,aAAa,MAAM;AAAA,QAC9C,SAAS,IAAI,CAAC,SAAS,UACtB,gBAAAA;AAAA,UAAC;AAAA;AAAA,YAEC,aAAa;AAAA,YACb;AAAA;AAAA,UAFK,uBAAuB,QAAQ,EAAE;AAAA,QAGxC,CACD;AAAA;AAAA;AAAA,IAdI,kBAAkB,EAAE;AAAA,EAe3B,CACD,GACH;AAEJ;AAEA,IAAO,0BAAQ;;;AKvCf,SAAS,aAAAM,kBAAiB;AAC1B,SAAS,cAAAC,cAAY,YAAAC,kBAAgB;AAIrC,SAAS,OAAAC,OAAK,QAAAC,cAAY;AAE1B,SAAS,aAAAC,YAAW,iBAAAC,sBAAqB;;;ACPzC,SAAS,cAAAC,cAAY,aAAAC,aAAW,WAAAC,UAAS,UAAAC,gBAAkB;AAC3D;AAAA,EACE;AAAA,EACA,uBAAAC;AAAA,OACK;;;ACJP,SAAS,OAAAC,OAAK,QAAAC,QAAM,QAAAC,QAAM,aAAAC,YAAW,WAAAC,gBAAe;;;ACIpD,IAAMC,aAAyB;AAAA,EAC7B,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,aAAa,CAAC,QAAQ,MAAM;AAAA,EAC5B,cAAc,CAAC,QAAQ,MAAM;AAAA,EAC7B,YAAY;AAAA,EACZ,QAAQ;AACV;AAEA,IAAM,kBAAkB,CAAC,WAAgD;AACvE,QAAM,iBAAiB,SAAS,cAAc,MAAM,IAAI;AACxD,SAAO;AAAA,IACL,GAAGA;AAAA,IACH,UAAU;AAAA,MACR,YAAY;AAAA,MACZ,4CAA4C;AAAA,QAC1C,OAAO;AAAA,MACT;AAAA,MACA,oBAAoB;AAAA,QAClB,GAAG;AAAA,MACL;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAMC,SAAqB;AAAA,EACzB,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,UAAU,CAAC,QAAQ,MAAM;AAAA,EACzB,YAAY,CAAC,QAAQ,MAAM;AAAA,EAC3B,OAAO;AACT;AAEA,IAAM,aAA0B;AAAA,EAC9B,IAAI;AACN;AAEA,IAAMC,QAAoB;AAAA,EACxB,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,IAAI;AAAA,EACJ,MAAM;AAAA,IACJ,QAAQ;AAAA,EACV;AACF;AAEA,IAAMC,eAA2B;AAAA,EAC/B,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,IAAI;AACN;AAEA,IAAM,oBAAiC;AAAA,EACrC,QAAQ;AAAA,EACR,UAAU;AACZ;AAEA,IAAM,0BAAuC;AAAA,EAC3C,IAAI;AACN;AAEA,IAAM,uBAAoC;AAAA,EACxC,SAAS,CAAC,QAAQ,MAAM;AAAA,EACxB,aAAa;AAAA,EACb,YAAY;AACd;AAEA,IAAMC,eAA2B;AAAA,EAC/B,YAAY;AACd;AAEA,IAAM,gBAA6B;AAAA,EACjC,GAAGA;AAAA,EACH,UAAU;AACZ;AAEA,IAAM,aAA0B;AAAA,EAC9B,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,cAAc;AAChB;AAEA,IAAM,iBAA8B;AAAA,EAClC,GAAG;AAAA,EACH,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,UAAU;AAAA,EACV,UAAU;AAAA,EACV,YAAY;AACd;AAEA,IAAM,gBAA6B;AAAA,EACjC,GAAG;AAAA,EACH,IAAI;AAAA,EACJ,UAAU;AACZ;AAEA,IAAM,mBAAgC;AAAA,EACpC,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AACT;AAEA,IAAM,kBAA+B;AAAA,EACnC,aAAa;AAAA,EACb,YAAY;AACd;AAEA,IAAM,aAA0B;AAAA,EAC9B,UAAU;AAAA,EACV,WAAW;AAAA,EACX,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,IAAI;AACN;AAEA,IAAOC,mBAAQ;AAAA,EACb;AAAA,EACA,OAAAJ;AAAA,EACA;AAAA,EACA,MAAAC;AAAA,EACA,aAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ADjJA,OAAOE,WAAU;AAEjB,SAAS,YAAAC,kBAAgB;AACzB,SAAS,cAAAC,oBAAkB;;;AEL3B,SAAS,QAAAC,cAAY;AAQjB,SACE,OAAAC,OADF,QAAAC,cAAA;AAFJ,IAAM,sBAAsB,CAAC,EAAE,OAAO,MACpC,SACE,gBAAAA,OAACF,QAAA,EAAK,SAAQ,aAAY,MAAK,QAAO,OAAM,8BAC1C;AAAA,kBAAAC;AAAA,IAAC;AAAA;AAAA,MACC,GAAE;AAAA,MACF,MAAK;AAAA;AAAA,EACP;AAAA,EACA,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,GAAE;AAAA,MACF,MAAK;AAAA;AAAA,EACP;AAAA,GACF,IAEA,gBAAAC,OAACF,QAAA,EAAK,SAAQ,aAAY,MAAK,QAAO,OAAM,8BAC1C;AAAA,kBAAAC;AAAA,IAAC;AAAA;AAAA,MACC,GAAE;AAAA,MACF,MAAK;AAAA;AAAA,EACP;AAAA,EACA,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,GAAE;AAAA,MACF,MAAK;AAAA;AAAA,EACP;AAAA,EACA,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,GAAE;AAAA,MACF,MAAK;AAAA;AAAA,EACP;AAAA,GACF;AAGJ,IAAO,gCAAQ;;;AFOL,SACW,OAAAE,OADX,QAAAC,cAAA;AAhBV,IAAM,aAAa,CAAC;AAAA,EAClB,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAuB;AACrB,QAAM,cAAc,aAAa,UAAU,UAAU,IAAI;AACzD,QAAM,CAAC,oBAAoB,qBAAqB,IAAIC,WAAkB,KAAK;AAC3E,QAAM,EAAE,OAAO,IAAIC,aAAW,cAAc;AAC5C,SACE,gBAAAL,MAACM,OAAA,EAAK,MAAM,KAAK,gBAAc,MAC7B,0BAAAL,OAACM,QAAA,EAAK,IAAIC,iBAAO,gBAAgB,MAAM,GACrC;AAAA,oBAAAP,OAACQ,OAAA,EACC;AAAA,sBAAAR,OAACS,QAAA,EAAK,WAAU,mBAAkB,IAAIF,iBAAO,OAC1C;AAAA,QAAAN,UAAQ,gBAAAF,MAACE,QAAA,EAAK,IAAIM,iBAAO,MAAM;AAAA,QAC/B,SACC,gBAAAR;AAAA,UAAC;AAAA;AAAA,YACC,IAAIQ,iBAAO;AAAA,YACX,QAAO;AAAA,YACP;AAAA,YACA,QAAQ;AAAA;AAAA,QACV,IACE;AAAA,QACHL,WAAU,cAAc,GAAG,IAAI,WAAW;AAAA,QAC1CA;AAAA,SACH;AAAA,MACA,gBAAAF,OAACS,QAAA,EAAK,WAAU,yBAAwB,IAAIF,iBAAO,aACjD;AAAA,wBAAAR,MAACO,QAAA,EACC,0BAAAP;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA,WAAU;AAAA,YACT,GAAG,EAAE,YAAY,KAAK;AAAA;AAAA,QACzB,GACF;AAAA,QACC,sBACC,IAAI,iBAAiB,IAAI,CAAC,UAAU,UAClC,gBAAAA;AAAA,UAACS;AAAA,UAAA;AAAA,YACC,IAAID,iBAAO;AAAA,YAGX,0BAAAR;AAAA,cAAC;AAAA;AAAA,gBACC,KAAK;AAAA,gBACL,WAAU;AAAA,gBACT,GAAG,EAAE,YAAY,KAAK;AAAA;AAAA,YACzB;AAAA;AAAA,UANK,eAAe,IAAI,QAAQ,IAAI,KAAK;AAAA,QAO3C,CACD;AAAA,SACL;AAAA,MACC,cACC,gBAAAC,OAACQ,OAAA,EAAI,IAAID,iBAAO,sBACd;AAAA,wBAAAR,MAACU,QAAA,EAAK,IAAIF,iBAAO,eACd,mBAAS,MAAM,EAAE,gBAAgB,KAAK,MACzC;AAAA,QACC,YAAY,IAAI,CAACG,aAAY,UAC5B,gBAAAV;AAAA,UAACM;AAAA,UAAA;AAAA,YACC,IAAI,UAAU,IAAIC,iBAAO,gBAAgBA,iBAAO;AAAA,YAGhD;AAAA,8BAAAR,MAACY,UAAA,EAAQ,OAAOD,aAAY,WAAU,OACpC,0BAAAX,MAACU,QAAA,EAAK,IAAIF,iBAAO,YAAa,UAAAG,aAAW,GAC3C;AAAA,cACC,QAAQ,YAAY,SAAS,IAC5B,gBAAAX,MAACa,YAAA,EAAU,WAAU,SAAQ,IAAIL,iBAAO,kBAAkB,IACxD;AAAA;AAAA;AAAA,UAPC,GAAGG,WAAU,GAAG,KAAK;AAAA,QAQ5B,CACD;AAAA,SACH,IACE;AAAA,MACH,cACC,gBAAAV,OAACM,QAAA,EAAK,IAAIC,iBAAO,iBACf;AAAA,wBAAAR,MAAC,YAAY,MAAZ,EAAiB,IAAIQ,iBAAO,YAAY;AAAA,QAAG;AAAA,QAC5C,gBAAAR,MAACU,QAAA,EAAM,uBAAa,OAAM;AAAA,SAC5B,IACE;AAAA,OACN;AAAA,IACC,IAAI,mBAAmB,IAAI,gBAAgB,SAAS,KACnD,gBAAAV;AAAA,MAACS;AAAA,MAAA;AAAA,QACC,IAAID,iBAAO;AAAA,QACX,SAAS,CAAC,UAAiB;AACzB,gCAAsB,CAAC,kBAAkB;AACzC,gBAAM,gBAAgB;AAAA,QACxB;AAAA,QAEA,0BAAAR,MAAC,iCAAoB,QAAQ,oBAAoB;AAAA;AAAA,IACnD;AAAA,KAEJ,GACF;AAEJ;AAEA,IAAO,sBAAQ;;;ADxGf,SAAS,OAAAc,OAAK,QAAAC,cAAY;AAwBtB,gBAAAC,OA6FA,QAAAC,cA7FA;AAbJ,IAAM,UAAU,CAAC,EAAE,IAAI,MAAgB;AACrC,QAAM,EAAE,gBAAgB,IAAIC,aAAW,cAAc;AACrD,QAAM,kBAAkB,aAAa,iBAAiB,IAAI,OAAO;AAEjE,QAAM,cAAc;AAAA,IAClB;AAAA,IACA,GAAI,IAAI,cAAc,CAAC,IAAI,WAAW,IAAI,CAAC;AAAA,IAC3C;AAAA,IACA,IAAI;AAAA,EACN;AACA,QAAM,UAAU,mBAAmB,iBAAiB,IAAI,OAAO;AAE/D,SACE,gBAAAF;AAAA,IAAC;AAAA;AAAA,MACC,KAAK,IAAI;AAAA,MACT,MAAM;AAAA,MACN,OAAO,IAAI;AAAA,MACX,QAAS,IAAI,UAAyB;AAAA,MACtC,aAAc,eAA4B,CAAC;AAAA,MAC3C,YAAa,IAAI,cAA6B;AAAA,MAC9C,KAAK,eAAe,IAAI,GAAG;AAAA,MAC3B;AAAA;AAAA,EACF;AAEJ;AAEA,IAAM,eAAeG;AAAA,EACnB,CAAC,EAAE,cAAc,MAA4B;AAC3C,UAAM,EAAE,qBAAqB,IAAID,aAAW,aAAa;AAEzD,IAAAE,YAAU,MAAM;AACd,UAAI,CAAC;AAAe;AAGpB,YAAM,UAAU;AAChB,YAAM,uBACJ,OAAO,SAAS,OAAO,YAAY,YACnC,QAAQ,OAAO,QAAQ,SAAS,UAAU;AAE5C,YAAM,SAAS,SAAS;AAQxB,YAAM,eAAe,QAAQ,KAAK,CAAC,UAAU,MAAM,SAAS,SAAS;AACrE,YAAM,SAAS,SAAS,UAAU;AAElC,YAAM,kBAA0C,CAAC;AAEjD,UAAI,cAAc,MAAM;AACtB,eAAO,QAAQ,aAAa,IAAI,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAC1D,cAAI,OAAO,UAAU,UAAU;AAC7B,4BAAgB,GAAG,IAAI;AAAA,UACzB;AAAA,QACF,CAAC;AAAA,MACH;AAEA,sBAAgB,EAAE,IAAI;AAEtB,UAAI,CAAC,sBAAsB;AACzB,6BAAqB,eAAe;AAAA,MACtC;AAAA,IACF,GAAG,CAAC,eAAe,OAAO,CAAC;AAE3B,WAAO;AAAA,EACT;AACF;AAEA,IAAM,eAAe,CAAC,EAAE,MAAM,SAAS,WAAW,MAA4B;AAC5E,QAAM,YAAYC,SAAwB,IAAI;AAE9C,WAAS,uBAAuB,SAAsC;AACpE,YAAQ,QAAQ,CAAC,UAAqC;AACpD,UAAI,MAAM,kBAAkB,SAAS;AACnC,mBAAW;AAAA,MACb;AAAA,IACF,CAAC;AAAA,EACH;AAEA,QAAM,iBAAiBC,SAAQ,MAAM;AACnC,UAAM,YAA4B,CAAC;AACnC,SAAK,QAAQ,CAAC,QAAQ;AACpB,YAAM,gBAAgB,UAAU;AAAA,QAC9B,CAAC,MAAM,EAAE,uBAAuB,IAAI;AAAA,MACtC;AAEA,YAAM,cAAmB,EAAE,GAAG,KAAK,iBAAiB,CAAC,EAAE;AACvD,UAAI,iBAAiB,GAAG;AACtB,kBAAU,aAAa,EAAE,iBAAiB,KAAK,WAAW;AAAA,MAC5D;AAAO,kBAAU,KAAK,WAAW;AAAA,IACnC,CAAC;AACD,WAAO;AAAA,EACT,GAAG,CAAC,IAAI,CAAC;AAET,EAAAF,YAAU,MAAM;AACd,UAAM,WAAW,IAAI,qBAAqB,wBAAwB,CAAC,CAAC;AAEpE,QAAI,UAAU;AAAS,eAAS,QAAQ,UAAU,OAAO;AACzD,WAAO,MAAM;AACX,eAAS,WAAW;AAAA,IACtB;AAAA,EACF,GAAG,CAAC,IAAI,CAAC;AACT,SACE,gBAAAH,OAACM,OAAA,EACC;AAAA,oBAAAP,MAAC,gBAAa;AAAA,IACb,eAAe,IAAI,CAAC,KAAU,UAC7B,gBAAAA,MAACQ,QAAA,EACC,0BAAAR,MAAC,WAAQ,OAAe,KAAO,KADtB,IAAI,QAEf,CACD;AAAA,IACD,gBAAAA,MAAC,UAAK,KAAK,WAAW;AAAA,KACxB;AAEJ;AAEA,IAAM,wBAA4B,oBAAoB,YAAY;AAElE,IAAO,uBAAQ;;;AIlJf,IAAM,kBAA+B;AAAA,EACnC,OAAO,CAAC,OAAO,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ;AAAA,EACpE,YAAY,CAAC,QAAQ,QAAQ,QAAQ,MAAM;AAAA,EAC3C,IAAI;AAAA,IACF,WAAW;AAAA,IACX,cAAc;AAAA,IACd,WAAW;AAAA,IACX,aAAa;AAAA,IACb,SAAS,CAAC,QAAQ,QAAQ,QAAQ,OAAO;AAAA,EAC3C;AACF;AAEA,IAAM,aAA0B;AAAA,EAC9B,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,SAAS,CAAC,QAAQ,QAAQ,QAAQ,SAAS;AAC7C;AAEA,IAAM,sBAAmC;AAAA,EACvC,IAAI,CAAC,QAAQ,OAAO;AAAA,EACpB,IAAI;AAAA,EACJ,gBAAgB;AAClB;AAEA,IAAM,iBAA8B;AAAA,EAClC,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,QAAQ;AACV;AAEA,IAAM,yBAAsC;AAAA,EAC1C,GAAG;AAAA,EACH,OAAO;AACT;AAEA,IAAM,mBAAgC;AAAA,EACpC,SAAS;AAAA,EACT,UAAU,CAAC,QAAQ,MAAM;AAAA,EACzB,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,IAAI,CAAC,QAAQ,MAAM;AACrB;AAEA,IAAM,yBAAsC;AAAA,EAC1C,YAAY;AAAA,EACZ,IAAI;AACN;AAEA,IAAMS,aAAyB;AAAA,EAC7B,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,SAAS;AACX;AAEA,IAAOC,mBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAAD;AACF;;;AL5BM,gBAAAE,OAeE,QAAAC,cAfF;AAxBN,IAAM,gBAAgB,MAAM;AAC1B,QAAM,SAASC,WAAU;AACzB,QAAM,EAAE,uBAAuB,eAAe,IAAIC,aAAW,aAAa;AAC1E,QAAM,EAAE,OAAO,IAAIA,aAAW,cAAc;AAC5C,QAAM,UAAU;AAAA,IACd,YAAY,MAAM;AAAA,IAClB,wBAAwB,YAAY,qBAAqB,MAAM;AAAA,EACjE,EACG,OAAO,OAAO,EACd,KAAK,OAAO;AACf,QAAM,CAAC,YAAY,aAAa,IAAIC,WAAS,EAAE;AAC/C,QAAM,CAAC,aAAa,cAAc,IAAIA,WAAS,CAAC,CAAC;AAEjD,QAAM,oBAAoB,CAAC,iBAA8B;AACvD,UAAM,OAAO,YAAY,aAAa,IAAI,aAAa,QAAQ;AAC/D,kBAAc,OAAO;AACrB,mBAAe;AAAA,MACb,GAAG;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH;AAEA,SACE,gBAAAH,OAACI,OAAA,EAAI,IAAIC,iBAAO,iBACd;AAAA,oBAAAN,MAACO,QAAA,EAAK,IAAID,iBAAO,YACd,aAAG,SAAS,MAAM,EAAE,wBAAwB,KAAK,SAAS,IACzD,eAAe,qBAAqB,MAAM,SACtC,KACA,eAAe,qBAAqB,CAC1C,IAAI,SAAS,MAAM,EAAE,4BAA4B,KAAK,aAAa,IACjE,OAAO,MAAM,OACf,IAAI,SAAS,MAAM,EAAE,mBAAmB,KAAK,IAAI,IAC/C,CAAC,wBACG,SAAS,MAAM,EAAE,8BAA8B,KAAK,gBACpD,qBACN,IACF;AAAA,IACA,gBAAAN,MAAC,QAAG;AAAA,IACJ,gBAAAA,MAACK,OAAA,EACC,0BAAAJ;AAAA,MAACO;AAAA,MAAA;AAAA,QACC;AAAA,QACA,WAAW;AAAA,QACX;AAAA,QACA,qBAAqB,CAAC,iBACpB,kBAAkB,YAAY;AAAA,QAGhC;AAAA,0BAAAR;AAAA,YAACS;AAAA,YAAA;AAAA,cACC;AAAA,cACA,OAAO,OAAO,MAAM;AAAA,cACpB,gBAAgB;AAAA,cAChB,aAAa;AAAA,cACb,QAAQ,CAAC,WAAW,UAAU;AAAA,cAC9B,uBAAuB;AAAA;AAAA,UACzB;AAAA,UACA,gBAAAT,MAAC,wBAAa;AAAA;AAAA;AAAA,IAChB,GACF;AAAA,KACF;AAEJ;AAEA,IAAO,yBAAQ;;;AM7Ef,SAAS,cAAAU,oBAAkB;AAC3B,SAAS,QAAAC,QAAM,QAAAC,cAAY;;;ACC3B,IAAMC,aAAyB;AAAA,EAC7B,SAAS,CAAC,QAAQ,QAAQ,QAAQ,MAAM;AAAA,EACxC,WAAW;AAAA,EACX,gBAAgB;AAAA,EAChB,uBAAuB;AAAA,IACrB,SAAS;AAAA,EACX;AACF;AAEA,IAAM,MAAwC,CAAC,YAAY;AAAA,EACzD,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,QAAQ;AAAA,EACR,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,cAAc,GAAG,SAAS,IAAI,CAAC,aAAa,SAAS,WAAW,QAAQ;AAAA,EACxE,UAAU;AACZ;AAEA,IAAM,WAA6C,CAAC,YAAY;AAAA,EAC9D,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,OAAO,IAAI,SAAS,WAAW,QAAQ;AACzC;AAEA,IAAM,WAAwB;AAAA,EAC5B,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,iBAAiB;AACnB;AAEA,IAAOC,mBAAQ,EAAE,WAAAD,YAAW,KAAK,UAAU,SAAS;;;AD1BhD,SAIE,OAAAE,OAJF,QAAAC,cAAA;AANJ,IAAM,kBAAkB,CAAC,EAAE,OAAO,MAA0B;AAC1D,QAAM,EAAE,uBAAuB,6BAA6B,eAAe,IACzEC,aAAW,aAAa;AAC1B,QAAM,EAAE,OAAO,IAAIA,aAAW,cAAc;AAE5C,SACE,gBAAAD;AAAA,IAACE;AAAA,IAAA;AAAA,MACC,IAAIC,iBAAO,IAAI,0BAA0B,MAAM;AAAA,MAC/C,SAAS,MAAM,4BAA4B,MAAM;AAAA,MAEjD;AAAA,wBAAAJ,MAACK,QAAA,EAAK,IAAID,iBAAO,SAAS,0BAA0B,MAAM,GACvD,oBAAU,SAAS,MAAM,EAAE,oBAAoB,KAAK,eACvD;AAAA,QACA,gBAAAJ,MAACK,QAAA,EAAK,IAAID,iBAAO,UAAW,yBAAe,MAAM,KAAK,GAAE;AAAA;AAAA;AAAA,EAC1D;AAEJ;AAEA,IAAM,qBAAqB,MAAM;AAC/B,QAAM,EAAE,gBAAgB,IAAIF,aAAW,cAAc;AACrD,SACE,gBAAAD,OAACE,QAAA,EAAK,IAAIC,iBAAO,WACf;AAAA,oBAAAJ,MAAC,mBAAgB,QAAO,IAAG;AAAA,IAC1B,gBAAgB,KAAK,EAAE,IAAI,CAAC,YAAY;AACvC,aAAO,gBAAAA,MAAC,mBAAiC,QAAQ,QAAQ,MAA5B,QAAQ,EAAwB;AAAA,IAC/D,CAAC;AAAA,KACH;AAEJ;AAEA,IAAO,gCAAQ;;;AEpCf,IAAM,qBAAkC;AAAA,EACtC,SAAS,CAAC,QAAQ,QAAQ,QAAQ,MAAM;AAAA,EACxC,gBAAgB;AAAA,EAChB,IAAI;AACN;AAEA,IAAM,OAAoB;AAAA,EACxB,YAAY;AAAA,EACZ,gBAAgB;AAClB;AAEA,IAAOM,mBAAQ;AAAA,EACb;AAAA,EACA;AACF;;;AdLM,SAEI,OAAAC,OAFJ,QAAAC,cAAA;AAHN,IAAM,SAAS,MAAM;AACnB,SACE,gBAAAA,OAAC,kBACC;AAAA,oBAAAA,OAACC,OAAA,EACC;AAAA,sBAAAF,MAACG,QAAA,EAAK,IAAIC,iBAAO,oBACf,0BAAAJ,MAAC,eAAY,GACf;AAAA,MACA,gBAAAA,MAAC,iCAAmB;AAAA,OACtB;AAAA,IACA,gBAAAC,OAACE,QAAA,EAAK,IAAIC,iBAAO,MACf;AAAA,sBAAAJ,MAAC,2BAAe;AAAA,MAChB,gBAAAA,MAAC,0BAAc;AAAA,OACjB;AAAA,KACF;AAEJ;AAEA,IAAOK,kBAAQ;;;AezBf,SAAoB,cAAAC,oBAAkB;AACtC,SAAS,qBAAqB;;;ACC9B,IAAM,MAAmB;AAAA,EACvB,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,OAAO;AAAA,EACP,SAAS;AAAA,EACT,OAAO;AAAA,EACP,MAAM;AAAA,EACN,WAAW;AAAA,EACX,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,WAAW;AACb;AAEA,IAAM,aAA0B;AAAA,EAC9B,SAAS;AAAA,EACT,MAAM;AAAA,EACN,eAAe;AAAA,EACf,UAAU;AACZ;AAEA,IAAMC,SAAqB;AAAA,EACzB,OAAO;AAAA,EACP,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,YAAY;AACd;AAEA,IAAM,kBAA+B;AAAA,EACnC,SAAS;AAAA,EACT,UAAU;AAAA,EACV,KAAK;AAAA,EACL,gBAAgB;AAAA,EAChB,QAAQ;AACV;AAEA,IAAM,eAA4B;AAAA,EAChC,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,SAAS;AAAA,EACT,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,YAAY;AAAA,EAEZ,UAAU;AAAA,IACR,SAAS;AAAA,EACX;AACF;AAEA,IAAM,gBAA6B;AAAA,EACjC,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,QAAQ;AAAA,EAER,UAAU;AAAA,IACR,SAAS;AAAA,EACX;AACF;AAEA,IAAOC,mBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA,OAAAD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ADvEA,SAAS,QAAAE,QAAmB,QAAAC,cAAY;AAGxC,OAAOC,SAAQ;AAaX,gBAAAC,OAUA,QAAAC,cAVA;AAFJ,IAAMC,UAAS,CAAC,EAAE,UAAU,OAAO,GAAG,MAAM,MAAmB;AAC7D,SACE,gBAAAF,MAACG,QAAA,EAAK,IAAI,OAAQ,GAAG,OAClB,UACH;AAEJ;AAEA,IAAM,YAAY,CAAC,EAAE,SAAS,MAAa;AACzC,QAAM,EAAE,OAAO,IAAIC,aAAW,cAAc;AAE5C,SACE,gBAAAH;AAAA,IAAC;AAAA;AAAA,MACC,qBAAmB;AAAA,MACnB,aAAaI,iBAAO;AAAA,MACpB,oBAAoBA,iBAAO;AAAA,MAC3B,OAAOA,iBAAO;AAAA,MACd,UAAU,MAAM;AACd,QAAAN,IAAG,QAAQ;AAAA,UACT,SAAS;AAAA,UACT,WAAW;AAAA,QACb,CAAC;AACD,iBAAS;AAAA,MACX;AAAA,MACA,mBAAmB,SAAS,MAAM,EAAE,oBAAoB;AAAA,MACxD,YAAY,SAAS,MAAM,EAAE,mBAAmB;AAAA,MAChD,iBAAiBG;AAAA,MACjB,+BAA+B,EAAE,OAAOG,iBAAO,gBAAgB;AAAA,MAC/D,yBAAyB,EAAE,OAAOA,iBAAO,WAAW;AAAA,MAEpD;AAAA,wBAAAL,MAACM,QAAA,EAAK,IAAID,iBAAO,OAAQ,mBAAS,MAAM,EAAE,kBAAkB,GAAE;AAAA,QAC9D,gBAAAL,MAACM,QAAA,EAAM,mBAAS,MAAM,EAAE,wBAAwB,GAAE;AAAA;AAAA;AAAA,EACpD;AAEJ;AAEA,IAAO,qBAAQ;;;AErDf,SAAS,UAAAC,eAAc;;;ACCvB,SAAS,QAAAC,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,WAAW,CAAC,UAChB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,oBAAQ;;;ADxBf,SAAS,YAAAE,kBAAgB;;;AEDzB,IAAM,WAAwB;AAAA,EAC5B,aAAa;AACf;AAEA,IAAM,iBAA8B;AAAA,EAClC,eAAe;AAAA,EACf,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,iBAAiB;AAAA,EACjB,UAAU;AAAA,IACR,iBAAiB;AAAA,EACnB;AACF;AAEA,IAAOC,mBAAQ;AAAA,EACb;AAAA,EACA;AACF;;;AFHQ,gBAAAC,aAAA;AAfR,IAAM,iBAAiB,MAAM;AAC3B,QAAM,CAAC,aAAa,cAAc,IAAIC,WAAS,MAAM;AAErD,QAAM,aAAa,MAAM;AACvB,cAAU,UAAU,UAAU,OAAO,SAAS,IAAI;AAClD,mBAAe,MAAM;AAErB,eAAW,MAAM;AACf,qBAAe,SAAS;AAAA,IAC1B,GAAG,GAAI;AAAA,EACT;AAEA,SACE,gBAAAD,MAAC,mBAAQ,OAAO,aAAa,WAAU,UACrC,0BAAAA,MAACE,SAAA,EAAO,SAAS,YAAY,IAAIC,iBAAO,gBACtC,0BAAAH,MAAC,qBAAS,IAAIG,iBAAO,UAAU,MAAM,IAAI,GAC3C,GACF;AAEJ;AAEA,IAAO,2BAAQ;;;AG3Bf,SAAS,YAAAC,YAAU,aAAAC,mBAAiB;;;ACEpC,IAAM,QAAqB;AAAA,EACzB,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,UAAU,CAAC,MAAM;AAAA,EACjB,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,SAAS;AACX;AAEA,IAAMC,QAAoB;AAAA,EACxB,UAAU;AAAA,EACV,WAAW;AAAA,EACX,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,UAAU;AACZ;AAEA,IAAMC,cAAyB;AAAA,EAC7B,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,QAAQ;AAAA,EAER,UAAU;AAAA,IACR,YAAY;AAAA,IACZ,QAAQ;AAAA,EACV;AACF;AAEA,IAAOC,mBAAQ,EAAE,WAAAD,aAAW,OAAO,MAAAD,MAAK;;;ADrCxC,SAAS,QAAAG,cAAY;AAkBjB,SACW,OAAAC,OADX,QAAAC,cAAA;AARJ,IAAM,QAAQ,CAAC,EAAE,OAAO,UAAU,cAAc,IAAI,MAAAC,OAAK,MAAkB;AACzE,QAAM,CAAC,YAAY,aAAa,IAAIC,WAAS,SAAS,EAAE;AAExD,EAAAC,YAAU,MAAM;AACd,QAAI,eAAe;AAAO,oBAAc,KAAK;AAAA,EAC/C,GAAG,CAAC,KAAK,CAAC;AAEV,SACE,gBAAAH,OAACF,QAAA,EAAK,IAAIM,iBAAO,WACd;AAAA,IAAAH,UAAQ,gBAAAF,MAACE,QAAA,EAAK,IAAIG,iBAAO,MAAM;AAAA,IAChC,gBAAAL;AAAA,MAAC;AAAA;AAAA,QACC,OAAOK,iBAAO;AAAA,QACd,OAAO;AAAA,QACP;AAAA,QACA,UAAU,CAAC,MAAM;AACf,wBAAc,EAAE,cAAc,KAAK;AACnC,mBAAS,EAAE,cAAc,KAAK;AAAA,QAChC;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;AAEA,IAAO,gBAAQ;;;AEnCR,IAAM,iBAAiB,CAAC,SAAe;AAC5C,QAAM,UAAU,MAAO,KAAK,KAAK;AACjC,QAAM,aAAY,oBAAI,KAAK,GAAE,QAAQ,IAAI,KAAK,QAAQ;AACtD,SAAO,KAAK,MAAM,YAAY,OAAO;AACvC;;;ACJA,SAAS,QAAAC,cAAY;AAKjB,SAME,OAAAC,OANF,QAAAC,cAAA;AAFJ,IAAM,0BAA0B,CAAC,UAAqB;AACpD,SACE,gBAAAA;AAAA,IAACF;AAAA,IAAA;AAAA,MACE,GAAG;AAAA,MACJ,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,OAAM;AAAA,MAEN;AAAA,wBAAAC;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,gBAAe;AAAA;AAAA,QACjB;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA;AAAA,QAChB;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA;AAAA,QAChB;AAAA;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,oCAAQ;;;ACrDf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,2BAA2B,CAAC,UAChC,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,qCAAQ;;;AC1Cf,SAAS,QAAAE,cAAY;AAGnB,SAOE,OAAAC,OAPF,QAAAC,cAAA;AADF,IAAM,iBAAiB,CAAC,UACtB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEL;AAAA;AAAA,MACD,gBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,0BAAQ;;;AC3Cf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,sBAAsB,CAAC,UAC3B,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,GAAE;AAAA,UACF,OAAM;AAAA,UACN,QAAO;AAAA,UACP,IAAG;AAAA,UACH,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACd;AAAA,MACA,gBAAAA,MAAC,UAAK,GAAE,aAAY,QAAO,WAAU,aAAY,OAAM;AAAA,MACvD,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,gCAAQ;;;AC3Cf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,UAAU,CAAC,UACf,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA;AAAA,MAChB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,mBAAQ;;;AC/Bf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,iBAAiB,CAAC,UACtB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,UAAK,OAAM,SAAQ,QAAO,SAAQ,MAAK,QAAO;AAAA,MAC/C,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,IAAG;AAAA,UACH,IAAG;AAAA,UACH,IAAG;AAAA,UACH,IAAG;AAAA,UACH,MAAK;AAAA,UACL,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAY;AAAA;AAAA,MACb;AAAA,MACD,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,IAAG;AAAA,UACH,IAAG;AAAA,UACH,IAAG;AAAA,UACH,IAAG;AAAA,UACH,MAAK;AAAA,UACL,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAY;AAAA;AAAA,MACb;AAAA,MACD,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,GAAE;AAAA,UACF,OAAM;AAAA,UACN,QAAO;AAAA,UACP,IAAG;AAAA,UACH,aAAY;AAAA,UACZ,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,MAAK;AAAA;AAAA,MACN;AAAA;AAAA;AACH;AAGF,IAAO,4BAAQ;;;AC/Cf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,gBAAgB,CAAC,UACrB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACd;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACd;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACd;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACd;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,yBAAQ;;;ACvCf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,YAAY,CAAC,UACjB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACd;AAAA;AAAA;AACF;AAGF,IAAO,qBAAQ;;;ACxBf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,cAAc,CAAC,UACnB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,uBAAQ;;;ACjCf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,YAAY,CAAC,UACjB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,qBAAQ;;;AC/Cf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,gBAAgB,CAAC,UACrB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,0BAAQ;;;AC1Bf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,gBAAgB,CAAC,UACrB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,yBAAQ;;;ACtDf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,mBAAmB,CAAC,UACxB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,UAAK,OAAM,SAAQ,QAAO,SAAQ,MAAK,QAAO;AAAA,MAC/C,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA,UACL,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAY;AAAA;AAAA,MACb;AAAA,MACD,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA,UACL,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAY;AAAA;AAAA,MACb;AAAA;AAAA;AACH;AAGF,IAAO,4BAAQ;;;AC7Bf,SAAS,QAAAE,cAAY;AAGnB,SAOI,OAAAC,OAPJ,QAAAC,cAAA;AADF,IAAM,oBAAoB,CAAC,UACzB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,OAAE,UAAS,2BACV,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP,GACF;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA,MAAC,UACC,0BAAAA,MAAC,cAAS,IAAG,qBACX,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,QAAO;AAAA,UACP,MAAK;AAAA,UACL,WAAU;AAAA;AAAA,MACZ,GACF,GACF;AAAA;AAAA;AACF;AAGF,IAAO,8BAAQ;;;ACpCf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,qBAAqB,CAAC,UAC1B,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA,MAAC,UAAK,GAAE,yCAAwC,MAAK,WAAU;AAAA,MAC/D,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA;AAAA;AACF;AAGF,IAAO,+BAAQ;;;ACrBf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,WAAW,CAAC,UAChB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA;AAAA;AACF;AAGF,IAAO,oBAAQ;;;ACxBf,SAAS,QAAAE,cAAY;AASjB,gBAAAC,OACA,QAAAC,cADA;AAPJ,IAAM,UAAU,CAAC,UACf,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,YAAO,IAAG,WAAU,IAAG,KAAI,GAAE,KAAI,MAAK,WAAU;AAAA,MACjD,gBAAAC,OAAC,OAAE,UAAS,yBACV;AAAA,wBAAAD;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,SACF;AAAA,MACA,gBAAAA,MAAC,UACC,0BAAAA,MAAC,cAAS,IAAG,mBACX,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,QAAO;AAAA,UACP,MAAK;AAAA,UACL,WAAU;AAAA;AAAA,MACZ,GACF,GACF;AAAA;AAAA;AACF;AAGF,IAAO,mBAAQ;;;ACrCf,SAAS,QAAAE,cAAY;AASjB,gBAAAC,aAAA;AAPJ,IAAM,aAAa,CAAC,UAClB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN,0BAAAC;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,UAAS;AAAA,QACT,GAAE;AAAA,QACF,QAAO;AAAA,QACP,aAAY;AAAA,QACZ,eAAc;AAAA,QACd,gBAAe;AAAA;AAAA,IACjB;AAAA;AACF;AAGF,IAAO,sBAAQ;;;ACrBf,SAAS,QAAAC,cAAY;AAGnB,SAOE,OAAAC,OAPF,QAAAC,cAAA;AADF,IAAM,gBAAgB,CAAC,UACrB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEL;AAAA;AAAA,MACD,gBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,yBAAQ;;;AC/Bf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,qBAAqB,CAAC,UAC1B,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA;AAAA,MACT;AAAA,MACA,gBAAAA,MAAC,OAAE,UAAS,yBACV,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP,GACF;AAAA,MACA,gBAAAA,MAAC,UACC,0BAAAA,MAAC,cAAS,IAAG,mBACX,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,QAAO;AAAA,UACP,MAAK;AAAA,UACL,WAAU;AAAA;AAAA,MACZ,GACF,GACF;AAAA;AAAA;AACF;AAGF,IAAO,+BAAQ;;;AChCf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,qBAAqB,CAAC,UAC1B,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA;AAAA,MACT;AAAA,MACA,gBAAAA,MAAC,OAAE,UAAS,yBACV,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP,GACF;AAAA,MACA,gBAAAA,MAAC,UACC,0BAAAA,MAAC,cAAS,IAAG,mBACX,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,QAAO;AAAA,UACP,MAAK;AAAA,UACL,WAAU;AAAA;AAAA,MACZ,GACF,GACF;AAAA;AAAA;AACF;AAGF,IAAO,+BAAQ;;;AChCf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,oBAAoB,CAAC,UACzB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA;AAAA,MACT;AAAA;AAAA;AACF;AAGF,IAAO,8BAAQ;;;ACpBf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,cAAc,CAAC,UACnB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA;AAAA,MACT;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA;AAAA,MACT;AAAA,MACA,gBAAAA,MAAC,OAAE,UAAS,yBACV,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP,GACF;AAAA,MACA,gBAAAA,MAAC,UACC,0BAAAA,MAAC,cAAS,IAAG,mBACX,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,QAAO;AAAA,UACP,MAAK;AAAA,UACL,WAAU;AAAA;AAAA,MACZ,GACF,GACF;AAAA;AAAA;AACF;AAGF,IAAO,uBAAQ;;;ACpCf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,SAAS,CAAC,UACd,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA;AAAA,MACT;AAAA,MACA,gBAAAA,MAAC,OAAE,UAAS,yBACV,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP,GACF;AAAA,MACA,gBAAAA,MAAC,UACC,0BAAAA,MAAC,cAAS,IAAG,mBACX,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,QAAO;AAAA,UACP,MAAK;AAAA,UACL,WAAU;AAAA;AAAA,MACZ,GACF,GACF;AAAA;AAAA;AACF;AAGF,IAAO,yBAAQ;;;AChCf,SAAS,QAAAE,cAAY;AAYjB,gBAAAC,aAAA;AAVJ,IAAM,cAAc,CAAC,UACnB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,MAAK;AAAA,IACL,aAAU;AAAA,IACV,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,OAAM;AAAA,IAEN,0BAAAC,MAAC,UAAK,GAAE,q+CAAo+C;AAAA;AAC9+C;AAGF,IAAO,uBAAQ;;;AChBf,SAAS,QAAAC,cAAY;AAGnB,SASE,OAAAC,OATF,QAAAC,cAAA;AADF,IAAM,aAAa,CAAC,UAClB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,MAAK;AAAA,IACL,aAAU;AAAA,IACV,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,WAAM,oBAAM;AAAA,MACb,gBAAAA,MAAC,UAAK,GAAE,+9CAA89C;AAAA;AAAA;AACx+C;AAGF,IAAO,sBAAQ;;;ACjBf,SAAS,QAAAE,cAAY;AAYjB,gBAAAC,aAAA;AAVJ,IAAM,aAAa,CAAC,UAClB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,MAAK;AAAA,IACL,aAAU;AAAA,IACV,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,OAAM;AAAA,IAEN,0BAAAC,MAAC,UAAK,GAAE,qcAAoc;AAAA;AAC9c;AAGF,IAAO,sBAAQ;;;AChBf,SAAS,QAAAC,cAAY;AAYjB,gBAAAC,aAAA;AAVJ,IAAM,cAAc,CAAC,UACnB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,MAAK;AAAA,IACL,aAAU;AAAA,IACV,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,OAAM;AAAA,IAEN,0BAAAC,MAAC,UAAK,GAAE,0iBAAyiB;AAAA;AACnjB;AAGF,IAAO,uBAAQ;;;AChBf,SAAS,QAAAC,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,WAAW,CAAC,UAChB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA;AAAA;AACF;AAGF,IAAO,oBAAQ;;;AClEf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,eAAe,CAAC,UACpB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,wBAAQ;;;AC/Cf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,aAAa,CAAC,UAClB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,sBAAQ;;;AClEf,SAAS,QAAAE,cAAY;AAGnB,SAQE,OAAAC,OARF,QAAAC,cAAA;AADF,IAAM,WAAW,CAAC,UAChB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,oBAAQ;;;ACjEf,SAAS,QAAAE,cAAY;AAcf,qBAAAC,WACE,OAAAC,OADF,QAAAC,cAAA;AARN,IAAM,eAAe,CAAC,UACpB,gBAAAD;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEL,WAAC,MAAM,UACN,gBAAAG,OAAAF,WAAA,EACE;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,GAAE;AAAA,UACF,OAAM;AAAA,UACN,QAAO;AAAA,UACP,IAAG;AAAA,UACH,MAAK;AAAA,UACL,aAAY;AAAA;AAAA,MACd;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,GAAE;AAAA,UACF,OAAM;AAAA,UACN,QAAO;AAAA,UACP,IAAG;AAAA,UACH,QAAO;AAAA;AAAA,MACT;AAAA,OACF,IAEA,gBAAAC,OAAAF,WAAA,EACE;AAAA,sBAAAC,MAAC,UAAK,OAAM,MAAK,QAAO,MAAK,IAAG,KAAI,MAAK,WAAU;AAAA,MACnD,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,OACF;AAAA;AAEJ;AAGF,IAAO,mBAAQ;;;AC/Cf,SAAS,QAAAE,cAAY;AASjB,gBAAAC,aAAA;AAPJ,IAAM,aAAa,CAAC,UAClB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN,0BAAAC;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,GAAE;AAAA;AAAA,IACJ;AAAA;AACF;AAGF,IAAO,sBAAQ;;;AChBf,SAAS,QAAAC,cAAY;AAGnB,SAOE,OAAAC,OAPF,QAAAC,cAAA;AADF,IAAM,iBAAiB,CAAC,UACtB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEL;AAAA;AAAA,MACD,gBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,2BAAQ;;;AC3Bf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,QANF,QAAAC,cAAA;AADF,IAAM,gBAAgB,CAAC,UACrB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,0BAAQ;;;AC1Bf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,QANF,QAAAC,cAAA;AADF,IAAM,iBAAiB,CAAC,UACtB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA;AAAA;AACF;AAGF,IAAO,2BAAQ;","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","createGunzip","gzip","defaultHttpAgent","defaultHttpsAgent","agentOptions","init_requester_node_http_esm","version","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","blockquoteInfo","blockquoteDanger","blockquoteWarning","blockquoteSuccess","flexWrap","svgContainer","messages","jsx","jsxs","useState","styles_default","icon","useRef","useEffect","width","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","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","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","algoliasearch","params","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","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","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","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","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","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","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/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/trashcan-icon.tsx","../src/components/icons/filter-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.26.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.26.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.26.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.26.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 .catch(error => {\r\n // Clean up temporary index if there's an error\r\n // eslint-disable-next-line promise/no-nesting\r\n return deleteIndex({\r\n appId: base.appId,\r\n transporter: base.transporter,\r\n indexName: temporaryIndexName,\r\n })()\r\n .catch(() => {\r\n // Ignore delete errors\r\n })\r\n .then(() => {\r\n throw error;\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.26.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';\nimport { createGunzip, gzip } from 'zlib';\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 COMPRESSION_THRESHOLD = 750;\r\n const acceptEncoding = request.headers['accept-encoding'];\r\n const shouldCompress = request.data !== undefined &&\r\n Buffer.byteLength(request.data) >= COMPRESSION_THRESHOLD &&\r\n acceptEncoding !== undefined &&\r\n acceptEncoding.toLowerCase().includes('gzip');\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 ...(shouldCompress ? { 'content-encoding': 'gzip' } : {}),\r\n },\r\n ...(url.port !== undefined ? { port: url.port || '' } : {}),\r\n };\r\n // eslint-disable-next-line functional/no-let, prefer-const\r\n let connectTimeout;\r\n // eslint-disable-next-line functional/no-let\r\n let responseTimeout;\r\n // eslint-disable-next-line functional/no-let\r\n let gunzip;\r\n const cleanup = () => {\r\n clearTimeout(connectTimeout);\r\n clearTimeout(responseTimeout);\r\n if (gunzip) {\r\n gunzip.destroy();\r\n }\r\n };\r\n const onError = (error) => {\r\n cleanup();\r\n resolve({ status: 0, content: error.message, isTimedOut: false });\r\n };\r\n const req = (url.protocol === 'https:' ? https : http).request(options, response => {\r\n const contentEncoding = response.headers['content-encoding'];\r\n const isGzipResponse = contentEncoding !== undefined && contentEncoding.toLowerCase().includes('gzip');\r\n // eslint-disable-next-line functional/no-let\r\n let contentBuffers = [];\r\n const onData = (chunk) => {\r\n contentBuffers = contentBuffers.concat(chunk);\r\n };\r\n const onEnd = () => {\r\n cleanup();\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 response.on('error', onError);\r\n if (isGzipResponse) {\r\n gunzip = createGunzip();\r\n response.pipe(gunzip);\r\n gunzip.on('data', onData);\r\n gunzip.on('end', onEnd);\r\n gunzip.on('error', onError);\r\n }\r\n else {\r\n response.on('data', onData);\r\n response.on('end', onEnd);\r\n }\r\n });\r\n const createTimeout = (timeout, content) => {\r\n return setTimeout(() => {\r\n req.abort();\r\n if (gunzip) {\r\n gunzip.destroy();\r\n }\r\n resolve({\r\n status: 0,\r\n content,\r\n isTimedOut: true,\r\n });\r\n }, timeout * 1000);\r\n };\r\n connectTimeout = createTimeout(request.connectTimeout, 'Connection timeout');\r\n req.on('error', onError);\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 && shouldCompress) {\r\n gzip(request.data, (error, compressedBody) => {\r\n if (error) {\r\n onError(error);\r\n return;\r\n }\r\n req.setHeader('content-length', compressedBody.byteLength);\r\n req.write(compressedBody);\r\n req.end();\r\n });\r\n }\r\n else {\r\n if (request.data !== undefined) {\r\n req.setHeader('content-length', Buffer.byteLength(request.data));\r\n req.write(request.data);\r\n }\r\n req.end();\r\n }\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';\nimport { createGunzip, gzip } from 'zlib';\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 COMPRESSION_THRESHOLD = 750;\r\n const acceptEncoding = request.headers['accept-encoding'];\r\n const shouldCompress = request.data !== undefined &&\r\n Buffer.byteLength(request.data) >= COMPRESSION_THRESHOLD &&\r\n acceptEncoding !== undefined &&\r\n acceptEncoding.toLowerCase().includes('gzip');\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 ...(shouldCompress ? { 'content-encoding': 'gzip' } : {}),\r\n },\r\n ...(url.port !== undefined ? { port: url.port || '' } : {}),\r\n };\r\n // eslint-disable-next-line functional/no-let, prefer-const\r\n let connectTimeout;\r\n // eslint-disable-next-line functional/no-let\r\n let responseTimeout;\r\n // eslint-disable-next-line functional/no-let\r\n let gunzip;\r\n const cleanup = () => {\r\n clearTimeout(connectTimeout);\r\n clearTimeout(responseTimeout);\r\n if (gunzip) {\r\n gunzip.destroy();\r\n }\r\n };\r\n const onError = (error) => {\r\n cleanup();\r\n resolve({ status: 0, content: error.message, isTimedOut: false });\r\n };\r\n const req = (url.protocol === 'https:' ? https : http).request(options, response => {\r\n const contentEncoding = response.headers['content-encoding'];\r\n const isGzipResponse = contentEncoding !== undefined && contentEncoding.toLowerCase().includes('gzip');\r\n // eslint-disable-next-line functional/no-let\r\n let contentBuffers = [];\r\n const onData = (chunk) => {\r\n contentBuffers = contentBuffers.concat(chunk);\r\n };\r\n const onEnd = () => {\r\n cleanup();\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 response.on('error', onError);\r\n if (isGzipResponse) {\r\n gunzip = createGunzip();\r\n response.pipe(gunzip);\r\n gunzip.on('data', onData);\r\n gunzip.on('end', onEnd);\r\n gunzip.on('error', onError);\r\n }\r\n else {\r\n response.on('data', onData);\r\n response.on('end', onEnd);\r\n }\r\n });\r\n const createTimeout = (timeout, content) => {\r\n return setTimeout(() => {\r\n req.abort();\r\n if (gunzip) {\r\n gunzip.destroy();\r\n }\r\n resolve({\r\n status: 0,\r\n content,\r\n isTimedOut: true,\r\n });\r\n }, timeout * 1000);\r\n };\r\n connectTimeout = createTimeout(request.connectTimeout, 'Connection timeout');\r\n req.on('error', onError);\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 && shouldCompress) {\r\n gzip(request.data, (error, compressedBody) => {\r\n if (error) {\r\n onError(error);\r\n return;\r\n }\r\n req.setHeader('content-length', compressedBody.byteLength);\r\n req.write(compressedBody);\r\n req.end();\r\n });\r\n }\r\n else {\r\n if (request.data !== undefined) {\r\n req.setHeader('content-length', Buffer.byteLength(request.data));\r\n req.write(request.data);\r\n }\r\n req.end();\r\n }\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');\nvar requesterCommon = require('@algolia/requester-common');\n\nfunction createIngestionClient(options) {\r\n if (!options || !options.transformation || !options.transformation.region) {\r\n throw transformationConfigurationError('`region` must be provided when leveraging the transformation pipeline');\r\n }\r\n if (options.transformation.region !== 'eu' && options.transformation.region !== 'us') {\r\n throw transformationConfigurationError('`region` is required and must be one of the following: eu, us');\r\n }\r\n const appId = options.appId;\r\n const auth = clientCommon.createAuth(clientCommon.AuthMode.WithinHeaders, appId, options.apiKey);\r\n const transporter$1 = transporter.createTransporter({\r\n hosts: [\r\n {\r\n url: `data.${options.transformation.region}.algolia.com`,\r\n accept: transporter.CallEnum.ReadWrite,\r\n protocol: 'https',\r\n },\r\n ],\r\n ...options,\r\n headers: {\r\n ...auth.headers(),\r\n ...{ 'content-type': 'text/plain' },\r\n ...options.headers,\r\n },\r\n queryParameters: {\r\n ...auth.queryParameters(),\r\n ...options.queryParameters,\r\n },\r\n });\r\n return {\r\n transporter: transporter$1,\r\n appId,\r\n addAlgoliaAgent(segment, version) {\r\n transporter$1.userAgent.add({ segment, version });\r\n transporter$1.userAgent.add({ segment: 'Ingestion', version });\r\n transporter$1.userAgent.add({ segment: 'Ingestion via Algoliasearch' });\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 push({ indexName, pushTaskPayload, watch }, requestOptions) {\r\n if (!indexName) {\r\n throw transformationConfigurationError('Parameter `indexName` is required when calling `push`.');\r\n }\r\n if (!pushTaskPayload) {\r\n throw transformationConfigurationError('Parameter `pushTaskPayload` is required when calling `push`.');\r\n }\r\n if (!pushTaskPayload.action) {\r\n throw transformationConfigurationError('Parameter `pushTaskPayload.action` is required when calling `push`.');\r\n }\r\n if (!pushTaskPayload.records) {\r\n throw transformationConfigurationError('Parameter `pushTaskPayload.records` is required when calling `push`.');\r\n }\r\n const opts = requestOptions || { queryParameters: {} };\r\n return transporter$1.write({\r\n method: requesterCommon.MethodEnum.Post,\r\n path: clientCommon.encode('1/push/%s', indexName),\r\n data: pushTaskPayload,\r\n }, {\r\n ...opts,\r\n queryParameters: {\r\n ...opts.queryParameters,\r\n watch: watch !== undefined,\r\n },\r\n });\r\n },\r\n };\r\n}\r\nfunction saveObjectsWithTransformation(indexName, client) {\r\n return (objects, requestOptions) => {\r\n if (!client) {\r\n throw transformationConfigurationError('`options.transformation.region` must be provided at client instantiation before calling this method.');\r\n }\r\n const { autoGenerateObjectIDIfNotExist, watch, ...rest } = requestOptions || {};\r\n const action = autoGenerateObjectIDIfNotExist\r\n ? clientSearch.BatchActionEnum.AddObject\r\n : clientSearch.BatchActionEnum.UpdateObject;\r\n /* eslint functional/immutable-data: \"off\" */\r\n return client.push({\r\n indexName,\r\n pushTaskPayload: { action, records: objects },\r\n watch,\r\n }, rest);\r\n };\r\n}\r\nfunction partialUpdateObjectsWithTransformation(indexName, client) {\r\n return (objects, requestOptions) => {\r\n if (!client) {\r\n throw transformationConfigurationError('`options.transformation.region` must be provided at client instantiation before calling this method.');\r\n }\r\n const { createIfNotExists, watch, ...rest } = requestOptions || {};\r\n const action = createIfNotExists\r\n ? clientSearch.BatchActionEnum.PartialUpdateObject\r\n : clientSearch.BatchActionEnum.PartialUpdateObjectNoCreate;\r\n /* eslint functional/immutable-data: \"off\" */\r\n return client.push({\r\n indexName,\r\n pushTaskPayload: { action, records: objects },\r\n watch,\r\n }, rest);\r\n };\r\n}\r\nfunction transformationConfigurationError(message) {\r\n return {\r\n name: 'TransformationConfigurationError',\r\n message,\r\n };\r\n}\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 /* eslint functional/no-let: \"off\" */\r\n let ingestionTransporter;\r\n if (options && options.transformation) {\r\n if (!options.transformation.region) {\r\n throw transformationConfigurationError('`region` must be provided when leveraging the transformation pipeline');\r\n }\r\n ingestionTransporter = createIngestionClient({ ...options, ...commonOptions });\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 {\r\n ...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 saveObjectsWithTransformation: saveObjectsWithTransformation(indexName, ingestionTransporter),\r\n partialUpdateObjectsWithTransformation: partialUpdateObjectsWithTransformation(indexName, ingestionTransporter),\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'\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 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\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 const width = ref.current.clientWidth\r\n setWidth(width)\r\n setHeight(width / 2)\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\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: #f6f8fa;\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: 1fr;\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 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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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: #ecebf3;\r\n}\r\n\r\n.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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","{\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}\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}\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}","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 // @ts-expect-error - React type conflict with @mdx-js/react\r\n \r\n {searchClient.instantSearchConfigs && (\r\n // @ts-expect-error - React type conflict with @mdx-js/react\r\n \r\n )}\r\n {searchClient.useLanguageFilter && (\r\n // @ts-expect-error - React type conflict with @mdx-js/react\r\n \r\n )}\r\n {!searchClient.useLanguageFilter && (\r\n // @ts-expect-error - React type conflict with @mdx-js/react\r\n \r\n )}\r\n setfocusOut({ modaltoggle: true })} ref={resultsBox}>\r\n {/* @ts-expect-error - React type conflict with @mdx-js/react */}\r\n \r\n {focusOut.modaltoggle && (\r\n // @ts-expect-error - React type conflict with @mdx-js/react\r\n \r\n )}\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}\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}\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 whiteSpace: 'pre',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\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\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\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport let searchClient: any = {}\r\nexport let searchIndex = ''\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 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\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\nconst createHybridClient = (config: HybridSearchConfig) => {\r\n const {\r\n apiEndpoint,\r\n defaultLimit = 10,\r\n useLanguageFilter = true,\r\n upstreamFetchSize = HYBRID_UPSTREAM_MAX_LIMIT,\r\n cacheTtlMs = 60_000,\r\n } = config\r\n\r\n const effectiveUpstreamLimit = clampUpstreamLimit(upstreamFetchSize)\r\n const cache: HybridCacheEntry[] = []\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 // 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 ): 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 || defaultLimit\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 or doctype\r\n // filtering, so we always fetch a large slice once per (query, locale)\r\n // pair and paginate / doctype-filter client-side.\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 cachedHits = getCached(cacheKey)\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let allHits: any[]\r\n if (cachedHits) {\r\n allHits = cachedHits\r\n } else {\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 allHits = rawResults.map(transformHybridToAlgolia)\r\n setCached(cacheKey, allHits)\r\n }\r\n\r\n // Doctype filter is applied client-side because the upstream API\r\n // does not understand it. Facet counts are computed on `allHits`\r\n // (i.e. ignoring the doctype filter) so that the tabs keep showing\r\n // counts for the other doctypes.\r\n const filteredHits = filterHitsByDoctype(allHits, doctypes)\r\n const nbHits = filteredHits.length\r\n const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage))\r\n const start = page * hitsPerPage\r\n const pageHits = filteredHits.slice(start, start + hitsPerPage)\r\n\r\n const facets = extractFacetsFromHits(allHits)\r\n\r\n return {\r\n results: [\r\n {\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: facets.facets,\r\n facets_stats: {},\r\n exhaustiveFacetsCount: true,\r\n queryID: generateQueryID(),\r\n },\r\n ],\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: defaultLimit,\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) =>\r\n wanted.has(String(h.doctype || '').toLowerCase())\r\n )\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 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: result.snippet || result.content || '',\r\n hierarchy,\r\n language: result.metadata?.locale || 'en',\r\n type: 'content',\r\n _highlightResult: {\r\n content: {\r\n value: result.snippet || result.content || '',\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 || '',\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\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\r\n // docs///...\r\n if (parts[0] === 'docs' && parts.length > 2) {\r\n return `/docs/${stripExt(parts.slice(2).join('/'))}`\r\n }\r\n\r\n // //... (announcements, faq, known-issues, troubleshooting, ...)\r\n if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1])) {\r\n return `/${parts[0]}/${stripExt(parts.slice(2).join('/'))}`\r\n }\r\n\r\n return '/' + stripExt(parts.join('/'))\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction extractFacetsFromHits(\r\n hits: any[]\r\n): { facets: Record> } {\r\n const facets: Record> = {\r\n doctype: {},\r\n language: {},\r\n }\r\n\r\n hits.forEach((hit) => {\r\n const doctype = hit.doctype || 'Other'\r\n facets.doctype[doctype] = (facets.doctype[doctype] || 0) + 1\r\n\r\n const language = hit.language || 'en'\r\n facets.language[language] = (facets.language[language] || 0) + 1\r\n })\r\n\r\n return { facets }\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(config: SearchBackendConfig | AlgoliaConfig) {\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\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 return !dataElement ? (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results' }\r\n \r\n \r\n {ocurrenceCount['']}\r\n \r\n \r\n ) : (\r\n updateFilter(dataElement.id)}\r\n >\r\n \r\n \r\n \r\n {dataElement.title}\r\n \r\n \r\n \r\n {ocurrenceCount[dataElement.id] || 0}\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: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\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: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n fontSize: '12px',\r\n lineHeight: '16px',\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\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, 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 { searchClient, searchIndex } from 'utils/config/search-config'\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 [prevFilter, setPrevFilter] = useState('')\r\n const [searchState, setSearchState] = useState({})\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const page = filters !== prevFilter ? 1 : currentState.page || 1\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 ocurrenceCount[filterSelectedSection] === undefined\r\n ? ''\r\n : 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 facets = results?.facets as\r\n | Array<{\r\n name: string\r\n data: Record\r\n exhaustive?: boolean\r\n }>\r\n | undefined\r\n\r\n const doctypeFacet = facets?.find((facet) => facet.name === 'doctype')\r\n const nbHits = results?.nbHits ?? 0\r\n\r\n const formattedFacets: Record = {}\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\r\n formattedFacets[''] = nbHits\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) 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}\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\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 return (\r\n changeFilterSelectedSection(filter)}\r\n >\r\n \r\n {filter || messages[locale]['search_results.all'] || 'All results'}\r\n \r\n {ocurrenceCount[filter] || 0}\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) => SxStyleProp = (active) => ({\r\n pt: '8px',\r\n pb: '14px',\r\n px: '24px',\r\n cursor: '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})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '16.38px',\r\n whiteSpace: 'nowrap',\r\n color: `#${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","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 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 { 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 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","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","createGunzip","gzip","defaultHttpAgent","defaultHttpsAgent","agentOptions","init_requester_node_http_esm","version","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","blockquoteInfo","blockquoteDanger","blockquoteWarning","blockquoteSuccess","flexWrap","svgContainer","messages","jsx","jsxs","useState","styles_default","icon","useRef","useEffect","width","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","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","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","algoliasearch","params","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","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","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","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","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","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","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/search-results/infiniteHits.tsx b/src/components/search-results/infiniteHits.tsx index ad9325d..3b4ed47 100644 --- a/src/components/search-results/infiniteHits.tsx +++ b/src/components/search-results/infiniteHits.tsx @@ -95,7 +95,7 @@ const StateResults = connectStateResults( return null } -) +) as any const InfiniteHits = ({ hits, hasMore, refineNext }: InfiniteHitsProvided) => { const scrollRef = useRef(null) @@ -144,4 +144,5 @@ const InfiniteHits = ({ hits, hasMore, refineNext }: InfiniteHitsProvided) => { ) } -export default connectInfiniteHits(InfiniteHits) +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export default connectInfiniteHits(InfiniteHits) as any From 365740f45ffe2c3b68bf0b1cadbcacd10b406b38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A1rbara=20Celi?= Date: Mon, 8 Jun 2026 14:06:38 -0300 Subject: [PATCH 07/23] feat: add Markdown stripping utility and update search results pagination This commit introduces a new utility function, `stripMarkdownForSnippet`, to remove Markdown syntax from text snippets, enhancing the readability of search results. Additionally, the `hitsPerPage` configuration is now dynamically set from the search configuration, improving pagination handling in the search results component. --- src/components/search-results/index.tsx | 4 ++-- src/utils/config/search-config.ts | 24 ++++++++++++++++++------ src/utils/string-utils.ts | 24 ++++++++++++++++++++++++ 3 files changed, 44 insertions(+), 8 deletions(-) diff --git a/src/components/search-results/index.tsx b/src/components/search-results/index.tsx index 2a142d9..e3b2586 100644 --- a/src/components/search-results/index.tsx +++ b/src/components/search-results/index.tsx @@ -11,7 +11,7 @@ import InfiniteHits from './infiniteHits' import styles from './styles' import { SearchContext } from 'utils/context/search' -import { searchClient, searchIndex } from 'utils/config/search-config' +import { searchClient, searchIndex, hitsPerPage } from 'utils/config/search-config' const SearchResults = () => { const router = useRouter() @@ -64,7 +64,7 @@ const SearchResults = () => { filters={filters} query={router.query.keyword} clickAnalytics={true} - hitsPerPage={10} + hitsPerPage={hitsPerPage} facets={['doctype', 'language']} facetingAfterDistinct={true} /> diff --git a/src/utils/config/search-config.ts b/src/utils/config/search-config.ts index fff2b8d..a43f8e2 100644 --- a/src/utils/config/search-config.ts +++ b/src/utils/config/search-config.ts @@ -4,10 +4,12 @@ import { MultipleQueriesQuery, MultipleQueriesResponse, } from '@algolia/client-search' +import { stripMarkdownForSnippet } from '../string-utils' // eslint-disable-next-line @typescript-eslint/no-explicit-any export let searchClient: any = {} export let searchIndex = '' +export let hitsPerPage = 10 // Default page size for search results export interface AlgoliaConfig { appId: string @@ -25,6 +27,7 @@ export interface HybridSearchConfig { apiEndpoint: string source: 'help-center' | 'dev-portal' defaultLimit?: number + itemsPerPage?: number // Alias for defaultLimit (for backward compatibility) useLanguageFilter?: boolean /** * Max number of results to request from the upstream API in a single call. @@ -98,12 +101,17 @@ type HybridCacheEntry = { const createHybridClient = (config: HybridSearchConfig) => { const { apiEndpoint, - defaultLimit = 10, + defaultLimit, + itemsPerPage, useLanguageFilter = true, upstreamFetchSize = HYBRID_UPSTREAM_MAX_LIMIT, cacheTtlMs = 60_000, } = config + // Support both defaultLimit and itemsPerPage (itemsPerPage takes precedence) + const pageSize = itemsPerPage ?? defaultLimit ?? 10 + hitsPerPage = pageSize + const effectiveUpstreamLimit = clampUpstreamLimit(upstreamFetchSize) const cache: HybridCacheEntry[] = [] @@ -150,7 +158,7 @@ const createHybridClient = (config: HybridSearchConfig) => { requests.find(({ params }) => params?.query) || requests[0] const params = request.params || {} const query = params.query || '' - const hitsPerPage = params.hitsPerPage || defaultLimit + const hitsPerPage = params.hitsPerPage || pageSize const page = params.page || 0 const { locale, doctypes } = extractHybridFilters(params) @@ -232,7 +240,7 @@ const createHybridClient = (config: HybridSearchConfig) => { nbHits: 0, page: 0, nbPages: 0, - hitsPerPage: defaultLimit, + hitsPerPage: pageSize, exhaustiveNbHits: true, query: requests[0]?.params?.query || '', params: '', @@ -327,6 +335,10 @@ function transformHybridToAlgolia(result: any): any { const url = buildUrlFromFilePath(filePath) + // Strip markdown syntax from snippets for display + const rawContent = result.snippet || result.content || '' + const cleanContent = stripMarkdownForSnippet(rawContent) + return { objectID: String(result.id), ...result, @@ -334,13 +346,13 @@ function transformHybridToAlgolia(result: any): any { url_without_anchor: url.split('#')[0], doctype, doctitle: result.title || 'Untitled', - content: result.snippet || result.content || '', + content: cleanContent, hierarchy, language: result.metadata?.locale || 'en', type: 'content', _highlightResult: { content: { - value: result.snippet || result.content || '', + value: cleanContent, matchLevel: 'full', fullyHighlighted: false, matchedWords: [], @@ -358,7 +370,7 @@ function transformHybridToAlgolia(result: any): any { }, _snippetResult: { content: { - value: result.snippet || '', + value: result.snippet ? stripMarkdownForSnippet(result.snippet) : '', matchLevel: 'full', }, }, diff --git a/src/utils/string-utils.ts b/src/utils/string-utils.ts index 666f746..e945d99 100644 --- a/src/utils/string-utils.ts +++ b/src/utils/string-utils.ts @@ -1,5 +1,29 @@ export const removeHTML = (str: string) => str.replace(/<\/?[^>]+>/g, '') +/** + * Strips Markdown syntax from text snippets to render as plain text. + * Removes headings, bold, italic, inline code, and links while preserving + * the readable content. + */ +export const stripMarkdownForSnippet = (str: string): string => { + if (!str) return '' + + return str + // Remove markdown headings (# ## ### etc.) + .replace(/^#{1,6}\s+/gm, '') + // Remove bold (**text** or __text__) + .replace(/(\*\*|__)(.*?)\1/g, '$2') + // Remove italic (*text* or _text_) - but avoid matching URLs + .replace(/(? { return str.charAt(0).toUpperCase() + str.slice(1) } From efaa7a171a66f5436ad01822bbea18b93b516528 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A1rbara=20Celi?= Date: Mon, 8 Jun 2026 14:27:01 -0300 Subject: [PATCH 08/23] fix: improve markdown stripping in search snippets - Enhanced stripMarkdownForSnippet to handle images, code blocks, blockquotes - Fixed regex patterns for better markdown syntax removal - Ensures search results display clean plain text without markdown formatting Co-authored-by: Cursor --- dist/index.d.mts | 3 +- dist/index.mjs | 440 ++++++++++---------------------------- dist/index.mjs.map | 2 +- src/utils/string-utils.ts | 28 ++- 4 files changed, 140 insertions(+), 333 deletions(-) diff --git a/dist/index.d.mts b/dist/index.d.mts index ebb27b8..4a7c062 100644 --- a/dist/index.d.mts +++ b/dist/index.d.mts @@ -2,7 +2,7 @@ import * as react_jsx_runtime from 'react/jsx-runtime'; import { MDXRemoteSerializeResult } from 'next-mdx-remote'; import { SxStyleProp, IconProps } from '@vtex/brand-ui'; import * as react from 'react'; -import { Dispatch, SetStateAction, ReactNode } from 'react'; +import { ReactNode, Dispatch, SetStateAction } from 'react'; import { AlgoliaSearchOptions } from 'algoliasearch/lite'; interface MarkdownRendererProps { @@ -165,6 +165,7 @@ interface HybridSearchConfig { apiEndpoint: string; source: 'help-center' | 'dev-portal'; defaultLimit?: number; + itemsPerPage?: number; useLanguageFilter?: boolean; /** * Max number of results to request from the upstream API in a single call. diff --git a/dist/index.mjs b/dist/index.mjs index ee7dc6a..1464c17 100644 --- a/dist/index.mjs +++ b/dist/index.mjs @@ -1657,7 +1657,7 @@ 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.26.0"; + version = "4.24.0"; destroy = (base) => { return () => { return base.transporter.requester.destroy(); @@ -2874,15 +2874,6 @@ var init_client_search_esm = __esm({ objectIDs: saveObjectsResponse.objectIDs, taskIDs: [copyResponse.taskID, ...saveObjectsResponse.taskIDs, moveResponse.taskID] }; - }).catch((error) => { - return deleteIndex({ - appId: base.appId, - transporter: base.transporter, - indexName: temporaryIndexName - })().catch(() => { - }).then(() => { - throw error; - }); }); return createWaitablePromise2(result, (_, waitRequestOptions) => { return Promise.all(responses.map((response) => response.wait(waitRequestOptions))); @@ -3193,7 +3184,7 @@ 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.26.0"; + version2 = "4.24.0"; destroy2 = (base) => { return () => { return base.transporter.requester.destroy(); @@ -3222,7 +3213,6 @@ import { Agent } from "http"; import * as https from "https"; import { Agent as Agent$1 } from "https"; import { parse as parse2 } from "url"; -import { createGunzip, gzip } from "zlib"; function createNodeHttpRequester({ agent: userGlobalAgent, httpAgent: userHttpAgent, httpsAgent: userHttpsAgent, requesterOptions = {} } = {}) { const httpAgent = userHttpAgent || userGlobalAgent || defaultHttpAgent; const httpsAgent = userHttpsAgent || userGlobalAgent || defaultHttpsAgent; @@ -3231,9 +3221,6 @@ function createNodeHttpRequester({ agent: userGlobalAgent, httpAgent: userHttpAg return new Promise((resolve) => { const url = parse2(request.url); const path = url.query === null ? url.pathname : `${url.pathname}?${url.query}`; - const COMPRESSION_THRESHOLD = 750; - const acceptEncoding = request.headers["accept-encoding"]; - const shouldCompress = request.data !== void 0 && Buffer.byteLength(request.data) >= COMPRESSION_THRESHOLD && acceptEncoding !== void 0 && acceptEncoding.toLowerCase().includes("gzip"); const options = { ...requesterOptions, agent: url.protocol === "https:" ? httpsAgent : httpAgent, @@ -3242,58 +3229,28 @@ function createNodeHttpRequester({ agent: userGlobalAgent, httpAgent: userHttpAg method: request.method, headers: { ...requesterOptions && requesterOptions.headers ? requesterOptions.headers : {}, - ...request.headers, - ...shouldCompress ? { "content-encoding": "gzip" } : {} + ...request.headers }, ...url.port !== void 0 ? { port: url.port || "" } : {} }; - let connectTimeout; - let responseTimeout; - let gunzip; - const cleanup = () => { - clearTimeout(connectTimeout); - clearTimeout(responseTimeout); - if (gunzip) { - gunzip.destroy(); - } - }; - const onError = (error) => { - cleanup(); - resolve({ status: 0, content: error.message, isTimedOut: false }); - }; const req = (url.protocol === "https:" ? https : http).request(options, (response) => { - const contentEncoding = response.headers["content-encoding"]; - const isGzipResponse = contentEncoding !== void 0 && contentEncoding.toLowerCase().includes("gzip"); let contentBuffers = []; - const onData = (chunk) => { + response.on("data", (chunk) => { contentBuffers = contentBuffers.concat(chunk); - }; - const onEnd = () => { - cleanup(); + }); + response.on("end", () => { + clearTimeout(connectTimeout); + clearTimeout(responseTimeout); resolve({ status: response.statusCode || 0, content: Buffer.concat(contentBuffers).toString(), isTimedOut: false }); - }; - response.on("error", onError); - if (isGzipResponse) { - gunzip = createGunzip(); - response.pipe(gunzip); - gunzip.on("data", onData); - gunzip.on("end", onEnd); - gunzip.on("error", onError); - } else { - response.on("data", onData); - response.on("end", onEnd); - } + }); }); const createTimeout = (timeout, content) => { return setTimeout(() => { req.abort(); - if (gunzip) { - gunzip.destroy(); - } resolve({ status: 0, content, @@ -3301,29 +3258,21 @@ function createNodeHttpRequester({ agent: userGlobalAgent, httpAgent: userHttpAg }); }, timeout * 1e3); }; - connectTimeout = createTimeout(request.connectTimeout, "Connection timeout"); - req.on("error", onError); + 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 && shouldCompress) { - gzip(request.data, (error, compressedBody) => { - if (error) { - onError(error); - return; - } - req.setHeader("content-length", compressedBody.byteLength); - req.write(compressedBody); - req.end(); - }); - } else { - if (request.data !== void 0) { - req.setHeader("content-length", Buffer.byteLength(request.data)); - req.write(request.data); - } - req.end(); + if (request.data !== void 0) { + req.write(request.data); } + req.end(); }); }, destroy() { @@ -3556,7 +3505,6 @@ import { Agent as Agent2 } from "http"; import * as https2 from "https"; import { Agent as Agent$12 } from "https"; import { parse as parse3 } from "url"; -import { createGunzip as createGunzip2, gzip as gzip2 } from "zlib"; function createNodeHttpRequester2({ agent: userGlobalAgent, httpAgent: userHttpAgent, httpsAgent: userHttpsAgent, requesterOptions = {} } = {}) { const httpAgent = userHttpAgent || userGlobalAgent || defaultHttpAgent2; const httpsAgent = userHttpsAgent || userGlobalAgent || defaultHttpsAgent2; @@ -3565,9 +3513,6 @@ function createNodeHttpRequester2({ agent: userGlobalAgent, httpAgent: userHttpA return new Promise((resolve) => { const url = parse3(request.url); const path = url.query === null ? url.pathname : `${url.pathname}?${url.query}`; - const COMPRESSION_THRESHOLD = 750; - const acceptEncoding = request.headers["accept-encoding"]; - const shouldCompress = request.data !== void 0 && Buffer.byteLength(request.data) >= COMPRESSION_THRESHOLD && acceptEncoding !== void 0 && acceptEncoding.toLowerCase().includes("gzip"); const options = { ...requesterOptions, agent: url.protocol === "https:" ? httpsAgent : httpAgent, @@ -3576,58 +3521,28 @@ function createNodeHttpRequester2({ agent: userGlobalAgent, httpAgent: userHttpA method: request.method, headers: { ...requesterOptions && requesterOptions.headers ? requesterOptions.headers : {}, - ...request.headers, - ...shouldCompress ? { "content-encoding": "gzip" } : {} + ...request.headers }, ...url.port !== void 0 ? { port: url.port || "" } : {} }; - let connectTimeout; - let responseTimeout; - let gunzip; - const cleanup = () => { - clearTimeout(connectTimeout); - clearTimeout(responseTimeout); - if (gunzip) { - gunzip.destroy(); - } - }; - const onError = (error) => { - cleanup(); - resolve({ status: 0, content: error.message, isTimedOut: false }); - }; const req = (url.protocol === "https:" ? https2 : http2).request(options, (response) => { - const contentEncoding = response.headers["content-encoding"]; - const isGzipResponse = contentEncoding !== void 0 && contentEncoding.toLowerCase().includes("gzip"); let contentBuffers = []; - const onData = (chunk) => { + response.on("data", (chunk) => { contentBuffers = contentBuffers.concat(chunk); - }; - const onEnd = () => { - cleanup(); + }); + response.on("end", () => { + clearTimeout(connectTimeout); + clearTimeout(responseTimeout); resolve({ status: response.statusCode || 0, content: Buffer.concat(contentBuffers).toString(), isTimedOut: false }); - }; - response.on("error", onError); - if (isGzipResponse) { - gunzip = createGunzip2(); - response.pipe(gunzip); - gunzip.on("data", onData); - gunzip.on("end", onEnd); - gunzip.on("error", onError); - } else { - response.on("data", onData); - response.on("end", onEnd); - } + }); }); const createTimeout = (timeout, content) => { return setTimeout(() => { req.abort(); - if (gunzip) { - gunzip.destroy(); - } resolve({ status: 0, content, @@ -3635,29 +3550,21 @@ function createNodeHttpRequester2({ agent: userGlobalAgent, httpAgent: userHttpA }); }, timeout * 1e3); }; - connectTimeout = createTimeout(request.connectTimeout, "Connection timeout"); - req.on("error", onError); + 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 && shouldCompress) { - gzip2(request.data, (error, compressedBody) => { - if (error) { - onError(error); - return; - } - req.setHeader("content-length", compressedBody.byteLength); - req.write(compressedBody); - req.end(); - }); - } else { - if (request.data !== void 0) { - req.setHeader("content-length", Buffer.byteLength(request.data)); - req.write(request.data); - } - req.end(); + if (request.data !== void 0) { + req.write(request.data); } + req.end(); }); }, destroy() { @@ -3691,111 +3598,6 @@ var require_algoliasearch_cjs = __commonJS({ 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)); - var requesterCommon = (init_requester_common_esm(), __toCommonJS(requester_common_esm_exports)); - function createIngestionClient(options) { - if (!options || !options.transformation || !options.transformation.region) { - throw transformationConfigurationError("`region` must be provided when leveraging the transformation pipeline"); - } - if (options.transformation.region !== "eu" && options.transformation.region !== "us") { - throw transformationConfigurationError("`region` is required and must be one of the following: eu, us"); - } - const appId = options.appId; - const auth = clientCommon.createAuth(clientCommon.AuthMode.WithinHeaders, appId, options.apiKey); - const transporter$1 = transporter.createTransporter({ - hosts: [ - { - url: `data.${options.transformation.region}.algolia.com`, - accept: transporter.CallEnum.ReadWrite, - protocol: "https" - } - ], - ...options, - headers: { - ...auth.headers(), - ...{ "content-type": "text/plain" }, - ...options.headers - }, - queryParameters: { - ...auth.queryParameters(), - ...options.queryParameters - } - }); - return { - transporter: transporter$1, - appId, - addAlgoliaAgent(segment, version3) { - transporter$1.userAgent.add({ segment, version: version3 }); - transporter$1.userAgent.add({ segment: "Ingestion", version: version3 }); - transporter$1.userAgent.add({ segment: "Ingestion via Algoliasearch" }); - }, - clearCache() { - return Promise.all([ - transporter$1.requestsCache.clear(), - transporter$1.responsesCache.clear() - ]).then(() => void 0); - }, - push({ indexName, pushTaskPayload, watch }, requestOptions) { - if (!indexName) { - throw transformationConfigurationError("Parameter `indexName` is required when calling `push`."); - } - if (!pushTaskPayload) { - throw transformationConfigurationError("Parameter `pushTaskPayload` is required when calling `push`."); - } - if (!pushTaskPayload.action) { - throw transformationConfigurationError("Parameter `pushTaskPayload.action` is required when calling `push`."); - } - if (!pushTaskPayload.records) { - throw transformationConfigurationError("Parameter `pushTaskPayload.records` is required when calling `push`."); - } - const opts = requestOptions || { queryParameters: {} }; - return transporter$1.write({ - method: requesterCommon.MethodEnum.Post, - path: clientCommon.encode("1/push/%s", indexName), - data: pushTaskPayload - }, { - ...opts, - queryParameters: { - ...opts.queryParameters, - watch: watch !== void 0 - } - }); - } - }; - } - function saveObjectsWithTransformation(indexName, client) { - return (objects, requestOptions) => { - if (!client) { - throw transformationConfigurationError("`options.transformation.region` must be provided at client instantiation before calling this method."); - } - const { autoGenerateObjectIDIfNotExist, watch, ...rest } = requestOptions || {}; - const action = autoGenerateObjectIDIfNotExist ? clientSearch.BatchActionEnum.AddObject : clientSearch.BatchActionEnum.UpdateObject; - return client.push({ - indexName, - pushTaskPayload: { action, records: objects }, - watch - }, rest); - }; - } - function partialUpdateObjectsWithTransformation(indexName, client) { - return (objects, requestOptions) => { - if (!client) { - throw transformationConfigurationError("`options.transformation.region` must be provided at client instantiation before calling this method."); - } - const { createIfNotExists, watch, ...rest } = requestOptions || {}; - const action = createIfNotExists ? clientSearch.BatchActionEnum.PartialUpdateObject : clientSearch.BatchActionEnum.PartialUpdateObjectNoCreate; - return client.push({ - indexName, - pushTaskPayload: { action, records: objects }, - watch - }, rest); - }; - } - function transformationConfigurationError(message) { - return { - name: "TransformationConfigurationError", - message - }; - } function algoliasearch2(appId, apiKey, options) { const commonOptions = { appId, @@ -3826,13 +3628,6 @@ var require_algoliasearch_cjs = __commonJS({ } }); }; - let ingestionTransporter; - if (options && options.transformation) { - if (!options.transformation.region) { - throw transformationConfigurationError("`region` must be provided when leveraging the transformation pipeline"); - } - ingestionTransporter = createIngestionClient({ ...options, ...commonOptions }); - } return clientSearch.createSearchClient({ ...searchClientOptions, methods: { @@ -3878,53 +3673,49 @@ var require_algoliasearch_cjs = __commonJS({ waitAppTask: clientSearch.waitAppTask, customRequest: clientSearch.customRequest, initIndex: (base) => (indexName) => { - return { - ...clientSearch.initIndex(base)(indexName, { - methods: { - batch: clientSearch.batch, - delete: clientSearch.deleteIndex, - findAnswers: clientSearch.findAnswers, - getObject: clientSearch.getObject, - getObjects: clientSearch.getObjects, - saveObject: clientSearch.saveObject, - saveObjects: clientSearch.saveObjects, - search: clientSearch.search, - searchForFacetValues: clientSearch.searchForFacetValues, - waitTask: clientSearch.waitTask, - setSettings: clientSearch.setSettings, - getSettings: clientSearch.getSettings, - partialUpdateObject: clientSearch.partialUpdateObject, - partialUpdateObjects: clientSearch.partialUpdateObjects, - deleteObject: clientSearch.deleteObject, - deleteObjects: clientSearch.deleteObjects, - deleteBy: clientSearch.deleteBy, - clearObjects: clientSearch.clearObjects, - browseObjects: clientSearch.browseObjects, - getObjectPosition: clientSearch.getObjectPosition, - findObject: clientSearch.findObject, - exists: clientSearch.exists, - saveSynonym: clientSearch.saveSynonym, - saveSynonyms: clientSearch.saveSynonyms, - getSynonym: clientSearch.getSynonym, - searchSynonyms: clientSearch.searchSynonyms, - browseSynonyms: clientSearch.browseSynonyms, - deleteSynonym: clientSearch.deleteSynonym, - clearSynonyms: clientSearch.clearSynonyms, - replaceAllObjects: clientSearch.replaceAllObjects, - replaceAllSynonyms: clientSearch.replaceAllSynonyms, - searchRules: clientSearch.searchRules, - getRule: clientSearch.getRule, - deleteRule: clientSearch.deleteRule, - saveRule: clientSearch.saveRule, - saveRules: clientSearch.saveRules, - replaceAllRules: clientSearch.replaceAllRules, - browseRules: clientSearch.browseRules, - clearRules: clientSearch.clearRules - } - }), - saveObjectsWithTransformation: saveObjectsWithTransformation(indexName, ingestionTransporter), - partialUpdateObjectsWithTransformation: partialUpdateObjectsWithTransformation(indexName, ingestionTransporter) - }; + return clientSearch.initIndex(base)(indexName, { + methods: { + batch: clientSearch.batch, + delete: clientSearch.deleteIndex, + findAnswers: clientSearch.findAnswers, + getObject: clientSearch.getObject, + getObjects: clientSearch.getObjects, + saveObject: clientSearch.saveObject, + saveObjects: clientSearch.saveObjects, + search: clientSearch.search, + searchForFacetValues: clientSearch.searchForFacetValues, + waitTask: clientSearch.waitTask, + setSettings: clientSearch.setSettings, + getSettings: clientSearch.getSettings, + partialUpdateObject: clientSearch.partialUpdateObject, + partialUpdateObjects: clientSearch.partialUpdateObjects, + deleteObject: clientSearch.deleteObject, + deleteObjects: clientSearch.deleteObjects, + deleteBy: clientSearch.deleteBy, + clearObjects: clientSearch.clearObjects, + browseObjects: clientSearch.browseObjects, + getObjectPosition: clientSearch.getObjectPosition, + findObject: clientSearch.findObject, + exists: clientSearch.exists, + saveSynonym: clientSearch.saveSynonym, + saveSynonyms: clientSearch.saveSynonyms, + getSynonym: clientSearch.getSynonym, + searchSynonyms: clientSearch.searchSynonyms, + browseSynonyms: clientSearch.browseSynonyms, + deleteSynonym: clientSearch.deleteSynonym, + clearSynonyms: clientSearch.clearSynonyms, + replaceAllObjects: clientSearch.replaceAllObjects, + replaceAllSynonyms: clientSearch.replaceAllSynonyms, + searchRules: clientSearch.searchRules, + getRule: clientSearch.getRule, + deleteRule: clientSearch.deleteRule, + saveRule: clientSearch.saveRule, + saveRules: clientSearch.saveRules, + replaceAllRules: clientSearch.replaceAllRules, + browseRules: clientSearch.browseRules, + clearRules: clientSearch.clearRules + } + }); }, initAnalytics: () => (clientOptions) => { return clientAnalytics.createAnalyticsClient({ @@ -6624,6 +6415,11 @@ var libraryContext_default = LibraryContextProvider; // src/utils/string-utils.ts var removeHTML = (str) => str.replace(/<\/?[^>]+>/g, ""); +var stripMarkdownForSnippet = (str) => { + if (!str) + return ""; + return str.replace(/!\[([^\]]*)\]\([^)]+\)/g, "$1").replace(/\[([^\]]+)\]\([^)]+\)/g, "$1").replace(/^#{1,6}\s+/gm, "").replace(/\s#{1,6}\s+/g, " ").replace(/\*\*(.+?)\*\*/g, "$1").replace(/__(.+?)__/g, "$1").replace(/\*(.+?)\*/g, "$1").replace(/_(.+?)_/g, "$1").replace(/`([^`]+)`/g, "$1").replace(/```[\s\S]*?```/g, "").replace(/^(\*{3,}|-{3,}|_{3,})$/gm, "").replace(/^>\s+/gm, "").replace(/\s+/g, " ").trim(); +}; var slugify = (str) => { return str.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^\w\s-]/g, "").replace(/\s+/g, "-").replace(/-+/g, "-").trim(); }; @@ -6823,9 +6619,8 @@ var MermaidDiagram = ({ node, ...props }) => { const resizeObserver = new ResizeObserver(() => { if (!ref.current) return; - const width2 = ref.current.clientWidth; - setWidth(width2); - setHeight(width2 / 2); + setWidth(ref.current?.clientWidth ?? 0); + setHeight(ref.current?.clientWidth / 2); }); const mermaidRenderer = async function() { const { svg } = await mermaid2.render("mermaid-id", props.children); @@ -9993,6 +9788,7 @@ var import_lite = __toESM(require_lite()); import aa2 from "search-insights"; var searchClient = {}; var searchIndex = ""; +var hitsPerPage = 10; var createAlgoliaClient = (config) => { const { apiKey, @@ -10032,11 +9828,14 @@ var HYBRID_UPSTREAM_MAX_LIMIT = 100; var createHybridClient = (config) => { const { apiEndpoint, - defaultLimit = 10, + defaultLimit, + itemsPerPage, useLanguageFilter = true, upstreamFetchSize = HYBRID_UPSTREAM_MAX_LIMIT, cacheTtlMs = 6e4 } = config; + const pageSize = itemsPerPage ?? defaultLimit ?? 10; + hitsPerPage = pageSize; const effectiveUpstreamLimit = clampUpstreamLimit(upstreamFetchSize); const cache = []; const getCached = (key) => { @@ -10071,7 +9870,7 @@ var createHybridClient = (config) => { const request = requests.find(({ params: params2 }) => params2?.query) || requests[0]; const params = request.params || {}; const query = params.query || ""; - const hitsPerPage = params.hitsPerPage || defaultLimit; + const hitsPerPage2 = params.hitsPerPage || pageSize; const page = params.page || 0; const { locale, doctypes } = extractHybridFilters(params); const cacheKey = JSON.stringify({ @@ -10101,9 +9900,9 @@ var createHybridClient = (config) => { } const filteredHits = filterHitsByDoctype(allHits, doctypes); const nbHits = filteredHits.length; - const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage)); - const start = page * hitsPerPage; - const pageHits = filteredHits.slice(start, start + hitsPerPage); + const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage2)); + const start = page * hitsPerPage2; + const pageHits = filteredHits.slice(start, start + hitsPerPage2); const facets = extractFacetsFromHits(allHits); return { results: [ @@ -10112,7 +9911,7 @@ var createHybridClient = (config) => { nbHits, page, nbPages, - hitsPerPage, + hitsPerPage: hitsPerPage2, exhaustiveNbHits: true, query, params: "", @@ -10134,7 +9933,7 @@ var createHybridClient = (config) => { nbHits: 0, page: 0, nbPages: 0, - hitsPerPage: defaultLimit, + hitsPerPage: pageSize, exhaustiveNbHits: true, query: requests[0]?.params?.query || "", params: "", @@ -10203,6 +10002,8 @@ function transformHybridToAlgolia(result) { lvl2: deriveCategoryFromFilePath(filePath) }; const url = buildUrlFromFilePath(filePath); + const rawContent = result.snippet || result.content || ""; + const cleanContent = stripMarkdownForSnippet(rawContent); return { objectID: String(result.id), ...result, @@ -10210,13 +10011,13 @@ function transformHybridToAlgolia(result) { url_without_anchor: url.split("#")[0], doctype, doctitle: result.title || "Untitled", - content: result.snippet || result.content || "", + content: cleanContent, hierarchy, language: result.metadata?.locale || "en", type: "content", _highlightResult: { content: { - value: result.snippet || result.content || "", + value: cleanContent, matchLevel: "full", fullyHighlighted: false, matchedWords: [] @@ -10234,7 +10035,7 @@ function transformHybridToAlgolia(result) { }, _snippetResult: { content: { - value: result.snippet || "", + value: result.snippet ? stripMarkdownForSnippet(result.snippet) : "", matchLevel: "full" } } @@ -10317,28 +10118,21 @@ function SearchInput() { const changeFocus = (value) => { setfocusOut({ modaltoggle: value }); }; - return ( - // @ts-expect-error - React type conflict with @mdx-js/react - /* @__PURE__ */ jsxs32(InstantSearch, { searchClient, indexName: searchIndex, children: [ - searchClient.instantSearchConfigs && // @ts-expect-error - React type conflict with @mdx-js/react - /* @__PURE__ */ jsx39(Configure, { ...searchClient.instantSearchConfigs }), - searchClient.useLanguageFilter && // @ts-expect-error - React type conflict with @mdx-js/react - /* @__PURE__ */ jsx39( - Configure, - { - clickAnalytics: true, - facetFilters: [`language:${locale}`] - } - ), - !searchClient.useLanguageFilter && // @ts-expect-error - React type conflict with @mdx-js/react - /* @__PURE__ */ jsx39(Configure, { clickAnalytics: true }), - /* @__PURE__ */ jsxs32(Box15, { onFocus: () => setfocusOut({ modaltoggle: true }), ref: resultsBox2, children: [ - /* @__PURE__ */ jsx39(search_box_default, { changeFocus }), - focusOut.modaltoggle && // @ts-expect-error - React type conflict with @mdx-js/react - /* @__PURE__ */ jsx39(results_box_default, { changeFocus }) - ] }) + return /* @__PURE__ */ jsxs32(InstantSearch, { searchClient, indexName: searchIndex, children: [ + searchClient.instantSearchConfigs && /* @__PURE__ */ jsx39(Configure, { ...searchClient.instantSearchConfigs }), + searchClient.useLanguageFilter && /* @__PURE__ */ jsx39( + Configure, + { + clickAnalytics: true, + facetFilters: [`language:${locale}`] + } + ), + !searchClient.useLanguageFilter && /* @__PURE__ */ jsx39(Configure, { clickAnalytics: true }), + /* @__PURE__ */ jsxs32(Box15, { onFocus: () => setfocusOut({ modaltoggle: true }), ref: resultsBox2, children: [ + /* @__PURE__ */ jsx39(search_box_default, { changeFocus }), + focusOut.modaltoggle && /* @__PURE__ */ jsx39(results_box_default, { changeFocus }) ] }) - ); + ] }); } // src/lib/hamburger-menu/index.tsx @@ -11676,7 +11470,7 @@ var SearchResults = () => { filters, query: router.query.keyword, clickAnalytics: true, - hitsPerPage: 10, + hitsPerPage, facets: ["doctype", "language"], facetingAfterDistinct: true } diff --git a/dist/index.mjs.map b/dist/index.mjs.map index ac1586a..5357608 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/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/trashcan-icon.tsx","../src/components/icons/filter-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.26.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.26.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.26.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.26.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 .catch(error => {\r\n // Clean up temporary index if there's an error\r\n // eslint-disable-next-line promise/no-nesting\r\n return deleteIndex({\r\n appId: base.appId,\r\n transporter: base.transporter,\r\n indexName: temporaryIndexName,\r\n })()\r\n .catch(() => {\r\n // Ignore delete errors\r\n })\r\n .then(() => {\r\n throw error;\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.26.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';\nimport { createGunzip, gzip } from 'zlib';\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 COMPRESSION_THRESHOLD = 750;\r\n const acceptEncoding = request.headers['accept-encoding'];\r\n const shouldCompress = request.data !== undefined &&\r\n Buffer.byteLength(request.data) >= COMPRESSION_THRESHOLD &&\r\n acceptEncoding !== undefined &&\r\n acceptEncoding.toLowerCase().includes('gzip');\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 ...(shouldCompress ? { 'content-encoding': 'gzip' } : {}),\r\n },\r\n ...(url.port !== undefined ? { port: url.port || '' } : {}),\r\n };\r\n // eslint-disable-next-line functional/no-let, prefer-const\r\n let connectTimeout;\r\n // eslint-disable-next-line functional/no-let\r\n let responseTimeout;\r\n // eslint-disable-next-line functional/no-let\r\n let gunzip;\r\n const cleanup = () => {\r\n clearTimeout(connectTimeout);\r\n clearTimeout(responseTimeout);\r\n if (gunzip) {\r\n gunzip.destroy();\r\n }\r\n };\r\n const onError = (error) => {\r\n cleanup();\r\n resolve({ status: 0, content: error.message, isTimedOut: false });\r\n };\r\n const req = (url.protocol === 'https:' ? https : http).request(options, response => {\r\n const contentEncoding = response.headers['content-encoding'];\r\n const isGzipResponse = contentEncoding !== undefined && contentEncoding.toLowerCase().includes('gzip');\r\n // eslint-disable-next-line functional/no-let\r\n let contentBuffers = [];\r\n const onData = (chunk) => {\r\n contentBuffers = contentBuffers.concat(chunk);\r\n };\r\n const onEnd = () => {\r\n cleanup();\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 response.on('error', onError);\r\n if (isGzipResponse) {\r\n gunzip = createGunzip();\r\n response.pipe(gunzip);\r\n gunzip.on('data', onData);\r\n gunzip.on('end', onEnd);\r\n gunzip.on('error', onError);\r\n }\r\n else {\r\n response.on('data', onData);\r\n response.on('end', onEnd);\r\n }\r\n });\r\n const createTimeout = (timeout, content) => {\r\n return setTimeout(() => {\r\n req.abort();\r\n if (gunzip) {\r\n gunzip.destroy();\r\n }\r\n resolve({\r\n status: 0,\r\n content,\r\n isTimedOut: true,\r\n });\r\n }, timeout * 1000);\r\n };\r\n connectTimeout = createTimeout(request.connectTimeout, 'Connection timeout');\r\n req.on('error', onError);\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 && shouldCompress) {\r\n gzip(request.data, (error, compressedBody) => {\r\n if (error) {\r\n onError(error);\r\n return;\r\n }\r\n req.setHeader('content-length', compressedBody.byteLength);\r\n req.write(compressedBody);\r\n req.end();\r\n });\r\n }\r\n else {\r\n if (request.data !== undefined) {\r\n req.setHeader('content-length', Buffer.byteLength(request.data));\r\n req.write(request.data);\r\n }\r\n req.end();\r\n }\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';\nimport { createGunzip, gzip } from 'zlib';\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 COMPRESSION_THRESHOLD = 750;\r\n const acceptEncoding = request.headers['accept-encoding'];\r\n const shouldCompress = request.data !== undefined &&\r\n Buffer.byteLength(request.data) >= COMPRESSION_THRESHOLD &&\r\n acceptEncoding !== undefined &&\r\n acceptEncoding.toLowerCase().includes('gzip');\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 ...(shouldCompress ? { 'content-encoding': 'gzip' } : {}),\r\n },\r\n ...(url.port !== undefined ? { port: url.port || '' } : {}),\r\n };\r\n // eslint-disable-next-line functional/no-let, prefer-const\r\n let connectTimeout;\r\n // eslint-disable-next-line functional/no-let\r\n let responseTimeout;\r\n // eslint-disable-next-line functional/no-let\r\n let gunzip;\r\n const cleanup = () => {\r\n clearTimeout(connectTimeout);\r\n clearTimeout(responseTimeout);\r\n if (gunzip) {\r\n gunzip.destroy();\r\n }\r\n };\r\n const onError = (error) => {\r\n cleanup();\r\n resolve({ status: 0, content: error.message, isTimedOut: false });\r\n };\r\n const req = (url.protocol === 'https:' ? https : http).request(options, response => {\r\n const contentEncoding = response.headers['content-encoding'];\r\n const isGzipResponse = contentEncoding !== undefined && contentEncoding.toLowerCase().includes('gzip');\r\n // eslint-disable-next-line functional/no-let\r\n let contentBuffers = [];\r\n const onData = (chunk) => {\r\n contentBuffers = contentBuffers.concat(chunk);\r\n };\r\n const onEnd = () => {\r\n cleanup();\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 response.on('error', onError);\r\n if (isGzipResponse) {\r\n gunzip = createGunzip();\r\n response.pipe(gunzip);\r\n gunzip.on('data', onData);\r\n gunzip.on('end', onEnd);\r\n gunzip.on('error', onError);\r\n }\r\n else {\r\n response.on('data', onData);\r\n response.on('end', onEnd);\r\n }\r\n });\r\n const createTimeout = (timeout, content) => {\r\n return setTimeout(() => {\r\n req.abort();\r\n if (gunzip) {\r\n gunzip.destroy();\r\n }\r\n resolve({\r\n status: 0,\r\n content,\r\n isTimedOut: true,\r\n });\r\n }, timeout * 1000);\r\n };\r\n connectTimeout = createTimeout(request.connectTimeout, 'Connection timeout');\r\n req.on('error', onError);\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 && shouldCompress) {\r\n gzip(request.data, (error, compressedBody) => {\r\n if (error) {\r\n onError(error);\r\n return;\r\n }\r\n req.setHeader('content-length', compressedBody.byteLength);\r\n req.write(compressedBody);\r\n req.end();\r\n });\r\n }\r\n else {\r\n if (request.data !== undefined) {\r\n req.setHeader('content-length', Buffer.byteLength(request.data));\r\n req.write(request.data);\r\n }\r\n req.end();\r\n }\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');\nvar requesterCommon = require('@algolia/requester-common');\n\nfunction createIngestionClient(options) {\r\n if (!options || !options.transformation || !options.transformation.region) {\r\n throw transformationConfigurationError('`region` must be provided when leveraging the transformation pipeline');\r\n }\r\n if (options.transformation.region !== 'eu' && options.transformation.region !== 'us') {\r\n throw transformationConfigurationError('`region` is required and must be one of the following: eu, us');\r\n }\r\n const appId = options.appId;\r\n const auth = clientCommon.createAuth(clientCommon.AuthMode.WithinHeaders, appId, options.apiKey);\r\n const transporter$1 = transporter.createTransporter({\r\n hosts: [\r\n {\r\n url: `data.${options.transformation.region}.algolia.com`,\r\n accept: transporter.CallEnum.ReadWrite,\r\n protocol: 'https',\r\n },\r\n ],\r\n ...options,\r\n headers: {\r\n ...auth.headers(),\r\n ...{ 'content-type': 'text/plain' },\r\n ...options.headers,\r\n },\r\n queryParameters: {\r\n ...auth.queryParameters(),\r\n ...options.queryParameters,\r\n },\r\n });\r\n return {\r\n transporter: transporter$1,\r\n appId,\r\n addAlgoliaAgent(segment, version) {\r\n transporter$1.userAgent.add({ segment, version });\r\n transporter$1.userAgent.add({ segment: 'Ingestion', version });\r\n transporter$1.userAgent.add({ segment: 'Ingestion via Algoliasearch' });\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 push({ indexName, pushTaskPayload, watch }, requestOptions) {\r\n if (!indexName) {\r\n throw transformationConfigurationError('Parameter `indexName` is required when calling `push`.');\r\n }\r\n if (!pushTaskPayload) {\r\n throw transformationConfigurationError('Parameter `pushTaskPayload` is required when calling `push`.');\r\n }\r\n if (!pushTaskPayload.action) {\r\n throw transformationConfigurationError('Parameter `pushTaskPayload.action` is required when calling `push`.');\r\n }\r\n if (!pushTaskPayload.records) {\r\n throw transformationConfigurationError('Parameter `pushTaskPayload.records` is required when calling `push`.');\r\n }\r\n const opts = requestOptions || { queryParameters: {} };\r\n return transporter$1.write({\r\n method: requesterCommon.MethodEnum.Post,\r\n path: clientCommon.encode('1/push/%s', indexName),\r\n data: pushTaskPayload,\r\n }, {\r\n ...opts,\r\n queryParameters: {\r\n ...opts.queryParameters,\r\n watch: watch !== undefined,\r\n },\r\n });\r\n },\r\n };\r\n}\r\nfunction saveObjectsWithTransformation(indexName, client) {\r\n return (objects, requestOptions) => {\r\n if (!client) {\r\n throw transformationConfigurationError('`options.transformation.region` must be provided at client instantiation before calling this method.');\r\n }\r\n const { autoGenerateObjectIDIfNotExist, watch, ...rest } = requestOptions || {};\r\n const action = autoGenerateObjectIDIfNotExist\r\n ? clientSearch.BatchActionEnum.AddObject\r\n : clientSearch.BatchActionEnum.UpdateObject;\r\n /* eslint functional/immutable-data: \"off\" */\r\n return client.push({\r\n indexName,\r\n pushTaskPayload: { action, records: objects },\r\n watch,\r\n }, rest);\r\n };\r\n}\r\nfunction partialUpdateObjectsWithTransformation(indexName, client) {\r\n return (objects, requestOptions) => {\r\n if (!client) {\r\n throw transformationConfigurationError('`options.transformation.region` must be provided at client instantiation before calling this method.');\r\n }\r\n const { createIfNotExists, watch, ...rest } = requestOptions || {};\r\n const action = createIfNotExists\r\n ? clientSearch.BatchActionEnum.PartialUpdateObject\r\n : clientSearch.BatchActionEnum.PartialUpdateObjectNoCreate;\r\n /* eslint functional/immutable-data: \"off\" */\r\n return client.push({\r\n indexName,\r\n pushTaskPayload: { action, records: objects },\r\n watch,\r\n }, rest);\r\n };\r\n}\r\nfunction transformationConfigurationError(message) {\r\n return {\r\n name: 'TransformationConfigurationError',\r\n message,\r\n };\r\n}\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 /* eslint functional/no-let: \"off\" */\r\n let ingestionTransporter;\r\n if (options && options.transformation) {\r\n if (!options.transformation.region) {\r\n throw transformationConfigurationError('`region` must be provided when leveraging the transformation pipeline');\r\n }\r\n ingestionTransporter = createIngestionClient({ ...options, ...commonOptions });\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 {\r\n ...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 saveObjectsWithTransformation: saveObjectsWithTransformation(indexName, ingestionTransporter),\r\n partialUpdateObjectsWithTransformation: partialUpdateObjectsWithTransformation(indexName, ingestionTransporter),\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'\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 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\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 const width = ref.current.clientWidth\r\n setWidth(width)\r\n setHeight(width / 2)\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\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: #f6f8fa;\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: 1fr;\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 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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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: #ecebf3;\r\n}\r\n\r\n.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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","{\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}\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}\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}","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 // @ts-expect-error - React type conflict with @mdx-js/react\r\n \r\n {searchClient.instantSearchConfigs && (\r\n // @ts-expect-error - React type conflict with @mdx-js/react\r\n \r\n )}\r\n {searchClient.useLanguageFilter && (\r\n // @ts-expect-error - React type conflict with @mdx-js/react\r\n \r\n )}\r\n {!searchClient.useLanguageFilter && (\r\n // @ts-expect-error - React type conflict with @mdx-js/react\r\n \r\n )}\r\n setfocusOut({ modaltoggle: true })} ref={resultsBox}>\r\n {/* @ts-expect-error - React type conflict with @mdx-js/react */}\r\n \r\n {focusOut.modaltoggle && (\r\n // @ts-expect-error - React type conflict with @mdx-js/react\r\n \r\n )}\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}\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}\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 whiteSpace: 'pre',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\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\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\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport let searchClient: any = {}\r\nexport let searchIndex = ''\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 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\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\nconst createHybridClient = (config: HybridSearchConfig) => {\r\n const {\r\n apiEndpoint,\r\n defaultLimit = 10,\r\n useLanguageFilter = true,\r\n upstreamFetchSize = HYBRID_UPSTREAM_MAX_LIMIT,\r\n cacheTtlMs = 60_000,\r\n } = config\r\n\r\n const effectiveUpstreamLimit = clampUpstreamLimit(upstreamFetchSize)\r\n const cache: HybridCacheEntry[] = []\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 // 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 ): 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 || defaultLimit\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 or doctype\r\n // filtering, so we always fetch a large slice once per (query, locale)\r\n // pair and paginate / doctype-filter client-side.\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 cachedHits = getCached(cacheKey)\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let allHits: any[]\r\n if (cachedHits) {\r\n allHits = cachedHits\r\n } else {\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 allHits = rawResults.map(transformHybridToAlgolia)\r\n setCached(cacheKey, allHits)\r\n }\r\n\r\n // Doctype filter is applied client-side because the upstream API\r\n // does not understand it. Facet counts are computed on `allHits`\r\n // (i.e. ignoring the doctype filter) so that the tabs keep showing\r\n // counts for the other doctypes.\r\n const filteredHits = filterHitsByDoctype(allHits, doctypes)\r\n const nbHits = filteredHits.length\r\n const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage))\r\n const start = page * hitsPerPage\r\n const pageHits = filteredHits.slice(start, start + hitsPerPage)\r\n\r\n const facets = extractFacetsFromHits(allHits)\r\n\r\n return {\r\n results: [\r\n {\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: facets.facets,\r\n facets_stats: {},\r\n exhaustiveFacetsCount: true,\r\n queryID: generateQueryID(),\r\n },\r\n ],\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: defaultLimit,\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) =>\r\n wanted.has(String(h.doctype || '').toLowerCase())\r\n )\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 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: result.snippet || result.content || '',\r\n hierarchy,\r\n language: result.metadata?.locale || 'en',\r\n type: 'content',\r\n _highlightResult: {\r\n content: {\r\n value: result.snippet || result.content || '',\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 || '',\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\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\r\n // docs///...\r\n if (parts[0] === 'docs' && parts.length > 2) {\r\n return `/docs/${stripExt(parts.slice(2).join('/'))}`\r\n }\r\n\r\n // //... (announcements, faq, known-issues, troubleshooting, ...)\r\n if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1])) {\r\n return `/${parts[0]}/${stripExt(parts.slice(2).join('/'))}`\r\n }\r\n\r\n return '/' + stripExt(parts.join('/'))\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction extractFacetsFromHits(\r\n hits: any[]\r\n): { facets: Record> } {\r\n const facets: Record> = {\r\n doctype: {},\r\n language: {},\r\n }\r\n\r\n hits.forEach((hit) => {\r\n const doctype = hit.doctype || 'Other'\r\n facets.doctype[doctype] = (facets.doctype[doctype] || 0) + 1\r\n\r\n const language = hit.language || 'en'\r\n facets.language[language] = (facets.language[language] || 0) + 1\r\n })\r\n\r\n return { facets }\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(config: SearchBackendConfig | AlgoliaConfig) {\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\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 return !dataElement ? (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results' }\r\n \r\n \r\n {ocurrenceCount['']}\r\n \r\n \r\n ) : (\r\n updateFilter(dataElement.id)}\r\n >\r\n \r\n \r\n \r\n {dataElement.title}\r\n \r\n \r\n \r\n {ocurrenceCount[dataElement.id] || 0}\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: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\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: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n fontSize: '12px',\r\n lineHeight: '16px',\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\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, 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 { searchClient, searchIndex } from 'utils/config/search-config'\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 [prevFilter, setPrevFilter] = useState('')\r\n const [searchState, setSearchState] = useState({})\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const page = filters !== prevFilter ? 1 : currentState.page || 1\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 ocurrenceCount[filterSelectedSection] === undefined\r\n ? ''\r\n : 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 facets = results?.facets as\r\n | Array<{\r\n name: string\r\n data: Record\r\n exhaustive?: boolean\r\n }>\r\n | undefined\r\n\r\n const doctypeFacet = facets?.find((facet) => facet.name === 'doctype')\r\n const nbHits = results?.nbHits ?? 0\r\n\r\n const formattedFacets: Record = {}\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\r\n formattedFacets[''] = nbHits\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) 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}\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\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 return (\r\n changeFilterSelectedSection(filter)}\r\n >\r\n \r\n {filter || messages[locale]['search_results.all'] || 'All results'}\r\n \r\n {ocurrenceCount[filter] || 0}\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) => SxStyleProp = (active) => ({\r\n pt: '8px',\r\n pb: '14px',\r\n px: '24px',\r\n cursor: '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})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '16.38px',\r\n whiteSpace: 'nowrap',\r\n color: `#${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","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 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 { 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 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","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","createGunzip","gzip","defaultHttpAgent","defaultHttpsAgent","agentOptions","init_requester_node_http_esm","version","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","blockquoteInfo","blockquoteDanger","blockquoteWarning","blockquoteSuccess","flexWrap","svgContainer","messages","jsx","jsxs","useState","styles_default","icon","useRef","useEffect","width","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","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","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","algoliasearch","params","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","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","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","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","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","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","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/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/trashcan-icon.tsx","../src/components/icons/filter-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'\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 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\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\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.\r\n */\r\nexport const stripMarkdownForSnippet = (str: string): string => {\r\n if (!str) return ''\r\n \r\n return str\r\n // Remove markdown images ![alt](url) - keep only alt text\r\n .replace(/!\\[([^\\]]*)\\]\\([^)]+\\)/g, '$1')\r\n // Remove markdown links [text](url) - keep only the text\r\n .replace(/\\[([^\\]]+)\\]\\([^)]+\\)/g, '$1')\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`)\r\n .replace(/`([^`]+)`/g, '$1')\r\n // Remove code blocks (```text```)\r\n .replace(/```[\\s\\S]*?```/g, '')\r\n // Remove horizontal rules (---, ***, ___)\r\n .replace(/^(\\*{3,}|-{3,}|_{3,})$/gm, '')\r\n // Remove blockquotes (>)\r\n .replace(/^>\\s+/gm, '')\r\n // Remove extra whitespace and normalize spaces\r\n .replace(/\\s+/g, ' ')\r\n .trim()\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: #f6f8fa;\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: 1fr;\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 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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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: #ecebf3;\r\n}\r\n\r\n.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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","{\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}\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}\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}","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}\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}\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 whiteSpace: 'pre',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\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\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\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\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\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 // 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 ): 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 or doctype\r\n // filtering, so we always fetch a large slice once per (query, locale)\r\n // pair and paginate / doctype-filter client-side.\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 cachedHits = getCached(cacheKey)\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let allHits: any[]\r\n if (cachedHits) {\r\n allHits = cachedHits\r\n } else {\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 allHits = rawResults.map(transformHybridToAlgolia)\r\n setCached(cacheKey, allHits)\r\n }\r\n\r\n // Doctype filter is applied client-side because the upstream API\r\n // does not understand it. Facet counts are computed on `allHits`\r\n // (i.e. ignoring the doctype filter) so that the tabs keep showing\r\n // counts for the other doctypes.\r\n const filteredHits = filterHitsByDoctype(allHits, doctypes)\r\n const nbHits = filteredHits.length\r\n const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage))\r\n const start = page * hitsPerPage\r\n const pageHits = filteredHits.slice(start, start + hitsPerPage)\r\n\r\n const facets = extractFacetsFromHits(allHits)\r\n\r\n return {\r\n results: [\r\n {\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: facets.facets,\r\n facets_stats: {},\r\n exhaustiveFacetsCount: true,\r\n queryID: generateQueryID(),\r\n },\r\n ],\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) =>\r\n wanted.has(String(h.doctype || '').toLowerCase())\r\n )\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\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\r\n // docs///...\r\n if (parts[0] === 'docs' && parts.length > 2) {\r\n return `/docs/${stripExt(parts.slice(2).join('/'))}`\r\n }\r\n\r\n // //... (announcements, faq, known-issues, troubleshooting, ...)\r\n if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1])) {\r\n return `/${parts[0]}/${stripExt(parts.slice(2).join('/'))}`\r\n }\r\n\r\n return '/' + stripExt(parts.join('/'))\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction extractFacetsFromHits(\r\n hits: any[]\r\n): { facets: Record> } {\r\n const facets: Record> = {\r\n doctype: {},\r\n language: {},\r\n }\r\n\r\n hits.forEach((hit) => {\r\n const doctype = hit.doctype || 'Other'\r\n facets.doctype[doctype] = (facets.doctype[doctype] || 0) + 1\r\n\r\n const language = hit.language || 'en'\r\n facets.language[language] = (facets.language[language] || 0) + 1\r\n })\r\n\r\n return { facets }\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(config: SearchBackendConfig | AlgoliaConfig) {\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\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 return !dataElement ? (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results' }\r\n \r\n \r\n {ocurrenceCount['']}\r\n \r\n \r\n ) : (\r\n updateFilter(dataElement.id)}\r\n >\r\n \r\n \r\n \r\n {dataElement.title}\r\n \r\n \r\n \r\n {ocurrenceCount[dataElement.id] || 0}\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: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\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: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n fontSize: '12px',\r\n lineHeight: '16px',\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\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, 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 { searchClient, searchIndex, hitsPerPage } from 'utils/config/search-config'\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 [prevFilter, setPrevFilter] = useState('')\r\n const [searchState, setSearchState] = useState({})\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const page = filters !== prevFilter ? 1 : currentState.page || 1\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 ocurrenceCount[filterSelectedSection] === undefined\r\n ? ''\r\n : 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 facets = results?.facets as\r\n | Array<{\r\n name: string\r\n data: Record\r\n exhaustive?: boolean\r\n }>\r\n | undefined\r\n\r\n const doctypeFacet = facets?.find((facet) => facet.name === 'doctype')\r\n const nbHits = results?.nbHits ?? 0\r\n\r\n const formattedFacets: Record = {}\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\r\n formattedFacets[''] = nbHits\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) 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}\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\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 return (\r\n changeFilterSelectedSection(filter)}\r\n >\r\n \r\n {filter || messages[locale]['search_results.all'] || 'All results'}\r\n \r\n {ocurrenceCount[filter] || 0}\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) => SxStyleProp = (active) => ({\r\n pt: '8px',\r\n pb: '14px',\r\n px: '24px',\r\n cursor: '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})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '16.38px',\r\n whiteSpace: 'nowrap',\r\n color: `#${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","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 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 { 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 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","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","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","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","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","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","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","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","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","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","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","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/utils/string-utils.ts b/src/utils/string-utils.ts index e945d99..4b6d354 100644 --- a/src/utils/string-utils.ts +++ b/src/utils/string-utils.ts @@ -2,24 +2,36 @@ export const removeHTML = (str: string) => str.replace(/<\/?[^>]+>/g, '') /** * Strips Markdown syntax from text snippets to render as plain text. - * Removes headings, bold, italic, inline code, and links while preserving + * Removes headings, bold, italic, inline code, images, and links while preserving * the readable content. */ export const stripMarkdownForSnippet = (str: string): string => { if (!str) return '' return str - // Remove markdown headings (# ## ### etc.) + // Remove markdown images ![alt](url) - keep only alt text + .replace(/!\[([^\]]*)\]\([^)]+\)/g, '$1') + // Remove markdown links [text](url) - keep only the text + .replace(/\[([^\]]+)\]\([^)]+\)/g, '$1') + // Remove markdown headings (# ## ### etc.) at line start .replace(/^#{1,6}\s+/gm, '') + // Remove markdown headings anywhere in text + .replace(/\s#{1,6}\s+/g, ' ') // Remove bold (**text** or __text__) - .replace(/(\*\*|__)(.*?)\1/g, '$2') - // Remove italic (*text* or _text_) - but avoid matching URLs - .replace(/(?) + .replace(/^>\s+/gm, '') + // Remove extra whitespace and normalize spaces .replace(/\s+/g, ' ') .trim() } From 382a6529317312e8ed97beefe92b801d52b7a848 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A1rbara=20Celi?= Date: Mon, 8 Jun 2026 14:46:20 -0300 Subject: [PATCH 09/23] fix: improve URL building for tracks and fix snippet truncation - Add special handling for tracks URLs to use only last segment - Fix URL pattern: /pt/docs/tracks/modulos-da-vtex-i instead of full path - Improve snippet handling to remove mid-word truncation - Strip incomplete words at start of truncated snippets Co-authored-by: Cursor --- dist/index.mjs | 14 +++++++++++++- dist/index.mjs.map | 2 +- src/utils/config/search-config.ts | 8 ++++++++ src/utils/string-utils.ts | 12 +++++++++++- 4 files changed, 33 insertions(+), 3 deletions(-) diff --git a/dist/index.mjs b/dist/index.mjs index 1464c17..4e9174d 100644 --- a/dist/index.mjs +++ b/dist/index.mjs @@ -6418,7 +6418,14 @@ var removeHTML = (str) => str.replace(/<\/?[^>]+>/g, ""); var stripMarkdownForSnippet = (str) => { if (!str) return ""; - return str.replace(/!\[([^\]]*)\]\([^)]+\)/g, "$1").replace(/\[([^\]]+)\]\([^)]+\)/g, "$1").replace(/^#{1,6}\s+/gm, "").replace(/\s#{1,6}\s+/g, " ").replace(/\*\*(.+?)\*\*/g, "$1").replace(/__(.+?)__/g, "$1").replace(/\*(.+?)\*/g, "$1").replace(/_(.+?)_/g, "$1").replace(/`([^`]+)`/g, "$1").replace(/```[\s\S]*?```/g, "").replace(/^(\*{3,}|-{3,}|_{3,})$/gm, "").replace(/^>\s+/gm, "").replace(/\s+/g, " ").trim(); + let cleaned = str.replace(/!\[([^\]]*)\]\([^)]+\)/g, "$1").replace(/\[([^\]]+)\]\([^)]+\)/g, "$1").replace(/^#{1,6}\s+/gm, "").replace(/\s#{1,6}\s+/g, " ").replace(/\*\*(.+?)\*\*/g, "$1").replace(/__(.+?)__/g, "$1").replace(/\*(.+?)\*/g, "$1").replace(/_(.+?)_/g, "$1").replace(/`([^`]+)`/g, "$1").replace(/```[\s\S]*?```/g, "").replace(/^(\*{3,}|-{3,}|_{3,})$/gm, "").replace(/^>\s+/gm, "").replace(/\s+/g, " ").trim(); + if (cleaned.length > 0 && /^[a-zà-ÿ]/.test(cleaned)) { + const firstSpaceIndex = cleaned.indexOf(" "); + if (firstSpaceIndex > 0 && firstSpaceIndex < 50) { + cleaned = cleaned.substring(firstSpaceIndex + 1).trim(); + } + } + return cleaned; }; var slugify = (str) => { return str.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^\w\s-]/g, "").replace(/\s+/g, "-").replace(/-+/g, "-").trim(); @@ -10069,6 +10076,11 @@ function buildUrlFromFilePath(filePath) { if (parts.length === 0) return "/"; const stripExt = (s) => s.replace(/\.mdx?$/, ""); + if (parts[0] === "docs" && parts.length > 3 && parts[2] === "tracks") { + const locale = parts[1]; + const slug = stripExt(parts[parts.length - 1]); + return `/${locale}/docs/tracks/${slug}`; + } if (parts[0] === "docs" && parts.length > 2) { return `/docs/${stripExt(parts.slice(2).join("/"))}`; } diff --git a/dist/index.mjs.map b/dist/index.mjs.map index 5357608..67ddb9b 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/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/trashcan-icon.tsx","../src/components/icons/filter-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'\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 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\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\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.\r\n */\r\nexport const stripMarkdownForSnippet = (str: string): string => {\r\n if (!str) return ''\r\n \r\n return str\r\n // Remove markdown images ![alt](url) - keep only alt text\r\n .replace(/!\\[([^\\]]*)\\]\\([^)]+\\)/g, '$1')\r\n // Remove markdown links [text](url) - keep only the text\r\n .replace(/\\[([^\\]]+)\\]\\([^)]+\\)/g, '$1')\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`)\r\n .replace(/`([^`]+)`/g, '$1')\r\n // Remove code blocks (```text```)\r\n .replace(/```[\\s\\S]*?```/g, '')\r\n // Remove horizontal rules (---, ***, ___)\r\n .replace(/^(\\*{3,}|-{3,}|_{3,})$/gm, '')\r\n // Remove blockquotes (>)\r\n .replace(/^>\\s+/gm, '')\r\n // Remove extra whitespace and normalize spaces\r\n .replace(/\\s+/g, ' ')\r\n .trim()\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: #f6f8fa;\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: 1fr;\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 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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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: #ecebf3;\r\n}\r\n\r\n.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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","{\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}\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}\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}","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}\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}\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 whiteSpace: 'pre',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\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\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\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\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\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 // 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 ): 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 or doctype\r\n // filtering, so we always fetch a large slice once per (query, locale)\r\n // pair and paginate / doctype-filter client-side.\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 cachedHits = getCached(cacheKey)\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let allHits: any[]\r\n if (cachedHits) {\r\n allHits = cachedHits\r\n } else {\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 allHits = rawResults.map(transformHybridToAlgolia)\r\n setCached(cacheKey, allHits)\r\n }\r\n\r\n // Doctype filter is applied client-side because the upstream API\r\n // does not understand it. Facet counts are computed on `allHits`\r\n // (i.e. ignoring the doctype filter) so that the tabs keep showing\r\n // counts for the other doctypes.\r\n const filteredHits = filterHitsByDoctype(allHits, doctypes)\r\n const nbHits = filteredHits.length\r\n const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage))\r\n const start = page * hitsPerPage\r\n const pageHits = filteredHits.slice(start, start + hitsPerPage)\r\n\r\n const facets = extractFacetsFromHits(allHits)\r\n\r\n return {\r\n results: [\r\n {\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: facets.facets,\r\n facets_stats: {},\r\n exhaustiveFacetsCount: true,\r\n queryID: generateQueryID(),\r\n },\r\n ],\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) =>\r\n wanted.has(String(h.doctype || '').toLowerCase())\r\n )\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\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\r\n // docs///...\r\n if (parts[0] === 'docs' && parts.length > 2) {\r\n return `/docs/${stripExt(parts.slice(2).join('/'))}`\r\n }\r\n\r\n // //... (announcements, faq, known-issues, troubleshooting, ...)\r\n if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1])) {\r\n return `/${parts[0]}/${stripExt(parts.slice(2).join('/'))}`\r\n }\r\n\r\n return '/' + stripExt(parts.join('/'))\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction extractFacetsFromHits(\r\n hits: any[]\r\n): { facets: Record> } {\r\n const facets: Record> = {\r\n doctype: {},\r\n language: {},\r\n }\r\n\r\n hits.forEach((hit) => {\r\n const doctype = hit.doctype || 'Other'\r\n facets.doctype[doctype] = (facets.doctype[doctype] || 0) + 1\r\n\r\n const language = hit.language || 'en'\r\n facets.language[language] = (facets.language[language] || 0) + 1\r\n })\r\n\r\n return { facets }\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(config: SearchBackendConfig | AlgoliaConfig) {\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\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 return !dataElement ? (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results' }\r\n \r\n \r\n {ocurrenceCount['']}\r\n \r\n \r\n ) : (\r\n updateFilter(dataElement.id)}\r\n >\r\n \r\n \r\n \r\n {dataElement.title}\r\n \r\n \r\n \r\n {ocurrenceCount[dataElement.id] || 0}\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: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\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: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n fontSize: '12px',\r\n lineHeight: '16px',\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\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, 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 { searchClient, searchIndex, hitsPerPage } from 'utils/config/search-config'\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 [prevFilter, setPrevFilter] = useState('')\r\n const [searchState, setSearchState] = useState({})\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const page = filters !== prevFilter ? 1 : currentState.page || 1\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 ocurrenceCount[filterSelectedSection] === undefined\r\n ? ''\r\n : 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 facets = results?.facets as\r\n | Array<{\r\n name: string\r\n data: Record\r\n exhaustive?: boolean\r\n }>\r\n | undefined\r\n\r\n const doctypeFacet = facets?.find((facet) => facet.name === 'doctype')\r\n const nbHits = results?.nbHits ?? 0\r\n\r\n const formattedFacets: Record = {}\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\r\n formattedFacets[''] = nbHits\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) 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}\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\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 return (\r\n changeFilterSelectedSection(filter)}\r\n >\r\n \r\n {filter || messages[locale]['search_results.all'] || 'All results'}\r\n \r\n {ocurrenceCount[filter] || 0}\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) => SxStyleProp = (active) => ({\r\n pt: '8px',\r\n pb: '14px',\r\n px: '24px',\r\n cursor: '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})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '16.38px',\r\n whiteSpace: 'nowrap',\r\n color: `#${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","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 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 { 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 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AASa,QAAI,IAAE,eAAa,OAAO,UAAQ,OAAO;AAAzC,QAA6C,IAAE,IAAE,OAAO,IAAI,eAAe,IAAE;AAA7E,QAAmF,IAAE,IAAE,OAAO,IAAI,cAAc,IAAE;AAAlH,QAAwH,IAAE,IAAE,OAAO,IAAI,gBAAgB,IAAE;AAAzJ,QAA+J,IAAE,IAAE,OAAO,IAAI,mBAAmB,IAAE;AAAnM,QAAyM,IAAE,IAAE,OAAO,IAAI,gBAAgB,IAAE;AAA1O,QAAgP,IAAE,IAAE,OAAO,IAAI,gBAAgB,IAAE;AAAjR,QAAuR,IAAE,IAAE,OAAO,IAAI,eAAe,IAAE;AAAvT,QAA6T,IAAE,IAAE,OAAO,IAAI,kBAAkB,IAAE;AAAhW,QAAsW,IAAE,IAAE,OAAO,IAAI,uBAAuB,IAAE;AAA9Y,QAAoZ,IAAE,IAAE,OAAO,IAAI,mBAAmB,IAAE;AAAxb,QAA8b,IAAE,IAAE,OAAO,IAAI,gBAAgB,IAAE;AAA/d,QAAqe,IAAE,IACpf,OAAO,IAAI,qBAAqB,IAAE;AADrB,QAC2B,IAAE,IAAE,OAAO,IAAI,YAAY,IAAE;AADxD,QAC8D,IAAE,IAAE,OAAO,IAAI,YAAY,IAAE;AAD3F,QACiG,IAAE,IAAE,OAAO,IAAI,aAAa,IAAE;AAD/H,QACqI,IAAE,IAAE,OAAO,IAAI,mBAAmB,IAAE;AADzK,QAC+K,IAAE,IAAE,OAAO,IAAI,iBAAiB,IAAE;AADjN,QACuN,IAAE,IAAE,OAAO,IAAI,aAAa,IAAE;AAClQ,aAAS,EAAE,GAAE;AAAC,UAAG,aAAW,OAAO,KAAG,SAAO,GAAE;AAAC,YAAI,IAAE,EAAE;AAAS,gBAAO,GAAE;AAAA,UAAC,KAAK;AAAE,oBAAO,IAAE,EAAE,MAAK,GAAE;AAAA,cAAC,KAAK;AAAA,cAAE,KAAK;AAAA,cAAE,KAAK;AAAA,cAAE,KAAK;AAAA,cAAE,KAAK;AAAA,cAAE,KAAK;AAAE,uBAAO;AAAA,cAAE;AAAQ,wBAAO,IAAE,KAAG,EAAE,UAAS,GAAE;AAAA,kBAAC,KAAK;AAAA,kBAAE,KAAK;AAAA,kBAAE,KAAK;AAAA,kBAAE,KAAK;AAAA,kBAAE,KAAK;AAAE,2BAAO;AAAA,kBAAE;AAAQ,2BAAO;AAAA,gBAAC;AAAA,YAAC;AAAA,UAAC,KAAK;AAAE,mBAAO;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC;AAAC,aAAS,EAAE,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAAC,YAAQ,YAAU;AAAE,YAAQ,iBAAe;AAAE,YAAQ,kBAAgB;AAAE,YAAQ,kBAAgB;AAAE,YAAQ,UAAQ;AAAE,YAAQ,aAAW;AAAE,YAAQ,WAAS;AAAE,YAAQ,OAAK;AAAE,YAAQ,OAAK;AAAE,YAAQ,SAAO;AAChf,YAAQ,WAAS;AAAE,YAAQ,aAAW;AAAE,YAAQ,WAAS;AAAE,YAAQ,cAAY,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,KAAG,EAAE,CAAC,MAAI;AAAA,IAAC;AAAE,YAAQ,mBAAiB;AAAE,YAAQ,oBAAkB,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAAE,YAAQ,oBAAkB,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAAE,YAAQ,YAAU,SAAS,GAAE;AAAC,aAAM,aAAW,OAAO,KAAG,SAAO,KAAG,EAAE,aAAW;AAAA,IAAC;AAAE,YAAQ,eAAa,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAAE,YAAQ,aAAW,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAAE,YAAQ,SAAO,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAC1d,YAAQ,SAAO,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAAE,YAAQ,WAAS,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAAE,YAAQ,aAAW,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAAE,YAAQ,eAAa,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAAE,YAAQ,aAAW,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAC1O,YAAQ,qBAAmB,SAAS,GAAE;AAAC,aAAM,aAAW,OAAO,KAAG,eAAa,OAAO,KAAG,MAAI,KAAG,MAAI,KAAG,MAAI,KAAG,MAAI,KAAG,MAAI,KAAG,MAAI,KAAG,aAAW,OAAO,KAAG,SAAO,MAAI,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW;AAAA,IAAE;AAAE,YAAQ,SAAO;AAAA;AAAA;;;ACdnU;AAAA;AAAA;AAaA,QAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,OAAC,WAAW;AACd;AAIA,YAAI,YAAY,OAAO,WAAW,cAAc,OAAO;AACvD,YAAI,qBAAqB,YAAY,OAAO,IAAI,eAAe,IAAI;AACnE,YAAI,oBAAoB,YAAY,OAAO,IAAI,cAAc,IAAI;AACjE,YAAI,sBAAsB,YAAY,OAAO,IAAI,gBAAgB,IAAI;AACrE,YAAI,yBAAyB,YAAY,OAAO,IAAI,mBAAmB,IAAI;AAC3E,YAAI,sBAAsB,YAAY,OAAO,IAAI,gBAAgB,IAAI;AACrE,YAAI,sBAAsB,YAAY,OAAO,IAAI,gBAAgB,IAAI;AACrE,YAAI,qBAAqB,YAAY,OAAO,IAAI,eAAe,IAAI;AAGnE,YAAI,wBAAwB,YAAY,OAAO,IAAI,kBAAkB,IAAI;AACzE,YAAI,6BAA6B,YAAY,OAAO,IAAI,uBAAuB,IAAI;AACnF,YAAI,yBAAyB,YAAY,OAAO,IAAI,mBAAmB,IAAI;AAC3E,YAAI,sBAAsB,YAAY,OAAO,IAAI,gBAAgB,IAAI;AACrE,YAAI,2BAA2B,YAAY,OAAO,IAAI,qBAAqB,IAAI;AAC/E,YAAI,kBAAkB,YAAY,OAAO,IAAI,YAAY,IAAI;AAC7D,YAAI,kBAAkB,YAAY,OAAO,IAAI,YAAY,IAAI;AAC7D,YAAI,mBAAmB,YAAY,OAAO,IAAI,aAAa,IAAI;AAC/D,YAAI,yBAAyB,YAAY,OAAO,IAAI,mBAAmB,IAAI;AAC3E,YAAI,uBAAuB,YAAY,OAAO,IAAI,iBAAiB,IAAI;AACvE,YAAI,mBAAmB,YAAY,OAAO,IAAI,aAAa,IAAI;AAE/D,iBAAS,mBAAmB,MAAM;AAChC,iBAAO,OAAO,SAAS,YAAY,OAAO,SAAS;AAAA,UACnD,SAAS,uBAAuB,SAAS,8BAA8B,SAAS,uBAAuB,SAAS,0BAA0B,SAAS,uBAAuB,SAAS,4BAA4B,OAAO,SAAS,YAAY,SAAS,SAAS,KAAK,aAAa,mBAAmB,KAAK,aAAa,mBAAmB,KAAK,aAAa,uBAAuB,KAAK,aAAa,sBAAsB,KAAK,aAAa,0BAA0B,KAAK,aAAa,0BAA0B,KAAK,aAAa,wBAAwB,KAAK,aAAa,oBAAoB,KAAK,aAAa;AAAA,QACplB;AAEA,iBAAS,OAAO,QAAQ;AACtB,cAAI,OAAO,WAAW,YAAY,WAAW,MAAM;AACjD,gBAAI,WAAW,OAAO;AAEtB,oBAAQ,UAAU;AAAA,cAChB,KAAK;AACH,oBAAI,OAAO,OAAO;AAElB,wBAAQ,MAAM;AAAA,kBACZ,KAAK;AAAA,kBACL,KAAK;AAAA,kBACL,KAAK;AAAA,kBACL,KAAK;AAAA,kBACL,KAAK;AAAA,kBACL,KAAK;AACH,2BAAO;AAAA,kBAET;AACE,wBAAI,eAAe,QAAQ,KAAK;AAEhC,4BAAQ,cAAc;AAAA,sBACpB,KAAK;AAAA,sBACL,KAAK;AAAA,sBACL,KAAK;AAAA,sBACL,KAAK;AAAA,sBACL,KAAK;AACH,+BAAO;AAAA,sBAET;AACE,+BAAO;AAAA,oBACX;AAAA,gBAEJ;AAAA,cAEF,KAAK;AACH,uBAAO;AAAA,YACX;AAAA,UACF;AAEA,iBAAO;AAAA,QACT;AAEA,YAAI,YAAY;AAChB,YAAI,iBAAiB;AACrB,YAAI,kBAAkB;AACtB,YAAI,kBAAkB;AACtB,YAAI,UAAU;AACd,YAAI,aAAa;AACjB,YAAIA,YAAW;AACf,YAAI,OAAO;AACX,YAAI,OAAO;AACX,YAAI,SAAS;AACb,YAAI,WAAW;AACf,YAAI,aAAa;AACjB,YAAI,WAAW;AACf,YAAI,sCAAsC;AAE1C,iBAAS,YAAY,QAAQ;AAC3B;AACE,gBAAI,CAAC,qCAAqC;AACxC,oDAAsC;AAEtC,sBAAQ,MAAM,EAAE,+KAAyL;AAAA,YAC3M;AAAA,UACF;AAEA,iBAAO,iBAAiB,MAAM,KAAK,OAAO,MAAM,MAAM;AAAA,QACxD;AACA,iBAAS,iBAAiB,QAAQ;AAChC,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,kBAAkB,QAAQ;AACjC,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,kBAAkB,QAAQ;AACjC,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,UAAU,QAAQ;AACzB,iBAAO,OAAO,WAAW,YAAY,WAAW,QAAQ,OAAO,aAAa;AAAA,QAC9E;AACA,iBAAS,aAAa,QAAQ;AAC5B,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,WAAW,QAAQ;AAC1B,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,OAAO,QAAQ;AACtB,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,OAAO,QAAQ;AACtB,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,SAAS,QAAQ;AACxB,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,WAAW,QAAQ;AAC1B,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,aAAa,QAAQ;AAC5B,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,WAAW,QAAQ;AAC1B,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AAEA,gBAAQ,YAAY;AACpB,gBAAQ,iBAAiB;AACzB,gBAAQ,kBAAkB;AAC1B,gBAAQ,kBAAkB;AAC1B,gBAAQ,UAAU;AAClB,gBAAQ,aAAa;AACrB,gBAAQ,WAAWA;AACnB,gBAAQ,OAAO;AACf,gBAAQ,OAAO;AACf,gBAAQ,SAAS;AACjB,gBAAQ,WAAW;AACnB,gBAAQ,aAAa;AACrB,gBAAQ,WAAW;AACnB,gBAAQ,cAAc;AACtB,gBAAQ,mBAAmB;AAC3B,gBAAQ,oBAAoB;AAC5B,gBAAQ,oBAAoB;AAC5B,gBAAQ,YAAY;AACpB,gBAAQ,eAAe;AACvB,gBAAQ,aAAa;AACrB,gBAAQ,SAAS;AACjB,gBAAQ,SAAS;AACjB,gBAAQ,WAAW;AACnB,gBAAQ,aAAa;AACrB,gBAAQ,eAAe;AACvB,gBAAQ,aAAa;AACrB,gBAAQ,qBAAqB;AAC7B,gBAAQ,SAAS;AAAA,MACf,GAAG;AAAA,IACL;AAAA;AAAA;;;ACpLA;AAAA;AAAA;AAEA,QAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,aAAO,UAAU;AAAA,IACnB,OAAO;AACL,aAAO,UAAU;AAAA,IACnB;AAAA;AAAA;;;ACNA;AAAA;AAAA;AAQA,QAAI,wBAAwB,OAAO;AACnC,QAAI,iBAAiB,OAAO,UAAU;AACtC,QAAI,mBAAmB,OAAO,UAAU;AAExC,aAAS,SAAS,KAAK;AACtB,UAAI,QAAQ,QAAQ,QAAQ,QAAW;AACtC,cAAM,IAAI,UAAU,uDAAuD;AAAA,MAC5E;AAEA,aAAO,OAAO,GAAG;AAAA,IAClB;AAEA,aAAS,kBAAkB;AAC1B,UAAI;AACH,YAAI,CAAC,OAAO,QAAQ;AACnB,iBAAO;AAAA,QACR;AAKA,YAAI,QAAQ,IAAI,OAAO,KAAK;AAC5B,cAAM,CAAC,IAAI;AACX,YAAI,OAAO,oBAAoB,KAAK,EAAE,CAAC,MAAM,KAAK;AACjD,iBAAO;AAAA,QACR;AAGA,YAAI,QAAQ,CAAC;AACb,iBAAS,IAAI,GAAG,IAAI,IAAI,KAAK;AAC5B,gBAAM,MAAM,OAAO,aAAa,CAAC,CAAC,IAAI;AAAA,QACvC;AACA,YAAI,SAAS,OAAO,oBAAoB,KAAK,EAAE,IAAI,SAAU,GAAG;AAC/D,iBAAO,MAAM,CAAC;AAAA,QACf,CAAC;AACD,YAAI,OAAO,KAAK,EAAE,MAAM,cAAc;AACrC,iBAAO;AAAA,QACR;AAGA,YAAI,QAAQ,CAAC;AACb,+BAAuB,MAAM,EAAE,EAAE,QAAQ,SAAU,QAAQ;AAC1D,gBAAM,MAAM,IAAI;AAAA,QACjB,CAAC;AACD,YAAI,OAAO,KAAK,OAAO,OAAO,CAAC,GAAG,KAAK,CAAC,EAAE,KAAK,EAAE,MAC/C,wBAAwB;AACzB,iBAAO;AAAA,QACR;AAEA,eAAO;AAAA,MACR,SAAS,KAAK;AAEb,eAAO;AAAA,MACR;AAAA,IACD;AAEA,WAAO,UAAU,gBAAgB,IAAI,OAAO,SAAS,SAAU,QAAQ,QAAQ;AAC9E,UAAI;AACJ,UAAI,KAAK,SAAS,MAAM;AACxB,UAAI;AAEJ,eAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAC1C,eAAO,OAAO,UAAU,CAAC,CAAC;AAE1B,iBAAS,OAAO,MAAM;AACrB,cAAI,eAAe,KAAK,MAAM,GAAG,GAAG;AACnC,eAAG,GAAG,IAAI,KAAK,GAAG;AAAA,UACnB;AAAA,QACD;AAEA,YAAI,uBAAuB;AAC1B,oBAAU,sBAAsB,IAAI;AACpC,mBAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACxC,gBAAI,iBAAiB,KAAK,MAAM,QAAQ,CAAC,CAAC,GAAG;AAC5C,iBAAG,QAAQ,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;AAAA,YACjC;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAEA,aAAO;AAAA,IACR;AAAA;AAAA;;;ACzFA;AAAA;AAAA;AASA,QAAI,uBAAuB;AAE3B,WAAO,UAAU;AAAA;AAAA;;;ACXjB;AAAA;AAAA;AAAA,WAAO,UAAU,SAAS,KAAK,KAAK,OAAO,UAAU,cAAc;AAAA;AAAA;;;ACAnE;AAAA;AAAA;AASA,QAAI,eAAe,WAAW;AAAA,IAAC;AAE/B,QAAI,QAAQ,IAAI,aAAa,cAAc;AACrC,6BAAuB;AACvB,2BAAqB,CAAC;AACtB,YAAM;AAEV,qBAAe,SAASC,OAAM;AAC5B,YAAI,UAAU,cAAcA;AAC5B,YAAI,OAAO,YAAY,aAAa;AAClC,kBAAQ,MAAM,OAAO;AAAA,QACvB;AACA,YAAI;AAIF,gBAAM,IAAI,MAAM,OAAO;AAAA,QACzB,SAAS,GAAG;AAAA,QAAO;AAAA,MACrB;AAAA,IACF;AAhBM;AACA;AACA;AA2BN,aAAS,eAAe,WAAW,QAAQ,UAAU,eAAe,UAAU;AAC5E,UAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,iBAAS,gBAAgB,WAAW;AAClC,cAAI,IAAI,WAAW,YAAY,GAAG;AAChC,gBAAI;AAIJ,gBAAI;AAGF,kBAAI,OAAO,UAAU,YAAY,MAAM,YAAY;AACjD,oBAAI,MAAM;AAAA,mBACP,iBAAiB,iBAAiB,OAAO,WAAW,YAAY,eAAe,+FACC,OAAO,UAAU,YAAY,IAAI;AAAA,gBAEpH;AACA,oBAAI,OAAO;AACX,sBAAM;AAAA,cACR;AACA,sBAAQ,UAAU,YAAY,EAAE,QAAQ,cAAc,eAAe,UAAU,MAAM,oBAAoB;AAAA,YAC3G,SAAS,IAAI;AACX,sBAAQ;AAAA,YACV;AACA,gBAAI,SAAS,EAAE,iBAAiB,QAAQ;AACtC;AAAA,iBACG,iBAAiB,iBAAiB,6BACnC,WAAW,OAAO,eAAe,6FAC6B,OAAO,QAAQ;AAAA,cAI/E;AAAA,YACF;AACA,gBAAI,iBAAiB,SAAS,EAAE,MAAM,WAAW,qBAAqB;AAGpE,iCAAmB,MAAM,OAAO,IAAI;AAEpC,kBAAI,QAAQ,WAAW,SAAS,IAAI;AAEpC;AAAA,gBACE,YAAY,WAAW,YAAY,MAAM,WAAW,SAAS,OAAO,QAAQ;AAAA,cAC9E;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAOA,mBAAe,oBAAoB,WAAW;AAC5C,UAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,6BAAqB,CAAC;AAAA,MACxB;AAAA,IACF;AAEA,WAAO,UAAU;AAAA;AAAA;;;ACtGjB;AAAA;AAAA;AASA,QAAI,UAAU;AACd,QAAI,SAAS;AAEb,QAAI,uBAAuB;AAC3B,QAAI,MAAM;AACV,QAAI,iBAAiB;AAErB,QAAI,eAAe,WAAW;AAAA,IAAC;AAE/B,QAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,qBAAe,SAASC,OAAM;AAC5B,YAAI,UAAU,cAAcA;AAC5B,YAAI,OAAO,YAAY,aAAa;AAClC,kBAAQ,MAAM,OAAO;AAAA,QACvB;AACA,YAAI;AAIF,gBAAM,IAAI,MAAM,OAAO;AAAA,QACzB,SAAS,GAAG;AAAA,QAAC;AAAA,MACf;AAAA,IACF;AAEA,aAAS,+BAA+B;AACtC,aAAO;AAAA,IACT;AAEA,WAAO,UAAU,SAAS,gBAAgB,qBAAqB;AAE7D,UAAI,kBAAkB,OAAO,WAAW,cAAc,OAAO;AAC7D,UAAI,uBAAuB;AAgB3B,eAAS,cAAc,eAAe;AACpC,YAAI,aAAa,kBAAkB,mBAAmB,cAAc,eAAe,KAAK,cAAc,oBAAoB;AAC1H,YAAI,OAAO,eAAe,YAAY;AACpC,iBAAO;AAAA,QACT;AAAA,MACF;AAiDA,UAAI,YAAY;AAIhB,UAAI,iBAAiB;AAAA,QACnB,OAAO,2BAA2B,OAAO;AAAA,QACzC,QAAQ,2BAA2B,QAAQ;AAAA,QAC3C,MAAM,2BAA2B,SAAS;AAAA,QAC1C,MAAM,2BAA2B,UAAU;AAAA,QAC3C,QAAQ,2BAA2B,QAAQ;AAAA,QAC3C,QAAQ,2BAA2B,QAAQ;AAAA,QAC3C,QAAQ,2BAA2B,QAAQ;AAAA,QAC3C,QAAQ,2BAA2B,QAAQ;AAAA,QAE3C,KAAK,qBAAqB;AAAA,QAC1B,SAAS;AAAA,QACT,SAAS,yBAAyB;AAAA,QAClC,aAAa,6BAA6B;AAAA,QAC1C,YAAY;AAAA,QACZ,MAAM,kBAAkB;AAAA,QACxB,UAAU;AAAA,QACV,OAAO;AAAA,QACP,WAAW;AAAA,QACX,OAAO;AAAA,QACP,OAAO;AAAA,MACT;AAOA,eAAS,GAAG,GAAG,GAAG;AAEhB,YAAI,MAAM,GAAG;AAGX,iBAAO,MAAM,KAAK,IAAI,MAAM,IAAI;AAAA,QAClC,OAAO;AAEL,iBAAO,MAAM,KAAK,MAAM;AAAA,QAC1B;AAAA,MACF;AAUA,eAAS,cAAc,SAAS,MAAM;AACpC,aAAK,UAAU;AACf,aAAK,OAAO,QAAQ,OAAO,SAAS,WAAW,OAAM,CAAC;AACtD,aAAK,QAAQ;AAAA,MACf;AAEA,oBAAc,YAAY,MAAM;AAEhC,eAAS,2BAA2B,UAAU;AAC5C,YAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,cAAI,0BAA0B,CAAC;AAC/B,cAAI,6BAA6B;AAAA,QACnC;AACA,iBAAS,UAAU,YAAY,OAAO,UAAU,eAAe,UAAU,cAAc,QAAQ;AAC7F,0BAAgB,iBAAiB;AACjC,yBAAe,gBAAgB;AAE/B,cAAI,WAAW,sBAAsB;AACnC,gBAAI,qBAAqB;AAEvB,kBAAI,MAAM,IAAI;AAAA,gBACZ;AAAA,cAGF;AACA,kBAAI,OAAO;AACX,oBAAM;AAAA,YACR,WAAW,QAAQ,IAAI,aAAa,gBAAgB,OAAO,YAAY,aAAa;AAElF,kBAAI,WAAW,gBAAgB,MAAM;AACrC,kBACE,CAAC,wBAAwB,QAAQ;AAAA,cAEjC,6BAA6B,GAC7B;AACA;AAAA,kBACE,6EACuB,eAAe,gBAAgB,gBAAgB;AAAA,gBAIxE;AACA,wCAAwB,QAAQ,IAAI;AACpC;AAAA,cACF;AAAA,YACF;AAAA,UACF;AACA,cAAI,MAAM,QAAQ,KAAK,MAAM;AAC3B,gBAAI,YAAY;AACd,kBAAI,MAAM,QAAQ,MAAM,MAAM;AAC5B,uBAAO,IAAI,cAAc,SAAS,WAAW,OAAO,eAAe,8BAA8B,SAAS,gBAAgB,8BAA8B;AAAA,cAC1J;AACA,qBAAO,IAAI,cAAc,SAAS,WAAW,OAAO,eAAe,iCAAiC,MAAM,gBAAgB,mCAAmC;AAAA,YAC/J;AACA,mBAAO;AAAA,UACT,OAAO;AACL,mBAAO,SAAS,OAAO,UAAU,eAAe,UAAU,YAAY;AAAA,UACxE;AAAA,QACF;AAEA,YAAI,mBAAmB,UAAU,KAAK,MAAM,KAAK;AACjD,yBAAiB,aAAa,UAAU,KAAK,MAAM,IAAI;AAEvD,eAAO;AAAA,MACT;AAEA,eAAS,2BAA2B,cAAc;AAChD,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc,QAAQ;AAChF,cAAI,YAAY,MAAM,QAAQ;AAC9B,cAAI,WAAW,YAAY,SAAS;AACpC,cAAI,aAAa,cAAc;AAI7B,gBAAI,cAAc,eAAe,SAAS;AAE1C,mBAAO,IAAI;AAAA,cACT,aAAa,WAAW,OAAO,eAAe,gBAAgB,MAAM,cAAc,oBAAoB,gBAAgB,mBAAmB,MAAM,eAAe;AAAA,cAC9J,EAAC,aAA0B;AAAA,YAC7B;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,uBAAuB;AAC9B,eAAO,2BAA2B,4BAA4B;AAAA,MAChE;AAEA,eAAS,yBAAyB,aAAa;AAC7C,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,OAAO,gBAAgB,YAAY;AACrC,mBAAO,IAAI,cAAc,eAAe,eAAe,qBAAqB,gBAAgB,iDAAiD;AAAA,UAC/I;AACA,cAAI,YAAY,MAAM,QAAQ;AAC9B,cAAI,CAAC,MAAM,QAAQ,SAAS,GAAG;AAC7B,gBAAI,WAAW,YAAY,SAAS;AACpC,mBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,gBAAgB,MAAM,WAAW,oBAAoB,gBAAgB,wBAAwB;AAAA,UACtK;AACA,mBAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AACzC,gBAAI,QAAQ,YAAY,WAAW,GAAG,eAAe,UAAU,eAAe,MAAM,IAAI,KAAK,oBAAoB;AACjH,gBAAI,iBAAiB,OAAO;AAC1B,qBAAO;AAAA,YACT;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,2BAA2B;AAClC,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,YAAY,MAAM,QAAQ;AAC9B,cAAI,CAAC,eAAe,SAAS,GAAG;AAC9B,gBAAI,WAAW,YAAY,SAAS;AACpC,mBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,gBAAgB,MAAM,WAAW,oBAAoB,gBAAgB,qCAAqC;AAAA,UACnL;AACA,iBAAO;AAAA,QACT;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,+BAA+B;AACtC,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,YAAY,MAAM,QAAQ;AAC9B,cAAI,CAAC,QAAQ,mBAAmB,SAAS,GAAG;AAC1C,gBAAI,WAAW,YAAY,SAAS;AACpC,mBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,gBAAgB,MAAM,WAAW,oBAAoB,gBAAgB,0CAA0C;AAAA,UACxL;AACA,iBAAO;AAAA,QACT;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,0BAA0B,eAAe;AAChD,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,EAAE,MAAM,QAAQ,aAAa,gBAAgB;AAC/C,gBAAI,oBAAoB,cAAc,QAAQ;AAC9C,gBAAI,kBAAkB,aAAa,MAAM,QAAQ,CAAC;AAClD,mBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,gBAAgB,MAAM,kBAAkB,oBAAoB,gBAAgB,mBAAmB,kBAAkB,oBAAoB,KAAK;AAAA,UACnN;AACA,iBAAO;AAAA,QACT;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,sBAAsB,gBAAgB;AAC7C,YAAI,CAAC,MAAM,QAAQ,cAAc,GAAG;AAClC,cAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,gBAAI,UAAU,SAAS,GAAG;AACxB;AAAA,gBACE,iEAAiE,UAAU,SAAS;AAAA,cAEtF;AAAA,YACF,OAAO;AACL,2BAAa,wDAAwD;AAAA,YACvE;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AAEA,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,YAAY,MAAM,QAAQ;AAC9B,mBAAS,IAAI,GAAG,IAAI,eAAe,QAAQ,KAAK;AAC9C,gBAAI,GAAG,WAAW,eAAe,CAAC,CAAC,GAAG;AACpC,qBAAO;AAAA,YACT;AAAA,UACF;AAEA,cAAI,eAAe,KAAK,UAAU,gBAAgB,SAAS,SAAS,KAAK,OAAO;AAC9E,gBAAI,OAAO,eAAe,KAAK;AAC/B,gBAAI,SAAS,UAAU;AACrB,qBAAO,OAAO,KAAK;AAAA,YACrB;AACA,mBAAO;AAAA,UACT,CAAC;AACD,iBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,iBAAiB,OAAO,SAAS,IAAI,QAAQ,kBAAkB,gBAAgB,wBAAwB,eAAe,IAAI;AAAA,QACnM;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,0BAA0B,aAAa;AAC9C,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,OAAO,gBAAgB,YAAY;AACrC,mBAAO,IAAI,cAAc,eAAe,eAAe,qBAAqB,gBAAgB,kDAAkD;AAAA,UAChJ;AACA,cAAI,YAAY,MAAM,QAAQ;AAC9B,cAAI,WAAW,YAAY,SAAS;AACpC,cAAI,aAAa,UAAU;AACzB,mBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,gBAAgB,MAAM,WAAW,oBAAoB,gBAAgB,yBAAyB;AAAA,UACvK;AACA,mBAAS,OAAO,WAAW;AACzB,gBAAI,IAAI,WAAW,GAAG,GAAG;AACvB,kBAAI,QAAQ,YAAY,WAAW,KAAK,eAAe,UAAU,eAAe,MAAM,KAAK,oBAAoB;AAC/G,kBAAI,iBAAiB,OAAO;AAC1B,uBAAO;AAAA,cACT;AAAA,YACF;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,uBAAuB,qBAAqB;AACnD,YAAI,CAAC,MAAM,QAAQ,mBAAmB,GAAG;AACvC,kBAAQ,IAAI,aAAa,eAAe,aAAa,wEAAwE,IAAI;AACjI,iBAAO;AAAA,QACT;AAEA,iBAAS,IAAI,GAAG,IAAI,oBAAoB,QAAQ,KAAK;AACnD,cAAI,UAAU,oBAAoB,CAAC;AACnC,cAAI,OAAO,YAAY,YAAY;AACjC;AAAA,cACE,gGACc,yBAAyB,OAAO,IAAI,eAAe,IAAI;AAAA,YACvE;AACA,mBAAO;AAAA,UACT;AAAA,QACF;AAEA,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,gBAAgB,CAAC;AACrB,mBAASC,KAAI,GAAGA,KAAI,oBAAoB,QAAQA,MAAK;AACnD,gBAAIC,WAAU,oBAAoBD,EAAC;AACnC,gBAAI,gBAAgBC,SAAQ,OAAO,UAAU,eAAe,UAAU,cAAc,oBAAoB;AACxG,gBAAI,iBAAiB,MAAM;AACzB,qBAAO;AAAA,YACT;AACA,gBAAI,cAAc,QAAQ,IAAI,cAAc,MAAM,cAAc,GAAG;AACjE,4BAAc,KAAK,cAAc,KAAK,YAAY;AAAA,YACpD;AAAA,UACF;AACA,cAAI,uBAAwB,cAAc,SAAS,IAAK,6BAA6B,cAAc,KAAK,IAAI,IAAI,MAAK;AACrH,iBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,oBAAoB,MAAM,gBAAgB,MAAM,uBAAuB,IAAI;AAAA,QACpJ;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,oBAAoB;AAC3B,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,CAAC,OAAO,MAAM,QAAQ,CAAC,GAAG;AAC5B,mBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,oBAAoB,MAAM,gBAAgB,2BAA2B;AAAA,UAC9I;AACA,iBAAO;AAAA,QACT;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,sBAAsB,eAAe,UAAU,cAAc,KAAK,MAAM;AAC/E,eAAO,IAAI;AAAA,WACR,iBAAiB,iBAAiB,OAAO,WAAW,YAAY,eAAe,MAAM,MAAM,+FACX,OAAO;AAAA,QAC1F;AAAA,MACF;AAEA,eAAS,uBAAuB,YAAY;AAC1C,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,YAAY,MAAM,QAAQ;AAC9B,cAAI,WAAW,YAAY,SAAS;AACpC,cAAI,aAAa,UAAU;AACzB,mBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,gBAAgB,WAAW,QAAQ,kBAAkB,gBAAgB,wBAAwB;AAAA,UACtK;AACA,mBAAS,OAAO,YAAY;AAC1B,gBAAI,UAAU,WAAW,GAAG;AAC5B,gBAAI,OAAO,YAAY,YAAY;AACjC,qBAAO,sBAAsB,eAAe,UAAU,cAAc,KAAK,eAAe,OAAO,CAAC;AAAA,YAClG;AACA,gBAAI,QAAQ,QAAQ,WAAW,KAAK,eAAe,UAAU,eAAe,MAAM,KAAK,oBAAoB;AAC3G,gBAAI,OAAO;AACT,qBAAO;AAAA,YACT;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,6BAA6B,YAAY;AAChD,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,YAAY,MAAM,QAAQ;AAC9B,cAAI,WAAW,YAAY,SAAS;AACpC,cAAI,aAAa,UAAU;AACzB,mBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,gBAAgB,WAAW,QAAQ,kBAAkB,gBAAgB,wBAAwB;AAAA,UACtK;AAEA,cAAI,UAAU,OAAO,CAAC,GAAG,MAAM,QAAQ,GAAG,UAAU;AACpD,mBAAS,OAAO,SAAS;AACvB,gBAAI,UAAU,WAAW,GAAG;AAC5B,gBAAI,IAAI,YAAY,GAAG,KAAK,OAAO,YAAY,YAAY;AACzD,qBAAO,sBAAsB,eAAe,UAAU,cAAc,KAAK,eAAe,OAAO,CAAC;AAAA,YAClG;AACA,gBAAI,CAAC,SAAS;AACZ,qBAAO,IAAI;AAAA,gBACT,aAAa,WAAW,OAAO,eAAe,YAAY,MAAM,oBAAoB,gBAAgB,qBACjF,KAAK,UAAU,MAAM,QAAQ,GAAG,MAAM,IAAI,IAC7D,mBAAmB,KAAK,UAAU,OAAO,KAAK,UAAU,GAAG,MAAM,IAAI;AAAA,cACvE;AAAA,YACF;AACA,gBAAI,QAAQ,QAAQ,WAAW,KAAK,eAAe,UAAU,eAAe,MAAM,KAAK,oBAAoB;AAC3G,gBAAI,OAAO;AACT,qBAAO;AAAA,YACT;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AAEA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,OAAO,WAAW;AACzB,gBAAQ,OAAO,WAAW;AAAA,UACxB,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AACH,mBAAO;AAAA,UACT,KAAK;AACH,mBAAO,CAAC;AAAA,UACV,KAAK;AACH,gBAAI,MAAM,QAAQ,SAAS,GAAG;AAC5B,qBAAO,UAAU,MAAM,MAAM;AAAA,YAC/B;AACA,gBAAI,cAAc,QAAQ,eAAe,SAAS,GAAG;AACnD,qBAAO;AAAA,YACT;AAEA,gBAAI,aAAa,cAAc,SAAS;AACxC,gBAAI,YAAY;AACd,kBAAI,WAAW,WAAW,KAAK,SAAS;AACxC,kBAAI;AACJ,kBAAI,eAAe,UAAU,SAAS;AACpC,uBAAO,EAAE,OAAO,SAAS,KAAK,GAAG,MAAM;AACrC,sBAAI,CAAC,OAAO,KAAK,KAAK,GAAG;AACvB,2BAAO;AAAA,kBACT;AAAA,gBACF;AAAA,cACF,OAAO;AAEL,uBAAO,EAAE,OAAO,SAAS,KAAK,GAAG,MAAM;AACrC,sBAAI,QAAQ,KAAK;AACjB,sBAAI,OAAO;AACT,wBAAI,CAAC,OAAO,MAAM,CAAC,CAAC,GAAG;AACrB,6BAAO;AAAA,oBACT;AAAA,kBACF;AAAA,gBACF;AAAA,cACF;AAAA,YACF,OAAO;AACL,qBAAO;AAAA,YACT;AAEA,mBAAO;AAAA,UACT;AACE,mBAAO;AAAA,QACX;AAAA,MACF;AAEA,eAAS,SAAS,UAAU,WAAW;AAErC,YAAI,aAAa,UAAU;AACzB,iBAAO;AAAA,QACT;AAGA,YAAI,CAAC,WAAW;AACd,iBAAO;AAAA,QACT;AAGA,YAAI,UAAU,eAAe,MAAM,UAAU;AAC3C,iBAAO;AAAA,QACT;AAGA,YAAI,OAAO,WAAW,cAAc,qBAAqB,QAAQ;AAC/D,iBAAO;AAAA,QACT;AAEA,eAAO;AAAA,MACT;AAGA,eAAS,YAAY,WAAW;AAC9B,YAAI,WAAW,OAAO;AACtB,YAAI,MAAM,QAAQ,SAAS,GAAG;AAC5B,iBAAO;AAAA,QACT;AACA,YAAI,qBAAqB,QAAQ;AAI/B,iBAAO;AAAA,QACT;AACA,YAAI,SAAS,UAAU,SAAS,GAAG;AACjC,iBAAO;AAAA,QACT;AACA,eAAO;AAAA,MACT;AAIA,eAAS,eAAe,WAAW;AACjC,YAAI,OAAO,cAAc,eAAe,cAAc,MAAM;AAC1D,iBAAO,KAAK;AAAA,QACd;AACA,YAAI,WAAW,YAAY,SAAS;AACpC,YAAI,aAAa,UAAU;AACzB,cAAI,qBAAqB,MAAM;AAC7B,mBAAO;AAAA,UACT,WAAW,qBAAqB,QAAQ;AACtC,mBAAO;AAAA,UACT;AAAA,QACF;AACA,eAAO;AAAA,MACT;AAIA,eAAS,yBAAyB,OAAO;AACvC,YAAI,OAAO,eAAe,KAAK;AAC/B,gBAAQ,MAAM;AAAA,UACZ,KAAK;AAAA,UACL,KAAK;AACH,mBAAO,QAAQ;AAAA,UACjB,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AACH,mBAAO,OAAO;AAAA,UAChB;AACE,mBAAO;AAAA,QACX;AAAA,MACF;AAGA,eAAS,aAAa,WAAW;AAC/B,YAAI,CAAC,UAAU,eAAe,CAAC,UAAU,YAAY,MAAM;AACzD,iBAAO;AAAA,QACT;AACA,eAAO,UAAU,YAAY;AAAA,MAC/B;AAEA,qBAAe,iBAAiB;AAChC,qBAAe,oBAAoB,eAAe;AAClD,qBAAe,YAAY;AAE3B,aAAO;AAAA,IACT;AAAA;AAAA;;;ACjmBA;AAAA;AAAA;AASA,QAAI,uBAAuB;AAE3B,aAAS,gBAAgB;AAAA,IAAC;AAC1B,aAAS,yBAAyB;AAAA,IAAC;AACnC,2BAAuB,oBAAoB;AAE3C,WAAO,UAAU,WAAW;AAC1B,eAAS,KAAK,OAAO,UAAU,eAAe,UAAU,cAAc,QAAQ;AAC5E,YAAI,WAAW,sBAAsB;AAEnC;AAAA,QACF;AACA,YAAI,MAAM,IAAI;AAAA,UACZ;AAAA,QAGF;AACA,YAAI,OAAO;AACX,cAAM;AAAA,MACR;AAAC;AACD,WAAK,aAAa;AAClB,eAAS,UAAU;AACjB,eAAO;AAAA,MACT;AAAC;AAGD,UAAI,iBAAiB;AAAA,QACnB,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QAER,KAAK;AAAA,QACL,SAAS;AAAA,QACT,SAAS;AAAA,QACT,aAAa;AAAA,QACb,YAAY;AAAA,QACZ,MAAM;AAAA,QACN,UAAU;AAAA,QACV,OAAO;AAAA,QACP,WAAW;AAAA,QACX,OAAO;AAAA,QACP,OAAO;AAAA,QAEP,gBAAgB;AAAA,QAChB,mBAAmB;AAAA,MACrB;AAEA,qBAAe,YAAY;AAE3B,aAAO;AAAA,IACT;AAAA;AAAA;;;AChEA;AAAA;AAAA;AAOA,QAAI,QAAQ,IAAI,aAAa,cAAc;AACrC,gBAAU;AAIV,4BAAsB;AAC1B,aAAO,UAAU,kCAAqC,QAAQ,WAAW,mBAAmB;AAAA,IAC9F,OAAO;AAGL,aAAO,UAAU,mCAAsC;AAAA,IACzD;AAVM;AAIA;AAAA;AAAA;;;ACZN;AAAA;AAAA;AAAA;AAAA;AACA,SAAS,wBAAwB,SAAS;AACtC,QAAM,SAAS,CAAC,GAAG,QAAQ,MAAM;AACjC,QAAM,UAAU,OAAO,MAAM;AAC7B,MAAI,YAAY,QAAW;AACvB,WAAO,gBAAgB;AAAA,EAC3B;AACA,SAAO;AAAA,IACH,IAAI,KAAK,cAAc,SAAS;AAAA,MAC5B,MAAM,MAAM,QAAQ,QAAQ;AAAA,IAChC,GAAG;AACC,aAAO,QAAQ,IAAI,KAAK,cAAc,MAAM,EAAE,MAAM,MAAM;AACtD,eAAO,wBAAwB,EAAE,OAAO,CAAC,EAAE,IAAI,KAAK,cAAc,MAAM;AAAA,MAC5E,CAAC;AAAA,IACL;AAAA,IACA,IAAI,KAAK,OAAO;AACZ,aAAO,QAAQ,IAAI,KAAK,KAAK,EAAE,MAAM,MAAM;AACvC,eAAO,wBAAwB,EAAE,OAAO,CAAC,EAAE,IAAI,KAAK,KAAK;AAAA,MAC7D,CAAC;AAAA,IACL;AAAA,IACA,OAAO,KAAK;AACR,aAAO,QAAQ,OAAO,GAAG,EAAE,MAAM,MAAM;AACnC,eAAO,wBAAwB,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG;AAAA,MACzD,CAAC;AAAA,IACL;AAAA,IACA,QAAQ;AACJ,aAAO,QAAQ,MAAM,EAAE,MAAM,MAAM;AAC/B,eAAO,wBAAwB,EAAE,OAAO,CAAC,EAAE,MAAM;AAAA,MACrD,CAAC;AAAA,IACL;AAAA,EACJ;AACJ;AAEA,SAAS,kBAAkB;AACvB,SAAO;AAAA,IACH,IAAI,MAAM,cAAc,SAAS;AAAA,MAC7B,MAAM,MAAM,QAAQ,QAAQ;AAAA,IAChC,GAAG;AACC,YAAM,QAAQ,aAAa;AAC3B,aAAO,MACF,KAAK,YAAU,QAAQ,IAAI,CAAC,QAAQ,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,EACzD,KAAK,CAAC,CAAC,MAAM,MAAM,MAAM;AAAA,IAClC;AAAA,IACA,IAAI,MAAM,OAAO;AACb,aAAO,QAAQ,QAAQ,KAAK;AAAA,IAChC;AAAA,IACA,OAAO,MAAM;AACT,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAAA,IACA,QAAQ;AACJ,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAAA,EACJ;AACJ;AArDA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AAAA,SAAS,oBAAoB,UAAU,EAAE,cAAc,KAAK,GAAG;AAE3D,MAAI,QAAQ,CAAC;AACb,SAAO;AAAA,IACH,IAAI,KAAK,cAAc,SAAS;AAAA,MAC5B,MAAM,MAAM,QAAQ,QAAQ;AAAA,IAChC,GAAG;AACC,YAAM,cAAc,KAAK,UAAU,GAAG;AACtC,UAAI,eAAe,OAAO;AACtB,eAAO,QAAQ,QAAQ,QAAQ,eAAe,KAAK,MAAM,MAAM,WAAW,CAAC,IAAI,MAAM,WAAW,CAAC;AAAA,MACrG;AACA,YAAM,UAAU,aAAa;AAC7B,YAAM,OAAQ,UAAU,OAAO,SAAU,MAAM,QAAQ,QAAQ;AAC/D,aAAO,QAAQ,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,EAAE,KAAK,MAAM,OAAO;AAAA,IAClE;AAAA,IACA,IAAI,KAAK,OAAO;AAEZ,YAAM,KAAK,UAAU,GAAG,CAAC,IAAI,QAAQ,eAAe,KAAK,UAAU,KAAK,IAAI;AAC5E,aAAO,QAAQ,QAAQ,KAAK;AAAA,IAChC;AAAA,IACA,OAAO,KAAK;AAER,aAAO,MAAM,KAAK,UAAU,GAAG,CAAC;AAChC,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAAA,IACA,QAAQ;AACJ,cAAQ,CAAC;AACT,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAAA,EACJ;AACJ;AA9BA;AAAA;AAAA;AAAA;AAAA;;;ACAA,SAAS,WAAW,UAAU,OAAO,QAAQ;AACzC,QAAM,cAAc;AAAA,IAChB,qBAAqB;AAAA,IACrB,4BAA4B;AAAA,EAChC;AACA,SAAO;AAAA,IACH,UAAU;AACN,aAAO,aAAa,SAAS,gBAAgB,cAAc,CAAC;AAAA,IAChE;AAAA,IACA,kBAAkB;AACd,aAAO,aAAa,SAAS,wBAAwB,cAAc,CAAC;AAAA,IACxE;AAAA,EACJ;AACJ;AAwCA,SAAS,WAAW,MAAM,SAAS;AAC/B,MAAI,CAAC,SAAS;AACV,WAAO;AAAA,EACX;AACA,SAAO,KAAK,OAAO,EAAE,QAAQ,SAAO;AAEhC,SAAK,GAAG,IAAI,QAAQ,GAAG,EAAE,IAAI;AAAA,EACjC,CAAC;AACD,SAAO;AACX;AACA,SAAS,OAAO,WAAW,MAAM;AAE7B,MAAI,IAAI;AACR,SAAO,OAAO,QAAQ,OAAO,MAAM,mBAAmB,KAAK,GAAG,CAAC,CAAC;AACpE;AAnEA,IA6EM;AA7EN;AAAA;AAAA;AA6EA,IAAM,WAAW;AAAA;AAAA;AAAA;AAAA,MAIb,uBAAuB;AAAA;AAAA;AAAA;AAAA,MAIvB,eAAe;AAAA,IACnB;AAAA;AAAA;;;ACtFA;AAAA;AAAA;AAAA;AAAA,IAAM;AAAN;AAAA;AAAA;AAAA,IAAM,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,KAAK;AAAA,MACL,MAAM;AAAA,MACN,KAAK;AAAA,IACT;AAAA;AAAA;;;ACLA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,SAAS,2BAA2B,gBAAgB,SAAS;AACzD,QAAM,UAAU,kBAAkB,CAAC;AACnC,QAAM,OAAO,QAAQ,QAAQ,CAAC;AAC9B,SAAO,KAAK,OAAO,EAAE,QAAQ,SAAO;AAChC,QAAI,CAAC,WAAW,WAAW,mBAAmB,QAAQ,WAAW,EAAE,QAAQ,GAAG,MAAM,IAAI;AACpF,WAAK,GAAG,IAAI,QAAQ,GAAG;AAAA,IAC3B;AAAA,EACJ,CAAC;AACD,SAAO;AAAA,IACH,MAAM,OAAO,QAAQ,IAAI,EAAE,SAAS,IAAI,OAAO;AAAA,IAC/C,SAAS,QAAQ,WAAW;AAAA,IAC5B,SAAS,QAAQ,WAAW,CAAC;AAAA,IAC7B,iBAAiB,QAAQ,mBAAmB,CAAC;AAAA,IAC7C,WAAW,QAAQ;AAAA,EACvB;AACJ;AA0BA,SAAS,mBAAmB,MAAM,SAAS,eAAe,IAAI;AAC1D,SAAO;AAAA,IACH,GAAG;AAAA,IACH;AAAA,IACA,YAAY,KAAK,IAAI;AAAA,EACzB;AACJ;AACA,SAAS,iBAAiB,MAAM;AAC5B,SAAO,KAAK,WAAW,eAAe,MAAM,KAAK,IAAI,IAAI,KAAK,aAAa;AAC/E;AACA,SAAS,wBAAwB,MAAM;AACnC,SAAQ,KAAK,WAAW,eAAe,aAAa,KAAK,IAAI,IAAI,KAAK,cAAc;AACxF;AAEA,SAAS,oBAAoB,SAAS;AAClC,MAAI,OAAO,YAAY,UAAU;AAC7B,WAAO;AAAA,MACH,UAAU;AAAA,MACV,KAAK;AAAA,MACL,QAAQ,SAAS;AAAA,IACrB;AAAA,EACJ;AACA,SAAO;AAAA,IACH,UAAU,QAAQ,YAAY;AAAA,IAC9B,KAAK,QAAQ;AAAA,IACb,QAAQ,QAAQ,UAAU,SAAS;AAAA,EACvC;AACJ;AAEA,SAAS,uBAAuB,YAAY,gBAAgB;AACxD,SAAO,QAAQ,IAAI,eAAe,IAAI,mBAAiB;AACnD,WAAO,WAAW,IAAI,eAAe,MAAM;AACvC,aAAO,QAAQ,QAAQ,mBAAmB,aAAa,CAAC;AAAA,IAC5D,CAAC;AAAA,EACL,CAAC,CAAC,EAAE,KAAK,mBAAiB;AACtB,UAAM,UAAU,cAAc,OAAO,UAAQ,iBAAiB,IAAI,CAAC;AACnE,UAAM,iBAAiB,cAAc,OAAO,UAAQ,wBAAwB,IAAI,CAAC;AAIjF,UAAM,iBAAiB,CAAC,GAAG,SAAS,GAAG,cAAc;AACrD,UAAM,0BAA0B,eAAe,SAAS,IAClD,eAAe,IAAI,UAAQ,oBAAoB,IAAI,CAAC,IACpD;AACN,WAAO;AAAA,MACH,WAAW,eAAe,aAAa;AAYnC,cAAM,oBAAoB,eAAe,WAAW,KAAK,kBAAkB,IACrE,IACA,eAAe,SAAS,IAAI;AAClC,eAAO,oBAAoB;AAAA,MAC/B;AAAA,MACA,gBAAgB;AAAA,IACpB;AAAA,EACJ,CAAC;AACL;AAuBA,SAAS,iBAAiB,aAAa,gBAAgB,SAAS,gBAAgB;AAC5E,QAAM,aAAa,CAAC;AAIpB,QAAM,OAAO,cAAc,SAAS,cAAc;AAClD,QAAM,UAAU,iBAAiB,aAAa,cAAc;AAC5D,QAAM,SAAS,QAAQ;AAEvB,QAAM,sBAAsB,QAAQ,WAAW,WAAW,MACpD,CAAC,IACD;AAAA,IACE,GAAG,QAAQ;AAAA,IACX,GAAG,eAAe;AAAA,EACtB;AACJ,QAAM,kBAAkB;AAAA,IACpB,mBAAmB,YAAY,UAAU;AAAA,IACzC,GAAG,YAAY;AAAA,IACf,GAAG;AAAA,IACH,GAAG,eAAe;AAAA,EACtB;AACA,MAAI,gBAAgB;AACpB,QAAM,QAAQ,CAAC,OACf,eAAe;AAIX,UAAM,OAAO,MAAM,IAAI;AACvB,QAAI,SAAS,QAAW;AACpB,YAAM,iBAAiB,6BAA6B,UAAU,CAAC;AAAA,IACnE;AACA,UAAM,UAAU;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA,KAAK,aAAa,MAAM,QAAQ,MAAM,eAAe;AAAA,MACrD,gBAAgB,WAAW,eAAe,YAAY,SAAS,OAAO;AAAA,MACtE,iBAAiB,WAAW,eAAe,eAAe,OAAO;AAAA,IACrE;AAMA,UAAM,mBAAmB,CAAC,aAAa;AACnC,YAAM,aAAa;AAAA,QACf,SAAS;AAAA,QACT;AAAA,QACA;AAAA,QACA,WAAW,MAAM;AAAA,MACrB;AAEA,iBAAW,KAAK,UAAU;AAC1B,aAAO;AAAA,IACX;AACA,UAAM,YAAY;AAAA,MACd,WAAW,cAAY,mBAAmB,QAAQ;AAAA,MAClD,QAAQ,UAAU;AACd,cAAM,aAAa,iBAAiB,QAAQ;AAK5C,YAAI,SAAS,YAAY;AACrB;AAAA,QACJ;AACA,eAAO,QAAQ,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAMf,YAAY,OAAO,KAAK,qBAAqB,6BAA6B,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAMrF,YAAY,WAAW,IAAI,MAAM,mBAAmB,MAAM,SAAS,aAAa,eAAe,YAAY,eAAe,IAAI,CAAC;AAAA,QACnI,CAAC,EAAE,KAAK,MAAM,MAAM,OAAO,UAAU,CAAC;AAAA,MAC1C;AAAA,MACA,OAAO,UAAU;AACb,yBAAiB,QAAQ;AACzB,cAAM,mBAAmB,UAAU,6BAA6B,UAAU,CAAC;AAAA,MAC/E;AAAA,IACJ;AACA,WAAO,YAAY,UAAU,KAAK,OAAO,EAAE,KAAK,cAAY;AACxD,aAAO,cAAc,UAAU,SAAS;AAAA,IAC5C,CAAC;AAAA,EACL;AASA,SAAO,uBAAuB,YAAY,YAAY,cAAc,EAAE,KAAK,aAAW;AAClF,WAAO,MAAM,CAAC,GAAG,QAAQ,cAAc,EAAE,QAAQ,GAAG,QAAQ,UAAU;AAAA,EAC1E,CAAC;AACL;AAEA,SAAS,kBAAkB,SAAS;AAChC,QAAM,EAAE,YAAY,QAAQ,WAAW,eAAe,gBAAgB,UAAU,WAAW,OAAO,iBAAiB,QAAS,IAAI;AAChI,QAAM,cAAc;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO,MAAM,IAAI,UAAQ,oBAAoB,IAAI,CAAC;AAAA,IAClD,KAAK,SAAS,gBAAgB;AAM1B,YAAM,uBAAuB,2BAA2B,gBAAgB,YAAY,SAAS,IAAI;AACjG,YAAM,yBAAyB,MAAM;AAMjC,eAAO,iBAAiB,aAAa,YAAY,MAAM,OAAO,WAAS,KAAK,SAAS,SAAS,UAAU,CAAC,GAAG,SAAS,oBAAoB;AAAA,MAC7I;AAMA,YAAM,YAAY,qBAAqB,cAAc,SAC/C,qBAAqB,YACrB,QAAQ;AAKd,UAAI,cAAc,MAAM;AACpB,eAAO,uBAAuB;AAAA,MAClC;AAMA,YAAM,MAAM;AAAA,QACR;AAAA,QACA;AAAA,QACA,aAAa;AAAA,UACT,iBAAiB,YAAY;AAAA,UAC7B,SAAS,YAAY;AAAA,QACzB;AAAA,MACJ;AAKA,aAAO,YAAY,eAAe,IAAI,KAAK,MAAM;AAK7C,eAAO,YAAY,cAAc,IAAI,KAAK,MAAM;AAC5C,iBAAQ,YAAY,cAMf,IAAI,KAAK,uBAAuB,CAAC,EACjC,KAAK,cAAY,QAAQ,IAAI,CAAC,YAAY,cAAc,OAAO,GAAG,GAAG,QAAQ,CAAC,GAAG,SAAO,QAAQ,IAAI,CAAC,YAAY,cAAc,OAAO,GAAG,GAAG,QAAQ,OAAO,GAAG,CAAC,CAAC,CAAC,EACjK,KAAK,CAAC,CAAC,GAAG,QAAQ,MAAM,QAAQ;AAAA,QACzC,CAAC;AAAA,MACL,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAMC,MAAM,cAAY,YAAY,eAAe,IAAI,KAAK,QAAQ;AAAA,MAClE,CAAC;AAAA,IACL;AAAA,IACA,MAAM,SAAS,gBAAgB;AAK3B,aAAO,iBAAiB,aAAa,YAAY,MAAM,OAAO,WAAS,KAAK,SAAS,SAAS,WAAW,CAAC,GAAG,SAAS,2BAA2B,gBAAgB,YAAY,SAAS,KAAK,CAAC;AAAA,IAChM;AAAA,EACJ;AACA,SAAO;AACX;AAEA,SAAS,gBAAgBC,UAAS;AAC9B,QAAM,YAAY;AAAA,IACd,OAAO,2BAA2BA,QAAO;AAAA,IACzC,IAAI,SAAS;AACT,YAAM,iBAAiB,KAAK,QAAQ,OAAO,GAAG,QAAQ,YAAY,SAAY,KAAK,QAAQ,OAAO,MAAM,EAAE;AAC1G,UAAI,UAAU,MAAM,QAAQ,cAAc,MAAM,IAAI;AAEhD,kBAAU,QAAQ,GAAG,UAAU,KAAK,GAAG,cAAc;AAAA,MACzD;AACA,aAAO;AAAA,IACX;AAAA,EACJ;AACA,SAAO;AACX;AAEA,SAAS,mBAAmB,UAAU;AAElC,MAAI;AACA,WAAO,KAAK,MAAM,SAAS,OAAO;AAAA,EACtC,SACO,GAAG;AACN,UAAM,2BAA2B,EAAE,SAAS,QAAQ;AAAA,EACxD;AACJ;AACA,SAAS,mBAAmB,EAAE,SAAS,OAAO,GAAG,YAAY;AAEzD,MAAI,UAAU;AAEd,MAAI;AACA,cAAU,KAAK,MAAM,OAAO,EAAE;AAAA,EAClC,SACO,GAAG;AAAA,EAEV;AACA,SAAO,eAAe,SAAS,QAAQ,UAAU;AACrD;AAGA,SAASC,QAAO,WAAW,MAAM;AAE7B,MAAI,IAAI;AACR,SAAO,OAAO,QAAQ,OAAO,MAAM,mBAAmB,KAAK,GAAG,CAAC,CAAC;AACpE;AAEA,SAAS,aAAa,MAAM,MAAM,iBAAiB;AAC/C,QAAM,0BAA0B,yBAAyB,eAAe;AAExE,MAAI,MAAM,GAAG,KAAK,QAAQ,MAAM,KAAK,GAAG,IAAI,KAAK,OAAO,CAAC,MAAM,MAAM,KAAK,OAAO,CAAC,IAAI,IAAI;AAC1F,MAAI,wBAAwB,QAAQ;AAChC,WAAO,IAAI,uBAAuB;AAAA,EACtC;AACA,SAAO;AACX;AACA,SAAS,yBAAyB,YAAY;AAC1C,QAAM,kBAAkB,CAAC,UAAU,OAAO,UAAU,SAAS,KAAK,KAAK,MAAM,qBACzE,OAAO,UAAU,SAAS,KAAK,KAAK,MAAM;AAC9C,SAAO,OAAO,KAAK,UAAU,EACxB,IAAI,SAAOA,QAAO,SAAS,KAAK,gBAAgB,WAAW,GAAG,CAAC,IAAI,KAAK,UAAU,WAAW,GAAG,CAAC,IAAI,WAAW,GAAG,CAAC,CAAC,EACrH,KAAK,GAAG;AACjB;AACA,SAAS,cAAc,SAAS,gBAAgB;AAC5C,MAAI,QAAQ,WAAW,WAAW,OAC7B,QAAQ,SAAS,UAAa,eAAe,SAAS,QAAY;AACnE,WAAO;AAAA,EACX;AACA,QAAM,OAAO,MAAM,QAAQ,QAAQ,IAAI,IACjC,QAAQ,OACR,EAAE,GAAG,QAAQ,MAAM,GAAG,eAAe,KAAK;AAChD,SAAO,KAAK,UAAU,IAAI;AAC9B;AACA,SAAS,iBAAiB,aAAa,gBAAgB;AACnD,QAAM,UAAU;AAAA,IACZ,GAAG,YAAY;AAAA,IACf,GAAG,eAAe;AAAA,EACtB;AACA,QAAM,oBAAoB,CAAC;AAC3B,SAAO,KAAK,OAAO,EAAE,QAAQ,YAAU;AACnC,UAAM,QAAQ,QAAQ,MAAM;AAG5B,sBAAkB,OAAO,YAAY,CAAC,IAAI;AAAA,EAC9C,CAAC;AACD,SAAO;AACX;AAEA,SAAS,6BAA6B,YAAY;AAC9C,SAAO,WAAW,IAAI,gBAAc,6BAA6B,UAAU,CAAC;AAChF;AACA,SAAS,6BAA6B,YAAY;AAC9C,QAAM,kBAAkB,WAAW,QAAQ,QAAQ,mBAAmB,IAChE,EAAE,qBAAqB,QAAQ,IAC/B,CAAC;AACP,SAAO;AAAA,IACH,GAAG;AAAA,IACH,SAAS;AAAA,MACL,GAAG,WAAW;AAAA,MACd,SAAS;AAAA,QACL,GAAG,WAAW,QAAQ;AAAA,QACtB,GAAG;AAAA,MACP;AAAA,IACJ;AAAA,EACJ;AACJ;AAEA,SAAS,eAAe,SAAS,QAAQ,uBAAuB;AAC5D,SAAO;AAAA,IACH,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACJ;AAEA,SAAS,2BAA2B,SAAS,UAAU;AACnD,SAAO;AAAA,IACH,MAAM;AAAA,IACN;AAAA,IACA;AAAA,EACJ;AACJ;AAEA,SAAS,iBAAiB,uBAAuB;AAC7C,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS;AAAA,IACT;AAAA,EACJ;AACJ;AAzcA,IAmBM,UAeA,gBAQA,kBAoEA,gBAGA,aAKA,WAGA;AAzHN;AAAA;AAAA;AAAA;AAmBA,IAAM,WAAW;AAAA;AAAA;AAAA;AAAA,MAIb,MAAM;AAAA;AAAA;AAAA;AAAA,MAIN,OAAO;AAAA;AAAA;AAAA;AAAA,MAIP,KAAK;AAAA,IACT;AAEA,IAAM,iBAAiB;AAAA,MACnB,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,WAAW;AAAA,IACf;AAIA,IAAM,mBAAmB,IAAI,KAAK;AAoElC,IAAM,iBAAiB,CAAC,EAAE,YAAY,OAAO,MAAM;AAC/C,aAAO,CAAC,cAAc,CAAC,CAAC,WAAW;AAAA,IACvC;AACA,IAAM,cAAc,CAAC,aAAa;AAC9B,YAAM,SAAS,SAAS;AACxB,YAAM,aAAa,SAAS;AAC5B,aAAQ,cAAc,eAAe,QAAQ,KAAM,CAAC,EAAE,SAAS,SAAS,KAAK,CAAC,EAAE,SAAS,SAAS;AAAA,IACtG;AACA,IAAM,YAAY,CAAC,EAAE,OAAO,MAAM;AAC9B,aAAO,CAAC,EAAE,SAAS,SAAS;AAAA,IAChC;AACA,IAAM,gBAAgB,CAAC,UAAU,aAAa;AAC1C,UAAI,YAAY,QAAQ,GAAG;AACvB,eAAO,SAAS,QAAQ,QAAQ;AAAA,MACpC;AACA,UAAI,UAAU,QAAQ,GAAG;AACrB,eAAO,SAAS,UAAU,QAAQ;AAAA,MACtC;AACA,aAAO,SAAS,OAAO,QAAQ;AAAA,IACnC;AAAA;AAAA;;;ACjIA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAIM,uBAoBA,WAUA,cASA,WASA,YASA;AA7DN;AAAA;AAAA;AAAA;AACA;AACA;AAEA,IAAM,wBAAwB,aAAW;AACrC,YAAM,SAAS,QAAQ,UAAU;AACjC,YAAM,OAAO,WAAW,SAAS,eAAe,QAAQ,OAAO,QAAQ,MAAM;AAC7E,YAAM,cAAc,kBAAkB;AAAA,QAClC,OAAO,CAAC,EAAE,KAAK,aAAa,MAAM,eAAe,CAAC;AAAA,QAClD,GAAG;AAAA,QACH,SAAS;AAAA,UACL,GAAG,KAAK,QAAQ;AAAA,UAChB,GAAG,EAAE,gBAAgB,mBAAmB;AAAA,UACxC,GAAG,QAAQ;AAAA,QACf;AAAA,QACA,iBAAiB;AAAA,UACb,GAAG,KAAK,gBAAgB;AAAA,UACxB,GAAG,QAAQ;AAAA,QACf;AAAA,MACJ,CAAC;AACD,YAAM,QAAQ,QAAQ;AACtB,aAAO,WAAW,EAAE,OAAO,YAAY,GAAG,QAAQ,OAAO;AAAA,IAC7D;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,eAAO,KAAK,YAAY,MAAM;AAAA,UAC1B,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAO,KAAK,YAAY,MAAM;AAAA,UAC1B,QAAQ,WAAW;AAAA,UACnB,MAAM,OAAO,gBAAgB,QAAQ;AAAA,QACzC,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM,OAAO,gBAAgB,QAAQ;AAAA,QACzC,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,aAAa,CAAC,SAAS;AACzB,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,aAAa,CAAC,SAAS;AACzB,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAO,KAAK,YAAY,MAAM;AAAA,UAC1B,QAAQ,WAAW;AAAA,UACnB,MAAM,OAAO,qBAAqB,QAAQ;AAAA,QAC9C,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAAA;AAAA;;;ACpEA;AAAA;AAAA,kBAAAC;AAAA,EAAA,kBAAAC;AAAA,EAAA,kBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA,gBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA,SAASD,YAAW,UAAU,OAAO,QAAQ;AACzC,QAAM,cAAc;AAAA,IAChB,qBAAqB;AAAA,IACrB,4BAA4B;AAAA,EAChC;AACA,SAAO;AAAA,IACH,UAAU;AACN,aAAO,aAAaF,UAAS,gBAAgB,cAAc,CAAC;AAAA,IAChE;AAAA,IACA,kBAAkB;AACd,aAAO,aAAaA,UAAS,wBAAwB,cAAc,CAAC;AAAA,IACxE;AAAA,EACJ;AACJ;AAEA,SAAS,uBAAuB,UAAU;AACtC,MAAI,eAAe;AACnB,QAAM,QAAQ,MAAM;AAChB;AACA,WAAO,IAAI,QAAQ,CAAC,YAAY;AAC5B,iBAAW,MAAM;AACb,gBAAQ,SAAS,KAAK,CAAC;AAAA,MAC3B,GAAG,KAAK,IAAI,MAAM,cAAc,GAAI,CAAC;AAAA,IACzC,CAAC;AAAA,EACL;AACA,SAAO,SAAS,KAAK;AACzB;AAEA,SAAS,sBAAsB,SAAS,OAAO,CAAC,WAAW,oBAAoB;AAC3E,SAAO,QAAQ,QAAQ;AAC3B,GAAG;AAEC,SAAO,OAAO,OAAO,SAAS;AAAA,IAC1B,KAAK,gBAAgB;AACjB,aAAO,sBAAsB,QACxB,KAAK,cAAY,QAAQ,IAAI,CAAC,KAAK,UAAU,cAAc,GAAG,QAAQ,CAAC,CAAC,EACxE,KAAK,oBAAkB,eAAe,CAAC,CAAC,CAAC;AAAA,IAClD;AAAA,EACJ,CAAC;AACL;AAGA,SAAS,QAAQ,OAAO;AACpB,MAAI,IAAI,MAAM,SAAS;AAEvB,OAAK,GAAG,IAAI,GAAG,KAAK;AAChB,UAAM,IAAI,KAAK,MAAM,KAAK,OAAO,KAAK,IAAI,EAAE;AAC5C,UAAM,IAAI,MAAM,CAAC;AACjB,UAAM,CAAC,IAAI,MAAM,CAAC;AAClB,UAAM,CAAC,IAAI;AAAA,EACf;AACA,SAAO;AACX;AACA,SAASC,YAAW,MAAM,SAAS;AAC/B,MAAI,CAAC,SAAS;AACV,WAAO;AAAA,EACX;AACA,SAAO,KAAK,OAAO,EAAE,QAAQ,SAAO;AAEhC,SAAK,GAAG,IAAI,QAAQ,GAAG,EAAE,IAAI;AAAA,EACjC,CAAC;AACD,SAAO;AACX;AACA,SAASE,QAAO,WAAW,MAAM;AAE7B,MAAI,IAAI;AACR,SAAO,OAAO,QAAQ,OAAO,MAAM,mBAAmB,KAAK,GAAG,CAAC,CAAC;AACpE;AAnEA,IAqEM,SAEA,SAMAH;AA7EN,IAAAI,0BAAA;AAAA;AAAA;AAqEA,IAAM,UAAU;AAEhB,IAAM,UAAU,CAAC,SAAS;AACtB,aAAO,MAAM;AACT,eAAO,KAAK,YAAY,UAAU,QAAQ;AAAA,MAC9C;AAAA,IACJ;AAEA,IAAMJ,YAAW;AAAA;AAAA;AAAA;AAAA,MAIb,uBAAuB;AAAA;AAAA;AAAA;AAAA,MAIvB,eAAe;AAAA,IACnB;AAAA;AAAA;;;ACtFA,SAASK,YAAW,UAAU,OAAO,QAAQ;AACzC,QAAM,cAAc;AAAA,IAChB,qBAAqB;AAAA,IACrB,4BAA4B;AAAA,EAChC;AACA,SAAO;AAAA,IACH,UAAU;AACN,aAAO,aAAaC,UAAS,gBAAgB,cAAc,CAAC;AAAA,IAChE;AAAA,IACA,kBAAkB;AACd,aAAO,aAAaA,UAAS,wBAAwB,cAAc,CAAC;AAAA,IACxE;AAAA,EACJ;AACJ;AAwCA,SAASC,YAAW,MAAM,SAAS;AAC/B,MAAI,CAAC,SAAS;AACV,WAAO;AAAA,EACX;AACA,SAAO,KAAK,OAAO,EAAE,QAAQ,SAAO;AAEhC,SAAK,GAAG,IAAI,QAAQ,GAAG,EAAE,IAAI;AAAA,EACjC,CAAC;AACD,SAAO;AACX;AA9DA,IA6EMD;AA7EN,IAAAE,0BAAA;AAAA;AAAA;AA6EA,IAAMF,YAAW;AAAA;AAAA;AAAA;AAAA,MAIb,uBAAuB;AAAA;AAAA;AAAA;AAAA,MAIvB,eAAe;AAAA,IACnB;AAAA;AAAA;;;ACtFA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAIM,6BAmBA,4BASA;AAhCN;AAAA;AAAA;AAAA,IAAAG;AACA;AACA;AAEA,IAAM,8BAA8B,aAAW;AAC3C,YAAM,SAAS,QAAQ,UAAU;AACjC,YAAM,OAAOC,YAAWC,UAAS,eAAe,QAAQ,OAAO,QAAQ,MAAM;AAC7E,YAAM,cAAc,kBAAkB;AAAA,QAClC,OAAO,CAAC,EAAE,KAAK,mBAAmB,MAAM,eAAe,CAAC;AAAA,QACxD,GAAG;AAAA,QACH,SAAS;AAAA,UACL,GAAG,KAAK,QAAQ;AAAA,UAChB,GAAG,EAAE,gBAAgB,mBAAmB;AAAA,UACxC,GAAG,QAAQ;AAAA,QACf;AAAA,QACA,iBAAiB;AAAA,UACb,GAAG,KAAK,gBAAgB;AAAA,UACxB,GAAG,QAAQ;AAAA,QACf;AAAA,MACJ,CAAC;AACD,aAAOC,YAAW,EAAE,OAAO,QAAQ,OAAO,YAAY,GAAG,QAAQ,OAAO;AAAA,IAC5E;AAEA,IAAM,6BAA6B,CAAC,SAAS;AACzC,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,6BAA6B,CAAC,SAAS;AACzC,aAAO,CAAC,yBAAyB,mBAAmB;AAChD,eAAO,KAAK,YAAY,MAAM;AAAA,UAC1B,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAAA;AAAA;;;ACxCA,SAASC,YAAW,UAAU,OAAO,QAAQ;AACzC,QAAM,cAAc;AAAA,IAChB,qBAAqB;AAAA,IACrB,4BAA4B;AAAA,EAChC;AACA,SAAO;AAAA,IACH,UAAU;AACN,aAAO,aAAaC,UAAS,gBAAgB,cAAc,CAAC;AAAA,IAChE;AAAA,IACA,kBAAkB;AACd,aAAO,aAAaA,UAAS,wBAAwB,cAAc,CAAC;AAAA,IACxE;AAAA,EACJ;AACJ;AAEA,SAASC,wBAAuB,UAAU;AACtC,MAAI,eAAe;AACnB,QAAM,QAAQ,MAAM;AAChB;AACA,WAAO,IAAI,QAAQ,CAAC,YAAY;AAC5B,iBAAW,MAAM;AACb,gBAAQ,SAAS,KAAK,CAAC;AAAA,MAC3B,GAAG,KAAK,IAAI,MAAM,cAAc,GAAI,CAAC;AAAA,IACzC,CAAC;AAAA,EACL;AACA,SAAO,SAAS,KAAK;AACzB;AAEA,SAASC,uBAAsB,SAAS,OAAO,CAAC,WAAW,oBAAoB;AAC3E,SAAO,QAAQ,QAAQ;AAC3B,GAAG;AAEC,SAAO,OAAO,OAAO,SAAS;AAAA,IAC1B,KAAK,gBAAgB;AACjB,aAAOA,uBAAsB,QACxB,KAAK,cAAY,QAAQ,IAAI,CAAC,KAAK,UAAU,cAAc,GAAG,QAAQ,CAAC,CAAC,EACxE,KAAK,oBAAkB,eAAe,CAAC,CAAC,CAAC;AAAA,IAClD;AAAA,EACJ,CAAC;AACL;AAGA,SAASC,SAAQ,OAAO;AACpB,MAAI,IAAI,MAAM,SAAS;AAEvB,OAAK,GAAG,IAAI,GAAG,KAAK;AAChB,UAAM,IAAI,KAAK,MAAM,KAAK,OAAO,KAAK,IAAI,EAAE;AAC5C,UAAM,IAAI,MAAM,CAAC;AACjB,UAAM,CAAC,IAAI,MAAM,CAAC;AAClB,UAAM,CAAC,IAAI;AAAA,EACf;AACA,SAAO;AACX;AACA,SAASC,YAAW,MAAM,SAAS;AAC/B,MAAI,CAAC,SAAS;AACV,WAAO;AAAA,EACX;AACA,SAAO,KAAK,OAAO,EAAE,QAAQ,SAAO;AAEhC,SAAK,GAAG,IAAI,QAAQ,GAAG,EAAE,IAAI;AAAA,EACjC,CAAC;AACD,SAAO;AACX;AACA,SAASC,QAAO,WAAW,MAAM;AAE7B,MAAI,IAAI;AACR,SAAO,OAAO,QAAQ,OAAO,MAAM,mBAAmB,KAAK,GAAG,CAAC,CAAC;AACpE;AAnEA,IA6EML;AA7EN,IAAAM,0BAAA;AAAA;AAAA;AA6EA,IAAMN,YAAW;AAAA;AAAA;AAAA;AAAA,MAIb,uBAAuB;AAAA;AAAA;AAAA;AAAA,MAIvB,eAAe;AAAA,IACnB;AAAA;AAAA;;;ACtFA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,SAAS,kBAAkB;AAE3B,SAAS,uBAAuB,SAAS;AACrC,QAAM,SAAS,CAAC,SAAS;AACrB,WAAO,QAAQ,QAAQ,IAAI,EAAE,KAAK,cAAY;AAK1C,UAAI,QAAQ,UAAU,QAAW;AAC7B,gBAAQ,MAAM,SAAS,IAAI;AAAA,MAC/B;AAMA,UAAI,QAAQ,WAAW,QAAQ,GAAG;AAC9B,eAAO;AAAA,MACX;AAMA,UAAI,SAAS,QAAQ;AACjB,eAAO,OAAO;AAAA,UACV,QAAQ,SAAS;AAAA,QACrB,CAAC;AAAA,MACL;AACA,aAAO,OAAO;AAAA,QACV,OAAO,KAAK,QAAQ,KAAK;AAAA,MAC7B,CAAC;AAAA,IACL,CAAC;AAAA,EACL;AACA,SAAO,OAAO,CAAC,CAAC;AACpB;AAyCA,SAAS,6BAA6B;AAClC,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS;AAAA,EAKb;AACJ;AAEA,SAAS,4BAA4B;AACjC,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS;AAAA,EACb;AACJ;AAEA,SAAS,gCAAgC;AACrC,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS;AAAA,EACb;AACJ;AAvGA,IAyCM,oBAgEA,WAyBA,cAaA,eAaA,wBAaA,WAkBA,WASA,cASA,cASA,eASA,cAoBA,yBAcA,uBAUA,WASA,YASA,uBASA,SASA,mCAYA,eASA,WASA,oBAcA,WAWA,aASA,cASA,aASA,aASA,WAkBA,eAmBA,oBAYA,iBAmBA,8BAcA,cAYA,0BAcA,eAmBA,uBAcA,yBAaA,eAYA,uBAUA,cA6CA,aAUA,OAeA,eAcA,aAyBA,gBAyBA,cA2CA,cASA,YAcA,eAcA,UAUA,aASA,cAQA,eASA,YAcA,eAcA,QAaA,aAcA,YA8BA,WASA,mBAYA,YAoBA,SASA,aAYA,YASA,SASA,qBAWA,sBAUA,mBA+DA,iBASA,oBASA,YAWA,aAkBA,UAMA,WAkBA,aAMA,cAkBA,QAaA,sBAaA,aAYA,gBAYA,aAeA,UAUA,eAkBA,iBAUA,WAMA,cAKA;AA9vCN;AAAA;AAAA;AAAA,IAAAO;AACA;AACA;AAuCA,IAAM,qBAAqB,aAAW;AAClC,YAAM,QAAQ,QAAQ;AACtB,YAAM,OAAOC,YAAW,QAAQ,aAAa,SAAY,QAAQ,WAAWC,UAAS,eAAe,OAAO,QAAQ,MAAM;AACzH,YAAM,cAAc,kBAAkB;AAAA,QAClC,OAAO;AAAA,UACH,EAAE,KAAK,GAAG,KAAK,oBAAoB,QAAQ,SAAS,KAAK;AAAA,UACzD,EAAE,KAAK,GAAG,KAAK,gBAAgB,QAAQ,SAAS,MAAM;AAAA,QAC1D,EAAE,OAAOC,SAAQ;AAAA,UACb,EAAE,KAAK,GAAG,KAAK,oBAAoB;AAAA,UACnC,EAAE,KAAK,GAAG,KAAK,oBAAoB;AAAA,UACnC,EAAE,KAAK,GAAG,KAAK,oBAAoB;AAAA,QACvC,CAAC,CAAC;AAAA,QACF,GAAG;AAAA,QACH,SAAS;AAAA,UACL,GAAG,KAAK,QAAQ;AAAA,UAChB,GAAG,EAAE,gBAAgB,oCAAoC;AAAA,UACzD,GAAG,QAAQ;AAAA,QACf;AAAA,QACA,iBAAiB;AAAA,UACb,GAAG,KAAK,gBAAgB;AAAA,UACxB,GAAG,QAAQ;AAAA,QACf;AAAA,MACJ,CAAC;AACD,YAAM,OAAO;AAAA,QACT;AAAA,QACA;AAAA,QACA,gBAAgB,SAASC,UAAS;AAC9B,sBAAY,UAAU,IAAI,EAAE,SAAS,SAAAA,SAAQ,CAAC;AAAA,QAClD;AAAA,QACA,aAAa;AACT,iBAAO,QAAQ,IAAI;AAAA,YACf,YAAY,cAAc,MAAM;AAAA,YAChC,YAAY,eAAe,MAAM;AAAA,UACrC,CAAC,EAAE,KAAK,MAAM,MAAS;AAAA,QAC3B;AAAA,MACJ;AACA,aAAOC,YAAW,MAAM,QAAQ,OAAO;AAAA,IAC3C;AA2BA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,KAAK,mBAAmB;AAC5B,cAAM,EAAE,iBAAiB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC3D,cAAM,OAAO;AAAA,UACT;AAAA,UACA,GAAI,oBAAoB,SAAY,EAAE,gBAAgB,IAAI,CAAC;AAAA,QAC/D;AACA,cAAM,OAAO,CAAC,UAAU,uBAAuB;AAC3C,iBAAOC,wBAAuB,WAAS;AACnC,mBAAO,UAAU,IAAI,EAAE,SAAS,KAAK,kBAAkB,EAAE,MAAM,CAAC,aAAa;AACzE,kBAAI,SAAS,WAAW,KAAK;AACzB,sBAAM;AAAA,cACV;AACA,qBAAO,MAAM;AAAA,YACjB,CAAC;AAAA,UACL,CAAC;AAAA,QACL;AACA,eAAOC,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN;AAAA,QACJ,GAAG,OAAO,GAAG,IAAI;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,QAAQ,aAAa,mBAAmB;AAC5C,cAAM,uBAAuB,2BAA2B,cAAc;AAEtE,6BAAqB,gBAAgB,mBAAmB,IAAI;AAC5D,eAAO,KAAK,YAAY,MAAM;AAAA,UAC1B,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM,EAAE,SAAS,YAAY;AAAA,QACjC,GAAG,oBAAoB;AAAA,MAC3B;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,SAAS,aAAa,mBAAmB;AAC7C,eAAO,KAAK,YAAY,MAAM;AAAA,UAC1B,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM;AAAA,YACF,OAAO;AAAA,YACP,SAAS;AAAA,UACb;AAAA,QACJ,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,yBAAyB,CAAC,SAAS;AACrC,aAAO,CAAC,YAAY,mBAAmB;AACnC,eAAOA,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,4BAA4B,UAAU;AAAA,UACnD,MAAM;AAAA,YACF,gCAAgC;AAAA,YAChC,UAAU,EAAE,QAAQ,YAAY,MAAM,CAAC,EAAE;AAAA,UAC7C;AAAA,QACJ,GAAG,cAAc,GAAG,CAAC,UAAU,uBAAuB,YAAY,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAChH;AAAA,IACJ;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,MAAM,IAAI,mBAAmB;AACjC,cAAM,OAAO,CAAC,UAAU,uBAAuB;AAC3C,iBAAO,UAAU,IAAI,EAAE,MAAM;AAAA,YACzB,SAAS,EAAE,SAAS;AAAA,UACxB,CAAC,EAAE,SAAS,SAAS,QAAQ,kBAAkB;AAAA,QACnD;AACA,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,0BAA0B,IAAI;AAAA,UAC3C,MAAM;AAAA,YACF,WAAW;AAAA,YACX,aAAa;AAAA,UACjB;AAAA,QACJ,GAAG,cAAc,GAAG,IAAI;AAAA,MAC5B;AAAA,IACJ;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,MAAM,IAAI,mBAAmB;AACjC,eAAO,UAAU,IAAI,EAAE,MAAM,IAAI;AAAA,UAC7B,GAAG;AAAA,UACH,OAAO,CAAC,UAAU,KAAK;AAAA,QAC3B,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,MAAM,IAAI,mBAAmB;AACjC,eAAO,UAAU,IAAI,EAAE,MAAM,IAAI;AAAA,UAC7B,GAAG;AAAA,UACH,OAAO,CAAC,UAAU,QAAQ;AAAA,QAC9B,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,MAAM,IAAI,mBAAmB;AACjC,eAAO,UAAU,IAAI,EAAE,MAAM,IAAI;AAAA,UAC7B,GAAG;AAAA,UACH,OAAO,CAAC,UAAU,QAAQ;AAAA,QAC9B,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,SAAS,mBAAmB;AAChC,YAAI,QAAQ,WAAW,WAAW,KAAK;AACnC,iBAAO,KAAK,YAAY,KAAK,SAAS,cAAc;AAAA,QACxD;AACA,eAAO,KAAK,YAAY,MAAM,SAAS,cAAc;AAAA,MACzD;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,cAAM,OAAO,CAAC,GAAG,uBAAuB;AACpC,iBAAOF,wBAAuB,WAAS;AACnC,mBAAO,UAAU,IAAI,EAAE,QAAQ,kBAAkB,EAC5C,KAAK,KAAK,EACV,MAAM,CAAC,aAAa;AACrB,kBAAI,SAAS,WAAW,KAAK;AACzB,sBAAM;AAAA,cACV;AAAA,YACJ,CAAC;AAAA,UACL,CAAC;AAAA,QACL;AACA,eAAOC,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,aAAa,MAAM;AAAA,QACpC,GAAG,cAAc,GAAG,IAAI;AAAA,MAC5B;AAAA,IACJ;AAEA,IAAM,0BAA0B,CAAC,SAAS;AACtC,aAAO,CAAC,YAAY,WAAW,mBAAmB;AAC9C,cAAM,WAAW,UAAU,IAAI,eAAa;AAAA,UACxC,QAAQ;AAAA,UACR,MAAM,EAAE,SAAS;AAAA,QACrB,EAAE;AACF,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,4BAA4B,UAAU;AAAA,UACnD,MAAM,EAAE,gCAAgC,OAAO,SAAS;AAAA,QAC5D,GAAG,cAAc,GAAG,CAAC,UAAU,uBAAuB,YAAY,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAChH;AAAA,IACJ;AAEA,IAAM,wBAAwB,MAAM;AAChC,aAAO,CAAC,cAAc,iBAAiB;AACnC,cAAM,kBAAkB,yBAAyB,YAAY;AAC7D,cAAM,aAAa,WAAW,UAAU,YAAY,EAC/C,OAAO,eAAe,EACtB,OAAO,KAAK;AACjB,eAAO,OAAO,KAAK,aAAa,eAAe,EAAE,SAAS,QAAQ;AAAA,MACtE;AAAA,IACJ;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,aAAa,MAAM;AAAA,QACpC,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,aAAa,CAAC,SAAS;AACzB,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,aAAa,OAAO,SAAS,CAAC;AAAA,QAC/C,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,wBAAwB,CAAC,SAAS;AACpC,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,UAAU,CAAC,SAAS;AACtB,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,oCAAoC,MAAM;AAC5C,aAAO,CAAC,kBAAkB;AACtB,cAAM,gBAAgB,OAAO,KAAK,eAAe,QAAQ,EAAE,SAAS,OAAO;AAC3E,cAAM,QAAQ;AACd,cAAM,QAAQ,cAAc,MAAM,KAAK;AACvC,YAAI,UAAU,MAAM;AAChB,gBAAM,8BAA8B;AAAA,QACxC;AACA,eAAO,SAAS,MAAM,CAAC,GAAG,EAAE,IAAI,KAAK,OAAM,oBAAI,KAAK,GAAE,QAAQ,IAAI,GAAI;AAAA,MAC1E;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,yBAAyB,MAAM;AAAA,QAChD,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,qBAAqB,CAAC,SAAS;AACjC,aAAO,CAAC,mBAAmB;AACvB,cAAM,EAAE,kBAAkB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC5D,YAAI,qBAAqB,MAAM;AAE3B,kBAAQ,cAAc;AAAA,QAC1B;AACA,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,OAAO;AAAA,MACd;AAAA,IACJ;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,WAAW,UAAU,CAAC,MAAM;AAChC,cAAMC,eAAc;AAAA,UAChB,aAAa,KAAK;AAAA,UAClB,OAAO,KAAK;AAAA,UACZ;AAAA,QACJ;AACA,eAAOJ,YAAWI,cAAa,QAAQ,OAAO;AAAA,MAClD;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,MAAM,IAAI,mBAAmB;AACjC,cAAM,OAAO,CAAC,UAAU,uBAAuB;AAC3C,iBAAO,UAAU,IAAI,EAAE,MAAM;AAAA,YACzB,SAAS,EAAE,SAAS;AAAA,UACxB,CAAC,EAAE,SAAS,SAAS,QAAQ,kBAAkB;AAAA,QACnD;AACA,eAAOF,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,0BAA0B,IAAI;AAAA,UAC3C,MAAM;AAAA,YACF,WAAW;AAAA,YACX,aAAa;AAAA,UACjB;AAAA,QACJ,GAAG,cAAc,GAAG,IAAI;AAAA,MAC5B;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,UAAU,mBAAmB;AACjC,cAAM,OAAO,CAAC,UAAU,uBAAuB;AAC3C,iBAAO,QAAQ,IAAI,OAAO,KAAK,SAAS,MAAM,EAAE,IAAI,eAAa;AAC7D,mBAAO,UAAU,IAAI,EAAE,WAAW;AAAA,cAC9B,SAAS,EAAE,SAAS;AAAA,YACxB,CAAC,EAAE,SAAS,SAAS,OAAO,SAAS,GAAG,kBAAkB;AAAA,UAC9D,CAAC,CAAC;AAAA,QACN;AACA,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,QACJ,GAAG,cAAc,GAAG,IAAI;AAAA,MAC5B;AAAA,IACJ;AAEA,IAAM,qBAAqB,CAAC,SAAS;AACjC,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,QACJ,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,kBAAkB,CAAC,SAAS;AAC9B,aAAO,CAAC,SAAS,mBAAmB;AAChC,cAAM,WAAW,QAAQ,IAAI,WAAS;AAClC,iBAAO;AAAA,YACH,GAAG;AAAA,YACH,QAAQ,yBAAyB,MAAM,UAAU,CAAC,CAAC;AAAA,UACvD;AAAA,QACJ,CAAC;AACD,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,QACf,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,+BAA+B,CAAC,SAAS;AAC3C,aAAO,CAAC,SAAS,mBAAmB;AAChC,eAAO,QAAQ,IAAI,QAAQ,IAAI,WAAS;AACpC,gBAAM,EAAE,WAAW,YAAY,GAAG,OAAO,IAAI,MAAM;AACnD,iBAAO,UAAU,IAAI,EAAE,MAAM,WAAW;AAAA,YACpC,SAAS,EAAE,qBAAqB;AAAA,UACpC,CAAC,EAAE,qBAAqB,WAAW,YAAY;AAAA,YAC3C,GAAG;AAAA,YACH,GAAG;AAAA,UACP,CAAC;AAAA,QACL,CAAC,CAAC;AAAA,MACN;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,cAAM,uBAAuB,2BAA2B,cAAc;AAEtE,6BAAqB,gBAAgB,mBAAmB,IAAI;AAC5D,eAAO,KAAK,YAAY,MAAM;AAAA,UAC1B,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,oBAAoB;AAAA,MAC3B;AAAA,IACJ;AAEA,IAAM,2BAA2B,CAAC,SAAS;AACvC,aAAO,CAAC,YAAY,SAAS,mBAAmB;AAC5C,cAAM,WAAW,QAAQ,IAAI,YAAU;AAAA,UACnC,QAAQ;AAAA,UACR,MAAM;AAAA,QACV,EAAE;AACF,eAAOA,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,4BAA4B,UAAU;AAAA,UACnD,MAAM,EAAE,gCAAgC,MAAM,SAAS;AAAA,QAC3D,GAAG,cAAc,GAAG,CAAC,UAAU,uBAAuB,YAAY,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAChH;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,cAAM,OAAO,CAAC,GAAG,uBAAuB;AACpC,iBAAOF,wBAAuB,WAAS;AACnC,mBAAO,UAAU,IAAI,EAAE,QAAQ,kBAAkB,EAAE,MAAM,CAAC,aAAa;AACnE,kBAAI,SAAS,WAAW,KAAK;AACzB,sBAAM;AAAA,cACV;AACA,qBAAO,MAAM;AAAA,YACjB,CAAC;AAAA,UACL,CAAC;AAAA,QACL;AACA,eAAOC,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,qBAAqB,MAAM;AAAA,QAC5C,GAAG,cAAc,GAAG,IAAI;AAAA,MAC5B;AAAA,IACJ;AAEA,IAAM,wBAAwB,CAAC,SAAS;AACpC,aAAO,CAAC,YAAY,SAAS,mBAAmB;AAC5C,cAAM,WAAW,QAAQ,IAAI,YAAU;AAAA,UACnC,QAAQ;AAAA,UACR,MAAM;AAAA,QACV,EAAE;AACF,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,4BAA4B,UAAU;AAAA,UACnD,MAAM,EAAE,gCAAgC,OAAO,SAAS;AAAA,QAC5D,GAAG,cAAc,GAAG,CAAC,UAAU,uBAAuB,YAAY,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAChH;AAAA,IACJ;AAEA,IAAM,0BAA0B,CAAC,SAAS;AACtC,aAAO,CAAC,YAAY,OAAO,mBAAmB;AAC1C,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,6BAA6B,UAAU;AAAA,UACpD,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,QACf,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,OAAO,mBAAmB;AAC9B,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,QACJ,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,wBAAwB,CAAC,SAAS;AACpC,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM;AAAA,QACV,GAAG,cAAc,GAAG,CAAC,UAAU,uBAAuB,YAAY,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAChH;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,cAAM,gBAAgB,OAAO,OAAO,CAAC,GAAG,cAAc;AACtD,cAAM,EAAE,iBAAiB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC3D,cAAM,OAAO,kBAAkB,EAAE,gBAAgB,IAAI,CAAC;AACtD,cAAM,eAAe;AAAA,UACjB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACJ;AAEA,cAAM,aAAa,CAAC,sBAAsB;AACtC,iBAAO,OAAO,KAAK,aAAa,EAC3B,OAAO,CAAC,iBAAiB,aAAa,QAAQ,YAAY,MAAM,EAAE,EAClE,MAAM,kBAAgB;AAEvB,gBAAI,MAAM,QAAQ,kBAAkB,YAAY,CAAC,KAC7C,MAAM,QAAQ,cAAc,YAAY,CAAC,GAAG;AAC5C,oBAAM,yBAAyB,kBAAkB,YAAY;AAC7D,qBAAQ,uBAAuB,WAAW,cAAc,YAAY,EAAE,UAClE,uBAAuB,MAAM,CAAC,OAAO,UAAU,UAAU,cAAc,YAAY,EAAE,KAAK,CAAC;AAAA,YACnG,OACK;AACD,qBAAO,kBAAkB,YAAY,MAAM,cAAc,YAAY;AAAA,YACzE;AAAA,UACJ,CAAC;AAAA,QACL;AACA,cAAM,OAAO,CAAC,GAAG,uBAAuBD,wBAAuB,WAAS;AACpE,iBAAO,UAAU,IAAI,EAAE,QAAQ,kBAAkB,EAAE,KAAK,uBAAqB;AACzE,mBAAO,WAAW,iBAAiB,IAAI,QAAQ,QAAQ,IAAI,MAAM;AAAA,UACrE,CAAC;AAAA,QACL,CAAC;AACD,eAAOC,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,aAAa,MAAM;AAAA,UAChC;AAAA,QACJ,GAAG,OAAO,GAAG,IAAI;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,eAAOF,wBAAuB,WAAS;AACnC,iBAAO,WAAW,IAAI,EAAE,QAAQ,cAAc,EAAE,KAAK,cAAY;AAC7D,mBAAO,SAAS,WAAW,cAAc,MAAM,IAAI;AAAA,UACvD,CAAC;AAAA,QACL,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,QAAQ,CAAC,SAAS;AACpB,aAAO,CAAC,UAAU,mBAAmB;AACjC,cAAM,OAAO,CAAC,UAAU,uBAAuB;AAC3C,iBAAO,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB;AAAA,QAC7D;AACA,eAAOC,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,sBAAsB,KAAK,SAAS;AAAA,UACjD,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,QACJ,GAAG,cAAc,GAAG,IAAI;AAAA,MAC5B;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,mBAAmB;AACvB,eAAO,uBAAuB;AAAA,UAC1B,YAAY,cAAY,SAAS,WAAW;AAAA,UAC5C,GAAG;AAAA,UACH,SAAS,CAAC,SAAS,KAAK,YAAY,KAAK;AAAA,YACrC,QAAQ,WAAW;AAAA,YACnB,MAAMA,QAAO,uBAAuB,KAAK,SAAS;AAAA,YAClD;AAAA,UACJ,GAAG,cAAc;AAAA,QACrB,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,mBAAmB;AACvB,cAAM,UAAU;AAAA,UACZ,aAAa;AAAA,UACb,GAAG;AAAA,QACP;AACA,eAAO,uBAAuB;AAAA,UAC1B,YAAY,cAAY,SAAS,KAAK,SAAS,QAAQ;AAAA,UACvD,GAAG;AAAA,UACH,QAAQ,MAAM;AACV,mBAAO,YAAY,IAAI,EAAE,IAAI,EAAE,GAAG,SAAS,GAAG,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa;AACrE,qBAAO;AAAA,gBACH,GAAG;AAAA,gBACH,MAAM,SAAS,KAAK,IAAI,UAAQ;AAE5B,yBAAO,KAAK;AACZ,yBAAO;AAAA,gBACX,CAAC;AAAA,cACL;AAAA,YACJ,CAAC;AAAA,UACL;AAAA,QACJ,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,iBAAiB,CAAC,SAAS;AAC7B,aAAO,CAAC,mBAAmB;AACvB,cAAM,UAAU;AAAA,UACZ,aAAa;AAAA,UACb,GAAG;AAAA,QACP;AACA,eAAO,uBAAuB;AAAA,UAC1B,YAAY,cAAY,SAAS,KAAK,SAAS,QAAQ;AAAA,UACvD,GAAG;AAAA,UACH,QAAQ,MAAM;AACV,mBAAO,eAAe,IAAI,EAAE,IAAI,EAAE,GAAG,SAAS,GAAG,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa;AACxE,qBAAO;AAAA,gBACH,GAAG;AAAA,gBACH,MAAM,SAAS,KAAK,IAAI,aAAW;AAE/B,yBAAO,QAAQ;AACf,yBAAO;AAAA,gBACX,CAAC;AAAA,cACL;AAAA,YACJ,CAAC;AAAA,UACL;AAAA,QACJ,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,QAAQ,QAAQ,mBAAmB;AACvC,cAAM,EAAE,WAAW,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AACrD,cAAM,WAAW;AAAA,UACb,SAAS,CAAC;AAAA,UACV,WAAW,CAAC;AAAA,QAChB;AACA,cAAM,eAAe,CAAC,YAAY,MAAM;AAEpC,gBAAM,cAAc,CAAC;AAErB,cAAI;AAEJ,eAAK,QAAQ,WAAW,QAAQ,OAAO,QAAQ,SAAS;AAEpD,wBAAY,KAAK,OAAO,KAAK,CAAC;AAC9B,gBAAI,YAAY,YAAY,aAAa,MAAO;AAC5C;AAAA,YACJ;AAAA,UACJ;AACA,cAAI,YAAY,WAAW,GAAG;AAC1B,mBAAO,QAAQ,QAAQ,QAAQ;AAAA,UACnC;AACA,iBAAO,MAAM,IAAI,EAAE,YAAY,IAAI,CAAAE,UAAQ;AACvC,mBAAO;AAAA,cACH;AAAA,cACA,MAAAA;AAAA,YACJ;AAAA,UACJ,CAAC,GAAG,OAAO,EAAE,KAAK,SAAO;AACrB,qBAAS,YAAY,SAAS,UAAU,OAAO,IAAI,SAAS;AAC5D,qBAAS,QAAQ,KAAK,IAAI,MAAM;AAChC;AACA,mBAAO,aAAa,KAAK;AAAA,UAC7B,CAAC;AAAA,QACL;AACA,eAAOH,uBAAsB,aAAa,GAAG,CAAC,sBAAsB,uBAAuB;AACvF,iBAAO,QAAQ,IAAI,qBAAqB,QAAQ,IAAI,YAAU;AAC1D,mBAAO,SAAS,IAAI,EAAE,QAAQ,kBAAkB;AAAA,UACpD,CAAC,CAAC;AAAA,QACN,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,mBAAmB;AACvB,eAAOA,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,sBAAsB,KAAK,SAAS;AAAA,QACrD,GAAG,cAAc,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAC7G;AAAA,IACJ;AAEA,IAAM,aAAa,CAAC,SAAS;AACzB,aAAO,CAAC,mBAAmB;AACvB,cAAM,EAAE,mBAAmB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC7D,cAAM,uBAAuB,2BAA2B,OAAO;AAC/D,YAAI,mBAAmB;AACnB,+BAAqB,gBAAgB,oBAAoB;AAAA,QAC7D;AACA,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,4BAA4B,KAAK,SAAS;AAAA,QAC3D,GAAG,oBAAoB,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MACnH;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,mBAAmB;AACvB,cAAM,EAAE,mBAAmB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC7D,cAAM,uBAAuB,2BAA2B,OAAO;AAC/D,YAAI,mBAAmB;AACnB,+BAAqB,gBAAgB,oBAAoB;AAAA,QAC7D;AACA,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,+BAA+B,KAAK,SAAS;AAAA,QAC9D,GAAG,oBAAoB,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MACnH;AAAA,IACJ;AAEA,IAAM,WAAW,CAAC,SAAS;AACvB,aAAO,CAAC,SAAS,mBAAmB;AAChC,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,8BAA8B,KAAK,SAAS;AAAA,UACzD,MAAM;AAAA,QACV,GAAG,cAAc,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAC7G;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,mBAAmB;AACvB,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,gBAAgB,KAAK,SAAS;AAAA,QAC/C,GAAG,cAAc,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAC7G;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAOD,uBAAsB,cAAc,IAAI,EAAE,CAAC,QAAQ,GAAG,cAAc,EAAE,KAAK,cAAY;AAC1F,iBAAO,EAAE,QAAQ,SAAS,QAAQ,CAAC,EAAE;AAAA,QACzC,CAAC,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAC7F;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,WAAW,mBAAmB;AAClC,cAAM,UAAU,UAAU,IAAI,cAAY;AACtC,iBAAO,EAAE,SAAS;AAAA,QACtB,CAAC;AACD,eAAO,aAAa,IAAI,EAAE,SAAS,gBAAgB,cAAc,cAAc;AAAA,MACnF;AAAA,IACJ;AAEA,IAAM,aAAa,CAAC,SAAS;AACzB,aAAO,CAAC,UAAU,mBAAmB;AACjC,cAAM,EAAE,mBAAmB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC7D,cAAM,uBAAuB,2BAA2B,OAAO;AAC/D,YAAI,mBAAmB;AACnB,+BAAqB,gBAAgB,oBAAoB;AAAA,QAC7D;AACA,eAAOA,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,yBAAyB,KAAK,WAAW,QAAQ;AAAA,QAClE,GAAG,oBAAoB,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MACnH;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,UAAU,mBAAmB;AACjC,cAAM,EAAE,mBAAmB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC7D,cAAM,uBAAuB,2BAA2B,OAAO;AAC/D,YAAI,mBAAmB;AACnB,+BAAqB,gBAAgB,oBAAoB;AAAA,QAC7D;AACA,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,4BAA4B,KAAK,WAAW,QAAQ;AAAA,QACrE,GAAG,oBAAoB,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MACnH;AAAA,IACJ;AAEA,IAAM,SAAS,CAAC,SAAS;AACrB,aAAO,CAAC,mBAAmB;AACvB,eAAO,YAAY,IAAI,EAAE,cAAc,EAClC,KAAK,MAAM,IAAI,EACf,MAAM,WAAS;AAChB,cAAI,MAAM,WAAW,KAAK;AACtB,kBAAM;AAAA,UACV;AACA,iBAAO;AAAA,QACX,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,OAAO,gBAAgB,mBAAmB;AAC9C,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,2BAA2B,KAAK,SAAS;AAAA,UACtD,MAAM;AAAA,YACF;AAAA,YACA;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,QACf,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,aAAa,CAAC,SAAS;AACzB,aAAO,CAAC,UAAU,mBAAmB;AACjC,cAAM,EAAE,OAAO,UAAU,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAE3D,YAAI,OAAO;AACX,cAAM,cAAc,MAAM;AACtB,iBAAO,OAAO,IAAI,EAAE,SAAS,IAAI,EAAE,GAAG,SAAS,KAAK,CAAC,EAAE,KAAK,YAAU;AAElE,uBAAW,CAAC,UAAU,GAAG,KAAK,OAAO,QAAQ,OAAO,IAAI,GAAG;AAEvD,kBAAI,SAAS,GAAG,GAAG;AACf,uBAAO;AAAA,kBACH,QAAQ;AAAA,kBACR,UAAU,SAAS,UAAU,EAAE;AAAA,kBAC/B;AAAA,gBACJ;AAAA,cACJ;AAAA,YACJ;AACA;AAEA,gBAAI,aAAa,SAAS,QAAQ,OAAO,SAAS;AAC9C,oBAAM,0BAA0B;AAAA,YACpC;AACA,mBAAO,YAAY;AAAA,UACvB,CAAC;AAAA,QACL;AACA,eAAO,YAAY;AAAA,MACvB;AAAA,IACJ;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,mBAAmB,KAAK,WAAW,QAAQ;AAAA,QAC5D,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,oBAAoB,MAAM;AAC5B,aAAO,CAAC,gBAAgB,aAAa;AAEjC,mBAAW,CAAC,UAAU,GAAG,KAAK,OAAO,QAAQ,eAAe,IAAI,GAAG;AAC/D,cAAI,IAAI,aAAa,UAAU;AAC3B,mBAAO,SAAS,UAAU,EAAE;AAAA,UAChC;AAAA,QACJ;AACA,eAAO;AAAA,MACX;AAAA,IACJ;AAEA,IAAM,aAAa,CAAC,SAAS;AACzB,aAAO,CAAC,WAAW,mBAAmB;AAClC,cAAM,EAAE,sBAAsB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAChE,cAAM,WAAW,UAAU,IAAI,cAAY;AACvC,iBAAO;AAAA,YACH,WAAW,KAAK;AAAA,YAChB;AAAA,YACA,GAAI,uBAAuB,EAAE,qBAAqB,IAAI,CAAC;AAAA,UAC3D;AAAA,QACJ,CAAC;AACD,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,QACJ,GAAG,OAAO;AAAA,MACd;AAAA,IACJ;AAEA,IAAM,UAAU,CAAC,SAAS;AACtB,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,yBAAyB,KAAK,WAAW,QAAQ;AAAA,QAClE,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,yBAAyB,KAAK,SAAS;AAAA,UACpD,MAAM;AAAA,YACF,YAAY;AAAA,UAChB;AAAA,QACJ,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,aAAa,CAAC,SAAS;AACzB,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,4BAA4B,KAAK,WAAW,QAAQ;AAAA,QACrE,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,UAAU,CAAC,SAAS;AACtB,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,wBAAwB,KAAK,WAAW,OAAO,SAAS,CAAC;AAAA,QAC1E,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,sBAAsB,CAAC,SAAS;AAClC,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,eAAOD,uBAAsB,qBAAqB,IAAI,EAAE,CAAC,MAAM,GAAG,cAAc,EAAE,KAAK,cAAY;AAC/F,iBAAO;AAAA,YACH,UAAU,SAAS,UAAU,CAAC;AAAA,YAC9B,QAAQ,SAAS,QAAQ,CAAC;AAAA,UAC9B;AAAA,QACJ,CAAC,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAC7F;AAAA,IACJ;AAEA,IAAM,uBAAuB,CAAC,SAAS;AACnC,aAAO,CAAC,SAAS,mBAAmB;AAChC,cAAM,EAAE,mBAAmB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC7D,cAAM,SAAS,oBACT,gBAAgB,sBAChB,gBAAgB;AACtB,eAAO,aAAa,IAAI,EAAE,SAAS,QAAQ,OAAO;AAAA,MACtD;AAAA,IACJ;AAEA,IAAM,oBAAoB,CAAC,SAAS;AAChC,aAAO,CAAC,SAAS,mBAAmB;AAChC,cAAM,EAAE,MAAM,gCAAgC,WAAW,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC3F,cAAM,YAAY,CAAC,MAAM,IAAI,MAAM,4BAA4B;AAC3D,iBAAOA,uBAAsB,KAAK,YAAY,MAAM;AAAA,YAChD,QAAQ,WAAW;AAAA,YACnB,MAAMC,QAAO,0BAA0B,IAAI;AAAA,YAC3C,MAAM;AAAA,cACF,WAAW;AAAA,cACX,aAAa;AAAA,YACjB;AAAA,UACJ,GAAG,uBAAuB,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,QACtH;AACA,cAAM,eAAe,KAAK,OAAO,EAC5B,SAAS,EAAE,EACX,UAAU,CAAC;AAChB,cAAM,qBAAqB,GAAG,KAAK,SAAS,QAAQ,YAAY;AAChE,cAAM,yBAAyB,YAAY;AAAA,UACvC,OAAO,KAAK;AAAA,UACZ,aAAa,KAAK;AAAA,UAClB,WAAW;AAAA,QACf,CAAC;AAGD,YAAI,YAAY,CAAC;AACjB,cAAM,sBAAsB,UAAU,KAAK,WAAW,oBAAoB,QAAQ;AAAA,UAC9E,GAAG;AAAA,UACH,OAAO,CAAC,YAAY,YAAY,OAAO;AAAA,QAC3C,CAAC;AAED,kBAAU,KAAK,mBAAmB;AAClC,cAAM,UAAU,OACV,oBAAoB,KAAK,OAAO,IAChC,qBACD,KAAK,MAAM;AACZ,gBAAM,6BAA6B,uBAAuB,SAAS;AAAA,YAC/D,GAAG;AAAA,YACH;AAAA,YACA;AAAA,UACJ,CAAC;AAED,oBAAU,KAAK,0BAA0B;AACzC,iBAAO,OAAO,2BAA2B,KAAK,OAAO,IAAI;AAAA,QAC7D,CAAC,EACI,KAAK,MAAM;AACZ,gBAAM,sBAAsB,UAAU,oBAAoB,KAAK,WAAW,QAAQ,OAAO;AAEzF,oBAAU,KAAK,mBAAmB;AAClC,iBAAO,OAAO,oBAAoB,KAAK,OAAO,IAAI;AAAA,QACtD,CAAC,EACI,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,EACjC,KAAK,CAAC,CAAC,cAAc,qBAAqB,YAAY,MAAM;AAC7D,iBAAO;AAAA,YACH,WAAW,oBAAoB;AAAA,YAC/B,SAAS,CAAC,aAAa,QAAQ,GAAG,oBAAoB,SAAS,aAAa,MAAM;AAAA,UACtF;AAAA,QACJ,CAAC;AACD,eAAOD,uBAAsB,QAAQ,CAAC,GAAG,uBAAuB;AAC5D,iBAAO,QAAQ,IAAI,UAAU,IAAI,cAAY,SAAS,KAAK,kBAAkB,CAAC,CAAC;AAAA,QACnF,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,kBAAkB,CAAC,SAAS;AAC9B,aAAO,CAAC,OAAO,mBAAmB;AAC9B,eAAO,UAAU,IAAI,EAAE,OAAO;AAAA,UAC1B,GAAG;AAAA,UACH,oBAAoB;AAAA,QACxB,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,qBAAqB,CAAC,SAAS;AACjC,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAO,aAAa,IAAI,EAAE,UAAU;AAAA,UAChC,GAAG;AAAA,UACH,uBAAuB;AAAA,QAC3B,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,aAAa,CAAC,SAAS;AACzB,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,eAAOA,uBAAsB,YAAY,IAAI,EAAE,CAAC,MAAM,GAAG,cAAc,EAAE,KAAK,cAAY;AACtF,iBAAO;AAAA,YACH,UAAU,SAAS,UAAU,CAAC;AAAA,YAC9B,QAAQ,SAAS,QAAQ,CAAC;AAAA,UAC9B;AAAA,QACJ,CAAC,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAC7F;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,SAAS,mBAAmB;AAChC,cAAM,EAAE,gCAAgC,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC1E,cAAM,SAAS,iCACT,gBAAgB,YAChB,gBAAgB;AACtB,YAAI,WAAW,gBAAgB,cAAc;AAEzC,qBAAW,UAAU,SAAS;AAC1B,gBAAI,OAAO,aAAa,QAAW;AAC/B,qBAAOA,uBAAsB,QAAQ,OAAO,2BAA2B,CAAC,CAAC;AAAA,YAC7E;AAAA,UACJ;AAAA,QACJ;AACA,eAAO,aAAa,IAAI,EAAE,SAAS,QAAQ,OAAO;AAAA,MACtD;AAAA,IACJ;AAEA,IAAM,WAAW,CAAC,SAAS;AACvB,aAAO,CAAC,MAAM,mBAAmB;AAC7B,eAAO,UAAU,IAAI,EAAE,CAAC,IAAI,GAAG,cAAc;AAAA,MACjD;AAAA,IACJ;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,OAAO,mBAAmB;AAC9B,cAAM,EAAE,mBAAmB,oBAAoB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AACjF,cAAM,uBAAuB,2BAA2B,OAAO;AAC/D,YAAI,mBAAmB;AACnB,+BAAqB,gBAAgB,oBAAoB;AAAA,QAC7D;AACA,YAAI,oBAAoB;AACpB,+BAAqB,gBAAgB,qBAAqB;AAAA,QAC9D;AACA,eAAOA,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,4BAA4B,KAAK,SAAS;AAAA,UACvD,MAAM;AAAA,QACV,GAAG,oBAAoB,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MACnH;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,SAAS,mBAAmB;AAChC,eAAO,aAAa,IAAI,EAAE,CAAC,OAAO,GAAG,cAAc;AAAA,MACvD;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,UAAU,mBAAmB;AACjC,cAAM,EAAE,mBAAmB,uBAAuB,yBAAyB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC7G,cAAM,uBAAuB,2BAA2B,OAAO;AAC/D,YAAI,mBAAmB;AACnB,+BAAqB,gBAAgB,oBAAoB;AAAA,QAC7D;AACA,YAAI,2BAA2B,uBAAuB;AAClD,+BAAqB,gBAAgB,0BAA0B;AAAA,QACnE;AACA,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,+BAA+B,KAAK,SAAS;AAAA,UAC1D,MAAM;AAAA,QACV,GAAG,oBAAoB,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MACnH;AAAA,IACJ;AAEA,IAAM,SAAS,CAAC,SAAS;AACrB,aAAO,CAAC,OAAO,mBAAmB;AAC9B,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,sBAAsB,KAAK,SAAS;AAAA,UACjD,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,QACf,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,uBAAuB,CAAC,SAAS;AACnC,aAAO,CAAC,WAAW,YAAY,mBAAmB;AAC9C,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,gCAAgC,KAAK,WAAW,SAAS;AAAA,UACtE,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,QACf,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,OAAO,mBAAmB;AAC9B,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,6BAA6B,KAAK,SAAS;AAAA,UACxD,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,QACJ,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,iBAAiB,CAAC,SAAS;AAC7B,aAAO,CAAC,OAAO,mBAAmB;AAC9B,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,gCAAgC,KAAK,SAAS;AAAA,UAC3D,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,QACJ,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,UAAU,mBAAmB;AACjC,cAAM,EAAE,mBAAmB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC7D,cAAM,uBAAuB,2BAA2B,OAAO;AAC/D,YAAI,mBAAmB;AACnB,+BAAqB,gBAAgB,oBAAoB;AAAA,QAC7D;AACA,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,yBAAyB,KAAK,SAAS;AAAA,UACpD,MAAM;AAAA,QACV,GAAG,oBAAoB,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MACnH;AAAA,IACJ;AAEA,IAAM,WAAW,CAAC,SAAS;AACvB,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,eAAOF,wBAAuB,WAAS;AACnC,iBAAO,QAAQ,IAAI,EAAE,QAAQ,cAAc,EAAE,KAAK,cAAY;AAC1D,mBAAO,SAAS,WAAW,cAAc,MAAM,IAAI;AAAA,UACvD,CAAC;AAAA,QACL,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,gBAAgB;AAAA,MAClB,WAAW;AAAA,MACX,WAAW;AAAA,MACX,SAAS;AAAA,MACT,aAAa;AAAA,MACb,cAAc;AAAA,MACd,cAAc;AAAA,MACd,WAAW;AAAA,MACX,aAAa;AAAA,MACb,MAAM;AAAA,MACN,iBAAiB;AAAA,MACjB,gBAAgB;AAAA,MAChB,QAAQ;AAAA,MACR,4BAA4B;AAAA,MAC5B,UAAU;AAAA,MACV,OAAO;AAAA,IACX;AAEA,IAAM,kBAAkB;AAAA,MACpB,WAAW;AAAA,MACX,cAAc;AAAA,MACd,qBAAqB;AAAA,MACrB,6BAA6B;AAAA,MAC7B,cAAc;AAAA,MACd,aAAa;AAAA,MACb,YAAY;AAAA,IAChB;AAEA,IAAM,YAAY;AAAA,MACd,UAAU;AAAA,MACV,UAAU;AAAA,MACV,OAAO;AAAA,IACX;AAEA,IAAM,eAAe;AAAA,MACjB,MAAM;AAAA,MACN,qBAAqB;AAAA,IACzB;AAEA,IAAM,cAAc;AAAA,MAChB,SAAS;AAAA,MACT,eAAe;AAAA,MACf,gBAAgB;AAAA,MAChB,gBAAgB;AAAA,MAChB,aAAa;AAAA,IACjB;AAAA;AAAA;;;ACpwCA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAS,mBAAmB;AACxB,SAAO;AAAA,IACH,MAAM,UAAU,OAAO;AACnB,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAAA,IACA,KAAK,UAAU,OAAO;AAClB,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAAA,IACA,MAAM,UAAU,OAAO;AACnB,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAAA,EACJ;AACJ;AAZA,IAcM;AAdN;AAAA;AAAA;AAcA,IAAM,eAAe;AAAA,MACjB,OAAO;AAAA,MACP,MAAM;AAAA,MACN,OAAO;AAAA,IACX;AAAA;AAAA;;;AClBA,IAAAK,6BAAA;AAAA,SAAAA,4BAAA;AAAA,kBAAAC;AAAA,EAAA,kBAAAC;AAAA,EAAA,kBAAAC;AAAA,EAAA,8BAAAC;AAAA,EAAA,6BAAAC;AAAA,EAAA,eAAAC;AAAA,EAAA,cAAAC;AAAA,EAAA,eAAAC;AAAA,EAAA,eAAAC;AAAA;AAAA,SAASN,YAAW,UAAU,OAAO,QAAQ;AACzC,QAAM,cAAc;AAAA,IAChB,qBAAqB;AAAA,IACrB,4BAA4B;AAAA,EAChC;AACA,SAAO;AAAA,IACH,UAAU;AACN,aAAO,aAAaF,UAAS,gBAAgB,cAAc,CAAC;AAAA,IAChE;AAAA,IACA,kBAAkB;AACd,aAAO,aAAaA,UAAS,wBAAwB,cAAc,CAAC;AAAA,IACxE;AAAA,EACJ;AACJ;AAEA,SAASG,wBAAuB,UAAU;AACtC,MAAI,eAAe;AACnB,QAAM,QAAQ,MAAM;AAChB;AACA,WAAO,IAAI,QAAQ,CAAC,YAAY;AAC5B,iBAAW,MAAM;AACb,gBAAQ,SAAS,KAAK,CAAC;AAAA,MAC3B,GAAG,KAAK,IAAI,MAAM,cAAc,GAAI,CAAC;AAAA,IACzC,CAAC;AAAA,EACL;AACA,SAAO,SAAS,KAAK;AACzB;AAEA,SAASC,uBAAsB,SAAS,OAAO,CAAC,WAAW,oBAAoB;AAC3E,SAAO,QAAQ,QAAQ;AAC3B,GAAG;AAEC,SAAO,OAAO,OAAO,SAAS;AAAA,IAC1B,KAAK,gBAAgB;AACjB,aAAOA,uBAAsB,QACxB,KAAK,cAAY,QAAQ,IAAI,CAAC,KAAK,UAAU,cAAc,GAAG,QAAQ,CAAC,CAAC,EACxE,KAAK,oBAAkB,eAAe,CAAC,CAAC,CAAC;AAAA,IAClD;AAAA,EACJ,CAAC;AACL;AAGA,SAASG,SAAQ,OAAO;AACpB,MAAI,IAAI,MAAM,SAAS;AAEvB,OAAK,GAAG,IAAI,GAAG,KAAK;AAChB,UAAM,IAAI,KAAK,MAAM,KAAK,OAAO,KAAK,IAAI,EAAE;AAC5C,UAAM,IAAI,MAAM,CAAC;AACjB,UAAM,CAAC,IAAI,MAAM,CAAC;AAClB,UAAM,CAAC,IAAI;AAAA,EACf;AACA,SAAO;AACX;AACA,SAASN,YAAW,MAAM,SAAS;AAC/B,MAAI,CAAC,SAAS;AACV,WAAO;AAAA,EACX;AACA,SAAO,KAAK,OAAO,EAAE,QAAQ,SAAO;AAEhC,SAAK,GAAG,IAAI,QAAQ,GAAG,EAAE,IAAI;AAAA,EACjC,CAAC;AACD,SAAO;AACX;AACA,SAASK,QAAO,WAAW,MAAM;AAE7B,MAAI,IAAI;AACR,SAAO,OAAO,QAAQ,OAAO,MAAM,mBAAmB,KAAK,GAAG,CAAC,CAAC;AACpE;AAnEA,IAqEME,UAEAH,UAMAL;AA7EN,IAAAS,0BAAA;AAAA;AAAA;AAqEA,IAAMD,WAAU;AAEhB,IAAMH,WAAU,CAAC,SAAS;AACtB,aAAO,MAAM;AACT,eAAO,KAAK,YAAY,UAAU,QAAQ;AAAA,MAC9C;AAAA,IACJ;AAEA,IAAML,YAAW;AAAA;AAAA;AAAA;AAAA,MAIb,uBAAuB;AAAA;AAAA;AAAA;AAAA,MAIvB,eAAe;AAAA,IACnB;AAAA;AAAA;;;ACtFA;AAAA;AAAA;AAAA;AAAA,YAAY,UAAU;AACtB,SAAS,aAAa;AACtB,YAAY,WAAW;AACvB,SAAS,SAAS,eAAe;AACjC,SAAS,SAAAU,cAAa;AAMtB,SAAS,wBAAwB,EAAE,OAAO,iBAAiB,WAAW,eAAe,YAAY,gBAAgB,mBAAmB,CAAC,EAAG,IAAI,CAAC,GAAG;AAC5I,QAAM,YAAY,iBAAiB,mBAAmB;AACtD,QAAM,aAAa,kBAAkB,mBAAmB;AACxD,SAAO;AAAA,IACH,KAAK,SAAS;AACV,aAAO,IAAI,QAAQ,aAAW;AAC1B,cAAM,MAAMA,OAAM,QAAQ,GAAG;AAC7B,cAAM,OAAO,IAAI,UAAU,OAAO,IAAI,WAAW,GAAG,IAAI,QAAQ,IAAI,IAAI,KAAK;AAC7E,cAAM,UAAU;AAAA,UACZ,GAAG;AAAA,UACH,OAAO,IAAI,aAAa,WAAW,aAAa;AAAA,UAChD,UAAU,IAAI;AAAA,UACd;AAAA,UACA,QAAQ,QAAQ;AAAA,UAChB,SAAS;AAAA,YACL,GAAI,oBAAoB,iBAAiB,UAAU,iBAAiB,UAAU,CAAC;AAAA,YAC/E,GAAG,QAAQ;AAAA,UACf;AAAA,UACA,GAAI,IAAI,SAAS,SAAY,EAAE,MAAM,IAAI,QAAQ,GAAG,IAAI,CAAC;AAAA,QAC7D;AACA,cAAM,OAAO,IAAI,aAAa,WAAW,QAAQ,MAAM,QAAQ,SAAS,cAAY;AAEhF,cAAI,iBAAiB,CAAC;AACtB,mBAAS,GAAG,QAAQ,WAAS;AACzB,6BAAiB,eAAe,OAAO,KAAK;AAAA,UAChD,CAAC;AACD,mBAAS,GAAG,OAAO,MAAM;AAErB,yBAAa,cAAc;AAE3B,yBAAa,eAAe;AAC5B,oBAAQ;AAAA,cACJ,QAAQ,SAAS,cAAc;AAAA,cAC/B,SAAS,OAAO,OAAO,cAAc,EAAE,SAAS;AAAA,cAChD,YAAY;AAAA,YAChB,CAAC;AAAA,UACL,CAAC;AAAA,QACL,CAAC;AACD,cAAM,gBAAgB,CAAC,SAAS,YAAY;AACxC,iBAAO,WAAW,MAAM;AACpB,gBAAI,MAAM;AACV,oBAAQ;AAAA,cACJ,QAAQ;AAAA,cACR;AAAA,cACA,YAAY;AAAA,YAChB,CAAC;AAAA,UACL,GAAG,UAAU,GAAI;AAAA,QACrB;AACA,cAAM,iBAAiB,cAAc,QAAQ,gBAAgB,oBAAoB;AAEjF,YAAI;AACJ,YAAI,GAAG,SAAS,WAAS;AACrB,uBAAa,cAAc;AAC3B,uBAAa,eAAe;AAC5B,kBAAQ,EAAE,QAAQ,GAAG,SAAS,MAAM,SAAS,YAAY,MAAM,CAAC;AAAA,QACpE,CAAC;AACD,YAAI,KAAK,YAAY,MAAM;AACvB,uBAAa,cAAc;AAC3B,4BAAkB,cAAc,QAAQ,iBAAiB,gBAAgB;AAAA,QAC7E,CAAC;AACD,YAAI,QAAQ,SAAS,QAAW;AAC5B,cAAI,MAAM,QAAQ,IAAI;AAAA,QAC1B;AACA,YAAI,IAAI;AAAA,MACZ,CAAC;AAAA,IACL;AAAA,IACA,UAAU;AACN,gBAAU,QAAQ;AAClB,iBAAW,QAAQ;AACnB,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAAA,EACJ;AACJ;AAlFA,IAOM,cACA,kBACA;AATN;AAAA;AAAA;AAOA,IAAM,eAAe,EAAE,WAAW,KAAK;AACvC,IAAM,mBAAmB,IAAI,MAAM,YAAY;AAC/C,IAAM,oBAAoB,IAAI,QAAQ,YAAY;AAAA;AAAA;;;ACTlD;AAAA;AAAA;AAEA,QAAI,cAAc;AAClB,QAAI,gBAAgB;AACpB,QAAI,eAAe;AACnB,QAAI,eAAe;AACnB,QAAI,oBAAoB;AACxB,QAAI,cAAc;AAClB,QAAI,kBAAkB;AAEtB,QAAM,wBAAwB,aAAW;AACrC,YAAM,QAAQ,QAAQ;AACtB,YAAM,OAAO,aAAa,WAAW,QAAQ,aAAa,SAAY,QAAQ,WAAW,aAAa,SAAS,eAAe,OAAO,QAAQ,MAAM;AACnJ,YAAM,gBAAgB,YAAY,kBAAkB;AAAA,QAChD,OAAO;AAAA,UACH,EAAE,KAAK,GAAG,KAAK,oBAAoB,QAAQ,YAAY,SAAS,KAAK;AAAA,UACrE,EAAE,KAAK,GAAG,KAAK,gBAAgB,QAAQ,YAAY,SAAS,MAAM;AAAA,QACtE,EAAE,OAAO,aAAa,QAAQ;AAAA,UAC1B,EAAE,KAAK,GAAG,KAAK,oBAAoB;AAAA,UACnC,EAAE,KAAK,GAAG,KAAK,oBAAoB;AAAA,UACnC,EAAE,KAAK,GAAG,KAAK,oBAAoB;AAAA,QACvC,CAAC,CAAC;AAAA,QACF,GAAG;AAAA,QACH,SAAS;AAAA,UACL,GAAG,KAAK,QAAQ;AAAA,UAChB,GAAG,EAAE,gBAAgB,oCAAoC;AAAA,UACzD,GAAG,QAAQ;AAAA,QACf;AAAA,QACA,iBAAiB;AAAA,UACb,GAAG,KAAK,gBAAgB;AAAA,UACxB,GAAG,QAAQ;AAAA,QACf;AAAA,MACJ,CAAC;AACD,YAAM,OAAO;AAAA,QACT,aAAa;AAAA,QACb;AAAA,QACA,gBAAgB,SAASC,UAAS;AAC9B,wBAAc,UAAU,IAAI,EAAE,SAAS,SAAAA,SAAQ,CAAC;AAAA,QACpD;AAAA,QACA,aAAa;AACT,iBAAO,QAAQ,IAAI;AAAA,YACf,cAAc,cAAc,MAAM;AAAA,YAClC,cAAc,eAAe,MAAM;AAAA,UACvC,CAAC,EAAE,KAAK,MAAM,MAAS;AAAA,QAC3B;AAAA,MACJ;AACA,aAAO,aAAa,WAAW,MAAM,QAAQ,OAAO;AAAA,IACxD;AAEA,QAAM,qBAAqB,UAAQ;AAC/B,aAAO,CAAC,SAAS,mBAAmB;AAChC,cAAM,WAAW,QAAQ,IAAI,YAAU;AAAA,UACnC,GAAG;AAAA;AAAA;AAAA;AAAA,UAIH,WAAW,MAAM,aAAa;AAAA,QAClC,EAAE;AACF,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,gBAAgB,WAAW;AAAA,UACnC,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,QACf,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,QAAM,8BAA8B,UAAQ;AACxC,aAAO,CAAC,SAAS,mBAAmB;AAChC,eAAO,mBAAmB,IAAI,EAAE,QAAQ,IAAI,YAAU;AAAA,UAClD,GAAG;AAAA,UACH,oBAAoB,CAAC;AAAA,UACrB,OAAO;AAAA,QACX,EAAE,GAAG,cAAc;AAAA,MACvB;AAAA,IACJ;AAEA,QAAM,qBAAqB,UAAQ;AAC/B,aAAO,CAAC,SAAS,mBAAmB;AAChC,eAAO,mBAAmB,IAAI,EAAE,QAAQ,IAAI,YAAU;AAAA,UAClD,GAAG;AAAA,UACH,OAAO;AAAA,QACX,EAAE,GAAG,cAAc;AAAA,MACvB;AAAA,IACJ;AAEA,QAAM,oBAAoB,UAAQ;AAC9B,aAAO,CAAC,SAAS,mBAAmB;AAChC,cAAM,WAAW,QAAQ,IAAI,YAAU;AAAA,UACnC,GAAG;AAAA,UACH,OAAO;AAAA;AAAA;AAAA;AAAA,UAIP,WAAW,MAAM,aAAa;AAAA,QAClC,EAAE;AACF,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,gBAAgB,WAAW;AAAA,UACnC,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,QACf,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,QAAM,mBAAmB,UAAQ;AAC7B,aAAO,CAAC,SAAS,mBAAmB;AAChC,cAAM,WAAW,QAAQ,IAAI,YAAU;AAAA,UACnC,GAAG;AAAA,UACH,OAAO;AAAA;AAAA;AAAA;AAAA,UAIP,WAAW,MAAM,aAAa;AAAA,QAClC,EAAE;AACF,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,gBAAgB,WAAW;AAAA,UACnC,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,QACf,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,QAAM,oBAAoB,UAAQ;AAC9B,aAAO,CAAC,SAAS,mBAAmB;AAChC,eAAO,mBAAmB,IAAI,EAAE,QAAQ,IAAI,YAAU;AAAA,UAClD,GAAG;AAAA,UACH,OAAO;AAAA,QACX,EAAE,GAAG,cAAc;AAAA,MACvB;AAAA,IACJ;AAEA,QAAM,uBAAuB,UAAQ;AACjC,aAAO,CAAC,SAAS,mBAAmB;AAChC,cAAM,WAAW,QAAQ,IAAI,YAAU;AAAA,UACnC,GAAG;AAAA,UACH,OAAO;AAAA,UACP,WAAW,MAAM,aAAa;AAAA,QAClC,EAAE;AACF,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,gBAAgB,WAAW;AAAA,UACnC,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,QACf,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,aAAS,UAAU,OAAO,QAAQ,SAAS;AACvC,YAAM,gBAAgB;AAAA,QAClB;AAAA,QACA;AAAA,QACA,UAAU;AAAA,UACN,SAAS;AAAA,UACT,MAAM;AAAA,UACN,OAAO;AAAA,QACX;AAAA,QACA,WAAW,kBAAkB,wBAAwB;AAAA,QACrD,QAAQ,aAAa,iBAAiB;AAAA,QACtC,gBAAgB,YAAY,gBAAgB;AAAA,QAC5C,eAAe,YAAY,gBAAgB;AAAA,QAC3C,YAAY,cAAc,oBAAoB;AAAA,QAC9C,WAAW,YAAY,gBAAgB,aAAa,OAAO,EACtD,IAAI,EAAE,SAAS,aAAa,SAAS,aAAa,QAAQ,CAAC,EAC3D,IAAI,EAAE,SAAS,WAAW,SAAS,QAAQ,SAAS,KAAK,CAAC;AAAA,MACnE;AACA,aAAO,sBAAsB;AAAA,QACzB,GAAG;AAAA,QACH,GAAG;AAAA,QACH,SAAS;AAAA,UACL,SAAS,aAAa;AAAA,UACtB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACJ;AAAA,MACJ,CAAC;AAAA,IACL;AAEA,cAAU,UAAU,aAAa;AACjC,cAAU,8BAA8B;AACxC,cAAU,qBAAqB;AAC/B,cAAU,qBAAqB;AAC/B,cAAU,oBAAoB;AAC9B,cAAU,mBAAmB;AAC7B,cAAU,oBAAoB;AAC9B,cAAU,uBAAuB;AAEjC,WAAO,UAAU;AAAA;AAAA;;;ACxMjB;AAAA;AAAA;AACA,QAAM,YAAY;AAOlB,WAAO,UAAU;AAMjB,WAAO,QAAQ,UAAU;AAAA;AAAA;;;ACdzB,IAAAC,mCAAA;AAAA,SAAAA,kCAAA;AAAA,iCAAAC;AAAA;AAAA,YAAYC,WAAU;AACtB,SAAS,SAAAC,cAAa;AACtB,YAAYC,YAAW;AACvB,SAAS,SAASC,gBAAe;AACjC,SAAS,SAAAC,cAAa;AAMtB,SAASL,yBAAwB,EAAE,OAAO,iBAAiB,WAAW,eAAe,YAAY,gBAAgB,mBAAmB,CAAC,EAAG,IAAI,CAAC,GAAG;AAC5I,QAAM,YAAY,iBAAiB,mBAAmBM;AACtD,QAAM,aAAa,kBAAkB,mBAAmBC;AACxD,SAAO;AAAA,IACH,KAAK,SAAS;AACV,aAAO,IAAI,QAAQ,aAAW;AAC1B,cAAM,MAAMF,OAAM,QAAQ,GAAG;AAC7B,cAAM,OAAO,IAAI,UAAU,OAAO,IAAI,WAAW,GAAG,IAAI,QAAQ,IAAI,IAAI,KAAK;AAC7E,cAAM,UAAU;AAAA,UACZ,GAAG;AAAA,UACH,OAAO,IAAI,aAAa,WAAW,aAAa;AAAA,UAChD,UAAU,IAAI;AAAA,UACd;AAAA,UACA,QAAQ,QAAQ;AAAA,UAChB,SAAS;AAAA,YACL,GAAI,oBAAoB,iBAAiB,UAAU,iBAAiB,UAAU,CAAC;AAAA,YAC/E,GAAG,QAAQ;AAAA,UACf;AAAA,UACA,GAAI,IAAI,SAAS,SAAY,EAAE,MAAM,IAAI,QAAQ,GAAG,IAAI,CAAC;AAAA,QAC7D;AACA,cAAM,OAAO,IAAI,aAAa,WAAWF,SAAQF,OAAM,QAAQ,SAAS,cAAY;AAEhF,cAAI,iBAAiB,CAAC;AACtB,mBAAS,GAAG,QAAQ,WAAS;AACzB,6BAAiB,eAAe,OAAO,KAAK;AAAA,UAChD,CAAC;AACD,mBAAS,GAAG,OAAO,MAAM;AAErB,yBAAa,cAAc;AAE3B,yBAAa,eAAe;AAC5B,oBAAQ;AAAA,cACJ,QAAQ,SAAS,cAAc;AAAA,cAC/B,SAAS,OAAO,OAAO,cAAc,EAAE,SAAS;AAAA,cAChD,YAAY;AAAA,YAChB,CAAC;AAAA,UACL,CAAC;AAAA,QACL,CAAC;AACD,cAAM,gBAAgB,CAAC,SAAS,YAAY;AACxC,iBAAO,WAAW,MAAM;AACpB,gBAAI,MAAM;AACV,oBAAQ;AAAA,cACJ,QAAQ;AAAA,cACR;AAAA,cACA,YAAY;AAAA,YAChB,CAAC;AAAA,UACL,GAAG,UAAU,GAAI;AAAA,QACrB;AACA,cAAM,iBAAiB,cAAc,QAAQ,gBAAgB,oBAAoB;AAEjF,YAAI;AACJ,YAAI,GAAG,SAAS,WAAS;AACrB,uBAAa,cAAc;AAC3B,uBAAa,eAAe;AAC5B,kBAAQ,EAAE,QAAQ,GAAG,SAAS,MAAM,SAAS,YAAY,MAAM,CAAC;AAAA,QACpE,CAAC;AACD,YAAI,KAAK,YAAY,MAAM;AACvB,uBAAa,cAAc;AAC3B,4BAAkB,cAAc,QAAQ,iBAAiB,gBAAgB;AAAA,QAC7E,CAAC;AACD,YAAI,QAAQ,SAAS,QAAW;AAC5B,cAAI,MAAM,QAAQ,IAAI;AAAA,QAC1B;AACA,YAAI,IAAI;AAAA,MACZ,CAAC;AAAA,IACL;AAAA,IACA,UAAU;AACN,gBAAU,QAAQ;AAClB,iBAAW,QAAQ;AACnB,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAAA,EACJ;AACJ;AAlFA,IAOMO,eACAF,mBACAC;AATN,IAAAE,gCAAA;AAAA;AAAA;AAOA,IAAMD,gBAAe,EAAE,WAAW,KAAK;AACvC,IAAMF,oBAAmB,IAAIJ,OAAMM,aAAY;AAC/C,IAAMD,qBAAoB,IAAIH,SAAQI,aAAY;AAAA;AAAA;;;ACTlD;AAAA;AAAA;AAEA,QAAI,cAAc;AAClB,QAAI,gBAAgB;AACpB,QAAI,kBAAkB;AACtB,QAAI,eAAe;AACnB,QAAI,wBAAwB;AAC5B,QAAI,eAAe;AACnB,QAAI,eAAe;AACnB,QAAI,YAAY;AAChB,QAAI,oBAAoB;AACxB,QAAI,cAAc;AAElB,aAASE,eAAc,OAAO,QAAQ,SAAS;AAC3C,YAAM,gBAAgB;AAAA,QAClB;AAAA,QACA;AAAA,QACA,UAAU;AAAA,UACN,SAAS;AAAA,UACT,MAAM;AAAA,UACN,OAAO;AAAA,QACX;AAAA,QACA,WAAW,kBAAkB,wBAAwB;AAAA,QACrD,QAAQ,aAAa,iBAAiB;AAAA,QACtC,gBAAgB,YAAY,gBAAgB;AAAA,QAC5C,eAAe,YAAY,gBAAgB;AAAA,QAC3C,YAAY,cAAc,oBAAoB;AAAA,QAC9C,WAAW,YAAY,gBAAgB,aAAa,OAAO,EAAE,IAAI;AAAA,UAC7D,SAAS;AAAA,UACT,SAAS,QAAQ,SAAS;AAAA,QAC9B,CAAC;AAAA,MACL;AACA,YAAM,sBAAsB,EAAE,GAAG,eAAe,GAAG,QAAQ;AAC3D,YAAM,sBAAsB,MAAM,CAAC,kBAAkB;AACjD,eAAO,sBAAsB,4BAA4B;AAAA,UACrD,GAAG;AAAA,UACH,GAAG;AAAA,UACH,SAAS;AAAA,YACL,4BAA4B,sBAAsB;AAAA,YAClD,4BAA4B,sBAAsB;AAAA,UACtD;AAAA,QACJ,CAAC;AAAA,MACL;AACA,aAAO,aAAa,mBAAmB;AAAA,QACnC,GAAG;AAAA,QACH,SAAS;AAAA,UACL,QAAQ,aAAa;AAAA,UACrB,sBAAsB,aAAa;AAAA,UACnC,eAAe,aAAa;AAAA,UAC5B,oBAAoB,aAAa;AAAA,UACjC,iBAAiB,aAAa;AAAA,UAC9B,WAAW,aAAa;AAAA,UACxB,cAAc,aAAa;AAAA,UAC3B,WAAW,aAAa;AAAA,UACxB,cAAc,aAAa;AAAA,UAC3B,WAAW,aAAa;AAAA,UACxB,aAAa,aAAa;AAAA,UAC1B,SAAS,aAAa;AAAA,UACtB,cAAc,aAAa;AAAA,UAC3B,8BAA8B,aAAa;AAAA,UAC3C,WAAW,aAAa;AAAA,UACxB,WAAW,aAAa;AAAA,UACxB,aAAa,aAAa;AAAA,UAC1B,cAAc,aAAa;AAAA,UAC3B,cAAc,aAAa;AAAA,UAC3B,eAAe,aAAa;AAAA,UAC5B,cAAc,aAAa;AAAA,UAC3B,eAAe,aAAa;AAAA,UAC5B,WAAW,aAAa;AAAA,UACxB,eAAe,aAAa;AAAA,UAC5B,aAAa,aAAa;AAAA,UAC1B,eAAe,aAAa;AAAA,UAC5B,cAAc,aAAa;AAAA,UAC3B,oBAAoB,aAAa;AAAA,UACjC,uBAAuB,aAAa;AAAA,UACpC,mCAAmC,aAAa;AAAA,UAChD,SAAS,aAAa;AAAA,UACtB,wBAAwB,aAAa;AAAA,UACrC,yBAAyB,aAAa;AAAA,UACtC,uBAAuB,aAAa;AAAA,UACpC,YAAY,aAAa;AAAA,UACzB,0BAA0B,aAAa;AAAA,UACvC,uBAAuB,aAAa;AAAA,UACpC,yBAAyB,aAAa;AAAA,UACtC,uBAAuB,aAAa;AAAA,UACpC,aAAa,aAAa;AAAA,UAC1B,eAAe,aAAa;AAAA,UAC5B,WAAW,UAAQ,CAAC,cAAc;AAC9B,mBAAO,aAAa,UAAU,IAAI,EAAE,WAAW;AAAA,cAC3C,SAAS;AAAA,gBACL,OAAO,aAAa;AAAA,gBACpB,QAAQ,aAAa;AAAA,gBACrB,aAAa,aAAa;AAAA,gBAC1B,WAAW,aAAa;AAAA,gBACxB,YAAY,aAAa;AAAA,gBACzB,YAAY,aAAa;AAAA,gBACzB,aAAa,aAAa;AAAA,gBAC1B,QAAQ,aAAa;AAAA,gBACrB,sBAAsB,aAAa;AAAA,gBACnC,UAAU,aAAa;AAAA,gBACvB,aAAa,aAAa;AAAA,gBAC1B,aAAa,aAAa;AAAA,gBAC1B,qBAAqB,aAAa;AAAA,gBAClC,sBAAsB,aAAa;AAAA,gBACnC,cAAc,aAAa;AAAA,gBAC3B,eAAe,aAAa;AAAA,gBAC5B,UAAU,aAAa;AAAA,gBACvB,cAAc,aAAa;AAAA,gBAC3B,eAAe,aAAa;AAAA,gBAC5B,mBAAmB,aAAa;AAAA,gBAChC,YAAY,aAAa;AAAA,gBACzB,QAAQ,aAAa;AAAA,gBACrB,aAAa,aAAa;AAAA,gBAC1B,cAAc,aAAa;AAAA,gBAC3B,YAAY,aAAa;AAAA,gBACzB,gBAAgB,aAAa;AAAA,gBAC7B,gBAAgB,aAAa;AAAA,gBAC7B,eAAe,aAAa;AAAA,gBAC5B,eAAe,aAAa;AAAA,gBAC5B,mBAAmB,aAAa;AAAA,gBAChC,oBAAoB,aAAa;AAAA,gBACjC,aAAa,aAAa;AAAA,gBAC1B,SAAS,aAAa;AAAA,gBACtB,YAAY,aAAa;AAAA,gBACzB,UAAU,aAAa;AAAA,gBACvB,WAAW,aAAa;AAAA,gBACxB,iBAAiB,aAAa;AAAA,gBAC9B,aAAa,aAAa;AAAA,gBAC1B,YAAY,aAAa;AAAA,cAC7B;AAAA,YACJ,CAAC;AAAA,UACL;AAAA,UACA,eAAe,MAAM,CAAC,kBAAkB;AACpC,mBAAO,gBAAgB,sBAAsB;AAAA,cACzC,GAAG;AAAA,cACH,GAAG;AAAA,cACH,SAAS;AAAA,gBACL,WAAW,gBAAgB;AAAA,gBAC3B,WAAW,gBAAgB;AAAA,gBAC3B,YAAY,gBAAgB;AAAA,gBAC5B,YAAY,gBAAgB;AAAA,gBAC5B,cAAc,gBAAgB;AAAA,cAClC;AAAA,YACJ,CAAC;AAAA,UACL;AAAA,UACA;AAAA,UACA,oBAAoB,MAAM,CAAC,kBAAkB;AACzC,gCAAoB,OAAO,KAAK,mFAAmF;AACnH,mBAAO,oBAAoB,EAAE,aAAa;AAAA,UAC9C;AAAA,UACA,oBAAoB,UAAU;AAAA,UAC9B,6BAA6B,UAAU;AAAA,UACvC,mBAAmB,UAAU;AAAA,UAC7B,sBAAsB,UAAU;AAAA,UAChC,oBAAoB,UAAU;AAAA,UAC9B,mBAAmB,UAAU;AAAA,UAC7B,kBAAkB,UAAU;AAAA,QAChC;AAAA,MACJ,CAAC;AAAA,IACL;AAEA,IAAAA,eAAc,UAAU,aAAa;AAErC,WAAO,UAAUA;AAAA;AAAA;;;ACnKjB;AAAA;AAAA;AACA,QAAMC,iBAAgB;AAOtB,WAAO,UAAUA;AAMjB,WAAO,QAAQ,UAAUA;AAAA;AAAA;;;ACdzB;AAAA;AAAA;AACA,WAAO,UAAU;AAAA;AAAA;;;ACDjB,SAAS,OAAAC,YAAW;AACpB,SAAS,iBAAiB;;;ACA1B,SAAS,YAAY,aAAAC,YAAW,UAAAC,SAAQ,YAAAC,iBAAgB;AACxD,SAAS,OAAAC,MAAK,QAAAC,aAAY;AAC1B;AAAA,EAEE;AAAA,OACK;AACP,OAAOC,cAAa;AACpB,OAAO,WAAW;AAClB,SAAS,cAAc;AAEvB,SAAS,UAAU;;;ACTnB,IAAM,eAA4B;AAAA,EAChC,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,SAAS;AAAA,EACT,OAAO;AAAA,EACP,mBAAmB;AAAA,IACjB,aAAa;AAAA,IACb,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,KAAI;AAAA,MACF,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,IAAI;AAAA,IACF,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,IAAI;AAAA,IACJ,aAAa;AAAA,IACb,eAAe;AAAA,IACf,SAAS;AAAA,IACT,gBAAgB;AAAA,EAClB;AAAA,EACA,UAAU;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,IAAI;AAAA,EACN;AACF;AAEA,IAAM,eAA4B;AAAA,EAChC,aAAa;AAAA,EACb,WAAW;AACb;AAEA,IAAO,iBAAQ;AAAA,EACb;AAAA,EACA;AACF;;;ACzCA,SAAS,MAAM,WAAW;;;ACC1B,SAAS,YAAY;AASjB,SAOE,KAPF;AAPJ,IAAM,cAAc,CAAC,UACnB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,MAAM;AAAA,IAEN;AAAA,MAAC;AAAA;AAAA,QACC,eAAc;AAAA,QACd,gBAAe;AAAA,QACf,aAAY;AAAA,QACZ,MAAK;AAAA,QACL,QAAO;AAAA,QAEP;AAAA;AAAA,YAAC;AAAA;AAAA,cACC,GAAE;AAAA,cACF,GAAE;AAAA,cACF,OAAM;AAAA,cACN,QAAO;AAAA,cACP,MAAK;AAAA,cACL,QAAO;AAAA,cACP,kBAAiB;AAAA;AAAA,UACnB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,QAAO;AAAA,cACP,MAAK;AAAA,cACL,kBAAiB;AAAA,cACjB,eAAc;AAAA;AAAA,UAChB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,IAAG;AAAA,cACH,IAAG;AAAA,cACH,IAAG;AAAA,cACH,IAAG;AAAA,cACH,MAAK;AAAA,cACL,QAAO;AAAA,cACP,kBAAiB;AAAA;AAAA,UACnB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,GAAE;AAAA,cACF,GAAE;AAAA,cACF,OAAM;AAAA,cACN,QAAO;AAAA,cACP,MAAK;AAAA,cACL,QAAO;AAAA,cACP,kBAAiB;AAAA;AAAA,UACnB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,IAAG;AAAA,cACH,IAAG;AAAA,cACH,IAAG;AAAA,cACH,IAAG;AAAA,cACH,MAAK;AAAA,cACL,QAAO;AAAA,cACP,kBAAiB;AAAA;AAAA,UACnB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,GAAE;AAAA,cACF,GAAE;AAAA,cACF,OAAM;AAAA,cACN,QAAO;AAAA,cACP,MAAK;AAAA,cACL,QAAO;AAAA,cACP,kBAAiB;AAAA;AAAA,UACnB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,IAAG;AAAA,cACH,IAAG;AAAA,cACH,IAAG;AAAA,cACH,IAAG;AAAA,cACH,MAAK;AAAA,cACL,QAAO;AAAA,cACP,kBAAiB;AAAA;AAAA,UACnB;AAAA;AAAA;AAAA,IACF;AAAA;AACF;AAGF,IAAM,QAAQ,CAAC,UACb;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,MAAM;AAAA,IAEN;AAAA,MAAC;AAAA;AAAA,QACC,eAAc;AAAA,QACd,gBAAe;AAAA,QACf,aAAY;AAAA,QACZ,MAAK;AAAA,QACL,QAAO;AAAA,QAEP;AAAA;AAAA,YAAC;AAAA;AAAA,cACC,GAAE;AAAA,cACF,GAAE;AAAA,cACF,OAAM;AAAA,cACN,QAAO;AAAA,cACP,MAAK;AAAA,cACL,QAAO;AAAA,cACP,kBAAiB;AAAA;AAAA,UACnB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,GAAE;AAAA,cACF,GAAE;AAAA,cACF,OAAM;AAAA,cACN,QAAO;AAAA,cACP,MAAK;AAAA,cACL,kBAAiB;AAAA;AAAA,UACnB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,GAAE;AAAA,cACF,GAAE;AAAA,cACF,OAAM;AAAA,cACN,QAAO;AAAA,cACP,MAAK;AAAA,cACL,kBAAiB;AAAA;AAAA,UACnB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,GAAE;AAAA,cACF,GAAE;AAAA,cACF,OAAM;AAAA,cACN,QAAO;AAAA,cACP,MAAK;AAAA,cACL,kBAAiB;AAAA;AAAA,UACnB;AAAA;AAAA;AAAA,IACF;AAAA;AACF;AA+DF,IAAM,cAAc,CAAC,UACnB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAM,aAAa,CAAC,UAClB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAM,eAAe,CAAC,UACpB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACd;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACd;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAM,gBAAgB,CAAC,UACrB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,OAAO,CAAC,UACZ;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,YAAY,CAAC,UACjB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,YAAY,CAAC,UACjB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,cAAc,CAAC,UACnB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,UAAU,CAAC,UACf;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAEF,IAAM,aAAa,CAAC,UAClB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,SAAS,CAAC,UACd;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEN;AAAA;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAY;AAAA,UACZ,MAAK;AAAA,UACL,QAAO;AAAA,UAEN;AAAA;AAAA,YACD;AAAA,cAAC;AAAA;AAAA,gBACC,GAAE;AAAA,gBACF,GAAE;AAAA,gBACF,OAAM;AAAA,gBACN,QAAO;AAAA,gBACP,MAAK;AAAA,gBACL,QAAO;AAAA,gBACP,kBAAiB;AAAA;AAAA,YAClB;AAAA,YAAQ;AAAA,YACT;AAAA,cAAC;AAAA;AAAA,gBACC,GAAE;AAAA,gBACF,GAAE;AAAA,gBACF,OAAM;AAAA,gBACN,QAAO;AAAA,gBACP,MAAK;AAAA,gBACL,kBAAiB;AAAA;AAAA,YAClB;AAAA,YAAQ;AAAA,YACT;AAAA,cAAC;AAAA;AAAA,gBACC,GAAE;AAAA,gBACF,GAAE;AAAA,gBACF,OAAM;AAAA,gBACN,QAAO;AAAA,gBACP,MAAK;AAAA,gBACL,kBAAiB;AAAA;AAAA,YAClB;AAAA,YAAQ;AAAA,YACT;AAAA,cAAC;AAAA;AAAA,gBACC,GAAE;AAAA,gBACF,GAAE;AAAA,gBACF,OAAM;AAAA,gBACN,QAAO;AAAA,gBACP,MAAK;AAAA,gBACL,kBAAiB;AAAA;AAAA,YAClB;AAAA,YAAQ;AAAA;AAAA;AAAA,MACX;AAAA;AAAA;AACF;AAEF,IAAM,YAAY,CAAC,UACjB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAEF,IAAM,oBAAoB,CAAC,UACzB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAEF,IAAM,OAAO,CAAC,UACZ;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,WAAW,CAAC,UAChB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA,MAAC;AAAA;AAAA,QACC,eAAc;AAAA,QACd,aAAY;AAAA,QACZ,MAAK;AAAA,QACL,QAAO;AAAA,QACP,gBAAe;AAAA,QACf,kBAAiB;AAAA,QAEjB;AAAA,8BAAC,UAAK,GAAE,KAAI,GAAE,MAAK,OAAM,KAAI,QAAO,KAAI;AAAA,UACxC,oBAAC,UAAK,GAAE,MAAK,GAAE,MAAK,OAAM,KAAI,QAAO,KAAI;AAAA,UACzC,oBAAC,UAAK,GAAE,KAAI,GAAE,KAAI,OAAM,KAAI,QAAO,KAAI;AAAA,UACvC;AAAA,YAAC;AAAA;AAAA,cACC,QAAO;AAAA,cACP,YAAS;AAAA,cACT,eAAc;AAAA,cACd,QAAO;AAAA;AAAA,UACR;AAAA,UACD,oBAAC,UAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK;AAAA,UACrC,oBAAC,UAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK;AAAA,UACtC,oBAAC,UAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK;AAAA;AAAA;AAAA,IACtC;AAAA;AACF;AAGF,IAAM,WAAW,CAAC,UAChB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP,+BAAC,OAAE,MAAK,WACN;AAAA,0BAAC,UAAK,GAAE,sgBAAqgB;AAAA,MAC7gB;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACN;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACN;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACN;AAAA,OACH;AAAA;AACF;AAGF,IAAM,UAAU,CAAC,UACf;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,SAAS,CAAC,UACd;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,WAAW,CAAC,UAChB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,WAAW,CAAC,UAChB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,aAAa,CAAC,UAClB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,UAAU,CAAC,UACf;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,oBAAoB,CAAC,UACzB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,cAAc,CAAC,UACnB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAEF,IAAM,gBAAgB,CAAC,UACrB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP,+BAAC,SACC;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,OACF;AAAA;AACF;AAGF,IAAM,cAAc,CAAC,UACnB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP,+BAAC,SACC;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,OACF;AAAA;AACF;;;ADz8CF,OAAO,UAAU;AAyIX,SACW,OAAAC,MADX,QAAAC,aAAA;AAlIN,IAAM,WAAqB;AAAA,EACzB;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AACF;AAEA,IAAM,UAAU,CAAC,SAAiB;AAChC,SAAO,SAAS,KAAK,CAACC,UAASA,MAAK,SAAS,IAAI,GAAG;AACtD;AASA,IAAM,eAAe,CAAC,EAAE,MAAAA,OAAM,MAAAC,OAAM,SAAS,MAAyB;AACpE,QAAMC,SAAO,QAAQF,KAAI;AACzB,SACE,gBAAAF,KAAC,QAAK,MAAMG,OACV,0BAAAF,MAAC,QAAK,IAAI,eAAO,cACd;AAAA,IAAAG,UAAQ,gBAAAJ,KAACI,QAAA,EAAK,IAAI,eAAO,cAAc;AAAA,IACxC,gBAAAJ,KAAC,OAAK,UAAS;AAAA,KACjB,GACF;AAEJ;AAEA,IAAO,wBAAQ;;;AEpJf,wBAAsB;AAOlB,gBAAAK,YAAA;AAFJ,IAAM,eAAe,CAAC,EAAE,QAAQ,MAC9B,gBAAAA,KAAC,SAAI,WAAU,oBACb,0BAAAA;AAAA,EAAC;AAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,KAAK,iCAAiC,OAAO;AAAA,IAC7C,aAAY;AAAA,IACZ,OAAM;AAAA,IACN,iBAAe;AAAA,IACf,OAAM;AAAA;AACR,GACF;AAGF,aAAa,YAAY;AAAA,EACvB,SAAS,kBAAAC,QAAU,OAAO;AAC5B;AAEA,IAAO,wBAAQ;;;ACvBf,SAAS,OAAAC,YAAW;;;ACCpB,IAAM,QAAqB;AAAA,EACzB,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,YAAY;AAAA,EACZ,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,YAAY;AAAA,IACV,kBAAkB;AAAA,EACpB;AAAA,EACA,mBAAmB;AAAA,IACjB,SAAS;AAAA,IACT,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,iBAAiB;AAAA,IACjB,cAAc;AAAA,IACd,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,WAAW;AAAA,EACb;AACF;AAEA,IAAOC,kBAAQ;AAAA,EACb;AACF;;;ADvBS,gBAAAC,YAAA;AADT,IAAM,QAAQ,CAAC,EAAE,SAAS,MAAkB;AAC1C,SAAO,gBAAAA,KAACC,MAAA,EAAI,IAAIC,gBAAO,OAAQ,UAAS;AAC1C;AACA,IAAO,gBAAQ;;;AEVf,SAA8B,aAAAC,YAAW,QAAQ,gBAAgB;AACjE,SAAS,OAAAC,MAAK,QAAQ,QAAAC,aAAY;;;ACClC,SAAS,QAAAC,aAAY;AAGnB,SAQE,OAAAC,MARF,QAAAC,aAAA;AADF,IAAM,YAAY,CAAC,UACjB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,qBAAQ;;;AC9Bf,SAAS,iBAA6D;AAEvD,SAAR,gBACL,KAEA,WACA;AACA,YAAU,MAAM;AACd,aAAS,mBAAmB,OAAmB;AAC7C,YAAM,EAAE,MAAAE,OAAM,gBAAgB,IAAI;AAClC,UACE,IAAI,WACJ,MAAM,kBAAkB,QACxB,CAAC,IAAI,QAAQ,SAAS,MAAM,MAAM,GAClC;AACA,kBAAU,EAAE,aAAa,MAAM,CAAC;AAChC,cAAM,YAAYA,MAAK,sBAAsB,EAAE,MAAM;AACrD,QAAAA,MAAK,UAAU,OAAO,YAAY;AAClC,wBAAgB,YAAY;AAC5B,QAAAA,MAAK,MAAM,eAAe,KAAK;AAAA,MACjC;AAAA,IACF;AACA,aAAS,iBAAiB,aAAa,kBAAkB;AACzD,WAAO,MAAM;AACX,eAAS,oBAAoB,aAAa,kBAAkB;AAAA,IAC9D;AAAA,EACF,GAAG,CAAC,CAAC;AACP;;;ACzBA,IAAM,iBAA8B;AAAA,EAClC,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,YAAY;AAAA,EACZ,UAAU;AAAA,IACR,WAAW;AAAA,EACb;AAAA,EAEA,SAAS;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA,IACT,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,cAAc;AAAA,EAChB;AACF;AAEA,IAAM,YAAyB;AAAA,EAC7B,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,iBAAiB;AAAA,EACjB,UAAU;AAAA,EACV,KAAK;AAAA,EACL,MAAM;AAAA,EACN,SAAS;AAAA,EACT,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,QAAQ;AACV;AAEA,IAAM,QAAqB;AAAA,EACzB,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,SAAS;AAAA,EAET,SAAS;AAAA,IACP,SAAS;AAAA,IACT,WAAW;AAAA,IACX,UAAU;AAAA,IACV,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,EACX;AACF;AAEA,IAAM,cAA2B;AAAA,EAC/B,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,OAAO;AAAA,EACP,OAAO;AAAA,EAEP,UAAU;AAAA,IACR,OAAO;AAAA,EACT;AACF;AAEA,IAAOC,kBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;AH1CQ,SAMgB,OAAAC,MANhB,QAAAC,aAAA;AApBO,SAAR,SAA0B,EAAE,SAAS,GAAU;AACpD,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,KAAK;AACpD,QAAM,WAAW,OAAuB;AAExC,EAAAC,WAAU,MAAM;AACd,QAAI,aAAa;AACf,YAAM,YAAY,SAAS,KAAK,sBAAsB,EAAE;AACxD,eAAS,KAAK,MAAM,MAAM,GAAG,SAAS;AACtC,eAAS,KAAK,UAAU,IAAI,YAAY;AAAA,IAC1C,OAAO;AACL,eAAS,KAAK,UAAU,OAAO,YAAY;AAC3C,eAAS,KAAK,MAAM,eAAe,KAAK;AAAA,IAC1C;AAAA,EACF,GAAG,CAAC,WAAW,CAAC;AAEhB,kBAAgB,UAAU,MAAM,eAAe,KAAK,CAAC;AAErD,SACE,gBAAAD,MAAC,SACE;AAAA,mBACC,gBAAAA,MAACE,OAAA,EAAK,IAAIC,gBAAO,WACf;AAAA,sBAAAJ;AAAA,QAAC;AAAA;AAAA,UACC,IAAII,gBAAO;AAAA,UACX,cAAY;AAAA,UACZ,MAAK;AAAA,UACL,SAAQ;AAAA,UACR,MAAM,MAAM,gBAAAJ,KAAC,sBAAU,MAAM,IAAI;AAAA,UACjC,SAAS,MAAM,eAAe,KAAK;AAAA;AAAA,MACrC;AAAA,MACA,gBAAAA,KAACK,MAAA,EAAI,IAAID,gBAAO,OAAO,KAAK,UACzB,UACH;AAAA,OACF;AAAA,IAEF,gBAAAJ,KAACK,MAAA,EAAI,IAAID,gBAAO,gBAAgB,SAAS,MAAM,eAAe,IAAI,GAC/D,UACH;AAAA,KACF;AAEJ;;;AIhDA,SAAS,OAAAE,MAAK,QAAAC,OAAM,WAAW,MAAM,QAAAC,aAAY;;;ACCjD,IAAMC,aAAyB;AAAA,EAC7B,IAAI;AAAA,EACJ,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,OAAO,CAAC,QAAQ,KAAK;AAAA,EACrB,YAAY;AAAA,EACZ,UAAU;AAAA,IACR,QAAQ;AAAA,EACV;AAAA,EACA,mBAAmB;AAAA,IACjB,aAAa;AAAA,IACb,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,wBAAwB;AAAA,MACtB,YAAY;AAAA,MACZ,OAAO;AAAA,IACT;AAAA,IACA,iBAAiB;AAAA,MACf,YAAY;AAAA,MACZ,OAAO;AAAA,IACT;AAAA,EACF;AACF;AAEA,IAAM,QAAqB;AAAA,EACzB,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY,CAAC,QAAQ,MAAM;AAAA,EAC3B,OAAO;AACT;AAEA,IAAM,aAA0B;AAAA,EAC9B,SAAS;AAAA,EACT,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,UAAU;AAAA,IACR,SAAS;AAAA,IACT,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,YAAY;AAAA,EACd;AACF;AAEA,IAAM,cAA2B;AAAA,EAC/B,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,OAAO;AACT;AAEA,IAAM,gBAA6B;AAAA,EACjC,IAAI;AAAA,EACJ,YAAY;AACd;AAEA,IAAM,OAAoB;AAAA,EACxB,GAAG;AAAA,EACH,OAAO;AACT;AAEA,IAAOC,kBAAQ;AAAA,EACb,WAAAD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ADtEA,OAAO,WAAW;AAoBV,SACE,OAAAE,MADF,QAAAC,aAAA;AAVR,IAAM,gBAAgB,CAAC;AAAA,EACrB,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA4B;AAC1B,SACE,gBAAAH,KAACI,OAAA,EAAK,MAAM,QAAQ,IAAIC,gBAAO,WAC5B,kBACC,gBAAAJ,MAACK,MAAA,EACC;AAAA,oBAAAN;AAAA,MAAC;AAAA;AAAA,QACC,KAAK;AAAA,QACL,KAAKE;AAAA,QACL,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,OAAM;AAAA,QACN,OAAO,EAAE,OAAO,QAAQ,QAAQ,OAAO;AAAA;AAAA,IACzC;AAAA,IACA,gBAAAF,KAAC,QAAK,IAAIK,gBAAO,YAAY,WAAU,SACpC,UAAAH,QACH;AAAA,KACF,IAEA,gBAAAD,MAACK,MAAA,EAAI,IAAI,EAAE,SAAS,OAAO,GACzB;AAAA,oBAAAN,KAAC,QAAK,IAAIK,gBAAO,OAAO,WAAU,SAC/B,UAAAH,QACH;AAAA,IACCC,gBACC,gBAAAH,KAAC,QAAK,IAAIK,gBAAO,aAAa,WAAU,eACrC,UAAAF,cACH;AAAA,IAED,aACC,gBAAAF,MAACM,OAAA,EAAK,IAAIF,gBAAO,eACf;AAAA,sBAAAL,KAAC,QAAK,IAAIK,gBAAO,MAAM,WAAU,QAC9B,qBACH;AAAA,MACA,gBAAAL;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,OAAM;AAAA,UACN,WAAU;AAAA,UACV,MAAM;AAAA;AAAA,MACR;AAAA,OACF;AAAA,KAEJ,GAEJ;AAEJ;AAEA,IAAO,0BAAQ;;;AEhEf,SAAS,eAAe,aAAAQ,YAAW,YAAAC,iBAAgB;AAGnD,SAAS,iBAAiB;AAqNpB,gBAAAC,YAAA;AA/JC,IAAM,iBAAiB,cAA2B;AAAA,EACvD,cAAc,CAAC;AAAA,EACf,iBAAiB,MAAM;AAAA,EACvB,YAAY;AAAA,IACV,MAAM;AAAA,IACN,SAAS;AAAA,EACX;AAAA,EACA,eAAe,MAAM;AAAA,EACrB,kBAAkB,MAAM;AAAA,EACxB,qBAAqB,MAAM;AAAA,EAC3B,iBAAiB;AAAA,EACjB,sBAAsB;AAAA,EACtB,mBAAmB;AAAA,EACnB,sBAAsB;AAAA,EACtB,mBAAmB,CAAC;AAAA,EACpB,oBAAoB,MAAM;AAAA,EAC1B,sBAAsB,oBAAI,IAAI;AAAA;AAAA,EAE9B,sBAAsB,CAAC,MAAW;AAAA,EAClC,yBAAyB,MAAM;AAAA,EAC/B,sBAAsB,MAAM;AAAA;AAAA,EAE5B,yBAAyB,CAAC,MAAW;AAAA,EACrC,4BAA4B,MAAM;AAAA,EAClC,oBAAoB,MAAM;AAAA,EAC1B,sBAAsB,MAAM;AAAA,EAC5B,iBAAiB,CAAC;AAAA,EAClB,oBAAoB,MAAM;AAAA,EAC1B,oBAAoB,CAAC;AAAA,EACrB,uBAAuB,MAAM;AAAA,EAC7B,QAAQ;AACV,CAAC;AAGD,IAAM,yBAAyB,CAAC,EAAE,UAAU,GAAG,MAAM,MAAa;AAChE,QAAM,CAAC,cAAc,eAAe,IAAID,UAAiB,CAAC,CAAC;AAC3D,QAAM,CAAC,YAAY,aAAa,IAAIA,UAAqB;AAAA,IACvD,MAAM;AAAA,IACN,SAAS;AAAA,EACX,CAAC;AAED,QAAM,CAAC,mBAAmB,oBAAoB,IAAIA;AAAA,IAChD,MAAM;AAAA,EACR;AACA,QAAM,CAAC,sBAAsB,uBAAuB,IAAIA,UAAS,KAAK;AACtE,QAAM,CAAC,sBAAsB,uBAAuB,IAAIA,UAAS,EAAE;AACnE,QAAM,CAAC,sBAAsB,uBAAuB,IAAIA,UAAS,oBAAI,IAAI,CAAC;AAC1E,QAAM,CAAC,mBAAmB,oBAAoB,IAAIA,UAAS,MAAM,QAAQ;AACzE,QAAM,CAAC,iBAAiB,kBAAkB,IAAIA,UAAS,MAAM,SAAS;AACtE,QAAM,CAAC,iBAAiB,kBAAkB,IAAIA,UAAS,MAAM,QAAQ;AACrE,QAAM,CAAC,oBAAoB,qBAAqB,IAAIA;AAAA,IAClD,MAAM;AAAA,EACR;AACA,QAAM,EAAE,QAAQ,aAAa,GAAG,UAAU,IAAI;AAC9C,QAAM,SAAS,eAAe;AAC9B,QAAM,WAAW,UAAU;AAE3B,EAAAD,WAAU,MAAM;AACd,yBAAqB,MAAM,QAAQ;AAAA,EACrC,GAAG,CAAC,MAAM,QAAQ,CAAC;AAEnB,EAAAA,WAAU,MAAM;AACd,QAAI,MAAM,oBAAoB;AAAI,8BAAwB,IAAI;AAAA,aACrD,MAAM,oBAAoB;AACjC,2BAAqB,MAAM,eAAe;AAAA,EAC9C,GAAG,CAAC,MAAM,eAAe,CAAC;AAE1B,QAAM,6BAA6B,CAACG,WAAkB;AACpD,4BAAwB,CAACC,0BAAyB;AAChD,YAAM,OACJA,sBAAqB,IAAID,MAAK,MAAM,QAChC,OACA,CAACC,sBAAqB,IAAID,MAAK;AAErC,aAAO,IAAI,IAAIC,sBAAqB,IAAID,QAAO,IAAI,CAAC;AAAA,IACtD,CAAC;AAAA,EACH;AAEA,QAAM,uBAAuB,CAAC,iBAA2B;AACvD,yBAAqB,QAAQ,CAAC,QAAQ,QAAQ;AAC5C,UAAI,CAAC,aAAa,SAAS,GAAG,GAAG;AAC/B,gCAAwB,CAACC,0BAAyB;AAChD,iBAAO,IAAI,IAAIA,sBAAqB,IAAI,KAAK,KAAK,CAAC;AAAA,QACrD,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH;AAEA,QAAM,qBAAqB,CAACD,WAAkB;AAC5C,4BAAwB,CAACC,0BAAyB;AAChD,aAAO,IAAI,IAAIA,sBAAqB,IAAID,QAAO,IAAI,CAAC;AAAA,IACtD,CAAC;AAAA,EACH;AAEA,QAAM,mBAAmB,MAAM;AAC7B,kBAAc,CAAC,EAAE,MAAAE,OAAM,QAAQ,MAAM;AACnC,YAAM,QAAQ,aAAa,UAAU,CAAC,YAAY,QAAQ,SAASA,KAAI;AACvE,UAAI,UAAU;AAAI,eAAO,EAAE,MAAAA,OAAM,QAAQ;AAEzC,YAAM,eAAe,CAAC,QAAQ,KAAK,aAAa,QAAQ,CAAC,EAAE;AAC3D,YAAM,mBAAmB,CAAC,QAAQ,CAAC,IAAI,aAAa,QAAQ,CAAC,EAAE;AAC/D,YAAM,kBAAkB,CAAC,iBAAiB,SACtC,KACA,iBAAiB,MAAM,EAAE,EAAE,CAAC,EAAE;AAElC,aAAO;AAAA,QACL,MAAM;AAAA,QACN,SAAS;AAAA,MACX;AAAA,IACF,CAAC;AAAA,EACH;AAEA,QAAM,sBAAsB,MAAM;AAChC,kBAAc,CAAC,EAAE,MAAAA,OAAM,QAAQ,MAAM;AACnC,YAAM,UAAU,aAAa,KAAK,CAACC,aAAYA,SAAQ,SAASD,KAAI;AACpE,YAAM,QAAQ,SAAS,SAAS;AAAA,QAC9B,CAAC,UAAU,MAAM,SAAS;AAAA,MAC5B;AAEA,UAAI,CAAC,WAAW,UAAU;AAAI,eAAO,EAAE,MAAAA,OAAM,QAAQ;AAErD,aAAO;AAAA,QACL,MAAAA;AAAA,QACA,SAAS,CAAC,QAAQ,KAAK,QAAQ,SAAS,QAAQ,CAAC,EAAE;AAAA,MACrD;AAAA,IACF,CAAC;AAAA,EACH;AAEA,SACE,gBAAAH;AAAA,IAAC,eAAe;AAAA,IAAf;AAAA,MACC,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,GAAG;AAAA,MACL;AAAA,MAEA,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAO;AAAA,YACL,UAAU;AAAA,cACR,mBAAmB,WAAW,WAAW,CAAC;AAAA,YAC5C;AAAA,UACF;AAAA,UAEC;AAAA;AAAA,MACH;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,yBAAQ;;;ACtOR,IAAM,aAAa,CAAC,QAAgB,IAAI,QAAQ,eAAe,EAAE;AAOjE,IAAM,0BAA0B,CAAC,QAAwB;AAC9D,MAAI,CAAC;AAAK,WAAO;AAEjB,SAAO,IAEJ,QAAQ,2BAA2B,IAAI,EAEvC,QAAQ,0BAA0B,IAAI,EAEtC,QAAQ,gBAAgB,EAAE,EAE1B,QAAQ,gBAAgB,GAAG,EAE3B,QAAQ,kBAAkB,IAAI,EAC9B,QAAQ,cAAc,IAAI,EAE1B,QAAQ,cAAc,IAAI,EAC1B,QAAQ,YAAY,IAAI,EAExB,QAAQ,cAAc,IAAI,EAE1B,QAAQ,mBAAmB,EAAE,EAE7B,QAAQ,4BAA4B,EAAE,EAEtC,QAAQ,WAAW,EAAE,EAErB,QAAQ,QAAQ,GAAG,EACnB,KAAK;AACV;AAWO,IAAM,UAAU,CAAC,QAAgB;AACtC,SAAO,IACJ,UAAU,KAAK,EACf,QAAQ,oBAAoB,EAAE,EAC9B,YAAY,EACZ,QAAQ,aAAa,EAAE,EACvB,QAAQ,QAAQ,GAAG,EACnB,QAAQ,OAAO,GAAG,EAClB,KAAK;AACV;AAIO,IAAM,mBAAkD,CAAC,aAAa;AAC3E,MAAI,CAAC;AAAU,WAAO;AAAA,WACb,MAAM,QAAQ,QAAQ;AAC7B,WAAO,SACJ,IAAI,CAAC,UAAU;AACd,UAAI,OAAO,UAAU;AAAU,eAAO;AACtC,aAAO,iBAAiB,MAAM,MAAM,QAAQ;AAAA,IAC9C,CAAC,EACA,KAAK,EAAE;AAAA,OACP;AACH,QAAI,OAAO,aAAa;AAAU,aAAO;AACzC,WAAO,iBAAiB,SAAS,OAAO,EAAE,UAAU,CAAC;AAAA,EACvD;AACF;;;ACzEA,OAAO,aAAa;AAEpB,IAAM,cAAc,MAAM;AACxB,UAAQ,WAAW;AAAA,IACjB,OAAO;AAAA,IACP,gBAAgB;AAAA,MACd,cAAc;AAAA,MACd,kBAAkB;AAAA,MAClB,oBAAoB;AAAA,MACpB,qBAAqB;AAAA,MACrB,gBAAgB;AAAA,MAChB,kBAAkB;AAAA,MAClB,WAAW;AAAA,MACX,SAAS;AAAA,IACX;AAAA,EACF,CAAC;AACH;AAEA,IAAO,sBAAQ;;;AClBf,IAAAK,kBAAA;AAAA,EAAC,KAAAC;AAAA,EAMA,SAAAC;AAAA,EAOA,MAAAC;AAAA,EAgBA,YAAAC;AAAA,EAoCA,gBAAAC;AAAA,EAeA,kBAAAC;AAAA,EAeA,mBAAAC;AAAA,EAuBA,mBAAAC;AAAA,EAeA,UAAAC;AAAA,EAKA,cAAAC;AAAA;;;AC1ID;AAAA,EACE,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,yBAAyB;AAAA,EACzB,wBAAwB;AAAA,EACxB,yBAAyB;AAAA,EACzB,sBAAsB;AAAA,EACtB,4BAA4B;AAAA,EAC5B,0BAA0B;AAAA,EAC1B,8BAA8B;AAAA,EAC9B,qBAAqB;AAAA,EACrB,gCAAgC;AAAA,EAChC,8BAA8B;AAAA,EAC9B,wBAAwB;AAAA,EACxB,0BAA0B;AAAA,EAC1B,sBAAsB;AAAA,EACtB,kBAAkB;AAAA,EAClB,uBAAuB;AAAA,EACvB,oCAAsC;AAAA,EACtC,8BAAgC;AAAA,EAChC,oBAAoB;AAAA,EACpB,0BAA0B;AAAA,EAC1B,qBAAqB;AAAA,EACrB,sBAAsB;AACxB;;;AC1BA;AAAA,EACE,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,yBAAyB;AAAA,EACzB,wBAAwB;AAAA,EACxB,yBAAyB;AAAA,EACzB,sBAAsB;AAAA,EACtB,4BAA4B;AAAA,EAC5B,8BAA8B;AAAA,EAC9B,0BAA0B;AAAA,EAC1B,8BAA8B;AAAA,EAC9B,qBAAqB;AAAA,EACrB,gCAAgC;AAAA,EAChC,wBAAwB;AAAA,EACxB,0BAA0B;AAAA,EAC1B,sBAAsB;AAAA,EACtB,kBAAkB;AAAA,EAClB,uBAAuB;AAAA,EACvB,oCAAsC;AAAA,EACtC,8BAAgC;AAAA,EAChC,oBAAoB;AAAA,EACpB,0BAA0B;AAAA,EAC1B,qBAAqB;AAAA,EACrB,sBAAsB;AACxB;;;AC1BA;AAAA,EACE,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,yBAAyB;AAAA,EACzB,wBAAwB;AAAA,EACxB,yBAAyB;AAAA,EACzB,sBAAsB;AAAA,EACtB,4BAA4B;AAAA,EAC5B,8BAA8B;AAAA,EAC9B,0BAA0B;AAAA,EAC1B,8BAA8B;AAAA,EAC9B,qBAAqB;AAAA,EACrB,gCAAgC;AAAA,EAChC,wBAAwB;AAAA,EACxB,0BAA0B;AAAA,EAC1B,sBAAsB;AAAA,EACtB,kBAAkB;AAAA,EAClB,uBAAuB;AAAA,EACvB,oCAAsC;AAAA,EACtC,8BAAgC;AAAA,EAChC,oBAAoB;AAAA,EACpB,0BAA0B;AAAA,EAC1B,qBAAqB;AAAA,EACrB,sBAAsB;AACxB;;;ACrBA,IAAM,cAAc,MAIf;AACH,QAAMC,YAAW;AAAA,IACf,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EACN;AAEA,SAAOA;AACT;AAEO,IAAM,WAAW,YAAY;;;ApB+B5B,gBAAAC,MAuFJ,QAAAC,aAvFI;AAxBR,oBAAY;AAEZ,IAAM,oBAAoB,CAAC;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAA8B;AAC5B,QAAM,CAAC,GAAG,IAAI,IAAIC,UAAS,QAAQ;AACnC,QAAM,YAAY,iBAAiB,aAAa,QAAQ;AACxD,QAAM,OAAO,QAAQ,SAAS;AAC9B,SACE,gBAAAF;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,MACX,WAAU;AAAA,MACV,YAAW;AAAA,MACX,UAAU,CAAC,QAAQ,UAAU;AAC3B,YAAI;AAAQ,sBAAY,IAAI;AAAA;AACvB,sBAAY,MAAM,OAAO,CAAC;AAE/B,aAAK,MAAM,mBAAmB,CAAC;AAAA,MACjC;AAAA,MAEC,oBAAU,IACT,gBAAAA,KAAC,QAAG,IAAI,MAAM,WAAWG,gBAAO,SAAU,GAAG,cAAc,IAE3D,gBAAAH,KAAC,QAAG,IAAI,MAAM,WAAWG,gBAAO,SAAU,GAAG,cAAc;AAAA;AAAA,EAE/D;AAEJ;AAEA,IAAM,UAAU,CAAC,EAAE,MAAM,MAAAC,OAAM,GAAG,MAAM,MAAiB;AACvD,QAAM,iBAAyBA,QAAOA,QAAO;AAC7C,SACE,gBAAAJ;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,GAAGG,gBAAO,UAAU,IAC7B,mBAAmB,SACfA,gBAAO,iBACP,mBAAmB,WACnBA,gBAAO,mBACP,mBAAmB,YACnBA,gBAAO,oBACP,mBAAmB,YACnBA,gBAAO,oBACP,EACN;AAAA,MAEA,0BAAAH,KAAC,SAAK,GAAG,OAAO;AAAA;AAAA,EAClB;AAEJ;AAEA,IAAM,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,MAAiB;AACxD,QAAM,YAAYK,QAAwB,IAAI;AAC9C,QAAM,MAAMA,QAAoB;AAEhC,QAAM,CAAC,SAAS,UAAU,IAAIH,UAAS,EAAE;AACzC,QAAM,CAAC,OAAO,QAAQ,IAAIA,UAAS,CAAC;AACpC,QAAM,CAAC,QAAQ,SAAS,IAAIA,UAAS,CAAC;AAEtC,EAAAI,WAAU,MAAM;AACd,UAAM,iBAAiB,IAAI,eAAe,MAAM;AAC9C,UAAI,CAAC,IAAI;AAAS;AAClB,eAAS,IAAI,SAAS,eAAe,CAAC;AACtC,gBAAU,IAAI,SAAS,cAAc,CAAM;AAAA,IAC7C,CAAC;AAED,UAAM,kBAAkB,iBAAkB;AACxC,YAAM,EAAE,IAAI,IAAI,MAAMC,SAAQ,OAAO,cAAc,MAAM,QAAQ;AACjE;AAAA,QACE,IAAI,QAAQ,mBAAmB,EAAE,EAAE,WAAW,eAAe,EAAE;AAAA,MACjE;AAAA,IACF;AAEA,oBAAgB;AAChB,QAAI,IAAI;AAAS,qBAAe,QAAQ,IAAI,OAAO;AAAA,EACrD,GAAG,CAAC,CAAC;AAEL,SACE,gBAAAP,KAACQ,MAAA,EAAI,KAAU,WAAWL,gBAAO,cAC/B,0BAAAH;AAAA,IAAC;AAAA;AAAA,MACC,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA,gBAAgB;AAAA,QACd,UAAU;AAAA,QACV,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,YAAY;AAAA,MACd;AAAA,MACA,YAAY;AAAA,MACZ,eAAe;AAAA,MACf,aAAa;AAAA,MAEb,0BAAAA,KAAC,SAAI,OAAc,QAChB,gBAAM,OAAO,GAChB;AAAA;AAAA,EACF,GACF;AAEJ;AAEA,IAAM,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,MAAiB;AACxD,QAAM,CAAC,aAAa,cAAc,IAAIE,UAAS,KAAK;AACpD,QAAM,EAAE,OAAO,IAAI,WAAW,cAAc;AAC5C,QAAM;AAAA;AAAA,IAEJ,gBAAAF,KAAC,SAAI,KAAK,MAAM,KAAK,KAAK,MAAM,KAAK,SAAS,MAAM,eAAe,IAAI,GAAG;AAAA;AAE5E,QAAM,eACJ,gBAAAC,MAAC,gBAAW,WAAW,GAAGE,gBAAO,UAAU,IAAIA,gBAAO,iBAAiB,IACpE;AAAA,aAAS,MAAM,EAAE,qBAAqB;AAAA,IAAE;AAAA,IAAE,MAAM;AAAA,KACnD;AAGF,MAAI,OAAwC,EAAE,QAAQ,IAAI,KAAK,CAAC,EAAE;AAClE,MAAI;AACF,WAAO,KAAK,MAAM,MAAM,GAAG;AAAA,EAC7B,SAAS,OAAO;AACd,YAAQ,IAAI,iBAAiB,KAAK;AAClC,WAAO;AAAA,EACT;AACA,SAAO,CAAC,cAAc,gBAAAH,KAAC,YAAU,sBAAW,IAAc;AAC5D;AAEA,IAAO,qBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,MACtB,gBAAAA,KAACS,OAAA,EAAK,WAAWN,gBAAO,UAAW,GAAG,OAAO;AAAA,EAE/C,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,MAAiB,gBAAAH,KAAC,WAAO,GAAG,OAAO;AAAA,EAC5D,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,MAAiB,gBAAAA,KAAC,QAAI,GAAG,OAAO;AAAA,EACtD,KAAK;AAAA,EACL,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,MAAiB;AACvC,WAAO,gBAAAA,KAACQ,MAAA,EAAI,IAAI,EAAE,aAAa,MAAM,GAAI,GAAG,OAAO;AAAA,EACrD;AAAA,EACA,YAAY,CAAC,EAAE,GAAG,MAAM,MAAiB;AACvC,WAAO,gBAAAR,KAAC,WAAS,GAAG,OAAO;AAAA,EAC7B;AAAA,EACA,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,MAAiB;AACvC,WAAO,gBAAAA,KAAC,UAAK,WAAWG,gBAAO,MAAO,GAAG,OAAO;AAAA,EAClD;AAAA,EACA,KAAK,CAAC,EAAE,GAAG,MAAM,MAAiB;AAChC,QAAI,MAAM,aAAa,MAAM,cAAc;AACzC,aAAO,gBAAAH,KAAC,kBAAgB,GAAG,OAAO;AAEpC,WAAO,gBAAAA,KAAC,SAAI,WAAWG,gBAAO,KAAM,GAAG,OAAO;AAAA,EAChD;AAAA,EACA,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,MAAiB;AACrC,UAAM,EAAE,YAAY,eAAe,iBAAiB,IAClD,WAAW,cAAc;AAE3B,WACE,gBAAAH;AAAA,MAAC;AAAA;AAAA,QACC,OAAO;AAAA,QACP,aAAa,CAAC,SAAS;AACrB,wBAAc,CAAC,EAAE,MAAAU,OAAM,QAAQ,OAAO;AAAA,YACpC,MAAM;AAAA,YACN,SAASA,UAAS,OAAO,KAAK;AAAA,UAChC,EAAE;AAAA,QACJ;AAAA,QACA,aAAa,CAAC,MAAM,OAAO,MAAM;AAC/B,cAAI,MAAM,mBAAmB,IAAI,KAAK,WAAW,SAAS,MAAM;AAC9D,6BAAiB;AAAA,UACnB;AAAA,QACF;AAAA,QACC,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AAAA,EACA,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,MAAiB;AACrC,UAAM,EAAE,YAAY,eAAe,oBAAoB,IACrD,WAAW,cAAc;AAE3B,WACE,gBAAAV;AAAA,MAAC;AAAA;AAAA,QACC,OAAO;AAAA,QACP,aAAa,CAAC,SAAS;AACrB,wBAAc,CAAC,EAAE,MAAAU,MAAK,OAAO;AAAA,YAC3B,MAAAA;AAAA,YACA,SAAS;AAAA,UACX,EAAE;AAAA,QACJ;AAAA,QACA,aAAa,CAAC,MAAM,OAAO,MAAM;AAC/B,cAAI,MAAM,mBAAmB,IAAI,KAAK,WAAW,YAAY,MAAM;AACjE,gCAAoB;AAAA,UACtB;AAAA,QACF;AAAA,QACC,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACF;;;ADhNQ,gBAAAC,aAAA;AAVR,IAAM,aAAa;AAEnB,IAAM,mBAAmB,CAAC;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AACF,MAA6B;AAC3B,MAAI,sBAAc,OAAO;AACvB,WACE,gBAAAA,MAACC,MAAA,EACC,0BAAAD;AAAA,MAAC;AAAA;AAAA,QACC,YAAY,EAAE,GAAG,oBAAY,GAAG,iBAAiB;AAAA,QACjD,MAAI;AAAA,QACH,GAAG;AAAA,QACJ;AAAA;AAAA,IACF,GACF;AAAA,EAEJ;AAEA,SACE,gBAAAA,MAACC,MAAA,EACC,0BAAAD,MAAC,cAAW,YAAY,oBAAY,MAAI,MAAE,GAAG,YAAY,GAC3D;AAEJ;AAEA,IAAO,2BAAQ;;;AsBhCf,SAAS,cAAAE,aAAY,aAAAC,kBAAiB;AACtC,OAAOC,WAAU;AACjB,SAAS,iBAAiB;AAC1B,SAAS,OAAAC,MAAK,QAAAC,aAAY;AAC1B,OAAO,mBAAmB;;;ACF1B,IAAM,iBAA8B;AAAA,EAClC,UAAU;AAAA,EACV,KAAK;AACP;AAEA,IAAM,WAAwB;AAAA,EAC5B,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,IAAI;AAAA,EACJ,OAAO;AACT;AAEA,IAAM,WAAwB;AAAA,EAC5B,YAAY;AAAA,EACZ,IAAI;AACN;AAEA,IAAM,OAAwD,CAC5D,OACA,WACG;AACH,QAAM,oBAAoB,GAAG,UAAU,IAAI,KAAK,EAAE;AAClD,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,IAAI,GAAG,QAAQ,CAAC;AAAA,IAChB,IAAI,CAAC,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK;AAAA,IAC7C,YAAY,aAAa,UAAU,UAAU,IAAI,YAAY,SAAS;AAAA,IACtE,UAAU,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,MAAM;AAAA,IACzD,YAAY;AAAA,MACV;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG,UAAU,IAAI,KAAK,EAAE;AAAA,MACxB;AAAA,IACF;AAAA,IACA,YAAY,GAAG,SAAS,QAAQ,KAAK;AAAA,IACrC,OAAO,GAAG,SAAS,YAAY,SAAS;AAAA,IAExC,UAAU;AAAA,MACR,OAAO;AAAA,IACT;AAAA,EACF;AACF;AAEA,IAAM,oBAAiC;AAAA,EACrC,IAAI;AAAA,EACJ,YAAY;AACd;AAEA,IAAOC,kBAAQ,EAAE,UAAU,gBAAgB,MAAM,mBAAmB,SAAS;;;ADerE,gBAAAC,OAYE,QAAAC,aAZF;AAhDR,IAAM,kBAAkB,CAAC,EAAE,aAAa,SAAS,MAAa;AAC5D,QAAM,SAAS,UAAU;AACzB,QAAM,EAAE,cAAc,YAAY,iBAAiB,cAAc,IAC/DC,YAAW,cAAc;AAE3B,EAAAC,WAAU,MAAM;AACd,UAAMC,YAAmB,eAAe,CAAC;AACzC,QAAI,CAACA,UAAS,QAAQ;AACpB,eAAS,iBAAiB,QAAQ,EAAE,QAAQ,CAAC,YAAY;AACvD,cAAM,cAAc,QAAQ;AAC5B,cAAMC,QAAO;AAAA,UACX,OAAO,WAAW,QAAQ,SAAS,EAAE,QAAQ,KAAK,EAAE;AAAA,UACpD,MAAM;AAAA,QACR;AAEA,YAAI,QAAQ,YAAY,MAAM;AAC5B,UAAAD,UAAS,KAAK,EAAE,GAAGC,OAAM,UAAU,CAAC,EAAE,CAAC;AAAA,QACzC,WAAWD,UAAS,SAAS,GAAG;AAC9B,UAAAA,UAASA,UAAS,SAAS,CAAC,EAAE,SAAS,KAAK,EAAE,GAAGC,MAAK,CAAC;AAAA,QACzD,OAAO;AACL,UAAAD,UAAS,KAAK,EAAE,GAAGC,OAAM,UAAU,CAAC,EAAE,CAAC;AAAA,QACzC;AAAA,MACF,CAAC;AACD,sBAAgBD,SAAQ;AAAA,IAC1B;AAAO,sBAAgBA,SAAQ;AAAA,EACjC,GAAG,CAAC,OAAO,QAAQ,WAAW,CAAC;AAE/B,QAAM,OAAO,CAAC;AAAA,IACZ,OAAAE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,MAKM;AACJ,WACE,gBAAAN;AAAA,MAACO;AAAA,MAAA;AAAA,QACC,MAAM,IAAI,IAAI;AAAA,QACd,SAAS,MAAM;AACb,wBAAc,CAAC,EAAE,MAAAF,MAAK,OAAO;AAAA,YAC3B,MAAM,UAAU,IAAI,OAAOA;AAAA,YAC3B,SAAS,UAAU,IAAI,KAAK;AAAA,UAC9B,EAAE;AAAA,QACJ;AAAA,QAEA,0BAAAL,MAACQ,OAAA,EAAK,IAAIC,gBAAO,KAAK,OAAO,MAAM,GAAI,UAAAH,QAAM;AAAA;AAAA,IAC/C;AAAA,EAEJ;AAEA,SACE,gBAAAL,MAACS,MAAA,EAAI,IAAID,gBAAO,gBAAgB,WAAQ,qBACrC;AAAA,iBAAa,SAAS,KACrB,gBAAAT,MAACQ,OAAA,EAAK,IAAIC,gBAAO,UAAU,0BAAY;AAAA,IAEzC,gBAAAT,MAACU,MAAA,EAAI,IAAID,gBAAO,UACb,uBAAa,IAAI,CAACJ,UACjB,gBAAAJ,MAACS,MAAA,EACC;AAAA,sBAAAV;AAAA,QAAC;AAAA;AAAA,UACC,OAAOK,MAAK;AAAA,UACZ,MAAMA,MAAK;AAAA,UACX,OAAO;AAAA,UACP,QAAQA,MAAK,SAAS,WAAW;AAAA;AAAA,MACnC;AAAA,MACA,gBAAAL;AAAA,QAAC;AAAA;AAAA,UACC,UAAU;AAAA,UACV,QAAQK,MAAK,SAAS,WAAW,OAAO,SAAS;AAAA,UAEjD,0BAAAL,MAACU,MAAA,EAAI,IAAID,gBAAO,mBACb,UAAAJ,MAAK,SAAS,IAAI,CAAC,YAClB,gBAAAL;AAAA,YAAC;AAAA;AAAA,cAEC,OAAO,QAAQ;AAAA,cACf,MAAM,QAAQ;AAAA,cACd,OAAO;AAAA,cACP,QAAQ,QAAQ,SAAS,WAAW;AAAA;AAAA,YAJ/B,QAAQ;AAAA,UAKf,CACD,GACH;AAAA;AAAA,MACF;AAAA,SAtBQK,MAAK,IAuBf,CACD,GACH;AAAA,IACC;AAAA,KACH;AAEJ;AAEA,IAAO,0BAAQ;;;AE/Gf,SAAS,aAAAM,YAAW,UAAAC,SAAQ,YAAAC,WAAU,cAAAC,mBAAkB;AACxD,SAAS,QAAAC,QAAM,QAAAC,OAAM,OAAAC,aAAW;AAChC,OAAOC,WAAU;;;ACAjB,IAAM,UAAuB;AAAA,EAC3B,SAAS;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,UAAU;AAAA,EACV,MAAM;AAAA,EACN,KAAK;AAAA,EACL,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,WAAW;AAAA,IACT,YAAY;AAAA,IACZ,YAAY;AAAA,EACd;AAAA,EACA,0BAA0B;AAAA,IACxB,YAAY;AAAA,IACZ,OAAO;AAAA,EACT;AAAA,EACA,4BAA4B;AAAA,IAC1B,SAAS;AAAA,EACX;AACF;AAEA,IAAM,eAA4B;AAAA,EAChC,OAAO,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,OAAO;AAAA,EACvD,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,eAAe;AACjB;AAEA,IAAMC,iBAA6B;AAAA,EACjC,UAAU;AACZ;AAEA,IAAM,UAAuB;AAAA,EAC3B,IAAI,CAAC,MAAM;AAAA,EACX,OAAO;AAAA,EACP,UAAU;AAAA,EACV,aAAa,CAAC,KAAK,KAAK,KAAK,KAAK;AAAA,EAClC,cAAc,CAAC,KAAK,KAAK,KAAK,OAAO,OAAO,GAAG;AAAA,EAC/C,IAAI,CAAC,KAAK,KAAK,KAAK,OAAO,OAAO,MAAM;AAAA,EACxC,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,MAAM;AAAA,MACJ,QAAQ;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAM,gBAA6B;AAAA,EACjC,GAAG;AAAA,EACH,YAAY,CAAC,WAAW,WAAW,WAAW,WAAW,WAAW,MAAM;AAAA,EAC1E,OAAO;AACT;AAEA,IAAM,wBAAqC;AAAA,EACzC,OAAO;AAAA,EACP,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,IAAI,CAAC,KAAK,KAAK,KAAK,KAAK;AAC3B;AAEA,IAAM,OAAoB;AAAA,EACxB,OAAO,CAAC,MAAM;AAAA,EACd,QAAQ,CAAC,MAAM;AACjB;AAEA,IAAM,aAA0B;AAAA,EAC9B,GAAG;AAAA,EACH,UAAU;AAAA,IACR,QAAQ;AAAA,EACV;AACF;AAEA,IAAM,iBAA8B;AAAA,EAClC,IAAI;AAAA,EACJ,WAAW;AAAA,EACX,IAAI;AAAA,IACF,QAAQ;AAAA,IACR,WAAW;AAAA,EACb;AACF;AAEA,IAAM,YAAyB;AAAA,EAC7B,SAAS,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,OAAO;AAAA,EACzD,OAAO;AAAA,EACP,UAAU;AAAA,EACV,IAAI,CAAC,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM;AAAA,EAC9C,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,cAAc;AAChB;AAEA,IAAM,cAA2B;AAAA,EAC/B,SAAS;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,IAAOC,kBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA,eAAAD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;AC5IO,IAAM,mBAAgC,CAAC,iBAA0B;AACtE,QAAME,eAA2B;AAAA,IAC/B,SAAS;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAe,SAAS;AAAA,IAC1B;AAAA,EACF;AACA,SAAOA;AACT;;;ACdA,SAAS,aAAAC,YAAW,UAAAC,SAAQ,YAAAC,iBAAgB;AAC5C,SAAS,OAAAC,MAAK,QAAAC,aAAuC;;;ACGrD,IAAM,mBAOa,CAAC,IAAI,WAAW,OAAO,QAAQ,GAAG,MAAM;AACzD,QAAM,WAAW;AAAA,IACf,QAAQ;AAAA,MACN,MAAM,GAAG,IAAI,QAAQ,CAAC;AAAA,MACtB,KAAK,GAAG,IAAI,SAAS,CAAC;AAAA,IACxB;AAAA,IACA,MAAM;AAAA,MACJ,MAAM,GAAG,IAAI,CAAC;AAAA,MACd,KAAK,GAAG,IAAI,SAAS,CAAC;AAAA,IACxB;AAAA,IACA,KAAK;AAAA,MACH,MAAM,GAAG,IAAI,QAAQ,CAAC;AAAA,MACtB,KAAK,GAAG,IAAI,CAAC;AAAA,IACf;AAAA,IACA,OAAO;AAAA,MACL,MAAM,GAAG,IAAI,QAAQ,CAAC;AAAA,MACtB,KAAK,GAAG,IAAI,SAAS,CAAC;AAAA,IACxB;AAAA,EACF;AAEA,QAAM,cAAc;AAAA,IAClB,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,KAAK;AAAA,IACL,OAAO;AAAA,EACT;AAEA,QAAM,YAAY;AAAA,IAChB,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,KAAK;AAAA,IACL,OAAO;AAAA,EACT;AAEA,SAAO;AAAA,IACL,GAAG;AAAA,IACH,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,GAAG,SAAS,SAAS;AAAA,IACrB,WAAW,YAAY,SAAS;AAAA,IAChC,eAAe,UAAU,SAAS;AAAA,EACpC;AACF;AAEA,IAAM,QAA+C,CAAC,cAAc;AAClE,QAAM,WAAW;AAAA,IACf,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,KAAK;AAAA,IACL,OAAO;AAAA,EACT;AAEA,QAAM,cAAc;AAAA,IAClB,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,KAAK;AAAA,IACL,OAAO;AAAA,EACT;AAEA,SAAO;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,WAAW,UAAU,SAAS,SAAS,CAAC,mBAAmB,YAAY,SAAS,CAAC;AAAA,EACnF;AACF;AAEA,IAAM,QAAqB;AAAA,EACzB,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AACd;AAEA,IAAM,4BAAyC;AAAA,EAC7C,GAAG;AAAA,EACH,SAAS;AACX;AAEA,IAAM,8BAA2C;AAAA,EAC/C,GAAG;AAAA,EACH,OAAO;AAAA,EACP,WAAW;AAAA,EACX,IAAI;AAAA,EACJ,IAAI;AACN;AAEA,IAAM,aAAa,CAAC,yBAA+C;AACjE,MAAI;AAAsB,WAAO;AACjC,SAAO;AACT;AACA,IAAOC,kBAAQ,EAAE,kBAAkB,OAAO,WAAW;;;AC1GrD,SAAS,QAAAC,aAAY;AAWjB,gBAAAC,aAAA;AATJ,IAAM,YAAY,CAAC,UACjB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN,0BAAAC;AAAA,MAAC;AAAA;AAAA,QACC,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA;AACF;AAGF,IAAO,gBAAQ;;;AFgBT,gBAAAC,OAQE,QAAAC,aARF;AAzBN,IAAM,UAAU,CAAC,EAAE,UAAU,OAAAC,QAAO,WAAW,IAAI,OAAO,MAAa;AACrE,QAAMC,OAAMC,QAAuB;AACnC,QAAM,CAAC,UAAU,WAAW,IAAIC,UAAS,CAAC;AAC1C,QAAM,CAAC,WAAW,YAAY,IAAIA,UAAS,CAAC;AAC5C,QAAM,CAAC,eAAe,gBAAgB,IAAIA,UAAS,CAAC;AACpD,QAAM,CAAC,cAAc,eAAe,IAAIA,UAAS,CAAC;AAClD,QAAM,CAAC,SAAS,UAAU,IAAIA,UAAS,KAAK;AAE5C,EAAAC,WAAU,MAAM;AACd,QAAIH,KAAI,SAAS;AACf,kBAAYA,KAAI,QAAQ,WAAW;AACnC,mBAAaA,KAAI,QAAQ,YAAY;AACrC,uBAAiBA,KAAI,QAAQ,UAAU;AACvC,sBAAgBA,KAAI,QAAQ,SAAS;AAAA,IACvC;AAAA,EACF,GAAG;AAAA,IACDA,KAAI;AAAA,IACJA,KAAI,SAAS;AAAA,IACbA,KAAI,SAAS;AAAA,IACbA,KAAI,SAAS;AAAA,IACbA,KAAI,SAAS;AAAA,EACf,CAAC;AAED,SACE,gBAAAF,MAACM,MAAA,EACC;AAAA,oBAAAP;AAAA,MAACO;AAAA,MAAA;AAAA,QACC,KAAKJ;AAAA,QACL,cAAc,MAAM,WAAW,IAAI;AAAA,QACnC,cAAc,MAAM,WAAW,KAAK;AAAA,QAEnC;AAAA;AAAA,IACH;AAAA,IACC,YAAY,UAAU,SACrB,gBAAAF;AAAA,MAACO;AAAA,MAAA;AAAA,QACC,IAAIC,gBAAO;AAAA,UACT;AAAA,UACA,aAAa;AAAA,UACb;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QAEA;AAAA,0BAAAT,MAAC,iBAAU,IAAIS,gBAAO,MAAM,aAAa,KAAK,GAAG;AAAA,UACjD,gBAAAT,MAACO,MAAA,EAAI,IAAIE,gBAAO,WAAW,UAAU,KAAK,GAAI,UAAAP,QAAM;AAAA;AAAA;AAAA,IACtD;AAAA,KAEJ;AAEJ;AAEA,IAAO,kBAAQ;;;AG7DR,IAAM,cAAc,CAEzB,MAAW,CAAC,GAEZ,MAAW,CAAC,GACZ,WAAW,OAEH;AACR,aAAW,OAAO,KAAK;AACrB,QAAI,OAAO,IAAI,GAAG,MAAM,UAAU;AAChC,UAAI,WAAW,GAAG,IAAI,IAAI,GAAG;AAAA,IAC/B,OAAO;AACL,kBAAY,IAAI,GAAG,GAAG,KAAK,GAAG,QAAQ,GAAG,GAAG,GAAG;AAAA,IACjD;AAAA,EACF;AACA,SAAO;AACT;AAEO,IAAM,mBAAmB,CAC9B,QACA,UACA,MACA,WACG;AACH,QAAM,YAAY,OAAO,KAAK,MAAM,EAAE,OAAO,CAAC,QAAQ,OAAO,GAAG,MAAM,IAAI;AAC1E,MAAI,OAAO;AACX,aAAW,IAAI,CAAC,OAAO;AACrB,QACE,UACA,OAAO,GAAG,GAAG,QAAQ,SAAS,SAAS,CAAC,EAAE,KAAK,QAAQ,YAAY,KACnE,OAAO,GAAG,GAAG,QAAQ,SAAS,WAAW,CAAC,EAAE,KAAK,UACjD;AACA,aAAO;AAAA,IACT,WAAW,YAAY,QAAQ,GAAG,QAAQ,SAAS,WAAW,CAAC,GAAG;AAChE,aAAO;AAAA,IACT;AAAA,EACF,CAAC;AACD,SAAO;AACT;AAEA,SAAS,YACP,eACA,YACS;AACT,aAAW,OAAO,eAAe;AAC/B,QAAI,IAAI,WAAW,GAAG,UAAU,GAAG,GAAG;AACpC,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AAEO,IAAM,aAAa,CACxB,MACA,MACA,kBACA,cACA,WACG;AACH,QAAM,YAAY,MAAM,MAAM,UAAU;AACxC,aAAW,OAAO,EAAE;AACpB,MAAI,OAAO;AACX,aAAW,IAAI,CAAC,OAAO;AACrB,SAAK,OAAO;AACZ,WAAO,KAAK;AAEZ,QAAI,CAAC,UAAU,iBAAiB,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,SAAS,MAAM,GAAG;AAChE,mBAAa,KAAK,iBAAiB,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;AAAA,IACpD;AAAA,EACF,CAAC;AACD,SAAO;AACT;;;ACrEA,SAAS,aAAAQ,kBAAiB;AAC1B,SAAS,aAAAC,kBAAiB;AAGnB,IAAMC,WAAU,CAAC,KAAa,aAA0B;AAC7D,aAAW,WAAW,UAAU;AAC9B,WAAO,QAAQ,KAAK,CAACC,UAASA,MAAK,UAAU,GAAG,GAAG;AAAA,EACrD;AACF;AAMO,IAAM,iBAAiB,CAAC;AAAA,EAC7B,eAAe,CAAC;AAAA,EAChB;AACF,MAA2B;AACzB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,mBAAmB,YAAY,iBAAiB;AACtD,QAAM,SAASH,WAAU;AAEzB,MAAI,aAAa;AACjB,QAAM,YAAY,OAAO,MAAM;AAE/B,MAAI,aAAa,OAAO,aAAa,8BAA8B;AACjE,iBAAa,OAAO,OAAO,QAAQ,wBAAwB,EAAE;AAC7D,UAAM,UAAU,WAAW,MAAM,GAAG;AACpC,UAAM,aAAa,OAAO,OAAO,QAAQ,GAAG,IAAI;AAChD,UAAM,UAAU,QAAQ,CAAC,EAAE,MAAM,aAAa,MAAM,YAAY,EAAE,CAAC;AACnE,UAAM,WAAW,MAAM,QAAQ,OAAO,GAAG,QAAQ,MAAM,EAAE,KAAK,GAAG;AACjE,QAAI;AACJ,QAAI,YAAY,KAAK;AACnB,mBAAa;AACb,gBAAU,iBAAiB,kBAAkB,IAAI,OAAO;AAAA,IAC1D,OAAO;AACL,YAAM,SAAS,QAAQ,CAAC,EACrB,MAAM,aAAa,MAAM,YAAY,EAAE,CAAC,EACxC,MAAM,GAAG,EAAE,CAAC;AACf,gBAAU,iBAAiB,kBAAkB,UAAU,SAAS,MAAM;AAAA,IACxE;AACA,iBAAa,KAAK,UAAU;AAC5B,QAAI,SAAS;AACX,iBAAW,SAAS,QAAQ,kBAAkB,YAAY;AAAA,IAC5D;AAAA,EACF,OAAO;AACL,iBAAa,aAAa,aAAa,SAAS,CAAC;AAAA,EACnD;AAEA,EAAAC,WAAU,MAAM;AACd,yBAAqB,YAAY;AACjC,iBAAa,QAAQ,CAAC,SAAiB;AACrC,yBAAmB,IAAI;AAAA,IACzB,CAAC;AACD,4BAAwB,YAAY,QAAQ,cAAc,GAAG,CAAC;AAAA,EAChE,GAAG,CAAC,sBAAsB,MAAM,CAAC;AACnC;;;AC/DA,SAAS,QAAAG,OAAM,OAAAC,OAAK,QAAAC,OAAM,UAAAC,eAAc;AACxC,SAAS,cAAAC,aAAY,SAAS,YAAAC,iBAAgB;;;ACA9C,IAAM,mBAAgC;AAAA,EACpC,UAAU;AAAA,EACV,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,eAAe;AAAA,IACb,SAAS;AAAA,IACT,YAAY;AAAA,EACd;AAAA,EACA,gBAAgB;AAAA,IACd,SAAS;AAAA,IACT,YAAY;AAAA,EACd;AAAA,EACA,UAAU;AAAA,IACR,eAAe;AAAA,MACb,SAAS;AAAA,MACT,YAAY;AAAA,IACd;AAAA,EACF;AACF;AAEA,IAAM,4BAAyC;AAAA,EAC7C,OAAO;AAAA,EACP,WAAW;AAAA,EACX,QAAQ;AACV;AAEA,IAAM,sBAAmC;AAAA,EACvC,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,WACE;AAAA,EACF,UAAU;AAAA,EACV,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,UAAU;AAAA,IACR,cAAc;AAAA,EAChB;AACF;AAEA,IAAM,+BAA4C;AAAA,EAChD,SAAS;AAAA,EACT,YAAY;AACd;AAEA,IAAM,uBAAoC;AAAA,EACxC,IAAI;AACN;AAEA,IAAM,yBAAsC;AAAA,EAC1C,GAAG;AACL;AAEA,IAAM,wBAAqC;AAAA,EACzC,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,KAAK;AAAA,EACL,SAAS;AAAA,EACT,cAAc;AAChB;AAEA,IAAM,eAA4B;AAAA,EAChC,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,YAAY;AACd;AAEA,IAAM,kBAA+B;AAAA,EACnC,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,QAAQ;AACV;AAEA,IAAM,YAAyB;AAAA,EAC7B,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,aAAa;AACf;AAEA,IAAM,cAA2B;AAAA,EAC/B,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,UAAU,CAAC,MAAM;AACnB;AAEA,IAAM,aAA0B;AAAA,EAC9B,UAAU;AAAA,EACV,WAAW;AAAA,EACX,OAAO;AAAA,EACP,IAAI;AACN;AAEA,IAAM,gBAA6B;AAAA,EACjC,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,UAAU;AAAA,EACV,KAAK;AAAA,EACL,OAAO;AAAA,EACP,QAAQ;AACV;AAEA,IAAM,sBAAmC;AAAA,EACvC,GAAG;AAAA,EACH,SAAS;AACX;AAEA,IAAM,aAA0B;AAAA,EAC9B,WAAW;AACb;AAEA,IAAM,cAA2B;AAAA,EAC/B,SAAS;AACX;AAEA,IAAM,cAA2B;AAAA,EAC/B,SAAS;AAAA,EACT,OAAO;AAAA,EACP,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,IAAI;AAAA,EACJ,KAAK;AAAA,IACH,OAAO;AAAA,IACP,IAAI;AAAA,EACN;AACF;AAEA,IAAOC,kBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;AC3KA,SAAS,OAAAC,MAAK,QAAAC,OAAM,QAAAC,aAAY;;;ACAhC,SAAS,QAAAC,OAAM,QAAAC,aAAyB;;;ACExC,IAAMC,aAAyB;AAAA,EAC7B,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,gBAAgB;AAClB;AAEA,IAAM,OAAoB;AAAA,EACxB,YAAY;AAAA,EACZ,UAAU;AACZ;AAEA,IAAM,YAAyB;AAAA,EAC7B,UAAU;AAAA,EACV,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,IAAI;AACN;AAEA,IAAOC,mBAAQ;AAAA,EACb,WAAAD;AAAA,EACA;AAAA,EACA;AACF;;;ACxBO,IAAM,gBAAgB;AAAA,EAC3B,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,YAAY;AAAA,EACd;AAAA,EACA,KAAK;AAAA,IACH,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,YAAY;AAAA,EACd;AAAA,EACA,KAAK;AAAA,IACH,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,YAAY;AAAA,EACd;AAAA,EACA,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,YAAY;AAAA,EACd;AAAA,EACA,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,YAAY;AAAA,EACd;AACF;AAEO,IAAM,gBAAgB,CAC3B,QACA,QACA,OACgB;AAChB,QAAM,iBAAiB,cAAc,MAAM,KAAK;AAAA,IAC9C,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,YAAY;AAAA,EACd;AAEA,QAAME,iBAA6B,SAC/B;AAAA,IACE,GAAGC,iBAAO;AAAA,IACV,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,MACR,wBAAwB;AAAA,QACtB,MAAM;AAAA,UACJ,MAAM,eAAe;AAAA,QACvB;AAAA,QACA,MAAM;AAAA,UACJ,QAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF;AAAA,EACF,IACA;AAAA,IACE,GAAGA,iBAAO;AAAA,IACV,OAAO,eAAe;AAAA,IACtB,GAAG;AAAA,EACL;AAEJ,SAAOD;AACT;AAEO,IAAM,eAAe,CAAC,QAAoB,WAA2B;AAC1E,QAAM,iBAAiB,OAAO,CAAC,IAAI,OAAO,MAAM,CAAC,EAAE,YAAY;AAC/D,MAAI,UAAU;AAAU,WAAO;AAC/B,SAAO,eAAe,MAAM,GAAG,CAAC;AAClC;AAEO,IAAM,qBAAqB,CAAC,WAAuB;AACxD,QAAM,iBAAiB,cAAc,MAAM;AAC3C,QAAMA,iBAA6B;AAAA,IACjC,GAAGC,iBAAO;AAAA,IACV,MAAM;AAAA,MACJ,MAAM;AAAA,IACR;AAAA,IACA,MAAM;AAAA,MACJ,QAAQ,eAAe;AAAA,IACzB;AAAA,EACF;AAEA,SAAOD;AACT;;;ACvFA,SAAS,QAAAE,aAAY;AAGnB,SAQE,OAAAC,OARF,QAAAC,aAAA;AADF,IAAM,kBAAkB,CAAC,UACvB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,UAAK,OAAM,MAAK,QAAO,MAAK,IAAG,KAAI,MAAK,WAAU;AAAA,MACnD,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,4BAAQ;;;AHVX,SACE,OAAAE,OADF,QAAAC,cAAA;AAPJ,IAAM,iBAAiB,CAAC;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA2B;AACzB,SACE,gBAAAA,OAACC,OAAA,EAAK,WAAU,mBAAkB,IAAI,cAAc,QAAQ,QAAQ,EAAE,GACpE;AAAA,oBAAAF,MAACG,OAAA,EAAK,IAAIC,iBAAO,MAAO,uBAAa,QAAQ,MAAM,GAAE;AAAA,IACpD,WAAW,YAAY,UACtB,gBAAAJ;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,IAAI,mBAAmB,MAAM;AAAA;AAAA,IAC/B;AAAA,KAEJ;AAEJ;AAEA,IAAO,0BAAQ;;;AD9Bf,SAAmC,cAAAK,aAAY,YAAAC,iBAAgB;;;AKA/D,IAAMC,aAAyB;AAAA,EAC7B,IAAI;AAAA,EACJ,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,eAAe;AAAA,EACf,IAAI;AACN;AAEA,IAAMC,QAAoB;AAAA,EACxB,IAAI;AACN;AAEA,IAAM,WAAwB;AAAA,EAC5B,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,IACR,aAAa;AAAA,EACf;AACF;AAEA,IAAM,QAAqB;AAAA,EACzB,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,UAAU;AAAA,IACR,OAAO;AAAA,EACT;AACF;AAEA,IAAOC,mBAAQ;AAAA,EACb,WAAAF;AAAA,EACA,MAAAC;AAAA,EACA;AAAA,EACA;AACF;;;ALsBQ,gBAAAE,OAeF,QAAAC,cAfE;AAvCR,IAAM,gBAAgB,CAAC;AAAA,EACrB;AAAA,EACA;AACF,MAA0B;AACxB,QAAM,CAAC,eAAe,gBAAgB,IAAIC,UAAuB,CAAC,CAAC;AACnE,QAAM,EAAE,OAAO,IAAIC,YAAW,cAAc;AAE5C,QAAM,YAAY,CAAC,wBAA2C;AAC5D,QAAI,qBAAqB;AACvB,YAAM,QAAQ,cAAc,QAAQ,mBAAmB;AACvD,gBAAU,KACN,iBAAiB,CAAC,GAAG,eAAe,mBAAmB,CAAC,IACxD;AAAA,QACE,cAAc,OAAO,CAAC,WAAW,WAAW,mBAAmB;AAAA,MACjE;AACJ;AAAA,QACE,iBAAiB,IAAI,CAAC,iBAAiB;AACrC,cAAI,aAAa,SAAS;AACxB,yBAAa,SAAS,CAAC,aAAa;AACtC,iBAAO;AAAA,QACT,CAAC;AAAA,MACH;AAAA,IACF,OAAO;AACL,uBAAiB,CAAC,CAAC;AACnB;AAAA,QACE,iBAAiB,IAAI,CAAC,iBAAiB;AACrC,uBAAa,SAAS;AACtB,iBAAO;AAAA,QACT,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AAEA,QAAM,eAAe,CAAC,EAAE,aAAa,MAAyB;AAC5D,WACE,gBAAAH;AAAA,MAACI;AAAA,MAAA;AAAA,QAEC,SAAS,MAAM,UAAU,aAAa,IAAkB;AAAA,QAExD,0BAAAJ;AAAA,UAAC;AAAA;AAAA,YACC,IAAIK,iBAAO;AAAA,YACX,QAAQ,aAAa;AAAA,YACrB,QAAQ,aAAa;AAAA,YACrB,QAAQ;AAAA;AAAA,QACV;AAAA;AAAA,MARK,mBAAmB,aAAa,IAAI;AAAA,IAS3C;AAAA,EAEJ;AAEA,SACE,gBAAAJ,OAACG,MAAA,EAAI,IAAIC,iBAAO,WACd;AAAA,oBAAAL,MAACM,OAAA,EAAK,IAAID,iBAAO,MACd,mBAAS,MAAM,EAAE,8BAA8B,GAClD;AAAA,IACA,gBAAAJ,OAACM,OAAA,EACE;AAAA,uBAAiB,IAAI,CAAC,iBACrB,gBAAAP;AAAA,QAAC;AAAA;AAAA,UAEC;AAAA;AAAA,QADK,mBAAmB,aAAa,IAAI;AAAA,MAE3C,CACD;AAAA,MACA,cAAc,SAAS,KACtB,gBAAAA,MAACM,OAAA,EAAK,SAAS,MAAM,UAAU,IAAI,GAAG,IAAID,iBAAO,OAC9C,mBAAS,MAAM,EAAE,oCAAoC,GACxD;AAAA,OAEJ;AAAA,KACF;AAEJ;AAEA,IAAO,iCAAQ;;;AM9Ff,SAAS,aAAAG,kBAAiB;AAC1B,SAAgB,UAAU,cAAAC,mBAAkB;AAC5C;AAAA,EACE,OAAAC;AAAA,EACA,QAAAC;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC;AAAA,EACA,aAAAC;AAAA,EACA;AAAA,OACK;;;ACPP,IAAM,mBAAgC;AAAA,EACpC,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,UAAU;AAAA,IACR,YAAY;AAAA,IACZ,GAAG;AAAA,MACD,OAAO;AAAA,MACP,sBAAsB;AAAA,QACpB,aAAa;AAAA,MACf;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAM,cAA2B;AAAA,EAC/B,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,cAAc;AAAA,EACd,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,QAAQ;AACV;AAEA,IAAM,gBAA6B;AAAA,EACjC,GAAG;AAAA,EACH,OAAO;AACT;AAEA,IAAM,YAAyB;AAAA,EAC7B,SAAS;AAAA,EACT,OAAO;AAAA,EACP,QAAQ;AACV;AAEA,IAAM,kBAA+B;AAAA,EACnC,GAAG;AAAA,EACH,OAAO;AACT;AAEA,IAAM,gBAA6B;AAAA,EACjC,eAAe;AAAA,EACf,uBAAuB;AAAA,EACvB,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,gBAAgB;AAClB;AAEA,IAAMC,kBAA8B;AAAA,EAClC,IAAI;AAAA,IACF,QAAQ;AAAA,IACR,WAAW;AAAA,EACb;AACF;AAEA,IAAM,YAAyB;AAAA,EAC7B,IAAI;AACN;AAEA,IAAOC,mBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,gBAAAD;AAAA,EACA;AACF;;;ACrEO,IAAM,qBAAqB,CAAC,OAAeE,UAAkB;AAClE,QAAM,KAAK,KAAKA,SAAQ,QAAQ,KAAK,KAAK,KAAK,QAAQ,KAAK,KAAK;AACjE,QAAM,aAAaA,QAAO,SAAS,SAAS,IAAI,sBAAsB;AACtE,QAAM,SAAsB;AAAA,IAC1B,YAAY,GAAG,EAAE;AAAA,IACjB;AAAA,EACF;AAEA,SAAO;AACT;AAEO,IAAM,YAAY,CAAC,QAAiBA,UAAkB;AAC3D,QAAM,KAAKA,QAAO,QAAQ;AAC1B,MAAI,QAAQ;AACV,UAAM,kBAA+B;AAAA,MACnC,GAAGC,iBAAO;AAAA,MACV;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,QAAMC,aAAyB;AAAA,IAC7B,GAAGD,iBAAO;AAAA,IACV;AAAA,EACF;AAEA,SAAOC;AACT;;;AF8GgB,gBAAAC,OAmBJ,QAAAC,cAnBI;AAzGhB,IAAM,kBAAkB,CAAC,EAAE,YAAY,OAAO,aAAa,MAAoB;AAC7E,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAIC,YAAW,cAAc;AAC7B,QAAM,SAASC,WAAU;AAEzB,QAAM,cAAc,CAClB,GACA,YACA,SACG;AACH,MAAE,eAAe;AACjB,UAAM,mBAAmB,OAAO,MAAM;AACtC,UAAM,OAAO,QAAQ,cAAc,IAAI,YAAY,IAAI;AACvD,WAAO,KAAK,MAAM,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,MAAM;AAC7C,UAAI;AAAkB,eAAO,OAAO;AAAA,IACtC,CAAC;AAAA,EACH;AAIA,QAAM,yBAAyB,CAE7B,aACA,MACA,SACG;AACH,QACE,CAAC,eACA,OAAO,gBAAgB,YAAY,CAAC,MAAM,QAAQ,WAAW,GAC9D;AACA,aAAO;AAAA,IACT,WAAW,aAAa,QAAQ,QAAQ,aAAa,QAAQ,MAAM;AACjE,aAAO;AAAA,IACT,WAAW,MAAM,QAAQ,WAAW,GAAG;AACrC,eAAS,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK;AAG3C,cAAM,SAAS,uBAAuB,YAAY,CAAC,GAAG,MAAM,IAAI;AAChE,YAAI,QAAQ;AACV,iBAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF,OAAO;AACL,iBAAW,KAAK,aAAa;AAG3B,cAAM,SAAS,uBAAuB,YAAY,CAAC,GAAG,MAAM,IAAI;AAChE,YAAI,QAAQ;AACV,iBAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAEA,QAAM,UAAU,CAACC,aAAoB,YAAoB,SAAiB;AACxE,UAAM,eAAe,CAAC,MAAM,IAAI;AAChC,UAAM,eACJ,UAAU,aAAa,SAAS,MAAM,IAAI,IAAI,MAAM,KAAK;AAC3D,UAAM,OACJA,gBAAe,uBACX,IAAIA,WAAU,IAAI,IAAI,IAAI,UAAU,KACpC,GAAG,YAAY,IAAIA,WAAU,IAAI,IAAI;AAC3C,WAAO,KAAK,WAAW,MAAM,GAAG;AAAA,EAClC;AAEA,QAAM,cAAc,CAAC;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,MAAsB;AACpB,UAAM,gBAAwB,OAAO,SAAS,WAAW,OAAO,KAAK,MAAM;AAC3E,UAAM,gBAAwB,OAAO,SAAS,WAAW,OAAO,KAAK,MAAM;AAC3E,UAAM,eAAe,SAAS,SAAS;AACvC,UAAM,aAAa,SAAS,IAAI,OAAO,YAAY,CAAC,IAAI,QAAQ,KAAK;AACrE,UAAM,aAAa,SAAS,GAAG,aAAa,GAAG,UAAU,KAAK;AAC9D,WACE,gBAAAJ,MAACK,OAAA,EAAI,IAAIC,iBAAO,kBACd,0BAAAL,OAACM,OAAA,EAAK,IAAI,mBAAmB,cAAc,gBAAgB,KAAK,GAC7D;AAAA,sBACC,gBAAAP;AAAA,QAACQ;AAAA,QAAA;AAAA,UACC,cACE,qBAAqB,IAAI,aAAa,KACtC,qBAAqB,IAAI,aAAa,IAClC,sBACA;AAAA,UAEN,MAAK;AAAA,UACL,SAAQ;AAAA,UACR,IACE,qBAAqB,IAAI,aAAa,KACtC,qBAAqB,IAAI,aAAa,IAClCF,iBAAO,kBACPA,iBAAO;AAAA,UAEb,MAAM,MACJ,gBAAAN;AAAA,YAACS;AAAA,YAAA;AAAA,cACC,WACE,qBAAqB,IAAI,aAAa,KACtC,qBAAqB,IAAI,aAAa,IAClC,SACA;AAAA,cAEN,MAAM;AAAA;AAAA,UACR;AAAA,UAEF,SAAS,MAAM,2BAA2B,aAAa;AAAA;AAAA,MACzD;AAAA,MAED,CAAC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,KACA,CAAC,uBAAuB,mBAAmB,eAAe,MAAM,IAC9D,gBAAAR;AAAA,QAACS;AAAA,QAAA;AAAA,UACC,IAAI,UAAU,yBAAyB,YAAY,YAAY;AAAA,UAC/D,SAAS,CAAC,MAAsC;AAC9C,gBAAI,CAAC,iBAAiB;AACpB,0BAAY,GAAG,YAAY,aAAa;AAAA,YAC1C;AACA,uCAA2B,UAAU;AAAA,UACvC;AAAA,UACA,MAAM,QAAQ,cAAc,IAAI,YAAY,aAAa;AAAA,UACzD,QAAQ,oBAAoB,OAAO,WAAW;AAAA,UAC9C;AAAA,UAEC;AAAA,sBACC,gBAAAV;AAAA,cAAC;AAAA;AAAA,gBACC,IAAIM,iBAAO;AAAA,gBACX,QAAQ,yBAAyB;AAAA,gBACjC,QAAO;AAAA,gBACP;AAAA;AAAA,YACF;AAAA,YAED;AAAA;AAAA;AAAA,MACH,IACE;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,IACA,gBAAAL,OAACS,OAAA,EAAK,MAAM,eAAe,QAAO,UAAS,IAAIJ,iBAAO,aACpD;AAAA,wBAAAN,MAAC,oBAAiB,MAAM,IAAI,IAAI,EAAE,aAAa,OAAO,GAAG;AAAA,QACxD;AAAA,SACH,IAEA,gBAAAC;AAAA,QAACI;AAAA,QAAA;AAAA,UACC,IAAI;AAAA,YACF,yBAAyB;AAAA,YACzB;AAAA,UACF;AAAA,UACA,SAAS,MAAM;AACb,uCAA2B,aAAa;AAAA,UAC1C;AAAA,UAEC;AAAA,sBACC,gBAAAL;AAAA,cAAC;AAAA;AAAA,gBACC,IAAIM,iBAAO;AAAA,gBACX,QAAQ,yBAAyB;AAAA,gBACjC,QAAO;AAAA,gBACP;AAAA;AAAA,YACF;AAAA,YAED;AAAA;AAAA;AAAA,MACH;AAAA,OAEJ,GACF;AAAA,EAEJ;AAEA,QAAM,kBAAkB,CAAC,EAAE,MAAM,SAAS,MAAsB;AAC9D,UAAM,eAAe,SAAS,SAAS;AAIvC,UAAM,gBAAwB,OAAO,SAAS,WAAW,OAAO,KAAK,MAAM;AAC3E,WAAO,gBACL,qBAAqB,IAAI,aAAa,KACtC,qBAAqB,IAAI,aAAa,IACtC,gBAAAN,MAACK,OAAA,EACC,0BAAAL;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,OAAO;AAAA,QACP,cAAc,eAAe;AAAA;AAAA,MACxB,GAAG,aAAa;AAAA,IACvB,GACF,IACE;AAAA,EACN;AAEA,SACE,gBAAAA,MAACK,OAAA,EAAI,WAAU,qBACZ,iBAAO,IAAI,CAACM,OAAM,UAAU;AAC3B,UAAM,MACJ,OAAOA,MAAK,SAAS,WACjB,OAAOA,MAAK,IAAI,IAAI,OAAO,KAAK,IAChC,OAAOA,MAAK,KAAK,MAAM,CAAC,IAAI,OAAO,KAAK;AAC9C,UAAM,OACJ,OAAOA,MAAK,SAAS,WACjB,GAAGA,MAAK,IAAI,KACZ,GAAGA,MAAK,KAAK,MAAM,CAAC;AAE1B,WACE,gBAAAV,OAAC,YACC;AAAA,sBAAAD,MAAC,eAAa,GAAGW,OAAM,MAAY;AAAA,MACnC,gBAAAX,MAACK,OAAA,EACC,0BAAAL,MAAC,mBAAiB,GAAGW,OAAM,MAAY,GACzC;AAAA,MACC,gBAAgB,IACf,gBAAAX,MAACK,OAAA,EAAI,IAAIC,iBAAO,gBACd,0BAAAN,MAAC,QAAG,GACN,IACE;AAAA,SATS,OAAO,GAAG,CAUzB;AAAA,EAEJ,CAAC,GACH;AAEJ;AAEA,IAAO,2BAAQ;;;AGxQf,SAAS,QAAAY,aAAY;AASjB,gBAAAC,aAAA;AAPJ,IAAM,aAAa,CAAC,UAClB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN,0BAAAC;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,UAAS;AAAA,QACT,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA;AACF;AAGF,IAAO,sBAAQ;;;AClBf,SAAS,QAAAC,aAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,oBAAoB,CAAC,UACzB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,8BAAQ;;;ACxCf,SAAS,QAAAE,aAAY;AAGnB,SAOE,OAAAC,OAPF,QAAAC,cAAA;AADF,IAAM,gBAAgB,CAAC,UACrB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEL;AAAA;AAAA,MACD,gBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,0BAAQ;;;AbuEJ,qBAAAE,WAAA,OAAAC,OAcH,QAAAC,cAdG;AA5EX,IAAM,iBAAiB,CAAC;AAAA,EACtB,eAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,kBAAkB;AACpB,MAA2B;AACzB,QAAM,CAAC,aAAa,cAAc,IAAIC,UAAS,EAAE;AACjD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAIC,YAAW,cAAc;AAC7B,QAAM,CAAC,kBAAkB,mBAAmB,IAAID,UAAS;AAAA,IACvD,EAAE,MAAM,QAAQ,QAAQ,MAAM;AAAA,IAC9B,EAAE,MAAM,OAAO,QAAQ,MAAM;AAAA,IAC7B,EAAE,MAAM,OAAO,QAAQ,MAAM;AAAA,IAC7B,EAAE,MAAM,UAAU,QAAQ,MAAM;AAAA,IAChC,EAAE,MAAM,SAAS,QAAQ,MAAM;AAAA,EACjC,CAAC;AAED,QAAM,eAAe,iBAAiB;AAAA,IACpC,CAAC,iBAAiB,aAAa;AAAA,EACjC;AAEA,QAAM,iBAAiB,QAAQ,MAAM;AACnC,QAAI,CAAC,gBAAgB,gBAAgB;AAAI,aAAO;AAEhD,UAAM,WAAW,KAAK,MAAM,KAAK,UAAU,UAAU,CAAC;AAEtD,UAAM,qBAAqB,SACxB,IAAI,CAACE,cAA6B;AACjC,MAAAA,UAAS,WAAWA,UAAS,SAC1B,IAAI,CAAC,gBAAgB;AACpB,oBAAY,WAAW,YAAY,SAAS,OAAO,CAAC,aAAa;AAC/D,gBAAM,kBACJ,CAAC,gBACD,iBAAiB;AAAA,YACf,CAAC,iBAAiB,aAAa,SAAS,SAAS;AAAA,UACnD,GAAG;AACL,gBAAM,iBACJ,gBAAgB,OACf,OAAO,SAAS,SAAS,WACtB,SAAS,OACT,SAAS,KAAK,MAAM,GAErB,YAAY,EACZ,SAAS,YAAY,YAAY,CAAC;AACvC,iBAAO,mBAAmB;AAAA,QAC5B,CAAC;AACD,eAAO;AAAA,MACT,CAAC,EACA;AAAA,QACC,CAAC,gBACC,YAAY,SAAS,SAAS,KAC7B,YAAY,SAAS,eACnB,OAAO,YAAY,SAAS,WACzB,YAAY,OACZ,YAAY,KAAK,MAAM,GAExB,YAAY,EACZ,SAAS,YAAY,YAAY,CAAC;AAAA,MAC3C;AACF,aAAOA;AAAA,IACT,CAAC,EACA,OAAO,CAACA,cAA6BA,UAAS,SAAS,SAAS,CAAC;AACpE,WAAO;AAAA,EACT,GAAG,CAAC,cAAc,kBAAkB,YAAY,WAAW,CAAC;AAE5D,QAAM,UAAUC,SAAQJ,gBAAe,eAAe;AAEtD,MAAI,wBAAwB;AAE5B,MAAI,CAAC,cAAc,WAAW,UAAU,GAAG;AACzC,WAAO,gBAAAF,MAAAD,WAAA,EAAE;AAAA,EACX,OAAO;AACL,4BAAwB,OAAO,SAAU,WAAW,OAAO,KAAK,MAAM;AAAA,EACxE;AAEA,SAAO,kBACL,gBAAAC;AAAA,IAACO;AAAA,IAAA;AAAA,MACC,WAAW,uBAAuB,WAAW;AAAA,MAC7C,IAAIC,gBAAO;AAAA,MAEX,0BAAAP;AAAA,QAACM;AAAA,QAAA;AAAA,UACC,WAAW,uBAAuB,gBAAgB;AAAA,UAClD,IAAIC,gBAAO;AAAA,UAEX;AAAA,4BAAAP,OAACQ,OAAA,EAAK,IAAID,gBAAO,uBACf;AAAA,8BAAAR;AAAA,gBAACU;AAAA,gBAAA;AAAA,kBACC,IAAIF,gBAAO;AAAA,kBACX,cAAY;AAAA,kBACZ,MAAK;AAAA,kBACL,SAAQ;AAAA,kBACR,MAAM,MAAM,gBAAAR,MAAC,2BAAc,MAAM,IAAI;AAAA,kBACrC,SAAS,MAAM;AACb,4CAAwB,IAAI;AAAA,kBAC9B;AAAA;AAAA,cACF;AAAA,cACC,WAAW,gBAAAA,MAAC,WAAQ;AAAA,cACrB,gBAAAA,MAACW,OAAA,EAAK,IAAIH,gBAAO,cAAe,iCAAsB;AAAA,eACxD;AAAA,YACA,gBAAAP,OAACM,OAAA,EAAI,IAAIC,gBAAO,sBACd;AAAA,8BAAAP,OAACQ,OAAA,EAAK,IAAID,gBAAO,WACf;AAAA,gCAAAR,MAAC,uBAAW,IAAIQ,gBAAO,YAAY;AAAA,gBACnC,gBAAAR;AAAA,kBAAC;AAAA;AAAA,oBACC,OAAOQ,gBAAO;AAAA,oBACd,WAAU;AAAA,oBACV,MAAK;AAAA,oBACL,aACE,SAAS,MAAM,EAAE,4BAA4B,IAC7C,MACA;AAAA,oBAEF,OAAO;AAAA,oBACP,UAAU,CAAC,MAAM,eAAe,EAAE,cAAc,KAAK;AAAA;AAAA,gBACvD;AAAA,iBACF;AAAA,cACCN,kBAAiB,mBAChB,gBAAAF;AAAA,gBAAC;AAAA;AAAA,kBACC;AAAA,kBACA,iBAAiB;AAAA;AAAA,cACnB;AAAA,eAEJ;AAAA,YACA,gBAAAA,MAACO,OAAA,EAAI,IAAIC,gBAAO,sBACd,0BAAAR;AAAA,cAAC;AAAA;AAAA,gBACC,OAAO;AAAA,gBACP,cAAc;AAAA,gBACd;AAAA;AAAA,YACF,GACF;AAAA;AAAA;AAAA,MACF;AAAA;AAAA,EACF,IAEA,gBAAAC;AAAA,IAACM;AAAA,IAAA;AAAA,MACC,WAAW,uBAAuB,WAAW;AAAA,MAC7C,IAAIC,gBAAO;AAAA,MAEX;AAAA,wBAAAP;AAAA,UAACM;AAAA,UAAA;AAAA,YACC,WAAW,uBAAuB,gBAAgB;AAAA,YAClD,IAAIC,gBAAO;AAAA,YACX,WAAQ;AAAA,YAER;AAAA,8BAAAP,OAACM,OAAA,EAAI,IAAIC,gBAAO,wBACb;AAAA,mCACC,gBAAAP,OAACU,OAAA,EAAK,IAAIH,gBAAO,aACf;AAAA,kCAAAP;AAAA,oBAAC;AAAA;AAAA,sBACC,OAAM;AAAA,sBACN,OAAM;AAAA,sBACN,QAAO;AAAA,sBACP,SAAQ;AAAA,sBACR,MAAK;AAAA,sBAEL;AAAA,wCAAAD,MAAC,YAAO,IAAG,MAAK,IAAG,MAAK,GAAE,MAAK,MAAK,WAAU;AAAA,wBAC9C,gBAAAA;AAAA,0BAAC;AAAA;AAAA,4BACC,GAAE;AAAA,4BACF,MAAK;AAAA;AAAA,wBACP;AAAA,wBACA,gBAAAA;AAAA,0BAAC;AAAA;AAAA,4BACC,GAAE;AAAA,4BACF,MAAK;AAAA;AAAA,wBACP;AAAA;AAAA;AAAA,kBACF;AAAA,kBAAM;AAAA,mBAER;AAAA,gBAEF,gBAAAA,MAACW,OAAA,EAAK,IAAIH,gBAAO,cAAe,iCAAsB;AAAA,gBACtD,gBAAAP,OAACQ,OAAA,EAAK,IAAID,gBAAO,WACf;AAAA,kCAAAR,MAAC,uBAAW,IAAIQ,gBAAO,YAAY;AAAA,kBACnC,gBAAAR;AAAA,oBAAC;AAAA;AAAA,sBACC,OAAOQ,gBAAO;AAAA,sBACd,WAAU;AAAA,sBACV,MAAK;AAAA,sBACL,aACE,SAAS,MAAM,EAAE,4BAA4B,IAC7C,MACA;AAAA,sBAEF,OAAO;AAAA,sBACP,UAAU,CAAC,MAAM,eAAe,EAAE,cAAc,KAAK;AAAA;AAAA,kBACvD;AAAA,mBACF;AAAA,iBACF;AAAA,cACCN,kBAAiB,mBAChB,gBAAAF;AAAA,gBAAC;AAAA;AAAA,kBACC;AAAA,kBACA,iBAAiB;AAAA;AAAA,cACnB;AAAA,cAEF,gBAAAA,MAACO,OAAA,EAAI,IAAIC,gBAAO,sBACd,0BAAAR;AAAA,gBAAC;AAAA;AAAA,kBACC,OAAO;AAAA,kBACP,cAAc;AAAA,kBACd;AAAA;AAAA,cACF,GACF;AAAA;AAAA;AAAA,QACF;AAAA,QACA,gBAAAA;AAAA,UAACS;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,IACE,uBACID,gBAAO,sBACPA,gBAAO;AAAA,YAGb,0BAAAR;AAAA,cAAC;AAAA;AAAA,gBACC,SAAS,MAAM;AACb;AAAA,oBACE,CAACY,0BAAyB,CAACA;AAAA,kBAC7B;AAAA,gBACF;AAAA,gBACA,IAAI,uBAAuBJ,gBAAO,aAAa,CAAC;AAAA;AAAA,YAClD;AAAA;AAAA,QACF;AAAA;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,0BAAQ;;;AR3IH,SAoCA,YAAAK,WA7BE,OAAAC,OAPF,QAAAC,cAAA;AA4CM;AAhIlB,IAAM,UAAU,CAAC,EAAE,eAAe,CAAC,EAAE,MAA2B;AAC9D,QAAM,CAAC,mBAAmB,oBAAoB,IAAIC,UAAS,IAAI;AAE/D,QAAM,UAAUC,YAAW,cAAc;AACzC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,QAAM,wBAAwB;AAAA,IAC5B,GAAI,MAAM,QAAQ,iBAAiB,IAC/B,mBAAmB;AAAA,MACjB,CAAC,YACC,QAAQ,kBAAkB;AAAA,IAC9B,IACA;AAAA,EACN;AAEA,iBAAe;AAAA,IACb;AAAA,IACA;AAAA,EACF,CAAC;AAED,EAAAC,WAAU,MAAM;AACd,QAAI,QAAoC;AACxC,QAAI,sBAAsB,YAAY,SAAS;AAC7C,cAAQ;AAAA,QACN,MAAM,wBAAwB,qBAAqB,KAAK;AAAA,QACxD;AAAA,MACF;AAAA;AACG,8BAAwB,qBAAqB,IAAI;AAEtD,WAAO,MAAM;AACX,eAAS,aAAa,KAAK;AAAA,IAC7B;AAAA,EACF,GAAG,CAAC,iBAAiB,CAAC;AAEtB,QAAM,cAAc,CAAC,mBAA4B;AAC/C,UAAM,CAACC,cAAa,cAAc,IAAIH,UAAS,KAAK;AACpD,UAAM,CAAC,cAAc,eAAe,IAAIA,UAAS,eAAe,KAAK;AACrE,UAAM,WAAWI,QAAoB;AAErC,IAAAF,WAAU,MAAM;AACd,YAAM,iBAAiB,IAAI,iBAAiB,SAAU,SAAS;AAC7D,cAAM,SAAS,QAAQ,CAAC,EAAE;AAC1B,YAAI,OAAO,cAAc,OAAO;AAAa,yBAAe,IAAI;AAAA;AAC3D,yBAAe,KAAK;AAEzB,YAAI,OAAO,cAAc;AAAG,0BAAgB,OAAO,SAAS;AAAA,MAC9D,CAAC;AACD,UAAI,SAAS,SAAS;AACpB,YAAI,SAAS,QAAQ,cAAc,SAAS,QAAQ;AAClD,yBAAe,IAAI;AACrB,uBAAe,QAAQ,SAAS,SAAS;AAAA,UACvC,WAAW;AAAA,QACb,CAAC;AAAA,MACH;AACA,aAAO,MAAM;AACX,uBAAe;AAAA,MACjB;AAAA,IACF,GAAG,CAAC,SAAS,OAAO,CAAC;AAErB,WACE,gBAAAJ,MAACO,OAAA,EAAI,IAAIC,gBAAO,eACd,0BAAAR;AAAA,MAAC;AAAA;AAAA,QACC,IAAI,iBAAiBK,YAAW;AAAA,QAChC,WAAU;AAAA,QACV,OAAO;AAAA,QAEP,0BAAAL;AAAA,UAACS;AAAA,UAAA;AAAA,YACC,MAAM,CAAC,kBAAkB,eAAe,OAAO;AAAA,YAC/C,QAAQ,gBAAgB,kBAAkB,OAAO,WAAW;AAAA,YAC5D,SAAS,CAAC,MAAM;AACd,kBAAI,iBAAiB;AACnB,kBAAE,eAAe;AAAA,cACnB;AACA,mCAAqB,eAAe,EAAE;AAAA,YACxC;AAAA,YACA,UAAQ;AAAA,YACR,cAAY,eAAe;AAAA,YAE3B,0BAAAR;AAAA,cAACS;AAAA,cAAA;AAAA,gBACC,IACE,sBAAsB,eAAe,KACjCF,gBAAO,gBACPA,gBAAO;AAAA,gBAGb;AAAA,kCAAAR;AAAA,oBAAC,eAAe;AAAA,oBAAf;AAAA,sBACC,IACE,sBAAsB,eAAe,KACjCQ,gBAAO,aACPA,gBAAO;AAAA;AAAA,kBAEf;AAAA,kBACA,gBAAAR;AAAA,oBAACW;AAAA,oBAAA;AAAA,sBACC,WAAW,oBAAoB,4BAA4B;AAAA,sBAC3D,KAAK;AAAA,sBACL,IAAIH,gBAAO;AAAA,sBAEV,yBAAe;AAAA;AAAA,kBAClB;AAAA;AAAA;AAAA,YACF;AAAA;AAAA,QACF;AAAA;AAAA,IACF,GACF;AAAA,EAEJ;AAEA,SACE,gBAAAP,OAACS,QAAA,EAAK,IAAIF,gBAAO,SACf;AAAA,oBAAAR;AAAA,MAACU;AAAA,MAAA;AAAA,QACC,WAAW,oBAAoB,0BAA0B;AAAA,QACzD,IAAIF,gBAAO;AAAA,QAEV,0BAAgB,IAAI,CAAC,SAAS,OAAO;AACpC,iBACE,gBAAAP,OAAAF,WAAA,EACG;AAAA,iBAAK,KACJ,gBAAAC,MAACO,OAAA,EAAI,IAAIC,gBAAO,gBACd,0BAAAR,MAAC,QAAG,KAD+B,GAAG,EAAE,UAE1C;AAAA,YAEF,gBAAAA,MAACU,QAAA,EAAK,IAAIF,gBAAO,uBACd,kBAAQ,IAAI,CAAC,YACZ;AAAA,cAAC;AAAA;AAAA,gBACE,GAAG;AAAA,gBACJ,KAAK,gBAAgB,QAAQ,KAAK;AAAA;AAAA,YACpC,CACD,KAN0C,EAO7C;AAAA,aACF;AAAA,QAEJ,CAAC;AAAA;AAAA,IACH;AAAA,IACC,oBAAoB,gBAAAR,MAAC,2BAAgB,GAAG,uBAAuB,IAAK;AAAA,KACvE;AAEJ;AAEA,IAAO,kBAAQ;;;AsBpKf;AAAA,EACE;AAAA,EACA,iBAAiB;AAAA,EACjB,OAAAY;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC;AAAA,OACK;;;ACJP,IAAM,gBAA6B;AAAA,EACjC,SAAS;AAAA,EACT,OAAO;AACT;AAEA,IAAM,gBAA6B;AAAA,EACjC,SAAS;AAAA,EACT,eAAe;AAAA,EACf,OAAO;AAAA,EACP,WAAW;AAAA,EACX,QAAQ;AACV;AAEA,IAAM,oBAAiC;AAAA,EACrC,iBAAiB;AAAA,EACjB,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,WAAW;AAAA,EACX,WAAW;AAAA,EACX,WAAW;AAAA,EACX,YAAY;AACd;AAEA,IAAM,qBAAkC;AAAA,EACtC,SAAS,CAAC,SAAS,SAAS,SAAS,MAAM;AAAA,EAC3C,iBAAiB;AAAA,EACjB,OAAO;AAAA,EACP,eAAe;AAAA,IACb,WAAW;AAAA,EACb;AACF;AAIA,IAAM,2BAAwC;AAAA,EAC5C,SAAS;AAAA,EACT,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,QAAQ;AACV;AAEA,IAAM,yBAAsC;AAAA,EAC1C,IAAI;AAAA,EACJ,eAAe;AACjB;AAEA,IAAM,mBAAgC;AAAA,EACpC,IAAI;AAAA,EACJ,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,WAAW;AACb;AAEA,IAAM,yBAAsC;AAAA,EAC1C,SAAS;AAAA,EACT,UAAU;AAAA,EACV,WAAW;AACb;AAEA,IAAM,qBAAkC;AAAA,EACtC,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,gBAAgB;AAClB;AAEA,IAAMC,aAAyB;AAAA,EAC7B,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,OAAO;AACT;AAEA,IAAMC,mBAA+B;AAAA,EACnC,GAAGD;AAAA,EACH,OAAO;AACT;AAEA,IAAOE,mBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAAF;AAAA,EACA,iBAAAC;AACF;;;ADlFA,SAAS,cAAAE,oBAAkB;;;AET3B,OAAOC,WAAU;AACjB,SAAS,OAAAC,OAAK,QAAAC,QAAM,QAAAC,aAAY;;;ACChC,IAAMC,iBAA6B;AAAA,EACjC,IAAI,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,MAAM;AAAA,EAC3D,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,mBAAmB;AAAA,IACjB,cAAc;AAAA,IACd,iBAAiB;AAAA,IAEjB,gBAAgB;AAAA,MACd,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,kBAAkB;AAAA,IAChB,OAAO;AAAA,EACT;AAAA,EAEA,iBAAiB;AAAA,IACf,OAAO;AAAA,EACT;AACF;AAEA,IAAM,iBAA8B;AAAA,EAClC,YAAY;AACd;AAEA,IAAMC,SAAqB;AAAA,EACzB,IAAI;AAAA,EACJ,OAAO;AACT;AAEA,IAAMC,eAA2B;AAAA,EAC/B,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,OAAO;AACT;AAEA,IAAOC,mBAAQ;AAAA,EACb,eAAAH;AAAA,EACA,aAAAE;AAAA,EACA,OAAAD;AAAA,EACA;AACF;;;AC1CA,IAAMG,iBAAgB,CAAC,kBAA0B;AAC/C,QAAM,iBACJ,kBAAkB,aACd,CAAC,SAAS,SAAS,SAAS,OAAO,IACnC,kBAAkB,WAClB,SACA,CAAC,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ;AAErE,QAAM,YACJ,kBAAkB,aACd,CAAC,SAAS,SAAS,SAAS,OAAO,IACnC,kBAAkB,WAClB,QACA,CAAC,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ;AAErE,QAAMA,iBAA6B;AAAA,IACjC,GAAGC,iBAAO;AAAA,IACV,OAAO;AAAA,IAEP,wBAAwB;AAAA,MACtB,OAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAOD;AACT;AAEA,IAAME,kBAAiB,CAAC,kBAA0B;AAChD,QAAM,eACJ,kBAAkB,aAAa,CAAC,OAAO,OAAO,OAAO,KAAK,IAAI;AAEhE,QAAMA,kBAA8B;AAAA,IAClC,GAAGD,iBAAO;AAAA,IACV;AAAA,EACF;AAEA,SAAOC;AACT;AAEA,IAAM,YAAY,CAAC,kBAA0B;AAC3C,QAAM,kBACJ,kBAAkB,aACd;AAAA,IACE,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY;AAAA,EACd,IACA;AAAA,IACE,UAAU;AAAA,IACV,YAAY;AAAA,EACd;AAEN,QAAMC,aAAyB;AAAA,IAC7B,GAAGF,iBAAO;AAAA,IACV,GAAG;AAAA,EACL;AAEA,SAAOE;AACT;;;AFpCU,SACE,OAAAC,OADF,QAAAC,cAAA;AAZV,IAAM,oBAAoB,CAAC;AAAA,EACzB,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,MAAAC;AAAA,EACA;AAAA,EACA,MAAAC;AAAA,EACA;AACF,MAAiB;AACf,SACE,gBAAAL,MAACM,OAAA,EAAK,MAAMF,OAAM,gBAAc,MAC9B,0BAAAJ,MAAC,OAAE,SAAkB,OAAO,EAAE,OAAO,OAAO,GAC1C,0BAAAC,OAACM,OAAA,EAAI,IAAIC,eAAc,aAAa,GAClC;AAAA,oBAAAP,OAACQ,QAAA,EAAK,IAAIC,gBAAe,aAAa,GACpC;AAAA,sBAAAV,MAACK,QAAA,EAAK,IAAI,EAAE,OAAO,UAAU,GAAG,MAAM,IAAI;AAAA,MAC1C,gBAAAL,MAACW,OAAA,EAAK,WAAU,SAAQ,IAAI,UAAU,aAAa,GAChD,UAAAT,QACH;AAAA,OACF;AAAA,IACA,gBAAAF,MAACW,OAAA,EAAK,WAAU,eAAc,IAAIC,iBAAO,aACtC,UAAAT,cACH;AAAA,KACF,GACF,GACF;AAEJ;AAEA,IAAO,6BAAQ;;;AG1Cf,SAAS,WAAW,qBAAqB;;;ACAzC,SAAS,UAAAU,SAAuB,cAAAC,mBAAkB;AAClD,SAAS,aAAAC,kBAAiB;AAC1B,SAAS,QAAAC,cAAY;AACrB,SAAS,wBAAwB;;;ACDjC,IAAM,wBAAqC;AAAA,EACzC,UAAU;AACZ;AAEA,IAAM,wBAAqC;AAAA,EACzC,KAAK;AAAA,EACL,UAAU;AAAA,EACV,OAAO,CAAC,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO;AAAA,EAC5D,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,YAAY;AACd;AAEA,IAAM,aAA0B;AAAA,EAC9B,SAAS;AACX;AAEA,IAAM,SAAsB;AAAA,EAC1B,SAAS;AAAA,EACT,WAAW;AAAA,EACX,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,EACb;AACF;AAEA,IAAM,SAAsB;AAAA,EAC1B,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,mBAAmB;AAAA,IACjB,iBAAiB;AAAA,IACjB,cAAc;AAAA,IACd,sBAAsB;AAAA,MACpB,OAAO;AAAA,IACT;AAAA,IACA,aAAa;AAAA,MACX,UAAU;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAM,UAAuB;AAAA,EAC3B,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,aAAa;AACf;AAEA,IAAM,sBAAmC;AAAA,EACvC,OAAO;AACT;AAEA,IAAM,aAA0B;AAAA,EAC9B,OAAO;AAAA,EACP,UAAU,CAAC,QAAQ,MAAM;AAAA,EACzB,YAAY,CAAC,QAAQ,MAAM;AAAA,EAC3B,OAAO;AACT;AAEA,IAAM,kBAA+B;AAAA,EACnC,OAAO;AAAA,EACP,UAAU,CAAC,QAAQ,MAAM;AAAA,EACzB,YAAY,CAAC,QAAQ,MAAM;AAAA,EAC3B,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,cAAc;AAChB;AAEA,IAAM,cAA2B;AAAA,EAC/B,YAAY;AACd;AAEA,IAAM,gBAA6B;AAAA,EACjC,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,cAAc;AAChB;AAEA,IAAM,kBAA+B;AAAA,EACnC,GAAG;AAAA,EACH,UAAU;AACZ;AAEA,IAAM,qBAAkC;AAAA,EACtC,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AACT;AAEA,IAAMC,eAA2B;AAAA,EAC/B,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,UAAU,CAAC,MAAM;AAAA,EACjB,MAAM;AAAA,EACN,YAAY;AACd;AAEA,IAAMC,cAA0B;AAAA,EAC9B,UAAU;AAAA,EACV,WAAW;AAAA,EACX,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,UAAU;AACZ;AAEA,IAAM,kBAA+B;AAAA,EACnC,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,UAAU;AAAA,IACR,YAAY;AAAA,IACZ,OAAO,CAAC,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO;AAAA,IAC5D,QAAQ;AAAA,EACV;AAAA,EACA,iBAAiB;AAAA,IACf,YAAY;AAAA,IACZ,OAAO,CAAC,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO;AAAA,IAC5D,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,MAAM;AAAA,IACN,oBAAoB;AAAA,MAClB,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,oBAAoB;AAAA,IAClB,sBAAsB;AAAA,MACpB,OAAO;AAAA,IACT;AAAA,IACA,4BAA4B;AAAA,MAC1B,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAEA,IAAM,YAAyB;AAAA,EAC7B,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,SAAS;AACX;AAEA,IAAM,wBAAqC;AAAA,EACzC,GAAG;AAAA,EACH,OAAO;AAAA,EACP,OAAO;AAAA,EACP,YAAY;AACd;AAEA,IAAOC,mBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAAF;AAAA,EACA,YAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ADjJI,SACE,OAAAE,OADF,QAAAC,cAAA;AAzBJ,IAAM,qBAAqB,CAAC;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AACF,MAAsB;AACpB,QAAM,SAASC,WAAU;AACzB,QAAM,WAAWC,QAAyB,IAAI;AAC9C,QAAM,EAAE,OAAO,IAAIC,YAAW,cAAc;AAE5C,QAAM,cAAc,MAAM;AACxB,QAAI,SAAS,WAAW;AAAM,eAAS,QAAQ,MAAM;AAAA,EACvD;AAEA,QAAM,aAAa,CAAC,MAAuC;AACzD,QAAI,EAAE,QAAQ,SAAS;AACrB,aAAO,KAAK;AAAA,QACV,UAAU;AAAA,QACV,OAAO,EAAE,SAAS,SAAS,SAAS,MAAM;AAAA,MAC5C,CAAC;AACD,eAAS,SAAS,KAAK;AACvB,kBAAY,KAAK;AAAA,IACnB;AAAA,EACF;AAEA,SACE,gBAAAH,OAACI,QAAA,EAAK,IAAIC,iBAAO,iBAAiB,SAAS,aACzC;AAAA,oBAAAN,MAAC,uBAAW,IAAIM,iBAAO,YAAY;AAAA,IACnC,gBAAAN;AAAA,MAAC;AAAA;AAAA,QACC,OAAOM,iBAAO;AAAA,QACd,KAAK;AAAA,QACL,WAAU;AAAA,QACV,MAAK;AAAA,QACL,aAAa,SAAS,MAAM,EAAE,0BAA0B;AAAA,QACxD,OAAO;AAAA,QACP,WAAQ;AAAA,QACR,WAAW,CAAC,MAAM,WAAW,CAAC;AAAA,QAC9B,UAAU,CAAC,MAAM,OAAO,EAAE,cAAc,KAAK;AAAA;AAAA,IAC/C;AAAA,KACF;AAEJ;AAEA,IAAM,YAAY,iBAAiB,kBAAkB;AAErD,IAAO,qBAAQ;;;AE3Df,SAAS,aAAAC,kBAAiB;AAC1B,OAAOC,WAAU;AACjB;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAMP,OAAO,QAAQ;AACf,SAAS,OAAAC,OAAK,QAAAC,QAAM,aAAAC,YAAW,QAAAC,aAAY;;;ACX3C,SAAS,QAAAC,aAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,gBAAgB,CAAC,UACrB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,0BAAQ;;;ACjDf,SAAS,QAAAE,aAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,mBAAmB,CAAC,UACxB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,6BAAQ;;;ACjCf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,qBAAqB,CAAC,UAC1B,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,+BAAQ;;;ACnCf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,mBAAmB,CAAC,UACxB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,6BAAQ;;;ACjDf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,4BAA4B,CAAC,UACjC,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,sCAAQ;;;AC/Df,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,iBAAiB,CAAC,UACtB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,4BAAQ;;;AChDf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,sBAAsB,CAAC,UAC3B,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,UAAS;AAAA,UACT,UAAS;AAAA,UACT,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACb;AAAA,MACD,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,UAAS;AAAA,UACT,UAAS;AAAA,UACT,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACb;AAAA,MACD,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,GAAE;AAAA;AAAA,MACH;AAAA;AAAA;AACH;AAGF,IAAO,+BAAQ;;;ACjCf,SAAS,QAAAE,cAAY;AASjB,gBAAAC,OACA,QAAAC,cADA;AAPJ,IAAM,YAAY,CAAC,UACjB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,YAAO,IAAG,KAAI,IAAG,KAAI,GAAE,KAAI,MAAK,WAAU;AAAA,MAC3C,gBAAAC,OAAC,OAAE,UAAS,0BACV;AAAA,wBAAAD;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,UAAS;AAAA,YACT,UAAS;AAAA,YACT,GAAE;AAAA,YACF,MAAK;AAAA;AAAA,QACP;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,UAAS;AAAA,YACT,UAAS;AAAA,YACT,GAAE;AAAA,YACF,MAAK;AAAA;AAAA,QACP;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,UAAS;AAAA,YACT,UAAS;AAAA,YACT,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,UAAS;AAAA,YACT,UAAS;AAAA,YACT,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,SACF;AAAA,MACA,gBAAAA,MAAC,UACC,0BAAAA,MAAC,cAAS,IAAG,oBACX,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,QAAO;AAAA,UACP,MAAK;AAAA,UACL,WAAU;AAAA;AAAA,MACZ,GACF,GACF;AAAA;AAAA;AACF;AAGF,IAAO,qBAAQ;;;ACrEf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,iBAAiB,CAAC,UACtB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,YAAO,IAAG,KAAI,IAAG,KAAI,GAAE,KAAI,MAAK,WAAU;AAAA,MAC3C,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA;AAAA;AACF;AAGF,IAAO,0BAAQ;;;ACnBf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,YAAY,CAAC,UACjB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,YAAO,IAAG,KAAI,IAAG,KAAI,GAAE,KAAI,MAAK,WAAU;AAAA,MAC3C,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA,UACL,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,qBAAQ;;;ACvBf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,eAAe,CAAC,UACpB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,YAAO,IAAG,OAAM,IAAG,KAAI,GAAE,KAAI,MAAK,WAAU;AAAA,MAC7C,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,wBAAQ;;;ACpBf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,cAAc,CAAC,UACnB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,YAAO,IAAG,OAAM,IAAG,KAAI,GAAE,KAAI,MAAK,WAAU;AAAA,MAC7C,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,uBAAQ;;;ACZR,IAAM,iBAAiB,CAAC,QAAa;AAC1C,QAAM,cAAwB,CAAC;AAC/B,MAAI,IAAI,YAAY,mBAAmB,IAAI;AACzC,gBAAY,KAAK,IAAI,WAAW;AAClC,cAAY,KAAK,IAAI,QAAQ;AAC7B,SAAO;AACT;AAEO,IAAM,iBAAiB,CAAC,QAAgB;AAC7C,QAAM,cAAc,IAAI,QAAQ,sBAAsB,EAAE;AACxD,SAAO,MAAM;AACf;AA0CO,IAAM,qBAAqB,CAAC,UAAuB,OAAe;AACvE,SAAO,SAAS,KAAK,EAAE,KAAK,CAAC,YAAY,QAAQ,OAAO,EAAE,GAAG;AAC/D;AAcA,IAAM,UAAoB;AAAA,EACxB;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AACF;AAEO,IAAM,YAAY,CAAC,eAAmC;AAC3D,SAAO,QAAQ,KAAK,CAAC,WAAW,OAAO,SAAS,UAAU;AAC5D;AAEO,IAAM,eAAe,CAAC,UAAuB,OAAe;AACjE,SAAO,SAAS,KAAK,EAAE,KAAK,CAACE,UAASA,MAAK,OAAO,EAAE,GAAG,SAAS;AAClE;;;ACvHA,SAAS,aAAAC,YAAW,UAAAC,SAAQ,YAAAC,iBAAgB;AAC5C,SAAS,wBAAwB;AAEjC,SAAS,QAAAC,QAAM,QAAAC,aAAY;AA2Hb,gBAAAC,aAAA;AA1Gd,IAAM,YAAY,CAAC;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA4B;AAC1B,QAAM,CAAC,WAAW,YAAY,IAAIC,UAA8B,CAAC,CAAC;AAClE,QAAM,gBAAgBC,QAAoB,IAAI;AAC9C,QAAM,gBAAqC,UAAU;AAAA,IACnD,mBAAmB;AAAA,IACnB,WAAW,IAAI,QAAQ,YAAY,aAAa,IAAI,IAAI,KAAK;AAAA,IAC7D;AAAA,EACF,CAAC;AACD,QAAM,qBAAqB;AAC3B,QAAM,kBAAuC,CAAC;AAC9C,MAAI,YAAY;AACd,QAAI,YAAY;AAChB,kBAAc,QAAQ,CAAC,SAAS;AAC9B,UAAI,qBAAqB,aAAa;AAAG;AACzC,UAAI,KAAK,MAAM,SAAS,aAAa,oBAAoB;AACvD,aAAK,QACH,KAAK,MAAM,MAAM,GAAG,qBAAqB,YAAY,CAAC,IAAI;AAAA,MAC9D;AACA,mBAAa,KAAK,MAAM;AACxB,sBAAgB,KAAK,IAAI;AAAA,IAC3B,CAAC;AAAA,EACH;AAEA,EAAAC,WAAU,MAAM;AACd,QAAI;AAAY;AAChB,UAAM,YAAY,cAAc,UAC5B,cAAc,QAAQ,cAAc,OACpC;AAEJ,UAAM,iBAAwC,CAAC;AAC/C,QAAI,iBAAiB,GACnB,kBAAkB;AAEpB,kBAAc,QAAQ,CAAC,OAA0B,UAAkB;AACjE,YAAM,YACJ,QAAQ,KAAK,QAAQ,cAAc,SAAS,IAAI,OAAO;AACzD,UAAI,MAAM,eAAe;AACvB,YAAI;AAAW;AACf;AACA,2BAAmB,MAAM,MAAM;AAAA,MACjC,OAAO;AACL,uBAAe,KAAK;AAAA,UAClB;AAAA,UACA;AAAA,UACA,MAAM,MAAM,MAAM;AAAA,QACpB,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAED,mBAAe;AAAA,MACb,CAAC,GAAwB,MAA2B,EAAE,OAAO,EAAE;AAAA,IACjE;AAEA,QAAI,gBAAgB,YAAY;AAChC,QAAI,OAAO,iBAAiB,kBAAkB;AAE9C,mBAAe,QAAQ,CAAC,UAA+B;AACrD,YAAM,QAAQ,cAAc,MAAM,KAAK,EAAE;AACzC,UAAI,MAAM,WAAW;AACnB,YAAI,MAAM,QAAQ,OAAO,GAAG;AAC1B,gBAAM,cAAc,OAAO,IAAI,KAAK;AACpC,wBAAc,MAAM,KAAK,EAAE,QACzB,MAAM,MAAM,GAAG,UAAU,IACzB,QACA,MAAM,MAAM,MAAM,SAAS,UAAU;AACvC,2BAAiB,OAAO;AAAA,QAC1B,OAAO;AACL,2BAAiB,MAAM;AAAA,QACzB;AACA,0BAAkB;AAAA,MACpB,OAAO;AACL,YAAI,MAAM,QAAQ,MAAM;AACtB,cAAI,MAAM,UAAU;AAClB,0BAAc,MAAM,KAAK,EAAE,QACzB,QAAQ,MAAM,MAAM,MAAM,UAAU,OAAO,EAAE;AAAA;AAE/C,0BAAc,MAAM,KAAK,EAAE,QAAQ,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI;AAChE,2BAAiB;AAAA,QACnB,OAAO;AACL,2BAAiB,MAAM;AAAA,QACzB;AACA,0BAAkB;AAAA,MACpB;AACA,aAAO,gBAAgB;AACvB,oBAAc,MAAM,KAAK,EAAE,QAAQ,cACjC,MAAM,KACR,EAAE,MAAM,QAAQ,QAAQ,MAAQ;AAAA,IAClC,CAAC;AACD,iBAAa,aAAa;AAAA,EAC5B,GAAG,CAAC,KAAK,cAAc,OAAO,CAAC;AAE/B,SACE,gBAAAH;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,KAAK;AAAA,MACL,WAAU;AAAA,MACV,IAAIC,iBAAO;AAAA,MAEX,0BAAAL,MAACM,OAAA,EAAK,IAAI,aAAaD,iBAAO,aAAaA,iBAAO,iBAC9C,wBAAa,kBAAkB,WAAW;AAAA,QAC1C,CAAC,MAAyB,UACxB,KAAK,gBACH,gBAAAL,MAAC,UAAK,OAAOK,iBAAO,uBACjB,eAAK,SADwC,KAEhD,IAEA,KAAK;AAAA,MAEX,GACF;AAAA;AAAA,EACF;AAEJ;AAUA,IAAM,qBACJ,iBAAiB,SAAS;AAE5B,IAAO,0BAAQ;;;AdhIf,SAAS,cAAAE,mBAAkB;AA4BjB,SAmDJ,YAAAC,WAlDkB,OAAAC,OADd,QAAAC,cAAA;AAfV,IAAM,OAAO,CAAC,EAAE,KAAK,SAAS,MAAgB;AAC5C,QAAM,EAAE,gBAAgB,IAAIC,YAAW,cAAc;AACrD,QAAM,kBAAkB,eAAe,GAAG;AAC1C,QAAM,UAAU,mBAAmB,iBAAiB,IAAI,OAAO;AAC/D,SACE,gBAAAF,MAACG,OAAA,EAAK,MAAM,eAAe,IAAI,GAAG,GAAG,gBAAc,MACjD,0BAAAH;AAAA,IAAC;AAAA;AAAA,MACC,SAAS,MACP,SAAS,+BAA+B;AAAA,QACtC,WAAW;AAAA,QACX,WAAW,CAAC,IAAI,QAAQ;AAAA,MAC1B,CAAC;AAAA,MAGH,0BAAAC,OAACG,OAAA,EAAI,IAAIC,iBAAO,QACd;AAAA,wBAAAJ,OAACK,QAAA,EACE;AAAA,qBAAW,gBAAAN,MAAC,WAAQ,WAAU,YAAW,IAAIK,iBAAO,SAAS;AAAA,UAC9D,gBAAAL,MAACO,OAAA,EAAK,IAAIF,iBAAO,YACf,0BAAAL,MAAC,2BAAgB,KAAU,WAAU,WAAU,GACjD;AAAA,WACF;AAAA,QACA,gBAAAC,OAACK,QAAA,EAAK,IAAID,iBAAO,aACf;AAAA,0BAAAL,MAACO,OAAA,EAAK,IAAIF,iBAAO,iBAAkB,gBAAM,IAAI,OAAO,IAAG;AAAA,UACtD,gBAAgB,SAAS,KACxB,gBAAAL,MAACQ,YAAA,EAAU,WAAU,SAAQ,IAAIH,iBAAO,oBAAoB;AAAA,UAE7D,gBAAgB,IAAI,CAAC,QAAgB,UACpC,gBAAAJ,OAACK,QAAA,EAAK,IAAID,iBAAO,aACf;AAAA,4BAAAL,MAACO,OAAA,EAAK,IAAIF,iBAAO,eAAgB,kBAAO;AAAA,YACvC,QAAQ,gBAAgB,SAAS,IAChC,gBAAAL,MAACQ,YAAA,EAAU,WAAU,SAAQ,IAAIH,iBAAO,oBAAoB,IAC1D;AAAA,eAJ6B,GAAG,MAAM,GAAG,KAAK,EAKpD,CACD;AAAA,WACH;AAAA,SACF;AAAA;AAAA,EACF,GACF;AAEJ;AAEA,IAAM,kBAAkB,mBAAmB,EAAE,EAAE,IAAI;AAEnD,IAAM,UAAU;AAAA,EACd,CAAC,EAAE,aAAa,eAAe,YAAY,MAAM;AAC/C,UAAM,SAASI,WAAU;AACzB,UAAM,EAAE,OAAO,IAAIP,YAAW,cAAc;AAE5C,UAAM,eAAe,CAAC,YAAoB;AACxC,aAAO,KAAK;AAAA,QACV,UAAU;AAAA,QACV,OAAO,EAAE,QAAQ;AAAA,MACnB,CAAC;AACD,kBAAY,KAAK;AAAA,IACnB;AAGA,UAAM,wBAAwB,CAAC,KAAU,UAAuB;AAC9D,aAAO;AAAA,QACL,GAAG;AAAA,QACH,WAAW,cAAc,WAAW;AAAA,QACpC,YAAY,cAAc,cAAc,cAAc,OAAO,QAAQ;AAAA,MACvE;AAAA,IACF;AAEA,WACE,gBAAAF,MAAAD,WAAA,EACG,2BACC,gBAAAC,MAACI,OAAA,EAAI,IAAIC,iBAAO,uBACd,0BAAAJ,OAACG,OAAA,EAAI,IAAIC,iBAAO,uBACd;AAAA,sBAAAL,MAACI,OAAA,EAAI,IAAI,cAAc,KAAK,UAAUC,iBAAO,YAC1C,wBAAc,KAAK;AAAA,QAClB,CAAC,cAAc,UACb,QAAQ,KACN,gBAAAL;AAAA,UAACI;AAAA,UAAA;AAAA,YAEC,SAAS,MAAM,YAAY,KAAK;AAAA,YAEhC,0BAAAJ;AAAA,cAAC;AAAA;AAAA,gBACC,KAAK,sBAAsB,cAAc,KAAK;AAAA;AAAA,YAChD;AAAA;AAAA,UALK,kBAAkB,KAAK;AAAA,QAM9B;AAAA,MAEN,GACF;AAAA,MACC,cAAc,KAAK,SAAS,KAC3B,gBAAAA;AAAA,QAACI;AAAA,QAAA;AAAA,UACC,IAAIC,iBAAO;AAAA,UACX,SAAS,MAAM,aAAa,YAAY,SAAS,EAAE;AAAA,UAEnD,0BAAAL,MAACO,OAAA,EACE,mBAAS,MAAM,EAAE,sBAAsB,KAAK,mBAC/C;AAAA;AAAA,MACF;AAAA,MAED,CAAC,cAAc,KAAK,UACnB,gBAAAP,MAACM,QAAA,EAAK,IAAID,iBAAO,WACf,0BAAAL,MAACO,OAAA,EACE,mBAAS,MAAM,EAAE,oBAAoB,KAAK,iDAC7C,GACF;AAAA,OAEJ,GACF,GAEJ;AAAA,EAEJ;AACF;AAEA,IAAO,sBAAQ;;;AH7If,SAAS,OAAAG,aAAW;AACpB,SAAS,cAAAC,aAAY,UAAAC,SAAQ,YAAAC,iBAAgB;;;AkBJ7C,kBAAoD;AACpD,OAAOC,SAAQ;AAQR,IAAI,eAAoB,CAAC;AACzB,IAAI,cAAc;AAClB,IAAI,cAAc;AAwCzB,IAAM,sBAAsB,CAAC,WAA0B;AACrD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,oBAAoB;AAAA,EACtB,IAAI;AACJ,gBAAc;AAEd,EAAAC,IAAG,QAAQ;AAAA,IACT,OAAO,SAAS;AAAA,IAChB,QAAQ,UAAU;AAAA,IAClB,WAAW;AAAA,EACb,CAAC;AAED,EAAAA,IAAG,gBAAgB,MAAM,CAAC,QAAQ;AAChC,QAAI,KAAK;AACP,cAAQ,MAAM,GAAG;AACjB;AAAA,IACF;AAAA,EACF,CAAC;AAED,QAAM,oBAAgB,YAAAC,SAAc,SAAS,IAAI,UAAU,IAAI,cAAc;AAE7E,iBAAe;AAAA,IACb,GAAG;AAAA,IACH,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA,OAAO,UAAkC;AACvC,UAAI,SAAS,MAAM,CAAC,EAAE,OAAO,MAAM,CAAC,QAAQ,KAAK;AAAG;AACpD,aAAO,cAAc,OAAO,QAAQ;AAAA,IACtC;AAAA,EACF;AACF;AAGA,IAAM,4BAA4B;AASlC,IAAM,qBAAqB,CAAC,WAA+B;AACzD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,oBAAoB;AAAA,IACpB,oBAAoB;AAAA,IACpB,aAAa;AAAA,EACf,IAAI;AAGJ,QAAM,WAAW,gBAAgB,gBAAgB;AACjD,gBAAc;AAEd,QAAM,yBAAyB,mBAAmB,iBAAiB;AACnE,QAAM,QAA4B,CAAC;AAGnC,QAAM,YAAY,CAAC,QAAmC;AACpD,UAAM,MAAM,KAAK,IAAI;AACrB,aAAS,IAAI,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK;AAC1C,UAAI,MAAM,MAAM,CAAC,EAAE,KAAK,YAAY;AAClC,cAAM,OAAO,GAAG,CAAC;AAAA,MACnB;AAAA,IACF;AACA,WAAO,MAAM,KAAK,CAAC,MAAM,EAAE,QAAQ,GAAG,GAAG;AAAA,EAC3C;AAGA,QAAM,YAAY,CAAC,KAAa,SAAgB;AAC9C,UAAM,KAAK,EAAE,KAAK,IAAI,KAAK,IAAI,GAAG,KAAK,CAAC;AACxC,WAAO,MAAM,SAAS;AAAI,YAAM,MAAM;AAAA,EACxC;AAGA,EAAAD,IAAG,QAAQ;AAAA,IACT,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,WAAW;AAAA,EACb,CAAC;AAED,iBAAe;AAAA,IACb,OAAO;AAAA,IACP,QAAQ;AAAA,IACR;AAAA,IACA,sBAAsB;AAAA,IAEtB,MAAM,OACJ,UACmD;AACnD,UAAI,SAAS,MAAM,CAAC,EAAE,OAAO,MAAM,CAAC,QAAQ,KAAK,GAAG;AAClD,eAAO;AAAA,MACT;AAEA,UAAI;AAEF,cAAM,UACJ,SAAS,KAAK,CAAC,EAAE,QAAAE,QAAO,MAAMA,SAAQ,KAAK,KAAK,SAAS,CAAC;AAC5D,cAAM,SAAS,QAAQ,UAAU,CAAC;AAClC,cAAM,QAAQ,OAAO,SAAS;AAC9B,cAAMC,eAAc,OAAO,eAAe;AAC1C,cAAM,OAAO,OAAO,QAAQ;AAE5B,cAAM,EAAE,QAAQ,SAAS,IAAI,qBAAqB,MAAM;AAKxD,cAAM,WAAW,KAAK,UAAU;AAAA,UAC9B,GAAG;AAAA,UACH,QAAQ,oBAAoB,UAAU,KAAK;AAAA,UAC3C,OAAO;AAAA,QACT,CAAC;AAED,cAAM,aAAa,UAAU,QAAQ;AAErC,YAAI;AACJ,YAAI,YAAY;AACd,oBAAU;AAAA,QACZ,OAAO;AACL,gBAAM,MAAM,IAAI,IAAI,aAAa,OAAO,SAAS,MAAM;AACvD,cAAI,aAAa,IAAI,KAAK,KAAK;AAC/B,cAAI,aAAa,IAAI,SAAS,OAAO,sBAAsB,CAAC;AAC5D,cAAI,qBAAqB,QAAQ;AAC/B,gBAAI,aAAa,IAAI,UAAU,MAAM;AAAA,UACvC;AAEA,gBAAM,WAAW,MAAM,MAAM,IAAI,SAAS,CAAC;AAC3C,cAAI,CAAC,SAAS,IAAI;AAChB,kBAAM,IAAI,MAAM,yBAAyB,SAAS,MAAM,EAAE;AAAA,UAC5D;AAEA,gBAAM,OAAO,MAAM,SAAS,KAAK;AAEjC,gBAAM,aAAoB,MAAM,QAAQ,MAAM,OAAO,IACjD,KAAK,UACL,CAAC;AACL,oBAAU,WAAW,IAAI,wBAAwB;AACjD,oBAAU,UAAU,OAAO;AAAA,QAC7B;AAMA,cAAM,eAAe,oBAAoB,SAAS,QAAQ;AAC1D,cAAM,SAAS,aAAa;AAC5B,cAAM,UAAU,KAAK,IAAI,GAAG,KAAK,KAAK,SAASA,YAAW,CAAC;AAC3D,cAAM,QAAQ,OAAOA;AACrB,cAAM,WAAW,aAAa,MAAM,OAAO,QAAQA,YAAW;AAE9D,cAAM,SAAS,sBAAsB,OAAO;AAE5C,eAAO;AAAA,UACL,SAAS;AAAA,YACP;AAAA,cACE,MAAM;AAAA,cACN;AAAA,cACA;AAAA,cACA;AAAA,cACA,aAAAA;AAAA,cACA,kBAAkB;AAAA,cAClB;AAAA,cACA,QAAQ;AAAA,cACR,OAAO,QAAQ,aAAa;AAAA,cAC5B,kBAAkB;AAAA,cAClB,QAAQ,OAAO;AAAA,cACf,cAAc,CAAC;AAAA,cACf,uBAAuB;AAAA,cACvB,SAAS,gBAAgB;AAAA,YAC3B;AAAA,UACF;AAAA,QACF;AAAA,MACF,SAAS,OAAO;AACd,gBAAQ,MAAM,wBAAwB,KAAK;AAC3C,eAAO;AAAA,UACL,SAAS;AAAA,YACP;AAAA,cACE,MAAM,CAAC;AAAA,cACP,QAAQ;AAAA,cACR,MAAM;AAAA,cACN,SAAS;AAAA,cACT,aAAa;AAAA,cACb,kBAAkB;AAAA,cAClB,OAAO,SAAS,CAAC,GAAG,QAAQ,SAAS;AAAA,cACrC,QAAQ;AAAA,cACR,OAAO,SAAS,CAAC,GAAG,aAAa;AAAA,cACjC,kBAAkB;AAAA,YACpB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,mBAAmB,KAAqB;AAC/C,MAAI,CAAC,OAAO,SAAS,GAAG,KAAK,OAAO;AAAG,WAAO;AAC9C,SAAO,KAAK,IAAI,2BAA2B,KAAK,IAAI,GAAG,KAAK,MAAM,GAAG,CAAC,CAAC;AACzE;AAWA,SAAS,qBAEP,QACwC;AACxC,MAAI,SAAS;AACb,QAAM,WAAqB,CAAC;AAE5B,QAAM,cAAc,CAAC,QAAgB;AACnC,UAAM,QAAQ,IAAI,QAAQ,UAAU,EAAE,EAAE,KAAK;AAC7C,QAAI,SAAS,CAAC,SAAS,SAAS,KAAK;AAAG,eAAS,KAAK,KAAK;AAAA,EAC7D;AAGA,QAAM,aAAa,OAAO,QAAQ,YAAY,WAAW,OAAO,UAAU;AAC1E,MAAI,YAAY;AACd,UAAM,YAAY,WAAW,MAAM,0BAA0B;AAC7D,QAAI;AAAW,eAAS,UAAU,CAAC;AAEnC,UAAM,eAAe;AACrB,QAAI;AACJ,YAAQ,IAAI,aAAa,KAAK,UAAU,OAAO,MAAM;AACnD,kBAAY,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE;AAAA,IAChC;AAAA,EACF;AAGA,QAAM,eAAe,QAAQ;AAC7B,QAAM,QAAQ,CAAC,UAAmB;AAChC,QAAI,OAAO,UAAU,UAAU;AAC7B,UAAI,CAAC,UAAU,MAAM,WAAW,WAAW,GAAG;AAC5C,iBAAS,MAAM,MAAM,YAAY,MAAM;AAAA,MACzC,WAAW,MAAM,WAAW,UAAU,GAAG;AACvC,oBAAY,MAAM,MAAM,WAAW,MAAM,CAAC;AAAA,MAC5C;AAAA,IACF,WAAW,MAAM,QAAQ,KAAK,GAAG;AAC/B,YAAM,QAAQ,KAAK;AAAA,IACrB;AAAA,EACF;AACA,QAAM,YAAY;AAElB,SAAO,EAAE,QAAQ,SAAS;AAC5B;AAEA,SAAS,oBACP,MACA,UACK;AACL,MAAI,CAAC,SAAS;AAAQ,WAAO;AAC7B,QAAM,SAAS,IAAI,IAAI,SAAS,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAC3D,SAAO,KAAK;AAAA,IAAO,CAAC,MAClB,OAAO,IAAI,OAAO,EAAE,WAAW,EAAE,EAAE,YAAY,CAAC;AAAA,EAClD;AACF;AAGA,SAAS,yBAAyB,QAAkB;AAClD,QAAM,WAAW,OAAO,YAAY;AACpC,QAAM,UAAU,0BAA0B,QAAQ;AAElD,QAAM,YAAY;AAAA,IAChB,MAAM;AAAA,IACN,MAAM,OAAO,SAAS;AAAA,IACtB,MAAM,2BAA2B,QAAQ;AAAA,EAC3C;AAEA,QAAM,MAAM,qBAAqB,QAAQ;AAGzC,QAAM,aAAa,OAAO,WAAW,OAAO,WAAW;AACvD,QAAM,eAAe,wBAAwB,UAAU;AAEvD,SAAO;AAAA,IACL,UAAU,OAAO,OAAO,EAAE;AAAA,IAC1B,GAAG;AAAA,IACH;AAAA,IACA,oBAAoB,IAAI,MAAM,GAAG,EAAE,CAAC;AAAA,IACpC;AAAA,IACA,UAAU,OAAO,SAAS;AAAA,IAC1B,SAAS;AAAA,IACT;AAAA,IACA,UAAU,OAAO,UAAU,UAAU;AAAA,IACrC,MAAM;AAAA,IACN,kBAAkB;AAAA,MAChB,SAAS;AAAA,QACP,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,kBAAkB;AAAA,QAClB,cAAc,CAAC;AAAA,MACjB;AAAA,MACA,WAAW;AAAA,QACT,MAAM;AAAA,UACJ,OAAO,UAAU;AAAA,UACjB,YAAY;AAAA,QACd;AAAA,QACA,MAAM;AAAA,UACJ,OAAO,UAAU;AAAA,UACjB,YAAY,OAAO,QAAQ,YAAY;AAAA,QACzC;AAAA,MACF;AAAA,IACF;AAAA,IACA,gBAAgB;AAAA,MACd,SAAS;AAAA,QACP,OAAO,OAAO,UAAU,wBAAwB,OAAO,OAAO,IAAI;AAAA,QAClE,YAAY;AAAA,MACd;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAM,iBAAiB;AAgBvB,SAAS,0BAA0B,UAA0B;AAC3D,QAAM,QAAQ,SAAS,MAAM,GAAG,EAAE,OAAO,OAAO;AAChD,MAAI,MAAM,WAAW;AAAG,WAAO;AAE/B,MAAI,MAAM,CAAC,MAAM,UAAU,MAAM,SAAS,GAAG;AAC3C,WAAO,MAAM,CAAC,EAAE,YAAY;AAAA,EAC9B;AAEA,MAAI,MAAM,SAAS,KAAK,eAAe,KAAK,MAAM,CAAC,CAAC,GAAG;AACrD,WAAO,MAAM,CAAC,EAAE,YAAY;AAAA,EAC9B;AAEA,SAAO,MAAM,CAAC,EAAE,YAAY;AAC9B;AAEA,SAAS,2BAA2B,UAAiC;AACnE,QAAM,QAAQ,SAAS,MAAM,GAAG,EAAE,OAAO,OAAO;AAChD,MAAI,MAAM,CAAC,MAAM,UAAU,MAAM,SAAS;AAAG,WAAO,MAAM,CAAC;AAC3D,MAAI,MAAM,SAAS,KAAK,eAAe,KAAK,MAAM,CAAC,CAAC;AAAG,WAAO,MAAM,CAAC;AACrE,MAAI,MAAM,SAAS;AAAG,WAAO,MAAM,CAAC;AACpC,SAAO;AACT;AAEA,SAAS,qBAAqB,UAA0B;AACtD,QAAM,QAAQ,SAAS,MAAM,GAAG,EAAE,OAAO,OAAO;AAChD,MAAI,MAAM,WAAW;AAAG,WAAO;AAE/B,QAAM,WAAW,CAAC,MAAc,EAAE,QAAQ,WAAW,EAAE;AAGvD,MAAI,MAAM,CAAC,MAAM,UAAU,MAAM,SAAS,GAAG;AAC3C,WAAO,SAAS,SAAS,MAAM,MAAM,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;AAAA,EACpD;AAGA,MAAI,MAAM,SAAS,KAAK,eAAe,KAAK,MAAM,CAAC,CAAC,GAAG;AACrD,WAAO,IAAI,MAAM,CAAC,CAAC,IAAI,SAAS,MAAM,MAAM,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;AAAA,EAC3D;AAEA,SAAO,MAAM,SAAS,MAAM,KAAK,GAAG,CAAC;AACvC;AAGA,SAAS,sBACP,MACoD;AACpD,QAAM,SAAiD;AAAA,IACrD,SAAS,CAAC;AAAA,IACV,UAAU,CAAC;AAAA,EACb;AAEA,OAAK,QAAQ,CAAC,QAAQ;AACpB,UAAM,UAAU,IAAI,WAAW;AAC/B,WAAO,QAAQ,OAAO,KAAK,OAAO,QAAQ,OAAO,KAAK,KAAK;AAE3D,UAAM,WAAW,IAAI,YAAY;AACjC,WAAO,SAAS,QAAQ,KAAK,OAAO,SAAS,QAAQ,KAAK,KAAK;AAAA,EACjE,CAAC;AAED,SAAO,EAAE,OAAO;AAClB;AAEA,SAAS,kBAA0B;AACjC,SAAO,UAAU,KAAK,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,OAAO,GAAG,CAAC,CAAC;AACxE;AAEe,SAAR,aAA8B,QAA6C;AAEhF,MAAI,aAAa,QAAQ;AACvB,QAAI,OAAO,YAAY,UAAU;AAC/B,oBAAc,OAAO;AACrB,yBAAmB,OAAO,MAAM;AAAA,IAClC,OAAO;AACL,0BAAoB,OAAO,OAAO;AAAA,IACpC;AAAA,EACF,OAAO;AAEL,wBAAoB,MAAuB;AAAA,EAC7C;AACF;;;AlBlcQ,gBAAAC,OASF,QAAAC,cATE;AAfO,SAAR,cAA+B;AACpC,QAAM,EAAE,OAAO,IAAIC,YAAW,cAAc;AAC5C,QAAM,CAAC,UAAU,WAAW,IAAIC,UAAmC;AAAA,IACjE,aAAa;AAAA,EACf,CAAC;AACD,QAAMC,cAAaC,QAAoB;AACvC,kBAAgBD,aAAY,WAAW;AAEvC,QAAM,cAAc,CAAC,UAAmB;AACtC,gBAAY,EAAE,aAAa,MAAM,CAAC;AAAA,EACpC;AAEA,SACE,gBAAAH,OAAC,iBAAc,cAA4B,WAAW,aACnD;AAAA,iBAAa,wBACZ,gBAAAD,MAAC,aAAW,GAAG,aAAa,sBAAsB;AAAA,IAEnD,aAAa,qBACZ,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,gBAAgB;AAAA,QAChB,cAAc,CAAC,YAAY,MAAM,EAAE;AAAA;AAAA,IACrC;AAAA,IAED,CAAC,aAAa,qBAAqB,gBAAAA,MAAC,aAAU,gBAAgB,MAAM;AAAA,IACrE,gBAAAC,OAACK,OAAA,EAAI,SAAS,MAAM,YAAY,EAAE,aAAa,KAAK,CAAC,GAAG,KAAKF,aAC3D;AAAA,sBAAAJ,MAAC,sBAAU,aAA0B;AAAA,MACpC,SAAS,eAAe,gBAAAA,MAAC,uBAAQ,aAA0B;AAAA,OAC9D;AAAA,KACF;AAEJ;;;ALcgB,gBAAAO,OAaI,QAAAC,cAbJ;AA/BhB,IAAM,gBAAgB,CAAC,EAAE,eAAe,CAAC,EAAE,MAA0B;AACnE,QAAM,UAAUC,aAAW,cAAc;AACzC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAGJ,QAAM,aAAa,CAAC,UAAe,eAAuB;AACxD,QAAI,QAAQ;AAEZ,QAAI,MAAM,QAAQ,QAAQ,GAAG;AAC3B,cAAQ,SAAS,KAAK,CAAC,YAAY,QAAQ,kBAAkB,UAAU;AAAA,IACzE;AAEA,WAAO;AAAA,EACT;AAEA,iBAAe,EAAE,cAAc,QAAQ,CAAC;AAExC,SACE,gBAAAF,MAAC,OAAO,cAAP,EACC,0BAAAA,MAAC,qBAAkB,IAAIG,iBAAO,oBAC5B,0BAAAH,MAAC,kBAAkB,MAAlB,EAAuB,IAAIG,iBAAO,wBACjC,0BAAAF,OAACG,OAAA,EAAI,IAAID,iBAAO,eACd;AAAA,oBAAAF,OAACG,OAAA,EAAI,IAAID,iBAAO,eACd;AAAA,sBAAAH,MAACI,OAAA,EAAI,IAAID,iBAAO,0BACd,0BAAAH,MAAC,eAAY,GACf;AAAA,MACC,mBAAmB,IAAI,CAAC,SAAS,OAChC,gBAAAA;AAAA,QAACI;AAAA,QAAA;AAAA,UACC,IACE,KAAK,IACDD,iBAAO,mBACPA,iBAAO;AAAA,UAGb,WAAQ;AAAA,UAEP,kBAAQ,IAAI,CAAC,SACZ,gBAAAF,OAACG,OAAA,EAAI,IAAID,iBAAO,oBACd;AAAA,4BAAAH,MAAC,8BAAkB,eAAc,UAAU,GAAG,MAAM;AAAA,YACnD,WAAW,mBAAmB,KAAK,EAAE,IACpC,gBAAAA;AAAA,cAACK;AAAA,cAAA;AAAA,gBACC,cAAY;AAAA,gBACZ,MAAK;AAAA,gBACL,SAAQ;AAAA,gBACR,MAAM,MAAM,gBAAAL,MAACM,YAAA,EAAU,WAAU,SAAQ,MAAM,IAAI;AAAA,gBACnD,IACE,sBAAsB,KAAK,MAC3B,CAAC,uBACGH,iBAAO,kBACPA,iBAAO;AAAA,gBAEb,SAAS,MAAM;AACb,uCAAqB,KAAK,EAAE;AAC5B,0CAAwB,KAAK;AAAA,gBAC/B;AAAA;AAAA,YACF,IACE;AAAA,eAnBmC,KAAK,KAoB9C,CACD;AAAA;AAAA,QAzBI;AAAA,MA0BP,CACD;AAAA,OACH;AAAA,IACA,gBAAAH;AAAA,MAACI;AAAA,MAAA;AAAA,QACC,WACE,wBAAwB,CAAC,oBAAoB,KAAK;AAAA,QAEpD,IAAID,iBAAO;AAAA,QAEV,8BACC,gBAAAH;AAAA,UAAC;AAAA;AAAA,YACC,iBAAiB;AAAA,YAChB,GAAI,MAAM,QAAQ,iBAAiB,IAChC,mBAAmB;AAAA,cACjB,CAAC,YACC,QAAQ,kBAAkB;AAAA,YAC9B,IACA;AAAA;AAAA,QACN,IACE;AAAA;AAAA,IACN;AAAA,KACF,GACF,GACF,GACF;AAEJ;AAEA,IAAO,yBAAQ;;;AwBpHf,SAAS,QAAAO,QAAM,QAAAC,QAAM,QAAAC,aAAY;;;ACCjC,SAAS,QAAAC,cAAY;AAGnB,SAQE,OAAAC,OARF,QAAAC,cAAA;AADF,IAAM,WAAW,CAAC,UAChB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,oBAAQ;;;AC9Bf,SAAS,QAAAE,cAAY;AAGnB,SAQE,OAAAC,OARF,QAAAC,cAAA;AADF,IAAM,WAAW,CAAC,UAChB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,oBAAQ;;;AC9Bf,SAAS,QAAAE,cAAY;AAGnB,SAQE,OAAAC,OARF,QAAAC,cAAA;AADF,IAAM,mBAAmB,CAAC,UACxB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA,UACL,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,6BAAQ;;;AHxBf,SAAS,cAAAE,cAAY,aAAAC,aAAmB,YAAAC,kBAAgB;;;AIAxD,IAAMC,aAAqB,CAAC,EAAE,MAAM,IAAI,CAAC,OAAO;AAAA,EAC9C,OAAO;AAAA,EACP,eAAe,QAAQ,WAAW,CAAC,UAAU,KAAK;AAAA,EAClD,YAAY,QAAQ,eAAe;AAAA,EACnC,cAAc,CAAC,WAAW,eAAe;AAAA,EACzC,gBAAgB,CAAC,WAAW,eAAe;AAAA,EAC3C,WAAW,QAAQ,QAAQ;AAAA,EAC3B,cAAc,QAAQ,QAAQ;AAAA,EAC9B,KAAK,QAAQ,QAAQ;AACvB;AAEA,IAAM,WAAoB,CAAC,EAAE,MAAM,IAAI,CAAC,OAAO;AAAA,EAC7C,UAAU,QAAQ,SAAS;AAAA,EAC3B,YAAY;AAAA,EACZ,OAAO;AACT;AAEA,IAAM,iBAA0B,CAAC,EAAE,MAAM,IAAI,CAAC,OAAO;AAAA,EACnD,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,KAAK,QAAQ,QAAQ;AAAA,EACrB,IAAI,QAAQ,QAAQ;AACtB;AAEA,IAAM,gBAA6B;AAAA,EACjC,eAAe,CAAC,QAAQ,GAAG;AAAA,EAC3B,cAAc,CAAC,qBAAqB,MAAM;AAAA,EAC1C,IAAI,CAAC,OAAO,GAAG;AAAA,EACf,IAAI,CAAC,QAAQ,GAAG;AAAA,EAChB,OAAO,CAAC,QAAQ,MAAM;AAAA,EACtB,gBAAgB,CAAC,UAAU,SAAS;AAAA,EACpC,YAAY;AACd;AAEA,IAAM,WAAwB;AAAA,EAC5B,IAAI;AACN;AAEA,IAAM,cAA2B;AAAA,EAC/B,IAAI;AAAA,EACJ,WAAW;AACb;AAEA,IAAM,SAAsB;AAAA,EAC1B,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,cAAc;AAAA,MACZ,QAAQ;AAAA,IACV;AAAA,EACF;AACF;AAEA,IAAM,eAA4B;AAAA,EAChC,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,cAAc;AAAA,IACZ,QAAQ;AAAA,EACV;AACF;AAEA,IAAM,iBAA8B;AAAA,EAClC,OAAO;AACT;AAEA,IAAM,MAAe,CAAC,EAAE,MAAM,IAAI,CAAC,OAAO;AAAA,EACxC,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,UAAU,QAAQ,SAAS;AAAA,EAC3B,YAAY;AACd;AAEA,IAAM,WAAwB;AAAA,EAC5B,SAAS;AACX;AAEA,IAAM,gBAAyB,CAAC,EAAE,MAAM,IAAI,CAAC,OAAO;AAAA,EAClD,GAAG,IAAI,EAAE,MAAM,CAAC;AAAA,EAChB,GAAG;AAAA,EACH,UAAU;AAAA,IACR,OAAO;AAAA,EACT;AAAA;AAAA,EAEA,OAAO;AAAA,EACP,SAAS;AACX;AAEA,IAAM,WAAwB,EAAE,IAAI,MAAM;AAE1C,IAAM,cAA2B;AAAA;AAEjC;AAEA,IAAOC,mBAAQ;AAAA,EACb;AAAA,EACA,WAAAD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;AChHA,SAAS,OAAAE,OAAK,UAAAC,SAAQ,QAAAC,QAAM,QAAAC,cAAY;;;ACCxC,SAAS,QAAAC,cAAY;AASjB,gBAAAC,aAAA;AAPJ,IAAM,eAAe,CAAC,UACpB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN,0BAAAC;AAAA,MAAC;AAAA;AAAA,QACC,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA;AACF;AAGF,IAAO,wBAAQ;;;AChBf,SAAS,QAAAC,cAAY;AASjB,gBAAAC,aAAA;AAPJ,IAAM,eAAe,CAAC,UACpB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN,0BAAAC;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,UAAS;AAAA,QACT,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA;AACF;AAGF,IAAO,wBAAQ;;;AClBf,SAAS,QAAAC,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,YAAY,CAAC,UACjB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,UAAK,GAAE,mBAAkB,SAAQ,KAAI,QAAO,gBAAc;AAAA,MAC3D,gBAAAA,MAAC,UAAK,GAAE,2JAA0J,MAAK,gBAAc;AAAA;AAAA;AACvL;AAGF,IAAO,qBAAQ;;;ACdf,SAAS,QAAAE,cAAY;AASjB,gBAAAC,aAAA;AAPJ,IAAM,cAAc,CAAC,UACnB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN,0BAAAC;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,UAAS;AAAA,QACT,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA;AACF;AAGF,IAAO,uBAAQ;;;AJdf,SAAS,UAAAC,SAAQ,YAAAC,kBAAgB;AACjC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;;;AKTP,IAAMC,aAAyB;AAAA,EAC7B,UAAU;AAAA,EACV,QAAQ;AACV;AAEA,IAAMC,UAAsB;AAAA,EAC1B,QAAQ;AAAA,EACR,eAAe;AAAA,EACf,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,UAAU;AAAA,IACR,OAAO;AAAA,IACP,gBAAgB;AAAA,EAClB;AAAA,EACA,YAAY;AACd;AAEA,IAAM,YAAyB;AAAA,EAC7B,aAAa;AACf;AAEA,IAAM,cAA2B;AAAA,EAC/B,KAAK;AAAA,EACL,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,UAAU;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA,YAAY;AACd;AAEA,IAAM,iBAA8B;AAAA,EAClC,UAAU;AAAA,EACV,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,KAAK;AAAA,EACL,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,KAAK;AAAA,EACL,WAAW;AAAA,EACX,cAAc;AAAA,EAEd,WAAW;AAAA,IACT,SAAS;AAAA,IACT,UAAU;AAAA,IACV,KAAK;AAAA,IACL,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,cAAc;AAAA,IACd,WAAW;AAAA,EACb;AACF;AAEA,IAAM,UAAuB;AAAA,EAC3B,cAAc;AAChB;AAEA,IAAOC,mBAAQ;AAAA,EACb,WAAAF;AAAA,EACA,QAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ACxEA,SAAS,QAAAE,cAAY;AAWjB,gBAAAC,aAAA;AATJ,IAAM,YAAY,CAAC,UACjB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN,0BAAAC;AAAA,MAAC;AAAA;AAAA,QACC,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA;AACF;AAGF,IAAO,qBAAQ;;;AClBf,SAAS,QAAAC,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,WAAW,CAAC,UAChB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,oBAAQ;;;APWT,SAKE,OAAAE,OALF,QAAAC,cAAA;AAfN,IAAM,cAAc,CAAC,EAAE,KAAK,KAAG,CAAC,EAAE,MAAa;AAC7C,QAAM,CAAC,QAAQ,SAAS,IAAIC,WAAS,KAAK;AAC1C,QAAM,eAAeC,QAAO;AAC5B,kBAAgB,cAAc,MAAM,UAAU,KAAK,CAAC;AAEpD,QAAM,iBAAiB,YAAY;AACjC,QAAI;AACF,UAAI;AAAQ,cAAM,UAAU,UAAU,UAAU,OAAO,SAAS,IAAI;AAAA,IACtE,SAAS,OAAO;AACd,cAAQ,MAAM,oCAAoC,KAAK;AAAA,IACzD;AAAA,EACF;AAEA,SACE,gBAAAF,OAACG,QAAA,EAAK,IAAI,EAAC,GAAGC,iBAAO,WAAW,GAAG,GAAE,GAAG,KAAK,cAC3C;AAAA,oBAAAJ;AAAA,MAACK;AAAA,MAAA;AAAA,QACC,IAAID,iBAAO;AAAA,QACX,SAAQ;AAAA,QACR,SAAS,MAAM,UAAU,CAAC,MAAM;AAAA,QAEhC;AAAA,0BAAAL,MAAC,sBAAU,IAAIK,iBAAO,WAAW,MAAM,IAAG;AAAA,UAAE;AAAA;AAAA;AAAA,IAC9C;AAAA,IACC,UACC,gBAAAJ,OAACG,QAAA,EAAK,IAAIC,iBAAO,gBACf;AAAA,sBAAAJ,OAACG,QAAA,EAAK,IAAIC,iBAAO,aAAa,SAAS,gBACrC;AAAA,wBAAAL,MAAC,qBAAS,MAAM,IAAI;AAAA,QACpB,gBAAAA,MAACO,QAAA,EAAK,uBAAS;AAAA,SACjB;AAAA,MACA,gBAAAP,MAACQ,OAAA,EAAI,IAAIH,iBAAO,SAAS;AAAA,MACzB,gBAAAL,MAAC,oBAAiB,KAChB,0BAAAC,OAACG,QAAA,EAAK,IAAIC,iBAAO,aAAa,SAAS,gBACrC;AAAA,wBAAAL,MAAC,sBAAU,MAAM,IAAI;AAAA,QACrB,gBAAAA,MAACO,QAAA,EAAK,oBAAM;AAAA,SACd,GACF;AAAA,MACA,gBAAAP,MAAC,sBAAmB,KAClB,0BAAAC,OAACG,QAAA,EAAK,IAAIC,iBAAO,aACf;AAAA,wBAAAL,MAAC,wBAAY,MAAM,IAAI;AAAA,QACvB,gBAAAA,MAACO,QAAA,EAAK,qBAAO;AAAA,SACf,GACF;AAAA,MACA,gBAAAP,MAAC,uBAAoB,KACnB,0BAAAC,OAACG,QAAA,EAAK,IAAIC,iBAAO,aACf;AAAA,wBAAAL,MAAC,yBAAa,MAAM,IAAI;AAAA,QACxB,gBAAAA,MAACO,QAAA,EAAK,sBAAQ;AAAA,SAChB,GACF;AAAA,MACA,gBAAAP,MAAC,uBAAoB,KACnB,0BAAAC,OAACG,QAAA,EAAK,IAAIC,iBAAO,aACf;AAAA,wBAAAL,MAAC,yBAAa,MAAM,IAAI;AAAA,QACxB,gBAAAA,MAACO,QAAA,EAAK,sBAAQ;AAAA,SAChB,GACF;AAAA,OACF;AAAA,KAEJ;AAEJ;AAEA,IAAO,uBAAQ;;;AL5BP,gBAAAE,OAQE,QAAAC,cARF;AA7BR,IAAM,kBAAkB,CAAC;AAAA,EACvB;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf,aAAAC,eAAc;AAAA,EACd;AAAA,EACA,QAAQ;AACV,MAAe;AACb,QAAM,CAAC,UAAU,WAAW,IAAIC,WAA8B,MAAS;AACvE,QAAM,EAAE,OAAO,IAAIC,aAAW,cAAc;AAG5C,EAAAC,YAAU,MAAM;AACd,gBAAY,MAAS;AAAA,EACvB,GAAG,CAAC,IAAI,CAAC;AAET,QAAM,aAAa,OAAO,UAAmB;AAC3C,QAAI,aAAa;AAAW;AAC5B,gBAAY,KAAK;AACjB,QAAI;AACF,YAAM,aAAa,KAAK;AAAA,IAC1B,SAAS,GAAG;AACV,kBAAY,MAAS;AAAA,IACvB;AAAA,EACF;AAEA,SACE,gBAAAJ,OAACK,QAAA,EAAK,IAAIC,iBAAO,UAAU,EAAE,MAAM,CAAC,GAAG,WAAQ,oBAC7C;AAAA,oBAAAN,OAACK,QAAA,EAAK,IAAIC,iBAAO,eACf;AAAA,sBAAAP,MAACQ,QAAA,EAAK,IAAID,iBAAO,SAAS,EAAE,MAAM,CAAC,GAChC,uBAAa,SACV,SAAS,MAAM,EAAE,2BAA2B,IAC5C,SAAS,MAAM,EAAE,2BAA2B,GAClD;AAAA,MAEA,gBAAAN,OAACK,QAAA,EAAK,IAAIC,iBAAO,eAAe,EAAE,MAAM,CAAC,GAEvC;AAAA,wBAAAN;AAAA,UAACK;AAAA,UAAA;AAAA,YACC,IACE,aAAa,SACTC,iBAAO,SACP,aAAa,OACbA,iBAAO,iBACPA,iBAAO;AAAA,YAEb,SAAS,MAAM,WAAW,IAAI;AAAA,YAC9B,MAAK;AAAA,YACL,gBAAc,aAAa;AAAA,YAC3B,WAAQ;AAAA,YAEP;AAAA,2BAAa,OACZ,gBAAAP,MAAC,8BAAiB,MAAM,QAAQ,KAAK,IAAI,IAAIO,iBAAO,UAAU,IAE9D,gBAAAP,MAAC,qBAAS,MAAM,QAAQ,KAAK,IAAI,IAAIO,iBAAO,UAAU;AAAA,cAEvD,CAAC,SACA,gBAAAP,MAACQ,QAAA,EAAM,mBAAS,MAAM,EAAE,2BAA2B,GAAE;AAAA;AAAA;AAAA,QAEzD;AAAA,QAGA,gBAAAP;AAAA,UAACK;AAAA,UAAA;AAAA,YACC,IACE,aAAa,SACTC,iBAAO,SACP,aAAa,QACbA,iBAAO,iBACPA,iBAAO;AAAA,YAEb,SAAS,MAAM,WAAW,KAAK;AAAA,YAC/B,MAAK;AAAA,YACL,gBAAc,aAAa;AAAA,YAC3B,WAAQ;AAAA,YAEP;AAAA,2BAAa,QACZ,gBAAAP;AAAA,gBAAC;AAAA;AAAA,kBACC,MAAM,QAAQ,KAAK;AAAA,kBACnB,IAAIO,iBAAO;AAAA;AAAA,cACb,IAEA,gBAAAP,MAAC,qBAAS,MAAM,QAAQ,KAAK,IAAI,IAAIO,iBAAO,aAAa;AAAA,cAE1D,CAAC,SACA,gBAAAP,MAACQ,QAAA,EAAM,mBAAS,MAAM,EAAE,2BAA2B,GAAE;AAAA;AAAA;AAAA,QAEzD;AAAA,SACF;AAAA,OACF;AAAA,IACC,gBACC,gBAAAP;AAAA,MAACQ;AAAA,MAAA;AAAA,QACC,QAAO;AAAA,QACP,KAAI;AAAA,QACJ,MAAM;AAAA,QACN,IAAIF,iBAAO,cAAc,EAAE,MAAM,CAAC;AAAA,QAElC;AAAA,0BAAAP,MAAC,qBAAS,MAAM,QAAQ,KAAK,IAAI,IAAIO,iBAAO,UAAU;AAAA,UACtD,gBAAAP,MAACQ,QAAA,EAAM,mBAAS,MAAM,EAAE,uBAAuB,GAAE;AAAA;AAAA;AAAA,IACnD;AAAA,IAEDN,gBACC,gBAAAF,MAAC,wBAAY,KAAK,OAAO,SAAS,MAAM,IAAIO,iBAAO,aAAa;AAAA,KAEpE;AAEJ;AAEA,IAAO,2BAAQ;;;AanIf,SAAS,OAAAG,OAAK,QAAAC,cAAY;;;ACA1B,SAAS,OAAAC,aAAW;;;ACApB,SAAS,OAAAC,OAAK,QAAAC,QAAM,QAAAC,cAAY;AAChC,SAAS,cAAAC,cAAY,aAAAC,mBAAiB;;;ACCtC,IAAM,mBAAgC;AAAA,EACpC,gBAAgB;AAAA,EAChB,SAAS;AAAA,EACT,IAAI;AAAA,EACJ,QAAQ;AAAA,EACR,mBAAmB;AAAA,IACjB,iBAAiB;AAAA,IACjB,cAAc;AAAA,IACd,yBAAyB;AAAA,MACvB,OAAO;AAAA,IACT;AAAA,IACA,yBAAyB;AAAA,MACvB,YAAY;AAAA,IACd;AAAA,EACF;AACF;AAEA,IAAM,sBAAmC;AAAA,EACvC,YAAY;AACd;AAEA,IAAM,cAA2B;AAAA,EAC/B,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,WAAW;AAAA,EACX,IAAI;AACN;AAEA,IAAM,eAA4B;AAAA,EAChC,UAAU;AAAA,EACV,YAAY;AACd;AAEA,IAAM,qBAAkC;AAAA,EACtC,GAAG;AAAA,EACH,OAAO;AAAA,EACP,YAAY;AACd;AAEA,IAAM,eAA4B;AAAA,EAChC,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,OAAO;AAAA,EACP,WAAW;AAAA,EACX,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,YAAY;AACd;AAEA,IAAM,iBAA8B;AAAA,EAClC,GAAG;AAAA,EACH,IAAI;AACN;AAEA,IAAM,uBAAoC;AAAA,EACxC,GAAG;AAAA,EACH,YAAY;AAAA,EACZ,OAAO;AACT;AAEA,IAAOC,mBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ADnEA,SAAS,aAAAC,kBAAiB;;;AEL1B;AAAA,EACE,iBAAAC;AAAA,EAIA,YAAAC;AAAA,OACK;AAoCH,gBAAAC,aAAA;AArBG,IAAM,gBAAgBF,eAAiC;AAAA,EAC5D,uBAAuB;AAAA,EACvB,6BAA6B,MAAM;AAAA,EACnC,gBAAgB,CAAC;AAAA,EACjB,sBAAsB,MAAM;AAC9B,CAAC;AAMD,IAAM,wBAAwB,CAAC,EAAE,SAAS,MAAa;AACrD,QAAM,CAAC,uBAAuB,2BAA2B,IACvDC,WAAqB,EAAE;AACzB,QAAM,CAAC,gBAAgB,oBAAoB,IAAIA,WAAwB,CAAC,CAAC;AAEzE,QAAM,uBAAuB,CAAC,gBAA+B;AAC3D,yBAAqB,WAAW;AAAA,EAClC;AAEA,SACE,gBAAAC;AAAA,IAAC,cAAc;AAAA,IAAd;AAAA,MACC,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MAEC;AAAA;AAAA,EACH;AAEJ;AAEA,IAAO,iBAAQ;;;AFzBX,SACE,OAAAC,OADF,QAAAC,cAAA;AAhBJ,IAAM,gBAAgB,CAAC,EAAE,aAAa,MAAM,MAA0B;AACpE,QAAM,SAASC,WAAU;AACzB,QAAM,EAAE,uBAAuB,gBAAgB,4BAA4B,IACzEC,aAAW,aAAa;AAC1B,QAAM,EAAE,OAAO,IAAIA,aAAW,cAAc;AAE5C,QAAM,eAAe,CAAC,UAAsB;AAC1C,WAAO,MAAM,SAAS;AACtB,gCAA4B,KAAK;AAAA,EACnC;AAEA,EAAAC,YAAU,MAAM;AACd,iBAAa,EAAE;AAAA,EACjB,GAAG,CAAC,OAAO,KAAK,CAAC;AAEjB,SAAO,CAAC,cACN,gBAAAH,OAACI,QAAA,EAAK,IAAIC,iBAAO,kBAAkB,SAAS,MAAM,aAAa,EAAE,GAC/D;AAAA,oBAAAN;AAAA,MAACO;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,IACE,wBACID,iBAAO,iBACPA,iBAAO;AAAA,QAGZ,mBAAS,MAAM,EAAE,oBAAoB,KAAK;AAAA;AAAA,IAC7C;AAAA,IACA,gBAAAN,MAACQ,OAAA,EAAI,WAAU,wBAAuB,IAAIF,iBAAO,cAC9C,yBAAe,EAAE,GACpB;AAAA,KACF,IAEA,gBAAAL;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,IAAIC,iBAAO;AAAA,MAEX,SAAS,MAAM,aAAa,YAAY,EAAE;AAAA,MAE1C;AAAA,wBAAAL,OAACI,QAAA,EAAK,IAAIC,iBAAO,qBACf;AAAA,0BAAAN,MAAC,YAAY,MAAZ,EAAiB,IAAIM,iBAAO,aAAa;AAAA,UAC1C,gBAAAN;AAAA,YAACO;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,IACE,0BAA0B,YAAY,KAClCD,iBAAO,qBACPA,iBAAO;AAAA,cAGZ,sBAAY;AAAA;AAAA,UACf;AAAA,WACF;AAAA,QACA,gBAAAN,MAACQ,OAAA,EAAI,WAAU,wBAAuB,IAAIF,iBAAO,cAC9C,yBAAe,YAAY,EAAE,KAAK,GACrC;AAAA;AAAA;AAAA,IAlBK,kBAAkB,YAAY,EAAE,GAAG,KAAK;AAAA,EAmB/C;AAEJ;AAEA,IAAO,yBAAQ;;;AGrEf,IAAMG,aAAyB;AAAA,EAC7B,SAAS,CAAC,QAAQ,QAAQ,QAAQ,SAAS;AAAA,EAC3C,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,IAAI,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,MAAM;AAAA,EAC3D,IAAI;AACN;AAEA,IAAM,eAA4B;AAAA,EAChC,IAAI;AAAA,EACJ,YAAY;AACd;AAEA,IAAM,cAA2B;AAAA,EAC/B,GAAG;AAAA,EACH,cAAc;AAChB;AAEA,IAAOC,mBAAQ;AAAA,EACb,WAAAD;AAAA,EACA;AAAA,EACA;AACF;;;AJtBA,SAAS,cAAAE,oBAAkB;AAanB,SAQe,OAAAC,OARf,QAAAC,cAAA;AAVR,IAAM,iBAAiB,MAAM;AAC3B,QAAM,EAAE,gBAAgB,IAAIC,aAAW,cAAc;AAErD,QAAM,uBAAuB,gBAAgB;AAAA,IAAI,CAAC,YAChD,QAAQ,OAAO,CAACC,UAAS,CAACA,MAAK,cAAc;AAAA,EAC/C;AAEA,SACE,gBAAAH,MAACI,OAAA,EAAI,IAAIC,iBAAO,WACb,+BAAqB,IAAI,CAAC,UAAU,OACnC,gBAAAJ;AAAA,IAACG;AAAA,IAAA;AAAA,MAEC,IACE,KAAK,qBAAqB,SAAS,IAC/BC,iBAAO,cACPA,iBAAO;AAAA,MAGZ;AAAA,eAAO,KAAK,gBAAAL,MAAC,0BAAc,aAAa,MAAM;AAAA,QAC9C,SAAS,IAAI,CAAC,SAAS,UACtB,gBAAAA;AAAA,UAAC;AAAA;AAAA,YAEC,aAAa;AAAA,YACb;AAAA;AAAA,UAFK,uBAAuB,QAAQ,EAAE;AAAA,QAGxC,CACD;AAAA;AAAA;AAAA,IAdI,kBAAkB,EAAE;AAAA,EAe3B,CACD,GACH;AAEJ;AAEA,IAAO,0BAAQ;;;AKvCf,SAAS,aAAAM,kBAAiB;AAC1B,SAAS,cAAAC,cAAY,YAAAC,kBAAgB;AAIrC,SAAS,OAAAC,OAAK,QAAAC,cAAY;AAE1B,SAAS,aAAAC,YAAW,iBAAAC,sBAAqB;;;ACPzC,SAAS,cAAAC,cAAY,aAAAC,aAAW,WAAAC,UAAS,UAAAC,gBAAc;AACvD;AAAA,EACE;AAAA,EACA,uBAAAC;AAAA,OACK;;;ACJP,SAAS,OAAAC,OAAK,QAAAC,QAAM,QAAAC,QAAM,aAAAC,YAAW,WAAAC,gBAAe;;;ACIpD,IAAMC,aAAyB;AAAA,EAC7B,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,aAAa,CAAC,QAAQ,MAAM;AAAA,EAC5B,cAAc,CAAC,QAAQ,MAAM;AAAA,EAC7B,YAAY;AAAA,EACZ,QAAQ;AACV;AAEA,IAAM,kBAAkB,CAAC,WAAgD;AACvE,QAAM,iBAAiB,SAAS,cAAc,MAAM,IAAI;AACxD,SAAO;AAAA,IACL,GAAGA;AAAA,IACH,UAAU;AAAA,MACR,YAAY;AAAA,MACZ,4CAA4C;AAAA,QAC1C,OAAO;AAAA,MACT;AAAA,MACA,oBAAoB;AAAA,QAClB,GAAG;AAAA,MACL;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAMC,SAAqB;AAAA,EACzB,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,UAAU,CAAC,QAAQ,MAAM;AAAA,EACzB,YAAY,CAAC,QAAQ,MAAM;AAAA,EAC3B,OAAO;AACT;AAEA,IAAM,aAA0B;AAAA,EAC9B,IAAI;AACN;AAEA,IAAMC,QAAoB;AAAA,EACxB,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,IAAI;AAAA,EACJ,MAAM;AAAA,IACJ,QAAQ;AAAA,EACV;AACF;AAEA,IAAMC,eAA2B;AAAA,EAC/B,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,IAAI;AACN;AAEA,IAAM,oBAAiC;AAAA,EACrC,QAAQ;AAAA,EACR,UAAU;AACZ;AAEA,IAAM,0BAAuC;AAAA,EAC3C,IAAI;AACN;AAEA,IAAM,uBAAoC;AAAA,EACxC,SAAS,CAAC,QAAQ,MAAM;AAAA,EACxB,aAAa;AAAA,EACb,YAAY;AACd;AAEA,IAAMC,eAA2B;AAAA,EAC/B,YAAY;AACd;AAEA,IAAM,gBAA6B;AAAA,EACjC,GAAGA;AAAA,EACH,UAAU;AACZ;AAEA,IAAM,aAA0B;AAAA,EAC9B,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,cAAc;AAChB;AAEA,IAAM,iBAA8B;AAAA,EAClC,GAAG;AAAA,EACH,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,UAAU;AAAA,EACV,UAAU;AAAA,EACV,YAAY;AACd;AAEA,IAAM,gBAA6B;AAAA,EACjC,GAAG;AAAA,EACH,IAAI;AAAA,EACJ,UAAU;AACZ;AAEA,IAAM,mBAAgC;AAAA,EACpC,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AACT;AAEA,IAAM,kBAA+B;AAAA,EACnC,aAAa;AAAA,EACb,YAAY;AACd;AAEA,IAAM,aAA0B;AAAA,EAC9B,UAAU;AAAA,EACV,WAAW;AAAA,EACX,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,IAAI;AACN;AAEA,IAAOC,mBAAQ;AAAA,EACb;AAAA,EACA,OAAAJ;AAAA,EACA;AAAA,EACA,MAAAC;AAAA,EACA,aAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ADjJA,OAAOE,WAAU;AAEjB,SAAS,YAAAC,kBAAgB;AACzB,SAAS,cAAAC,oBAAkB;;;AEL3B,SAAS,QAAAC,cAAY;AAQjB,SACE,OAAAC,OADF,QAAAC,cAAA;AAFJ,IAAM,sBAAsB,CAAC,EAAE,OAAO,MACpC,SACE,gBAAAA,OAACF,QAAA,EAAK,SAAQ,aAAY,MAAK,QAAO,OAAM,8BAC1C;AAAA,kBAAAC;AAAA,IAAC;AAAA;AAAA,MACC,GAAE;AAAA,MACF,MAAK;AAAA;AAAA,EACP;AAAA,EACA,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,GAAE;AAAA,MACF,MAAK;AAAA;AAAA,EACP;AAAA,GACF,IAEA,gBAAAC,OAACF,QAAA,EAAK,SAAQ,aAAY,MAAK,QAAO,OAAM,8BAC1C;AAAA,kBAAAC;AAAA,IAAC;AAAA;AAAA,MACC,GAAE;AAAA,MACF,MAAK;AAAA;AAAA,EACP;AAAA,EACA,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,GAAE;AAAA,MACF,MAAK;AAAA;AAAA,EACP;AAAA,EACA,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,GAAE;AAAA,MACF,MAAK;AAAA;AAAA,EACP;AAAA,GACF;AAGJ,IAAO,gCAAQ;;;AFOL,SACW,OAAAE,OADX,QAAAC,cAAA;AAhBV,IAAM,aAAa,CAAC;AAAA,EAClB,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAuB;AACrB,QAAM,cAAc,aAAa,UAAU,UAAU,IAAI;AACzD,QAAM,CAAC,oBAAoB,qBAAqB,IAAIC,WAAkB,KAAK;AAC3E,QAAM,EAAE,OAAO,IAAIC,aAAW,cAAc;AAC5C,SACE,gBAAAL,MAACM,OAAA,EAAK,MAAM,KAAK,gBAAc,MAC7B,0BAAAL,OAACM,QAAA,EAAK,IAAIC,iBAAO,gBAAgB,MAAM,GACrC;AAAA,oBAAAP,OAACQ,OAAA,EACC;AAAA,sBAAAR,OAACS,QAAA,EAAK,WAAU,mBAAkB,IAAIF,iBAAO,OAC1C;AAAA,QAAAN,UAAQ,gBAAAF,MAACE,QAAA,EAAK,IAAIM,iBAAO,MAAM;AAAA,QAC/B,SACC,gBAAAR;AAAA,UAAC;AAAA;AAAA,YACC,IAAIQ,iBAAO;AAAA,YACX,QAAO;AAAA,YACP;AAAA,YACA,QAAQ;AAAA;AAAA,QACV,IACE;AAAA,QACHL,WAAU,cAAc,GAAG,IAAI,WAAW;AAAA,QAC1CA;AAAA,SACH;AAAA,MACA,gBAAAF,OAACS,QAAA,EAAK,WAAU,yBAAwB,IAAIF,iBAAO,aACjD;AAAA,wBAAAR,MAACO,QAAA,EACC,0BAAAP;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA,WAAU;AAAA,YACT,GAAG,EAAE,YAAY,KAAK;AAAA;AAAA,QACzB,GACF;AAAA,QACC,sBACC,IAAI,iBAAiB,IAAI,CAAC,UAAU,UAClC,gBAAAA;AAAA,UAACS;AAAA,UAAA;AAAA,YACC,IAAID,iBAAO;AAAA,YAGX,0BAAAR;AAAA,cAAC;AAAA;AAAA,gBACC,KAAK;AAAA,gBACL,WAAU;AAAA,gBACT,GAAG,EAAE,YAAY,KAAK;AAAA;AAAA,YACzB;AAAA;AAAA,UANK,eAAe,IAAI,QAAQ,IAAI,KAAK;AAAA,QAO3C,CACD;AAAA,SACL;AAAA,MACC,cACC,gBAAAC,OAACQ,OAAA,EAAI,IAAID,iBAAO,sBACd;AAAA,wBAAAR,MAACU,QAAA,EAAK,IAAIF,iBAAO,eACd,mBAAS,MAAM,EAAE,gBAAgB,KAAK,MACzC;AAAA,QACC,YAAY,IAAI,CAACG,aAAY,UAC5B,gBAAAV;AAAA,UAACM;AAAA,UAAA;AAAA,YACC,IAAI,UAAU,IAAIC,iBAAO,gBAAgBA,iBAAO;AAAA,YAGhD;AAAA,8BAAAR,MAACY,UAAA,EAAQ,OAAOD,aAAY,WAAU,OACpC,0BAAAX,MAACU,QAAA,EAAK,IAAIF,iBAAO,YAAa,UAAAG,aAAW,GAC3C;AAAA,cACC,QAAQ,YAAY,SAAS,IAC5B,gBAAAX,MAACa,YAAA,EAAU,WAAU,SAAQ,IAAIL,iBAAO,kBAAkB,IACxD;AAAA;AAAA;AAAA,UAPC,GAAGG,WAAU,GAAG,KAAK;AAAA,QAQ5B,CACD;AAAA,SACH,IACE;AAAA,MACH,cACC,gBAAAV,OAACM,QAAA,EAAK,IAAIC,iBAAO,iBACf;AAAA,wBAAAR,MAAC,YAAY,MAAZ,EAAiB,IAAIQ,iBAAO,YAAY;AAAA,QAAG;AAAA,QAC5C,gBAAAR,MAACU,QAAA,EAAM,uBAAa,OAAM;AAAA,SAC5B,IACE;AAAA,OACN;AAAA,IACC,IAAI,mBAAmB,IAAI,gBAAgB,SAAS,KACnD,gBAAAV;AAAA,MAACS;AAAA,MAAA;AAAA,QACC,IAAID,iBAAO;AAAA,QACX,SAAS,CAAC,UAAiB;AACzB,gCAAsB,CAAC,kBAAkB;AACzC,gBAAM,gBAAgB;AAAA,QACxB;AAAA,QAEA,0BAAAR,MAAC,iCAAoB,QAAQ,oBAAoB;AAAA;AAAA,IACnD;AAAA,KAEJ,GACF;AAEJ;AAEA,IAAO,sBAAQ;;;ADxGf,SAAS,OAAAc,OAAK,QAAAC,cAAY;AAwBtB,gBAAAC,OA6FA,QAAAC,cA7FA;AAbJ,IAAM,UAAU,CAAC,EAAE,IAAI,MAAgB;AACrC,QAAM,EAAE,gBAAgB,IAAIC,aAAW,cAAc;AACrD,QAAM,kBAAkB,aAAa,iBAAiB,IAAI,OAAO;AAEjE,QAAM,cAAc;AAAA,IAClB;AAAA,IACA,GAAI,IAAI,cAAc,CAAC,IAAI,WAAW,IAAI,CAAC;AAAA,IAC3C;AAAA,IACA,IAAI;AAAA,EACN;AACA,QAAM,UAAU,mBAAmB,iBAAiB,IAAI,OAAO;AAE/D,SACE,gBAAAF;AAAA,IAAC;AAAA;AAAA,MACC,KAAK,IAAI;AAAA,MACT,MAAM;AAAA,MACN,OAAO,IAAI;AAAA,MACX,QAAS,IAAI,UAAyB;AAAA,MACtC,aAAc,eAA4B,CAAC;AAAA,MAC3C,YAAa,IAAI,cAA6B;AAAA,MAC9C,KAAK,eAAe,IAAI,GAAG;AAAA,MAC3B;AAAA;AAAA,EACF;AAEJ;AAEA,IAAM,eAAeG;AAAA,EACnB,CAAC,EAAE,cAAc,MAA4B;AAC3C,UAAM,EAAE,qBAAqB,IAAID,aAAW,aAAa;AAEzD,IAAAE,YAAU,MAAM;AACd,UAAI,CAAC;AAAe;AAGpB,YAAM,UAAU;AAChB,YAAM,uBACJ,OAAO,SAAS,OAAO,YAAY,YACnC,QAAQ,OAAO,QAAQ,SAAS,UAAU;AAE5C,YAAM,SAAS,SAAS;AAQxB,YAAM,eAAe,QAAQ,KAAK,CAAC,UAAU,MAAM,SAAS,SAAS;AACrE,YAAM,SAAS,SAAS,UAAU;AAElC,YAAM,kBAA0C,CAAC;AAEjD,UAAI,cAAc,MAAM;AACtB,eAAO,QAAQ,aAAa,IAAI,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAC1D,cAAI,OAAO,UAAU,UAAU;AAC7B,4BAAgB,GAAG,IAAI;AAAA,UACzB;AAAA,QACF,CAAC;AAAA,MACH;AAEA,sBAAgB,EAAE,IAAI;AAEtB,UAAI,CAAC,sBAAsB;AACzB,6BAAqB,eAAe;AAAA,MACtC;AAAA,IACF,GAAG,CAAC,eAAe,OAAO,CAAC;AAE3B,WAAO;AAAA,EACT;AACF;AAEA,IAAM,eAAe,CAAC,EAAE,MAAM,SAAS,WAAW,MAA4B;AAC5E,QAAM,YAAYC,SAAwB,IAAI;AAE9C,WAAS,uBAAuB,SAAsC;AACpE,YAAQ,QAAQ,CAAC,UAAqC;AACpD,UAAI,MAAM,kBAAkB,SAAS;AACnC,mBAAW;AAAA,MACb;AAAA,IACF,CAAC;AAAA,EACH;AAEA,QAAM,iBAAiBC,SAAQ,MAAM;AACnC,UAAM,YAA4B,CAAC;AACnC,SAAK,QAAQ,CAAC,QAAQ;AACpB,YAAM,gBAAgB,UAAU;AAAA,QAC9B,CAAC,MAAM,EAAE,uBAAuB,IAAI;AAAA,MACtC;AAEA,YAAM,cAAmB,EAAE,GAAG,KAAK,iBAAiB,CAAC,EAAE;AACvD,UAAI,iBAAiB,GAAG;AACtB,kBAAU,aAAa,EAAE,iBAAiB,KAAK,WAAW;AAAA,MAC5D;AAAO,kBAAU,KAAK,WAAW;AAAA,IACnC,CAAC;AACD,WAAO;AAAA,EACT,GAAG,CAAC,IAAI,CAAC;AAET,EAAAF,YAAU,MAAM;AACd,UAAM,WAAW,IAAI,qBAAqB,wBAAwB,CAAC,CAAC;AAEpE,QAAI,UAAU;AAAS,eAAS,QAAQ,UAAU,OAAO;AACzD,WAAO,MAAM;AACX,eAAS,WAAW;AAAA,IACtB;AAAA,EACF,GAAG,CAAC,IAAI,CAAC;AACT,SACE,gBAAAH,OAACM,OAAA,EACC;AAAA,oBAAAP,MAAC,gBAAa;AAAA,IACb,eAAe,IAAI,CAAC,KAAU,UAC7B,gBAAAA,MAACQ,QAAA,EACC,0BAAAR,MAAC,WAAQ,OAAe,KAAO,KADtB,IAAI,QAEf,CACD;AAAA,IACD,gBAAAA,MAAC,UAAK,KAAK,WAAW;AAAA,KACxB;AAEJ;AAGA,IAAO,uBAAQ,oBAAoB,YAAY;;;AIjJ/C,IAAM,kBAA+B;AAAA,EACnC,OAAO,CAAC,OAAO,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ;AAAA,EACpE,YAAY,CAAC,QAAQ,QAAQ,QAAQ,MAAM;AAAA,EAC3C,IAAI;AAAA,IACF,WAAW;AAAA,IACX,cAAc;AAAA,IACd,WAAW;AAAA,IACX,aAAa;AAAA,IACb,SAAS,CAAC,QAAQ,QAAQ,QAAQ,OAAO;AAAA,EAC3C;AACF;AAEA,IAAM,aAA0B;AAAA,EAC9B,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,SAAS,CAAC,QAAQ,QAAQ,QAAQ,SAAS;AAC7C;AAEA,IAAM,sBAAmC;AAAA,EACvC,IAAI,CAAC,QAAQ,OAAO;AAAA,EACpB,IAAI;AAAA,EACJ,gBAAgB;AAClB;AAEA,IAAM,iBAA8B;AAAA,EAClC,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,QAAQ;AACV;AAEA,IAAM,yBAAsC;AAAA,EAC1C,GAAG;AAAA,EACH,OAAO;AACT;AAEA,IAAM,mBAAgC;AAAA,EACpC,SAAS;AAAA,EACT,UAAU,CAAC,QAAQ,MAAM;AAAA,EACzB,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,IAAI,CAAC,QAAQ,MAAM;AACrB;AAEA,IAAM,yBAAsC;AAAA,EAC1C,YAAY;AAAA,EACZ,IAAI;AACN;AAEA,IAAMS,aAAyB;AAAA,EAC7B,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,SAAS;AACX;AAEA,IAAOC,mBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAAD;AACF;;;AL5BM,gBAAAE,OAeE,QAAAC,cAfF;AAxBN,IAAM,gBAAgB,MAAM;AAC1B,QAAM,SAASC,WAAU;AACzB,QAAM,EAAE,uBAAuB,eAAe,IAAIC,aAAW,aAAa;AAC1E,QAAM,EAAE,OAAO,IAAIA,aAAW,cAAc;AAC5C,QAAM,UAAU;AAAA,IACd,YAAY,MAAM;AAAA,IAClB,wBAAwB,YAAY,qBAAqB,MAAM;AAAA,EACjE,EACG,OAAO,OAAO,EACd,KAAK,OAAO;AACf,QAAM,CAAC,YAAY,aAAa,IAAIC,WAAS,EAAE;AAC/C,QAAM,CAAC,aAAa,cAAc,IAAIA,WAAS,CAAC,CAAC;AAEjD,QAAM,oBAAoB,CAAC,iBAA8B;AACvD,UAAM,OAAO,YAAY,aAAa,IAAI,aAAa,QAAQ;AAC/D,kBAAc,OAAO;AACrB,mBAAe;AAAA,MACb,GAAG;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH;AAEA,SACE,gBAAAH,OAACI,OAAA,EAAI,IAAIC,iBAAO,iBACd;AAAA,oBAAAN,MAACO,QAAA,EAAK,IAAID,iBAAO,YACd,aAAG,SAAS,MAAM,EAAE,wBAAwB,KAAK,SAAS,IACzD,eAAe,qBAAqB,MAAM,SACtC,KACA,eAAe,qBAAqB,CAC1C,IAAI,SAAS,MAAM,EAAE,4BAA4B,KAAK,aAAa,IACjE,OAAO,MAAM,OACf,IAAI,SAAS,MAAM,EAAE,mBAAmB,KAAK,IAAI,IAC/C,CAAC,wBACG,SAAS,MAAM,EAAE,8BAA8B,KAAK,gBACpD,qBACN,IACF;AAAA,IACA,gBAAAN,MAAC,QAAG;AAAA,IACJ,gBAAAA,MAACK,OAAA,EACC,0BAAAJ;AAAA,MAACO;AAAA,MAAA;AAAA,QACC;AAAA,QACA,WAAW;AAAA,QACX;AAAA,QACA,qBAAqB,CAAC,iBACpB,kBAAkB,YAAY;AAAA,QAGhC;AAAA,0BAAAR;AAAA,YAACS;AAAA,YAAA;AAAA,cACC;AAAA,cACA,OAAO,OAAO,MAAM;AAAA,cACpB,gBAAgB;AAAA,cAChB;AAAA,cACA,QAAQ,CAAC,WAAW,UAAU;AAAA,cAC9B,uBAAuB;AAAA;AAAA,UACzB;AAAA,UACA,gBAAAT,MAAC,wBAAa;AAAA;AAAA;AAAA,IAChB,GACF;AAAA,KACF;AAEJ;AAEA,IAAO,yBAAQ;;;AM7Ef,SAAS,cAAAU,oBAAkB;AAC3B,SAAS,QAAAC,QAAM,QAAAC,cAAY;;;ACC3B,IAAMC,aAAyB;AAAA,EAC7B,SAAS,CAAC,QAAQ,QAAQ,QAAQ,MAAM;AAAA,EACxC,WAAW;AAAA,EACX,gBAAgB;AAAA,EAChB,uBAAuB;AAAA,IACrB,SAAS;AAAA,EACX;AACF;AAEA,IAAM,MAAwC,CAAC,YAAY;AAAA,EACzD,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,QAAQ;AAAA,EACR,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,cAAc,GAAG,SAAS,IAAI,CAAC,aAAa,SAAS,WAAW,QAAQ;AAAA,EACxE,UAAU;AACZ;AAEA,IAAM,WAA6C,CAAC,YAAY;AAAA,EAC9D,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,OAAO,IAAI,SAAS,WAAW,QAAQ;AACzC;AAEA,IAAM,WAAwB;AAAA,EAC5B,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,iBAAiB;AACnB;AAEA,IAAOC,mBAAQ,EAAE,WAAAD,YAAW,KAAK,UAAU,SAAS;;;AD1BhD,SAIE,OAAAE,OAJF,QAAAC,cAAA;AANJ,IAAM,kBAAkB,CAAC,EAAE,OAAO,MAA0B;AAC1D,QAAM,EAAE,uBAAuB,6BAA6B,eAAe,IACzEC,aAAW,aAAa;AAC1B,QAAM,EAAE,OAAO,IAAIA,aAAW,cAAc;AAE5C,SACE,gBAAAD;AAAA,IAACE;AAAA,IAAA;AAAA,MACC,IAAIC,iBAAO,IAAI,0BAA0B,MAAM;AAAA,MAC/C,SAAS,MAAM,4BAA4B,MAAM;AAAA,MAEjD;AAAA,wBAAAJ,MAACK,QAAA,EAAK,IAAID,iBAAO,SAAS,0BAA0B,MAAM,GACvD,oBAAU,SAAS,MAAM,EAAE,oBAAoB,KAAK,eACvD;AAAA,QACA,gBAAAJ,MAACK,QAAA,EAAK,IAAID,iBAAO,UAAW,yBAAe,MAAM,KAAK,GAAE;AAAA;AAAA;AAAA,EAC1D;AAEJ;AAEA,IAAM,qBAAqB,MAAM;AAC/B,QAAM,EAAE,gBAAgB,IAAIF,aAAW,cAAc;AACrD,SACE,gBAAAD,OAACE,QAAA,EAAK,IAAIC,iBAAO,WACf;AAAA,oBAAAJ,MAAC,mBAAgB,QAAO,IAAG;AAAA,IAC1B,gBAAgB,KAAK,EAAE,IAAI,CAAC,YAAY;AACvC,aAAO,gBAAAA,MAAC,mBAAiC,QAAQ,QAAQ,MAA5B,QAAQ,EAAwB;AAAA,IAC/D,CAAC;AAAA,KACH;AAEJ;AAEA,IAAO,gCAAQ;;;AEpCf,IAAM,qBAAkC;AAAA,EACtC,SAAS,CAAC,QAAQ,QAAQ,QAAQ,MAAM;AAAA,EACxC,gBAAgB;AAAA,EAChB,IAAI;AACN;AAEA,IAAM,OAAoB;AAAA,EACxB,YAAY;AAAA,EACZ,gBAAgB;AAClB;AAEA,IAAOM,mBAAQ;AAAA,EACb;AAAA,EACA;AACF;;;AdLM,SAEI,OAAAC,OAFJ,QAAAC,cAAA;AAHN,IAAM,SAAS,MAAM;AACnB,SACE,gBAAAA,OAAC,kBACC;AAAA,oBAAAA,OAACC,OAAA,EACC;AAAA,sBAAAF,MAACG,QAAA,EAAK,IAAIC,iBAAO,oBACf,0BAAAJ,MAAC,eAAY,GACf;AAAA,MACA,gBAAAA,MAAC,iCAAmB;AAAA,OACtB;AAAA,IACA,gBAAAC,OAACE,QAAA,EAAK,IAAIC,iBAAO,MACf;AAAA,sBAAAJ,MAAC,2BAAe;AAAA,MAChB,gBAAAA,MAAC,0BAAc;AAAA,OACjB;AAAA,KACF;AAEJ;AAEA,IAAOK,kBAAQ;;;AezBf,SAAoB,cAAAC,oBAAkB;AACtC,SAAS,qBAAqB;;;ACC9B,IAAM,MAAmB;AAAA,EACvB,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,OAAO;AAAA,EACP,SAAS;AAAA,EACT,OAAO;AAAA,EACP,MAAM;AAAA,EACN,WAAW;AAAA,EACX,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,WAAW;AACb;AAEA,IAAM,aAA0B;AAAA,EAC9B,SAAS;AAAA,EACT,MAAM;AAAA,EACN,eAAe;AAAA,EACf,UAAU;AACZ;AAEA,IAAMC,SAAqB;AAAA,EACzB,OAAO;AAAA,EACP,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,YAAY;AACd;AAEA,IAAM,kBAA+B;AAAA,EACnC,SAAS;AAAA,EACT,UAAU;AAAA,EACV,KAAK;AAAA,EACL,gBAAgB;AAAA,EAChB,QAAQ;AACV;AAEA,IAAM,eAA4B;AAAA,EAChC,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,SAAS;AAAA,EACT,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,YAAY;AAAA,EAEZ,UAAU;AAAA,IACR,SAAS;AAAA,EACX;AACF;AAEA,IAAM,gBAA6B;AAAA,EACjC,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,QAAQ;AAAA,EAER,UAAU;AAAA,IACR,SAAS;AAAA,EACX;AACF;AAEA,IAAOC,mBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA,OAAAD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ADvEA,SAAS,QAAAE,QAAmB,QAAAC,cAAY;AAGxC,OAAOC,SAAQ;AAaX,gBAAAC,OAUA,QAAAC,cAVA;AAFJ,IAAMC,UAAS,CAAC,EAAE,UAAU,OAAO,GAAG,MAAM,MAAmB;AAC7D,SACE,gBAAAF,MAACG,QAAA,EAAK,IAAI,OAAQ,GAAG,OAClB,UACH;AAEJ;AAEA,IAAM,YAAY,CAAC,EAAE,SAAS,MAAa;AACzC,QAAM,EAAE,OAAO,IAAIC,aAAW,cAAc;AAE5C,SACE,gBAAAH;AAAA,IAAC;AAAA;AAAA,MACC,qBAAmB;AAAA,MACnB,aAAaI,iBAAO;AAAA,MACpB,oBAAoBA,iBAAO;AAAA,MAC3B,OAAOA,iBAAO;AAAA,MACd,UAAU,MAAM;AACd,QAAAN,IAAG,QAAQ;AAAA,UACT,SAAS;AAAA,UACT,WAAW;AAAA,QACb,CAAC;AACD,iBAAS;AAAA,MACX;AAAA,MACA,mBAAmB,SAAS,MAAM,EAAE,oBAAoB;AAAA,MACxD,YAAY,SAAS,MAAM,EAAE,mBAAmB;AAAA,MAChD,iBAAiBG;AAAA,MACjB,+BAA+B,EAAE,OAAOG,iBAAO,gBAAgB;AAAA,MAC/D,yBAAyB,EAAE,OAAOA,iBAAO,WAAW;AAAA,MAEpD;AAAA,wBAAAL,MAACM,QAAA,EAAK,IAAID,iBAAO,OAAQ,mBAAS,MAAM,EAAE,kBAAkB,GAAE;AAAA,QAC9D,gBAAAL,MAACM,QAAA,EAAM,mBAAS,MAAM,EAAE,wBAAwB,GAAE;AAAA;AAAA;AAAA,EACpD;AAEJ;AAEA,IAAO,qBAAQ;;;AErDf,SAAS,UAAAC,eAAc;;;ACCvB,SAAS,QAAAC,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,WAAW,CAAC,UAChB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,oBAAQ;;;ADxBf,SAAS,YAAAE,kBAAgB;;;AEDzB,IAAM,WAAwB;AAAA,EAC5B,aAAa;AACf;AAEA,IAAM,iBAA8B;AAAA,EAClC,eAAe;AAAA,EACf,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,iBAAiB;AAAA,EACjB,UAAU;AAAA,IACR,iBAAiB;AAAA,EACnB;AACF;AAEA,IAAOC,mBAAQ;AAAA,EACb;AAAA,EACA;AACF;;;AFHQ,gBAAAC,aAAA;AAfR,IAAM,iBAAiB,MAAM;AAC3B,QAAM,CAAC,aAAa,cAAc,IAAIC,WAAS,MAAM;AAErD,QAAM,aAAa,MAAM;AACvB,cAAU,UAAU,UAAU,OAAO,SAAS,IAAI;AAClD,mBAAe,MAAM;AAErB,eAAW,MAAM;AACf,qBAAe,SAAS;AAAA,IAC1B,GAAG,GAAI;AAAA,EACT;AAEA,SACE,gBAAAD,MAAC,mBAAQ,OAAO,aAAa,WAAU,UACrC,0BAAAA,MAACE,SAAA,EAAO,SAAS,YAAY,IAAIC,iBAAO,gBACtC,0BAAAH,MAAC,qBAAS,IAAIG,iBAAO,UAAU,MAAM,IAAI,GAC3C,GACF;AAEJ;AAEA,IAAO,2BAAQ;;;AG3Bf,SAAS,YAAAC,YAAU,aAAAC,mBAAiB;;;ACEpC,IAAM,QAAqB;AAAA,EACzB,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,UAAU,CAAC,MAAM;AAAA,EACjB,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,SAAS;AACX;AAEA,IAAMC,QAAoB;AAAA,EACxB,UAAU;AAAA,EACV,WAAW;AAAA,EACX,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,UAAU;AACZ;AAEA,IAAMC,cAAyB;AAAA,EAC7B,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,QAAQ;AAAA,EAER,UAAU;AAAA,IACR,YAAY;AAAA,IACZ,QAAQ;AAAA,EACV;AACF;AAEA,IAAOC,mBAAQ,EAAE,WAAAD,aAAW,OAAO,MAAAD,MAAK;;;ADrCxC,SAAS,QAAAG,cAAY;AAkBjB,SACW,OAAAC,OADX,QAAAC,cAAA;AARJ,IAAM,QAAQ,CAAC,EAAE,OAAO,UAAU,cAAc,IAAI,MAAAC,OAAK,MAAkB;AACzE,QAAM,CAAC,YAAY,aAAa,IAAIC,WAAS,SAAS,EAAE;AAExD,EAAAC,YAAU,MAAM;AACd,QAAI,eAAe;AAAO,oBAAc,KAAK;AAAA,EAC/C,GAAG,CAAC,KAAK,CAAC;AAEV,SACE,gBAAAH,OAACF,QAAA,EAAK,IAAIM,iBAAO,WACd;AAAA,IAAAH,UAAQ,gBAAAF,MAACE,QAAA,EAAK,IAAIG,iBAAO,MAAM;AAAA,IAChC,gBAAAL;AAAA,MAAC;AAAA;AAAA,QACC,OAAOK,iBAAO;AAAA,QACd,OAAO;AAAA,QACP;AAAA,QACA,UAAU,CAAC,MAAM;AACf,wBAAc,EAAE,cAAc,KAAK;AACnC,mBAAS,EAAE,cAAc,KAAK;AAAA,QAChC;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;AAEA,IAAO,gBAAQ;;;AEnCR,IAAM,iBAAiB,CAAC,SAAe;AAC5C,QAAM,UAAU,MAAO,KAAK,KAAK;AACjC,QAAM,aAAY,oBAAI,KAAK,GAAE,QAAQ,IAAI,KAAK,QAAQ;AACtD,SAAO,KAAK,MAAM,YAAY,OAAO;AACvC;;;ACJA,SAAS,QAAAC,cAAY;AAKjB,SAME,OAAAC,OANF,QAAAC,cAAA;AAFJ,IAAM,0BAA0B,CAAC,UAAqB;AACpD,SACE,gBAAAA;AAAA,IAACF;AAAA,IAAA;AAAA,MACE,GAAG;AAAA,MACJ,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,OAAM;AAAA,MAEN;AAAA,wBAAAC;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,gBAAe;AAAA;AAAA,QACjB;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA;AAAA,QAChB;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA;AAAA,QAChB;AAAA;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,oCAAQ;;;ACrDf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,2BAA2B,CAAC,UAChC,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,qCAAQ;;;AC1Cf,SAAS,QAAAE,cAAY;AAGnB,SAOE,OAAAC,OAPF,QAAAC,cAAA;AADF,IAAM,iBAAiB,CAAC,UACtB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEL;AAAA;AAAA,MACD,gBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,0BAAQ;;;AC3Cf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,sBAAsB,CAAC,UAC3B,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,GAAE;AAAA,UACF,OAAM;AAAA,UACN,QAAO;AAAA,UACP,IAAG;AAAA,UACH,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACd;AAAA,MACA,gBAAAA,MAAC,UAAK,GAAE,aAAY,QAAO,WAAU,aAAY,OAAM;AAAA,MACvD,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,gCAAQ;;;AC3Cf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,UAAU,CAAC,UACf,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA;AAAA,MAChB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,mBAAQ;;;AC/Bf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,iBAAiB,CAAC,UACtB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,UAAK,OAAM,SAAQ,QAAO,SAAQ,MAAK,QAAO;AAAA,MAC/C,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,IAAG;AAAA,UACH,IAAG;AAAA,UACH,IAAG;AAAA,UACH,IAAG;AAAA,UACH,MAAK;AAAA,UACL,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAY;AAAA;AAAA,MACb;AAAA,MACD,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,IAAG;AAAA,UACH,IAAG;AAAA,UACH,IAAG;AAAA,UACH,IAAG;AAAA,UACH,MAAK;AAAA,UACL,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAY;AAAA;AAAA,MACb;AAAA,MACD,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,GAAE;AAAA,UACF,OAAM;AAAA,UACN,QAAO;AAAA,UACP,IAAG;AAAA,UACH,aAAY;AAAA,UACZ,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,MAAK;AAAA;AAAA,MACN;AAAA;AAAA;AACH;AAGF,IAAO,4BAAQ;;;AC/Cf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,gBAAgB,CAAC,UACrB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACd;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACd;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACd;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACd;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,yBAAQ;;;ACvCf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,YAAY,CAAC,UACjB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACd;AAAA;AAAA;AACF;AAGF,IAAO,qBAAQ;;;ACxBf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,cAAc,CAAC,UACnB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,uBAAQ;;;ACjCf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,YAAY,CAAC,UACjB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,qBAAQ;;;AC/Cf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,gBAAgB,CAAC,UACrB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,0BAAQ;;;AC1Bf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,gBAAgB,CAAC,UACrB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,yBAAQ;;;ACtDf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,mBAAmB,CAAC,UACxB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,UAAK,OAAM,SAAQ,QAAO,SAAQ,MAAK,QAAO;AAAA,MAC/C,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA,UACL,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAY;AAAA;AAAA,MACb;AAAA,MACD,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA,UACL,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAY;AAAA;AAAA,MACb;AAAA;AAAA;AACH;AAGF,IAAO,4BAAQ;;;AC7Bf,SAAS,QAAAE,cAAY;AAGnB,SAOI,OAAAC,OAPJ,QAAAC,cAAA;AADF,IAAM,oBAAoB,CAAC,UACzB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,OAAE,UAAS,2BACV,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP,GACF;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA,MAAC,UACC,0BAAAA,MAAC,cAAS,IAAG,qBACX,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,QAAO;AAAA,UACP,MAAK;AAAA,UACL,WAAU;AAAA;AAAA,MACZ,GACF,GACF;AAAA;AAAA;AACF;AAGF,IAAO,8BAAQ;;;ACpCf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,qBAAqB,CAAC,UAC1B,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA,MAAC,UAAK,GAAE,yCAAwC,MAAK,WAAU;AAAA,MAC/D,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA;AAAA;AACF;AAGF,IAAO,+BAAQ;;;ACrBf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,WAAW,CAAC,UAChB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA;AAAA;AACF;AAGF,IAAO,oBAAQ;;;ACxBf,SAAS,QAAAE,cAAY;AASjB,gBAAAC,OACA,QAAAC,cADA;AAPJ,IAAM,UAAU,CAAC,UACf,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,YAAO,IAAG,WAAU,IAAG,KAAI,GAAE,KAAI,MAAK,WAAU;AAAA,MACjD,gBAAAC,OAAC,OAAE,UAAS,yBACV;AAAA,wBAAAD;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,SACF;AAAA,MACA,gBAAAA,MAAC,UACC,0BAAAA,MAAC,cAAS,IAAG,mBACX,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,QAAO;AAAA,UACP,MAAK;AAAA,UACL,WAAU;AAAA;AAAA,MACZ,GACF,GACF;AAAA;AAAA;AACF;AAGF,IAAO,mBAAQ;;;ACrCf,SAAS,QAAAE,cAAY;AASjB,gBAAAC,aAAA;AAPJ,IAAM,aAAa,CAAC,UAClB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN,0BAAAC;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,UAAS;AAAA,QACT,GAAE;AAAA,QACF,QAAO;AAAA,QACP,aAAY;AAAA,QACZ,eAAc;AAAA,QACd,gBAAe;AAAA;AAAA,IACjB;AAAA;AACF;AAGF,IAAO,sBAAQ;;;ACrBf,SAAS,QAAAC,cAAY;AAGnB,SAOE,OAAAC,OAPF,QAAAC,cAAA;AADF,IAAM,gBAAgB,CAAC,UACrB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEL;AAAA;AAAA,MACD,gBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,yBAAQ;;;AC/Bf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,qBAAqB,CAAC,UAC1B,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA;AAAA,MACT;AAAA,MACA,gBAAAA,MAAC,OAAE,UAAS,yBACV,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP,GACF;AAAA,MACA,gBAAAA,MAAC,UACC,0BAAAA,MAAC,cAAS,IAAG,mBACX,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,QAAO;AAAA,UACP,MAAK;AAAA,UACL,WAAU;AAAA;AAAA,MACZ,GACF,GACF;AAAA;AAAA;AACF;AAGF,IAAO,+BAAQ;;;AChCf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,qBAAqB,CAAC,UAC1B,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA;AAAA,MACT;AAAA,MACA,gBAAAA,MAAC,OAAE,UAAS,yBACV,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP,GACF;AAAA,MACA,gBAAAA,MAAC,UACC,0BAAAA,MAAC,cAAS,IAAG,mBACX,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,QAAO;AAAA,UACP,MAAK;AAAA,UACL,WAAU;AAAA;AAAA,MACZ,GACF,GACF;AAAA;AAAA;AACF;AAGF,IAAO,+BAAQ;;;AChCf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,oBAAoB,CAAC,UACzB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA;AAAA,MACT;AAAA;AAAA;AACF;AAGF,IAAO,8BAAQ;;;ACpBf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,cAAc,CAAC,UACnB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA;AAAA,MACT;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA;AAAA,MACT;AAAA,MACA,gBAAAA,MAAC,OAAE,UAAS,yBACV,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP,GACF;AAAA,MACA,gBAAAA,MAAC,UACC,0BAAAA,MAAC,cAAS,IAAG,mBACX,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,QAAO;AAAA,UACP,MAAK;AAAA,UACL,WAAU;AAAA;AAAA,MACZ,GACF,GACF;AAAA;AAAA;AACF;AAGF,IAAO,uBAAQ;;;ACpCf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,SAAS,CAAC,UACd,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA;AAAA,MACT;AAAA,MACA,gBAAAA,MAAC,OAAE,UAAS,yBACV,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP,GACF;AAAA,MACA,gBAAAA,MAAC,UACC,0BAAAA,MAAC,cAAS,IAAG,mBACX,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,QAAO;AAAA,UACP,MAAK;AAAA,UACL,WAAU;AAAA;AAAA,MACZ,GACF,GACF;AAAA;AAAA;AACF;AAGF,IAAO,yBAAQ;;;AChCf,SAAS,QAAAE,cAAY;AAYjB,gBAAAC,aAAA;AAVJ,IAAM,cAAc,CAAC,UACnB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,MAAK;AAAA,IACL,aAAU;AAAA,IACV,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,OAAM;AAAA,IAEN,0BAAAC,MAAC,UAAK,GAAE,q+CAAo+C;AAAA;AAC9+C;AAGF,IAAO,uBAAQ;;;AChBf,SAAS,QAAAC,cAAY;AAGnB,SASE,OAAAC,OATF,QAAAC,cAAA;AADF,IAAM,aAAa,CAAC,UAClB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,MAAK;AAAA,IACL,aAAU;AAAA,IACV,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,WAAM,oBAAM;AAAA,MACb,gBAAAA,MAAC,UAAK,GAAE,+9CAA89C;AAAA;AAAA;AACx+C;AAGF,IAAO,sBAAQ;;;ACjBf,SAAS,QAAAE,cAAY;AAYjB,gBAAAC,aAAA;AAVJ,IAAM,aAAa,CAAC,UAClB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,MAAK;AAAA,IACL,aAAU;AAAA,IACV,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,OAAM;AAAA,IAEN,0BAAAC,MAAC,UAAK,GAAE,qcAAoc;AAAA;AAC9c;AAGF,IAAO,sBAAQ;;;AChBf,SAAS,QAAAC,cAAY;AAYjB,gBAAAC,aAAA;AAVJ,IAAM,cAAc,CAAC,UACnB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,MAAK;AAAA,IACL,aAAU;AAAA,IACV,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,OAAM;AAAA,IAEN,0BAAAC,MAAC,UAAK,GAAE,0iBAAyiB;AAAA;AACnjB;AAGF,IAAO,uBAAQ;;;AChBf,SAAS,QAAAC,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,WAAW,CAAC,UAChB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA;AAAA;AACF;AAGF,IAAO,oBAAQ;;;AClEf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,eAAe,CAAC,UACpB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,wBAAQ;;;AC/Cf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,aAAa,CAAC,UAClB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,sBAAQ;;;AClEf,SAAS,QAAAE,cAAY;AAGnB,SAQE,OAAAC,OARF,QAAAC,cAAA;AADF,IAAM,WAAW,CAAC,UAChB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,oBAAQ;;;ACjEf,SAAS,QAAAE,cAAY;AAcf,qBAAAC,WACE,OAAAC,OADF,QAAAC,cAAA;AARN,IAAM,eAAe,CAAC,UACpB,gBAAAD;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEL,WAAC,MAAM,UACN,gBAAAG,OAAAF,WAAA,EACE;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,GAAE;AAAA,UACF,OAAM;AAAA,UACN,QAAO;AAAA,UACP,IAAG;AAAA,UACH,MAAK;AAAA,UACL,aAAY;AAAA;AAAA,MACd;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,GAAE;AAAA,UACF,OAAM;AAAA,UACN,QAAO;AAAA,UACP,IAAG;AAAA,UACH,QAAO;AAAA;AAAA,MACT;AAAA,OACF,IAEA,gBAAAC,OAAAF,WAAA,EACE;AAAA,sBAAAC,MAAC,UAAK,OAAM,MAAK,QAAO,MAAK,IAAG,KAAI,MAAK,WAAU;AAAA,MACnD,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,OACF;AAAA;AAEJ;AAGF,IAAO,mBAAQ;;;AC/Cf,SAAS,QAAAE,cAAY;AASjB,gBAAAC,aAAA;AAPJ,IAAM,aAAa,CAAC,UAClB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN,0BAAAC;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,GAAE;AAAA;AAAA,IACJ;AAAA;AACF;AAGF,IAAO,sBAAQ;;;AChBf,SAAS,QAAAC,cAAY;AAGnB,SAOE,OAAAC,OAPF,QAAAC,cAAA;AADF,IAAM,iBAAiB,CAAC,UACtB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEL;AAAA;AAAA,MACD,gBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,2BAAQ;;;AC3Bf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,QANF,QAAAC,cAAA;AADF,IAAM,gBAAgB,CAAC,UACrB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,0BAAQ;;;AC1Bf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,QANF,QAAAC,cAAA;AADF,IAAM,iBAAiB,CAAC,UACtB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA;AAAA;AACF;AAGF,IAAO,2BAAQ;","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","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","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","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","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","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","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","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","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","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","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/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/trashcan-icon.tsx","../src/components/icons/filter-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'\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 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\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\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.\r\n */\r\nexport const stripMarkdownForSnippet = (str: string): string => {\r\n if (!str) return ''\r\n \r\n let cleaned = str\r\n // Remove markdown images ![alt](url) - keep only alt text\r\n .replace(/!\\[([^\\]]*)\\]\\([^)]+\\)/g, '$1')\r\n // Remove markdown links [text](url) - keep only the text\r\n .replace(/\\[([^\\]]+)\\]\\([^)]+\\)/g, '$1')\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`)\r\n .replace(/`([^`]+)`/g, '$1')\r\n // Remove code blocks (```text```)\r\n .replace(/```[\\s\\S]*?```/g, '')\r\n // Remove horizontal rules (---, ***, ___)\r\n .replace(/^(\\*{3,}|-{3,}|_{3,})$/gm, '')\r\n // Remove blockquotes (>)\r\n .replace(/^>\\s+/gm, '')\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: #f6f8fa;\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: 1fr;\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 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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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: #ecebf3;\r\n}\r\n\r\n.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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","{\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}\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}\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}","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}\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}\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 whiteSpace: 'pre',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\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\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\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\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\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 // 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 ): 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 or doctype\r\n // filtering, so we always fetch a large slice once per (query, locale)\r\n // pair and paginate / doctype-filter client-side.\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 cachedHits = getCached(cacheKey)\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let allHits: any[]\r\n if (cachedHits) {\r\n allHits = cachedHits\r\n } else {\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 allHits = rawResults.map(transformHybridToAlgolia)\r\n setCached(cacheKey, allHits)\r\n }\r\n\r\n // Doctype filter is applied client-side because the upstream API\r\n // does not understand it. Facet counts are computed on `allHits`\r\n // (i.e. ignoring the doctype filter) so that the tabs keep showing\r\n // counts for the other doctypes.\r\n const filteredHits = filterHitsByDoctype(allHits, doctypes)\r\n const nbHits = filteredHits.length\r\n const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage))\r\n const start = page * hitsPerPage\r\n const pageHits = filteredHits.slice(start, start + hitsPerPage)\r\n\r\n const facets = extractFacetsFromHits(allHits)\r\n\r\n return {\r\n results: [\r\n {\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: facets.facets,\r\n facets_stats: {},\r\n exhaustiveFacetsCount: true,\r\n queryID: generateQueryID(),\r\n },\r\n ],\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) =>\r\n wanted.has(String(h.doctype || '').toLowerCase())\r\n )\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\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\r\n // docs//tracks// → //docs/tracks/\r\n // Special handling for tracks: only use the last segment\r\n if (parts[0] === 'docs' && parts.length > 3 && parts[2] === 'tracks') {\r\n const locale = parts[1]\r\n const slug = stripExt(parts[parts.length - 1])\r\n return `/${locale}/docs/tracks/${slug}`\r\n }\r\n\r\n // docs///...\r\n if (parts[0] === 'docs' && parts.length > 2) {\r\n return `/docs/${stripExt(parts.slice(2).join('/'))}`\r\n }\r\n\r\n // //... (announcements, faq, known-issues, troubleshooting, ...)\r\n if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1])) {\r\n return `/${parts[0]}/${stripExt(parts.slice(2).join('/'))}`\r\n }\r\n\r\n return '/' + stripExt(parts.join('/'))\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction extractFacetsFromHits(\r\n hits: any[]\r\n): { facets: Record> } {\r\n const facets: Record> = {\r\n doctype: {},\r\n language: {},\r\n }\r\n\r\n hits.forEach((hit) => {\r\n const doctype = hit.doctype || 'Other'\r\n facets.doctype[doctype] = (facets.doctype[doctype] || 0) + 1\r\n\r\n const language = hit.language || 'en'\r\n facets.language[language] = (facets.language[language] || 0) + 1\r\n })\r\n\r\n return { facets }\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(config: SearchBackendConfig | AlgoliaConfig) {\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\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 return !dataElement ? (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results' }\r\n \r\n \r\n {ocurrenceCount['']}\r\n \r\n \r\n ) : (\r\n updateFilter(dataElement.id)}\r\n >\r\n \r\n \r\n \r\n {dataElement.title}\r\n \r\n \r\n \r\n {ocurrenceCount[dataElement.id] || 0}\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: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\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: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n fontSize: '12px',\r\n lineHeight: '16px',\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\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, 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 { searchClient, searchIndex, hitsPerPage } from 'utils/config/search-config'\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 [prevFilter, setPrevFilter] = useState('')\r\n const [searchState, setSearchState] = useState({})\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const page = filters !== prevFilter ? 1 : currentState.page || 1\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 ocurrenceCount[filterSelectedSection] === undefined\r\n ? ''\r\n : 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 facets = results?.facets as\r\n | Array<{\r\n name: string\r\n data: Record\r\n exhaustive?: boolean\r\n }>\r\n | undefined\r\n\r\n const doctypeFacet = facets?.find((facet) => facet.name === 'doctype')\r\n const nbHits = results?.nbHits ?? 0\r\n\r\n const formattedFacets: Record = {}\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\r\n formattedFacets[''] = nbHits\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) 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}\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\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 return (\r\n changeFilterSelectedSection(filter)}\r\n >\r\n \r\n {filter || messages[locale]['search_results.all'] || 'All results'}\r\n \r\n {ocurrenceCount[filter] || 0}\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) => SxStyleProp = (active) => ({\r\n pt: '8px',\r\n pb: '14px',\r\n px: '24px',\r\n cursor: '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})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '16.38px',\r\n whiteSpace: 'nowrap',\r\n color: `#${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","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 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 { 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 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","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","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","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","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","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","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","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","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","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","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","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/utils/config/search-config.ts b/src/utils/config/search-config.ts index a43f8e2..97d9558 100644 --- a/src/utils/config/search-config.ts +++ b/src/utils/config/search-config.ts @@ -422,6 +422,14 @@ function buildUrlFromFilePath(filePath: string): string { const stripExt = (s: string) => s.replace(/\.mdx?$/, '') + // docs//tracks// → //docs/tracks/ + // Special handling for tracks: only use the last segment + if (parts[0] === 'docs' && parts.length > 3 && parts[2] === 'tracks') { + const locale = parts[1] + const slug = stripExt(parts[parts.length - 1]) + return `/${locale}/docs/tracks/${slug}` + } + // docs///... if (parts[0] === 'docs' && parts.length > 2) { return `/docs/${stripExt(parts.slice(2).join('/'))}` diff --git a/src/utils/string-utils.ts b/src/utils/string-utils.ts index 4b6d354..4090d1e 100644 --- a/src/utils/string-utils.ts +++ b/src/utils/string-utils.ts @@ -8,7 +8,7 @@ export const removeHTML = (str: string) => str.replace(/<\/?[^>]+>/g, '') export const stripMarkdownForSnippet = (str: string): string => { if (!str) return '' - return str + let cleaned = str // Remove markdown images ![alt](url) - keep only alt text .replace(/!\[([^\]]*)\]\([^)]+\)/g, '$1') // Remove markdown links [text](url) - keep only the text @@ -34,6 +34,16 @@ export const stripMarkdownForSnippet = (str: string): string => { // Remove extra whitespace and normalize spaces .replace(/\s+/g, ' ') .trim() + + // If the snippet starts mid-word (lowercase letter), try to find the start of the next word + if (cleaned.length > 0 && /^[a-zà-ÿ]/.test(cleaned)) { + const firstSpaceIndex = cleaned.indexOf(' ') + if (firstSpaceIndex > 0 && firstSpaceIndex < 50) { + cleaned = cleaned.substring(firstSpaceIndex + 1).trim() + } + } + + return cleaned } export const capitalizeFirstLetter = (str: string) => { From e9bfe2332c4b69585d333d122481984c23157a97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A1rbara=20Celi?= Date: Mon, 8 Jun 2026 15:58:40 -0300 Subject: [PATCH 10/23] fix: enhance URL building for tutorials and special doctypes - Added special handling for tutorial URLs to use only the last segment - Improved URL pattern for special doctypes (faq, known-issues, troubleshooting, announcements) to return only the slug - Updated comments for clarity on URL construction logic --- dist/index.mjs | 11 +++++++++++ dist/index.mjs.map | 2 +- src/utils/config/search-config.ts | 19 ++++++++++++++++++- 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/dist/index.mjs b/dist/index.mjs index 4e9174d..4242567 100644 --- a/dist/index.mjs +++ b/dist/index.mjs @@ -10081,9 +10081,20 @@ function buildUrlFromFilePath(filePath) { const slug = stripExt(parts[parts.length - 1]); return `/${locale}/docs/tracks/${slug}`; } + if (parts[0] === "docs" && parts.length > 3 && parts[2] === "tutorials") { + const locale = parts[1]; + const slug = stripExt(parts[parts.length - 1]); + return `/${locale}/docs/tutorials/${slug}`; + } if (parts[0] === "docs" && parts.length > 2) { return `/docs/${stripExt(parts.slice(2).join("/"))}`; } + const specialDoctypes = ["faq", "known-issues", "troubleshooting", "announcements"]; + if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1]) && specialDoctypes.includes(parts[0])) { + const doctype = parts[0]; + const slug = stripExt(parts[parts.length - 1]); + return `/${doctype}/${slug}`; + } if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1])) { return `/${parts[0]}/${stripExt(parts.slice(2).join("/"))}`; } diff --git a/dist/index.mjs.map b/dist/index.mjs.map index 67ddb9b..356f9b1 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/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/trashcan-icon.tsx","../src/components/icons/filter-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'\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 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\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\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.\r\n */\r\nexport const stripMarkdownForSnippet = (str: string): string => {\r\n if (!str) return ''\r\n \r\n let cleaned = str\r\n // Remove markdown images ![alt](url) - keep only alt text\r\n .replace(/!\\[([^\\]]*)\\]\\([^)]+\\)/g, '$1')\r\n // Remove markdown links [text](url) - keep only the text\r\n .replace(/\\[([^\\]]+)\\]\\([^)]+\\)/g, '$1')\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`)\r\n .replace(/`([^`]+)`/g, '$1')\r\n // Remove code blocks (```text```)\r\n .replace(/```[\\s\\S]*?```/g, '')\r\n // Remove horizontal rules (---, ***, ___)\r\n .replace(/^(\\*{3,}|-{3,}|_{3,})$/gm, '')\r\n // Remove blockquotes (>)\r\n .replace(/^>\\s+/gm, '')\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: #f6f8fa;\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: 1fr;\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 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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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: #ecebf3;\r\n}\r\n\r\n.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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","{\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}\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}\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}","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}\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}\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 whiteSpace: 'pre',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\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\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\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\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\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 // 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 ): 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 or doctype\r\n // filtering, so we always fetch a large slice once per (query, locale)\r\n // pair and paginate / doctype-filter client-side.\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 cachedHits = getCached(cacheKey)\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let allHits: any[]\r\n if (cachedHits) {\r\n allHits = cachedHits\r\n } else {\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 allHits = rawResults.map(transformHybridToAlgolia)\r\n setCached(cacheKey, allHits)\r\n }\r\n\r\n // Doctype filter is applied client-side because the upstream API\r\n // does not understand it. Facet counts are computed on `allHits`\r\n // (i.e. ignoring the doctype filter) so that the tabs keep showing\r\n // counts for the other doctypes.\r\n const filteredHits = filterHitsByDoctype(allHits, doctypes)\r\n const nbHits = filteredHits.length\r\n const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage))\r\n const start = page * hitsPerPage\r\n const pageHits = filteredHits.slice(start, start + hitsPerPage)\r\n\r\n const facets = extractFacetsFromHits(allHits)\r\n\r\n return {\r\n results: [\r\n {\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: facets.facets,\r\n facets_stats: {},\r\n exhaustiveFacetsCount: true,\r\n queryID: generateQueryID(),\r\n },\r\n ],\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) =>\r\n wanted.has(String(h.doctype || '').toLowerCase())\r\n )\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\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\r\n // docs//tracks// → //docs/tracks/\r\n // Special handling for tracks: only use the last segment\r\n if (parts[0] === 'docs' && parts.length > 3 && parts[2] === 'tracks') {\r\n const locale = parts[1]\r\n const slug = stripExt(parts[parts.length - 1])\r\n return `/${locale}/docs/tracks/${slug}`\r\n }\r\n\r\n // docs///...\r\n if (parts[0] === 'docs' && parts.length > 2) {\r\n return `/docs/${stripExt(parts.slice(2).join('/'))}`\r\n }\r\n\r\n // //... (announcements, faq, known-issues, troubleshooting, ...)\r\n if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1])) {\r\n return `/${parts[0]}/${stripExt(parts.slice(2).join('/'))}`\r\n }\r\n\r\n return '/' + stripExt(parts.join('/'))\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction extractFacetsFromHits(\r\n hits: any[]\r\n): { facets: Record> } {\r\n const facets: Record> = {\r\n doctype: {},\r\n language: {},\r\n }\r\n\r\n hits.forEach((hit) => {\r\n const doctype = hit.doctype || 'Other'\r\n facets.doctype[doctype] = (facets.doctype[doctype] || 0) + 1\r\n\r\n const language = hit.language || 'en'\r\n facets.language[language] = (facets.language[language] || 0) + 1\r\n })\r\n\r\n return { facets }\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(config: SearchBackendConfig | AlgoliaConfig) {\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\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 return !dataElement ? (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results' }\r\n \r\n \r\n {ocurrenceCount['']}\r\n \r\n \r\n ) : (\r\n updateFilter(dataElement.id)}\r\n >\r\n \r\n \r\n \r\n {dataElement.title}\r\n \r\n \r\n \r\n {ocurrenceCount[dataElement.id] || 0}\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: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\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: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n fontSize: '12px',\r\n lineHeight: '16px',\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\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, 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 { searchClient, searchIndex, hitsPerPage } from 'utils/config/search-config'\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 [prevFilter, setPrevFilter] = useState('')\r\n const [searchState, setSearchState] = useState({})\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const page = filters !== prevFilter ? 1 : currentState.page || 1\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 ocurrenceCount[filterSelectedSection] === undefined\r\n ? ''\r\n : 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 facets = results?.facets as\r\n | Array<{\r\n name: string\r\n data: Record\r\n exhaustive?: boolean\r\n }>\r\n | undefined\r\n\r\n const doctypeFacet = facets?.find((facet) => facet.name === 'doctype')\r\n const nbHits = results?.nbHits ?? 0\r\n\r\n const formattedFacets: Record = {}\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\r\n formattedFacets[''] = nbHits\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) 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}\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\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 return (\r\n changeFilterSelectedSection(filter)}\r\n >\r\n \r\n {filter || messages[locale]['search_results.all'] || 'All results'}\r\n \r\n {ocurrenceCount[filter] || 0}\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) => SxStyleProp = (active) => ({\r\n pt: '8px',\r\n pb: '14px',\r\n px: '24px',\r\n cursor: '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})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '16.38px',\r\n whiteSpace: 'nowrap',\r\n color: `#${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","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 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 { 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 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","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","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","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","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","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","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","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","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","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","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","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/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/trashcan-icon.tsx","../src/components/icons/filter-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'\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 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\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\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.\r\n */\r\nexport const stripMarkdownForSnippet = (str: string): string => {\r\n if (!str) return ''\r\n \r\n let cleaned = str\r\n // Remove markdown images ![alt](url) - keep only alt text\r\n .replace(/!\\[([^\\]]*)\\]\\([^)]+\\)/g, '$1')\r\n // Remove markdown links [text](url) - keep only the text\r\n .replace(/\\[([^\\]]+)\\]\\([^)]+\\)/g, '$1')\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`)\r\n .replace(/`([^`]+)`/g, '$1')\r\n // Remove code blocks (```text```)\r\n .replace(/```[\\s\\S]*?```/g, '')\r\n // Remove horizontal rules (---, ***, ___)\r\n .replace(/^(\\*{3,}|-{3,}|_{3,})$/gm, '')\r\n // Remove blockquotes (>)\r\n .replace(/^>\\s+/gm, '')\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: #f6f8fa;\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: 1fr;\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 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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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: #ecebf3;\r\n}\r\n\r\n.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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","{\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}\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}\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}","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}\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}\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 whiteSpace: 'pre',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\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\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\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\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\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 // 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 ): 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 or doctype\r\n // filtering, so we always fetch a large slice once per (query, locale)\r\n // pair and paginate / doctype-filter client-side.\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 cachedHits = getCached(cacheKey)\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let allHits: any[]\r\n if (cachedHits) {\r\n allHits = cachedHits\r\n } else {\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 allHits = rawResults.map(transformHybridToAlgolia)\r\n setCached(cacheKey, allHits)\r\n }\r\n\r\n // Doctype filter is applied client-side because the upstream API\r\n // does not understand it. Facet counts are computed on `allHits`\r\n // (i.e. ignoring the doctype filter) so that the tabs keep showing\r\n // counts for the other doctypes.\r\n const filteredHits = filterHitsByDoctype(allHits, doctypes)\r\n const nbHits = filteredHits.length\r\n const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage))\r\n const start = page * hitsPerPage\r\n const pageHits = filteredHits.slice(start, start + hitsPerPage)\r\n\r\n const facets = extractFacetsFromHits(allHits)\r\n\r\n return {\r\n results: [\r\n {\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: facets.facets,\r\n facets_stats: {},\r\n exhaustiveFacetsCount: true,\r\n queryID: generateQueryID(),\r\n },\r\n ],\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) =>\r\n wanted.has(String(h.doctype || '').toLowerCase())\r\n )\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\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\r\n // docs//tracks// → //docs/tracks/\r\n // Special handling for tracks: only use the last segment\r\n if (parts[0] === 'docs' && parts.length > 3 && parts[2] === 'tracks') {\r\n const locale = parts[1]\r\n const slug = stripExt(parts[parts.length - 1])\r\n return `/${locale}/docs/tracks/${slug}`\r\n }\r\n\r\n // docs//tutorials// → //docs/tutorials/\r\n // Special handling for tutorials: only use the last segment\r\n if (parts[0] === 'docs' && parts.length > 3 && parts[2] === 'tutorials') {\r\n const locale = parts[1]\r\n const slug = stripExt(parts[parts.length - 1])\r\n return `/${locale}/docs/tutorials/${slug}`\r\n }\r\n\r\n // docs///...\r\n if (parts[0] === 'docs' && parts.length > 2) {\r\n return `/docs/${stripExt(parts.slice(2).join('/'))}`\r\n }\r\n\r\n // /// → //\r\n // Special handling for faq, known-issues, troubleshooting, announcements: only use the last segment\r\n const specialDoctypes = ['faq', 'known-issues', 'troubleshooting', 'announcements']\r\n if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1]) && specialDoctypes.includes(parts[0])) {\r\n const doctype = parts[0]\r\n const slug = stripExt(parts[parts.length - 1])\r\n return `/${doctype}/${slug}`\r\n }\r\n\r\n // //... (other doctypes - fallback)\r\n if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1])) {\r\n return `/${parts[0]}/${stripExt(parts.slice(2).join('/'))}`\r\n }\r\n\r\n return '/' + stripExt(parts.join('/'))\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction extractFacetsFromHits(\r\n hits: any[]\r\n): { facets: Record> } {\r\n const facets: Record> = {\r\n doctype: {},\r\n language: {},\r\n }\r\n\r\n hits.forEach((hit) => {\r\n const doctype = hit.doctype || 'Other'\r\n facets.doctype[doctype] = (facets.doctype[doctype] || 0) + 1\r\n\r\n const language = hit.language || 'en'\r\n facets.language[language] = (facets.language[language] || 0) + 1\r\n })\r\n\r\n return { facets }\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(config: SearchBackendConfig | AlgoliaConfig) {\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\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 return !dataElement ? (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results' }\r\n \r\n \r\n {ocurrenceCount['']}\r\n \r\n \r\n ) : (\r\n updateFilter(dataElement.id)}\r\n >\r\n \r\n \r\n \r\n {dataElement.title}\r\n \r\n \r\n \r\n {ocurrenceCount[dataElement.id] || 0}\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: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\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: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n fontSize: '12px',\r\n lineHeight: '16px',\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\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, 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 { searchClient, searchIndex, hitsPerPage } from 'utils/config/search-config'\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 [prevFilter, setPrevFilter] = useState('')\r\n const [searchState, setSearchState] = useState({})\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const page = filters !== prevFilter ? 1 : currentState.page || 1\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 ocurrenceCount[filterSelectedSection] === undefined\r\n ? ''\r\n : 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 facets = results?.facets as\r\n | Array<{\r\n name: string\r\n data: Record\r\n exhaustive?: boolean\r\n }>\r\n | undefined\r\n\r\n const doctypeFacet = facets?.find((facet) => facet.name === 'doctype')\r\n const nbHits = results?.nbHits ?? 0\r\n\r\n const formattedFacets: Record = {}\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\r\n formattedFacets[''] = nbHits\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) 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}\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\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 return (\r\n changeFilterSelectedSection(filter)}\r\n >\r\n \r\n {filter || messages[locale]['search_results.all'] || 'All results'}\r\n \r\n {ocurrenceCount[filter] || 0}\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) => SxStyleProp = (active) => ({\r\n pt: '8px',\r\n pb: '14px',\r\n px: '24px',\r\n cursor: '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})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '16.38px',\r\n whiteSpace: 'nowrap',\r\n color: `#${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","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 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 { 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 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","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","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","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","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","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","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","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","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","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","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","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/utils/config/search-config.ts b/src/utils/config/search-config.ts index 97d9558..7cadb5f 100644 --- a/src/utils/config/search-config.ts +++ b/src/utils/config/search-config.ts @@ -430,12 +430,29 @@ function buildUrlFromFilePath(filePath: string): string { return `/${locale}/docs/tracks/${slug}` } + // docs//tutorials// → //docs/tutorials/ + // Special handling for tutorials: only use the last segment + if (parts[0] === 'docs' && parts.length > 3 && parts[2] === 'tutorials') { + const locale = parts[1] + const slug = stripExt(parts[parts.length - 1]) + return `/${locale}/docs/tutorials/${slug}` + } + // docs///... if (parts[0] === 'docs' && parts.length > 2) { return `/docs/${stripExt(parts.slice(2).join('/'))}` } - // //... (announcements, faq, known-issues, troubleshooting, ...) + // /// → // + // Special handling for faq, known-issues, troubleshooting, announcements: only use the last segment + const specialDoctypes = ['faq', 'known-issues', 'troubleshooting', 'announcements'] + if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1]) && specialDoctypes.includes(parts[0])) { + const doctype = parts[0] + const slug = stripExt(parts[parts.length - 1]) + return `/${doctype}/${slug}` + } + + // //... (other doctypes - fallback) if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1])) { return `/${parts[0]}/${stripExt(parts.slice(2).join('/'))}` } From 98263dff1679d6769ac98ecef47b601496792294 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A1rbara=20Celi?= Date: Mon, 8 Jun 2026 16:12:26 -0300 Subject: [PATCH 11/23] fix: enhance URL building for special document types - Updated URL construction logic to handle multiple special document types (tracks, tutorials, faq, known-issues, troubleshooting, announcements) using a unified approach. - Simplified the URL pattern to return only the slug for these document types. - Removed redundant conditions and improved code clarity with updated comments. --- dist/index.mjs | 17 ++++------------- dist/index.mjs.map | 2 +- src/utils/config/search-config.ts | 28 +++++++--------------------- 3 files changed, 12 insertions(+), 35 deletions(-) diff --git a/dist/index.mjs b/dist/index.mjs index 4242567..21fffbc 100644 --- a/dist/index.mjs +++ b/dist/index.mjs @@ -10076,25 +10076,16 @@ function buildUrlFromFilePath(filePath) { if (parts.length === 0) return "/"; const stripExt = (s) => s.replace(/\.mdx?$/, ""); - if (parts[0] === "docs" && parts.length > 3 && parts[2] === "tracks") { + const specialDocsTypes = ["tracks", "tutorials", "faq", "known-issues", "troubleshooting", "announcements"]; + if (parts[0] === "docs" && parts.length > 3 && specialDocsTypes.includes(parts[2])) { const locale = parts[1]; + const doctype = parts[2]; const slug = stripExt(parts[parts.length - 1]); - return `/${locale}/docs/tracks/${slug}`; - } - if (parts[0] === "docs" && parts.length > 3 && parts[2] === "tutorials") { - const locale = parts[1]; - const slug = stripExt(parts[parts.length - 1]); - return `/${locale}/docs/tutorials/${slug}`; + return `/${locale}/docs/${doctype}/${slug}`; } if (parts[0] === "docs" && parts.length > 2) { return `/docs/${stripExt(parts.slice(2).join("/"))}`; } - const specialDoctypes = ["faq", "known-issues", "troubleshooting", "announcements"]; - if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1]) && specialDoctypes.includes(parts[0])) { - const doctype = parts[0]; - const slug = stripExt(parts[parts.length - 1]); - return `/${doctype}/${slug}`; - } if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1])) { return `/${parts[0]}/${stripExt(parts.slice(2).join("/"))}`; } diff --git a/dist/index.mjs.map b/dist/index.mjs.map index 356f9b1..c6be51d 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/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/trashcan-icon.tsx","../src/components/icons/filter-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'\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 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\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\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.\r\n */\r\nexport const stripMarkdownForSnippet = (str: string): string => {\r\n if (!str) return ''\r\n \r\n let cleaned = str\r\n // Remove markdown images ![alt](url) - keep only alt text\r\n .replace(/!\\[([^\\]]*)\\]\\([^)]+\\)/g, '$1')\r\n // Remove markdown links [text](url) - keep only the text\r\n .replace(/\\[([^\\]]+)\\]\\([^)]+\\)/g, '$1')\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`)\r\n .replace(/`([^`]+)`/g, '$1')\r\n // Remove code blocks (```text```)\r\n .replace(/```[\\s\\S]*?```/g, '')\r\n // Remove horizontal rules (---, ***, ___)\r\n .replace(/^(\\*{3,}|-{3,}|_{3,})$/gm, '')\r\n // Remove blockquotes (>)\r\n .replace(/^>\\s+/gm, '')\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: #f6f8fa;\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: 1fr;\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 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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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: #ecebf3;\r\n}\r\n\r\n.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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","{\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}\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}\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}","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}\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}\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 whiteSpace: 'pre',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\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\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\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\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\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 // 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 ): 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 or doctype\r\n // filtering, so we always fetch a large slice once per (query, locale)\r\n // pair and paginate / doctype-filter client-side.\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 cachedHits = getCached(cacheKey)\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let allHits: any[]\r\n if (cachedHits) {\r\n allHits = cachedHits\r\n } else {\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 allHits = rawResults.map(transformHybridToAlgolia)\r\n setCached(cacheKey, allHits)\r\n }\r\n\r\n // Doctype filter is applied client-side because the upstream API\r\n // does not understand it. Facet counts are computed on `allHits`\r\n // (i.e. ignoring the doctype filter) so that the tabs keep showing\r\n // counts for the other doctypes.\r\n const filteredHits = filterHitsByDoctype(allHits, doctypes)\r\n const nbHits = filteredHits.length\r\n const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage))\r\n const start = page * hitsPerPage\r\n const pageHits = filteredHits.slice(start, start + hitsPerPage)\r\n\r\n const facets = extractFacetsFromHits(allHits)\r\n\r\n return {\r\n results: [\r\n {\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: facets.facets,\r\n facets_stats: {},\r\n exhaustiveFacetsCount: true,\r\n queryID: generateQueryID(),\r\n },\r\n ],\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) =>\r\n wanted.has(String(h.doctype || '').toLowerCase())\r\n )\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\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\r\n // docs//tracks// → //docs/tracks/\r\n // Special handling for tracks: only use the last segment\r\n if (parts[0] === 'docs' && parts.length > 3 && parts[2] === 'tracks') {\r\n const locale = parts[1]\r\n const slug = stripExt(parts[parts.length - 1])\r\n return `/${locale}/docs/tracks/${slug}`\r\n }\r\n\r\n // docs//tutorials// → //docs/tutorials/\r\n // Special handling for tutorials: only use the last segment\r\n if (parts[0] === 'docs' && parts.length > 3 && parts[2] === 'tutorials') {\r\n const locale = parts[1]\r\n const slug = stripExt(parts[parts.length - 1])\r\n return `/${locale}/docs/tutorials/${slug}`\r\n }\r\n\r\n // docs///...\r\n if (parts[0] === 'docs' && parts.length > 2) {\r\n return `/docs/${stripExt(parts.slice(2).join('/'))}`\r\n }\r\n\r\n // /// → //\r\n // Special handling for faq, known-issues, troubleshooting, announcements: only use the last segment\r\n const specialDoctypes = ['faq', 'known-issues', 'troubleshooting', 'announcements']\r\n if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1]) && specialDoctypes.includes(parts[0])) {\r\n const doctype = parts[0]\r\n const slug = stripExt(parts[parts.length - 1])\r\n return `/${doctype}/${slug}`\r\n }\r\n\r\n // //... (other doctypes - fallback)\r\n if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1])) {\r\n return `/${parts[0]}/${stripExt(parts.slice(2).join('/'))}`\r\n }\r\n\r\n return '/' + stripExt(parts.join('/'))\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction extractFacetsFromHits(\r\n hits: any[]\r\n): { facets: Record> } {\r\n const facets: Record> = {\r\n doctype: {},\r\n language: {},\r\n }\r\n\r\n hits.forEach((hit) => {\r\n const doctype = hit.doctype || 'Other'\r\n facets.doctype[doctype] = (facets.doctype[doctype] || 0) + 1\r\n\r\n const language = hit.language || 'en'\r\n facets.language[language] = (facets.language[language] || 0) + 1\r\n })\r\n\r\n return { facets }\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(config: SearchBackendConfig | AlgoliaConfig) {\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\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 return !dataElement ? (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results' }\r\n \r\n \r\n {ocurrenceCount['']}\r\n \r\n \r\n ) : (\r\n updateFilter(dataElement.id)}\r\n >\r\n \r\n \r\n \r\n {dataElement.title}\r\n \r\n \r\n \r\n {ocurrenceCount[dataElement.id] || 0}\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: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\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: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n fontSize: '12px',\r\n lineHeight: '16px',\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\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, 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 { searchClient, searchIndex, hitsPerPage } from 'utils/config/search-config'\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 [prevFilter, setPrevFilter] = useState('')\r\n const [searchState, setSearchState] = useState({})\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const page = filters !== prevFilter ? 1 : currentState.page || 1\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 ocurrenceCount[filterSelectedSection] === undefined\r\n ? ''\r\n : 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 facets = results?.facets as\r\n | Array<{\r\n name: string\r\n data: Record\r\n exhaustive?: boolean\r\n }>\r\n | undefined\r\n\r\n const doctypeFacet = facets?.find((facet) => facet.name === 'doctype')\r\n const nbHits = results?.nbHits ?? 0\r\n\r\n const formattedFacets: Record = {}\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\r\n formattedFacets[''] = nbHits\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) 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}\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\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 return (\r\n changeFilterSelectedSection(filter)}\r\n >\r\n \r\n {filter || messages[locale]['search_results.all'] || 'All results'}\r\n \r\n {ocurrenceCount[filter] || 0}\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) => SxStyleProp = (active) => ({\r\n pt: '8px',\r\n pb: '14px',\r\n px: '24px',\r\n cursor: '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})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '16.38px',\r\n whiteSpace: 'nowrap',\r\n color: `#${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","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 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 { 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 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","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","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","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","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","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","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","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","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","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","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","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/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/trashcan-icon.tsx","../src/components/icons/filter-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'\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 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\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\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.\r\n */\r\nexport const stripMarkdownForSnippet = (str: string): string => {\r\n if (!str) return ''\r\n \r\n let cleaned = str\r\n // Remove markdown images ![alt](url) - keep only alt text\r\n .replace(/!\\[([^\\]]*)\\]\\([^)]+\\)/g, '$1')\r\n // Remove markdown links [text](url) - keep only the text\r\n .replace(/\\[([^\\]]+)\\]\\([^)]+\\)/g, '$1')\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`)\r\n .replace(/`([^`]+)`/g, '$1')\r\n // Remove code blocks (```text```)\r\n .replace(/```[\\s\\S]*?```/g, '')\r\n // Remove horizontal rules (---, ***, ___)\r\n .replace(/^(\\*{3,}|-{3,}|_{3,})$/gm, '')\r\n // Remove blockquotes (>)\r\n .replace(/^>\\s+/gm, '')\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: #f6f8fa;\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: 1fr;\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 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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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: #ecebf3;\r\n}\r\n\r\n.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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","{\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}\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}\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}","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}\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}\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 whiteSpace: 'pre',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\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\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\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\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\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 // 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 ): 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 or doctype\r\n // filtering, so we always fetch a large slice once per (query, locale)\r\n // pair and paginate / doctype-filter client-side.\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 cachedHits = getCached(cacheKey)\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let allHits: any[]\r\n if (cachedHits) {\r\n allHits = cachedHits\r\n } else {\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 allHits = rawResults.map(transformHybridToAlgolia)\r\n setCached(cacheKey, allHits)\r\n }\r\n\r\n // Doctype filter is applied client-side because the upstream API\r\n // does not understand it. Facet counts are computed on `allHits`\r\n // (i.e. ignoring the doctype filter) so that the tabs keep showing\r\n // counts for the other doctypes.\r\n const filteredHits = filterHitsByDoctype(allHits, doctypes)\r\n const nbHits = filteredHits.length\r\n const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage))\r\n const start = page * hitsPerPage\r\n const pageHits = filteredHits.slice(start, start + hitsPerPage)\r\n\r\n const facets = extractFacetsFromHits(allHits)\r\n\r\n return {\r\n results: [\r\n {\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: facets.facets,\r\n facets_stats: {},\r\n exhaustiveFacetsCount: true,\r\n queryID: generateQueryID(),\r\n },\r\n ],\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) =>\r\n wanted.has(String(h.doctype || '').toLowerCase())\r\n )\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\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\r\n // docs//// → //docs//\r\n // Special handling for tracks, tutorials, faq, known-issues, troubleshooting, announcements\r\n // These only use the last segment of the path\r\n const specialDocsTypes = ['tracks', 'tutorials', 'faq', 'known-issues', 'troubleshooting', 'announcements']\r\n if (parts[0] === 'docs' && parts.length > 3 && specialDocsTypes.includes(parts[2])) {\r\n const locale = parts[1]\r\n const doctype = parts[2]\r\n const slug = stripExt(parts[parts.length - 1])\r\n return `/${locale}/docs/${doctype}/${slug}`\r\n }\r\n\r\n // docs///...\r\n if (parts[0] === 'docs' && parts.length > 2) {\r\n return `/docs/${stripExt(parts.slice(2).join('/'))}`\r\n }\r\n\r\n // //... (other doctypes - fallback)\r\n if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1])) {\r\n return `/${parts[0]}/${stripExt(parts.slice(2).join('/'))}`\r\n }\r\n\r\n return '/' + stripExt(parts.join('/'))\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction extractFacetsFromHits(\r\n hits: any[]\r\n): { facets: Record> } {\r\n const facets: Record> = {\r\n doctype: {},\r\n language: {},\r\n }\r\n\r\n hits.forEach((hit) => {\r\n const doctype = hit.doctype || 'Other'\r\n facets.doctype[doctype] = (facets.doctype[doctype] || 0) + 1\r\n\r\n const language = hit.language || 'en'\r\n facets.language[language] = (facets.language[language] || 0) + 1\r\n })\r\n\r\n return { facets }\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(config: SearchBackendConfig | AlgoliaConfig) {\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\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 return !dataElement ? (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results' }\r\n \r\n \r\n {ocurrenceCount['']}\r\n \r\n \r\n ) : (\r\n updateFilter(dataElement.id)}\r\n >\r\n \r\n \r\n \r\n {dataElement.title}\r\n \r\n \r\n \r\n {ocurrenceCount[dataElement.id] || 0}\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: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\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: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n fontSize: '12px',\r\n lineHeight: '16px',\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\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, 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 { searchClient, searchIndex, hitsPerPage } from 'utils/config/search-config'\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 [prevFilter, setPrevFilter] = useState('')\r\n const [searchState, setSearchState] = useState({})\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const page = filters !== prevFilter ? 1 : currentState.page || 1\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 ocurrenceCount[filterSelectedSection] === undefined\r\n ? ''\r\n : 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 facets = results?.facets as\r\n | Array<{\r\n name: string\r\n data: Record\r\n exhaustive?: boolean\r\n }>\r\n | undefined\r\n\r\n const doctypeFacet = facets?.find((facet) => facet.name === 'doctype')\r\n const nbHits = results?.nbHits ?? 0\r\n\r\n const formattedFacets: Record = {}\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\r\n formattedFacets[''] = nbHits\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) 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}\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\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 return (\r\n changeFilterSelectedSection(filter)}\r\n >\r\n \r\n {filter || messages[locale]['search_results.all'] || 'All results'}\r\n \r\n {ocurrenceCount[filter] || 0}\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) => SxStyleProp = (active) => ({\r\n pt: '8px',\r\n pb: '14px',\r\n px: '24px',\r\n cursor: '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})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '16.38px',\r\n whiteSpace: 'nowrap',\r\n color: `#${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","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 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 { 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 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","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","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","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","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","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","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","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","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","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","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","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/utils/config/search-config.ts b/src/utils/config/search-config.ts index 7cadb5f..aba734c 100644 --- a/src/utils/config/search-config.ts +++ b/src/utils/config/search-config.ts @@ -422,20 +422,15 @@ function buildUrlFromFilePath(filePath: string): string { const stripExt = (s: string) => s.replace(/\.mdx?$/, '') - // docs//tracks// → //docs/tracks/ - // Special handling for tracks: only use the last segment - if (parts[0] === 'docs' && parts.length > 3 && parts[2] === 'tracks') { + // docs//// → //docs// + // Special handling for tracks, tutorials, faq, known-issues, troubleshooting, announcements + // These only use the last segment of the path + const specialDocsTypes = ['tracks', 'tutorials', 'faq', 'known-issues', 'troubleshooting', 'announcements'] + if (parts[0] === 'docs' && parts.length > 3 && specialDocsTypes.includes(parts[2])) { const locale = parts[1] + const doctype = parts[2] const slug = stripExt(parts[parts.length - 1]) - return `/${locale}/docs/tracks/${slug}` - } - - // docs//tutorials// → //docs/tutorials/ - // Special handling for tutorials: only use the last segment - if (parts[0] === 'docs' && parts.length > 3 && parts[2] === 'tutorials') { - const locale = parts[1] - const slug = stripExt(parts[parts.length - 1]) - return `/${locale}/docs/tutorials/${slug}` + return `/${locale}/docs/${doctype}/${slug}` } // docs///... @@ -443,15 +438,6 @@ function buildUrlFromFilePath(filePath: string): string { return `/docs/${stripExt(parts.slice(2).join('/'))}` } - // /// → // - // Special handling for faq, known-issues, troubleshooting, announcements: only use the last segment - const specialDoctypes = ['faq', 'known-issues', 'troubleshooting', 'announcements'] - if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1]) && specialDoctypes.includes(parts[0])) { - const doctype = parts[0] - const slug = stripExt(parts[parts.length - 1]) - return `/${doctype}/${slug}` - } - // //... (other doctypes - fallback) if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1])) { return `/${parts[0]}/${stripExt(parts.slice(2).join('/'))}` From f560d7b2707761d84a3a776b1f4142079395f59b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A1rbara=20Celi?= Date: Mon, 8 Jun 2026 16:29:34 -0300 Subject: [PATCH 12/23] fix: refine URL building for document types in search configuration - Updated URL construction logic to differentiate between document types (tracks, tutorials, faq, known-issues, troubleshooting, announcements). - Implemented specific handling for tracks and tutorials to retain "docs" in the URL, while removing it for other types. - Enhanced comments for clarity on the URL patterns and their respective handling. --- dist/index.mjs | 11 +++++++++-- dist/index.mjs.map | 2 +- src/utils/config/search-config.ts | 23 ++++++++++++++++++----- 3 files changed, 28 insertions(+), 8 deletions(-) diff --git a/dist/index.mjs b/dist/index.mjs index 21fffbc..f4c00f0 100644 --- a/dist/index.mjs +++ b/dist/index.mjs @@ -10076,13 +10076,20 @@ function buildUrlFromFilePath(filePath) { if (parts.length === 0) return "/"; const stripExt = (s) => s.replace(/\.mdx?$/, ""); - const specialDocsTypes = ["tracks", "tutorials", "faq", "known-issues", "troubleshooting", "announcements"]; - if (parts[0] === "docs" && parts.length > 3 && specialDocsTypes.includes(parts[2])) { + const docsTypes = ["tracks", "tutorials"]; + if (parts[0] === "docs" && parts.length > 3 && docsTypes.includes(parts[2])) { const locale = parts[1]; const doctype = parts[2]; const slug = stripExt(parts[parts.length - 1]); return `/${locale}/docs/${doctype}/${slug}`; } + const noDocsTypes = ["faq", "troubleshooting", "announcements", "known-issues"]; + if (parts[0] === "docs" && parts.length > 3 && noDocsTypes.includes(parts[2])) { + const locale = parts[1]; + const doctype = parts[2]; + const slug = stripExt(parts[parts.length - 1]); + return `/${locale}/${doctype}/${slug}`; + } if (parts[0] === "docs" && parts.length > 2) { return `/docs/${stripExt(parts.slice(2).join("/"))}`; } diff --git a/dist/index.mjs.map b/dist/index.mjs.map index c6be51d..620748c 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/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/trashcan-icon.tsx","../src/components/icons/filter-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'\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 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\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\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.\r\n */\r\nexport const stripMarkdownForSnippet = (str: string): string => {\r\n if (!str) return ''\r\n \r\n let cleaned = str\r\n // Remove markdown images ![alt](url) - keep only alt text\r\n .replace(/!\\[([^\\]]*)\\]\\([^)]+\\)/g, '$1')\r\n // Remove markdown links [text](url) - keep only the text\r\n .replace(/\\[([^\\]]+)\\]\\([^)]+\\)/g, '$1')\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`)\r\n .replace(/`([^`]+)`/g, '$1')\r\n // Remove code blocks (```text```)\r\n .replace(/```[\\s\\S]*?```/g, '')\r\n // Remove horizontal rules (---, ***, ___)\r\n .replace(/^(\\*{3,}|-{3,}|_{3,})$/gm, '')\r\n // Remove blockquotes (>)\r\n .replace(/^>\\s+/gm, '')\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: #f6f8fa;\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: 1fr;\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 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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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: #ecebf3;\r\n}\r\n\r\n.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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","{\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}\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}\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}","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}\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}\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 whiteSpace: 'pre',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\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\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\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\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\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 // 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 ): 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 or doctype\r\n // filtering, so we always fetch a large slice once per (query, locale)\r\n // pair and paginate / doctype-filter client-side.\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 cachedHits = getCached(cacheKey)\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let allHits: any[]\r\n if (cachedHits) {\r\n allHits = cachedHits\r\n } else {\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 allHits = rawResults.map(transformHybridToAlgolia)\r\n setCached(cacheKey, allHits)\r\n }\r\n\r\n // Doctype filter is applied client-side because the upstream API\r\n // does not understand it. Facet counts are computed on `allHits`\r\n // (i.e. ignoring the doctype filter) so that the tabs keep showing\r\n // counts for the other doctypes.\r\n const filteredHits = filterHitsByDoctype(allHits, doctypes)\r\n const nbHits = filteredHits.length\r\n const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage))\r\n const start = page * hitsPerPage\r\n const pageHits = filteredHits.slice(start, start + hitsPerPage)\r\n\r\n const facets = extractFacetsFromHits(allHits)\r\n\r\n return {\r\n results: [\r\n {\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: facets.facets,\r\n facets_stats: {},\r\n exhaustiveFacetsCount: true,\r\n queryID: generateQueryID(),\r\n },\r\n ],\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) =>\r\n wanted.has(String(h.doctype || '').toLowerCase())\r\n )\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\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\r\n // docs//// → //docs//\r\n // Special handling for tracks, tutorials, faq, known-issues, troubleshooting, announcements\r\n // These only use the last segment of the path\r\n const specialDocsTypes = ['tracks', 'tutorials', 'faq', 'known-issues', 'troubleshooting', 'announcements']\r\n if (parts[0] === 'docs' && parts.length > 3 && specialDocsTypes.includes(parts[2])) {\r\n const locale = parts[1]\r\n const doctype = parts[2]\r\n const slug = stripExt(parts[parts.length - 1])\r\n return `/${locale}/docs/${doctype}/${slug}`\r\n }\r\n\r\n // docs///...\r\n if (parts[0] === 'docs' && parts.length > 2) {\r\n return `/docs/${stripExt(parts.slice(2).join('/'))}`\r\n }\r\n\r\n // //... (other doctypes - fallback)\r\n if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1])) {\r\n return `/${parts[0]}/${stripExt(parts.slice(2).join('/'))}`\r\n }\r\n\r\n return '/' + stripExt(parts.join('/'))\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction extractFacetsFromHits(\r\n hits: any[]\r\n): { facets: Record> } {\r\n const facets: Record> = {\r\n doctype: {},\r\n language: {},\r\n }\r\n\r\n hits.forEach((hit) => {\r\n const doctype = hit.doctype || 'Other'\r\n facets.doctype[doctype] = (facets.doctype[doctype] || 0) + 1\r\n\r\n const language = hit.language || 'en'\r\n facets.language[language] = (facets.language[language] || 0) + 1\r\n })\r\n\r\n return { facets }\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(config: SearchBackendConfig | AlgoliaConfig) {\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\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 return !dataElement ? (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results' }\r\n \r\n \r\n {ocurrenceCount['']}\r\n \r\n \r\n ) : (\r\n updateFilter(dataElement.id)}\r\n >\r\n \r\n \r\n \r\n {dataElement.title}\r\n \r\n \r\n \r\n {ocurrenceCount[dataElement.id] || 0}\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: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\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: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n fontSize: '12px',\r\n lineHeight: '16px',\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\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, 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 { searchClient, searchIndex, hitsPerPage } from 'utils/config/search-config'\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 [prevFilter, setPrevFilter] = useState('')\r\n const [searchState, setSearchState] = useState({})\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const page = filters !== prevFilter ? 1 : currentState.page || 1\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 ocurrenceCount[filterSelectedSection] === undefined\r\n ? ''\r\n : 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 facets = results?.facets as\r\n | Array<{\r\n name: string\r\n data: Record\r\n exhaustive?: boolean\r\n }>\r\n | undefined\r\n\r\n const doctypeFacet = facets?.find((facet) => facet.name === 'doctype')\r\n const nbHits = results?.nbHits ?? 0\r\n\r\n const formattedFacets: Record = {}\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\r\n formattedFacets[''] = nbHits\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) 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}\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\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 return (\r\n changeFilterSelectedSection(filter)}\r\n >\r\n \r\n {filter || messages[locale]['search_results.all'] || 'All results'}\r\n \r\n {ocurrenceCount[filter] || 0}\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) => SxStyleProp = (active) => ({\r\n pt: '8px',\r\n pb: '14px',\r\n px: '24px',\r\n cursor: '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})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '16.38px',\r\n whiteSpace: 'nowrap',\r\n color: `#${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","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 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 { 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 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","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","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","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","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","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","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","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","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","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","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","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/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/trashcan-icon.tsx","../src/components/icons/filter-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'\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 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\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\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.\r\n */\r\nexport const stripMarkdownForSnippet = (str: string): string => {\r\n if (!str) return ''\r\n \r\n let cleaned = str\r\n // Remove markdown images ![alt](url) - keep only alt text\r\n .replace(/!\\[([^\\]]*)\\]\\([^)]+\\)/g, '$1')\r\n // Remove markdown links [text](url) - keep only the text\r\n .replace(/\\[([^\\]]+)\\]\\([^)]+\\)/g, '$1')\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`)\r\n .replace(/`([^`]+)`/g, '$1')\r\n // Remove code blocks (```text```)\r\n .replace(/```[\\s\\S]*?```/g, '')\r\n // Remove horizontal rules (---, ***, ___)\r\n .replace(/^(\\*{3,}|-{3,}|_{3,})$/gm, '')\r\n // Remove blockquotes (>)\r\n .replace(/^>\\s+/gm, '')\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: #f6f8fa;\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: 1fr;\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 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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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: #ecebf3;\r\n}\r\n\r\n.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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","{\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}\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}\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}","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}\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}\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 whiteSpace: 'pre',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\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\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\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\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\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 // 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 ): 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 or doctype\r\n // filtering, so we always fetch a large slice once per (query, locale)\r\n // pair and paginate / doctype-filter client-side.\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 cachedHits = getCached(cacheKey)\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let allHits: any[]\r\n if (cachedHits) {\r\n allHits = cachedHits\r\n } else {\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 allHits = rawResults.map(transformHybridToAlgolia)\r\n setCached(cacheKey, allHits)\r\n }\r\n\r\n // Doctype filter is applied client-side because the upstream API\r\n // does not understand it. Facet counts are computed on `allHits`\r\n // (i.e. ignoring the doctype filter) so that the tabs keep showing\r\n // counts for the other doctypes.\r\n const filteredHits = filterHitsByDoctype(allHits, doctypes)\r\n const nbHits = filteredHits.length\r\n const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage))\r\n const start = page * hitsPerPage\r\n const pageHits = filteredHits.slice(start, start + hitsPerPage)\r\n\r\n const facets = extractFacetsFromHits(allHits)\r\n\r\n return {\r\n results: [\r\n {\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: facets.facets,\r\n facets_stats: {},\r\n exhaustiveFacetsCount: true,\r\n queryID: generateQueryID(),\r\n },\r\n ],\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) =>\r\n wanted.has(String(h.doctype || '').toLowerCase())\r\n )\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\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\r\n // docs//tracks// → //docs/tracks/\r\n // docs//tutorials// → //docs/tutorials/\r\n // Special handling for tracks and tutorials: keep \"docs\" in URL, use only last segment\r\n const docsTypes = ['tracks', 'tutorials']\r\n if (parts[0] === 'docs' && parts.length > 3 && docsTypes.includes(parts[2])) {\r\n const locale = parts[1]\r\n const doctype = parts[2]\r\n const slug = stripExt(parts[parts.length - 1])\r\n return `/${locale}/docs/${doctype}/${slug}`\r\n }\r\n\r\n // docs//faq// → //faq/\r\n // docs//troubleshooting// → //troubleshooting/\r\n // docs//announcements// → //announcements/\r\n // docs//known-issues// → //known-issues/\r\n // Special handling: NO \"docs\" in URL, use only last segment\r\n const noDocsTypes = ['faq', 'troubleshooting', 'announcements', 'known-issues']\r\n if (parts[0] === 'docs' && parts.length > 3 && noDocsTypes.includes(parts[2])) {\r\n const locale = parts[1]\r\n const doctype = parts[2]\r\n const slug = stripExt(parts[parts.length - 1])\r\n return `/${locale}/${doctype}/${slug}`\r\n }\r\n\r\n // docs///...\r\n if (parts[0] === 'docs' && parts.length > 2) {\r\n return `/docs/${stripExt(parts.slice(2).join('/'))}`\r\n }\r\n\r\n // //... (other doctypes - fallback)\r\n if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1])) {\r\n return `/${parts[0]}/${stripExt(parts.slice(2).join('/'))}`\r\n }\r\n\r\n return '/' + stripExt(parts.join('/'))\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction extractFacetsFromHits(\r\n hits: any[]\r\n): { facets: Record> } {\r\n const facets: Record> = {\r\n doctype: {},\r\n language: {},\r\n }\r\n\r\n hits.forEach((hit) => {\r\n const doctype = hit.doctype || 'Other'\r\n facets.doctype[doctype] = (facets.doctype[doctype] || 0) + 1\r\n\r\n const language = hit.language || 'en'\r\n facets.language[language] = (facets.language[language] || 0) + 1\r\n })\r\n\r\n return { facets }\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(config: SearchBackendConfig | AlgoliaConfig) {\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\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 return !dataElement ? (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results' }\r\n \r\n \r\n {ocurrenceCount['']}\r\n \r\n \r\n ) : (\r\n updateFilter(dataElement.id)}\r\n >\r\n \r\n \r\n \r\n {dataElement.title}\r\n \r\n \r\n \r\n {ocurrenceCount[dataElement.id] || 0}\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: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\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: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n fontSize: '12px',\r\n lineHeight: '16px',\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\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, 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 { searchClient, searchIndex, hitsPerPage } from 'utils/config/search-config'\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 [prevFilter, setPrevFilter] = useState('')\r\n const [searchState, setSearchState] = useState({})\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const page = filters !== prevFilter ? 1 : currentState.page || 1\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 ocurrenceCount[filterSelectedSection] === undefined\r\n ? ''\r\n : 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 facets = results?.facets as\r\n | Array<{\r\n name: string\r\n data: Record\r\n exhaustive?: boolean\r\n }>\r\n | undefined\r\n\r\n const doctypeFacet = facets?.find((facet) => facet.name === 'doctype')\r\n const nbHits = results?.nbHits ?? 0\r\n\r\n const formattedFacets: Record = {}\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\r\n formattedFacets[''] = nbHits\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) 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}\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\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 return (\r\n changeFilterSelectedSection(filter)}\r\n >\r\n \r\n {filter || messages[locale]['search_results.all'] || 'All results'}\r\n \r\n {ocurrenceCount[filter] || 0}\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) => SxStyleProp = (active) => ({\r\n pt: '8px',\r\n pb: '14px',\r\n px: '24px',\r\n cursor: '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})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '16.38px',\r\n whiteSpace: 'nowrap',\r\n color: `#${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","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 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 { 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 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","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","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","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","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","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","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","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","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","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","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","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/utils/config/search-config.ts b/src/utils/config/search-config.ts index aba734c..8b3a26b 100644 --- a/src/utils/config/search-config.ts +++ b/src/utils/config/search-config.ts @@ -422,17 +422,30 @@ function buildUrlFromFilePath(filePath: string): string { const stripExt = (s: string) => s.replace(/\.mdx?$/, '') - // docs//// → //docs// - // Special handling for tracks, tutorials, faq, known-issues, troubleshooting, announcements - // These only use the last segment of the path - const specialDocsTypes = ['tracks', 'tutorials', 'faq', 'known-issues', 'troubleshooting', 'announcements'] - if (parts[0] === 'docs' && parts.length > 3 && specialDocsTypes.includes(parts[2])) { + // docs//tracks// → //docs/tracks/ + // docs//tutorials// → //docs/tutorials/ + // Special handling for tracks and tutorials: keep "docs" in URL, use only last segment + const docsTypes = ['tracks', 'tutorials'] + if (parts[0] === 'docs' && parts.length > 3 && docsTypes.includes(parts[2])) { const locale = parts[1] const doctype = parts[2] const slug = stripExt(parts[parts.length - 1]) return `/${locale}/docs/${doctype}/${slug}` } + // docs//faq// → //faq/ + // docs//troubleshooting// → //troubleshooting/ + // docs//announcements// → //announcements/ + // docs//known-issues// → //known-issues/ + // Special handling: NO "docs" in URL, use only last segment + const noDocsTypes = ['faq', 'troubleshooting', 'announcements', 'known-issues'] + if (parts[0] === 'docs' && parts.length > 3 && noDocsTypes.includes(parts[2])) { + const locale = parts[1] + const doctype = parts[2] + const slug = stripExt(parts[parts.length - 1]) + return `/${locale}/${doctype}/${slug}` + } + // docs///... if (parts[0] === 'docs' && parts.length > 2) { return `/docs/${stripExt(parts.slice(2).join('/'))}` From e45bd9052113473bb85d54fdffe0aaff72bcd737 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A1rbara=20Celi?= Date: Mon, 8 Jun 2026 16:53:29 -0300 Subject: [PATCH 13/23] fix: refine URL building for special document types in search configuration - Added specific handling for 'faq', 'troubleshooting', 'announcements', and 'known-issues' document types to return only the slug in the URL. - Enhanced comments to clarify the URL patterns and their handling logic. - Ensured consistent URL construction for localized paths. --- dist/index.mjs | 7 +++++++ dist/index.mjs.map | 2 +- src/utils/config/search-config.ts | 13 +++++++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/dist/index.mjs b/dist/index.mjs index f4c00f0..28997f8 100644 --- a/dist/index.mjs +++ b/dist/index.mjs @@ -10093,6 +10093,13 @@ function buildUrlFromFilePath(filePath) { if (parts[0] === "docs" && parts.length > 2) { return `/docs/${stripExt(parts.slice(2).join("/"))}`; } + const rootNoDocsTypes = ["faq", "troubleshooting", "announcements", "known-issues"]; + if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1]) && rootNoDocsTypes.includes(parts[0])) { + const locale = parts[1]; + const doctype = parts[0]; + const slug = stripExt(parts[parts.length - 1]); + return `/${locale}/${doctype}/${slug}`; + } if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1])) { return `/${parts[0]}/${stripExt(parts.slice(2).join("/"))}`; } diff --git a/dist/index.mjs.map b/dist/index.mjs.map index 620748c..e447180 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/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/trashcan-icon.tsx","../src/components/icons/filter-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'\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 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\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\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.\r\n */\r\nexport const stripMarkdownForSnippet = (str: string): string => {\r\n if (!str) return ''\r\n \r\n let cleaned = str\r\n // Remove markdown images ![alt](url) - keep only alt text\r\n .replace(/!\\[([^\\]]*)\\]\\([^)]+\\)/g, '$1')\r\n // Remove markdown links [text](url) - keep only the text\r\n .replace(/\\[([^\\]]+)\\]\\([^)]+\\)/g, '$1')\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`)\r\n .replace(/`([^`]+)`/g, '$1')\r\n // Remove code blocks (```text```)\r\n .replace(/```[\\s\\S]*?```/g, '')\r\n // Remove horizontal rules (---, ***, ___)\r\n .replace(/^(\\*{3,}|-{3,}|_{3,})$/gm, '')\r\n // Remove blockquotes (>)\r\n .replace(/^>\\s+/gm, '')\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: #f6f8fa;\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: 1fr;\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 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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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: #ecebf3;\r\n}\r\n\r\n.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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","{\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}\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}\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}","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}\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}\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 whiteSpace: 'pre',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\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\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\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\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\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 // 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 ): 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 or doctype\r\n // filtering, so we always fetch a large slice once per (query, locale)\r\n // pair and paginate / doctype-filter client-side.\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 cachedHits = getCached(cacheKey)\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let allHits: any[]\r\n if (cachedHits) {\r\n allHits = cachedHits\r\n } else {\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 allHits = rawResults.map(transformHybridToAlgolia)\r\n setCached(cacheKey, allHits)\r\n }\r\n\r\n // Doctype filter is applied client-side because the upstream API\r\n // does not understand it. Facet counts are computed on `allHits`\r\n // (i.e. ignoring the doctype filter) so that the tabs keep showing\r\n // counts for the other doctypes.\r\n const filteredHits = filterHitsByDoctype(allHits, doctypes)\r\n const nbHits = filteredHits.length\r\n const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage))\r\n const start = page * hitsPerPage\r\n const pageHits = filteredHits.slice(start, start + hitsPerPage)\r\n\r\n const facets = extractFacetsFromHits(allHits)\r\n\r\n return {\r\n results: [\r\n {\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: facets.facets,\r\n facets_stats: {},\r\n exhaustiveFacetsCount: true,\r\n queryID: generateQueryID(),\r\n },\r\n ],\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) =>\r\n wanted.has(String(h.doctype || '').toLowerCase())\r\n )\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\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\r\n // docs//tracks// → //docs/tracks/\r\n // docs//tutorials// → //docs/tutorials/\r\n // Special handling for tracks and tutorials: keep \"docs\" in URL, use only last segment\r\n const docsTypes = ['tracks', 'tutorials']\r\n if (parts[0] === 'docs' && parts.length > 3 && docsTypes.includes(parts[2])) {\r\n const locale = parts[1]\r\n const doctype = parts[2]\r\n const slug = stripExt(parts[parts.length - 1])\r\n return `/${locale}/docs/${doctype}/${slug}`\r\n }\r\n\r\n // docs//faq// → //faq/\r\n // docs//troubleshooting// → //troubleshooting/\r\n // docs//announcements// → //announcements/\r\n // docs//known-issues// → //known-issues/\r\n // Special handling: NO \"docs\" in URL, use only last segment\r\n const noDocsTypes = ['faq', 'troubleshooting', 'announcements', 'known-issues']\r\n if (parts[0] === 'docs' && parts.length > 3 && noDocsTypes.includes(parts[2])) {\r\n const locale = parts[1]\r\n const doctype = parts[2]\r\n const slug = stripExt(parts[parts.length - 1])\r\n return `/${locale}/${doctype}/${slug}`\r\n }\r\n\r\n // docs///...\r\n if (parts[0] === 'docs' && parts.length > 2) {\r\n return `/docs/${stripExt(parts.slice(2).join('/'))}`\r\n }\r\n\r\n // //... (other doctypes - fallback)\r\n if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1])) {\r\n return `/${parts[0]}/${stripExt(parts.slice(2).join('/'))}`\r\n }\r\n\r\n return '/' + stripExt(parts.join('/'))\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction extractFacetsFromHits(\r\n hits: any[]\r\n): { facets: Record> } {\r\n const facets: Record> = {\r\n doctype: {},\r\n language: {},\r\n }\r\n\r\n hits.forEach((hit) => {\r\n const doctype = hit.doctype || 'Other'\r\n facets.doctype[doctype] = (facets.doctype[doctype] || 0) + 1\r\n\r\n const language = hit.language || 'en'\r\n facets.language[language] = (facets.language[language] || 0) + 1\r\n })\r\n\r\n return { facets }\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(config: SearchBackendConfig | AlgoliaConfig) {\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\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 return !dataElement ? (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results' }\r\n \r\n \r\n {ocurrenceCount['']}\r\n \r\n \r\n ) : (\r\n updateFilter(dataElement.id)}\r\n >\r\n \r\n \r\n \r\n {dataElement.title}\r\n \r\n \r\n \r\n {ocurrenceCount[dataElement.id] || 0}\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: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\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: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n fontSize: '12px',\r\n lineHeight: '16px',\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\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, 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 { searchClient, searchIndex, hitsPerPage } from 'utils/config/search-config'\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 [prevFilter, setPrevFilter] = useState('')\r\n const [searchState, setSearchState] = useState({})\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const page = filters !== prevFilter ? 1 : currentState.page || 1\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 ocurrenceCount[filterSelectedSection] === undefined\r\n ? ''\r\n : 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 facets = results?.facets as\r\n | Array<{\r\n name: string\r\n data: Record\r\n exhaustive?: boolean\r\n }>\r\n | undefined\r\n\r\n const doctypeFacet = facets?.find((facet) => facet.name === 'doctype')\r\n const nbHits = results?.nbHits ?? 0\r\n\r\n const formattedFacets: Record = {}\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\r\n formattedFacets[''] = nbHits\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) 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}\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\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 return (\r\n changeFilterSelectedSection(filter)}\r\n >\r\n \r\n {filter || messages[locale]['search_results.all'] || 'All results'}\r\n \r\n {ocurrenceCount[filter] || 0}\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) => SxStyleProp = (active) => ({\r\n pt: '8px',\r\n pb: '14px',\r\n px: '24px',\r\n cursor: '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})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '16.38px',\r\n whiteSpace: 'nowrap',\r\n color: `#${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","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 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 { 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 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","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","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","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","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","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","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","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","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","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","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","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/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/trashcan-icon.tsx","../src/components/icons/filter-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'\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 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\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\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.\r\n */\r\nexport const stripMarkdownForSnippet = (str: string): string => {\r\n if (!str) return ''\r\n \r\n let cleaned = str\r\n // Remove markdown images ![alt](url) - keep only alt text\r\n .replace(/!\\[([^\\]]*)\\]\\([^)]+\\)/g, '$1')\r\n // Remove markdown links [text](url) - keep only the text\r\n .replace(/\\[([^\\]]+)\\]\\([^)]+\\)/g, '$1')\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`)\r\n .replace(/`([^`]+)`/g, '$1')\r\n // Remove code blocks (```text```)\r\n .replace(/```[\\s\\S]*?```/g, '')\r\n // Remove horizontal rules (---, ***, ___)\r\n .replace(/^(\\*{3,}|-{3,}|_{3,})$/gm, '')\r\n // Remove blockquotes (>)\r\n .replace(/^>\\s+/gm, '')\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: #f6f8fa;\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: 1fr;\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 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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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: #ecebf3;\r\n}\r\n\r\n.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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","{\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}\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}\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}","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}\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}\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 whiteSpace: 'pre',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\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\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\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\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\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 // 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 ): 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 or doctype\r\n // filtering, so we always fetch a large slice once per (query, locale)\r\n // pair and paginate / doctype-filter client-side.\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 cachedHits = getCached(cacheKey)\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let allHits: any[]\r\n if (cachedHits) {\r\n allHits = cachedHits\r\n } else {\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 allHits = rawResults.map(transformHybridToAlgolia)\r\n setCached(cacheKey, allHits)\r\n }\r\n\r\n // Doctype filter is applied client-side because the upstream API\r\n // does not understand it. Facet counts are computed on `allHits`\r\n // (i.e. ignoring the doctype filter) so that the tabs keep showing\r\n // counts for the other doctypes.\r\n const filteredHits = filterHitsByDoctype(allHits, doctypes)\r\n const nbHits = filteredHits.length\r\n const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage))\r\n const start = page * hitsPerPage\r\n const pageHits = filteredHits.slice(start, start + hitsPerPage)\r\n\r\n const facets = extractFacetsFromHits(allHits)\r\n\r\n return {\r\n results: [\r\n {\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: facets.facets,\r\n facets_stats: {},\r\n exhaustiveFacetsCount: true,\r\n queryID: generateQueryID(),\r\n },\r\n ],\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) =>\r\n wanted.has(String(h.doctype || '').toLowerCase())\r\n )\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\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\r\n // docs//tracks// → //docs/tracks/\r\n // docs//tutorials// → //docs/tutorials/\r\n // Special handling for tracks and tutorials: keep \"docs\" in URL, use only last segment\r\n const docsTypes = ['tracks', 'tutorials']\r\n if (parts[0] === 'docs' && parts.length > 3 && docsTypes.includes(parts[2])) {\r\n const locale = parts[1]\r\n const doctype = parts[2]\r\n const slug = stripExt(parts[parts.length - 1])\r\n return `/${locale}/docs/${doctype}/${slug}`\r\n }\r\n\r\n // docs//faq// → //faq/\r\n // docs//troubleshooting// → //troubleshooting/\r\n // docs//announcements// → //announcements/\r\n // docs//known-issues// → //known-issues/\r\n // Special handling: NO \"docs\" in URL, use only last segment\r\n const noDocsTypes = ['faq', 'troubleshooting', 'announcements', 'known-issues']\r\n if (parts[0] === 'docs' && parts.length > 3 && noDocsTypes.includes(parts[2])) {\r\n const locale = parts[1]\r\n const doctype = parts[2]\r\n const slug = stripExt(parts[parts.length - 1])\r\n return `/${locale}/${doctype}/${slug}`\r\n }\r\n\r\n // docs///...\r\n if (parts[0] === 'docs' && parts.length > 2) {\r\n return `/docs/${stripExt(parts.slice(2).join('/'))}`\r\n }\r\n\r\n // faq/// → //faq/\r\n // troubleshooting/// → //troubleshooting/\r\n // announcements/// → //announcements/\r\n // known-issues/// → //known-issues/\r\n // Special handling when these doctypes are at root level: use only last segment\r\n const rootNoDocsTypes = ['faq', 'troubleshooting', 'announcements', 'known-issues']\r\n if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1]) && rootNoDocsTypes.includes(parts[0])) {\r\n const locale = parts[1]\r\n const doctype = parts[0]\r\n const slug = stripExt(parts[parts.length - 1])\r\n return `/${locale}/${doctype}/${slug}`\r\n }\r\n\r\n // //... (other doctypes - fallback)\r\n if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1])) {\r\n return `/${parts[0]}/${stripExt(parts.slice(2).join('/'))}`\r\n }\r\n\r\n return '/' + stripExt(parts.join('/'))\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction extractFacetsFromHits(\r\n hits: any[]\r\n): { facets: Record> } {\r\n const facets: Record> = {\r\n doctype: {},\r\n language: {},\r\n }\r\n\r\n hits.forEach((hit) => {\r\n const doctype = hit.doctype || 'Other'\r\n facets.doctype[doctype] = (facets.doctype[doctype] || 0) + 1\r\n\r\n const language = hit.language || 'en'\r\n facets.language[language] = (facets.language[language] || 0) + 1\r\n })\r\n\r\n return { facets }\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(config: SearchBackendConfig | AlgoliaConfig) {\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\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 return !dataElement ? (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results' }\r\n \r\n \r\n {ocurrenceCount['']}\r\n \r\n \r\n ) : (\r\n updateFilter(dataElement.id)}\r\n >\r\n \r\n \r\n \r\n {dataElement.title}\r\n \r\n \r\n \r\n {ocurrenceCount[dataElement.id] || 0}\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: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\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: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n fontSize: '12px',\r\n lineHeight: '16px',\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\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, 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 { searchClient, searchIndex, hitsPerPage } from 'utils/config/search-config'\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 [prevFilter, setPrevFilter] = useState('')\r\n const [searchState, setSearchState] = useState({})\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const page = filters !== prevFilter ? 1 : currentState.page || 1\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 ocurrenceCount[filterSelectedSection] === undefined\r\n ? ''\r\n : 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 facets = results?.facets as\r\n | Array<{\r\n name: string\r\n data: Record\r\n exhaustive?: boolean\r\n }>\r\n | undefined\r\n\r\n const doctypeFacet = facets?.find((facet) => facet.name === 'doctype')\r\n const nbHits = results?.nbHits ?? 0\r\n\r\n const formattedFacets: Record = {}\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\r\n formattedFacets[''] = nbHits\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) 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}\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\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 return (\r\n changeFilterSelectedSection(filter)}\r\n >\r\n \r\n {filter || messages[locale]['search_results.all'] || 'All results'}\r\n \r\n {ocurrenceCount[filter] || 0}\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) => SxStyleProp = (active) => ({\r\n pt: '8px',\r\n pb: '14px',\r\n px: '24px',\r\n cursor: '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})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '16.38px',\r\n whiteSpace: 'nowrap',\r\n color: `#${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","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 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 { 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 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","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","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","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","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","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","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","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","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","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","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","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/utils/config/search-config.ts b/src/utils/config/search-config.ts index 8b3a26b..18c3b2c 100644 --- a/src/utils/config/search-config.ts +++ b/src/utils/config/search-config.ts @@ -451,6 +451,19 @@ function buildUrlFromFilePath(filePath: string): string { return `/docs/${stripExt(parts.slice(2).join('/'))}` } + // faq/// → //faq/ + // troubleshooting/// → //troubleshooting/ + // announcements/// → //announcements/ + // known-issues/// → //known-issues/ + // Special handling when these doctypes are at root level: use only last segment + const rootNoDocsTypes = ['faq', 'troubleshooting', 'announcements', 'known-issues'] + if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1]) && rootNoDocsTypes.includes(parts[0])) { + const locale = parts[1] + const doctype = parts[0] + const slug = stripExt(parts[parts.length - 1]) + return `/${locale}/${doctype}/${slug}` + } + // //... (other doctypes - fallback) if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1])) { return `/${parts[0]}/${stripExt(parts.slice(2).join('/'))}` From 15b65580630ed267a85b7f867ea1b88d8b08b10f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A1rbara=20Celi?= Date: Wed, 10 Jun 2026 14:37:35 -0300 Subject: [PATCH 14/23] fix: streamline URL building logic for document types in search configuration --- dist/index.mjs | 31 +++----------- dist/index.mjs.map | 2 +- src/utils/config/search-config.ts | 67 +++++++++++-------------------- 3 files changed, 29 insertions(+), 71 deletions(-) diff --git a/dist/index.mjs b/dist/index.mjs index 28997f8..d4e073a 100644 --- a/dist/index.mjs +++ b/dist/index.mjs @@ -10076,34 +10076,13 @@ function buildUrlFromFilePath(filePath) { if (parts.length === 0) return "/"; const stripExt = (s) => s.replace(/\.mdx?$/, ""); - const docsTypes = ["tracks", "tutorials"]; - if (parts[0] === "docs" && parts.length > 3 && docsTypes.includes(parts[2])) { - const locale = parts[1]; - const doctype = parts[2]; - const slug = stripExt(parts[parts.length - 1]); + const slug = stripExt(parts[parts.length - 1]); + const doctype = deriveDoctypeFromFilePath(filePath); + const locale = parts.length > 1 && LOCALE_SEGMENT.test(parts[1]) ? parts[1].toLowerCase() : "en"; + if (doctype === "tutorials" || doctype === "tracks") { return `/${locale}/docs/${doctype}/${slug}`; } - const noDocsTypes = ["faq", "troubleshooting", "announcements", "known-issues"]; - if (parts[0] === "docs" && parts.length > 3 && noDocsTypes.includes(parts[2])) { - const locale = parts[1]; - const doctype = parts[2]; - const slug = stripExt(parts[parts.length - 1]); - return `/${locale}/${doctype}/${slug}`; - } - if (parts[0] === "docs" && parts.length > 2) { - return `/docs/${stripExt(parts.slice(2).join("/"))}`; - } - const rootNoDocsTypes = ["faq", "troubleshooting", "announcements", "known-issues"]; - if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1]) && rootNoDocsTypes.includes(parts[0])) { - const locale = parts[1]; - const doctype = parts[0]; - const slug = stripExt(parts[parts.length - 1]); - return `/${locale}/${doctype}/${slug}`; - } - if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1])) { - return `/${parts[0]}/${stripExt(parts.slice(2).join("/"))}`; - } - return "/" + stripExt(parts.join("/")); + return `/${locale}/${doctype}/${slug}`; } function extractFacetsFromHits(hits) { const facets = { diff --git a/dist/index.mjs.map b/dist/index.mjs.map index e447180..2d01275 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/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/trashcan-icon.tsx","../src/components/icons/filter-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'\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 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\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\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.\r\n */\r\nexport const stripMarkdownForSnippet = (str: string): string => {\r\n if (!str) return ''\r\n \r\n let cleaned = str\r\n // Remove markdown images ![alt](url) - keep only alt text\r\n .replace(/!\\[([^\\]]*)\\]\\([^)]+\\)/g, '$1')\r\n // Remove markdown links [text](url) - keep only the text\r\n .replace(/\\[([^\\]]+)\\]\\([^)]+\\)/g, '$1')\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`)\r\n .replace(/`([^`]+)`/g, '$1')\r\n // Remove code blocks (```text```)\r\n .replace(/```[\\s\\S]*?```/g, '')\r\n // Remove horizontal rules (---, ***, ___)\r\n .replace(/^(\\*{3,}|-{3,}|_{3,})$/gm, '')\r\n // Remove blockquotes (>)\r\n .replace(/^>\\s+/gm, '')\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: #f6f8fa;\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: 1fr;\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 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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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: #ecebf3;\r\n}\r\n\r\n.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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","{\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}\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}\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}","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}\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}\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 whiteSpace: 'pre',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\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\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\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\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\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 // 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 ): 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 or doctype\r\n // filtering, so we always fetch a large slice once per (query, locale)\r\n // pair and paginate / doctype-filter client-side.\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 cachedHits = getCached(cacheKey)\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let allHits: any[]\r\n if (cachedHits) {\r\n allHits = cachedHits\r\n } else {\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 allHits = rawResults.map(transformHybridToAlgolia)\r\n setCached(cacheKey, allHits)\r\n }\r\n\r\n // Doctype filter is applied client-side because the upstream API\r\n // does not understand it. Facet counts are computed on `allHits`\r\n // (i.e. ignoring the doctype filter) so that the tabs keep showing\r\n // counts for the other doctypes.\r\n const filteredHits = filterHitsByDoctype(allHits, doctypes)\r\n const nbHits = filteredHits.length\r\n const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage))\r\n const start = page * hitsPerPage\r\n const pageHits = filteredHits.slice(start, start + hitsPerPage)\r\n\r\n const facets = extractFacetsFromHits(allHits)\r\n\r\n return {\r\n results: [\r\n {\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: facets.facets,\r\n facets_stats: {},\r\n exhaustiveFacetsCount: true,\r\n queryID: generateQueryID(),\r\n },\r\n ],\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) =>\r\n wanted.has(String(h.doctype || '').toLowerCase())\r\n )\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\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\r\n // docs//tracks// → //docs/tracks/\r\n // docs//tutorials// → //docs/tutorials/\r\n // Special handling for tracks and tutorials: keep \"docs\" in URL, use only last segment\r\n const docsTypes = ['tracks', 'tutorials']\r\n if (parts[0] === 'docs' && parts.length > 3 && docsTypes.includes(parts[2])) {\r\n const locale = parts[1]\r\n const doctype = parts[2]\r\n const slug = stripExt(parts[parts.length - 1])\r\n return `/${locale}/docs/${doctype}/${slug}`\r\n }\r\n\r\n // docs//faq// → //faq/\r\n // docs//troubleshooting// → //troubleshooting/\r\n // docs//announcements// → //announcements/\r\n // docs//known-issues// → //known-issues/\r\n // Special handling: NO \"docs\" in URL, use only last segment\r\n const noDocsTypes = ['faq', 'troubleshooting', 'announcements', 'known-issues']\r\n if (parts[0] === 'docs' && parts.length > 3 && noDocsTypes.includes(parts[2])) {\r\n const locale = parts[1]\r\n const doctype = parts[2]\r\n const slug = stripExt(parts[parts.length - 1])\r\n return `/${locale}/${doctype}/${slug}`\r\n }\r\n\r\n // docs///...\r\n if (parts[0] === 'docs' && parts.length > 2) {\r\n return `/docs/${stripExt(parts.slice(2).join('/'))}`\r\n }\r\n\r\n // faq/// → //faq/\r\n // troubleshooting/// → //troubleshooting/\r\n // announcements/// → //announcements/\r\n // known-issues/// → //known-issues/\r\n // Special handling when these doctypes are at root level: use only last segment\r\n const rootNoDocsTypes = ['faq', 'troubleshooting', 'announcements', 'known-issues']\r\n if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1]) && rootNoDocsTypes.includes(parts[0])) {\r\n const locale = parts[1]\r\n const doctype = parts[0]\r\n const slug = stripExt(parts[parts.length - 1])\r\n return `/${locale}/${doctype}/${slug}`\r\n }\r\n\r\n // //... (other doctypes - fallback)\r\n if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1])) {\r\n return `/${parts[0]}/${stripExt(parts.slice(2).join('/'))}`\r\n }\r\n\r\n return '/' + stripExt(parts.join('/'))\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction extractFacetsFromHits(\r\n hits: any[]\r\n): { facets: Record> } {\r\n const facets: Record> = {\r\n doctype: {},\r\n language: {},\r\n }\r\n\r\n hits.forEach((hit) => {\r\n const doctype = hit.doctype || 'Other'\r\n facets.doctype[doctype] = (facets.doctype[doctype] || 0) + 1\r\n\r\n const language = hit.language || 'en'\r\n facets.language[language] = (facets.language[language] || 0) + 1\r\n })\r\n\r\n return { facets }\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(config: SearchBackendConfig | AlgoliaConfig) {\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\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 return !dataElement ? (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results' }\r\n \r\n \r\n {ocurrenceCount['']}\r\n \r\n \r\n ) : (\r\n updateFilter(dataElement.id)}\r\n >\r\n \r\n \r\n \r\n {dataElement.title}\r\n \r\n \r\n \r\n {ocurrenceCount[dataElement.id] || 0}\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: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\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: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n fontSize: '12px',\r\n lineHeight: '16px',\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\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, 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 { searchClient, searchIndex, hitsPerPage } from 'utils/config/search-config'\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 [prevFilter, setPrevFilter] = useState('')\r\n const [searchState, setSearchState] = useState({})\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const page = filters !== prevFilter ? 1 : currentState.page || 1\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 ocurrenceCount[filterSelectedSection] === undefined\r\n ? ''\r\n : 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 facets = results?.facets as\r\n | Array<{\r\n name: string\r\n data: Record\r\n exhaustive?: boolean\r\n }>\r\n | undefined\r\n\r\n const doctypeFacet = facets?.find((facet) => facet.name === 'doctype')\r\n const nbHits = results?.nbHits ?? 0\r\n\r\n const formattedFacets: Record = {}\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\r\n formattedFacets[''] = nbHits\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) 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}\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\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 return (\r\n changeFilterSelectedSection(filter)}\r\n >\r\n \r\n {filter || messages[locale]['search_results.all'] || 'All results'}\r\n \r\n {ocurrenceCount[filter] || 0}\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) => SxStyleProp = (active) => ({\r\n pt: '8px',\r\n pb: '14px',\r\n px: '24px',\r\n cursor: '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})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '16.38px',\r\n whiteSpace: 'nowrap',\r\n color: `#${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","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 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 { 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 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","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","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","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","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","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","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","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","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","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","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","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/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/trashcan-icon.tsx","../src/components/icons/filter-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'\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 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\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\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.\r\n */\r\nexport const stripMarkdownForSnippet = (str: string): string => {\r\n if (!str) return ''\r\n \r\n let cleaned = str\r\n // Remove markdown images ![alt](url) - keep only alt text\r\n .replace(/!\\[([^\\]]*)\\]\\([^)]+\\)/g, '$1')\r\n // Remove markdown links [text](url) - keep only the text\r\n .replace(/\\[([^\\]]+)\\]\\([^)]+\\)/g, '$1')\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`)\r\n .replace(/`([^`]+)`/g, '$1')\r\n // Remove code blocks (```text```)\r\n .replace(/```[\\s\\S]*?```/g, '')\r\n // Remove horizontal rules (---, ***, ___)\r\n .replace(/^(\\*{3,}|-{3,}|_{3,})$/gm, '')\r\n // Remove blockquotes (>)\r\n .replace(/^>\\s+/gm, '')\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: #f6f8fa;\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: 1fr;\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 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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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: #ecebf3;\r\n}\r\n\r\n.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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","{\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}\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}\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}","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}\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}\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 whiteSpace: 'pre',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\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\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\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\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\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 // 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 ): 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 or doctype\r\n // filtering, so we always fetch a large slice once per (query, locale)\r\n // pair and paginate / doctype-filter client-side.\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 cachedHits = getCached(cacheKey)\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let allHits: any[]\r\n if (cachedHits) {\r\n allHits = cachedHits\r\n } else {\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 allHits = rawResults.map(transformHybridToAlgolia)\r\n setCached(cacheKey, allHits)\r\n }\r\n\r\n // Doctype filter is applied client-side because the upstream API\r\n // does not understand it. Facet counts are computed on `allHits`\r\n // (i.e. ignoring the doctype filter) so that the tabs keep showing\r\n // counts for the other doctypes.\r\n const filteredHits = filterHitsByDoctype(allHits, doctypes)\r\n const nbHits = filteredHits.length\r\n const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage))\r\n const start = page * hitsPerPage\r\n const pageHits = filteredHits.slice(start, start + hitsPerPage)\r\n\r\n const facets = extractFacetsFromHits(allHits)\r\n\r\n return {\r\n results: [\r\n {\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: facets.facets,\r\n facets_stats: {},\r\n exhaustiveFacetsCount: true,\r\n queryID: generateQueryID(),\r\n },\r\n ],\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) =>\r\n wanted.has(String(h.doctype || '').toLowerCase())\r\n )\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\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction extractFacetsFromHits(\r\n hits: any[]\r\n): { facets: Record> } {\r\n const facets: Record> = {\r\n doctype: {},\r\n language: {},\r\n }\r\n\r\n hits.forEach((hit) => {\r\n const doctype = hit.doctype || 'Other'\r\n facets.doctype[doctype] = (facets.doctype[doctype] || 0) + 1\r\n\r\n const language = hit.language || 'en'\r\n facets.language[language] = (facets.language[language] || 0) + 1\r\n })\r\n\r\n return { facets }\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(config: SearchBackendConfig | AlgoliaConfig) {\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\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 return !dataElement ? (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results' }\r\n \r\n \r\n {ocurrenceCount['']}\r\n \r\n \r\n ) : (\r\n updateFilter(dataElement.id)}\r\n >\r\n \r\n \r\n \r\n {dataElement.title}\r\n \r\n \r\n \r\n {ocurrenceCount[dataElement.id] || 0}\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: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\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: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n fontSize: '12px',\r\n lineHeight: '16px',\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\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, 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 { searchClient, searchIndex, hitsPerPage } from 'utils/config/search-config'\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 [prevFilter, setPrevFilter] = useState('')\r\n const [searchState, setSearchState] = useState({})\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const page = filters !== prevFilter ? 1 : currentState.page || 1\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 ocurrenceCount[filterSelectedSection] === undefined\r\n ? ''\r\n : 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 facets = results?.facets as\r\n | Array<{\r\n name: string\r\n data: Record\r\n exhaustive?: boolean\r\n }>\r\n | undefined\r\n\r\n const doctypeFacet = facets?.find((facet) => facet.name === 'doctype')\r\n const nbHits = results?.nbHits ?? 0\r\n\r\n const formattedFacets: Record = {}\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\r\n formattedFacets[''] = nbHits\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) 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}\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\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 return (\r\n changeFilterSelectedSection(filter)}\r\n >\r\n \r\n {filter || messages[locale]['search_results.all'] || 'All results'}\r\n \r\n {ocurrenceCount[filter] || 0}\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) => SxStyleProp = (active) => ({\r\n pt: '8px',\r\n pb: '14px',\r\n px: '24px',\r\n cursor: '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})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '16.38px',\r\n whiteSpace: 'nowrap',\r\n color: `#${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","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 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 { 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 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","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","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","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","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","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","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","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","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","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","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","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/utils/config/search-config.ts b/src/utils/config/search-config.ts index 18c3b2c..4a0e161 100644 --- a/src/utils/config/search-config.ts +++ b/src/utils/config/search-config.ts @@ -416,60 +416,39 @@ function deriveCategoryFromFilePath(filePath: string): string | null { return null } +/** + * Builds the user-facing URL for a search hit from its upstream filePath. + * + * The rule is doctype-driven (not path-position-driven): + * - tutorials/tracks → //docs// + * - everything else → /// + * + * The doctype comes from deriveDoctypeFromFilePath (the same source used for + * the facet tabs) and the slug is always the last path segment, so this works + * regardless of how deep the file is nested or where the doctype sits in the + * path (`docs///...` or `//...`). + */ function buildUrlFromFilePath(filePath: string): string { const parts = filePath.split('/').filter(Boolean) if (parts.length === 0) return '/' const stripExt = (s: string) => s.replace(/\.mdx?$/, '') + const slug = stripExt(parts[parts.length - 1]) - // docs//tracks// → //docs/tracks/ - // docs//tutorials// → //docs/tutorials/ - // Special handling for tracks and tutorials: keep "docs" in URL, use only last segment - const docsTypes = ['tracks', 'tutorials'] - if (parts[0] === 'docs' && parts.length > 3 && docsTypes.includes(parts[2])) { - const locale = parts[1] - const doctype = parts[2] - const slug = stripExt(parts[parts.length - 1]) - return `/${locale}/docs/${doctype}/${slug}` - } - - // docs//faq// → //faq/ - // docs//troubleshooting// → //troubleshooting/ - // docs//announcements// → //announcements/ - // docs//known-issues// → //known-issues/ - // Special handling: NO "docs" in URL, use only last segment - const noDocsTypes = ['faq', 'troubleshooting', 'announcements', 'known-issues'] - if (parts[0] === 'docs' && parts.length > 3 && noDocsTypes.includes(parts[2])) { - const locale = parts[1] - const doctype = parts[2] - const slug = stripExt(parts[parts.length - 1]) - return `/${locale}/${doctype}/${slug}` - } - - // docs///... - if (parts[0] === 'docs' && parts.length > 2) { - return `/docs/${stripExt(parts.slice(2).join('/'))}` - } + const doctype = deriveDoctypeFromFilePath(filePath) - // faq/// → //faq/ - // troubleshooting/// → //troubleshooting/ - // announcements/// → //announcements/ - // known-issues/// → //known-issues/ - // Special handling when these doctypes are at root level: use only last segment - const rootNoDocsTypes = ['faq', 'troubleshooting', 'announcements', 'known-issues'] - if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1]) && rootNoDocsTypes.includes(parts[0])) { - const locale = parts[1] - const doctype = parts[0] - const slug = stripExt(parts[parts.length - 1]) - return `/${locale}/${doctype}/${slug}` - } + // Locale is the 2nd segment in both supported layouts: + // docs//... and //... + const locale = + parts.length > 1 && LOCALE_SEGMENT.test(parts[1]) + ? parts[1].toLowerCase() + : 'en' - // //... (other doctypes - fallback) - if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1])) { - return `/${parts[0]}/${stripExt(parts.slice(2).join('/'))}` + if (doctype === 'tutorials' || doctype === 'tracks') { + return `/${locale}/docs/${doctype}/${slug}` } - return '/' + stripExt(parts.join('/')) + return `/${locale}/${doctype}/${slug}` } // eslint-disable-next-line @typescript-eslint/no-explicit-any From 41c761f110291a0c23a31ff4b84c186a33179776 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A1rbara=20Celi?= Date: Mon, 15 Jun 2026 15:50:49 -0300 Subject: [PATCH 15/23] fix: enhance markdown stripping in snippet utility --- src/utils/string-utils.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/utils/string-utils.ts b/src/utils/string-utils.ts index 4090d1e..24df16e 100644 --- a/src/utils/string-utils.ts +++ b/src/utils/string-utils.ts @@ -31,6 +31,10 @@ export const stripMarkdownForSnippet = (str: string): string => { .replace(/^(\*{3,}|-{3,}|_{3,})$/gm, '') // Remove blockquotes (>) .replace(/^>\s+/gm, '') + // Remove table separator rows (| --- | :--: | etc.) + .replace(/^\s*\|?\s*:?-{3,}:?\s*(\|\s*:?-{3,}:?\s*)*\|?\s*$/gm, '') + // Replace remaining table pipes with spaces so cell content stays readable + .replace(/\s*\|\s*/g, ' ') // Remove extra whitespace and normalize spaces .replace(/\s+/g, ' ') .trim() From 9d3862083193de0e9491f2c1a97454b7022419d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A1rbara=20Celi?= Date: Mon, 15 Jun 2026 15:53:46 -0300 Subject: [PATCH 16/23] fix: enhance markdown stripping in snippet utility --- dist/index.mjs | 2 +- dist/index.mjs.map | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dist/index.mjs b/dist/index.mjs index d4e073a..e0d1c45 100644 --- a/dist/index.mjs +++ b/dist/index.mjs @@ -6418,7 +6418,7 @@ var removeHTML = (str) => str.replace(/<\/?[^>]+>/g, ""); var stripMarkdownForSnippet = (str) => { if (!str) return ""; - let cleaned = str.replace(/!\[([^\]]*)\]\([^)]+\)/g, "$1").replace(/\[([^\]]+)\]\([^)]+\)/g, "$1").replace(/^#{1,6}\s+/gm, "").replace(/\s#{1,6}\s+/g, " ").replace(/\*\*(.+?)\*\*/g, "$1").replace(/__(.+?)__/g, "$1").replace(/\*(.+?)\*/g, "$1").replace(/_(.+?)_/g, "$1").replace(/`([^`]+)`/g, "$1").replace(/```[\s\S]*?```/g, "").replace(/^(\*{3,}|-{3,}|_{3,})$/gm, "").replace(/^>\s+/gm, "").replace(/\s+/g, " ").trim(); + let cleaned = str.replace(/!\[([^\]]*)\]\([^)]+\)/g, "$1").replace(/\[([^\]]+)\]\([^)]+\)/g, "$1").replace(/^#{1,6}\s+/gm, "").replace(/\s#{1,6}\s+/g, " ").replace(/\*\*(.+?)\*\*/g, "$1").replace(/__(.+?)__/g, "$1").replace(/\*(.+?)\*/g, "$1").replace(/_(.+?)_/g, "$1").replace(/`([^`]+)`/g, "$1").replace(/```[\s\S]*?```/g, "").replace(/^(\*{3,}|-{3,}|_{3,})$/gm, "").replace(/^>\s+/gm, "").replace(/^\s*\|?\s*:?-{3,}:?\s*(\|\s*:?-{3,}:?\s*)*\|?\s*$/gm, "").replace(/\s*\|\s*/g, " ").replace(/\s+/g, " ").trim(); if (cleaned.length > 0 && /^[a-zà-ÿ]/.test(cleaned)) { const firstSpaceIndex = cleaned.indexOf(" "); if (firstSpaceIndex > 0 && firstSpaceIndex < 50) { diff --git a/dist/index.mjs.map b/dist/index.mjs.map index 2d01275..38e3646 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/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/trashcan-icon.tsx","../src/components/icons/filter-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'\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 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\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\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.\r\n */\r\nexport const stripMarkdownForSnippet = (str: string): string => {\r\n if (!str) return ''\r\n \r\n let cleaned = str\r\n // Remove markdown images ![alt](url) - keep only alt text\r\n .replace(/!\\[([^\\]]*)\\]\\([^)]+\\)/g, '$1')\r\n // Remove markdown links [text](url) - keep only the text\r\n .replace(/\\[([^\\]]+)\\]\\([^)]+\\)/g, '$1')\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`)\r\n .replace(/`([^`]+)`/g, '$1')\r\n // Remove code blocks (```text```)\r\n .replace(/```[\\s\\S]*?```/g, '')\r\n // Remove horizontal rules (---, ***, ___)\r\n .replace(/^(\\*{3,}|-{3,}|_{3,})$/gm, '')\r\n // Remove blockquotes (>)\r\n .replace(/^>\\s+/gm, '')\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: #f6f8fa;\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: 1fr;\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 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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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: #ecebf3;\r\n}\r\n\r\n.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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","{\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}\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}\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}","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}\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}\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 whiteSpace: 'pre',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\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\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\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\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\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 // 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 ): 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 or doctype\r\n // filtering, so we always fetch a large slice once per (query, locale)\r\n // pair and paginate / doctype-filter client-side.\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 cachedHits = getCached(cacheKey)\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let allHits: any[]\r\n if (cachedHits) {\r\n allHits = cachedHits\r\n } else {\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 allHits = rawResults.map(transformHybridToAlgolia)\r\n setCached(cacheKey, allHits)\r\n }\r\n\r\n // Doctype filter is applied client-side because the upstream API\r\n // does not understand it. Facet counts are computed on `allHits`\r\n // (i.e. ignoring the doctype filter) so that the tabs keep showing\r\n // counts for the other doctypes.\r\n const filteredHits = filterHitsByDoctype(allHits, doctypes)\r\n const nbHits = filteredHits.length\r\n const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage))\r\n const start = page * hitsPerPage\r\n const pageHits = filteredHits.slice(start, start + hitsPerPage)\r\n\r\n const facets = extractFacetsFromHits(allHits)\r\n\r\n return {\r\n results: [\r\n {\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: facets.facets,\r\n facets_stats: {},\r\n exhaustiveFacetsCount: true,\r\n queryID: generateQueryID(),\r\n },\r\n ],\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) =>\r\n wanted.has(String(h.doctype || '').toLowerCase())\r\n )\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\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction extractFacetsFromHits(\r\n hits: any[]\r\n): { facets: Record> } {\r\n const facets: Record> = {\r\n doctype: {},\r\n language: {},\r\n }\r\n\r\n hits.forEach((hit) => {\r\n const doctype = hit.doctype || 'Other'\r\n facets.doctype[doctype] = (facets.doctype[doctype] || 0) + 1\r\n\r\n const language = hit.language || 'en'\r\n facets.language[language] = (facets.language[language] || 0) + 1\r\n })\r\n\r\n return { facets }\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(config: SearchBackendConfig | AlgoliaConfig) {\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\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 return !dataElement ? (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results' }\r\n \r\n \r\n {ocurrenceCount['']}\r\n \r\n \r\n ) : (\r\n updateFilter(dataElement.id)}\r\n >\r\n \r\n \r\n \r\n {dataElement.title}\r\n \r\n \r\n \r\n {ocurrenceCount[dataElement.id] || 0}\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: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\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: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n fontSize: '12px',\r\n lineHeight: '16px',\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\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, 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 { searchClient, searchIndex, hitsPerPage } from 'utils/config/search-config'\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 [prevFilter, setPrevFilter] = useState('')\r\n const [searchState, setSearchState] = useState({})\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const page = filters !== prevFilter ? 1 : currentState.page || 1\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 ocurrenceCount[filterSelectedSection] === undefined\r\n ? ''\r\n : 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 facets = results?.facets as\r\n | Array<{\r\n name: string\r\n data: Record\r\n exhaustive?: boolean\r\n }>\r\n | undefined\r\n\r\n const doctypeFacet = facets?.find((facet) => facet.name === 'doctype')\r\n const nbHits = results?.nbHits ?? 0\r\n\r\n const formattedFacets: Record = {}\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\r\n formattedFacets[''] = nbHits\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) 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}\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\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 return (\r\n changeFilterSelectedSection(filter)}\r\n >\r\n \r\n {filter || messages[locale]['search_results.all'] || 'All results'}\r\n \r\n {ocurrenceCount[filter] || 0}\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) => SxStyleProp = (active) => ({\r\n pt: '8px',\r\n pb: '14px',\r\n px: '24px',\r\n cursor: '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})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '16.38px',\r\n whiteSpace: 'nowrap',\r\n color: `#${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","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 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 { 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 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","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","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","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","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","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","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","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","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","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","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","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/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/trashcan-icon.tsx","../src/components/icons/filter-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'\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 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\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\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.\r\n */\r\nexport const stripMarkdownForSnippet = (str: string): string => {\r\n if (!str) return ''\r\n \r\n let cleaned = str\r\n // Remove markdown images ![alt](url) - keep only alt text\r\n .replace(/!\\[([^\\]]*)\\]\\([^)]+\\)/g, '$1')\r\n // Remove markdown links [text](url) - keep only the text\r\n .replace(/\\[([^\\]]+)\\]\\([^)]+\\)/g, '$1')\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`)\r\n .replace(/`([^`]+)`/g, '$1')\r\n // Remove code blocks (```text```)\r\n .replace(/```[\\s\\S]*?```/g, '')\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 // 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: #f6f8fa;\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: 1fr;\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 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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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: #ecebf3;\r\n}\r\n\r\n.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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","{\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}\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}\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}","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}\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}\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 whiteSpace: 'pre',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\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\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\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\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\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 // 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 ): 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 or doctype\r\n // filtering, so we always fetch a large slice once per (query, locale)\r\n // pair and paginate / doctype-filter client-side.\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 cachedHits = getCached(cacheKey)\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let allHits: any[]\r\n if (cachedHits) {\r\n allHits = cachedHits\r\n } else {\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 allHits = rawResults.map(transformHybridToAlgolia)\r\n setCached(cacheKey, allHits)\r\n }\r\n\r\n // Doctype filter is applied client-side because the upstream API\r\n // does not understand it. Facet counts are computed on `allHits`\r\n // (i.e. ignoring the doctype filter) so that the tabs keep showing\r\n // counts for the other doctypes.\r\n const filteredHits = filterHitsByDoctype(allHits, doctypes)\r\n const nbHits = filteredHits.length\r\n const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage))\r\n const start = page * hitsPerPage\r\n const pageHits = filteredHits.slice(start, start + hitsPerPage)\r\n\r\n const facets = extractFacetsFromHits(allHits)\r\n\r\n return {\r\n results: [\r\n {\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: facets.facets,\r\n facets_stats: {},\r\n exhaustiveFacetsCount: true,\r\n queryID: generateQueryID(),\r\n },\r\n ],\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) =>\r\n wanted.has(String(h.doctype || '').toLowerCase())\r\n )\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\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction extractFacetsFromHits(\r\n hits: any[]\r\n): { facets: Record> } {\r\n const facets: Record> = {\r\n doctype: {},\r\n language: {},\r\n }\r\n\r\n hits.forEach((hit) => {\r\n const doctype = hit.doctype || 'Other'\r\n facets.doctype[doctype] = (facets.doctype[doctype] || 0) + 1\r\n\r\n const language = hit.language || 'en'\r\n facets.language[language] = (facets.language[language] || 0) + 1\r\n })\r\n\r\n return { facets }\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(config: SearchBackendConfig | AlgoliaConfig) {\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\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 return !dataElement ? (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results' }\r\n \r\n \r\n {ocurrenceCount['']}\r\n \r\n \r\n ) : (\r\n updateFilter(dataElement.id)}\r\n >\r\n \r\n \r\n \r\n {dataElement.title}\r\n \r\n \r\n \r\n {ocurrenceCount[dataElement.id] || 0}\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: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\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: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n fontSize: '12px',\r\n lineHeight: '16px',\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\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, 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 { searchClient, searchIndex, hitsPerPage } from 'utils/config/search-config'\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 [prevFilter, setPrevFilter] = useState('')\r\n const [searchState, setSearchState] = useState({})\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const page = filters !== prevFilter ? 1 : currentState.page || 1\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 ocurrenceCount[filterSelectedSection] === undefined\r\n ? ''\r\n : 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 facets = results?.facets as\r\n | Array<{\r\n name: string\r\n data: Record\r\n exhaustive?: boolean\r\n }>\r\n | undefined\r\n\r\n const doctypeFacet = facets?.find((facet) => facet.name === 'doctype')\r\n const nbHits = results?.nbHits ?? 0\r\n\r\n const formattedFacets: Record = {}\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\r\n formattedFacets[''] = nbHits\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) 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}\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\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 return (\r\n changeFilterSelectedSection(filter)}\r\n >\r\n \r\n {filter || messages[locale]['search_results.all'] || 'All results'}\r\n \r\n {ocurrenceCount[filter] || 0}\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) => SxStyleProp = (active) => ({\r\n pt: '8px',\r\n pb: '14px',\r\n px: '24px',\r\n cursor: '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})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '16.38px',\r\n whiteSpace: 'nowrap',\r\n color: `#${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","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 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 { 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 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","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","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","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","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","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","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","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","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","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","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","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 From a1c8324262c93fba95c5236a861488a40c6b17f8 Mon Sep 17 00:00:00 2001 From: Pedro Antunes <47991446+PedroAntunesCosta@users.noreply.github.com> Date: Tue, 16 Jun 2026 18:56:07 -0300 Subject: [PATCH 17/23] test(search-filter-tab-bar): add data-testid attributes for Cypress selectors Adds data-testid, data-filter, and data-active attributes to SearchFilterTab and SearchFilterTabBar so Cypress tests in vtexdocs/helpcenter can select the tab bar, individual tabs, and count badges without fragile DOM traversal. --- dist/index.mjs | 16 +++++++++++++--- dist/index.mjs.map | 2 +- src/components/search-filter-tab-bar/index.tsx | 14 +++++++++++--- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/dist/index.mjs b/dist/index.mjs index e0d1c45..ebb0b64 100644 --- a/dist/index.mjs +++ b/dist/index.mjs @@ -11541,16 +11541,26 @@ var SearchFilterTab = ({ filter }) => { { sx: styles_default22.tab(filterSelectedSection === filter), onClick: () => changeFilterSelectedSection(filter), + "data-testid": "doctype-filter-tab", + "data-filter": filter, + "data-active": String(filterSelectedSection === filter), children: [ - /* @__PURE__ */ jsx59(Text15, { sx: styles_default22.tabTitle(filterSelectedSection === filter), children: filter || messages[locale]["search_results.all"] || "All results" }), - /* @__PURE__ */ jsx59(Text15, { sx: styles_default22.tabCount, children: ocurrenceCount[filter] || 0 }) + /* @__PURE__ */ jsx59( + Text15, + { + sx: styles_default22.tabTitle(filterSelectedSection === filter), + "data-testid": "doctype-filter-tab-title", + children: filter || messages[locale]["search_results.all"] || "All results" + } + ), + /* @__PURE__ */ jsx59(Text15, { sx: styles_default22.tabCount, "data-testid": "doctype-filter-tab-count", children: ocurrenceCount[filter] || 0 }) ] } ); }; var SearchFilterTabBar = () => { const { sidebarSections } = useContext17(LibraryContext); - return /* @__PURE__ */ jsxs47(Flex20, { sx: styles_default22.container, 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); diff --git a/dist/index.mjs.map b/dist/index.mjs.map index 3783a6b..b925ce2 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/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/trashcan-icon.tsx","../src/components/icons/filter-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'\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 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\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\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.\r\n */\r\nexport const stripMarkdownForSnippet = (str: string): string => {\r\n if (!str) return ''\r\n \r\n let cleaned = str\r\n // Remove markdown images ![alt](url) - keep only alt text\r\n .replace(/!\\[([^\\]]*)\\]\\([^)]+\\)/g, '$1')\r\n // Remove markdown links [text](url) - keep only the text\r\n .replace(/\\[([^\\]]+)\\]\\([^)]+\\)/g, '$1')\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`)\r\n .replace(/`([^`]+)`/g, '$1')\r\n // Remove code blocks (```text```)\r\n .replace(/```[\\s\\S]*?```/g, '')\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 // 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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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}\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}\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}","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}\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}\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 whiteSpace: 'pre',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\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\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\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\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\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 // 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 ): 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 or doctype\r\n // filtering, so we always fetch a large slice once per (query, locale)\r\n // pair and paginate / doctype-filter client-side.\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 cachedHits = getCached(cacheKey)\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let allHits: any[]\r\n if (cachedHits) {\r\n allHits = cachedHits\r\n } else {\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 allHits = rawResults.map(transformHybridToAlgolia)\r\n setCached(cacheKey, allHits)\r\n }\r\n\r\n // Doctype filter is applied client-side because the upstream API\r\n // does not understand it. Facet counts are computed on `allHits`\r\n // (i.e. ignoring the doctype filter) so that the tabs keep showing\r\n // counts for the other doctypes.\r\n const filteredHits = filterHitsByDoctype(allHits, doctypes)\r\n const nbHits = filteredHits.length\r\n const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage))\r\n const start = page * hitsPerPage\r\n const pageHits = filteredHits.slice(start, start + hitsPerPage)\r\n\r\n const facets = extractFacetsFromHits(allHits)\r\n\r\n return {\r\n results: [\r\n {\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: facets.facets,\r\n facets_stats: {},\r\n exhaustiveFacetsCount: true,\r\n queryID: generateQueryID(),\r\n },\r\n ],\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) =>\r\n wanted.has(String(h.doctype || '').toLowerCase())\r\n )\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\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction extractFacetsFromHits(\r\n hits: any[]\r\n): { facets: Record> } {\r\n const facets: Record> = {\r\n doctype: {},\r\n language: {},\r\n }\r\n\r\n hits.forEach((hit) => {\r\n const doctype = hit.doctype || 'Other'\r\n facets.doctype[doctype] = (facets.doctype[doctype] || 0) + 1\r\n\r\n const language = hit.language || 'en'\r\n facets.language[language] = (facets.language[language] || 0) + 1\r\n })\r\n\r\n return { facets }\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(config: SearchBackendConfig | AlgoliaConfig) {\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\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 return !dataElement ? (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results' }\r\n \r\n \r\n {ocurrenceCount['']}\r\n \r\n \r\n ) : (\r\n updateFilter(dataElement.id)}\r\n >\r\n \r\n \r\n \r\n {dataElement.title}\r\n \r\n \r\n \r\n {ocurrenceCount[dataElement.id] || 0}\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: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\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: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n fontSize: '12px',\r\n lineHeight: '16px',\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\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, 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 { searchClient, searchIndex, hitsPerPage } from 'utils/config/search-config'\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 [prevFilter, setPrevFilter] = useState('')\r\n const [searchState, setSearchState] = useState({})\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const page = filters !== prevFilter ? 1 : currentState.page || 1\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 ocurrenceCount[filterSelectedSection] === undefined\r\n ? ''\r\n : 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 facets = results?.facets as\r\n | Array<{\r\n name: string\r\n data: Record\r\n exhaustive?: boolean\r\n }>\r\n | undefined\r\n\r\n const doctypeFacet = facets?.find((facet) => facet.name === 'doctype')\r\n const nbHits = results?.nbHits ?? 0\r\n\r\n const formattedFacets: Record = {}\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\r\n formattedFacets[''] = nbHits\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) 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}\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\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 return (\r\n changeFilterSelectedSection(filter)}\r\n >\r\n \r\n {filter || messages[locale]['search_results.all'] || 'All results'}\r\n \r\n {ocurrenceCount[filter] || 0}\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) => SxStyleProp = (active) => ({\r\n pt: '8px',\r\n pb: '14px',\r\n px: '24px',\r\n cursor: '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})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '16.38px',\r\n whiteSpace: 'nowrap',\r\n color: `#${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","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 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 { 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 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","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","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","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","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","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","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","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","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","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","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","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/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/trashcan-icon.tsx","../src/components/icons/filter-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'\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 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\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\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.\r\n */\r\nexport const stripMarkdownForSnippet = (str: string): string => {\r\n if (!str) return ''\r\n \r\n let cleaned = str\r\n // Remove markdown images ![alt](url) - keep only alt text\r\n .replace(/!\\[([^\\]]*)\\]\\([^)]+\\)/g, '$1')\r\n // Remove markdown links [text](url) - keep only the text\r\n .replace(/\\[([^\\]]+)\\]\\([^)]+\\)/g, '$1')\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`)\r\n .replace(/`([^`]+)`/g, '$1')\r\n // Remove code blocks (```text```)\r\n .replace(/```[\\s\\S]*?```/g, '')\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 // 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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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}\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}\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}","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}\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}\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 whiteSpace: 'pre',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\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\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\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\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\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 // 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 ): 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 or doctype\r\n // filtering, so we always fetch a large slice once per (query, locale)\r\n // pair and paginate / doctype-filter client-side.\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 cachedHits = getCached(cacheKey)\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let allHits: any[]\r\n if (cachedHits) {\r\n allHits = cachedHits\r\n } else {\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 allHits = rawResults.map(transformHybridToAlgolia)\r\n setCached(cacheKey, allHits)\r\n }\r\n\r\n // Doctype filter is applied client-side because the upstream API\r\n // does not understand it. Facet counts are computed on `allHits`\r\n // (i.e. ignoring the doctype filter) so that the tabs keep showing\r\n // counts for the other doctypes.\r\n const filteredHits = filterHitsByDoctype(allHits, doctypes)\r\n const nbHits = filteredHits.length\r\n const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage))\r\n const start = page * hitsPerPage\r\n const pageHits = filteredHits.slice(start, start + hitsPerPage)\r\n\r\n const facets = extractFacetsFromHits(allHits)\r\n\r\n return {\r\n results: [\r\n {\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: facets.facets,\r\n facets_stats: {},\r\n exhaustiveFacetsCount: true,\r\n queryID: generateQueryID(),\r\n },\r\n ],\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) =>\r\n wanted.has(String(h.doctype || '').toLowerCase())\r\n )\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\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction extractFacetsFromHits(\r\n hits: any[]\r\n): { facets: Record> } {\r\n const facets: Record> = {\r\n doctype: {},\r\n language: {},\r\n }\r\n\r\n hits.forEach((hit) => {\r\n const doctype = hit.doctype || 'Other'\r\n facets.doctype[doctype] = (facets.doctype[doctype] || 0) + 1\r\n\r\n const language = hit.language || 'en'\r\n facets.language[language] = (facets.language[language] || 0) + 1\r\n })\r\n\r\n return { facets }\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(config: SearchBackendConfig | AlgoliaConfig) {\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\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 return !dataElement ? (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results' }\r\n \r\n \r\n {ocurrenceCount['']}\r\n \r\n \r\n ) : (\r\n updateFilter(dataElement.id)}\r\n >\r\n \r\n \r\n \r\n {dataElement.title}\r\n \r\n \r\n \r\n {ocurrenceCount[dataElement.id] || 0}\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: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\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: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n fontSize: '12px',\r\n lineHeight: '16px',\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\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, 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 { searchClient, searchIndex, hitsPerPage } from 'utils/config/search-config'\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 [prevFilter, setPrevFilter] = useState('')\r\n const [searchState, setSearchState] = useState({})\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const page = filters !== prevFilter ? 1 : currentState.page || 1\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 ocurrenceCount[filterSelectedSection] === undefined\r\n ? ''\r\n : 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 facets = results?.facets as\r\n | Array<{\r\n name: string\r\n data: Record\r\n exhaustive?: boolean\r\n }>\r\n | undefined\r\n\r\n const doctypeFacet = facets?.find((facet) => facet.name === 'doctype')\r\n const nbHits = results?.nbHits ?? 0\r\n\r\n const formattedFacets: Record = {}\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\r\n formattedFacets[''] = nbHits\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) 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}\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\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 return (\r\n changeFilterSelectedSection(filter)}\r\n data-testid=\"doctype-filter-tab\"\r\n data-filter={filter}\r\n data-active={String(filterSelectedSection === filter)}\r\n >\r\n \r\n {filter || messages[locale]['search_results.all'] || 'All results'}\r\n \r\n \r\n {ocurrenceCount[filter] || 0}\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) => SxStyleProp = (active) => ({\r\n pt: '8px',\r\n pb: '14px',\r\n px: '24px',\r\n cursor: '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})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '16.38px',\r\n whiteSpace: 'nowrap',\r\n color: `#${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","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 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 { 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 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","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","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","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","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","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","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","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","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","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","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","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/search-filter-tab-bar/index.tsx b/src/components/search-filter-tab-bar/index.tsx index 4d2f1f1..0e39fbc 100644 --- a/src/components/search-filter-tab-bar/index.tsx +++ b/src/components/search-filter-tab-bar/index.tsx @@ -15,11 +15,19 @@ const SearchFilterTab = ({ filter }: { filter: string }) => { changeFilterSelectedSection(filter)} + data-testid="doctype-filter-tab" + data-filter={filter} + data-active={String(filterSelectedSection === filter)} > - + {filter || messages[locale]['search_results.all'] || 'All results'} - {ocurrenceCount[filter] || 0} + + {ocurrenceCount[filter] || 0} + ) } @@ -27,7 +35,7 @@ const SearchFilterTab = ({ filter }: { filter: string }) => { const SearchFilterTabBar = () => { const { sidebarSections } = useContext(LibraryContext) return ( - + {sidebarSections.flat().map((section) => { return From f9cd02b0f3357ef6428e8d916ade5546cfa7acce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A1rbara=20Celi?= Date: Wed, 17 Jun 2026 12:43:32 -0300 Subject: [PATCH 18/23] fix: improve markdown stripping in string utility to handle truncated tokens and dangling syntax --- dist/index.mjs | 2 +- dist/index.mjs.map | 2 +- src/utils/string-utils.ts | 12 +++++++++--- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/dist/index.mjs b/dist/index.mjs index e0d1c45..67ef191 100644 --- a/dist/index.mjs +++ b/dist/index.mjs @@ -6418,7 +6418,7 @@ var removeHTML = (str) => str.replace(/<\/?[^>]+>/g, ""); var stripMarkdownForSnippet = (str) => { if (!str) return ""; - let cleaned = str.replace(/!\[([^\]]*)\]\([^)]+\)/g, "$1").replace(/\[([^\]]+)\]\([^)]+\)/g, "$1").replace(/^#{1,6}\s+/gm, "").replace(/\s#{1,6}\s+/g, " ").replace(/\*\*(.+?)\*\*/g, "$1").replace(/__(.+?)__/g, "$1").replace(/\*(.+?)\*/g, "$1").replace(/_(.+?)_/g, "$1").replace(/`([^`]+)`/g, "$1").replace(/```[\s\S]*?```/g, "").replace(/^(\*{3,}|-{3,}|_{3,})$/gm, "").replace(/^>\s+/gm, "").replace(/^\s*\|?\s*:?-{3,}:?\s*(\|\s*:?-{3,}:?\s*)*\|?\s*$/gm, "").replace(/\s*\|\s*/g, " ").replace(/\s+/g, " ").trim(); + let cleaned = str.replace(/!\[[^\]]*\]\([^)]*\)/g, "").replace(/\[([^\]]+)\]\([^)]+\)/g, "$1").replace(/!?\[[^\]]*\]\([^)]*$/g, "").replace(/!?\[[^\]]*$/g, "").replace(/^#{1,6}\s+/gm, "").replace(/\s#{1,6}\s+/g, " ").replace(/\*\*(.+?)\*\*/g, "$1").replace(/__(.+?)__/g, "$1").replace(/\*(.+?)\*/g, "$1").replace(/_(.+?)_/g, "$1").replace(/`([^`]+)`/g, "$1").replace(/```[\s\S]*?```/g, "").replace(/^(\*{3,}|-{3,}|_{3,})$/gm, "").replace(/^>\s+/gm, "").replace(/^\s*\|?\s*:?-{3,}:?\s*(\|\s*:?-{3,}:?\s*)*\|?\s*$/gm, "").replace(/\s*\|\s*/g, " ").replace(/\s+/g, " ").trim(); if (cleaned.length > 0 && /^[a-zà-ÿ]/.test(cleaned)) { const firstSpaceIndex = cleaned.indexOf(" "); if (firstSpaceIndex > 0 && firstSpaceIndex < 50) { diff --git a/dist/index.mjs.map b/dist/index.mjs.map index 3783a6b..5c44c4f 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/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/trashcan-icon.tsx","../src/components/icons/filter-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'\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 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\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\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.\r\n */\r\nexport const stripMarkdownForSnippet = (str: string): string => {\r\n if (!str) return ''\r\n \r\n let cleaned = str\r\n // Remove markdown images ![alt](url) - keep only alt text\r\n .replace(/!\\[([^\\]]*)\\]\\([^)]+\\)/g, '$1')\r\n // Remove markdown links [text](url) - keep only the text\r\n .replace(/\\[([^\\]]+)\\]\\([^)]+\\)/g, '$1')\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`)\r\n .replace(/`([^`]+)`/g, '$1')\r\n // Remove code blocks (```text```)\r\n .replace(/```[\\s\\S]*?```/g, '')\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 // 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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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}\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}\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}","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}\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}\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 whiteSpace: 'pre',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\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\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\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\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\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 // 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 ): 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 or doctype\r\n // filtering, so we always fetch a large slice once per (query, locale)\r\n // pair and paginate / doctype-filter client-side.\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 cachedHits = getCached(cacheKey)\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let allHits: any[]\r\n if (cachedHits) {\r\n allHits = cachedHits\r\n } else {\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 allHits = rawResults.map(transformHybridToAlgolia)\r\n setCached(cacheKey, allHits)\r\n }\r\n\r\n // Doctype filter is applied client-side because the upstream API\r\n // does not understand it. Facet counts are computed on `allHits`\r\n // (i.e. ignoring the doctype filter) so that the tabs keep showing\r\n // counts for the other doctypes.\r\n const filteredHits = filterHitsByDoctype(allHits, doctypes)\r\n const nbHits = filteredHits.length\r\n const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage))\r\n const start = page * hitsPerPage\r\n const pageHits = filteredHits.slice(start, start + hitsPerPage)\r\n\r\n const facets = extractFacetsFromHits(allHits)\r\n\r\n return {\r\n results: [\r\n {\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: facets.facets,\r\n facets_stats: {},\r\n exhaustiveFacetsCount: true,\r\n queryID: generateQueryID(),\r\n },\r\n ],\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) =>\r\n wanted.has(String(h.doctype || '').toLowerCase())\r\n )\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\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction extractFacetsFromHits(\r\n hits: any[]\r\n): { facets: Record> } {\r\n const facets: Record> = {\r\n doctype: {},\r\n language: {},\r\n }\r\n\r\n hits.forEach((hit) => {\r\n const doctype = hit.doctype || 'Other'\r\n facets.doctype[doctype] = (facets.doctype[doctype] || 0) + 1\r\n\r\n const language = hit.language || 'en'\r\n facets.language[language] = (facets.language[language] || 0) + 1\r\n })\r\n\r\n return { facets }\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(config: SearchBackendConfig | AlgoliaConfig) {\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\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 return !dataElement ? (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results' }\r\n \r\n \r\n {ocurrenceCount['']}\r\n \r\n \r\n ) : (\r\n updateFilter(dataElement.id)}\r\n >\r\n \r\n \r\n \r\n {dataElement.title}\r\n \r\n \r\n \r\n {ocurrenceCount[dataElement.id] || 0}\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: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\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: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n fontSize: '12px',\r\n lineHeight: '16px',\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\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, 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 { searchClient, searchIndex, hitsPerPage } from 'utils/config/search-config'\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 [prevFilter, setPrevFilter] = useState('')\r\n const [searchState, setSearchState] = useState({})\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const page = filters !== prevFilter ? 1 : currentState.page || 1\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 ocurrenceCount[filterSelectedSection] === undefined\r\n ? ''\r\n : 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 facets = results?.facets as\r\n | Array<{\r\n name: string\r\n data: Record\r\n exhaustive?: boolean\r\n }>\r\n | undefined\r\n\r\n const doctypeFacet = facets?.find((facet) => facet.name === 'doctype')\r\n const nbHits = results?.nbHits ?? 0\r\n\r\n const formattedFacets: Record = {}\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\r\n formattedFacets[''] = nbHits\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) 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}\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\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 return (\r\n changeFilterSelectedSection(filter)}\r\n >\r\n \r\n {filter || messages[locale]['search_results.all'] || 'All results'}\r\n \r\n {ocurrenceCount[filter] || 0}\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) => SxStyleProp = (active) => ({\r\n pt: '8px',\r\n pb: '14px',\r\n px: '24px',\r\n cursor: '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})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '16.38px',\r\n whiteSpace: 'nowrap',\r\n color: `#${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","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 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 { 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 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AASa,QAAI,IAAE,eAAa,OAAO,UAAQ,OAAO;AAAzC,QAA6C,IAAE,IAAE,OAAO,IAAI,eAAe,IAAE;AAA7E,QAAmF,IAAE,IAAE,OAAO,IAAI,cAAc,IAAE;AAAlH,QAAwH,IAAE,IAAE,OAAO,IAAI,gBAAgB,IAAE;AAAzJ,QAA+J,IAAE,IAAE,OAAO,IAAI,mBAAmB,IAAE;AAAnM,QAAyM,IAAE,IAAE,OAAO,IAAI,gBAAgB,IAAE;AAA1O,QAAgP,IAAE,IAAE,OAAO,IAAI,gBAAgB,IAAE;AAAjR,QAAuR,IAAE,IAAE,OAAO,IAAI,eAAe,IAAE;AAAvT,QAA6T,IAAE,IAAE,OAAO,IAAI,kBAAkB,IAAE;AAAhW,QAAsW,IAAE,IAAE,OAAO,IAAI,uBAAuB,IAAE;AAA9Y,QAAoZ,IAAE,IAAE,OAAO,IAAI,mBAAmB,IAAE;AAAxb,QAA8b,IAAE,IAAE,OAAO,IAAI,gBAAgB,IAAE;AAA/d,QAAqe,IAAE,IACpf,OAAO,IAAI,qBAAqB,IAAE;AADrB,QAC2B,IAAE,IAAE,OAAO,IAAI,YAAY,IAAE;AADxD,QAC8D,IAAE,IAAE,OAAO,IAAI,YAAY,IAAE;AAD3F,QACiG,IAAE,IAAE,OAAO,IAAI,aAAa,IAAE;AAD/H,QACqI,IAAE,IAAE,OAAO,IAAI,mBAAmB,IAAE;AADzK,QAC+K,IAAE,IAAE,OAAO,IAAI,iBAAiB,IAAE;AADjN,QACuN,IAAE,IAAE,OAAO,IAAI,aAAa,IAAE;AAClQ,aAAS,EAAE,GAAE;AAAC,UAAG,aAAW,OAAO,KAAG,SAAO,GAAE;AAAC,YAAI,IAAE,EAAE;AAAS,gBAAO,GAAE;AAAA,UAAC,KAAK;AAAE,oBAAO,IAAE,EAAE,MAAK,GAAE;AAAA,cAAC,KAAK;AAAA,cAAE,KAAK;AAAA,cAAE,KAAK;AAAA,cAAE,KAAK;AAAA,cAAE,KAAK;AAAA,cAAE,KAAK;AAAE,uBAAO;AAAA,cAAE;AAAQ,wBAAO,IAAE,KAAG,EAAE,UAAS,GAAE;AAAA,kBAAC,KAAK;AAAA,kBAAE,KAAK;AAAA,kBAAE,KAAK;AAAA,kBAAE,KAAK;AAAA,kBAAE,KAAK;AAAE,2BAAO;AAAA,kBAAE;AAAQ,2BAAO;AAAA,gBAAC;AAAA,YAAC;AAAA,UAAC,KAAK;AAAE,mBAAO;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC;AAAC,aAAS,EAAE,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAAC,YAAQ,YAAU;AAAE,YAAQ,iBAAe;AAAE,YAAQ,kBAAgB;AAAE,YAAQ,kBAAgB;AAAE,YAAQ,UAAQ;AAAE,YAAQ,aAAW;AAAE,YAAQ,WAAS;AAAE,YAAQ,OAAK;AAAE,YAAQ,OAAK;AAAE,YAAQ,SAAO;AAChf,YAAQ,WAAS;AAAE,YAAQ,aAAW;AAAE,YAAQ,WAAS;AAAE,YAAQ,cAAY,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,KAAG,EAAE,CAAC,MAAI;AAAA,IAAC;AAAE,YAAQ,mBAAiB;AAAE,YAAQ,oBAAkB,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAAE,YAAQ,oBAAkB,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAAE,YAAQ,YAAU,SAAS,GAAE;AAAC,aAAM,aAAW,OAAO,KAAG,SAAO,KAAG,EAAE,aAAW;AAAA,IAAC;AAAE,YAAQ,eAAa,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAAE,YAAQ,aAAW,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAAE,YAAQ,SAAO,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAC1d,YAAQ,SAAO,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAAE,YAAQ,WAAS,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAAE,YAAQ,aAAW,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAAE,YAAQ,eAAa,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAAE,YAAQ,aAAW,SAAS,GAAE;AAAC,aAAO,EAAE,CAAC,MAAI;AAAA,IAAC;AAC1O,YAAQ,qBAAmB,SAAS,GAAE;AAAC,aAAM,aAAW,OAAO,KAAG,eAAa,OAAO,KAAG,MAAI,KAAG,MAAI,KAAG,MAAI,KAAG,MAAI,KAAG,MAAI,KAAG,MAAI,KAAG,aAAW,OAAO,KAAG,SAAO,MAAI,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW;AAAA,IAAE;AAAE,YAAQ,SAAO;AAAA;AAAA;;;ACdnU;AAAA;AAAA;AAaA,QAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,OAAC,WAAW;AACd;AAIA,YAAI,YAAY,OAAO,WAAW,cAAc,OAAO;AACvD,YAAI,qBAAqB,YAAY,OAAO,IAAI,eAAe,IAAI;AACnE,YAAI,oBAAoB,YAAY,OAAO,IAAI,cAAc,IAAI;AACjE,YAAI,sBAAsB,YAAY,OAAO,IAAI,gBAAgB,IAAI;AACrE,YAAI,yBAAyB,YAAY,OAAO,IAAI,mBAAmB,IAAI;AAC3E,YAAI,sBAAsB,YAAY,OAAO,IAAI,gBAAgB,IAAI;AACrE,YAAI,sBAAsB,YAAY,OAAO,IAAI,gBAAgB,IAAI;AACrE,YAAI,qBAAqB,YAAY,OAAO,IAAI,eAAe,IAAI;AAGnE,YAAI,wBAAwB,YAAY,OAAO,IAAI,kBAAkB,IAAI;AACzE,YAAI,6BAA6B,YAAY,OAAO,IAAI,uBAAuB,IAAI;AACnF,YAAI,yBAAyB,YAAY,OAAO,IAAI,mBAAmB,IAAI;AAC3E,YAAI,sBAAsB,YAAY,OAAO,IAAI,gBAAgB,IAAI;AACrE,YAAI,2BAA2B,YAAY,OAAO,IAAI,qBAAqB,IAAI;AAC/E,YAAI,kBAAkB,YAAY,OAAO,IAAI,YAAY,IAAI;AAC7D,YAAI,kBAAkB,YAAY,OAAO,IAAI,YAAY,IAAI;AAC7D,YAAI,mBAAmB,YAAY,OAAO,IAAI,aAAa,IAAI;AAC/D,YAAI,yBAAyB,YAAY,OAAO,IAAI,mBAAmB,IAAI;AAC3E,YAAI,uBAAuB,YAAY,OAAO,IAAI,iBAAiB,IAAI;AACvE,YAAI,mBAAmB,YAAY,OAAO,IAAI,aAAa,IAAI;AAE/D,iBAAS,mBAAmB,MAAM;AAChC,iBAAO,OAAO,SAAS,YAAY,OAAO,SAAS;AAAA,UACnD,SAAS,uBAAuB,SAAS,8BAA8B,SAAS,uBAAuB,SAAS,0BAA0B,SAAS,uBAAuB,SAAS,4BAA4B,OAAO,SAAS,YAAY,SAAS,SAAS,KAAK,aAAa,mBAAmB,KAAK,aAAa,mBAAmB,KAAK,aAAa,uBAAuB,KAAK,aAAa,sBAAsB,KAAK,aAAa,0BAA0B,KAAK,aAAa,0BAA0B,KAAK,aAAa,wBAAwB,KAAK,aAAa,oBAAoB,KAAK,aAAa;AAAA,QACplB;AAEA,iBAAS,OAAO,QAAQ;AACtB,cAAI,OAAO,WAAW,YAAY,WAAW,MAAM;AACjD,gBAAI,WAAW,OAAO;AAEtB,oBAAQ,UAAU;AAAA,cAChB,KAAK;AACH,oBAAI,OAAO,OAAO;AAElB,wBAAQ,MAAM;AAAA,kBACZ,KAAK;AAAA,kBACL,KAAK;AAAA,kBACL,KAAK;AAAA,kBACL,KAAK;AAAA,kBACL,KAAK;AAAA,kBACL,KAAK;AACH,2BAAO;AAAA,kBAET;AACE,wBAAI,eAAe,QAAQ,KAAK;AAEhC,4BAAQ,cAAc;AAAA,sBACpB,KAAK;AAAA,sBACL,KAAK;AAAA,sBACL,KAAK;AAAA,sBACL,KAAK;AAAA,sBACL,KAAK;AACH,+BAAO;AAAA,sBAET;AACE,+BAAO;AAAA,oBACX;AAAA,gBAEJ;AAAA,cAEF,KAAK;AACH,uBAAO;AAAA,YACX;AAAA,UACF;AAEA,iBAAO;AAAA,QACT;AAEA,YAAI,YAAY;AAChB,YAAI,iBAAiB;AACrB,YAAI,kBAAkB;AACtB,YAAI,kBAAkB;AACtB,YAAI,UAAU;AACd,YAAI,aAAa;AACjB,YAAIA,YAAW;AACf,YAAI,OAAO;AACX,YAAI,OAAO;AACX,YAAI,SAAS;AACb,YAAI,WAAW;AACf,YAAI,aAAa;AACjB,YAAI,WAAW;AACf,YAAI,sCAAsC;AAE1C,iBAAS,YAAY,QAAQ;AAC3B;AACE,gBAAI,CAAC,qCAAqC;AACxC,oDAAsC;AAEtC,sBAAQ,MAAM,EAAE,+KAAyL;AAAA,YAC3M;AAAA,UACF;AAEA,iBAAO,iBAAiB,MAAM,KAAK,OAAO,MAAM,MAAM;AAAA,QACxD;AACA,iBAAS,iBAAiB,QAAQ;AAChC,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,kBAAkB,QAAQ;AACjC,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,kBAAkB,QAAQ;AACjC,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,UAAU,QAAQ;AACzB,iBAAO,OAAO,WAAW,YAAY,WAAW,QAAQ,OAAO,aAAa;AAAA,QAC9E;AACA,iBAAS,aAAa,QAAQ;AAC5B,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,WAAW,QAAQ;AAC1B,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,OAAO,QAAQ;AACtB,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,OAAO,QAAQ;AACtB,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,SAAS,QAAQ;AACxB,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,WAAW,QAAQ;AAC1B,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,aAAa,QAAQ;AAC5B,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AACA,iBAAS,WAAW,QAAQ;AAC1B,iBAAO,OAAO,MAAM,MAAM;AAAA,QAC5B;AAEA,gBAAQ,YAAY;AACpB,gBAAQ,iBAAiB;AACzB,gBAAQ,kBAAkB;AAC1B,gBAAQ,kBAAkB;AAC1B,gBAAQ,UAAU;AAClB,gBAAQ,aAAa;AACrB,gBAAQ,WAAWA;AACnB,gBAAQ,OAAO;AACf,gBAAQ,OAAO;AACf,gBAAQ,SAAS;AACjB,gBAAQ,WAAW;AACnB,gBAAQ,aAAa;AACrB,gBAAQ,WAAW;AACnB,gBAAQ,cAAc;AACtB,gBAAQ,mBAAmB;AAC3B,gBAAQ,oBAAoB;AAC5B,gBAAQ,oBAAoB;AAC5B,gBAAQ,YAAY;AACpB,gBAAQ,eAAe;AACvB,gBAAQ,aAAa;AACrB,gBAAQ,SAAS;AACjB,gBAAQ,SAAS;AACjB,gBAAQ,WAAW;AACnB,gBAAQ,aAAa;AACrB,gBAAQ,eAAe;AACvB,gBAAQ,aAAa;AACrB,gBAAQ,qBAAqB;AAC7B,gBAAQ,SAAS;AAAA,MACf,GAAG;AAAA,IACL;AAAA;AAAA;;;ACpLA;AAAA;AAAA;AAEA,QAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,aAAO,UAAU;AAAA,IACnB,OAAO;AACL,aAAO,UAAU;AAAA,IACnB;AAAA;AAAA;;;ACNA;AAAA;AAAA;AAQA,QAAI,wBAAwB,OAAO;AACnC,QAAI,iBAAiB,OAAO,UAAU;AACtC,QAAI,mBAAmB,OAAO,UAAU;AAExC,aAAS,SAAS,KAAK;AACtB,UAAI,QAAQ,QAAQ,QAAQ,QAAW;AACtC,cAAM,IAAI,UAAU,uDAAuD;AAAA,MAC5E;AAEA,aAAO,OAAO,GAAG;AAAA,IAClB;AAEA,aAAS,kBAAkB;AAC1B,UAAI;AACH,YAAI,CAAC,OAAO,QAAQ;AACnB,iBAAO;AAAA,QACR;AAKA,YAAI,QAAQ,IAAI,OAAO,KAAK;AAC5B,cAAM,CAAC,IAAI;AACX,YAAI,OAAO,oBAAoB,KAAK,EAAE,CAAC,MAAM,KAAK;AACjD,iBAAO;AAAA,QACR;AAGA,YAAI,QAAQ,CAAC;AACb,iBAAS,IAAI,GAAG,IAAI,IAAI,KAAK;AAC5B,gBAAM,MAAM,OAAO,aAAa,CAAC,CAAC,IAAI;AAAA,QACvC;AACA,YAAI,SAAS,OAAO,oBAAoB,KAAK,EAAE,IAAI,SAAU,GAAG;AAC/D,iBAAO,MAAM,CAAC;AAAA,QACf,CAAC;AACD,YAAI,OAAO,KAAK,EAAE,MAAM,cAAc;AACrC,iBAAO;AAAA,QACR;AAGA,YAAI,QAAQ,CAAC;AACb,+BAAuB,MAAM,EAAE,EAAE,QAAQ,SAAU,QAAQ;AAC1D,gBAAM,MAAM,IAAI;AAAA,QACjB,CAAC;AACD,YAAI,OAAO,KAAK,OAAO,OAAO,CAAC,GAAG,KAAK,CAAC,EAAE,KAAK,EAAE,MAC/C,wBAAwB;AACzB,iBAAO;AAAA,QACR;AAEA,eAAO;AAAA,MACR,SAAS,KAAK;AAEb,eAAO;AAAA,MACR;AAAA,IACD;AAEA,WAAO,UAAU,gBAAgB,IAAI,OAAO,SAAS,SAAU,QAAQ,QAAQ;AAC9E,UAAI;AACJ,UAAI,KAAK,SAAS,MAAM;AACxB,UAAI;AAEJ,eAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAC1C,eAAO,OAAO,UAAU,CAAC,CAAC;AAE1B,iBAAS,OAAO,MAAM;AACrB,cAAI,eAAe,KAAK,MAAM,GAAG,GAAG;AACnC,eAAG,GAAG,IAAI,KAAK,GAAG;AAAA,UACnB;AAAA,QACD;AAEA,YAAI,uBAAuB;AAC1B,oBAAU,sBAAsB,IAAI;AACpC,mBAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACxC,gBAAI,iBAAiB,KAAK,MAAM,QAAQ,CAAC,CAAC,GAAG;AAC5C,iBAAG,QAAQ,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;AAAA,YACjC;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAEA,aAAO;AAAA,IACR;AAAA;AAAA;;;ACzFA;AAAA;AAAA;AASA,QAAI,uBAAuB;AAE3B,WAAO,UAAU;AAAA;AAAA;;;ACXjB;AAAA;AAAA;AAAA,WAAO,UAAU,SAAS,KAAK,KAAK,OAAO,UAAU,cAAc;AAAA;AAAA;;;ACAnE;AAAA;AAAA;AASA,QAAI,eAAe,WAAW;AAAA,IAAC;AAE/B,QAAI,QAAQ,IAAI,aAAa,cAAc;AACrC,6BAAuB;AACvB,2BAAqB,CAAC;AACtB,YAAM;AAEV,qBAAe,SAASC,OAAM;AAC5B,YAAI,UAAU,cAAcA;AAC5B,YAAI,OAAO,YAAY,aAAa;AAClC,kBAAQ,MAAM,OAAO;AAAA,QACvB;AACA,YAAI;AAIF,gBAAM,IAAI,MAAM,OAAO;AAAA,QACzB,SAAS,GAAG;AAAA,QAAO;AAAA,MACrB;AAAA,IACF;AAhBM;AACA;AACA;AA2BN,aAAS,eAAe,WAAW,QAAQ,UAAU,eAAe,UAAU;AAC5E,UAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,iBAAS,gBAAgB,WAAW;AAClC,cAAI,IAAI,WAAW,YAAY,GAAG;AAChC,gBAAI;AAIJ,gBAAI;AAGF,kBAAI,OAAO,UAAU,YAAY,MAAM,YAAY;AACjD,oBAAI,MAAM;AAAA,mBACP,iBAAiB,iBAAiB,OAAO,WAAW,YAAY,eAAe,+FACC,OAAO,UAAU,YAAY,IAAI;AAAA,gBAEpH;AACA,oBAAI,OAAO;AACX,sBAAM;AAAA,cACR;AACA,sBAAQ,UAAU,YAAY,EAAE,QAAQ,cAAc,eAAe,UAAU,MAAM,oBAAoB;AAAA,YAC3G,SAAS,IAAI;AACX,sBAAQ;AAAA,YACV;AACA,gBAAI,SAAS,EAAE,iBAAiB,QAAQ;AACtC;AAAA,iBACG,iBAAiB,iBAAiB,6BACnC,WAAW,OAAO,eAAe,6FAC6B,OAAO,QAAQ;AAAA,cAI/E;AAAA,YACF;AACA,gBAAI,iBAAiB,SAAS,EAAE,MAAM,WAAW,qBAAqB;AAGpE,iCAAmB,MAAM,OAAO,IAAI;AAEpC,kBAAI,QAAQ,WAAW,SAAS,IAAI;AAEpC;AAAA,gBACE,YAAY,WAAW,YAAY,MAAM,WAAW,SAAS,OAAO,QAAQ;AAAA,cAC9E;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAOA,mBAAe,oBAAoB,WAAW;AAC5C,UAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,6BAAqB,CAAC;AAAA,MACxB;AAAA,IACF;AAEA,WAAO,UAAU;AAAA;AAAA;;;ACtGjB;AAAA;AAAA;AASA,QAAI,UAAU;AACd,QAAI,SAAS;AAEb,QAAI,uBAAuB;AAC3B,QAAI,MAAM;AACV,QAAI,iBAAiB;AAErB,QAAI,eAAe,WAAW;AAAA,IAAC;AAE/B,QAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,qBAAe,SAASC,OAAM;AAC5B,YAAI,UAAU,cAAcA;AAC5B,YAAI,OAAO,YAAY,aAAa;AAClC,kBAAQ,MAAM,OAAO;AAAA,QACvB;AACA,YAAI;AAIF,gBAAM,IAAI,MAAM,OAAO;AAAA,QACzB,SAAS,GAAG;AAAA,QAAC;AAAA,MACf;AAAA,IACF;AAEA,aAAS,+BAA+B;AACtC,aAAO;AAAA,IACT;AAEA,WAAO,UAAU,SAAS,gBAAgB,qBAAqB;AAE7D,UAAI,kBAAkB,OAAO,WAAW,cAAc,OAAO;AAC7D,UAAI,uBAAuB;AAgB3B,eAAS,cAAc,eAAe;AACpC,YAAI,aAAa,kBAAkB,mBAAmB,cAAc,eAAe,KAAK,cAAc,oBAAoB;AAC1H,YAAI,OAAO,eAAe,YAAY;AACpC,iBAAO;AAAA,QACT;AAAA,MACF;AAiDA,UAAI,YAAY;AAIhB,UAAI,iBAAiB;AAAA,QACnB,OAAO,2BAA2B,OAAO;AAAA,QACzC,QAAQ,2BAA2B,QAAQ;AAAA,QAC3C,MAAM,2BAA2B,SAAS;AAAA,QAC1C,MAAM,2BAA2B,UAAU;AAAA,QAC3C,QAAQ,2BAA2B,QAAQ;AAAA,QAC3C,QAAQ,2BAA2B,QAAQ;AAAA,QAC3C,QAAQ,2BAA2B,QAAQ;AAAA,QAC3C,QAAQ,2BAA2B,QAAQ;AAAA,QAE3C,KAAK,qBAAqB;AAAA,QAC1B,SAAS;AAAA,QACT,SAAS,yBAAyB;AAAA,QAClC,aAAa,6BAA6B;AAAA,QAC1C,YAAY;AAAA,QACZ,MAAM,kBAAkB;AAAA,QACxB,UAAU;AAAA,QACV,OAAO;AAAA,QACP,WAAW;AAAA,QACX,OAAO;AAAA,QACP,OAAO;AAAA,MACT;AAOA,eAAS,GAAG,GAAG,GAAG;AAEhB,YAAI,MAAM,GAAG;AAGX,iBAAO,MAAM,KAAK,IAAI,MAAM,IAAI;AAAA,QAClC,OAAO;AAEL,iBAAO,MAAM,KAAK,MAAM;AAAA,QAC1B;AAAA,MACF;AAUA,eAAS,cAAc,SAAS,MAAM;AACpC,aAAK,UAAU;AACf,aAAK,OAAO,QAAQ,OAAO,SAAS,WAAW,OAAM,CAAC;AACtD,aAAK,QAAQ;AAAA,MACf;AAEA,oBAAc,YAAY,MAAM;AAEhC,eAAS,2BAA2B,UAAU;AAC5C,YAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,cAAI,0BAA0B,CAAC;AAC/B,cAAI,6BAA6B;AAAA,QACnC;AACA,iBAAS,UAAU,YAAY,OAAO,UAAU,eAAe,UAAU,cAAc,QAAQ;AAC7F,0BAAgB,iBAAiB;AACjC,yBAAe,gBAAgB;AAE/B,cAAI,WAAW,sBAAsB;AACnC,gBAAI,qBAAqB;AAEvB,kBAAI,MAAM,IAAI;AAAA,gBACZ;AAAA,cAGF;AACA,kBAAI,OAAO;AACX,oBAAM;AAAA,YACR,WAAW,QAAQ,IAAI,aAAa,gBAAgB,OAAO,YAAY,aAAa;AAElF,kBAAI,WAAW,gBAAgB,MAAM;AACrC,kBACE,CAAC,wBAAwB,QAAQ;AAAA,cAEjC,6BAA6B,GAC7B;AACA;AAAA,kBACE,6EACuB,eAAe,gBAAgB,gBAAgB;AAAA,gBAIxE;AACA,wCAAwB,QAAQ,IAAI;AACpC;AAAA,cACF;AAAA,YACF;AAAA,UACF;AACA,cAAI,MAAM,QAAQ,KAAK,MAAM;AAC3B,gBAAI,YAAY;AACd,kBAAI,MAAM,QAAQ,MAAM,MAAM;AAC5B,uBAAO,IAAI,cAAc,SAAS,WAAW,OAAO,eAAe,8BAA8B,SAAS,gBAAgB,8BAA8B;AAAA,cAC1J;AACA,qBAAO,IAAI,cAAc,SAAS,WAAW,OAAO,eAAe,iCAAiC,MAAM,gBAAgB,mCAAmC;AAAA,YAC/J;AACA,mBAAO;AAAA,UACT,OAAO;AACL,mBAAO,SAAS,OAAO,UAAU,eAAe,UAAU,YAAY;AAAA,UACxE;AAAA,QACF;AAEA,YAAI,mBAAmB,UAAU,KAAK,MAAM,KAAK;AACjD,yBAAiB,aAAa,UAAU,KAAK,MAAM,IAAI;AAEvD,eAAO;AAAA,MACT;AAEA,eAAS,2BAA2B,cAAc;AAChD,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc,QAAQ;AAChF,cAAI,YAAY,MAAM,QAAQ;AAC9B,cAAI,WAAW,YAAY,SAAS;AACpC,cAAI,aAAa,cAAc;AAI7B,gBAAI,cAAc,eAAe,SAAS;AAE1C,mBAAO,IAAI;AAAA,cACT,aAAa,WAAW,OAAO,eAAe,gBAAgB,MAAM,cAAc,oBAAoB,gBAAgB,mBAAmB,MAAM,eAAe;AAAA,cAC9J,EAAC,aAA0B;AAAA,YAC7B;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,uBAAuB;AAC9B,eAAO,2BAA2B,4BAA4B;AAAA,MAChE;AAEA,eAAS,yBAAyB,aAAa;AAC7C,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,OAAO,gBAAgB,YAAY;AACrC,mBAAO,IAAI,cAAc,eAAe,eAAe,qBAAqB,gBAAgB,iDAAiD;AAAA,UAC/I;AACA,cAAI,YAAY,MAAM,QAAQ;AAC9B,cAAI,CAAC,MAAM,QAAQ,SAAS,GAAG;AAC7B,gBAAI,WAAW,YAAY,SAAS;AACpC,mBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,gBAAgB,MAAM,WAAW,oBAAoB,gBAAgB,wBAAwB;AAAA,UACtK;AACA,mBAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AACzC,gBAAI,QAAQ,YAAY,WAAW,GAAG,eAAe,UAAU,eAAe,MAAM,IAAI,KAAK,oBAAoB;AACjH,gBAAI,iBAAiB,OAAO;AAC1B,qBAAO;AAAA,YACT;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,2BAA2B;AAClC,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,YAAY,MAAM,QAAQ;AAC9B,cAAI,CAAC,eAAe,SAAS,GAAG;AAC9B,gBAAI,WAAW,YAAY,SAAS;AACpC,mBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,gBAAgB,MAAM,WAAW,oBAAoB,gBAAgB,qCAAqC;AAAA,UACnL;AACA,iBAAO;AAAA,QACT;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,+BAA+B;AACtC,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,YAAY,MAAM,QAAQ;AAC9B,cAAI,CAAC,QAAQ,mBAAmB,SAAS,GAAG;AAC1C,gBAAI,WAAW,YAAY,SAAS;AACpC,mBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,gBAAgB,MAAM,WAAW,oBAAoB,gBAAgB,0CAA0C;AAAA,UACxL;AACA,iBAAO;AAAA,QACT;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,0BAA0B,eAAe;AAChD,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,EAAE,MAAM,QAAQ,aAAa,gBAAgB;AAC/C,gBAAI,oBAAoB,cAAc,QAAQ;AAC9C,gBAAI,kBAAkB,aAAa,MAAM,QAAQ,CAAC;AAClD,mBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,gBAAgB,MAAM,kBAAkB,oBAAoB,gBAAgB,mBAAmB,kBAAkB,oBAAoB,KAAK;AAAA,UACnN;AACA,iBAAO;AAAA,QACT;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,sBAAsB,gBAAgB;AAC7C,YAAI,CAAC,MAAM,QAAQ,cAAc,GAAG;AAClC,cAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,gBAAI,UAAU,SAAS,GAAG;AACxB;AAAA,gBACE,iEAAiE,UAAU,SAAS;AAAA,cAEtF;AAAA,YACF,OAAO;AACL,2BAAa,wDAAwD;AAAA,YACvE;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AAEA,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,YAAY,MAAM,QAAQ;AAC9B,mBAAS,IAAI,GAAG,IAAI,eAAe,QAAQ,KAAK;AAC9C,gBAAI,GAAG,WAAW,eAAe,CAAC,CAAC,GAAG;AACpC,qBAAO;AAAA,YACT;AAAA,UACF;AAEA,cAAI,eAAe,KAAK,UAAU,gBAAgB,SAAS,SAAS,KAAK,OAAO;AAC9E,gBAAI,OAAO,eAAe,KAAK;AAC/B,gBAAI,SAAS,UAAU;AACrB,qBAAO,OAAO,KAAK;AAAA,YACrB;AACA,mBAAO;AAAA,UACT,CAAC;AACD,iBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,iBAAiB,OAAO,SAAS,IAAI,QAAQ,kBAAkB,gBAAgB,wBAAwB,eAAe,IAAI;AAAA,QACnM;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,0BAA0B,aAAa;AAC9C,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,OAAO,gBAAgB,YAAY;AACrC,mBAAO,IAAI,cAAc,eAAe,eAAe,qBAAqB,gBAAgB,kDAAkD;AAAA,UAChJ;AACA,cAAI,YAAY,MAAM,QAAQ;AAC9B,cAAI,WAAW,YAAY,SAAS;AACpC,cAAI,aAAa,UAAU;AACzB,mBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,gBAAgB,MAAM,WAAW,oBAAoB,gBAAgB,yBAAyB;AAAA,UACvK;AACA,mBAAS,OAAO,WAAW;AACzB,gBAAI,IAAI,WAAW,GAAG,GAAG;AACvB,kBAAI,QAAQ,YAAY,WAAW,KAAK,eAAe,UAAU,eAAe,MAAM,KAAK,oBAAoB;AAC/G,kBAAI,iBAAiB,OAAO;AAC1B,uBAAO;AAAA,cACT;AAAA,YACF;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,uBAAuB,qBAAqB;AACnD,YAAI,CAAC,MAAM,QAAQ,mBAAmB,GAAG;AACvC,kBAAQ,IAAI,aAAa,eAAe,aAAa,wEAAwE,IAAI;AACjI,iBAAO;AAAA,QACT;AAEA,iBAAS,IAAI,GAAG,IAAI,oBAAoB,QAAQ,KAAK;AACnD,cAAI,UAAU,oBAAoB,CAAC;AACnC,cAAI,OAAO,YAAY,YAAY;AACjC;AAAA,cACE,gGACc,yBAAyB,OAAO,IAAI,eAAe,IAAI;AAAA,YACvE;AACA,mBAAO;AAAA,UACT;AAAA,QACF;AAEA,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,gBAAgB,CAAC;AACrB,mBAASC,KAAI,GAAGA,KAAI,oBAAoB,QAAQA,MAAK;AACnD,gBAAIC,WAAU,oBAAoBD,EAAC;AACnC,gBAAI,gBAAgBC,SAAQ,OAAO,UAAU,eAAe,UAAU,cAAc,oBAAoB;AACxG,gBAAI,iBAAiB,MAAM;AACzB,qBAAO;AAAA,YACT;AACA,gBAAI,cAAc,QAAQ,IAAI,cAAc,MAAM,cAAc,GAAG;AACjE,4BAAc,KAAK,cAAc,KAAK,YAAY;AAAA,YACpD;AAAA,UACF;AACA,cAAI,uBAAwB,cAAc,SAAS,IAAK,6BAA6B,cAAc,KAAK,IAAI,IAAI,MAAK;AACrH,iBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,oBAAoB,MAAM,gBAAgB,MAAM,uBAAuB,IAAI;AAAA,QACpJ;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,oBAAoB;AAC3B,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,CAAC,OAAO,MAAM,QAAQ,CAAC,GAAG;AAC5B,mBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,oBAAoB,MAAM,gBAAgB,2BAA2B;AAAA,UAC9I;AACA,iBAAO;AAAA,QACT;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,sBAAsB,eAAe,UAAU,cAAc,KAAK,MAAM;AAC/E,eAAO,IAAI;AAAA,WACR,iBAAiB,iBAAiB,OAAO,WAAW,YAAY,eAAe,MAAM,MAAM,+FACX,OAAO;AAAA,QAC1F;AAAA,MACF;AAEA,eAAS,uBAAuB,YAAY;AAC1C,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,YAAY,MAAM,QAAQ;AAC9B,cAAI,WAAW,YAAY,SAAS;AACpC,cAAI,aAAa,UAAU;AACzB,mBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,gBAAgB,WAAW,QAAQ,kBAAkB,gBAAgB,wBAAwB;AAAA,UACtK;AACA,mBAAS,OAAO,YAAY;AAC1B,gBAAI,UAAU,WAAW,GAAG;AAC5B,gBAAI,OAAO,YAAY,YAAY;AACjC,qBAAO,sBAAsB,eAAe,UAAU,cAAc,KAAK,eAAe,OAAO,CAAC;AAAA,YAClG;AACA,gBAAI,QAAQ,QAAQ,WAAW,KAAK,eAAe,UAAU,eAAe,MAAM,KAAK,oBAAoB;AAC3G,gBAAI,OAAO;AACT,qBAAO;AAAA,YACT;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AACA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,6BAA6B,YAAY;AAChD,iBAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,cAAI,YAAY,MAAM,QAAQ;AAC9B,cAAI,WAAW,YAAY,SAAS;AACpC,cAAI,aAAa,UAAU;AACzB,mBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,gBAAgB,WAAW,QAAQ,kBAAkB,gBAAgB,wBAAwB;AAAA,UACtK;AAEA,cAAI,UAAU,OAAO,CAAC,GAAG,MAAM,QAAQ,GAAG,UAAU;AACpD,mBAAS,OAAO,SAAS;AACvB,gBAAI,UAAU,WAAW,GAAG;AAC5B,gBAAI,IAAI,YAAY,GAAG,KAAK,OAAO,YAAY,YAAY;AACzD,qBAAO,sBAAsB,eAAe,UAAU,cAAc,KAAK,eAAe,OAAO,CAAC;AAAA,YAClG;AACA,gBAAI,CAAC,SAAS;AACZ,qBAAO,IAAI;AAAA,gBACT,aAAa,WAAW,OAAO,eAAe,YAAY,MAAM,oBAAoB,gBAAgB,qBACjF,KAAK,UAAU,MAAM,QAAQ,GAAG,MAAM,IAAI,IAC7D,mBAAmB,KAAK,UAAU,OAAO,KAAK,UAAU,GAAG,MAAM,IAAI;AAAA,cACvE;AAAA,YACF;AACA,gBAAI,QAAQ,QAAQ,WAAW,KAAK,eAAe,UAAU,eAAe,MAAM,KAAK,oBAAoB;AAC3G,gBAAI,OAAO;AACT,qBAAO;AAAA,YACT;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AAEA,eAAO,2BAA2B,QAAQ;AAAA,MAC5C;AAEA,eAAS,OAAO,WAAW;AACzB,gBAAQ,OAAO,WAAW;AAAA,UACxB,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AACH,mBAAO;AAAA,UACT,KAAK;AACH,mBAAO,CAAC;AAAA,UACV,KAAK;AACH,gBAAI,MAAM,QAAQ,SAAS,GAAG;AAC5B,qBAAO,UAAU,MAAM,MAAM;AAAA,YAC/B;AACA,gBAAI,cAAc,QAAQ,eAAe,SAAS,GAAG;AACnD,qBAAO;AAAA,YACT;AAEA,gBAAI,aAAa,cAAc,SAAS;AACxC,gBAAI,YAAY;AACd,kBAAI,WAAW,WAAW,KAAK,SAAS;AACxC,kBAAI;AACJ,kBAAI,eAAe,UAAU,SAAS;AACpC,uBAAO,EAAE,OAAO,SAAS,KAAK,GAAG,MAAM;AACrC,sBAAI,CAAC,OAAO,KAAK,KAAK,GAAG;AACvB,2BAAO;AAAA,kBACT;AAAA,gBACF;AAAA,cACF,OAAO;AAEL,uBAAO,EAAE,OAAO,SAAS,KAAK,GAAG,MAAM;AACrC,sBAAI,QAAQ,KAAK;AACjB,sBAAI,OAAO;AACT,wBAAI,CAAC,OAAO,MAAM,CAAC,CAAC,GAAG;AACrB,6BAAO;AAAA,oBACT;AAAA,kBACF;AAAA,gBACF;AAAA,cACF;AAAA,YACF,OAAO;AACL,qBAAO;AAAA,YACT;AAEA,mBAAO;AAAA,UACT;AACE,mBAAO;AAAA,QACX;AAAA,MACF;AAEA,eAAS,SAAS,UAAU,WAAW;AAErC,YAAI,aAAa,UAAU;AACzB,iBAAO;AAAA,QACT;AAGA,YAAI,CAAC,WAAW;AACd,iBAAO;AAAA,QACT;AAGA,YAAI,UAAU,eAAe,MAAM,UAAU;AAC3C,iBAAO;AAAA,QACT;AAGA,YAAI,OAAO,WAAW,cAAc,qBAAqB,QAAQ;AAC/D,iBAAO;AAAA,QACT;AAEA,eAAO;AAAA,MACT;AAGA,eAAS,YAAY,WAAW;AAC9B,YAAI,WAAW,OAAO;AACtB,YAAI,MAAM,QAAQ,SAAS,GAAG;AAC5B,iBAAO;AAAA,QACT;AACA,YAAI,qBAAqB,QAAQ;AAI/B,iBAAO;AAAA,QACT;AACA,YAAI,SAAS,UAAU,SAAS,GAAG;AACjC,iBAAO;AAAA,QACT;AACA,eAAO;AAAA,MACT;AAIA,eAAS,eAAe,WAAW;AACjC,YAAI,OAAO,cAAc,eAAe,cAAc,MAAM;AAC1D,iBAAO,KAAK;AAAA,QACd;AACA,YAAI,WAAW,YAAY,SAAS;AACpC,YAAI,aAAa,UAAU;AACzB,cAAI,qBAAqB,MAAM;AAC7B,mBAAO;AAAA,UACT,WAAW,qBAAqB,QAAQ;AACtC,mBAAO;AAAA,UACT;AAAA,QACF;AACA,eAAO;AAAA,MACT;AAIA,eAAS,yBAAyB,OAAO;AACvC,YAAI,OAAO,eAAe,KAAK;AAC/B,gBAAQ,MAAM;AAAA,UACZ,KAAK;AAAA,UACL,KAAK;AACH,mBAAO,QAAQ;AAAA,UACjB,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AACH,mBAAO,OAAO;AAAA,UAChB;AACE,mBAAO;AAAA,QACX;AAAA,MACF;AAGA,eAAS,aAAa,WAAW;AAC/B,YAAI,CAAC,UAAU,eAAe,CAAC,UAAU,YAAY,MAAM;AACzD,iBAAO;AAAA,QACT;AACA,eAAO,UAAU,YAAY;AAAA,MAC/B;AAEA,qBAAe,iBAAiB;AAChC,qBAAe,oBAAoB,eAAe;AAClD,qBAAe,YAAY;AAE3B,aAAO;AAAA,IACT;AAAA;AAAA;;;ACjmBA;AAAA;AAAA;AASA,QAAI,uBAAuB;AAE3B,aAAS,gBAAgB;AAAA,IAAC;AAC1B,aAAS,yBAAyB;AAAA,IAAC;AACnC,2BAAuB,oBAAoB;AAE3C,WAAO,UAAU,WAAW;AAC1B,eAAS,KAAK,OAAO,UAAU,eAAe,UAAU,cAAc,QAAQ;AAC5E,YAAI,WAAW,sBAAsB;AAEnC;AAAA,QACF;AACA,YAAI,MAAM,IAAI;AAAA,UACZ;AAAA,QAGF;AACA,YAAI,OAAO;AACX,cAAM;AAAA,MACR;AAAC;AACD,WAAK,aAAa;AAClB,eAAS,UAAU;AACjB,eAAO;AAAA,MACT;AAAC;AAGD,UAAI,iBAAiB;AAAA,QACnB,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,QAAQ;AAAA,QAER,KAAK;AAAA,QACL,SAAS;AAAA,QACT,SAAS;AAAA,QACT,aAAa;AAAA,QACb,YAAY;AAAA,QACZ,MAAM;AAAA,QACN,UAAU;AAAA,QACV,OAAO;AAAA,QACP,WAAW;AAAA,QACX,OAAO;AAAA,QACP,OAAO;AAAA,QAEP,gBAAgB;AAAA,QAChB,mBAAmB;AAAA,MACrB;AAEA,qBAAe,YAAY;AAE3B,aAAO;AAAA,IACT;AAAA;AAAA;;;AChEA;AAAA;AAAA;AAOA,QAAI,QAAQ,IAAI,aAAa,cAAc;AACrC,gBAAU;AAIV,4BAAsB;AAC1B,aAAO,UAAU,kCAAqC,QAAQ,WAAW,mBAAmB;AAAA,IAC9F,OAAO;AAGL,aAAO,UAAU,mCAAsC;AAAA,IACzD;AAVM;AAIA;AAAA;AAAA;;;ACZN;AAAA;AAAA;AAAA;AAAA;AACA,SAAS,wBAAwB,SAAS;AACtC,QAAM,SAAS,CAAC,GAAG,QAAQ,MAAM;AACjC,QAAM,UAAU,OAAO,MAAM;AAC7B,MAAI,YAAY,QAAW;AACvB,WAAO,gBAAgB;AAAA,EAC3B;AACA,SAAO;AAAA,IACH,IAAI,KAAK,cAAc,SAAS;AAAA,MAC5B,MAAM,MAAM,QAAQ,QAAQ;AAAA,IAChC,GAAG;AACC,aAAO,QAAQ,IAAI,KAAK,cAAc,MAAM,EAAE,MAAM,MAAM;AACtD,eAAO,wBAAwB,EAAE,OAAO,CAAC,EAAE,IAAI,KAAK,cAAc,MAAM;AAAA,MAC5E,CAAC;AAAA,IACL;AAAA,IACA,IAAI,KAAK,OAAO;AACZ,aAAO,QAAQ,IAAI,KAAK,KAAK,EAAE,MAAM,MAAM;AACvC,eAAO,wBAAwB,EAAE,OAAO,CAAC,EAAE,IAAI,KAAK,KAAK;AAAA,MAC7D,CAAC;AAAA,IACL;AAAA,IACA,OAAO,KAAK;AACR,aAAO,QAAQ,OAAO,GAAG,EAAE,MAAM,MAAM;AACnC,eAAO,wBAAwB,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG;AAAA,MACzD,CAAC;AAAA,IACL;AAAA,IACA,QAAQ;AACJ,aAAO,QAAQ,MAAM,EAAE,MAAM,MAAM;AAC/B,eAAO,wBAAwB,EAAE,OAAO,CAAC,EAAE,MAAM;AAAA,MACrD,CAAC;AAAA,IACL;AAAA,EACJ;AACJ;AAEA,SAAS,kBAAkB;AACvB,SAAO;AAAA,IACH,IAAI,MAAM,cAAc,SAAS;AAAA,MAC7B,MAAM,MAAM,QAAQ,QAAQ;AAAA,IAChC,GAAG;AACC,YAAM,QAAQ,aAAa;AAC3B,aAAO,MACF,KAAK,YAAU,QAAQ,IAAI,CAAC,QAAQ,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,EACzD,KAAK,CAAC,CAAC,MAAM,MAAM,MAAM;AAAA,IAClC;AAAA,IACA,IAAI,MAAM,OAAO;AACb,aAAO,QAAQ,QAAQ,KAAK;AAAA,IAChC;AAAA,IACA,OAAO,MAAM;AACT,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAAA,IACA,QAAQ;AACJ,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAAA,EACJ;AACJ;AArDA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AAAA,SAAS,oBAAoB,UAAU,EAAE,cAAc,KAAK,GAAG;AAE3D,MAAI,QAAQ,CAAC;AACb,SAAO;AAAA,IACH,IAAI,KAAK,cAAc,SAAS;AAAA,MAC5B,MAAM,MAAM,QAAQ,QAAQ;AAAA,IAChC,GAAG;AACC,YAAM,cAAc,KAAK,UAAU,GAAG;AACtC,UAAI,eAAe,OAAO;AACtB,eAAO,QAAQ,QAAQ,QAAQ,eAAe,KAAK,MAAM,MAAM,WAAW,CAAC,IAAI,MAAM,WAAW,CAAC;AAAA,MACrG;AACA,YAAM,UAAU,aAAa;AAC7B,YAAM,OAAQ,UAAU,OAAO,SAAU,MAAM,QAAQ,QAAQ;AAC/D,aAAO,QAAQ,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,EAAE,KAAK,MAAM,OAAO;AAAA,IAClE;AAAA,IACA,IAAI,KAAK,OAAO;AAEZ,YAAM,KAAK,UAAU,GAAG,CAAC,IAAI,QAAQ,eAAe,KAAK,UAAU,KAAK,IAAI;AAC5E,aAAO,QAAQ,QAAQ,KAAK;AAAA,IAChC;AAAA,IACA,OAAO,KAAK;AAER,aAAO,MAAM,KAAK,UAAU,GAAG,CAAC;AAChC,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAAA,IACA,QAAQ;AACJ,cAAQ,CAAC;AACT,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAAA,EACJ;AACJ;AA9BA;AAAA;AAAA;AAAA;AAAA;;;ACAA,SAAS,WAAW,UAAU,OAAO,QAAQ;AACzC,QAAM,cAAc;AAAA,IAChB,qBAAqB;AAAA,IACrB,4BAA4B;AAAA,EAChC;AACA,SAAO;AAAA,IACH,UAAU;AACN,aAAO,aAAa,SAAS,gBAAgB,cAAc,CAAC;AAAA,IAChE;AAAA,IACA,kBAAkB;AACd,aAAO,aAAa,SAAS,wBAAwB,cAAc,CAAC;AAAA,IACxE;AAAA,EACJ;AACJ;AAwCA,SAAS,WAAW,MAAM,SAAS;AAC/B,MAAI,CAAC,SAAS;AACV,WAAO;AAAA,EACX;AACA,SAAO,KAAK,OAAO,EAAE,QAAQ,SAAO;AAEhC,SAAK,GAAG,IAAI,QAAQ,GAAG,EAAE,IAAI;AAAA,EACjC,CAAC;AACD,SAAO;AACX;AACA,SAAS,OAAO,WAAW,MAAM;AAE7B,MAAI,IAAI;AACR,SAAO,OAAO,QAAQ,OAAO,MAAM,mBAAmB,KAAK,GAAG,CAAC,CAAC;AACpE;AAnEA,IA6EM;AA7EN;AAAA;AAAA;AA6EA,IAAM,WAAW;AAAA;AAAA;AAAA;AAAA,MAIb,uBAAuB;AAAA;AAAA;AAAA;AAAA,MAIvB,eAAe;AAAA,IACnB;AAAA;AAAA;;;ACtFA;AAAA;AAAA;AAAA;AAAA,IAAM;AAAN;AAAA;AAAA;AAAA,IAAM,aAAa;AAAA,MACf,QAAQ;AAAA,MACR,KAAK;AAAA,MACL,MAAM;AAAA,MACN,KAAK;AAAA,IACT;AAAA;AAAA;;;ACLA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,SAAS,2BAA2B,gBAAgB,SAAS;AACzD,QAAM,UAAU,kBAAkB,CAAC;AACnC,QAAM,OAAO,QAAQ,QAAQ,CAAC;AAC9B,SAAO,KAAK,OAAO,EAAE,QAAQ,SAAO;AAChC,QAAI,CAAC,WAAW,WAAW,mBAAmB,QAAQ,WAAW,EAAE,QAAQ,GAAG,MAAM,IAAI;AACpF,WAAK,GAAG,IAAI,QAAQ,GAAG;AAAA,IAC3B;AAAA,EACJ,CAAC;AACD,SAAO;AAAA,IACH,MAAM,OAAO,QAAQ,IAAI,EAAE,SAAS,IAAI,OAAO;AAAA,IAC/C,SAAS,QAAQ,WAAW;AAAA,IAC5B,SAAS,QAAQ,WAAW,CAAC;AAAA,IAC7B,iBAAiB,QAAQ,mBAAmB,CAAC;AAAA,IAC7C,WAAW,QAAQ;AAAA,EACvB;AACJ;AA0BA,SAAS,mBAAmB,MAAM,SAAS,eAAe,IAAI;AAC1D,SAAO;AAAA,IACH,GAAG;AAAA,IACH;AAAA,IACA,YAAY,KAAK,IAAI;AAAA,EACzB;AACJ;AACA,SAAS,iBAAiB,MAAM;AAC5B,SAAO,KAAK,WAAW,eAAe,MAAM,KAAK,IAAI,IAAI,KAAK,aAAa;AAC/E;AACA,SAAS,wBAAwB,MAAM;AACnC,SAAQ,KAAK,WAAW,eAAe,aAAa,KAAK,IAAI,IAAI,KAAK,cAAc;AACxF;AAEA,SAAS,oBAAoB,SAAS;AAClC,MAAI,OAAO,YAAY,UAAU;AAC7B,WAAO;AAAA,MACH,UAAU;AAAA,MACV,KAAK;AAAA,MACL,QAAQ,SAAS;AAAA,IACrB;AAAA,EACJ;AACA,SAAO;AAAA,IACH,UAAU,QAAQ,YAAY;AAAA,IAC9B,KAAK,QAAQ;AAAA,IACb,QAAQ,QAAQ,UAAU,SAAS;AAAA,EACvC;AACJ;AAEA,SAAS,uBAAuB,YAAY,gBAAgB;AACxD,SAAO,QAAQ,IAAI,eAAe,IAAI,mBAAiB;AACnD,WAAO,WAAW,IAAI,eAAe,MAAM;AACvC,aAAO,QAAQ,QAAQ,mBAAmB,aAAa,CAAC;AAAA,IAC5D,CAAC;AAAA,EACL,CAAC,CAAC,EAAE,KAAK,mBAAiB;AACtB,UAAM,UAAU,cAAc,OAAO,UAAQ,iBAAiB,IAAI,CAAC;AACnE,UAAM,iBAAiB,cAAc,OAAO,UAAQ,wBAAwB,IAAI,CAAC;AAIjF,UAAM,iBAAiB,CAAC,GAAG,SAAS,GAAG,cAAc;AACrD,UAAM,0BAA0B,eAAe,SAAS,IAClD,eAAe,IAAI,UAAQ,oBAAoB,IAAI,CAAC,IACpD;AACN,WAAO;AAAA,MACH,WAAW,eAAe,aAAa;AAYnC,cAAM,oBAAoB,eAAe,WAAW,KAAK,kBAAkB,IACrE,IACA,eAAe,SAAS,IAAI;AAClC,eAAO,oBAAoB;AAAA,MAC/B;AAAA,MACA,gBAAgB;AAAA,IACpB;AAAA,EACJ,CAAC;AACL;AAuBA,SAAS,iBAAiB,aAAa,gBAAgB,SAAS,gBAAgB;AAC5E,QAAM,aAAa,CAAC;AAIpB,QAAM,OAAO,cAAc,SAAS,cAAc;AAClD,QAAM,UAAU,iBAAiB,aAAa,cAAc;AAC5D,QAAM,SAAS,QAAQ;AAEvB,QAAM,sBAAsB,QAAQ,WAAW,WAAW,MACpD,CAAC,IACD;AAAA,IACE,GAAG,QAAQ;AAAA,IACX,GAAG,eAAe;AAAA,EACtB;AACJ,QAAM,kBAAkB;AAAA,IACpB,mBAAmB,YAAY,UAAU;AAAA,IACzC,GAAG,YAAY;AAAA,IACf,GAAG;AAAA,IACH,GAAG,eAAe;AAAA,EACtB;AACA,MAAI,gBAAgB;AACpB,QAAM,QAAQ,CAAC,OACf,eAAe;AAIX,UAAM,OAAO,MAAM,IAAI;AACvB,QAAI,SAAS,QAAW;AACpB,YAAM,iBAAiB,6BAA6B,UAAU,CAAC;AAAA,IACnE;AACA,UAAM,UAAU;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA,KAAK,aAAa,MAAM,QAAQ,MAAM,eAAe;AAAA,MACrD,gBAAgB,WAAW,eAAe,YAAY,SAAS,OAAO;AAAA,MACtE,iBAAiB,WAAW,eAAe,eAAe,OAAO;AAAA,IACrE;AAMA,UAAM,mBAAmB,CAAC,aAAa;AACnC,YAAM,aAAa;AAAA,QACf,SAAS;AAAA,QACT;AAAA,QACA;AAAA,QACA,WAAW,MAAM;AAAA,MACrB;AAEA,iBAAW,KAAK,UAAU;AAC1B,aAAO;AAAA,IACX;AACA,UAAM,YAAY;AAAA,MACd,WAAW,cAAY,mBAAmB,QAAQ;AAAA,MAClD,QAAQ,UAAU;AACd,cAAM,aAAa,iBAAiB,QAAQ;AAK5C,YAAI,SAAS,YAAY;AACrB;AAAA,QACJ;AACA,eAAO,QAAQ,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAMf,YAAY,OAAO,KAAK,qBAAqB,6BAA6B,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAMrF,YAAY,WAAW,IAAI,MAAM,mBAAmB,MAAM,SAAS,aAAa,eAAe,YAAY,eAAe,IAAI,CAAC;AAAA,QACnI,CAAC,EAAE,KAAK,MAAM,MAAM,OAAO,UAAU,CAAC;AAAA,MAC1C;AAAA,MACA,OAAO,UAAU;AACb,yBAAiB,QAAQ;AACzB,cAAM,mBAAmB,UAAU,6BAA6B,UAAU,CAAC;AAAA,MAC/E;AAAA,IACJ;AACA,WAAO,YAAY,UAAU,KAAK,OAAO,EAAE,KAAK,cAAY;AACxD,aAAO,cAAc,UAAU,SAAS;AAAA,IAC5C,CAAC;AAAA,EACL;AASA,SAAO,uBAAuB,YAAY,YAAY,cAAc,EAAE,KAAK,aAAW;AAClF,WAAO,MAAM,CAAC,GAAG,QAAQ,cAAc,EAAE,QAAQ,GAAG,QAAQ,UAAU;AAAA,EAC1E,CAAC;AACL;AAEA,SAAS,kBAAkB,SAAS;AAChC,QAAM,EAAE,YAAY,QAAQ,WAAW,eAAe,gBAAgB,UAAU,WAAW,OAAO,iBAAiB,QAAS,IAAI;AAChI,QAAM,cAAc;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO,MAAM,IAAI,UAAQ,oBAAoB,IAAI,CAAC;AAAA,IAClD,KAAK,SAAS,gBAAgB;AAM1B,YAAM,uBAAuB,2BAA2B,gBAAgB,YAAY,SAAS,IAAI;AACjG,YAAM,yBAAyB,MAAM;AAMjC,eAAO,iBAAiB,aAAa,YAAY,MAAM,OAAO,WAAS,KAAK,SAAS,SAAS,UAAU,CAAC,GAAG,SAAS,oBAAoB;AAAA,MAC7I;AAMA,YAAM,YAAY,qBAAqB,cAAc,SAC/C,qBAAqB,YACrB,QAAQ;AAKd,UAAI,cAAc,MAAM;AACpB,eAAO,uBAAuB;AAAA,MAClC;AAMA,YAAM,MAAM;AAAA,QACR;AAAA,QACA;AAAA,QACA,aAAa;AAAA,UACT,iBAAiB,YAAY;AAAA,UAC7B,SAAS,YAAY;AAAA,QACzB;AAAA,MACJ;AAKA,aAAO,YAAY,eAAe,IAAI,KAAK,MAAM;AAK7C,eAAO,YAAY,cAAc,IAAI,KAAK,MAAM;AAC5C,iBAAQ,YAAY,cAMf,IAAI,KAAK,uBAAuB,CAAC,EACjC,KAAK,cAAY,QAAQ,IAAI,CAAC,YAAY,cAAc,OAAO,GAAG,GAAG,QAAQ,CAAC,GAAG,SAAO,QAAQ,IAAI,CAAC,YAAY,cAAc,OAAO,GAAG,GAAG,QAAQ,OAAO,GAAG,CAAC,CAAC,CAAC,EACjK,KAAK,CAAC,CAAC,GAAG,QAAQ,MAAM,QAAQ;AAAA,QACzC,CAAC;AAAA,MACL,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAMC,MAAM,cAAY,YAAY,eAAe,IAAI,KAAK,QAAQ;AAAA,MAClE,CAAC;AAAA,IACL;AAAA,IACA,MAAM,SAAS,gBAAgB;AAK3B,aAAO,iBAAiB,aAAa,YAAY,MAAM,OAAO,WAAS,KAAK,SAAS,SAAS,WAAW,CAAC,GAAG,SAAS,2BAA2B,gBAAgB,YAAY,SAAS,KAAK,CAAC;AAAA,IAChM;AAAA,EACJ;AACA,SAAO;AACX;AAEA,SAAS,gBAAgBC,UAAS;AAC9B,QAAM,YAAY;AAAA,IACd,OAAO,2BAA2BA,QAAO;AAAA,IACzC,IAAI,SAAS;AACT,YAAM,iBAAiB,KAAK,QAAQ,OAAO,GAAG,QAAQ,YAAY,SAAY,KAAK,QAAQ,OAAO,MAAM,EAAE;AAC1G,UAAI,UAAU,MAAM,QAAQ,cAAc,MAAM,IAAI;AAEhD,kBAAU,QAAQ,GAAG,UAAU,KAAK,GAAG,cAAc;AAAA,MACzD;AACA,aAAO;AAAA,IACX;AAAA,EACJ;AACA,SAAO;AACX;AAEA,SAAS,mBAAmB,UAAU;AAElC,MAAI;AACA,WAAO,KAAK,MAAM,SAAS,OAAO;AAAA,EACtC,SACO,GAAG;AACN,UAAM,2BAA2B,EAAE,SAAS,QAAQ;AAAA,EACxD;AACJ;AACA,SAAS,mBAAmB,EAAE,SAAS,OAAO,GAAG,YAAY;AAEzD,MAAI,UAAU;AAEd,MAAI;AACA,cAAU,KAAK,MAAM,OAAO,EAAE;AAAA,EAClC,SACO,GAAG;AAAA,EAEV;AACA,SAAO,eAAe,SAAS,QAAQ,UAAU;AACrD;AAGA,SAASC,QAAO,WAAW,MAAM;AAE7B,MAAI,IAAI;AACR,SAAO,OAAO,QAAQ,OAAO,MAAM,mBAAmB,KAAK,GAAG,CAAC,CAAC;AACpE;AAEA,SAAS,aAAa,MAAM,MAAM,iBAAiB;AAC/C,QAAM,0BAA0B,yBAAyB,eAAe;AAExE,MAAI,MAAM,GAAG,KAAK,QAAQ,MAAM,KAAK,GAAG,IAAI,KAAK,OAAO,CAAC,MAAM,MAAM,KAAK,OAAO,CAAC,IAAI,IAAI;AAC1F,MAAI,wBAAwB,QAAQ;AAChC,WAAO,IAAI,uBAAuB;AAAA,EACtC;AACA,SAAO;AACX;AACA,SAAS,yBAAyB,YAAY;AAC1C,QAAM,kBAAkB,CAAC,UAAU,OAAO,UAAU,SAAS,KAAK,KAAK,MAAM,qBACzE,OAAO,UAAU,SAAS,KAAK,KAAK,MAAM;AAC9C,SAAO,OAAO,KAAK,UAAU,EACxB,IAAI,SAAOA,QAAO,SAAS,KAAK,gBAAgB,WAAW,GAAG,CAAC,IAAI,KAAK,UAAU,WAAW,GAAG,CAAC,IAAI,WAAW,GAAG,CAAC,CAAC,EACrH,KAAK,GAAG;AACjB;AACA,SAAS,cAAc,SAAS,gBAAgB;AAC5C,MAAI,QAAQ,WAAW,WAAW,OAC7B,QAAQ,SAAS,UAAa,eAAe,SAAS,QAAY;AACnE,WAAO;AAAA,EACX;AACA,QAAM,OAAO,MAAM,QAAQ,QAAQ,IAAI,IACjC,QAAQ,OACR,EAAE,GAAG,QAAQ,MAAM,GAAG,eAAe,KAAK;AAChD,SAAO,KAAK,UAAU,IAAI;AAC9B;AACA,SAAS,iBAAiB,aAAa,gBAAgB;AACnD,QAAM,UAAU;AAAA,IACZ,GAAG,YAAY;AAAA,IACf,GAAG,eAAe;AAAA,EACtB;AACA,QAAM,oBAAoB,CAAC;AAC3B,SAAO,KAAK,OAAO,EAAE,QAAQ,YAAU;AACnC,UAAM,QAAQ,QAAQ,MAAM;AAG5B,sBAAkB,OAAO,YAAY,CAAC,IAAI;AAAA,EAC9C,CAAC;AACD,SAAO;AACX;AAEA,SAAS,6BAA6B,YAAY;AAC9C,SAAO,WAAW,IAAI,gBAAc,6BAA6B,UAAU,CAAC;AAChF;AACA,SAAS,6BAA6B,YAAY;AAC9C,QAAM,kBAAkB,WAAW,QAAQ,QAAQ,mBAAmB,IAChE,EAAE,qBAAqB,QAAQ,IAC/B,CAAC;AACP,SAAO;AAAA,IACH,GAAG;AAAA,IACH,SAAS;AAAA,MACL,GAAG,WAAW;AAAA,MACd,SAAS;AAAA,QACL,GAAG,WAAW,QAAQ;AAAA,QACtB,GAAG;AAAA,MACP;AAAA,IACJ;AAAA,EACJ;AACJ;AAEA,SAAS,eAAe,SAAS,QAAQ,uBAAuB;AAC5D,SAAO;AAAA,IACH,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACJ;AAEA,SAAS,2BAA2B,SAAS,UAAU;AACnD,SAAO;AAAA,IACH,MAAM;AAAA,IACN;AAAA,IACA;AAAA,EACJ;AACJ;AAEA,SAAS,iBAAiB,uBAAuB;AAC7C,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS;AAAA,IACT;AAAA,EACJ;AACJ;AAzcA,IAmBM,UAeA,gBAQA,kBAoEA,gBAGA,aAKA,WAGA;AAzHN;AAAA;AAAA;AAAA;AAmBA,IAAM,WAAW;AAAA;AAAA;AAAA;AAAA,MAIb,MAAM;AAAA;AAAA;AAAA;AAAA,MAIN,OAAO;AAAA;AAAA;AAAA;AAAA,MAIP,KAAK;AAAA,IACT;AAEA,IAAM,iBAAiB;AAAA,MACnB,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,WAAW;AAAA,IACf;AAIA,IAAM,mBAAmB,IAAI,KAAK;AAoElC,IAAM,iBAAiB,CAAC,EAAE,YAAY,OAAO,MAAM;AAC/C,aAAO,CAAC,cAAc,CAAC,CAAC,WAAW;AAAA,IACvC;AACA,IAAM,cAAc,CAAC,aAAa;AAC9B,YAAM,SAAS,SAAS;AACxB,YAAM,aAAa,SAAS;AAC5B,aAAQ,cAAc,eAAe,QAAQ,KAAM,CAAC,EAAE,SAAS,SAAS,KAAK,CAAC,EAAE,SAAS,SAAS;AAAA,IACtG;AACA,IAAM,YAAY,CAAC,EAAE,OAAO,MAAM;AAC9B,aAAO,CAAC,EAAE,SAAS,SAAS;AAAA,IAChC;AACA,IAAM,gBAAgB,CAAC,UAAU,aAAa;AAC1C,UAAI,YAAY,QAAQ,GAAG;AACvB,eAAO,SAAS,QAAQ,QAAQ;AAAA,MACpC;AACA,UAAI,UAAU,QAAQ,GAAG;AACrB,eAAO,SAAS,UAAU,QAAQ;AAAA,MACtC;AACA,aAAO,SAAS,OAAO,QAAQ;AAAA,IACnC;AAAA;AAAA;;;ACjIA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAIM,uBAoBA,WAUA,cASA,WASA,YASA;AA7DN;AAAA;AAAA;AAAA;AACA;AACA;AAEA,IAAM,wBAAwB,aAAW;AACrC,YAAM,SAAS,QAAQ,UAAU;AACjC,YAAM,OAAO,WAAW,SAAS,eAAe,QAAQ,OAAO,QAAQ,MAAM;AAC7E,YAAM,cAAc,kBAAkB;AAAA,QAClC,OAAO,CAAC,EAAE,KAAK,aAAa,MAAM,eAAe,CAAC;AAAA,QAClD,GAAG;AAAA,QACH,SAAS;AAAA,UACL,GAAG,KAAK,QAAQ;AAAA,UAChB,GAAG,EAAE,gBAAgB,mBAAmB;AAAA,UACxC,GAAG,QAAQ;AAAA,QACf;AAAA,QACA,iBAAiB;AAAA,UACb,GAAG,KAAK,gBAAgB;AAAA,UACxB,GAAG,QAAQ;AAAA,QACf;AAAA,MACJ,CAAC;AACD,YAAM,QAAQ,QAAQ;AACtB,aAAO,WAAW,EAAE,OAAO,YAAY,GAAG,QAAQ,OAAO;AAAA,IAC7D;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,eAAO,KAAK,YAAY,MAAM;AAAA,UAC1B,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAO,KAAK,YAAY,MAAM;AAAA,UAC1B,QAAQ,WAAW;AAAA,UACnB,MAAM,OAAO,gBAAgB,QAAQ;AAAA,QACzC,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM,OAAO,gBAAgB,QAAQ;AAAA,QACzC,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,aAAa,CAAC,SAAS;AACzB,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,aAAa,CAAC,SAAS;AACzB,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAO,KAAK,YAAY,MAAM;AAAA,UAC1B,QAAQ,WAAW;AAAA,UACnB,MAAM,OAAO,qBAAqB,QAAQ;AAAA,QAC9C,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAAA;AAAA;;;ACpEA;AAAA;AAAA,kBAAAC;AAAA,EAAA,kBAAAC;AAAA,EAAA,kBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA,gBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA,SAASD,YAAW,UAAU,OAAO,QAAQ;AACzC,QAAM,cAAc;AAAA,IAChB,qBAAqB;AAAA,IACrB,4BAA4B;AAAA,EAChC;AACA,SAAO;AAAA,IACH,UAAU;AACN,aAAO,aAAaF,UAAS,gBAAgB,cAAc,CAAC;AAAA,IAChE;AAAA,IACA,kBAAkB;AACd,aAAO,aAAaA,UAAS,wBAAwB,cAAc,CAAC;AAAA,IACxE;AAAA,EACJ;AACJ;AAEA,SAAS,uBAAuB,UAAU;AACtC,MAAI,eAAe;AACnB,QAAM,QAAQ,MAAM;AAChB;AACA,WAAO,IAAI,QAAQ,CAAC,YAAY;AAC5B,iBAAW,MAAM;AACb,gBAAQ,SAAS,KAAK,CAAC;AAAA,MAC3B,GAAG,KAAK,IAAI,MAAM,cAAc,GAAI,CAAC;AAAA,IACzC,CAAC;AAAA,EACL;AACA,SAAO,SAAS,KAAK;AACzB;AAEA,SAAS,sBAAsB,SAAS,OAAO,CAAC,WAAW,oBAAoB;AAC3E,SAAO,QAAQ,QAAQ;AAC3B,GAAG;AAEC,SAAO,OAAO,OAAO,SAAS;AAAA,IAC1B,KAAK,gBAAgB;AACjB,aAAO,sBAAsB,QACxB,KAAK,cAAY,QAAQ,IAAI,CAAC,KAAK,UAAU,cAAc,GAAG,QAAQ,CAAC,CAAC,EACxE,KAAK,oBAAkB,eAAe,CAAC,CAAC,CAAC;AAAA,IAClD;AAAA,EACJ,CAAC;AACL;AAGA,SAAS,QAAQ,OAAO;AACpB,MAAI,IAAI,MAAM,SAAS;AAEvB,OAAK,GAAG,IAAI,GAAG,KAAK;AAChB,UAAM,IAAI,KAAK,MAAM,KAAK,OAAO,KAAK,IAAI,EAAE;AAC5C,UAAM,IAAI,MAAM,CAAC;AACjB,UAAM,CAAC,IAAI,MAAM,CAAC;AAClB,UAAM,CAAC,IAAI;AAAA,EACf;AACA,SAAO;AACX;AACA,SAASC,YAAW,MAAM,SAAS;AAC/B,MAAI,CAAC,SAAS;AACV,WAAO;AAAA,EACX;AACA,SAAO,KAAK,OAAO,EAAE,QAAQ,SAAO;AAEhC,SAAK,GAAG,IAAI,QAAQ,GAAG,EAAE,IAAI;AAAA,EACjC,CAAC;AACD,SAAO;AACX;AACA,SAASE,QAAO,WAAW,MAAM;AAE7B,MAAI,IAAI;AACR,SAAO,OAAO,QAAQ,OAAO,MAAM,mBAAmB,KAAK,GAAG,CAAC,CAAC;AACpE;AAnEA,IAqEM,SAEA,SAMAH;AA7EN,IAAAI,0BAAA;AAAA;AAAA;AAqEA,IAAM,UAAU;AAEhB,IAAM,UAAU,CAAC,SAAS;AACtB,aAAO,MAAM;AACT,eAAO,KAAK,YAAY,UAAU,QAAQ;AAAA,MAC9C;AAAA,IACJ;AAEA,IAAMJ,YAAW;AAAA;AAAA;AAAA;AAAA,MAIb,uBAAuB;AAAA;AAAA;AAAA;AAAA,MAIvB,eAAe;AAAA,IACnB;AAAA;AAAA;;;ACtFA,SAASK,YAAW,UAAU,OAAO,QAAQ;AACzC,QAAM,cAAc;AAAA,IAChB,qBAAqB;AAAA,IACrB,4BAA4B;AAAA,EAChC;AACA,SAAO;AAAA,IACH,UAAU;AACN,aAAO,aAAaC,UAAS,gBAAgB,cAAc,CAAC;AAAA,IAChE;AAAA,IACA,kBAAkB;AACd,aAAO,aAAaA,UAAS,wBAAwB,cAAc,CAAC;AAAA,IACxE;AAAA,EACJ;AACJ;AAwCA,SAASC,YAAW,MAAM,SAAS;AAC/B,MAAI,CAAC,SAAS;AACV,WAAO;AAAA,EACX;AACA,SAAO,KAAK,OAAO,EAAE,QAAQ,SAAO;AAEhC,SAAK,GAAG,IAAI,QAAQ,GAAG,EAAE,IAAI;AAAA,EACjC,CAAC;AACD,SAAO;AACX;AA9DA,IA6EMD;AA7EN,IAAAE,0BAAA;AAAA;AAAA;AA6EA,IAAMF,YAAW;AAAA;AAAA;AAAA;AAAA,MAIb,uBAAuB;AAAA;AAAA;AAAA;AAAA,MAIvB,eAAe;AAAA,IACnB;AAAA;AAAA;;;ACtFA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAIM,6BAmBA,4BASA;AAhCN;AAAA;AAAA;AAAA,IAAAG;AACA;AACA;AAEA,IAAM,8BAA8B,aAAW;AAC3C,YAAM,SAAS,QAAQ,UAAU;AACjC,YAAM,OAAOC,YAAWC,UAAS,eAAe,QAAQ,OAAO,QAAQ,MAAM;AAC7E,YAAM,cAAc,kBAAkB;AAAA,QAClC,OAAO,CAAC,EAAE,KAAK,mBAAmB,MAAM,eAAe,CAAC;AAAA,QACxD,GAAG;AAAA,QACH,SAAS;AAAA,UACL,GAAG,KAAK,QAAQ;AAAA,UAChB,GAAG,EAAE,gBAAgB,mBAAmB;AAAA,UACxC,GAAG,QAAQ;AAAA,QACf;AAAA,QACA,iBAAiB;AAAA,UACb,GAAG,KAAK,gBAAgB;AAAA,UACxB,GAAG,QAAQ;AAAA,QACf;AAAA,MACJ,CAAC;AACD,aAAOC,YAAW,EAAE,OAAO,QAAQ,OAAO,YAAY,GAAG,QAAQ,OAAO;AAAA,IAC5E;AAEA,IAAM,6BAA6B,CAAC,SAAS;AACzC,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,6BAA6B,CAAC,SAAS;AACzC,aAAO,CAAC,yBAAyB,mBAAmB;AAChD,eAAO,KAAK,YAAY,MAAM;AAAA,UAC1B,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAAA;AAAA;;;ACxCA,SAASC,YAAW,UAAU,OAAO,QAAQ;AACzC,QAAM,cAAc;AAAA,IAChB,qBAAqB;AAAA,IACrB,4BAA4B;AAAA,EAChC;AACA,SAAO;AAAA,IACH,UAAU;AACN,aAAO,aAAaC,UAAS,gBAAgB,cAAc,CAAC;AAAA,IAChE;AAAA,IACA,kBAAkB;AACd,aAAO,aAAaA,UAAS,wBAAwB,cAAc,CAAC;AAAA,IACxE;AAAA,EACJ;AACJ;AAEA,SAASC,wBAAuB,UAAU;AACtC,MAAI,eAAe;AACnB,QAAM,QAAQ,MAAM;AAChB;AACA,WAAO,IAAI,QAAQ,CAAC,YAAY;AAC5B,iBAAW,MAAM;AACb,gBAAQ,SAAS,KAAK,CAAC;AAAA,MAC3B,GAAG,KAAK,IAAI,MAAM,cAAc,GAAI,CAAC;AAAA,IACzC,CAAC;AAAA,EACL;AACA,SAAO,SAAS,KAAK;AACzB;AAEA,SAASC,uBAAsB,SAAS,OAAO,CAAC,WAAW,oBAAoB;AAC3E,SAAO,QAAQ,QAAQ;AAC3B,GAAG;AAEC,SAAO,OAAO,OAAO,SAAS;AAAA,IAC1B,KAAK,gBAAgB;AACjB,aAAOA,uBAAsB,QACxB,KAAK,cAAY,QAAQ,IAAI,CAAC,KAAK,UAAU,cAAc,GAAG,QAAQ,CAAC,CAAC,EACxE,KAAK,oBAAkB,eAAe,CAAC,CAAC,CAAC;AAAA,IAClD;AAAA,EACJ,CAAC;AACL;AAGA,SAASC,SAAQ,OAAO;AACpB,MAAI,IAAI,MAAM,SAAS;AAEvB,OAAK,GAAG,IAAI,GAAG,KAAK;AAChB,UAAM,IAAI,KAAK,MAAM,KAAK,OAAO,KAAK,IAAI,EAAE;AAC5C,UAAM,IAAI,MAAM,CAAC;AACjB,UAAM,CAAC,IAAI,MAAM,CAAC;AAClB,UAAM,CAAC,IAAI;AAAA,EACf;AACA,SAAO;AACX;AACA,SAASC,YAAW,MAAM,SAAS;AAC/B,MAAI,CAAC,SAAS;AACV,WAAO;AAAA,EACX;AACA,SAAO,KAAK,OAAO,EAAE,QAAQ,SAAO;AAEhC,SAAK,GAAG,IAAI,QAAQ,GAAG,EAAE,IAAI;AAAA,EACjC,CAAC;AACD,SAAO;AACX;AACA,SAASC,QAAO,WAAW,MAAM;AAE7B,MAAI,IAAI;AACR,SAAO,OAAO,QAAQ,OAAO,MAAM,mBAAmB,KAAK,GAAG,CAAC,CAAC;AACpE;AAnEA,IA6EML;AA7EN,IAAAM,0BAAA;AAAA;AAAA;AA6EA,IAAMN,YAAW;AAAA;AAAA;AAAA;AAAA,MAIb,uBAAuB;AAAA;AAAA;AAAA;AAAA,MAIvB,eAAe;AAAA,IACnB;AAAA;AAAA;;;ACtFA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,SAAS,kBAAkB;AAE3B,SAAS,uBAAuB,SAAS;AACrC,QAAM,SAAS,CAAC,SAAS;AACrB,WAAO,QAAQ,QAAQ,IAAI,EAAE,KAAK,cAAY;AAK1C,UAAI,QAAQ,UAAU,QAAW;AAC7B,gBAAQ,MAAM,SAAS,IAAI;AAAA,MAC/B;AAMA,UAAI,QAAQ,WAAW,QAAQ,GAAG;AAC9B,eAAO;AAAA,MACX;AAMA,UAAI,SAAS,QAAQ;AACjB,eAAO,OAAO;AAAA,UACV,QAAQ,SAAS;AAAA,QACrB,CAAC;AAAA,MACL;AACA,aAAO,OAAO;AAAA,QACV,OAAO,KAAK,QAAQ,KAAK;AAAA,MAC7B,CAAC;AAAA,IACL,CAAC;AAAA,EACL;AACA,SAAO,OAAO,CAAC,CAAC;AACpB;AAyCA,SAAS,6BAA6B;AAClC,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS;AAAA,EAKb;AACJ;AAEA,SAAS,4BAA4B;AACjC,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS;AAAA,EACb;AACJ;AAEA,SAAS,gCAAgC;AACrC,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS;AAAA,EACb;AACJ;AAvGA,IAyCM,oBAgEA,WAyBA,cAaA,eAaA,wBAaA,WAkBA,WASA,cASA,cASA,eASA,cAoBA,yBAcA,uBAUA,WASA,YASA,uBASA,SASA,mCAYA,eASA,WASA,oBAcA,WAWA,aASA,cASA,aASA,aASA,WAkBA,eAmBA,oBAYA,iBAmBA,8BAcA,cAYA,0BAcA,eAmBA,uBAcA,yBAaA,eAYA,uBAUA,cA6CA,aAUA,OAeA,eAcA,aAyBA,gBAyBA,cA2CA,cASA,YAcA,eAcA,UAUA,aASA,cAQA,eASA,YAcA,eAcA,QAaA,aAcA,YA8BA,WASA,mBAYA,YAoBA,SASA,aAYA,YASA,SASA,qBAWA,sBAUA,mBA+DA,iBASA,oBASA,YAWA,aAkBA,UAMA,WAkBA,aAMA,cAkBA,QAaA,sBAaA,aAYA,gBAYA,aAeA,UAUA,eAkBA,iBAUA,WAMA,cAKA;AA9vCN;AAAA;AAAA;AAAA,IAAAO;AACA;AACA;AAuCA,IAAM,qBAAqB,aAAW;AAClC,YAAM,QAAQ,QAAQ;AACtB,YAAM,OAAOC,YAAW,QAAQ,aAAa,SAAY,QAAQ,WAAWC,UAAS,eAAe,OAAO,QAAQ,MAAM;AACzH,YAAM,cAAc,kBAAkB;AAAA,QAClC,OAAO;AAAA,UACH,EAAE,KAAK,GAAG,KAAK,oBAAoB,QAAQ,SAAS,KAAK;AAAA,UACzD,EAAE,KAAK,GAAG,KAAK,gBAAgB,QAAQ,SAAS,MAAM;AAAA,QAC1D,EAAE,OAAOC,SAAQ;AAAA,UACb,EAAE,KAAK,GAAG,KAAK,oBAAoB;AAAA,UACnC,EAAE,KAAK,GAAG,KAAK,oBAAoB;AAAA,UACnC,EAAE,KAAK,GAAG,KAAK,oBAAoB;AAAA,QACvC,CAAC,CAAC;AAAA,QACF,GAAG;AAAA,QACH,SAAS;AAAA,UACL,GAAG,KAAK,QAAQ;AAAA,UAChB,GAAG,EAAE,gBAAgB,oCAAoC;AAAA,UACzD,GAAG,QAAQ;AAAA,QACf;AAAA,QACA,iBAAiB;AAAA,UACb,GAAG,KAAK,gBAAgB;AAAA,UACxB,GAAG,QAAQ;AAAA,QACf;AAAA,MACJ,CAAC;AACD,YAAM,OAAO;AAAA,QACT;AAAA,QACA;AAAA,QACA,gBAAgB,SAASC,UAAS;AAC9B,sBAAY,UAAU,IAAI,EAAE,SAAS,SAAAA,SAAQ,CAAC;AAAA,QAClD;AAAA,QACA,aAAa;AACT,iBAAO,QAAQ,IAAI;AAAA,YACf,YAAY,cAAc,MAAM;AAAA,YAChC,YAAY,eAAe,MAAM;AAAA,UACrC,CAAC,EAAE,KAAK,MAAM,MAAS;AAAA,QAC3B;AAAA,MACJ;AACA,aAAOC,YAAW,MAAM,QAAQ,OAAO;AAAA,IAC3C;AA2BA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,KAAK,mBAAmB;AAC5B,cAAM,EAAE,iBAAiB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC3D,cAAM,OAAO;AAAA,UACT;AAAA,UACA,GAAI,oBAAoB,SAAY,EAAE,gBAAgB,IAAI,CAAC;AAAA,QAC/D;AACA,cAAM,OAAO,CAAC,UAAU,uBAAuB;AAC3C,iBAAOC,wBAAuB,WAAS;AACnC,mBAAO,UAAU,IAAI,EAAE,SAAS,KAAK,kBAAkB,EAAE,MAAM,CAAC,aAAa;AACzE,kBAAI,SAAS,WAAW,KAAK;AACzB,sBAAM;AAAA,cACV;AACA,qBAAO,MAAM;AAAA,YACjB,CAAC;AAAA,UACL,CAAC;AAAA,QACL;AACA,eAAOC,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN;AAAA,QACJ,GAAG,OAAO,GAAG,IAAI;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,QAAQ,aAAa,mBAAmB;AAC5C,cAAM,uBAAuB,2BAA2B,cAAc;AAEtE,6BAAqB,gBAAgB,mBAAmB,IAAI;AAC5D,eAAO,KAAK,YAAY,MAAM;AAAA,UAC1B,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM,EAAE,SAAS,YAAY;AAAA,QACjC,GAAG,oBAAoB;AAAA,MAC3B;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,SAAS,aAAa,mBAAmB;AAC7C,eAAO,KAAK,YAAY,MAAM;AAAA,UAC1B,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM;AAAA,YACF,OAAO;AAAA,YACP,SAAS;AAAA,UACb;AAAA,QACJ,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,yBAAyB,CAAC,SAAS;AACrC,aAAO,CAAC,YAAY,mBAAmB;AACnC,eAAOA,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,4BAA4B,UAAU;AAAA,UACnD,MAAM;AAAA,YACF,gCAAgC;AAAA,YAChC,UAAU,EAAE,QAAQ,YAAY,MAAM,CAAC,EAAE;AAAA,UAC7C;AAAA,QACJ,GAAG,cAAc,GAAG,CAAC,UAAU,uBAAuB,YAAY,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAChH;AAAA,IACJ;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,MAAM,IAAI,mBAAmB;AACjC,cAAM,OAAO,CAAC,UAAU,uBAAuB;AAC3C,iBAAO,UAAU,IAAI,EAAE,MAAM;AAAA,YACzB,SAAS,EAAE,SAAS;AAAA,UACxB,CAAC,EAAE,SAAS,SAAS,QAAQ,kBAAkB;AAAA,QACnD;AACA,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,0BAA0B,IAAI;AAAA,UAC3C,MAAM;AAAA,YACF,WAAW;AAAA,YACX,aAAa;AAAA,UACjB;AAAA,QACJ,GAAG,cAAc,GAAG,IAAI;AAAA,MAC5B;AAAA,IACJ;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,MAAM,IAAI,mBAAmB;AACjC,eAAO,UAAU,IAAI,EAAE,MAAM,IAAI;AAAA,UAC7B,GAAG;AAAA,UACH,OAAO,CAAC,UAAU,KAAK;AAAA,QAC3B,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,MAAM,IAAI,mBAAmB;AACjC,eAAO,UAAU,IAAI,EAAE,MAAM,IAAI;AAAA,UAC7B,GAAG;AAAA,UACH,OAAO,CAAC,UAAU,QAAQ;AAAA,QAC9B,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,MAAM,IAAI,mBAAmB;AACjC,eAAO,UAAU,IAAI,EAAE,MAAM,IAAI;AAAA,UAC7B,GAAG;AAAA,UACH,OAAO,CAAC,UAAU,QAAQ;AAAA,QAC9B,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,SAAS,mBAAmB;AAChC,YAAI,QAAQ,WAAW,WAAW,KAAK;AACnC,iBAAO,KAAK,YAAY,KAAK,SAAS,cAAc;AAAA,QACxD;AACA,eAAO,KAAK,YAAY,MAAM,SAAS,cAAc;AAAA,MACzD;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,cAAM,OAAO,CAAC,GAAG,uBAAuB;AACpC,iBAAOF,wBAAuB,WAAS;AACnC,mBAAO,UAAU,IAAI,EAAE,QAAQ,kBAAkB,EAC5C,KAAK,KAAK,EACV,MAAM,CAAC,aAAa;AACrB,kBAAI,SAAS,WAAW,KAAK;AACzB,sBAAM;AAAA,cACV;AAAA,YACJ,CAAC;AAAA,UACL,CAAC;AAAA,QACL;AACA,eAAOC,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,aAAa,MAAM;AAAA,QACpC,GAAG,cAAc,GAAG,IAAI;AAAA,MAC5B;AAAA,IACJ;AAEA,IAAM,0BAA0B,CAAC,SAAS;AACtC,aAAO,CAAC,YAAY,WAAW,mBAAmB;AAC9C,cAAM,WAAW,UAAU,IAAI,eAAa;AAAA,UACxC,QAAQ;AAAA,UACR,MAAM,EAAE,SAAS;AAAA,QACrB,EAAE;AACF,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,4BAA4B,UAAU;AAAA,UACnD,MAAM,EAAE,gCAAgC,OAAO,SAAS;AAAA,QAC5D,GAAG,cAAc,GAAG,CAAC,UAAU,uBAAuB,YAAY,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAChH;AAAA,IACJ;AAEA,IAAM,wBAAwB,MAAM;AAChC,aAAO,CAAC,cAAc,iBAAiB;AACnC,cAAM,kBAAkB,yBAAyB,YAAY;AAC7D,cAAM,aAAa,WAAW,UAAU,YAAY,EAC/C,OAAO,eAAe,EACtB,OAAO,KAAK;AACjB,eAAO,OAAO,KAAK,aAAa,eAAe,EAAE,SAAS,QAAQ;AAAA,MACtE;AAAA,IACJ;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,aAAa,MAAM;AAAA,QACpC,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,aAAa,CAAC,SAAS;AACzB,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,aAAa,OAAO,SAAS,CAAC;AAAA,QAC/C,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,wBAAwB,CAAC,SAAS;AACpC,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,UAAU,CAAC,SAAS;AACtB,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,oCAAoC,MAAM;AAC5C,aAAO,CAAC,kBAAkB;AACtB,cAAM,gBAAgB,OAAO,KAAK,eAAe,QAAQ,EAAE,SAAS,OAAO;AAC3E,cAAM,QAAQ;AACd,cAAM,QAAQ,cAAc,MAAM,KAAK;AACvC,YAAI,UAAU,MAAM;AAChB,gBAAM,8BAA8B;AAAA,QACxC;AACA,eAAO,SAAS,MAAM,CAAC,GAAG,EAAE,IAAI,KAAK,OAAM,oBAAI,KAAK,GAAE,QAAQ,IAAI,GAAI;AAAA,MAC1E;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,yBAAyB,MAAM;AAAA,QAChD,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,qBAAqB,CAAC,SAAS;AACjC,aAAO,CAAC,mBAAmB;AACvB,cAAM,EAAE,kBAAkB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC5D,YAAI,qBAAqB,MAAM;AAE3B,kBAAQ,cAAc;AAAA,QAC1B;AACA,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,OAAO;AAAA,MACd;AAAA,IACJ;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,WAAW,UAAU,CAAC,MAAM;AAChC,cAAMC,eAAc;AAAA,UAChB,aAAa,KAAK;AAAA,UAClB,OAAO,KAAK;AAAA,UACZ;AAAA,QACJ;AACA,eAAOJ,YAAWI,cAAa,QAAQ,OAAO;AAAA,MAClD;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,MAAM,IAAI,mBAAmB;AACjC,cAAM,OAAO,CAAC,UAAU,uBAAuB;AAC3C,iBAAO,UAAU,IAAI,EAAE,MAAM;AAAA,YACzB,SAAS,EAAE,SAAS;AAAA,UACxB,CAAC,EAAE,SAAS,SAAS,QAAQ,kBAAkB;AAAA,QACnD;AACA,eAAOF,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,0BAA0B,IAAI;AAAA,UAC3C,MAAM;AAAA,YACF,WAAW;AAAA,YACX,aAAa;AAAA,UACjB;AAAA,QACJ,GAAG,cAAc,GAAG,IAAI;AAAA,MAC5B;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,UAAU,mBAAmB;AACjC,cAAM,OAAO,CAAC,UAAU,uBAAuB;AAC3C,iBAAO,QAAQ,IAAI,OAAO,KAAK,SAAS,MAAM,EAAE,IAAI,eAAa;AAC7D,mBAAO,UAAU,IAAI,EAAE,WAAW;AAAA,cAC9B,SAAS,EAAE,SAAS;AAAA,YACxB,CAAC,EAAE,SAAS,SAAS,OAAO,SAAS,GAAG,kBAAkB;AAAA,UAC9D,CAAC,CAAC;AAAA,QACN;AACA,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,QACJ,GAAG,cAAc,GAAG,IAAI;AAAA,MAC5B;AAAA,IACJ;AAEA,IAAM,qBAAqB,CAAC,SAAS;AACjC,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,QACJ,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,kBAAkB,CAAC,SAAS;AAC9B,aAAO,CAAC,SAAS,mBAAmB;AAChC,cAAM,WAAW,QAAQ,IAAI,WAAS;AAClC,iBAAO;AAAA,YACH,GAAG;AAAA,YACH,QAAQ,yBAAyB,MAAM,UAAU,CAAC,CAAC;AAAA,UACvD;AAAA,QACJ,CAAC;AACD,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,QACf,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,+BAA+B,CAAC,SAAS;AAC3C,aAAO,CAAC,SAAS,mBAAmB;AAChC,eAAO,QAAQ,IAAI,QAAQ,IAAI,WAAS;AACpC,gBAAM,EAAE,WAAW,YAAY,GAAG,OAAO,IAAI,MAAM;AACnD,iBAAO,UAAU,IAAI,EAAE,MAAM,WAAW;AAAA,YACpC,SAAS,EAAE,qBAAqB;AAAA,UACpC,CAAC,EAAE,qBAAqB,WAAW,YAAY;AAAA,YAC3C,GAAG;AAAA,YACH,GAAG;AAAA,UACP,CAAC;AAAA,QACL,CAAC,CAAC;AAAA,MACN;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,cAAM,uBAAuB,2BAA2B,cAAc;AAEtE,6BAAqB,gBAAgB,mBAAmB,IAAI;AAC5D,eAAO,KAAK,YAAY,MAAM;AAAA,UAC1B,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,QACV,GAAG,oBAAoB;AAAA,MAC3B;AAAA,IACJ;AAEA,IAAM,2BAA2B,CAAC,SAAS;AACvC,aAAO,CAAC,YAAY,SAAS,mBAAmB;AAC5C,cAAM,WAAW,QAAQ,IAAI,YAAU;AAAA,UACnC,QAAQ;AAAA,UACR,MAAM;AAAA,QACV,EAAE;AACF,eAAOA,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,4BAA4B,UAAU;AAAA,UACnD,MAAM,EAAE,gCAAgC,MAAM,SAAS;AAAA,QAC3D,GAAG,cAAc,GAAG,CAAC,UAAU,uBAAuB,YAAY,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAChH;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,cAAM,OAAO,CAAC,GAAG,uBAAuB;AACpC,iBAAOF,wBAAuB,WAAS;AACnC,mBAAO,UAAU,IAAI,EAAE,QAAQ,kBAAkB,EAAE,MAAM,CAAC,aAAa;AACnE,kBAAI,SAAS,WAAW,KAAK;AACzB,sBAAM;AAAA,cACV;AACA,qBAAO,MAAM;AAAA,YACjB,CAAC;AAAA,UACL,CAAC;AAAA,QACL;AACA,eAAOC,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,qBAAqB,MAAM;AAAA,QAC5C,GAAG,cAAc,GAAG,IAAI;AAAA,MAC5B;AAAA,IACJ;AAEA,IAAM,wBAAwB,CAAC,SAAS;AACpC,aAAO,CAAC,YAAY,SAAS,mBAAmB;AAC5C,cAAM,WAAW,QAAQ,IAAI,YAAU;AAAA,UACnC,QAAQ;AAAA,UACR,MAAM;AAAA,QACV,EAAE;AACF,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,4BAA4B,UAAU;AAAA,UACnD,MAAM,EAAE,gCAAgC,OAAO,SAAS;AAAA,QAC5D,GAAG,cAAc,GAAG,CAAC,UAAU,uBAAuB,YAAY,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAChH;AAAA,IACJ;AAEA,IAAM,0BAA0B,CAAC,SAAS;AACtC,aAAO,CAAC,YAAY,OAAO,mBAAmB;AAC1C,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,6BAA6B,UAAU;AAAA,UACpD,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,QACf,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,OAAO,mBAAmB;AAC9B,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,QACJ,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,wBAAwB,CAAC,SAAS;AACpC,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM;AAAA,QACV,GAAG,cAAc,GAAG,CAAC,UAAU,uBAAuB,YAAY,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAChH;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,cAAM,gBAAgB,OAAO,OAAO,CAAC,GAAG,cAAc;AACtD,cAAM,EAAE,iBAAiB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC3D,cAAM,OAAO,kBAAkB,EAAE,gBAAgB,IAAI,CAAC;AACtD,cAAM,eAAe;AAAA,UACjB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACJ;AAEA,cAAM,aAAa,CAAC,sBAAsB;AACtC,iBAAO,OAAO,KAAK,aAAa,EAC3B,OAAO,CAAC,iBAAiB,aAAa,QAAQ,YAAY,MAAM,EAAE,EAClE,MAAM,kBAAgB;AAEvB,gBAAI,MAAM,QAAQ,kBAAkB,YAAY,CAAC,KAC7C,MAAM,QAAQ,cAAc,YAAY,CAAC,GAAG;AAC5C,oBAAM,yBAAyB,kBAAkB,YAAY;AAC7D,qBAAQ,uBAAuB,WAAW,cAAc,YAAY,EAAE,UAClE,uBAAuB,MAAM,CAAC,OAAO,UAAU,UAAU,cAAc,YAAY,EAAE,KAAK,CAAC;AAAA,YACnG,OACK;AACD,qBAAO,kBAAkB,YAAY,MAAM,cAAc,YAAY;AAAA,YACzE;AAAA,UACJ,CAAC;AAAA,QACL;AACA,cAAM,OAAO,CAAC,GAAG,uBAAuBD,wBAAuB,WAAS;AACpE,iBAAO,UAAU,IAAI,EAAE,QAAQ,kBAAkB,EAAE,KAAK,uBAAqB;AACzE,mBAAO,WAAW,iBAAiB,IAAI,QAAQ,QAAQ,IAAI,MAAM;AAAA,UACrE,CAAC;AAAA,QACL,CAAC;AACD,eAAOC,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,aAAa,MAAM;AAAA,UAChC;AAAA,QACJ,GAAG,OAAO,GAAG,IAAI;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,eAAOF,wBAAuB,WAAS;AACnC,iBAAO,WAAW,IAAI,EAAE,QAAQ,cAAc,EAAE,KAAK,cAAY;AAC7D,mBAAO,SAAS,WAAW,cAAc,MAAM,IAAI;AAAA,UACvD,CAAC;AAAA,QACL,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,QAAQ,CAAC,SAAS;AACpB,aAAO,CAAC,UAAU,mBAAmB;AACjC,cAAM,OAAO,CAAC,UAAU,uBAAuB;AAC3C,iBAAO,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB;AAAA,QAC7D;AACA,eAAOC,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,sBAAsB,KAAK,SAAS;AAAA,UACjD,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,QACJ,GAAG,cAAc,GAAG,IAAI;AAAA,MAC5B;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,mBAAmB;AACvB,eAAO,uBAAuB;AAAA,UAC1B,YAAY,cAAY,SAAS,WAAW;AAAA,UAC5C,GAAG;AAAA,UACH,SAAS,CAAC,SAAS,KAAK,YAAY,KAAK;AAAA,YACrC,QAAQ,WAAW;AAAA,YACnB,MAAMA,QAAO,uBAAuB,KAAK,SAAS;AAAA,YAClD;AAAA,UACJ,GAAG,cAAc;AAAA,QACrB,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,mBAAmB;AACvB,cAAM,UAAU;AAAA,UACZ,aAAa;AAAA,UACb,GAAG;AAAA,QACP;AACA,eAAO,uBAAuB;AAAA,UAC1B,YAAY,cAAY,SAAS,KAAK,SAAS,QAAQ;AAAA,UACvD,GAAG;AAAA,UACH,QAAQ,MAAM;AACV,mBAAO,YAAY,IAAI,EAAE,IAAI,EAAE,GAAG,SAAS,GAAG,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa;AACrE,qBAAO;AAAA,gBACH,GAAG;AAAA,gBACH,MAAM,SAAS,KAAK,IAAI,UAAQ;AAE5B,yBAAO,KAAK;AACZ,yBAAO;AAAA,gBACX,CAAC;AAAA,cACL;AAAA,YACJ,CAAC;AAAA,UACL;AAAA,QACJ,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,iBAAiB,CAAC,SAAS;AAC7B,aAAO,CAAC,mBAAmB;AACvB,cAAM,UAAU;AAAA,UACZ,aAAa;AAAA,UACb,GAAG;AAAA,QACP;AACA,eAAO,uBAAuB;AAAA,UAC1B,YAAY,cAAY,SAAS,KAAK,SAAS,QAAQ;AAAA,UACvD,GAAG;AAAA,UACH,QAAQ,MAAM;AACV,mBAAO,eAAe,IAAI,EAAE,IAAI,EAAE,GAAG,SAAS,GAAG,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa;AACxE,qBAAO;AAAA,gBACH,GAAG;AAAA,gBACH,MAAM,SAAS,KAAK,IAAI,aAAW;AAE/B,yBAAO,QAAQ;AACf,yBAAO;AAAA,gBACX,CAAC;AAAA,cACL;AAAA,YACJ,CAAC;AAAA,UACL;AAAA,QACJ,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,QAAQ,QAAQ,mBAAmB;AACvC,cAAM,EAAE,WAAW,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AACrD,cAAM,WAAW;AAAA,UACb,SAAS,CAAC;AAAA,UACV,WAAW,CAAC;AAAA,QAChB;AACA,cAAM,eAAe,CAAC,YAAY,MAAM;AAEpC,gBAAM,cAAc,CAAC;AAErB,cAAI;AAEJ,eAAK,QAAQ,WAAW,QAAQ,OAAO,QAAQ,SAAS;AAEpD,wBAAY,KAAK,OAAO,KAAK,CAAC;AAC9B,gBAAI,YAAY,YAAY,aAAa,MAAO;AAC5C;AAAA,YACJ;AAAA,UACJ;AACA,cAAI,YAAY,WAAW,GAAG;AAC1B,mBAAO,QAAQ,QAAQ,QAAQ;AAAA,UACnC;AACA,iBAAO,MAAM,IAAI,EAAE,YAAY,IAAI,CAAAE,UAAQ;AACvC,mBAAO;AAAA,cACH;AAAA,cACA,MAAAA;AAAA,YACJ;AAAA,UACJ,CAAC,GAAG,OAAO,EAAE,KAAK,SAAO;AACrB,qBAAS,YAAY,SAAS,UAAU,OAAO,IAAI,SAAS;AAC5D,qBAAS,QAAQ,KAAK,IAAI,MAAM;AAChC;AACA,mBAAO,aAAa,KAAK;AAAA,UAC7B,CAAC;AAAA,QACL;AACA,eAAOH,uBAAsB,aAAa,GAAG,CAAC,sBAAsB,uBAAuB;AACvF,iBAAO,QAAQ,IAAI,qBAAqB,QAAQ,IAAI,YAAU;AAC1D,mBAAO,SAAS,IAAI,EAAE,QAAQ,kBAAkB;AAAA,UACpD,CAAC,CAAC;AAAA,QACN,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,mBAAmB;AACvB,eAAOA,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,sBAAsB,KAAK,SAAS;AAAA,QACrD,GAAG,cAAc,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAC7G;AAAA,IACJ;AAEA,IAAM,aAAa,CAAC,SAAS;AACzB,aAAO,CAAC,mBAAmB;AACvB,cAAM,EAAE,mBAAmB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC7D,cAAM,uBAAuB,2BAA2B,OAAO;AAC/D,YAAI,mBAAmB;AACnB,+BAAqB,gBAAgB,oBAAoB;AAAA,QAC7D;AACA,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,4BAA4B,KAAK,SAAS;AAAA,QAC3D,GAAG,oBAAoB,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MACnH;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,mBAAmB;AACvB,cAAM,EAAE,mBAAmB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC7D,cAAM,uBAAuB,2BAA2B,OAAO;AAC/D,YAAI,mBAAmB;AACnB,+BAAqB,gBAAgB,oBAAoB;AAAA,QAC7D;AACA,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,+BAA+B,KAAK,SAAS;AAAA,QAC9D,GAAG,oBAAoB,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MACnH;AAAA,IACJ;AAEA,IAAM,WAAW,CAAC,SAAS;AACvB,aAAO,CAAC,SAAS,mBAAmB;AAChC,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,8BAA8B,KAAK,SAAS;AAAA,UACzD,MAAM;AAAA,QACV,GAAG,cAAc,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAC7G;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,mBAAmB;AACvB,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,gBAAgB,KAAK,SAAS;AAAA,QAC/C,GAAG,cAAc,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAC7G;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAOD,uBAAsB,cAAc,IAAI,EAAE,CAAC,QAAQ,GAAG,cAAc,EAAE,KAAK,cAAY;AAC1F,iBAAO,EAAE,QAAQ,SAAS,QAAQ,CAAC,EAAE;AAAA,QACzC,CAAC,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAC7F;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,WAAW,mBAAmB;AAClC,cAAM,UAAU,UAAU,IAAI,cAAY;AACtC,iBAAO,EAAE,SAAS;AAAA,QACtB,CAAC;AACD,eAAO,aAAa,IAAI,EAAE,SAAS,gBAAgB,cAAc,cAAc;AAAA,MACnF;AAAA,IACJ;AAEA,IAAM,aAAa,CAAC,SAAS;AACzB,aAAO,CAAC,UAAU,mBAAmB;AACjC,cAAM,EAAE,mBAAmB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC7D,cAAM,uBAAuB,2BAA2B,OAAO;AAC/D,YAAI,mBAAmB;AACnB,+BAAqB,gBAAgB,oBAAoB;AAAA,QAC7D;AACA,eAAOA,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,yBAAyB,KAAK,WAAW,QAAQ;AAAA,QAClE,GAAG,oBAAoB,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MACnH;AAAA,IACJ;AAEA,IAAM,gBAAgB,CAAC,SAAS;AAC5B,aAAO,CAAC,UAAU,mBAAmB;AACjC,cAAM,EAAE,mBAAmB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC7D,cAAM,uBAAuB,2BAA2B,OAAO;AAC/D,YAAI,mBAAmB;AACnB,+BAAqB,gBAAgB,oBAAoB;AAAA,QAC7D;AACA,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,4BAA4B,KAAK,WAAW,QAAQ;AAAA,QACrE,GAAG,oBAAoB,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MACnH;AAAA,IACJ;AAEA,IAAM,SAAS,CAAC,SAAS;AACrB,aAAO,CAAC,mBAAmB;AACvB,eAAO,YAAY,IAAI,EAAE,cAAc,EAClC,KAAK,MAAM,IAAI,EACf,MAAM,WAAS;AAChB,cAAI,MAAM,WAAW,KAAK;AACtB,kBAAM;AAAA,UACV;AACA,iBAAO;AAAA,QACX,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,OAAO,gBAAgB,mBAAmB;AAC9C,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,2BAA2B,KAAK,SAAS;AAAA,UACtD,MAAM;AAAA,YACF;AAAA,YACA;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,QACf,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,aAAa,CAAC,SAAS;AACzB,aAAO,CAAC,UAAU,mBAAmB;AACjC,cAAM,EAAE,OAAO,UAAU,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAE3D,YAAI,OAAO;AACX,cAAM,cAAc,MAAM;AACtB,iBAAO,OAAO,IAAI,EAAE,SAAS,IAAI,EAAE,GAAG,SAAS,KAAK,CAAC,EAAE,KAAK,YAAU;AAElE,uBAAW,CAAC,UAAU,GAAG,KAAK,OAAO,QAAQ,OAAO,IAAI,GAAG;AAEvD,kBAAI,SAAS,GAAG,GAAG;AACf,uBAAO;AAAA,kBACH,QAAQ;AAAA,kBACR,UAAU,SAAS,UAAU,EAAE;AAAA,kBAC/B;AAAA,gBACJ;AAAA,cACJ;AAAA,YACJ;AACA;AAEA,gBAAI,aAAa,SAAS,QAAQ,OAAO,SAAS;AAC9C,oBAAM,0BAA0B;AAAA,YACpC;AACA,mBAAO,YAAY;AAAA,UACvB,CAAC;AAAA,QACL;AACA,eAAO,YAAY;AAAA,MACvB;AAAA,IACJ;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,mBAAmB,KAAK,WAAW,QAAQ;AAAA,QAC5D,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,oBAAoB,MAAM;AAC5B,aAAO,CAAC,gBAAgB,aAAa;AAEjC,mBAAW,CAAC,UAAU,GAAG,KAAK,OAAO,QAAQ,eAAe,IAAI,GAAG;AAC/D,cAAI,IAAI,aAAa,UAAU;AAC3B,mBAAO,SAAS,UAAU,EAAE;AAAA,UAChC;AAAA,QACJ;AACA,eAAO;AAAA,MACX;AAAA,IACJ;AAEA,IAAM,aAAa,CAAC,SAAS;AACzB,aAAO,CAAC,WAAW,mBAAmB;AAClC,cAAM,EAAE,sBAAsB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAChE,cAAM,WAAW,UAAU,IAAI,cAAY;AACvC,iBAAO;AAAA,YACH,WAAW,KAAK;AAAA,YAChB;AAAA,YACA,GAAI,uBAAuB,EAAE,qBAAqB,IAAI,CAAC;AAAA,UAC3D;AAAA,QACJ,CAAC;AACD,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,QACJ,GAAG,OAAO;AAAA,MACd;AAAA,IACJ;AAEA,IAAM,UAAU,CAAC,SAAS;AACtB,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,yBAAyB,KAAK,WAAW,QAAQ;AAAA,QAClE,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,mBAAmB;AACvB,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,yBAAyB,KAAK,SAAS;AAAA,UACpD,MAAM;AAAA,YACF,YAAY;AAAA,UAChB;AAAA,QACJ,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,aAAa,CAAC,SAAS;AACzB,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,4BAA4B,KAAK,WAAW,QAAQ;AAAA,QACrE,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,UAAU,CAAC,SAAS;AACtB,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,wBAAwB,KAAK,WAAW,OAAO,SAAS,CAAC;AAAA,QAC1E,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,sBAAsB,CAAC,SAAS;AAClC,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,eAAOD,uBAAsB,qBAAqB,IAAI,EAAE,CAAC,MAAM,GAAG,cAAc,EAAE,KAAK,cAAY;AAC/F,iBAAO;AAAA,YACH,UAAU,SAAS,UAAU,CAAC;AAAA,YAC9B,QAAQ,SAAS,QAAQ,CAAC;AAAA,UAC9B;AAAA,QACJ,CAAC,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAC7F;AAAA,IACJ;AAEA,IAAM,uBAAuB,CAAC,SAAS;AACnC,aAAO,CAAC,SAAS,mBAAmB;AAChC,cAAM,EAAE,mBAAmB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC7D,cAAM,SAAS,oBACT,gBAAgB,sBAChB,gBAAgB;AACtB,eAAO,aAAa,IAAI,EAAE,SAAS,QAAQ,OAAO;AAAA,MACtD;AAAA,IACJ;AAEA,IAAM,oBAAoB,CAAC,SAAS;AAChC,aAAO,CAAC,SAAS,mBAAmB;AAChC,cAAM,EAAE,MAAM,gCAAgC,WAAW,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC3F,cAAM,YAAY,CAAC,MAAM,IAAI,MAAM,4BAA4B;AAC3D,iBAAOA,uBAAsB,KAAK,YAAY,MAAM;AAAA,YAChD,QAAQ,WAAW;AAAA,YACnB,MAAMC,QAAO,0BAA0B,IAAI;AAAA,YAC3C,MAAM;AAAA,cACF,WAAW;AAAA,cACX,aAAa;AAAA,YACjB;AAAA,UACJ,GAAG,uBAAuB,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,QACtH;AACA,cAAM,eAAe,KAAK,OAAO,EAC5B,SAAS,EAAE,EACX,UAAU,CAAC;AAChB,cAAM,qBAAqB,GAAG,KAAK,SAAS,QAAQ,YAAY;AAChE,cAAM,yBAAyB,YAAY;AAAA,UACvC,OAAO,KAAK;AAAA,UACZ,aAAa,KAAK;AAAA,UAClB,WAAW;AAAA,QACf,CAAC;AAGD,YAAI,YAAY,CAAC;AACjB,cAAM,sBAAsB,UAAU,KAAK,WAAW,oBAAoB,QAAQ;AAAA,UAC9E,GAAG;AAAA,UACH,OAAO,CAAC,YAAY,YAAY,OAAO;AAAA,QAC3C,CAAC;AAED,kBAAU,KAAK,mBAAmB;AAClC,cAAM,UAAU,OACV,oBAAoB,KAAK,OAAO,IAChC,qBACD,KAAK,MAAM;AACZ,gBAAM,6BAA6B,uBAAuB,SAAS;AAAA,YAC/D,GAAG;AAAA,YACH;AAAA,YACA;AAAA,UACJ,CAAC;AAED,oBAAU,KAAK,0BAA0B;AACzC,iBAAO,OAAO,2BAA2B,KAAK,OAAO,IAAI;AAAA,QAC7D,CAAC,EACI,KAAK,MAAM;AACZ,gBAAM,sBAAsB,UAAU,oBAAoB,KAAK,WAAW,QAAQ,OAAO;AAEzF,oBAAU,KAAK,mBAAmB;AAClC,iBAAO,OAAO,oBAAoB,KAAK,OAAO,IAAI;AAAA,QACtD,CAAC,EACI,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,EACjC,KAAK,CAAC,CAAC,cAAc,qBAAqB,YAAY,MAAM;AAC7D,iBAAO;AAAA,YACH,WAAW,oBAAoB;AAAA,YAC/B,SAAS,CAAC,aAAa,QAAQ,GAAG,oBAAoB,SAAS,aAAa,MAAM;AAAA,UACtF;AAAA,QACJ,CAAC;AACD,eAAOD,uBAAsB,QAAQ,CAAC,GAAG,uBAAuB;AAC5D,iBAAO,QAAQ,IAAI,UAAU,IAAI,cAAY,SAAS,KAAK,kBAAkB,CAAC,CAAC;AAAA,QACnF,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,kBAAkB,CAAC,SAAS;AAC9B,aAAO,CAAC,OAAO,mBAAmB;AAC9B,eAAO,UAAU,IAAI,EAAE,OAAO;AAAA,UAC1B,GAAG;AAAA,UACH,oBAAoB;AAAA,QACxB,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,qBAAqB,CAAC,SAAS;AACjC,aAAO,CAAC,UAAU,mBAAmB;AACjC,eAAO,aAAa,IAAI,EAAE,UAAU;AAAA,UAChC,GAAG;AAAA,UACH,uBAAuB;AAAA,QAC3B,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,aAAa,CAAC,SAAS;AACzB,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,eAAOA,uBAAsB,YAAY,IAAI,EAAE,CAAC,MAAM,GAAG,cAAc,EAAE,KAAK,cAAY;AACtF,iBAAO;AAAA,YACH,UAAU,SAAS,UAAU,CAAC;AAAA,YAC9B,QAAQ,SAAS,QAAQ,CAAC;AAAA,UAC9B;AAAA,QACJ,CAAC,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MAC7F;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,SAAS,mBAAmB;AAChC,cAAM,EAAE,gCAAgC,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC1E,cAAM,SAAS,iCACT,gBAAgB,YAChB,gBAAgB;AACtB,YAAI,WAAW,gBAAgB,cAAc;AAEzC,qBAAW,UAAU,SAAS;AAC1B,gBAAI,OAAO,aAAa,QAAW;AAC/B,qBAAOA,uBAAsB,QAAQ,OAAO,2BAA2B,CAAC,CAAC;AAAA,YAC7E;AAAA,UACJ;AAAA,QACJ;AACA,eAAO,aAAa,IAAI,EAAE,SAAS,QAAQ,OAAO;AAAA,MACtD;AAAA,IACJ;AAEA,IAAM,WAAW,CAAC,SAAS;AACvB,aAAO,CAAC,MAAM,mBAAmB;AAC7B,eAAO,UAAU,IAAI,EAAE,CAAC,IAAI,GAAG,cAAc;AAAA,MACjD;AAAA,IACJ;AAEA,IAAM,YAAY,CAAC,SAAS;AACxB,aAAO,CAAC,OAAO,mBAAmB;AAC9B,cAAM,EAAE,mBAAmB,oBAAoB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AACjF,cAAM,uBAAuB,2BAA2B,OAAO;AAC/D,YAAI,mBAAmB;AACnB,+BAAqB,gBAAgB,oBAAoB;AAAA,QAC7D;AACA,YAAI,oBAAoB;AACpB,+BAAqB,gBAAgB,qBAAqB;AAAA,QAC9D;AACA,eAAOA,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,4BAA4B,KAAK,SAAS;AAAA,UACvD,MAAM;AAAA,QACV,GAAG,oBAAoB,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MACnH;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,SAAS,mBAAmB;AAChC,eAAO,aAAa,IAAI,EAAE,CAAC,OAAO,GAAG,cAAc;AAAA,MACvD;AAAA,IACJ;AAEA,IAAM,eAAe,CAAC,SAAS;AAC3B,aAAO,CAAC,UAAU,mBAAmB;AACjC,cAAM,EAAE,mBAAmB,uBAAuB,yBAAyB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC7G,cAAM,uBAAuB,2BAA2B,OAAO;AAC/D,YAAI,mBAAmB;AACnB,+BAAqB,gBAAgB,oBAAoB;AAAA,QAC7D;AACA,YAAI,2BAA2B,uBAAuB;AAClD,+BAAqB,gBAAgB,0BAA0B;AAAA,QACnE;AACA,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,+BAA+B,KAAK,SAAS;AAAA,UAC1D,MAAM;AAAA,QACV,GAAG,oBAAoB,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MACnH;AAAA,IACJ;AAEA,IAAM,SAAS,CAAC,SAAS;AACrB,aAAO,CAAC,OAAO,mBAAmB;AAC9B,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,sBAAsB,KAAK,SAAS;AAAA,UACjD,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,QACf,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,uBAAuB,CAAC,SAAS;AACnC,aAAO,CAAC,WAAW,YAAY,mBAAmB;AAC9C,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,gCAAgC,KAAK,WAAW,SAAS;AAAA,UACtE,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,QACf,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,OAAO,mBAAmB;AAC9B,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,6BAA6B,KAAK,SAAS;AAAA,UACxD,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,QACJ,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,iBAAiB,CAAC,SAAS;AAC7B,aAAO,CAAC,OAAO,mBAAmB;AAC9B,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,WAAW;AAAA,UACnB,MAAMA,QAAO,gCAAgC,KAAK,SAAS;AAAA,UAC3D,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,QACJ,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,IAAM,cAAc,CAAC,SAAS;AAC1B,aAAO,CAAC,UAAU,mBAAmB;AACjC,cAAM,EAAE,mBAAmB,GAAG,QAAQ,IAAI,kBAAkB,CAAC;AAC7D,cAAM,uBAAuB,2BAA2B,OAAO;AAC/D,YAAI,mBAAmB;AACnB,+BAAqB,gBAAgB,oBAAoB;AAAA,QAC7D;AACA,eAAOD,uBAAsB,KAAK,YAAY,MAAM;AAAA,UAChD,QAAQ,WAAW;AAAA,UACnB,MAAMC,QAAO,yBAAyB,KAAK,SAAS;AAAA,UACpD,MAAM;AAAA,QACV,GAAG,oBAAoB,GAAG,CAAC,UAAU,uBAAuB,SAAS,IAAI,EAAE,SAAS,QAAQ,kBAAkB,CAAC;AAAA,MACnH;AAAA,IACJ;AAEA,IAAM,WAAW,CAAC,SAAS;AACvB,aAAO,CAAC,QAAQ,mBAAmB;AAC/B,eAAOF,wBAAuB,WAAS;AACnC,iBAAO,QAAQ,IAAI,EAAE,QAAQ,cAAc,EAAE,KAAK,cAAY;AAC1D,mBAAO,SAAS,WAAW,cAAc,MAAM,IAAI;AAAA,UACvD,CAAC;AAAA,QACL,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,IAAM,gBAAgB;AAAA,MAClB,WAAW;AAAA,MACX,WAAW;AAAA,MACX,SAAS;AAAA,MACT,aAAa;AAAA,MACb,cAAc;AAAA,MACd,cAAc;AAAA,MACd,WAAW;AAAA,MACX,aAAa;AAAA,MACb,MAAM;AAAA,MACN,iBAAiB;AAAA,MACjB,gBAAgB;AAAA,MAChB,QAAQ;AAAA,MACR,4BAA4B;AAAA,MAC5B,UAAU;AAAA,MACV,OAAO;AAAA,IACX;AAEA,IAAM,kBAAkB;AAAA,MACpB,WAAW;AAAA,MACX,cAAc;AAAA,MACd,qBAAqB;AAAA,MACrB,6BAA6B;AAAA,MAC7B,cAAc;AAAA,MACd,aAAa;AAAA,MACb,YAAY;AAAA,IAChB;AAEA,IAAM,YAAY;AAAA,MACd,UAAU;AAAA,MACV,UAAU;AAAA,MACV,OAAO;AAAA,IACX;AAEA,IAAM,eAAe;AAAA,MACjB,MAAM;AAAA,MACN,qBAAqB;AAAA,IACzB;AAEA,IAAM,cAAc;AAAA,MAChB,SAAS;AAAA,MACT,eAAe;AAAA,MACf,gBAAgB;AAAA,MAChB,gBAAgB;AAAA,MAChB,aAAa;AAAA,IACjB;AAAA;AAAA;;;ACpwCA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAS,mBAAmB;AACxB,SAAO;AAAA,IACH,MAAM,UAAU,OAAO;AACnB,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAAA,IACA,KAAK,UAAU,OAAO;AAClB,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAAA,IACA,MAAM,UAAU,OAAO;AACnB,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAAA,EACJ;AACJ;AAZA,IAcM;AAdN;AAAA;AAAA;AAcA,IAAM,eAAe;AAAA,MACjB,OAAO;AAAA,MACP,MAAM;AAAA,MACN,OAAO;AAAA,IACX;AAAA;AAAA;;;AClBA,IAAAK,6BAAA;AAAA,SAAAA,4BAAA;AAAA,kBAAAC;AAAA,EAAA,kBAAAC;AAAA,EAAA,kBAAAC;AAAA,EAAA,8BAAAC;AAAA,EAAA,6BAAAC;AAAA,EAAA,eAAAC;AAAA,EAAA,cAAAC;AAAA,EAAA,eAAAC;AAAA,EAAA,eAAAC;AAAA;AAAA,SAASN,YAAW,UAAU,OAAO,QAAQ;AACzC,QAAM,cAAc;AAAA,IAChB,qBAAqB;AAAA,IACrB,4BAA4B;AAAA,EAChC;AACA,SAAO;AAAA,IACH,UAAU;AACN,aAAO,aAAaF,UAAS,gBAAgB,cAAc,CAAC;AAAA,IAChE;AAAA,IACA,kBAAkB;AACd,aAAO,aAAaA,UAAS,wBAAwB,cAAc,CAAC;AAAA,IACxE;AAAA,EACJ;AACJ;AAEA,SAASG,wBAAuB,UAAU;AACtC,MAAI,eAAe;AACnB,QAAM,QAAQ,MAAM;AAChB;AACA,WAAO,IAAI,QAAQ,CAAC,YAAY;AAC5B,iBAAW,MAAM;AACb,gBAAQ,SAAS,KAAK,CAAC;AAAA,MAC3B,GAAG,KAAK,IAAI,MAAM,cAAc,GAAI,CAAC;AAAA,IACzC,CAAC;AAAA,EACL;AACA,SAAO,SAAS,KAAK;AACzB;AAEA,SAASC,uBAAsB,SAAS,OAAO,CAAC,WAAW,oBAAoB;AAC3E,SAAO,QAAQ,QAAQ;AAC3B,GAAG;AAEC,SAAO,OAAO,OAAO,SAAS;AAAA,IAC1B,KAAK,gBAAgB;AACjB,aAAOA,uBAAsB,QACxB,KAAK,cAAY,QAAQ,IAAI,CAAC,KAAK,UAAU,cAAc,GAAG,QAAQ,CAAC,CAAC,EACxE,KAAK,oBAAkB,eAAe,CAAC,CAAC,CAAC;AAAA,IAClD;AAAA,EACJ,CAAC;AACL;AAGA,SAASG,SAAQ,OAAO;AACpB,MAAI,IAAI,MAAM,SAAS;AAEvB,OAAK,GAAG,IAAI,GAAG,KAAK;AAChB,UAAM,IAAI,KAAK,MAAM,KAAK,OAAO,KAAK,IAAI,EAAE;AAC5C,UAAM,IAAI,MAAM,CAAC;AACjB,UAAM,CAAC,IAAI,MAAM,CAAC;AAClB,UAAM,CAAC,IAAI;AAAA,EACf;AACA,SAAO;AACX;AACA,SAASN,YAAW,MAAM,SAAS;AAC/B,MAAI,CAAC,SAAS;AACV,WAAO;AAAA,EACX;AACA,SAAO,KAAK,OAAO,EAAE,QAAQ,SAAO;AAEhC,SAAK,GAAG,IAAI,QAAQ,GAAG,EAAE,IAAI;AAAA,EACjC,CAAC;AACD,SAAO;AACX;AACA,SAASK,QAAO,WAAW,MAAM;AAE7B,MAAI,IAAI;AACR,SAAO,OAAO,QAAQ,OAAO,MAAM,mBAAmB,KAAK,GAAG,CAAC,CAAC;AACpE;AAnEA,IAqEME,UAEAH,UAMAL;AA7EN,IAAAS,0BAAA;AAAA;AAAA;AAqEA,IAAMD,WAAU;AAEhB,IAAMH,WAAU,CAAC,SAAS;AACtB,aAAO,MAAM;AACT,eAAO,KAAK,YAAY,UAAU,QAAQ;AAAA,MAC9C;AAAA,IACJ;AAEA,IAAML,YAAW;AAAA;AAAA;AAAA;AAAA,MAIb,uBAAuB;AAAA;AAAA;AAAA;AAAA,MAIvB,eAAe;AAAA,IACnB;AAAA;AAAA;;;ACtFA;AAAA;AAAA;AAAA;AAAA,YAAY,UAAU;AACtB,SAAS,aAAa;AACtB,YAAY,WAAW;AACvB,SAAS,SAAS,eAAe;AACjC,SAAS,SAAAU,cAAa;AAMtB,SAAS,wBAAwB,EAAE,OAAO,iBAAiB,WAAW,eAAe,YAAY,gBAAgB,mBAAmB,CAAC,EAAG,IAAI,CAAC,GAAG;AAC5I,QAAM,YAAY,iBAAiB,mBAAmB;AACtD,QAAM,aAAa,kBAAkB,mBAAmB;AACxD,SAAO;AAAA,IACH,KAAK,SAAS;AACV,aAAO,IAAI,QAAQ,aAAW;AAC1B,cAAM,MAAMA,OAAM,QAAQ,GAAG;AAC7B,cAAM,OAAO,IAAI,UAAU,OAAO,IAAI,WAAW,GAAG,IAAI,QAAQ,IAAI,IAAI,KAAK;AAC7E,cAAM,UAAU;AAAA,UACZ,GAAG;AAAA,UACH,OAAO,IAAI,aAAa,WAAW,aAAa;AAAA,UAChD,UAAU,IAAI;AAAA,UACd;AAAA,UACA,QAAQ,QAAQ;AAAA,UAChB,SAAS;AAAA,YACL,GAAI,oBAAoB,iBAAiB,UAAU,iBAAiB,UAAU,CAAC;AAAA,YAC/E,GAAG,QAAQ;AAAA,UACf;AAAA,UACA,GAAI,IAAI,SAAS,SAAY,EAAE,MAAM,IAAI,QAAQ,GAAG,IAAI,CAAC;AAAA,QAC7D;AACA,cAAM,OAAO,IAAI,aAAa,WAAW,QAAQ,MAAM,QAAQ,SAAS,cAAY;AAEhF,cAAI,iBAAiB,CAAC;AACtB,mBAAS,GAAG,QAAQ,WAAS;AACzB,6BAAiB,eAAe,OAAO,KAAK;AAAA,UAChD,CAAC;AACD,mBAAS,GAAG,OAAO,MAAM;AAErB,yBAAa,cAAc;AAE3B,yBAAa,eAAe;AAC5B,oBAAQ;AAAA,cACJ,QAAQ,SAAS,cAAc;AAAA,cAC/B,SAAS,OAAO,OAAO,cAAc,EAAE,SAAS;AAAA,cAChD,YAAY;AAAA,YAChB,CAAC;AAAA,UACL,CAAC;AAAA,QACL,CAAC;AACD,cAAM,gBAAgB,CAAC,SAAS,YAAY;AACxC,iBAAO,WAAW,MAAM;AACpB,gBAAI,MAAM;AACV,oBAAQ;AAAA,cACJ,QAAQ;AAAA,cACR;AAAA,cACA,YAAY;AAAA,YAChB,CAAC;AAAA,UACL,GAAG,UAAU,GAAI;AAAA,QACrB;AACA,cAAM,iBAAiB,cAAc,QAAQ,gBAAgB,oBAAoB;AAEjF,YAAI;AACJ,YAAI,GAAG,SAAS,WAAS;AACrB,uBAAa,cAAc;AAC3B,uBAAa,eAAe;AAC5B,kBAAQ,EAAE,QAAQ,GAAG,SAAS,MAAM,SAAS,YAAY,MAAM,CAAC;AAAA,QACpE,CAAC;AACD,YAAI,KAAK,YAAY,MAAM;AACvB,uBAAa,cAAc;AAC3B,4BAAkB,cAAc,QAAQ,iBAAiB,gBAAgB;AAAA,QAC7E,CAAC;AACD,YAAI,QAAQ,SAAS,QAAW;AAC5B,cAAI,MAAM,QAAQ,IAAI;AAAA,QAC1B;AACA,YAAI,IAAI;AAAA,MACZ,CAAC;AAAA,IACL;AAAA,IACA,UAAU;AACN,gBAAU,QAAQ;AAClB,iBAAW,QAAQ;AACnB,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAAA,EACJ;AACJ;AAlFA,IAOM,cACA,kBACA;AATN;AAAA;AAAA;AAOA,IAAM,eAAe,EAAE,WAAW,KAAK;AACvC,IAAM,mBAAmB,IAAI,MAAM,YAAY;AAC/C,IAAM,oBAAoB,IAAI,QAAQ,YAAY;AAAA;AAAA;;;ACTlD;AAAA;AAAA;AAEA,QAAI,cAAc;AAClB,QAAI,gBAAgB;AACpB,QAAI,eAAe;AACnB,QAAI,eAAe;AACnB,QAAI,oBAAoB;AACxB,QAAI,cAAc;AAClB,QAAI,kBAAkB;AAEtB,QAAM,wBAAwB,aAAW;AACrC,YAAM,QAAQ,QAAQ;AACtB,YAAM,OAAO,aAAa,WAAW,QAAQ,aAAa,SAAY,QAAQ,WAAW,aAAa,SAAS,eAAe,OAAO,QAAQ,MAAM;AACnJ,YAAM,gBAAgB,YAAY,kBAAkB;AAAA,QAChD,OAAO;AAAA,UACH,EAAE,KAAK,GAAG,KAAK,oBAAoB,QAAQ,YAAY,SAAS,KAAK;AAAA,UACrE,EAAE,KAAK,GAAG,KAAK,gBAAgB,QAAQ,YAAY,SAAS,MAAM;AAAA,QACtE,EAAE,OAAO,aAAa,QAAQ;AAAA,UAC1B,EAAE,KAAK,GAAG,KAAK,oBAAoB;AAAA,UACnC,EAAE,KAAK,GAAG,KAAK,oBAAoB;AAAA,UACnC,EAAE,KAAK,GAAG,KAAK,oBAAoB;AAAA,QACvC,CAAC,CAAC;AAAA,QACF,GAAG;AAAA,QACH,SAAS;AAAA,UACL,GAAG,KAAK,QAAQ;AAAA,UAChB,GAAG,EAAE,gBAAgB,oCAAoC;AAAA,UACzD,GAAG,QAAQ;AAAA,QACf;AAAA,QACA,iBAAiB;AAAA,UACb,GAAG,KAAK,gBAAgB;AAAA,UACxB,GAAG,QAAQ;AAAA,QACf;AAAA,MACJ,CAAC;AACD,YAAM,OAAO;AAAA,QACT,aAAa;AAAA,QACb;AAAA,QACA,gBAAgB,SAASC,UAAS;AAC9B,wBAAc,UAAU,IAAI,EAAE,SAAS,SAAAA,SAAQ,CAAC;AAAA,QACpD;AAAA,QACA,aAAa;AACT,iBAAO,QAAQ,IAAI;AAAA,YACf,cAAc,cAAc,MAAM;AAAA,YAClC,cAAc,eAAe,MAAM;AAAA,UACvC,CAAC,EAAE,KAAK,MAAM,MAAS;AAAA,QAC3B;AAAA,MACJ;AACA,aAAO,aAAa,WAAW,MAAM,QAAQ,OAAO;AAAA,IACxD;AAEA,QAAM,qBAAqB,UAAQ;AAC/B,aAAO,CAAC,SAAS,mBAAmB;AAChC,cAAM,WAAW,QAAQ,IAAI,YAAU;AAAA,UACnC,GAAG;AAAA;AAAA;AAAA;AAAA,UAIH,WAAW,MAAM,aAAa;AAAA,QAClC,EAAE;AACF,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,gBAAgB,WAAW;AAAA,UACnC,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,QACf,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,QAAM,8BAA8B,UAAQ;AACxC,aAAO,CAAC,SAAS,mBAAmB;AAChC,eAAO,mBAAmB,IAAI,EAAE,QAAQ,IAAI,YAAU;AAAA,UAClD,GAAG;AAAA,UACH,oBAAoB,CAAC;AAAA,UACrB,OAAO;AAAA,QACX,EAAE,GAAG,cAAc;AAAA,MACvB;AAAA,IACJ;AAEA,QAAM,qBAAqB,UAAQ;AAC/B,aAAO,CAAC,SAAS,mBAAmB;AAChC,eAAO,mBAAmB,IAAI,EAAE,QAAQ,IAAI,YAAU;AAAA,UAClD,GAAG;AAAA,UACH,OAAO;AAAA,QACX,EAAE,GAAG,cAAc;AAAA,MACvB;AAAA,IACJ;AAEA,QAAM,oBAAoB,UAAQ;AAC9B,aAAO,CAAC,SAAS,mBAAmB;AAChC,cAAM,WAAW,QAAQ,IAAI,YAAU;AAAA,UACnC,GAAG;AAAA,UACH,OAAO;AAAA;AAAA;AAAA;AAAA,UAIP,WAAW,MAAM,aAAa;AAAA,QAClC,EAAE;AACF,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,gBAAgB,WAAW;AAAA,UACnC,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,QACf,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,QAAM,mBAAmB,UAAQ;AAC7B,aAAO,CAAC,SAAS,mBAAmB;AAChC,cAAM,WAAW,QAAQ,IAAI,YAAU;AAAA,UACnC,GAAG;AAAA,UACH,OAAO;AAAA;AAAA;AAAA;AAAA,UAIP,WAAW,MAAM,aAAa;AAAA,QAClC,EAAE;AACF,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,gBAAgB,WAAW;AAAA,UACnC,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,QACf,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,QAAM,oBAAoB,UAAQ;AAC9B,aAAO,CAAC,SAAS,mBAAmB;AAChC,eAAO,mBAAmB,IAAI,EAAE,QAAQ,IAAI,YAAU;AAAA,UAClD,GAAG;AAAA,UACH,OAAO;AAAA,QACX,EAAE,GAAG,cAAc;AAAA,MACvB;AAAA,IACJ;AAEA,QAAM,uBAAuB,UAAQ;AACjC,aAAO,CAAC,SAAS,mBAAmB;AAChC,cAAM,WAAW,QAAQ,IAAI,YAAU;AAAA,UACnC,GAAG;AAAA,UACH,OAAO;AAAA,UACP,WAAW,MAAM,aAAa;AAAA,QAClC,EAAE;AACF,eAAO,KAAK,YAAY,KAAK;AAAA,UACzB,QAAQ,gBAAgB,WAAW;AAAA,UACnC,MAAM;AAAA,UACN,MAAM;AAAA,YACF;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,QACf,GAAG,cAAc;AAAA,MACrB;AAAA,IACJ;AAEA,aAAS,UAAU,OAAO,QAAQ,SAAS;AACvC,YAAM,gBAAgB;AAAA,QAClB;AAAA,QACA;AAAA,QACA,UAAU;AAAA,UACN,SAAS;AAAA,UACT,MAAM;AAAA,UACN,OAAO;AAAA,QACX;AAAA,QACA,WAAW,kBAAkB,wBAAwB;AAAA,QACrD,QAAQ,aAAa,iBAAiB;AAAA,QACtC,gBAAgB,YAAY,gBAAgB;AAAA,QAC5C,eAAe,YAAY,gBAAgB;AAAA,QAC3C,YAAY,cAAc,oBAAoB;AAAA,QAC9C,WAAW,YAAY,gBAAgB,aAAa,OAAO,EACtD,IAAI,EAAE,SAAS,aAAa,SAAS,aAAa,QAAQ,CAAC,EAC3D,IAAI,EAAE,SAAS,WAAW,SAAS,QAAQ,SAAS,KAAK,CAAC;AAAA,MACnE;AACA,aAAO,sBAAsB;AAAA,QACzB,GAAG;AAAA,QACH,GAAG;AAAA,QACH,SAAS;AAAA,UACL,SAAS,aAAa;AAAA,UACtB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACJ;AAAA,MACJ,CAAC;AAAA,IACL;AAEA,cAAU,UAAU,aAAa;AACjC,cAAU,8BAA8B;AACxC,cAAU,qBAAqB;AAC/B,cAAU,qBAAqB;AAC/B,cAAU,oBAAoB;AAC9B,cAAU,mBAAmB;AAC7B,cAAU,oBAAoB;AAC9B,cAAU,uBAAuB;AAEjC,WAAO,UAAU;AAAA;AAAA;;;ACxMjB;AAAA;AAAA;AACA,QAAM,YAAY;AAOlB,WAAO,UAAU;AAMjB,WAAO,QAAQ,UAAU;AAAA;AAAA;;;ACdzB,IAAAC,mCAAA;AAAA,SAAAA,kCAAA;AAAA,iCAAAC;AAAA;AAAA,YAAYC,WAAU;AACtB,SAAS,SAAAC,cAAa;AACtB,YAAYC,YAAW;AACvB,SAAS,SAASC,gBAAe;AACjC,SAAS,SAAAC,cAAa;AAMtB,SAASL,yBAAwB,EAAE,OAAO,iBAAiB,WAAW,eAAe,YAAY,gBAAgB,mBAAmB,CAAC,EAAG,IAAI,CAAC,GAAG;AAC5I,QAAM,YAAY,iBAAiB,mBAAmBM;AACtD,QAAM,aAAa,kBAAkB,mBAAmBC;AACxD,SAAO;AAAA,IACH,KAAK,SAAS;AACV,aAAO,IAAI,QAAQ,aAAW;AAC1B,cAAM,MAAMF,OAAM,QAAQ,GAAG;AAC7B,cAAM,OAAO,IAAI,UAAU,OAAO,IAAI,WAAW,GAAG,IAAI,QAAQ,IAAI,IAAI,KAAK;AAC7E,cAAM,UAAU;AAAA,UACZ,GAAG;AAAA,UACH,OAAO,IAAI,aAAa,WAAW,aAAa;AAAA,UAChD,UAAU,IAAI;AAAA,UACd;AAAA,UACA,QAAQ,QAAQ;AAAA,UAChB,SAAS;AAAA,YACL,GAAI,oBAAoB,iBAAiB,UAAU,iBAAiB,UAAU,CAAC;AAAA,YAC/E,GAAG,QAAQ;AAAA,UACf;AAAA,UACA,GAAI,IAAI,SAAS,SAAY,EAAE,MAAM,IAAI,QAAQ,GAAG,IAAI,CAAC;AAAA,QAC7D;AACA,cAAM,OAAO,IAAI,aAAa,WAAWF,SAAQF,OAAM,QAAQ,SAAS,cAAY;AAEhF,cAAI,iBAAiB,CAAC;AACtB,mBAAS,GAAG,QAAQ,WAAS;AACzB,6BAAiB,eAAe,OAAO,KAAK;AAAA,UAChD,CAAC;AACD,mBAAS,GAAG,OAAO,MAAM;AAErB,yBAAa,cAAc;AAE3B,yBAAa,eAAe;AAC5B,oBAAQ;AAAA,cACJ,QAAQ,SAAS,cAAc;AAAA,cAC/B,SAAS,OAAO,OAAO,cAAc,EAAE,SAAS;AAAA,cAChD,YAAY;AAAA,YAChB,CAAC;AAAA,UACL,CAAC;AAAA,QACL,CAAC;AACD,cAAM,gBAAgB,CAAC,SAAS,YAAY;AACxC,iBAAO,WAAW,MAAM;AACpB,gBAAI,MAAM;AACV,oBAAQ;AAAA,cACJ,QAAQ;AAAA,cACR;AAAA,cACA,YAAY;AAAA,YAChB,CAAC;AAAA,UACL,GAAG,UAAU,GAAI;AAAA,QACrB;AACA,cAAM,iBAAiB,cAAc,QAAQ,gBAAgB,oBAAoB;AAEjF,YAAI;AACJ,YAAI,GAAG,SAAS,WAAS;AACrB,uBAAa,cAAc;AAC3B,uBAAa,eAAe;AAC5B,kBAAQ,EAAE,QAAQ,GAAG,SAAS,MAAM,SAAS,YAAY,MAAM,CAAC;AAAA,QACpE,CAAC;AACD,YAAI,KAAK,YAAY,MAAM;AACvB,uBAAa,cAAc;AAC3B,4BAAkB,cAAc,QAAQ,iBAAiB,gBAAgB;AAAA,QAC7E,CAAC;AACD,YAAI,QAAQ,SAAS,QAAW;AAC5B,cAAI,MAAM,QAAQ,IAAI;AAAA,QAC1B;AACA,YAAI,IAAI;AAAA,MACZ,CAAC;AAAA,IACL;AAAA,IACA,UAAU;AACN,gBAAU,QAAQ;AAClB,iBAAW,QAAQ;AACnB,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAAA,EACJ;AACJ;AAlFA,IAOMO,eACAF,mBACAC;AATN,IAAAE,gCAAA;AAAA;AAAA;AAOA,IAAMD,gBAAe,EAAE,WAAW,KAAK;AACvC,IAAMF,oBAAmB,IAAIJ,OAAMM,aAAY;AAC/C,IAAMD,qBAAoB,IAAIH,SAAQI,aAAY;AAAA;AAAA;;;ACTlD;AAAA;AAAA;AAEA,QAAI,cAAc;AAClB,QAAI,gBAAgB;AACpB,QAAI,kBAAkB;AACtB,QAAI,eAAe;AACnB,QAAI,wBAAwB;AAC5B,QAAI,eAAe;AACnB,QAAI,eAAe;AACnB,QAAI,YAAY;AAChB,QAAI,oBAAoB;AACxB,QAAI,cAAc;AAElB,aAASE,eAAc,OAAO,QAAQ,SAAS;AAC3C,YAAM,gBAAgB;AAAA,QAClB;AAAA,QACA;AAAA,QACA,UAAU;AAAA,UACN,SAAS;AAAA,UACT,MAAM;AAAA,UACN,OAAO;AAAA,QACX;AAAA,QACA,WAAW,kBAAkB,wBAAwB;AAAA,QACrD,QAAQ,aAAa,iBAAiB;AAAA,QACtC,gBAAgB,YAAY,gBAAgB;AAAA,QAC5C,eAAe,YAAY,gBAAgB;AAAA,QAC3C,YAAY,cAAc,oBAAoB;AAAA,QAC9C,WAAW,YAAY,gBAAgB,aAAa,OAAO,EAAE,IAAI;AAAA,UAC7D,SAAS;AAAA,UACT,SAAS,QAAQ,SAAS;AAAA,QAC9B,CAAC;AAAA,MACL;AACA,YAAM,sBAAsB,EAAE,GAAG,eAAe,GAAG,QAAQ;AAC3D,YAAM,sBAAsB,MAAM,CAAC,kBAAkB;AACjD,eAAO,sBAAsB,4BAA4B;AAAA,UACrD,GAAG;AAAA,UACH,GAAG;AAAA,UACH,SAAS;AAAA,YACL,4BAA4B,sBAAsB;AAAA,YAClD,4BAA4B,sBAAsB;AAAA,UACtD;AAAA,QACJ,CAAC;AAAA,MACL;AACA,aAAO,aAAa,mBAAmB;AAAA,QACnC,GAAG;AAAA,QACH,SAAS;AAAA,UACL,QAAQ,aAAa;AAAA,UACrB,sBAAsB,aAAa;AAAA,UACnC,eAAe,aAAa;AAAA,UAC5B,oBAAoB,aAAa;AAAA,UACjC,iBAAiB,aAAa;AAAA,UAC9B,WAAW,aAAa;AAAA,UACxB,cAAc,aAAa;AAAA,UAC3B,WAAW,aAAa;AAAA,UACxB,cAAc,aAAa;AAAA,UAC3B,WAAW,aAAa;AAAA,UACxB,aAAa,aAAa;AAAA,UAC1B,SAAS,aAAa;AAAA,UACtB,cAAc,aAAa;AAAA,UAC3B,8BAA8B,aAAa;AAAA,UAC3C,WAAW,aAAa;AAAA,UACxB,WAAW,aAAa;AAAA,UACxB,aAAa,aAAa;AAAA,UAC1B,cAAc,aAAa;AAAA,UAC3B,cAAc,aAAa;AAAA,UAC3B,eAAe,aAAa;AAAA,UAC5B,cAAc,aAAa;AAAA,UAC3B,eAAe,aAAa;AAAA,UAC5B,WAAW,aAAa;AAAA,UACxB,eAAe,aAAa;AAAA,UAC5B,aAAa,aAAa;AAAA,UAC1B,eAAe,aAAa;AAAA,UAC5B,cAAc,aAAa;AAAA,UAC3B,oBAAoB,aAAa;AAAA,UACjC,uBAAuB,aAAa;AAAA,UACpC,mCAAmC,aAAa;AAAA,UAChD,SAAS,aAAa;AAAA,UACtB,wBAAwB,aAAa;AAAA,UACrC,yBAAyB,aAAa;AAAA,UACtC,uBAAuB,aAAa;AAAA,UACpC,YAAY,aAAa;AAAA,UACzB,0BAA0B,aAAa;AAAA,UACvC,uBAAuB,aAAa;AAAA,UACpC,yBAAyB,aAAa;AAAA,UACtC,uBAAuB,aAAa;AAAA,UACpC,aAAa,aAAa;AAAA,UAC1B,eAAe,aAAa;AAAA,UAC5B,WAAW,UAAQ,CAAC,cAAc;AAC9B,mBAAO,aAAa,UAAU,IAAI,EAAE,WAAW;AAAA,cAC3C,SAAS;AAAA,gBACL,OAAO,aAAa;AAAA,gBACpB,QAAQ,aAAa;AAAA,gBACrB,aAAa,aAAa;AAAA,gBAC1B,WAAW,aAAa;AAAA,gBACxB,YAAY,aAAa;AAAA,gBACzB,YAAY,aAAa;AAAA,gBACzB,aAAa,aAAa;AAAA,gBAC1B,QAAQ,aAAa;AAAA,gBACrB,sBAAsB,aAAa;AAAA,gBACnC,UAAU,aAAa;AAAA,gBACvB,aAAa,aAAa;AAAA,gBAC1B,aAAa,aAAa;AAAA,gBAC1B,qBAAqB,aAAa;AAAA,gBAClC,sBAAsB,aAAa;AAAA,gBACnC,cAAc,aAAa;AAAA,gBAC3B,eAAe,aAAa;AAAA,gBAC5B,UAAU,aAAa;AAAA,gBACvB,cAAc,aAAa;AAAA,gBAC3B,eAAe,aAAa;AAAA,gBAC5B,mBAAmB,aAAa;AAAA,gBAChC,YAAY,aAAa;AAAA,gBACzB,QAAQ,aAAa;AAAA,gBACrB,aAAa,aAAa;AAAA,gBAC1B,cAAc,aAAa;AAAA,gBAC3B,YAAY,aAAa;AAAA,gBACzB,gBAAgB,aAAa;AAAA,gBAC7B,gBAAgB,aAAa;AAAA,gBAC7B,eAAe,aAAa;AAAA,gBAC5B,eAAe,aAAa;AAAA,gBAC5B,mBAAmB,aAAa;AAAA,gBAChC,oBAAoB,aAAa;AAAA,gBACjC,aAAa,aAAa;AAAA,gBAC1B,SAAS,aAAa;AAAA,gBACtB,YAAY,aAAa;AAAA,gBACzB,UAAU,aAAa;AAAA,gBACvB,WAAW,aAAa;AAAA,gBACxB,iBAAiB,aAAa;AAAA,gBAC9B,aAAa,aAAa;AAAA,gBAC1B,YAAY,aAAa;AAAA,cAC7B;AAAA,YACJ,CAAC;AAAA,UACL;AAAA,UACA,eAAe,MAAM,CAAC,kBAAkB;AACpC,mBAAO,gBAAgB,sBAAsB;AAAA,cACzC,GAAG;AAAA,cACH,GAAG;AAAA,cACH,SAAS;AAAA,gBACL,WAAW,gBAAgB;AAAA,gBAC3B,WAAW,gBAAgB;AAAA,gBAC3B,YAAY,gBAAgB;AAAA,gBAC5B,YAAY,gBAAgB;AAAA,gBAC5B,cAAc,gBAAgB;AAAA,cAClC;AAAA,YACJ,CAAC;AAAA,UACL;AAAA,UACA;AAAA,UACA,oBAAoB,MAAM,CAAC,kBAAkB;AACzC,gCAAoB,OAAO,KAAK,mFAAmF;AACnH,mBAAO,oBAAoB,EAAE,aAAa;AAAA,UAC9C;AAAA,UACA,oBAAoB,UAAU;AAAA,UAC9B,6BAA6B,UAAU;AAAA,UACvC,mBAAmB,UAAU;AAAA,UAC7B,sBAAsB,UAAU;AAAA,UAChC,oBAAoB,UAAU;AAAA,UAC9B,mBAAmB,UAAU;AAAA,UAC7B,kBAAkB,UAAU;AAAA,QAChC;AAAA,MACJ,CAAC;AAAA,IACL;AAEA,IAAAA,eAAc,UAAU,aAAa;AAErC,WAAO,UAAUA;AAAA;AAAA;;;ACnKjB;AAAA;AAAA;AACA,QAAMC,iBAAgB;AAOtB,WAAO,UAAUA;AAMjB,WAAO,QAAQ,UAAUA;AAAA;AAAA;;;ACdzB;AAAA;AAAA;AACA,WAAO,UAAU;AAAA;AAAA;;;ACDjB,SAAS,OAAAC,YAAW;AACpB,SAAS,iBAAiB;;;ACA1B,SAAS,YAAY,aAAAC,YAAW,UAAAC,SAAQ,YAAAC,iBAAgB;AACxD,SAAS,OAAAC,MAAK,QAAAC,aAAY;AAC1B;AAAA,EAEE;AAAA,OACK;AACP,OAAOC,cAAa;AACpB,OAAO,WAAW;AAClB,SAAS,cAAc;AAEvB,SAAS,UAAU;;;ACTnB,IAAM,eAA4B;AAAA,EAChC,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,SAAS;AAAA,EACT,OAAO;AAAA,EACP,mBAAmB;AAAA,IACjB,aAAa;AAAA,IACb,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,KAAI;AAAA,MACF,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,IAAI;AAAA,IACF,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,IAAI;AAAA,IACJ,aAAa;AAAA,IACb,eAAe;AAAA,IACf,SAAS;AAAA,IACT,gBAAgB;AAAA,EAClB;AAAA,EACA,UAAU;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,IAAI;AAAA,EACN;AACF;AAEA,IAAM,eAA4B;AAAA,EAChC,aAAa;AAAA,EACb,WAAW;AACb;AAEA,IAAO,iBAAQ;AAAA,EACb;AAAA,EACA;AACF;;;ACzCA,SAAS,MAAM,WAAW;;;ACC1B,SAAS,YAAY;AASjB,SAOE,KAPF;AAPJ,IAAM,cAAc,CAAC,UACnB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,MAAM;AAAA,IAEN;AAAA,MAAC;AAAA;AAAA,QACC,eAAc;AAAA,QACd,gBAAe;AAAA,QACf,aAAY;AAAA,QACZ,MAAK;AAAA,QACL,QAAO;AAAA,QAEP;AAAA;AAAA,YAAC;AAAA;AAAA,cACC,GAAE;AAAA,cACF,GAAE;AAAA,cACF,OAAM;AAAA,cACN,QAAO;AAAA,cACP,MAAK;AAAA,cACL,QAAO;AAAA,cACP,kBAAiB;AAAA;AAAA,UACnB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,QAAO;AAAA,cACP,MAAK;AAAA,cACL,kBAAiB;AAAA,cACjB,eAAc;AAAA;AAAA,UAChB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,IAAG;AAAA,cACH,IAAG;AAAA,cACH,IAAG;AAAA,cACH,IAAG;AAAA,cACH,MAAK;AAAA,cACL,QAAO;AAAA,cACP,kBAAiB;AAAA;AAAA,UACnB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,GAAE;AAAA,cACF,GAAE;AAAA,cACF,OAAM;AAAA,cACN,QAAO;AAAA,cACP,MAAK;AAAA,cACL,QAAO;AAAA,cACP,kBAAiB;AAAA;AAAA,UACnB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,IAAG;AAAA,cACH,IAAG;AAAA,cACH,IAAG;AAAA,cACH,IAAG;AAAA,cACH,MAAK;AAAA,cACL,QAAO;AAAA,cACP,kBAAiB;AAAA;AAAA,UACnB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,GAAE;AAAA,cACF,GAAE;AAAA,cACF,OAAM;AAAA,cACN,QAAO;AAAA,cACP,MAAK;AAAA,cACL,QAAO;AAAA,cACP,kBAAiB;AAAA;AAAA,UACnB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,IAAG;AAAA,cACH,IAAG;AAAA,cACH,IAAG;AAAA,cACH,IAAG;AAAA,cACH,MAAK;AAAA,cACL,QAAO;AAAA,cACP,kBAAiB;AAAA;AAAA,UACnB;AAAA;AAAA;AAAA,IACF;AAAA;AACF;AAGF,IAAM,QAAQ,CAAC,UACb;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,MAAM;AAAA,IAEN;AAAA,MAAC;AAAA;AAAA,QACC,eAAc;AAAA,QACd,gBAAe;AAAA,QACf,aAAY;AAAA,QACZ,MAAK;AAAA,QACL,QAAO;AAAA,QAEP;AAAA;AAAA,YAAC;AAAA;AAAA,cACC,GAAE;AAAA,cACF,GAAE;AAAA,cACF,OAAM;AAAA,cACN,QAAO;AAAA,cACP,MAAK;AAAA,cACL,QAAO;AAAA,cACP,kBAAiB;AAAA;AAAA,UACnB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,GAAE;AAAA,cACF,GAAE;AAAA,cACF,OAAM;AAAA,cACN,QAAO;AAAA,cACP,MAAK;AAAA,cACL,kBAAiB;AAAA;AAAA,UACnB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,GAAE;AAAA,cACF,GAAE;AAAA,cACF,OAAM;AAAA,cACN,QAAO;AAAA,cACP,MAAK;AAAA,cACL,kBAAiB;AAAA;AAAA,UACnB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,GAAE;AAAA,cACF,GAAE;AAAA,cACF,OAAM;AAAA,cACN,QAAO;AAAA,cACP,MAAK;AAAA,cACL,kBAAiB;AAAA;AAAA,UACnB;AAAA;AAAA;AAAA,IACF;AAAA;AACF;AA+DF,IAAM,cAAc,CAAC,UACnB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAM,aAAa,CAAC,UAClB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAM,eAAe,CAAC,UACpB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACd;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACd;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAM,gBAAgB,CAAC,UACrB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,OAAO,CAAC,UACZ;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,YAAY,CAAC,UACjB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,YAAY,CAAC,UACjB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,cAAc,CAAC,UACnB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,UAAU,CAAC,UACf;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAEF,IAAM,aAAa,CAAC,UAClB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,SAAS,CAAC,UACd;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEN;AAAA;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAY;AAAA,UACZ,MAAK;AAAA,UACL,QAAO;AAAA,UAEN;AAAA;AAAA,YACD;AAAA,cAAC;AAAA;AAAA,gBACC,GAAE;AAAA,gBACF,GAAE;AAAA,gBACF,OAAM;AAAA,gBACN,QAAO;AAAA,gBACP,MAAK;AAAA,gBACL,QAAO;AAAA,gBACP,kBAAiB;AAAA;AAAA,YAClB;AAAA,YAAQ;AAAA,YACT;AAAA,cAAC;AAAA;AAAA,gBACC,GAAE;AAAA,gBACF,GAAE;AAAA,gBACF,OAAM;AAAA,gBACN,QAAO;AAAA,gBACP,MAAK;AAAA,gBACL,kBAAiB;AAAA;AAAA,YAClB;AAAA,YAAQ;AAAA,YACT;AAAA,cAAC;AAAA;AAAA,gBACC,GAAE;AAAA,gBACF,GAAE;AAAA,gBACF,OAAM;AAAA,gBACN,QAAO;AAAA,gBACP,MAAK;AAAA,gBACL,kBAAiB;AAAA;AAAA,YAClB;AAAA,YAAQ;AAAA,YACT;AAAA,cAAC;AAAA;AAAA,gBACC,GAAE;AAAA,gBACF,GAAE;AAAA,gBACF,OAAM;AAAA,gBACN,QAAO;AAAA,gBACP,MAAK;AAAA,gBACL,kBAAiB;AAAA;AAAA,YAClB;AAAA,YAAQ;AAAA;AAAA;AAAA,MACX;AAAA;AAAA;AACF;AAEF,IAAM,YAAY,CAAC,UACjB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAEF,IAAM,oBAAoB,CAAC,UACzB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAEF,IAAM,OAAO,CAAC,UACZ;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,WAAW,CAAC,UAChB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA,MAAC;AAAA;AAAA,QACC,eAAc;AAAA,QACd,aAAY;AAAA,QACZ,MAAK;AAAA,QACL,QAAO;AAAA,QACP,gBAAe;AAAA,QACf,kBAAiB;AAAA,QAEjB;AAAA,8BAAC,UAAK,GAAE,KAAI,GAAE,MAAK,OAAM,KAAI,QAAO,KAAI;AAAA,UACxC,oBAAC,UAAK,GAAE,MAAK,GAAE,MAAK,OAAM,KAAI,QAAO,KAAI;AAAA,UACzC,oBAAC,UAAK,GAAE,KAAI,GAAE,KAAI,OAAM,KAAI,QAAO,KAAI;AAAA,UACvC;AAAA,YAAC;AAAA;AAAA,cACC,QAAO;AAAA,cACP,YAAS;AAAA,cACT,eAAc;AAAA,cACd,QAAO;AAAA;AAAA,UACR;AAAA,UACD,oBAAC,UAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK;AAAA,UACrC,oBAAC,UAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK;AAAA,UACtC,oBAAC,UAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK;AAAA;AAAA;AAAA,IACtC;AAAA;AACF;AAGF,IAAM,WAAW,CAAC,UAChB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP,+BAAC,OAAE,MAAK,WACN;AAAA,0BAAC,UAAK,GAAE,sgBAAqgB;AAAA,MAC7gB;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACN;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACN;AAAA,MACD;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACN;AAAA,OACH;AAAA;AACF;AAGF,IAAM,UAAU,CAAC,UACf;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,SAAS,CAAC,UACd;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,WAAW,CAAC,UAChB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,WAAW,CAAC,UAChB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,aAAa,CAAC,UAClB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,UAAU,CAAC,UACf;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,oBAAoB,CAAC,UACzB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAGF,IAAM,cAAc,CAAC,UACnB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA,MAAQ;AAAA,MACT;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MAChB;AAAA;AAAA;AACH;AAEF,IAAM,gBAAgB,CAAC,UACrB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP,+BAAC,SACC;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,OACF;AAAA;AACF;AAGF,IAAM,cAAc,CAAC,UACnB;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,QAAO;AAAA,IAEP,+BAAC,SACC;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,OACF;AAAA;AACF;;;ADz8CF,OAAO,UAAU;AAyIX,SACW,OAAAC,MADX,QAAAC,aAAA;AAlIN,IAAM,WAAqB;AAAA,EACzB;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAY;AAAA,EACd;AACF;AAEA,IAAM,UAAU,CAAC,SAAiB;AAChC,SAAO,SAAS,KAAK,CAACC,UAASA,MAAK,SAAS,IAAI,GAAG;AACtD;AASA,IAAM,eAAe,CAAC,EAAE,MAAAA,OAAM,MAAAC,OAAM,SAAS,MAAyB;AACpE,QAAMC,SAAO,QAAQF,KAAI;AACzB,SACE,gBAAAF,KAAC,QAAK,MAAMG,OACV,0BAAAF,MAAC,QAAK,IAAI,eAAO,cACd;AAAA,IAAAG,UAAQ,gBAAAJ,KAACI,QAAA,EAAK,IAAI,eAAO,cAAc;AAAA,IACxC,gBAAAJ,KAAC,OAAK,UAAS;AAAA,KACjB,GACF;AAEJ;AAEA,IAAO,wBAAQ;;;AEpJf,wBAAsB;AAOlB,gBAAAK,YAAA;AAFJ,IAAM,eAAe,CAAC,EAAE,QAAQ,MAC9B,gBAAAA,KAAC,SAAI,WAAU,oBACb,0BAAAA;AAAA,EAAC;AAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,KAAK,iCAAiC,OAAO;AAAA,IAC7C,aAAY;AAAA,IACZ,OAAM;AAAA,IACN,iBAAe;AAAA,IACf,OAAM;AAAA;AACR,GACF;AAGF,aAAa,YAAY;AAAA,EACvB,SAAS,kBAAAC,QAAU,OAAO;AAC5B;AAEA,IAAO,wBAAQ;;;ACvBf,SAAS,OAAAC,YAAW;;;ACCpB,IAAM,QAAqB;AAAA,EACzB,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,YAAY;AAAA,EACZ,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,YAAY;AAAA,IACV,kBAAkB;AAAA,EACpB;AAAA,EACA,mBAAmB;AAAA,IACjB,SAAS;AAAA,IACT,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,iBAAiB;AAAA,IACjB,cAAc;AAAA,IACd,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,WAAW;AAAA,EACb;AACF;AAEA,IAAOC,kBAAQ;AAAA,EACb;AACF;;;ADvBS,gBAAAC,YAAA;AADT,IAAM,QAAQ,CAAC,EAAE,SAAS,MAAkB;AAC1C,SAAO,gBAAAA,KAACC,MAAA,EAAI,IAAIC,gBAAO,OAAQ,UAAS;AAC1C;AACA,IAAO,gBAAQ;;;AEVf,SAA8B,aAAAC,YAAW,QAAQ,gBAAgB;AACjE,SAAS,OAAAC,MAAK,QAAQ,QAAAC,aAAY;;;ACClC,SAAS,QAAAC,aAAY;AAGnB,SAQE,OAAAC,MARF,QAAAC,aAAA;AADF,IAAM,YAAY,CAAC,UACjB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,qBAAQ;;;AC9Bf,SAAS,iBAA6D;AAEvD,SAAR,gBACL,KAEA,WACA;AACA,YAAU,MAAM;AACd,aAAS,mBAAmB,OAAmB;AAC7C,YAAM,EAAE,MAAAE,OAAM,gBAAgB,IAAI;AAClC,UACE,IAAI,WACJ,MAAM,kBAAkB,QACxB,CAAC,IAAI,QAAQ,SAAS,MAAM,MAAM,GAClC;AACA,kBAAU,EAAE,aAAa,MAAM,CAAC;AAChC,cAAM,YAAYA,MAAK,sBAAsB,EAAE,MAAM;AACrD,QAAAA,MAAK,UAAU,OAAO,YAAY;AAClC,wBAAgB,YAAY;AAC5B,QAAAA,MAAK,MAAM,eAAe,KAAK;AAAA,MACjC;AAAA,IACF;AACA,aAAS,iBAAiB,aAAa,kBAAkB;AACzD,WAAO,MAAM;AACX,eAAS,oBAAoB,aAAa,kBAAkB;AAAA,IAC9D;AAAA,EACF,GAAG,CAAC,CAAC;AACP;;;ACzBA,IAAM,iBAA8B;AAAA,EAClC,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,YAAY;AAAA,EACZ,UAAU;AAAA,IACR,WAAW;AAAA,EACb;AAAA,EAEA,SAAS;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA,IACT,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,cAAc;AAAA,EAChB;AACF;AAEA,IAAM,YAAyB;AAAA,EAC7B,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,iBAAiB;AAAA,EACjB,UAAU;AAAA,EACV,KAAK;AAAA,EACL,MAAM;AAAA,EACN,SAAS;AAAA,EACT,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,QAAQ;AACV;AAEA,IAAM,QAAqB;AAAA,EACzB,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,SAAS;AAAA,EAET,SAAS;AAAA,IACP,SAAS;AAAA,IACT,WAAW;AAAA,IACX,UAAU;AAAA,IACV,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,EACX;AACF;AAEA,IAAM,cAA2B;AAAA,EAC/B,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,OAAO;AAAA,EACP,OAAO;AAAA,EAEP,UAAU;AAAA,IACR,OAAO;AAAA,EACT;AACF;AAEA,IAAOC,kBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;AH1CQ,SAMgB,OAAAC,MANhB,QAAAC,aAAA;AApBO,SAAR,SAA0B,EAAE,SAAS,GAAU;AACpD,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,KAAK;AACpD,QAAM,WAAW,OAAuB;AAExC,EAAAC,WAAU,MAAM;AACd,QAAI,aAAa;AACf,YAAM,YAAY,SAAS,KAAK,sBAAsB,EAAE;AACxD,eAAS,KAAK,MAAM,MAAM,GAAG,SAAS;AACtC,eAAS,KAAK,UAAU,IAAI,YAAY;AAAA,IAC1C,OAAO;AACL,eAAS,KAAK,UAAU,OAAO,YAAY;AAC3C,eAAS,KAAK,MAAM,eAAe,KAAK;AAAA,IAC1C;AAAA,EACF,GAAG,CAAC,WAAW,CAAC;AAEhB,kBAAgB,UAAU,MAAM,eAAe,KAAK,CAAC;AAErD,SACE,gBAAAD,MAAC,SACE;AAAA,mBACC,gBAAAA,MAACE,OAAA,EAAK,IAAIC,gBAAO,WACf;AAAA,sBAAAJ;AAAA,QAAC;AAAA;AAAA,UACC,IAAII,gBAAO;AAAA,UACX,cAAY;AAAA,UACZ,MAAK;AAAA,UACL,SAAQ;AAAA,UACR,MAAM,MAAM,gBAAAJ,KAAC,sBAAU,MAAM,IAAI;AAAA,UACjC,SAAS,MAAM,eAAe,KAAK;AAAA;AAAA,MACrC;AAAA,MACA,gBAAAA,KAACK,MAAA,EAAI,IAAID,gBAAO,OAAO,KAAK,UACzB,UACH;AAAA,OACF;AAAA,IAEF,gBAAAJ,KAACK,MAAA,EAAI,IAAID,gBAAO,gBAAgB,SAAS,MAAM,eAAe,IAAI,GAC/D,UACH;AAAA,KACF;AAEJ;;;AIhDA,SAAS,OAAAE,MAAK,QAAAC,OAAM,WAAW,MAAM,QAAAC,aAAY;;;ACCjD,IAAMC,aAAyB;AAAA,EAC7B,IAAI;AAAA,EACJ,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,OAAO,CAAC,QAAQ,KAAK;AAAA,EACrB,YAAY;AAAA,EACZ,UAAU;AAAA,IACR,QAAQ;AAAA,EACV;AAAA,EACA,mBAAmB;AAAA,IACjB,aAAa;AAAA,IACb,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,wBAAwB;AAAA,MACtB,YAAY;AAAA,MACZ,OAAO;AAAA,IACT;AAAA,IACA,iBAAiB;AAAA,MACf,YAAY;AAAA,MACZ,OAAO;AAAA,IACT;AAAA,EACF;AACF;AAEA,IAAM,QAAqB;AAAA,EACzB,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY,CAAC,QAAQ,MAAM;AAAA,EAC3B,OAAO;AACT;AAEA,IAAM,aAA0B;AAAA,EAC9B,SAAS;AAAA,EACT,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,UAAU;AAAA,IACR,SAAS;AAAA,IACT,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,YAAY;AAAA,EACd;AACF;AAEA,IAAM,cAA2B;AAAA,EAC/B,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,OAAO;AACT;AAEA,IAAM,gBAA6B;AAAA,EACjC,IAAI;AAAA,EACJ,YAAY;AACd;AAEA,IAAM,OAAoB;AAAA,EACxB,GAAG;AAAA,EACH,OAAO;AACT;AAEA,IAAOC,kBAAQ;AAAA,EACb,WAAAD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ADtEA,OAAO,WAAW;AAoBV,SACE,OAAAE,MADF,QAAAC,aAAA;AAVR,IAAM,gBAAgB,CAAC;AAAA,EACrB,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA4B;AAC1B,SACE,gBAAAH,KAACI,OAAA,EAAK,MAAM,QAAQ,IAAIC,gBAAO,WAC5B,kBACC,gBAAAJ,MAACK,MAAA,EACC;AAAA,oBAAAN;AAAA,MAAC;AAAA;AAAA,QACC,KAAK;AAAA,QACL,KAAKE;AAAA,QACL,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,OAAM;AAAA,QACN,OAAO,EAAE,OAAO,QAAQ,QAAQ,OAAO;AAAA;AAAA,IACzC;AAAA,IACA,gBAAAF,KAAC,QAAK,IAAIK,gBAAO,YAAY,WAAU,SACpC,UAAAH,QACH;AAAA,KACF,IAEA,gBAAAD,MAACK,MAAA,EAAI,IAAI,EAAE,SAAS,OAAO,GACzB;AAAA,oBAAAN,KAAC,QAAK,IAAIK,gBAAO,OAAO,WAAU,SAC/B,UAAAH,QACH;AAAA,IACCC,gBACC,gBAAAH,KAAC,QAAK,IAAIK,gBAAO,aAAa,WAAU,eACrC,UAAAF,cACH;AAAA,IAED,aACC,gBAAAF,MAACM,OAAA,EAAK,IAAIF,gBAAO,eACf;AAAA,sBAAAL,KAAC,QAAK,IAAIK,gBAAO,MAAM,WAAU,QAC9B,qBACH;AAAA,MACA,gBAAAL;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,OAAM;AAAA,UACN,WAAU;AAAA,UACV,MAAM;AAAA;AAAA,MACR;AAAA,OACF;AAAA,KAEJ,GAEJ;AAEJ;AAEA,IAAO,0BAAQ;;;AEhEf,SAAS,eAAe,aAAAQ,YAAW,YAAAC,iBAAgB;AAGnD,SAAS,iBAAiB;AAqNpB,gBAAAC,YAAA;AA/JC,IAAM,iBAAiB,cAA2B;AAAA,EACvD,cAAc,CAAC;AAAA,EACf,iBAAiB,MAAM;AAAA,EACvB,YAAY;AAAA,IACV,MAAM;AAAA,IACN,SAAS;AAAA,EACX;AAAA,EACA,eAAe,MAAM;AAAA,EACrB,kBAAkB,MAAM;AAAA,EACxB,qBAAqB,MAAM;AAAA,EAC3B,iBAAiB;AAAA,EACjB,sBAAsB;AAAA,EACtB,mBAAmB;AAAA,EACnB,sBAAsB;AAAA,EACtB,mBAAmB,CAAC;AAAA,EACpB,oBAAoB,MAAM;AAAA,EAC1B,sBAAsB,oBAAI,IAAI;AAAA;AAAA,EAE9B,sBAAsB,CAAC,MAAW;AAAA,EAClC,yBAAyB,MAAM;AAAA,EAC/B,sBAAsB,MAAM;AAAA;AAAA,EAE5B,yBAAyB,CAAC,MAAW;AAAA,EACrC,4BAA4B,MAAM;AAAA,EAClC,oBAAoB,MAAM;AAAA,EAC1B,sBAAsB,MAAM;AAAA,EAC5B,iBAAiB,CAAC;AAAA,EAClB,oBAAoB,MAAM;AAAA,EAC1B,oBAAoB,CAAC;AAAA,EACrB,uBAAuB,MAAM;AAAA,EAC7B,QAAQ;AACV,CAAC;AAGD,IAAM,yBAAyB,CAAC,EAAE,UAAU,GAAG,MAAM,MAAa;AAChE,QAAM,CAAC,cAAc,eAAe,IAAID,UAAiB,CAAC,CAAC;AAC3D,QAAM,CAAC,YAAY,aAAa,IAAIA,UAAqB;AAAA,IACvD,MAAM;AAAA,IACN,SAAS;AAAA,EACX,CAAC;AAED,QAAM,CAAC,mBAAmB,oBAAoB,IAAIA;AAAA,IAChD,MAAM;AAAA,EACR;AACA,QAAM,CAAC,sBAAsB,uBAAuB,IAAIA,UAAS,KAAK;AACtE,QAAM,CAAC,sBAAsB,uBAAuB,IAAIA,UAAS,EAAE;AACnE,QAAM,CAAC,sBAAsB,uBAAuB,IAAIA,UAAS,oBAAI,IAAI,CAAC;AAC1E,QAAM,CAAC,mBAAmB,oBAAoB,IAAIA,UAAS,MAAM,QAAQ;AACzE,QAAM,CAAC,iBAAiB,kBAAkB,IAAIA,UAAS,MAAM,SAAS;AACtE,QAAM,CAAC,iBAAiB,kBAAkB,IAAIA,UAAS,MAAM,QAAQ;AACrE,QAAM,CAAC,oBAAoB,qBAAqB,IAAIA;AAAA,IAClD,MAAM;AAAA,EACR;AACA,QAAM,EAAE,QAAQ,aAAa,GAAG,UAAU,IAAI;AAC9C,QAAM,SAAS,eAAe;AAC9B,QAAM,WAAW,UAAU;AAE3B,EAAAD,WAAU,MAAM;AACd,yBAAqB,MAAM,QAAQ;AAAA,EACrC,GAAG,CAAC,MAAM,QAAQ,CAAC;AAEnB,EAAAA,WAAU,MAAM;AACd,QAAI,MAAM,oBAAoB;AAAI,8BAAwB,IAAI;AAAA,aACrD,MAAM,oBAAoB;AACjC,2BAAqB,MAAM,eAAe;AAAA,EAC9C,GAAG,CAAC,MAAM,eAAe,CAAC;AAE1B,QAAM,6BAA6B,CAACG,WAAkB;AACpD,4BAAwB,CAACC,0BAAyB;AAChD,YAAM,OACJA,sBAAqB,IAAID,MAAK,MAAM,QAChC,OACA,CAACC,sBAAqB,IAAID,MAAK;AAErC,aAAO,IAAI,IAAIC,sBAAqB,IAAID,QAAO,IAAI,CAAC;AAAA,IACtD,CAAC;AAAA,EACH;AAEA,QAAM,uBAAuB,CAAC,iBAA2B;AACvD,yBAAqB,QAAQ,CAAC,QAAQ,QAAQ;AAC5C,UAAI,CAAC,aAAa,SAAS,GAAG,GAAG;AAC/B,gCAAwB,CAACC,0BAAyB;AAChD,iBAAO,IAAI,IAAIA,sBAAqB,IAAI,KAAK,KAAK,CAAC;AAAA,QACrD,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH;AAEA,QAAM,qBAAqB,CAACD,WAAkB;AAC5C,4BAAwB,CAACC,0BAAyB;AAChD,aAAO,IAAI,IAAIA,sBAAqB,IAAID,QAAO,IAAI,CAAC;AAAA,IACtD,CAAC;AAAA,EACH;AAEA,QAAM,mBAAmB,MAAM;AAC7B,kBAAc,CAAC,EAAE,MAAAE,OAAM,QAAQ,MAAM;AACnC,YAAM,QAAQ,aAAa,UAAU,CAAC,YAAY,QAAQ,SAASA,KAAI;AACvE,UAAI,UAAU;AAAI,eAAO,EAAE,MAAAA,OAAM,QAAQ;AAEzC,YAAM,eAAe,CAAC,QAAQ,KAAK,aAAa,QAAQ,CAAC,EAAE;AAC3D,YAAM,mBAAmB,CAAC,QAAQ,CAAC,IAAI,aAAa,QAAQ,CAAC,EAAE;AAC/D,YAAM,kBAAkB,CAAC,iBAAiB,SACtC,KACA,iBAAiB,MAAM,EAAE,EAAE,CAAC,EAAE;AAElC,aAAO;AAAA,QACL,MAAM;AAAA,QACN,SAAS;AAAA,MACX;AAAA,IACF,CAAC;AAAA,EACH;AAEA,QAAM,sBAAsB,MAAM;AAChC,kBAAc,CAAC,EAAE,MAAAA,OAAM,QAAQ,MAAM;AACnC,YAAM,UAAU,aAAa,KAAK,CAACC,aAAYA,SAAQ,SAASD,KAAI;AACpE,YAAM,QAAQ,SAAS,SAAS;AAAA,QAC9B,CAAC,UAAU,MAAM,SAAS;AAAA,MAC5B;AAEA,UAAI,CAAC,WAAW,UAAU;AAAI,eAAO,EAAE,MAAAA,OAAM,QAAQ;AAErD,aAAO;AAAA,QACL,MAAAA;AAAA,QACA,SAAS,CAAC,QAAQ,KAAK,QAAQ,SAAS,QAAQ,CAAC,EAAE;AAAA,MACrD;AAAA,IACF,CAAC;AAAA,EACH;AAEA,SACE,gBAAAH;AAAA,IAAC,eAAe;AAAA,IAAf;AAAA,MACC,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,GAAG;AAAA,MACL;AAAA,MAEA,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAO;AAAA,YACL,UAAU;AAAA,cACR,mBAAmB,WAAW,WAAW,CAAC;AAAA,YAC5C;AAAA,UACF;AAAA,UAEC;AAAA;AAAA,MACH;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,yBAAQ;;;ACtOR,IAAM,aAAa,CAAC,QAAgB,IAAI,QAAQ,eAAe,EAAE;AAOjE,IAAM,0BAA0B,CAAC,QAAwB;AAC9D,MAAI,CAAC;AAAK,WAAO;AAEjB,MAAI,UAAU,IAEX,QAAQ,2BAA2B,IAAI,EAEvC,QAAQ,0BAA0B,IAAI,EAEtC,QAAQ,gBAAgB,EAAE,EAE1B,QAAQ,gBAAgB,GAAG,EAE3B,QAAQ,kBAAkB,IAAI,EAC9B,QAAQ,cAAc,IAAI,EAE1B,QAAQ,cAAc,IAAI,EAC1B,QAAQ,YAAY,IAAI,EAExB,QAAQ,cAAc,IAAI,EAE1B,QAAQ,mBAAmB,EAAE,EAE7B,QAAQ,4BAA4B,EAAE,EAEtC,QAAQ,WAAW,EAAE,EAErB,QAAQ,uDAAuD,EAAE,EAEjE,QAAQ,aAAa,GAAG,EAExB,QAAQ,QAAQ,GAAG,EACnB,KAAK;AAGR,MAAI,QAAQ,SAAS,KAAK,YAAY,KAAK,OAAO,GAAG;AACnD,UAAM,kBAAkB,QAAQ,QAAQ,GAAG;AAC3C,QAAI,kBAAkB,KAAK,kBAAkB,IAAI;AAC/C,gBAAU,QAAQ,UAAU,kBAAkB,CAAC,EAAE,KAAK;AAAA,IACxD;AAAA,EACF;AAEA,SAAO;AACT;AAWO,IAAM,UAAU,CAAC,QAAgB;AACtC,SAAO,IACJ,UAAU,KAAK,EACf,QAAQ,oBAAoB,EAAE,EAC9B,YAAY,EACZ,QAAQ,aAAa,EAAE,EACvB,QAAQ,QAAQ,GAAG,EACnB,QAAQ,OAAO,GAAG,EAClB,KAAK;AACV;AAIO,IAAM,mBAAkD,CAAC,aAAa;AAC3E,MAAI,CAAC;AAAU,WAAO;AAAA,WACb,MAAM,QAAQ,QAAQ;AAC7B,WAAO,SACJ,IAAI,CAAC,UAAU;AACd,UAAI,OAAO,UAAU;AAAU,eAAO;AACtC,aAAO,iBAAiB,MAAM,MAAM,QAAQ;AAAA,IAC9C,CAAC,EACA,KAAK,EAAE;AAAA,OACP;AACH,QAAI,OAAO,aAAa;AAAU,aAAO;AACzC,WAAO,iBAAiB,SAAS,OAAO,EAAE,UAAU,CAAC;AAAA,EACvD;AACF;;;ACvFA,OAAO,aAAa;AAEpB,IAAM,cAAc,MAAM;AACxB,UAAQ,WAAW;AAAA,IACjB,OAAO;AAAA,IACP,gBAAgB;AAAA,MACd,cAAc;AAAA,MACd,kBAAkB;AAAA,MAClB,oBAAoB;AAAA,MACpB,qBAAqB;AAAA,MACrB,gBAAgB;AAAA,MAChB,kBAAkB;AAAA,MAClB,WAAW;AAAA,MACX,SAAS;AAAA,IACX;AAAA,EACF,CAAC;AACH;AAEA,IAAO,sBAAQ;;;AClBf,IAAAK,kBAAA;AAAA,EAAC,KAAAC;AAAA,EAMA,SAAAC;AAAA,EAOA,MAAAC;AAAA,EAgBA,YAAAC;AAAA,EAiDA,gBAAAC;AAAA,EAeA,kBAAAC;AAAA,EAeA,mBAAAC;AAAA,EAuBA,mBAAAC;AAAA,EAeA,UAAAC;AAAA,EAKA,cAAAC;AAAA;;;ACvJD;AAAA,EACE,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,yBAAyB;AAAA,EACzB,wBAAwB;AAAA,EACxB,yBAAyB;AAAA,EACzB,sBAAsB;AAAA,EACtB,4BAA4B;AAAA,EAC5B,0BAA0B;AAAA,EAC1B,8BAA8B;AAAA,EAC9B,qBAAqB;AAAA,EACrB,gCAAgC;AAAA,EAChC,8BAA8B;AAAA,EAC9B,wBAAwB;AAAA,EACxB,0BAA0B;AAAA,EAC1B,sBAAsB;AAAA,EACtB,kBAAkB;AAAA,EAClB,uBAAuB;AAAA,EACvB,oCAAsC;AAAA,EACtC,8BAAgC;AAAA,EAChC,oBAAoB;AAAA,EACpB,0BAA0B;AAAA,EAC1B,qBAAqB;AAAA,EACrB,sBAAsB;AACxB;;;AC1BA;AAAA,EACE,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,yBAAyB;AAAA,EACzB,wBAAwB;AAAA,EACxB,yBAAyB;AAAA,EACzB,sBAAsB;AAAA,EACtB,4BAA4B;AAAA,EAC5B,8BAA8B;AAAA,EAC9B,0BAA0B;AAAA,EAC1B,8BAA8B;AAAA,EAC9B,qBAAqB;AAAA,EACrB,gCAAgC;AAAA,EAChC,wBAAwB;AAAA,EACxB,0BAA0B;AAAA,EAC1B,sBAAsB;AAAA,EACtB,kBAAkB;AAAA,EAClB,uBAAuB;AAAA,EACvB,oCAAsC;AAAA,EACtC,8BAAgC;AAAA,EAChC,oBAAoB;AAAA,EACpB,0BAA0B;AAAA,EAC1B,qBAAqB;AAAA,EACrB,sBAAsB;AACxB;;;AC1BA;AAAA,EACE,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,yBAAyB;AAAA,EACzB,wBAAwB;AAAA,EACxB,yBAAyB;AAAA,EACzB,sBAAsB;AAAA,EACtB,4BAA4B;AAAA,EAC5B,8BAA8B;AAAA,EAC9B,0BAA0B;AAAA,EAC1B,8BAA8B;AAAA,EAC9B,qBAAqB;AAAA,EACrB,gCAAgC;AAAA,EAChC,wBAAwB;AAAA,EACxB,0BAA0B;AAAA,EAC1B,sBAAsB;AAAA,EACtB,kBAAkB;AAAA,EAClB,uBAAuB;AAAA,EACvB,oCAAsC;AAAA,EACtC,8BAAgC;AAAA,EAChC,oBAAoB;AAAA,EACpB,0BAA0B;AAAA,EAC1B,qBAAqB;AAAA,EACrB,sBAAsB;AACxB;;;ACrBA,IAAM,cAAc,MAIf;AACH,QAAMC,YAAW;AAAA,IACf,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EACN;AAEA,SAAOA;AACT;AAEO,IAAM,WAAW,YAAY;;;ApB+B5B,gBAAAC,MAuFJ,QAAAC,aAvFI;AAxBR,oBAAY;AAEZ,IAAM,oBAAoB,CAAC;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAA8B;AAC5B,QAAM,CAAC,GAAG,IAAI,IAAIC,UAAS,QAAQ;AACnC,QAAM,YAAY,iBAAiB,aAAa,QAAQ;AACxD,QAAM,OAAO,QAAQ,SAAS;AAC9B,SACE,gBAAAF;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,MACX,WAAU;AAAA,MACV,YAAW;AAAA,MACX,UAAU,CAAC,QAAQ,UAAU;AAC3B,YAAI;AAAQ,sBAAY,IAAI;AAAA;AACvB,sBAAY,MAAM,OAAO,CAAC;AAE/B,aAAK,MAAM,mBAAmB,CAAC;AAAA,MACjC;AAAA,MAEC,oBAAU,IACT,gBAAAA,KAAC,QAAG,IAAI,MAAM,WAAWG,gBAAO,SAAU,GAAG,cAAc,IAE3D,gBAAAH,KAAC,QAAG,IAAI,MAAM,WAAWG,gBAAO,SAAU,GAAG,cAAc;AAAA;AAAA,EAE/D;AAEJ;AAEA,IAAM,UAAU,CAAC,EAAE,MAAM,MAAAC,OAAM,GAAG,MAAM,MAAiB;AACvD,QAAM,iBAAyBA,QAAOA,QAAO;AAC7C,SACE,gBAAAJ;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,GAAGG,gBAAO,UAAU,IAC7B,mBAAmB,SACfA,gBAAO,iBACP,mBAAmB,WACnBA,gBAAO,mBACP,mBAAmB,YACnBA,gBAAO,oBACP,mBAAmB,YACnBA,gBAAO,oBACP,EACN;AAAA,MAEA,0BAAAH,KAAC,SAAK,GAAG,OAAO;AAAA;AAAA,EAClB;AAEJ;AAEA,IAAM,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,MAAiB;AACxD,QAAM,YAAYK,QAAwB,IAAI;AAC9C,QAAM,MAAMA,QAAoB;AAEhC,QAAM,CAAC,SAAS,UAAU,IAAIH,UAAS,EAAE;AACzC,QAAM,CAAC,OAAO,QAAQ,IAAIA,UAAS,CAAC;AACpC,QAAM,CAAC,QAAQ,SAAS,IAAIA,UAAS,CAAC;AAEtC,EAAAI,WAAU,MAAM;AACd,UAAM,iBAAiB,IAAI,eAAe,MAAM;AAC9C,UAAI,CAAC,IAAI;AAAS;AAClB,eAAS,IAAI,SAAS,eAAe,CAAC;AACtC,gBAAU,IAAI,SAAS,cAAc,CAAM;AAAA,IAC7C,CAAC;AAED,UAAM,kBAAkB,iBAAkB;AACxC,YAAM,EAAE,IAAI,IAAI,MAAMC,SAAQ,OAAO,cAAc,MAAM,QAAQ;AACjE;AAAA,QACE,IAAI,QAAQ,mBAAmB,EAAE,EAAE,WAAW,eAAe,EAAE;AAAA,MACjE;AAAA,IACF;AAEA,oBAAgB;AAChB,QAAI,IAAI;AAAS,qBAAe,QAAQ,IAAI,OAAO;AAAA,EACrD,GAAG,CAAC,CAAC;AAEL,SACE,gBAAAP,KAACQ,MAAA,EAAI,KAAU,WAAWL,gBAAO,cAC/B,0BAAAH;AAAA,IAAC;AAAA;AAAA,MACC,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA,gBAAgB;AAAA,QACd,UAAU;AAAA,QACV,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,YAAY;AAAA,MACd;AAAA,MACA,YAAY;AAAA,MACZ,eAAe;AAAA,MACf,aAAa;AAAA,MAEb,0BAAAA,KAAC,SAAI,OAAc,QAChB,gBAAM,OAAO,GAChB;AAAA;AAAA,EACF,GACF;AAEJ;AAEA,IAAM,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,MAAiB;AACxD,QAAM,CAAC,aAAa,cAAc,IAAIE,UAAS,KAAK;AACpD,QAAM,EAAE,OAAO,IAAI,WAAW,cAAc;AAC5C,QAAM;AAAA;AAAA,IAEJ,gBAAAF,KAAC,SAAI,KAAK,MAAM,KAAK,KAAK,MAAM,KAAK,SAAS,MAAM,eAAe,IAAI,GAAG;AAAA;AAE5E,QAAM,eACJ,gBAAAC,MAAC,gBAAW,WAAW,GAAGE,gBAAO,UAAU,IAAIA,gBAAO,iBAAiB,IACpE;AAAA,aAAS,MAAM,EAAE,qBAAqB;AAAA,IAAE;AAAA,IAAE,MAAM;AAAA,KACnD;AAGF,MAAI,OAAwC,EAAE,QAAQ,IAAI,KAAK,CAAC,EAAE;AAClE,MAAI;AACF,WAAO,KAAK,MAAM,MAAM,GAAG;AAAA,EAC7B,SAAS,OAAO;AACd,YAAQ,IAAI,iBAAiB,KAAK;AAClC,WAAO;AAAA,EACT;AACA,SAAO,CAAC,cAAc,gBAAAH,KAAC,YAAU,sBAAW,IAAc;AAC5D;AAEA,IAAO,qBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,MACtB,gBAAAA,KAACS,OAAA,EAAK,WAAWN,gBAAO,UAAW,GAAG,OAAO;AAAA,EAE/C,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,MAAiB,gBAAAH,KAAC,WAAO,GAAG,OAAO;AAAA,EAC5D,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,MAAiB,gBAAAA,KAAC,QAAI,GAAG,OAAO;AAAA,EACtD,KAAK;AAAA,EACL,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,MAAiB;AACvC,WAAO,gBAAAA,KAACQ,MAAA,EAAI,IAAI,EAAE,aAAa,MAAM,GAAI,GAAG,OAAO;AAAA,EACrD;AAAA,EACA,YAAY,CAAC,EAAE,GAAG,MAAM,MAAiB;AACvC,WAAO,gBAAAR,KAAC,WAAS,GAAG,OAAO;AAAA,EAC7B;AAAA,EACA,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,MAAiB;AACvC,WAAO,gBAAAA,KAAC,UAAK,WAAWG,gBAAO,MAAO,GAAG,OAAO;AAAA,EAClD;AAAA,EACA,KAAK,CAAC,EAAE,GAAG,MAAM,MAAiB;AAChC,QAAI,MAAM,aAAa,MAAM,cAAc;AACzC,aAAO,gBAAAH,KAAC,kBAAgB,GAAG,OAAO;AAEpC,WAAO,gBAAAA,KAAC,SAAI,WAAWG,gBAAO,KAAM,GAAG,OAAO;AAAA,EAChD;AAAA,EACA,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,MAAiB;AACrC,UAAM,EAAE,YAAY,eAAe,iBAAiB,IAClD,WAAW,cAAc;AAE3B,WACE,gBAAAH;AAAA,MAAC;AAAA;AAAA,QACC,OAAO;AAAA,QACP,aAAa,CAAC,SAAS;AACrB,wBAAc,CAAC,EAAE,MAAAU,OAAM,QAAQ,OAAO;AAAA,YACpC,MAAM;AAAA,YACN,SAASA,UAAS,OAAO,KAAK;AAAA,UAChC,EAAE;AAAA,QACJ;AAAA,QACA,aAAa,CAAC,MAAM,OAAO,MAAM;AAC/B,cAAI,MAAM,mBAAmB,IAAI,KAAK,WAAW,SAAS,MAAM;AAC9D,6BAAiB;AAAA,UACnB;AAAA,QACF;AAAA,QACC,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AAAA,EACA,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,MAAiB;AACrC,UAAM,EAAE,YAAY,eAAe,oBAAoB,IACrD,WAAW,cAAc;AAE3B,WACE,gBAAAV;AAAA,MAAC;AAAA;AAAA,QACC,OAAO;AAAA,QACP,aAAa,CAAC,SAAS;AACrB,wBAAc,CAAC,EAAE,MAAAU,MAAK,OAAO;AAAA,YAC3B,MAAAA;AAAA,YACA,SAAS;AAAA,UACX,EAAE;AAAA,QACJ;AAAA,QACA,aAAa,CAAC,MAAM,OAAO,MAAM;AAC/B,cAAI,MAAM,mBAAmB,IAAI,KAAK,WAAW,YAAY,MAAM;AACjE,gCAAoB;AAAA,UACtB;AAAA,QACF;AAAA,QACC,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACF;;;ADhNQ,gBAAAC,aAAA;AAVR,IAAM,aAAa;AAEnB,IAAM,mBAAmB,CAAC;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AACF,MAA6B;AAC3B,MAAI,sBAAc,OAAO;AACvB,WACE,gBAAAA,MAACC,MAAA,EACC,0BAAAD;AAAA,MAAC;AAAA;AAAA,QACC,YAAY,EAAE,GAAG,oBAAY,GAAG,iBAAiB;AAAA,QACjD,MAAI;AAAA,QACH,GAAG;AAAA,QACJ;AAAA;AAAA,IACF,GACF;AAAA,EAEJ;AAEA,SACE,gBAAAA,MAACC,MAAA,EACC,0BAAAD,MAAC,cAAW,YAAY,oBAAY,MAAI,MAAE,GAAG,YAAY,GAC3D;AAEJ;AAEA,IAAO,2BAAQ;;;AsBhCf,SAAS,cAAAE,aAAY,aAAAC,kBAAiB;AACtC,OAAOC,WAAU;AACjB,SAAS,iBAAiB;AAC1B,SAAS,OAAAC,MAAK,QAAAC,aAAY;AAC1B,OAAO,mBAAmB;;;ACF1B,IAAM,iBAA8B;AAAA,EAClC,UAAU;AAAA,EACV,KAAK;AACP;AAEA,IAAM,WAAwB;AAAA,EAC5B,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,IAAI;AAAA,EACJ,OAAO;AACT;AAEA,IAAM,WAAwB;AAAA,EAC5B,YAAY;AAAA,EACZ,IAAI;AACN;AAEA,IAAM,OAAwD,CAC5D,OACA,WACG;AACH,QAAM,oBAAoB,GAAG,UAAU,IAAI,KAAK,EAAE;AAClD,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,IAAI,GAAG,QAAQ,CAAC;AAAA,IAChB,IAAI,CAAC,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK;AAAA,IAC7C,YAAY,aAAa,UAAU,UAAU,IAAI,YAAY,SAAS;AAAA,IACtE,UAAU,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,MAAM;AAAA,IACzD,YAAY;AAAA,MACV;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG,UAAU,IAAI,KAAK,EAAE;AAAA,MACxB;AAAA,IACF;AAAA,IACA,YAAY,GAAG,SAAS,QAAQ,KAAK;AAAA,IACrC,OAAO,GAAG,SAAS,YAAY,SAAS;AAAA,IAExC,UAAU;AAAA,MACR,OAAO;AAAA,IACT;AAAA,EACF;AACF;AAEA,IAAM,oBAAiC;AAAA,EACrC,IAAI;AAAA,EACJ,YAAY;AACd;AAEA,IAAOC,kBAAQ,EAAE,UAAU,gBAAgB,MAAM,mBAAmB,SAAS;;;ADerE,gBAAAC,OAYE,QAAAC,aAZF;AAhDR,IAAM,kBAAkB,CAAC,EAAE,aAAa,SAAS,MAAa;AAC5D,QAAM,SAAS,UAAU;AACzB,QAAM,EAAE,cAAc,YAAY,iBAAiB,cAAc,IAC/DC,YAAW,cAAc;AAE3B,EAAAC,WAAU,MAAM;AACd,UAAMC,YAAmB,eAAe,CAAC;AACzC,QAAI,CAACA,UAAS,QAAQ;AACpB,eAAS,iBAAiB,QAAQ,EAAE,QAAQ,CAAC,YAAY;AACvD,cAAM,cAAc,QAAQ;AAC5B,cAAMC,QAAO;AAAA,UACX,OAAO,WAAW,QAAQ,SAAS,EAAE,QAAQ,KAAK,EAAE;AAAA,UACpD,MAAM;AAAA,QACR;AAEA,YAAI,QAAQ,YAAY,MAAM;AAC5B,UAAAD,UAAS,KAAK,EAAE,GAAGC,OAAM,UAAU,CAAC,EAAE,CAAC;AAAA,QACzC,WAAWD,UAAS,SAAS,GAAG;AAC9B,UAAAA,UAASA,UAAS,SAAS,CAAC,EAAE,SAAS,KAAK,EAAE,GAAGC,MAAK,CAAC;AAAA,QACzD,OAAO;AACL,UAAAD,UAAS,KAAK,EAAE,GAAGC,OAAM,UAAU,CAAC,EAAE,CAAC;AAAA,QACzC;AAAA,MACF,CAAC;AACD,sBAAgBD,SAAQ;AAAA,IAC1B;AAAO,sBAAgBA,SAAQ;AAAA,EACjC,GAAG,CAAC,OAAO,QAAQ,WAAW,CAAC;AAE/B,QAAM,OAAO,CAAC;AAAA,IACZ,OAAAE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,MAKM;AACJ,WACE,gBAAAN;AAAA,MAACO;AAAA,MAAA;AAAA,QACC,MAAM,IAAI,IAAI;AAAA,QACd,SAAS,MAAM;AACb,wBAAc,CAAC,EAAE,MAAAF,MAAK,OAAO;AAAA,YAC3B,MAAM,UAAU,IAAI,OAAOA;AAAA,YAC3B,SAAS,UAAU,IAAI,KAAK;AAAA,UAC9B,EAAE;AAAA,QACJ;AAAA,QAEA,0BAAAL,MAACQ,OAAA,EAAK,IAAIC,gBAAO,KAAK,OAAO,MAAM,GAAI,UAAAH,QAAM;AAAA;AAAA,IAC/C;AAAA,EAEJ;AAEA,SACE,gBAAAL,MAACS,MAAA,EAAI,IAAID,gBAAO,gBAAgB,WAAQ,qBACrC;AAAA,iBAAa,SAAS,KACrB,gBAAAT,MAACQ,OAAA,EAAK,IAAIC,gBAAO,UAAU,0BAAY;AAAA,IAEzC,gBAAAT,MAACU,MAAA,EAAI,IAAID,gBAAO,UACb,uBAAa,IAAI,CAACJ,UACjB,gBAAAJ,MAACS,MAAA,EACC;AAAA,sBAAAV;AAAA,QAAC;AAAA;AAAA,UACC,OAAOK,MAAK;AAAA,UACZ,MAAMA,MAAK;AAAA,UACX,OAAO;AAAA,UACP,QAAQA,MAAK,SAAS,WAAW;AAAA;AAAA,MACnC;AAAA,MACA,gBAAAL;AAAA,QAAC;AAAA;AAAA,UACC,UAAU;AAAA,UACV,QAAQK,MAAK,SAAS,WAAW,OAAO,SAAS;AAAA,UAEjD,0BAAAL,MAACU,MAAA,EAAI,IAAID,gBAAO,mBACb,UAAAJ,MAAK,SAAS,IAAI,CAAC,YAClB,gBAAAL;AAAA,YAAC;AAAA;AAAA,cAEC,OAAO,QAAQ;AAAA,cACf,MAAM,QAAQ;AAAA,cACd,OAAO;AAAA,cACP,QAAQ,QAAQ,SAAS,WAAW;AAAA;AAAA,YAJ/B,QAAQ;AAAA,UAKf,CACD,GACH;AAAA;AAAA,MACF;AAAA,SAtBQK,MAAK,IAuBf,CACD,GACH;AAAA,IACC;AAAA,KACH;AAEJ;AAEA,IAAO,0BAAQ;;;AE/Gf,SAAS,aAAAM,YAAW,UAAAC,SAAQ,YAAAC,WAAU,cAAAC,mBAAkB;AACxD,SAAS,QAAAC,QAAM,QAAAC,OAAM,OAAAC,aAAW;AAChC,OAAOC,WAAU;;;ACAjB,IAAM,UAAuB;AAAA,EAC3B,SAAS;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,UAAU;AAAA,EACV,MAAM;AAAA,EACN,KAAK;AAAA,EACL,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,WAAW;AAAA,IACT,YAAY;AAAA,IACZ,YAAY;AAAA,EACd;AAAA,EACA,0BAA0B;AAAA,IACxB,YAAY;AAAA,IACZ,OAAO;AAAA,EACT;AAAA,EACA,4BAA4B;AAAA,IAC1B,SAAS;AAAA,EACX;AACF;AAEA,IAAM,eAA4B;AAAA,EAChC,OAAO,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,OAAO;AAAA,EACvD,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,eAAe;AACjB;AAEA,IAAMC,iBAA6B;AAAA,EACjC,UAAU;AACZ;AAEA,IAAM,UAAuB;AAAA,EAC3B,IAAI,CAAC,MAAM;AAAA,EACX,OAAO;AAAA,EACP,UAAU;AAAA,EACV,aAAa,CAAC,KAAK,KAAK,KAAK,KAAK;AAAA,EAClC,cAAc,CAAC,KAAK,KAAK,KAAK,OAAO,OAAO,GAAG;AAAA,EAC/C,IAAI,CAAC,KAAK,KAAK,KAAK,OAAO,OAAO,MAAM;AAAA,EACxC,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,MAAM;AAAA,MACJ,QAAQ;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAM,gBAA6B;AAAA,EACjC,GAAG;AAAA,EACH,YAAY,CAAC,WAAW,WAAW,WAAW,WAAW,WAAW,MAAM;AAAA,EAC1E,OAAO;AACT;AAEA,IAAM,wBAAqC;AAAA,EACzC,OAAO;AAAA,EACP,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,IAAI,CAAC,KAAK,KAAK,KAAK,KAAK;AAC3B;AAEA,IAAM,OAAoB;AAAA,EACxB,OAAO,CAAC,MAAM;AAAA,EACd,QAAQ,CAAC,MAAM;AACjB;AAEA,IAAM,aAA0B;AAAA,EAC9B,GAAG;AAAA,EACH,UAAU;AAAA,IACR,QAAQ;AAAA,EACV;AACF;AAEA,IAAM,iBAA8B;AAAA,EAClC,IAAI;AAAA,EACJ,WAAW;AAAA,EACX,IAAI;AAAA,IACF,QAAQ;AAAA,IACR,WAAW;AAAA,EACb;AACF;AAEA,IAAM,YAAyB;AAAA,EAC7B,SAAS,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,OAAO;AAAA,EACzD,OAAO;AAAA,EACP,UAAU;AAAA,EACV,IAAI,CAAC,OAAO,OAAO,OAAO,OAAO,OAAO,MAAM;AAAA,EAC9C,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,cAAc;AAChB;AAEA,IAAM,cAA2B;AAAA,EAC/B,SAAS;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,IAAOC,kBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA,eAAAD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;AC5IO,IAAM,mBAAgC,CAAC,iBAA0B;AACtE,QAAME,eAA2B;AAAA,IAC/B,SAAS;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAe,SAAS;AAAA,IAC1B;AAAA,EACF;AACA,SAAOA;AACT;;;ACdA,SAAS,aAAAC,YAAW,UAAAC,SAAQ,YAAAC,iBAAgB;AAC5C,SAAS,OAAAC,MAAK,QAAAC,aAAuC;;;ACGrD,IAAM,mBAOa,CAAC,IAAI,WAAW,OAAO,QAAQ,GAAG,MAAM;AACzD,QAAM,WAAW;AAAA,IACf,QAAQ;AAAA,MACN,MAAM,GAAG,IAAI,QAAQ,CAAC;AAAA,MACtB,KAAK,GAAG,IAAI,SAAS,CAAC;AAAA,IACxB;AAAA,IACA,MAAM;AAAA,MACJ,MAAM,GAAG,IAAI,CAAC;AAAA,MACd,KAAK,GAAG,IAAI,SAAS,CAAC;AAAA,IACxB;AAAA,IACA,KAAK;AAAA,MACH,MAAM,GAAG,IAAI,QAAQ,CAAC;AAAA,MACtB,KAAK,GAAG,IAAI,CAAC;AAAA,IACf;AAAA,IACA,OAAO;AAAA,MACL,MAAM,GAAG,IAAI,QAAQ,CAAC;AAAA,MACtB,KAAK,GAAG,IAAI,SAAS,CAAC;AAAA,IACxB;AAAA,EACF;AAEA,QAAM,cAAc;AAAA,IAClB,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,KAAK;AAAA,IACL,OAAO;AAAA,EACT;AAEA,QAAM,YAAY;AAAA,IAChB,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,KAAK;AAAA,IACL,OAAO;AAAA,EACT;AAEA,SAAO;AAAA,IACL,GAAG;AAAA,IACH,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,GAAG,SAAS,SAAS;AAAA,IACrB,WAAW,YAAY,SAAS;AAAA,IAChC,eAAe,UAAU,SAAS;AAAA,EACpC;AACF;AAEA,IAAM,QAA+C,CAAC,cAAc;AAClE,QAAM,WAAW;AAAA,IACf,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,KAAK;AAAA,IACL,OAAO;AAAA,EACT;AAEA,QAAM,cAAc;AAAA,IAClB,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,KAAK;AAAA,IACL,OAAO;AAAA,EACT;AAEA,SAAO;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,WAAW;AAAA,IACX,WAAW,UAAU,SAAS,SAAS,CAAC,mBAAmB,YAAY,SAAS,CAAC;AAAA,EACnF;AACF;AAEA,IAAM,QAAqB;AAAA,EACzB,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AACd;AAEA,IAAM,4BAAyC;AAAA,EAC7C,GAAG;AAAA,EACH,SAAS;AACX;AAEA,IAAM,8BAA2C;AAAA,EAC/C,GAAG;AAAA,EACH,OAAO;AAAA,EACP,WAAW;AAAA,EACX,IAAI;AAAA,EACJ,IAAI;AACN;AAEA,IAAM,aAAa,CAAC,yBAA+C;AACjE,MAAI;AAAsB,WAAO;AACjC,SAAO;AACT;AACA,IAAOC,kBAAQ,EAAE,kBAAkB,OAAO,WAAW;;;AC1GrD,SAAS,QAAAC,aAAY;AAWjB,gBAAAC,aAAA;AATJ,IAAM,YAAY,CAAC,UACjB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN,0BAAAC;AAAA,MAAC;AAAA;AAAA,QACC,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA;AACF;AAGF,IAAO,gBAAQ;;;AFgBT,gBAAAC,OAQE,QAAAC,aARF;AAzBN,IAAM,UAAU,CAAC,EAAE,UAAU,OAAAC,QAAO,WAAW,IAAI,OAAO,MAAa;AACrE,QAAMC,OAAMC,QAAuB;AACnC,QAAM,CAAC,UAAU,WAAW,IAAIC,UAAS,CAAC;AAC1C,QAAM,CAAC,WAAW,YAAY,IAAIA,UAAS,CAAC;AAC5C,QAAM,CAAC,eAAe,gBAAgB,IAAIA,UAAS,CAAC;AACpD,QAAM,CAAC,cAAc,eAAe,IAAIA,UAAS,CAAC;AAClD,QAAM,CAAC,SAAS,UAAU,IAAIA,UAAS,KAAK;AAE5C,EAAAC,WAAU,MAAM;AACd,QAAIH,KAAI,SAAS;AACf,kBAAYA,KAAI,QAAQ,WAAW;AACnC,mBAAaA,KAAI,QAAQ,YAAY;AACrC,uBAAiBA,KAAI,QAAQ,UAAU;AACvC,sBAAgBA,KAAI,QAAQ,SAAS;AAAA,IACvC;AAAA,EACF,GAAG;AAAA,IACDA,KAAI;AAAA,IACJA,KAAI,SAAS;AAAA,IACbA,KAAI,SAAS;AAAA,IACbA,KAAI,SAAS;AAAA,IACbA,KAAI,SAAS;AAAA,EACf,CAAC;AAED,SACE,gBAAAF,MAACM,MAAA,EACC;AAAA,oBAAAP;AAAA,MAACO;AAAA,MAAA;AAAA,QACC,KAAKJ;AAAA,QACL,cAAc,MAAM,WAAW,IAAI;AAAA,QACnC,cAAc,MAAM,WAAW,KAAK;AAAA,QAEnC;AAAA;AAAA,IACH;AAAA,IACC,YAAY,UAAU,SACrB,gBAAAF;AAAA,MAACO;AAAA,MAAA;AAAA,QACC,IAAIC,gBAAO;AAAA,UACT;AAAA,UACA,aAAa;AAAA,UACb;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QAEA;AAAA,0BAAAT,MAAC,iBAAU,IAAIS,gBAAO,MAAM,aAAa,KAAK,GAAG;AAAA,UACjD,gBAAAT,MAACO,MAAA,EAAI,IAAIE,gBAAO,WAAW,UAAU,KAAK,GAAI,UAAAP,QAAM;AAAA;AAAA;AAAA,IACtD;AAAA,KAEJ;AAEJ;AAEA,IAAO,kBAAQ;;;AG7DR,IAAM,cAAc,CAEzB,MAAW,CAAC,GAEZ,MAAW,CAAC,GACZ,WAAW,OAEH;AACR,aAAW,OAAO,KAAK;AACrB,QAAI,OAAO,IAAI,GAAG,MAAM,UAAU;AAChC,UAAI,WAAW,GAAG,IAAI,IAAI,GAAG;AAAA,IAC/B,OAAO;AACL,kBAAY,IAAI,GAAG,GAAG,KAAK,GAAG,QAAQ,GAAG,GAAG,GAAG;AAAA,IACjD;AAAA,EACF;AACA,SAAO;AACT;AAEO,IAAM,mBAAmB,CAC9B,QACA,UACA,MACA,WACG;AACH,QAAM,YAAY,OAAO,KAAK,MAAM,EAAE,OAAO,CAAC,QAAQ,OAAO,GAAG,MAAM,IAAI;AAC1E,MAAI,OAAO;AACX,aAAW,IAAI,CAAC,OAAO;AACrB,QACE,UACA,OAAO,GAAG,GAAG,QAAQ,SAAS,SAAS,CAAC,EAAE,KAAK,QAAQ,YAAY,KACnE,OAAO,GAAG,GAAG,QAAQ,SAAS,WAAW,CAAC,EAAE,KAAK,UACjD;AACA,aAAO;AAAA,IACT,WAAW,YAAY,QAAQ,GAAG,QAAQ,SAAS,WAAW,CAAC,GAAG;AAChE,aAAO;AAAA,IACT;AAAA,EACF,CAAC;AACD,SAAO;AACT;AAEA,SAAS,YACP,eACA,YACS;AACT,aAAW,OAAO,eAAe;AAC/B,QAAI,IAAI,WAAW,GAAG,UAAU,GAAG,GAAG;AACpC,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AAEO,IAAM,aAAa,CACxB,MACA,MACA,kBACA,cACA,WACG;AACH,QAAM,YAAY,MAAM,MAAM,UAAU;AACxC,aAAW,OAAO,EAAE;AACpB,MAAI,OAAO;AACX,aAAW,IAAI,CAAC,OAAO;AACrB,SAAK,OAAO;AACZ,WAAO,KAAK;AAEZ,QAAI,CAAC,UAAU,iBAAiB,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,SAAS,MAAM,GAAG;AAChE,mBAAa,KAAK,iBAAiB,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;AAAA,IACpD;AAAA,EACF,CAAC;AACD,SAAO;AACT;;;ACrEA,SAAS,aAAAQ,kBAAiB;AAC1B,SAAS,aAAAC,kBAAiB;AAGnB,IAAMC,WAAU,CAAC,KAAa,aAA0B;AAC7D,aAAW,WAAW,UAAU;AAC9B,WAAO,QAAQ,KAAK,CAACC,UAASA,MAAK,UAAU,GAAG,GAAG;AAAA,EACrD;AACF;AAMO,IAAM,iBAAiB,CAAC;AAAA,EAC7B,eAAe,CAAC;AAAA,EAChB;AACF,MAA2B;AACzB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,mBAAmB,YAAY,iBAAiB;AACtD,QAAM,SAASH,WAAU;AAEzB,MAAI,aAAa;AACjB,QAAM,YAAY,OAAO,MAAM;AAE/B,MAAI,aAAa,OAAO,aAAa,8BAA8B;AACjE,iBAAa,OAAO,OAAO,QAAQ,wBAAwB,EAAE;AAC7D,UAAM,UAAU,WAAW,MAAM,GAAG;AACpC,UAAM,aAAa,OAAO,OAAO,QAAQ,GAAG,IAAI;AAChD,UAAM,UAAU,QAAQ,CAAC,EAAE,MAAM,aAAa,MAAM,YAAY,EAAE,CAAC;AACnE,UAAM,WAAW,MAAM,QAAQ,OAAO,GAAG,QAAQ,MAAM,EAAE,KAAK,GAAG;AACjE,QAAI;AACJ,QAAI,YAAY,KAAK;AACnB,mBAAa;AACb,gBAAU,iBAAiB,kBAAkB,IAAI,OAAO;AAAA,IAC1D,OAAO;AACL,YAAM,SAAS,QAAQ,CAAC,EACrB,MAAM,aAAa,MAAM,YAAY,EAAE,CAAC,EACxC,MAAM,GAAG,EAAE,CAAC;AACf,gBAAU,iBAAiB,kBAAkB,UAAU,SAAS,MAAM;AAAA,IACxE;AACA,iBAAa,KAAK,UAAU;AAC5B,QAAI,SAAS;AACX,iBAAW,SAAS,QAAQ,kBAAkB,YAAY;AAAA,IAC5D;AAAA,EACF,OAAO;AACL,iBAAa,aAAa,aAAa,SAAS,CAAC;AAAA,EACnD;AAEA,EAAAC,WAAU,MAAM;AACd,yBAAqB,YAAY;AACjC,iBAAa,QAAQ,CAAC,SAAiB;AACrC,yBAAmB,IAAI;AAAA,IACzB,CAAC;AACD,4BAAwB,YAAY,QAAQ,cAAc,GAAG,CAAC;AAAA,EAChE,GAAG,CAAC,sBAAsB,MAAM,CAAC;AACnC;;;AC/DA,SAAS,QAAAG,OAAM,OAAAC,OAAK,QAAAC,OAAM,UAAAC,eAAc;AACxC,SAAS,cAAAC,aAAY,SAAS,YAAAC,iBAAgB;;;ACA9C,IAAM,mBAAgC;AAAA,EACpC,UAAU;AAAA,EACV,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,eAAe;AAAA,IACb,SAAS;AAAA,IACT,YAAY;AAAA,EACd;AAAA,EACA,gBAAgB;AAAA,IACd,SAAS;AAAA,IACT,YAAY;AAAA,EACd;AAAA,EACA,UAAU;AAAA,IACR,eAAe;AAAA,MACb,SAAS;AAAA,MACT,YAAY;AAAA,IACd;AAAA,EACF;AACF;AAEA,IAAM,4BAAyC;AAAA,EAC7C,OAAO;AAAA,EACP,WAAW;AAAA,EACX,QAAQ;AACV;AAEA,IAAM,sBAAmC;AAAA,EACvC,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,WACE;AAAA,EACF,UAAU;AAAA,EACV,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,UAAU;AAAA,IACR,cAAc;AAAA,EAChB;AACF;AAEA,IAAM,+BAA4C;AAAA,EAChD,SAAS;AAAA,EACT,YAAY;AACd;AAEA,IAAM,uBAAoC;AAAA,EACxC,IAAI;AACN;AAEA,IAAM,yBAAsC;AAAA,EAC1C,GAAG;AACL;AAEA,IAAM,wBAAqC;AAAA,EACzC,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,KAAK;AAAA,EACL,SAAS;AAAA,EACT,cAAc;AAChB;AAEA,IAAM,eAA4B;AAAA,EAChC,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,YAAY;AACd;AAEA,IAAM,kBAA+B;AAAA,EACnC,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,QAAQ;AACV;AAEA,IAAM,YAAyB;AAAA,EAC7B,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,aAAa;AACf;AAEA,IAAM,cAA2B;AAAA,EAC/B,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,UAAU,CAAC,MAAM;AACnB;AAEA,IAAM,aAA0B;AAAA,EAC9B,UAAU;AAAA,EACV,WAAW;AAAA,EACX,OAAO;AAAA,EACP,IAAI;AACN;AAEA,IAAM,gBAA6B;AAAA,EACjC,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,UAAU;AAAA,EACV,KAAK;AAAA,EACL,OAAO;AAAA,EACP,QAAQ;AACV;AAEA,IAAM,sBAAmC;AAAA,EACvC,GAAG;AAAA,EACH,SAAS;AACX;AAEA,IAAM,aAA0B;AAAA,EAC9B,WAAW;AACb;AAEA,IAAM,cAA2B;AAAA,EAC/B,SAAS;AACX;AAEA,IAAM,cAA2B;AAAA,EAC/B,SAAS;AAAA,EACT,OAAO;AAAA,EACP,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,IAAI;AAAA,EACJ,KAAK;AAAA,IACH,OAAO;AAAA,IACP,IAAI;AAAA,EACN;AACF;AAEA,IAAOC,kBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;AC3KA,SAAS,OAAAC,MAAK,QAAAC,OAAM,QAAAC,aAAY;;;ACAhC,SAAS,QAAAC,OAAM,QAAAC,aAAyB;;;ACExC,IAAMC,aAAyB;AAAA,EAC7B,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,gBAAgB;AAClB;AAEA,IAAM,OAAoB;AAAA,EACxB,YAAY;AAAA,EACZ,UAAU;AACZ;AAEA,IAAM,YAAyB;AAAA,EAC7B,UAAU;AAAA,EACV,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,IAAI;AACN;AAEA,IAAOC,mBAAQ;AAAA,EACb,WAAAD;AAAA,EACA;AAAA,EACA;AACF;;;ACxBO,IAAM,gBAAgB;AAAA,EAC3B,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,YAAY;AAAA,EACd;AAAA,EACA,KAAK;AAAA,IACH,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,YAAY;AAAA,EACd;AAAA,EACA,KAAK;AAAA,IACH,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,YAAY;AAAA,EACd;AAAA,EACA,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,YAAY;AAAA,EACd;AAAA,EACA,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,YAAY;AAAA,EACd;AACF;AAEO,IAAM,gBAAgB,CAC3B,QACA,QACA,OACgB;AAChB,QAAM,iBAAiB,cAAc,MAAM,KAAK;AAAA,IAC9C,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,YAAY;AAAA,EACd;AAEA,QAAME,iBAA6B,SAC/B;AAAA,IACE,GAAGC,iBAAO;AAAA,IACV,GAAG;AAAA,IACH,GAAG;AAAA,IACH,UAAU;AAAA,MACR,wBAAwB;AAAA,QACtB,MAAM;AAAA,UACJ,MAAM,eAAe;AAAA,QACvB;AAAA,QACA,MAAM;AAAA,UACJ,QAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF;AAAA,EACF,IACA;AAAA,IACE,GAAGA,iBAAO;AAAA,IACV,OAAO,eAAe;AAAA,IACtB,GAAG;AAAA,EACL;AAEJ,SAAOD;AACT;AAEO,IAAM,eAAe,CAAC,QAAoB,WAA2B;AAC1E,QAAM,iBAAiB,OAAO,CAAC,IAAI,OAAO,MAAM,CAAC,EAAE,YAAY;AAC/D,MAAI,UAAU;AAAU,WAAO;AAC/B,SAAO,eAAe,MAAM,GAAG,CAAC;AAClC;AAEO,IAAM,qBAAqB,CAAC,WAAuB;AACxD,QAAM,iBAAiB,cAAc,MAAM;AAC3C,QAAMA,iBAA6B;AAAA,IACjC,GAAGC,iBAAO;AAAA,IACV,MAAM;AAAA,MACJ,MAAM;AAAA,IACR;AAAA,IACA,MAAM;AAAA,MACJ,QAAQ,eAAe;AAAA,IACzB;AAAA,EACF;AAEA,SAAOD;AACT;;;ACvFA,SAAS,QAAAE,aAAY;AAGnB,SAQE,OAAAC,OARF,QAAAC,aAAA;AADF,IAAM,kBAAkB,CAAC,UACvB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,UAAK,OAAM,MAAK,QAAO,MAAK,IAAG,KAAI,MAAK,WAAU;AAAA,MACnD,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,4BAAQ;;;AHVX,SACE,OAAAE,OADF,QAAAC,cAAA;AAPJ,IAAM,iBAAiB,CAAC;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA2B;AACzB,SACE,gBAAAA,OAACC,OAAA,EAAK,WAAU,mBAAkB,IAAI,cAAc,QAAQ,QAAQ,EAAE,GACpE;AAAA,oBAAAF,MAACG,OAAA,EAAK,IAAIC,iBAAO,MAAO,uBAAa,QAAQ,MAAM,GAAE;AAAA,IACpD,WAAW,YAAY,UACtB,gBAAAJ;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,IAAI,mBAAmB,MAAM;AAAA;AAAA,IAC/B;AAAA,KAEJ;AAEJ;AAEA,IAAO,0BAAQ;;;AD9Bf,SAAmC,cAAAK,aAAY,YAAAC,iBAAgB;;;AKA/D,IAAMC,aAAyB;AAAA,EAC7B,IAAI;AAAA,EACJ,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,eAAe;AAAA,EACf,IAAI;AACN;AAEA,IAAMC,QAAoB;AAAA,EACxB,IAAI;AACN;AAEA,IAAM,WAAwB;AAAA,EAC5B,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,IACR,aAAa;AAAA,EACf;AACF;AAEA,IAAM,QAAqB;AAAA,EACzB,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,UAAU;AAAA,IACR,OAAO;AAAA,EACT;AACF;AAEA,IAAOC,mBAAQ;AAAA,EACb,WAAAF;AAAA,EACA,MAAAC;AAAA,EACA;AAAA,EACA;AACF;;;ALsBQ,gBAAAE,OAeF,QAAAC,cAfE;AAvCR,IAAM,gBAAgB,CAAC;AAAA,EACrB;AAAA,EACA;AACF,MAA0B;AACxB,QAAM,CAAC,eAAe,gBAAgB,IAAIC,UAAuB,CAAC,CAAC;AACnE,QAAM,EAAE,OAAO,IAAIC,YAAW,cAAc;AAE5C,QAAM,YAAY,CAAC,wBAA2C;AAC5D,QAAI,qBAAqB;AACvB,YAAM,QAAQ,cAAc,QAAQ,mBAAmB;AACvD,gBAAU,KACN,iBAAiB,CAAC,GAAG,eAAe,mBAAmB,CAAC,IACxD;AAAA,QACE,cAAc,OAAO,CAAC,WAAW,WAAW,mBAAmB;AAAA,MACjE;AACJ;AAAA,QACE,iBAAiB,IAAI,CAAC,iBAAiB;AACrC,cAAI,aAAa,SAAS;AACxB,yBAAa,SAAS,CAAC,aAAa;AACtC,iBAAO;AAAA,QACT,CAAC;AAAA,MACH;AAAA,IACF,OAAO;AACL,uBAAiB,CAAC,CAAC;AACnB;AAAA,QACE,iBAAiB,IAAI,CAAC,iBAAiB;AACrC,uBAAa,SAAS;AACtB,iBAAO;AAAA,QACT,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AAEA,QAAM,eAAe,CAAC,EAAE,aAAa,MAAyB;AAC5D,WACE,gBAAAH;AAAA,MAACI;AAAA,MAAA;AAAA,QAEC,SAAS,MAAM,UAAU,aAAa,IAAkB;AAAA,QAExD,0BAAAJ;AAAA,UAAC;AAAA;AAAA,YACC,IAAIK,iBAAO;AAAA,YACX,QAAQ,aAAa;AAAA,YACrB,QAAQ,aAAa;AAAA,YACrB,QAAQ;AAAA;AAAA,QACV;AAAA;AAAA,MARK,mBAAmB,aAAa,IAAI;AAAA,IAS3C;AAAA,EAEJ;AAEA,SACE,gBAAAJ,OAACG,MAAA,EAAI,IAAIC,iBAAO,WACd;AAAA,oBAAAL,MAACM,OAAA,EAAK,IAAID,iBAAO,MACd,mBAAS,MAAM,EAAE,8BAA8B,GAClD;AAAA,IACA,gBAAAJ,OAACM,OAAA,EACE;AAAA,uBAAiB,IAAI,CAAC,iBACrB,gBAAAP;AAAA,QAAC;AAAA;AAAA,UAEC;AAAA;AAAA,QADK,mBAAmB,aAAa,IAAI;AAAA,MAE3C,CACD;AAAA,MACA,cAAc,SAAS,KACtB,gBAAAA,MAACM,OAAA,EAAK,SAAS,MAAM,UAAU,IAAI,GAAG,IAAID,iBAAO,OAC9C,mBAAS,MAAM,EAAE,oCAAoC,GACxD;AAAA,OAEJ;AAAA,KACF;AAEJ;AAEA,IAAO,iCAAQ;;;AM9Ff,SAAS,aAAAG,kBAAiB;AAC1B,SAAgB,UAAU,cAAAC,mBAAkB;AAC5C;AAAA,EACE,OAAAC;AAAA,EACA,QAAAC;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC;AAAA,EACA,aAAAC;AAAA,EACA;AAAA,OACK;;;ACPP,IAAM,mBAAgC;AAAA,EACpC,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,UAAU;AAAA,IACR,YAAY;AAAA,IACZ,GAAG;AAAA,MACD,OAAO;AAAA,MACP,sBAAsB;AAAA,QACpB,aAAa;AAAA,MACf;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAM,cAA2B;AAAA,EAC/B,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,cAAc;AAAA,EACd,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,QAAQ;AACV;AAEA,IAAM,gBAA6B;AAAA,EACjC,GAAG;AAAA,EACH,OAAO;AACT;AAEA,IAAM,YAAyB;AAAA,EAC7B,SAAS;AAAA,EACT,OAAO;AAAA,EACP,QAAQ;AACV;AAEA,IAAM,kBAA+B;AAAA,EACnC,GAAG;AAAA,EACH,OAAO;AACT;AAEA,IAAM,gBAA6B;AAAA,EACjC,eAAe;AAAA,EACf,uBAAuB;AAAA,EACvB,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,gBAAgB;AAClB;AAEA,IAAMC,kBAA8B;AAAA,EAClC,IAAI;AAAA,IACF,QAAQ;AAAA,IACR,WAAW;AAAA,EACb;AACF;AAEA,IAAM,YAAyB;AAAA,EAC7B,IAAI;AACN;AAEA,IAAOC,mBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,gBAAAD;AAAA,EACA;AACF;;;ACrEO,IAAM,qBAAqB,CAAC,OAAeE,UAAkB;AAClE,QAAM,KAAK,KAAKA,SAAQ,QAAQ,KAAK,KAAK,KAAK,QAAQ,KAAK,KAAK;AACjE,QAAM,aAAaA,QAAO,SAAS,SAAS,IAAI,sBAAsB;AACtE,QAAM,SAAsB;AAAA,IAC1B,YAAY,GAAG,EAAE;AAAA,IACjB;AAAA,EACF;AAEA,SAAO;AACT;AAEO,IAAM,YAAY,CAAC,QAAiBA,UAAkB;AAC3D,QAAM,KAAKA,QAAO,QAAQ;AAC1B,MAAI,QAAQ;AACV,UAAM,kBAA+B;AAAA,MACnC,GAAGC,iBAAO;AAAA,MACV;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,QAAMC,aAAyB;AAAA,IAC7B,GAAGD,iBAAO;AAAA,IACV;AAAA,EACF;AAEA,SAAOC;AACT;;;AF8GgB,gBAAAC,OAmBJ,QAAAC,cAnBI;AAzGhB,IAAM,kBAAkB,CAAC,EAAE,YAAY,OAAO,aAAa,MAAoB;AAC7E,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAIC,YAAW,cAAc;AAC7B,QAAM,SAASC,WAAU;AAEzB,QAAM,cAAc,CAClB,GACA,YACA,SACG;AACH,MAAE,eAAe;AACjB,UAAM,mBAAmB,OAAO,MAAM;AACtC,UAAM,OAAO,QAAQ,cAAc,IAAI,YAAY,IAAI;AACvD,WAAO,KAAK,MAAM,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,MAAM;AAC7C,UAAI;AAAkB,eAAO,OAAO;AAAA,IACtC,CAAC;AAAA,EACH;AAIA,QAAM,yBAAyB,CAE7B,aACA,MACA,SACG;AACH,QACE,CAAC,eACA,OAAO,gBAAgB,YAAY,CAAC,MAAM,QAAQ,WAAW,GAC9D;AACA,aAAO;AAAA,IACT,WAAW,aAAa,QAAQ,QAAQ,aAAa,QAAQ,MAAM;AACjE,aAAO;AAAA,IACT,WAAW,MAAM,QAAQ,WAAW,GAAG;AACrC,eAAS,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK;AAG3C,cAAM,SAAS,uBAAuB,YAAY,CAAC,GAAG,MAAM,IAAI;AAChE,YAAI,QAAQ;AACV,iBAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF,OAAO;AACL,iBAAW,KAAK,aAAa;AAG3B,cAAM,SAAS,uBAAuB,YAAY,CAAC,GAAG,MAAM,IAAI;AAChE,YAAI,QAAQ;AACV,iBAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAEA,QAAM,UAAU,CAACC,aAAoB,YAAoB,SAAiB;AACxE,UAAM,eAAe,CAAC,MAAM,IAAI;AAChC,UAAM,eACJ,UAAU,aAAa,SAAS,MAAM,IAAI,IAAI,MAAM,KAAK;AAC3D,UAAM,OACJA,gBAAe,uBACX,IAAIA,WAAU,IAAI,IAAI,IAAI,UAAU,KACpC,GAAG,YAAY,IAAIA,WAAU,IAAI,IAAI;AAC3C,WAAO,KAAK,WAAW,MAAM,GAAG;AAAA,EAClC;AAEA,QAAM,cAAc,CAAC;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,MAAsB;AACpB,UAAM,gBAAwB,OAAO,SAAS,WAAW,OAAO,KAAK,MAAM;AAC3E,UAAM,gBAAwB,OAAO,SAAS,WAAW,OAAO,KAAK,MAAM;AAC3E,UAAM,eAAe,SAAS,SAAS;AACvC,UAAM,aAAa,SAAS,IAAI,OAAO,YAAY,CAAC,IAAI,QAAQ,KAAK;AACrE,UAAM,aAAa,SAAS,GAAG,aAAa,GAAG,UAAU,KAAK;AAC9D,WACE,gBAAAJ,MAACK,OAAA,EAAI,IAAIC,iBAAO,kBACd,0BAAAL,OAACM,OAAA,EAAK,IAAI,mBAAmB,cAAc,gBAAgB,KAAK,GAC7D;AAAA,sBACC,gBAAAP;AAAA,QAACQ;AAAA,QAAA;AAAA,UACC,cACE,qBAAqB,IAAI,aAAa,KACtC,qBAAqB,IAAI,aAAa,IAClC,sBACA;AAAA,UAEN,MAAK;AAAA,UACL,SAAQ;AAAA,UACR,IACE,qBAAqB,IAAI,aAAa,KACtC,qBAAqB,IAAI,aAAa,IAClCF,iBAAO,kBACPA,iBAAO;AAAA,UAEb,MAAM,MACJ,gBAAAN;AAAA,YAACS;AAAA,YAAA;AAAA,cACC,WACE,qBAAqB,IAAI,aAAa,KACtC,qBAAqB,IAAI,aAAa,IAClC,SACA;AAAA,cAEN,MAAM;AAAA;AAAA,UACR;AAAA,UAEF,SAAS,MAAM,2BAA2B,aAAa;AAAA;AAAA,MACzD;AAAA,MAED,CAAC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,KACA,CAAC,uBAAuB,mBAAmB,eAAe,MAAM,IAC9D,gBAAAR;AAAA,QAACS;AAAA,QAAA;AAAA,UACC,IAAI,UAAU,yBAAyB,YAAY,YAAY;AAAA,UAC/D,SAAS,CAAC,MAAsC;AAC9C,gBAAI,CAAC,iBAAiB;AACpB,0BAAY,GAAG,YAAY,aAAa;AAAA,YAC1C;AACA,uCAA2B,UAAU;AAAA,UACvC;AAAA,UACA,MAAM,QAAQ,cAAc,IAAI,YAAY,aAAa;AAAA,UACzD,QAAQ,oBAAoB,OAAO,WAAW;AAAA,UAC9C;AAAA,UAEC;AAAA,sBACC,gBAAAV;AAAA,cAAC;AAAA;AAAA,gBACC,IAAIM,iBAAO;AAAA,gBACX,QAAQ,yBAAyB;AAAA,gBACjC,QAAO;AAAA,gBACP;AAAA;AAAA,YACF;AAAA,YAED;AAAA;AAAA;AAAA,MACH,IACE;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,IACA,gBAAAL,OAACS,OAAA,EAAK,MAAM,eAAe,QAAO,UAAS,IAAIJ,iBAAO,aACpD;AAAA,wBAAAN,MAAC,oBAAiB,MAAM,IAAI,IAAI,EAAE,aAAa,OAAO,GAAG;AAAA,QACxD;AAAA,SACH,IAEA,gBAAAC;AAAA,QAACI;AAAA,QAAA;AAAA,UACC,IAAI;AAAA,YACF,yBAAyB;AAAA,YACzB;AAAA,UACF;AAAA,UACA,SAAS,MAAM;AACb,uCAA2B,aAAa;AAAA,UAC1C;AAAA,UAEC;AAAA,sBACC,gBAAAL;AAAA,cAAC;AAAA;AAAA,gBACC,IAAIM,iBAAO;AAAA,gBACX,QAAQ,yBAAyB;AAAA,gBACjC,QAAO;AAAA,gBACP;AAAA;AAAA,YACF;AAAA,YAED;AAAA;AAAA;AAAA,MACH;AAAA,OAEJ,GACF;AAAA,EAEJ;AAEA,QAAM,kBAAkB,CAAC,EAAE,MAAM,SAAS,MAAsB;AAC9D,UAAM,eAAe,SAAS,SAAS;AAIvC,UAAM,gBAAwB,OAAO,SAAS,WAAW,OAAO,KAAK,MAAM;AAC3E,WAAO,gBACL,qBAAqB,IAAI,aAAa,KACtC,qBAAqB,IAAI,aAAa,IACtC,gBAAAN,MAACK,OAAA,EACC,0BAAAL;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,OAAO;AAAA,QACP,cAAc,eAAe;AAAA;AAAA,MACxB,GAAG,aAAa;AAAA,IACvB,GACF,IACE;AAAA,EACN;AAEA,SACE,gBAAAA,MAACK,OAAA,EAAI,WAAU,qBACZ,iBAAO,IAAI,CAACM,OAAM,UAAU;AAC3B,UAAM,MACJ,OAAOA,MAAK,SAAS,WACjB,OAAOA,MAAK,IAAI,IAAI,OAAO,KAAK,IAChC,OAAOA,MAAK,KAAK,MAAM,CAAC,IAAI,OAAO,KAAK;AAC9C,UAAM,OACJ,OAAOA,MAAK,SAAS,WACjB,GAAGA,MAAK,IAAI,KACZ,GAAGA,MAAK,KAAK,MAAM,CAAC;AAE1B,WACE,gBAAAV,OAAC,YACC;AAAA,sBAAAD,MAAC,eAAa,GAAGW,OAAM,MAAY;AAAA,MACnC,gBAAAX,MAACK,OAAA,EACC,0BAAAL,MAAC,mBAAiB,GAAGW,OAAM,MAAY,GACzC;AAAA,MACC,gBAAgB,IACf,gBAAAX,MAACK,OAAA,EAAI,IAAIC,iBAAO,gBACd,0BAAAN,MAAC,QAAG,GACN,IACE;AAAA,SATS,OAAO,GAAG,CAUzB;AAAA,EAEJ,CAAC,GACH;AAEJ;AAEA,IAAO,2BAAQ;;;AGxQf,SAAS,QAAAY,aAAY;AASjB,gBAAAC,aAAA;AAPJ,IAAM,aAAa,CAAC,UAClB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN,0BAAAC;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,UAAS;AAAA,QACT,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA;AACF;AAGF,IAAO,sBAAQ;;;AClBf,SAAS,QAAAC,aAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,oBAAoB,CAAC,UACzB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,8BAAQ;;;ACxCf,SAAS,QAAAE,aAAY;AAGnB,SAOE,OAAAC,OAPF,QAAAC,cAAA;AADF,IAAM,gBAAgB,CAAC,UACrB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEL;AAAA;AAAA,MACD,gBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,0BAAQ;;;AbuEJ,qBAAAE,WAAA,OAAAC,OAcH,QAAAC,cAdG;AA5EX,IAAM,iBAAiB,CAAC;AAAA,EACtB,eAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,kBAAkB;AACpB,MAA2B;AACzB,QAAM,CAAC,aAAa,cAAc,IAAIC,UAAS,EAAE;AACjD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAIC,YAAW,cAAc;AAC7B,QAAM,CAAC,kBAAkB,mBAAmB,IAAID,UAAS;AAAA,IACvD,EAAE,MAAM,QAAQ,QAAQ,MAAM;AAAA,IAC9B,EAAE,MAAM,OAAO,QAAQ,MAAM;AAAA,IAC7B,EAAE,MAAM,OAAO,QAAQ,MAAM;AAAA,IAC7B,EAAE,MAAM,UAAU,QAAQ,MAAM;AAAA,IAChC,EAAE,MAAM,SAAS,QAAQ,MAAM;AAAA,EACjC,CAAC;AAED,QAAM,eAAe,iBAAiB;AAAA,IACpC,CAAC,iBAAiB,aAAa;AAAA,EACjC;AAEA,QAAM,iBAAiB,QAAQ,MAAM;AACnC,QAAI,CAAC,gBAAgB,gBAAgB;AAAI,aAAO;AAEhD,UAAM,WAAW,KAAK,MAAM,KAAK,UAAU,UAAU,CAAC;AAEtD,UAAM,qBAAqB,SACxB,IAAI,CAACE,cAA6B;AACjC,MAAAA,UAAS,WAAWA,UAAS,SAC1B,IAAI,CAAC,gBAAgB;AACpB,oBAAY,WAAW,YAAY,SAAS,OAAO,CAAC,aAAa;AAC/D,gBAAM,kBACJ,CAAC,gBACD,iBAAiB;AAAA,YACf,CAAC,iBAAiB,aAAa,SAAS,SAAS;AAAA,UACnD,GAAG;AACL,gBAAM,iBACJ,gBAAgB,OACf,OAAO,SAAS,SAAS,WACtB,SAAS,OACT,SAAS,KAAK,MAAM,GAErB,YAAY,EACZ,SAAS,YAAY,YAAY,CAAC;AACvC,iBAAO,mBAAmB;AAAA,QAC5B,CAAC;AACD,eAAO;AAAA,MACT,CAAC,EACA;AAAA,QACC,CAAC,gBACC,YAAY,SAAS,SAAS,KAC7B,YAAY,SAAS,eACnB,OAAO,YAAY,SAAS,WACzB,YAAY,OACZ,YAAY,KAAK,MAAM,GAExB,YAAY,EACZ,SAAS,YAAY,YAAY,CAAC;AAAA,MAC3C;AACF,aAAOA;AAAA,IACT,CAAC,EACA,OAAO,CAACA,cAA6BA,UAAS,SAAS,SAAS,CAAC;AACpE,WAAO;AAAA,EACT,GAAG,CAAC,cAAc,kBAAkB,YAAY,WAAW,CAAC;AAE5D,QAAM,UAAUC,SAAQJ,gBAAe,eAAe;AAEtD,MAAI,wBAAwB;AAE5B,MAAI,CAAC,cAAc,WAAW,UAAU,GAAG;AACzC,WAAO,gBAAAF,MAAAD,WAAA,EAAE;AAAA,EACX,OAAO;AACL,4BAAwB,OAAO,SAAU,WAAW,OAAO,KAAK,MAAM;AAAA,EACxE;AAEA,SAAO,kBACL,gBAAAC;AAAA,IAACO;AAAA,IAAA;AAAA,MACC,WAAW,uBAAuB,WAAW;AAAA,MAC7C,IAAIC,gBAAO;AAAA,MAEX,0BAAAP;AAAA,QAACM;AAAA,QAAA;AAAA,UACC,WAAW,uBAAuB,gBAAgB;AAAA,UAClD,IAAIC,gBAAO;AAAA,UAEX;AAAA,4BAAAP,OAACQ,OAAA,EAAK,IAAID,gBAAO,uBACf;AAAA,8BAAAR;AAAA,gBAACU;AAAA,gBAAA;AAAA,kBACC,IAAIF,gBAAO;AAAA,kBACX,cAAY;AAAA,kBACZ,MAAK;AAAA,kBACL,SAAQ;AAAA,kBACR,MAAM,MAAM,gBAAAR,MAAC,2BAAc,MAAM,IAAI;AAAA,kBACrC,SAAS,MAAM;AACb,4CAAwB,IAAI;AAAA,kBAC9B;AAAA;AAAA,cACF;AAAA,cACC,WAAW,gBAAAA,MAAC,WAAQ;AAAA,cACrB,gBAAAA,MAACW,OAAA,EAAK,IAAIH,gBAAO,cAAe,iCAAsB;AAAA,eACxD;AAAA,YACA,gBAAAP,OAACM,OAAA,EAAI,IAAIC,gBAAO,sBACd;AAAA,8BAAAP,OAACQ,OAAA,EAAK,IAAID,gBAAO,WACf;AAAA,gCAAAR,MAAC,uBAAW,IAAIQ,gBAAO,YAAY;AAAA,gBACnC,gBAAAR;AAAA,kBAAC;AAAA;AAAA,oBACC,OAAOQ,gBAAO;AAAA,oBACd,WAAU;AAAA,oBACV,MAAK;AAAA,oBACL,aACE,SAAS,MAAM,EAAE,4BAA4B,IAC7C,MACA;AAAA,oBAEF,OAAO;AAAA,oBACP,UAAU,CAAC,MAAM,eAAe,EAAE,cAAc,KAAK;AAAA;AAAA,gBACvD;AAAA,iBACF;AAAA,cACCN,kBAAiB,mBAChB,gBAAAF;AAAA,gBAAC;AAAA;AAAA,kBACC;AAAA,kBACA,iBAAiB;AAAA;AAAA,cACnB;AAAA,eAEJ;AAAA,YACA,gBAAAA,MAACO,OAAA,EAAI,IAAIC,gBAAO,sBACd,0BAAAR;AAAA,cAAC;AAAA;AAAA,gBACC,OAAO;AAAA,gBACP,cAAc;AAAA,gBACd;AAAA;AAAA,YACF,GACF;AAAA;AAAA;AAAA,MACF;AAAA;AAAA,EACF,IAEA,gBAAAC;AAAA,IAACM;AAAA,IAAA;AAAA,MACC,WAAW,uBAAuB,WAAW;AAAA,MAC7C,IAAIC,gBAAO;AAAA,MAEX;AAAA,wBAAAP;AAAA,UAACM;AAAA,UAAA;AAAA,YACC,WAAW,uBAAuB,gBAAgB;AAAA,YAClD,IAAIC,gBAAO;AAAA,YACX,WAAQ;AAAA,YAER;AAAA,8BAAAP,OAACM,OAAA,EAAI,IAAIC,gBAAO,wBACb;AAAA,mCACC,gBAAAP,OAACU,OAAA,EAAK,IAAIH,gBAAO,aACf;AAAA,kCAAAP;AAAA,oBAAC;AAAA;AAAA,sBACC,OAAM;AAAA,sBACN,OAAM;AAAA,sBACN,QAAO;AAAA,sBACP,SAAQ;AAAA,sBACR,MAAK;AAAA,sBAEL;AAAA,wCAAAD,MAAC,YAAO,IAAG,MAAK,IAAG,MAAK,GAAE,MAAK,MAAK,WAAU;AAAA,wBAC9C,gBAAAA;AAAA,0BAAC;AAAA;AAAA,4BACC,GAAE;AAAA,4BACF,MAAK;AAAA;AAAA,wBACP;AAAA,wBACA,gBAAAA;AAAA,0BAAC;AAAA;AAAA,4BACC,GAAE;AAAA,4BACF,MAAK;AAAA;AAAA,wBACP;AAAA;AAAA;AAAA,kBACF;AAAA,kBAAM;AAAA,mBAER;AAAA,gBAEF,gBAAAA,MAACW,OAAA,EAAK,IAAIH,gBAAO,cAAe,iCAAsB;AAAA,gBACtD,gBAAAP,OAACQ,OAAA,EAAK,IAAID,gBAAO,WACf;AAAA,kCAAAR,MAAC,uBAAW,IAAIQ,gBAAO,YAAY;AAAA,kBACnC,gBAAAR;AAAA,oBAAC;AAAA;AAAA,sBACC,OAAOQ,gBAAO;AAAA,sBACd,WAAU;AAAA,sBACV,MAAK;AAAA,sBACL,aACE,SAAS,MAAM,EAAE,4BAA4B,IAC7C,MACA;AAAA,sBAEF,OAAO;AAAA,sBACP,UAAU,CAAC,MAAM,eAAe,EAAE,cAAc,KAAK;AAAA;AAAA,kBACvD;AAAA,mBACF;AAAA,iBACF;AAAA,cACCN,kBAAiB,mBAChB,gBAAAF;AAAA,gBAAC;AAAA;AAAA,kBACC;AAAA,kBACA,iBAAiB;AAAA;AAAA,cACnB;AAAA,cAEF,gBAAAA,MAACO,OAAA,EAAI,IAAIC,gBAAO,sBACd,0BAAAR;AAAA,gBAAC;AAAA;AAAA,kBACC,OAAO;AAAA,kBACP,cAAc;AAAA,kBACd;AAAA;AAAA,cACF,GACF;AAAA;AAAA;AAAA,QACF;AAAA,QACA,gBAAAA;AAAA,UAACS;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,IACE,uBACID,gBAAO,sBACPA,gBAAO;AAAA,YAGb,0BAAAR;AAAA,cAAC;AAAA;AAAA,gBACC,SAAS,MAAM;AACb;AAAA,oBACE,CAACY,0BAAyB,CAACA;AAAA,kBAC7B;AAAA,gBACF;AAAA,gBACA,IAAI,uBAAuBJ,gBAAO,aAAa,CAAC;AAAA;AAAA,YAClD;AAAA;AAAA,QACF;AAAA;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,0BAAQ;;;AR3IH,SAoCA,YAAAK,WA7BE,OAAAC,OAPF,QAAAC,cAAA;AA4CM;AAhIlB,IAAM,UAAU,CAAC,EAAE,eAAe,CAAC,EAAE,MAA2B;AAC9D,QAAM,CAAC,mBAAmB,oBAAoB,IAAIC,UAAS,IAAI;AAE/D,QAAM,UAAUC,YAAW,cAAc;AACzC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,QAAM,wBAAwB;AAAA,IAC5B,GAAI,MAAM,QAAQ,iBAAiB,IAC/B,mBAAmB;AAAA,MACjB,CAAC,YACC,QAAQ,kBAAkB;AAAA,IAC9B,IACA;AAAA,EACN;AAEA,iBAAe;AAAA,IACb;AAAA,IACA;AAAA,EACF,CAAC;AAED,EAAAC,WAAU,MAAM;AACd,QAAI,QAAoC;AACxC,QAAI,sBAAsB,YAAY,SAAS;AAC7C,cAAQ;AAAA,QACN,MAAM,wBAAwB,qBAAqB,KAAK;AAAA,QACxD;AAAA,MACF;AAAA;AACG,8BAAwB,qBAAqB,IAAI;AAEtD,WAAO,MAAM;AACX,eAAS,aAAa,KAAK;AAAA,IAC7B;AAAA,EACF,GAAG,CAAC,iBAAiB,CAAC;AAEtB,QAAM,cAAc,CAAC,mBAA4B;AAC/C,UAAM,CAACC,cAAa,cAAc,IAAIH,UAAS,KAAK;AACpD,UAAM,CAAC,cAAc,eAAe,IAAIA,UAAS,eAAe,KAAK;AACrE,UAAM,WAAWI,QAAoB;AAErC,IAAAF,WAAU,MAAM;AACd,YAAM,iBAAiB,IAAI,iBAAiB,SAAU,SAAS;AAC7D,cAAM,SAAS,QAAQ,CAAC,EAAE;AAC1B,YAAI,OAAO,cAAc,OAAO;AAAa,yBAAe,IAAI;AAAA;AAC3D,yBAAe,KAAK;AAEzB,YAAI,OAAO,cAAc;AAAG,0BAAgB,OAAO,SAAS;AAAA,MAC9D,CAAC;AACD,UAAI,SAAS,SAAS;AACpB,YAAI,SAAS,QAAQ,cAAc,SAAS,QAAQ;AAClD,yBAAe,IAAI;AACrB,uBAAe,QAAQ,SAAS,SAAS;AAAA,UACvC,WAAW;AAAA,QACb,CAAC;AAAA,MACH;AACA,aAAO,MAAM;AACX,uBAAe;AAAA,MACjB;AAAA,IACF,GAAG,CAAC,SAAS,OAAO,CAAC;AAErB,WACE,gBAAAJ,MAACO,OAAA,EAAI,IAAIC,gBAAO,eACd,0BAAAR;AAAA,MAAC;AAAA;AAAA,QACC,IAAI,iBAAiBK,YAAW;AAAA,QAChC,WAAU;AAAA,QACV,OAAO;AAAA,QAEP,0BAAAL;AAAA,UAACS;AAAA,UAAA;AAAA,YACC,MAAM,CAAC,kBAAkB,eAAe,OAAO;AAAA,YAC/C,QAAQ,gBAAgB,kBAAkB,OAAO,WAAW;AAAA,YAC5D,SAAS,CAAC,MAAM;AACd,kBAAI,iBAAiB;AACnB,kBAAE,eAAe;AAAA,cACnB;AACA,mCAAqB,eAAe,EAAE;AAAA,YACxC;AAAA,YACA,UAAQ;AAAA,YACR,cAAY,eAAe;AAAA,YAE3B,0BAAAR;AAAA,cAACS;AAAA,cAAA;AAAA,gBACC,IACE,sBAAsB,eAAe,KACjCF,gBAAO,gBACPA,gBAAO;AAAA,gBAGb;AAAA,kCAAAR;AAAA,oBAAC,eAAe;AAAA,oBAAf;AAAA,sBACC,IACE,sBAAsB,eAAe,KACjCQ,gBAAO,aACPA,gBAAO;AAAA;AAAA,kBAEf;AAAA,kBACA,gBAAAR;AAAA,oBAACW;AAAA,oBAAA;AAAA,sBACC,WAAW,oBAAoB,4BAA4B;AAAA,sBAC3D,KAAK;AAAA,sBACL,IAAIH,gBAAO;AAAA,sBAEV,yBAAe;AAAA;AAAA,kBAClB;AAAA;AAAA;AAAA,YACF;AAAA;AAAA,QACF;AAAA;AAAA,IACF,GACF;AAAA,EAEJ;AAEA,SACE,gBAAAP,OAACS,QAAA,EAAK,IAAIF,gBAAO,SACf;AAAA,oBAAAR;AAAA,MAACU;AAAA,MAAA;AAAA,QACC,WAAW,oBAAoB,0BAA0B;AAAA,QACzD,IAAIF,gBAAO;AAAA,QAEV,0BAAgB,IAAI,CAAC,SAAS,OAAO;AACpC,iBACE,gBAAAP,OAAAF,WAAA,EACG;AAAA,iBAAK,KACJ,gBAAAC,MAACO,OAAA,EAAI,IAAIC,gBAAO,gBACd,0BAAAR,MAAC,QAAG,KAD+B,GAAG,EAAE,UAE1C;AAAA,YAEF,gBAAAA,MAACU,QAAA,EAAK,IAAIF,gBAAO,uBACd,kBAAQ,IAAI,CAAC,YACZ;AAAA,cAAC;AAAA;AAAA,gBACE,GAAG;AAAA,gBACJ,KAAK,gBAAgB,QAAQ,KAAK;AAAA;AAAA,YACpC,CACD,KAN0C,EAO7C;AAAA,aACF;AAAA,QAEJ,CAAC;AAAA;AAAA,IACH;AAAA,IACC,oBAAoB,gBAAAR,MAAC,2BAAgB,GAAG,uBAAuB,IAAK;AAAA,KACvE;AAEJ;AAEA,IAAO,kBAAQ;;;AsBpKf;AAAA,EACE;AAAA,EACA,iBAAiB;AAAA,EACjB,OAAAY;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC;AAAA,OACK;;;ACJP,IAAM,gBAA6B;AAAA,EACjC,SAAS;AAAA,EACT,OAAO;AACT;AAEA,IAAM,gBAA6B;AAAA,EACjC,SAAS;AAAA,EACT,eAAe;AAAA,EACf,OAAO;AAAA,EACP,WAAW;AAAA,EACX,QAAQ;AACV;AAEA,IAAM,oBAAiC;AAAA,EACrC,iBAAiB;AAAA,EACjB,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,WAAW;AAAA,EACX,WAAW;AAAA,EACX,WAAW;AAAA,EACX,YAAY;AACd;AAEA,IAAM,qBAAkC;AAAA,EACtC,SAAS,CAAC,SAAS,SAAS,SAAS,MAAM;AAAA,EAC3C,iBAAiB;AAAA,EACjB,OAAO;AAAA,EACP,eAAe;AAAA,IACb,WAAW;AAAA,EACb;AACF;AAIA,IAAM,2BAAwC;AAAA,EAC5C,SAAS;AAAA,EACT,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,QAAQ;AACV;AAEA,IAAM,yBAAsC;AAAA,EAC1C,IAAI;AAAA,EACJ,eAAe;AACjB;AAEA,IAAM,mBAAgC;AAAA,EACpC,IAAI;AAAA,EACJ,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,WAAW;AACb;AAEA,IAAM,yBAAsC;AAAA,EAC1C,SAAS;AAAA,EACT,UAAU;AAAA,EACV,WAAW;AACb;AAEA,IAAM,qBAAkC;AAAA,EACtC,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,gBAAgB;AAClB;AAEA,IAAMC,aAAyB;AAAA,EAC7B,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,OAAO;AACT;AAEA,IAAMC,mBAA+B;AAAA,EACnC,GAAGD;AAAA,EACH,OAAO;AACT;AAEA,IAAOE,mBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAAF;AAAA,EACA,iBAAAC;AACF;;;ADlFA,SAAS,cAAAE,oBAAkB;;;AET3B,OAAOC,WAAU;AACjB,SAAS,OAAAC,OAAK,QAAAC,QAAM,QAAAC,aAAY;;;ACChC,IAAMC,iBAA6B;AAAA,EACjC,IAAI,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,MAAM;AAAA,EAC3D,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,mBAAmB;AAAA,IACjB,cAAc;AAAA,IACd,iBAAiB;AAAA,IAEjB,gBAAgB;AAAA,MACd,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,kBAAkB;AAAA,IAChB,OAAO;AAAA,EACT;AAAA,EAEA,iBAAiB;AAAA,IACf,OAAO;AAAA,EACT;AACF;AAEA,IAAM,iBAA8B;AAAA,EAClC,YAAY;AACd;AAEA,IAAMC,SAAqB;AAAA,EACzB,IAAI;AAAA,EACJ,OAAO;AACT;AAEA,IAAMC,eAA2B;AAAA,EAC/B,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,OAAO;AACT;AAEA,IAAOC,mBAAQ;AAAA,EACb,eAAAH;AAAA,EACA,aAAAE;AAAA,EACA,OAAAD;AAAA,EACA;AACF;;;AC1CA,IAAMG,iBAAgB,CAAC,kBAA0B;AAC/C,QAAM,iBACJ,kBAAkB,aACd,CAAC,SAAS,SAAS,SAAS,OAAO,IACnC,kBAAkB,WAClB,SACA,CAAC,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ;AAErE,QAAM,YACJ,kBAAkB,aACd,CAAC,SAAS,SAAS,SAAS,OAAO,IACnC,kBAAkB,WAClB,QACA,CAAC,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ;AAErE,QAAMA,iBAA6B;AAAA,IACjC,GAAGC,iBAAO;AAAA,IACV,OAAO;AAAA,IAEP,wBAAwB;AAAA,MACtB,OAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAOD;AACT;AAEA,IAAME,kBAAiB,CAAC,kBAA0B;AAChD,QAAM,eACJ,kBAAkB,aAAa,CAAC,OAAO,OAAO,OAAO,KAAK,IAAI;AAEhE,QAAMA,kBAA8B;AAAA,IAClC,GAAGD,iBAAO;AAAA,IACV;AAAA,EACF;AAEA,SAAOC;AACT;AAEA,IAAM,YAAY,CAAC,kBAA0B;AAC3C,QAAM,kBACJ,kBAAkB,aACd;AAAA,IACE,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY;AAAA,EACd,IACA;AAAA,IACE,UAAU;AAAA,IACV,YAAY;AAAA,EACd;AAEN,QAAMC,aAAyB;AAAA,IAC7B,GAAGF,iBAAO;AAAA,IACV,GAAG;AAAA,EACL;AAEA,SAAOE;AACT;;;AFpCU,SACE,OAAAC,OADF,QAAAC,cAAA;AAZV,IAAM,oBAAoB,CAAC;AAAA,EACzB,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,MAAAC;AAAA,EACA;AAAA,EACA,MAAAC;AAAA,EACA;AACF,MAAiB;AACf,SACE,gBAAAL,MAACM,OAAA,EAAK,MAAMF,OAAM,gBAAc,MAC9B,0BAAAJ,MAAC,OAAE,SAAkB,OAAO,EAAE,OAAO,OAAO,GAC1C,0BAAAC,OAACM,OAAA,EAAI,IAAIC,eAAc,aAAa,GAClC;AAAA,oBAAAP,OAACQ,QAAA,EAAK,IAAIC,gBAAe,aAAa,GACpC;AAAA,sBAAAV,MAACK,QAAA,EAAK,IAAI,EAAE,OAAO,UAAU,GAAG,MAAM,IAAI;AAAA,MAC1C,gBAAAL,MAACW,OAAA,EAAK,WAAU,SAAQ,IAAI,UAAU,aAAa,GAChD,UAAAT,QACH;AAAA,OACF;AAAA,IACA,gBAAAF,MAACW,OAAA,EAAK,WAAU,eAAc,IAAIC,iBAAO,aACtC,UAAAT,cACH;AAAA,KACF,GACF,GACF;AAEJ;AAEA,IAAO,6BAAQ;;;AG1Cf,SAAS,WAAW,qBAAqB;;;ACAzC,SAAS,UAAAU,SAAuB,cAAAC,mBAAkB;AAClD,SAAS,aAAAC,kBAAiB;AAC1B,SAAS,QAAAC,cAAY;AACrB,SAAS,wBAAwB;;;ACDjC,IAAM,wBAAqC;AAAA,EACzC,UAAU;AACZ;AAEA,IAAM,wBAAqC;AAAA,EACzC,KAAK;AAAA,EACL,UAAU;AAAA,EACV,OAAO,CAAC,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO;AAAA,EAC5D,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,YAAY;AACd;AAEA,IAAM,aAA0B;AAAA,EAC9B,SAAS;AACX;AAEA,IAAM,SAAsB;AAAA,EAC1B,SAAS;AAAA,EACT,WAAW;AAAA,EACX,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,EACb;AACF;AAEA,IAAM,SAAsB;AAAA,EAC1B,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,mBAAmB;AAAA,IACjB,iBAAiB;AAAA,IACjB,cAAc;AAAA,IACd,sBAAsB;AAAA,MACpB,OAAO;AAAA,IACT;AAAA,IACA,aAAa;AAAA,MACX,UAAU;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAM,UAAuB;AAAA,EAC3B,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,aAAa;AACf;AAEA,IAAM,sBAAmC;AAAA,EACvC,OAAO;AACT;AAEA,IAAM,aAA0B;AAAA,EAC9B,OAAO;AAAA,EACP,UAAU,CAAC,QAAQ,MAAM;AAAA,EACzB,YAAY,CAAC,QAAQ,MAAM;AAAA,EAC3B,OAAO;AACT;AAEA,IAAM,kBAA+B;AAAA,EACnC,OAAO;AAAA,EACP,UAAU,CAAC,QAAQ,MAAM;AAAA,EACzB,YAAY,CAAC,QAAQ,MAAM;AAAA,EAC3B,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,cAAc;AAChB;AAEA,IAAM,cAA2B;AAAA,EAC/B,YAAY;AACd;AAEA,IAAM,gBAA6B;AAAA,EACjC,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,cAAc;AAChB;AAEA,IAAM,kBAA+B;AAAA,EACnC,GAAG;AAAA,EACH,UAAU;AACZ;AAEA,IAAM,qBAAkC;AAAA,EACtC,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AACT;AAEA,IAAMC,eAA2B;AAAA,EAC/B,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,UAAU,CAAC,MAAM;AAAA,EACjB,MAAM;AAAA,EACN,YAAY;AACd;AAEA,IAAMC,cAA0B;AAAA,EAC9B,UAAU;AAAA,EACV,WAAW;AAAA,EACX,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,UAAU;AACZ;AAEA,IAAM,kBAA+B;AAAA,EACnC,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,UAAU;AAAA,IACR,YAAY;AAAA,IACZ,OAAO,CAAC,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO;AAAA,IAC5D,QAAQ;AAAA,EACV;AAAA,EACA,iBAAiB;AAAA,IACf,YAAY;AAAA,IACZ,OAAO,CAAC,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO;AAAA,IAC5D,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,MAAM;AAAA,IACN,oBAAoB;AAAA,MAClB,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,oBAAoB;AAAA,IAClB,sBAAsB;AAAA,MACpB,OAAO;AAAA,IACT;AAAA,IACA,4BAA4B;AAAA,MAC1B,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAEA,IAAM,YAAyB;AAAA,EAC7B,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,SAAS;AACX;AAEA,IAAM,wBAAqC;AAAA,EACzC,GAAG;AAAA,EACH,OAAO;AAAA,EACP,OAAO;AAAA,EACP,YAAY;AACd;AAEA,IAAOC,mBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAAF;AAAA,EACA,YAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ADjJI,SACE,OAAAE,OADF,QAAAC,cAAA;AAzBJ,IAAM,qBAAqB,CAAC;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AACF,MAAsB;AACpB,QAAM,SAASC,WAAU;AACzB,QAAM,WAAWC,QAAyB,IAAI;AAC9C,QAAM,EAAE,OAAO,IAAIC,YAAW,cAAc;AAE5C,QAAM,cAAc,MAAM;AACxB,QAAI,SAAS,WAAW;AAAM,eAAS,QAAQ,MAAM;AAAA,EACvD;AAEA,QAAM,aAAa,CAAC,MAAuC;AACzD,QAAI,EAAE,QAAQ,SAAS;AACrB,aAAO,KAAK;AAAA,QACV,UAAU;AAAA,QACV,OAAO,EAAE,SAAS,SAAS,SAAS,MAAM;AAAA,MAC5C,CAAC;AACD,eAAS,SAAS,KAAK;AACvB,kBAAY,KAAK;AAAA,IACnB;AAAA,EACF;AAEA,SACE,gBAAAH,OAACI,QAAA,EAAK,IAAIC,iBAAO,iBAAiB,SAAS,aACzC;AAAA,oBAAAN,MAAC,uBAAW,IAAIM,iBAAO,YAAY;AAAA,IACnC,gBAAAN;AAAA,MAAC;AAAA;AAAA,QACC,OAAOM,iBAAO;AAAA,QACd,KAAK;AAAA,QACL,WAAU;AAAA,QACV,MAAK;AAAA,QACL,aAAa,SAAS,MAAM,EAAE,0BAA0B;AAAA,QACxD,OAAO;AAAA,QACP,WAAQ;AAAA,QACR,WAAW,CAAC,MAAM,WAAW,CAAC;AAAA,QAC9B,UAAU,CAAC,MAAM,OAAO,EAAE,cAAc,KAAK;AAAA;AAAA,IAC/C;AAAA,KACF;AAEJ;AAEA,IAAM,YAAY,iBAAiB,kBAAkB;AAErD,IAAO,qBAAQ;;;AE3Df,SAAS,aAAAC,kBAAiB;AAC1B,OAAOC,WAAU;AACjB;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAMP,OAAO,QAAQ;AACf,SAAS,OAAAC,OAAK,QAAAC,QAAM,aAAAC,YAAW,QAAAC,aAAY;;;ACX3C,SAAS,QAAAC,aAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,gBAAgB,CAAC,UACrB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,0BAAQ;;;ACjDf,SAAS,QAAAE,aAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,mBAAmB,CAAC,UACxB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,6BAAQ;;;ACjCf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,qBAAqB,CAAC,UAC1B,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,+BAAQ;;;ACnCf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,mBAAmB,CAAC,UACxB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,6BAAQ;;;ACjDf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,4BAA4B,CAAC,UACjC,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,sCAAQ;;;AC/Df,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,iBAAiB,CAAC,UACtB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,4BAAQ;;;AChDf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,sBAAsB,CAAC,UAC3B,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,UAAS;AAAA,UACT,UAAS;AAAA,UACT,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACb;AAAA,MACD,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,UAAS;AAAA,UACT,UAAS;AAAA,UACT,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACb;AAAA,MACD,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,GAAE;AAAA;AAAA,MACH;AAAA;AAAA;AACH;AAGF,IAAO,+BAAQ;;;ACjCf,SAAS,QAAAE,cAAY;AASjB,gBAAAC,OACA,QAAAC,cADA;AAPJ,IAAM,YAAY,CAAC,UACjB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,YAAO,IAAG,KAAI,IAAG,KAAI,GAAE,KAAI,MAAK,WAAU;AAAA,MAC3C,gBAAAC,OAAC,OAAE,UAAS,0BACV;AAAA,wBAAAD;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,UAAS;AAAA,YACT,UAAS;AAAA,YACT,GAAE;AAAA,YACF,MAAK;AAAA;AAAA,QACP;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,UAAS;AAAA,YACT,UAAS;AAAA,YACT,GAAE;AAAA,YACF,MAAK;AAAA;AAAA,QACP;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,UAAS;AAAA,YACT,UAAS;AAAA,YACT,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,UAAS;AAAA,YACT,UAAS;AAAA,YACT,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,SACF;AAAA,MACA,gBAAAA,MAAC,UACC,0BAAAA,MAAC,cAAS,IAAG,oBACX,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,QAAO;AAAA,UACP,MAAK;AAAA,UACL,WAAU;AAAA;AAAA,MACZ,GACF,GACF;AAAA;AAAA;AACF;AAGF,IAAO,qBAAQ;;;ACrEf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,iBAAiB,CAAC,UACtB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,YAAO,IAAG,KAAI,IAAG,KAAI,GAAE,KAAI,MAAK,WAAU;AAAA,MAC3C,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA;AAAA;AACF;AAGF,IAAO,0BAAQ;;;ACnBf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,YAAY,CAAC,UACjB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,YAAO,IAAG,KAAI,IAAG,KAAI,GAAE,KAAI,MAAK,WAAU;AAAA,MAC3C,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA,UACL,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,qBAAQ;;;ACvBf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,eAAe,CAAC,UACpB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,YAAO,IAAG,OAAM,IAAG,KAAI,GAAE,KAAI,MAAK,WAAU;AAAA,MAC7C,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,wBAAQ;;;ACpBf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,cAAc,CAAC,UACnB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,YAAO,IAAG,OAAM,IAAG,KAAI,GAAE,KAAI,MAAK,WAAU;AAAA,MAC7C,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,uBAAQ;;;ACZR,IAAM,iBAAiB,CAAC,QAAa;AAC1C,QAAM,cAAwB,CAAC;AAC/B,MAAI,IAAI,YAAY,mBAAmB,IAAI;AACzC,gBAAY,KAAK,IAAI,WAAW;AAClC,cAAY,KAAK,IAAI,QAAQ;AAC7B,SAAO;AACT;AAEO,IAAM,iBAAiB,CAAC,QAAgB;AAC7C,QAAM,cAAc,IAAI,QAAQ,sBAAsB,EAAE;AACxD,SAAO,MAAM;AACf;AA0CO,IAAM,qBAAqB,CAAC,UAAuB,OAAe;AACvE,SAAO,SAAS,KAAK,EAAE,KAAK,CAAC,YAAY,QAAQ,OAAO,EAAE,GAAG;AAC/D;AAcA,IAAM,UAAoB;AAAA,EACxB;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,EACR;AACF;AAEO,IAAM,YAAY,CAAC,eAAmC;AAC3D,SAAO,QAAQ,KAAK,CAAC,WAAW,OAAO,SAAS,UAAU;AAC5D;AAEO,IAAM,eAAe,CAAC,UAAuB,OAAe;AACjE,SAAO,SAAS,KAAK,EAAE,KAAK,CAACE,UAASA,MAAK,OAAO,EAAE,GAAG,SAAS;AAClE;;;ACvHA,SAAS,aAAAC,YAAW,UAAAC,SAAQ,YAAAC,iBAAgB;AAC5C,SAAS,wBAAwB;AAEjC,SAAS,QAAAC,QAAM,QAAAC,aAAY;AA2Hb,gBAAAC,aAAA;AA1Gd,IAAM,YAAY,CAAC;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA4B;AAC1B,QAAM,CAAC,WAAW,YAAY,IAAIC,UAA8B,CAAC,CAAC;AAClE,QAAM,gBAAgBC,QAAoB,IAAI;AAC9C,QAAM,gBAAqC,UAAU;AAAA,IACnD,mBAAmB;AAAA,IACnB,WAAW,IAAI,QAAQ,YAAY,aAAa,IAAI,IAAI,KAAK;AAAA,IAC7D;AAAA,EACF,CAAC;AACD,QAAM,qBAAqB;AAC3B,QAAM,kBAAuC,CAAC;AAC9C,MAAI,YAAY;AACd,QAAI,YAAY;AAChB,kBAAc,QAAQ,CAAC,SAAS;AAC9B,UAAI,qBAAqB,aAAa;AAAG;AACzC,UAAI,KAAK,MAAM,SAAS,aAAa,oBAAoB;AACvD,aAAK,QACH,KAAK,MAAM,MAAM,GAAG,qBAAqB,YAAY,CAAC,IAAI;AAAA,MAC9D;AACA,mBAAa,KAAK,MAAM;AACxB,sBAAgB,KAAK,IAAI;AAAA,IAC3B,CAAC;AAAA,EACH;AAEA,EAAAC,WAAU,MAAM;AACd,QAAI;AAAY;AAChB,UAAM,YAAY,cAAc,UAC5B,cAAc,QAAQ,cAAc,OACpC;AAEJ,UAAM,iBAAwC,CAAC;AAC/C,QAAI,iBAAiB,GACnB,kBAAkB;AAEpB,kBAAc,QAAQ,CAAC,OAA0B,UAAkB;AACjE,YAAM,YACJ,QAAQ,KAAK,QAAQ,cAAc,SAAS,IAAI,OAAO;AACzD,UAAI,MAAM,eAAe;AACvB,YAAI;AAAW;AACf;AACA,2BAAmB,MAAM,MAAM;AAAA,MACjC,OAAO;AACL,uBAAe,KAAK;AAAA,UAClB;AAAA,UACA;AAAA,UACA,MAAM,MAAM,MAAM;AAAA,QACpB,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAED,mBAAe;AAAA,MACb,CAAC,GAAwB,MAA2B,EAAE,OAAO,EAAE;AAAA,IACjE;AAEA,QAAI,gBAAgB,YAAY;AAChC,QAAI,OAAO,iBAAiB,kBAAkB;AAE9C,mBAAe,QAAQ,CAAC,UAA+B;AACrD,YAAM,QAAQ,cAAc,MAAM,KAAK,EAAE;AACzC,UAAI,MAAM,WAAW;AACnB,YAAI,MAAM,QAAQ,OAAO,GAAG;AAC1B,gBAAM,cAAc,OAAO,IAAI,KAAK;AACpC,wBAAc,MAAM,KAAK,EAAE,QACzB,MAAM,MAAM,GAAG,UAAU,IACzB,QACA,MAAM,MAAM,MAAM,SAAS,UAAU;AACvC,2BAAiB,OAAO;AAAA,QAC1B,OAAO;AACL,2BAAiB,MAAM;AAAA,QACzB;AACA,0BAAkB;AAAA,MACpB,OAAO;AACL,YAAI,MAAM,QAAQ,MAAM;AACtB,cAAI,MAAM,UAAU;AAClB,0BAAc,MAAM,KAAK,EAAE,QACzB,QAAQ,MAAM,MAAM,MAAM,UAAU,OAAO,EAAE;AAAA;AAE/C,0BAAc,MAAM,KAAK,EAAE,QAAQ,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI;AAChE,2BAAiB;AAAA,QACnB,OAAO;AACL,2BAAiB,MAAM;AAAA,QACzB;AACA,0BAAkB;AAAA,MACpB;AACA,aAAO,gBAAgB;AACvB,oBAAc,MAAM,KAAK,EAAE,QAAQ,cACjC,MAAM,KACR,EAAE,MAAM,QAAQ,QAAQ,MAAQ;AAAA,IAClC,CAAC;AACD,iBAAa,aAAa;AAAA,EAC5B,GAAG,CAAC,KAAK,cAAc,OAAO,CAAC;AAE/B,SACE,gBAAAH;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,KAAK;AAAA,MACL,WAAU;AAAA,MACV,IAAIC,iBAAO;AAAA,MAEX,0BAAAL,MAACM,OAAA,EAAK,IAAI,aAAaD,iBAAO,aAAaA,iBAAO,iBAC9C,wBAAa,kBAAkB,WAAW;AAAA,QAC1C,CAAC,MAAyB,UACxB,KAAK,gBACH,gBAAAL,MAAC,UAAK,OAAOK,iBAAO,uBACjB,eAAK,SADwC,KAEhD,IAEA,KAAK;AAAA,MAEX,GACF;AAAA;AAAA,EACF;AAEJ;AAUA,IAAM,qBACJ,iBAAiB,SAAS;AAE5B,IAAO,0BAAQ;;;AdhIf,SAAS,cAAAE,mBAAkB;AA4BjB,SAmDJ,YAAAC,WAlDkB,OAAAC,OADd,QAAAC,cAAA;AAfV,IAAM,OAAO,CAAC,EAAE,KAAK,SAAS,MAAgB;AAC5C,QAAM,EAAE,gBAAgB,IAAIC,YAAW,cAAc;AACrD,QAAM,kBAAkB,eAAe,GAAG;AAC1C,QAAM,UAAU,mBAAmB,iBAAiB,IAAI,OAAO;AAC/D,SACE,gBAAAF,MAACG,OAAA,EAAK,MAAM,eAAe,IAAI,GAAG,GAAG,gBAAc,MACjD,0BAAAH;AAAA,IAAC;AAAA;AAAA,MACC,SAAS,MACP,SAAS,+BAA+B;AAAA,QACtC,WAAW;AAAA,QACX,WAAW,CAAC,IAAI,QAAQ;AAAA,MAC1B,CAAC;AAAA,MAGH,0BAAAC,OAACG,OAAA,EAAI,IAAIC,iBAAO,QACd;AAAA,wBAAAJ,OAACK,QAAA,EACE;AAAA,qBAAW,gBAAAN,MAAC,WAAQ,WAAU,YAAW,IAAIK,iBAAO,SAAS;AAAA,UAC9D,gBAAAL,MAACO,OAAA,EAAK,IAAIF,iBAAO,YACf,0BAAAL,MAAC,2BAAgB,KAAU,WAAU,WAAU,GACjD;AAAA,WACF;AAAA,QACA,gBAAAC,OAACK,QAAA,EAAK,IAAID,iBAAO,aACf;AAAA,0BAAAL,MAACO,OAAA,EAAK,IAAIF,iBAAO,iBAAkB,gBAAM,IAAI,OAAO,IAAG;AAAA,UACtD,gBAAgB,SAAS,KACxB,gBAAAL,MAACQ,YAAA,EAAU,WAAU,SAAQ,IAAIH,iBAAO,oBAAoB;AAAA,UAE7D,gBAAgB,IAAI,CAAC,QAAgB,UACpC,gBAAAJ,OAACK,QAAA,EAAK,IAAID,iBAAO,aACf;AAAA,4BAAAL,MAACO,OAAA,EAAK,IAAIF,iBAAO,eAAgB,kBAAO;AAAA,YACvC,QAAQ,gBAAgB,SAAS,IAChC,gBAAAL,MAACQ,YAAA,EAAU,WAAU,SAAQ,IAAIH,iBAAO,oBAAoB,IAC1D;AAAA,eAJ6B,GAAG,MAAM,GAAG,KAAK,EAKpD,CACD;AAAA,WACH;AAAA,SACF;AAAA;AAAA,EACF,GACF;AAEJ;AAEA,IAAM,kBAAkB,mBAAmB,EAAE,EAAE,IAAI;AAEnD,IAAM,UAAU;AAAA,EACd,CAAC,EAAE,aAAa,eAAe,YAAY,MAAM;AAC/C,UAAM,SAASI,WAAU;AACzB,UAAM,EAAE,OAAO,IAAIP,YAAW,cAAc;AAE5C,UAAM,eAAe,CAAC,YAAoB;AACxC,aAAO,KAAK;AAAA,QACV,UAAU;AAAA,QACV,OAAO,EAAE,QAAQ;AAAA,MACnB,CAAC;AACD,kBAAY,KAAK;AAAA,IACnB;AAGA,UAAM,wBAAwB,CAAC,KAAU,UAAuB;AAC9D,aAAO;AAAA,QACL,GAAG;AAAA,QACH,WAAW,cAAc,WAAW;AAAA,QACpC,YAAY,cAAc,cAAc,cAAc,OAAO,QAAQ;AAAA,MACvE;AAAA,IACF;AAEA,WACE,gBAAAF,MAAAD,WAAA,EACG,2BACC,gBAAAC,MAACI,OAAA,EAAI,IAAIC,iBAAO,uBACd,0BAAAJ,OAACG,OAAA,EAAI,IAAIC,iBAAO,uBACd;AAAA,sBAAAL,MAACI,OAAA,EAAI,IAAI,cAAc,KAAK,UAAUC,iBAAO,YAC1C,wBAAc,KAAK;AAAA,QAClB,CAAC,cAAc,UACb,QAAQ,KACN,gBAAAL;AAAA,UAACI;AAAA,UAAA;AAAA,YAEC,SAAS,MAAM,YAAY,KAAK;AAAA,YAEhC,0BAAAJ;AAAA,cAAC;AAAA;AAAA,gBACC,KAAK,sBAAsB,cAAc,KAAK;AAAA;AAAA,YAChD;AAAA;AAAA,UALK,kBAAkB,KAAK;AAAA,QAM9B;AAAA,MAEN,GACF;AAAA,MACC,cAAc,KAAK,SAAS,KAC3B,gBAAAA;AAAA,QAACI;AAAA,QAAA;AAAA,UACC,IAAIC,iBAAO;AAAA,UACX,SAAS,MAAM,aAAa,YAAY,SAAS,EAAE;AAAA,UAEnD,0BAAAL,MAACO,OAAA,EACE,mBAAS,MAAM,EAAE,sBAAsB,KAAK,mBAC/C;AAAA;AAAA,MACF;AAAA,MAED,CAAC,cAAc,KAAK,UACnB,gBAAAP,MAACM,QAAA,EAAK,IAAID,iBAAO,WACf,0BAAAL,MAACO,OAAA,EACE,mBAAS,MAAM,EAAE,oBAAoB,KAAK,iDAC7C,GACF;AAAA,OAEJ,GACF,GAEJ;AAAA,EAEJ;AACF;AAEA,IAAO,sBAAQ;;;AH7If,SAAS,OAAAG,aAAW;AACpB,SAAS,cAAAC,aAAY,UAAAC,SAAQ,YAAAC,iBAAgB;;;AkBJ7C,kBAAoD;AACpD,OAAOC,SAAQ;AAQR,IAAI,eAAoB,CAAC;AACzB,IAAI,cAAc;AAClB,IAAI,cAAc;AAwCzB,IAAM,sBAAsB,CAAC,WAA0B;AACrD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,oBAAoB;AAAA,EACtB,IAAI;AACJ,gBAAc;AAEd,EAAAC,IAAG,QAAQ;AAAA,IACT,OAAO,SAAS;AAAA,IAChB,QAAQ,UAAU;AAAA,IAClB,WAAW;AAAA,EACb,CAAC;AAED,EAAAA,IAAG,gBAAgB,MAAM,CAAC,QAAQ;AAChC,QAAI,KAAK;AACP,cAAQ,MAAM,GAAG;AACjB;AAAA,IACF;AAAA,EACF,CAAC;AAED,QAAM,oBAAgB,YAAAC,SAAc,SAAS,IAAI,UAAU,IAAI,cAAc;AAE7E,iBAAe;AAAA,IACb,GAAG;AAAA,IACH,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA,OAAO,UAAkC;AACvC,UAAI,SAAS,MAAM,CAAC,EAAE,OAAO,MAAM,CAAC,QAAQ,KAAK;AAAG;AACpD,aAAO,cAAc,OAAO,QAAQ;AAAA,IACtC;AAAA,EACF;AACF;AAGA,IAAM,4BAA4B;AASlC,IAAM,qBAAqB,CAAC,WAA+B;AACzD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,oBAAoB;AAAA,IACpB,oBAAoB;AAAA,IACpB,aAAa;AAAA,EACf,IAAI;AAGJ,QAAM,WAAW,gBAAgB,gBAAgB;AACjD,gBAAc;AAEd,QAAM,yBAAyB,mBAAmB,iBAAiB;AACnE,QAAM,QAA4B,CAAC;AAGnC,QAAM,YAAY,CAAC,QAAmC;AACpD,UAAM,MAAM,KAAK,IAAI;AACrB,aAAS,IAAI,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK;AAC1C,UAAI,MAAM,MAAM,CAAC,EAAE,KAAK,YAAY;AAClC,cAAM,OAAO,GAAG,CAAC;AAAA,MACnB;AAAA,IACF;AACA,WAAO,MAAM,KAAK,CAAC,MAAM,EAAE,QAAQ,GAAG,GAAG;AAAA,EAC3C;AAGA,QAAM,YAAY,CAAC,KAAa,SAAgB;AAC9C,UAAM,KAAK,EAAE,KAAK,IAAI,KAAK,IAAI,GAAG,KAAK,CAAC;AACxC,WAAO,MAAM,SAAS;AAAI,YAAM,MAAM;AAAA,EACxC;AAGA,EAAAD,IAAG,QAAQ;AAAA,IACT,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,WAAW;AAAA,EACb,CAAC;AAED,iBAAe;AAAA,IACb,OAAO;AAAA,IACP,QAAQ;AAAA,IACR;AAAA,IACA,sBAAsB;AAAA,IAEtB,MAAM,OACJ,UACmD;AACnD,UAAI,SAAS,MAAM,CAAC,EAAE,OAAO,MAAM,CAAC,QAAQ,KAAK,GAAG;AAClD,eAAO;AAAA,MACT;AAEA,UAAI;AAEF,cAAM,UACJ,SAAS,KAAK,CAAC,EAAE,QAAAE,QAAO,MAAMA,SAAQ,KAAK,KAAK,SAAS,CAAC;AAC5D,cAAM,SAAS,QAAQ,UAAU,CAAC;AAClC,cAAM,QAAQ,OAAO,SAAS;AAC9B,cAAMC,eAAc,OAAO,eAAe;AAC1C,cAAM,OAAO,OAAO,QAAQ;AAE5B,cAAM,EAAE,QAAQ,SAAS,IAAI,qBAAqB,MAAM;AAKxD,cAAM,WAAW,KAAK,UAAU;AAAA,UAC9B,GAAG;AAAA,UACH,QAAQ,oBAAoB,UAAU,KAAK;AAAA,UAC3C,OAAO;AAAA,QACT,CAAC;AAED,cAAM,aAAa,UAAU,QAAQ;AAErC,YAAI;AACJ,YAAI,YAAY;AACd,oBAAU;AAAA,QACZ,OAAO;AACL,gBAAM,MAAM,IAAI,IAAI,aAAa,OAAO,SAAS,MAAM;AACvD,cAAI,aAAa,IAAI,KAAK,KAAK;AAC/B,cAAI,aAAa,IAAI,SAAS,OAAO,sBAAsB,CAAC;AAC5D,cAAI,qBAAqB,QAAQ;AAC/B,gBAAI,aAAa,IAAI,UAAU,MAAM;AAAA,UACvC;AAEA,gBAAM,WAAW,MAAM,MAAM,IAAI,SAAS,CAAC;AAC3C,cAAI,CAAC,SAAS,IAAI;AAChB,kBAAM,IAAI,MAAM,yBAAyB,SAAS,MAAM,EAAE;AAAA,UAC5D;AAEA,gBAAM,OAAO,MAAM,SAAS,KAAK;AAEjC,gBAAM,aAAoB,MAAM,QAAQ,MAAM,OAAO,IACjD,KAAK,UACL,CAAC;AACL,oBAAU,WAAW,IAAI,wBAAwB;AACjD,oBAAU,UAAU,OAAO;AAAA,QAC7B;AAMA,cAAM,eAAe,oBAAoB,SAAS,QAAQ;AAC1D,cAAM,SAAS,aAAa;AAC5B,cAAM,UAAU,KAAK,IAAI,GAAG,KAAK,KAAK,SAASA,YAAW,CAAC;AAC3D,cAAM,QAAQ,OAAOA;AACrB,cAAM,WAAW,aAAa,MAAM,OAAO,QAAQA,YAAW;AAE9D,cAAM,SAAS,sBAAsB,OAAO;AAE5C,eAAO;AAAA,UACL,SAAS;AAAA,YACP;AAAA,cACE,MAAM;AAAA,cACN;AAAA,cACA;AAAA,cACA;AAAA,cACA,aAAAA;AAAA,cACA,kBAAkB;AAAA,cAClB;AAAA,cACA,QAAQ;AAAA,cACR,OAAO,QAAQ,aAAa;AAAA,cAC5B,kBAAkB;AAAA,cAClB,QAAQ,OAAO;AAAA,cACf,cAAc,CAAC;AAAA,cACf,uBAAuB;AAAA,cACvB,SAAS,gBAAgB;AAAA,YAC3B;AAAA,UACF;AAAA,QACF;AAAA,MACF,SAAS,OAAO;AACd,gBAAQ,MAAM,wBAAwB,KAAK;AAC3C,eAAO;AAAA,UACL,SAAS;AAAA,YACP;AAAA,cACE,MAAM,CAAC;AAAA,cACP,QAAQ;AAAA,cACR,MAAM;AAAA,cACN,SAAS;AAAA,cACT,aAAa;AAAA,cACb,kBAAkB;AAAA,cAClB,OAAO,SAAS,CAAC,GAAG,QAAQ,SAAS;AAAA,cACrC,QAAQ;AAAA,cACR,OAAO,SAAS,CAAC,GAAG,aAAa;AAAA,cACjC,kBAAkB;AAAA,YACpB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,mBAAmB,KAAqB;AAC/C,MAAI,CAAC,OAAO,SAAS,GAAG,KAAK,OAAO;AAAG,WAAO;AAC9C,SAAO,KAAK,IAAI,2BAA2B,KAAK,IAAI,GAAG,KAAK,MAAM,GAAG,CAAC,CAAC;AACzE;AAWA,SAAS,qBAEP,QACwC;AACxC,MAAI,SAAS;AACb,QAAM,WAAqB,CAAC;AAE5B,QAAM,cAAc,CAAC,QAAgB;AACnC,UAAM,QAAQ,IAAI,QAAQ,UAAU,EAAE,EAAE,KAAK;AAC7C,QAAI,SAAS,CAAC,SAAS,SAAS,KAAK;AAAG,eAAS,KAAK,KAAK;AAAA,EAC7D;AAGA,QAAM,aAAa,OAAO,QAAQ,YAAY,WAAW,OAAO,UAAU;AAC1E,MAAI,YAAY;AACd,UAAM,YAAY,WAAW,MAAM,0BAA0B;AAC7D,QAAI;AAAW,eAAS,UAAU,CAAC;AAEnC,UAAM,eAAe;AACrB,QAAI;AACJ,YAAQ,IAAI,aAAa,KAAK,UAAU,OAAO,MAAM;AACnD,kBAAY,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE;AAAA,IAChC;AAAA,EACF;AAGA,QAAM,eAAe,QAAQ;AAC7B,QAAM,QAAQ,CAAC,UAAmB;AAChC,QAAI,OAAO,UAAU,UAAU;AAC7B,UAAI,CAAC,UAAU,MAAM,WAAW,WAAW,GAAG;AAC5C,iBAAS,MAAM,MAAM,YAAY,MAAM;AAAA,MACzC,WAAW,MAAM,WAAW,UAAU,GAAG;AACvC,oBAAY,MAAM,MAAM,WAAW,MAAM,CAAC;AAAA,MAC5C;AAAA,IACF,WAAW,MAAM,QAAQ,KAAK,GAAG;AAC/B,YAAM,QAAQ,KAAK;AAAA,IACrB;AAAA,EACF;AACA,QAAM,YAAY;AAElB,SAAO,EAAE,QAAQ,SAAS;AAC5B;AAEA,SAAS,oBACP,MACA,UACK;AACL,MAAI,CAAC,SAAS;AAAQ,WAAO;AAC7B,QAAM,SAAS,IAAI,IAAI,SAAS,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAC3D,SAAO,KAAK;AAAA,IAAO,CAAC,MAClB,OAAO,IAAI,OAAO,EAAE,WAAW,EAAE,EAAE,YAAY,CAAC;AAAA,EAClD;AACF;AAGA,SAAS,yBAAyB,QAAkB;AAClD,QAAM,WAAW,OAAO,YAAY;AACpC,QAAM,UAAU,0BAA0B,QAAQ;AAElD,QAAM,YAAY;AAAA,IAChB,MAAM;AAAA,IACN,MAAM,OAAO,SAAS;AAAA,IACtB,MAAM,2BAA2B,QAAQ;AAAA,EAC3C;AAEA,QAAM,MAAM,qBAAqB,QAAQ;AAGzC,QAAM,aAAa,OAAO,WAAW,OAAO,WAAW;AACvD,QAAM,eAAe,wBAAwB,UAAU;AAEvD,SAAO;AAAA,IACL,UAAU,OAAO,OAAO,EAAE;AAAA,IAC1B,GAAG;AAAA,IACH;AAAA,IACA,oBAAoB,IAAI,MAAM,GAAG,EAAE,CAAC;AAAA,IACpC;AAAA,IACA,UAAU,OAAO,SAAS;AAAA,IAC1B,SAAS;AAAA,IACT;AAAA,IACA,UAAU,OAAO,UAAU,UAAU;AAAA,IACrC,MAAM;AAAA,IACN,kBAAkB;AAAA,MAChB,SAAS;AAAA,QACP,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,kBAAkB;AAAA,QAClB,cAAc,CAAC;AAAA,MACjB;AAAA,MACA,WAAW;AAAA,QACT,MAAM;AAAA,UACJ,OAAO,UAAU;AAAA,UACjB,YAAY;AAAA,QACd;AAAA,QACA,MAAM;AAAA,UACJ,OAAO,UAAU;AAAA,UACjB,YAAY,OAAO,QAAQ,YAAY;AAAA,QACzC;AAAA,MACF;AAAA,IACF;AAAA,IACA,gBAAgB;AAAA,MACd,SAAS;AAAA,QACP,OAAO,OAAO,UAAU,wBAAwB,OAAO,OAAO,IAAI;AAAA,QAClE,YAAY;AAAA,MACd;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAM,iBAAiB;AAgBvB,SAAS,0BAA0B,UAA0B;AAC3D,QAAM,QAAQ,SAAS,MAAM,GAAG,EAAE,OAAO,OAAO;AAChD,MAAI,MAAM,WAAW;AAAG,WAAO;AAE/B,MAAI,MAAM,CAAC,MAAM,UAAU,MAAM,SAAS,GAAG;AAC3C,WAAO,MAAM,CAAC,EAAE,YAAY;AAAA,EAC9B;AAEA,MAAI,MAAM,SAAS,KAAK,eAAe,KAAK,MAAM,CAAC,CAAC,GAAG;AACrD,WAAO,MAAM,CAAC,EAAE,YAAY;AAAA,EAC9B;AAEA,SAAO,MAAM,CAAC,EAAE,YAAY;AAC9B;AAEA,SAAS,2BAA2B,UAAiC;AACnE,QAAM,QAAQ,SAAS,MAAM,GAAG,EAAE,OAAO,OAAO;AAChD,MAAI,MAAM,CAAC,MAAM,UAAU,MAAM,SAAS;AAAG,WAAO,MAAM,CAAC;AAC3D,MAAI,MAAM,SAAS,KAAK,eAAe,KAAK,MAAM,CAAC,CAAC;AAAG,WAAO,MAAM,CAAC;AACrE,MAAI,MAAM,SAAS;AAAG,WAAO,MAAM,CAAC;AACpC,SAAO;AACT;AAcA,SAAS,qBAAqB,UAA0B;AACtD,QAAM,QAAQ,SAAS,MAAM,GAAG,EAAE,OAAO,OAAO;AAChD,MAAI,MAAM,WAAW;AAAG,WAAO;AAE/B,QAAM,WAAW,CAAC,MAAc,EAAE,QAAQ,WAAW,EAAE;AACvD,QAAM,OAAO,SAAS,MAAM,MAAM,SAAS,CAAC,CAAC;AAE7C,QAAM,UAAU,0BAA0B,QAAQ;AAIlD,QAAM,SACJ,MAAM,SAAS,KAAK,eAAe,KAAK,MAAM,CAAC,CAAC,IAC5C,MAAM,CAAC,EAAE,YAAY,IACrB;AAEN,MAAI,YAAY,eAAe,YAAY,UAAU;AACnD,WAAO,IAAI,MAAM,SAAS,OAAO,IAAI,IAAI;AAAA,EAC3C;AAEA,SAAO,IAAI,MAAM,IAAI,OAAO,IAAI,IAAI;AACtC;AAGA,SAAS,sBACP,MACoD;AACpD,QAAM,SAAiD;AAAA,IACrD,SAAS,CAAC;AAAA,IACV,UAAU,CAAC;AAAA,EACb;AAEA,OAAK,QAAQ,CAAC,QAAQ;AACpB,UAAM,UAAU,IAAI,WAAW;AAC/B,WAAO,QAAQ,OAAO,KAAK,OAAO,QAAQ,OAAO,KAAK,KAAK;AAE3D,UAAM,WAAW,IAAI,YAAY;AACjC,WAAO,SAAS,QAAQ,KAAK,OAAO,SAAS,QAAQ,KAAK,KAAK;AAAA,EACjE,CAAC;AAED,SAAO,EAAE,OAAO;AAClB;AAEA,SAAS,kBAA0B;AACjC,SAAO,UAAU,KAAK,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,OAAO,GAAG,CAAC,CAAC;AACxE;AAEe,SAAR,aAA8B,QAA6C;AAEhF,MAAI,aAAa,QAAQ;AACvB,QAAI,OAAO,YAAY,UAAU;AAC/B,oBAAc,OAAO;AACrB,yBAAmB,OAAO,MAAM;AAAA,IAClC,OAAO;AACL,0BAAoB,OAAO,OAAO;AAAA,IACpC;AAAA,EACF,OAAO;AAEL,wBAAoB,MAAuB;AAAA,EAC7C;AACF;;;AlBldQ,gBAAAC,OASF,QAAAC,cATE;AAfO,SAAR,cAA+B;AACpC,QAAM,EAAE,OAAO,IAAIC,YAAW,cAAc;AAC5C,QAAM,CAAC,UAAU,WAAW,IAAIC,UAAmC;AAAA,IACjE,aAAa;AAAA,EACf,CAAC;AACD,QAAMC,cAAaC,QAAoB;AACvC,kBAAgBD,aAAY,WAAW;AAEvC,QAAM,cAAc,CAAC,UAAmB;AACtC,gBAAY,EAAE,aAAa,MAAM,CAAC;AAAA,EACpC;AAEA,SACE,gBAAAH,OAAC,iBAAc,cAA4B,WAAW,aACnD;AAAA,iBAAa,wBACZ,gBAAAD,MAAC,aAAW,GAAG,aAAa,sBAAsB;AAAA,IAEnD,aAAa,qBACZ,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,gBAAgB;AAAA,QAChB,cAAc,CAAC,YAAY,MAAM,EAAE;AAAA;AAAA,IACrC;AAAA,IAED,CAAC,aAAa,qBAAqB,gBAAAA,MAAC,aAAU,gBAAgB,MAAM;AAAA,IACrE,gBAAAC,OAACK,OAAA,EAAI,SAAS,MAAM,YAAY,EAAE,aAAa,KAAK,CAAC,GAAG,KAAKF,aAC3D;AAAA,sBAAAJ,MAAC,sBAAU,aAA0B;AAAA,MACpC,SAAS,eAAe,gBAAAA,MAAC,uBAAQ,aAA0B;AAAA,OAC9D;AAAA,KACF;AAEJ;;;ALcgB,gBAAAO,OAaI,QAAAC,cAbJ;AA/BhB,IAAM,gBAAgB,CAAC,EAAE,eAAe,CAAC,EAAE,MAA0B;AACnE,QAAM,UAAUC,aAAW,cAAc;AACzC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAGJ,QAAM,aAAa,CAAC,UAAe,eAAuB;AACxD,QAAI,QAAQ;AAEZ,QAAI,MAAM,QAAQ,QAAQ,GAAG;AAC3B,cAAQ,SAAS,KAAK,CAAC,YAAY,QAAQ,kBAAkB,UAAU;AAAA,IACzE;AAEA,WAAO;AAAA,EACT;AAEA,iBAAe,EAAE,cAAc,QAAQ,CAAC;AAExC,SACE,gBAAAF,MAAC,OAAO,cAAP,EACC,0BAAAA,MAAC,qBAAkB,IAAIG,iBAAO,oBAC5B,0BAAAH,MAAC,kBAAkB,MAAlB,EAAuB,IAAIG,iBAAO,wBACjC,0BAAAF,OAACG,OAAA,EAAI,IAAID,iBAAO,eACd;AAAA,oBAAAF,OAACG,OAAA,EAAI,IAAID,iBAAO,eACd;AAAA,sBAAAH,MAACI,OAAA,EAAI,IAAID,iBAAO,0BACd,0BAAAH,MAAC,eAAY,GACf;AAAA,MACC,mBAAmB,IAAI,CAAC,SAAS,OAChC,gBAAAA;AAAA,QAACI;AAAA,QAAA;AAAA,UACC,IACE,KAAK,IACDD,iBAAO,mBACPA,iBAAO;AAAA,UAGb,WAAQ;AAAA,UAEP,kBAAQ,IAAI,CAAC,SACZ,gBAAAF,OAACG,OAAA,EAAI,IAAID,iBAAO,oBACd;AAAA,4BAAAH,MAAC,8BAAkB,eAAc,UAAU,GAAG,MAAM;AAAA,YACnD,WAAW,mBAAmB,KAAK,EAAE,IACpC,gBAAAA;AAAA,cAACK;AAAA,cAAA;AAAA,gBACC,cAAY;AAAA,gBACZ,MAAK;AAAA,gBACL,SAAQ;AAAA,gBACR,MAAM,MAAM,gBAAAL,MAACM,YAAA,EAAU,WAAU,SAAQ,MAAM,IAAI;AAAA,gBACnD,IACE,sBAAsB,KAAK,MAC3B,CAAC,uBACGH,iBAAO,kBACPA,iBAAO;AAAA,gBAEb,SAAS,MAAM;AACb,uCAAqB,KAAK,EAAE;AAC5B,0CAAwB,KAAK;AAAA,gBAC/B;AAAA;AAAA,YACF,IACE;AAAA,eAnBmC,KAAK,KAoB9C,CACD;AAAA;AAAA,QAzBI;AAAA,MA0BP,CACD;AAAA,OACH;AAAA,IACA,gBAAAH;AAAA,MAACI;AAAA,MAAA;AAAA,QACC,WACE,wBAAwB,CAAC,oBAAoB,KAAK;AAAA,QAEpD,IAAID,iBAAO;AAAA,QAEV,8BACC,gBAAAH;AAAA,UAAC;AAAA;AAAA,YACC,iBAAiB;AAAA,YAChB,GAAI,MAAM,QAAQ,iBAAiB,IAChC,mBAAmB;AAAA,cACjB,CAAC,YACC,QAAQ,kBAAkB;AAAA,YAC9B,IACA;AAAA;AAAA,QACN,IACE;AAAA;AAAA,IACN;AAAA,KACF,GACF,GACF,GACF;AAEJ;AAEA,IAAO,yBAAQ;;;AwBpHf,SAAS,QAAAO,QAAM,QAAAC,QAAM,QAAAC,aAAY;;;ACCjC,SAAS,QAAAC,cAAY;AAGnB,SAQE,OAAAC,OARF,QAAAC,cAAA;AADF,IAAM,WAAW,CAAC,UAChB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,oBAAQ;;;AC9Bf,SAAS,QAAAE,cAAY;AAGnB,SAQE,OAAAC,OARF,QAAAC,cAAA;AADF,IAAM,WAAW,CAAC,UAChB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,oBAAQ;;;AC9Bf,SAAS,QAAAE,cAAY;AAGnB,SAQE,OAAAC,OARF,QAAAC,cAAA;AADF,IAAM,mBAAmB,CAAC,UACxB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA,UACL,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,6BAAQ;;;AHxBf,SAAS,cAAAE,cAAY,aAAAC,aAAmB,YAAAC,kBAAgB;;;AIAxD,IAAMC,aAAqB,CAAC,EAAE,MAAM,IAAI,CAAC,OAAO;AAAA,EAC9C,OAAO;AAAA,EACP,eAAe,QAAQ,WAAW,CAAC,UAAU,KAAK;AAAA,EAClD,YAAY,QAAQ,eAAe;AAAA,EACnC,cAAc,CAAC,WAAW,eAAe;AAAA,EACzC,gBAAgB,CAAC,WAAW,eAAe;AAAA,EAC3C,WAAW,QAAQ,QAAQ;AAAA,EAC3B,cAAc,QAAQ,QAAQ;AAAA,EAC9B,KAAK,QAAQ,QAAQ;AACvB;AAEA,IAAM,WAAoB,CAAC,EAAE,MAAM,IAAI,CAAC,OAAO;AAAA,EAC7C,UAAU,QAAQ,SAAS;AAAA,EAC3B,YAAY;AAAA,EACZ,OAAO;AACT;AAEA,IAAM,iBAA0B,CAAC,EAAE,MAAM,IAAI,CAAC,OAAO;AAAA,EACnD,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,KAAK,QAAQ,QAAQ;AAAA,EACrB,IAAI,QAAQ,QAAQ;AACtB;AAEA,IAAM,gBAA6B;AAAA,EACjC,eAAe,CAAC,QAAQ,GAAG;AAAA,EAC3B,cAAc,CAAC,qBAAqB,MAAM;AAAA,EAC1C,IAAI,CAAC,OAAO,GAAG;AAAA,EACf,IAAI,CAAC,QAAQ,GAAG;AAAA,EAChB,OAAO,CAAC,QAAQ,MAAM;AAAA,EACtB,gBAAgB,CAAC,UAAU,SAAS;AAAA,EACpC,YAAY;AACd;AAEA,IAAM,WAAwB;AAAA,EAC5B,IAAI;AACN;AAEA,IAAM,cAA2B;AAAA,EAC/B,IAAI;AAAA,EACJ,WAAW;AACb;AAEA,IAAM,SAAsB;AAAA,EAC1B,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,cAAc;AAAA,MACZ,QAAQ;AAAA,IACV;AAAA,EACF;AACF;AAEA,IAAM,eAA4B;AAAA,EAChC,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,cAAc;AAAA,IACZ,QAAQ;AAAA,EACV;AACF;AAEA,IAAM,iBAA8B;AAAA,EAClC,OAAO;AACT;AAEA,IAAM,MAAe,CAAC,EAAE,MAAM,IAAI,CAAC,OAAO;AAAA,EACxC,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,UAAU,QAAQ,SAAS;AAAA,EAC3B,YAAY;AACd;AAEA,IAAM,WAAwB;AAAA,EAC5B,SAAS;AACX;AAEA,IAAM,gBAAyB,CAAC,EAAE,MAAM,IAAI,CAAC,OAAO;AAAA,EAClD,GAAG,IAAI,EAAE,MAAM,CAAC;AAAA,EAChB,GAAG;AAAA,EACH,UAAU;AAAA,IACR,OAAO;AAAA,EACT;AAAA;AAAA,EAEA,OAAO;AAAA,EACP,SAAS;AACX;AAEA,IAAM,WAAwB,EAAE,IAAI,MAAM;AAE1C,IAAM,cAA2B;AAAA;AAEjC;AAEA,IAAOC,mBAAQ;AAAA,EACb;AAAA,EACA,WAAAD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;AChHA,SAAS,OAAAE,OAAK,UAAAC,SAAQ,QAAAC,QAAM,QAAAC,cAAY;;;ACCxC,SAAS,QAAAC,cAAY;AASjB,gBAAAC,aAAA;AAPJ,IAAM,eAAe,CAAC,UACpB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN,0BAAAC;AAAA,MAAC;AAAA;AAAA,QACC,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA;AACF;AAGF,IAAO,wBAAQ;;;AChBf,SAAS,QAAAC,cAAY;AASjB,gBAAAC,aAAA;AAPJ,IAAM,eAAe,CAAC,UACpB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN,0BAAAC;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,UAAS;AAAA,QACT,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA;AACF;AAGF,IAAO,wBAAQ;;;AClBf,SAAS,QAAAC,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,YAAY,CAAC,UACjB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,UAAK,GAAE,mBAAkB,SAAQ,KAAI,QAAO,gBAAc;AAAA,MAC3D,gBAAAA,MAAC,UAAK,GAAE,2JAA0J,MAAK,gBAAc;AAAA;AAAA;AACvL;AAGF,IAAO,qBAAQ;;;ACdf,SAAS,QAAAE,cAAY;AASjB,gBAAAC,aAAA;AAPJ,IAAM,cAAc,CAAC,UACnB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN,0BAAAC;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,UAAS;AAAA,QACT,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA;AACF;AAGF,IAAO,uBAAQ;;;AJdf,SAAS,UAAAC,SAAQ,YAAAC,kBAAgB;AACjC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;;;AKTP,IAAMC,aAAyB;AAAA,EAC7B,UAAU;AAAA,EACV,QAAQ;AACV;AAEA,IAAMC,UAAsB;AAAA,EAC1B,QAAQ;AAAA,EACR,eAAe;AAAA,EACf,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,UAAU;AAAA,IACR,OAAO;AAAA,IACP,gBAAgB;AAAA,EAClB;AAAA,EACA,YAAY;AACd;AAEA,IAAM,YAAyB;AAAA,EAC7B,aAAa;AACf;AAEA,IAAM,cAA2B;AAAA,EAC/B,KAAK;AAAA,EACL,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,UAAU;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA,YAAY;AACd;AAEA,IAAM,iBAA8B;AAAA,EAClC,UAAU;AAAA,EACV,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,KAAK;AAAA,EACL,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,KAAK;AAAA,EACL,WAAW;AAAA,EACX,cAAc;AAAA,EAEd,WAAW;AAAA,IACT,SAAS;AAAA,IACT,UAAU;AAAA,IACV,KAAK;AAAA,IACL,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,cAAc;AAAA,IACd,WAAW;AAAA,EACb;AACF;AAEA,IAAM,UAAuB;AAAA,EAC3B,cAAc;AAChB;AAEA,IAAOC,mBAAQ;AAAA,EACb,WAAAF;AAAA,EACA,QAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ACxEA,SAAS,QAAAE,cAAY;AAWjB,gBAAAC,aAAA;AATJ,IAAM,YAAY,CAAC,UACjB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN,0BAAAC;AAAA,MAAC;AAAA;AAAA,QACC,GAAE;AAAA,QACF,MAAK;AAAA;AAAA,IACP;AAAA;AACF;AAGF,IAAO,qBAAQ;;;AClBf,SAAS,QAAAC,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,WAAW,CAAC,UAChB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,oBAAQ;;;APWT,SAKE,OAAAE,OALF,QAAAC,cAAA;AAfN,IAAM,cAAc,CAAC,EAAE,KAAK,KAAG,CAAC,EAAE,MAAa;AAC7C,QAAM,CAAC,QAAQ,SAAS,IAAIC,WAAS,KAAK;AAC1C,QAAM,eAAeC,QAAO;AAC5B,kBAAgB,cAAc,MAAM,UAAU,KAAK,CAAC;AAEpD,QAAM,iBAAiB,YAAY;AACjC,QAAI;AACF,UAAI;AAAQ,cAAM,UAAU,UAAU,UAAU,OAAO,SAAS,IAAI;AAAA,IACtE,SAAS,OAAO;AACd,cAAQ,MAAM,oCAAoC,KAAK;AAAA,IACzD;AAAA,EACF;AAEA,SACE,gBAAAF,OAACG,QAAA,EAAK,IAAI,EAAC,GAAGC,iBAAO,WAAW,GAAG,GAAE,GAAG,KAAK,cAC3C;AAAA,oBAAAJ;AAAA,MAACK;AAAA,MAAA;AAAA,QACC,IAAID,iBAAO;AAAA,QACX,SAAQ;AAAA,QACR,SAAS,MAAM,UAAU,CAAC,MAAM;AAAA,QAEhC;AAAA,0BAAAL,MAAC,sBAAU,IAAIK,iBAAO,WAAW,MAAM,IAAG;AAAA,UAAE;AAAA;AAAA;AAAA,IAC9C;AAAA,IACC,UACC,gBAAAJ,OAACG,QAAA,EAAK,IAAIC,iBAAO,gBACf;AAAA,sBAAAJ,OAACG,QAAA,EAAK,IAAIC,iBAAO,aAAa,SAAS,gBACrC;AAAA,wBAAAL,MAAC,qBAAS,MAAM,IAAI;AAAA,QACpB,gBAAAA,MAACO,QAAA,EAAK,uBAAS;AAAA,SACjB;AAAA,MACA,gBAAAP,MAACQ,OAAA,EAAI,IAAIH,iBAAO,SAAS;AAAA,MACzB,gBAAAL,MAAC,oBAAiB,KAChB,0BAAAC,OAACG,QAAA,EAAK,IAAIC,iBAAO,aAAa,SAAS,gBACrC;AAAA,wBAAAL,MAAC,sBAAU,MAAM,IAAI;AAAA,QACrB,gBAAAA,MAACO,QAAA,EAAK,oBAAM;AAAA,SACd,GACF;AAAA,MACA,gBAAAP,MAAC,sBAAmB,KAClB,0BAAAC,OAACG,QAAA,EAAK,IAAIC,iBAAO,aACf;AAAA,wBAAAL,MAAC,wBAAY,MAAM,IAAI;AAAA,QACvB,gBAAAA,MAACO,QAAA,EAAK,qBAAO;AAAA,SACf,GACF;AAAA,MACA,gBAAAP,MAAC,uBAAoB,KACnB,0BAAAC,OAACG,QAAA,EAAK,IAAIC,iBAAO,aACf;AAAA,wBAAAL,MAAC,yBAAa,MAAM,IAAI;AAAA,QACxB,gBAAAA,MAACO,QAAA,EAAK,sBAAQ;AAAA,SAChB,GACF;AAAA,MACA,gBAAAP,MAAC,uBAAoB,KACnB,0BAAAC,OAACG,QAAA,EAAK,IAAIC,iBAAO,aACf;AAAA,wBAAAL,MAAC,yBAAa,MAAM,IAAI;AAAA,QACxB,gBAAAA,MAACO,QAAA,EAAK,sBAAQ;AAAA,SAChB,GACF;AAAA,OACF;AAAA,KAEJ;AAEJ;AAEA,IAAO,uBAAQ;;;AL5BP,gBAAAE,OAQE,QAAAC,cARF;AA7BR,IAAM,kBAAkB,CAAC;AAAA,EACvB;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf,aAAAC,eAAc;AAAA,EACd;AAAA,EACA,QAAQ;AACV,MAAe;AACb,QAAM,CAAC,UAAU,WAAW,IAAIC,WAA8B,MAAS;AACvE,QAAM,EAAE,OAAO,IAAIC,aAAW,cAAc;AAG5C,EAAAC,YAAU,MAAM;AACd,gBAAY,MAAS;AAAA,EACvB,GAAG,CAAC,IAAI,CAAC;AAET,QAAM,aAAa,OAAO,UAAmB;AAC3C,QAAI,aAAa;AAAW;AAC5B,gBAAY,KAAK;AACjB,QAAI;AACF,YAAM,aAAa,KAAK;AAAA,IAC1B,SAAS,GAAG;AACV,kBAAY,MAAS;AAAA,IACvB;AAAA,EACF;AAEA,SACE,gBAAAJ,OAACK,QAAA,EAAK,IAAIC,iBAAO,UAAU,EAAE,MAAM,CAAC,GAAG,WAAQ,oBAC7C;AAAA,oBAAAN,OAACK,QAAA,EAAK,IAAIC,iBAAO,eACf;AAAA,sBAAAP,MAACQ,QAAA,EAAK,IAAID,iBAAO,SAAS,EAAE,MAAM,CAAC,GAChC,uBAAa,SACV,SAAS,MAAM,EAAE,2BAA2B,IAC5C,SAAS,MAAM,EAAE,2BAA2B,GAClD;AAAA,MAEA,gBAAAN,OAACK,QAAA,EAAK,IAAIC,iBAAO,eAAe,EAAE,MAAM,CAAC,GAEvC;AAAA,wBAAAN;AAAA,UAACK;AAAA,UAAA;AAAA,YACC,IACE,aAAa,SACTC,iBAAO,SACP,aAAa,OACbA,iBAAO,iBACPA,iBAAO;AAAA,YAEb,SAAS,MAAM,WAAW,IAAI;AAAA,YAC9B,MAAK;AAAA,YACL,gBAAc,aAAa;AAAA,YAC3B,WAAQ;AAAA,YAEP;AAAA,2BAAa,OACZ,gBAAAP,MAAC,8BAAiB,MAAM,QAAQ,KAAK,IAAI,IAAIO,iBAAO,UAAU,IAE9D,gBAAAP,MAAC,qBAAS,MAAM,QAAQ,KAAK,IAAI,IAAIO,iBAAO,UAAU;AAAA,cAEvD,CAAC,SACA,gBAAAP,MAACQ,QAAA,EAAM,mBAAS,MAAM,EAAE,2BAA2B,GAAE;AAAA;AAAA;AAAA,QAEzD;AAAA,QAGA,gBAAAP;AAAA,UAACK;AAAA,UAAA;AAAA,YACC,IACE,aAAa,SACTC,iBAAO,SACP,aAAa,QACbA,iBAAO,iBACPA,iBAAO;AAAA,YAEb,SAAS,MAAM,WAAW,KAAK;AAAA,YAC/B,MAAK;AAAA,YACL,gBAAc,aAAa;AAAA,YAC3B,WAAQ;AAAA,YAEP;AAAA,2BAAa,QACZ,gBAAAP;AAAA,gBAAC;AAAA;AAAA,kBACC,MAAM,QAAQ,KAAK;AAAA,kBACnB,IAAIO,iBAAO;AAAA;AAAA,cACb,IAEA,gBAAAP,MAAC,qBAAS,MAAM,QAAQ,KAAK,IAAI,IAAIO,iBAAO,aAAa;AAAA,cAE1D,CAAC,SACA,gBAAAP,MAACQ,QAAA,EAAM,mBAAS,MAAM,EAAE,2BAA2B,GAAE;AAAA;AAAA;AAAA,QAEzD;AAAA,SACF;AAAA,OACF;AAAA,IACC,gBACC,gBAAAP;AAAA,MAACQ;AAAA,MAAA;AAAA,QACC,QAAO;AAAA,QACP,KAAI;AAAA,QACJ,MAAM;AAAA,QACN,IAAIF,iBAAO,cAAc,EAAE,MAAM,CAAC;AAAA,QAElC;AAAA,0BAAAP,MAAC,qBAAS,MAAM,QAAQ,KAAK,IAAI,IAAIO,iBAAO,UAAU;AAAA,UACtD,gBAAAP,MAACQ,QAAA,EAAM,mBAAS,MAAM,EAAE,uBAAuB,GAAE;AAAA;AAAA;AAAA,IACnD;AAAA,IAEDN,gBACC,gBAAAF,MAAC,wBAAY,KAAK,OAAO,SAAS,MAAM,IAAIO,iBAAO,aAAa;AAAA,KAEpE;AAEJ;AAEA,IAAO,2BAAQ;;;AanIf,SAAS,OAAAG,OAAK,QAAAC,cAAY;;;ACA1B,SAAS,OAAAC,aAAW;;;ACApB,SAAS,OAAAC,OAAK,QAAAC,QAAM,QAAAC,cAAY;AAChC,SAAS,cAAAC,cAAY,aAAAC,mBAAiB;;;ACCtC,IAAM,mBAAgC;AAAA,EACpC,gBAAgB;AAAA,EAChB,SAAS;AAAA,EACT,IAAI;AAAA,EACJ,QAAQ;AAAA,EACR,mBAAmB;AAAA,IACjB,iBAAiB;AAAA,IACjB,cAAc;AAAA,IACd,yBAAyB;AAAA,MACvB,OAAO;AAAA,IACT;AAAA,IACA,yBAAyB;AAAA,MACvB,YAAY;AAAA,IACd;AAAA,EACF;AACF;AAEA,IAAM,sBAAmC;AAAA,EACvC,YAAY;AACd;AAEA,IAAM,cAA2B;AAAA,EAC/B,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,WAAW;AAAA,EACX,IAAI;AACN;AAEA,IAAM,eAA4B;AAAA,EAChC,UAAU;AAAA,EACV,YAAY;AACd;AAEA,IAAM,qBAAkC;AAAA,EACtC,GAAG;AAAA,EACH,OAAO;AAAA,EACP,YAAY;AACd;AAEA,IAAM,eAA4B;AAAA,EAChC,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,OAAO;AAAA,EACP,WAAW;AAAA,EACX,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,YAAY;AACd;AAEA,IAAM,iBAA8B;AAAA,EAClC,GAAG;AAAA,EACH,IAAI;AACN;AAEA,IAAM,uBAAoC;AAAA,EACxC,GAAG;AAAA,EACH,YAAY;AAAA,EACZ,OAAO;AACT;AAEA,IAAOC,mBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ADnEA,SAAS,aAAAC,kBAAiB;;;AEL1B;AAAA,EACE,iBAAAC;AAAA,EAIA,YAAAC;AAAA,OACK;AAoCH,gBAAAC,aAAA;AArBG,IAAM,gBAAgBF,eAAiC;AAAA,EAC5D,uBAAuB;AAAA,EACvB,6BAA6B,MAAM;AAAA,EACnC,gBAAgB,CAAC;AAAA,EACjB,sBAAsB,MAAM;AAC9B,CAAC;AAMD,IAAM,wBAAwB,CAAC,EAAE,SAAS,MAAa;AACrD,QAAM,CAAC,uBAAuB,2BAA2B,IACvDC,WAAqB,EAAE;AACzB,QAAM,CAAC,gBAAgB,oBAAoB,IAAIA,WAAwB,CAAC,CAAC;AAEzE,QAAM,uBAAuB,CAAC,gBAA+B;AAC3D,yBAAqB,WAAW;AAAA,EAClC;AAEA,SACE,gBAAAC;AAAA,IAAC,cAAc;AAAA,IAAd;AAAA,MACC,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MAEC;AAAA;AAAA,EACH;AAEJ;AAEA,IAAO,iBAAQ;;;AFzBX,SACE,OAAAC,OADF,QAAAC,cAAA;AAhBJ,IAAM,gBAAgB,CAAC,EAAE,aAAa,MAAM,MAA0B;AACpE,QAAM,SAASC,WAAU;AACzB,QAAM,EAAE,uBAAuB,gBAAgB,4BAA4B,IACzEC,aAAW,aAAa;AAC1B,QAAM,EAAE,OAAO,IAAIA,aAAW,cAAc;AAE5C,QAAM,eAAe,CAAC,UAAsB;AAC1C,WAAO,MAAM,SAAS;AACtB,gCAA4B,KAAK;AAAA,EACnC;AAEA,EAAAC,YAAU,MAAM;AACd,iBAAa,EAAE;AAAA,EACjB,GAAG,CAAC,OAAO,KAAK,CAAC;AAEjB,SAAO,CAAC,cACN,gBAAAH,OAACI,QAAA,EAAK,IAAIC,iBAAO,kBAAkB,SAAS,MAAM,aAAa,EAAE,GAC/D;AAAA,oBAAAN;AAAA,MAACO;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,IACE,wBACID,iBAAO,iBACPA,iBAAO;AAAA,QAGZ,mBAAS,MAAM,EAAE,oBAAoB,KAAK;AAAA;AAAA,IAC7C;AAAA,IACA,gBAAAN,MAACQ,OAAA,EAAI,WAAU,wBAAuB,IAAIF,iBAAO,cAC9C,yBAAe,EAAE,GACpB;AAAA,KACF,IAEA,gBAAAL;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,IAAIC,iBAAO;AAAA,MAEX,SAAS,MAAM,aAAa,YAAY,EAAE;AAAA,MAE1C;AAAA,wBAAAL,OAACI,QAAA,EAAK,IAAIC,iBAAO,qBACf;AAAA,0BAAAN,MAAC,YAAY,MAAZ,EAAiB,IAAIM,iBAAO,aAAa;AAAA,UAC1C,gBAAAN;AAAA,YAACO;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,IACE,0BAA0B,YAAY,KAClCD,iBAAO,qBACPA,iBAAO;AAAA,cAGZ,sBAAY;AAAA;AAAA,UACf;AAAA,WACF;AAAA,QACA,gBAAAN,MAACQ,OAAA,EAAI,WAAU,wBAAuB,IAAIF,iBAAO,cAC9C,yBAAe,YAAY,EAAE,KAAK,GACrC;AAAA;AAAA;AAAA,IAlBK,kBAAkB,YAAY,EAAE,GAAG,KAAK;AAAA,EAmB/C;AAEJ;AAEA,IAAO,yBAAQ;;;AGrEf,IAAMG,aAAyB;AAAA,EAC7B,SAAS,CAAC,QAAQ,QAAQ,QAAQ,SAAS;AAAA,EAC3C,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,IAAI,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,MAAM;AAAA,EAC3D,IAAI;AACN;AAEA,IAAM,eAA4B;AAAA,EAChC,IAAI;AAAA,EACJ,YAAY;AACd;AAEA,IAAM,cAA2B;AAAA,EAC/B,GAAG;AAAA,EACH,cAAc;AAChB;AAEA,IAAOC,mBAAQ;AAAA,EACb,WAAAD;AAAA,EACA;AAAA,EACA;AACF;;;AJtBA,SAAS,cAAAE,oBAAkB;AAanB,SAQe,OAAAC,OARf,QAAAC,cAAA;AAVR,IAAM,iBAAiB,MAAM;AAC3B,QAAM,EAAE,gBAAgB,IAAIC,aAAW,cAAc;AAErD,QAAM,uBAAuB,gBAAgB;AAAA,IAAI,CAAC,YAChD,QAAQ,OAAO,CAACC,UAAS,CAACA,MAAK,cAAc;AAAA,EAC/C;AAEA,SACE,gBAAAH,MAACI,OAAA,EAAI,IAAIC,iBAAO,WACb,+BAAqB,IAAI,CAAC,UAAU,OACnC,gBAAAJ;AAAA,IAACG;AAAA,IAAA;AAAA,MAEC,IACE,KAAK,qBAAqB,SAAS,IAC/BC,iBAAO,cACPA,iBAAO;AAAA,MAGZ;AAAA,eAAO,KAAK,gBAAAL,MAAC,0BAAc,aAAa,MAAM;AAAA,QAC9C,SAAS,IAAI,CAAC,SAAS,UACtB,gBAAAA;AAAA,UAAC;AAAA;AAAA,YAEC,aAAa;AAAA,YACb;AAAA;AAAA,UAFK,uBAAuB,QAAQ,EAAE;AAAA,QAGxC,CACD;AAAA;AAAA;AAAA,IAdI,kBAAkB,EAAE;AAAA,EAe3B,CACD,GACH;AAEJ;AAEA,IAAO,0BAAQ;;;AKvCf,SAAS,aAAAM,kBAAiB;AAC1B,SAAS,cAAAC,cAAY,YAAAC,kBAAgB;AAIrC,SAAS,OAAAC,OAAK,QAAAC,cAAY;AAE1B,SAAS,aAAAC,YAAW,iBAAAC,sBAAqB;;;ACPzC,SAAS,cAAAC,cAAY,aAAAC,aAAW,WAAAC,UAAS,UAAAC,gBAAc;AACvD;AAAA,EACE;AAAA,EACA,uBAAAC;AAAA,OACK;;;ACJP,SAAS,OAAAC,OAAK,QAAAC,QAAM,QAAAC,QAAM,aAAAC,YAAW,WAAAC,gBAAe;;;ACIpD,IAAMC,aAAyB;AAAA,EAC7B,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,aAAa,CAAC,QAAQ,MAAM;AAAA,EAC5B,cAAc,CAAC,QAAQ,MAAM;AAAA,EAC7B,YAAY;AAAA,EACZ,QAAQ;AACV;AAEA,IAAM,kBAAkB,CAAC,WAAgD;AACvE,QAAM,iBAAiB,SAAS,cAAc,MAAM,IAAI;AACxD,SAAO;AAAA,IACL,GAAGA;AAAA,IACH,UAAU;AAAA,MACR,YAAY;AAAA,MACZ,4CAA4C;AAAA,QAC1C,OAAO;AAAA,MACT;AAAA,MACA,oBAAoB;AAAA,QAClB,GAAG;AAAA,MACL;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAMC,SAAqB;AAAA,EACzB,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,UAAU,CAAC,QAAQ,MAAM;AAAA,EACzB,YAAY,CAAC,QAAQ,MAAM;AAAA,EAC3B,OAAO;AACT;AAEA,IAAM,aAA0B;AAAA,EAC9B,IAAI;AACN;AAEA,IAAMC,QAAoB;AAAA,EACxB,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,IAAI;AAAA,EACJ,MAAM;AAAA,IACJ,QAAQ;AAAA,EACV;AACF;AAEA,IAAMC,eAA2B;AAAA,EAC/B,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,IAAI;AACN;AAEA,IAAM,oBAAiC;AAAA,EACrC,QAAQ;AAAA,EACR,UAAU;AACZ;AAEA,IAAM,0BAAuC;AAAA,EAC3C,IAAI;AACN;AAEA,IAAM,uBAAoC;AAAA,EACxC,SAAS,CAAC,QAAQ,MAAM;AAAA,EACxB,aAAa;AAAA,EACb,YAAY;AACd;AAEA,IAAMC,eAA2B;AAAA,EAC/B,YAAY;AACd;AAEA,IAAM,gBAA6B;AAAA,EACjC,GAAGA;AAAA,EACH,UAAU;AACZ;AAEA,IAAM,aAA0B;AAAA,EAC9B,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,cAAc;AAChB;AAEA,IAAM,iBAA8B;AAAA,EAClC,GAAG;AAAA,EACH,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,UAAU;AAAA,EACV,UAAU;AAAA,EACV,YAAY;AACd;AAEA,IAAM,gBAA6B;AAAA,EACjC,GAAG;AAAA,EACH,IAAI;AAAA,EACJ,UAAU;AACZ;AAEA,IAAM,mBAAgC;AAAA,EACpC,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AACT;AAEA,IAAM,kBAA+B;AAAA,EACnC,aAAa;AAAA,EACb,YAAY;AACd;AAEA,IAAM,aAA0B;AAAA,EAC9B,UAAU;AAAA,EACV,WAAW;AAAA,EACX,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,IAAI;AACN;AAEA,IAAOC,mBAAQ;AAAA,EACb;AAAA,EACA,OAAAJ;AAAA,EACA;AAAA,EACA,MAAAC;AAAA,EACA,aAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ADjJA,OAAOE,WAAU;AAEjB,SAAS,YAAAC,kBAAgB;AACzB,SAAS,cAAAC,oBAAkB;;;AEL3B,SAAS,QAAAC,cAAY;AAQjB,SACE,OAAAC,OADF,QAAAC,cAAA;AAFJ,IAAM,sBAAsB,CAAC,EAAE,OAAO,MACpC,SACE,gBAAAA,OAACF,QAAA,EAAK,SAAQ,aAAY,MAAK,QAAO,OAAM,8BAC1C;AAAA,kBAAAC;AAAA,IAAC;AAAA;AAAA,MACC,GAAE;AAAA,MACF,MAAK;AAAA;AAAA,EACP;AAAA,EACA,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,GAAE;AAAA,MACF,MAAK;AAAA;AAAA,EACP;AAAA,GACF,IAEA,gBAAAC,OAACF,QAAA,EAAK,SAAQ,aAAY,MAAK,QAAO,OAAM,8BAC1C;AAAA,kBAAAC;AAAA,IAAC;AAAA;AAAA,MACC,GAAE;AAAA,MACF,MAAK;AAAA;AAAA,EACP;AAAA,EACA,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,GAAE;AAAA,MACF,MAAK;AAAA;AAAA,EACP;AAAA,EACA,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,GAAE;AAAA,MACF,MAAK;AAAA;AAAA,EACP;AAAA,GACF;AAGJ,IAAO,gCAAQ;;;AFOL,SACW,OAAAE,OADX,QAAAC,cAAA;AAhBV,IAAM,aAAa,CAAC;AAAA,EAClB,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAuB;AACrB,QAAM,cAAc,aAAa,UAAU,UAAU,IAAI;AACzD,QAAM,CAAC,oBAAoB,qBAAqB,IAAIC,WAAkB,KAAK;AAC3E,QAAM,EAAE,OAAO,IAAIC,aAAW,cAAc;AAC5C,SACE,gBAAAL,MAACM,OAAA,EAAK,MAAM,KAAK,gBAAc,MAC7B,0BAAAL,OAACM,QAAA,EAAK,IAAIC,iBAAO,gBAAgB,MAAM,GACrC;AAAA,oBAAAP,OAACQ,OAAA,EACC;AAAA,sBAAAR,OAACS,QAAA,EAAK,WAAU,mBAAkB,IAAIF,iBAAO,OAC1C;AAAA,QAAAN,UAAQ,gBAAAF,MAACE,QAAA,EAAK,IAAIM,iBAAO,MAAM;AAAA,QAC/B,SACC,gBAAAR;AAAA,UAAC;AAAA;AAAA,YACC,IAAIQ,iBAAO;AAAA,YACX,QAAO;AAAA,YACP;AAAA,YACA,QAAQ;AAAA;AAAA,QACV,IACE;AAAA,QACHL,WAAU,cAAc,GAAG,IAAI,WAAW;AAAA,QAC1CA;AAAA,SACH;AAAA,MACA,gBAAAF,OAACS,QAAA,EAAK,WAAU,yBAAwB,IAAIF,iBAAO,aACjD;AAAA,wBAAAR,MAACO,QAAA,EACC,0BAAAP;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA,WAAU;AAAA,YACT,GAAG,EAAE,YAAY,KAAK;AAAA;AAAA,QACzB,GACF;AAAA,QACC,sBACC,IAAI,iBAAiB,IAAI,CAAC,UAAU,UAClC,gBAAAA;AAAA,UAACS;AAAA,UAAA;AAAA,YACC,IAAID,iBAAO;AAAA,YAGX,0BAAAR;AAAA,cAAC;AAAA;AAAA,gBACC,KAAK;AAAA,gBACL,WAAU;AAAA,gBACT,GAAG,EAAE,YAAY,KAAK;AAAA;AAAA,YACzB;AAAA;AAAA,UANK,eAAe,IAAI,QAAQ,IAAI,KAAK;AAAA,QAO3C,CACD;AAAA,SACL;AAAA,MACC,cACC,gBAAAC,OAACQ,OAAA,EAAI,IAAID,iBAAO,sBACd;AAAA,wBAAAR,MAACU,QAAA,EAAK,IAAIF,iBAAO,eACd,mBAAS,MAAM,EAAE,gBAAgB,KAAK,MACzC;AAAA,QACC,YAAY,IAAI,CAACG,aAAY,UAC5B,gBAAAV;AAAA,UAACM;AAAA,UAAA;AAAA,YACC,IAAI,UAAU,IAAIC,iBAAO,gBAAgBA,iBAAO;AAAA,YAGhD;AAAA,8BAAAR,MAACY,UAAA,EAAQ,OAAOD,aAAY,WAAU,OACpC,0BAAAX,MAACU,QAAA,EAAK,IAAIF,iBAAO,YAAa,UAAAG,aAAW,GAC3C;AAAA,cACC,QAAQ,YAAY,SAAS,IAC5B,gBAAAX,MAACa,YAAA,EAAU,WAAU,SAAQ,IAAIL,iBAAO,kBAAkB,IACxD;AAAA;AAAA;AAAA,UAPC,GAAGG,WAAU,GAAG,KAAK;AAAA,QAQ5B,CACD;AAAA,SACH,IACE;AAAA,MACH,cACC,gBAAAV,OAACM,QAAA,EAAK,IAAIC,iBAAO,iBACf;AAAA,wBAAAR,MAAC,YAAY,MAAZ,EAAiB,IAAIQ,iBAAO,YAAY;AAAA,QAAG;AAAA,QAC5C,gBAAAR,MAACU,QAAA,EAAM,uBAAa,OAAM;AAAA,SAC5B,IACE;AAAA,OACN;AAAA,IACC,IAAI,mBAAmB,IAAI,gBAAgB,SAAS,KACnD,gBAAAV;AAAA,MAACS;AAAA,MAAA;AAAA,QACC,IAAID,iBAAO;AAAA,QACX,SAAS,CAAC,UAAiB;AACzB,gCAAsB,CAAC,kBAAkB;AACzC,gBAAM,gBAAgB;AAAA,QACxB;AAAA,QAEA,0BAAAR,MAAC,iCAAoB,QAAQ,oBAAoB;AAAA;AAAA,IACnD;AAAA,KAEJ,GACF;AAEJ;AAEA,IAAO,sBAAQ;;;ADxGf,SAAS,OAAAc,OAAK,QAAAC,cAAY;AAwBtB,gBAAAC,OA6FA,QAAAC,cA7FA;AAbJ,IAAM,UAAU,CAAC,EAAE,IAAI,MAAgB;AACrC,QAAM,EAAE,gBAAgB,IAAIC,aAAW,cAAc;AACrD,QAAM,kBAAkB,aAAa,iBAAiB,IAAI,OAAO;AAEjE,QAAM,cAAc;AAAA,IAClB;AAAA,IACA,GAAI,IAAI,cAAc,CAAC,IAAI,WAAW,IAAI,CAAC;AAAA,IAC3C;AAAA,IACA,IAAI;AAAA,EACN;AACA,QAAM,UAAU,mBAAmB,iBAAiB,IAAI,OAAO;AAE/D,SACE,gBAAAF;AAAA,IAAC;AAAA;AAAA,MACC,KAAK,IAAI;AAAA,MACT,MAAM;AAAA,MACN,OAAO,IAAI;AAAA,MACX,QAAS,IAAI,UAAyB;AAAA,MACtC,aAAc,eAA4B,CAAC;AAAA,MAC3C,YAAa,IAAI,cAA6B;AAAA,MAC9C,KAAK,eAAe,IAAI,GAAG;AAAA,MAC3B;AAAA;AAAA,EACF;AAEJ;AAEA,IAAM,eAAeG;AAAA,EACnB,CAAC,EAAE,cAAc,MAA4B;AAC3C,UAAM,EAAE,qBAAqB,IAAID,aAAW,aAAa;AAEzD,IAAAE,YAAU,MAAM;AACd,UAAI,CAAC;AAAe;AAGpB,YAAM,UAAU;AAChB,YAAM,uBACJ,OAAO,SAAS,OAAO,YAAY,YACnC,QAAQ,OAAO,QAAQ,SAAS,UAAU;AAE5C,YAAM,SAAS,SAAS;AAQxB,YAAM,eAAe,QAAQ,KAAK,CAAC,UAAU,MAAM,SAAS,SAAS;AACrE,YAAM,SAAS,SAAS,UAAU;AAElC,YAAM,kBAA0C,CAAC;AAEjD,UAAI,cAAc,MAAM;AACtB,eAAO,QAAQ,aAAa,IAAI,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAC1D,cAAI,OAAO,UAAU,UAAU;AAC7B,4BAAgB,GAAG,IAAI;AAAA,UACzB;AAAA,QACF,CAAC;AAAA,MACH;AAEA,sBAAgB,EAAE,IAAI;AAEtB,UAAI,CAAC,sBAAsB;AACzB,6BAAqB,eAAe;AAAA,MACtC;AAAA,IACF,GAAG,CAAC,eAAe,OAAO,CAAC;AAE3B,WAAO;AAAA,EACT;AACF;AAEA,IAAM,eAAe,CAAC,EAAE,MAAM,SAAS,WAAW,MAA4B;AAC5E,QAAM,YAAYC,SAAwB,IAAI;AAE9C,WAAS,uBAAuB,SAAsC;AACpE,YAAQ,QAAQ,CAAC,UAAqC;AACpD,UAAI,MAAM,kBAAkB,SAAS;AACnC,mBAAW;AAAA,MACb;AAAA,IACF,CAAC;AAAA,EACH;AAEA,QAAM,iBAAiBC,SAAQ,MAAM;AACnC,UAAM,YAA4B,CAAC;AACnC,SAAK,QAAQ,CAAC,QAAQ;AACpB,YAAM,gBAAgB,UAAU;AAAA,QAC9B,CAAC,MAAM,EAAE,uBAAuB,IAAI;AAAA,MACtC;AAEA,YAAM,cAAmB,EAAE,GAAG,KAAK,iBAAiB,CAAC,EAAE;AACvD,UAAI,iBAAiB,GAAG;AACtB,kBAAU,aAAa,EAAE,iBAAiB,KAAK,WAAW;AAAA,MAC5D;AAAO,kBAAU,KAAK,WAAW;AAAA,IACnC,CAAC;AACD,WAAO;AAAA,EACT,GAAG,CAAC,IAAI,CAAC;AAET,EAAAF,YAAU,MAAM;AACd,UAAM,WAAW,IAAI,qBAAqB,wBAAwB,CAAC,CAAC;AAEpE,QAAI,UAAU;AAAS,eAAS,QAAQ,UAAU,OAAO;AACzD,WAAO,MAAM;AACX,eAAS,WAAW;AAAA,IACtB;AAAA,EACF,GAAG,CAAC,IAAI,CAAC;AACT,SACE,gBAAAH,OAACM,OAAA,EACC;AAAA,oBAAAP,MAAC,gBAAa;AAAA,IACb,eAAe,IAAI,CAAC,KAAU,UAC7B,gBAAAA,MAACQ,QAAA,EACC,0BAAAR,MAAC,WAAQ,OAAe,KAAO,KADtB,IAAI,QAEf,CACD;AAAA,IACD,gBAAAA,MAAC,UAAK,KAAK,WAAW;AAAA,KACxB;AAEJ;AAGA,IAAO,uBAAQ,oBAAoB,YAAY;;;AIjJ/C,IAAM,kBAA+B;AAAA,EACnC,OAAO,CAAC,OAAO,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ;AAAA,EACpE,YAAY,CAAC,QAAQ,QAAQ,QAAQ,MAAM;AAAA,EAC3C,IAAI;AAAA,IACF,WAAW;AAAA,IACX,cAAc;AAAA,IACd,WAAW;AAAA,IACX,aAAa;AAAA,IACb,SAAS,CAAC,QAAQ,QAAQ,QAAQ,OAAO;AAAA,EAC3C;AACF;AAEA,IAAM,aAA0B;AAAA,EAC9B,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,SAAS,CAAC,QAAQ,QAAQ,QAAQ,SAAS;AAC7C;AAEA,IAAM,sBAAmC;AAAA,EACvC,IAAI,CAAC,QAAQ,OAAO;AAAA,EACpB,IAAI;AAAA,EACJ,gBAAgB;AAClB;AAEA,IAAM,iBAA8B;AAAA,EAClC,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,QAAQ;AACV;AAEA,IAAM,yBAAsC;AAAA,EAC1C,GAAG;AAAA,EACH,OAAO;AACT;AAEA,IAAM,mBAAgC;AAAA,EACpC,SAAS;AAAA,EACT,UAAU,CAAC,QAAQ,MAAM;AAAA,EACzB,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,IAAI,CAAC,QAAQ,MAAM;AACrB;AAEA,IAAM,yBAAsC;AAAA,EAC1C,YAAY;AAAA,EACZ,IAAI;AACN;AAEA,IAAMS,aAAyB;AAAA,EAC7B,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,SAAS;AACX;AAEA,IAAOC,mBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAAD;AACF;;;AL5BM,gBAAAE,OAeE,QAAAC,cAfF;AAxBN,IAAM,gBAAgB,MAAM;AAC1B,QAAM,SAASC,WAAU;AACzB,QAAM,EAAE,uBAAuB,eAAe,IAAIC,aAAW,aAAa;AAC1E,QAAM,EAAE,OAAO,IAAIA,aAAW,cAAc;AAC5C,QAAM,UAAU;AAAA,IACd,YAAY,MAAM;AAAA,IAClB,wBAAwB,YAAY,qBAAqB,MAAM;AAAA,EACjE,EACG,OAAO,OAAO,EACd,KAAK,OAAO;AACf,QAAM,CAAC,YAAY,aAAa,IAAIC,WAAS,EAAE;AAC/C,QAAM,CAAC,aAAa,cAAc,IAAIA,WAAS,CAAC,CAAC;AAEjD,QAAM,oBAAoB,CAAC,iBAA8B;AACvD,UAAM,OAAO,YAAY,aAAa,IAAI,aAAa,QAAQ;AAC/D,kBAAc,OAAO;AACrB,mBAAe;AAAA,MACb,GAAG;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH;AAEA,SACE,gBAAAH,OAACI,OAAA,EAAI,IAAIC,iBAAO,iBACd;AAAA,oBAAAN,MAACO,QAAA,EAAK,IAAID,iBAAO,YACd,aAAG,SAAS,MAAM,EAAE,wBAAwB,KAAK,SAAS,IACzD,eAAe,qBAAqB,MAAM,SACtC,KACA,eAAe,qBAAqB,CAC1C,IAAI,SAAS,MAAM,EAAE,4BAA4B,KAAK,aAAa,IACjE,OAAO,MAAM,OACf,IAAI,SAAS,MAAM,EAAE,mBAAmB,KAAK,IAAI,IAC/C,CAAC,wBACG,SAAS,MAAM,EAAE,8BAA8B,KAAK,gBACpD,qBACN,IACF;AAAA,IACA,gBAAAN,MAAC,QAAG;AAAA,IACJ,gBAAAA,MAACK,OAAA,EACC,0BAAAJ;AAAA,MAACO;AAAA,MAAA;AAAA,QACC;AAAA,QACA,WAAW;AAAA,QACX;AAAA,QACA,qBAAqB,CAAC,iBACpB,kBAAkB,YAAY;AAAA,QAGhC;AAAA,0BAAAR;AAAA,YAACS;AAAA,YAAA;AAAA,cACC;AAAA,cACA,OAAO,OAAO,MAAM;AAAA,cACpB,gBAAgB;AAAA,cAChB;AAAA,cACA,QAAQ,CAAC,WAAW,UAAU;AAAA,cAC9B,uBAAuB;AAAA;AAAA,UACzB;AAAA,UACA,gBAAAT,MAAC,wBAAa;AAAA;AAAA;AAAA,IAChB,GACF;AAAA,KACF;AAEJ;AAEA,IAAO,yBAAQ;;;AM7Ef,SAAS,cAAAU,oBAAkB;AAC3B,SAAS,QAAAC,QAAM,QAAAC,cAAY;;;ACC3B,IAAMC,aAAyB;AAAA,EAC7B,SAAS,CAAC,QAAQ,QAAQ,QAAQ,MAAM;AAAA,EACxC,WAAW;AAAA,EACX,gBAAgB;AAAA,EAChB,uBAAuB;AAAA,IACrB,SAAS;AAAA,EACX;AACF;AAEA,IAAM,MAAwC,CAAC,YAAY;AAAA,EACzD,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,QAAQ;AAAA,EACR,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,cAAc,GAAG,SAAS,IAAI,CAAC,aAAa,SAAS,WAAW,QAAQ;AAAA,EACxE,UAAU;AACZ;AAEA,IAAM,WAA6C,CAAC,YAAY;AAAA,EAC9D,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,OAAO,IAAI,SAAS,WAAW,QAAQ;AACzC;AAEA,IAAM,WAAwB;AAAA,EAC5B,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,iBAAiB;AACnB;AAEA,IAAOC,mBAAQ,EAAE,WAAAD,YAAW,KAAK,UAAU,SAAS;;;AD1BhD,SAIE,OAAAE,OAJF,QAAAC,cAAA;AANJ,IAAM,kBAAkB,CAAC,EAAE,OAAO,MAA0B;AAC1D,QAAM,EAAE,uBAAuB,6BAA6B,eAAe,IACzEC,aAAW,aAAa;AAC1B,QAAM,EAAE,OAAO,IAAIA,aAAW,cAAc;AAE5C,SACE,gBAAAD;AAAA,IAACE;AAAA,IAAA;AAAA,MACC,IAAIC,iBAAO,IAAI,0BAA0B,MAAM;AAAA,MAC/C,SAAS,MAAM,4BAA4B,MAAM;AAAA,MAEjD;AAAA,wBAAAJ,MAACK,QAAA,EAAK,IAAID,iBAAO,SAAS,0BAA0B,MAAM,GACvD,oBAAU,SAAS,MAAM,EAAE,oBAAoB,KAAK,eACvD;AAAA,QACA,gBAAAJ,MAACK,QAAA,EAAK,IAAID,iBAAO,UAAW,yBAAe,MAAM,KAAK,GAAE;AAAA;AAAA;AAAA,EAC1D;AAEJ;AAEA,IAAM,qBAAqB,MAAM;AAC/B,QAAM,EAAE,gBAAgB,IAAIF,aAAW,cAAc;AACrD,SACE,gBAAAD,OAACE,QAAA,EAAK,IAAIC,iBAAO,WACf;AAAA,oBAAAJ,MAAC,mBAAgB,QAAO,IAAG;AAAA,IAC1B,gBAAgB,KAAK,EAAE,IAAI,CAAC,YAAY;AACvC,aAAO,gBAAAA,MAAC,mBAAiC,QAAQ,QAAQ,MAA5B,QAAQ,EAAwB;AAAA,IAC/D,CAAC;AAAA,KACH;AAEJ;AAEA,IAAO,gCAAQ;;;AEpCf,IAAM,qBAAkC;AAAA,EACtC,SAAS,CAAC,QAAQ,QAAQ,QAAQ,MAAM;AAAA,EACxC,gBAAgB;AAAA,EAChB,IAAI;AACN;AAEA,IAAM,OAAoB;AAAA,EACxB,YAAY;AAAA,EACZ,gBAAgB;AAClB;AAEA,IAAOM,mBAAQ;AAAA,EACb;AAAA,EACA;AACF;;;AdLM,SAEI,OAAAC,OAFJ,QAAAC,cAAA;AAHN,IAAM,SAAS,MAAM;AACnB,SACE,gBAAAA,OAAC,kBACC;AAAA,oBAAAA,OAACC,OAAA,EACC;AAAA,sBAAAF,MAACG,QAAA,EAAK,IAAIC,iBAAO,oBACf,0BAAAJ,MAAC,eAAY,GACf;AAAA,MACA,gBAAAA,MAAC,iCAAmB;AAAA,OACtB;AAAA,IACA,gBAAAC,OAACE,QAAA,EAAK,IAAIC,iBAAO,MACf;AAAA,sBAAAJ,MAAC,2BAAe;AAAA,MAChB,gBAAAA,MAAC,0BAAc;AAAA,OACjB;AAAA,KACF;AAEJ;AAEA,IAAOK,kBAAQ;;;AezBf,SAAoB,cAAAC,oBAAkB;AACtC,SAAS,qBAAqB;;;ACC9B,IAAM,MAAmB;AAAA,EACvB,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,OAAO;AAAA,EACP,SAAS;AAAA,EACT,OAAO;AAAA,EACP,MAAM;AAAA,EACN,WAAW;AAAA,EACX,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,WAAW;AACb;AAEA,IAAM,aAA0B;AAAA,EAC9B,SAAS;AAAA,EACT,MAAM;AAAA,EACN,eAAe;AAAA,EACf,UAAU;AACZ;AAEA,IAAMC,SAAqB;AAAA,EACzB,OAAO;AAAA,EACP,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,YAAY;AACd;AAEA,IAAM,kBAA+B;AAAA,EACnC,SAAS;AAAA,EACT,UAAU;AAAA,EACV,KAAK;AAAA,EACL,gBAAgB;AAAA,EAChB,QAAQ;AACV;AAEA,IAAM,eAA4B;AAAA,EAChC,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,SAAS;AAAA,EACT,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,YAAY;AAAA,EAEZ,UAAU;AAAA,IACR,SAAS;AAAA,EACX;AACF;AAEA,IAAM,gBAA6B;AAAA,EACjC,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,QAAQ;AAAA,EAER,UAAU;AAAA,IACR,SAAS;AAAA,EACX;AACF;AAEA,IAAOC,mBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA,OAAAD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ADvEA,SAAS,QAAAE,QAAmB,QAAAC,cAAY;AAGxC,OAAOC,SAAQ;AAaX,gBAAAC,OAUA,QAAAC,cAVA;AAFJ,IAAMC,UAAS,CAAC,EAAE,UAAU,OAAO,GAAG,MAAM,MAAmB;AAC7D,SACE,gBAAAF,MAACG,QAAA,EAAK,IAAI,OAAQ,GAAG,OAClB,UACH;AAEJ;AAEA,IAAM,YAAY,CAAC,EAAE,SAAS,MAAa;AACzC,QAAM,EAAE,OAAO,IAAIC,aAAW,cAAc;AAE5C,SACE,gBAAAH;AAAA,IAAC;AAAA;AAAA,MACC,qBAAmB;AAAA,MACnB,aAAaI,iBAAO;AAAA,MACpB,oBAAoBA,iBAAO;AAAA,MAC3B,OAAOA,iBAAO;AAAA,MACd,UAAU,MAAM;AACd,QAAAN,IAAG,QAAQ;AAAA,UACT,SAAS;AAAA,UACT,WAAW;AAAA,QACb,CAAC;AACD,iBAAS;AAAA,MACX;AAAA,MACA,mBAAmB,SAAS,MAAM,EAAE,oBAAoB;AAAA,MACxD,YAAY,SAAS,MAAM,EAAE,mBAAmB;AAAA,MAChD,iBAAiBG;AAAA,MACjB,+BAA+B,EAAE,OAAOG,iBAAO,gBAAgB;AAAA,MAC/D,yBAAyB,EAAE,OAAOA,iBAAO,WAAW;AAAA,MAEpD;AAAA,wBAAAL,MAACM,QAAA,EAAK,IAAID,iBAAO,OAAQ,mBAAS,MAAM,EAAE,kBAAkB,GAAE;AAAA,QAC9D,gBAAAL,MAACM,QAAA,EAAM,mBAAS,MAAM,EAAE,wBAAwB,GAAE;AAAA;AAAA;AAAA,EACpD;AAEJ;AAEA,IAAO,qBAAQ;;;AErDf,SAAS,UAAAC,eAAc;;;ACCvB,SAAS,QAAAC,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,WAAW,CAAC,UAChB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,oBAAQ;;;ADxBf,SAAS,YAAAE,kBAAgB;;;AEDzB,IAAM,WAAwB;AAAA,EAC5B,aAAa;AACf;AAEA,IAAM,iBAA8B;AAAA,EAClC,eAAe;AAAA,EACf,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,iBAAiB;AAAA,EACjB,UAAU;AAAA,IACR,iBAAiB;AAAA,EACnB;AACF;AAEA,IAAOC,mBAAQ;AAAA,EACb;AAAA,EACA;AACF;;;AFHQ,gBAAAC,aAAA;AAfR,IAAM,iBAAiB,MAAM;AAC3B,QAAM,CAAC,aAAa,cAAc,IAAIC,WAAS,MAAM;AAErD,QAAM,aAAa,MAAM;AACvB,cAAU,UAAU,UAAU,OAAO,SAAS,IAAI;AAClD,mBAAe,MAAM;AAErB,eAAW,MAAM;AACf,qBAAe,SAAS;AAAA,IAC1B,GAAG,GAAI;AAAA,EACT;AAEA,SACE,gBAAAD,MAAC,mBAAQ,OAAO,aAAa,WAAU,UACrC,0BAAAA,MAACE,SAAA,EAAO,SAAS,YAAY,IAAIC,iBAAO,gBACtC,0BAAAH,MAAC,qBAAS,IAAIG,iBAAO,UAAU,MAAM,IAAI,GAC3C,GACF;AAEJ;AAEA,IAAO,2BAAQ;;;AG3Bf,SAAS,YAAAC,YAAU,aAAAC,mBAAiB;;;ACEpC,IAAM,QAAqB;AAAA,EACzB,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,UAAU,CAAC,MAAM;AAAA,EACjB,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,SAAS;AACX;AAEA,IAAMC,QAAoB;AAAA,EACxB,UAAU;AAAA,EACV,WAAW;AAAA,EACX,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,UAAU;AACZ;AAEA,IAAMC,cAAyB;AAAA,EAC7B,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,QAAQ;AAAA,EAER,UAAU;AAAA,IACR,YAAY;AAAA,IACZ,QAAQ;AAAA,EACV;AACF;AAEA,IAAOC,mBAAQ,EAAE,WAAAD,aAAW,OAAO,MAAAD,MAAK;;;ADrCxC,SAAS,QAAAG,cAAY;AAkBjB,SACW,OAAAC,OADX,QAAAC,cAAA;AARJ,IAAM,QAAQ,CAAC,EAAE,OAAO,UAAU,cAAc,IAAI,MAAAC,OAAK,MAAkB;AACzE,QAAM,CAAC,YAAY,aAAa,IAAIC,WAAS,SAAS,EAAE;AAExD,EAAAC,YAAU,MAAM;AACd,QAAI,eAAe;AAAO,oBAAc,KAAK;AAAA,EAC/C,GAAG,CAAC,KAAK,CAAC;AAEV,SACE,gBAAAH,OAACF,QAAA,EAAK,IAAIM,iBAAO,WACd;AAAA,IAAAH,UAAQ,gBAAAF,MAACE,QAAA,EAAK,IAAIG,iBAAO,MAAM;AAAA,IAChC,gBAAAL;AAAA,MAAC;AAAA;AAAA,QACC,OAAOK,iBAAO;AAAA,QACd,OAAO;AAAA,QACP;AAAA,QACA,UAAU,CAAC,MAAM;AACf,wBAAc,EAAE,cAAc,KAAK;AACnC,mBAAS,EAAE,cAAc,KAAK;AAAA,QAChC;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;AAEA,IAAO,gBAAQ;;;AEnCR,IAAM,iBAAiB,CAAC,SAAe;AAC5C,QAAM,UAAU,MAAO,KAAK,KAAK;AACjC,QAAM,aAAY,oBAAI,KAAK,GAAE,QAAQ,IAAI,KAAK,QAAQ;AACtD,SAAO,KAAK,MAAM,YAAY,OAAO;AACvC;;;ACJA,SAAS,QAAAC,cAAY;AAKjB,SAME,OAAAC,OANF,QAAAC,cAAA;AAFJ,IAAM,0BAA0B,CAAC,UAAqB;AACpD,SACE,gBAAAA;AAAA,IAACF;AAAA,IAAA;AAAA,MACE,GAAG;AAAA,MACJ,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,OAAM;AAAA,MAEN;AAAA,wBAAAC;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,gBAAe;AAAA;AAAA,QACjB;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA;AAAA,QAChB;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA;AAAA,QAChB;AAAA;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,oCAAQ;;;ACrDf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,2BAA2B,CAAC,UAChC,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,qCAAQ;;;AC1Cf,SAAS,QAAAE,cAAY;AAGnB,SAOE,OAAAC,OAPF,QAAAC,cAAA;AADF,IAAM,iBAAiB,CAAC,UACtB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEL;AAAA;AAAA,MACD,gBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,0BAAQ;;;AC3Cf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,sBAAsB,CAAC,UAC3B,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,GAAE;AAAA,UACF,OAAM;AAAA,UACN,QAAO;AAAA,UACP,IAAG;AAAA,UACH,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACd;AAAA,MACA,gBAAAA,MAAC,UAAK,GAAE,aAAY,QAAO,WAAU,aAAY,OAAM;AAAA,MACvD,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,gCAAQ;;;AC3Cf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,UAAU,CAAC,UACf,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA;AAAA,MAChB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,mBAAQ;;;AC/Bf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,iBAAiB,CAAC,UACtB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,UAAK,OAAM,SAAQ,QAAO,SAAQ,MAAK,QAAO;AAAA,MAC/C,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,IAAG;AAAA,UACH,IAAG;AAAA,UACH,IAAG;AAAA,UACH,IAAG;AAAA,UACH,MAAK;AAAA,UACL,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAY;AAAA;AAAA,MACb;AAAA,MACD,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,IAAG;AAAA,UACH,IAAG;AAAA,UACH,IAAG;AAAA,UACH,IAAG;AAAA,UACH,MAAK;AAAA,UACL,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAY;AAAA;AAAA,MACb;AAAA,MACD,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,GAAE;AAAA,UACF,OAAM;AAAA,UACN,QAAO;AAAA,UACP,IAAG;AAAA,UACH,aAAY;AAAA,UACZ,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,MAAK;AAAA;AAAA,MACN;AAAA;AAAA;AACH;AAGF,IAAO,4BAAQ;;;AC/Cf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,gBAAgB,CAAC,UACrB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACd;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACd;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACd;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACd;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,yBAAQ;;;ACvCf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,YAAY,CAAC,UACjB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACd;AAAA;AAAA;AACF;AAGF,IAAO,qBAAQ;;;ACxBf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,cAAc,CAAC,UACnB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,uBAAQ;;;ACjCf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,YAAY,CAAC,UACjB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,qBAAQ;;;AC/Cf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,gBAAgB,CAAC,UACrB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,0BAAQ;;;AC1Bf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,gBAAgB,CAAC,UACrB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,yBAAQ;;;ACtDf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,mBAAmB,CAAC,UACxB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,UAAK,OAAM,SAAQ,QAAO,SAAQ,MAAK,QAAO;AAAA,MAC/C,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA,UACL,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAY;AAAA;AAAA,MACb;AAAA,MACD,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA,UACL,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAY;AAAA;AAAA,MACb;AAAA;AAAA;AACH;AAGF,IAAO,4BAAQ;;;AC7Bf,SAAS,QAAAE,cAAY;AAGnB,SAOI,OAAAC,OAPJ,QAAAC,cAAA;AADF,IAAM,oBAAoB,CAAC,UACzB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,OAAE,UAAS,2BACV,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP,GACF;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA,MAAC,UACC,0BAAAA,MAAC,cAAS,IAAG,qBACX,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,QAAO;AAAA,UACP,MAAK;AAAA,UACL,WAAU;AAAA;AAAA,MACZ,GACF,GACF;AAAA;AAAA;AACF;AAGF,IAAO,8BAAQ;;;ACpCf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,qBAAqB,CAAC,UAC1B,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA,MAAC,UAAK,GAAE,yCAAwC,MAAK,WAAU;AAAA,MAC/D,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA;AAAA;AACF;AAGF,IAAO,+BAAQ;;;ACrBf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,WAAW,CAAC,UAChB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA;AAAA;AACF;AAGF,IAAO,oBAAQ;;;ACxBf,SAAS,QAAAE,cAAY;AASjB,gBAAAC,OACA,QAAAC,cADA;AAPJ,IAAM,UAAU,CAAC,UACf,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,YAAO,IAAG,WAAU,IAAG,KAAI,GAAE,KAAI,MAAK,WAAU;AAAA,MACjD,gBAAAC,OAAC,OAAE,UAAS,yBACV;AAAA,wBAAAD;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,QACA,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,eAAc;AAAA,YACd,gBAAe;AAAA;AAAA,QACjB;AAAA,SACF;AAAA,MACA,gBAAAA,MAAC,UACC,0BAAAA,MAAC,cAAS,IAAG,mBACX,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,QAAO;AAAA,UACP,MAAK;AAAA,UACL,WAAU;AAAA;AAAA,MACZ,GACF,GACF;AAAA;AAAA;AACF;AAGF,IAAO,mBAAQ;;;ACrCf,SAAS,QAAAE,cAAY;AASjB,gBAAAC,aAAA;AAPJ,IAAM,aAAa,CAAC,UAClB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN,0BAAAC;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,UAAS;AAAA,QACT,GAAE;AAAA,QACF,QAAO;AAAA,QACP,aAAY;AAAA,QACZ,eAAc;AAAA,QACd,gBAAe;AAAA;AAAA,IACjB;AAAA;AACF;AAGF,IAAO,sBAAQ;;;ACrBf,SAAS,QAAAC,cAAY;AAGnB,SAOE,OAAAC,OAPF,QAAAC,cAAA;AADF,IAAM,gBAAgB,CAAC,UACrB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEL;AAAA;AAAA,MACD,gBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,yBAAQ;;;AC/Bf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,qBAAqB,CAAC,UAC1B,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA;AAAA,MACT;AAAA,MACA,gBAAAA,MAAC,OAAE,UAAS,yBACV,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP,GACF;AAAA,MACA,gBAAAA,MAAC,UACC,0BAAAA,MAAC,cAAS,IAAG,mBACX,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,QAAO;AAAA,UACP,MAAK;AAAA,UACL,WAAU;AAAA;AAAA,MACZ,GACF,GACF;AAAA;AAAA;AACF;AAGF,IAAO,+BAAQ;;;AChCf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,qBAAqB,CAAC,UAC1B,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA;AAAA,MACT;AAAA,MACA,gBAAAA,MAAC,OAAE,UAAS,yBACV,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP,GACF;AAAA,MACA,gBAAAA,MAAC,UACC,0BAAAA,MAAC,cAAS,IAAG,mBACX,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,QAAO;AAAA,UACP,MAAK;AAAA,UACL,WAAU;AAAA;AAAA,MACZ,GACF,GACF;AAAA;AAAA;AACF;AAGF,IAAO,+BAAQ;;;AChCf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,oBAAoB,CAAC,UACzB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA;AAAA,MACT;AAAA;AAAA;AACF;AAGF,IAAO,8BAAQ;;;ACpBf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,cAAc,CAAC,UACnB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA;AAAA,MACT;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA;AAAA,MACT;AAAA,MACA,gBAAAA,MAAC,OAAE,UAAS,yBACV,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP,GACF;AAAA,MACA,gBAAAA,MAAC,UACC,0BAAAA,MAAC,cAAS,IAAG,mBACX,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,QAAO;AAAA,UACP,MAAK;AAAA,UACL,WAAU;AAAA;AAAA,MACZ,GACF,GACF;AAAA;AAAA;AACF;AAGF,IAAO,uBAAQ;;;ACpCf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,SAAS,CAAC,UACd,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA;AAAA,MACT;AAAA,MACA,gBAAAA,MAAC,OAAE,UAAS,yBACV,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP,GACF;AAAA,MACA,gBAAAA,MAAC,UACC,0BAAAA,MAAC,cAAS,IAAG,mBACX,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAM;AAAA,UACN,QAAO;AAAA,UACP,MAAK;AAAA,UACL,WAAU;AAAA;AAAA,MACZ,GACF,GACF;AAAA;AAAA;AACF;AAGF,IAAO,yBAAQ;;;AChCf,SAAS,QAAAE,cAAY;AAYjB,gBAAAC,aAAA;AAVJ,IAAM,cAAc,CAAC,UACnB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,MAAK;AAAA,IACL,aAAU;AAAA,IACV,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,OAAM;AAAA,IAEN,0BAAAC,MAAC,UAAK,GAAE,q+CAAo+C;AAAA;AAC9+C;AAGF,IAAO,uBAAQ;;;AChBf,SAAS,QAAAC,cAAY;AAGnB,SASE,OAAAC,OATF,QAAAC,cAAA;AADF,IAAM,aAAa,CAAC,UAClB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,MAAK;AAAA,IACL,aAAU;AAAA,IACV,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,OAAM;AAAA,IAEN;AAAA,sBAAAC,MAAC,WAAM,oBAAM;AAAA,MACb,gBAAAA,MAAC,UAAK,GAAE,+9CAA89C;AAAA;AAAA;AACx+C;AAGF,IAAO,sBAAQ;;;ACjBf,SAAS,QAAAE,cAAY;AAYjB,gBAAAC,aAAA;AAVJ,IAAM,aAAa,CAAC,UAClB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,MAAK;AAAA,IACL,aAAU;AAAA,IACV,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,OAAM;AAAA,IAEN,0BAAAC,MAAC,UAAK,GAAE,qcAAoc;AAAA;AAC9c;AAGF,IAAO,sBAAQ;;;AChBf,SAAS,QAAAC,cAAY;AAYjB,gBAAAC,aAAA;AAVJ,IAAM,cAAc,CAAC,UACnB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,MAAK;AAAA,IACL,aAAU;AAAA,IACV,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,OAAM;AAAA,IAEN,0BAAAC,MAAC,UAAK,GAAE,0iBAAyiB;AAAA;AACnjB;AAGF,IAAO,uBAAQ;;;AChBf,SAAS,QAAAC,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,WAAW,CAAC,UAChB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA;AAAA;AACF;AAGF,IAAO,oBAAQ;;;AClEf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,eAAe,CAAC,UACpB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,wBAAQ;;;AC/Cf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,OANF,QAAAC,cAAA;AADF,IAAM,aAAa,CAAC,UAClB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,sBAAQ;;;AClEf,SAAS,QAAAE,cAAY;AAGnB,SAQE,OAAAC,OARF,QAAAC,cAAA;AADF,IAAM,WAAW,CAAC,UAChB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,oBAAQ;;;ACjEf,SAAS,QAAAE,cAAY;AAcf,qBAAAC,WACE,OAAAC,OADF,QAAAC,cAAA;AARN,IAAM,eAAe,CAAC,UACpB,gBAAAD;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEL,WAAC,MAAM,UACN,gBAAAG,OAAAF,WAAA,EACE;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,GAAE;AAAA,UACF,OAAM;AAAA,UACN,QAAO;AAAA,UACP,IAAG;AAAA,UACH,MAAK;AAAA,UACL,aAAY;AAAA;AAAA,MACd;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,GAAE;AAAA,UACF,OAAM;AAAA,UACN,QAAO;AAAA,UACP,IAAG;AAAA,UACH,QAAO;AAAA;AAAA,MACT;AAAA,OACF,IAEA,gBAAAC,OAAAF,WAAA,EACE;AAAA,sBAAAC,MAAC,UAAK,OAAM,MAAK,QAAO,MAAK,IAAG,KAAI,MAAK,WAAU;AAAA,MACnD,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAS;AAAA,UACT,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,OACF;AAAA;AAEJ;AAGF,IAAO,mBAAQ;;;AC/Cf,SAAS,QAAAE,cAAY;AASjB,gBAAAC,aAAA;AAPJ,IAAM,aAAa,CAAC,UAClB,gBAAAA;AAAA,EAACD;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN,0BAAAC;AAAA,MAAC;AAAA;AAAA,QACC,UAAS;AAAA,QACT,GAAE;AAAA;AAAA,IACJ;AAAA;AACF;AAGF,IAAO,sBAAQ;;;AChBf,SAAS,QAAAC,cAAY;AAGnB,SAOE,OAAAC,OAPF,QAAAC,cAAA;AADF,IAAM,iBAAiB,CAAC,UACtB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEL;AAAA;AAAA,MACD,gBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,2BAAQ;;;AC3Bf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,QANF,QAAAC,cAAA;AADF,IAAM,gBAAgB,CAAC,UACrB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA;AAAA,MACjB;AAAA;AAAA;AACF;AAGF,IAAO,0BAAQ;;;AC1Bf,SAAS,QAAAE,cAAY;AAGnB,SAME,OAAAC,QANF,QAAAC,cAAA;AADF,IAAM,iBAAiB,CAAC,UACtB,gBAAAA;AAAA,EAACF;AAAA,EAAA;AAAA,IACE,GAAG;AAAA,IACJ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN;AAAA,sBAAAC;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA,MACA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA;AAAA;AACF;AAGF,IAAO,2BAAQ;","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","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","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","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","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","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","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","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","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","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","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/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/trashcan-icon.tsx","../src/components/icons/filter-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'\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 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\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\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 // 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`)\r\n .replace(/`([^`]+)`/g, '$1')\r\n // Remove code blocks (```text```)\r\n .replace(/```[\\s\\S]*?```/g, '')\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 // 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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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}\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}\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}","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}\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}\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 whiteSpace: 'pre',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\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\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\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\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\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 // 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 ): 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 or doctype\r\n // filtering, so we always fetch a large slice once per (query, locale)\r\n // pair and paginate / doctype-filter client-side.\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 cachedHits = getCached(cacheKey)\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let allHits: any[]\r\n if (cachedHits) {\r\n allHits = cachedHits\r\n } else {\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 allHits = rawResults.map(transformHybridToAlgolia)\r\n setCached(cacheKey, allHits)\r\n }\r\n\r\n // Doctype filter is applied client-side because the upstream API\r\n // does not understand it. Facet counts are computed on `allHits`\r\n // (i.e. ignoring the doctype filter) so that the tabs keep showing\r\n // counts for the other doctypes.\r\n const filteredHits = filterHitsByDoctype(allHits, doctypes)\r\n const nbHits = filteredHits.length\r\n const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage))\r\n const start = page * hitsPerPage\r\n const pageHits = filteredHits.slice(start, start + hitsPerPage)\r\n\r\n const facets = extractFacetsFromHits(allHits)\r\n\r\n return {\r\n results: [\r\n {\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: facets.facets,\r\n facets_stats: {},\r\n exhaustiveFacetsCount: true,\r\n queryID: generateQueryID(),\r\n },\r\n ],\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) =>\r\n wanted.has(String(h.doctype || '').toLowerCase())\r\n )\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\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction extractFacetsFromHits(\r\n hits: any[]\r\n): { facets: Record> } {\r\n const facets: Record> = {\r\n doctype: {},\r\n language: {},\r\n }\r\n\r\n hits.forEach((hit) => {\r\n const doctype = hit.doctype || 'Other'\r\n facets.doctype[doctype] = (facets.doctype[doctype] || 0) + 1\r\n\r\n const language = hit.language || 'en'\r\n facets.language[language] = (facets.language[language] || 0) + 1\r\n })\r\n\r\n return { facets }\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(config: SearchBackendConfig | AlgoliaConfig) {\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\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 return !dataElement ? (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results' }\r\n \r\n \r\n {ocurrenceCount['']}\r\n \r\n \r\n ) : (\r\n updateFilter(dataElement.id)}\r\n >\r\n \r\n \r\n \r\n {dataElement.title}\r\n \r\n \r\n \r\n {ocurrenceCount[dataElement.id] || 0}\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: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\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: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n fontSize: '12px',\r\n lineHeight: '16px',\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\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, 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 { searchClient, searchIndex, hitsPerPage } from 'utils/config/search-config'\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 [prevFilter, setPrevFilter] = useState('')\r\n const [searchState, setSearchState] = useState({})\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const page = filters !== prevFilter ? 1 : currentState.page || 1\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 ocurrenceCount[filterSelectedSection] === undefined\r\n ? ''\r\n : 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 facets = results?.facets as\r\n | Array<{\r\n name: string\r\n data: Record\r\n exhaustive?: boolean\r\n }>\r\n | undefined\r\n\r\n const doctypeFacet = facets?.find((facet) => facet.name === 'doctype')\r\n const nbHits = results?.nbHits ?? 0\r\n\r\n const formattedFacets: Record = {}\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\r\n formattedFacets[''] = nbHits\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) 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}\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\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 return (\r\n changeFilterSelectedSection(filter)}\r\n >\r\n \r\n {filter || messages[locale]['search_results.all'] || 'All results'}\r\n \r\n {ocurrenceCount[filter] || 0}\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) => SxStyleProp = (active) => ({\r\n pt: '8px',\r\n pb: '14px',\r\n px: '24px',\r\n cursor: '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})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '16.38px',\r\n whiteSpace: 'nowrap',\r\n color: `#${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","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 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 { 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 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","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","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","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","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","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","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","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","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","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","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","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/utils/string-utils.ts b/src/utils/string-utils.ts index 24df16e..2142486 100644 --- a/src/utils/string-utils.ts +++ b/src/utils/string-utils.ts @@ -3,16 +3,22 @@ export const removeHTML = (str: string) => str.replace(/<\/?[^>]+>/g, '') /** * Strips Markdown syntax from text snippets to render as plain text. * Removes headings, bold, italic, inline code, images, and links while preserving - * the readable content. + * the readable content. Also handles tokens left truncated by the upstream + * snippet (e.g. an image/link cut off mid-URL with no closing paren). */ export const stripMarkdownForSnippet = (str: string): string => { if (!str) return '' let cleaned = str - // Remove markdown images ![alt](url) - keep only alt text - .replace(/!\[([^\]]*)\]\([^)]+\)/g, '$1') + // Remove markdown images ![alt](url) entirely (alt is usually a filename) + .replace(/!\[[^\]]*\]\([^)]*\)/g, '') // Remove markdown links [text](url) - keep only the text .replace(/\[([^\]]+)\]\([^)]+\)/g, '$1') + // Remove truncated markdown images/links left dangling at the end of a + // snippet (upstream cuts the string mid-token, e.g. "![alt](https://..." ) + .replace(/!?\[[^\]]*\]\([^)]*$/g, '') + // Remove a dangling image/link label with no closing bracket ("![alt" ) + .replace(/!?\[[^\]]*$/g, '') // Remove markdown headings (# ## ### etc.) at line start .replace(/^#{1,6}\s+/gm, '') // Remove markdown headings anywhere in text From 422acf301615a66437af098e78001478be9f567b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A1rbara=20Celi?= Date: Thu, 18 Jun 2026 12:22:05 -0300 Subject: [PATCH 19/23] feat: add excludeFromSearch property to Section type and update search filtering logic --- dist/index.d.mts | 1 + dist/index.mjs | 4 ++-- dist/index.mjs.map | 2 +- src/components/search-filter-tab-bar/index.tsx | 9 ++++++--- src/components/search-sections/index.tsx | 2 +- src/utils/typings/types.ts | 1 + 6 files changed, 12 insertions(+), 7 deletions(-) diff --git a/dist/index.d.mts b/dist/index.d.mts index 4a7c062..f9da848 100644 --- a/dist/index.d.mts +++ b/dist/index.d.mts @@ -89,6 +89,7 @@ type Section = { description: string; Icon: (props: IconProps) => JSX.Element; isExternalLink?: boolean; + excludeFromSearch?: boolean; }; type IconComponent = (props: IconProps) => JSX.Element; diff --git a/dist/index.mjs b/dist/index.mjs index d89ca71..8b345fd 100644 --- a/dist/index.mjs +++ b/dist/index.mjs @@ -10980,7 +10980,7 @@ import { jsx as jsx54, jsxs as jsxs42 } from "react/jsx-runtime"; var SearchSections = () => { const { sidebarSections } = useContext13(LibraryContext); const internalOnlySections = sidebarSections.map( - (section) => section.filter((item2) => !item2.isExternalLink) + (section) => section.filter((item2) => !item2.isExternalLink && !item2.excludeFromSearch) ); return /* @__PURE__ */ jsx54(Box19, { sx: styles_default19.container, children: internalOnlySections.map((sections, id) => /* @__PURE__ */ jsxs42( Box19, @@ -11562,7 +11562,7 @@ var SearchFilterTabBar = () => { const { sidebarSections } = useContext17(LibraryContext); return /* @__PURE__ */ jsxs47(Flex20, { sx: styles_default22.container, "data-testid": "doctype-filter-tab-bar", children: [ /* @__PURE__ */ jsx59(SearchFilterTab, { filter: "" }), - sidebarSections.flat().map((section) => { + sidebarSections.flat().filter((section) => !section.excludeFromSearch).map((section) => { return /* @__PURE__ */ jsx59(SearchFilterTab, { filter: section.id }, section.id); }) ] }); diff --git a/dist/index.mjs.map b/dist/index.mjs.map index 895e6c3..9c0d197 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/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/trashcan-icon.tsx","../src/components/icons/filter-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'\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 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\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\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 // 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`)\r\n .replace(/`([^`]+)`/g, '$1')\r\n // Remove code blocks (```text```)\r\n .replace(/```[\\s\\S]*?```/g, '')\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 // 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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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}\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}\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}","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}\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}\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 whiteSpace: 'pre',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\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\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\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\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\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 // 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 ): 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 or doctype\r\n // filtering, so we always fetch a large slice once per (query, locale)\r\n // pair and paginate / doctype-filter client-side.\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 cachedHits = getCached(cacheKey)\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let allHits: any[]\r\n if (cachedHits) {\r\n allHits = cachedHits\r\n } else {\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 allHits = rawResults.map(transformHybridToAlgolia)\r\n setCached(cacheKey, allHits)\r\n }\r\n\r\n // Doctype filter is applied client-side because the upstream API\r\n // does not understand it. Facet counts are computed on `allHits`\r\n // (i.e. ignoring the doctype filter) so that the tabs keep showing\r\n // counts for the other doctypes.\r\n const filteredHits = filterHitsByDoctype(allHits, doctypes)\r\n const nbHits = filteredHits.length\r\n const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage))\r\n const start = page * hitsPerPage\r\n const pageHits = filteredHits.slice(start, start + hitsPerPage)\r\n\r\n const facets = extractFacetsFromHits(allHits)\r\n\r\n return {\r\n results: [\r\n {\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: facets.facets,\r\n facets_stats: {},\r\n exhaustiveFacetsCount: true,\r\n queryID: generateQueryID(),\r\n },\r\n ],\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) =>\r\n wanted.has(String(h.doctype || '').toLowerCase())\r\n )\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\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction extractFacetsFromHits(\r\n hits: any[]\r\n): { facets: Record> } {\r\n const facets: Record> = {\r\n doctype: {},\r\n language: {},\r\n }\r\n\r\n hits.forEach((hit) => {\r\n const doctype = hit.doctype || 'Other'\r\n facets.doctype[doctype] = (facets.doctype[doctype] || 0) + 1\r\n\r\n const language = hit.language || 'en'\r\n facets.language[language] = (facets.language[language] || 0) + 1\r\n })\r\n\r\n return { facets }\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(config: SearchBackendConfig | AlgoliaConfig) {\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\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 return !dataElement ? (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results' }\r\n \r\n \r\n {ocurrenceCount['']}\r\n \r\n \r\n ) : (\r\n updateFilter(dataElement.id)}\r\n >\r\n \r\n \r\n \r\n {dataElement.title}\r\n \r\n \r\n \r\n {ocurrenceCount[dataElement.id] || 0}\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: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\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: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n fontSize: '12px',\r\n lineHeight: '16px',\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\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, 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 { searchClient, searchIndex, hitsPerPage } from 'utils/config/search-config'\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 [prevFilter, setPrevFilter] = useState('')\r\n const [searchState, setSearchState] = useState({})\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const page = filters !== prevFilter ? 1 : currentState.page || 1\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 ocurrenceCount[filterSelectedSection] === undefined\r\n ? ''\r\n : 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 facets = results?.facets as\r\n | Array<{\r\n name: string\r\n data: Record\r\n exhaustive?: boolean\r\n }>\r\n | undefined\r\n\r\n const doctypeFacet = facets?.find((facet) => facet.name === 'doctype')\r\n const nbHits = results?.nbHits ?? 0\r\n\r\n const formattedFacets: Record = {}\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\r\n formattedFacets[''] = nbHits\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) 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}\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\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 return (\r\n changeFilterSelectedSection(filter)}\r\n data-testid=\"doctype-filter-tab\"\r\n data-filter={filter}\r\n data-active={String(filterSelectedSection === filter)}\r\n >\r\n \r\n {filter || messages[locale]['search_results.all'] || 'All results'}\r\n \r\n \r\n {ocurrenceCount[filter] || 0}\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) => SxStyleProp = (active) => ({\r\n pt: '8px',\r\n pb: '14px',\r\n px: '24px',\r\n cursor: '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})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '16.38px',\r\n whiteSpace: 'nowrap',\r\n color: `#${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","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 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 { 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 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","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","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","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","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","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","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","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","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","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","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","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/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/trashcan-icon.tsx","../src/components/icons/filter-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'\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 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\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\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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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}\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}\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}","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}\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}\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 whiteSpace: 'pre',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\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\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 { MultipleQueriesQuery } from '@algolia/client-search'\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport let searchClient: any = {}\r\nexport let searchIndex = ''\r\n\r\ninterface 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\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\nexport default createAlgoliaClient\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 && !item.excludeFromSearch)\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\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 return !dataElement ? (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results' }\r\n \r\n \r\n {ocurrenceCount['']}\r\n \r\n \r\n ) : (\r\n updateFilter(dataElement.id)}\r\n >\r\n \r\n \r\n \r\n {dataElement.title}\r\n \r\n \r\n \r\n {ocurrenceCount[dataElement.id] || 0}\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: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\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: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n fontSize: '12px',\r\n lineHeight: '16px',\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\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, 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 { searchClient, searchIndex } from 'utils/config/search-config'\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 [prevFilter, setPrevFilter] = useState('')\r\n const [searchState, setSearchState] = useState({})\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const page = filters !== prevFilter ? 1 : currentState.page || 1\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 ocurrenceCount[filterSelectedSection] === undefined\r\n ? ''\r\n : 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 facets = results?.facets as\r\n | Array<{\r\n name: string\r\n data: Record\r\n exhaustive?: boolean\r\n }>\r\n | undefined\r\n\r\n const doctypeFacet = facets?.find((facet) => facet.name === 'doctype')\r\n const nbHits = results?.nbHits ?? 0\r\n\r\n const formattedFacets: Record = {}\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\r\n formattedFacets[''] = nbHits\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)\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\nexport default connectInfiniteHits(InfiniteHits)\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}\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\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 return (\r\n changeFilterSelectedSection(filter)}\r\n >\r\n \r\n {filter || messages[locale]['search_results.all'] || 'All results'}\r\n \r\n {ocurrenceCount[filter] || 0}\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\r\n .flat()\r\n .filter((section) => !section.excludeFromSearch)\r\n .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) => SxStyleProp = (active) => ({\r\n pt: '8px',\r\n pb: '14px',\r\n px: '24px',\r\n cursor: '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})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '16.38px',\r\n whiteSpace: 'nowrap',\r\n color: `#${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","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 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 { 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 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","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","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","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","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","algoliasearch","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","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","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","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","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","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","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/search-filter-tab-bar/index.tsx b/src/components/search-filter-tab-bar/index.tsx index 0e39fbc..856c21a 100644 --- a/src/components/search-filter-tab-bar/index.tsx +++ b/src/components/search-filter-tab-bar/index.tsx @@ -37,9 +37,12 @@ const SearchFilterTabBar = () => { return ( - {sidebarSections.flat().map((section) => { - return - })} + {sidebarSections + .flat() + .filter((section) => !section.excludeFromSearch) + .map((section) => { + return + })} ) } diff --git a/src/components/search-sections/index.tsx b/src/components/search-sections/index.tsx index a0b0e6a..5da41e0 100644 --- a/src/components/search-sections/index.tsx +++ b/src/components/search-sections/index.tsx @@ -9,7 +9,7 @@ const SearchSections = () => { const { sidebarSections } = useContext(LibraryContext) const internalOnlySections = sidebarSections.map((section) => - section.filter((item) => !item.isExternalLink) + section.filter((item) => !item.isExternalLink && !item.excludeFromSearch) ) return ( diff --git a/src/utils/typings/types.ts b/src/utils/typings/types.ts index e7698d2..19c6ff7 100644 --- a/src/utils/typings/types.ts +++ b/src/utils/typings/types.ts @@ -7,6 +7,7 @@ export type Section = { description: string Icon: (props: IconProps) => JSX.Element isExternalLink?: boolean + excludeFromSearch?: boolean } export type MethodType = 'POST' | 'GET' | 'PUT' | 'DELETE' | 'PATCH' From e4b76fdca291377ba5b5583fa16c182d7ebde98a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A1rbara=20Celi?= Date: Thu, 18 Jun 2026 12:43:54 -0300 Subject: [PATCH 20/23] refactor: enhance search filtering logic to include excluded doctypes and improve doctype detection --- dist/index.mjs | 10 +++++++--- dist/index.mjs.map | 2 +- src/components/search-results/index.tsx | 8 +++++++- src/components/search-results/infiniteHits.tsx | 11 ++++++++--- 4 files changed, 23 insertions(+), 8 deletions(-) diff --git a/dist/index.mjs b/dist/index.mjs index 8b345fd..435c781 100644 --- a/dist/index.mjs +++ b/dist/index.mjs @@ -11321,7 +11321,9 @@ var StateResults = connectStateResults2( if (!searchResults) return; const results = searchResults; - const isFilteringByDoctype = typeof results?._state.filters === "string" && results._state.filters.includes("doctype:"); + const stateFilters = typeof results?._state.filters === "string" ? results._state.filters : ""; + const positiveFilters = stateFilters.replace(/NOT doctype:"[^"]*"/g, ""); + const isFilteringByDoctype = positiveFilters.includes('doctype:"'); const facets = results?.facets; const doctypeFacet = facets?.find((facet) => facet.name === "doctype"); const nbHits = results?.nbHits ?? 0; @@ -11445,10 +11447,12 @@ import { jsx as jsx58, jsxs as jsxs46 } from "react/jsx-runtime"; var SearchResults = () => { const router = useRouter7(); const { filterSelectedSection, ocurrenceCount } = useContext16(SearchContext); - const { locale } = useContext16(LibraryContext); + const { locale, sidebarSections } = useContext16(LibraryContext); + const excludedDoctypesFilter = sidebarSections.flat().filter((section) => section.excludeFromSearch).map((section) => `NOT doctype:"${section.id}"`).join(" AND "); const filters = [ `language:${locale}`, - filterSelectedSection ? `doctype:"${filterSelectedSection}"` : "" + filterSelectedSection ? `doctype:"${filterSelectedSection}"` : "", + excludedDoctypesFilter ].filter(Boolean).join(" AND "); const [prevFilter, setPrevFilter] = useState14(""); const [searchState, setSearchState] = useState14({}); diff --git a/dist/index.mjs.map b/dist/index.mjs.map index 9c0d197..321ca0e 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/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/trashcan-icon.tsx","../src/components/icons/filter-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'\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 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\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\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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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}\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}\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}","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}\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}\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 whiteSpace: 'pre',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\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\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 { MultipleQueriesQuery } from '@algolia/client-search'\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport let searchClient: any = {}\r\nexport let searchIndex = ''\r\n\r\ninterface 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\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\nexport default createAlgoliaClient\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 && !item.excludeFromSearch)\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\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 return !dataElement ? (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results' }\r\n \r\n \r\n {ocurrenceCount['']}\r\n \r\n \r\n ) : (\r\n updateFilter(dataElement.id)}\r\n >\r\n \r\n \r\n \r\n {dataElement.title}\r\n \r\n \r\n \r\n {ocurrenceCount[dataElement.id] || 0}\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: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\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: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n fontSize: '12px',\r\n lineHeight: '16px',\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\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, 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 { searchClient, searchIndex } from 'utils/config/search-config'\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 [prevFilter, setPrevFilter] = useState('')\r\n const [searchState, setSearchState] = useState({})\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const page = filters !== prevFilter ? 1 : currentState.page || 1\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 ocurrenceCount[filterSelectedSection] === undefined\r\n ? ''\r\n : 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 facets = results?.facets as\r\n | Array<{\r\n name: string\r\n data: Record\r\n exhaustive?: boolean\r\n }>\r\n | undefined\r\n\r\n const doctypeFacet = facets?.find((facet) => facet.name === 'doctype')\r\n const nbHits = results?.nbHits ?? 0\r\n\r\n const formattedFacets: Record = {}\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\r\n formattedFacets[''] = nbHits\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)\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\nexport default connectInfiniteHits(InfiniteHits)\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}\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\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 return (\r\n changeFilterSelectedSection(filter)}\r\n >\r\n \r\n {filter || messages[locale]['search_results.all'] || 'All results'}\r\n \r\n {ocurrenceCount[filter] || 0}\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\r\n .flat()\r\n .filter((section) => !section.excludeFromSearch)\r\n .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) => SxStyleProp = (active) => ({\r\n pt: '8px',\r\n pb: '14px',\r\n px: '24px',\r\n cursor: '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})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '16.38px',\r\n whiteSpace: 'nowrap',\r\n color: `#${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","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 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 { 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 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","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","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","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","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","algoliasearch","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","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","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","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","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","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","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/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/trashcan-icon.tsx","../src/components/icons/filter-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'\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 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\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\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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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}\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}\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}","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}\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}\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 whiteSpace: 'pre',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\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\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 { MultipleQueriesQuery } from '@algolia/client-search'\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport let searchClient: any = {}\r\nexport let searchIndex = ''\r\n\r\ninterface 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\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\nexport default createAlgoliaClient\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 && !item.excludeFromSearch)\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\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 return !dataElement ? (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results' }\r\n \r\n \r\n {ocurrenceCount['']}\r\n \r\n \r\n ) : (\r\n updateFilter(dataElement.id)}\r\n >\r\n \r\n \r\n \r\n {dataElement.title}\r\n \r\n \r\n \r\n {ocurrenceCount[dataElement.id] || 0}\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: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\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: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n fontSize: '12px',\r\n lineHeight: '16px',\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\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, 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 { searchClient, searchIndex } from 'utils/config/search-config'\r\n\r\nconst SearchResults = () => {\r\n const router = useRouter()\r\n const { filterSelectedSection, ocurrenceCount } = useContext(SearchContext)\r\n const { locale, sidebarSections } = useContext(LibraryContext)\r\n const excludedDoctypesFilter = sidebarSections\r\n .flat()\r\n .filter((section) => section.excludeFromSearch)\r\n .map((section) => `NOT doctype:\"${section.id}\"`)\r\n .join(' AND ')\r\n const filters = [\r\n `language:${locale}`,\r\n filterSelectedSection ? `doctype:\"${filterSelectedSection}\"` : '',\r\n excludedDoctypesFilter,\r\n ]\r\n .filter(Boolean)\r\n .join(' AND ')\r\n const [prevFilter, setPrevFilter] = useState('')\r\n const [searchState, setSearchState] = useState({})\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const page = filters !== prevFilter ? 1 : currentState.page || 1\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 ocurrenceCount[filterSelectedSection] === undefined\r\n ? ''\r\n : 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 stateFilters =\r\n typeof results?._state.filters === 'string'\r\n ? results._state.filters\r\n : ''\r\n // Ignore the always-present `NOT doctype:\"...\"` exclusion clauses so we\r\n // only detect a positive doctype selection made by the user.\r\n const positiveFilters = stateFilters.replace(/NOT doctype:\"[^\"]*\"/g, '')\r\n const isFilteringByDoctype = positiveFilters.includes('doctype:\"')\r\n\r\n const facets = results?.facets as\r\n | Array<{\r\n name: string\r\n data: Record\r\n exhaustive?: boolean\r\n }>\r\n | undefined\r\n\r\n const doctypeFacet = facets?.find((facet) => facet.name === 'doctype')\r\n const nbHits = results?.nbHits ?? 0\r\n\r\n const formattedFacets: Record = {}\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\r\n formattedFacets[''] = nbHits\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)\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\nexport default connectInfiniteHits(InfiniteHits)\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}\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\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 return (\r\n changeFilterSelectedSection(filter)}\r\n >\r\n \r\n {filter || messages[locale]['search_results.all'] || 'All results'}\r\n \r\n {ocurrenceCount[filter] || 0}\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\r\n .flat()\r\n .filter((section) => !section.excludeFromSearch)\r\n .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) => SxStyleProp = (active) => ({\r\n pt: '8px',\r\n pb: '14px',\r\n px: '24px',\r\n cursor: '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})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '16.38px',\r\n whiteSpace: 'nowrap',\r\n color: `#${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","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 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 { 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 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","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","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","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","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","algoliasearch","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","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","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","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","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","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","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/search-results/index.tsx b/src/components/search-results/index.tsx index e3b2586..fb9448a 100644 --- a/src/components/search-results/index.tsx +++ b/src/components/search-results/index.tsx @@ -16,10 +16,16 @@ import { searchClient, searchIndex, hitsPerPage } from 'utils/config/search-conf const SearchResults = () => { const router = useRouter() const { filterSelectedSection, ocurrenceCount } = useContext(SearchContext) - const { locale } = useContext(LibraryContext) + const { locale, sidebarSections } = useContext(LibraryContext) + const excludedDoctypesFilter = sidebarSections + .flat() + .filter((section) => section.excludeFromSearch) + .map((section) => `NOT doctype:"${section.id}"`) + .join(' AND ') const filters = [ `language:${locale}`, filterSelectedSection ? `doctype:"${filterSelectedSection}"` : '', + excludedDoctypesFilter, ] .filter(Boolean) .join(' AND ') diff --git a/src/components/search-results/infiniteHits.tsx b/src/components/search-results/infiniteHits.tsx index 3b4ed47..05bdcc0 100644 --- a/src/components/search-results/infiniteHits.tsx +++ b/src/components/search-results/infiniteHits.tsx @@ -61,9 +61,14 @@ const StateResults = connectStateResults( // eslint-disable-next-line @typescript-eslint/no-explicit-any const results = searchResults as any - const isFilteringByDoctype = - typeof results?._state.filters === 'string' && - results._state.filters.includes('doctype:') + const stateFilters = + typeof results?._state.filters === 'string' + ? results._state.filters + : '' + // Ignore the always-present `NOT doctype:"..."` exclusion clauses so we + // only detect a positive doctype selection made by the user. + const positiveFilters = stateFilters.replace(/NOT doctype:"[^"]*"/g, '') + const isFilteringByDoctype = positiveFilters.includes('doctype:"') const facets = results?.facets as | Array<{ From cf3deb766d0a304bd93b22127e79ef753712f353 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A1rbara=20Celi?= Date: Thu, 18 Jun 2026 15:34:02 -0300 Subject: [PATCH 21/23] fix: update index.mjs.map to reflect changes in source file paths and improve build output consistency --- dist/index.mjs.map | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dist/index.mjs.map b/dist/index.mjs.map index 321ca0e..2357a4e 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/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/trashcan-icon.tsx","../src/components/icons/filter-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'\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 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\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\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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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}\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}\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}","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}\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}\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 whiteSpace: 'pre',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\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\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 { MultipleQueriesQuery } from '@algolia/client-search'\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport let searchClient: any = {}\r\nexport let searchIndex = ''\r\n\r\ninterface 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\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\nexport default createAlgoliaClient\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 && !item.excludeFromSearch)\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\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 return !dataElement ? (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results' }\r\n \r\n \r\n {ocurrenceCount['']}\r\n \r\n \r\n ) : (\r\n updateFilter(dataElement.id)}\r\n >\r\n \r\n \r\n \r\n {dataElement.title}\r\n \r\n \r\n \r\n {ocurrenceCount[dataElement.id] || 0}\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: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\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: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n fontSize: '12px',\r\n lineHeight: '16px',\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\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, 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 { searchClient, searchIndex } from 'utils/config/search-config'\r\n\r\nconst SearchResults = () => {\r\n const router = useRouter()\r\n const { filterSelectedSection, ocurrenceCount } = useContext(SearchContext)\r\n const { locale, sidebarSections } = useContext(LibraryContext)\r\n const excludedDoctypesFilter = sidebarSections\r\n .flat()\r\n .filter((section) => section.excludeFromSearch)\r\n .map((section) => `NOT doctype:\"${section.id}\"`)\r\n .join(' AND ')\r\n const filters = [\r\n `language:${locale}`,\r\n filterSelectedSection ? `doctype:\"${filterSelectedSection}\"` : '',\r\n excludedDoctypesFilter,\r\n ]\r\n .filter(Boolean)\r\n .join(' AND ')\r\n const [prevFilter, setPrevFilter] = useState('')\r\n const [searchState, setSearchState] = useState({})\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const page = filters !== prevFilter ? 1 : currentState.page || 1\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 ocurrenceCount[filterSelectedSection] === undefined\r\n ? ''\r\n : 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 stateFilters =\r\n typeof results?._state.filters === 'string'\r\n ? results._state.filters\r\n : ''\r\n // Ignore the always-present `NOT doctype:\"...\"` exclusion clauses so we\r\n // only detect a positive doctype selection made by the user.\r\n const positiveFilters = stateFilters.replace(/NOT doctype:\"[^\"]*\"/g, '')\r\n const isFilteringByDoctype = positiveFilters.includes('doctype:\"')\r\n\r\n const facets = results?.facets as\r\n | Array<{\r\n name: string\r\n data: Record\r\n exhaustive?: boolean\r\n }>\r\n | undefined\r\n\r\n const doctypeFacet = facets?.find((facet) => facet.name === 'doctype')\r\n const nbHits = results?.nbHits ?? 0\r\n\r\n const formattedFacets: Record = {}\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\r\n formattedFacets[''] = nbHits\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)\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\nexport default connectInfiniteHits(InfiniteHits)\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}\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\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 return (\r\n changeFilterSelectedSection(filter)}\r\n >\r\n \r\n {filter || messages[locale]['search_results.all'] || 'All results'}\r\n \r\n {ocurrenceCount[filter] || 0}\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\r\n .flat()\r\n .filter((section) => !section.excludeFromSearch)\r\n .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) => SxStyleProp = (active) => ({\r\n pt: '8px',\r\n pb: '14px',\r\n px: '24px',\r\n cursor: '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})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '16.38px',\r\n whiteSpace: 'nowrap',\r\n color: `#${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","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 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 { 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 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","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","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","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","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","algoliasearch","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","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","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","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","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","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","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/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/trashcan-icon.tsx","../src/components/icons/filter-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'\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 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\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\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 // 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`)\r\n .replace(/`([^`]+)`/g, '$1')\r\n // Remove code blocks (```text```)\r\n .replace(/```[\\s\\S]*?```/g, '')\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 // 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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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}\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}\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}","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}\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}\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 whiteSpace: 'pre',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\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\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\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\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\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 // 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 ): 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 or doctype\r\n // filtering, so we always fetch a large slice once per (query, locale)\r\n // pair and paginate / doctype-filter client-side.\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 cachedHits = getCached(cacheKey)\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let allHits: any[]\r\n if (cachedHits) {\r\n allHits = cachedHits\r\n } else {\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 allHits = rawResults.map(transformHybridToAlgolia)\r\n setCached(cacheKey, allHits)\r\n }\r\n\r\n // Doctype filter is applied client-side because the upstream API\r\n // does not understand it. Facet counts are computed on `allHits`\r\n // (i.e. ignoring the doctype filter) so that the tabs keep showing\r\n // counts for the other doctypes.\r\n const filteredHits = filterHitsByDoctype(allHits, doctypes)\r\n const nbHits = filteredHits.length\r\n const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage))\r\n const start = page * hitsPerPage\r\n const pageHits = filteredHits.slice(start, start + hitsPerPage)\r\n\r\n const facets = extractFacetsFromHits(allHits)\r\n\r\n return {\r\n results: [\r\n {\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: facets.facets,\r\n facets_stats: {},\r\n exhaustiveFacetsCount: true,\r\n queryID: generateQueryID(),\r\n },\r\n ],\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) =>\r\n wanted.has(String(h.doctype || '').toLowerCase())\r\n )\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\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction extractFacetsFromHits(\r\n hits: any[]\r\n): { facets: Record> } {\r\n const facets: Record> = {\r\n doctype: {},\r\n language: {},\r\n }\r\n\r\n hits.forEach((hit) => {\r\n const doctype = hit.doctype || 'Other'\r\n facets.doctype[doctype] = (facets.doctype[doctype] || 0) + 1\r\n\r\n const language = hit.language || 'en'\r\n facets.language[language] = (facets.language[language] || 0) + 1\r\n })\r\n\r\n return { facets }\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(config: SearchBackendConfig | AlgoliaConfig) {\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 && !item.excludeFromSearch)\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\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 return !dataElement ? (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results' }\r\n \r\n \r\n {ocurrenceCount['']}\r\n \r\n \r\n ) : (\r\n updateFilter(dataElement.id)}\r\n >\r\n \r\n \r\n \r\n {dataElement.title}\r\n \r\n \r\n \r\n {ocurrenceCount[dataElement.id] || 0}\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: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\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: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n fontSize: '12px',\r\n lineHeight: '16px',\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\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, 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 { searchClient, searchIndex, hitsPerPage } from 'utils/config/search-config'\r\n\r\nconst SearchResults = () => {\r\n const router = useRouter()\r\n const { filterSelectedSection, ocurrenceCount } = useContext(SearchContext)\r\n const { locale, sidebarSections } = useContext(LibraryContext)\r\n const excludedDoctypesFilter = sidebarSections\r\n .flat()\r\n .filter((section) => section.excludeFromSearch)\r\n .map((section) => `NOT doctype:\"${section.id}\"`)\r\n .join(' AND ')\r\n const filters = [\r\n `language:${locale}`,\r\n filterSelectedSection ? `doctype:\"${filterSelectedSection}\"` : '',\r\n excludedDoctypesFilter,\r\n ]\r\n .filter(Boolean)\r\n .join(' AND ')\r\n const [prevFilter, setPrevFilter] = useState('')\r\n const [searchState, setSearchState] = useState({})\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const page = filters !== prevFilter ? 1 : currentState.page || 1\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 ocurrenceCount[filterSelectedSection] === undefined\r\n ? ''\r\n : 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 stateFilters =\r\n typeof results?._state.filters === 'string'\r\n ? results._state.filters\r\n : ''\r\n // Ignore the always-present `NOT doctype:\"...\"` exclusion clauses so we\r\n // only detect a positive doctype selection made by the user.\r\n const positiveFilters = stateFilters.replace(/NOT doctype:\"[^\"]*\"/g, '')\r\n const isFilteringByDoctype = positiveFilters.includes('doctype:\"')\r\n\r\n const facets = results?.facets as\r\n | Array<{\r\n name: string\r\n data: Record\r\n exhaustive?: boolean\r\n }>\r\n | undefined\r\n\r\n const doctypeFacet = facets?.find((facet) => facet.name === 'doctype')\r\n const nbHits = results?.nbHits ?? 0\r\n\r\n const formattedFacets: Record = {}\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\r\n formattedFacets[''] = nbHits\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) 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}\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\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 return (\r\n changeFilterSelectedSection(filter)}\r\n data-testid=\"doctype-filter-tab\"\r\n data-filter={filter}\r\n data-active={String(filterSelectedSection === filter)}\r\n >\r\n \r\n {filter || messages[locale]['search_results.all'] || 'All results'}\r\n \r\n \r\n {ocurrenceCount[filter] || 0}\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\r\n .flat()\r\n .filter((section) => !section.excludeFromSearch)\r\n .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) => SxStyleProp = (active) => ({\r\n pt: '8px',\r\n pb: '14px',\r\n px: '24px',\r\n cursor: '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})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '16.38px',\r\n whiteSpace: 'nowrap',\r\n color: `#${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","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 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 { 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 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","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","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","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","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","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","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","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","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","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","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","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 From de97fca13315b54e6a51eecdbf2e346993f33ba6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A1rbara=20Celi?= Date: Thu, 18 Jun 2026 15:39:30 -0300 Subject: [PATCH 22/23] refactor: extend hybrid search filtering to support excluded doctypes and improve hit selection logic --- dist/index.mjs | 35 ++++++++++++++++--- dist/index.mjs.map | 2 +- src/utils/config/search-config.ts | 57 +++++++++++++++++++++++++------ 3 files changed, 78 insertions(+), 16 deletions(-) diff --git a/dist/index.mjs b/dist/index.mjs index 435c781..042636a 100644 --- a/dist/index.mjs +++ b/dist/index.mjs @@ -9879,7 +9879,7 @@ var createHybridClient = (config) => { const query = params.query || ""; const hitsPerPage2 = params.hitsPerPage || pageSize; const page = params.page || 0; - const { locale, doctypes } = extractHybridFilters(params); + const { locale, doctypes, excludedDoctypes } = extractHybridFilters(params); const cacheKey = JSON.stringify({ q: query, locale: useLanguageFilter ? locale || "" : "", @@ -9905,12 +9905,13 @@ var createHybridClient = (config) => { allHits = rawResults.map(transformHybridToAlgolia); setCached(cacheKey, allHits); } - const filteredHits = filterHitsByDoctype(allHits, doctypes); + const searchableHits = excludeHitsByDoctype(allHits, excludedDoctypes); + const filteredHits = filterHitsByDoctype(searchableHits, doctypes); const nbHits = filteredHits.length; const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage2)); const start = page * hitsPerPage2; const pageHits = filteredHits.slice(start, start + hitsPerPage2); - const facets = extractFacetsFromHits(allHits); + const facets = extractFacetsFromHits(searchableHits); return { results: [ { @@ -9961,19 +9962,35 @@ function clampUpstreamLimit(raw) { function extractHybridFilters(params) { let locale = ""; const doctypes = []; + const excludedDoctypes = []; const pushDoctype = (raw) => { const value = raw.replace(/^"|"$/g, "").trim(); if (value && !doctypes.includes(value)) doctypes.push(value); }; + const pushExcludedDoctype = (raw) => { + const value = raw.replace(/^"|"$/g, "").trim(); + if (value && !excludedDoctypes.includes(value)) { + excludedDoctypes.push(value); + } + }; const filtersStr = typeof params?.filters === "string" ? params.filters : ""; if (filtersStr) { const langMatch = filtersStr.match(/language\s*:\s*([\w-]+)/i); if (langMatch) locale = langMatch[1]; + const excludedRegex = /NOT\s+doctype\s*:\s*(?:"([^"]+)"|([^\s)]+))/gi; + let excludedMatch; + while ((excludedMatch = excludedRegex.exec(filtersStr)) !== null) { + pushExcludedDoctype(excludedMatch[1] || excludedMatch[2] || ""); + } + const positiveFiltersStr = filtersStr.replace( + /NOT\s+doctype\s*:\s*(?:"[^"]+"|[^\s)]+)/gi, + "" + ); const doctypeRegex = /doctype\s*:\s*(?:"([^"]+)"|([^\s)]+))/gi; let m; - while ((m = doctypeRegex.exec(filtersStr)) !== null) { + while ((m = doctypeRegex.exec(positiveFiltersStr)) !== null) { pushDoctype(m[1] || m[2] || ""); } } @@ -9990,7 +10007,15 @@ function extractHybridFilters(params) { } }; visit(facetFilters); - return { locale, doctypes }; + return { locale, doctypes, excludedDoctypes }; +} +function excludeHitsByDoctype(hits, excludedDoctypes) { + if (!excludedDoctypes.length) + return hits; + const excluded = new Set(excludedDoctypes.map((d) => d.toLowerCase())); + return hits.filter( + (h) => !excluded.has(String(h.doctype || "").toLowerCase()) + ); } function filterHitsByDoctype(hits, doctypes) { if (!doctypes.length) diff --git a/dist/index.mjs.map b/dist/index.mjs.map index 2357a4e..dc2065a 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/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/trashcan-icon.tsx","../src/components/icons/filter-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'\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 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\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\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 // 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`)\r\n .replace(/`([^`]+)`/g, '$1')\r\n // Remove code blocks (```text```)\r\n .replace(/```[\\s\\S]*?```/g, '')\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 // 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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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}\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}\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}","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}\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}\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 whiteSpace: 'pre',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\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\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\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\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\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 // 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 ): 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 or doctype\r\n // filtering, so we always fetch a large slice once per (query, locale)\r\n // pair and paginate / doctype-filter client-side.\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 cachedHits = getCached(cacheKey)\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let allHits: any[]\r\n if (cachedHits) {\r\n allHits = cachedHits\r\n } else {\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 allHits = rawResults.map(transformHybridToAlgolia)\r\n setCached(cacheKey, allHits)\r\n }\r\n\r\n // Doctype filter is applied client-side because the upstream API\r\n // does not understand it. Facet counts are computed on `allHits`\r\n // (i.e. ignoring the doctype filter) so that the tabs keep showing\r\n // counts for the other doctypes.\r\n const filteredHits = filterHitsByDoctype(allHits, doctypes)\r\n const nbHits = filteredHits.length\r\n const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage))\r\n const start = page * hitsPerPage\r\n const pageHits = filteredHits.slice(start, start + hitsPerPage)\r\n\r\n const facets = extractFacetsFromHits(allHits)\r\n\r\n return {\r\n results: [\r\n {\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: facets.facets,\r\n facets_stats: {},\r\n exhaustiveFacetsCount: true,\r\n queryID: generateQueryID(),\r\n },\r\n ],\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) =>\r\n wanted.has(String(h.doctype || '').toLowerCase())\r\n )\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\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction extractFacetsFromHits(\r\n hits: any[]\r\n): { facets: Record> } {\r\n const facets: Record> = {\r\n doctype: {},\r\n language: {},\r\n }\r\n\r\n hits.forEach((hit) => {\r\n const doctype = hit.doctype || 'Other'\r\n facets.doctype[doctype] = (facets.doctype[doctype] || 0) + 1\r\n\r\n const language = hit.language || 'en'\r\n facets.language[language] = (facets.language[language] || 0) + 1\r\n })\r\n\r\n return { facets }\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(config: SearchBackendConfig | AlgoliaConfig) {\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 && !item.excludeFromSearch)\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\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 return !dataElement ? (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results' }\r\n \r\n \r\n {ocurrenceCount['']}\r\n \r\n \r\n ) : (\r\n updateFilter(dataElement.id)}\r\n >\r\n \r\n \r\n \r\n {dataElement.title}\r\n \r\n \r\n \r\n {ocurrenceCount[dataElement.id] || 0}\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: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\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: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n fontSize: '12px',\r\n lineHeight: '16px',\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\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, 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 { searchClient, searchIndex, hitsPerPage } from 'utils/config/search-config'\r\n\r\nconst SearchResults = () => {\r\n const router = useRouter()\r\n const { filterSelectedSection, ocurrenceCount } = useContext(SearchContext)\r\n const { locale, sidebarSections } = useContext(LibraryContext)\r\n const excludedDoctypesFilter = sidebarSections\r\n .flat()\r\n .filter((section) => section.excludeFromSearch)\r\n .map((section) => `NOT doctype:\"${section.id}\"`)\r\n .join(' AND ')\r\n const filters = [\r\n `language:${locale}`,\r\n filterSelectedSection ? `doctype:\"${filterSelectedSection}\"` : '',\r\n excludedDoctypesFilter,\r\n ]\r\n .filter(Boolean)\r\n .join(' AND ')\r\n const [prevFilter, setPrevFilter] = useState('')\r\n const [searchState, setSearchState] = useState({})\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const page = filters !== prevFilter ? 1 : currentState.page || 1\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 ocurrenceCount[filterSelectedSection] === undefined\r\n ? ''\r\n : 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 stateFilters =\r\n typeof results?._state.filters === 'string'\r\n ? results._state.filters\r\n : ''\r\n // Ignore the always-present `NOT doctype:\"...\"` exclusion clauses so we\r\n // only detect a positive doctype selection made by the user.\r\n const positiveFilters = stateFilters.replace(/NOT doctype:\"[^\"]*\"/g, '')\r\n const isFilteringByDoctype = positiveFilters.includes('doctype:\"')\r\n\r\n const facets = results?.facets as\r\n | Array<{\r\n name: string\r\n data: Record\r\n exhaustive?: boolean\r\n }>\r\n | undefined\r\n\r\n const doctypeFacet = facets?.find((facet) => facet.name === 'doctype')\r\n const nbHits = results?.nbHits ?? 0\r\n\r\n const formattedFacets: Record = {}\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\r\n formattedFacets[''] = nbHits\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) 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}\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\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 return (\r\n changeFilterSelectedSection(filter)}\r\n data-testid=\"doctype-filter-tab\"\r\n data-filter={filter}\r\n data-active={String(filterSelectedSection === filter)}\r\n >\r\n \r\n {filter || messages[locale]['search_results.all'] || 'All results'}\r\n \r\n \r\n {ocurrenceCount[filter] || 0}\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\r\n .flat()\r\n .filter((section) => !section.excludeFromSearch)\r\n .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) => SxStyleProp = (active) => ({\r\n pt: '8px',\r\n pb: '14px',\r\n px: '24px',\r\n cursor: '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})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '16.38px',\r\n whiteSpace: 'nowrap',\r\n color: `#${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","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 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 { 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 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","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","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","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","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","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","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","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","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","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","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","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/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/trashcan-icon.tsx","../src/components/icons/filter-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'\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 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\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\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 // 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`)\r\n .replace(/`([^`]+)`/g, '$1')\r\n // Remove code blocks (```text```)\r\n .replace(/```[\\s\\S]*?```/g, '')\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 // 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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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}\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}\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}","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}\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}\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 whiteSpace: 'pre',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\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\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\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\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\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 // 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 ): 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, excludedDoctypes } = extractHybridFilters(params)\r\n\r\n // The upstream Hybrid Search API does not support pagination or doctype\r\n // filtering, so we always fetch a large slice once per (query, locale)\r\n // pair and paginate / doctype-filter client-side.\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 cachedHits = getCached(cacheKey)\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let allHits: any[]\r\n if (cachedHits) {\r\n allHits = cachedHits\r\n } else {\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 allHits = rawResults.map(transformHybridToAlgolia)\r\n setCached(cacheKey, allHits)\r\n }\r\n\r\n // Doctype filter is applied client-side because the upstream API\r\n // does not understand it. Excluded doctypes (e.g. `NOT doctype:\"...\"`)\r\n // are removed first; an optional positive doctype selection narrows further.\r\n // Facet counts are computed on searchable hits (after exclusions, before\r\n // the positive doctype filter) so tab counts stay consistent.\r\n const searchableHits = excludeHitsByDoctype(allHits, excludedDoctypes)\r\n const filteredHits = filterHitsByDoctype(searchableHits, doctypes)\r\n const nbHits = filteredHits.length\r\n const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage))\r\n const start = page * hitsPerPage\r\n const pageHits = filteredHits.slice(start, start + hitsPerPage)\r\n\r\n const facets = extractFacetsFromHits(searchableHits)\r\n\r\n return {\r\n results: [\r\n {\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: facets.facets,\r\n facets_stats: {},\r\n exhaustiveFacetsCount: true,\r\n queryID: generateQueryID(),\r\n },\r\n ],\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\" AND NOT doctype:\"known-issues\"`),\r\n * 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\n * `NOT doctype:\"...\"` clauses are parsed as exclusions (e.g. sections flagged\r\n * `excludeFromSearch` in the consuming app). Positive `doctype:\"...\"` clauses\r\n * narrow results to a selected tab.\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[]; excludedDoctypes: string[] } {\r\n let locale = ''\r\n const doctypes: string[] = []\r\n const excludedDoctypes: 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 const pushExcludedDoctype = (raw: string) => {\r\n const value = raw.replace(/^\"|\"$/g, '').trim()\r\n if (value && !excludedDoctypes.includes(value)) {\r\n excludedDoctypes.push(value)\r\n }\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 excludedRegex = /NOT\\s+doctype\\s*:\\s*(?:\"([^\"]+)\"|([^\\s)]+))/gi\r\n let excludedMatch: RegExpExecArray | null\r\n while ((excludedMatch = excludedRegex.exec(filtersStr)) !== null) {\r\n pushExcludedDoctype(excludedMatch[1] || excludedMatch[2] || '')\r\n }\r\n\r\n // Strip exclusion clauses before parsing positive doctype selections.\r\n const positiveFiltersStr = filtersStr.replace(\r\n /NOT\\s+doctype\\s*:\\s*(?:\"[^\"]+\"|[^\\s)]+)/gi,\r\n ''\r\n )\r\n const doctypeRegex = /doctype\\s*:\\s*(?:\"([^\"]+)\"|([^\\s)]+))/gi\r\n let m: RegExpExecArray | null\r\n while ((m = doctypeRegex.exec(positiveFiltersStr)) !== 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, excludedDoctypes }\r\n}\r\n\r\nfunction excludeHitsByDoctype(\r\n hits: T[],\r\n excludedDoctypes: string[]\r\n): T[] {\r\n if (!excludedDoctypes.length) return hits\r\n const excluded = new Set(excludedDoctypes.map((d) => d.toLowerCase()))\r\n return hits.filter(\r\n (h) => !excluded.has(String(h.doctype || '').toLowerCase())\r\n )\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) =>\r\n wanted.has(String(h.doctype || '').toLowerCase())\r\n )\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\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction extractFacetsFromHits(\r\n hits: any[]\r\n): { facets: Record> } {\r\n const facets: Record> = {\r\n doctype: {},\r\n language: {},\r\n }\r\n\r\n hits.forEach((hit) => {\r\n const doctype = hit.doctype || 'Other'\r\n facets.doctype[doctype] = (facets.doctype[doctype] || 0) + 1\r\n\r\n const language = hit.language || 'en'\r\n facets.language[language] = (facets.language[language] || 0) + 1\r\n })\r\n\r\n return { facets }\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(config: SearchBackendConfig | AlgoliaConfig) {\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 && !item.excludeFromSearch)\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\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 return !dataElement ? (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results' }\r\n \r\n \r\n {ocurrenceCount['']}\r\n \r\n \r\n ) : (\r\n updateFilter(dataElement.id)}\r\n >\r\n \r\n \r\n \r\n {dataElement.title}\r\n \r\n \r\n \r\n {ocurrenceCount[dataElement.id] || 0}\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: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\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: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n fontSize: '12px',\r\n lineHeight: '16px',\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\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, 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 { searchClient, searchIndex, hitsPerPage } from 'utils/config/search-config'\r\n\r\nconst SearchResults = () => {\r\n const router = useRouter()\r\n const { filterSelectedSection, ocurrenceCount } = useContext(SearchContext)\r\n const { locale, sidebarSections } = useContext(LibraryContext)\r\n const excludedDoctypesFilter = sidebarSections\r\n .flat()\r\n .filter((section) => section.excludeFromSearch)\r\n .map((section) => `NOT doctype:\"${section.id}\"`)\r\n .join(' AND ')\r\n const filters = [\r\n `language:${locale}`,\r\n filterSelectedSection ? `doctype:\"${filterSelectedSection}\"` : '',\r\n excludedDoctypesFilter,\r\n ]\r\n .filter(Boolean)\r\n .join(' AND ')\r\n const [prevFilter, setPrevFilter] = useState('')\r\n const [searchState, setSearchState] = useState({})\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const page = filters !== prevFilter ? 1 : currentState.page || 1\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 ocurrenceCount[filterSelectedSection] === undefined\r\n ? ''\r\n : 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 stateFilters =\r\n typeof results?._state.filters === 'string'\r\n ? results._state.filters\r\n : ''\r\n // Ignore the always-present `NOT doctype:\"...\"` exclusion clauses so we\r\n // only detect a positive doctype selection made by the user.\r\n const positiveFilters = stateFilters.replace(/NOT doctype:\"[^\"]*\"/g, '')\r\n const isFilteringByDoctype = positiveFilters.includes('doctype:\"')\r\n\r\n const facets = results?.facets as\r\n | Array<{\r\n name: string\r\n data: Record\r\n exhaustive?: boolean\r\n }>\r\n | undefined\r\n\r\n const doctypeFacet = facets?.find((facet) => facet.name === 'doctype')\r\n const nbHits = results?.nbHits ?? 0\r\n\r\n const formattedFacets: Record = {}\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\r\n formattedFacets[''] = nbHits\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) 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}\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\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 return (\r\n changeFilterSelectedSection(filter)}\r\n data-testid=\"doctype-filter-tab\"\r\n data-filter={filter}\r\n data-active={String(filterSelectedSection === filter)}\r\n >\r\n \r\n {filter || messages[locale]['search_results.all'] || 'All results'}\r\n \r\n \r\n {ocurrenceCount[filter] || 0}\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\r\n .flat()\r\n .filter((section) => !section.excludeFromSearch)\r\n .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) => SxStyleProp = (active) => ({\r\n pt: '8px',\r\n pb: '14px',\r\n px: '24px',\r\n cursor: '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})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '16.38px',\r\n whiteSpace: 'nowrap',\r\n color: `#${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","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 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 { 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 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","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","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","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","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","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","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","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","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","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","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","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/utils/config/search-config.ts b/src/utils/config/search-config.ts index 4a0e161..20408c4 100644 --- a/src/utils/config/search-config.ts +++ b/src/utils/config/search-config.ts @@ -161,7 +161,7 @@ const createHybridClient = (config: HybridSearchConfig) => { const hitsPerPage = params.hitsPerPage || pageSize const page = params.page || 0 - const { locale, doctypes } = extractHybridFilters(params) + const { locale, doctypes, excludedDoctypes } = extractHybridFilters(params) // The upstream Hybrid Search API does not support pagination or doctype // filtering, so we always fetch a large slice once per (query, locale) @@ -200,16 +200,18 @@ const createHybridClient = (config: HybridSearchConfig) => { } // Doctype filter is applied client-side because the upstream API - // does not understand it. Facet counts are computed on `allHits` - // (i.e. ignoring the doctype filter) so that the tabs keep showing - // counts for the other doctypes. - const filteredHits = filterHitsByDoctype(allHits, doctypes) + // does not understand it. Excluded doctypes (e.g. `NOT doctype:"..."`) + // are removed first; an optional positive doctype selection narrows further. + // Facet counts are computed on searchable hits (after exclusions, before + // the positive doctype filter) so tab counts stay consistent. + const searchableHits = excludeHitsByDoctype(allHits, excludedDoctypes) + const filteredHits = filterHitsByDoctype(searchableHits, doctypes) const nbHits = filteredHits.length const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage)) const start = page * hitsPerPage const pageHits = filteredHits.slice(start, start + hitsPerPage) - const facets = extractFacetsFromHits(allHits) + const facets = extractFacetsFromHits(searchableHits) return { results: [ @@ -264,31 +266,55 @@ function clampUpstreamLimit(raw: number): number { * * Two filter shapes need to be supported: * 1. `Configure.filters` (a single string like - * `language:en AND doctype:"tutorials"`), used by the full Search page. + * `language:en AND doctype:"tutorials" AND NOT doctype:"known-issues"`), + * used by the full Search page. * 2. `Configure.facetFilters` (an array like `['language:en']`), used by * the SearchInput dropdown in the header. + * + * `NOT doctype:"..."` clauses are parsed as exclusions (e.g. sections flagged + * `excludeFromSearch` in the consuming app). Positive `doctype:"..."` clauses + * narrow results to a selected tab. */ function extractHybridFilters( // eslint-disable-next-line @typescript-eslint/no-explicit-any params: any -): { locale: string; doctypes: string[] } { +): { locale: string; doctypes: string[]; excludedDoctypes: string[] } { let locale = '' const doctypes: string[] = [] + const excludedDoctypes: string[] = [] const pushDoctype = (raw: string) => { const value = raw.replace(/^"|"$/g, '').trim() if (value && !doctypes.includes(value)) doctypes.push(value) } + const pushExcludedDoctype = (raw: string) => { + const value = raw.replace(/^"|"$/g, '').trim() + if (value && !excludedDoctypes.includes(value)) { + excludedDoctypes.push(value) + } + } + // 1) Configure.filters as a string expression const filtersStr = typeof params?.filters === 'string' ? params.filters : '' if (filtersStr) { const langMatch = filtersStr.match(/language\s*:\s*([\w-]+)/i) if (langMatch) locale = langMatch[1] + const excludedRegex = /NOT\s+doctype\s*:\s*(?:"([^"]+)"|([^\s)]+))/gi + let excludedMatch: RegExpExecArray | null + while ((excludedMatch = excludedRegex.exec(filtersStr)) !== null) { + pushExcludedDoctype(excludedMatch[1] || excludedMatch[2] || '') + } + + // Strip exclusion clauses before parsing positive doctype selections. + const positiveFiltersStr = filtersStr.replace( + /NOT\s+doctype\s*:\s*(?:"[^"]+"|[^\s)]+)/gi, + '' + ) const doctypeRegex = /doctype\s*:\s*(?:"([^"]+)"|([^\s)]+))/gi let m: RegExpExecArray | null - while ((m = doctypeRegex.exec(filtersStr)) !== null) { + while ((m = doctypeRegex.exec(positiveFiltersStr)) !== null) { pushDoctype(m[1] || m[2] || '') } } @@ -308,7 +334,18 @@ function extractHybridFilters( } visit(facetFilters) - return { locale, doctypes } + return { locale, doctypes, excludedDoctypes } +} + +function excludeHitsByDoctype( + hits: T[], + excludedDoctypes: string[] +): T[] { + if (!excludedDoctypes.length) return hits + const excluded = new Set(excludedDoctypes.map((d) => d.toLowerCase())) + return hits.filter( + (h) => !excluded.has(String(h.doctype || '').toLowerCase()) + ) } function filterHitsByDoctype( From 616c06d0e06b863709052d511b6ae52d41df062c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A1rbara=20Celi?= Date: Tue, 8 Sep 2026 16:58:22 -0300 Subject: [PATCH 23/23] Merge branch 'main' into EDU-18458-ki-search --- .gitignore | 2 + .storybook/main.ts | 99 +- .storybook/mdx-example.md | 20 + .storybook/mocks/next-head.tsx | 5 + .storybook/mocks/next-image.tsx | 41 + .storybook/mocks/next-link.tsx | 55 + .storybook/mocks/next-router.ts | 89 + .storybook/preview.ts | 18 +- CHANGELOG.md | 150 + dist/index.css | 41 +- dist/index.css.map | 2 +- dist/index.d.mts | 531 +- dist/index.mjs | 17031 ++++++++++++---- dist/index.mjs.map | 2 +- dist/remark.d.mts | 13 + dist/remark.mjs | 94 + dist/remark.mjs.map | 1 + package-lock.json | 4 +- package.json | 32 +- remark.d.ts | 5 + .../AnnouncementBar.stories.tsx | 48 + src/components/announcement-bar/index.tsx | 95 + src/components/announcement-bar/styles.ts | 78 + .../ArticlePagination.stories.tsx | 111 + src/components/article-pagination/index.tsx | 85 + src/components/article-pagination/styles.ts | 105 + .../article-render/ArticleRender.stories.tsx | 174 + src/components/article-render/index.tsx | 274 + src/components/article-render/styles.ts | 328 + src/components/ask-ai/AskAIMenu.stories.tsx | 34 + src/components/ask-ai/index.tsx | 243 + src/components/ask-ai/styles.ts | 101 + .../ask-assistant/AskAssistant.stories.tsx | 309 + .../ask-assistant/default-examples.tsx | 49 + src/components/ask-assistant/history.ts | 92 + src/components/ask-assistant/index.tsx | 1019 + src/components/ask-assistant/markdown.tsx | 230 + src/components/ask-assistant/sources.tsx | 124 + src/components/ask-assistant/stream.ts | 84 + src/components/ask-assistant/styles.ts | 1015 + src/components/ask-assistant/types.ts | 84 + src/components/author/Author.stories.tsx | 54 + src/components/author/index.tsx | 27 + src/components/author/styles.ts | 22 + .../breadcrumb/Breadcrumb.stories.tsx | 71 + src/components/breadcrumb/index.tsx | 43 + src/components/breadcrumb/styles.ts | 57 + .../chip-filter/ChipFilter.stories.tsx | 99 + src/components/chip-filter/index.tsx | 168 + src/components/chip-filter/styles.ts | 158 + src/components/code-block/index.tsx | 4 +- .../copy-button/CopyButton.stories.tsx | 71 + .../{copy-code => copy-button}/index.tsx | 116 +- .../{copy-code => copy-button}/styles.ts | 136 +- .../CopyHeadingLink.stories.tsx | 80 + src/components/copy-heading-link/index.tsx | 90 + src/components/copy-heading-link/styles.ts | 44 + .../CopyLinkButton.stories.tsx | 3 - src/components/date-text/DateText.stories.tsx | 71 + src/components/date-text/index.tsx | 51 + src/components/date-text/styles.ts | 31 + .../documentation-card/functions.ts | 180 +- src/components/documentation-card/index.tsx | 56 +- src/components/documentation-card/styles.ts | 25 + .../feedback-modal/FeedbackModal.stories.tsx | 87 + src/components/feedback-modal/functions.ts | 65 - src/components/feedback-modal/index.tsx | 397 +- src/components/feedback-modal/modal.tsx | 95 + src/components/feedback-modal/styles.ts | 373 +- .../FeedbackSection.stories.tsx | 94 + .../feedback-section/index.tsx | 69 +- .../feedback-section/styles.ts | 27 +- src/components/footer/Footer.stories.tsx | 78 + src/components/footer/index.tsx | 135 + src/components/footer/styles.ts | 94 + src/components/header/Header.stories.tsx | 151 + src/components/header/dropdown-menu.styles.ts | 69 + src/components/header/dropdown-menu.tsx | 51 + src/components/header/index.tsx | 220 + src/components/header/styles.ts | 220 + src/components/icons/book-icon.tsx | 28 + src/components/icons/check-icon.tsx | 21 + src/components/icons/collapse-icon.tsx | 42 + src/components/icons/comment-icon.tsx | 21 + src/components/icons/expand-icon.tsx | 42 + src/components/icons/external-link-icon.tsx | 35 + src/components/icons/history-icon.tsx | 34 + src/components/icons/index.ts | 12 + src/components/icons/markdown-icon.tsx | 27 + src/components/icons/new-chat-icon.tsx | 28 + src/components/icons/refresh-icon.tsx | 28 + src/components/icons/send-icon.tsx | 28 + src/components/icons/sparkle-icon.tsx | 32 + src/components/input/Input.stories.tsx | 57 + .../InsertAccountName.stories.tsx | 55 + src/components/insert-account-name/index.tsx | 84 + src/components/insert-account-name/styles.ts | 66 + .../listing-filter/ListingFilter.stories.tsx | 83 + src/components/listing-filter/index.tsx | 226 + src/components/listing-filter/normalize.ts | 40 + src/components/listing-filter/styles.ts | 184 + src/components/listing-filter/types.ts | 21 + src/components/method-category/functions.ts | 12 +- src/components/method-category/index.tsx | 7 +- src/components/method-category/styles.ts | 25 +- .../mobile-search/MobileSearch.stories.tsx | 36 + src/components/mobile-search/index.tsx | 96 + src/components/mobile-search/styles.ts | 61 + src/components/search-card/index.tsx | 222 +- src/components/search-card/styles.ts | 198 +- .../search-filter-tab-bar/index.tsx | 88 +- .../search-filter-tab-bar/styles.ts | 64 +- .../search-input/SearchInput.stories.tsx | 26 +- .../search-input/customHighlight.tsx | 204 +- src/components/search-input/index.tsx | 51 +- src/components/search-input/results-box.tsx | 432 +- src/components/search-input/search-box.tsx | 119 +- src/components/search-input/styles.ts | 563 +- src/components/search-input/types.ts | 1 + src/components/search-results/index.tsx | 47 +- .../search-results/infiniteHits.tsx | 114 +- src/components/search-results/styles.ts | 45 +- src/components/search-section/index.tsx | 75 +- src/components/search-section/styles.ts | 49 +- src/components/search-sections/styles.ts | 2 +- .../SeeAlsoSection.stories.tsx | 100 + src/components/see-also-section/functions.ts | 147 + src/components/see-also-section/index.tsx | 56 + src/components/see-also-section/styles.ts | 45 + .../share-button/ShareButton.stories.tsx | 29 + src/components/sidebar-elements/functions.tsx | 69 +- src/components/sidebar-elements/index.tsx | 177 +- src/components/sidebar-elements/styles.ts | 119 +- .../sidebar-section-filter/index.tsx | 13 +- .../sidebar-section-filter/styles.ts | 62 +- src/components/sidebar-section/index.tsx | 313 +- src/components/sidebar-section/styles.ts | 119 +- .../SubscriptionList.stories.tsx | 56 + src/components/subscription-list/index.tsx | 205 + src/components/subscription-list/styles.ts | 124 + .../suggest-edits/SuggestEdits.stories.tsx | 68 + src/components/suggest-edits/index.tsx | 40 + src/components/suggest-edits/styles.ts | 22 + src/components/tag/Tag.stories.tsx | 88 + src/components/tag/index.tsx | 37 + src/components/tag/styles.ts | 90 + .../time-to-read/TimeToRead.stories.tsx | 61 + src/components/time-to-read/index.tsx | 24 + src/components/time-to-read/styles.ts | 11 + src/components/tooltip/index.tsx | 23 +- src/components/tooltip/styles.ts | 7 + .../TroubleshootingCard.stories.tsx | 54 + src/components/troubleshooting-card/index.tsx | 137 + src/components/troubleshooting-card/styles.ts | 126 + .../whats-next-card/WhatsNextCard.stories.tsx | 40 + src/components/whats-next-card/index.tsx | 4 +- src/components/whats-next-card/styles.ts | 16 +- src/index.ts | 103 +- src/lib/contributors/Contributors.stories.tsx | 106 + src/lib/contributors/Contributors.tsx | 106 + src/lib/contributors/Contributors.types.ts | 11 + src/lib/contributors/index.ts | 2 + src/lib/contributors/styles.ts | 86 + src/lib/cookie-bar/CookieBar.stories.tsx | 39 +- .../FeedbackSection.stories.tsx | 24 - src/lib/feedback-section/functions.ts | 17 - .../hamburger-menu/HamburgerMenu.stories.tsx | 109 +- src/lib/hamburger-menu/index.tsx | 195 +- src/lib/hamburger-menu/styles.ts | 184 +- src/lib/index.ts | 109 +- src/lib/markdown-renderer/Callout.stories.tsx | 51 + .../MarkdownRenderer.stories.tsx | 13 +- .../markdown-renderer/MarkdownRenderer.tsx | 4 +- src/lib/markdown-renderer/components.tsx | 73 +- src/lib/markdown-renderer/styles.module.css | 51 +- src/lib/on-this-page/OnThisPage.stories.tsx | 107 + src/lib/on-this-page/OnThisPage.tsx | 47 + src/lib/on-this-page/OnThisPage.types.ts | 6 + src/lib/on-this-page/index.ts | 2 + src/lib/on-this-page/styles.ts | 71 + src/lib/search/Search.stories.tsx | 19 +- src/lib/search/index.tsx | 10 +- src/lib/search/styles.ts | 8 +- src/lib/sidebar/Sidebar.stories.tsx | 212 +- .../fixtures/developers-navigation.json | 1 + src/lib/sidebar/fixtures/help-navigation.json | 1 + src/lib/sidebar/fixtures/navigation-data.js | 8 + src/lib/sidebar/index.tsx | 246 +- src/lib/sidebar/styles.ts | 20 + .../TableOfContents.stories.tsx | 126 +- src/lib/table-of-contents/TableOfContents.tsx | 87 +- src/messages/en.json | 112 +- src/messages/es.json | 112 +- src/messages/pt.json | 114 +- src/remark/blockquote.ts | 69 + src/remark/index.ts | 3 + src/remark/mermaid.ts | 35 + src/remark/reading-time.ts | 15 + src/utils/config/search-config.ts | 387 +- src/utils/context/libraryContext.tsx | 177 +- src/utils/context/search.tsx | 2 +- src/utils/get-url.tsx | 38 +- src/utils/navigation-utils.ts | 61 +- src/utils/search-utils.ts | 144 +- src/utils/sidebar-utils.ts | 107 +- src/utils/storybook-constants.tsx | 670 +- src/utils/storybook-mdx.tsx | 3 + src/utils/string-utils.ts | 16 +- .../troubleshooting/collectFilterOptions.ts | 18 + src/utils/troubleshooting/filterItems.ts | 41 + src/utils/troubleshooting/types.ts | 14 + src/utils/typings/messages-types.ts | 116 +- src/utils/typings/virtual-storybook-mdx.d.ts | 6 + tsconfig.json | 2 +- tsup.config.ts | 6 +- yarn.lock | 3005 +-- 216 files changed, 32745 insertions(+), 7794 deletions(-) create mode 100644 .storybook/mdx-example.md create mode 100644 .storybook/mocks/next-head.tsx create mode 100644 .storybook/mocks/next-image.tsx create mode 100644 .storybook/mocks/next-link.tsx create mode 100644 .storybook/mocks/next-router.ts create mode 100644 dist/remark.d.mts create mode 100644 dist/remark.mjs create mode 100644 dist/remark.mjs.map create mode 100644 remark.d.ts create mode 100644 src/components/announcement-bar/AnnouncementBar.stories.tsx create mode 100644 src/components/announcement-bar/index.tsx create mode 100644 src/components/announcement-bar/styles.ts create mode 100644 src/components/article-pagination/ArticlePagination.stories.tsx create mode 100644 src/components/article-pagination/index.tsx create mode 100644 src/components/article-pagination/styles.ts create mode 100644 src/components/article-render/ArticleRender.stories.tsx create mode 100644 src/components/article-render/index.tsx create mode 100644 src/components/article-render/styles.ts create mode 100644 src/components/ask-ai/AskAIMenu.stories.tsx create mode 100644 src/components/ask-ai/index.tsx create mode 100644 src/components/ask-ai/styles.ts create mode 100644 src/components/ask-assistant/AskAssistant.stories.tsx create mode 100644 src/components/ask-assistant/default-examples.tsx create mode 100644 src/components/ask-assistant/history.ts create mode 100644 src/components/ask-assistant/index.tsx create mode 100644 src/components/ask-assistant/markdown.tsx create mode 100644 src/components/ask-assistant/sources.tsx create mode 100644 src/components/ask-assistant/stream.ts create mode 100644 src/components/ask-assistant/styles.ts create mode 100644 src/components/ask-assistant/types.ts create mode 100644 src/components/author/Author.stories.tsx create mode 100644 src/components/author/index.tsx create mode 100644 src/components/author/styles.ts create mode 100644 src/components/breadcrumb/Breadcrumb.stories.tsx create mode 100644 src/components/breadcrumb/index.tsx create mode 100644 src/components/breadcrumb/styles.ts create mode 100644 src/components/chip-filter/ChipFilter.stories.tsx create mode 100644 src/components/chip-filter/index.tsx create mode 100644 src/components/chip-filter/styles.ts create mode 100644 src/components/copy-button/CopyButton.stories.tsx rename src/components/{copy-code => copy-button}/index.tsx (89%) rename src/components/{copy-code => copy-button}/styles.ts (95%) create mode 100644 src/components/copy-heading-link/CopyHeadingLink.stories.tsx create mode 100644 src/components/copy-heading-link/index.tsx create mode 100644 src/components/copy-heading-link/styles.ts create mode 100644 src/components/date-text/DateText.stories.tsx create mode 100644 src/components/date-text/index.tsx create mode 100644 src/components/date-text/styles.ts create mode 100644 src/components/feedback-modal/FeedbackModal.stories.tsx delete mode 100644 src/components/feedback-modal/functions.ts create mode 100644 src/components/feedback-modal/modal.tsx create mode 100644 src/components/feedback-section/FeedbackSection.stories.tsx rename src/{lib => components}/feedback-section/index.tsx (68%) rename src/{lib => components}/feedback-section/styles.ts (77%) create mode 100644 src/components/footer/Footer.stories.tsx create mode 100644 src/components/footer/index.tsx create mode 100644 src/components/footer/styles.ts create mode 100644 src/components/header/Header.stories.tsx create mode 100644 src/components/header/dropdown-menu.styles.ts create mode 100644 src/components/header/dropdown-menu.tsx create mode 100644 src/components/header/index.tsx create mode 100644 src/components/header/styles.ts create mode 100644 src/components/icons/book-icon.tsx create mode 100644 src/components/icons/check-icon.tsx create mode 100644 src/components/icons/collapse-icon.tsx create mode 100644 src/components/icons/comment-icon.tsx create mode 100644 src/components/icons/expand-icon.tsx create mode 100644 src/components/icons/external-link-icon.tsx create mode 100644 src/components/icons/history-icon.tsx create mode 100644 src/components/icons/markdown-icon.tsx create mode 100644 src/components/icons/new-chat-icon.tsx create mode 100644 src/components/icons/refresh-icon.tsx create mode 100644 src/components/icons/send-icon.tsx create mode 100644 src/components/icons/sparkle-icon.tsx create mode 100644 src/components/input/Input.stories.tsx create mode 100644 src/components/insert-account-name/InsertAccountName.stories.tsx create mode 100644 src/components/insert-account-name/index.tsx create mode 100644 src/components/insert-account-name/styles.ts create mode 100644 src/components/listing-filter/ListingFilter.stories.tsx create mode 100644 src/components/listing-filter/index.tsx create mode 100644 src/components/listing-filter/normalize.ts create mode 100644 src/components/listing-filter/styles.ts create mode 100644 src/components/listing-filter/types.ts create mode 100644 src/components/mobile-search/MobileSearch.stories.tsx create mode 100644 src/components/mobile-search/index.tsx create mode 100644 src/components/mobile-search/styles.ts create mode 100644 src/components/search-input/types.ts create mode 100644 src/components/see-also-section/SeeAlsoSection.stories.tsx create mode 100644 src/components/see-also-section/functions.ts create mode 100644 src/components/see-also-section/index.tsx create mode 100644 src/components/see-also-section/styles.ts create mode 100644 src/components/share-button/ShareButton.stories.tsx create mode 100644 src/components/subscription-list/SubscriptionList.stories.tsx create mode 100644 src/components/subscription-list/index.tsx create mode 100644 src/components/subscription-list/styles.ts create mode 100644 src/components/suggest-edits/SuggestEdits.stories.tsx create mode 100644 src/components/suggest-edits/index.tsx create mode 100644 src/components/suggest-edits/styles.ts create mode 100644 src/components/tag/Tag.stories.tsx create mode 100644 src/components/tag/index.tsx create mode 100644 src/components/tag/styles.ts create mode 100644 src/components/time-to-read/TimeToRead.stories.tsx create mode 100644 src/components/time-to-read/index.tsx create mode 100644 src/components/time-to-read/styles.ts create mode 100644 src/components/troubleshooting-card/TroubleshootingCard.stories.tsx create mode 100644 src/components/troubleshooting-card/index.tsx create mode 100644 src/components/troubleshooting-card/styles.ts create mode 100644 src/components/whats-next-card/WhatsNextCard.stories.tsx create mode 100644 src/lib/contributors/Contributors.stories.tsx create mode 100644 src/lib/contributors/Contributors.tsx create mode 100644 src/lib/contributors/Contributors.types.ts create mode 100644 src/lib/contributors/index.ts create mode 100644 src/lib/contributors/styles.ts delete mode 100644 src/lib/feedback-section/FeedbackSection.stories.tsx delete mode 100644 src/lib/feedback-section/functions.ts create mode 100644 src/lib/markdown-renderer/Callout.stories.tsx create mode 100644 src/lib/on-this-page/OnThisPage.stories.tsx create mode 100644 src/lib/on-this-page/OnThisPage.tsx create mode 100644 src/lib/on-this-page/OnThisPage.types.ts create mode 100644 src/lib/on-this-page/index.ts create mode 100644 src/lib/on-this-page/styles.ts create mode 100644 src/lib/sidebar/fixtures/developers-navigation.json create mode 100644 src/lib/sidebar/fixtures/help-navigation.json create mode 100644 src/lib/sidebar/fixtures/navigation-data.js create mode 100644 src/remark/blockquote.ts create mode 100644 src/remark/index.ts create mode 100644 src/remark/mermaid.ts create mode 100644 src/remark/reading-time.ts create mode 100644 src/utils/storybook-mdx.tsx create mode 100644 src/utils/troubleshooting/collectFilterOptions.ts create mode 100644 src/utils/troubleshooting/filterItems.ts create mode 100644 src/utils/troubleshooting/types.ts create mode 100644 src/utils/typings/virtual-storybook-mdx.d.ts diff --git a/.gitignore b/.gitignore index 745dd12..f246f36 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ storybook-static .env .env.local github.pem + +temp/ \ No newline at end of file diff --git a/.storybook/main.ts b/.storybook/main.ts index 96f92e2..5d3ea53 100644 --- a/.storybook/main.ts +++ b/.storybook/main.ts @@ -1,28 +1,101 @@ -import type { StorybookConfig } from '@storybook/nextjs' -const path = require('path'); +import type { StorybookConfig } from '@storybook/react-vite' +import fs from 'fs' +import path from 'path' +import { mergeConfig, type Plugin } from 'vite' + +const srcPath = path.resolve(__dirname, '../src') +const mocksPath = path.resolve(__dirname, 'mocks') +const mdxExamplePath = path.resolve(__dirname, 'mdx-example.md') + +const VIRTUAL_MDX_ID = 'virtual:storybook-mdx' +const RESOLVED_VIRTUAL_MDX_ID = `\0${VIRTUAL_MDX_ID}` + +// `next-mdx-remote` picks the JSX runtime from NODE_ENV when it evaluates the +// compiled source: `jsx-dev-runtime` only exposes `jsxDEV`, while +// `jsx-runtime` exposes `jsx`/`jsxs`. Compiling for the other mode makes the +// generated code destructure a function that isn't there. +const nodeEnv = process.env.NODE_ENV || 'development' + +// `next-mdx-remote/serialize` runs the whole MDX compiler and only works in +// Node, so the example content is serialized here and shipped to the browser +// as plain data. +const serializedMdxPlugin = (): Plugin => ({ + name: 'storybook-serialized-mdx', + resolveId: (id) => (id === VIRTUAL_MDX_ID ? RESOLVED_VIRTUAL_MDX_ID : null), + load: async (id) => { + if (id !== RESOLVED_VIRTUAL_MDX_ID) return null + + const { serialize } = await import('next-mdx-remote/serialize') + const serialized = await serialize(fs.readFileSync(mdxExamplePath, 'utf8'), { + mdxOptions: { development: nodeEnv === 'development' }, + }) + + return `export default ${JSON.stringify(serialized)}` + }, + handleHotUpdate: ({ file, server }) => { + if (file !== mdxExamplePath) return + + const mod = server.moduleGraph.getModuleById(RESOLVED_VIRTUAL_MDX_ID) + + if (mod) server.moduleGraph.invalidateModule(mod) + }, +}) const config: StorybookConfig = { - stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'], + stories: ['../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'], addons: [ '@storybook/addon-links', '@storybook/addon-essentials', - '@storybook/addon-onboarding', '@storybook/addon-interactions', ], framework: { - name: '@storybook/nextjs', + name: '@storybook/react-vite', options: {}, }, docs: { autodocs: 'tag', }, - webpackFinal: async (config, { configType }) => { - if (config.resolve) - config.resolve.modules = [ - path.resolve(__dirname, "..", "src"), - "node_modules", - ] - return config; - } + typescript: { + reactDocgen: 'react-docgen', + }, + env: (config) => ({ + ...config, + NEXT_PUBLIC_ALGOLIA_APP_ID: process.env.NEXT_PUBLIC_ALGOLIA_APP_ID || '', + NEXT_PUBLIC_ALGOLIA_SEARCH_KEY: + process.env.NEXT_PUBLIC_ALGOLIA_SEARCH_KEY || '', + NEXT_PUBLIC_INDEX: process.env.NEXT_PUBLIC_INDEX || 'devportal-docs', + }), + viteFinal: async (config) => + mergeConfig(config, { + plugins: [serializedMdxPlugin()], + define: { + 'process.env': JSON.stringify({ + NODE_ENV: nodeEnv, + NEXT_PUBLIC_ALGOLIA_APP_ID: + process.env.NEXT_PUBLIC_ALGOLIA_APP_ID || '', + NEXT_PUBLIC_ALGOLIA_SEARCH_KEY: + process.env.NEXT_PUBLIC_ALGOLIA_SEARCH_KEY || '', + NEXT_PUBLIC_INDEX: process.env.NEXT_PUBLIC_INDEX || 'devportal-docs', + NEXT_PUBLIC_NEWSLETTER_API_KEY: + process.env.NEXT_PUBLIC_NEWSLETTER_API_KEY || '', + }), + }, + resolve: { + alias: { + components: path.join(srcPath, 'components'), + utils: path.join(srcPath, 'utils'), + lib: path.join(srcPath, 'lib'), + 'next/image.js': path.join(mocksPath, 'next-image.tsx'), + 'next/link.js': path.join(mocksPath, 'next-link.tsx'), + 'next/router.js': path.join(mocksPath, 'next-router.ts'), + 'next/head.js': path.join(mocksPath, 'next-head.tsx'), + 'next/image': path.join(mocksPath, 'next-image.tsx'), + 'next/link': path.join(mocksPath, 'next-link.tsx'), + 'next/router': path.join(mocksPath, 'next-router.ts'), + 'next/head': path.join(mocksPath, 'next-head.tsx'), + }, + }, + }), } + export default config diff --git a/.storybook/mdx-example.md b/.storybook/mdx-example.md new file mode 100644 index 0000000..63b1fed --- /dev/null +++ b/.storybook/mdx-example.md @@ -0,0 +1,20 @@ +# Clients + +Systems are meant to solve real problems by communicating to the needed services. A delivery app, for example, solves the issue of the desire to eat by communicating with a local restaurant service. + +On VTEX IO architecture, the communication made by a system to request a service is so crucial that a whole concept was built for it: **Clients**. + +In other words, Clients are configurations to be set up in a given system to **abstract its communications to the needed services**. + +When building software, you can tackle complexities by setting up clients and then optimizing your code. Some standard clients are already into the VTEX IO. Check them [here](https://github.com/vtex/node-vtex-api/blob/ccf4d8f8d3208007c4bfd558baf979df8d825af8/src/clients/IOClients.ts). + +These are some of the features built-in our clients infrastructure: + +- Cache; +- Native metrics support; +- Retry and timeout options; +- Billing tracking. + +![Clients on IO Services](https://imgur.com/i45O8MN.png) + +Learn how to create Clients of your own by accessing [Managing Clients](https://developers.vtex.com/vtex-developer-docs/docs/vtex-io-documentation-how-to-create-and-use-clients) documentation. diff --git a/.storybook/mocks/next-head.tsx b/.storybook/mocks/next-head.tsx new file mode 100644 index 0000000..7faa59b --- /dev/null +++ b/.storybook/mocks/next-head.tsx @@ -0,0 +1,5 @@ +import type { ReactNode } from 'react' + +const Head = (_props: { children?: ReactNode }) => null + +export default Head diff --git a/.storybook/mocks/next-image.tsx b/.storybook/mocks/next-image.tsx new file mode 100644 index 0000000..2479a4e --- /dev/null +++ b/.storybook/mocks/next-image.tsx @@ -0,0 +1,41 @@ +import type { ImgHTMLAttributes } from 'react' + +type NextImageProps = ImgHTMLAttributes & { + src: string | { src: string } + alt: string + fill?: boolean + priority?: boolean + quality?: number + sizes?: string + unoptimized?: boolean +} + +const Image = ({ + src, + alt, + fill, + width, + height, + priority: _priority, + quality: _quality, + sizes: _sizes, + unoptimized: _unoptimized, + style, + ...rest +}: NextImageProps) => { + const imgSrc = typeof src === 'string' ? src : src.src + const isFluid = fill || width === 0 || height === 0 + + return ( + {alt} + ) +} + +export default Image diff --git a/.storybook/mocks/next-link.tsx b/.storybook/mocks/next-link.tsx new file mode 100644 index 0000000..729e521 --- /dev/null +++ b/.storybook/mocks/next-link.tsx @@ -0,0 +1,55 @@ +import { + Children, + cloneElement, + isValidElement, + type AnchorHTMLAttributes, + type ReactElement, + type ReactNode, +} from 'react' + +type Href = string | { pathname?: string; query?: Record } + +type NextLinkProps = Omit, 'href'> & { + href: Href + locale?: string + passHref?: boolean + legacyBehavior?: boolean + replace?: boolean + scroll?: boolean + shallow?: boolean + prefetch?: boolean + children?: ReactNode +} + +const toUrl = (href: Href) => { + if (typeof href === 'string') return href + return href.pathname ?? '#' +} + +const Link = ({ + href, + children, + locale: _locale, + passHref: _passHref, + legacyBehavior, + replace: _replace, + scroll: _scroll, + shallow: _shallow, + prefetch: _prefetch, + ...rest +}: NextLinkProps) => { + const url = toUrl(href) + + if (legacyBehavior && isValidElement(children)) { + const child = Children.only(children) as ReactElement<{ href?: string }> + return cloneElement(child, { href: child.props.href ?? url }) + } + + return ( + + {children} + + ) +} + +export default Link diff --git a/.storybook/mocks/next-router.ts b/.storybook/mocks/next-router.ts new file mode 100644 index 0000000..8857871 --- /dev/null +++ b/.storybook/mocks/next-router.ts @@ -0,0 +1,89 @@ +type Query = Record + +type UrlObject = { + pathname?: string + query?: Query + hash?: string +} + +type Url = string | UrlObject + +type RouterEvent = 'routeChangeStart' | 'hashChangeStart' + +const listeners: Record void>> = { + routeChangeStart: new Set(), + hashChangeStart: new Set(), +} + +const parseUrl = (url: Url) => { + if (typeof url === 'string') { + const [pathAndQuery, hash] = url.split('#') + const [pathname, search = ''] = pathAndQuery.split('?') + const query: Query = {} + new URLSearchParams(search).forEach((value, key) => { + query[key] = value + }) + return { + pathname, + query, + asPath: url, + hash: hash ? `#${hash}` : '', + } + } + + const pathname = url.pathname ?? '/' + const query = { ...(url.query ?? {}) } + const search = new URLSearchParams( + Object.entries(query).flatMap(([key, value]) => + value == null ? [] : [[key, String(value)]] + ) + ).toString() + const hash = url.hash ?? '' + const asPath = `${pathname}${search ? `?${search}` : ''}${hash}` + return { pathname, query, asPath, hash } +} + +const emit = (event: RouterEvent, url: string) => { + listeners[event].forEach((listener) => listener(url)) +} + +export const router = { + pathname: '/', + asPath: '/', + route: '/', + query: {} as Query, + locale: 'en', + locales: ['en', 'pt', 'es'], + defaultLocale: 'en', + basePath: '', + isReady: true, + isFallback: false, + isLocaleDomain: false, + events: { + on: (event: RouterEvent, listener: (url: string) => void) => { + listeners[event]?.add(listener) + }, + off: (event: RouterEvent, listener: (url: string) => void) => { + listeners[event]?.delete(listener) + }, + emit, + }, + push: async (url: Url) => { + const next = parseUrl(url) + emit('routeChangeStart', next.asPath) + router.pathname = next.pathname + router.route = next.pathname + router.query = next.query + router.asPath = next.asPath + return true + }, + replace: async (url: Url) => router.push(url), + prefetch: async () => undefined, + reload: () => undefined, + back: () => undefined, + beforePopState: () => undefined, +} + +export const useRouter = () => router + +export default { useRouter, router } diff --git a/.storybook/preview.ts b/.storybook/preview.ts index bbfdf9c..5f08e28 100644 --- a/.storybook/preview.ts +++ b/.storybook/preview.ts @@ -1,4 +1,17 @@ import type { Preview } from '@storybook/react' +import SearchConfig from '../src/utils/config/search-config' + +const algoliaAppId = process.env.NEXT_PUBLIC_ALGOLIA_APP_ID +const algoliaSearchKey = process.env.NEXT_PUBLIC_ALGOLIA_SEARCH_KEY +const algoliaIndex = process.env.NEXT_PUBLIC_INDEX || 'devportal-docs' + +if (algoliaAppId && algoliaSearchKey) { + SearchConfig({ + appId: algoliaAppId, + apiKey: algoliaSearchKey, + index: algoliaIndex, + }) +} const customViewports = { mobileSmall: { @@ -67,11 +80,6 @@ const preview: Preview = { date: /Date$/i, }, }, - nextjs: { - router: { - basePath: '/', - }, - }, }, } diff --git a/CHANGELOG.md b/CHANGELOG.md index c5ebcf1..61a120e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,156 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +### [7.0.3](https://github.com/vtexdocs/components/compare/v7.0.2...v7.0.3) (2026-09-08) + + +### Bug Fixes + +* type for remarkReadingTime ([5d44758](https://github.com/vtexdocs/components/commit/5d44758e19814a0abcd11b3d61399f6f7c9aa2a8)) + +### [7.0.2](https://github.com/vtexdocs/components/compare/v7.0.1...v7.0.2) (2026-09-04) + + +### Features + +* see also and remark plugins ([0cb7126](https://github.com/vtexdocs/components/commit/0cb71260cb241d9cb127b1965d50c2e6ea5ec67a)) + +### [7.0.1](https://github.com/vtexdocs/components/compare/v7.0.0...v7.0.1) (2026-09-03) + + +### Features + +* ArticleRender ([c5cc6cf](https://github.com/vtexdocs/components/commit/c5cc6cfc17a0fb2b03f970e6834bc68928b49967)) + +## [7.0.0](https://github.com/vtexdocs/components/compare/v6.3.4...v7.0.0) (2026-09-03) + + +### Features + +* askassistant ([20f87d9](https://github.com/vtexdocs/components/commit/20f87d978a2750b0c7354f5162e7e9bcb70ca486)) + +### [6.3.4](https://github.com/vtexdocs/components/compare/v6.3.3...v6.3.4) (2026-09-02) + +### [6.3.3](https://github.com/vtexdocs/components/compare/v6.3.2...v6.3.3) (2026-09-02) + +### [6.3.2](https://github.com/vtexdocs/components/compare/v6.3.1...v6.3.2) (2026-09-01) + + +### Features + +* ask ai and feedback section ([21e3781](https://github.com/vtexdocs/components/commit/21e3781f5c1f3368a846ea084c7dac375fb407e2)) +* FeedbackModal ([226d075](https://github.com/vtexdocs/components/commit/226d075a89fcf4b6f828387143c7dc3dbbd544e3)) + +### [6.3.1](https://github.com/vtexdocs/components/compare/v6.3.0...v6.3.1) (2026-09-01) + + +### Features + +* components from help center ([1e12ccc](https://github.com/vtexdocs/components/commit/1e12ccc7d141e160bf617d21d5378b1f809a4955)) + +## [6.3.0](https://github.com/vtexdocs/components/compare/v6.2.6...v6.3.0) (2026-08-31) + + +### Features + +* : mobile search ([82d1f18](https://github.com/vtexdocs/components/commit/82d1f18eaa861fb9c57ac038acb91559bb5163c8)) +* header ([1ea4426](https://github.com/vtexdocs/components/commit/1ea4426adfda6a8a9247baa9b3936da1ef0cee7d)) +* improve search and sidebar for mobile, tablet and desktop ([7a6a5a8](https://github.com/vtexdocs/components/commit/7a6a5a880cf9bbd5bb0f8020dae6b2d019ea3898)) +* improve sidebar ([86c0d18](https://github.com/vtexdocs/components/commit/86c0d1812026dda1f10f794be33fd44f4989bcf3)) + +### [6.2.6](https://github.com/vtexdocs/components/compare/v6.2.5...v6.2.6) (2026-08-27) + + +### Features + +* improve sidebar search ([601e595](https://github.com/vtexdocs/components/commit/601e595f1322c6ec7bc6d7c78b0709cf4486a9e0)) + +### [6.2.5](https://github.com/vtexdocs/components/compare/v6.2.4...v6.2.5) (2026-08-27) + +### [6.2.4](https://github.com/vtexdocs/components/compare/v6.2.3...v6.2.4) (2026-08-27) + + +### Features + +* improve search box ui ([9779c1c](https://github.com/vtexdocs/components/commit/9779c1c3a0a388bdae30a3fb2ba307c67b633548)) +* improve search results page ([0198d77](https://github.com/vtexdocs/components/commit/0198d77f4b99a943ebf734c1ed2bc75808d39b88)) + +### [6.2.3](https://github.com/vtexdocs/components/compare/v6.2.2...v6.2.3) (2026-08-18) + + +### Features + +* footer ([8e3a190](https://github.com/vtexdocs/components/commit/8e3a1902574a84f99053f6e704bc7deb8a32c967)) + +### [6.2.2](https://github.com/vtexdocs/components/compare/v6.2.1...v6.2.2) (2026-08-16) + + +### Features + +* Contributors and OnThisPage ([3441072](https://github.com/vtexdocs/components/commit/3441072fb6a660cad73398f08ca49484139705bd)) + + +### Bug Fixes + +* image usage ([86ee45d](https://github.com/vtexdocs/components/commit/86ee45d0f1da6fa3e97bca88841e7c7a9c1c17ee)) +* update components ([9004d53](https://github.com/vtexdocs/components/commit/9004d5327375e135214717e1eb6a564fc3c45b8e)) + +### [6.2.1](https://github.com/vtexdocs/components/compare/v6.2.0...v6.2.1) (2026-08-14) + + +### Features + +* added `defaultOpen` property to `SidebarElement` interface to control initial expansion state ([5a55934](https://github.com/vtexdocs/components/commit/5a55934d924d3fe8bd370f957717fcdd9707c729)) +* close sidebar on mobile ([76dfb43](https://github.com/vtexdocs/components/commit/76dfb4352bf525b577f87e099588b86577b8ab27)) + + +### Bug Fixes + +* ensure defaultOpen is always open ([2369359](https://github.com/vtexdocs/components/commit/23693591d9ae610468889b0f23c5e6845c627568)) + +## [6.2.0](https://github.com/vtexdocs/components/compare/v6.1.3...v6.2.0) (2026-07-14) + + +### Features + +* hybrid search implementation ([#82](https://github.com/vtexdocs/components/issues/82)) ([72c456e](https://github.com/vtexdocs/components/commit/72c456ed0c1016ace7d00654e0a037a37c756114)) + +### [6.1.3](https://github.com/vtexdocs/components/compare/v6.1.2...v6.1.3) (2026-07-10) + + +### Bug Fixes + +* rebuild dist to include callout icon fix ([d2a1f0e](https://github.com/vtexdocs/components/commit/d2a1f0e187a7031ce3a6fc39920752445db6c047)), closes [#86](https://github.com/vtexdocs/components/issues/86) + +### [6.1.2](https://github.com/vtexdocs/components/compare/v6.1.1...v6.1.2) (2026-07-10) + + +### Bug Fixes + +* **markdown-renderer:** render callout icons as inline SVG instead of external asset ([542ec5e](https://github.com/vtexdocs/components/commit/542ec5e1bc38a20c61668c21ccc8fa302ef7cd79)) + +### [6.1.1](https://github.com/vtexdocs/components/compare/v6.1.0...v6.1.1) (2026-06-26) + + +### Features + +* add shared troubleshooting listing components ([560e9b2](https://github.com/vtexdocs/components/commit/560e9b2ed96b6b55142968d9ec5d5f961a50c061)) + +## [6.1.0](https://github.com/vtexdocs/components/compare/v6.0.37...v6.1.0) (2026-06-22) + + +### Features + +* **index.tsx:** add subscriptionlist component and export from library ([d68187c](https://github.com/vtexdocs/components/commit/d68187cdfc581f1cf430de242adaae969b4ebb22)) +* **messages-types.ts:** add locale-aware url helpers and subscription message keys ([49e3cfb](https://github.com/vtexdocs/components/commit/49e3cfbfb75ee93748559985ac263d8a36c4ecbf)) +* **subscription-list:** rebuild dist to include compiled component ([6a605f1](https://github.com/vtexdocs/components/commit/6a605f1780001a7f493af3de0520caa30f945c95)) +* **SubscriptionList.stories.tsx:** add storybook story ([690a21a](https://github.com/vtexdocs/components/commit/690a21a77f4e5d38ab8ab0bee79cf5e903da417e)) + + +### Bug Fixes + +* **SubscriptionList:** improve error handling per code review ([76c4806](https://github.com/vtexdocs/components/commit/76c4806b9e6ce4c6e16168f90958cf82995cb037)) + ### [6.0.37](https://github.com/vtexdocs/components/compare/v6.0.36...v6.0.37) (2026-01-20) ### [6.0.36](https://github.com/vtexdocs/components/compare/v6.0.35...v6.0.36) (2026-01-20) diff --git a/dist/index.css b/dist/index.css index 0a81a84..7c954a5 100644 --- a/dist/index.css +++ b/dist/index.css @@ -10,6 +10,10 @@ visibility: hidden; pointer-events: none; } +.styles_heading [data-copy-heading-link] { + position: relative; + top: -0.08em; +} .styles_code { background-color: unset; background-color: var(--md-code-background, #f6f8fa); @@ -66,30 +70,19 @@ table .styles_code { .styles_blockquote a:hover { color: #c81e51; } +.styles_blockquoteIcon { + display: inline-block; + flex-shrink: 0; + grid-row: 1; +} .styles_blockquoteInfo { background: #f8f7fc; border: 1px solid #ccced8; } -.styles_blockquoteInfo:before { - display: inline-block; - height: 20px; - width: 20px; - content: ""; - background: url(https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg) no-repeat 0 0; - background-size: 20px 20px; -} .styles_blockquoteDanger { background: #fdefef; border: 1px solid #dc5a41; } -.styles_blockquoteDanger:before { - display: inline-block; - height: 20px; - width: 20px; - content: ""; - background: url(https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg) no-repeat 0 0; - background-size: 20px 20px; -} .styles_blockquoteWarning { background: #fff2d4; border: 1px solid #ffb100; @@ -100,26 +93,10 @@ table .styles_code { .styles_blockquoteInfo code { background-color: unset; } -.styles_blockquoteWarning:before { - display: inline-block; - height: 20px; - width: 20px; - content: ""; - background: url(https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg) no-repeat 0 0; - background-size: 20px 20px; -} .styles_blockquoteSuccess { background: #f3f8f3; border: 1px solid #80be80; } -.styles_blockquoteSuccess:before { - display: inline-block; - height: 20px; - width: 20px; - content: ""; - background: url(https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg) no-repeat 0 0; - background-size: 20px 20px; -} .styles_flexWrap { flex-wrap: wrap; justify-content: space-between; diff --git a/dist/index.css.map b/dist/index.css.map index e541cb8..d140d4a 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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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,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,cAAY;AACZ,UAAQ,IAAI,MAAM;AACpB;AAEA,CALCA,qBAKc;AACb,WAAS;AACT,UAAQ;AACR,SAAO;AACP,WAAS;AACT,cAAY,6EACV,UAAU,EAAE;AACd,mBAAiB,KAAK;AACxB;AAEA,CAACC;AACC,cAAY;AACZ,UAAQ,IAAI,MAAM;AACpB;AAEA,CALCA,uBAKgB;AACf,WAAS;AACT,UAAQ;AACR,SAAO;AACP,WAAS;AACT,cAAY,+EACV,UAAU,EAAE;AACd,mBAAiB,KAAK;AACxB;AAEA,CAACC;AACC,cAAY;AACZ,UAAQ,IAAI,MAAM;AACpB;AAEA,CALCA,yBAKkB;AACjB,oBAAkB;AACpB;AAEA,CAvCCF,sBAuCe;AACd,oBAAkB;AACpB;AAEA,CAbCE,wBAaiB;AAChB,WAAS;AACT,UAAQ;AACR,SAAO;AACP,WAAS;AACT,cAAY,gFACV,UAAU,EAAE;AACd,mBAAiB,KAAK;AACxB;AAEA,CAACC;AACC,cAAY;AACZ,UAAQ,IAAI,MAAM;AACpB;AAEA,CALCA,wBAKiB;AAChB,WAAS;AACT,UAAQ;AACR,SAAO;AACP,WAAS;AACT,cAAY,gFACV,UAAU,EAAE;AACd,mBAAiB,KAAK;AACxB;AAEA,CAACC;AACC,aAAW;AACX,mBAAiB;AACnB;AAEA,CAACC;AACC,SAAO;AACT;","names":["img","heading","code","blockquote","blockquoteInfo","blockquoteDanger","blockquoteWarning","blockquoteSuccess","flexWrap","svgContainer"]} \ No newline at end of file +{"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.heading :global([data-copy-heading-link]) {\r\n position: relative;\r\n top: -0.08em;\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,cAAO;AACN,WAAS;AACT,WAAS;AACT,cAAY;AACZ,kBAAgB;AAClB;AAEA,CAPCA,eAOgB,CAAC;AAChB,YAAU;AACV,OAAK;AACP;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.d.mts b/dist/index.d.mts index f9da848..af969e4 100644 --- a/dist/index.d.mts +++ b/dist/index.d.mts @@ -1,8 +1,8 @@ import * as react_jsx_runtime from 'react/jsx-runtime'; import { MDXRemoteSerializeResult } from 'next-mdx-remote'; -import { SxStyleProp, IconProps } from '@vtex/brand-ui'; -import * as react from 'react'; -import { ReactNode, Dispatch, SetStateAction } from 'react'; +import { SxStyleProp, IconProps, TooltipProps } from '@vtex/brand-ui'; +import * as React$1 from 'react'; +import React__default, { ReactNode, Dispatch, SetStateAction } from 'react'; import { AlgoliaSearchOptions } from 'algoliasearch/lite'; interface MarkdownRendererProps { @@ -25,13 +25,35 @@ interface Item extends SubItem { children: SubItem[]; } -interface Props$3 { +interface Props$4 { /** List of headings in the current documentation page */ headingList?: Item[]; children?: React.ReactNode; } /** Table of contents for documentation pages. */ -declare const TableOfContents: ({ headingList, children }: Props$3) => react_jsx_runtime.JSX.Element; +declare const TableOfContents: ({ headingList, children }: Props$4) => react_jsx_runtime.JSX.Element; + +interface OnThisPageProps { + /** List of headings in the current documentation page */ + headingList?: Item[]; +} + +/** Mobile floating table of contents for documentation pages. */ +declare const OnThisPage: ({ headingList }: OnThisPageProps) => react_jsx_runtime.JSX.Element; + +interface ContributorsType { + name: string; + login: string; + avatar: string; + userPage: string; +} +interface ContributorsProps { + /** GitHub contributors of the current documentation page. */ + contributors: ContributorsType[]; +} + +/** List of GitHub contributors for a documentation page. */ +declare const Contributors: ({ contributors }: ContributorsProps) => react_jsx_runtime.JSX.Element; interface SideBarSectionState { /** Array containing the name of the parents of the expanded page in the menu. */ @@ -49,7 +71,7 @@ interface HamburgerMenuProps { /** Hamburger Menu component, the menu uses the sidebar components internally, but it is only visible on the smaller breakpoints. */ declare const HamburgerMenu: ({ parentsArray }: HamburgerMenuProps) => react_jsx_runtime.JSX.Element; -interface DocPath { +interface FeedbackSectionProps { /** Slug that corresponds to the current page. */ slug?: string; /** Github edit URL to the corresponding documentation file. */ @@ -58,30 +80,118 @@ interface DocPath { suggestEdits?: boolean; /** Include or not a share button. */ shareButton?: boolean; - /** Executes when the user sends the feedback. Receives whether it was positive (liked). */ - sendFeedback: (liked: boolean) => Promise; + /** + * Canonical page URL stored with the vote. + * Defaults to `window.location.href` so Help Center and Developer Portal + * both record the page the user is on. + */ + pageUrl?: string; + /** Endpoint that receives the like/dislike payload. Defaults to `/api/feedback/`. */ + feedbackEndpoint?: string; + /** Override the default POST. Receives whether the vote was positive (liked). */ + sendFeedback?: (liked: boolean) => Promise; /** Whether to render the small version of the component or not. */ small?: boolean; } -declare const FeedbackSection: ({ slug, urlToEdit, suggestEdits, shareButton, sendFeedback, small, }: DocPath) => react_jsx_runtime.JSX.Element; +/** @deprecated Use FeedbackSectionProps */ +type DocPath = FeedbackSectionProps; +declare const FeedbackSection: ({ slug, urlToEdit, suggestEdits, shareButton, pageUrl, feedbackEndpoint, sendFeedback, small, }: FeedbackSectionProps) => react_jsx_runtime.JSX.Element; + +type FeedbackModalPayload = { + name: string; + email: string; + type: string; + feedback: string; + url: string; +}; +interface FeedbackModalProps { + /** + * Canonical page URL prefilled in the Article field. + * Defaults to `window.location.href` so Help Center and Developer Portal + * both record the page the user is on. + */ + pageUrl?: string; + /** + * @deprecated Use `pageUrl`. + */ + initialMessage?: string; + /** Endpoint that receives the form payload. Defaults to `/api/feedback-google`. */ + feedbackEndpoint?: string; + /** Override the default POST. */ + sendFeedback?: (payload: FeedbackModalPayload) => Promise; + /** Open the modal on first render. Useful for Storybook. */ + defaultOpen?: boolean; +} +declare const FeedbackModal: ({ pageUrl, initialMessage, feedbackEndpoint, sendFeedback, defaultOpen, }: FeedbackModalProps) => react_jsx_runtime.JSX.Element; declare const Search: () => react_jsx_runtime.JSX.Element; -declare function SearchInput(): react_jsx_runtime.JSX.Element; +type SearchInputVariant = 'default' | 'modal'; -interface Props$2 { +interface SearchInputProps { + /** `modal` renders a full-width input with results in the document flow. */ + variant?: SearchInputVariant; + autoFocus?: boolean; + onClose?: () => void; +} +declare function SearchInput({ variant, autoFocus, onClose, }: SearchInputProps): react_jsx_runtime.JSX.Element; + +interface MobileSearchProps { + /** Called when the search modal opens, e.g. to close the hamburger menu. */ + onOpen?: () => void; +} +declare const MobileSearch: ({ onOpen }: MobileSearchProps) => react_jsx_runtime.JSX.Element; + +interface Props$3 { onAccept: () => void; } -declare const CookieBar: ({ onAccept }: Props$2) => react_jsx_runtime.JSX.Element; +declare const CookieBar: ({ onAccept }: Props$3) => react_jsx_runtime.JSX.Element; -interface Props$1 { +type WhatsNextDataElement = { + title: string; + description?: string; + linkTitle?: string; + linkTo: string; + image?: string; +}; +declare const WhatsNextCard: ({ title, description, linkTitle, linkTo, image, }: WhatsNextDataElement) => react_jsx_runtime.JSX.Element; + +interface Props$2 { url: string; sx?: SxStyleProp; } -declare const ShareButton: ({ url, sx }: Props$1) => react_jsx_runtime.JSX.Element; +declare const ShareButton: ({ url, sx }: Props$2) => react_jsx_runtime.JSX.Element; declare const CopyLinkButton: () => react_jsx_runtime.JSX.Element; +type CopyButtonProps = { + code: string; + sx?: SxStyleProp; +}; +declare const CopyButton: ({ code, sx }: CopyButtonProps) => JSX.Element; + +type AskAIProvider = { + id: string; + name: string; + href?: string; + onClick?: () => void; +}; +type AskAIMenuProps = { + /** Markdown file path sent to `contentEndpoint` and appended to `rawContentBaseUrl`. */ + filePath: string; + /** Public page URL included in AI prompts. */ + pageUrl: string; + /** Base URL for viewing raw markdown. `filePath` is appended. */ + rawContentBaseUrl: string; + providers?: AskAIProvider[]; + onOpenProvider?: (provider: AskAIProvider) => void; + /** Endpoint that returns markdown for `filePath`. */ + contentEndpoint?: string; + /** Override the default fetch used by Copy page. */ + onCopyPage?: () => Promise; +}; +declare const AskAIMenu: ({ filePath, pageUrl, rawContentBaseUrl, providers, onOpenProvider, contentEndpoint, onCopyPage, }: AskAIMenuProps) => react_jsx_runtime.JSX.Element; + type Section = { id: string; link: string; @@ -89,10 +199,108 @@ type Section = { description: string; Icon: (props: IconProps) => JSX.Element; isExternalLink?: boolean; - excludeFromSearch?: boolean; }; type IconComponent = (props: IconProps) => JSX.Element; +type AssistantStreamEvent = { + type: string; + name?: string; + arguments?: Record; + output?: string; + is_final_answer?: boolean; + content?: string; +}; +type ProcessStep = { + id: string; + name: string; + status: 'running' | 'complete'; +}; +type ChatMessage = { + id: string; + role: 'user' | 'assistant'; + content: string; + steps?: ProcessStep[]; + status: 'streaming' | 'complete' | 'error'; +}; +type HistoryConversation = { + id: string; + title: string; + messages: ChatMessage[]; +}; +type AskAssistantFeedback = { + query: string; + answer: string; + liked: boolean; +}; +type AskAssistantExampleCategory = { + id: string; + title: string; + Icon?: IconComponent; + questions: string[]; +}; +type AssistantStreamHandler = (query: string, signal: AbortSignal, onEvent: (event: AssistantStreamEvent) => void) => Promise; +type AskAssistantProps = { + /** + * SSE endpoint. Relative paths are resolved against the current origin. + */ + streamUrl?: string; + /** Override the default SSE client (useful in Storybook and tests). */ + stream?: AssistantStreamHandler; + /** Controlled open state. */ + open?: boolean; + /** Uncontrolled initial open state. */ + defaultOpen?: boolean; + onOpenChange?: (open: boolean) => void; + /** Hide the pill trigger and only render the panel. */ + hideTrigger?: boolean; + /** + * On viewports below the desktop grid breakpoint, render a floating + * action button instead of the header pill. Defaults to true. + */ + floatingOnMobile?: boolean; + /** Register ⌘/Ctrl + I to toggle the panel. Defaults to true. */ + enableShortcut?: boolean; + /** Seed the panel with an existing conversation. */ + initialMessages?: ChatMessage[]; + /** + * Suggested questions shown in the empty state, grouped by category. + * Dev Portal and Help Center should pass portal-specific lists. + * Defaults to `DEFAULT_ASK_ASSISTANT_EXAMPLES`. Pass `[]` to hide. + */ + examples?: AskAssistantExampleCategory[]; + /** Seed the history popover. Replaced by localStorage once a conversation is saved. */ + initialHistory?: HistoryConversation[]; + onAsk?: (query: string) => void; + onFeedback?: (payload: AskAssistantFeedback) => void; +}; + +declare const DEFAULT_ASK_ASSISTANT_EXAMPLES: AskAssistantExampleCategory[]; + +declare const AskAssistant: ({ streamUrl, stream, open, defaultOpen, onOpenChange, hideTrigger, floatingOnMobile, enableShortcut, initialMessages, examples, initialHistory, onAsk, onFeedback, }: AskAssistantProps) => react_jsx_runtime.JSX.Element; + +type CopyHeadingLinkProps = { + /** + * Heading `id` used as the URL hash. An empty slug means the heading is an + * h1 (the page title), so the copied URL has no hash. + */ + slug?: string; + size?: number; + sx?: SxStyleProp; +}; +declare const CopyHeadingLink: ({ slug, size, sx, }: CopyHeadingLinkProps) => react_jsx_runtime.JSX.Element; + +type BreadcrumbItem = { + slug: string; + name: string; + type: string; +}; +type BreadcrumbProps = { + breadcrumbList?: BreadcrumbItem[]; + /** @deprecated Use `breadcrumbList`. Kept for callers that still pass the old typo. */ + breadcumbList?: BreadcrumbItem[]; +}; +declare const Breadcrumb: ({ breadcrumbList, breadcumbList, }: BreadcrumbProps) => react_jsx_runtime.JSX.Element; + interface InputProps { value: string; Icon?: IconComponent; @@ -101,6 +309,280 @@ interface InputProps { } declare const Input: ({ value, onChange, placeholder, Icon }: InputProps) => react_jsx_runtime.JSX.Element; +declare const SubscriptionList: React__default.FC; + +type FooterLink = { + label: string; + href: string; +}; +type FooterVariant = 'helpcenter' | 'devportal'; +type FooterProps = { + /** + * Which site is rendering the Footer. Help Center shows a Developer Portal + * link; Developer Portal shows a Help Center link. + */ + variant?: FooterVariant; + /** Overrides the default GitHub, cross-site, Community, and Feedback links. */ + links?: FooterLink[]; + githubUrl?: string; + developerPortalUrl?: string; + helpCenterUrl?: string; + communityUrl?: string; + feedbackUrl?: string; + /** App-specific locale switcher rendered at the end of the link row. */ + localeSwitcher?: ReactNode; +}; +declare const Footer: ({ variant, links, githubUrl, developerPortalUrl, helpCenterUrl, communityUrl, feedbackUrl, localeSwitcher, }: FooterProps) => react_jsx_runtime.JSX.Element; + +type DropdownMenuProps = { + sections: Section[][]; +}; +declare const DropdownMenu: ({ sections }: DropdownMenuProps) => react_jsx_runtime.JSX.Element; + +type HeaderVariant = 'helpcenter' | 'devportal'; +type HeaderProps = { + /** + * Which site is rendering the Header. Controls the default logo. + * Help Center is the default; Developer Portal should pass `devportal`. + */ + variant?: HeaderVariant; + /** When true, the docs dropdown shows `editorSections` instead of docs sections. */ + isEditor?: boolean; + /** + * Sections shown in the docs dropdown. Defaults to the hamburger sections + * from LibraryContext. + */ + dropdownSections?: Section[][]; + /** Sections shown in the dropdown when `isEditor` is true. */ + editorSections?: Section[]; + /** Slot rendered above the header bar (e.g. AnnouncementBar). */ + announcement?: ReactNode; + homeHref?: string; + /** When set, shows the feedback link in the header. Hidden otherwise. */ + feedbackUrl?: string; + /** Overrides the default logo for the selected variant. */ + logo?: ReactNode; + /** + * App-specific items rendered after the docs dropdown (e.g. Help Center + * announcements). Hidden on small viewports together with RightLinks. + */ + extraRightLinks?: ReactNode; + /** App-specific locale switcher rendered next to the hamburger menu. */ + localeSwitcher?: ReactNode; + /** Parent slugs of the current article, used to expand the mobile sidebar. */ + parentsArray?: string[]; + /** + * When true, renders AskAssistant next to the search input on desktop. + * Search stays hidden on small viewports (use the search icon). On mobile + * the assistant is a floating action button in the bottom-right corner. + */ + showAssistant?: boolean; + /** Props forwarded to AskAssistant when `showAssistant` is true. */ + assistant?: AskAssistantProps; +}; +declare const Header: ({ variant, isEditor, dropdownSections, editorSections, announcement, homeHref, feedbackUrl, logo, extraRightLinks, localeSwitcher, parentsArray, showAssistant, assistant, }: HeaderProps) => react_jsx_runtime.JSX.Element; + +type AnnouncementBarType = 'warning' | 'new'; +type AnnouncementBarAction = { + href: string; + tag?: string; + button?: string; + target?: string; +}; +type AnnouncementBarProps = { + type: AnnouncementBarType; + label?: string; + closable: boolean; + action: AnnouncementBarAction; + children?: ReactNode; +}; +declare const AnnouncementBar: ({ closable, type, action: { tag, button, href, target }, label, children, }: AnnouncementBarProps) => react_jsx_runtime.JSX.Element | null; + +type TagColor = 'Default' | 'Selected' | 'New' | 'Gray' | 'Blue' | 'Green' | 'Deprecation' | 'Backlog' | 'Fixed' | 'Closed' | 'Scheduled' | 'No_Fix'; +type TagProps = { + sx?: SxStyleProp; + children: React.ReactNode; + color?: TagColor; + onClick?: () => void; +}; +declare const Tag: ({ sx, children, color, onClick }: TagProps) => react_jsx_runtime.JSX.Element; + +type FilterOption = { + id: string; + name: string; +}; +type FilterGroup = { + name: string; + options: FilterOption[]; +}; +type ListingFilterLabels = { + button?: string; + modalTitle?: string; + remove?: string; + apply?: string; +}; +type ListingFilterSelection = { + tag: string[]; + checklist: string[]; +}; + +type ListingFilterProps = { + tagFilter?: FilterGroup | string[]; + tagFilterName?: string; + checkBoxFilter?: FilterGroup | string[]; + checkBoxFilters?: FilterGroup[]; + filterName?: string; + selectedCheckboxes?: string[]; + selectedTags?: string[]; + onApply: (filters: ListingFilterSelection) => void; + labels?: ListingFilterLabels; + buttonSx?: SxStyleProp; + centeredTagOptions?: boolean; +}; +declare const ListingFilter: ({ tagFilter, tagFilterName, checkBoxFilter, checkBoxFilters, filterName, onApply, selectedCheckboxes, selectedTags, labels, buttonSx, centeredTagOptions, }: ListingFilterProps) => react_jsx_runtime.JSX.Element; + +type ChipFilterCategory = { + type: string; + title: string; + Icon?: IconComponent; +}; +type ChipFilterProps = { + filters: string[]; + categories: ChipFilterCategory[]; + applyCategory: (option: string) => void; + resetFilters: () => void; + removeCategory: (option: string) => void; + getCategoryAmount: (category: string) => number; + allResultsLabel?: string; +}; +declare const ChipFilter: ({ filters, categories, applyCategory, resetFilters, removeCategory, getCategoryAmount, allResultsLabel, }: ChipFilterProps) => react_jsx_runtime.JSX.Element; + +interface Props$1 extends Pick { + sx?: SxStyleProp; + isCard?: boolean; + /** When true, the tooltip stays visible even without hover. */ + open?: boolean; + wrapperSx?: SxStyleProp; +} +declare const Tooltip: ({ children, label, placement, sx, isCard, open, wrapperSx, }: Props$1) => react_jsx_runtime.JSX.Element; + +type AuthorProps = { + contributor: ContributorsType; +}; +declare const Author: ({ contributor }: AuthorProps) => react_jsx_runtime.JSX.Element; + +type TimeToReadProps = { + minutes: string; +}; +declare const TimeToRead: ({ minutes }: TimeToReadProps) => react_jsx_runtime.JSX.Element; + +type DateTextProps = { + createdAt: Date; + updatedAt: Date; +}; +declare const DateText: ({ createdAt, updatedAt }: DateTextProps) => react_jsx_runtime.JSX.Element | null; + +type ArticlePaginationDoc = { + slug: string | null; + name: string | null; +}; +type ArticlePaginationData = { + previousDoc: ArticlePaginationDoc; + nextDoc: ArticlePaginationDoc; +}; +type ArticlePaginationProps = { + pagination: ArticlePaginationData; + hidePaginationPrevious?: boolean; + hidePaginationNext?: boolean; +}; +declare const ArticlePagination: ({ pagination, hidePaginationNext, hidePaginationPrevious, }: ArticlePaginationProps) => react_jsx_runtime.JSX.Element; + +type InsertAccountNameProps = { + id: string; +}; +declare const InsertAccountName: ({ id }: InsertAccountNameProps) => react_jsx_runtime.JSX.Element; + +type SuggestEditsProps = { + /** GitHub edit URL for the current documentation file. */ + urlToEdit: string; + /** Compact size used next to the table of contents. */ + small?: boolean; + sx?: SxStyleProp; +}; +declare const SuggestEdits: ({ urlToEdit, small, sx, }: SuggestEditsProps) => react_jsx_runtime.JSX.Element; + +type SeeAlsoDoc = { + url: string; + title?: string; + category?: string; +}; + +type SeeAlsoSectionProps = { + docs: SeeAlsoDoc[]; +}; +declare const SeeAlsoSection: ({ docs }: SeeAlsoSectionProps) => react_jsx_runtime.JSX.Element; + +type ArticleRenderProps = { + serialized: MDXRemoteSerializeResult; + breadcrumbList: BreadcrumbItem[]; + slug: string; + path: string; + type: string; + pageUrl: string; + urlToEdit: string; + rawContentBaseUrl: string; + contributors?: ContributorsType[]; + headings?: Item[]; + headingList?: Item[]; + pagination?: ArticlePaginationData; + children?: ReactNode; + seeAlso?: SeeAlsoDoc[] | ReactNode; + customComponents?: MarkdownRendererProps['customComponents']; + scope?: MarkdownRendererProps['scope']; + /** Wrap the markdown output without remounting it on parent re-renders. */ + renderMarkdown?: (markdown: ReactNode) => ReactNode; + showReadingTime?: boolean; + showAskAIMenu?: boolean; + showAuthor?: boolean; + showContributors?: boolean; + showFeedbackSection?: boolean; + showSuggestEdits?: boolean; + showArticlePagination?: boolean; + showSeeAlso?: boolean; + showTableOfContents?: boolean; + showDateText?: boolean; +}; +declare const ArticleRender: ({ serialized, headings, headingList, breadcrumbList, contributors, path, pagination, slug, type, pageUrl, urlToEdit, rawContentBaseUrl, children, seeAlso, customComponents, scope, renderMarkdown, showReadingTime, showAskAIMenu, showAuthor, showContributors, showFeedbackSection, showSuggestEdits, showArticlePagination, showSeeAlso, showTableOfContents, showDateText, }: ArticleRenderProps) => react_jsx_runtime.JSX.Element; + +type TroubleshootingItem = { + slug: string; + title: string; + description?: string; + tags?: string[]; + domainFilters?: string[]; + symptomFilters?: string[]; +}; +type TroubleshootingFilterState = { + search: string; + domainFilters: string[]; + symptomFilters: string[]; +}; + +type TroubleshootingCardVariant = 'devportal' | 'helpcenter'; +type TroubleshootingCardProps = TroubleshootingItem & { + href?: string; + basePath?: string; + variant?: TroubleshootingCardVariant; +}; +declare const TroubleshootingCard: ({ title, description, slug, tags, domainFilters, symptomFilters, href, basePath, variant, }: TroubleshootingCardProps) => react_jsx_runtime.JSX.Element; + +declare function filterTroubleshootingItems(items: T[], { search, domainFilters, symptomFilters }: TroubleshootingFilterState): T[]; + +declare function collectTroubleshootingFilterOptions>(items: T[]): { + domainFilters: string[]; + symptomFilters: string[]; +}; + declare const getDaysElapsed: (date: Date) => number; interface Props extends Partial { @@ -136,9 +618,10 @@ 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; + setOpenSidebarElements: (parentsArray: string[]) => void; sidebarSections: Section[][]; setSidebarSections: Dispatch>; hamburguerSections: Section[][]; @@ -149,7 +632,7 @@ type ActiveItem = { item: string; subItem: string; }; -declare const LibraryContext: react.Context; +declare const LibraryContext: React$1.Context; /** 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. */ declare const LibraryContextProvider: ({ children, ...props }: Props) => react_jsx_runtime.JSX.Element; @@ -317,6 +800,18 @@ declare const CheckboxIcon: (props: CheckboxProps) => react_jsx_runtime.JSX.Elem declare const ResizeIcon: (props: IconProps) => react_jsx_runtime.JSX.Element; +declare const SparkleIcon: (props: IconProps) => react_jsx_runtime.JSX.Element; + +declare const ExpandIcon: (props: IconProps) => react_jsx_runtime.JSX.Element; + +declare const CollapseIcon: (props: IconProps) => react_jsx_runtime.JSX.Element; + +declare const SendIcon: (props: IconProps) => react_jsx_runtime.JSX.Element; + +declare const RefreshIcon: (props: IconProps) => react_jsx_runtime.JSX.Element; + +declare const NewChatIcon: (props: IconProps) => react_jsx_runtime.JSX.Element; + declare const ArrowLeftIcon: (props: IconProps) => react_jsx_runtime.JSX.Element; declare const ArrowRightIcon: (props: IconProps) => react_jsx_runtime.JSX.Element; @@ -331,4 +826,4 @@ declare const LikeIcon: (props: IconProps) => react_jsx_runtime.JSX.Element; declare const LikeSelectedIcon: (props: IconProps) => react_jsx_runtime.JSX.Element; -export { APIGuidesIcon, APIReferenceIcon, AddedIcon, type AlgoliaConfig, AnnouncementIcon, AppDevelopmentIcon, ArrowLeftIcon, ArrowRightIcon, CaretIcon, ChatGPTIcon, CheckboxIcon, ClaudeIcon, CloseFilterIcon, CloseIcon, CommunityIcon, CookieBar, CopilotIcon, CopyIcon, CopyLinkButton, DeprecatedIcon, DeveloperPortalIcon, DocumentationUpdatesIcon, EditIcon, EmailIcon, ExpandedResultsIcon, FAQIcon, FacebookCircleIcon, FacebookIcon, FeedbackSection, FilterIcon, FixedIcon, GearTroubleshootingIcon, GeminiIcon, GithubIcon, GraphIcon, GridIcon, HamburgerMenu, HelpCenterIcon, type HybridSearchConfig, ImprovedIcon, InfoIcon, Input, IgIcon as InstagramIcon, type Item, KnownIssueIcon as KnownIssuesIcon, LibraryContext, LibraryContextProvider, LikeIcon, LikeSelectedIcon, LinkIcon, LinkedinCircleIcon, LinkedinIcon, LongArrowIcon, MarkdownRenderer, MegaphoneIcon, MenuIcon, NewIcon, PaperIcon, ReleaseNotesIcon, RemovedIcon, ResizeIcon, Search, type SearchBackendConfig, SearchConfig, SearchIcon, SearchInput, ShareButton, ShareIcon, SideBarToggleIcon, Sidebar, StartHereIcon, StorefrontDevelopmentIcon, TableOfContents, TrashcanIcon, TroubleshootingIcon, TutorialsIcon, TwitterCircleIcon, TwitterIcon, VTEXDevPortalIcon, VTEXHelpCenterIcon, VTEXIOAppsIcon, VTEXLogoFooter, WarningIcon, YoutubeIcon, getDaysElapsed }; +export { APIGuidesIcon, APIReferenceIcon, AddedIcon, type AlgoliaConfig, AnnouncementBar, type AnnouncementBarAction, type AnnouncementBarProps, type AnnouncementBarType, AnnouncementIcon, AppDevelopmentIcon, ArrowLeftIcon, ArrowRightIcon, ArticlePagination, type ArticlePaginationData, type ArticlePaginationDoc, type ArticlePaginationProps, ArticleRender, type ArticleRenderProps, AskAIMenu, type AskAIMenuProps, type AskAIProvider, AskAssistant, type AskAssistantExampleCategory, type AskAssistantFeedback, type AskAssistantProps, type AssistantStreamEvent, type AssistantStreamHandler, Author, type AuthorProps, Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, CaretIcon, ChatGPTIcon, type ChatMessage, CheckboxIcon, ChipFilter, type ChipFilterCategory, type ChipFilterProps, ClaudeIcon, CloseFilterIcon, CloseIcon, CollapseIcon, CommunityIcon, Contributors, type ContributorsProps, type ContributorsType, CookieBar, CopilotIcon, CopyButton, type CopyButtonProps, CopyHeadingLink, type CopyHeadingLinkProps, CopyIcon, CopyLinkButton, DEFAULT_ASK_ASSISTANT_EXAMPLES, DateText, type DateTextProps, DeprecatedIcon, DeveloperPortalIcon, type DocPath, DocumentationUpdatesIcon, DropdownMenu, type DropdownMenuProps, EditIcon, EmailIcon, ExpandIcon, ExpandedResultsIcon, FAQIcon, FacebookCircleIcon, FacebookIcon, FeedbackModal, type FeedbackModalPayload, type FeedbackModalProps, FeedbackSection, type FeedbackSectionProps, ListingFilter as Filter, type FilterGroup, FilterIcon, type FilterOption, FixedIcon, Footer, type FooterLink, type FooterProps, type FooterVariant, GearTroubleshootingIcon, GeminiIcon, GithubIcon, GraphIcon, GridIcon, HamburgerMenu, Header, type HeaderProps, type HeaderVariant, HelpCenterIcon, type HistoryConversation, type HybridSearchConfig, ImprovedIcon, InfoIcon, Input, InsertAccountName, type InsertAccountNameProps, IgIcon as InstagramIcon, type Item, KnownIssueIcon as KnownIssuesIcon, LibraryContext, LibraryContextProvider, LikeIcon, LikeSelectedIcon, LinkIcon, LinkedinCircleIcon, LinkedinIcon, ListingFilter, type ListingFilterLabels, type ListingFilterProps, type ListingFilterSelection, LongArrowIcon, MarkdownRenderer, MegaphoneIcon, MenuIcon, MobileSearch, type MobileSearchProps, NewChatIcon, NewIcon, OnThisPage, type OnThisPageProps, PaperIcon, type ProcessStep, RefreshIcon, ReleaseNotesIcon, RemovedIcon, ResizeIcon, Search, type SearchBackendConfig, SearchConfig, SearchIcon, SearchInput, type SearchInputProps, type Section, type SeeAlsoDoc, SeeAlsoSection, type SeeAlsoSectionProps, SendIcon, ShareButton, ShareIcon, SideBarToggleIcon, Sidebar, SparkleIcon, StartHereIcon, StorefrontDevelopmentIcon, SubscriptionList, SuggestEdits, type SuggestEditsProps, TableOfContents, Tag, type TagColor, type TagProps, TimeToRead, type TimeToReadProps, Tooltip, TrashcanIcon, TroubleshootingCard, type TroubleshootingCardProps, type TroubleshootingCardVariant, type TroubleshootingFilterState, TroubleshootingIcon, type TroubleshootingItem, TutorialsIcon, TwitterCircleIcon, TwitterIcon, VTEXDevPortalIcon, VTEXHelpCenterIcon, VTEXIOAppsIcon, VTEXLogoFooter, WarningIcon, WhatsNextCard, type WhatsNextDataElement, YoutubeIcon, collectTroubleshootingFilterOptions, filterTroubleshootingItems, getDaysElapsed }; diff --git a/dist/index.mjs b/dist/index.mjs index 042636a..9c38c10 100644 --- a/dist/index.mjs +++ b/dist/index.mjs @@ -214,7 +214,7 @@ var require_react_is_development = __commonJS({ var ContextProvider = REACT_PROVIDER_TYPE; var Element = REACT_ELEMENT_TYPE; var ForwardRef = REACT_FORWARD_REF_TYPE; - var Fragment6 = REACT_FRAGMENT_TYPE; + var Fragment12 = REACT_FRAGMENT_TYPE; var Lazy = REACT_LAZY_TYPE; var Memo = REACT_MEMO_TYPE; var Portal = REACT_PORTAL_TYPE; @@ -273,7 +273,7 @@ var require_react_is_development = __commonJS({ exports.ContextProvider = ContextProvider; exports.Element = Element; exports.ForwardRef = ForwardRef; - exports.Fragment = Fragment6; + exports.Fragment = Fragment12; exports.Lazy = Lazy; exports.Memo = Memo; exports.Portal = Portal; @@ -409,8 +409,8 @@ var require_checkPropTypes = __commonJS({ ReactPropTypesSecret = require_ReactPropTypesSecret(); loggedTypeFailures = {}; has = require_has(); - printWarning = function(text3) { - var message = "Warning: " + text3; + printWarning = function(text4) { + var message = "Warning: " + text4; if (typeof console !== "undefined") { console.error(message); } @@ -477,8 +477,8 @@ var require_factoryWithTypeCheckers = __commonJS({ var printWarning = function() { }; if (process.env.NODE_ENV !== "production") { - printWarning = function(text3) { - var message = "Warning: " + text3; + printWarning = function(text4) { + var message = "Warning: " + text4; if (typeof console !== "undefined") { console.error(message); } @@ -1410,9 +1410,9 @@ function serializeHeaders(transporter, requestOptions) { ...requestOptions.headers }; const serializedHeaders = {}; - Object.keys(headers).forEach((header) => { - const value = headers[header]; - serializedHeaders[header.toLowerCase()] = value; + Object.keys(headers).forEach((header3) => { + const value = headers[header3]; + serializedHeaders[header3.toLowerCase()] = value; }); return serializedHeaders; } @@ -2583,10 +2583,10 @@ var init_client_search_esm = __esm({ if (bodiesChunk.length === 0) { return Promise.resolve(response); } - return batch(base)(bodiesChunk.map((body2) => { + return batch(base)(bodiesChunk.map((body3) => { return { action, - body: body2 + body: body3 }; }), options).then((res) => { response.objectIDs = response.objectIDs.concat(res.objectIDs); @@ -3769,12 +3769,12 @@ var require_lite = __commonJS({ }); // src/lib/markdown-renderer/MarkdownRenderer.tsx -import { Box as Box6 } from "@vtex/brand-ui"; +import { Box as Box9 } from "@vtex/brand-ui"; import { MDXRemote } from "next-mdx-remote"; // src/lib/markdown-renderer/components.tsx -import { useContext, useEffect as useEffect4, useRef as useRef2, useState as useState3 } from "react"; -import { Box as Box5, Flex as Flex4 } from "@vtex/brand-ui"; +import { useContext as useContext3, useEffect as useEffect6, useRef as useRef4, useState as useState6 } from "react"; +import { Box as Box8, Flex as Flex5 } from "@vtex/brand-ui"; import { UncontrolledReactSVGPanZoom } from "react-svg-pan-zoom"; @@ -5903,12 +5903,12 @@ var IconsMap = [ } ]; var getIcon = (name) => { - return IconsMap.find((icon4) => icon4.name === name)?.Icon; + return IconsMap.find((icon6) => icon6.name === name)?.Icon; }; -var OverviewCard = ({ icon: icon4, link: link2, children }) => { - const Icon68 = getIcon(icon4); +var OverviewCard = ({ icon: icon6, link: link2, children }) => { + const Icon82 = getIcon(icon6); return /* @__PURE__ */ jsx2(Link, { href: link2, children: /* @__PURE__ */ jsxs2(Flex, { sx: styles_default.overviewCard, children: [ - Icon68 && /* @__PURE__ */ jsx2(Icon68, { sx: styles_default.overviewIcon }), + Icon82 && /* @__PURE__ */ jsx2(Icon82, { sx: styles_default.overviewIcon }), /* @__PURE__ */ jsx2(Box, { children }) ] }) }); }; @@ -6022,13 +6022,13 @@ import { useEffect } from "react"; function useClickOutside(ref, openModal) { useEffect(() => { function handleClickOutside(event) { - const { body: body2, documentElement } = document; + const { body: body3, documentElement } = document; if (ref.current && event.target instanceof Node && !ref.current.contains(event.target)) { openModal({ modalToggle: false }); - const scrollTop = body2.getBoundingClientRect().top * -1; - body2.classList.remove("modal-open"); + const scrollTop = body3.getBoundingClientRect().top * -1; + body3.classList.remove("modal-open"); documentElement.scrollTop = scrollTop; - body2.style.removeProperty("top"); + body3.style.removeProperty("top"); } } document.addEventListener("mousedown", handleClickOutside); @@ -6144,10 +6144,18 @@ import { Box as Box4, Flex as Flex3, IconCaret, Text, Link as Link2 } from "@vte // src/components/whats-next-card/styles.ts var container2 = { - mt: "16px", + display: "flex", + flexDirection: "column", + mt: 0, + padding: "16px", borderRadius: "4px", border: "1px solid #E7E9EE", - width: ["100%", "49%"], + width: "100%", + maxWidth: "100%", + minWidth: 0, + height: "100%", + boxSizing: "border-box", + textDecoration: "none", transition: "all 0.3s ease-out", ":hover": { cursor: "pointer" @@ -6170,7 +6178,7 @@ var title = { mb: "8px", fontSize: "16px", fontWeight: "400", - lineHeight: ["22px", "18px"], + lineHeight: "22px", color: "muted.0" }; var imageTitle = { @@ -6214,8 +6222,8 @@ var styles_default4 = { import Image from "next/image.js"; import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime"; var WhatsNextCard = ({ - title: title5, - description: description4, + title: title9, + description: description6, linkTitle, linkTo, image @@ -6225,17 +6233,17 @@ var WhatsNextCard = ({ Image, { src: image, - alt: title5, + alt: title9, width: 0, height: 0, sizes: "100vw", style: { width: "100%", height: "auto" } } ), - /* @__PURE__ */ jsx7(Text, { sx: styles_default4.imageTitle, className: "title", children: title5 }) - ] }) : /* @__PURE__ */ jsxs5(Box4, { sx: { padding: "16px" }, children: [ - /* @__PURE__ */ jsx7(Text, { sx: styles_default4.title, className: "title", children: title5 }), - description4 && /* @__PURE__ */ jsx7(Text, { sx: styles_default4.description, className: "description", children: description4 }), + /* @__PURE__ */ jsx7(Text, { sx: styles_default4.imageTitle, className: "title", children: title9 }) + ] }) : /* @__PURE__ */ jsxs5(Box4, { children: [ + /* @__PURE__ */ jsx7(Text, { sx: styles_default4.title, className: "title", children: title9 }), + description6 && /* @__PURE__ */ jsx7(Text, { sx: styles_default4.description, className: "description", children: description6 }), linkTitle && /* @__PURE__ */ jsxs5(Flex3, { sx: styles_default4.linkContainer, children: [ /* @__PURE__ */ jsx7(Text, { sx: styles_default4.link, className: "link", children: linkTitle }), /* @__PURE__ */ jsx7( @@ -6252,10 +6260,202 @@ var WhatsNextCard = ({ }; var whats_next_card_default = WhatsNextCard; +// src/components/insert-account-name/index.tsx +import { useContext, useState as useState4 } from "react"; +import { Box as Box6, Text as Text2 } from "@vtex/brand-ui"; + +// src/components/tooltip/index.tsx +import { useEffect as useEffect3, useRef as useRef2, useState as useState2 } from "react"; +import { Box as Box5, Flex as Flex4 } from "@vtex/brand-ui"; + +// src/components/tooltip/styles.ts +var tooltipContainer = (sx, placement, width, height, x, y) => { + const position = { + bottom: { + left: `${x + width / 2}px`, + top: `${y + height + 3}px` + }, + left: { + left: `${x - 1}px`, + top: `${y + height / 2}px` + }, + top: { + left: `${x + width / 2}px`, + top: `${y - 3}px` + }, + right: { + left: `${x + width + 1}px`, + top: `${y + height / 2}px` + } + }; + const translation = { + bottom: "translateX(-50%)", + left: "translateX(-100%) translateY(-50%)", + top: "translateX(-50%) translateY(-100%)", + right: "translateY(-50%)" + }; + const direction = { + bottom: "column", + left: "row-reverse", + top: "column-reverse", + right: "row" + }; + return { + ...sx, + zIndex: "100", + position: "absolute", + alignItems: "center", + justifyContent: "center", + ...position[placement], + transform: translation[placement], + flexDirection: direction[placement] + }; +}; +var caret = (placement) => { + const rotation = { + bottom: 0, + left: 90, + top: 180, + right: 270 + }; + const translation = { + bottom: 1, + left: 3, + top: 1, + right: 3 + }; + return { + width: "8px", + height: "4px", + minWidth: "initial", + minHeight: "initial", + transform: `rotate(${rotation[placement]}deg) translateY(${translation[placement]}px)` + }; +}; +var label = { + borderRadius: "4px", + backgroundColor: "black", + color: "white", + fontSize: "12px", + fontWeight: "400", + lineHeight: "130%", + width: "max-content", + minWidth: "64px", + maxWidth: "240px", + overflowWrap: "break-word", + textAlign: "center" +}; +var labelContibutorsContainer = { + ...label, + padding: "4px 8px" +}; +var labelDocumentationContainer = { + ...label, + width: "284px", + minWidth: "284px", + maxWidth: "284px", + textAlign: "center", + px: "12px", + py: "8px" +}; +var labelStyle = (documentationSection) => { + if (documentationSection) + return labelDocumentationContainer; + return labelContibutorsContainer; +}; +var styles_default5 = { tooltipContainer, caret, labelStyle }; + +// src/components/icons/caret.tsx +import { Icon as Icon3 } from "@vtex/brand-ui"; +import { jsx as jsx8 } from "react/jsx-runtime"; +var CaretIcon = (props) => /* @__PURE__ */ jsx8( + Icon3, + { + ...props, + width: "9", + height: "4", + viewBox: "0 0 9 4", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + children: /* @__PURE__ */ jsx8( + "path", + { + d: "M5.20686 0.707106L8.49976 4L0.499756 4L3.79265 0.707107C4.18317 0.316583 4.81634 0.316582 5.20686 0.707106Z", + fill: "black" + } + ) + } +); +var caret_default = CaretIcon; + +// src/components/tooltip/index.tsx +import { jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime"; +var Tooltip = ({ + children, + label: label4, + placement, + sx, + isCard, + open, + wrapperSx +}) => { + const box2 = useRef2(); + const [boxWidth, setBoxWidth] = useState2(0); + const [boxHeight, setBoxHeight] = useState2(0); + const [boxOffsetLeft, setBoxOffsetLeft] = useState2(0); + const [boxOffsetTop, setBoxOffsetTop] = useState2(0); + const [hovered, setHovered] = useState2(false); + const visible = Boolean(open) || hovered; + useEffect3(() => { + if (box2.current) { + setBoxWidth(box2.current.clientWidth); + setBoxHeight(box2.current.clientHeight); + setBoxOffsetLeft(box2.current.offsetLeft); + setBoxOffsetTop(box2.current.offsetTop); + } + }, [ + open, + box2.current, + box2.current?.clientWidth, + box2.current?.clientHeight, + box2.current?.offsetLeft, + box2.current?.offsetTop + ]); + return /* @__PURE__ */ jsxs6(Box5, { sx: wrapperSx, children: [ + /* @__PURE__ */ jsx9( + Box5, + { + ref: box2, + onMouseEnter: () => setHovered(true), + onMouseLeave: () => setHovered(false), + children + } + ), + visible && (isCard ?? true) && /* @__PURE__ */ jsxs6( + Flex4, + { + sx: styles_default5.tooltipContainer( + sx, + placement || "top", + boxWidth, + boxHeight, + boxOffsetLeft, + boxOffsetTop + ), + children: [ + /* @__PURE__ */ jsx9(caret_default, { sx: styles_default5.caret(placement || "top") }), + /* @__PURE__ */ jsx9(Box5, { sx: styles_default5.labelStyle(isCard ?? false), children: label4 }) + ] + } + ) + ] }); +}; +var tooltip_default = Tooltip; + // src/utils/context/libraryContext.tsx -import { createContext, useEffect as useEffect3, useState as useState2 } from "react"; +import { createContext, useCallback, useEffect as useEffect4, useMemo, useState as useState3 } from "react"; import { SWRConfig } from "swr"; -import { jsx as jsx8 } from "react/jsx-runtime"; +import { jsx as jsx10 } from "react/jsx-runtime"; var LibraryContext = createContext({ headingItems: [], setHeadingItems: () => void 0, @@ -6282,6 +6482,7 @@ var LibraryContext = createContext({ toggleSidebarElementStatus: () => void 0, openSidebarElement: () => void 0, closeSidebarElements: () => void 0, + setOpenSidebarElements: () => void 0, sidebarSections: [], setSidebarSections: () => void 0, hamburguerSections: [], @@ -6289,56 +6490,93 @@ var LibraryContext = createContext({ locale: "en" }); var LibraryContextProvider = ({ children, ...props }) => { - const [headingItems, setHeadingItems] = useState2([]); - const [activeItem, setActiveItem] = useState2({ + const [headingItems, setHeadingItems] = useState3([]); + const [activeItem, setActiveItem] = useState3({ item: "", subItem: "" }); - const [activeSectionName, setActiveSectionName] = useState2( + const [activeSectionName, setActiveSectionName] = useState3( props.sectionSelected ); - const [sidebarSectionHidden, setSidebarSectionHidden] = useState2(false); - const [activeSidebarElement, setActiveSidebarElement] = useState2(""); - const [sidebarElementStatus, setSidebarElementStatus] = useState2(/* @__PURE__ */ new Map()); - const [sidebarDataMaster, setSidebarDataMaster] = useState2(props.fallback); - const [isEditorPreview, setIsEditorPreview] = useState2(props.isPreview); - const [sidebarSections, setSidebarSections] = useState2(props.sections); - const [hamburguerSections, setHamburguerSections] = useState2( + const [sidebarSectionHidden, setSidebarSectionHidden] = useState3(false); + const [activeSidebarElement, setActiveSidebarElement] = useState3(""); + const [sidebarElementStatus, setSidebarElementStatus] = useState3(/* @__PURE__ */ new Map()); + const [sidebarDataMaster, setSidebarDataMaster] = useState3(props.fallback); + const [isEditorPreview, setIsEditorPreview] = useState3(props.isPreview); + const [sidebarSections, setSidebarSections] = useState3(props.sections); + const [hamburguerSections, setHamburguerSections] = useState3( props.hamburguerMenuSections ); - const { locale: propsLocale, ...restProps } = props; - const locale = propsLocale ?? "en"; - const fallback = restProps.fallback; - useEffect3(() => { + const locale = props.locale ?? "en"; + const fallback = props.fallback; + useEffect4(() => { setSidebarDataMaster(props.fallback); }, [props.fallback]); - useEffect3(() => { + useEffect4(() => { if (props.sectionSelected === "") setSidebarSectionHidden(true); else if (props.sectionSelected !== activeSectionName) setActiveSectionName(props.sectionSelected); }, [props.sectionSelected]); - const toggleSidebarElementStatus = (title5) => { - setSidebarElementStatus((sidebarElementStatus2) => { - const open = sidebarElementStatus2.has(title5) === false ? true : !sidebarElementStatus2.get(title5); - return new Map(sidebarElementStatus2.set(title5, open)); + const toggleSidebarElementStatus = useCallback( + (title9, currentlyOpen) => { + setSidebarElementStatus((prev) => { + const open = prev.has(title9) ? !prev.get(title9) : !currentlyOpen; + const next = new Map(prev); + next.set(title9, open); + return next; + }); + }, + [] + ); + const closeSidebarElements = useCallback((parentsArray) => { + const parentSet = new Set(parentsArray); + setSidebarElementStatus((prev) => { + let changed = false; + const next = new Map(prev); + next.forEach((value, key) => { + if (!parentSet.has(key) && value) { + next.set(key, false); + changed = true; + } + }); + return changed ? next : prev; }); - }; - const closeSidebarElements = (parentsArray) => { - sidebarElementStatus.forEach((_value, key) => { - if (!parentsArray.includes(key)) { - setSidebarElementStatus((sidebarElementStatus2) => { - return new Map(sidebarElementStatus2.set(key, false)); - }); - } + }, []); + const openSidebarElement = useCallback((title9) => { + setSidebarElementStatus((prev) => { + if (prev.get(title9) === true) + return prev; + const next = new Map(prev); + next.set(title9, true); + return next; }); - }; - const openSidebarElement = (title5) => { - setSidebarElementStatus((sidebarElementStatus2) => { - return new Map(sidebarElementStatus2.set(title5, true)); + }, []); + const setOpenSidebarElements = useCallback((parentsArray) => { + if (parentsArray.length === 0) { + setSidebarElementStatus((prev) => prev.size === 0 ? prev : /* @__PURE__ */ new Map()); + return; + } + const parentSet = new Set(parentsArray); + setSidebarElementStatus((prev) => { + const next = new Map(prev); + let changed = false; + next.forEach((value, key) => { + if (!parentSet.has(key) && value) { + next.set(key, false); + changed = true; + } + }); + parentsArray.forEach((slug) => { + if (next.get(slug) !== true) { + next.set(slug, true); + changed = true; + } + }); + return changed ? next : prev; }); - }; - const goToPreviousItem = () => { + }, []); + const goToPreviousItem = useCallback(() => { setActiveItem(({ item: item2, subItem }) => { const index = headingItems.findIndex((heading) => heading.slug === item2); if (index === -1) @@ -6351,8 +6589,8 @@ var LibraryContextProvider = ({ children, ...props }) => { subItem: previousSubItem }; }); - }; - const goToPreviousSubItem = () => { + }, [headingItems]); + const goToPreviousSubItem = useCallback(() => { setActiveItem(({ item: item2, subItem }) => { const heading = headingItems.find((heading2) => heading2.slug === item2); const index = heading?.children.findIndex( @@ -6365,147 +6603,203 @@ var LibraryContextProvider = ({ children, ...props }) => { subItem: !index ? "" : heading.children[index - 1].slug }; }); - }; - return /* @__PURE__ */ jsx8( - LibraryContext.Provider, + }, [headingItems]); + const contextValue = useMemo( + () => ({ + headingItems, + activeItem, + setHeadingItems, + setActiveItem, + goToPreviousItem, + goToPreviousSubItem, + isEditorPreview, + setIsEditorPreview, + sidebarSectionHidden, + activeSectionName, + activeSidebarElement, + sidebarElementStatus, + setActiveSectionName, + setSidebarSectionHidden, + setActiveSidebarElement, + toggleSidebarElementStatus, + openSidebarElement, + closeSidebarElements, + setOpenSidebarElements, + sidebarDataMaster, + setSidebarDataMaster, + sidebarSections, + setSidebarSections, + hamburguerSections, + setHamburguerSections, + locale + }), + [ + headingItems, + activeItem, + goToPreviousItem, + goToPreviousSubItem, + isEditorPreview, + sidebarSectionHidden, + activeSectionName, + activeSidebarElement, + sidebarElementStatus, + toggleSidebarElementStatus, + openSidebarElement, + closeSidebarElements, + setOpenSidebarElements, + sidebarDataMaster, + sidebarSections, + hamburguerSections, + locale + ] + ); + return /* @__PURE__ */ jsx10(LibraryContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx10( + SWRConfig, { value: { - headingItems, - activeItem, - setHeadingItems, - setActiveItem, - goToPreviousItem, - goToPreviousSubItem, - isEditorPreview, - setIsEditorPreview, - sidebarSectionHidden, - activeSectionName, - activeSidebarElement, - sidebarElementStatus, - setActiveSectionName, - setSidebarSectionHidden, - setActiveSidebarElement, - toggleSidebarElementStatus, - openSidebarElement, - closeSidebarElements, - sidebarDataMaster, - setSidebarDataMaster, - sidebarSections, - setSidebarSections, - hamburguerSections, - setHamburguerSections, - locale, - ...restProps - }, - children: /* @__PURE__ */ jsx8( - SWRConfig, - { - value: { - fallback: { - "/api/navigation": fallback ? fallback : [] - } - }, - children + fallback: { + "/api/navigation": fallback ? fallback : [] } - ) + }, + children } - ); + ) }); }; var libraryContext_default = LibraryContextProvider; -// src/utils/string-utils.ts -var removeHTML = (str) => str.replace(/<\/?[^>]+>/g, ""); -var stripMarkdownForSnippet = (str) => { - if (!str) - return ""; - let cleaned = str.replace(/!\[[^\]]*\]\([^)]*\)/g, "").replace(/\[([^\]]+)\]\([^)]+\)/g, "$1").replace(/!?\[[^\]]*\]\([^)]*$/g, "").replace(/!?\[[^\]]*$/g, "").replace(/^#{1,6}\s+/gm, "").replace(/\s#{1,6}\s+/g, " ").replace(/\*\*(.+?)\*\*/g, "$1").replace(/__(.+?)__/g, "$1").replace(/\*(.+?)\*/g, "$1").replace(/_(.+?)_/g, "$1").replace(/`([^`]+)`/g, "$1").replace(/```[\s\S]*?```/g, "").replace(/^(\*{3,}|-{3,}|_{3,})$/gm, "").replace(/^>\s+/gm, "").replace(/^\s*\|?\s*:?-{3,}:?\s*(\|\s*:?-{3,}:?\s*)*\|?\s*$/gm, "").replace(/\s*\|\s*/g, " ").replace(/\s+/g, " ").trim(); - if (cleaned.length > 0 && /^[a-zà-ÿ]/.test(cleaned)) { - const firstSpaceIndex = cleaned.indexOf(" "); - if (firstSpaceIndex > 0 && firstSpaceIndex < 50) { - cleaned = cleaned.substring(firstSpaceIndex + 1).trim(); - } - } - return cleaned; -}; -var slugify = (str) => { - return str.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^\w\s-]/g, "").replace(/\s+/g, "-").replace(/-+/g, "-").trim(); -}; -var childrenToString = (children) => { - if (!children) - return ""; - else if (Array.isArray(children)) - return children.map((child) => { - if (typeof child === "string") - return child; - return childrenToString(child.props.children); - }).join(""); - else { - if (typeof children === "string") - return children; - return childrenToString(children["props"]["children"]); - } -}; - -// src/utils/mermaidInit.ts -import mermaid from "mermaid"; -var mermaidInit = () => { - mermaid.initialize({ - theme: "base", - themeVariables: { - primaryColor: "#FFFFFF", - primaryTextColor: "#142032", - primaryBorderColor: "#A1AAB7", - labelBoxBorderColor: "#E31C58", - labelTextColor: "#E31C58", - labelBoxBkgColor: "#FFF3F6", - lineColor: "#A1AAB7", - mainBkg: "#F8F7FC" - } - }); -}; -var mermaidInit_default = mermaidInit; - -// src/lib/markdown-renderer/styles.module.css -var styles_default5 = { - img: "styles_img", - heading: "styles_heading", - code: "styles_code", - blockquote: "styles_blockquote", - blockquoteInfo: "styles_blockquoteInfo", - blockquoteDanger: "styles_blockquoteDanger", - blockquoteWarning: "styles_blockquoteWarning", - blockquoteSuccess: "styles_blockquoteSuccess", - flexWrap: "styles_flexWrap", - svgContainer: "styles_svgContainer" -}; - -// src/messages/en.json -var en_default = { - "feedback_section.question": "Was this helpful?", - "feedback_section.response": "Thanks for the feedback!", - "feedback_section.positive": "Yes", - "feedback_section.negative": "No", - "feedback_section.edit": "Suggest Edits (GitHub)", - "feedback_modal.title": "Leave a Comment (Optional)", - "feedback_modal.button": "Send Feedback", - "search_input.empty": "No results found. Try different search terms.", - "search_input.placeholder": "Search", - "search_results.showing": "Showing", - "search_results.results_for": "results for", - "search_results.in": "in", - "search_results.all_lowercase": "all results", - "sidebar_search.placeholder": "Search in", - "search_input.see_all": "See all results", - "search_results.summary": 'Showing {count} results for "{keyword}" in {section}', - "search_results.all": "All results", - "search_card.in": "In", - "image.error_loading": "An error occurred while loading the image", - api_reference_sidebar_filter_clear: "Clear All", - api_reference_sidebar_filter: "Filter By", - "cookie_bar.title": "We use cookies", - "cookie_bar.description": "This website uses cookies to improve navigation, analyze usage, and assist with our marketing efforts.", - "cookie_bar.accept": "I agree", - "cookie_bar.decline": "I decline" +// src/messages/en.json +var en_default = { + "feedback_section.question": "Was this helpful?", + "feedback_section.response": "Thanks for the feedback!", + "feedback_section.positive": "Yes", + "feedback_section.negative": "No", + "feedback_section.edit": "Suggest Edits (GitHub)", + "feedback_modal.button": "Send feedback", + "feedback_modal.title": "Send feedback", + "feedback_modal.description": "Share suggestions, issues found, or ideas to improve our documentation.", + "feedback_modal.success": "Thank you! Your feedback has been received.", + "feedback_modal.error": "Sorry, we couldn\u2019t send your feedback. Please try again later.", + "feedback_modal.article": "Article", + "feedback_modal.message": "Message", + "feedback_modal.type": "Feedback type", + "feedback_modal.name": "Name", + "feedback_modal.email": "Email", + "feedback_modal.cancel": "Cancel", + "feedback_modal.submit": "Send", + "feedback_modal.submitting": "Sending...", + "feedback_modal.close": "Close modal", + "feedback_modal.done": "Done", + "feedback_modal.message_placeholder": "Describe your suggestion, question, or issue...", + "feedback_modal.name_placeholder": "Your name", + "feedback_modal.email_placeholder": "you@example.com", + "feedback_modal.type.incorrect": "Incorrect information", + "feedback_modal.type.page_not_found": "Page not found", + "feedback_modal.type.content_improvement": "Content improvement", + "feedback_modal.type.new_documentation": "New documentation", + "feedback_modal.type.other": "Other documentation feedback", + "search_input.empty": "No results found. Try different search terms.", + "search_input.placeholder": "Search", + "search_input.copy_link": "Copy link", + "search_input.copied": "Copied", + "heading_link.copy": "Copy link", + "heading_link.copied": "Copied", + "search_input.open_new_tab": "Open in new tab", + "search_input.clear": "Clear search", + "search_input.navigate": "Navigate", + "search_input.open": "Open", + "search_input.close": "Close", + "search_input.open_search": "Search", + "search_results.showing": "Showing", + "search_results.results_for": "results for", + "search_results.in": "in", + "search_results.all_lowercase": "all results", + "sidebar_search.placeholder": "Search in", + "search_input.see_all": "See all results", + "search_results.summary": 'Showing {count} results for "{keyword}" in {section}', + "search_results.all": "All results", + "search_card.in": "In", + "image.error_loading": "An error occurred while loading the image", + api_reference_sidebar_filter_clear: "Clear All", + api_reference_sidebar_filter: "Filter By", + "cookie_bar.title": "We use cookies", + "cookie_bar.description": "This website uses cookies to improve navigation, analyze usage, and assist with our marketing efforts.", + "cookie_bar.accept": "I agree", + "cookie_bar.decline": "I decline", + "landing_page_subscription.title": "Stay up to date with VTEX documentation", + "landing_page_subscription.description": "Subscribe to our monthly newsletter to receive information about the latest announcements, release notes, and newly published articles.", + "landing_page_newsletter.Button": "Subscribe", + "subscription_list.api_key_error": "Newsletter API key is not defined", + "subscription_list.invalid_email": "Invalid email address, please try another one.", + "subscription_list.success": "You've successfully subscribed!", + "subscription_list.error": "Sorry, we couldn't subscribe you. Please try again later.", + "subscription_list.privacy_notice": "By subscribing to our newsletter, you agree to our", + "subscription_list.privacy_policy_link": "Privacy Policy", + "on_this_page.title": "On this page", + "contributors.title": "Contributors", + "contributors.toggle_less": "Show less", + "contributors.toggle_more": "+ {count} contributors", + "contributors.photo_alt": "Photo of the contributor {name}", + "footer.github": "GitHub", + "footer.developer_portal": "Developer Portal", + "footer.help_center": "Help Center", + "footer.community": "Community", + "footer.feedback": "Feedback", + "header.docs": "Menu", + "header.feedback": "Feedback", + "header.admin_tools": "Admin tools", + "header.home_aria": "Go back to Home", + "documentation_reading_time.text": "{minutes} min read", + "date_text.created": "Published on", + "date_text.updated": "Last updated on", + "article_pagination.previous": "Previous", + "article_pagination.next": "Next", + "see_also_section.title": "See also", + "insert_account_name.placeholder": "Account name", + "insert_account_name.button": "Go to documentation", + "insert_account_name.tooltip": "View documentation page on VTEX Admin", + "insert_account_name.error": "Account name is required", + "ask_ai.copy": "Copy markdown", + "ask_ai.view": "View markdown", + "ask_ai.copied": "Copied", + "ask_assistant.button": "Ask Assistant", + "ask_assistant.title": "Assistant", + "ask_assistant.hero_title": "How can I help you?", + "ask_assistant.hero_subtitle": "Get answers from VTEX documentation.", + "ask_assistant.placeholder": "Ask a question...", + "ask_assistant.examples": "Examples:", + "ask_assistant.send": "Send", + "ask_assistant.close": "Close", + "ask_assistant.clear": "New chat", + "ask_assistant.history": "History", + "ask_assistant.history_clear": "clear", + "ask_assistant.expand": "Expand", + "ask_assistant.collapse": "Collapse", + "ask_assistant.copy": "Copy", + "ask_assistant.copied": "Copied", + "ask_assistant.regenerate": "Regenerate", + "ask_assistant.helpful": "Helpful", + "ask_assistant.not_helpful": "Not helpful", + "ask_assistant.error": "Could not reach the assistant. Please try again.", + "ask_assistant.searching": "Searching...", + "ask_assistant.searching_docs": "Searching documentation", + "ask_assistant.searching_endpoints": "Searching endpoints", + "ask_assistant.reading_endpoints": "Reading endpoint details", + "ask_assistant.reading_document": "Reading document", + "ask_assistant.read_file": "Read 1 file", + "ask_assistant.read_files": "Read {count} files", + "ask_assistant.found_endpoint": "Found 1 endpoint", + "ask_assistant.found_endpoints": "Found {count} endpoints", + "ask_assistant.tool": "Tool", + "ask_assistant.process_running": "Processing...", + "ask_assistant.process_completed": "Process completed ({count} steps)", + "ask_assistant.process_completed_one": "Process completed (1 step)", + "ask_assistant.step_search_docs": "Search documentation", + "ask_assistant.step_search_endpoints": "Search endpoints", + "ask_assistant.step_read_endpoints": "Read endpoint details", + "ask_assistant.step_read_document": "Read document", + "ask_assistant.step_create_response": "Create response", + "ask_assistant.step_search": "Search", + "ask_assistant.sources": "Sources" }; // src/messages/es.json @@ -6515,10 +6809,41 @@ var es_default = { "feedback_section.positive": "S\xED", "feedback_section.negative": "No", "feedback_section.edit": "Sugerir cambios (GitHub)", - "feedback_modal.title": "Dar feedback (opcional)", "feedback_modal.button": "Enviar feedback", + "feedback_modal.title": "Enviar feedback", + "feedback_modal.description": "Comparte sugerencias, problemas encontrados o ideas para mejorar nuestra documentaci\xF3n.", + "feedback_modal.success": "\xA1Gracias! Hemos recibido tu feedback.", + "feedback_modal.error": "No pudimos enviar tu feedback. Int\xE9ntalo de nuevo m\xE1s tarde.", + "feedback_modal.article": "Art\xEDculo", + "feedback_modal.message": "Mensaje", + "feedback_modal.type": "Tipo de feedback", + "feedback_modal.name": "Nombre", + "feedback_modal.email": "Correo electr\xF3nico", + "feedback_modal.cancel": "Cancelar", + "feedback_modal.submit": "Enviar", + "feedback_modal.submitting": "Enviando...", + "feedback_modal.close": "Cerrar modal", + "feedback_modal.done": "Listo", + "feedback_modal.message_placeholder": "Describe tu sugerencia, pregunta o problema...", + "feedback_modal.name_placeholder": "Tu nombre", + "feedback_modal.email_placeholder": "tu@ejemplo.com", + "feedback_modal.type.incorrect": "Incorrect information", + "feedback_modal.type.page_not_found": "Page not found", + "feedback_modal.type.content_improvement": "Content improvement", + "feedback_modal.type.new_documentation": "New documentation", + "feedback_modal.type.other": "Other documentation feedback", "search_input.empty": "No se encontraron resultados. Intenta utilizar otros t\xE9rminos.", "search_input.placeholder": "Buscar", + "search_input.copy_link": "Copiar enlace", + "search_input.copied": "Copiado", + "heading_link.copy": "Copiar enlace", + "heading_link.copied": "Copiado", + "search_input.open_new_tab": "Abrir en nueva pesta\xF1a", + "search_input.clear": "Limpiar b\xFAsqueda", + "search_input.navigate": "Navegar", + "search_input.open": "Abrir", + "search_input.close": "Cerrar", + "search_input.open_search": "Buscar", "sidebar_search.placeholder": "Buscar en", "search_results.showing": "Mostrando", "search_results.results_for": "resultados para", @@ -6534,7 +6859,84 @@ var es_default = { "cookie_bar.title": "Utilizamos cookies", "cookie_bar.description": "Este sitio web utiliza cookies para optimizar la navegaci\xF3n, analizar el uso e impulsar nuestros esfuerzos de marketing.", "cookie_bar.accept": "Acepto", - "cookie_bar.decline": "Rechazo" + "cookie_bar.decline": "Rechazo", + "landing_page_subscription.title": "Mantente al d\xEDa con la documentaci\xF3n de VTEX", + "landing_page_subscription.description": "Suscr\xEDbete a nuestro newsletter mensual para recibir informaci\xF3n sobre los \xFAltimos anuncios, release notes y art\xEDculos reci\xE9n publicados.", + "landing_page_newsletter.Button": "Inscr\xEDbete", + "subscription_list.api_key_error": "La clave de API de la newsletter no est\xE1 definida", + "subscription_list.invalid_email": "Direcci\xF3n de email inv\xE1lida, por favor intenta con otra.", + "subscription_list.success": "\xA1Te has suscrito con \xE9xito!", + "subscription_list.error": "Lo sentimos, no pudimos suscribirte. Por favor, int\xE9ntalo de nuevo m\xE1s tarde.", + "subscription_list.privacy_notice": "Al suscribirte a nuestra newsletter, aceptas nuestro", + "subscription_list.privacy_policy_link": "Aviso de privacidad", + "on_this_page.title": "En esta p\xE1gina", + "contributors.title": "Contribuidores", + "contributors.toggle_less": "Mostrar menos", + "contributors.toggle_more": "+ {count} contribuidores", + "contributors.photo_alt": "Foto del contribuidor {name}", + "footer.github": "GitHub", + "footer.developer_portal": "Developer Portal", + "footer.help_center": "Help Center", + "footer.community": "Comunidad", + "footer.feedback": "Feedback", + "header.docs": "Men\xFA", + "header.feedback": "Feedback", + "header.admin_tools": "Herramientas de admin", + "header.home_aria": "Volver al inicio", + "copy_heading_link.copy": "Copiar enlace", + "copy_heading_link.copied": "Copiado", + "documentation_reading_time.text": "{minutes} min de lectura", + "date_text.created": "Publicado el", + "date_text.updated": "\xDAltima actualizaci\xF3n el", + "article_pagination.previous": "Anterior", + "article_pagination.next": "Siguiente", + "see_also_section.title": "V\xE9ase tambi\xE9n", + "insert_account_name.placeholder": "Nombre de cuenta", + "insert_account_name.button": "Ir a la documentaci\xF3n", + "insert_account_name.tooltip": "Ver p\xE1gina de documentaci\xF3n en VTEX Admin", + "insert_account_name.error": "El nombre de cuenta es obligatorio", + "ask_ai.copy": "Copiar markdown", + "ask_ai.view": "Ver markdown", + "ask_ai.copied": "Copiado", + "ask_assistant.button": "Preguntar al Assistant", + "ask_assistant.title": "Assistant", + "ask_assistant.hero_title": "\xBFC\xF3mo puedo ayudarte?", + "ask_assistant.hero_subtitle": "Obt\xE9n respuestas de la documentaci\xF3n de VTEX.", + "ask_assistant.placeholder": "Haz una pregunta...", + "ask_assistant.examples": "Ejemplos:", + "ask_assistant.send": "Enviar", + "ask_assistant.close": "Cerrar", + "ask_assistant.clear": "Nueva conversaci\xF3n", + "ask_assistant.history": "Historial", + "ask_assistant.history_clear": "borrar", + "ask_assistant.expand": "Expandir", + "ask_assistant.collapse": "Contraer", + "ask_assistant.copy": "Copiar", + "ask_assistant.copied": "Copiado", + "ask_assistant.regenerate": "Volver a generar", + "ask_assistant.helpful": "\xDAtil", + "ask_assistant.not_helpful": "No fue \xFAtil", + "ask_assistant.error": "No se pudo contactar al assistant. Int\xE9ntalo de nuevo.", + "ask_assistant.searching": "Buscando...", + "ask_assistant.searching_docs": "Buscando documentaci\xF3n", + "ask_assistant.searching_endpoints": "Buscando endpoints", + "ask_assistant.reading_endpoints": "Leyendo detalles del endpoint", + "ask_assistant.reading_document": "Leyendo documento", + "ask_assistant.read_file": "Ley\xF3 1 archivo", + "ask_assistant.read_files": "Ley\xF3 {count} archivos", + "ask_assistant.found_endpoint": "Encontr\xF3 1 endpoint", + "ask_assistant.found_endpoints": "Encontr\xF3 {count} endpoints", + "ask_assistant.tool": "Herramienta", + "ask_assistant.process_running": "Procesando...", + "ask_assistant.process_completed": "Proceso completado ({count} pasos)", + "ask_assistant.process_completed_one": "Proceso completado (1 paso)", + "ask_assistant.step_search_docs": "Buscar documentaci\xF3n", + "ask_assistant.step_search_endpoints": "Buscar endpoints", + "ask_assistant.step_read_endpoints": "Leer detalles del endpoint", + "ask_assistant.step_read_document": "Leer documento", + "ask_assistant.step_create_response": "Crear respuesta", + "ask_assistant.step_search": "Buscar", + "ask_assistant.sources": "Fuentes" }; // src/messages/pt.json @@ -6544,10 +6946,41 @@ var pt_default = { "feedback_section.positive": "Sim", "feedback_section.negative": "N\xE3o", "feedback_section.edit": "Sugerir edi\xE7\xF5es (GitHub)", - "feedback_modal.title": "Deixe um coment\xE1rio (opcional)", "feedback_modal.button": "Enviar feedback", + "feedback_modal.title": "Enviar feedback", + "feedback_modal.description": "Compartilhe sugest\xF5es, problemas encontrados ou ideias para melhorar nossa documenta\xE7\xE3o.", + "feedback_modal.success": "Obrigado! Seu feedback foi recebido.", + "feedback_modal.error": "N\xE3o foi poss\xEDvel enviar seu feedback. Tente novamente mais tarde.", + "feedback_modal.article": "Artigo", + "feedback_modal.message": "Mensagem", + "feedback_modal.type": "Tipo de feedback", + "feedback_modal.name": "Nome", + "feedback_modal.email": "E-mail", + "feedback_modal.cancel": "Cancelar", + "feedback_modal.submit": "Enviar", + "feedback_modal.submitting": "Enviando...", + "feedback_modal.close": "Fechar modal", + "feedback_modal.done": "Concluir", + "feedback_modal.message_placeholder": "Descreva sua sugest\xE3o, d\xFAvida ou problema...", + "feedback_modal.name_placeholder": "Seu nome", + "feedback_modal.email_placeholder": "voce@exemplo.com", + "feedback_modal.type.incorrect": "Incorrect information", + "feedback_modal.type.page_not_found": "Page not found", + "feedback_modal.type.content_improvement": "Content improvement", + "feedback_modal.type.new_documentation": "New documentation", + "feedback_modal.type.other": "Other documentation feedback", "search_input.empty": "Nenhum resultado encontrado. Tente buscar por outros termos.", "search_input.placeholder": "Buscar", + "search_input.copy_link": "Copiar link", + "search_input.copied": "Copiado", + "heading_link.copy": "Copiar link", + "heading_link.copied": "Copiado", + "search_input.open_new_tab": "Abrir em nova aba", + "search_input.clear": "Limpar busca", + "search_input.navigate": "Navegar", + "search_input.open": "Abrir", + "search_input.close": "Fechar", + "search_input.open_search": "Buscar", "sidebar_search.placeholder": "Buscar em", "search_results.showing": "Mostrando", "search_results.results_for": "resultados para", @@ -6563,22 +6996,441 @@ var pt_default = { "cookie_bar.title": "N\xF3s usamos cookies", "cookie_bar.description": "Este site utiliza cookies para melhorar a navega\xE7\xE3o, analisar a experi\xEAncia de uso e auxiliar em nossas a\xE7\xF5es de marketing.", "cookie_bar.accept": "Concordo", - "cookie_bar.decline": "Discordo" + "cookie_bar.decline": "Discordo", + "landing_page_subscription.title": "Mantenha-se em dia com a documenta\xE7\xE3o da VTEX", + "landing_page_subscription.description": "Assine nossa newsletter mensal para receber informa\xE7\xF5es sobre os Announcements mais recentes, Release Notes e os artigos rec\xE9m-publicados.", + "landing_page_newsletter.Button": "Inscreva-se", + "subscription_list.api_key_error": "A chave da API da newsletter n\xE3o est\xE1 definida", + "subscription_list.invalid_email": "Endere\xE7o de email inv\xE1lido, por favor tente outro.", + "subscription_list.success": "Voc\xEA se inscreveu com sucesso!", + "subscription_list.error": "Desculpe, n\xE3o foi poss\xEDvel realizar sua inscri\xE7\xE3o. Por favor, tente novamente mais tarde.", + "subscription_list.privacy_notice": "Ao assinar nossa newsletter, voc\xEA concorda com a nossa", + "subscription_list.privacy_policy_link": "Pol\xEDtica de Privacidade", + "on_this_page.title": "Nesta p\xE1gina", + "contributors.title": "Contribuidores", + "contributors.toggle_less": "Ver menos", + "contributors.toggle_more": "+ {count} contribuidores", + "contributors.photo_alt": "Foto do contribuidor {name}", + "footer.github": "GitHub", + "footer.developer_portal": "Developer Portal", + "footer.help_center": "Help Center", + "footer.community": "Comunidade", + "footer.feedback": "Feedback", + "header.docs": "Menu", + "header.feedback": "Feedback", + "header.admin_tools": "Ferramentas de admin", + "header.home_aria": "Voltar para o in\xEDcio", + "copy_heading_link.copy": "Copiar link", + "copy_heading_link.copied": "Copiado", + "documentation_reading_time.text": "{minutes} min de leitura", + "date_text.created": "Publicado em", + "date_text.updated": "\xDAltima atualiza\xE7\xE3o em", + "article_pagination.previous": "Anterior", + "article_pagination.next": "Pr\xF3ximo", + "see_also_section.title": "Veja tamb\xE9m", + "insert_account_name.placeholder": "Nome da conta", + "insert_account_name.button": "Acessar documenta\xE7\xE3o", + "insert_account_name.tooltip": "Ver p\xE1gina de documenta\xE7\xE3o no Admin VTEX", + "insert_account_name.error": "O nome da conta \xE9 obrigat\xF3rio", + "ask_ai.copy": "Copiar markdown", + "ask_ai.view": "Ver markdown", + "ask_ai.copied": "Copiado", + "ask_assistant.button": "Perguntar ao Assistant", + "ask_assistant.title": "Assistant", + "ask_assistant.hero_title": "Como posso te ajudar?", + "ask_assistant.hero_subtitle": "Obtenha respostas da documenta\xE7\xE3o da VTEX.", + "ask_assistant.placeholder": "Fa\xE7a uma pergunta...", + "ask_assistant.examples": "Exemplos:", + "ask_assistant.send": "Enviar", + "ask_assistant.close": "Fechar", + "ask_assistant.clear": "Nova conversa", + "ask_assistant.history": "Hist\xF3rico", + "ask_assistant.history_clear": "limpar", + "ask_assistant.expand": "Expandir", + "ask_assistant.collapse": "Recolher", + "ask_assistant.copy": "Copiar", + "ask_assistant.copied": "Copiado", + "ask_assistant.regenerate": "Gerar novamente", + "ask_assistant.helpful": "\xDAtil", + "ask_assistant.not_helpful": "N\xE3o foi \xFAtil", + "ask_assistant.error": "N\xE3o foi poss\xEDvel falar com o assistant. Tente novamente.", + "ask_assistant.searching": "Buscando...", + "ask_assistant.searching_docs": "Buscando documenta\xE7\xE3o", + "ask_assistant.searching_endpoints": "Buscando endpoints", + "ask_assistant.reading_endpoints": "Lendo detalhes do endpoint", + "ask_assistant.reading_document": "Lendo documento", + "ask_assistant.read_file": "Leu 1 arquivo", + "ask_assistant.read_files": "Leu {count} arquivos", + "ask_assistant.found_endpoint": "Encontrou 1 endpoint", + "ask_assistant.found_endpoints": "Encontrou {count} endpoints", + "ask_assistant.tool": "Ferramenta", + "ask_assistant.process_running": "Processando...", + "ask_assistant.process_completed": "Processo conclu\xEDdo ({count} passos)", + "ask_assistant.process_completed_one": "Processo conclu\xEDdo (1 passo)", + "ask_assistant.step_search_docs": "Buscar documenta\xE7\xE3o", + "ask_assistant.step_search_endpoints": "Buscar endpoints", + "ask_assistant.step_read_endpoints": "Ler detalhes do endpoint", + "ask_assistant.step_read_document": "Ler documento", + "ask_assistant.step_create_response": "Criar resposta", + "ask_assistant.step_search": "Buscar", + "ask_assistant.sources": "Fontes" }; // src/utils/get-message.ts var getMessages = () => { - const messages2 = { + const messages3 = { en: en_default, es: es_default, pt: pt_default }; - return messages2; + return messages3; }; var messages = getMessages(); +// src/components/insert-account-name/styles.ts +var wrapper = { + display: "flex", + flexDirection: "column", + gap: "4px", + my: "16px" +}; +var container3 = { + display: "flex", + flexDirection: "row", + alignItems: "center", + gap: "8px" +}; +var input = { + width: "280px", + height: "40px", + padding: "0 12px", + border: "1px solid #ccc", + borderRadius: "4px", + fontSize: "14px", + boxSizing: "border-box", + transition: "border-color 0.3s ease-out" +}; +var inputError = { + borderColor: "#E31C58", + outline: "none" +}; +var button = { + height: "40px", + padding: "0 16px", + border: "1px solid #ccc", + borderRadius: "4px", + fontSize: "14px", + background: "transparent", + cursor: "pointer", + whiteSpace: "nowrap", + boxSizing: "border-box", + transition: "all 0.3s ease-out" +}; +var buttonHover = { + background: "#F8F7FC", + borderColor: "#5E6E84", + color: "#E31C58" +}; +var errorText = { + fontSize: "12px", + color: "#E31C58" +}; +var styles_default6 = { + wrapper, + container: container3, + input, + inputError, + button, + buttonHover, + errorText +}; + +// src/components/insert-account-name/index.tsx +import { jsx as jsx11, jsxs as jsxs7 } from "react/jsx-runtime"; +var InsertAccountName = ({ id }) => { + const { locale } = useContext(LibraryContext); + const [accountName, setAccountName] = useState4(""); + const [showError, setShowError] = useState4(false); + const [hovered, setHovered] = useState4(false); + const handleNavigate = () => { + if (!accountName.trim()) { + setShowError(true); + return; + } + window.open( + `https://${accountName.trim()}.myvtex.com/admin/docs/${id}`, + "_blank" + ); + }; + const handleChange = (e) => { + setAccountName(e.target.value); + if (showError) + setShowError(false); + }; + return /* @__PURE__ */ jsxs7(Box6, { sx: styles_default6.wrapper, children: [ + /* @__PURE__ */ jsxs7(Box6, { sx: styles_default6.container, children: [ + /* @__PURE__ */ jsx11( + "input", + { + placeholder: messages[locale]["insert_account_name.placeholder"] || "Account name", + value: accountName, + onChange: handleChange, + onKeyDown: (e) => { + if (e.key === "Enter") + handleNavigate(); + }, + style: { + ...styles_default6.input, + ...showError ? styles_default6.inputError : {} + } + } + ), + /* @__PURE__ */ jsx11( + tooltip_default, + { + label: messages[locale]["insert_account_name.tooltip"] || "View documentation page on VTEX Admin", + placement: "top", + children: /* @__PURE__ */ jsx11( + "button", + { + onClick: handleNavigate, + onMouseEnter: () => setHovered(true), + onMouseLeave: () => setHovered(false), + style: { + ...styles_default6.button, + ...hovered ? styles_default6.buttonHover : {} + }, + children: messages[locale]["insert_account_name.button"] || "Go to documentation" + } + ) + } + ) + ] }), + showError && /* @__PURE__ */ jsx11(Text2, { sx: styles_default6.errorText, children: messages[locale]["insert_account_name.error"] || "Account name is required" }) + ] }); +}; +var insert_account_name_default = InsertAccountName; + +// src/utils/string-utils.ts +var removeHTML = (str) => str.replace(/<\/?[^>]+>/g, ""); +var SYMBOL_RUN_THRESHOLD = 3; +var stripMarkdownForSnippet = (str) => { + if (!str) + return ""; + let cleaned = str.replace(/```[\s\S]*?```/g, "").replace(/```[^\n]*(?:\n[\s\S]*)?$/g, "").replace(/!\[[^\]]*\]\([^)]*\)/g, "").replace(/\[([^\]]+)\]\([^)]+\)/g, "$1").replace(/!?\[[^\]]*\]\([^)]*$/g, "").replace(/!?\[[^\]]*$/g, "").replace(/^#{1,6}\s+/gm, "").replace(/\s#{1,6}\s+/g, " ").replace(/\*\*(.+?)\*\*/g, "$1").replace(/__(.+?)__/g, "$1").replace(/\*(.+?)\*/g, "$1").replace(/_(.+?)_/g, "$1").replace(/`([^`]+)`/g, "$1").replace(/^(\*{3,}|-{3,}|_{3,})$/gm, "").replace(/^>\s+/gm, "").replace(/^\s*\|?\s*:?-{3,}:?\s*(\|\s*:?-{3,}:?\s*)*\|?\s*$/gm, "").replace(/\s*\|\s*/g, " ").replace(new RegExp(`-{${SYMBOL_RUN_THRESHOLD},}`, "g"), " ").replace(new RegExp(`={${SYMBOL_RUN_THRESHOLD},}`, "g"), " ").replace(new RegExp(`\\|{${SYMBOL_RUN_THRESHOLD},}`, "g"), " ").replace(/\s+/g, " ").trim(); + if (cleaned.length > 0 && /^[a-zà-ÿ]/.test(cleaned)) { + const firstSpaceIndex = cleaned.indexOf(" "); + if (firstSpaceIndex > 0 && firstSpaceIndex < 50) { + cleaned = cleaned.substring(firstSpaceIndex + 1).trim(); + } + } + return cleaned; +}; +var capitalizeFirstLetter = (str) => { + return str.charAt(0).toUpperCase() + str.slice(1); +}; +var slugify = (str) => { + return str.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^\w\s-]/g, "").replace(/\s+/g, "-").replace(/-+/g, "-").trim(); +}; +var childrenToString = (children) => { + if (!children) + return ""; + else if (Array.isArray(children)) + return children.map((child) => { + if (typeof child === "string") + return child; + return childrenToString(child.props.children); + }).join(""); + else { + if (typeof children === "string") + return children; + return childrenToString(children["props"]["children"]); + } +}; + +// src/utils/mermaidInit.ts +import mermaid from "mermaid"; +var mermaidInit = () => { + mermaid.initialize({ + theme: "base", + themeVariables: { + primaryColor: "#FFFFFF", + primaryTextColor: "#142032", + primaryBorderColor: "#A1AAB7", + labelBoxBorderColor: "#E31C58", + labelTextColor: "#E31C58", + labelBoxBkgColor: "#FFF3F6", + lineColor: "#A1AAB7", + mainBkg: "#F8F7FC" + } + }); +}; +var mermaidInit_default = mermaidInit; + +// src/components/copy-heading-link/index.tsx +import { + useCallback as useCallback2, + useContext as useContext2, + useEffect as useEffect5, + useRef as useRef3, + useState as useState5 +} from "react"; +import { Box as Box7 } from "@vtex/brand-ui"; +import copy from "copy-text-to-clipboard"; + +// src/components/icons/link-icon.tsx +import { Icon as Icon4 } from "@vtex/brand-ui"; +import { jsx as jsx12, jsxs as jsxs8 } from "react/jsx-runtime"; +var LinkIcon = (props) => /* @__PURE__ */ jsxs8( + Icon4, + { + ...props, + viewBox: "0 0 16 16", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + children: [ + /* @__PURE__ */ jsx12( + "path", + { + d: "M6.6665 8.66672C6.95281 9.04948 7.31808 9.36618 7.73754 9.59535C8.157 9.82452 8.62084 9.9608 9.0976 9.99495C9.57437 10.0291 10.0529 9.9603 10.5007 9.79325C10.9486 9.62619 11.3552 9.36477 11.6932 9.02672L13.6932 7.02672C14.3004 6.39805 14.6363 5.55604 14.6288 4.68205C14.6212 3.80806 14.2706 2.97202 13.6526 2.354C13.0345 1.73597 12.1985 1.38541 11.3245 1.37781C10.4505 1.37022 9.60851 1.7062 8.97984 2.31339L7.83317 3.45339", + stroke: "currentcolor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ), + /* @__PURE__ */ jsx12( + "path", + { + d: "M9.33347 7.33332C9.04716 6.95057 8.68189 6.63387 8.26243 6.40469C7.84297 6.17552 7.37913 6.03924 6.90237 6.0051C6.4256 5.97095 5.94707 6.03974 5.49924 6.2068C5.0514 6.37386 4.64472 6.63527 4.3068 6.97332L2.3068 8.97332C1.69961 9.60199 1.36363 10.444 1.37122 11.318C1.37881 12.192 1.72938 13.028 2.3474 13.646C2.96543 14.2641 3.80147 14.6146 4.67546 14.6222C5.54945 14.6298 6.39146 14.2938 7.02013 13.6867L8.16013 12.5467", + stroke: "currentcolor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ) + ] + } +); +var link_icon_default = LinkIcon; + +// src/components/copy-heading-link/styles.ts +var muted = "#A1AAB7"; +var mutedHover = "#5E6E84"; +var pink = "#E31C58"; +var tooltipWrapper = { + display: "inline-flex", + verticalAlign: "middle", + position: "relative", + lineHeight: 0 +}; +var button2 = { + display: "inline-flex", + alignItems: "center", + justifyContent: "center", + flexShrink: 0, + ml: "8px", + p: 0, + border: "none", + background: "transparent", + color: muted, + cursor: "pointer", + verticalAlign: "middle", + lineHeight: 0, + userSelect: "none", + transition: "color 0.15s ease", + ":hover": { + color: mutedHover + }, + ":focus-visible": { + outline: `2px solid ${pink}`, + outlineOffset: "2px", + borderRadius: "2px" + } +}; +var buttonCopied = { + ...button2, + color: mutedHover +}; +var styles_default7 = { tooltipWrapper, button: button2, buttonCopied }; + +// src/components/copy-heading-link/index.tsx +import { jsx as jsx13 } from "react/jsx-runtime"; +var getHeadingUrl = (slug = "") => { + const { origin, pathname, search: search2 } = window.location; + const pageUrl = `${origin}${pathname}${search2}`; + if (!slug) + return pageUrl; + const hash = slug.startsWith("#") ? slug : `#${slug}`; + return `${pageUrl}${hash}`; +}; +var CopyHeadingLink = ({ + slug = "", + size = 16, + sx = {} +}) => { + const { locale } = useContext2(LibraryContext); + const [copied, setCopied] = useState5(false); + const copyTimeout = useRef3(void 0); + const copyLabel = messages[locale]["heading_link.copy"] || "Copy link"; + const copiedLabel = messages[locale]["heading_link.copied"] || "Copied"; + const label4 = copied ? copiedLabel : copyLabel; + const handleCopy = useCallback2( + (event) => { + event.preventDefault(); + event.stopPropagation(); + copy(getHeadingUrl(slug)); + setCopied(true); + window.clearTimeout(copyTimeout.current); + copyTimeout.current = window.setTimeout(() => { + setCopied(false); + }, 2e3); + }, + [slug] + ); + useEffect5(() => () => window.clearTimeout(copyTimeout.current), []); + return /* @__PURE__ */ jsx13( + tooltip_default, + { + label: label4, + placement: "top", + open: copied, + wrapperSx: styles_default7.tooltipWrapper, + children: /* @__PURE__ */ jsx13( + Box7, + { + as: "button", + type: "button", + "data-copy-heading-link": true, + sx: { ...copied ? styles_default7.buttonCopied : styles_default7.button, ...sx }, + "aria-label": label4, + onClick: handleCopy, + onMouseDown: (event) => event.preventDefault(), + children: /* @__PURE__ */ jsx13(link_icon_default, { size }) + } + ) + } + ); +}; +var copy_heading_link_default = CopyHeadingLink; + +// src/lib/markdown-renderer/styles.module.css +var styles_default8 = { + 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/lib/markdown-renderer/components.tsx -import { jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime"; +import { Fragment, jsx as jsx14, jsxs as jsxs9 } from "react/jsx-runtime"; mermaidInit_default(); var ObservableHeading = ({ level, @@ -6586,10 +7438,15 @@ var ObservableHeading = ({ onLeaveView, ...headingProps }) => { - const [y, setY] = useState3(Infinity); - const toSlugify = childrenToString(headingProps.children); + const [y, setY] = useState6(Infinity); + const { children, ...restHeadingProps } = headingProps; + const toSlugify = childrenToString(children); const slug = slugify(toSlugify); - return /* @__PURE__ */ jsx9( + const headingContent = /* @__PURE__ */ jsxs9(Fragment, { children: [ + children, + /* @__PURE__ */ jsx14(copy_heading_link_default, { slug, size: level === 2 ? 18 : 16 }) + ] }); + return /* @__PURE__ */ jsx14( InView, { threshold: 0.5, @@ -6602,44 +7459,91 @@ var ObservableHeading = ({ onLeaveView(slug, entry, y); setY(entry.boundingClientRect.y); }, - children: level === 2 ? /* @__PURE__ */ jsx9("h2", { id: slug, className: styles_default5.heading, ...headingProps }) : /* @__PURE__ */ jsx9("h3", { id: slug, className: styles_default5.heading, ...headingProps }) + children: level === 2 ? /* @__PURE__ */ jsx14("h2", { id: slug, className: styles_default8.heading, ...restHeadingProps, children: headingContent }) : /* @__PURE__ */ jsx14("h3", { id: slug, className: styles_default8.heading, ...restHeadingProps, children: headingContent }) } ); }; -var Callout = ({ node, icon: icon4, ...props }) => { - const blockquoteType = icon4 ? icon4 : "info"; - return /* @__PURE__ */ jsx9( - "blockquote", - { - 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("div", { ...props }) - } - ); +var calloutColors = { + info: "#8C929D", + danger: "#DC5A41", + warning: "#FFB100", + success: "#80BE80" }; -var MermaidDiagram = ({ node, ...props }) => { - const viewerRef = useRef2(null); - const ref = useRef2(); - const [diagram, setDiagram] = useState3(""); - const [width, setWidth] = useState3(0); - const [height, setHeight] = useState3(0); - useEffect4(() => { - const resizeObserver = new ResizeObserver(() => { - if (!ref.current) - return; - setWidth(ref.current?.clientWidth ?? 0); - setHeight(ref.current?.clientWidth / 2); - }); - const mermaidRenderer = async function() { - const { svg } = await mermaid2.render("mermaid-id", props.children); - setDiagram( - svg.replace('id="mermaid-id"', "").replaceAll("#mermaid-id", "") - ); - }; +var CalloutIcon = ({ type }) => /* @__PURE__ */ jsxs9( + "svg", + { + className: styles_default8.blockquoteIcon, + width: "20", + height: "20", + viewBox: "0 0 20 20", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + children: [ + /* @__PURE__ */ jsx14( + "circle", + { + cx: "10", + cy: "10", + r: "10", + fill: calloutColors[type] ?? calloutColors.info + } + ), + type === "success" ? /* @__PURE__ */ jsx14( + "path", + { + d: "M5.5 10.3L8.3 13L14.5 6.8", + stroke: "white", + strokeWidth: "1.6", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ) : type === "info" ? /* @__PURE__ */ jsxs9(Fragment, { children: [ + /* @__PURE__ */ jsx14("rect", { x: "9.1", y: "5", width: "1.8", height: "1.8", rx: "0.9", fill: "white" }), + /* @__PURE__ */ jsx14("rect", { x: "9.1", y: "8.2", width: "1.8", height: "6.8", rx: "0.9", fill: "white" }) + ] }) : /* @__PURE__ */ jsxs9(Fragment, { children: [ + /* @__PURE__ */ jsx14("rect", { x: "9.1", y: "5", width: "1.8", height: "7", rx: "0.9", fill: "white" }), + /* @__PURE__ */ jsx14("rect", { x: "9.1", y: "13.5", width: "1.8", height: "1.8", rx: "0.9", fill: "white" }) + ] }) + ] + } +); +var Callout = ({ node, icon: icon6, ...props }) => { + const blockquoteType = icon6 ? icon6 : "info"; + return /* @__PURE__ */ jsxs9( + "blockquote", + { + className: `${styles_default8.blockquote} ${blockquoteType === "info" ? styles_default8.blockquoteInfo : blockquoteType === "danger" ? styles_default8.blockquoteDanger : blockquoteType === "warning" ? styles_default8.blockquoteWarning : blockquoteType === "success" ? styles_default8.blockquoteSuccess : ""}`, + children: [ + /* @__PURE__ */ jsx14(CalloutIcon, { type: blockquoteType }), + /* @__PURE__ */ jsx14("div", { ...props }) + ] + } + ); +}; +var MermaidDiagram = ({ node, ...props }) => { + const viewerRef = useRef4(null); + const ref = useRef4(); + const [diagram, setDiagram] = useState6(""); + const [width, setWidth] = useState6(0); + const [height, setHeight] = useState6(0); + useEffect6(() => { + const resizeObserver = new ResizeObserver(() => { + if (!ref.current) + return; + setWidth(ref.current?.clientWidth ?? 0); + setHeight(ref.current?.clientWidth / 2); + }); + const mermaidRenderer = async function() { + const { svg } = await mermaid2.render("mermaid-id", props.children); + setDiagram( + svg.replace('id="mermaid-id"', "").replaceAll("#mermaid-id", "") + ); + }; mermaidRenderer(); if (ref.current) resizeObserver.observe(ref.current); }, []); - return /* @__PURE__ */ jsx9(Box5, { ref, className: styles_default5.svgContainer, children: /* @__PURE__ */ jsx9( + return /* @__PURE__ */ jsx14(Box8, { ref, className: styles_default8.svgContainer, children: /* @__PURE__ */ jsx14( UncontrolledReactSVGPanZoom, { ref: viewerRef, @@ -6654,21 +7558,24 @@ var MermaidDiagram = ({ node, ...props }) => { background: "rgba(0, 0, 0, 0)", detectAutoPan: false, detectWheel: false, - children: /* @__PURE__ */ jsx9("svg", { width, height, children: parse(diagram) }) + children: /* @__PURE__ */ jsx14("svg", { width, height, children: parse(diagram) }) } ) }); }; var ImageComponent = ({ node, ...props }) => { - const [srcHasError, setSrcHasError] = useState3(false); - const { locale } = useContext(LibraryContext); + const [srcHasError, setSrcHasError] = useState6(false); + const { locale } = useContext3(LibraryContext); const regularImg = ( // eslint-disable-next-line @next/next/no-img-element - /* @__PURE__ */ jsx9("img", { src: props.src, alt: props.alt, onError: () => setSrcHasError(true) }) + /* @__PURE__ */ jsx14("img", { src: props.src, alt: props.alt, onError: () => setSrcHasError(true) }) ); - const errorMessage = /* @__PURE__ */ jsxs6("blockquote", { className: `${styles_default5.blockquote} ${styles_default5.blockquoteWarning}`, children: [ - messages[locale]["image.error_loading"], - " ", - props.src + const errorMessage = /* @__PURE__ */ jsxs9("blockquote", { className: `${styles_default8.blockquote} ${styles_default8.blockquoteWarning}`, children: [ + /* @__PURE__ */ jsx14(CalloutIcon, { type: "warning" }), + /* @__PURE__ */ jsxs9("div", { children: [ + messages[locale]["image.error_loading"], + " ", + props.src + ] }) ] }); let data = { base64: "", img: {} }; try { @@ -6677,7 +7584,7 @@ var ImageComponent = ({ node, ...props }) => { console.log(`Error parsing`, error); return errorMessage; } - return !srcHasError ? /* @__PURE__ */ jsx9(LightBox, { children: regularImg }) : errorMessage; + return !srcHasError ? /* @__PURE__ */ jsx14(LightBox, { children: regularImg }) : errorMessage; }; var components_default = { CH, @@ -6685,27 +7592,28 @@ var components_default = { WhatsNextCard: whats_next_card_default, YoutubeFrame: youtube_frame_default, Steps: steps_default, - 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 }), + InsertAccountName: insert_account_name_default, + Flex: ({ node, ...props }) => /* @__PURE__ */ jsx14(Flex5, { className: styles_default8.flexWrap, ...props }), + table: ({ node, ...props }) => /* @__PURE__ */ jsx14("table", { ...props }), + td: ({ node, ...props }) => /* @__PURE__ */ jsx14("td", { ...props }), img: ImageComponent, text: ({ node, ...props }) => { - return /* @__PURE__ */ jsx9(Box5, { sx: { marginBlock: "1em" }, ...props }); + return /* @__PURE__ */ jsx14(Box8, { sx: { marginBlock: "1em" }, ...props }); }, blockquote: ({ ...props }) => { - return /* @__PURE__ */ jsx9(Callout, { ...props }); + return /* @__PURE__ */ jsx14(Callout, { ...props }); }, code: ({ node, ...props }) => { - return /* @__PURE__ */ jsx9("code", { className: styles_default5.code, ...props }); + return /* @__PURE__ */ jsx14("code", { className: styles_default8.code, ...props }); }, pre: ({ ...props }) => { if (props.className && props.className === "mermaid") - return /* @__PURE__ */ jsx9(MermaidDiagram, { ...props }); - return /* @__PURE__ */ jsx9("pre", { className: styles_default5.pre, ...props }); + return /* @__PURE__ */ jsx14(MermaidDiagram, { ...props }); + return /* @__PURE__ */ jsx14("pre", { className: styles_default8.pre, ...props }); }, h2: ({ node, ...props }) => { - const { activeItem, setActiveItem, goToPreviousItem } = useContext(LibraryContext); - return /* @__PURE__ */ jsx9( + const { activeItem, setActiveItem, goToPreviousItem } = useContext3(LibraryContext); + return /* @__PURE__ */ jsx14( ObservableHeading, { level: 2, @@ -6725,8 +7633,8 @@ var components_default = { ); }, h3: ({ node, ...props }) => { - const { activeItem, setActiveItem, goToPreviousSubItem } = useContext(LibraryContext); - return /* @__PURE__ */ jsx9( + const { activeItem, setActiveItem, goToPreviousSubItem } = useContext3(LibraryContext); + return /* @__PURE__ */ jsx14( ObservableHeading, { level: 3, @@ -6748,7 +7656,7 @@ var components_default = { }; // src/lib/markdown-renderer/MarkdownRenderer.tsx -import { jsx as jsx10 } from "react/jsx-runtime"; +import { jsx as jsx15 } from "react/jsx-runtime"; var MDXRemote2 = MDXRemote; var MarkdownRenderer = ({ serialized, @@ -6756,7 +7664,7 @@ var MarkdownRenderer = ({ scope }) => { if (components_default && scope) { - return /* @__PURE__ */ jsx10(Box6, { children: /* @__PURE__ */ jsx10( + return /* @__PURE__ */ jsx15(Box9, { "data-markdown-renderer": true, children: /* @__PURE__ */ jsx15( MDXRemote2, { components: { ...components_default, ...customComponents }, @@ -6766,15 +7674,15 @@ var MarkdownRenderer = ({ } ) }); } - return /* @__PURE__ */ jsx10(Box6, { children: /* @__PURE__ */ jsx10(MDXRemote2, { components: components_default, lazy: true, ...serialized }) }); + return /* @__PURE__ */ jsx15(Box9, { "data-markdown-renderer": true, children: /* @__PURE__ */ jsx15(MDXRemote2, { components: components_default, lazy: true, ...serialized }) }); }; var MarkdownRenderer_default = MarkdownRenderer; // src/lib/table-of-contents/TableOfContents.tsx -import { useContext as useContext2, useEffect as useEffect5 } from "react"; +import { useContext as useContext4, useEffect as useEffect7 } from "react"; import Link3 from "next/link.js"; import { useRouter } from "next/router.js"; -import { Box as Box7, Text as Text2 } from "@vtex/brand-ui"; +import { Box as Box10, Text as Text3 } from "@vtex/brand-ui"; import AnimateHeight from "react-animate-height"; // src/lib/table-of-contents/styles.ts @@ -6820,41 +7728,71 @@ var subItemsContainer = { ml: "16px", borderLeft: "1px solid #E7E9EE" }; -var styles_default6 = { tocTitle, itemsContainer, item, subItemsContainer, headings }; +var styles_default9 = { tocTitle, itemsContainer, item, subItemsContainer, headings }; // src/lib/table-of-contents/TableOfContents.tsx -import { jsx as jsx11, jsxs as jsxs7 } from "react/jsx-runtime"; +import { jsx as jsx16, jsxs as jsxs10 } from "react/jsx-runtime"; +var MARKDOWN_HEADINGS_SELECTOR = [ + "[data-markdown-renderer] h2", + "[data-markdown-renderer] h3", + "[data-markdown-renderer] h4", + "[data-markdown-renderer] h5", + "[data-markdown-renderer] h6" +].join(", "); +var headingTitle = (heading) => { + const clone = heading.cloneNode(true); + clone.querySelectorAll("[data-copy-heading-link]").forEach((node) => node.remove()); + return removeHTML(clone.innerHTML).replace(":", "").trim(); +}; +var collectHeadingsFromDom = () => { + const headings2 = []; + document.querySelectorAll(MARKDOWN_HEADINGS_SELECTOR).forEach((heading) => { + const item2 = { + title: headingTitle(heading), + slug: heading.id + }; + if (heading.tagName === "H2") { + headings2.push({ ...item2, children: [] }); + } else if (headings2.length > 0) { + headings2[headings2.length - 1].children.push({ ...item2 }); + } else { + headings2.push({ ...item2, children: [] }); + } + }); + return headings2; +}; var TableOfContents = ({ headingList, children }) => { const router = useRouter(); - const { headingItems, activeItem, setHeadingItems, setActiveItem } = useContext2(LibraryContext); - useEffect5(() => { - const headings2 = headingList ?? []; - if (!headings2.length) { - document.querySelectorAll("h2, h3").forEach((heading) => { - const headingSlug = heading.id; - const item2 = { - title: removeHTML(heading.innerHTML).replace(":", ""), - slug: headingSlug - }; - if (heading.tagName === "H2") { - headings2.push({ ...item2, children: [] }); - } else if (headings2.length > 0) { - headings2[headings2.length - 1].children.push({ ...item2 }); - } else { - headings2.push({ ...item2, children: [] }); - } - }); - setHeadingItems(headings2); - } else + const { headingItems, activeItem, setHeadingItems, setActiveItem, locale } = useContext4(LibraryContext); + useEffect7(() => { + if (headingList) { + setHeadingItems(headingList); + return; + } + const applyFromDom = () => { + const headings2 = collectHeadingsFromDom(); + if (!headings2.length) + return false; setHeadingItems(headings2); - }, [router.asPath, headingList]); + return true; + }; + if (applyFromDom()) + return; + const observer = new MutationObserver(() => { + if (applyFromDom()) + observer.disconnect(); + }); + observer.observe(document.body, { childList: true, subtree: true }); + return () => observer.disconnect(); + }, [router.asPath, headingList, setHeadingItems]); + const items = headingList?.length ? headingList : headingItems; const Item = ({ - title: title5, + title: title9, slug, level, active }) => { - return /* @__PURE__ */ jsx11( + return /* @__PURE__ */ jsx16( Link3, { href: `#${slug}`, @@ -6864,14 +7802,14 @@ var TableOfContents = ({ headingList, children }) => { subItem: level === 1 ? "" : slug })); }, - children: /* @__PURE__ */ jsx11(Text2, { sx: styles_default6.item(level, active), children: title5 }) + children: /* @__PURE__ */ jsx16(Text3, { sx: styles_default9.item(level, active), children: title9 }) } ); }; - 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( + return /* @__PURE__ */ jsxs10(Box10, { sx: styles_default9.itemsContainer, "data-cy": "table-of-contents", children: [ + items.length > 0 && /* @__PURE__ */ jsx16(Text3, { sx: styles_default9.tocTitle, children: messages[locale]["on_this_page.title"] }), + /* @__PURE__ */ jsx16(Box10, { sx: styles_default9.headings, children: items.map((item2) => /* @__PURE__ */ jsxs10(Box10, { children: [ + /* @__PURE__ */ jsx16( Item, { title: item2.title, @@ -6880,12 +7818,12 @@ var TableOfContents = ({ headingList, children }) => { active: item2.slug === activeItem.item } ), - /* @__PURE__ */ jsx11( + /* @__PURE__ */ jsx16( AnimateHeight, { duration: 300, height: item2.slug === activeItem.item ? "auto" : 0, - children: /* @__PURE__ */ jsx11(Box7, { sx: styles_default6.subItemsContainer, children: item2.children.map((subItem) => /* @__PURE__ */ jsx11( + children: /* @__PURE__ */ jsx16(Box10, { sx: styles_default9.subItemsContainer, children: item2.children.map((subItem) => /* @__PURE__ */ jsx16( Item, { title: subItem.title, @@ -6903,101 +7841,475 @@ 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 { Flex as Flex10, Text as Text6, Box as Box12 } from "@vtex/brand-ui"; -import Link5 from "next/link.js"; +// src/lib/on-this-page/OnThisPage.tsx +import { useContext as useContext5, useState as useState7 } from "react"; +import { Box as Box11, Flex as Flex6, Text as Text4 } from "@vtex/brand-ui"; +import AnimateHeight2 from "react-animate-height"; -// src/lib/sidebar/styles.ts -var sidebar = { - display: [ - "none !important", - "none !important", - "none !important", - "flex !important" - ], - position: "sticky", - left: "0", - top: "5rem", - flex: "1 0 auto", - height: "calc(100vh - 5rem)", - width: "auto", - minWidth: "auto", - transition: "all 0.3s ease-in-out", - ".active": { - marginLeft: "-276px", - transition: "all 0.3s ease-in-out" - }, - ".iconContainerExpanded": { - transition: "all 0.3s ease-in-out", - width: "160px" - }, - ".iconDescriptionExpanded": { - display: "block" +// src/components/icons/menu-icon.tsx +import { Icon as Icon5 } from "@vtex/brand-ui"; +import { jsx as jsx17, jsxs as jsxs11 } from "react/jsx-runtime"; +var MenuIcon = (props) => /* @__PURE__ */ jsxs11( + Icon5, + { + ...props, + width: "25", + height: "24", + viewBox: "0 0 25 24", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + children: [ + /* @__PURE__ */ jsx17( + "path", + { + d: "M10.002 12H17.501", + stroke: "currentColor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ), + /* @__PURE__ */ jsx17( + "path", + { + d: "M10.002 15.484H17.501", + stroke: "currentColor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ), + /* @__PURE__ */ jsx17( + "path", + { + d: "M10.002 8.48401H17.501", + stroke: "currentColor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ), + /* @__PURE__ */ jsx17( + "path", + { + d: "M7.54978 8.434C7.52178 8.434 7.49978 8.457 7.49978 8.485C7.49978 8.513 7.52278 8.535 7.55078 8.535C7.57878 8.535 7.60178 8.512 7.60178 8.485C7.60078 8.457 7.57778 8.434 7.54978 8.434", + stroke: "#323232", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ), + /* @__PURE__ */ jsx17( + "path", + { + d: "M7.54978 11.949C7.52178 11.949 7.49978 11.972 7.49978 12C7.49978 12.028 7.52278 12.051 7.55078 12.051C7.57878 12.051 7.60178 12.028 7.60178 12C7.60178 11.972 7.57778 11.949 7.54978 11.949", + stroke: "#323232", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ), + /* @__PURE__ */ jsx17( + "path", + { + d: "M7.54978 15.434C7.52178 15.434 7.49978 15.457 7.49978 15.485C7.49978 15.513 7.52278 15.535 7.55078 15.535C7.57878 15.535 7.60178 15.512 7.60178 15.485C7.60078 15.457 7.57778 15.434 7.54978 15.434", + stroke: "#323232", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ), + /* @__PURE__ */ jsx17( + "path", + { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M21.5 7V17C21.5 19.209 19.709 21 17.5 21H7.5C5.291 21 3.5 19.209 3.5 17V7C3.5 4.791 5.291 3 7.5 3H17.5C19.709 3 21.5 4.791 21.5 7Z", + stroke: "#323232", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ) + ] } +); +var menu_icon_default = MenuIcon; + +// src/lib/on-this-page/styles.ts +var container4 = { + left: "20px", + bottom: "20px", + position: "fixed", + alignItems: "flex-end", + display: ["flex", "flex", "flex", "flex", "none"], + flexDirection: ["column-reverse", "row"] +}; +var contentContainer = { + mt: ["8px", 0], + mb: ["-20px", 0], + mr: ["-20px", "8px"], + width: ["100vw", "360px"], + padding: "16px", + borderRadius: ["8px 8px 0px 0px", "8px"], + backgroundColor: "white", + border: "1px solid #CCCED8", + boxShadow: "0px 0px 16px rgba(0, 0, 0, 0.1)" }; -var sidebarIcons = { - width: ["56px", "56px", "56px", "56px", "56px", "160px"], - minWidth: "max-content", - transition: "all 0.3s ease-in-out", - flexDirection: "column", - borderRight: "1px solid #E7E9EE", - background: "#FFFFFF", - zIndex: "2", - paddingBottom: "32px" -}; -var linkContainer2 = { - minWidth: "100%" +var onThisPageTitle = { + mb: "16px", + fontSize: "12px", + fontWeight: "400", + lineHeight: "16px", + color: "#4A4A4A" }; -var iconBox = { - mt: ["16px"], - width: "100%", - maxWidth: "144px", - paddingLeft: ["0", "0", "0", "8px"], - paddingRight: ["0", "0", "0", "8px", "8px", "0"], - py: ["0", "0", "0", "8px", "8px", "10px"], - height: "40px", - borderRadius: "4px", - alignItems: "center", - justifyContent: "flex-start", - background: "transparent", - color: "muted.0", +var buttonContainer = { cursor: "pointer", - ":hover": { - background: "#F8F7FC", - color: "#000711", - path: { - stroke: [ - "#000711", - "#000711", - "#000711", - "#000711", - "#000711", - "#4A596B" - ] - } - } -}; -var iconBoxActive = { - ...iconBox, - background: ["#F8F7FC", "#F8F7FC", "#F8F7FC", "#F8F7FC", "#F8F7FC", "none"], - color: "#E31C58" + alignItems: "center", + backgroundColor: "muted.4", + border: "1px solid #CCCED8", + boxShadow: "0px 0px 16px rgba(0, 0, 0, 0.1)", + borderRadius: "8px" }; -var sidebarIconsContainer = { - width: "100%", - flexDirection: "column", - alignItems: "flex-start", - px: ["0", "0", "0", "8px"] +var iconContainer = { + width: "32px", + height: "32px", + padding: "6px", + boxSizing: "initial", + borderRadius: "8px", + backgroundColor: "white", + borderLeft: "1px solid #CCCED8" }; -var icon = { - width: ["24px"], - height: ["24px"] +var title2 = (open) => ({ + color: "black", + fontSize: "12px", + fontWeight: "400", + lineHeight: "16px", + padding: open ? "0px" : "8px", + overflow: "hidden", + whiteSpace: "nowrap", + width: open ? "0px" : "min-width", + transition: "all 0.3s ease-in-out", + transitionDelay: open ? "0s" : "0.3s" +}); +var styles_default10 = { + container: container4, + contentContainer, + onThisPageTitle, + buttonContainer, + iconContainer, + title: title2 }; -var iconActive = { - ...icon, - "> path": { - stroke: "#E31C58" - } + +// src/lib/on-this-page/OnThisPage.tsx +import { jsx as jsx18, jsxs as jsxs12 } from "react/jsx-runtime"; +var OnThisPage = ({ headingList }) => { + const { locale } = useContext5(LibraryContext); + const [isOpen, setIsOpen] = useState7(false); + const title9 = messages[locale]["on_this_page.title"]; + return /* @__PURE__ */ jsxs12(Flex6, { sx: styles_default10.container, children: [ + /* @__PURE__ */ jsx18( + AnimateHeight2, + { + duration: 300, + delay: isOpen ? 300 : 0, + height: isOpen ? "auto" : 0, + children: /* @__PURE__ */ jsx18(Box11, { sx: styles_default10.contentContainer, children: /* @__PURE__ */ jsx18(Box11, { children: /* @__PURE__ */ jsx18(TableOfContents_default, { headingList }) }) }) + } + ), + /* @__PURE__ */ jsxs12( + Flex6, + { + sx: styles_default10.buttonContainer, + onClick: () => setIsOpen((open) => !open), + children: [ + /* @__PURE__ */ jsx18(Text4, { sx: styles_default10.title(isOpen), children: title9 }), + /* @__PURE__ */ jsx18(Box11, { sx: styles_default10.iconContainer, children: !isOpen ? /* @__PURE__ */ jsx18(menu_icon_default, { size: 32 }) : /* @__PURE__ */ jsx18(close_icon_default, { size: 32 }) }) + ] + } + ) + ] }); +}; +var OnThisPage_default = OnThisPage; + +// src/lib/contributors/Contributors.tsx +import { useContext as useContext6, useEffect as useEffect8, useRef as useRef5, useState as useState8 } from "react"; +import { Box as Box12, Flex as Flex7, Grid, IconCaret as IconCaret2, Text as Text5 } from "@vtex/brand-ui"; + +// src/lib/contributors/styles.ts +var container5 = { + mb: "32px", + flexDirection: "column", + alignItems: ["initial", "center", "center", "center", "initial"] +}; +var titleContainer = { + alignItems: "center" +}; +var title3 = { + fontWeight: "400", + fontSize: ["12px", "16px", "16px", "16px", "12px", "16px"], + lineHeight: ["16px", "18px", "18px", "18px", "16px", "18px"], + color: "#4A4A4A" +}; +var count = { + px: "8px", + ml: "8px", + width: "30px", + height: "16px", + borderRadius: "24px", + backgroundColor: "muted.4", + fontSize: "12px", + fontWeight: "400", + lineHeight: "16px", + textAlign: "center", + color: "#4A4A4A" +}; +var photosContainer = (rows) => ({ + mt: "16px", + gap: "8px", + gridTemplateColumns: [ + "1fr 1fr 1fr 1fr", + "1fr 1fr 1fr 1fr 1fr 1fr", + "1fr 1fr 1fr 1fr 1fr 1fr", + "1fr 1fr 1fr 1fr 1fr 1fr", + "1fr 1fr 1fr 1fr", + "1fr 1fr 1fr 1fr 1fr" + ], + overflow: "hidden", + width: [0, "min-content", "min-content", "min-content", "152px", "192px"], + maxHeight: `${32 * rows + 8 * (rows - 1)}px`, + transition: "max-height 0.3s ease-in-out" +}); +var photo = { + width: "32px", + height: "32px", + img: { + width: "32px", + height: "32px", + borderRadius: "100%" + } +}; +var collapseButton = { + ...title3, + mt: "8px", + height: "24px", + color: "muted.0", + cursor: "pointer", + alignItems: "center", + ":active": { + color: "#0C1522" + }, + ":hover": { + color: "#000711" + } +}; +var styles_default11 = { + container: container5, + titleContainer, + title: title3, + count, + photosContainer, + photo, + collapseButton +}; + +// src/lib/contributors/Contributors.tsx +import { jsx as jsx19, jsxs as jsxs13 } from "react/jsx-runtime"; +var Contributors = ({ contributors }) => { + const { locale } = useContext6(LibraryContext); + const [showAll, setShowAll] = useState8(false); + const [pageWidth, setPageWidth] = useState8(0); + const [photosPerRow, setPhotosPerRow] = useState8(0); + const [minRows, setMinRows] = useState8(0); + const [isClient, setIsClient] = useState8(false); + const photosContainer2 = useRef5(null); + useEffect8(() => { + setIsClient(true); + setPageWidth(window.innerWidth); + const updatePageWidth = () => { + setPageWidth(window.innerWidth); + }; + window.addEventListener("resize", updatePageWidth); + return () => window.removeEventListener("resize", updatePageWidth); + }, []); + useEffect8(() => { + if (isClient && photosContainer2.current) { + const gridStyle = window.getComputedStyle(photosContainer2.current); + setPhotosPerRow(gridStyle.gridTemplateColumns.split(" ").length); + } + }, [pageWidth, isClient]); + useEffect8(() => { + setMinRows(photosPerRow === 6 ? 1 : 2); + }, [photosPerRow]); + const visibleRows = photosPerRow ? showAll ? Math.ceil(contributors.length / photosPerRow) : Math.min(Math.ceil(contributors.length / photosPerRow), minRows) : minRows; + const hiddenCount = contributors.length - minRows * photosPerRow; + return /* @__PURE__ */ jsxs13(Flex7, { sx: styles_default11.container, children: [ + /* @__PURE__ */ jsxs13(Flex7, { sx: styles_default11.titleContainer, children: [ + /* @__PURE__ */ jsx19(Text5, { sx: styles_default11.title, children: messages[locale]["contributors.title"] }), + /* @__PURE__ */ jsx19(Text5, { sx: styles_default11.count, children: contributors.length }) + ] }), + /* @__PURE__ */ jsx19( + Grid, + { + sx: styles_default11.photosContainer(visibleRows), + ref: photosContainer2, + "data-cy": "contributors-container", + children: contributors.map((contributor) => /* @__PURE__ */ jsx19(Box12, { sx: styles_default11.photo, children: /* @__PURE__ */ jsx19("a", { href: contributor.userPage, children: /* @__PURE__ */ jsx19(tooltip_default, { label: contributor.name, children: /* @__PURE__ */ jsx19( + "img", + { + src: contributor.avatar, + alt: messages[locale]["contributors.photo_alt"].replace( + "{name}", + contributor.name + ), + width: 32, + height: 32 + } + ) }) }) }, contributor.login)) + } + ), + contributors.length > minRows * photosPerRow && /* @__PURE__ */ jsxs13( + Flex7, + { + sx: styles_default11.collapseButton, + onClick: () => { + setShowAll(!showAll); + }, + children: [ + /* @__PURE__ */ jsx19(Text5, { children: showAll ? messages[locale]["contributors.toggle_less"] : messages[locale]["contributors.toggle_more"].replace( + "{count}", + String(hiddenCount) + ) }), + /* @__PURE__ */ jsx19(IconCaret2, { direction: showAll ? "up" : "down", size: 24 }) + ] + } + ) + ] }); +}; +var Contributors_default = Contributors; + +// src/lib/sidebar/index.tsx +import { + Fragment as Fragment4, + useEffect as useEffect10, + useMemo as useMemo3, + useRef as useRef7, + useState as useState11, + useContext as useContext10 +} from "react"; +import { Flex as Flex12, Text as Text9, Box as Box16 } from "@vtex/brand-ui"; +import Link5 from "next/link.js"; + +// src/lib/sidebar/styles.ts +var sidebar = { + display: [ + "none !important", + "none !important", + "none !important", + "flex !important" + ], + position: "sticky", + left: "0", + top: "5rem", + flex: "1 0 auto", + height: "calc(100vh - 5rem)", + maxHeight: "calc(100vh - 5rem)", + minHeight: 0, + paddingRight: "16px", + marginRight: "-16px", + zIndex: 2, + 'body:has(.modal[data-open="true"]) &': { + zIndex: 0 + }, + width: "auto", + minWidth: "auto", + transition: "all 0.3s ease-in-out", + ".active": { + marginLeft: "-276px", + transition: "all 0.3s ease-in-out" + }, + ".iconContainerExpanded": { + transition: "all 0.3s ease-in-out", + width: "160px" + }, + ".iconDescriptionExpanded": { + display: "block" + } +}; +var sidebarIcons = { + width: ["56px", "56px", "56px", "56px", "56px", "160px"], + minWidth: "max-content", + height: "100%", + minHeight: 0, + overflowX: "hidden", + overflowY: "auto", + overscrollBehavior: "contain", + scrollbarWidth: "none", + "::-webkit-scrollbar": { + display: "none" + }, + transition: "all 0.3s ease-in-out", + flexDirection: "column", + borderRight: "1px solid #E7E9EE", + background: "#FFFFFF", + zIndex: "2", + 'body:has(.modal[data-open="true"]) &': { + zIndex: 0 + }, + paddingBottom: "32px" +}; +var linkContainer2 = { + minWidth: "100%" +}; +var iconBox = { + mt: ["16px"], + width: "100%", + maxWidth: "144px", + paddingLeft: ["0", "0", "0", "8px"], + paddingRight: ["0", "0", "0", "8px", "8px", "0"], + py: ["0", "0", "0", "8px", "8px", "10px"], + height: "40px", + borderRadius: "4px", + alignItems: "center", + justifyContent: "flex-start", + background: "transparent", + color: "muted.0", + cursor: "pointer", + ":hover": { + background: "#F8F7FC", + color: "#000711", + path: { + stroke: [ + "#000711", + "#000711", + "#000711", + "#000711", + "#000711", + "#4A596B" + ] + } + } +}; +var iconBoxActive = { + ...iconBox, + background: ["#F8F7FC", "#F8F7FC", "#F8F7FC", "#F8F7FC", "#F8F7FC", "none"], + color: "#E31C58" +}; +var sidebarIconsContainer = { + width: "100%", + flexDirection: "column", + alignItems: "flex-start", + px: ["0", "0", "0", "8px"] +}; +var icon = { + width: ["24px"], + height: ["24px"] +}; +var iconActive = { + ...icon, + "> path": { + stroke: "#E31C58" + } }; var sectionDivider = { px: "8px", @@ -7026,7 +8338,7 @@ var iconTooltip = { "none !important" ] }; -var styles_default7 = { +var styles_default12 = { sidebar, sidebarIcons, sidebarIconsContainer, @@ -7055,188 +8367,59 @@ var iconTooltipStyle = (tooltipState) => { return iconTooltip2; }; -// src/components/tooltip/index.tsx -import { useEffect as useEffect6, useRef as useRef3, useState as useState4 } from "react"; -import { Box as Box8, Flex as Flex5 } from "@vtex/brand-ui"; - -// src/components/tooltip/styles.ts -var tooltipContainer = (sx, placement, width, height, x, y) => { - const position = { - bottom: { - left: `${x + width / 2}px`, - top: `${y + height + 3}px` - }, - left: { - left: `${x - 1}px`, - top: `${y + height / 2}px` - }, - top: { - left: `${x + width / 2}px`, - top: `${y - 3}px` - }, - right: { - left: `${x + width + 1}px`, - top: `${y + height / 2}px` +// src/utils/navigation-utils.ts +var flattenJSON = (obj = {}, res = {}, extraKey = "") => { + if (!obj || typeof obj !== "object") + return res; + for (const key in obj) { + const value = obj[key]; + if (value !== null && typeof value === "object") { + flattenJSON(value, res, `${extraKey}${key}.`); + } else { + res[extraKey + key] = value; } - }; - const translation = { - bottom: "translateX(-50%)", - left: "translateX(-100%) translateY(-50%)", - top: "translateX(-50%) translateY(-100%)", - right: "translateY(-50%)" - }; - const direction = { - bottom: "column", - left: "row-reverse", - top: "column-reverse", - right: "row" - }; - return { - ...sx, - zIndex: "100", - position: "absolute", - alignItems: "center", - justifyContent: "center", - ...position[placement], - transform: translation[placement], - flexDirection: direction[placement] - }; -}; -var caret = (placement) => { - const rotation = { - bottom: 0, - left: 90, - top: 180, - right: 270 - }; - const translation = { - bottom: 1, - left: 3, - top: 1, - right: 3 - }; - return { - width: "8px", - height: "4px", - minWidth: "initial", - minHeight: "initial", - transform: `rotate(${rotation[placement]}deg) translateY(${translation[placement]}px)` - }; + } + return res; }; -var label = { - borderRadius: "4px", - backgroundColor: "black", - color: "white", - fontSize: "12px", - fontWeight: "400", - lineHeight: "130%" -}; -var labelContibutorsContainer = { - ...label, - padding: "4px 8px" -}; -var labelDocumentationContainer = { - ...label, - width: "284px", - textAlign: "center", - px: "12px", - py: "8px" -}; -var labelStyle = (documentationSection) => { - if (documentationSection) - return labelDocumentationContainer; - return labelContibutorsContainer; -}; -var styles_default8 = { tooltipContainer, caret, labelStyle }; - -// src/components/icons/caret.tsx -import { Icon as Icon3 } from "@vtex/brand-ui"; -import { jsx as jsx12 } from "react/jsx-runtime"; -var CaretIcon = (props) => /* @__PURE__ */ jsx12( - Icon3, - { - ...props, - width: "9", - height: "4", - viewBox: "0 0 9 4", - fill: "none", - xmlns: "http://www.w3.org/2000/svg", - children: /* @__PURE__ */ jsx12( - "path", - { - d: "M5.20686 0.707106L8.49976 4L0.499756 4L3.79265 0.707107C4.18317 0.316583 4.81634 0.316582 5.20686 0.707106Z", - fill: "black" - } - ) - } -); -var caret_default = CaretIcon; - -// src/components/tooltip/index.tsx -import { jsx as jsx13, jsxs as jsxs8 } from "react/jsx-runtime"; -var Tooltip = ({ children, label: label2, placement, sx, isCard }) => { - const box2 = useRef3(); - const [boxWidth, setBoxWidth] = useState4(0); - const [boxHeight, setBoxHeight] = useState4(0); - const [boxOffsetLeft, setBoxOffsetLeft] = useState4(0); - const [boxOffsetTop, setBoxOffsetTop] = useState4(0); - const [visible, setVisible] = useState4(false); - useEffect6(() => { - if (box2.current) { - setBoxWidth(box2.current.clientWidth); - setBoxHeight(box2.current.clientHeight); - setBoxOffsetLeft(box2.current.offsetLeft); - setBoxOffsetTop(box2.current.offsetTop); +var documentationTypeCache = /* @__PURE__ */ new WeakMap(); +function indexDocumentationTypes(data, index) { + if (!data || typeof data !== "object") + return; + if (Array.isArray(data)) { + for (let i = 0; i < data.length; i++) { + indexDocumentationTypes(data[i], index); } - }, [ - box2.current, - box2.current?.clientWidth, - box2.current?.clientHeight, - box2.current?.offsetLeft, - box2.current?.offsetTop - ]); - return /* @__PURE__ */ jsxs8(Box8, { children: [ - /* @__PURE__ */ jsx13( - Box8, - { - ref: box2, - onMouseEnter: () => setVisible(true), - onMouseLeave: () => setVisible(false), - children - } - ), - visible && (isCard ?? true) && /* @__PURE__ */ jsxs8( - Flex5, - { - sx: styles_default8.tooltipContainer( - sx, - placement || "top", - boxWidth, - boxHeight, - boxOffsetLeft, - boxOffsetTop - ), - children: [ - /* @__PURE__ */ jsx13(caret_default, { sx: styles_default8.caret(placement || "top") }), - /* @__PURE__ */ jsx13(Box8, { sx: styles_default8.labelStyle(isCard ?? false), children: label2 }) - ] + return; + } + const node = data; + if (typeof node.type === "string" && node.slug != null) { + if (typeof node.slug === "string") { + index.set(node.slug, node.type); + } else if (typeof node.slug === "object") { + for (const value of Object.values(node.slug)) { + if (typeof value === "string" && value) { + index.set(value, node.type); + } } - ) - ] }); -}; -var tooltip_default = Tooltip; - -// src/utils/navigation-utils.ts -var flattenJSON = (obj = {}, res = {}, extraKey = "") => { - for (const key in obj) { - if (typeof obj[key] !== "object") { - res[extraKey + key] = obj[key]; - } else { - flattenJSON(obj[key], res, `${extraKey}${key}.`); } } - return res; -}; + for (const value of Object.values(data)) { + if (value && typeof value === "object") { + indexDocumentationTypes(value, index); + } + } +} +function getDocumentationType(sidebarData, slug) { + if (!sidebarData || typeof sidebarData !== "object") + return void 0; + let index = documentationTypeCache.get(sidebarData); + if (!index) { + index = /* @__PURE__ */ new Map(); + indexDocumentationTypes(sidebarData, index); + documentationTypeCache.set(sidebarData, index); + } + return index.get(slug); +} var getKeyByEndpoint = (object, endpoint, slug, method) => { const slugPaths = Object.keys(object).filter((key) => object[key] === slug); let path = ""; @@ -7273,68 +8456,97 @@ var getParents = (path, data, flattenedSidebar, parentsArray, parent) => { // src/utils/sidebar-utils.ts import { useRouter as useRouter2 } from "next/router.js"; -import { useEffect as useEffect7 } from "react"; +import { useEffect as useEffect9 } from "react"; var getIcon2 = (doc, sections) => { - for (const section of sections) { - return section.find((icon4) => icon4.title === doc)?.Icon; - } + return sections.flat().find((icon6) => icon6.id === doc || icon6.title === doc)?.Icon; }; +function resolveLocalizedName(value, locale) { + if (!value) + return ""; + if (typeof value === "string") + return value; + return value[locale] || value.en || ""; +} +function getSectionLabel(section, navigation, locale) { + if (Array.isArray(navigation)) { + const navSection = navigation.find( + (item2) => item2.documentation === section.id + ); + const fromNav = resolveLocalizedName(navSection?.name, locale); + if (fromNav) + return fromNav; + } + return section.title; +} var updateOpenPage = ({ parentsArray = [], context }) => { - const { - activeSidebarElement, - sidebarDataMaster, - setActiveSidebarElement, - openSidebarElement, - closeSidebarElements - } = context; - const flattenedSidebar = flattenJSON(sidebarDataMaster); + const { sidebarDataMaster, setActiveSidebarElement, setOpenSidebarElements } = context; const router = useRouter2(); - let activeSlug = ""; - const querySlug = router.query.slug; - if (querySlug && router.pathname === "/docs/api-reference/[slug]") { - activeSlug = router.asPath.replace("/docs/api-reference/", ""); - const docPath = activeSlug.split("/"); - const hasHashTag = router.asPath.indexOf("#") > -1; - const apiSlug = docPath[0].split(hasHashTag ? "#" : "?endpoint=")[0]; - const endpoint = "/" + docPath.splice(1, docPath.length).join("/"); - let keyPath; - if (endpoint == "/") { - activeSlug = apiSlug; - keyPath = getKeyByEndpoint(flattenedSidebar, "", apiSlug); + const parentsKey = parentsArray.join("\0"); + useEffect9(() => { + const expandedSlugs = parentsArray.slice(); + let activeSlug = ""; + const querySlug = router.query.slug; + if (querySlug && router.pathname === "/docs/api-reference/[slug]") { + const flattenedSidebar = flattenJSON(sidebarDataMaster); + activeSlug = router.asPath.replace("/docs/api-reference/", ""); + const docPath = activeSlug.split("/"); + const hasHashTag = router.asPath.indexOf("#") > -1; + const apiSlug = docPath[0].split(hasHashTag ? "#" : "?endpoint=")[0]; + const endpoint = "/" + docPath.splice(1, docPath.length).join("/"); + let keyPath; + if (endpoint == "/") { + activeSlug = apiSlug; + keyPath = getKeyByEndpoint(flattenedSidebar, "", apiSlug); + } else { + const method = docPath[0].split(hasHashTag ? "#" : "?endpoint=")[1].split("-")[0]; + keyPath = getKeyByEndpoint(flattenedSidebar, endpoint, apiSlug, method); + } + expandedSlugs.push(activeSlug); + if (keyPath) { + getParents(keyPath, "slug", flattenedSidebar, expandedSlugs); + } } else { - const method = docPath[0].split(hasHashTag ? "#" : "?endpoint=")[1].split("-")[0]; - keyPath = getKeyByEndpoint(flattenedSidebar, endpoint, apiSlug, method); - } - parentsArray.push(activeSlug); - if (keyPath) { - getParents(keyPath, "slug", flattenedSidebar, parentsArray); + activeSlug = expandedSlugs[expandedSlugs.length - 1]; } - } else { - activeSlug = parentsArray[parentsArray.length - 1]; - } - useEffect7(() => { - closeSidebarElements(parentsArray); - parentsArray.forEach((slug) => { - openSidebarElement(slug); - }); + setOpenSidebarElements(expandedSlugs); setActiveSidebarElement(activeSlug?.replace("?endpoint=", "#")); - }, [activeSidebarElement, router]); + }, [ + parentsKey, + router.asPath, + router.pathname, + router.query.slug, + sidebarDataMaster, + setActiveSidebarElement, + setOpenSidebarElements + ]); }; // src/components/sidebar-section/index.tsx -import { Flex as Flex9, Box as Box11, Text as Text5, Button as Button3 } from "@vtex/brand-ui"; -import { useContext as useContext5, useMemo, useState as useState6 } from "react"; +import { Flex as Flex11, Box as Box15, Text as Text8, Button as Button3 } from "@vtex/brand-ui"; +import { + memo as memo2, + useContext as useContext9, + useLayoutEffect, + useMemo as useMemo2, + useRef as useRef6, + useState as useState10 +} from "react"; // src/components/sidebar-section/styles.ts var sidebarContainer = { position: "relative", width: "auto", height: "inherit", + minHeight: 0, + overflow: "visible", borderRight: "1px solid #E7E9EE", zIndex: "1", + 'body:has(.modal[data-open="true"]) &': { + zIndex: 0 + }, left: "0", transition: "all 0.3s ease-in-out", ".toggleIcon": { @@ -7353,14 +8565,15 @@ var sidebarContainer = { } }; var sidebarContainerHamburger = { - width: "auto", - minHeight: "692px", + width: "100%", + height: "100%", zIndex: "1" }; var sidebarContainerBox = { opacity: "100", paddingTop: "34px", paddingBottom: "24px", + width: "300px", overflowY: "auto", height: "inherit", maskImage: "linear-gradient(to top, transparent, black), linear-gradient(to left, transparent 17px, black 17px)", @@ -7373,20 +8586,33 @@ var sidebarContainerBox = { }; var sidebarContainerBoxHamburger = { opacity: "100", - transition: "all 1s ease-out" + width: "100%", + height: "100%", + display: "flex", + flexDirection: "column", + background: "#FFFFFF", + overflow: "hidden" }; var sidebarContainerBody = { - px: "17px" + px: "16px" }; var sidebarContainerHeader = { - ...sidebarContainerBody + px: "16px" }; var sidebarContainerTitle = { alignItems: "center", - lineHeight: "22px", - gap: "5px", - padding: "17px 0px 17px 17px", - borderBottom: "1px solid #E7E9EE" + minHeight: "52px", + padding: "4px 16px 4px 8px", + borderBottom: "1px solid #E7E9EE", + flexShrink: 0, + position: "sticky", + top: 0, + zIndex: 2, + 'body:has(.modal[data-open="true"]) &': { + zIndex: 0 + }, + background: "#FFFFFF", + px: "16px" }; var sidebarTitle = { display: "flex", @@ -7394,6 +8620,39 @@ var sidebarTitle = { fontSize: "16px", lineHeight: "18px" }; +var sidebarTitleHamburger = { + flex: 1, + minWidth: 0, + fontSize: "16px", + lineHeight: "24px", + color: "#4a596b", + overflow: "hidden", + textOverflow: "ellipsis", + whiteSpace: "nowrap", + pl: "8px" +}; +var sidebarTitleIcon = { + width: "24px", + height: "24px", + minWidth: "24px", + flexShrink: 0, + color: "#4A596B" +}; +var sidebarContainerFilterHamburger = { + px: "16px", + pt: "16px", + pb: 0, + flexShrink: 0, + background: "#FFFFFF" +}; +var sidebarContainerBodyHamburger = { + px: "8px", + pt: "8px", + pb: "calc(24px + env(safe-area-inset-bottom, 0px))", + flex: 1, + minHeight: 0, + overflowY: "auto" +}; var sidebarHelpIcon = { ml: "4px", width: "24px", @@ -7407,14 +8666,18 @@ var searchBox = { background: "#F4F4F4", width: "265px", height: "40px", - paddingLeft: "12px" + paddingLeft: "12px", + paddingRight: "8px" }; var searchInput = { width: "auto", + flex: "1", + minWidth: 0, background: "#F4F4F4", border: "#F4F4F4", color: "#545454", - fontSize: ["14px"] + fontSize: ["14px"], + outline: "none" }; var searchIcon = { minWidth: "16px", @@ -7422,6 +8685,29 @@ var searchIcon = { width: "16px", mr: "8px" }; +var clearButton = { + display: "inline-flex", + alignItems: "center", + justifyContent: "center", + width: "24px", + height: "24px", + ml: "4px", + padding: 0, + border: "none", + borderRadius: "50%", + background: "transparent", + color: "#4A596B", + cursor: "pointer", + flexShrink: 0, + ":hover": { + background: "#EDEDED", + color: "#142032" + } +}; +var clearIcon = { + width: "14px", + height: "14px" +}; var toggleIconBox = { justifyContent: "center", alignItems: "center", @@ -7434,7 +8720,11 @@ var toggleIconBox = { position: "absolute", top: "32px", right: "-16px", - cursor: "pointer" + cursor: "pointer", + zIndex: 3, + 'body:has(.modal[data-open="true"]) &': { + zIndex: 0 + } }; var toggleIconBoxActive = { ...toggleIconBox, @@ -7444,7 +8734,15 @@ var toggleIcon = { transform: "scaleX(-1)" }; var arrowButton = { - padding: "0px" + padding: "0px", + width: "40px", + minWidth: "40px", + height: "40px", + display: "flex", + alignItems: "center", + justifyContent: "center", + color: "#4A596B", + flexShrink: 0 }; var previewMode = { display: "flex", @@ -7462,19 +8760,25 @@ var previewMode = { mr: "10px" } }; -var styles_default9 = { +var styles_default13 = { sidebarContainer, sidebarContainerHamburger, sidebarContainerBox, sidebarContainerBoxHamburger, + sidebarContainerBodyHamburger, + sidebarContainerFilterHamburger, sidebarContainerBody, sidebarContainerHeader, sidebarContainerTitle, sidebarTitle, + sidebarTitleHamburger, + sidebarTitleIcon, sidebarHelpIcon, searchBox, searchInput, searchIcon, + clearButton, + clearIcon, toggleIconBox, toggleIconBoxActive, toggleIcon, @@ -7483,24 +8787,41 @@ var styles_default9 = { }; // src/components/sidebar-section-filter/index.tsx -import { Box as Box9, Flex as Flex7, Text as Text4 } from "@vtex/brand-ui"; +import { Box as Box13, Flex as Flex9, Text as Text7 } from "@vtex/brand-ui"; // src/components/method-category/index.tsx -import { Flex as Flex6, Text as Text3 } from "@vtex/brand-ui"; +import { Flex as Flex8, Text as Text6 } from "@vtex/brand-ui"; // src/components/method-category/styles.ts -var container3 = { +var container6 = { border: "1px solid #DDDDDD", - background: "#F4F4F4", - borderRadius: "2px", + borderRadius: "6px", + boxSizing: "border-box", width: "24px", + minWidth: "24px", height: "24px", + minHeight: "24px", + flexShrink: 0, alignItems: "center", - justifyContent: "center" + justifyContent: "center", + px: 0 }; var text = { fontWeight: "600", - fontSize: "12px" + fontSize: "11px", + lineHeight: "14px", + letterSpacing: "0.02em", + whiteSpace: "nowrap" +}; +var filled = { + border: "none", + borderRadius: "4px", + width: "48px", + minWidth: "48px", + maxWidth: "48px", + height: "20px", + minHeight: "20px", + px: "3px" }; var closeIcon = { minWidth: "12px", @@ -7509,8 +8830,9 @@ var closeIcon = { width: "12px", ml: "4px" }; -var styles_default10 = { - container: container3, +var styles_default14 = { + container: container6, + filled, text, closeIcon }; @@ -7543,15 +8865,17 @@ var methodsColors = { background: "#e9e7da" } }; -var categoryStyle = (method, active, sx) => { +var categoryStyle = (method, active, origin, sx) => { const categoryColors = methodsColors[method] || { border: "1px solid #F49494", color: "#CC3D3D", background: "#F8E3E3" }; - const categoryStyle2 = active ? { - ...styles_default10.container, + const isFilled = active || origin !== "filter"; + const categoryStyle2 = isFilled ? { + ...styles_default14.container, ...categoryColors, + ...origin !== "filter" ? styles_default14.filled : {}, ...sx, ":hover": { ".filter-close-button": { @@ -7564,22 +8888,17 @@ var categoryStyle = (method, active, sx) => { } } } : { - ...styles_default10.container, + ...styles_default14.container, color: categoryColors.color, ...sx }; return categoryStyle2; }; -var categoryText = (method, origin) => { - const textPascalCase = method[0] + method.slice(1).toLowerCase(); - if (origin == "filter") - return textPascalCase; - return textPascalCase.slice(0, 2); -}; +var categoryText = (method) => method.toUpperCase(); var closeCategoryStyle = (method) => { const categoryColors = methodsColors[method]; const categoryStyle2 = { - ...styles_default10.closeIcon, + ...styles_default14.closeIcon, rect: { fill: "transparent" }, @@ -7591,10 +8910,10 @@ var closeCategoryStyle = (method) => { }; // src/components/icons/close-filter-icon.tsx -import { Icon as Icon4 } from "@vtex/brand-ui"; -import { jsx as jsx14, jsxs as jsxs9 } from "react/jsx-runtime"; -var CloseFilterIcon = (props) => /* @__PURE__ */ jsxs9( - Icon4, +import { Icon as Icon6 } from "@vtex/brand-ui"; +import { jsx as jsx20, jsxs as jsxs14 } from "react/jsx-runtime"; +var CloseFilterIcon = (props) => /* @__PURE__ */ jsxs14( + Icon6, { ...props, width: "12", @@ -7603,8 +8922,8 @@ var CloseFilterIcon = (props) => /* @__PURE__ */ jsxs9( fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx14("rect", { width: "12", height: "12", rx: "2", fill: "#2978B5" }), - /* @__PURE__ */ jsx14( + /* @__PURE__ */ jsx20("rect", { width: "12", height: "12", rx: "2", fill: "#2978B5" }), + /* @__PURE__ */ jsx20( "path", { d: "M3 3L9 9", @@ -7614,7 +8933,7 @@ var CloseFilterIcon = (props) => /* @__PURE__ */ jsxs9( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx14( + /* @__PURE__ */ jsx20( "path", { d: "M9 3L3 9", @@ -7630,47 +8949,83 @@ var CloseFilterIcon = (props) => /* @__PURE__ */ jsxs9( var close_filter_icon_default = CloseFilterIcon; // src/components/method-category/index.tsx -import { jsx as jsx15, jsxs as jsxs10 } from "react/jsx-runtime"; +import { jsx as jsx21, jsxs as jsxs15 } from "react/jsx-runtime"; var MethodCategory = ({ method, active, origin, sx }) => { - return /* @__PURE__ */ jsxs10(Flex6, { className: "method-category", sx: categoryStyle(method, active, sx), children: [ - /* @__PURE__ */ jsx15(Text3, { sx: styles_default10.text, children: categoryText(method, origin) }), - origin === "filter" && active && /* @__PURE__ */ jsx15( - close_filter_icon_default, - { - className: "filter-close-button", - sx: closeCategoryStyle(method) - } - ) - ] }); + return /* @__PURE__ */ jsxs15( + Flex8, + { + className: "method-category", + sx: categoryStyle(method, active, origin, sx), + children: [ + /* @__PURE__ */ jsx21(Text6, { sx: styles_default14.text, children: categoryText(method) }), + origin === "filter" && active && /* @__PURE__ */ jsx21( + close_filter_icon_default, + { + className: "filter-close-button", + sx: closeCategoryStyle(method) + } + ) + ] + } + ); }; var method_category_default = MethodCategory; // src/components/sidebar-section-filter/index.tsx -import { useContext as useContext3, useState as useState5 } from "react"; +import { useContext as useContext7, useState as useState9 } from "react"; // src/components/sidebar-section-filter/styles.ts -var container4 = { - px: "17px", - paddingTop: "6px", - borderBottom: "1px solid #E7E9EE", - paddingBottom: "16px", - mb: "24px" +var container7 = { + px: "16px", + pt: "8px", + pb: "16px", + mb: "16px", + borderBottom: "1px solid #E7E9EE" +}; +var containerHamburger = { + px: 0, + pt: 0, + pb: "16px", + mb: 0, + borderBottom: "1px solid #E7E9EE" }; var text2 = { - mb: "8px" + mb: "10px" }; -var category = { - mr: "8px", - px: "4px", +var textHamburger = { + mt: 0, + mb: "10px", + fontSize: "12px", + lineHeight: "16px", + letterSpacing: "0.02em", + color: "#4A596B" +}; +var methodsRow = { + flexWrap: "wrap", + alignItems: "center", + gap: "8px" +}; +var methodsRowHamburger = methodsRow; +var methodButton = { + flexShrink: 0 +}; +var categoryHamburger = { + mr: 0, + px: "10px", + height: "24px", + minHeight: "24px", width: "auto", + minWidth: "max-content", + flexShrink: 0, cursor: "pointer", + borderRadius: "16px", ":hover": { - borderWidth: "2px" + border: "1px solid #D8D8E3" } }; var clear = { @@ -7678,26 +9033,35 @@ var clear = { alignItems: "center", color: "muted.0", fontSize: "12px", + lineHeight: "16px", + whiteSpace: "nowrap", + flexShrink: 0, cursor: "pointer", ":hover": { color: "#000711" } }; -var styles_default11 = { - container: container4, +var styles_default15 = { + container: container7, + containerHamburger, text: text2, - category, + textHamburger, + methodsRow, + methodsRowHamburger, + methodButton, + categoryHamburger, clear }; // src/components/sidebar-section-filter/index.tsx -import { jsx as jsx16, jsxs as jsxs11 } from "react/jsx-runtime"; +import { jsx as jsx22, jsxs as jsxs16 } from "react/jsx-runtime"; var SectionFilter = ({ methodFilterList, - setMethodFilter + setMethodFilter, + isHamburgerMenu = false }) => { - const [activeFilters, setActiveFilters] = useState5([]); - const { locale } = useContext3(LibraryContext); + const [activeFilters, setActiveFilters] = useState9([]); + const { locale } = useContext7(LibraryContext); const setFilter = (methodFilterChanged) => { if (methodFilterChanged) { const index = activeFilters.indexOf(methodFilterChanged); @@ -7722,14 +9086,15 @@ var SectionFilter = ({ } }; const MethodButton = ({ methodFilter }) => { - return /* @__PURE__ */ jsx16( - Box9, + return /* @__PURE__ */ jsx22( + Box13, { + sx: styles_default15.methodButton, onClick: () => setFilter(methodFilter.name), - children: /* @__PURE__ */ jsx16( + children: /* @__PURE__ */ jsx22( method_category_default, { - sx: styles_default11.category, + sx: styles_default15.categoryHamburger, active: methodFilter.active, method: methodFilter.name, origin: "filter" @@ -7739,58 +9104,81 @@ var SectionFilter = ({ `filter-category-${methodFilter.name}` ); }; - 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, - { - methodFilter - }, - `filter-category-${methodFilter.name}` - )), - activeFilters.length > 1 && /* @__PURE__ */ jsx16(Text4, { onClick: () => setFilter(null), sx: styles_default11.clear, children: messages[locale]["api_reference_sidebar_filter_clear"] }) - ] }) + return /* @__PURE__ */ jsxs16(Box13, { sx: isHamburgerMenu ? styles_default15.containerHamburger : styles_default15.container, children: [ + /* @__PURE__ */ jsx22(Text7, { sx: isHamburgerMenu ? styles_default15.textHamburger : styles_default15.text, children: messages[locale]["api_reference_sidebar_filter"] }), + /* @__PURE__ */ jsxs16( + Flex9, + { + sx: isHamburgerMenu ? styles_default15.methodsRowHamburger : styles_default15.methodsRow, + children: [ + methodFilterList.map((methodFilter) => /* @__PURE__ */ jsx22( + MethodButton, + { + methodFilter + }, + `filter-category-${methodFilter.name}` + )), + activeFilters.length > 1 && /* @__PURE__ */ jsx22(Text7, { onClick: () => setFilter(null), sx: styles_default15.clear, children: messages[locale]["api_reference_sidebar_filter_clear"] }) + ] + } + ) ] }); }; var sidebar_section_filter_default = SectionFilter; // src/components/sidebar-elements/index.tsx import { useRouter as useRouter3 } from "next/router.js"; -import { Fragment, useContext as useContext4 } from "react"; +import { Fragment as Fragment2, memo, useContext as useContext8 } from "react"; import { - Box as Box10, - Flex as Flex8, + Box as Box14, + Flex as Flex10, Link as Link4, Button as Button2, - IconCaret as IconCaret2, + IconCaret as IconCaret3, IconExternalLink } from "@vtex/brand-ui"; // src/components/sidebar-elements/styles.ts var elementContainer = { - maxWidth: "265px", + maxWidth: "100%", background: "#FFFFFF", + borderRadius: "8px", ":hover": { background: "#F8F7FC", a: { color: "#142032", - "& > :first-of-type": { - borderWidth: "2px" - } + textDecoration: "none" } } }; +var elementContainerHamburger = { + ...elementContainer, + borderRadius: "8px", + px: "8px" +}; +var linkReset = { + pl: "1px", + textDecoration: "none !important", + ":hover, :focus, :visited, :active": { + textDecoration: "none !important" + } +}; var elementText = { - color: "muted.0", + color: "#4A596B", fontSize: "14px", lineHeight: "20px", fontWeight: "400", textAlign: "initial", - paddingBlock: "7px", + paddingBlock: "8px", display: "flex", - alignItems: "center", - cursor: "pointer" + alignItems: "flex-start", + gap: "8px", + flex: 1, + minWidth: 0, + whiteSpace: "normal", + overflowWrap: "break-word", + cursor: "pointer", + ...linkReset }; var elementActive = { ...elementText, @@ -7798,13 +9186,67 @@ var elementActive = { }; var arrowIcon = { padding: "0", - color: "muted.1", - height: "34px" + margin: "0", + color: "#A1A8B3", + height: "36px", + minHeight: "36px", + minWidth: "16px", + width: "16px", + maxWidth: "16px", + display: "flex", + alignItems: "center", + justifyContent: "center", + flexShrink: 0 +}; +var arrowIconHamburger = { + ...arrowIcon, + height: "44px", + minHeight: "44px", + minWidth: "20px", + width: "20px", + maxWidth: "20px", + display: "flex", + alignItems: "center", + justifyContent: "center", + flexShrink: 0, + color: "#A1A8B3" +}; +var arrowIconSpacer = { + width: "6px", + minWidth: "6px", + maxWidth: "16px", + flexShrink: 0 +}; +var arrowIconSpacerHamburger = { + width: "8px", + minWidth: "8px", + maxWidth: "20px", + flexShrink: 0 +}; +var nestedGroup = { + ml: "8px", + pl: "8px", + borderLeft: "1px solid #E7E9EE" +}; +var nestedGroupFirst = { + pl: "16px" +}; +var nestedGroupHamburger = { + ml: "12px", + pl: "8px", + borderLeft: "1px solid #E7E9EE" +}; +var nestedGroupHamburgerFirst = { + pl: "20px" }; var arrowIconActive = { ...arrowIcon, color: "#D71D55" }; +var arrowIconActiveHamburger = { + ...arrowIconHamburger, + color: "#D71D55" +}; var elementButton = { textTransform: "initial", fontVariationSettings: "unset", @@ -7812,55 +9254,96 @@ var elementButton = { margin: "0", textDecoration: "none !important" }; +var methodBox = { + mr: 0, + flexShrink: 0 +}; var sectionDivider2 = { hr: { border: "1px solid #E7E9EE", borderTop: "none" } }; -var methodBox = { - mr: "10px" -}; -var styles_default12 = { +var styles_default16 = { elementContainer, + elementContainerHamburger, elementText, elementActive, arrowIcon, + arrowIconHamburger, + arrowIconSpacer, + arrowIconSpacerHamburger, arrowIconActive, + arrowIconActiveHamburger, + nestedGroup, + nestedGroupFirst, + nestedGroupHamburger, + nestedGroupHamburgerFirst, elementButton, - sectionDivider: sectionDivider2, - methodBox + methodBox, + sectionDivider: sectionDivider2 }; // src/components/sidebar-elements/functions.tsx -var styleByLevelNormal = (level, icon4) => { - const ml = 8 + (icon4 ? (level - 1) * 20 + 6 : (level - 1) * 20 + 14); - const borderLeft = icon4 ? "none" : level >= 2 ? "1px solid #E7E9EE" : ""; +var isInActivePath = (node, activeSlug, locale) => { + const slug = typeof node.slug === "string" ? node.slug : node.slug[locale]; + const item2 = node.method ? `${slug}#${node.method.toLowerCase()}-${node.endpoint}` : slug; + if (item2 === activeSlug || slug === activeSlug) + return true; + return node.children.some( + (child) => isInActivePath(child, activeSlug, locale) + ); +}; +var styleByLevelNormal = (isHamburgerMenu = false) => { const normal = { - marginLeft: `${ml}px`, - borderLeft + gap: isHamburgerMenu ? "8px" : "3px", + alignItems: "flex-start", + ...isHamburgerMenu ? { + minHeight: "44px", + alignItems: "center" + } : {} }; return normal; }; -var textStyle = (active, icon4) => { - const ml = icon4 ? "4px" : "16px"; +var textStyle = (active, isHamburgerMenu = false, isExpandable = false) => { + const hamburgerText = isHamburgerMenu ? { + fontSize: "15px", + lineHeight: "22px", + paddingBlock: "11px", + minHeight: "44px", + color: active ? "#D71D55" : "#4A596B", + fontWeight: "400", + flex: 1, + minWidth: 0, + whiteSpace: "normal", + overflowWrap: "break-word", + alignItems: "center" + } : isExpandable ? { + fontWeight: "500" + } : {}; if (active) { const textStyleActive = { - ...styles_default12.elementActive, - ml + ...styles_default16.elementActive, + ...hamburgerText }; return textStyleActive; } const textStyle2 = { - ...styles_default12.elementText, - ml + ...styles_default16.elementText, + ...hamburgerText }; return textStyle2; }; // src/components/sidebar-elements/index.tsx -import { jsx as jsx17, jsxs as jsxs12 } from "react/jsx-runtime"; -var SidebarElements = ({ slugPrefix, items, subItemLevel }) => { +import { jsx as jsx23, jsxs as jsxs17 } from "react/jsx-runtime"; +var SidebarElements = ({ + slugPrefix, + items, + subItemLevel, + forceOpen = false, + isHamburgerMenu = false +}) => { const { isEditorPreview, activeSidebarElement, @@ -7868,8 +9351,9 @@ var SidebarElements = ({ slugPrefix, items, subItemLevel }) => { toggleSidebarElementStatus, sidebarDataMaster, locale - } = useContext4(LibraryContext); + } = useContext8(LibraryContext); const router = useRouter3(); + const isElementOpen = (slug, defaultOpen) => forceOpen || (sidebarElementStatus.has(slug) ? sidebarElementStatus.get(slug) : !!defaultOpen); const handleClick = (e, pathSuffix, slug) => { e.preventDefault(); const hasEndpointQuery = router.query.endpoint; @@ -7879,28 +9363,6 @@ var SidebarElements = ({ slugPrefix, items, subItemLevel }) => { router.reload(); }); }; - const checkDocumentationType = (sidebarData, slug, type) => { - if (!sidebarData || typeof sidebarData !== "object" && !Array.isArray(sidebarData)) { - return false; - } else if (sidebarData?.slug == slug && sidebarData?.type == type) { - return true; - } else if (Array.isArray(sidebarData)) { - for (let i = 0; i < sidebarData.length; i++) { - const result = checkDocumentationType(sidebarData[i], slug, type); - if (result) { - return result; - } - } - } else { - for (const k in sidebarData) { - const result = checkDocumentationType(sidebarData[k], slug, type); - if (result) { - return result; - } - } - } - return false; - }; const getHref = (slugPrefix2, pathSuffix, slug) => { const validLocales = ["pt", "es"]; const localePrefix = locale && validLocales.includes(locale) ? `/${locale}` : ""; @@ -7912,130 +9374,160 @@ var SidebarElements = ({ slugPrefix, items, subItemLevel }) => { name, method, endpoint, - children + children, + defaultOpen }) => { - const localizedName = typeof name === "string" ? name : name[locale]; + const localizedName2 = 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", - size: "regular", - variant: "tertiary", - sx: sidebarElementStatus.has(localizedSlug) && sidebarElementStatus.get(localizedSlug) ? styles_default12.arrowIconActive : styles_default12.arrowIcon, - icon: () => /* @__PURE__ */ jsx17( - IconCaret2, + const isActive = activeSidebarElement === activeItem; + const isArrowActive = isInActivePath( + { slug, method, endpoint, children }, + activeSidebarElement, + locale + ); + const documentationType = getDocumentationType( + sidebarDataMaster, + localizedSlug + ); + return /* @__PURE__ */ jsx23( + Box14, + { + "data-sidebar-active": isActive ? "true" : void 0, + sx: isHamburgerMenu ? styles_default16.elementContainerHamburger : styles_default16.elementContainer, + children: /* @__PURE__ */ jsxs17(Flex10, { sx: styleByLevelNormal(isHamburgerMenu), children: [ + isExpandable ? /* @__PURE__ */ jsx23( + Button2, { - direction: sidebarElementStatus.has(localizedSlug) && sidebarElementStatus.get(localizedSlug) ? "down" : "right", - size: 24 + "aria-label": isOpen ? "Collapse category" : "Expand category", + size: "regular", + variant: "tertiary", + sx: isHamburgerMenu ? isArrowActive ? styles_default16.arrowIconActiveHamburger : styles_default16.arrowIconHamburger : isArrowActive ? styles_default16.arrowIconActive : styles_default16.arrowIcon, + icon: () => /* @__PURE__ */ jsx23( + IconCaret3, + { + direction: isOpen ? "down" : "right", + size: 16 + } + ), + onClick: () => toggleSidebarElementStatus(localizedSlug, isOpen) } - ), - onClick: () => toggleSidebarElementStatus(localizedSlug) - } - ), - !checkDocumentationType( - sidebarDataMaster, - localizedSlug, - "category" - ) && !checkDocumentationType(sidebarDataMaster, localizedSlug, "link") ? /* @__PURE__ */ jsxs12( - Link4, - { - sx: textStyle(activeSidebarElement === activeItem, isExpandable), - onClick: (e) => { - if (!isEditorPreview) { - handleClick(e, pathSuffix, localizedSlug); + ) : /* @__PURE__ */ jsx23( + Box14, + { + sx: isHamburgerMenu ? styles_default16.arrowIconSpacerHamburger : styles_default16.arrowIconSpacer, + "aria-hidden": "true" } - toggleSidebarElementStatus(activeItem); - }, - href: getHref(slugPrefix || "", pathSuffix, localizedSlug), - target: isEditorPreview === true ? "_blank" : "_self", - locale, - children: [ - method && /* @__PURE__ */ jsx17( - method_category_default, - { - sx: styles_default12.methodBox, - active: activeSidebarElement === activeItem, - origin: "sidebar", - method - } - ), - localizedName - ] - } - ) : checkDocumentationType( - sidebarDataMaster, - localizedSlug, - "link" - ) ? /* @__PURE__ */ jsxs12(Link4, { href: localizedSlug, target: "_blank", sx: styles_default12.elementText, children: [ - /* @__PURE__ */ jsx17(IconExternalLink, { size: 16, sx: { marginRight: "10px" } }), - localizedName - ] }) : /* @__PURE__ */ jsxs12( - Box10, - { - sx: textStyle( - activeSidebarElement === localizedSlug, - isExpandable ), - onClick: () => { - toggleSidebarElementStatus(localizedSlug); - }, - children: [ - method && /* @__PURE__ */ jsx17( - method_category_default, - { - sx: styles_default12.methodBox, - active: activeSidebarElement === localizedSlug, - origin: "sidebar", - method - } - ), - localizedName - ] - } - ) - ] }) }); + documentationType !== "category" && documentationType !== "link" ? /* @__PURE__ */ jsxs17( + Link4, + { + sx: textStyle(isActive, isHamburgerMenu, isExpandable), + onClick: (e) => { + if (!isEditorPreview) { + handleClick(e, pathSuffix, localizedSlug); + } + toggleSidebarElementStatus(activeItem); + }, + href: getHref(slugPrefix || "", pathSuffix, localizedSlug), + target: isEditorPreview === true ? "_blank" : "_self", + locale, + children: [ + method && /* @__PURE__ */ jsx23( + method_category_default, + { + sx: styles_default16.methodBox, + active: isActive, + origin: "sidebar", + method + } + ), + localizedName2 + ] + } + ) : documentationType === "link" ? /* @__PURE__ */ jsxs17( + Link4, + { + href: localizedSlug, + target: "_blank", + sx: textStyle(false, isHamburgerMenu, false), + children: [ + /* @__PURE__ */ jsx23(IconExternalLink, { size: 16, sx: { marginRight: "10px" } }), + localizedName2 + ] + } + ) : /* @__PURE__ */ jsxs17( + Box14, + { + sx: textStyle(isActive, isHamburgerMenu, isExpandable), + onClick: () => { + toggleSidebarElementStatus(localizedSlug, isOpen); + }, + children: [ + method && /* @__PURE__ */ jsx23( + method_category_default, + { + sx: styles_default16.methodBox, + active: isActive, + origin: "sidebar", + method + } + ), + localizedName2 + ] + } + ) + ] }) + } + ); }; - 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( - SidebarElements, + return isExpandable && isElementOpen(localizedSlug, defaultOpen) ? /* @__PURE__ */ jsx23( + Box14, { - slugPrefix, - items: children, - subItemLevel: subItemLevel + 1 - }, - `${localizedSlug}sd` - ) }) : null; + sx: subItemLevel === 0 ? isHamburgerMenu ? styles_default16.nestedGroupHamburgerFirst : styles_default16.nestedGroupFirst : isHamburgerMenu ? styles_default16.nestedGroupHamburger : styles_default16.nestedGroup, + children: /* @__PURE__ */ jsx23( + SidebarElements, + { + slugPrefix, + items: children, + subItemLevel: subItemLevel + 1, + forceOpen, + isHamburgerMenu + }, + `${localizedSlug}sd` + ) + } + ) : null; }; - return /* @__PURE__ */ jsx17(Box10, { className: "sidebar-component", children: items?.map((item2, index) => { + return /* @__PURE__ */ jsx23(Box14, { className: "sidebar-component", children: items?.map((item2, index) => { const key = typeof item2.slug === "string" ? String(item2.slug) + String(index) : String(item2.slug[locale]) + String(index); const slug = typeof item2.slug === "string" ? `${item2.slug}` : `${item2.slug[locale]}`; - return /* @__PURE__ */ jsxs12(Fragment, { children: [ - /* @__PURE__ */ jsx17(ElementRoot, { ...item2, slug }), - /* @__PURE__ */ jsx17(Box10, { children: /* @__PURE__ */ jsx17(ElementChildren, { ...item2, slug }) }), - subItemLevel == 0 ? /* @__PURE__ */ jsx17(Box10, { sx: styles_default12.sectionDivider, children: /* @__PURE__ */ jsx17("hr", {}) }) : null + return /* @__PURE__ */ jsxs17(Fragment2, { children: [ + /* @__PURE__ */ jsx23(ElementRoot, { ...item2, slug }), + /* @__PURE__ */ jsx23(Box14, { children: /* @__PURE__ */ jsx23(ElementChildren, { ...item2, slug }) }), + subItemLevel == 0 && !isHamburgerMenu ? /* @__PURE__ */ jsx23(Box14, { sx: styles_default16.sectionDivider, children: /* @__PURE__ */ jsx23("hr", {}) }) : null ] }, String(key)); }) }); }; -var sidebar_elements_default = SidebarElements; +var sidebar_elements_default = memo(SidebarElements); // src/components/icons/search-icon.tsx -import { Icon as Icon5 } from "@vtex/brand-ui"; -import { jsx as jsx18 } from "react/jsx-runtime"; -var SearchIcon = (props) => /* @__PURE__ */ jsx18( - Icon5, +import { Icon as Icon7 } from "@vtex/brand-ui"; +import { jsx as jsx24 } from "react/jsx-runtime"; +var SearchIcon = (props) => /* @__PURE__ */ jsx24( + Icon7, { ...props, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", - children: /* @__PURE__ */ jsx18( + children: /* @__PURE__ */ jsx24( "path", { fillRule: "evenodd", @@ -8049,17 +9541,17 @@ var SearchIcon = (props) => /* @__PURE__ */ jsx18( var search_icon_default = SearchIcon; // src/components/icons/sidebar-toggle-icon.tsx -import { Icon as Icon6 } from "@vtex/brand-ui"; -import { jsx as jsx19, jsxs as jsxs13 } from "react/jsx-runtime"; -var SideBarToggleIcon = (props) => /* @__PURE__ */ jsxs13( - Icon6, +import { Icon as Icon8 } from "@vtex/brand-ui"; +import { jsx as jsx25, jsxs as jsxs18 } from "react/jsx-runtime"; +var SideBarToggleIcon = (props) => /* @__PURE__ */ jsxs18( + Icon8, { ...props, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx19( + /* @__PURE__ */ jsx25( "path", { d: "M12 16.332L7 16.332", @@ -8069,7 +9561,7 @@ var SideBarToggleIcon = (props) => /* @__PURE__ */ jsxs13( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx19( + /* @__PURE__ */ jsx25( "path", { d: "M10 12.168L7 12.168", @@ -8079,7 +9571,7 @@ var SideBarToggleIcon = (props) => /* @__PURE__ */ jsxs13( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx19( + /* @__PURE__ */ jsx25( "path", { d: "M12 8L7 8", @@ -8089,7 +9581,7 @@ var SideBarToggleIcon = (props) => /* @__PURE__ */ jsxs13( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx19( + /* @__PURE__ */ jsx25( "path", { d: "M17 9.03906L14 12.1641L17 15.2891", @@ -8105,10 +9597,10 @@ var SideBarToggleIcon = (props) => /* @__PURE__ */ jsxs13( var sidebar_toggle_icon_default = SideBarToggleIcon; // src/components/icons/arrow-left-icon.tsx -import { Icon as Icon7 } from "@vtex/brand-ui"; -import { jsx as jsx20, jsxs as jsxs14 } from "react/jsx-runtime"; -var ArrowLeftIcon = (props) => /* @__PURE__ */ jsxs14( - Icon7, +import { Icon as Icon9 } from "@vtex/brand-ui"; +import { jsx as jsx26, jsxs as jsxs19 } from "react/jsx-runtime"; +var ArrowLeftIcon = (props) => /* @__PURE__ */ jsxs19( + Icon9, { ...props, viewBox: "0 0 24 24", @@ -8116,7 +9608,7 @@ var ArrowLeftIcon = (props) => /* @__PURE__ */ jsxs14( xmlns: "http://www.w3.org/2000/svg", children: [ " ", - /* @__PURE__ */ jsx20( + /* @__PURE__ */ jsx26( "path", { d: "M19.5195 12.0195L4.52953 12.0195", @@ -8126,7 +9618,7 @@ var ArrowLeftIcon = (props) => /* @__PURE__ */ jsxs14( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx20( + /* @__PURE__ */ jsx26( "path", { d: "M10.5176 18.0117L4.48058 11.9997L10.5176 5.98772", @@ -8142,7 +9634,109 @@ var ArrowLeftIcon = (props) => /* @__PURE__ */ jsxs14( var arrow_left_icon_default = ArrowLeftIcon; // src/components/sidebar-section/index.tsx -import { Fragment as Fragment2, jsx as jsx21, jsxs as jsxs15 } from "react/jsx-runtime"; +import { Fragment as Fragment3, jsx as jsx27, jsxs as jsxs20 } from "react/jsx-runtime"; +function localizedName(name, locale) { + return typeof name === "string" ? name : name[locale]; +} +function matchesQuery(name, query, locale) { + if (!query) + return true; + return localizedName(name, locale).toLowerCase().includes(query); +} +function matchesMethodFilter(node, methodFilterList, filterStatus) { + if (!filterStatus || !node.method) + return true; + return methodFilterList.some( + (methodFilter) => methodFilter.name === node.method && methodFilter.active + ); +} +function filterSidebarNode(node, query, methodFilterList, filterStatus, locale) { + const selfMatches = matchesQuery(node.name, query, locale) && matchesMethodFilter(node, methodFilterList, filterStatus); + const children = node.children || []; + if (selfMatches && !filterStatus) { + return node; + } + const filteredChildren = children.map( + (child) => filterSidebarNode( + child, + selfMatches ? "" : query, + methodFilterList, + filterStatus, + locale + ) + ).filter((child) => child != null); + if (filteredChildren.length > 0) { + return { ...node, children: filteredChildren }; + } + if (selfMatches && children.length === 0) { + return node; + } + return null; +} +function scrollDesktopSidebarToActiveItem(container19) { + const activeEl = container19.querySelector( + '[data-sidebar-active="true"]' + ); + if (!activeEl) + return false; + const containerRect = container19.getBoundingClientRect(); + const elRect = activeEl.getBoundingClientRect(); + const isFullyVisible = elRect.top >= containerRect.top && elRect.bottom <= containerRect.bottom; + if (isFullyVisible) + return true; + const topInsideContainer = elRect.top - containerRect.top + container19.scrollTop; + const centered = topInsideContainer - container19.clientHeight / 2 + elRect.height / 2; + container19.scrollTop = Math.max(0, centered); + return true; +} +function filterSidebarCategories(categories, searchValue, methodFilterList, filterStatus, locale) { + if (!categories?.length || !filterStatus && searchValue === "") { + return categories; + } + const query = searchValue.toLowerCase(); + return categories.map( + (category) => filterSidebarNode(category, query, methodFilterList, filterStatus, locale) + ).filter((category) => category != null); +} +var SidebarSearchBox = ({ + value, + placeholder, + onChange +}) => { + const inputRef = useRef6(null); + const { locale } = useContext9(LibraryContext); + const clearLabel = messages[locale]["search_input.clear"] || "Clear search"; + return /* @__PURE__ */ jsxs20(Flex11, { sx: styles_default13.searchBox, children: [ + /* @__PURE__ */ jsx27(search_icon_default, { sx: styles_default13.searchIcon }), + /* @__PURE__ */ jsx27( + "input", + { + ref: inputRef, + style: styles_default13.searchInput, + className: "searchComponent", + type: "text", + placeholder, + value, + onChange: (e) => onChange(e.currentTarget.value) + } + ), + value ? /* @__PURE__ */ jsx27( + Flex11, + { + as: "button", + type: "button", + sx: styles_default13.clearButton, + "aria-label": clearLabel, + title: clearLabel, + onClick: () => { + onChange(""); + inputRef.current?.focus(); + }, + children: /* @__PURE__ */ jsx27(close_icon_default, { sx: styles_default13.clearIcon }) + } + ) : null + ] }); +}; var SidebarSection = ({ documentation: documentation2, name, @@ -8150,15 +9744,17 @@ var SidebarSection = ({ slugPrefix, isHamburgerMenu = false }) => { - const [searchValue, setSearchValue] = useState6(""); + const [searchValue, setSearchValue] = useState10(""); + const sidebarBoxRef = useRef6(null); const { isEditorPreview, sidebarSectionHidden, setSidebarSectionHidden, sidebarSections, + activeSidebarElement, locale - } = useContext5(LibraryContext); - const [methodFilterList, setMethodFilterList] = useState6([ + } = useContext9(LibraryContext); + const [methodFilterList, setMethodFilterList] = useState10([ { name: "POST", active: false }, { name: "GET", active: false }, { name: "PUT", active: false }, @@ -8168,113 +9764,110 @@ var SidebarSection = ({ const filterStatus = methodFilterList.some( (methodFilter) => methodFilter.active ); - const filteredResult = useMemo(() => { - if (!filterStatus && searchValue === "") - return categories; - const dataCopy = JSON.parse(JSON.stringify(categories)); - const filteredCategories = dataCopy.map((category2) => { - category2.children = category2.children.map((subcategory) => { - subcategory.children = subcategory.children.filter((endpoint) => { - const hasMethodFilter = !filterStatus || methodFilterList.find( - (methodFilter) => methodFilter.name === endpoint.method - )?.active; - const hasInputFilter = searchValue === "" || (typeof endpoint.name === "string" ? endpoint.name : endpoint.name[locale]).toLowerCase().includes(searchValue.toLowerCase()); - return hasMethodFilter && hasInputFilter; - }); - return subcategory; - }).filter( - (subcategory) => subcategory.children.length > 0 || subcategory.type === "markdown" && (typeof subcategory.name === "string" ? subcategory.name : subcategory.name[locale]).toLowerCase().includes(searchValue.toLowerCase()) - ); - return category2; - }).filter((category2) => category2.children.length > 0); - return filteredCategories; - }, [filterStatus, methodFilterList, categories, searchValue]); + const filteredResult = useMemo2( + () => filterSidebarCategories( + categories, + searchValue, + methodFilterList, + filterStatus, + locale + ), + [filterStatus, methodFilterList, categories, searchValue, locale] + ); + useLayoutEffect(() => { + if (isHamburgerMenu || !activeSidebarElement) + return; + const container19 = sidebarBoxRef.current; + if (!container19) + return; + const tryScroll = () => scrollDesktopSidebarToActiveItem(container19); + if (tryScroll()) + return; + const observer = new MutationObserver(() => { + if (tryScroll()) + observer.disconnect(); + }); + observer.observe(container19, { childList: true, subtree: true }); + const timeout = window.setTimeout(() => observer.disconnect(), 1500); + return () => { + observer.disconnect(); + window.clearTimeout(timeout); + }; + }, [activeSidebarElement, filteredResult, isHamburgerMenu]); const DocIcon = getIcon2(documentation2, sidebarSections); let localizedSectionTitle = ""; if (!categories || categories.length <= 0) { - return /* @__PURE__ */ jsx21(Fragment2, {}); + return /* @__PURE__ */ jsx27(Fragment3, {}); } else { localizedSectionTitle = typeof name === "string" ? name : name[locale]; } - return isHamburgerMenu ? /* @__PURE__ */ jsx21( - Box11, + return isHamburgerMenu ? /* @__PURE__ */ jsx27( + Box15, { className: sidebarSectionHidden ? "active" : "", - sx: styles_default9.sidebarContainerHamburger, - children: /* @__PURE__ */ jsxs15( - Box11, + sx: styles_default13.sidebarContainerHamburger, + children: /* @__PURE__ */ jsxs20( + Box15, { className: sidebarSectionHidden ? "sidebarHide" : "", - sx: styles_default9.sidebarContainerBoxHamburger, + sx: styles_default13.sidebarContainerBoxHamburger, children: [ - /* @__PURE__ */ jsxs15(Flex9, { sx: styles_default9.sidebarContainerTitle, children: [ - /* @__PURE__ */ jsx21( + /* @__PURE__ */ jsxs20(Flex11, { sx: styles_default13.sidebarContainerTitle, children: [ + /* @__PURE__ */ jsx27( Button3, { - sx: styles_default9.arrowButton, + sx: styles_default13.arrowButton, "aria-label": "Go back", size: "small", variant: "tertiary", - icon: () => /* @__PURE__ */ jsx21(arrow_left_icon_default, { size: 24 }), + icon: () => /* @__PURE__ */ jsx27(arrow_left_icon_default, { size: 24 }), onClick: () => { setSidebarSectionHidden(true); } } ), - DocIcon && /* @__PURE__ */ jsx21(DocIcon, {}), - /* @__PURE__ */ jsx21(Text5, { sx: styles_default9.sidebarTitle, children: localizedSectionTitle }) - ] }), - /* @__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_default9.searchInput, - className: "searchComponent", - type: "text", - placeholder: messages[locale]["sidebar_search.placeholder"] + " " + localizedSectionTitle, - value: searchValue, - onChange: (e) => setSearchValue(e.currentTarget.value) - } - ) - ] }), - documentation2 == "API Reference" && /* @__PURE__ */ jsx21( - sidebar_section_filter_default, - { - methodFilterList, - setMethodFilter: setMethodFilterList - } - ) + DocIcon && /* @__PURE__ */ jsx27(DocIcon, { size: 24, sx: styles_default13.sidebarTitleIcon }), + /* @__PURE__ */ jsx27(Text8, { sx: styles_default13.sidebarTitleHamburger, children: localizedSectionTitle }) ] }), - /* @__PURE__ */ jsx21(Box11, { sx: styles_default9.sidebarContainerBody, children: /* @__PURE__ */ jsx21( + documentation2 == "API Reference" && /* @__PURE__ */ jsx27(Box15, { sx: styles_default13.sidebarContainerFilterHamburger, children: /* @__PURE__ */ jsx27( + sidebar_section_filter_default, + { + isHamburgerMenu: true, + methodFilterList, + setMethodFilter: setMethodFilterList + } + ) }), + /* @__PURE__ */ jsx27(Box15, { sx: styles_default13.sidebarContainerBodyHamburger, children: /* @__PURE__ */ jsx27( sidebar_elements_default, { - items: filteredResult, + items: filteredResult ?? [], subItemLevel: 0, - slugPrefix + slugPrefix, + forceOpen: searchValue !== "" || filterStatus, + isHamburgerMenu: true } ) }) ] } ) } - ) : /* @__PURE__ */ jsxs15( - Box11, + ) : /* @__PURE__ */ jsxs20( + Box15, { className: sidebarSectionHidden ? "active" : "", - sx: styles_default9.sidebarContainer, + sx: styles_default13.sidebarContainer, children: [ - /* @__PURE__ */ jsxs15( - Box11, + /* @__PURE__ */ jsxs20( + Box15, { + ref: sidebarBoxRef, className: sidebarSectionHidden ? "sidebarHide" : "", - sx: styles_default9.sidebarContainerBox, + sx: styles_default13.sidebarContainerBox, "data-cy": "sidebar-section", children: [ - /* @__PURE__ */ jsxs15(Box11, { sx: styles_default9.sidebarContainerHeader, children: [ - isEditorPreview && /* @__PURE__ */ jsxs15(Text5, { sx: styles_default9.previewMode, children: [ - /* @__PURE__ */ jsxs15( + /* @__PURE__ */ jsxs20(Box15, { sx: styles_default13.sidebarContainerHeader, children: [ + isEditorPreview && /* @__PURE__ */ jsxs20(Text8, { sx: styles_default13.previewMode, children: [ + /* @__PURE__ */ jsxs20( "svg", { xmlns: "http://www.w3.org/2000/svg", @@ -8283,15 +9876,15 @@ var SidebarSection = ({ viewBox: "0 0 72 72", fill: "none", children: [ - /* @__PURE__ */ jsx21("circle", { cx: "36", cy: "36", r: "36", fill: "#FFB100" }), - /* @__PURE__ */ jsx21( + /* @__PURE__ */ jsx27("circle", { cx: "36", cy: "36", r: "36", fill: "#FFB100" }), + /* @__PURE__ */ jsx27( "path", { d: "M40.4202 22.6818H31.8152V42.6377H40.4202V22.6818Z", fill: "white" } ), - /* @__PURE__ */ jsx21( + /* @__PURE__ */ jsx27( "path", { d: "M36.1177 54.6113C38.4939 54.6113 40.4202 52.8244 40.4202 50.6201C40.4202 48.4158 38.4939 46.6289 36.1177 46.6289C33.7415 46.6289 31.8152 48.4158 31.8152 50.6201C31.8152 52.8244 33.7415 54.6113 36.1177 54.6113Z", @@ -8303,46 +9896,41 @@ var SidebarSection = ({ ), "PREVIEW MODE" ] }), - /* @__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_default9.searchInput, - className: "searchComponent", - type: "text", - placeholder: messages[locale]["sidebar_search.placeholder"] + " " + localizedSectionTitle, - value: searchValue, - onChange: (e) => setSearchValue(e.currentTarget.value) - } - ) - ] }) + /* @__PURE__ */ jsx27(Text8, { sx: styles_default13.sidebarTitle, children: localizedSectionTitle }), + /* @__PURE__ */ jsx27( + SidebarSearchBox, + { + value: searchValue, + placeholder: messages[locale]["sidebar_search.placeholder"] + " " + localizedSectionTitle, + onChange: setSearchValue + } + ) ] }), - documentation2 == "API Reference" && /* @__PURE__ */ jsx21( + documentation2 == "API Reference" && /* @__PURE__ */ jsx27( sidebar_section_filter_default, { methodFilterList, setMethodFilter: setMethodFilterList } ), - /* @__PURE__ */ jsx21(Box11, { sx: styles_default9.sidebarContainerBody, children: /* @__PURE__ */ jsx21( + /* @__PURE__ */ jsx27(Box15, { sx: styles_default13.sidebarContainerBody, children: /* @__PURE__ */ jsx27( sidebar_elements_default, { - items: filteredResult, + items: filteredResult ?? [], subItemLevel: 0, - slugPrefix + slugPrefix, + forceOpen: searchValue !== "" || filterStatus } ) }) ] } ), - /* @__PURE__ */ jsx21( - Flex9, + /* @__PURE__ */ jsx27( + Flex11, { className: "toggleIcon", - sx: sidebarSectionHidden ? styles_default9.toggleIconBoxActive : styles_default9.toggleIconBox, - children: /* @__PURE__ */ jsx21( + sx: sidebarSectionHidden ? styles_default13.toggleIconBoxActive : styles_default13.toggleIconBox, + children: /* @__PURE__ */ jsx27( sidebar_toggle_icon_default, { onClick: () => { @@ -8350,7 +9938,7 @@ var SidebarSection = ({ (sidebarSectionHidden2) => !sidebarSectionHidden2 ); }, - sx: sidebarSectionHidden ? styles_default9.toggleIcon : {} + sx: sidebarSectionHidden ? styles_default13.toggleIcon : {} } ) } @@ -8359,136 +9947,154 @@ var SidebarSection = ({ } ); }; -var sidebar_section_default = SidebarSection; +var sidebar_section_default = memo2(SidebarSection); // src/lib/sidebar/index.tsx -import { Fragment as Fragment3, jsx as jsx22, jsxs as jsxs16 } from "react/jsx-runtime"; +import { jsx as jsx28, jsxs as jsxs21 } from "react/jsx-runtime"; import { createElement } from "react"; +var SideBarIcon = ({ + expandDelayStatus, + isEditorPreview, + activeSectionName, + setActiveSectionName, + ...sectionElement +}) => { + const [iconTooltip2, setIconTooltip] = useState11(false); + const [tooltipLabel, setTooltipLabel] = useState11(sectionElement.title); + const titleRef = useRef7(); + useEffect10(() => { + setTooltipLabel(sectionElement.title); + }, [sectionElement.title]); + useEffect10(() => { + const target = titleRef.current; + if (!target) + return; + const updateTooltip = () => { + setIconTooltip(target.offsetWidth < target.scrollWidth); + if (target.offsetWidth > 0) + setTooltipLabel(target.innerText); + }; + updateTooltip(); + const resizeObserver = new MutationObserver(updateTooltip); + resizeObserver.observe(target, { + childList: true, + characterData: true, + subtree: true + }); + return () => { + resizeObserver.disconnect(); + }; + }, []); + return /* @__PURE__ */ jsx28(Box16, { sx: styles_default12.linkContainer, children: /* @__PURE__ */ jsx28( + tooltip_default, + { + sx: iconTooltipStyle(iconTooltip2), + placement: "right", + label: tooltipLabel, + children: /* @__PURE__ */ jsx28( + Link5, + { + href: !isEditorPreview ? sectionElement.link : "/", + target: sectionElement?.isExternalLink == true ? "_blank" : "_self", + onClick: (e) => { + if (isEditorPreview) { + e.preventDefault(); + } + setActiveSectionName(sectionElement.id); + }, + passHref: true, + "aria-label": sectionElement.title, + children: /* @__PURE__ */ jsxs21( + Flex12, + { + sx: activeSectionName === sectionElement.id ? styles_default12.iconBoxActive : styles_default12.iconBox, + children: [ + /* @__PURE__ */ jsx28( + sectionElement.Icon, + { + sx: activeSectionName === sectionElement.id ? styles_default12.iconActive : styles_default12.icon + } + ), + /* @__PURE__ */ jsx28( + Text9, + { + className: expandDelayStatus ? "iconDescriptionExpanded" : "", + ref: titleRef, + sx: styles_default12.iconTitle, + children: sectionElement.title + } + ) + ] + } + ) + } + ) + } + ) }); +}; var Sidebar = ({ parentsArray = [] }) => { - const [expandDelayStatus, setExpandDelayStatus] = useState7(true); - const context = useContext6(LibraryContext); + const [expandDelayStatus, setExpandDelayStatus] = useState11(true); + const context = useContext10(LibraryContext); const { isEditorPreview, setActiveSectionName, activeSectionName, sidebarSections, - sidebarDataMaster + sidebarDataMaster, + locale } = context; - const sidebarSectionContent = { - ...Array.isArray(sidebarDataMaster) ? sidebarDataMaster?.find( + const sidebarSectionContent = useMemo3(() => { + if (!Array.isArray(sidebarDataMaster)) + return void 0; + return sidebarDataMaster.find( (section) => section.documentation === activeSectionName - ) : null - }; + ); + }, [sidebarDataMaster, activeSectionName]); updateOpenPage({ parentsArray, context }); - useEffect8(() => { + useEffect10(() => { let timer = void 0; - if (sidebarSectionContent.categories?.length > 0) - timer = setTimeout( - () => setExpandDelayStatus && setExpandDelayStatus(false), - 5e3 - ); + if (sidebarSectionContent?.categories?.length) + timer = setTimeout(() => setExpandDelayStatus(false), 5e3); else - setExpandDelayStatus && setExpandDelayStatus(true); + setExpandDelayStatus(true); return () => { timer && clearTimeout(timer); }; - }, [activeSectionName]); - const SideBarIcon = (sectionElement) => { - const [iconTooltip2, setIconTooltip] = useState7(false); - const [tooltipLabel, setTooltipLabel] = useState7(sectionElement.title); - const titleRef = useRef4(); - useEffect8(() => { - const resizeObserver = new MutationObserver(function(entries) { - const target = entries[0].target; - if (target.offsetWidth < target.scrollWidth) - setIconTooltip(true); - else - setIconTooltip(false); - if (target.offsetWidth > 0) - setTooltipLabel(target.innerText); - }); - if (titleRef.current) { - if (titleRef.current.offsetWidth < titleRef.current.scrollWidth) - setIconTooltip(true); - resizeObserver.observe(titleRef.current, { - childList: true - }); - } - return () => { - resizeObserver.disconnect; - }; - }, [titleRef.current]); - return /* @__PURE__ */ jsx22(Box12, { sx: styles_default7.linkContainer, children: /* @__PURE__ */ jsx22( - tooltip_default, - { - sx: iconTooltipStyle(iconTooltip2), - placement: "right", - label: tooltipLabel, - children: /* @__PURE__ */ jsx22( - Link5, - { - href: !isEditorPreview ? sectionElement.link : "/", - target: sectionElement?.isExternalLink == true ? "_blank" : "_self", - onClick: (e) => { - if (isEditorPreview) { - e.preventDefault(); - } - setActiveSectionName(sectionElement.id); - }, - passHref: true, - "aria-label": sectionElement.title, - children: /* @__PURE__ */ jsxs16( - Flex10, - { - sx: activeSectionName === sectionElement.id ? styles_default7.iconBoxActive : styles_default7.iconBox, - children: [ - /* @__PURE__ */ jsx22( - sectionElement.Icon, - { - sx: activeSectionName === sectionElement.id ? styles_default7.iconActive : styles_default7.icon - } - ), - /* @__PURE__ */ jsx22( - Text6, - { - className: expandDelayStatus ? "iconDescriptionExpanded" : "", - ref: titleRef, - sx: styles_default7.iconTitle, - children: sectionElement.title - } - ) - ] - } - ) - } - ) - } - ) }); - }; - return /* @__PURE__ */ jsxs16(Flex10, { sx: styles_default7.sidebar, children: [ - /* @__PURE__ */ jsx22( - Flex10, + }, [activeSectionName, sidebarSectionContent?.categories?.length]); + return /* @__PURE__ */ jsxs21(Flex12, { sx: styles_default12.sidebar, children: [ + /* @__PURE__ */ jsx28( + Flex12, { className: expandDelayStatus ? "iconContainerExpanded" : "", - sx: styles_default7.sidebarIcons, - children: sidebarSections.map((section, id) => { - return /* @__PURE__ */ jsxs16(Fragment3, { children: [ - 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( + sx: styles_default12.sidebarIcons, + children: sidebarSections.map((section, id) => /* @__PURE__ */ jsxs21(Fragment4, { children: [ + id > 0 && /* @__PURE__ */ jsx28(Box16, { sx: styles_default12.sectionDivider, children: /* @__PURE__ */ jsx28("hr", {}) }), + /* @__PURE__ */ jsx28(Flex12, { sx: styles_default12.sidebarIconsContainer, children: section.map((element) => { + const title9 = getSectionLabel( + element, + sidebarDataMaster, + locale + ); + return /* @__PURE__ */ createElement( SideBarIcon, { ...element, - key: `sidebar-icon-${element.title}` + title: title9, + key: `sidebar-icon-${element.id}`, + expandDelayStatus, + isEditorPreview, + activeSectionName, + setActiveSectionName } - )) }, id) - ] }); - }) + ); + }) }) + ] }, id)) } ), - activeSectionName ? /* @__PURE__ */ jsx22(sidebar_section_default, { ...sidebarSectionContent }) : null + activeSectionName && sidebarSectionContent ? /* @__PURE__ */ jsx28(sidebar_section_default, { ...sidebarSectionContent }) : null ] }); }; var sidebar_default = Sidebar; @@ -8497,96 +10103,204 @@ var sidebar_default = Sidebar; import { Header, HamburgerMenu as VtexHamburgerMenu, - Box as Box16, - IconCaret as IconCaret4, + Box as Box22, + IconCaret as IconCaret5, Button as Button4 } from "@vtex/brand-ui"; // src/lib/hamburger-menu/styles.ts -var menuContainer = { +var headerActions = { display: "flex", - width: "max-content" -}; -var cardContainer = { + alignItems: "center", + justifyContent: "flex-end", + marginLeft: "auto", + height: "100%", + width: "auto", + minWidth: "auto", + maxWidth: "none", + flex: "0 0 auto", + color: "#4A596B", + 'button[role="presentation"]': { + display: ["flex", "flex", "flex", "none"], + alignItems: "center", + justifyContent: "center", + color: "#4A596B", + border: "none", + borderLeft: "none", + outline: "none", + width: "56px", + minWidth: "56px", + maxWidth: "56px", + height: "100%", + padding: 0, + background: "transparent", + cursor: "pointer", + flexShrink: 0, + "> div": { + color: "#4A596B" + }, + svg: { + color: "#4A596B", + rect: { + fill: "#4A596B" + } + }, + ":hover, :focus, :active": { + color: "#4A596B", + background: "transparent", + "> div": { + color: "#4A596B" + }, + svg: { + color: "#4A596B", + rect: { + fill: "#4A596B" + } + } + } + } +}; +var drawerWidth = ["100%", "280px", "280px"]; +var panelWidth = ["100vw", "280px", "280px"]; +var hamburgerContainer = { + display: ["flex", "flex", "flex", "none"], + position: "fixed", + top: ["5rem", 0, 0], + right: 0, + bottom: 0, + left: 0, + marginTop: 0, + paddingBottom: 0, + width: "100%", + height: ["calc(100vh - 5rem)", "100vh", "100vh"], + flexDirection: "column", + alignItems: ["stretch", "flex-start", "flex-start"], + justifyContent: "flex-start", + backgroundColor: ["#FFFFFF", "transparent", "transparent"], + zIndex: [9998, 1e4, 1e4], + overflow: "hidden", + ".menuHidden": { + transform: "translateX(-100%)" + } +}; +var backdrop = { + display: ["none", "block", "block"], + position: "absolute", + top: 0, + right: 0, + bottom: 0, + left: 0, + backgroundColor: "rgba(20, 32, 50, 0.45)", + backdropFilter: "blur(4px)", + WebkitBackdropFilter: "blur(4px)", + cursor: "pointer" +}; +var innerHambugerContainer = { + padding: "0px", + paddingY: 0, + position: "relative", + zIndex: 1, + overflowX: "hidden", + overflowY: "hidden", + width: drawerWidth, + maxWidth: drawerWidth, + height: "100%", + flexShrink: 0, + backgroundColor: "#FFFFFF", + boxShadow: [ + "none", + "4px 0 24px rgba(20, 32, 50, 0.18)", + "4px 0 24px rgba(20, 32, 50, 0.18)" + ] +}; +var menuContainer = { + display: "flex", + width: "max-content", + height: "100%" +}; +var cardContainer = { display: "flex", flexDirection: "column", - width: "100vw", + width: panelWidth, overflowY: "scroll", - height: "calc(100vh - 5rem)" + height: ["calc(100vh - 5rem)", "100vh", "100vh"], + paddingBottom: "env(safe-area-inset-bottom, 0px)" }; var sideMenuContainer = { backgroundColor: "#ffff", - height: "calc(100vh - 5rem)", - width: "100vw", - overflowY: "auto", - overflowX: "hidden", + height: ["calc(100vh - 5rem)", "100vh", "100vh"], + width: panelWidth, + overflow: "hidden", transform: "translate(0)", transition: "transform .5s cubic-bezier(.4,0,.2,1)" }; -var hamburgerContainer = { - display: ["block", "block", "block", "none"], - backgroundColor: "#ffff", - width: "100%", - ".menuHidden": { - transform: "translate(-100%)" - } -}; -var hamburgerSearchContainer = { - display: "flex", - justifyContent: "center", - paddingBlock: "18px", - height: "auto" -}; var documentationContainer = { - px: "16px", - paddingBottom: "8px" + px: "8px", + pt: ["12px", "24px", "24px"], + pb: "12px" }; var updatesContainer = { - px: "16px", - paddingTop: "8px", + px: "8px", + py: "12px", borderRadius: "0px 0px 8px 8px", borderTop: "1px solid #E7E9EE" }; -var innerHambugerContainer = { - padding: "0px", - position: "relative", - overflowX: "hidden" -}; var innerCardContainer = { display: "flex", alignItems: "center", - justifyContent: "space-between" + justifyContent: "space-between", + gap: "8px", + minHeight: "72px", + width: "100%", + maxWidth: "100%", + overflow: "hidden", + borderRadius: "12px", + px: "16px", + py: "14px", + ":hover, :active": { + backgroundColor: "#F8F7FC" + } +}; +var innerCardContent = { + flex: 1, + minWidth: 0, + overflow: "hidden" }; var arrowIcon2 = { padding: "0", - height: "50px", - width: "50px", - color: "muted.1" + height: "40px", + width: "40px", + minWidth: "40px", + flexShrink: 0, + color: "#A1A8B3" }; var arrowIconActive2 = { ...arrowIcon2, color: "#D71D55" }; -var styles_default13 = { +var styles_default17 = { + headerActions, menuContainer, cardContainer, sideMenuContainer, - hamburgerSearchContainer, documentationContainer, updatesContainer, hamburgerContainer, + backdrop, innerHambugerContainer, innerCardContainer, + innerCardContent, arrowIcon: arrowIcon2, arrowIconActive: arrowIconActive2 }; // src/lib/hamburger-menu/index.tsx -import { useContext as useContext10 } from "react"; +import { useContext as useContext15, useEffect as useEffect14, useRef as useRef10, useState as useState16 } from "react"; +import { useRouter as useRouter7 } from "next/router.js"; // src/components/documentation-card/index.tsx import Link6 from "next/link.js"; -import { Box as Box13, Flex as Flex11, Text as Text7 } from "@vtex/brand-ui"; +import { Box as Box17, Flex as Flex13, Text as Text10 } from "@vtex/brand-ui"; // src/components/documentation-card/styles.ts var cardContainer2 = { @@ -8607,10 +10321,31 @@ var cardContainer2 = { color: "#000711" } }; -var titleContainer = { +var titleContainer2 = { alignItems: "center" }; -var title2 = { +var dropdownIcon = { + display: "flex", + alignItems: "center", + justifyContent: "center", + flexShrink: 0, + width: "36px", + height: "36px", + borderRadius: "8px", + backgroundColor: "#f8f7fc", + transition: "background-color 0.15s ease" +}; +var seeAlsoIcon = { + display: "flex", + alignItems: "center", + justifyContent: "center", + flexShrink: 0, + width: "32px", + height: "32px", + borderRadius: "8px", + backgroundColor: "#F4F5F7" +}; +var title4 = { ml: "8px", color: "muted.0" }; @@ -8620,112 +10355,384 @@ var description2 = { lineHeight: "18px", color: "muted.1" }; -var styles_default14 = { +var styles_default18 = { cardContainer: cardContainer2, description: description2, - title: title2, - titleContainer + title: title4, + titleContainer: titleContainer2, + dropdownIcon, + seeAlsoIcon }; // src/components/documentation-card/functions.ts 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 cardContainer4 = { - ...styles_default14.cardContainer, + const containerWidth = containerType === "dropdown" || containerType === "mobile" || containerType === "see-also" ? "100%" : ["324px", "544px", "544px", "544px", "544px", "720px", "1400px"]; + const textWidth = containerType === "dropdown" ? "100%" : containerType === "mobile" ? "100%" : ["276px", "496px", "496px", "496px", "496px", "672px", "1352px"]; + const cardContainer5 = { + ...styles_default18.cardContainer, width: containerWidth, - ".title, .description": { - width: textWidth + ...containerType === "mobile" ? { + my: 0, + padding: 0, + borderRadius: 0, + maxWidth: "100%", + overflow: "hidden", + ":active, :hover": { + borderRadius: 0, + backgroundColor: "transparent" + }, + ".title": { + minWidth: 0, + width: "100%" + }, + ".description": { + width: "100%", + maxWidth: "100%" + } + } : containerType === "dropdown" ? { + my: 0, + padding: "12px", + borderRadius: "8px", + boxSizing: "border-box", + minWidth: 0, + ":active, :hover": { + borderRadius: "8px", + backgroundColor: "transparent", + ".description": { + color: "#142032" + } + }, + ":hover .title, :active .title": { + color: "#142032" + }, + ".title, .description": { + width: "100%" + } + } : containerType === "see-also" ? { + my: 0, + width: "100%", + maxWidth: "100%", + minWidth: 0, + height: "100%", + padding: "12px 14px", + borderRadius: "8px", + border: "1px solid #E7E9EE", + boxSizing: "border-box", + transition: "border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease", + ":active, :hover": { + borderRadius: "8px", + borderColor: "#CCCED8", + backgroundColor: "#F8F7FC", + boxShadow: "0px 0px 16px rgba(0, 0, 0, 0.06)", + ".description": { + color: "#4A596B" + } + }, + ":hover .title, :active .title": { + color: "#000711" + }, + ".title, .description": { + width: "100%" + } + } : { + ".title, .description": { + width: textWidth + } } }; - return cardContainer4; -}; -var titleContainer2 = (containerType) => { - const marginBottom = containerType === "dropdown" ? ["5px", "5px", "5px", "1px"] : "8px"; - const titleContainer3 = { - ...styles_default14.titleContainer, - marginBottom + return cardContainer5; +}; +var titleContainer3 = (containerType) => { + const isStacked = containerType === "dropdown" || containerType === "mobile" || containerType === "see-also"; + const titleContainer4 = { + ...styles_default18.titleContainer, + marginBottom: isStacked ? 0 : "8px", + ...isStacked ? { + alignItems: "flex-start", + gap: "12px" + } : {} }; - return titleContainer3; + return titleContainer4; }; var cardTitle = (containerType) => { const titleAttributes = containerType === "see-also" ? { - textOverflow: "ellipsis", + ml: 0, + fontSize: "15px", + lineHeight: "22px", + fontWeight: 500, + color: "#142032", + whiteSpace: "normal", + overflow: "hidden", + display: "-webkit-box", + WebkitLineClamp: 2, + WebkitBoxOrient: "vertical" + } : containerType === "mobile" ? { + ml: "0px", + fontSize: "16px", + lineHeight: "22px", + color: "#4a596b" + } : containerType === "dropdown" ? { + ml: 0, + fontSize: "14px", + lineHeight: "20px", + fontWeight: 500, + color: "#142032", whiteSpace: "nowrap", overflow: "hidden", - fontSize: "18px", - lineHeight: "24px" + textOverflow: "ellipsis" } : { fontSize: "16px", lineHeight: "22px" }; const cardTitle2 = { - ...styles_default14.title, + ...styles_default18.title, ...titleAttributes }; return cardTitle2; }; +var cardDescription = (containerType) => { + if (containerType === "mobile") { + const mobileDescription = { + ...styles_default18.description, + ml: "0px", + mt: "4px", + fontSize: "13px", + lineHeight: "18px", + color: "#4A596B", + overflowWrap: "break-word", + wordBreak: "break-word" + }; + return mobileDescription; + } + if (containerType === "dropdown") { + const dropdownDescription = { + ...styles_default18.description, + ml: 0, + mt: "2px", + fontSize: "12px", + lineHeight: "16px", + color: "#4A596B", + display: "-webkit-box", + WebkitLineClamp: 2, + WebkitBoxOrient: "vertical", + overflow: "hidden" + }; + return dropdownDescription; + } + if (containerType === "see-also") { + const seeAlsoDescription = { + ...styles_default18.description, + ml: 0, + mt: "2px", + fontSize: "12px", + lineHeight: "16px", + color: "#5E6E84" + }; + return seeAlsoDescription; + } + return styles_default18.description; +}; // src/components/documentation-card/index.tsx -import { jsx as jsx23, jsxs as jsxs17 } from "react/jsx-runtime"; +import { jsx as jsx29, jsxs as jsxs22 } from "react/jsx-runtime"; var DocumentationCard = ({ - title: title5, - description: description4, + title: title9, + description: description6, link: link2, containerType, - Icon: Icon68, - onClick + Icon: Icon82, + onClick, + isExternalLink: isExternalLink2 }) => { - return /* @__PURE__ */ jsx23(Link6, { href: link2, legacyBehavior: true, children: /* @__PURE__ */ jsx23("a", { onClick, style: { width: "100%" }, children: /* @__PURE__ */ jsxs17(Box13, { sx: cardContainer3(containerType), children: [ - /* @__PURE__ */ jsxs17(Flex11, { sx: titleContainer2(containerType), children: [ - /* @__PURE__ */ jsx23(Icon68, { sx: { color: "#4A596B" }, size: 24 }), - /* @__PURE__ */ jsx23(Text7, { className: "title", sx: cardTitle(containerType), children: title5 }) - ] }), - /* @__PURE__ */ jsx23(Text7, { className: "description", sx: styles_default14.description, children: description4 }) - ] }) }) }); + return /* @__PURE__ */ jsx29(Link6, { href: link2, legacyBehavior: true, children: /* @__PURE__ */ jsx29( + "a", + { + onClick, + target: isExternalLink2 ? "_blank" : void 0, + rel: isExternalLink2 ? "noreferrer" : void 0, + style: { + width: "100%", + maxWidth: "100%", + height: containerType === "see-also" ? "100%" : void 0, + display: "block", + overflow: "hidden", + textDecoration: "none", + color: "inherit" + }, + children: /* @__PURE__ */ jsx29(Box17, { sx: cardContainer3(containerType), children: /* @__PURE__ */ jsxs22(Flex13, { sx: titleContainer3(containerType), children: [ + containerType === "dropdown" ? /* @__PURE__ */ jsx29(Flex13, { sx: styles_default18.dropdownIcon, children: /* @__PURE__ */ jsx29(Icon82, { sx: { color: "#4A596B" }, size: 20 }) }) : containerType === "see-also" ? /* @__PURE__ */ jsx29(Flex13, { sx: styles_default18.seeAlsoIcon, children: /* @__PURE__ */ jsx29(Icon82, { sx: { color: "#4A596B" }, size: 18 }) }) : /* @__PURE__ */ jsx29( + Icon82, + { + sx: { color: "#4A596B", flexShrink: 0, mt: "2px" }, + size: 24 + } + ), + /* @__PURE__ */ jsxs22(Box17, { sx: { minWidth: 0, flex: 1 }, children: [ + /* @__PURE__ */ jsx29(Text10, { className: "title", sx: cardTitle(containerType), children: title9 }), + /* @__PURE__ */ jsx29( + Text10, + { + className: "description", + sx: cardDescription(containerType), + children: description6 + } + ) + ] }) + ] }) }) + } + ) }); }; var documentation_card_default = DocumentationCard; +// src/components/mobile-search/index.tsx +import { Box as Box21, Flex as Flex18 } from "@vtex/brand-ui"; +import { useContext as useContext14, useEffect as useEffect13, useState as useState15 } from "react"; +import { useRouter as useRouter6 } from "next/router.js"; + // src/components/search-input/index.tsx import { Configure, InstantSearch } from "react-instantsearch-dom"; // src/components/search-input/search-box.tsx -import { useRef as useRef5, useContext as useContext7 } from "react"; +import { + useRef as useRef8, + useContext as useContext11, + useEffect as useEffect11, + useState as useState12 +} from "react"; import { useRouter as useRouter4 } from "next/router.js"; -import { Flex as Flex12 } from "@vtex/brand-ui"; +import { Flex as Flex14, Box as Box18 } from "@vtex/brand-ui"; import { connectSearchBox } from "react-instantsearch-dom"; // src/components/search-input/styles.ts var resultsOuterContainer = { position: "relative" }; +var searchWidth = ["288px", "458px", "288px", "288px", "416px", "544px"]; +var keyboardHintsDisplay = ["none", "flex", "flex", "none", "flex", "flex"]; var resultsInnerContainer = { - top: 0, + top: "4px", position: "absolute", - width: ["288px", "458px", "458px", "288px", "416px", "544px"], - border: "1px solid #B9B9B9", - borderRadius: "0px 0px 4px 4px", - background: "#FFFFFF" + width: searchWidth, + border: "1px solid #E7E9EE", + borderRadius: "8px", + background: "#FFFFFF", + boxShadow: "0 12px 32px rgba(20, 32, 50, 0.12)", + overflow: "hidden", + zIndex: 20 }; var resultsBox = { - padding: "16px" + padding: "8px", + maxHeight: "min(60vh, 420px)", + overflowY: "auto" }; -var seeAll = { - padding: "24px", +var resultsFooter = (hasSeeAll) => ({ + display: hasSeeAll ? "flex" : keyboardHintsDisplay, + flexWrap: "wrap", + alignItems: "center", + justifyContent: "space-between", + gap: "8px 12px", + padding: ["8px 12px", "8px 16px"], borderTop: "1px solid #E7E9EE", - color: "muted.0", + background: "#FAFAFB" +}); +var resultsFooterModal = (hasSeeAll) => ({ + display: hasSeeAll ? "flex" : "none", + alignItems: "center", + justifyContent: "flex-end", + padding: "4px 8px 8px", + borderTop: "none", + background: "transparent" +}); +var keyboardHints = { + display: keyboardHintsDisplay, + alignItems: "center", + gap: "12px", + flexWrap: "wrap", + flex: "1 1 200px", + minWidth: 0 +}; +var keyboardHint = { + display: "flex", + alignItems: "center", + gap: "4px", + color: "muted.1", + fontSize: "12px", + lineHeight: "16px", + whiteSpace: "nowrap" +}; +var kbd = { + display: "inline-flex", + alignItems: "center", + justifyContent: "center", + minWidth: "20px", + height: "20px", + px: "5px", + borderRadius: "4px", + border: "1px solid #E7E9EE", + background: "#FFFFFF", + boxShadow: "0 1px 0 #E7E9EE", + fontSize: "11px", + fontFamily: "inherit", + color: "#4A596B", + lineHeight: "20px" +}; +var seeAllCaret = { + width: "16px", + height: "16px", + color: "#D71D55", + flexShrink: 0 +}; +var seeAll = { + display: "flex", + alignItems: "center", + justifyContent: [ + "space-between", + "flex-start", + "flex-start", + "space-between", + "flex-start" + ], + gap: "4px", + width: ["100%", "auto", "auto", "100%", "auto"], + maxWidth: "100%", + boxSizing: "border-box", + ml: ["0", "auto", "auto", "0", "auto"], + flex: "0 1 auto", + minWidth: 0, + padding: "6px 10px", + borderRadius: "6px", + color: "#D71D55", + fontSize: "13px", + fontWeight: "600", + lineHeight: "16px", cursor: "pointer", - ":hover": { - background: "#F8F7FC", - borderTop: "1px solid #d0cdcd" + whiteSpace: ["normal", "nowrap", "nowrap", "normal", "nowrap"], + "& p": { + minWidth: 0, + flex: [1, "none", "none", 1, "none"] + }, + ':hover, &[data-active="true"]': { + background: "#F8E3EC" } }; var hitBox = { - padding: "8px", + position: "relative", + display: "flex", + alignItems: "flex-start", + padding: "10px 12px", cursor: "pointer", - ":active, :hover": { + borderRadius: "8px", + a: { + minWidth: 0, + flex: 1, + textDecoration: "none", + color: "inherit" + }, + ".hit-actions": { + opacity: [1, 0] + }, + ':hover, &[data-active="true"]': { backgroundColor: "#F8F7FC", - borderRadius: "4px", ".hit-content-title": { color: "#000711" }, @@ -8733,35 +10740,140 @@ var hitBox = { "> path": { stroke: "#000711" } + }, + ".hit-icon-wrap": { + backgroundColor: "#EDEAF6" + }, + ".hit-actions": { + opacity: 1 } } }; +var hitLink = { + display: "flex", + alignItems: "flex-start", + minWidth: 0, + flex: 1, + textDecoration: "none", + color: "inherit", + pr: ["0", "64px"] +}; +var hitIconWrap = { + flexShrink: 0, + width: "32px", + height: "32px", + borderRadius: "8px", + backgroundColor: "#F4F2FA", + display: "flex", + alignItems: "center", + justifyContent: "center", + mr: "12px", + mt: "1px" +}; var hitIcon = { width: "16px", height: "16px", - marginRight: "8px" + color: "#4A596B" +}; +var hitText = { + minWidth: 0, + flex: 1 }; var hitContentContainer = { - width: "100%" + width: "100%", + minWidth: 0, + overflow: "hidden" +}; +var snippetText = { + overflowWrap: "break-word", + wordBreak: "break-word", + overflow: "hidden", + display: "-webkit-box", + WebkitBoxOrient: "vertical" +}; +var hitTitle = { + display: "flex", + alignItems: "center", + minWidth: 0, + color: "#142032", + fontSize: ["14px", "15px"], + fontWeight: "600", + lineHeight: ["20px", "22px"] +}; +var hitTitleText = { + minWidth: 0, + flex: 1, + whiteSpace: "nowrap", + overflow: "hidden", + textOverflow: "ellipsis" +}; +var httpMethod = { + mr: "8px", + flexShrink: 0, + alignSelf: "center" }; var hitContent = { color: "muted.0", - fontSize: ["14px", "16px"], - lineHeight: ["20px", "22px"], - width: "100%" + fontSize: ["13px", "16px"], + lineHeight: ["18px", "22px"], + width: "100%", + minWidth: 0, + ...snippetText, + WebkitLineClamp: [3, 4] }; var hitContentSmall = { - color: "muted.0", - fontSize: ["14px", "16px"], - lineHeight: ["20px", "22px"], + color: "muted.1", + fontSize: "13px", + lineHeight: "18px", width: "100%", - whiteSpace: "pre", + minWidth: 0, + mt: "2px", + whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }; +var hitActions = { + position: ["static", "absolute"], + top: "8px", + right: "8px", + display: "flex", + alignItems: "center", + gap: "4px", + ml: ["8px", 0], + flexShrink: 0 +}; +var hitActionButton = { + display: "inline-flex", + alignItems: "center", + justifyContent: "center", + width: "28px", + height: "28px", + padding: 0, + border: "1px solid #E7E9EE", + borderRadius: "6px", + background: "#FFFFFF", + color: "#4A596B", + cursor: "pointer", + ":hover": { + background: "#FFFFFF", + borderColor: "#C7CDD6", + color: "#142032" + } +}; +var hitActionButtonCopied = { + ...hitActionButton, + borderColor: "#8CD2A8", + color: "#36875A", + background: "#F0FAF4" +}; var alignCenter = { alignItems: "center" }; +var hitBreadcrumbs = { + alignItems: "center", + minWidth: 0, + mt: "4px" +}; var hitBreadCrumb = { color: "muted.1", fontSize: "12px", @@ -8777,16 +10889,18 @@ var hitBreadCrumbIn = { var hitBreadCrumbArrow = { width: "16px", height: "16px", - color: "muted.2" + color: "muted.2", + flexShrink: 0 }; var searchInput2 = { - width: "76px", + width: "100%", background: "none", - border: "#F4F4F4", - color: "#545454", + border: "none", + outline: "none", + color: "#142032", fontSize: ["14px"], - flex: 0, - transition: "flex 0.3s" + flex: 1, + minWidth: 0 }; var searchIcon2 = { minWidth: "16px", @@ -8794,90 +10908,350 @@ var searchIcon2 = { width: "16px", mr: "8px", flex: 0, - maxWidth: "fit-content" + maxWidth: "fit-content", + color: "#5E6E84", + path: { + fill: "#5E6E84" + } }; var searchContainer = { paddingLeft: "12px", + paddingRight: "8px", alignItems: "center", justifyContent: "center", - background: "#F4F4F4", - width: "288px", + background: "#FFFFFF", + width: searchWidth, height: "40px", - borderRadius: "4px", - transition: "all 0.3s ease-out", + boxSizing: "border-box", + borderRadius: "8px", + border: "1px solid #E7E9EE", + transition: "background 0.2s ease-out, border-color 0.2s ease-out, box-shadow 0.2s ease-out", cursor: "pointer", + 'input[type="search"]::-webkit-search-cancel-button': { + display: "none" + }, + 'input[type="search"]::-webkit-search-decoration': { + display: "none" + }, ":hover": { - transition: "all 0.3s ease-out", - width: ["288px", "458px", "458px", "288px", "416px", "544px"], - border: "1px solid #3B3B3B" + borderColor: "#C7CDD6" }, ":focus-within": { background: "#FFFFFF", - width: ["288px", "458px", "458px", "288px", "416px", "544px"], - transition: "all 0.3s ease-out", - border: "1px solid #3B3B3B", - boxShadow: "0px 0px 0px 1px #FFFFFF, 0px 0px 0px 3px #B9B9B9", - flex: "auto", - ".searchComponent": { - flex: "1 !important" - } - }, - ".searchComponent": { - ":placeholder-shown": { - width: "76px" - }, - ":not(:placeholder-shown)": { - flex: "1 !important" + borderColor: "#E31C58", + boxShadow: "0 0 0 3px rgba(227, 28, 88, 0.16)", + "[data-search-shortcut]": { + display: "none" } } }; +var shortcutHint = { + display: ["none", "flex", "none", "none", "flex", "flex"], + alignItems: "center", + gap: "4px", + ml: "8px", + flexShrink: 0, + pointerEvents: "none" +}; +var shortcutKbd = { + display: "inline-flex", + alignItems: "center", + justifyContent: "center", + minWidth: "20px", + height: "20px", + px: "5px", + borderRadius: "4px", + border: "1px solid #E7E9EE", + background: "#FAFAFB", + boxShadow: "0 1px 0 #E7E9EE", + fontSize: "11px", + fontFamily: "inherit", + color: "#4A596B", + lineHeight: "20px" +}; +var clearButton2 = { + display: "inline-flex", + alignItems: "center", + justifyContent: "center", + width: "24px", + height: "24px", + ml: "4px", + padding: 0, + border: "none", + borderRadius: "50%", + background: "transparent", + color: "#4A596B", + cursor: "pointer", + flexShrink: 0, + ":hover": { + background: "#EDEDED", + color: "#142032" + } +}; var noResults = { justifyContent: "center", alignContent: "center", - padding: "12px" + padding: "20px 12px", + color: "muted.1", + textAlign: "center" +}; +var searchContainerModal = { + paddingLeft: "16px", + paddingRight: "12px", + alignItems: "center", + background: "transparent", + width: "100%", + minHeight: "56px", + borderRadius: 0, + cursor: "text", + 'input[type="search"]::-webkit-search-cancel-button': { + display: "none" + }, + 'input[type="search"]::-webkit-search-decoration': { + display: "none" + }, + ":hover": { + border: "none" + }, + ":focus-within": { + background: "transparent", + border: "none", + boxShadow: "none" + } +}; +var searchIconModal = { + minWidth: "18px", + minHeight: "18px", + width: "18px", + height: "18px", + mr: "12px", + flex: 0, + color: "#A1A8B3", + path: { + fill: "#A1A8B3" + } +}; +var searchInputModal = { + width: "100%", + background: "none", + border: "none", + outline: "none", + color: "#142032", + fontSize: "16px", + lineHeight: "24px", + flex: 1, + minWidth: 0 +}; +var modalRoot = { + display: "flex", + flexDirection: "column", + flex: 1, + minHeight: 0, + maxHeight: "min(80vh, 640px)" +}; +var modalSearchBox = { + flexShrink: 0, + borderBottom: "1px solid #F0F0F0" +}; +var modalResults = { + flex: 1, + minHeight: 0, + overflowY: "auto" +}; +var resultsOuterContainerModal = { + position: "relative", + height: "100%" +}; +var resultsInnerContainerModal = { + position: "relative", + top: 0, + width: "100%", + border: "none", + borderRadius: 0, + background: "transparent", + boxShadow: "none", + overflow: "visible" +}; +var resultsBoxModal = { + padding: "8px", + maxHeight: "none", + overflowY: "visible" +}; +var hitBoxModal = { + position: "relative", + display: "flex", + alignItems: "flex-start", + padding: "10px 12px", + cursor: "pointer", + borderRadius: "12px", + a: { + minWidth: 0, + flex: 1, + textDecoration: "none", + color: "inherit" + }, + ':hover, &[data-active="true"]': { + backgroundColor: "#F4F4F5", + ".hit-content-title": { + color: "#142032" + } + } +}; +var hitLinkModal = { + display: "flex", + alignItems: "flex-start", + minWidth: 0, + flex: 1, + textDecoration: "none", + color: "inherit", + pr: 0 +}; +var hitIconWrapModal = { + flexShrink: 0, + width: "24px", + height: "24px", + borderRadius: 0, + backgroundColor: "transparent", + display: "flex", + alignItems: "center", + justifyContent: "center", + mr: "10px", + mt: "2px" +}; +var hitIconModal = { + width: "16px", + height: "16px", + color: "#8A8A8A" +}; +var hitTitleModal = { + display: "flex", + alignItems: "center", + minWidth: 0, + color: "#142032", + fontSize: "15px", + fontWeight: "600", + lineHeight: "22px" }; var hitContentHighlighted = { - ...hitContent, - color: "#4A596B", - width: "auto", - background: "#FFE0EF" + background: "#F8E3EC", + color: "#142032", + borderRadius: "3px", + padding: "0 2px", + fontWeight: "600", + display: "inline" }; -var styles_default15 = { +var styles_default19 = { resultsOuterContainer, resultsInnerContainer, resultsBox, + resultsFooter, + resultsFooterModal, + keyboardHints, + keyboardHint, + kbd, seeAll, + seeAllCaret, hitBox, + hitLink, + hitIconWrap, hitIcon, + hitText, hitContentContainer, + hitTitle, + hitTitleText, + httpMethod, hitContent, hitContentSmall, + hitActions, + hitActionButton, + hitActionButtonCopied, + hitBreadcrumbs, hitBreadCrumb, hitBreadCrumbIn, hitBreadCrumbArrow, searchInput: searchInput2, searchIcon: searchIcon2, searchContainer, + shortcutHint, + shortcutKbd, + searchContainerModal, + searchIconModal, + searchInputModal, + clearButton: clearButton2, alignCenter, noResults, - hitContentHighlighted + hitContentHighlighted, + modalRoot, + modalSearchBox, + modalResults, + resultsOuterContainerModal, + resultsInnerContainerModal, + resultsBoxModal, + hitBoxModal, + hitLinkModal, + hitIconWrapModal, + hitIconModal, + hitTitleModal }; // src/components/search-input/search-box.tsx -import { jsx as jsx24, jsxs as jsxs18 } from "react/jsx-runtime"; +import { jsx as jsx30, jsxs as jsxs23 } from "react/jsx-runtime"; +var containerStyle = (variant) => variant === "modal" ? styles_default19.searchContainerModal : styles_default19.searchContainer; +var iconStyle = (variant) => variant === "modal" ? styles_default19.searchIconModal : styles_default19.searchIcon; +var inputStyle = (variant) => variant === "modal" ? styles_default19.searchInputModal : styles_default19.searchInput; var SearchBoxComponent = ({ currentRefinement, refine, - changeFocus + changeFocus, + autoFocus = false, + variant = "default" }) => { const router = useRouter4(); - const inputRef = useRef5(null); - const { locale } = useContext7(LibraryContext); + const inputRef = useRef8(null); + const { locale } = useContext11(LibraryContext); + const [isMac, setIsMac] = useState12(false); + useEffect11(() => { + if (autoFocus) + inputRef.current?.focus(); + }, [autoFocus]); + useEffect11(() => { + setIsMac( + /Mac|iPhone|iPad|iPod/.test( + navigator.platform || navigator.userAgent || "" + ) + ); + }, []); + useEffect11(() => { + if (variant === "modal") + return; + const onKeyDown = (event) => { + if (!(event.metaKey || event.ctrlKey) || event.key.toLowerCase() !== "k") { + return; + } + const target = event.target; + if (target && (target.tagName === "TEXTAREA" || target.isContentEditable)) { + return; + } + const input4 = inputRef.current; + if (!input4 || input4.offsetParent === null) + return; + event.preventDefault(); + input4.focus(); + changeFocus(true); + }; + window.addEventListener("keydown", onKeyDown); + return () => window.removeEventListener("keydown", onKeyDown); + }, [variant, changeFocus]); const handleClick = () => { if (inputRef.current != null) inputRef.current.focus(); }; const keyPressed = (e) => { + if (e.key === "Escape") { + changeFocus(false); + inputRef.current?.blur(); + return; + } if (e.key === "Enter") { router.push({ pathname: "/search", @@ -8887,22 +11261,48 @@ var SearchBoxComponent = ({ changeFocus(false); } }; - return /* @__PURE__ */ jsxs18(Flex12, { sx: styles_default15.searchContainer, onClick: handleClick, children: [ - /* @__PURE__ */ jsx24(search_icon_default, { sx: styles_default15.searchIcon }), - /* @__PURE__ */ jsx24( + const handleClear = (e) => { + e.stopPropagation(); + refine(""); + inputRef.current?.focus(); + }; + return /* @__PURE__ */ jsxs23(Flex14, { sx: containerStyle(variant), onClick: handleClick, children: [ + /* @__PURE__ */ jsx30(search_icon_default, { sx: iconStyle(variant) }), + /* @__PURE__ */ jsx30( "input", { - style: styles_default15.searchInput, + style: inputStyle(variant), ref: inputRef, className: "searchComponent", - type: "text", + type: "search", + enterKeyHint: "search", + autoComplete: "off", + autoCorrect: "off", + spellCheck: false, placeholder: messages[locale]["search_input.placeholder"], value: currentRefinement, "data-cy": "search", + "aria-keyshortcuts": "Meta+K Control+K", + autoFocus, onKeyDown: (e) => keyPressed(e), onChange: (e) => refine(e.currentTarget.value) } - ) + ), + currentRefinement ? /* @__PURE__ */ jsx30( + Flex14, + { + as: "button", + type: "button", + sx: styles_default19.clearButton, + "aria-label": messages[locale]["search_input.clear"] || "Clear search", + title: messages[locale]["search_input.clear"] || "Clear search", + onClick: handleClear, + children: /* @__PURE__ */ jsx30(close_icon_default, { sx: { width: "14px", height: "14px" } }) + } + ) : variant === "default" ? /* @__PURE__ */ jsxs23(Flex14, { sx: styles_default19.shortcutHint, "aria-hidden": "true", "data-search-shortcut": true, children: [ + isMac ? /* @__PURE__ */ jsx30(Box18, { as: "kbd", sx: styles_default19.shortcutKbd, children: "\u2318" }) : /* @__PURE__ */ jsx30(Box18, { as: "kbd", sx: styles_default19.shortcutKbd, children: "Ctrl" }), + /* @__PURE__ */ jsx30(Box18, { as: "kbd", sx: styles_default19.shortcutKbd, children: "K" }) + ] }) : null ] }); }; var SearchBox = connectSearchBox(SearchBoxComponent); @@ -8911,25 +11311,26 @@ var search_box_default = SearchBox; // src/components/search-input/results-box.tsx import { useRouter as useRouter5 } from "next/router.js"; import Link7 from "next/link.js"; +import { useContext as useContext12, useEffect as useEffect12, useState as useState13 } from "react"; import { connectStateResults, connectHitInsights } from "react-instantsearch-dom"; import aa from "search-insights"; -import { Box as Box14, Flex as Flex14, IconCaret as IconCaret3, Text as Text9 } from "@vtex/brand-ui"; +import { Box as Box19, Flex as Flex16, IconCaret as IconCaret4, Text as Text12 } from "@vtex/brand-ui"; // src/components/icons/api-guides-icon.tsx -import { Icon as Icon8 } from "@vtex/brand-ui"; -import { jsx as jsx25, jsxs as jsxs19 } from "react/jsx-runtime"; -var APIGuidesIcon = (props) => /* @__PURE__ */ jsxs19( - Icon8, +import { Icon as Icon10 } from "@vtex/brand-ui"; +import { jsx as jsx31, jsxs as jsxs24 } from "react/jsx-runtime"; +var APIGuidesIcon = (props) => /* @__PURE__ */ jsxs24( + Icon10, { ...props, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx25( + /* @__PURE__ */ jsx31( "path", { fillRule: "evenodd", @@ -8941,7 +11342,7 @@ var APIGuidesIcon = (props) => /* @__PURE__ */ jsxs19( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx25( + /* @__PURE__ */ jsx31( "path", { d: "M25.3332 10.6667H19.9998C19.2638 10.6667 18.6665 10.0693 18.6665 9.33333V4", @@ -8951,7 +11352,7 @@ var APIGuidesIcon = (props) => /* @__PURE__ */ jsxs19( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx25( + /* @__PURE__ */ jsx31( "path", { d: "M10.6665 14.6667H18.6665", @@ -8961,7 +11362,7 @@ var APIGuidesIcon = (props) => /* @__PURE__ */ jsxs19( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx25( + /* @__PURE__ */ jsx31( "path", { d: "M10.6665 18.6667H18.6665", @@ -8971,7 +11372,7 @@ var APIGuidesIcon = (props) => /* @__PURE__ */ jsxs19( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx25( + /* @__PURE__ */ jsx31( "path", { d: "M10.6665 22.6667H16.4398", @@ -8987,17 +11388,17 @@ var APIGuidesIcon = (props) => /* @__PURE__ */ jsxs19( var api_guides_icon_default = APIGuidesIcon; // src/components/icons/api-reference-icon.tsx -import { Icon as Icon9 } from "@vtex/brand-ui"; -import { jsx as jsx26, jsxs as jsxs20 } from "react/jsx-runtime"; -var APIReferenceIcon = (props) => /* @__PURE__ */ jsxs20( - Icon9, +import { Icon as Icon11 } from "@vtex/brand-ui"; +import { jsx as jsx32, jsxs as jsxs25 } from "react/jsx-runtime"; +var APIReferenceIcon = (props) => /* @__PURE__ */ jsxs25( + Icon11, { ...props, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx26( + /* @__PURE__ */ jsx32( "path", { d: "M24.7612 26.6668C26.4439 26.6668 27.8092 25.3028 27.8092 23.6188V17.5242L29.3332 16.0002L27.8092 14.4762V8.3815C27.8092 6.6975 26.4452 5.3335 24.7612 5.3335", @@ -9007,7 +11408,7 @@ var APIReferenceIcon = (props) => /* @__PURE__ */ jsxs20( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx26( + /* @__PURE__ */ jsx32( "path", { d: "M12 22.6668L20 9.3335", @@ -9017,7 +11418,7 @@ var APIReferenceIcon = (props) => /* @__PURE__ */ jsxs20( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx26( + /* @__PURE__ */ jsx32( "path", { d: "M7.2385 5.3335C5.5545 5.3335 4.1905 6.6975 4.1905 8.3815V14.4762L2.6665 16.0002L4.1905 17.5242V23.6188C4.1905 25.3028 5.5545 26.6668 7.2385 26.6668", @@ -9033,17 +11434,17 @@ var APIReferenceIcon = (props) => /* @__PURE__ */ jsxs20( var api_reference_icon_default = APIReferenceIcon; // src/components/icons/app-development-icon.tsx -import { Icon as Icon10 } from "@vtex/brand-ui"; -import { jsx as jsx27, jsxs as jsxs21 } from "react/jsx-runtime"; -var AppDevelopmentIcon = (props) => /* @__PURE__ */ jsxs21( - Icon10, +import { Icon as Icon12 } from "@vtex/brand-ui"; +import { jsx as jsx33, jsxs as jsxs26 } from "react/jsx-runtime"; +var AppDevelopmentIcon = (props) => /* @__PURE__ */ jsxs26( + Icon12, { ...props, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx27( + /* @__PURE__ */ jsx33( "path", { fillRule: "evenodd", @@ -9055,7 +11456,7 @@ var AppDevelopmentIcon = (props) => /* @__PURE__ */ jsxs21( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx27( + /* @__PURE__ */ jsx33( "path", { d: "M20.5813 19.312L28 22.6347L15.9827 28L4 22.6347L11.4187 19.3213", @@ -9065,7 +11466,7 @@ var AppDevelopmentIcon = (props) => /* @__PURE__ */ jsxs21( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx27( + /* @__PURE__ */ jsx33( "path", { d: "M20.5813 12.6787L28 16L15.9827 21.3654L4 16L11.4187 12.688", @@ -9081,17 +11482,17 @@ var AppDevelopmentIcon = (props) => /* @__PURE__ */ jsxs21( var app_development_icon_default = AppDevelopmentIcon; // src/components/icons/release-notes-icon.tsx -import { Icon as Icon11 } from "@vtex/brand-ui"; -import { jsx as jsx28, jsxs as jsxs22 } from "react/jsx-runtime"; -var ReleaseNotesIcon = (props) => /* @__PURE__ */ jsxs22( - Icon11, +import { Icon as Icon13 } from "@vtex/brand-ui"; +import { jsx as jsx34, jsxs as jsxs27 } from "react/jsx-runtime"; +var ReleaseNotesIcon = (props) => /* @__PURE__ */ jsxs27( + Icon13, { ...props, viewBox: "0 0 24 25", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx28( + /* @__PURE__ */ jsx34( "path", { d: "M10 8.5V16.5", @@ -9101,7 +11502,7 @@ var ReleaseNotesIcon = (props) => /* @__PURE__ */ jsxs22( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx28( + /* @__PURE__ */ jsx34( "path", { d: "M14 8.5V16.5", @@ -9111,7 +11512,7 @@ var ReleaseNotesIcon = (props) => /* @__PURE__ */ jsxs22( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx28( + /* @__PURE__ */ jsx34( "path", { d: "M8 14.5H16", @@ -9121,7 +11522,7 @@ var ReleaseNotesIcon = (props) => /* @__PURE__ */ jsxs22( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx28( + /* @__PURE__ */ jsx34( "path", { d: "M8 10.5H16", @@ -9131,7 +11532,7 @@ var ReleaseNotesIcon = (props) => /* @__PURE__ */ jsxs22( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx28( + /* @__PURE__ */ jsx34( "path", { fillRule: "evenodd", @@ -9149,17 +11550,17 @@ var ReleaseNotesIcon = (props) => /* @__PURE__ */ jsxs22( var release_notes_icon_default = ReleaseNotesIcon; // src/components/icons/storefront-development-icon.tsx -import { Icon as Icon12 } from "@vtex/brand-ui"; -import { jsx as jsx29, jsxs as jsxs23 } from "react/jsx-runtime"; -var StorefrontDevelopmentIcon = (props) => /* @__PURE__ */ jsxs23( - Icon12, +import { Icon as Icon14 } from "@vtex/brand-ui"; +import { jsx as jsx35, jsxs as jsxs28 } from "react/jsx-runtime"; +var StorefrontDevelopmentIcon = (props) => /* @__PURE__ */ jsxs28( + Icon14, { ...props, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx29( + /* @__PURE__ */ jsx35( "path", { fillRule: "evenodd", @@ -9171,7 +11572,7 @@ var StorefrontDevelopmentIcon = (props) => /* @__PURE__ */ jsxs23( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx29( + /* @__PURE__ */ jsx35( "path", { d: "M10.6667 7.98568C10.6627 7.98568 10.66 7.98835 10.66 7.99235C10.66 7.99635 10.6627 7.99902 10.6667 7.99902C10.6707 7.99902 10.6733 7.99635 10.6733 7.99235C10.6733 7.98835 10.6707 7.98568 10.6667 7.98568", @@ -9181,7 +11582,7 @@ var StorefrontDevelopmentIcon = (props) => /* @__PURE__ */ jsxs23( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx29( + /* @__PURE__ */ jsx35( "path", { d: "M14.673 7.99252C14.669 7.99252 14.6663 7.99519 14.6663 7.99919C14.6663 8.00319 14.669 8.00585 14.673 8.00585C14.677 8.00585 14.6797 8.00319 14.6797 7.99919C14.6797 7.99519 14.677 7.99252 14.673 7.99252", @@ -9191,7 +11592,7 @@ var StorefrontDevelopmentIcon = (props) => /* @__PURE__ */ jsxs23( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx29( + /* @__PURE__ */ jsx35( "path", { d: "M6.66667 7.99887C6.66267 7.99887 6.66 8.00153 6.66 8.00553C6.66 8.00953 6.66267 8.0122 6.66667 8.0122C6.67067 8.0122 6.67333 8.00953 6.67333 8.00553C6.67333 8.00153 6.67067 7.99887 6.66667 7.99887", @@ -9201,7 +11602,7 @@ var StorefrontDevelopmentIcon = (props) => /* @__PURE__ */ jsxs23( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx29( + /* @__PURE__ */ jsx35( "path", { d: "M12.0667 14.999H20.6L19.6667 19.6657H13L11.6667 12.999H10", @@ -9211,7 +11612,7 @@ var StorefrontDevelopmentIcon = (props) => /* @__PURE__ */ jsxs23( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx29( + /* @__PURE__ */ jsx35( "path", { d: "M19.0468 22.952C19.0728 22.9781 19.0728 23.0203 19.0468 23.0463C19.0208 23.0724 18.9786 23.0724 18.9525 23.0463C18.9265 23.0203 18.9265 22.9781 18.9525 22.952C18.9786 22.926 19.0208 22.926 19.0468 22.952", @@ -9221,7 +11622,7 @@ var StorefrontDevelopmentIcon = (props) => /* @__PURE__ */ jsxs23( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx29( + /* @__PURE__ */ jsx35( "path", { d: "M13.7138 22.952C13.7398 22.9781 13.7398 23.0203 13.7138 23.0463C13.6878 23.0724 13.6456 23.0724 13.6195 23.0463C13.5935 23.0203 13.5935 22.9781 13.6195 22.952C13.6456 22.926 13.6878 22.926 13.7138 22.952", @@ -9237,17 +11638,17 @@ var StorefrontDevelopmentIcon = (props) => /* @__PURE__ */ jsxs23( var storefront_development_icon_default = StorefrontDevelopmentIcon; // src/components/icons/vtex-io-apps-icon.tsx -import { Icon as Icon13 } from "@vtex/brand-ui"; -import { jsx as jsx30, jsxs as jsxs24 } from "react/jsx-runtime"; -var VTEXIOAppsIcon = (props) => /* @__PURE__ */ jsxs24( - Icon13, +import { Icon as Icon15 } from "@vtex/brand-ui"; +import { jsx as jsx36, jsxs as jsxs29 } from "react/jsx-runtime"; +var VTEXIOAppsIcon = (props) => /* @__PURE__ */ jsxs29( + Icon15, { ...props, viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx30( + /* @__PURE__ */ jsx36( "path", { fillRule: "evenodd", @@ -9259,7 +11660,7 @@ var VTEXIOAppsIcon = (props) => /* @__PURE__ */ jsxs24( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx30( + /* @__PURE__ */ jsx36( "path", { fillRule: "evenodd", @@ -9271,7 +11672,7 @@ var VTEXIOAppsIcon = (props) => /* @__PURE__ */ jsxs24( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx30( + /* @__PURE__ */ jsx36( "path", { fillRule: "evenodd", @@ -9283,7 +11684,7 @@ var VTEXIOAppsIcon = (props) => /* @__PURE__ */ jsxs24( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx30( + /* @__PURE__ */ jsx36( "path", { fillRule: "evenodd", @@ -9301,17 +11702,17 @@ var VTEXIOAppsIcon = (props) => /* @__PURE__ */ jsxs24( var vtex_io_apps_icon_default = VTEXIOAppsIcon; // src/components/icons/troubleshooting-icon.tsx -import { Icon as Icon14 } from "@vtex/brand-ui"; -import { jsx as jsx31, jsxs as jsxs25 } from "react/jsx-runtime"; -var TroubleshootingIcon = (props) => /* @__PURE__ */ jsxs25( - Icon14, +import { Icon as Icon16 } from "@vtex/brand-ui"; +import { jsx as jsx37, jsxs as jsxs30 } from "react/jsx-runtime"; +var TroubleshootingIcon = (props) => /* @__PURE__ */ jsxs30( + Icon16, { ...props, viewBox: "0 0 36 36", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx31( + /* @__PURE__ */ jsx37( "path", { d: "M16,11.4,13.734,9.331A6.487,6.487,0,0,0,5.366,1.366L9,5,5,9,1.366,5.366a6.49,6.49,0,0,0,7.965,8.368L11.2,15.779", @@ -9321,7 +11722,7 @@ var TroubleshootingIcon = (props) => /* @__PURE__ */ jsxs25( strokeWidth: "2" } ), - /* @__PURE__ */ jsx31( + /* @__PURE__ */ jsx37( "path", { d: "M18.642,23.943l5.842,6.4a2,2,0,0,0,2.892.066l3.038-3.038a2,2,0,0,0-.066-2.892L23.6,18.325", @@ -9331,7 +11732,7 @@ var TroubleshootingIcon = (props) => /* @__PURE__ */ jsxs25( strokeWidth: "2" } ), - /* @__PURE__ */ jsx31( + /* @__PURE__ */ jsx37( "path", { fillRule: "evenodd", @@ -9347,19 +11748,19 @@ var TroubleshootingIcon = (props) => /* @__PURE__ */ jsxs25( var troubleshooting_icon_default = TroubleshootingIcon; // src/components/icons/added-icon.tsx -import { Icon as Icon15 } from "@vtex/brand-ui"; -import { jsx as jsx32, jsxs as jsxs26 } from "react/jsx-runtime"; -var AddedIcon = (props) => /* @__PURE__ */ jsxs26( - Icon15, +import { Icon as Icon17 } from "@vtex/brand-ui"; +import { jsx as jsx38, jsxs as jsxs31 } from "react/jsx-runtime"; +var AddedIcon = (props) => /* @__PURE__ */ jsxs31( + Icon17, { ...props, viewBox: "0 0 16 17", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx32("circle", { cx: "8", cy: "8", r: "8", fill: "#DFF1E0" }), - /* @__PURE__ */ jsxs26("g", { clipPath: "url(#clip0_2354_76889)", children: [ - /* @__PURE__ */ jsx32( + /* @__PURE__ */ jsx38("circle", { cx: "8", cy: "8", r: "8", fill: "#DFF1E0" }), + /* @__PURE__ */ jsxs31("g", { clipPath: "url(#clip0_2354_76889)", children: [ + /* @__PURE__ */ jsx38( "path", { d: "M4.33398 8H11.6673", @@ -9369,7 +11770,7 @@ var AddedIcon = (props) => /* @__PURE__ */ jsxs26( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx32( + /* @__PURE__ */ jsx38( "path", { d: "M8 4.33594V11.6693", @@ -9379,7 +11780,7 @@ var AddedIcon = (props) => /* @__PURE__ */ jsxs26( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx32( + /* @__PURE__ */ jsx38( "path", { fillRule: "evenodd", @@ -9388,7 +11789,7 @@ var AddedIcon = (props) => /* @__PURE__ */ jsxs26( fill: "#38853C" } ), - /* @__PURE__ */ jsx32( + /* @__PURE__ */ jsx38( "path", { fillRule: "evenodd", @@ -9397,7 +11798,7 @@ var AddedIcon = (props) => /* @__PURE__ */ jsxs26( fill: "#38853C" } ), - /* @__PURE__ */ jsx32( + /* @__PURE__ */ jsx38( "path", { fillRule: "evenodd", @@ -9409,7 +11810,7 @@ var AddedIcon = (props) => /* @__PURE__ */ jsxs26( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx32( + /* @__PURE__ */ jsx38( "path", { fillRule: "evenodd", @@ -9422,7 +11823,7 @@ var AddedIcon = (props) => /* @__PURE__ */ jsxs26( } ) ] }), - /* @__PURE__ */ jsx32("defs", { children: /* @__PURE__ */ jsx32("clipPath", { id: "clip0_2354_76889", children: /* @__PURE__ */ jsx32( + /* @__PURE__ */ jsx38("defs", { children: /* @__PURE__ */ jsx38("clipPath", { id: "clip0_2354_76889", children: /* @__PURE__ */ jsx38( "rect", { width: "10.6667", @@ -9437,18 +11838,18 @@ var AddedIcon = (props) => /* @__PURE__ */ jsxs26( var added_icon_default = AddedIcon; // src/components/icons/deprecated-icon.tsx -import { Icon as Icon16 } from "@vtex/brand-ui"; -import { jsx as jsx33, jsxs as jsxs27 } from "react/jsx-runtime"; -var DeprecatedIcon = (props) => /* @__PURE__ */ jsxs27( - Icon16, +import { Icon as Icon18 } from "@vtex/brand-ui"; +import { jsx as jsx39, jsxs as jsxs32 } from "react/jsx-runtime"; +var DeprecatedIcon = (props) => /* @__PURE__ */ jsxs32( + Icon18, { ...props, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx33("circle", { cx: "8", cy: "8", r: "8", fill: "#E7E9EE" }), - /* @__PURE__ */ jsx33( + /* @__PURE__ */ jsx39("circle", { cx: "8", cy: "8", r: "8", fill: "#E7E9EE" }), + /* @__PURE__ */ jsx39( "path", { fillRule: "evenodd", @@ -9463,18 +11864,18 @@ var DeprecatedIcon = (props) => /* @__PURE__ */ jsxs27( var deprecated_icon_default = DeprecatedIcon; // src/components/icons/fixed-icon.tsx -import { Icon as Icon17 } from "@vtex/brand-ui"; -import { jsx as jsx34, jsxs as jsxs28 } from "react/jsx-runtime"; -var FixedIcon = (props) => /* @__PURE__ */ jsxs28( - Icon17, +import { Icon as Icon19 } from "@vtex/brand-ui"; +import { jsx as jsx40, jsxs as jsxs33 } from "react/jsx-runtime"; +var FixedIcon = (props) => /* @__PURE__ */ jsxs33( + Icon19, { ...props, viewBox: "0 0 16 17", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx34("circle", { cx: "8", cy: "8", r: "8", fill: "#DEECF7" }), - /* @__PURE__ */ jsx34( + /* @__PURE__ */ jsx40("circle", { cx: "8", cy: "8", r: "8", fill: "#DEECF7" }), + /* @__PURE__ */ jsx40( "path", { fillRule: "evenodd", @@ -9493,18 +11894,18 @@ var FixedIcon = (props) => /* @__PURE__ */ jsxs28( var fixed_icon_default = FixedIcon; // src/components/icons/improved-icon.tsx -import { Icon as Icon18 } from "@vtex/brand-ui"; -import { jsx as jsx35, jsxs as jsxs29 } from "react/jsx-runtime"; -var ImprovedIcon = (props) => /* @__PURE__ */ jsxs29( - Icon18, +import { Icon as Icon20 } from "@vtex/brand-ui"; +import { jsx as jsx41, jsxs as jsxs34 } from "react/jsx-runtime"; +var ImprovedIcon = (props) => /* @__PURE__ */ jsxs34( + Icon20, { ...props, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx35("circle", { cx: "8.5", cy: "8", r: "8", fill: "#FFEBD7" }), - /* @__PURE__ */ jsx35( + /* @__PURE__ */ jsx41("circle", { cx: "8.5", cy: "8", r: "8", fill: "#FFEBD7" }), + /* @__PURE__ */ jsx41( "path", { d: "M12.5 10L8.49511 6L4.5 10", @@ -9520,18 +11921,18 @@ var ImprovedIcon = (props) => /* @__PURE__ */ jsxs29( var improved_icon_default = ImprovedIcon; // src/components/icons/removed-icon.tsx -import { Icon as Icon19 } from "@vtex/brand-ui"; -import { jsx as jsx36, jsxs as jsxs30 } from "react/jsx-runtime"; -var RemovedIcon = (props) => /* @__PURE__ */ jsxs30( - Icon19, +import { Icon as Icon21 } from "@vtex/brand-ui"; +import { jsx as jsx42, jsxs as jsxs35 } from "react/jsx-runtime"; +var RemovedIcon = (props) => /* @__PURE__ */ jsxs35( + Icon21, { ...props, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx36("circle", { cx: "8.5", cy: "8", r: "8", fill: "#F8E3E3" }), - /* @__PURE__ */ jsx36( + /* @__PURE__ */ jsx42("circle", { cx: "8.5", cy: "8", r: "8", fill: "#F8E3E3" }), + /* @__PURE__ */ jsx42( "path", { d: "M5.83203 5.33594L11.1654 10.6693", @@ -9541,7 +11942,7 @@ var RemovedIcon = (props) => /* @__PURE__ */ jsxs30( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx36( + /* @__PURE__ */ jsx42( "path", { d: "M11.1654 5.33594L5.83203 10.6693", @@ -9557,17 +11958,37 @@ var RemovedIcon = (props) => /* @__PURE__ */ jsxs30( var removed_icon_default = RemovedIcon; // src/utils/search-utils.ts -var getBreadcrumbs = (hit) => { - const breadcrumbs = []; - if (hit.doctype === "API Reference" && hit.doccategory) - breadcrumbs.push(hit.doccategory); - breadcrumbs.push(hit.doctitle); - return breadcrumbs; -}; var getRelativeURL = (url) => { const relativeURL = url.replace(/^(?:\/\/|[^/]+)*\//, ""); return "/" + relativeURL; }; +var HTTP_METHODS = [ + "POST", + "GET", + "PUT", + "DELETE", + "PATCH" +]; +var isMethodType = (value) => HTTP_METHODS.includes(value); +var getSearchHitMethod = (hit) => { + const raw = typeof hit.method === "string" ? hit.method.toUpperCase() : ""; + if (isMethodType(raw)) + return raw; + const url = typeof hit.url === "string" ? hit.url : ""; + const hash = url.includes("#") ? url.slice(url.indexOf("#") + 1) : ""; + const fromHash = hash.split("-")[0]?.toUpperCase() || ""; + if (isMethodType(fromHash)) + return fromHash; + return void 0; +}; +var HYBRID_SEARCH_COUNT_CAP = 1e3; +function formatSearchTabCount(count2) { + if (count2 === void 0) + return void 0; + if (count2 >= HYBRID_SEARCH_COUNT_CAP) + return "999+"; + return String(count2); +} var getIconFromSection = (sections, id) => { return sections.flat().find((section) => section.id === id)?.Icon; }; @@ -9604,144 +12025,453 @@ var getAction = (actionType) => { var getTitleById = (sections, id) => { return sections.flat().find((item2) => item2.id === id)?.title || id; }; +function resolveLocalized(value, locale) { + if (!value) + return ""; + if (typeof value === "string") + return value; + return value[locale] || value.en || ""; +} +function urlMatchesSlug(relativeUrl, slugPrefix, slug) { + if (!slug) + return false; + const url = relativeUrl.replace(/\/$/, "").split("#")[0].split("?")[0]; + const expected = `/${slugPrefix}/${slug}`.replace(/\/{2,}/g, "/"); + return url === expected || url.endsWith(expected) || url.endsWith(`/${slug}`); +} +function nodeContainsHit(node, relativeUrl, slugPrefix, locale) { + const slug = resolveLocalized(node.slug, locale); + if (slug && urlMatchesSlug(relativeUrl, slugPrefix, slug)) + return true; + return (node.children || []).some( + (child) => nodeContainsHit(child, relativeUrl, slugPrefix, locale) + ); +} +function getSearchBreadcrumbs({ + hit, + navigation, + sections, + locale = "en" +}) { + const sectionTitle3 = getTitleById(sections, hit.doctype); + const title9 = typeof hit.doctitle === "string" ? hit.doctitle : ""; + const crumbs = [sectionTitle3]; + const isApiReference = String(hit.doctype).toLowerCase() === "api reference"; + if (isApiReference) { + if (title9 && title9 !== sectionTitle3) + crumbs.push(title9); + return crumbs.filter(Boolean); + } + const relativeUrl = typeof hit.url === "string" ? getRelativeURL(hit.url) : ""; + const navigationList = Array.isArray(navigation) ? navigation : []; + const navSection = navigationList.find( + (item2) => item2.documentation === hit.doctype || String(item2.documentation).toLowerCase() === String(hit.doctype).toLowerCase() + ); + let categoryName = ""; + if (navSection?.categories?.length) { + const slugPrefix = navSection.slugPrefix || ""; + const category = navSection.categories.find( + (cat) => nodeContainsHit(cat, relativeUrl, slugPrefix, locale) + ); + categoryName = resolveLocalized(category?.name, locale); + } + if (!categoryName && typeof hit.doccategory === "string" && hit.doccategory) { + categoryName = hit.doccategory; + } + if (categoryName && categoryName !== sectionTitle3 && categoryName !== title9) { + crumbs.push(categoryName); + } + if (title9 && crumbs[crumbs.length - 1] !== title9) { + crumbs.push(title9); + } + return crumbs.filter(Boolean); +} // src/components/search-input/customHighlight.tsx -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"; -var Highlight = ({ - highlight, - attribute, - hit, - searchPage -}) => { - const [parsedHit, setParsedHit] = useState8([]); - const textContainer = useRef6(null); - const hitHighlights = highlight({ +import { Flex as Flex15, Text as Text11 } from "@vtex/brand-ui"; +import { Fragment as Fragment5, jsx as jsx43 } from "react/jsx-runtime"; +function clipAroundHighlight(parts, maxChars) { + if (!parts.length) + return parts; + const full = parts.map((part) => part.value).join(""); + if (full.length <= maxChars) { + return parts.map((part) => ({ ...part })); + } + const firstHighlight = parts.findIndex((part) => part.isHighlighted); + let start = 0; + if (firstHighlight > 0) { + const beforeLength = parts.slice(0, firstHighlight).reduce((sum, part) => sum + part.value.length, 0); + start = Math.max(0, beforeLength - 36); + } + if (start > 0) { + const space = full.lastIndexOf(" ", start); + if (space >= 0) + start = space + 1; + } + let end = Math.min(full.length, start + maxChars); + if (end < full.length) { + const space = full.lastIndexOf(" ", end); + if (space > start) + end = space; + } + const result = []; + let cursor = 0; + for (const part of parts) { + const partStart = cursor; + const partEnd = cursor + part.value.length; + cursor = partEnd; + if (partEnd <= start || partStart >= end) + continue; + const sliceFrom = Math.max(0, start - partStart); + const sliceTo = Math.min(part.value.length, end - partStart); + const value = part.value.slice(sliceFrom, sliceTo); + if (!value) + continue; + result.push({ value, isHighlighted: part.isHighlighted }); + } + if (start > 0 && result.length) { + result[0] = { ...result[0], value: `...${result[0].value}` }; + } + if (end < full.length && result.length) { + const last = result[result.length - 1]; + result[result.length - 1] = { ...last, value: `${last.value}...` }; + } + return result; +} +var HighlightQuery = ({ + text: text4, + query +}) => { + if (!query?.trim() || !text4) + return /* @__PURE__ */ jsx43(Fragment5, { children: text4 }); + const escaped = query.trim().replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); + const regex = new RegExp(`(${escaped})`, "ig"); + const parts = text4.split(regex); + const normalizedQuery = query.trim().toLowerCase(); + return /* @__PURE__ */ jsx43(Fragment5, { children: parts.map( + (part, index) => part.toLowerCase() === normalizedQuery ? /* @__PURE__ */ jsx43("mark", { style: styles_default19.hitContentHighlighted, children: part }, index) : part + ) }); +}; +var Highlight = ({ + highlight, + attribute, + hit, + searchPage +}) => { + const hitHighlights = highlight({ highlightProperty: "_highlightResult", attribute: hit.type != "content" ? `hierarchy.${hit.type}` : attribute, hit }); - const maxDescriptionSize = 700; - const ellipsedContent = []; - if (searchPage) { - let charCount = 0; - hitHighlights.forEach((part) => { - if (maxDescriptionSize - charCount <= 0) - return; - if (part.value.length + charCount >= maxDescriptionSize) { - part.value = part.value.slice(0, maxDescriptionSize - charCount - 3) + "..."; - } - charCount += part.value.length; - ellipsedContent.push(part); - }); - } - useEffect9(() => { - if (searchPage) - return; - const titleSize = textContainer.current ? textContainer.current.offsetWidth / 7.75 : 40; - const highlightParts = []; - let highlightCount = 0, highlightLength = 0; - hitHighlights.forEach((match, index) => { - const isBetween = index > 0 && index < hitHighlights.length - 1 ? true : false; - if (match.isHighlighted) { - if (isBetween) - highlightCount++; - highlightCount++; - highlightLength += match.value.length; - } else { - highlightParts.push({ - index, - isBetween, - size: match.value.length - }); - } - }); - highlightParts.sort( - (a, b) => a.size - b.size - ); - let sizeRemaining = titleSize - highlightLength; - let size = sizeRemaining / (highlightCount || 1); - highlightParts.forEach((match) => { - const value = hitHighlights[match.index].value; - if (match.isBetween) { - if (match.size >= size * 2) { - const reticences = (size * 2 - 3) / 2; - hitHighlights[match.index].value = value.slice(0, reticences) + "..." + value.slice(value.length - reticences); - sizeRemaining -= size * 2; - } else { - sizeRemaining -= match.size; - } - highlightCount -= 2; - } else { - if (match.size >= size) { - if (match.index === 0) - hitHighlights[match.index].value = "..." + value.slice(value.length - (size - 3)); - else - hitHighlights[match.index].value = value.slice(0, size - 3) + "..."; - sizeRemaining -= size; - } else { - sizeRemaining -= match.size; - } - highlightCount -= 1; - } - size = sizeRemaining / highlightCount; - hitHighlights[match.index].value = hitHighlights[match.index].value.replace(/\s+/g, "\xA0"); - }); - setParsedHit(hitHighlights); - }, [hit, textContainer.current]); - return /* @__PURE__ */ jsx37( - Flex13, - { - ref: textContainer, - className: "hit-content-title", - 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 - ) }) - } + const displayParts = clipAroundHighlight( + hitHighlights, + searchPage ? 700 : 160 ); + return /* @__PURE__ */ jsx43(Flex15, { className: "hit-content-title", sx: styles_default19.hitContentContainer, children: /* @__PURE__ */ jsx43(Text11, { sx: searchPage ? styles_default19.hitContent : styles_default19.hitContentSmall, children: displayParts.map( + (part, index) => part.isHighlighted ? /* @__PURE__ */ jsx43("mark", { style: styles_default19.hitContentHighlighted, children: part.value }, index) : part.value + ) }) }); }; var connectedHighlight = connectHighlight(Highlight); var customHighlight_default = connectedHighlight; +// src/components/icons/copy-icon.tsx +import { Icon as Icon22 } from "@vtex/brand-ui"; +import { jsx as jsx44, jsxs as jsxs36 } from "react/jsx-runtime"; +var CopyIcon = (props) => /* @__PURE__ */ jsxs36( + Icon22, + { + ...props, + viewBox: "0 0 15 15", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + children: [ + /* @__PURE__ */ jsx44( + "path", + { + d: "M12.5 5.625H6.875C6.18464 5.625 5.625 6.18464 5.625 6.875V12.5C5.625 13.1904 6.18464 13.75 6.875 13.75H12.5C13.1904 13.75 13.75 13.1904 13.75 12.5V6.875C13.75 6.18464 13.1904 5.625 12.5 5.625Z", + stroke: "currentcolor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ), + /* @__PURE__ */ jsx44( + "path", + { + d: "M3.125 9.375H2.5C2.16848 9.375 1.85054 9.2433 1.61612 9.00888C1.3817 8.77446 1.25 8.45652 1.25 8.125V2.5C1.25 2.16848 1.3817 1.85054 1.61612 1.61612C1.85054 1.3817 2.16848 1.25 2.5 1.25H8.125C8.45652 1.25 8.77446 1.3817 9.00888 1.61612C9.2433 1.85054 9.375 2.16848 9.375 2.5V3.125", + stroke: "currentcolor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ) + ] + } +); +var copy_icon_default = CopyIcon; + +// src/components/icons/external-link-icon.tsx +import { Icon as Icon23 } from "@vtex/brand-ui"; +import { jsx as jsx45, jsxs as jsxs37 } from "react/jsx-runtime"; +var ExternalLinkIcon = (props) => /* @__PURE__ */ jsxs37( + Icon23, + { + ...props, + viewBox: "0 0 16 16", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + children: [ + /* @__PURE__ */ jsx45( + "path", + { + d: "M12 8.66667V12.6667C12 13.0203 11.8595 13.3594 11.6095 13.6095C11.3594 13.8595 11.0203 14 10.6667 14H3.33333C2.97971 14 2.64057 13.8595 2.39052 13.6095C2.14048 13.3594 2 13.0203 2 12.6667V5.33333C2 4.97971 2.14048 4.64057 2.39052 4.39052C2.64057 4.14048 2.97971 4 3.33333 4H7.33333", + stroke: "currentcolor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ), + /* @__PURE__ */ jsx45( + "path", + { + d: "M10 2H14V6", + stroke: "currentcolor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ), + /* @__PURE__ */ jsx45( + "path", + { + d: "M6.6665 9.33333L13.9998 2", + stroke: "currentcolor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ) + ] + } +); +var external_link_icon_default = ExternalLinkIcon; + +// src/components/icons/paper-icon.tsx +import { Icon as Icon24 } from "@vtex/brand-ui"; +import { jsx as jsx46, jsxs as jsxs38 } from "react/jsx-runtime"; +var PaperIcon = (props) => /* @__PURE__ */ jsxs38( + Icon24, + { + ...props, + viewBox: "0 0 18 18", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + children: [ + /* @__PURE__ */ jsx46( + "path", + { + d: "M10.5 1.5H4.5C4.10218 1.5 3.72064 1.65804 3.43934 1.93934C3.15804 2.22064 3 2.60218 3 3V15C3 15.3978 3.15804 15.7794 3.43934 16.0607C3.72064 16.342 4.10218 16.5 4.5 16.5H13.5C13.8978 16.5 14.2794 16.342 14.5607 16.0607C14.842 15.7794 15 15.3978 15 15V6L10.5 1.5Z", + stroke: "currentcolor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ), + /* @__PURE__ */ jsx46( + "path", + { + d: "M10.5 1.5V6H15", + stroke: "currentcolor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ), + /* @__PURE__ */ jsx46( + "path", + { + d: "M12 9.75H6", + stroke: "currentcolor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ), + /* @__PURE__ */ jsx46( + "path", + { + d: "M12 12.75H6", + stroke: "currentcolor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ), + /* @__PURE__ */ jsx46( + "path", + { + d: "M7.5 6.75H6.75H6", + stroke: "currentcolor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ) + ] + } +); +var paper_icon_default = PaperIcon; + // src/components/search-input/results-box.tsx -import { useContext as useContext8 } from "react"; -import { Fragment as Fragment4, jsx as jsx38, jsxs as jsxs31 } from "react/jsx-runtime"; -var Hit2 = ({ hit, insights }) => { - const { sidebarSections } = useContext8(LibraryContext); - const breadcrumbsList = getBreadcrumbs(hit); - const DocIcon = getIconFromSection(sidebarSections, hit.doctype); - return /* @__PURE__ */ jsx38(Link7, { href: getRelativeURL(hit.url), legacyBehavior: true, children: /* @__PURE__ */ jsx38( - "a", +import { Fragment as Fragment6, jsx as jsx47, jsxs as jsxs39 } from "react/jsx-runtime"; +var VISIBLE_HITS = 7; +var VISIBLE_HITS_MODAL = 5; +var Hit2 = ({ + hit, + insights, + query, + isActive, + copied, + variant = "default", + onCopy, + onOpenNewTab, + onMouseEnter +}) => { + const { sidebarSections, sidebarDataMaster, locale } = useContext12(LibraryContext); + const DocIcon = getIconFromSection(sidebarSections, hit.doctype) || paper_icon_default; + const title9 = typeof hit.doctitle === "string" ? hit.doctitle : ""; + const relativeUrl = getRelativeURL(hit.url); + const breadcrumbs = getSearchBreadcrumbs({ + hit, + navigation: sidebarDataMaster, + sections: sidebarSections, + locale + }); + const isModal = variant === "modal"; + const method = getSearchHitMethod(hit); + return /* @__PURE__ */ jsxs39( + Box19, { - onClick: () => insights("clickedObjectIDsAfterSearch", { - eventName: "Search in top bar", - objectIDs: [hit.objectID] - }), - children: /* @__PURE__ */ jsxs31(Box14, { sx: styles_default15.hitBox, children: [ - /* @__PURE__ */ jsxs31(Flex14, { children: [ - 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_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}`)) + sx: isModal ? styles_default19.hitBoxModal : styles_default19.hitBox, + "data-active": String(Boolean(isActive)), + onMouseEnter, + children: [ + /* @__PURE__ */ jsx47(Link7, { href: relativeUrl, legacyBehavior: true, children: /* @__PURE__ */ jsx47( + "a", + { + onClick: () => insights("clickedObjectIDsAfterSearch", { + eventName: "Search in top bar", + objectIDs: [hit.objectID] + }), + children: /* @__PURE__ */ jsxs39(Flex16, { sx: isModal ? styles_default19.hitLinkModal : styles_default19.hitLink, children: [ + /* @__PURE__ */ jsx47( + Box19, + { + className: "hit-icon-wrap", + sx: isModal ? styles_default19.hitIconWrapModal : styles_default19.hitIconWrap, + children: /* @__PURE__ */ jsx47( + DocIcon, + { + className: "hit-icon", + sx: isModal ? styles_default19.hitIconModal : styles_default19.hitIcon + } + ) + } + ), + /* @__PURE__ */ jsxs39(Box19, { sx: styles_default19.hitText, children: [ + title9 ? /* @__PURE__ */ jsxs39(Text12, { sx: isModal ? styles_default19.hitTitleModal : styles_default19.hitTitle, children: [ + method ? /* @__PURE__ */ jsx47( + method_category_default, + { + sx: styles_default19.httpMethod, + origin: "search", + method, + active: false + } + ) : null, + /* @__PURE__ */ jsx47(Text12, { as: "span", sx: styles_default19.hitTitleText, children: /* @__PURE__ */ jsx47(HighlightQuery, { text: title9, query }) }) + ] }) : null, + !isModal && hit.content ? /* @__PURE__ */ jsx47(customHighlight_default, { hit, attribute: "content" }) : null, + typeof hit.doctype === "string" && /* @__PURE__ */ jsx47(Flex16, { sx: styles_default19.hitBreadcrumbs, children: isModal ? (breadcrumbs.length ? breadcrumbs : [String(hit.doctype)]).map((filter, index) => /* @__PURE__ */ jsxs39(Flex16, { sx: styles_default19.alignCenter, children: [ + index > 0 && /* @__PURE__ */ jsx47( + IconCaret4, + { + direction: "right", + sx: styles_default19.hitBreadCrumbArrow + } + ), + /* @__PURE__ */ jsx47(Text12, { sx: styles_default19.hitBreadCrumb, children: filter || hit.doctype }) + ] }, `${filter}${index}`)) : /* @__PURE__ */ jsxs39(Fragment6, { children: [ + /* @__PURE__ */ jsx47(Text12, { sx: styles_default19.hitBreadCrumbIn, children: `${messages[locale]["search_card.in"] || "In"} ${breadcrumbs[0] || hit.doctype}` }), + breadcrumbs.slice(1).map((filter, index) => /* @__PURE__ */ jsxs39( + Flex16, + { + sx: styles_default19.alignCenter, + children: [ + /* @__PURE__ */ jsx47( + IconCaret4, + { + direction: "right", + sx: styles_default19.hitBreadCrumbArrow + } + ), + /* @__PURE__ */ jsx47(Text12, { sx: styles_default19.hitBreadCrumb, children: filter }) + ] + }, + `${filter}${index}` + )) + ] }) }) + ] }) + ] }) + } + ) }), + !isModal && /* @__PURE__ */ jsxs39(Flex16, { className: "hit-actions", sx: styles_default19.hitActions, children: [ + /* @__PURE__ */ jsx47( + Box19, + { + as: "button", + type: "button", + sx: copied ? styles_default19.hitActionButtonCopied : styles_default19.hitActionButton, + "aria-label": copied ? messages[locale]["search_input.copied"] || "Copied" : messages[locale]["search_input.copy_link"] || "Copy link", + title: copied ? messages[locale]["search_input.copied"] || "Copied" : messages[locale]["search_input.copy_link"] || "Copy link", + onClick: (event) => onCopy(event, relativeUrl, hit.objectID), + onMouseDown: (event) => event.preventDefault(), + children: /* @__PURE__ */ jsx47(copy_icon_default, { size: 14 }) + } + ), + /* @__PURE__ */ jsx47( + Box19, + { + as: "button", + type: "button", + sx: styles_default19.hitActionButton, + "aria-label": messages[locale]["search_input.open_new_tab"] || "Open in new tab", + title: messages[locale]["search_input.open_new_tab"] || "Open in new tab", + onClick: (event) => onOpenNewTab(event, relativeUrl), + onMouseDown: (event) => event.preventDefault(), + children: /* @__PURE__ */ jsx47(external_link_icon_default, { size: 14 }) + } + ) ] }) - ] }) + ] } - ) }); + ); }; var HitWithInsights = connectHitInsights(aa)(Hit2); var HitsBox = connectStateResults( - ({ searchState, searchResults, changeFocus }) => { + ({ searchState, searchResults, changeFocus, variant = "default" }) => { const router = useRouter5(); - const { locale } = useContext8(LibraryContext); + const { locale } = useContext12(LibraryContext); + const [activeIndex, setActiveIndex] = useState13(-1); + const [copiedId, setCopiedId] = useState13(null); + const isModal = variant === "modal"; + const maxHits = isModal ? VISIBLE_HITS_MODAL : VISIBLE_HITS; + const visibleHits = searchResults ? searchResults.hits.slice(0, maxHits) : []; + const hasSeeAll = Boolean( + searchResults && searchResults.hits.length > maxHits + ); + const itemCount = visibleHits.length + (hasSeeAll ? 1 : 0); const seeAllSubmit = (keyword) => { router.push({ pathname: "/search", @@ -9756,39 +12486,161 @@ var HitsBox = connectStateResults( __position: searchResults.hitsPerPage * searchResults.page + index + 1 }; }; - return /* @__PURE__ */ jsx38(Fragment4, { 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, + const handleCopy = async (event, url, objectID) => { + event.preventDefault(); + event.stopPropagation(); + try { + await navigator.clipboard.writeText(`${window.location.origin}${url}`); + setCopiedId(objectID); + } catch { + setCopiedId(null); + } + }; + const handleOpenNewTab = (event, url) => { + event.preventDefault(); + event.stopPropagation(); + window.open(url, "_blank", "noopener,noreferrer"); + }; + useEffect12(() => { + setActiveIndex(-1); + }, [searchState.query]); + useEffect12(() => { + if (!copiedId) + return; + const timeout = window.setTimeout(() => setCopiedId(null), 2e3); + return () => window.clearTimeout(timeout); + }, [copiedId]); + useEffect12(() => { + const activeHit = document.querySelector('[data-active="true"]'); + activeHit?.scrollIntoView({ block: "nearest" }); + }, [activeIndex]); + useEffect12(() => { + const onKeyDown = (event) => { + if (event.key === "Escape") { + changeFocus(false); + return; + } + if (!itemCount) + return; + if (event.key === "ArrowDown") { + event.preventDefault(); + setActiveIndex((current) => (current + 1) % itemCount); + } else if (event.key === "ArrowUp") { + event.preventDefault(); + setActiveIndex( + (current) => current <= 0 ? itemCount - 1 : current - 1 + ); + } else if (event.key === "Enter" && activeIndex >= 0) { + event.preventDefault(); + event.stopPropagation(); + if (hasSeeAll && activeIndex === visibleHits.length) { + seeAllSubmit(searchState.query || ""); + return; + } + const hit = visibleHits[activeIndex]; + if (hit) { + router.push(getRelativeURL(hit.url)); + changeFocus(false); + } + } + }; + window.addEventListener("keydown", onKeyDown, true); + return () => window.removeEventListener("keydown", onKeyDown, true); + }, [ + activeIndex, + changeFocus, + hasSeeAll, + itemCount, + router, + searchState.query, + visibleHits + ]); + if (isModal && !searchState.query) + return null; + return /* @__PURE__ */ jsx47(Fragment6, { children: searchResults && /* @__PURE__ */ jsx47( + Box19, + { + sx: isModal ? styles_default19.resultsOuterContainerModal : styles_default19.resultsOuterContainer, + children: /* @__PURE__ */ jsxs39( + Box19, { - onClick: () => changeFocus(false), - children: /* @__PURE__ */ jsx38( - HitWithInsights, - { - hit: setQueryIDAndPosition(searchResult, index) - } - ) - }, - `matched-result-${index}` + sx: isModal ? styles_default19.resultsInnerContainerModal : styles_default19.resultsInnerContainer, + children: [ + /* @__PURE__ */ jsx47( + Box19, + { + sx: searchResults.hits.length && (isModal ? styles_default19.resultsBoxModal : styles_default19.resultsBox), + children: visibleHits.map((searchResult, index) => /* @__PURE__ */ jsx47( + Box19, + { + onClick: () => changeFocus(false), + children: /* @__PURE__ */ jsx47( + HitWithInsights, + { + hit: setQueryIDAndPosition(searchResult, index), + query: searchState.query, + isActive: activeIndex === index, + copied: copiedId === searchResult.objectID, + variant, + onCopy: handleCopy, + onOpenNewTab: handleOpenNewTab, + onMouseEnter: () => setActiveIndex(index) + } + ) + }, + searchResult.objectID || `matched-result-${index}` + )) + } + ), + searchResults.hits.length > 0 && /* @__PURE__ */ jsxs39( + Flex16, + { + sx: isModal ? styles_default19.resultsFooterModal(hasSeeAll) : styles_default19.resultsFooter(hasSeeAll), + children: [ + !isModal && /* @__PURE__ */ jsxs39(Flex16, { sx: styles_default19.keyboardHints, children: [ + /* @__PURE__ */ jsxs39(Flex16, { sx: styles_default19.keyboardHint, children: [ + /* @__PURE__ */ jsx47(Text12, { as: "span", sx: styles_default19.kbd, children: "\u2191" }), + /* @__PURE__ */ jsx47(Text12, { as: "span", sx: styles_default19.kbd, children: "\u2193" }), + /* @__PURE__ */ jsx47(Text12, { children: messages[locale]["search_input.navigate"] || "Navigate" }) + ] }), + /* @__PURE__ */ jsxs39(Flex16, { sx: styles_default19.keyboardHint, children: [ + /* @__PURE__ */ jsx47(Text12, { as: "span", sx: styles_default19.kbd, children: "\u21B5" }), + /* @__PURE__ */ jsx47(Text12, { children: messages[locale]["search_input.open"] || "Open" }) + ] }), + /* @__PURE__ */ jsxs39(Flex16, { sx: styles_default19.keyboardHint, children: [ + /* @__PURE__ */ jsx47(Text12, { as: "span", sx: styles_default19.kbd, children: "esc" }), + /* @__PURE__ */ jsx47(Text12, { children: messages[locale]["search_input.close"] || "Close" }) + ] }) + ] }), + hasSeeAll && /* @__PURE__ */ jsxs39( + Box19, + { + sx: styles_default19.seeAll, + "data-active": String(activeIndex === visibleHits.length), + onMouseEnter: () => setActiveIndex(visibleHits.length), + onClick: () => seeAllSubmit(searchState.query || ""), + children: [ + /* @__PURE__ */ jsx47(Text12, { children: messages[locale]["search_input.see_all"] || "See all results" }), + /* @__PURE__ */ jsx47(IconCaret4, { direction: "right", sx: styles_default19.seeAllCaret }) + ] + } + ) + ] + } + ), + !searchResults.hits.length && /* @__PURE__ */ jsx47(Flex16, { sx: styles_default19.noResults, children: /* @__PURE__ */ jsx47(Text12, { children: messages[locale]["search_input.empty"] || "No results found. Try different search terms." }) }) + ] + } ) - ) }), - searchResults.hits.length > 7 && /* @__PURE__ */ jsx38( - Box14, - { - 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_default15.noResults, children: /* @__PURE__ */ jsx38(Text9, { children: messages[locale]["search_input.empty"] || "No results found. Try different search terms." }) }) - ] }) }) }); + } + ) }); } ); var results_box_default = HitsBox; // src/components/search-input/index.tsx -import { Box as Box15 } from "@vtex/brand-ui"; -import { useContext as useContext9, useRef as useRef7, useState as useState9 } from "react"; +import { Box as Box20, Flex as Flex17 } from "@vtex/brand-ui"; +import { useContext as useContext13, useRef as useRef9, useState as useState14 } from "react"; // src/utils/config/search-config.ts var import_lite = __toESM(require_lite()); @@ -9796,6 +12648,7 @@ import aa2 from "search-insights"; var searchClient = {}; var searchIndex = ""; var hitsPerPage = 10; +var SEARCH_RESULTS_HITS_PER_PAGE = 100; var createAlgoliaClient = (config) => { const { apiKey, @@ -9832,6 +12685,21 @@ var createAlgoliaClient = (config) => { }; }; var HYBRID_UPSTREAM_MAX_LIMIT = 100; +var HYBRID_DOCTYPE_IDS = [ + "tracks", + "tutorials", + "faq", + "known-issues", + "troubleshooting", + "announcements" +]; +var PORTAL_TO_CANONICAL_DOCTYPE = { + tutorials: "tutorial", + tracks: "tracks", + faq: "faq", + troubleshooting: "troubleshooting", + announcements: "announcements" +}; var createHybridClient = (config) => { const { apiEndpoint, @@ -9845,6 +12713,9 @@ var createHybridClient = (config) => { hitsPerPage = pageSize; const effectiveUpstreamLimit = clampUpstreamLimit(upstreamFetchSize); const cache = []; + const countCache = []; + const doctypeDeepCache = []; + const deepenPagination = /* @__PURE__ */ new Map(); const getCached = (key) => { const now = Date.now(); for (let i = cache.length - 1; i >= 0; i--) { @@ -9859,15 +12730,74 @@ var createHybridClient = (config) => { while (cache.length > 20) cache.shift(); }; - aa2("init", { - appId: "hybrid-search", - apiKey: "none", - useCookie: false - }); - searchClient = { - appId: "hybrid-search", - apiKey: "hybrid", - useLanguageFilter, + const getCachedCounts = (key) => { + const now = Date.now(); + for (let i = countCache.length - 1; i >= 0; i--) { + if (now - countCache[i].ts > cacheTtlMs) { + countCache.splice(i, 1); + } + } + return countCache.find((e) => e.key === key)?.counts; + }; + const setCachedCounts = (key, counts) => { + countCache.push({ key, ts: Date.now(), counts }); + while (countCache.length > 20) + countCache.shift(); + }; + const getDoctypeDeepCached = (key) => { + const now = Date.now(); + for (let i = doctypeDeepCache.length - 1; i >= 0; i--) { + if (now - doctypeDeepCache[i].ts > cacheTtlMs) { + doctypeDeepCache.splice(i, 1); + } + } + return doctypeDeepCache.find((e) => e.key === key)?.hits; + }; + const setDoctypeDeepCached = (key, hits) => { + doctypeDeepCache.push({ key, ts: Date.now(), hits }); + while (doctypeDeepCache.length > 20) + doctypeDeepCache.shift(); + }; + const countsEndpoint = `${apiEndpoint.replace(/\/?$/, "")}/counts`; + const mapApiCountsToPortal = (counts, total) => ({ + "": total, + tracks: counts.tracks, + tutorials: counts.tutorial, + faq: counts.faq, + troubleshooting: counts.troubleshooting, + announcements: counts.announcements, + "known-issues": 0 + }); + const fetchDoctypeCounts = async (query, locale) => { + try { + const url = new URL(countsEndpoint, window.location.origin); + url.searchParams.set("q", query); + if (useLanguageFilter && locale) { + url.searchParams.set("locale", locale); + } + const response = await fetch(url.toString()); + if (!response.ok) { + return void 0; + } + const data = await response.json(); + const { counts, total } = data; + if (!counts || typeof total !== "number" || typeof counts.tracks !== "number" || typeof counts.tutorial !== "number" || typeof counts.faq !== "number" || typeof counts.troubleshooting !== "number" || typeof counts.announcements !== "number") { + return void 0; + } + return mapApiCountsToPortal(counts, total); + } catch { + return void 0; + } + }; + aa2("init", { + appId: "hybrid-search", + apiKey: "none", + useCookie: false + }); + searchClient = { + appId: "hybrid-search", + apiKey: "hybrid", + useLanguageFilter, instantSearchConfigs: null, async search(requests) { if (requests.every(({ params }) => !params?.query)) { @@ -9885,11 +12815,16 @@ var createHybridClient = (config) => { locale: useLanguageFilter ? locale || "" : "", limit: effectiveUpstreamLimit }); + const countCacheKey = JSON.stringify({ + q: query, + locale: useLanguageFilter ? locale || "" : "" + }); + const isSearchResultsRequest = typeof params?.filters === "string" && params.filters.length > 0; const cachedHits = getCached(cacheKey); - let allHits; - if (cachedHits) { - allHits = cachedHits; - } else { + let cachedCounts = getCachedCounts(countCacheKey); + const hitsPromise = (async () => { + if (cachedHits) + return cachedHits; const url = new URL(apiEndpoint, window.location.origin); url.searchParams.set("q", query); url.searchParams.set("limit", String(effectiveUpstreamLimit)); @@ -9902,35 +12837,132 @@ var createHybridClient = (config) => { } const data = await response.json(); const rawResults = Array.isArray(data?.results) ? data.results : []; - allHits = rawResults.map(transformHybridToAlgolia); - setCached(cacheKey, allHits); + const allHits2 = rawResults.map(transformHybridToAlgolia); + setCached(cacheKey, allHits2); + return allHits2; + })(); + const countsPromise = (async () => { + if (!isSearchResultsRequest) + return void 0; + if (cachedCounts) + return cachedCounts; + const counts = await fetchDoctypeCounts(query, locale); + if (counts) { + setCachedCounts(countCacheKey, counts); + } + return counts; + })(); + const [fetchedHits, doctypeCounts] = await Promise.all([ + hitsPromise, + countsPromise + ]); + if (doctypeCounts) { + cachedCounts = doctypeCounts; + } + const allHits = excludeHitsByDoctype(fetchedHits, excludedDoctypes); + const initialFilteredHits = filterHitsByDoctype(allHits, doctypes); + let listHits = doctypes.length ? initialFilteredHits : allHits; + const doctypeDeepCacheKey = doctypes.length === 1 ? JSON.stringify({ + q: query, + locale: useLanguageFilter ? locale || "" : "", + doctype: doctypes[0], + limit: effectiveUpstreamLimit + }) : ""; + let start = page * hitsPerPage2; + if (doctypes.length === 1) { + const portalDoctype = doctypes[0]; + const canonicalDoctype = PORTAL_TO_CANONICAL_DOCTYPE[portalDoctype]; + const prevPage = deepenPagination.get(doctypeDeepCacheKey); + if (page === 0 || !prevPage || prevPage.lastPage !== page - 1) { + start = page === 0 ? 0 : page * hitsPerPage2; + if (page === 0) + deepenPagination.delete(doctypeDeepCacheKey); + } else { + start = prevPage.endOffset; + } + if (canonicalDoctype && start >= initialFilteredHits.length) { + let deepenedHits = getDoctypeDeepCached(doctypeDeepCacheKey); + if (!deepenedHits) { + const url = new URL(apiEndpoint, window.location.origin); + url.searchParams.set("q", query); + url.searchParams.set("limit", String(effectiveUpstreamLimit)); + url.searchParams.set("doctype", portalDoctype); + if (useLanguageFilter && locale) { + url.searchParams.set("locale", locale); + } + const response = await fetch(url.toString()); + if (response.ok) { + const data = await response.json(); + const rawResults = Array.isArray(data?.results) ? data.results : []; + deepenedHits = rawResults.map(transformHybridToAlgolia); + setDoctypeDeepCached(doctypeDeepCacheKey, deepenedHits); + } else { + deepenedHits = []; + } + } + listHits = mergeDeepenedHits(initialFilteredHits, deepenedHits); + } } - const searchableHits = excludeHitsByDoctype(allHits, excludedDoctypes); - const filteredHits = filterHitsByDoctype(searchableHits, doctypes); - const nbHits = filteredHits.length; + const doctypeCount = doctypes.length === 1 ? cachedCounts?.[doctypes[0]] : void 0; + const hasDeepened = doctypes.length === 1 && (Boolean(getDoctypeDeepCached(doctypeDeepCacheKey)) || listHits.length > initialFilteredHits.length); + const nbHits = (() => { + if (!doctypes.length) + return allHits.length; + const cap = HYBRID_UPSTREAM_MAX_LIMIT; + if (typeof doctypeCount === "number") { + if (hasDeepened) { + return Math.min(doctypeCount, cap, listHits.length); + } + return Math.min(doctypeCount, cap); + } + return Math.min(listHits.length, cap); + })(); const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage2)); - const start = page * hitsPerPage2; - const pageHits = filteredHits.slice(start, start + hitsPerPage2); - const facets = extractFacetsFromHits(searchableHits); - return { - results: [ - { - hits: pageHits, - nbHits, - page, - nbPages, - hitsPerPage: hitsPerPage2, - exhaustiveNbHits: true, - query, - params: "", - index: request.indexName || "", - processingTimeMS: 0, - facets: facets.facets, - facets_stats: {}, - exhaustiveFacetsCount: true, - queryID: generateQueryID() + const pageHits = listHits.slice(start, start + hitsPerPage2); + if (doctypes.length === 1) { + deepenPagination.set(doctypeDeepCacheKey, { + lastPage: page, + endOffset: start + pageHits.length + }); + } + const excludedDoctypeSet = new Set( + excludedDoctypes.map((d) => d.toLowerCase()) + ); + const doctypeFacetData = {}; + if (cachedCounts) { + HYBRID_DOCTYPE_IDS.forEach((id) => { + if (excludedDoctypeSet.has(id.toLowerCase())) + return; + const count2 = cachedCounts[id]; + if (typeof count2 === "number") { + doctypeFacetData[id] = count2; } - ] + }); + } + const hybridAllCount = cachedCounts?.[""]; + const searchResult = { + hits: pageHits, + nbHits, + page, + nbPages, + hitsPerPage: hitsPerPage2, + exhaustiveNbHits: true, + query, + params: "", + index: request.indexName || "", + processingTimeMS: 0, + facets: { + doctype: doctypeFacetData, + language: {} + }, + facets_stats: {}, + exhaustiveFacetsCount: true, + queryID: generateQueryID(), + _hybridCountsAttempted: isSearchResultsRequest, + _hybridAllCount: typeof hybridAllCount === "number" ? hybridAllCount : void 0 + }; + return { + results: [searchResult] }; } catch (error) { console.error("Hybrid search error:", error); @@ -10021,9 +13053,19 @@ function filterHitsByDoctype(hits, doctypes) { if (!doctypes.length) return hits; const wanted = new Set(doctypes.map((d) => d.toLowerCase())); - return hits.filter( - (h) => wanted.has(String(h.doctype || "").toLowerCase()) - ); + return hits.filter((h) => wanted.has(String(h.doctype || "").toLowerCase())); +} +function mergeDeepenedHits(initial, deepened) { + const seen = /* @__PURE__ */ new Set(); + const merged = []; + for (const hit of [...initial, ...deepened]) { + const key = hit.url_without_anchor || hit.objectID || ""; + if (!key || seen.has(key)) + continue; + seen.add(key); + merged.push(hit); + } + return merged.slice(0, HYBRID_UPSTREAM_MAX_LIMIT); } function transformHybridToAlgolia(result) { const filePath = result.filePath || ""; @@ -10109,19 +13151,6 @@ function buildUrlFromFilePath(filePath) { } return `/${locale}/${doctype}/${slug}`; } -function extractFacetsFromHits(hits) { - const facets = { - doctype: {}, - language: {} - }; - hits.forEach((hit) => { - const doctype = hit.doctype || "Other"; - facets.doctype[doctype] = (facets.doctype[doctype] || 0) + 1; - const language = hit.language || "en"; - facets.language[language] = (facets.language[language] || 0) + 1; - }); - return { facets }; -} function generateQueryID() { return `hybrid_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`; } @@ -10139,46 +13168,240 @@ function SearchConfig(config) { } // src/components/search-input/index.tsx -import { jsx as jsx39, jsxs as jsxs32 } from "react/jsx-runtime"; -function SearchInput() { - const { locale } = useContext9(LibraryContext); - const [focusOut, setfocusOut] = useState9({ +import { jsx as jsx48, jsxs as jsxs40 } from "react/jsx-runtime"; +function SearchInput({ + variant = "default", + autoFocus = false, + onClose +}) { + const { locale } = useContext13(LibraryContext); + const isModal = variant === "modal"; + const [focusOut, setfocusOut] = useState14({ modaltoggle: true }); - const resultsBox2 = useRef7(); + const resultsBox2 = useRef9(); useClickOutside(resultsBox2, setfocusOut); const changeFocus = (value) => { setfocusOut({ modaltoggle: value }); + if (!value) + onClose?.(); }; - return /* @__PURE__ */ jsxs32(InstantSearch, { searchClient, indexName: searchIndex, children: [ - searchClient.instantSearchConfigs && /* @__PURE__ */ jsx39(Configure, { ...searchClient.instantSearchConfigs }), - searchClient.useLanguageFilter && /* @__PURE__ */ jsx39( + const searchBox2 = /* @__PURE__ */ jsx48( + search_box_default, + { + changeFocus, + autoFocus, + variant + } + ); + return /* @__PURE__ */ jsxs40(InstantSearch, { searchClient, indexName: searchIndex, children: [ + searchClient.instantSearchConfigs && /* @__PURE__ */ jsx48(Configure, { ...searchClient.instantSearchConfigs }), + searchClient.useLanguageFilter && /* @__PURE__ */ jsx48( Configure, { clickAnalytics: true, facetFilters: [`language:${locale}`] } ), - !searchClient.useLanguageFilter && /* @__PURE__ */ jsx39(Configure, { clickAnalytics: true }), - /* @__PURE__ */ jsxs32(Box15, { onFocus: () => setfocusOut({ modaltoggle: true }), ref: resultsBox2, children: [ - /* @__PURE__ */ jsx39(search_box_default, { changeFocus }), - focusOut.modaltoggle && /* @__PURE__ */ jsx39(results_box_default, { changeFocus }) - ] }) + !searchClient.useLanguageFilter && /* @__PURE__ */ jsx48(Configure, { clickAnalytics: true }), + isModal ? /* @__PURE__ */ jsxs40(Flex17, { sx: styles_default19.modalRoot, children: [ + /* @__PURE__ */ jsx48(Box20, { sx: styles_default19.modalSearchBox, children: searchBox2 }), + /* @__PURE__ */ jsx48(Box20, { sx: styles_default19.modalResults, children: /* @__PURE__ */ jsx48(results_box_default, { changeFocus, variant }) }) + ] }) : /* @__PURE__ */ jsxs40( + Box20, + { + onFocus: () => setfocusOut({ modaltoggle: true }), + ref: resultsBox2, + children: [ + searchBox2, + focusOut.modaltoggle && /* @__PURE__ */ jsx48(results_box_default, { changeFocus, variant }) + ] + } + ) ] }); } +// src/components/mobile-search/styles.ts +var trigger = { + display: ["flex", "flex", "flex", "none"], + alignItems: "center", + justifyContent: "center", + width: "56px", + minWidth: "56px", + height: "100%", + padding: 0, + border: "none", + background: "transparent", + color: "#4A596B", + cursor: "pointer", + flexShrink: 0, + "svg path": { + fill: "#4A596B" + }, + ":hover": { + color: "#4A596B", + "svg path": { + fill: "#4A596B" + } + } +}; +var overlay = { + position: "fixed", + top: 0, + right: 0, + bottom: 0, + left: 0, + zIndex: 1e4, + display: "flex", + justifyContent: "center", + alignItems: "flex-start", + padding: "16px", + background: "rgba(20, 32, 50, 0.45)", + backdropFilter: "blur(4px)", + WebkitBackdropFilter: "blur(4px)", + overscrollBehavior: "contain" +}; +var card = { + display: "flex", + flexDirection: "column", + width: "100%", + maxWidth: "560px", + maxHeight: "min(80vh, 640px)", + marginTop: "8px", + background: "#FFFFFF", + borderRadius: "20px", + boxShadow: "0 16px 48px rgba(20, 32, 50, 0.24)", + overflow: "hidden" +}; +var styles_default20 = { + trigger, + overlay, + card +}; + +// src/components/mobile-search/index.tsx +import { Fragment as Fragment7, jsx as jsx49, jsxs as jsxs41 } from "react/jsx-runtime"; +var MobileSearch = ({ onOpen }) => { + const router = useRouter6(); + const { locale } = useContext14(LibraryContext); + const [isOpen, setIsOpen] = useState15(false); + const openLabel = messages[locale]["search_input.open_search"] || messages[locale]["search_input.placeholder"] || "Search"; + const openModal = () => { + onOpen?.(); + setIsOpen(true); + }; + const closeModal = () => { + setIsOpen(false); + }; + useEffect13(() => { + if (!isOpen) + return; + const html = document.documentElement; + const previousOverflow = html.style.overflow; + html.style.overflow = "hidden"; + const onKeyDown = (event) => { + if (event.key === "Escape") + closeModal(); + }; + window.addEventListener("keydown", onKeyDown); + return () => { + window.removeEventListener("keydown", onKeyDown); + html.style.overflow = previousOverflow; + }; + }, [isOpen]); + useEffect13(() => { + const handleRouteChange = () => closeModal(); + router.events?.on("routeChangeStart", handleRouteChange); + router.events?.on("hashChangeStart", handleRouteChange); + return () => { + router.events?.off("routeChangeStart", handleRouteChange); + router.events?.off("hashChangeStart", handleRouteChange); + }; + }, [router.events]); + return /* @__PURE__ */ jsxs41(Fragment7, { children: [ + /* @__PURE__ */ jsx49( + Box21, + { + as: "button", + type: "button", + sx: styles_default20.trigger, + "aria-label": openLabel, + "aria-expanded": isOpen, + "aria-haspopup": "dialog", + onClick: openModal, + children: /* @__PURE__ */ jsx49(search_icon_default, { sx: { width: "24px", height: "24px" } }) + } + ), + isOpen && /* @__PURE__ */ jsx49( + Flex18, + { + sx: styles_default20.overlay, + role: "dialog", + "aria-modal": "true", + "aria-label": openLabel, + onClick: closeModal, + children: /* @__PURE__ */ jsx49( + Flex18, + { + sx: styles_default20.card, + onClick: (event) => event.stopPropagation(), + children: /* @__PURE__ */ jsx49(SearchInput, { variant: "modal", autoFocus: true, onClose: closeModal }) + } + ) + } + ) + ] }); +}; +var mobile_search_default = MobileSearch; + // src/lib/hamburger-menu/index.tsx -import { jsx as jsx40, jsxs as jsxs33 } from "react/jsx-runtime"; +import { jsx as jsx50, jsxs as jsxs42 } from "react/jsx-runtime"; +function getRouteSlug(slug) { + if (typeof slug === "string") + return slug; + if (Array.isArray(slug)) + return slug[0] ?? ""; + return ""; +} var HamburgerMenu = ({ parentsArray = [] }) => { - const context = useContext10(LibraryContext); + const router = useRouter7(); + const hamburgerRef = useRef10(null); + const context = useContext15(LibraryContext); const { sidebarDataMaster, sidebarSectionHidden, activeSectionName, setActiveSectionName, setSidebarSectionHidden, - hamburguerSections + hamburguerSections, + locale } = context; + const [userOpenedSection, setUserOpenedSection] = useState16(false); + const articleSlug = getRouteSlug(router.query.slug); + const isListedArticle = parentsArray.length > 0 || Boolean(articleSlug) && getDocumentationType(sidebarDataMaster, articleSlug) != null; + const showNestedSidebar = Boolean(activeSectionName) && !sidebarSectionHidden && (userOpenedSection || isListedArticle || !articleSlug); + const closeMenu = () => { + const toggleButton = hamburgerRef.current?.querySelector( + '[aria-expanded="true"]' + ); + toggleButton?.click(); + }; + const openSection = (sectionId) => { + setActiveSectionName(sectionId); + setSidebarSectionHidden(false); + setUserOpenedSection(true); + }; + useEffect14(() => { + setUserOpenedSection(false); + }, [articleSlug]); + useEffect14(() => { + router.events?.on("routeChangeStart", closeMenu); + router.events?.on("hashChangeStart", closeMenu); + return () => { + router.events?.off("routeChangeStart", closeMenu); + router.events?.off("hashChangeStart", closeMenu); + }; + }, [router.events]); const isDocument = (sections, documentID) => { let isDoc = false; if (Array.isArray(sections)) { @@ -10187,103 +13410,81 @@ var HamburgerMenu = ({ parentsArray = [] }) => { return isDoc; }; updateOpenPage({ parentsArray, context }); - 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_default13.updatesContainer : styles_default13.documentationContainer, - "data-cy": "dropdown-menu-first-section", - 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, - { - "aria-label": "Open sidebar", - size: "regular", - variant: "tertiary", - icon: () => /* @__PURE__ */ jsx40(IconCaret4, { direction: "right", size: 32 }), - sx: activeSectionName === card.id && !sidebarSectionHidden ? styles_default13.arrowIconActive : styles_default13.arrowIcon, - onClick: () => { - setActiveSectionName(card.id); - setSidebarSectionHidden(false); + return /* @__PURE__ */ jsxs42(Header.ActionButton, { sx: styles_default17.headerActions, children: [ + /* @__PURE__ */ jsx50(mobile_search_default, { onOpen: closeMenu }), + /* @__PURE__ */ jsx50(Box22, { ref: hamburgerRef, sx: { display: "contents" }, children: /* @__PURE__ */ jsxs42(VtexHamburgerMenu, { sx: styles_default17.hamburgerContainer, children: [ + /* @__PURE__ */ jsx50(Box22, { sx: styles_default17.backdrop, "aria-hidden": "true", onClick: closeMenu }), + /* @__PURE__ */ jsx50(VtexHamburgerMenu.Menu, { sx: styles_default17.innerHambugerContainer, children: /* @__PURE__ */ jsxs42(Box22, { sx: styles_default17.menuContainer, children: [ + /* @__PURE__ */ jsx50(Box22, { sx: styles_default17.cardContainer, children: hamburguerSections.map((section, id) => /* @__PURE__ */ jsx50( + Box22, + { + sx: id > 0 ? styles_default17.updatesContainer : styles_default17.documentationContainer, + "data-cy": "dropdown-menu-first-section", + children: section.map((card2) => /* @__PURE__ */ jsxs42(Box22, { sx: styles_default17.innerCardContainer, children: [ + /* @__PURE__ */ jsx50(Box22, { sx: styles_default17.innerCardContent, children: /* @__PURE__ */ jsx50( + documentation_card_default, + { + containerType: "mobile", + ...card2, + title: getSectionLabel( + card2, + sidebarDataMaster, + locale + ), + onClick: () => { + if (isDocument(sidebarDataMaster, card2.id)) { + openSection(card2.id); + } else { + setActiveSectionName(card2.id); + } + } } - } - ) : null - ] }, card.title)) - }, - id - )) - ] }), - /* @__PURE__ */ jsx40( - Box16, - { - className: sidebarSectionHidden || !activeSectionName ? "" : "menuHidden", - sx: styles_default13.sideMenuContainer, - children: activeSectionName ? /* @__PURE__ */ jsx40( - sidebar_section_default, + ) }), + isDocument(sidebarDataMaster, card2.id) ? /* @__PURE__ */ jsx50( + Button4, + { + "aria-label": "Open sidebar", + size: "regular", + variant: "tertiary", + icon: () => /* @__PURE__ */ jsx50(IconCaret5, { direction: "right", size: 20 }), + sx: activeSectionName === card2.id && showNestedSidebar ? styles_default17.arrowIconActive : styles_default17.arrowIcon, + onClick: () => openSection(card2.id) + } + ) : null + ] }, card2.id)) + }, + id + )) }), + /* @__PURE__ */ jsx50( + Box22, { - isHamburgerMenu: true, - ...Array.isArray(sidebarDataMaster) ? sidebarDataMaster?.find( - (section) => section.documentation === activeSectionName + className: showNestedSidebar ? "menuHidden" : "", + sx: styles_default17.sideMenuContainer, + children: activeSectionName ? /* @__PURE__ */ jsx50( + sidebar_section_default, + { + isHamburgerMenu: true, + ...Array.isArray(sidebarDataMaster) ? sidebarDataMaster?.find( + (section) => section.documentation === activeSectionName + ) : null + } ) : null } - ) : null - } - ) - ] }) }) }) }); + ) + ] }) }) + ] }) }) + ] }); }; var hamburger_menu_default = HamburgerMenu; -// src/lib/feedback-section/index.tsx -import { Flex as Flex16, Text as Text11, Link as Link8 } from "@vtex/brand-ui"; - -// src/components/icons/edit-icon.tsx -import { Icon as Icon20 } from "@vtex/brand-ui"; -import { jsx as jsx41, jsxs as jsxs34 } from "react/jsx-runtime"; -var EditIcon = (props) => /* @__PURE__ */ jsxs34( - Icon20, - { - ...props, - width: "25", - height: "25", - viewBox: "0 0 25 25", - fill: "none", - xmlns: "http://www.w3.org/2000/svg", - children: [ - /* @__PURE__ */ jsx41( - "path", - { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M5.793 16.6107L16.119 6.28469C16.509 5.89469 17.142 5.89469 17.532 6.28469L19.208 7.96069C19.598 8.35069 19.598 8.98369 19.208 9.37369L8.881 19.6987C8.694 19.8867 8.44 19.9917 8.175 19.9917H5.5V17.3167C5.5 17.0517 5.605 16.7977 5.793 16.6107Z", - stroke: "currentColor", - strokeWidth: "1.5", - strokeLinecap: "round", - strokeLinejoin: "round" - } - ), - /* @__PURE__ */ jsx41( - "path", - { - d: "M14.25 8.15234L17.34 11.2423", - stroke: "currentColor", - strokeWidth: "1.5", - strokeLinecap: "round", - strokeLinejoin: "round" - } - ) - ] - } -); -var edit_icon_default = EditIcon; +// src/components/feedback-section/index.tsx +import { Flex as Flex20, Text as Text15 } from "@vtex/brand-ui"; // src/components/icons/like-icon.tsx -import { Icon as Icon21 } from "@vtex/brand-ui"; -import { jsx as jsx42, jsxs as jsxs35 } from "react/jsx-runtime"; -var LikeIcon = (props) => /* @__PURE__ */ jsxs35( - Icon21, +import { Icon as Icon25 } from "@vtex/brand-ui"; +import { jsx as jsx51, jsxs as jsxs43 } from "react/jsx-runtime"; +var LikeIcon = (props) => /* @__PURE__ */ jsxs43( + Icon25, { ...props, width: "25", @@ -10292,7 +13493,7 @@ var LikeIcon = (props) => /* @__PURE__ */ jsxs35( fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx42( + /* @__PURE__ */ jsx51( "path", { fillRule: "evenodd", @@ -10304,7 +13505,7 @@ var LikeIcon = (props) => /* @__PURE__ */ jsxs35( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx42( + /* @__PURE__ */ jsx51( "path", { d: "M8.5 11.5638L12.149 6.81276C12.828 5.92776 14.154 5.90576 14.863 6.76676V6.76676C15.128 7.08776 15.272 7.49176 15.272 7.90776V11.1788H18.368C18.969 11.1788 19.53 11.4788 19.864 11.9778L20.193 12.4688C20.488 12.9098 20.574 13.4588 20.427 13.9678L19.068 18.6898C18.846 19.4608 18.141 19.9918 17.339 19.9918H11.05C10.55 19.9918 10.072 19.7838 9.732 19.4178L8.5 18.0918", @@ -10320,10 +13521,10 @@ var LikeIcon = (props) => /* @__PURE__ */ jsxs35( var like_icon_default = LikeIcon; // src/components/icons/like-selected-icon.tsx -import { Icon as Icon22 } from "@vtex/brand-ui"; -import { jsx as jsx43, jsxs as jsxs36 } from "react/jsx-runtime"; -var LikeSelectedIcon = (props) => /* @__PURE__ */ jsxs36( - Icon22, +import { Icon as Icon26 } from "@vtex/brand-ui"; +import { jsx as jsx52, jsxs as jsxs44 } from "react/jsx-runtime"; +var LikeSelectedIcon = (props) => /* @__PURE__ */ jsxs44( + Icon26, { ...props, width: "24", @@ -10332,7 +13533,7 @@ var LikeSelectedIcon = (props) => /* @__PURE__ */ jsxs36( fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx43( + /* @__PURE__ */ jsx52( "path", { fillRule: "evenodd", @@ -10341,7 +13542,7 @@ var LikeSelectedIcon = (props) => /* @__PURE__ */ jsxs36( fill: "#A1A8B3" } ), - /* @__PURE__ */ jsx43( + /* @__PURE__ */ jsx52( "path", { d: "M5.056 19.5H6.944C7.80314 19.5 8.5 18.8031 8.5 17.944V10.556C8.5 9.69686 7.80314 9 6.944 9H5.056C4.19686 9 3.5 9.69686 3.5 10.556V17.944C3.5 18.8031 4.19686 19.5 5.056 19.5Z", @@ -10356,11 +13557,11 @@ 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"; +// src/components/feedback-section/index.tsx +import { useContext as useContext17, useEffect as useEffect15, useState as useState18 } from "react"; -// src/lib/feedback-section/styles.ts -var container5 = ({ small } = {}) => ({ +// src/components/feedback-section/styles.ts +var container8 = ({ small } = {}) => ({ width: "100%", flexDirection: small ? "column" : ["column", "row"], alignItems: small ? "flex-start" : "center", @@ -10397,7 +13598,7 @@ var dislikeIcon = { mr: "2px", transform: "rotateX(180deg) rotateY(180deg)" }; -var button = { +var button3 = { ":hover": { cursor: "pointer", color: "#000711", @@ -10416,40 +13617,18 @@ var buttonActive = { var selectedButton = { color: "muted.1" }; -var box = ({ small } = {}) => ({ - alignItems: "center", - color: "muted.0", - fontSize: small ? "12px" : "16px", - lineHeight: "22px" -}); var disabled = { display: "none !important" }; -var editContainer = ({ small } = {}) => ({ - ...box({ small }), - ...button, - ":hover": { - color: "#000711 !important" - }, - // ml: ['0', 'auto'], - color: "#4A596B !important", - display: "flex" -}); -var editIcon = { mr: "4px" }; -var shareButton = { - // ml: ['0', 'auto'], -}; -var styles_default16 = { +var shareButton = {}; +var styles_default21 = { disabled, - container: container5, + container: container8, question, likeContainer, likeIcon, dislikeIcon, - editContainer, - editIcon, - box, - button, + button: button3, buttonActive, selectedButton, shareButton, @@ -10457,19 +13636,19 @@ var styles_default16 = { }; // src/components/share-button/index.tsx -import { Box as Box17, Button as Button5, Flex as Flex15, Text as Text10 } from "@vtex/brand-ui"; +import { Box as Box23, Button as Button5, Flex as Flex19, Text as Text13 } from "@vtex/brand-ui"; // src/components/icons/facebook-icon.tsx -import { Icon as Icon23 } from "@vtex/brand-ui"; -import { jsx as jsx44 } from "react/jsx-runtime"; -var FacebookIcon = (props) => /* @__PURE__ */ jsx44( - Icon23, +import { Icon as Icon27 } from "@vtex/brand-ui"; +import { jsx as jsx53 } from "react/jsx-runtime"; +var FacebookIcon = (props) => /* @__PURE__ */ jsx53( + Icon27, { ...props, viewBox: "0 0 8 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", - children: /* @__PURE__ */ jsx44( + children: /* @__PURE__ */ jsx53( "path", { d: "M7.47581 8.93204L7.89039 6.05825H5.29681V4.19417C5.29681 3.40778 5.65844 2.64078 6.8201 2.64078H8V0.194175C8 0.194175 6.92967 0 5.90684 0C3.76989 0 2.37444 1.37668 2.37444 3.86796V6.05825H0V8.93204H2.37444V15.8796C2.85114 15.9592 3.33882 16 3.83563 16C4.33243 16 4.82011 15.9592 5.29681 15.8796V8.93204H7.47581Z", @@ -10481,16 +13660,16 @@ var FacebookIcon = (props) => /* @__PURE__ */ jsx44( var facebook_icon_default = FacebookIcon; // src/components/icons/linkedin-icon.tsx -import { Icon as Icon24 } from "@vtex/brand-ui"; -import { jsx as jsx45 } from "react/jsx-runtime"; -var LinkedinIcon = (props) => /* @__PURE__ */ jsx45( - Icon24, +import { Icon as Icon28 } from "@vtex/brand-ui"; +import { jsx as jsx54 } from "react/jsx-runtime"; +var LinkedinIcon = (props) => /* @__PURE__ */ jsx54( + Icon28, { ...props, viewBox: "0 0 26 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", - children: /* @__PURE__ */ jsx45( + children: /* @__PURE__ */ jsx54( "path", { fillRule: "evenodd", @@ -10504,34 +13683,34 @@ var LinkedinIcon = (props) => /* @__PURE__ */ jsx45( var linkedin_icon_default = LinkedinIcon; // src/components/icons/share-icon.tsx -import { Icon as Icon25 } from "@vtex/brand-ui"; -import { jsx as jsx46, jsxs as jsxs37 } from "react/jsx-runtime"; -var ShareIcon = (props) => /* @__PURE__ */ jsxs37( - Icon25, +import { Icon as Icon29 } from "@vtex/brand-ui"; +import { jsx as jsx55, jsxs as jsxs45 } from "react/jsx-runtime"; +var ShareIcon = (props) => /* @__PURE__ */ jsxs45( + Icon29, { ...props, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx46("path", { d: "m0 0h24v24h-24z", opacity: "0", stroke: "currentColor" }), - /* @__PURE__ */ jsx46("path", { d: "m18 15a3 3 0 0 0 -2.1.86l-7.9-3.52c0-.12 0-.22 0-.34s0-.22 0-.33l7.9-3.53a3 3 0 1 0 -.9-2.14v.34l-7.9 3.52a3 3 0 1 0 0 4.28l7.9 3.53v.33a3 3 0 1 0 3-3z", fill: "currentColor" }) + /* @__PURE__ */ jsx55("path", { d: "m0 0h24v24h-24z", opacity: "0", stroke: "currentColor" }), + /* @__PURE__ */ jsx55("path", { d: "m18 15a3 3 0 0 0 -2.1.86l-7.9-3.52c0-.12 0-.22 0-.34s0-.22 0-.33l7.9-3.53a3 3 0 1 0 -.9-2.14v.34l-7.9 3.52a3 3 0 1 0 0 4.28l7.9 3.53v.33a3 3 0 1 0 3-3z", fill: "currentColor" }) ] } ); var share_icon_default = ShareIcon; // src/components/icons/twitter-icon.tsx -import { Icon as Icon26 } from "@vtex/brand-ui"; -import { jsx as jsx47 } from "react/jsx-runtime"; -var TwitterIcon = (props) => /* @__PURE__ */ jsx47( - Icon26, +import { Icon as Icon30 } from "@vtex/brand-ui"; +import { jsx as jsx56 } from "react/jsx-runtime"; +var TwitterIcon = (props) => /* @__PURE__ */ jsx56( + Icon30, { ...props, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", - children: /* @__PURE__ */ jsx47( + children: /* @__PURE__ */ jsx56( "path", { fillRule: "evenodd", @@ -10545,7 +13724,7 @@ var TwitterIcon = (props) => /* @__PURE__ */ jsx47( var twitter_icon_default = TwitterIcon; // src/components/share-button/index.tsx -import { useRef as useRef8, useState as useState10 } from "react"; +import { useRef as useRef11, useState as useState17 } from "react"; import { FacebookShareButton, LinkedinShareButton, @@ -10554,11 +13733,11 @@ import { } from "react-share"; // src/components/share-button/styles.ts -var container6 = { +var container9 = { position: "relative", height: "24px" }; -var button2 = { +var button4 = { cursor: "pointer", textTransform: "none", fontSize: "16px", @@ -10611,9 +13790,9 @@ var innerContainer = { var divider = { borderBottom: "1px solid #E7E9EE" }; -var styles_default17 = { - container: container6, - button: button2, +var styles_default22 = { + container: container9, + button: button4, shareIcon, innerButton, innerContainer, @@ -10621,10 +13800,10 @@ var styles_default17 = { }; // src/components/icons/email-icon.tsx -import { Icon as Icon27 } from "@vtex/brand-ui"; -import { jsx as jsx48 } from "react/jsx-runtime"; -var EmailIcon = (props) => /* @__PURE__ */ jsx48( - Icon27, +import { Icon as Icon31 } from "@vtex/brand-ui"; +import { jsx as jsx57 } from "react/jsx-runtime"; +var EmailIcon = (props) => /* @__PURE__ */ jsx57( + Icon31, { ...props, width: "25", @@ -10632,7 +13811,7 @@ var EmailIcon = (props) => /* @__PURE__ */ jsx48( viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", - children: /* @__PURE__ */ jsx48( + children: /* @__PURE__ */ jsx57( "path", { d: "M12 0C5.376 0 0 5.376 0 12C0 18.624 5.376 24 12 24H18V21.6H12C6.792 21.6 2.4 17.208 2.4 12C2.4 6.792 6.792 2.4 12 2.4C17.208 2.4 21.6 6.792 21.6 12V13.716C21.6 14.664 20.748 15.6 19.8 15.6C18.852 15.6 18 14.664 18 13.716V12C18 8.688 15.312 6 12 6C8.688 6 6 8.688 6 12C6 15.312 8.688 18 12 18C13.656 18 15.168 17.328 16.248 16.236C17.028 17.304 18.372 18 19.8 18C22.164 18 24 16.08 24 13.716V12C24 5.376 18.624 0 12 0ZM12 15.6C10.008 15.6 8.4 13.992 8.4 12C8.4 10.008 10.008 8.4 12 8.4C13.992 8.4 15.6 10.008 15.6 12C15.6 13.992 13.992 15.6 12 15.6Z", @@ -10643,47 +13822,11 @@ var EmailIcon = (props) => /* @__PURE__ */ jsx48( ); var email_icon_default = EmailIcon; -// src/components/icons/link-icon.tsx -import { Icon as Icon28 } from "@vtex/brand-ui"; -import { jsx as jsx49, jsxs as jsxs38 } from "react/jsx-runtime"; -var LinkIcon = (props) => /* @__PURE__ */ jsxs38( - Icon28, - { - ...props, - viewBox: "0 0 16 16", - fill: "none", - xmlns: "http://www.w3.org/2000/svg", - children: [ - /* @__PURE__ */ jsx49( - "path", - { - d: "M6.6665 8.66672C6.95281 9.04948 7.31808 9.36618 7.73754 9.59535C8.157 9.82452 8.62084 9.9608 9.0976 9.99495C9.57437 10.0291 10.0529 9.9603 10.5007 9.79325C10.9486 9.62619 11.3552 9.36477 11.6932 9.02672L13.6932 7.02672C14.3004 6.39805 14.6363 5.55604 14.6288 4.68205C14.6212 3.80806 14.2706 2.97202 13.6526 2.354C13.0345 1.73597 12.1985 1.38541 11.3245 1.37781C10.4505 1.37022 9.60851 1.7062 8.97984 2.31339L7.83317 3.45339", - stroke: "currentcolor", - strokeWidth: "1.5", - strokeLinecap: "round", - strokeLinejoin: "round" - } - ), - /* @__PURE__ */ jsx49( - "path", - { - d: "M9.33347 7.33332C9.04716 6.95057 8.68189 6.63387 8.26243 6.40469C7.84297 6.17552 7.37913 6.03924 6.90237 6.0051C6.4256 5.97095 5.94707 6.03974 5.49924 6.2068C5.0514 6.37386 4.64472 6.63527 4.3068 6.97332L2.3068 8.97332C1.69961 9.60199 1.36363 10.444 1.37122 11.318C1.37881 12.192 1.72938 13.028 2.3474 13.646C2.96543 14.2641 3.80147 14.6146 4.67546 14.6222C5.54945 14.6298 6.39146 14.2938 7.02013 13.6867L8.16013 12.5467", - stroke: "currentcolor", - strokeWidth: "1.5", - strokeLinecap: "round", - strokeLinejoin: "round" - } - ) - ] - } -); -var link_icon_default = LinkIcon; - // src/components/share-button/index.tsx -import { jsx as jsx50, jsxs as jsxs39 } from "react/jsx-runtime"; +import { jsx as jsx58, jsxs as jsxs46 } from "react/jsx-runtime"; var ShareButton = ({ url, sx = {} }) => { - const [isOpen, setIsOpen] = useState10(false); - const containerRef = useRef8(); + const [isOpen, setIsOpen] = useState17(false); + const containerRef = useRef11(); useClickOutside(containerRef, () => setIsOpen(false)); const handleCopyLink = async () => { try { @@ -10693,194 +13836,1049 @@ var ShareButton = ({ url, sx = {} }) => { console.error("Error copying link to clipboard:", error); } }; - return /* @__PURE__ */ jsxs39(Flex15, { sx: { ...styles_default17.container, ...sx }, ref: containerRef, children: [ - /* @__PURE__ */ jsxs39( + return /* @__PURE__ */ jsxs46(Flex19, { sx: { ...styles_default22.container, ...sx }, ref: containerRef, children: [ + /* @__PURE__ */ jsxs46( Button5, { - sx: styles_default17.button, + sx: styles_default22.button, variant: "tertiary", onClick: () => setIsOpen(!isOpen), children: [ - /* @__PURE__ */ jsx50(share_icon_default, { sx: styles_default17.shareIcon, size: 24 }), + /* @__PURE__ */ jsx58(share_icon_default, { sx: styles_default22.shareIcon, size: 24 }), " Share" ] } ), - 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" }) + isOpen && /* @__PURE__ */ jsxs46(Flex19, { sx: styles_default22.innerContainer, children: [ + /* @__PURE__ */ jsxs46(Flex19, { sx: styles_default22.innerButton, onClick: handleCopyLink, children: [ + /* @__PURE__ */ jsx58(link_icon_default, { size: 16 }), + /* @__PURE__ */ jsx58(Text13, { children: "Copy link" }) ] }), - /* @__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__ */ jsx58(Box23, { sx: styles_default22.divider }), + /* @__PURE__ */ jsx58(EmailShareButton, { url, children: /* @__PURE__ */ jsxs46(Flex19, { sx: styles_default22.innerButton, onClick: handleCopyLink, children: [ + /* @__PURE__ */ jsx58(email_icon_default, { size: 16 }), + /* @__PURE__ */ jsx58(Text13, { children: "E-mail" }) ] }) }), - /* @__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__ */ jsx58(TwitterShareButton, { url, children: /* @__PURE__ */ jsxs46(Flex19, { sx: styles_default22.innerButton, children: [ + /* @__PURE__ */ jsx58(twitter_icon_default, { size: 16 }), + /* @__PURE__ */ jsx58(Text13, { children: "Twitter" }) ] }) }), - /* @__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__ */ jsx58(FacebookShareButton, { url, children: /* @__PURE__ */ jsxs46(Flex19, { sx: styles_default22.innerButton, children: [ + /* @__PURE__ */ jsx58(facebook_icon_default, { size: 16 }), + /* @__PURE__ */ jsx58(Text13, { children: "Facebook" }) ] }) }), - /* @__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" }) + /* @__PURE__ */ jsx58(LinkedinShareButton, { url, children: /* @__PURE__ */ jsxs46(Flex19, { sx: styles_default22.innerButton, children: [ + /* @__PURE__ */ jsx58(linkedin_icon_default, { size: 16 }), + /* @__PURE__ */ jsx58(Text13, { children: "LinkedIn" }) ] }) }) ] }) ] }); }; var share_button_default = ShareButton; -// src/lib/feedback-section/index.tsx -import { jsx as jsx51, jsxs as jsxs40 } from "react/jsx-runtime"; +// src/components/suggest-edits/index.tsx +import { useContext as useContext16 } from "react"; +import { Link as Link8, Text as Text14 } from "@vtex/brand-ui"; + +// src/components/icons/edit-icon.tsx +import { Icon as Icon32 } from "@vtex/brand-ui"; +import { jsx as jsx59, jsxs as jsxs47 } from "react/jsx-runtime"; +var EditIcon = (props) => /* @__PURE__ */ jsxs47( + Icon32, + { + ...props, + width: "25", + height: "25", + viewBox: "0 0 25 25", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + children: [ + /* @__PURE__ */ jsx59( + "path", + { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M5.793 16.6107L16.119 6.28469C16.509 5.89469 17.142 5.89469 17.532 6.28469L19.208 7.96069C19.598 8.35069 19.598 8.98369 19.208 9.37369L8.881 19.6987C8.694 19.8867 8.44 19.9917 8.175 19.9917H5.5V17.3167C5.5 17.0517 5.605 16.7977 5.793 16.6107Z", + stroke: "currentColor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ), + /* @__PURE__ */ jsx59( + "path", + { + d: "M14.25 8.15234L17.34 11.2423", + stroke: "currentColor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ) + ] + } +); +var edit_icon_default = EditIcon; + +// src/components/suggest-edits/styles.ts +var container10 = ({ small } = {}) => ({ + alignItems: "center", + gap: "4px", + fontSize: small ? "12px" : "16px", + lineHeight: "22px", + color: "#4A596B !important", + display: "flex", + ":hover": { + color: "#000711 !important", + cursor: "pointer" + } +}); +var icon2 = { + flexShrink: 0 +}; +var styles_default23 = { container: container10, icon: icon2 }; + +// src/components/suggest-edits/index.tsx +import { jsx as jsx60, jsxs as jsxs48 } from "react/jsx-runtime"; +var SuggestEdits = ({ + urlToEdit, + small = false, + sx = {} +}) => { + const { locale } = useContext16(LibraryContext); + const label4 = messages[locale]["feedback_section.edit"] || "Suggest Edits (GitHub)"; + return /* @__PURE__ */ jsxs48( + Link8, + { + target: "_blank", + rel: "noopener noreferrer", + href: urlToEdit, + sx: { ...styles_default23.container({ small }), ...sx }, + children: [ + /* @__PURE__ */ jsx60(edit_icon_default, { size: small ? 18 : 24, sx: styles_default23.icon }), + /* @__PURE__ */ jsx60(Text14, { children: label4 }) + ] + } + ); +}; +var suggest_edits_default = SuggestEdits; + +// src/components/feedback-section/index.tsx +import { jsx as jsx61, jsxs as jsxs49 } from "react/jsx-runtime"; +var DEFAULT_FEEDBACK_ENDPOINT = "/api/feedback/"; +var postFeedback = async (liked, pageUrl, endpoint) => { + await fetch(endpoint, { + method: "POST", + body: JSON.stringify({ + data: [ + (/* @__PURE__ */ new Date()).toISOString(), + pageUrl, + liked ? "positive" : "negative" + ] + }) + }); +}; var FeedbackSection = ({ slug, urlToEdit, suggestEdits = true, shareButton: shareButton2 = false, + pageUrl, + feedbackEndpoint = DEFAULT_FEEDBACK_ENDPOINT, sendFeedback, small = false }) => { - const [feedback, setFeedback] = useState11(void 0); - const { locale } = useContext11(LibraryContext); - useEffect10(() => { + const [feedback, setFeedback] = useState18(void 0); + const { locale } = useContext17(LibraryContext); + useEffect15(() => { setFeedback(void 0); }, [slug]); const handleSend = async (liked) => { if (feedback !== void 0) return; setFeedback(liked); + const resolvedPageUrl = pageUrl ?? (typeof window !== "undefined" ? window.location.href : ""); try { - await sendFeedback(liked); + if (sendFeedback) { + await sendFeedback(liked); + } else { + await postFeedback(liked, resolvedPageUrl, feedbackEndpoint); + } } catch (e) { setFeedback(void 0); } }; - 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, + return /* @__PURE__ */ jsxs49(Flex20, { sx: styles_default21.container({ small }), "data-cy": "feedback-section", children: [ + /* @__PURE__ */ jsxs49(Flex20, { sx: styles_default21.likeContainer, children: [ + /* @__PURE__ */ jsx61(Text15, { sx: styles_default21.question({ small }), children: feedback !== void 0 ? messages[locale]["feedback_section.response"] : messages[locale]["feedback_section.question"] }), + /* @__PURE__ */ jsxs49(Flex20, { sx: styles_default21.iconsContainer({ small }), children: [ + /* @__PURE__ */ jsxs49( + Flex20, { - sx: feedback === void 0 ? styles_default16.button : feedback === true ? styles_default16.selectedButton : styles_default16.disabled, + sx: feedback === void 0 ? styles_default21.button : feedback === true ? styles_default21.selectedButton : styles_default21.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_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"] }) + feedback === true ? /* @__PURE__ */ jsx61(like_selected_icon_default, { size: small ? 18 : 24, sx: styles_default21.likeIcon }) : /* @__PURE__ */ jsx61(like_icon_default, { size: small ? 18 : 24, sx: styles_default21.likeIcon }), + !small && /* @__PURE__ */ jsx61(Text15, { children: messages[locale]["feedback_section.positive"] }) ] } ), - /* @__PURE__ */ jsxs40( - Flex16, + /* @__PURE__ */ jsxs49( + Flex20, { - sx: feedback === void 0 ? styles_default16.button : feedback === false ? styles_default16.selectedButton : styles_default16.disabled, + sx: feedback === void 0 ? styles_default21.button : feedback === false ? styles_default21.selectedButton : styles_default21.disabled, onClick: () => handleSend(false), role: "button", "aria-pressed": feedback === false, "data-cy": "feedback-section-dislike", children: [ - feedback === false ? /* @__PURE__ */ jsx51( + feedback === false ? /* @__PURE__ */ jsx61( like_selected_icon_default, { size: small ? 18 : 24, - sx: styles_default16.dislikeIcon + sx: styles_default21.dislikeIcon } - ) : /* @__PURE__ */ jsx51(like_icon_default, { size: small ? 18 : 24, sx: styles_default16.dislikeIcon }), - !small && /* @__PURE__ */ jsx51(Text11, { children: messages[locale]["feedback_section.negative"] }) + ) : /* @__PURE__ */ jsx61(like_icon_default, { size: small ? 18 : 24, sx: styles_default21.dislikeIcon }), + !small && /* @__PURE__ */ jsx61(Text15, { children: messages[locale]["feedback_section.negative"] }) ] } ) ] }) ] }), - suggestEdits && /* @__PURE__ */ jsxs40( - Link8, - { - target: "_blank", - rel: "noopener noreferrer", - href: urlToEdit, - sx: styles_default16.editContainer({ small }), - children: [ - /* @__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_default16.shareButton }) + suggestEdits && urlToEdit && /* @__PURE__ */ jsx61(suggest_edits_default, { urlToEdit, small }), + shareButton2 && /* @__PURE__ */ jsx61(share_button_default, { url: window.location.href, sx: styles_default21.shareButton }) ] }); }; var feedback_section_default = FeedbackSection; -// src/lib/search/index.tsx -import { Box as Box23, Flex as Flex21 } from "@vtex/brand-ui"; +// src/components/feedback-modal/index.tsx +import { useContext as useContext18, useEffect as useEffect17, useState as useState20 } from "react"; +import { Box as Box25, Flex as Flex22, Text as Text17 } from "@vtex/brand-ui"; -// src/components/search-sections/index.tsx -import { Box as Box19 } from "@vtex/brand-ui"; +// src/components/icons/check-icon.tsx +import { Icon as Icon33 } from "@vtex/brand-ui"; +import { jsx as jsx62 } from "react/jsx-runtime"; +var CheckIcon = (props) => /* @__PURE__ */ jsx62( + Icon33, + { + ...props, + viewBox: "0 0 16 16", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + children: /* @__PURE__ */ jsx62( + "path", + { + d: "M13.333 4L6 11.333 2.667 8", + stroke: "currentColor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ) + } +); +var check_icon_default = CheckIcon; -// 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"; +// src/components/icons/comment-icon.tsx +import { Icon as Icon34 } from "@vtex/brand-ui"; +import { jsx as jsx63 } from "react/jsx-runtime"; +var CommentIcon = (props) => /* @__PURE__ */ jsx63( + Icon34, + { + ...props, + viewBox: "0 0 16 16", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + children: /* @__PURE__ */ jsx63( + "path", + { + d: "M13.5 2.5H2.5C1.94772 2.5 1.5 2.94772 1.5 3.5V10.5C1.5 11.0523 1.94772 11.5 2.5 11.5H4.5V14L8 11.5H13.5C14.0523 11.5 14.5 11.0523 14.5 10.5V3.5C14.5 2.94772 14.0523 2.5 13.5 2.5Z", + stroke: "currentColor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ) + } +); +var comment_icon_default = CommentIcon; -// src/components/search-section/styles.ts -var sectionContainer = { - justifyContent: "space-between", - padding: "8px", - mb: "8px", - cursor: "pointer", - ":active, :hover": { - backgroundColor: "#F8F7FC", - borderRadius: "4px", - ".search-section-title": { - color: "#000711" - }, - ".search-section-count": { - background: "#E7E9EE" - } +// src/components/icons/warning-icon.tsx +import { Icon as Icon35 } from "@vtex/brand-ui"; +import { jsx as jsx64, jsxs as jsxs50 } from "react/jsx-runtime"; +var WarningIcon = (props) => /* @__PURE__ */ jsxs50( + Icon35, + { + ...props, + viewBox: "0 0 18 16", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + children: [ + /* @__PURE__ */ jsx64( + "path", + { + d: "M7.71758 1.89497L1.36508 12.5C1.2341 12.7268 1.1648 12.9839 1.16407 13.2459C1.16334 13.5078 1.23119 13.7653 1.3609 13.9929C1.4906 14.2204 1.67762 14.41 1.90336 14.5429C2.12909 14.6757 2.38568 14.7471 2.64758 14.75H15.3526C15.6145 14.7471 15.8711 14.6757 16.0968 14.5429C16.3225 14.41 16.5096 14.2204 16.6393 13.9929C16.769 13.7653 16.8368 13.5078 16.8361 13.2459C16.8354 12.9839 16.766 12.7268 16.6351 12.5L10.2826 1.89497C10.1489 1.67455 9.96062 1.49231 9.73597 1.36583C9.51133 1.23936 9.25788 1.17291 9.00008 1.17291C8.74227 1.17291 8.48882 1.23936 8.26418 1.36583C8.03953 1.49231 7.85128 1.67455 7.71758 1.89497Z", + stroke: "currentcolor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ), + /* @__PURE__ */ jsx64( + "path", + { + d: "M9 5.75V8.75", + stroke: "currentcolor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ), + /* @__PURE__ */ jsx64( + "path", + { + d: "M9 11.75H9.0075", + stroke: "currentcolor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ) + ] } +); +var warning_icon_default = WarningIcon; + +// src/components/feedback-modal/modal.tsx +import { useEffect as useEffect16, useState as useState19 } from "react"; +import { createPortal } from "react-dom"; +import { Box as Box24, Flex as Flex21, Text as Text16 } from "@vtex/brand-ui"; + +// src/components/feedback-modal/styles.ts +var triggerWrap = { + display: "inline-flex", + flexShrink: 0, + width: "max-content" }; -var sectionIconTitleBox = { - alignItems: "center" +var triggerButton = { + mt: 0, + px: 3, + minHeight: 36, + background: "#fff", + borderRadius: "4px", + cursor: "pointer", + fontSize: 12, + height: "min-content", + textTransform: "none", + display: "inline-flex", + alignItems: "center", + justifyContent: "center", + gap: 3, + width: "max-content", + maxWidth: "180px", + flexShrink: 0, + whiteSpace: "nowrap", + color: "muted.0", + border: "1px solid #E7E9EE", + "&:hover": { backgroundColor: "#F8F7FC", color: "#000711" } }; -var sectionIcon = { - width: "16px", - height: "16px", - minWidth: "16px", - minHeight: "16px", - mr: "8px" +var wrapContainer = { + position: "fixed", + inset: 0, + backgroundColor: "rgba(20, 32, 50, 0.45)", + backdropFilter: "blur(4px)", + WebkitBackdropFilter: "blur(4px)", + display: "flex", + alignItems: ["flex-end", "center"], + justifyContent: "center", + zIndex: 2e4, + padding: ["0", "24px"], + overscrollBehavior: "contain" }; -var sectionTitle = { - fontSize: "12px", - lineHeight: "16px" +var innerContainer2 = { + display: "flex", + flexDirection: "column", + backgroundColor: "#FFFFFF", + borderRadius: ["20px 20px 0 0", "20px"], + boxShadow: "0 16px 48px rgba(20, 32, 50, 0.24)", + maxWidth: "520px", + width: "100%", + maxHeight: ["92vh", "min(80vh, 720px)"], + overflow: "hidden", + position: "relative" }; -var sectionTitleActive = { - ...sectionTitle, - color: "#142032", - fontWeight: "600" +var header = { + flexShrink: 0, + px: ["20px", "24px"], + pt: ["20px", "24px"], + pb: "16px", + borderBottom: "1px solid #E7E9EE" }; -var sectionCount = { - background: "#F8F7FC", - borderRadius: "24px", - width: "auto", - textAlign: "center", - px: "8px", - fontSize: "12px", - lineHeight: "16px" +var headerTop = { + display: "flex", + alignItems: "flex-start", + justifyContent: "space-between", + gap: "12px" }; -var allResultsText = { - ...sectionTitle, - ml: "24px" +var modalButton = { + display: "inline-flex", + alignItems: "center", + justifyContent: "center", + flexShrink: 0, + width: "32px", + height: "32px", + mt: "-4px", + mr: "-4px", + p: 0, + background: "transparent", + border: "none", + borderRadius: "8px", + color: "#4A596B", + cursor: "pointer", + transition: "background 0.15s ease, color 0.15s ease", + ":hover": { + background: "#F4F4F5", + color: "#142032" + }, + ":focus-visible": { + outline: "2px solid #E31C58", + outlineOffset: "2px" + } }; -var allResultsTextActive = { - ...allResultsText, - fontWeight: "bold", +var modalTitle = { + fontSize: ["18px", "20px"], + fontWeight: "600", + lineHeight: ["24px", "28px"], + letterSpacing: "-0.02em", + color: "#142032", + pr: "8px" +}; +var modalDescription = { + mt: "6px", + color: "#4A596B", + fontSize: "14px", + lineHeight: "20px" +}; +var body = { + flex: 1, + minHeight: 0, + overflowY: "auto", + px: ["20px", "24px"], + py: ["20px", "24px"] +}; +var form = { + display: "grid", + gap: "16px" +}; +var field = { + display: "grid", + gap: "6px", + minWidth: 0 +}; +var row = { + display: "grid", + gridTemplateColumns: ["1fr", "1fr 1fr"], + gap: "12px" +}; +var label2 = { + fontSize: "13px", + fontWeight: "600", + lineHeight: "18px", + color: "#142032" +}; +var requiredMark = { + color: "#E31C58" +}; +var control = { + width: "100%", + minWidth: 0, + boxSizing: "border-box", + padding: "10px 12px", + border: "1px solid #E7E9EE", + borderRadius: "8px", + background: "#FFFFFF", + color: "#142032", + fontFamily: "inherit", + fontSize: "14px", + lineHeight: "20px", + outline: "none", + transition: "border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease", + "::placeholder": { + color: "#A1A8B3" + }, + ":hover": { + borderColor: "#C7CDD6" + }, + ":focus": { + borderColor: "#E31C58", + boxShadow: "0 0 0 3px rgba(227, 28, 88, 0.16)" + } +}; +var input2 = { + ...control, + height: "40px" +}; +var inputMuted = { + ...input2, + background: "#FAFAFB", + color: "#4A596B", + fontSize: "13px" +}; +var textarea = { + ...control, + minHeight: "120px", + resize: "vertical" +}; +var dropdownMenu = { + ...input2, + appearance: "none", + WebkitAppearance: "none", + cursor: "pointer", + paddingRight: "36px", + backgroundImage: `url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%234A596B' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")`, + backgroundRepeat: "no-repeat", + backgroundPosition: "right 12px center" +}; +var actions2 = { + display: "flex", + gap: "8px", + alignItems: "center", + justifyContent: "flex-end", + pt: "8px" +}; +var cancelButton = { + display: "inline-flex", + alignItems: "center", + justifyContent: "center", + minHeight: "40px", + px: "16px", + background: "transparent", + color: "#4A596B", + border: "1px solid #E7E9EE", + borderRadius: "8px", + cursor: "pointer", + fontFamily: "inherit", + fontSize: "14px", + fontWeight: "600", + lineHeight: "20px", + transition: "background 0.15s ease, color 0.15s ease, border-color 0.15s ease", + ":hover": { + background: "#F8F7FC", + color: "#142032", + borderColor: "#C7CDD6" + }, + ":focus-visible": { + outline: "2px solid #E31C58", + outlineOffset: "2px" + } +}; +var submitButton = { + display: "inline-flex", + alignItems: "center", + justifyContent: "center", + minHeight: "40px", + px: "16px", + background: "#142032", + color: "#FFFFFF", + border: "none", + borderRadius: "8px", + cursor: "pointer", + fontFamily: "inherit", + fontSize: "14px", + fontWeight: "600", + lineHeight: "20px", + transition: "background 0.15s ease, opacity 0.15s ease", + ":hover": { + background: "#000711" + }, + ":disabled": { + opacity: 0.6, + cursor: "not-allowed" + }, + ":focus-visible": { + outline: "2px solid #142032", + outlineOffset: "2px" + } +}; +var feedbackErrorText = { + display: "flex", + alignItems: "flex-start", + gap: "8px", + padding: "12px 14px", + background: "#FFF6F4", + border: "1px solid #F8D0C8", + borderRadius: "8px", + color: "#8A1F11", + fontSize: "13px", + lineHeight: "18px" +}; +var errorIcon = { + flexShrink: 0, + width: "16px", + height: "16px", + mt: "1px", + color: "#D44333" +}; +var successState = { + display: "flex", + flexDirection: "column", + alignItems: "center", + textAlign: "center", + py: ["16px", "24px"], + px: "8px", + gap: "12px" +}; +var successIconWrap = { + display: "flex", + alignItems: "center", + justifyContent: "center", + width: "48px", + height: "48px", + borderRadius: "50%", + background: "#F0FAF4", + color: "#36875A" +}; +var successTitle = { + fontSize: "16px", + fontWeight: "600", + lineHeight: "22px", + color: "#142032", + maxWidth: "320px" +}; +var styles_default24 = { + triggerWrap, + triggerButton, + wrapContainer, + innerContainer: innerContainer2, + header, + headerTop, + modalButton, + modalTitle, + modalDescription, + body, + form, + field, + row, + label: label2, + requiredMark, + input: input2, + inputMuted, + textarea, + dropdownMenu, + actions: actions2, + cancelButton, + submitButton, + feedbackErrorText, + errorIcon, + successState, + successIconWrap, + successTitle +}; + +// src/components/feedback-modal/modal.tsx +import { jsx as jsx65, jsxs as jsxs51 } from "react/jsx-runtime"; +var Modal = ({ + isOpen, + onClose, + title: title9, + description: description6, + closeLabel, + children +}) => { + const [mounted, setMounted] = useState19(false); + useEffect16(() => { + setMounted(true); + }, []); + useEffect16(() => { + if (!isOpen) + return; + const html = document.documentElement; + const previousOverflow = html.style.overflow; + html.style.overflow = "hidden"; + const onKeyDown = (event) => { + if (event.key === "Escape") + onClose(); + }; + window.addEventListener("keydown", onKeyDown); + return () => { + window.removeEventListener("keydown", onKeyDown); + html.style.overflow = previousOverflow; + }; + }, [isOpen, onClose]); + if (!isOpen || !mounted) + return null; + return createPortal( + /* @__PURE__ */ jsx65( + Box24, + { + sx: styles_default24.wrapContainer, + onClick: onClose, + className: "modal", + "data-open": "true", + "data-cy": "feedback-modal", + role: "dialog", + "aria-modal": "true", + "aria-labelledby": "feedback-modal-title", + "aria-describedby": description6 ? "feedback-modal-description" : void 0, + children: /* @__PURE__ */ jsxs51( + Box24, + { + sx: styles_default24.innerContainer, + onClick: (e) => e.stopPropagation(), + children: [ + /* @__PURE__ */ jsxs51(Box24, { sx: styles_default24.header, children: [ + /* @__PURE__ */ jsxs51(Flex21, { sx: styles_default24.headerTop, children: [ + /* @__PURE__ */ jsx65(Text16, { id: "feedback-modal-title", sx: styles_default24.modalTitle, children: title9 }), + /* @__PURE__ */ jsx65( + Box24, + { + as: "button", + type: "button", + onClick: onClose, + sx: styles_default24.modalButton, + "aria-label": closeLabel, + children: /* @__PURE__ */ jsx65(close_icon_default, { sx: { width: "16px", height: "16px" } }) + } + ) + ] }), + description6 ? /* @__PURE__ */ jsx65(Text16, { id: "feedback-modal-description", sx: styles_default24.modalDescription, children: description6 }) : null + ] }), + /* @__PURE__ */ jsx65(Box24, { sx: styles_default24.body, children }) + ] + } + ) + } + ), + document.body + ); +}; +var modal_default = Modal; + +// src/components/feedback-modal/index.tsx +import { jsx as jsx66, jsxs as jsxs52 } from "react/jsx-runtime"; +var DEFAULT_FEEDBACK_ENDPOINT2 = "/api/feedback-google"; +var FEEDBACK_TYPES = [ + { + value: "Incorrect information", + labelKey: "feedback_modal.type.incorrect" + }, + { + value: "Page not found", + labelKey: "feedback_modal.type.page_not_found" + }, + { + value: "Content improvement", + labelKey: "feedback_modal.type.content_improvement" + }, + { + value: "New documentation", + labelKey: "feedback_modal.type.new_documentation" + }, + { + value: "Other documentation feedback", + labelKey: "feedback_modal.type.other" + } +]; +var postFeedback2 = async (payload, endpoint) => { + const res = await fetch(endpoint, { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(payload) + }); + if (!res.ok) { + const data = await res.json().catch(() => ({})); + throw new Error(data?.error || "Failed to send feedback. Try again"); + } +}; +var FeedbackModal = ({ + pageUrl, + initialMessage, + feedbackEndpoint = DEFAULT_FEEDBACK_ENDPOINT2, + sendFeedback, + defaultOpen = false +}) => { + const { locale } = useContext18(LibraryContext); + const localizedMessages = messages[locale] ?? messages.en; + const [isOpen, setIsOpen] = useState20(defaultOpen); + const [submitted, setSubmitted] = useState20(false); + const [submitting, setSubmitting] = useState20(false); + const [error, setError] = useState20(false); + const handleClose = () => setIsOpen(false); + const articleUrl = pageUrl || initialMessage || (typeof window !== "undefined" ? window.location.href : ""); + useEffect17(() => { + if (isOpen) { + setSubmitted(false); + setSubmitting(false); + setError(false); + } + }, [isOpen]); + async function handleSubmit(event) { + event.preventDefault(); + setSubmitting(true); + setError(false); + const form2 = event.currentTarget; + const formData = new FormData(form2); + const payload = { + name: String(formData.get("name") || ""), + email: String(formData.get("email") || ""), + type: String(formData.get("type") || "Other documentation feedback"), + url: String(formData.get("url") || ""), + feedback: String(formData.get("feedback") || "") + }; + try { + if (sendFeedback) { + await sendFeedback(payload); + } else { + await postFeedback2(payload, feedbackEndpoint); + } + form2.reset(); + setSubmitted(true); + } catch { + setError(true); + } finally { + setSubmitting(false); + } + } + return /* @__PURE__ */ jsxs52(Box25, { sx: styles_default24.triggerWrap, children: [ + /* @__PURE__ */ jsxs52( + Box25, + { + as: "button", + type: "button", + onClick: () => setIsOpen(true), + sx: styles_default24.triggerButton, + children: [ + /* @__PURE__ */ jsx66(comment_icon_default, { size: 14 }), + /* @__PURE__ */ jsx66(Text17, { children: localizedMessages["feedback_modal.button"] }) + ] + } + ), + /* @__PURE__ */ jsx66( + modal_default, + { + isOpen, + onClose: handleClose, + title: localizedMessages["feedback_modal.title"], + description: submitted ? void 0 : localizedMessages["feedback_modal.description"], + closeLabel: localizedMessages["feedback_modal.close"], + children: submitted ? /* @__PURE__ */ jsxs52(Flex22, { sx: styles_default24.successState, role: "status", children: [ + /* @__PURE__ */ jsx66(Flex22, { sx: styles_default24.successIconWrap, "aria-hidden": "true", children: /* @__PURE__ */ jsx66(check_icon_default, { size: 22 }) }), + /* @__PURE__ */ jsx66(Text17, { sx: styles_default24.successTitle, children: localizedMessages["feedback_modal.success"] }), + /* @__PURE__ */ jsx66( + Box25, + { + as: "button", + type: "button", + onClick: handleClose, + sx: styles_default24.submitButton, + children: localizedMessages["feedback_modal.done"] + } + ) + ] }) : /* @__PURE__ */ jsx66(Box25, { as: "form", onSubmit: handleSubmit, children: /* @__PURE__ */ jsxs52(Box25, { sx: styles_default24.form, children: [ + error ? /* @__PURE__ */ jsxs52(Flex22, { role: "alert", sx: styles_default24.feedbackErrorText, children: [ + /* @__PURE__ */ jsx66(warning_icon_default, { sx: styles_default24.errorIcon }), + localizedMessages["feedback_modal.error"] + ] }) : null, + /* @__PURE__ */ jsxs52(Box25, { sx: styles_default24.field, children: [ + /* @__PURE__ */ jsx66(Text17, { as: "label", htmlFor: "feedback-modal-url", sx: styles_default24.label, children: localizedMessages["feedback_modal.article"] }), + /* @__PURE__ */ jsx66( + Box25, + { + as: "input", + id: "feedback-modal-url", + name: "url", + defaultValue: articleUrl, + sx: styles_default24.inputMuted + } + ) + ] }), + /* @__PURE__ */ jsxs52(Box25, { sx: styles_default24.field, children: [ + /* @__PURE__ */ jsxs52( + Text17, + { + as: "label", + htmlFor: "feedback-modal-message", + sx: styles_default24.label, + children: [ + localizedMessages["feedback_modal.message"], + " ", + /* @__PURE__ */ jsx66(Box25, { as: "span", sx: styles_default24.requiredMark, children: "*" }) + ] + } + ), + /* @__PURE__ */ jsx66( + Box25, + { + as: "textarea", + id: "feedback-modal-message", + name: "feedback", + "aria-required": "true", + required: true, + rows: 5, + placeholder: localizedMessages["feedback_modal.message_placeholder"], + sx: styles_default24.textarea + } + ) + ] }), + /* @__PURE__ */ jsxs52(Box25, { sx: styles_default24.field, children: [ + /* @__PURE__ */ jsx66(Text17, { as: "label", htmlFor: "feedback-modal-type", sx: styles_default24.label, children: localizedMessages["feedback_modal.type"] }), + /* @__PURE__ */ jsx66( + Box25, + { + as: "select", + id: "feedback-modal-type", + name: "type", + sx: styles_default24.dropdownMenu, + children: FEEDBACK_TYPES.map((type) => /* @__PURE__ */ jsx66("option", { value: type.value, children: localizedMessages[type.labelKey] }, type.value)) + } + ) + ] }), + /* @__PURE__ */ jsxs52(Box25, { sx: styles_default24.row, children: [ + /* @__PURE__ */ jsxs52(Box25, { sx: styles_default24.field, children: [ + /* @__PURE__ */ jsx66( + Text17, + { + as: "label", + htmlFor: "feedback-modal-name", + sx: styles_default24.label, + children: localizedMessages["feedback_modal.name"] + } + ), + /* @__PURE__ */ jsx66( + Box25, + { + as: "input", + id: "feedback-modal-name", + name: "name", + type: "text", + placeholder: localizedMessages["feedback_modal.name_placeholder"], + sx: styles_default24.input + } + ) + ] }), + /* @__PURE__ */ jsxs52(Box25, { sx: styles_default24.field, children: [ + /* @__PURE__ */ jsx66( + Text17, + { + as: "label", + htmlFor: "feedback-modal-email", + sx: styles_default24.label, + children: localizedMessages["feedback_modal.email"] + } + ), + /* @__PURE__ */ jsx66( + Box25, + { + as: "input", + id: "feedback-modal-email", + name: "email", + type: "email", + placeholder: localizedMessages["feedback_modal.email_placeholder"], + sx: styles_default24.input + } + ) + ] }) + ] }), + /* @__PURE__ */ jsxs52(Box25, { sx: styles_default24.actions, children: [ + /* @__PURE__ */ jsx66( + Box25, + { + as: "button", + type: "button", + onClick: handleClose, + sx: styles_default24.cancelButton, + children: localizedMessages["feedback_modal.cancel"] + } + ), + /* @__PURE__ */ jsx66( + Box25, + { + as: "button", + type: "submit", + sx: styles_default24.submitButton, + disabled: submitting, + children: submitting ? localizedMessages["feedback_modal.submitting"] : localizedMessages["feedback_modal.submit"] + } + ) + ] }) + ] }) }) + } + ) + ] }); +}; +var feedback_modal_default = FeedbackModal; + +// src/lib/search/index.tsx +import { Flex as Flex27 } from "@vtex/brand-ui"; + +// src/components/search-sections/index.tsx +import { Box as Box27 } from "@vtex/brand-ui"; + +// src/components/search-section/index.tsx +import { Box as Box26, Flex as Flex23, Text as Text18 } from "@vtex/brand-ui"; +import { useContext as useContext19, useEffect as useEffect18 } from "react"; + +// src/components/search-section/styles.ts +var sectionContainer = (disabled2 = false) => ({ + justifyContent: "space-between", + padding: "8px", + mb: "8px", + cursor: disabled2 ? "not-allowed" : "pointer", + opacity: disabled2 ? 0.5 : 1, + ":active, :hover": disabled2 ? {} : { + backgroundColor: "#F8F7FC", + borderRadius: "4px", + ".search-section-title": { + color: "#000711" + }, + ".search-section-count": { + background: "#E7E9EE" + } + } +}); +var sectionIconTitleBox = { + alignItems: "center" +}; +var sectionIcon = (disabled2 = false) => ({ + width: "16px", + height: "16px", + minWidth: "16px", + minHeight: "16px", + mr: "8px", + opacity: disabled2 ? 0.6 : 1 +}); +var sectionTitle = (disabled2 = false) => ({ + fontSize: "12px", + lineHeight: "16px", + color: disabled2 ? "#AFAFAF" : void 0 +}); +var sectionTitleActive = { + ...sectionTitle(), + color: "#142032", + fontWeight: "600" +}; +var sectionCount = { + background: "#F8F7FC", + borderRadius: "24px", + width: "auto", + textAlign: "center", + px: "8px", + fontSize: "12px", + lineHeight: "16px" +}; +var allResultsText = { + ...sectionTitle(), + ml: "24px" +}; +var allResultsTextActive = { + ...allResultsText, + fontWeight: "bold", color: "#0C1522" }; -var styles_default18 = { +var styles_default25 = { sectionContainer, sectionIconTitleBox, sectionIcon, @@ -10892,14 +14890,14 @@ var styles_default18 = { }; // src/components/search-section/index.tsx -import { useRouter as useRouter6 } from "next/router.js"; +import { useRouter as useRouter8 } from "next/router.js"; // src/utils/context/search.tsx import { createContext as createContext2, - useState as useState12 + useState as useState21 } from "react"; -import { jsx as jsx52 } from "react/jsx-runtime"; +import { jsx as jsx67 } from "react/jsx-runtime"; var SearchContext = createContext2({ filterSelectedSection: "", changeFilterSelectedSection: () => void 0, @@ -10907,12 +14905,12 @@ var SearchContext = createContext2({ updateOcurrenceCount: () => void 0 }); var SearchContextProvider = ({ children }) => { - const [filterSelectedSection, changeFilterSelectedSection] = useState12(""); - const [ocurrenceCount, changeOcurrenceCount] = useState12({}); + const [filterSelectedSection, changeFilterSelectedSection] = useState21(""); + const [ocurrenceCount, changeOcurrenceCount] = useState21({}); const updateOcurrenceCount = (resultsData) => { changeOcurrenceCount(resultsData); }; - return /* @__PURE__ */ jsx52( + return /* @__PURE__ */ jsx67( SearchContext.Provider, { value: { @@ -10928,46 +14926,59 @@ var SearchContextProvider = ({ children }) => { var search_default = SearchContextProvider; // src/components/search-section/index.tsx -import { jsx as jsx53, jsxs as jsxs41 } from "react/jsx-runtime"; +import { jsx as jsx68, jsxs as jsxs53 } from "react/jsx-runtime"; var SearchSection = ({ dataElement, index }) => { - const router = useRouter6(); - const { filterSelectedSection, ocurrenceCount, changeFilterSelectedSection } = useContext12(SearchContext); - const { locale } = useContext12(LibraryContext); + const router = useRouter8(); + const { filterSelectedSection, ocurrenceCount, changeFilterSelectedSection } = useContext19(SearchContext); + const { locale, sidebarDataMaster } = useContext19(LibraryContext); const updateFilter = (value) => { router.query.filter = value; changeFilterSelectedSection(value); }; - useEffect11(() => { + useEffect18(() => { updateFilter(""); }, [router.query]); - return !dataElement ? /* @__PURE__ */ jsxs41(Flex17, { sx: styles_default18.sectionContainer, onClick: () => updateFilter(""), children: [ - /* @__PURE__ */ jsx53( - Text12, - { - className: "search-section-title", - sx: filterSelectedSection ? styles_default18.allResultsText : styles_default18.allResultsTextActive, - children: messages[locale]["search_results.all"] || "All results" - } - ), - /* @__PURE__ */ jsx53(Box18, { className: "search-section-count", sx: styles_default18.sectionCount, children: ocurrenceCount[""] }) - ] }) : /* @__PURE__ */ jsxs41( - Flex17, + const allCountLabel = formatSearchTabCount(ocurrenceCount[""]); + if (!dataElement) { + return /* @__PURE__ */ jsxs53(Flex23, { sx: styles_default25.sectionContainer(), onClick: () => updateFilter(""), children: [ + /* @__PURE__ */ jsx68( + Text18, + { + className: "search-section-title", + sx: filterSelectedSection ? styles_default25.allResultsText : styles_default25.allResultsTextActive, + children: messages[locale]["search_results.all"] || "All results" + } + ), + allCountLabel !== void 0 && /* @__PURE__ */ jsx68(Box26, { className: "search-section-count", sx: styles_default25.sectionCount, children: allCountLabel }) + ] }); + } + const countsLoaded = Object.keys(ocurrenceCount).length > 0; + const count2 = countsLoaded ? ocurrenceCount[dataElement.id] ?? 0 : ocurrenceCount[dataElement.id]; + const isDisabled = count2 === 0; + const countLabel = formatSearchTabCount(count2); + return /* @__PURE__ */ jsxs53( + Flex23, { - sx: styles_default18.sectionContainer, - onClick: () => updateFilter(dataElement.id), + sx: styles_default25.sectionContainer(isDisabled), + onClick: () => { + if (isDisabled) + return; + updateFilter(dataElement.id); + }, + "data-disabled": String(isDisabled), children: [ - /* @__PURE__ */ jsxs41(Flex17, { sx: styles_default18.sectionIconTitleBox, children: [ - /* @__PURE__ */ jsx53(dataElement.Icon, { sx: styles_default18.sectionIcon }), - /* @__PURE__ */ jsx53( - Text12, + /* @__PURE__ */ jsxs53(Flex23, { sx: styles_default25.sectionIconTitleBox, children: [ + /* @__PURE__ */ jsx68(dataElement.Icon, { sx: styles_default25.sectionIcon(isDisabled) }), + /* @__PURE__ */ jsx68( + Text18, { className: "search-section-title", - sx: filterSelectedSection === dataElement.id ? styles_default18.sectionTitleActive : styles_default18.sectionTitle, - children: dataElement.title + sx: filterSelectedSection === dataElement.id ? styles_default25.sectionTitleActive : styles_default25.sectionTitle(isDisabled), + children: getSectionLabel(dataElement, sidebarDataMaster, locale) } ) ] }), - /* @__PURE__ */ jsx53(Box18, { className: "search-section-count", sx: styles_default18.sectionCount, children: ocurrenceCount[dataElement.id] || 0 }) + countLabel !== void 0 && /* @__PURE__ */ jsx68(Box26, { className: "search-section-count", sx: styles_default25.sectionCount, children: countLabel }) ] }, `search-section-${dataElement.id}${index}` @@ -10976,14 +14987,14 @@ var SearchSection = ({ dataElement, index }) => { var search_section_default = SearchSection; // src/components/search-sections/styles.ts -var container7 = { +var container11 = { display: ["none", "none", "none", "initial"], height: "100%", width: "242px", border: "1px solid #E7E9EE", borderRadius: "4px", mr: ["32px", "32px", "32px", "32px", "32px", "32px", "64px"], - mt: "96px" + mt: "32px" }; var notesSection = { px: "8px", @@ -10993,27 +15004,27 @@ var docsSection = { ...notesSection, borderBottom: "1px solid #E7E9EE" }; -var styles_default19 = { - container: container7, +var styles_default26 = { + container: container11, notesSection, docsSection }; // src/components/search-sections/index.tsx -import { useContext as useContext13 } from "react"; -import { jsx as jsx54, jsxs as jsxs42 } from "react/jsx-runtime"; +import { useContext as useContext20 } from "react"; +import { jsx as jsx69, jsxs as jsxs54 } from "react/jsx-runtime"; var SearchSections = () => { - const { sidebarSections } = useContext13(LibraryContext); + const { sidebarSections } = useContext20(LibraryContext); const internalOnlySections = sidebarSections.map( (section) => section.filter((item2) => !item2.isExternalLink && !item2.excludeFromSearch) ); - return /* @__PURE__ */ jsx54(Box19, { sx: styles_default19.container, children: internalOnlySections.map((sections, id) => /* @__PURE__ */ jsxs42( - Box19, + return /* @__PURE__ */ jsx69(Box27, { sx: styles_default26.container, children: internalOnlySections.map((sections, id) => /* @__PURE__ */ jsxs54( + Box27, { - sx: id < internalOnlySections.length - 1 ? styles_default19.docsSection : styles_default19.notesSection, + sx: id < internalOnlySections.length - 1 ? styles_default26.docsSection : styles_default26.notesSection, children: [ - id === 0 && /* @__PURE__ */ jsx54(search_section_default, { dataElement: null }), - sections.map((section, index) => /* @__PURE__ */ jsx54( + id === 0 && /* @__PURE__ */ jsx69(search_section_default, { dataElement: null }), + sections.map((section, index) => /* @__PURE__ */ jsx69( search_section_default, { dataElement: section, @@ -11029,99 +15040,164 @@ var SearchSections = () => { var search_sections_default = SearchSections; // src/components/search-results/index.tsx -import { useRouter as useRouter7 } from "next/router.js"; -import { useContext as useContext16, useState as useState14 } from "react"; -import { Box as Box22, Text as Text14 } from "@vtex/brand-ui"; +import { useRouter as useRouter10 } from "next/router.js"; +import { useContext as useContext23, useEffect as useEffect21, useState as useState23 } from "react"; +import { Box as Box30, Text as Text21 } 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 useContext22, useEffect as useEffect20, useMemo as useMemo4, useRef as useRef12 } from "react"; import { connectInfiniteHits, connectStateResults as connectStateResults2 } from "react-instantsearch-dom"; // src/components/search-card/index.tsx -import { Box as Box20, Flex as Flex18, Text as Text13, IconCaret as IconCaret5, Tooltip as Tooltip2 } from "@vtex/brand-ui"; +import { Box as Box28, Flex as Flex24, Text as Text19, IconCaret as IconCaret6, Tooltip as Tooltip2 } from "@vtex/brand-ui"; +import { useContext as useContext21, useEffect as useEffect19, useState as useState22 } from "react"; +import { useRouter as useRouter9 } from "next/router.js"; +import Link9 from "next/link.js"; // src/components/search-card/styles.ts -var container8 = { +var container12 = { + position: "relative", + flexWrap: ["wrap", "nowrap"], justifyContent: "space-between", - borderRadius: "9px", - border: "1px solid #DDDDDD", + alignItems: "flex-start", + borderRadius: ["8px", "12px"], + border: "1px solid #E7E9EE", width: "100%", - mb: "18px", - paddingTop: "26px", - paddingBottom: "10px", - paddingLeft: ["13px", "44px"], - paddingRight: ["13px", "34px"], + minWidth: 0, + mb: ["12px", "16px"], + padding: ["14px 16px", "20px 24px"], background: "#FFFFFF", - cursor: "pointer" + cursor: "pointer", + a: { + minWidth: 0, + flex: ["1 1 100%", "1 1 auto"], + textDecoration: "none", + color: "inherit" + }, + ".search-card-actions": { + opacity: [1, 0] + } }; -var containerActive = (method) => { - const methodCategory = method ? methodsColors[method] : ""; - return { - ...container8, - ":hover": { - background: "#F8F7FC", - ".searchCardTitle, .searchCardDescription": { - color: "#142032" - }, - ".method-category": { - ...methodCategory +var containerActive = { + ...container12, + ":hover": { + background: "#F8F7FC", + borderColor: "#D8D8E3", + ".searchCardTitle, .searchCardDescription": { + color: "#142032" + }, + ".search-card-icon": { + "> path": { + stroke: "#000711" } + }, + ".search-card-icon-wrap": { + backgroundColor: "#EDEAF6" + }, + ".search-card-actions": { + opacity: 1 } - }; + } }; -var title3 = { - display: "flex", +var cardBody = { alignItems: "flex-start", - fontSize: ["16px", "18px"], - lineHeight: ["22px", "24px"], - color: "muted.0" + minWidth: 0, + width: "100%" }; -var httpMethod = { - mr: "4px" +var cardText = { + minWidth: 0, + flex: 1 }; -var icon2 = { - width: "24px", - height: "24px", +var iconWrap = { + flexShrink: 0, + width: ["32px", "36px"], + height: ["32px", "36px"], + borderRadius: "8px", + backgroundColor: "#F4F2FA", + display: "flex", + alignItems: "center", + justifyContent: "center", + mr: ["10px", "12px"], + mt: "2px" +}; +var title5 = { + display: "flex", + alignItems: "center", + flexWrap: "wrap", + fontSize: ["15px", "18px"], + fontWeight: "600", + lineHeight: ["20px", "24px"], + color: "#142032" +}; +var titleText = { + minWidth: 0, + flex: 1, + display: "inline", + whiteSpace: "normal", + overflowWrap: "break-word", + wordBreak: "break-word" +}; +var httpMethod2 = { mr: "8px", + flexShrink: 0, + alignSelf: "center" +}; +var icon3 = { + width: "18px", + height: "18px", + color: "#4A596B", path: { - stroke: "#A1A8B3" + stroke: "#4A596B" } }; var description3 = { - fontSize: "16px", - lineHeight: "22px", - paddingLeft: "32px", + fontSize: ["13px", "16px"], + lineHeight: ["18px", "22px"], color: "muted.0", - mt: "4px", - mb: "8px" + mt: "6px", + mb: ["6px", "8px"], + minWidth: 0, + overflowWrap: "break-word", + wordBreak: "break-word", + overflow: "hidden", + display: "-webkit-box", + WebkitLineClamp: [3, 4], + WebkitBoxOrient: "vertical" }; var descriptionToggle = { height: "auto", - minWidth: "auto" + minWidth: "auto", + cursor: "pointer" }; var descriptionExpandedItem = { mt: "24px" }; var breadcrumbsContainer = { - display: ["none", "flex"], - paddingLeft: "32px", - alignItems: "center" + display: "flex", + alignItems: "center", + minWidth: 0, + maxWidth: "100%", + overflow: "hidden" }; var alignCenter2 = { - alignItems: "center" + alignItems: "center", + minWidth: 0, + flexShrink: 1 }; var documentation = { ...alignCenter2, - minWidth: "max-content" + minWidth: 0, + maxWidth: ["46%", "none"], + flexShrink: 0 }; var breadcrumb = { color: "muted.1", - fontSize: "16px", - lineHeight: "18px", + fontSize: ["12px", "14px"], + lineHeight: ["16px", "18px"], whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" @@ -11142,11 +15218,12 @@ var breadcrumbsIn = { var breadcrumbsArrow = { width: "16px", height: "16px", - color: "muted.2" + color: "muted.2", + flexShrink: 0 }; var actionContainer = { - paddingLeft: "32px", - alignItems: "center" + alignItems: "center", + mt: "8px" }; var actionIcon = { minWidth: "16px", @@ -11155,11 +15232,54 @@ var actionIcon = { height: "16px", mr: "8px" }; -var styles_default20 = { +var cardToolbar = { + display: "flex", + alignItems: "center", + justifyContent: ["flex-end", "flex-start"], + gap: "8px", + width: ["100%", "auto"], + mt: ["8px", 0], + ml: [0, "8px"], + flexShrink: 0 +}; +var cardActions = { + display: "flex", + alignItems: "center", + gap: "4px" +}; +var actionButton = { + display: "inline-flex", + alignItems: "center", + justifyContent: "center", + width: ["28px", "32px"], + height: ["28px", "32px"], + padding: 0, + border: "1px solid #E7E9EE", + borderRadius: "6px", + background: "#FFFFFF", + color: "#4A596B", + cursor: "pointer", + ":hover": { + background: "#FFFFFF", + borderColor: "#C7CDD6", + color: "#142032" + } +}; +var actionButtonCopied = { + ...actionButton, + borderColor: "#8CD2A8", + color: "#36875A", + background: "#F0FAF4" +}; +var styles_default27 = { containerActive, - title: title3, - httpMethod, - icon: icon2, + cardBody, + cardText, + iconWrap, + title: title5, + titleText, + httpMethod: httpMethod2, + icon: icon3, description: description3, descriptionToggle, descriptionExpandedItem, @@ -11171,48 +15291,47 @@ var styles_default20 = { breadcrumbsIn, breadcrumbsArrow, actionContainer, - actionIcon + actionIcon, + cardToolbar, + cardActions, + actionButton, + actionButtonCopied }; -// src/components/search-card/index.tsx -import Link9 from "next/link.js"; -import { useState as useState13 } from "react"; -import { useContext as useContext14 } from "react"; - // src/components/icons/expanded-results-icon.tsx -import { Icon as Icon29 } from "@vtex/brand-ui"; -import { jsx as jsx55, jsxs as jsxs43 } from "react/jsx-runtime"; -var ExpandedResultsIcon = ({ active }) => active ? /* @__PURE__ */ jsxs43(Icon29, { viewBox: "0 0 19 13", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx55( +import { Icon as Icon36 } from "@vtex/brand-ui"; +import { jsx as jsx70, jsxs as jsxs55 } from "react/jsx-runtime"; +var ExpandedResultsIcon = ({ active }) => active ? /* @__PURE__ */ jsxs55(Icon36, { viewBox: "0 0 19 13", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ + /* @__PURE__ */ jsx70( "path", { d: "M18.8728 6.03784C18.265 5.00744 14.9223 -0.163132 9.2436 0.00396015C3.99219 0.133921 0.953397 4.6454 0.127225 6.03784C0.0438786 6.17895 0 6.33903 0 6.50198C0 6.66493 0.0438786 6.82501 0.127225 6.96612C0.725488 7.97796 3.92572 13 9.51899 13H9.7564C15.0078 12.87 18.0561 8.35856 18.8728 6.96612C18.9561 6.82501 19 6.66493 19 6.50198C19 6.33903 18.9561 6.17895 18.8728 6.03784ZM9.70892 11.1434C5.61604 11.2363 2.9476 7.81087 2.11194 6.50198C3.06156 5.00744 5.54007 1.95337 9.33856 1.86054C13.4124 1.75843 16.0904 5.19309 16.9355 6.50198C15.9574 7.99652 13.5074 11.0506 9.70892 11.1434Z", fill: "#EE2565" } ), - /* @__PURE__ */ jsx55( + /* @__PURE__ */ jsx70( "path", { d: "M9.49977 3.25293C8.84241 3.25293 8.19981 3.44348 7.65323 3.80049C7.10665 4.15749 6.68065 4.66492 6.42909 5.2586C6.17753 5.85228 6.11171 6.50554 6.23995 7.13579C6.3682 7.76604 6.68475 8.34495 7.14957 8.79934C7.6144 9.25372 8.20662 9.56316 8.85135 9.68852C9.49608 9.81388 10.1644 9.74954 10.7717 9.50363C11.379 9.25772 11.8981 8.84129 12.2633 8.30699C12.6285 7.7727 12.8234 7.14453 12.8234 6.50194C12.8234 5.64025 12.4733 4.81385 11.85 4.20454C11.2267 3.59524 10.3813 3.25293 9.49977 3.25293ZM9.49977 7.89437C9.21804 7.89437 8.94264 7.81271 8.70839 7.65971C8.47415 7.5067 8.29157 7.28923 8.18376 7.0348C8.07595 6.78037 8.04774 6.50039 8.1027 6.23029C8.15767 5.96018 8.29333 5.71208 8.49254 5.51734C8.69175 5.32261 8.94556 5.18999 9.22187 5.13626C9.49819 5.08253 9.78459 5.11011 10.0449 5.2155C10.3052 5.32089 10.5276 5.49936 10.6841 5.72835C10.8407 5.95733 10.9242 6.22654 10.9242 6.50194C10.9242 6.87124 10.7741 7.22541 10.507 7.48654C10.2399 7.74767 9.87755 7.89437 9.49977 7.89437Z", fill: "#EE2565" } ) -] }) : /* @__PURE__ */ jsxs43(Icon29, { viewBox: "0 0 23 23", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx55( +] }) : /* @__PURE__ */ jsxs55(Icon36, { viewBox: "0 0 23 23", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ + /* @__PURE__ */ jsx70( "path", { d: "M4.51334 3.15293C4.42398 3.06358 4.31791 2.9927 4.20116 2.94434C4.08441 2.89598 3.95929 2.87109 3.83292 2.87109C3.70656 2.87109 3.58143 2.89598 3.46468 2.94434C3.34794 2.9927 3.24186 3.06358 3.1525 3.15293C2.97205 3.33339 2.87067 3.57814 2.87067 3.83335C2.87067 4.08855 2.97205 4.33331 3.1525 4.51377L8.54792 9.90918C8.20657 10.5442 8.0789 11.2723 8.18384 11.9856C8.28878 12.6988 8.62074 13.3593 9.13053 13.8691C9.64031 14.3789 10.3008 14.7108 11.0141 14.8158C11.7273 14.9207 12.4554 14.793 13.0904 14.4517L18.4858 19.8471C18.5749 19.9369 18.6809 20.0082 18.7977 20.0569C18.9145 20.1055 19.0397 20.1306 19.1663 20.1306C19.2928 20.1306 19.418 20.1055 19.5348 20.0569C19.6516 20.0082 19.7576 19.9369 19.8467 19.8471C19.9365 19.758 20.0078 19.652 20.0564 19.5352C20.1051 19.4185 20.1301 19.2932 20.1301 19.1667C20.1301 19.0402 20.1051 18.9149 20.0564 18.7981C20.0078 18.6813 19.9365 18.5754 19.8467 18.4863L4.51334 3.15293ZM11.4996 12.9375C11.1183 12.9375 10.7527 12.7861 10.4831 12.5165C10.2135 12.2469 10.0621 11.8813 10.0621 11.5C10.0621 11.5 10.0621 11.4521 10.0621 11.4329L11.5571 12.9279L11.4996 12.9375Z", fill: "#CCCED8" } ), - /* @__PURE__ */ jsx55( + /* @__PURE__ */ jsx70( "path", { d: "M11.71 16.2917C7.58919 16.3875 4.88669 12.8513 4.04336 11.5C4.64372 10.5424 5.36525 9.66623 6.19002 8.89336L4.79086 7.54211C3.70921 8.56127 2.78258 9.73328 2.04044 11.0209C1.95633 11.1665 1.91205 11.3318 1.91205 11.5C1.91205 11.6683 1.95633 11.8335 2.04044 11.9792C2.64419 13.0238 5.87378 18.2084 11.5184 18.2084H11.7579C12.8193 18.1769 13.867 17.9596 14.8534 17.5663L13.3392 16.0521C12.8067 16.1922 12.2603 16.2725 11.71 16.2917Z", fill: "#CCCED8" } ), - /* @__PURE__ */ jsx55( + /* @__PURE__ */ jsx70( "path", { d: "M20.9587 11.0209C20.3453 9.9571 16.9624 4.61919 11.2412 4.79169C10.1798 4.82317 9.1321 5.04049 8.14575 5.43377L9.65992 6.94794C10.1924 6.80786 10.7388 6.7275 11.2891 6.70835C15.4003 6.60294 18.1028 10.1488 18.9558 11.5C18.3406 12.4606 17.6028 13.3368 16.7612 14.1067L18.2083 15.4579C19.3035 14.4415 20.2431 13.2693 20.997 11.9792C21.0754 11.8302 21.1131 11.6631 21.1063 11.4949C21.0996 11.3266 21.0487 11.1631 20.9587 11.0209Z", @@ -11223,10 +15342,10 @@ var ExpandedResultsIcon = ({ active }) => active ? /* @__PURE__ */ jsxs43(Icon29 var expanded_results_icon_default = ExpandedResultsIcon; // src/components/search-card/index.tsx -import { jsx as jsx56, jsxs as jsxs44 } from "react/jsx-runtime"; +import { jsx as jsx71, jsxs as jsxs56 } from "react/jsx-runtime"; var SearchCard = ({ - Icon: Icon68, - title: title5, + Icon: Icon82, + title: title9, method, breadcrumbs, actionType, @@ -11234,104 +15353,257 @@ var SearchCard = ({ hit }) => { 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_default20.containerActive(method), children: [ - /* @__PURE__ */ jsxs44(Box20, { children: [ - /* @__PURE__ */ jsxs44(Text13, { className: "searchCardTitle", sx: styles_default20.title, children: [ - Icon68 && /* @__PURE__ */ jsx56(Icon68, { sx: styles_default20.icon }), - method ? /* @__PURE__ */ jsx56( - method_category_default, + const [toggleChildResults, setToggleChildResults] = useState22(false); + const [copied, setCopied] = useState22(false); + const { locale } = useContext21(LibraryContext); + const router = useRouter9(); + const query = String(router.query.keyword ?? ""); + const DocIcon = Icon82 || paper_icon_default; + const displayTitle = title9 === "overview" && hit.doccategory ? `${hit.doccategory} ${title9}` : title9; + const crumbs = (breadcrumbs || []).filter( + (crumb2) => Boolean(crumb2) + ); + useEffect19(() => { + if (!copied) + return; + const timeout = window.setTimeout(() => setCopied(false), 2e3); + return () => window.clearTimeout(timeout); + }, [copied]); + const handleCopy = async (event) => { + event.preventDefault(); + event.stopPropagation(); + try { + await navigator.clipboard.writeText(`${window.location.origin}${url}`); + setCopied(true); + } catch { + setCopied(false); + } + }; + const handleOpenNewTab = (event) => { + event.preventDefault(); + event.stopPropagation(); + window.open(url, "_blank", "noopener,noreferrer"); + }; + return /* @__PURE__ */ jsxs56(Flex24, { sx: styles_default27.containerActive, children: [ + /* @__PURE__ */ jsx71(Link9, { href: url, legacyBehavior: true, children: /* @__PURE__ */ jsx71("a", { children: /* @__PURE__ */ jsxs56(Flex24, { sx: styles_default27.cardBody, children: [ + /* @__PURE__ */ jsx71(Box28, { className: "search-card-icon-wrap", sx: styles_default27.iconWrap, children: /* @__PURE__ */ jsx71(DocIcon, { className: "search-card-icon", sx: styles_default27.icon }) }), + /* @__PURE__ */ jsxs56(Box28, { sx: styles_default27.cardText, children: [ + /* @__PURE__ */ jsxs56(Text19, { className: "searchCardTitle", sx: styles_default27.title, children: [ + method ? /* @__PURE__ */ jsx71( + method_category_default, + { + sx: styles_default27.httpMethod, + origin: "search", + method, + active: false + } + ) : null, + /* @__PURE__ */ jsx71(Text19, { as: "span", sx: styles_default27.titleText, children: /* @__PURE__ */ jsx71(HighlightQuery, { text: displayTitle, query }) }) + ] }), + /* @__PURE__ */ jsxs56(Text19, { className: "searchCardDescription", sx: styles_default27.description, children: [ + /* @__PURE__ */ jsx71( + customHighlight_default, + { + hit, + attribute: "content", + ...{ searchPage: true } + } + ), + toggleChildResults && hit.filteredMatches?.map((childHit, index) => /* @__PURE__ */ jsx71( + Box28, + { + sx: styles_default27.descriptionExpandedItem, + children: /* @__PURE__ */ jsx71( + customHighlight_default, + { + hit: childHit, + attribute: "content", + ...{ searchPage: true } + } + ) + }, + `search-card-${hit.objectID}-${index}` + )) + ] }), + crumbs.length > 0 ? /* @__PURE__ */ jsxs56(Box28, { sx: styles_default27.breadcrumbsContainer, children: [ + /* @__PURE__ */ jsx71(Text19, { sx: styles_default27.breadcrumbsIn, children: messages[locale]["search_card.in"] || "In" }), + crumbs.map((breadcrumb3, index) => /* @__PURE__ */ jsxs56( + Flex24, + { + sx: index === 0 ? styles_default27.documentation : styles_default27.alignCenter, + children: [ + /* @__PURE__ */ jsx71(Tooltip2, { label: breadcrumb3, placement: "top", children: /* @__PURE__ */ jsx71(Text19, { sx: styles_default27.breadcrumb, children: breadcrumb3 }) }), + index < crumbs.length - 1 ? /* @__PURE__ */ jsx71( + IconCaret6, + { + direction: "right", + sx: styles_default27.breadcrumbsArrow + } + ) : null + ] + }, + `${breadcrumb3}${index}` + )) + ] }) : null, + actionValue ? /* @__PURE__ */ jsxs56(Flex24, { sx: styles_default27.actionContainer, children: [ + /* @__PURE__ */ jsx71(actionValue.Icon, { sx: styles_default27.actionIcon }), + " ", + /* @__PURE__ */ jsx71(Text19, { children: actionValue?.title }) + ] }) : null + ] }) + ] }) }) }), + /* @__PURE__ */ jsxs56(Flex24, { sx: styles_default27.cardToolbar, children: [ + /* @__PURE__ */ jsxs56(Flex24, { className: "search-card-actions", sx: styles_default27.cardActions, children: [ + /* @__PURE__ */ jsx71( + Box28, { - sx: styles_default20.httpMethod, - origin: "search", - method, - active: false + as: "button", + type: "button", + sx: copied ? styles_default27.actionButtonCopied : styles_default27.actionButton, + "aria-label": copied ? messages[locale]["search_input.copied"] || "Copied" : messages[locale]["search_input.copy_link"] || "Copy link", + title: copied ? messages[locale]["search_input.copied"] || "Copied" : messages[locale]["search_input.copy_link"] || "Copy link", + onClick: handleCopy, + onMouseDown: (event) => event.preventDefault(), + children: /* @__PURE__ */ jsx71(copy_icon_default, { size: 14 }) } - ) : null, - title5 === "overview" && `${hit.doccategory} `, - title5 - ] }), - /* @__PURE__ */ jsxs44(Text13, { className: "searchCardDescription", sx: styles_default20.description, children: [ - /* @__PURE__ */ jsx56(Flex18, { children: /* @__PURE__ */ jsx56( - customHighlight_default, + ), + /* @__PURE__ */ jsx71( + Box28, { - hit, - attribute: "content", - ...{ searchPage: true } + as: "button", + type: "button", + sx: styles_default27.actionButton, + "aria-label": messages[locale]["search_input.open_new_tab"] || "Open in new tab", + title: messages[locale]["search_input.open_new_tab"] || "Open in new tab", + onClick: handleOpenNewTab, + onMouseDown: (event) => event.preventDefault(), + children: /* @__PURE__ */ jsx71(external_link_icon_default, { size: 14 }) } - ) }), - toggleChildResults && hit.filteredMatches?.map((childHit, index) => /* @__PURE__ */ jsx56( - Box20, - { - sx: styles_default20.descriptionExpandedItem, - children: /* @__PURE__ */ jsx56( - customHighlight_default, - { - hit: childHit, - attribute: "content", - ...{ searchPage: true } - } - ) - }, - `search-card-${hit.objectID}-${index}` - )) + ) ] }), - 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_default20.documentation : styles_default20.alignCenter, - children: [ - /* @__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 - ] + hit.filteredMatches && hit.filteredMatches.length > 0 && /* @__PURE__ */ jsx71( + Box28, + { + sx: styles_default27.descriptionToggle, + onClick: (event) => { + setToggleChildResults(!toggleChildResults); + event.stopPropagation(); }, - `${breadcrumb2}${index}` - )) - ] }) : null, - actionValue ? /* @__PURE__ */ jsxs44(Flex18, { sx: styles_default20.actionContainer, children: [ - /* @__PURE__ */ jsx56(actionValue.Icon, { sx: styles_default20.actionIcon }), - " ", - /* @__PURE__ */ jsx56(Text13, { children: actionValue?.title }) - ] }) : null - ] }), - hit.filteredMatches && hit.filteredMatches.length > 0 && /* @__PURE__ */ jsx56( - Box20, - { - sx: styles_default20.descriptionToggle, - onClick: (event) => { - setToggleChildResults(!toggleChildResults); - event.stopPropagation(); - }, - children: /* @__PURE__ */ jsx56(expanded_results_icon_default, { active: toggleChildResults }) - } - ) - ] }) }); + children: /* @__PURE__ */ jsx71(expanded_results_icon_default, { active: toggleChildResults }) + } + ) + ] }) + ] }); }; var search_card_default = SearchCard; // src/components/search-results/infiniteHits.tsx -import { Box as Box21, Flex as Flex19 } from "@vtex/brand-ui"; -import { jsx as jsx57, jsxs as jsxs45 } from "react/jsx-runtime"; +import { Box as Box29, Flex as Flex25, Text as Text20 } from "@vtex/brand-ui"; + +// src/components/search-results/styles.ts +var resultContainer = { + width: ["100%", "100%", "544px", "544px", "720px", "720px", "1400px"], + maxWidth: "100%", + boxSizing: "border-box", + px: ["16px", "24px", 0, 0, 0, 0, 0], + paddingTop: ["12px", "16px", "24px", "32px"], + paddingBottom: ["24px", "24px", "24px", "32px"], + overflowX: "hidden", + hr: { + marginTop: "16px", + borderTop: "none", + borderColor: "#DDDDDD", + display: ["none", "none", "none", "block"] + } +}; +var resultText = { + mb: ["12px", "12px", "16px"], + fontSize: ["13px", "14px", "16px"], + lineHeight: ["18px", "20px", "22px"], + color: "muted.0", + display: "block" +}; +var resultCount = { + fontWeight: "600", + color: "#142032" +}; +var resultKeyword = { + fontWeight: "600", + color: "#142032", + background: "#F8E3EC", + borderRadius: "4px", + px: "6px", + py: "1px", + wordBreak: "break-word" +}; +var paginationContainer = { + mt: ["48px", "115px"], + mb: "34px", + justifyContent: "center" +}; +var paginationLink = { + fontSize: "16px", + lineHeight: "20px", + color: "#EE2565", + cursor: "pointer" +}; +var paginationLinkDisabled = { + ...paginationLink, + color: "muted.1" +}; +var paginationNumber = { + display: "flex", + fontSize: ["14px", "16px"], + lineHeight: "20px", + color: "#4A596B", + mx: ["18px", "27px"] +}; +var paginationActualNumber = { + fontWeight: "700", + mx: "4px" +}; +var noResults2 = { + justifyContent: "center", + alignContent: "center", + padding: ["24px 8px", "12px"], + textAlign: "center" +}; +var hitListItem = { + width: "100%", + minWidth: 0 +}; +var styles_default28 = { + resultContainer, + resultText, + resultCount, + resultKeyword, + paginationContainer, + paginationLink, + paginationLinkDisabled, + paginationNumber, + paginationActualNumber, + noResults: noResults2, + hitListItem +}; + +// src/components/search-results/infiniteHits.tsx +import { jsx as jsx72, jsxs as jsxs57 } from "react/jsx-runtime"; var HitCard = ({ hit }) => { - const { sidebarSections } = useContext15(LibraryContext); - const breadcrumbTitle = getTitleById(sidebarSections, hit.doctype); - const breadcrumbs = [ - breadcrumbTitle, - ...hit.doccategory ? [hit.doccategory] : [], - , - hit.doctitle - ]; + const { sidebarSections, sidebarDataMaster, locale } = useContext22(LibraryContext); + const breadcrumbs = getSearchBreadcrumbs({ + hit, + navigation: sidebarDataMaster, + sections: sidebarSections, + locale + }); const DocIcon = getIconFromSection(sidebarSections, hit.doctype); - return /* @__PURE__ */ jsx57( + return /* @__PURE__ */ jsx72( search_card_default, { doc: hit.doctype, Icon: DocIcon, title: hit.doctitle, - method: hit.method || void 0, + method: getSearchHitMethod(hit), breadcrumbs: breadcrumbs || [], actionType: hit.actiontype || void 0, url: getRelativeURL(hit.url), @@ -11341,43 +15613,51 @@ var HitCard = ({ hit }) => { }; var StateResults = connectStateResults2( ({ searchResults }) => { - const { updateOcurrenceCount } = useContext15(SearchContext); - useEffect12(() => { + const { updateOcurrenceCount } = useContext22(SearchContext); + useEffect20(() => { if (!searchResults) return; const results = searchResults; - const stateFilters = typeof results?._state.filters === "string" ? results._state.filters : ""; - const positiveFilters = stateFilters.replace(/NOT doctype:"[^"]*"/g, ""); - const isFilteringByDoctype = positiveFilters.includes('doctype:"'); - const facets = results?.facets; - const doctypeFacet = facets?.find((facet) => facet.name === "doctype"); - const nbHits = results?.nbHits ?? 0; + const isFilteringByDoctype = typeof results?._state.filters === "string" && results._state.filters.includes("doctype:"); const formattedFacets = {}; - if (doctypeFacet?.data) { - Object.entries(doctypeFacet.data).forEach(([key, value]) => { + const rawFacets = results?.facets; + if (Array.isArray(rawFacets)) { + const doctypeFacet = rawFacets.find( + (facet) => facet.name === "doctype" + ); + if (doctypeFacet?.data) { + Object.entries(doctypeFacet.data).forEach(([key, value]) => { + if (typeof value === "number") { + formattedFacets[key] = value; + } + }); + } + } else if (rawFacets?.doctype && typeof rawFacets.doctype === "object") { + Object.entries(rawFacets.doctype).forEach(([key, value]) => { if (typeof value === "number") { formattedFacets[key] = value; } }); } - formattedFacets[""] = nbHits; + const hybridAllCount = results?._hybridAllCount; + const hybridCountsAttempted = results?._hybridCountsAttempted === true; + if (typeof hybridAllCount === "number") { + formattedFacets[""] = hybridAllCount; + } else if (!isFilteringByDoctype && !hybridCountsAttempted) { + formattedFacets[""] = results?.nbHits ?? 0; + } if (!isFilteringByDoctype) { updateOcurrenceCount(formattedFacets); } }, [searchResults?.queryID]); return null; } + // eslint-disable-next-line @typescript-eslint/no-explicit-any ); var InfiniteHits = ({ hits, hasMore, refineNext }) => { - const scrollRef = useRef10(null); - function onSentinelIntersection(entries) { - entries.forEach((entry) => { - if (entry.isIntersecting && hasMore) { - refineNext(); - } - }); - } - const filteredResult = useMemo2(() => { + const scrollRef = useRef12(null); + const { locale } = useContext22(LibraryContext); + const filteredResult = useMemo4(() => { const mergeHits = []; hits.forEach((hit) => { const alreadyExists = mergeHits.findIndex( @@ -11391,108 +15671,77 @@ var InfiniteHits = ({ hits, hasMore, refineNext }) => { }); return mergeHits; }, [hits]); - useEffect12(() => { - const observer = new IntersectionObserver(onSentinelIntersection, {}); - if (scrollRef.current) - observer.observe(scrollRef.current); + useEffect20(() => { + const observer = new IntersectionObserver((entries) => { + entries.forEach((entry) => { + if (entry.isIntersecting && hasMore) { + refineNext(); + } + }); + }); + const sentinel = scrollRef.current; + if (sentinel) + observer.observe(sentinel); return () => { observer.disconnect(); }; - }, [hits]); - return /* @__PURE__ */ jsxs45(Box21, { children: [ - /* @__PURE__ */ jsx57(StateResults, {}), - filteredResult.map((hit, index) => /* @__PURE__ */ jsx57(Flex19, { children: /* @__PURE__ */ jsx57(HitCard, { hit }, index) }, hit.objectID)), - /* @__PURE__ */ jsx57("span", { ref: scrollRef }) + }, [hasMore, refineNext]); + return /* @__PURE__ */ jsxs57(Box29, { children: [ + /* @__PURE__ */ jsx72(StateResults, {}), + filteredResult.length === 0 && /* @__PURE__ */ jsx72(Flex25, { sx: styles_default28.noResults, children: /* @__PURE__ */ jsx72(Text20, { children: messages[locale]["search_input.empty"] || "No results found. Try different search terms." }) }), + filteredResult.map((hit, index) => /* @__PURE__ */ jsx72(Flex25, { sx: styles_default28.hitListItem, children: /* @__PURE__ */ jsx72(HitCard, { hit }, index) }, hit.objectID)), + /* @__PURE__ */ jsx72("span", { ref: scrollRef }) ] }); }; var infiniteHits_default = connectInfiniteHits(InfiniteHits); -// src/components/search-results/styles.ts -var resultContainer = { - width: ["80%", "544px", "544px", "544px", "720px", "720px", "1400px"], - paddingTop: ["32px", "32px", "32px", "64px"], - hr: { - marginTop: "16px", - marginBottom: "32px", - borderTop: "none", - borderColor: "#DDDDDD", - display: ["none", "none", "none", "block"] - } -}; -var resultText = { - mb: "16px", - fontSize: "16px", - lineHeight: "22px", - display: ["none", "none", "none", "initial"] -}; -var paginationContainer = { - mt: ["48px", "115px"], - mb: "34px", - justifyContent: "center" -}; -var paginationLink = { - fontSize: "16px", - lineHeight: "20px", - color: "#EE2565", - cursor: "pointer" -}; -var paginationLinkDisabled = { - ...paginationLink, - color: "muted.1" -}; -var paginationNumber = { - display: "flex", - fontSize: ["14px", "16px"], - lineHeight: "20px", - color: "#4A596B", - mx: ["18px", "27px"] -}; -var paginationActualNumber = { - fontWeight: "700", - mx: "4px" -}; -var noResults2 = { - justifyContent: "center", - alignContent: "center", - padding: "12px" -}; -var styles_default21 = { - resultContainer, - resultText, - paginationContainer, - paginationLink, - paginationLinkDisabled, - paginationNumber, - paginationActualNumber, - noResults: noResults2 -}; - // src/components/search-results/index.tsx -import { jsx as jsx58, jsxs as jsxs46 } from "react/jsx-runtime"; +import { jsx as jsx73, jsxs as jsxs58 } from "react/jsx-runtime"; var SearchResults = () => { - const router = useRouter7(); - const { filterSelectedSection, ocurrenceCount } = useContext16(SearchContext); - const { locale, sidebarSections } = useContext16(LibraryContext); + const router = useRouter10(); + const { filterSelectedSection, ocurrenceCount } = useContext23(SearchContext); + const { locale, sidebarSections } = useContext23(LibraryContext); const excludedDoctypesFilter = sidebarSections.flat().filter((section) => section.excludeFromSearch).map((section) => `NOT doctype:"${section.id}"`).join(" AND "); const filters = [ `language:${locale}`, filterSelectedSection ? `doctype:"${filterSelectedSection}"` : "", excludedDoctypesFilter ].filter(Boolean).join(" AND "); - const [prevFilter, setPrevFilter] = useState14(""); - const [searchState, setSearchState] = useState14({}); + const keyword = String(router.query.keyword ?? ""); + const [prevFilter, setPrevFilter] = useState23(""); + const [prevKeyword, setPrevKeyword] = useState23(keyword); + const [searchState, setSearchState] = useState23({}); + useEffect21(() => { + if (!keyword || keyword === prevKeyword) + return; + setPrevKeyword(keyword); + setSearchState((currentState) => ({ + ...currentState, + page: 1 + })); + }, [keyword, prevKeyword]); const updateSearchState = (currentState) => { - const page = filters !== prevFilter ? 1 : currentState.page || 1; + const keywordChanged = keyword !== prevKeyword; + const filterChanged = filters !== prevFilter; + const page = keywordChanged || filterChanged ? 1 : currentState.page || 1; + if (keywordChanged) + setPrevKeyword(keyword); setPrevFilter(filters); setSearchState({ ...currentState, page }); }; - return /* @__PURE__ */ jsxs46(Box22, { sx: styles_default21.resultContainer, children: [ - /* @__PURE__ */ jsx58(Text14, { sx: styles_default21.resultText, children: `${messages[locale]["search_results.showing"] || "Showing"} ${ocurrenceCount[filterSelectedSection] === void 0 ? "" : 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( + return /* @__PURE__ */ jsxs58(Box30, { sx: styles_default28.resultContainer, children: [ + /* @__PURE__ */ jsxs58(Text21, { sx: styles_default28.resultText, children: [ + `${messages[locale]["search_results.showing"] || "Showing"} `, + /* @__PURE__ */ jsx73(Text21, { as: "span", sx: styles_default28.resultCount, children: formatSearchTabCount(ocurrenceCount[filterSelectedSection]) ?? "" }), + ` ${messages[locale]["search_results.results_for"] || "results for"} `, + /* @__PURE__ */ jsx73(Text21, { as: "span", sx: styles_default28.resultKeyword, children: `\u201C${router.query.keyword}\u201D` }), + ` ${messages[locale]["search_results.in"] || "in"} ${!filterSelectedSection ? messages[locale]["search_results.all_lowercase"] || "all results" : filterSelectedSection}` + ] }), + /* @__PURE__ */ jsx73("hr", {}), + /* @__PURE__ */ jsx73(Box30, { children: /* @__PURE__ */ jsxs58( InstantSearch2, { searchClient, @@ -11500,18 +15749,18 @@ var SearchResults = () => { searchState, onSearchStateChange: (currentState) => updateSearchState(currentState), children: [ - /* @__PURE__ */ jsx58( + /* @__PURE__ */ jsx73( Configure2, { filters, query: router.query.keyword, clickAnalytics: true, - hitsPerPage, + hitsPerPage: SEARCH_RESULTS_HITS_PER_PAGE, facets: ["doctype", "language"], facetingAfterDistinct: true } ), - /* @__PURE__ */ jsx58(infiniteHits_default, {}) + /* @__PURE__ */ jsx73(infiniteHits_default, {}, keyword) ] } ) }) @@ -11520,117 +15769,168 @@ var SearchResults = () => { var search_results_default = SearchResults; // src/components/search-filter-tab-bar/index.tsx -import { useContext as useContext17 } from "react"; -import { Flex as Flex20, Text as Text15 } from "@vtex/brand-ui"; +import { useContext as useContext24, useEffect as useEffect22 } from "react"; +import { Flex as Flex26, Text as Text22 } from "@vtex/brand-ui"; // src/components/search-filter-tab-bar/styles.ts -var container9 = { +var container13 = { display: ["flex", "flex", "flex", "none"], - overflowX: "scroll", - scrollbarWidth: "none", - "::-webkit-scrollbar": { - display: "none" - } + flexWrap: "wrap", + alignItems: "center", + gap: "8px", + px: ["16px", "24px"], + pt: ["12px", "16px"], + pb: ["4px", "8px"] }; var tab = (active) => ({ - pt: "8px", - pb: "14px", - px: "24px", - cursor: "pointer", - justifyContent: "center", + display: "inline-flex", alignItems: "center", - borderBottom: `${active ? 2 : 1}px solid #${active ? "D71D55" : "DDDDDD"}`, - minWidth: "max-content" + gap: "6px", + height: "32px", + minHeight: "32px", + px: "12px", + py: 0, + borderRadius: "16px", + border: `1px solid ${active ? "#F8E3EC" : "#E7E9EE"}`, + backgroundColor: active ? "#F8E3EC" : "#FFFFFF", + cursor: "pointer", + minWidth: "max-content", + ":hover": { + borderColor: active ? "#F8E3EC" : "#D8D8E3", + backgroundColor: active ? "#F8E3EC" : "#F8F7FC" + } +}); +var tabIcon = (active) => ({ + width: "14px", + height: "14px", + minWidth: "14px", + minHeight: "14px", + color: active ? "#D71D55" : "#4A596B", + flexShrink: 0 }); var tabTitle = (active) => ({ - fontSize: "14px", - fontWeight: "600", - lineHeight: "16.38px", + fontSize: "13px", + fontWeight: active ? "600" : "500", + lineHeight: "16px", whiteSpace: "nowrap", - color: `#${active ? "D71D55" : "545454"}` + color: active ? "#D71D55" : "#4A596B" }); -var tabCount = { - px: "8px", - ml: "2px", - fontSize: "12px", - fontWeight: "400", +var tabCount = (active) => ({ + px: "6px", + fontSize: "11px", + fontWeight: "500", lineHeight: "16px", borderRadius: "24px", - backgroundColor: "#F8F7FC" -}; -var styles_default22 = { container: container9, tab, tabTitle, tabCount }; + backgroundColor: active ? "#FFFFFF" : "#EDEAF6", + color: active ? "#D71D55" : "#4A596B" +}); +var styles_default29 = { container: container13, tab, tabIcon, tabTitle, tabCount }; // src/components/search-filter-tab-bar/index.tsx -import { jsx as jsx59, jsxs as jsxs47 } from "react/jsx-runtime"; -var SearchFilterTab = ({ filter }) => { - const { filterSelectedSection, changeFilterSelectedSection, ocurrenceCount } = useContext17(SearchContext); - const { locale } = useContext17(LibraryContext); - return /* @__PURE__ */ jsxs47( - Flex20, +import { jsx as jsx74, jsxs as jsxs59 } from "react/jsx-runtime"; +var hasFilterResults = (ocurrenceCount, filter) => { + const count2 = ocurrenceCount[filter]; + return typeof count2 === "number" && count2 > 0; +}; +var SearchFilterTab = ({ + filter, + label: label4, + Icon: Icon82 +}) => { + const { filterSelectedSection, changeFilterSelectedSection, ocurrenceCount } = useContext24(SearchContext); + const { locale } = useContext24(LibraryContext); + const count2 = ocurrenceCount[filter]; + const formattedCount = formatSearchTabCount(count2); + const isActive = filterSelectedSection === filter; + return /* @__PURE__ */ jsxs59( + Flex26, { - sx: styles_default22.tab(filterSelectedSection === filter), + sx: styles_default29.tab(isActive), onClick: () => changeFilterSelectedSection(filter), "data-testid": "doctype-filter-tab", "data-filter": filter, - "data-active": String(filterSelectedSection === filter), + "data-active": String(isActive), children: [ - /* @__PURE__ */ jsx59( - Text15, + Icon82 ? /* @__PURE__ */ jsx74(Icon82, { sx: styles_default29.tabIcon(isActive) }) : null, + /* @__PURE__ */ jsx74( + Text22, { - sx: styles_default22.tabTitle(filterSelectedSection === filter), + sx: styles_default29.tabTitle(isActive), "data-testid": "doctype-filter-tab-title", - children: filter || messages[locale]["search_results.all"] || "All results" + children: filter === "" ? messages[locale]["search_results.all"] || "All results" : label4 || filter } ), - /* @__PURE__ */ jsx59(Text15, { sx: styles_default22.tabCount, "data-testid": "doctype-filter-tab-count", children: ocurrenceCount[filter] || 0 }) + formattedCount !== void 0 && /* @__PURE__ */ jsx74( + Text22, + { + sx: styles_default29.tabCount(isActive), + "data-testid": "doctype-filter-tab-count", + children: formattedCount + } + ) ] } ); }; var SearchFilterTabBar = () => { - const { sidebarSections } = useContext17(LibraryContext); - return /* @__PURE__ */ jsxs47(Flex20, { sx: styles_default22.container, "data-testid": "doctype-filter-tab-bar", children: [ - /* @__PURE__ */ jsx59(SearchFilterTab, { filter: "" }), - sidebarSections.flat().filter((section) => !section.excludeFromSearch).map((section) => { - return /* @__PURE__ */ jsx59(SearchFilterTab, { filter: section.id }, section.id); - }) + const { sidebarSections, sidebarDataMaster, locale } = useContext24(LibraryContext); + const { ocurrenceCount, filterSelectedSection, changeFilterSelectedSection } = useContext24(SearchContext); + const countsLoaded = Object.keys(ocurrenceCount).length > 0; + const visibleSections = sidebarSections.flat().filter((section) => !section.isExternalLink && !section.excludeFromSearch).filter( + (section) => !countsLoaded || hasFilterResults(ocurrenceCount, section.id) + ); + useEffect22(() => { + if (!countsLoaded || !filterSelectedSection) + return; + if (!hasFilterResults(ocurrenceCount, filterSelectedSection)) { + changeFilterSelectedSection(""); + } + }, [ + countsLoaded, + filterSelectedSection, + ocurrenceCount, + changeFilterSelectedSection + ]); + return /* @__PURE__ */ jsxs59(Flex26, { sx: styles_default29.container, "data-testid": "doctype-filter-tab-bar", children: [ + /* @__PURE__ */ jsx74(SearchFilterTab, { filter: "" }), + visibleSections.map((section) => /* @__PURE__ */ jsx74( + SearchFilterTab, + { + filter: section.id, + label: getSectionLabel(section, sidebarDataMaster, locale), + Icon: section.Icon + }, + section.id + )) ] }); }; var search_filter_tab_bar_default = SearchFilterTabBar; // src/lib/search/styles.ts -var searchBarContainer = { - display: ["flex", "flex", "flex", "none"], - justifyContent: "center", - py: "16px" -}; -var body = { +var body2 = { background: "#FFFFFF", - justifyContent: "center" + justifyContent: "center", + px: [0, 0, 0, "16px"] }; -var styles_default23 = { - searchBarContainer, - body +var styles_default30 = { + body: body2 }; // src/lib/search/index.tsx -import { jsx as jsx60, jsxs as jsxs48 } from "react/jsx-runtime"; +import { jsx as jsx75, jsxs as jsxs60 } from "react/jsx-runtime"; var Search = () => { - return /* @__PURE__ */ jsxs48(search_default, { children: [ - /* @__PURE__ */ jsxs48(Box23, { children: [ - /* @__PURE__ */ jsx60(Flex21, { sx: styles_default23.searchBarContainer, children: /* @__PURE__ */ jsx60(SearchInput, {}) }), - /* @__PURE__ */ jsx60(search_filter_tab_bar_default, {}) - ] }), - /* @__PURE__ */ jsxs48(Flex21, { sx: styles_default23.body, children: [ - /* @__PURE__ */ jsx60(search_sections_default, {}), - /* @__PURE__ */ jsx60(search_results_default, {}) + return /* @__PURE__ */ jsxs60(search_default, { children: [ + /* @__PURE__ */ jsx75(search_filter_tab_bar_default, {}), + /* @__PURE__ */ jsxs60(Flex27, { sx: styles_default30.body, children: [ + /* @__PURE__ */ jsx75(search_sections_default, {}), + /* @__PURE__ */ jsx75(search_results_default, {}) ] }) ] }); }; var search_default2 = Search; // src/lib/cookie-bar/index.tsx -import { useContext as useContext18 } from "react"; +import { useContext as useContext25 } from "react"; import { CookieConsent } from "react-cookie-consent"; // src/lib/cookie-bar/styles.ts @@ -11653,14 +15953,14 @@ var barContent = { flexDirection: "column", maxWidth: "100%" }; -var title4 = { +var title6 = { color: "#5E6E84", marginBottom: "10px", lineHeight: "28px", fontSize: "25px", fontWeight: "400" }; -var buttonContainer = { +var buttonContainer2 = { display: "flex", flexWrap: "wrap", gap: "10px", @@ -11691,31 +15991,31 @@ var declineButton = { opacity: "0.7" } }; -var styles_default24 = { +var styles_default31 = { bar, barContent, - title: title4, + title: title6, acceptButton, declineButton, - buttonContainer + buttonContainer: buttonContainer2 }; // src/lib/cookie-bar/index.tsx -import { Flex as Flex22, Text as Text16 } from "@vtex/brand-ui"; +import { Flex as Flex28, Text as Text23 } from "@vtex/brand-ui"; import aa3 from "search-insights"; -import { jsx as jsx61, jsxs as jsxs49 } from "react/jsx-runtime"; +import { jsx as jsx76, jsxs as jsxs61 } from "react/jsx-runtime"; var Button6 = ({ children, style, ...props }) => { - return /* @__PURE__ */ jsx61(Flex22, { sx: style, ...props, children }); + return /* @__PURE__ */ jsx76(Flex28, { sx: style, ...props, children }); }; var CookieBar = ({ onAccept }) => { - const { locale } = useContext18(LibraryContext); - return /* @__PURE__ */ jsxs49( + const { locale } = useContext25(LibraryContext); + return /* @__PURE__ */ jsxs61( CookieConsent, { enableDeclineButton: true, - buttonStyle: styles_default24.acceptButton, - declineButtonStyle: styles_default24.declineButton, - style: styles_default24.bar, + buttonStyle: styles_default31.acceptButton, + declineButtonStyle: styles_default31.declineButton, + style: styles_default31.bar, onAccept: () => { aa3("init", { partial: true, @@ -11726,11 +16026,11 @@ var CookieBar = ({ onAccept }) => { declineButtonText: messages[locale]["cookie_bar.decline"], buttonText: messages[locale]["cookie_bar.accept"], ButtonComponent: Button6, - customButtonWrapperAttributes: { style: styles_default24.buttonContainer }, - customContentAttributes: { style: styles_default24.barContent }, + customButtonWrapperAttributes: { style: styles_default31.buttonContainer }, + customContentAttributes: { style: styles_default31.barContent }, children: [ - /* @__PURE__ */ jsx61(Text16, { sx: styles_default24.title, children: messages[locale]["cookie_bar.title"] }), - /* @__PURE__ */ jsx61(Text16, { children: messages[locale]["cookie_bar.description"] }) + /* @__PURE__ */ jsx76(Text23, { sx: styles_default31.title, children: messages[locale]["cookie_bar.title"] }), + /* @__PURE__ */ jsx76(Text23, { children: messages[locale]["cookie_bar.description"] }) ] } ); @@ -11739,45 +16039,7 @@ var cookie_bar_default = CookieBar; // src/components/copy-link-button/index.tsx import { Button as Button7 } from "@vtex/brand-ui"; - -// src/components/icons/copy-icon.tsx -import { Icon as Icon30 } from "@vtex/brand-ui"; -import { jsx as jsx62, jsxs as jsxs50 } from "react/jsx-runtime"; -var CopyIcon = (props) => /* @__PURE__ */ jsxs50( - Icon30, - { - ...props, - viewBox: "0 0 15 15", - fill: "none", - xmlns: "http://www.w3.org/2000/svg", - children: [ - /* @__PURE__ */ jsx62( - "path", - { - d: "M12.5 5.625H6.875C6.18464 5.625 5.625 6.18464 5.625 6.875V12.5C5.625 13.1904 6.18464 13.75 6.875 13.75H12.5C13.1904 13.75 13.75 13.1904 13.75 12.5V6.875C13.75 6.18464 13.1904 5.625 12.5 5.625Z", - stroke: "currentcolor", - strokeWidth: "1.5", - strokeLinecap: "round", - strokeLinejoin: "round" - } - ), - /* @__PURE__ */ jsx62( - "path", - { - d: "M3.125 9.375H2.5C2.16848 9.375 1.85054 9.2433 1.61612 9.00888C1.3817 8.77446 1.25 8.45652 1.25 8.125V2.5C1.25 2.16848 1.3817 1.85054 1.61612 1.61612C1.85054 1.3817 2.16848 1.25 2.5 1.25H8.125C8.45652 1.25 8.77446 1.3817 9.00888 1.61612C9.2433 1.85054 9.375 2.16848 9.375 2.5V3.125", - stroke: "currentcolor", - strokeWidth: "1.5", - strokeLinecap: "round", - strokeLinejoin: "round" - } - ) - ] - } -); -var copy_icon_default = CopyIcon; - -// src/components/copy-link-button/index.tsx -import { useState as useState15 } from "react"; +import { useState as useState24 } from "react"; // src/components/copy-link-button/styles.ts var copyIcon = { @@ -11797,15 +16059,15 @@ var copyLinkButton = { backgroundColor: "#EFEFEF" } }; -var styles_default25 = { +var styles_default32 = { copyIcon, copyLinkButton }; // src/components/copy-link-button/index.tsx -import { jsx as jsx63 } from "react/jsx-runtime"; +import { jsx as jsx77 } from "react/jsx-runtime"; var CopyLinkButton = () => { - const [tooltipText, setTooltipText] = useState15("Copy"); + const [tooltipText, setTooltipText] = useState24("Copy"); const handleCopy = () => { navigator.clipboard.writeText(window.location.href); setTooltipText("Copy"); @@ -11813,207 +16075,597 @@ var CopyLinkButton = () => { setTooltipText("Copied!"); }, 2e3); }; - 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 }) }) }); + return /* @__PURE__ */ jsx77(tooltip_default, { label: tooltipText, placement: "bottom", children: /* @__PURE__ */ jsx77(Button7, { onClick: handleCopy, sx: styles_default32.copyLinkButton, children: /* @__PURE__ */ jsx77(copy_icon_default, { sx: styles_default32.copyIcon, size: 16 }) }) }); }; var copy_link_button_default = CopyLinkButton; -// src/components/input/index.tsx -import { useState as useState16, useEffect as useEffect13 } from "react"; +// src/components/copy-button/index.tsx +import { useCallback as useCallback3, useState as useState25, useRef as useRef13, useEffect as useEffect23 } from "react"; +import copy2 from "copy-text-to-clipboard"; +import { Box as Box31, Button as Button8, Icon as Icon37 } from "@vtex/brand-ui"; -// src/components/input/styles.ts -var input = { - background: "none", - border: "#F4F4F4", - color: "#545454", - fontSize: ["14px"], - width: "100%", - transition: "flex 0.3s", - outline: "none" +// src/components/copy-button/styles.ts +var basicButton = { + float: "right", + ":focus": { + outline: "none !important", + boxShadow: "none !important" + }, + width: "28px", + height: "28px", + padding: "6px", + marginX: "18px" }; -var icon3 = { - minWidth: "16px", - minHeight: "16px", - width: "16px", - mr: "8px", - flex: 0, - maxWidth: "fit-content" +var copyButton = { + ...basicButton, + backgroundColor: "#E7E9EE" }; -var container10 = { - paddingLeft: "12px", - alignItems: "center", - justifyContent: "center", - background: "#F4F4F4", - width: "100%", - height: "40px", - borderRadius: "4px", - transition: "all 0.3s ease-out", - cursor: "pointer", - border: "1px solid #F4F4F4", - ":hover": { - transition: "all 0.3s ease-out", - border: "1px solid #3B3B3B" - } +var copyButtonCopied = { + ...basicButton, + backgroundColor: "#E6F2E6" }; -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 ?? ""); - useEffect13(() => { - if (inputValue !== value) - setInputValue(value); - }, [value]); - return /* @__PURE__ */ jsxs51(Flex23, { sx: styles_default26.container, children: [ - Icon68 && /* @__PURE__ */ jsx64(Icon68, { sx: styles_default26.icon }), - /* @__PURE__ */ jsx64( - "input", - { - style: styles_default26.input, - value: inputValue, - placeholder, - onChange: (e) => { - setInputValue(e.currentTarget.value); - onChange(e.currentTarget.value); - } - } - ) - ] }); +var copyButtonIcons = { + position: "relative", + width: "16px", + height: "16px" }; -var input_default = Input; - -// src/utils/get-days-elapsed.ts -var getDaysElapsed = (date) => { - const msInDay = 1e3 * 60 * 60 * 24; - const msElapsed = (/* @__PURE__ */ new Date()).getTime() - date.getTime(); - return Math.floor(msElapsed / msInDay); +var copyButtonIcon = { + position: "absolute", + top: "0", + left: "0", + fill: "#142032", + opacity: "inherit", + width: "inherit", + height: "inherit", + transition: "all 0.15s ease" +}; +var copyButtonSuccessIcon = { + ...copyButtonIcon, + top: "50%", + left: "50%", + transform: "translate(-50%, -50%)", + fill: "#79A479" +}; +var copyButtonIconCopied = { + transform: "scale(0.33)", + opacity: "0" +}; +var copyButtonSuccessIconCopied = { + transform: "translate(-50%, -50%)", + opacity: "1", + transitionDelay: "0.075s" +}; +var styles_default33 = { + copyButton, + copyButtonCopied, + copyButtonIcons, + copyButtonIcon, + copyButtonSuccessIcon, + copyButtonSuccessIconCopied, + copyButtonIconCopied }; -// src/components/icons/gear-troubleshooting-icon.tsx -import { Icon as Icon31 } from "@vtex/brand-ui"; -import { jsx as jsx65, jsxs as jsxs52 } from "react/jsx-runtime"; -var GearTroubleshootingIcon = (props) => { - return /* @__PURE__ */ jsxs52( - Icon31, +// src/components/copy-button/index.tsx +import { jsx as jsx78, jsxs as jsxs62 } from "react/jsx-runtime"; +var CopyButton = ({ code, sx }) => { + const [isCopied, setIsCopied] = useState25(false); + const copyTimeout = useRef13(void 0); + const handleCopyCode = useCallback3(() => { + copy2(code); + setIsCopied(true); + copyTimeout.current = window.setTimeout(() => { + setIsCopied(false); + }, 1e3); + }, [code]); + useEffect23(() => () => window.clearTimeout(copyTimeout.current), []); + return /* @__PURE__ */ jsx78( + Button8, { - ...props, - viewBox: "0 0 24 24", - fill: "none", - xmlns: "http://www.w3.org/2000/svg", - children: [ - /* @__PURE__ */ jsx65( - "path", - { - d: "M17.8404 9.42954C18.2229 9.00197 18.9342 8.46816 18.9962 7.87786C19.063 7.2423 17.8607 5.16896 17.2775 4.93176C16.6221 4.66521 15.5159 5.22824 14.8633 5.41204C13.9538 5.62179 12.9047 5.05365 12.5708 4.18302C12.373 3.59238 12.2403 2.55197 11.7172 2.17424C11.1959 1.79774 8.80418 1.79774 8.28284 2.17424C7.75979 2.55197 7.62703 3.59238 7.42927 4.18302C7.09533 5.05365 6.04632 5.62179 5.13676 5.41204C4.48421 5.22824 3.37798 4.66521 2.72262 4.93176C2.13942 5.16896 0.937071 7.2423 1.00384 7.87786C1.0817 8.61902 2.16084 9.43088 2.63551 9.96156C3.17336 10.6425 3.17338 11.819 2.63554 12.4999C2.16086 13.0306 1.0817 13.8425 1.00384 14.5836C0.93707 15.2192 2.13942 17.2925 2.72262 17.5297C3.37797 17.7963 4.48418 17.2332 5.13672 17.0494C6.0463 16.8396 7.0953 17.4078 7.42924 18.2785C7.62701 18.8691 7.75977 19.9096 8.28284 20.2873C8.46309 20.4175 8.68756 20.4504 9.05686 20.4587", - stroke: "currentcolor", - strokeWidth: "2", - strokeLinecap: "round", - strokeLinejoin: "round" - } - ), - /* @__PURE__ */ jsx65( - "path", - { - d: "M12.201 8.86537C9.28547 6.15174 4.92127 10.5159 7.63491 13.4314", - stroke: "currentcolor", - strokeWidth: "2", - strokeLinecap: "round", - strokeLinejoin: "round" - } - ), - /* @__PURE__ */ jsx65( - "path", - { - d: "M20.25 20.2499L22.8462 22.846", - stroke: "currentcolor", - strokeWidth: "1.5", - strokeLinecap: "round", - strokeLinejoin: "round" - } - ), - /* @__PURE__ */ jsx65( - "path", - { - d: "M21.6922 16.4999C21.6922 13.6323 19.3676 11.3076 16.4999 11.3076C13.6323 11.3076 11.3076 13.6323 11.3076 16.4999C11.3076 19.3676 13.6323 21.6922 16.4999 21.6922C19.3676 21.6922 21.6922 19.3676 21.6922 16.4999Z", - stroke: "currentcolor", - strokeWidth: "1.5", - strokeLinejoin: "round" - } - ), - /* @__PURE__ */ jsx65( - "path", + variant: "tertiary", + size: "small", + onClick: handleCopyCode, + sx: { + ...isCopied ? styles_default33.copyButtonCopied : styles_default33.copyButton, + ...sx + }, + "aria-label": "Copy code snippet", + children: /* @__PURE__ */ jsxs62(Box31, { sx: styles_default33.copyButtonIcons, "aria-hidden": "true", children: [ + /* @__PURE__ */ jsx78( + Icon37, { - d: "M16.4089 13.4053V17.0653", - stroke: "currentcolor", - strokeWidth: "1.5", - strokeLinecap: "round" + size: 16, + sx: isCopied ? styles_default33.copyButtonIconCopied : styles_default33.copyButtonIcon, + children: /* @__PURE__ */ jsx78("path", { d: "M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z" }) } ), - /* @__PURE__ */ jsx65( - "path", + /* @__PURE__ */ jsx78( + Icon37, { - d: "M16.4089 19.0988V19.0989", - stroke: "currentcolor", - strokeWidth: "1.5", - strokeLinecap: "round" + size: 16, + sx: isCopied ? styles_default33.copyButtonSuccessIcon : styles_default33.copyButtonSuccessIconCopied, + children: /* @__PURE__ */ jsx78("path", { d: "M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z" }) } ) - ] + ] }) } ); }; -var gear_troubleshooting_icon_default = GearTroubleshootingIcon; +var copy_button_default = CopyButton; -// src/components/icons/documentation-updates-icon.tsx -import { Icon as Icon32 } from "@vtex/brand-ui"; -import { jsx as jsx66, jsxs as jsxs53 } from "react/jsx-runtime"; -var DocumentationUpdatesIcon = (props) => /* @__PURE__ */ jsxs53( - Icon32, +// src/components/ask-ai/index.tsx +import { useContext as useContext26, useEffect as useEffect24, useRef as useRef14, useState as useState26 } from "react"; +import copy3 from "copy-text-to-clipboard"; +import { Box as Box32, Text as Text24, IconCaret as IconCaret7 } from "@vtex/brand-ui"; + +// src/components/icons/chatgpt-icon.tsx +import { Icon as Icon38 } from "@vtex/brand-ui"; +import { jsx as jsx79 } from "react/jsx-runtime"; +var ChatGPTIcon = (props) => /* @__PURE__ */ jsx79( + Icon38, { ...props, - viewBox: "0 0 24 25", - fill: "none", + fill: "currentColor", + "fill-rule": "evenodd", + height: "64", + viewBox: "0 0 24 24", + width: "64", xmlns: "http://www.w3.org/2000/svg", - children: [ - /* @__PURE__ */ jsx66( + children: /* @__PURE__ */ jsx79("path", { d: "M21.55 10.004a5.416 5.416 0 00-.478-4.501c-1.217-2.09-3.662-3.166-6.05-2.66A5.59 5.59 0 0010.831 1C8.39.995 6.224 2.546 5.473 4.838A5.553 5.553 0 001.76 7.496a5.487 5.487 0 00.691 6.5 5.416 5.416 0 00.477 4.502c1.217 2.09 3.662 3.165 6.05 2.66A5.586 5.586 0 0013.168 23c2.443.006 4.61-1.546 5.361-3.84a5.553 5.553 0 003.715-2.66 5.488 5.488 0 00-.693-6.497v.001zm-8.381 11.558a4.199 4.199 0 01-2.675-.954c.034-.018.093-.05.132-.074l4.44-2.53a.71.71 0 00.364-.623v-6.176l1.877 1.069c.02.01.033.029.036.05v5.115c-.003 2.274-1.87 4.118-4.174 4.123zM4.192 17.78a4.059 4.059 0 01-.498-2.763c.032.02.09.055.131.078l4.44 2.53c.225.13.504.13.73 0l5.42-3.088v2.138a.068.068 0 01-.027.057L9.9 19.288c-1.999 1.136-4.552.46-5.707-1.51h-.001zM3.023 8.216A4.15 4.15 0 015.198 6.41l-.002.151v5.06a.711.711 0 00.364.624l5.42 3.087-1.876 1.07a.067.067 0 01-.063.005l-4.489-2.559c-1.995-1.14-2.679-3.658-1.53-5.63h.001zm15.417 3.54l-5.42-3.088L14.896 7.6a.067.067 0 01.063-.006l4.489 2.557c1.998 1.14 2.683 3.662 1.529 5.633a4.163 4.163 0 01-2.174 1.807V12.38a.71.71 0 00-.363-.623zm1.867-2.773a6.04 6.04 0 00-.132-.078l-4.44-2.53a.731.731 0 00-.729 0l-5.42 3.088V7.325a.068.068 0 01.027-.057L14.1 4.713c2-1.137 4.555-.46 5.707 1.513.487.833.664 1.809.499 2.757h.001zm-11.741 3.81l-1.877-1.068a.065.065 0 01-.036-.051V6.559c.001-2.277 1.873-4.122 4.181-4.12.976 0 1.92.338 2.671.954-.034.018-.092.05-.131.073l-4.44 2.53a.71.71 0 00-.365.623l-.003 6.173v.002zm1.02-2.168L12 9.25l2.414 1.375v2.75L12 14.75l-2.415-1.375v-2.75z" }) + } +); +var chatgpt_icon_default = ChatGPTIcon; + +// src/components/icons/copilot-icon.tsx +import { Icon as Icon39 } from "@vtex/brand-ui"; +import { jsx as jsx80 } from "react/jsx-runtime"; +var CopilotIcon = (props) => /* @__PURE__ */ jsx80( + Icon39, + { + ...props, + fill: "currentColor", + "fill-rule": "evenodd", + height: "64", + viewBox: "0 0 24 24", + width: "64", + xmlns: "http://www.w3.org/2000/svg", + children: /* @__PURE__ */ jsx80("path", { d: "M9 23l.073-.001a2.53 2.53 0 01-2.347-1.838l-.697-2.433a2.529 2.529 0 00-2.426-1.839h-.497l-.104-.002c-4.485 0-2.935-5.278-1.75-9.225l.162-.525C2.412 3.99 3.883 1 6.25 1h8.86c1.12 0 2.106.745 2.422 1.829l.715 2.453a2.53 2.53 0 002.247 1.823l.147.005.534.001c3.557.115 3.088 3.745 2.156 7.206l-.113.413c-.154.548-.315 1.089-.47 1.607l-.163.525C21.588 20.01 20.116 23 17.75 23h-8.75zm8.22-15.89l-3.856.001a2.526 2.526 0 00-2.35 1.615L9.21 15.04a2.529 2.529 0 01-2.43 1.847l3.853.002c1.056 0 1.992-.661 2.361-1.644l1.796-6.287a2.529 2.529 0 012.43-1.848z" }) + } +); +var copilot_icon_default = CopilotIcon; + +// src/components/icons/claude-icon.tsx +import { Icon as Icon40 } from "@vtex/brand-ui"; +import { jsx as jsx81, jsxs as jsxs63 } from "react/jsx-runtime"; +var ClaudeIcon = (props) => /* @__PURE__ */ jsxs63( + Icon40, + { + ...props, + fill: "currentColor", + "fill-rule": "evenodd", + height: "64", + viewBox: "0 0 24 24", + width: "64", + xmlns: "http://www.w3.org/2000/svg", + children: [ + /* @__PURE__ */ jsx81("title", { children: "Claude" }), + /* @__PURE__ */ jsx81("path", { d: "M4.709 15.955l4.72-2.647.08-.23-.08-.128H9.2l-.79-.048-2.698-.073-2.339-.097-2.266-.122-.571-.121L0 11.784l.055-.352.48-.321.686.06 1.52.103 2.278.158 1.652.097 2.449.255h.389l.055-.157-.134-.098-.103-.097-2.358-1.596-2.552-1.688-1.336-.972-.724-.491-.364-.462-.158-1.008.656-.722.881.06.225.061.893.686 1.908 1.476 2.491 1.833.365.304.145-.103.019-.073-.164-.274-1.355-2.446-1.446-2.49-.644-1.032-.17-.619a2.97 2.97 0 01-.104-.729L6.283.134 6.696 0l.996.134.42.364.62 1.414 1.002 2.229 1.555 3.03.456.898.243.832.091.255h.158V9.01l.128-1.706.237-2.095.23-2.695.08-.76.376-.91.747-.492.584.28.48.685-.067.444-.286 1.851-.559 2.903-.364 1.942h.212l.243-.242.985-1.306 1.652-2.064.73-.82.85-.904.547-.431h1.033l.76 1.129-.34 1.166-1.064 1.347-.881 1.142-1.264 1.7-.79 1.36.073.11.188-.02 2.856-.606 1.543-.28 1.841-.315.833.388.091.395-.328.807-1.969.486-2.309.462-3.439.813-.042.03.049.061 1.549.146.662.036h1.622l3.02.225.79.522.474.638-.079.485-1.215.62-1.64-.389-3.829-.91-1.312-.329h-.182v.11l1.093 1.068 2.006 1.81 2.509 2.33.127.578-.322.455-.34-.049-2.205-1.657-.851-.747-1.926-1.62h-.128v.17l.444.649 2.345 3.521.122 1.08-.17.353-.608.213-.668-.122-1.374-1.925-1.415-2.167-1.143-1.943-.14.08-.674 7.254-.316.37-.729.28-.607-.461-.322-.747.322-1.476.389-1.924.315-1.53.286-1.9.17-.632-.012-.042-.14.018-1.434 1.967-2.18 2.945-1.726 1.845-.414.164-.717-.37.067-.662.401-.589 2.388-3.036 1.44-1.882.93-1.086-.006-.158h-.055L4.132 18.56l-1.13.146-.487-.456.061-.746.231-.243 1.908-1.312-.006.006z" }) + ] + } +); +var claude_icon_default = ClaudeIcon; + +// src/components/icons/gemini-icon.tsx +import { Icon as Icon41 } from "@vtex/brand-ui"; +import { jsx as jsx82 } from "react/jsx-runtime"; +var GeminiIcon = (props) => /* @__PURE__ */ jsx82( + Icon41, + { + ...props, + fill: "currentColor", + "fill-rule": "evenodd", + height: "64", + viewBox: "0 0 24 24", + width: "64", + xmlns: "http://www.w3.org/2000/svg", + children: /* @__PURE__ */ jsx82("path", { d: "M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z" }) + } +); +var gemini_icon_default = GeminiIcon; + +// src/components/icons/long-arrow-icon.tsx +import { Icon as Icon42 } from "@vtex/brand-ui"; +import { jsx as jsx83, jsxs as jsxs64 } from "react/jsx-runtime"; +var LongArrowIcon = (props) => /* @__PURE__ */ jsxs64( + Icon42, + { + ...props, + viewBox: "0 0 24 24", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + children: [ + /* @__PURE__ */ jsx83( "path", { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M18.414 6.91205L15.586 4.08405C15.211 3.70905 14.702 3.49805 14.172 3.49805H7C5.895 3.49805 5 4.39305 5 5.49805V19.498C5 20.603 5.895 21.498 7 21.498H17C18.105 21.498 19 20.603 19 19.498V8.32605C19 7.79605 18.789 7.28705 18.414 6.91205V6.91205Z", + d: "M17.4431 6.05859L6 17.5017", stroke: "#4A596B", - strokeWidth: "1.5", + strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx66( + /* @__PURE__ */ jsx83( "path", { - d: "M19 8.49805H15C14.448 8.49805 14 8.05005 14 7.49805V3.49805", + d: "M9.4082 6L17.4415 6.05664L17.4993 14.0911", stroke: "#4A596B", - strokeWidth: "1.5", + strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" } + ) + ] + } +); +var long_arrow_icon_default = LongArrowIcon; + +// src/components/icons/markdown-icon.tsx +import { Icon as Icon43 } from "@vtex/brand-ui"; +import { jsx as jsx84, jsxs as jsxs65 } from "react/jsx-runtime"; +var MarkdownIcon = (props) => /* @__PURE__ */ jsxs65( + Icon43, + { + ...props, + viewBox: "0 0 208 128", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + children: [ + /* @__PURE__ */ jsx84( + "rect", + { + width: "198", + height: "118", + x: "5", + y: "5", + rx: "10", + stroke: "currentColor", + strokeWidth: "10" + } ), - /* @__PURE__ */ jsx66( + /* @__PURE__ */ jsx84( "path", { - d: "M9.5 17.498H14.5", - stroke: "#4A596B", - strokeWidth: "1.5", + fill: "currentColor", + d: "M30 98V30h20l20 25 20-25h20v68H90V59L70 84 50 59v39zm125 0l-30-33h20V30h20v35h20z" + } + ) + ] + } +); +var markdown_icon_default = MarkdownIcon; + +// src/components/ask-ai/styles.ts +var baseBtn = { + display: "inline-flex", + alignItems: "center", + gap: 3, + px: 3, + minHeight: 36, + fontSize: 12, + color: "muted.0", + backgroundColor: "#fff", + border: "1px solid #E7E9EE", + cursor: "pointer", + "&:hover": { backgroundColor: "#F8F7FC", color: "#000711" } +}; +var container14 = { + position: "relative" +}; +var group = { + position: "relative", + display: "inline-flex", + borderRadius: "4px", + overflow: "hidden", + width: "100%" +}; +var primaryBtn = { + ...baseBtn, + borderRight: "0", + borderTopLeftRadius: "4px", + borderBottomLeftRadius: "4px", + width: "100%" +}; +var caretBtn = { + ...baseBtn, + px: 2, + width: 36, + justifyContent: "center", + borderTopRightRadius: "4px", + borderBottomRightRadius: "4px" +}; +var askaiMenu = { + position: "absolute", + width: 160, + zIndex: 50, + bg: "white", + color: "muted.0", + boxShadow: "0 8px 24px rgba(18, 21, 26, 0.12), 0 2px 6px rgba(18, 21, 26, 0.08)", + border: "1px solid", + borderColor: "#E7E9EE", + borderRadius: "4px", + overflow: "hidden", + backdropFilter: "saturate(120%) blur(6px)" +}; +var askaiSection = { + "& + &": { + borderTop: "1px solid", + borderColor: "#E7E9EE" + } +}; +var askaiItem = { + width: "100%", + display: "flex", + alignItems: "center", + gap: 2, + textAlign: "left", + px: 3, + py: 2, + minHeight: 40, + background: "transparent", + border: "0", + cursor: "pointer", + fontSize: 12, + color: "muted.0", + transition: "background-color 120ms ease, color 120ms ease, transform 80ms ease", + "&:hover": { + backgroundColor: "#F8F7FC", + color: "#000711" + }, + "&:active": { + transform: "translateY(1px)" + } +}; +var styles_default34 = { + container: container14, + group, + primaryBtn, + caretBtn, + askaiMenu, + askaiSection, + askaiItem +}; + +// src/components/ask-ai/index.tsx +import { jsx as jsx85, jsxs as jsxs66 } from "react/jsx-runtime"; +var DEFAULT_PROVIDERS = [ + { id: "chatgpt", name: "ChatGPT", href: "https://chat.openai.com/" }, + { id: "copilot", name: "Copilot", href: "https://copilot.microsoft.com/" }, + { id: "claude", name: "Claude", href: "https://claude.ai/" }, + { id: "gemini", name: "Gemini", href: "https://gemini.google.com/app" } +]; +var DEFAULT_CONTENT_ENDPOINT = "/api/llm-content"; +var joinUrl = (base, path) => `${base.replace(/\/?$/, "/")}${path.replace(/^\//, "")}`; +var getMarkdownFromResponse = (data) => { + if (typeof data.content === "string") + return data.content; + return data.content?.result; +}; +var fetchMarkdown = async (filePath, contentEndpoint) => { + const params = new URLSearchParams({ path: filePath }); + const res = await fetch(`${contentEndpoint}?${params.toString()}`); + if (!res.ok) { + const errorText3 = await res.text(); + throw new Error(`Failed to fetch content: ${res.status} ${errorText3}`); + } + const data = await res.json(); + return getMarkdownFromResponse(data); +}; +var ProviderIcon = ({ id, size = 14 }) => { + switch (id) { + case "chatgpt": + return /* @__PURE__ */ jsx85(chatgpt_icon_default, { size }); + case "copilot": + return /* @__PURE__ */ jsx85(copilot_icon_default, { size }); + case "claude": + return /* @__PURE__ */ jsx85(claude_icon_default, { size }); + case "gemini": + return /* @__PURE__ */ jsx85(gemini_icon_default, { size }); + default: + return null; + } +}; +var AskAIMenu = ({ + filePath, + pageUrl, + rawContentBaseUrl, + providers = DEFAULT_PROVIDERS, + onOpenProvider, + contentEndpoint = DEFAULT_CONTENT_ENDPOINT, + onCopyPage +}) => { + const { locale } = useContext26(LibraryContext); + const localizedMessages = messages[locale] ?? messages.en; + const copyLabel = localizedMessages["ask_ai.copy"] || "Copy markdown"; + const viewLabel = localizedMessages["ask_ai.view"] || "View markdown"; + const copiedLabel = localizedMessages["ask_ai.copied"] || "Copied"; + const [open, setOpen] = useState26(false); + const [isCopied, setIsCopied] = useState26(false); + const [isLoading, setIsLoading] = useState26(false); + const menuRef = useRef14(null); + const handleProvider = (provider) => { + onOpenProvider?.(provider); + if (provider.onClick) { + provider.onClick(); + } else if (provider.href) { + let url = provider.href; + const prompt = `You are a helpful assistant specialized in VTEX documentation. Answer questions based on the following documentation: ${pageUrl}`; + if (provider.id === "chatgpt") { + url = `https://chat.openai.com/?q=${encodeURIComponent(prompt)}`; + } else if (provider.id === "copilot") { + url = `https://copilot.microsoft.com/?q=${encodeURIComponent(prompt)}`; + } + window.open(url, "_blank", "noopener,noreferrer"); + } + setOpen(false); + }; + const handleCopy = async () => { + if (isLoading) + return; + if (isCopied) { + setIsCopied(false); + return; + } + setIsLoading(true); + try { + const markdown2 = onCopyPage ? await onCopyPage() : await fetchMarkdown(filePath, contentEndpoint); + if (!markdown2) { + throw new Error("No content received from API"); + } + const success = copy3(markdown2); + if (success) { + setIsCopied(true); + setTimeout(() => setIsCopied(false), 2e3); + } else { + throw new Error("Failed to copy to clipboard"); + } + } catch { + setIsCopied(false); + } finally { + setIsLoading(false); + } + }; + const handleView = () => { + if (filePath && rawContentBaseUrl) { + window.open( + joinUrl(rawContentBaseUrl, filePath), + "_blank", + "noopener,noreferrer" + ); + } + }; + useEffect24(() => { + const handleClickOutside = (event) => { + if (menuRef.current && !menuRef.current.contains(event.target)) { + setOpen(false); + } + }; + if (open) { + document.addEventListener("mousedown", handleClickOutside); + } + return () => { + document.removeEventListener("mousedown", handleClickOutside); + }; + }, [open]); + return /* @__PURE__ */ jsxs66(Box32, { ref: menuRef, sx: styles_default34.container, children: [ + /* @__PURE__ */ jsxs66(Box32, { sx: styles_default34.group, children: [ + /* @__PURE__ */ jsxs66( + Box32, + { + as: "button", + type: "button", + sx: styles_default34.primaryBtn, + onClick: handleCopy, + "aria-label": isCopied ? copiedLabel : copyLabel, + disabled: isLoading, + children: [ + isCopied ? /* @__PURE__ */ jsx85(check_icon_default, { size: 14 }) : /* @__PURE__ */ jsx85(markdown_icon_default, { size: 14 }), + /* @__PURE__ */ jsx85(Text24, { children: isCopied ? copiedLabel : copyLabel }) + ] + } + ), + /* @__PURE__ */ jsx85( + Box32, + { + as: "button", + type: "button", + sx: styles_default34.caretBtn, + onClick: () => setOpen((isOpen) => !isOpen), + "aria-haspopup": "menu", + "aria-expanded": open, + "aria-controls": "askai-menu", + children: /* @__PURE__ */ jsx85(IconCaret7, { direction: open ? "up" : "down" }) + } + ) + ] }), + open && /* @__PURE__ */ jsxs66(Box32, { id: "askai-menu", sx: styles_default34.askaiMenu, role: "menu", children: [ + /* @__PURE__ */ jsx85(Box32, { sx: styles_default34.askaiSection, children: providers.map((provider) => /* @__PURE__ */ jsxs66( + Box32, + { + as: "button", + sx: styles_default34.askaiItem, + onClick: () => handleProvider(provider), + role: "menuitem", + "aria-label": `Open ${provider.name}`, + children: [ + /* @__PURE__ */ jsx85(ProviderIcon, { id: provider.id, size: 12 }), + /* @__PURE__ */ jsxs66("span", { children: [ + provider.name, + " ", + /* @__PURE__ */ jsx85(long_arrow_icon_default, { size: 12 }) + ] }) + ] + }, + `lu-${provider.id}` + )) }), + /* @__PURE__ */ jsx85(Box32, { sx: styles_default34.askaiSection, children: /* @__PURE__ */ jsxs66( + Box32, + { + as: "button", + sx: styles_default34.askaiItem, + onClick: handleView, + "aria-label": viewLabel, + children: [ + /* @__PURE__ */ jsx85(markdown_icon_default, { size: 12 }), + viewLabel + ] + } + ) }) + ] }) + ] }); +}; +var ask_ai_default = AskAIMenu; + +// src/components/ask-assistant/index.tsx +import { + useCallback as useCallback4, + useContext as useContext28, + useEffect as useEffect25, + useId, + useLayoutEffect as useLayoutEffect2, + useMemo as useMemo5, + useRef as useRef15, + useState as useState27 +} from "react"; +import { createPortal as createPortal2 } from "react-dom"; +import copy4 from "copy-text-to-clipboard"; +import { Box as Box35, Flex as Flex30, Text as Text26 } from "@vtex/brand-ui"; + +// src/components/icons/book-icon.tsx +import { Icon as Icon44 } from "@vtex/brand-ui"; +import { jsx as jsx86, jsxs as jsxs67 } from "react/jsx-runtime"; +var BookIcon = (props) => /* @__PURE__ */ jsxs67( + Icon44, + { + ...props, + viewBox: "0 0 24 24", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + children: [ + /* @__PURE__ */ jsx86( + "path", + { + d: "M12 7v14", + stroke: "currentColor", + strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx66( + /* @__PURE__ */ jsx86( "path", { - d: "M14 11.998L11.5 14.498L10 12.998", - stroke: "#4A596B", - strokeWidth: "1.5", + d: "M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z", + stroke: "currentColor", + strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" } @@ -12021,58 +16673,55 @@ var DocumentationUpdatesIcon = (props) => /* @__PURE__ */ jsxs53( ] } ); -var documentation_updates_icon_default = DocumentationUpdatesIcon; +var book_icon_default = BookIcon; -// src/components/icons/helpcenter-icon.tsx -import { Icon as Icon33 } from "@vtex/brand-ui"; -import { jsx as jsx67, jsxs as jsxs54 } from "react/jsx-runtime"; -var HelpCenterIcon = (props) => /* @__PURE__ */ jsxs54( - Icon33, +// src/components/icons/collapse-icon.tsx +import { Icon as Icon45 } from "@vtex/brand-ui"; +import { jsx as jsx87, jsxs as jsxs68 } from "react/jsx-runtime"; +var CollapseIcon = (props) => /* @__PURE__ */ jsxs68( + Icon45, { ...props, - viewBox: "0 0 64 65", + viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - " ", - /* @__PURE__ */ jsx67( + /* @__PURE__ */ jsx87( "path", { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M53.3332 54.3317V16.4064C53.3332 13.7877 51.2105 11.665 48.5918 11.665H15.4078C12.7892 11.665 10.6665 13.7877 10.6665 16.4064V44.8517C10.6665 47.4704 12.7892 49.593 15.4078 49.593H44.4452L53.3332 54.3317Z", - stroke: "#4A596B", - strokeWidth: "3", + d: "M13.5 6.5H9.5V2.5", + stroke: "currentColor", + strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx67( + /* @__PURE__ */ jsx87( "path", { - d: "M42.3575 35.665C36.5522 41.4704 27.1388 41.4704 21.3335 35.665", - stroke: "#4A596B", - strokeWidth: "3", + d: "M2.5 9.5H6.5V13.5", + stroke: "currentColor", + strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx67( + /* @__PURE__ */ jsx87( "path", { - d: "M26.6668 22.3311V24.9977", - stroke: "#4A596B", - strokeWidth: "3", + d: "M9.5 6.5L14 2", + stroke: "currentColor", + strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx67( + /* @__PURE__ */ jsx87( "path", { - d: "M37.3333 22.3311V24.9977", - stroke: "#4A596B", - strokeWidth: "3", + d: "M6.5 9.5L2 14", + stroke: "currentColor", + strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" } @@ -12080,57 +16729,54 @@ var HelpCenterIcon = (props) => /* @__PURE__ */ jsxs54( ] } ); -var helpcenter_icon_default = HelpCenterIcon; +var collapse_icon_default = CollapseIcon; -// src/components/icons/developer-portal-icon.tsx -import { Icon as Icon34 } from "@vtex/brand-ui"; -import { jsx as jsx68, jsxs as jsxs55 } from "react/jsx-runtime"; -var DeveloperPortalIcon = (props) => /* @__PURE__ */ jsxs55( - Icon34, +// src/components/icons/expand-icon.tsx +import { Icon as Icon46 } from "@vtex/brand-ui"; +import { jsx as jsx88, jsxs as jsxs69 } from "react/jsx-runtime"; +var ExpandIcon = (props) => /* @__PURE__ */ jsxs69( + Icon46, { ...props, - viewBox: "0 0 24 24", + viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx68( - "rect", + /* @__PURE__ */ jsx88( + "path", { - x: "3", - y: "3", - width: "18", - height: "19", - rx: "2", - stroke: "currentcolor", - strokeWidth: "1.5" + d: "M9.5 2.5H13.5V6.5", + stroke: "currentColor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx68("path", { d: "M3 7L21 7", stroke: "#4A596B", strokeWidth: "1.5" }), - /* @__PURE__ */ jsx68( + /* @__PURE__ */ jsx88( "path", { - d: "M15 16.375L17 14.875L15 13.375", - stroke: "currentcolor", + d: "M6.5 13.5H2.5V9.5", + stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx68( + /* @__PURE__ */ jsx88( "path", { - d: "M9 13.375L7 14.875L9 16.375", - stroke: "currentcolor", + d: "M13.5 2.5L9 7", + stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx68( + /* @__PURE__ */ jsx88( "path", { - d: "M10.5644 17.8947L13.5 11.5", - stroke: "currentcolor", + d: "M2.5 13.5L7 9", + stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" @@ -12139,161 +16785,44 @@ var DeveloperPortalIcon = (props) => /* @__PURE__ */ jsxs55( ] } ); -var developer_portal_icon_default = DeveloperPortalIcon; +var expand_icon_default = ExpandIcon; -// src/components/icons/faq-icon.tsx -import { Icon as Icon35 } from "@vtex/brand-ui"; -import { jsx as jsx69, jsxs as jsxs56 } from "react/jsx-runtime"; -var FAQIcon = (props) => /* @__PURE__ */ jsxs56( - Icon35, +// src/components/icons/history-icon.tsx +import { Icon as Icon47 } from "@vtex/brand-ui"; +import { jsx as jsx89, jsxs as jsxs70 } from "react/jsx-runtime"; +var HistoryIcon = (props) => /* @__PURE__ */ jsxs70( + Icon47, { ...props, - viewBox: "0 0 24 25", + viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx69( - "path", - { - d: "M22 11.5667C22 16.8499 17.5222 21.1334 12 21.1334C11.3507 21.1343 10.7032 21.0742 10.0654 20.9545C9.60633 20.8682 9.37678 20.8251 9.21653 20.8496C9.05627 20.8741 8.82918 20.9948 8.37499 21.2364C7.09014 21.9197 5.59195 22.161 4.15111 21.893C4.69874 21.2194 5.07275 20.4112 5.23778 19.5448C5.33778 19.0148 5.09 18.5 4.71889 18.1231C3.03333 16.4115 2 14.1051 2 11.5667C2 6.28357 6.47778 2 12 2C17.5222 2 22 6.28357 22 11.5667Z", - stroke: "currentcolor", - strokeWidth: "2", - strokeLinejoin: "round" - } - ), - /* @__PURE__ */ jsx69( + /* @__PURE__ */ jsx89( "path", { - d: "M10 9.84615C10 8.82655 10.8954 8 12 8C13.1046 8 14 8.82655 14 9.84615C14 10.2137 13.8837 10.5561 13.6831 10.8438C13.0854 11.7012 12 12.5189 12 13.5385V14", - stroke: "currentcolor", - strokeWidth: "2", + d: "M3.2 5A5.5 5.5 0 1 1 2.5 8", + stroke: "currentColor", + strokeWidth: "1.4", strokeLinecap: "round" } ), - /* @__PURE__ */ jsx69( + /* @__PURE__ */ jsx89( "path", { - d: "M12 16.5H12.009", - stroke: "currentcolor", - strokeWidth: "2", + d: "M3.2 2.4V5.2H6", + stroke: "currentColor", + strokeWidth: "1.4", strokeLinecap: "round", strokeLinejoin: "round" } - ) - ] - } -); -var faq_icon_default = FAQIcon; - -// src/components/icons/known-issues-icon.tsx -import { Icon as Icon36 } from "@vtex/brand-ui"; -import { jsx as jsx70, jsxs as jsxs57 } from "react/jsx-runtime"; -var KnownIssueIcon = (props) => /* @__PURE__ */ jsxs57( - Icon36, - { - ...props, - viewBox: "0 0 256 256", - fill: "none", - xmlns: "http://www.w3.org/2000/svg", - children: [ - /* @__PURE__ */ jsx70("rect", { width: "16rem", height: "16rem", fill: "none" }), - /* @__PURE__ */ jsx70( - "line", - { - x1: "104", - y1: "104", - x2: "104", - y2: "208", - fill: "none", - stroke: "#4A596B", - strokeLinecap: "round", - strokeLinejoin: "round", - strokeWidth: "18" - } - ), - /* @__PURE__ */ jsx70( - "line", - { - x1: "32", - y1: "104", - x2: "224", - y2: "104", - fill: "none", - stroke: "#4A596B", - strokeLinecap: "round", - strokeLinejoin: "round", - strokeWidth: "18" - } - ), - /* @__PURE__ */ jsx70( - "rect", - { - x: "32", - y: "48", - width: "192", - height: "160", - rx: "8", - strokeWidth: "18", - stroke: "#4A596B", - strokeLinecap: "round", - strokeLinejoin: "round", - fill: "none" - } - ) - ] - } -); -var known_issues_icon_default = KnownIssueIcon; - -// src/components/icons/megaphone-icon.tsx -import { Icon as Icon37 } from "@vtex/brand-ui"; -import { jsx as jsx71, jsxs as jsxs58 } from "react/jsx-runtime"; -var MegaphoneIcon = (props) => /* @__PURE__ */ jsxs58( - Icon37, - { - ...props, - viewBox: "0 0 24 20", - fill: "none", - xmlns: "http://www.w3.org/2000/svg", - children: [ - /* @__PURE__ */ jsx71( - "path", - { - d: "M8.39317 5.82935H5.00293C4.72679 5.82935 4.50293 6.0532 4.50293 6.32935V12.3537C4.50293 12.6299 4.72679 12.8537 5.00293 12.8537H8.39317C8.66932 12.8537 8.89317 12.6299 8.89317 12.3537V6.32935C8.89317 6.0532 8.66932 5.82935 8.39317 5.82935Z", - stroke: "#4A596B", - strokeWidth: "1.5" - } - ), - /* @__PURE__ */ jsx71( - "path", - { - d: "M15.5853 1.49929L8.89355 5.82927V12.8537L15.5853 17.1836C15.918 17.3989 16.357 17.1601 16.357 16.7639V1.91907C16.357 1.52282 15.918 1.28402 15.5853 1.49929Z", - stroke: "#4A596B", - strokeWidth: "1.5" - } - ), - /* @__PURE__ */ jsx71( - "path", - { - d: "M2.36914 6.70728H4.00329C4.27943 6.70728 4.50329 6.93113 4.50329 7.20728V11.4756C4.50329 11.7517 4.27943 11.9756 4.00329 11.9756H2.36914C2.093 11.9756 1.86914 11.7517 1.86914 11.4756V7.20728C1.86914 6.93113 2.093 6.70728 2.36914 6.70728Z", - stroke: "#4A596B", - strokeWidth: "1.5" - } - ), - /* @__PURE__ */ jsx71( - "path", - { - d: "M2.90474 16.9811L5.38122 12.8536H8.47085C8.85476 12.8536 9.09544 13.2684 8.90497 13.6017L5.96908 18.7395C5.88688 18.8834 5.70362 18.9333 5.55977 18.8511L3.01314 17.3959C2.86712 17.3125 2.81821 17.1253 2.90474 16.9811Z", - stroke: "#4A596B", - strokeWidth: "1.5" - } ), - /* @__PURE__ */ jsx71( + /* @__PURE__ */ jsx89( "path", { - d: "M20.789 5C21.8086 6.16449 22.3813 7.74366 22.3813 9.39024C22.3813 11.0368 21.8086 12.616 20.789 13.7805M18.8691 7.19202C19.3789 7.77426 19.6653 8.56385 19.6653 9.38714C19.6653 10.2104 19.3789 11 18.8691 11.5823", - stroke: "#4A596B", - strokeWidth: "1.5", + d: "M8 5.4V8.2L10 9.3", + stroke: "currentColor", + strokeWidth: "1.4", strokeLinecap: "round", strokeLinejoin: "round" } @@ -12301,78 +16830,70 @@ var MegaphoneIcon = (props) => /* @__PURE__ */ jsxs58( ] } ); -var megaphone_icon_default = MegaphoneIcon; +var history_icon_default = HistoryIcon; -// src/components/icons/graph-icon.tsx -import { Icon as Icon38 } from "@vtex/brand-ui"; -import { jsx as jsx72, jsxs as jsxs59 } from "react/jsx-runtime"; -var GraphIcon = (props) => /* @__PURE__ */ jsxs59( - Icon38, +// src/components/icons/refresh-icon.tsx +import { Icon as Icon48 } from "@vtex/brand-ui"; +import { jsx as jsx90, jsxs as jsxs71 } from "react/jsx-runtime"; +var RefreshIcon = (props) => /* @__PURE__ */ jsxs71( + Icon48, { ...props, - viewBox: "0 0 20 20", + viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx72( + /* @__PURE__ */ jsx90( "path", { - d: "M15.5993 9.03607H12.749L10.6112 11.2461L6.33574 6.82608L4.19799 9.03607H1.34766", - stroke: "currentcolor", + d: "M13.5 8A5.5 5.5 0 1 1 11.4 3.35", + stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx72( + /* @__PURE__ */ jsx90( "path", { - d: "M1 14V3C1 1.89543 1.89543 1 3 1H14C15.1046 1 16 1.89543 16 3V14C16 15.1046 15.1046 16 14 16H3C1.89543 16 1 15.1046 1 14Z", - stroke: "currentcolor", - strokeWidth: "1.5" + d: "M13.5 2.5V6H10", + stroke: "currentColor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" } ) ] } ); -var graph_icon_default = GraphIcon; +var refresh_icon_default = RefreshIcon; -// src/components/icons/warning-icon.tsx -import { Icon as Icon39 } from "@vtex/brand-ui"; -import { jsx as jsx73, jsxs as jsxs60 } from "react/jsx-runtime"; -var WarningIcon = (props) => /* @__PURE__ */ jsxs60( - Icon39, +// src/components/icons/send-icon.tsx +import { Icon as Icon49 } from "@vtex/brand-ui"; +import { jsx as jsx91, jsxs as jsxs72 } from "react/jsx-runtime"; +var SendIcon = (props) => /* @__PURE__ */ jsxs72( + Icon49, { ...props, - viewBox: "0 0 18 16", + viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx73( - "path", - { - d: "M7.71758 1.89497L1.36508 12.5C1.2341 12.7268 1.1648 12.9839 1.16407 13.2459C1.16334 13.5078 1.23119 13.7653 1.3609 13.9929C1.4906 14.2204 1.67762 14.41 1.90336 14.5429C2.12909 14.6757 2.38568 14.7471 2.64758 14.75H15.3526C15.6145 14.7471 15.8711 14.6757 16.0968 14.5429C16.3225 14.41 16.5096 14.2204 16.6393 13.9929C16.769 13.7653 16.8368 13.5078 16.8361 13.2459C16.8354 12.9839 16.766 12.7268 16.6351 12.5L10.2826 1.89497C10.1489 1.67455 9.96062 1.49231 9.73597 1.36583C9.51133 1.23936 9.25788 1.17291 9.00008 1.17291C8.74227 1.17291 8.48882 1.23936 8.26418 1.36583C8.03953 1.49231 7.85128 1.67455 7.71758 1.89497Z", - stroke: "currentcolor", - strokeWidth: "1.5", - strokeLinecap: "round", - strokeLinejoin: "round" - } - ), - /* @__PURE__ */ jsx73( + /* @__PURE__ */ jsx91( "path", { - d: "M9 5.75V8.75", - stroke: "currentcolor", + d: "M8 12.5V3.5", + stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx73( + /* @__PURE__ */ jsx91( "path", { - d: "M9 11.75H9.0075", - stroke: "currentcolor", + d: "M3.5 8L8 3.5L12.5 8", + stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" @@ -12381,101 +16902,78 @@ var WarningIcon = (props) => /* @__PURE__ */ jsxs60( ] } ); -var warning_icon_default = WarningIcon; +var send_icon_default = SendIcon; -// src/components/icons/paper-icon.tsx -import { Icon as Icon40 } from "@vtex/brand-ui"; -import { jsx as jsx74, jsxs as jsxs61 } from "react/jsx-runtime"; -var PaperIcon = (props) => /* @__PURE__ */ jsxs61( - Icon40, +// src/components/icons/sparkle-icon.tsx +import { Icon as Icon50 } from "@vtex/brand-ui"; +import { jsx as jsx92, jsxs as jsxs73 } from "react/jsx-runtime"; +var SparkleIcon = (props) => /* @__PURE__ */ jsxs73( + Icon50, { ...props, - viewBox: "0 0 18 18", + viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx74( - "path", - { - d: "M10.5 1.5H4.5C4.10218 1.5 3.72064 1.65804 3.43934 1.93934C3.15804 2.22064 3 2.60218 3 3V15C3 15.3978 3.15804 15.7794 3.43934 16.0607C3.72064 16.342 4.10218 16.5 4.5 16.5H13.5C13.8978 16.5 14.2794 16.342 14.5607 16.0607C14.842 15.7794 15 15.3978 15 15V6L10.5 1.5Z", - stroke: "currentcolor", - strokeWidth: "1.5", - strokeLinecap: "round", - strokeLinejoin: "round" - } - ), - /* @__PURE__ */ jsx74( - "path", - { - d: "M10.5 1.5V6H15", - stroke: "currentcolor", - strokeWidth: "1.5", - strokeLinecap: "round", - strokeLinejoin: "round" - } - ), - /* @__PURE__ */ jsx74( + /* @__PURE__ */ jsx92( "path", { - d: "M12 9.75H6", - stroke: "currentcolor", - strokeWidth: "1.5", - strokeLinecap: "round", + d: "M8 3.4 8.68 6.72c.1.46.46.82.92.92L12.92 8.32 9.6 9.01c-.46.1-.82.46-.92.92L8 13.25 7.32 9.93c-.1-.46-.46-.82-.92-.92L3.08 8.32 6.4 7.64c.46-.1.82-.46.92-.92L8 3.4Z", + stroke: "currentColor", + strokeWidth: "1", strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx74( + /* @__PURE__ */ jsx92( "path", { - d: "M12 12.75H6", - stroke: "currentcolor", - strokeWidth: "1.5", - strokeLinecap: "round", + d: "M3.45 1.35 3.72 2.6c.04.2.2.36.4.4L5.37 3.27 4.12 3.54c-.2.04-.36.2-.4.4L3.45 5.19 3.18 3.94c-.04-.2-.2-.36-.4-.4L1.53 3.27 2.78 3c.2-.04.36-.2.4-.4L3.45 1.35Z", + stroke: "currentColor", + strokeWidth: "1", strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx74( + /* @__PURE__ */ jsx92( "path", { - d: "M7.5 6.75H6.75H6", - stroke: "currentcolor", - strokeWidth: "1.5", - strokeLinecap: "round", + d: "M12.7 10.7 12.97 11.95c.04.2.2.36.4.4L14.62 12.62 13.37 12.89c-.2.04-.36.2-.4.4L12.7 14.54 12.43 13.29c-.04-.2-.2-.36-.4-.4L10.78 12.62 12.03 12.35c.2-.04.36-.2.4-.4L12.7 10.7Z", + stroke: "currentColor", + strokeWidth: "1", strokeLinejoin: "round" } ) ] } ); -var paper_icon_default = PaperIcon; +var sparkle_icon_default = SparkleIcon; -// src/components/icons/start-here-icon.tsx -import { Icon as Icon41 } from "@vtex/brand-ui"; -import { jsx as jsx75, jsxs as jsxs62 } from "react/jsx-runtime"; -var StartHereIcon = (props) => /* @__PURE__ */ jsxs62( - Icon41, +// src/components/icons/new-chat-icon.tsx +import { Icon as Icon51 } from "@vtex/brand-ui"; +import { jsx as jsx93, jsxs as jsxs74 } from "react/jsx-runtime"; +var NewChatIcon = (props) => /* @__PURE__ */ jsxs74( + Icon51, { ...props, - viewBox: "0 0 24 24", + viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx75( + /* @__PURE__ */ jsx93( "path", { - d: "M4 15.35C4 15.35 4.95 14.4 7.8 14.4C10.65 14.4 12.55 16.3 15.4 16.3C18.25 16.3 19.2 15.35 19.2 15.35V3.95C19.2 3.95 18.25 4.9 15.4 4.9C12.55 4.9 10.65 3 7.8 3C4.95 3 4 3.95 4 3.95V15.35Z", - stroke: "#4A596B", - strokeWidth: "2", + d: "M8 2.5H4.5A2 2 0 0 0 2.5 4.5v7A2 2 0 0 0 4.5 13.5h7a2 2 0 0 0 2-2V8", + stroke: "currentColor", + strokeWidth: "1.4", strokeLinecap: "round", strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx75( + /* @__PURE__ */ jsx93( "path", { - d: "M4 22V15.35", - stroke: "#4A596B", - strokeWidth: "2", + d: "M12.15 2.4a1.05 1.05 0 0 1 1.45 1.45L8.2 9.25c-.16.16-.36.27-.58.33l-1.92.56a.33.33 0 0 1-.41-.41l.56-1.92c.06-.22.17-.42.33-.58z", + stroke: "currentColor", + strokeWidth: "1.4", strokeLinecap: "round", strokeLinejoin: "round" } @@ -12483,772 +16981,6266 @@ var StartHereIcon = (props) => /* @__PURE__ */ jsxs62( ] } ); -var start_here_icon_default = StartHereIcon; +var new_chat_icon_default = NewChatIcon; -// src/components/icons/tutorials-icon.tsx -import { Icon as Icon42 } from "@vtex/brand-ui"; -import { jsx as jsx76, jsxs as jsxs63 } from "react/jsx-runtime"; -var TutorialsIcon = (props) => /* @__PURE__ */ jsxs63( - Icon42, +// src/components/ask-assistant/default-examples.tsx +var DEFAULT_ASK_ASSISTANT_EXAMPLES = [ { - ...props, - viewBox: "0 0 24 24", - fill: "none", - xmlns: "http://www.w3.org/2000/svg", - children: [ - /* @__PURE__ */ jsx76( - "path", - { - d: "M4 19.5C4 18.837 4.26339 18.2011 4.73223 17.7322C5.20107 17.2634 5.83696 17 6.5 17H20", - stroke: "#4A596B", - strokeWidth: "2", + id: "guides", + title: "Guides", + Icon: api_guides_icon_default, + questions: [ + "How do I authenticate with the VTEX APIs?", + "How do I get started with FastStore?", + "How do I configure a development workspace?" + ] + }, + { + id: "api-reference", + title: "API Reference", + Icon: api_reference_icon_default, + questions: [ + "How do I get an order by ID?", + "How do I update a product SKU?", + "What is the Catalog API used for?" + ] + }, + { + id: "storefront", + title: "Storefront", + Icon: storefront_development_icon_default, + questions: [ + "How do I customize a FastStore component?", + "How do I create a store theme?", + "How do I add a custom page to my storefront?" + ] + }, + { + id: "apps", + title: "Apps", + Icon: app_development_icon_default, + questions: [ + "How do I create a VTEX IO app?", + "How do I publish an app to the VTEX App Store?", + "How do I use React in a VTEX IO app?" + ] + } +]; + +// src/components/ask-assistant/history.ts +var HISTORY_STORAGE_KEY = "vtex-ask-assistant-history"; +var MAX_HISTORY_ITEMS = 20; +var isChatMessage = (value) => { + if (!value || typeof value !== "object") + return false; + const message = value; + return typeof message.id === "string" && (message.role === "user" || message.role === "assistant") && typeof message.content === "string" && (message.status === "streaming" || message.status === "complete" || message.status === "error"); +}; +var parseConversation = (value) => { + if (!value || typeof value !== "object") + return null; + const item2 = value; + if (typeof item2.id !== "string" || !Array.isArray(item2.messages)) + return null; + const messages3 = item2.messages.filter(isChatMessage); + const title9 = typeof item2.title === "string" && item2.title.trim() ? item2.title.trim() : messages3.find((message) => message.role === "user")?.content.trim(); + if (!title9 || messages3.length === 0) + return null; + return { id: item2.id, title: title9, messages: messages3 }; +}; +var conversationTitle = (messages3) => messages3.find((message) => message.role === "user")?.content.trim() ?? ""; +var freezeMessages = (messages3) => messages3.map( + (message) => message.status === "streaming" ? { + ...message, + status: message.content ? "complete" : "error", + steps: message.steps?.map((step) => ({ + ...step, + status: "complete" + })) + } : message +); +var readHistory = (key = HISTORY_STORAGE_KEY) => { + if (typeof window === "undefined") + return []; + try { + const raw = window.localStorage.getItem(key); + if (!raw) + return []; + const parsed = JSON.parse(raw); + if (!Array.isArray(parsed)) + return []; + return parsed.map(parseConversation).filter((item2) => Boolean(item2)); + } catch { + return []; + } +}; +var writeHistory = (items, key = HISTORY_STORAGE_KEY) => { + if (typeof window === "undefined") + return; + try { + window.localStorage.setItem(key, JSON.stringify(items)); + } catch { + } +}; +var upsertHistory = (current, conversation) => { + const title9 = conversation.title.trim(); + const messages3 = freezeMessages(conversation.messages); + if (!title9 || messages3.length === 0) + return current; + return [ + { ...conversation, title: title9, messages: messages3 }, + ...current.filter((item2) => item2.id !== conversation.id) + ].slice(0, MAX_HISTORY_ITEMS); +}; + +// src/components/ask-assistant/markdown.tsx +import { Box as Box34 } from "@vtex/brand-ui"; + +// src/components/ask-assistant/sources.tsx +import { useContext as useContext27 } from "react"; +import { Box as Box33, Flex as Flex29, Text as Text25 } from "@vtex/brand-ui"; + +// src/components/ask-assistant/styles.ts +var focusRing = { + ":focus-visible": { + outline: "2px solid #E31C58", + outlineOffset: "2px" + } +}; +var trigger2 = { + display: ["none", "none", "none", "inline-flex"], + alignItems: "center", + gap: "8px", + height: "36px", + px: "12px", + border: "1px solid #E7E9EE", + borderRadius: "6px", + backgroundColor: "#FFFFFF", + color: "muted.0", + fontSize: "13px", + fontWeight: "500", + lineHeight: "16px", + cursor: "pointer", + whiteSpace: "nowrap", + transition: "background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease", + ":hover": { + backgroundColor: "#F8F7FC", + borderColor: "#D8D8E3", + color: "#000711" + }, + ...focusRing +}; +var floatingTrigger = { + display: ["inline-flex", "inline-flex", "inline-flex", "none"], + position: "fixed", + right: "16px", + bottom: "calc(16px + env(safe-area-inset-bottom, 0px))", + zIndex: 40, + alignItems: "center", + justifyContent: "center", + width: "56px", + height: "56px", + padding: 0, + border: "none", + borderRadius: "50%", + backgroundColor: "#142032", + color: "#FFFFFF", + cursor: "pointer", + boxShadow: "0 8px 24px rgba(20, 32, 50, 0.28)", + transition: "background-color 0.15s ease, transform 0.15s ease", + ":hover": { + backgroundColor: "#000711" + }, + ":active": { + transform: "scale(0.96)" + }, + ...focusRing +}; +var triggerIcon = { + flexShrink: 0 +}; +var triggerShortcut = { + display: ["none", "none", "none", "none", "inline-flex"], + alignItems: "center", + gap: "4px", + ml: "2px" +}; +var triggerKbd = { + display: "inline-flex", + alignItems: "center", + justifyContent: "center", + minWidth: "20px", + height: "20px", + px: "5px", + borderRadius: "4px", + border: "1px solid #E7E9EE", + background: "#FAFAFB", + boxShadow: "0 1px 0 #E7E9EE", + fontSize: "11px", + fontWeight: "400", + fontFamily: "inherit", + color: "#4A596B", + lineHeight: "20px", + letterSpacing: 0 +}; +var SPLIT_VIEW_MQ = "(min-width: 40em)"; +var PANEL_WIDTH = "min(400px, 100vw)"; +var PANEL_EXPANDED_WIDTH = "min(720px, 80vw)"; +var splitViewCss = ` +@media screen and ${SPLIT_VIEW_MQ} { + html:has([data-ask-assistant-panel]) { + --ask-assistant-width: ${PANEL_WIDTH}; + --ask-assistant-top: 0px; + } + html:has([data-ask-assistant-panel][data-expanded="true"]) { + --ask-assistant-width: ${PANEL_EXPANDED_WIDTH}; + } + html:has([data-ask-assistant-panel]) [data-docs-header] { + max-width: none; + } + html:has([data-ask-assistant-panel]) [data-docs-header] ~ * { + box-sizing: border-box; + padding-right: var(--ask-assistant-width) !important; + } + html:has([data-ask-assistant-panel]) [data-article-aside] { + display: none !important; + } + html:has([data-ask-assistant-panel]):not(:has([data-docs-header])) body { + box-sizing: border-box; + padding-right: var(--ask-assistant-width); + } +} +`; +var overlay2 = { + display: ["block", "none"], + position: "fixed", + inset: 0, + backgroundColor: "rgba(20, 32, 50, 0.32)", + backdropFilter: "blur(2px)", + WebkitBackdropFilter: "blur(2px)", + zIndex: 1e4 +}; +var EMPTY_STATE_BACKGROUND = [ + "radial-gradient(120% 80% at 0% 0%, #F8DDEC 0%, rgba(248, 221, 236, 0) 54%)", + "radial-gradient(110% 85% at 100% 100%, #D2EEF8 0%, rgba(210, 238, 248, 0) 56%)", + "linear-gradient(135deg, #FDF6FB 0%, #F6F8FD 46%, #EEF7FC 100%)" +].join(", "); +var panel = (expanded) => ({ + position: "fixed", + top: [0, "var(--ask-assistant-top, 0px)"], + right: 0, + bottom: 0, + zIndex: [10001, 40], + display: "flex", + flexDirection: "column", + width: expanded ? ["100vw", PANEL_EXPANDED_WIDTH] : ["100vw", PANEL_WIDTH], + maxWidth: "100vw", + backgroundColor: "#FFFFFF", + borderLeft: "1px solid #E7E9EE", + boxShadow: ["-8px 0 32px rgba(20, 32, 50, 0.12)", "none"], + overscrollBehavior: "contain", + transition: "width 0.2s ease" +}); +var header2 = { + display: "flex", + alignItems: "center", + justifyContent: "space-between", + flexShrink: 0, + px: "16px", + py: "12px", + borderBottom: "1px solid #E7E9EE", + backgroundColor: "#FFFFFF" +}; +var headerTitle = { + display: "flex", + alignItems: "center", + gap: "8px", + color: "#142032", + fontSize: "14px", + fontWeight: "600", + lineHeight: "20px", + letterSpacing: "-0.01em" +}; +var headerActions2 = { + display: "flex", + alignItems: "center", + gap: "2px" +}; +var iconButton = { + display: "inline-flex", + alignItems: "center", + justifyContent: "center", + width: "32px", + height: "32px", + padding: 0, + border: "none", + borderRadius: "6px", + background: "transparent", + color: "#4A596B", + cursor: "pointer", + transition: "background-color 0.15s ease, color 0.15s ease", + ":hover": { + backgroundColor: "#F8F7FC", + color: "#142032" + }, + ":disabled": { + color: "#C7CDD6", + cursor: "default", + backgroundColor: "transparent" + }, + ":disabled:hover": { + color: "#C7CDD6", + backgroundColor: "transparent" + }, + ...focusRing +}; +var iconButtonActive = { + ...iconButton, + backgroundColor: "#F8F7FC", + color: "#142032" +}; +var historyWrap = { + position: "relative" +}; +var historyMenu = { + position: "absolute", + top: "calc(100% + 6px)", + right: 0, + zIndex: 2, + display: "flex", + flexDirection: "column", + width: "260px", + maxWidth: "min(260px, calc(100vw - 24px))", + py: "8px", + backgroundColor: "#FFFFFF", + border: "1px solid #E7E9EE", + borderRadius: "8px", + boxShadow: "0 8px 24px rgba(18, 21, 26, 0.12), 0 2px 6px rgba(18, 21, 26, 0.08)", + overflow: "hidden" +}; +var historyHeader = { + display: "flex", + alignItems: "center", + justifyContent: "space-between", + gap: "12px", + px: "12px", + pb: "8px" +}; +var historyTitle = { + color: "muted.1", + fontSize: "12px", + fontWeight: "600", + lineHeight: "16px", + textTransform: "uppercase", + letterSpacing: "0.04em" +}; +var historyClear = { + padding: 0, + border: "none", + background: "transparent", + color: "#D71D55", + fontSize: "13px", + fontWeight: "600", + lineHeight: "16px", + cursor: "pointer", + ":hover": { + color: "#C81E51", + textDecoration: "underline" + }, + ...focusRing +}; +var historyList = { + display: "flex", + flexDirection: "column", + maxHeight: "280px", + overflowY: "auto", + px: "4px" +}; +var historyItem = { + display: "flex", + alignItems: "center", + gap: "8px", + width: "100%", + px: "8px", + py: "8px", + border: "none", + borderRadius: "6px", + background: "transparent", + color: "#142032", + fontSize: "13px", + fontWeight: "400", + lineHeight: "18px", + textAlign: "left", + cursor: "pointer", + ":hover": { + backgroundColor: "#F8F7FC" + }, + ...focusRing +}; +var historyItemIcon = { + flexShrink: 0, + color: "#4A596B" +}; +var historyItemText = { + overflow: "hidden", + textOverflow: "ellipsis", + whiteSpace: "nowrap" +}; +var messages2 = { + display: "flex", + flexDirection: "column", + flex: 1, + minHeight: 0, + gap: "16px", + px: "16px", + py: "16px", + overflowY: "auto" +}; +var userBubble = { + alignSelf: "flex-end", + maxWidth: "85%", + px: "12px", + py: "8px", + borderRadius: "8px", + backgroundColor: "#F8F7FC", + border: "1px solid #EDEAF6", + color: "#142032", + fontSize: "14px", + lineHeight: "20px", + wordBreak: "break-word" +}; +var assistantBlock = { + display: "flex", + flexDirection: "column", + alignItems: "flex-start", + gap: "12px", + width: "100%" +}; +var process2 = { + display: "flex", + flexDirection: "column", + gap: "10px", + width: "100%" +}; +var processHeader = { + display: "flex", + alignItems: "center", + gap: "8px", + color: "#5B6E84", + fontSize: "13px", + fontWeight: "400", + lineHeight: "20px" +}; +var processCheck = { + display: "inline-flex", + alignItems: "center", + justifyContent: "center", + width: "16px", + height: "16px", + borderRadius: "50%", + backgroundColor: "#38853C", + color: "#FFFFFF", + flexShrink: 0 +}; +var processSpinner = { + width: "14px", + height: "14px", + borderRadius: "50%", + border: "2px solid #E7E9EE", + borderTopColor: "#5B6E84", + flexShrink: 0, + animation: "askAssistantSpin 0.8s linear infinite", + "@keyframes askAssistantSpin": { + from: { transform: "rotate(0deg)" }, + to: { transform: "rotate(360deg)" } + } +}; +var processSteps = { + display: "flex", + flexDirection: "column", + gap: "8px" +}; +var processStep = { + display: "flex", + alignItems: "center", + gap: "8px", + color: "#142032", + fontSize: "13px", + fontWeight: "400", + lineHeight: "18px" +}; +var processBadge = { + display: "inline-flex", + alignItems: "center", + justifyContent: "center", + height: "20px", + px: "8px", + borderRadius: "4px", + backgroundColor: "#F4F5F7", + color: "#4A596B", + fontSize: "12px", + fontWeight: "500", + lineHeight: "16px", + flexShrink: 0 +}; +var processStepIcon = { + flexShrink: 0, + color: "#4A596B" +}; +var processBookIcon = { + flexShrink: 0, + color: "#E31C58" +}; +var processStepLabel = { + color: "#142032", + fontSize: "13px", + lineHeight: "18px" +}; +var messageActions = { + display: "flex", + alignItems: "center", + gap: "4px", + mt: "4px" +}; +var actionButton2 = { + display: "inline-flex", + alignItems: "center", + justifyContent: "center", + width: "28px", + height: "28px", + padding: 0, + border: "1px solid transparent", + borderRadius: "6px", + background: "transparent", + color: "#A1A8B3", + cursor: "pointer", + transition: "background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease", + ":hover": { + backgroundColor: "#FFFFFF", + borderColor: "#E7E9EE", + color: "#4A596B" + }, + ...focusRing +}; +var actionButtonActive = { + ...actionButton2, + color: "#142032", + backgroundColor: "#F8F7FC", + borderColor: "#EDEAF6" +}; +var dislikeIcon2 = { + transform: "rotate(180deg)" +}; +var inputWrap = { + flexShrink: 0, + px: "16px", + pb: "16px", + pt: "12px", + borderTop: "1px solid #E7E9EE", + backgroundColor: "#FFFFFF" +}; +var inputWrapCentered = { + flexShrink: 0, + width: "100%", + px: "16px", + pb: "8px" +}; +var emptyState = { + display: "flex", + flexDirection: "column", + flex: 1, + minHeight: 0, + overflowY: "auto", + backgroundColor: "#F7F8FC", + backgroundImage: EMPTY_STATE_BACKGROUND +}; +var emptyMain = { + display: "flex", + flexDirection: "column", + alignItems: "stretch", + justifyContent: "center", + flex: 1, + minHeight: "200px" +}; +var emptyHero = { + display: "flex", + flexDirection: "column", + alignItems: "center", + justifyContent: "center", + flexShrink: 0, + px: "24px", + mb: "20px" +}; +var emptyHeroIcon = { + display: "flex", + alignItems: "center", + justifyContent: "center", + mb: "8px", + color: "#5B6E84", + svg: { + overflow: "visible" + }, + path: { + strokeWidth: "1", + strokeLinecap: "round" + } +}; +var emptyHeroCopy = { + display: "flex", + flexDirection: "column", + alignItems: "center", + gap: "6px", + mt: "4px", + textAlign: "center" +}; +var emptyHeroTitle = { + m: 0, + color: "#142032", + fontSize: "22px", + fontWeight: "600", + lineHeight: "28px", + letterSpacing: "-0.02em" +}; +var emptyHeroSubtitle = { + m: 0, + color: "#4A596B", + fontSize: "14px", + fontWeight: "400", + lineHeight: "20px" +}; +var examples = { + display: "flex", + flexDirection: "column", + gap: "12px", + width: "100%", + px: "16px", + pt: "12px", + pb: "16px" +}; +var examplesLabel = { + color: "muted.1", + fontSize: "12px", + fontWeight: "600", + lineHeight: "16px", + textTransform: "uppercase", + letterSpacing: "0.04em" +}; +var examplePills = { + display: "flex", + flexWrap: "nowrap", + gap: "8px", + overflowX: "auto", + scrollbarWidth: "none", + msOverflowStyle: "none", + "&::-webkit-scrollbar": { + display: "none" + } +}; +var examplePill = (active) => ({ + display: "inline-flex", + alignItems: "center", + gap: "6px", + height: "32px", + px: "12px", + border: `1px solid ${active ? "rgba(216, 216, 227, 0.9)" : "rgba(231, 233, 238, 0.8)"}`, + borderRadius: "16px", + backgroundColor: active ? "rgba(248, 247, 252, 0.92)" : "rgba(255, 255, 255, 0.72)", + color: "#4A596B", + fontSize: "13px", + fontWeight: active ? "600" : "500", + lineHeight: "16px", + cursor: "pointer", + whiteSpace: "nowrap", + flexShrink: 0, + backdropFilter: "blur(10px)", + WebkitBackdropFilter: "blur(10px)", + transition: "background-color 0.15s ease, border-color 0.15s ease", + ":hover": { + borderColor: "#3A4F66", + color: "#4A596B" + }, + ...focusRing +}); +var examplePillIcon = { + width: "14px", + height: "14px", + minWidth: "14px", + minHeight: "14px", + flexShrink: 0 +}; +var exampleQuestions = { + display: "flex", + flexDirection: "column", + gap: "8px" +}; +var exampleQuestion = { + display: "block", + width: "100%", + px: "12px", + py: "10px", + border: "1px solid rgba(231, 233, 238, 0.8)", + borderRadius: "8px", + background: "rgba(255, 255, 255, 0.72)", + color: "#4A596B", + fontSize: "13px", + lineHeight: "20px", + textAlign: "left", + cursor: "pointer", + backdropFilter: "blur(10px)", + WebkitBackdropFilter: "blur(10px)", + transition: "background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease", + ":hover": { + backgroundColor: "rgba(248, 247, 252, 0.92)", + borderColor: "#D8D8E3", + color: "#142032" + }, + ...focusRing +}; +var inputBox = { + display: "flex", + flexDirection: "column", + gap: "8px", + px: "12px", + pt: "10px", + pb: "10px", + border: "1px solid #E7E9EE", + borderRadius: "8px", + backgroundColor: "#FFFFFF", + transition: "border-color 0.15s ease, box-shadow 0.15s ease", + ":hover": { + borderColor: "#C7CDD6" + }, + ":focus-within": { + borderColor: "#E31C58", + boxShadow: "0 0 0 3px rgba(227, 28, 88, 0.16)" + } +}; +var inputBoxEmpty = { + ...inputBox, + backgroundColor: "rgba(255, 255, 255, 0.86)", + borderColor: "rgba(231, 233, 238, 0.85)", + boxShadow: "0 10px 32px rgba(20, 32, 50, 0.06)", + backdropFilter: "blur(16px)", + WebkitBackdropFilter: "blur(16px)", + ":focus-within": { + borderColor: "#E31C58", + boxShadow: "0 0 0 3px rgba(227, 28, 88, 0.16), 0 10px 32px rgba(20, 32, 50, 0.06)" + } +}; +var textarea2 = { + width: "100%", + minHeight: "44px", + maxHeight: "120px", + border: "none", + outline: "none", + resize: "none", + background: "transparent", + color: "#142032", + fontSize: "14px", + lineHeight: "20px", + fontFamily: "inherit", + "::placeholder": { + color: "#A1A8B3" + }, + ":disabled": { + color: "#4A596B" + } +}; +var inputFooter = { + display: "flex", + alignItems: "center", + justifyContent: "flex-end" +}; +var sendButton = (enabled) => ({ + display: "inline-flex", + alignItems: "center", + justifyContent: "center", + width: "32px", + height: "32px", + padding: 0, + border: "none", + borderRadius: "6px", + backgroundColor: "#142032", + color: "#FFFFFF", + opacity: enabled ? 1 : 0.55, + cursor: enabled ? "pointer" : "not-allowed", + transition: "background-color 0.15s ease, opacity 0.15s ease", + ":hover": { + backgroundColor: enabled ? "#000711" : "#142032" + }, + ...focusRing +}); +var markdown = { + width: "100%", + color: "#142032", + fontSize: "14px", + lineHeight: "22px" +}; +var markdownParagraph = { + margin: 0, + "& + &": { + mt: "10px" + } +}; +var markdownHeading = { + margin: "0 0 8px", + fontSize: "15px", + fontWeight: "600", + lineHeight: "22px", + letterSpacing: "-0.01em", + color: "#142032" +}; +var markdownList = { + margin: "8px 0", + paddingLeft: "20px", + listStylePosition: "outside", + "li + li": { + mt: "6px" + }, + "ol, ul": { + mt: "6px", + mb: 0 + } +}; +var markdownOrderedList = { + ...markdownList, + listStyleType: "decimal" +}; +var markdownUnorderedList = { + ...markdownList, + listStyleType: "disc" +}; +var markdownListItem = { + display: "list-item" +}; +var markdownLink = { + color: "#D71D55", + fontWeight: "600", + textDecoration: "none", + ":hover": { + color: "#C81E51", + textDecoration: "underline", + textUnderlineOffset: "2px" + } +}; +var markdownRule = { + border: "none", + borderTop: "1px solid #E7E9EE", + my: "12px" +}; +var inlineCode = { + px: "4px", + py: "1px", + borderRadius: "4px", + border: "1px solid #E7E9EE", + backgroundColor: "#F8F7FC", + fontSize: "13px", + fontFamily: "monospace" +}; +var sources = { + display: "flex", + flexDirection: "column", + gap: "8px", + width: "100%", + mt: "16px", + pt: "14px", + borderTop: "1px solid #E7E9EE" +}; +var sourcesLabel = { + color: "muted.1", + fontSize: "12px", + fontWeight: "600", + lineHeight: "16px", + textTransform: "uppercase", + letterSpacing: "0.04em" +}; +var sourcesList = { + display: "flex", + flexDirection: "column", + gap: "6px" +}; +var sourceCard = { + display: "flex", + alignItems: "center", + gap: "10px", + width: "100%", + px: "10px", + py: "8px", + border: "1px solid #E7E9EE", + borderRadius: "8px", + backgroundColor: "#FFFFFF", + color: "inherit", + textDecoration: "none", + cursor: "pointer", + transition: "background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease", + ":hover": { + backgroundColor: "#F8F7FC", + borderColor: "#D8D8E3", + ".source-title": { + color: "#000711" + }, + ".source-arrow": { + color: "#4A596B" + } + }, + ":focus-visible": { + outline: "2px solid #E31C58", + outlineOffset: "2px" + } +}; +var sourceIcon = { + display: "flex", + alignItems: "center", + justifyContent: "center", + width: "28px", + height: "28px", + borderRadius: "6px", + backgroundColor: "#F8F7FC", + color: "#4A596B", + flexShrink: 0 +}; +var sourceCopy = { + display: "flex", + flexDirection: "column", + gap: "2px", + minWidth: 0, + flex: 1 +}; +var sourceTitle = { + color: "#142032", + fontSize: "13px", + fontWeight: "500", + lineHeight: "18px", + overflow: "hidden", + display: "-webkit-box", + WebkitLineClamp: 2, + WebkitBoxOrient: "vertical" +}; +var sourceMeta = { + color: "#5B6E84", + fontSize: "12px", + fontWeight: "400", + lineHeight: "16px", + overflow: "hidden", + textOverflow: "ellipsis", + whiteSpace: "nowrap" +}; +var sourceArrow = { + display: "inline-flex", + flexShrink: 0, + color: "#C7CDD6", + transition: "color 0.15s ease" +}; +var errorText2 = { + width: "100%", + padding: "12px 14px", + background: "#FFF6F4", + border: "1px solid #F8D0C8", + borderRadius: "8px", + color: "#8A1F11", + fontSize: "13px", + lineHeight: "18px" +}; +var styles_default35 = { + trigger: trigger2, + triggerIcon, + triggerShortcut, + triggerKbd, + floatingTrigger, + overlay: overlay2, + panel, + header: header2, + headerTitle, + headerActions: headerActions2, + iconButton, + iconButtonActive, + historyWrap, + historyMenu, + historyHeader, + historyTitle, + historyClear, + historyList, + historyItem, + historyItemIcon, + historyItemText, + messages: messages2, + userBubble, + assistantBlock, + process: process2, + processHeader, + processCheck, + processSpinner, + processSteps, + processStep, + processBadge, + processStepIcon, + processBookIcon, + processStepLabel, + messageActions, + actionButton: actionButton2, + actionButtonActive, + dislikeIcon: dislikeIcon2, + inputWrap, + inputWrapCentered, + emptyState, + emptyMain, + emptyHero, + emptyHeroIcon, + emptyHeroCopy, + emptyHeroTitle, + emptyHeroSubtitle, + examples, + examplesLabel, + examplePills, + examplePill, + examplePillIcon, + exampleQuestions, + exampleQuestion, + inputBox, + inputBoxEmpty, + textarea: textarea2, + inputFooter, + sendButton, + markdown, + markdownParagraph, + markdownHeading, + markdownList, + markdownOrderedList, + markdownUnorderedList, + markdownListItem, + markdownLink, + markdownRule, + inlineCode, + sources, + sourcesLabel, + sourcesList, + sourceCard, + sourceIcon, + sourceCopy, + sourceTitle, + sourceMeta, + sourceArrow, + errorText: errorText2 +}; + +// src/components/ask-assistant/sources.tsx +import { jsx as jsx94, jsxs as jsxs75 } from "react/jsx-runtime"; +var SOURCES_HEADING_RE = /^(?:#{1,6}\s+)?\*{0,2}(?:references?|sources?|fontes?|refer[eê]ncias?|fuentes?)\*{0,2}:?\*{0,2}\s*$/i; +var LINK_RE = /\[([^\]]+)\]\(([^)\s]+)(?:\s+"[^"]*")?\)/; +var splitAnswerSources = (content) => { + const lines = content.replace(/\r\n/g, "\n").split("\n"); + let headingIndex = -1; + for (let i = lines.length - 1; i >= 0; i -= 1) { + if (SOURCES_HEADING_RE.test(lines[i].trim())) { + headingIndex = i; + break; + } + } + if (headingIndex === -1) { + return { body: content, sources: [] }; + } + const seen = /* @__PURE__ */ new Set(); + const sources2 = []; + for (let i = headingIndex + 1; i < lines.length; i += 1) { + const line = lines[i].trim(); + if (!line || /^---+$/.test(line)) + continue; + const match = line.match(LINK_RE); + if (!match) + continue; + const href = match[2]; + if (seen.has(href)) + continue; + seen.add(href); + sources2.push({ + title: match[1].replace(/\*\*/g, "").trim() || href, + href + }); + } + if (!sources2.length) { + return { body: content, sources: [] }; + } + let end = headingIndex; + while (end > 0 && (!lines[end - 1].trim() || /^---+$/.test(lines[end - 1].trim()))) { + end -= 1; + } + return { + body: lines.slice(0, end).join("\n").trimEnd(), + sources: sources2 + }; +}; +var originLabel = (href) => { + try { + const host = new URL(href).hostname.replace(/^www\./, ""); + if (host === "help.vtex.com") + return "Help Center"; + if (host === "developers.vtex.com") + return "Developers"; + return host; + } catch { + return ""; + } +}; +var AnswerSources = ({ sources: sources2 }) => { + const { locale } = useContext27(LibraryContext); + const localized = messages[locale] ?? messages.en; + const title9 = localized["ask_assistant.sources"] || "Sources"; + if (!sources2.length) + return null; + return /* @__PURE__ */ jsxs75(Box33, { sx: styles_default35.sources, children: [ + /* @__PURE__ */ jsx94(Text25, { sx: styles_default35.sourcesLabel, children: title9 }), + /* @__PURE__ */ jsx94(Box33, { sx: styles_default35.sourcesList, children: sources2.map((source) => { + const origin = originLabel(source.href); + return /* @__PURE__ */ jsxs75( + Box33, + { + as: "a", + href: source.href, + target: "_blank", + rel: "noreferrer", + sx: styles_default35.sourceCard, + children: [ + /* @__PURE__ */ jsx94(Flex29, { sx: styles_default35.sourceIcon, "aria-hidden": true, children: /* @__PURE__ */ jsx94(paper_icon_default, { size: 14 }) }), + /* @__PURE__ */ jsxs75(Box33, { sx: styles_default35.sourceCopy, children: [ + /* @__PURE__ */ jsx94(Text25, { className: "source-title", sx: styles_default35.sourceTitle, children: source.title }), + origin ? /* @__PURE__ */ jsx94(Text25, { sx: styles_default35.sourceMeta, children: origin }) : null + ] }), + /* @__PURE__ */ jsx94(Box33, { as: "span", className: "source-arrow", sx: styles_default35.sourceArrow, children: /* @__PURE__ */ jsx94(external_link_icon_default, { size: 12 }) }) + ] + }, + source.href + ); + }) }) + ] }); +}; +var sources_default = AnswerSources; + +// src/components/ask-assistant/markdown.tsx +import { jsx as jsx95, jsxs as jsxs76 } from "react/jsx-runtime"; +var ANSWER_METADATA_RE = /(?:\r?\n[ \t]*){0,3}(?:[*_]{1,2}[ \t]*)?Language:[ \t]*[^\n|]+[ \t]*\|[ \t]*Confidence:[ \t]*[^\n*_]+(?:[ \t]*[*_]{1,2})?[ \t]*$/i; +var stripAnswerMetadata = (content) => content.replace(ANSWER_METADATA_RE, "").trimEnd(); +var INLINE_TOKEN = /(\[[^\]]+\]\([^)\s]+(?:\s+"[^"]*")?\)|\*\*[^*]+\*\*|`[^`]+`)/g; +var renderInline = (text4, keyPrefix) => { + const parts = text4.split(INLINE_TOKEN); + return parts.map((part, index) => { + const key = `${keyPrefix}-${index}`; + if (!part) + return null; + const link2 = part.match(/^\[([^\]]+)\]\(([^)\s]+)(?:\s+"[^"]*")?\)$/); + if (link2) { + return /* @__PURE__ */ jsx95( + Box34, + { + as: "a", + href: link2[2], + target: "_blank", + rel: "noreferrer", + sx: styles_default35.markdownLink, + children: renderInline(link2[1], key) + }, + key + ); + } + if (part.startsWith("**") && part.endsWith("**")) { + return /* @__PURE__ */ jsx95("strong", { children: renderInline(part.slice(2, -2), key) }, key); + } + if (part.startsWith("`") && part.endsWith("`")) { + return /* @__PURE__ */ jsx95(Box34, { as: "code", sx: styles_default35.inlineCode, children: part.slice(1, -1) }, key); + } + return part; + }); +}; +var headingTag = (level) => { + if (level <= 1) + return "h1"; + if (level === 2) + return "h2"; + if (level === 3) + return "h3"; + return "h4"; +}; +var LIST_ITEM_RE = /^(\s*)([-*]|\d+\.)\s+(.*)$/; +var parseListMarker = (line) => { + const match = line.match(LIST_ITEM_RE); + if (!match) + return null; + return { + indent: match[1].length, + ordered: /^\d+\.$/.test(match[2]), + text: match[3] + }; +}; +var nextNonBlank = (lines, from) => { + let index = from; + while (index < lines.length && !lines[index].trim()) + index += 1; + return index; +}; +var renderList = (lines, start, minIndent) => { + const first = parseListMarker(lines[start]); + if (!first) + return { items: [], ordered: false, end: start }; + const baseIndent = first.indent; + const ordered = first.ordered; + const items = []; + let index = start; + while (index < lines.length) { + const itemIndex = nextNonBlank(lines, index); + if (itemIndex >= lines.length) + break; + const marker = parseListMarker(lines[itemIndex]); + if (!marker || marker.indent < minIndent || marker.indent !== baseIndent || marker.ordered !== ordered) { + break; + } + index = itemIndex + 1; + const children = [ + ...renderInline(marker.text, `li-${itemIndex}`) + ]; + const nestedIndex = nextNonBlank(lines, index); + const nestedMarker = nestedIndex < lines.length ? parseListMarker(lines[nestedIndex]) : null; + if (nestedMarker && nestedMarker.indent > baseIndent) { + const nested = renderList(lines, nestedIndex, baseIndent + 1); + children.push( + /* @__PURE__ */ jsx95( + Box34, + { + as: nested.ordered ? "ol" : "ul", + sx: nested.ordered ? styles_default35.markdownOrderedList : styles_default35.markdownUnorderedList, + children: nested.items + }, + `list-${nestedIndex}` + ) + ); + index = nested.end; + } + items.push( + /* @__PURE__ */ jsx95(Box34, { as: "li", sx: styles_default35.markdownListItem, children }, `li-${itemIndex}`) + ); + } + return { items, ordered, end: index }; +}; +var MarkdownMessage = ({ content }) => { + const { body: body3, sources: sources2 } = splitAnswerSources(stripAnswerMetadata(content)); + const lines = body3.replace(/\r\n/g, "\n").split("\n"); + const nodes = []; + let index = 0; + while (index < lines.length) { + const line = lines[index]; + if (!line.trim()) { + index += 1; + continue; + } + const heading = line.match(/^(#{1,6})\s+(.*)$/); + if (heading) { + const Tag2 = headingTag(heading[1].length); + nodes.push( + /* @__PURE__ */ jsx95(Box34, { as: Tag2, sx: styles_default35.markdownHeading, children: renderInline(heading[2], `h-${index}`) }, `h-${index}`) + ); + index += 1; + continue; + } + if (/^---+$/.test(line.trim())) { + nodes.push(/* @__PURE__ */ jsx95(Box34, { as: "hr", sx: styles_default35.markdownRule }, `hr-${index}`)); + index += 1; + continue; + } + if (parseListMarker(line)) { + const list = renderList(lines, index, 0); + nodes.push( + /* @__PURE__ */ jsx95( + Box34, + { + as: list.ordered ? "ol" : "ul", + sx: list.ordered ? styles_default35.markdownOrderedList : styles_default35.markdownUnorderedList, + children: list.items + }, + `list-${index}` + ) + ); + index = list.end; + continue; + } + const paragraph = []; + const paragraphIndex = index; + while (index < lines.length && lines[index].trim() && !lines[index].match(/^#{1,6}\s+/) && !parseListMarker(lines[index]) && !/^---+$/.test(lines[index].trim())) { + paragraph.push(lines[index]); + index += 1; + } + nodes.push( + /* @__PURE__ */ jsx95(Box34, { as: "p", sx: styles_default35.markdownParagraph, children: renderInline(paragraph.join(" "), `p-${paragraphIndex}`) }, `p-${paragraphIndex}`) + ); + } + return /* @__PURE__ */ jsxs76(Box34, { sx: styles_default35.markdown, children: [ + nodes, + /* @__PURE__ */ jsx95(sources_default, { sources: sources2 }) + ] }); +}; +var markdown_default = MarkdownMessage; + +// src/components/ask-assistant/stream.ts +var parseSseBlock = (block) => { + let eventName = "message"; + const dataLines = []; + for (const rawLine of block.split("\n")) { + const line = rawLine.replace(/\r$/, ""); + if (!line || line.startsWith(":")) + continue; + if (line.startsWith("event:")) { + eventName = line.slice(6).trim(); + continue; + } + if (line.startsWith("data:")) { + dataLines.push(line.slice(5).trimStart()); + } + } + if (eventName === "done") + return { type: "done" }; + const data = dataLines.join("\n"); + if (!data) + return null; + try { + return JSON.parse(data); + } catch { + return null; + } +}; +var isInternalEvent = (type) => type === "ActionStep" || type === "ActionOutput"; +var splitSseEvents = (buffer) => buffer.split(/\r\n\r\n|\n\n/); +var streamAssistant = async (url, signal, onEvent) => { + const response = await fetch(url, { + signal, + headers: { Accept: "text/event-stream" } + }); + if (!response.ok || !response.body) { + throw new Error(`Assistant request failed (${response.status})`); + } + const reader = response.body.getReader(); + const decoder = new TextDecoder(); + let buffer = ""; + while (true) { + const { done, value } = await reader.read(); + if (done) + break; + buffer += decoder.decode(value, { stream: true }); + const parts = splitSseEvents(buffer); + buffer = parts.pop() ?? ""; + for (const part of parts) { + const event = parseSseBlock(part); + if (event) + onEvent(event); + } + } + const trailing = parseSseBlock(buffer); + if (trailing) + onEvent(trailing); +}; +var createDefaultStream = (streamUrl, locale) => async (query, signal, onEvent) => { + const base = typeof window !== "undefined" ? window.location.origin : void 0; + const url = new URL(streamUrl, base); + url.searchParams.set("q", query); + if (locale) + url.searchParams.set("locale", locale); + await streamAssistant(url.toString(), signal, onEvent); +}; + +// src/components/ask-assistant/index.tsx +import { Fragment as Fragment8, jsx as jsx96, jsxs as jsxs77 } from "react/jsx-runtime"; +var SPLIT_VIEW_STYLE_ID = "ask-assistant-split-view"; +var ensureSplitViewStyles = () => { + if (typeof document === "undefined") + return; + let style = document.getElementById(SPLIT_VIEW_STYLE_ID); + if (!style) { + style = document.createElement("style"); + style.id = SPLIT_VIEW_STYLE_ID; + document.head.appendChild(style); + } + style.textContent = splitViewCss; +}; +var createId = () => `${Date.now()}-${Math.random().toString(36).slice(2, 8)}`; +var isMacShortcut = () => typeof navigator !== "undefined" && /Mac|iPhone|iPad|iPod/.test(navigator.platform); +var toolStepLabel = (name, labels) => { + if (name === "search_documentation") + return labels.stepSearchDocs; + if (name === "search_endpoints") + return labels.stepSearchEndpoints; + if (name === "get_endpoint_details") + return labels.stepReadEndpoints; + if (name === "fetch_document") + return labels.stepReadDocument; + if (name === "final_answer") + return labels.stepCreateResponse; + return labels.stepSearch; +}; +var processHeaderText = (count2, complete, labels) => { + if (!complete) + return labels.processRunning; + if (count2 === 1) + return labels.processCompletedOne; + return labels.processCompleted.replace("{count}", String(count2)); +}; +var ToolStepIcon = ({ name }) => name === "final_answer" || name === "fetch_document" ? /* @__PURE__ */ jsx96(book_icon_default, { size: 14, sx: styles_default35.processBookIcon }) : /* @__PURE__ */ jsx96(search_icon_default, { size: 14, sx: styles_default35.processStepIcon }); +var completeSteps = (steps2 = []) => steps2.map( + (step) => step.status === "complete" ? step : { ...step, status: "complete" } +); +var ensureFinalStep = (steps2 = []) => { + const next = completeSteps(steps2); + if (next.some((step) => step.name === "final_answer")) + return next; + return [...next, { id: createId(), name: "final_answer", status: "complete" }]; +}; +var AskAssistant = ({ + streamUrl, + stream, + open, + defaultOpen = false, + onOpenChange, + hideTrigger = false, + floatingOnMobile = true, + enableShortcut = true, + initialMessages = [], + examples: examples2 = DEFAULT_ASK_ASSISTANT_EXAMPLES, + initialHistory = [], + onAsk, + onFeedback +}) => { + const { locale, setSidebarSectionHidden } = useContext28(LibraryContext); + const sidebarHiddenBeforeOpen = useRef15(null); + const localized = messages[locale] ?? messages.en; + const titleId = useId(); + const textareaRef = useRef15(null); + const listRef = useRef15(null); + const historyRef = useRef15(null); + const abortRef = useRef15(null); + const pendingToolsRef = useRef15([]); + const conversationIdRef = useRef15(null); + const chatRef = useRef15(initialMessages); + const [mounted, setMounted] = useState27(false); + const [uncontrolledOpen, setUncontrolledOpen] = useState27(defaultOpen); + const [expanded, setExpanded] = useState27(false); + const [isSplitView, setIsSplitView] = useState27(false); + const [draft, setDraft] = useState27(""); + const [chat, setChat] = useState27(initialMessages); + const [feedback, setFeedback] = useState27({}); + const [copiedId, setCopiedId] = useState27(null); + const [activeExampleId, setActiveExampleId] = useState27(examples2[0]?.id ?? ""); + const [history, setHistory] = useState27(initialHistory); + const [historyOpen, setHistoryOpen] = useState27(false); + const isOpen = open ?? uncontrolledOpen; + const isStreaming = chat.some((message) => message.status === "streaming"); + const canSend = Boolean(draft.trim()) && !isStreaming; + const showFloatingTrigger = floatingOnMobile && !hideTrigger && mounted && !isOpen; + const labels = useMemo5( + () => ({ + button: localized["ask_assistant.button"] || "Ask Assistant", + title: localized["ask_assistant.title"] || "Assistant", + heroTitle: localized["ask_assistant.hero_title"] || "How can I help you?", + heroSubtitle: localized["ask_assistant.hero_subtitle"] || "Get answers from VTEX documentation.", + placeholder: localized["ask_assistant.placeholder"] || "Ask a question...", + send: localized["ask_assistant.send"] || "Send", + close: localized["ask_assistant.close"] || "Close", + clear: localized["ask_assistant.clear"] || "New chat", + history: localized["ask_assistant.history"] || "History", + historyClear: localized["ask_assistant.history_clear"] || "clear", + expand: localized["ask_assistant.expand"] || "Expand", + collapse: localized["ask_assistant.collapse"] || "Collapse", + copy: localized["ask_assistant.copy"] || "Copy", + copied: localized["ask_assistant.copied"] || "Copied", + regenerate: localized["ask_assistant.regenerate"] || "Regenerate", + helpful: localized["ask_assistant.helpful"] || "Helpful", + notHelpful: localized["ask_assistant.not_helpful"] || "Not helpful", + error: localized["ask_assistant.error"] || "Could not reach the assistant. Please try again.", + searching: localized["ask_assistant.searching"] || "Searching...", + searchingDocs: localized["ask_assistant.searching_docs"] || "Searching documentation", + searchingEndpoints: localized["ask_assistant.searching_endpoints"] || "Searching endpoints", + readingEndpoints: localized["ask_assistant.reading_endpoints"] || "Reading endpoint details", + readingDocument: localized["ask_assistant.reading_document"] || "Reading document", + readFile: localized["ask_assistant.read_file"] || "Read 1 file", + readFiles: localized["ask_assistant.read_files"] || "Read {count} files", + foundEndpoint: localized["ask_assistant.found_endpoint"] || "Found 1 endpoint", + foundEndpoints: localized["ask_assistant.found_endpoints"] || "Found {count} endpoints", + examples: localized["ask_assistant.examples"] || "Examples:", + tool: localized["ask_assistant.tool"] || "Tool", + processRunning: localized["ask_assistant.process_running"] || "Processing...", + processCompleted: localized["ask_assistant.process_completed"] || "Process completed ({count} steps)", + processCompletedOne: localized["ask_assistant.process_completed_one"] || "Process completed (1 step)", + stepSearchDocs: localized["ask_assistant.step_search_docs"] || "Search documentation", + stepSearchEndpoints: localized["ask_assistant.step_search_endpoints"] || "Search endpoints", + stepReadEndpoints: localized["ask_assistant.step_read_endpoints"] || "Read endpoint details", + stepReadDocument: localized["ask_assistant.step_read_document"] || "Read document", + stepCreateResponse: localized["ask_assistant.step_create_response"] || "Create response", + stepSearch: localized["ask_assistant.step_search"] || "Search" + }), + [localized] + ); + const categories = useMemo5( + () => examples2.filter( + (category) => category.questions.some((question2) => question2.trim()) + ), + [examples2] + ); + const setOpen = useCallback4( + (next) => { + if (open === void 0) + setUncontrolledOpen(next); + onOpenChange?.(next); + }, + [open, onOpenChange] + ); + const persistConversation = useCallback4( + (id, messages3) => { + const title9 = conversationTitle(messages3); + if (!title9) + return; + setHistory((current) => { + const next = upsertHistory(current, { id, title: title9, messages: messages3 }); + writeHistory(next); + return next; + }); + }, + [] + ); + const patchAssistant = useCallback4( + (id, patch) => { + setChat( + (current) => current.map((message) => { + if (message.id !== id) + return message; + return typeof patch === "function" ? patch(message) : { ...message, ...patch }; + }) + ); + }, + [] + ); + const runStream = useCallback4( + async (query, assistantId) => { + abortRef.current?.abort(); + const controller = new AbortController(); + abortRef.current = controller; + pendingToolsRef.current = []; + let content = ""; + const applyContent = (next, status) => { + const visible = stripAnswerMetadata(next); + if (!visible) + return; + content = visible; + patchAssistant(assistantId, { + content: visible, + ...status ? { status } : {} + }); + }; + const handleEvent = (event) => { + if (isInternalEvent(event.type)) + return; + if (event.type === "ToolCall" && event.name) { + const stepId = createId(); + pendingToolsRef.current.push({ name: event.name, stepId }); + patchAssistant(assistantId, (message) => ({ + ...message, + steps: [ + ...message.steps ?? [], + { id: stepId, name: event.name, status: "running" } + ] + })); + const answer = event.name === "final_answer" && typeof event.arguments?.answer === "string" ? event.arguments.answer : ""; + if (answer) + applyContent(answer); + return; + } + if (event.type === "ToolOutput") { + const pending = pendingToolsRef.current.shift(); + if (pending) { + patchAssistant(assistantId, (message) => ({ + ...message, + steps: (message.steps ?? []).map( + (step) => step.id === pending.stepId ? { ...step, status: "complete" } : step + ) + })); + } + if (event.output && (event.is_final_answer || pending?.name === "final_answer")) { + applyContent(event.output); + } + return; + } + if (event.type === "FinalAnswerStep" && event.output) { + const visible = stripAnswerMetadata(event.output); + content = visible; + patchAssistant(assistantId, (message) => ({ + ...message, + content: visible, + status: "complete", + steps: ensureFinalStep(message.steps) + })); + } + }; + try { + const run = stream ?? (streamUrl ? createDefaultStream(streamUrl, locale) : void 0); + if (!run) { + throw new Error("AskAssistant requires stream or streamUrl"); + } + await run(query, controller.signal, handleEvent); + patchAssistant(assistantId, (message) => ({ + ...message, + status: content ? "complete" : "error", + content: content || labels.error, + steps: content ? ensureFinalStep(message.steps) : completeSteps(message.steps) + })); + } catch (error) { + if (error.name === "AbortError") + return; + patchAssistant(assistantId, (message) => ({ + ...message, + status: "error", + content: labels.error, + steps: completeSteps(message.steps) + })); + } + }, + [labels, locale, stream, streamUrl, patchAssistant] + ); + const submit = useCallback4( + async (text4) => { + const trimmed = text4.trim(); + if (!trimmed || isStreaming) + return; + const userMessage = { + id: createId(), + role: "user", + content: trimmed, + status: "complete" + }; + const assistantMessage = { + id: createId(), + role: "assistant", + content: "", + steps: [], + status: "streaming" + }; + setDraft(""); + if (!conversationIdRef.current) + conversationIdRef.current = createId(); + setChat((current) => { + const next = [...current, userMessage, assistantMessage]; + chatRef.current = next; + return next; + }); + onAsk?.(trimmed); + await runStream(trimmed, assistantMessage.id); + }, + [isStreaming, onAsk, runStream] + ); + const clearChat = () => { + abortRef.current?.abort(); + if (conversationIdRef.current && chatRef.current.length > 0) { + persistConversation(conversationIdRef.current, chatRef.current); + } + conversationIdRef.current = null; + setChat([]); + chatRef.current = []; + setFeedback({}); + setHistoryOpen(false); + }; + const clearHistory = () => { + setHistory([]); + writeHistory([]); + setHistoryOpen(false); + }; + const openHistoryItem = (item2) => { + setHistoryOpen(false); + if (item2.id === conversationIdRef.current) + return; + abortRef.current?.abort(); + if (conversationIdRef.current && chatRef.current.length > 0) { + persistConversation(conversationIdRef.current, chatRef.current); + } + conversationIdRef.current = item2.id; + chatRef.current = item2.messages; + setChat(item2.messages); + setFeedback({}); + setDraft(""); + }; + const regenerate = (assistantId) => { + const index = chat.findIndex((message) => message.id === assistantId); + if (index < 1) + return; + const userMessage = [...chat.slice(0, index)].reverse().find((message) => message.role === "user"); + if (!userMessage) + return; + const nextAssistant = { + id: createId(), + role: "assistant", + content: "", + steps: [], + status: "streaming" + }; + setChat((current) => [ + ...current.slice(0, index), + nextAssistant, + ...current.slice(index + 1) + ]); + setFeedback((current) => { + const next = { ...current }; + delete next[assistantId]; + return next; + }); + void runStream(userMessage.content, nextAssistant.id); + }; + const copyAnswer = (message) => { + const visible = stripAnswerMetadata(message.content); + if (!visible) + return; + copy4(visible); + setCopiedId(message.id); + window.setTimeout(() => setCopiedId(null), 1600); + }; + const vote = (message, liked) => { + setFeedback((current) => ({ ...current, [message.id]: liked })); + const messageIndex = chat.findIndex((item2) => item2.id === message.id); + const query = chat.slice(0, messageIndex).reverse().find((item2) => item2.role === "user")?.content ?? ""; + onFeedback?.({ query, answer: stripAnswerMetadata(message.content), liked }); + }; + useEffect25(() => { + ensureSplitViewStyles(); + setMounted(true); + const stored = readHistory(); + if (stored.length) + setHistory(stored); + const mq = window.matchMedia(SPLIT_VIEW_MQ); + const updateSplitView = () => setIsSplitView(mq.matches); + updateSplitView(); + mq.addEventListener("change", updateSplitView); + return () => { + abortRef.current?.abort(); + mq.removeEventListener("change", updateSplitView); + }; + }, []); + useLayoutEffect2(() => { + const root = document.documentElement; + if (!isOpen || !isSplitView) { + root.style.removeProperty("--ask-assistant-top"); + return; + } + const header3 = document.querySelector("[data-docs-header]"); + const sync = () => { + const top = header3 ? Math.max(0, Math.round(header3.getBoundingClientRect().bottom)) : 0; + root.style.setProperty("--ask-assistant-top", `${top}px`); + }; + sync(); + if (!header3) + return; + const observer = new ResizeObserver(sync); + observer.observe(header3); + window.addEventListener("resize", sync); + window.addEventListener("scroll", sync, { passive: true }); + return () => { + observer.disconnect(); + window.removeEventListener("resize", sync); + window.removeEventListener("scroll", sync); + root.style.removeProperty("--ask-assistant-top"); + }; + }, [isOpen, isSplitView]); + useEffect25(() => { + if (!isSplitView) + setExpanded(false); + }, [isSplitView]); + useEffect25(() => { + if (!isOpen || !isSplitView) + return; + setSidebarSectionHidden((hidden) => { + sidebarHiddenBeforeOpen.current = hidden; + return true; + }); + return () => { + const previous = sidebarHiddenBeforeOpen.current; + sidebarHiddenBeforeOpen.current = null; + if (previous !== null) + setSidebarSectionHidden(previous); + }; + }, [isOpen, isSplitView, setSidebarSectionHidden]); + useEffect25(() => { + if (!enableShortcut) + return; + const onKeyDown = (event) => { + if ((event.metaKey || event.ctrlKey) && event.key.toLowerCase() === "i") { + event.preventDefault(); + setOpen(!isOpen); + } + }; + window.addEventListener("keydown", onKeyDown); + return () => window.removeEventListener("keydown", onKeyDown); + }, [enableShortcut, isOpen, setOpen]); + useEffect25(() => { + if (!isOpen) { + setHistoryOpen(false); + return; + } + const timer = window.setTimeout(() => textareaRef.current?.focus(), 50); + return () => window.clearTimeout(timer); + }, [isOpen]); + useEffect25(() => { + if (!isOpen) + return; + const onKeyDown = (event) => { + if (event.key !== "Escape") + return; + if (historyOpen) { + setHistoryOpen(false); + return; + } + setOpen(false); + }; + window.addEventListener("keydown", onKeyDown); + return () => window.removeEventListener("keydown", onKeyDown); + }, [historyOpen, isOpen, setOpen]); + useEffect25(() => { + if (!historyOpen) + return; + const onPointerDown = (event) => { + if (historyRef.current && !historyRef.current.contains(event.target)) { + setHistoryOpen(false); + } + }; + window.addEventListener("pointerdown", onPointerDown); + return () => window.removeEventListener("pointerdown", onPointerDown); + }, [historyOpen]); + useEffect25(() => { + chatRef.current = chat; + if (isStreaming) + return; + const id = conversationIdRef.current; + if (!id || chat.length === 0) + return; + persistConversation(id, chat); + }, [chat, isStreaming, persistConversation]); + useEffect25(() => { + const node = listRef.current; + if (node) + node.scrollTop = node.scrollHeight; + }, [chat]); + useEffect25(() => { + if (!categories.some((category) => category.id === activeExampleId)) { + setActiveExampleId(categories[0]?.id ?? ""); + } + }, [activeExampleId, categories]); + const onDraftKeyDown = (event) => { + if (event.key === "Enter" && !event.shiftKey) { + event.preventDefault(); + void submit(draft); + } + }; + const isEmpty = chat.length === 0; + const activeCategory = categories.find((category) => category.id === activeExampleId) ?? categories[0]; + const composer = /* @__PURE__ */ jsx96(Box35, { sx: isEmpty ? styles_default35.inputWrapCentered : styles_default35.inputWrap, children: /* @__PURE__ */ jsxs77(Box35, { sx: isEmpty ? styles_default35.inputBoxEmpty : styles_default35.inputBox, children: [ + /* @__PURE__ */ jsx96( + Box35, + { + as: "textarea", + ref: textareaRef, + sx: styles_default35.textarea, + rows: 2, + value: draft, + placeholder: labels.placeholder, + disabled: isStreaming, + onChange: (event) => setDraft(event.currentTarget.value), + onKeyDown: onDraftKeyDown + } + ), + /* @__PURE__ */ jsx96(Flex30, { sx: styles_default35.inputFooter, children: /* @__PURE__ */ jsx96( + Box35, + { + as: "button", + type: "button", + sx: styles_default35.sendButton(canSend), + "aria-label": labels.send, + disabled: !canSend, + onClick: () => void submit(draft), + children: /* @__PURE__ */ jsx96(send_icon_default, { size: 14 }) + } + ) }) + ] }) }); + const panel2 = isOpen && mounted && /* @__PURE__ */ jsxs77(Fragment8, { children: [ + isSplitView ? null : /* @__PURE__ */ jsx96(Box35, { sx: styles_default35.overlay, onClick: () => setOpen(false) }), + /* @__PURE__ */ jsxs77( + Box35, + { + sx: styles_default35.panel(expanded), + "data-ask-assistant-panel": true, + "data-expanded": expanded ? "true" : void 0, + role: "dialog", + "aria-modal": isSplitView ? "false" : "true", + "aria-labelledby": titleId, + children: [ + /* @__PURE__ */ jsxs77(Flex30, { sx: styles_default35.header, children: [ + /* @__PURE__ */ jsxs77(Flex30, { sx: styles_default35.headerTitle, id: titleId, children: [ + /* @__PURE__ */ jsx96(sparkle_icon_default, { size: 16, sx: styles_default35.triggerIcon }), + /* @__PURE__ */ jsx96(Text26, { children: labels.title }) + ] }), + /* @__PURE__ */ jsxs77(Flex30, { sx: styles_default35.headerActions, children: [ + isSplitView ? /* @__PURE__ */ jsx96( + Box35, + { + as: "button", + type: "button", + sx: styles_default35.iconButton, + "aria-label": expanded ? labels.collapse : labels.expand, + onClick: () => setExpanded((value) => !value), + children: expanded ? /* @__PURE__ */ jsx96(collapse_icon_default, { size: 16 }) : /* @__PURE__ */ jsx96(expand_icon_default, { size: 16 }) + } + ) : null, + /* @__PURE__ */ jsx96( + Box35, + { + as: "button", + type: "button", + sx: styles_default35.iconButton, + "aria-label": labels.clear, + disabled: isEmpty, + onClick: clearChat, + children: /* @__PURE__ */ jsx96(new_chat_icon_default, { size: 16 }) + } + ), + /* @__PURE__ */ jsxs77(Box35, { ref: historyRef, sx: styles_default35.historyWrap, children: [ + /* @__PURE__ */ jsx96( + Box35, + { + as: "button", + type: "button", + sx: historyOpen ? styles_default35.iconButtonActive : styles_default35.iconButton, + "aria-label": labels.history, + "aria-haspopup": "menu", + "aria-expanded": historyOpen, + disabled: history.length === 0, + onClick: () => setHistoryOpen((value) => !value), + children: /* @__PURE__ */ jsx96(history_icon_default, { size: 16 }) + } + ), + historyOpen && history.length > 0 ? /* @__PURE__ */ jsxs77( + Box35, + { + sx: styles_default35.historyMenu, + role: "menu", + "aria-label": labels.history, + children: [ + /* @__PURE__ */ jsxs77(Flex30, { sx: styles_default35.historyHeader, children: [ + /* @__PURE__ */ jsx96(Text26, { sx: styles_default35.historyTitle, children: labels.history }), + /* @__PURE__ */ jsx96( + Box35, + { + as: "button", + type: "button", + sx: styles_default35.historyClear, + onClick: clearHistory, + children: labels.historyClear + } + ) + ] }), + /* @__PURE__ */ jsx96(Box35, { sx: styles_default35.historyList, children: history.map((item2) => /* @__PURE__ */ jsxs77( + Box35, + { + as: "button", + type: "button", + role: "menuitem", + sx: styles_default35.historyItem, + onClick: () => openHistoryItem(item2), + children: [ + /* @__PURE__ */ jsx96(history_icon_default, { size: 14, sx: styles_default35.historyItemIcon }), + /* @__PURE__ */ jsx96(Text26, { sx: styles_default35.historyItemText, children: item2.title }) + ] + }, + item2.id + )) }) + ] + } + ) : null + ] }), + /* @__PURE__ */ jsx96( + Box35, + { + as: "button", + type: "button", + sx: styles_default35.iconButton, + "aria-label": labels.close, + onClick: () => setOpen(false), + children: /* @__PURE__ */ jsx96(close_icon_default, { sx: { width: "16px", height: "16px" } }) + } + ) + ] }) + ] }), + isEmpty ? /* @__PURE__ */ jsx96(Box35, { sx: styles_default35.emptyState, children: /* @__PURE__ */ jsxs77(Box35, { sx: styles_default35.emptyMain, children: [ + /* @__PURE__ */ jsxs77(Box35, { sx: styles_default35.emptyHero, children: [ + /* @__PURE__ */ jsx96(Flex30, { sx: styles_default35.emptyHeroIcon, "aria-hidden": true, children: /* @__PURE__ */ jsx96(sparkle_icon_default, { size: 18 }) }), + /* @__PURE__ */ jsxs77(Box35, { sx: styles_default35.emptyHeroCopy, children: [ + /* @__PURE__ */ jsx96(Text26, { as: "h2", sx: styles_default35.emptyHeroTitle, children: labels.heroTitle }), + /* @__PURE__ */ jsx96(Text26, { sx: styles_default35.emptyHeroSubtitle, children: labels.heroSubtitle }) + ] }) + ] }), + composer, + activeCategory ? /* @__PURE__ */ jsxs77(Box35, { sx: styles_default35.examples, children: [ + /* @__PURE__ */ jsx96(Text26, { sx: styles_default35.examplesLabel, children: labels.examples }), + /* @__PURE__ */ jsx96( + Box35, + { + sx: styles_default35.examplePills, + role: "tablist", + "aria-label": labels.examples, + children: categories.map((category) => { + const Icon82 = category.Icon; + const isActive = category.id === activeCategory.id; + return /* @__PURE__ */ jsxs77( + Box35, + { + as: "button", + type: "button", + role: "tab", + "aria-selected": isActive, + sx: styles_default35.examplePill(isActive), + onClick: () => setActiveExampleId(category.id), + children: [ + Icon82 ? /* @__PURE__ */ jsx96(Icon82, { size: 14, sx: styles_default35.examplePillIcon }) : null, + category.title + ] + }, + category.id + ); + }) + } + ), + /* @__PURE__ */ jsx96(Box35, { sx: styles_default35.exampleQuestions, children: activeCategory.questions.filter((question2) => question2.trim()).map((question2) => /* @__PURE__ */ jsx96( + Box35, + { + as: "button", + type: "button", + sx: styles_default35.exampleQuestion, + onClick: () => void submit(question2), + children: question2 + }, + question2 + )) }) + ] }) : null + ] }) }) : /* @__PURE__ */ jsxs77(Fragment8, { children: [ + /* @__PURE__ */ jsx96(Box35, { ref: listRef, sx: styles_default35.messages, "aria-live": "polite", children: chat.map( + (message) => message.role === "user" ? /* @__PURE__ */ jsx96(Text26, { sx: styles_default35.userBubble, children: message.content }, message.id) : /* @__PURE__ */ jsxs77(Box35, { sx: styles_default35.assistantBlock, children: [ + message.status === "streaming" || message.steps && message.steps.length > 0 ? /* @__PURE__ */ jsxs77(Box35, { sx: styles_default35.process, children: [ + message.status === "error" ? null : /* @__PURE__ */ jsxs77(Flex30, { sx: styles_default35.processHeader, children: [ + message.status === "complete" ? /* @__PURE__ */ jsx96(Flex30, { sx: styles_default35.processCheck, "aria-hidden": true, children: /* @__PURE__ */ jsx96(check_icon_default, { size: 10 }) }) : /* @__PURE__ */ jsx96(Box35, { sx: styles_default35.processSpinner, "aria-hidden": true }), + /* @__PURE__ */ jsx96(Text26, { children: processHeaderText( + message.steps?.length ?? 0, + message.status === "complete", + labels + ) }) + ] }), + message.steps && message.steps.length > 0 ? /* @__PURE__ */ jsx96(Box35, { sx: styles_default35.processSteps, children: message.steps.map((step) => /* @__PURE__ */ jsxs77(Flex30, { sx: styles_default35.processStep, children: [ + /* @__PURE__ */ jsx96(Text26, { as: "span", sx: styles_default35.processBadge, children: labels.tool }), + /* @__PURE__ */ jsx96(ToolStepIcon, { name: step.name }), + /* @__PURE__ */ jsx96(Text26, { as: "span", sx: styles_default35.processStepLabel, children: toolStepLabel(step.name, labels) }) + ] }, step.id)) }) : null + ] }) : null, + message.status === "error" ? /* @__PURE__ */ jsx96(Text26, { sx: styles_default35.errorText, children: message.content }) : message.content ? /* @__PURE__ */ jsx96(markdown_default, { content: message.content }) : null, + message.status === "complete" && message.content ? /* @__PURE__ */ jsxs77(Flex30, { sx: styles_default35.messageActions, children: [ + /* @__PURE__ */ jsx96( + Box35, + { + as: "button", + type: "button", + sx: feedback[message.id] === true ? styles_default35.actionButtonActive : styles_default35.actionButton, + "aria-label": labels.helpful, + onClick: () => vote(message, true), + children: feedback[message.id] === true ? /* @__PURE__ */ jsx96(like_selected_icon_default, { size: 16 }) : /* @__PURE__ */ jsx96(like_icon_default, { size: 16 }) + } + ), + /* @__PURE__ */ jsx96( + Box35, + { + as: "button", + type: "button", + sx: feedback[message.id] === false ? styles_default35.actionButtonActive : styles_default35.actionButton, + "aria-label": labels.notHelpful, + onClick: () => vote(message, false), + children: /* @__PURE__ */ jsx96(like_icon_default, { size: 16, sx: styles_default35.dislikeIcon }) + } + ), + /* @__PURE__ */ jsx96( + Box35, + { + as: "button", + type: "button", + sx: styles_default35.actionButton, + "aria-label": copiedId === message.id ? labels.copied : labels.copy, + onClick: () => copyAnswer(message), + children: /* @__PURE__ */ jsx96(copy_icon_default, { size: 14 }) + } + ), + /* @__PURE__ */ jsx96( + Box35, + { + as: "button", + type: "button", + sx: styles_default35.actionButton, + "aria-label": labels.regenerate, + onClick: () => regenerate(message.id), + children: /* @__PURE__ */ jsx96(refresh_icon_default, { size: 14 }) + } + ) + ] }) : null + ] }, message.id) + ) }), + composer + ] }) + ] + } + ) + ] }); + return /* @__PURE__ */ jsxs77(Fragment8, { children: [ + hideTrigger ? null : /* @__PURE__ */ jsxs77( + Box35, + { + as: "button", + type: "button", + sx: floatingOnMobile ? styles_default35.trigger : { ...styles_default35.trigger, display: "inline-flex" }, + "data-ask-assistant-trigger": true, + "aria-haspopup": "dialog", + "aria-expanded": isOpen, + onClick: () => setOpen(!isOpen), + children: [ + /* @__PURE__ */ jsx96(sparkle_icon_default, { size: 14, sx: styles_default35.triggerIcon }), + /* @__PURE__ */ jsx96(Text26, { children: labels.button }), + /* @__PURE__ */ jsxs77(Flex30, { as: "span", sx: styles_default35.triggerShortcut, "aria-hidden": "true", children: [ + /* @__PURE__ */ jsx96(Box35, { as: "kbd", sx: styles_default35.triggerKbd, children: isMacShortcut() ? "\u2318" : "Ctrl" }), + /* @__PURE__ */ jsx96(Box35, { as: "kbd", sx: styles_default35.triggerKbd, children: "I" }) + ] }) + ] + } + ), + showFloatingTrigger ? createPortal2( + /* @__PURE__ */ jsx96( + Box35, + { + as: "button", + type: "button", + sx: styles_default35.floatingTrigger, + "data-ask-assistant-trigger": true, + "data-ask-assistant-fab": true, + "aria-label": labels.button, + title: labels.button, + "aria-haspopup": "dialog", + "aria-expanded": isOpen, + onClick: () => setOpen(true), + children: /* @__PURE__ */ jsx96(sparkle_icon_default, { size: 22 }) + } + ), + document.body + ) : null, + mounted ? createPortal2(panel2, document.body) : null + ] }); +}; +var ask_assistant_default = AskAssistant; + +// src/components/breadcrumb/index.tsx +import { Flex as Flex31 } from "@vtex/brand-ui"; +import Link10 from "next/link.js"; + +// src/components/breadcrumb/styles.ts +var muted2 = "#5E6E84"; +var ink = "#142032"; +var pink2 = "#E31C58"; +var breadcrumb2 = { + alignItems: "center", + flexWrap: "wrap", + rowGap: "4px", + minWidth: 0, + color: muted2, + fontSize: "14px", + lineHeight: "20px", + fontWeight: "400", + "&& a, && [data-breadcrumb-label]": { + color: muted2, + fontWeight: "400", + textDecoration: "none", + whiteSpace: "nowrap", + overflow: "hidden", + textOverflow: "ellipsis", + maxWidth: ["180px", "280px", "none"] + }, + "&& a": { + cursor: "pointer", + transition: "color 0.15s ease", + ":hover": { + color: ink + }, + ":focus-visible": { + outline: `2px solid ${pink2}`, + outlineOffset: "2px", + borderRadius: "2px" + } + } +}; +var crumb = { + alignItems: "center", + minWidth: 0, + "&:not(:last-child)::after": { + content: '""', + display: "inline-block", + width: "5px", + height: "5px", + mx: "8px", + borderRight: "1.5px solid currentColor", + borderTop: "1.5px solid currentColor", + transform: "rotate(45deg)", + opacity: 0.55, + flexShrink: 0, + pointerEvents: "none" + } +}; +var styles_default36 = { breadcrumb: breadcrumb2, crumb }; + +// src/components/breadcrumb/index.tsx +import { jsx as jsx97 } from "react/jsx-runtime"; +var Breadcrumb = ({ + breadcrumbList, + breadcumbList +}) => { + const items = (breadcrumbList ?? breadcumbList ?? []).slice(0, -1); + return /* @__PURE__ */ jsx97(Flex31, { as: "nav", "aria-label": "Breadcrumb", sx: styles_default36.breadcrumb, children: items.map((item2, idx) => { + const label4 = item2.name || "Untitled"; + return /* @__PURE__ */ jsx97(Flex31, { as: "span", sx: styles_default36.crumb, children: item2.type === "markdown" ? /* @__PURE__ */ jsx97(Link10, { href: item2.slug, children: label4 }) : /* @__PURE__ */ jsx97("span", { "data-breadcrumb-label": true, children: label4 }) }, item2.slug || idx); + }) }); +}; +var breadcrumb_default = Breadcrumb; + +// src/components/input/index.tsx +import { useState as useState28, useEffect as useEffect26 } from "react"; + +// src/components/input/styles.ts +var input3 = { + background: "none", + border: "#F4F4F4", + color: "#545454", + fontSize: ["14px"], + width: "100%", + transition: "flex 0.3s", + outline: "none" +}; +var icon4 = { + minWidth: "16px", + minHeight: "16px", + width: "16px", + mr: "8px", + flex: 0, + maxWidth: "fit-content" +}; +var container15 = { + paddingLeft: "12px", + alignItems: "center", + justifyContent: "center", + background: "#F4F4F4", + width: "100%", + height: "40px", + borderRadius: "4px", + transition: "all 0.3s ease-out", + cursor: "pointer", + border: "1px solid #F4F4F4", + ":hover": { + transition: "all 0.3s ease-out", + border: "1px solid #3B3B3B" + } +}; +var styles_default37 = { container: container15, input: input3, icon: icon4 }; + +// src/components/input/index.tsx +import { Flex as Flex32 } from "@vtex/brand-ui"; +import { jsx as jsx98, jsxs as jsxs78 } from "react/jsx-runtime"; +var Input = ({ value, onChange, placeholder = "", Icon: Icon82 }) => { + const [inputValue, setInputValue] = useState28(value ?? ""); + useEffect26(() => { + if (inputValue !== value) + setInputValue(value); + }, [value]); + return /* @__PURE__ */ jsxs78(Flex32, { sx: styles_default37.container, children: [ + Icon82 && /* @__PURE__ */ jsx98(Icon82, { sx: styles_default37.icon }), + /* @__PURE__ */ jsx98( + "input", + { + style: styles_default37.input, + value: inputValue, + placeholder, + onChange: (e) => { + setInputValue(e.currentTarget.value); + onChange(e.currentTarget.value); + } + } + ) + ] }); +}; +var input_default = Input; + +// src/components/subscription-list/index.tsx +import { useContext as useContext29, useState as useState29 } from "react"; +import { Box as Box36, Button as Button9, Text as Text27, Flex as Flex33, Link as Link11 } from "@vtex/brand-ui"; + +// src/utils/get-url.tsx +var getFeedbackURL = (currentUrl) => { + const encodedUrl = currentUrl ? encodeURIComponent(currentUrl) : ""; + return `https://docs.google.com/forms/d/e/1FAIpQLSfmnotPvPjw-SjiE7lt2Nt3RQgNUe10ixXZmuO2v9enOJReoQ/viewform?entry.1972292648=developers.vtex.com&entry.1799503232=${encodedUrl}`; +}; +var getGithubURL = () => { + return `https://github.com/vtex-apps`; +}; +var getDeveloperPortalURL = () => { + return `https://developers.vtex.com/`; +}; +var getHelpCenterURL = () => { + return `https://help.vtex.com/`; +}; +var getCommunityURL = () => { + return `https://community.vtex.com/?_ga=2.198523433.743584735.1647618303-1974737580.1645714642`; +}; +var getNewsletterURL = (locale = "en") => { + return `https://vtexhelp.myvtex.com/educationnewsletter/${locale}`; +}; +var getPrivacyNoticeURL = (locale = "en") => { + const localeMap = { en: "us-en", pt: "pt-br", es: "es-mx" }; + return `https://vtex.com/${localeMap[locale]}/trust/general-external-privacy-notice/`; +}; +var getLinkedinURL = () => { + return "https://linkedin.com/company/vtex"; +}; +var getFacebookURL = () => { + return "https://www.facebook.com/vtexcommerce/"; +}; +var getInstagramURL = () => { + return "https://www.instagram.com/vtexbrasil/"; +}; +var getYoutubeURL = () => { + return "https://www.youtube.com/c/VTEX-Commerce/featured"; +}; + +// src/components/subscription-list/styles.ts +var controlHeight = "48px"; +var sectionContainer2 = { + borderTop: "1px solid #e7e9ef", + px: ["16px", "24px", "32px"], + py: ["42px", "44px", "64px"], + backgroundColor: "muted.4", + textAlign: "center", + display: "flex", + flexDirection: "column", + alignItems: "center", + justifyContent: "center" +}; +var cardContainer4 = { + mt: ["16px", "24px", "32px"], + px: ["16px", "24px", "50px"], + py: ["16px", "24px", "40px"], + width: ["100%", "90%", "80%"], + maxWidth: "1035px", + backgroundColor: "white", + borderRadius: "8px", + border: "1px solid #E7E9EE" +}; +var title7 = { + fontSize: ["22px", "26px", "28px", "32px"], + lineHeight: ["28px", "34px", "36px", "40px"], + fontWeight: "400", + color: "#132032", + textAlign: "center", + letterSpacing: "-0.02em", + width: "100%" +}; +var description4 = { + fontSize: ["14px", "16px"], + lineHeight: ["20px", "24px"], + textAlign: "center", + marginBottom: "16px", + color: "#4A596B" +}; +var inputContainer = { + display: "flex", + flexDirection: ["column", "row"], + gap: "8px", + justifyContent: "center", + alignItems: ["stretch", "flex-end"], + width: "100%" +}; +var emailInputField = { + flex: 1, + minWidth: 0, + width: "100%", + border: "1px solid #a1a8b3", + borderRadius: "4px", + color: "#4A4A4A", + fontSize: "16px", + lineHeight: "22px", + px: "16px", + py: 0, + height: controlHeight, + minHeight: controlHeight, + boxSizing: "border-box", + "&::placeholder": { + color: "#4A4A4A" + }, + "&:focus": { + outline: "none", + borderColor: "#A1A8B3" + } +}; +var button5 = { + transition: "all 0.3s ease-out", + minHeight: controlHeight, + height: controlHeight, + alignSelf: "stretch", + minWidth: "140px", + whiteSpace: "nowrap", + px: "16px" +}; +var privacyText = { + fontSize: "14px", + color: "#A1A8B3", + lineHeight: "20px", + fontWeight: "400", + margin: "16px 0 0", + textAlign: "center" +}; +var popupCard = { + backgroundColor: "white", + boxShadow: "0 4px 6px rgba(0, 0, 0, 0.1)", + width: "100%", + maxWidth: "400px", + padding: ["8px", "12px"], + boxSizing: "border-box", + margin: "0 auto", + display: "flex", + flexDirection: "column", + alignItems: "center", + justifyContent: "center", + borderRadius: "6px", + marginTop: "16px", + alignSelf: "center" +}; +var styles_default38 = { + sectionContainer: sectionContainer2, + cardContainer: cardContainer4, + title: title7, + description: description4, + inputContainer, + emailInputField, + button: button5, + privacyText, + popupCard +}; + +// src/components/subscription-list/index.tsx +import { jsx as jsx99, jsxs as jsxs79 } from "react/jsx-runtime"; +var SubscriptionList = () => { + const { locale } = useContext29(LibraryContext); + const localizedMessages = messages[locale] ?? messages.en; + const [email, setEmail] = useState29(""); + const [message, setMessage] = useState29(""); + const [messageType, setMessageType] = useState29(""); + const clearMessageAfterTimeout = () => { + setTimeout(() => { + setMessage(""); + setMessageType(""); + }, 3e3); + }; + const showMessage = (type, text4) => { + setMessageType(type); + setMessage(text4); + clearMessageAfterTimeout(); + if (type === "success") + setEmail(""); + }; + const checkEmail = async (email2) => { + const apiKey = process.env.NEXT_PUBLIC_NEWSLETTER_API_KEY; + if (!apiKey) { + console.error(localizedMessages["subscription_list.api_key_error"]); + return "error"; + } + const url = `https://mailcheck.p.rapidapi.com/?email=${encodeURIComponent( + email2 + )}`; + try { + const response = await fetch(url, { + method: "GET", + headers: { + "x-rapidapi-host": "mailcheck.p.rapidapi.com", + "x-rapidapi-key": apiKey + } + }); + if (!response.ok) { + console.error( + "Email validation failed:", + response.status, + response.statusText + ); + return "error"; + } + const data = await response.json(); + if (typeof data.block !== "boolean") { + console.error("Email validation returned an unusable response:", data); + return "error"; + } + return data.block ? "invalid" : "valid"; + } catch (error) { + console.error(error); + return "error"; + } + }; + const handleSubscribe = async () => { + if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)) { + showMessage("error", localizedMessages["subscription_list.invalid_email"]); + return; + } + const validationResult = await checkEmail(email); + if (validationResult === "invalid") { + showMessage("error", localizedMessages["subscription_list.invalid_email"]); + return; + } + if (validationResult === "error") { + showMessage("error", localizedMessages["subscription_list.error"]); + return; + } + const baseURL = "https://hooks.zapier.com/hooks/catch/11585741/2pahup2/?email="; + const browserLocale = navigator.language || "en-US"; + const currentDate = /* @__PURE__ */ new Date(); + const formattedDate = currentDate.toLocaleString(browserLocale, { + month: "short", + day: "2-digit", + year: "numeric", + hour: "2-digit", + minute: "2-digit", + second: "2-digit", + hour12: false + }); + const urlEnd = `&locale=${browserLocale}&date=${encodeURIComponent( + formattedDate + )}`; + const emailEncoded = encodeURIComponent(email); + const url = baseURL + emailEncoded + urlEnd; + try { + const response = await fetch(url, { method: "POST" }); + if (!response.ok) { + console.error( + "Subscription failed:", + response.status, + response.statusText + ); + showMessage("error", localizedMessages["subscription_list.error"]); + return; + } + showMessage("success", localizedMessages["subscription_list.success"]); + } catch (error) { + console.error("Error:", error); + showMessage("error", localizedMessages["subscription_list.error"]); + } + }; + return /* @__PURE__ */ jsxs79(Box36, { sx: styles_default38.sectionContainer, children: [ + /* @__PURE__ */ jsx99(Text27, { sx: styles_default38.title, children: localizedMessages["landing_page_subscription.title"] }), + /* @__PURE__ */ jsx99(Flex33, { sx: styles_default38.cardContainer, children: /* @__PURE__ */ jsxs79("div", { children: [ + /* @__PURE__ */ jsxs79(Text27, { sx: styles_default38.description, children: [ + localizedMessages["landing_page_subscription.description"].split( + "newsletter" + )[0], + /* @__PURE__ */ jsx99( + "a", + { + href: getNewsletterURL(locale), + target: "_blank", + rel: "noopener noreferrer", + children: "newsletter" + } + ), + localizedMessages["landing_page_subscription.description"].split( + "newsletter" + )[1] + ] }), + /* @__PURE__ */ jsxs79(Flex33, { sx: styles_default38.inputContainer, children: [ + /* @__PURE__ */ jsx99( + Box36, + { + as: "input", + id: "email", + type: "email", + "aria-label": "Email", + placeholder: "Email", + value: email, + onChange: (e) => setEmail(e.target.value), + sx: styles_default38.emailInputField + } + ), + /* @__PURE__ */ jsx99( + Button9, + { + type: "button", + size: "regular", + onClick: handleSubscribe, + sx: styles_default38.button, + children: localizedMessages["landing_page_newsletter.Button"] + } + ) + ] }), + /* @__PURE__ */ jsxs79(Text27, { sx: styles_default38.privacyText, children: [ + localizedMessages["subscription_list.privacy_notice"], + " ", + /* @__PURE__ */ jsx99( + Link11, + { + href: getPrivacyNoticeURL(locale), + target: "_blank", + rel: "noopener noreferrer", + children: localizedMessages["subscription_list.privacy_policy_link"] + } + ) + ] }), + message && /* @__PURE__ */ jsx99( + Box36, + { + sx: { + ...styles_default38.popupCard, + backgroundColor: messageType === "success" ? "#dff1e0" : "#f8e3e3" + }, + children: /* @__PURE__ */ jsx99(Text27, { children: message }) + } + ) + ] }) }) + ] }); +}; +var subscription_list_default = SubscriptionList; + +// src/components/footer/index.tsx +import { useContext as useContext30 } from "react"; +import { Box as Box37, Flex as Flex34, Link as Link12 } from "@vtex/brand-ui"; + +// src/components/icons/vtex-logo-footer.tsx +import { Icon as Icon52 } from "@vtex/brand-ui"; +import { jsx as jsx100, jsxs as jsxs80 } from "react/jsx-runtime"; +var VTEXLogoFooter = (props) => /* @__PURE__ */ jsxs80( + Icon52, + { + ...props, + viewBox: "0 0 61 22", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + children: [ + /* @__PURE__ */ jsx100( + "path", + { + d: "M23.667 0.000165906H4.55235C3.47417 -0.0137423 2.59101 0.848566 2.57987 1.92506C2.57708 2.25886 2.65788 2.58709 2.81668 2.87916L4.72787 6.49529H1.2621C0.560025 6.50086 -0.00553116 7.07387 4.08212e-05 7.77763C0.00282681 7.98069 0.0529747 8.18097 0.147698 8.36177L6.28245 19.9723C6.6112 20.5926 7.38013 20.8291 8.0042 20.5008C8.22986 20.3812 8.41374 20.1976 8.53354 19.9723L10.2051 16.8374L12.3002 20.7957C12.81 21.7526 13.9997 22.117 14.9608 21.6079C15.3063 21.4243 15.5905 21.1406 15.7743 20.7957L25.3386 2.80684C25.8345 1.87499 25.4779 0.717829 24.5446 0.222697C24.2744 0.0808334 23.9735 0.00294754 23.667 0.000165906ZM15.075 7.68583L10.9462 15.4466C10.7428 15.8611 10.2413 16.0308 9.82624 15.8249C9.66186 15.7442 9.52813 15.6107 9.44734 15.4466L5.3575 7.71921C5.13184 7.31866 5.27392 6.80962 5.67511 6.58152C5.80884 6.50642 5.96206 6.47026 6.11529 6.47582H14.3451C14.8076 6.48417 15.1726 6.86525 15.1642 7.327C15.1614 7.45218 15.1308 7.57457 15.075 7.68583Z", + fill: "white" + } + ), + /* @__PURE__ */ jsx100( + "path", + { + d: "M43.5224 8.27831H41.3772V15.6246C41.3772 15.7637 41.263 15.8777 41.1237 15.8777H39.466C39.3267 15.8777 39.2125 15.7637 39.2125 15.6246V8.27831H37.0533C36.9196 8.28387 36.8054 8.18095 36.7998 8.04743C36.7998 8.04465 36.7998 8.04187 36.7998 8.03908V6.73728C36.8026 6.60376 36.9112 6.49527 37.045 6.49806C37.0478 6.49806 37.0505 6.49806 37.0533 6.49806H43.5224C43.6645 6.48415 43.7871 6.58985 43.801 6.72893C43.801 6.73171 43.801 6.7345 43.801 6.73728V8.03908C43.7926 8.18095 43.6701 8.28665 43.5308 8.27831C43.528 8.27831 43.5252 8.27831 43.5224 8.27831Z", + fill: "white" + } + ), + /* @__PURE__ */ jsx100( + "path", + { + d: "M50.3883 15.8056C49.5442 15.9252 48.6944 15.9808 47.8419 15.9697C46.2149 15.9697 44.7773 15.5524 44.7773 13.2604V9.08791C44.7773 6.79584 46.2288 6.39251 47.8559 6.39251C48.7028 6.38138 49.5525 6.43701 50.3911 6.55662C50.5666 6.58166 50.6419 6.64563 50.6419 6.80975V7.98082C50.6391 8.11712 50.5276 8.22839 50.3911 8.23117H47.7305C47.1371 8.23117 46.9226 8.43423 46.9226 9.08791V10.234H50.288C50.4273 10.234 50.5416 10.348 50.5416 10.4871V11.6832C50.5416 11.8223 50.4301 11.9335 50.2908 11.9335H50.288H46.9198V13.2687C46.9198 13.9252 47.1343 14.1255 47.7277 14.1255H50.3883C50.5276 14.1282 50.6391 14.2395 50.6391 14.3786V15.5497C50.6391 15.7054 50.5638 15.7805 50.3883 15.8056Z", + fill: "white" + } + ), + /* @__PURE__ */ jsx100( + "path", + { + d: "M59.93 15.8833H57.9185C57.7792 15.8945 57.6483 15.8194 57.587 15.6942L55.8429 12.9292L54.2633 15.633C54.1741 15.7832 54.0878 15.8833 53.9485 15.8833H52.0846C51.9927 15.8945 51.9091 15.8305 51.898 15.7415C51.898 15.7359 51.8952 15.7276 51.8952 15.7192C51.898 15.6886 51.9063 15.6608 51.9203 15.633L54.6645 11.0711L51.8952 6.73732C51.8813 6.71507 51.8729 6.69004 51.8701 6.66222C51.8785 6.56486 51.9621 6.49254 52.0596 6.4981H54.0989C54.2382 6.4981 54.3385 6.62328 54.4137 6.73732L56.0324 9.29087L57.5981 6.73732C57.6566 6.60937 57.7764 6.51757 57.9157 6.4981H59.7879C59.8854 6.49254 59.969 6.56486 59.9774 6.66222C59.9746 6.69004 59.9662 6.71507 59.9523 6.73732L57.1858 11.0989L60.0554 15.633C60.0777 15.6719 60.0916 15.7137 60.0944 15.7582C60.0944 15.8333 60.0303 15.8833 59.93 15.8833Z", + fill: "white" + } + ), + /* @__PURE__ */ jsx100( + "path", + { + d: "M33.7975 6.49536C33.7056 6.49536 33.6248 6.55934 33.6053 6.65113L31.7666 13.4383C31.7415 13.5774 31.7053 13.6275 31.591 13.6275C31.4768 13.6275 31.4378 13.5774 31.4127 13.4383L29.5768 6.65113C29.5573 6.55934 29.4765 6.49536 29.3845 6.49536H27.5681C27.4594 6.49536 27.373 6.58159 27.373 6.69008C27.373 6.70398 27.3758 6.72067 27.3786 6.73458C27.3786 6.73458 29.6213 14.5232 29.6464 14.5927C29.8916 15.4522 30.7051 16.0225 31.5966 15.9641C32.4826 16.0002 33.2794 15.4383 33.5468 14.5955C33.583 14.4898 35.7756 6.73458 35.7756 6.73458C35.8007 6.62888 35.7338 6.52596 35.6307 6.50092C35.6168 6.49814 35.6001 6.49536 35.5862 6.49536H33.7975Z", + fill: "white" + } + ) + ] + } +); +var vtex_logo_footer_default = VTEXLogoFooter; + +// src/components/icons/instagram-icon.tsx +import { Icon as Icon53 } from "@vtex/brand-ui"; +import { jsx as jsx101, jsxs as jsxs81 } from "react/jsx-runtime"; +var IgIcon = (props) => /* @__PURE__ */ jsxs81( + Icon53, + { + ...props, + viewBox: "0 0 33 33", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + children: [ + /* @__PURE__ */ jsx101( + "path", + { + d: "M31.5999 16.8379C31.5999 25.3976 24.6498 32.3379 16.0748 32.3379C7.49986 32.3379 0.549805 25.3976 0.549805 16.8379C0.549805 8.27821 7.49986 1.33789 16.0748 1.33789C24.6498 1.33789 31.5999 8.27821 31.5999 16.8379Z", + stroke: "#4D596A" + } + ), + /* @__PURE__ */ jsx101("g", { clipPath: "url(#clip0_311_37416)", children: /* @__PURE__ */ jsx101( + "path", + { + d: "M16.0742 14.5879C15.4766 14.5879 14.9034 14.8249 14.4808 15.2469C14.0581 15.6689 13.8207 16.2412 13.8207 16.8379C13.8207 17.4346 14.0581 18.0069 14.4808 18.4289C14.9034 18.8508 15.4766 19.0879 16.0742 19.0879C16.6719 19.0879 17.2451 18.8508 17.6677 18.4289C18.0903 18.0069 18.3278 17.4346 18.3278 16.8379C18.3278 16.2412 18.0903 15.6689 17.6677 15.2469C17.2451 14.8249 16.6719 14.5879 16.0742 14.5879ZM16.0742 13.0879C17.0704 13.0879 18.0257 13.483 18.73 14.1862C19.4344 14.8895 19.8301 15.8433 19.8301 16.8379C19.8301 17.8325 19.4344 18.7863 18.73 19.4895C18.0257 20.1928 17.0704 20.5879 16.0742 20.5879C15.0781 20.5879 14.1228 20.1928 13.4184 19.4895C12.7141 18.7863 12.3184 17.8325 12.3184 16.8379C12.3184 15.8433 12.7141 14.8895 13.4184 14.1862C14.1228 13.483 15.0781 13.0879 16.0742 13.0879ZM20.9569 12.9004C20.9569 13.149 20.8579 13.3875 20.6819 13.5633C20.5058 13.7391 20.2669 13.8379 20.0179 13.8379C19.7689 13.8379 19.53 13.7391 19.3539 13.5633C19.1779 13.3875 19.0789 13.149 19.0789 12.9004C19.0789 12.6518 19.1779 12.4133 19.3539 12.2375C19.53 12.0617 19.7689 11.9629 20.0179 11.9629C20.2669 11.9629 20.5058 12.0617 20.6819 12.2375C20.8579 12.4133 20.9569 12.6518 20.9569 12.9004ZM16.0742 10.8379C14.2158 10.8379 13.9124 10.8431 13.0478 10.8814C12.4588 10.9091 12.0637 10.9879 11.6971 11.1304C11.3711 11.2564 11.136 11.4071 10.8859 11.6576C10.6508 11.8844 10.47 12.1613 10.3571 12.4676C10.2143 12.8351 10.1355 13.2289 10.1084 13.8161C10.0694 14.6441 10.0648 14.9336 10.0648 16.8379C10.0648 18.6934 10.0701 18.9964 10.1084 19.8596C10.1362 20.4469 10.2151 20.8421 10.3571 21.2074C10.4848 21.5336 10.635 21.7684 10.8844 22.0174C11.1375 22.2694 11.3726 22.4201 11.6956 22.5446C12.0667 22.6879 12.4618 22.7674 13.0478 22.7944C13.8771 22.8334 14.167 22.8379 16.0742 22.8379C17.9326 22.8379 18.2361 22.8326 19.1007 22.7944C19.6881 22.7666 20.084 22.6879 20.4506 22.5461C20.7758 22.4194 21.0125 22.2686 21.2618 22.0196C21.515 21.7669 21.666 21.5321 21.7907 21.2096C21.9334 20.8399 22.013 20.4446 22.0401 19.8596C22.0791 19.0316 22.0836 18.7421 22.0836 16.8379C22.0836 14.9824 22.0784 14.6794 22.0401 13.8161C22.0123 13.2296 21.9334 12.8336 21.7907 12.4676C21.6775 12.1616 21.497 11.8849 21.2626 11.6576C21.0355 11.4228 20.7582 11.2423 20.4513 11.1296C20.0833 10.9871 19.6881 10.9084 19.1007 10.8814C18.2714 10.8424 17.9815 10.8379 16.0742 10.8379ZM16.0742 9.33789C18.1152 9.33789 18.3698 9.34539 19.1706 9.38289C19.9706 9.42039 20.5152 9.54564 20.9944 9.73164C21.4902 9.92214 21.9079 10.1801 22.3255 10.5964C22.7075 10.9713 23.003 11.4248 23.1916 11.9254C23.3771 12.4031 23.5033 12.9476 23.5409 13.7464C23.5762 14.5459 23.586 14.8001 23.586 16.8379C23.586 18.8756 23.5785 19.1299 23.5409 19.9294C23.5033 20.7281 23.3771 21.2719 23.1916 21.7504C23.0036 22.2512 22.7079 22.7049 22.3255 23.0794C21.9499 23.4606 21.4957 23.7557 20.9944 23.9441C20.5159 24.1294 19.9706 24.2554 19.1706 24.2929C18.3698 24.3281 18.1152 24.3379 16.0742 24.3379C14.0333 24.3379 13.7787 24.3304 12.9779 24.2929C12.1779 24.2554 11.6333 24.1294 11.154 23.9441C10.6525 23.7562 10.1982 23.4611 9.82297 23.0794C9.44093 22.7045 9.14536 22.251 8.95687 21.7504C8.77058 21.2726 8.64513 20.7281 8.60757 19.9294C8.57227 19.1299 8.5625 18.8756 8.5625 16.8379C8.5625 14.8001 8.57001 14.5459 8.60757 13.7464C8.64513 12.9469 8.77058 12.4039 8.95687 11.9254C9.14484 11.4245 9.44047 10.9709 9.82297 10.5964C10.1983 10.2148 10.6526 9.91969 11.154 9.73164C11.6333 9.54564 12.1771 9.42039 12.9779 9.38289C13.7787 9.34764 14.0333 9.33789 16.0742 9.33789Z", + fill: "#C5C7D1" + } + ) }), + /* @__PURE__ */ jsx101("defs", { children: /* @__PURE__ */ jsx101("clipPath", { id: "clip0_311_37416", children: /* @__PURE__ */ jsx101( + "rect", + { + width: "18.0282", + height: "18", + fill: "white", + transform: "translate(7.06055 7.83789)" + } + ) }) }) + ] + } +); +var instagram_icon_default = IgIcon; + +// src/components/icons/youtube-icon.tsx +import { Icon as Icon54 } from "@vtex/brand-ui"; +import { jsx as jsx102, jsxs as jsxs82 } from "react/jsx-runtime"; +var YoutubeIcon = (props) => /* @__PURE__ */ jsxs82( + Icon54, + { + ...props, + viewBox: "0 0 33 33", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + children: [ + /* @__PURE__ */ jsx102( + "path", + { + d: "M31.6507 16.8379C31.6507 25.3976 24.7006 32.3379 16.1256 32.3379C7.55065 32.3379 0.600586 25.3976 0.600586 16.8379C0.600586 8.27821 7.55065 1.33789 16.1256 1.33789C24.7006 1.33789 31.6507 8.27821 31.6507 16.8379Z", + stroke: "#4D596A" + } + ), + /* @__PURE__ */ jsx102( + "path", + { + d: "M31.6507 16.8379C31.6507 25.3976 24.7006 32.3379 16.1256 32.3379C7.55065 32.3379 0.600586 25.3976 0.600586 16.8379C0.600586 8.27821 7.55065 1.33789 16.1256 1.33789C24.7006 1.33789 31.6507 8.27821 31.6507 16.8379Z", + stroke: "#4D596A" + } + ), + /* @__PURE__ */ jsx102("g", { clipPath: "url(#clip0_311_37417)", children: /* @__PURE__ */ jsx102( + "path", + { + d: "M22.4973 13.17C22.8024 14.358 22.8024 16.838 22.8024 16.838C22.8024 16.838 22.8024 19.318 22.4973 20.506C22.3277 21.1626 21.8316 21.6793 21.2033 21.854C20.0622 22.1713 16.1253 22.1713 16.1253 22.1713C16.1253 22.1713 12.1905 22.1713 11.0474 21.854C10.4164 21.6766 9.92098 21.1606 9.75339 20.506C9.44824 19.318 9.44824 16.838 9.44824 16.838C9.44824 16.838 9.44824 14.358 9.75339 13.17C9.92298 12.5133 10.4191 11.9966 11.0474 11.822C12.1905 11.5046 16.1253 11.5046 16.1253 11.5046C16.1253 11.5046 20.0622 11.5046 21.2033 11.822C21.8343 11.9993 22.3297 12.5153 22.4973 13.17ZM14.7899 19.1713L18.7962 16.838L14.7899 14.5046V19.1713Z", + fill: "#C5C7D1" + } + ) }), + /* @__PURE__ */ jsx102("defs", { children: /* @__PURE__ */ jsx102("clipPath", { id: "clip0_311_37417", children: /* @__PURE__ */ jsx102( + "rect", + { + width: "16.025", + height: "16", + fill: "white", + transform: "translate(8.11328 8.83789)" + } + ) }) }) + ] + } +); +var youtube_icon_default = YoutubeIcon; + +// src/components/icons/facebook-circle-icon.tsx +import { Icon as Icon55 } from "@vtex/brand-ui"; +import { jsx as jsx103, jsxs as jsxs83 } from "react/jsx-runtime"; +var FacebookCircleIcon = (props) => /* @__PURE__ */ jsxs83( + Icon55, + { + ...props, + viewBox: "0 0 33 33", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + children: [ + /* @__PURE__ */ jsx103( + "path", + { + d: "M31.5501 16.8379C31.5501 25.3976 24.6 32.3379 16.025 32.3379C7.45006 32.3379 0.5 25.3976 0.5 16.8379C0.5 8.27821 7.45006 1.33789 16.025 1.33789C24.6 1.33789 31.5501 8.27821 31.5501 16.8379Z", + stroke: "#4D596A" + } + ), + /* @__PURE__ */ jsx103("g", { clipPath: "url(#clip0_311_37415)", children: /* @__PURE__ */ jsx103( + "path", + { + d: "M17.5268 17.9629H19.4047L20.1559 14.9629H17.5268V13.4629C17.5268 12.6904 17.5268 11.9629 19.0291 11.9629H20.1559V9.44289C19.911 9.41064 18.9863 9.33789 18.0098 9.33789C15.9703 9.33789 14.5221 10.5806 14.5221 12.8629V14.9629H12.2686V17.9629H14.5221V24.3379H17.5268V17.9629Z", + fill: "#CCCED7" + } + ) }), + /* @__PURE__ */ jsx103("defs", { children: /* @__PURE__ */ jsx103("clipPath", { id: "clip0_311_37415", children: /* @__PURE__ */ jsx103( + "rect", + { + width: "18.0282", + height: "18", + fill: "white", + transform: "translate(7.01074 7.83789)" + } + ) }) }) + ] + } +); +var facebook_circle_icon_default = FacebookCircleIcon; + +// src/components/icons/linkedin-circle-icon.tsx +import { Icon as Icon56 } from "@vtex/brand-ui"; +import { jsx as jsx104, jsxs as jsxs84 } from "react/jsx-runtime"; +var LinkedinCircleIcon = (props) => /* @__PURE__ */ jsxs84( + Icon56, + { + ...props, + viewBox: "0 0 33 33", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + children: [ + /* @__PURE__ */ jsx104( + "path", + { + d: "M31.7005 16.8379C31.7005 25.3976 24.7504 32.3379 16.1754 32.3379C7.60045 32.3379 0.650391 25.3976 0.650391 16.8379C0.650391 8.27821 7.60045 1.33789 16.1754 1.33789C24.7504 1.33789 31.7005 8.27821 31.7005 16.8379Z", + stroke: "#4D596A" + } + ), + /* @__PURE__ */ jsx104("g", { clipPath: "url(#clip0_311_37418)", children: /* @__PURE__ */ jsx104( + "path", + { + d: "M20.9353 21.5921H18.9334V18.4594C18.9334 17.7124 18.9184 16.7509 17.8893 16.7509C16.8459 16.7509 16.6866 17.5639 16.6866 18.4046V21.5921H14.684V15.1504H16.607V16.0279H16.6333C16.9022 15.5224 17.5557 14.9876 18.5323 14.9876C20.5604 14.9876 20.936 16.3211 20.936 18.0559V21.5921H20.9353ZM12.423 14.2691C12.2701 14.2693 12.1188 14.2394 11.9776 14.1811C11.8363 14.1228 11.708 14.0372 11.6 13.9293C11.492 13.8213 11.4064 13.6932 11.348 13.5521C11.2897 13.4111 11.2599 13.26 11.2601 13.1074C11.2603 12.8778 11.3286 12.6533 11.4565 12.4625C11.5844 12.2717 11.7661 12.123 11.9787 12.0352C12.1912 11.9475 12.425 11.9247 12.6506 11.9696C12.8761 12.0145 13.0832 12.1252 13.2457 12.2877C13.4082 12.4502 13.5189 12.6571 13.5636 12.8824C13.6083 13.1076 13.5851 13.341 13.497 13.5531C13.4088 13.7652 13.2597 13.9464 13.0684 14.0739C12.8771 14.2013 12.6529 14.2693 12.423 14.2691ZM13.4265 21.5921H11.4186V15.1504H13.4273V21.5921H13.4265ZM21.9381 10.0879H10.4143C9.86146 10.0879 9.41602 10.5229 9.41602 11.0606V22.6151C9.41602 23.1529 9.86221 23.5879 10.4136 23.5879H21.9351C22.4864 23.5879 22.9371 23.1529 22.9371 22.6151V11.0606C22.9371 10.5229 22.4864 10.0879 21.9351 10.0879H21.9381Z", + fill: "#C5C7D1" + } + ) }), + /* @__PURE__ */ jsx104("defs", { children: /* @__PURE__ */ jsx104("clipPath", { id: "clip0_311_37418", children: /* @__PURE__ */ jsx104( + "rect", + { + width: "18.0282", + height: "18", + fill: "white", + transform: "translate(7.16211 7.83789)" + } + ) }) }) + ] + } +); +var linkedin_circle_icon_default = LinkedinCircleIcon; + +// src/components/footer/styles.ts +var DESKTOP_FROM = "1024px"; +var outerBox = { + bg: "#142032", + display: "flex", + flexDirection: "column", + px: ["24px", "32px", "48px", "64px"], + py: ["32px", "40px", "48px"], + alignItems: "flex-start", + justifyContent: "space-between", + flexWrap: "wrap", + gap: ["24px", "32px"], + width: "100%", + boxSizing: "border-box", + [`@media screen and (min-width: ${DESKTOP_FROM})`]: { + flexDirection: "row", + alignItems: "center" + } +}; +var brandAndSocial = { + display: "flex", + flexDirection: ["column", "row"], + alignItems: ["flex-start", "center"], + gap: ["16px", "24px", "32px"], + flexShrink: 0, + width: "100%", + [`@media screen and (min-width: ${DESKTOP_FROM})`]: { + width: "auto" + } +}; +var logo = { + width: "61px", + height: "22px", + flexShrink: 0 +}; +var socialMediaIcons = { + gap: ["12px", "16px"], + alignItems: "center", + flexWrap: "wrap", + a: { + display: "flex", + alignItems: "center", + lineHeight: 0 + } +}; +var textLinkItems = { + fontSize: ["14px", "16px"], + gap: ["12px 20px", "16px 24px", "24px 32px", "45px"], + flexWrap: "wrap", + alignItems: "center", + minWidth: 0, + maxWidth: "100%", + width: "100%", + a: { + color: "#CCCED8", + whiteSpace: "nowrap" + }, + [`@media screen and (min-width: ${DESKTOP_FROM})`]: { + width: "auto", + flex: 1, + justifyContent: "flex-end" + } +}; +var localeSwitch = { + flexShrink: 0 +}; +var icon5 = { + size: [28, 32], + color: "#CCCED7", + transition: "all 0.3s ease-out", + borderRadius: "50%", + ":hover": { + color: "white", + backgroundColor: "rgba(204, 206, 215, 0.3)" + } +}; +var styles_default39 = { + outerBox, + brandAndSocial, + logo, + socialMediaIcons, + textLinkItems, + localeSwitch, + icon: icon5 +}; + +// src/components/footer/index.tsx +import { jsx as jsx105, jsxs as jsxs85 } from "react/jsx-runtime"; +var Footer = ({ + variant = "helpcenter", + links, + githubUrl, + developerPortalUrl, + helpCenterUrl, + communityUrl, + feedbackUrl, + localeSwitcher +}) => { + const { locale } = useContext30(LibraryContext); + const localizedMessages = messages[locale] ?? messages.en; + const crossSiteLink = variant === "devportal" ? { + label: localizedMessages["footer.help_center"], + href: helpCenterUrl ?? getHelpCenterURL() + } : { + label: localizedMessages["footer.developer_portal"], + href: developerPortalUrl ?? getDeveloperPortalURL() + }; + const defaultLinks = [ + { + label: localizedMessages["footer.github"], + href: githubUrl ?? getGithubURL() + }, + crossSiteLink, + { + label: localizedMessages["footer.community"], + href: communityUrl ?? getCommunityURL() + }, + { + label: localizedMessages["footer.feedback"], + href: feedbackUrl ?? getFeedbackURL() + } + ]; + const resolvedLinks = links ?? defaultLinks; + const socialIcons = [ + { + href: getLinkedinURL(), + component: /* @__PURE__ */ jsx105(linkedin_circle_icon_default, { sx: styles_default39.icon }) + }, + { + href: getInstagramURL(), + component: /* @__PURE__ */ jsx105(instagram_icon_default, { sx: styles_default39.icon }) + }, + { + href: getYoutubeURL(), + component: /* @__PURE__ */ jsx105(youtube_icon_default, { sx: styles_default39.icon }) + }, + { + href: getFacebookURL(), + component: /* @__PURE__ */ jsx105(facebook_circle_icon_default, { sx: styles_default39.icon }) + } + ]; + return /* @__PURE__ */ jsxs85(Box37, { sx: styles_default39.outerBox, children: [ + /* @__PURE__ */ jsxs85(Flex34, { sx: styles_default39.brandAndSocial, children: [ + /* @__PURE__ */ jsx105(vtex_logo_footer_default, { sx: styles_default39.logo }), + /* @__PURE__ */ jsx105(Flex34, { sx: styles_default39.socialMediaIcons, children: socialIcons.map((icon6) => /* @__PURE__ */ jsx105(Link12, { href: icon6.href, children: icon6.component }, icon6.href)) }) + ] }), + /* @__PURE__ */ jsxs85(Flex34, { sx: styles_default39.textLinkItems, children: [ + resolvedLinks.map((link2) => /* @__PURE__ */ jsx105(Link12, { href: link2.href, children: link2.label }, link2.href)), + localeSwitcher ? /* @__PURE__ */ jsx105(Box37, { sx: styles_default39.localeSwitch, children: localeSwitcher }) : null + ] }) + ] }); +}; +var footer_default = Footer; + +// src/components/header/index.tsx +import * as BrandUI from "@vtex/brand-ui"; +import { Link as VtexLink, Flex as Flex35, Text as Text28, Box as Box39 } from "@vtex/brand-ui"; +import { useContext as useContext32, useEffect as useEffect27, useRef as useRef16, useState as useState30 } from "react"; +import { useRouter as useRouter11 } from "next/router.js"; + +// src/components/icons/vtex-devportal-icon.tsx +import { Icon as Icon57 } from "@vtex/brand-ui"; +import { jsx as jsx106, jsxs as jsxs86 } from "react/jsx-runtime"; +var VTEXDevPortalIcon = (props) => /* @__PURE__ */ jsxs86( + Icon57, + { + ...props, + viewBox: "0 0 204 32", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + children: [ + /* @__PURE__ */ jsx106("g", { clipPath: "url(#clip0_2044_123231)", children: /* @__PURE__ */ jsx106( + "path", + { + d: "M33.5348 0.751221H6.47098C4.37195 0.751221 3.01813 2.95123 3.99934 4.77234L6.70696 9.82013H1.80094C0.80732 9.82013 0 10.6146 0 11.5924C0 11.8857 0.0745218 12.1668 0.211145 12.4235L8.91778 28.6424C9.38975 29.5102 10.4827 29.8402 11.3522 29.3757C11.6751 29.2046 11.9359 28.9479 12.0974 28.6424L14.4572 24.2668L17.4257 29.7913C18.469 31.7346 21.3008 31.7346 22.3441 29.7913L35.9319 4.67456C36.8883 2.89011 35.5718 0.751221 33.5348 0.751221ZM21.3753 11.4824L15.5254 22.3235C15.2149 22.8979 14.4821 23.1179 13.8983 22.8124C13.6872 22.7024 13.5133 22.5313 13.4015 22.3235L7.61365 11.5312C7.30314 10.9568 7.5267 10.2357 8.11046 9.93013C8.28434 9.84457 8.47065 9.79568 8.66937 9.79568H20.3445C20.9903 9.79568 21.512 10.309 21.512 10.9446C21.512 11.1279 21.4623 11.3235 21.3753 11.4824ZM62.3251 12.4112H59.3691V22.3968C59.3691 22.5802 59.2076 22.739 59.0213 22.739H56.7359C56.5496 22.739 56.3882 22.5802 56.3882 22.3968V12.4112H53.4073C53.221 12.4235 53.072 12.2768 53.0595 12.0935V12.0812V10.309C53.0595 10.1257 53.2086 9.97902 53.3949 9.97902H53.4073H62.3251C62.5114 9.96679 62.6853 10.1135 62.6853 10.309V12.0812C62.6729 12.2646 62.5114 12.4112 62.3251 12.4112ZM71.8266 22.6657C71.218 22.7513 70.1871 22.8857 68.3117 22.8857C66.0636 22.8857 64.0764 22.3235 64.0764 19.1946V13.499C64.0764 10.3824 66.076 9.83235 68.3241 9.83235C70.1996 9.83235 71.218 9.96679 71.8266 10.0524C72.075 10.089 72.1744 10.1746 72.1744 10.3946V11.9957C72.1744 12.179 72.0129 12.3379 71.8266 12.3379H68.1502C67.3305 12.3379 67.0324 12.6068 67.0324 13.499V15.0635H71.6776C71.8639 15.0635 72.0253 15.2224 72.0253 15.4057V17.0313C72.0253 17.2146 71.8639 17.3735 71.6776 17.3735H67.0324V19.1946C67.0324 20.0868 67.3305 20.3557 68.1502 20.3557H71.8266C72.0129 20.3557 72.1744 20.5146 72.1744 20.6979V22.299C72.1744 22.519 72.075 22.629 71.8266 22.6657ZM84.9797 22.7268H82.21C81.9864 22.7268 81.8746 22.6535 81.7629 22.4702L79.3533 18.7179L77.1798 22.3846C77.0556 22.5924 76.9314 22.7268 76.7451 22.7268H74.1616C73.9877 22.7268 73.9008 22.629 73.9008 22.5068C73.9008 22.4702 73.9132 22.4213 73.9381 22.3846L77.7138 16.1879L73.9008 10.309C73.876 10.2724 73.8635 10.2479 73.8635 10.2112C73.876 10.0768 73.9877 9.97902 74.1244 9.99124H76.9314C77.1177 9.99124 77.2667 10.1624 77.3661 10.3212L79.6017 13.7801L81.7629 10.3212C81.8498 10.1624 82.0113 9.99124 82.1976 9.99124H84.781C84.9176 9.99124 85.0294 10.089 85.0418 10.2112C85.0418 10.2479 85.0294 10.2846 85.0046 10.309L81.2039 16.2246L85.166 22.3846C85.1909 22.4335 85.2157 22.4946 85.2157 22.5557C85.2033 22.6657 85.1163 22.7268 84.9797 22.7268ZM51.3455 10.0157C51.3704 10.0157 51.3828 10.0157 51.4076 10.0279C51.5567 10.0646 51.6436 10.199 51.6064 10.3457C51.6064 10.3457 48.5882 20.8813 48.5385 21.0157C48.1287 22.2379 47.0605 22.8735 45.8558 22.8735C44.5765 22.8735 43.5828 22.2746 43.173 21.0157C43.1357 20.9057 40.0431 10.3457 40.0431 10.3457C40.0431 10.3212 40.0306 10.309 40.0306 10.2846C40.0306 10.1379 40.1548 10.0157 40.3039 10.0157H42.8004C42.9246 10.0157 43.0364 10.1012 43.0612 10.2235L45.5949 19.439C45.6322 19.6224 45.6819 19.6957 45.8433 19.6957C46.0048 19.6957 46.0545 19.6224 46.0918 19.439L48.6255 10.2235C48.6503 10.1012 48.7621 10.0157 48.8863 10.0157H51.3455Z", + fill: "#E31C58" + } + ) }), + /* @__PURE__ */ jsx106( + "path", + { + d: "M98.7088 0.751221H97.2158V31.2488H98.7088V0.751221Z", + fill: "#E31C58" + } + ), + /* @__PURE__ */ jsx106( + "path", + { + d: "M112.221 21.5H116.037C120.393 21.5 122.661 19.34 122.661 15.362C122.661 11.402 120.393 9.26 116.037 9.26H112.221V21.5ZM114.003 19.988V10.772H115.947C119.385 10.772 120.789 12.464 120.789 15.362C120.789 18.278 119.385 19.988 115.947 19.988H114.003ZM128.357 21.68C130.481 21.68 131.885 20.618 132.227 18.89L130.697 18.512C130.463 19.736 129.581 20.294 128.411 20.294C126.683 20.294 125.891 19.088 125.855 17.162H132.263C132.263 17.072 132.281 17.036 132.281 16.73C132.281 13.958 130.841 12.41 128.429 12.41C125.693 12.41 124.127 14.39 124.127 17.18C124.127 19.88 125.603 21.68 128.357 21.68ZM125.945 16.01C126.197 14.552 127.025 13.76 128.339 13.76C129.707 13.76 130.463 14.624 130.517 16.01H125.945ZM136.207 21.5H138.817L141.805 12.608H140.023L137.575 20.366L135.145 12.608H133.255L136.207 21.5ZM147.025 21.68C149.149 21.68 150.553 20.618 150.895 18.89L149.365 18.512C149.131 19.736 148.249 20.294 147.079 20.294C145.351 20.294 144.559 19.088 144.523 17.162H150.931C150.931 17.072 150.949 17.036 150.949 16.73C150.949 13.958 149.509 12.41 147.097 12.41C144.361 12.41 142.795 14.39 142.795 17.18C142.795 19.88 144.271 21.68 147.025 21.68ZM144.613 16.01C144.865 14.552 145.693 13.76 147.007 13.76C148.375 13.76 149.131 14.624 149.185 16.01H144.613ZM153.102 21.5H154.758V9.26H153.102V21.5ZM161.425 21.68C163.873 21.68 165.799 20.078 165.799 17.054C165.799 14.012 163.873 12.41 161.425 12.41C158.995 12.41 157.033 14.012 157.033 17.054C157.033 20.078 158.995 21.68 161.425 21.68ZM158.779 17.054C158.779 15.02 159.841 13.886 161.425 13.886C163.027 13.886 164.071 15.02 164.071 17.054C164.071 19.07 163.027 20.222 161.425 20.222C159.841 20.222 158.779 19.07 158.779 17.054ZM167.991 24.848H169.647V18.854H169.665C170.061 21.032 171.195 21.68 172.761 21.68C174.813 21.68 176.433 20.186 176.433 17.108C176.433 14.012 174.741 12.446 172.653 12.446C171.051 12.446 170.133 13.346 169.665 14.984H169.629V12.608H167.991V24.848ZM169.683 17.108C169.683 14.966 170.745 13.886 172.185 13.886C173.643 13.886 174.687 14.948 174.687 17.108C174.687 19.196 173.679 20.222 172.185 20.222C170.709 20.222 169.683 19.196 169.683 17.108ZM182.427 21.68C184.551 21.68 185.955 20.618 186.297 18.89L184.767 18.512C184.533 19.736 183.651 20.294 182.481 20.294C180.753 20.294 179.961 19.088 179.925 17.162H186.333C186.333 17.072 186.351 17.036 186.351 16.73C186.351 13.958 184.911 12.41 182.499 12.41C179.763 12.41 178.197 14.39 178.197 17.18C178.197 19.88 179.673 21.68 182.427 21.68ZM180.015 16.01C180.267 14.552 181.095 13.76 182.409 13.76C183.777 13.76 184.533 14.624 184.587 16.01H180.015ZM188.505 21.5H190.161V16.784C190.161 15.056 191.079 14.084 192.717 14.084C193.059 14.084 193.473 14.12 193.725 14.174L193.635 12.518C193.383 12.464 193.005 12.428 192.717 12.428C191.421 12.428 190.593 13.004 190.107 15.182H190.053V12.608H188.505V21.5ZM198.692 21.68C200.996 21.68 202.454 20.636 202.454 18.71C202.454 16.892 200.942 16.532 199.448 16.28L198.134 16.082C197.27 15.938 196.676 15.722 196.676 14.966C196.676 14.156 197.396 13.724 198.404 13.724C199.556 13.724 200.33 14.282 200.474 15.452L202.112 15.092C201.896 13.328 200.348 12.428 198.476 12.428C196.478 12.428 195.002 13.418 195.002 15.092C195.002 16.694 196.28 17.216 197.504 17.414L198.944 17.63C200.078 17.81 200.762 18.062 200.762 18.908C200.762 19.808 200.042 20.348 198.656 20.348C197.414 20.348 196.55 19.736 196.406 18.368L194.696 18.728C194.84 20.672 196.442 21.68 198.692 21.68Z", + fill: "#E31C58" + } + ), + /* @__PURE__ */ jsx106("defs", { children: /* @__PURE__ */ jsx106("clipPath", { id: "clip0_2044_123231", children: /* @__PURE__ */ jsx106( + "rect", + { + width: "85.2157", + height: "30.4976", + fill: "white", + transform: "translate(0 0.751221)" + } + ) }) }) + ] + } +); +var vtex_devportal_icon_default = VTEXDevPortalIcon; + +// src/components/icons/vtex-helpcenter-icon.tsx +import { Icon as Icon58 } from "@vtex/brand-ui"; +import { jsx as jsx107, jsxs as jsxs87 } from "react/jsx-runtime"; +var VTEXHelpCenterIcon = (props) => /* @__PURE__ */ jsxs87( + Icon58, + { + ...props, + viewBox: "0 0 208 32", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + children: [ + /* @__PURE__ */ jsx107( + "path", + { + d: "M33.5348 0H6.47098C4.37195 0 3.01813 2.2 3.99934 4.02112L6.70696 9.06891H1.80094C0.80732 9.06891 0 9.86335 0 10.8411C0 11.1345 0.0745218 11.4156 0.211145 11.6722L8.91778 27.8912C9.38975 28.7589 10.4827 29.0889 11.3522 28.6245C11.6751 28.4534 11.9359 28.1967 12.0974 27.8912L14.4572 23.5156L17.4257 29.0401C18.469 30.9834 21.3008 30.9834 22.3441 29.0401L35.9319 3.92334C36.8883 2.13889 35.5718 0 33.5348 0ZM21.3753 10.7311L15.5254 21.5723C15.2149 22.1467 14.4821 22.3667 13.8983 22.0612C13.6872 21.9512 13.5133 21.78 13.4015 21.5723L7.61365 10.78C7.30314 10.2056 7.5267 9.48446 8.11046 9.17891C8.28434 9.09335 8.47065 9.04446 8.66937 9.04446H20.3445C20.9903 9.04446 21.512 9.5578 21.512 10.1934C21.512 10.3767 21.4623 10.5722 21.3753 10.7311ZM62.3251 11.66H59.3691V21.6456C59.3691 21.8289 59.2076 21.9878 59.0213 21.9878H56.7359C56.5496 21.9878 56.3882 21.8289 56.3882 21.6456V11.66H53.4073C53.221 11.6722 53.072 11.5256 53.0595 11.3422V11.33V9.5578C53.0595 9.37446 53.2086 9.2278 53.3949 9.2278H53.4073H62.3251C62.5114 9.21557 62.6853 9.36224 62.6853 9.5578V11.33C62.6729 11.5134 62.5114 11.66 62.3251 11.66ZM71.8266 21.9145C71.218 22 70.1871 22.1345 68.3117 22.1345C66.0636 22.1345 64.0764 21.5723 64.0764 18.4434V12.7478C64.0764 9.63113 66.076 9.08113 68.3241 9.08113C70.1996 9.08113 71.218 9.21557 71.8266 9.30113C72.075 9.3378 72.1744 9.42335 72.1744 9.64335V11.2445C72.1744 11.4278 72.0129 11.5867 71.8266 11.5867H68.1502C67.3305 11.5867 67.0324 11.8556 67.0324 12.7478V14.3123H71.6776C71.8639 14.3123 72.0253 14.4711 72.0253 14.6545V16.28C72.0253 16.4634 71.8639 16.6223 71.6776 16.6223H67.0324V18.4434C67.0324 19.3356 67.3305 19.6045 68.1502 19.6045H71.8266C72.0129 19.6045 72.1744 19.7634 72.1744 19.9467V21.5478C72.1744 21.7678 72.075 21.8778 71.8266 21.9145ZM84.9797 21.9756H82.21C81.9864 21.9756 81.8746 21.9023 81.7629 21.7189L79.3533 17.9667L77.1798 21.6334C77.0556 21.8412 76.9314 21.9756 76.7451 21.9756H74.1616C73.9877 21.9756 73.9008 21.8778 73.9008 21.7556C73.9008 21.7189 73.9132 21.67 73.9381 21.6334L77.7138 15.4367L73.9008 9.5578C73.876 9.52113 73.8636 9.49669 73.8636 9.46002C73.876 9.32557 73.9878 9.2278 74.1244 9.24002H76.9314C77.1177 9.24002 77.2667 9.41113 77.3661 9.57002L79.6017 13.0289L81.7629 9.57002C81.8498 9.41113 82.0113 9.24002 82.1976 9.24002H84.781C84.9176 9.24002 85.0294 9.3378 85.0418 9.46002C85.0418 9.49669 85.0294 9.53335 85.0046 9.5578L81.2039 15.4734L85.166 21.6334C85.1909 21.6823 85.2157 21.7434 85.2157 21.8045C85.2033 21.9145 85.1163 21.9756 84.9797 21.9756ZM51.3455 9.26446C51.3704 9.26446 51.3828 9.26446 51.4076 9.27669C51.5567 9.31335 51.6436 9.4478 51.6064 9.59446C51.6064 9.59446 48.5882 20.13 48.5385 20.2645C48.1287 21.4867 47.0605 22.1223 45.8558 22.1223C44.5765 22.1223 43.5828 21.5234 43.173 20.2645C43.1357 20.1545 40.0431 9.59446 40.0431 9.59446C40.0431 9.57002 40.0306 9.5578 40.0306 9.53335C40.0306 9.38669 40.1548 9.26446 40.3039 9.26446H42.8004C42.9246 9.26446 43.0364 9.35002 43.0612 9.47224L45.5949 18.6878C45.6322 18.8711 45.6819 18.9445 45.8433 18.9445C46.0048 18.9445 46.0545 18.8711 46.0917 18.6878L48.6255 9.47224C48.6503 9.35002 48.7621 9.26446 48.8863 9.26446H51.3455Z", + fill: "#E31C58" + } + ), + /* @__PURE__ */ jsx107("path", { d: "M98.7078 0H97.2148V30.4976H98.7078V0Z", fill: "#E31C58" }), + /* @__PURE__ */ jsx107( + "path", + { + d: "M120.139 20.748V8.50805H121.921V20.748H120.139ZM112.219 20.748V8.50805H114.001V20.748H112.219ZM112.741 15.222V13.746H120.931V15.222H112.741ZM128.144 20.928C127.46 20.928 126.854 20.82 126.326 20.604C125.798 20.388 125.354 20.082 124.994 19.686C124.634 19.29 124.364 18.816 124.184 18.264C124.004 17.712 123.914 17.1 123.914 16.428C123.914 15.492 124.082 14.67 124.418 13.962C124.754 13.242 125.24 12.678 125.876 12.27C126.524 11.862 127.304 11.658 128.216 11.658C129.02 11.658 129.71 11.826 130.286 12.162C130.862 12.498 131.3 12.99 131.6 13.638C131.912 14.274 132.068 15.054 132.068 15.978C132.068 16.134 132.062 16.236 132.05 16.284C132.05 16.32 132.05 16.362 132.05 16.41H125.408V15.258H130.754L130.304 15.708C130.34 15.156 130.28 14.682 130.124 14.286C129.968 13.878 129.722 13.566 129.386 13.35C129.05 13.122 128.63 13.008 128.126 13.008C127.586 13.008 127.13 13.14 126.758 13.404C126.398 13.656 126.122 14.028 125.93 14.52C125.738 15 125.642 15.594 125.642 16.302C125.642 16.806 125.69 17.256 125.786 17.652C125.894 18.048 126.05 18.39 126.254 18.678C126.47 18.954 126.734 19.17 127.046 19.326C127.37 19.47 127.754 19.542 128.198 19.542C128.594 19.542 128.948 19.482 129.26 19.362C129.572 19.23 129.836 19.032 130.052 18.768C130.268 18.504 130.412 18.168 130.484 17.76L132.014 18.138C131.906 18.714 131.678 19.212 131.33 19.632C130.994 20.04 130.556 20.358 130.016 20.586C129.476 20.814 128.852 20.928 128.144 20.928ZM134.221 20.748V8.50805H135.877V20.748H134.221ZM138.44 24.096V11.856H140.078V14.232H140.114C140.354 13.416 140.708 12.792 141.176 12.36C141.656 11.916 142.298 11.694 143.102 11.694C143.63 11.694 144.122 11.796 144.578 12C145.034 12.192 145.43 12.48 145.766 12.864C146.114 13.248 146.384 13.734 146.576 14.322C146.78 14.898 146.882 15.576 146.882 16.356C146.882 17.376 146.72 18.228 146.396 18.912C146.072 19.584 145.628 20.088 145.064 20.424C144.512 20.76 143.894 20.928 143.21 20.928C142.694 20.928 142.226 20.844 141.806 20.676C141.386 20.508 141.032 20.22 140.744 19.812C140.456 19.392 140.246 18.822 140.114 18.102H140.096V24.096H138.44ZM142.634 19.47C143.138 19.47 143.576 19.356 143.948 19.128C144.32 18.9 144.608 18.558 144.812 18.102C145.028 17.634 145.136 17.052 145.136 16.356C145.136 15.816 145.076 15.348 144.956 14.952C144.836 14.544 144.662 14.208 144.434 13.944C144.206 13.668 143.936 13.464 143.624 13.332C143.324 13.2 142.994 13.134 142.634 13.134C142.154 13.134 141.722 13.254 141.338 13.494C140.966 13.734 140.672 14.094 140.456 14.574C140.24 15.042 140.132 15.636 140.132 16.356C140.132 16.872 140.192 17.328 140.312 17.724C140.432 18.108 140.6 18.432 140.816 18.696C141.044 18.96 141.308 19.158 141.608 19.29C141.92 19.41 142.262 19.47 142.634 19.47ZM158.704 20.946C157.888 20.946 157.138 20.808 156.454 20.532C155.782 20.256 155.194 19.848 154.69 19.308C154.198 18.768 153.814 18.108 153.538 17.328C153.274 16.548 153.142 15.654 153.142 14.646C153.142 13.638 153.28 12.744 153.556 11.964C153.832 11.172 154.222 10.512 154.726 9.98405C155.242 9.44405 155.848 9.03605 156.544 8.76005C157.24 8.48405 158.008 8.34605 158.848 8.34605C159.748 8.34605 160.558 8.52605 161.278 8.88605C161.998 9.23405 162.598 9.74405 163.078 10.416C163.558 11.076 163.876 11.88 164.032 12.828L162.25 13.188C162.118 12.456 161.896 11.85 161.584 11.37C161.284 10.89 160.894 10.536 160.414 10.308C159.934 10.068 159.376 9.94805 158.74 9.94805C157.972 9.94805 157.306 10.134 156.742 10.506C156.178 10.878 155.74 11.412 155.428 12.108C155.116 12.804 154.96 13.65 154.96 14.646C154.96 15.618 155.116 16.458 155.428 17.166C155.74 17.862 156.178 18.402 156.742 18.786C157.318 19.158 157.984 19.344 158.74 19.344C159.376 19.344 159.946 19.218 160.45 18.966C160.954 18.702 161.362 18.306 161.674 17.778C161.998 17.25 162.202 16.584 162.286 15.78L164.086 16.194C163.966 17.214 163.654 18.078 163.15 18.786C162.658 19.494 162.028 20.034 161.26 20.406C160.492 20.766 159.64 20.946 158.704 20.946ZM169.751 20.928C169.067 20.928 168.461 20.82 167.933 20.604C167.405 20.388 166.961 20.082 166.601 19.686C166.241 19.29 165.971 18.816 165.791 18.264C165.611 17.712 165.521 17.1 165.521 16.428C165.521 15.492 165.689 14.67 166.025 13.962C166.361 13.242 166.847 12.678 167.483 12.27C168.131 11.862 168.911 11.658 169.823 11.658C170.627 11.658 171.317 11.826 171.893 12.162C172.469 12.498 172.907 12.99 173.207 13.638C173.519 14.274 173.675 15.054 173.675 15.978C173.675 16.134 173.669 16.236 173.657 16.284C173.657 16.32 173.657 16.362 173.657 16.41H167.015V15.258H172.361L171.911 15.708C171.947 15.156 171.887 14.682 171.731 14.286C171.575 13.878 171.329 13.566 170.993 13.35C170.657 13.122 170.237 13.008 169.733 13.008C169.193 13.008 168.737 13.14 168.365 13.404C168.005 13.656 167.729 14.028 167.537 14.52C167.345 15 167.249 15.594 167.249 16.302C167.249 16.806 167.297 17.256 167.393 17.652C167.501 18.048 167.657 18.39 167.861 18.678C168.077 18.954 168.341 19.17 168.653 19.326C168.977 19.47 169.361 19.542 169.805 19.542C170.201 19.542 170.555 19.482 170.867 19.362C171.179 19.23 171.443 19.032 171.659 18.768C171.875 18.504 172.019 18.168 172.091 17.76L173.621 18.138C173.513 18.714 173.285 19.212 172.937 19.632C172.601 20.04 172.163 20.358 171.623 20.586C171.083 20.814 170.459 20.928 169.751 20.928ZM175.829 20.748V11.856H177.395V14.106H177.449C177.569 13.554 177.755 13.098 178.007 12.738C178.259 12.378 178.577 12.108 178.961 11.928C179.345 11.748 179.783 11.658 180.275 11.658C180.767 11.658 181.205 11.73 181.589 11.874C181.973 12.018 182.297 12.24 182.561 12.54C182.825 12.828 183.023 13.2 183.155 13.656C183.299 14.1 183.371 14.628 183.371 15.24V20.748H181.715V15.33C181.715 14.874 181.637 14.484 181.481 14.16C181.337 13.824 181.115 13.572 180.815 13.404C180.515 13.224 180.137 13.134 179.681 13.134C178.949 13.134 178.397 13.332 178.025 13.728C177.665 14.112 177.485 14.646 177.485 15.33V20.748H175.829ZM188.749 20.928C188.269 20.928 187.849 20.862 187.489 20.73C187.141 20.598 186.871 20.376 186.679 20.064C186.487 19.74 186.391 19.302 186.391 18.75V12.9L187.687 11.856H190.549V13.242H184.897V12.234C185.233 12.138 185.521 12.018 185.761 11.874C186.001 11.73 186.199 11.55 186.355 11.334C186.523 11.106 186.655 10.836 186.751 10.524C186.847 10.2 186.913 9.82205 186.949 9.39005H188.047V18.39C188.047 18.822 188.143 19.116 188.335 19.272C188.527 19.416 188.809 19.488 189.181 19.488C189.469 19.488 189.739 19.464 189.991 19.416C190.255 19.356 190.477 19.302 190.657 19.254L190.441 20.712C190.213 20.772 189.949 20.82 189.649 20.856C189.361 20.904 189.061 20.928 188.749 20.928ZM196.259 20.928C195.575 20.928 194.969 20.82 194.441 20.604C193.913 20.388 193.469 20.082 193.109 19.686C192.749 19.29 192.479 18.816 192.299 18.264C192.119 17.712 192.029 17.1 192.029 16.428C192.029 15.492 192.197 14.67 192.533 13.962C192.869 13.242 193.355 12.678 193.991 12.27C194.639 11.862 195.419 11.658 196.331 11.658C197.135 11.658 197.825 11.826 198.401 12.162C198.977 12.498 199.415 12.99 199.715 13.638C200.027 14.274 200.183 15.054 200.183 15.978C200.183 16.134 200.177 16.236 200.165 16.284C200.165 16.32 200.165 16.362 200.165 16.41H193.523V15.258H198.869L198.419 15.708C198.455 15.156 198.395 14.682 198.239 14.286C198.083 13.878 197.837 13.566 197.501 13.35C197.165 13.122 196.745 13.008 196.241 13.008C195.701 13.008 195.245 13.14 194.873 13.404C194.513 13.656 194.237 14.028 194.045 14.52C193.853 15 193.757 15.594 193.757 16.302C193.757 16.806 193.805 17.256 193.901 17.652C194.009 18.048 194.165 18.39 194.369 18.678C194.585 18.954 194.849 19.17 195.161 19.326C195.485 19.47 195.869 19.542 196.313 19.542C196.709 19.542 197.063 19.482 197.375 19.362C197.687 19.23 197.951 19.032 198.167 18.768C198.383 18.504 198.527 18.168 198.599 17.76L200.129 18.138C200.021 18.714 199.793 19.212 199.445 19.632C199.109 20.04 198.671 20.358 198.131 20.586C197.591 20.814 196.967 20.928 196.259 20.928ZM202.337 20.748V11.856H203.885V14.43H203.939C204.107 13.698 204.311 13.134 204.551 12.738C204.791 12.342 205.073 12.066 205.397 11.91C205.733 11.754 206.117 11.676 206.549 11.676C206.693 11.676 206.849 11.688 207.017 11.712C207.197 11.724 207.347 11.742 207.467 11.766L207.557 13.422C207.437 13.398 207.281 13.38 207.089 13.368C206.897 13.344 206.717 13.332 206.549 13.332C206.009 13.332 205.547 13.44 205.163 13.656C204.779 13.86 204.485 14.166 204.281 14.574C204.089 14.97 203.993 15.456 203.993 16.032V20.748H202.337Z", + fill: "#E31D58" + } + ) + ] + } +); +var vtex_helpcenter_icon_default = VTEXHelpCenterIcon; + +// src/components/icons/grid-icon.tsx +import { Icon as Icon59 } from "@vtex/brand-ui"; +import { jsx as jsx108, jsxs as jsxs88 } from "react/jsx-runtime"; +var GridIcon = (props) => /* @__PURE__ */ jsxs88( + Icon59, + { + ...props, + viewBox: "0 0 24 24", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + children: [ + /* @__PURE__ */ jsx108( + "path", + { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M5 14C3.895 14 3 13.105 3 12C3 10.895 3.895 10 5 10C6.105 10 7 10.895 7 12C7 13.105 6.105 14 5 14Z", + fill: "#4A596B" + } + ), + /* @__PURE__ */ jsx108( + "path", + { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M12 14C10.895 14 10 13.105 10 12C10 10.895 10.895 10 12 10C13.105 10 14 10.895 14 12C14 13.105 13.105 14 12 14Z", + fill: "#4A596B" + } + ), + /* @__PURE__ */ jsx108( + "path", + { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M19 14C17.895 14 17 13.105 17 12C17 10.895 17.895 10 19 10C20.105 10 21 10.895 21 12C21 13.105 20.105 14 19 14Z", + fill: "#4A596B" + } + ), + /* @__PURE__ */ jsx108( + "path", + { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M5 21C3.895 21 3 20.105 3 19C3 17.895 3.895 17 5 17C6.105 17 7 17.895 7 19C7 20.105 6.105 21 5 21Z", + fill: "#4A596B" + } + ), + /* @__PURE__ */ jsx108( + "path", + { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M12 21C10.895 21 10 20.105 10 19C10 17.895 10.895 17 12 17C13.105 17 14 17.895 14 19C14 20.105 13.105 21 12 21Z", + fill: "#4A596B" + } + ), + /* @__PURE__ */ jsx108( + "path", + { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M19 21C17.895 21 17 20.105 17 19C17 17.895 17.895 17 19 17C20.105 17 21 17.895 21 19C21 20.105 20.105 21 19 21Z", + fill: "#4A596B" + } + ), + /* @__PURE__ */ jsx108( + "path", + { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M5 7C3.895 7 3 6.105 3 5C3 3.895 3.895 3 5 3C6.105 3 7 3.895 7 5C7 6.105 6.105 7 5 7Z", + fill: "#4A596B" + } + ), + /* @__PURE__ */ jsx108( + "path", + { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M12 7C10.895 7 10 6.105 10 5C10 3.895 10.895 3 12 3C13.105 3 14 3.895 14 5C14 6.105 13.105 7 12 7Z", + fill: "#4A596B" + } + ), + /* @__PURE__ */ jsx108( + "path", + { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M19 7C17.895 7 17 6.105 17 5C17 3.895 17.895 3 19 3C20.105 3 21 3.895 21 5C21 6.105 20.105 7 19 7Z", + fill: "#4A596B" + } + ) + ] + } +); +var grid_icon_default = GridIcon; + +// src/components/header/dropdown-menu.tsx +import { useContext as useContext31 } from "react"; +import { Box as Box38 } from "@vtex/brand-ui"; + +// src/components/header/dropdown-menu.styles.ts +var outerContainer = { + cursor: "initial", + top: "5rem", + right: 0, + position: "absolute", + filter: "drop-shadow(0px 0px 16px rgba(0, 0, 0, 0.1))", + clipPath: "inset(0 -32px -32px -32px)", + borderRadius: "0px 0px 8px 8px", + border: "1px solid #E7E9EE", + borderTop: "0px", + background: "white", + padding: "8px", + width: "680px", + maxWidth: "calc(100vw - 32px)", + maxHeight: "calc(100vh - 5rem)", + zIndex: 10 +}; +var innerContainer3 = { + overflowY: "auto", + overscrollBehavior: "contain", + maxHeight: "calc(100vh - 5rem - 16px)", + scrollbarWidth: "thin", + scrollbarColor: "white white", + "::-webkit-scrollbar": { + width: "5px" + }, + "::-webkit-scrollbar-thumb": { + borderRadius: "100px", + background: "white" + }, + ":hover": { + scrollbarColor: "#CCCED8 white", + "::-webkit-scrollbar-thumb": { + background: "#CCCED8" + } + } +}; +var documentationContainer2 = { + display: "grid", + gridTemplateColumns: "repeat(2, minmax(0, 1fr))", + columnGap: "4px", + rowGap: "4px", + "& > :last-child:nth-child(odd)": { + gridColumn: "1 / -1" + } +}; +var sectionDivider3 = { + mt: "4px", + pt: "4px", + borderRadius: "0px 0px 8px 8px", + borderTop: "1px solid #E7E9EE" +}; +var dropdown_menu_styles_default = { + documentationContainer: documentationContainer2, + innerContainer: innerContainer3, + outerContainer, + sectionDivider: sectionDivider3 +}; + +// src/components/header/dropdown-menu.tsx +import { jsx as jsx109 } from "react/jsx-runtime"; +var DropdownMenu = ({ sections }) => { + const { locale, sidebarDataMaster } = useContext31(LibraryContext); + return /* @__PURE__ */ jsx109(Box38, { sx: dropdown_menu_styles_default.outerContainer, children: /* @__PURE__ */ jsx109(Box38, { sx: dropdown_menu_styles_default.innerContainer, "data-cy": "dropdown-menu", children: sections.map((section, id) => /* @__PURE__ */ jsx109( + Box38, + { + sx: { + ...dropdown_menu_styles_default.documentationContainer, + ...id > 0 ? dropdown_menu_styles_default.sectionDivider : {} + }, + "data-cy": id > 0 ? "dropdown-menu-second-section" : "dropdown-menu-first-section", + children: section.map((card2) => /* @__PURE__ */ jsx109( + documentation_card_default, + { + containerType: "dropdown", + ...card2, + title: getSectionLabel(card2, sidebarDataMaster, locale), + isExternalLink: card2.isExternalLink === true || /^https?:\/\//i.test(card2.link) + }, + card2.id + )) + }, + id + )) }) }); +}; +var dropdown_menu_default = DropdownMenu; + +// src/components/header/styles.ts +var navItem = { + display: "flex", + alignItems: "center", + height: "36px", + px: "10px", + borderRadius: "6px", + color: "#4A596B", + transition: "background-color 0.15s ease, color 0.15s ease", + ":hover": { + color: "#C81E51", + backgroundColor: "#FFF3F6" + } +}; +var headerContainer = { + position: "sticky", + top: 0, + zIndex: 9999, + width: "100%", + backgroundColor: "#FFFFFF", + transition: "top 0.3s", + 'body:has(.modal[data-open="true"]) &': { + zIndex: 0 + }, + maxWidth: "2024px", + mx: "auto" +}; +var headerBrand = { + gridTemplateColumns: "auto minmax(0, 1fr) auto auto", + width: "100%", + position: "relative", + transition: "top 0.3s", + 'button[role="presentation"]': { + borderLeft: "none", + svg: { + rect: { + fill: "#4A596B" + } + } + } +}; +var hamburgerMenuToggle = { + display: ["contents", "contents", "none", "none"] +}; +var extraRightLinks = { + display: "flex", + alignItems: "center", + height: "100%", + position: "relative" +}; +var headerEndActions = { + display: "flex", + alignItems: "center", + height: "100%", + gridArea: "actionbutton", + justifyContent: "flex-end", + borderLeft: ["none", "none", "1px solid #E7E9EE", "1px solid #E7E9EE"] +}; +var localeSwitcherSlot = { + display: "flex", + alignItems: "center", + justifyContent: "center", + height: "100%", + width: ["56px", "56px", "auto", "auto"], + minWidth: ["56px", "56px", 0, 0], + paddingLeft: [0, 0, "12px", "12px"], + paddingRight: [0, 0, "12px", "12px"], + zIndex: 1, + "& button": { + borderLeft: "none !important", + padding: [ + "0 !important", + "0 !important", + "0 10px !important", + "0 10px !important" + ], + width: ["100%", "100%", "auto", "auto"], + height: ["100%", "100%", "36px !important", "36px !important"], + justifyContent: "center", + lineHeight: 0, + borderRadius: "6px", + transition: "background-color 0.15s ease, color 0.15s ease", + ":hover": { + backgroundColor: ["transparent", "transparent", "#FFF3F6", "#FFF3F6"], + color: "#C81E51" + } + } +}; +var headerBrandLink = { + width: "fit-content", + justifyContent: "center", + gridArea: "brand", + marginLeft: [4, 6, 6], + marginBottom: 1, + "> svg": { + width: "auto" + } +}; +var logoSize = { + width: ["172px", "172px", "204px"], + height: ["24px", "24px", "32px"] +}; +var rightLinks = { + display: ["none", "none", "flex !important", "flex !important"], + width: "auto", + height: "100%", + alignItems: "center", + gap: "8px", + pr: ["16px", "16px", "16px", "16px"], + "> a": { + marginX: "0 !important" + } +}; +var rightLinksItem = { + ...navItem, + display: ["none", "none", "none", "flex"], + justifyContent: "center", + width: "36px", + px: "0 !important", + svg: { + mr: "0" + }, + ":hover": { + color: "#C81E51", + backgroundColor: "#FFF3F6", + "svg > path": { + stroke: "#C81E51" + } + } +}; +var dropdownContainer = { + textTransform: "none", + justifyContent: "flex-end", + alignItems: "center", + height: "calc(100% + 1px)", + cursor: "pointer", + position: "relative" +}; +var dropdownButton = (active) => ({ + ...navItem, + color: active ? "#D71D55" : "#4A596B", + backgroundColor: active ? "#FFF3F6" : "transparent", + svg: { + mr: "8px", + path: { + fill: active ? "#D71D55" : "#4A596B" + } + }, + ":hover": { + color: "#C81E51", + backgroundColor: "#FFF3F6", + "svg > path": { + fill: "#C81E51" + } + } +}); +var rightButtonsText = { + fontWeight: "normal", + fontSize: "13px", + lineHeight: "22px", + fontFamily: "VTEX Trust Medium !important", + textTransform: "none" +}; +var searchRow = { + display: ["none", "none", "flex", "flex"], + alignItems: "center", + justifyContent: "center", + flexWrap: "nowrap", + gap: "8px", + paddingBlock: "18px", + height: "auto", + minWidth: 0, + maxWidth: "100%" +}; +var searchContainer2 = { + flex: "none", + minWidth: 0 +}; +var assistantSlot = { + display: ["none", "none", "none", "flex"], + flex: "none", + flexShrink: 0, + alignSelf: "center" +}; +var styles_default40 = { + logoSize, + headerContainer, + headerBrand, + headerBrandLink, + searchRow, + searchContainer: searchContainer2, + assistantSlot, + rightLinks, + rightLinksItem, + rightButtonsText, + dropdownButton, + dropdownContainer, + hamburgerMenuToggle, + extraRightLinks, + headerEndActions, + localeSwitcherSlot +}; + +// src/components/header/index.tsx +import { jsx as jsx110, jsxs as jsxs89 } from "react/jsx-runtime"; +var HeaderBrand = BrandUI.Header; +var Header3 = ({ + variant = "helpcenter", + isEditor = false, + dropdownSections, + editorSections = [], + announcement, + homeHref = "/", + feedbackUrl, + logo: logo2, + extraRightLinks: extraRightLinks2, + localeSwitcher, + parentsArray, + showAssistant = false, + assistant +}) => { + const router = useRouter11(); + const { locale, hamburguerSections } = useContext32(LibraryContext); + const localizedMessages = messages[locale] ?? messages.en; + const modalOpen = useRef16(false); + const [showDropdown, setShowDropdown] = useState30(false); + const headerElement = useRef16(null); + const docsSections = dropdownSections ?? hamburguerSections; + const menuSections = isEditor && editorSections.length > 0 ? [editorSections] : docsSections; + const defaultLogo = variant === "devportal" ? /* @__PURE__ */ jsx110(vtex_devportal_icon_default, { sx: styles_default40.logoSize }) : /* @__PURE__ */ jsx110(vtex_helpcenter_icon_default, { sx: styles_default40.logoSize }); + useEffect27(() => { + const body3 = document.body; + const observer = new MutationObserver(() => { + modalOpen.current = !modalOpen.current; + if (headerElement.current) { + if (modalOpen.current) { + const headerHeight = headerElement.current.offsetHeight; + headerElement.current.style.top = `-${headerHeight}px`; + } else { + headerElement.current.style.top = "0"; + } + } + }); + observer.observe(body3, { + attributeFilter: ["style"] + }); + return () => observer.disconnect(); + }, []); + useEffect27(() => { + const onScroll = () => { + setShowDropdown(false); + }; + window.addEventListener("scroll", onScroll, { passive: true }); + return () => window.removeEventListener("scroll", onScroll); + }, []); + useEffect27(() => { + const hideDropdown = () => { + setShowDropdown(false); + }; + router.events?.on("routeChangeStart", hideDropdown); + return () => { + router.events?.off("routeChangeStart", hideDropdown); + }; + }, [router.events]); + return /* @__PURE__ */ jsxs89(Box39, { ref: headerElement, sx: styles_default40.headerContainer, "data-docs-header": true, children: [ + announcement ?? /* @__PURE__ */ jsx110("div", {}), + /* @__PURE__ */ jsxs89(HeaderBrand, { sx: styles_default40.headerBrand, children: [ + /* @__PURE__ */ jsx110( + VtexLink, + { + "aria-label": localizedMessages["header.home_aria"], + href: homeHref, + sx: styles_default40.headerBrandLink, + children: logo2 ?? defaultLogo + } + ), + /* @__PURE__ */ jsxs89(Box39, { sx: styles_default40.searchRow, children: [ + /* @__PURE__ */ jsx110(Box39, { sx: styles_default40.searchContainer, children: /* @__PURE__ */ jsx110(SearchInput, {}) }), + showAssistant ? /* @__PURE__ */ jsx110(Box39, { sx: styles_default40.assistantSlot, children: /* @__PURE__ */ jsx110(ask_assistant_default, { ...assistant }) }) : null + ] }), + /* @__PURE__ */ jsxs89(HeaderBrand.RightLinks, { sx: styles_default40.rightLinks, children: [ + /* @__PURE__ */ jsxs89( + Flex35, + { + sx: styles_default40.dropdownContainer, + onMouseOver: () => setShowDropdown(true), + onMouseLeave: () => setShowDropdown(false), + children: [ + /* @__PURE__ */ jsxs89(Flex35, { sx: styles_default40.dropdownButton(showDropdown), children: [ + /* @__PURE__ */ jsx110(grid_icon_default, {}), + /* @__PURE__ */ jsx110(Text28, { sx: styles_default40.rightButtonsText, "data-cy": "docs-dropdown", children: isEditor ? localizedMessages["header.admin_tools"] : localizedMessages["header.docs"] }) + ] }), + showDropdown && /* @__PURE__ */ jsx110(dropdown_menu_default, { sections: menuSections }) + ] + } + ), + extraRightLinks2 ? /* @__PURE__ */ jsx110(Box39, { sx: styles_default40.extraRightLinks, children: extraRightLinks2 }) : null, + feedbackUrl ? /* @__PURE__ */ jsxs89( + VtexLink, + { + sx: styles_default40.rightLinksItem, + href: feedbackUrl, + target: "_blank", + rel: "noreferrer", + title: localizedMessages["header.feedback"], + "aria-label": localizedMessages["header.feedback"], + children: [ + /* @__PURE__ */ jsx110(long_arrow_icon_default, {}), + /* @__PURE__ */ jsx110(Text28, { sx: styles_default40.rightButtonsText, children: localizedMessages["header.feedback"] }) + ] + } + ) : null + ] }), + localeSwitcher ? /* @__PURE__ */ jsxs89(Flex35, { sx: styles_default40.headerEndActions, children: [ + /* @__PURE__ */ jsx110(Box39, { sx: styles_default40.hamburgerMenuToggle, children: /* @__PURE__ */ jsx110(hamburger_menu_default, { parentsArray }) }), + /* @__PURE__ */ jsx110(Box39, { sx: styles_default40.localeSwitcherSlot, children: localeSwitcher }) + ] }) : /* @__PURE__ */ jsx110(Box39, { sx: styles_default40.hamburgerMenuToggle, children: /* @__PURE__ */ jsx110(hamburger_menu_default, { parentsArray }) }) + ] }) + ] }); +}; +var header_default = Header3; + +// src/components/announcement-bar/index.tsx +import { useEffect as useEffect28, useState as useState31 } from "react"; +import { Box as Box40, Button as Button10, Text as Text29, Link as Link13, Icon as Icon60 } from "@vtex/brand-ui"; + +// src/components/announcement-bar/styles.ts +var container16 = (type) => { + const background = { + color: type == "warning" ? "#fff2d4" : "#fff9fa" + }; + return { + backgroundColor: `${background.color}`, + display: "flex", + alignItems: "center", + justifyContent: "space-between", + cursor: "default", + width: "100%", + padding: ["15px 15px", "15px 25px", "15px 50px"], + ":focus": { + outline: "none" + } + }; +}; +var box = { + width: "100%", + textAlign: "center" +}; +var label3 = (type) => { + const labelColor = { + bgColor: type == "warning" ? "#ffe1a7" : "#feeaef", + textColor: type == "warning" ? "#142032" : "#D4084C" + }; + return { + color: `${labelColor.textColor}`, + backgroundColor: `${labelColor.bgColor}`, + borderRadius: "4px", + padding: "5px 8px", + marginRight: "10px", + display: "inline", + fontWeight: "600", + letterSpacing: "1px", + fontSize: "13px" + }; +}; +var button6 = (type) => { + const labelColor = { + bgColor: type == "warning" ? "#ffe1a7" : "#feeaef" + }; + return { + color: "#D4084C", + backgroundColor: `${labelColor.bgColor}`, + borderRadius: "4px", + padding: "5px 8px", + marginLeft: "10px", + display: "inline", + fontWeight: "600" + }; +}; +var text3 = { + color: "#142032", + display: "inline" +}; +var closeIcon2 = { + display: "block", + float: "right" +}; +var styles_default41 = { + button: button6, + container: container16, + closeIcon: closeIcon2, + box, + label: label3, + text: text3 +}; + +// src/components/announcement-bar/index.tsx +import { jsx as jsx111, jsxs as jsxs90 } from "react/jsx-runtime"; +var CloseIcon2 = (props) => /* @__PURE__ */ jsxs90(Icon60, { ...props, children: [ + /* @__PURE__ */ jsx111( + "path", + { + d: "M8 8L16 16", + stroke: "currentColor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ), + /* @__PURE__ */ jsx111( + "path", + { + d: "M16 8L8 16", + stroke: "currentColor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ) +] }); +var AnnouncementBar = ({ + closable, + type, + action: { tag: tag4, button: button7, href, target = "_blank" }, + label: label4, + children +}) => { + const [visible, setVisible] = useState31(true); + useEffect28(() => { + if (!closable || !visible) + return; + const onKeyDown = (event) => { + if (event.key === "Escape") + setVisible(false); + }; + window.addEventListener("keydown", onKeyDown); + return () => window.removeEventListener("keydown", onKeyDown); + }, [closable, visible]); + if (!visible) + return null; + return /* @__PURE__ */ jsxs90(Box40, { sx: styles_default41.container(type), role: "status", "aria-label": "Announcement", children: [ + /* @__PURE__ */ jsxs90(Box40, { sx: styles_default41.box, children: [ + tag4 && /* @__PURE__ */ jsx111(Text29, { sx: styles_default41.label(type), children: tag4 }), + children ? /* @__PURE__ */ jsx111(Text29, { sx: styles_default41.text, children }) : null, + label4 ? /* @__PURE__ */ jsx111(Text29, { sx: styles_default41.text, children: label4 }) : null, + button7 && /* @__PURE__ */ jsx111(Link13, { sx: styles_default41.button(type), target, href, children: button7 }) + ] }), + closable && /* @__PURE__ */ jsx111(Box40, { children: /* @__PURE__ */ jsx111( + Button10, + { + "aria-label": "Close Announcement Bar", + sx: styles_default41.closeIcon, + variant: "tertiary", + size: "small", + onClick: (event) => { + event.stopPropagation(); + setVisible(false); + }, + icon: () => /* @__PURE__ */ jsx111(CloseIcon2, {}) + } + ) }) + ] }); +}; +var announcement_bar_default = AnnouncementBar; + +// src/components/tag/index.tsx +import { Text as Text30 } from "@vtex/brand-ui"; + +// src/components/tag/styles.ts +var tag = { + borderRadius: "11.5px", + height: "20px", + fontSize: "12px", + lineHeight: "20px", + px: "7px", + textAlign: "center", + textWrap: "nowrap", + minWidth: "max-content" +}; +var statusColors = { + Backlog: { + border: "1px solid #D3D3D3", + color: "#4A596B", + background: "#E9E9E9" + }, + Fixed: { + border: "1px solid #9FCDB4", + color: "#3A6E32", + background: "#DFF5DB" + }, + Closed: { + border: "1px solid #A5C0FF", + color: "#2953B2", + background: "#DEE8FE" + }, + Scheduled: { + border: "1px solid #FFD581", + color: "#D77809", + background: "#FFF3DA" + }, + No_Fix: { + border: "1px solid #FAA397", + color: "#CB2610", + background: "#FFDFDB" + }, + Default: { + border: "1px solid #A1AAB7", + color: "#A1AAB7", + background: "#ffff", + ":hover": { + color: "#4A596B", + border: "1px solid #4A596B" + } + }, + Selected: { + border: "1px solid #A1AAB7", + color: "#ffff", + background: "#A1AAB7", + ":hover": { + color: "#142032" + } + }, + New: { + border: "1px solid #F71963", + color: "#F71963", + background: "#FFE0EF" + }, + Gray: { + color: "#4A596B", + background: "#E7E9EE" + }, + Deprecation: { + border: "1px solid #E8A5BE", + color: "#A23D6E", + background: "#FCEAF2" + }, + Blue: { + border: "1px solid #A5C0FF", + color: "#2953B2", + background: "#DEE8FE" + }, + Green: { + border: "1px solid #9FCDB4", + color: "#3A6E32", + background: "#DFF5DB" + } +}; +var styles_default42 = { + statusColors, + tag +}; + +// src/components/tag/index.tsx +import { jsx as jsx112 } from "react/jsx-runtime"; +var Tag = ({ sx = {}, children, color = "Default", onClick }) => { + return /* @__PURE__ */ jsx112( + Text30, + { + sx: { ...styles_default42.tag, ...sx, ...styles_default42.statusColors[color] }, + onClick, + children + } + ); +}; +var tag_default = Tag; + +// src/components/listing-filter/index.tsx +import { Box as Box41, Button as Button11, Checkbox, Flex as Flex36, Text as Text31 } from "@vtex/brand-ui"; + +// src/components/icons/filter-icon.tsx +import { Icon as Icon61 } from "@vtex/brand-ui"; +import { jsx as jsx113, jsxs as jsxs91 } from "react/jsx-runtime"; +var FilterIcon = (props) => /* @__PURE__ */ jsxs91( + Icon61, + { + ...props, + viewBox: "0 0 16 17", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + children: [ + /* @__PURE__ */ jsx113( + "path", + { + d: "M3.33333 4.5V2.5", + stroke: "currentcolor", strokeLinecap: "round", strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx76( + /* @__PURE__ */ jsx113( "path", { - d: "M6.5 2H20V22H6.5C5.83696 22 5.20107 21.7366 4.73223 21.2678C4.26339 20.7989 4 20.163 4 19.5V4.5C4 3.83696 4.26339 3.20107 4.73223 2.73223C5.20107 2.26339 5.83696 2 6.5 2Z", - stroke: "#4A596B", - strokeWidth: "2", + d: "M3.33333 14.4998V7.1665", + stroke: "currentcolor", strokeLinecap: "round", strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx76( + /* @__PURE__ */ jsx113( "path", { - d: "M17 9H8", - stroke: "#4A596B", - strokeWidth: "2", + d: "M7.99984 9.83333V2.5", + stroke: "currentcolor", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ), + /* @__PURE__ */ jsx113( + "path", + { + d: "M7.99984 14.5V12.5", + stroke: "currentcolor", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ), + /* @__PURE__ */ jsx113( + "path", + { + d: "M12.6668 4.5V2.5", + stroke: "currentcolor", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ), + /* @__PURE__ */ jsx113( + "path", + { + d: "M12.6668 14.4998V7.1665", + stroke: "currentcolor", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ), + /* @__PURE__ */ jsx113( + "path", + { + d: "M4.27614 4.89052C4.79684 5.41122 4.79684 6.25544 4.27614 6.77614C3.75545 7.29684 2.91122 7.29684 2.39052 6.77614C1.86983 6.25545 1.86983 5.41122 2.39052 4.89052C2.91122 4.36983 3.75544 4.36983 4.27614 4.89052", + stroke: "currentcolor", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ), + /* @__PURE__ */ jsx113( + "path", + { + d: "M8.94265 10.224C9.46335 10.7447 9.46335 11.5889 8.94265 12.1096C8.42195 12.6303 7.57773 12.6303 7.05703 12.1096C6.53633 11.5889 6.53633 10.7447 7.05703 10.224C7.57773 9.70332 8.42195 9.70332 8.94265 10.224", + stroke: "currentcolor", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ), + /* @__PURE__ */ jsx113( + "path", + { + d: "M13.6096 4.89052C14.1303 5.41122 14.1303 6.25544 13.6096 6.77614C13.0889 7.29684 12.2447 7.29684 11.724 6.77614C11.2033 6.25545 11.2033 5.41122 11.724 4.89052C12.2447 4.36983 13.0889 4.36983 13.6096 4.89052", + stroke: "currentcolor", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ) + ] + } +); +var filter_icon_default = FilterIcon; + +// src/components/icons/trashcan-icon.tsx +import { Icon as Icon62 } from "@vtex/brand-ui"; +import { jsx as jsx114, jsxs as jsxs92 } from "react/jsx-runtime"; +var TrashcanIcon = (props) => /* @__PURE__ */ jsxs92( + Icon62, + { + ...props, + viewBox: "0 0 19 18", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + children: [ + /* @__PURE__ */ jsx114( + "path", + { + d: "M4.25 5.25H14.75", + stroke: "currentcolor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ), + /* @__PURE__ */ jsx114( + "path", + { + d: "M14 5.25V13.5C14 14.3288 13.3288 15 12.5 15H6.5C5.67125 15 5 14.3288 5 13.5V5.25", + stroke: "currentcolor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ), + /* @__PURE__ */ jsx114( + "path", + { + d: "M11.75 2.8125H7.25", + stroke: "currentcolor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ), + /* @__PURE__ */ jsx114( + "path", + { + d: "M8 8.25V12", + stroke: "currentcolor", + strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx76( + /* @__PURE__ */ jsx114( "path", { - d: "M15 13H8", - stroke: "#4A596B", - strokeWidth: "2", - strokeLinecap: "round", - strokeLinejoin: "round" + d: "M11 8.25V12", + stroke: "currentcolor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ) + ] + } +); +var trashcan_icon_default = TrashcanIcon; + +// src/components/listing-filter/index.tsx +import { useState as useState32 } from "react"; + +// src/components/listing-filter/normalize.ts +function isFilterGroup(value) { + return typeof value === "object" && value !== null && "name" in value && "options" in value && Array.isArray(value.options); +} +function toFilterGroup(input4, name = "") { + if (!input4) + return void 0; + if (isFilterGroup(input4)) { + return input4; + } + return { + name, + options: input4.map((option) => ({ id: option, name: option })) + }; +} +function toFilterGroups(checkBoxFilter, checkBoxFilters, filterName = "") { + if (checkBoxFilters?.length) { + return checkBoxFilters; + } + const normalized = toFilterGroup(checkBoxFilter, filterName); + return normalized ? [normalized] : []; +} + +// src/components/listing-filter/styles.ts +var filterButton = { + cursor: "pointer", + alignItems: "center", + borderRadius: "4px", + border: "1px solid #E7E9EE", + fontSize: "14px", + gap: "8px", + px: "8px", + transition: "0.3s", + height: "30px", + ":hover": { + color: "#F71963" + }, + width: "min-content" +}; +var filterButtonText = { + display: ["none", "block", "block"] +}; +var numberOfFilters = { + backgroundColor: "#FFE0EF", + color: "#F71963", + borderRadius: "4px", + px: "4px" +}; +var blanket = { + margin: "0", + width: "100%", + height: "100%", + background: "rgba(20, 32, 50, 0.70)", + position: "fixed", + top: "0", + left: "0", + display: "flex", + flexDirection: "column", + alignItems: "center", + zIndex: "9999" +}; +var container17 = { + position: "fixed", + top: "50%", + left: "50%", + transform: "translate(-50%, -50%)", + width: ["100%", "612px"], + maxWidth: "100%", + borderRadius: ["0", "5px"], + backgroundColor: "#ffff", + boxShadow: "0px 0px 16px rgba(0, 0, 0, 0.1)", + zIndex: "10000", + overflow: "auto", + height: ["100dvh", "auto"], + maxHeight: ["100dvh", "calc(100dvh - 32px)"] +}; +var innerContainer4 = { + p: "24px", + maxHeight: ["calc(100dvh - 145px)", "calc(100dvh - 6rem - 112px)"], + overflow: "auto" +}; +var topContainer = { + display: "grid", + width: "100%", + borderBottom: "1px solid #E7E9EE", + gridTemplateColumns: "1fr 64px", + alignItems: "center", + gap: "24px", + height: "64px" +}; +var modalTitle2 = { + fontSize: "16px", + textAlign: "center" +}; +var closeButtonContainer = { + cursor: "pointer", + borderLeft: "1px solid #E7E9EE", + height: "100%", + justifyContent: "center", + alignItems: "center", + transition: "0.3s", + ":hover": { + color: "#E31C58" + } +}; +var filterContainer = { + display: "flex", + flexDirection: "column", + gap: "24px" +}; +var tagContainer = { + gap: "16px", + flexWrap: "wrap" +}; +var tagContainerCentered = { + display: "flex", + flexWrap: "wrap", + gap: "12px", + justifyContent: "center", + overflow: "visible", + maxWidth: "100%" +}; +var tag2 = { + cursor: "pointer", + transition: "0.3s", + flex: "0 0 auto", + ":active": { + position: "relative", + top: "1px" + } +}; +var checkBoxContainer = { + display: "grid", + gridTemplateColumns: "repeat(auto-fill, minmax(150px, 1fr))", + gap: "24px", + alignItems: "top", + fontSize: "12px", + color: "#4A596B" +}; +var buttonsContainer = { + py: "16px", + px: "32px", + alignItems: "center", + justifyContent: "space-between", + borderTop: "1px solid #E7E9EE" +}; +var sectionDivider4 = { + hr: { + border: "1px solid #E7E9EE", + mb: "24px", + mt: "24px" + } +}; +var filterTitle = { + fontSize: "20px" +}; +var removeButton = { + backgroundColor: "transparent", + color: "#4A596B", + textTransform: "none", + transition: "0.3s", + p: "0", + ":hover": { + backgroundColor: "transparent", + color: "#E31C58" + } +}; +var styles_default43 = { + filterButton, + filterButtonText, + numberOfFilters, + blanket, + container: container17, + innerContainer: innerContainer4, + topContainer, + modalTitle: modalTitle2, + closeButtonContainer, + filterContainer, + tagContainer, + tagContainerCentered, + tag: tag2, + checkBoxContainer, + buttonsContainer, + sectionDivider: sectionDivider4, + filterTitle, + removeButton +}; + +// src/components/listing-filter/index.tsx +import { Fragment as Fragment9, jsx as jsx115, jsxs as jsxs93 } from "react/jsx-runtime"; +var defaultLabels = { + button: "Filters", + modalTitle: "Filters", + remove: "Remove filters", + apply: "Apply filters" +}; +var ListingFilter = ({ + tagFilter, + tagFilterName, + checkBoxFilter, + checkBoxFilters, + filterName = "", + onApply, + selectedCheckboxes, + selectedTags, + labels, + buttonSx, + centeredTagOptions = false +}) => { + const resolvedLabels = { ...defaultLabels, ...labels }; + const normalizedTagFilter = toFilterGroup(tagFilter, tagFilterName); + const checkboxGroups = toFilterGroups( + checkBoxFilter, + checkBoxFilters, + filterName + ); + const [isModalOpen, setIsModalOpen] = useState32(false); + const [tempFilters, setTempFilters] = useState32({ + tag: [], + checklist: [] + }); + const numberOfFilters2 = getSelectedFiltersLength(selectedTags) + getSelectedFiltersLength(selectedCheckboxes); + function getSelectedFiltersLength(filters) { + return filters?.length ?? 0; + } + function handleFilterClick(option, type) { + setTempFilters((prev) => { + const current = prev[type]; + const updatedFilters = current.includes(option) ? current.filter((filter) => filter !== option) : [...current, option]; + return { ...prev, [type]: updatedFilters }; + }); + } + function isFilterSelected(option, type) { + if (isModalOpen) { + return tempFilters[type].includes(option); + } + if (type === "tag") { + return selectedTags?.includes(option) ?? false; + } + return selectedCheckboxes?.includes(option) ?? false; + } + const FilterButton = () => /* @__PURE__ */ jsxs93( + Flex36, + { + sx: { ...styles_default43.filterButton, ...buttonSx }, + onClick: () => { + setTempFilters({ + checklist: selectedCheckboxes ?? [], + tag: selectedTags ?? [] + }); + setIsModalOpen(true); + }, + children: [ + /* @__PURE__ */ jsx115(filter_icon_default, { size: 16 }), + /* @__PURE__ */ jsx115(Text31, { sx: styles_default43.filterButtonText, children: resolvedLabels.button }), + numberOfFilters2 > 0 && /* @__PURE__ */ jsx115(Text31, { sx: styles_default43.numberOfFilters, children: numberOfFilters2 }) + ] + } + ); + const TagFilter = () => { + if (!normalizedTagFilter) + return null; + return /* @__PURE__ */ jsxs93(Box41, { sx: styles_default43.filterContainer, children: [ + /* @__PURE__ */ jsx115(Text31, { sx: styles_default43.filterTitle, children: normalizedTagFilter.name }), + /* @__PURE__ */ jsx115( + Flex36, + { + sx: centeredTagOptions ? styles_default43.tagContainerCentered : styles_default43.tagContainer, + children: normalizedTagFilter.options.map((option) => /* @__PURE__ */ jsx115( + tag_default, + { + sx: styles_default43.tag, + color: isFilterSelected(option.id, "tag") ? "Selected" : "Default", + onClick: () => handleFilterClick(option.id, "tag"), + children: option.name + }, + option.id + )) + } + ) + ] }); + }; + const CheckboxFilters = () => { + if (checkboxGroups.length === 0) + return null; + return /* @__PURE__ */ jsx115(Fragment9, { children: checkboxGroups.map((group2, groupIndex) => /* @__PURE__ */ jsxs93(Box41, { children: [ + groupIndex > 0 && /* @__PURE__ */ jsx115(Divider, {}), + /* @__PURE__ */ jsxs93(Box41, { sx: styles_default43.filterContainer, children: [ + /* @__PURE__ */ jsx115(Text31, { sx: styles_default43.filterTitle, children: group2.name }), + /* @__PURE__ */ jsx115(Box41, { sx: styles_default43.checkBoxContainer, children: group2.options.map((option) => /* @__PURE__ */ jsx115( + Checkbox, + { + label: option.name, + checked: isFilterSelected(option.id, "checklist"), + onClick: () => handleFilterClick(option.id, "checklist") + }, + `${group2.name}-${option.id}` + )) }) + ] }) + ] }, group2.name)) }); + }; + const Divider = () => /* @__PURE__ */ jsx115(Box41, { sx: styles_default43.sectionDivider, children: /* @__PURE__ */ jsx115("hr", {}) }); + const FilterModal = () => /* @__PURE__ */ jsxs93(Fragment9, { children: [ + /* @__PURE__ */ jsx115(Box41, { sx: styles_default43.blanket, onClick: () => setIsModalOpen(false) }), + /* @__PURE__ */ jsxs93(Box41, { sx: styles_default43.container, children: [ + /* @__PURE__ */ jsxs93(Box41, { sx: styles_default43.topContainer, children: [ + /* @__PURE__ */ jsx115(Text31, { sx: styles_default43.modalTitle, children: resolvedLabels.modalTitle }), + /* @__PURE__ */ jsx115( + Flex36, + { + sx: styles_default43.closeButtonContainer, + onClick: () => setIsModalOpen(false), + children: /* @__PURE__ */ jsx115(close_icon_default, { size: 32 }) + } + ) + ] }), + /* @__PURE__ */ jsxs93(Box41, { sx: styles_default43.innerContainer, children: [ + /* @__PURE__ */ jsx115(TagFilter, {}), + normalizedTagFilter && checkboxGroups.length > 0 && /* @__PURE__ */ jsx115(Divider, {}), + /* @__PURE__ */ jsx115(CheckboxFilters, {}) + ] }), + /* @__PURE__ */ jsxs93(Flex36, { sx: styles_default43.buttonsContainer, children: [ + /* @__PURE__ */ jsx115( + Button11, + { + sx: styles_default43.removeButton, + icon: () => /* @__PURE__ */ jsx115(trashcan_icon_default, { sx: { mr: "8px" }, size: 18 }), + onClick: () => setTempFilters({ tag: [], checklist: [] }), + children: resolvedLabels.remove + } + ), + /* @__PURE__ */ jsx115( + Button11, + { + onClick: () => { + setIsModalOpen(false); + onApply(tempFilters); + }, + children: resolvedLabels.apply + } + ) + ] }) + ] }) + ] }); + return /* @__PURE__ */ jsxs93(Fragment9, { children: [ + /* @__PURE__ */ jsx115(FilterButton, {}), + isModalOpen && /* @__PURE__ */ jsx115(FilterModal, {}) + ] }); +}; +var listing_filter_default = ListingFilter; + +// src/components/chip-filter/index.tsx +import { Box as Box42, Flex as Flex37, Button as Button12, Text as Text32 } from "@vtex/brand-ui"; +import { useEffect as useEffect29, useRef as useRef17, useState as useState33 } from "react"; + +// src/components/chip-filter/styles.ts +var chipButtonWrapper = { + display: "flex", + position: "relative", + userSelect: "none", + width: "100%", + minWidth: 0, + alignItems: "center" +}; +var chipsContainer = { + scrollbarWidth: "none", + msOverflowStyle: "none", + overflowX: "auto", + overflowY: "hidden", + scrollBehavior: "smooth", + display: "flex", + alignItems: "center", + width: "100%", + minWidth: 0, + "&::-webkit-scrollbar": { + display: "none" + } +}; +var optionsContainer = { + display: "flex", + flexWrap: "nowrap", + gap: "8px" +}; +var chip = (active) => ({ + display: "inline-flex", + alignItems: "center", + gap: "6px", + height: "32px", + minHeight: "32px", + px: "12px", + py: 0, + borderRadius: "16px", + border: `1px solid ${active ? "#D8D8E3" : "#E7E9EE"}`, + backgroundColor: active ? "#F8F7FC" : "#FFFFFF", + cursor: "pointer", + minWidth: "max-content", + ":hover": { + borderColor: "#3A4F66", + ".filter-chip-title": { + color: "#4A596B" + } + } +}); +var chipIcon = { + width: "14px", + height: "14px", + minWidth: "14px", + minHeight: "14px", + flexShrink: 0 +}; +var chipTitle = (active) => ({ + fontSize: "13px", + fontWeight: active ? "600" : "500", + lineHeight: "16px", + whiteSpace: "nowrap", + color: "#4A596B", + transition: "color 0.15s ease-out" +}); +var chipCount = { + display: "inline-flex", + alignItems: "center", + justifyContent: "center", + px: "6px", + minWidth: "20px", + height: "18px", + fontSize: "11px", + fontWeight: "500", + lineHeight: "16px", + borderRadius: "24px", + backgroundColor: "#EDEAF6", + color: "#4A596B" +}; +var arrowButton2 = { + backgroundColor: "transparent", + border: "none", + borderRadius: "50%", + fontWeight: "600", + fontSize: "16px", + padding: "0 8px", + textDecoration: "none", + ":hover": { + textDecoration: "none", + backgroundColor: "transparent" + } +}; +var rightArrowBlur = { + maxWidth: "40px", + minWidth: "20px", + width: "5vw", + background: "linear-gradient(to left, rgba(255,255,255,80%) 30%, rgba(255, 255, 255, 1%))" +}; +var leftArrowBlur = { + maxWidth: "40px", + minWidth: "20px", + width: "5vw", + background: "linear-gradient(to right, rgba(255,255,255,80%) 30%, rgba(255, 255, 255, 1%))" +}; +var leftArrowContainer = { + position: "absolute", + display: "flex", + alignItems: "center", + left: 0, + top: 0, + bottom: 0, + zIndex: 2, + pointerEvents: "none", + button: { + pointerEvents: "auto" + } +}; +var rightArrowContainer = { + position: "absolute", + display: "flex", + flexDirection: "row-reverse", + alignItems: "center", + right: 0, + top: 0, + bottom: 0, + zIndex: 2, + pointerEvents: "none", + button: { + pointerEvents: "auto" + } +}; +var styles_default44 = { + leftArrowBlur, + rightArrowBlur, + arrowButton: arrowButton2, + chipsContainer, + optionsContainer, + chipButtonWrapper, + leftArrowContainer, + rightArrowContainer, + chip, + chipIcon, + chipTitle, + chipCount +}; + +// src/components/chip-filter/index.tsx +import { jsx as jsx116, jsxs as jsxs94 } from "react/jsx-runtime"; +var ChipFilter = ({ + filters, + categories, + applyCategory, + resetFilters, + removeCategory, + getCategoryAmount, + allResultsLabel = "All results" +}) => { + const containerRef = useRef17(null); + const [shouldDisplayArrows, setShouldDisplayArrows] = useState33({ left: false, right: false }); + const totalCount = categories.reduce( + (sum, category) => sum + getCategoryAmount(category.type), + 0 + ); + function handleLeftArrowClick() { + if (containerRef.current) { + containerRef.current.scrollLeft -= 180; + } + } + function handleRightArrowClick() { + if (containerRef.current) { + containerRef.current.scrollLeft += 180; + } + } + function isCategoryActive(category) { + return filters.includes(category); + } + function handleContainerScroll() { + if (!containerRef.current) + return; + const offsetWidth = 20; + const { scrollLeft, clientWidth, scrollWidth } = containerRef.current; + const isLeftmostScroll = scrollLeft <= 0; + const isRightmostScroll = scrollLeft + clientWidth + offsetWidth >= scrollWidth; + const hasOverflow = scrollWidth > clientWidth + offsetWidth; + setShouldDisplayArrows({ + left: hasOverflow && !isLeftmostScroll, + right: hasOverflow && !isRightmostScroll + }); + } + useEffect29(() => { + handleContainerScroll(); + window.addEventListener("resize", handleContainerScroll); + return () => window.removeEventListener("resize", handleContainerScroll); + }, [categories, filters]); + return /* @__PURE__ */ jsxs94(Flex37, { sx: styles_default44.chipButtonWrapper, children: [ + shouldDisplayArrows.left && /* @__PURE__ */ jsxs94(Box42, { sx: styles_default44.leftArrowContainer, children: [ + /* @__PURE__ */ jsx116( + Button12, + { + variant: "tertiary", + size: "small", + sx: styles_default44.arrowButton, + onClick: handleLeftArrowClick, + children: `\u2039` } ), - /* @__PURE__ */ jsx76( - "path", + /* @__PURE__ */ jsx116(Box42, { sx: styles_default44.leftArrowBlur }) + ] }), + /* @__PURE__ */ jsx116( + Box42, + { + sx: styles_default44.chipsContainer, + ref: containerRef, + onScroll: handleContainerScroll, + children: /* @__PURE__ */ jsxs94(Box42, { sx: styles_default44.optionsContainer, children: [ + /* @__PURE__ */ jsx116( + FilterChip, + { + value: allResultsLabel, + isActive: !filters.length, + count: totalCount, + applyCategory: () => resetFilters() + } + ), + categories.map((category) => /* @__PURE__ */ jsx116( + FilterChip, + { + value: category.title, + count: getCategoryAmount(category.type), + applyCategory: () => isCategoryActive(category.type) ? removeCategory(category.type) : applyCategory(category.type), + isActive: isCategoryActive(category.type), + Icon: category.Icon + }, + category.type + )) + ] }) + } + ), + shouldDisplayArrows.right && /* @__PURE__ */ jsxs94(Box42, { sx: styles_default44.rightArrowContainer, children: [ + /* @__PURE__ */ jsx116( + Button12, { - d: "M12 5H10H8", - stroke: "#4A596B", - strokeWidth: "2", - strokeLinecap: "round", - strokeLinejoin: "round" + variant: "tertiary", + size: "small", + sx: styles_default44.arrowButton, + onClick: handleRightArrowClick, + children: `\u203A` } ), - /* @__PURE__ */ jsx76( - "path", - { - d: "M16 5H15.5H15", - stroke: "#4A596B", - strokeWidth: "2", - strokeLinecap: "round", - strokeLinejoin: "round" - } - ) - ] + /* @__PURE__ */ jsx116(Box42, { sx: styles_default44.rightArrowBlur }) + ] }) + ] }); +}; +function FilterChip({ + value, + isActive, + count: count2, + applyCategory, + Icon: Icon82 +}) { + return /* @__PURE__ */ jsxs94(Flex37, { sx: styles_default44.chip(isActive), onClick: applyCategory, children: [ + Icon82 ? /* @__PURE__ */ jsx116(Icon82, { sx: styles_default44.chipIcon }) : null, + /* @__PURE__ */ jsx116(Text32, { className: "filter-chip-title", sx: styles_default44.chipTitle(isActive), children: value }), + /* @__PURE__ */ jsx116(Text32, { sx: styles_default44.chipCount, children: count2 }) + ] }); +} +var chip_filter_default = ChipFilter; + +// src/components/author/index.tsx +import { Box as Box43, Flex as Flex38, Text as Text33 } from "@vtex/brand-ui"; + +// src/components/author/styles.ts +var container18 = { + alignItems: "center", + columnGap: "16px", + pt: "14px" +}; +var photo2 = { + width: "32px", + height: "32px", + img: { + width: "32px", + height: "32px", + borderRadius: "100%" + } +}; +var styles_default45 = { + container: container18, + photo: photo2 +}; + +// src/components/author/index.tsx +import { jsx as jsx117, jsxs as jsxs95 } from "react/jsx-runtime"; +var Author = ({ contributor }) => { + return /* @__PURE__ */ jsxs95(Flex38, { sx: styles_default45.container, children: [ + /* @__PURE__ */ jsx117(Box43, { sx: styles_default45.photo, children: /* @__PURE__ */ jsx117( + "img", + { + src: contributor?.avatar, + alt: "Photo of the author", + width: 32, + height: 32 + } + ) }, contributor?.login), + /* @__PURE__ */ jsx117(Text33, { children: contributor?.name }) + ] }); +}; +var author_default = Author; + +// src/components/time-to-read/index.tsx +import { useContext as useContext33 } from "react"; +import { Text as Text34 } from "@vtex/brand-ui"; + +// src/components/time-to-read/styles.ts +var readingTime = { + color: "#A1AAB7", + fontSize: ["14px", "16px"], + lineHeight: "22px" +}; +var styles_default46 = { + readingTime +}; + +// src/components/time-to-read/index.tsx +import { jsx as jsx118 } from "react/jsx-runtime"; +var TimeToRead = ({ minutes }) => { + const { locale } = useContext33(LibraryContext); + const template = messages[locale]["documentation_reading_time.text"] || "{minutes} min read"; + return /* @__PURE__ */ jsx118(Text34, { sx: styles_default46.readingTime, children: template.replace("{minutes}", minutes) }); +}; +var time_to_read_default = TimeToRead; + +// src/components/date-text/index.tsx +import { useContext as useContext34 } from "react"; +import { Flex as Flex39, Text as Text35 } from "@vtex/brand-ui"; + +// src/components/date-text/styles.ts +var dateContainer = { + alignItems: "center", + color: "#5E6E84", + fontSize: "13px", + lineHeight: "20px", + fontWeight: "400", + columnGap: "6px", + rowGap: "2px", + flexWrap: "wrap", + width: "100%" +}; +var dateItem = { + color: "inherit", + fontSize: "inherit", + lineHeight: "inherit" +}; +var dateLabel = { + fontWeight: "500", + paddingRight: "4px" +}; +var dateSeparator = { + color: "#8A94A3", + flexShrink: 0 +}; +var styles_default47 = { dateContainer, dateItem, dateLabel, dateSeparator }; + +// src/components/date-text/index.tsx +import { jsx as jsx119, jsxs as jsxs96 } from "react/jsx-runtime"; +var formatDate = (date, locale) => { + if (Number.isNaN(date.getTime())) + return void 0; + return new Intl.DateTimeFormat(locale).format(date); +}; +var DateText = ({ createdAt, updatedAt }) => { + const { locale } = useContext34(LibraryContext); + const createdLabel = messages[locale]["date_text.created"] || "Published on"; + const updatedLabel = messages[locale]["date_text.updated"] || "Last updated on"; + const created = formatDate(createdAt, locale); + const updated = formatDate(updatedAt, locale); + if (!created && !updated) + return null; + return /* @__PURE__ */ jsxs96(Flex39, { sx: styles_default47.dateContainer, children: [ + created && /* @__PURE__ */ jsxs96(Text35, { sx: styles_default47.dateItem, children: [ + /* @__PURE__ */ jsx119(Text35, { as: "span", sx: styles_default47.dateLabel, children: createdLabel }), + created + ] }), + created && updated && /* @__PURE__ */ jsx119(Text35, { sx: styles_default47.dateSeparator, children: "\u2022" }), + updated && /* @__PURE__ */ jsxs96(Text35, { sx: styles_default47.dateItem, children: [ + /* @__PURE__ */ jsx119(Text35, { as: "span", sx: styles_default47.dateLabel, children: updatedLabel }), + updated + ] }) + ] }); +}; +var date_text_default = DateText; + +// src/components/article-pagination/index.tsx +import { useContext as useContext35 } from "react"; +import Link14 from "next/link.js"; +import { Flex as Flex40, Text as Text36, Box as Box44 } from "@vtex/brand-ui"; + +// src/components/article-pagination/styles.ts +var mainContainer = { + width: "100%", + mt: ["20px", "32px"], + mb: ["24px", "52px"], + maxWidth: "100%", + minWidth: 0, + borderTop: "1px solid #E7E9EE", + pt: ["20px", "32px"] +}; +var flexContainer = { + display: "flex", + flexDirection: "row", + justifyContent: "space-between", + alignItems: "stretch", + gap: ["16px", "16px"], + width: "100%", + minWidth: 0 +}; +var paginationBox = { + width: "100%", + minWidth: 0, + padding: ["0", "16px"], + borderRadius: ["0", "4px"], + border: ["none", "1px solid #E7E9EE"], + color: "#4A596B", + display: "flex", + flexDirection: "column", + justifyContent: "center", + gap: "4px", + boxSizing: "border-box", + ":hover": { + border: ["none", "1px solid #CCCED8"], + boxShadow: ["none", "0px 0px 16px rgba(0, 0, 0, 0.1)"], + color: "#000711" + } +}; +var paginationBoxNext = { + ...paginationBox, + alignItems: "flex-end", + textAlign: "right" +}; +var paginationText = { + width: "100%", + minWidth: 0, + overflow: "hidden", + textOverflow: "ellipsis", + display: "-webkit-box", + "-webkit-line-clamp": "2", + "-webkit-box-orient": "vertical", + overflowWrap: "anywhere", + whiteSpace: "normal", + fontSize: ["15px", "16px"], + lineHeight: ["20px", "22px"], + color: "#4A596B" +}; +var subTitle = { + color: "#A1A8B3", + fontSize: ["12px", "0.85em"], + lineHeight: "16px", + fontWeight: "500", + flexShrink: 0 +}; +var linkReset2 = { + width: "100%", + minWidth: 0, + display: "block", + textDecoration: "none", + color: "inherit" +}; +var paginationLinkPrevious = { + width: ["auto", "230px"], + maxWidth: ["none", "230px"], + minWidth: 0, + flex: ["1 1 0", "0 0 auto"] +}; +var paginationLinkNext = { + width: ["auto", "230px"], + maxWidth: ["none", "230px"], + minWidth: 0, + ml: "auto", + flex: ["1 1 0", "0 0 auto"] +}; +var styles_default48 = { + mainContainer, + flexContainer, + linkReset: linkReset2, + paginationLinkNext, + paginationLinkPrevious, + paginationBox, + paginationBoxNext, + paginationText, + subTitle +}; + +// src/components/article-pagination/index.tsx +import { jsx as jsx120, jsxs as jsxs97 } from "react/jsx-runtime"; +var ArticlePagination = ({ + pagination, + hidePaginationNext = false, + hidePaginationPrevious = false +}) => { + const { locale } = useContext35(LibraryContext); + const previousLabel = messages[locale]["article_pagination.previous"] || "Previous"; + const nextLabel = messages[locale]["article_pagination.next"] || "Next"; + const showPrevious = !hidePaginationPrevious && Boolean(pagination?.previousDoc?.slug) && Boolean(pagination?.previousDoc?.name); + const showNext = !hidePaginationNext && Boolean(pagination?.nextDoc?.slug) && Boolean(pagination?.nextDoc?.name); + return /* @__PURE__ */ jsx120(Box44, { as: "nav", sx: styles_default48.mainContainer, children: /* @__PURE__ */ jsxs97(Flex40, { sx: styles_default48.flexContainer, children: [ + showPrevious && /* @__PURE__ */ jsx120(Box44, { sx: styles_default48.paginationLinkPrevious, children: /* @__PURE__ */ jsx120( + Link14, + { + style: styles_default48.linkReset, + href: pagination.previousDoc.slug, + locale, + children: /* @__PURE__ */ jsxs97(Box44, { sx: styles_default48.paginationBox, children: [ + /* @__PURE__ */ jsx120(Text36, { sx: styles_default48.subTitle, children: `\xAB ${previousLabel}` }), + /* @__PURE__ */ jsx120(Text36, { sx: styles_default48.paginationText, children: pagination.previousDoc.name }) + ] }) + } + ) }), + showNext && /* @__PURE__ */ jsx120(Box44, { sx: styles_default48.paginationLinkNext, children: /* @__PURE__ */ jsx120( + Link14, + { + style: styles_default48.linkReset, + href: pagination.nextDoc.slug, + locale, + children: /* @__PURE__ */ jsxs97(Box44, { sx: styles_default48.paginationBoxNext, children: [ + /* @__PURE__ */ jsx120(Text36, { sx: styles_default48.subTitle, children: `${nextLabel} \xBB` }), + /* @__PURE__ */ jsx120(Text36, { sx: styles_default48.paginationText, children: pagination.nextDoc.name }) + ] }) + } + ) }) + ] }) }); +}; +var article_pagination_default = ArticlePagination; + +// src/components/article-render/index.tsx +import Head from "next/head.js"; +import { Box as Box46, Flex as Flex41, Text as Text38 } from "@vtex/brand-ui"; + +// src/components/see-also-section/index.tsx +import { useContext as useContext36 } from "react"; +import { Box as Box45, Text as Text37 } from "@vtex/brand-ui"; + +// src/components/see-also-section/functions.ts +var ACRONYMS = { + api: "API", + cms: "CMS", + faq: "FAQ", + io: "IO", + sku: "SKU", + vtex: "VTEX" +}; +var CATEGORY_ALIASES = { + "api-guide": "guides", + "api-guides": "guides" +}; +var KEBAB_SLUG = /^[a-z0-9]+(?:-[a-z0-9]+)+$/; +var normalizeKey = (value) => slugify(value.replace(/[_/]+/g, "-")); +var isKebabSlug = (value) => KEBAB_SLUG.test(value); +var humanizeSlug = (slug) => slug.split("-").filter(Boolean).map((word) => ACRONYMS[word.toLowerCase()] ?? capitalizeFirstLetter(word)).join(" "); +var displayLabel = (value) => { + const cleaned = value.split("#")[0].split("?")[0].trim(); + if (!cleaned) + return ""; + if (isKebabSlug(cleaned)) + return humanizeSlug(cleaned); + return cleaned; +}; +var pathnameFromUrl = (url) => { + if (!url) + return ""; + try { + if (/^https?:\/\//i.test(url)) { + return new URL(url).pathname; + } + } catch { + return url.split("#")[0].split("?")[0]; + } + return url.split("#")[0].split("?")[0]; +}; +var lastPathSegment = (url) => { + const path = pathnameFromUrl(url).replace(/\/+$/, ""); + const segment = path.split("/").filter(Boolean).pop() ?? ""; + try { + return decodeURIComponent(segment); + } catch { + return segment; + } +}; +var parentPath = (url) => pathnameFromUrl(url).replace(/\/+$/, "").replace(/\/[^/]+$/, ""); +var findSection = (sections, { category, url }) => { + const all = sections.flat(); + if (!all.length) + return void 0; + const categoryKey = category ? normalizeKey(category) : ""; + const aliased = categoryKey ? CATEGORY_ALIASES[categoryKey] ?? categoryKey : ""; + if (aliased) { + const byCategory = all.find((section) => { + const id = normalizeKey(section.id); + const title9 = normalizeKey(section.title); + return id === aliased || title9 === aliased || id === categoryKey || title9 === categoryKey; + }); + if (byCategory) + return byCategory; + } + const path = pathnameFromUrl(url).replace(/\/+$/, ""); + const isBareExternalOrigin = /^https?:\/\//i.test(url) && (!path || path === "/"); + if (!path || isBareExternalOrigin) + return void 0; + let best; + let bestLength = -1; + for (const section of all) { + if (!section.link || section.isExternalLink) + continue; + const link2 = section.link.replace(/\/+$/, ""); + if (!link2 || link2 === "/") + continue; + if (path === link2 || path.startsWith(`${link2}/`)) { + if (link2.length > bestLength) { + best = section; + bestLength = link2.length; + } + } + } + return best; +}; +var createDocFromUrl = (doc, sections = [], options = {}) => { + const section = findSection(sections, { + category: doc.category, + url: doc.url + }); + const title9 = displayLabel(doc.title || lastPathSegment(doc.url)); + const description6 = section ? getSectionLabel(section, options.navigation, options.locale ?? "en") : displayLabel(doc.category || lastPathSegment(parentPath(doc.url))); + return { + title: title9, + description: description6, + link: doc.url, + Icon: section?.Icon ?? paper_icon_default + }; +}; + +// src/components/see-also-section/styles.ts +var seeAlsoContainer = { + width: "100%", + maxWidth: "100%", + minWidth: 0, + mt: ["8px", "16px"], + pt: ["20px", "24px"], + borderTop: "1px solid #E7E9EE", + a: { + color: "inherit", + fontWeight: "inherit" + }, + h2: { + mt: "0 !important", + mb: ["12px", "16px"], + fontSize: ["16px", "18px"], + lineHeight: ["24px", "26px"], + fontWeight: "600", + color: "#142032" + } +}; +var sectionTitle2 = { + display: "block", + fontSize: ["16px", "18px"], + lineHeight: ["24px", "26px"], + marginBottom: ["12px", "16px"], + fontWeight: "600", + color: "#142032" +}; +var cards = { + display: "grid", + gridTemplateColumns: "repeat(auto-fit, minmax(min(100%, 260px), 1fr))", + gap: "12px", + width: "100%", + minWidth: 0 +}; +var styles_default49 = { + seeAlsoContainer, + sectionTitle: sectionTitle2, + cards +}; + +// src/components/see-also-section/index.tsx +import { jsx as jsx121, jsxs as jsxs98 } from "react/jsx-runtime"; +var isExternalLink = (url) => /^https?:\/\//.test(url); +var SeeAlsoSection = ({ docs }) => { + const { locale, sidebarSections, sidebarDataMaster } = useContext36(LibraryContext); + const title9 = messages[locale]["see_also_section.title"] || "See also"; + const cards2 = docs?.map( + (doc) => createDocFromUrl(doc, sidebarSections, { + locale, + navigation: sidebarDataMaster + }) + ) ?? []; + return /* @__PURE__ */ jsxs98( + Box45, + { + as: "nav", + sx: styles_default49.seeAlsoContainer, + "data-cy": "see-also-section", + "aria-labelledby": "see-also-heading", + children: [ + /* @__PURE__ */ jsx121(Text37, { as: "h2", id: "see-also-heading", sx: styles_default49.sectionTitle, children: title9 }), + /* @__PURE__ */ jsx121(Box45, { sx: styles_default49.cards, children: cards2.map((card2) => /* @__PURE__ */ jsx121( + documentation_card_default, + { + containerType: "see-also", + isExternalLink: isExternalLink(card2.link), + ...card2 + }, + card2.link + )) }) + ] + } + ); +}; +var see_also_section_default = SeeAlsoSection; + +// src/components/article-render/styles.ts +var MUTED = "#5E6E84"; +var innerContainer5 = { + justifyContent: "center", + width: "100%", + minWidth: 0, + boxSizing: "border-box", + pt: ["24px", "32px", "3em"], + mx: "auto", + px: ["18px", "24px", "32px", "40px", "48px", "64px", "20em"], + pb: ["48px", "64px", "72px"] +}; +var articleBox = { + fontSize: "1em", + lineHeight: "1.75em", + flex: "1 1 auto", + width: "100%", + minWidth: 0, + maxWidth: "100%", + color: "rgb(51, 65, 85)", + overflowWrap: "anywhere", + img: { + maxWidth: "100%", + height: "auto" + }, + pre: { + maxWidth: "100%", + overflowX: "auto" + }, + iframe: { + maxWidth: "100%" + }, + a: { + color: "#E31C58", + textDecoration: "none", + fontWeight: "500" + }, + ul: { + pl: "1.5em", + mt: "1.25em", + mb: "1.25em", + li: { + mt: "0.5em", + mb: "0.5em" + }, + listStyleType: "disc", + "ul, ol": { + mt: "0.5em", + mb: "0.5em" + } + }, + ol: { + pl: "1.5em", + mt: "1.25em", + mb: "1.25em", + li: { + mt: "0.5em", + mb: "0.5em" + }, + "ul, ol": { + mt: "0.5em", + mb: "0.5em" + } + }, + header: { + marginTop: ["8px", "16px"], + borderBottom: "1px solid #E7E9EE", + marginBottom: ["8px", "12px"], + pb: ["12px", "16px"] + }, + h2: { + fontSize: "1.375em", + lineHeight: "1.3em", + fontWeight: "700", + mt: ["1.5em", "2em"], + mb: ["0.75em", "1em"], + overflowWrap: "anywhere", + color: "rgb(15, 23, 42)" + }, + h3: { + fontSize: "1.125em", + fontWeight: "600", + lineHeight: "1.6em", + mt: "1.6em", + mb: "0.6em", + overflowWrap: "anywhere" + }, + h4: { + fontSize: "1em", + fontWeight: "600", + lineHeight: "1.5em", + mt: "1.5em", + mb: "0.5em", + color: "rgb(15, 23, 42)", + overflowWrap: "anywhere" + }, + h5: { + fontSize: "0.9375em", + fontWeight: "600", + lineHeight: "1.5em", + mt: "1.25em", + mb: "0.5em", + color: "rgb(71, 85, 105)", + overflowWrap: "anywhere" + }, + h6: { + fontSize: "0.9375em", + fontWeight: "600", + lineHeight: "1.5em", + mt: "1.25em", + mb: "0.5em", + color: "rgb(100, 116, 139)", + overflowWrap: "anywhere" + }, + strong: { + fontWeight: "600", + overflowWrap: "break-word" + }, + hr: { + border: "0.5px solid #E7E9EE", + my: ["2em", "3em"] } -); -var tutorials_icon_default = TutorialsIcon; +}; +var contentContainer2 = { + width: "100%", + minWidth: 0, + maxWidth: "100%" +}; +var documentationTitle = { + display: "block", + marginTop: ["16px", "16px", "24px"], + marginBottom: 0, + fontSize: ["28px", "28px", "30px"], + lineHeight: ["36px", "36px", "38px"], + fontWeight: "400", + color: "#142032", + overflowWrap: "anywhere" +}; +var documentationExcerpt = { + display: "block", + color: "#4A596B", + fontSize: "16px", + lineHeight: "24px", + fontWeight: "400", + mt: "12px", + mb: 0, + overflowWrap: "anywhere" +}; +var breadcrumbRow = { + justifyContent: "space-between", + alignItems: "flex-start", + flexWrap: "wrap", + gap: "8px", + width: "100%", + minWidth: 0 +}; +var articleHeaderExtra = { + mt: ["8px", "10px"], + width: "100%", + minWidth: 0 +}; +var articleMeta = { + flexDirection: "column-reverse", + justifyContent: "flex-start", + alignItems: "stretch", + gap: "10px", + marginBottom: ["16px", "20px"], + marginTop: "0", + width: "100%", + minWidth: 0, + "@media screen and (min-width: 40em)": { + flexDirection: "row", + justifyContent: "space-between", + alignItems: "center", + flexWrap: "wrap", + gap: "8px 16px" + } +}; +var articleMetaInfo = { + flexDirection: "column", + alignItems: "flex-start", + justifyContent: "flex-start", + gap: "2px", + minWidth: 0, + width: "100%", + flex: "0 0 auto", + "@media screen and (min-width: 40em)": { + width: "auto", + flex: "1 1 auto" + } +}; +var articleReadingTime = { + color: MUTED, + fontSize: "13px", + lineHeight: "20px", + "& > *": { + color: "inherit !important", + fontSize: "inherit !important", + lineHeight: "inherit !important" + } +}; +var articleActions = { + display: "flex", + alignItems: "center", + justifyContent: "flex-start", + gap: "8px", + flexShrink: 0, + ml: 0, + width: "100%", + minWidth: 0, + "& > div": { + width: "max-content", + flexShrink: 0 + }, + '& [role="menu"]': { + right: 0 + }, + "@media screen and (min-width: 40em)": { + justifyContent: "flex-end", + ml: "auto", + width: "auto" + } +}; +var bottomContributorsContainer = { + display: ["flex", "flex", "flex", "flex", "none"], + flexDirection: "column", + alignItems: "center", + width: "100%", + minWidth: 0, + pt: ["20px", "24px"], + gap: ["24px", "24px"], + '[data-cy="feedback-section"]': { + marginTop: "0", + marginBottom: "0", + gap: "12px", + "& > div:first-of-type": { + borderBottom: "none", + paddingBottom: 0, + marginBottom: 0, + marginTop: 0 + } + } +}; +var bottomContributors = { + width: "100%", + display: "flex", + flexDirection: "column", + alignItems: "center", + "& > div": { + alignItems: "center !important", + width: "auto !important", + mb: "0 !important" + }, + '[data-cy="contributors-container"]': { + display: "flex !important", + flexWrap: "wrap", + justifyContent: "center", + width: "auto !important", + maxWidth: "232px" + } +}; +var rightContainer = { + ml: [0, 0, 0, 0, "48px", "68px", "200px"], + display: [ + "none !important", + "none !important", + "none !important", + "none !important", + "initial !important" + ], + flexShrink: 0, + width: [0, 0, 0, 0, "240px", "240px", "284px"] +}; +var divider2 = { + borderTop: "1px solid #E7E9EE", + pt: 4, + mt: 4 +}; +var textContainer = { + width: "100%", + minWidth: 0, + maxWidth: "100%", + gap: "8px", + pb: ["16px", "24px", "32px"], + mb: ["8px", "24px", "48px"] +}; +var editContainer = { + my: 3, + gap: 2 +}; +var styles_default50 = { + innerContainer: innerContainer5, + articleBox, + contentContainer: contentContainer2, + documentationTitle, + documentationExcerpt, + breadcrumbRow, + articleHeaderExtra, + articleMeta, + articleMetaInfo, + articleReadingTime, + articleActions, + bottomContributorsContainer, + bottomContributors, + rightContainer, + divider: divider2, + textContainer, + editContainer +}; -// src/components/icons/announcement-icon.tsx -import { Icon as Icon43 } from "@vtex/brand-ui"; -import { jsx as jsx77, jsxs as jsxs64 } from "react/jsx-runtime"; -var AnnouncementIcon = (props) => /* @__PURE__ */ jsxs64( - Icon43, - { - ...props, - viewBox: "0 0 256 256", - fill: "none", - xmlns: "http://www.w3.org/2000/svg", - children: [ - /* @__PURE__ */ jsx77("rect", { width: "16rem", height: "16rem", fill: "none" }), - /* @__PURE__ */ jsx77( - "path", +// src/components/article-render/index.tsx +import { Fragment as Fragment10, jsx as jsx122, jsxs as jsxs99 } from "react/jsx-runtime"; +var readingTimeLabel = (readingTime2) => { + if (readingTime2 == null || readingTime2 === "") + return void 0; + if (typeof readingTime2 === "object" && readingTime2 !== null && "text" in readingTime2) { + const text4 = readingTime2.text; + return text4 != null ? String(text4) : void 0; + } + return String(readingTime2); +}; +var parseFrontmatterDate = (value) => { + if (value == null || value === "") + return void 0; + const date = new Date(String(value)); + return Number.isNaN(date.getTime()) ? void 0 : date; +}; +var ArticleRender = ({ + serialized, + headings: headings2 = [], + headingList, + breadcrumbList, + contributors = [], + path, + pagination, + slug, + type, + pageUrl, + urlToEdit, + rawContentBaseUrl, + children, + seeAlso, + customComponents, + scope = {}, + renderMarkdown, + showReadingTime = true, + showAskAIMenu = true, + showAuthor = false, + showContributors = true, + showFeedbackSection = true, + showSuggestEdits = true, + showArticlePagination = true, + showSeeAlso = true, + showTableOfContents = true, + showDateText = false +}) => { + const tocHeadings = headingList?.length ? headingList : headings2; + const readingTime2 = readingTimeLabel(serialized?.frontmatter?.readingTime); + const createdAt = parseFrontmatterDate(serialized?.frontmatter?.createdAt); + const updatedAt = parseFrontmatterDate(serialized?.frontmatter?.updatedAt); + const hasDates = Boolean(createdAt && updatedAt); + const showBottomSection = showContributors || showFeedbackSection; + const showSidebar = showContributors || showTableOfContents; + const markdown2 = /* @__PURE__ */ jsx122( + MarkdownRenderer_default, + { + serialized, + customComponents, + scope + } + ); + return /* @__PURE__ */ jsxs99(Fragment10, { children: [ + /* @__PURE__ */ jsx122(Head, { children: /* @__PURE__ */ jsxs99(Fragment10, { children: [ + /* @__PURE__ */ jsx122("meta", { name: "docsearch:doctype", content: type }), + serialized?.frontmatter?.title && /* @__PURE__ */ jsx122("title", { children: serialized?.frontmatter?.title }), + serialized?.frontmatter?.title && /* @__PURE__ */ jsx122( + "meta", { - d: "M56.20305,104A71.899,71.899,0,0,1,128.5484,32.002c39.58967.29432,71.25651,33.20133,71.25651,72.90185V112c0,35.81563,7.49325,56.59893,14.093,67.95814A7.999,7.999,0,0,1,207.01628,192H48.98365A7.99908,7.99908,0,0,1,42.103,179.95641c6.60328-11.35959,14.1-32.1426,14.1-67.95641Z", - fill: "none", - stroke: "#4A596B", - strokeLinecap: "round", - strokeLinejoin: "round", - strokeWidth: "18" + name: "docsearch:doctitle", + content: serialized?.frontmatter?.title } ), - /* @__PURE__ */ jsx77( - "path", + serialized.frontmatter?.hidden && /* @__PURE__ */ jsx122("meta", { name: "robots", content: "noindex" }), + serialized.frontmatter?.excerpt && /* @__PURE__ */ jsx122( + "meta", { - d: "M96,192v8a32,32,0,0,0,64,0v-8", - fill: "none", - stroke: "#4A596B", - strokeLinecap: "round", - strokeLinejoin: "round", - strokeWidth: "18" + property: "og:description", + content: serialized.frontmatter?.excerpt } ) - ] - } -); -var announcement_icon_default = AnnouncementIcon; + ] }) }), + /* @__PURE__ */ jsxs99(Flex41, { sx: styles_default50.innerContainer, children: [ + /* @__PURE__ */ jsxs99(Box46, { sx: styles_default50.articleBox, "data-article-box": true, children: [ + /* @__PURE__ */ jsxs99(Box46, { sx: styles_default50.contentContainer, children: [ + /* @__PURE__ */ jsx122(Flex41, { sx: styles_default50.breadcrumbRow, children: /* @__PURE__ */ jsx122(breadcrumb_default, { breadcrumbList }) }), + /* @__PURE__ */ jsxs99(Box46, { sx: styles_default50.textContainer, children: [ + /* @__PURE__ */ jsxs99("article", { children: [ + /* @__PURE__ */ jsx122("header", { children: /* @__PURE__ */ jsxs99(Fragment10, { children: [ + /* @__PURE__ */ jsxs99(Text38, { as: "h1", sx: styles_default50.documentationTitle, className: "title", children: [ + serialized.frontmatter?.title, + /* @__PURE__ */ jsx122(copy_heading_link_default, {}) + ] }), + children && /* @__PURE__ */ jsx122(Box46, { sx: styles_default50.articleHeaderExtra, children }), + showAuthor && contributors[0]?.avatar && /* @__PURE__ */ jsx122(author_default, { contributor: contributors[0] }), + serialized.frontmatter?.excerpt && /* @__PURE__ */ jsx122(Text38, { as: "p", sx: styles_default50.documentationExcerpt, children: serialized.frontmatter?.excerpt }) + ] }) }), + /* @__PURE__ */ jsxs99(Flex41, { sx: styles_default50.articleMeta, children: [ + (showDateText && hasDates || showReadingTime && readingTime2) && /* @__PURE__ */ jsxs99(Flex41, { sx: styles_default50.articleMetaInfo, children: [ + showDateText && hasDates && createdAt && updatedAt && /* @__PURE__ */ jsx122( + date_text_default, + { + createdAt, + updatedAt + } + ), + showReadingTime && readingTime2 && /* @__PURE__ */ jsx122(Box46, { sx: styles_default50.articleReadingTime, children: /* @__PURE__ */ jsx122(time_to_read_default, { minutes: readingTime2 }) }) + ] }), + /* @__PURE__ */ jsxs99(Flex41, { sx: styles_default50.articleActions, children: [ + /* @__PURE__ */ jsx122(feedback_modal_default, { pageUrl }), + showAskAIMenu && /* @__PURE__ */ jsx122( + ask_ai_default, + { + filePath: path, + pageUrl, + rawContentBaseUrl + } + ) + ] }) + ] }), + renderMarkdown ? renderMarkdown(markdown2) : markdown2 + ] }), + showSeeAlso && (Array.isArray(seeAlso) ? seeAlso.length > 0 && /* @__PURE__ */ jsx122(see_also_section_default, { docs: seeAlso }) : seeAlso) + ] }) + ] }), + showBottomSection && /* @__PURE__ */ jsxs99(Box46, { sx: styles_default50.bottomContributorsContainer, children: [ + showContributors && /* @__PURE__ */ jsx122(Box46, { sx: styles_default50.bottomContributors, children: /* @__PURE__ */ jsx122(Contributors_default, { contributors }) }), + showFeedbackSection && /* @__PURE__ */ jsx122( + feedback_section_default, + { + slug, + urlToEdit, + pageUrl, + suggestEdits: showSuggestEdits + } + ) + ] }), + showArticlePagination && pagination && /* @__PURE__ */ jsx122( + article_pagination_default, + { + hidePaginationNext: Boolean(serialized.frontmatter?.hidePaginationNext) || false, + hidePaginationPrevious: Boolean(serialized.frontmatter?.hidePaginationPrevious) || false, + pagination + } + ) + ] }), + showSidebar && /* @__PURE__ */ jsxs99(Box46, { sx: styles_default50.rightContainer, "data-article-aside": true, children: [ + showContributors && /* @__PURE__ */ jsx122(Contributors_default, { contributors }), + showTableOfContents && /* @__PURE__ */ jsx122(TableOfContents_default, { headingList: tocHeadings, children: (showFeedbackSection || showSuggestEdits) && /* @__PURE__ */ jsxs99(Box46, { sx: styles_default50.divider, children: [ + showFeedbackSection && /* @__PURE__ */ jsx122(feedback_section_default, { slug, small: true, suggestEdits: false }), + showSuggestEdits && /* @__PURE__ */ jsx122( + suggest_edits_default, + { + urlToEdit, + small: true, + sx: styles_default50.editContainer + } + ) + ] }) }) + ] }), + showTableOfContents && tocHeadings.length > 0 && /* @__PURE__ */ jsx122(OnThisPage_default, { headingList: tocHeadings }) + ] }) + ] }); +}; +var article_render_default = ArticleRender; -// src/components/icons/vtex-devportal-icon.tsx -import { Icon as Icon44 } from "@vtex/brand-ui"; -import { jsx as jsx78, jsxs as jsxs65 } from "react/jsx-runtime"; -var VTEXDevPortalIcon = (props) => /* @__PURE__ */ jsxs65( - Icon44, - { - ...props, - viewBox: "0 0 204 32", - fill: "none", - xmlns: "http://www.w3.org/2000/svg", - children: [ - /* @__PURE__ */ jsx78("g", { clipPath: "url(#clip0_2044_123231)", children: /* @__PURE__ */ jsx78( - "path", - { - d: "M33.5348 0.751221H6.47098C4.37195 0.751221 3.01813 2.95123 3.99934 4.77234L6.70696 9.82013H1.80094C0.80732 9.82013 0 10.6146 0 11.5924C0 11.8857 0.0745218 12.1668 0.211145 12.4235L8.91778 28.6424C9.38975 29.5102 10.4827 29.8402 11.3522 29.3757C11.6751 29.2046 11.9359 28.9479 12.0974 28.6424L14.4572 24.2668L17.4257 29.7913C18.469 31.7346 21.3008 31.7346 22.3441 29.7913L35.9319 4.67456C36.8883 2.89011 35.5718 0.751221 33.5348 0.751221ZM21.3753 11.4824L15.5254 22.3235C15.2149 22.8979 14.4821 23.1179 13.8983 22.8124C13.6872 22.7024 13.5133 22.5313 13.4015 22.3235L7.61365 11.5312C7.30314 10.9568 7.5267 10.2357 8.11046 9.93013C8.28434 9.84457 8.47065 9.79568 8.66937 9.79568H20.3445C20.9903 9.79568 21.512 10.309 21.512 10.9446C21.512 11.1279 21.4623 11.3235 21.3753 11.4824ZM62.3251 12.4112H59.3691V22.3968C59.3691 22.5802 59.2076 22.739 59.0213 22.739H56.7359C56.5496 22.739 56.3882 22.5802 56.3882 22.3968V12.4112H53.4073C53.221 12.4235 53.072 12.2768 53.0595 12.0935V12.0812V10.309C53.0595 10.1257 53.2086 9.97902 53.3949 9.97902H53.4073H62.3251C62.5114 9.96679 62.6853 10.1135 62.6853 10.309V12.0812C62.6729 12.2646 62.5114 12.4112 62.3251 12.4112ZM71.8266 22.6657C71.218 22.7513 70.1871 22.8857 68.3117 22.8857C66.0636 22.8857 64.0764 22.3235 64.0764 19.1946V13.499C64.0764 10.3824 66.076 9.83235 68.3241 9.83235C70.1996 9.83235 71.218 9.96679 71.8266 10.0524C72.075 10.089 72.1744 10.1746 72.1744 10.3946V11.9957C72.1744 12.179 72.0129 12.3379 71.8266 12.3379H68.1502C67.3305 12.3379 67.0324 12.6068 67.0324 13.499V15.0635H71.6776C71.8639 15.0635 72.0253 15.2224 72.0253 15.4057V17.0313C72.0253 17.2146 71.8639 17.3735 71.6776 17.3735H67.0324V19.1946C67.0324 20.0868 67.3305 20.3557 68.1502 20.3557H71.8266C72.0129 20.3557 72.1744 20.5146 72.1744 20.6979V22.299C72.1744 22.519 72.075 22.629 71.8266 22.6657ZM84.9797 22.7268H82.21C81.9864 22.7268 81.8746 22.6535 81.7629 22.4702L79.3533 18.7179L77.1798 22.3846C77.0556 22.5924 76.9314 22.7268 76.7451 22.7268H74.1616C73.9877 22.7268 73.9008 22.629 73.9008 22.5068C73.9008 22.4702 73.9132 22.4213 73.9381 22.3846L77.7138 16.1879L73.9008 10.309C73.876 10.2724 73.8635 10.2479 73.8635 10.2112C73.876 10.0768 73.9877 9.97902 74.1244 9.99124H76.9314C77.1177 9.99124 77.2667 10.1624 77.3661 10.3212L79.6017 13.7801L81.7629 10.3212C81.8498 10.1624 82.0113 9.99124 82.1976 9.99124H84.781C84.9176 9.99124 85.0294 10.089 85.0418 10.2112C85.0418 10.2479 85.0294 10.2846 85.0046 10.309L81.2039 16.2246L85.166 22.3846C85.1909 22.4335 85.2157 22.4946 85.2157 22.5557C85.2033 22.6657 85.1163 22.7268 84.9797 22.7268ZM51.3455 10.0157C51.3704 10.0157 51.3828 10.0157 51.4076 10.0279C51.5567 10.0646 51.6436 10.199 51.6064 10.3457C51.6064 10.3457 48.5882 20.8813 48.5385 21.0157C48.1287 22.2379 47.0605 22.8735 45.8558 22.8735C44.5765 22.8735 43.5828 22.2746 43.173 21.0157C43.1357 20.9057 40.0431 10.3457 40.0431 10.3457C40.0431 10.3212 40.0306 10.309 40.0306 10.2846C40.0306 10.1379 40.1548 10.0157 40.3039 10.0157H42.8004C42.9246 10.0157 43.0364 10.1012 43.0612 10.2235L45.5949 19.439C45.6322 19.6224 45.6819 19.6957 45.8433 19.6957C46.0048 19.6957 46.0545 19.6224 46.0918 19.439L48.6255 10.2235C48.6503 10.1012 48.7621 10.0157 48.8863 10.0157H51.3455Z", - fill: "#E31C58" - } - ) }), - /* @__PURE__ */ jsx78( - "path", - { - d: "M98.7088 0.751221H97.2158V31.2488H98.7088V0.751221Z", - fill: "#E31C58" - } - ), - /* @__PURE__ */ jsx78( - "path", - { - d: "M112.221 21.5H116.037C120.393 21.5 122.661 19.34 122.661 15.362C122.661 11.402 120.393 9.26 116.037 9.26H112.221V21.5ZM114.003 19.988V10.772H115.947C119.385 10.772 120.789 12.464 120.789 15.362C120.789 18.278 119.385 19.988 115.947 19.988H114.003ZM128.357 21.68C130.481 21.68 131.885 20.618 132.227 18.89L130.697 18.512C130.463 19.736 129.581 20.294 128.411 20.294C126.683 20.294 125.891 19.088 125.855 17.162H132.263C132.263 17.072 132.281 17.036 132.281 16.73C132.281 13.958 130.841 12.41 128.429 12.41C125.693 12.41 124.127 14.39 124.127 17.18C124.127 19.88 125.603 21.68 128.357 21.68ZM125.945 16.01C126.197 14.552 127.025 13.76 128.339 13.76C129.707 13.76 130.463 14.624 130.517 16.01H125.945ZM136.207 21.5H138.817L141.805 12.608H140.023L137.575 20.366L135.145 12.608H133.255L136.207 21.5ZM147.025 21.68C149.149 21.68 150.553 20.618 150.895 18.89L149.365 18.512C149.131 19.736 148.249 20.294 147.079 20.294C145.351 20.294 144.559 19.088 144.523 17.162H150.931C150.931 17.072 150.949 17.036 150.949 16.73C150.949 13.958 149.509 12.41 147.097 12.41C144.361 12.41 142.795 14.39 142.795 17.18C142.795 19.88 144.271 21.68 147.025 21.68ZM144.613 16.01C144.865 14.552 145.693 13.76 147.007 13.76C148.375 13.76 149.131 14.624 149.185 16.01H144.613ZM153.102 21.5H154.758V9.26H153.102V21.5ZM161.425 21.68C163.873 21.68 165.799 20.078 165.799 17.054C165.799 14.012 163.873 12.41 161.425 12.41C158.995 12.41 157.033 14.012 157.033 17.054C157.033 20.078 158.995 21.68 161.425 21.68ZM158.779 17.054C158.779 15.02 159.841 13.886 161.425 13.886C163.027 13.886 164.071 15.02 164.071 17.054C164.071 19.07 163.027 20.222 161.425 20.222C159.841 20.222 158.779 19.07 158.779 17.054ZM167.991 24.848H169.647V18.854H169.665C170.061 21.032 171.195 21.68 172.761 21.68C174.813 21.68 176.433 20.186 176.433 17.108C176.433 14.012 174.741 12.446 172.653 12.446C171.051 12.446 170.133 13.346 169.665 14.984H169.629V12.608H167.991V24.848ZM169.683 17.108C169.683 14.966 170.745 13.886 172.185 13.886C173.643 13.886 174.687 14.948 174.687 17.108C174.687 19.196 173.679 20.222 172.185 20.222C170.709 20.222 169.683 19.196 169.683 17.108ZM182.427 21.68C184.551 21.68 185.955 20.618 186.297 18.89L184.767 18.512C184.533 19.736 183.651 20.294 182.481 20.294C180.753 20.294 179.961 19.088 179.925 17.162H186.333C186.333 17.072 186.351 17.036 186.351 16.73C186.351 13.958 184.911 12.41 182.499 12.41C179.763 12.41 178.197 14.39 178.197 17.18C178.197 19.88 179.673 21.68 182.427 21.68ZM180.015 16.01C180.267 14.552 181.095 13.76 182.409 13.76C183.777 13.76 184.533 14.624 184.587 16.01H180.015ZM188.505 21.5H190.161V16.784C190.161 15.056 191.079 14.084 192.717 14.084C193.059 14.084 193.473 14.12 193.725 14.174L193.635 12.518C193.383 12.464 193.005 12.428 192.717 12.428C191.421 12.428 190.593 13.004 190.107 15.182H190.053V12.608H188.505V21.5ZM198.692 21.68C200.996 21.68 202.454 20.636 202.454 18.71C202.454 16.892 200.942 16.532 199.448 16.28L198.134 16.082C197.27 15.938 196.676 15.722 196.676 14.966C196.676 14.156 197.396 13.724 198.404 13.724C199.556 13.724 200.33 14.282 200.474 15.452L202.112 15.092C201.896 13.328 200.348 12.428 198.476 12.428C196.478 12.428 195.002 13.418 195.002 15.092C195.002 16.694 196.28 17.216 197.504 17.414L198.944 17.63C200.078 17.81 200.762 18.062 200.762 18.908C200.762 19.808 200.042 20.348 198.656 20.348C197.414 20.348 196.55 19.736 196.406 18.368L194.696 18.728C194.84 20.672 196.442 21.68 198.692 21.68Z", - fill: "#E31C58" - } - ), - /* @__PURE__ */ jsx78("defs", { children: /* @__PURE__ */ jsx78("clipPath", { id: "clip0_2044_123231", children: /* @__PURE__ */ jsx78( - "rect", - { - width: "85.2157", - height: "30.4976", - fill: "white", - transform: "translate(0 0.751221)" - } - ) }) }) - ] +// src/components/troubleshooting-card/index.tsx +import { Box as Box47, Link as Link15, Text as Text39 } from "@vtex/brand-ui"; + +// src/components/troubleshooting-card/styles.ts +var devportalContainer = { + mt: "16px", + padding: "25px", + borderRadius: "4px", + border: "1px solid #E7E9EE", + width: "100%", + transition: "all 0.3s ease-out", + ":hover": { + cursor: "pointer" + }, + ":active, :hover": { + borderColor: "muted.2", + boxShadow: "0px 0px 16px rgba(0, 0, 0, 0.1)", + transition: "all 0.3 ease-out", + ".title, .description": { + transition: "all 0.3s ease-out", + color: "#000711" + } } -); -var vtex_devportal_icon_default = VTEXDevPortalIcon; +}; +var helpcenterContainer = { + px: ["20px", "32px", "36px", "48px"], + py: ["20px", "24px"], + display: "flex", + flexDirection: "column", + gap: ["12px", "16px"], + borderRadius: "4px", + border: "1px solid #E7E9EE", + width: "100%", + maxWidth: "100%", + minWidth: 0, + boxSizing: "border-box", + transition: "all 0.3s ease-out", + ":hover": { + cursor: "pointer" + }, + ":active, :hover": { + boxShadow: "0px 0px 16px rgba(0, 0, 0, 0.1)", + transition: "all 0.3 ease-out", + ".title": { + transition: "all 0.3s ease-out", + color: "#000711" + } + } +}; +var title8 = { + mb: "8px", + fontSize: ["16px", "18px", "20px"], + fontWeight: "400", + lineHeight: ["24px", "28px", "30px"], + color: "muted.0", + overflowWrap: "anywhere" +}; +var description5 = { + fontSize: "16px", + lineHeight: "22px", + fontWeight: "400", + color: "muted.1", + overflow: "hidden", + width: "100%", + height: "50%", + display: ["none", "none", "block", "block", "block", "block", "block"] +}; +var tag3 = { + width: "max-content", + maxWidth: "100%", + px: "8px", + margin: "4px", + overflowWrap: "anywhere" +}; +var tagsContainer = { + display: "flex", + flexWrap: "wrap", + mt: "12px", + gap: "16px" +}; +var tagGroup = { + display: "flex", + flexWrap: "wrap", + gap: "8px" +}; +var groupsContainer = { + display: "flex", + flexWrap: "wrap", + alignItems: "center", + gap: "12px 20px" +}; +var groupContainer = { + display: "flex", + flexWrap: "wrap", + alignItems: "center", + gap: "8px", + flex: "0 1 auto", + maxWidth: "100%" +}; +var helpcenterTagsContainer = { + display: "flex", + flexWrap: "wrap", + alignItems: "center" +}; +var styles_default51 = { + devportalContainer, + helpcenterContainer, + title: title8, + description: description5, + tag: tag3, + tagsContainer, + tagGroup, + groupsContainer, + groupContainer, + helpcenterTagsContainer +}; -// src/components/icons/vtex-helpcenter-icon.tsx -import { Icon as Icon45 } from "@vtex/brand-ui"; -import { jsx as jsx79, jsxs as jsxs66 } from "react/jsx-runtime"; -var VTEXHelpCenterIcon = (props) => /* @__PURE__ */ jsxs66( - Icon45, - { - ...props, - viewBox: "0 0 208 32", - fill: "none", - xmlns: "http://www.w3.org/2000/svg", - children: [ - /* @__PURE__ */ jsx79( - "path", - { - d: "M33.5348 0H6.47098C4.37195 0 3.01813 2.2 3.99934 4.02112L6.70696 9.06891H1.80094C0.80732 9.06891 0 9.86335 0 10.8411C0 11.1345 0.0745218 11.4156 0.211145 11.6722L8.91778 27.8912C9.38975 28.7589 10.4827 29.0889 11.3522 28.6245C11.6751 28.4534 11.9359 28.1967 12.0974 27.8912L14.4572 23.5156L17.4257 29.0401C18.469 30.9834 21.3008 30.9834 22.3441 29.0401L35.9319 3.92334C36.8883 2.13889 35.5718 0 33.5348 0ZM21.3753 10.7311L15.5254 21.5723C15.2149 22.1467 14.4821 22.3667 13.8983 22.0612C13.6872 21.9512 13.5133 21.78 13.4015 21.5723L7.61365 10.78C7.30314 10.2056 7.5267 9.48446 8.11046 9.17891C8.28434 9.09335 8.47065 9.04446 8.66937 9.04446H20.3445C20.9903 9.04446 21.512 9.5578 21.512 10.1934C21.512 10.3767 21.4623 10.5722 21.3753 10.7311ZM62.3251 11.66H59.3691V21.6456C59.3691 21.8289 59.2076 21.9878 59.0213 21.9878H56.7359C56.5496 21.9878 56.3882 21.8289 56.3882 21.6456V11.66H53.4073C53.221 11.6722 53.072 11.5256 53.0595 11.3422V11.33V9.5578C53.0595 9.37446 53.2086 9.2278 53.3949 9.2278H53.4073H62.3251C62.5114 9.21557 62.6853 9.36224 62.6853 9.5578V11.33C62.6729 11.5134 62.5114 11.66 62.3251 11.66ZM71.8266 21.9145C71.218 22 70.1871 22.1345 68.3117 22.1345C66.0636 22.1345 64.0764 21.5723 64.0764 18.4434V12.7478C64.0764 9.63113 66.076 9.08113 68.3241 9.08113C70.1996 9.08113 71.218 9.21557 71.8266 9.30113C72.075 9.3378 72.1744 9.42335 72.1744 9.64335V11.2445C72.1744 11.4278 72.0129 11.5867 71.8266 11.5867H68.1502C67.3305 11.5867 67.0324 11.8556 67.0324 12.7478V14.3123H71.6776C71.8639 14.3123 72.0253 14.4711 72.0253 14.6545V16.28C72.0253 16.4634 71.8639 16.6223 71.6776 16.6223H67.0324V18.4434C67.0324 19.3356 67.3305 19.6045 68.1502 19.6045H71.8266C72.0129 19.6045 72.1744 19.7634 72.1744 19.9467V21.5478C72.1744 21.7678 72.075 21.8778 71.8266 21.9145ZM84.9797 21.9756H82.21C81.9864 21.9756 81.8746 21.9023 81.7629 21.7189L79.3533 17.9667L77.1798 21.6334C77.0556 21.8412 76.9314 21.9756 76.7451 21.9756H74.1616C73.9877 21.9756 73.9008 21.8778 73.9008 21.7556C73.9008 21.7189 73.9132 21.67 73.9381 21.6334L77.7138 15.4367L73.9008 9.5578C73.876 9.52113 73.8636 9.49669 73.8636 9.46002C73.876 9.32557 73.9878 9.2278 74.1244 9.24002H76.9314C77.1177 9.24002 77.2667 9.41113 77.3661 9.57002L79.6017 13.0289L81.7629 9.57002C81.8498 9.41113 82.0113 9.24002 82.1976 9.24002H84.781C84.9176 9.24002 85.0294 9.3378 85.0418 9.46002C85.0418 9.49669 85.0294 9.53335 85.0046 9.5578L81.2039 15.4734L85.166 21.6334C85.1909 21.6823 85.2157 21.7434 85.2157 21.8045C85.2033 21.9145 85.1163 21.9756 84.9797 21.9756ZM51.3455 9.26446C51.3704 9.26446 51.3828 9.26446 51.4076 9.27669C51.5567 9.31335 51.6436 9.4478 51.6064 9.59446C51.6064 9.59446 48.5882 20.13 48.5385 20.2645C48.1287 21.4867 47.0605 22.1223 45.8558 22.1223C44.5765 22.1223 43.5828 21.5234 43.173 20.2645C43.1357 20.1545 40.0431 9.59446 40.0431 9.59446C40.0431 9.57002 40.0306 9.5578 40.0306 9.53335C40.0306 9.38669 40.1548 9.26446 40.3039 9.26446H42.8004C42.9246 9.26446 43.0364 9.35002 43.0612 9.47224L45.5949 18.6878C45.6322 18.8711 45.6819 18.9445 45.8433 18.9445C46.0048 18.9445 46.0545 18.8711 46.0917 18.6878L48.6255 9.47224C48.6503 9.35002 48.7621 9.26446 48.8863 9.26446H51.3455Z", - fill: "#E31C58" - } - ), - /* @__PURE__ */ jsx79("path", { d: "M98.7078 0H97.2148V30.4976H98.7078V0Z", fill: "#E31C58" }), - /* @__PURE__ */ jsx79( - "path", - { - d: "M120.139 20.748V8.50805H121.921V20.748H120.139ZM112.219 20.748V8.50805H114.001V20.748H112.219ZM112.741 15.222V13.746H120.931V15.222H112.741ZM128.144 20.928C127.46 20.928 126.854 20.82 126.326 20.604C125.798 20.388 125.354 20.082 124.994 19.686C124.634 19.29 124.364 18.816 124.184 18.264C124.004 17.712 123.914 17.1 123.914 16.428C123.914 15.492 124.082 14.67 124.418 13.962C124.754 13.242 125.24 12.678 125.876 12.27C126.524 11.862 127.304 11.658 128.216 11.658C129.02 11.658 129.71 11.826 130.286 12.162C130.862 12.498 131.3 12.99 131.6 13.638C131.912 14.274 132.068 15.054 132.068 15.978C132.068 16.134 132.062 16.236 132.05 16.284C132.05 16.32 132.05 16.362 132.05 16.41H125.408V15.258H130.754L130.304 15.708C130.34 15.156 130.28 14.682 130.124 14.286C129.968 13.878 129.722 13.566 129.386 13.35C129.05 13.122 128.63 13.008 128.126 13.008C127.586 13.008 127.13 13.14 126.758 13.404C126.398 13.656 126.122 14.028 125.93 14.52C125.738 15 125.642 15.594 125.642 16.302C125.642 16.806 125.69 17.256 125.786 17.652C125.894 18.048 126.05 18.39 126.254 18.678C126.47 18.954 126.734 19.17 127.046 19.326C127.37 19.47 127.754 19.542 128.198 19.542C128.594 19.542 128.948 19.482 129.26 19.362C129.572 19.23 129.836 19.032 130.052 18.768C130.268 18.504 130.412 18.168 130.484 17.76L132.014 18.138C131.906 18.714 131.678 19.212 131.33 19.632C130.994 20.04 130.556 20.358 130.016 20.586C129.476 20.814 128.852 20.928 128.144 20.928ZM134.221 20.748V8.50805H135.877V20.748H134.221ZM138.44 24.096V11.856H140.078V14.232H140.114C140.354 13.416 140.708 12.792 141.176 12.36C141.656 11.916 142.298 11.694 143.102 11.694C143.63 11.694 144.122 11.796 144.578 12C145.034 12.192 145.43 12.48 145.766 12.864C146.114 13.248 146.384 13.734 146.576 14.322C146.78 14.898 146.882 15.576 146.882 16.356C146.882 17.376 146.72 18.228 146.396 18.912C146.072 19.584 145.628 20.088 145.064 20.424C144.512 20.76 143.894 20.928 143.21 20.928C142.694 20.928 142.226 20.844 141.806 20.676C141.386 20.508 141.032 20.22 140.744 19.812C140.456 19.392 140.246 18.822 140.114 18.102H140.096V24.096H138.44ZM142.634 19.47C143.138 19.47 143.576 19.356 143.948 19.128C144.32 18.9 144.608 18.558 144.812 18.102C145.028 17.634 145.136 17.052 145.136 16.356C145.136 15.816 145.076 15.348 144.956 14.952C144.836 14.544 144.662 14.208 144.434 13.944C144.206 13.668 143.936 13.464 143.624 13.332C143.324 13.2 142.994 13.134 142.634 13.134C142.154 13.134 141.722 13.254 141.338 13.494C140.966 13.734 140.672 14.094 140.456 14.574C140.24 15.042 140.132 15.636 140.132 16.356C140.132 16.872 140.192 17.328 140.312 17.724C140.432 18.108 140.6 18.432 140.816 18.696C141.044 18.96 141.308 19.158 141.608 19.29C141.92 19.41 142.262 19.47 142.634 19.47ZM158.704 20.946C157.888 20.946 157.138 20.808 156.454 20.532C155.782 20.256 155.194 19.848 154.69 19.308C154.198 18.768 153.814 18.108 153.538 17.328C153.274 16.548 153.142 15.654 153.142 14.646C153.142 13.638 153.28 12.744 153.556 11.964C153.832 11.172 154.222 10.512 154.726 9.98405C155.242 9.44405 155.848 9.03605 156.544 8.76005C157.24 8.48405 158.008 8.34605 158.848 8.34605C159.748 8.34605 160.558 8.52605 161.278 8.88605C161.998 9.23405 162.598 9.74405 163.078 10.416C163.558 11.076 163.876 11.88 164.032 12.828L162.25 13.188C162.118 12.456 161.896 11.85 161.584 11.37C161.284 10.89 160.894 10.536 160.414 10.308C159.934 10.068 159.376 9.94805 158.74 9.94805C157.972 9.94805 157.306 10.134 156.742 10.506C156.178 10.878 155.74 11.412 155.428 12.108C155.116 12.804 154.96 13.65 154.96 14.646C154.96 15.618 155.116 16.458 155.428 17.166C155.74 17.862 156.178 18.402 156.742 18.786C157.318 19.158 157.984 19.344 158.74 19.344C159.376 19.344 159.946 19.218 160.45 18.966C160.954 18.702 161.362 18.306 161.674 17.778C161.998 17.25 162.202 16.584 162.286 15.78L164.086 16.194C163.966 17.214 163.654 18.078 163.15 18.786C162.658 19.494 162.028 20.034 161.26 20.406C160.492 20.766 159.64 20.946 158.704 20.946ZM169.751 20.928C169.067 20.928 168.461 20.82 167.933 20.604C167.405 20.388 166.961 20.082 166.601 19.686C166.241 19.29 165.971 18.816 165.791 18.264C165.611 17.712 165.521 17.1 165.521 16.428C165.521 15.492 165.689 14.67 166.025 13.962C166.361 13.242 166.847 12.678 167.483 12.27C168.131 11.862 168.911 11.658 169.823 11.658C170.627 11.658 171.317 11.826 171.893 12.162C172.469 12.498 172.907 12.99 173.207 13.638C173.519 14.274 173.675 15.054 173.675 15.978C173.675 16.134 173.669 16.236 173.657 16.284C173.657 16.32 173.657 16.362 173.657 16.41H167.015V15.258H172.361L171.911 15.708C171.947 15.156 171.887 14.682 171.731 14.286C171.575 13.878 171.329 13.566 170.993 13.35C170.657 13.122 170.237 13.008 169.733 13.008C169.193 13.008 168.737 13.14 168.365 13.404C168.005 13.656 167.729 14.028 167.537 14.52C167.345 15 167.249 15.594 167.249 16.302C167.249 16.806 167.297 17.256 167.393 17.652C167.501 18.048 167.657 18.39 167.861 18.678C168.077 18.954 168.341 19.17 168.653 19.326C168.977 19.47 169.361 19.542 169.805 19.542C170.201 19.542 170.555 19.482 170.867 19.362C171.179 19.23 171.443 19.032 171.659 18.768C171.875 18.504 172.019 18.168 172.091 17.76L173.621 18.138C173.513 18.714 173.285 19.212 172.937 19.632C172.601 20.04 172.163 20.358 171.623 20.586C171.083 20.814 170.459 20.928 169.751 20.928ZM175.829 20.748V11.856H177.395V14.106H177.449C177.569 13.554 177.755 13.098 178.007 12.738C178.259 12.378 178.577 12.108 178.961 11.928C179.345 11.748 179.783 11.658 180.275 11.658C180.767 11.658 181.205 11.73 181.589 11.874C181.973 12.018 182.297 12.24 182.561 12.54C182.825 12.828 183.023 13.2 183.155 13.656C183.299 14.1 183.371 14.628 183.371 15.24V20.748H181.715V15.33C181.715 14.874 181.637 14.484 181.481 14.16C181.337 13.824 181.115 13.572 180.815 13.404C180.515 13.224 180.137 13.134 179.681 13.134C178.949 13.134 178.397 13.332 178.025 13.728C177.665 14.112 177.485 14.646 177.485 15.33V20.748H175.829ZM188.749 20.928C188.269 20.928 187.849 20.862 187.489 20.73C187.141 20.598 186.871 20.376 186.679 20.064C186.487 19.74 186.391 19.302 186.391 18.75V12.9L187.687 11.856H190.549V13.242H184.897V12.234C185.233 12.138 185.521 12.018 185.761 11.874C186.001 11.73 186.199 11.55 186.355 11.334C186.523 11.106 186.655 10.836 186.751 10.524C186.847 10.2 186.913 9.82205 186.949 9.39005H188.047V18.39C188.047 18.822 188.143 19.116 188.335 19.272C188.527 19.416 188.809 19.488 189.181 19.488C189.469 19.488 189.739 19.464 189.991 19.416C190.255 19.356 190.477 19.302 190.657 19.254L190.441 20.712C190.213 20.772 189.949 20.82 189.649 20.856C189.361 20.904 189.061 20.928 188.749 20.928ZM196.259 20.928C195.575 20.928 194.969 20.82 194.441 20.604C193.913 20.388 193.469 20.082 193.109 19.686C192.749 19.29 192.479 18.816 192.299 18.264C192.119 17.712 192.029 17.1 192.029 16.428C192.029 15.492 192.197 14.67 192.533 13.962C192.869 13.242 193.355 12.678 193.991 12.27C194.639 11.862 195.419 11.658 196.331 11.658C197.135 11.658 197.825 11.826 198.401 12.162C198.977 12.498 199.415 12.99 199.715 13.638C200.027 14.274 200.183 15.054 200.183 15.978C200.183 16.134 200.177 16.236 200.165 16.284C200.165 16.32 200.165 16.362 200.165 16.41H193.523V15.258H198.869L198.419 15.708C198.455 15.156 198.395 14.682 198.239 14.286C198.083 13.878 197.837 13.566 197.501 13.35C197.165 13.122 196.745 13.008 196.241 13.008C195.701 13.008 195.245 13.14 194.873 13.404C194.513 13.656 194.237 14.028 194.045 14.52C193.853 15 193.757 15.594 193.757 16.302C193.757 16.806 193.805 17.256 193.901 17.652C194.009 18.048 194.165 18.39 194.369 18.678C194.585 18.954 194.849 19.17 195.161 19.326C195.485 19.47 195.869 19.542 196.313 19.542C196.709 19.542 197.063 19.482 197.375 19.362C197.687 19.23 197.951 19.032 198.167 18.768C198.383 18.504 198.527 18.168 198.599 17.76L200.129 18.138C200.021 18.714 199.793 19.212 199.445 19.632C199.109 20.04 198.671 20.358 198.131 20.586C197.591 20.814 196.967 20.928 196.259 20.928ZM202.337 20.748V11.856H203.885V14.43H203.939C204.107 13.698 204.311 13.134 204.551 12.738C204.791 12.342 205.073 12.066 205.397 11.91C205.733 11.754 206.117 11.676 206.549 11.676C206.693 11.676 206.849 11.688 207.017 11.712C207.197 11.724 207.347 11.742 207.467 11.766L207.557 13.422C207.437 13.398 207.281 13.38 207.089 13.368C206.897 13.344 206.717 13.332 206.549 13.332C206.009 13.332 205.547 13.44 205.163 13.656C204.779 13.86 204.485 14.166 204.281 14.574C204.089 14.97 203.993 15.456 203.993 16.032V20.748H202.337Z", - fill: "#E31D58" - } - ) - ] +// src/components/troubleshooting-card/index.tsx +import { jsx as jsx123, jsxs as jsxs100 } from "react/jsx-runtime"; +function buildHref({ + slug, + href, + basePath = "/docs/troubleshooting" +}) { + if (href) + return href; + const normalizedBasePath = basePath.replace(/\/$/, ""); + return `${normalizedBasePath}/${slug}`; +} +var TroubleshootingCard = ({ + title: title9, + description: description6, + slug, + tags, + domainFilters, + symptomFilters, + href, + basePath, + variant = "devportal" +}) => { + const cardHref = buildHref({ slug, href, basePath }); + const resolvedSymptomFilters = symptomFilters?.filter(Boolean) ?? []; + const resolvedDomainFilters = domainFilters?.filter(Boolean) ?? []; + const fallbackTags = tags?.filter(Boolean) ?? []; + const hasStructuredTags = resolvedSymptomFilters.length > 0 || resolvedDomainFilters.length > 0; + if (variant === "helpcenter") { + return /* @__PURE__ */ jsx123( + Link15, + { + href: cardHref, + sx: { + display: "block", + width: "100%", + maxWidth: "100%", + minWidth: 0, + textDecoration: "none" + }, + children: /* @__PURE__ */ jsxs100(Box47, { sx: styles_default51.helpcenterContainer, children: [ + /* @__PURE__ */ jsx123(Text39, { sx: styles_default51.title, className: "title", children: title9 }), + hasStructuredTags ? /* @__PURE__ */ jsxs100(Box47, { sx: styles_default51.groupsContainer, children: [ + resolvedSymptomFilters.length > 0 && /* @__PURE__ */ jsx123(Box47, { sx: styles_default51.groupContainer, children: /* @__PURE__ */ jsx123(Box47, { sx: styles_default51.helpcenterTagsContainer, children: resolvedSymptomFilters.map((filter) => /* @__PURE__ */ jsx123( + tag_default, + { + sx: styles_default51.tag, + color: "Blue", + children: filter + }, + `symptom-${filter}` + )) }) }), + resolvedDomainFilters.length > 0 && /* @__PURE__ */ jsx123(Box47, { sx: styles_default51.groupContainer, children: /* @__PURE__ */ jsx123(Box47, { sx: styles_default51.helpcenterTagsContainer, children: resolvedDomainFilters.map((filter) => /* @__PURE__ */ jsx123(tag_default, { sx: styles_default51.tag, color: "Gray", children: filter }, `domain-${filter}`)) }) }) + ] }) : null + ] }) + } + ); } -); -var vtex_helpcenter_icon_default = VTEXHelpCenterIcon; + return /* @__PURE__ */ jsx123(Link15, { href: cardHref, sx: styles_default51.devportalContainer, children: /* @__PURE__ */ jsxs100(Box47, { children: [ + /* @__PURE__ */ jsx123(Text39, { sx: styles_default51.title, className: "title", children: title9 }), + description6 ? /* @__PURE__ */ jsx123(Text39, { sx: styles_default51.description, className: "description", children: description6 }) : null, + /* @__PURE__ */ jsxs100(Box47, { sx: styles_default51.tagsContainer, children: [ + resolvedSymptomFilters.length > 0 && /* @__PURE__ */ jsx123(Box47, { sx: styles_default51.tagGroup, children: resolvedSymptomFilters.map((filter) => /* @__PURE__ */ jsx123(tag_default, { sx: styles_default51.tag, color: "Blue", children: filter }, `symptom-${filter}`)) }), + resolvedDomainFilters.length > 0 && /* @__PURE__ */ jsx123(Box47, { sx: styles_default51.tagGroup, children: resolvedDomainFilters.map((filter) => /* @__PURE__ */ jsx123(tag_default, { sx: styles_default51.tag, color: "Gray", children: filter }, `domain-${filter}`)) }), + !hasStructuredTags && fallbackTags.map((moduleTag) => /* @__PURE__ */ jsx123(tag_default, { sx: styles_default51.tag, color: "Gray", children: moduleTag }, `tags-${moduleTag}`)) + ] }) + ] }) }); +}; +var troubleshooting_card_default = TroubleshootingCard; -// src/components/icons/info-icon.tsx -import { Icon as Icon46 } from "@vtex/brand-ui"; -import { jsx as jsx80, jsxs as jsxs67 } from "react/jsx-runtime"; -var InfoIcon = (props) => /* @__PURE__ */ jsxs67( - Icon46, - { - ...props, - viewBox: "0 0 16 16", - fill: "none", - xmlns: "http://www.w3.org/2000/svg", - children: [ - /* @__PURE__ */ jsx80( - "path", - { - d: "M8 16C12.4183 16 16 12.4183 16 8C16 3.58172 12.4183 0 8 0C3.58172 0 0 3.58172 0 8C0 12.4183 3.58172 16 8 16Z", - fill: "#ECEFF2" - } - ), - /* @__PURE__ */ jsx80( - "path", - { - d: "M9.5 12.2231C9.5 12.3615 9.35714 12.5 9.21429 12.5H6.78571C6.64286 12.5 6.5 12.3615 6.5 12.2231V11.6692C6.5 11.5307 6.64286 11.3923 6.78571 11.3923H7.21429V8.06901H6.78571C6.64286 8.06901 6.5 7.93054 6.5 7.79207V7.09973C6.5 6.96126 6.64286 6.82279 6.78571 6.82279H8.5C8.64286 6.82279 8.78571 6.96126 8.78571 7.09973V11.2538H9.21429C9.35714 11.2538 9.5 11.3923 9.5 11.5307V12.2231V12.2231Z", - fill: "#5B6E84" - } - ), - /* @__PURE__ */ jsx80( - "path", - { - d: "M8.0714 5.43856C8.62368 5.43856 9.0714 5.0046 9.0714 4.46928C9.0714 3.93396 8.62368 3.5 8.0714 3.5C7.51911 3.5 7.0714 3.93396 7.0714 4.46928C7.0714 5.0046 7.51911 5.43856 8.0714 5.43856Z", - fill: "#5B6E84" - } - ) - ] - } -); -var info_icon_default = InfoIcon; +// src/utils/troubleshooting/filterItems.ts +function filterTroubleshootingItems(items, { search: search2, domainFilters, symptomFilters }) { + const selectedDomainFilters = new Set( + domainFilters.map((filter) => filter.toLowerCase()) + ); + const selectedSymptomFilters = new Set( + symptomFilters.map((filter) => filter.toLowerCase()) + ); + const hasDomainFilters = selectedDomainFilters.size > 0; + const hasSymptomFilters = selectedSymptomFilters.size > 0; + const normalizedSearch = search2.toLowerCase(); + return items.filter((item2) => { + const matchesSearch = !normalizedSearch || item2.title.toLowerCase().includes(normalizedSearch); + const itemDomainFiltersLower = (item2.domainFilters ?? []).map( + (filter) => filter.toLowerCase() + ); + const itemSymptomFiltersLower = (item2.symptomFilters ?? []).map( + (filter) => filter.toLowerCase() + ); + const matchesDomainFilters = !hasDomainFilters || itemDomainFiltersLower.some( + (filter) => selectedDomainFilters.has(filter) + ); + const matchesSymptomFilters = !hasSymptomFilters || itemSymptomFiltersLower.some( + (filter) => selectedSymptomFilters.has(filter) + ); + return matchesSearch && matchesDomainFilters && matchesSymptomFilters; + }); +} -// src/components/icons/new-icon.tsx -import { Icon as Icon47 } from "@vtex/brand-ui"; -import { jsx as jsx81, jsxs as jsxs68 } from "react/jsx-runtime"; -var NewIcon = (props) => /* @__PURE__ */ jsxs68( - Icon47, - { - ...props, - viewBox: "0 0 17 16", - fill: "none", - xmlns: "http://www.w3.org/2000/svg", - children: [ - /* @__PURE__ */ jsx81("circle", { cx: "8.50146", cy: "8", r: "8", fill: "#F71963" }), - /* @__PURE__ */ jsxs68("g", { clipPath: "url(#clip0_462_17766)", children: [ - /* @__PURE__ */ jsx81( +// src/utils/troubleshooting/collectFilterOptions.ts +function collectTroubleshootingFilterOptions(items) { + const domainFilters = /* @__PURE__ */ new Set(); + const symptomFilters = /* @__PURE__ */ new Set(); + items.forEach((item2) => { + item2.domainFilters?.forEach((filter) => domainFilters.add(filter)); + item2.symptomFilters?.forEach((filter) => symptomFilters.add(filter)); + }); + return { + domainFilters: Array.from(domainFilters).sort(), + symptomFilters: Array.from(symptomFilters).sort() + }; +} + +// src/utils/get-days-elapsed.ts +var getDaysElapsed = (date) => { + const msInDay = 1e3 * 60 * 60 * 24; + const msElapsed = (/* @__PURE__ */ new Date()).getTime() - date.getTime(); + return Math.floor(msElapsed / msInDay); +}; + +// src/components/icons/gear-troubleshooting-icon.tsx +import { Icon as Icon63 } from "@vtex/brand-ui"; +import { jsx as jsx124, jsxs as jsxs101 } from "react/jsx-runtime"; +var GearTroubleshootingIcon = (props) => { + return /* @__PURE__ */ jsxs101( + Icon63, + { + ...props, + viewBox: "0 0 24 24", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + children: [ + /* @__PURE__ */ jsx124( "path", { - d: "M12.6681 6L8.7098 9.95833L6.62646 7.875L3.50146 11", - stroke: "#FFF3F6", + d: "M17.8404 9.42954C18.2229 9.00197 18.9342 8.46816 18.9962 7.87786C19.063 7.2423 17.8607 5.16896 17.2775 4.93176C16.6221 4.66521 15.5159 5.22824 14.8633 5.41204C13.9538 5.62179 12.9047 5.05365 12.5708 4.18302C12.373 3.59238 12.2403 2.55197 11.7172 2.17424C11.1959 1.79774 8.80418 1.79774 8.28284 2.17424C7.75979 2.55197 7.62703 3.59238 7.42927 4.18302C7.09533 5.05365 6.04632 5.62179 5.13676 5.41204C4.48421 5.22824 3.37798 4.66521 2.72262 4.93176C2.13942 5.16896 0.937071 7.2423 1.00384 7.87786C1.0817 8.61902 2.16084 9.43088 2.63551 9.96156C3.17336 10.6425 3.17338 11.819 2.63554 12.4999C2.16086 13.0306 1.0817 13.8425 1.00384 14.5836C0.93707 15.2192 2.13942 17.2925 2.72262 17.5297C3.37797 17.7963 4.48418 17.2332 5.13672 17.0494C6.0463 16.8396 7.0953 17.4078 7.42924 18.2785C7.62701 18.8691 7.75977 19.9096 8.28284 20.2873C8.46309 20.4175 8.68756 20.4504 9.05686 20.4587", + stroke: "currentcolor", + strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx81( + /* @__PURE__ */ jsx124( "path", { - d: "M10.1685 6H12.6685V8.5", - stroke: "#FFF3F6", + d: "M12.201 8.86537C9.28547 6.15174 4.92127 10.5159 7.63491 13.4314", + stroke: "currentcolor", + strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" } - ) - ] }), - /* @__PURE__ */ jsx81("defs", { children: /* @__PURE__ */ jsx81("clipPath", { id: "clip0_462_17766", children: /* @__PURE__ */ jsx81( - "rect", - { - width: "11", - height: "9", - fill: "white", - transform: "translate(2.50146 4)" - } - ) }) }) - ] - } -); -var new_icon_default = NewIcon; - -// src/components/icons/github-icon.tsx -import { Icon as Icon48 } from "@vtex/brand-ui"; -import { jsx as jsx82 } from "react/jsx-runtime"; -var GithubIcon = (props) => /* @__PURE__ */ jsx82( - Icon48, - { - ...props, - viewBox: "0 0 64 65", - fill: "none", - xmlns: "http://www.w3.org/2000/svg", - children: /* @__PURE__ */ jsx82( - "path", - { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M14.4 16.7314C10.6667 20.7314 8 26.3314 8 33.5314C8 38.8647 9.86667 43.9314 12.8 47.9314C16.2667 52.4647 21.3333 55.1314 24 56.198V54.3314C24 54.3314 24 50.0647 26.4 46.3314C21.0667 46.0647 16.8 40.998 16.8 35.1314C16.8 32.998 17.6 31.1314 18.9333 29.5314L19.2 24.4647C19.2 23.1314 20.5333 22.3314 21.8667 22.598L27.4667 24.7314C29.0667 24.4647 30.6667 24.198 32.5333 24.198C34.4 24.198 36 24.4647 37.6 24.7314L42.4 22.3314C43.7333 21.798 45.0667 22.8647 45.0667 24.198L45.3333 29.2647C46.6667 30.8647 47.4667 32.998 47.4667 34.8647C47.4667 40.7314 43.2 45.5314 37.8667 46.0647C40.2667 49.798 40.2667 54.0647 40.2667 54.0647V55.9314C42.9333 54.8647 48 52.198 51.4667 47.6647C54.4 43.9314 56.2667 38.598 56.2667 33.2647C56.2667 26.0647 53.6 20.4647 49.8667 16.4647C44.8 11.398 37.8667 8.99805 32 8.99805C26.1333 8.99805 19.2 11.398 14.4 16.7314V16.7314Z", - stroke: "#4A596B", - strokeWidth: "3", - strokeLinecap: "round", - strokeLinejoin: "round" - } - ) - } -); -var github_icon_default = GithubIcon; - -// src/components/icons/community-icon.tsx -import { Icon as Icon49 } from "@vtex/brand-ui"; -import { jsx as jsx83, jsxs as jsxs69 } from "react/jsx-runtime"; -var CommunityIcon = (props) => /* @__PURE__ */ jsxs69( - Icon49, - { - ...props, - viewBox: "0 0 64 65", - fill: "none", - xmlns: "http://www.w3.org/2000/svg", - children: [ - " ", - /* @__PURE__ */ jsx83( - "path", - { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M50.6667 56.998H29.3333C26.3867 56.998 24 54.6114 24 51.6647V30.3314C24 27.3847 26.3867 24.998 29.3333 24.998H50.6667C53.6133 24.998 56 27.3847 56 30.3314V51.6647C56 54.6114 53.6133 56.998 50.6667 56.998Z", - stroke: "#4A596B", - strokeWidth: "3", - strokeLinecap: "round", - strokeLinejoin: "round" - } - ), - /* @__PURE__ */ jsx83( - "path", - { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M34.6667 40.998H13.3333C10.3867 40.998 8 38.6114 8 35.6647V14.3314C8 11.3847 10.3867 8.99805 13.3333 8.99805H34.6667C37.6133 8.99805 40 11.3847 40 14.3314V35.6647C40 38.6114 37.6133 40.998 34.6667 40.998Z", - stroke: "#4A596B", - strokeWidth: "3", - strokeLinecap: "round", - strokeLinejoin: "round" - } - ) - ] - } -); -var community_icon_default = CommunityIcon; - -// src/components/icons/facebook-circle-icon.tsx -import { Icon as Icon50 } from "@vtex/brand-ui"; -import { jsx as jsx84, jsxs as jsxs70 } from "react/jsx-runtime"; -var FacebookCircleIcon = (props) => /* @__PURE__ */ jsxs70( - Icon50, - { - ...props, - viewBox: "0 0 33 33", - fill: "none", - xmlns: "http://www.w3.org/2000/svg", - children: [ - /* @__PURE__ */ jsx84( - "path", - { - d: "M31.5501 16.8379C31.5501 25.3976 24.6 32.3379 16.025 32.3379C7.45006 32.3379 0.5 25.3976 0.5 16.8379C0.5 8.27821 7.45006 1.33789 16.025 1.33789C24.6 1.33789 31.5501 8.27821 31.5501 16.8379Z", - stroke: "#4D596A" - } - ), - /* @__PURE__ */ jsx84("g", { clipPath: "url(#clip0_311_37415)", children: /* @__PURE__ */ jsx84( - "path", - { - d: "M17.5268 17.9629H19.4047L20.1559 14.9629H17.5268V13.4629C17.5268 12.6904 17.5268 11.9629 19.0291 11.9629H20.1559V9.44289C19.911 9.41064 18.9863 9.33789 18.0098 9.33789C15.9703 9.33789 14.5221 10.5806 14.5221 12.8629V14.9629H12.2686V17.9629H14.5221V24.3379H17.5268V17.9629Z", - fill: "#CCCED7" - } - ) }), - /* @__PURE__ */ jsx84("defs", { children: /* @__PURE__ */ jsx84("clipPath", { id: "clip0_311_37415", children: /* @__PURE__ */ jsx84( - "rect", - { - width: "18.0282", - height: "18", - fill: "white", - transform: "translate(7.01074 7.83789)" - } - ) }) }) - ] - } -); -var facebook_circle_icon_default = FacebookCircleIcon; + ), + /* @__PURE__ */ jsx124( + "path", + { + d: "M20.25 20.2499L22.8462 22.846", + stroke: "currentcolor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ), + /* @__PURE__ */ jsx124( + "path", + { + d: "M21.6922 16.4999C21.6922 13.6323 19.3676 11.3076 16.4999 11.3076C13.6323 11.3076 11.3076 13.6323 11.3076 16.4999C11.3076 19.3676 13.6323 21.6922 16.4999 21.6922C19.3676 21.6922 21.6922 19.3676 21.6922 16.4999Z", + stroke: "currentcolor", + strokeWidth: "1.5", + strokeLinejoin: "round" + } + ), + /* @__PURE__ */ jsx124( + "path", + { + d: "M16.4089 13.4053V17.0653", + stroke: "currentcolor", + strokeWidth: "1.5", + strokeLinecap: "round" + } + ), + /* @__PURE__ */ jsx124( + "path", + { + d: "M16.4089 19.0988V19.0989", + stroke: "currentcolor", + strokeWidth: "1.5", + strokeLinecap: "round" + } + ) + ] + } + ); +}; +var gear_troubleshooting_icon_default = GearTroubleshootingIcon; -// src/components/icons/linkedin-circle-icon.tsx -import { Icon as Icon51 } from "@vtex/brand-ui"; -import { jsx as jsx85, jsxs as jsxs71 } from "react/jsx-runtime"; -var LinkedinCircleIcon = (props) => /* @__PURE__ */ jsxs71( - Icon51, +// src/components/icons/documentation-updates-icon.tsx +import { Icon as Icon64 } from "@vtex/brand-ui"; +import { jsx as jsx125, jsxs as jsxs102 } from "react/jsx-runtime"; +var DocumentationUpdatesIcon = (props) => /* @__PURE__ */ jsxs102( + Icon64, { ...props, - viewBox: "0 0 33 33", + viewBox: "0 0 24 25", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx85( + /* @__PURE__ */ jsx125( "path", { - d: "M31.7005 16.8379C31.7005 25.3976 24.7504 32.3379 16.1754 32.3379C7.60045 32.3379 0.650391 25.3976 0.650391 16.8379C0.650391 8.27821 7.60045 1.33789 16.1754 1.33789C24.7504 1.33789 31.7005 8.27821 31.7005 16.8379Z", - stroke: "#4D596A" + fillRule: "evenodd", + clipRule: "evenodd", + d: "M18.414 6.91205L15.586 4.08405C15.211 3.70905 14.702 3.49805 14.172 3.49805H7C5.895 3.49805 5 4.39305 5 5.49805V19.498C5 20.603 5.895 21.498 7 21.498H17C18.105 21.498 19 20.603 19 19.498V8.32605C19 7.79605 18.789 7.28705 18.414 6.91205V6.91205Z", + stroke: "#4A596B", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx85("g", { clipPath: "url(#clip0_311_37418)", children: /* @__PURE__ */ jsx85( + /* @__PURE__ */ jsx125( "path", { - d: "M20.9353 21.5921H18.9334V18.4594C18.9334 17.7124 18.9184 16.7509 17.8893 16.7509C16.8459 16.7509 16.6866 17.5639 16.6866 18.4046V21.5921H14.684V15.1504H16.607V16.0279H16.6333C16.9022 15.5224 17.5557 14.9876 18.5323 14.9876C20.5604 14.9876 20.936 16.3211 20.936 18.0559V21.5921H20.9353ZM12.423 14.2691C12.2701 14.2693 12.1188 14.2394 11.9776 14.1811C11.8363 14.1228 11.708 14.0372 11.6 13.9293C11.492 13.8213 11.4064 13.6932 11.348 13.5521C11.2897 13.4111 11.2599 13.26 11.2601 13.1074C11.2603 12.8778 11.3286 12.6533 11.4565 12.4625C11.5844 12.2717 11.7661 12.123 11.9787 12.0352C12.1912 11.9475 12.425 11.9247 12.6506 11.9696C12.8761 12.0145 13.0832 12.1252 13.2457 12.2877C13.4082 12.4502 13.5189 12.6571 13.5636 12.8824C13.6083 13.1076 13.5851 13.341 13.497 13.5531C13.4088 13.7652 13.2597 13.9464 13.0684 14.0739C12.8771 14.2013 12.6529 14.2693 12.423 14.2691ZM13.4265 21.5921H11.4186V15.1504H13.4273V21.5921H13.4265ZM21.9381 10.0879H10.4143C9.86146 10.0879 9.41602 10.5229 9.41602 11.0606V22.6151C9.41602 23.1529 9.86221 23.5879 10.4136 23.5879H21.9351C22.4864 23.5879 22.9371 23.1529 22.9371 22.6151V11.0606C22.9371 10.5229 22.4864 10.0879 21.9351 10.0879H21.9381Z", - fill: "#C5C7D1" - } - ) }), - /* @__PURE__ */ jsx85("defs", { children: /* @__PURE__ */ jsx85("clipPath", { id: "clip0_311_37418", children: /* @__PURE__ */ jsx85( - "rect", - { - width: "18.0282", - height: "18", - fill: "white", - transform: "translate(7.16211 7.83789)" + d: "M19 8.49805H15C14.448 8.49805 14 8.05005 14 7.49805V3.49805", + stroke: "#4A596B", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" } - ) }) }) - ] - } -); -var linkedin_circle_icon_default = LinkedinCircleIcon; - -// src/components/icons/twitter-circle-icon.tsx -import { Icon as Icon52 } from "@vtex/brand-ui"; -import { jsx as jsx86, jsxs as jsxs72 } from "react/jsx-runtime"; -var TwitterCircleIcon = (props) => /* @__PURE__ */ jsxs72( - Icon52, - { - ...props, - viewBox: "0 0 33 33", - fill: "none", - xmlns: "http://www.w3.org/2000/svg", - children: [ - /* @__PURE__ */ jsx86( + ), + /* @__PURE__ */ jsx125( "path", { - d: "M9.95605 9.54247C9.95868 9.54614 10.0339 9.65531 10.1232 9.78548C10.2126 9.91512 10.3477 10.1114 10.4234 10.2211C10.5874 10.4594 10.9296 10.9554 11.2356 11.3995C11.3581 11.5769 11.5463 11.8498 11.6535 12.0057C11.8307 12.2629 11.9773 12.4754 12.3842 13.0659C12.4599 13.1756 12.6245 13.4139 12.7496 13.596C12.8752 13.7776 12.9872 13.9409 12.9993 13.9582C13.0214 13.9902 13.0524 14.0348 13.607 14.84C13.7762 15.0851 14.0433 15.4724 14.2005 15.7008C14.3582 15.9285 14.5006 16.1359 14.518 16.1611C14.5469 16.2036 14.5485 16.2078 14.5411 16.2162C14.5364 16.2214 14.3713 16.4135 14.1742 16.6429C13.9771 16.8723 13.6816 17.216 13.5176 17.4061C13.3541 17.5966 13.1323 17.8538 13.0256 17.9782C12.9183 18.1026 12.708 18.3471 12.5577 18.5219C12.2191 18.915 11.0747 20.2451 10.6316 20.76C10.4507 20.9704 10.2215 21.2371 10.1227 21.352C10.0233 21.467 9.94238 21.562 9.94238 21.5635C9.94238 21.5651 10.1674 21.5656 10.4428 21.5651L10.9433 21.5635L11.1541 21.3189C11.7402 20.6382 11.8911 20.4629 12.084 20.2382C12.1997 20.1039 12.3369 19.9443 12.3895 19.884C12.4415 19.8231 12.9409 19.2436 13.4987 18.5954C14.0564 17.9472 14.621 17.2916 14.7524 17.1389C14.8844 16.9856 14.9943 16.8612 14.9974 16.8618C15 16.8623 15.0163 16.8838 15.0337 16.909C15.0742 16.9673 15.3391 17.352 15.6645 17.8238C15.8028 18.0243 16.0562 18.3918 16.227 18.64C16.3984 18.8883 16.6113 19.1974 16.7012 19.3276C16.7905 19.4572 16.9793 19.7312 17.1207 19.9364C17.2621 20.1411 17.3872 20.3233 17.3993 20.3406C17.4114 20.3579 17.5239 20.5206 17.649 20.7028C17.7741 20.8844 17.9134 21.0864 17.9581 21.1515C18.0033 21.2166 18.0764 21.3226 18.1211 21.3877C18.1663 21.4528 18.212 21.5194 18.2241 21.5362L18.2451 21.5662H19.9794H21.7136L21.7042 21.552C21.6994 21.5436 21.6069 21.4098 21.4997 21.2539C21.3924 21.098 21.2279 20.8592 21.1343 20.7237C20.7537 20.1716 20.5051 19.811 20.3784 19.6268C20.3043 19.5197 20.1529 19.3003 20.0414 19.1386C19.8233 18.8216 19.8054 18.7959 19.4179 18.2343C19.2765 18.0285 19.143 17.8354 19.1215 17.8039C19.1004 17.7729 19.0442 17.6921 18.9974 17.6244C18.9506 17.5567 18.8492 17.4087 18.7713 17.2964C18.6941 17.1835 18.6184 17.0738 18.6031 17.0523C18.5879 17.0308 18.5232 16.9363 18.4586 16.8423C18.3939 16.7484 18.3313 16.6576 18.3193 16.6403C18.3072 16.6229 18.2083 16.4802 18.1 16.3227C17.9918 16.1653 17.803 15.8913 17.6805 15.7139C17.3367 15.2158 17.2384 15.073 17.0755 14.8358L16.9241 14.6164L17.0834 14.4316C17.1706 14.3298 17.4335 14.0248 17.6669 13.7535C17.9008 13.4821 18.2115 13.1205 18.3582 12.9504C18.7955 12.4429 19.4116 11.727 20.3668 10.6174C20.8625 10.0416 21.2752 9.56241 21.2836 9.55349L21.2983 9.53617H20.7963H20.2948L19.869 10.028C19.4879 10.4683 19.0999 10.9192 17.0408 13.3126C16.7327 13.6706 16.4788 13.964 16.4772 13.9645C16.4757 13.965 16.4552 13.9377 16.4326 13.9041C16.4094 13.8705 16.2549 13.6454 16.0882 13.4045C15.9221 13.1635 15.7108 12.8565 15.6183 12.7221C15.5257 12.5878 15.4011 12.4072 15.3412 12.3206C15.2818 12.234 15.1041 11.9763 14.947 11.7485C14.7898 11.5202 14.6515 11.3197 14.6394 11.3024C14.6273 11.285 14.5285 11.1423 14.4202 10.9848C14.1463 10.5875 13.7994 10.0836 13.6679 9.89308C13.607 9.8049 13.5271 9.68891 13.4897 9.63432L13.4219 9.53617H11.6871C10.3004 9.53617 9.9529 9.53774 9.95605 9.54247ZM13.1917 10.587C13.2937 10.735 13.3867 10.8704 13.3988 10.8877C13.4203 10.9187 13.5581 11.1186 13.8472 11.5385C13.9271 11.654 14.0018 11.7627 14.0139 11.78C14.0259 11.7973 14.1248 11.9401 14.2331 12.0975C14.4507 12.414 14.7114 12.7919 15.3796 13.7614C15.6256 14.1177 15.8832 14.492 15.9526 14.5933C16.0667 14.7591 16.2796 15.0678 16.4741 15.3491C16.514 15.4068 16.6618 15.6204 16.8016 15.8241C16.9419 16.0277 17.0665 16.2083 17.0786 16.2256C17.0907 16.2429 17.2164 16.4245 17.3572 16.6298C17.4987 16.8345 17.7005 17.1273 17.8057 17.2806C18.1847 17.8296 18.611 18.4484 19.0557 19.094C19.1803 19.2746 19.3953 19.5864 19.5336 19.7869C19.6719 19.9874 19.8364 20.2262 19.899 20.317C19.9615 20.4078 20.0577 20.5474 20.1124 20.6266C20.1676 20.7059 20.2138 20.7741 20.2159 20.7778C20.2196 20.7825 20.063 20.7841 19.44 20.7841H18.6599L18.5742 20.6592C18.499 20.5505 18.252 20.1921 17.741 19.4509C17.6621 19.337 17.4745 19.0641 17.3231 18.8447C16.9362 18.2836 16.7984 18.0837 16.5976 17.7924C16.5014 17.6522 16.4126 17.5236 16.4005 17.5063C16.3705 17.4633 15.8548 16.7148 15.6624 16.4356C15.5005 16.1999 15.1467 15.6871 14.9785 15.4436C14.8413 15.2452 14.589 14.8793 14.2562 14.3965C14.1006 14.1697 13.9629 13.9703 13.9508 13.9529C13.9387 13.9356 13.8525 13.8102 13.7589 13.6748C13.3925 13.1425 12.8079 12.2954 12.7785 12.2524C12.7664 12.235 12.6933 12.1285 12.6155 12.0162C12.5382 11.9033 12.4625 11.7936 12.4473 11.7721C12.391 11.6913 12.0083 11.1354 11.715 10.7093C11.6351 10.5938 11.5626 10.4888 11.5536 10.4757C11.5447 10.4626 11.5163 10.4221 11.4911 10.3849L11.4453 10.3182H12.226H13.0061L13.1917 10.587Z", - fill: "#C5C7D1" + d: "M9.5 17.498H14.5", + stroke: "#4A596B", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx86( + /* @__PURE__ */ jsx125( "path", { - d: "M31.7002 15.8379C31.7002 23.9917 24.7819 30.6394 16.2002 30.6394C7.61851 30.6394 0.700195 23.9917 0.700195 15.8379C0.700195 7.68404 7.61851 1.03638 16.2002 1.03638C24.7819 1.03638 31.7002 7.68404 31.7002 15.8379Z", - stroke: "#4D596A" + d: "M14 11.998L11.5 14.498L10 12.998", + stroke: "#4A596B", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" } ) ] } ); -var twitter_circle_icon_default = TwitterCircleIcon; +var documentation_updates_icon_default = DocumentationUpdatesIcon; -// src/components/icons/youtube-icon.tsx -import { Icon as Icon53 } from "@vtex/brand-ui"; -import { jsx as jsx87, jsxs as jsxs73 } from "react/jsx-runtime"; -var YoutubeIcon = (props) => /* @__PURE__ */ jsxs73( - Icon53, +// src/components/icons/helpcenter-icon.tsx +import { Icon as Icon65 } from "@vtex/brand-ui"; +import { jsx as jsx126, jsxs as jsxs103 } from "react/jsx-runtime"; +var HelpCenterIcon = (props) => /* @__PURE__ */ jsxs103( + Icon65, { ...props, - viewBox: "0 0 33 33", + viewBox: "0 0 64 65", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx87( + " ", + /* @__PURE__ */ jsx126( "path", { - d: "M31.6507 16.8379C31.6507 25.3976 24.7006 32.3379 16.1256 32.3379C7.55065 32.3379 0.600586 25.3976 0.600586 16.8379C0.600586 8.27821 7.55065 1.33789 16.1256 1.33789C24.7006 1.33789 31.6507 8.27821 31.6507 16.8379Z", - stroke: "#4D596A" + fillRule: "evenodd", + clipRule: "evenodd", + d: "M53.3332 54.3317V16.4064C53.3332 13.7877 51.2105 11.665 48.5918 11.665H15.4078C12.7892 11.665 10.6665 13.7877 10.6665 16.4064V44.8517C10.6665 47.4704 12.7892 49.593 15.4078 49.593H44.4452L53.3332 54.3317Z", + stroke: "#4A596B", + strokeWidth: "3", + strokeLinecap: "round", + strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx87( + /* @__PURE__ */ jsx126( "path", { - d: "M31.6507 16.8379C31.6507 25.3976 24.7006 32.3379 16.1256 32.3379C7.55065 32.3379 0.600586 25.3976 0.600586 16.8379C0.600586 8.27821 7.55065 1.33789 16.1256 1.33789C24.7006 1.33789 31.6507 8.27821 31.6507 16.8379Z", - stroke: "#4D596A" + d: "M42.3575 35.665C36.5522 41.4704 27.1388 41.4704 21.3335 35.665", + stroke: "#4A596B", + strokeWidth: "3", + strokeLinecap: "round", + strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx87("g", { clipPath: "url(#clip0_311_37417)", children: /* @__PURE__ */ jsx87( + /* @__PURE__ */ jsx126( "path", { - d: "M22.4973 13.17C22.8024 14.358 22.8024 16.838 22.8024 16.838C22.8024 16.838 22.8024 19.318 22.4973 20.506C22.3277 21.1626 21.8316 21.6793 21.2033 21.854C20.0622 22.1713 16.1253 22.1713 16.1253 22.1713C16.1253 22.1713 12.1905 22.1713 11.0474 21.854C10.4164 21.6766 9.92098 21.1606 9.75339 20.506C9.44824 19.318 9.44824 16.838 9.44824 16.838C9.44824 16.838 9.44824 14.358 9.75339 13.17C9.92298 12.5133 10.4191 11.9966 11.0474 11.822C12.1905 11.5046 16.1253 11.5046 16.1253 11.5046C16.1253 11.5046 20.0622 11.5046 21.2033 11.822C21.8343 11.9993 22.3297 12.5153 22.4973 13.17ZM14.7899 19.1713L18.7962 16.838L14.7899 14.5046V19.1713Z", - fill: "#C5C7D1" + d: "M26.6668 22.3311V24.9977", + stroke: "#4A596B", + strokeWidth: "3", + strokeLinecap: "round", + strokeLinejoin: "round" } - ) }), - /* @__PURE__ */ jsx87("defs", { children: /* @__PURE__ */ jsx87("clipPath", { id: "clip0_311_37417", children: /* @__PURE__ */ jsx87( - "rect", + ), + /* @__PURE__ */ jsx126( + "path", { - width: "16.025", - height: "16", - fill: "white", - transform: "translate(8.11328 8.83789)" + d: "M37.3333 22.3311V24.9977", + stroke: "#4A596B", + strokeWidth: "3", + strokeLinecap: "round", + strokeLinejoin: "round" } - ) }) }) + ) ] } ); -var youtube_icon_default = YoutubeIcon; +var helpcenter_icon_default = HelpCenterIcon; -// src/components/icons/instagram-icon.tsx -import { Icon as Icon54 } from "@vtex/brand-ui"; -import { jsx as jsx88, jsxs as jsxs74 } from "react/jsx-runtime"; -var IgIcon = (props) => /* @__PURE__ */ jsxs74( - Icon54, +// src/components/icons/developer-portal-icon.tsx +import { Icon as Icon66 } from "@vtex/brand-ui"; +import { jsx as jsx127, jsxs as jsxs104 } from "react/jsx-runtime"; +var DeveloperPortalIcon = (props) => /* @__PURE__ */ jsxs104( + Icon66, { ...props, - viewBox: "0 0 33 33", + viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx88( + /* @__PURE__ */ jsx127( + "rect", + { + x: "3", + y: "3", + width: "18", + height: "19", + rx: "2", + stroke: "currentcolor", + strokeWidth: "1.5" + } + ), + /* @__PURE__ */ jsx127("path", { d: "M3 7L21 7", stroke: "#4A596B", strokeWidth: "1.5" }), + /* @__PURE__ */ jsx127( "path", { - d: "M31.5999 16.8379C31.5999 25.3976 24.6498 32.3379 16.0748 32.3379C7.49986 32.3379 0.549805 25.3976 0.549805 16.8379C0.549805 8.27821 7.49986 1.33789 16.0748 1.33789C24.6498 1.33789 31.5999 8.27821 31.5999 16.8379Z", - stroke: "#4D596A" + d: "M15 16.375L17 14.875L15 13.375", + stroke: "currentcolor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx88("g", { clipPath: "url(#clip0_311_37416)", children: /* @__PURE__ */ jsx88( + /* @__PURE__ */ jsx127( "path", { - d: "M16.0742 14.5879C15.4766 14.5879 14.9034 14.8249 14.4808 15.2469C14.0581 15.6689 13.8207 16.2412 13.8207 16.8379C13.8207 17.4346 14.0581 18.0069 14.4808 18.4289C14.9034 18.8508 15.4766 19.0879 16.0742 19.0879C16.6719 19.0879 17.2451 18.8508 17.6677 18.4289C18.0903 18.0069 18.3278 17.4346 18.3278 16.8379C18.3278 16.2412 18.0903 15.6689 17.6677 15.2469C17.2451 14.8249 16.6719 14.5879 16.0742 14.5879ZM16.0742 13.0879C17.0704 13.0879 18.0257 13.483 18.73 14.1862C19.4344 14.8895 19.8301 15.8433 19.8301 16.8379C19.8301 17.8325 19.4344 18.7863 18.73 19.4895C18.0257 20.1928 17.0704 20.5879 16.0742 20.5879C15.0781 20.5879 14.1228 20.1928 13.4184 19.4895C12.7141 18.7863 12.3184 17.8325 12.3184 16.8379C12.3184 15.8433 12.7141 14.8895 13.4184 14.1862C14.1228 13.483 15.0781 13.0879 16.0742 13.0879ZM20.9569 12.9004C20.9569 13.149 20.8579 13.3875 20.6819 13.5633C20.5058 13.7391 20.2669 13.8379 20.0179 13.8379C19.7689 13.8379 19.53 13.7391 19.3539 13.5633C19.1779 13.3875 19.0789 13.149 19.0789 12.9004C19.0789 12.6518 19.1779 12.4133 19.3539 12.2375C19.53 12.0617 19.7689 11.9629 20.0179 11.9629C20.2669 11.9629 20.5058 12.0617 20.6819 12.2375C20.8579 12.4133 20.9569 12.6518 20.9569 12.9004ZM16.0742 10.8379C14.2158 10.8379 13.9124 10.8431 13.0478 10.8814C12.4588 10.9091 12.0637 10.9879 11.6971 11.1304C11.3711 11.2564 11.136 11.4071 10.8859 11.6576C10.6508 11.8844 10.47 12.1613 10.3571 12.4676C10.2143 12.8351 10.1355 13.2289 10.1084 13.8161C10.0694 14.6441 10.0648 14.9336 10.0648 16.8379C10.0648 18.6934 10.0701 18.9964 10.1084 19.8596C10.1362 20.4469 10.2151 20.8421 10.3571 21.2074C10.4848 21.5336 10.635 21.7684 10.8844 22.0174C11.1375 22.2694 11.3726 22.4201 11.6956 22.5446C12.0667 22.6879 12.4618 22.7674 13.0478 22.7944C13.8771 22.8334 14.167 22.8379 16.0742 22.8379C17.9326 22.8379 18.2361 22.8326 19.1007 22.7944C19.6881 22.7666 20.084 22.6879 20.4506 22.5461C20.7758 22.4194 21.0125 22.2686 21.2618 22.0196C21.515 21.7669 21.666 21.5321 21.7907 21.2096C21.9334 20.8399 22.013 20.4446 22.0401 19.8596C22.0791 19.0316 22.0836 18.7421 22.0836 16.8379C22.0836 14.9824 22.0784 14.6794 22.0401 13.8161C22.0123 13.2296 21.9334 12.8336 21.7907 12.4676C21.6775 12.1616 21.497 11.8849 21.2626 11.6576C21.0355 11.4228 20.7582 11.2423 20.4513 11.1296C20.0833 10.9871 19.6881 10.9084 19.1007 10.8814C18.2714 10.8424 17.9815 10.8379 16.0742 10.8379ZM16.0742 9.33789C18.1152 9.33789 18.3698 9.34539 19.1706 9.38289C19.9706 9.42039 20.5152 9.54564 20.9944 9.73164C21.4902 9.92214 21.9079 10.1801 22.3255 10.5964C22.7075 10.9713 23.003 11.4248 23.1916 11.9254C23.3771 12.4031 23.5033 12.9476 23.5409 13.7464C23.5762 14.5459 23.586 14.8001 23.586 16.8379C23.586 18.8756 23.5785 19.1299 23.5409 19.9294C23.5033 20.7281 23.3771 21.2719 23.1916 21.7504C23.0036 22.2512 22.7079 22.7049 22.3255 23.0794C21.9499 23.4606 21.4957 23.7557 20.9944 23.9441C20.5159 24.1294 19.9706 24.2554 19.1706 24.2929C18.3698 24.3281 18.1152 24.3379 16.0742 24.3379C14.0333 24.3379 13.7787 24.3304 12.9779 24.2929C12.1779 24.2554 11.6333 24.1294 11.154 23.9441C10.6525 23.7562 10.1982 23.4611 9.82297 23.0794C9.44093 22.7045 9.14536 22.251 8.95687 21.7504C8.77058 21.2726 8.64513 20.7281 8.60757 19.9294C8.57227 19.1299 8.5625 18.8756 8.5625 16.8379C8.5625 14.8001 8.57001 14.5459 8.60757 13.7464C8.64513 12.9469 8.77058 12.4039 8.95687 11.9254C9.14484 11.4245 9.44047 10.9709 9.82297 10.5964C10.1983 10.2148 10.6526 9.91969 11.154 9.73164C11.6333 9.54564 12.1771 9.42039 12.9779 9.38289C13.7787 9.34764 14.0333 9.33789 16.0742 9.33789Z", - fill: "#C5C7D1" + d: "M9 13.375L7 14.875L9 16.375", + stroke: "currentcolor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" } - ) }), - /* @__PURE__ */ jsx88("defs", { children: /* @__PURE__ */ jsx88("clipPath", { id: "clip0_311_37416", children: /* @__PURE__ */ jsx88( - "rect", + ), + /* @__PURE__ */ jsx127( + "path", { - width: "18.0282", - height: "18", - fill: "white", - transform: "translate(7.06055 7.83789)" + d: "M10.5644 17.8947L13.5 11.5", + stroke: "currentcolor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" } - ) }) }) - ] - } -); -var instagram_icon_default = IgIcon; - -// src/components/icons/chatgpt-icon.tsx -import { Icon as Icon55 } from "@vtex/brand-ui"; -import { jsx as jsx89 } from "react/jsx-runtime"; -var ChatGPTIcon = (props) => /* @__PURE__ */ jsx89( - Icon55, - { - ...props, - fill: "currentColor", - "fill-rule": "evenodd", - height: "64", - viewBox: "0 0 24 24", - width: "64", - xmlns: "http://www.w3.org/2000/svg", - children: /* @__PURE__ */ jsx89("path", { d: "M21.55 10.004a5.416 5.416 0 00-.478-4.501c-1.217-2.09-3.662-3.166-6.05-2.66A5.59 5.59 0 0010.831 1C8.39.995 6.224 2.546 5.473 4.838A5.553 5.553 0 001.76 7.496a5.487 5.487 0 00.691 6.5 5.416 5.416 0 00.477 4.502c1.217 2.09 3.662 3.165 6.05 2.66A5.586 5.586 0 0013.168 23c2.443.006 4.61-1.546 5.361-3.84a5.553 5.553 0 003.715-2.66 5.488 5.488 0 00-.693-6.497v.001zm-8.381 11.558a4.199 4.199 0 01-2.675-.954c.034-.018.093-.05.132-.074l4.44-2.53a.71.71 0 00.364-.623v-6.176l1.877 1.069c.02.01.033.029.036.05v5.115c-.003 2.274-1.87 4.118-4.174 4.123zM4.192 17.78a4.059 4.059 0 01-.498-2.763c.032.02.09.055.131.078l4.44 2.53c.225.13.504.13.73 0l5.42-3.088v2.138a.068.068 0 01-.027.057L9.9 19.288c-1.999 1.136-4.552.46-5.707-1.51h-.001zM3.023 8.216A4.15 4.15 0 015.198 6.41l-.002.151v5.06a.711.711 0 00.364.624l5.42 3.087-1.876 1.07a.067.067 0 01-.063.005l-4.489-2.559c-1.995-1.14-2.679-3.658-1.53-5.63h.001zm15.417 3.54l-5.42-3.088L14.896 7.6a.067.067 0 01.063-.006l4.489 2.557c1.998 1.14 2.683 3.662 1.529 5.633a4.163 4.163 0 01-2.174 1.807V12.38a.71.71 0 00-.363-.623zm1.867-2.773a6.04 6.04 0 00-.132-.078l-4.44-2.53a.731.731 0 00-.729 0l-5.42 3.088V7.325a.068.068 0 01.027-.057L14.1 4.713c2-1.137 4.555-.46 5.707 1.513.487.833.664 1.809.499 2.757h.001zm-11.741 3.81l-1.877-1.068a.065.065 0 01-.036-.051V6.559c.001-2.277 1.873-4.122 4.181-4.12.976 0 1.92.338 2.671.954-.034.018-.092.05-.131.073l-4.44 2.53a.71.71 0 00-.365.623l-.003 6.173v.002zm1.02-2.168L12 9.25l2.414 1.375v2.75L12 14.75l-2.415-1.375v-2.75z" }) - } -); -var chatgpt_icon_default = ChatGPTIcon; - -// src/components/icons/claude-icon.tsx -import { Icon as Icon56 } from "@vtex/brand-ui"; -import { jsx as jsx90, jsxs as jsxs75 } from "react/jsx-runtime"; -var ClaudeIcon = (props) => /* @__PURE__ */ jsxs75( - Icon56, - { - ...props, - fill: "currentColor", - "fill-rule": "evenodd", - height: "64", - viewBox: "0 0 24 24", - width: "64", - xmlns: "http://www.w3.org/2000/svg", - children: [ - /* @__PURE__ */ jsx90("title", { children: "Claude" }), - /* @__PURE__ */ jsx90("path", { d: "M4.709 15.955l4.72-2.647.08-.23-.08-.128H9.2l-.79-.048-2.698-.073-2.339-.097-2.266-.122-.571-.121L0 11.784l.055-.352.48-.321.686.06 1.52.103 2.278.158 1.652.097 2.449.255h.389l.055-.157-.134-.098-.103-.097-2.358-1.596-2.552-1.688-1.336-.972-.724-.491-.364-.462-.158-1.008.656-.722.881.06.225.061.893.686 1.908 1.476 2.491 1.833.365.304.145-.103.019-.073-.164-.274-1.355-2.446-1.446-2.49-.644-1.032-.17-.619a2.97 2.97 0 01-.104-.729L6.283.134 6.696 0l.996.134.42.364.62 1.414 1.002 2.229 1.555 3.03.456.898.243.832.091.255h.158V9.01l.128-1.706.237-2.095.23-2.695.08-.76.376-.91.747-.492.584.28.48.685-.067.444-.286 1.851-.559 2.903-.364 1.942h.212l.243-.242.985-1.306 1.652-2.064.73-.82.85-.904.547-.431h1.033l.76 1.129-.34 1.166-1.064 1.347-.881 1.142-1.264 1.7-.79 1.36.073.11.188-.02 2.856-.606 1.543-.28 1.841-.315.833.388.091.395-.328.807-1.969.486-2.309.462-3.439.813-.042.03.049.061 1.549.146.662.036h1.622l3.02.225.79.522.474.638-.079.485-1.215.62-1.64-.389-3.829-.91-1.312-.329h-.182v.11l1.093 1.068 2.006 1.81 2.509 2.33.127.578-.322.455-.34-.049-2.205-1.657-.851-.747-1.926-1.62h-.128v.17l.444.649 2.345 3.521.122 1.08-.17.353-.608.213-.668-.122-1.374-1.925-1.415-2.167-1.143-1.943-.14.08-.674 7.254-.316.37-.729.28-.607-.461-.322-.747.322-1.476.389-1.924.315-1.53.286-1.9.17-.632-.012-.042-.14.018-1.434 1.967-2.18 2.945-1.726 1.845-.414.164-.717-.37.067-.662.401-.589 2.388-3.036 1.44-1.882.93-1.086-.006-.158h-.055L4.132 18.56l-1.13.146-.487-.456.061-.746.231-.243 1.908-1.312-.006.006z" }) + ) ] } ); -var claude_icon_default = ClaudeIcon; - -// src/components/icons/gemini-icon.tsx -import { Icon as Icon57 } from "@vtex/brand-ui"; -import { jsx as jsx91 } from "react/jsx-runtime"; -var GeminiIcon = (props) => /* @__PURE__ */ jsx91( - Icon57, - { - ...props, - fill: "currentColor", - "fill-rule": "evenodd", - height: "64", - viewBox: "0 0 24 24", - width: "64", - xmlns: "http://www.w3.org/2000/svg", - children: /* @__PURE__ */ jsx91("path", { d: "M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z" }) - } -); -var gemini_icon_default = GeminiIcon; - -// src/components/icons/copilot-icon.tsx -import { Icon as Icon58 } from "@vtex/brand-ui"; -import { jsx as jsx92 } from "react/jsx-runtime"; -var CopilotIcon = (props) => /* @__PURE__ */ jsx92( - Icon58, - { - ...props, - fill: "currentColor", - "fill-rule": "evenodd", - height: "64", - viewBox: "0 0 24 24", - width: "64", - xmlns: "http://www.w3.org/2000/svg", - children: /* @__PURE__ */ jsx92("path", { d: "M9 23l.073-.001a2.53 2.53 0 01-2.347-1.838l-.697-2.433a2.529 2.529 0 00-2.426-1.839h-.497l-.104-.002c-4.485 0-2.935-5.278-1.75-9.225l.162-.525C2.412 3.99 3.883 1 6.25 1h8.86c1.12 0 2.106.745 2.422 1.829l.715 2.453a2.53 2.53 0 002.247 1.823l.147.005.534.001c3.557.115 3.088 3.745 2.156 7.206l-.113.413c-.154.548-.315 1.089-.47 1.607l-.163.525C21.588 20.01 20.116 23 17.75 23h-8.75zm8.22-15.89l-3.856.001a2.526 2.526 0 00-2.35 1.615L9.21 15.04a2.529 2.529 0 01-2.43 1.847l3.853.002c1.056 0 1.992-.661 2.361-1.644l1.796-6.287a2.529 2.529 0 012.43-1.848z" }) - } -); -var copilot_icon_default = CopilotIcon; +var developer_portal_icon_default = DeveloperPortalIcon; -// src/components/icons/grid-icon.tsx -import { Icon as Icon59 } from "@vtex/brand-ui"; -import { jsx as jsx93, jsxs as jsxs76 } from "react/jsx-runtime"; -var GridIcon = (props) => /* @__PURE__ */ jsxs76( - Icon59, +// src/components/icons/faq-icon.tsx +import { Icon as Icon67 } from "@vtex/brand-ui"; +import { jsx as jsx128, jsxs as jsxs105 } from "react/jsx-runtime"; +var FAQIcon = (props) => /* @__PURE__ */ jsxs105( + Icon67, { ...props, - viewBox: "0 0 24 24", + viewBox: "0 0 24 25", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx93( + /* @__PURE__ */ jsx128( "path", { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M5 14C3.895 14 3 13.105 3 12C3 10.895 3.895 10 5 10C6.105 10 7 10.895 7 12C7 13.105 6.105 14 5 14Z", - fill: "#4A596B" + d: "M22 11.5667C22 16.8499 17.5222 21.1334 12 21.1334C11.3507 21.1343 10.7032 21.0742 10.0654 20.9545C9.60633 20.8682 9.37678 20.8251 9.21653 20.8496C9.05627 20.8741 8.82918 20.9948 8.37499 21.2364C7.09014 21.9197 5.59195 22.161 4.15111 21.893C4.69874 21.2194 5.07275 20.4112 5.23778 19.5448C5.33778 19.0148 5.09 18.5 4.71889 18.1231C3.03333 16.4115 2 14.1051 2 11.5667C2 6.28357 6.47778 2 12 2C17.5222 2 22 6.28357 22 11.5667Z", + stroke: "currentcolor", + strokeWidth: "2", + strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx93( + /* @__PURE__ */ jsx128( "path", { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M12 14C10.895 14 10 13.105 10 12C10 10.895 10.895 10 12 10C13.105 10 14 10.895 14 12C14 13.105 13.105 14 12 14Z", - fill: "#4A596B" + d: "M10 9.84615C10 8.82655 10.8954 8 12 8C13.1046 8 14 8.82655 14 9.84615C14 10.2137 13.8837 10.5561 13.6831 10.8438C13.0854 11.7012 12 12.5189 12 13.5385V14", + stroke: "currentcolor", + strokeWidth: "2", + strokeLinecap: "round" } ), - /* @__PURE__ */ jsx93( + /* @__PURE__ */ jsx128( "path", { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M19 14C17.895 14 17 13.105 17 12C17 10.895 17.895 10 19 10C20.105 10 21 10.895 21 12C21 13.105 20.105 14 19 14Z", - fill: "#4A596B" + d: "M12 16.5H12.009", + stroke: "currentcolor", + strokeWidth: "2", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ) + ] + } +); +var faq_icon_default = FAQIcon; + +// src/components/icons/known-issues-icon.tsx +import { Icon as Icon68 } from "@vtex/brand-ui"; +import { jsx as jsx129, jsxs as jsxs106 } from "react/jsx-runtime"; +var KnownIssueIcon = (props) => /* @__PURE__ */ jsxs106( + Icon68, + { + ...props, + viewBox: "0 0 256 256", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + children: [ + /* @__PURE__ */ jsx129("rect", { width: "16rem", height: "16rem", fill: "none" }), + /* @__PURE__ */ jsx129( + "line", + { + x1: "104", + y1: "104", + x2: "104", + y2: "208", + fill: "none", + stroke: "#4A596B", + strokeLinecap: "round", + strokeLinejoin: "round", + strokeWidth: "18" } ), - /* @__PURE__ */ jsx93( - "path", + /* @__PURE__ */ jsx129( + "line", { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M5 21C3.895 21 3 20.105 3 19C3 17.895 3.895 17 5 17C6.105 17 7 17.895 7 19C7 20.105 6.105 21 5 21Z", - fill: "#4A596B" + x1: "32", + y1: "104", + x2: "224", + y2: "104", + fill: "none", + stroke: "#4A596B", + strokeLinecap: "round", + strokeLinejoin: "round", + strokeWidth: "18" } ), - /* @__PURE__ */ jsx93( + /* @__PURE__ */ jsx129( + "rect", + { + x: "32", + y: "48", + width: "192", + height: "160", + rx: "8", + strokeWidth: "18", + stroke: "#4A596B", + strokeLinecap: "round", + strokeLinejoin: "round", + fill: "none" + } + ) + ] + } +); +var known_issues_icon_default = KnownIssueIcon; + +// src/components/icons/megaphone-icon.tsx +import { Icon as Icon69 } from "@vtex/brand-ui"; +import { jsx as jsx130, jsxs as jsxs107 } from "react/jsx-runtime"; +var MegaphoneIcon = (props) => /* @__PURE__ */ jsxs107( + Icon69, + { + ...props, + viewBox: "0 0 24 20", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + children: [ + /* @__PURE__ */ jsx130( "path", { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M12 21C10.895 21 10 20.105 10 19C10 17.895 10.895 17 12 17C13.105 17 14 17.895 14 19C14 20.105 13.105 21 12 21Z", - fill: "#4A596B" + d: "M8.39317 5.82935H5.00293C4.72679 5.82935 4.50293 6.0532 4.50293 6.32935V12.3537C4.50293 12.6299 4.72679 12.8537 5.00293 12.8537H8.39317C8.66932 12.8537 8.89317 12.6299 8.89317 12.3537V6.32935C8.89317 6.0532 8.66932 5.82935 8.39317 5.82935Z", + stroke: "#4A596B", + strokeWidth: "1.5" } ), - /* @__PURE__ */ jsx93( + /* @__PURE__ */ jsx130( "path", { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M19 21C17.895 21 17 20.105 17 19C17 17.895 17.895 17 19 17C20.105 17 21 17.895 21 19C21 20.105 20.105 21 19 21Z", - fill: "#4A596B" + d: "M15.5853 1.49929L8.89355 5.82927V12.8537L15.5853 17.1836C15.918 17.3989 16.357 17.1601 16.357 16.7639V1.91907C16.357 1.52282 15.918 1.28402 15.5853 1.49929Z", + stroke: "#4A596B", + strokeWidth: "1.5" } ), - /* @__PURE__ */ jsx93( + /* @__PURE__ */ jsx130( "path", { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M5 7C3.895 7 3 6.105 3 5C3 3.895 3.895 3 5 3C6.105 3 7 3.895 7 5C7 6.105 6.105 7 5 7Z", - fill: "#4A596B" + d: "M2.36914 6.70728H4.00329C4.27943 6.70728 4.50329 6.93113 4.50329 7.20728V11.4756C4.50329 11.7517 4.27943 11.9756 4.00329 11.9756H2.36914C2.093 11.9756 1.86914 11.7517 1.86914 11.4756V7.20728C1.86914 6.93113 2.093 6.70728 2.36914 6.70728Z", + stroke: "#4A596B", + strokeWidth: "1.5" } ), - /* @__PURE__ */ jsx93( + /* @__PURE__ */ jsx130( "path", { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M12 7C10.895 7 10 6.105 10 5C10 3.895 10.895 3 12 3C13.105 3 14 3.895 14 5C14 6.105 13.105 7 12 7Z", - fill: "#4A596B" + d: "M2.90474 16.9811L5.38122 12.8536H8.47085C8.85476 12.8536 9.09544 13.2684 8.90497 13.6017L5.96908 18.7395C5.88688 18.8834 5.70362 18.9333 5.55977 18.8511L3.01314 17.3959C2.86712 17.3125 2.81821 17.1253 2.90474 16.9811Z", + stroke: "#4A596B", + strokeWidth: "1.5" } ), - /* @__PURE__ */ jsx93( + /* @__PURE__ */ jsx130( "path", { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M19 7C17.895 7 17 6.105 17 5C17 3.895 17.895 3 19 3C20.105 3 21 3.895 21 5C21 6.105 20.105 7 19 7Z", - fill: "#4A596B" + d: "M20.789 5C21.8086 6.16449 22.3813 7.74366 22.3813 9.39024C22.3813 11.0368 21.8086 12.616 20.789 13.7805M18.8691 7.19202C19.3789 7.77426 19.6653 8.56385 19.6653 9.38714C19.6653 10.2104 19.3789 11 18.8691 11.5823", + stroke: "#4A596B", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" } ) ] } ); -var grid_icon_default = GridIcon; +var megaphone_icon_default = MegaphoneIcon; -// src/components/icons/trashcan-icon.tsx -import { Icon as Icon60 } from "@vtex/brand-ui"; -import { jsx as jsx94, jsxs as jsxs77 } from "react/jsx-runtime"; -var TrashcanIcon = (props) => /* @__PURE__ */ jsxs77( - Icon60, +// src/components/icons/graph-icon.tsx +import { Icon as Icon70 } from "@vtex/brand-ui"; +import { jsx as jsx131, jsxs as jsxs108 } from "react/jsx-runtime"; +var GraphIcon = (props) => /* @__PURE__ */ jsxs108( + Icon70, { ...props, - viewBox: "0 0 19 18", + viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx94( - "path", - { - d: "M4.25 5.25H14.75", - stroke: "currentcolor", - strokeWidth: "1.5", - strokeLinecap: "round", - strokeLinejoin: "round" - } - ), - /* @__PURE__ */ jsx94( + /* @__PURE__ */ jsx131( "path", { - d: "M14 5.25V13.5C14 14.3288 13.3288 15 12.5 15H6.5C5.67125 15 5 14.3288 5 13.5V5.25", + d: "M15.5993 9.03607H12.749L10.6112 11.2461L6.33574 6.82608L4.19799 9.03607H1.34766", stroke: "currentcolor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx94( + /* @__PURE__ */ jsx131( "path", { - d: "M11.75 2.8125H7.25", + d: "M1 14V3C1 1.89543 1.89543 1 3 1H14C15.1046 1 16 1.89543 16 3V14C16 15.1046 15.1046 16 14 16H3C1.89543 16 1 15.1046 1 14Z", stroke: "currentcolor", - strokeWidth: "1.5", - strokeLinecap: "round", - strokeLinejoin: "round" + strokeWidth: "1.5" } - ), - /* @__PURE__ */ jsx94( + ) + ] + } +); +var graph_icon_default = GraphIcon; + +// src/components/icons/start-here-icon.tsx +import { Icon as Icon71 } from "@vtex/brand-ui"; +import { jsx as jsx132, jsxs as jsxs109 } from "react/jsx-runtime"; +var StartHereIcon = (props) => /* @__PURE__ */ jsxs109( + Icon71, + { + ...props, + viewBox: "0 0 24 24", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + children: [ + /* @__PURE__ */ jsx132( "path", { - d: "M8 8.25V12", - stroke: "currentcolor", - strokeWidth: "1.5", + d: "M4 15.35C4 15.35 4.95 14.4 7.8 14.4C10.65 14.4 12.55 16.3 15.4 16.3C18.25 16.3 19.2 15.35 19.2 15.35V3.95C19.2 3.95 18.25 4.9 15.4 4.9C12.55 4.9 10.65 3 7.8 3C4.95 3 4 3.95 4 3.95V15.35Z", + stroke: "#4A596B", + strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx94( + /* @__PURE__ */ jsx132( "path", { - d: "M11 8.25V12", - stroke: "currentcolor", - strokeWidth: "1.5", + d: "M4 22V15.35", + stroke: "#4A596B", + strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" } @@ -13256,207 +23248,315 @@ var TrashcanIcon = (props) => /* @__PURE__ */ jsxs77( ] } ); -var trashcan_icon_default = TrashcanIcon; +var start_here_icon_default = StartHereIcon; -// src/components/icons/filter-icon.tsx -import { Icon as Icon61 } from "@vtex/brand-ui"; -import { jsx as jsx95, jsxs as jsxs78 } from "react/jsx-runtime"; -var FilterIcon = (props) => /* @__PURE__ */ jsxs78( - Icon61, +// src/components/icons/tutorials-icon.tsx +import { Icon as Icon72 } from "@vtex/brand-ui"; +import { jsx as jsx133, jsxs as jsxs110 } from "react/jsx-runtime"; +var TutorialsIcon = (props) => /* @__PURE__ */ jsxs110( + Icon72, { ...props, - viewBox: "0 0 16 17", + viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx95( - "path", - { - d: "M3.33333 4.5V2.5", - stroke: "currentcolor", - strokeLinecap: "round", - strokeLinejoin: "round" - } - ), - /* @__PURE__ */ jsx95( + /* @__PURE__ */ jsx133( "path", { - d: "M3.33333 14.4998V7.1665", - stroke: "currentcolor", + d: "M4 19.5C4 18.837 4.26339 18.2011 4.73223 17.7322C5.20107 17.2634 5.83696 17 6.5 17H20", + stroke: "#4A596B", + strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx95( + /* @__PURE__ */ jsx133( "path", { - d: "M7.99984 9.83333V2.5", - stroke: "currentcolor", + d: "M6.5 2H20V22H6.5C5.83696 22 5.20107 21.7366 4.73223 21.2678C4.26339 20.7989 4 20.163 4 19.5V4.5C4 3.83696 4.26339 3.20107 4.73223 2.73223C5.20107 2.26339 5.83696 2 6.5 2Z", + stroke: "#4A596B", + strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx95( + /* @__PURE__ */ jsx133( "path", { - d: "M7.99984 14.5V12.5", - stroke: "currentcolor", + d: "M17 9H8", + stroke: "#4A596B", + strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx95( + /* @__PURE__ */ jsx133( "path", { - d: "M12.6668 4.5V2.5", - stroke: "currentcolor", + d: "M15 13H8", + stroke: "#4A596B", + strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx95( + /* @__PURE__ */ jsx133( "path", { - d: "M12.6668 14.4998V7.1665", - stroke: "currentcolor", + d: "M12 5H10H8", + stroke: "#4A596B", + strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx95( + /* @__PURE__ */ jsx133( "path", { - d: "M4.27614 4.89052C4.79684 5.41122 4.79684 6.25544 4.27614 6.77614C3.75545 7.29684 2.91122 7.29684 2.39052 6.77614C1.86983 6.25545 1.86983 5.41122 2.39052 4.89052C2.91122 4.36983 3.75544 4.36983 4.27614 4.89052", - stroke: "currentcolor", + d: "M16 5H15.5H15", + stroke: "#4A596B", + strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" } - ), - /* @__PURE__ */ jsx95( + ) + ] + } +); +var tutorials_icon_default = TutorialsIcon; + +// src/components/icons/announcement-icon.tsx +import { Icon as Icon73 } from "@vtex/brand-ui"; +import { jsx as jsx134, jsxs as jsxs111 } from "react/jsx-runtime"; +var AnnouncementIcon = (props) => /* @__PURE__ */ jsxs111( + Icon73, + { + ...props, + viewBox: "0 0 256 256", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + children: [ + /* @__PURE__ */ jsx134("rect", { width: "16rem", height: "16rem", fill: "none" }), + /* @__PURE__ */ jsx134( "path", { - d: "M8.94265 10.224C9.46335 10.7447 9.46335 11.5889 8.94265 12.1096C8.42195 12.6303 7.57773 12.6303 7.05703 12.1096C6.53633 11.5889 6.53633 10.7447 7.05703 10.224C7.57773 9.70332 8.42195 9.70332 8.94265 10.224", - stroke: "currentcolor", + d: "M56.20305,104A71.899,71.899,0,0,1,128.5484,32.002c39.58967.29432,71.25651,33.20133,71.25651,72.90185V112c0,35.81563,7.49325,56.59893,14.093,67.95814A7.999,7.999,0,0,1,207.01628,192H48.98365A7.99908,7.99908,0,0,1,42.103,179.95641c6.60328-11.35959,14.1-32.1426,14.1-67.95641Z", + fill: "none", + stroke: "#4A596B", strokeLinecap: "round", - strokeLinejoin: "round" + strokeLinejoin: "round", + strokeWidth: "18" } ), - /* @__PURE__ */ jsx95( + /* @__PURE__ */ jsx134( "path", { - d: "M13.6096 4.89052C14.1303 5.41122 14.1303 6.25544 13.6096 6.77614C13.0889 7.29684 12.2447 7.29684 11.724 6.77614C11.2033 6.25545 11.2033 5.41122 11.724 4.89052C12.2447 4.36983 13.0889 4.36983 13.6096 4.89052", - stroke: "currentcolor", + d: "M96,192v8a32,32,0,0,0,64,0v-8", + fill: "none", + stroke: "#4A596B", strokeLinecap: "round", - strokeLinejoin: "round" + strokeLinejoin: "round", + strokeWidth: "18" } ) ] } ); -var filter_icon_default = FilterIcon; +var announcement_icon_default = AnnouncementIcon; -// src/components/icons/menu-icon.tsx -import { Icon as Icon62 } from "@vtex/brand-ui"; -import { jsx as jsx96, jsxs as jsxs79 } from "react/jsx-runtime"; -var MenuIcon = (props) => /* @__PURE__ */ jsxs79( - Icon62, +// src/components/icons/info-icon.tsx +import { Icon as Icon74 } from "@vtex/brand-ui"; +import { jsx as jsx135, jsxs as jsxs112 } from "react/jsx-runtime"; +var InfoIcon = (props) => /* @__PURE__ */ jsxs112( + Icon74, { ...props, - width: "25", - height: "24", - viewBox: "0 0 25 24", + viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx96( + /* @__PURE__ */ jsx135( "path", { - d: "M10.002 12H17.501", - stroke: "currentColor", - strokeWidth: "1.5", - strokeLinecap: "round", - strokeLinejoin: "round" + d: "M8 16C12.4183 16 16 12.4183 16 8C16 3.58172 12.4183 0 8 0C3.58172 0 0 3.58172 0 8C0 12.4183 3.58172 16 8 16Z", + fill: "#ECEFF2" } ), - /* @__PURE__ */ jsx96( + /* @__PURE__ */ jsx135( "path", { - d: "M10.002 15.484H17.501", - stroke: "currentColor", - strokeWidth: "1.5", - strokeLinecap: "round", - strokeLinejoin: "round" + d: "M9.5 12.2231C9.5 12.3615 9.35714 12.5 9.21429 12.5H6.78571C6.64286 12.5 6.5 12.3615 6.5 12.2231V11.6692C6.5 11.5307 6.64286 11.3923 6.78571 11.3923H7.21429V8.06901H6.78571C6.64286 8.06901 6.5 7.93054 6.5 7.79207V7.09973C6.5 6.96126 6.64286 6.82279 6.78571 6.82279H8.5C8.64286 6.82279 8.78571 6.96126 8.78571 7.09973V11.2538H9.21429C9.35714 11.2538 9.5 11.3923 9.5 11.5307V12.2231V12.2231Z", + fill: "#5B6E84" } ), - /* @__PURE__ */ jsx96( + /* @__PURE__ */ jsx135( "path", { - d: "M10.002 8.48401H17.501", - stroke: "currentColor", - strokeWidth: "1.5", - strokeLinecap: "round", - strokeLinejoin: "round" + d: "M8.0714 5.43856C8.62368 5.43856 9.0714 5.0046 9.0714 4.46928C9.0714 3.93396 8.62368 3.5 8.0714 3.5C7.51911 3.5 7.0714 3.93396 7.0714 4.46928C7.0714 5.0046 7.51911 5.43856 8.0714 5.43856Z", + fill: "#5B6E84" } - ), - /* @__PURE__ */ jsx96( + ) + ] + } +); +var info_icon_default = InfoIcon; + +// src/components/icons/new-icon.tsx +import { Icon as Icon75 } from "@vtex/brand-ui"; +import { jsx as jsx136, jsxs as jsxs113 } from "react/jsx-runtime"; +var NewIcon = (props) => /* @__PURE__ */ jsxs113( + Icon75, + { + ...props, + viewBox: "0 0 17 16", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + children: [ + /* @__PURE__ */ jsx136("circle", { cx: "8.50146", cy: "8", r: "8", fill: "#F71963" }), + /* @__PURE__ */ jsxs113("g", { clipPath: "url(#clip0_462_17766)", children: [ + /* @__PURE__ */ jsx136( + "path", + { + d: "M12.6681 6L8.7098 9.95833L6.62646 7.875L3.50146 11", + stroke: "#FFF3F6", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ), + /* @__PURE__ */ jsx136( + "path", + { + d: "M10.1685 6H12.6685V8.5", + stroke: "#FFF3F6", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ) + ] }), + /* @__PURE__ */ jsx136("defs", { children: /* @__PURE__ */ jsx136("clipPath", { id: "clip0_462_17766", children: /* @__PURE__ */ jsx136( + "rect", + { + width: "11", + height: "9", + fill: "white", + transform: "translate(2.50146 4)" + } + ) }) }) + ] + } +); +var new_icon_default = NewIcon; + +// src/components/icons/github-icon.tsx +import { Icon as Icon76 } from "@vtex/brand-ui"; +import { jsx as jsx137 } from "react/jsx-runtime"; +var GithubIcon = (props) => /* @__PURE__ */ jsx137( + Icon76, + { + ...props, + viewBox: "0 0 64 65", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + children: /* @__PURE__ */ jsx137( + "path", + { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M14.4 16.7314C10.6667 20.7314 8 26.3314 8 33.5314C8 38.8647 9.86667 43.9314 12.8 47.9314C16.2667 52.4647 21.3333 55.1314 24 56.198V54.3314C24 54.3314 24 50.0647 26.4 46.3314C21.0667 46.0647 16.8 40.998 16.8 35.1314C16.8 32.998 17.6 31.1314 18.9333 29.5314L19.2 24.4647C19.2 23.1314 20.5333 22.3314 21.8667 22.598L27.4667 24.7314C29.0667 24.4647 30.6667 24.198 32.5333 24.198C34.4 24.198 36 24.4647 37.6 24.7314L42.4 22.3314C43.7333 21.798 45.0667 22.8647 45.0667 24.198L45.3333 29.2647C46.6667 30.8647 47.4667 32.998 47.4667 34.8647C47.4667 40.7314 43.2 45.5314 37.8667 46.0647C40.2667 49.798 40.2667 54.0647 40.2667 54.0647V55.9314C42.9333 54.8647 48 52.198 51.4667 47.6647C54.4 43.9314 56.2667 38.598 56.2667 33.2647C56.2667 26.0647 53.6 20.4647 49.8667 16.4647C44.8 11.398 37.8667 8.99805 32 8.99805C26.1333 8.99805 19.2 11.398 14.4 16.7314V16.7314Z", + stroke: "#4A596B", + strokeWidth: "3", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ) + } +); +var github_icon_default = GithubIcon; + +// src/components/icons/community-icon.tsx +import { Icon as Icon77 } from "@vtex/brand-ui"; +import { jsx as jsx138, jsxs as jsxs114 } from "react/jsx-runtime"; +var CommunityIcon = (props) => /* @__PURE__ */ jsxs114( + Icon77, + { + ...props, + viewBox: "0 0 64 65", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + children: [ + " ", + /* @__PURE__ */ jsx138( "path", { - d: "M7.54978 8.434C7.52178 8.434 7.49978 8.457 7.49978 8.485C7.49978 8.513 7.52278 8.535 7.55078 8.535C7.57878 8.535 7.60178 8.512 7.60178 8.485C7.60078 8.457 7.57778 8.434 7.54978 8.434", - stroke: "#323232", - strokeWidth: "1.5", + fillRule: "evenodd", + clipRule: "evenodd", + d: "M50.6667 56.998H29.3333C26.3867 56.998 24 54.6114 24 51.6647V30.3314C24 27.3847 26.3867 24.998 29.3333 24.998H50.6667C53.6133 24.998 56 27.3847 56 30.3314V51.6647C56 54.6114 53.6133 56.998 50.6667 56.998Z", + stroke: "#4A596B", + strokeWidth: "3", strokeLinecap: "round", strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx96( + /* @__PURE__ */ jsx138( "path", { - d: "M7.54978 11.949C7.52178 11.949 7.49978 11.972 7.49978 12C7.49978 12.028 7.52278 12.051 7.55078 12.051C7.57878 12.051 7.60178 12.028 7.60178 12C7.60178 11.972 7.57778 11.949 7.54978 11.949", - stroke: "#323232", - strokeWidth: "1.5", + fillRule: "evenodd", + clipRule: "evenodd", + d: "M34.6667 40.998H13.3333C10.3867 40.998 8 38.6114 8 35.6647V14.3314C8 11.3847 10.3867 8.99805 13.3333 8.99805H34.6667C37.6133 8.99805 40 11.3847 40 14.3314V35.6647C40 38.6114 37.6133 40.998 34.6667 40.998Z", + stroke: "#4A596B", + strokeWidth: "3", strokeLinecap: "round", strokeLinejoin: "round" } - ), - /* @__PURE__ */ jsx96( + ) + ] + } +); +var community_icon_default = CommunityIcon; + +// src/components/icons/twitter-circle-icon.tsx +import { Icon as Icon78 } from "@vtex/brand-ui"; +import { jsx as jsx139, jsxs as jsxs115 } from "react/jsx-runtime"; +var TwitterCircleIcon = (props) => /* @__PURE__ */ jsxs115( + Icon78, + { + ...props, + viewBox: "0 0 33 33", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + children: [ + /* @__PURE__ */ jsx139( "path", { - d: "M7.54978 15.434C7.52178 15.434 7.49978 15.457 7.49978 15.485C7.49978 15.513 7.52278 15.535 7.55078 15.535C7.57878 15.535 7.60178 15.512 7.60178 15.485C7.60078 15.457 7.57778 15.434 7.54978 15.434", - stroke: "#323232", - strokeWidth: "1.5", - strokeLinecap: "round", - strokeLinejoin: "round" + d: "M9.95605 9.54247C9.95868 9.54614 10.0339 9.65531 10.1232 9.78548C10.2126 9.91512 10.3477 10.1114 10.4234 10.2211C10.5874 10.4594 10.9296 10.9554 11.2356 11.3995C11.3581 11.5769 11.5463 11.8498 11.6535 12.0057C11.8307 12.2629 11.9773 12.4754 12.3842 13.0659C12.4599 13.1756 12.6245 13.4139 12.7496 13.596C12.8752 13.7776 12.9872 13.9409 12.9993 13.9582C13.0214 13.9902 13.0524 14.0348 13.607 14.84C13.7762 15.0851 14.0433 15.4724 14.2005 15.7008C14.3582 15.9285 14.5006 16.1359 14.518 16.1611C14.5469 16.2036 14.5485 16.2078 14.5411 16.2162C14.5364 16.2214 14.3713 16.4135 14.1742 16.6429C13.9771 16.8723 13.6816 17.216 13.5176 17.4061C13.3541 17.5966 13.1323 17.8538 13.0256 17.9782C12.9183 18.1026 12.708 18.3471 12.5577 18.5219C12.2191 18.915 11.0747 20.2451 10.6316 20.76C10.4507 20.9704 10.2215 21.2371 10.1227 21.352C10.0233 21.467 9.94238 21.562 9.94238 21.5635C9.94238 21.5651 10.1674 21.5656 10.4428 21.5651L10.9433 21.5635L11.1541 21.3189C11.7402 20.6382 11.8911 20.4629 12.084 20.2382C12.1997 20.1039 12.3369 19.9443 12.3895 19.884C12.4415 19.8231 12.9409 19.2436 13.4987 18.5954C14.0564 17.9472 14.621 17.2916 14.7524 17.1389C14.8844 16.9856 14.9943 16.8612 14.9974 16.8618C15 16.8623 15.0163 16.8838 15.0337 16.909C15.0742 16.9673 15.3391 17.352 15.6645 17.8238C15.8028 18.0243 16.0562 18.3918 16.227 18.64C16.3984 18.8883 16.6113 19.1974 16.7012 19.3276C16.7905 19.4572 16.9793 19.7312 17.1207 19.9364C17.2621 20.1411 17.3872 20.3233 17.3993 20.3406C17.4114 20.3579 17.5239 20.5206 17.649 20.7028C17.7741 20.8844 17.9134 21.0864 17.9581 21.1515C18.0033 21.2166 18.0764 21.3226 18.1211 21.3877C18.1663 21.4528 18.212 21.5194 18.2241 21.5362L18.2451 21.5662H19.9794H21.7136L21.7042 21.552C21.6994 21.5436 21.6069 21.4098 21.4997 21.2539C21.3924 21.098 21.2279 20.8592 21.1343 20.7237C20.7537 20.1716 20.5051 19.811 20.3784 19.6268C20.3043 19.5197 20.1529 19.3003 20.0414 19.1386C19.8233 18.8216 19.8054 18.7959 19.4179 18.2343C19.2765 18.0285 19.143 17.8354 19.1215 17.8039C19.1004 17.7729 19.0442 17.6921 18.9974 17.6244C18.9506 17.5567 18.8492 17.4087 18.7713 17.2964C18.6941 17.1835 18.6184 17.0738 18.6031 17.0523C18.5879 17.0308 18.5232 16.9363 18.4586 16.8423C18.3939 16.7484 18.3313 16.6576 18.3193 16.6403C18.3072 16.6229 18.2083 16.4802 18.1 16.3227C17.9918 16.1653 17.803 15.8913 17.6805 15.7139C17.3367 15.2158 17.2384 15.073 17.0755 14.8358L16.9241 14.6164L17.0834 14.4316C17.1706 14.3298 17.4335 14.0248 17.6669 13.7535C17.9008 13.4821 18.2115 13.1205 18.3582 12.9504C18.7955 12.4429 19.4116 11.727 20.3668 10.6174C20.8625 10.0416 21.2752 9.56241 21.2836 9.55349L21.2983 9.53617H20.7963H20.2948L19.869 10.028C19.4879 10.4683 19.0999 10.9192 17.0408 13.3126C16.7327 13.6706 16.4788 13.964 16.4772 13.9645C16.4757 13.965 16.4552 13.9377 16.4326 13.9041C16.4094 13.8705 16.2549 13.6454 16.0882 13.4045C15.9221 13.1635 15.7108 12.8565 15.6183 12.7221C15.5257 12.5878 15.4011 12.4072 15.3412 12.3206C15.2818 12.234 15.1041 11.9763 14.947 11.7485C14.7898 11.5202 14.6515 11.3197 14.6394 11.3024C14.6273 11.285 14.5285 11.1423 14.4202 10.9848C14.1463 10.5875 13.7994 10.0836 13.6679 9.89308C13.607 9.8049 13.5271 9.68891 13.4897 9.63432L13.4219 9.53617H11.6871C10.3004 9.53617 9.9529 9.53774 9.95605 9.54247ZM13.1917 10.587C13.2937 10.735 13.3867 10.8704 13.3988 10.8877C13.4203 10.9187 13.5581 11.1186 13.8472 11.5385C13.9271 11.654 14.0018 11.7627 14.0139 11.78C14.0259 11.7973 14.1248 11.9401 14.2331 12.0975C14.4507 12.414 14.7114 12.7919 15.3796 13.7614C15.6256 14.1177 15.8832 14.492 15.9526 14.5933C16.0667 14.7591 16.2796 15.0678 16.4741 15.3491C16.514 15.4068 16.6618 15.6204 16.8016 15.8241C16.9419 16.0277 17.0665 16.2083 17.0786 16.2256C17.0907 16.2429 17.2164 16.4245 17.3572 16.6298C17.4987 16.8345 17.7005 17.1273 17.8057 17.2806C18.1847 17.8296 18.611 18.4484 19.0557 19.094C19.1803 19.2746 19.3953 19.5864 19.5336 19.7869C19.6719 19.9874 19.8364 20.2262 19.899 20.317C19.9615 20.4078 20.0577 20.5474 20.1124 20.6266C20.1676 20.7059 20.2138 20.7741 20.2159 20.7778C20.2196 20.7825 20.063 20.7841 19.44 20.7841H18.6599L18.5742 20.6592C18.499 20.5505 18.252 20.1921 17.741 19.4509C17.6621 19.337 17.4745 19.0641 17.3231 18.8447C16.9362 18.2836 16.7984 18.0837 16.5976 17.7924C16.5014 17.6522 16.4126 17.5236 16.4005 17.5063C16.3705 17.4633 15.8548 16.7148 15.6624 16.4356C15.5005 16.1999 15.1467 15.6871 14.9785 15.4436C14.8413 15.2452 14.589 14.8793 14.2562 14.3965C14.1006 14.1697 13.9629 13.9703 13.9508 13.9529C13.9387 13.9356 13.8525 13.8102 13.7589 13.6748C13.3925 13.1425 12.8079 12.2954 12.7785 12.2524C12.7664 12.235 12.6933 12.1285 12.6155 12.0162C12.5382 11.9033 12.4625 11.7936 12.4473 11.7721C12.391 11.6913 12.0083 11.1354 11.715 10.7093C11.6351 10.5938 11.5626 10.4888 11.5536 10.4757C11.5447 10.4626 11.5163 10.4221 11.4911 10.3849L11.4453 10.3182H12.226H13.0061L13.1917 10.587Z", + fill: "#C5C7D1" } ), - /* @__PURE__ */ jsx96( + /* @__PURE__ */ jsx139( "path", { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M21.5 7V17C21.5 19.209 19.709 21 17.5 21H7.5C5.291 21 3.5 19.209 3.5 17V7C3.5 4.791 5.291 3 7.5 3H17.5C19.709 3 21.5 4.791 21.5 7Z", - stroke: "#323232", - strokeWidth: "1.5", - strokeLinecap: "round", - strokeLinejoin: "round" + d: "M31.7002 15.8379C31.7002 23.9917 24.7819 30.6394 16.2002 30.6394C7.61851 30.6394 0.700195 23.9917 0.700195 15.8379C0.700195 7.68404 7.61851 1.03638 16.2002 1.03638C24.7819 1.03638 31.7002 7.68404 31.7002 15.8379Z", + stroke: "#4D596A" } ) ] } ); -var menu_icon_default = MenuIcon; +var twitter_circle_icon_default = TwitterCircleIcon; // src/components/icons/checkbox.tsx -import { Icon as Icon63 } from "@vtex/brand-ui"; -import { Fragment as Fragment5, jsx as jsx97, jsxs as jsxs80 } from "react/jsx-runtime"; -var CheckboxIcon = (props) => /* @__PURE__ */ jsx97( - Icon63, +import { Icon as Icon79 } from "@vtex/brand-ui"; +import { Fragment as Fragment11, jsx as jsx140, jsxs as jsxs116 } from "react/jsx-runtime"; +var CheckboxIcon = (props) => /* @__PURE__ */ jsx140( + Icon79, { ...props, viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", - children: !props.checked ? /* @__PURE__ */ jsxs80(Fragment5, { children: [ - /* @__PURE__ */ jsx97( + children: !props.checked ? /* @__PURE__ */ jsxs116(Fragment11, { children: [ + /* @__PURE__ */ jsx140( "rect", { x: "0.5", @@ -13468,7 +23568,7 @@ var CheckboxIcon = (props) => /* @__PURE__ */ jsx97( fillOpacity: "0.01" } ), - /* @__PURE__ */ jsx97( + /* @__PURE__ */ jsx140( "rect", { x: "0.5", @@ -13479,9 +23579,9 @@ var CheckboxIcon = (props) => /* @__PURE__ */ jsx97( stroke: "#B9B9B9" } ) - ] }) : /* @__PURE__ */ jsxs80(Fragment5, { children: [ - /* @__PURE__ */ jsx97("rect", { width: "20", height: "20", rx: "4", fill: "#0C1522" }), - /* @__PURE__ */ jsx97( + ] }) : /* @__PURE__ */ jsxs116(Fragment11, { children: [ + /* @__PURE__ */ jsx140("rect", { width: "20", height: "20", rx: "4", fill: "#0C1522" }), + /* @__PURE__ */ jsx140( "path", { fillRule: "evenodd", @@ -13496,16 +23596,16 @@ var CheckboxIcon = (props) => /* @__PURE__ */ jsx97( var checkbox_default = CheckboxIcon; // src/components/icons/resize-icon.tsx -import { Icon as Icon64 } from "@vtex/brand-ui"; -import { jsx as jsx98 } from "react/jsx-runtime"; -var ResizeIcon = (props) => /* @__PURE__ */ jsx98( - Icon64, +import { Icon as Icon80 } from "@vtex/brand-ui"; +import { jsx as jsx141 } from "react/jsx-runtime"; +var ResizeIcon = (props) => /* @__PURE__ */ jsx141( + Icon80, { ...props, viewBox: "0 0 29.96 122.88", fill: "none", xmlns: "http://www.w3.org/2000/svg", - children: /* @__PURE__ */ jsx98( + children: /* @__PURE__ */ jsx141( "path", { fillRule: "evenodd", @@ -13517,10 +23617,10 @@ var ResizeIcon = (props) => /* @__PURE__ */ jsx98( var resize_icon_default = ResizeIcon; // src/components/icons/arrow-right-icon.tsx -import { Icon as Icon65 } from "@vtex/brand-ui"; -import { jsx as jsx99, jsxs as jsxs81 } from "react/jsx-runtime"; -var ArrowRightIcon = (props) => /* @__PURE__ */ jsxs81( - Icon65, +import { Icon as Icon81 } from "@vtex/brand-ui"; +import { jsx as jsx142, jsxs as jsxs117 } from "react/jsx-runtime"; +var ArrowRightIcon = (props) => /* @__PURE__ */ jsxs117( + Icon81, { ...props, viewBox: "0 0 17 17", @@ -13528,7 +23628,7 @@ var ArrowRightIcon = (props) => /* @__PURE__ */ jsxs81( xmlns: "http://www.w3.org/2000/svg", children: [ " ", - /* @__PURE__ */ jsx99( + /* @__PURE__ */ jsx142( "path", { d: "M3.48682 8.9847H13.4801", @@ -13538,7 +23638,7 @@ var ArrowRightIcon = (props) => /* @__PURE__ */ jsxs81( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx99( + /* @__PURE__ */ jsx142( "path", { d: "M9.48877 4.99023L13.5134 8.99823L9.48877 13.0062", @@ -13552,134 +23652,68 @@ var ArrowRightIcon = (props) => /* @__PURE__ */ jsxs81( } ); var arrow_right_icon_default = ArrowRightIcon; - -// src/components/icons/long-arrow-icon.tsx -import { Icon as Icon66 } from "@vtex/brand-ui"; -import { jsx as jsx100, jsxs as jsxs82 } from "react/jsx-runtime"; -var LongArrowIcon = (props) => /* @__PURE__ */ jsxs82( - Icon66, - { - ...props, - viewBox: "0 0 24 24", - fill: "none", - xmlns: "http://www.w3.org/2000/svg", - children: [ - /* @__PURE__ */ jsx100( - "path", - { - d: "M17.4431 6.05859L6 17.5017", - stroke: "#4A596B", - strokeWidth: "2", - strokeLinecap: "round", - strokeLinejoin: "round" - } - ), - /* @__PURE__ */ jsx100( - "path", - { - d: "M9.4082 6L17.4415 6.05664L17.4993 14.0911", - stroke: "#4A596B", - strokeWidth: "2", - strokeLinecap: "round", - strokeLinejoin: "round" - } - ) - ] - } -); -var long_arrow_icon_default = LongArrowIcon; - -// src/components/icons/vtex-logo-footer.tsx -import { Icon as Icon67 } from "@vtex/brand-ui"; -import { jsx as jsx101, jsxs as jsxs83 } from "react/jsx-runtime"; -var VTEXLogoFooter = (props) => /* @__PURE__ */ jsxs83( - Icon67, - { - ...props, - viewBox: "0 0 61 22", - fill: "none", - xmlns: "http://www.w3.org/2000/svg", - children: [ - /* @__PURE__ */ jsx101( - "path", - { - d: "M23.667 0.000165906H4.55235C3.47417 -0.0137423 2.59101 0.848566 2.57987 1.92506C2.57708 2.25886 2.65788 2.58709 2.81668 2.87916L4.72787 6.49529H1.2621C0.560025 6.50086 -0.00553116 7.07387 4.08212e-05 7.77763C0.00282681 7.98069 0.0529747 8.18097 0.147698 8.36177L6.28245 19.9723C6.6112 20.5926 7.38013 20.8291 8.0042 20.5008C8.22986 20.3812 8.41374 20.1976 8.53354 19.9723L10.2051 16.8374L12.3002 20.7957C12.81 21.7526 13.9997 22.117 14.9608 21.6079C15.3063 21.4243 15.5905 21.1406 15.7743 20.7957L25.3386 2.80684C25.8345 1.87499 25.4779 0.717829 24.5446 0.222697C24.2744 0.0808334 23.9735 0.00294754 23.667 0.000165906ZM15.075 7.68583L10.9462 15.4466C10.7428 15.8611 10.2413 16.0308 9.82624 15.8249C9.66186 15.7442 9.52813 15.6107 9.44734 15.4466L5.3575 7.71921C5.13184 7.31866 5.27392 6.80962 5.67511 6.58152C5.80884 6.50642 5.96206 6.47026 6.11529 6.47582H14.3451C14.8076 6.48417 15.1726 6.86525 15.1642 7.327C15.1614 7.45218 15.1308 7.57457 15.075 7.68583Z", - fill: "white" - } - ), - /* @__PURE__ */ jsx101( - "path", - { - d: "M43.5224 8.27831H41.3772V15.6246C41.3772 15.7637 41.263 15.8777 41.1237 15.8777H39.466C39.3267 15.8777 39.2125 15.7637 39.2125 15.6246V8.27831H37.0533C36.9196 8.28387 36.8054 8.18095 36.7998 8.04743C36.7998 8.04465 36.7998 8.04187 36.7998 8.03908V6.73728C36.8026 6.60376 36.9112 6.49527 37.045 6.49806C37.0478 6.49806 37.0505 6.49806 37.0533 6.49806H43.5224C43.6645 6.48415 43.7871 6.58985 43.801 6.72893C43.801 6.73171 43.801 6.7345 43.801 6.73728V8.03908C43.7926 8.18095 43.6701 8.28665 43.5308 8.27831C43.528 8.27831 43.5252 8.27831 43.5224 8.27831Z", - fill: "white" - } - ), - /* @__PURE__ */ jsx101( - "path", - { - d: "M50.3883 15.8056C49.5442 15.9252 48.6944 15.9808 47.8419 15.9697C46.2149 15.9697 44.7773 15.5524 44.7773 13.2604V9.08791C44.7773 6.79584 46.2288 6.39251 47.8559 6.39251C48.7028 6.38138 49.5525 6.43701 50.3911 6.55662C50.5666 6.58166 50.6419 6.64563 50.6419 6.80975V7.98082C50.6391 8.11712 50.5276 8.22839 50.3911 8.23117H47.7305C47.1371 8.23117 46.9226 8.43423 46.9226 9.08791V10.234H50.288C50.4273 10.234 50.5416 10.348 50.5416 10.4871V11.6832C50.5416 11.8223 50.4301 11.9335 50.2908 11.9335H50.288H46.9198V13.2687C46.9198 13.9252 47.1343 14.1255 47.7277 14.1255H50.3883C50.5276 14.1282 50.6391 14.2395 50.6391 14.3786V15.5497C50.6391 15.7054 50.5638 15.7805 50.3883 15.8056Z", - fill: "white" - } - ), - /* @__PURE__ */ jsx101( - "path", - { - d: "M59.93 15.8833H57.9185C57.7792 15.8945 57.6483 15.8194 57.587 15.6942L55.8429 12.9292L54.2633 15.633C54.1741 15.7832 54.0878 15.8833 53.9485 15.8833H52.0846C51.9927 15.8945 51.9091 15.8305 51.898 15.7415C51.898 15.7359 51.8952 15.7276 51.8952 15.7192C51.898 15.6886 51.9063 15.6608 51.9203 15.633L54.6645 11.0711L51.8952 6.73732C51.8813 6.71507 51.8729 6.69004 51.8701 6.66222C51.8785 6.56486 51.9621 6.49254 52.0596 6.4981H54.0989C54.2382 6.4981 54.3385 6.62328 54.4137 6.73732L56.0324 9.29087L57.5981 6.73732C57.6566 6.60937 57.7764 6.51757 57.9157 6.4981H59.7879C59.8854 6.49254 59.969 6.56486 59.9774 6.66222C59.9746 6.69004 59.9662 6.71507 59.9523 6.73732L57.1858 11.0989L60.0554 15.633C60.0777 15.6719 60.0916 15.7137 60.0944 15.7582C60.0944 15.8333 60.0303 15.8833 59.93 15.8833Z", - fill: "white" - } - ), - /* @__PURE__ */ jsx101( - "path", - { - d: "M33.7975 6.49536C33.7056 6.49536 33.6248 6.55934 33.6053 6.65113L31.7666 13.4383C31.7415 13.5774 31.7053 13.6275 31.591 13.6275C31.4768 13.6275 31.4378 13.5774 31.4127 13.4383L29.5768 6.65113C29.5573 6.55934 29.4765 6.49536 29.3845 6.49536H27.5681C27.4594 6.49536 27.373 6.58159 27.373 6.69008C27.373 6.70398 27.3758 6.72067 27.3786 6.73458C27.3786 6.73458 29.6213 14.5232 29.6464 14.5927C29.8916 15.4522 30.7051 16.0225 31.5966 15.9641C32.4826 16.0002 33.2794 15.4383 33.5468 14.5955C33.583 14.4898 35.7756 6.73458 35.7756 6.73458C35.8007 6.62888 35.7338 6.52596 35.6307 6.50092C35.6168 6.49814 35.6001 6.49536 35.5862 6.49536H33.7975Z", - fill: "white" - } - ) - ] - } -); -var vtex_logo_footer_default = VTEXLogoFooter; export { api_guides_icon_default as APIGuidesIcon, api_reference_icon_default as APIReferenceIcon, added_icon_default as AddedIcon, + announcement_bar_default as AnnouncementBar, announcement_icon_default as AnnouncementIcon, app_development_icon_default as AppDevelopmentIcon, arrow_left_icon_default as ArrowLeftIcon, arrow_right_icon_default as ArrowRightIcon, + article_pagination_default as ArticlePagination, + article_render_default as ArticleRender, + ask_ai_default as AskAIMenu, + ask_assistant_default as AskAssistant, + author_default as Author, + breadcrumb_default as Breadcrumb, caret_default as CaretIcon, chatgpt_icon_default as ChatGPTIcon, checkbox_default as CheckboxIcon, + chip_filter_default as ChipFilter, claude_icon_default as ClaudeIcon, close_filter_icon_default as CloseFilterIcon, close_icon_default as CloseIcon, + collapse_icon_default as CollapseIcon, community_icon_default as CommunityIcon, + Contributors_default as Contributors, cookie_bar_default as CookieBar, copilot_icon_default as CopilotIcon, + copy_button_default as CopyButton, + copy_heading_link_default as CopyHeadingLink, copy_icon_default as CopyIcon, copy_link_button_default as CopyLinkButton, + DEFAULT_ASK_ASSISTANT_EXAMPLES, + date_text_default as DateText, deprecated_icon_default as DeprecatedIcon, developer_portal_icon_default as DeveloperPortalIcon, documentation_updates_icon_default as DocumentationUpdatesIcon, + dropdown_menu_default as DropdownMenu, edit_icon_default as EditIcon, email_icon_default as EmailIcon, + expand_icon_default as ExpandIcon, expanded_results_icon_default as ExpandedResultsIcon, faq_icon_default as FAQIcon, facebook_circle_icon_default as FacebookCircleIcon, facebook_icon_default as FacebookIcon, + feedback_modal_default as FeedbackModal, feedback_section_default as FeedbackSection, + listing_filter_default as Filter, filter_icon_default as FilterIcon, fixed_icon_default as FixedIcon, + footer_default as Footer, gear_troubleshooting_icon_default as GearTroubleshootingIcon, gemini_icon_default as GeminiIcon, github_icon_default as GithubIcon, graph_icon_default as GraphIcon, grid_icon_default as GridIcon, hamburger_menu_default as HamburgerMenu, + header_default as Header, helpcenter_icon_default as HelpCenterIcon, improved_icon_default as ImprovedIcon, info_icon_default as InfoIcon, input_default as Input, + insert_account_name_default as InsertAccountName, instagram_icon_default as InstagramIcon, known_issues_icon_default as KnownIssuesIcon, LibraryContext, @@ -13689,12 +23723,17 @@ export { link_icon_default as LinkIcon, linkedin_circle_icon_default as LinkedinCircleIcon, linkedin_icon_default as LinkedinIcon, + listing_filter_default as ListingFilter, long_arrow_icon_default as LongArrowIcon, MarkdownRenderer_default as MarkdownRenderer, megaphone_icon_default as MegaphoneIcon, menu_icon_default as MenuIcon, + mobile_search_default as MobileSearch, + new_chat_icon_default as NewChatIcon, new_icon_default as NewIcon, + OnThisPage_default as OnThisPage, paper_icon_default as PaperIcon, + refresh_icon_default as RefreshIcon, release_notes_icon_default as ReleaseNotesIcon, removed_icon_default as RemovedIcon, resize_icon_default as ResizeIcon, @@ -13702,14 +23741,23 @@ export { SearchConfig, search_icon_default as SearchIcon, SearchInput, + see_also_section_default as SeeAlsoSection, + send_icon_default as SendIcon, share_button_default as ShareButton, share_icon_default as ShareIcon, sidebar_toggle_icon_default as SideBarToggleIcon, sidebar_default as Sidebar, + sparkle_icon_default as SparkleIcon, start_here_icon_default as StartHereIcon, storefront_development_icon_default as StorefrontDevelopmentIcon, + subscription_list_default as SubscriptionList, + suggest_edits_default as SuggestEdits, TableOfContents_default as TableOfContents, + tag_default as Tag, + time_to_read_default as TimeToRead, + tooltip_default as Tooltip, trashcan_icon_default as TrashcanIcon, + troubleshooting_card_default as TroubleshootingCard, troubleshooting_icon_default as TroubleshootingIcon, tutorials_icon_default as TutorialsIcon, twitter_circle_icon_default as TwitterCircleIcon, @@ -13719,7 +23767,10 @@ export { vtex_io_apps_icon_default as VTEXIOAppsIcon, vtex_logo_footer_default as VTEXLogoFooter, warning_icon_default as WarningIcon, + whats_next_card_default as WhatsNextCard, youtube_icon_default as YoutubeIcon, + collectTroubleshootingFilterOptions, + filterTroubleshootingItems, getDaysElapsed }; /*! Bundled license information: diff --git a/dist/index.mjs.map b/dist/index.mjs.map index dc2065a..3e70091 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/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/trashcan-icon.tsx","../src/components/icons/filter-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'\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 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\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\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 // 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`)\r\n .replace(/`([^`]+)`/g, '$1')\r\n // Remove code blocks (```text```)\r\n .replace(/```[\\s\\S]*?```/g, '')\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 // 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.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteInfo:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/info.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteDanger:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/danger.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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.blockquoteWarning:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/warning.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.blockquoteSuccess:before {\r\n display: inline-block;\r\n height: 20px;\r\n width: 20px;\r\n content: '';\r\n background: url('https://vtex-dev-portal-navigation.fra1.digitaloceanspaces.com/success.svg')\r\n no-repeat 0 0;\r\n background-size: 20px 20px;\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}\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}\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}","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}\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}\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 whiteSpace: 'pre',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\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\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\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\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\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 // 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 ): 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, excludedDoctypes } = extractHybridFilters(params)\r\n\r\n // The upstream Hybrid Search API does not support pagination or doctype\r\n // filtering, so we always fetch a large slice once per (query, locale)\r\n // pair and paginate / doctype-filter client-side.\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 cachedHits = getCached(cacheKey)\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let allHits: any[]\r\n if (cachedHits) {\r\n allHits = cachedHits\r\n } else {\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 allHits = rawResults.map(transformHybridToAlgolia)\r\n setCached(cacheKey, allHits)\r\n }\r\n\r\n // Doctype filter is applied client-side because the upstream API\r\n // does not understand it. Excluded doctypes (e.g. `NOT doctype:\"...\"`)\r\n // are removed first; an optional positive doctype selection narrows further.\r\n // Facet counts are computed on searchable hits (after exclusions, before\r\n // the positive doctype filter) so tab counts stay consistent.\r\n const searchableHits = excludeHitsByDoctype(allHits, excludedDoctypes)\r\n const filteredHits = filterHitsByDoctype(searchableHits, doctypes)\r\n const nbHits = filteredHits.length\r\n const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage))\r\n const start = page * hitsPerPage\r\n const pageHits = filteredHits.slice(start, start + hitsPerPage)\r\n\r\n const facets = extractFacetsFromHits(searchableHits)\r\n\r\n return {\r\n results: [\r\n {\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: facets.facets,\r\n facets_stats: {},\r\n exhaustiveFacetsCount: true,\r\n queryID: generateQueryID(),\r\n },\r\n ],\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\" AND NOT doctype:\"known-issues\"`),\r\n * 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\n * `NOT doctype:\"...\"` clauses are parsed as exclusions (e.g. sections flagged\r\n * `excludeFromSearch` in the consuming app). Positive `doctype:\"...\"` clauses\r\n * narrow results to a selected tab.\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[]; excludedDoctypes: string[] } {\r\n let locale = ''\r\n const doctypes: string[] = []\r\n const excludedDoctypes: 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 const pushExcludedDoctype = (raw: string) => {\r\n const value = raw.replace(/^\"|\"$/g, '').trim()\r\n if (value && !excludedDoctypes.includes(value)) {\r\n excludedDoctypes.push(value)\r\n }\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 excludedRegex = /NOT\\s+doctype\\s*:\\s*(?:\"([^\"]+)\"|([^\\s)]+))/gi\r\n let excludedMatch: RegExpExecArray | null\r\n while ((excludedMatch = excludedRegex.exec(filtersStr)) !== null) {\r\n pushExcludedDoctype(excludedMatch[1] || excludedMatch[2] || '')\r\n }\r\n\r\n // Strip exclusion clauses before parsing positive doctype selections.\r\n const positiveFiltersStr = filtersStr.replace(\r\n /NOT\\s+doctype\\s*:\\s*(?:\"[^\"]+\"|[^\\s)]+)/gi,\r\n ''\r\n )\r\n const doctypeRegex = /doctype\\s*:\\s*(?:\"([^\"]+)\"|([^\\s)]+))/gi\r\n let m: RegExpExecArray | null\r\n while ((m = doctypeRegex.exec(positiveFiltersStr)) !== 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, excludedDoctypes }\r\n}\r\n\r\nfunction excludeHitsByDoctype(\r\n hits: T[],\r\n excludedDoctypes: string[]\r\n): T[] {\r\n if (!excludedDoctypes.length) return hits\r\n const excluded = new Set(excludedDoctypes.map((d) => d.toLowerCase()))\r\n return hits.filter(\r\n (h) => !excluded.has(String(h.doctype || '').toLowerCase())\r\n )\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) =>\r\n wanted.has(String(h.doctype || '').toLowerCase())\r\n )\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\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction extractFacetsFromHits(\r\n hits: any[]\r\n): { facets: Record> } {\r\n const facets: Record> = {\r\n doctype: {},\r\n language: {},\r\n }\r\n\r\n hits.forEach((hit) => {\r\n const doctype = hit.doctype || 'Other'\r\n facets.doctype[doctype] = (facets.doctype[doctype] || 0) + 1\r\n\r\n const language = hit.language || 'en'\r\n facets.language[language] = (facets.language[language] || 0) + 1\r\n })\r\n\r\n return { facets }\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(config: SearchBackendConfig | AlgoliaConfig) {\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 && !item.excludeFromSearch)\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\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 return !dataElement ? (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results' }\r\n \r\n \r\n {ocurrenceCount['']}\r\n \r\n \r\n ) : (\r\n updateFilter(dataElement.id)}\r\n >\r\n \r\n \r\n \r\n {dataElement.title}\r\n \r\n \r\n \r\n {ocurrenceCount[dataElement.id] || 0}\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: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\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: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n fontSize: '12px',\r\n lineHeight: '16px',\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\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, 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 { searchClient, searchIndex, hitsPerPage } from 'utils/config/search-config'\r\n\r\nconst SearchResults = () => {\r\n const router = useRouter()\r\n const { filterSelectedSection, ocurrenceCount } = useContext(SearchContext)\r\n const { locale, sidebarSections } = useContext(LibraryContext)\r\n const excludedDoctypesFilter = sidebarSections\r\n .flat()\r\n .filter((section) => section.excludeFromSearch)\r\n .map((section) => `NOT doctype:\"${section.id}\"`)\r\n .join(' AND ')\r\n const filters = [\r\n `language:${locale}`,\r\n filterSelectedSection ? `doctype:\"${filterSelectedSection}\"` : '',\r\n excludedDoctypesFilter,\r\n ]\r\n .filter(Boolean)\r\n .join(' AND ')\r\n const [prevFilter, setPrevFilter] = useState('')\r\n const [searchState, setSearchState] = useState({})\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const page = filters !== prevFilter ? 1 : currentState.page || 1\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 ocurrenceCount[filterSelectedSection] === undefined\r\n ? ''\r\n : 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 stateFilters =\r\n typeof results?._state.filters === 'string'\r\n ? results._state.filters\r\n : ''\r\n // Ignore the always-present `NOT doctype:\"...\"` exclusion clauses so we\r\n // only detect a positive doctype selection made by the user.\r\n const positiveFilters = stateFilters.replace(/NOT doctype:\"[^\"]*\"/g, '')\r\n const isFilteringByDoctype = positiveFilters.includes('doctype:\"')\r\n\r\n const facets = results?.facets as\r\n | Array<{\r\n name: string\r\n data: Record\r\n exhaustive?: boolean\r\n }>\r\n | undefined\r\n\r\n const doctypeFacet = facets?.find((facet) => facet.name === 'doctype')\r\n const nbHits = results?.nbHits ?? 0\r\n\r\n const formattedFacets: Record = {}\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\r\n formattedFacets[''] = nbHits\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) 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}\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\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 return (\r\n changeFilterSelectedSection(filter)}\r\n data-testid=\"doctype-filter-tab\"\r\n data-filter={filter}\r\n data-active={String(filterSelectedSection === filter)}\r\n >\r\n \r\n {filter || messages[locale]['search_results.all'] || 'All results'}\r\n \r\n \r\n {ocurrenceCount[filter] || 0}\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\r\n .flat()\r\n .filter((section) => !section.excludeFromSearch)\r\n .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) => SxStyleProp = (active) => ({\r\n pt: '8px',\r\n pb: '14px',\r\n px: '24px',\r\n cursor: '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})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '16.38px',\r\n whiteSpace: 'nowrap',\r\n color: `#${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","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 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 { 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 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","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","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","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","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","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","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","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","Box","styles_default","Text","InstantSearch","Configure","useContext","Flex","Text","container","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","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","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/components/insert-account-name/index.tsx","../src/components/tooltip/index.tsx","../src/components/tooltip/styles.ts","../src/components/icons/caret.tsx","../src/utils/context/libraryContext.tsx","../src/messages/en.json","../src/messages/es.json","../src/messages/pt.json","../src/utils/get-message.ts","../src/components/insert-account-name/styles.ts","../src/utils/string-utils.ts","../src/utils/mermaidInit.ts","../src/components/copy-heading-link/index.tsx","../src/components/icons/link-icon.tsx","../src/components/copy-heading-link/styles.ts","../src/lib/markdown-renderer/styles.module.css","../src/lib/table-of-contents/TableOfContents.tsx","../src/lib/table-of-contents/styles.ts","../src/lib/on-this-page/OnThisPage.tsx","../src/components/icons/menu-icon.tsx","../src/lib/on-this-page/styles.ts","../src/lib/contributors/Contributors.tsx","../src/lib/contributors/styles.ts","../src/lib/sidebar/index.tsx","../src/lib/sidebar/styles.ts","../src/lib/sidebar/functions.ts","../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/mobile-search/index.tsx","../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/components/icons/copy-icon.tsx","../src/components/icons/external-link-icon.tsx","../src/components/icons/paper-icon.tsx","../src/utils/config/search-config.ts","../src/components/mobile-search/styles.ts","../src/components/feedback-section/index.tsx","../src/components/icons/like-icon.tsx","../src/components/icons/like-selected-icon.tsx","../src/components/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/suggest-edits/index.tsx","../src/components/icons/edit-icon.tsx","../src/components/suggest-edits/styles.ts","../src/components/feedback-modal/index.tsx","../src/components/icons/check-icon.tsx","../src/components/icons/comment-icon.tsx","../src/components/icons/warning-icon.tsx","../src/components/feedback-modal/modal.tsx","../src/components/feedback-modal/styles.ts","../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/copy-link-button/styles.ts","../src/components/copy-button/index.tsx","../src/components/copy-button/styles.ts","../src/components/ask-ai/index.tsx","../src/components/icons/chatgpt-icon.tsx","../src/components/icons/copilot-icon.tsx","../src/components/icons/claude-icon.tsx","../src/components/icons/gemini-icon.tsx","../src/components/icons/long-arrow-icon.tsx","../src/components/icons/markdown-icon.tsx","../src/components/ask-ai/styles.ts","../src/components/ask-assistant/index.tsx","../src/components/icons/book-icon.tsx","../src/components/icons/collapse-icon.tsx","../src/components/icons/expand-icon.tsx","../src/components/icons/history-icon.tsx","../src/components/icons/refresh-icon.tsx","../src/components/icons/send-icon.tsx","../src/components/icons/sparkle-icon.tsx","../src/components/icons/new-chat-icon.tsx","../src/components/ask-assistant/default-examples.tsx","../src/components/ask-assistant/history.ts","../src/components/ask-assistant/markdown.tsx","../src/components/ask-assistant/sources.tsx","../src/components/ask-assistant/styles.ts","../src/components/ask-assistant/stream.ts","../src/components/breadcrumb/index.tsx","../src/components/breadcrumb/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/footer/index.tsx","../src/components/icons/vtex-logo-footer.tsx","../src/components/icons/instagram-icon.tsx","../src/components/icons/youtube-icon.tsx","../src/components/icons/facebook-circle-icon.tsx","../src/components/icons/linkedin-circle-icon.tsx","../src/components/footer/styles.ts","../src/components/header/index.tsx","../src/components/icons/vtex-devportal-icon.tsx","../src/components/icons/vtex-helpcenter-icon.tsx","../src/components/icons/grid-icon.tsx","../src/components/header/dropdown-menu.tsx","../src/components/header/dropdown-menu.styles.ts","../src/components/header/styles.ts","../src/components/announcement-bar/index.tsx","../src/components/announcement-bar/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/chip-filter/index.tsx","../src/components/chip-filter/styles.ts","../src/components/author/index.tsx","../src/components/author/styles.ts","../src/components/time-to-read/index.tsx","../src/components/time-to-read/styles.ts","../src/components/date-text/index.tsx","../src/components/date-text/styles.ts","../src/components/article-pagination/index.tsx","../src/components/article-pagination/styles.ts","../src/components/article-render/index.tsx","../src/components/see-also-section/index.tsx","../src/components/see-also-section/functions.ts","../src/components/see-also-section/styles.ts","../src/components/article-render/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/start-here-icon.tsx","../src/components/icons/tutorials-icon.tsx","../src/components/icons/announcement-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/twitter-circle-icon.tsx","../src/components/icons/checkbox.tsx","../src/components/icons/resize-icon.tsx","../src/components/icons/arrow-right-icon.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'\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\nimport InsertAccountName from 'components/insert-account-name'\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 CopyHeadingLink from 'components/copy-heading-link'\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 { children, ...restHeadingProps } = headingProps\r\n const toSlugify = childrenToString(children)\r\n const slug = slugify(toSlugify)\r\n const headingContent = (\r\n <>\r\n {children}\r\n \r\n \r\n )\r\n\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 {headingContent}\r\n

\r\n ) : (\r\n

\r\n {headingContent}\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 \r\n
\r\n {messages[locale]['image.error_loading']} {props.src}\r\n
\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 InsertAccountName,\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","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst container: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n mt: 0,\r\n padding: '16px',\r\n borderRadius: '4px',\r\n border: '1px solid #E7E9EE',\r\n width: '100%',\r\n maxWidth: '100%',\r\n minWidth: 0,\r\n height: '100%',\r\n boxSizing: 'border-box',\r\n textDecoration: 'none',\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',\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}\r\n","import { useContext, useState, type ChangeEvent } from 'react'\r\nimport { Box, Text } from '@vtex/brand-ui'\r\n\r\nimport Tooltip from 'components/tooltip'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport styles from './styles'\r\n\r\nexport type InsertAccountNameProps = {\r\n id: string\r\n}\r\n\r\nconst InsertAccountName = ({ id }: InsertAccountNameProps) => {\r\n const { locale } = useContext(LibraryContext)\r\n const [accountName, setAccountName] = useState('')\r\n const [showError, setShowError] = useState(false)\r\n const [hovered, setHovered] = useState(false)\r\n\r\n const handleNavigate = () => {\r\n if (!accountName.trim()) {\r\n setShowError(true)\r\n return\r\n }\r\n window.open(\r\n `https://${accountName.trim()}.myvtex.com/admin/docs/${id}`,\r\n '_blank'\r\n )\r\n }\r\n\r\n const handleChange = (e: ChangeEvent) => {\r\n setAccountName(e.target.value)\r\n if (showError) setShowError(false)\r\n }\r\n\r\n return (\r\n \r\n \r\n {\r\n if (e.key === 'Enter') handleNavigate()\r\n }}\r\n style={{\r\n ...styles.input,\r\n ...(showError ? styles.inputError : {}),\r\n }}\r\n />\r\n \r\n setHovered(true)}\r\n onMouseLeave={() => setHovered(false)}\r\n style={{\r\n ...styles.button,\r\n ...(hovered ? styles.buttonHover : {}),\r\n }}\r\n >\r\n {messages[locale]['insert_account_name.button'] ||\r\n 'Go to documentation'}\r\n \r\n \r\n \r\n {showError && (\r\n \r\n {messages[locale]['insert_account_name.error'] ||\r\n 'Account name is required'}\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default InsertAccountName\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 /** When true, the tooltip stays visible even without hover. */\r\n open?: boolean\r\n wrapperSx?: SxStyleProp\r\n}\r\n\r\nconst Tooltip = ({\r\n children,\r\n label,\r\n placement,\r\n sx,\r\n isCard,\r\n open,\r\n wrapperSx,\r\n}: 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 [hovered, setHovered] = useState(false)\r\n const visible = Boolean(open) || hovered\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 open,\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 setHovered(true)}\r\n onMouseLeave={() => setHovered(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 width: 'max-content',\r\n minWidth: '64px',\r\n maxWidth: '240px',\r\n overflowWrap: 'break-word',\r\n textAlign: 'center',\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 minWidth: '284px',\r\n maxWidth: '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","import type { Dispatch, ReactNode, SetStateAction } from 'react'\r\nimport { createContext, useCallback, useEffect, useMemo, 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, currentlyOpen?: boolean) => void\r\n openSidebarElement: (title: string) => void\r\n closeSidebarElements: (parentsArray: string[]) => void\r\n setOpenSidebarElements: (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 setOpenSidebarElements: () => 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 = props.locale ?? 'en'\r\n const fallback = props.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 = useCallback(\r\n (title: string, currentlyOpen?: boolean) => {\r\n setSidebarElementStatus((prev) => {\r\n const open = prev.has(title) ? !prev.get(title) : !currentlyOpen\r\n const next = new Map(prev)\r\n next.set(title, open)\r\n return next\r\n })\r\n },\r\n []\r\n )\r\n\r\n const closeSidebarElements = useCallback((parentsArray: string[]) => {\r\n const parentSet = new Set(parentsArray)\r\n setSidebarElementStatus((prev) => {\r\n let changed = false\r\n const next = new Map(prev)\r\n next.forEach((value, key) => {\r\n if (!parentSet.has(key) && value) {\r\n next.set(key, false)\r\n changed = true\r\n }\r\n })\r\n return changed ? next : prev\r\n })\r\n }, [])\r\n\r\n const openSidebarElement = useCallback((title: string) => {\r\n setSidebarElementStatus((prev) => {\r\n if (prev.get(title) === true) return prev\r\n const next = new Map(prev)\r\n next.set(title, true)\r\n return next\r\n })\r\n }, [])\r\n\r\n const setOpenSidebarElements = useCallback((parentsArray: string[]) => {\r\n if (parentsArray.length === 0) {\r\n setSidebarElementStatus((prev) => (prev.size === 0 ? prev : new Map()))\r\n return\r\n }\r\n\r\n const parentSet = new Set(parentsArray)\r\n setSidebarElementStatus((prev) => {\r\n const next = new Map(prev)\r\n let changed = false\r\n next.forEach((value, key) => {\r\n if (!parentSet.has(key) && value) {\r\n next.set(key, false)\r\n changed = true\r\n }\r\n })\r\n parentsArray.forEach((slug) => {\r\n if (next.get(slug) !== true) {\r\n next.set(slug, true)\r\n changed = true\r\n }\r\n })\r\n return changed ? next : prev\r\n })\r\n }, [])\r\n\r\n const goToPreviousItem = useCallback(() => {\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 }, [headingItems])\r\n\r\n const goToPreviousSubItem = useCallback(() => {\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 }, [headingItems])\r\n\r\n const contextValue = useMemo(\r\n () => ({\r\n headingItems,\r\n activeItem,\r\n setHeadingItems,\r\n setActiveItem,\r\n goToPreviousItem,\r\n goToPreviousSubItem,\r\n isEditorPreview,\r\n setIsEditorPreview,\r\n sidebarSectionHidden,\r\n activeSectionName,\r\n activeSidebarElement,\r\n sidebarElementStatus,\r\n setActiveSectionName,\r\n setSidebarSectionHidden,\r\n setActiveSidebarElement,\r\n toggleSidebarElementStatus,\r\n openSidebarElement,\r\n closeSidebarElements,\r\n setOpenSidebarElements,\r\n sidebarDataMaster,\r\n setSidebarDataMaster,\r\n sidebarSections,\r\n setSidebarSections,\r\n hamburguerSections,\r\n setHamburguerSections,\r\n locale,\r\n }),\r\n [\r\n headingItems,\r\n activeItem,\r\n goToPreviousItem,\r\n goToPreviousSubItem,\r\n isEditorPreview,\r\n sidebarSectionHidden,\r\n activeSectionName,\r\n activeSidebarElement,\r\n sidebarElementStatus,\r\n toggleSidebarElementStatus,\r\n openSidebarElement,\r\n closeSidebarElements,\r\n setOpenSidebarElements,\r\n sidebarDataMaster,\r\n sidebarSections,\r\n hamburguerSections,\r\n locale,\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","{\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.button\": \"Send feedback\",\r\n \"feedback_modal.title\": \"Send feedback\",\r\n \"feedback_modal.description\": \"Share suggestions, issues found, or ideas to improve our documentation.\",\r\n \"feedback_modal.success\": \"Thank you! Your feedback has been received.\",\r\n \"feedback_modal.error\": \"Sorry, we couldn’t send your feedback. Please try again later.\",\r\n \"feedback_modal.article\": \"Article\",\r\n \"feedback_modal.message\": \"Message\",\r\n \"feedback_modal.type\": \"Feedback type\",\r\n \"feedback_modal.name\": \"Name\",\r\n \"feedback_modal.email\": \"Email\",\r\n \"feedback_modal.cancel\": \"Cancel\",\r\n \"feedback_modal.submit\": \"Send\",\r\n \"feedback_modal.submitting\": \"Sending...\",\r\n \"feedback_modal.close\": \"Close modal\",\r\n \"feedback_modal.done\": \"Done\",\r\n \"feedback_modal.message_placeholder\": \"Describe your suggestion, question, or issue...\",\r\n \"feedback_modal.name_placeholder\": \"Your name\",\r\n \"feedback_modal.email_placeholder\": \"you@example.com\",\r\n \"feedback_modal.type.incorrect\": \"Incorrect information\",\r\n \"feedback_modal.type.page_not_found\": \"Page not found\",\r\n \"feedback_modal.type.content_improvement\": \"Content improvement\",\r\n \"feedback_modal.type.new_documentation\": \"New documentation\",\r\n \"feedback_modal.type.other\": \"Other documentation feedback\",\r\n \"search_input.empty\": \"No results found. Try different search terms.\",\r\n \"search_input.placeholder\": \"Search\",\r\n \"search_input.copy_link\": \"Copy link\",\r\n \"search_input.copied\": \"Copied\",\r\n \"heading_link.copy\": \"Copy link\",\r\n \"heading_link.copied\": \"Copied\",\r\n \"search_input.open_new_tab\": \"Open in new tab\",\r\n \"search_input.clear\": \"Clear search\",\r\n \"search_input.navigate\": \"Navigate\",\r\n \"search_input.open\": \"Open\",\r\n \"search_input.close\": \"Close\",\r\n \"search_input.open_search\": \"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 \"on_this_page.title\": \"On this page\",\r\n \"contributors.title\": \"Contributors\",\r\n \"contributors.toggle_less\": \"Show less\",\r\n \"contributors.toggle_more\": \"+ {count} contributors\",\r\n \"contributors.photo_alt\": \"Photo of the contributor {name}\",\r\n \"footer.github\": \"GitHub\",\r\n \"footer.developer_portal\": \"Developer Portal\",\r\n \"footer.help_center\": \"Help Center\",\r\n \"footer.community\": \"Community\",\r\n \"footer.feedback\": \"Feedback\",\r\n \"header.docs\": \"Menu\",\r\n \"header.feedback\": \"Feedback\",\r\n \"header.admin_tools\": \"Admin tools\",\r\n \"header.home_aria\": \"Go back to Home\",\r\n \"documentation_reading_time.text\": \"{minutes} min read\",\r\n \"date_text.created\": \"Published on\",\r\n \"date_text.updated\": \"Last updated on\",\r\n \"article_pagination.previous\": \"Previous\",\r\n \"article_pagination.next\": \"Next\",\r\n \"see_also_section.title\": \"See also\",\r\n \"insert_account_name.placeholder\": \"Account name\",\r\n \"insert_account_name.button\": \"Go to documentation\",\r\n \"insert_account_name.tooltip\": \"View documentation page on VTEX Admin\",\r\n \"insert_account_name.error\": \"Account name is required\",\r\n \"ask_ai.copy\": \"Copy markdown\",\r\n \"ask_ai.view\": \"View markdown\",\r\n \"ask_ai.copied\": \"Copied\",\r\n \"ask_assistant.button\": \"Ask Assistant\",\r\n \"ask_assistant.title\": \"Assistant\",\r\n \"ask_assistant.hero_title\": \"How can I help you?\",\r\n \"ask_assistant.hero_subtitle\": \"Get answers from VTEX documentation.\",\r\n \"ask_assistant.placeholder\": \"Ask a question...\",\r\n \"ask_assistant.examples\": \"Examples:\",\r\n \"ask_assistant.send\": \"Send\",\r\n \"ask_assistant.close\": \"Close\",\r\n \"ask_assistant.clear\": \"New chat\",\r\n \"ask_assistant.history\": \"History\",\r\n \"ask_assistant.history_clear\": \"clear\",\r\n \"ask_assistant.expand\": \"Expand\",\r\n \"ask_assistant.collapse\": \"Collapse\",\r\n \"ask_assistant.copy\": \"Copy\",\r\n \"ask_assistant.copied\": \"Copied\",\r\n \"ask_assistant.regenerate\": \"Regenerate\",\r\n \"ask_assistant.helpful\": \"Helpful\",\r\n \"ask_assistant.not_helpful\": \"Not helpful\",\r\n \"ask_assistant.error\": \"Could not reach the assistant. Please try again.\",\r\n \"ask_assistant.searching\": \"Searching...\",\r\n \"ask_assistant.searching_docs\": \"Searching documentation\",\r\n \"ask_assistant.searching_endpoints\": \"Searching endpoints\",\r\n \"ask_assistant.reading_endpoints\": \"Reading endpoint details\",\r\n \"ask_assistant.reading_document\": \"Reading document\",\r\n \"ask_assistant.read_file\": \"Read 1 file\",\r\n \"ask_assistant.read_files\": \"Read {count} files\",\r\n \"ask_assistant.found_endpoint\": \"Found 1 endpoint\",\r\n \"ask_assistant.found_endpoints\": \"Found {count} endpoints\",\r\n \"ask_assistant.tool\": \"Tool\",\r\n \"ask_assistant.process_running\": \"Processing...\",\r\n \"ask_assistant.process_completed\": \"Process completed ({count} steps)\",\r\n \"ask_assistant.process_completed_one\": \"Process completed (1 step)\",\r\n \"ask_assistant.step_search_docs\": \"Search documentation\",\r\n \"ask_assistant.step_search_endpoints\": \"Search endpoints\",\r\n \"ask_assistant.step_read_endpoints\": \"Read endpoint details\",\r\n \"ask_assistant.step_read_document\": \"Read document\",\r\n \"ask_assistant.step_create_response\": \"Create response\",\r\n \"ask_assistant.step_search\": \"Search\",\r\n \"ask_assistant.sources\": \"Sources\"\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.button\": \"Enviar feedback\",\r\n \"feedback_modal.title\": \"Enviar feedback\",\r\n \"feedback_modal.description\": \"Comparte sugerencias, problemas encontrados o ideas para mejorar nuestra documentación.\",\r\n \"feedback_modal.success\": \"¡Gracias! Hemos recibido tu feedback.\",\r\n \"feedback_modal.error\": \"No pudimos enviar tu feedback. Inténtalo de nuevo más tarde.\",\r\n \"feedback_modal.article\": \"Artículo\",\r\n \"feedback_modal.message\": \"Mensaje\",\r\n \"feedback_modal.type\": \"Tipo de feedback\",\r\n \"feedback_modal.name\": \"Nombre\",\r\n \"feedback_modal.email\": \"Correo electrónico\",\r\n \"feedback_modal.cancel\": \"Cancelar\",\r\n \"feedback_modal.submit\": \"Enviar\",\r\n \"feedback_modal.submitting\": \"Enviando...\",\r\n \"feedback_modal.close\": \"Cerrar modal\",\r\n \"feedback_modal.done\": \"Listo\",\r\n \"feedback_modal.message_placeholder\": \"Describe tu sugerencia, pregunta o problema...\",\r\n \"feedback_modal.name_placeholder\": \"Tu nombre\",\r\n \"feedback_modal.email_placeholder\": \"tu@ejemplo.com\",\r\n \"feedback_modal.type.incorrect\": \"Incorrect information\",\r\n \"feedback_modal.type.page_not_found\": \"Page not found\",\r\n \"feedback_modal.type.content_improvement\": \"Content improvement\",\r\n \"feedback_modal.type.new_documentation\": \"New documentation\",\r\n \"feedback_modal.type.other\": \"Other documentation feedback\",\r\n \"search_input.empty\": \"No se encontraron resultados. Intenta utilizar otros términos.\",\r\n \"search_input.placeholder\": \"Buscar\",\r\n \"search_input.copy_link\": \"Copiar enlace\",\r\n \"search_input.copied\": \"Copiado\",\r\n \"heading_link.copy\": \"Copiar enlace\",\r\n \"heading_link.copied\": \"Copiado\",\r\n \"search_input.open_new_tab\": \"Abrir en nueva pestaña\",\r\n \"search_input.clear\": \"Limpiar búsqueda\",\r\n \"search_input.navigate\": \"Navegar\",\r\n \"search_input.open\": \"Abrir\",\r\n \"search_input.close\": \"Cerrar\",\r\n \"search_input.open_search\": \"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 \"on_this_page.title\": \"En esta página\",\r\n \"contributors.title\": \"Contribuidores\",\r\n \"contributors.toggle_less\": \"Mostrar menos\",\r\n \"contributors.toggle_more\": \"+ {count} contribuidores\",\r\n \"contributors.photo_alt\": \"Foto del contribuidor {name}\",\r\n \"footer.github\": \"GitHub\",\r\n \"footer.developer_portal\": \"Developer Portal\",\r\n \"footer.help_center\": \"Help Center\",\r\n \"footer.community\": \"Comunidad\",\r\n \"footer.feedback\": \"Feedback\",\r\n \"header.docs\": \"Menú\",\r\n \"header.feedback\": \"Feedback\",\r\n \"header.admin_tools\": \"Herramientas de admin\",\r\n \"header.home_aria\": \"Volver al inicio\",\r\n \"copy_heading_link.copy\": \"Copiar enlace\",\r\n \"copy_heading_link.copied\": \"Copiado\",\r\n \"documentation_reading_time.text\": \"{minutes} min de lectura\",\r\n \"date_text.created\": \"Publicado el\",\r\n \"date_text.updated\": \"Última actualización el\",\r\n \"article_pagination.previous\": \"Anterior\",\r\n \"article_pagination.next\": \"Siguiente\",\r\n \"see_also_section.title\": \"Véase también\",\r\n \"insert_account_name.placeholder\": \"Nombre de cuenta\",\r\n \"insert_account_name.button\": \"Ir a la documentación\",\r\n \"insert_account_name.tooltip\": \"Ver página de documentación en VTEX Admin\",\r\n \"insert_account_name.error\": \"El nombre de cuenta es obligatorio\",\r\n \"ask_ai.copy\": \"Copiar markdown\",\r\n \"ask_ai.view\": \"Ver markdown\",\r\n \"ask_ai.copied\": \"Copiado\",\r\n \"ask_assistant.button\": \"Preguntar al Assistant\",\r\n \"ask_assistant.title\": \"Assistant\",\r\n \"ask_assistant.hero_title\": \"¿Cómo puedo ayudarte?\",\r\n \"ask_assistant.hero_subtitle\": \"Obtén respuestas de la documentación de VTEX.\",\r\n \"ask_assistant.placeholder\": \"Haz una pregunta...\",\r\n \"ask_assistant.examples\": \"Ejemplos:\",\r\n \"ask_assistant.send\": \"Enviar\",\r\n \"ask_assistant.close\": \"Cerrar\",\r\n \"ask_assistant.clear\": \"Nueva conversación\",\r\n \"ask_assistant.history\": \"Historial\",\r\n \"ask_assistant.history_clear\": \"borrar\",\r\n \"ask_assistant.expand\": \"Expandir\",\r\n \"ask_assistant.collapse\": \"Contraer\",\r\n \"ask_assistant.copy\": \"Copiar\",\r\n \"ask_assistant.copied\": \"Copiado\",\r\n \"ask_assistant.regenerate\": \"Volver a generar\",\r\n \"ask_assistant.helpful\": \"Útil\",\r\n \"ask_assistant.not_helpful\": \"No fue útil\",\r\n \"ask_assistant.error\": \"No se pudo contactar al assistant. Inténtalo de nuevo.\",\r\n \"ask_assistant.searching\": \"Buscando...\",\r\n \"ask_assistant.searching_docs\": \"Buscando documentación\",\r\n \"ask_assistant.searching_endpoints\": \"Buscando endpoints\",\r\n \"ask_assistant.reading_endpoints\": \"Leyendo detalles del endpoint\",\r\n \"ask_assistant.reading_document\": \"Leyendo documento\",\r\n \"ask_assistant.read_file\": \"Leyó 1 archivo\",\r\n \"ask_assistant.read_files\": \"Leyó {count} archivos\",\r\n \"ask_assistant.found_endpoint\": \"Encontró 1 endpoint\",\r\n \"ask_assistant.found_endpoints\": \"Encontró {count} endpoints\",\r\n \"ask_assistant.tool\": \"Herramienta\",\r\n \"ask_assistant.process_running\": \"Procesando...\",\r\n \"ask_assistant.process_completed\": \"Proceso completado ({count} pasos)\",\r\n \"ask_assistant.process_completed_one\": \"Proceso completado (1 paso)\",\r\n \"ask_assistant.step_search_docs\": \"Buscar documentación\",\r\n \"ask_assistant.step_search_endpoints\": \"Buscar endpoints\",\r\n \"ask_assistant.step_read_endpoints\": \"Leer detalles del endpoint\",\r\n \"ask_assistant.step_read_document\": \"Leer documento\",\r\n \"ask_assistant.step_create_response\": \"Crear respuesta\",\r\n \"ask_assistant.step_search\": \"Buscar\",\r\n \"ask_assistant.sources\": \"Fuentes\"\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.button\": \"Enviar feedback\",\r\n \"feedback_modal.title\": \"Enviar feedback\",\r\n \"feedback_modal.description\": \"Compartilhe sugestões, problemas encontrados ou ideias para melhorar nossa documentação.\",\r\n \"feedback_modal.success\": \"Obrigado! Seu feedback foi recebido.\",\r\n \"feedback_modal.error\": \"Não foi possível enviar seu feedback. Tente novamente mais tarde.\",\r\n \"feedback_modal.article\": \"Artigo\",\r\n \"feedback_modal.message\": \"Mensagem\",\r\n \"feedback_modal.type\": \"Tipo de feedback\",\r\n \"feedback_modal.name\": \"Nome\",\r\n \"feedback_modal.email\": \"E-mail\",\r\n \"feedback_modal.cancel\": \"Cancelar\",\r\n \"feedback_modal.submit\": \"Enviar\",\r\n \"feedback_modal.submitting\": \"Enviando...\",\r\n \"feedback_modal.close\": \"Fechar modal\",\r\n \"feedback_modal.done\": \"Concluir\",\r\n \"feedback_modal.message_placeholder\": \"Descreva sua sugestão, dúvida ou problema...\",\r\n \"feedback_modal.name_placeholder\": \"Seu nome\",\r\n \"feedback_modal.email_placeholder\": \"voce@exemplo.com\",\r\n \"feedback_modal.type.incorrect\": \"Incorrect information\",\r\n \"feedback_modal.type.page_not_found\": \"Page not found\",\r\n \"feedback_modal.type.content_improvement\": \"Content improvement\",\r\n \"feedback_modal.type.new_documentation\": \"New documentation\",\r\n \"feedback_modal.type.other\": \"Other documentation feedback\",\r\n \"search_input.empty\": \"Nenhum resultado encontrado. Tente buscar por outros termos.\",\r\n \"search_input.placeholder\": \"Buscar\",\r\n \"search_input.copy_link\": \"Copiar link\",\r\n \"search_input.copied\": \"Copiado\",\r\n \"heading_link.copy\": \"Copiar link\",\r\n \"heading_link.copied\": \"Copiado\",\r\n \"search_input.open_new_tab\": \"Abrir em nova aba\",\r\n \"search_input.clear\": \"Limpar busca\",\r\n \"search_input.navigate\": \"Navegar\",\r\n \"search_input.open\": \"Abrir\",\r\n \"search_input.close\": \"Fechar\",\r\n \"search_input.open_search\": \"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 \"on_this_page.title\": \"Nesta página\",\r\n \"contributors.title\": \"Contribuidores\",\r\n \"contributors.toggle_less\": \"Ver menos\",\r\n \"contributors.toggle_more\": \"+ {count} contribuidores\",\r\n \"contributors.photo_alt\": \"Foto do contribuidor {name}\",\r\n \"footer.github\": \"GitHub\",\r\n \"footer.developer_portal\": \"Developer Portal\",\r\n \"footer.help_center\": \"Help Center\",\r\n \"footer.community\": \"Comunidade\",\r\n \"footer.feedback\": \"Feedback\",\r\n \"header.docs\": \"Menu\",\r\n \"header.feedback\": \"Feedback\",\r\n \"header.admin_tools\": \"Ferramentas de admin\",\r\n \"header.home_aria\": \"Voltar para o início\",\r\n \"copy_heading_link.copy\": \"Copiar link\",\r\n \"copy_heading_link.copied\": \"Copiado\",\r\n \"documentation_reading_time.text\": \"{minutes} min de leitura\",\r\n \"date_text.created\": \"Publicado em\",\r\n \"date_text.updated\": \"Última atualização em\",\r\n \"article_pagination.previous\": \"Anterior\",\r\n \"article_pagination.next\": \"Próximo\",\r\n \"see_also_section.title\": \"Veja também\",\r\n \"insert_account_name.placeholder\": \"Nome da conta\",\r\n \"insert_account_name.button\": \"Acessar documentação\",\r\n \"insert_account_name.tooltip\": \"Ver página de documentação no Admin VTEX\",\r\n \"insert_account_name.error\": \"O nome da conta é obrigatório\",\r\n \"ask_ai.copy\": \"Copiar markdown\",\r\n \"ask_ai.view\": \"Ver markdown\",\r\n \"ask_ai.copied\": \"Copiado\",\r\n \"ask_assistant.button\": \"Perguntar ao Assistant\",\r\n \"ask_assistant.title\": \"Assistant\",\r\n \"ask_assistant.hero_title\": \"Como posso te ajudar?\",\r\n \"ask_assistant.hero_subtitle\": \"Obtenha respostas da documentação da VTEX.\",\r\n \"ask_assistant.placeholder\": \"Faça uma pergunta...\",\r\n \"ask_assistant.examples\": \"Exemplos:\",\r\n \"ask_assistant.send\": \"Enviar\",\r\n \"ask_assistant.close\": \"Fechar\",\r\n \"ask_assistant.clear\": \"Nova conversa\",\r\n \"ask_assistant.history\": \"Histórico\",\r\n \"ask_assistant.history_clear\": \"limpar\",\r\n \"ask_assistant.expand\": \"Expandir\",\r\n \"ask_assistant.collapse\": \"Recolher\",\r\n \"ask_assistant.copy\": \"Copiar\",\r\n \"ask_assistant.copied\": \"Copiado\",\r\n \"ask_assistant.regenerate\": \"Gerar novamente\",\r\n \"ask_assistant.helpful\": \"Útil\",\r\n \"ask_assistant.not_helpful\": \"Não foi útil\",\r\n \"ask_assistant.error\": \"Não foi possível falar com o assistant. Tente novamente.\",\r\n \"ask_assistant.searching\": \"Buscando...\",\r\n \"ask_assistant.searching_docs\": \"Buscando documentação\",\r\n \"ask_assistant.searching_endpoints\": \"Buscando endpoints\",\r\n \"ask_assistant.reading_endpoints\": \"Lendo detalhes do endpoint\",\r\n \"ask_assistant.reading_document\": \"Lendo documento\",\r\n \"ask_assistant.read_file\": \"Leu 1 arquivo\",\r\n \"ask_assistant.read_files\": \"Leu {count} arquivos\",\r\n \"ask_assistant.found_endpoint\": \"Encontrou 1 endpoint\",\r\n \"ask_assistant.found_endpoints\": \"Encontrou {count} endpoints\",\r\n \"ask_assistant.tool\": \"Ferramenta\",\r\n \"ask_assistant.process_running\": \"Processando...\",\r\n \"ask_assistant.process_completed\": \"Processo concluído ({count} passos)\",\r\n \"ask_assistant.process_completed_one\": \"Processo concluído (1 passo)\",\r\n \"ask_assistant.step_search_docs\": \"Buscar documentação\",\r\n \"ask_assistant.step_search_endpoints\": \"Buscar endpoints\",\r\n \"ask_assistant.step_read_endpoints\": \"Ler detalhes do endpoint\",\r\n \"ask_assistant.step_read_document\": \"Ler documento\",\r\n \"ask_assistant.step_create_response\": \"Criar resposta\",\r\n \"ask_assistant.step_search\": \"Buscar\",\r\n \"ask_assistant.sources\": \"Fontes\"\r\n}\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 type { SxStyleProp } from '@vtex/brand-ui'\r\nimport type { CSSProperties } from 'react'\r\n\r\nconst wrapper: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '4px',\r\n my: '16px',\r\n}\r\n\r\nconst container: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n gap: '8px',\r\n}\r\n\r\nconst input: CSSProperties = {\r\n width: '280px',\r\n height: '40px',\r\n padding: '0 12px',\r\n border: '1px solid #ccc',\r\n borderRadius: '4px',\r\n fontSize: '14px',\r\n boxSizing: 'border-box',\r\n transition: 'border-color 0.3s ease-out',\r\n}\r\n\r\nconst inputError: CSSProperties = {\r\n borderColor: '#E31C58',\r\n outline: 'none',\r\n}\r\n\r\nconst button: CSSProperties = {\r\n height: '40px',\r\n padding: '0 16px',\r\n border: '1px solid #ccc',\r\n borderRadius: '4px',\r\n fontSize: '14px',\r\n background: 'transparent',\r\n cursor: 'pointer',\r\n whiteSpace: 'nowrap',\r\n boxSizing: 'border-box',\r\n transition: 'all 0.3s ease-out',\r\n}\r\n\r\nconst buttonHover: CSSProperties = {\r\n background: '#F8F7FC',\r\n borderColor: '#5E6E84',\r\n color: '#E31C58',\r\n}\r\n\r\nconst errorText: SxStyleProp = {\r\n fontSize: '12px',\r\n color: '#E31C58',\r\n}\r\n\r\nexport default {\r\n wrapper,\r\n container,\r\n input,\r\n inputError,\r\n button,\r\n buttonHover,\r\n errorText,\r\n}\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","import {\r\n useCallback,\r\n useContext,\r\n useEffect,\r\n useRef,\r\n useState,\r\n type MouseEvent,\r\n} from 'react'\r\nimport { Box } from '@vtex/brand-ui'\r\nimport type { SxStyleProp } from '@vtex/brand-ui'\r\nimport copy from 'copy-text-to-clipboard'\r\n\r\nimport LinkIcon from 'components/icons/link-icon'\r\nimport Tooltip from 'components/tooltip'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport styles from './styles'\r\n\r\nexport type CopyHeadingLinkProps = {\r\n /**\r\n * Heading `id` used as the URL hash. An empty slug means the heading is an\r\n * h1 (the page title), so the copied URL has no hash.\r\n */\r\n slug?: string\r\n size?: number\r\n sx?: SxStyleProp\r\n}\r\n\r\nexport const getHeadingUrl = (slug = '') => {\r\n const { origin, pathname, search } = window.location\r\n const pageUrl = `${origin}${pathname}${search}`\r\n if (!slug) return pageUrl\r\n\r\n const hash = slug.startsWith('#') ? slug : `#${slug}`\r\n return `${pageUrl}${hash}`\r\n}\r\n\r\nconst CopyHeadingLink = ({\r\n slug = '',\r\n size = 16,\r\n sx = {},\r\n}: CopyHeadingLinkProps) => {\r\n const { locale } = useContext(LibraryContext)\r\n const [copied, setCopied] = useState(false)\r\n const copyTimeout = useRef(undefined)\r\n\r\n const copyLabel = messages[locale]['heading_link.copy'] || 'Copy link'\r\n const copiedLabel = messages[locale]['heading_link.copied'] || 'Copied'\r\n const label = copied ? copiedLabel : copyLabel\r\n\r\n const handleCopy = useCallback(\r\n (event: MouseEvent) => {\r\n event.preventDefault()\r\n event.stopPropagation()\r\n\r\n copy(getHeadingUrl(slug))\r\n setCopied(true)\r\n window.clearTimeout(copyTimeout.current)\r\n copyTimeout.current = window.setTimeout(() => {\r\n setCopied(false)\r\n }, 2000)\r\n },\r\n [slug]\r\n )\r\n\r\n useEffect(() => () => window.clearTimeout(copyTimeout.current), [])\r\n\r\n return (\r\n \r\n event.preventDefault()}\r\n >\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default CopyHeadingLink\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 type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst muted = '#A1AAB7'\r\nconst mutedHover = '#5E6E84'\r\nconst pink = '#E31C58'\r\n\r\nconst tooltipWrapper: SxStyleProp = {\r\n display: 'inline-flex',\r\n verticalAlign: 'middle',\r\n position: 'relative',\r\n lineHeight: 0,\r\n}\r\n\r\nconst button: SxStyleProp = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n flexShrink: 0,\r\n ml: '8px',\r\n p: 0,\r\n border: 'none',\r\n background: 'transparent',\r\n color: muted,\r\n cursor: 'pointer',\r\n verticalAlign: 'middle',\r\n lineHeight: 0,\r\n userSelect: 'none',\r\n transition: 'color 0.15s ease',\r\n ':hover': {\r\n color: mutedHover,\r\n },\r\n ':focus-visible': {\r\n outline: `2px solid ${pink}`,\r\n outlineOffset: '2px',\r\n borderRadius: '2px',\r\n },\r\n}\r\n\r\nconst buttonCopied: SxStyleProp = {\r\n ...button,\r\n color: mutedHover,\r\n}\r\n\r\nexport default { tooltipWrapper, button, buttonCopied }\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.heading :global([data-copy-heading-link]) {\r\n position: relative;\r\n top: -0.08em;\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}","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\nimport { messages } from 'utils/get-message'\r\n\r\nimport styles from './styles'\r\n\r\nconst MARKDOWN_HEADINGS_SELECTOR = [\r\n '[data-markdown-renderer] h2',\r\n '[data-markdown-renderer] h3',\r\n '[data-markdown-renderer] h4',\r\n '[data-markdown-renderer] h5',\r\n '[data-markdown-renderer] h6',\r\n].join(', ')\r\n\r\nconst headingTitle = (heading: Element) => {\r\n const clone = heading.cloneNode(true) as HTMLElement\r\n clone\r\n .querySelectorAll('[data-copy-heading-link]')\r\n .forEach((node) => node.remove())\r\n return removeHTML(clone.innerHTML).replace(':', '').trim()\r\n}\r\n\r\nconst collectHeadingsFromDom = (): Item[] => {\r\n const headings: Item[] = []\r\n document.querySelectorAll(MARKDOWN_HEADINGS_SELECTOR).forEach((heading) => {\r\n const item = {\r\n title: headingTitle(heading),\r\n slug: heading.id,\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 return headings\r\n}\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, locale } =\r\n useContext(LibraryContext)\r\n\r\n useEffect(() => {\r\n if (headingList) {\r\n setHeadingItems(headingList)\r\n return\r\n }\r\n\r\n const applyFromDom = () => {\r\n const headings = collectHeadingsFromDom()\r\n if (!headings.length) return false\r\n setHeadingItems(headings)\r\n return true\r\n }\r\n\r\n if (applyFromDom()) return\r\n\r\n // MarkdownRenderer uses `lazy`, so headings may appear after this effect.\r\n const observer = new MutationObserver(() => {\r\n if (applyFromDom()) observer.disconnect()\r\n })\r\n observer.observe(document.body, { childList: true, subtree: true })\r\n return () => observer.disconnect()\r\n }, [router.asPath, headingList, setHeadingItems])\r\n\r\n const items = headingList?.length ? headingList : headingItems\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 {items.length > 0 && (\r\n \r\n {messages[locale]['on_this_page.title']}\r\n \r\n )}\r\n \r\n {items.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 { useContext, useState } from 'react'\r\nimport { Box, Flex, Text } from '@vtex/brand-ui'\r\nimport AnimateHeight from 'react-animate-height'\r\n\r\nimport TableOfContents from 'lib/table-of-contents'\r\nimport MenuIcon from 'components/icons/menu-icon'\r\nimport CloseIcon from 'components/icons/close-icon'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\n\r\nimport styles from './styles'\r\nimport { OnThisPageProps } from './OnThisPage.types'\r\n\r\n/** Mobile floating table of contents for documentation pages. */\r\nconst OnThisPage = ({ headingList }: OnThisPageProps) => {\r\n const { locale } = useContext(LibraryContext)\r\n const [isOpen, setIsOpen] = useState(false)\r\n const title = messages[locale]['on_this_page.title']\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n setIsOpen((open) => !open)}\r\n >\r\n {title}\r\n \r\n {!isOpen ? : }\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default OnThisPage\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 { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst container: SxStyleProp = {\r\n left: '20px',\r\n bottom: '20px',\r\n position: 'fixed',\r\n alignItems: 'flex-end',\r\n display: ['flex', 'flex', 'flex', 'flex', 'none'],\r\n flexDirection: ['column-reverse', 'row'],\r\n}\r\n\r\nconst contentContainer: SxStyleProp = {\r\n mt: ['8px', 0],\r\n mb: ['-20px', 0],\r\n mr: ['-20px', '8px'],\r\n width: ['100vw', '360px'],\r\n padding: '16px',\r\n borderRadius: ['8px 8px 0px 0px', '8px'],\r\n backgroundColor: 'white',\r\n border: '1px solid #CCCED8',\r\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\r\n}\r\n\r\nconst onThisPageTitle: SxStyleProp = {\r\n mb: '16px',\r\n fontSize: '12px',\r\n fontWeight: '400',\r\n lineHeight: '16px',\r\n color: '#4A4A4A',\r\n}\r\n\r\nconst buttonContainer: SxStyleProp = {\r\n cursor: 'pointer',\r\n alignItems: 'center',\r\n backgroundColor: 'muted.4',\r\n border: '1px solid #CCCED8',\r\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\r\n borderRadius: '8px',\r\n}\r\n\r\nconst iconContainer: SxStyleProp = {\r\n width: '32px',\r\n height: '32px',\r\n padding: '6px',\r\n boxSizing: 'initial',\r\n borderRadius: '8px',\r\n backgroundColor: 'white',\r\n borderLeft: '1px solid #CCCED8',\r\n}\r\n\r\nconst title: (open: boolean) => SxStyleProp = (open) => ({\r\n color: 'black',\r\n fontSize: '12px',\r\n fontWeight: '400',\r\n lineHeight: '16px',\r\n padding: open ? '0px' : '8px',\r\n overflow: 'hidden',\r\n whiteSpace: 'nowrap',\r\n width: open ? '0px' : 'min-width',\r\n transition: 'all 0.3s ease-in-out',\r\n transitionDelay: open ? '0s' : '0.3s',\r\n})\r\n\r\nexport default {\r\n container,\r\n contentContainer,\r\n onThisPageTitle,\r\n buttonContainer,\r\n iconContainer,\r\n title,\r\n}\r\n","import { useContext, useEffect, useRef, useState } from 'react'\r\nimport { Box, Flex, Grid, IconCaret, Text } from '@vtex/brand-ui'\r\n\r\nimport Tooltip from 'components/tooltip'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\n\r\nimport styles from './styles'\r\nimport { ContributorsProps } from './Contributors.types'\r\n\r\n/** List of GitHub contributors for a documentation page. */\r\nconst Contributors = ({ contributors }: ContributorsProps) => {\r\n const { locale } = useContext(LibraryContext)\r\n\r\n const [showAll, setShowAll] = useState(false)\r\n const [pageWidth, setPageWidth] = useState(0)\r\n const [photosPerRow, setPhotosPerRow] = useState(0)\r\n const [minRows, setMinRows] = useState(0)\r\n const [isClient, setIsClient] = useState(false)\r\n const photosContainer = useRef(null)\r\n\r\n useEffect(() => {\r\n setIsClient(true)\r\n setPageWidth(window.innerWidth)\r\n\r\n const updatePageWidth = () => {\r\n setPageWidth(window.innerWidth)\r\n }\r\n\r\n window.addEventListener('resize', updatePageWidth)\r\n return () => window.removeEventListener('resize', updatePageWidth)\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (isClient && photosContainer.current) {\r\n const gridStyle = window.getComputedStyle(photosContainer.current)\r\n setPhotosPerRow(gridStyle.gridTemplateColumns.split(' ').length)\r\n }\r\n }, [pageWidth, isClient])\r\n\r\n useEffect(() => {\r\n setMinRows(photosPerRow === 6 ? 1 : 2)\r\n }, [photosPerRow])\r\n\r\n const visibleRows = photosPerRow\r\n ? showAll\r\n ? Math.ceil(contributors.length / photosPerRow)\r\n : Math.min(Math.ceil(contributors.length / photosPerRow), minRows)\r\n : minRows\r\n const hiddenCount = contributors.length - minRows * photosPerRow\r\n\r\n return (\r\n \r\n \r\n {messages[locale]['contributors.title']}\r\n {contributors.length}\r\n \r\n\r\n \r\n {contributors.map((contributor) => (\r\n \r\n \r\n \r\n {/* eslint-disable-next-line @next/next/no-img-element */}\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n\r\n {contributors.length > minRows * photosPerRow && (\r\n {\r\n setShowAll(!showAll)\r\n }}\r\n >\r\n \r\n {showAll\r\n ? messages[locale]['contributors.toggle_less']\r\n : messages[locale]['contributors.toggle_more'].replace(\r\n '{count}',\r\n String(hiddenCount)\r\n )}\r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default Contributors\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst container: SxStyleProp = {\r\n mb: '32px',\r\n flexDirection: 'column',\r\n alignItems: ['initial', 'center', 'center', 'center', 'initial'],\r\n}\r\n\r\nconst titleContainer: SxStyleProp = {\r\n alignItems: 'center',\r\n}\r\n\r\nconst title: SxStyleProp = {\r\n fontWeight: '400',\r\n fontSize: ['12px', '16px', '16px', '16px', '12px', '16px'],\r\n lineHeight: ['16px', '18px', '18px', '18px', '16px', '18px'],\r\n color: '#4A4A4A',\r\n}\r\n\r\nconst count: SxStyleProp = {\r\n px: '8px',\r\n ml: '8px',\r\n width: '30px',\r\n height: '16px',\r\n borderRadius: '24px',\r\n backgroundColor: 'muted.4',\r\n fontSize: '12px',\r\n fontWeight: '400',\r\n lineHeight: '16px',\r\n textAlign: 'center',\r\n color: '#4A4A4A',\r\n}\r\n\r\nconst photosContainer: (rows: number) => SxStyleProp = (rows) => ({\r\n mt: '16px',\r\n gap: '8px',\r\n gridTemplateColumns: [\r\n '1fr 1fr 1fr 1fr',\r\n '1fr 1fr 1fr 1fr 1fr 1fr',\r\n '1fr 1fr 1fr 1fr 1fr 1fr',\r\n '1fr 1fr 1fr 1fr 1fr 1fr',\r\n '1fr 1fr 1fr 1fr',\r\n '1fr 1fr 1fr 1fr 1fr',\r\n ],\r\n overflow: 'hidden',\r\n width: [0, 'min-content', 'min-content', 'min-content', '152px', '192px'],\r\n maxHeight: `${32 * rows + 8 * (rows - 1)}px`,\r\n transition: 'max-height 0.3s ease-in-out',\r\n})\r\n\r\nconst photo: SxStyleProp = {\r\n width: '32px',\r\n height: '32px',\r\n img: {\r\n width: '32px',\r\n height: '32px',\r\n borderRadius: '100%',\r\n },\r\n}\r\n\r\nconst collapseButton: SxStyleProp = {\r\n ...title,\r\n mt: '8px',\r\n height: '24px',\r\n color: 'muted.0',\r\n cursor: 'pointer',\r\n alignItems: 'center',\r\n\r\n ':active': {\r\n color: '#0C1522',\r\n },\r\n\r\n ':hover': {\r\n color: '#000711',\r\n },\r\n}\r\n\r\nexport default {\r\n container,\r\n titleContainer,\r\n title,\r\n count,\r\n photosContainer,\r\n photo,\r\n collapseButton,\r\n}\r\n","import {\r\n Fragment,\r\n useEffect,\r\n useMemo,\r\n useRef,\r\n useState,\r\n useContext,\r\n} 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, getSectionLabel } 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\ninterface SideBarIconProps extends Section {\r\n expandDelayStatus: boolean\r\n isEditorPreview: boolean\r\n activeSectionName: string\r\n setActiveSectionName: (id: string) => void\r\n}\r\n\r\nconst SideBarIcon = ({\r\n expandDelayStatus,\r\n isEditorPreview,\r\n activeSectionName,\r\n setActiveSectionName,\r\n ...sectionElement\r\n}: SideBarIconProps) => {\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 setTooltipLabel(sectionElement.title)\r\n }, [sectionElement.title])\r\n\r\n useEffect(() => {\r\n const target = titleRef.current\r\n if (!target) return\r\n\r\n const updateTooltip = () => {\r\n setIconTooltip(target.offsetWidth < target.scrollWidth)\r\n if (target.offsetWidth > 0) setTooltipLabel(target.innerText)\r\n }\r\n\r\n updateTooltip()\r\n const resizeObserver = new MutationObserver(updateTooltip)\r\n resizeObserver.observe(target, {\r\n childList: true,\r\n characterData: true,\r\n subtree: true,\r\n })\r\n return () => {\r\n resizeObserver.disconnect()\r\n }\r\n }, [])\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/**\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 locale,\r\n } = context\r\n\r\n const sidebarSectionContent = useMemo(() => {\r\n if (!Array.isArray(sidebarDataMaster)) return undefined\r\n return sidebarDataMaster.find(\r\n (section: SidebarSectionProps) =>\r\n section.documentation === activeSectionName\r\n ) as SidebarSectionProps | undefined\r\n }, [sidebarDataMaster, activeSectionName])\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)\r\n timer = setTimeout(() => setExpandDelayStatus(false), 5000)\r\n else setExpandDelayStatus(true)\r\n\r\n return () => {\r\n timer && clearTimeout(timer)\r\n }\r\n }, [activeSectionName, sidebarSectionContent?.categories?.length])\r\n\r\n return (\r\n \r\n \r\n {sidebarSections.map((section, id) => (\r\n \r\n {id > 0 && (\r\n \r\n
\r\n
\r\n )}\r\n \r\n {section.map((element) => {\r\n const title = getSectionLabel(\r\n element,\r\n sidebarDataMaster,\r\n locale\r\n )\r\n return (\r\n \r\n )\r\n })}\r\n \r\n
\r\n ))}\r\n
\r\n {activeSectionName && sidebarSectionContent ? (\r\n \r\n ) : 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 maxHeight: 'calc(100vh - 5rem)',\r\n minHeight: 0,\r\n paddingRight: '16px',\r\n marginRight: '-16px',\r\n zIndex: 2,\r\n 'body:has(.modal[data-open=\"true\"]) &': {\r\n zIndex: 0,\r\n },\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 height: '100%',\r\n minHeight: 0,\r\n overflowX: 'hidden',\r\n overflowY: 'auto',\r\n overscrollBehavior: 'contain',\r\n scrollbarWidth: 'none',\r\n '::-webkit-scrollbar': {\r\n display: 'none',\r\n },\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 'body:has(.modal[data-open=\"true\"]) &': {\r\n zIndex: 0,\r\n },\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","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 if (!obj || typeof obj !== 'object') return res\r\n\r\n for (const key in obj) {\r\n const value = obj[key]\r\n if (value !== null && typeof value === 'object') {\r\n flattenJSON(value, res, `${extraKey}${key}.`)\r\n } else {\r\n res[extraKey + key] = value\r\n }\r\n }\r\n return res\r\n}\r\n\r\nconst documentationTypeCache = new WeakMap>()\r\n\r\nfunction indexDocumentationTypes(\r\n data: unknown,\r\n index: Map\r\n): void {\r\n if (!data || typeof data !== 'object') return\r\n\r\n if (Array.isArray(data)) {\r\n for (let i = 0; i < data.length; i++) {\r\n indexDocumentationTypes(data[i], index)\r\n }\r\n return\r\n }\r\n\r\n const node = data as { slug?: unknown; type?: unknown }\r\n if (typeof node.type === 'string' && node.slug != null) {\r\n if (typeof node.slug === 'string') {\r\n index.set(node.slug, node.type)\r\n } else if (typeof node.slug === 'object') {\r\n for (const value of Object.values(node.slug as Record)) {\r\n if (typeof value === 'string' && value) {\r\n index.set(value, node.type)\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (const value of Object.values(data as Record)) {\r\n if (value && typeof value === 'object') {\r\n indexDocumentationTypes(value, index)\r\n }\r\n }\r\n}\r\n\r\n/** O(1) lookup of a nav node's `type` (`markdown` | `category` | `link`). */\r\nexport function getDocumentationType(\r\n sidebarData: unknown,\r\n slug: string\r\n): string | undefined {\r\n if (!sidebarData || typeof sidebarData !== 'object') return undefined\r\n\r\n let index = documentationTypeCache.get(sidebarData)\r\n if (!index) {\r\n index = new Map()\r\n indexDocumentationTypes(sidebarData, index)\r\n documentationTypeCache.set(sidebarData, index)\r\n }\r\n\r\n return index.get(slug)\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 return sections.flat().find((icon) => icon.id === doc || icon.title === doc)\r\n ?.Icon\r\n}\r\n\r\ntype LocalizedField = string | { en: string; pt: string; es: string }\r\n\r\nexport function resolveLocalizedName(\r\n value: LocalizedField | undefined,\r\n locale: 'en' | 'pt' | 'es'\r\n): string {\r\n if (!value) return ''\r\n if (typeof value === 'string') return value\r\n return value[locale] || value.en || ''\r\n}\r\n\r\n/** Label for a sidebar section, preferring the localized `name` from navigation. */\r\nexport function getSectionLabel(\r\n section: { id: string; title: string },\r\n navigation: unknown,\r\n locale: 'en' | 'pt' | 'es'\r\n): string {\r\n if (Array.isArray(navigation)) {\r\n const navSection = navigation.find(\r\n (item: { documentation?: string; name?: LocalizedField }) =>\r\n item.documentation === section.id\r\n )\r\n const fromNav = resolveLocalizedName(navSection?.name, locale)\r\n if (fromNav) return fromNav\r\n }\r\n return section.title\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 { sidebarDataMaster, setActiveSidebarElement, setOpenSidebarElements } =\r\n context\r\n const router = useRouter()\r\n const parentsKey = parentsArray.join('\\0')\r\n\r\n useEffect(() => {\r\n const expandedSlugs = parentsArray.slice()\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 const flattenedSidebar = flattenJSON(sidebarDataMaster)\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 expandedSlugs.push(activeSlug)\r\n if (keyPath) {\r\n getParents(keyPath, 'slug', flattenedSidebar, expandedSlugs)\r\n }\r\n } else {\r\n activeSlug = expandedSlugs[expandedSlugs.length - 1]\r\n }\r\n\r\n setOpenSidebarElements(expandedSlugs)\r\n setActiveSidebarElement(activeSlug?.replace('?endpoint=', '#'))\r\n }, [\r\n parentsKey,\r\n router.asPath,\r\n router.pathname,\r\n router.query.slug,\r\n sidebarDataMaster,\r\n setActiveSidebarElement,\r\n setOpenSidebarElements,\r\n ])\r\n}\r\n","// Sidebar Section\r\nimport { Flex, Box, Text, Button } from '@vtex/brand-ui'\r\nimport {\r\n memo,\r\n useContext,\r\n useLayoutEffect,\r\n useMemo,\r\n useRef,\r\n useState,\r\n} 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 CloseIcon from 'components/icons/close-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\ntype MethodFilter = {\r\n name: string\r\n active: boolean\r\n}\r\n\r\nfunction localizedName(\r\n name: SidebarElement['name'],\r\n locale: 'en' | 'pt' | 'es'\r\n): string {\r\n return typeof name === 'string' ? name : name[locale]\r\n}\r\n\r\nfunction matchesQuery(\r\n name: SidebarElement['name'],\r\n query: string,\r\n locale: 'en' | 'pt' | 'es'\r\n): boolean {\r\n if (!query) return true\r\n return localizedName(name, locale).toLowerCase().includes(query)\r\n}\r\n\r\nfunction matchesMethodFilter(\r\n node: SidebarElement,\r\n methodFilterList: MethodFilter[],\r\n filterStatus: boolean\r\n): boolean {\r\n if (!filterStatus || !node.method) return true\r\n return methodFilterList.some(\r\n (methodFilter) => methodFilter.name === node.method && methodFilter.active\r\n )\r\n}\r\n\r\nfunction filterSidebarNode(\r\n node: SidebarElement,\r\n query: string,\r\n methodFilterList: MethodFilter[],\r\n filterStatus: boolean,\r\n locale: 'en' | 'pt' | 'es'\r\n): SidebarElement | null {\r\n const selfMatches =\r\n matchesQuery(node.name, query, locale) &&\r\n matchesMethodFilter(node, methodFilterList, filterStatus)\r\n const children = node.children || []\r\n\r\n if (selfMatches && !filterStatus) {\r\n return node\r\n }\r\n\r\n const filteredChildren = children\r\n .map((child) =>\r\n filterSidebarNode(\r\n child,\r\n selfMatches ? '' : query,\r\n methodFilterList,\r\n filterStatus,\r\n locale\r\n )\r\n )\r\n .filter((child): child is SidebarElement => child != null)\r\n\r\n if (filteredChildren.length > 0) {\r\n return { ...node, children: filteredChildren }\r\n }\r\n\r\n if (selfMatches && children.length === 0) {\r\n return node\r\n }\r\n\r\n return null\r\n}\r\n\r\nfunction scrollDesktopSidebarToActiveItem(container: HTMLElement) {\r\n const activeEl = container.querySelector(\r\n '[data-sidebar-active=\"true\"]'\r\n )\r\n if (!activeEl) return false\r\n\r\n const containerRect = container.getBoundingClientRect()\r\n const elRect = activeEl.getBoundingClientRect()\r\n const isFullyVisible =\r\n elRect.top >= containerRect.top && elRect.bottom <= containerRect.bottom\r\n\r\n if (isFullyVisible) return true\r\n\r\n const topInsideContainer =\r\n elRect.top - containerRect.top + container.scrollTop\r\n const centered =\r\n topInsideContainer - container.clientHeight / 2 + elRect.height / 2\r\n\r\n container.scrollTop = Math.max(0, centered)\r\n return true\r\n}\r\n\r\nfunction filterSidebarCategories(\r\n categories: SidebarElement[] | undefined,\r\n searchValue: string,\r\n methodFilterList: MethodFilter[],\r\n filterStatus: boolean,\r\n locale: 'en' | 'pt' | 'es'\r\n): SidebarElement[] | undefined {\r\n if (!categories?.length || (!filterStatus && searchValue === '')) {\r\n return categories\r\n }\r\n\r\n const query = searchValue.toLowerCase()\r\n\r\n return categories\r\n .map((category) =>\r\n filterSidebarNode(category, query, methodFilterList, filterStatus, locale)\r\n )\r\n .filter((category): category is SidebarElement => category != null)\r\n}\r\n\r\nconst SidebarSearchBox = ({\r\n value,\r\n placeholder,\r\n onChange,\r\n}: {\r\n value: string\r\n placeholder: string\r\n onChange: (value: string) => void\r\n}) => {\r\n const inputRef = useRef(null)\r\n const { locale } = useContext(LibraryContext)\r\n const clearLabel = messages[locale]['search_input.clear'] || 'Clear search'\r\n\r\n return (\r\n \r\n \r\n onChange(e.currentTarget.value)}\r\n />\r\n {value ? (\r\n {\r\n onChange('')\r\n inputRef.current?.focus()\r\n }}\r\n >\r\n \r\n \r\n ) : null}\r\n \r\n )\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 sidebarBoxRef = useRef(null)\r\n const {\r\n isEditorPreview,\r\n sidebarSectionHidden,\r\n setSidebarSectionHidden,\r\n sidebarSections,\r\n activeSidebarElement,\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 () =>\r\n filterSidebarCategories(\r\n categories,\r\n searchValue,\r\n methodFilterList,\r\n filterStatus,\r\n locale\r\n ),\r\n [filterStatus, methodFilterList, categories, searchValue, locale]\r\n )\r\n\r\n useLayoutEffect(() => {\r\n if (isHamburgerMenu || !activeSidebarElement) return\r\n const container = sidebarBoxRef.current\r\n if (!container) return\r\n\r\n const tryScroll = () => scrollDesktopSidebarToActiveItem(container)\r\n if (tryScroll()) return\r\n\r\n const observer = new MutationObserver(() => {\r\n if (tryScroll()) observer.disconnect()\r\n })\r\n observer.observe(container, { childList: true, subtree: true })\r\n const timeout = window.setTimeout(() => observer.disconnect(), 1500)\r\n\r\n return () => {\r\n observer.disconnect()\r\n window.clearTimeout(timeout)\r\n }\r\n }, [activeSidebarElement, filteredResult, isHamburgerMenu])\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 {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 \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 {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 memo(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 minHeight: 0,\r\n overflow: 'visible',\r\n borderRight: '1px solid #E7E9EE',\r\n zIndex: '1',\r\n 'body:has(.modal[data-open=\"true\"]) &': {\r\n zIndex: 0,\r\n },\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: '100%',\r\n height: '100%',\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 width: '300px',\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 width: '100%',\r\n height: '100%',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n background: '#FFFFFF',\r\n overflow: 'hidden',\r\n}\r\n\r\nconst sidebarContainerBody: SxStyleProp = {\r\n px: '16px',\r\n}\r\n\r\nconst sidebarContainerHeader: SxStyleProp = {\r\n px: '16px',\r\n}\r\n\r\nconst sidebarContainerTitle: SxStyleProp = {\r\n alignItems: 'center',\r\n minHeight: '52px',\r\n padding: '4px 16px 4px 8px',\r\n borderBottom: '1px solid #E7E9EE',\r\n flexShrink: 0,\r\n position: 'sticky',\r\n top: 0,\r\n zIndex: 2,\r\n 'body:has(.modal[data-open=\"true\"]) &': {\r\n zIndex: 0,\r\n },\r\n background: '#FFFFFF',\r\n px: '16px',\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 sidebarTitleHamburger: SxStyleProp = {\r\n flex: 1,\r\n minWidth: 0,\r\n fontSize: '16px',\r\n lineHeight: '24px',\r\n color: '#4a596b',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n whiteSpace: 'nowrap',\r\n pl: '8px',\r\n}\r\n\r\nconst sidebarTitleIcon: SxStyleProp = {\r\n width: '24px',\r\n height: '24px',\r\n minWidth: '24px',\r\n flexShrink: 0,\r\n color: '#4A596B',\r\n}\r\n\r\nconst sidebarContainerFilterHamburger: SxStyleProp = {\r\n px: '16px',\r\n pt: '16px',\r\n pb: 0,\r\n flexShrink: 0,\r\n background: '#FFFFFF',\r\n}\r\n\r\nconst sidebarContainerBodyHamburger: SxStyleProp = {\r\n px: '8px',\r\n pt: '8px',\r\n pb: 'calc(24px + env(safe-area-inset-bottom, 0px))',\r\n flex: 1,\r\n minHeight: 0,\r\n overflowY: 'auto',\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 paddingRight: '8px',\r\n}\r\n\r\nconst searchInput: SxStyleProp = {\r\n width: 'auto',\r\n flex: '1',\r\n minWidth: 0,\r\n background: '#F4F4F4',\r\n border: '#F4F4F4',\r\n color: '#545454',\r\n fontSize: ['14px'],\r\n outline: 'none',\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 clearButton: SxStyleProp = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: '24px',\r\n height: '24px',\r\n ml: '4px',\r\n padding: 0,\r\n border: 'none',\r\n borderRadius: '50%',\r\n background: 'transparent',\r\n color: '#4A596B',\r\n cursor: 'pointer',\r\n flexShrink: 0,\r\n ':hover': {\r\n background: '#EDEDED',\r\n color: '#142032',\r\n },\r\n}\r\n\r\nconst clearIcon: SxStyleProp = {\r\n width: '14px',\r\n height: '14px',\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 zIndex: 3,\r\n 'body:has(.modal[data-open=\"true\"]) &': {\r\n zIndex: 0,\r\n },\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 width: '40px',\r\n minWidth: '40px',\r\n height: '40px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n color: '#4A596B',\r\n flexShrink: 0,\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 sidebarContainerBodyHamburger,\r\n sidebarContainerFilterHamburger,\r\n sidebarContainerBody,\r\n sidebarContainerHeader,\r\n sidebarContainerTitle,\r\n sidebarTitle,\r\n sidebarTitleHamburger,\r\n sidebarTitleIcon,\r\n sidebarHelpIcon,\r\n searchBox,\r\n searchInput,\r\n searchIcon,\r\n clearButton,\r\n clearIcon,\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 isHamburgerMenu?: boolean\r\n}\r\n\r\nconst SectionFilter = ({\r\n methodFilterList,\r\n setMethodFilter,\r\n isHamburgerMenu = false,\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)}\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 borderRadius: '6px',\r\n boxSizing: 'border-box',\r\n width: '24px',\r\n minWidth: '24px',\r\n height: '24px',\r\n minHeight: '24px',\r\n flexShrink: 0,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n px: 0,\r\n}\r\n\r\nconst text: SxStyleProp = {\r\n fontWeight: '600',\r\n fontSize: '11px',\r\n lineHeight: '14px',\r\n letterSpacing: '0.02em',\r\n whiteSpace: 'nowrap',\r\n}\r\n\r\nconst filled: SxStyleProp = {\r\n border: 'none',\r\n borderRadius: '4px',\r\n width: '48px',\r\n minWidth: '48px',\r\n maxWidth: '48px',\r\n height: '20px',\r\n minHeight: '20px',\r\n px: '3px',\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 filled,\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 origin: string,\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 isFilled = active || origin !== 'filter'\r\n\r\n const categoryStyle: SxStyleProp = isFilled\r\n ? {\r\n ...styles.container,\r\n ...categoryColors,\r\n ...(origin !== 'filter' ? styles.filled : {}),\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): string => method.toUpperCase()\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: '16px',\r\n pt: '8px',\r\n pb: '16px',\r\n mb: '16px',\r\n borderBottom: '1px solid #E7E9EE',\r\n}\r\n\r\nconst containerHamburger: SxStyleProp = {\r\n px: 0,\r\n pt: 0,\r\n pb: '16px',\r\n mb: 0,\r\n borderBottom: '1px solid #E7E9EE',\r\n}\r\n\r\nconst text: SxStyleProp = {\r\n mb: '10px',\r\n}\r\n\r\nconst textHamburger: SxStyleProp = {\r\n mt: 0,\r\n mb: '10px',\r\n fontSize: '12px',\r\n lineHeight: '16px',\r\n letterSpacing: '0.02em',\r\n color: '#4A596B',\r\n}\r\n\r\nconst methodsRow: SxStyleProp = {\r\n flexWrap: 'wrap',\r\n alignItems: 'center',\r\n gap: '8px',\r\n}\r\n\r\nconst methodsRowHamburger: SxStyleProp = methodsRow\r\n\r\nconst methodButton: SxStyleProp = {\r\n flexShrink: 0,\r\n}\r\n\r\nconst categoryHamburger: SxStyleProp = {\r\n mr: 0,\r\n px: '10px',\r\n height: '24px',\r\n minHeight: '24px',\r\n width: 'auto',\r\n minWidth: 'max-content',\r\n flexShrink: 0,\r\n cursor: 'pointer',\r\n borderRadius: '16px',\r\n ':hover': {\r\n border: '1px solid #D8D8E3',\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 lineHeight: '16px',\r\n whiteSpace: 'nowrap',\r\n flexShrink: 0,\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 containerHamburger,\r\n text,\r\n textHamburger,\r\n methodsRow,\r\n methodsRowHamburger,\r\n methodButton,\r\n categoryHamburger,\r\n clear,\r\n}\r\n","import { useRouter } from 'next/router.js'\r\nimport { Fragment, memo, 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 { isInActivePath, styleByLevelNormal, textStyle } from './functions'\r\nimport styles from './styles'\r\nimport { MethodType } from 'utils/typings/types'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { getDocumentationType } from 'utils/navigation-utils'\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 /** When true, the category starts expanded instead of collapsed. */\r\n defaultOpen?: boolean\r\n}\r\n\r\nexport interface SidebarProps {\r\n slugPrefix?: string\r\n items: SidebarElement[]\r\n subItemLevel: number\r\n /** Expand every branch, used while search/method filters are active. */\r\n forceOpen?: boolean\r\n isHamburgerMenu?: boolean\r\n}\r\n\r\nconst SidebarElements = ({\r\n slugPrefix,\r\n items,\r\n subItemLevel,\r\n forceOpen = false,\r\n isHamburgerMenu = false,\r\n}: 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 isElementOpen = (slug: string, defaultOpen?: boolean) =>\r\n forceOpen ||\r\n (sidebarElementStatus.has(slug)\r\n ? sidebarElementStatus.get(slug)\r\n : !!defaultOpen)\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 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 defaultOpen,\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 isOpen = isElementOpen(localizedSlug, defaultOpen)\r\n const pathSuffix = method ? `#${method.toLowerCase()}-${endpoint}` : ''\r\n const activeItem = method ? `${localizedSlug}${pathSuffix}` : localizedSlug\r\n const isActive = activeSidebarElement === activeItem\r\n const isArrowActive = isInActivePath(\r\n { slug, method, endpoint, children },\r\n activeSidebarElement,\r\n locale\r\n )\r\n const documentationType = getDocumentationType(\r\n sidebarDataMaster,\r\n localizedSlug\r\n )\r\n return (\r\n \r\n \r\n {isExpandable ? (\r\n (\r\n \r\n )}\r\n onClick={() => toggleSidebarElementStatus(localizedSlug, isOpen)}\r\n />\r\n ) : (\r\n \r\n )}\r\n {documentationType !== 'category' && documentationType !== '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 ) : documentationType === 'link' ? (\r\n \r\n \r\n {localizedName}\r\n \r\n ) : (\r\n {\r\n toggleSidebarElementStatus(localizedSlug, isOpen)\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, defaultOpen }: 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 && isElementOpen(localizedSlug, defaultOpen) ? (\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 && !isHamburgerMenu ? (\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 memo(SidebarElements)\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst elementContainer: SxStyleProp = {\r\n maxWidth: '100%',\r\n background: '#FFFFFF',\r\n borderRadius: '8px',\r\n ':hover': {\r\n background: '#F8F7FC',\r\n a: {\r\n color: '#142032',\r\n textDecoration: 'none',\r\n },\r\n },\r\n}\r\n\r\nconst elementContainerHamburger: SxStyleProp = {\r\n ...elementContainer,\r\n borderRadius: '8px',\r\n px: '8px',\r\n}\r\n\r\nconst linkReset: SxStyleProp = {\r\n pl: \"1px\",\r\n textDecoration: 'none !important',\r\n ':hover, :focus, :visited, :active': {\r\n textDecoration: 'none !important',\r\n },\r\n}\r\n\r\nconst elementText: SxStyleProp = {\r\n color: '#4A596B',\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n fontWeight: '400',\r\n textAlign: 'initial',\r\n paddingBlock: '8px',\r\n display: 'flex',\r\n alignItems: 'flex-start',\r\n gap: '8px',\r\n flex: 1,\r\n minWidth: 0,\r\n whiteSpace: 'normal',\r\n overflowWrap: 'break-word',\r\n cursor: 'pointer',\r\n ...linkReset,\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 margin: '0',\r\n color: '#A1A8B3',\r\n height: '36px',\r\n minHeight: '36px',\r\n minWidth: '16px',\r\n width: '16px',\r\n maxWidth: '16px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n flexShrink: 0,\r\n}\r\n\r\nconst arrowIconHamburger: SxStyleProp = {\r\n ...arrowIcon,\r\n height: '44px',\r\n minHeight: '44px',\r\n minWidth: '20px',\r\n width: '20px',\r\n maxWidth: '20px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n flexShrink: 0,\r\n color: '#A1A8B3',\r\n}\r\n\r\nconst arrowIconSpacer: SxStyleProp = {\r\n width: '6px',\r\n minWidth: '6px',\r\n maxWidth: '16px',\r\n flexShrink: 0,\r\n}\r\n\r\nconst arrowIconSpacerHamburger: SxStyleProp = {\r\n width: '8px',\r\n minWidth: '8px',\r\n maxWidth: '20px',\r\n flexShrink: 0,\r\n}\r\n\r\nconst nestedGroup: SxStyleProp = {\r\n ml: '8px',\r\n pl: '8px',\r\n borderLeft: '1px solid #E7E9EE',\r\n}\r\n\r\nconst nestedGroupFirst: SxStyleProp = {\r\n pl: '16px',\r\n}\r\n\r\nconst nestedGroupHamburger: SxStyleProp = {\r\n ml: '12px',\r\n pl: '8px',\r\n borderLeft: '1px solid #E7E9EE',\r\n}\r\n\r\nconst nestedGroupHamburgerFirst: SxStyleProp = {\r\n pl: '20px',\r\n}\r\n\r\nconst arrowIconActive: SxStyleProp = {\r\n ...arrowIcon,\r\n color: '#D71D55',\r\n}\r\n\r\nconst arrowIconActiveHamburger: SxStyleProp = {\r\n ...arrowIconHamburger,\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 methodBox: SxStyleProp = {\r\n mr: 0,\r\n flexShrink: 0,\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\nexport default {\r\n elementContainer,\r\n elementContainerHamburger,\r\n elementText,\r\n elementActive,\r\n arrowIcon,\r\n arrowIconHamburger,\r\n arrowIconSpacer,\r\n arrowIconSpacerHamburger,\r\n arrowIconActive,\r\n arrowIconActiveHamburger,\r\n nestedGroup,\r\n nestedGroupFirst,\r\n nestedGroupHamburger,\r\n nestedGroupHamburgerFirst,\r\n elementButton,\r\n methodBox,\r\n sectionDivider,\r\n}\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\nimport styles from './styles'\r\n\r\ntype NestedSidebarNode = {\r\n slug: string | { en: string; pt: string; es: string }\r\n method?: string\r\n endpoint?: string\r\n children: NestedSidebarNode[]\r\n}\r\n\r\nexport const isInActivePath = (\r\n node: NestedSidebarNode,\r\n activeSlug: string,\r\n locale: 'en' | 'pt' | 'es'\r\n): boolean => {\r\n const slug = typeof node.slug === 'string' ? node.slug : node.slug[locale]\r\n const item = node.method\r\n ? `${slug}#${node.method.toLowerCase()}-${node.endpoint}`\r\n : slug\r\n\r\n if (item === activeSlug || slug === activeSlug) return true\r\n\r\n return node.children.some((child) =>\r\n isInActivePath(child, activeSlug, locale)\r\n )\r\n}\r\n\r\nexport const styleByLevelNormal = (isHamburgerMenu = false) => {\r\n const normal: SxStyleProp = {\r\n gap: isHamburgerMenu ? '8px' : '3px',\r\n alignItems: 'flex-start',\r\n ...(isHamburgerMenu\r\n ? {\r\n minHeight: '44px',\r\n alignItems: 'center',\r\n }\r\n : {}),\r\n }\r\n\r\n return normal\r\n}\r\n\r\nexport const textStyle = (\r\n active: boolean,\r\n isHamburgerMenu = false,\r\n isExpandable = false\r\n) => {\r\n const hamburgerText: SxStyleProp = isHamburgerMenu\r\n ? {\r\n fontSize: '15px',\r\n lineHeight: '22px',\r\n paddingBlock: '11px',\r\n minHeight: '44px',\r\n color: active ? '#D71D55' : '#4A596B',\r\n fontWeight: '400',\r\n flex: 1,\r\n minWidth: 0,\r\n whiteSpace: 'normal',\r\n overflowWrap: 'break-word',\r\n alignItems: 'center',\r\n }\r\n : isExpandable\r\n ? {\r\n fontWeight: '500',\r\n }\r\n : {}\r\n\r\n if (active) {\r\n const textStyleActive: SxStyleProp = {\r\n ...styles.elementActive,\r\n ...hamburgerText,\r\n }\r\n return textStyleActive\r\n }\r\n const textStyle: SxStyleProp = {\r\n ...styles.elementText,\r\n ...hamburgerText,\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, useEffect, useRef, useState } from 'react'\r\nimport { useRouter } from 'next/router.js'\r\nimport DocumentationCard from 'components/documentation-card'\r\nimport SidebarSection, { SidebarSectionProps } from 'components/sidebar-section'\r\nimport { updateOpenPage, getSectionLabel } from 'utils/sidebar-utils'\r\nimport { getDocumentationType } from 'utils/navigation-utils'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport MobileSearch from 'components/mobile-search'\r\n\r\nfunction getRouteSlug(slug: string | string[] | undefined): string {\r\n if (typeof slug === 'string') return slug\r\n if (Array.isArray(slug)) return slug[0] ?? ''\r\n return ''\r\n}\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 router = useRouter()\r\n const hamburgerRef = useRef(null)\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 locale,\r\n } = context\r\n\r\n const [userOpenedSection, setUserOpenedSection] = useState(false)\r\n const articleSlug = getRouteSlug(router.query.slug)\r\n const isListedArticle =\r\n parentsArray.length > 0 ||\r\n (Boolean(articleSlug) &&\r\n getDocumentationType(sidebarDataMaster, articleSlug) != null)\r\n const showNestedSidebar =\r\n Boolean(activeSectionName) &&\r\n !sidebarSectionHidden &&\r\n (userOpenedSection || isListedArticle || !articleSlug)\r\n\r\n const closeMenu = () => {\r\n const toggleButton = hamburgerRef.current?.querySelector(\r\n '[aria-expanded=\"true\"]'\r\n )\r\n toggleButton?.click()\r\n }\r\n\r\n const openSection = (sectionId: string) => {\r\n setActiveSectionName(sectionId)\r\n setSidebarSectionHidden(false)\r\n setUserOpenedSection(true)\r\n }\r\n\r\n useEffect(() => {\r\n setUserOpenedSection(false)\r\n }, [articleSlug])\r\n\r\n useEffect(() => {\r\n router.events?.on('routeChangeStart', closeMenu)\r\n router.events?.on('hashChangeStart', closeMenu)\r\n\r\n return () => {\r\n router.events?.off('routeChangeStart', closeMenu)\r\n router.events?.off('hashChangeStart', closeMenu)\r\n }\r\n }, [router.events])\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 {\r\n if (isDocument(sidebarDataMaster, card.id)) {\r\n openSection(card.id)\r\n } else {\r\n setActiveSectionName(card.id)\r\n }\r\n }}\r\n />\r\n \r\n {isDocument(sidebarDataMaster, card.id) ? (\r\n (\r\n \r\n )}\r\n sx={\r\n activeSectionName === card.id && showNestedSidebar\r\n ? styles.arrowIconActive\r\n : styles.arrowIcon\r\n }\r\n onClick={() => openSection(card.id)}\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\n\r\nexport default HamburgerMenu\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst headerActions: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'flex-end',\r\n marginLeft: 'auto',\r\n height: '100%',\r\n width: 'auto',\r\n minWidth: 'auto',\r\n maxWidth: 'none',\r\n flex: '0 0 auto',\r\n color: '#4A596B',\r\n 'button[role=\"presentation\"]': {\r\n display: ['flex', 'flex', 'flex', 'none'],\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n color: '#4A596B',\r\n border: 'none',\r\n borderLeft: 'none',\r\n outline: 'none',\r\n width: '56px',\r\n minWidth: '56px',\r\n maxWidth: '56px',\r\n height: '100%',\r\n padding: 0,\r\n background: 'transparent',\r\n cursor: 'pointer',\r\n flexShrink: 0,\r\n '> div': {\r\n color: '#4A596B',\r\n },\r\n svg: {\r\n color: '#4A596B',\r\n rect: {\r\n fill: '#4A596B',\r\n },\r\n },\r\n ':hover, :focus, :active': {\r\n color: '#4A596B',\r\n background: 'transparent',\r\n '> div': {\r\n color: '#4A596B',\r\n },\r\n svg: {\r\n color: '#4A596B',\r\n rect: {\r\n fill: '#4A596B',\r\n },\r\n },\r\n },\r\n },\r\n}\r\n\r\nconst drawerWidth = ['100%', '280px', '280px']\r\nconst panelWidth = ['100vw', '280px', '280px']\r\n\r\nconst hamburgerContainer: SxStyleProp = {\r\n display: ['flex', 'flex', 'flex', 'none'],\r\n position: 'fixed',\r\n top: ['5rem', 0, 0],\r\n right: 0,\r\n bottom: 0,\r\n left: 0,\r\n marginTop: 0,\r\n paddingBottom: 0,\r\n width: '100%',\r\n height: ['calc(100vh - 5rem)', '100vh', '100vh'],\r\n flexDirection: 'column',\r\n alignItems: ['stretch', 'flex-start', 'flex-start'],\r\n justifyContent: 'flex-start',\r\n backgroundColor: ['#FFFFFF', 'transparent', 'transparent'],\r\n zIndex: [9998, 10000, 10000],\r\n overflow: 'hidden',\r\n '.menuHidden': {\r\n transform: 'translateX(-100%)',\r\n },\r\n}\r\n\r\nconst backdrop: SxStyleProp = {\r\n display: ['none', 'block', 'block'],\r\n position: 'absolute',\r\n top: 0,\r\n right: 0,\r\n bottom: 0,\r\n left: 0,\r\n backgroundColor: 'rgba(20, 32, 50, 0.45)',\r\n backdropFilter: 'blur(4px)',\r\n WebkitBackdropFilter: 'blur(4px)',\r\n cursor: 'pointer',\r\n}\r\n\r\nconst innerHambugerContainer: SxStyleProp = {\r\n padding: '0px',\r\n paddingY: 0,\r\n position: 'relative',\r\n zIndex: 1,\r\n overflowX: 'hidden',\r\n overflowY: 'hidden',\r\n width: drawerWidth,\r\n maxWidth: drawerWidth,\r\n height: '100%',\r\n flexShrink: 0,\r\n backgroundColor: '#FFFFFF',\r\n boxShadow: [\r\n 'none',\r\n '4px 0 24px rgba(20, 32, 50, 0.18)',\r\n '4px 0 24px rgba(20, 32, 50, 0.18)',\r\n ],\r\n}\r\n\r\nconst menuContainer: SxStyleProp = {\r\n display: 'flex',\r\n width: 'max-content',\r\n height: '100%',\r\n}\r\n\r\nconst cardContainer: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n width: panelWidth,\r\n overflowY: 'scroll',\r\n height: ['calc(100vh - 5rem)', '100vh', '100vh'],\r\n paddingBottom: 'env(safe-area-inset-bottom, 0px)',\r\n}\r\n\r\nconst sideMenuContainer: SxStyleProp = {\r\n backgroundColor: '#ffff',\r\n height: ['calc(100vh - 5rem)', '100vh', '100vh'],\r\n width: panelWidth,\r\n overflow: 'hidden',\r\n transform: 'translate(0)',\r\n transition: 'transform .5s cubic-bezier(.4,0,.2,1)',\r\n}\r\n\r\nconst documentationContainer: SxStyleProp = {\r\n px: '8px',\r\n pt: ['12px', '24px', '24px'],\r\n pb: '12px',\r\n}\r\n\r\nconst updatesContainer: SxStyleProp = {\r\n px: '8px',\r\n py: '12px',\r\n borderRadius: '0px 0px 8px 8px',\r\n borderTop: '1px solid #E7E9EE',\r\n}\r\n\r\nconst innerCardContainer: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n gap: '8px',\r\n minHeight: '72px',\r\n width: '100%',\r\n maxWidth: '100%',\r\n overflow: 'hidden',\r\n borderRadius: '12px',\r\n px: '16px',\r\n py: '14px',\r\n ':hover, :active': {\r\n backgroundColor: '#F8F7FC',\r\n },\r\n}\r\n\r\nconst innerCardContent: SxStyleProp = {\r\n flex: 1,\r\n minWidth: 0,\r\n overflow: 'hidden',\r\n}\r\n\r\nconst arrowIcon: SxStyleProp = {\r\n padding: '0',\r\n height: '40px',\r\n width: '40px',\r\n minWidth: '40px',\r\n flexShrink: 0,\r\n color: '#A1A8B3',\r\n}\r\n\r\nconst arrowIconActive: SxStyleProp = {\r\n ...arrowIcon,\r\n color: '#D71D55',\r\n}\r\n\r\nexport default {\r\n headerActions,\r\n menuContainer,\r\n cardContainer,\r\n sideMenuContainer,\r\n documentationContainer,\r\n updatesContainer,\r\n hamburgerContainer,\r\n backdrop,\r\n innerHambugerContainer,\r\n innerCardContainer,\r\n innerCardContent,\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 {\r\n cardContainer,\r\n cardTitle,\r\n cardDescription,\r\n titleContainer,\r\n} from './functions'\r\nimport styles from './styles'\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 isExternalLink?: boolean\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 isExternalLink,\r\n}: CardProps) => {\r\n return (\r\n \r\n \r\n \r\n \r\n {containerType === 'dropdown' ? (\r\n \r\n \r\n \r\n ) : containerType === 'see-also' ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n {title}\r\n \r\n \r\n {description}\r\n \r\n \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 dropdownIcon: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n flexShrink: 0,\r\n width: '36px',\r\n height: '36px',\r\n borderRadius: '8px',\r\n backgroundColor: '#f8f7fc',\r\n transition: 'background-color 0.15s ease',\r\n}\r\n\r\nconst seeAlsoIcon: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n flexShrink: 0,\r\n width: '32px',\r\n height: '32px',\r\n borderRadius: '8px',\r\n backgroundColor: '#F4F5F7',\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 dropdownIcon,\r\n seeAlsoIcon,\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 containerType === 'mobile' ||\r\n containerType === 'see-also'\r\n ? '100%'\r\n : ['324px', '544px', '544px', '544px', '544px', '720px', '1400px']\r\n\r\n const textWidth =\r\n containerType === 'dropdown'\r\n ? '100%'\r\n : containerType === 'mobile'\r\n ? '100%'\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 ...(containerType === 'mobile'\r\n ? {\r\n my: 0,\r\n padding: 0,\r\n borderRadius: 0,\r\n maxWidth: '100%',\r\n overflow: 'hidden',\r\n ':active, :hover': {\r\n borderRadius: 0,\r\n backgroundColor: 'transparent',\r\n },\r\n '.title': {\r\n minWidth: 0,\r\n width: '100%',\r\n },\r\n '.description': {\r\n width: '100%',\r\n maxWidth: '100%',\r\n },\r\n }\r\n : containerType === 'dropdown'\r\n ? {\r\n my: 0,\r\n padding: '12px',\r\n borderRadius: '8px',\r\n boxSizing: 'border-box',\r\n minWidth: 0,\r\n ':active, :hover': {\r\n borderRadius: '8px',\r\n backgroundColor: 'transparent',\r\n '.description': {\r\n color: '#142032',\r\n },\r\n },\r\n ':hover .title, :active .title': {\r\n color: '#142032',\r\n },\r\n '.title, .description': {\r\n width: '100%',\r\n },\r\n }\r\n : containerType === 'see-also'\r\n ? {\r\n my: 0,\r\n width: '100%',\r\n maxWidth: '100%',\r\n minWidth: 0,\r\n height: '100%',\r\n padding: '12px 14px',\r\n borderRadius: '8px',\r\n border: '1px solid #E7E9EE',\r\n boxSizing: 'border-box',\r\n transition:\r\n 'border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease',\r\n ':active, :hover': {\r\n borderRadius: '8px',\r\n borderColor: '#CCCED8',\r\n backgroundColor: '#F8F7FC',\r\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.06)',\r\n '.description': {\r\n color: '#4A596B',\r\n },\r\n },\r\n ':hover .title, :active .title': {\r\n color: '#000711',\r\n },\r\n '.title, .description': {\r\n width: '100%',\r\n },\r\n }\r\n : {\r\n '.title, .description': {\r\n width: textWidth,\r\n },\r\n }),\r\n }\r\n\r\n return cardContainer\r\n}\r\n\r\nconst titleContainer = (containerType: string) => {\r\n const isStacked =\r\n containerType === 'dropdown' ||\r\n containerType === 'mobile' ||\r\n containerType === 'see-also'\r\n\r\n const titleContainer: SxStyleProp = {\r\n ...styles.titleContainer,\r\n marginBottom: isStacked ? 0 : '8px',\r\n ...(isStacked\r\n ? {\r\n alignItems: 'flex-start',\r\n gap: '12px',\r\n }\r\n : {}),\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 ml: 0,\r\n fontSize: '15px',\r\n lineHeight: '22px',\r\n fontWeight: 500,\r\n color: '#142032',\r\n whiteSpace: 'normal',\r\n overflow: 'hidden',\r\n display: '-webkit-box',\r\n WebkitLineClamp: 2,\r\n WebkitBoxOrient: 'vertical',\r\n }\r\n : containerType === 'mobile'\r\n ? {\r\n ml: '0px',\r\n fontSize: '16px',\r\n lineHeight: '22px',\r\n color: '#4a596b',\r\n }\r\n : containerType === 'dropdown'\r\n ? {\r\n ml: 0,\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n fontWeight: 500,\r\n color: '#142032',\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\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\nconst cardDescription = (containerType: string) => {\r\n if (containerType === 'mobile') {\r\n const mobileDescription: SxStyleProp = {\r\n ...styles.description,\r\n ml: '0px',\r\n mt: '4px',\r\n fontSize: '13px',\r\n lineHeight: '18px',\r\n color: '#4A596B',\r\n overflowWrap: 'break-word',\r\n wordBreak: 'break-word',\r\n }\r\n return mobileDescription\r\n }\r\n\r\n if (containerType === 'dropdown') {\r\n const dropdownDescription: SxStyleProp = {\r\n ...styles.description,\r\n ml: 0,\r\n mt: '2px',\r\n fontSize: '12px',\r\n lineHeight: '16px',\r\n color: '#4A596B',\r\n display: '-webkit-box',\r\n WebkitLineClamp: 2,\r\n WebkitBoxOrient: 'vertical',\r\n overflow: 'hidden',\r\n }\r\n return dropdownDescription\r\n }\r\n\r\n if (containerType === 'see-also') {\r\n const seeAlsoDescription: SxStyleProp = {\r\n ...styles.description,\r\n ml: 0,\r\n mt: '2px',\r\n fontSize: '12px',\r\n lineHeight: '16px',\r\n color: '#5E6E84',\r\n }\r\n return seeAlsoDescription\r\n }\r\n\r\n return styles.description\r\n}\r\n\r\nexport { cardContainer, cardTitle, cardDescription, titleContainer }\r\n","import { Box, Flex } from '@vtex/brand-ui'\r\nimport { useContext, useEffect, useState, MouseEvent } from 'react'\r\nimport { useRouter } from 'next/router.js'\r\n\r\nimport SearchInput from 'components/search-input'\r\nimport SearchIcon from 'components/icons/search-icon'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport styles from './styles'\r\n\r\nexport interface MobileSearchProps {\r\n /** Called when the search modal opens, e.g. to close the hamburger menu. */\r\n onOpen?: () => void\r\n}\r\n\r\nconst MobileSearch = ({ onOpen }: MobileSearchProps) => {\r\n const router = useRouter()\r\n const { locale } = useContext(LibraryContext)\r\n const [isOpen, setIsOpen] = useState(false)\r\n\r\n const openLabel =\r\n messages[locale]['search_input.open_search'] ||\r\n messages[locale]['search_input.placeholder'] ||\r\n 'Search'\r\n\r\n const openModal = () => {\r\n onOpen?.()\r\n setIsOpen(true)\r\n }\r\n\r\n const closeModal = () => {\r\n setIsOpen(false)\r\n }\r\n\r\n useEffect(() => {\r\n if (!isOpen) return\r\n\r\n const html = document.documentElement\r\n const previousOverflow = html.style.overflow\r\n html.style.overflow = 'hidden'\r\n\r\n const onKeyDown = (event: KeyboardEvent) => {\r\n if (event.key === 'Escape') closeModal()\r\n }\r\n window.addEventListener('keydown', onKeyDown)\r\n\r\n return () => {\r\n window.removeEventListener('keydown', onKeyDown)\r\n html.style.overflow = previousOverflow\r\n }\r\n }, [isOpen])\r\n\r\n useEffect(() => {\r\n const handleRouteChange = () => closeModal()\r\n router.events?.on('routeChangeStart', handleRouteChange)\r\n router.events?.on('hashChangeStart', handleRouteChange)\r\n return () => {\r\n router.events?.off('routeChangeStart', handleRouteChange)\r\n router.events?.off('hashChangeStart', handleRouteChange)\r\n }\r\n }, [router.events])\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n {isOpen && (\r\n \r\n event.stopPropagation()}\r\n >\r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default MobileSearch\r\n","import { Configure, InstantSearch } from 'react-instantsearch-dom'\r\nimport SearchBox from './search-box'\r\nimport Results from './results-box'\r\nimport { Box, Flex } 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\nimport styles from './styles'\r\nimport { SearchInputVariant } from './types'\r\n\r\nexport type { SearchInputVariant }\r\n\r\nexport interface SearchInputProps {\r\n /** `modal` renders a full-width input with results in the document flow. */\r\n variant?: SearchInputVariant\r\n autoFocus?: boolean\r\n onClose?: () => void\r\n}\r\n\r\nexport default function SearchInput({\r\n variant = 'default',\r\n autoFocus = false,\r\n onClose,\r\n}: SearchInputProps) {\r\n const { locale } = useContext(LibraryContext)\r\n const isModal = variant === 'modal'\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 if (!value) onClose?.()\r\n }\r\n\r\n const searchBox = (\r\n \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 {isModal ? (\r\n \r\n {searchBox}\r\n \r\n \r\n \r\n \r\n ) : (\r\n setfocusOut({ modaltoggle: true })}\r\n ref={resultsBox}\r\n >\r\n {searchBox}\r\n {focusOut.modaltoggle && (\r\n \r\n )}\r\n \r\n )}\r\n \r\n )\r\n}\r\n","import {\r\n useRef,\r\n KeyboardEvent,\r\n MouseEvent,\r\n useContext,\r\n useEffect,\r\n useState,\r\n} from 'react'\r\nimport { useRouter } from 'next/router.js'\r\nimport { Flex, Box } 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 CloseIcon from 'components/icons/close-icon'\r\nimport styles from './styles'\r\nimport { messages } from 'utils/get-message'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { SearchInputVariant } from './types'\r\n\r\ninterface SearchBoxProps extends SearchBoxProvided {\r\n changeFocus: (value: boolean) => void\r\n autoFocus?: boolean\r\n variant?: SearchInputVariant\r\n}\r\n\r\nconst containerStyle = (variant: SearchInputVariant) =>\r\n variant === 'modal' ? styles.searchContainerModal : styles.searchContainer\r\n\r\nconst iconStyle = (variant: SearchInputVariant) =>\r\n variant === 'modal' ? styles.searchIconModal : styles.searchIcon\r\n\r\nconst inputStyle = (variant: SearchInputVariant) =>\r\n variant === 'modal' ? styles.searchInputModal : styles.searchInput\r\n\r\nconst SearchBoxComponent = ({\r\n currentRefinement,\r\n refine,\r\n changeFocus,\r\n autoFocus = false,\r\n variant = 'default',\r\n}: SearchBoxProps) => {\r\n const router = useRouter()\r\n const inputRef = useRef(null)\r\n const { locale } = useContext(LibraryContext)\r\n const [isMac, setIsMac] = useState(false)\r\n\r\n useEffect(() => {\r\n if (autoFocus) inputRef.current?.focus()\r\n }, [autoFocus])\r\n\r\n useEffect(() => {\r\n setIsMac(\r\n /Mac|iPhone|iPad|iPod/.test(\r\n navigator.platform || navigator.userAgent || ''\r\n )\r\n )\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (variant === 'modal') return\r\n\r\n const onKeyDown = (event: globalThis.KeyboardEvent) => {\r\n if (!(event.metaKey || event.ctrlKey) || event.key.toLowerCase() !== 'k') {\r\n return\r\n }\r\n\r\n const target = event.target as HTMLElement | null\r\n if (\r\n target &&\r\n (target.tagName === 'TEXTAREA' || target.isContentEditable)\r\n ) {\r\n return\r\n }\r\n\r\n const input = inputRef.current\r\n if (!input || input.offsetParent === null) return\r\n\r\n event.preventDefault()\r\n input.focus()\r\n changeFocus(true)\r\n }\r\n\r\n window.addEventListener('keydown', onKeyDown)\r\n return () => window.removeEventListener('keydown', onKeyDown)\r\n }, [variant, changeFocus])\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 === 'Escape') {\r\n changeFocus(false)\r\n inputRef.current?.blur()\r\n return\r\n }\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 const handleClear = (e: MouseEvent) => {\r\n e.stopPropagation()\r\n refine('')\r\n inputRef.current?.focus()\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 {currentRefinement ? (\r\n \r\n \r\n \r\n ) : variant === 'default' ? (\r\n \r\n {isMac ? (\r\n \r\n ⌘\r\n \r\n ) : (\r\n \r\n Ctrl\r\n \r\n )}\r\n \r\n K\r\n \r\n \r\n ) : null}\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 searchWidth = ['288px', '458px', '288px', '288px', '416px', '544px']\r\nconst keyboardHintsDisplay = ['none', 'flex', 'flex', 'none', 'flex', 'flex']\r\n\r\nconst resultsInnerContainer: SxStyleProp = {\r\n top: '4px',\r\n position: 'absolute',\r\n width: searchWidth,\r\n border: '1px solid #E7E9EE',\r\n borderRadius: '8px',\r\n background: '#FFFFFF',\r\n boxShadow: '0 12px 32px rgba(20, 32, 50, 0.12)',\r\n overflow: 'hidden',\r\n zIndex: 20,\r\n}\r\n\r\nconst resultsBox: SxStyleProp = {\r\n padding: '8px',\r\n maxHeight: 'min(60vh, 420px)',\r\n overflowY: 'auto',\r\n}\r\n\r\nconst resultsFooter = (hasSeeAll: boolean): SxStyleProp => ({\r\n display: hasSeeAll ? 'flex' : keyboardHintsDisplay,\r\n flexWrap: 'wrap',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n gap: '8px 12px',\r\n padding: ['8px 12px', '8px 16px'],\r\n borderTop: '1px solid #E7E9EE',\r\n background: '#FAFAFB',\r\n})\r\n\r\nconst resultsFooterModal = (hasSeeAll: boolean): SxStyleProp => ({\r\n display: hasSeeAll ? 'flex' : 'none',\r\n alignItems: 'center',\r\n justifyContent: 'flex-end',\r\n padding: '4px 8px 8px',\r\n borderTop: 'none',\r\n background: 'transparent',\r\n})\r\n\r\nconst keyboardHints: SxStyleProp = {\r\n display: keyboardHintsDisplay,\r\n alignItems: 'center',\r\n gap: '12px',\r\n flexWrap: 'wrap',\r\n flex: '1 1 200px',\r\n minWidth: 0,\r\n}\r\n\r\nconst keyboardHint: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '4px',\r\n color: 'muted.1',\r\n fontSize: '12px',\r\n lineHeight: '16px',\r\n whiteSpace: 'nowrap',\r\n}\r\n\r\nconst kbd: SxStyleProp = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n minWidth: '20px',\r\n height: '20px',\r\n px: '5px',\r\n borderRadius: '4px',\r\n border: '1px solid #E7E9EE',\r\n background: '#FFFFFF',\r\n boxShadow: '0 1px 0 #E7E9EE',\r\n fontSize: '11px',\r\n fontFamily: 'inherit',\r\n color: '#4A596B',\r\n lineHeight: '20px',\r\n}\r\n\r\nconst seeAllCaret: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n color: '#D71D55',\r\n flexShrink: 0,\r\n}\r\n\r\nconst seeAll: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: [\r\n 'space-between',\r\n 'flex-start',\r\n 'flex-start',\r\n 'space-between',\r\n 'flex-start',\r\n ],\r\n gap: '4px',\r\n width: ['100%', 'auto', 'auto', '100%', 'auto'],\r\n maxWidth: '100%',\r\n boxSizing: 'border-box',\r\n ml: ['0', 'auto', 'auto', '0', 'auto'],\r\n flex: '0 1 auto',\r\n minWidth: 0,\r\n padding: '6px 10px',\r\n borderRadius: '6px',\r\n color: '#D71D55',\r\n fontSize: '13px',\r\n fontWeight: '600',\r\n lineHeight: '16px',\r\n cursor: 'pointer',\r\n whiteSpace: ['normal', 'nowrap', 'nowrap', 'normal', 'nowrap'],\r\n '& p': {\r\n minWidth: 0,\r\n flex: [1, 'none', 'none', 1, 'none'],\r\n },\r\n ':hover, &[data-active=\"true\"]': {\r\n background: '#F8E3EC',\r\n },\r\n}\r\n\r\nconst hitBox: SxStyleProp = {\r\n position: 'relative',\r\n display: 'flex',\r\n alignItems: 'flex-start',\r\n padding: '10px 12px',\r\n cursor: 'pointer',\r\n borderRadius: '8px',\r\n a: {\r\n minWidth: 0,\r\n flex: 1,\r\n textDecoration: 'none',\r\n color: 'inherit',\r\n },\r\n '.hit-actions': {\r\n opacity: [1, 0],\r\n },\r\n ':hover, &[data-active=\"true\"]': {\r\n backgroundColor: '#F8F7FC',\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 '.hit-icon-wrap': {\r\n backgroundColor: '#EDEAF6',\r\n },\r\n '.hit-actions': {\r\n opacity: 1,\r\n },\r\n },\r\n}\r\n\r\nconst hitLink: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'flex-start',\r\n minWidth: 0,\r\n flex: 1,\r\n textDecoration: 'none',\r\n color: 'inherit',\r\n pr: ['0', '64px'],\r\n}\r\n\r\nconst hitIconWrap: SxStyleProp = {\r\n flexShrink: 0,\r\n width: '32px',\r\n height: '32px',\r\n borderRadius: '8px',\r\n backgroundColor: '#F4F2FA',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n mr: '12px',\r\n mt: '1px',\r\n}\r\n\r\nconst hitIcon: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n color: '#4A596B',\r\n}\r\n\r\nconst hitText: SxStyleProp = {\r\n minWidth: 0,\r\n flex: 1,\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 hitTitle: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n minWidth: 0,\r\n color: '#142032',\r\n fontSize: ['14px', '15px'],\r\n fontWeight: '600',\r\n lineHeight: ['20px', '22px'],\r\n}\r\n\r\nconst hitTitleText: SxStyleProp = {\r\n minWidth: 0,\r\n flex: 1,\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n}\r\n\r\nconst httpMethod: SxStyleProp = {\r\n mr: '8px',\r\n flexShrink: 0,\r\n alignSelf: 'center',\r\n}\r\n\r\nconst hitContent: SxStyleProp = {\r\n color: 'muted.0',\r\n fontSize: ['13px', '16px'],\r\n lineHeight: ['18px', '22px'],\r\n width: '100%',\r\n minWidth: 0,\r\n ...snippetText,\r\n WebkitLineClamp: [3, 4],\r\n}\r\n\r\nconst hitContentSmall: SxStyleProp = {\r\n color: 'muted.1',\r\n fontSize: '13px',\r\n lineHeight: '18px',\r\n width: '100%',\r\n minWidth: 0,\r\n mt: '2px',\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n}\r\n\r\nconst hitActions: SxStyleProp = {\r\n position: ['static', 'absolute'],\r\n top: '8px',\r\n right: '8px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '4px',\r\n ml: ['8px', 0],\r\n flexShrink: 0,\r\n}\r\n\r\nconst hitActionButton: SxStyleProp = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: '28px',\r\n height: '28px',\r\n padding: 0,\r\n border: '1px solid #E7E9EE',\r\n borderRadius: '6px',\r\n background: '#FFFFFF',\r\n color: '#4A596B',\r\n cursor: 'pointer',\r\n ':hover': {\r\n background: '#FFFFFF',\r\n borderColor: '#C7CDD6',\r\n color: '#142032',\r\n },\r\n}\r\n\r\nconst hitActionButtonCopied: SxStyleProp = {\r\n ...hitActionButton,\r\n borderColor: '#8CD2A8',\r\n color: '#36875A',\r\n background: '#F0FAF4',\r\n}\r\n\r\nconst alignCenter: SxStyleProp = {\r\n alignItems: 'center',\r\n}\r\n\r\nconst hitBreadcrumbs: SxStyleProp = {\r\n alignItems: 'center',\r\n minWidth: 0,\r\n mt: '4px',\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 flexShrink: 0,\r\n}\r\n\r\nconst searchInput: SxStyleProp = {\r\n width: '100%',\r\n background: 'none',\r\n border: 'none',\r\n outline: 'none',\r\n color: '#142032',\r\n fontSize: ['14px'],\r\n flex: 1,\r\n minWidth: 0,\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 color: '#5E6E84',\r\n path: {\r\n fill: '#5E6E84',\r\n },\r\n}\r\n\r\nconst searchContainer: SxStyleProp = {\r\n paddingLeft: '12px',\r\n paddingRight: '8px',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n background: '#FFFFFF',\r\n width: searchWidth,\r\n height: '40px',\r\n boxSizing: 'border-box',\r\n borderRadius: '8px',\r\n border: '1px solid #E7E9EE',\r\n transition:\r\n 'background 0.2s ease-out, border-color 0.2s ease-out, box-shadow 0.2s ease-out',\r\n cursor: 'pointer',\r\n 'input[type=\"search\"]::-webkit-search-cancel-button': {\r\n display: 'none',\r\n },\r\n 'input[type=\"search\"]::-webkit-search-decoration': {\r\n display: 'none',\r\n },\r\n ':hover': {\r\n borderColor: '#C7CDD6',\r\n },\r\n ':focus-within': {\r\n background: '#FFFFFF',\r\n borderColor: '#E31C58',\r\n boxShadow: '0 0 0 3px rgba(227, 28, 88, 0.16)',\r\n '[data-search-shortcut]': {\r\n display: 'none',\r\n },\r\n },\r\n}\r\n\r\nconst shortcutHint: SxStyleProp = {\r\n display: ['none', 'flex', 'none', 'none', 'flex', 'flex'],\r\n alignItems: 'center',\r\n gap: '4px',\r\n ml: '8px',\r\n flexShrink: 0,\r\n pointerEvents: 'none',\r\n}\r\n\r\nconst shortcutKbd: SxStyleProp = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n minWidth: '20px',\r\n height: '20px',\r\n px: '5px',\r\n borderRadius: '4px',\r\n border: '1px solid #E7E9EE',\r\n background: '#FAFAFB',\r\n boxShadow: '0 1px 0 #E7E9EE',\r\n fontSize: '11px',\r\n fontFamily: 'inherit',\r\n color: '#4A596B',\r\n lineHeight: '20px',\r\n}\r\n\r\nconst clearButton: SxStyleProp = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: '24px',\r\n height: '24px',\r\n ml: '4px',\r\n padding: 0,\r\n border: 'none',\r\n borderRadius: '50%',\r\n background: 'transparent',\r\n color: '#4A596B',\r\n cursor: 'pointer',\r\n flexShrink: 0,\r\n ':hover': {\r\n background: '#EDEDED',\r\n color: '#142032',\r\n },\r\n}\r\n\r\nconst noResults: SxStyleProp = {\r\n justifyContent: 'center',\r\n alignContent: 'center',\r\n padding: '20px 12px',\r\n color: 'muted.1',\r\n textAlign: 'center',\r\n}\r\n\r\nconst searchContainerModal: SxStyleProp = {\r\n paddingLeft: '16px',\r\n paddingRight: '12px',\r\n alignItems: 'center',\r\n background: 'transparent',\r\n width: '100%',\r\n minHeight: '56px',\r\n borderRadius: 0,\r\n cursor: 'text',\r\n 'input[type=\"search\"]::-webkit-search-cancel-button': {\r\n display: 'none',\r\n },\r\n 'input[type=\"search\"]::-webkit-search-decoration': {\r\n display: 'none',\r\n },\r\n ':hover': {\r\n border: 'none',\r\n },\r\n ':focus-within': {\r\n background: 'transparent',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n}\r\n\r\nconst searchIconModal: SxStyleProp = {\r\n minWidth: '18px',\r\n minHeight: '18px',\r\n width: '18px',\r\n height: '18px',\r\n mr: '12px',\r\n flex: 0,\r\n color: '#A1A8B3',\r\n path: {\r\n fill: '#A1A8B3',\r\n },\r\n}\r\n\r\nconst searchInputModal = {\r\n width: '100%',\r\n background: 'none',\r\n border: 'none',\r\n outline: 'none',\r\n color: '#142032',\r\n fontSize: '16px',\r\n lineHeight: '24px',\r\n flex: 1,\r\n minWidth: 0,\r\n}\r\n\r\nconst modalRoot: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n flex: 1,\r\n minHeight: 0,\r\n maxHeight: 'min(80vh, 640px)',\r\n}\r\n\r\nconst modalSearchBox: SxStyleProp = {\r\n flexShrink: 0,\r\n borderBottom: '1px solid #F0F0F0',\r\n}\r\n\r\nconst modalResults: SxStyleProp = {\r\n flex: 1,\r\n minHeight: 0,\r\n overflowY: 'auto',\r\n}\r\n\r\nconst resultsOuterContainerModal: SxStyleProp = {\r\n position: 'relative',\r\n height: '100%',\r\n}\r\n\r\nconst resultsInnerContainerModal: SxStyleProp = {\r\n position: 'relative',\r\n top: 0,\r\n width: '100%',\r\n border: 'none',\r\n borderRadius: 0,\r\n background: 'transparent',\r\n boxShadow: 'none',\r\n overflow: 'visible',\r\n}\r\n\r\nconst resultsBoxModal: SxStyleProp = {\r\n padding: '8px',\r\n maxHeight: 'none',\r\n overflowY: 'visible',\r\n}\r\n\r\nconst hitBoxModal: SxStyleProp = {\r\n position: 'relative',\r\n display: 'flex',\r\n alignItems: 'flex-start',\r\n padding: '10px 12px',\r\n cursor: 'pointer',\r\n borderRadius: '12px',\r\n a: {\r\n minWidth: 0,\r\n flex: 1,\r\n textDecoration: 'none',\r\n color: 'inherit',\r\n },\r\n ':hover, &[data-active=\"true\"]': {\r\n backgroundColor: '#F4F4F5',\r\n '.hit-content-title': {\r\n color: '#142032',\r\n },\r\n },\r\n}\r\n\r\nconst hitLinkModal: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'flex-start',\r\n minWidth: 0,\r\n flex: 1,\r\n textDecoration: 'none',\r\n color: 'inherit',\r\n pr: 0,\r\n}\r\n\r\nconst hitIconWrapModal: SxStyleProp = {\r\n flexShrink: 0,\r\n width: '24px',\r\n height: '24px',\r\n borderRadius: 0,\r\n backgroundColor: 'transparent',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n mr: '10px',\r\n mt: '2px',\r\n}\r\n\r\nconst hitIconModal: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n color: '#8A8A8A',\r\n}\r\n\r\nconst hitTitleModal: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n minWidth: 0,\r\n color: '#142032',\r\n fontSize: '15px',\r\n fontWeight: '600',\r\n lineHeight: '22px',\r\n}\r\n\r\nconst hitContentHighlighted: SxStyleProp = {\r\n background: '#F8E3EC',\r\n color: '#142032',\r\n borderRadius: '3px',\r\n padding: '0 2px',\r\n fontWeight: '600',\r\n display: 'inline',\r\n}\r\n\r\nexport default {\r\n resultsOuterContainer,\r\n resultsInnerContainer,\r\n resultsBox,\r\n resultsFooter,\r\n resultsFooterModal,\r\n keyboardHints,\r\n keyboardHint,\r\n kbd,\r\n seeAll,\r\n seeAllCaret,\r\n hitBox,\r\n hitLink,\r\n hitIconWrap,\r\n hitIcon,\r\n hitText,\r\n hitContentContainer,\r\n hitTitle,\r\n hitTitleText,\r\n httpMethod,\r\n hitContent,\r\n hitContentSmall,\r\n hitActions,\r\n hitActionButton,\r\n hitActionButtonCopied,\r\n hitBreadcrumbs,\r\n hitBreadCrumb,\r\n hitBreadCrumbIn,\r\n hitBreadCrumbArrow,\r\n searchInput,\r\n searchIcon,\r\n searchContainer,\r\n shortcutHint,\r\n shortcutKbd,\r\n searchContainerModal,\r\n searchIconModal,\r\n searchInputModal,\r\n clearButton,\r\n alignCenter,\r\n noResults,\r\n hitContentHighlighted,\r\n modalRoot,\r\n modalSearchBox,\r\n modalResults,\r\n resultsOuterContainerModal,\r\n resultsInnerContainerModal,\r\n resultsBoxModal,\r\n hitBoxModal,\r\n hitLinkModal,\r\n hitIconWrapModal,\r\n hitIconModal,\r\n hitTitleModal,\r\n}\r\n","import { useRouter } from 'next/router.js'\r\nimport Link from 'next/link.js'\r\nimport { useContext, useEffect, useState, MouseEvent } from 'react'\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 getIconFromSection,\r\n getRelativeURL,\r\n getSearchBreadcrumbs,\r\n getSearchHitMethod,\r\n} from 'utils/search-utils'\r\nimport CustomHighlight, { HighlightQuery } from './customHighlight'\r\nimport styles from './styles'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport CopyIcon from 'components/icons/copy-icon'\r\nimport ExternalLinkIcon from 'components/icons/external-link-icon'\r\nimport PaperIcon from 'components/icons/paper-icon'\r\nimport MethodCategory from 'components/method-category'\r\nimport { SearchInputVariant } from './types'\r\n\r\nconst VISIBLE_HITS = 7\r\nconst VISIBLE_HITS_MODAL = 5\r\n\r\ninterface HitProps {\r\n hit: Hit\r\n insights: WrappedInsightsClient\r\n query?: string\r\n isActive?: boolean\r\n copied?: boolean\r\n variant?: SearchInputVariant\r\n onCopy: (event: MouseEvent, url: string, objectID: string) => void\r\n onOpenNewTab: (event: MouseEvent, url: string) => void\r\n onMouseEnter: () => void\r\n}\r\n\r\ninterface HitsBoxProps extends StateResultsProvided {\r\n changeFocus: (value: boolean) => void\r\n variant?: SearchInputVariant\r\n}\r\n\r\nconst Hit2 = ({\r\n hit,\r\n insights,\r\n query,\r\n isActive,\r\n copied,\r\n variant = 'default',\r\n onCopy,\r\n onOpenNewTab,\r\n onMouseEnter,\r\n}: HitProps) => {\r\n const { sidebarSections, sidebarDataMaster, locale } =\r\n useContext(LibraryContext)\r\n const DocIcon = getIconFromSection(sidebarSections, hit.doctype) || PaperIcon\r\n const title = typeof hit.doctitle === 'string' ? hit.doctitle : ''\r\n const relativeUrl = getRelativeURL(hit.url)\r\n const breadcrumbs = getSearchBreadcrumbs({\r\n hit,\r\n navigation: sidebarDataMaster,\r\n sections: sidebarSections,\r\n locale,\r\n })\r\n const isModal = variant === 'modal'\r\n const method = getSearchHitMethod(hit)\r\n\r\n return (\r\n \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 \r\n \r\n \r\n {title ? (\r\n \r\n {method ? (\r\n \r\n ) : null}\r\n \r\n \r\n \r\n \r\n ) : null}\r\n {!isModal && hit.content ? (\r\n \r\n ) : null}\r\n {typeof hit.doctype === 'string' && (\r\n \r\n {isModal ? (\r\n (breadcrumbs.length\r\n ? breadcrumbs\r\n : [String(hit.doctype)]\r\n ).map((filter: string, index: number) => (\r\n \r\n {index > 0 && (\r\n \r\n )}\r\n \r\n {filter || hit.doctype}\r\n \r\n \r\n ))\r\n ) : (\r\n <>\r\n \r\n {`${messages[locale]['search_card.in'] || 'In'} ${\r\n breadcrumbs[0] || hit.doctype\r\n }`}\r\n \r\n {breadcrumbs\r\n .slice(1)\r\n .map((filter: string, index: number) => (\r\n \r\n \r\n {filter}\r\n \r\n ))}\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {!isModal && (\r\n \r\n \r\n onCopy(event, relativeUrl, hit.objectID)\r\n }\r\n onMouseDown={(event: MouseEvent) => event.preventDefault()}\r\n >\r\n \r\n \r\n onOpenNewTab(event, relativeUrl)}\r\n onMouseDown={(event: MouseEvent) => event.preventDefault()}\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\nconst HitWithInsights = connectHitInsights(aa)(Hit2) as any\r\n\r\nconst HitsBox = connectStateResults(\r\n ({ searchState, searchResults, changeFocus, variant = 'default' }) => {\r\n const router = useRouter()\r\n const { locale } = useContext(LibraryContext)\r\n const [activeIndex, setActiveIndex] = useState(-1)\r\n const [copiedId, setCopiedId] = useState(null)\r\n const isModal = variant === 'modal'\r\n const maxHits = isModal ? VISIBLE_HITS_MODAL : VISIBLE_HITS\r\n\r\n const visibleHits = searchResults\r\n ? searchResults.hits.slice(0, maxHits)\r\n : []\r\n const hasSeeAll = Boolean(\r\n searchResults && searchResults.hits.length > maxHits\r\n )\r\n const itemCount = visibleHits.length + (hasSeeAll ? 1 : 0)\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 const handleCopy = async (\r\n event: MouseEvent,\r\n url: string,\r\n objectID: string\r\n ) => {\r\n event.preventDefault()\r\n event.stopPropagation()\r\n try {\r\n await navigator.clipboard.writeText(`${window.location.origin}${url}`)\r\n setCopiedId(objectID)\r\n } catch {\r\n setCopiedId(null)\r\n }\r\n }\r\n\r\n const handleOpenNewTab = (event: MouseEvent, url: string) => {\r\n event.preventDefault()\r\n event.stopPropagation()\r\n window.open(url, '_blank', 'noopener,noreferrer')\r\n }\r\n\r\n useEffect(() => {\r\n setActiveIndex(-1)\r\n }, [searchState.query])\r\n\r\n useEffect(() => {\r\n if (!copiedId) return\r\n const timeout = window.setTimeout(() => setCopiedId(null), 2000)\r\n return () => window.clearTimeout(timeout)\r\n }, [copiedId])\r\n\r\n useEffect(() => {\r\n const activeHit = document.querySelector('[data-active=\"true\"]')\r\n activeHit?.scrollIntoView({ block: 'nearest' })\r\n }, [activeIndex])\r\n\r\n useEffect(() => {\r\n const onKeyDown = (event: KeyboardEvent) => {\r\n if (event.key === 'Escape') {\r\n changeFocus(false)\r\n return\r\n }\r\n\r\n if (!itemCount) return\r\n\r\n if (event.key === 'ArrowDown') {\r\n event.preventDefault()\r\n setActiveIndex((current) => (current + 1) % itemCount)\r\n } else if (event.key === 'ArrowUp') {\r\n event.preventDefault()\r\n setActiveIndex((current) =>\r\n current <= 0 ? itemCount - 1 : current - 1\r\n )\r\n } else if (event.key === 'Enter' && activeIndex >= 0) {\r\n event.preventDefault()\r\n event.stopPropagation()\r\n if (hasSeeAll && activeIndex === visibleHits.length) {\r\n seeAllSubmit(searchState.query || '')\r\n return\r\n }\r\n const hit = visibleHits[activeIndex]\r\n if (hit) {\r\n router.push(getRelativeURL(hit.url))\r\n changeFocus(false)\r\n }\r\n }\r\n }\r\n\r\n window.addEventListener('keydown', onKeyDown, true)\r\n return () => window.removeEventListener('keydown', onKeyDown, true)\r\n }, [\r\n activeIndex,\r\n changeFocus,\r\n hasSeeAll,\r\n itemCount,\r\n router,\r\n searchState.query,\r\n visibleHits,\r\n ])\r\n\r\n if (isModal && !searchState.query) return null\r\n\r\n return (\r\n <>\r\n {searchResults && (\r\n \r\n \r\n \r\n {visibleHits.map((searchResult, index) => (\r\n changeFocus(false)}\r\n >\r\n setActiveIndex(index)}\r\n />\r\n \r\n ))}\r\n \r\n {searchResults.hits.length > 0 && (\r\n \r\n {!isModal && (\r\n \r\n \r\n \r\n ↑\r\n \r\n \r\n ↓\r\n \r\n \r\n {messages[locale]['search_input.navigate'] ||\r\n 'Navigate'}\r\n \r\n \r\n \r\n \r\n ↵\r\n \r\n \r\n {messages[locale]['search_input.open'] || 'Open'}\r\n \r\n \r\n \r\n \r\n esc\r\n \r\n \r\n {messages[locale]['search_input.close'] || 'Close'}\r\n \r\n \r\n \r\n )}\r\n {hasSeeAll && (\r\n setActiveIndex(visibleHits.length)}\r\n onClick={() => seeAllSubmit(searchState.query || '')}\r\n >\r\n \r\n {messages[locale]['search_input.see_all'] ||\r\n 'See all results'}\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n {!searchResults.hits.length && (\r\n \r\n \r\n {messages[locale]['search_input.empty'] ||\r\n '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, MethodType, 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\nconst HTTP_METHODS: readonly MethodType[] = [\r\n 'POST',\r\n 'GET',\r\n 'PUT',\r\n 'DELETE',\r\n 'PATCH',\r\n]\r\n\r\nconst isMethodType = (value: string): value is MethodType =>\r\n (HTTP_METHODS as readonly string[]).includes(value)\r\n\r\n/** HTTP method badge for API Reference hits, matching the search results page. */\r\nexport const getSearchHitMethod = (hit: Hit): MethodType | undefined => {\r\n const raw = typeof hit.method === 'string' ? hit.method.toUpperCase() : ''\r\n if (isMethodType(raw)) return raw\r\n\r\n const url = typeof hit.url === 'string' ? hit.url : ''\r\n const hash = url.includes('#') ? url.slice(url.indexOf('#') + 1) : ''\r\n const fromHash = hash.split('-')[0]?.toUpperCase() || ''\r\n if (isMethodType(fromHash)) return fromHash\r\n\r\n return undefined\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\r\ntype LocalizedField = string | { en: string; pt: string; es: string }\r\n\r\ntype NavigationNode = {\r\n name?: LocalizedField\r\n slug?: LocalizedField\r\n children?: NavigationNode[]\r\n categories?: NavigationNode[]\r\n documentation?: string\r\n slugPrefix?: string\r\n}\r\n\r\nfunction resolveLocalized(\r\n value: LocalizedField | undefined,\r\n locale: 'en' | 'pt' | 'es'\r\n): string {\r\n if (!value) return ''\r\n if (typeof value === 'string') return value\r\n return value[locale] || value.en || ''\r\n}\r\n\r\nfunction urlMatchesSlug(\r\n relativeUrl: string,\r\n slugPrefix: string,\r\n slug: string\r\n): boolean {\r\n if (!slug) return false\r\n const url = relativeUrl.replace(/\\/$/, '').split('#')[0].split('?')[0]\r\n const expected = `/${slugPrefix}/${slug}`.replace(/\\/{2,}/g, '/')\r\n return url === expected || url.endsWith(expected) || url.endsWith(`/${slug}`)\r\n}\r\n\r\nfunction nodeContainsHit(\r\n node: NavigationNode,\r\n relativeUrl: string,\r\n slugPrefix: string,\r\n locale: 'en' | 'pt' | 'es'\r\n): boolean {\r\n const slug = resolveLocalized(node.slug, locale)\r\n if (slug && urlMatchesSlug(relativeUrl, slugPrefix, slug)) return true\r\n return (node.children || []).some((child) =>\r\n nodeContainsHit(child, relativeUrl, slugPrefix, locale)\r\n )\r\n}\r\n\r\n/**\r\n * Builds search breadcrumbs as [section, parent category, page title].\r\n * API Reference omits the category and uses [section, page title].\r\n */\r\nexport function getSearchBreadcrumbs({\r\n hit,\r\n navigation,\r\n sections,\r\n locale = 'en',\r\n}: {\r\n hit: Hit\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n navigation: any\r\n sections: Section[][]\r\n locale?: 'en' | 'pt' | 'es'\r\n}): string[] {\r\n const sectionTitle = getTitleById(sections, hit.doctype)\r\n const title = typeof hit.doctitle === 'string' ? hit.doctitle : ''\r\n const crumbs = [sectionTitle]\r\n const isApiReference =\r\n String(hit.doctype).toLowerCase() === 'api reference'\r\n\r\n if (isApiReference) {\r\n if (title && title !== sectionTitle) crumbs.push(title)\r\n return crumbs.filter(Boolean)\r\n }\r\n\r\n const relativeUrl = typeof hit.url === 'string' ? getRelativeURL(hit.url) : ''\r\n\r\n const navigationList: NavigationNode[] = Array.isArray(navigation)\r\n ? navigation\r\n : []\r\n const navSection = navigationList.find(\r\n (item) =>\r\n item.documentation === hit.doctype ||\r\n String(item.documentation).toLowerCase() ===\r\n String(hit.doctype).toLowerCase()\r\n )\r\n\r\n let categoryName = ''\r\n if (navSection?.categories?.length) {\r\n const slugPrefix = navSection.slugPrefix || ''\r\n const category = navSection.categories.find((cat) =>\r\n nodeContainsHit(cat, relativeUrl, slugPrefix, locale)\r\n )\r\n categoryName = resolveLocalized(category?.name, locale)\r\n }\r\n\r\n if (!categoryName && typeof hit.doccategory === 'string' && hit.doccategory) {\r\n categoryName = hit.doccategory\r\n }\r\n\r\n if (categoryName && categoryName !== sectionTitle && categoryName !== title) {\r\n crumbs.push(categoryName)\r\n }\r\n\r\n if (title && crumbs[crumbs.length - 1] !== title) {\r\n crumbs.push(title)\r\n }\r\n\r\n return crumbs.filter(Boolean)\r\n}\r\n","import { 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 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\nfunction clipAroundHighlight(\r\n parts: HitHighlightProps[],\r\n maxChars: number\r\n): HitHighlightProps[] {\r\n if (!parts.length) return parts\r\n\r\n const full = parts.map((part) => part.value).join('')\r\n if (full.length <= maxChars) {\r\n return parts.map((part) => ({ ...part }))\r\n }\r\n\r\n const firstHighlight = parts.findIndex((part) => part.isHighlighted)\r\n let start = 0\r\n if (firstHighlight > 0) {\r\n const beforeLength = parts\r\n .slice(0, firstHighlight)\r\n .reduce((sum, part) => sum + part.value.length, 0)\r\n start = Math.max(0, beforeLength - 36)\r\n }\r\n\r\n if (start > 0) {\r\n const space = full.lastIndexOf(' ', start)\r\n if (space >= 0) start = space + 1\r\n }\r\n\r\n let end = Math.min(full.length, start + maxChars)\r\n if (end < full.length) {\r\n const space = full.lastIndexOf(' ', end)\r\n if (space > start) end = space\r\n }\r\n\r\n const result: HitHighlightProps[] = []\r\n let cursor = 0\r\n for (const part of parts) {\r\n const partStart = cursor\r\n const partEnd = cursor + part.value.length\r\n cursor = partEnd\r\n\r\n if (partEnd <= start || partStart >= end) continue\r\n\r\n const sliceFrom = Math.max(0, start - partStart)\r\n const sliceTo = Math.min(part.value.length, end - partStart)\r\n const value = part.value.slice(sliceFrom, sliceTo)\r\n if (!value) continue\r\n result.push({ value, isHighlighted: part.isHighlighted })\r\n }\r\n\r\n if (start > 0 && result.length) {\r\n result[0] = { ...result[0], value: `...${result[0].value}` }\r\n }\r\n if (end < full.length && result.length) {\r\n const last = result[result.length - 1]\r\n result[result.length - 1] = { ...last, value: `${last.value}...` }\r\n }\r\n\r\n return result\r\n}\r\n\r\nexport const HighlightQuery = ({\r\n text,\r\n query,\r\n}: {\r\n text: string\r\n query?: string\r\n}) => {\r\n if (!query?.trim() || !text) return <>{text}\r\n const escaped = query.trim().replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\r\n const regex = new RegExp(`(${escaped})`, 'ig')\r\n const parts = text.split(regex)\r\n const normalizedQuery = query.trim().toLowerCase()\r\n\r\n return (\r\n <>\r\n {parts.map((part, index) =>\r\n part.toLowerCase() === normalizedQuery ? (\r\n \r\n {part}\r\n \r\n ) : (\r\n part\r\n )\r\n )}\r\n \r\n )\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 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 displayParts = clipAroundHighlight(\r\n hitHighlights,\r\n searchPage ? 700 : 160\r\n )\r\n\r\n return (\r\n \r\n \r\n {displayParts.map((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 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 { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst ExternalLinkIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default ExternalLinkIcon\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 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/** Page size for the search results page; more hits load as the user scrolls. */\r\nexport const SEARCH_RESULTS_HITS_PER_PAGE = 100\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, excludedDoctypes } =\r\n 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. Excluded doctypes\r\n // (e.g. `NOT doctype:\"...\"` from `excludeFromSearch`) are dropped\r\n // client-side as well.\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 [fetchedHits, 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 allHits = excludeHitsByDoctype(fetchedHits, excludedDoctypes)\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 excludedDoctypeSet = new Set(\r\n excludedDoctypes.map((d) => d.toLowerCase())\r\n )\r\n const doctypeFacetData: Record = {}\r\n if (cachedCounts) {\r\n HYBRID_DOCTYPE_IDS.forEach((id) => {\r\n if (excludedDoctypeSet.has(id.toLowerCase())) return\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\" AND NOT doctype:\"known-issues\"`),\r\n * 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\n * `NOT doctype:\"...\"` clauses are parsed as exclusions (e.g. sections flagged\r\n * `excludeFromSearch` in the consuming app). Positive `doctype:\"...\"` clauses\r\n * narrow results to a selected tab.\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[]; excludedDoctypes: string[] } {\r\n let locale = ''\r\n const doctypes: string[] = []\r\n const excludedDoctypes: 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 const pushExcludedDoctype = (raw: string) => {\r\n const value = raw.replace(/^\"|\"$/g, '').trim()\r\n if (value && !excludedDoctypes.includes(value)) {\r\n excludedDoctypes.push(value)\r\n }\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 excludedRegex = /NOT\\s+doctype\\s*:\\s*(?:\"([^\"]+)\"|([^\\s)]+))/gi\r\n let excludedMatch: RegExpExecArray | null\r\n while ((excludedMatch = excludedRegex.exec(filtersStr)) !== null) {\r\n pushExcludedDoctype(excludedMatch[1] || excludedMatch[2] || '')\r\n }\r\n\r\n // Strip exclusion clauses before parsing positive doctype selections.\r\n const positiveFiltersStr = filtersStr.replace(\r\n /NOT\\s+doctype\\s*:\\s*(?:\"[^\"]+\"|[^\\s)]+)/gi,\r\n ''\r\n )\r\n const doctypeRegex = /doctype\\s*:\\s*(?:\"([^\"]+)\"|([^\\s)]+))/gi\r\n let m: RegExpExecArray | null\r\n while ((m = doctypeRegex.exec(positiveFiltersStr)) !== 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, excludedDoctypes }\r\n}\r\n\r\nfunction excludeHitsByDoctype(\r\n hits: T[],\r\n excludedDoctypes: string[]\r\n): T[] {\r\n if (!excludedDoctypes.length) return hits\r\n const excluded = new Set(excludedDoctypes.map((d) => d.toLowerCase()))\r\n return hits.filter(\r\n (h) => !excluded.has(String(h.doctype || '').toLowerCase())\r\n )\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 type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst trigger: SxStyleProp = {\r\n display: ['flex', 'flex', 'flex', 'none'],\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: '56px',\r\n minWidth: '56px',\r\n height: '100%',\r\n padding: 0,\r\n border: 'none',\r\n background: 'transparent',\r\n color: '#4A596B',\r\n cursor: 'pointer',\r\n flexShrink: 0,\r\n 'svg path': {\r\n fill: '#4A596B',\r\n },\r\n ':hover': {\r\n color: '#4A596B',\r\n 'svg path': {\r\n fill: '#4A596B',\r\n },\r\n },\r\n}\r\n\r\nconst overlay: SxStyleProp = {\r\n position: 'fixed',\r\n top: 0,\r\n right: 0,\r\n bottom: 0,\r\n left: 0,\r\n zIndex: 10000,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'flex-start',\r\n padding: '16px',\r\n background: 'rgba(20, 32, 50, 0.45)',\r\n backdropFilter: 'blur(4px)',\r\n WebkitBackdropFilter: 'blur(4px)',\r\n overscrollBehavior: 'contain',\r\n}\r\n\r\nconst card: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n width: '100%',\r\n maxWidth: '560px',\r\n maxHeight: 'min(80vh, 640px)',\r\n marginTop: '8px',\r\n background: '#FFFFFF',\r\n borderRadius: '20px',\r\n boxShadow: '0 16px 48px rgba(20, 32, 50, 0.24)',\r\n overflow: 'hidden',\r\n}\r\n\r\nexport default {\r\n trigger,\r\n overlay,\r\n card,\r\n}\r\n","import { Flex, Text } from '@vtex/brand-ui'\r\nimport LikeIcon from 'components/icons/like-icon'\r\nimport LikeSelectedIcon from 'components/icons/like-selected-icon'\r\nimport { useContext, useEffect, 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\nimport SuggestEdits from 'components/suggest-edits'\r\n\r\nconst DEFAULT_FEEDBACK_ENDPOINT = '/api/feedback/'\r\n\r\nexport interface FeedbackSectionProps {\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 /**\r\n * Canonical page URL stored with the vote.\r\n * Defaults to `window.location.href` so Help Center and Developer Portal\r\n * both record the page the user is on.\r\n */\r\n pageUrl?: string\r\n /** Endpoint that receives the like/dislike payload. Defaults to `/api/feedback/`. */\r\n feedbackEndpoint?: string\r\n /** Override the default POST. Receives whether the vote 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\n/** @deprecated Use FeedbackSectionProps */\r\nexport type DocPath = FeedbackSectionProps\r\n\r\nconst postFeedback = async (\r\n liked: boolean,\r\n pageUrl: string,\r\n endpoint: string\r\n) => {\r\n await fetch(endpoint, {\r\n method: 'POST',\r\n body: JSON.stringify({\r\n data: [\r\n new Date().toISOString(),\r\n pageUrl,\r\n liked ? 'positive' : 'negative',\r\n ],\r\n }),\r\n })\r\n}\r\n\r\nconst FeedbackSection = ({\r\n slug,\r\n urlToEdit,\r\n suggestEdits = true,\r\n shareButton = false,\r\n pageUrl,\r\n feedbackEndpoint = DEFAULT_FEEDBACK_ENDPOINT,\r\n sendFeedback,\r\n small = false,\r\n}: FeedbackSectionProps) => {\r\n const [feedback, setFeedback] = useState(undefined)\r\n const { locale } = useContext(LibraryContext)\r\n\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 const resolvedPageUrl =\r\n pageUrl ?? (typeof window !== 'undefined' ? window.location.href : '')\r\n try {\r\n if (sendFeedback) {\r\n await sendFeedback(liked)\r\n } else {\r\n await postFeedback(liked, resolvedPageUrl, feedbackEndpoint)\r\n }\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 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 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 && urlToEdit && (\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 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 disabled: SxStyleProp = {\r\n display: 'none !important',\r\n}\r\n\r\nconst shareButton: SxStyleProp = {}\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 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 { useContext } from 'react'\r\nimport { Link, Text } from '@vtex/brand-ui'\r\nimport type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nimport EditIcon from 'components/icons/edit-icon'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport styles from './styles'\r\n\r\nexport type SuggestEditsProps = {\r\n /** GitHub edit URL for the current documentation file. */\r\n urlToEdit: string\r\n /** Compact size used next to the table of contents. */\r\n small?: boolean\r\n sx?: SxStyleProp\r\n}\r\n\r\nconst SuggestEdits = ({\r\n urlToEdit,\r\n small = false,\r\n sx = {},\r\n}: SuggestEditsProps) => {\r\n const { locale } = useContext(LibraryContext)\r\n const label =\r\n messages[locale]['feedback_section.edit'] || 'Suggest Edits (GitHub)'\r\n\r\n return (\r\n \r\n \r\n {label}\r\n \r\n )\r\n}\r\n\r\nexport default SuggestEdits\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 { SxStyleProp } from '@vtex/brand-ui'\r\n\r\ntype StyleFn = (opts?: { small?: boolean }) => SxStyleProp\r\n\r\nconst container: StyleFn = ({ small } = {}) => ({\r\n alignItems: 'center',\r\n gap: '4px',\r\n fontSize: small ? '12px' : '16px',\r\n lineHeight: '22px',\r\n color: '#4A596B !important',\r\n display: 'flex',\r\n ':hover': {\r\n color: '#000711 !important',\r\n cursor: 'pointer',\r\n },\r\n})\r\n\r\nconst icon: SxStyleProp = {\r\n flexShrink: 0,\r\n}\r\n\r\nexport default { container, icon }\r\n","import { FormEvent, useContext, useEffect, useState } from 'react'\r\nimport { Box, Flex, Text } from '@vtex/brand-ui'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport CheckIcon from 'components/icons/check-icon'\r\nimport CommentIcon from 'components/icons/comment-icon'\r\nimport WarningIcon from 'components/icons/warning-icon'\r\nimport Modal from './modal'\r\nimport styles from './styles'\r\n\r\nconst DEFAULT_FEEDBACK_ENDPOINT = '/api/feedback-google'\r\n\r\nconst FEEDBACK_TYPES = [\r\n {\r\n value: 'Incorrect information',\r\n labelKey: 'feedback_modal.type.incorrect',\r\n },\r\n {\r\n value: 'Page not found',\r\n labelKey: 'feedback_modal.type.page_not_found',\r\n },\r\n {\r\n value: 'Content improvement',\r\n labelKey: 'feedback_modal.type.content_improvement',\r\n },\r\n {\r\n value: 'New documentation',\r\n labelKey: 'feedback_modal.type.new_documentation',\r\n },\r\n {\r\n value: 'Other documentation feedback',\r\n labelKey: 'feedback_modal.type.other',\r\n },\r\n] as const\r\n\r\nexport type FeedbackModalPayload = {\r\n name: string\r\n email: string\r\n type: string\r\n feedback: string\r\n url: string\r\n}\r\n\r\nexport interface FeedbackModalProps {\r\n /**\r\n * Canonical page URL prefilled in the Article field.\r\n * Defaults to `window.location.href` so Help Center and Developer Portal\r\n * both record the page the user is on.\r\n */\r\n pageUrl?: string\r\n /**\r\n * @deprecated Use `pageUrl`.\r\n */\r\n initialMessage?: string\r\n /** Endpoint that receives the form payload. Defaults to `/api/feedback-google`. */\r\n feedbackEndpoint?: string\r\n /** Override the default POST. */\r\n sendFeedback?: (payload: FeedbackModalPayload) => Promise\r\n /** Open the modal on first render. Useful for Storybook. */\r\n defaultOpen?: boolean\r\n}\r\n\r\nconst postFeedback = async (\r\n payload: FeedbackModalPayload,\r\n endpoint: string\r\n) => {\r\n const res = await fetch(endpoint, {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify(payload),\r\n })\r\n if (!res.ok) {\r\n const data = await res.json().catch(() => ({}))\r\n throw new Error(data?.error || 'Failed to send feedback. Try again')\r\n }\r\n}\r\n\r\nconst FeedbackModal = ({\r\n pageUrl,\r\n initialMessage,\r\n feedbackEndpoint = DEFAULT_FEEDBACK_ENDPOINT,\r\n sendFeedback,\r\n defaultOpen = false,\r\n}: FeedbackModalProps) => {\r\n const { locale } = useContext(LibraryContext)\r\n const localizedMessages = messages[locale] ?? messages.en\r\n const [isOpen, setIsOpen] = useState(defaultOpen)\r\n const [submitted, setSubmitted] = useState(false)\r\n const [submitting, setSubmitting] = useState(false)\r\n const [error, setError] = useState(false)\r\n\r\n const handleClose = () => setIsOpen(false)\r\n\r\n const articleUrl =\r\n pageUrl ||\r\n initialMessage ||\r\n (typeof window !== 'undefined' ? window.location.href : '')\r\n\r\n useEffect(() => {\r\n if (isOpen) {\r\n setSubmitted(false)\r\n setSubmitting(false)\r\n setError(false)\r\n }\r\n }, [isOpen])\r\n\r\n async function handleSubmit(event: FormEvent) {\r\n event.preventDefault()\r\n setSubmitting(true)\r\n setError(false)\r\n\r\n const form = event.currentTarget\r\n const formData = new FormData(form)\r\n const payload: FeedbackModalPayload = {\r\n name: String(formData.get('name') || ''),\r\n email: String(formData.get('email') || ''),\r\n type: String(formData.get('type') || 'Other documentation feedback'),\r\n url: String(formData.get('url') || ''),\r\n feedback: String(formData.get('feedback') || ''),\r\n }\r\n\r\n try {\r\n if (sendFeedback) {\r\n await sendFeedback(payload)\r\n } else {\r\n await postFeedback(payload, feedbackEndpoint)\r\n }\r\n form.reset()\r\n setSubmitted(true)\r\n } catch {\r\n setError(true)\r\n } finally {\r\n setSubmitting(false)\r\n }\r\n }\r\n\r\n return (\r\n \r\n setIsOpen(true)}\r\n sx={styles.triggerButton}\r\n >\r\n \r\n {localizedMessages['feedback_modal.button']}\r\n \r\n \r\n {submitted ? (\r\n \r\n \r\n \r\n \r\n \r\n {localizedMessages['feedback_modal.success']}\r\n \r\n \r\n {localizedMessages['feedback_modal.done']}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {error ? (\r\n \r\n \r\n {localizedMessages['feedback_modal.error']}\r\n \r\n ) : null}\r\n\r\n \r\n \r\n {localizedMessages['feedback_modal.article']}\r\n \r\n \r\n \r\n\r\n \r\n \r\n {localizedMessages['feedback_modal.message']}{' '}\r\n \r\n *\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {localizedMessages['feedback_modal.type']}\r\n \r\n \r\n {FEEDBACK_TYPES.map((type) => (\r\n \r\n ))}\r\n \r\n \r\n\r\n \r\n \r\n \r\n {localizedMessages['feedback_modal.name']}\r\n \r\n \r\n \r\n\r\n \r\n \r\n {localizedMessages['feedback_modal.email']}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {localizedMessages['feedback_modal.cancel']}\r\n \r\n \r\n {submitting\r\n ? localizedMessages['feedback_modal.submitting']\r\n : localizedMessages['feedback_modal.submit']}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default FeedbackModal\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst CheckIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n)\r\n\r\nexport default CheckIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst CommentIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n)\r\n\r\nexport default CommentIcon\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 { useEffect, useState, type MouseEvent, type ReactNode } from 'react'\r\nimport { createPortal } from 'react-dom'\r\nimport { Box, Flex, Text } from '@vtex/brand-ui'\r\nimport CloseIcon from 'components/icons/close-icon'\r\nimport styles from './styles'\r\n\r\ninterface ModalProps {\r\n isOpen: boolean\r\n onClose: () => void\r\n title: string\r\n description?: string\r\n closeLabel: string\r\n children: ReactNode\r\n}\r\n\r\nconst Modal = ({\r\n isOpen,\r\n onClose,\r\n title,\r\n description,\r\n closeLabel,\r\n children,\r\n}: ModalProps) => {\r\n const [mounted, setMounted] = useState(false)\r\n\r\n useEffect(() => {\r\n setMounted(true)\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (!isOpen) return\r\n\r\n const html = document.documentElement\r\n const previousOverflow = html.style.overflow\r\n html.style.overflow = 'hidden'\r\n\r\n const onKeyDown = (event: KeyboardEvent) => {\r\n if (event.key === 'Escape') onClose()\r\n }\r\n window.addEventListener('keydown', onKeyDown)\r\n\r\n return () => {\r\n window.removeEventListener('keydown', onKeyDown)\r\n html.style.overflow = previousOverflow\r\n }\r\n }, [isOpen, onClose])\r\n\r\n if (!isOpen || !mounted) return null\r\n\r\n return createPortal(\r\n \r\n ) => e.stopPropagation()}\r\n >\r\n \r\n \r\n \r\n {title}\r\n \r\n \r\n \r\n \r\n \r\n {description ? (\r\n \r\n {description}\r\n \r\n ) : null}\r\n \r\n\r\n {children}\r\n \r\n ,\r\n document.body\r\n )\r\n}\r\n\r\nexport default Modal\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst triggerWrap: SxStyleProp = {\r\n display: 'inline-flex',\r\n flexShrink: 0,\r\n width: 'max-content',\r\n}\r\n\r\nconst triggerButton: SxStyleProp = {\r\n mt: 0,\r\n px: 3,\r\n minHeight: 36,\r\n background: '#fff',\r\n borderRadius: '4px',\r\n cursor: 'pointer',\r\n fontSize: 12,\r\n height: 'min-content',\r\n textTransform: 'none',\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n gap: 3,\r\n width: 'max-content',\r\n maxWidth: '180px',\r\n flexShrink: 0,\r\n whiteSpace: 'nowrap',\r\n color: 'muted.0',\r\n border: '1px solid #E7E9EE',\r\n '&:hover': { backgroundColor: '#F8F7FC', color: '#000711' },\r\n}\r\n\r\nconst wrapContainer: SxStyleProp = {\r\n position: 'fixed',\r\n inset: 0,\r\n backgroundColor: 'rgba(20, 32, 50, 0.45)',\r\n backdropFilter: 'blur(4px)',\r\n WebkitBackdropFilter: 'blur(4px)',\r\n display: 'flex',\r\n alignItems: ['flex-end', 'center'],\r\n justifyContent: 'center',\r\n zIndex: 20000,\r\n padding: ['0', '24px'],\r\n overscrollBehavior: 'contain',\r\n}\r\n\r\nconst innerContainer: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n backgroundColor: '#FFFFFF',\r\n borderRadius: ['20px 20px 0 0', '20px'],\r\n boxShadow: '0 16px 48px rgba(20, 32, 50, 0.24)',\r\n maxWidth: '520px',\r\n width: '100%',\r\n maxHeight: ['92vh', 'min(80vh, 720px)'],\r\n overflow: 'hidden',\r\n position: 'relative',\r\n}\r\n\r\nconst header: SxStyleProp = {\r\n flexShrink: 0,\r\n px: ['20px', '24px'],\r\n pt: ['20px', '24px'],\r\n pb: '16px',\r\n borderBottom: '1px solid #E7E9EE',\r\n}\r\n\r\nconst headerTop: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'flex-start',\r\n justifyContent: 'space-between',\r\n gap: '12px',\r\n}\r\n\r\nconst modalButton: SxStyleProp = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n flexShrink: 0,\r\n width: '32px',\r\n height: '32px',\r\n mt: '-4px',\r\n mr: '-4px',\r\n p: 0,\r\n background: 'transparent',\r\n border: 'none',\r\n borderRadius: '8px',\r\n color: '#4A596B',\r\n cursor: 'pointer',\r\n transition: 'background 0.15s ease, color 0.15s ease',\r\n ':hover': {\r\n background: '#F4F4F5',\r\n color: '#142032',\r\n },\r\n ':focus-visible': {\r\n outline: '2px solid #E31C58',\r\n outlineOffset: '2px',\r\n },\r\n}\r\n\r\nconst modalTitle: SxStyleProp = {\r\n fontSize: ['18px', '20px'],\r\n fontWeight: '600',\r\n lineHeight: ['24px', '28px'],\r\n letterSpacing: '-0.02em',\r\n color: '#142032',\r\n pr: '8px',\r\n}\r\n\r\nconst modalDescription: SxStyleProp = {\r\n mt: '6px',\r\n color: '#4A596B',\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n}\r\n\r\nconst body: SxStyleProp = {\r\n flex: 1,\r\n minHeight: 0,\r\n overflowY: 'auto',\r\n px: ['20px', '24px'],\r\n py: ['20px', '24px'],\r\n}\r\n\r\nconst form: SxStyleProp = {\r\n display: 'grid',\r\n gap: '16px',\r\n}\r\n\r\nconst field: SxStyleProp = {\r\n display: 'grid',\r\n gap: '6px',\r\n minWidth: 0,\r\n}\r\n\r\nconst row: SxStyleProp = {\r\n display: 'grid',\r\n gridTemplateColumns: ['1fr', '1fr 1fr'],\r\n gap: '12px',\r\n}\r\n\r\nconst label: SxStyleProp = {\r\n fontSize: '13px',\r\n fontWeight: '600',\r\n lineHeight: '18px',\r\n color: '#142032',\r\n}\r\n\r\nconst requiredMark: SxStyleProp = {\r\n color: '#E31C58',\r\n}\r\n\r\nconst control: SxStyleProp = {\r\n width: '100%',\r\n minWidth: 0,\r\n boxSizing: 'border-box',\r\n padding: '10px 12px',\r\n border: '1px solid #E7E9EE',\r\n borderRadius: '8px',\r\n background: '#FFFFFF',\r\n color: '#142032',\r\n fontFamily: 'inherit',\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n outline: 'none',\r\n transition:\r\n 'border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease',\r\n '::placeholder': {\r\n color: '#A1A8B3',\r\n },\r\n ':hover': {\r\n borderColor: '#C7CDD6',\r\n },\r\n ':focus': {\r\n borderColor: '#E31C58',\r\n boxShadow: '0 0 0 3px rgba(227, 28, 88, 0.16)',\r\n },\r\n}\r\n\r\nconst input: SxStyleProp = {\r\n ...control,\r\n height: '40px',\r\n}\r\n\r\nconst inputMuted: SxStyleProp = {\r\n ...input,\r\n background: '#FAFAFB',\r\n color: '#4A596B',\r\n fontSize: '13px',\r\n}\r\n\r\nconst textarea: SxStyleProp = {\r\n ...control,\r\n minHeight: '120px',\r\n resize: 'vertical',\r\n}\r\n\r\nconst dropdownMenu: SxStyleProp = {\r\n ...input,\r\n appearance: 'none',\r\n WebkitAppearance: 'none',\r\n cursor: 'pointer',\r\n paddingRight: '36px',\r\n backgroundImage: `url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%234A596B' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\")`,\r\n backgroundRepeat: 'no-repeat',\r\n backgroundPosition: 'right 12px center',\r\n}\r\n\r\nconst actions: SxStyleProp = {\r\n display: 'flex',\r\n gap: '8px',\r\n alignItems: 'center',\r\n justifyContent: 'flex-end',\r\n pt: '8px',\r\n}\r\n\r\nconst cancelButton: SxStyleProp = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n minHeight: '40px',\r\n px: '16px',\r\n background: 'transparent',\r\n color: '#4A596B',\r\n border: '1px solid #E7E9EE',\r\n borderRadius: '8px',\r\n cursor: 'pointer',\r\n fontFamily: 'inherit',\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '20px',\r\n transition:\r\n 'background 0.15s ease, color 0.15s ease, border-color 0.15s ease',\r\n ':hover': {\r\n background: '#F8F7FC',\r\n color: '#142032',\r\n borderColor: '#C7CDD6',\r\n },\r\n ':focus-visible': {\r\n outline: '2px solid #E31C58',\r\n outlineOffset: '2px',\r\n },\r\n}\r\n\r\nconst submitButton: SxStyleProp = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n minHeight: '40px',\r\n px: '16px',\r\n background: '#142032',\r\n color: '#FFFFFF',\r\n border: 'none',\r\n borderRadius: '8px',\r\n cursor: 'pointer',\r\n fontFamily: 'inherit',\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '20px',\r\n transition: 'background 0.15s ease, opacity 0.15s ease',\r\n ':hover': {\r\n background: '#000711',\r\n },\r\n ':disabled': {\r\n opacity: 0.6,\r\n cursor: 'not-allowed',\r\n },\r\n ':focus-visible': {\r\n outline: '2px solid #142032',\r\n outlineOffset: '2px',\r\n },\r\n}\r\n\r\nconst feedbackErrorText: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'flex-start',\r\n gap: '8px',\r\n padding: '12px 14px',\r\n background: '#FFF6F4',\r\n border: '1px solid #F8D0C8',\r\n borderRadius: '8px',\r\n color: '#8A1F11',\r\n fontSize: '13px',\r\n lineHeight: '18px',\r\n}\r\n\r\nconst errorIcon: SxStyleProp = {\r\n flexShrink: 0,\r\n width: '16px',\r\n height: '16px',\r\n mt: '1px',\r\n color: '#D44333',\r\n}\r\n\r\nconst successState: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n textAlign: 'center',\r\n py: ['16px', '24px'],\r\n px: '8px',\r\n gap: '12px',\r\n}\r\n\r\nconst successIconWrap: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: '48px',\r\n height: '48px',\r\n borderRadius: '50%',\r\n background: '#F0FAF4',\r\n color: '#36875A',\r\n}\r\n\r\nconst successTitle: SxStyleProp = {\r\n fontSize: '16px',\r\n fontWeight: '600',\r\n lineHeight: '22px',\r\n color: '#142032',\r\n maxWidth: '320px',\r\n}\r\n\r\nexport default {\r\n triggerWrap,\r\n triggerButton,\r\n wrapContainer,\r\n innerContainer,\r\n header,\r\n headerTop,\r\n modalButton,\r\n modalTitle,\r\n modalDescription,\r\n body,\r\n form,\r\n field,\r\n row,\r\n label,\r\n requiredMark,\r\n input,\r\n inputMuted,\r\n textarea,\r\n dropdownMenu,\r\n actions,\r\n cancelButton,\r\n submitButton,\r\n feedbackErrorText,\r\n errorIcon,\r\n successState,\r\n successIconWrap,\r\n successTitle,\r\n}\r\n","import { 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\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\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 && !item.excludeFromSearch)\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\nimport { getSectionLabel } from 'utils/sidebar-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, sidebarDataMaster } = 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 countsLoaded = Object.keys(ocurrenceCount).length > 0\r\n const count = countsLoaded\r\n ? ocurrenceCount[dataElement.id] ?? 0\r\n : 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 {getSectionLabel(dataElement, sidebarDataMaster, locale)}\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: '32px',\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 SEARCH_RESULTS_HITS_PER_PAGE,\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, sidebarSections } = useContext(LibraryContext)\r\n const excludedDoctypesFilter = sidebarSections\r\n .flat()\r\n .filter((section) => section.excludeFromSearch)\r\n .map((section) => `NOT doctype:\"${section.id}\"`)\r\n .join(' AND ')\r\n const filters = [\r\n `language:${locale}`,\r\n filterSelectedSection ? `doctype:\"${filterSelectedSection}\"` : '',\r\n excludedDoctypesFilter,\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 \r\n {formatSearchTabCount(ocurrenceCount[filterSelectedSection]) ?? ''}\r\n \r\n {` ${messages[locale]['search_results.results_for'] || 'results for'} `}\r\n \r\n {`“${router.query.keyword}”`}\r\n \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 getSearchBreadcrumbs,\r\n getSearchHitMethod,\r\n} from 'utils/search-utils'\r\nimport { Box, Flex, Text } from '@vtex/brand-ui'\r\nimport { SearchContext } from 'utils/context/search'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport resultsStyles from 'components/search-results/styles'\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, sidebarDataMaster, locale } =\r\n useContext(LibraryContext)\r\n const breadcrumbs = getSearchBreadcrumbs({\r\n hit,\r\n navigation: sidebarDataMaster,\r\n sections: sidebarSections,\r\n locale,\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 const { locale } = useContext(LibraryContext)\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((entries) => {\r\n entries.forEach((entry) => {\r\n if (entry.isIntersecting && hasMore) {\r\n refineNext()\r\n }\r\n })\r\n })\r\n\r\n const sentinel = scrollRef.current\r\n if (sentinel) observer.observe(sentinel)\r\n return () => {\r\n observer.disconnect()\r\n }\r\n }, [hasMore, refineNext])\r\n\r\n return (\r\n \r\n \r\n {filteredResult.length === 0 && (\r\n \r\n \r\n {messages[locale]['search_input.empty'] ||\r\n 'No results found. Try different search terms.'}\r\n \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\nimport { useContext, useEffect, useState, MouseEvent } from 'react'\r\nimport { useRouter } from 'next/router.js'\r\nimport Link from 'next/link.js'\r\nimport { Hit } from 'react-instantsearch-core'\r\n\r\nimport styles from './styles'\r\nimport CustomHighlight, {\r\n HighlightQuery,\r\n} from 'components/search-input/customHighlight'\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 CopyIcon from 'components/icons/copy-icon'\r\nimport ExternalLinkIcon from 'components/icons/external-link-icon'\r\nimport PaperIcon from 'components/icons/paper-icon'\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 [copied, setCopied] = useState(false)\r\n const { locale } = useContext(LibraryContext)\r\n const router = useRouter()\r\n const query = String(router.query.keyword ?? '')\r\n const DocIcon = Icon || PaperIcon\r\n const displayTitle =\r\n title === 'overview' && hit.doccategory\r\n ? `${hit.doccategory} ${title}`\r\n : title\r\n const crumbs = (breadcrumbs || []).filter(\r\n (crumb): crumb is string => Boolean(crumb)\r\n )\r\n\r\n useEffect(() => {\r\n if (!copied) return\r\n const timeout = window.setTimeout(() => setCopied(false), 2000)\r\n return () => window.clearTimeout(timeout)\r\n }, [copied])\r\n\r\n const handleCopy = async (event: MouseEvent) => {\r\n event.preventDefault()\r\n event.stopPropagation()\r\n try {\r\n await navigator.clipboard.writeText(`${window.location.origin}${url}`)\r\n setCopied(true)\r\n } catch {\r\n setCopied(false)\r\n }\r\n }\r\n\r\n const handleOpenNewTab = (event: MouseEvent) => {\r\n event.preventDefault()\r\n event.stopPropagation()\r\n window.open(url, '_blank', 'noopener,noreferrer')\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {method ? (\r\n \r\n ) : null}\r\n \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 {crumbs.length > 0 ? (\r\n \r\n \r\n {messages[locale]['search_card.in'] || 'In'}\r\n \r\n {crumbs.map((breadcrumb, index) => (\r\n \r\n \r\n {breadcrumb}\r\n \r\n {index < crumbs.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 \r\n \r\n \r\n \r\n \r\n event.preventDefault()}\r\n >\r\n \r\n \r\n event.preventDefault()}\r\n >\r\n \r\n \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\n\r\nconst container: SxStyleProp = {\r\n position: 'relative',\r\n flexWrap: ['wrap', 'nowrap'],\r\n justifyContent: 'space-between',\r\n alignItems: 'flex-start',\r\n borderRadius: ['8px', '12px'],\r\n border: '1px solid #E7E9EE',\r\n width: '100%',\r\n minWidth: 0,\r\n mb: ['12px', '16px'],\r\n padding: ['14px 16px', '20px 24px'],\r\n background: '#FFFFFF',\r\n cursor: 'pointer',\r\n a: {\r\n minWidth: 0,\r\n flex: ['1 1 100%', '1 1 auto'],\r\n textDecoration: 'none',\r\n color: 'inherit',\r\n },\r\n '.search-card-actions': {\r\n opacity: [1, 0],\r\n },\r\n}\r\n\r\nconst containerActive: SxStyleProp = {\r\n ...container,\r\n ':hover': {\r\n background: '#F8F7FC',\r\n borderColor: '#D8D8E3',\r\n '.searchCardTitle, .searchCardDescription': {\r\n color: '#142032',\r\n },\r\n '.search-card-icon': {\r\n '> path': {\r\n stroke: '#000711',\r\n },\r\n },\r\n '.search-card-icon-wrap': {\r\n backgroundColor: '#EDEAF6',\r\n },\r\n '.search-card-actions': {\r\n opacity: 1,\r\n },\r\n },\r\n}\r\n\r\nconst cardBody: SxStyleProp = {\r\n alignItems: 'flex-start',\r\n minWidth: 0,\r\n width: '100%',\r\n}\r\n\r\nconst cardText: SxStyleProp = {\r\n minWidth: 0,\r\n flex: 1,\r\n}\r\n\r\nconst iconWrap: SxStyleProp = {\r\n flexShrink: 0,\r\n width: ['32px', '36px'],\r\n height: ['32px', '36px'],\r\n borderRadius: '8px',\r\n backgroundColor: '#F4F2FA',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n mr: ['10px', '12px'],\r\n mt: '2px',\r\n}\r\n\r\nconst title: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexWrap: 'wrap',\r\n fontSize: ['15px', '18px'],\r\n fontWeight: '600',\r\n lineHeight: ['20px', '24px'],\r\n color: '#142032',\r\n}\r\n\r\nconst titleText: SxStyleProp = {\r\n minWidth: 0,\r\n flex: 1,\r\n display: 'inline',\r\n whiteSpace: 'normal',\r\n overflowWrap: 'break-word',\r\n wordBreak: 'break-word',\r\n}\r\n\r\nconst httpMethod: SxStyleProp = {\r\n mr: '8px',\r\n flexShrink: 0,\r\n alignSelf: 'center',\r\n}\r\n\r\nconst icon: SxStyleProp = {\r\n width: '18px',\r\n height: '18px',\r\n color: '#4A596B',\r\n path: {\r\n stroke: '#4A596B',\r\n },\r\n}\r\n\r\nconst description: SxStyleProp = {\r\n fontSize: ['13px', '16px'],\r\n lineHeight: ['18px', '22px'],\r\n color: 'muted.0',\r\n mt: '6px',\r\n mb: ['6px', '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: [3, 4],\r\n WebkitBoxOrient: 'vertical',\r\n}\r\n\r\nconst descriptionToggle: SxStyleProp = {\r\n height: 'auto',\r\n minWidth: 'auto',\r\n cursor: 'pointer',\r\n}\r\n\r\nconst descriptionExpandedItem: SxStyleProp = {\r\n mt: '24px',\r\n}\r\n\r\nconst breadcrumbsContainer: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n minWidth: 0,\r\n maxWidth: '100%',\r\n overflow: 'hidden',\r\n}\r\n\r\nconst alignCenter: SxStyleProp = {\r\n alignItems: 'center',\r\n minWidth: 0,\r\n flexShrink: 1,\r\n}\r\n\r\nconst documentation: SxStyleProp = {\r\n ...alignCenter,\r\n minWidth: 0,\r\n maxWidth: ['46%', 'none'],\r\n flexShrink: 0,\r\n}\r\n\r\nconst breadcrumb: SxStyleProp = {\r\n color: 'muted.1',\r\n fontSize: ['12px', '14px'],\r\n lineHeight: ['16px', '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 flexShrink: 0,\r\n}\r\n\r\nconst actionContainer: SxStyleProp = {\r\n alignItems: 'center',\r\n mt: '8px',\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\nconst cardToolbar: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: ['flex-end', 'flex-start'],\r\n gap: '8px',\r\n width: ['100%', 'auto'],\r\n mt: ['8px', 0],\r\n ml: [0, '8px'],\r\n flexShrink: 0,\r\n}\r\n\r\nconst cardActions: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '4px',\r\n}\r\n\r\nconst actionButton: SxStyleProp = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: ['28px', '32px'],\r\n height: ['28px', '32px'],\r\n padding: 0,\r\n border: '1px solid #E7E9EE',\r\n borderRadius: '6px',\r\n background: '#FFFFFF',\r\n color: '#4A596B',\r\n cursor: 'pointer',\r\n ':hover': {\r\n background: '#FFFFFF',\r\n borderColor: '#C7CDD6',\r\n color: '#142032',\r\n },\r\n}\r\n\r\nconst actionButtonCopied: SxStyleProp = {\r\n ...actionButton,\r\n borderColor: '#8CD2A8',\r\n color: '#36875A',\r\n background: '#F0FAF4',\r\n}\r\n\r\nexport default {\r\n containerActive,\r\n cardBody,\r\n cardText,\r\n iconWrap,\r\n title,\r\n titleText,\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 cardToolbar,\r\n cardActions,\r\n actionButton,\r\n actionButtonCopied,\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: ['100%', '100%', '544px', '544px', '720px', '720px', '1400px'],\r\n maxWidth: '100%',\r\n boxSizing: 'border-box',\r\n px: ['16px', '24px', 0, 0, 0, 0, 0],\r\n paddingTop: ['12px', '16px', '24px', '32px'],\r\n paddingBottom: ['24px', '24px', '24px', '32px'],\r\n overflowX: 'hidden',\r\n hr: {\r\n marginTop: '16px',\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: ['12px', '12px', '16px'],\r\n fontSize: ['13px', '14px', '16px'],\r\n lineHeight: ['18px', '20px', '22px'],\r\n color: 'muted.0',\r\n display: 'block',\r\n}\r\n\r\nconst resultCount: SxStyleProp = {\r\n fontWeight: '600',\r\n color: '#142032',\r\n}\r\n\r\nconst resultKeyword: SxStyleProp = {\r\n fontWeight: '600',\r\n color: '#142032',\r\n background: '#F8E3EC',\r\n borderRadius: '4px',\r\n px: '6px',\r\n py: '1px',\r\n wordBreak: 'break-word',\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: ['24px 8px', '12px'],\r\n textAlign: 'center',\r\n}\r\n\r\nconst hitListItem: SxStyleProp = {\r\n width: '100%',\r\n minWidth: 0,\r\n}\r\n\r\nexport default {\r\n resultContainer,\r\n resultText,\r\n resultCount,\r\n resultKeyword,\r\n paginationContainer,\r\n paginationLink,\r\n paginationLinkDisabled,\r\n paginationNumber,\r\n paginationActualNumber,\r\n noResults,\r\n hitListItem,\r\n}\r\n","import { useContext, useEffect } 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\nimport { getSectionLabel } from 'utils/sidebar-utils'\r\nimport { IconComponent } from 'utils/typings/types'\r\n\r\nconst hasFilterResults = (\r\n ocurrenceCount: Record,\r\n filter: string\r\n) => {\r\n const count = ocurrenceCount[filter]\r\n return typeof count === 'number' && count > 0\r\n}\r\n\r\nconst SearchFilterTab = ({\r\n filter,\r\n label,\r\n Icon,\r\n}: {\r\n filter: string\r\n label?: string\r\n Icon?: IconComponent\r\n}) => {\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 formattedCount = formatSearchTabCount(count)\r\n const isActive = filterSelectedSection === filter\r\n\r\n return (\r\n changeFilterSelectedSection(filter)}\r\n data-testid=\"doctype-filter-tab\"\r\n data-filter={filter}\r\n data-active={String(isActive)}\r\n >\r\n {Icon ? : null}\r\n \r\n {filter === ''\r\n ? messages[locale]['search_results.all'] || 'All results'\r\n : label || filter}\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, sidebarDataMaster, locale } =\r\n useContext(LibraryContext)\r\n const { ocurrenceCount, filterSelectedSection, changeFilterSelectedSection } =\r\n useContext(SearchContext)\r\n const countsLoaded = Object.keys(ocurrenceCount).length > 0\r\n const visibleSections = sidebarSections\r\n .flat()\r\n .filter((section) => !section.isExternalLink && !section.excludeFromSearch)\r\n .filter(\r\n (section) => !countsLoaded || hasFilterResults(ocurrenceCount, section.id)\r\n )\r\n\r\n useEffect(() => {\r\n if (!countsLoaded || !filterSelectedSection) return\r\n if (!hasFilterResults(ocurrenceCount, filterSelectedSection)) {\r\n changeFilterSelectedSection('')\r\n }\r\n }, [\r\n countsLoaded,\r\n filterSelectedSection,\r\n ocurrenceCount,\r\n changeFilterSelectedSection,\r\n ])\r\n\r\n return (\r\n \r\n \r\n {visibleSections.map((section) => (\r\n \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 flexWrap: 'wrap',\r\n alignItems: 'center',\r\n gap: '8px',\r\n px: ['16px', '24px'],\r\n pt: ['12px', '16px'],\r\n pb: ['4px', '8px'],\r\n}\r\n\r\nconst tab: (active: boolean) => SxStyleProp = (active) => ({\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n gap: '6px',\r\n height: '32px',\r\n minHeight: '32px',\r\n px: '12px',\r\n py: 0,\r\n borderRadius: '16px',\r\n border: `1px solid ${active ? '#F8E3EC' : '#E7E9EE'}`,\r\n backgroundColor: active ? '#F8E3EC' : '#FFFFFF',\r\n cursor: 'pointer',\r\n minWidth: 'max-content',\r\n ':hover': {\r\n borderColor: active ? '#F8E3EC' : '#D8D8E3',\r\n backgroundColor: active ? '#F8E3EC' : '#F8F7FC',\r\n },\r\n})\r\n\r\nconst tabIcon: (active: boolean) => SxStyleProp = (active) => ({\r\n width: '14px',\r\n height: '14px',\r\n minWidth: '14px',\r\n minHeight: '14px',\r\n color: active ? '#D71D55' : '#4A596B',\r\n flexShrink: 0,\r\n})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '13px',\r\n fontWeight: active ? '600' : '500',\r\n lineHeight: '16px',\r\n whiteSpace: 'nowrap',\r\n color: active ? '#D71D55' : '#4A596B',\r\n})\r\n\r\nconst tabCount: (active: boolean) => SxStyleProp = (active) => ({\r\n px: '6px',\r\n fontSize: '11px',\r\n fontWeight: '500',\r\n lineHeight: '16px',\r\n borderRadius: '24px',\r\n backgroundColor: active ? '#FFFFFF' : '#EDEAF6',\r\n color: active ? '#D71D55' : '#4A596B',\r\n})\r\n\r\nexport default { container, tab, tabIcon, tabTitle, tabCount }\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst body: SxStyleProp = {\r\n background: '#FFFFFF',\r\n justifyContent: 'center',\r\n px: [0, 0, 0, '16px'],\r\n}\r\n\r\nexport default {\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 { 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 { useCallback, useState, useRef, useEffect } from 'react'\r\nimport copy from 'copy-text-to-clipboard'\r\nimport { Box, Button, Icon } from '@vtex/brand-ui'\r\nimport type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nimport styles from './styles'\r\n\r\nexport type CopyButtonProps = {\r\n code: string\r\n sx?: SxStyleProp\r\n}\r\n\r\nconst CopyButton = ({ code, sx }: CopyButtonProps): JSX.Element => {\r\n const [isCopied, setIsCopied] = useState(false)\r\n const copyTimeout = useRef(undefined)\r\n const handleCopyCode = useCallback(() => {\r\n copy(code)\r\n setIsCopied(true)\r\n copyTimeout.current = window.setTimeout(() => {\r\n setIsCopied(false)\r\n }, 1000)\r\n }, [code])\r\n\r\n useEffect(() => () => window.clearTimeout(copyTimeout.current), [])\r\n\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\nexport default CopyButton\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst basicButton: SxStyleProp = {\r\n float: 'right',\r\n ':focus': {\r\n outline: 'none !important',\r\n boxShadow: 'none !important',\r\n },\r\n width: '28px',\r\n height: '28px',\r\n padding: '6px',\r\n marginX: '18px',\r\n}\r\n\r\nconst copyButton: SxStyleProp = {\r\n ...basicButton,\r\n backgroundColor: '#E7E9EE',\r\n}\r\nconst copyButtonCopied: SxStyleProp = {\r\n ...basicButton,\r\n backgroundColor: '#E6F2E6',\r\n}\r\n\r\nconst copyButtonIcons: SxStyleProp = {\r\n position: 'relative',\r\n width: '16px',\r\n height: '16px',\r\n}\r\n\r\nconst copyButtonIcon: SxStyleProp = {\r\n position: 'absolute',\r\n top: '0',\r\n left: '0',\r\n fill: '#142032',\r\n opacity: 'inherit',\r\n width: 'inherit',\r\n height: 'inherit',\r\n transition: 'all 0.15s ease',\r\n}\r\n\r\nconst copyButtonSuccessIcon: SxStyleProp = {\r\n ...copyButtonIcon,\r\n top: '50%',\r\n left: '50%',\r\n transform: 'translate(-50%, -50%)',\r\n fill: '#79A479',\r\n}\r\n\r\nconst copyButtonIconCopied: SxStyleProp = {\r\n transform: 'scale(0.33)',\r\n opacity: '0',\r\n}\r\n\r\nconst copyButtonSuccessIconCopied: SxStyleProp = {\r\n transform: 'translate(-50%, -50%)',\r\n opacity: '1',\r\n transitionDelay: '0.075s',\r\n}\r\n\r\nexport default {\r\n copyButton,\r\n copyButtonCopied,\r\n copyButtonIcons,\r\n copyButtonIcon,\r\n copyButtonSuccessIcon,\r\n copyButtonSuccessIconCopied,\r\n copyButtonIconCopied,\r\n}\r\n","import { useContext, useEffect, useRef, useState } from 'react'\r\nimport copy from 'copy-text-to-clipboard'\r\nimport { Box, Text, IconCaret } from '@vtex/brand-ui'\r\n\r\nimport ChatGPTIcon from 'components/icons/chatgpt-icon'\r\nimport CopilotIcon from 'components/icons/copilot-icon'\r\nimport ClaudeIcon from 'components/icons/claude-icon'\r\nimport GeminiIcon from 'components/icons/gemini-icon'\r\nimport LongArrowIcon from 'components/icons/long-arrow-icon'\r\nimport MarkdownIcon from 'components/icons/markdown-icon'\r\nimport CheckIcon from 'components/icons/check-icon'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport styles from './styles'\r\n\r\nexport type AskAIProvider = {\r\n id: string\r\n name: string\r\n href?: string\r\n onClick?: () => void\r\n}\r\n\r\nexport type AskAIMenuProps = {\r\n /** Markdown file path sent to `contentEndpoint` and appended to `rawContentBaseUrl`. */\r\n filePath: string\r\n /** Public page URL included in AI prompts. */\r\n pageUrl: string\r\n /** Base URL for viewing raw markdown. `filePath` is appended. */\r\n rawContentBaseUrl: string\r\n providers?: AskAIProvider[]\r\n onOpenProvider?: (provider: AskAIProvider) => void\r\n /** Endpoint that returns markdown for `filePath`. */\r\n contentEndpoint?: string\r\n /** Override the default fetch used by Copy page. */\r\n onCopyPage?: () => Promise\r\n}\r\n\r\nconst DEFAULT_PROVIDERS: AskAIProvider[] = [\r\n { id: 'chatgpt', name: 'ChatGPT', href: 'https://chat.openai.com/' },\r\n { id: 'copilot', name: 'Copilot', href: 'https://copilot.microsoft.com/' },\r\n { id: 'claude', name: 'Claude', href: 'https://claude.ai/' },\r\n { id: 'gemini', name: 'Gemini', href: 'https://gemini.google.com/app' },\r\n]\r\n\r\nconst DEFAULT_CONTENT_ENDPOINT = '/api/llm-content'\r\n\r\nconst joinUrl = (base: string, path: string) =>\r\n `${base.replace(/\\/?$/, '/')}${path.replace(/^\\//, '')}`\r\n\r\nconst getMarkdownFromResponse = (data: {\r\n content?: string | { result?: string }\r\n}) => {\r\n if (typeof data.content === 'string') return data.content\r\n return data.content?.result\r\n}\r\n\r\nconst fetchMarkdown = async (filePath: string, contentEndpoint: string) => {\r\n const params = new URLSearchParams({ path: filePath })\r\n const res = await fetch(`${contentEndpoint}?${params.toString()}`)\r\n if (!res.ok) {\r\n const errorText = await res.text()\r\n throw new Error(`Failed to fetch content: ${res.status} ${errorText}`)\r\n }\r\n const data = await res.json()\r\n return getMarkdownFromResponse(data)\r\n}\r\n\r\nconst ProviderIcon = ({ id, size = 14 }: { id: string; size?: number }) => {\r\n switch (id) {\r\n case 'chatgpt':\r\n return \r\n case 'copilot':\r\n return \r\n case 'claude':\r\n return \r\n case 'gemini':\r\n return \r\n default:\r\n return null\r\n }\r\n}\r\n\r\nconst AskAIMenu = ({\r\n filePath,\r\n pageUrl,\r\n rawContentBaseUrl,\r\n providers = DEFAULT_PROVIDERS,\r\n onOpenProvider,\r\n contentEndpoint = DEFAULT_CONTENT_ENDPOINT,\r\n onCopyPage,\r\n}: AskAIMenuProps) => {\r\n const { locale } = useContext(LibraryContext)\r\n const localizedMessages = messages[locale] ?? messages.en\r\n const copyLabel = localizedMessages['ask_ai.copy'] || 'Copy markdown'\r\n const viewLabel = localizedMessages['ask_ai.view'] || 'View markdown'\r\n const copiedLabel = localizedMessages['ask_ai.copied'] || 'Copied'\r\n const [open, setOpen] = useState(false)\r\n const [isCopied, setIsCopied] = useState(false)\r\n const [isLoading, setIsLoading] = useState(false)\r\n const menuRef = useRef(null)\r\n\r\n const handleProvider = (provider: AskAIProvider) => {\r\n onOpenProvider?.(provider)\r\n\r\n if (provider.onClick) {\r\n provider.onClick()\r\n } else if (provider.href) {\r\n let url = provider.href\r\n const prompt = `You are a helpful assistant specialized in VTEX documentation. Answer questions based on the following documentation: ${pageUrl}`\r\n\r\n if (provider.id === 'chatgpt') {\r\n url = `https://chat.openai.com/?q=${encodeURIComponent(prompt)}`\r\n } else if (provider.id === 'copilot') {\r\n url = `https://copilot.microsoft.com/?q=${encodeURIComponent(prompt)}`\r\n }\r\n window.open(url, '_blank', 'noopener,noreferrer')\r\n }\r\n\r\n setOpen(false)\r\n }\r\n\r\n const handleCopy = async () => {\r\n if (isLoading) return\r\n if (isCopied) {\r\n setIsCopied(false)\r\n return\r\n }\r\n setIsLoading(true)\r\n try {\r\n const markdown = onCopyPage\r\n ? await onCopyPage()\r\n : await fetchMarkdown(filePath, contentEndpoint)\r\n\r\n if (!markdown) {\r\n throw new Error('No content received from API')\r\n }\r\n\r\n const success = copy(markdown)\r\n if (success) {\r\n setIsCopied(true)\r\n setTimeout(() => setIsCopied(false), 2000)\r\n } else {\r\n throw new Error('Failed to copy to clipboard')\r\n }\r\n } catch {\r\n setIsCopied(false)\r\n } finally {\r\n setIsLoading(false)\r\n }\r\n }\r\n\r\n const handleView = () => {\r\n if (filePath && rawContentBaseUrl) {\r\n window.open(\r\n joinUrl(rawContentBaseUrl, filePath),\r\n '_blank',\r\n 'noopener,noreferrer'\r\n )\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n const handleClickOutside = (event: MouseEvent) => {\r\n if (menuRef.current && !menuRef.current.contains(event.target as Node)) {\r\n setOpen(false)\r\n }\r\n }\r\n\r\n if (open) {\r\n document.addEventListener('mousedown', handleClickOutside)\r\n }\r\n\r\n return () => {\r\n document.removeEventListener('mousedown', handleClickOutside)\r\n }\r\n }, [open])\r\n\r\n return (\r\n \r\n \r\n \r\n {isCopied ? : }\r\n {isCopied ? copiedLabel : copyLabel}\r\n \r\n\r\n setOpen((isOpen) => !isOpen)}\r\n aria-haspopup=\"menu\"\r\n aria-expanded={open}\r\n aria-controls=\"askai-menu\"\r\n >\r\n \r\n \r\n \r\n\r\n {open && (\r\n \r\n \r\n {providers.map((provider) => (\r\n handleProvider(provider)}\r\n role=\"menuitem\"\r\n aria-label={`Open ${provider.name}`}\r\n >\r\n \r\n \r\n {provider.name} \r\n \r\n \r\n ))}\r\n \r\n\r\n \r\n \r\n \r\n {viewLabel}\r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default AskAIMenu\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 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 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 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 MarkdownIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default MarkdownIcon\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst baseBtn: SxStyleProp = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n gap: 3,\r\n px: 3,\r\n minHeight: 36,\r\n fontSize: 12,\r\n color: 'muted.0',\r\n backgroundColor: '#fff',\r\n border: '1px solid #E7E9EE',\r\n cursor: 'pointer',\r\n '&:hover': { backgroundColor: '#F8F7FC', color: '#000711' },\r\n}\r\n\r\nconst container: SxStyleProp = {\r\n position: 'relative',\r\n}\r\n\r\nconst group: SxStyleProp = {\r\n position: 'relative',\r\n display: 'inline-flex',\r\n borderRadius: '4px',\r\n overflow: 'hidden',\r\n width: '100%',\r\n}\r\n\r\nconst primaryBtn: SxStyleProp = {\r\n ...baseBtn,\r\n borderRight: '0',\r\n borderTopLeftRadius: '4px',\r\n borderBottomLeftRadius: '4px',\r\n width: '100%',\r\n}\r\n\r\nconst caretBtn: SxStyleProp = {\r\n ...baseBtn,\r\n px: 2,\r\n width: 36,\r\n justifyContent: 'center',\r\n borderTopRightRadius: '4px',\r\n borderBottomRightRadius: '4px',\r\n}\r\n\r\nconst askaiMenu: SxStyleProp = {\r\n position: 'absolute',\r\n width: 160,\r\n zIndex: 50,\r\n bg: 'white',\r\n color: 'muted.0',\r\n boxShadow:\r\n '0 8px 24px rgba(18, 21, 26, 0.12), 0 2px 6px rgba(18, 21, 26, 0.08)',\r\n border: '1px solid',\r\n borderColor: '#E7E9EE',\r\n borderRadius: '4px',\r\n overflow: 'hidden',\r\n backdropFilter: 'saturate(120%) blur(6px)',\r\n}\r\n\r\nconst askaiSection: SxStyleProp = {\r\n '& + &': {\r\n borderTop: '1px solid',\r\n borderColor: '#E7E9EE',\r\n },\r\n}\r\n\r\nconst askaiItem: SxStyleProp = {\r\n width: '100%',\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: 2,\r\n textAlign: 'left',\r\n px: 3,\r\n py: 2,\r\n minHeight: 40,\r\n background: 'transparent',\r\n border: '0',\r\n cursor: 'pointer',\r\n fontSize: 12,\r\n color: 'muted.0',\r\n transition:\r\n 'background-color 120ms ease, color 120ms ease, transform 80ms ease',\r\n '&:hover': {\r\n backgroundColor: '#F8F7FC',\r\n color: '#000711',\r\n },\r\n '&:active': {\r\n transform: 'translateY(1px)',\r\n },\r\n}\r\n\r\nexport default {\r\n container,\r\n group,\r\n primaryBtn,\r\n caretBtn,\r\n askaiMenu,\r\n askaiSection,\r\n askaiItem,\r\n}\r\n","import {\r\n useCallback,\r\n useContext,\r\n useEffect,\r\n useId,\r\n useLayoutEffect,\r\n useMemo,\r\n useRef,\r\n useState,\r\n type KeyboardEvent,\r\n} from 'react'\r\nimport { createPortal } from 'react-dom'\r\nimport copy from 'copy-text-to-clipboard'\r\nimport { Box, Flex, Text } from '@vtex/brand-ui'\r\n\r\nimport BookIcon from 'components/icons/book-icon'\r\nimport CheckIcon from 'components/icons/check-icon'\r\nimport CloseIcon from 'components/icons/close-icon'\r\nimport CollapseIcon from 'components/icons/collapse-icon'\r\nimport CopyIcon from 'components/icons/copy-icon'\r\nimport ExpandIcon from 'components/icons/expand-icon'\r\nimport HistoryIcon from 'components/icons/history-icon'\r\nimport LikeIcon from 'components/icons/like-icon'\r\nimport LikeSelectedIcon from 'components/icons/like-selected-icon'\r\nimport RefreshIcon from 'components/icons/refresh-icon'\r\nimport SearchIcon from 'components/icons/search-icon'\r\nimport SendIcon from 'components/icons/send-icon'\r\nimport SparkleIcon from 'components/icons/sparkle-icon'\r\nimport NewChatIcon from 'components/icons/new-chat-icon'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\n\r\nimport { DEFAULT_ASK_ASSISTANT_EXAMPLES } from './default-examples'\r\nimport {\r\n conversationTitle,\r\n readHistory,\r\n upsertHistory,\r\n writeHistory,\r\n} from './history'\r\nimport MarkdownMessage, { stripAnswerMetadata } from './markdown'\r\nimport { createDefaultStream, isInternalEvent } from './stream'\r\nimport styles, { SPLIT_VIEW_MQ, splitViewCss } from './styles'\r\nimport type {\r\n AskAssistantProps,\r\n AssistantStreamEvent,\r\n ChatMessage,\r\n HistoryConversation,\r\n ProcessStep,\r\n} from './types'\r\n\r\nconst SPLIT_VIEW_STYLE_ID = 'ask-assistant-split-view'\r\n\r\nconst ensureSplitViewStyles = () => {\r\n if (typeof document === 'undefined') return\r\n let style = document.getElementById(SPLIT_VIEW_STYLE_ID) as HTMLStyleElement | null\r\n if (!style) {\r\n style = document.createElement('style')\r\n style.id = SPLIT_VIEW_STYLE_ID\r\n document.head.appendChild(style)\r\n }\r\n style.textContent = splitViewCss\r\n}\r\n\r\nconst createId = () => `${Date.now()}-${Math.random().toString(36).slice(2, 8)}`\r\n\r\nconst isMacShortcut = () =>\r\n typeof navigator !== 'undefined' &&\r\n /Mac|iPhone|iPad|iPod/.test(navigator.platform)\r\n\r\nconst toolStepLabel = (name: string, labels: Record) => {\r\n if (name === 'search_documentation') return labels.stepSearchDocs\r\n if (name === 'search_endpoints') return labels.stepSearchEndpoints\r\n if (name === 'get_endpoint_details') return labels.stepReadEndpoints\r\n if (name === 'fetch_document') return labels.stepReadDocument\r\n if (name === 'final_answer') return labels.stepCreateResponse\r\n return labels.stepSearch\r\n}\r\n\r\nconst processHeaderText = (\r\n count: number,\r\n complete: boolean,\r\n labels: Record\r\n) => {\r\n if (!complete) return labels.processRunning\r\n if (count === 1) return labels.processCompletedOne\r\n return labels.processCompleted.replace('{count}', String(count))\r\n}\r\n\r\nconst ToolStepIcon = ({ name }: { name: string }) =>\r\n name === 'final_answer' || name === 'fetch_document' ? (\r\n \r\n ) : (\r\n \r\n )\r\n\r\nconst completeSteps = (steps: ProcessStep[] = []): ProcessStep[] =>\r\n steps.map((step) =>\r\n step.status === 'complete' ? step : { ...step, status: 'complete' }\r\n )\r\n\r\nconst ensureFinalStep = (steps: ProcessStep[] = []): ProcessStep[] => {\r\n const next = completeSteps(steps)\r\n if (next.some((step) => step.name === 'final_answer')) return next\r\n return [...next, { id: createId(), name: 'final_answer', status: 'complete' }]\r\n}\r\n\r\nconst AskAssistant = ({\r\n streamUrl,\r\n stream,\r\n open,\r\n defaultOpen = false,\r\n onOpenChange,\r\n hideTrigger = false,\r\n floatingOnMobile = true,\r\n enableShortcut = true,\r\n initialMessages = [],\r\n examples = DEFAULT_ASK_ASSISTANT_EXAMPLES,\r\n initialHistory = [],\r\n onAsk,\r\n onFeedback,\r\n}: AskAssistantProps) => {\r\n const { locale, setSidebarSectionHidden } = useContext(LibraryContext)\r\n const sidebarHiddenBeforeOpen = useRef(null)\r\n const localized = messages[locale] ?? messages.en\r\n const titleId = useId()\r\n const textareaRef = useRef(null)\r\n const listRef = useRef(null)\r\n const historyRef = useRef(null)\r\n const abortRef = useRef(null)\r\n const pendingToolsRef = useRef<{ name: string; stepId: string }[]>([])\r\n const conversationIdRef = useRef(null)\r\n const chatRef = useRef(initialMessages)\r\n\r\n const [mounted, setMounted] = useState(false)\r\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen)\r\n const [expanded, setExpanded] = useState(false)\r\n const [isSplitView, setIsSplitView] = useState(false)\r\n const [draft, setDraft] = useState('')\r\n const [chat, setChat] = useState(initialMessages)\r\n const [feedback, setFeedback] = useState>({})\r\n const [copiedId, setCopiedId] = useState(null)\r\n const [activeExampleId, setActiveExampleId] = useState(examples[0]?.id ?? '')\r\n const [history, setHistory] = useState(initialHistory)\r\n const [historyOpen, setHistoryOpen] = useState(false)\r\n\r\n const isOpen = open ?? uncontrolledOpen\r\n const isStreaming = chat.some((message) => message.status === 'streaming')\r\n const canSend = Boolean(draft.trim()) && !isStreaming\r\n const showFloatingTrigger =\r\n floatingOnMobile && !hideTrigger && mounted && !isOpen\r\n\r\n const labels = useMemo(\r\n () => ({\r\n button: localized['ask_assistant.button'] || 'Ask Assistant',\r\n title: localized['ask_assistant.title'] || 'Assistant',\r\n heroTitle: localized['ask_assistant.hero_title'] || 'How can I help you?',\r\n heroSubtitle:\r\n localized['ask_assistant.hero_subtitle'] ||\r\n 'Get answers from VTEX documentation.',\r\n placeholder:\r\n localized['ask_assistant.placeholder'] || 'Ask a question...',\r\n send: localized['ask_assistant.send'] || 'Send',\r\n close: localized['ask_assistant.close'] || 'Close',\r\n clear: localized['ask_assistant.clear'] || 'New chat',\r\n history: localized['ask_assistant.history'] || 'History',\r\n historyClear: localized['ask_assistant.history_clear'] || 'clear',\r\n expand: localized['ask_assistant.expand'] || 'Expand',\r\n collapse: localized['ask_assistant.collapse'] || 'Collapse',\r\n copy: localized['ask_assistant.copy'] || 'Copy',\r\n copied: localized['ask_assistant.copied'] || 'Copied',\r\n regenerate: localized['ask_assistant.regenerate'] || 'Regenerate',\r\n helpful: localized['ask_assistant.helpful'] || 'Helpful',\r\n notHelpful: localized['ask_assistant.not_helpful'] || 'Not helpful',\r\n error:\r\n localized['ask_assistant.error'] ||\r\n 'Could not reach the assistant. Please try again.',\r\n searching: localized['ask_assistant.searching'] || 'Searching...',\r\n searchingDocs:\r\n localized['ask_assistant.searching_docs'] || 'Searching documentation',\r\n searchingEndpoints:\r\n localized['ask_assistant.searching_endpoints'] || 'Searching endpoints',\r\n readingEndpoints:\r\n localized['ask_assistant.reading_endpoints'] ||\r\n 'Reading endpoint details',\r\n readingDocument:\r\n localized['ask_assistant.reading_document'] || 'Reading document',\r\n readFile: localized['ask_assistant.read_file'] || 'Read 1 file',\r\n readFiles: localized['ask_assistant.read_files'] || 'Read {count} files',\r\n foundEndpoint:\r\n localized['ask_assistant.found_endpoint'] || 'Found 1 endpoint',\r\n foundEndpoints:\r\n localized['ask_assistant.found_endpoints'] || 'Found {count} endpoints',\r\n examples: localized['ask_assistant.examples'] || 'Examples:',\r\n tool: localized['ask_assistant.tool'] || 'Tool',\r\n processRunning:\r\n localized['ask_assistant.process_running'] || 'Processing...',\r\n processCompleted:\r\n localized['ask_assistant.process_completed'] ||\r\n 'Process completed ({count} steps)',\r\n processCompletedOne:\r\n localized['ask_assistant.process_completed_one'] ||\r\n 'Process completed (1 step)',\r\n stepSearchDocs:\r\n localized['ask_assistant.step_search_docs'] || 'Search documentation',\r\n stepSearchEndpoints:\r\n localized['ask_assistant.step_search_endpoints'] || 'Search endpoints',\r\n stepReadEndpoints:\r\n localized['ask_assistant.step_read_endpoints'] ||\r\n 'Read endpoint details',\r\n stepReadDocument:\r\n localized['ask_assistant.step_read_document'] || 'Read document',\r\n stepCreateResponse:\r\n localized['ask_assistant.step_create_response'] || 'Create response',\r\n stepSearch: localized['ask_assistant.step_search'] || 'Search',\r\n }),\r\n [localized]\r\n )\r\n\r\n const categories = useMemo(\r\n () =>\r\n examples.filter((category) =>\r\n category.questions.some((question) => question.trim())\r\n ),\r\n [examples]\r\n )\r\n\r\n const setOpen = useCallback(\r\n (next: boolean) => {\r\n if (open === undefined) setUncontrolledOpen(next)\r\n onOpenChange?.(next)\r\n },\r\n [open, onOpenChange]\r\n )\r\n\r\n const persistConversation = useCallback(\r\n (id: string, messages: ChatMessage[]) => {\r\n const title = conversationTitle(messages)\r\n if (!title) return\r\n\r\n setHistory((current) => {\r\n const next = upsertHistory(current, { id, title, messages })\r\n writeHistory(next)\r\n return next\r\n })\r\n },\r\n []\r\n )\r\n\r\n const patchAssistant = useCallback(\r\n (\r\n id: string,\r\n patch: Partial | ((message: ChatMessage) => ChatMessage)\r\n ) => {\r\n setChat((current) =>\r\n current.map((message) => {\r\n if (message.id !== id) return message\r\n return typeof patch === 'function'\r\n ? patch(message)\r\n : { ...message, ...patch }\r\n })\r\n )\r\n },\r\n []\r\n )\r\n\r\n const runStream = useCallback(\r\n async (query: string, assistantId: string) => {\r\n abortRef.current?.abort()\r\n const controller = new AbortController()\r\n abortRef.current = controller\r\n pendingToolsRef.current = []\r\n let content = ''\r\n\r\n const applyContent = (next: string, status?: ChatMessage['status']) => {\r\n const visible = stripAnswerMetadata(next)\r\n if (!visible) return\r\n content = visible\r\n patchAssistant(assistantId, {\r\n content: visible,\r\n ...(status ? { status } : {}),\r\n })\r\n }\r\n\r\n const handleEvent = (event: AssistantStreamEvent) => {\r\n if (isInternalEvent(event.type)) return\r\n\r\n if (event.type === 'ToolCall' && event.name) {\r\n const stepId = createId()\r\n pendingToolsRef.current.push({ name: event.name, stepId })\r\n patchAssistant(assistantId, (message) => ({\r\n ...message,\r\n steps: [\r\n ...(message.steps ?? []),\r\n { id: stepId, name: event.name as string, status: 'running' },\r\n ],\r\n }))\r\n const answer =\r\n event.name === 'final_answer' &&\r\n typeof event.arguments?.answer === 'string'\r\n ? event.arguments.answer\r\n : ''\r\n if (answer) applyContent(answer)\r\n return\r\n }\r\n\r\n if (event.type === 'ToolOutput') {\r\n const pending = pendingToolsRef.current.shift()\r\n if (pending) {\r\n patchAssistant(assistantId, (message) => ({\r\n ...message,\r\n steps: (message.steps ?? []).map((step) =>\r\n step.id === pending.stepId\r\n ? { ...step, status: 'complete' }\r\n : step\r\n ),\r\n }))\r\n }\r\n if (\r\n event.output &&\r\n (event.is_final_answer || pending?.name === 'final_answer')\r\n ) {\r\n applyContent(event.output)\r\n }\r\n return\r\n }\r\n\r\n if (event.type === 'FinalAnswerStep' && event.output) {\r\n const visible = stripAnswerMetadata(event.output)\r\n content = visible\r\n patchAssistant(assistantId, (message) => ({\r\n ...message,\r\n content: visible,\r\n status: 'complete',\r\n steps: ensureFinalStep(message.steps),\r\n }))\r\n }\r\n }\r\n\r\n try {\r\n const run =\r\n stream ??\r\n (streamUrl ? createDefaultStream(streamUrl, locale) : undefined)\r\n if (!run) {\r\n throw new Error('AskAssistant requires stream or streamUrl')\r\n }\r\n await run(query, controller.signal, handleEvent)\r\n patchAssistant(assistantId, (message) => ({\r\n ...message,\r\n status: content ? 'complete' : 'error',\r\n content: content || labels.error,\r\n steps: content\r\n ? ensureFinalStep(message.steps)\r\n : completeSteps(message.steps),\r\n }))\r\n } catch (error) {\r\n if ((error as Error).name === 'AbortError') return\r\n patchAssistant(assistantId, (message) => ({\r\n ...message,\r\n status: 'error',\r\n content: labels.error,\r\n steps: completeSteps(message.steps),\r\n }))\r\n }\r\n },\r\n [labels, locale, stream, streamUrl, patchAssistant]\r\n )\r\n\r\n const submit = useCallback(\r\n async (text: string) => {\r\n const trimmed = text.trim()\r\n if (!trimmed || isStreaming) return\r\n\r\n const userMessage: ChatMessage = {\r\n id: createId(),\r\n role: 'user',\r\n content: trimmed,\r\n status: 'complete',\r\n }\r\n const assistantMessage: ChatMessage = {\r\n id: createId(),\r\n role: 'assistant',\r\n content: '',\r\n steps: [],\r\n status: 'streaming',\r\n }\r\n\r\n setDraft('')\r\n if (!conversationIdRef.current) conversationIdRef.current = createId()\r\n setChat((current) => {\r\n const next = [...current, userMessage, assistantMessage]\r\n chatRef.current = next\r\n return next\r\n })\r\n onAsk?.(trimmed)\r\n await runStream(trimmed, assistantMessage.id)\r\n },\r\n [isStreaming, onAsk, runStream]\r\n )\r\n\r\n const clearChat = () => {\r\n abortRef.current?.abort()\r\n if (conversationIdRef.current && chatRef.current.length > 0) {\r\n persistConversation(conversationIdRef.current, chatRef.current)\r\n }\r\n conversationIdRef.current = null\r\n setChat([])\r\n chatRef.current = []\r\n setFeedback({})\r\n setHistoryOpen(false)\r\n }\r\n\r\n const clearHistory = () => {\r\n setHistory([])\r\n writeHistory([])\r\n setHistoryOpen(false)\r\n }\r\n\r\n const openHistoryItem = (item: HistoryConversation) => {\r\n setHistoryOpen(false)\r\n if (item.id === conversationIdRef.current) return\r\n\r\n abortRef.current?.abort()\r\n if (conversationIdRef.current && chatRef.current.length > 0) {\r\n persistConversation(conversationIdRef.current, chatRef.current)\r\n }\r\n\r\n conversationIdRef.current = item.id\r\n chatRef.current = item.messages\r\n setChat(item.messages)\r\n setFeedback({})\r\n setDraft('')\r\n }\r\n\r\n const regenerate = (assistantId: string) => {\r\n const index = chat.findIndex((message) => message.id === assistantId)\r\n if (index < 1) return\r\n const userMessage = [...chat.slice(0, index)]\r\n .reverse()\r\n .find((message) => message.role === 'user')\r\n if (!userMessage) return\r\n\r\n const nextAssistant: ChatMessage = {\r\n id: createId(),\r\n role: 'assistant',\r\n content: '',\r\n steps: [],\r\n status: 'streaming',\r\n }\r\n\r\n setChat((current) => [\r\n ...current.slice(0, index),\r\n nextAssistant,\r\n ...current.slice(index + 1),\r\n ])\r\n setFeedback((current) => {\r\n const next = { ...current }\r\n delete next[assistantId]\r\n return next\r\n })\r\n void runStream(userMessage.content, nextAssistant.id)\r\n }\r\n\r\n const copyAnswer = (message: ChatMessage) => {\r\n const visible = stripAnswerMetadata(message.content)\r\n if (!visible) return\r\n copy(visible)\r\n setCopiedId(message.id)\r\n window.setTimeout(() => setCopiedId(null), 1600)\r\n }\r\n\r\n const vote = (message: ChatMessage, liked: boolean) => {\r\n setFeedback((current) => ({ ...current, [message.id]: liked }))\r\n const messageIndex = chat.findIndex((item) => item.id === message.id)\r\n const query =\r\n chat\r\n .slice(0, messageIndex)\r\n .reverse()\r\n .find((item) => item.role === 'user')?.content ?? ''\r\n onFeedback?.({ query, answer: stripAnswerMetadata(message.content), liked })\r\n }\r\n\r\n useEffect(() => {\r\n ensureSplitViewStyles()\r\n setMounted(true)\r\n const stored = readHistory()\r\n if (stored.length) setHistory(stored)\r\n\r\n const mq = window.matchMedia(SPLIT_VIEW_MQ)\r\n const updateSplitView = () => setIsSplitView(mq.matches)\r\n updateSplitView()\r\n mq.addEventListener('change', updateSplitView)\r\n\r\n return () => {\r\n abortRef.current?.abort()\r\n mq.removeEventListener('change', updateSplitView)\r\n }\r\n }, [])\r\n\r\n useLayoutEffect(() => {\r\n const root = document.documentElement\r\n if (!isOpen || !isSplitView) {\r\n root.style.removeProperty('--ask-assistant-top')\r\n return\r\n }\r\n\r\n const header = document.querySelector('[data-docs-header]')\r\n const sync = () => {\r\n const top = header\r\n ? Math.max(0, Math.round(header.getBoundingClientRect().bottom))\r\n : 0\r\n root.style.setProperty('--ask-assistant-top', `${top}px`)\r\n }\r\n\r\n sync()\r\n if (!header) return\r\n\r\n const observer = new ResizeObserver(sync)\r\n observer.observe(header)\r\n window.addEventListener('resize', sync)\r\n window.addEventListener('scroll', sync, { passive: true })\r\n\r\n return () => {\r\n observer.disconnect()\r\n window.removeEventListener('resize', sync)\r\n window.removeEventListener('scroll', sync)\r\n root.style.removeProperty('--ask-assistant-top')\r\n }\r\n }, [isOpen, isSplitView])\r\n\r\n useEffect(() => {\r\n if (!isSplitView) setExpanded(false)\r\n }, [isSplitView])\r\n\r\n useEffect(() => {\r\n if (!isOpen || !isSplitView) return\r\n\r\n setSidebarSectionHidden((hidden) => {\r\n sidebarHiddenBeforeOpen.current = hidden\r\n return true\r\n })\r\n\r\n return () => {\r\n const previous = sidebarHiddenBeforeOpen.current\r\n sidebarHiddenBeforeOpen.current = null\r\n if (previous !== null) setSidebarSectionHidden(previous)\r\n }\r\n }, [isOpen, isSplitView, setSidebarSectionHidden])\r\n\r\n useEffect(() => {\r\n if (!enableShortcut) return\r\n\r\n const onKeyDown = (event: globalThis.KeyboardEvent) => {\r\n if ((event.metaKey || event.ctrlKey) && event.key.toLowerCase() === 'i') {\r\n event.preventDefault()\r\n setOpen(!isOpen)\r\n }\r\n }\r\n\r\n window.addEventListener('keydown', onKeyDown)\r\n return () => window.removeEventListener('keydown', onKeyDown)\r\n }, [enableShortcut, isOpen, setOpen])\r\n\r\n useEffect(() => {\r\n if (!isOpen) {\r\n setHistoryOpen(false)\r\n return\r\n }\r\n\r\n const timer = window.setTimeout(() => textareaRef.current?.focus(), 50)\r\n return () => window.clearTimeout(timer)\r\n }, [isOpen])\r\n\r\n useEffect(() => {\r\n if (!isOpen) return\r\n\r\n const onKeyDown = (event: globalThis.KeyboardEvent) => {\r\n if (event.key !== 'Escape') return\r\n if (historyOpen) {\r\n setHistoryOpen(false)\r\n return\r\n }\r\n setOpen(false)\r\n }\r\n window.addEventListener('keydown', onKeyDown)\r\n return () => window.removeEventListener('keydown', onKeyDown)\r\n }, [historyOpen, isOpen, setOpen])\r\n\r\n useEffect(() => {\r\n if (!historyOpen) return\r\n\r\n const onPointerDown = (event: PointerEvent) => {\r\n if (\r\n historyRef.current &&\r\n !historyRef.current.contains(event.target as Node)\r\n ) {\r\n setHistoryOpen(false)\r\n }\r\n }\r\n\r\n window.addEventListener('pointerdown', onPointerDown)\r\n return () => window.removeEventListener('pointerdown', onPointerDown)\r\n }, [historyOpen])\r\n\r\n useEffect(() => {\r\n chatRef.current = chat\r\n if (isStreaming) return\r\n const id = conversationIdRef.current\r\n if (!id || chat.length === 0) return\r\n persistConversation(id, chat)\r\n }, [chat, isStreaming, persistConversation])\r\n\r\n useEffect(() => {\r\n const node = listRef.current\r\n if (node) node.scrollTop = node.scrollHeight\r\n }, [chat])\r\n\r\n useEffect(() => {\r\n if (!categories.some((category) => category.id === activeExampleId)) {\r\n setActiveExampleId(categories[0]?.id ?? '')\r\n }\r\n }, [activeExampleId, categories])\r\n\r\n const onDraftKeyDown = (event: KeyboardEvent) => {\r\n if (event.key === 'Enter' && !event.shiftKey) {\r\n event.preventDefault()\r\n void submit(draft)\r\n }\r\n }\r\n\r\n const isEmpty = chat.length === 0\r\n const activeCategory =\r\n categories.find((category) => category.id === activeExampleId) ??\r\n categories[0]\r\n\r\n const composer = (\r\n \r\n \r\n \r\n setDraft(event.currentTarget.value)\r\n }\r\n onKeyDown={onDraftKeyDown}\r\n />\r\n \r\n void submit(draft)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n )\r\n\r\n const panel = isOpen && mounted && (\r\n <>\r\n {isSplitView ? null : (\r\n setOpen(false)} />\r\n )}\r\n \r\n \r\n \r\n \r\n {labels.title}\r\n \r\n \r\n {isSplitView ? (\r\n setExpanded((value) => !value)}\r\n >\r\n {expanded ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n ) : null}\r\n \r\n \r\n \r\n \r\n setHistoryOpen((value) => !value)}\r\n >\r\n \r\n \r\n {historyOpen && history.length > 0 ? (\r\n \r\n \r\n {labels.history}\r\n \r\n {labels.historyClear}\r\n \r\n \r\n \r\n {history.map((item) => (\r\n openHistoryItem(item)}\r\n >\r\n \r\n {item.title}\r\n \r\n ))}\r\n \r\n \r\n ) : null}\r\n \r\n setOpen(false)}\r\n >\r\n \r\n \r\n \r\n \r\n\r\n {isEmpty ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {labels.heroTitle}\r\n \r\n \r\n {labels.heroSubtitle}\r\n \r\n \r\n \r\n {composer}\r\n {activeCategory ? (\r\n \r\n {labels.examples}\r\n \r\n {categories.map((category) => {\r\n const Icon = category.Icon\r\n const isActive = category.id === activeCategory.id\r\n return (\r\n setActiveExampleId(category.id)}\r\n >\r\n {Icon ? (\r\n \r\n ) : null}\r\n {category.title}\r\n \r\n )\r\n })}\r\n \r\n \r\n {activeCategory.questions\r\n .filter((question) => question.trim())\r\n .map((question) => (\r\n void submit(question)}\r\n >\r\n {question}\r\n \r\n ))}\r\n \r\n \r\n ) : null}\r\n \r\n \r\n ) : (\r\n <>\r\n \r\n {chat.map((message) =>\r\n message.role === 'user' ? (\r\n \r\n {message.content}\r\n \r\n ) : (\r\n \r\n {message.status === 'streaming' ||\r\n (message.steps && message.steps.length > 0) ? (\r\n \r\n {message.status === 'error' ? null : (\r\n \r\n {message.status === 'complete' ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n )}\r\n \r\n {processHeaderText(\r\n message.steps?.length ?? 0,\r\n message.status === 'complete',\r\n labels\r\n )}\r\n \r\n \r\n )}\r\n {message.steps && message.steps.length > 0 ? (\r\n \r\n {message.steps.map((step) => (\r\n \r\n \r\n {labels.tool}\r\n \r\n \r\n \r\n {toolStepLabel(step.name, labels)}\r\n \r\n \r\n ))}\r\n \r\n ) : null}\r\n \r\n ) : null}\r\n {message.status === 'error' ? (\r\n {message.content}\r\n ) : message.content ? (\r\n \r\n ) : null}\r\n {message.status === 'complete' && message.content ? (\r\n \r\n vote(message, true)}\r\n >\r\n {feedback[message.id] === true ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n vote(message, false)}\r\n >\r\n \r\n \r\n copyAnswer(message)}\r\n >\r\n \r\n \r\n regenerate(message.id)}\r\n >\r\n \r\n \r\n \r\n ) : null}\r\n \r\n )\r\n )}\r\n \r\n {composer}\r\n \r\n )}\r\n \r\n \r\n )\r\n\r\n return (\r\n <>\r\n {hideTrigger ? null : (\r\n setOpen(!isOpen)}\r\n >\r\n \r\n {labels.button}\r\n \r\n \r\n {isMacShortcut() ? '⌘' : 'Ctrl'}\r\n \r\n \r\n I\r\n \r\n \r\n \r\n )}\r\n {showFloatingTrigger\r\n ? createPortal(\r\n setOpen(true)}\r\n >\r\n \r\n ,\r\n document.body\r\n )\r\n : null}\r\n {mounted ? createPortal(panel, document.body) : null}\r\n \r\n )\r\n}\r\n\r\nexport default AskAssistant\r\nexport { DEFAULT_ASK_ASSISTANT_EXAMPLES } from './default-examples'\r\nexport type {\r\n AskAssistantProps,\r\n AskAssistantFeedback,\r\n AskAssistantExampleCategory,\r\n AssistantStreamEvent,\r\n AssistantStreamHandler,\r\n ChatMessage,\r\n HistoryConversation,\r\n ProcessStep,\r\n} from './types'\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst BookIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default BookIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst CollapseIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default CollapseIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst ExpandIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default ExpandIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst HistoryIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default HistoryIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst RefreshIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default RefreshIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst SendIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default SendIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst SparkleIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default SparkleIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst NewChatIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default NewChatIcon\r\n","import 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 StorefrontDevelopmentIcon from 'components/icons/storefront-development-icon'\r\n\r\nimport type { AskAssistantExampleCategory } from './types'\r\n\r\nexport const DEFAULT_ASK_ASSISTANT_EXAMPLES: AskAssistantExampleCategory[] = [\r\n {\r\n id: 'guides',\r\n title: 'Guides',\r\n Icon: APIGuidesIcon,\r\n questions: [\r\n 'How do I authenticate with the VTEX APIs?',\r\n 'How do I get started with FastStore?',\r\n 'How do I configure a development workspace?',\r\n ],\r\n },\r\n {\r\n id: 'api-reference',\r\n title: 'API Reference',\r\n Icon: APIReferenceIcon,\r\n questions: [\r\n 'How do I get an order by ID?',\r\n 'How do I update a product SKU?',\r\n 'What is the Catalog API used for?',\r\n ],\r\n },\r\n {\r\n id: 'storefront',\r\n title: 'Storefront',\r\n Icon: StorefrontDevelopmentIcon,\r\n questions: [\r\n 'How do I customize a FastStore component?',\r\n 'How do I create a store theme?',\r\n 'How do I add a custom page to my storefront?',\r\n ],\r\n },\r\n {\r\n id: 'apps',\r\n title: 'Apps',\r\n Icon: AppDevelopmentIcon,\r\n questions: [\r\n 'How do I create a VTEX IO app?',\r\n 'How do I publish an app to the VTEX App Store?',\r\n 'How do I use React in a VTEX IO app?',\r\n ],\r\n },\r\n]\r\n","import type { ChatMessage, HistoryConversation } from './types'\r\n\r\nexport const HISTORY_STORAGE_KEY = 'vtex-ask-assistant-history'\r\nexport const MAX_HISTORY_ITEMS = 20\r\n\r\nconst isChatMessage = (value: unknown): value is ChatMessage => {\r\n if (!value || typeof value !== 'object') return false\r\n const message = value as ChatMessage\r\n return (\r\n typeof message.id === 'string' &&\r\n (message.role === 'user' || message.role === 'assistant') &&\r\n typeof message.content === 'string' &&\r\n (message.status === 'streaming' ||\r\n message.status === 'complete' ||\r\n message.status === 'error')\r\n )\r\n}\r\n\r\nconst parseConversation = (value: unknown): HistoryConversation | null => {\r\n if (!value || typeof value !== 'object') return null\r\n const item = value as HistoryConversation\r\n if (typeof item.id !== 'string' || !Array.isArray(item.messages)) return null\r\n const messages = item.messages.filter(isChatMessage)\r\n const title =\r\n typeof item.title === 'string' && item.title.trim()\r\n ? item.title.trim()\r\n : messages.find((message) => message.role === 'user')?.content.trim()\r\n if (!title || messages.length === 0) return null\r\n return { id: item.id, title, messages }\r\n}\r\n\r\nexport const conversationTitle = (messages: ChatMessage[]) =>\r\n messages.find((message) => message.role === 'user')?.content.trim() ?? ''\r\n\r\nexport const freezeMessages = (messages: ChatMessage[]): ChatMessage[] =>\r\n messages.map((message) =>\r\n message.status === 'streaming'\r\n ? {\r\n ...message,\r\n status: message.content ? 'complete' : 'error',\r\n steps: message.steps?.map((step) => ({\r\n ...step,\r\n status: 'complete' as const,\r\n })),\r\n }\r\n : message\r\n )\r\n\r\nexport const readHistory = (\r\n key = HISTORY_STORAGE_KEY\r\n): HistoryConversation[] => {\r\n if (typeof window === 'undefined') return []\r\n\r\n try {\r\n const raw = window.localStorage.getItem(key)\r\n if (!raw) return []\r\n const parsed = JSON.parse(raw)\r\n if (!Array.isArray(parsed)) return []\r\n return parsed\r\n .map(parseConversation)\r\n .filter((item): item is HistoryConversation => Boolean(item))\r\n } catch {\r\n return []\r\n }\r\n}\r\n\r\nexport const writeHistory = (\r\n items: HistoryConversation[],\r\n key = HISTORY_STORAGE_KEY\r\n): void => {\r\n if (typeof window === 'undefined') return\r\n\r\n try {\r\n window.localStorage.setItem(key, JSON.stringify(items))\r\n } catch {\r\n // Ignore quota / private-mode failures.\r\n }\r\n}\r\n\r\nexport const upsertHistory = (\r\n current: HistoryConversation[],\r\n conversation: HistoryConversation\r\n): HistoryConversation[] => {\r\n const title = conversation.title.trim()\r\n const messages = freezeMessages(conversation.messages)\r\n if (!title || messages.length === 0) return current\r\n\r\n return [\r\n { ...conversation, title, messages },\r\n ...current.filter((item) => item.id !== conversation.id),\r\n ].slice(0, MAX_HISTORY_ITEMS)\r\n}\r\n","import type { ReactNode } from 'react'\r\nimport { Box } from '@vtex/brand-ui'\r\n\r\nimport AnswerSources, { splitAnswerSources } from './sources'\r\nimport styles from './styles'\r\n\r\nconst ANSWER_METADATA_RE =\r\n /(?:\\r?\\n[ \\t]*){0,3}(?:[*_]{1,2}[ \\t]*)?Language:[ \\t]*[^\\n|]+[ \\t]*\\|[ \\t]*Confidence:[ \\t]*[^\\n*_]+(?:[ \\t]*[*_]{1,2})?[ \\t]*$/i\r\n\r\nexport const stripAnswerMetadata = (content: string) =>\r\n content.replace(ANSWER_METADATA_RE, '').trimEnd()\r\n\r\nconst INLINE_TOKEN =\r\n /(\\[[^\\]]+\\]\\([^)\\s]+(?:\\s+\"[^\"]*\")?\\)|\\*\\*[^*]+\\*\\*|`[^`]+`)/g\r\n\r\nconst renderInline = (text: string, keyPrefix: string): ReactNode[] => {\r\n const parts = text.split(INLINE_TOKEN)\r\n\r\n return parts.map((part, index) => {\r\n const key = `${keyPrefix}-${index}`\r\n if (!part) return null\r\n\r\n const link = part.match(/^\\[([^\\]]+)\\]\\(([^)\\s]+)(?:\\s+\"[^\"]*\")?\\)$/)\r\n if (link) {\r\n return (\r\n \r\n {renderInline(link[1], key)}\r\n \r\n )\r\n }\r\n\r\n if (part.startsWith('**') && part.endsWith('**')) {\r\n return {renderInline(part.slice(2, -2), key)}\r\n }\r\n\r\n if (part.startsWith('`') && part.endsWith('`')) {\r\n return (\r\n \r\n {part.slice(1, -1)}\r\n \r\n )\r\n }\r\n\r\n return part\r\n })\r\n}\r\n\r\nconst headingTag = (level: number) => {\r\n if (level <= 1) return 'h1'\r\n if (level === 2) return 'h2'\r\n if (level === 3) return 'h3'\r\n return 'h4'\r\n}\r\n\r\nconst LIST_ITEM_RE = /^(\\s*)([-*]|\\d+\\.)\\s+(.*)$/\r\n\r\ntype ListMarker = {\r\n indent: number\r\n ordered: boolean\r\n text: string\r\n}\r\n\r\nconst parseListMarker = (line: string): ListMarker | null => {\r\n const match = line.match(LIST_ITEM_RE)\r\n if (!match) return null\r\n\r\n return {\r\n indent: match[1].length,\r\n ordered: /^\\d+\\.$/.test(match[2]),\r\n text: match[3],\r\n }\r\n}\r\n\r\nconst nextNonBlank = (lines: string[], from: number) => {\r\n let index = from\r\n while (index < lines.length && !lines[index].trim()) index += 1\r\n return index\r\n}\r\n\r\nconst renderList = (\r\n lines: string[],\r\n start: number,\r\n minIndent: number\r\n): { items: ReactNode[]; ordered: boolean; end: number } => {\r\n const first = parseListMarker(lines[start])\r\n if (!first) return { items: [], ordered: false, end: start }\r\n\r\n const baseIndent = first.indent\r\n const ordered = first.ordered\r\n const items: ReactNode[] = []\r\n let index = start\r\n\r\n while (index < lines.length) {\r\n const itemIndex = nextNonBlank(lines, index)\r\n if (itemIndex >= lines.length) break\r\n\r\n const marker = parseListMarker(lines[itemIndex])\r\n if (\r\n !marker ||\r\n marker.indent < minIndent ||\r\n marker.indent !== baseIndent ||\r\n marker.ordered !== ordered\r\n ) {\r\n break\r\n }\r\n\r\n index = itemIndex + 1\r\n const children: ReactNode[] = [\r\n ...renderInline(marker.text, `li-${itemIndex}`),\r\n ]\r\n\r\n const nestedIndex = nextNonBlank(lines, index)\r\n const nestedMarker =\r\n nestedIndex < lines.length ? parseListMarker(lines[nestedIndex]) : null\r\n\r\n if (nestedMarker && nestedMarker.indent > baseIndent) {\r\n const nested = renderList(lines, nestedIndex, baseIndent + 1)\r\n children.push(\r\n \r\n {nested.items}\r\n \r\n )\r\n index = nested.end\r\n }\r\n\r\n items.push(\r\n \r\n {children}\r\n \r\n )\r\n }\r\n\r\n return { items, ordered, end: index }\r\n}\r\n\r\nconst MarkdownMessage = ({ content }: { content: string }) => {\r\n const { body, sources } = splitAnswerSources(stripAnswerMetadata(content))\r\n const lines = body.replace(/\\r\\n/g, '\\n').split('\\n')\r\n const nodes: ReactNode[] = []\r\n let index = 0\r\n\r\n while (index < lines.length) {\r\n const line = lines[index]\r\n\r\n if (!line.trim()) {\r\n index += 1\r\n continue\r\n }\r\n\r\n const heading = line.match(/^(#{1,6})\\s+(.*)$/)\r\n if (heading) {\r\n const Tag = headingTag(heading[1].length)\r\n nodes.push(\r\n \r\n {renderInline(heading[2], `h-${index}`)}\r\n \r\n )\r\n index += 1\r\n continue\r\n }\r\n\r\n if (/^---+$/.test(line.trim())) {\r\n nodes.push()\r\n index += 1\r\n continue\r\n }\r\n\r\n if (parseListMarker(line)) {\r\n const list = renderList(lines, index, 0)\r\n nodes.push(\r\n \r\n {list.items}\r\n \r\n )\r\n index = list.end\r\n continue\r\n }\r\n\r\n const paragraph: string[] = []\r\n const paragraphIndex = index\r\n while (\r\n index < lines.length &&\r\n lines[index].trim() &&\r\n !lines[index].match(/^#{1,6}\\s+/) &&\r\n !parseListMarker(lines[index]) &&\r\n !/^---+$/.test(lines[index].trim())\r\n ) {\r\n paragraph.push(lines[index])\r\n index += 1\r\n }\r\n\r\n nodes.push(\r\n \r\n {renderInline(paragraph.join(' '), `p-${paragraphIndex}`)}\r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n {nodes}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default MarkdownMessage\r\n","import { useContext } from 'react'\r\nimport { Box, Flex, Text } from '@vtex/brand-ui'\r\n\r\nimport ExternalLinkIcon from 'components/icons/external-link-icon'\r\nimport PaperIcon from 'components/icons/paper-icon'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\n\r\nimport styles from './styles'\r\n\r\nexport type AnswerSource = {\r\n title: string\r\n href: string\r\n}\r\n\r\nconst SOURCES_HEADING_RE =\r\n /^(?:#{1,6}\\s+)?\\*{0,2}(?:references?|sources?|fontes?|refer[eê]ncias?|fuentes?)\\*{0,2}:?\\*{0,2}\\s*$/i\r\n\r\nconst LINK_RE = /\\[([^\\]]+)\\]\\(([^)\\s]+)(?:\\s+\"[^\"]*\")?\\)/\r\n\r\nexport const splitAnswerSources = (content: string) => {\r\n const lines = content.replace(/\\r\\n/g, '\\n').split('\\n')\r\n let headingIndex = -1\r\n\r\n for (let i = lines.length - 1; i >= 0; i -= 1) {\r\n if (SOURCES_HEADING_RE.test(lines[i].trim())) {\r\n headingIndex = i\r\n break\r\n }\r\n }\r\n\r\n if (headingIndex === -1) {\r\n return { body: content, sources: [] as AnswerSource[] }\r\n }\r\n\r\n const seen = new Set()\r\n const sources: AnswerSource[] = []\r\n\r\n for (let i = headingIndex + 1; i < lines.length; i += 1) {\r\n const line = lines[i].trim()\r\n if (!line || /^---+$/.test(line)) continue\r\n const match = line.match(LINK_RE)\r\n if (!match) continue\r\n const href = match[2]\r\n if (seen.has(href)) continue\r\n seen.add(href)\r\n sources.push({\r\n title: match[1].replace(/\\*\\*/g, '').trim() || href,\r\n href,\r\n })\r\n }\r\n\r\n if (!sources.length) {\r\n return { body: content, sources: [] as AnswerSource[] }\r\n }\r\n\r\n let end = headingIndex\r\n while (\r\n end > 0 &&\r\n (!lines[end - 1].trim() || /^---+$/.test(lines[end - 1].trim()))\r\n ) {\r\n end -= 1\r\n }\r\n\r\n return {\r\n body: lines.slice(0, end).join('\\n').trimEnd(),\r\n sources,\r\n }\r\n}\r\n\r\nconst originLabel = (href: string) => {\r\n try {\r\n const host = new URL(href).hostname.replace(/^www\\./, '')\r\n if (host === 'help.vtex.com') return 'Help Center'\r\n if (host === 'developers.vtex.com') return 'Developers'\r\n return host\r\n } catch {\r\n return ''\r\n }\r\n}\r\n\r\nconst AnswerSources = ({ sources }: { sources: AnswerSource[] }) => {\r\n const { locale } = useContext(LibraryContext)\r\n const localized = messages[locale] ?? messages.en\r\n const title = localized['ask_assistant.sources'] || 'Sources'\r\n\r\n if (!sources.length) return null\r\n\r\n return (\r\n \r\n {title}\r\n \r\n {sources.map((source) => {\r\n const origin = originLabel(source.href)\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {source.title}\r\n \r\n {origin ? {origin} : null}\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 AnswerSources\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst focusRing: SxStyleProp = {\r\n ':focus-visible': {\r\n outline: '2px solid #E31C58',\r\n outlineOffset: '2px',\r\n },\r\n}\r\n\r\nconst trigger: SxStyleProp = {\r\n display: ['none', 'none', 'none', 'inline-flex'],\r\n alignItems: 'center',\r\n gap: '8px',\r\n height: '36px',\r\n px: '12px',\r\n border: '1px solid #E7E9EE',\r\n borderRadius: '6px',\r\n backgroundColor: '#FFFFFF',\r\n color: 'muted.0',\r\n fontSize: '13px',\r\n fontWeight: '500',\r\n lineHeight: '16px',\r\n cursor: 'pointer',\r\n whiteSpace: 'nowrap',\r\n transition:\r\n 'background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease',\r\n ':hover': {\r\n backgroundColor: '#F8F7FC',\r\n borderColor: '#D8D8E3',\r\n color: '#000711',\r\n },\r\n ...focusRing,\r\n}\r\n\r\nconst floatingTrigger: SxStyleProp = {\r\n display: ['inline-flex', 'inline-flex', 'inline-flex', 'none'],\r\n position: 'fixed',\r\n right: '16px',\r\n bottom: 'calc(16px + env(safe-area-inset-bottom, 0px))',\r\n zIndex: 40,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: '56px',\r\n height: '56px',\r\n padding: 0,\r\n border: 'none',\r\n borderRadius: '50%',\r\n backgroundColor: '#142032',\r\n color: '#FFFFFF',\r\n cursor: 'pointer',\r\n boxShadow: '0 8px 24px rgba(20, 32, 50, 0.28)',\r\n transition: 'background-color 0.15s ease, transform 0.15s ease',\r\n ':hover': {\r\n backgroundColor: '#000711',\r\n },\r\n ':active': {\r\n transform: 'scale(0.96)',\r\n },\r\n ...focusRing,\r\n}\r\n\r\nconst triggerIcon: SxStyleProp = {\r\n flexShrink: 0,\r\n}\r\n\r\nconst triggerShortcut: SxStyleProp = {\r\n display: ['none', 'none', 'none', 'none', 'inline-flex'],\r\n alignItems: 'center',\r\n gap: '4px',\r\n ml: '2px',\r\n}\r\n\r\nconst triggerKbd: SxStyleProp = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n minWidth: '20px',\r\n height: '20px',\r\n px: '5px',\r\n borderRadius: '4px',\r\n border: '1px solid #E7E9EE',\r\n background: '#FAFAFB',\r\n boxShadow: '0 1px 0 #E7E9EE',\r\n fontSize: '11px',\r\n fontWeight: '400',\r\n fontFamily: 'inherit',\r\n color: '#4A596B',\r\n lineHeight: '20px',\r\n letterSpacing: 0,\r\n}\r\n\r\n/** First Brand UI / Theme UI breakpoint — panel is a side column, not a sheet. */\r\nexport const SPLIT_VIEW_MQ = '(min-width: 40em)'\r\nexport const PANEL_WIDTH = 'min(400px, 100vw)'\r\nexport const PANEL_EXPANDED_WIDTH = 'min(720px, 80vw)'\r\n\r\nexport const splitViewCss = `\r\n@media screen and ${SPLIT_VIEW_MQ} {\r\n html:has([data-ask-assistant-panel]) {\r\n --ask-assistant-width: ${PANEL_WIDTH};\r\n --ask-assistant-top: 0px;\r\n }\r\n html:has([data-ask-assistant-panel][data-expanded=\"true\"]) {\r\n --ask-assistant-width: ${PANEL_EXPANDED_WIDTH};\r\n }\r\n html:has([data-ask-assistant-panel]) [data-docs-header] {\r\n max-width: none;\r\n }\r\n html:has([data-ask-assistant-panel]) [data-docs-header] ~ * {\r\n box-sizing: border-box;\r\n padding-right: var(--ask-assistant-width) !important;\r\n }\r\n html:has([data-ask-assistant-panel]) [data-article-aside] {\r\n display: none !important;\r\n }\r\n html:has([data-ask-assistant-panel]):not(:has([data-docs-header])) body {\r\n box-sizing: border-box;\r\n padding-right: var(--ask-assistant-width);\r\n }\r\n}\r\n`\r\n\r\nconst overlay: SxStyleProp = {\r\n display: ['block', 'none'],\r\n position: 'fixed',\r\n inset: 0,\r\n backgroundColor: 'rgba(20, 32, 50, 0.32)',\r\n backdropFilter: 'blur(2px)',\r\n WebkitBackdropFilter: 'blur(2px)',\r\n zIndex: 10000,\r\n}\r\n\r\nconst EMPTY_STATE_BACKGROUND = [\r\n 'radial-gradient(120% 80% at 0% 0%, #F8DDEC 0%, rgba(248, 221, 236, 0) 54%)',\r\n 'radial-gradient(110% 85% at 100% 100%, #D2EEF8 0%, rgba(210, 238, 248, 0) 56%)',\r\n 'linear-gradient(135deg, #FDF6FB 0%, #F6F8FD 46%, #EEF7FC 100%)',\r\n].join(', ')\r\n\r\nconst panel = (expanded: boolean): SxStyleProp => ({\r\n position: 'fixed',\r\n top: [0, 'var(--ask-assistant-top, 0px)'],\r\n right: 0,\r\n bottom: 0,\r\n zIndex: [10001, 40],\r\n display: 'flex',\r\n flexDirection: 'column',\r\n width: expanded ? ['100vw', PANEL_EXPANDED_WIDTH] : ['100vw', PANEL_WIDTH],\r\n maxWidth: '100vw',\r\n backgroundColor: '#FFFFFF',\r\n borderLeft: '1px solid #E7E9EE',\r\n boxShadow: ['-8px 0 32px rgba(20, 32, 50, 0.12)', 'none'],\r\n overscrollBehavior: 'contain',\r\n transition: 'width 0.2s ease',\r\n})\r\n\r\nconst header: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n flexShrink: 0,\r\n px: '16px',\r\n py: '12px',\r\n borderBottom: '1px solid #E7E9EE',\r\n backgroundColor: '#FFFFFF',\r\n}\r\n\r\nconst headerTitle: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '8px',\r\n color: '#142032',\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '20px',\r\n letterSpacing: '-0.01em',\r\n}\r\n\r\nconst headerActions: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '2px',\r\n}\r\n\r\nconst iconButton: SxStyleProp = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: '32px',\r\n height: '32px',\r\n padding: 0,\r\n border: 'none',\r\n borderRadius: '6px',\r\n background: 'transparent',\r\n color: '#4A596B',\r\n cursor: 'pointer',\r\n transition: 'background-color 0.15s ease, color 0.15s ease',\r\n ':hover': {\r\n backgroundColor: '#F8F7FC',\r\n color: '#142032',\r\n },\r\n ':disabled': {\r\n color: '#C7CDD6',\r\n cursor: 'default',\r\n backgroundColor: 'transparent',\r\n },\r\n ':disabled:hover': {\r\n color: '#C7CDD6',\r\n backgroundColor: 'transparent',\r\n },\r\n ...focusRing,\r\n}\r\n\r\nconst iconButtonActive: SxStyleProp = {\r\n ...iconButton,\r\n backgroundColor: '#F8F7FC',\r\n color: '#142032',\r\n}\r\n\r\nconst historyWrap: SxStyleProp = {\r\n position: 'relative',\r\n}\r\n\r\nconst historyMenu: SxStyleProp = {\r\n position: 'absolute',\r\n top: 'calc(100% + 6px)',\r\n right: 0,\r\n zIndex: 2,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n width: '260px',\r\n maxWidth: 'min(260px, calc(100vw - 24px))',\r\n py: '8px',\r\n backgroundColor: '#FFFFFF',\r\n border: '1px solid #E7E9EE',\r\n borderRadius: '8px',\r\n boxShadow:\r\n '0 8px 24px rgba(18, 21, 26, 0.12), 0 2px 6px rgba(18, 21, 26, 0.08)',\r\n overflow: 'hidden',\r\n}\r\n\r\nconst historyHeader: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n gap: '12px',\r\n px: '12px',\r\n pb: '8px',\r\n}\r\n\r\nconst historyTitle: SxStyleProp = {\r\n color: 'muted.1',\r\n fontSize: '12px',\r\n fontWeight: '600',\r\n lineHeight: '16px',\r\n textTransform: 'uppercase',\r\n letterSpacing: '0.04em',\r\n}\r\n\r\nconst historyClear: SxStyleProp = {\r\n padding: 0,\r\n border: 'none',\r\n background: 'transparent',\r\n color: '#D71D55',\r\n fontSize: '13px',\r\n fontWeight: '600',\r\n lineHeight: '16px',\r\n cursor: 'pointer',\r\n ':hover': {\r\n color: '#C81E51',\r\n textDecoration: 'underline',\r\n },\r\n ...focusRing,\r\n}\r\n\r\nconst historyList: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n maxHeight: '280px',\r\n overflowY: 'auto',\r\n px: '4px',\r\n}\r\n\r\nconst historyItem: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '8px',\r\n width: '100%',\r\n px: '8px',\r\n py: '8px',\r\n border: 'none',\r\n borderRadius: '6px',\r\n background: 'transparent',\r\n color: '#142032',\r\n fontSize: '13px',\r\n fontWeight: '400',\r\n lineHeight: '18px',\r\n textAlign: 'left',\r\n cursor: 'pointer',\r\n ':hover': {\r\n backgroundColor: '#F8F7FC',\r\n },\r\n ...focusRing,\r\n}\r\n\r\nconst historyItemIcon: SxStyleProp = {\r\n flexShrink: 0,\r\n color: '#4A596B',\r\n}\r\n\r\nconst historyItemText: SxStyleProp = {\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n whiteSpace: 'nowrap',\r\n}\r\n\r\nconst messages: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n flex: 1,\r\n minHeight: 0,\r\n gap: '16px',\r\n px: '16px',\r\n py: '16px',\r\n overflowY: 'auto',\r\n}\r\n\r\nconst userBubble: SxStyleProp = {\r\n alignSelf: 'flex-end',\r\n maxWidth: '85%',\r\n px: '12px',\r\n py: '8px',\r\n borderRadius: '8px',\r\n backgroundColor: '#F8F7FC',\r\n border: '1px solid #EDEAF6',\r\n color: '#142032',\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n wordBreak: 'break-word',\r\n}\r\n\r\nconst assistantBlock: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'flex-start',\r\n gap: '12px',\r\n width: '100%',\r\n}\r\n\r\nconst process: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '10px',\r\n width: '100%',\r\n}\r\n\r\nconst processHeader: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '8px',\r\n color: '#5B6E84',\r\n fontSize: '13px',\r\n fontWeight: '400',\r\n lineHeight: '20px',\r\n}\r\n\r\nconst processCheck: SxStyleProp = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: '16px',\r\n height: '16px',\r\n borderRadius: '50%',\r\n backgroundColor: '#38853C',\r\n color: '#FFFFFF',\r\n flexShrink: 0,\r\n}\r\n\r\nconst processSpinner: SxStyleProp = {\r\n width: '14px',\r\n height: '14px',\r\n borderRadius: '50%',\r\n border: '2px solid #E7E9EE',\r\n borderTopColor: '#5B6E84',\r\n flexShrink: 0,\r\n animation: 'askAssistantSpin 0.8s linear infinite',\r\n '@keyframes askAssistantSpin': {\r\n from: { transform: 'rotate(0deg)' },\r\n to: { transform: 'rotate(360deg)' },\r\n },\r\n}\r\n\r\nconst processSteps: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '8px',\r\n}\r\n\r\nconst processStep: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '8px',\r\n color: '#142032',\r\n fontSize: '13px',\r\n fontWeight: '400',\r\n lineHeight: '18px',\r\n}\r\n\r\nconst processBadge: SxStyleProp = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n height: '20px',\r\n px: '8px',\r\n borderRadius: '4px',\r\n backgroundColor: '#F4F5F7',\r\n color: '#4A596B',\r\n fontSize: '12px',\r\n fontWeight: '500',\r\n lineHeight: '16px',\r\n flexShrink: 0,\r\n}\r\n\r\nconst processStepIcon: SxStyleProp = {\r\n flexShrink: 0,\r\n color: '#4A596B',\r\n}\r\n\r\nconst processBookIcon: SxStyleProp = {\r\n flexShrink: 0,\r\n color: '#E31C58',\r\n}\r\n\r\nconst processStepLabel: SxStyleProp = {\r\n color: '#142032',\r\n fontSize: '13px',\r\n lineHeight: '18px',\r\n}\r\n\r\nconst messageActions: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '4px',\r\n mt: '4px',\r\n}\r\n\r\nconst actionButton: SxStyleProp = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: '28px',\r\n height: '28px',\r\n padding: 0,\r\n border: '1px solid transparent',\r\n borderRadius: '6px',\r\n background: 'transparent',\r\n color: '#A1A8B3',\r\n cursor: 'pointer',\r\n transition:\r\n 'background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease',\r\n ':hover': {\r\n backgroundColor: '#FFFFFF',\r\n borderColor: '#E7E9EE',\r\n color: '#4A596B',\r\n },\r\n ...focusRing,\r\n}\r\n\r\nconst actionButtonActive: SxStyleProp = {\r\n ...actionButton,\r\n color: '#142032',\r\n backgroundColor: '#F8F7FC',\r\n borderColor: '#EDEAF6',\r\n}\r\n\r\nconst dislikeIcon: SxStyleProp = {\r\n transform: 'rotate(180deg)',\r\n}\r\n\r\nconst inputWrap: SxStyleProp = {\r\n flexShrink: 0,\r\n px: '16px',\r\n pb: '16px',\r\n pt: '12px',\r\n borderTop: '1px solid #E7E9EE',\r\n backgroundColor: '#FFFFFF',\r\n}\r\n\r\nconst inputWrapCentered: SxStyleProp = {\r\n flexShrink: 0,\r\n width: '100%',\r\n px: '16px',\r\n pb: '8px',\r\n}\r\n\r\nconst emptyState: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n flex: 1,\r\n minHeight: 0,\r\n overflowY: 'auto',\r\n backgroundColor: '#F7F8FC',\r\n backgroundImage: EMPTY_STATE_BACKGROUND,\r\n}\r\n\r\nconst emptyMain: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'stretch',\r\n justifyContent: 'center',\r\n flex: 1,\r\n minHeight: '200px',\r\n}\r\n\r\nconst emptyHero: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n flexShrink: 0,\r\n px: '24px',\r\n mb: '20px',\r\n}\r\n\r\nconst emptyHeroIcon: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n mb: '8px',\r\n color: '#5B6E84',\r\n svg: {\r\n overflow: 'visible',\r\n },\r\n path: {\r\n strokeWidth: '1',\r\n strokeLinecap: 'round',\r\n },\r\n}\r\n\r\nconst emptyHeroCopy: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n gap: '6px',\r\n mt: '4px',\r\n textAlign: 'center',\r\n}\r\n\r\nconst emptyHeroTitle: SxStyleProp = {\r\n m: 0,\r\n color: '#142032',\r\n fontSize: '22px',\r\n fontWeight: '600',\r\n lineHeight: '28px',\r\n letterSpacing: '-0.02em',\r\n}\r\n\r\nconst emptyHeroSubtitle: SxStyleProp = {\r\n m: 0,\r\n color: '#4A596B',\r\n fontSize: '14px',\r\n fontWeight: '400',\r\n lineHeight: '20px',\r\n}\r\n\r\nconst examples: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '12px',\r\n width: '100%',\r\n px: '16px',\r\n pt: '12px',\r\n pb: '16px',\r\n}\r\n\r\nconst examplesLabel: SxStyleProp = {\r\n color: 'muted.1',\r\n fontSize: '12px',\r\n fontWeight: '600',\r\n lineHeight: '16px',\r\n textTransform: 'uppercase',\r\n letterSpacing: '0.04em',\r\n}\r\n\r\nconst examplePills: SxStyleProp = {\r\n display: 'flex',\r\n flexWrap: 'nowrap',\r\n gap: '8px',\r\n overflowX: 'auto',\r\n scrollbarWidth: 'none',\r\n msOverflowStyle: 'none',\r\n '&::-webkit-scrollbar': {\r\n display: 'none',\r\n },\r\n}\r\n\r\nconst examplePill = (active: boolean): SxStyleProp => ({\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n gap: '6px',\r\n height: '32px',\r\n px: '12px',\r\n border: `1px solid ${active ? 'rgba(216, 216, 227, 0.9)' : 'rgba(231, 233, 238, 0.8)'}`,\r\n borderRadius: '16px',\r\n backgroundColor: active\r\n ? 'rgba(248, 247, 252, 0.92)'\r\n : 'rgba(255, 255, 255, 0.72)',\r\n color: '#4A596B',\r\n fontSize: '13px',\r\n fontWeight: active ? '600' : '500',\r\n lineHeight: '16px',\r\n cursor: 'pointer',\r\n whiteSpace: 'nowrap',\r\n flexShrink: 0,\r\n backdropFilter: 'blur(10px)',\r\n WebkitBackdropFilter: 'blur(10px)',\r\n transition: 'background-color 0.15s ease, border-color 0.15s ease',\r\n ':hover': {\r\n borderColor: '#3A4F66',\r\n color: '#4A596B',\r\n },\r\n ...focusRing,\r\n})\r\n\r\nconst examplePillIcon: SxStyleProp = {\r\n width: '14px',\r\n height: '14px',\r\n minWidth: '14px',\r\n minHeight: '14px',\r\n flexShrink: 0,\r\n}\r\n\r\nconst exampleQuestions: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '8px',\r\n}\r\n\r\nconst exampleQuestion: SxStyleProp = {\r\n display: 'block',\r\n width: '100%',\r\n px: '12px',\r\n py: '10px',\r\n border: '1px solid rgba(231, 233, 238, 0.8)',\r\n borderRadius: '8px',\r\n background: 'rgba(255, 255, 255, 0.72)',\r\n color: '#4A596B',\r\n fontSize: '13px',\r\n lineHeight: '20px',\r\n textAlign: 'left',\r\n cursor: 'pointer',\r\n backdropFilter: 'blur(10px)',\r\n WebkitBackdropFilter: 'blur(10px)',\r\n transition:\r\n 'background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease',\r\n ':hover': {\r\n backgroundColor: 'rgba(248, 247, 252, 0.92)',\r\n borderColor: '#D8D8E3',\r\n color: '#142032',\r\n },\r\n ...focusRing,\r\n}\r\n\r\nconst inputBox: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '8px',\r\n px: '12px',\r\n pt: '10px',\r\n pb: '10px',\r\n border: '1px solid #E7E9EE',\r\n borderRadius: '8px',\r\n backgroundColor: '#FFFFFF',\r\n transition: 'border-color 0.15s ease, box-shadow 0.15s ease',\r\n ':hover': {\r\n borderColor: '#C7CDD6',\r\n },\r\n ':focus-within': {\r\n borderColor: '#E31C58',\r\n boxShadow: '0 0 0 3px rgba(227, 28, 88, 0.16)',\r\n },\r\n}\r\n\r\nconst inputBoxEmpty: SxStyleProp = {\r\n ...inputBox,\r\n backgroundColor: 'rgba(255, 255, 255, 0.86)',\r\n borderColor: 'rgba(231, 233, 238, 0.85)',\r\n boxShadow: '0 10px 32px rgba(20, 32, 50, 0.06)',\r\n backdropFilter: 'blur(16px)',\r\n WebkitBackdropFilter: 'blur(16px)',\r\n ':focus-within': {\r\n borderColor: '#E31C58',\r\n boxShadow:\r\n '0 0 0 3px rgba(227, 28, 88, 0.16), 0 10px 32px rgba(20, 32, 50, 0.06)',\r\n },\r\n}\r\n\r\nconst textarea: SxStyleProp = {\r\n width: '100%',\r\n minHeight: '44px',\r\n maxHeight: '120px',\r\n border: 'none',\r\n outline: 'none',\r\n resize: 'none',\r\n background: 'transparent',\r\n color: '#142032',\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n fontFamily: 'inherit',\r\n '::placeholder': {\r\n color: '#A1A8B3',\r\n },\r\n ':disabled': {\r\n color: '#4A596B',\r\n },\r\n}\r\n\r\nconst inputFooter: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'flex-end',\r\n}\r\n\r\nconst sendButton = (enabled: boolean): SxStyleProp => ({\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: '32px',\r\n height: '32px',\r\n padding: 0,\r\n border: 'none',\r\n borderRadius: '6px',\r\n backgroundColor: '#142032',\r\n color: '#FFFFFF',\r\n opacity: enabled ? 1 : 0.55,\r\n cursor: enabled ? 'pointer' : 'not-allowed',\r\n transition: 'background-color 0.15s ease, opacity 0.15s ease',\r\n ':hover': {\r\n backgroundColor: enabled ? '#000711' : '#142032',\r\n },\r\n ...focusRing,\r\n})\r\n\r\nconst markdown: SxStyleProp = {\r\n width: '100%',\r\n color: '#142032',\r\n fontSize: '14px',\r\n lineHeight: '22px',\r\n}\r\n\r\nconst markdownParagraph: SxStyleProp = {\r\n margin: 0,\r\n '& + &': {\r\n mt: '10px',\r\n },\r\n}\r\n\r\nconst markdownHeading: SxStyleProp = {\r\n margin: '0 0 8px',\r\n fontSize: '15px',\r\n fontWeight: '600',\r\n lineHeight: '22px',\r\n letterSpacing: '-0.01em',\r\n color: '#142032',\r\n}\r\n\r\nconst markdownList: SxStyleProp = {\r\n margin: '8px 0',\r\n paddingLeft: '20px',\r\n listStylePosition: 'outside',\r\n 'li + li': {\r\n mt: '6px',\r\n },\r\n 'ol, ul': {\r\n mt: '6px',\r\n mb: 0,\r\n },\r\n}\r\n\r\nconst markdownOrderedList: SxStyleProp = {\r\n ...markdownList,\r\n listStyleType: 'decimal',\r\n}\r\n\r\nconst markdownUnorderedList: SxStyleProp = {\r\n ...markdownList,\r\n listStyleType: 'disc',\r\n}\r\n\r\nconst markdownListItem: SxStyleProp = {\r\n display: 'list-item',\r\n}\r\n\r\nconst markdownLink: SxStyleProp = {\r\n color: '#D71D55',\r\n fontWeight: '600',\r\n textDecoration: 'none',\r\n ':hover': {\r\n color: '#C81E51',\r\n textDecoration: 'underline',\r\n textUnderlineOffset: '2px',\r\n },\r\n}\r\n\r\nconst markdownRule: SxStyleProp = {\r\n border: 'none',\r\n borderTop: '1px solid #E7E9EE',\r\n my: '12px',\r\n}\r\n\r\nconst inlineCode: SxStyleProp = {\r\n px: '4px',\r\n py: '1px',\r\n borderRadius: '4px',\r\n border: '1px solid #E7E9EE',\r\n backgroundColor: '#F8F7FC',\r\n fontSize: '13px',\r\n fontFamily: 'monospace',\r\n}\r\n\r\nconst sources: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '8px',\r\n width: '100%',\r\n mt: '16px',\r\n pt: '14px',\r\n borderTop: '1px solid #E7E9EE',\r\n}\r\n\r\nconst sourcesLabel: SxStyleProp = {\r\n color: 'muted.1',\r\n fontSize: '12px',\r\n fontWeight: '600',\r\n lineHeight: '16px',\r\n textTransform: 'uppercase',\r\n letterSpacing: '0.04em',\r\n}\r\n\r\nconst sourcesList: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '6px',\r\n}\r\n\r\nconst sourceCard: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '10px',\r\n width: '100%',\r\n px: '10px',\r\n py: '8px',\r\n border: '1px solid #E7E9EE',\r\n borderRadius: '8px',\r\n backgroundColor: '#FFFFFF',\r\n color: 'inherit',\r\n textDecoration: 'none',\r\n cursor: 'pointer',\r\n transition:\r\n 'background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease',\r\n ':hover': {\r\n backgroundColor: '#F8F7FC',\r\n borderColor: '#D8D8E3',\r\n '.source-title': {\r\n color: '#000711',\r\n },\r\n '.source-arrow': {\r\n color: '#4A596B',\r\n },\r\n },\r\n ':focus-visible': {\r\n outline: '2px solid #E31C58',\r\n outlineOffset: '2px',\r\n },\r\n}\r\n\r\nconst sourceIcon: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: '28px',\r\n height: '28px',\r\n borderRadius: '6px',\r\n backgroundColor: '#F8F7FC',\r\n color: '#4A596B',\r\n flexShrink: 0,\r\n}\r\n\r\nconst sourceCopy: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '2px',\r\n minWidth: 0,\r\n flex: 1,\r\n}\r\n\r\nconst sourceTitle: SxStyleProp = {\r\n color: '#142032',\r\n fontSize: '13px',\r\n fontWeight: '500',\r\n lineHeight: '18px',\r\n overflow: 'hidden',\r\n display: '-webkit-box',\r\n WebkitLineClamp: 2,\r\n WebkitBoxOrient: 'vertical',\r\n}\r\n\r\nconst sourceMeta: SxStyleProp = {\r\n color: '#5B6E84',\r\n fontSize: '12px',\r\n fontWeight: '400',\r\n lineHeight: '16px',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n whiteSpace: 'nowrap',\r\n}\r\n\r\nconst sourceArrow: SxStyleProp = {\r\n display: 'inline-flex',\r\n flexShrink: 0,\r\n color: '#C7CDD6',\r\n transition: 'color 0.15s ease',\r\n}\r\n\r\nconst errorText: SxStyleProp = {\r\n width: '100%',\r\n padding: '12px 14px',\r\n background: '#FFF6F4',\r\n border: '1px solid #F8D0C8',\r\n borderRadius: '8px',\r\n color: '#8A1F11',\r\n fontSize: '13px',\r\n lineHeight: '18px',\r\n}\r\n\r\nexport default {\r\n trigger,\r\n triggerIcon,\r\n triggerShortcut,\r\n triggerKbd,\r\n floatingTrigger,\r\n overlay,\r\n panel,\r\n header,\r\n headerTitle,\r\n headerActions,\r\n iconButton,\r\n iconButtonActive,\r\n historyWrap,\r\n historyMenu,\r\n historyHeader,\r\n historyTitle,\r\n historyClear,\r\n historyList,\r\n historyItem,\r\n historyItemIcon,\r\n historyItemText,\r\n messages,\r\n userBubble,\r\n assistantBlock,\r\n process,\r\n processHeader,\r\n processCheck,\r\n processSpinner,\r\n processSteps,\r\n processStep,\r\n processBadge,\r\n processStepIcon,\r\n processBookIcon,\r\n processStepLabel,\r\n messageActions,\r\n actionButton,\r\n actionButtonActive,\r\n dislikeIcon,\r\n inputWrap,\r\n inputWrapCentered,\r\n emptyState,\r\n emptyMain,\r\n emptyHero,\r\n emptyHeroIcon,\r\n emptyHeroCopy,\r\n emptyHeroTitle,\r\n emptyHeroSubtitle,\r\n examples,\r\n examplesLabel,\r\n examplePills,\r\n examplePill,\r\n examplePillIcon,\r\n exampleQuestions,\r\n exampleQuestion,\r\n inputBox,\r\n inputBoxEmpty,\r\n textarea,\r\n inputFooter,\r\n sendButton,\r\n markdown,\r\n markdownParagraph,\r\n markdownHeading,\r\n markdownList,\r\n markdownOrderedList,\r\n markdownUnorderedList,\r\n markdownListItem,\r\n markdownLink,\r\n markdownRule,\r\n inlineCode,\r\n sources,\r\n sourcesLabel,\r\n sourcesList,\r\n sourceCard,\r\n sourceIcon,\r\n sourceCopy,\r\n sourceTitle,\r\n sourceMeta,\r\n sourceArrow,\r\n errorText,\r\n}\r\n","import type { AssistantStreamEvent, AssistantStreamHandler } from './types'\r\n\r\nconst parseSseBlock = (block: string): AssistantStreamEvent | null => {\r\n let eventName = 'message'\r\n const dataLines: string[] = []\r\n\r\n for (const rawLine of block.split('\\n')) {\r\n const line = rawLine.replace(/\\r$/, '')\r\n if (!line || line.startsWith(':')) continue\r\n if (line.startsWith('event:')) {\r\n eventName = line.slice(6).trim()\r\n continue\r\n }\r\n if (line.startsWith('data:')) {\r\n dataLines.push(line.slice(5).trimStart())\r\n }\r\n }\r\n\r\n if (eventName === 'done') return { type: 'done' }\r\n\r\n const data = dataLines.join('\\n')\r\n if (!data) return null\r\n\r\n try {\r\n return JSON.parse(data) as AssistantStreamEvent\r\n } catch {\r\n return null\r\n }\r\n}\r\n\r\nexport const countSearchResults = (markdown = '') =>\r\n (markdown.match(/^## \\d+\\./gm) ?? []).length\r\n\r\nexport const isInternalEvent = (type: string) =>\r\n type === 'ActionStep' || type === 'ActionOutput'\r\n\r\nconst splitSseEvents = (buffer: string) => buffer.split(/\\r\\n\\r\\n|\\n\\n/)\r\n\r\nexport const streamAssistant = async (\r\n url: string,\r\n signal: AbortSignal,\r\n onEvent: (event: AssistantStreamEvent) => void\r\n) => {\r\n const response = await fetch(url, {\r\n signal,\r\n headers: { Accept: 'text/event-stream' },\r\n })\r\n\r\n if (!response.ok || !response.body) {\r\n throw new Error(`Assistant request failed (${response.status})`)\r\n }\r\n\r\n const reader = response.body.getReader()\r\n const decoder = new TextDecoder()\r\n let buffer = ''\r\n\r\n while (true) {\r\n const { done, value } = await reader.read()\r\n if (done) break\r\n\r\n buffer += decoder.decode(value, { stream: true })\r\n const parts = splitSseEvents(buffer)\r\n buffer = parts.pop() ?? ''\r\n\r\n for (const part of parts) {\r\n const event = parseSseBlock(part)\r\n if (event) onEvent(event)\r\n }\r\n }\r\n\r\n const trailing = parseSseBlock(buffer)\r\n if (trailing) onEvent(trailing)\r\n}\r\n\r\nexport const createDefaultStream =\r\n (streamUrl: string, locale?: string): AssistantStreamHandler =>\r\n async (query, signal, onEvent) => {\r\n const base =\r\n typeof window !== 'undefined' ? window.location.origin : undefined\r\n const url = new URL(streamUrl, base)\r\n url.searchParams.set('q', query)\r\n if (locale) url.searchParams.set('locale', locale)\r\n await streamAssistant(url.toString(), signal, onEvent)\r\n }\r\n","import { Flex } from '@vtex/brand-ui'\r\nimport Link from 'next/link.js'\r\n\r\nimport styles from './styles'\r\n\r\nexport type BreadcrumbItem = {\r\n slug: string\r\n name: string\r\n type: string\r\n}\r\n\r\nexport type BreadcrumbProps = {\r\n breadcrumbList?: BreadcrumbItem[]\r\n /** @deprecated Use `breadcrumbList`. Kept for callers that still pass the old typo. */\r\n breadcumbList?: BreadcrumbItem[]\r\n}\r\n\r\nconst Breadcrumb = ({\r\n breadcrumbList,\r\n breadcumbList,\r\n}: BreadcrumbProps) => {\r\n const items = (breadcrumbList ?? breadcumbList ?? []).slice(0, -1)\r\n\r\n return (\r\n \r\n {items.map((item, idx) => {\r\n const label = item.name || 'Untitled'\r\n\r\n return (\r\n \r\n {item.type === 'markdown' ? (\r\n {label}\r\n ) : (\r\n {label}\r\n )}\r\n \r\n )\r\n })}\r\n \r\n )\r\n}\r\n\r\nexport default Breadcrumb\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst muted = '#5E6E84'\r\nconst ink = '#142032'\r\nconst pink = '#E31C58'\r\n\r\nconst breadcrumb: SxStyleProp = {\r\n alignItems: 'center',\r\n flexWrap: 'wrap',\r\n rowGap: '4px',\r\n minWidth: 0,\r\n color: muted,\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n fontWeight: '400',\r\n '&& a, && [data-breadcrumb-label]': {\r\n color: muted,\r\n fontWeight: '400',\r\n textDecoration: 'none',\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n maxWidth: ['180px', '280px', 'none'],\r\n },\r\n '&& a': {\r\n cursor: 'pointer',\r\n transition: 'color 0.15s ease',\r\n ':hover': {\r\n color: ink,\r\n },\r\n ':focus-visible': {\r\n outline: `2px solid ${pink}`,\r\n outlineOffset: '2px',\r\n borderRadius: '2px',\r\n },\r\n },\r\n}\r\n\r\nconst crumb: SxStyleProp = {\r\n alignItems: 'center',\r\n minWidth: 0,\r\n '&:not(:last-child)::after': {\r\n content: '\"\"',\r\n display: 'inline-block',\r\n width: '5px',\r\n height: '5px',\r\n mx: '8px',\r\n borderRight: '1.5px solid currentColor',\r\n borderTop: '1.5px solid currentColor',\r\n transform: 'rotate(45deg)',\r\n opacity: 0.55,\r\n flexShrink: 0,\r\n pointerEvents: 'none',\r\n },\r\n}\r\n\r\nexport default { breadcrumb, crumb }\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 = (currentUrl?: string) => {\r\n const encodedUrl = currentUrl ? encodeURIComponent(currentUrl) : ''\r\n return `https://docs.google.com/forms/d/e/1FAIpQLSfmnotPvPjw-SjiE7lt2Nt3RQgNUe10ixXZmuO2v9enOJReoQ/viewform?entry.1972292648=developers.vtex.com&entry.1799503232=${encodedUrl}`\r\n}\r\n\r\nexport const getGithubURL = () => {\r\n return `https://github.com/vtex-apps`\r\n}\r\n\r\nexport const getDeveloperPortalURL = () => {\r\n return `https://developers.vtex.com/`\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\r\nexport const getLinkedinURL = () => {\r\n return 'https://linkedin.com/company/vtex'\r\n}\r\n\r\nexport const getFacebookURL = () => {\r\n return 'https://www.facebook.com/vtexcommerce/'\r\n}\r\n\r\nexport const getInstagramURL = () => {\r\n return 'https://www.instagram.com/vtexbrasil/'\r\n}\r\n\r\nexport const getYoutubeURL = () => {\r\n return 'https://www.youtube.com/c/VTEX-Commerce/featured'\r\n}\r\n\r\nexport const getTwitterURL = () => {\r\n return 'https://twitter.com/vtexonline'\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: ['22px', '26px', '28px', '32px'],\r\n lineHeight: ['28px', '34px', '36px', '40px'],\r\n fontWeight: '400',\r\n color: '#132032',\r\n textAlign: 'center',\r\n letterSpacing: '-0.02em',\r\n width: '100%',\r\n}\r\n\r\nconst description: SxStyleProp = {\r\n fontSize: ['14px', '16px'],\r\n lineHeight: ['20px', '24px'],\r\n textAlign: 'center',\r\n marginBottom: '16px',\r\n color: '#4A596B',\r\n}\r\n\r\nconst inputContainer: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: ['column', 'row'],\r\n gap: '8px',\r\n justifyContent: 'center',\r\n alignItems: ['stretch', '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: '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',\r\n color: '#A1A8B3',\r\n lineHeight: '20px',\r\n fontWeight: '400',\r\n margin: '16px 0 0',\r\n textAlign: 'center',\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 { useContext, type ReactNode } from 'react'\r\nimport { Box, Flex, Link } from '@vtex/brand-ui'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport {\r\n getCommunityURL,\r\n getDeveloperPortalURL,\r\n getFacebookURL,\r\n getFeedbackURL,\r\n getGithubURL,\r\n getHelpCenterURL,\r\n getInstagramURL,\r\n getLinkedinURL,\r\n getTwitterURL,\r\n getYoutubeURL,\r\n} from 'utils/get-url'\r\nimport VTEXLogoFooter from 'components/icons/vtex-logo-footer'\r\nimport InstagramIcon from 'components/icons/instagram-icon'\r\nimport YoutubeIcon from 'components/icons/youtube-icon'\r\nimport FacebookCircleIcon from 'components/icons/facebook-circle-icon'\r\nimport LinkedinCircleIcon from 'components/icons/linkedin-circle-icon'\r\nimport styles from './styles'\r\n\r\nexport type FooterLink = {\r\n label: string\r\n href: string\r\n}\r\n\r\nexport type FooterVariant = 'helpcenter' | 'devportal'\r\n\r\nexport type FooterProps = {\r\n /**\r\n * Which site is rendering the Footer. Help Center shows a Developer Portal\r\n * link; Developer Portal shows a Help Center link.\r\n */\r\n variant?: FooterVariant\r\n /** Overrides the default GitHub, cross-site, Community, and Feedback links. */\r\n links?: FooterLink[]\r\n githubUrl?: string\r\n developerPortalUrl?: string\r\n helpCenterUrl?: string\r\n communityUrl?: string\r\n feedbackUrl?: string\r\n /** App-specific locale switcher rendered at the end of the link row. */\r\n localeSwitcher?: ReactNode\r\n}\r\n\r\nconst Footer = ({\r\n variant = 'helpcenter',\r\n links,\r\n githubUrl,\r\n developerPortalUrl,\r\n helpCenterUrl,\r\n communityUrl,\r\n feedbackUrl,\r\n localeSwitcher,\r\n}: FooterProps) => {\r\n const { locale } = useContext(LibraryContext)\r\n const localizedMessages = messages[locale] ?? messages.en\r\n\r\n const crossSiteLink: FooterLink =\r\n variant === 'devportal'\r\n ? {\r\n label: localizedMessages['footer.help_center'],\r\n href: helpCenterUrl ?? getHelpCenterURL(),\r\n }\r\n : {\r\n label: localizedMessages['footer.developer_portal'],\r\n href: developerPortalUrl ?? getDeveloperPortalURL(),\r\n }\r\n\r\n const defaultLinks: FooterLink[] = [\r\n {\r\n label: localizedMessages['footer.github'],\r\n href: githubUrl ?? getGithubURL(),\r\n },\r\n crossSiteLink,\r\n {\r\n label: localizedMessages['footer.community'],\r\n href: communityUrl ?? getCommunityURL(),\r\n },\r\n {\r\n label: localizedMessages['footer.feedback'],\r\n href: feedbackUrl ?? getFeedbackURL(),\r\n },\r\n ]\r\n\r\n const resolvedLinks = links ?? defaultLinks\r\n\r\n const socialIcons = [\r\n {\r\n href: getLinkedinURL(),\r\n component: ,\r\n },\r\n {\r\n href: getInstagramURL(),\r\n component: ,\r\n },\r\n {\r\n href: getYoutubeURL(),\r\n component: ,\r\n },\r\n {\r\n href: getFacebookURL(),\r\n component: ,\r\n },\r\n ]\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {socialIcons.map((icon) => (\r\n \r\n {icon.component}\r\n \r\n ))}\r\n \r\n \r\n \r\n {resolvedLinks.map((link) => (\r\n \r\n {link.label}\r\n \r\n ))}\r\n {localeSwitcher ? (\r\n {localeSwitcher}\r\n ) : null}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default Footer\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","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 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 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 { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst DESKTOP_FROM = '1024px'\r\n\r\nconst outerBox: SxStyleProp = {\r\n bg: '#142032',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n px: ['24px', '32px', '48px', '64px'],\r\n py: ['32px', '40px', '48px'],\r\n alignItems: 'flex-start',\r\n justifyContent: 'space-between',\r\n flexWrap: 'wrap',\r\n gap: ['24px', '32px'],\r\n width: '100%',\r\n boxSizing: 'border-box',\r\n [`@media screen and (min-width: ${DESKTOP_FROM})`]: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n },\r\n}\r\n\r\nconst brandAndSocial: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: ['column', 'row'],\r\n alignItems: ['flex-start', 'center'],\r\n gap: ['16px', '24px', '32px'],\r\n flexShrink: 0,\r\n width: '100%',\r\n [`@media screen and (min-width: ${DESKTOP_FROM})`]: {\r\n width: 'auto',\r\n },\r\n}\r\n\r\nconst logo: SxStyleProp = {\r\n width: '61px',\r\n height: '22px',\r\n flexShrink: 0,\r\n}\r\n\r\nconst socialMediaIcons: SxStyleProp = {\r\n gap: ['12px', '16px'],\r\n alignItems: 'center',\r\n flexWrap: 'wrap',\r\n a: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n lineHeight: 0,\r\n },\r\n}\r\n\r\nconst textLinkItems: SxStyleProp = {\r\n fontSize: ['14px', '16px'],\r\n gap: ['12px 20px', '16px 24px', '24px 32px', '45px'],\r\n flexWrap: 'wrap',\r\n alignItems: 'center',\r\n minWidth: 0,\r\n maxWidth: '100%',\r\n width: '100%',\r\n a: {\r\n color: '#CCCED8',\r\n whiteSpace: 'nowrap',\r\n },\r\n [`@media screen and (min-width: ${DESKTOP_FROM})`]: {\r\n width: 'auto',\r\n flex: 1,\r\n justifyContent: 'flex-end',\r\n },\r\n}\r\n\r\nconst localeSwitch: SxStyleProp = {\r\n flexShrink: 0,\r\n}\r\n\r\nconst icon: SxStyleProp = {\r\n size: [28, 32],\r\n color: '#CCCED7',\r\n transition: 'all 0.3s ease-out',\r\n borderRadius: '50%',\r\n ':hover': {\r\n color: 'white',\r\n backgroundColor: 'rgba(204, 206, 215, 0.3)',\r\n },\r\n}\r\n\r\nexport default {\r\n outerBox,\r\n brandAndSocial,\r\n logo,\r\n socialMediaIcons,\r\n textLinkItems,\r\n localeSwitch,\r\n icon,\r\n}\r\n","import * as BrandUI from '@vtex/brand-ui'\r\nimport { Link as VtexLink, Flex, Text, Box } from '@vtex/brand-ui'\r\nimport { useContext, useEffect, useRef, useState, type ReactNode } from 'react'\r\nimport { useRouter } from 'next/router.js'\r\nimport HamburgerMenu from 'lib/hamburger-menu'\r\nimport AskAssistant, {\r\n type AskAssistantProps,\r\n} from 'components/ask-assistant'\r\nimport SearchInput from 'components/search-input'\r\nimport VTEXDevPortalIcon from 'components/icons/vtex-devportal-icon'\r\nimport VTEXHelpCenterIcon from 'components/icons/vtex-helpcenter-icon'\r\nimport GridIcon from 'components/icons/grid-icon'\r\nimport LongArrowIcon from 'components/icons/long-arrow-icon'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport type { Section } from 'utils/typings/types'\r\nimport DropdownMenu from './dropdown-menu'\r\nimport styles from './styles'\r\n\r\nconst HeaderBrand = BrandUI.Header\r\n\r\nexport type HeaderVariant = 'helpcenter' | 'devportal'\r\n\r\nexport type HeaderProps = {\r\n /**\r\n * Which site is rendering the Header. Controls the default logo.\r\n * Help Center is the default; Developer Portal should pass `devportal`.\r\n */\r\n variant?: HeaderVariant\r\n /** When true, the docs dropdown shows `editorSections` instead of docs sections. */\r\n isEditor?: boolean\r\n /**\r\n * Sections shown in the docs dropdown. Defaults to the hamburger sections\r\n * from LibraryContext.\r\n */\r\n dropdownSections?: Section[][]\r\n /** Sections shown in the dropdown when `isEditor` is true. */\r\n editorSections?: Section[]\r\n /** Slot rendered above the header bar (e.g. AnnouncementBar). */\r\n announcement?: ReactNode\r\n homeHref?: string\r\n /** When set, shows the feedback link in the header. Hidden otherwise. */\r\n feedbackUrl?: string\r\n /** Overrides the default logo for the selected variant. */\r\n logo?: ReactNode\r\n /**\r\n * App-specific items rendered after the docs dropdown (e.g. Help Center\r\n * announcements). Hidden on small viewports together with RightLinks.\r\n */\r\n extraRightLinks?: ReactNode\r\n /** App-specific locale switcher rendered next to the hamburger menu. */\r\n localeSwitcher?: ReactNode\r\n /** Parent slugs of the current article, used to expand the mobile sidebar. */\r\n parentsArray?: string[]\r\n /**\r\n * When true, renders AskAssistant next to the search input on desktop.\r\n * Search stays hidden on small viewports (use the search icon). On mobile\r\n * the assistant is a floating action button in the bottom-right corner.\r\n */\r\n showAssistant?: boolean\r\n /** Props forwarded to AskAssistant when `showAssistant` is true. */\r\n assistant?: AskAssistantProps\r\n}\r\n\r\nconst Header = ({\r\n variant = 'helpcenter',\r\n isEditor = false,\r\n dropdownSections,\r\n editorSections = [],\r\n announcement,\r\n homeHref = '/',\r\n feedbackUrl,\r\n logo,\r\n extraRightLinks,\r\n localeSwitcher,\r\n parentsArray,\r\n showAssistant = false,\r\n assistant,\r\n}: HeaderProps) => {\r\n const router = useRouter()\r\n const { locale, hamburguerSections } = useContext(LibraryContext)\r\n const localizedMessages = messages[locale] ?? messages.en\r\n\r\n const modalOpen = useRef(false)\r\n const [showDropdown, setShowDropdown] = useState(false)\r\n const headerElement = useRef(null)\r\n\r\n const docsSections = dropdownSections ?? hamburguerSections\r\n const menuSections =\r\n isEditor && editorSections.length > 0 ? [editorSections] : docsSections\r\n\r\n const defaultLogo =\r\n variant === 'devportal' ? (\r\n \r\n ) : (\r\n \r\n )\r\n\r\n useEffect(() => {\r\n const body = document.body\r\n\r\n const observer = new MutationObserver(() => {\r\n modalOpen.current = !modalOpen.current\r\n if (headerElement.current) {\r\n if (modalOpen.current) {\r\n const headerHeight = headerElement.current.offsetHeight\r\n headerElement.current.style.top = `-${headerHeight}px`\r\n } else {\r\n headerElement.current.style.top = '0'\r\n }\r\n }\r\n })\r\n observer.observe(body, {\r\n attributeFilter: ['style'],\r\n })\r\n\r\n return () => observer.disconnect()\r\n }, [])\r\n\r\n useEffect(() => {\r\n const onScroll = () => {\r\n setShowDropdown(false)\r\n }\r\n\r\n window.addEventListener('scroll', onScroll, { passive: true })\r\n return () => window.removeEventListener('scroll', onScroll)\r\n }, [])\r\n\r\n useEffect(() => {\r\n const hideDropdown = () => {\r\n setShowDropdown(false)\r\n }\r\n\r\n router.events?.on('routeChangeStart', hideDropdown)\r\n return () => {\r\n router.events?.off('routeChangeStart', hideDropdown)\r\n }\r\n }, [router.events])\r\n\r\n return (\r\n \r\n {announcement ??
}\r\n \r\n \r\n {logo ?? defaultLogo}\r\n \r\n\r\n \r\n \r\n \r\n \r\n {showAssistant ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n\r\n \r\n setShowDropdown(true)}\r\n onMouseLeave={() => setShowDropdown(false)}\r\n >\r\n \r\n \r\n \r\n {isEditor\r\n ? localizedMessages['header.admin_tools']\r\n : localizedMessages['header.docs']}\r\n \r\n \r\n\r\n {showDropdown && }\r\n \r\n\r\n {extraRightLinks ? (\r\n {extraRightLinks}\r\n ) : null}\r\n\r\n {feedbackUrl ? (\r\n \r\n \r\n \r\n {localizedMessages['header.feedback']}\r\n \r\n \r\n ) : null}\r\n \r\n {localeSwitcher ? (\r\n \r\n \r\n \r\n \r\n {localeSwitcher}\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 Header\r\nexport { default as DropdownMenu } from './dropdown-menu'\r\nexport type { DropdownMenuProps } from './dropdown-menu'\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 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 { useContext } from 'react'\r\nimport { Box } from '@vtex/brand-ui'\r\nimport DocumentationCard from 'components/documentation-card'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { getSectionLabel } from 'utils/sidebar-utils'\r\nimport type { Section } from 'utils/typings/types'\r\nimport styles from './dropdown-menu.styles'\r\n\r\nexport type DropdownMenuProps = {\r\n sections: Section[][]\r\n}\r\n\r\nconst DropdownMenu = ({ sections }: DropdownMenuProps) => {\r\n const { locale, sidebarDataMaster } = useContext(LibraryContext)\r\n\r\n return (\r\n \r\n \r\n {sections.map((section, id) => (\r\n 0 ? styles.sectionDivider : {}),\r\n }}\r\n key={id}\r\n data-cy={\r\n id > 0\r\n ? 'dropdown-menu-second-section'\r\n : 'dropdown-menu-first-section'\r\n }\r\n >\r\n {section.map((card) => (\r\n \r\n ))}\r\n \r\n ))}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default DropdownMenu\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst outerContainer: SxStyleProp = {\r\n cursor: 'initial',\r\n top: '5rem',\r\n right: 0,\r\n position: 'absolute',\r\n filter: 'drop-shadow(0px 0px 16px rgba(0, 0, 0, 0.1))',\r\n clipPath: 'inset(0 -32px -32px -32px)',\r\n borderRadius: '0px 0px 8px 8px',\r\n border: '1px solid #E7E9EE',\r\n borderTop: '0px',\r\n background: 'white',\r\n padding: '8px',\r\n width: '680px',\r\n maxWidth: 'calc(100vw - 32px)',\r\n maxHeight: 'calc(100vh - 5rem)',\r\n zIndex: 10,\r\n}\r\n\r\nconst innerContainer: SxStyleProp = {\r\n overflowY: 'auto',\r\n overscrollBehavior: 'contain',\r\n maxHeight: 'calc(100vh - 5rem - 16px)',\r\n scrollbarWidth: 'thin',\r\n scrollbarColor: 'white white',\r\n\r\n '::-webkit-scrollbar': {\r\n width: '5px',\r\n },\r\n\r\n '::-webkit-scrollbar-thumb': {\r\n borderRadius: '100px',\r\n background: 'white',\r\n },\r\n\r\n ':hover': {\r\n scrollbarColor: '#CCCED8 white',\r\n\r\n '::-webkit-scrollbar-thumb': {\r\n background: '#CCCED8',\r\n },\r\n },\r\n}\r\n\r\nconst documentationContainer: SxStyleProp = {\r\n display: 'grid',\r\n gridTemplateColumns: 'repeat(2, minmax(0, 1fr))',\r\n columnGap: '4px',\r\n rowGap: '4px',\r\n\r\n '& > :last-child:nth-child(odd)': {\r\n gridColumn: '1 / -1',\r\n },\r\n}\r\n\r\nconst sectionDivider: SxStyleProp = {\r\n mt: '4px',\r\n pt: '4px',\r\n borderRadius: '0px 0px 8px 8px',\r\n borderTop: '1px solid #E7E9EE',\r\n}\r\n\r\nexport default {\r\n documentationContainer,\r\n innerContainer,\r\n outerContainer,\r\n sectionDivider,\r\n}\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst navItem: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n height: '36px',\r\n px: '10px',\r\n borderRadius: '6px',\r\n color: '#4A596B',\r\n transition: 'background-color 0.15s ease, color 0.15s ease',\r\n ':hover': {\r\n color: '#C81E51',\r\n backgroundColor: '#FFF3F6',\r\n },\r\n}\r\n\r\nconst headerContainer: SxStyleProp = {\r\n position: 'sticky',\r\n top: 0,\r\n zIndex: 9999,\r\n width: '100%',\r\n backgroundColor: '#FFFFFF',\r\n transition: 'top 0.3s',\r\n 'body:has(.modal[data-open=\"true\"]) &': {\r\n zIndex: 0,\r\n },\r\n maxWidth: '2024px',\r\n mx: 'auto',\r\n}\r\n\r\nconst headerBrand: SxStyleProp = {\r\n gridTemplateColumns: 'auto minmax(0, 1fr) auto auto',\r\n width: '100%',\r\n position: 'relative',\r\n transition: 'top 0.3s',\r\n 'button[role=\"presentation\"]': {\r\n borderLeft: 'none',\r\n svg: {\r\n rect: {\r\n fill: '#4A596B',\r\n },\r\n },\r\n },\r\n}\r\n\r\nconst hamburgerMenuToggle: SxStyleProp = {\r\n display: ['contents', 'contents', 'none', 'none'],\r\n}\r\n\r\nconst extraRightLinks: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n height: '100%',\r\n position: 'relative',\r\n}\r\n\r\nconst headerEndActions: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n height: '100%',\r\n gridArea: 'actionbutton',\r\n justifyContent: 'flex-end',\r\n borderLeft: ['none', 'none', '1px solid #E7E9EE', '1px solid #E7E9EE'],\r\n}\r\n\r\nconst localeSwitcherSlot: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n height: '100%',\r\n width: ['56px', '56px', 'auto', 'auto'],\r\n minWidth: ['56px', '56px', 0, 0],\r\n paddingLeft: [0, 0, '12px', '12px'],\r\n paddingRight: [0, 0, '12px', '12px'],\r\n zIndex: 1,\r\n '& button': {\r\n borderLeft: 'none !important',\r\n padding: [\r\n '0 !important',\r\n '0 !important',\r\n '0 10px !important',\r\n '0 10px !important',\r\n ],\r\n width: ['100%', '100%', 'auto', 'auto'],\r\n height: ['100%', '100%', '36px !important', '36px !important'],\r\n justifyContent: 'center',\r\n lineHeight: 0,\r\n borderRadius: '6px',\r\n transition: 'background-color 0.15s ease, color 0.15s ease',\r\n ':hover': {\r\n backgroundColor: ['transparent', 'transparent', '#FFF3F6', '#FFF3F6'],\r\n color: '#C81E51',\r\n },\r\n },\r\n}\r\n\r\nconst headerBrandLink: SxStyleProp = {\r\n width: 'fit-content',\r\n justifyContent: 'center',\r\n gridArea: 'brand',\r\n marginLeft: [4, 6, 6],\r\n marginBottom: 1,\r\n '> svg': {\r\n width: 'auto',\r\n },\r\n}\r\n\r\nconst logoSize: SxStyleProp = {\r\n width: ['172px', '172px', '204px'],\r\n height: ['24px', '24px', '32px'],\r\n}\r\n\r\nconst rightLinks: SxStyleProp = {\r\n display: ['none', 'none', 'flex !important', 'flex !important'],\r\n width: 'auto',\r\n height: '100%',\r\n alignItems: 'center',\r\n gap: '8px',\r\n pr: ['16px', '16px', '16px', '16px'],\r\n '> a': {\r\n marginX: '0 !important',\r\n },\r\n}\r\n\r\nconst rightLinksItem: SxStyleProp = {\r\n ...navItem,\r\n display: ['none', 'none', 'none', 'flex'],\r\n justifyContent: 'center',\r\n width: '36px',\r\n px: '0 !important',\r\n svg: {\r\n mr: '0',\r\n },\r\n ':hover': {\r\n color: '#C81E51',\r\n backgroundColor: '#FFF3F6',\r\n 'svg > path': {\r\n stroke: '#C81E51',\r\n },\r\n },\r\n}\r\n\r\nconst dropdownContainer: SxStyleProp = {\r\n textTransform: 'none',\r\n justifyContent: 'flex-end',\r\n alignItems: 'center',\r\n height: 'calc(100% + 1px)',\r\n cursor: 'pointer',\r\n position: 'relative',\r\n}\r\n\r\nconst dropdownButton: (active: boolean) => SxStyleProp = (active: boolean) => ({\r\n ...navItem,\r\n color: active ? '#D71D55' : '#4A596B',\r\n backgroundColor: active ? '#FFF3F6' : 'transparent',\r\n svg: {\r\n mr: '8px',\r\n path: {\r\n fill: active ? '#D71D55' : '#4A596B',\r\n },\r\n },\r\n ':hover': {\r\n color: '#C81E51',\r\n backgroundColor: '#FFF3F6',\r\n 'svg > path': {\r\n fill: '#C81E51',\r\n },\r\n },\r\n})\r\n\r\nconst rightButtonsText: SxStyleProp = {\r\n fontWeight: 'normal',\r\n fontSize: '13px',\r\n lineHeight: '22px',\r\n fontFamily: 'VTEX Trust Medium !important',\r\n textTransform: 'none',\r\n}\r\n\r\nconst searchRow: SxStyleProp = {\r\n display: ['none', 'none', 'flex', 'flex'],\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n flexWrap: 'nowrap',\r\n gap: '8px',\r\n paddingBlock: '18px',\r\n height: 'auto',\r\n minWidth: 0,\r\n maxWidth: '100%',\r\n}\r\n\r\nconst searchContainer: SxStyleProp = {\r\n flex: 'none',\r\n minWidth: 0,\r\n}\r\n\r\nconst assistantSlot: SxStyleProp = {\r\n display: ['none', 'none', 'none', 'flex'],\r\n flex: 'none',\r\n flexShrink: 0,\r\n alignSelf: 'center',\r\n}\r\n\r\nexport default {\r\n logoSize,\r\n headerContainer,\r\n headerBrand,\r\n headerBrandLink,\r\n searchRow,\r\n searchContainer,\r\n assistantSlot,\r\n rightLinks,\r\n rightLinksItem,\r\n rightButtonsText,\r\n dropdownButton,\r\n dropdownContainer,\r\n hamburgerMenuToggle,\r\n extraRightLinks,\r\n headerEndActions,\r\n localeSwitcherSlot,\r\n}\r\n","import { useEffect, useState, type ReactNode } from 'react'\r\nimport { Box, Button, Text, Link, Icon } from '@vtex/brand-ui'\r\nimport type { IconProps } from '@vtex/brand-ui'\r\nimport styles from './styles'\r\n\r\nexport type AnnouncementBarType = 'warning' | 'new'\r\n\r\nexport type AnnouncementBarAction = {\r\n href: string\r\n tag?: string\r\n button?: string\r\n target?: string\r\n}\r\n\r\nexport type AnnouncementBarProps = {\r\n type: AnnouncementBarType\r\n label?: string\r\n closable: boolean\r\n action: AnnouncementBarAction\r\n children?: ReactNode\r\n}\r\n\r\nconst CloseIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nconst AnnouncementBar = ({\r\n closable,\r\n type,\r\n action: { tag, button, href, target = '_blank' },\r\n label,\r\n children,\r\n}: AnnouncementBarProps) => {\r\n const [visible, setVisible] = useState(true)\r\n\r\n useEffect(() => {\r\n if (!closable || !visible) return\r\n\r\n const onKeyDown = (event: KeyboardEvent) => {\r\n if (event.key === 'Escape') setVisible(false)\r\n }\r\n\r\n window.addEventListener('keydown', onKeyDown)\r\n return () => window.removeEventListener('keydown', onKeyDown)\r\n }, [closable, visible])\r\n\r\n if (!visible) return null\r\n\r\n return (\r\n \r\n \r\n {tag && {tag}}\r\n {children ? {children} : null}\r\n {label ? {label} : null}\r\n {button && (\r\n \r\n {button}\r\n \r\n )}\r\n \r\n {closable && (\r\n \r\n {\r\n event.stopPropagation()\r\n setVisible(false)\r\n }}\r\n icon={() => }\r\n />\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default AnnouncementBar\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst container = (type: string): SxStyleProp => {\r\n const background = {\r\n color: type == 'warning' ? '#fff2d4' : '#fff9fa',\r\n }\r\n return {\r\n backgroundColor: `${background.color}`,\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n cursor: 'default',\r\n width: '100%',\r\n padding: ['15px 15px', '15px 25px', '15px 50px'],\r\n ':focus': {\r\n outline: 'none',\r\n },\r\n }\r\n}\r\n\r\nconst box: SxStyleProp = {\r\n width: '100%',\r\n textAlign: 'center',\r\n}\r\n\r\nconst label = (type: string): SxStyleProp => {\r\n const labelColor = {\r\n bgColor: type == 'warning' ? '#ffe1a7' : '#feeaef',\r\n textColor: type == 'warning' ? '#142032' : '#D4084C',\r\n }\r\n\r\n return {\r\n color: `${labelColor.textColor}`,\r\n backgroundColor: `${labelColor.bgColor}`,\r\n borderRadius: '4px',\r\n padding: '5px 8px',\r\n marginRight: '10px',\r\n display: 'inline',\r\n fontWeight: '600',\r\n letterSpacing: '1px',\r\n fontSize: '13px',\r\n }\r\n}\r\n\r\nconst button = (type: string): SxStyleProp => {\r\n const labelColor = {\r\n bgColor: type == 'warning' ? '#ffe1a7' : '#feeaef',\r\n }\r\n\r\n return {\r\n color: '#D4084C',\r\n backgroundColor: `${labelColor.bgColor}`,\r\n borderRadius: '4px',\r\n padding: '5px 8px',\r\n marginLeft: '10px',\r\n display: 'inline',\r\n fontWeight: '600',\r\n }\r\n}\r\n\r\nconst text: SxStyleProp = {\r\n color: '#142032',\r\n display: 'inline',\r\n}\r\n\r\nconst closeIcon: SxStyleProp = {\r\n display: 'block',\r\n float: 'right',\r\n}\r\n\r\nexport default {\r\n button,\r\n container,\r\n closeIcon,\r\n box,\r\n label,\r\n text,\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: ['100%', '612px'],\r\n maxWidth: '100%',\r\n borderRadius: ['0', '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: ['100dvh', 'auto'],\r\n maxHeight: ['100dvh', 'calc(100dvh - 32px)'],\r\n}\r\n\r\nconst innerContainer: SxStyleProp = {\r\n p: '24px',\r\n maxHeight: ['calc(100dvh - 145px)', 'calc(100dvh - 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, Flex, Button, Text } from '@vtex/brand-ui'\r\nimport { useEffect, useRef, useState } from 'react'\r\n\r\nimport type { IconComponent } from 'utils/typings/types'\r\nimport styles from './styles'\r\n\r\nexport type ChipFilterCategory = {\r\n type: string\r\n title: string\r\n Icon?: IconComponent\r\n}\r\n\r\nexport type ChipFilterProps = {\r\n filters: string[]\r\n categories: ChipFilterCategory[]\r\n applyCategory: (option: string) => void\r\n resetFilters: () => void\r\n removeCategory: (option: string) => void\r\n getCategoryAmount: (category: string) => number\r\n allResultsLabel?: string\r\n}\r\n\r\nconst ChipFilter = ({\r\n filters,\r\n categories,\r\n applyCategory,\r\n resetFilters,\r\n removeCategory,\r\n getCategoryAmount,\r\n allResultsLabel = 'All results',\r\n}: ChipFilterProps) => {\r\n const containerRef = useRef(null)\r\n\r\n const [shouldDisplayArrows, setShouldDisplayArrows] = useState<{\r\n left: boolean\r\n right: boolean\r\n }>({ left: false, right: false })\r\n\r\n const totalCount = categories.reduce(\r\n (sum, category) => sum + getCategoryAmount(category.type),\r\n 0\r\n )\r\n\r\n function handleLeftArrowClick() {\r\n if (containerRef.current) {\r\n containerRef.current.scrollLeft -= 180\r\n }\r\n }\r\n\r\n function handleRightArrowClick() {\r\n if (containerRef.current) {\r\n containerRef.current.scrollLeft += 180\r\n }\r\n }\r\n\r\n function isCategoryActive(category: string) {\r\n return filters.includes(category)\r\n }\r\n\r\n function handleContainerScroll() {\r\n if (!containerRef.current) return\r\n\r\n const offsetWidth = 20\r\n const { scrollLeft, clientWidth, scrollWidth } = containerRef.current\r\n const isLeftmostScroll = scrollLeft <= 0\r\n const isRightmostScroll =\r\n scrollLeft + clientWidth + offsetWidth >= scrollWidth\r\n const hasOverflow = scrollWidth > clientWidth + offsetWidth\r\n\r\n setShouldDisplayArrows({\r\n left: hasOverflow && !isLeftmostScroll,\r\n right: hasOverflow && !isRightmostScroll,\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n handleContainerScroll()\r\n window.addEventListener('resize', handleContainerScroll)\r\n return () => window.removeEventListener('resize', handleContainerScroll)\r\n }, [categories, filters])\r\n\r\n return (\r\n \r\n {shouldDisplayArrows.left && (\r\n \r\n \r\n {`‹`}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n resetFilters()}\r\n />\r\n {categories.map((category) => (\r\n \r\n isCategoryActive(category.type)\r\n ? removeCategory(category.type)\r\n : applyCategory(category.type)\r\n }\r\n isActive={isCategoryActive(category.type)}\r\n Icon={category.Icon}\r\n />\r\n ))}\r\n \r\n \r\n {shouldDisplayArrows.right && (\r\n \r\n \r\n {`›`}\r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\ninterface FilterChipProps {\r\n value: string\r\n isActive: boolean\r\n count: number\r\n applyCategory: () => void\r\n Icon?: IconComponent\r\n}\r\n\r\nfunction FilterChip({\r\n value,\r\n isActive,\r\n count,\r\n applyCategory,\r\n Icon,\r\n}: FilterChipProps) {\r\n return (\r\n \r\n {Icon ? : null}\r\n \r\n {value}\r\n \r\n {count}\r\n \r\n )\r\n}\r\n\r\nexport default ChipFilter\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst chipButtonWrapper: SxStyleProp = {\r\n display: 'flex',\r\n position: 'relative',\r\n userSelect: 'none',\r\n width: '100%',\r\n minWidth: 0,\r\n alignItems: 'center',\r\n}\r\n\r\nconst chipsContainer: SxStyleProp = {\r\n scrollbarWidth: 'none',\r\n msOverflowStyle: 'none',\r\n overflowX: 'auto',\r\n overflowY: 'hidden',\r\n scrollBehavior: 'smooth',\r\n display: 'flex',\r\n alignItems: 'center',\r\n width: '100%',\r\n minWidth: 0,\r\n '&::-webkit-scrollbar': {\r\n display: 'none',\r\n },\r\n}\r\n\r\nconst optionsContainer: SxStyleProp = {\r\n display: 'flex',\r\n flexWrap: 'nowrap',\r\n gap: '8px',\r\n}\r\n\r\nconst chip: (active: boolean) => SxStyleProp = (active) => ({\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n gap: '6px',\r\n height: '32px',\r\n minHeight: '32px',\r\n px: '12px',\r\n py: 0,\r\n borderRadius: '16px',\r\n border: `1px solid ${active ? '#D8D8E3' : '#E7E9EE'}`,\r\n backgroundColor: active ? '#F8F7FC' : '#FFFFFF',\r\n cursor: 'pointer',\r\n minWidth: 'max-content',\r\n ':hover': {\r\n borderColor: '#3A4F66',\r\n '.filter-chip-title': {\r\n color: '#4A596B',\r\n },\r\n },\r\n})\r\n\r\nconst chipIcon: SxStyleProp = {\r\n width: '14px',\r\n height: '14px',\r\n minWidth: '14px',\r\n minHeight: '14px',\r\n flexShrink: 0,\r\n}\r\n\r\nconst chipTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '13px',\r\n fontWeight: active ? '600' : '500',\r\n lineHeight: '16px',\r\n whiteSpace: 'nowrap',\r\n color: '#4A596B',\r\n transition: 'color 0.15s ease-out',\r\n})\r\n\r\nconst chipCount: SxStyleProp = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n px: '6px',\r\n minWidth: '20px',\r\n height: '18px',\r\n fontSize: '11px',\r\n fontWeight: '500',\r\n lineHeight: '16px',\r\n borderRadius: '24px',\r\n backgroundColor: '#EDEAF6',\r\n color: '#4A596B',\r\n}\r\n\r\nconst arrowButton: SxStyleProp = {\r\n backgroundColor: 'transparent',\r\n border: 'none',\r\n borderRadius: '50%',\r\n fontWeight: '600',\r\n fontSize: '16px',\r\n padding: '0 8px',\r\n textDecoration: 'none',\r\n ':hover': {\r\n textDecoration: 'none',\r\n backgroundColor: 'transparent',\r\n },\r\n}\r\n\r\nconst rightArrowBlur: SxStyleProp = {\r\n maxWidth: '40px',\r\n minWidth: '20px',\r\n width: '5vw',\r\n background:\r\n 'linear-gradient(to left, rgba(255,255,255,80%) 30%, rgba(255, 255, 255, 1%))',\r\n}\r\n\r\nconst leftArrowBlur: SxStyleProp = {\r\n maxWidth: '40px',\r\n minWidth: '20px',\r\n width: '5vw',\r\n background:\r\n 'linear-gradient(to right, rgba(255,255,255,80%) 30%, rgba(255, 255, 255, 1%))',\r\n}\r\n\r\nconst leftArrowContainer: SxStyleProp = {\r\n position: 'absolute',\r\n display: 'flex',\r\n alignItems: 'center',\r\n left: 0,\r\n top: 0,\r\n bottom: 0,\r\n zIndex: 2,\r\n pointerEvents: 'none',\r\n button: {\r\n pointerEvents: 'auto',\r\n },\r\n}\r\n\r\nconst rightArrowContainer: SxStyleProp = {\r\n position: 'absolute',\r\n display: 'flex',\r\n flexDirection: 'row-reverse',\r\n alignItems: 'center',\r\n right: 0,\r\n top: 0,\r\n bottom: 0,\r\n zIndex: 2,\r\n pointerEvents: 'none',\r\n button: {\r\n pointerEvents: 'auto',\r\n },\r\n}\r\n\r\nexport default {\r\n leftArrowBlur,\r\n rightArrowBlur,\r\n arrowButton,\r\n chipsContainer,\r\n optionsContainer,\r\n chipButtonWrapper,\r\n leftArrowContainer,\r\n rightArrowContainer,\r\n chip,\r\n chipIcon,\r\n chipTitle,\r\n chipCount,\r\n}\r\n","import { Box, Flex, Text } from '@vtex/brand-ui'\r\n\r\nimport type { ContributorsType } from 'lib/contributors'\r\nimport styles from './styles'\r\n\r\nexport type AuthorProps = {\r\n contributor: ContributorsType\r\n}\r\n\r\nconst Author = ({ contributor }: AuthorProps) => {\r\n return (\r\n \r\n \r\n {/* eslint-disable-next-line @next/next/no-img-element */}\r\n \r\n \r\n {contributor?.name}\r\n \r\n )\r\n}\r\n\r\nexport default Author\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst container: SxStyleProp = {\r\n alignItems: 'center',\r\n columnGap: '16px',\r\n pt: '14px',\r\n}\r\n\r\nconst photo: SxStyleProp = {\r\n width: '32px',\r\n height: '32px',\r\n img: {\r\n width: '32px',\r\n height: '32px',\r\n borderRadius: '100%',\r\n },\r\n}\r\n\r\nexport default {\r\n container,\r\n photo,\r\n}\r\n","import { useContext } from 'react'\r\nimport { Text } from '@vtex/brand-ui'\r\n\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport styles from './styles'\r\n\r\nexport type TimeToReadProps = {\r\n minutes: string\r\n}\r\n\r\nconst TimeToRead = ({ minutes }: TimeToReadProps) => {\r\n const { locale } = useContext(LibraryContext)\r\n const template =\r\n messages[locale]['documentation_reading_time.text'] || '{minutes} min read'\r\n\r\n return (\r\n \r\n {template.replace('{minutes}', minutes)}\r\n \r\n )\r\n}\r\n\r\nexport default TimeToRead\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst readingTime: SxStyleProp = {\r\n color: '#A1AAB7',\r\n fontSize: ['14px', '16px'],\r\n lineHeight: '22px',\r\n}\r\n\r\nexport default {\r\n readingTime,\r\n}\r\n","import { useContext } from 'react'\r\nimport { Flex, Text } from '@vtex/brand-ui'\r\n\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport styles from './styles'\r\n\r\nexport type DateTextProps = {\r\n createdAt: Date\r\n updatedAt: Date\r\n}\r\n\r\nconst formatDate = (date: Date, locale: string) => {\r\n if (Number.isNaN(date.getTime())) return undefined\r\n return new Intl.DateTimeFormat(locale).format(date)\r\n}\r\n\r\nconst DateText = ({ createdAt, updatedAt }: DateTextProps) => {\r\n const { locale } = useContext(LibraryContext)\r\n const createdLabel = messages[locale]['date_text.created'] || 'Published on'\r\n const updatedLabel =\r\n messages[locale]['date_text.updated'] || 'Last updated on'\r\n const created = formatDate(createdAt, locale)\r\n const updated = formatDate(updatedAt, locale)\r\n\r\n if (!created && !updated) return null\r\n\r\n return (\r\n \r\n {created && (\r\n \r\n \r\n {createdLabel}\r\n \r\n {created}\r\n \r\n )}\r\n {created && updated && }\r\n {updated && (\r\n \r\n \r\n {updatedLabel}\r\n \r\n {updated}\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default DateText\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst dateContainer: SxStyleProp = {\r\n alignItems: 'center',\r\n color: '#5E6E84',\r\n fontSize: '13px',\r\n lineHeight: '20px',\r\n fontWeight: '400',\r\n columnGap: '6px',\r\n rowGap: '2px',\r\n flexWrap: 'wrap',\r\n width: '100%',\r\n}\r\n\r\nconst dateItem: SxStyleProp = {\r\n color: 'inherit',\r\n fontSize: 'inherit',\r\n lineHeight: 'inherit',\r\n}\r\n\r\nconst dateLabel: SxStyleProp = {\r\n fontWeight: '500',\r\n paddingRight: '4px',\r\n}\r\n\r\nconst dateSeparator: SxStyleProp = {\r\n color: '#8A94A3',\r\n flexShrink: 0,\r\n}\r\n\r\nexport default { dateContainer, dateItem, dateLabel, dateSeparator }\r\n","import { useContext } from 'react'\r\nimport Link from 'next/link.js'\r\nimport { Flex, Text, Box } from '@vtex/brand-ui'\r\n\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport styles from './styles'\r\n\r\nexport type ArticlePaginationDoc = {\r\n slug: string | null\r\n name: string | null\r\n}\r\n\r\nexport type ArticlePaginationData = {\r\n previousDoc: ArticlePaginationDoc\r\n nextDoc: ArticlePaginationDoc\r\n}\r\n\r\nexport type ArticlePaginationProps = {\r\n pagination: ArticlePaginationData\r\n hidePaginationPrevious?: boolean\r\n hidePaginationNext?: boolean\r\n}\r\n\r\nconst ArticlePagination = ({\r\n pagination,\r\n hidePaginationNext = false,\r\n hidePaginationPrevious = false,\r\n}: ArticlePaginationProps) => {\r\n const { locale } = useContext(LibraryContext)\r\n const previousLabel =\r\n messages[locale]['article_pagination.previous'] || 'Previous'\r\n const nextLabel = messages[locale]['article_pagination.next'] || 'Next'\r\n\r\n const showPrevious =\r\n !hidePaginationPrevious &&\r\n Boolean(pagination?.previousDoc?.slug) &&\r\n Boolean(pagination?.previousDoc?.name)\r\n const showNext =\r\n !hidePaginationNext &&\r\n Boolean(pagination?.nextDoc?.slug) &&\r\n Boolean(pagination?.nextDoc?.name)\r\n\r\n return (\r\n \r\n \r\n {showPrevious && (\r\n \r\n \r\n \r\n {`« ${previousLabel}`}\r\n \r\n {pagination.previousDoc.name}\r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {showNext && (\r\n \r\n \r\n \r\n {`${nextLabel} »`}\r\n \r\n {pagination.nextDoc.name}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default ArticlePagination\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\nimport { CSSProperties } from 'react'\r\n\r\nconst mainContainer: SxStyleProp = {\r\n width: '100%',\r\n mt: ['20px', '32px'],\r\n mb: ['24px', '52px'],\r\n maxWidth: '100%',\r\n minWidth: 0,\r\n borderTop: '1px solid #E7E9EE',\r\n pt: ['20px', '32px'],\r\n}\r\n\r\nconst flexContainer: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n justifyContent: 'space-between',\r\n alignItems: 'stretch',\r\n gap: ['16px', '16px'],\r\n width: '100%',\r\n minWidth: 0,\r\n}\r\n\r\nconst paginationBox: SxStyleProp = {\r\n width: '100%',\r\n minWidth: 0,\r\n padding: ['0', '16px'],\r\n borderRadius: ['0', '4px'],\r\n border: ['none', '1px solid #E7E9EE'],\r\n color: '#4A596B',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n gap: '4px',\r\n boxSizing: 'border-box',\r\n ':hover': {\r\n border: ['none', '1px solid #CCCED8'],\r\n boxShadow: ['none', '0px 0px 16px rgba(0, 0, 0, 0.1)'],\r\n color: '#000711',\r\n },\r\n}\r\n\r\nconst paginationBoxNext: SxStyleProp = {\r\n ...paginationBox,\r\n alignItems: 'flex-end',\r\n textAlign: 'right',\r\n}\r\n\r\nconst paginationText: SxStyleProp = {\r\n width: '100%',\r\n minWidth: 0,\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n display: '-webkit-box',\r\n '-webkit-line-clamp': '2',\r\n '-webkit-box-orient': 'vertical',\r\n overflowWrap: 'anywhere',\r\n whiteSpace: 'normal',\r\n fontSize: ['15px', '16px'],\r\n lineHeight: ['20px', '22px'],\r\n color: '#4A596B',\r\n}\r\n\r\nconst subTitle: SxStyleProp = {\r\n color: '#A1A8B3',\r\n fontSize: ['12px', '0.85em'],\r\n lineHeight: '16px',\r\n fontWeight: '500',\r\n flexShrink: 0,\r\n}\r\n\r\nconst linkReset: CSSProperties = {\r\n width: '100%',\r\n minWidth: 0,\r\n display: 'block',\r\n textDecoration: 'none',\r\n color: 'inherit',\r\n}\r\n\r\nconst paginationLinkPrevious: SxStyleProp = {\r\n width: ['auto', '230px'],\r\n maxWidth: ['none', '230px'],\r\n minWidth: 0,\r\n flex: ['1 1 0', '0 0 auto'],\r\n}\r\n\r\nconst paginationLinkNext: SxStyleProp = {\r\n width: ['auto', '230px'],\r\n maxWidth: ['none', '230px'],\r\n minWidth: 0,\r\n ml: 'auto',\r\n flex: ['1 1 0', '0 0 auto'],\r\n}\r\n\r\nexport default {\r\n mainContainer,\r\n flexContainer,\r\n linkReset,\r\n paginationLinkNext,\r\n paginationLinkPrevious,\r\n paginationBox,\r\n paginationBoxNext,\r\n paginationText,\r\n subTitle,\r\n}\r\n","import type { ReactNode } from 'react'\r\nimport Head from 'next/head.js'\r\nimport { Box, Flex, Text } from '@vtex/brand-ui'\r\nimport type { MDXRemoteSerializeResult } from 'next-mdx-remote'\r\n\r\nimport AskAIMenu from 'components/ask-ai'\r\nimport ArticlePagination from 'components/article-pagination'\r\nimport type { ArticlePaginationData } from 'components/article-pagination'\r\nimport SeeAlsoSection from 'components/see-also-section'\r\nimport type { SeeAlsoDoc } from 'components/see-also-section'\r\nimport Author from 'components/author'\r\nimport Breadcrumb from 'components/breadcrumb'\r\nimport type { BreadcrumbItem } from 'components/breadcrumb'\r\nimport CopyHeadingLink from 'components/copy-heading-link'\r\nimport DateText from 'components/date-text'\r\nimport FeedbackModal from 'components/feedback-modal'\r\nimport FeedbackSection from 'components/feedback-section'\r\nimport SuggestEdits from 'components/suggest-edits'\r\nimport TimeToRead from 'components/time-to-read'\r\nimport MarkdownRenderer from 'lib/markdown-renderer'\r\nimport type { MarkdownRendererProps } from 'lib/markdown-renderer/MarkdownRenderer.types'\r\nimport Contributors from 'lib/contributors'\r\nimport type { ContributorsType } from 'lib/contributors'\r\nimport OnThisPage from 'lib/on-this-page'\r\nimport TableOfContents from 'lib/table-of-contents'\r\nimport type { Item } from 'lib/table-of-contents'\r\nimport styles from './styles'\r\n\r\nexport type ArticleRenderProps = {\r\n serialized: MDXRemoteSerializeResult\r\n breadcrumbList: BreadcrumbItem[]\r\n slug: string\r\n path: string\r\n type: string\r\n pageUrl: string\r\n urlToEdit: string\r\n rawContentBaseUrl: string\r\n contributors?: ContributorsType[]\r\n headings?: Item[]\r\n headingList?: Item[]\r\n pagination?: ArticlePaginationData\r\n children?: ReactNode\r\n seeAlso?: SeeAlsoDoc[] | ReactNode\r\n customComponents?: MarkdownRendererProps['customComponents']\r\n scope?: MarkdownRendererProps['scope']\r\n /** Wrap the markdown output without remounting it on parent re-renders. */\r\n renderMarkdown?: (markdown: ReactNode) => ReactNode\r\n showReadingTime?: boolean\r\n showAskAIMenu?: boolean\r\n showAuthor?: boolean\r\n showContributors?: boolean\r\n showFeedbackSection?: boolean\r\n showSuggestEdits?: boolean\r\n showArticlePagination?: boolean\r\n showSeeAlso?: boolean\r\n showTableOfContents?: boolean\r\n showDateText?: boolean\r\n}\r\n\r\nconst readingTimeLabel = (readingTime: unknown) => {\r\n if (readingTime == null || readingTime === '') return undefined\r\n if (\r\n typeof readingTime === 'object' &&\r\n readingTime !== null &&\r\n 'text' in readingTime\r\n ) {\r\n const text = (readingTime as { text?: unknown }).text\r\n return text != null ? String(text) : undefined\r\n }\r\n return String(readingTime)\r\n}\r\n\r\nconst parseFrontmatterDate = (value: unknown) => {\r\n if (value == null || value === '') return undefined\r\n const date = new Date(String(value))\r\n return Number.isNaN(date.getTime()) ? undefined : date\r\n}\r\n\r\nconst ArticleRender = ({\r\n serialized,\r\n headings = [],\r\n headingList,\r\n breadcrumbList,\r\n contributors = [],\r\n path,\r\n pagination,\r\n slug,\r\n type,\r\n pageUrl,\r\n urlToEdit,\r\n rawContentBaseUrl,\r\n children,\r\n seeAlso,\r\n customComponents,\r\n scope = {},\r\n renderMarkdown,\r\n showReadingTime = true,\r\n showAskAIMenu = true,\r\n showAuthor = false,\r\n showContributors = true,\r\n showFeedbackSection = true,\r\n showSuggestEdits = true,\r\n showArticlePagination = true,\r\n showSeeAlso = true,\r\n showTableOfContents = true,\r\n showDateText = false,\r\n}: ArticleRenderProps) => {\r\n const tocHeadings = headingList?.length ? headingList : headings\r\n const readingTime = readingTimeLabel(serialized?.frontmatter?.readingTime)\r\n const createdAt = parseFrontmatterDate(serialized?.frontmatter?.createdAt)\r\n const updatedAt = parseFrontmatterDate(serialized?.frontmatter?.updatedAt)\r\n const hasDates = Boolean(createdAt && updatedAt)\r\n const showBottomSection = showContributors || showFeedbackSection\r\n const showSidebar = showContributors || showTableOfContents\r\n const markdown = (\r\n \r\n )\r\n\r\n return (\r\n <>\r\n \r\n <>\r\n \r\n {serialized?.frontmatter?.title && (\r\n {serialized?.frontmatter?.title as string}\r\n )}\r\n {serialized?.frontmatter?.title && (\r\n \r\n )}\r\n {serialized.frontmatter?.hidden && (\r\n \r\n )}\r\n {serialized.frontmatter?.excerpt && (\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 {serialized.frontmatter?.title}\r\n \r\n \r\n {children && (\r\n {children}\r\n )}\r\n {showAuthor && contributors[0]?.avatar && (\r\n \r\n )}\r\n {serialized.frontmatter?.excerpt && (\r\n \r\n {serialized.frontmatter?.excerpt}\r\n \r\n )}\r\n \r\n
\r\n\r\n \r\n {((showDateText && hasDates) ||\r\n (showReadingTime && readingTime)) && (\r\n \r\n {showDateText && hasDates && createdAt && updatedAt && (\r\n \r\n )}\r\n {showReadingTime && readingTime && (\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n {showAskAIMenu && (\r\n \r\n )}\r\n \r\n \r\n {renderMarkdown ? renderMarkdown(markdown) : markdown}\r\n
\r\n {showSeeAlso &&\r\n (Array.isArray(seeAlso)\r\n ? seeAlso.length > 0 && \r\n : seeAlso)}\r\n
\r\n
\r\n\r\n {showBottomSection && (\r\n \r\n {showContributors && (\r\n \r\n \r\n \r\n )}\r\n {showFeedbackSection && (\r\n \r\n )}\r\n \r\n )}\r\n\r\n {showArticlePagination && pagination && (\r\n \r\n )}\r\n
\r\n {showSidebar && (\r\n \r\n {showContributors && }\r\n {showTableOfContents && (\r\n \r\n {(showFeedbackSection || showSuggestEdits) && (\r\n \r\n {showFeedbackSection && (\r\n \r\n )}\r\n {showSuggestEdits && (\r\n \r\n )}\r\n \r\n )}\r\n \r\n )}\r\n \r\n )}\r\n {showTableOfContents && tocHeadings.length > 0 && (\r\n \r\n )}\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default ArticleRender\r\n","import { useContext } from 'react'\r\nimport { Box, Text } from '@vtex/brand-ui'\r\n\r\nimport DocumentationCard from 'components/documentation-card'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport { createDocFromUrl } from './functions'\r\nimport type { SeeAlsoDoc } from './functions'\r\n\r\nimport styles from './styles'\r\n\r\nexport type { SeeAlsoDoc }\r\n\r\nexport type SeeAlsoSectionProps = {\r\n docs: SeeAlsoDoc[]\r\n}\r\n\r\nconst isExternalLink = (url: string) => /^https?:\\/\\//.test(url)\r\n\r\nconst SeeAlsoSection = ({ docs }: SeeAlsoSectionProps) => {\r\n const { locale, sidebarSections, sidebarDataMaster } =\r\n useContext(LibraryContext)\r\n const title = messages[locale]['see_also_section.title'] || 'See also'\r\n const cards =\r\n docs?.map((doc) =>\r\n createDocFromUrl(doc, sidebarSections, {\r\n locale,\r\n navigation: sidebarDataMaster,\r\n })\r\n ) ?? []\r\n\r\n return (\r\n \r\n \r\n {title}\r\n \r\n \r\n {cards.map((card) => (\r\n \r\n ))}\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default SeeAlsoSection\r\n","import { capitalizeFirstLetter, slugify } from 'utils/string-utils'\r\nimport { getSectionLabel } from 'utils/sidebar-utils'\r\nimport PaperIcon from 'components/icons/paper-icon'\r\nimport type { DocumentProps } from 'components/documentation-card'\r\nimport type { Section } from 'utils/typings/types'\r\n\r\nexport type SeeAlsoDoc = {\r\n url: string\r\n title?: string\r\n category?: string\r\n}\r\n\r\ntype CreateDocOptions = {\r\n locale?: 'en' | 'pt' | 'es'\r\n navigation?: unknown\r\n}\r\n\r\nconst ACRONYMS: Record = {\r\n api: 'API',\r\n cms: 'CMS',\r\n faq: 'FAQ',\r\n io: 'IO',\r\n sku: 'SKU',\r\n vtex: 'VTEX',\r\n}\r\n\r\n/** Alternate category names mapped onto current section ids. */\r\nconst CATEGORY_ALIASES: Record = {\r\n 'api-guide': 'guides',\r\n 'api-guides': 'guides',\r\n}\r\n\r\nconst KEBAB_SLUG = /^[a-z0-9]+(?:-[a-z0-9]+)+$/\r\n\r\nconst normalizeKey = (value: string) => slugify(value.replace(/[_/]+/g, '-'))\r\n\r\nconst isKebabSlug = (value: string) => KEBAB_SLUG.test(value)\r\n\r\nconst humanizeSlug = (slug: string) =>\r\n slug\r\n .split('-')\r\n .filter(Boolean)\r\n .map((word) => ACRONYMS[word.toLowerCase()] ?? capitalizeFirstLetter(word))\r\n .join(' ')\r\n\r\n/** Keep real titles; only humanize kebab-case slugs. */\r\nexport const displayLabel = (value: string) => {\r\n const cleaned = value.split('#')[0].split('?')[0].trim()\r\n if (!cleaned) return ''\r\n if (isKebabSlug(cleaned)) return humanizeSlug(cleaned)\r\n return cleaned\r\n}\r\n\r\nconst pathnameFromUrl = (url: string) => {\r\n if (!url) return ''\r\n try {\r\n if (/^https?:\\/\\//i.test(url)) {\r\n return new URL(url).pathname\r\n }\r\n } catch {\r\n return url.split('#')[0].split('?')[0]\r\n }\r\n return url.split('#')[0].split('?')[0]\r\n}\r\n\r\nconst lastPathSegment = (url: string) => {\r\n const path = pathnameFromUrl(url).replace(/\\/+$/, '')\r\n const segment = path.split('/').filter(Boolean).pop() ?? ''\r\n try {\r\n return decodeURIComponent(segment)\r\n } catch {\r\n return segment\r\n }\r\n}\r\n\r\nconst parentPath = (url: string) =>\r\n pathnameFromUrl(url).replace(/\\/+$/, '').replace(/\\/[^/]+$/, '')\r\n\r\nexport const findSection = (\r\n sections: Section[][],\r\n { category, url }: Pick\r\n): Section | undefined => {\r\n const all = sections.flat()\r\n if (!all.length) return undefined\r\n\r\n const categoryKey = category ? normalizeKey(category) : ''\r\n const aliased = categoryKey\r\n ? CATEGORY_ALIASES[categoryKey] ?? categoryKey\r\n : ''\r\n\r\n if (aliased) {\r\n const byCategory = all.find((section) => {\r\n const id = normalizeKey(section.id)\r\n const title = normalizeKey(section.title)\r\n return (\r\n id === aliased ||\r\n title === aliased ||\r\n id === categoryKey ||\r\n title === categoryKey\r\n )\r\n })\r\n if (byCategory) return byCategory\r\n }\r\n\r\n const path = pathnameFromUrl(url).replace(/\\/+$/, '')\r\n const isBareExternalOrigin =\r\n /^https?:\\/\\//i.test(url) && (!path || path === '/')\r\n if (!path || isBareExternalOrigin) return undefined\r\n\r\n let best: Section | undefined\r\n let bestLength = -1\r\n for (const section of all) {\r\n if (!section.link || section.isExternalLink) continue\r\n const link = section.link.replace(/\\/+$/, '')\r\n if (!link || link === '/') continue\r\n if (path === link || path.startsWith(`${link}/`)) {\r\n if (link.length > bestLength) {\r\n best = section\r\n bestLength = link.length\r\n }\r\n }\r\n }\r\n return best\r\n}\r\n\r\nexport const createDocFromUrl = (\r\n doc: SeeAlsoDoc,\r\n sections: Section[][] = [],\r\n options: CreateDocOptions = {}\r\n): DocumentProps => {\r\n const section = findSection(sections, {\r\n category: doc.category,\r\n url: doc.url,\r\n })\r\n\r\n const title = displayLabel(doc.title || lastPathSegment(doc.url))\r\n const description = section\r\n ? getSectionLabel(section, options.navigation, options.locale ?? 'en')\r\n : displayLabel(doc.category || lastPathSegment(parentPath(doc.url)))\r\n\r\n return {\r\n title,\r\n description,\r\n link: doc.url,\r\n Icon: section?.Icon ?? PaperIcon,\r\n }\r\n}\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst seeAlsoContainer: SxStyleProp = {\r\n width: '100%',\r\n maxWidth: '100%',\r\n minWidth: 0,\r\n mt: ['8px', '16px'],\r\n pt: ['20px', '24px'],\r\n borderTop: '1px solid #E7E9EE',\r\n a: {\r\n color: 'inherit',\r\n fontWeight: 'inherit',\r\n },\r\n h2: {\r\n mt: '0 !important',\r\n mb: ['12px', '16px'],\r\n fontSize: ['16px', '18px'],\r\n lineHeight: ['24px', '26px'],\r\n fontWeight: '600',\r\n color: '#142032',\r\n },\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n display: 'block',\r\n fontSize: ['16px', '18px'],\r\n lineHeight: ['24px', '26px'],\r\n marginBottom: ['12px', '16px'],\r\n fontWeight: '600',\r\n color: '#142032',\r\n}\r\n\r\nconst cards: SxStyleProp = {\r\n display: 'grid',\r\n gridTemplateColumns: 'repeat(auto-fit, minmax(min(100%, 260px), 1fr))',\r\n gap: '12px',\r\n width: '100%',\r\n minWidth: 0,\r\n}\r\n\r\nexport default {\r\n seeAlsoContainer,\r\n sectionTitle,\r\n cards,\r\n}\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst MUTED = '#5E6E84'\r\n\r\nconst innerContainer: SxStyleProp = {\r\n justifyContent: 'center',\r\n width: '100%',\r\n minWidth: 0,\r\n boxSizing: 'border-box',\r\n pt: ['24px', '32px', '3em'],\r\n mx: 'auto',\r\n px: ['18px', '24px', '32px', '40px', '48px', '64px', '20em'],\r\n pb: ['48px', '64px', '72px'],\r\n}\r\n\r\nconst articleBox: SxStyleProp = {\r\n fontSize: '1em',\r\n lineHeight: '1.75em',\r\n flex: '1 1 auto',\r\n width: '100%',\r\n minWidth: 0,\r\n maxWidth: '100%',\r\n color: 'rgb(51, 65, 85)',\r\n overflowWrap: 'anywhere',\r\n img: {\r\n maxWidth: '100%',\r\n height: 'auto',\r\n },\r\n pre: {\r\n maxWidth: '100%',\r\n overflowX: 'auto',\r\n },\r\n iframe: {\r\n maxWidth: '100%',\r\n },\r\n a: {\r\n color: '#E31C58',\r\n textDecoration: 'none',\r\n fontWeight: '500',\r\n },\r\n ul: {\r\n pl: '1.5em',\r\n mt: '1.25em',\r\n mb: '1.25em',\r\n li: {\r\n mt: '0.5em',\r\n mb: '0.5em',\r\n },\r\n listStyleType: 'disc',\r\n 'ul, ol': {\r\n mt: '0.5em',\r\n mb: '0.5em',\r\n },\r\n },\r\n ol: {\r\n pl: '1.5em',\r\n mt: '1.25em',\r\n mb: '1.25em',\r\n li: {\r\n mt: '0.5em',\r\n mb: '0.5em',\r\n },\r\n 'ul, ol': {\r\n mt: '0.5em',\r\n mb: '0.5em',\r\n },\r\n },\r\n header: {\r\n marginTop: ['8px', '16px'],\r\n borderBottom: '1px solid #E7E9EE',\r\n marginBottom: ['8px', '12px'],\r\n pb: ['12px', '16px'],\r\n },\r\n h2: {\r\n fontSize: '1.375em',\r\n lineHeight: '1.3em',\r\n fontWeight: '700',\r\n mt: ['1.5em', '2em'],\r\n mb: ['0.75em', '1em'],\r\n overflowWrap: 'anywhere',\r\n color: 'rgb(15, 23, 42)',\r\n },\r\n h3: {\r\n fontSize: '1.125em',\r\n fontWeight: '600',\r\n lineHeight: '1.6em',\r\n mt: '1.6em',\r\n mb: '0.6em',\r\n overflowWrap: 'anywhere',\r\n },\r\n h4: {\r\n fontSize: '1em',\r\n fontWeight: '600',\r\n lineHeight: '1.5em',\r\n mt: '1.5em',\r\n mb: '0.5em',\r\n color: 'rgb(15, 23, 42)',\r\n overflowWrap: 'anywhere',\r\n },\r\n h5: {\r\n fontSize: '0.9375em',\r\n fontWeight: '600',\r\n lineHeight: '1.5em',\r\n mt: '1.25em',\r\n mb: '0.5em',\r\n color: 'rgb(71, 85, 105)',\r\n overflowWrap: 'anywhere',\r\n },\r\n h6: {\r\n fontSize: '0.9375em',\r\n fontWeight: '600',\r\n lineHeight: '1.5em',\r\n mt: '1.25em',\r\n mb: '0.5em',\r\n color: 'rgb(100, 116, 139)',\r\n overflowWrap: 'anywhere',\r\n },\r\n strong: {\r\n fontWeight: '600',\r\n overflowWrap: 'break-word',\r\n },\r\n hr: {\r\n border: '0.5px solid #E7E9EE',\r\n my: ['2em', '3em'],\r\n },\r\n}\r\n\r\nconst contentContainer: SxStyleProp = {\r\n width: '100%',\r\n minWidth: 0,\r\n maxWidth: '100%',\r\n}\r\n\r\nconst documentationTitle: SxStyleProp = {\r\n display: 'block',\r\n marginTop: ['16px', '16px', '24px'],\r\n marginBottom: 0,\r\n fontSize: ['28px', '28px', '30px'],\r\n lineHeight: ['36px', '36px', '38px'],\r\n fontWeight: '400',\r\n color: '#142032',\r\n overflowWrap: 'anywhere',\r\n}\r\n\r\nconst documentationExcerpt: SxStyleProp = {\r\n display: 'block',\r\n color: '#4A596B',\r\n fontSize: '16px',\r\n lineHeight: '24px',\r\n fontWeight: '400',\r\n mt: '12px',\r\n mb: 0,\r\n overflowWrap: 'anywhere',\r\n}\r\n\r\nconst breadcrumbRow: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n alignItems: 'flex-start',\r\n flexWrap: 'wrap',\r\n gap: '8px',\r\n width: '100%',\r\n minWidth: 0,\r\n}\r\n\r\nconst articleHeaderExtra: SxStyleProp = {\r\n mt: ['8px', '10px'],\r\n width: '100%',\r\n minWidth: 0,\r\n}\r\n\r\nconst articleMeta: SxStyleProp = {\r\n flexDirection: 'column-reverse',\r\n justifyContent: 'flex-start',\r\n alignItems: 'stretch',\r\n gap: '10px',\r\n marginBottom: ['16px', '20px'],\r\n marginTop: '0',\r\n width: '100%',\r\n minWidth: 0,\r\n '@media screen and (min-width: 40em)': {\r\n flexDirection: 'row',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n flexWrap: 'wrap',\r\n gap: '8px 16px',\r\n },\r\n}\r\n\r\nconst articleMetaInfo: SxStyleProp = {\r\n flexDirection: 'column',\r\n alignItems: 'flex-start',\r\n justifyContent: 'flex-start',\r\n gap: '2px',\r\n minWidth: 0,\r\n width: '100%',\r\n flex: '0 0 auto',\r\n '@media screen and (min-width: 40em)': {\r\n width: 'auto',\r\n flex: '1 1 auto',\r\n },\r\n}\r\n\r\nconst articleReadingTime: SxStyleProp = {\r\n color: MUTED,\r\n fontSize: '13px',\r\n lineHeight: '20px',\r\n '& > *': {\r\n color: 'inherit !important',\r\n fontSize: 'inherit !important',\r\n lineHeight: 'inherit !important',\r\n },\r\n}\r\n\r\nconst articleActions: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'flex-start',\r\n gap: '8px',\r\n flexShrink: 0,\r\n ml: 0,\r\n width: '100%',\r\n minWidth: 0,\r\n '& > div': {\r\n width: 'max-content',\r\n flexShrink: 0,\r\n },\r\n '& [role=\"menu\"]': {\r\n right: 0,\r\n },\r\n '@media screen and (min-width: 40em)': {\r\n justifyContent: 'flex-end',\r\n ml: 'auto',\r\n width: 'auto',\r\n },\r\n}\r\n\r\nconst bottomContributorsContainer: SxStyleProp = {\r\n display: ['flex', 'flex', 'flex', 'flex', 'none'],\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n width: '100%',\r\n minWidth: 0,\r\n pt: ['20px', '24px'],\r\n gap: ['24px', '24px'],\r\n '[data-cy=\"feedback-section\"]': {\r\n marginTop: '0',\r\n marginBottom: '0',\r\n gap: '12px',\r\n '& > div:first-of-type': {\r\n borderBottom: 'none',\r\n paddingBottom: 0,\r\n marginBottom: 0,\r\n marginTop: 0,\r\n },\r\n },\r\n}\r\n\r\nconst bottomContributors: SxStyleProp = {\r\n width: '100%',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n '& > div': {\r\n alignItems: 'center !important',\r\n width: 'auto !important',\r\n mb: '0 !important',\r\n },\r\n '[data-cy=\"contributors-container\"]': {\r\n display: 'flex !important',\r\n flexWrap: 'wrap',\r\n justifyContent: 'center',\r\n width: 'auto !important',\r\n maxWidth: '232px',\r\n },\r\n}\r\n\r\nconst rightContainer: SxStyleProp = {\r\n ml: [0, 0, 0, 0, '48px', '68px', '200px'],\r\n display: [\r\n 'none !important',\r\n 'none !important',\r\n 'none !important',\r\n 'none !important',\r\n 'initial !important',\r\n ],\r\n flexShrink: 0,\r\n width: [0, 0, 0, 0, '240px', '240px', '284px'],\r\n}\r\n\r\nconst divider: SxStyleProp = {\r\n borderTop: '1px solid #E7E9EE',\r\n pt: 4,\r\n mt: 4,\r\n}\r\n\r\nconst textContainer: SxStyleProp = {\r\n width: '100%',\r\n minWidth: 0,\r\n maxWidth: '100%',\r\n gap: '8px',\r\n pb: ['16px', '24px', '32px'],\r\n mb: ['8px', '24px', '48px'],\r\n}\r\n\r\nconst editContainer: SxStyleProp = {\r\n my: 3,\r\n gap: 2,\r\n}\r\n\r\nexport default {\r\n innerContainer,\r\n articleBox,\r\n contentContainer,\r\n documentationTitle,\r\n documentationExcerpt,\r\n breadcrumbRow,\r\n articleHeaderExtra,\r\n articleMeta,\r\n articleMetaInfo,\r\n articleReadingTime,\r\n articleActions,\r\n bottomContributorsContainer,\r\n bottomContributors,\r\n rightContainer,\r\n divider,\r\n textContainer,\r\n editContainer,\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: ['20px', '32px', '36px', '48px'],\r\n py: ['20px', '24px'],\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: ['12px', '16px'],\r\n borderRadius: '4px',\r\n border: '1px solid #E7E9EE',\r\n width: '100%',\r\n maxWidth: '100%',\r\n minWidth: 0,\r\n boxSizing: 'border-box',\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: ['16px', '18px', '20px'],\r\n fontWeight: '400',\r\n lineHeight: ['24px', '28px', '30px'],\r\n color: 'muted.0',\r\n overflowWrap: 'anywhere',\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 maxWidth: '100%',\r\n px: '8px',\r\n margin: '4px',\r\n overflowWrap: 'anywhere',\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 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 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 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\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"],"mappings":"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","names":["Fragment","text","text","i","checker","version","encode","header","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","useContext","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","useState","Box","Text","useEffect","useRef","useState","Box","Flex","styles_default","Icon","jsx","jsx","jsxs","label","box","useRef","useState","useEffect","Box","Flex","styles_default","useEffect","useState","jsx","title","item","heading","messages","container","styles_default","jsx","jsxs","useState","Box","styles_default","Text","useCallback","useContext","useEffect","useRef","useState","Box","Icon","jsx","jsxs","button","styles_default","jsx","search","useContext","useState","useRef","label","useCallback","useEffect","styles_default","Box","styles_default","img","heading","code","blockquote","blockquoteIcon","blockquoteInfo","blockquoteDanger","blockquoteWarning","blockquoteSuccess","flexWrap","svgContainer","jsx","jsxs","useState","styles_default","icon","useRef","useEffect","mermaid","Box","useContext","Flex","item","jsx","Box","useContext","useEffect","Link","Box","Text","styles_default","jsx","jsxs","headings","item","useContext","useEffect","title","Link","Text","styles_default","Box","useContext","useState","Box","Flex","Text","AnimateHeight","Icon","jsx","jsxs","container","title","styles_default","jsx","jsxs","useContext","useState","title","Flex","styles_default","AnimateHeight","Box","Text","useContext","useEffect","useRef","useState","Box","Flex","IconCaret","Text","container","title","styles_default","jsx","jsxs","useContext","useState","photosContainer","useRef","useEffect","Flex","styles_default","Text","Box","IconCaret","Fragment","useEffect","useMemo","useRef","useState","useContext","Flex","Text","Box","Link","linkContainer","styles_default","iconTooltip","useRouter","useEffect","getIcon","icon","item","Flex","Box","Text","Button","memo","useContext","useMemo","useRef","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","item","styles_default","textStyle","jsx","jsxs","useContext","useRouter","slugPrefix","localizedName","Box","styles_default","Flex","Button","IconCaret","Link","item","Fragment","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","jsxs","Fragment","jsx","jsxs","container","useRef","useContext","Flex","styles_default","documentation","useState","useMemo","getIcon","Box","Button","Text","sidebarSectionHidden","memo","jsx","jsxs","iconTooltip","useState","useRef","useEffect","Box","styles_default","Link","Flex","Text","useContext","useMemo","Fragment","title","Box","IconCaret","Button","arrowIcon","arrowIconActive","styles_default","useContext","useEffect","useRef","useState","useRouter","Link","Box","Flex","Text","cardContainer","titleContainer","title","description","styles_default","cardContainer","styles_default","titleContainer","cardTitle","jsx","jsxs","title","description","link","Icon","isExternalLink","Link","Box","cardContainer","Flex","titleContainer","styles_default","Text","Box","Flex","useContext","useEffect","useState","useRouter","useRef","useContext","useEffect","useState","useRouter","Flex","Box","searchInput","searchIcon","clearButton","styles_default","jsx","jsxs","styles_default","useRouter","useRef","useContext","useState","useEffect","input","Flex","Box","useRouter","Link","useContext","useEffect","useState","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","count","item","sectionTitle","title","Flex","Text","Fragment","jsx","text","styles_default","Flex","Text","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Fragment","jsx","jsxs","useContext","title","Box","styles_default","Link","Flex","Text","IconCaret","useRouter","useState","useEffect","Box","Flex","useContext","useRef","useState","aa","aa","algoliasearch","params","hitsPerPage","allHits","count","jsx","jsxs","useContext","useState","resultsBox","useRef","searchBox","Flex","styles_default","Box","styles_default","Fragment","jsx","jsxs","useRouter","useContext","useState","useEffect","Box","styles_default","Flex","jsx","jsxs","useRouter","useRef","useContext","useState","useEffect","styles_default","Box","card","Button","IconCaret","Flex","Text","Icon","jsx","jsxs","Icon","jsx","jsxs","useContext","useEffect","useState","container","button","styles_default","Box","Button","Flex","Text","Icon","jsx","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","useRef","useState","container","button","styles_default","Icon","jsx","jsx","jsxs","useState","useRef","Flex","styles_default","Button","Text","Box","useContext","Link","Text","Icon","jsx","jsxs","container","icon","styles_default","jsx","jsxs","useContext","label","Link","styles_default","Text","jsx","jsxs","shareButton","useState","useContext","useEffect","Flex","styles_default","Text","useContext","useEffect","useState","Box","Flex","Text","Icon","jsx","Icon","jsx","Icon","jsx","jsxs","useEffect","useState","Box","Flex","Text","innerContainer","label","input","actions","styles_default","jsx","jsxs","title","description","useState","useEffect","Box","styles_default","Flex","Text","jsx","jsxs","DEFAULT_FEEDBACK_ENDPOINT","postFeedback","useContext","useState","useEffect","form","Box","styles_default","Text","Flex","Flex","Box","Box","Flex","Text","useContext","useEffect","disabled","styles_default","useRouter","createContext","useState","jsx","jsx","jsxs","useRouter","useContext","useEffect","Flex","styles_default","Text","Box","count","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","useContext","useEffect","useState","useRouter","Link","container","title","httpMethod","icon","description","alignCenter","styles_default","Icon","jsx","jsxs","jsx","jsxs","Icon","title","useState","useContext","useRouter","crumb","useEffect","Flex","styles_default","Link","Box","Text","breadcrumb","Tooltip","IconCaret","Box","Flex","Text","noResults","styles_default","jsx","jsxs","useContext","connectStateResults","useEffect","useRef","useMemo","Box","Flex","styles_default","Text","jsx","jsxs","useRouter","useContext","useState","useEffect","Box","styles_default","Text","InstantSearch","Configure","useContext","useEffect","Flex","Text","container","styles_default","jsx","jsxs","count","label","Icon","useContext","Flex","styles_default","Text","useEffect","body","styles_default","jsx","jsxs","Flex","styles_default","search_default","useContext","title","buttonContainer","styles_default","Flex","Text","aa","jsx","jsxs","Button","Flex","useContext","styles_default","Text","Button","useState","styles_default","jsx","useState","Button","styles_default","useCallback","useState","useRef","useEffect","copy","Box","Button","Icon","styles_default","jsx","jsxs","useState","useRef","useCallback","copy","useEffect","Button","styles_default","Box","Icon","useContext","useEffect","useRef","useState","copy","Box","Text","IconCaret","Icon","jsx","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","jsxs","container","styles_default","jsx","jsxs","errorText","useContext","useState","useRef","markdown","copy","useEffect","Box","styles_default","Text","IconCaret","useCallback","useContext","useEffect","useLayoutEffect","useMemo","useRef","useState","createPortal","copy","Box","Flex","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","item","messages","title","Box","useContext","Box","Flex","Text","trigger","overlay","header","headerActions","messages","process","actionButton","dislikeIcon","textarea","errorText","styles_default","jsx","jsxs","sources","useContext","title","Box","styles_default","Text","Flex","jsx","jsxs","text","link","Box","styles_default","body","sources","Tag","Fragment","jsx","jsxs","count","styles_default","steps","examples","useContext","useRef","useState","useMemo","question","useCallback","messages","title","text","item","copy","useEffect","useLayoutEffect","header","Box","Flex","panel","Text","Icon","createPortal","Flex","Link","muted","pink","breadcrumb","styles_default","jsx","Flex","styles_default","item","label","Link","useState","useEffect","input","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","useContext","Box","Flex","Link","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","icon","styles_default","jsx","jsxs","useContext","styles_default","Box","Flex","icon","Link","link","Flex","Text","Box","useContext","useEffect","useRef","useState","useRouter","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","useContext","Box","innerContainer","documentationContainer","sectionDivider","jsx","useContext","Box","card","searchContainer","styles_default","jsx","jsxs","Header","logo","extraRightLinks","useRouter","useContext","useRef","useState","styles_default","useEffect","body","Box","Flex","Text","useEffect","useState","Box","Button","Text","Link","Icon","container","label","button","text","closeIcon","styles_default","jsx","jsxs","CloseIcon","Icon","tag","button","label","useState","useEffect","Box","styles_default","Text","Link","Button","Text","styles_default","jsx","Text","styles_default","Box","Button","Flex","Text","Icon","jsx","jsxs","Icon","jsx","jsxs","useState","input","container","innerContainer","modalTitle","tag","sectionDivider","styles_default","Fragment","jsx","jsxs","useState","numberOfFilters","Flex","styles_default","Text","Box","group","Button","Box","Flex","Button","Text","useEffect","useRef","useState","arrowButton","styles_default","jsx","jsxs","useRef","useState","useEffect","Flex","styles_default","Box","Button","count","Icon","Text","Box","Flex","Text","container","photo","styles_default","jsx","jsxs","Flex","styles_default","Box","Text","useContext","Text","styles_default","jsx","useContext","Text","styles_default","useContext","Flex","Text","styles_default","jsx","jsxs","useContext","Flex","styles_default","Text","useContext","Link","Flex","Text","Box","linkReset","styles_default","jsx","jsxs","useContext","Box","styles_default","Flex","Link","Text","Box","Flex","Text","useContext","Box","Text","title","link","description","sectionTitle","styles_default","jsx","jsxs","useContext","title","cards","Box","styles_default","Text","card","innerContainer","contentContainer","divider","styles_default","Fragment","jsx","jsxs","readingTime","text","headings","markdown","Flex","styles_default","Box","Text","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","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","Fragment","jsx","jsxs","Icon","jsx","Icon","jsx","jsxs"]} \ No newline at end of file diff --git a/dist/remark.d.mts b/dist/remark.d.mts new file mode 100644 index 0000000..9cdc372 --- /dev/null +++ b/dist/remark.d.mts @@ -0,0 +1,13 @@ +import { Node } from 'unist'; +import { Plugin } from 'unified'; + +declare function remarkMermaid(): (ast: Node) => void; + +/** + * Plugin to add extended blockquote formatting. + */ +declare function remarkBlockquote(): (tree: Node) => void; + +declare const remarkReadingTime: Plugin; + +export { remarkBlockquote, remarkMermaid, remarkReadingTime }; diff --git a/dist/remark.mjs b/dist/remark.mjs new file mode 100644 index 0000000..2c390b4 --- /dev/null +++ b/dist/remark.mjs @@ -0,0 +1,94 @@ +// src/remark/mermaid.ts +import { u } from "unist-builder"; +import { visit, SKIP } from "unist-util-visit"; +function remarkMermaid() { + return (ast) => { + visit( + ast, + { type: "code", lang: "mermaid" }, + (node, index, parent) => { + if (typeof index !== "number" || !parent) + return; + node.type = "text"; + const props = { + data: { + hProperties: { + className: ["mermaid"] + }, + hName: "pre" + } + }; + parent.children.splice(index, 1, u("pre", props, [node])); + return [SKIP, index]; + } + ); + }; +} + +// src/remark/blockquote.ts +import { u as u2 } from "unist-builder"; +import { visit as visit2, SKIP as SKIP2 } from "unist-util-visit"; +var extendedNames = { + info: /^ℹ️/, + warning: /^\u26A0/, + danger: /^\u2757/, + success: /^\u2705/ +}; +function remarkBlockquote() { + return (tree) => { + visit2(tree, (node, index, parent) => { + if (node.type !== "blockquote") + return; + if (typeof index !== "number" || !parent) + return; + const { children = [] } = node; + const firstChild = children[0]; + const textNode = firstChild?.children?.[0]; + if (!textNode || textNode.type !== "text" || typeof textNode.value !== "string") { + return; + } + const result = Object.entries(extendedNames).find( + ([, regex]) => regex.test(textNode.value) + ); + if (!result) + return; + textNode.value = textNode.value.substring(2); + const newChild = { + type: "paragraph", + children + }; + const props = { + data: { + hProperties: { + icon: result[0] + } + } + }; + parent.children.splice( + index, + 1, + u2("blockquote", props, [u2("paragraph", [newChild])]) + ); + return [SKIP2, index]; + }); + }; +} + +// src/remark/reading-time.ts +import getReadingTime from "reading-time"; +import { toString } from "mdast-util-to-string"; +var remarkReadingTime = () => { + return (tree, file) => { + const textOnPage = toString(tree); + const readingTime = getReadingTime(textOnPage); + const data = file.data; + data.matter ??= {}; + data.matter.readingTime = Math.ceil(readingTime.minutes); + }; +}; +export { + remarkBlockquote, + remarkMermaid, + remarkReadingTime +}; +//# sourceMappingURL=remark.mjs.map \ No newline at end of file diff --git a/dist/remark.mjs.map b/dist/remark.mjs.map new file mode 100644 index 0000000..aae9d1b --- /dev/null +++ b/dist/remark.mjs.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/remark/mermaid.ts","../src/remark/blockquote.ts","../src/remark/reading-time.ts"],"sourcesContent":["import { u } from 'unist-builder'\r\nimport { visit, SKIP } from 'unist-util-visit'\r\nimport type { Node, Parent } from 'unist'\r\n\r\ninterface MermaidCodeNode extends Node {\r\n type: string\r\n lang?: string | null\r\n}\r\n\r\nexport default function remarkMermaid() {\r\n return (ast: Node) => {\r\n visit(\r\n ast,\r\n { type: 'code', lang: 'mermaid' },\r\n (node: MermaidCodeNode, index, parent: Parent | undefined) => {\r\n if (typeof index !== 'number' || !parent) return\r\n\r\n node.type = 'text'\r\n\r\n const props = {\r\n data: {\r\n hProperties: {\r\n className: ['mermaid'],\r\n },\r\n hName: 'pre',\r\n },\r\n }\r\n\r\n parent.children.splice(index, 1, u('pre', props, [node]))\r\n\r\n return [SKIP, index]\r\n }\r\n )\r\n }\r\n}\r\n","import { u } from 'unist-builder'\r\nimport { visit, SKIP } from 'unist-util-visit'\r\nimport type { Node, Parent } from 'unist'\r\n\r\nconst extendedNames: Record = {\r\n info: /^ℹ️/,\r\n warning: /^\\u26A0/,\r\n danger: /^\\u2757/,\r\n success: /^\\u2705/,\r\n}\r\n\r\ninterface TextNode extends Node {\r\n type: 'text'\r\n value: string\r\n}\r\n\r\ninterface ParentNode extends Node {\r\n children: Node[]\r\n}\r\n\r\n/**\r\n * Plugin to add extended blockquote formatting.\r\n */\r\nexport default function remarkBlockquote() {\r\n return (tree: Node) => {\r\n visit(tree, (node: Node, index, parent: Parent | undefined) => {\r\n if (node.type !== 'blockquote') return\r\n if (typeof index !== 'number' || !parent) return\r\n\r\n const { children = [] } = node as ParentNode\r\n const firstChild = children[0] as ParentNode | undefined\r\n const textNode = firstChild?.children?.[0] as TextNode | undefined\r\n if (\r\n !textNode ||\r\n textNode.type !== 'text' ||\r\n typeof textNode.value !== 'string'\r\n ) {\r\n return\r\n }\r\n\r\n const result = Object.entries(extendedNames).find(([, regex]) =>\r\n regex.test(textNode.value)\r\n )\r\n if (!result) return\r\n\r\n textNode.value = textNode.value.substring(2)\r\n\r\n const newChild = {\r\n type: 'paragraph',\r\n children,\r\n }\r\n\r\n const props = {\r\n data: {\r\n hProperties: {\r\n icon: result[0],\r\n },\r\n },\r\n }\r\n\r\n parent.children.splice(\r\n index,\r\n 1,\r\n u('blockquote', props, [u('paragraph', [newChild])])\r\n )\r\n return [SKIP, index]\r\n })\r\n }\r\n}\r\n","import getReadingTime from 'reading-time'\r\nimport { toString } from 'mdast-util-to-string'\r\nimport type { Plugin } from 'unified'\r\nimport type { Node } from 'unist'\r\nimport type { VFile } from 'vfile'\r\n\r\nexport const remarkReadingTime: Plugin = () => {\r\n return (tree: Node, file: VFile) => {\r\n const textOnPage = toString(tree)\r\n const readingTime = getReadingTime(textOnPage)\r\n const data = file.data as { matter?: Record }\r\n data.matter ??= {}\r\n data.matter.readingTime = Math.ceil(readingTime.minutes)\r\n }\r\n}\r\n"],"mappings":";AAAA,SAAS,SAAS;AAClB,SAAS,OAAO,YAAY;AAQb,SAAR,gBAAiC;AACtC,SAAO,CAAC,QAAc;AACpB;AAAA,MACE;AAAA,MACA,EAAE,MAAM,QAAQ,MAAM,UAAU;AAAA,MAChC,CAAC,MAAuB,OAAO,WAA+B;AAC5D,YAAI,OAAO,UAAU,YAAY,CAAC;AAAQ;AAE1C,aAAK,OAAO;AAEZ,cAAM,QAAQ;AAAA,UACZ,MAAM;AAAA,YACJ,aAAa;AAAA,cACX,WAAW,CAAC,SAAS;AAAA,YACvB;AAAA,YACA,OAAO;AAAA,UACT;AAAA,QACF;AAEA,eAAO,SAAS,OAAO,OAAO,GAAG,EAAE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;AAExD,eAAO,CAAC,MAAM,KAAK;AAAA,MACrB;AAAA,IACF;AAAA,EACF;AACF;;;AClCA,SAAS,KAAAA,UAAS;AAClB,SAAS,SAAAC,QAAO,QAAAC,aAAY;AAG5B,IAAM,gBAAwC;AAAA,EAC5C,MAAM;AAAA,EACN,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,SAAS;AACX;AAce,SAAR,mBAAoC;AACzC,SAAO,CAAC,SAAe;AACrB,IAAAD,OAAM,MAAM,CAAC,MAAY,OAAO,WAA+B;AAC7D,UAAI,KAAK,SAAS;AAAc;AAChC,UAAI,OAAO,UAAU,YAAY,CAAC;AAAQ;AAE1C,YAAM,EAAE,WAAW,CAAC,EAAE,IAAI;AAC1B,YAAM,aAAa,SAAS,CAAC;AAC7B,YAAM,WAAW,YAAY,WAAW,CAAC;AACzC,UACE,CAAC,YACD,SAAS,SAAS,UAClB,OAAO,SAAS,UAAU,UAC1B;AACA;AAAA,MACF;AAEA,YAAM,SAAS,OAAO,QAAQ,aAAa,EAAE;AAAA,QAAK,CAAC,CAAC,EAAE,KAAK,MACzD,MAAM,KAAK,SAAS,KAAK;AAAA,MAC3B;AACA,UAAI,CAAC;AAAQ;AAEb,eAAS,QAAQ,SAAS,MAAM,UAAU,CAAC;AAE3C,YAAM,WAAW;AAAA,QACf,MAAM;AAAA,QACN;AAAA,MACF;AAEA,YAAM,QAAQ;AAAA,QACZ,MAAM;AAAA,UACJ,aAAa;AAAA,YACX,MAAM,OAAO,CAAC;AAAA,UAChB;AAAA,QACF;AAAA,MACF;AAEA,aAAO,SAAS;AAAA,QACd;AAAA,QACA;AAAA,QACAD,GAAE,cAAc,OAAO,CAACA,GAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;AAAA,MACrD;AACA,aAAO,CAACE,OAAM,KAAK;AAAA,IACrB,CAAC;AAAA,EACH;AACF;;;ACpEA,OAAO,oBAAoB;AAC3B,SAAS,gBAAgB;AAKlB,IAAM,oBAA4B,MAAM;AAC7C,SAAO,CAAC,MAAY,SAAgB;AAClC,UAAM,aAAa,SAAS,IAAI;AAChC,UAAM,cAAc,eAAe,UAAU;AAC7C,UAAM,OAAO,KAAK;AAClB,SAAK,WAAW,CAAC;AACjB,SAAK,OAAO,cAAc,KAAK,KAAK,YAAY,OAAO;AAAA,EACzD;AACF;","names":["u","visit","SKIP"]} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 29ce6c5..d18457f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@vtexdocs/components", - "version": "6.0.37", + "version": "7.0.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@vtexdocs/components", - "version": "6.0.37", + "version": "7.0.3", "license": "MIT", "dependencies": { "@code-hike/mdx": "^0.9.0", diff --git a/package.json b/package.json index db6c474..c73d2a5 100644 --- a/package.json +++ b/package.json @@ -17,11 +17,23 @@ "require": "./dist/index.mjs", "style": "./dist/index.css" }, + "./remark": { + "types": "./dist/remark.d.mts", + "import": "./dist/remark.mjs", + "require": "./dist/remark.mjs" + }, "./styles": "./dist/index.css", "./styles.css": "./dist/index.css", "./dist/index.css": "./dist/index.css" }, - "version": "6.0.37", + "typesVersions": { + "*": { + "remark": [ + "./dist/remark.d.mts" + ] + } + }, + "version": "7.0.3", "description": "", "repository": "https://github.com/vtexdocs/components", "scripts": { @@ -38,6 +50,7 @@ "@vtex/brand-ui": "^0.46.1", "copy-text-to-clipboard": "^3.0.1", "html-react-parser": "^3.0.15", + "mdast-util-to-string": "^3.2.0", "mermaid": "^10.1.0", "next": "13.2.4", "next-mdx-remote": "^4.1.0", @@ -49,24 +62,27 @@ "react-router-dom": "^6.15.0", "react-share": "^5.1.0", "react-svg-pan-zoom": "^3.12.1", + "reading-time": "^1.5.0", "search-insights": "^2.3.0", "standard-version": "^9.5.0", - "swr": "^1.3.0" + "swr": "^1.3.0", + "unist-builder": "^3.0.1", + "unist-util-visit": "^4.1.1" }, "devDependencies": { "@babel/preset-env": "^7.23.2", "@babel/preset-react": "^7.22.15", "@babel/preset-typescript": "^7.23.2", + "@lit-labs/ssr-react": "0.2.0", "@storybook/addon-essentials": "^7.5.2", "@storybook/addon-interactions": "^7.5.2", "@storybook/addon-links": "^7.5.2", - "@storybook/addon-onboarding": "^1.0.8", "@storybook/blocks": "^7.5.2", - "@storybook/nextjs": "^7.5.2", "@storybook/react": "^7.5.2", - "@storybook/react-webpack5": "^7.5.2", + "@storybook/react-vite": "^7.5.2", "@storybook/testing-library": "^0.2.2", "@types/react": "^18.2.2", + "@types/react-dom": "^18.2.2", "@types/react-instantsearch-core": "^6.26.5", "@types/react-instantsearch-dom": "^6.12.3", "@types/react-router-hash-link": "^2.4.6", @@ -89,12 +105,16 @@ "tailwindcss": "^3.3.3", "tslib": "^2.6.2", "tsup": "^7.2.0", - "typescript": "^5.0.4" + "typescript": "^5.0.4", + "vite": "^5.4.0" }, "peerDependencies": { "next": "13.2.4", "react": "^18.2.0", "react-dom": "18.2.0", "react-share": "^5.0.3" + }, + "resolutions": { + "@types/minimatch": "5.1.2" } } diff --git a/remark.d.ts b/remark.d.ts new file mode 100644 index 0000000..26cbe0d --- /dev/null +++ b/remark.d.ts @@ -0,0 +1,5 @@ +export { + remarkMermaid, + remarkBlockquote, + remarkReadingTime, +} from './dist/remark.mjs' diff --git a/src/components/announcement-bar/AnnouncementBar.stories.tsx b/src/components/announcement-bar/AnnouncementBar.stories.tsx new file mode 100644 index 0000000..36aad1a --- /dev/null +++ b/src/components/announcement-bar/AnnouncementBar.stories.tsx @@ -0,0 +1,48 @@ +import type { Meta, StoryObj } from '@storybook/react' +import { ThemeProvider } from '@vtex/brand-ui' +import AnnouncementBar from '.' + +const meta = { + title: 'Example/AnnouncementBar', + component: AnnouncementBar, + parameters: { + layout: 'fullscreen', + }, + tags: ['autodocs'], + decorators: [ + (Story) => ( + + + + ), + ], +} satisfies Meta + +export default meta +type Story = StoryObj + +export const Warning: Story = { + args: { + closable: false, + type: 'warning', + label: + 'You are currently using a preview branch. This content may differ from the published version.', + action: { + button: 'EXIT PREVIEW MODE', + href: '#', + target: '_self', + }, + }, +} + +export const Closable: Story = { + args: { + closable: true, + type: 'new', + label: 'We want to know more about you and how you use our docs. ', + action: { + button: 'Fill in our survey! It takes less than 5 minutes.', + href: 'https://forms.gle/5EvnahjuwQqwumDd9', + }, + }, +} diff --git a/src/components/announcement-bar/index.tsx b/src/components/announcement-bar/index.tsx new file mode 100644 index 0000000..04127cc --- /dev/null +++ b/src/components/announcement-bar/index.tsx @@ -0,0 +1,95 @@ +import { useEffect, useState, type ReactNode } from 'react' +import { Box, Button, Text, Link, Icon } from '@vtex/brand-ui' +import type { IconProps } from '@vtex/brand-ui' +import styles from './styles' + +export type AnnouncementBarType = 'warning' | 'new' + +export type AnnouncementBarAction = { + href: string + tag?: string + button?: string + target?: string +} + +export type AnnouncementBarProps = { + type: AnnouncementBarType + label?: string + closable: boolean + action: AnnouncementBarAction + children?: ReactNode +} + +const CloseIcon = (props: IconProps) => ( + + + + +) + +const AnnouncementBar = ({ + closable, + type, + action: { tag, button, href, target = '_blank' }, + label, + children, +}: AnnouncementBarProps) => { + const [visible, setVisible] = useState(true) + + useEffect(() => { + if (!closable || !visible) return + + const onKeyDown = (event: KeyboardEvent) => { + if (event.key === 'Escape') setVisible(false) + } + + window.addEventListener('keydown', onKeyDown) + return () => window.removeEventListener('keydown', onKeyDown) + }, [closable, visible]) + + if (!visible) return null + + return ( + + + {tag && {tag}} + {children ? {children} : null} + {label ? {label} : null} + {button && ( + + {button} + + )} + + {closable && ( + + + + + )} + + + resetFilters()} + /> + {categories.map((category) => ( + + isCategoryActive(category.type) + ? removeCategory(category.type) + : applyCategory(category.type) + } + isActive={isCategoryActive(category.type)} + Icon={category.Icon} + /> + ))} + + + {shouldDisplayArrows.right && ( + + + + + )} + + ) +} + +interface FilterChipProps { + value: string + isActive: boolean + count: number + applyCategory: () => void + Icon?: IconComponent +} + +function FilterChip({ + value, + isActive, + count, + applyCategory, + Icon, +}: FilterChipProps) { + return ( + + {Icon ? : null} + + {value} + + {count} + + ) +} + +export default ChipFilter diff --git a/src/components/chip-filter/styles.ts b/src/components/chip-filter/styles.ts new file mode 100644 index 0000000..ad02f37 --- /dev/null +++ b/src/components/chip-filter/styles.ts @@ -0,0 +1,158 @@ +import { SxStyleProp } from '@vtex/brand-ui' + +const chipButtonWrapper: SxStyleProp = { + display: 'flex', + position: 'relative', + userSelect: 'none', + width: '100%', + minWidth: 0, + alignItems: 'center', +} + +const chipsContainer: SxStyleProp = { + scrollbarWidth: 'none', + msOverflowStyle: 'none', + overflowX: 'auto', + overflowY: 'hidden', + scrollBehavior: 'smooth', + display: 'flex', + alignItems: 'center', + width: '100%', + minWidth: 0, + '&::-webkit-scrollbar': { + display: 'none', + }, +} + +const optionsContainer: SxStyleProp = { + display: 'flex', + flexWrap: 'nowrap', + gap: '8px', +} + +const chip: (active: boolean) => SxStyleProp = (active) => ({ + display: 'inline-flex', + alignItems: 'center', + gap: '6px', + height: '32px', + minHeight: '32px', + px: '12px', + py: 0, + borderRadius: '16px', + border: `1px solid ${active ? '#D8D8E3' : '#E7E9EE'}`, + backgroundColor: active ? '#F8F7FC' : '#FFFFFF', + cursor: 'pointer', + minWidth: 'max-content', + ':hover': { + borderColor: '#3A4F66', + '.filter-chip-title': { + color: '#4A596B', + }, + }, +}) + +const chipIcon: SxStyleProp = { + width: '14px', + height: '14px', + minWidth: '14px', + minHeight: '14px', + flexShrink: 0, +} + +const chipTitle: (active: boolean) => SxStyleProp = (active) => ({ + fontSize: '13px', + fontWeight: active ? '600' : '500', + lineHeight: '16px', + whiteSpace: 'nowrap', + color: '#4A596B', + transition: 'color 0.15s ease-out', +}) + +const chipCount: SxStyleProp = { + display: 'inline-flex', + alignItems: 'center', + justifyContent: 'center', + px: '6px', + minWidth: '20px', + height: '18px', + fontSize: '11px', + fontWeight: '500', + lineHeight: '16px', + borderRadius: '24px', + backgroundColor: '#EDEAF6', + color: '#4A596B', +} + +const arrowButton: SxStyleProp = { + backgroundColor: 'transparent', + border: 'none', + borderRadius: '50%', + fontWeight: '600', + fontSize: '16px', + padding: '0 8px', + textDecoration: 'none', + ':hover': { + textDecoration: 'none', + backgroundColor: 'transparent', + }, +} + +const rightArrowBlur: SxStyleProp = { + maxWidth: '40px', + minWidth: '20px', + width: '5vw', + background: + 'linear-gradient(to left, rgba(255,255,255,80%) 30%, rgba(255, 255, 255, 1%))', +} + +const leftArrowBlur: SxStyleProp = { + maxWidth: '40px', + minWidth: '20px', + width: '5vw', + background: + 'linear-gradient(to right, rgba(255,255,255,80%) 30%, rgba(255, 255, 255, 1%))', +} + +const leftArrowContainer: SxStyleProp = { + position: 'absolute', + display: 'flex', + alignItems: 'center', + left: 0, + top: 0, + bottom: 0, + zIndex: 2, + pointerEvents: 'none', + button: { + pointerEvents: 'auto', + }, +} + +const rightArrowContainer: SxStyleProp = { + position: 'absolute', + display: 'flex', + flexDirection: 'row-reverse', + alignItems: 'center', + right: 0, + top: 0, + bottom: 0, + zIndex: 2, + pointerEvents: 'none', + button: { + pointerEvents: 'auto', + }, +} + +export default { + leftArrowBlur, + rightArrowBlur, + arrowButton, + chipsContainer, + optionsContainer, + chipButtonWrapper, + leftArrowContainer, + rightArrowContainer, + chip, + chipIcon, + chipTitle, + chipCount, +} diff --git a/src/components/code-block/index.tsx b/src/components/code-block/index.tsx index 7a00b41..00a22fd 100644 --- a/src/components/code-block/index.tsx +++ b/src/components/code-block/index.tsx @@ -1,5 +1,5 @@ import React from 'react' -import CopyCode from 'components/copy-code' +import CopyButton from 'components/copy-button' import { Box, Text } from '@vtex/brand-ui' import { childrenToString } from 'utils/string-utils' import styles from './styles' @@ -14,7 +14,7 @@ const CodeBlock = ({ ...props }: Component) => { return (
-        
+        
         
       
diff --git a/src/components/copy-button/CopyButton.stories.tsx b/src/components/copy-button/CopyButton.stories.tsx new file mode 100644 index 0000000..1e9bf53 --- /dev/null +++ b/src/components/copy-button/CopyButton.stories.tsx @@ -0,0 +1,71 @@ +import type { Meta, StoryObj } from '@storybook/react' +import { ThemeProvider, Box } from '@vtex/brand-ui' +import CopyButton from './index' + +const sampleCode = `{ + "name": "helpcenter", + "private": true +}` + +const meta = { + title: 'Example/CopyButton', + component: CopyButton, + parameters: { + layout: 'centered', + }, + tags: ['autodocs'], + args: { + code: sampleCode, + }, + decorators: [ + (Story) => ( + + + + ), + ], +} satisfies Meta + +export default meta +type Story = StoryObj + +export const Default: Story = {} + +export const InCodeBlock: Story = { + render: (args) => ( + + +
+        {args.code}
+      
+
+ ), +} + +export const WithCustomPosition: Story = { + args: { + sx: { + position: 'sticky', + top: '8px', + right: '8px', + zIndex: 1, + marginX: 0, + }, + }, +} diff --git a/src/components/copy-code/index.tsx b/src/components/copy-button/index.tsx similarity index 89% rename from src/components/copy-code/index.tsx rename to src/components/copy-button/index.tsx index ee7e7f0..5c85355 100644 --- a/src/components/copy-code/index.tsx +++ b/src/components/copy-button/index.tsx @@ -1,57 +1,59 @@ -import { useCallback, useState, useRef, useEffect } from 'react' -import copy from 'copy-text-to-clipboard' -import { Box, Button, Icon } from '@vtex/brand-ui' -import type { SxStyleProp } from '@vtex/brand-ui' - -import styles from './styles' - -interface CopyButtonProps { - code: string - sx?: SxStyleProp -} - -export default function CopyCode({ code, sx }: CopyButtonProps): JSX.Element { - const [isCopied, setIsCopied] = useState(false) - const copyTimeout = useRef(undefined) - const handleCopyCode = useCallback(() => { - copy(code) - setIsCopied(true) - copyTimeout.current = window.setTimeout(() => { - setIsCopied(false) - }, 1000) - }, [code]) - - useEffect(() => () => window.clearTimeout(copyTimeout.current), []) - - return ( - - ) -} +import { useCallback, useState, useRef, useEffect } from 'react' +import copy from 'copy-text-to-clipboard' +import { Box, Button, Icon } from '@vtex/brand-ui' +import type { SxStyleProp } from '@vtex/brand-ui' + +import styles from './styles' + +export type CopyButtonProps = { + code: string + sx?: SxStyleProp +} + +const CopyButton = ({ code, sx }: CopyButtonProps): JSX.Element => { + const [isCopied, setIsCopied] = useState(false) + const copyTimeout = useRef(undefined) + const handleCopyCode = useCallback(() => { + copy(code) + setIsCopied(true) + copyTimeout.current = window.setTimeout(() => { + setIsCopied(false) + }, 1000) + }, [code]) + + useEffect(() => () => window.clearTimeout(copyTimeout.current), []) + + return ( + + ) +} + +export default CopyButton diff --git a/src/components/copy-code/styles.ts b/src/components/copy-button/styles.ts similarity index 95% rename from src/components/copy-code/styles.ts rename to src/components/copy-button/styles.ts index c219949..51d894c 100644 --- a/src/components/copy-code/styles.ts +++ b/src/components/copy-button/styles.ts @@ -1,68 +1,68 @@ -import type { SxStyleProp } from '@vtex/brand-ui' - -const basicButton: SxStyleProp = { - float: 'right', - ':focus': { - outline: 'none !important', - boxShadow: 'none !important', - }, - width: '28px', - height: '28px', - padding: '6px', - marginX: '18px', -} - -const copyButton: SxStyleProp = { - ...basicButton, - backgroundColor: '#E7E9EE', -} -const copyButtonCopied: SxStyleProp = { - ...basicButton, - backgroundColor: '#E6F2E6', -} - -const copyButtonIcons: SxStyleProp = { - position: 'relative', - width: '16px', - height: '16px', -} - -const copyButtonIcon: SxStyleProp = { - position: 'absolute', - top: '0', - left: '0', - fill: '#142032', - opacity: 'inherit', - width: 'inherit', - height: 'inherit', - transition: 'all 0.15s ease', -} - -const copyButtonSuccessIcon: SxStyleProp = { - ...copyButtonIcon, - top: '50%', - left: '50%', - transform: 'translate(-50%, -50%)', - fill: '#79A479', -} - -const copyButtonIconCopied: SxStyleProp = { - transform: 'scale(0.33)', - opacity: '0', -} - -const copyButtonSuccessIconCopied: SxStyleProp = { - transform: 'translate(-50%, -50%)', - opacity: '1', - transitionDelay: '0.075s', -} - -export default { - copyButton, - copyButtonCopied, - copyButtonIcons, - copyButtonIcon, - copyButtonSuccessIcon, - copyButtonSuccessIconCopied, - copyButtonIconCopied, -} +import type { SxStyleProp } from '@vtex/brand-ui' + +const basicButton: SxStyleProp = { + float: 'right', + ':focus': { + outline: 'none !important', + boxShadow: 'none !important', + }, + width: '28px', + height: '28px', + padding: '6px', + marginX: '18px', +} + +const copyButton: SxStyleProp = { + ...basicButton, + backgroundColor: '#E7E9EE', +} +const copyButtonCopied: SxStyleProp = { + ...basicButton, + backgroundColor: '#E6F2E6', +} + +const copyButtonIcons: SxStyleProp = { + position: 'relative', + width: '16px', + height: '16px', +} + +const copyButtonIcon: SxStyleProp = { + position: 'absolute', + top: '0', + left: '0', + fill: '#142032', + opacity: 'inherit', + width: 'inherit', + height: 'inherit', + transition: 'all 0.15s ease', +} + +const copyButtonSuccessIcon: SxStyleProp = { + ...copyButtonIcon, + top: '50%', + left: '50%', + transform: 'translate(-50%, -50%)', + fill: '#79A479', +} + +const copyButtonIconCopied: SxStyleProp = { + transform: 'scale(0.33)', + opacity: '0', +} + +const copyButtonSuccessIconCopied: SxStyleProp = { + transform: 'translate(-50%, -50%)', + opacity: '1', + transitionDelay: '0.075s', +} + +export default { + copyButton, + copyButtonCopied, + copyButtonIcons, + copyButtonIcon, + copyButtonSuccessIcon, + copyButtonSuccessIconCopied, + copyButtonIconCopied, +} diff --git a/src/components/copy-heading-link/CopyHeadingLink.stories.tsx b/src/components/copy-heading-link/CopyHeadingLink.stories.tsx new file mode 100644 index 0000000..b8c9b41 --- /dev/null +++ b/src/components/copy-heading-link/CopyHeadingLink.stories.tsx @@ -0,0 +1,80 @@ +import type { Meta, StoryObj } from '@storybook/react' +import { ThemeProvider } from '@vtex/brand-ui' +import CopyHeadingLink from './index' +import LibraryContextProvider from 'utils/context/libraryContext' +import { exampleContextProps } from 'utils/storybook-constants' + +const meta = { + title: 'Example/CopyHeadingLink', + component: CopyHeadingLink, + parameters: { + layout: 'padded', + }, + tags: ['autodocs'], + args: { + slug: 'getting-started', + }, + decorators: [ + (Story) => ( + + + + + + ), + ], +} satisfies Meta + +export default meta +type Story = StoryObj + +export const Default: Story = { + render: (args) => ( +

+ Getting started + +

+ ), +} + +export const HeadingLevels: Story = { + render: () => ( +
+

+ Page title + +

+

+ Overview + +

+

+ Installation + +

+

+ Prerequisites + +

+
+ ), +} + +export const Locales: Story = { + render: (args) => ( +
+ {(['en', 'pt', 'es'] as const).map((locale) => ( + +

+ {locale.toUpperCase()} + +

+
+ ))} +
+ ), +} diff --git a/src/components/copy-heading-link/index.tsx b/src/components/copy-heading-link/index.tsx new file mode 100644 index 0000000..03f1875 --- /dev/null +++ b/src/components/copy-heading-link/index.tsx @@ -0,0 +1,90 @@ +import { + useCallback, + useContext, + useEffect, + useRef, + useState, + type MouseEvent, +} from 'react' +import { Box } from '@vtex/brand-ui' +import type { SxStyleProp } from '@vtex/brand-ui' +import copy from 'copy-text-to-clipboard' + +import LinkIcon from 'components/icons/link-icon' +import Tooltip from 'components/tooltip' +import { LibraryContext } from 'utils/context/libraryContext' +import { messages } from 'utils/get-message' +import styles from './styles' + +export type CopyHeadingLinkProps = { + /** + * Heading `id` used as the URL hash. An empty slug means the heading is an + * h1 (the page title), so the copied URL has no hash. + */ + slug?: string + size?: number + sx?: SxStyleProp +} + +export const getHeadingUrl = (slug = '') => { + const { origin, pathname, search } = window.location + const pageUrl = `${origin}${pathname}${search}` + if (!slug) return pageUrl + + const hash = slug.startsWith('#') ? slug : `#${slug}` + return `${pageUrl}${hash}` +} + +const CopyHeadingLink = ({ + slug = '', + size = 16, + sx = {}, +}: CopyHeadingLinkProps) => { + const { locale } = useContext(LibraryContext) + const [copied, setCopied] = useState(false) + const copyTimeout = useRef(undefined) + + const copyLabel = messages[locale]['heading_link.copy'] || 'Copy link' + const copiedLabel = messages[locale]['heading_link.copied'] || 'Copied' + const label = copied ? copiedLabel : copyLabel + + const handleCopy = useCallback( + (event: MouseEvent) => { + event.preventDefault() + event.stopPropagation() + + copy(getHeadingUrl(slug)) + setCopied(true) + window.clearTimeout(copyTimeout.current) + copyTimeout.current = window.setTimeout(() => { + setCopied(false) + }, 2000) + }, + [slug] + ) + + useEffect(() => () => window.clearTimeout(copyTimeout.current), []) + + return ( + + event.preventDefault()} + > + + + + ) +} + +export default CopyHeadingLink diff --git a/src/components/copy-heading-link/styles.ts b/src/components/copy-heading-link/styles.ts new file mode 100644 index 0000000..a089f80 --- /dev/null +++ b/src/components/copy-heading-link/styles.ts @@ -0,0 +1,44 @@ +import type { SxStyleProp } from '@vtex/brand-ui' + +const muted = '#A1AAB7' +const mutedHover = '#5E6E84' +const pink = '#E31C58' + +const tooltipWrapper: SxStyleProp = { + display: 'inline-flex', + verticalAlign: 'middle', + position: 'relative', + lineHeight: 0, +} + +const button: SxStyleProp = { + display: 'inline-flex', + alignItems: 'center', + justifyContent: 'center', + flexShrink: 0, + ml: '8px', + p: 0, + border: 'none', + background: 'transparent', + color: muted, + cursor: 'pointer', + verticalAlign: 'middle', + lineHeight: 0, + userSelect: 'none', + transition: 'color 0.15s ease', + ':hover': { + color: mutedHover, + }, + ':focus-visible': { + outline: `2px solid ${pink}`, + outlineOffset: '2px', + borderRadius: '2px', + }, +} + +const buttonCopied: SxStyleProp = { + ...button, + color: mutedHover, +} + +export default { tooltipWrapper, button, buttonCopied } diff --git a/src/components/copy-link-button/CopyLinkButton.stories.tsx b/src/components/copy-link-button/CopyLinkButton.stories.tsx index b080540..bdd663d 100644 --- a/src/components/copy-link-button/CopyLinkButton.stories.tsx +++ b/src/components/copy-link-button/CopyLinkButton.stories.tsx @@ -11,9 +11,6 @@ const meta = { layout: 'centered', }, tags: ['autodocs'], - argTypes: { - onAccept: () => alert('Accept cookies'), - }, decorators: [ (Story) => ( diff --git a/src/components/date-text/DateText.stories.tsx b/src/components/date-text/DateText.stories.tsx new file mode 100644 index 0000000..24399f9 --- /dev/null +++ b/src/components/date-text/DateText.stories.tsx @@ -0,0 +1,71 @@ +import type { Meta, StoryObj } from '@storybook/react' +import { ThemeProvider } from '@vtex/brand-ui' +import DateText from './index' +import LibraryContextProvider from 'utils/context/libraryContext' +import { exampleContextProps } from 'utils/storybook-constants' + +const sampleDates = { + createdAt: new Date('2024-03-12T12:00:00.000Z'), + updatedAt: new Date('2026-09-03T12:00:00.000Z'), +} + +const meta = { + title: 'Example/DateText', + component: DateText, + parameters: { + layout: 'centered', + }, + tags: ['autodocs'], + args: sampleDates, + decorators: [ + (Story) => ( + + +
+ +
+
+
+ ), + ], +} satisfies Meta + +export default meta +type Story = StoryObj + +export const Default: Story = {} + +export const SameDay: Story = { + args: { + createdAt: new Date('2026-09-03T12:00:00.000Z'), + updatedAt: new Date('2026-09-03T18:00:00.000Z'), + }, +} + +export const Spanish: Story = { + decorators: [ + (Story) => ( + + +
+ +
+
+
+ ), + ], +} + +export const Portuguese: Story = { + decorators: [ + (Story) => ( + + +
+ +
+
+
+ ), + ], +} diff --git a/src/components/date-text/index.tsx b/src/components/date-text/index.tsx new file mode 100644 index 0000000..f94b9d7 --- /dev/null +++ b/src/components/date-text/index.tsx @@ -0,0 +1,51 @@ +import { useContext } from 'react' +import { Flex, Text } from '@vtex/brand-ui' + +import { LibraryContext } from 'utils/context/libraryContext' +import { messages } from 'utils/get-message' +import styles from './styles' + +export type DateTextProps = { + createdAt: Date + updatedAt: Date +} + +const formatDate = (date: Date, locale: string) => { + if (Number.isNaN(date.getTime())) return undefined + return new Intl.DateTimeFormat(locale).format(date) +} + +const DateText = ({ createdAt, updatedAt }: DateTextProps) => { + const { locale } = useContext(LibraryContext) + const createdLabel = messages[locale]['date_text.created'] || 'Published on' + const updatedLabel = + messages[locale]['date_text.updated'] || 'Last updated on' + const created = formatDate(createdAt, locale) + const updated = formatDate(updatedAt, locale) + + if (!created && !updated) return null + + return ( + + {created && ( + + + {createdLabel} + + {created} + + )} + {created && updated && } + {updated && ( + + + {updatedLabel} + + {updated} + + )} + + ) +} + +export default DateText diff --git a/src/components/date-text/styles.ts b/src/components/date-text/styles.ts new file mode 100644 index 0000000..24b3fd6 --- /dev/null +++ b/src/components/date-text/styles.ts @@ -0,0 +1,31 @@ +import type { SxStyleProp } from '@vtex/brand-ui' + +const dateContainer: SxStyleProp = { + alignItems: 'center', + color: '#5E6E84', + fontSize: '13px', + lineHeight: '20px', + fontWeight: '400', + columnGap: '6px', + rowGap: '2px', + flexWrap: 'wrap', + width: '100%', +} + +const dateItem: SxStyleProp = { + color: 'inherit', + fontSize: 'inherit', + lineHeight: 'inherit', +} + +const dateLabel: SxStyleProp = { + fontWeight: '500', + paddingRight: '4px', +} + +const dateSeparator: SxStyleProp = { + color: '#8A94A3', + flexShrink: 0, +} + +export default { dateContainer, dateItem, dateLabel, dateSeparator } diff --git a/src/components/documentation-card/functions.ts b/src/components/documentation-card/functions.ts index d35ad9b..57f0fd8 100644 --- a/src/components/documentation-card/functions.ts +++ b/src/components/documentation-card/functions.ts @@ -3,38 +3,117 @@ import styles from './styles' const cardContainer = (containerType: string) => { const containerWidth = - containerType === 'dropdown' - ? ['308px', '442px', '444px', '480px'] - : containerType === 'mobile' + containerType === 'dropdown' || + containerType === 'mobile' || + containerType === 'see-also' ? '100%' : ['324px', '544px', '544px', '544px', '544px', '720px', '1400px'] const textWidth = containerType === 'dropdown' - ? ['276px', '410px', '412px', '432px'] + ? '100%' : containerType === 'mobile' - ? '90%' + ? '100%' : ['276px', '496px', '496px', '496px', '496px', '672px', '1352px'] const cardContainer: SxStyleProp = { ...styles.cardContainer, width: containerWidth, - - '.title, .description': { - width: textWidth, - }, + ...(containerType === 'mobile' + ? { + my: 0, + padding: 0, + borderRadius: 0, + maxWidth: '100%', + overflow: 'hidden', + ':active, :hover': { + borderRadius: 0, + backgroundColor: 'transparent', + }, + '.title': { + minWidth: 0, + width: '100%', + }, + '.description': { + width: '100%', + maxWidth: '100%', + }, + } + : containerType === 'dropdown' + ? { + my: 0, + padding: '12px', + borderRadius: '8px', + boxSizing: 'border-box', + minWidth: 0, + ':active, :hover': { + borderRadius: '8px', + backgroundColor: 'transparent', + '.description': { + color: '#142032', + }, + }, + ':hover .title, :active .title': { + color: '#142032', + }, + '.title, .description': { + width: '100%', + }, + } + : containerType === 'see-also' + ? { + my: 0, + width: '100%', + maxWidth: '100%', + minWidth: 0, + height: '100%', + padding: '12px 14px', + borderRadius: '8px', + border: '1px solid #E7E9EE', + boxSizing: 'border-box', + transition: + 'border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease', + ':active, :hover': { + borderRadius: '8px', + borderColor: '#CCCED8', + backgroundColor: '#F8F7FC', + boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.06)', + '.description': { + color: '#4A596B', + }, + }, + ':hover .title, :active .title': { + color: '#000711', + }, + '.title, .description': { + width: '100%', + }, + } + : { + '.title, .description': { + width: textWidth, + }, + }), } return cardContainer } const titleContainer = (containerType: string) => { - const marginBottom = - containerType === 'dropdown' ? ['5px', '5px', '5px', '1px'] : '8px' + const isStacked = + containerType === 'dropdown' || + containerType === 'mobile' || + containerType === 'see-also' const titleContainer: SxStyleProp = { ...styles.titleContainer, - marginBottom, + marginBottom: isStacked ? 0 : '8px', + ...(isStacked + ? { + alignItems: 'flex-start', + gap: '12px', + } + : {}), } return titleContainer @@ -44,11 +123,34 @@ const cardTitle = (containerType: string) => { const titleAttributes = containerType === 'see-also' ? { - textOverflow: 'ellipsis', + ml: 0, + fontSize: '15px', + lineHeight: '22px', + fontWeight: 500, + color: '#142032', + whiteSpace: 'normal', + overflow: 'hidden', + display: '-webkit-box', + WebkitLineClamp: 2, + WebkitBoxOrient: 'vertical', + } + : containerType === 'mobile' + ? { + ml: '0px', + fontSize: '16px', + lineHeight: '22px', + color: '#4a596b', + } + : containerType === 'dropdown' + ? { + ml: 0, + fontSize: '14px', + lineHeight: '20px', + fontWeight: 500, + color: '#142032', whiteSpace: 'nowrap', overflow: 'hidden', - fontSize: '18px', - lineHeight: '24px', + textOverflow: 'ellipsis', } : { fontSize: '16px', @@ -63,4 +165,50 @@ const cardTitle = (containerType: string) => { return cardTitle } -export { cardContainer, cardTitle, titleContainer } +const cardDescription = (containerType: string) => { + if (containerType === 'mobile') { + const mobileDescription: SxStyleProp = { + ...styles.description, + ml: '0px', + mt: '4px', + fontSize: '13px', + lineHeight: '18px', + color: '#4A596B', + overflowWrap: 'break-word', + wordBreak: 'break-word', + } + return mobileDescription + } + + if (containerType === 'dropdown') { + const dropdownDescription: SxStyleProp = { + ...styles.description, + ml: 0, + mt: '2px', + fontSize: '12px', + lineHeight: '16px', + color: '#4A596B', + display: '-webkit-box', + WebkitLineClamp: 2, + WebkitBoxOrient: 'vertical', + overflow: 'hidden', + } + return dropdownDescription + } + + if (containerType === 'see-also') { + const seeAlsoDescription: SxStyleProp = { + ...styles.description, + ml: 0, + mt: '2px', + fontSize: '12px', + lineHeight: '16px', + color: '#5E6E84', + } + return seeAlsoDescription + } + + return styles.description +} + +export { cardContainer, cardTitle, cardDescription, titleContainer } diff --git a/src/components/documentation-card/index.tsx b/src/components/documentation-card/index.tsx index 96c3350..2daa0a9 100644 --- a/src/components/documentation-card/index.tsx +++ b/src/components/documentation-card/index.tsx @@ -1,8 +1,13 @@ import Link from 'next/link.js' import { Box, Flex, Text } from '@vtex/brand-ui' +import { + cardContainer, + cardTitle, + cardDescription, + titleContainer, +} from './functions' import styles from './styles' -import { cardContainer, cardTitle, titleContainer } from './functions' import { MouseEventHandler } from 'react' import { DataElement } from 'utils/typings/types' @@ -12,6 +17,7 @@ export interface DocumentProps extends DataElement { export interface CardProps extends DocumentProps { containerType: 'dropdown' | 'see-also' | 'mobile' onClick?: MouseEventHandler | undefined + isExternalLink?: boolean } const DocumentationCard = ({ title, @@ -20,20 +26,52 @@ const DocumentationCard = ({ containerType, Icon, onClick, + isExternalLink, }: CardProps) => { return ( - + - - - {title} - + {containerType === 'dropdown' ? ( + + + + ) : containerType === 'see-also' ? ( + + + + ) : ( + + )} + + + {title} + + + {description} + + - - {description} - diff --git a/src/components/documentation-card/styles.ts b/src/components/documentation-card/styles.ts index 96d7886..238afd5 100644 --- a/src/components/documentation-card/styles.ts +++ b/src/components/documentation-card/styles.ts @@ -26,6 +26,29 @@ const titleContainer: SxStyleProp = { alignItems: 'center', } +const dropdownIcon: SxStyleProp = { + display: 'flex', + alignItems: 'center', + justifyContent: 'center', + flexShrink: 0, + width: '36px', + height: '36px', + borderRadius: '8px', + backgroundColor: '#f8f7fc', + transition: 'background-color 0.15s ease', +} + +const seeAlsoIcon: SxStyleProp = { + display: 'flex', + alignItems: 'center', + justifyContent: 'center', + flexShrink: 0, + width: '32px', + height: '32px', + borderRadius: '8px', + backgroundColor: '#F4F5F7', +} + const title: SxStyleProp = { ml: '8px', color: 'muted.0', @@ -43,4 +66,6 @@ export default { description, title, titleContainer, + dropdownIcon, + seeAlsoIcon, } diff --git a/src/components/feedback-modal/FeedbackModal.stories.tsx b/src/components/feedback-modal/FeedbackModal.stories.tsx new file mode 100644 index 0000000..f9905e3 --- /dev/null +++ b/src/components/feedback-modal/FeedbackModal.stories.tsx @@ -0,0 +1,87 @@ +import type { ComponentProps } from 'react' +import type { Meta, StoryObj } from '@storybook/react' +import { ThemeProvider } from '@vtex/brand-ui' +import FeedbackModal from './index' +import LibraryContextProvider from 'utils/context/libraryContext' +import { exampleContextProps } from 'utils/storybook-constants' + +type FeedbackModalStoryArgs = ComponentProps & { + locale?: 'en' | 'pt' | 'es' +} + +const meta = { + title: 'Example/FeedbackModal', + component: FeedbackModal, + parameters: { + layout: 'centered', + }, + tags: ['autodocs'], + argTypes: { + locale: { + control: 'select', + options: ['en', 'pt', 'es'], + description: 'Language used for the modal labels', + }, + }, + args: { + locale: 'en', + pageUrl: 'https://developers.vtex.com/docs/guides/example', + sendFeedback: async () => undefined, + }, + decorators: [ + (Story, { args }) => ( + + + + + + ), + ], + render: ({ locale, ...args }) => ( + + ), +} satisfies Meta + +export default meta +type Story = StoryObj + +export const Default: Story = {} + +export const Open: Story = { + args: { + defaultOpen: true, + }, +} + +export const HelpCenter: Story = { + args: { + defaultOpen: true, + pageUrl: 'https://help.vtex.com/docs/tutorials/example', + }, +} + +export const ErrorState: Story = { + args: { + defaultOpen: true, + sendFeedback: async () => { + throw new Error('Network error') + }, + }, +} + +export const Spanish: Story = { + args: { + locale: 'es', + defaultOpen: true, + }, +} + +export const Portuguese: Story = { + args: { + locale: 'pt', + defaultOpen: true, + }, +} diff --git a/src/components/feedback-modal/functions.ts b/src/components/feedback-modal/functions.ts deleted file mode 100644 index 3469b85..0000000 --- a/src/components/feedback-modal/functions.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { SxStyleProp } from '@vtex/brand-ui' -import styles from './styles' - -const modalWidth = 320, - modalHeight = 180 - -export const modalPositionStyle = ( - chosenButtonRef: HTMLElement | undefined -): SxStyleProp => { - if (!chosenButtonRef) return false - - const { - top: buttonTop, - bottom: buttonBottom, - left: buttonLeft, - width: buttonWidth, - } = chosenButtonRef.getBoundingClientRect() - - const modalLeft = [ - 'initial', - `${buttonLeft - (modalWidth - buttonWidth) / 2}px`, - ] - const modalTop = [ - 'initial', - buttonTop > modalHeight - ? `${buttonTop - modalHeight}px` - : `${buttonBottom}px`, - ] - - const modalBox: SxStyleProp = { - ...styles.box, - position: 'absolute', - left: modalLeft, - top: modalTop, - } - return modalBox -} - -export const arrowDirectionStyle = ( - chosenButtonRef: HTMLElement | undefined, - element: 'arrow' | 'card' -): SxStyleProp | false => { - if (!chosenButtonRef) return false - - const { top: buttonTop } = chosenButtonRef.getBoundingClientRect() - - if (buttonTop >= modalHeight) return false - - if (element === 'arrow') { - const arrowDirection: SxStyleProp = { - ...styles.arrow, - transform: 'rotate(180deg)', - top: '0', - bottom: 'initial', - } - return arrowDirection - } - - const cardPosition: SxStyleProp = { - ...styles.card, - mt: '14px', - } - - return cardPosition -} diff --git a/src/components/feedback-modal/index.tsx b/src/components/feedback-modal/index.tsx index b6ccaf1..22a6a12 100644 --- a/src/components/feedback-modal/index.tsx +++ b/src/components/feedback-modal/index.tsx @@ -1,125 +1,312 @@ -import { Box, Button, Textarea, Text, Icon, IconProps } from '@vtex/brand-ui' -import { - Dispatch, - MutableRefObject, - SetStateAction, - useContext, - useEffect, - useRef, - useState, -} from 'react' -import useClickOutside from 'utils/hooks/useClickOutside' - -import { arrowDirectionStyle, modalPositionStyle } from './functions' -import styles from './styles' -import { messages } from 'utils/get-message' +import { FormEvent, useContext, useEffect, useState } from 'react' +import { Box, Flex, Text } from '@vtex/brand-ui' import { LibraryContext } from 'utils/context/libraryContext' -export interface ModalProps { - modalOpen: boolean - liked?: boolean +import { messages } from 'utils/get-message' +import CheckIcon from 'components/icons/check-icon' +import CommentIcon from 'components/icons/comment-icon' +import WarningIcon from 'components/icons/warning-icon' +import Modal from './modal' +import styles from './styles' + +const DEFAULT_FEEDBACK_ENDPOINT = '/api/feedback-google' + +const FEEDBACK_TYPES = [ + { + value: 'Incorrect information', + labelKey: 'feedback_modal.type.incorrect', + }, + { + value: 'Page not found', + labelKey: 'feedback_modal.type.page_not_found', + }, + { + value: 'Content improvement', + labelKey: 'feedback_modal.type.content_improvement', + }, + { + value: 'New documentation', + labelKey: 'feedback_modal.type.new_documentation', + }, + { + value: 'Other documentation feedback', + labelKey: 'feedback_modal.type.other', + }, +] as const + +export type FeedbackModalPayload = { + name: string + email: string + type: string + feedback: string + url: string } -const FeedBackModalArrow = (props: IconProps) => { - return ( - - {' '} - - - ) +export interface FeedbackModalProps { + /** + * Canonical page URL prefilled in the Article field. + * Defaults to `window.location.href` so Help Center and Developer Portal + * both record the page the user is on. + */ + pageUrl?: string + /** + * @deprecated Use `pageUrl`. + */ + initialMessage?: string + /** Endpoint that receives the form payload. Defaults to `/api/feedback-google`. */ + feedbackEndpoint?: string + /** Override the default POST. */ + sendFeedback?: (payload: FeedbackModalPayload) => Promise + /** Open the modal on first render. Useful for Storybook. */ + defaultOpen?: boolean +} + +const postFeedback = async ( + payload: FeedbackModalPayload, + endpoint: string +) => { + const res = await fetch(endpoint, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(payload), + }) + if (!res.ok) { + const data = await res.json().catch(() => ({})) + throw new Error(data?.error || 'Failed to send feedback. Try again') + } } -const FeedBackModal = ({ - modalState, - changeModalState, - changeFeedBack, - chosenButtonRef, - onSubmit, -}: { - modalState: ModalProps - changeModalState: Dispatch> - changeFeedBack: Dispatch> - chosenButtonRef: MutableRefObject - onSubmit: (comment: string) => Promise -}) => { - const cardRef = useRef() - const { body, documentElement } = document - const [comment, setComment] = useState('') +const FeedbackModal = ({ + pageUrl, + initialMessage, + feedbackEndpoint = DEFAULT_FEEDBACK_ENDPOINT, + sendFeedback, + defaultOpen = false, +}: FeedbackModalProps) => { const { locale } = useContext(LibraryContext) + const localizedMessages = messages[locale] ?? messages.en + const [isOpen, setIsOpen] = useState(defaultOpen) + const [submitted, setSubmitted] = useState(false) + const [submitting, setSubmitting] = useState(false) + const [error, setError] = useState(false) - const closeModal = () => { - const feedback = modalState?.liked - const scrollTop = body.getBoundingClientRect().top * -1 + const handleClose = () => setIsOpen(false) - body.classList.remove('modal-open') - documentElement.scrollTop = scrollTop - body.style.removeProperty('top') + const articleUrl = + pageUrl || + initialMessage || + (typeof window !== 'undefined' ? window.location.href : '') - changeModalState({ modalOpen: false }) - changeFeedBack(feedback) - } + useEffect(() => { + if (isOpen) { + setSubmitted(false) + setSubmitting(false) + setError(false) + } + }, [isOpen]) - const handleClick = async () => { - onSubmit(comment) - closeModal() - } + async function handleSubmit(event: FormEvent) { + event.preventDefault() + setSubmitting(true) + setError(false) - useEffect(() => { - const scrollTop = body.getBoundingClientRect().top * -1 - body.style.top = `-${scrollTop}px` - body.classList.add('modal-open') - }, []) + const form = event.currentTarget + const formData = new FormData(form) + const payload: FeedbackModalPayload = { + name: String(formData.get('name') || ''), + email: String(formData.get('email') || ''), + type: String(formData.get('type') || 'Other documentation feedback'), + url: String(formData.get('url') || ''), + feedback: String(formData.get('feedback') || ''), + } + + try { + if (sendFeedback) { + await sendFeedback(payload) + } else { + await postFeedback(payload, feedbackEndpoint) + } + form.reset() + setSubmitted(true) + } catch { + setError(true) + } finally { + setSubmitting(false) + } + } - useClickOutside(cardRef, changeModalState) return ( - + setIsOpen(true)} + sx={styles.triggerButton} > - - - {messages[locale]['feedback_modal.title']} - -