@intlayer/design-system 4.0.3 → 4.0.5

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 (274) hide show
  1. package/dist/.vite/manifest.json +34 -43
  2. package/dist/components/Auth/AuthModal/index.cjs +1 -1
  3. package/dist/components/Auth/AuthModal/index.mjs +1 -1
  4. package/dist/components/Auth/ExternalsLoginButtons/ExternalsLoginButtons.cjs +2 -1
  5. package/dist/components/Auth/ExternalsLoginButtons/ExternalsLoginButtons.cjs.map +1 -1
  6. package/dist/components/Auth/ExternalsLoginButtons/ExternalsLoginButtons.mjs +2 -1
  7. package/dist/components/Auth/ExternalsLoginButtons/ExternalsLoginButtons.mjs.map +1 -1
  8. package/dist/components/Auth/useAuth/index.cjs +8 -4
  9. package/dist/components/Auth/useAuth/index.cjs.map +1 -1
  10. package/dist/components/Auth/useAuth/index.d.ts +3 -1
  11. package/dist/components/Auth/useAuth/index.d.ts.map +1 -1
  12. package/dist/components/Auth/useAuth/index.mjs +8 -4
  13. package/dist/components/Auth/useAuth/index.mjs.map +1 -1
  14. package/dist/components/Auth/useAuth/useCSRF.cjs +6 -3
  15. package/dist/components/Auth/useAuth/useCSRF.cjs.map +1 -1
  16. package/dist/components/Auth/useAuth/useCSRF.d.ts +2 -1
  17. package/dist/components/Auth/useAuth/useCSRF.d.ts.map +1 -1
  18. package/dist/components/Auth/useAuth/useCSRF.mjs +5 -2
  19. package/dist/components/Auth/useAuth/useCSRF.mjs.map +1 -1
  20. package/dist/components/Auth/useAuth/useOAuth2.cjs +6 -5
  21. package/dist/components/Auth/useAuth/useOAuth2.cjs.map +1 -1
  22. package/dist/components/Auth/useAuth/useOAuth2.d.ts +2 -1
  23. package/dist/components/Auth/useAuth/useOAuth2.d.ts.map +1 -1
  24. package/dist/components/Auth/useAuth/useOAuth2.mjs +5 -4
  25. package/dist/components/Auth/useAuth/useOAuth2.mjs.map +1 -1
  26. package/dist/components/Auth/useAuth/useSession.cjs +6 -3
  27. package/dist/components/Auth/useAuth/useSession.cjs.map +1 -1
  28. package/dist/components/Auth/useAuth/useSession.d.ts +2 -1
  29. package/dist/components/Auth/useAuth/useSession.d.ts.map +1 -1
  30. package/dist/components/Auth/useAuth/useSession.mjs +6 -3
  31. package/dist/components/Auth/useAuth/useSession.mjs.map +1 -1
  32. package/dist/components/Auth/useUser/index.cjs +1 -1
  33. package/dist/components/Auth/useUser/index.mjs +1 -1
  34. package/dist/components/Button/Button.cjs +9 -9
  35. package/dist/components/Button/Button.cjs.map +1 -1
  36. package/dist/components/Button/Button.mjs +9 -9
  37. package/dist/components/Button/Button.mjs.map +1 -1
  38. package/dist/components/Container/index.d.ts +2 -2
  39. package/dist/components/DictionaryEditor/DictionaryEditor.cjs +5 -4
  40. package/dist/components/DictionaryEditor/DictionaryEditor.cjs.map +1 -1
  41. package/dist/components/DictionaryEditor/DictionaryEditor.d.ts +1 -0
  42. package/dist/components/DictionaryEditor/DictionaryEditor.d.ts.map +1 -1
  43. package/dist/components/DictionaryEditor/DictionaryEditor.mjs +5 -4
  44. package/dist/components/DictionaryEditor/DictionaryEditor.mjs.map +1 -1
  45. package/dist/components/DictionaryEditor/NodeWrapper/ArrayWrapper.cjs +2 -1
  46. package/dist/components/DictionaryEditor/NodeWrapper/ArrayWrapper.cjs.map +1 -1
  47. package/dist/components/DictionaryEditor/NodeWrapper/ArrayWrapper.d.ts.map +1 -1
  48. package/dist/components/DictionaryEditor/NodeWrapper/ArrayWrapper.mjs +2 -1
  49. package/dist/components/DictionaryEditor/NodeWrapper/ArrayWrapper.mjs.map +1 -1
  50. package/dist/components/DictionaryEditor/NodeWrapper/EnumerationWrapper.cjs +1 -1
  51. package/dist/components/DictionaryEditor/NodeWrapper/EnumerationWrapper.mjs +1 -1
  52. package/dist/components/DictionaryEditor/NodeWrapper/NestedObjectWrapper.cjs +2 -1
  53. package/dist/components/DictionaryEditor/NodeWrapper/NestedObjectWrapper.cjs.map +1 -1
  54. package/dist/components/DictionaryEditor/NodeWrapper/NestedObjectWrapper.d.ts.map +1 -1
  55. package/dist/components/DictionaryEditor/NodeWrapper/NestedObjectWrapper.mjs +2 -1
  56. package/dist/components/DictionaryEditor/NodeWrapper/NestedObjectWrapper.mjs.map +1 -1
  57. package/dist/components/DictionaryEditor/NodeWrapper/StringWrapper.cjs +3 -3
  58. package/dist/components/DictionaryEditor/NodeWrapper/StringWrapper.cjs.map +1 -1
  59. package/dist/components/DictionaryEditor/NodeWrapper/StringWrapper.mjs +2 -2
  60. package/dist/components/DictionaryEditor/NodeWrapper/StringWrapper.mjs.map +1 -1
  61. package/dist/components/DictionaryEditor/NodeWrapper/TranslationWrapper.cjs +1 -1
  62. package/dist/components/DictionaryEditor/NodeWrapper/TranslationWrapper.mjs +1 -1
  63. package/dist/components/DictionaryEditor/NodeWrapper/index.cjs +1 -1
  64. package/dist/components/DictionaryEditor/NodeWrapper/index.mjs +1 -1
  65. package/dist/components/DictionaryEditor/ValidDictionaryChangeButtons.cjs +29 -12
  66. package/dist/components/DictionaryEditor/ValidDictionaryChangeButtons.cjs.map +1 -1
  67. package/dist/components/DictionaryEditor/ValidDictionaryChangeButtons.d.ts +1 -0
  68. package/dist/components/DictionaryEditor/ValidDictionaryChangeButtons.d.ts.map +1 -1
  69. package/dist/components/DictionaryEditor/ValidDictionaryChangeButtons.mjs +31 -14
  70. package/dist/components/DictionaryEditor/ValidDictionaryChangeButtons.mjs.map +1 -1
  71. package/dist/components/DictionaryEditor/validDictionaryChangeButtons.content.cjs +32 -0
  72. package/dist/components/DictionaryEditor/validDictionaryChangeButtons.content.cjs.map +1 -1
  73. package/dist/components/DictionaryEditor/validDictionaryChangeButtons.content.d.ts +4 -0
  74. package/dist/components/DictionaryEditor/validDictionaryChangeButtons.content.d.ts.map +1 -1
  75. package/dist/components/DictionaryEditor/validDictionaryChangeButtons.content.mjs +32 -0
  76. package/dist/components/DictionaryEditor/validDictionaryChangeButtons.content.mjs.map +1 -1
  77. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.cjs +5 -3
  78. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.cjs.map +1 -1
  79. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.d.ts +1 -0
  80. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.d.ts.map +1 -1
  81. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.mjs +5 -3
  82. package/dist/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.mjs.map +1 -1
  83. package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.cjs +4 -2
  84. package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.cjs.map +1 -1
  85. package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.mjs +4 -2
  86. package/dist/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.mjs.map +1 -1
  87. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.cjs +45 -14
  88. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.cjs.map +1 -1
  89. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.d.ts +1 -0
  90. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.d.ts.map +1 -1
  91. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.mjs +48 -17
  92. package/dist/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.mjs.map +1 -1
  93. package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.cjs +32 -0
  94. package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.cjs.map +1 -1
  95. package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.d.ts +4 -0
  96. package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.d.ts.map +1 -1
  97. package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.mjs +32 -0
  98. package/dist/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.mjs.map +1 -1
  99. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.cjs +7 -15
  100. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.cjs.map +1 -1
  101. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.d.ts +1 -0
  102. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.d.ts.map +1 -1
  103. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.mjs +8 -16
  104. package/dist/components/DictionaryFieldEditor/DictionaryFieldEditor.mjs.map +1 -1
  105. package/dist/components/DictionaryFieldEditor/EditorView/EditorView.cjs +8 -5
  106. package/dist/components/DictionaryFieldEditor/EditorView/EditorView.cjs.map +1 -1
  107. package/dist/components/DictionaryFieldEditor/EditorView/EditorView.d.ts.map +1 -1
  108. package/dist/components/DictionaryFieldEditor/EditorView/EditorView.mjs +7 -4
  109. package/dist/components/DictionaryFieldEditor/EditorView/EditorView.mjs.map +1 -1
  110. package/dist/components/DictionaryFieldEditor/EditorView/TextEditor.cjs +2 -2
  111. package/dist/components/DictionaryFieldEditor/EditorView/TextEditor.cjs.map +1 -1
  112. package/dist/components/DictionaryFieldEditor/EditorView/TextEditor.d.ts.map +1 -1
  113. package/dist/components/DictionaryFieldEditor/EditorView/TextEditor.mjs +2 -2
  114. package/dist/components/DictionaryFieldEditor/EditorView/TextEditor.mjs.map +1 -1
  115. package/dist/components/DictionaryFieldEditor/JSONEditor.cjs +1 -1
  116. package/dist/components/DictionaryFieldEditor/JSONEditor.cjs.map +1 -1
  117. package/dist/components/DictionaryFieldEditor/JSONEditor.mjs +1 -1
  118. package/dist/components/DictionaryFieldEditor/JSONEditor.mjs.map +1 -1
  119. package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.cjs +6 -5
  120. package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.cjs.map +1 -1
  121. package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.d.ts.map +1 -1
  122. package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.mjs +2 -1
  123. package/dist/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.mjs.map +1 -1
  124. package/dist/components/DictionaryFieldEditor/NodeEditor.cjs +1 -9
  125. package/dist/components/DictionaryFieldEditor/NodeEditor.cjs.map +1 -1
  126. package/dist/components/DictionaryFieldEditor/NodeEditor.d.ts.map +1 -1
  127. package/dist/components/DictionaryFieldEditor/NodeEditor.mjs +2 -10
  128. package/dist/components/DictionaryFieldEditor/NodeEditor.mjs.map +1 -1
  129. package/dist/components/DictionaryFieldEditor/NodeTypeSelector.cjs +2 -1
  130. package/dist/components/DictionaryFieldEditor/NodeTypeSelector.cjs.map +1 -1
  131. package/dist/components/DictionaryFieldEditor/NodeTypeSelector.d.ts.map +1 -1
  132. package/dist/components/DictionaryFieldEditor/NodeTypeSelector.mjs +2 -1
  133. package/dist/components/DictionaryFieldEditor/NodeTypeSelector.mjs.map +1 -1
  134. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.cjs +51 -22
  135. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.cjs.map +1 -1
  136. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.d.ts +1 -0
  137. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.d.ts.map +1 -1
  138. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs +52 -23
  139. package/dist/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs.map +1 -1
  140. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.cjs +32 -0
  141. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.cjs.map +1 -1
  142. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.d.ts +4 -0
  143. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.d.ts.map +1 -1
  144. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.mjs +32 -0
  145. package/dist/components/DictionaryFieldEditor/SaveForm/saveForm.content.mjs.map +1 -1
  146. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcherContext.cjs +2 -2
  147. package/dist/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcherContext.mjs +2 -2
  148. package/dist/components/EditableField/EditableFieldLayout.cjs +8 -4
  149. package/dist/components/EditableField/EditableFieldLayout.cjs.map +1 -1
  150. package/dist/components/EditableField/EditableFieldLayout.d.ts.map +1 -1
  151. package/dist/components/EditableField/EditableFieldLayout.mjs +8 -4
  152. package/dist/components/EditableField/EditableFieldLayout.mjs.map +1 -1
  153. package/dist/components/IDE/CodeContext.cjs +2 -2
  154. package/dist/components/IDE/CodeContext.mjs +2 -2
  155. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.cjs +4 -4
  156. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.cjs.map +1 -1
  157. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.mjs +4 -4
  158. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.mjs.map +1 -1
  159. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContentContext.cjs +2 -2
  160. package/dist/components/LocaleSwitcherContentDropDown/LocaleSwitcherContentContext.mjs +2 -2
  161. package/dist/components/Modal/Modal.cjs +11 -7
  162. package/dist/components/Modal/Modal.cjs.map +1 -1
  163. package/dist/components/Modal/Modal.d.ts.map +1 -1
  164. package/dist/components/Modal/Modal.mjs +11 -7
  165. package/dist/components/Modal/Modal.mjs.map +1 -1
  166. package/dist/components/Navbar/MobileNavbar.cjs +2 -2
  167. package/dist/components/Navbar/MobileNavbar.mjs +2 -2
  168. package/dist/components/Navbar/index.cjs +2 -2
  169. package/dist/components/Navbar/index.mjs +2 -2
  170. package/dist/components/RightDrawer/RightDrawer.cjs +32 -15
  171. package/dist/components/RightDrawer/RightDrawer.cjs.map +1 -1
  172. package/dist/components/RightDrawer/RightDrawer.d.ts.map +1 -1
  173. package/dist/components/RightDrawer/RightDrawer.mjs +32 -15
  174. package/dist/components/RightDrawer/RightDrawer.mjs.map +1 -1
  175. package/dist/components/SwitchSelector/index.cjs +2 -2
  176. package/dist/components/SwitchSelector/index.mjs +2 -2
  177. package/dist/components/TabSelector/TabSelector.cjs +2 -2
  178. package/dist/components/TabSelector/TabSelector.mjs +2 -2
  179. package/dist/hooks/index.cjs +1 -0
  180. package/dist/hooks/index.cjs.map +1 -1
  181. package/dist/hooks/index.mjs +3 -2
  182. package/dist/hooks/intlayerAPIHooks.cjs +15 -1
  183. package/dist/hooks/intlayerAPIHooks.cjs.map +1 -1
  184. package/dist/hooks/intlayerAPIHooks.d.ts +53 -49
  185. package/dist/hooks/intlayerAPIHooks.d.ts.map +1 -1
  186. package/dist/hooks/intlayerAPIHooks.mjs +16 -2
  187. package/dist/hooks/intlayerAPIHooks.mjs.map +1 -1
  188. package/dist/hooks/useAsync/useAsync.cjs +14 -0
  189. package/dist/hooks/useAsync/useAsync.cjs.map +1 -1
  190. package/dist/hooks/useAsync/useAsync.d.ts.map +1 -1
  191. package/dist/hooks/useAsync/useAsync.mjs +14 -0
  192. package/dist/hooks/useAsync/useAsync.mjs.map +1 -1
  193. package/dist/hooks/useGetAllDictionaries.cjs +3 -2
  194. package/dist/hooks/useGetAllDictionaries.cjs.map +1 -1
  195. package/dist/hooks/useGetAllDictionaries.d.ts +2 -2
  196. package/dist/hooks/useGetAllDictionaries.d.ts.map +1 -1
  197. package/dist/hooks/useGetAllDictionaries.mjs +3 -2
  198. package/dist/hooks/useGetAllDictionaries.mjs.map +1 -1
  199. package/dist/hooks/useIntlayerAPI.cjs +10 -7
  200. package/dist/hooks/useIntlayerAPI.cjs.map +1 -1
  201. package/dist/hooks/useIntlayerAPI.d.ts +11 -2
  202. package/dist/hooks/useIntlayerAPI.d.ts.map +1 -1
  203. package/dist/hooks/useIntlayerAPI.mjs +10 -7
  204. package/dist/hooks/useIntlayerAPI.mjs.map +1 -1
  205. package/dist/hooks/usePersistedStore.cjs +25 -18
  206. package/dist/hooks/usePersistedStore.cjs.map +1 -1
  207. package/dist/hooks/usePersistedStore.d.ts +2 -2
  208. package/dist/hooks/usePersistedStore.d.ts.map +1 -1
  209. package/dist/hooks/usePersistedStore.mjs +26 -19
  210. package/dist/hooks/usePersistedStore.mjs.map +1 -1
  211. package/dist/index-B-VAyQ9R.js +673 -0
  212. package/dist/index-B-VAyQ9R.js.map +1 -0
  213. package/dist/index-B-adg6xa.js +206 -0
  214. package/dist/index-B-adg6xa.js.map +1 -0
  215. package/dist/index-B1nU1-65.cjs +690 -0
  216. package/dist/index-B1nU1-65.cjs.map +1 -0
  217. package/dist/index-BIV0x_z2.js +206 -0
  218. package/dist/index-BIV0x_z2.js.map +1 -0
  219. package/dist/index-BIyA5LAs.js +691 -0
  220. package/dist/index-BIyA5LAs.js.map +1 -0
  221. package/dist/index-BNH9wXVj.cjs +205 -0
  222. package/dist/index-BNH9wXVj.cjs.map +1 -0
  223. package/dist/index-BqZwP4Lr.js +691 -0
  224. package/dist/index-BqZwP4Lr.js.map +1 -0
  225. package/dist/index-Buecpjbh.cjs +690 -0
  226. package/dist/index-Buecpjbh.cjs.map +1 -0
  227. package/dist/index-CDEJjmId.js +694 -0
  228. package/dist/index-CDEJjmId.js.map +1 -0
  229. package/dist/index-CTAyk6RY.cjs +693 -0
  230. package/dist/index-CTAyk6RY.cjs.map +1 -0
  231. package/dist/index-CVC2sfEj.js +693 -0
  232. package/dist/index-CVC2sfEj.js.map +1 -0
  233. package/dist/index-CVz0RdK6.js +691 -0
  234. package/dist/index-CVz0RdK6.js.map +1 -0
  235. package/dist/index-CjF2ksU7.cjs +693 -0
  236. package/dist/index-CjF2ksU7.cjs.map +1 -0
  237. package/dist/index-CuQs5759.cjs +692 -0
  238. package/dist/index-CuQs5759.cjs.map +1 -0
  239. package/dist/index-D69JRZcQ.js +206 -0
  240. package/dist/index-D69JRZcQ.js.map +1 -0
  241. package/dist/index-DAsui9u9.cjs +205 -0
  242. package/dist/index-DAsui9u9.cjs.map +1 -0
  243. package/dist/index-D_MDocy7.cjs +690 -0
  244. package/dist/index-D_MDocy7.cjs.map +1 -0
  245. package/dist/index-Djo2Jnua.cjs +693 -0
  246. package/dist/index-Djo2Jnua.cjs.map +1 -0
  247. package/dist/index-LFTthFne.js +694 -0
  248. package/dist/index-LFTthFne.js.map +1 -0
  249. package/dist/index-SOIahRpS.cjs +205 -0
  250. package/dist/index-SOIahRpS.cjs.map +1 -0
  251. package/dist/index-T-TjVQoD.js +671 -0
  252. package/dist/index-T-TjVQoD.js.map +1 -0
  253. package/dist/index-f8_VC6c8.cjs +672 -0
  254. package/dist/index-f8_VC6c8.cjs.map +1 -0
  255. package/dist/index-llGIfxqV.cjs +670 -0
  256. package/dist/index-llGIfxqV.cjs.map +1 -0
  257. package/dist/index-xZoGTokf.js +694 -0
  258. package/dist/index-xZoGTokf.js.map +1 -0
  259. package/dist/tailwind.config.cjs.map +1 -1
  260. package/dist/tailwind.config.mjs.map +1 -1
  261. package/dist/tailwind.css +1 -1
  262. package/dist/useGetAllDictionaries-B1sqs2IB.cjs +34 -0
  263. package/dist/useGetAllDictionaries-B1sqs2IB.cjs.map +1 -0
  264. package/dist/useGetAllDictionaries-BbH8vTkY.js +35 -0
  265. package/dist/useGetAllDictionaries-BbH8vTkY.js.map +1 -0
  266. package/dist/useGetAllDictionaries-Bgkytpa2.cjs +34 -0
  267. package/dist/useGetAllDictionaries-Bgkytpa2.cjs.map +1 -0
  268. package/dist/useGetAllDictionaries-D8ma3h41.cjs +33 -0
  269. package/dist/useGetAllDictionaries-D8ma3h41.cjs.map +1 -0
  270. package/dist/useGetAllDictionaries-DHgHEbD5.js +34 -0
  271. package/dist/useGetAllDictionaries-DHgHEbD5.js.map +1 -0
  272. package/dist/useGetAllDictionaries-DUzm0rIa.js +35 -0
  273. package/dist/useGetAllDictionaries-DUzm0rIa.js.map +1 -0
  274. package/package.json +21 -16
