@intlayer/design-system 5.3.0 → 5.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Auth/ChangePasswordForm/changePasswordForm.content.d.ts +144 -0
- package/dist/components/Auth/ChangePasswordForm/changePasswordForm.content.d.ts.map +1 -1
- package/dist/components/Auth/ChangePasswordForm/useChangePasswordSchema.content.d.ts +144 -0
- package/dist/components/Auth/ChangePasswordForm/useChangePasswordSchema.content.d.ts.map +1 -1
- package/dist/components/Auth/DefineNewPasswordForm/defineNewPasswordForm.content.d.ts +108 -0
- package/dist/components/Auth/DefineNewPasswordForm/defineNewPasswordForm.content.d.ts.map +1 -1
- package/dist/components/Auth/DefineNewPasswordForm/useDefineNewPasswordSchema.content.d.ts +108 -0
- package/dist/components/Auth/DefineNewPasswordForm/useDefineNewPasswordSchema.content.d.ts.map +1 -1
- package/dist/components/Auth/ExternalsLoginButtons/externalsLoginButtons.content.d.ts +90 -0
- package/dist/components/Auth/ExternalsLoginButtons/externalsLoginButtons.content.d.ts.map +1 -1
- package/dist/components/Auth/ResetPasswordForm/resetPasswordContent.content.d.ts +126 -0
- package/dist/components/Auth/ResetPasswordForm/resetPasswordContent.content.d.ts.map +1 -1
- package/dist/components/Auth/ResetPasswordForm/useResetPasswordSchema.content.d.ts +54 -0
- package/dist/components/Auth/ResetPasswordForm/useResetPasswordSchema.content.d.ts.map +1 -1
- package/dist/components/Auth/SignInForm/signIn.content.d.ts +234 -0
- package/dist/components/Auth/SignInForm/signIn.content.d.ts.map +1 -1
- package/dist/components/Auth/SignInForm/useSignInSchema.content.d.ts +72 -0
- package/dist/components/Auth/SignInForm/useSignInSchema.content.d.ts.map +1 -1
- package/dist/components/Auth/SignUpForm/signUpForm.content.d.ts +198 -0
- package/dist/components/Auth/SignUpForm/signUpForm.content.d.ts.map +1 -1
- package/dist/components/Auth/SignUpForm/useSignUpSchema.content.d.ts +126 -0
- package/dist/components/Auth/SignUpForm/useSignUpSchema.content.d.ts.map +1 -1
- package/dist/components/Auth/VerifyEmailForm/index.content.d.ts +72 -0
- package/dist/components/Auth/VerifyEmailForm/index.content.d.ts.map +1 -1
- package/dist/components/Breadcrumb/breadcrumb.content.d.ts +18 -0
- package/dist/components/Breadcrumb/breadcrumb.content.d.ts.map +1 -1
- package/dist/components/ContentEditor/ContentEditorInput.cjs +1 -0
- package/dist/components/ContentEditor/ContentEditorInput.cjs.map +1 -1
- package/dist/components/ContentEditor/ContentEditorInput.d.ts.map +1 -1
- package/dist/components/ContentEditor/ContentEditorInput.mjs +1 -0
- package/dist/components/ContentEditor/ContentEditorInput.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/dictionaryCreationForm.content.d.ts +234 -0
- package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/dictionaryCreationForm.content.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/useDictionaryFormSchema.content.d.ts +72 -0
- package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/useDictionaryFormSchema.content.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.d.ts +303 -0
- package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.content.d.ts +216 -0
- package/dist/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.content.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/EnumKeyInput.cjs +1 -0
- package/dist/components/DictionaryFieldEditor/EnumKeyInput.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/EnumKeyInput.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/EnumKeyInput.mjs +1 -0
- package/dist/components/DictionaryFieldEditor/EnumKeyInput.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.d.ts +270 -0
- package/dist/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.d.ts +144 -0
- package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/StructureView/structureView.content.d.ts +72 -0
- package/dist/components/DictionaryFieldEditor/StructureView/structureView.content.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/versionSwitcherDropDown.content.d.ts +54 -0
- package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/versionSwitcherDropDown.content.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/dictionaryFieldEditor.content.d.ts +36 -0
- package/dist/components/DictionaryFieldEditor/dictionaryFieldEditor.content.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/nodeTypeSelector.content.d.ts +217 -0
- package/dist/components/DictionaryFieldEditor/nodeTypeSelector.content.d.ts.map +1 -1
- package/dist/components/IDE/CopyButton.content.d.ts +18 -0
- package/dist/components/IDE/CopyButton.content.d.ts.map +1 -1
- package/dist/components/Input/Input.cjs.map +1 -1
- package/dist/components/Input/Input.d.ts +7 -1
- package/dist/components/Input/Input.d.ts.map +1 -1
- package/dist/components/Input/Input.mjs.map +1 -1
- package/dist/components/Input/InputPassword.cjs +8 -1
- package/dist/components/Input/InputPassword.cjs.map +1 -1
- package/dist/components/Input/InputPassword.d.ts.map +1 -1
- package/dist/components/Input/InputPassword.mjs +8 -1
- package/dist/components/Input/InputPassword.mjs.map +1 -1
- package/dist/components/Loader/index.content.d.ts +15 -0
- package/dist/components/Loader/index.content.d.ts.map +1 -1
- package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.cjs +1 -0
- package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.cjs.map +1 -1
- package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.d.ts.map +1 -1
- package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.mjs +1 -0
- package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.mjs.map +1 -1
- package/dist/components/LocaleSwitcherContentDropDown/localeSwitcher.content.cjs +15 -0
- package/dist/components/LocaleSwitcherContentDropDown/localeSwitcher.content.cjs.map +1 -1
- package/dist/components/LocaleSwitcherContentDropDown/localeSwitcher.content.d.ts +159 -0
- package/dist/components/LocaleSwitcherContentDropDown/localeSwitcher.content.d.ts.map +1 -1
- package/dist/components/LocaleSwitcherContentDropDown/localeSwitcher.content.mjs +15 -0
- package/dist/components/LocaleSwitcherContentDropDown/localeSwitcher.content.mjs.map +1 -1
- package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.cjs +1 -0
- package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.cjs.map +1 -1
- package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.d.ts.map +1 -1
- package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.mjs +1 -0
- package/dist/components/LocaleSwitcherDropDown/LocaleSwitcher.mjs.map +1 -1
- package/dist/components/LocaleSwitcherDropDown/localeSwitcher.content.cjs +15 -0
- package/dist/components/LocaleSwitcherDropDown/localeSwitcher.content.cjs.map +1 -1
- package/dist/components/LocaleSwitcherDropDown/localeSwitcher.content.d.ts +123 -0
- package/dist/components/LocaleSwitcherDropDown/localeSwitcher.content.d.ts.map +1 -1
- package/dist/components/LocaleSwitcherDropDown/localeSwitcher.content.mjs +15 -0
- package/dist/components/LocaleSwitcherDropDown/localeSwitcher.content.mjs.map +1 -1
- package/dist/components/TextArea/TextArea.cjs.map +1 -1
- package/dist/components/TextArea/TextArea.d.ts +7 -1
- package/dist/components/TextArea/TextArea.d.ts.map +1 -1
- package/dist/components/TextArea/TextArea.mjs.map +1 -1
- package/dist/index-BCuMWKyy.js.map +1 -1
- package/dist/index-BYzBot7l.cjs.map +1 -1
- package/dist/tailwind.css +1 -1
- package/dist/zod-BV4nCGJE.js.map +1 -1
- package/dist/zod-DSrtTSD_.cjs.map +1 -1
- package/package.json +19 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocaleSwitcherContent.cjs","sources":["../../../src/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.tsx"],"sourcesContent":["'use client';\n\nimport { Locales, type LocalesValues } from '@intlayer/config/client';\nimport { getHTMLTextDir, getLocaleName } from '@intlayer/core';\nimport Fuse, { type IFuseOptions } from 'fuse.js';\nimport { Check, Globe, MoveVertical } from 'lucide-react';\nimport { useCallback, useMemo, useRef, useState, type FC } from 'react';\nimport { useDictionary, useLocale } from 'react-intlayer';\nimport { usePersistedStore } from '../../hooks';\nimport { Button } from '../Button';\nimport { Container } from '../Container';\nimport { DropDown, type PanelProps } from '../DropDown';\nimport { Input } from '../Input';\nimport { SwitchSelector } from '../SwitchSelector';\nimport localeSwitcherContent from './localeSwitcher.content';\nimport { useLocaleSwitcherContent } from './LocaleSwitcherContentContext';\n\nexport type LocaleSwitcherContentProps = {\n panelProps?: Omit<PanelProps, 'identifier'>;\n isMultilingual?: boolean;\n};\n\nconst DROPDOWN_IDENTIFIER = 'locale-switcher-content';\n\ntype MultilingualAvailableLocales = {\n locale: LocalesValues;\n englishName: string;\n currentLocaleName: string;\n ownLocaleName: string;\n};\n\nexport const LocaleSwitcherContent: FC<LocaleSwitcherContentProps> = ({\n panelProps,\n isMultilingual = true,\n}) => {\n const {\n switchTo,\n searchInput,\n localeSwitcherLabel,\n languageListLabel,\n seeAllLocalesSwitch,\n } = useDictionary(localeSwitcherContent);\n const inputRef = useRef<HTMLInputElement>(null);\n const { locale } = useLocale();\n const { availableLocales, selectedLocales, setSelectedLocales } =\n useLocaleSwitcherContent();\n\n const multilingualAvailableLocales: MultilingualAvailableLocales[] = useMemo(\n () =>\n availableLocales.map((localeEl) => {\n const englishName = getLocaleName(localeEl, Locales.ENGLISH);\n const currentLocaleName = getLocaleName(localeEl, locale);\n const ownLocaleName = getLocaleName(localeEl);\n return {\n locale: localeEl,\n englishName,\n currentLocaleName,\n ownLocaleName,\n };\n }),\n [availableLocales, locale]\n );\n\n const [results, setResults] = useState<MultilingualAvailableLocales[]>(\n multilingualAvailableLocales\n );\n const [seeAllLocales, setSeeAllLocales] = usePersistedStore(\n 'locale-content-selector-see-all-locales',\n false\n );\n\n // Create a new Fuse instance with the options and documentation data\n const fuse = useMemo(() => {\n const fuseOptions: IFuseOptions<MultilingualAvailableLocales> = {\n keys: [\n { name: 'ownLocaleName', weight: 0.4 },\n { name: 'englishName', weight: 0.2 },\n { name: 'currentLocaleName', weight: 0.2 },\n { name: 'locale', weight: 0.2 },\n ],\n threshold: 0.02, // Defines how fuzzy the matching should be (lower is more strict)\n };\n\n return new Fuse(multilingualAvailableLocales, fuseOptions);\n }, [multilingualAvailableLocales]);\n\n const handleSearch = useCallback(\n (searchQuery: string) => {\n if (searchQuery) {\n // Perform search on every input change\n const searchResults = fuse\n .search(searchQuery)\n .map((result) => result.item);\n setResults(searchResults);\n } else {\n setResults(multilingualAvailableLocales);\n }\n },\n [fuse, multilingualAvailableLocales]\n );\n\n const handleClickLocale = (localeItem: LocalesValues) => {\n if (isMultilingual) {\n if (selectedLocales.includes(localeItem)) {\n if (selectedLocales.length > 1) {\n setSelectedLocales((prev) => prev.filter((el) => el !== localeItem));\n }\n } else {\n setSelectedLocales((prev) => [...prev, localeItem]);\n }\n } else {\n setSelectedLocales([localeItem]);\n }\n };\n\n const handleSeeAllLocales = (value: boolean) => {\n setSeeAllLocales(value);\n if (value) {\n setSelectedLocales(availableLocales);\n } else {\n setSelectedLocales([locale]);\n }\n };\n\n return (\n <div\n className=\"border-text text-text rounded-xl border transition-colors\"\n aria-label={localeSwitcherLabel.value}\n >\n <DropDown identifier={DROPDOWN_IDENTIFIER}>\n <DropDown.Trigger identifier={DROPDOWN_IDENTIFIER}>\n <div className=\"flex w-full items-center justify-between\">\n <div className=\"px-2 py-1\">\n <Globe size={18} />\n </div>\n <MoveVertical className=\"self-center\" size={18} />\n </div>\n </DropDown.Trigger>\n\n <DropDown.Panel\n identifier={DROPDOWN_IDENTIFIER}\n isOverable\n isFocusable\n className=\"left-auto right-0\"\n {...panelProps}\n >\n <Container\n className=\"max-h-[80vh] min-w-28\"\n separator=\"y\"\n role=\"listbox\"\n transparency=\"sm\"\n border\n roundedSize=\"2xl\"\n borderColor=\"text\"\n aria-label={languageListLabel.value}\n >\n {isMultilingual && (\n <div className=\"m-auto p-2\">\n <SwitchSelector\n defaultValue={false}\n onChange={handleSeeAllLocales}\n color=\"text\"\n size=\"sm\"\n className=\"!w-60\"\n choices={[\n {\n content: seeAllLocalesSwitch.true.value,\n value: true,\n },\n {\n content: seeAllLocalesSwitch.false.value,\n value: false,\n },\n ]}\n />\n </div>\n )}\n\n {!(isMultilingual && seeAllLocales) && (\n <>\n <div className=\"p-3\">\n <Input\n type=\"search\"\n placeholder={searchInput.placeholder.value}\n onChange={(e) => handleSearch(e.target.value)}\n ref={inputRef}\n />\n </div>\n <ol className=\"divide-text/20 divide-y divide-dashed overflow-y-auto p-1\">\n {results.map(\n ({\n locale: localeItem,\n currentLocaleName,\n ownLocaleName,\n }) => (\n <li className=\"px-1.5 py-1\" key={localeItem}>\n <Button\n onClick={() => handleClickLocale(localeItem)}\n label={`${switchTo} ${currentLocaleName}`}\n disabled={\n !(availableLocales ?? availableLocales).includes(\n localeItem\n )\n }\n isActive={selectedLocales.includes(localeItem)}\n variant=\"hoverable\"\n color=\"text\"\n isFullWidth\n textAlign=\"left\"\n size=\"sm\"\n >\n <div className=\"flex flex-row items-center justify-between gap-3 px-2 py-1\">\n {isMultilingual && (\n <div className=\"w-4\">\n {selectedLocales.includes(localeItem) && (\n <Check className=\"size-full\" />\n )}\n </div>\n )}\n <div className=\"flex flex-1 flex-row items-center justify-between gap-3 px-2 py-1\">\n <div className=\"flex flex-col text-nowrap\">\n <span\n dir={getHTMLTextDir(localeItem)}\n lang={localeItem}\n >\n {ownLocaleName}\n </span>\n <span className=\"text-neutral text-xs\">\n {currentLocaleName}\n </span>\n </div>\n <span className=\"text-neutral text-sm\">\n {localeItem.toUpperCase()}\n </span>\n </div>\n </div>\n </Button>\n </li>\n )\n )}\n </ol>\n </>\n )}\n </Container>\n </DropDown.Panel>\n </DropDown>\n </div>\n );\n};\n"],"names":["useDictionary","localeSwitcherContent","useRef","useLocale","useLocaleSwitcherContent","useMemo","getLocaleName","Locales","useState","usePersistedStore","useCallback","jsx","jsxs","DropDown","Globe","MoveVertical","Container","SwitchSelector","Fragment","Input","Button","Check","getHTMLTextDir"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA,MAAM,sBAAsB;AASrB,MAAM,wBAAwD,CAAC;AAAA,EACpE;AAAA,EACA,iBAAiB;AACnB,MAAM;AACE,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACEA,cAAAA,cAAcC,+DAAqB;AACjC,QAAA,WAAWC,oBAAyB,IAAI;AACxC,QAAA,EAAE,OAAO,IAAIC,wBAAU;AAC7B,QAAM,EAAE,kBAAkB,iBAAiB,mBAAA,IACzCC,sEAAAA,yBAAyB;AAE3B,QAAM,+BAA+DC,aAAA;AAAA,IACnE,MACE,iBAAiB,IAAI,CAAC,aAAa;AACjC,YAAM,cAAcC,KAAA,cAAc,UAAUC,OAAAA,QAAQ,OAAO;AACrD,YAAA,oBAAoBD,KAAAA,cAAc,UAAU,MAAM;AAClD,YAAA,gBAAgBA,mBAAc,QAAQ;AACrC,aAAA;AAAA,QACL,QAAQ;AAAA,QACR;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IAAA,CACD;AAAA,IACH,CAAC,kBAAkB,MAAM;AAAA,EAC3B;AAEM,QAAA,CAAC,SAAS,UAAU,IAAIE,aAAA;AAAA,IAC5B;AAAA,EACF;AACM,QAAA,CAAC,eAAe,gBAAgB,IAAIC,wBAAA;AAAA,IACxC;AAAA,IACA;AAAA,EACF;AAGM,QAAA,OAAOJ,aAAAA,QAAQ,MAAM;AACzB,UAAM,cAA0D;AAAA,MAC9D,MAAM;AAAA,QACJ,EAAE,MAAM,iBAAiB,QAAQ,IAAI;AAAA,QACrC,EAAE,MAAM,eAAe,QAAQ,IAAI;AAAA,QACnC,EAAE,MAAM,qBAAqB,QAAQ,IAAI;AAAA,QACzC,EAAE,MAAM,UAAU,QAAQ,IAAI;AAAA,MAChC;AAAA,MACA,WAAW;AAAA;AAAA,IACb;AAEO,WAAA,IAAI,KAAK,8BAA8B,WAAW;AAAA,EAAA,GACxD,CAAC,4BAA4B,CAAC;AAEjC,QAAM,eAAeK,aAAA;AAAA,IACnB,CAAC,gBAAwB;AACvB,UAAI,aAAa;AAET,cAAA,gBAAgB,KACnB,OAAO,WAAW,EAClB,IAAI,CAAC,WAAW,OAAO,IAAI;AAC9B,mBAAW,aAAa;AAAA,MAAA,OACnB;AACL,mBAAW,4BAA4B;AAAA,MAAA;AAAA,IAE3C;AAAA,IACA,CAAC,MAAM,4BAA4B;AAAA,EACrC;AAEM,QAAA,oBAAoB,CAAC,eAA8B;AACvD,QAAI,gBAAgB;AACd,UAAA,gBAAgB,SAAS,UAAU,GAAG;AACpC,YAAA,gBAAgB,SAAS,GAAG;AACX,6BAAA,CAAC,SAAS,KAAK,OAAO,CAAC,OAAO,OAAO,UAAU,CAAC;AAAA,QAAA;AAAA,MACrE,OACK;AACL,2BAAmB,CAAC,SAAS,CAAC,GAAG,MAAM,UAAU,CAAC;AAAA,MAAA;AAAA,IACpD,OACK;AACc,yBAAA,CAAC,UAAU,CAAC;AAAA,IAAA;AAAA,EAEnC;AAEM,QAAA,sBAAsB,CAAC,UAAmB;AAC9C,qBAAiB,KAAK;AACtB,QAAI,OAAO;AACT,yBAAmB,gBAAgB;AAAA,IAAA,OAC9B;AACc,yBAAA,CAAC,MAAM,CAAC;AAAA,IAAA;AAAA,EAE/B;AAGE,SAAAC,2BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,cAAY,oBAAoB;AAAA,MAEhC,UAAAC,2BAAA,KAACC,0BAAS,UAAA,EAAA,YAAY,qBACpB,UAAA;AAAA,QAACF,2BAAAA,IAAAE,0BAAA,SAAS,SAAT,EAAiB,YAAY,qBAC5B,UAACD,2BAAAA,KAAA,OAAA,EAAI,WAAU,4CACb,UAAA;AAAA,UAAAD,2BAAAA,IAAC,SAAI,WAAU,aACb,yCAACG,YAAAA,OAAM,EAAA,MAAM,IAAI,EACnB,CAAA;AAAA,UACCH,2BAAA,IAAAI,YAAA,cAAA,EAAa,WAAU,eAAc,MAAM,GAAI,CAAA;AAAA,QAAA,EAAA,CAClD,EACF,CAAA;AAAA,QAEAJ,2BAAA;AAAA,UAACE,0BAAAA,SAAS;AAAA,UAAT;AAAA,YACC,YAAY;AAAA,YACZ,YAAU;AAAA,YACV,aAAW;AAAA,YACX,WAAU;AAAA,YACT,GAAG;AAAA,YAEJ,UAAAD,2BAAA;AAAA,cAACI,2BAAA;AAAA,cAAA;AAAA,gBACC,WAAU;AAAA,gBACV,WAAU;AAAA,gBACV,MAAK;AAAA,gBACL,cAAa;AAAA,gBACb,QAAM;AAAA,gBACN,aAAY;AAAA,gBACZ,aAAY;AAAA,gBACZ,cAAY,kBAAkB;AAAA,gBAE7B,UAAA;AAAA,kBACC,kBAAAL,2BAAA,IAAC,OAAI,EAAA,WAAU,cACb,UAAAA,2BAAA;AAAA,oBAACM,gCAAA;AAAA,oBAAA;AAAA,sBACC,cAAc;AAAA,sBACd,UAAU;AAAA,sBACV,OAAM;AAAA,sBACN,MAAK;AAAA,sBACL,WAAU;AAAA,sBACV,SAAS;AAAA,wBACP;AAAA,0BACE,SAAS,oBAAoB,KAAK;AAAA,0BAClC,OAAO;AAAA,wBACT;AAAA,wBACA;AAAA,0BACE,SAAS,oBAAoB,MAAM;AAAA,0BACnC,OAAO;AAAA,wBAAA;AAAA,sBACT;AAAA,oBACF;AAAA,kBAAA,GAEJ;AAAA,kBAGD,EAAE,kBAAkB,kBAEjBL,2BAAA,KAAAM,WAAA,UAAA,EAAA,UAAA;AAAA,oBAACP,2BAAAA,IAAA,OAAA,EAAI,WAAU,OACb,UAAAA,2BAAA;AAAA,sBAACQ,uBAAA;AAAA,sBAAA;AAAA,wBACC,MAAK;AAAA,wBACL,aAAa,YAAY,YAAY;AAAA,wBACrC,UAAU,CAAC,MAAM,aAAa,EAAE,OAAO,KAAK;AAAA,wBAC5C,KAAK;AAAA,sBAAA;AAAA,oBAAA,GAET;AAAA,oBACCR,2BAAA,IAAA,MAAA,EAAG,WAAU,6DACX,UAAQ,QAAA;AAAA,sBACP,CAAC;AAAA,wBACC,QAAQ;AAAA,wBACR;AAAA,wBACA;AAAA,sBAAA,MAEAA,2BAAAA,IAAC,MAAG,EAAA,WAAU,eACZ,UAAAA,2BAAA;AAAA,wBAACS,yBAAA;AAAA,wBAAA;AAAA,0BACC,SAAS,MAAM,kBAAkB,UAAU;AAAA,0BAC3C,OAAO,GAAG,QAAQ,IAAI,iBAAiB;AAAA,0BACvC,UACE,EAAE,oBAAoB,kBAAkB;AAAA,4BACtC;AAAA,0BACF;AAAA,0BAEF,UAAU,gBAAgB,SAAS,UAAU;AAAA,0BAC7C,SAAQ;AAAA,0BACR,OAAM;AAAA,0BACN,aAAW;AAAA,0BACX,WAAU;AAAA,0BACV,MAAK;AAAA,0BAEL,UAAAR,2BAAA,KAAC,OAAI,EAAA,WAAU,8DACZ,UAAA;AAAA,4BAAA,kBACED,2BAAA,IAAA,OAAA,EAAI,WAAU,OACZ,UAAgB,gBAAA,SAAS,UAAU,KACjCA,2BAAAA,IAAAU,YAAA,OAAA,EAAM,WAAU,YAAY,CAAA,GAEjC;AAAA,4BAEFT,2BAAAA,KAAC,OAAI,EAAA,WAAU,qEACb,UAAA;AAAA,8BAACA,2BAAAA,KAAA,OAAA,EAAI,WAAU,6BACb,UAAA;AAAA,gCAAAD,2BAAA;AAAA,kCAAC;AAAA,kCAAA;AAAA,oCACC,KAAKW,oBAAe,UAAU;AAAA,oCAC9B,MAAM;AAAA,oCAEL,UAAA;AAAA,kCAAA;AAAA,gCACH;AAAA,gCACCX,2BAAA,IAAA,QAAA,EAAK,WAAU,wBACb,UACH,kBAAA,CAAA;AAAA,8BAAA,GACF;AAAA,6DACC,QAAK,EAAA,WAAU,wBACb,UAAA,WAAW,cACd,CAAA;AAAA,4BAAA,EACF,CAAA;AAAA,0BAAA,EACF,CAAA;AAAA,wBAAA;AAAA,2BAxC6B,UA0CjC;AAAA,oBAAA,EAGN,CAAA;AAAA,kBAAA,EACF,CAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UAEJ;AAAA,QAAA;AAAA,MACF,EACF,CAAA;AAAA,IAAA;AAAA,EACF;AAEJ;;"}
|
|
1
|
+
{"version":3,"file":"LocaleSwitcherContent.cjs","sources":["../../../src/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.tsx"],"sourcesContent":["'use client';\n\nimport { Locales, type LocalesValues } from '@intlayer/config/client';\nimport { getHTMLTextDir, getLocaleName } from '@intlayer/core';\nimport Fuse, { type IFuseOptions } from 'fuse.js';\nimport { Check, Globe, MoveVertical } from 'lucide-react';\nimport { useCallback, useMemo, useRef, useState, type FC } from 'react';\nimport { useDictionary, useLocale } from 'react-intlayer';\nimport { usePersistedStore } from '../../hooks';\nimport { Button } from '../Button';\nimport { Container } from '../Container';\nimport { DropDown, type PanelProps } from '../DropDown';\nimport { Input } from '../Input';\nimport { SwitchSelector } from '../SwitchSelector';\nimport localeSwitcherContent from './localeSwitcher.content';\nimport { useLocaleSwitcherContent } from './LocaleSwitcherContentContext';\n\nexport type LocaleSwitcherContentProps = {\n panelProps?: Omit<PanelProps, 'identifier'>;\n isMultilingual?: boolean;\n};\n\nconst DROPDOWN_IDENTIFIER = 'locale-switcher-content';\n\ntype MultilingualAvailableLocales = {\n locale: LocalesValues;\n englishName: string;\n currentLocaleName: string;\n ownLocaleName: string;\n};\n\nexport const LocaleSwitcherContent: FC<LocaleSwitcherContentProps> = ({\n panelProps,\n isMultilingual = true,\n}) => {\n const {\n switchTo,\n searchInput,\n localeSwitcherLabel,\n languageListLabel,\n seeAllLocalesSwitch,\n } = useDictionary(localeSwitcherContent);\n const inputRef = useRef<HTMLInputElement>(null);\n const { locale } = useLocale();\n const { availableLocales, selectedLocales, setSelectedLocales } =\n useLocaleSwitcherContent();\n\n const multilingualAvailableLocales: MultilingualAvailableLocales[] = useMemo(\n () =>\n availableLocales.map((localeEl) => {\n const englishName = getLocaleName(localeEl, Locales.ENGLISH);\n const currentLocaleName = getLocaleName(localeEl, locale);\n const ownLocaleName = getLocaleName(localeEl);\n return {\n locale: localeEl,\n englishName,\n currentLocaleName,\n ownLocaleName,\n };\n }),\n [availableLocales, locale]\n );\n\n const [results, setResults] = useState<MultilingualAvailableLocales[]>(\n multilingualAvailableLocales\n );\n const [seeAllLocales, setSeeAllLocales] = usePersistedStore(\n 'locale-content-selector-see-all-locales',\n false\n );\n\n // Create a new Fuse instance with the options and documentation data\n const fuse = useMemo(() => {\n const fuseOptions: IFuseOptions<MultilingualAvailableLocales> = {\n keys: [\n { name: 'ownLocaleName', weight: 0.4 },\n { name: 'englishName', weight: 0.2 },\n { name: 'currentLocaleName', weight: 0.2 },\n { name: 'locale', weight: 0.2 },\n ],\n threshold: 0.02, // Defines how fuzzy the matching should be (lower is more strict)\n };\n\n return new Fuse(multilingualAvailableLocales, fuseOptions);\n }, [multilingualAvailableLocales]);\n\n const handleSearch = useCallback(\n (searchQuery: string) => {\n if (searchQuery) {\n // Perform search on every input change\n const searchResults = fuse\n .search(searchQuery)\n .map((result) => result.item);\n setResults(searchResults);\n } else {\n setResults(multilingualAvailableLocales);\n }\n },\n [fuse, multilingualAvailableLocales]\n );\n\n const handleClickLocale = (localeItem: LocalesValues) => {\n if (isMultilingual) {\n if (selectedLocales.includes(localeItem)) {\n if (selectedLocales.length > 1) {\n setSelectedLocales((prev) => prev.filter((el) => el !== localeItem));\n }\n } else {\n setSelectedLocales((prev) => [...prev, localeItem]);\n }\n } else {\n setSelectedLocales([localeItem]);\n }\n };\n\n const handleSeeAllLocales = (value: boolean) => {\n setSeeAllLocales(value);\n if (value) {\n setSelectedLocales(availableLocales);\n } else {\n setSelectedLocales([locale]);\n }\n };\n\n return (\n <div\n className=\"border-text text-text rounded-xl border transition-colors\"\n aria-label={localeSwitcherLabel.value}\n >\n <DropDown identifier={DROPDOWN_IDENTIFIER}>\n <DropDown.Trigger identifier={DROPDOWN_IDENTIFIER}>\n <div className=\"flex w-full items-center justify-between\">\n <div className=\"px-2 py-1\">\n <Globe size={18} />\n </div>\n <MoveVertical className=\"self-center\" size={18} />\n </div>\n </DropDown.Trigger>\n\n <DropDown.Panel\n identifier={DROPDOWN_IDENTIFIER}\n isOverable\n isFocusable\n className=\"left-auto right-0\"\n {...panelProps}\n >\n <Container\n className=\"max-h-[80vh] min-w-28\"\n separator=\"y\"\n role=\"listbox\"\n transparency=\"sm\"\n border\n roundedSize=\"2xl\"\n borderColor=\"text\"\n aria-label={languageListLabel.value}\n >\n {isMultilingual && (\n <div className=\"m-auto p-2\">\n <SwitchSelector\n defaultValue={false}\n onChange={handleSeeAllLocales}\n color=\"text\"\n size=\"sm\"\n className=\"!w-60\"\n choices={[\n {\n content: seeAllLocalesSwitch.true.value,\n value: true,\n },\n {\n content: seeAllLocalesSwitch.false.value,\n value: false,\n },\n ]}\n />\n </div>\n )}\n\n {!(isMultilingual && seeAllLocales) && (\n <>\n <div className=\"p-3\">\n <Input\n type=\"search\"\n aria-label={searchInput.ariaLabel.value}\n placeholder={searchInput.placeholder.value}\n onChange={(e) => handleSearch(e.target.value)}\n ref={inputRef}\n />\n </div>\n <ol className=\"divide-text/20 divide-y divide-dashed overflow-y-auto p-1\">\n {results.map(\n ({\n locale: localeItem,\n currentLocaleName,\n ownLocaleName,\n }) => (\n <li className=\"px-1.5 py-1\" key={localeItem}>\n <Button\n onClick={() => handleClickLocale(localeItem)}\n label={`${switchTo} ${currentLocaleName}`}\n disabled={\n !(availableLocales ?? availableLocales).includes(\n localeItem\n )\n }\n isActive={selectedLocales.includes(localeItem)}\n variant=\"hoverable\"\n color=\"text\"\n isFullWidth\n textAlign=\"left\"\n size=\"sm\"\n >\n <div className=\"flex flex-row items-center justify-between gap-3 px-2 py-1\">\n {isMultilingual && (\n <div className=\"w-4\">\n {selectedLocales.includes(localeItem) && (\n <Check className=\"size-full\" />\n )}\n </div>\n )}\n <div className=\"flex flex-1 flex-row items-center justify-between gap-3 px-2 py-1\">\n <div className=\"flex flex-col text-nowrap\">\n <span\n dir={getHTMLTextDir(localeItem)}\n lang={localeItem}\n >\n {ownLocaleName}\n </span>\n <span className=\"text-neutral text-xs\">\n {currentLocaleName}\n </span>\n </div>\n <span className=\"text-neutral text-sm\">\n {localeItem.toUpperCase()}\n </span>\n </div>\n </div>\n </Button>\n </li>\n )\n )}\n </ol>\n </>\n )}\n </Container>\n </DropDown.Panel>\n </DropDown>\n </div>\n );\n};\n"],"names":["useDictionary","localeSwitcherContent","useRef","useLocale","useLocaleSwitcherContent","useMemo","getLocaleName","Locales","useState","usePersistedStore","useCallback","jsx","jsxs","DropDown","Globe","MoveVertical","Container","SwitchSelector","Fragment","Input","Button","Check","getHTMLTextDir"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocaleSwitcherContent.d.ts","sourceRoot":"","sources":["../../../src/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.tsx"],"names":[],"mappings":"AAMA,OAAO,EAA0C,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAKxE,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAMxD,MAAM,MAAM,0BAA0B,GAAG;IACvC,UAAU,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAC5C,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAWF,eAAO,MAAM,qBAAqB,EAAE,EAAE,CAAC,0BAA0B,
|
|
1
|
+
{"version":3,"file":"LocaleSwitcherContent.d.ts","sourceRoot":"","sources":["../../../src/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.tsx"],"names":[],"mappings":"AAMA,OAAO,EAA0C,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAKxE,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAMxD,MAAM,MAAM,0BAA0B,GAAG;IACvC,UAAU,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAC5C,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAWF,eAAO,MAAM,qBAAqB,EAAE,EAAE,CAAC,0BAA0B,CA0NhE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocaleSwitcherContent.mjs","sources":["../../../src/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.tsx"],"sourcesContent":["'use client';\n\nimport { Locales, type LocalesValues } from '@intlayer/config/client';\nimport { getHTMLTextDir, getLocaleName } from '@intlayer/core';\nimport Fuse, { type IFuseOptions } from 'fuse.js';\nimport { Check, Globe, MoveVertical } from 'lucide-react';\nimport { useCallback, useMemo, useRef, useState, type FC } from 'react';\nimport { useDictionary, useLocale } from 'react-intlayer';\nimport { usePersistedStore } from '../../hooks';\nimport { Button } from '../Button';\nimport { Container } from '../Container';\nimport { DropDown, type PanelProps } from '../DropDown';\nimport { Input } from '../Input';\nimport { SwitchSelector } from '../SwitchSelector';\nimport localeSwitcherContent from './localeSwitcher.content';\nimport { useLocaleSwitcherContent } from './LocaleSwitcherContentContext';\n\nexport type LocaleSwitcherContentProps = {\n panelProps?: Omit<PanelProps, 'identifier'>;\n isMultilingual?: boolean;\n};\n\nconst DROPDOWN_IDENTIFIER = 'locale-switcher-content';\n\ntype MultilingualAvailableLocales = {\n locale: LocalesValues;\n englishName: string;\n currentLocaleName: string;\n ownLocaleName: string;\n};\n\nexport const LocaleSwitcherContent: FC<LocaleSwitcherContentProps> = ({\n panelProps,\n isMultilingual = true,\n}) => {\n const {\n switchTo,\n searchInput,\n localeSwitcherLabel,\n languageListLabel,\n seeAllLocalesSwitch,\n } = useDictionary(localeSwitcherContent);\n const inputRef = useRef<HTMLInputElement>(null);\n const { locale } = useLocale();\n const { availableLocales, selectedLocales, setSelectedLocales } =\n useLocaleSwitcherContent();\n\n const multilingualAvailableLocales: MultilingualAvailableLocales[] = useMemo(\n () =>\n availableLocales.map((localeEl) => {\n const englishName = getLocaleName(localeEl, Locales.ENGLISH);\n const currentLocaleName = getLocaleName(localeEl, locale);\n const ownLocaleName = getLocaleName(localeEl);\n return {\n locale: localeEl,\n englishName,\n currentLocaleName,\n ownLocaleName,\n };\n }),\n [availableLocales, locale]\n );\n\n const [results, setResults] = useState<MultilingualAvailableLocales[]>(\n multilingualAvailableLocales\n );\n const [seeAllLocales, setSeeAllLocales] = usePersistedStore(\n 'locale-content-selector-see-all-locales',\n false\n );\n\n // Create a new Fuse instance with the options and documentation data\n const fuse = useMemo(() => {\n const fuseOptions: IFuseOptions<MultilingualAvailableLocales> = {\n keys: [\n { name: 'ownLocaleName', weight: 0.4 },\n { name: 'englishName', weight: 0.2 },\n { name: 'currentLocaleName', weight: 0.2 },\n { name: 'locale', weight: 0.2 },\n ],\n threshold: 0.02, // Defines how fuzzy the matching should be (lower is more strict)\n };\n\n return new Fuse(multilingualAvailableLocales, fuseOptions);\n }, [multilingualAvailableLocales]);\n\n const handleSearch = useCallback(\n (searchQuery: string) => {\n if (searchQuery) {\n // Perform search on every input change\n const searchResults = fuse\n .search(searchQuery)\n .map((result) => result.item);\n setResults(searchResults);\n } else {\n setResults(multilingualAvailableLocales);\n }\n },\n [fuse, multilingualAvailableLocales]\n );\n\n const handleClickLocale = (localeItem: LocalesValues) => {\n if (isMultilingual) {\n if (selectedLocales.includes(localeItem)) {\n if (selectedLocales.length > 1) {\n setSelectedLocales((prev) => prev.filter((el) => el !== localeItem));\n }\n } else {\n setSelectedLocales((prev) => [...prev, localeItem]);\n }\n } else {\n setSelectedLocales([localeItem]);\n }\n };\n\n const handleSeeAllLocales = (value: boolean) => {\n setSeeAllLocales(value);\n if (value) {\n setSelectedLocales(availableLocales);\n } else {\n setSelectedLocales([locale]);\n }\n };\n\n return (\n <div\n className=\"border-text text-text rounded-xl border transition-colors\"\n aria-label={localeSwitcherLabel.value}\n >\n <DropDown identifier={DROPDOWN_IDENTIFIER}>\n <DropDown.Trigger identifier={DROPDOWN_IDENTIFIER}>\n <div className=\"flex w-full items-center justify-between\">\n <div className=\"px-2 py-1\">\n <Globe size={18} />\n </div>\n <MoveVertical className=\"self-center\" size={18} />\n </div>\n </DropDown.Trigger>\n\n <DropDown.Panel\n identifier={DROPDOWN_IDENTIFIER}\n isOverable\n isFocusable\n className=\"left-auto right-0\"\n {...panelProps}\n >\n <Container\n className=\"max-h-[80vh] min-w-28\"\n separator=\"y\"\n role=\"listbox\"\n transparency=\"sm\"\n border\n roundedSize=\"2xl\"\n borderColor=\"text\"\n aria-label={languageListLabel.value}\n >\n {isMultilingual && (\n <div className=\"m-auto p-2\">\n <SwitchSelector\n defaultValue={false}\n onChange={handleSeeAllLocales}\n color=\"text\"\n size=\"sm\"\n className=\"!w-60\"\n choices={[\n {\n content: seeAllLocalesSwitch.true.value,\n value: true,\n },\n {\n content: seeAllLocalesSwitch.false.value,\n value: false,\n },\n ]}\n />\n </div>\n )}\n\n {!(isMultilingual && seeAllLocales) && (\n <>\n <div className=\"p-3\">\n <Input\n type=\"search\"\n placeholder={searchInput.placeholder.value}\n onChange={(e) => handleSearch(e.target.value)}\n ref={inputRef}\n />\n </div>\n <ol className=\"divide-text/20 divide-y divide-dashed overflow-y-auto p-1\">\n {results.map(\n ({\n locale: localeItem,\n currentLocaleName,\n ownLocaleName,\n }) => (\n <li className=\"px-1.5 py-1\" key={localeItem}>\n <Button\n onClick={() => handleClickLocale(localeItem)}\n label={`${switchTo} ${currentLocaleName}`}\n disabled={\n !(availableLocales ?? availableLocales).includes(\n localeItem\n )\n }\n isActive={selectedLocales.includes(localeItem)}\n variant=\"hoverable\"\n color=\"text\"\n isFullWidth\n textAlign=\"left\"\n size=\"sm\"\n >\n <div className=\"flex flex-row items-center justify-between gap-3 px-2 py-1\">\n {isMultilingual && (\n <div className=\"w-4\">\n {selectedLocales.includes(localeItem) && (\n <Check className=\"size-full\" />\n )}\n </div>\n )}\n <div className=\"flex flex-1 flex-row items-center justify-between gap-3 px-2 py-1\">\n <div className=\"flex flex-col text-nowrap\">\n <span\n dir={getHTMLTextDir(localeItem)}\n lang={localeItem}\n >\n {ownLocaleName}\n </span>\n <span className=\"text-neutral text-xs\">\n {currentLocaleName}\n </span>\n </div>\n <span className=\"text-neutral text-sm\">\n {localeItem.toUpperCase()}\n </span>\n </div>\n </div>\n </Button>\n </li>\n )\n )}\n </ol>\n </>\n )}\n </Container>\n </DropDown.Panel>\n </DropDown>\n </div>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LocaleSwitcherContent.mjs","sources":["../../../src/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.tsx"],"sourcesContent":["'use client';\n\nimport { Locales, type LocalesValues } from '@intlayer/config/client';\nimport { getHTMLTextDir, getLocaleName } from '@intlayer/core';\nimport Fuse, { type IFuseOptions } from 'fuse.js';\nimport { Check, Globe, MoveVertical } from 'lucide-react';\nimport { useCallback, useMemo, useRef, useState, type FC } from 'react';\nimport { useDictionary, useLocale } from 'react-intlayer';\nimport { usePersistedStore } from '../../hooks';\nimport { Button } from '../Button';\nimport { Container } from '../Container';\nimport { DropDown, type PanelProps } from '../DropDown';\nimport { Input } from '../Input';\nimport { SwitchSelector } from '../SwitchSelector';\nimport localeSwitcherContent from './localeSwitcher.content';\nimport { useLocaleSwitcherContent } from './LocaleSwitcherContentContext';\n\nexport type LocaleSwitcherContentProps = {\n panelProps?: Omit<PanelProps, 'identifier'>;\n isMultilingual?: boolean;\n};\n\nconst DROPDOWN_IDENTIFIER = 'locale-switcher-content';\n\ntype MultilingualAvailableLocales = {\n locale: LocalesValues;\n englishName: string;\n currentLocaleName: string;\n ownLocaleName: string;\n};\n\nexport const LocaleSwitcherContent: FC<LocaleSwitcherContentProps> = ({\n panelProps,\n isMultilingual = true,\n}) => {\n const {\n switchTo,\n searchInput,\n localeSwitcherLabel,\n languageListLabel,\n seeAllLocalesSwitch,\n } = useDictionary(localeSwitcherContent);\n const inputRef = useRef<HTMLInputElement>(null);\n const { locale } = useLocale();\n const { availableLocales, selectedLocales, setSelectedLocales } =\n useLocaleSwitcherContent();\n\n const multilingualAvailableLocales: MultilingualAvailableLocales[] = useMemo(\n () =>\n availableLocales.map((localeEl) => {\n const englishName = getLocaleName(localeEl, Locales.ENGLISH);\n const currentLocaleName = getLocaleName(localeEl, locale);\n const ownLocaleName = getLocaleName(localeEl);\n return {\n locale: localeEl,\n englishName,\n currentLocaleName,\n ownLocaleName,\n };\n }),\n [availableLocales, locale]\n );\n\n const [results, setResults] = useState<MultilingualAvailableLocales[]>(\n multilingualAvailableLocales\n );\n const [seeAllLocales, setSeeAllLocales] = usePersistedStore(\n 'locale-content-selector-see-all-locales',\n false\n );\n\n // Create a new Fuse instance with the options and documentation data\n const fuse = useMemo(() => {\n const fuseOptions: IFuseOptions<MultilingualAvailableLocales> = {\n keys: [\n { name: 'ownLocaleName', weight: 0.4 },\n { name: 'englishName', weight: 0.2 },\n { name: 'currentLocaleName', weight: 0.2 },\n { name: 'locale', weight: 0.2 },\n ],\n threshold: 0.02, // Defines how fuzzy the matching should be (lower is more strict)\n };\n\n return new Fuse(multilingualAvailableLocales, fuseOptions);\n }, [multilingualAvailableLocales]);\n\n const handleSearch = useCallback(\n (searchQuery: string) => {\n if (searchQuery) {\n // Perform search on every input change\n const searchResults = fuse\n .search(searchQuery)\n .map((result) => result.item);\n setResults(searchResults);\n } else {\n setResults(multilingualAvailableLocales);\n }\n },\n [fuse, multilingualAvailableLocales]\n );\n\n const handleClickLocale = (localeItem: LocalesValues) => {\n if (isMultilingual) {\n if (selectedLocales.includes(localeItem)) {\n if (selectedLocales.length > 1) {\n setSelectedLocales((prev) => prev.filter((el) => el !== localeItem));\n }\n } else {\n setSelectedLocales((prev) => [...prev, localeItem]);\n }\n } else {\n setSelectedLocales([localeItem]);\n }\n };\n\n const handleSeeAllLocales = (value: boolean) => {\n setSeeAllLocales(value);\n if (value) {\n setSelectedLocales(availableLocales);\n } else {\n setSelectedLocales([locale]);\n }\n };\n\n return (\n <div\n className=\"border-text text-text rounded-xl border transition-colors\"\n aria-label={localeSwitcherLabel.value}\n >\n <DropDown identifier={DROPDOWN_IDENTIFIER}>\n <DropDown.Trigger identifier={DROPDOWN_IDENTIFIER}>\n <div className=\"flex w-full items-center justify-between\">\n <div className=\"px-2 py-1\">\n <Globe size={18} />\n </div>\n <MoveVertical className=\"self-center\" size={18} />\n </div>\n </DropDown.Trigger>\n\n <DropDown.Panel\n identifier={DROPDOWN_IDENTIFIER}\n isOverable\n isFocusable\n className=\"left-auto right-0\"\n {...panelProps}\n >\n <Container\n className=\"max-h-[80vh] min-w-28\"\n separator=\"y\"\n role=\"listbox\"\n transparency=\"sm\"\n border\n roundedSize=\"2xl\"\n borderColor=\"text\"\n aria-label={languageListLabel.value}\n >\n {isMultilingual && (\n <div className=\"m-auto p-2\">\n <SwitchSelector\n defaultValue={false}\n onChange={handleSeeAllLocales}\n color=\"text\"\n size=\"sm\"\n className=\"!w-60\"\n choices={[\n {\n content: seeAllLocalesSwitch.true.value,\n value: true,\n },\n {\n content: seeAllLocalesSwitch.false.value,\n value: false,\n },\n ]}\n />\n </div>\n )}\n\n {!(isMultilingual && seeAllLocales) && (\n <>\n <div className=\"p-3\">\n <Input\n type=\"search\"\n aria-label={searchInput.ariaLabel.value}\n placeholder={searchInput.placeholder.value}\n onChange={(e) => handleSearch(e.target.value)}\n ref={inputRef}\n />\n </div>\n <ol className=\"divide-text/20 divide-y divide-dashed overflow-y-auto p-1\">\n {results.map(\n ({\n locale: localeItem,\n currentLocaleName,\n ownLocaleName,\n }) => (\n <li className=\"px-1.5 py-1\" key={localeItem}>\n <Button\n onClick={() => handleClickLocale(localeItem)}\n label={`${switchTo} ${currentLocaleName}`}\n disabled={\n !(availableLocales ?? availableLocales).includes(\n localeItem\n )\n }\n isActive={selectedLocales.includes(localeItem)}\n variant=\"hoverable\"\n color=\"text\"\n isFullWidth\n textAlign=\"left\"\n size=\"sm\"\n >\n <div className=\"flex flex-row items-center justify-between gap-3 px-2 py-1\">\n {isMultilingual && (\n <div className=\"w-4\">\n {selectedLocales.includes(localeItem) && (\n <Check className=\"size-full\" />\n )}\n </div>\n )}\n <div className=\"flex flex-1 flex-row items-center justify-between gap-3 px-2 py-1\">\n <div className=\"flex flex-col text-nowrap\">\n <span\n dir={getHTMLTextDir(localeItem)}\n lang={localeItem}\n >\n {ownLocaleName}\n </span>\n <span className=\"text-neutral text-xs\">\n {currentLocaleName}\n </span>\n </div>\n <span className=\"text-neutral text-sm\">\n {localeItem.toUpperCase()}\n </span>\n </div>\n </div>\n </Button>\n </li>\n )\n )}\n </ol>\n </>\n )}\n </Container>\n </DropDown.Panel>\n </DropDown>\n </div>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -78,6 +78,21 @@ const localeSwitcherContent = {
|
|
|
78
78
|
hi: "भाषा खोजें",
|
|
79
79
|
ar: "بحث اللغة",
|
|
80
80
|
ru: "Поиск языка"
|
|
81
|
+
}),
|
|
82
|
+
ariaLabel: intlayer.t({
|
|
83
|
+
en: "Language search",
|
|
84
|
+
"en-GB": "Language search",
|
|
85
|
+
fr: "Recherche de langue",
|
|
86
|
+
es: "Búsqueda de idioma",
|
|
87
|
+
de: "Sprachsuche",
|
|
88
|
+
ja: "言語検索",
|
|
89
|
+
ko: "언어 검색",
|
|
90
|
+
zh: "语言搜索",
|
|
91
|
+
it: "Ricerca lingua",
|
|
92
|
+
pt: "Pesquisa de idioma",
|
|
93
|
+
hi: "भाषा खोजें",
|
|
94
|
+
ar: "بحث اللغة",
|
|
95
|
+
ru: "Поиск языка"
|
|
81
96
|
})
|
|
82
97
|
},
|
|
83
98
|
seeAllLocalesSwitch: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localeSwitcher.content.cjs","sources":["../../../src/components/LocaleSwitcherContentDropDown/localeSwitcher.content.ts"],"sourcesContent":["import { t, type Dictionary } from 'intlayer';\n\nconst localeSwitcherContent = {\n key: 'locale-switcher-content',\n content: {\n localeSwitcherLabel: t({\n en: 'Language switcher',\n 'en-GB': 'Language switcher',\n fr: 'Changer de langue',\n es: 'Cambiar idioma',\n de: 'Sprachwechsler',\n ja: '言語スイッチャー',\n ko: '언어 스위치',\n zh: '语言切换器',\n it: 'Cambia lingua',\n pt: 'Mudar idioma',\n hi: 'भाषा स्विचर',\n ar: 'مبدل اللغة',\n ru: 'Переключатель языка',\n }),\n languageListLabel: t({\n en: 'Language list',\n 'en-GB': 'Language list',\n fr: 'Liste des langues',\n es: 'Lista de idiomas',\n de: 'Sprachliste',\n ja: '言語リスト',\n ko: '언어 목록',\n zh: '语言列表',\n it: 'Elenco lingue',\n pt: 'Lista de idiomas',\n hi: 'भाषा सूची',\n ar: 'قائمة اللغات',\n ru: 'Список языков',\n }),\n switchTo: t({\n en: 'Switch to',\n fr: 'Passer à',\n es: 'Cambiar a',\n 'en-GB': 'Switch to',\n de: 'Wechseln Sie zu',\n ja: 'に切り替える',\n ko: '전환',\n zh: '切换到',\n it: 'Passa a',\n pt: 'Mudar para',\n hi: 'स्विच करें',\n ar: 'التبديل إلى',\n ru: 'Переключиться на',\n }),\n searchInput: {\n text: t({\n en: 'Search Locale',\n 'en-GB': 'Search Locale',\n fr: 'Rechercher la locale',\n es: 'Buscar idioma',\n de: 'Sprache durchsuchen',\n ja: 'ロケールを検索',\n ko: '언어 검색',\n zh: '搜索语言',\n it: 'Cerca lingua',\n pt: 'Pesquisar idioma',\n hi: 'भाषा खोजें',\n ar: 'بحث اللغة',\n ru: 'Поиск языка',\n }),\n placeholder: t({\n en: 'Search a locale',\n 'en-GB': 'Search a locale',\n fr: 'Rechercher une locale',\n es: 'Buscar un idioma',\n de: 'Sprache suchen',\n ja: 'ロケールを検索',\n ko: '언어 검색',\n zh: '搜索语言',\n it: 'Cerca una lingua',\n pt: 'Pesquisar um idioma',\n hi: 'भाषा खोजें',\n ar: 'بحث اللغة',\n ru: 'Поиск языка',\n }),\n },\n seeAllLocalesSwitch: {\n true: t({\n en: 'See all locales',\n 'en-GB': 'See all locales',\n fr: 'Voir toutes les langues',\n es: 'Ver todos los idiomas',\n de: 'Alle Sprachen anzeigen',\n ja: 'すべての言語を表示',\n ko: '모든 언어 보기',\n zh: '查看所有语言',\n it: 'Vedi tutte le lingue',\n pt: 'Ver todos os idiomas',\n hi: 'सभी भाषाओं को देखें',\n ar: 'عرض جميع اللغات',\n ru: 'Показать все языки',\n }),\n false: t({\n en: 'See only selected locales',\n 'en-GB': 'See only selected locales',\n fr: 'Voir seulement les langues sélectionnées',\n es: 'Ver solo los idiomas seleccionados',\n de: 'Nur ausgewählte Sprachen anzeigen',\n ja: '選択された言語のみを表示',\n ko: '선택한 언어만 보기',\n zh: '仅查看选定的语言',\n it: 'Vedi solo le lingue selezionate',\n pt: 'Ver apenas os idiomas selecionados',\n hi: 'केवल चुने गए भाषाओं को देखें',\n ar: 'عرض اللغات المحددة فقط',\n ru: 'Показать только выбранные языки',\n }),\n },\n },\n} satisfies Dictionary;\n\nexport default localeSwitcherContent;\n"],"names":["t"],"mappings":";;AAEA,MAAM,wBAAwB;AAAA,EAC5B,KAAK;AAAA,EACL,SAAS;AAAA,IACP,qBAAqBA,SAAAA,EAAE;AAAA,MACrB,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA,CACL;AAAA,IACD,mBAAmBA,SAAAA,EAAE;AAAA,MACnB,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA,CACL;AAAA,IACD,UAAUA,SAAAA,EAAE;AAAA,MACV,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA,CACL;AAAA,IACD,aAAa;AAAA,MACX,MAAMA,SAAAA,EAAE;AAAA,QACN,IAAI;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MAAA,CACL;AAAA,MACD,aAAaA,SAAAA,EAAE;AAAA,QACb,IAAI;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MACL,CAAA;AAAA,IACH;AAAA,IACA,qBAAqB;AAAA,MACnB,MAAMA,SAAAA,EAAE;AAAA,QACN,IAAI;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MAAA,CACL;AAAA,MACD,OAAOA,SAAAA,EAAE;AAAA,QACP,IAAI;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MACL,CAAA;AAAA,IAAA;AAAA,EACH;AAEJ;;"}
|
|
1
|
+
{"version":3,"file":"localeSwitcher.content.cjs","sources":["../../../src/components/LocaleSwitcherContentDropDown/localeSwitcher.content.ts"],"sourcesContent":["import { t, type Dictionary } from 'intlayer';\n\nconst localeSwitcherContent = {\n key: 'locale-switcher-content',\n content: {\n localeSwitcherLabel: t({\n en: 'Language switcher',\n 'en-GB': 'Language switcher',\n fr: 'Changer de langue',\n es: 'Cambiar idioma',\n de: 'Sprachwechsler',\n ja: '言語スイッチャー',\n ko: '언어 스위치',\n zh: '语言切换器',\n it: 'Cambia lingua',\n pt: 'Mudar idioma',\n hi: 'भाषा स्विचर',\n ar: 'مبدل اللغة',\n ru: 'Переключатель языка',\n }),\n languageListLabel: t({\n en: 'Language list',\n 'en-GB': 'Language list',\n fr: 'Liste des langues',\n es: 'Lista de idiomas',\n de: 'Sprachliste',\n ja: '言語リスト',\n ko: '언어 목록',\n zh: '语言列表',\n it: 'Elenco lingue',\n pt: 'Lista de idiomas',\n hi: 'भाषा सूची',\n ar: 'قائمة اللغات',\n ru: 'Список языков',\n }),\n switchTo: t({\n en: 'Switch to',\n fr: 'Passer à',\n es: 'Cambiar a',\n 'en-GB': 'Switch to',\n de: 'Wechseln Sie zu',\n ja: 'に切り替える',\n ko: '전환',\n zh: '切换到',\n it: 'Passa a',\n pt: 'Mudar para',\n hi: 'स्विच करें',\n ar: 'التبديل إلى',\n ru: 'Переключиться на',\n }),\n searchInput: {\n text: t({\n en: 'Search Locale',\n 'en-GB': 'Search Locale',\n fr: 'Rechercher la locale',\n es: 'Buscar idioma',\n de: 'Sprache durchsuchen',\n ja: 'ロケールを検索',\n ko: '언어 검색',\n zh: '搜索语言',\n it: 'Cerca lingua',\n pt: 'Pesquisar idioma',\n hi: 'भाषा खोजें',\n ar: 'بحث اللغة',\n ru: 'Поиск языка',\n }),\n placeholder: t({\n en: 'Search a locale',\n 'en-GB': 'Search a locale',\n fr: 'Rechercher une locale',\n es: 'Buscar un idioma',\n de: 'Sprache suchen',\n ja: 'ロケールを検索',\n ko: '언어 검색',\n zh: '搜索语言',\n it: 'Cerca una lingua',\n pt: 'Pesquisar um idioma',\n hi: 'भाषा खोजें',\n ar: 'بحث اللغة',\n ru: 'Поиск языка',\n }),\n ariaLabel: t({\n en: 'Language search',\n 'en-GB': 'Language search',\n fr: 'Recherche de langue',\n es: 'Búsqueda de idioma',\n de: 'Sprachsuche',\n ja: '言語検索',\n ko: '언어 검색',\n zh: '语言搜索',\n it: 'Ricerca lingua',\n pt: 'Pesquisa de idioma',\n hi: 'भाषा खोजें',\n ar: 'بحث اللغة',\n ru: 'Поиск языка',\n }),\n },\n seeAllLocalesSwitch: {\n true: t({\n en: 'See all locales',\n 'en-GB': 'See all locales',\n fr: 'Voir toutes les langues',\n es: 'Ver todos los idiomas',\n de: 'Alle Sprachen anzeigen',\n ja: 'すべての言語を表示',\n ko: '모든 언어 보기',\n zh: '查看所有语言',\n it: 'Vedi tutte le lingue',\n pt: 'Ver todos os idiomas',\n hi: 'सभी भाषाओं को देखें',\n ar: 'عرض جميع اللغات',\n ru: 'Показать все языки',\n }),\n false: t({\n en: 'See only selected locales',\n 'en-GB': 'See only selected locales',\n fr: 'Voir seulement les langues sélectionnées',\n es: 'Ver solo los idiomas seleccionados',\n de: 'Nur ausgewählte Sprachen anzeigen',\n ja: '選択された言語のみを表示',\n ko: '선택한 언어만 보기',\n zh: '仅查看选定的语言',\n it: 'Vedi solo le lingue selezionate',\n pt: 'Ver apenas os idiomas selecionados',\n hi: 'केवल चुने गए भाषाओं को देखें',\n ar: 'عرض اللغات المحددة فقط',\n ru: 'Показать только выбранные языки',\n }),\n },\n },\n} satisfies Dictionary;\n\nexport default localeSwitcherContent;\n"],"names":["t"],"mappings":"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"}
|
|
@@ -15,6 +15,24 @@ declare const localeSwitcherContent: {
|
|
|
15
15
|
hi: string;
|
|
16
16
|
ar: string;
|
|
17
17
|
ru: string;
|
|
18
|
+
}, {
|
|
19
|
+
nodeType: import("@intlayer/core").NodeType.Translation | "translation";
|
|
20
|
+
} & {
|
|
21
|
+
translation: {
|
|
22
|
+
en: string;
|
|
23
|
+
'en-GB': string;
|
|
24
|
+
fr: string;
|
|
25
|
+
es: string;
|
|
26
|
+
de: string;
|
|
27
|
+
ja: string;
|
|
28
|
+
ko: string;
|
|
29
|
+
zh: string;
|
|
30
|
+
it: string;
|
|
31
|
+
pt: string;
|
|
32
|
+
hi: string;
|
|
33
|
+
ar: string;
|
|
34
|
+
ru: string;
|
|
35
|
+
};
|
|
18
36
|
}>;
|
|
19
37
|
languageListLabel: import('@intlayer/core').TypedNodeModel<import("@intlayer/core").NodeType.Translation, {
|
|
20
38
|
en: string;
|
|
@@ -30,6 +48,24 @@ declare const localeSwitcherContent: {
|
|
|
30
48
|
hi: string;
|
|
31
49
|
ar: string;
|
|
32
50
|
ru: string;
|
|
51
|
+
}, {
|
|
52
|
+
nodeType: import("@intlayer/core").NodeType.Translation | "translation";
|
|
53
|
+
} & {
|
|
54
|
+
translation: {
|
|
55
|
+
en: string;
|
|
56
|
+
'en-GB': string;
|
|
57
|
+
fr: string;
|
|
58
|
+
es: string;
|
|
59
|
+
de: string;
|
|
60
|
+
ja: string;
|
|
61
|
+
ko: string;
|
|
62
|
+
zh: string;
|
|
63
|
+
it: string;
|
|
64
|
+
pt: string;
|
|
65
|
+
hi: string;
|
|
66
|
+
ar: string;
|
|
67
|
+
ru: string;
|
|
68
|
+
};
|
|
33
69
|
}>;
|
|
34
70
|
switchTo: import('@intlayer/core').TypedNodeModel<import("@intlayer/core").NodeType.Translation, {
|
|
35
71
|
en: string;
|
|
@@ -45,6 +81,24 @@ declare const localeSwitcherContent: {
|
|
|
45
81
|
hi: string;
|
|
46
82
|
ar: string;
|
|
47
83
|
ru: string;
|
|
84
|
+
}, {
|
|
85
|
+
nodeType: import("@intlayer/core").NodeType.Translation | "translation";
|
|
86
|
+
} & {
|
|
87
|
+
translation: {
|
|
88
|
+
en: string;
|
|
89
|
+
fr: string;
|
|
90
|
+
es: string;
|
|
91
|
+
'en-GB': string;
|
|
92
|
+
de: string;
|
|
93
|
+
ja: string;
|
|
94
|
+
ko: string;
|
|
95
|
+
zh: string;
|
|
96
|
+
it: string;
|
|
97
|
+
pt: string;
|
|
98
|
+
hi: string;
|
|
99
|
+
ar: string;
|
|
100
|
+
ru: string;
|
|
101
|
+
};
|
|
48
102
|
}>;
|
|
49
103
|
searchInput: {
|
|
50
104
|
text: import('@intlayer/core').TypedNodeModel<import("@intlayer/core").NodeType.Translation, {
|
|
@@ -61,6 +115,24 @@ declare const localeSwitcherContent: {
|
|
|
61
115
|
hi: string;
|
|
62
116
|
ar: string;
|
|
63
117
|
ru: string;
|
|
118
|
+
}, {
|
|
119
|
+
nodeType: import("@intlayer/core").NodeType.Translation | "translation";
|
|
120
|
+
} & {
|
|
121
|
+
translation: {
|
|
122
|
+
en: string;
|
|
123
|
+
'en-GB': string;
|
|
124
|
+
fr: string;
|
|
125
|
+
es: string;
|
|
126
|
+
de: string;
|
|
127
|
+
ja: string;
|
|
128
|
+
ko: string;
|
|
129
|
+
zh: string;
|
|
130
|
+
it: string;
|
|
131
|
+
pt: string;
|
|
132
|
+
hi: string;
|
|
133
|
+
ar: string;
|
|
134
|
+
ru: string;
|
|
135
|
+
};
|
|
64
136
|
}>;
|
|
65
137
|
placeholder: import('@intlayer/core').TypedNodeModel<import("@intlayer/core").NodeType.Translation, {
|
|
66
138
|
en: string;
|
|
@@ -76,6 +148,57 @@ declare const localeSwitcherContent: {
|
|
|
76
148
|
hi: string;
|
|
77
149
|
ar: string;
|
|
78
150
|
ru: string;
|
|
151
|
+
}, {
|
|
152
|
+
nodeType: import("@intlayer/core").NodeType.Translation | "translation";
|
|
153
|
+
} & {
|
|
154
|
+
translation: {
|
|
155
|
+
en: string;
|
|
156
|
+
'en-GB': string;
|
|
157
|
+
fr: string;
|
|
158
|
+
es: string;
|
|
159
|
+
de: string;
|
|
160
|
+
ja: string;
|
|
161
|
+
ko: string;
|
|
162
|
+
zh: string;
|
|
163
|
+
it: string;
|
|
164
|
+
pt: string;
|
|
165
|
+
hi: string;
|
|
166
|
+
ar: string;
|
|
167
|
+
ru: string;
|
|
168
|
+
};
|
|
169
|
+
}>;
|
|
170
|
+
ariaLabel: import('@intlayer/core').TypedNodeModel<import("@intlayer/core").NodeType.Translation, {
|
|
171
|
+
en: string;
|
|
172
|
+
'en-GB': string;
|
|
173
|
+
fr: string;
|
|
174
|
+
es: string;
|
|
175
|
+
de: string;
|
|
176
|
+
ja: string;
|
|
177
|
+
ko: string;
|
|
178
|
+
zh: string;
|
|
179
|
+
it: string;
|
|
180
|
+
pt: string;
|
|
181
|
+
hi: string;
|
|
182
|
+
ar: string;
|
|
183
|
+
ru: string;
|
|
184
|
+
}, {
|
|
185
|
+
nodeType: import("@intlayer/core").NodeType.Translation | "translation";
|
|
186
|
+
} & {
|
|
187
|
+
translation: {
|
|
188
|
+
en: string;
|
|
189
|
+
'en-GB': string;
|
|
190
|
+
fr: string;
|
|
191
|
+
es: string;
|
|
192
|
+
de: string;
|
|
193
|
+
ja: string;
|
|
194
|
+
ko: string;
|
|
195
|
+
zh: string;
|
|
196
|
+
it: string;
|
|
197
|
+
pt: string;
|
|
198
|
+
hi: string;
|
|
199
|
+
ar: string;
|
|
200
|
+
ru: string;
|
|
201
|
+
};
|
|
79
202
|
}>;
|
|
80
203
|
};
|
|
81
204
|
seeAllLocalesSwitch: {
|
|
@@ -93,6 +216,24 @@ declare const localeSwitcherContent: {
|
|
|
93
216
|
hi: string;
|
|
94
217
|
ar: string;
|
|
95
218
|
ru: string;
|
|
219
|
+
}, {
|
|
220
|
+
nodeType: import("@intlayer/core").NodeType.Translation | "translation";
|
|
221
|
+
} & {
|
|
222
|
+
translation: {
|
|
223
|
+
en: string;
|
|
224
|
+
'en-GB': string;
|
|
225
|
+
fr: string;
|
|
226
|
+
es: string;
|
|
227
|
+
de: string;
|
|
228
|
+
ja: string;
|
|
229
|
+
ko: string;
|
|
230
|
+
zh: string;
|
|
231
|
+
it: string;
|
|
232
|
+
pt: string;
|
|
233
|
+
hi: string;
|
|
234
|
+
ar: string;
|
|
235
|
+
ru: string;
|
|
236
|
+
};
|
|
96
237
|
}>;
|
|
97
238
|
false: import('@intlayer/core').TypedNodeModel<import("@intlayer/core").NodeType.Translation, {
|
|
98
239
|
en: string;
|
|
@@ -108,6 +249,24 @@ declare const localeSwitcherContent: {
|
|
|
108
249
|
hi: string;
|
|
109
250
|
ar: string;
|
|
110
251
|
ru: string;
|
|
252
|
+
}, {
|
|
253
|
+
nodeType: import("@intlayer/core").NodeType.Translation | "translation";
|
|
254
|
+
} & {
|
|
255
|
+
translation: {
|
|
256
|
+
en: string;
|
|
257
|
+
'en-GB': string;
|
|
258
|
+
fr: string;
|
|
259
|
+
es: string;
|
|
260
|
+
de: string;
|
|
261
|
+
ja: string;
|
|
262
|
+
ko: string;
|
|
263
|
+
zh: string;
|
|
264
|
+
it: string;
|
|
265
|
+
pt: string;
|
|
266
|
+
hi: string;
|
|
267
|
+
ar: string;
|
|
268
|
+
ru: string;
|
|
269
|
+
};
|
|
111
270
|
}>;
|
|
112
271
|
};
|
|
113
272
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localeSwitcher.content.d.ts","sourceRoot":"","sources":["../../../src/components/LocaleSwitcherContentDropDown/localeSwitcher.content.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,qBAAqB
|
|
1
|
+
{"version":3,"file":"localeSwitcher.content.d.ts","sourceRoot":"","sources":["../../../src/components/LocaleSwitcherContentDropDown/localeSwitcher.content.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgIL,CAAC;AAEvB,eAAe,qBAAqB,CAAC"}
|
|
@@ -77,6 +77,21 @@ const localeSwitcherContent = {
|
|
|
77
77
|
hi: "भाषा खोजें",
|
|
78
78
|
ar: "بحث اللغة",
|
|
79
79
|
ru: "Поиск языка"
|
|
80
|
+
}),
|
|
81
|
+
ariaLabel: t({
|
|
82
|
+
en: "Language search",
|
|
83
|
+
"en-GB": "Language search",
|
|
84
|
+
fr: "Recherche de langue",
|
|
85
|
+
es: "Búsqueda de idioma",
|
|
86
|
+
de: "Sprachsuche",
|
|
87
|
+
ja: "言語検索",
|
|
88
|
+
ko: "언어 검색",
|
|
89
|
+
zh: "语言搜索",
|
|
90
|
+
it: "Ricerca lingua",
|
|
91
|
+
pt: "Pesquisa de idioma",
|
|
92
|
+
hi: "भाषा खोजें",
|
|
93
|
+
ar: "بحث اللغة",
|
|
94
|
+
ru: "Поиск языка"
|
|
80
95
|
})
|
|
81
96
|
},
|
|
82
97
|
seeAllLocalesSwitch: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localeSwitcher.content.mjs","sources":["../../../src/components/LocaleSwitcherContentDropDown/localeSwitcher.content.ts"],"sourcesContent":["import { t, type Dictionary } from 'intlayer';\n\nconst localeSwitcherContent = {\n key: 'locale-switcher-content',\n content: {\n localeSwitcherLabel: t({\n en: 'Language switcher',\n 'en-GB': 'Language switcher',\n fr: 'Changer de langue',\n es: 'Cambiar idioma',\n de: 'Sprachwechsler',\n ja: '言語スイッチャー',\n ko: '언어 스위치',\n zh: '语言切换器',\n it: 'Cambia lingua',\n pt: 'Mudar idioma',\n hi: 'भाषा स्विचर',\n ar: 'مبدل اللغة',\n ru: 'Переключатель языка',\n }),\n languageListLabel: t({\n en: 'Language list',\n 'en-GB': 'Language list',\n fr: 'Liste des langues',\n es: 'Lista de idiomas',\n de: 'Sprachliste',\n ja: '言語リスト',\n ko: '언어 목록',\n zh: '语言列表',\n it: 'Elenco lingue',\n pt: 'Lista de idiomas',\n hi: 'भाषा सूची',\n ar: 'قائمة اللغات',\n ru: 'Список языков',\n }),\n switchTo: t({\n en: 'Switch to',\n fr: 'Passer à',\n es: 'Cambiar a',\n 'en-GB': 'Switch to',\n de: 'Wechseln Sie zu',\n ja: 'に切り替える',\n ko: '전환',\n zh: '切换到',\n it: 'Passa a',\n pt: 'Mudar para',\n hi: 'स्विच करें',\n ar: 'التبديل إلى',\n ru: 'Переключиться на',\n }),\n searchInput: {\n text: t({\n en: 'Search Locale',\n 'en-GB': 'Search Locale',\n fr: 'Rechercher la locale',\n es: 'Buscar idioma',\n de: 'Sprache durchsuchen',\n ja: 'ロケールを検索',\n ko: '언어 검색',\n zh: '搜索语言',\n it: 'Cerca lingua',\n pt: 'Pesquisar idioma',\n hi: 'भाषा खोजें',\n ar: 'بحث اللغة',\n ru: 'Поиск языка',\n }),\n placeholder: t({\n en: 'Search a locale',\n 'en-GB': 'Search a locale',\n fr: 'Rechercher une locale',\n es: 'Buscar un idioma',\n de: 'Sprache suchen',\n ja: 'ロケールを検索',\n ko: '언어 검색',\n zh: '搜索语言',\n it: 'Cerca una lingua',\n pt: 'Pesquisar um idioma',\n hi: 'भाषा खोजें',\n ar: 'بحث اللغة',\n ru: 'Поиск языка',\n }),\n },\n seeAllLocalesSwitch: {\n true: t({\n en: 'See all locales',\n 'en-GB': 'See all locales',\n fr: 'Voir toutes les langues',\n es: 'Ver todos los idiomas',\n de: 'Alle Sprachen anzeigen',\n ja: 'すべての言語を表示',\n ko: '모든 언어 보기',\n zh: '查看所有语言',\n it: 'Vedi tutte le lingue',\n pt: 'Ver todos os idiomas',\n hi: 'सभी भाषाओं को देखें',\n ar: 'عرض جميع اللغات',\n ru: 'Показать все языки',\n }),\n false: t({\n en: 'See only selected locales',\n 'en-GB': 'See only selected locales',\n fr: 'Voir seulement les langues sélectionnées',\n es: 'Ver solo los idiomas seleccionados',\n de: 'Nur ausgewählte Sprachen anzeigen',\n ja: '選択された言語のみを表示',\n ko: '선택한 언어만 보기',\n zh: '仅查看选定的语言',\n it: 'Vedi solo le lingue selezionate',\n pt: 'Ver apenas os idiomas selecionados',\n hi: 'केवल चुने गए भाषाओं को देखें',\n ar: 'عرض اللغات المحددة فقط',\n ru: 'Показать только выбранные языки',\n }),\n },\n },\n} satisfies Dictionary;\n\nexport default localeSwitcherContent;\n"],"names":[],"mappings":";AAEA,MAAM,wBAAwB;AAAA,EAC5B,KAAK;AAAA,EACL,SAAS;AAAA,IACP,qBAAqB,EAAE;AAAA,MACrB,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA,CACL;AAAA,IACD,mBAAmB,EAAE;AAAA,MACnB,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA,CACL;AAAA,IACD,UAAU,EAAE;AAAA,MACV,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA,CACL;AAAA,IACD,aAAa;AAAA,MACX,MAAM,EAAE;AAAA,QACN,IAAI;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MAAA,CACL;AAAA,MACD,aAAa,EAAE;AAAA,QACb,IAAI;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MACL,CAAA;AAAA,IACH;AAAA,IACA,qBAAqB;AAAA,MACnB,MAAM,EAAE;AAAA,QACN,IAAI;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MAAA,CACL;AAAA,MACD,OAAO,EAAE;AAAA,QACP,IAAI;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MACL,CAAA;AAAA,IAAA;AAAA,EACH;AAEJ;"}
|
|
1
|
+
{"version":3,"file":"localeSwitcher.content.mjs","sources":["../../../src/components/LocaleSwitcherContentDropDown/localeSwitcher.content.ts"],"sourcesContent":["import { t, type Dictionary } from 'intlayer';\n\nconst localeSwitcherContent = {\n key: 'locale-switcher-content',\n content: {\n localeSwitcherLabel: t({\n en: 'Language switcher',\n 'en-GB': 'Language switcher',\n fr: 'Changer de langue',\n es: 'Cambiar idioma',\n de: 'Sprachwechsler',\n ja: '言語スイッチャー',\n ko: '언어 스위치',\n zh: '语言切换器',\n it: 'Cambia lingua',\n pt: 'Mudar idioma',\n hi: 'भाषा स्विचर',\n ar: 'مبدل اللغة',\n ru: 'Переключатель языка',\n }),\n languageListLabel: t({\n en: 'Language list',\n 'en-GB': 'Language list',\n fr: 'Liste des langues',\n es: 'Lista de idiomas',\n de: 'Sprachliste',\n ja: '言語リスト',\n ko: '언어 목록',\n zh: '语言列表',\n it: 'Elenco lingue',\n pt: 'Lista de idiomas',\n hi: 'भाषा सूची',\n ar: 'قائمة اللغات',\n ru: 'Список языков',\n }),\n switchTo: t({\n en: 'Switch to',\n fr: 'Passer à',\n es: 'Cambiar a',\n 'en-GB': 'Switch to',\n de: 'Wechseln Sie zu',\n ja: 'に切り替える',\n ko: '전환',\n zh: '切换到',\n it: 'Passa a',\n pt: 'Mudar para',\n hi: 'स्विच करें',\n ar: 'التبديل إلى',\n ru: 'Переключиться на',\n }),\n searchInput: {\n text: t({\n en: 'Search Locale',\n 'en-GB': 'Search Locale',\n fr: 'Rechercher la locale',\n es: 'Buscar idioma',\n de: 'Sprache durchsuchen',\n ja: 'ロケールを検索',\n ko: '언어 검색',\n zh: '搜索语言',\n it: 'Cerca lingua',\n pt: 'Pesquisar idioma',\n hi: 'भाषा खोजें',\n ar: 'بحث اللغة',\n ru: 'Поиск языка',\n }),\n placeholder: t({\n en: 'Search a locale',\n 'en-GB': 'Search a locale',\n fr: 'Rechercher une locale',\n es: 'Buscar un idioma',\n de: 'Sprache suchen',\n ja: 'ロケールを検索',\n ko: '언어 검색',\n zh: '搜索语言',\n it: 'Cerca una lingua',\n pt: 'Pesquisar um idioma',\n hi: 'भाषा खोजें',\n ar: 'بحث اللغة',\n ru: 'Поиск языка',\n }),\n ariaLabel: t({\n en: 'Language search',\n 'en-GB': 'Language search',\n fr: 'Recherche de langue',\n es: 'Búsqueda de idioma',\n de: 'Sprachsuche',\n ja: '言語検索',\n ko: '언어 검색',\n zh: '语言搜索',\n it: 'Ricerca lingua',\n pt: 'Pesquisa de idioma',\n hi: 'भाषा खोजें',\n ar: 'بحث اللغة',\n ru: 'Поиск языка',\n }),\n },\n seeAllLocalesSwitch: {\n true: t({\n en: 'See all locales',\n 'en-GB': 'See all locales',\n fr: 'Voir toutes les langues',\n es: 'Ver todos los idiomas',\n de: 'Alle Sprachen anzeigen',\n ja: 'すべての言語を表示',\n ko: '모든 언어 보기',\n zh: '查看所有语言',\n it: 'Vedi tutte le lingue',\n pt: 'Ver todos os idiomas',\n hi: 'सभी भाषाओं को देखें',\n ar: 'عرض جميع اللغات',\n ru: 'Показать все языки',\n }),\n false: t({\n en: 'See only selected locales',\n 'en-GB': 'See only selected locales',\n fr: 'Voir seulement les langues sélectionnées',\n es: 'Ver solo los idiomas seleccionados',\n de: 'Nur ausgewählte Sprachen anzeigen',\n ja: '選択された言語のみを表示',\n ko: '선택한 언어만 보기',\n zh: '仅查看选定的语言',\n it: 'Vedi solo le lingue selezionate',\n pt: 'Ver apenas os idiomas selecionados',\n hi: 'केवल चुने गए भाषाओं को देखें',\n ar: 'عرض اللغات المحددة فقط',\n ru: 'Показать только выбранные языки',\n }),\n },\n },\n} satisfies Dictionary;\n\nexport default localeSwitcherContent;\n"],"names":[],"mappings":";AAEA,MAAM,wBAAwB;AAAA,EAC5B,KAAK;AAAA,EACL,SAAS;AAAA,IACP,qBAAqB,EAAE;AAAA,MACrB,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA,CACL;AAAA,IACD,mBAAmB,EAAE;AAAA,MACnB,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA,CACL;AAAA,IACD,UAAU,EAAE;AAAA,MACV,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA,CACL;AAAA,IACD,aAAa;AAAA,MACX,MAAM,EAAE;AAAA,QACN,IAAI;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MAAA,CACL;AAAA,MACD,aAAa,EAAE;AAAA,QACb,IAAI;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MAAA,CACL;AAAA,MACD,WAAW,EAAE;AAAA,QACX,IAAI;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MACL,CAAA;AAAA,IACH;AAAA,IACA,qBAAqB;AAAA,MACnB,MAAM,EAAE;AAAA,QACN,IAAI;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MAAA,CACL;AAAA,MACD,OAAO,EAAE;AAAA,QACP,IAAI;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MACL,CAAA;AAAA,IAAA;AAAA,EACH;AAEJ;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocaleSwitcher.cjs","sources":["../../../src/components/LocaleSwitcherDropDown/LocaleSwitcher.tsx"],"sourcesContent":["'use client';\n\nimport { Locales } from '@intlayer/config/client';\nimport { getHTMLTextDir, getLocaleName } from '@intlayer/core';\nimport Fuse, { type IFuseOptions } from 'fuse.js';\nimport { MoveVertical } from 'lucide-react';\nimport { useCallback, useMemo, useRef, useState, type FC } from 'react';\nimport { useDictionary } from 'react-intlayer';\nimport { Button } from '../Button';\nimport { Container } from '../Container';\nimport { DropDown, type PanelProps } from '../DropDown';\nimport { Input } from '../Input';\nimport localeSwitcherContent from './localeSwitcher.content';\n\nexport type LocaleSwitcherProps = {\n locale?: Locales;\n localeList: Locales[];\n availableLocales?: Locales[];\n fullLocaleName?: boolean;\n setLocale: (locale: Locales) => void;\n panelProps?: Omit<PanelProps, 'identifier'>;\n};\n\nconst DROPDOWN_IDENTIFIER = 'locale-switcher';\n\ntype MultilingualAvailableLocales = {\n locale: Locales;\n englishName: string;\n currentLocaleName: string;\n ownLocaleName: string;\n};\n\nexport const LocaleSwitcher: FC<LocaleSwitcherProps> = ({\n locale,\n localeList,\n availableLocales,\n fullLocaleName = true,\n setLocale,\n panelProps,\n}) => {\n let localeName = 'Select a locale';\n const { switchTo, searchInput, localeSwitcherLabel, languageListLabel } =\n useDictionary(localeSwitcherContent);\n const inputRef = useRef<HTMLInputElement>(null);\n\n const multilingualAvailableLocales: MultilingualAvailableLocales[] = useMemo(\n () =>\n localeList.map((localeEl) => {\n const englishName = getLocaleName(localeEl, Locales.ENGLISH);\n const currentLocaleName = getLocaleName(localeEl, locale);\n const ownLocaleName = getLocaleName(localeEl);\n return {\n locale: localeEl,\n englishName,\n currentLocaleName,\n ownLocaleName,\n };\n }),\n [localeList, locale]\n );\n\n const [results, setResults] = useState<MultilingualAvailableLocales[]>(\n multilingualAvailableLocales\n );\n\n // Create a new Fuse instance with the options and documentation data\n const fuse = useMemo(() => {\n const fuseOptions: IFuseOptions<MultilingualAvailableLocales> = {\n keys: [\n { name: 'ownLocaleName', weight: 0.4 },\n { name: 'englishName', weight: 0.2 },\n { name: 'currentLocaleName', weight: 0.2 },\n { name: 'locale', weight: 0.2 },\n ],\n threshold: 0.02, // Defines how fuzzy the matching should be (lower is more strict)\n };\n\n return new Fuse(multilingualAvailableLocales, fuseOptions);\n }, [multilingualAvailableLocales]);\n\n const handleSearch = useCallback(\n (searchQuery: string) => {\n if (searchQuery) {\n // Perform search on every input change\n const searchResults = fuse\n .search(searchQuery)\n .map((result) => result.item);\n setResults(searchResults);\n } else {\n setResults(multilingualAvailableLocales);\n }\n },\n [fuse, multilingualAvailableLocales]\n );\n\n if (locale) {\n localeName = fullLocaleName ? getLocaleName(locale) : locale.toUpperCase();\n }\n\n return (\n <div\n className=\"border-text text-text rounded-xl border transition-colors\"\n aria-label={localeSwitcherLabel.value}\n >\n <DropDown identifier={DROPDOWN_IDENTIFIER}>\n <DropDown.Trigger identifier={DROPDOWN_IDENTIFIER}>\n <div className=\"flex w-full items-center justify-between\">\n <div className=\"text-nowrap px-2\">{localeName}</div>\n <MoveVertical className=\"w-5 self-center\" />\n </div>\n </DropDown.Trigger>\n\n <DropDown.Panel\n identifier={DROPDOWN_IDENTIFIER}\n isOverable\n isFocusable\n {...panelProps}\n >\n <Container\n className=\"max-h-[80vh] min-w-28\"\n separator=\"y\"\n role=\"listbox\"\n transparency=\"sm\"\n aria-label={languageListLabel.value}\n >\n <div className=\"p-3\">\n <Input\n type=\"search\"\n placeholder={searchInput.placeholder.value}\n onChange={(e) => handleSearch(e.target.value)}\n ref={inputRef}\n />\n </div>\n <ol className=\"divide-text/20 divide-y divide-dashed overflow-y-auto p-1\">\n {results.map(\n ({ locale: localeItem, currentLocaleName, ownLocaleName }) => (\n <li className=\"px-1.5 py-1\" key={localeItem}>\n <Button\n onClick={() => setLocale(localeItem)}\n label={`${switchTo} ${currentLocaleName}`}\n disabled={\n !(availableLocales ?? localeList).includes(localeItem)\n }\n isActive={locale === localeItem}\n variant=\"hoverable\"\n color=\"text\"\n isFullWidth\n textAlign=\"left\"\n >\n <div className=\"flex flex-row items-center justify-between gap-3 px-2 py-1\">\n <div className=\"flex flex-col text-nowrap\">\n <span\n dir={getHTMLTextDir(localeItem)}\n lang={localeItem}\n >\n {ownLocaleName}\n </span>\n <span className=\"text-neutral text-xs\">\n {currentLocaleName}\n </span>\n </div>\n <span className=\"text-neutral text-sm\">\n {localeItem.toUpperCase()}\n </span>\n </div>\n </Button>\n </li>\n )\n )}\n </ol>\n </Container>\n </DropDown.Panel>\n </DropDown>\n </div>\n );\n};\n"],"names":["useDictionary","localeSwitcherContent","useRef","useMemo","getLocaleName","Locales","useState","useCallback","jsx","jsxs","DropDown","MoveVertical","Container","Input","Button","getHTMLTextDir"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LocaleSwitcher.cjs","sources":["../../../src/components/LocaleSwitcherDropDown/LocaleSwitcher.tsx"],"sourcesContent":["'use client';\n\nimport { Locales } from '@intlayer/config/client';\nimport { getHTMLTextDir, getLocaleName } from '@intlayer/core';\nimport Fuse, { type IFuseOptions } from 'fuse.js';\nimport { MoveVertical } from 'lucide-react';\nimport { useCallback, useMemo, useRef, useState, type FC } from 'react';\nimport { useDictionary } from 'react-intlayer';\nimport { Button } from '../Button';\nimport { Container } from '../Container';\nimport { DropDown, type PanelProps } from '../DropDown';\nimport { Input } from '../Input';\nimport localeSwitcherContent from './localeSwitcher.content';\n\nexport type LocaleSwitcherProps = {\n locale?: Locales;\n localeList: Locales[];\n availableLocales?: Locales[];\n fullLocaleName?: boolean;\n setLocale: (locale: Locales) => void;\n panelProps?: Omit<PanelProps, 'identifier'>;\n};\n\nconst DROPDOWN_IDENTIFIER = 'locale-switcher';\n\ntype MultilingualAvailableLocales = {\n locale: Locales;\n englishName: string;\n currentLocaleName: string;\n ownLocaleName: string;\n};\n\nexport const LocaleSwitcher: FC<LocaleSwitcherProps> = ({\n locale,\n localeList,\n availableLocales,\n fullLocaleName = true,\n setLocale,\n panelProps,\n}) => {\n let localeName = 'Select a locale';\n const { switchTo, searchInput, localeSwitcherLabel, languageListLabel } =\n useDictionary(localeSwitcherContent);\n const inputRef = useRef<HTMLInputElement>(null);\n\n const multilingualAvailableLocales: MultilingualAvailableLocales[] = useMemo(\n () =>\n localeList.map((localeEl) => {\n const englishName = getLocaleName(localeEl, Locales.ENGLISH);\n const currentLocaleName = getLocaleName(localeEl, locale);\n const ownLocaleName = getLocaleName(localeEl);\n return {\n locale: localeEl,\n englishName,\n currentLocaleName,\n ownLocaleName,\n };\n }),\n [localeList, locale]\n );\n\n const [results, setResults] = useState<MultilingualAvailableLocales[]>(\n multilingualAvailableLocales\n );\n\n // Create a new Fuse instance with the options and documentation data\n const fuse = useMemo(() => {\n const fuseOptions: IFuseOptions<MultilingualAvailableLocales> = {\n keys: [\n { name: 'ownLocaleName', weight: 0.4 },\n { name: 'englishName', weight: 0.2 },\n { name: 'currentLocaleName', weight: 0.2 },\n { name: 'locale', weight: 0.2 },\n ],\n threshold: 0.02, // Defines how fuzzy the matching should be (lower is more strict)\n };\n\n return new Fuse(multilingualAvailableLocales, fuseOptions);\n }, [multilingualAvailableLocales]);\n\n const handleSearch = useCallback(\n (searchQuery: string) => {\n if (searchQuery) {\n // Perform search on every input change\n const searchResults = fuse\n .search(searchQuery)\n .map((result) => result.item);\n setResults(searchResults);\n } else {\n setResults(multilingualAvailableLocales);\n }\n },\n [fuse, multilingualAvailableLocales]\n );\n\n if (locale) {\n localeName = fullLocaleName ? getLocaleName(locale) : locale.toUpperCase();\n }\n\n return (\n <div\n className=\"border-text text-text rounded-xl border transition-colors\"\n aria-label={localeSwitcherLabel.value}\n >\n <DropDown identifier={DROPDOWN_IDENTIFIER}>\n <DropDown.Trigger identifier={DROPDOWN_IDENTIFIER}>\n <div className=\"flex w-full items-center justify-between\">\n <div className=\"text-nowrap px-2\">{localeName}</div>\n <MoveVertical className=\"w-5 self-center\" />\n </div>\n </DropDown.Trigger>\n\n <DropDown.Panel\n identifier={DROPDOWN_IDENTIFIER}\n isOverable\n isFocusable\n {...panelProps}\n >\n <Container\n className=\"max-h-[80vh] min-w-28\"\n separator=\"y\"\n role=\"listbox\"\n transparency=\"sm\"\n aria-label={languageListLabel.value}\n >\n <div className=\"p-3\">\n <Input\n type=\"search\"\n aria-label={searchInput.ariaLabel.value}\n placeholder={searchInput.placeholder.value}\n onChange={(e) => handleSearch(e.target.value)}\n ref={inputRef}\n />\n </div>\n <ol className=\"divide-text/20 divide-y divide-dashed overflow-y-auto p-1\">\n {results.map(\n ({ locale: localeItem, currentLocaleName, ownLocaleName }) => (\n <li className=\"px-1.5 py-1\" key={localeItem}>\n <Button\n onClick={() => setLocale(localeItem)}\n label={`${switchTo} ${currentLocaleName}`}\n disabled={\n !(availableLocales ?? localeList).includes(localeItem)\n }\n isActive={locale === localeItem}\n variant=\"hoverable\"\n color=\"text\"\n isFullWidth\n textAlign=\"left\"\n >\n <div className=\"flex flex-row items-center justify-between gap-3 px-2 py-1\">\n <div className=\"flex flex-col text-nowrap\">\n <span\n dir={getHTMLTextDir(localeItem)}\n lang={localeItem}\n >\n {ownLocaleName}\n </span>\n <span className=\"text-neutral text-xs\">\n {currentLocaleName}\n </span>\n </div>\n <span className=\"text-neutral text-sm\">\n {localeItem.toUpperCase()}\n </span>\n </div>\n </Button>\n </li>\n )\n )}\n </ol>\n </Container>\n </DropDown.Panel>\n </DropDown>\n </div>\n );\n};\n"],"names":["useDictionary","localeSwitcherContent","useRef","useMemo","getLocaleName","Locales","useState","useCallback","jsx","jsxs","DropDown","MoveVertical","Container","Input","Button","getHTMLTextDir"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocaleSwitcher.d.ts","sourceRoot":"","sources":["../../../src/components/LocaleSwitcherDropDown/LocaleSwitcher.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAIlD,OAAO,EAA0C,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAIxE,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAIxD,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,EAAE,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,UAAU,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;CAC7C,CAAC;AAWF,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,
|
|
1
|
+
{"version":3,"file":"LocaleSwitcher.d.ts","sourceRoot":"","sources":["../../../src/components/LocaleSwitcherDropDown/LocaleSwitcher.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAIlD,OAAO,EAA0C,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAIxE,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAIxD,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,EAAE,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,UAAU,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;CAC7C,CAAC;AAWF,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAgJlD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocaleSwitcher.mjs","sources":["../../../src/components/LocaleSwitcherDropDown/LocaleSwitcher.tsx"],"sourcesContent":["'use client';\n\nimport { Locales } from '@intlayer/config/client';\nimport { getHTMLTextDir, getLocaleName } from '@intlayer/core';\nimport Fuse, { type IFuseOptions } from 'fuse.js';\nimport { MoveVertical } from 'lucide-react';\nimport { useCallback, useMemo, useRef, useState, type FC } from 'react';\nimport { useDictionary } from 'react-intlayer';\nimport { Button } from '../Button';\nimport { Container } from '../Container';\nimport { DropDown, type PanelProps } from '../DropDown';\nimport { Input } from '../Input';\nimport localeSwitcherContent from './localeSwitcher.content';\n\nexport type LocaleSwitcherProps = {\n locale?: Locales;\n localeList: Locales[];\n availableLocales?: Locales[];\n fullLocaleName?: boolean;\n setLocale: (locale: Locales) => void;\n panelProps?: Omit<PanelProps, 'identifier'>;\n};\n\nconst DROPDOWN_IDENTIFIER = 'locale-switcher';\n\ntype MultilingualAvailableLocales = {\n locale: Locales;\n englishName: string;\n currentLocaleName: string;\n ownLocaleName: string;\n};\n\nexport const LocaleSwitcher: FC<LocaleSwitcherProps> = ({\n locale,\n localeList,\n availableLocales,\n fullLocaleName = true,\n setLocale,\n panelProps,\n}) => {\n let localeName = 'Select a locale';\n const { switchTo, searchInput, localeSwitcherLabel, languageListLabel } =\n useDictionary(localeSwitcherContent);\n const inputRef = useRef<HTMLInputElement>(null);\n\n const multilingualAvailableLocales: MultilingualAvailableLocales[] = useMemo(\n () =>\n localeList.map((localeEl) => {\n const englishName = getLocaleName(localeEl, Locales.ENGLISH);\n const currentLocaleName = getLocaleName(localeEl, locale);\n const ownLocaleName = getLocaleName(localeEl);\n return {\n locale: localeEl,\n englishName,\n currentLocaleName,\n ownLocaleName,\n };\n }),\n [localeList, locale]\n );\n\n const [results, setResults] = useState<MultilingualAvailableLocales[]>(\n multilingualAvailableLocales\n );\n\n // Create a new Fuse instance with the options and documentation data\n const fuse = useMemo(() => {\n const fuseOptions: IFuseOptions<MultilingualAvailableLocales> = {\n keys: [\n { name: 'ownLocaleName', weight: 0.4 },\n { name: 'englishName', weight: 0.2 },\n { name: 'currentLocaleName', weight: 0.2 },\n { name: 'locale', weight: 0.2 },\n ],\n threshold: 0.02, // Defines how fuzzy the matching should be (lower is more strict)\n };\n\n return new Fuse(multilingualAvailableLocales, fuseOptions);\n }, [multilingualAvailableLocales]);\n\n const handleSearch = useCallback(\n (searchQuery: string) => {\n if (searchQuery) {\n // Perform search on every input change\n const searchResults = fuse\n .search(searchQuery)\n .map((result) => result.item);\n setResults(searchResults);\n } else {\n setResults(multilingualAvailableLocales);\n }\n },\n [fuse, multilingualAvailableLocales]\n );\n\n if (locale) {\n localeName = fullLocaleName ? getLocaleName(locale) : locale.toUpperCase();\n }\n\n return (\n <div\n className=\"border-text text-text rounded-xl border transition-colors\"\n aria-label={localeSwitcherLabel.value}\n >\n <DropDown identifier={DROPDOWN_IDENTIFIER}>\n <DropDown.Trigger identifier={DROPDOWN_IDENTIFIER}>\n <div className=\"flex w-full items-center justify-between\">\n <div className=\"text-nowrap px-2\">{localeName}</div>\n <MoveVertical className=\"w-5 self-center\" />\n </div>\n </DropDown.Trigger>\n\n <DropDown.Panel\n identifier={DROPDOWN_IDENTIFIER}\n isOverable\n isFocusable\n {...panelProps}\n >\n <Container\n className=\"max-h-[80vh] min-w-28\"\n separator=\"y\"\n role=\"listbox\"\n transparency=\"sm\"\n aria-label={languageListLabel.value}\n >\n <div className=\"p-3\">\n <Input\n type=\"search\"\n placeholder={searchInput.placeholder.value}\n onChange={(e) => handleSearch(e.target.value)}\n ref={inputRef}\n />\n </div>\n <ol className=\"divide-text/20 divide-y divide-dashed overflow-y-auto p-1\">\n {results.map(\n ({ locale: localeItem, currentLocaleName, ownLocaleName }) => (\n <li className=\"px-1.5 py-1\" key={localeItem}>\n <Button\n onClick={() => setLocale(localeItem)}\n label={`${switchTo} ${currentLocaleName}`}\n disabled={\n !(availableLocales ?? localeList).includes(localeItem)\n }\n isActive={locale === localeItem}\n variant=\"hoverable\"\n color=\"text\"\n isFullWidth\n textAlign=\"left\"\n >\n <div className=\"flex flex-row items-center justify-between gap-3 px-2 py-1\">\n <div className=\"flex flex-col text-nowrap\">\n <span\n dir={getHTMLTextDir(localeItem)}\n lang={localeItem}\n >\n {ownLocaleName}\n </span>\n <span className=\"text-neutral text-xs\">\n {currentLocaleName}\n </span>\n </div>\n <span className=\"text-neutral text-sm\">\n {localeItem.toUpperCase()}\n </span>\n </div>\n </Button>\n </li>\n )\n )}\n </ol>\n </Container>\n </DropDown.Panel>\n </DropDown>\n </div>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LocaleSwitcher.mjs","sources":["../../../src/components/LocaleSwitcherDropDown/LocaleSwitcher.tsx"],"sourcesContent":["'use client';\n\nimport { Locales } from '@intlayer/config/client';\nimport { getHTMLTextDir, getLocaleName } from '@intlayer/core';\nimport Fuse, { type IFuseOptions } from 'fuse.js';\nimport { MoveVertical } from 'lucide-react';\nimport { useCallback, useMemo, useRef, useState, type FC } from 'react';\nimport { useDictionary } from 'react-intlayer';\nimport { Button } from '../Button';\nimport { Container } from '../Container';\nimport { DropDown, type PanelProps } from '../DropDown';\nimport { Input } from '../Input';\nimport localeSwitcherContent from './localeSwitcher.content';\n\nexport type LocaleSwitcherProps = {\n locale?: Locales;\n localeList: Locales[];\n availableLocales?: Locales[];\n fullLocaleName?: boolean;\n setLocale: (locale: Locales) => void;\n panelProps?: Omit<PanelProps, 'identifier'>;\n};\n\nconst DROPDOWN_IDENTIFIER = 'locale-switcher';\n\ntype MultilingualAvailableLocales = {\n locale: Locales;\n englishName: string;\n currentLocaleName: string;\n ownLocaleName: string;\n};\n\nexport const LocaleSwitcher: FC<LocaleSwitcherProps> = ({\n locale,\n localeList,\n availableLocales,\n fullLocaleName = true,\n setLocale,\n panelProps,\n}) => {\n let localeName = 'Select a locale';\n const { switchTo, searchInput, localeSwitcherLabel, languageListLabel } =\n useDictionary(localeSwitcherContent);\n const inputRef = useRef<HTMLInputElement>(null);\n\n const multilingualAvailableLocales: MultilingualAvailableLocales[] = useMemo(\n () =>\n localeList.map((localeEl) => {\n const englishName = getLocaleName(localeEl, Locales.ENGLISH);\n const currentLocaleName = getLocaleName(localeEl, locale);\n const ownLocaleName = getLocaleName(localeEl);\n return {\n locale: localeEl,\n englishName,\n currentLocaleName,\n ownLocaleName,\n };\n }),\n [localeList, locale]\n );\n\n const [results, setResults] = useState<MultilingualAvailableLocales[]>(\n multilingualAvailableLocales\n );\n\n // Create a new Fuse instance with the options and documentation data\n const fuse = useMemo(() => {\n const fuseOptions: IFuseOptions<MultilingualAvailableLocales> = {\n keys: [\n { name: 'ownLocaleName', weight: 0.4 },\n { name: 'englishName', weight: 0.2 },\n { name: 'currentLocaleName', weight: 0.2 },\n { name: 'locale', weight: 0.2 },\n ],\n threshold: 0.02, // Defines how fuzzy the matching should be (lower is more strict)\n };\n\n return new Fuse(multilingualAvailableLocales, fuseOptions);\n }, [multilingualAvailableLocales]);\n\n const handleSearch = useCallback(\n (searchQuery: string) => {\n if (searchQuery) {\n // Perform search on every input change\n const searchResults = fuse\n .search(searchQuery)\n .map((result) => result.item);\n setResults(searchResults);\n } else {\n setResults(multilingualAvailableLocales);\n }\n },\n [fuse, multilingualAvailableLocales]\n );\n\n if (locale) {\n localeName = fullLocaleName ? getLocaleName(locale) : locale.toUpperCase();\n }\n\n return (\n <div\n className=\"border-text text-text rounded-xl border transition-colors\"\n aria-label={localeSwitcherLabel.value}\n >\n <DropDown identifier={DROPDOWN_IDENTIFIER}>\n <DropDown.Trigger identifier={DROPDOWN_IDENTIFIER}>\n <div className=\"flex w-full items-center justify-between\">\n <div className=\"text-nowrap px-2\">{localeName}</div>\n <MoveVertical className=\"w-5 self-center\" />\n </div>\n </DropDown.Trigger>\n\n <DropDown.Panel\n identifier={DROPDOWN_IDENTIFIER}\n isOverable\n isFocusable\n {...panelProps}\n >\n <Container\n className=\"max-h-[80vh] min-w-28\"\n separator=\"y\"\n role=\"listbox\"\n transparency=\"sm\"\n aria-label={languageListLabel.value}\n >\n <div className=\"p-3\">\n <Input\n type=\"search\"\n aria-label={searchInput.ariaLabel.value}\n placeholder={searchInput.placeholder.value}\n onChange={(e) => handleSearch(e.target.value)}\n ref={inputRef}\n />\n </div>\n <ol className=\"divide-text/20 divide-y divide-dashed overflow-y-auto p-1\">\n {results.map(\n ({ locale: localeItem, currentLocaleName, ownLocaleName }) => (\n <li className=\"px-1.5 py-1\" key={localeItem}>\n <Button\n onClick={() => setLocale(localeItem)}\n label={`${switchTo} ${currentLocaleName}`}\n disabled={\n !(availableLocales ?? localeList).includes(localeItem)\n }\n isActive={locale === localeItem}\n variant=\"hoverable\"\n color=\"text\"\n isFullWidth\n textAlign=\"left\"\n >\n <div className=\"flex flex-row items-center justify-between gap-3 px-2 py-1\">\n <div className=\"flex flex-col text-nowrap\">\n <span\n dir={getHTMLTextDir(localeItem)}\n lang={localeItem}\n >\n {ownLocaleName}\n </span>\n <span className=\"text-neutral text-xs\">\n {currentLocaleName}\n </span>\n </div>\n <span className=\"text-neutral text-sm\">\n {localeItem.toUpperCase()}\n </span>\n </div>\n </Button>\n </li>\n )\n )}\n </ol>\n </Container>\n </DropDown.Panel>\n </DropDown>\n </div>\n );\n};\n"],"names":[],"mappings":"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"}
|