@intlayer/design-system 5.1.2 → 5.1.4
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/.vite/manifest.json +12 -23
- package/dist/components/Auth/ExternalsLoginButtons/ExternalsLoginButtons.cjs +1 -1
- package/dist/components/Auth/ExternalsLoginButtons/ExternalsLoginButtons.mjs +1 -1
- package/dist/components/Container/index.cjs +5 -2
- package/dist/components/Container/index.cjs.map +1 -1
- package/dist/components/Container/index.d.ts +1 -1
- package/dist/components/Container/index.d.ts.map +1 -1
- package/dist/components/Container/index.mjs +5 -2
- package/dist/components/Container/index.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/ContentEditor.cjs +27 -6
- package/dist/components/DictionaryFieldEditor/ContentEditor.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/ContentEditor.d.ts +1 -0
- package/dist/components/DictionaryFieldEditor/ContentEditor.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/ContentEditor.mjs +27 -6
- package/dist/components/DictionaryFieldEditor/ContentEditor.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/ContentEditorView/TextEditor.cjs +278 -214
- package/dist/components/DictionaryFieldEditor/ContentEditorView/TextEditor.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/ContentEditorView/TextEditor.d.ts +2 -0
- package/dist/components/DictionaryFieldEditor/ContentEditorView/TextEditor.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/ContentEditorView/TextEditor.mjs +281 -217
- package/dist/components/DictionaryFieldEditor/ContentEditorView/TextEditor.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.cjs +5 -3
- package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.d.ts +5 -1
- package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.mjs +5 -3
- package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.cjs +1 -1
- package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.mjs +1 -1
- package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.cjs +1 -1
- package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.mjs +1 -1
- package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/EnumKeyInput.cjs +1 -1
- package/dist/components/DictionaryFieldEditor/EnumKeyInput.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/EnumKeyInput.mjs +1 -1
- package/dist/components/DictionaryFieldEditor/EnumKeyInput.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.cjs +18 -13
- package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.mjs +19 -14
- package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.cjs +64 -0
- package/dist/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.d.ts +64 -0
- package/dist/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.mjs +64 -0
- package/dist/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.cjs +1 -1
- package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs +1 -1
- package/dist/components/DictionaryFieldEditor/StructureEditor.cjs +6 -16
- package/dist/components/DictionaryFieldEditor/StructureEditor.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/StructureEditor.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/StructureEditor.mjs +7 -17
- package/dist/components/DictionaryFieldEditor/StructureEditor.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/StructureView/StructureView.cjs +8 -7
- package/dist/components/DictionaryFieldEditor/StructureView/StructureView.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/StructureView/StructureView.d.ts +7 -0
- package/dist/components/DictionaryFieldEditor/StructureView/StructureView.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/StructureView/StructureView.mjs +11 -10
- package/dist/components/DictionaryFieldEditor/StructureView/StructureView.mjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/getIsEditableSection.cjs +2 -1
- package/dist/components/DictionaryFieldEditor/getIsEditableSection.cjs.map +1 -1
- package/dist/components/DictionaryFieldEditor/getIsEditableSection.d.ts.map +1 -1
- package/dist/components/DictionaryFieldEditor/getIsEditableSection.mjs +3 -2
- package/dist/components/DictionaryFieldEditor/getIsEditableSection.mjs.map +1 -1
- package/dist/components/MarkDownRender/index.cjs.map +1 -1
- package/dist/components/MarkDownRender/index.d.ts +1 -1
- package/dist/components/MarkDownRender/index.d.ts.map +1 -1
- package/dist/components/MarkDownRender/index.mjs.map +1 -1
- package/dist/components/MaxHeightSmoother/index.cjs +1 -1
- package/dist/components/MaxHeightSmoother/index.cjs.map +1 -1
- package/dist/components/MaxHeightSmoother/index.d.ts.map +1 -1
- package/dist/components/MaxHeightSmoother/index.mjs +1 -1
- package/dist/components/MaxHeightSmoother/index.mjs.map +1 -1
- package/dist/hooks/intlayerAPIHooks.cjs +1 -1
- package/dist/hooks/intlayerAPIHooks.cjs.map +1 -1
- package/dist/hooks/intlayerAPIHooks.d.ts.map +1 -1
- package/dist/hooks/intlayerAPIHooks.mjs +1 -1
- package/dist/hooks/intlayerAPIHooks.mjs.map +1 -1
- package/dist/index-BCuMWKyy.js.map +1 -1
- package/dist/{index-BKE0uywA.js → index-BTDHuTxL.js} +2 -2
- package/dist/index-BTDHuTxL.js.map +1 -0
- package/dist/index-BYzBot7l.cjs.map +1 -1
- package/dist/{index-CsenS2hX.cjs → index-Db5Dym4h.cjs} +2 -2
- package/dist/index-Db5Dym4h.cjs.map +1 -0
- 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
- package/dist/components/DictionaryFieldEditor/ContentEditorView/EditorView.cjs +0 -44
- package/dist/components/DictionaryFieldEditor/ContentEditorView/EditorView.cjs.map +0 -1
- package/dist/components/DictionaryFieldEditor/ContentEditorView/EditorView.d.ts +0 -9
- package/dist/components/DictionaryFieldEditor/ContentEditorView/EditorView.d.ts.map +0 -1
- package/dist/components/DictionaryFieldEditor/ContentEditorView/EditorView.mjs +0 -44
- package/dist/components/DictionaryFieldEditor/ContentEditorView/EditorView.mjs.map +0 -1
- package/dist/index-BKE0uywA.js.map +0 -1
- package/dist/index-CsenS2hX.cjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavigationViewNode.cjs","sources":["../../../../src/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.tsx"],"sourcesContent":["import { getConfiguration } from '@intlayer/config/client';\nimport {\n NodeType,\n type KeyPath,\n type ContentNode,\n isSameKeyPath,\n getContentNodeByKeyPath,\n getNodeType,\n} from '@intlayer/core';\nimport {\n useEditedContentActions,\n useFocusDictionary,\n} from '@intlayer/editor-react';\nimport { ChevronRight, Plus } from 'lucide-react';\nimport { useCallback, type FC } from 'react';\nimport { useDictionary } from 'react-intlayer';\nimport { camelCaseToSentence } from '../../../utils/camelCase';\nimport { Accordion } from '../../Accordion';\nimport { Button } from '../../Button';\nimport { getIsEditableSection } from '../getIsEditableSection';\nimport { navigationViewContent } from './navigationViewNode.content';\n\nexport const traceKeys: string[] = ['filePath', 'id', 'nodeType'];\n\nexport type NodeWrapperProps = {\n dictionaryKey: string;\n keyPath: KeyPath[];\n section: ContentNode;\n};\n\nexport const NavigationViewNode: FC<NodeWrapperProps> = ({\n section: sectionProp,\n keyPath,\n dictionaryKey,\n}) => {\n const { locales } = getConfiguration().internationalization;\n const section = getContentNodeByKeyPath(sectionProp, keyPath);\n const { addEditedContent } = useEditedContentActions();\n const { setFocusedContentKeyPath, focusedContent } = useFocusDictionary();\n const {\n addNewElement,\n goToElement,\n goToField,\n goToEnumeration,\n goToTranslation,\n } = useDictionary(navigationViewContent);\n const nodeType = getNodeType(section);\n const isEditableSection = getIsEditableSection(section);\n const getIsSelected = useCallback(\n (keyPath: KeyPath[]) =>\n (focusedContent?.keyPath?.length ?? 0) > 0 &&\n isSameKeyPath(keyPath, focusedContent?.keyPath ?? []),\n [focusedContent?.keyPath]\n );\n\n if (isEditableSection) return <>-</>;\n\n if (!section) return <>-</>;\n\n if (typeof section === 'object') {\n if (nodeType === NodeType.ReactNode) {\n return <>React Node</>;\n }\n\n if (nodeType === NodeType.Translation) {\n return (\n <div className=\"flex flex-col justify-between gap-2\">\n {locales.map((translationKey) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: NodeType.Translation, key: translationKey },\n ];\n const subSection = getContentNodeByKeyPath(\n sectionProp,\n childKeyPath\n );\n const isEditableSubSection = getIsEditableSection(subSection);\n\n if (isEditableSubSection) {\n return (\n <Button\n label={`${goToTranslation.label} ${translationKey}`}\n key={translationKey}\n isActive={getIsSelected(childKeyPath)}\n variant=\"hoverable\"\n color=\"text\"\n className=\"w-full\"\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n IconRight={ChevronRight}\n >\n {translationKey}\n </Button>\n );\n }\n\n return (\n <Accordion\n key={translationKey}\n label={`${goToTranslation.label} ${translationKey}`}\n isActive={getIsSelected(childKeyPath)}\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n header={translationKey}\n >\n <div className=\"mt-2 flex w-full max-w-full\">\n <div className=\"flex-1 pl-10\">\n <NavigationViewNode\n keyPath={childKeyPath}\n section={sectionProp}\n dictionaryKey={dictionaryKey}\n />\n </div>\n </div>\n </Accordion>\n );\n })}\n </div>\n );\n }\n\n if (nodeType === NodeType.Enumeration || nodeType === NodeType.Condition) {\n return (\n <div className=\"flex flex-col justify-between gap-2\">\n {Object.keys(\n (section as any)[nodeType as unknown as keyof typeof section]\n ).map((key) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: nodeType, key },\n ];\n const subSection = getContentNodeByKeyPath(\n sectionProp,\n childKeyPath\n );\n const isEditableSubSection = getIsEditableSection(subSection);\n\n if (isEditableSubSection) {\n return (\n <Button\n label={`${goToEnumeration.label} ${key}`}\n key={key}\n isActive={getIsSelected(childKeyPath)}\n variant=\"hoverable\"\n color=\"text\"\n className=\"w-full\"\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n IconRight={ChevronRight}\n >\n {key}\n </Button>\n );\n }\n\n return (\n <Accordion\n key={key}\n label={`${goToEnumeration.label} ${key}`}\n isActive={getIsSelected(childKeyPath)}\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n header={key}\n >\n <div className=\"mt-2 flex w-full max-w-full\">\n <div className=\"flex-1 pl-10\">\n <NavigationViewNode\n keyPath={childKeyPath}\n section={sectionProp}\n dictionaryKey={dictionaryKey}\n />\n </div>\n </div>\n </Accordion>\n );\n })}\n </div>\n );\n }\n\n if (nodeType === NodeType.Array) {\n return (\n <div className=\"flex flex-col justify-between gap-2\">\n {(section as unknown as ContentNode[]).map((subSection, index) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: NodeType.Array, key: index },\n ];\n\n const isEditableSubSection = getIsEditableSection(subSection);\n\n if (isEditableSubSection) {\n return (\n <Button\n label={`${goToElement.label} ${index}`}\n key={`${index}`}\n isActive={getIsSelected(childKeyPath)}\n variant=\"hoverable\"\n color=\"text\"\n className=\"w-full\"\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n IconRight={ChevronRight}\n >\n {index}\n </Button>\n );\n }\n\n return (\n <Accordion\n key={`${index}`}\n label={`${goToElement.label} ${index}`}\n isActive={getIsSelected(childKeyPath)}\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n header={index}\n >\n <div className=\"mt-2 flex w-full max-w-full\">\n <div className=\"flex-1 pl-10\">\n <NavigationViewNode\n keyPath={childKeyPath}\n section={sectionProp}\n dictionaryKey={dictionaryKey}\n />\n </div>\n </div>\n </Accordion>\n );\n })}\n\n <Button\n label={addNewElement.label.value}\n variant=\"hoverable\"\n color=\"neutral\"\n textAlign=\"left\"\n onClick={() => {\n const newKeyPath: KeyPath[] = [\n ...keyPath,\n {\n type: NodeType.Array,\n key: (section as unknown as ContentNode[]).length,\n },\n ];\n const sectionArray = section as unknown as ContentNode[];\n const sectionEl =\n sectionArray[\n (sectionArray.length - 1) as keyof typeof sectionArray\n ] ?? '';\n addEditedContent(dictionaryKey, sectionEl, newKeyPath, false);\n setFocusedContentKeyPath(newKeyPath);\n }}\n Icon={Plus}\n >\n {addNewElement.text}\n </Button>\n </div>\n );\n }\n\n const sectionArray = Object.keys(section);\n return (\n <div className=\"flex w-full max-w-full flex-col justify-between gap-2\">\n {sectionArray.map((key) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: NodeType.Object, key },\n ];\n const subSection = getContentNodeByKeyPath(sectionProp, childKeyPath);\n const isEditableSubSection = getIsEditableSection(subSection);\n\n if (isEditableSubSection) {\n return (\n <Button\n label={`${goToField.label} ${key}`}\n key={key}\n isActive={getIsSelected(childKeyPath)}\n variant=\"hoverable\"\n color=\"text\"\n className=\"w-full\"\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n IconRight={ChevronRight}\n >\n {camelCaseToSentence(key)}\n </Button>\n );\n }\n\n return (\n <Accordion\n key={key}\n label={`${goToField.label} ${key}`}\n isActive={getIsSelected(childKeyPath)}\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n header={camelCaseToSentence(key)}\n >\n <div className=\"mt-2 flex w-full max-w-full\">\n <div className=\"flex-1 pl-10\">\n <NavigationViewNode\n keyPath={childKeyPath}\n section={sectionProp}\n dictionaryKey={dictionaryKey}\n />\n </div>\n </div>\n </Accordion>\n );\n })}\n </div>\n );\n }\n\n return (\n <>\n Error loading section --\n {nodeType}\n --\n {JSON.stringify(section)}\n --\n {JSON.stringify(keyPath)}\n </>\n );\n};\n"],"names":["getConfiguration","getContentNodeByKeyPath","useEditedContentActions","useFocusDictionary","useDictionary","navigationViewContent","getNodeType","getIsEditableSection","useCallback","keyPath","isSameKeyPath","jsx","Fragment","NodeType","Button","ChevronRight","Accordion","jsxs","sectionArray","Plus","camelCaseToSentence"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NavigationViewNode.cjs","sources":["../../../../src/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.tsx"],"sourcesContent":["import { getConfiguration } from '@intlayer/config/client';\nimport {\n NodeType,\n type KeyPath,\n type ContentNode,\n isSameKeyPath,\n getContentNodeByKeyPath,\n getNodeType,\n getEmptyNode,\n} from '@intlayer/core';\nimport {\n useEditedContentActions,\n useFocusDictionary,\n} from '@intlayer/editor-react';\nimport { ChevronRight, Plus } from 'lucide-react';\nimport { useCallback, type FC } from 'react';\nimport { useDictionary } from 'react-intlayer';\nimport { camelCaseToSentence } from '../../../utils/camelCase';\nimport { Accordion } from '../../Accordion';\nimport { Button } from '../../Button';\nimport { getIsEditableSection } from '../getIsEditableSection';\nimport { navigationViewContent } from './navigationViewNode.content';\n\nexport const traceKeys: string[] = ['filePath', 'id', 'nodeType'];\n\nexport type NodeWrapperProps = {\n dictionaryKey: string;\n keyPath: KeyPath[];\n section: ContentNode;\n};\n\nexport const NavigationViewNode: FC<NodeWrapperProps> = ({\n section: sectionProp,\n keyPath,\n dictionaryKey,\n}) => {\n const { locales } = getConfiguration().internationalization;\n const section = getContentNodeByKeyPath(sectionProp, keyPath);\n const { addEditedContent } = useEditedContentActions();\n const { setFocusedContentKeyPath, focusedContent } = useFocusDictionary();\n const {\n addNewElement,\n goToElement,\n goToField,\n goToEnumeration,\n goToTranslation,\n } = useDictionary(navigationViewContent);\n const nodeType = getNodeType(section);\n const getIsSelected = useCallback(\n (keyPath: KeyPath[]) =>\n (focusedContent?.keyPath?.length ?? 0) > 0 &&\n isSameKeyPath(keyPath, focusedContent?.keyPath ?? []),\n [focusedContent?.keyPath]\n );\n\n if (!section) return <></>;\n\n if (typeof section === 'object') {\n if (nodeType === NodeType.ReactNode) {\n return <>React Node</>;\n }\n\n if (nodeType === NodeType.Translation) {\n return (\n <div className=\"flex flex-col justify-between gap-2\">\n {locales.map((translationKey) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: NodeType.Translation, key: translationKey },\n ];\n const subSection = getContentNodeByKeyPath(\n sectionProp,\n childKeyPath\n );\n const isEditableSubSection = getIsEditableSection(subSection);\n\n if (isEditableSubSection) {\n return (\n <Button\n label={`${goToTranslation.label.value} ${translationKey}`}\n key={translationKey}\n isActive={getIsSelected(childKeyPath)}\n variant=\"hoverable\"\n color=\"text\"\n className=\"w-full\"\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n IconRight={ChevronRight}\n >\n {translationKey}\n </Button>\n );\n }\n\n return (\n <Accordion\n key={translationKey}\n label={`${goToTranslation.label.value} ${translationKey}`}\n isActive={getIsSelected(childKeyPath)}\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n header={translationKey}\n >\n <div className=\"mt-2 flex w-full max-w-full\">\n <div className=\"flex-1 pl-10\">\n <NavigationViewNode\n keyPath={childKeyPath}\n section={sectionProp}\n dictionaryKey={dictionaryKey}\n />\n </div>\n </div>\n </Accordion>\n );\n })}\n </div>\n );\n }\n\n if (nodeType === NodeType.Enumeration || nodeType === NodeType.Condition) {\n return (\n <div className=\"flex flex-col justify-between gap-2\">\n {Object.keys(\n (section as any)[nodeType as unknown as keyof typeof section]\n ).map((key) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: nodeType, key },\n ];\n const subSection = getContentNodeByKeyPath(\n sectionProp,\n childKeyPath\n );\n const isEditableSubSection = getIsEditableSection(subSection);\n\n if (isEditableSubSection) {\n return (\n <Button\n label={`${goToEnumeration.label.value} ${key}`}\n key={key}\n isActive={getIsSelected(childKeyPath)}\n variant=\"hoverable\"\n color=\"text\"\n className=\"w-full\"\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n IconRight={ChevronRight}\n >\n {key}\n </Button>\n );\n }\n\n return (\n <Accordion\n key={key}\n label={`${goToEnumeration.label.value} ${key}`}\n isActive={getIsSelected(childKeyPath)}\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n header={key}\n >\n <div className=\"mt-2 flex w-full max-w-full\">\n <div className=\"flex-1 pl-10\">\n <NavigationViewNode\n keyPath={childKeyPath}\n section={sectionProp}\n dictionaryKey={dictionaryKey}\n />\n </div>\n </div>\n </Accordion>\n );\n })}\n </div>\n );\n }\n\n if (nodeType === NodeType.Array) {\n return (\n <div className=\"flex flex-col justify-between gap-2\">\n {(section as unknown as ContentNode[]).map((subSection, index) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: NodeType.Array, key: index },\n ];\n\n const isEditableSubSection = getIsEditableSection(subSection);\n\n if (isEditableSubSection) {\n return (\n <Button\n label={`${goToElement.label.value} ${index}`}\n key={`${index}`}\n isActive={getIsSelected(childKeyPath)}\n variant=\"hoverable\"\n color=\"text\"\n className=\"w-full\"\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n IconRight={ChevronRight}\n >\n {index}\n </Button>\n );\n }\n\n return (\n <Accordion\n key={`${index}`}\n label={`${goToElement.label.value} ${index}`}\n isActive={getIsSelected(childKeyPath)}\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n header={index}\n >\n <div className=\"mt-2 flex w-full max-w-full\">\n <div className=\"flex-1 pl-10\">\n <NavigationViewNode\n keyPath={childKeyPath}\n section={sectionProp}\n dictionaryKey={dictionaryKey}\n />\n </div>\n </div>\n </Accordion>\n );\n })}\n\n <Button\n label={addNewElement.label.value}\n variant=\"hoverable\"\n color=\"neutral\"\n textAlign=\"left\"\n onClick={() => {\n const newKeyPath: KeyPath[] = [\n ...keyPath,\n {\n type: NodeType.Array,\n key: (section as unknown as ContentNode[]).length,\n },\n ];\n const sectionArray = section as unknown as ContentNode[];\n const emptySectionEl =\n getEmptyNode(\n sectionArray[\n (sectionArray.length - 1) as keyof typeof sectionArray\n ] as ContentNode\n ) ?? '';\n addEditedContent(\n dictionaryKey,\n emptySectionEl,\n newKeyPath,\n false\n );\n setFocusedContentKeyPath(newKeyPath);\n }}\n Icon={Plus}\n >\n {addNewElement.text}\n </Button>\n </div>\n );\n }\n\n const sectionArray = Object.keys(section);\n return (\n <div className=\"flex w-full max-w-full flex-col justify-between gap-2\">\n {sectionArray.map((key) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: NodeType.Object, key },\n ];\n const subSection = getContentNodeByKeyPath(sectionProp, childKeyPath);\n const isEditableSubSection = getIsEditableSection(subSection);\n\n if (isEditableSubSection) {\n return (\n <Button\n label={`${goToField.label.value} ${key}`}\n key={key}\n isActive={getIsSelected(childKeyPath)}\n variant=\"hoverable\"\n color=\"text\"\n className=\"w-full\"\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n IconRight={ChevronRight}\n >\n {camelCaseToSentence(key)}\n </Button>\n );\n }\n\n return (\n <Accordion\n key={key}\n label={`${goToField.label.value} ${key}`}\n isActive={getIsSelected(childKeyPath)}\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n header={camelCaseToSentence(key)}\n >\n <div className=\"mt-2 flex w-full max-w-full\">\n <div className=\"flex-1 pl-10\">\n <NavigationViewNode\n keyPath={childKeyPath}\n section={sectionProp}\n dictionaryKey={dictionaryKey}\n />\n </div>\n </div>\n </Accordion>\n );\n })}\n </div>\n );\n }\n\n return (\n <>\n Error loading section --\n {nodeType}\n --\n {JSON.stringify(section)}\n --\n {JSON.stringify(keyPath)}\n </>\n );\n};\n"],"names":["getConfiguration","getContentNodeByKeyPath","useEditedContentActions","useFocusDictionary","useDictionary","navigationViewContent","getNodeType","useCallback","keyPath","isSameKeyPath","jsx","Fragment","NodeType","getIsEditableSection","Button","ChevronRight","Accordion","jsxs","sectionArray","getEmptyNode","Plus","camelCaseToSentence"],"mappings":";;;;;;;;;;;;;;AAuBO,MAAM,YAAsB,CAAC,YAAY,MAAM,UAAU;AAQzD,MAAM,qBAA2C,CAAC;AAAA,EACvD,SAAS;AAAA,EACT;AAAA,EACA;AACF,MAAM;AACJ,QAAM,EAAE,QAAA,IAAYA,OAAA,iBAAA,EAAmB;AACjC,QAAA,UAAUC,KAAAA,wBAAwB,aAAa,OAAO;AACtD,QAAA,EAAE,iBAAiB,IAAIC,oCAAwB;AACrD,QAAM,EAAE,0BAA0B,eAAe,IAAIC,+BAAmB;AAClE,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACEC,cAAAA,cAAcC,2EAAAA,qBAAqB;AACjC,QAAA,WAAWC,iBAAY,OAAO;AACpC,QAAM,gBAAgBC,aAAA;AAAA,IACpB,CAACC,cACE,gBAAgB,SAAS,UAAU,KAAK,KACzCC,KAAA,cAAcD,UAAS,gBAAgB,WAAW,CAAA,CAAE;AAAA,IACtD,CAAC,gBAAgB,OAAO;AAAA,EAC1B;AAEI,MAAA,CAAC,QAAS,QAASE,+BAAAC,WAAAA,UAAA,CAAA,CAAA;AAEnB,MAAA,OAAO,YAAY,UAAU;AAC3B,QAAA,aAAaC,cAAS,WAAW;AACnC,mEAAS,UAAU,aAAA,CAAA;AAAA,IAAA;AAGjB,QAAA,aAAaA,cAAS,aAAa;AACrC,4CACG,OAAI,EAAA,WAAU,uCACZ,UAAQ,QAAA,IAAI,CAAC,mBAAmB;AAC/B,cAAM,eAA0B;AAAA,UAC9B,GAAG;AAAA,UACH,EAAE,MAAMA,KAAAA,SAAS,aAAa,KAAK,eAAe;AAAA,QACpD;AACA,cAAM,aAAaX,KAAA;AAAA,UACjB;AAAA,UACA;AAAA,QACF;AACM,cAAA,uBAAuBY,2EAAqB,UAAU;AAE5D,YAAI,sBAAsB;AAEtB,iBAAAH,2BAAA;AAAA,YAACI,yBAAA;AAAA,YAAA;AAAA,cACC,OAAO,GAAG,gBAAgB,MAAM,KAAK,IAAI,cAAc;AAAA,cAEvD,UAAU,cAAc,YAAY;AAAA,cACpC,SAAQ;AAAA,cACR,OAAM;AAAA,cACN,WAAU;AAAA,cACV,SAAS,MAAM,yBAAyB,YAAY;AAAA,cACpD,WAAWC,YAAA;AAAA,cAEV,UAAA;AAAA,YAAA;AAAA,YARI;AAAA,UASP;AAAA,QAAA;AAKF,eAAAL,2BAAA;AAAA,UAACM,+BAAA;AAAA,UAAA;AAAA,YAEC,OAAO,GAAG,gBAAgB,MAAM,KAAK,IAAI,cAAc;AAAA,YACvD,UAAU,cAAc,YAAY;AAAA,YACpC,SAAS,MAAM,yBAAyB,YAAY;AAAA,YACpD,QAAQ;AAAA,YAER,yCAAC,OAAI,EAAA,WAAU,+BACb,UAACN,2BAAA,IAAA,OAAA,EAAI,WAAU,gBACb,UAAAA,2BAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,SAAS;AAAA,gBACT,SAAS;AAAA,gBACT;AAAA,cAAA;AAAA,eAEJ,EACF,CAAA;AAAA,UAAA;AAAA,UAdK;AAAA,QAeP;AAAA,MAEH,CAAA,GACH;AAAA,IAAA;AAIJ,QAAI,aAAaE,KAAAA,SAAS,eAAe,aAAaA,KAAAA,SAAS,WAAW;AACxE,aACGF,2BAAAA,IAAA,OAAA,EAAI,WAAU,uCACZ,UAAO,OAAA;AAAA,QACL,QAAgB,QAA2C;AAAA,MAAA,EAC5D,IAAI,CAAC,QAAQ;AACb,cAAM,eAA0B;AAAA,UAC9B,GAAG;AAAA,UACH,EAAE,MAAM,UAAU,IAAI;AAAA,QACxB;AACA,cAAM,aAAaT,KAAA;AAAA,UACjB;AAAA,UACA;AAAA,QACF;AACM,cAAA,uBAAuBY,2EAAqB,UAAU;AAE5D,YAAI,sBAAsB;AAEtB,iBAAAH,2BAAA;AAAA,YAACI,yBAAA;AAAA,YAAA;AAAA,cACC,OAAO,GAAG,gBAAgB,MAAM,KAAK,IAAI,GAAG;AAAA,cAE5C,UAAU,cAAc,YAAY;AAAA,cACpC,SAAQ;AAAA,cACR,OAAM;AAAA,cACN,WAAU;AAAA,cACV,SAAS,MAAM,yBAAyB,YAAY;AAAA,cACpD,WAAWC,YAAA;AAAA,cAEV,UAAA;AAAA,YAAA;AAAA,YARI;AAAA,UASP;AAAA,QAAA;AAKF,eAAAL,2BAAA;AAAA,UAACM,+BAAA;AAAA,UAAA;AAAA,YAEC,OAAO,GAAG,gBAAgB,MAAM,KAAK,IAAI,GAAG;AAAA,YAC5C,UAAU,cAAc,YAAY;AAAA,YACpC,SAAS,MAAM,yBAAyB,YAAY;AAAA,YACpD,QAAQ;AAAA,YAER,yCAAC,OAAI,EAAA,WAAU,+BACb,UAACN,2BAAA,IAAA,OAAA,EAAI,WAAU,gBACb,UAAAA,2BAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,SAAS;AAAA,gBACT,SAAS;AAAA,gBACT;AAAA,cAAA;AAAA,eAEJ,EACF,CAAA;AAAA,UAAA;AAAA,UAdK;AAAA,QAeP;AAAA,MAEH,CAAA,GACH;AAAA,IAAA;AAIA,QAAA,aAAaE,cAAS,OAAO;AAE7B,aAAAK,2BAAA,KAAC,OAAI,EAAA,WAAU,uCACX,UAAA;AAAA,QAAqC,QAAA,IAAI,CAAC,YAAY,UAAU;AAChE,gBAAM,eAA0B;AAAA,YAC9B,GAAG;AAAA,YACH,EAAE,MAAML,KAAAA,SAAS,OAAO,KAAK,MAAM;AAAA,UACrC;AAEM,gBAAA,uBAAuBC,2EAAqB,UAAU;AAE5D,cAAI,sBAAsB;AAEtB,mBAAAH,2BAAA;AAAA,cAACI,yBAAA;AAAA,cAAA;AAAA,gBACC,OAAO,GAAG,YAAY,MAAM,KAAK,IAAI,KAAK;AAAA,gBAE1C,UAAU,cAAc,YAAY;AAAA,gBACpC,SAAQ;AAAA,gBACR,OAAM;AAAA,gBACN,WAAU;AAAA,gBACV,SAAS,MAAM,yBAAyB,YAAY;AAAA,gBACpD,WAAWC,YAAA;AAAA,gBAEV,UAAA;AAAA,cAAA;AAAA,cARI,GAAG,KAAK;AAAA,YASf;AAAA,UAAA;AAKF,iBAAAL,2BAAA;AAAA,YAACM,+BAAA;AAAA,YAAA;AAAA,cAEC,OAAO,GAAG,YAAY,MAAM,KAAK,IAAI,KAAK;AAAA,cAC1C,UAAU,cAAc,YAAY;AAAA,cACpC,SAAS,MAAM,yBAAyB,YAAY;AAAA,cACpD,QAAQ;AAAA,cAER,yCAAC,OAAI,EAAA,WAAU,+BACb,UAACN,2BAAA,IAAA,OAAA,EAAI,WAAU,gBACb,UAAAA,2BAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,SAAS;AAAA,kBACT,SAAS;AAAA,kBACT;AAAA,gBAAA;AAAA,iBAEJ,EACF,CAAA;AAAA,YAAA;AAAA,YAdK,GAAG,KAAK;AAAA,UAef;AAAA,QAAA,CAEH;AAAA,QAEDA,2BAAA;AAAA,UAACI,yBAAA;AAAA,UAAA;AAAA,YACC,OAAO,cAAc,MAAM;AAAA,YAC3B,SAAQ;AAAA,YACR,OAAM;AAAA,YACN,WAAU;AAAA,YACV,SAAS,MAAM;AACb,oBAAM,aAAwB;AAAA,gBAC5B,GAAG;AAAA,gBACH;AAAA,kBACE,MAAMF,KAAS,SAAA;AAAA,kBACf,KAAM,QAAqC;AAAA,gBAAA;AAAA,cAE/C;AACA,oBAAMM,gBAAe;AACrB,oBAAM,iBACJC,KAAA;AAAA,gBACED,cACGA,cAAa,SAAS,CACzB;AAAA,cAAA,KACG;AACP;AAAA,gBACE;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,cACF;AACA,uCAAyB,UAAU;AAAA,YACrC;AAAA,YACA,MAAME,YAAA;AAAA,YAEL,UAAc,cAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACjB,GACF;AAAA,IAAA;AAIE,UAAA,eAAe,OAAO,KAAK,OAAO;AACxC,0CACG,OAAI,EAAA,WAAU,yDACZ,UAAa,aAAA,IAAI,CAAC,QAAQ;AACzB,YAAM,eAA0B;AAAA,QAC9B,GAAG;AAAA,QACH,EAAE,MAAMR,cAAS,QAAQ,IAAI;AAAA,MAC/B;AACM,YAAA,aAAaX,KAAAA,wBAAwB,aAAa,YAAY;AAC9D,YAAA,uBAAuBY,2EAAqB,UAAU;AAE5D,UAAI,sBAAsB;AAEtB,eAAAH,2BAAA;AAAA,UAACI,yBAAA;AAAA,UAAA;AAAA,YACC,OAAO,GAAG,UAAU,MAAM,KAAK,IAAI,GAAG;AAAA,YAEtC,UAAU,cAAc,YAAY;AAAA,YACpC,SAAQ;AAAA,YACR,OAAM;AAAA,YACN,WAAU;AAAA,YACV,SAAS,MAAM,yBAAyB,YAAY;AAAA,YACpD,WAAWC,YAAA;AAAA,YAEV,8CAAoB,GAAG;AAAA,UAAA;AAAA,UARnB;AAAA,QASP;AAAA,MAAA;AAKF,aAAAL,2BAAA;AAAA,QAACM,+BAAA;AAAA,QAAA;AAAA,UAEC,OAAO,GAAG,UAAU,MAAM,KAAK,IAAI,GAAG;AAAA,UACtC,UAAU,cAAc,YAAY;AAAA,UACpC,SAAS,MAAM,yBAAyB,YAAY;AAAA,UACpD,QAAQK,oCAAoB,GAAG;AAAA,UAE/B,yCAAC,OAAI,EAAA,WAAU,+BACb,UAACX,2BAAA,IAAA,OAAA,EAAI,WAAU,gBACb,UAAAA,2BAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,SAAS;AAAA,cACT,SAAS;AAAA,cACT;AAAA,YAAA;AAAA,aAEJ,EACF,CAAA;AAAA,QAAA;AAAA,QAdK;AAAA,MAeP;AAAA,IAEH,CAAA,GACH;AAAA,EAAA;AAIJ,SACIO,2BAAA,KAAAN,qBAAA,EAAA,UAAA;AAAA,IAAA;AAAA,IAEC;AAAA,IAAS;AAAA,IAET,KAAK,UAAU,OAAO;AAAA,IAAE;AAAA,IAExB,KAAK,UAAU,OAAO;AAAA,EAAA,GACzB;AAEJ;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavigationViewNode.d.ts","sourceRoot":"","sources":["../../../../src/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,WAAW,
|
|
1
|
+
{"version":3,"file":"NavigationViewNode.d.ts","sourceRoot":"","sources":["../../../../src/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,WAAW,EAKjB,MAAM,gBAAgB,CAAC;AAMxB,OAAO,EAAe,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAQ7C,eAAO,MAAM,SAAS,EAAE,MAAM,EAAmC,CAAC;AAElE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,gBAAgB,CAkSnD,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx, Fragment, jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { getConfiguration } from "@intlayer/config/client";
|
|
3
|
-
import { getContentNodeByKeyPath, getNodeType, isSameKeyPath, NodeType } from "@intlayer/core";
|
|
3
|
+
import { getContentNodeByKeyPath, getNodeType, isSameKeyPath, NodeType, getEmptyNode } from "@intlayer/core";
|
|
4
4
|
import { useEditedContentActions, useFocusDictionary } from "@intlayer/editor-react";
|
|
5
5
|
import { ChevronRight, Plus } from "lucide-react";
|
|
6
6
|
import { useCallback } from "react";
|
|
@@ -28,13 +28,11 @@ const NavigationViewNode = ({
|
|
|
28
28
|
goToTranslation
|
|
29
29
|
} = useDictionary(navigationViewContent);
|
|
30
30
|
const nodeType = getNodeType(section);
|
|
31
|
-
const isEditableSection = getIsEditableSection(section);
|
|
32
31
|
const getIsSelected = useCallback(
|
|
33
32
|
(keyPath2) => (focusedContent?.keyPath?.length ?? 0) > 0 && isSameKeyPath(keyPath2, focusedContent?.keyPath ?? []),
|
|
34
33
|
[focusedContent?.keyPath]
|
|
35
34
|
);
|
|
36
|
-
if (
|
|
37
|
-
if (!section) return /* @__PURE__ */ jsx(Fragment, { children: "-" });
|
|
35
|
+
if (!section) return /* @__PURE__ */ jsx(Fragment, {});
|
|
38
36
|
if (typeof section === "object") {
|
|
39
37
|
if (nodeType === NodeType.ReactNode) {
|
|
40
38
|
return /* @__PURE__ */ jsx(Fragment, { children: "React Node" });
|
|
@@ -54,7 +52,7 @@ const NavigationViewNode = ({
|
|
|
54
52
|
return /* @__PURE__ */ jsx(
|
|
55
53
|
Button,
|
|
56
54
|
{
|
|
57
|
-
label: `${goToTranslation.label} ${translationKey}`,
|
|
55
|
+
label: `${goToTranslation.label.value} ${translationKey}`,
|
|
58
56
|
isActive: getIsSelected(childKeyPath),
|
|
59
57
|
variant: "hoverable",
|
|
60
58
|
color: "text",
|
|
@@ -69,7 +67,7 @@ const NavigationViewNode = ({
|
|
|
69
67
|
return /* @__PURE__ */ jsx(
|
|
70
68
|
Accordion,
|
|
71
69
|
{
|
|
72
|
-
label: `${goToTranslation.label} ${translationKey}`,
|
|
70
|
+
label: `${goToTranslation.label.value} ${translationKey}`,
|
|
73
71
|
isActive: getIsSelected(childKeyPath),
|
|
74
72
|
onClick: () => setFocusedContentKeyPath(childKeyPath),
|
|
75
73
|
header: translationKey,
|
|
@@ -103,7 +101,7 @@ const NavigationViewNode = ({
|
|
|
103
101
|
return /* @__PURE__ */ jsx(
|
|
104
102
|
Button,
|
|
105
103
|
{
|
|
106
|
-
label: `${goToEnumeration.label} ${key}`,
|
|
104
|
+
label: `${goToEnumeration.label.value} ${key}`,
|
|
107
105
|
isActive: getIsSelected(childKeyPath),
|
|
108
106
|
variant: "hoverable",
|
|
109
107
|
color: "text",
|
|
@@ -118,7 +116,7 @@ const NavigationViewNode = ({
|
|
|
118
116
|
return /* @__PURE__ */ jsx(
|
|
119
117
|
Accordion,
|
|
120
118
|
{
|
|
121
|
-
label: `${goToEnumeration.label} ${key}`,
|
|
119
|
+
label: `${goToEnumeration.label.value} ${key}`,
|
|
122
120
|
isActive: getIsSelected(childKeyPath),
|
|
123
121
|
onClick: () => setFocusedContentKeyPath(childKeyPath),
|
|
124
122
|
header: key,
|
|
@@ -147,7 +145,7 @@ const NavigationViewNode = ({
|
|
|
147
145
|
return /* @__PURE__ */ jsx(
|
|
148
146
|
Button,
|
|
149
147
|
{
|
|
150
|
-
label: `${goToElement.label} ${index}`,
|
|
148
|
+
label: `${goToElement.label.value} ${index}`,
|
|
151
149
|
isActive: getIsSelected(childKeyPath),
|
|
152
150
|
variant: "hoverable",
|
|
153
151
|
color: "text",
|
|
@@ -162,7 +160,7 @@ const NavigationViewNode = ({
|
|
|
162
160
|
return /* @__PURE__ */ jsx(
|
|
163
161
|
Accordion,
|
|
164
162
|
{
|
|
165
|
-
label: `${goToElement.label} ${index}`,
|
|
163
|
+
label: `${goToElement.label.value} ${index}`,
|
|
166
164
|
isActive: getIsSelected(childKeyPath),
|
|
167
165
|
onClick: () => setFocusedContentKeyPath(childKeyPath),
|
|
168
166
|
header: index,
|
|
@@ -194,8 +192,15 @@ const NavigationViewNode = ({
|
|
|
194
192
|
}
|
|
195
193
|
];
|
|
196
194
|
const sectionArray2 = section;
|
|
197
|
-
const
|
|
198
|
-
|
|
195
|
+
const emptySectionEl = getEmptyNode(
|
|
196
|
+
sectionArray2[sectionArray2.length - 1]
|
|
197
|
+
) ?? "";
|
|
198
|
+
addEditedContent(
|
|
199
|
+
dictionaryKey,
|
|
200
|
+
emptySectionEl,
|
|
201
|
+
newKeyPath,
|
|
202
|
+
false
|
|
203
|
+
);
|
|
199
204
|
setFocusedContentKeyPath(newKeyPath);
|
|
200
205
|
},
|
|
201
206
|
Icon: Plus,
|
|
@@ -216,7 +221,7 @@ const NavigationViewNode = ({
|
|
|
216
221
|
return /* @__PURE__ */ jsx(
|
|
217
222
|
Button,
|
|
218
223
|
{
|
|
219
|
-
label: `${goToField.label} ${key}`,
|
|
224
|
+
label: `${goToField.label.value} ${key}`,
|
|
220
225
|
isActive: getIsSelected(childKeyPath),
|
|
221
226
|
variant: "hoverable",
|
|
222
227
|
color: "text",
|
|
@@ -231,7 +236,7 @@ const NavigationViewNode = ({
|
|
|
231
236
|
return /* @__PURE__ */ jsx(
|
|
232
237
|
Accordion,
|
|
233
238
|
{
|
|
234
|
-
label: `${goToField.label} ${key}`,
|
|
239
|
+
label: `${goToField.label.value} ${key}`,
|
|
235
240
|
isActive: getIsSelected(childKeyPath),
|
|
236
241
|
onClick: () => setFocusedContentKeyPath(childKeyPath),
|
|
237
242
|
header: camelCaseToSentence(key),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavigationViewNode.mjs","sources":["../../../../src/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.tsx"],"sourcesContent":["import { getConfiguration } from '@intlayer/config/client';\nimport {\n NodeType,\n type KeyPath,\n type ContentNode,\n isSameKeyPath,\n getContentNodeByKeyPath,\n getNodeType,\n} from '@intlayer/core';\nimport {\n useEditedContentActions,\n useFocusDictionary,\n} from '@intlayer/editor-react';\nimport { ChevronRight, Plus } from 'lucide-react';\nimport { useCallback, type FC } from 'react';\nimport { useDictionary } from 'react-intlayer';\nimport { camelCaseToSentence } from '../../../utils/camelCase';\nimport { Accordion } from '../../Accordion';\nimport { Button } from '../../Button';\nimport { getIsEditableSection } from '../getIsEditableSection';\nimport { navigationViewContent } from './navigationViewNode.content';\n\nexport const traceKeys: string[] = ['filePath', 'id', 'nodeType'];\n\nexport type NodeWrapperProps = {\n dictionaryKey: string;\n keyPath: KeyPath[];\n section: ContentNode;\n};\n\nexport const NavigationViewNode: FC<NodeWrapperProps> = ({\n section: sectionProp,\n keyPath,\n dictionaryKey,\n}) => {\n const { locales } = getConfiguration().internationalization;\n const section = getContentNodeByKeyPath(sectionProp, keyPath);\n const { addEditedContent } = useEditedContentActions();\n const { setFocusedContentKeyPath, focusedContent } = useFocusDictionary();\n const {\n addNewElement,\n goToElement,\n goToField,\n goToEnumeration,\n goToTranslation,\n } = useDictionary(navigationViewContent);\n const nodeType = getNodeType(section);\n const isEditableSection = getIsEditableSection(section);\n const getIsSelected = useCallback(\n (keyPath: KeyPath[]) =>\n (focusedContent?.keyPath?.length ?? 0) > 0 &&\n isSameKeyPath(keyPath, focusedContent?.keyPath ?? []),\n [focusedContent?.keyPath]\n );\n\n if (isEditableSection) return <>-</>;\n\n if (!section) return <>-</>;\n\n if (typeof section === 'object') {\n if (nodeType === NodeType.ReactNode) {\n return <>React Node</>;\n }\n\n if (nodeType === NodeType.Translation) {\n return (\n <div className=\"flex flex-col justify-between gap-2\">\n {locales.map((translationKey) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: NodeType.Translation, key: translationKey },\n ];\n const subSection = getContentNodeByKeyPath(\n sectionProp,\n childKeyPath\n );\n const isEditableSubSection = getIsEditableSection(subSection);\n\n if (isEditableSubSection) {\n return (\n <Button\n label={`${goToTranslation.label} ${translationKey}`}\n key={translationKey}\n isActive={getIsSelected(childKeyPath)}\n variant=\"hoverable\"\n color=\"text\"\n className=\"w-full\"\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n IconRight={ChevronRight}\n >\n {translationKey}\n </Button>\n );\n }\n\n return (\n <Accordion\n key={translationKey}\n label={`${goToTranslation.label} ${translationKey}`}\n isActive={getIsSelected(childKeyPath)}\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n header={translationKey}\n >\n <div className=\"mt-2 flex w-full max-w-full\">\n <div className=\"flex-1 pl-10\">\n <NavigationViewNode\n keyPath={childKeyPath}\n section={sectionProp}\n dictionaryKey={dictionaryKey}\n />\n </div>\n </div>\n </Accordion>\n );\n })}\n </div>\n );\n }\n\n if (nodeType === NodeType.Enumeration || nodeType === NodeType.Condition) {\n return (\n <div className=\"flex flex-col justify-between gap-2\">\n {Object.keys(\n (section as any)[nodeType as unknown as keyof typeof section]\n ).map((key) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: nodeType, key },\n ];\n const subSection = getContentNodeByKeyPath(\n sectionProp,\n childKeyPath\n );\n const isEditableSubSection = getIsEditableSection(subSection);\n\n if (isEditableSubSection) {\n return (\n <Button\n label={`${goToEnumeration.label} ${key}`}\n key={key}\n isActive={getIsSelected(childKeyPath)}\n variant=\"hoverable\"\n color=\"text\"\n className=\"w-full\"\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n IconRight={ChevronRight}\n >\n {key}\n </Button>\n );\n }\n\n return (\n <Accordion\n key={key}\n label={`${goToEnumeration.label} ${key}`}\n isActive={getIsSelected(childKeyPath)}\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n header={key}\n >\n <div className=\"mt-2 flex w-full max-w-full\">\n <div className=\"flex-1 pl-10\">\n <NavigationViewNode\n keyPath={childKeyPath}\n section={sectionProp}\n dictionaryKey={dictionaryKey}\n />\n </div>\n </div>\n </Accordion>\n );\n })}\n </div>\n );\n }\n\n if (nodeType === NodeType.Array) {\n return (\n <div className=\"flex flex-col justify-between gap-2\">\n {(section as unknown as ContentNode[]).map((subSection, index) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: NodeType.Array, key: index },\n ];\n\n const isEditableSubSection = getIsEditableSection(subSection);\n\n if (isEditableSubSection) {\n return (\n <Button\n label={`${goToElement.label} ${index}`}\n key={`${index}`}\n isActive={getIsSelected(childKeyPath)}\n variant=\"hoverable\"\n color=\"text\"\n className=\"w-full\"\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n IconRight={ChevronRight}\n >\n {index}\n </Button>\n );\n }\n\n return (\n <Accordion\n key={`${index}`}\n label={`${goToElement.label} ${index}`}\n isActive={getIsSelected(childKeyPath)}\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n header={index}\n >\n <div className=\"mt-2 flex w-full max-w-full\">\n <div className=\"flex-1 pl-10\">\n <NavigationViewNode\n keyPath={childKeyPath}\n section={sectionProp}\n dictionaryKey={dictionaryKey}\n />\n </div>\n </div>\n </Accordion>\n );\n })}\n\n <Button\n label={addNewElement.label.value}\n variant=\"hoverable\"\n color=\"neutral\"\n textAlign=\"left\"\n onClick={() => {\n const newKeyPath: KeyPath[] = [\n ...keyPath,\n {\n type: NodeType.Array,\n key: (section as unknown as ContentNode[]).length,\n },\n ];\n const sectionArray = section as unknown as ContentNode[];\n const sectionEl =\n sectionArray[\n (sectionArray.length - 1) as keyof typeof sectionArray\n ] ?? '';\n addEditedContent(dictionaryKey, sectionEl, newKeyPath, false);\n setFocusedContentKeyPath(newKeyPath);\n }}\n Icon={Plus}\n >\n {addNewElement.text}\n </Button>\n </div>\n );\n }\n\n const sectionArray = Object.keys(section);\n return (\n <div className=\"flex w-full max-w-full flex-col justify-between gap-2\">\n {sectionArray.map((key) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: NodeType.Object, key },\n ];\n const subSection = getContentNodeByKeyPath(sectionProp, childKeyPath);\n const isEditableSubSection = getIsEditableSection(subSection);\n\n if (isEditableSubSection) {\n return (\n <Button\n label={`${goToField.label} ${key}`}\n key={key}\n isActive={getIsSelected(childKeyPath)}\n variant=\"hoverable\"\n color=\"text\"\n className=\"w-full\"\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n IconRight={ChevronRight}\n >\n {camelCaseToSentence(key)}\n </Button>\n );\n }\n\n return (\n <Accordion\n key={key}\n label={`${goToField.label} ${key}`}\n isActive={getIsSelected(childKeyPath)}\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n header={camelCaseToSentence(key)}\n >\n <div className=\"mt-2 flex w-full max-w-full\">\n <div className=\"flex-1 pl-10\">\n <NavigationViewNode\n keyPath={childKeyPath}\n section={sectionProp}\n dictionaryKey={dictionaryKey}\n />\n </div>\n </div>\n </Accordion>\n );\n })}\n </div>\n );\n }\n\n return (\n <>\n Error loading section --\n {nodeType}\n --\n {JSON.stringify(section)}\n --\n {JSON.stringify(keyPath)}\n </>\n );\n};\n"],"names":["keyPath","sectionArray"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NavigationViewNode.mjs","sources":["../../../../src/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.tsx"],"sourcesContent":["import { getConfiguration } from '@intlayer/config/client';\nimport {\n NodeType,\n type KeyPath,\n type ContentNode,\n isSameKeyPath,\n getContentNodeByKeyPath,\n getNodeType,\n getEmptyNode,\n} from '@intlayer/core';\nimport {\n useEditedContentActions,\n useFocusDictionary,\n} from '@intlayer/editor-react';\nimport { ChevronRight, Plus } from 'lucide-react';\nimport { useCallback, type FC } from 'react';\nimport { useDictionary } from 'react-intlayer';\nimport { camelCaseToSentence } from '../../../utils/camelCase';\nimport { Accordion } from '../../Accordion';\nimport { Button } from '../../Button';\nimport { getIsEditableSection } from '../getIsEditableSection';\nimport { navigationViewContent } from './navigationViewNode.content';\n\nexport const traceKeys: string[] = ['filePath', 'id', 'nodeType'];\n\nexport type NodeWrapperProps = {\n dictionaryKey: string;\n keyPath: KeyPath[];\n section: ContentNode;\n};\n\nexport const NavigationViewNode: FC<NodeWrapperProps> = ({\n section: sectionProp,\n keyPath,\n dictionaryKey,\n}) => {\n const { locales } = getConfiguration().internationalization;\n const section = getContentNodeByKeyPath(sectionProp, keyPath);\n const { addEditedContent } = useEditedContentActions();\n const { setFocusedContentKeyPath, focusedContent } = useFocusDictionary();\n const {\n addNewElement,\n goToElement,\n goToField,\n goToEnumeration,\n goToTranslation,\n } = useDictionary(navigationViewContent);\n const nodeType = getNodeType(section);\n const getIsSelected = useCallback(\n (keyPath: KeyPath[]) =>\n (focusedContent?.keyPath?.length ?? 0) > 0 &&\n isSameKeyPath(keyPath, focusedContent?.keyPath ?? []),\n [focusedContent?.keyPath]\n );\n\n if (!section) return <></>;\n\n if (typeof section === 'object') {\n if (nodeType === NodeType.ReactNode) {\n return <>React Node</>;\n }\n\n if (nodeType === NodeType.Translation) {\n return (\n <div className=\"flex flex-col justify-between gap-2\">\n {locales.map((translationKey) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: NodeType.Translation, key: translationKey },\n ];\n const subSection = getContentNodeByKeyPath(\n sectionProp,\n childKeyPath\n );\n const isEditableSubSection = getIsEditableSection(subSection);\n\n if (isEditableSubSection) {\n return (\n <Button\n label={`${goToTranslation.label.value} ${translationKey}`}\n key={translationKey}\n isActive={getIsSelected(childKeyPath)}\n variant=\"hoverable\"\n color=\"text\"\n className=\"w-full\"\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n IconRight={ChevronRight}\n >\n {translationKey}\n </Button>\n );\n }\n\n return (\n <Accordion\n key={translationKey}\n label={`${goToTranslation.label.value} ${translationKey}`}\n isActive={getIsSelected(childKeyPath)}\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n header={translationKey}\n >\n <div className=\"mt-2 flex w-full max-w-full\">\n <div className=\"flex-1 pl-10\">\n <NavigationViewNode\n keyPath={childKeyPath}\n section={sectionProp}\n dictionaryKey={dictionaryKey}\n />\n </div>\n </div>\n </Accordion>\n );\n })}\n </div>\n );\n }\n\n if (nodeType === NodeType.Enumeration || nodeType === NodeType.Condition) {\n return (\n <div className=\"flex flex-col justify-between gap-2\">\n {Object.keys(\n (section as any)[nodeType as unknown as keyof typeof section]\n ).map((key) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: nodeType, key },\n ];\n const subSection = getContentNodeByKeyPath(\n sectionProp,\n childKeyPath\n );\n const isEditableSubSection = getIsEditableSection(subSection);\n\n if (isEditableSubSection) {\n return (\n <Button\n label={`${goToEnumeration.label.value} ${key}`}\n key={key}\n isActive={getIsSelected(childKeyPath)}\n variant=\"hoverable\"\n color=\"text\"\n className=\"w-full\"\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n IconRight={ChevronRight}\n >\n {key}\n </Button>\n );\n }\n\n return (\n <Accordion\n key={key}\n label={`${goToEnumeration.label.value} ${key}`}\n isActive={getIsSelected(childKeyPath)}\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n header={key}\n >\n <div className=\"mt-2 flex w-full max-w-full\">\n <div className=\"flex-1 pl-10\">\n <NavigationViewNode\n keyPath={childKeyPath}\n section={sectionProp}\n dictionaryKey={dictionaryKey}\n />\n </div>\n </div>\n </Accordion>\n );\n })}\n </div>\n );\n }\n\n if (nodeType === NodeType.Array) {\n return (\n <div className=\"flex flex-col justify-between gap-2\">\n {(section as unknown as ContentNode[]).map((subSection, index) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: NodeType.Array, key: index },\n ];\n\n const isEditableSubSection = getIsEditableSection(subSection);\n\n if (isEditableSubSection) {\n return (\n <Button\n label={`${goToElement.label.value} ${index}`}\n key={`${index}`}\n isActive={getIsSelected(childKeyPath)}\n variant=\"hoverable\"\n color=\"text\"\n className=\"w-full\"\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n IconRight={ChevronRight}\n >\n {index}\n </Button>\n );\n }\n\n return (\n <Accordion\n key={`${index}`}\n label={`${goToElement.label.value} ${index}`}\n isActive={getIsSelected(childKeyPath)}\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n header={index}\n >\n <div className=\"mt-2 flex w-full max-w-full\">\n <div className=\"flex-1 pl-10\">\n <NavigationViewNode\n keyPath={childKeyPath}\n section={sectionProp}\n dictionaryKey={dictionaryKey}\n />\n </div>\n </div>\n </Accordion>\n );\n })}\n\n <Button\n label={addNewElement.label.value}\n variant=\"hoverable\"\n color=\"neutral\"\n textAlign=\"left\"\n onClick={() => {\n const newKeyPath: KeyPath[] = [\n ...keyPath,\n {\n type: NodeType.Array,\n key: (section as unknown as ContentNode[]).length,\n },\n ];\n const sectionArray = section as unknown as ContentNode[];\n const emptySectionEl =\n getEmptyNode(\n sectionArray[\n (sectionArray.length - 1) as keyof typeof sectionArray\n ] as ContentNode\n ) ?? '';\n addEditedContent(\n dictionaryKey,\n emptySectionEl,\n newKeyPath,\n false\n );\n setFocusedContentKeyPath(newKeyPath);\n }}\n Icon={Plus}\n >\n {addNewElement.text}\n </Button>\n </div>\n );\n }\n\n const sectionArray = Object.keys(section);\n return (\n <div className=\"flex w-full max-w-full flex-col justify-between gap-2\">\n {sectionArray.map((key) => {\n const childKeyPath: KeyPath[] = [\n ...keyPath,\n { type: NodeType.Object, key },\n ];\n const subSection = getContentNodeByKeyPath(sectionProp, childKeyPath);\n const isEditableSubSection = getIsEditableSection(subSection);\n\n if (isEditableSubSection) {\n return (\n <Button\n label={`${goToField.label.value} ${key}`}\n key={key}\n isActive={getIsSelected(childKeyPath)}\n variant=\"hoverable\"\n color=\"text\"\n className=\"w-full\"\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n IconRight={ChevronRight}\n >\n {camelCaseToSentence(key)}\n </Button>\n );\n }\n\n return (\n <Accordion\n key={key}\n label={`${goToField.label.value} ${key}`}\n isActive={getIsSelected(childKeyPath)}\n onClick={() => setFocusedContentKeyPath(childKeyPath)}\n header={camelCaseToSentence(key)}\n >\n <div className=\"mt-2 flex w-full max-w-full\">\n <div className=\"flex-1 pl-10\">\n <NavigationViewNode\n keyPath={childKeyPath}\n section={sectionProp}\n dictionaryKey={dictionaryKey}\n />\n </div>\n </div>\n </Accordion>\n );\n })}\n </div>\n );\n }\n\n return (\n <>\n Error loading section --\n {nodeType}\n --\n {JSON.stringify(section)}\n --\n {JSON.stringify(keyPath)}\n </>\n );\n};\n"],"names":["keyPath","sectionArray"],"mappings":"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"}
|
|
@@ -85,6 +85,38 @@ const navigationViewContent = {
|
|
|
85
85
|
ru: "Добавить новый элемент"
|
|
86
86
|
})
|
|
87
87
|
},
|
|
88
|
+
removeElement: {
|
|
89
|
+
label: intlayer.t({
|
|
90
|
+
en: "Click to remove element",
|
|
91
|
+
"en-GB": "Click to remove element",
|
|
92
|
+
fr: "Cliquez pour supprimer un élément",
|
|
93
|
+
es: "Haga clic para eliminar un elemento",
|
|
94
|
+
de: "Klicken Sie, um ein Element zu entfernen",
|
|
95
|
+
ja: "要素を削除するにはクリック",
|
|
96
|
+
ko: "요소를 제거하려면 클릭하세요",
|
|
97
|
+
zh: "点击删除元素",
|
|
98
|
+
it: "Clicca per rimuovere un elemento",
|
|
99
|
+
pt: "Clique para remover um elemento",
|
|
100
|
+
hi: "तत्व निकालने के लिए क्लिक करें",
|
|
101
|
+
ar: "انقر لإزالة عنصر",
|
|
102
|
+
ru: "Нажмите, чтобы удалить элемент"
|
|
103
|
+
}),
|
|
104
|
+
text: intlayer.t({
|
|
105
|
+
en: "Remove element",
|
|
106
|
+
"en-GB": "Remove element",
|
|
107
|
+
fr: "Supprimer l’élément",
|
|
108
|
+
es: "Eliminar elemento",
|
|
109
|
+
de: "Element entfernen",
|
|
110
|
+
ja: "要素を削除",
|
|
111
|
+
ko: "요소 제거",
|
|
112
|
+
zh: "删除元素",
|
|
113
|
+
it: "Rimuovi elemento",
|
|
114
|
+
pt: "Remover elemento",
|
|
115
|
+
hi: "तत्व निकालें",
|
|
116
|
+
ar: "إزالة عنصر",
|
|
117
|
+
ru: "Удалить элемент"
|
|
118
|
+
})
|
|
119
|
+
},
|
|
88
120
|
goToTranslation: {
|
|
89
121
|
label: intlayer.t({
|
|
90
122
|
en: "Go to translation",
|
|
@@ -151,6 +183,38 @@ const navigationViewContent = {
|
|
|
151
183
|
ru: "Добавить новое перечисление"
|
|
152
184
|
})
|
|
153
185
|
},
|
|
186
|
+
removeEnumeration: {
|
|
187
|
+
label: intlayer.t({
|
|
188
|
+
en: "Click to remove enumeration",
|
|
189
|
+
"en-GB": "Click to remove enumeration",
|
|
190
|
+
fr: "Cliquez pour supprimer une énumération",
|
|
191
|
+
es: "Haga clic para eliminar una enumeración",
|
|
192
|
+
de: "Klicken Sie, um eine Aufzählung zu entfernen",
|
|
193
|
+
ja: "列挙を削除するにはクリック",
|
|
194
|
+
ko: "목록을 제거하려면 클릭하세요",
|
|
195
|
+
zh: "点击删除枚举",
|
|
196
|
+
it: "Clicca per rimuovere un'enumerazione",
|
|
197
|
+
pt: "Clique para remover uma enumeração",
|
|
198
|
+
hi: "सूची निकालने के लिए क्लिक करें",
|
|
199
|
+
ar: "انقر لإزالة تعداد",
|
|
200
|
+
ru: "Нажмите, чтобы удалить перечисление"
|
|
201
|
+
}),
|
|
202
|
+
text: intlayer.t({
|
|
203
|
+
en: "Remove enumeration",
|
|
204
|
+
"en-GB": "Remove enumeration",
|
|
205
|
+
fr: "Supprimer l’énumération",
|
|
206
|
+
es: "Eliminar enumeración",
|
|
207
|
+
de: "Aufzählung entfernen",
|
|
208
|
+
ja: "列挙を削除",
|
|
209
|
+
ko: "목록 제거",
|
|
210
|
+
zh: "删除枚举",
|
|
211
|
+
it: "Rimuovi enumerazione",
|
|
212
|
+
pt: "Remover enumeração",
|
|
213
|
+
hi: "सूची निकालें",
|
|
214
|
+
ar: "إزالة تعداد",
|
|
215
|
+
ru: "Удалить перечисление"
|
|
216
|
+
})
|
|
217
|
+
},
|
|
154
218
|
addNewCondition: {
|
|
155
219
|
label: intlayer.t({
|
|
156
220
|
en: "Click to add condition",
|
package/dist/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigationViewNode.content.cjs","sources":["../../../../src/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.ts"],"sourcesContent":["import { t, type Dictionary } from 'intlayer';\n\nexport const navigationViewContent = {\n key: 'navigation-view',\n content: {\n tsxNotEditable: t({\n en: 'React node is not editable',\n 'en-GB': 'React node is not editable',\n fr: 'Node React non éditable',\n es: 'Nodo React no editable',\n de: 'React-Knoten ist nicht bearbeitbar',\n ja: '編集できないReactノードです',\n ko: '편집할 수 없는 React 노드입니다',\n zh: '不可编辑的 React 节点',\n it: 'Node React non modificabile',\n pt: 'Nó React não editável',\n hi: 'सम्पादित न करने योग्य React नोड',\n ar: 'عقدة React غير قابلة للتحرير',\n ru: 'React-узел не редактируемый',\n }),\n goToField: {\n label: t({\n en: 'Go to field',\n 'en-GB': 'Go to field',\n fr: 'Aller au champ',\n es: 'Ir al campo',\n de: 'Zum Feld gehen',\n ja: 'フィールドに移動',\n ko: '필드로 이동',\n zh: '转到字段',\n it: 'Vai al campo',\n pt: 'Ir para o campo',\n hi: 'फ़ील्ड पर जाएं',\n ar: 'اذهب إلى الحقل',\n ru: 'Перейти к полю',\n }),\n },\n\n goToElement: {\n label: t({\n en: 'Go to element',\n 'en-GB': 'Go to element',\n fr: \"Aller à l'élément\",\n es: 'Ir al elemento',\n de: 'Zum Element gehen',\n ja: '要素に移動',\n ko: '요소로 이동',\n zh: '转到元素',\n it: 'Vai all’elemento',\n pt: 'Ir para o elemento',\n hi: 'तत्व पर जाएं',\n ar: 'اذهب إلى العنصر',\n ru: 'Перейти к элементу',\n }),\n },\n addNewElement: {\n label: t({\n en: 'Click to add element',\n 'en-GB': 'Click to add element',\n fr: 'Cliquez pour ajouter un élément',\n es: 'Haga clic para agregar un elemento',\n de: 'Klicken Sie, um ein Element hinzuzufügen',\n ja: '要素を追加するにはクリック',\n ko: '요소를 추가하려면 클릭하세요',\n zh: '点击添加元素',\n it: 'Clicca per aggiungere un elemento',\n pt: 'Clique para adicionar um elemento',\n hi: 'तत्व जोड़ने के लिए क्लिक करें',\n ar: 'انقر لإضافة عنصر',\n ru: 'Нажмите, чтобы добавить элемент',\n }),\n text: t({\n en: 'Add new element',\n 'en-GB': 'Add new element',\n fr: 'Ajouter un nouvel élément',\n es: 'Agregar nuevo elemento',\n de: 'Neues Element hinzufügen',\n ja: '新しい要素を追加',\n ko: '새 요소 추가',\n zh: '添加新元素',\n it: 'Aggiungi nuovo elemento',\n pt: 'Adicionar novo elemento',\n hi: 'नया तत्व जोड़ें',\n ar: 'أضف عنصرًا جديدًا',\n ru: 'Добавить новый элемент',\n }),\n },\n goToTranslation: {\n label: t({\n en: 'Go to translation',\n 'en-GB': 'Go to translation',\n fr: 'Aller à la traduction',\n es: 'Ir a la traducción',\n de: 'Zur Übersetzung gehen',\n ja: '翻訳に移動',\n ko: '번역으로 이동',\n zh: '转到翻译',\n it: 'Vai alla traduzione',\n pt: 'Ir para a tradução',\n hi: 'अनुवाद पर जाएं',\n ar: 'اذهب إلى الترجمة',\n ru: 'Перейти к переводу',\n }),\n },\n goToEnumeration: {\n label: t({\n en: 'Go to enumeration',\n 'en-GB': 'Go to enumeration',\n fr: \"Aller à l'énumération\",\n es: 'Ir a la enumeración',\n de: 'Zur Aufzählung gehen',\n ja: '列挙に移動',\n ko: '열거로 이동',\n zh: '转到枚举',\n it: 'Vai all ENUMERAZIONE',\n pt: 'Ir para a enumeração',\n hi: 'सूची में जाएं',\n ar: 'اذهب إلى التعداد',\n ru: 'Перейти к перечислению',\n }),\n },\n addNewEnumeration: {\n label: t({\n en: 'Click to add enumeration',\n 'en-GB': 'Click to add enumeration',\n fr: 'Cliquez pour ajouter une énumération',\n es: 'Haga clic para agregar una enumeración',\n de: 'Klicken Sie, um eine Aufzählung hinzuzufügen',\n ja: '列挙を追加するにはクリック',\n ko: '열거를 추가하려면 클릭하세요',\n zh: '点击添加枚举',\n it: 'Clicca per aggiungere un enumerazione',\n pt: 'Clique para adicionar uma enumeração',\n hi: 'सूची जोड़ने के लिए क्लिक करें',\n ar: 'انقر لإضافة تعداد',\n ru: 'Нажмите, чтобы добавить перечисление',\n }),\n text: t({\n en: 'Add new enumeration',\n 'en-GB': 'Add new enumeration',\n fr: 'Ajouter une nouvelle énumération',\n es: 'Agregar nueva enumeración',\n de: 'Neue Aufzählung hinzufügen',\n ja: '新しい列挙を追加',\n ko: '새 목록 추가',\n zh: '添加新枚举',\n it: 'Aggiungi nuova enumerazione',\n pt: 'Adicionar nova enumeração',\n hi: 'नया सूची जोड़ें',\n ar: 'أضف تعدادًا جديدًا',\n ru: 'Добавить новое перечисление',\n }),\n },\n addNewCondition: {\n label: t({\n en: 'Click to add condition',\n 'en-GB': 'Click to add condition',\n fr: 'Cliquez pour ajouter une condition',\n es: 'Haga clic para agregar una condición',\n de: 'Klicken Sie, um eine Bedingung hinzuzufügen',\n ja: '条件を追加するにはクリック',\n ko: '조건을 추가하려면 클릭하세요',\n zh: '点击添加条件',\n it: 'Clicca per aggiungere una condizione',\n pt: 'Clique para adicionar uma condição',\n hi: 'शर्ते जोड़ने के लिए क्लिक करें',\n ar: 'انقر لإضافة شرط',\n ru: 'Нажмите, чтобы добавить условие',\n }),\n text: t({\n en: 'Add new condition',\n 'en-GB': 'Add new condition',\n fr: 'Ajouter une nouvelle condition',\n es: 'Agregar nueva condición',\n de: 'Neue Bedingung hinzufügen',\n ja: '新しい条件を追加',\n ko: '새 조건 추가',\n zh: '添加新条件',\n it: 'Aggiungi nuova condizione',\n pt: 'Adicionar nova condição',\n hi: 'नया शर्ते जोड़ें',\n ar: 'أضف شرطًا جديدًا',\n ru: 'Добавить новое условие',\n }),\n },\n },\n} satisfies Dictionary;\n"],"names":["t"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"navigationViewNode.content.cjs","sources":["../../../../src/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.ts"],"sourcesContent":["import { t, type Dictionary } from 'intlayer';\n\nexport const navigationViewContent = {\n key: 'navigation-view',\n content: {\n tsxNotEditable: t({\n en: 'React node is not editable',\n 'en-GB': 'React node is not editable',\n fr: 'Node React non éditable',\n es: 'Nodo React no editable',\n de: 'React-Knoten ist nicht bearbeitbar',\n ja: '編集できないReactノードです',\n ko: '편집할 수 없는 React 노드입니다',\n zh: '不可编辑的 React 节点',\n it: 'Node React non modificabile',\n pt: 'Nó React não editável',\n hi: 'सम्पादित न करने योग्य React नोड',\n ar: 'عقدة React غير قابلة للتحرير',\n ru: 'React-узел не редактируемый',\n }),\n goToField: {\n label: t({\n en: 'Go to field',\n 'en-GB': 'Go to field',\n fr: 'Aller au champ',\n es: 'Ir al campo',\n de: 'Zum Feld gehen',\n ja: 'フィールドに移動',\n ko: '필드로 이동',\n zh: '转到字段',\n it: 'Vai al campo',\n pt: 'Ir para o campo',\n hi: 'फ़ील्ड पर जाएं',\n ar: 'اذهب إلى الحقل',\n ru: 'Перейти к полю',\n }),\n },\n\n goToElement: {\n label: t({\n en: 'Go to element',\n 'en-GB': 'Go to element',\n fr: \"Aller à l'élément\",\n es: 'Ir al elemento',\n de: 'Zum Element gehen',\n ja: '要素に移動',\n ko: '요소로 이동',\n zh: '转到元素',\n it: 'Vai all’elemento',\n pt: 'Ir para o elemento',\n hi: 'तत्व पर जाएं',\n ar: 'اذهب إلى العنصر',\n ru: 'Перейти к элементу',\n }),\n },\n addNewElement: {\n label: t({\n en: 'Click to add element',\n 'en-GB': 'Click to add element',\n fr: 'Cliquez pour ajouter un élément',\n es: 'Haga clic para agregar un elemento',\n de: 'Klicken Sie, um ein Element hinzuzufügen',\n ja: '要素を追加するにはクリック',\n ko: '요소를 추가하려면 클릭하세요',\n zh: '点击添加元素',\n it: 'Clicca per aggiungere un elemento',\n pt: 'Clique para adicionar um elemento',\n hi: 'तत्व जोड़ने के लिए क्लिक करें',\n ar: 'انقر لإضافة عنصر',\n ru: 'Нажмите, чтобы добавить элемент',\n }),\n text: t({\n en: 'Add new element',\n 'en-GB': 'Add new element',\n fr: 'Ajouter un nouvel élément',\n es: 'Agregar nuevo elemento',\n de: 'Neues Element hinzufügen',\n ja: '新しい要素を追加',\n ko: '새 요소 추가',\n zh: '添加新元素',\n it: 'Aggiungi nuovo elemento',\n pt: 'Adicionar novo elemento',\n hi: 'नया तत्व जोड़ें',\n ar: 'أضف عنصرًا جديدًا',\n ru: 'Добавить новый элемент',\n }),\n },\n removeElement: {\n label: t({\n en: 'Click to remove element',\n 'en-GB': 'Click to remove element',\n fr: 'Cliquez pour supprimer un élément',\n es: 'Haga clic para eliminar un elemento',\n de: 'Klicken Sie, um ein Element zu entfernen',\n ja: '要素を削除するにはクリック',\n ko: '요소를 제거하려면 클릭하세요',\n zh: '点击删除元素',\n it: 'Clicca per rimuovere un elemento',\n pt: 'Clique para remover um elemento',\n hi: 'तत्व निकालने के लिए क्लिक करें',\n ar: 'انقر لإزالة عنصر',\n ru: 'Нажмите, чтобы удалить элемент',\n }),\n text: t({\n en: 'Remove element',\n 'en-GB': 'Remove element',\n fr: 'Supprimer l’élément',\n es: 'Eliminar elemento',\n de: 'Element entfernen',\n ja: '要素を削除',\n ko: '요소 제거',\n zh: '删除元素',\n it: 'Rimuovi elemento',\n pt: 'Remover elemento',\n hi: 'तत्व निकालें',\n ar: 'إزالة عنصر',\n ru: 'Удалить элемент',\n }),\n },\n goToTranslation: {\n label: t({\n en: 'Go to translation',\n 'en-GB': 'Go to translation',\n fr: 'Aller à la traduction',\n es: 'Ir a la traducción',\n de: 'Zur Übersetzung gehen',\n ja: '翻訳に移動',\n ko: '번역으로 이동',\n zh: '转到翻译',\n it: 'Vai alla traduzione',\n pt: 'Ir para a tradução',\n hi: 'अनुवाद पर जाएं',\n ar: 'اذهب إلى الترجمة',\n ru: 'Перейти к переводу',\n }),\n },\n goToEnumeration: {\n label: t({\n en: 'Go to enumeration',\n 'en-GB': 'Go to enumeration',\n fr: \"Aller à l'énumération\",\n es: 'Ir a la enumeración',\n de: 'Zur Aufzählung gehen',\n ja: '列挙に移動',\n ko: '열거로 이동',\n zh: '转到枚举',\n it: 'Vai all ENUMERAZIONE',\n pt: 'Ir para a enumeração',\n hi: 'सूची में जाएं',\n ar: 'اذهب إلى التعداد',\n ru: 'Перейти к перечислению',\n }),\n },\n addNewEnumeration: {\n label: t({\n en: 'Click to add enumeration',\n 'en-GB': 'Click to add enumeration',\n fr: 'Cliquez pour ajouter une énumération',\n es: 'Haga clic para agregar una enumeración',\n de: 'Klicken Sie, um eine Aufzählung hinzuzufügen',\n ja: '列挙を追加するにはクリック',\n ko: '열거를 추가하려면 클릭하세요',\n zh: '点击添加枚举',\n it: 'Clicca per aggiungere un enumerazione',\n pt: 'Clique para adicionar uma enumeração',\n hi: 'सूची जोड़ने के लिए क्लिक करें',\n ar: 'انقر لإضافة تعداد',\n ru: 'Нажмите, чтобы добавить перечисление',\n }),\n text: t({\n en: 'Add new enumeration',\n 'en-GB': 'Add new enumeration',\n fr: 'Ajouter une nouvelle énumération',\n es: 'Agregar nueva enumeración',\n de: 'Neue Aufzählung hinzufügen',\n ja: '新しい列挙を追加',\n ko: '새 목록 추가',\n zh: '添加新枚举',\n it: 'Aggiungi nuova enumerazione',\n pt: 'Adicionar nova enumeração',\n hi: 'नया सूची जोड़ें',\n ar: 'أضف تعدادًا جديدًا',\n ru: 'Добавить новое перечисление',\n }),\n },\n removeEnumeration: {\n label: t({\n en: 'Click to remove enumeration',\n 'en-GB': 'Click to remove enumeration',\n fr: 'Cliquez pour supprimer une énumération',\n es: 'Haga clic para eliminar una enumeración',\n de: 'Klicken Sie, um eine Aufzählung zu entfernen',\n ja: '列挙を削除するにはクリック',\n ko: '목록을 제거하려면 클릭하세요',\n zh: '点击删除枚举',\n it: \"Clicca per rimuovere un'enumerazione\",\n pt: 'Clique para remover uma enumeração',\n hi: 'सूची निकालने के लिए क्लिक करें',\n ar: 'انقر لإزالة تعداد',\n ru: 'Нажмите, чтобы удалить перечисление',\n }),\n text: t({\n en: 'Remove enumeration',\n 'en-GB': 'Remove enumeration',\n fr: 'Supprimer l’énumération',\n es: 'Eliminar enumeración',\n de: 'Aufzählung entfernen',\n ja: '列挙を削除',\n ko: '목록 제거',\n zh: '删除枚举',\n it: 'Rimuovi enumerazione',\n pt: 'Remover enumeração',\n hi: 'सूची निकालें',\n ar: 'إزالة تعداد',\n ru: 'Удалить перечисление',\n }),\n },\n addNewCondition: {\n label: t({\n en: 'Click to add condition',\n 'en-GB': 'Click to add condition',\n fr: 'Cliquez pour ajouter une condition',\n es: 'Haga clic para agregar una condición',\n de: 'Klicken Sie, um eine Bedingung hinzuzufügen',\n ja: '条件を追加するにはクリック',\n ko: '조건을 추가하려면 클릭하세요',\n zh: '点击添加条件',\n it: 'Clicca per aggiungere una condizione',\n pt: 'Clique para adicionar uma condição',\n hi: 'शर्ते जोड़ने के लिए क्लिक करें',\n ar: 'انقر لإضافة شرط',\n ru: 'Нажмите, чтобы добавить условие',\n }),\n text: t({\n en: 'Add new condition',\n 'en-GB': 'Add new condition',\n fr: 'Ajouter une nouvelle condition',\n es: 'Agregar nueva condición',\n de: 'Neue Bedingung hinzufügen',\n ja: '新しい条件を追加',\n ko: '새 조건 추가',\n zh: '添加新条件',\n it: 'Aggiungi nuova condizione',\n pt: 'Adicionar nova condição',\n hi: 'नया शर्ते जोड़ें',\n ar: 'أضف شرطًا جديدًا',\n ru: 'Добавить новое условие',\n }),\n },\n },\n} satisfies Dictionary;\n"],"names":["t"],"mappings":"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"}
|
package/dist/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.d.ts
CHANGED
|
@@ -82,6 +82,38 @@ export declare const navigationViewContent: {
|
|
|
82
82
|
ru: string;
|
|
83
83
|
}>;
|
|
84
84
|
};
|
|
85
|
+
removeElement: {
|
|
86
|
+
label: import('@intlayer/core').TypedNodeModel<import("@intlayer/core").NodeType.Translation, {
|
|
87
|
+
en: string;
|
|
88
|
+
'en-GB': string;
|
|
89
|
+
fr: string;
|
|
90
|
+
es: string;
|
|
91
|
+
de: string;
|
|
92
|
+
ja: string;
|
|
93
|
+
ko: string;
|
|
94
|
+
zh: string;
|
|
95
|
+
it: string;
|
|
96
|
+
pt: string;
|
|
97
|
+
hi: string;
|
|
98
|
+
ar: string;
|
|
99
|
+
ru: string;
|
|
100
|
+
}>;
|
|
101
|
+
text: import('@intlayer/core').TypedNodeModel<import("@intlayer/core").NodeType.Translation, {
|
|
102
|
+
en: string;
|
|
103
|
+
'en-GB': string;
|
|
104
|
+
fr: string;
|
|
105
|
+
es: string;
|
|
106
|
+
de: string;
|
|
107
|
+
ja: string;
|
|
108
|
+
ko: string;
|
|
109
|
+
zh: string;
|
|
110
|
+
it: string;
|
|
111
|
+
pt: string;
|
|
112
|
+
hi: string;
|
|
113
|
+
ar: string;
|
|
114
|
+
ru: string;
|
|
115
|
+
}>;
|
|
116
|
+
};
|
|
85
117
|
goToTranslation: {
|
|
86
118
|
label: import('@intlayer/core').TypedNodeModel<import("@intlayer/core").NodeType.Translation, {
|
|
87
119
|
en: string;
|
|
@@ -148,6 +180,38 @@ export declare const navigationViewContent: {
|
|
|
148
180
|
ru: string;
|
|
149
181
|
}>;
|
|
150
182
|
};
|
|
183
|
+
removeEnumeration: {
|
|
184
|
+
label: import('@intlayer/core').TypedNodeModel<import("@intlayer/core").NodeType.Translation, {
|
|
185
|
+
en: string;
|
|
186
|
+
'en-GB': string;
|
|
187
|
+
fr: string;
|
|
188
|
+
es: string;
|
|
189
|
+
de: string;
|
|
190
|
+
ja: string;
|
|
191
|
+
ko: string;
|
|
192
|
+
zh: string;
|
|
193
|
+
it: string;
|
|
194
|
+
pt: string;
|
|
195
|
+
hi: string;
|
|
196
|
+
ar: string;
|
|
197
|
+
ru: string;
|
|
198
|
+
}>;
|
|
199
|
+
text: import('@intlayer/core').TypedNodeModel<import("@intlayer/core").NodeType.Translation, {
|
|
200
|
+
en: string;
|
|
201
|
+
'en-GB': string;
|
|
202
|
+
fr: string;
|
|
203
|
+
es: string;
|
|
204
|
+
de: string;
|
|
205
|
+
ja: string;
|
|
206
|
+
ko: string;
|
|
207
|
+
zh: string;
|
|
208
|
+
it: string;
|
|
209
|
+
pt: string;
|
|
210
|
+
hi: string;
|
|
211
|
+
ar: string;
|
|
212
|
+
ru: string;
|
|
213
|
+
}>;
|
|
214
|
+
};
|
|
151
215
|
addNewCondition: {
|
|
152
216
|
label: import('@intlayer/core').TypedNodeModel<import("@intlayer/core").NodeType.Translation, {
|
|
153
217
|
en: string;
|
package/dist/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigationViewNode.content.d.ts","sourceRoot":"","sources":["../../../../src/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB
|
|
1
|
+
{"version":3,"file":"navigationViewNode.content.d.ts","sourceRoot":"","sources":["../../../../src/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwPZ,CAAC"}
|
|
@@ -83,6 +83,38 @@ const navigationViewContent = {
|
|
|
83
83
|
ru: "Добавить новый элемент"
|
|
84
84
|
})
|
|
85
85
|
},
|
|
86
|
+
removeElement: {
|
|
87
|
+
label: t({
|
|
88
|
+
en: "Click to remove element",
|
|
89
|
+
"en-GB": "Click to remove element",
|
|
90
|
+
fr: "Cliquez pour supprimer un élément",
|
|
91
|
+
es: "Haga clic para eliminar un elemento",
|
|
92
|
+
de: "Klicken Sie, um ein Element zu entfernen",
|
|
93
|
+
ja: "要素を削除するにはクリック",
|
|
94
|
+
ko: "요소를 제거하려면 클릭하세요",
|
|
95
|
+
zh: "点击删除元素",
|
|
96
|
+
it: "Clicca per rimuovere un elemento",
|
|
97
|
+
pt: "Clique para remover um elemento",
|
|
98
|
+
hi: "तत्व निकालने के लिए क्लिक करें",
|
|
99
|
+
ar: "انقر لإزالة عنصر",
|
|
100
|
+
ru: "Нажмите, чтобы удалить элемент"
|
|
101
|
+
}),
|
|
102
|
+
text: t({
|
|
103
|
+
en: "Remove element",
|
|
104
|
+
"en-GB": "Remove element",
|
|
105
|
+
fr: "Supprimer l’élément",
|
|
106
|
+
es: "Eliminar elemento",
|
|
107
|
+
de: "Element entfernen",
|
|
108
|
+
ja: "要素を削除",
|
|
109
|
+
ko: "요소 제거",
|
|
110
|
+
zh: "删除元素",
|
|
111
|
+
it: "Rimuovi elemento",
|
|
112
|
+
pt: "Remover elemento",
|
|
113
|
+
hi: "तत्व निकालें",
|
|
114
|
+
ar: "إزالة عنصر",
|
|
115
|
+
ru: "Удалить элемент"
|
|
116
|
+
})
|
|
117
|
+
},
|
|
86
118
|
goToTranslation: {
|
|
87
119
|
label: t({
|
|
88
120
|
en: "Go to translation",
|
|
@@ -149,6 +181,38 @@ const navigationViewContent = {
|
|
|
149
181
|
ru: "Добавить новое перечисление"
|
|
150
182
|
})
|
|
151
183
|
},
|
|
184
|
+
removeEnumeration: {
|
|
185
|
+
label: t({
|
|
186
|
+
en: "Click to remove enumeration",
|
|
187
|
+
"en-GB": "Click to remove enumeration",
|
|
188
|
+
fr: "Cliquez pour supprimer une énumération",
|
|
189
|
+
es: "Haga clic para eliminar una enumeración",
|
|
190
|
+
de: "Klicken Sie, um eine Aufzählung zu entfernen",
|
|
191
|
+
ja: "列挙を削除するにはクリック",
|
|
192
|
+
ko: "목록을 제거하려면 클릭하세요",
|
|
193
|
+
zh: "点击删除枚举",
|
|
194
|
+
it: "Clicca per rimuovere un'enumerazione",
|
|
195
|
+
pt: "Clique para remover uma enumeração",
|
|
196
|
+
hi: "सूची निकालने के लिए क्लिक करें",
|
|
197
|
+
ar: "انقر لإزالة تعداد",
|
|
198
|
+
ru: "Нажмите, чтобы удалить перечисление"
|
|
199
|
+
}),
|
|
200
|
+
text: t({
|
|
201
|
+
en: "Remove enumeration",
|
|
202
|
+
"en-GB": "Remove enumeration",
|
|
203
|
+
fr: "Supprimer l’énumération",
|
|
204
|
+
es: "Eliminar enumeración",
|
|
205
|
+
de: "Aufzählung entfernen",
|
|
206
|
+
ja: "列挙を削除",
|
|
207
|
+
ko: "목록 제거",
|
|
208
|
+
zh: "删除枚举",
|
|
209
|
+
it: "Rimuovi enumerazione",
|
|
210
|
+
pt: "Remover enumeração",
|
|
211
|
+
hi: "सूची निकालें",
|
|
212
|
+
ar: "إزالة تعداد",
|
|
213
|
+
ru: "Удалить перечисление"
|
|
214
|
+
})
|
|
215
|
+
},
|
|
152
216
|
addNewCondition: {
|
|
153
217
|
label: t({
|
|
154
218
|
en: "Click to add condition",
|