@@ -1 +1 @@
1
- {"version":3,"file":"DictionariesSelector.mjs","sources":["../../../../src/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.tsx"],"sourcesContent":["'use client';\n\nimport { Locales } from '@intlayer/config';\nimport { useFocusDictionary } from '@intlayer/editor-react';\nimport { useMemo, type FC } from 'react';\n// @ts-ignore react-intlayer not build yet\nimport { useDictionary } from 'react-intlayer';\nimport { useGetAllDictionaries } from '../../../hooks';\nimport { Loader } from '../../Loader';\nimport { DictionaryFieldEditor } from '../DictionaryFieldEditor';\nimport { dictionariesSelectorContent } from './dictionariesSelector.content';\n\ntype DictionariesSelectorProps = {\n onClickDictionaryList: () => void;\n isDarkMode?: boolean;\n availableLocales: Locales[];\n};\n\nexport const DictionariesSelector: FC<DictionariesSelectorProps> = ({\n onClickDictionaryList,\n isDarkMode,\n availableLocales,\n}) => {\n const { online, locale, isLoading } = useGetAllDictionaries();\n const { focusedContent } = useFocusDictionary();\n const { noDictionaryMessage, dictionaryNotFoundMessage } = useDictionary(\n dictionariesSelectorContent\n );\n const dictionary = useMemo(\n () =>\n focusedContent?.dictionaryKey\n ? (online?.[focusedContent?.dictionaryKey] ??\n locale?.[focusedContent?.dictionaryKey])\n : null,\n [online, locale, focusedContent?.dictionaryKey]\n );\n\n if (isLoading) return <Loader />;\n\n if (!focusedContent?.dictionaryKey) return noDictionaryMessage;\n\n if (!dictionary) return dictionaryNotFoundMessage;\n\n return (\n <DictionaryFieldEditor\n dictionary={dictionary}\n onClickDictionaryList={onClickDictionaryList}\n isDarkMode={isDarkMode}\n availableLocales={availableLocales}\n />\n );\n};\n"],"names":["jsx"],"mappings":";;;;;;;;;;;;;;AAkBO,MAAM,uBAAsD,CAAC;AAAA,EAClE;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,EAAE,QAAQ,QAAQ,UAAA,IAAc,sBAAsB;AACtD,QAAA,EAAE,eAAe,IAAI,mBAAmB;AACxC,QAAA,EAAE,qBAAqB,0BAAA,IAA8B;AAAA,IACzD;AAAA,EACF;AACA,QAAM,aAAa;AAAA,IACjB,MACE,gBAAgB,gBACX,SAAS,gBAAgB,aAAa,KACvC,SAAS,gBAAgB,aAAa,IACtC;AAAA,IACN,CAAC,QAAQ,QAAQ,gBAAgB,aAAa;AAAA,EAChD;AAEI,MAAA,UAAkB,QAAAA,sCAAC,QAAO,CAAA,CAAA;AAE1B,MAAA,CAAC,gBAAgB,cAAsB,QAAA;AAEvC,MAAA,CAAC,WAAmB,QAAA;AAGtB,SAAAA,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
1
+ {"version":3,"file":"DictionariesSelector.mjs","sources":["../../../../src/components/DictionaryFieldEditor/DictionariesSelector/DictionariesSelector.tsx"],"sourcesContent":["'use client';\n\nimport { Locales } from '@intlayer/config';\nimport { useFocusDictionary } from '@intlayer/editor-react';\nimport { useMemo, type FC } from 'react';\n// @ts-ignore react-intlayer not build yet\nimport { useDictionary } from 'react-intlayer';\nimport { useGetAllDictionaries } from '../../../hooks';\nimport { Loader } from '../../Loader';\nimport { DictionaryFieldEditor } from '../DictionaryFieldEditor';\nimport { dictionariesSelectorContent } from './dictionariesSelector.content';\n\ntype DictionariesSelectorProps = {\n onClickDictionaryList: () => void;\n isDarkMode?: boolean;\n availableLocales: Locales[];\n mode: 'local' | 'remote';\n};\n\nexport const DictionariesSelector: FC<DictionariesSelectorProps> = ({\n onClickDictionaryList,\n isDarkMode,\n availableLocales,\n mode,\n}) => {\n const { online, locale, isLoading } = useGetAllDictionaries();\n const { focusedContent } = useFocusDictionary();\n const { noDictionaryMessage, dictionaryNotFoundMessage } = useDictionary(\n dictionariesSelectorContent\n );\n const dictionary = useMemo(\n () =>\n focusedContent?.dictionaryKey\n ? (online?.[focusedContent?.dictionaryKey] ??\n locale?.[focusedContent?.dictionaryKey])\n : null,\n [online, locale, focusedContent?.dictionaryKey]\n );\n\n if (isLoading) return <Loader />;\n\n if (!focusedContent?.dictionaryKey) return noDictionaryMessage;\n\n if (!dictionary) return dictionaryNotFoundMessage;\n\n return (\n <DictionaryFieldEditor\n dictionary={dictionary}\n onClickDictionaryList={onClickDictionaryList}\n isDarkMode={isDarkMode}\n availableLocales={availableLocales}\n mode={mode}\n />\n );\n};\n"],"names":["jsx"],"mappings":";;;;;;;;;;;;;;AAmBO,MAAM,uBAAsD,CAAC;AAAA,EAClE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,EAAE,QAAQ,QAAQ,UAAA,IAAc,sBAAsB;AACtD,QAAA,EAAE,eAAe,IAAI,mBAAmB;AACxC,QAAA,EAAE,qBAAqB,0BAAA,IAA8B;AAAA,IACzD;AAAA,EACF;AACA,QAAM,aAAa;AAAA,IACjB,MACE,gBAAgB,gBACX,SAAS,gBAAgB,aAAa,KACvC,SAAS,gBAAgB,aAAa,IACtC;AAAA,IACN,CAAC,QAAQ,QAAQ,gBAAgB,aAAa;AAAA,EAChD;AAEI,MAAA,UAAkB,QAAAA,sCAAC,QAAO,CAAA,CAAA;AAE1B,MAAA,CAAC,gBAAgB,cAAsB,QAAA;AAEvC,MAAA,CAAC,WAAmB,QAAA;AAGtB,SAAAA,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
@@ -4,7 +4,8 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
4
4
  const jsxRuntime = require("../../../jsx-runtime-CgFM7lM3.cjs");
5
5
  const reactIntlayer = require("react-intlayer");
6
6
  const hooks_intlayerAPIHooks = require("../../../hooks/intlayerAPIHooks.cjs");
7
- require("../../../index-DFc7og1d.cjs");
7
+ require("../../../index-CuQs5759.cjs");
8
+ require("@intlayer/config/client");
8
9
  require("../../Button/Button.cjs");
9
10
  require("../../Auth/ExternalsLoginButtons/externalsLoginButtons.content.cjs");
10
11
  const components_Form_FormBase = require("../../Form/FormBase.cjs");
@@ -17,7 +18,7 @@ require("../../Auth/SignUpForm/useSignUpSchema.content.cjs");
17
18
  require("react");
18
19
  require("../../../hooks/useScrollBlockage/useScrollBlockageStore.cjs");
19
20
  require("../../../hooks/useAsync/useAsyncStateStore.cjs");
20
- require("@intlayer/dictionaries-entry");
21
+ require("@intlayer/editor-react");
21
22
  require("deepmerge");
22
23
  const components_Auth_useAuth_index = require("../../Auth/useAuth/index.cjs");
23
24
  require("../../Auth/ChangePasswordForm/changePasswordForm.content.cjs");
@@ -27,6 +28,7 @@ require("../../Auth/ResetPasswordForm/useResetPasswordSchema.content.cjs");
27
28
  require("../../Modal/Modal.cjs");
28
29
  require("clsx");
29
30
  require("tailwind-merge");
31
+ require("@intlayer/api");
30
32
  const components_Select_Multiselect = require("../../Select/Multiselect.cjs");
31
33
  require("../../Select/Select.cjs");
32
34
  const components_DictionaryFieldEditor_DictionaryCreationForm_dictionaryCreationForm_content = require("./dictionaryCreationForm.content.cjs");
@@ -1 +1 @@
1
- {"version":3,"file":"DictionaryCreationForm.cjs","sources":["../../../../src/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.tsx"],"sourcesContent":["'use client';\n\nimport { type FC } from 'react';\n// @ts-ignore react-intlayer not build yet\nimport { useDictionary } from 'react-intlayer';\nimport {\n useAddDictionary,\n useGetProjects,\n} from '../../../hooks/intlayerAPIHooks';\nimport { useAuth } from '../../Auth';\nimport { Form, useForm } from '../../Form';\nimport { MultiSelect } from '../../Select';\nimport { dictionaryFormContent } from './dictionaryCreationForm.content';\nimport {\n useDictionarySchema,\n type DictionaryFormData,\n} from './useDictionaryFormSchema';\n\nexport const DictionaryCreationForm: FC = () => {\n const { session } = useAuth();\n const { project } = session ?? {};\n const { addDictionary } = useAddDictionary();\n const { data: projects } = useGetProjects();\n const DictionarySchema = useDictionarySchema(String(project?._id));\n const { form, isSubmitting } = useForm(DictionarySchema);\n const { keyInput, createDictionaryButton, projectInput } = useDictionary(\n dictionaryFormContent\n );\n\n const onSubmitSuccess = async (data: DictionaryFormData) => {\n await addDictionary(data);\n };\n\n return (\n <Form\n schema={DictionarySchema}\n onSubmitSuccess={onSubmitSuccess}\n className=\"w-full max-w-[400px]\"\n {...form}\n >\n <Form.Input\n name=\"key\"\n label={keyInput.label}\n placeholder={keyInput.placeholder}\n isRequired\n />\n\n <Form.MultiSelect name=\"projectIds\" label={projectInput.label}>\n <MultiSelect.Trigger\n getBadgeValue={(value) =>\n projects?.data?.find((project) => String(project._id) === value)\n ?.name ?? value\n }\n >\n <MultiSelect.Input placeholder={projectInput.placeholder} />\n </MultiSelect.Trigger>\n <MultiSelect.Content>\n <MultiSelect.List>\n {projects?.data?.map((project) => (\n <MultiSelect.Item\n key={String(project._id)}\n value={String(project._id)}\n >\n {project.name}\n </MultiSelect.Item>\n ))}\n </MultiSelect.List>\n </MultiSelect.Content>\n </Form.MultiSelect>\n\n <Form.Button\n className=\"ml-auto mt-12\"\n type=\"submit\"\n color=\"text\"\n isLoading={isSubmitting}\n label={createDictionaryButton.ariaLabel}\n >\n {createDictionaryButton.text}\n </Form.Button>\n </Form>\n );\n};\n"],"names":["useAuth","useAddDictionary","useGetProjects","useDictionarySchema","useForm","useDictionary","dictionaryFormContent","jsxs","Form","jsx","MultiSelect","project"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBO,MAAM,yBAA6B,MAAM;AACxC,QAAA,EAAE,QAAQ,IAAIA,sCAAQ;AAC5B,QAAM,EAAE,YAAY,WAAW,CAAC;AAC1B,QAAA,EAAE,cAAc,IAAIC,wCAAiB;AAC3C,QAAM,EAAE,MAAM,SAAS,IAAIC,sCAAe;AAC1C,QAAM,mBAAmBC,gFAAA,oBAAoB,OAAO,SAAS,GAAG,CAAC;AACjE,QAAM,EAAE,MAAM,iBAAiBC,yBAAAA,QAAQ,gBAAgB;AACvD,QAAM,EAAE,UAAU,wBAAwB,aAAiB,IAAAC,cAAA;AAAA,IACzDC,uFAAAA;AAAAA,EACF;AAEM,QAAA,kBAAkB,OAAO,SAA6B;AAC1D,UAAM,cAAc,IAAI;AAAA,EAC1B;AAGE,SAAAC,2BAAA,kBAAA;AAAA,IAACC,sCAAA;AAAA,IAAA;AAAA,MACC,QAAQ;AAAA,MACR;AAAA,MACA,WAAU;AAAA,MACT,GAAG;AAAA,MAEJ,UAAA;AAAA,QAAAC,2BAAA,kBAAA;AAAA,UAACD,sCAAAA,KAAK;AAAA,UAAL;AAAA,YACC,MAAK;AAAA,YACL,OAAO,SAAS;AAAA,YAChB,aAAa,SAAS;AAAA,YACtB,YAAU;AAAA,UAAA;AAAA,QACZ;AAAA,QAEAD,kDAACC,sCAAAA,KAAK,aAAL,EAAiB,MAAK,cAAa,OAAO,aAAa,OACtD,UAAA;AAAA,UAAAC,2BAAA,kBAAA;AAAA,YAACC,8BAAAA,YAAY;AAAA,YAAZ;AAAA,cACC,eAAe,CAAC,UACd,UAAU,MAAM,KAAK,CAACC,aAAY,OAAOA,SAAQ,GAAG,MAAM,KAAK,GAC3D,QAAQ;AAAA,cAGd,2DAACD,0CAAY,OAAZ,EAAkB,aAAa,aAAa,YAAa,CAAA;AAAA,YAAA;AAAA,UAC5D;AAAA,UACCD,2BAAAA,kBAAAA,IAAAC,8BAAAA,YAAY,SAAZ,EACC,UAACD,2BAAA,kBAAA,IAAAC,8BAAA,YAAY,MAAZ,EACE,UAAU,UAAA,MAAM,IAAI,CAACC,aACpBF,2BAAA,kBAAA;AAAA,YAACC,8BAAAA,YAAY;AAAA,YAAZ;AAAA,cAEC,OAAO,OAAOC,SAAQ,GAAG;AAAA,cAExB,UAAAA,SAAQ;AAAA,YAAA;AAAA,YAHJ,OAAOA,SAAQ,GAAG;AAAA,UAK1B,CAAA,EACH,CAAA,EACF,CAAA;AAAA,QAAA,GACF;AAAA,QAEAF,2BAAA,kBAAA;AAAA,UAACD,sCAAAA,KAAK;AAAA,UAAL;AAAA,YACC,WAAU;AAAA,YACV,MAAK;AAAA,YACL,OAAM;AAAA,YACN,WAAW;AAAA,YACX,OAAO,uBAAuB;AAAA,YAE7B,UAAuB,uBAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAC1B;AAAA,IAAA;AAAA,EACF;AAEJ;;"}
1
+ {"version":3,"file":"DictionaryCreationForm.cjs","sources":["../../../../src/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.tsx"],"sourcesContent":["'use client';\n\nimport { type FC } from 'react';\n// @ts-ignore react-intlayer not build yet\nimport { useDictionary } from 'react-intlayer';\nimport {\n useAddDictionary,\n useGetProjects,\n} from '../../../hooks/intlayerAPIHooks';\nimport { useAuth } from '../../Auth';\nimport { Form, useForm } from '../../Form';\nimport { MultiSelect } from '../../Select';\nimport { dictionaryFormContent } from './dictionaryCreationForm.content';\nimport {\n useDictionarySchema,\n type DictionaryFormData,\n} from './useDictionaryFormSchema';\n\nexport const DictionaryCreationForm: FC = () => {\n const { session } = useAuth();\n const { project } = session ?? {};\n const { addDictionary } = useAddDictionary();\n const { data: projects } = useGetProjects();\n const DictionarySchema = useDictionarySchema(String(project?._id));\n const { form, isSubmitting } = useForm(DictionarySchema);\n const { keyInput, createDictionaryButton, projectInput } = useDictionary(\n dictionaryFormContent\n );\n\n const onSubmitSuccess = async (data: DictionaryFormData) => {\n await addDictionary(data);\n };\n\n return (\n <Form\n schema={DictionarySchema}\n onSubmitSuccess={onSubmitSuccess}\n className=\"w-full max-w-[400px]\"\n {...form}\n >\n <Form.Input\n name=\"key\"\n label={keyInput.label}\n placeholder={keyInput.placeholder}\n isRequired\n />\n\n <Form.MultiSelect name=\"projectIds\" label={projectInput.label}>\n <MultiSelect.Trigger\n getBadgeValue={(value) =>\n projects?.data?.find((project) => String(project._id) === value)\n ?.name ?? value\n }\n >\n <MultiSelect.Input placeholder={projectInput.placeholder} />\n </MultiSelect.Trigger>\n <MultiSelect.Content>\n <MultiSelect.List>\n {projects?.data?.map((project) => (\n <MultiSelect.Item\n key={String(project._id)}\n value={String(project._id)}\n >\n {project.name}\n </MultiSelect.Item>\n ))}\n </MultiSelect.List>\n </MultiSelect.Content>\n </Form.MultiSelect>\n\n <Form.Button\n className=\"ml-auto mt-12\"\n type=\"submit\"\n color=\"text\"\n isLoading={isSubmitting}\n label={createDictionaryButton.ariaLabel}\n >\n {createDictionaryButton.text}\n </Form.Button>\n </Form>\n );\n};\n"],"names":["useAuth","useAddDictionary","useGetProjects","useDictionarySchema","useForm","useDictionary","dictionaryFormContent","jsxs","Form","jsx","MultiSelect","project"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBO,MAAM,yBAA6B,MAAM;AACxC,QAAA,EAAE,QAAQ,IAAIA,sCAAQ;AAC5B,QAAM,EAAE,YAAY,WAAW,CAAC;AAC1B,QAAA,EAAE,cAAc,IAAIC,wCAAiB;AAC3C,QAAM,EAAE,MAAM,SAAS,IAAIC,sCAAe;AAC1C,QAAM,mBAAmBC,gFAAA,oBAAoB,OAAO,SAAS,GAAG,CAAC;AACjE,QAAM,EAAE,MAAM,iBAAiBC,yBAAAA,QAAQ,gBAAgB;AACvD,QAAM,EAAE,UAAU,wBAAwB,aAAiB,IAAAC,cAAA;AAAA,IACzDC,uFAAAA;AAAAA,EACF;AAEM,QAAA,kBAAkB,OAAO,SAA6B;AAC1D,UAAM,cAAc,IAAI;AAAA,EAC1B;AAGE,SAAAC,2BAAA,kBAAA;AAAA,IAACC,sCAAA;AAAA,IAAA;AAAA,MACC,QAAQ;AAAA,MACR;AAAA,MACA,WAAU;AAAA,MACT,GAAG;AAAA,MAEJ,UAAA;AAAA,QAAAC,2BAAA,kBAAA;AAAA,UAACD,sCAAAA,KAAK;AAAA,UAAL;AAAA,YACC,MAAK;AAAA,YACL,OAAO,SAAS;AAAA,YAChB,aAAa,SAAS;AAAA,YACtB,YAAU;AAAA,UAAA;AAAA,QACZ;AAAA,QAEAD,kDAACC,sCAAAA,KAAK,aAAL,EAAiB,MAAK,cAAa,OAAO,aAAa,OACtD,UAAA;AAAA,UAAAC,2BAAA,kBAAA;AAAA,YAACC,8BAAAA,YAAY;AAAA,YAAZ;AAAA,cACC,eAAe,CAAC,UACd,UAAU,MAAM,KAAK,CAACC,aAAY,OAAOA,SAAQ,GAAG,MAAM,KAAK,GAC3D,QAAQ;AAAA,cAGd,2DAACD,0CAAY,OAAZ,EAAkB,aAAa,aAAa,YAAa,CAAA;AAAA,YAAA;AAAA,UAC5D;AAAA,UACCD,2BAAAA,kBAAAA,IAAAC,8BAAAA,YAAY,SAAZ,EACC,UAACD,2BAAA,kBAAA,IAAAC,8BAAA,YAAY,MAAZ,EACE,UAAU,UAAA,MAAM,IAAI,CAACC,aACpBF,2BAAA,kBAAA;AAAA,YAACC,8BAAAA,YAAY;AAAA,YAAZ;AAAA,cAEC,OAAO,OAAOC,SAAQ,GAAG;AAAA,cAExB,UAAAA,SAAQ;AAAA,YAAA;AAAA,YAHJ,OAAOA,SAAQ,GAAG;AAAA,UAK1B,CAAA,EACH,CAAA,EACF,CAAA;AAAA,QAAA,GACF;AAAA,QAEAF,2BAAA,kBAAA;AAAA,UAACD,sCAAAA,KAAK;AAAA,UAAL;AAAA,YACC,WAAU;AAAA,YACV,MAAK;AAAA,YACL,OAAM;AAAA,YACN,WAAW;AAAA,YACX,OAAO,uBAAuB;AAAA,YAE7B,UAAuB,uBAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAC1B;AAAA,IAAA;AAAA,EACF;AAEJ;;"}
@@ -2,7 +2,8 @@
2
2
  import { j as jsxRuntimeExports } from "../../../jsx-runtime-DQkoUcjV.js";
3
3
  import { useDictionary } from "react-intlayer";
4
4
  import { useAddDictionary, useGetProjects } from "../../../hooks/intlayerAPIHooks.mjs";
5
- import "../../../index-DcWYZrJW.js";
5
+ import "../../../index-CVC2sfEj.js";
6
+ import "@intlayer/config/client";
6
7
  import "../../Button/Button.mjs";
7
8
  import "../../Auth/ExternalsLoginButtons/externalsLoginButtons.content.mjs";
8
9
  import { useForm } from "../../Form/FormBase.mjs";
@@ -15,7 +16,7 @@ import "../../Auth/SignUpForm/useSignUpSchema.content.mjs";
15
16
  import "react";
16
17
  import "../../../hooks/useScrollBlockage/useScrollBlockageStore.mjs";
17
18
  import "../../../hooks/useAsync/useAsyncStateStore.mjs";
18
- import "@intlayer/dictionaries-entry";
19
+ import "@intlayer/editor-react";
19
20
  import "deepmerge";
20
21
  import { useAuth } from "../../Auth/useAuth/index.mjs";
21
22
  import "../../Auth/ChangePasswordForm/changePasswordForm.content.mjs";
@@ -25,6 +26,7 @@ import "../../Auth/ResetPasswordForm/useResetPasswordSchema.content.mjs";
25
26
  import "../../Modal/Modal.mjs";
26
27
  import "clsx";
27
28
  import "tailwind-merge";
29
+ import "@intlayer/api";
28
30
  import { MultiSelect } from "../../Select/Multiselect.mjs";
29
31
  import "../../Select/Select.mjs";
30
32
  import { dictionaryFormContent } from "./dictionaryCreationForm.content.mjs";
@@ -1 +1 @@
1
- {"version":3,"file":"DictionaryCreationForm.mjs","sources":["../../../../src/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.tsx"],"sourcesContent":["'use client';\n\nimport { type FC } from 'react';\n// @ts-ignore react-intlayer not build yet\nimport { useDictionary } from 'react-intlayer';\nimport {\n useAddDictionary,\n useGetProjects,\n} from '../../../hooks/intlayerAPIHooks';\nimport { useAuth } from '../../Auth';\nimport { Form, useForm } from '../../Form';\nimport { MultiSelect } from '../../Select';\nimport { dictionaryFormContent } from './dictionaryCreationForm.content';\nimport {\n useDictionarySchema,\n type DictionaryFormData,\n} from './useDictionaryFormSchema';\n\nexport const DictionaryCreationForm: FC = () => {\n const { session } = useAuth();\n const { project } = session ?? {};\n const { addDictionary } = useAddDictionary();\n const { data: projects } = useGetProjects();\n const DictionarySchema = useDictionarySchema(String(project?._id));\n const { form, isSubmitting } = useForm(DictionarySchema);\n const { keyInput, createDictionaryButton, projectInput } = useDictionary(\n dictionaryFormContent\n );\n\n const onSubmitSuccess = async (data: DictionaryFormData) => {\n await addDictionary(data);\n };\n\n return (\n <Form\n schema={DictionarySchema}\n onSubmitSuccess={onSubmitSuccess}\n className=\"w-full max-w-[400px]\"\n {...form}\n >\n <Form.Input\n name=\"key\"\n label={keyInput.label}\n placeholder={keyInput.placeholder}\n isRequired\n />\n\n <Form.MultiSelect name=\"projectIds\" label={projectInput.label}>\n <MultiSelect.Trigger\n getBadgeValue={(value) =>\n projects?.data?.find((project) => String(project._id) === value)\n ?.name ?? value\n }\n >\n <MultiSelect.Input placeholder={projectInput.placeholder} />\n </MultiSelect.Trigger>\n <MultiSelect.Content>\n <MultiSelect.List>\n {projects?.data?.map((project) => (\n <MultiSelect.Item\n key={String(project._id)}\n value={String(project._id)}\n >\n {project.name}\n </MultiSelect.Item>\n ))}\n </MultiSelect.List>\n </MultiSelect.Content>\n </Form.MultiSelect>\n\n <Form.Button\n className=\"ml-auto mt-12\"\n type=\"submit\"\n color=\"text\"\n isLoading={isSubmitting}\n label={createDictionaryButton.ariaLabel}\n >\n {createDictionaryButton.text}\n </Form.Button>\n </Form>\n );\n};\n"],"names":["jsxs","jsx","project"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBO,MAAM,yBAA6B,MAAM;AACxC,QAAA,EAAE,QAAQ,IAAI,QAAQ;AAC5B,QAAM,EAAE,YAAY,WAAW,CAAC;AAC1B,QAAA,EAAE,cAAc,IAAI,iBAAiB;AAC3C,QAAM,EAAE,MAAM,SAAS,IAAI,eAAe;AAC1C,QAAM,mBAAmB,oBAAoB,OAAO,SAAS,GAAG,CAAC;AACjE,QAAM,EAAE,MAAM,iBAAiB,QAAQ,gBAAgB;AACvD,QAAM,EAAE,UAAU,wBAAwB,aAAiB,IAAA;AAAA,IACzD;AAAA,EACF;AAEM,QAAA,kBAAkB,OAAO,SAA6B;AAC1D,UAAM,cAAc,IAAI;AAAA,EAC1B;AAGE,SAAAA,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,QAAQ;AAAA,MACR;AAAA,MACA,WAAU;AAAA,MACT,GAAG;AAAA,MAEJ,UAAA;AAAA,QAAAC,kCAAA;AAAA,UAAC,KAAK;AAAA,UAAL;AAAA,YACC,MAAK;AAAA,YACL,OAAO,SAAS;AAAA,YAChB,aAAa,SAAS;AAAA,YACtB,YAAU;AAAA,UAAA;AAAA,QACZ;AAAA,QAEAD,uCAAC,KAAK,aAAL,EAAiB,MAAK,cAAa,OAAO,aAAa,OACtD,UAAA;AAAA,UAAAC,kCAAA;AAAA,YAAC,YAAY;AAAA,YAAZ;AAAA,cACC,eAAe,CAAC,UACd,UAAU,MAAM,KAAK,CAACC,aAAY,OAAOA,SAAQ,GAAG,MAAM,KAAK,GAC3D,QAAQ;AAAA,cAGd,gDAAC,YAAY,OAAZ,EAAkB,aAAa,aAAa,YAAa,CAAA;AAAA,YAAA;AAAA,UAC5D;AAAA,UACCD,kCAAAA,IAAA,YAAY,SAAZ,EACC,UAACA,kCAAA,IAAA,YAAY,MAAZ,EACE,UAAU,UAAA,MAAM,IAAI,CAACC,aACpBD,kCAAA;AAAA,YAAC,YAAY;AAAA,YAAZ;AAAA,cAEC,OAAO,OAAOC,SAAQ,GAAG;AAAA,cAExB,UAAAA,SAAQ;AAAA,YAAA;AAAA,YAHJ,OAAOA,SAAQ,GAAG;AAAA,UAK1B,CAAA,EACH,CAAA,EACF,CAAA;AAAA,QAAA,GACF;AAAA,QAEAD,kCAAA;AAAA,UAAC,KAAK;AAAA,UAAL;AAAA,YACC,WAAU;AAAA,YACV,MAAK;AAAA,YACL,OAAM;AAAA,YACN,WAAW;AAAA,YACX,OAAO,uBAAuB;AAAA,YAE7B,UAAuB,uBAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAC1B;AAAA,IAAA;AAAA,EACF;AAEJ;"}
1
+ {"version":3,"file":"DictionaryCreationForm.mjs","sources":["../../../../src/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.tsx"],"sourcesContent":["'use client';\n\nimport { type FC } from 'react';\n// @ts-ignore react-intlayer not build yet\nimport { useDictionary } from 'react-intlayer';\nimport {\n useAddDictionary,\n useGetProjects,\n} from '../../../hooks/intlayerAPIHooks';\nimport { useAuth } from '../../Auth';\nimport { Form, useForm } from '../../Form';\nimport { MultiSelect } from '../../Select';\nimport { dictionaryFormContent } from './dictionaryCreationForm.content';\nimport {\n useDictionarySchema,\n type DictionaryFormData,\n} from './useDictionaryFormSchema';\n\nexport const DictionaryCreationForm: FC = () => {\n const { session } = useAuth();\n const { project } = session ?? {};\n const { addDictionary } = useAddDictionary();\n const { data: projects } = useGetProjects();\n const DictionarySchema = useDictionarySchema(String(project?._id));\n const { form, isSubmitting } = useForm(DictionarySchema);\n const { keyInput, createDictionaryButton, projectInput } = useDictionary(\n dictionaryFormContent\n );\n\n const onSubmitSuccess = async (data: DictionaryFormData) => {\n await addDictionary(data);\n };\n\n return (\n <Form\n schema={DictionarySchema}\n onSubmitSuccess={onSubmitSuccess}\n className=\"w-full max-w-[400px]\"\n {...form}\n >\n <Form.Input\n name=\"key\"\n label={keyInput.label}\n placeholder={keyInput.placeholder}\n isRequired\n />\n\n <Form.MultiSelect name=\"projectIds\" label={projectInput.label}>\n <MultiSelect.Trigger\n getBadgeValue={(value) =>\n projects?.data?.find((project) => String(project._id) === value)\n ?.name ?? value\n }\n >\n <MultiSelect.Input placeholder={projectInput.placeholder} />\n </MultiSelect.Trigger>\n <MultiSelect.Content>\n <MultiSelect.List>\n {projects?.data?.map((project) => (\n <MultiSelect.Item\n key={String(project._id)}\n value={String(project._id)}\n >\n {project.name}\n </MultiSelect.Item>\n ))}\n </MultiSelect.List>\n </MultiSelect.Content>\n </Form.MultiSelect>\n\n <Form.Button\n className=\"ml-auto mt-12\"\n type=\"submit\"\n color=\"text\"\n isLoading={isSubmitting}\n label={createDictionaryButton.ariaLabel}\n >\n {createDictionaryButton.text}\n </Form.Button>\n </Form>\n );\n};\n"],"names":["jsxs","jsx","project"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBO,MAAM,yBAA6B,MAAM;AACxC,QAAA,EAAE,QAAQ,IAAI,QAAQ;AAC5B,QAAM,EAAE,YAAY,WAAW,CAAC;AAC1B,QAAA,EAAE,cAAc,IAAI,iBAAiB;AAC3C,QAAM,EAAE,MAAM,SAAS,IAAI,eAAe;AAC1C,QAAM,mBAAmB,oBAAoB,OAAO,SAAS,GAAG,CAAC;AACjE,QAAM,EAAE,MAAM,iBAAiB,QAAQ,gBAAgB;AACvD,QAAM,EAAE,UAAU,wBAAwB,aAAiB,IAAA;AAAA,IACzD;AAAA,EACF;AAEM,QAAA,kBAAkB,OAAO,SAA6B;AAC1D,UAAM,cAAc,IAAI;AAAA,EAC1B;AAGE,SAAAA,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,QAAQ;AAAA,MACR;AAAA,MACA,WAAU;AAAA,MACT,GAAG;AAAA,MAEJ,UAAA;AAAA,QAAAC,kCAAA;AAAA,UAAC,KAAK;AAAA,UAAL;AAAA,YACC,MAAK;AAAA,YACL,OAAO,SAAS;AAAA,YAChB,aAAa,SAAS;AAAA,YACtB,YAAU;AAAA,UAAA;AAAA,QACZ;AAAA,QAEAD,uCAAC,KAAK,aAAL,EAAiB,MAAK,cAAa,OAAO,aAAa,OACtD,UAAA;AAAA,UAAAC,kCAAA;AAAA,YAAC,YAAY;AAAA,YAAZ;AAAA,cACC,eAAe,CAAC,UACd,UAAU,MAAM,KAAK,CAACC,aAAY,OAAOA,SAAQ,GAAG,MAAM,KAAK,GAC3D,QAAQ;AAAA,cAGd,gDAAC,YAAY,OAAZ,EAAkB,aAAa,aAAa,YAAa,CAAA;AAAA,YAAA;AAAA,UAC5D;AAAA,UACCD,kCAAAA,IAAA,YAAY,SAAZ,EACC,UAACA,kCAAA,IAAA,YAAY,MAAZ,EACE,UAAU,UAAA,MAAM,IAAI,CAACC,aACpBD,kCAAA;AAAA,YAAC,YAAY;AAAA,YAAZ;AAAA,cAEC,OAAO,OAAOC,SAAQ,GAAG;AAAA,cAExB,UAAAA,SAAQ;AAAA,YAAA;AAAA,YAHJ,OAAOA,SAAQ,GAAG;AAAA,UAK1B,CAAA,EACH,CAAA,EACF,CAAA;AAAA,QAAA,GACF;AAAA,QAEAD,kCAAA;AAAA,UAAC,KAAK;AAAA,UAAL;AAAA,YACC,WAAU;AAAA,YACV,MAAK;AAAA,YACL,OAAM;AAAA,YACN,WAAW;AAAA,YACX,OAAO,uBAAuB;AAAA,YAE7B,UAAuB,uBAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAC1B;AAAA,IAAA;AAAA,EACF;AAEJ;"}
@@ -2,15 +2,16 @@
2
2
  "use strict";
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
4
4
  const jsxRuntime = require("../../../jsx-runtime-CgFM7lM3.cjs");
5
+ const editorReact = require("@intlayer/editor-react");
5
6
  const lucideReact = require("lucide-react");
6
7
  const require$$0 = require("react");
7
8
  const reactIntlayer = require("react-intlayer");
8
9
  require("../../../hooks/useScrollBlockage/useScrollBlockageStore.cjs");
9
10
  require("../../../hooks/useAsync/useAsyncStateStore.cjs");
10
11
  const hooks_intlayerAPIHooks = require("../../../hooks/intlayerAPIHooks.cjs");
11
- require("@intlayer/dictionaries-entry");
12
12
  require("deepmerge");
13
- require("../../../index-DFc7og1d.cjs");
13
+ require("../../../index-CuQs5759.cjs");
14
+ require("@intlayer/config/client");
14
15
  require("../../Button/Button.cjs");
15
16
  require("../../Auth/ExternalsLoginButtons/externalsLoginButtons.content.cjs");
16
17
  const components_Form_FormBase = require("../../Form/FormBase.cjs");
@@ -27,12 +28,14 @@ require("../../Auth/ResetPasswordForm/resetPasswordContent.content.cjs");
27
28
  require("../../Auth/ResetPasswordForm/useResetPasswordSchema.content.cjs");
28
29
  require("../../Modal/Modal.cjs");
29
30
  const components_Loader_index = require("../../Loader/index.cjs");
31
+ require("@intlayer/api");
30
32
  const components_Select_Multiselect = require("../../Select/Multiselect.cjs");
31
33
  const components_Select_Select = require("../../Select/Select.cjs");
32
34
  const components_DictionaryFieldEditor_DictionaryDetails_dictionaryDetails_content = require("./dictionaryDetails.content.cjs");
33
35
  const components_DictionaryFieldEditor_DictionaryDetails_useDictionaryDetailsSchema = require("./useDictionaryDetailsSchema.cjs");
34
36
  const DictionaryDetailsForm = ({
35
- dictionary
37
+ dictionary,
38
+ mode
36
39
  }) => {
37
40
  const { session } = components_Auth_useAuth_index.useAuth();
38
41
  const { project } = session ?? {};
@@ -58,21 +61,30 @@ const DictionaryDetailsForm = ({
58
61
  saveButton,
59
62
  projectInput,
60
63
  tagsSelect,
61
- auditButton
64
+ auditButton,
65
+ downloadButton
62
66
  } = reactIntlayer.useDictionary(components_DictionaryFieldEditor_DictionaryDetails_dictionaryDetails_content.dictionaryDetailsContent);
63
67
  const { auditContentDeclaration, isLoading: isAuditing } = hooks_intlayerAPIHooks.useAuditContentDeclarationMetadata();
68
+ const { writeDictionary } = hooks_intlayerAPIHooks.useWriteDictionary();
64
69
  require$$0.useEffect(() => {
65
70
  form.reset(dictionaryValue);
66
71
  }, [dictionary, form?.reset]);
67
72
  const isFormEdited = form.formState.isDirty;
68
73
  const isLocalDictionary = typeof dictionary?._id === "undefined";
69
74
  const onSubmitSuccess = async (data) => {
70
- await pushDictionaries([
71
- {
75
+ if (mode === "remote") {
76
+ await pushDictionaries([
77
+ {
78
+ ...dictionary,
79
+ ...data
80
+ }
81
+ ]);
82
+ } else {
83
+ await writeDictionary({
72
84
  ...dictionary,
73
85
  ...data
74
- }
75
- ]);
86
+ });
87
+ }
76
88
  };
77
89
  const handleOnAuditFile = async () => {
78
90
  const updatedDictionary = form.getValues();
@@ -81,10 +93,10 @@ const DictionaryDetailsForm = ({
81
93
  }).then((response) => {
82
94
  if (!response.data) return;
83
95
  try {
84
- const editedDictionary = JSON.parse(response.data.fileContent);
96
+ const editedDictionary2 = JSON.parse(response.data.fileContent);
85
97
  form.reset({
86
98
  ...updatedDictionary,
87
- ...editedDictionary,
99
+ ...editedDictionary2,
88
100
  publishedVersion: updatedDictionary.publishedVersion ?? "-1"
89
101
  });
90
102
  } catch (error) {
@@ -93,6 +105,15 @@ const DictionaryDetailsForm = ({
93
105
  });
94
106
  };
95
107
  const isLoading = isSubmitting || isLoadingTags;
108
+ const { editedContent } = editorReact.useEditedContent();
109
+ const editedDictionary = require$$0.useMemo(
110
+ () => editedContent?.[dictionary.key],
111
+ [editedContent, dictionary.key]
112
+ );
113
+ const isEdited = require$$0.useMemo(
114
+ () => editedDictionary && dictionary && JSON.stringify(editedDictionary.content) !== JSON.stringify(dictionary.content),
115
+ [dictionary, editedDictionary]
116
+ );
96
117
  return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs(
97
118
  components_Form_layout_FormItemLayout.Form,
98
119
  {
@@ -222,32 +243,42 @@ const DictionaryDetailsForm = ({
222
243
  children: auditButton.text
223
244
  }
224
245
  ),
225
- isLocalDictionary ? /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
246
+ mode === "remote" ? isLocalDictionary ? /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
226
247
  components_Form_layout_FormItemLayout.Form.Button,
227
248
  {
228
249
  type: "submit",
229
250
  label: publishButton.label,
230
251
  disabled: isSubmitting || !isFormEdited || isLoading,
231
252
  Icon: lucideReact.ArrowUpFromLine,
232
- isFullWidth: false,
233
253
  color: "text",
234
254
  className: "max-md:w-full",
235
255
  isLoading: isSubmitting,
236
256
  children: publishButton.text
237
257
  }
238
- ) : /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
258
+ ) : isEdited && /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
239
259
  components_Form_layout_FormItemLayout.Form.Button,
240
260
  {
241
261
  type: "submit",
242
262
  label: saveButton.label,
243
263
  disabled: isSubmitting || !isFormEdited || isLoading,
244
- isFullWidth: false,
245
264
  Icon: lucideReact.Save,
246
265
  color: "text",
247
266
  className: "max-md:w-full",
248
267
  isLoading: isSubmitting,
249
268
  children: saveButton.text
250
269
  }
270
+ ) : /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
271
+ components_Form_layout_FormItemLayout.Form.Button,
272
+ {
273
+ type: "submit",
274
+ label: downloadButton.label,
275
+ disabled: isSubmitting || !isFormEdited || isLoading,
276
+ Icon: lucideReact.Download,
277
+ color: "text",
278
+ className: "max-md:w-full",
279
+ isLoading: isSubmitting,
280
+ children: downloadButton.text
281
+ }
251
282
  )
252
283
  ] })
253
284
  ]
@@ -1 +1 @@
1
- {"version":3,"file":"DictionaryDetailsForm.cjs","sources":["../../../../src/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.tsx"],"sourcesContent":["'use client';\n\nimport {\n DictionaryAPI,\n Dictionary as DistantDictionary,\n} from '@intlayer/backend';\nimport { Dictionary } from '@intlayer/core';\nimport { ArrowUpFromLine, Save, WandSparkles } from 'lucide-react';\nimport { type FC, useEffect } from 'react';\n// @ts-ignore react-intlayer not build yet\nimport { useDictionary } from 'react-intlayer';\nimport {\n useAuditContentDeclarationMetadata,\n useGetProjects,\n useGetTags,\n usePushDictionaries,\n} from '../../../hooks';\nimport { useAuth } from '../../Auth';\nimport { Form, useForm } from '../../Form';\nimport { Loader } from '../../Loader';\nimport { MultiSelect, Select } from '../../Select';\nimport { dictionaryDetailsContent } from './dictionaryDetails.content';\nimport {\n useDictionaryDetailsSchema,\n DictionaryDetailsFormData,\n} from './useDictionaryDetailsSchema';\n\ntype DictionaryDetailsProps = {\n dictionary: Dictionary;\n};\n\nexport const DictionaryDetailsForm: FC<DictionaryDetailsProps> = ({\n dictionary,\n}) => {\n const { session } = useAuth();\n const { project } = session ?? {};\n const { pushDictionaries } = usePushDictionaries();\n const { data: projects, isLoading: isLoadingProjects } = useGetProjects();\n const { data: tags, isLoading: isLoadingTags } = useGetTags();\n const dictionaryValue = {\n ...dictionary,\n publishedVersion: dictionary.publishedVersion ?? '-1',\n };\n\n const DictionaryDetailsSchema = useDictionaryDetailsSchema(\n String(project?._id)\n );\n const { form, isSubmitting } = useForm(DictionaryDetailsSchema, {\n defaultValues: dictionaryValue,\n });\n const {\n titleInput,\n keyInput,\n descriptionInput,\n publishedVersionSelect,\n publishButton,\n saveButton,\n projectInput,\n tagsSelect,\n auditButton,\n } = useDictionary(dictionaryDetailsContent);\n const { auditContentDeclaration, isLoading: isAuditing } =\n useAuditContentDeclarationMetadata();\n\n useEffect(() => {\n form.reset(dictionaryValue);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dictionary, form?.reset]);\n\n const isFormEdited = form.formState.isDirty;\n const isLocalDictionary =\n typeof (dictionary as DistantDictionary)?._id === 'undefined';\n\n const onSubmitSuccess = async (data: DictionaryDetailsFormData) => {\n await pushDictionaries([\n {\n ...dictionary,\n ...data,\n },\n ]);\n };\n\n const handleOnAuditFile = async () => {\n const updatedDictionary = form.getValues();\n await auditContentDeclaration({\n fileContent: JSON.stringify({ ...dictionary, ...updatedDictionary }),\n }).then((response) => {\n if (!response.data) return;\n\n try {\n const editedDictionary = JSON.parse(response.data.fileContent) as\n | Partial<Dictionary>\n | undefined;\n\n form.reset({\n ...updatedDictionary,\n ...editedDictionary,\n publishedVersion: updatedDictionary.publishedVersion ?? '-1',\n });\n } catch (error) {\n console.error(error);\n }\n });\n };\n\n const isLoading = isSubmitting || isLoadingTags;\n\n return (\n <Form\n className=\"flex size-full flex-1 flex-col gap-8\"\n {...form}\n schema={DictionaryDetailsSchema}\n onSubmitSuccess={onSubmitSuccess}\n >\n <div className=\"flex size-full flex-1 gap-8 max-md:flex-col\">\n <Form.EditableFieldInput\n name=\"key\"\n label={keyInput.label}\n placeholder={keyInput.label}\n description={keyInput.description}\n disabled={isSubmitting}\n isRequired\n />\n <Form.EditableFieldInput\n name=\"title\"\n label={titleInput.label}\n placeholder={titleInput.placeholder}\n description={titleInput.description}\n disabled={isSubmitting}\n />\n </div>\n <Form.EditableFieldTextArea\n name=\"description\"\n label={descriptionInput.label}\n placeholder={descriptionInput.placeholder}\n description={descriptionInput.description}\n disabled={isSubmitting}\n />\n <div className=\"flex size-full flex-1 gap-8 max-md:flex-col\">\n <Form.MultiSelect\n name=\"projectIds\"\n label={projectInput.label}\n description={projectInput.description}\n >\n <MultiSelect.Trigger\n getBadgeValue={(value) =>\n projects?.data?.find((project) => String(project._id) === value)\n ?.name ?? value\n }\n >\n <MultiSelect.Input placeholder={projectInput.placeholder} />\n </MultiSelect.Trigger>\n <MultiSelect.Content>\n <Loader isLoading={isLoadingProjects}>\n <MultiSelect.List>\n {projects?.data?.map((project) => (\n <MultiSelect.Item\n key={String(project._id)}\n value={String(project._id)}\n >\n {project.name}\n </MultiSelect.Item>\n ))}\n </MultiSelect.List>\n </Loader>\n </MultiSelect.Content>\n </Form.MultiSelect>\n\n <Form.MultiSelect\n name=\"tags\"\n label={tagsSelect.label}\n description={tagsSelect.description}\n >\n <MultiSelect.Trigger\n getBadgeValue={(value) =>\n projects?.data?.find((project) => String(project._id) === value)\n ?.name ?? value\n }\n >\n <MultiSelect.Input placeholder={tagsSelect.placeholder} />\n </MultiSelect.Trigger>\n <MultiSelect.Content>\n <Loader isLoading={isLoadingProjects}>\n <MultiSelect.List>\n {tags?.data?.map((tag) => (\n <MultiSelect.Item\n key={String(tag.key)}\n value={String(tag.key)}\n >\n {tag.name ?? tag.key}\n </MultiSelect.Item>\n ))}\n </MultiSelect.List>\n </Loader>\n </MultiSelect.Content>\n </Form.MultiSelect>\n </div>\n {((dictionary as DictionaryAPI).availableVersions?.length ?? 0) > 1 && (\n <div className=\"flex size-full flex-1 gap-8 max-md:flex-col\">\n <Form.Select\n name=\"publishedVersion\"\n description={publishedVersionSelect.description}\n label={publishedVersionSelect.label}\n >\n <Select.Trigger>\n <Select.Value placeholder={publishedVersionSelect.placeholder} />\n </Select.Trigger>\n <Select.Content>\n <Select.Item value=\"-1\">LTS</Select.Item>\n {(dictionary as DictionaryAPI).availableVersions?.map(\n (version) => (\n <Select.Item value={version} key={version}>\n {version}\n </Select.Item>\n )\n )}\n </Select.Content>\n </Form.Select>\n <div className=\"w-full\" />\n </div>\n )}\n\n <div className=\"flex flex-wrap items-center justify-end gap-2 max-md:flex-col\">\n <Form.Button\n type=\"button\"\n label={auditButton.label}\n Icon={WandSparkles}\n variant=\"outline\"\n color=\"text\"\n className=\"max-md:w-full\"\n onClick={handleOnAuditFile}\n disabled={isSubmitting || isAuditing}\n isLoading={isAuditing}\n >\n {auditButton.text}\n </Form.Button>\n {isLocalDictionary ? (\n <Form.Button\n type=\"submit\"\n label={publishButton.label}\n disabled={isSubmitting || !isFormEdited || isLoading}\n Icon={ArrowUpFromLine}\n isFullWidth={false}\n color=\"text\"\n className=\"max-md:w-full\"\n isLoading={isSubmitting}\n >\n {publishButton.text}\n </Form.Button>\n ) : (\n <Form.Button\n type=\"submit\"\n label={saveButton.label}\n disabled={isSubmitting || !isFormEdited || isLoading}\n isFullWidth={false}\n Icon={Save}\n color=\"text\"\n className=\"max-md:w-full\"\n isLoading={isSubmitting}\n >\n {saveButton.text}\n </Form.Button>\n )}\n </div>\n </Form>\n );\n};\n"],"names":["useAuth","usePushDictionaries","useGetProjects","useGetTags","useDictionaryDetailsSchema","useForm","useDictionary","dictionaryDetailsContent","useAuditContentDeclarationMetadata","useEffect","jsxs","Form","jsx","MultiSelect","project","Loader","Select","WandSparkles","ArrowUpFromLine","Save"],"mappings":"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"}
1
+ {"version":3,"file":"DictionaryDetailsForm.cjs","sources":["../../../../src/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.tsx"],"sourcesContent":["'use client';\n\nimport {\n DictionaryAPI,\n Dictionary as DistantDictionary,\n} from '@intlayer/backend';\nimport { Dictionary } from '@intlayer/core';\nimport { useEditedContent } from '@intlayer/editor-react';\nimport { ArrowUpFromLine, Download, Save, WandSparkles } from 'lucide-react';\nimport { type FC, useEffect, useMemo } from 'react';\n// @ts-ignore react-intlayer not build yet\nimport { useDictionary } from 'react-intlayer';\nimport {\n useAuditContentDeclarationMetadata,\n useGetProjects,\n useGetTags,\n usePushDictionaries,\n useWriteDictionary,\n} from '../../../hooks';\nimport { useAuth } from '../../Auth';\nimport { Form, useForm } from '../../Form';\nimport { Loader } from '../../Loader';\nimport { MultiSelect, Select } from '../../Select';\nimport { dictionaryDetailsContent } from './dictionaryDetails.content';\nimport {\n useDictionaryDetailsSchema,\n DictionaryDetailsFormData,\n} from './useDictionaryDetailsSchema';\n\ntype DictionaryDetailsProps = {\n dictionary: Dictionary;\n mode: 'local' | 'remote';\n};\n\nexport const DictionaryDetailsForm: FC<DictionaryDetailsProps> = ({\n dictionary,\n mode,\n}) => {\n const { session } = useAuth();\n const { project } = session ?? {};\n const { pushDictionaries } = usePushDictionaries();\n const { data: projects, isLoading: isLoadingProjects } = useGetProjects();\n const { data: tags, isLoading: isLoadingTags } = useGetTags();\n const dictionaryValue = {\n ...dictionary,\n publishedVersion: dictionary.publishedVersion ?? '-1',\n };\n\n const DictionaryDetailsSchema = useDictionaryDetailsSchema(\n String(project?._id)\n );\n const { form, isSubmitting } = useForm(DictionaryDetailsSchema, {\n defaultValues: dictionaryValue,\n });\n const {\n titleInput,\n keyInput,\n descriptionInput,\n publishedVersionSelect,\n publishButton,\n saveButton,\n projectInput,\n tagsSelect,\n auditButton,\n downloadButton,\n } = useDictionary(dictionaryDetailsContent);\n const { auditContentDeclaration, isLoading: isAuditing } =\n useAuditContentDeclarationMetadata();\n const { writeDictionary } = useWriteDictionary();\n\n useEffect(() => {\n form.reset(dictionaryValue);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dictionary, form?.reset]);\n\n const isFormEdited = form.formState.isDirty;\n const isLocalDictionary =\n typeof (dictionary as DistantDictionary)?._id === 'undefined';\n\n const onSubmitSuccess = async (data: DictionaryDetailsFormData) => {\n if (mode === 'remote') {\n await pushDictionaries([\n {\n ...dictionary,\n ...data,\n },\n ]);\n } else {\n await writeDictionary({\n ...dictionary,\n ...data,\n });\n }\n };\n\n const handleOnAuditFile = async () => {\n const updatedDictionary = form.getValues();\n await auditContentDeclaration({\n fileContent: JSON.stringify({ ...dictionary, ...updatedDictionary }),\n }).then((response) => {\n if (!response.data) return;\n\n try {\n const editedDictionary = JSON.parse(response.data.fileContent) as\n | Partial<Dictionary>\n | undefined;\n\n form.reset({\n ...updatedDictionary,\n ...editedDictionary,\n publishedVersion: updatedDictionary.publishedVersion ?? '-1',\n });\n } catch (error) {\n console.error(error);\n }\n });\n };\n\n const isLoading = isSubmitting || isLoadingTags;\n\n const { editedContent } = useEditedContent();\n const editedDictionary = useMemo(\n () => editedContent?.[dictionary.key],\n [editedContent, dictionary.key]\n );\n const isEdited = useMemo(\n () =>\n editedDictionary &&\n dictionary &&\n JSON.stringify(editedDictionary.content) !==\n JSON.stringify(dictionary.content),\n [dictionary, editedDictionary]\n );\n\n return (\n <Form\n className=\"flex size-full flex-1 flex-col gap-8\"\n {...form}\n schema={DictionaryDetailsSchema}\n onSubmitSuccess={onSubmitSuccess}\n >\n <div className=\"flex size-full flex-1 gap-8 max-md:flex-col\">\n <Form.EditableFieldInput\n name=\"key\"\n label={keyInput.label}\n placeholder={keyInput.label}\n description={keyInput.description}\n disabled={isSubmitting}\n isRequired\n />\n <Form.EditableFieldInput\n name=\"title\"\n label={titleInput.label}\n placeholder={titleInput.placeholder}\n description={titleInput.description}\n disabled={isSubmitting}\n />\n </div>\n <Form.EditableFieldTextArea\n name=\"description\"\n label={descriptionInput.label}\n placeholder={descriptionInput.placeholder}\n description={descriptionInput.description}\n disabled={isSubmitting}\n />\n <div className=\"flex size-full flex-1 gap-8 max-md:flex-col\">\n <Form.MultiSelect\n name=\"projectIds\"\n label={projectInput.label}\n description={projectInput.description}\n >\n <MultiSelect.Trigger\n getBadgeValue={(value) =>\n projects?.data?.find((project) => String(project._id) === value)\n ?.name ?? value\n }\n >\n <MultiSelect.Input placeholder={projectInput.placeholder} />\n </MultiSelect.Trigger>\n <MultiSelect.Content>\n <Loader isLoading={isLoadingProjects}>\n <MultiSelect.List>\n {projects?.data?.map((project) => (\n <MultiSelect.Item\n key={String(project._id)}\n value={String(project._id)}\n >\n {project.name}\n </MultiSelect.Item>\n ))}\n </MultiSelect.List>\n </Loader>\n </MultiSelect.Content>\n </Form.MultiSelect>\n\n <Form.MultiSelect\n name=\"tags\"\n label={tagsSelect.label}\n description={tagsSelect.description}\n >\n <MultiSelect.Trigger\n getBadgeValue={(value) =>\n projects?.data?.find((project) => String(project._id) === value)\n ?.name ?? value\n }\n >\n <MultiSelect.Input placeholder={tagsSelect.placeholder} />\n </MultiSelect.Trigger>\n <MultiSelect.Content>\n <Loader isLoading={isLoadingProjects}>\n <MultiSelect.List>\n {tags?.data?.map((tag) => (\n <MultiSelect.Item\n key={String(tag.key)}\n value={String(tag.key)}\n >\n {tag.name ?? tag.key}\n </MultiSelect.Item>\n ))}\n </MultiSelect.List>\n </Loader>\n </MultiSelect.Content>\n </Form.MultiSelect>\n </div>\n {((dictionary as DictionaryAPI).availableVersions?.length ?? 0) > 1 && (\n <div className=\"flex size-full flex-1 gap-8 max-md:flex-col\">\n <Form.Select\n name=\"publishedVersion\"\n description={publishedVersionSelect.description}\n label={publishedVersionSelect.label}\n >\n <Select.Trigger>\n <Select.Value placeholder={publishedVersionSelect.placeholder} />\n </Select.Trigger>\n <Select.Content>\n <Select.Item value=\"-1\">LTS</Select.Item>\n {(dictionary as DictionaryAPI).availableVersions?.map(\n (version) => (\n <Select.Item value={version} key={version}>\n {version}\n </Select.Item>\n )\n )}\n </Select.Content>\n </Form.Select>\n <div className=\"w-full\" />\n </div>\n )}\n\n <div className=\"flex flex-wrap items-center justify-end gap-2 max-md:flex-col\">\n <Form.Button\n type=\"button\"\n label={auditButton.label}\n Icon={WandSparkles}\n variant=\"outline\"\n color=\"text\"\n className=\"max-md:w-full\"\n onClick={handleOnAuditFile}\n disabled={isSubmitting || isAuditing}\n isLoading={isAuditing}\n >\n {auditButton.text}\n </Form.Button>\n\n {mode === 'remote' ? (\n isLocalDictionary ? (\n <Form.Button\n type=\"submit\"\n label={publishButton.label}\n disabled={isSubmitting || !isFormEdited || isLoading}\n Icon={ArrowUpFromLine}\n color=\"text\"\n className=\"max-md:w-full\"\n isLoading={isSubmitting}\n >\n {publishButton.text}\n </Form.Button>\n ) : (\n isEdited && (\n <Form.Button\n type=\"submit\"\n label={saveButton.label}\n disabled={isSubmitting || !isFormEdited || isLoading}\n Icon={Save}\n color=\"text\"\n className=\"max-md:w-full\"\n isLoading={isSubmitting}\n >\n {saveButton.text}\n </Form.Button>\n )\n )\n ) : (\n <Form.Button\n type=\"submit\"\n label={downloadButton.label}\n disabled={isSubmitting || !isFormEdited || isLoading}\n Icon={Download}\n color=\"text\"\n className=\"max-md:w-full\"\n isLoading={isSubmitting}\n >\n {downloadButton.text}\n </Form.Button>\n )}\n </div>\n </Form>\n );\n};\n"],"names":["useAuth","usePushDictionaries","useGetProjects","useGetTags","useDictionaryDetailsSchema","useForm","useDictionary","dictionaryDetailsContent","useAuditContentDeclarationMetadata","useWriteDictionary","useEffect","editedDictionary","useEditedContent","useMemo","jsxs","Form","jsx","MultiSelect","project","Loader","Select","WandSparkles","ArrowUpFromLine","Save","Download"],"mappings":"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"}
@@ -2,6 +2,7 @@ import { Dictionary } from '@intlayer/core';
2
2
  import { FC } from 'react';
3
3
  type DictionaryDetailsProps = {
4
4
  dictionary: Dictionary;
5
+ mode: 'local' | 'remote';
5
6
  };
6
7
  export declare const DictionaryDetailsForm: FC<DictionaryDetailsProps>;
7
8
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"DictionaryDetailsForm.d.ts","sourceRoot":"","sources":["../../../../src/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,KAAK,EAAE,EAAa,MAAM,OAAO,CAAC;AAmB3C,KAAK,sBAAsB,GAAG;IAC5B,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,EAAE,CAAC,sBAAsB,CA2O5D,CAAC"}
1
+ {"version":3,"file":"DictionaryDetailsForm.d.ts","sourceRoot":"","sources":["../../../../src/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5C,OAAO,EAAE,KAAK,EAAE,EAAsB,MAAM,OAAO,CAAC;AAoBpD,KAAK,sBAAsB,GAAG;IAC5B,UAAU,EAAE,UAAU,CAAC;IACvB,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,EAAE,CAAC,sBAAsB,CAkR5D,CAAC"}
@@ -1,14 +1,15 @@
1
1
  "use client";
2
2
  import { j as jsxRuntimeExports } from "../../../jsx-runtime-DQkoUcjV.js";
3
- import { WandSparkles, ArrowUpFromLine, Save } from "lucide-react";
4
- import { useEffect } from "react";
3
+ import { useEditedContent } from "@intlayer/editor-react";
4
+ import { WandSparkles, ArrowUpFromLine, Save, Download } from "lucide-react";
5
+ import { useEffect, useMemo } from "react";
5
6
  import { useDictionary } from "react-intlayer";
6
7
  import "../../../hooks/useScrollBlockage/useScrollBlockageStore.mjs";
7
8
  import "../../../hooks/useAsync/useAsyncStateStore.mjs";
8
- import { usePushDictionaries, useGetProjects, useGetTags, useAuditContentDeclarationMetadata } from "../../../hooks/intlayerAPIHooks.mjs";
9
- import "@intlayer/dictionaries-entry";
9
+ import { usePushDictionaries, useGetProjects, useGetTags, useAuditContentDeclarationMetadata, useWriteDictionary } from "../../../hooks/intlayerAPIHooks.mjs";
10
10
  import "deepmerge";
11
- import "../../../index-DcWYZrJW.js";
11
+ import "../../../index-CVC2sfEj.js";
12
+ import "@intlayer/config/client";
12
13
  import "../../Button/Button.mjs";
13
14
  import "../../Auth/ExternalsLoginButtons/externalsLoginButtons.content.mjs";
14
15
  import { useForm } from "../../Form/FormBase.mjs";
@@ -25,12 +26,14 @@ import "../../Auth/ResetPasswordForm/resetPasswordContent.content.mjs";
25
26
  import "../../Auth/ResetPasswordForm/useResetPasswordSchema.content.mjs";
26
27
  import "../../Modal/Modal.mjs";
27
28
  import { Loader } from "../../Loader/index.mjs";
29
+ import "@intlayer/api";
28
30
  import { MultiSelect } from "../../Select/Multiselect.mjs";
29
31
  import { Select } from "../../Select/Select.mjs";
30
32
  import { dictionaryDetailsContent } from "./dictionaryDetails.content.mjs";
31
33
  import { useDictionaryDetailsSchema } from "./useDictionaryDetailsSchema.mjs";
32
34
  const DictionaryDetailsForm = ({
33
- dictionary
35
+ dictionary,
36
+ mode
34
37
  }) => {
35
38
  const { session } = useAuth();
36
39
  const { project } = session ?? {};
@@ -56,21 +59,30 @@ const DictionaryDetailsForm = ({
56
59
  saveButton,
57
60
  projectInput,
58
61
  tagsSelect,
59
- auditButton
62
+ auditButton,
63
+ downloadButton
60
64
  } = useDictionary(dictionaryDetailsContent);
61
65
  const { auditContentDeclaration, isLoading: isAuditing } = useAuditContentDeclarationMetadata();
66
+ const { writeDictionary } = useWriteDictionary();
62
67
  useEffect(() => {
63
68
  form.reset(dictionaryValue);
64
69
  }, [dictionary, form?.reset]);
65
70
  const isFormEdited = form.formState.isDirty;
66
71
  const isLocalDictionary = typeof dictionary?._id === "undefined";
67
72
  const onSubmitSuccess = async (data) => {
68
- await pushDictionaries([
69
- {
73
+ if (mode === "remote") {
74
+ await pushDictionaries([
75
+ {
76
+ ...dictionary,
77
+ ...data
78
+ }
79
+ ]);
80
+ } else {
81
+ await writeDictionary({
70
82
  ...dictionary,
71
83
  ...data
72
- }
73
- ]);
84
+ });
85
+ }
74
86
  };
75
87
  const handleOnAuditFile = async () => {
76
88
  const updatedDictionary = form.getValues();
@@ -79,10 +91,10 @@ const DictionaryDetailsForm = ({
79
91
  }).then((response) => {
80
92
  if (!response.data) return;
81
93
  try {
82
- const editedDictionary = JSON.parse(response.data.fileContent);
94
+ const editedDictionary2 = JSON.parse(response.data.fileContent);
83
95
  form.reset({
84
96
  ...updatedDictionary,
85
- ...editedDictionary,
97
+ ...editedDictionary2,
86
98
  publishedVersion: updatedDictionary.publishedVersion ?? "-1"
87
99
  });
88
100
  } catch (error) {
@@ -91,6 +103,15 @@ const DictionaryDetailsForm = ({
91
103
  });
92
104
  };
93
105
  const isLoading = isSubmitting || isLoadingTags;
106
+ const { editedContent } = useEditedContent();
107
+ const editedDictionary = useMemo(
108
+ () => editedContent?.[dictionary.key],
109
+ [editedContent, dictionary.key]
110
+ );
111
+ const isEdited = useMemo(
112
+ () => editedDictionary && dictionary && JSON.stringify(editedDictionary.content) !== JSON.stringify(dictionary.content),
113
+ [dictionary, editedDictionary]
114
+ );
94
115
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
95
116
  Form,
96
117
  {
@@ -220,32 +241,42 @@ const DictionaryDetailsForm = ({
220
241
  children: auditButton.text
221
242
  }
222
243
  ),
223
- isLocalDictionary ? /* @__PURE__ */ jsxRuntimeExports.jsx(
244
+ mode === "remote" ? isLocalDictionary ? /* @__PURE__ */ jsxRuntimeExports.jsx(
224
245
  Form.Button,
225
246
  {
226
247
  type: "submit",
227
248
  label: publishButton.label,
228
249
  disabled: isSubmitting || !isFormEdited || isLoading,
229
250
  Icon: ArrowUpFromLine,
230
- isFullWidth: false,
231
251
  color: "text",
232
252
  className: "max-md:w-full",
233
253
  isLoading: isSubmitting,
234
254
  children: publishButton.text
235
255
  }
236
- ) : /* @__PURE__ */ jsxRuntimeExports.jsx(
256
+ ) : isEdited && /* @__PURE__ */ jsxRuntimeExports.jsx(
237
257
  Form.Button,
238
258
  {
239
259
  type: "submit",
240
260
  label: saveButton.label,
241
261
  disabled: isSubmitting || !isFormEdited || isLoading,
242
- isFullWidth: false,
243
262
  Icon: Save,
244
263
  color: "text",
245
264
  className: "max-md:w-full",
246
265
  isLoading: isSubmitting,
247
266
  children: saveButton.text
248
267
  }
268
+ ) : /* @__PURE__ */ jsxRuntimeExports.jsx(
269
+ Form.Button,
270
+ {
271
+ type: "submit",
272
+ label: downloadButton.label,
273
+ disabled: isSubmitting || !isFormEdited || isLoading,
274
+ Icon: Download,
275
+ color: "text",
276
+ className: "max-md:w-full",
277
+ isLoading: isSubmitting,
278
+ children: downloadButton.text
279
+ }
249
280
  )
250
281
  ] })
251
282
  ]
@@ -1 +1 @@
1
- {"version":3,"file":"DictionaryDetailsForm.mjs","sources":["../../../../src/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.tsx"],"sourcesContent":["'use client';\n\nimport {\n DictionaryAPI,\n Dictionary as DistantDictionary,\n} from '@intlayer/backend';\nimport { Dictionary } from '@intlayer/core';\nimport { ArrowUpFromLine, Save, WandSparkles } from 'lucide-react';\nimport { type FC, useEffect } from 'react';\n// @ts-ignore react-intlayer not build yet\nimport { useDictionary } from 'react-intlayer';\nimport {\n useAuditContentDeclarationMetadata,\n useGetProjects,\n useGetTags,\n usePushDictionaries,\n} from '../../../hooks';\nimport { useAuth } from '../../Auth';\nimport { Form, useForm } from '../../Form';\nimport { Loader } from '../../Loader';\nimport { MultiSelect, Select } from '../../Select';\nimport { dictionaryDetailsContent } from './dictionaryDetails.content';\nimport {\n useDictionaryDetailsSchema,\n DictionaryDetailsFormData,\n} from './useDictionaryDetailsSchema';\n\ntype DictionaryDetailsProps = {\n dictionary: Dictionary;\n};\n\nexport const DictionaryDetailsForm: FC<DictionaryDetailsProps> = ({\n dictionary,\n}) => {\n const { session } = useAuth();\n const { project } = session ?? {};\n const { pushDictionaries } = usePushDictionaries();\n const { data: projects, isLoading: isLoadingProjects } = useGetProjects();\n const { data: tags, isLoading: isLoadingTags } = useGetTags();\n const dictionaryValue = {\n ...dictionary,\n publishedVersion: dictionary.publishedVersion ?? '-1',\n };\n\n const DictionaryDetailsSchema = useDictionaryDetailsSchema(\n String(project?._id)\n );\n const { form, isSubmitting } = useForm(DictionaryDetailsSchema, {\n defaultValues: dictionaryValue,\n });\n const {\n titleInput,\n keyInput,\n descriptionInput,\n publishedVersionSelect,\n publishButton,\n saveButton,\n projectInput,\n tagsSelect,\n auditButton,\n } = useDictionary(dictionaryDetailsContent);\n const { auditContentDeclaration, isLoading: isAuditing } =\n useAuditContentDeclarationMetadata();\n\n useEffect(() => {\n form.reset(dictionaryValue);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dictionary, form?.reset]);\n\n const isFormEdited = form.formState.isDirty;\n const isLocalDictionary =\n typeof (dictionary as DistantDictionary)?._id === 'undefined';\n\n const onSubmitSuccess = async (data: DictionaryDetailsFormData) => {\n await pushDictionaries([\n {\n ...dictionary,\n ...data,\n },\n ]);\n };\n\n const handleOnAuditFile = async () => {\n const updatedDictionary = form.getValues();\n await auditContentDeclaration({\n fileContent: JSON.stringify({ ...dictionary, ...updatedDictionary }),\n }).then((response) => {\n if (!response.data) return;\n\n try {\n const editedDictionary = JSON.parse(response.data.fileContent) as\n | Partial<Dictionary>\n | undefined;\n\n form.reset({\n ...updatedDictionary,\n ...editedDictionary,\n publishedVersion: updatedDictionary.publishedVersion ?? '-1',\n });\n } catch (error) {\n console.error(error);\n }\n });\n };\n\n const isLoading = isSubmitting || isLoadingTags;\n\n return (\n <Form\n className=\"flex size-full flex-1 flex-col gap-8\"\n {...form}\n schema={DictionaryDetailsSchema}\n onSubmitSuccess={onSubmitSuccess}\n >\n <div className=\"flex size-full flex-1 gap-8 max-md:flex-col\">\n <Form.EditableFieldInput\n name=\"key\"\n label={keyInput.label}\n placeholder={keyInput.label}\n description={keyInput.description}\n disabled={isSubmitting}\n isRequired\n />\n <Form.EditableFieldInput\n name=\"title\"\n label={titleInput.label}\n placeholder={titleInput.placeholder}\n description={titleInput.description}\n disabled={isSubmitting}\n />\n </div>\n <Form.EditableFieldTextArea\n name=\"description\"\n label={descriptionInput.label}\n placeholder={descriptionInput.placeholder}\n description={descriptionInput.description}\n disabled={isSubmitting}\n />\n <div className=\"flex size-full flex-1 gap-8 max-md:flex-col\">\n <Form.MultiSelect\n name=\"projectIds\"\n label={projectInput.label}\n description={projectInput.description}\n >\n <MultiSelect.Trigger\n getBadgeValue={(value) =>\n projects?.data?.find((project) => String(project._id) === value)\n ?.name ?? value\n }\n >\n <MultiSelect.Input placeholder={projectInput.placeholder} />\n </MultiSelect.Trigger>\n <MultiSelect.Content>\n <Loader isLoading={isLoadingProjects}>\n <MultiSelect.List>\n {projects?.data?.map((project) => (\n <MultiSelect.Item\n key={String(project._id)}\n value={String(project._id)}\n >\n {project.name}\n </MultiSelect.Item>\n ))}\n </MultiSelect.List>\n </Loader>\n </MultiSelect.Content>\n </Form.MultiSelect>\n\n <Form.MultiSelect\n name=\"tags\"\n label={tagsSelect.label}\n description={tagsSelect.description}\n >\n <MultiSelect.Trigger\n getBadgeValue={(value) =>\n projects?.data?.find((project) => String(project._id) === value)\n ?.name ?? value\n }\n >\n <MultiSelect.Input placeholder={tagsSelect.placeholder} />\n </MultiSelect.Trigger>\n <MultiSelect.Content>\n <Loader isLoading={isLoadingProjects}>\n <MultiSelect.List>\n {tags?.data?.map((tag) => (\n <MultiSelect.Item\n key={String(tag.key)}\n value={String(tag.key)}\n >\n {tag.name ?? tag.key}\n </MultiSelect.Item>\n ))}\n </MultiSelect.List>\n </Loader>\n </MultiSelect.Content>\n </Form.MultiSelect>\n </div>\n {((dictionary as DictionaryAPI).availableVersions?.length ?? 0) > 1 && (\n <div className=\"flex size-full flex-1 gap-8 max-md:flex-col\">\n <Form.Select\n name=\"publishedVersion\"\n description={publishedVersionSelect.description}\n label={publishedVersionSelect.label}\n >\n <Select.Trigger>\n <Select.Value placeholder={publishedVersionSelect.placeholder} />\n </Select.Trigger>\n <Select.Content>\n <Select.Item value=\"-1\">LTS</Select.Item>\n {(dictionary as DictionaryAPI).availableVersions?.map(\n (version) => (\n <Select.Item value={version} key={version}>\n {version}\n </Select.Item>\n )\n )}\n </Select.Content>\n </Form.Select>\n <div className=\"w-full\" />\n </div>\n )}\n\n <div className=\"flex flex-wrap items-center justify-end gap-2 max-md:flex-col\">\n <Form.Button\n type=\"button\"\n label={auditButton.label}\n Icon={WandSparkles}\n variant=\"outline\"\n color=\"text\"\n className=\"max-md:w-full\"\n onClick={handleOnAuditFile}\n disabled={isSubmitting || isAuditing}\n isLoading={isAuditing}\n >\n {auditButton.text}\n </Form.Button>\n {isLocalDictionary ? (\n <Form.Button\n type=\"submit\"\n label={publishButton.label}\n disabled={isSubmitting || !isFormEdited || isLoading}\n Icon={ArrowUpFromLine}\n isFullWidth={false}\n color=\"text\"\n className=\"max-md:w-full\"\n isLoading={isSubmitting}\n >\n {publishButton.text}\n </Form.Button>\n ) : (\n <Form.Button\n type=\"submit\"\n label={saveButton.label}\n disabled={isSubmitting || !isFormEdited || isLoading}\n isFullWidth={false}\n Icon={Save}\n color=\"text\"\n className=\"max-md:w-full\"\n isLoading={isSubmitting}\n >\n {saveButton.text}\n </Form.Button>\n )}\n </div>\n </Form>\n );\n};\n"],"names":["jsxs","jsx","project"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BO,MAAM,wBAAoD,CAAC;AAAA,EAChE;AACF,MAAM;AACE,QAAA,EAAE,QAAQ,IAAI,QAAQ;AAC5B,QAAM,EAAE,YAAY,WAAW,CAAC;AAC1B,QAAA,EAAE,iBAAiB,IAAI,oBAAoB;AACjD,QAAM,EAAE,MAAM,UAAU,WAAW,kBAAA,IAAsB,eAAe;AACxE,QAAM,EAAE,MAAM,MAAM,WAAW,cAAA,IAAkB,WAAW;AAC5D,QAAM,kBAAkB;AAAA,IACtB,GAAG;AAAA,IACH,kBAAkB,WAAW,oBAAoB;AAAA,EACnD;AAEA,QAAM,0BAA0B;AAAA,IAC9B,OAAO,SAAS,GAAG;AAAA,EACrB;AACA,QAAM,EAAE,MAAM,iBAAiB,QAAQ,yBAAyB;AAAA,IAC9D,eAAe;AAAA,EAAA,CAChB;AACK,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACE,cAAc,wBAAwB;AAC1C,QAAM,EAAE,yBAAyB,WAAW,WAAA,IAC1C,mCAAmC;AAErC,YAAU,MAAM;AACd,SAAK,MAAM,eAAe;AAAA,EAEzB,GAAA,CAAC,YAAY,MAAM,KAAK,CAAC;AAEtB,QAAA,eAAe,KAAK,UAAU;AAC9B,QAAA,oBACJ,OAAQ,YAAkC,QAAQ;AAE9C,QAAA,kBAAkB,OAAO,SAAoC;AACjE,UAAM,iBAAiB;AAAA,MACrB;AAAA,QACE,GAAG;AAAA,QACH,GAAG;AAAA,MAAA;AAAA,IACL,CACD;AAAA,EACH;AAEA,QAAM,oBAAoB,YAAY;AAC9B,UAAA,oBAAoB,KAAK,UAAU;AACzC,UAAM,wBAAwB;AAAA,MAC5B,aAAa,KAAK,UAAU,EAAE,GAAG,YAAY,GAAG,kBAAmB,CAAA;AAAA,IAAA,CACpE,EAAE,KAAK,CAAC,aAAa;AAChB,UAAA,CAAC,SAAS,KAAM;AAEhB,UAAA;AACF,cAAM,mBAAmB,KAAK,MAAM,SAAS,KAAK,WAAW;AAI7D,aAAK,MAAM;AAAA,UACT,GAAG;AAAA,UACH,GAAG;AAAA,UACH,kBAAkB,kBAAkB,oBAAoB;AAAA,QAAA,CACzD;AAAA,eACM,OAAO;AACd,gBAAQ,MAAM,KAAK;AAAA,MAAA;AAAA,IACrB,CACD;AAAA,EACH;AAEA,QAAM,YAAY,gBAAgB;AAGhC,SAAAA,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACT,GAAG;AAAA,MACJ,QAAQ;AAAA,MACR;AAAA,MAEA,UAAA;AAAA,QAACA,kCAAAA,KAAA,OAAA,EAAI,WAAU,+CACb,UAAA;AAAA,UAAAC,kCAAA;AAAA,YAAC,KAAK;AAAA,YAAL;AAAA,cACC,MAAK;AAAA,cACL,OAAO,SAAS;AAAA,cAChB,aAAa,SAAS;AAAA,cACtB,aAAa,SAAS;AAAA,cACtB,UAAU;AAAA,cACV,YAAU;AAAA,YAAA;AAAA,UACZ;AAAA,UACAA,kCAAA;AAAA,YAAC,KAAK;AAAA,YAAL;AAAA,cACC,MAAK;AAAA,cACL,OAAO,WAAW;AAAA,cAClB,aAAa,WAAW;AAAA,cACxB,aAAa,WAAW;AAAA,cACxB,UAAU;AAAA,YAAA;AAAA,UAAA;AAAA,QACZ,GACF;AAAA,QACAA,kCAAA;AAAA,UAAC,KAAK;AAAA,UAAL;AAAA,YACC,MAAK;AAAA,YACL,OAAO,iBAAiB;AAAA,YACxB,aAAa,iBAAiB;AAAA,YAC9B,aAAa,iBAAiB;AAAA,YAC9B,UAAU;AAAA,UAAA;AAAA,QACZ;AAAA,QACAD,kCAAAA,KAAC,OAAI,EAAA,WAAU,+CACb,UAAA;AAAA,UAAAA,kCAAA;AAAA,YAAC,KAAK;AAAA,YAAL;AAAA,cACC,MAAK;AAAA,cACL,OAAO,aAAa;AAAA,cACpB,aAAa,aAAa;AAAA,cAE1B,UAAA;AAAA,gBAAAC,kCAAA;AAAA,kBAAC,YAAY;AAAA,kBAAZ;AAAA,oBACC,eAAe,CAAC,UACd,UAAU,MAAM,KAAK,CAACC,aAAY,OAAOA,SAAQ,GAAG,MAAM,KAAK,GAC3D,QAAQ;AAAA,oBAGd,gDAAC,YAAY,OAAZ,EAAkB,aAAa,aAAa,YAAa,CAAA;AAAA,kBAAA;AAAA,gBAC5D;AAAA,sDACC,YAAY,SAAZ,EACC,UAAAD,kCAAAA,IAAC,UAAO,WAAW,mBACjB,UAACA,kCAAAA,IAAA,YAAY,MAAZ,EACE,UAAA,UAAU,MAAM,IAAI,CAACC,aACpBD,kCAAA;AAAA,kBAAC,YAAY;AAAA,kBAAZ;AAAA,oBAEC,OAAO,OAAOC,SAAQ,GAAG;AAAA,oBAExB,UAAAA,SAAQ;AAAA,kBAAA;AAAA,kBAHJ,OAAOA,SAAQ,GAAG;AAAA,gBAAA,CAK1B,EACH,CAAA,EAAA,CACF,EACF,CAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UACF;AAAA,UAEAF,kCAAA;AAAA,YAAC,KAAK;AAAA,YAAL;AAAA,cACC,MAAK;AAAA,cACL,OAAO,WAAW;AAAA,cAClB,aAAa,WAAW;AAAA,cAExB,UAAA;AAAA,gBAAAC,kCAAA;AAAA,kBAAC,YAAY;AAAA,kBAAZ;AAAA,oBACC,eAAe,CAAC,UACd,UAAU,MAAM,KAAK,CAACC,aAAY,OAAOA,SAAQ,GAAG,MAAM,KAAK,GAC3D,QAAQ;AAAA,oBAGd,gDAAC,YAAY,OAAZ,EAAkB,aAAa,WAAW,YAAa,CAAA;AAAA,kBAAA;AAAA,gBAC1D;AAAA,sDACC,YAAY,SAAZ,EACC,UAAAD,kCAAAA,IAAC,UAAO,WAAW,mBACjB,UAACA,kCAAAA,IAAA,YAAY,MAAZ,EACE,UAAA,MAAM,MAAM,IAAI,CAAC,QAChBA,kCAAA;AAAA,kBAAC,YAAY;AAAA,kBAAZ;AAAA,oBAEC,OAAO,OAAO,IAAI,GAAG;AAAA,oBAEpB,UAAA,IAAI,QAAQ,IAAI;AAAA,kBAAA;AAAA,kBAHZ,OAAO,IAAI,GAAG;AAAA,gBAAA,CAKtB,EACH,CAAA,EAAA,CACF,EACF,CAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QACF,GACF;AAAA,SACG,WAA6B,mBAAmB,UAAU,KAAK,KAC/DD,kCAAA,KAAA,OAAA,EAAI,WAAU,+CACb,UAAA;AAAA,UAAAA,kCAAA;AAAA,YAAC,KAAK;AAAA,YAAL;AAAA,cACC,MAAK;AAAA,cACL,aAAa,uBAAuB;AAAA,cACpC,OAAO,uBAAuB;AAAA,cAE9B,UAAA;AAAA,gBAACC,kCAAAA,IAAA,OAAO,SAAP,EACC,UAACA,kCAAAA,IAAA,OAAO,OAAP,EAAa,aAAa,uBAAuB,YAAA,CAAa,EACjE,CAAA;AAAA,gBACAD,kCAAAA,KAAC,OAAO,SAAP,EACC,UAAA;AAAA,kBAAAC,kCAAA,IAAC,OAAO,MAAP,EAAY,OAAM,MAAK,UAAG,OAAA;AAAA,kBACzB,WAA6B,mBAAmB;AAAA,oBAChD,CAAC,YACEA,sCAAA,OAAO,MAAP,EAAY,OAAO,SACjB,UAAA,QAAA,GAD+B,OAElC;AAAA,kBAAA;AAAA,gBAEJ,EACF,CAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UACF;AAAA,UACAA,kCAAAA,IAAC,OAAI,EAAA,WAAU,SAAS,CAAA;AAAA,QAAA,GAC1B;AAAA,QAGFD,kCAAAA,KAAC,OAAI,EAAA,WAAU,iEACb,UAAA;AAAA,UAAAC,kCAAA;AAAA,YAAC,KAAK;AAAA,YAAL;AAAA,cACC,MAAK;AAAA,cACL,OAAO,YAAY;AAAA,cACnB,MAAM;AAAA,cACN,SAAQ;AAAA,cACR,OAAM;AAAA,cACN,WAAU;AAAA,cACV,SAAS;AAAA,cACT,UAAU,gBAAgB;AAAA,cAC1B,WAAW;AAAA,cAEV,UAAY,YAAA;AAAA,YAAA;AAAA,UACf;AAAA,UACC,oBACCA,kCAAA;AAAA,YAAC,KAAK;AAAA,YAAL;AAAA,cACC,MAAK;AAAA,cACL,OAAO,cAAc;AAAA,cACrB,UAAU,gBAAgB,CAAC,gBAAgB;AAAA,cAC3C,MAAM;AAAA,cACN,aAAa;AAAA,cACb,OAAM;AAAA,cACN,WAAU;AAAA,cACV,WAAW;AAAA,cAEV,UAAc,cAAA;AAAA,YAAA;AAAA,UAAA,IAGjBA,kCAAA;AAAA,YAAC,KAAK;AAAA,YAAL;AAAA,cACC,MAAK;AAAA,cACL,OAAO,WAAW;AAAA,cAClB,UAAU,gBAAgB,CAAC,gBAAgB;AAAA,cAC3C,aAAa;AAAA,cACb,MAAM;AAAA,cACN,OAAM;AAAA,cACN,WAAU;AAAA,cACV,WAAW;AAAA,cAEV,UAAW,WAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QACd,EAEJ,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
1
+ {"version":3,"file":"DictionaryDetailsForm.mjs","sources":["../../../../src/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.tsx"],"sourcesContent":["'use client';\n\nimport {\n DictionaryAPI,\n Dictionary as DistantDictionary,\n} from '@intlayer/backend';\nimport { Dictionary } from '@intlayer/core';\nimport { useEditedContent } from '@intlayer/editor-react';\nimport { ArrowUpFromLine, Download, Save, WandSparkles } from 'lucide-react';\nimport { type FC, useEffect, useMemo } from 'react';\n// @ts-ignore react-intlayer not build yet\nimport { useDictionary } from 'react-intlayer';\nimport {\n useAuditContentDeclarationMetadata,\n useGetProjects,\n useGetTags,\n usePushDictionaries,\n useWriteDictionary,\n} from '../../../hooks';\nimport { useAuth } from '../../Auth';\nimport { Form, useForm } from '../../Form';\nimport { Loader } from '../../Loader';\nimport { MultiSelect, Select } from '../../Select';\nimport { dictionaryDetailsContent } from './dictionaryDetails.content';\nimport {\n useDictionaryDetailsSchema,\n DictionaryDetailsFormData,\n} from './useDictionaryDetailsSchema';\n\ntype DictionaryDetailsProps = {\n dictionary: Dictionary;\n mode: 'local' | 'remote';\n};\n\nexport const DictionaryDetailsForm: FC<DictionaryDetailsProps> = ({\n dictionary,\n mode,\n}) => {\n const { session } = useAuth();\n const { project } = session ?? {};\n const { pushDictionaries } = usePushDictionaries();\n const { data: projects, isLoading: isLoadingProjects } = useGetProjects();\n const { data: tags, isLoading: isLoadingTags } = useGetTags();\n const dictionaryValue = {\n ...dictionary,\n publishedVersion: dictionary.publishedVersion ?? '-1',\n };\n\n const DictionaryDetailsSchema = useDictionaryDetailsSchema(\n String(project?._id)\n );\n const { form, isSubmitting } = useForm(DictionaryDetailsSchema, {\n defaultValues: dictionaryValue,\n });\n const {\n titleInput,\n keyInput,\n descriptionInput,\n publishedVersionSelect,\n publishButton,\n saveButton,\n projectInput,\n tagsSelect,\n auditButton,\n downloadButton,\n } = useDictionary(dictionaryDetailsContent);\n const { auditContentDeclaration, isLoading: isAuditing } =\n useAuditContentDeclarationMetadata();\n const { writeDictionary } = useWriteDictionary();\n\n useEffect(() => {\n form.reset(dictionaryValue);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dictionary, form?.reset]);\n\n const isFormEdited = form.formState.isDirty;\n const isLocalDictionary =\n typeof (dictionary as DistantDictionary)?._id === 'undefined';\n\n const onSubmitSuccess = async (data: DictionaryDetailsFormData) => {\n if (mode === 'remote') {\n await pushDictionaries([\n {\n ...dictionary,\n ...data,\n },\n ]);\n } else {\n await writeDictionary({\n ...dictionary,\n ...data,\n });\n }\n };\n\n const handleOnAuditFile = async () => {\n const updatedDictionary = form.getValues();\n await auditContentDeclaration({\n fileContent: JSON.stringify({ ...dictionary, ...updatedDictionary }),\n }).then((response) => {\n if (!response.data) return;\n\n try {\n const editedDictionary = JSON.parse(response.data.fileContent) as\n | Partial<Dictionary>\n | undefined;\n\n form.reset({\n ...updatedDictionary,\n ...editedDictionary,\n publishedVersion: updatedDictionary.publishedVersion ?? '-1',\n });\n } catch (error) {\n console.error(error);\n }\n });\n };\n\n const isLoading = isSubmitting || isLoadingTags;\n\n const { editedContent } = useEditedContent();\n const editedDictionary = useMemo(\n () => editedContent?.[dictionary.key],\n [editedContent, dictionary.key]\n );\n const isEdited = useMemo(\n () =>\n editedDictionary &&\n dictionary &&\n JSON.stringify(editedDictionary.content) !==\n JSON.stringify(dictionary.content),\n [dictionary, editedDictionary]\n );\n\n return (\n <Form\n className=\"flex size-full flex-1 flex-col gap-8\"\n {...form}\n schema={DictionaryDetailsSchema}\n onSubmitSuccess={onSubmitSuccess}\n >\n <div className=\"flex size-full flex-1 gap-8 max-md:flex-col\">\n <Form.EditableFieldInput\n name=\"key\"\n label={keyInput.label}\n placeholder={keyInput.label}\n description={keyInput.description}\n disabled={isSubmitting}\n isRequired\n />\n <Form.EditableFieldInput\n name=\"title\"\n label={titleInput.label}\n placeholder={titleInput.placeholder}\n description={titleInput.description}\n disabled={isSubmitting}\n />\n </div>\n <Form.EditableFieldTextArea\n name=\"description\"\n label={descriptionInput.label}\n placeholder={descriptionInput.placeholder}\n description={descriptionInput.description}\n disabled={isSubmitting}\n />\n <div className=\"flex size-full flex-1 gap-8 max-md:flex-col\">\n <Form.MultiSelect\n name=\"projectIds\"\n label={projectInput.label}\n description={projectInput.description}\n >\n <MultiSelect.Trigger\n getBadgeValue={(value) =>\n projects?.data?.find((project) => String(project._id) === value)\n ?.name ?? value\n }\n >\n <MultiSelect.Input placeholder={projectInput.placeholder} />\n </MultiSelect.Trigger>\n <MultiSelect.Content>\n <Loader isLoading={isLoadingProjects}>\n <MultiSelect.List>\n {projects?.data?.map((project) => (\n <MultiSelect.Item\n key={String(project._id)}\n value={String(project._id)}\n >\n {project.name}\n </MultiSelect.Item>\n ))}\n </MultiSelect.List>\n </Loader>\n </MultiSelect.Content>\n </Form.MultiSelect>\n\n <Form.MultiSelect\n name=\"tags\"\n label={tagsSelect.label}\n description={tagsSelect.description}\n >\n <MultiSelect.Trigger\n getBadgeValue={(value) =>\n projects?.data?.find((project) => String(project._id) === value)\n ?.name ?? value\n }\n >\n <MultiSelect.Input placeholder={tagsSelect.placeholder} />\n </MultiSelect.Trigger>\n <MultiSelect.Content>\n <Loader isLoading={isLoadingProjects}>\n <MultiSelect.List>\n {tags?.data?.map((tag) => (\n <MultiSelect.Item\n key={String(tag.key)}\n value={String(tag.key)}\n >\n {tag.name ?? tag.key}\n </MultiSelect.Item>\n ))}\n </MultiSelect.List>\n </Loader>\n </MultiSelect.Content>\n </Form.MultiSelect>\n </div>\n {((dictionary as DictionaryAPI).availableVersions?.length ?? 0) > 1 && (\n <div className=\"flex size-full flex-1 gap-8 max-md:flex-col\">\n <Form.Select\n name=\"publishedVersion\"\n description={publishedVersionSelect.description}\n label={publishedVersionSelect.label}\n >\n <Select.Trigger>\n <Select.Value placeholder={publishedVersionSelect.placeholder} />\n </Select.Trigger>\n <Select.Content>\n <Select.Item value=\"-1\">LTS</Select.Item>\n {(dictionary as DictionaryAPI).availableVersions?.map(\n (version) => (\n <Select.Item value={version} key={version}>\n {version}\n </Select.Item>\n )\n )}\n </Select.Content>\n </Form.Select>\n <div className=\"w-full\" />\n </div>\n )}\n\n <div className=\"flex flex-wrap items-center justify-end gap-2 max-md:flex-col\">\n <Form.Button\n type=\"button\"\n label={auditButton.label}\n Icon={WandSparkles}\n variant=\"outline\"\n color=\"text\"\n className=\"max-md:w-full\"\n onClick={handleOnAuditFile}\n disabled={isSubmitting || isAuditing}\n isLoading={isAuditing}\n >\n {auditButton.text}\n </Form.Button>\n\n {mode === 'remote' ? (\n isLocalDictionary ? (\n <Form.Button\n type=\"submit\"\n label={publishButton.label}\n disabled={isSubmitting || !isFormEdited || isLoading}\n Icon={ArrowUpFromLine}\n color=\"text\"\n className=\"max-md:w-full\"\n isLoading={isSubmitting}\n >\n {publishButton.text}\n </Form.Button>\n ) : (\n isEdited && (\n <Form.Button\n type=\"submit\"\n label={saveButton.label}\n disabled={isSubmitting || !isFormEdited || isLoading}\n Icon={Save}\n color=\"text\"\n className=\"max-md:w-full\"\n isLoading={isSubmitting}\n >\n {saveButton.text}\n </Form.Button>\n )\n )\n ) : (\n <Form.Button\n type=\"submit\"\n label={downloadButton.label}\n disabled={isSubmitting || !isFormEdited || isLoading}\n Icon={Download}\n color=\"text\"\n className=\"max-md:w-full\"\n isLoading={isSubmitting}\n >\n {downloadButton.text}\n </Form.Button>\n )}\n </div>\n </Form>\n );\n};\n"],"names":["editedDictionary","jsxs","jsx","project"],"mappings":"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"}
@@ -378,6 +378,38 @@ const dictionaryDetailsContent = {
378
378
  ar: "التدقيق",
379
379
  ru: "Отслеживание"
380
380
  })
381
+ },
382
+ downloadButton: {
383
+ text: intlayer.t({
384
+ en: "Download",
385
+ "en-GB": "Download",
386
+ fr: "Télécharger",
387
+ es: "Descargar",
388
+ de: "Herunterladen",
389
+ ja: "ダウンロード",
390
+ ko: "다운로드",
391
+ zh: "下载",
392
+ it: "Scarica",
393
+ pt: "Baixar",
394
+ hi: "डाउनलोड",
395
+ ar: "تنزيل",
396
+ ru: "Скачать"
397
+ }),
398
+ label: intlayer.t({
399
+ en: "Click to download",
400
+ "en-GB": "Click to download",
401
+ fr: "Cliquez pour télécharger",
402
+ es: "Haga clic para descargar",
403
+ de: "Klicken Sie, um herunterzuladen",
404
+ ja: "ダウンロードするにはクリックしてください",
405
+ ko: "다운로드를 클릭하세요",
406
+ zh: "单击下载",
407
+ it: "Fai clic per scaricare",
408
+ pt: "Clique para baixar",
409
+ hi: "डाउनलोड करने के लिए क्लिक करें",
410
+ ar: "انقر لتنزيل",
411
+ ru: "Нажмите, чтобы скачать"
412
+ })
381
413
  }
382
414
  }
383
415
  };