@intlayer/editor-react 7.1.4 → 7.1.6

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.
Files changed (162) hide show
  1. package/dist/cjs/EditorProvider.cjs +1 -1
  2. package/dist/cjs/EditorProvider.cjs.map +1 -1
  3. package/dist/esm/EditorProvider.mjs +1 -1
  4. package/dist/esm/EditorProvider.mjs.map +1 -1
  5. package/dist/types/ConfigurationContext.d.ts +2 -2
  6. package/dist/types/EditorEnabledContext.d.ts +2 -2
  7. package/dist/types/useCrossURLPathState.d.ts +3 -3
  8. package/dist/types/useEditorLocale.d.ts +2 -2
  9. package/dist/types/useFocusUnmergedDictionary.d.ts +2 -2
  10. package/package.json +6 -6
  11. package/dist/cjs/FocusDictionaryContext copy.cjs +0 -57
  12. package/dist/cjs/FocusDictionaryContext copy.cjs.map +0 -1
  13. package/dist/cjs/FocusDictionaryServerContext.cjs +0 -24
  14. package/dist/cjs/FocusDictionaryServerContext.cjs.map +0 -1
  15. package/dist/cjs/FocusDictionaryUnmergedContext.cjs +0 -102
  16. package/dist/cjs/FocusDictionaryUnmergedContext.cjs.map +0 -1
  17. package/dist/cjs/config/dist/esm/_virtual/rolldown_runtime.cjs +0 -10
  18. package/dist/cjs/config/dist/esm/_virtual/rolldown_runtime.cjs.map +0 -1
  19. package/dist/cjs/config/dist/esm/built.cjs +0 -8
  20. package/dist/cjs/config/dist/esm/built.cjs.map +0 -1
  21. package/dist/cjs/config/dist/esm/configFile/buildConfigurationFields.cjs +0 -119
  22. package/dist/cjs/config/dist/esm/configFile/buildConfigurationFields.cjs.map +0 -1
  23. package/dist/cjs/config/dist/esm/configFile/getConfiguration.cjs +0 -69
  24. package/dist/cjs/config/dist/esm/configFile/getConfiguration.cjs.map +0 -1
  25. package/dist/cjs/config/dist/esm/configFile/loadConfigurationFile.cjs +0 -26
  26. package/dist/cjs/config/dist/esm/configFile/loadConfigurationFile.cjs.map +0 -1
  27. package/dist/cjs/config/dist/esm/configFile/searchConfigurationFile.cjs +0 -51
  28. package/dist/cjs/config/dist/esm/configFile/searchConfigurationFile.cjs.map +0 -1
  29. package/dist/cjs/config/dist/esm/defaultValues/build.cjs +0 -15
  30. package/dist/cjs/config/dist/esm/defaultValues/build.cjs.map +0 -1
  31. package/dist/cjs/config/dist/esm/defaultValues/content.cjs +0 -54
  32. package/dist/cjs/config/dist/esm/defaultValues/content.cjs.map +0 -1
  33. package/dist/cjs/config/dist/esm/defaultValues/dictionary.cjs +0 -7
  34. package/dist/cjs/config/dist/esm/defaultValues/dictionary.cjs.map +0 -1
  35. package/dist/cjs/config/dist/esm/defaultValues/editor.cjs +0 -23
  36. package/dist/cjs/config/dist/esm/defaultValues/editor.cjs.map +0 -1
  37. package/dist/cjs/config/dist/esm/defaultValues/internationalization.cjs +0 -14
  38. package/dist/cjs/config/dist/esm/defaultValues/internationalization.cjs.map +0 -1
  39. package/dist/cjs/config/dist/esm/defaultValues/log.cjs +0 -10
  40. package/dist/cjs/config/dist/esm/defaultValues/log.cjs.map +0 -1
  41. package/dist/cjs/config/dist/esm/defaultValues/routing.cjs +0 -11
  42. package/dist/cjs/config/dist/esm/defaultValues/routing.cjs.map +0 -1
  43. package/dist/cjs/config/dist/esm/loadEnvFile.cjs +0 -26
  44. package/dist/cjs/config/dist/esm/loadEnvFile.cjs.map +0 -1
  45. package/dist/cjs/config/dist/esm/loadExternalFile/bundleFile.cjs +0 -23
  46. package/dist/cjs/config/dist/esm/loadExternalFile/bundleFile.cjs.map +0 -1
  47. package/dist/cjs/config/dist/esm/loadExternalFile/loadExternalFile.cjs +0 -47
  48. package/dist/cjs/config/dist/esm/loadExternalFile/loadExternalFile.cjs.map +0 -1
  49. package/dist/cjs/config/dist/esm/loadExternalFile/parseFileContent.cjs +0 -65
  50. package/dist/cjs/config/dist/esm/loadExternalFile/parseFileContent.cjs.map +0 -1
  51. package/dist/cjs/config/dist/esm/loadExternalFile/transpileTSToMJS.cjs +0 -45
  52. package/dist/cjs/config/dist/esm/loadExternalFile/transpileTSToMJS.cjs.map +0 -1
  53. package/dist/cjs/config/dist/esm/logger.cjs +0 -47
  54. package/dist/cjs/config/dist/esm/logger.cjs.map +0 -1
  55. package/dist/cjs/config/dist/esm/types/dist/esm/_virtual/rolldown_runtime.cjs +0 -15
  56. package/dist/cjs/config/dist/esm/types/dist/esm/_virtual/rolldown_runtime.cjs.map +0 -1
  57. package/dist/cjs/config/dist/esm/types/dist/esm/locales.cjs +0 -1128
  58. package/dist/cjs/config/dist/esm/types/dist/esm/locales.cjs.map +0 -1
  59. package/dist/cjs/config/dist/esm/utils/ESMxCJSHelpers.cjs +0 -27
  60. package/dist/cjs/config/dist/esm/utils/ESMxCJSHelpers.cjs.map +0 -1
  61. package/dist/cjs/config/dist/esm/utils/cache.cjs +0 -261
  62. package/dist/cjs/config/dist/esm/utils/cache.cjs.map +0 -1
  63. package/dist/cjs/config/dist/esm/utils/getPackageJsonPath.cjs +0 -34
  64. package/dist/cjs/config/dist/esm/utils/getPackageJsonPath.cjs.map +0 -1
  65. package/dist/cjs/config/dist/esm/utils/normalizePath.cjs +0 -17
  66. package/dist/cjs/config/dist/esm/utils/normalizePath.cjs.map +0 -1
  67. package/dist/cjs/core/dist/esm/dictionaryManipulator/editDictionaryByKeyPath.cjs +0 -60
  68. package/dist/cjs/core/dist/esm/dictionaryManipulator/editDictionaryByKeyPath.cjs.map +0 -1
  69. package/dist/cjs/core/dist/esm/dictionaryManipulator/getContentNodeByKeyPath.cjs +0 -17
  70. package/dist/cjs/core/dist/esm/dictionaryManipulator/getContentNodeByKeyPath.cjs.map +0 -1
  71. package/dist/cjs/core/dist/esm/dictionaryManipulator/renameContentNodeByKeyPath.cjs +0 -38
  72. package/dist/cjs/core/dist/esm/dictionaryManipulator/renameContentNodeByKeyPath.cjs.map +0 -1
  73. package/dist/cjs/core/dist/esm/types/dist/esm/nodeType.cjs +0 -25
  74. package/dist/cjs/core/dist/esm/types/dist/esm/nodeType.cjs.map +0 -1
  75. package/dist/cjs/editor/dist/esm/compareUrls.cjs +0 -39
  76. package/dist/cjs/editor/dist/esm/compareUrls.cjs.map +0 -1
  77. package/dist/cjs/editor/dist/esm/mergeIframeClick.cjs +0 -22
  78. package/dist/cjs/editor/dist/esm/mergeIframeClick.cjs.map +0 -1
  79. package/dist/cjs/editor/dist/esm/messagesKeys.cjs +0 -19
  80. package/dist/cjs/editor/dist/esm/messagesKeys.cjs.map +0 -1
  81. package/dist/cjs/types/dist/esm/nodeType.cjs +0 -25
  82. package/dist/cjs/types/dist/esm/nodeType.cjs.map +0 -1
  83. package/dist/esm/FocusDictionaryContext copy.mjs +0 -51
  84. package/dist/esm/FocusDictionaryContext copy.mjs.map +0 -1
  85. package/dist/esm/FocusDictionaryServerContext.mjs +0 -21
  86. package/dist/esm/FocusDictionaryServerContext.mjs.map +0 -1
  87. package/dist/esm/FocusDictionaryUnmergedContext.mjs +0 -93
  88. package/dist/esm/FocusDictionaryUnmergedContext.mjs.map +0 -1
  89. package/dist/esm/_virtual/rolldown_runtime.mjs +0 -8
  90. package/dist/esm/config/dist/esm/_virtual/rolldown_runtime.mjs +0 -11
  91. package/dist/esm/config/dist/esm/_virtual/rolldown_runtime.mjs.map +0 -1
  92. package/dist/esm/config/dist/esm/built.mjs +0 -8
  93. package/dist/esm/config/dist/esm/built.mjs.map +0 -1
  94. package/dist/esm/config/dist/esm/configFile/buildConfigurationFields.mjs +0 -118
  95. package/dist/esm/config/dist/esm/configFile/buildConfigurationFields.mjs.map +0 -1
  96. package/dist/esm/config/dist/esm/configFile/getConfiguration.mjs +0 -67
  97. package/dist/esm/config/dist/esm/configFile/getConfiguration.mjs.map +0 -1
  98. package/dist/esm/config/dist/esm/configFile/loadConfigurationFile.mjs +0 -26
  99. package/dist/esm/config/dist/esm/configFile/loadConfigurationFile.mjs.map +0 -1
  100. package/dist/esm/config/dist/esm/configFile/searchConfigurationFile.mjs +0 -50
  101. package/dist/esm/config/dist/esm/configFile/searchConfigurationFile.mjs.map +0 -1
  102. package/dist/esm/config/dist/esm/defaultValues/build.mjs +0 -10
  103. package/dist/esm/config/dist/esm/defaultValues/build.mjs.map +0 -1
  104. package/dist/esm/config/dist/esm/defaultValues/content.mjs +0 -40
  105. package/dist/esm/config/dist/esm/defaultValues/content.mjs.map +0 -1
  106. package/dist/esm/config/dist/esm/defaultValues/dictionary.mjs +0 -6
  107. package/dist/esm/config/dist/esm/defaultValues/dictionary.mjs.map +0 -1
  108. package/dist/esm/config/dist/esm/defaultValues/editor.mjs +0 -14
  109. package/dist/esm/config/dist/esm/defaultValues/editor.mjs.map +0 -1
  110. package/dist/esm/config/dist/esm/defaultValues/internationalization.mjs +0 -11
  111. package/dist/esm/config/dist/esm/defaultValues/internationalization.mjs.map +0 -1
  112. package/dist/esm/config/dist/esm/defaultValues/log.mjs +0 -9
  113. package/dist/esm/config/dist/esm/defaultValues/log.mjs.map +0 -1
  114. package/dist/esm/config/dist/esm/defaultValues/routing.mjs +0 -8
  115. package/dist/esm/config/dist/esm/defaultValues/routing.mjs.map +0 -1
  116. package/dist/esm/config/dist/esm/loadEnvFile.mjs +0 -24
  117. package/dist/esm/config/dist/esm/loadEnvFile.mjs.map +0 -1
  118. package/dist/esm/config/dist/esm/loadExternalFile/bundleFile.mjs +0 -23
  119. package/dist/esm/config/dist/esm/loadExternalFile/bundleFile.mjs.map +0 -1
  120. package/dist/esm/config/dist/esm/loadExternalFile/loadExternalFile.mjs +0 -47
  121. package/dist/esm/config/dist/esm/loadExternalFile/loadExternalFile.mjs.map +0 -1
  122. package/dist/esm/config/dist/esm/loadExternalFile/parseFileContent.mjs +0 -63
  123. package/dist/esm/config/dist/esm/loadExternalFile/parseFileContent.mjs.map +0 -1
  124. package/dist/esm/config/dist/esm/loadExternalFile/transpileTSToMJS.mjs +0 -44
  125. package/dist/esm/config/dist/esm/loadExternalFile/transpileTSToMJS.mjs.map +0 -1
  126. package/dist/esm/config/dist/esm/logger.mjs +0 -45
  127. package/dist/esm/config/dist/esm/logger.mjs.map +0 -1
  128. package/dist/esm/config/dist/esm/types/dist/esm/_virtual/rolldown_runtime.mjs +0 -14
  129. package/dist/esm/config/dist/esm/types/dist/esm/_virtual/rolldown_runtime.mjs.map +0 -1
  130. package/dist/esm/config/dist/esm/types/dist/esm/locales.mjs +0 -1128
  131. package/dist/esm/config/dist/esm/types/dist/esm/locales.mjs.map +0 -1
  132. package/dist/esm/config/dist/esm/utils/ESMxCJSHelpers.mjs +0 -25
  133. package/dist/esm/config/dist/esm/utils/ESMxCJSHelpers.mjs.map +0 -1
  134. package/dist/esm/config/dist/esm/utils/cache.mjs +0 -263
  135. package/dist/esm/config/dist/esm/utils/cache.mjs.map +0 -1
  136. package/dist/esm/config/dist/esm/utils/getPackageJsonPath.mjs +0 -33
  137. package/dist/esm/config/dist/esm/utils/getPackageJsonPath.mjs.map +0 -1
  138. package/dist/esm/config/dist/esm/utils/normalizePath.mjs +0 -16
  139. package/dist/esm/config/dist/esm/utils/normalizePath.mjs.map +0 -1
  140. package/dist/esm/core/dist/esm/dictionaryManipulator/editDictionaryByKeyPath.mjs +0 -60
  141. package/dist/esm/core/dist/esm/dictionaryManipulator/editDictionaryByKeyPath.mjs.map +0 -1
  142. package/dist/esm/core/dist/esm/dictionaryManipulator/getContentNodeByKeyPath.mjs +0 -17
  143. package/dist/esm/core/dist/esm/dictionaryManipulator/getContentNodeByKeyPath.mjs.map +0 -1
  144. package/dist/esm/core/dist/esm/dictionaryManipulator/renameContentNodeByKeyPath.mjs +0 -38
  145. package/dist/esm/core/dist/esm/dictionaryManipulator/renameContentNodeByKeyPath.mjs.map +0 -1
  146. package/dist/esm/core/dist/esm/types/dist/esm/nodeType.mjs +0 -24
  147. package/dist/esm/core/dist/esm/types/dist/esm/nodeType.mjs.map +0 -1
  148. package/dist/esm/editor/dist/esm/compareUrls.mjs +0 -38
  149. package/dist/esm/editor/dist/esm/compareUrls.mjs.map +0 -1
  150. package/dist/esm/editor/dist/esm/mergeIframeClick.mjs +0 -21
  151. package/dist/esm/editor/dist/esm/mergeIframeClick.mjs.map +0 -1
  152. package/dist/esm/editor/dist/esm/messagesKeys.mjs +0 -18
  153. package/dist/esm/editor/dist/esm/messagesKeys.mjs.map +0 -1
  154. package/dist/esm/types/dist/esm/nodeType.mjs +0 -24
  155. package/dist/esm/types/dist/esm/nodeType.mjs.map +0 -1
  156. package/dist/types/FocusDictionaryContext copy.d.ts +0 -23
  157. package/dist/types/FocusDictionaryContext copy.d.ts.map +0 -1
  158. package/dist/types/FocusDictionaryServerContext.d.ts +0 -9
  159. package/dist/types/FocusDictionaryServerContext.d.ts.map +0 -1
  160. package/dist/types/FocusDictionaryUnmergedContext.d.ts +0 -43
  161. package/dist/types/FocusDictionaryUnmergedContext.d.ts.map +0 -1
  162. package/dist/types/index.d.ts.map +0 -1
@@ -46,7 +46,7 @@ const IframeCheckRenderer = ({ children, fallback }) => {
46
46
  }, []);
47
47
  return isInIframe ? children : fallback;
48
48
  };
49
- const EditorProvider = ({ children, configuration,...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_EditorEnabledContext.EditorEnabledProvider, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ConfigurationContext.ConfigurationProvider, {
49
+ const EditorProvider = ({ children, configuration, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_EditorEnabledContext.EditorEnabledProvider, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ConfigurationContext.ConfigurationProvider, {
50
50
  configuration,
51
51
  children: props.mode === "editor" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_CommunicatorContext.CommunicatorProvider, {
52
52
  ...props,
@@ -1 +1 @@
1
- {"version":3,"file":"EditorProvider.cjs","names":["EditorProvidersWrapper: FC<PropsWithChildren>","useGetEditedContentState","DictionariesRecordProvider","EditedContentProvider","FocusDictionaryProvider","EditorEnabledCheckRenderer: FC<PropsWithChildren<FallbackProps>>","useGetEditorEnabledState","useEditorEnabled","IframeCheckRenderer: FC<PropsWithChildren<FallbackProps>>","EditorProvider: FC<PropsWithChildren<EditorProviderProps>>","EditorEnabledProvider","ConfigurationProvider","CommunicatorProvider"],"sources":["../../src/EditorProvider.tsx"],"sourcesContent":["'use client';\n\nimport {\n type FC,\n type PropsWithChildren,\n type ReactNode,\n useEffect,\n useState,\n} from 'react';\nimport {\n CommunicatorProvider,\n type CommunicatorProviderProps,\n} from './CommunicatorContext';\nimport {\n ConfigurationProvider,\n type ConfigurationProviderProps,\n} from './ConfigurationContext';\nimport { DictionariesRecordProvider } from './DictionariesRecordContext';\nimport {\n EditedContentProvider,\n useGetEditedContentState,\n} from './EditedContentContext';\nimport {\n EditorEnabledProvider,\n useEditorEnabled,\n useGetEditorEnabledState,\n} from './EditorEnabledContext';\nimport { FocusDictionaryProvider } from './FocusDictionaryContext';\n\n/**\n * This component add all the providers needed by the editor.\n * It is used to wrap the application, or the editor to work together.\n */\nconst EditorProvidersWrapper: FC<PropsWithChildren> = ({ children }) => {\n const getEditedContentState = useGetEditedContentState();\n\n useEffect(() => {\n getEditedContentState();\n }, []);\n\n return (\n <DictionariesRecordProvider>\n <EditedContentProvider>\n <FocusDictionaryProvider>{children}</FocusDictionaryProvider>\n </EditedContentProvider>\n </DictionariesRecordProvider>\n );\n};\n\ntype FallbackProps = {\n fallback: ReactNode;\n};\n\n/**\n * This component check if the editor is enabled to render the editor providers.\n */\nconst EditorEnabledCheckRenderer: FC<PropsWithChildren<FallbackProps>> = ({\n children,\n fallback,\n}) => {\n const getEditorEnabled = useGetEditorEnabledState();\n\n const { enabled } = useEditorEnabled();\n\n useEffect(() => {\n if (enabled) return;\n\n // Check if the editor is wrapping the application\n getEditorEnabled();\n }, [enabled]);\n\n return enabled ? children : fallback;\n};\n\n/**\n * This component is used to check if the editor is wrapping the application.\n * It avoid to send window.postMessage to the application if the editor is not wrapping the application.\n */\nconst IframeCheckRenderer: FC<PropsWithChildren<FallbackProps>> = ({\n children,\n fallback,\n}) => {\n const [isInIframe, setIsInIframe] = useState(false);\n\n useEffect(() => {\n setIsInIframe(window.self !== window.top);\n }, []);\n\n return isInIframe ? children : fallback;\n};\n\nexport type EditorProviderProps = CommunicatorProviderProps &\n ConfigurationProviderProps & {\n mode: 'editor' | 'client';\n };\n\nexport const EditorProvider: FC<PropsWithChildren<EditorProviderProps>> = ({\n children,\n configuration,\n ...props\n}) => (\n <EditorEnabledProvider>\n <ConfigurationProvider configuration={configuration}>\n {props.mode === 'editor' ? (\n <CommunicatorProvider {...props}>\n <EditorProvidersWrapper>{children}</EditorProvidersWrapper>\n </CommunicatorProvider>\n ) : (\n <IframeCheckRenderer fallback={children}>\n <CommunicatorProvider {...props}>\n <EditorEnabledCheckRenderer fallback={children}>\n <EditorProvidersWrapper>{children}</EditorProvidersWrapper>\n </EditorEnabledCheckRenderer>\n </CommunicatorProvider>\n </IframeCheckRenderer>\n )}\n </ConfigurationProvider>\n </EditorEnabledProvider>\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;AAiCA,MAAMA,0BAAiD,EAAE,eAAe;CACtE,MAAM,wBAAwBC,uDAA0B;AAExD,4BAAgB;AACd,yBAAuB;IACtB,EAAE,CAAC;AAEN,QACE,2CAACC,0EACC,2CAACC,gEACC,2CAACC,0DAAyB,WAAmC,GACvC,GACG;;;;;AAWjC,MAAMC,8BAAoE,EACxE,UACA,eACI;CACJ,MAAM,mBAAmBC,uDAA0B;CAEnD,MAAM,EAAE,YAAYC,+CAAkB;AAEtC,4BAAgB;AACd,MAAI,QAAS;AAGb,oBAAkB;IACjB,CAAC,QAAQ,CAAC;AAEb,QAAO,UAAU,WAAW;;;;;;AAO9B,MAAMC,uBAA6D,EACjE,UACA,eACI;CACJ,MAAM,CAAC,YAAY,qCAA0B,MAAM;AAEnD,4BAAgB;AACd,gBAAc,OAAO,SAAS,OAAO,IAAI;IACxC,EAAE,CAAC;AAEN,QAAO,aAAa,WAAW;;AAQjC,MAAaC,kBAA8D,EACzE,UACA,cACA,GAAG,YAEH,2CAACC,gEACC,2CAACC;CAAqC;WACnC,MAAM,SAAS,WACd,2CAACC;EAAqB,GAAI;YACxB,2CAAC,0BAAwB,WAAkC;GACtC,GAEvB,2CAAC;EAAoB,UAAU;YAC7B,2CAACA;GAAqB,GAAI;aACxB,2CAAC;IAA2B,UAAU;cACpC,2CAAC,0BAAwB,WAAkC;KAChC;IACR;GACH;EAEF,GACF"}
1
+ {"version":3,"file":"EditorProvider.cjs","names":["EditorProvidersWrapper: FC<PropsWithChildren>","useGetEditedContentState","DictionariesRecordProvider","EditedContentProvider","FocusDictionaryProvider","EditorEnabledCheckRenderer: FC<PropsWithChildren<FallbackProps>>","useGetEditorEnabledState","useEditorEnabled","IframeCheckRenderer: FC<PropsWithChildren<FallbackProps>>","EditorProvider: FC<PropsWithChildren<EditorProviderProps>>","EditorEnabledProvider","ConfigurationProvider","CommunicatorProvider"],"sources":["../../src/EditorProvider.tsx"],"sourcesContent":["'use client';\n\nimport {\n type FC,\n type PropsWithChildren,\n type ReactNode,\n useEffect,\n useState,\n} from 'react';\nimport {\n CommunicatorProvider,\n type CommunicatorProviderProps,\n} from './CommunicatorContext';\nimport {\n ConfigurationProvider,\n type ConfigurationProviderProps,\n} from './ConfigurationContext';\nimport { DictionariesRecordProvider } from './DictionariesRecordContext';\nimport {\n EditedContentProvider,\n useGetEditedContentState,\n} from './EditedContentContext';\nimport {\n EditorEnabledProvider,\n useEditorEnabled,\n useGetEditorEnabledState,\n} from './EditorEnabledContext';\nimport { FocusDictionaryProvider } from './FocusDictionaryContext';\n\n/**\n * This component add all the providers needed by the editor.\n * It is used to wrap the application, or the editor to work together.\n */\nconst EditorProvidersWrapper: FC<PropsWithChildren> = ({ children }) => {\n const getEditedContentState = useGetEditedContentState();\n\n useEffect(() => {\n getEditedContentState();\n }, []);\n\n return (\n <DictionariesRecordProvider>\n <EditedContentProvider>\n <FocusDictionaryProvider>{children}</FocusDictionaryProvider>\n </EditedContentProvider>\n </DictionariesRecordProvider>\n );\n};\n\ntype FallbackProps = {\n fallback: ReactNode;\n};\n\n/**\n * This component check if the editor is enabled to render the editor providers.\n */\nconst EditorEnabledCheckRenderer: FC<PropsWithChildren<FallbackProps>> = ({\n children,\n fallback,\n}) => {\n const getEditorEnabled = useGetEditorEnabledState();\n\n const { enabled } = useEditorEnabled();\n\n useEffect(() => {\n if (enabled) return;\n\n // Check if the editor is wrapping the application\n getEditorEnabled();\n }, [enabled]);\n\n return enabled ? children : fallback;\n};\n\n/**\n * This component is used to check if the editor is wrapping the application.\n * It avoid to send window.postMessage to the application if the editor is not wrapping the application.\n */\nconst IframeCheckRenderer: FC<PropsWithChildren<FallbackProps>> = ({\n children,\n fallback,\n}) => {\n const [isInIframe, setIsInIframe] = useState(false);\n\n useEffect(() => {\n setIsInIframe(window.self !== window.top);\n }, []);\n\n return isInIframe ? children : fallback;\n};\n\nexport type EditorProviderProps = CommunicatorProviderProps &\n ConfigurationProviderProps & {\n mode: 'editor' | 'client';\n };\n\nexport const EditorProvider: FC<PropsWithChildren<EditorProviderProps>> = ({\n children,\n configuration,\n ...props\n}) => (\n <EditorEnabledProvider>\n <ConfigurationProvider configuration={configuration}>\n {props.mode === 'editor' ? (\n <CommunicatorProvider {...props}>\n <EditorProvidersWrapper>{children}</EditorProvidersWrapper>\n </CommunicatorProvider>\n ) : (\n <IframeCheckRenderer fallback={children}>\n <CommunicatorProvider {...props}>\n <EditorEnabledCheckRenderer fallback={children}>\n <EditorProvidersWrapper>{children}</EditorProvidersWrapper>\n </EditorEnabledCheckRenderer>\n </CommunicatorProvider>\n </IframeCheckRenderer>\n )}\n </ConfigurationProvider>\n </EditorEnabledProvider>\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;AAiCA,MAAMA,0BAAiD,EAAE,eAAe;CACtE,MAAM,wBAAwBC,uDAA0B;AAExD,4BAAgB;AACd,yBAAuB;IACtB,EAAE,CAAC;AAEN,QACE,2CAACC,0EACC,2CAACC,gEACC,2CAACC,0DAAyB,WAAmC,GACvC,GACG;;;;;AAWjC,MAAMC,8BAAoE,EACxE,UACA,eACI;CACJ,MAAM,mBAAmBC,uDAA0B;CAEnD,MAAM,EAAE,YAAYC,+CAAkB;AAEtC,4BAAgB;AACd,MAAI,QAAS;AAGb,oBAAkB;IACjB,CAAC,QAAQ,CAAC;AAEb,QAAO,UAAU,WAAW;;;;;;AAO9B,MAAMC,uBAA6D,EACjE,UACA,eACI;CACJ,MAAM,CAAC,YAAY,qCAA0B,MAAM;AAEnD,4BAAgB;AACd,gBAAc,OAAO,SAAS,OAAO,IAAI;IACxC,EAAE,CAAC;AAEN,QAAO,aAAa,WAAW;;AAQjC,MAAaC,kBAA8D,EACzE,UACA,eACA,GAAG,YAEH,2CAACC,gEACC,2CAACC;CAAqC;WACnC,MAAM,SAAS,WACd,2CAACC;EAAqB,GAAI;YACxB,2CAAC,0BAAwB,WAAkC;GACtC,GAEvB,2CAAC;EAAoB,UAAU;YAC7B,2CAACA;GAAqB,GAAI;aACxB,2CAAC;IAA2B,UAAU;cACpC,2CAAC,0BAAwB,WAAkC;KAChC;IACR;GACH;EAEF,GACF"}
@@ -45,7 +45,7 @@ const IframeCheckRenderer = ({ children, fallback }) => {
45
45
  }, []);
46
46
  return isInIframe ? children : fallback;
47
47
  };
48
- const EditorProvider = ({ children, configuration,...props }) => /* @__PURE__ */ jsx(EditorEnabledProvider, { children: /* @__PURE__ */ jsx(ConfigurationProvider, {
48
+ const EditorProvider = ({ children, configuration, ...props }) => /* @__PURE__ */ jsx(EditorEnabledProvider, { children: /* @__PURE__ */ jsx(ConfigurationProvider, {
49
49
  configuration,
50
50
  children: props.mode === "editor" ? /* @__PURE__ */ jsx(CommunicatorProvider, {
51
51
  ...props,
@@ -1 +1 @@
1
- {"version":3,"file":"EditorProvider.mjs","names":["EditorProvidersWrapper: FC<PropsWithChildren>","EditorEnabledCheckRenderer: FC<PropsWithChildren<FallbackProps>>","IframeCheckRenderer: FC<PropsWithChildren<FallbackProps>>","EditorProvider: FC<PropsWithChildren<EditorProviderProps>>"],"sources":["../../src/EditorProvider.tsx"],"sourcesContent":["'use client';\n\nimport {\n type FC,\n type PropsWithChildren,\n type ReactNode,\n useEffect,\n useState,\n} from 'react';\nimport {\n CommunicatorProvider,\n type CommunicatorProviderProps,\n} from './CommunicatorContext';\nimport {\n ConfigurationProvider,\n type ConfigurationProviderProps,\n} from './ConfigurationContext';\nimport { DictionariesRecordProvider } from './DictionariesRecordContext';\nimport {\n EditedContentProvider,\n useGetEditedContentState,\n} from './EditedContentContext';\nimport {\n EditorEnabledProvider,\n useEditorEnabled,\n useGetEditorEnabledState,\n} from './EditorEnabledContext';\nimport { FocusDictionaryProvider } from './FocusDictionaryContext';\n\n/**\n * This component add all the providers needed by the editor.\n * It is used to wrap the application, or the editor to work together.\n */\nconst EditorProvidersWrapper: FC<PropsWithChildren> = ({ children }) => {\n const getEditedContentState = useGetEditedContentState();\n\n useEffect(() => {\n getEditedContentState();\n }, []);\n\n return (\n <DictionariesRecordProvider>\n <EditedContentProvider>\n <FocusDictionaryProvider>{children}</FocusDictionaryProvider>\n </EditedContentProvider>\n </DictionariesRecordProvider>\n );\n};\n\ntype FallbackProps = {\n fallback: ReactNode;\n};\n\n/**\n * This component check if the editor is enabled to render the editor providers.\n */\nconst EditorEnabledCheckRenderer: FC<PropsWithChildren<FallbackProps>> = ({\n children,\n fallback,\n}) => {\n const getEditorEnabled = useGetEditorEnabledState();\n\n const { enabled } = useEditorEnabled();\n\n useEffect(() => {\n if (enabled) return;\n\n // Check if the editor is wrapping the application\n getEditorEnabled();\n }, [enabled]);\n\n return enabled ? children : fallback;\n};\n\n/**\n * This component is used to check if the editor is wrapping the application.\n * It avoid to send window.postMessage to the application if the editor is not wrapping the application.\n */\nconst IframeCheckRenderer: FC<PropsWithChildren<FallbackProps>> = ({\n children,\n fallback,\n}) => {\n const [isInIframe, setIsInIframe] = useState(false);\n\n useEffect(() => {\n setIsInIframe(window.self !== window.top);\n }, []);\n\n return isInIframe ? children : fallback;\n};\n\nexport type EditorProviderProps = CommunicatorProviderProps &\n ConfigurationProviderProps & {\n mode: 'editor' | 'client';\n };\n\nexport const EditorProvider: FC<PropsWithChildren<EditorProviderProps>> = ({\n children,\n configuration,\n ...props\n}) => (\n <EditorEnabledProvider>\n <ConfigurationProvider configuration={configuration}>\n {props.mode === 'editor' ? (\n <CommunicatorProvider {...props}>\n <EditorProvidersWrapper>{children}</EditorProvidersWrapper>\n </CommunicatorProvider>\n ) : (\n <IframeCheckRenderer fallback={children}>\n <CommunicatorProvider {...props}>\n <EditorEnabledCheckRenderer fallback={children}>\n <EditorProvidersWrapper>{children}</EditorProvidersWrapper>\n </EditorEnabledCheckRenderer>\n </CommunicatorProvider>\n </IframeCheckRenderer>\n )}\n </ConfigurationProvider>\n </EditorEnabledProvider>\n);\n"],"mappings":";;;;;;;;;;;;;;;;;AAiCA,MAAMA,0BAAiD,EAAE,eAAe;CACtE,MAAM,wBAAwB,0BAA0B;AAExD,iBAAgB;AACd,yBAAuB;IACtB,EAAE,CAAC;AAEN,QACE,oBAAC,wCACC,oBAAC,mCACC,oBAAC,2BAAyB,WAAmC,GACvC,GACG;;;;;AAWjC,MAAMC,8BAAoE,EACxE,UACA,eACI;CACJ,MAAM,mBAAmB,0BAA0B;CAEnD,MAAM,EAAE,YAAY,kBAAkB;AAEtC,iBAAgB;AACd,MAAI,QAAS;AAGb,oBAAkB;IACjB,CAAC,QAAQ,CAAC;AAEb,QAAO,UAAU,WAAW;;;;;;AAO9B,MAAMC,uBAA6D,EACjE,UACA,eACI;CACJ,MAAM,CAAC,YAAY,iBAAiB,SAAS,MAAM;AAEnD,iBAAgB;AACd,gBAAc,OAAO,SAAS,OAAO,IAAI;IACxC,EAAE,CAAC;AAEN,QAAO,aAAa,WAAW;;AAQjC,MAAaC,kBAA8D,EACzE,UACA,cACA,GAAG,YAEH,oBAAC,mCACC,oBAAC;CAAqC;WACnC,MAAM,SAAS,WACd,oBAAC;EAAqB,GAAI;YACxB,oBAAC,0BAAwB,WAAkC;GACtC,GAEvB,oBAAC;EAAoB,UAAU;YAC7B,oBAAC;GAAqB,GAAI;aACxB,oBAAC;IAA2B,UAAU;cACpC,oBAAC,0BAAwB,WAAkC;KAChC;IACR;GACH;EAEF,GACF"}
1
+ {"version":3,"file":"EditorProvider.mjs","names":["EditorProvidersWrapper: FC<PropsWithChildren>","EditorEnabledCheckRenderer: FC<PropsWithChildren<FallbackProps>>","IframeCheckRenderer: FC<PropsWithChildren<FallbackProps>>","EditorProvider: FC<PropsWithChildren<EditorProviderProps>>"],"sources":["../../src/EditorProvider.tsx"],"sourcesContent":["'use client';\n\nimport {\n type FC,\n type PropsWithChildren,\n type ReactNode,\n useEffect,\n useState,\n} from 'react';\nimport {\n CommunicatorProvider,\n type CommunicatorProviderProps,\n} from './CommunicatorContext';\nimport {\n ConfigurationProvider,\n type ConfigurationProviderProps,\n} from './ConfigurationContext';\nimport { DictionariesRecordProvider } from './DictionariesRecordContext';\nimport {\n EditedContentProvider,\n useGetEditedContentState,\n} from './EditedContentContext';\nimport {\n EditorEnabledProvider,\n useEditorEnabled,\n useGetEditorEnabledState,\n} from './EditorEnabledContext';\nimport { FocusDictionaryProvider } from './FocusDictionaryContext';\n\n/**\n * This component add all the providers needed by the editor.\n * It is used to wrap the application, or the editor to work together.\n */\nconst EditorProvidersWrapper: FC<PropsWithChildren> = ({ children }) => {\n const getEditedContentState = useGetEditedContentState();\n\n useEffect(() => {\n getEditedContentState();\n }, []);\n\n return (\n <DictionariesRecordProvider>\n <EditedContentProvider>\n <FocusDictionaryProvider>{children}</FocusDictionaryProvider>\n </EditedContentProvider>\n </DictionariesRecordProvider>\n );\n};\n\ntype FallbackProps = {\n fallback: ReactNode;\n};\n\n/**\n * This component check if the editor is enabled to render the editor providers.\n */\nconst EditorEnabledCheckRenderer: FC<PropsWithChildren<FallbackProps>> = ({\n children,\n fallback,\n}) => {\n const getEditorEnabled = useGetEditorEnabledState();\n\n const { enabled } = useEditorEnabled();\n\n useEffect(() => {\n if (enabled) return;\n\n // Check if the editor is wrapping the application\n getEditorEnabled();\n }, [enabled]);\n\n return enabled ? children : fallback;\n};\n\n/**\n * This component is used to check if the editor is wrapping the application.\n * It avoid to send window.postMessage to the application if the editor is not wrapping the application.\n */\nconst IframeCheckRenderer: FC<PropsWithChildren<FallbackProps>> = ({\n children,\n fallback,\n}) => {\n const [isInIframe, setIsInIframe] = useState(false);\n\n useEffect(() => {\n setIsInIframe(window.self !== window.top);\n }, []);\n\n return isInIframe ? children : fallback;\n};\n\nexport type EditorProviderProps = CommunicatorProviderProps &\n ConfigurationProviderProps & {\n mode: 'editor' | 'client';\n };\n\nexport const EditorProvider: FC<PropsWithChildren<EditorProviderProps>> = ({\n children,\n configuration,\n ...props\n}) => (\n <EditorEnabledProvider>\n <ConfigurationProvider configuration={configuration}>\n {props.mode === 'editor' ? (\n <CommunicatorProvider {...props}>\n <EditorProvidersWrapper>{children}</EditorProvidersWrapper>\n </CommunicatorProvider>\n ) : (\n <IframeCheckRenderer fallback={children}>\n <CommunicatorProvider {...props}>\n <EditorEnabledCheckRenderer fallback={children}>\n <EditorProvidersWrapper>{children}</EditorProvidersWrapper>\n </EditorEnabledCheckRenderer>\n </CommunicatorProvider>\n </IframeCheckRenderer>\n )}\n </ConfigurationProvider>\n </EditorEnabledProvider>\n);\n"],"mappings":";;;;;;;;;;;;;;;;;AAiCA,MAAMA,0BAAiD,EAAE,eAAe;CACtE,MAAM,wBAAwB,0BAA0B;AAExD,iBAAgB;AACd,yBAAuB;IACtB,EAAE,CAAC;AAEN,QACE,oBAAC,wCACC,oBAAC,mCACC,oBAAC,2BAAyB,WAAmC,GACvC,GACG;;;;;AAWjC,MAAMC,8BAAoE,EACxE,UACA,eACI;CACJ,MAAM,mBAAmB,0BAA0B;CAEnD,MAAM,EAAE,YAAY,kBAAkB;AAEtC,iBAAgB;AACd,MAAI,QAAS;AAGb,oBAAkB;IACjB,CAAC,QAAQ,CAAC;AAEb,QAAO,UAAU,WAAW;;;;;;AAO9B,MAAMC,uBAA6D,EACjE,UACA,eACI;CACJ,MAAM,CAAC,YAAY,iBAAiB,SAAS,MAAM;AAEnD,iBAAgB;AACd,gBAAc,OAAO,SAAS,OAAO,IAAI;IACxC,EAAE,CAAC;AAEN,QAAO,aAAa,WAAW;;AAQjC,MAAaC,kBAA8D,EACzE,UACA,eACA,GAAG,YAEH,oBAAC,mCACC,oBAAC;CAAqC;WACnC,MAAM,SAAS,WACd,oBAAC;EAAqB,GAAI;YACxB,oBAAC,0BAAwB,WAAkC;GACtC,GAEvB,oBAAC;EAAoB,UAAU;YAC7B,oBAAC;GAAqB,GAAI;aACxB,oBAAC;IAA2B,UAAU;cACpC,oBAAC,0BAAwB,WAAkC;KAChC;IACR;GACH;EAEF,GACF"}
@@ -1,9 +1,9 @@
1
- import * as react5 from "react";
1
+ import * as react0 from "react";
2
2
  import { FC, PropsWithChildren } from "react";
3
3
  import { IntlayerConfig } from "@intlayer/types";
4
4
 
5
5
  //#region src/ConfigurationContext.d.ts
6
- declare const useConfigurationState: () => [IntlayerConfig, react5.Dispatch<react5.SetStateAction<IntlayerConfig>>, () => void];
6
+ declare const useConfigurationState: () => [IntlayerConfig, react0.Dispatch<react0.SetStateAction<IntlayerConfig>>, () => void];
7
7
  type ConfigurationProviderProps = {
8
8
  configuration?: IntlayerConfig;
9
9
  };
@@ -1,12 +1,12 @@
1
1
  import { CrossFrameStateOptions } from "./useCrossFrameState.js";
2
- import * as react7 from "react";
2
+ import * as react1 from "react";
3
3
  import { FC, PropsWithChildren } from "react";
4
4
 
5
5
  //#region src/EditorEnabledContext.d.ts
6
6
  type EditorEnabledStateProps = {
7
7
  enabled: boolean;
8
8
  };
9
- declare const useEditorEnabledState: (options?: CrossFrameStateOptions) => [boolean, react7.Dispatch<react7.SetStateAction<boolean>>, () => void];
9
+ declare const useEditorEnabledState: (options?: CrossFrameStateOptions) => [boolean, react1.Dispatch<react1.SetStateAction<boolean>>, () => void];
10
10
  declare const usePostEditorEnabledState: <S>(onEventTriggered?: (data: S) => void) => (data?: S) => void;
11
11
  declare const useGetEditorEnabledState: <S>(onEventTriggered?: (data: S) => void) => (data?: S) => void;
12
12
  declare const EditorEnabledProvider: FC<PropsWithChildren>;
@@ -1,9 +1,9 @@
1
1
  import { CrossFrameStateOptions } from "./useCrossFrameState.js";
2
- import * as react0 from "react";
2
+ import * as react5 from "react";
3
3
 
4
4
  //#region src/useCrossURLPathState.d.ts
5
- declare const useCrossURLPathState: (initialState?: string, options?: CrossFrameStateOptions) => [string, react0.Dispatch<react0.SetStateAction<string>>, () => void];
6
- declare const useCrossURLPathSetter: (initialState?: string) => [string, react0.Dispatch<react0.SetStateAction<string>>, () => void];
5
+ declare const useCrossURLPathState: (initialState?: string, options?: CrossFrameStateOptions) => [string, react5.Dispatch<react5.SetStateAction<string>>, () => void];
6
+ declare const useCrossURLPathSetter: (initialState?: string) => [string, react5.Dispatch<react5.SetStateAction<string>>, () => void];
7
7
  //#endregion
8
8
  export { useCrossURLPathSetter, useCrossURLPathState };
9
9
  //# sourceMappingURL=useCrossURLPathState.d.ts.map
@@ -1,9 +1,9 @@
1
- import * as react3 from "react";
1
+ import * as react9 from "react";
2
2
  import { Locale } from "@intlayer/types";
3
3
 
4
4
  //#region src/useEditorLocale.d.ts
5
5
  declare const useEditorLocale: () => Locale;
6
- declare const useSetEditorLocale: () => [Locale, react3.Dispatch<react3.SetStateAction<Locale>>, () => void];
6
+ declare const useSetEditorLocale: () => [Locale, react9.Dispatch<react9.SetStateAction<Locale>>, () => void];
7
7
  //#endregion
8
8
  export { useEditorLocale, useSetEditorLocale };
9
9
  //# sourceMappingURL=useEditorLocale.d.ts.map
@@ -1,11 +1,11 @@
1
1
  import { FileContent } from "./FocusDictionaryContext.js";
2
- import * as react9 from "react";
2
+ import * as react3 from "react";
3
3
  import { KeyPath } from "@intlayer/types";
4
4
 
5
5
  //#region src/useFocusUnmergedDictionary.d.ts
6
6
  declare const useFocusUnmergedDictionary: () => {
7
7
  focusedContent: FileContent;
8
- setFocusedContent: react9.Dispatch<react9.SetStateAction<FileContent>>;
8
+ setFocusedContent: react3.Dispatch<react3.SetStateAction<FileContent>>;
9
9
  setFocusedContentKeyPath: (keyPath: KeyPath[]) => void;
10
10
  };
11
11
  //#endregion
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intlayer/editor-react",
3
- "version": "7.1.4",
3
+ "version": "7.1.6",
4
4
  "private": false,
5
5
  "description": "Provides the states, contexts, hooks and components to interact with the Intlayer editor for a React application",
6
6
  "keywords": [
@@ -70,11 +70,11 @@
70
70
  "typecheck": "tsc --noEmit --project tsconfig.types.json"
71
71
  },
72
72
  "dependencies": {
73
- "@intlayer/config": "7.1.4",
74
- "@intlayer/core": "7.1.4",
75
- "@intlayer/editor": "7.1.4",
76
- "@intlayer/types": "7.1.4",
77
- "@intlayer/unmerged-dictionaries-entry": "7.1.4"
73
+ "@intlayer/config": "7.1.6",
74
+ "@intlayer/core": "7.1.6",
75
+ "@intlayer/editor": "7.1.6",
76
+ "@intlayer/types": "7.1.6",
77
+ "@intlayer/unmerged-dictionaries-entry": "7.1.6"
78
78
  },
79
79
  "devDependencies": {
80
80
  "@types/node": "24.10.1",
@@ -1,57 +0,0 @@
1
- 'use client';
2
-
3
-
4
- const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
5
- const require_useCrossFrameState = require('./useCrossFrameState.cjs');
6
- let react = require("react");
7
- react = require_rolldown_runtime.__toESM(react);
8
- let react_jsx_runtime = require("react/jsx-runtime");
9
- react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
10
- let __intlayer_editor = require("@intlayer/editor");
11
- __intlayer_editor = require_rolldown_runtime.__toESM(__intlayer_editor);
12
-
13
- //#region src/FocusDictionaryContext copy.tsx
14
- const FocusDictionaryStateContext = (0, react.createContext)(void 0);
15
- const FocusDictionaryActionsContext = (0, react.createContext)(void 0);
16
- const FocusDictionaryProvider = ({ children }) => {
17
- const [focusedContent, setFocusedContent] = require_useCrossFrameState.useCrossFrameState(__intlayer_editor.MessageKey.INTLAYER_FOCUSED_CONTENT_CHANGED, null);
18
- const setFocusedContentKeyPath = (keyPath) => {
19
- setFocusedContent((prev) => {
20
- if (!prev) return prev;
21
- return {
22
- ...prev,
23
- keyPath
24
- };
25
- });
26
- };
27
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FocusDictionaryStateContext.Provider, {
28
- value: { focusedContent },
29
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FocusDictionaryActionsContext.Provider, {
30
- value: {
31
- setFocusedContent,
32
- setFocusedContentKeyPath
33
- },
34
- children
35
- })
36
- });
37
- };
38
- const useFocusDictionaryActions = () => {
39
- const context = (0, react.useContext)(FocusDictionaryActionsContext);
40
- if (context === void 0) throw new Error("useFocusDictionaryActions must be used within a FocusDictionaryProvider");
41
- return context;
42
- };
43
- const useFocusDictionary = () => {
44
- const actionContext = useFocusDictionaryActions();
45
- const stateContext = (0, react.useContext)(FocusDictionaryStateContext);
46
- if (stateContext === void 0) throw new Error("useFocusDictionaryState must be used within a FocusDictionaryProvider");
47
- return {
48
- ...stateContext,
49
- ...actionContext
50
- };
51
- };
52
-
53
- //#endregion
54
- exports.FocusDictionaryProvider = FocusDictionaryProvider;
55
- exports.useFocusDictionary = useFocusDictionary;
56
- exports.useFocusDictionaryActions = useFocusDictionaryActions;
57
- //# sourceMappingURL=FocusDictionaryContext copy.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FocusDictionaryContext copy.cjs","names":["FocusDictionaryProvider: FC<PropsWithChildren>","useCrossFrameState","MessageKey"],"sources":["../../src/FocusDictionaryContext copy.tsx"],"sourcesContent":["'use client';\n\nimport { MessageKey } from '@intlayer/editor';\nimport type { KeyPath } from '@intlayer/types';\nimport {\n createContext,\n type Dispatch,\n type FC,\n type PropsWithChildren,\n type SetStateAction,\n useContext,\n} from 'react';\nimport { useCrossFrameState } from './useCrossFrameState';\n\nexport type FileContent = {\n dictionaryKey: string;\n dictionaryLocalId?: string;\n keyPath?: KeyPath[];\n};\n\ntype FocusDictionaryState = {\n focusedContent: FileContent | null;\n};\n\ntype FocusDictionaryActions = {\n setFocusedContent: Dispatch<SetStateAction<FileContent | null>>;\n setFocusedContentKeyPath: (keyPath: KeyPath[]) => void;\n};\n\nconst FocusDictionaryStateContext = createContext<\n FocusDictionaryState | undefined\n>(undefined);\nconst FocusDictionaryActionsContext = createContext<\n FocusDictionaryActions | undefined\n>(undefined);\n\nexport const FocusDictionaryProvider: FC<PropsWithChildren> = ({\n children,\n}) => {\n const [focusedContent, setFocusedContent] =\n useCrossFrameState<FileContent | null>(\n MessageKey.INTLAYER_FOCUSED_CONTENT_CHANGED,\n null\n );\n\n const setFocusedContentKeyPath = (keyPath: KeyPath[]) => {\n setFocusedContent((prev) => {\n if (!prev) {\n return prev; // nothing to update if there's no focused content\n }\n return { ...prev, keyPath };\n });\n };\n\n return (\n <FocusDictionaryStateContext.Provider value={{ focusedContent }}>\n <FocusDictionaryActionsContext.Provider\n value={{ setFocusedContent, setFocusedContentKeyPath }}\n >\n {children}\n </FocusDictionaryActionsContext.Provider>\n </FocusDictionaryStateContext.Provider>\n );\n};\n\nexport const useFocusDictionaryActions = () => {\n const context = useContext(FocusDictionaryActionsContext);\n if (context === undefined) {\n throw new Error(\n 'useFocusDictionaryActions must be used within a FocusDictionaryProvider'\n );\n }\n return context;\n};\n\nexport const useFocusDictionary = () => {\n const actionContext = useFocusDictionaryActions();\n const stateContext = useContext(FocusDictionaryStateContext);\n\n if (stateContext === undefined) {\n throw new Error(\n 'useFocusDictionaryState must be used within a FocusDictionaryProvider'\n );\n }\n\n return { ...stateContext, ...actionContext };\n};\n"],"mappings":";;;;;;;;;;;;;AA6BA,MAAM,uDAEJ,OAAU;AACZ,MAAM,yDAEJ,OAAU;AAEZ,MAAaA,2BAAkD,EAC7D,eACI;CACJ,MAAM,CAAC,gBAAgB,qBACrBC,8CACEC,6BAAW,kCACX,KACD;CAEH,MAAM,4BAA4B,YAAuB;AACvD,qBAAmB,SAAS;AAC1B,OAAI,CAAC,KACH,QAAO;AAET,UAAO;IAAE,GAAG;IAAM;IAAS;IAC3B;;AAGJ,QACE,2CAAC,4BAA4B;EAAS,OAAO,EAAE,gBAAgB;YAC7D,2CAAC,8BAA8B;GAC7B,OAAO;IAAE;IAAmB;IAA0B;GAErD;IACsC;GACJ;;AAI3C,MAAa,kCAAkC;CAC7C,MAAM,gCAAqB,8BAA8B;AACzD,KAAI,YAAY,OACd,OAAM,IAAI,MACR,0EACD;AAEH,QAAO;;AAGT,MAAa,2BAA2B;CACtC,MAAM,gBAAgB,2BAA2B;CACjD,MAAM,qCAA0B,4BAA4B;AAE5D,KAAI,iBAAiB,OACnB,OAAM,IAAI,MACR,wEACD;AAGH,QAAO;EAAE,GAAG;EAAc,GAAG;EAAe"}
@@ -1,24 +0,0 @@
1
- 'use client';
2
-
3
-
4
- const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
5
- const require_FocusDictionaryContext = require('./FocusDictionaryContext.cjs');
6
- let react = require("react");
7
- react = require_rolldown_runtime.__toESM(react);
8
- let __intlayer_types = require("@intlayer/types");
9
- __intlayer_types = require_rolldown_runtime.__toESM(__intlayer_types);
10
-
11
- //#region src/FocusDictionaryServerContext.tsx
12
- const unmergedKeyPathToMergedKeyPath = (keyPath) => {
13
- if (!keyPath.find((key) => key.type === __intlayer_types.NodeType.Translation)) return keyPath;
14
- return [keyPath.find((key) => key.type === __intlayer_types.NodeType.Translation), ...keyPath.filter((key) => key.type !== __intlayer_types.NodeType.Translation)];
15
- };
16
- const useFocusUnmergedDictionary = () => {
17
- const [focusedKeyPath, setFocusedKeyPath] = (0, react.useState)([]);
18
- const { setFocusedContent: setMergedFocusedContent, setFocusedContentKeyPath: setMergedFocusedContentKeyPath, focusedContent: mergedFocusedContent } = require_FocusDictionaryContext.useFocusDictionary();
19
- return { focusedContent: unmergedKeyPathToMergedKeyPath(focusedKeyPath) };
20
- };
21
-
22
- //#endregion
23
- exports.useFocusUnmergedDictionary = useFocusUnmergedDictionary;
24
- //# sourceMappingURL=FocusDictionaryServerContext.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FocusDictionaryServerContext.cjs","names":["NodeType","useFocusDictionary"],"sources":["../../src/FocusDictionaryServerContext.tsx"],"sourcesContent":["'use client';\n\nimport { type Dictionary, type KeyPath, NodeType } from '@intlayer/types';\nimport { useState } from 'react';\nimport { useFocusDictionary } from './FocusDictionaryContext';\n\nconst unmergedKeyPathToMergedKeyPath = (keyPath: KeyPath[]): KeyPath[] => {\n if (!keyPath.find((key) => key.type === NodeType.Translation)) return keyPath;\n\n const translationKeyPath = keyPath.find(\n (key) => key.type === NodeType.Translation\n )!;\n const otherKeyPath = keyPath.filter(\n (key) => key.type !== NodeType.Translation\n );\n\n return [translationKeyPath, ...otherKeyPath];\n};\n\nconst mergedKeyPathToUnmergedKeyPath = (\n keyPath: KeyPath[],\n dictionary: Dictionary\n): KeyPath[] => {\n if (!keyPath.find((key) => key.type === NodeType.Translation)) return keyPath;\n\n const translationKeyPath = keyPath.find(\n (key) => key.type === NodeType.Translation\n )!;\n const otherKeyPath = keyPath.filter(\n (key) => key.type !== NodeType.Translation\n );\n\n // it should insert the translation key path at the end and then end -1, end -2, etc.\n const candidates = Object(otherKeyPath.length).map((_, index) =>\n otherKeyPath.slice(0, index + 1)\n );\n\n for (const candidate of candidates) {\n const result = getContentNodeByKeyPath(dictionary.content, candidate);\n\n if (result) {\n return candidate;\n }\n }\n\n return null;\n};\n\nexport const useFocusUnmergedDictionary = () => {\n const [focusedKeyPath, setFocusedKeyPath] = useState<KeyPath[]>([]);\n\n const {\n setFocusedContent: setMergedFocusedContent,\n setFocusedContentKeyPath: setMergedFocusedContentKeyPath,\n focusedContent: mergedFocusedContent,\n } = useFocusDictionary();\n\n const focusedContent = unmergedKeyPathToMergedKeyPath(focusedKeyPath);\n\n return { focusedContent };\n};\n"],"mappings":";;;;;;;;;;;AAMA,MAAM,kCAAkC,YAAkC;AACxE,KAAI,CAAC,QAAQ,MAAM,QAAQ,IAAI,SAASA,0BAAS,YAAY,CAAE,QAAO;AAStE,QAAO,CAPoB,QAAQ,MAChC,QAAQ,IAAI,SAASA,0BAAS,YAChC,EAK2B,GAJP,QAAQ,QAC1B,QAAQ,IAAI,SAASA,0BAAS,YAChC,CAE2C;;AAgC9C,MAAa,mCAAmC;CAC9C,MAAM,CAAC,gBAAgB,yCAAyC,EAAE,CAAC;CAEnE,MAAM,EACJ,mBAAmB,yBACnB,0BAA0B,gCAC1B,gBAAgB,yBACdC,mDAAoB;AAIxB,QAAO,EAAE,gBAFc,+BAA+B,eAAe,EAE5C"}
@@ -1,102 +0,0 @@
1
- 'use client';
2
-
3
-
4
- const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
5
- const require_FocusDictionaryContext = require('./FocusDictionaryContext.cjs');
6
- let react = require("react");
7
- react = require_rolldown_runtime.__toESM(react);
8
- let react_jsx_runtime = require("react/jsx-runtime");
9
- react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
10
- let __intlayer_core = require("@intlayer/core");
11
- __intlayer_core = require_rolldown_runtime.__toESM(__intlayer_core);
12
- let __intlayer_types = require("@intlayer/types");
13
- __intlayer_types = require_rolldown_runtime.__toESM(__intlayer_types);
14
-
15
- //#region src/FocusDictionaryUnmergedContext.tsx
16
- /**
17
- * Transforms a keypath from unmerged dictionary format to merged dictionary format.
18
- * In merged format, translation keys come first.
19
- *
20
- * Example:
21
- * Unmerged: [{ type: 'object', key: 'title' }, { type: 'translation', key: 'fr' }]
22
- * Merged: [{ type: 'translation', key: 'fr' }, { type: 'object', key: 'title' }]
23
- */
24
- const unmergedKeyPathToMergedKeyPath = (keyPath) => {
25
- if (!keyPath || keyPath.length === 0) return keyPath;
26
- const translationKeyPath = keyPath.find((key) => key.type === __intlayer_types.NodeType.Translation);
27
- if (!translationKeyPath) return keyPath;
28
- return [translationKeyPath, ...keyPath.filter((key) => key.type !== __intlayer_types.NodeType.Translation)];
29
- };
30
- /**
31
- * Transforms a keypath from merged dictionary format to unmerged dictionary format.
32
- * In unmerged format, translation keys are placed at the appropriate nesting level.
33
- *
34
- * Example:
35
- * Merged: [{ type: 'translation', key: 'fr' }, { type: 'object', key: 'title' }]
36
- * Unmerged: [{ type: 'object', key: 'title' }, { type: 'translation', key: 'fr' }]
37
- */
38
- const mergedKeyPathToUnmergedKeyPath = (keyPath, dictionary) => {
39
- if (!keyPath || keyPath.length === 0) return keyPath;
40
- const translationKeyPath = keyPath.find((key) => key.type === __intlayer_types.NodeType.Translation);
41
- if (!translationKeyPath) return keyPath;
42
- const otherKeyPaths = keyPath.filter((key) => key.type !== __intlayer_types.NodeType.Translation);
43
- if (dictionary?.content) for (let i = otherKeyPaths.length; i >= 0; i--) {
44
- const candidateKeyPath = [
45
- ...otherKeyPaths.slice(0, i),
46
- translationKeyPath,
47
- ...otherKeyPaths.slice(i)
48
- ];
49
- try {
50
- if ((0, __intlayer_core.getContentNodeByKeyPath)(dictionary.content, candidateKeyPath)) return candidateKeyPath;
51
- } catch {}
52
- }
53
- return [...otherKeyPaths, translationKeyPath];
54
- };
55
- const FocusDictionaryUnmergedStateContext = (0, react.createContext)(void 0);
56
- const FocusDictionaryUnmergedActionsContext = (0, react.createContext)(void 0);
57
- const FocusDictionaryUnmergedProvider = ({ children }) => {
58
- const { focusedContent, setFocusedContent } = require_FocusDictionaryContext.useFocusDictionary();
59
- const { setFocusedContentKeyPath: setMergedKeyPath } = require_FocusDictionaryContext.useFocusDictionaryActions();
60
- const focusedUnmergedKeyPath = (0, react.useMemo)(() => {
61
- if (!focusedContent?.keyPath) return void 0;
62
- return focusedContent.keyPath;
63
- }, [focusedContent?.keyPath]);
64
- const setFocusedUnmergedKeyPath = (keyPath) => {
65
- setMergedKeyPath(unmergedKeyPathToMergedKeyPath(keyPath));
66
- };
67
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FocusDictionaryUnmergedStateContext.Provider, {
68
- value: {
69
- focusedContent,
70
- focusedUnmergedKeyPath
71
- },
72
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FocusDictionaryUnmergedActionsContext.Provider, {
73
- value: {
74
- setFocusedContent,
75
- setFocusedUnmergedKeyPath
76
- },
77
- children
78
- })
79
- });
80
- };
81
- const useFocusDictionaryUnmergedActions = () => {
82
- const context = (0, react.useContext)(FocusDictionaryUnmergedActionsContext);
83
- if (context === void 0) throw new Error("useFocusDictionaryUnmergedActions must be used within a FocusDictionaryUnmergedProvider");
84
- return context;
85
- };
86
- const useFocusDictionaryUnmerged = () => {
87
- const actionContext = useFocusDictionaryUnmergedActions();
88
- const stateContext = (0, react.useContext)(FocusDictionaryUnmergedStateContext);
89
- if (stateContext === void 0) throw new Error("useFocusDictionaryUnmerged must be used within a FocusDictionaryUnmergedProvider");
90
- return {
91
- ...stateContext,
92
- ...actionContext
93
- };
94
- };
95
-
96
- //#endregion
97
- exports.FocusDictionaryUnmergedProvider = FocusDictionaryUnmergedProvider;
98
- exports.mergedKeyPathToUnmergedKeyPath = mergedKeyPathToUnmergedKeyPath;
99
- exports.unmergedKeyPathToMergedKeyPath = unmergedKeyPathToMergedKeyPath;
100
- exports.useFocusDictionaryUnmerged = useFocusDictionaryUnmerged;
101
- exports.useFocusDictionaryUnmergedActions = useFocusDictionaryUnmergedActions;
102
- //# sourceMappingURL=FocusDictionaryUnmergedContext.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FocusDictionaryUnmergedContext.cjs","names":["NodeType","FocusDictionaryUnmergedProvider: FC<PropsWithChildren>","useFocusDictionary","useFocusDictionaryActions"],"sources":["../../src/FocusDictionaryUnmergedContext.tsx"],"sourcesContent":["'use client';\n\nimport { getContentNodeByKeyPath } from '@intlayer/core';\nimport type { Dictionary, KeyPath } from '@intlayer/types';\nimport { NodeType } from '@intlayer/types';\nimport {\n createContext,\n type Dispatch,\n type FC,\n type PropsWithChildren,\n type SetStateAction,\n useContext,\n useMemo,\n} from 'react';\nimport {\n type FileContent,\n useFocusDictionary,\n useFocusDictionaryActions,\n} from './FocusDictionaryContext';\n\n/**\n * Transforms a keypath from unmerged dictionary format to merged dictionary format.\n * In merged format, translation keys come first.\n *\n * Example:\n * Unmerged: [{ type: 'object', key: 'title' }, { type: 'translation', key: 'fr' }]\n * Merged: [{ type: 'translation', key: 'fr' }, { type: 'object', key: 'title' }]\n */\nconst unmergedKeyPathToMergedKeyPath = (keyPath: KeyPath[]): KeyPath[] => {\n if (!keyPath || keyPath.length === 0) return keyPath;\n\n const translationKeyPath = keyPath.find(\n (key) => key.type === NodeType.Translation\n );\n\n // If no translation key, return as is\n if (!translationKeyPath) return keyPath;\n\n const otherKeyPaths = keyPath.filter(\n (key) => key.type !== NodeType.Translation\n );\n\n // Translation key comes first in merged format\n return [translationKeyPath, ...otherKeyPaths];\n};\n\n/**\n * Transforms a keypath from merged dictionary format to unmerged dictionary format.\n * In unmerged format, translation keys are placed at the appropriate nesting level.\n *\n * Example:\n * Merged: [{ type: 'translation', key: 'fr' }, { type: 'object', key: 'title' }]\n * Unmerged: [{ type: 'object', key: 'title' }, { type: 'translation', key: 'fr' }]\n */\nconst mergedKeyPathToUnmergedKeyPath = (\n keyPath: KeyPath[],\n dictionary?: Dictionary\n): KeyPath[] => {\n if (!keyPath || keyPath.length === 0) return keyPath;\n\n const translationKeyPath = keyPath.find(\n (key) => key.type === NodeType.Translation\n );\n\n // If no translation key, return as is\n if (!translationKeyPath) return keyPath;\n\n const otherKeyPaths = keyPath.filter(\n (key) => key.type !== NodeType.Translation\n );\n\n // If we have a dictionary, try to find the correct position for the translation key\n if (dictionary?.content) {\n // Try inserting the translation key at different positions from end to start\n // to find where it should be placed in the unmerged structure\n for (let i = otherKeyPaths.length; i >= 0; i--) {\n const candidateKeyPath = [\n ...otherKeyPaths.slice(0, i),\n translationKeyPath,\n ...otherKeyPaths.slice(i),\n ];\n\n try {\n const result = getContentNodeByKeyPath(\n dictionary.content,\n candidateKeyPath\n );\n if (result) {\n return candidateKeyPath;\n }\n } catch {\n // Continue trying other positions\n }\n }\n }\n\n // Default: translation key at the end (most common unmerged format)\n return [...otherKeyPaths, translationKeyPath];\n};\n\nexport type FocusDictionaryUnmergedState = {\n focusedContent: FileContent | null;\n focusedUnmergedKeyPath: KeyPath[] | undefined;\n};\n\nexport type FocusDictionaryUnmergedActions = {\n setFocusedContent: Dispatch<SetStateAction<FileContent | null>>;\n setFocusedUnmergedKeyPath: (keyPath: KeyPath[]) => void;\n};\n\nconst FocusDictionaryUnmergedStateContext = createContext<\n FocusDictionaryUnmergedState | undefined\n>(undefined);\n\nconst FocusDictionaryUnmergedActionsContext = createContext<\n FocusDictionaryUnmergedActions | undefined\n>(undefined);\n\nexport const FocusDictionaryUnmergedProvider: FC<PropsWithChildren> = ({\n children,\n}) => {\n const { focusedContent, setFocusedContent } = useFocusDictionary();\n const { setFocusedContentKeyPath: setMergedKeyPath } =\n useFocusDictionaryActions();\n\n const focusedUnmergedKeyPath = useMemo(() => {\n if (!focusedContent?.keyPath) return undefined;\n // The focusedContent.keyPath from FocusDictionaryContext is in merged format\n // We don't transform it here because we don't have the dictionary\n // The consumer should use setFocusedUnmergedKeyPath with a dictionary\n return focusedContent.keyPath;\n }, [focusedContent?.keyPath]);\n\n const setFocusedUnmergedKeyPath = (keyPath: KeyPath[]) => {\n // Transform unmerged keypath to merged keypath before setting it\n const mergedKeyPath = unmergedKeyPathToMergedKeyPath(keyPath);\n setMergedKeyPath(mergedKeyPath);\n };\n\n return (\n <FocusDictionaryUnmergedStateContext.Provider\n value={{ focusedContent, focusedUnmergedKeyPath }}\n >\n <FocusDictionaryUnmergedActionsContext.Provider\n value={{ setFocusedContent, setFocusedUnmergedKeyPath }}\n >\n {children}\n </FocusDictionaryUnmergedActionsContext.Provider>\n </FocusDictionaryUnmergedStateContext.Provider>\n );\n};\n\nexport const useFocusDictionaryUnmergedActions = () => {\n const context = useContext(FocusDictionaryUnmergedActionsContext);\n if (context === undefined) {\n throw new Error(\n 'useFocusDictionaryUnmergedActions must be used within a FocusDictionaryUnmergedProvider'\n );\n }\n return context;\n};\n\nexport const useFocusDictionaryUnmerged = () => {\n const actionContext = useFocusDictionaryUnmergedActions();\n const stateContext = useContext(FocusDictionaryUnmergedStateContext);\n\n if (stateContext === undefined) {\n throw new Error(\n 'useFocusDictionaryUnmerged must be used within a FocusDictionaryUnmergedProvider'\n );\n }\n\n return { ...stateContext, ...actionContext };\n};\n\n// Export the mapper functions for use elsewhere\nexport { unmergedKeyPathToMergedKeyPath, mergedKeyPathToUnmergedKeyPath };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA4BA,MAAM,kCAAkC,YAAkC;AACxE,KAAI,CAAC,WAAW,QAAQ,WAAW,EAAG,QAAO;CAE7C,MAAM,qBAAqB,QAAQ,MAChC,QAAQ,IAAI,SAASA,0BAAS,YAChC;AAGD,KAAI,CAAC,mBAAoB,QAAO;AAOhC,QAAO,CAAC,oBAAoB,GALN,QAAQ,QAC3B,QAAQ,IAAI,SAASA,0BAAS,YAChC,CAG4C;;;;;;;;;;AAW/C,MAAM,kCACJ,SACA,eACc;AACd,KAAI,CAAC,WAAW,QAAQ,WAAW,EAAG,QAAO;CAE7C,MAAM,qBAAqB,QAAQ,MAChC,QAAQ,IAAI,SAASA,0BAAS,YAChC;AAGD,KAAI,CAAC,mBAAoB,QAAO;CAEhC,MAAM,gBAAgB,QAAQ,QAC3B,QAAQ,IAAI,SAASA,0BAAS,YAChC;AAGD,KAAI,YAAY,QAGd,MAAK,IAAI,IAAI,cAAc,QAAQ,KAAK,GAAG,KAAK;EAC9C,MAAM,mBAAmB;GACvB,GAAG,cAAc,MAAM,GAAG,EAAE;GAC5B;GACA,GAAG,cAAc,MAAM,EAAE;GAC1B;AAED,MAAI;AAKF,oDAHE,WAAW,SACX,iBACD,CAEC,QAAO;UAEH;;AAOZ,QAAO,CAAC,GAAG,eAAe,mBAAmB;;AAa/C,MAAM,+DAEJ,OAAU;AAEZ,MAAM,iEAEJ,OAAU;AAEZ,MAAaC,mCAA0D,EACrE,eACI;CACJ,MAAM,EAAE,gBAAgB,sBAAsBC,mDAAoB;CAClE,MAAM,EAAE,0BAA0B,qBAChCC,0DAA2B;CAE7B,MAAM,kDAAuC;AAC3C,MAAI,CAAC,gBAAgB,QAAS,QAAO;AAIrC,SAAO,eAAe;IACrB,CAAC,gBAAgB,QAAQ,CAAC;CAE7B,MAAM,6BAA6B,YAAuB;AAGxD,mBADsB,+BAA+B,QAAQ,CAC9B;;AAGjC,QACE,2CAAC,oCAAoC;EACnC,OAAO;GAAE;GAAgB;GAAwB;YAEjD,2CAAC,sCAAsC;GACrC,OAAO;IAAE;IAAmB;IAA2B;GAEtD;IAC8C;GACJ;;AAInD,MAAa,0CAA0C;CACrD,MAAM,gCAAqB,sCAAsC;AACjE,KAAI,YAAY,OACd,OAAM,IAAI,MACR,0FACD;AAEH,QAAO;;AAGT,MAAa,mCAAmC;CAC9C,MAAM,gBAAgB,mCAAmC;CACzD,MAAM,qCAA0B,oCAAoC;AAEpE,KAAI,iBAAiB,OACnB,OAAM,IAAI,MACR,mFACD;AAGH,QAAO;EAAE,GAAG;EAAc,GAAG;EAAe"}
@@ -1,10 +0,0 @@
1
-
2
- //#region ../config/dist/esm/_virtual/rolldown_runtime.mjs
3
- var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, { get: (a, b) => (typeof require !== "undefined" ? require : a)[b] }) : x)(function(x) {
4
- if (typeof require !== "undefined") return require.apply(this, arguments);
5
- throw Error("Calling `require` for \"" + x + "\" in an environment that doesn't expose the `require` function.");
6
- });
7
-
8
- //#endregion
9
- exports.__require = __require;
10
- //# sourceMappingURL=rolldown_runtime.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rolldown_runtime.cjs","names":[],"sources":["../../../../../../../config/dist/esm/_virtual/rolldown_runtime.mjs"],"sourcesContent":["//#region rolldown:runtime\nvar __defProp = Object.defineProperty;\nvar __export = (all) => {\n\tlet target = {};\n\tfor (var name in all) __defProp(target, name, {\n\t\tget: all[name],\n\t\tenumerable: true\n\t});\n\treturn target;\n};\nvar __require = /* @__PURE__ */ ((x) => typeof require !== \"undefined\" ? require : typeof Proxy !== \"undefined\" ? new Proxy(x, { get: (a, b) => (typeof require !== \"undefined\" ? require : a)[b] }) : x)(function(x) {\n\tif (typeof require !== \"undefined\") return require.apply(this, arguments);\n\tthrow Error(\"Calling `require` for \\\"\" + x + \"\\\" in an environment that doesn't expose the `require` function.\");\n});\n\n//#endregion\nexport { __export, __require };"],"mappings":";;AAUA,IAAI,YAA4B,kBAAE,MAAM,OAAO,YAAY,cAAc,UAAU,OAAO,UAAU,cAAc,IAAI,MAAM,GAAG,EAAE,MAAM,GAAG,OAAO,OAAO,YAAY,cAAc,UAAU,GAAG,IAAI,CAAC,GAAG,GAAG,SAAS,GAAG;AACrN,KAAI,OAAO,YAAY,YAAa,QAAO,QAAQ,MAAM,MAAM,UAAU;AACzE,OAAM,MAAM,6BAA6B,IAAI,mEAAmE;EAC/G"}
@@ -1,8 +0,0 @@
1
- const require_getConfiguration = require('./configFile/getConfiguration.cjs');
2
-
3
- //#region ../config/dist/esm/built.mjs
4
- var built_default = require_getConfiguration.getConfiguration();
5
-
6
- //#endregion
7
- exports.built_default = built_default;
8
- //# sourceMappingURL=built.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"built.cjs","names":["getConfiguration"],"sources":["../../../../../../config/dist/esm/built.mjs"],"sourcesContent":["import { getConfiguration } from \"./configFile/getConfiguration.mjs\";\n\n//#region src/built.ts\nconst configuration = getConfiguration();\nvar built_default = configuration;\n\n//#endregion\nexport { built_default as default };\n//# sourceMappingURL=built.mjs.map"],"mappings":";;;AAIA,IAAI,gBADkBA,2CAAkB"}
@@ -1,119 +0,0 @@
1
- const require_rolldown_runtime = require('../../../../_virtual/rolldown_runtime.cjs');
2
- const require_normalizePath = require('../utils/normalizePath.cjs');
3
- const require_build = require('../defaultValues/build.cjs');
4
- const require_content = require('../defaultValues/content.cjs');
5
- const require_dictionary = require('../defaultValues/dictionary.cjs');
6
- const require_editor = require('../defaultValues/editor.cjs');
7
- const require_internationalization = require('../defaultValues/internationalization.cjs');
8
- const require_log = require('../defaultValues/log.cjs');
9
- const require_routing = require('../defaultValues/routing.cjs');
10
- let node_path = require("node:path");
11
-
12
- //#region ../config/dist/esm/configFile/buildConfigurationFields.mjs
13
- let storedConfiguration;
14
- const buildInternationalizationFields = (customConfiguration) => ({
15
- locales: customConfiguration?.locales ?? require_internationalization.LOCALES,
16
- requiredLocales: customConfiguration?.requiredLocales ?? customConfiguration?.locales ?? require_internationalization.REQUIRED_LOCALES,
17
- strictMode: customConfiguration?.strictMode ?? require_internationalization.STRICT_MODE,
18
- defaultLocale: customConfiguration?.defaultLocale ?? require_internationalization.DEFAULT_LOCALE
19
- });
20
- const buildRoutingFields = (customConfiguration) => ({
21
- mode: customConfiguration?.mode ?? require_routing.ROUTING_MODE,
22
- storage: customConfiguration?.storage ?? require_routing.STORAGE,
23
- basePath: customConfiguration?.basePath ?? require_routing.BASE_PATH
24
- });
25
- const buildContentFields = (customConfiguration, baseDir) => {
26
- const notDerivedContentConfig = {
27
- fileExtensions: customConfiguration?.fileExtensions ?? require_content.FILE_EXTENSIONS,
28
- baseDir: customConfiguration?.baseDir ?? baseDir ?? process.cwd(),
29
- excludedPath: customConfiguration?.excludedPath ?? require_content.EXCLUDED_PATHS,
30
- watch: customConfiguration?.watch ?? require_content.WATCH,
31
- formatCommand: customConfiguration?.formatCommand
32
- };
33
- const optionalJoinBaseDir = (path) => {
34
- if ((0, node_path.isAbsolute)(path)) return path;
35
- return (0, node_path.join)(notDerivedContentConfig.baseDir, path);
36
- };
37
- const baseDirDerivedConfiguration = {
38
- contentDir: (customConfiguration?.contentDir ?? require_content.CONTENT_DIR).map(optionalJoinBaseDir),
39
- moduleAugmentationDir: optionalJoinBaseDir(customConfiguration?.moduleAugmentationDir ?? require_content.MODULE_AUGMENTATION_DIR),
40
- unmergedDictionariesDir: optionalJoinBaseDir(customConfiguration?.unmergedDictionariesDir ?? require_content.UNMERGED_DICTIONARIES_DIR),
41
- remoteDictionariesDir: optionalJoinBaseDir(customConfiguration?.remoteDictionariesDir ?? require_content.REMOTE_DICTIONARIES_DIR),
42
- dictionariesDir: optionalJoinBaseDir(customConfiguration?.dictionariesDir ?? require_content.DICTIONARIES_DIR),
43
- dynamicDictionariesDir: optionalJoinBaseDir(customConfiguration?.dynamicDictionariesDir ?? require_content.DYNAMIC_DICTIONARIES_DIR),
44
- fetchDictionariesDir: optionalJoinBaseDir(customConfiguration?.fetchDictionariesDir ?? require_content.FETCH_DICTIONARIES_DIR),
45
- typesDir: optionalJoinBaseDir(customConfiguration?.typesDir ?? require_content.TYPES_DIR),
46
- mainDir: optionalJoinBaseDir(customConfiguration?.mainDir ?? require_content.MAIN_DIR),
47
- configDir: optionalJoinBaseDir(customConfiguration?.configDir ?? require_content.CONFIG_DIR),
48
- cacheDir: optionalJoinBaseDir(customConfiguration?.cacheDir ?? require_content.CACHE_DIR)
49
- };
50
- const patternsConfiguration = {
51
- watchedFilesPattern: notDerivedContentConfig.fileExtensions.map((ext) => `/**/*${ext}`),
52
- watchedFilesPatternWithPath: notDerivedContentConfig.fileExtensions.flatMap((ext) => baseDirDerivedConfiguration.contentDir.map((contentDir) => `${require_normalizePath.normalizePath(contentDir)}/**/*${ext}`)),
53
- outputFilesPatternWithPath: `${require_normalizePath.normalizePath(baseDirDerivedConfiguration.dictionariesDir)}/**/*.json`
54
- };
55
- return {
56
- ...notDerivedContentConfig,
57
- ...baseDirDerivedConfiguration,
58
- ...patternsConfiguration
59
- };
60
- };
61
- const buildEditorFields = (customConfiguration) => ({
62
- applicationURL: customConfiguration?.applicationURL ?? require_editor.APPLICATION_URL,
63
- editorURL: customConfiguration?.editorURL ?? require_editor.EDITOR_URL,
64
- cmsURL: customConfiguration?.cmsURL ?? require_editor.CMS_URL,
65
- backendURL: customConfiguration?.backendURL ?? require_editor.BACKEND_URL,
66
- port: customConfiguration?.port ?? require_editor.PORT,
67
- enabled: customConfiguration?.enabled ?? require_editor.IS_ENABLED,
68
- clientId: customConfiguration?.clientId ?? void 0,
69
- clientSecret: customConfiguration?.clientSecret ?? void 0,
70
- dictionaryPriorityStrategy: customConfiguration?.dictionaryPriorityStrategy ?? require_editor.DICTIONARY_PRIORITY_STRATEGY,
71
- liveSync: customConfiguration?.liveSync ?? require_editor.LIVE_SYNC,
72
- liveSyncPort: customConfiguration?.liveSyncPort ?? require_editor.LIVE_SYNC_PORT,
73
- liveSyncURL: customConfiguration?.liveSyncURL ?? `http://localhost:${customConfiguration?.liveSyncPort ?? require_editor.LIVE_SYNC_PORT}`
74
- });
75
- const buildLogFields = (customConfiguration, logFunctions) => ({
76
- mode: customConfiguration?.mode ?? require_log.MODE,
77
- prefix: customConfiguration?.prefix ?? require_log.PREFIX,
78
- error: logFunctions?.error,
79
- log: logFunctions?.log,
80
- info: logFunctions?.info,
81
- warn: logFunctions?.warn
82
- });
83
- const buildAiFields = (customConfiguration) => ({
84
- provider: customConfiguration?.provider,
85
- apiKey: customConfiguration?.apiKey,
86
- model: customConfiguration?.model,
87
- temperature: customConfiguration?.temperature,
88
- applicationContext: customConfiguration?.applicationContext
89
- });
90
- const buildBuildFields = (customConfiguration) => ({
91
- optimize: customConfiguration?.optimize ?? require_build.OPTIMIZE,
92
- importMode: customConfiguration?.importMode ?? require_build.IMPORT_MODE,
93
- traversePattern: customConfiguration?.traversePattern ?? require_build.TRAVERSE_PATTERN,
94
- outputFormat: customConfiguration?.outputFormat ?? require_build.OUTPUT_FORMAT,
95
- cache: customConfiguration?.cache ?? require_build.CACHE,
96
- require: customConfiguration?.require
97
- });
98
- const buildDictionaryFields = (customConfiguration) => ({ fill: customConfiguration?.fill ?? require_dictionary.FILL });
99
- /**
100
- * Build the configuration fields by merging the default values with the custom configuration
101
- */
102
- const buildConfigurationFields = (customConfiguration, baseDir, logFunctions) => {
103
- storedConfiguration = {
104
- internationalization: buildInternationalizationFields(customConfiguration?.internationalization),
105
- routing: buildRoutingFields(customConfiguration?.routing),
106
- content: buildContentFields(customConfiguration?.content, baseDir),
107
- editor: buildEditorFields(customConfiguration?.editor),
108
- log: buildLogFields(customConfiguration?.log, logFunctions),
109
- ai: buildAiFields(customConfiguration?.ai),
110
- build: buildBuildFields(customConfiguration?.build),
111
- dictionary: buildDictionaryFields(customConfiguration?.dictionary),
112
- plugins: customConfiguration?.plugins
113
- };
114
- return storedConfiguration;
115
- };
116
-
117
- //#endregion
118
- exports.buildConfigurationFields = buildConfigurationFields;
119
- //# sourceMappingURL=buildConfigurationFields.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"buildConfigurationFields.cjs","names":["LOCALES","REQUIRED_LOCALES","STRICT_MODE","DEFAULT_LOCALE","ROUTING_MODE","STORAGE","BASE_PATH","FILE_EXTENSIONS","EXCLUDED_PATHS","WATCH","CONTENT_DIR","MODULE_AUGMENTATION_DIR","UNMERGED_DICTIONARIES_DIR","REMOTE_DICTIONARIES_DIR","DICTIONARIES_DIR","DYNAMIC_DICTIONARIES_DIR","FETCH_DICTIONARIES_DIR","TYPES_DIR","MAIN_DIR","CONFIG_DIR","CACHE_DIR","normalizePath","APPLICATION_URL","EDITOR_URL","CMS_URL","BACKEND_URL","PORT","IS_ENABLED","DICTIONARY_PRIORITY_STRATEGY","LIVE_SYNC","LIVE_SYNC_PORT","MODE","PREFIX","OPTIMIZE","IMPORT_MODE","TRAVERSE_PATTERN","OUTPUT_FORMAT","CACHE","FILL"],"sources":["../../../../../../../config/dist/esm/configFile/buildConfigurationFields.mjs"],"sourcesContent":["import { normalizePath } from \"../utils/normalizePath.mjs\";\nimport { CACHE, IMPORT_MODE, OPTIMIZE, OUTPUT_FORMAT, TRAVERSE_PATTERN } from \"../defaultValues/build.mjs\";\nimport { CACHE_DIR, CONFIG_DIR, CONTENT_DIR, DICTIONARIES_DIR, DYNAMIC_DICTIONARIES_DIR, EXCLUDED_PATHS, FETCH_DICTIONARIES_DIR, FILE_EXTENSIONS, MAIN_DIR, MODULE_AUGMENTATION_DIR, REMOTE_DICTIONARIES_DIR, TYPES_DIR, UNMERGED_DICTIONARIES_DIR, WATCH } from \"../defaultValues/content.mjs\";\nimport { FILL } from \"../defaultValues/dictionary.mjs\";\nimport { APPLICATION_URL, BACKEND_URL, CMS_URL, DICTIONARY_PRIORITY_STRATEGY, EDITOR_URL, IS_ENABLED, LIVE_SYNC, LIVE_SYNC_PORT, PORT } from \"../defaultValues/editor.mjs\";\nimport { DEFAULT_LOCALE, LOCALES, REQUIRED_LOCALES, STRICT_MODE } from \"../defaultValues/internationalization.mjs\";\nimport { MODE, PREFIX } from \"../defaultValues/log.mjs\";\nimport { BASE_PATH, ROUTING_MODE, STORAGE } from \"../defaultValues/routing.mjs\";\nimport { isAbsolute, join } from \"node:path\";\n\n//#region src/configFile/buildConfigurationFields.ts\nlet storedConfiguration;\nconst buildInternationalizationFields = (customConfiguration) => ({\n\tlocales: customConfiguration?.locales ?? LOCALES,\n\trequiredLocales: customConfiguration?.requiredLocales ?? customConfiguration?.locales ?? REQUIRED_LOCALES,\n\tstrictMode: customConfiguration?.strictMode ?? STRICT_MODE,\n\tdefaultLocale: customConfiguration?.defaultLocale ?? DEFAULT_LOCALE\n});\nconst buildRoutingFields = (customConfiguration) => ({\n\tmode: customConfiguration?.mode ?? ROUTING_MODE,\n\tstorage: customConfiguration?.storage ?? STORAGE,\n\tbasePath: customConfiguration?.basePath ?? BASE_PATH\n});\nconst buildContentFields = (customConfiguration, baseDir) => {\n\tconst notDerivedContentConfig = {\n\t\tfileExtensions: customConfiguration?.fileExtensions ?? FILE_EXTENSIONS,\n\t\tbaseDir: customConfiguration?.baseDir ?? baseDir ?? process.cwd(),\n\t\texcludedPath: customConfiguration?.excludedPath ?? EXCLUDED_PATHS,\n\t\twatch: customConfiguration?.watch ?? WATCH,\n\t\tformatCommand: customConfiguration?.formatCommand\n\t};\n\tconst optionalJoinBaseDir = (path) => {\n\t\tif (isAbsolute(path)) return path;\n\t\treturn join(notDerivedContentConfig.baseDir, path);\n\t};\n\tconst baseDirDerivedConfiguration = {\n\t\tcontentDir: (customConfiguration?.contentDir ?? CONTENT_DIR).map(optionalJoinBaseDir),\n\t\tmoduleAugmentationDir: optionalJoinBaseDir(customConfiguration?.moduleAugmentationDir ?? MODULE_AUGMENTATION_DIR),\n\t\tunmergedDictionariesDir: optionalJoinBaseDir(customConfiguration?.unmergedDictionariesDir ?? UNMERGED_DICTIONARIES_DIR),\n\t\tremoteDictionariesDir: optionalJoinBaseDir(customConfiguration?.remoteDictionariesDir ?? REMOTE_DICTIONARIES_DIR),\n\t\tdictionariesDir: optionalJoinBaseDir(customConfiguration?.dictionariesDir ?? DICTIONARIES_DIR),\n\t\tdynamicDictionariesDir: optionalJoinBaseDir(customConfiguration?.dynamicDictionariesDir ?? DYNAMIC_DICTIONARIES_DIR),\n\t\tfetchDictionariesDir: optionalJoinBaseDir(customConfiguration?.fetchDictionariesDir ?? FETCH_DICTIONARIES_DIR),\n\t\ttypesDir: optionalJoinBaseDir(customConfiguration?.typesDir ?? TYPES_DIR),\n\t\tmainDir: optionalJoinBaseDir(customConfiguration?.mainDir ?? MAIN_DIR),\n\t\tconfigDir: optionalJoinBaseDir(customConfiguration?.configDir ?? CONFIG_DIR),\n\t\tcacheDir: optionalJoinBaseDir(customConfiguration?.cacheDir ?? CACHE_DIR)\n\t};\n\tconst patternsConfiguration = {\n\t\twatchedFilesPattern: notDerivedContentConfig.fileExtensions.map((ext) => `/**/*${ext}`),\n\t\twatchedFilesPatternWithPath: notDerivedContentConfig.fileExtensions.flatMap((ext) => baseDirDerivedConfiguration.contentDir.map((contentDir) => `${normalizePath(contentDir)}/**/*${ext}`)),\n\t\toutputFilesPatternWithPath: `${normalizePath(baseDirDerivedConfiguration.dictionariesDir)}/**/*.json`\n\t};\n\treturn {\n\t\t...notDerivedContentConfig,\n\t\t...baseDirDerivedConfiguration,\n\t\t...patternsConfiguration\n\t};\n};\nconst buildEditorFields = (customConfiguration) => ({\n\tapplicationURL: customConfiguration?.applicationURL ?? APPLICATION_URL,\n\teditorURL: customConfiguration?.editorURL ?? EDITOR_URL,\n\tcmsURL: customConfiguration?.cmsURL ?? CMS_URL,\n\tbackendURL: customConfiguration?.backendURL ?? BACKEND_URL,\n\tport: customConfiguration?.port ?? PORT,\n\tenabled: customConfiguration?.enabled ?? IS_ENABLED,\n\tclientId: customConfiguration?.clientId ?? void 0,\n\tclientSecret: customConfiguration?.clientSecret ?? void 0,\n\tdictionaryPriorityStrategy: customConfiguration?.dictionaryPriorityStrategy ?? DICTIONARY_PRIORITY_STRATEGY,\n\tliveSync: customConfiguration?.liveSync ?? LIVE_SYNC,\n\tliveSyncPort: customConfiguration?.liveSyncPort ?? LIVE_SYNC_PORT,\n\tliveSyncURL: customConfiguration?.liveSyncURL ?? `http://localhost:${customConfiguration?.liveSyncPort ?? LIVE_SYNC_PORT}`\n});\nconst buildLogFields = (customConfiguration, logFunctions) => ({\n\tmode: customConfiguration?.mode ?? MODE,\n\tprefix: customConfiguration?.prefix ?? PREFIX,\n\terror: logFunctions?.error,\n\tlog: logFunctions?.log,\n\tinfo: logFunctions?.info,\n\twarn: logFunctions?.warn\n});\nconst buildAiFields = (customConfiguration) => ({\n\tprovider: customConfiguration?.provider,\n\tapiKey: customConfiguration?.apiKey,\n\tmodel: customConfiguration?.model,\n\ttemperature: customConfiguration?.temperature,\n\tapplicationContext: customConfiguration?.applicationContext\n});\nconst buildBuildFields = (customConfiguration) => ({\n\toptimize: customConfiguration?.optimize ?? OPTIMIZE,\n\timportMode: customConfiguration?.importMode ?? IMPORT_MODE,\n\ttraversePattern: customConfiguration?.traversePattern ?? TRAVERSE_PATTERN,\n\toutputFormat: customConfiguration?.outputFormat ?? OUTPUT_FORMAT,\n\tcache: customConfiguration?.cache ?? CACHE,\n\trequire: customConfiguration?.require\n});\nconst buildDictionaryFields = (customConfiguration) => ({ fill: customConfiguration?.fill ?? FILL });\n/**\n* Build the configuration fields by merging the default values with the custom configuration\n*/\nconst buildConfigurationFields = (customConfiguration, baseDir, logFunctions) => {\n\tstoredConfiguration = {\n\t\tinternationalization: buildInternationalizationFields(customConfiguration?.internationalization),\n\t\trouting: buildRoutingFields(customConfiguration?.routing),\n\t\tcontent: buildContentFields(customConfiguration?.content, baseDir),\n\t\teditor: buildEditorFields(customConfiguration?.editor),\n\t\tlog: buildLogFields(customConfiguration?.log, logFunctions),\n\t\tai: buildAiFields(customConfiguration?.ai),\n\t\tbuild: buildBuildFields(customConfiguration?.build),\n\t\tdictionary: buildDictionaryFields(customConfiguration?.dictionary),\n\t\tplugins: customConfiguration?.plugins\n\t};\n\treturn storedConfiguration;\n};\n\n//#endregion\nexport { buildConfigurationFields };\n//# sourceMappingURL=buildConfigurationFields.mjs.map"],"mappings":";;;;;;;;;;;;AAWA,IAAI;AACJ,MAAM,mCAAmC,yBAAyB;CACjE,SAAS,qBAAqB,WAAWA;CACzC,iBAAiB,qBAAqB,mBAAmB,qBAAqB,WAAWC;CACzF,YAAY,qBAAqB,cAAcC;CAC/C,eAAe,qBAAqB,iBAAiBC;CACrD;AACD,MAAM,sBAAsB,yBAAyB;CACpD,MAAM,qBAAqB,QAAQC;CACnC,SAAS,qBAAqB,WAAWC;CACzC,UAAU,qBAAqB,YAAYC;CAC3C;AACD,MAAM,sBAAsB,qBAAqB,YAAY;CAC5D,MAAM,0BAA0B;EAC/B,gBAAgB,qBAAqB,kBAAkBC;EACvD,SAAS,qBAAqB,WAAW,WAAW,QAAQ,KAAK;EACjE,cAAc,qBAAqB,gBAAgBC;EACnD,OAAO,qBAAqB,SAASC;EACrC,eAAe,qBAAqB;EACpC;CACD,MAAM,uBAAuB,SAAS;AACrC,gCAAe,KAAK,CAAE,QAAO;AAC7B,6BAAY,wBAAwB,SAAS,KAAK;;CAEnD,MAAM,8BAA8B;EACnC,aAAa,qBAAqB,cAAcC,6BAAa,IAAI,oBAAoB;EACrF,uBAAuB,oBAAoB,qBAAqB,yBAAyBC,wCAAwB;EACjH,yBAAyB,oBAAoB,qBAAqB,2BAA2BC,0CAA0B;EACvH,uBAAuB,oBAAoB,qBAAqB,yBAAyBC,wCAAwB;EACjH,iBAAiB,oBAAoB,qBAAqB,mBAAmBC,iCAAiB;EAC9F,wBAAwB,oBAAoB,qBAAqB,0BAA0BC,yCAAyB;EACpH,sBAAsB,oBAAoB,qBAAqB,wBAAwBC,uCAAuB;EAC9G,UAAU,oBAAoB,qBAAqB,YAAYC,0BAAU;EACzE,SAAS,oBAAoB,qBAAqB,WAAWC,yBAAS;EACtE,WAAW,oBAAoB,qBAAqB,aAAaC,2BAAW;EAC5E,UAAU,oBAAoB,qBAAqB,YAAYC,0BAAU;EACzE;CACD,MAAM,wBAAwB;EAC7B,qBAAqB,wBAAwB,eAAe,KAAK,QAAQ,QAAQ,MAAM;EACvF,6BAA6B,wBAAwB,eAAe,SAAS,QAAQ,4BAA4B,WAAW,KAAK,eAAe,GAAGC,oCAAc,WAAW,CAAC,OAAO,MAAM,CAAC;EAC3L,4BAA4B,GAAGA,oCAAc,4BAA4B,gBAAgB,CAAC;EAC1F;AACD,QAAO;EACN,GAAG;EACH,GAAG;EACH,GAAG;EACH;;AAEF,MAAM,qBAAqB,yBAAyB;CACnD,gBAAgB,qBAAqB,kBAAkBC;CACvD,WAAW,qBAAqB,aAAaC;CAC7C,QAAQ,qBAAqB,UAAUC;CACvC,YAAY,qBAAqB,cAAcC;CAC/C,MAAM,qBAAqB,QAAQC;CACnC,SAAS,qBAAqB,WAAWC;CACzC,UAAU,qBAAqB,YAAY,KAAK;CAChD,cAAc,qBAAqB,gBAAgB,KAAK;CACxD,4BAA4B,qBAAqB,8BAA8BC;CAC/E,UAAU,qBAAqB,YAAYC;CAC3C,cAAc,qBAAqB,gBAAgBC;CACnD,aAAa,qBAAqB,eAAe,oBAAoB,qBAAqB,gBAAgBA;CAC1G;AACD,MAAM,kBAAkB,qBAAqB,kBAAkB;CAC9D,MAAM,qBAAqB,QAAQC;CACnC,QAAQ,qBAAqB,UAAUC;CACvC,OAAO,cAAc;CACrB,KAAK,cAAc;CACnB,MAAM,cAAc;CACpB,MAAM,cAAc;CACpB;AACD,MAAM,iBAAiB,yBAAyB;CAC/C,UAAU,qBAAqB;CAC/B,QAAQ,qBAAqB;CAC7B,OAAO,qBAAqB;CAC5B,aAAa,qBAAqB;CAClC,oBAAoB,qBAAqB;CACzC;AACD,MAAM,oBAAoB,yBAAyB;CAClD,UAAU,qBAAqB,YAAYC;CAC3C,YAAY,qBAAqB,cAAcC;CAC/C,iBAAiB,qBAAqB,mBAAmBC;CACzD,cAAc,qBAAqB,gBAAgBC;CACnD,OAAO,qBAAqB,SAASC;CACrC,SAAS,qBAAqB;CAC9B;AACD,MAAM,yBAAyB,yBAAyB,EAAE,MAAM,qBAAqB,QAAQC,yBAAM;;;;AAInG,MAAM,4BAA4B,qBAAqB,SAAS,iBAAiB;AAChF,uBAAsB;EACrB,sBAAsB,gCAAgC,qBAAqB,qBAAqB;EAChG,SAAS,mBAAmB,qBAAqB,QAAQ;EACzD,SAAS,mBAAmB,qBAAqB,SAAS,QAAQ;EAClE,QAAQ,kBAAkB,qBAAqB,OAAO;EACtD,KAAK,eAAe,qBAAqB,KAAK,aAAa;EAC3D,IAAI,cAAc,qBAAqB,GAAG;EAC1C,OAAO,iBAAiB,qBAAqB,MAAM;EACnD,YAAY,sBAAsB,qBAAqB,WAAW;EAClE,SAAS,qBAAqB;EAC9B;AACD,QAAO"}