@erpsquad/common 1.8.1 → 1.8.3

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 (292) hide show
  1. package/CHANGELOG.md +253 -253
  2. package/CSS_SETUP.md +67 -0
  3. package/QUICK_START.md +34 -0
  4. package/dist/_virtual/index/index.esm10.js +3 -3
  5. package/dist/_virtual/index/index.esm11.js +2 -4
  6. package/dist/_virtual/index/index.esm11.js.map +1 -1
  7. package/dist/_virtual/index/index.esm2.js +4 -2
  8. package/dist/_virtual/index/index.esm2.js.map +1 -1
  9. package/dist/_virtual/index/index.esm3.js +3 -3
  10. package/dist/_virtual/index/index.esm4.js +3 -3
  11. package/dist/_virtual/index/index.esm5.js +3 -3
  12. package/dist/_virtual/index/index.esm6.js +3 -3
  13. package/dist/_virtual/index/index.esm7.js +3 -3
  14. package/dist/_virtual/index/index.esm8.js +3 -3
  15. package/dist/_virtual/index/index.esm9.js +3 -3
  16. package/dist/_virtual/index/index10.js +1 -1
  17. package/dist/_virtual/index/index11.js +1 -1
  18. package/dist/_virtual/index/index2.js +1 -1
  19. package/dist/_virtual/index/index3.js +1 -1
  20. package/dist/_virtual/index/index4.js +1 -1
  21. package/dist/_virtual/index/index5.js +1 -1
  22. package/dist/_virtual/index/index6.js +1 -1
  23. package/dist/_virtual/index/index7.js +1 -1
  24. package/dist/_virtual/index/index8.js +1 -1
  25. package/dist/_virtual/index/index9.js +1 -1
  26. package/dist/api-client/api.accounting/api/index.esm.js.map +1 -1
  27. package/dist/api-client/api.accounting/api/index.js.map +1 -1
  28. package/dist/api-client/api.drive/api/index.esm.js.map +1 -1
  29. package/dist/api-client/api.drive/api/index.js.map +1 -1
  30. package/dist/api-client/api.inventory/api/index.esm.js.map +1 -1
  31. package/dist/api-client/api.inventory/api/index.js.map +1 -1
  32. package/dist/api-client/api.manufacturing/api/index.esm.js.map +1 -1
  33. package/dist/api-client/api.manufacturing/api/index.js.map +1 -1
  34. package/dist/api-client/api.purchase/api/index.esm.js.map +1 -1
  35. package/dist/api-client/api.purchase/api/index.js.map +1 -1
  36. package/dist/api-client/api.rbac/api/index.esm.js.map +1 -1
  37. package/dist/api-client/api.rbac/api/index.js.map +1 -1
  38. package/dist/api-client/api.rental/api/index.esm.js.map +1 -1
  39. package/dist/api-client/api.rental/api/index.js.map +1 -1
  40. package/dist/api-client/api.sales/api/index.esm.js.map +1 -1
  41. package/dist/api-client/api.sales/api/index.js.map +1 -1
  42. package/dist/api-client/api.system-feature/api/index.esm.js.map +1 -1
  43. package/dist/api-client/api.system-feature/api/index.js.map +1 -1
  44. package/dist/api-client/api.user/api/index.esm.js.map +1 -1
  45. package/dist/api-client/api.user/api/index.js.map +1 -1
  46. package/dist/api-client/index.d.ts +39 -39
  47. package/dist/components/action-bar/action-bar/index.esm.js +56 -4
  48. package/dist/components/action-bar/action-bar/index.esm.js.map +1 -1
  49. package/dist/components/action-bar/action-bar/index.js +28 -18
  50. package/dist/components/action-bar/action-bar/index.js.map +1 -1
  51. package/dist/components/change-user-password-modal/change-user-password-modal/index.esm.js.map +1 -1
  52. package/dist/components/change-user-password-modal/change-user-password-modal/index.js.map +1 -1
  53. package/dist/components/editor/custom-editor/index.esm.js +1 -1
  54. package/dist/components/editor/custom-editor/index.esm.js.map +1 -1
  55. package/dist/components/editor/custom-editor/index.js +1 -1
  56. package/dist/components/editor/custom-editor/index.js.map +1 -1
  57. package/dist/components/filter/filter/index.esm.js +1 -1
  58. package/dist/components/filter/filter/index.esm.js.map +1 -1
  59. package/dist/components/filter/filter/index.js +1 -1
  60. package/dist/components/filter/filter/index.js.map +1 -1
  61. package/dist/components/form-control/form-builder/form-builder-element/dynamic-select/index.esm.js.map +1 -1
  62. package/dist/components/form-control/form-builder/form-builder-element/dynamic-select/index.js.map +1 -1
  63. package/dist/components/header/header/index.esm.js +1 -1
  64. package/dist/components/header/header/index.esm.js.map +1 -1
  65. package/dist/components/header/header/index.js +1 -1
  66. package/dist/components/header/header/index.js.map +1 -1
  67. package/dist/components/header/redux/actionCreator/index.esm.js +1 -1
  68. package/dist/components/header/redux/actionCreator/index.esm.js.map +1 -1
  69. package/dist/components/header/redux/actionCreator/index.js +1 -1
  70. package/dist/components/header/redux/actionCreator/index.js.map +1 -1
  71. package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.esm.js +1 -1
  72. package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.esm.js.map +1 -1
  73. package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.js +1 -1
  74. package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.js.map +1 -1
  75. package/dist/components/reports-title-bar/redux/actionCreator/index.esm.js +1 -1
  76. package/dist/components/reports-title-bar/redux/actionCreator/index.esm.js.map +1 -1
  77. package/dist/components/reports-title-bar/redux/actionCreator/index.js +1 -1
  78. package/dist/components/reports-title-bar/redux/actionCreator/index.js.map +1 -1
  79. package/dist/components/reset-password-modal/reset-password-modal/index.esm.js.map +1 -1
  80. package/dist/components/reset-password-modal/reset-password-modal/index.js.map +1 -1
  81. package/dist/components/share-modal/redux/actionCreator/index.esm.js +1 -1
  82. package/dist/components/share-modal/redux/actionCreator/index.esm.js.map +1 -1
  83. package/dist/components/share-modal/redux/actionCreator/index.js +1 -1
  84. package/dist/components/share-modal/redux/actionCreator/index.js.map +1 -1
  85. package/dist/components/sub-header-doc/sub-header-doc/index.esm.js.map +1 -1
  86. package/dist/components/sub-header-doc/sub-header-doc/index.js.map +1 -1
  87. package/dist/components/upload/upload/index.esm.js +2 -2
  88. package/dist/components/upload/upload/index.esm.js.map +1 -1
  89. package/dist/components/upload/upload/index.js +2 -2
  90. package/dist/components/upload/upload/index.js.map +1 -1
  91. package/dist/constants/modules/index.esm.js.map +1 -1
  92. package/dist/constants/modules/index.js.map +1 -1
  93. package/dist/constants/pathnames/pathname/index.esm.js.map +1 -1
  94. package/dist/constants/pathnames/pathname/index.js.map +1 -1
  95. package/dist/constants/pathnames/pathname.accounting/index.esm.js.map +1 -1
  96. package/dist/constants/pathnames/pathname.accounting/index.js.map +1 -1
  97. package/dist/constants/pathnames/pathname.crm/index.esm.js.map +1 -1
  98. package/dist/constants/pathnames/pathname.crm/index.js.map +1 -1
  99. package/dist/constants/pathnames/pathname.document/index.esm.js.map +1 -1
  100. package/dist/constants/pathnames/pathname.document/index.js.map +1 -1
  101. package/dist/constants/pathnames/pathname.hrms/index.esm.js.map +1 -1
  102. package/dist/constants/pathnames/pathname.hrms/index.js.map +1 -1
  103. package/dist/constants/pathnames/pathname.inventory/index.esm.js.map +1 -1
  104. package/dist/constants/pathnames/pathname.inventory/index.js.map +1 -1
  105. package/dist/constants/pathnames/pathname.manufacturing/index.esm.js.map +1 -1
  106. package/dist/constants/pathnames/pathname.manufacturing/index.js.map +1 -1
  107. package/dist/constants/pathnames/pathname.office/index.esm.js.map +1 -1
  108. package/dist/constants/pathnames/pathname.office/index.js.map +1 -1
  109. package/dist/constants/pathnames/pathname.procurement/index.esm.js.map +1 -1
  110. package/dist/constants/pathnames/pathname.procurement/index.js.map +1 -1
  111. package/dist/constants/pathnames/pathname.project/index.esm.js.map +1 -1
  112. package/dist/constants/pathnames/pathname.project/index.js.map +1 -1
  113. package/dist/constants/pathnames/pathname.quotes/index.esm.js.map +1 -1
  114. package/dist/constants/pathnames/pathname.quotes/index.js.map +1 -1
  115. package/dist/constants/pathnames/pathname.rental/index.esm.js.map +1 -1
  116. package/dist/constants/pathnames/pathname.rental/index.js.map +1 -1
  117. package/dist/constants/pathnames/pathname.user/index.esm.js.map +1 -1
  118. package/dist/constants/pathnames/pathname.user/index.js.map +1 -1
  119. package/dist/constants/route-page-map/index.esm.js.map +1 -1
  120. package/dist/constants/route-page-map/index.js.map +1 -1
  121. package/dist/contexts/AuthContext/index.esm.js +2 -2
  122. package/dist/contexts/AuthContext/index.esm.js.map +1 -1
  123. package/dist/contexts/AuthContext/index.js +1 -1
  124. package/dist/contexts/AuthContext/index.js.map +1 -1
  125. package/dist/contexts/languageContext/index.esm.js +1 -1
  126. package/dist/contexts/languageContext/index.esm.js.map +1 -1
  127. package/dist/contexts/languageContext/index.js +1 -1
  128. package/dist/contexts/languageContext/index.js.map +1 -1
  129. package/dist/contexts/page-context/index.esm.js +0 -4
  130. package/dist/contexts/page-context/index.esm.js.map +1 -1
  131. package/dist/contexts/page-context/index.js +1 -1
  132. package/dist/contexts/page-context/index.js.map +1 -1
  133. package/dist/hooks/use-material-calculations/index.esm.js +2 -2
  134. package/dist/hooks/use-material-calculations/index.esm.js.map +1 -1
  135. package/dist/hooks/use-material-calculations/index.js.map +1 -1
  136. package/dist/hooks/use-translations/index.esm.js.map +1 -1
  137. package/dist/hooks/use-translations/index.js.map +1 -1
  138. package/dist/hooks/useLanguageFallback/index.esm.js +2 -2
  139. package/dist/hooks/useLanguageFallback/index.esm.js.map +1 -1
  140. package/dist/hooks/useLanguageFallback/index.js.map +1 -1
  141. package/dist/hooks/useLocationFilter/index.esm.js +2 -2
  142. package/dist/hooks/useLocationFilter/index.esm.js.map +1 -1
  143. package/dist/hooks/useLocationFilter/index.js.map +1 -1
  144. package/dist/layout/fullScreen/fullScreen/index.esm.js.map +1 -1
  145. package/dist/layout/fullScreen/fullScreen/index.js.map +1 -1
  146. package/dist/layout/index.d.ts +3 -3
  147. package/dist/layout/sidebarScreen/sidebarScreen/index.esm.js.map +1 -1
  148. package/dist/layout/sidebarScreen/sidebarScreen/index.js.map +1 -1
  149. package/dist/node_modules/@asseinfo/react-kanban/dist/index/index.esm.js +2 -2
  150. package/dist/node_modules/@asseinfo/react-kanban/dist/index/index.js +1 -1
  151. package/dist/node_modules/@asseinfo/react-kanban/dist/index/index.js.map +1 -1
  152. package/dist/node_modules/@glideapps/glide-data-grid-cells/dist/js/article-cell-editor-JDI676YI/index.esm.js +1 -1
  153. package/dist/node_modules/@glideapps/glide-data-grid-cells/dist/js/article-cell-editor-JDI676YI/index.js +2 -2
  154. package/dist/node_modules/@glideapps/glide-data-grid-cells/dist/js/article-cell-editor-JDI676YI/index.js.map +1 -1
  155. package/dist/node_modules/@mui/icons-material/utils/createSvgIcon/index.esm.js +4 -4
  156. package/dist/node_modules/@mui/icons-material/utils/createSvgIcon/index.esm.js.map +1 -1
  157. package/dist/node_modules/@mui/icons-material/utils/createSvgIcon/index.js +1 -1
  158. package/dist/node_modules/@mui/material/Hidden/HiddenJs/index.js.map +1 -1
  159. package/dist/node_modules/@mui/system/colorManipulator/index.esm.js +2 -2
  160. package/dist/node_modules/@mui/system/colorManipulator/index.js +1 -1
  161. package/dist/node_modules/@mui/system/colorManipulator/index.js.map +1 -1
  162. package/dist/node_modules/@mui/system/createStyled/index.esm.js +6 -6
  163. package/dist/node_modules/@mui/system/createStyled/index.js +1 -1
  164. package/dist/node_modules/@mui/system/useThemeWithoutDefault/index.esm.js +1 -1
  165. package/dist/node_modules/@mui/system/useThemeWithoutDefault/index.js +1 -1
  166. package/dist/node_modules/@mui/utils/esm/elementTypeAcceptingRef/elementTypeAcceptingRef/index.js.map +1 -1
  167. package/dist/node_modules/@popperjs/core/lib/modifiers/applyStyles/index.js.map +1 -1
  168. package/dist/node_modules/@popperjs/core/lib/modifiers/arrow/index.js.map +1 -1
  169. package/dist/node_modules/@popperjs/core/lib/modifiers/computeStyles/index.js.map +1 -1
  170. package/dist/node_modules/@popperjs/core/lib/modifiers/flip/index.js.map +1 -1
  171. package/dist/node_modules/@popperjs/core/lib/modifiers/hide/index.js.map +1 -1
  172. package/dist/node_modules/@popperjs/core/lib/modifiers/offset/index.js.map +1 -1
  173. package/dist/node_modules/@popperjs/core/lib/modifiers/popperOffsets/index.js.map +1 -1
  174. package/dist/node_modules/@popperjs/core/lib/modifiers/preventOverflow/index.js.map +1 -1
  175. package/dist/node_modules/@toast-ui/editor/dist/esm/index/index.esm.js +21 -21
  176. package/dist/node_modules/@toast-ui/editor/dist/esm/index/index.esm.js.map +1 -1
  177. package/dist/node_modules/@toast-ui/editor/dist/toastui-editor-viewer/index.esm.js +25 -25
  178. package/dist/node_modules/@toast-ui/editor/dist/toastui-editor-viewer/index.esm.js.map +1 -1
  179. package/dist/node_modules/{@glideapps/glide-data-grid-cells/node_modules/@toast-ui → @toast-ui}/react-editor/dist/esm/index/index.esm.js +2 -2
  180. package/dist/node_modules/@toast-ui/react-editor/dist/esm/index/index.esm.js.map +1 -0
  181. package/dist/node_modules/@toast-ui/react-editor/dist/esm/index/index.js +2 -0
  182. package/dist/node_modules/@toast-ui/react-editor/dist/esm/index/index.js.map +1 -0
  183. package/dist/redux/actionCreator/index.esm.js.map +1 -1
  184. package/dist/redux/actionCreator/index.js.map +1 -1
  185. package/dist/redux/slices/headerSlice/index.esm.js +2 -2
  186. package/dist/redux/slices/headerSlice/index.esm.js.map +1 -1
  187. package/dist/redux/slices/headerSlice/index.js.map +1 -1
  188. package/dist/redux/slices/inventoryReportsTitleBarSlice/index.esm.js +2 -2
  189. package/dist/redux/slices/inventoryReportsTitleBarSlice/index.esm.js.map +1 -1
  190. package/dist/redux/slices/inventoryReportsTitleBarSlice/index.js.map +1 -1
  191. package/dist/redux/slices/reportsTitleBarSlice/index.esm.js +2 -2
  192. package/dist/redux/slices/reportsTitleBarSlice/index.esm.js.map +1 -1
  193. package/dist/redux/slices/reportsTitleBarSlice/index.js.map +1 -1
  194. package/dist/redux/slices/shareSlice/index.esm.js +2 -2
  195. package/dist/redux/slices/shareSlice/index.esm.js.map +1 -1
  196. package/dist/redux/slices/shareSlice/index.js.map +1 -1
  197. package/dist/server/index.esm.js.map +1 -1
  198. package/dist/server/index.js.map +1 -1
  199. package/dist/style.css +2 -2
  200. package/dist/utils/api/index.esm.js +4 -4
  201. package/dist/utils/api/index.esm.js.map +1 -1
  202. package/dist/utils/api/index.js +1 -1
  203. package/dist/utils/api/index.js.map +1 -1
  204. package/dist/utils/common/index.esm.js +8 -8
  205. package/dist/utils/common/index.esm.js.map +1 -1
  206. package/dist/utils/common/index.js +1 -1
  207. package/dist/utils/common/index.js.map +1 -1
  208. package/dist/utils/date-range/index.esm.js.map +1 -1
  209. package/dist/utils/date-range/index.js.map +1 -1
  210. package/dist/utils/menu-filter/index.esm.js.map +1 -1
  211. package/dist/utils/menu-filter/index.js.map +1 -1
  212. package/dist/views/afterAuth/dashboard/redux/actionCreator/index.esm.js.map +1 -1
  213. package/dist/views/afterAuth/dashboard/redux/actionCreator/index.js.map +1 -1
  214. package/dist/views/afterAuth/dashboard/redux/reducer/index.esm.js.map +1 -1
  215. package/dist/views/afterAuth/dashboard/redux/reducer/index.js.map +1 -1
  216. package/dist/views/afterAuth/dashboard/redux/state/index.esm.js.map +1 -1
  217. package/dist/views/afterAuth/dashboard/redux/state/index.js.map +1 -1
  218. package/dist/views/beforeAuth/components/share-modal-data/share-modal-data/index.esm.js.map +1 -1
  219. package/dist/views/beforeAuth/components/share-modal-data/share-modal-data/index.js.map +1 -1
  220. package/dist/views/beforeAuth/components/shared-pages-data/shared-pages-data/index.esm.js.map +1 -1
  221. package/dist/views/beforeAuth/components/shared-pages-data/shared-pages-data/index.js.map +1 -1
  222. package/dist/views/beforeAuth/components/user-dashboard-data/user-dashboard-data/index.esm.js.map +1 -1
  223. package/dist/views/beforeAuth/components/user-dashboard-data/user-dashboard-data/index.js.map +1 -1
  224. package/dist/views/template-editor/add-template/add-template/index.esm.js.map +1 -1
  225. package/dist/views/template-editor/add-template/add-template/index.js.map +1 -1
  226. package/dist/views/template-editor/company-selection-modal/company-selection-modal/index.esm.js.map +1 -1
  227. package/dist/views/template-editor/company-selection-modal/company-selection-modal/index.js.map +1 -1
  228. package/dist/views/template-editor/components/EditorCanvas/index.esm.js.map +1 -1
  229. package/dist/views/template-editor/components/EditorCanvas/index.js.map +1 -1
  230. package/dist/views/template-editor/components/EditorHeader/index.esm.js.map +1 -1
  231. package/dist/views/template-editor/components/EditorHeader/index.js.map +1 -1
  232. package/dist/views/template-editor/components/EditorSection/index.esm.js.map +1 -1
  233. package/dist/views/template-editor/components/EditorSection/index.js.map +1 -1
  234. package/dist/views/template-editor/components/EditorSidebar/index.esm.js +3 -3
  235. package/dist/views/template-editor/components/EditorSidebar/index.esm.js.map +1 -1
  236. package/dist/views/template-editor/components/EditorSidebar/index.js +14 -14
  237. package/dist/views/template-editor/components/EditorSidebar/index.js.map +1 -1
  238. package/dist/views/template-editor/components/SectionFlowEditor/index.esm.js.map +1 -1
  239. package/dist/views/template-editor/components/SectionFlowEditor/index.js.map +1 -1
  240. package/dist/views/template-editor/components/SectionFormatPanel/index.esm.js.map +1 -1
  241. package/dist/views/template-editor/components/SectionFormatPanel/index.js.map +1 -1
  242. package/dist/views/template-editor/components/controllers/AlignmentControl/index.esm.js.map +1 -1
  243. package/dist/views/template-editor/components/controllers/AlignmentControl/index.js.map +1 -1
  244. package/dist/views/template-editor/components/controllers/ButtonControls/index.esm.js.map +1 -1
  245. package/dist/views/template-editor/components/controllers/ButtonControls/index.js.map +1 -1
  246. package/dist/views/template-editor/components/controllers/CodeControls/index.esm.js.map +1 -1
  247. package/dist/views/template-editor/components/controllers/CodeControls/index.js.map +1 -1
  248. package/dist/views/template-editor/components/controllers/DividerControls/index.esm.js.map +1 -1
  249. package/dist/views/template-editor/components/controllers/DividerControls/index.js.map +1 -1
  250. package/dist/views/template-editor/components/controllers/ImageControls/index.esm.js.map +1 -1
  251. package/dist/views/template-editor/components/controllers/ImageControls/index.js.map +1 -1
  252. package/dist/views/template-editor/components/controllers/SignatureControls/index.esm.js.map +1 -1
  253. package/dist/views/template-editor/components/controllers/SignatureControls/index.js.map +1 -1
  254. package/dist/views/template-editor/components/controllers/TableControls/index.esm.js.map +1 -1
  255. package/dist/views/template-editor/components/controllers/TableControls/index.js.map +1 -1
  256. package/dist/views/template-editor/components/controllers/TextControls/index.esm.js.map +1 -1
  257. package/dist/views/template-editor/components/controllers/TextControls/index.js.map +1 -1
  258. package/dist/views/template-editor/components/controllers/border-control/index.esm.js.map +1 -1
  259. package/dist/views/template-editor/components/controllers/border-control/index.js.map +1 -1
  260. package/dist/views/template-editor/edit-section-modal/edit-section-modal/index.esm.js.map +1 -1
  261. package/dist/views/template-editor/edit-section-modal/edit-section-modal/index.js.map +1 -1
  262. package/dist/views/template-editor/routes/index.esm.js.map +1 -1
  263. package/dist/views/template-editor/routes/index.js.map +1 -1
  264. package/dist/views/template-editor/template-modal/html-thumbnail-preview/index.esm.js.map +1 -1
  265. package/dist/views/template-editor/template-modal/html-thumbnail-preview/index.js.map +1 -1
  266. package/dist/views/template-editor/template-modal/template-modal/index.esm.js.map +1 -1
  267. package/dist/views/template-editor/template-modal/template-modal/index.js.map +1 -1
  268. package/dist/views/template-editor/template-name-modal/template-name-modal/index.esm.js.map +1 -1
  269. package/dist/views/template-editor/template-name-modal/template-name-modal/index.js.map +1 -1
  270. package/dist/views/template-editor/templates/index.esm.js +1 -1
  271. package/dist/views/template-editor/templates/index.esm.js.map +1 -1
  272. package/dist/views/template-editor/templates/index.js +1 -1
  273. package/dist/views/template-editor/templates/index.js.map +1 -1
  274. package/dist/views/template-editor/utils/common/index.esm.js.map +1 -1
  275. package/dist/views/template-editor/utils/common/index.js.map +1 -1
  276. package/dist/views/template-editor/utils/constant/index.esm.js.map +1 -1
  277. package/dist/views/template-editor/utils/constant/index.js.map +1 -1
  278. package/dist/views/template-editor/utils/style-extractor/index.esm.js.map +1 -1
  279. package/dist/views/template-editor/utils/style-extractor/index.js.map +1 -1
  280. package/package.json +4 -2
  281. package/src/styles/README.md +287 -287
  282. package/src/styles/all.scss +7 -7
  283. package/src/styles/animations.scss +5 -5
  284. package/src/styles/css/reset.css +1 -1
  285. package/src/styles/index.ts +146 -146
  286. package/src/styles/mixins.scss +5 -5
  287. package/src/styles/sass/main.scss +11 -11
  288. package/src/styles/utils.scss +5 -5
  289. package/src/styles/variables.scss +4 -4
  290. package/dist/node_modules/@glideapps/glide-data-grid-cells/node_modules/@toast-ui/react-editor/dist/esm/index/index.esm.js.map +0 -1
  291. package/dist/node_modules/@glideapps/glide-data-grid-cells/node_modules/@toast-ui/react-editor/dist/esm/index/index.js +0 -2
  292. package/dist/node_modules/@glideapps/glide-data-grid-cells/node_modules/@toast-ui/react-editor/dist/esm/index/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../../../src/hooks/useLanguageFallback.ts"],"sourcesContent":["import { useState } from 'react';\nimport { DEFAULT_LANG } from '../constants/all-language';\n\ninterface ILanguage {\n label: string;\n code: string;\n direction: string;\n}\n\n// Configuration for fallback behavior\ninterface FallbackConfig {\n fallbackOrder?: string[];\n enableConsoleWarnings?: boolean;\n retryOnError?: boolean;\n maxRetries?: number;\n}\n\n// Updated fallback order with English first\nconst DEFAULT_FALLBACK_CONFIG: Required<FallbackConfig> = {\n fallbackOrder: ['en', 'en-US', DEFAULT_LANG], // English first\n enableConsoleWarnings: true,\n retryOnError: false,\n maxRetries: 3,\n};\n\nexport const useLanguageFallback = (config: FallbackConfig = {}) => {\n const finalConfig = { ...DEFAULT_FALLBACK_CONFIG, ...config };\n const [retryCount, setRetryCount] = useState(0);\n\n // Create English fallback language object\n const createEnglishFallback = (): ILanguage => ({\n code: 'en',\n label: 'English',\n direction: 'ltr'\n });\n\n // Find the best available language with fallback logic\n const findBestAvailableLanguage = (\n languages: ILanguage[], \n preferredCode?: string\n ): ILanguage | null => {\n if (!languages || languages.length === 0) {\n if (finalConfig.enableConsoleWarnings) {\n console.warn('No languages available for fallback selection, using English');\n }\n return createEnglishFallback();\n }\n\n // First try the preferred language if provided\n if (preferredCode) {\n const preferred = languages.find(lang => lang.code === preferredCode);\n if (preferred) return preferred;\n \n if (finalConfig.enableConsoleWarnings) {\n console.warn(`Preferred language \"${preferredCode}\" not found, trying fallbacks`);\n }\n }\n\n // Try fallback languages in order (English first)\n for (const fallbackCode of finalConfig.fallbackOrder) {\n const fallback = languages.find(lang => lang.code === fallbackCode);\n if (fallback) {\n if (finalConfig.enableConsoleWarnings && preferredCode && preferredCode !== fallbackCode) {\n console.warn(`Using fallback language: \"${fallbackCode}\" instead of \"${preferredCode}\"`);\n }\n return fallback;\n }\n }\n\n // If no fallbacks found, return English or first available language\n const englishLang = languages.find(lang => lang.code === 'en');\n if (englishLang) {\n if (finalConfig.enableConsoleWarnings) {\n console.warn('Using English as ultimate fallback');\n }\n return englishLang;\n }\n\n // Last resort - return first available language\n if (finalConfig.enableConsoleWarnings) {\n console.warn('No English fallback found, using first available language');\n }\n return languages[0] || createEnglishFallback();\n };\n\n // Create a fallback language object when API fails - always English\n const createEmergencyFallback = (): ILanguage => {\n return createEnglishFallback();\n };\n\n // Validate if a language code exists in the available languages\n const validateLanguageCode = (languages: ILanguage[], code: string): boolean => {\n return languages.some(lang => lang.code === code);\n };\n\n // Get saved language from localStorage with validation\n const getSavedLanguage = (languages: ILanguage[]): string | null => {\n const saved = localStorage.getItem('_language');\n if (!saved) return null;\n \n // Validate saved language exists in available languages\n if (validateLanguageCode(languages, saved)) {\n return saved;\n }\n \n if (finalConfig.enableConsoleWarnings) {\n console.warn(`Saved language \"${saved}\" is no longer available, will use English fallback`);\n }\n return null;\n };\n\n // Ensure English is always available in languages array\n const ensureEnglishAvailable = (languages: ILanguage[]): ILanguage[] => {\n const hasEnglish = languages.some(lang => lang.code === 'en');\n if (!hasEnglish) {\n return [createEnglishFallback(), ...languages];\n }\n return languages;\n };\n\n // Retry mechanism for failed language fetches\n const shouldRetry = (): boolean => {\n return finalConfig.retryOnError && retryCount < finalConfig.maxRetries;\n };\n\n const incrementRetry = () => {\n setRetryCount(prev => prev + 1);\n };\n\n const resetRetry = () => {\n setRetryCount(0);\n };\n\n return {\n findBestAvailableLanguage,\n createEmergencyFallback,\n createEnglishFallback,\n validateLanguageCode,\n getSavedLanguage,\n ensureEnglishAvailable,\n shouldRetry,\n incrementRetry,\n resetRetry,\n retryCount,\n config: finalConfig,\n };\n};\n\n// Additional utility hook for language state management\nexport const useLanguageState = () => {\n const [isInitialized, setIsInitialized] = useState(false);\n const [hasError, setHasError] = useState(false);\n const [errorMessage, setErrorMessage] = useState<string | null>(null);\n\n const markInitialized = () => setIsInitialized(true);\n const setError = (error: string) => {\n setHasError(true);\n setErrorMessage(error);\n };\n const clearError = () => {\n setHasError(false);\n setErrorMessage(null);\n };\n\n return {\n isInitialized,\n hasError,\n errorMessage,\n markInitialized,\n setError,\n clearError,\n };\n};\n\nexport default {\n useLanguageFallback,\n useLanguageState,\n};\n\nexport type { ILanguage, FallbackConfig };\n\n"],"names":[],"mappings":";;AAkBA,MAAM,0BAAoD;AAAA,EACxD,eAAe,CAAC,MAAM,SAAS,YAAY;AAAA;AAAA,EAC3C,uBAAuB;AAAA,EACvB,cAAc;AAAA,EACd,YAAY;AACd;AAEO,MAAM,sBAAsB,CAAC,SAAyB,OAAO;AAClE,QAAM,cAAc,EAAE,GAAG,yBAAyB,GAAG,OAAA;AACrD,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,CAAC;AAG9C,QAAM,wBAAwB,OAAkB;AAAA,IAC9C,MAAM;AAAA,IACN,OAAO;AAAA,IACP,WAAW;AAAA,EAAA;AAIb,QAAM,4BAA4B,CAChC,WACA,kBACqB;AACrB,QAAI,CAAC,aAAa,UAAU,WAAW,GAAG;AACxC,UAAI,YAAY,uBAAuB;AACrC,gBAAQ,KAAK,8DAA8D;AAAA,MAC7E;AACA,aAAO,sBAAA;AAAA,IACT;AAGA,QAAI,eAAe;AACjB,YAAM,YAAY,UAAU,KAAK,CAAA,SAAQ,KAAK,SAAS,aAAa;AACpE,UAAI,UAAW,QAAO;AAEtB,UAAI,YAAY,uBAAuB;AACrC,gBAAQ,KAAK,uBAAuB,aAAa,+BAA+B;AAAA,MAClF;AAAA,IACF;AAGA,eAAW,gBAAgB,YAAY,eAAe;AACpD,YAAM,WAAW,UAAU,KAAK,CAAA,SAAQ,KAAK,SAAS,YAAY;AAClE,UAAI,UAAU;AACZ,YAAI,YAAY,yBAAyB,iBAAiB,kBAAkB,cAAc;AACxF,kBAAQ,KAAK,6BAA6B,YAAY,iBAAiB,aAAa,GAAG;AAAA,QACzF;AACA,eAAO;AAAA,MACT;AAAA,IACF;AAGA,UAAM,cAAc,UAAU,KAAK,CAAA,SAAQ,KAAK,SAAS,IAAI;AAC7D,QAAI,aAAa;AACf,UAAI,YAAY,uBAAuB;AACrC,gBAAQ,KAAK,oCAAoC;AAAA,MACnD;AACA,aAAO;AAAA,IACT;AAGA,QAAI,YAAY,uBAAuB;AACrC,cAAQ,KAAK,2DAA2D;AAAA,IAC1E;AACA,WAAO,UAAU,CAAC,KAAK,sBAAA;AAAA,EACzB;AAGA,QAAM,0BAA0B,MAAiB;AAC/C,WAAO,sBAAA;AAAA,EACT;AAGA,QAAM,uBAAuB,CAAC,WAAwB,SAA0B;AAC9E,WAAO,UAAU,KAAK,CAAA,SAAQ,KAAK,SAAS,IAAI;AAAA,EAClD;AAGA,QAAM,mBAAmB,CAAC,cAA0C;AAClE,UAAM,QAAQ,aAAa,QAAQ,WAAW;AAC9C,QAAI,CAAC,MAAO,QAAO;AAGnB,QAAI,qBAAqB,WAAW,KAAK,GAAG;AAC1C,aAAO;AAAA,IACT;AAEA,QAAI,YAAY,uBAAuB;AACrC,cAAQ,KAAK,mBAAmB,KAAK,qDAAqD;AAAA,IAC5F;AACA,WAAO;AAAA,EACT;AAGA,QAAM,yBAAyB,CAAC,cAAwC;AACtE,UAAM,aAAa,UAAU,KAAK,CAAA,SAAQ,KAAK,SAAS,IAAI;AAC5D,QAAI,CAAC,YAAY;AACf,aAAO,CAAC,yBAAyB,GAAG,SAAS;AAAA,IAC/C;AACA,WAAO;AAAA,EACT;AAGA,QAAM,cAAc,MAAe;AACjC,WAAO,YAAY,gBAAgB,aAAa,YAAY;AAAA,EAC9D;AAEA,QAAM,iBAAiB,MAAM;AAC3B,kBAAc,CAAA,SAAQ,OAAO,CAAC;AAAA,EAChC;AAEA,QAAM,aAAa,MAAM;AACvB,kBAAc,CAAC;AAAA,EACjB;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,EAAA;AAEZ;AAGO,MAAM,mBAAmB,MAAM;AACpC,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAAS,KAAK;AACxD,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,KAAK;AAC9C,QAAM,CAAC,cAAc,eAAe,IAAI,SAAwB,IAAI;AAEpE,QAAM,kBAAkB,MAAM,iBAAiB,IAAI;AACnD,QAAM,WAAW,CAAC,UAAkB;AAClC,gBAAY,IAAI;AAChB,oBAAgB,KAAK;AAAA,EACvB;AACA,QAAM,aAAa,MAAM;AACvB,gBAAY,KAAK;AACjB,oBAAgB,IAAI;AAAA,EACtB;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,IAAA,wBAAe;AAAA,EACb;AAAA,EACA;AACF;"}
1
+ {"version":3,"file":"index.esm.js","sources":["../../../src/hooks/useLanguageFallback.ts"],"sourcesContent":["import { useState } from 'react';\nimport { DEFAULT_LANG } from '../constants/all-language';\n\ninterface ILanguage {\n label: string;\n code: string;\n direction: string;\n}\n\n// Configuration for fallback behavior\ninterface FallbackConfig {\n fallbackOrder?: string[];\n enableConsoleWarnings?: boolean;\n retryOnError?: boolean;\n maxRetries?: number;\n}\n\n// Updated fallback order with English first\nconst DEFAULT_FALLBACK_CONFIG: Required<FallbackConfig> = {\n fallbackOrder: ['en', 'en-US', DEFAULT_LANG], // English first\n enableConsoleWarnings: true,\n retryOnError: false,\n maxRetries: 3,\n};\n\nexport const useLanguageFallback = (config: FallbackConfig = {}) => {\n const finalConfig = { ...DEFAULT_FALLBACK_CONFIG, ...config };\n const [retryCount, setRetryCount] = useState(0);\n\n // Create English fallback language object\n const createEnglishFallback = (): ILanguage => ({\n code: 'en',\n label: 'English',\n direction: 'ltr'\n });\n\n // Find the best available language with fallback logic\n const findBestAvailableLanguage = (\n languages: ILanguage[], \n preferredCode?: string\n ): ILanguage | null => {\n if (!languages || languages.length === 0) {\n if (finalConfig.enableConsoleWarnings) {\n console.warn('No languages available for fallback selection, using English');\n }\n return createEnglishFallback();\n }\n\n // First try the preferred language if provided\n if (preferredCode) {\n const preferred = languages.find(lang => lang.code === preferredCode);\n if (preferred) return preferred;\n \n if (finalConfig.enableConsoleWarnings) {\n console.warn(`Preferred language \"${preferredCode}\" not found, trying fallbacks`);\n }\n }\n\n // Try fallback languages in order (English first)\n for (const fallbackCode of finalConfig.fallbackOrder) {\n const fallback = languages.find(lang => lang.code === fallbackCode);\n if (fallback) {\n if (finalConfig.enableConsoleWarnings && preferredCode && preferredCode !== fallbackCode) {\n console.warn(`Using fallback language: \"${fallbackCode}\" instead of \"${preferredCode}\"`);\n }\n return fallback;\n }\n }\n\n // If no fallbacks found, return English or first available language\n const englishLang = languages.find(lang => lang.code === 'en');\n if (englishLang) {\n if (finalConfig.enableConsoleWarnings) {\n console.warn('Using English as ultimate fallback');\n }\n return englishLang;\n }\n\n // Last resort - return first available language\n if (finalConfig.enableConsoleWarnings) {\n console.warn('No English fallback found, using first available language');\n }\n return languages[0] || createEnglishFallback();\n };\n\n // Create a fallback language object when API fails - always English\n const createEmergencyFallback = (): ILanguage => {\n return createEnglishFallback();\n };\n\n // Validate if a language code exists in the available languages\n const validateLanguageCode = (languages: ILanguage[], code: string): boolean => {\n return languages.some(lang => lang.code === code);\n };\n\n // Get saved language from localStorage with validation\n const getSavedLanguage = (languages: ILanguage[]): string | null => {\n const saved = localStorage.getItem('_language');\n if (!saved) return null;\n \n // Validate saved language exists in available languages\n if (validateLanguageCode(languages, saved)) {\n return saved;\n }\n \n if (finalConfig.enableConsoleWarnings) {\n console.warn(`Saved language \"${saved}\" is no longer available, will use English fallback`);\n }\n return null;\n };\n\n // Ensure English is always available in languages array\n const ensureEnglishAvailable = (languages: ILanguage[]): ILanguage[] => {\n const hasEnglish = languages.some(lang => lang.code === 'en');\n if (!hasEnglish) {\n return [createEnglishFallback(), ...languages];\n }\n return languages;\n };\n\n // Retry mechanism for failed language fetches\n const shouldRetry = (): boolean => {\n return finalConfig.retryOnError && retryCount < finalConfig.maxRetries;\n };\n\n const incrementRetry = () => {\n setRetryCount(prev => prev + 1);\n };\n\n const resetRetry = () => {\n setRetryCount(0);\n };\n\n return {\n findBestAvailableLanguage,\n createEmergencyFallback,\n createEnglishFallback,\n validateLanguageCode,\n getSavedLanguage,\n ensureEnglishAvailable,\n shouldRetry,\n incrementRetry,\n resetRetry,\n retryCount,\n config: finalConfig,\n };\n};\n\n// Additional utility hook for language state management\nexport const useLanguageState = () => {\n const [isInitialized, setIsInitialized] = useState(false);\n const [hasError, setHasError] = useState(false);\n const [errorMessage, setErrorMessage] = useState<string | null>(null);\n\n const markInitialized = () => setIsInitialized(true);\n const setError = (error: string) => {\n setHasError(true);\n setErrorMessage(error);\n };\n const clearError = () => {\n setHasError(false);\n setErrorMessage(null);\n };\n\n return {\n isInitialized,\n hasError,\n errorMessage,\n markInitialized,\n setError,\n clearError,\n };\n};\n\nexport default {\n useLanguageFallback,\n useLanguageState,\n};\n\nexport type { ILanguage, FallbackConfig };\n\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/hooks/useLanguageFallback.ts"],"sourcesContent":["import { useState } from 'react';\nimport { DEFAULT_LANG } from '../constants/all-language';\n\ninterface ILanguage {\n label: string;\n code: string;\n direction: string;\n}\n\n// Configuration for fallback behavior\ninterface FallbackConfig {\n fallbackOrder?: string[];\n enableConsoleWarnings?: boolean;\n retryOnError?: boolean;\n maxRetries?: number;\n}\n\n// Updated fallback order with English first\nconst DEFAULT_FALLBACK_CONFIG: Required<FallbackConfig> = {\n fallbackOrder: ['en', 'en-US', DEFAULT_LANG], // English first\n enableConsoleWarnings: true,\n retryOnError: false,\n maxRetries: 3,\n};\n\nexport const useLanguageFallback = (config: FallbackConfig = {}) => {\n const finalConfig = { ...DEFAULT_FALLBACK_CONFIG, ...config };\n const [retryCount, setRetryCount] = useState(0);\n\n // Create English fallback language object\n const createEnglishFallback = (): ILanguage => ({\n code: 'en',\n label: 'English',\n direction: 'ltr'\n });\n\n // Find the best available language with fallback logic\n const findBestAvailableLanguage = (\n languages: ILanguage[], \n preferredCode?: string\n ): ILanguage | null => {\n if (!languages || languages.length === 0) {\n if (finalConfig.enableConsoleWarnings) {\n console.warn('No languages available for fallback selection, using English');\n }\n return createEnglishFallback();\n }\n\n // First try the preferred language if provided\n if (preferredCode) {\n const preferred = languages.find(lang => lang.code === preferredCode);\n if (preferred) return preferred;\n \n if (finalConfig.enableConsoleWarnings) {\n console.warn(`Preferred language \"${preferredCode}\" not found, trying fallbacks`);\n }\n }\n\n // Try fallback languages in order (English first)\n for (const fallbackCode of finalConfig.fallbackOrder) {\n const fallback = languages.find(lang => lang.code === fallbackCode);\n if (fallback) {\n if (finalConfig.enableConsoleWarnings && preferredCode && preferredCode !== fallbackCode) {\n console.warn(`Using fallback language: \"${fallbackCode}\" instead of \"${preferredCode}\"`);\n }\n return fallback;\n }\n }\n\n // If no fallbacks found, return English or first available language\n const englishLang = languages.find(lang => lang.code === 'en');\n if (englishLang) {\n if (finalConfig.enableConsoleWarnings) {\n console.warn('Using English as ultimate fallback');\n }\n return englishLang;\n }\n\n // Last resort - return first available language\n if (finalConfig.enableConsoleWarnings) {\n console.warn('No English fallback found, using first available language');\n }\n return languages[0] || createEnglishFallback();\n };\n\n // Create a fallback language object when API fails - always English\n const createEmergencyFallback = (): ILanguage => {\n return createEnglishFallback();\n };\n\n // Validate if a language code exists in the available languages\n const validateLanguageCode = (languages: ILanguage[], code: string): boolean => {\n return languages.some(lang => lang.code === code);\n };\n\n // Get saved language from localStorage with validation\n const getSavedLanguage = (languages: ILanguage[]): string | null => {\n const saved = localStorage.getItem('_language');\n if (!saved) return null;\n \n // Validate saved language exists in available languages\n if (validateLanguageCode(languages, saved)) {\n return saved;\n }\n \n if (finalConfig.enableConsoleWarnings) {\n console.warn(`Saved language \"${saved}\" is no longer available, will use English fallback`);\n }\n return null;\n };\n\n // Ensure English is always available in languages array\n const ensureEnglishAvailable = (languages: ILanguage[]): ILanguage[] => {\n const hasEnglish = languages.some(lang => lang.code === 'en');\n if (!hasEnglish) {\n return [createEnglishFallback(), ...languages];\n }\n return languages;\n };\n\n // Retry mechanism for failed language fetches\n const shouldRetry = (): boolean => {\n return finalConfig.retryOnError && retryCount < finalConfig.maxRetries;\n };\n\n const incrementRetry = () => {\n setRetryCount(prev => prev + 1);\n };\n\n const resetRetry = () => {\n setRetryCount(0);\n };\n\n return {\n findBestAvailableLanguage,\n createEmergencyFallback,\n createEnglishFallback,\n validateLanguageCode,\n getSavedLanguage,\n ensureEnglishAvailable,\n shouldRetry,\n incrementRetry,\n resetRetry,\n retryCount,\n config: finalConfig,\n };\n};\n\n// Additional utility hook for language state management\nexport const useLanguageState = () => {\n const [isInitialized, setIsInitialized] = useState(false);\n const [hasError, setHasError] = useState(false);\n const [errorMessage, setErrorMessage] = useState<string | null>(null);\n\n const markInitialized = () => setIsInitialized(true);\n const setError = (error: string) => {\n setHasError(true);\n setErrorMessage(error);\n };\n const clearError = () => {\n setHasError(false);\n setErrorMessage(null);\n };\n\n return {\n isInitialized,\n hasError,\n errorMessage,\n markInitialized,\n setError,\n clearError,\n };\n};\n\nexport default {\n useLanguageFallback,\n useLanguageState,\n};\n\nexport type { ILanguage, FallbackConfig };\n\n"],"names":["DEFAULT_FALLBACK_CONFIG","fallbackOrder","enableConsoleWarnings","retryOnError","maxRetries","useLanguageFallback","config","finalConfig","retryCount","setRetryCount","useState","validateLanguageCode","languages","code","some","lang","findBestAvailableLanguage","preferredCode","length","label","direction","preferred","find","fallbackCode","fallback","englishLang","createEmergencyFallback","createEnglishFallback","getSavedLanguage","saved","localStorage","getItem","ensureEnglishAvailable","shouldRetry","incrementRetry","prev","resetRetry","useLanguageState","isInitialized","setIsInitialized","hasError","setHasError","errorMessage","setErrorMessage","markInitialized","setError","error","clearError","useLanguageFallback$1"],"mappings":"2FAkBA,MAAMA,EAAoD,CACxDC,cAAe,CAAC,KAAM,uEACtBC,uBAAuB,EACvBC,cAAc,EACdC,WAAY,GAGDC,EAAsB,CAACC,EAAyB,MAC3D,MAAMC,EAAc,IAAKP,KAA4BM,IAC9CE,EAAYC,GAAiBC,EAAAA,SAAS,GAgEvCC,EAAuB,CAACC,EAAwBC,IAC7CD,EAAUE,KAAKC,GAAQA,EAAKF,OAASA,GAyC9C,MAAO,CACLG,0BAjGgC,CAChCJ,EACAK,KAEA,IAAKL,GAAkC,IAArBA,EAAUM,OAI1B,OAHIX,EAAYL,sBAZU,CAC5BW,KAAM,KACNM,MAAO,UACPC,UAAW,OAgBX,GAAIH,EAAe,CACjB,MAAMI,EAAYT,EAAUU,KAAKP,GAAQA,EAAKF,OAASI,GACvD,GAAII,EAAW,OAAOA,EAElBd,EAAYL,qBAGlB,CAGA,IAAA,MAAWqB,KAAgBhB,EAAYN,cAAe,CACpD,MAAMuB,EAAWZ,EAAUU,KAAKP,GAAQA,EAAKF,OAASU,GACtD,GAAIC,EAIF,OAHIjB,EAAYL,sBAGTsB,CAEX,CAGA,MAAMC,EAAcb,EAAUU,KAAKP,GAAsB,OAAdA,EAAKF,MAChD,OAAIY,GACElB,EAAYL,sBAGTuB,IAILlB,EAAYL,sBAGTU,EAAU,IApDW,CAC5BC,KAAM,KACNM,MAAO,UACPC,UAAW,SAsGXM,wBAjD8B,KAxDF,CAC5Bb,KAAM,KACNM,MAAO,UACPC,UAAW,QAuGXO,sBA1G4B,KAAA,CAC5Bd,KAAM,KACNM,MAAO,UACPC,UAAW,QAwGXT,uBACAiB,iBA1CwBhB,IACxB,MAAMiB,EAAQC,aAAaC,QAAQ,aACnC,OAAKF,EAGDlB,EAAqBC,EAAWiB,GAC3BA,GAGLtB,EAAYL,sBAGT,MAVY,MAyCnB8B,uBA3B8BpB,GACXA,EAAUE,KAAKC,GAAsB,OAAdA,EAAKF,MAIxCD,EAFE,CArFmB,CAC5BC,KAAM,KACNM,MAAO,UACPC,UAAW,UAkF2BR,GAyBtCqB,YAnBkB,IACX1B,EAAYJ,cAAgBK,EAAaD,EAAYH,WAmB5D8B,eAhBqB,KACrBzB,EAAc0B,GAAQA,EAAO,IAgB7BC,WAbiB,KACjB3B,EAAc,IAadD,aACAF,OAAQC,IAKC8B,EAAmB,KAC9B,MAAOC,EAAeC,GAAoB7B,EAAAA,UAAS,IAC5C8B,EAAUC,GAAe/B,EAAAA,UAAS,IAClCgC,EAAcC,GAAmBjC,EAAAA,SAAwB,MAYhE,MAAO,CACL4B,gBACAE,WACAE,eACAE,gBAdsB,IAAML,GAAiB,GAe7CM,SAdgBC,IAChBL,GAAY,GACZE,EAAgBG,IAahBC,WAXiB,KACjBN,GAAY,GACZE,EAAgB,SAapB,IAAAK,EAAe,CACb3C,sBACAgC"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/hooks/useLanguageFallback.ts"],"sourcesContent":["import { useState } from 'react';\nimport { DEFAULT_LANG } from '../constants/all-language';\n\ninterface ILanguage {\n label: string;\n code: string;\n direction: string;\n}\n\n// Configuration for fallback behavior\ninterface FallbackConfig {\n fallbackOrder?: string[];\n enableConsoleWarnings?: boolean;\n retryOnError?: boolean;\n maxRetries?: number;\n}\n\n// Updated fallback order with English first\nconst DEFAULT_FALLBACK_CONFIG: Required<FallbackConfig> = {\n fallbackOrder: ['en', 'en-US', DEFAULT_LANG], // English first\n enableConsoleWarnings: true,\n retryOnError: false,\n maxRetries: 3,\n};\n\nexport const useLanguageFallback = (config: FallbackConfig = {}) => {\n const finalConfig = { ...DEFAULT_FALLBACK_CONFIG, ...config };\n const [retryCount, setRetryCount] = useState(0);\n\n // Create English fallback language object\n const createEnglishFallback = (): ILanguage => ({\n code: 'en',\n label: 'English',\n direction: 'ltr'\n });\n\n // Find the best available language with fallback logic\n const findBestAvailableLanguage = (\n languages: ILanguage[], \n preferredCode?: string\n ): ILanguage | null => {\n if (!languages || languages.length === 0) {\n if (finalConfig.enableConsoleWarnings) {\n console.warn('No languages available for fallback selection, using English');\n }\n return createEnglishFallback();\n }\n\n // First try the preferred language if provided\n if (preferredCode) {\n const preferred = languages.find(lang => lang.code === preferredCode);\n if (preferred) return preferred;\n \n if (finalConfig.enableConsoleWarnings) {\n console.warn(`Preferred language \"${preferredCode}\" not found, trying fallbacks`);\n }\n }\n\n // Try fallback languages in order (English first)\n for (const fallbackCode of finalConfig.fallbackOrder) {\n const fallback = languages.find(lang => lang.code === fallbackCode);\n if (fallback) {\n if (finalConfig.enableConsoleWarnings && preferredCode && preferredCode !== fallbackCode) {\n console.warn(`Using fallback language: \"${fallbackCode}\" instead of \"${preferredCode}\"`);\n }\n return fallback;\n }\n }\n\n // If no fallbacks found, return English or first available language\n const englishLang = languages.find(lang => lang.code === 'en');\n if (englishLang) {\n if (finalConfig.enableConsoleWarnings) {\n console.warn('Using English as ultimate fallback');\n }\n return englishLang;\n }\n\n // Last resort - return first available language\n if (finalConfig.enableConsoleWarnings) {\n console.warn('No English fallback found, using first available language');\n }\n return languages[0] || createEnglishFallback();\n };\n\n // Create a fallback language object when API fails - always English\n const createEmergencyFallback = (): ILanguage => {\n return createEnglishFallback();\n };\n\n // Validate if a language code exists in the available languages\n const validateLanguageCode = (languages: ILanguage[], code: string): boolean => {\n return languages.some(lang => lang.code === code);\n };\n\n // Get saved language from localStorage with validation\n const getSavedLanguage = (languages: ILanguage[]): string | null => {\n const saved = localStorage.getItem('_language');\n if (!saved) return null;\n \n // Validate saved language exists in available languages\n if (validateLanguageCode(languages, saved)) {\n return saved;\n }\n \n if (finalConfig.enableConsoleWarnings) {\n console.warn(`Saved language \"${saved}\" is no longer available, will use English fallback`);\n }\n return null;\n };\n\n // Ensure English is always available in languages array\n const ensureEnglishAvailable = (languages: ILanguage[]): ILanguage[] => {\n const hasEnglish = languages.some(lang => lang.code === 'en');\n if (!hasEnglish) {\n return [createEnglishFallback(), ...languages];\n }\n return languages;\n };\n\n // Retry mechanism for failed language fetches\n const shouldRetry = (): boolean => {\n return finalConfig.retryOnError && retryCount < finalConfig.maxRetries;\n };\n\n const incrementRetry = () => {\n setRetryCount(prev => prev + 1);\n };\n\n const resetRetry = () => {\n setRetryCount(0);\n };\n\n return {\n findBestAvailableLanguage,\n createEmergencyFallback,\n createEnglishFallback,\n validateLanguageCode,\n getSavedLanguage,\n ensureEnglishAvailable,\n shouldRetry,\n incrementRetry,\n resetRetry,\n retryCount,\n config: finalConfig,\n };\n};\n\n// Additional utility hook for language state management\nexport const useLanguageState = () => {\n const [isInitialized, setIsInitialized] = useState(false);\n const [hasError, setHasError] = useState(false);\n const [errorMessage, setErrorMessage] = useState<string | null>(null);\n\n const markInitialized = () => setIsInitialized(true);\n const setError = (error: string) => {\n setHasError(true);\n setErrorMessage(error);\n };\n const clearError = () => {\n setHasError(false);\n setErrorMessage(null);\n };\n\n return {\n isInitialized,\n hasError,\n errorMessage,\n markInitialized,\n setError,\n clearError,\n };\n};\n\nexport default {\n useLanguageFallback,\n useLanguageState,\n};\n\nexport type { ILanguage, FallbackConfig };\n\n"],"names":["DEFAULT_FALLBACK_CONFIG","fallbackOrder","enableConsoleWarnings","retryOnError","maxRetries","useLanguageFallback","config","finalConfig","retryCount","setRetryCount","useState","validateLanguageCode","languages","code","some","lang","findBestAvailableLanguage","preferredCode","length","label","direction","preferred","find","fallbackCode","fallback","englishLang","createEmergencyFallback","createEnglishFallback","getSavedLanguage","saved","localStorage","getItem","ensureEnglishAvailable","shouldRetry","incrementRetry","prev","resetRetry","useLanguageState","isInitialized","setIsInitialized","hasError","setHasError","errorMessage","setErrorMessage","markInitialized","setError","error","clearError","useLanguageFallback_default"],"mappings":"2FAkBA,MAAMA,EAAoD,CACxDC,cAAe,CAAC,KAAM,uEACtBC,uBAAuB,EACvBC,cAAc,EACdC,WAAY,GAGDC,EAAsB,CAACC,EAAyB,MAC3D,MAAMC,EAAc,IAAKP,KAA4BM,IAC9CE,EAAYC,GAAiBC,EAAAA,SAAS,GAgEvCC,EAAuB,CAACC,EAAwBC,IAC7CD,EAAUE,KAAKC,GAAQA,EAAKF,OAASA,GAyC9C,MAAO,CACLG,0BAjGgC,CAChCJ,EACAK,KAEA,IAAKL,GAAkC,IAArBA,EAAUM,OAI1B,OAHIX,EAAYL,sBAZU,CAC5BW,KAAM,KACNM,MAAO,UACPC,UAAW,OAgBX,GAAIH,EAAe,CACjB,MAAMI,EAAYT,EAAUU,KAAKP,GAAQA,EAAKF,OAASI,GACvD,GAAII,EAAW,OAAOA,EAElBd,EAAYL,qBAGlB,CAGA,IAAA,MAAWqB,KAAgBhB,EAAYN,cAAe,CACpD,MAAMuB,EAAWZ,EAAUU,KAAKP,GAAQA,EAAKF,OAASU,GACtD,GAAIC,EAIF,OAHIjB,EAAYL,sBAGTsB,CAEX,CAGA,MAAMC,EAAcb,EAAUU,KAAKP,GAAsB,OAAdA,EAAKF,MAChD,OAAIY,GACElB,EAAYL,sBAGTuB,IAILlB,EAAYL,sBAGTU,EAAU,IApDW,CAC5BC,KAAM,KACNM,MAAO,UACPC,UAAW,SAsGXM,wBAjD8B,KAxDF,CAC5Bb,KAAM,KACNM,MAAO,UACPC,UAAW,QAuGXO,sBA1G4B,KAAA,CAC5Bd,KAAM,KACNM,MAAO,UACPC,UAAW,QAwGXT,uBACAiB,iBA1CwBhB,IACxB,MAAMiB,EAAQC,aAAaC,QAAQ,aACnC,OAAKF,EAGDlB,EAAqBC,EAAWiB,GAC3BA,GAGLtB,EAAYL,sBAGT,MAVY,MAyCnB8B,uBA3B8BpB,GACXA,EAAUE,KAAKC,GAAsB,OAAdA,EAAKF,MAIxCD,EAFE,CArFmB,CAC5BC,KAAM,KACNM,MAAO,UACPC,UAAW,UAkF2BR,GAyBtCqB,YAnBkB,IACX1B,EAAYJ,cAAgBK,EAAaD,EAAYH,WAmB5D8B,eAhBqB,KACrBzB,EAAc0B,GAAQA,EAAO,IAgB7BC,WAbiB,KACjB3B,EAAc,IAadD,aACAF,OAAQC,IAKC8B,EAAmB,KAC9B,MAAOC,EAAeC,GAAoB7B,EAAAA,UAAS,IAC5C8B,EAAUC,GAAe/B,EAAAA,UAAS,IAClCgC,EAAcC,GAAmBjC,EAAAA,SAAwB,MAYhE,MAAO,CACL4B,gBACAE,WACAE,eACAE,gBAdsB,IAAML,GAAiB,GAe7CM,SAdgBC,IAChBL,GAAY,GACZE,EAAgBG,IAahBC,WAXiB,KACjBN,GAAY,GACZE,EAAgB,SAapB,IAAAK,EAAe,CACb3C,sBACAgC"}
@@ -38,12 +38,12 @@ const useMultipleLocationFilters = ({
38
38
  };
39
39
  }, [selectedCompany, setValue, fieldConfigs, resetValue, filterKey]);
40
40
  };
41
- var useLocationFilter$1 = {
41
+ var useLocationFilter_default = {
42
42
  useLocationFilter,
43
43
  useMultipleLocationFilters
44
44
  };
45
45
  export {
46
- useLocationFilter$1 as default,
46
+ useLocationFilter_default as default,
47
47
  useLocationFilter,
48
48
  useMultipleLocationFilters
49
49
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../../../src/hooks/useLocationFilter.tsx"],"sourcesContent":["import { useMemo } from 'react';\n\n\nexport const useLocationFilter = ({\n selectedCompany,\n setValue,\n fieldArrayName,\n locationFieldName,\n resetValue = null,\n filterKey = '&company_id.in',\n isDirty = false\n}) => {\n const locationFilter = useMemo(() => {\n const companyId = Array.isArray(selectedCompany) ? (selectedCompany?.length ? selectedCompany: 0) : (selectedCompany || 0);\n \n // Reset location value when company changes\n if (setValue && fieldArrayName && locationFieldName && isDirty) {\n setValue(`${fieldArrayName}.${locationFieldName}`, resetValue);\n }\n \n return {\n [filterKey]: companyId\n };\n }, [selectedCompany, setValue, fieldArrayName, locationFieldName, resetValue, filterKey,isDirty]);\n\n return locationFilter;\n};\n\n\nexport const useMultipleLocationFilters = ({\n selectedCompany,\n setValue,\n fieldConfigs,\n resetValue = undefined,\n filterKey = '&company_id.in'\n}) => {\n return useMemo(() => {\n const companyId = selectedCompany?.length > 0 ? selectedCompany : 0;\n \n // Reset all location fields\n fieldConfigs.forEach(({ fieldArrayName, locationFieldName }) => {\n if (setValue && fieldArrayName && locationFieldName) {\n setValue(`${fieldArrayName}.${locationFieldName}`, resetValue);\n }\n });\n \n return {\n [filterKey]: companyId\n };\n }, [selectedCompany, setValue, fieldConfigs, resetValue, filterKey]);\n};\n\nexport default {\n useLocationFilter,\n useMultipleLocationFilters\n}"],"names":[],"mappings":";AAGO,MAAM,oBAAoB,CAAC;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,UAAU;AACd,MAAM;AACF,QAAM,iBAAiB,QAAQ,MAAM;AACjC,UAAM,YAAY,MAAM,QAAQ,eAAe,KAAK,mDAAiB,UAAS,kBAAiB,IAAM,mBAAmB;AAGxH,QAAI,YAAY,kBAAkB,qBAAqB,SAAS;AAC5D,eAAS,GAAG,cAAc,IAAI,iBAAiB,IAAI,UAAU;AAAA,IACjE;AAEA,WAAO;AAAA,MACH,CAAC,SAAS,GAAG;AAAA,IAAA;AAAA,EAErB,GAAG,CAAC,iBAAiB,UAAU,gBAAgB,mBAAmB,YAAY,WAAU,OAAO,CAAC;AAEhG,SAAO;AACX;AAGO,MAAM,6BAA6B,CAAC;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb,YAAY;AAChB,MAAM;AACF,SAAO,QAAQ,MAAM;AACjB,UAAM,aAAY,mDAAiB,UAAS,IAAI,kBAAkB;AAGlE,iBAAa,QAAQ,CAAC,EAAE,gBAAgB,wBAAwB;AAC5D,UAAI,YAAY,kBAAkB,mBAAmB;AACjD,iBAAS,GAAG,cAAc,IAAI,iBAAiB,IAAI,UAAU;AAAA,MACjE;AAAA,IACJ,CAAC;AAED,WAAO;AAAA,MACH,CAAC,SAAS,GAAG;AAAA,IAAA;AAAA,EAErB,GAAG,CAAC,iBAAiB,UAAU,cAAc,YAAY,SAAS,CAAC;AACvE;AAEA,IAAA,sBAAe;AAAA,EACX;AAAA,EACA;AACJ;"}
1
+ {"version":3,"file":"index.esm.js","sources":["../../../src/hooks/useLocationFilter.tsx"],"sourcesContent":["import { useMemo } from 'react';\n\n\nexport const useLocationFilter = ({\n selectedCompany,\n setValue,\n fieldArrayName,\n locationFieldName,\n resetValue = null,\n filterKey = '&company_id.in',\n isDirty = false\n}) => {\n const locationFilter = useMemo(() => {\n const companyId = Array.isArray(selectedCompany) ? (selectedCompany?.length ? selectedCompany: 0) : (selectedCompany || 0);\n \n // Reset location value when company changes\n if (setValue && fieldArrayName && locationFieldName && isDirty) {\n setValue(`${fieldArrayName}.${locationFieldName}`, resetValue);\n }\n \n return {\n [filterKey]: companyId\n };\n }, [selectedCompany, setValue, fieldArrayName, locationFieldName, resetValue, filterKey,isDirty]);\n\n return locationFilter;\n};\n\n\nexport const useMultipleLocationFilters = ({\n selectedCompany,\n setValue,\n fieldConfigs,\n resetValue = undefined,\n filterKey = '&company_id.in'\n}) => {\n return useMemo(() => {\n const companyId = selectedCompany?.length > 0 ? selectedCompany : 0;\n \n // Reset all location fields\n fieldConfigs.forEach(({ fieldArrayName, locationFieldName }) => {\n if (setValue && fieldArrayName && locationFieldName) {\n setValue(`${fieldArrayName}.${locationFieldName}`, resetValue);\n }\n });\n \n return {\n [filterKey]: companyId\n };\n }, [selectedCompany, setValue, fieldConfigs, resetValue, filterKey]);\n};\n\nexport default {\n useLocationFilter,\n useMultipleLocationFilters\n}"],"names":[],"mappings":";AAGO,MAAM,oBAAoB,CAAC;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,UAAU;AACd,MAAM;AACF,QAAM,iBAAiB,QAAQ,MAAM;AACjC,UAAM,YAAY,MAAM,QAAQ,eAAe,KAAK,mDAAiB,UAAS,kBAAiB,IAAM,mBAAmB;AAGxH,QAAI,YAAY,kBAAkB,qBAAqB,SAAS;AAC5D,eAAS,GAAG,cAAc,IAAI,iBAAiB,IAAI,UAAU;AAAA,IACjE;AAEA,WAAO;AAAA,MACH,CAAC,SAAS,GAAG;AAAA,IAAA;AAAA,EAErB,GAAG,CAAC,iBAAiB,UAAU,gBAAgB,mBAAmB,YAAY,WAAU,OAAO,CAAC;AAEhG,SAAO;AACX;AAGO,MAAM,6BAA6B,CAAC;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb,YAAY;AAChB,MAAM;AACF,SAAO,QAAQ,MAAM;AACjB,UAAM,aAAY,mDAAiB,UAAS,IAAI,kBAAkB;AAGlE,iBAAa,QAAQ,CAAC,EAAE,gBAAgB,wBAAwB;AAC5D,UAAI,YAAY,kBAAkB,mBAAmB;AACjD,iBAAS,GAAG,cAAc,IAAI,iBAAiB,IAAI,UAAU;AAAA,MACjE;AAAA,IACJ,CAAC;AAED,WAAO;AAAA,MACH,CAAC,SAAS,GAAG;AAAA,IAAA;AAAA,EAErB,GAAG,CAAC,iBAAiB,UAAU,cAAc,YAAY,SAAS,CAAC;AACvE;AAEA,IAAA,4BAAe;AAAA,EACX;AAAA,EACA;AACJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/hooks/useLocationFilter.tsx"],"sourcesContent":["import { useMemo } from 'react';\n\n\nexport const useLocationFilter = ({\n selectedCompany,\n setValue,\n fieldArrayName,\n locationFieldName,\n resetValue = null,\n filterKey = '&company_id.in',\n isDirty = false\n}) => {\n const locationFilter = useMemo(() => {\n const companyId = Array.isArray(selectedCompany) ? (selectedCompany?.length ? selectedCompany: 0) : (selectedCompany || 0);\n \n // Reset location value when company changes\n if (setValue && fieldArrayName && locationFieldName && isDirty) {\n setValue(`${fieldArrayName}.${locationFieldName}`, resetValue);\n }\n \n return {\n [filterKey]: companyId\n };\n }, [selectedCompany, setValue, fieldArrayName, locationFieldName, resetValue, filterKey,isDirty]);\n\n return locationFilter;\n};\n\n\nexport const useMultipleLocationFilters = ({\n selectedCompany,\n setValue,\n fieldConfigs,\n resetValue = undefined,\n filterKey = '&company_id.in'\n}) => {\n return useMemo(() => {\n const companyId = selectedCompany?.length > 0 ? selectedCompany : 0;\n \n // Reset all location fields\n fieldConfigs.forEach(({ fieldArrayName, locationFieldName }) => {\n if (setValue && fieldArrayName && locationFieldName) {\n setValue(`${fieldArrayName}.${locationFieldName}`, resetValue);\n }\n });\n \n return {\n [filterKey]: companyId\n };\n }, [selectedCompany, setValue, fieldConfigs, resetValue, filterKey]);\n};\n\nexport default {\n useLocationFilter,\n useMultipleLocationFilters\n}"],"names":["useLocationFilter","selectedCompany","setValue","fieldArrayName","locationFieldName","resetValue","filterKey","isDirty","useMemo","companyId","Array","isArray","length","useMultipleLocationFilters","fieldConfigs","forEach","useLocationFilter$1"],"mappings":"2FAGO,MAAMA,EAAoB,EAC7BC,kBACAC,WACAC,iBACAC,oBACAC,aAAa,KACbC,YAAY,iBACZC,WAAU,KAEaC,EAAAA,QAAQ,KAC3B,MAAMC,EAAYC,MAAMC,QAAQV,IAAoB,MAAAA,OAAA,EAAAA,EAAiBW,QAASX,EAAiB,EAAMA,GAAmB,EAOxH,OAJIC,GAAYC,GAAkBC,GAAqBG,GACnDL,EAAS,GAAGC,KAAkBC,IAAqBC,GAGhD,CACHC,CAACA,GAAYG,IAElB,CAACR,EAAiBC,EAAUC,EAAgBC,EAAmBC,EAAYC,EAAUC,IAM/EM,EAA6B,EACtCZ,kBACAC,WACAY,eACAT,aACAC,YAAY,oBAELE,EAAAA,QAAQ,KACX,MAAMC,GAAY,MAAAR,OAAA,EAAAA,EAAiBW,QAAS,EAAIX,EAAkB,EASlE,OANAa,EAAaC,QAAQ,EAAGZ,iBAAgBC,wBAChCF,GAAYC,GAAkBC,GAC9BF,EAAS,GAAGC,KAAkBC,IAAqBC,KAIpD,CACHC,CAACA,GAAYG,IAElB,CAACR,EAAiBC,EAAUY,EAAcT,EAAYC,IAG7D,IAAAU,EAAe,CACXhB,oBACAa"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/hooks/useLocationFilter.tsx"],"sourcesContent":["import { useMemo } from 'react';\n\n\nexport const useLocationFilter = ({\n selectedCompany,\n setValue,\n fieldArrayName,\n locationFieldName,\n resetValue = null,\n filterKey = '&company_id.in',\n isDirty = false\n}) => {\n const locationFilter = useMemo(() => {\n const companyId = Array.isArray(selectedCompany) ? (selectedCompany?.length ? selectedCompany: 0) : (selectedCompany || 0);\n \n // Reset location value when company changes\n if (setValue && fieldArrayName && locationFieldName && isDirty) {\n setValue(`${fieldArrayName}.${locationFieldName}`, resetValue);\n }\n \n return {\n [filterKey]: companyId\n };\n }, [selectedCompany, setValue, fieldArrayName, locationFieldName, resetValue, filterKey,isDirty]);\n\n return locationFilter;\n};\n\n\nexport const useMultipleLocationFilters = ({\n selectedCompany,\n setValue,\n fieldConfigs,\n resetValue = undefined,\n filterKey = '&company_id.in'\n}) => {\n return useMemo(() => {\n const companyId = selectedCompany?.length > 0 ? selectedCompany : 0;\n \n // Reset all location fields\n fieldConfigs.forEach(({ fieldArrayName, locationFieldName }) => {\n if (setValue && fieldArrayName && locationFieldName) {\n setValue(`${fieldArrayName}.${locationFieldName}`, resetValue);\n }\n });\n \n return {\n [filterKey]: companyId\n };\n }, [selectedCompany, setValue, fieldConfigs, resetValue, filterKey]);\n};\n\nexport default {\n useLocationFilter,\n useMultipleLocationFilters\n}"],"names":["useLocationFilter","selectedCompany","setValue","fieldArrayName","locationFieldName","resetValue","filterKey","isDirty","useMemo","companyId","Array","isArray","length","useMultipleLocationFilters","fieldConfigs","forEach","useLocationFilter_default"],"mappings":"2FAGO,MAAMA,EAAoB,EAC7BC,kBACAC,WACAC,iBACAC,oBACAC,aAAa,KACbC,YAAY,iBACZC,WAAU,KAEaC,EAAAA,QAAQ,KAC3B,MAAMC,EAAYC,MAAMC,QAAQV,IAAoB,MAAAA,OAAA,EAAAA,EAAiBW,QAASX,EAAiB,EAAMA,GAAmB,EAOxH,OAJIC,GAAYC,GAAkBC,GAAqBG,GACnDL,EAAS,GAAGC,KAAkBC,IAAqBC,GAGhD,CACHC,CAACA,GAAYG,IAElB,CAACR,EAAiBC,EAAUC,EAAgBC,EAAmBC,EAAYC,EAAUC,IAM/EM,EAA6B,EACtCZ,kBACAC,WACAY,eACAT,aACAC,YAAY,oBAELE,EAAAA,QAAQ,KACX,MAAMC,GAAY,MAAAR,OAAA,EAAAA,EAAiBW,QAAS,EAAIX,EAAkB,EASlE,OANAa,EAAaC,QAAQ,EAAGZ,iBAAgBC,wBAChCF,GAAYC,GAAkBC,GAC9BF,EAAS,GAAGC,KAAkBC,IAAqBC,KAIpD,CACHC,CAACA,GAAYG,IAElB,CAACR,EAAiBC,EAAUY,EAAcT,EAAYC,IAG7D,IAAAU,EAAe,CACXhB,oBACAa"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../../../../src/layout/fullScreen/fullScreen.tsx"],"sourcesContent":["import CssBaseline from \"@mui/material/CssBaseline\";\r\nimport Box from \"@mui/material/Box\";\r\n\r\nimport AppBar from \"../../components/appbar/appbar\";\r\nimport ActivityArea from \"../../components/activityArea/activityArea\";\r\n\r\nimport drawerWidth from \"../../constants/mui.constants\";\r\n\r\nexport default function FullscreenLayout(props: any) {\r\n return (\r\n <Box sx={{ display: \"flex\" }}>\r\n <CssBaseline />\r\n <AppBar width={drawerWidth} />\r\n <ActivityArea>{props.children}</ActivityArea>\r\n </Box>\r\n );\r\n}\r\n"],"names":["AppBar"],"mappings":";;;;;;AAQA,SAAwB,iBAAiB,OAAY;AACnD,8BACG,KAAA,EAAI,IAAI,EAAE,SAAS,UAClB,UAAA;AAAA,IAAA,oBAAC,aAAA,EAAY;AAAA,IACb,oBAACA,eAAA,EAAO,OAAO,YAAA,CAAa;AAAA,IAC5B,oBAAC,cAAA,EAAc,UAAA,MAAM,SAAA,CAAS;AAAA,EAAA,GAChC;AAEJ;"}
1
+ {"version":3,"file":"index.esm.js","sources":["../../../../src/layout/fullScreen/fullScreen.tsx"],"sourcesContent":["import CssBaseline from \"@mui/material/CssBaseline\";\nimport Box from \"@mui/material/Box\";\n\nimport AppBar from \"../../components/appbar/appbar\";\nimport ActivityArea from \"../../components/activityArea/activityArea\";\n\nimport drawerWidth from \"../../constants/mui.constants\";\n\nexport default function FullscreenLayout(props: any) {\n return (\n <Box sx={{ display: \"flex\" }}>\n <CssBaseline />\n <AppBar width={drawerWidth} />\n <ActivityArea>{props.children}</ActivityArea>\n </Box>\n );\n}\n"],"names":["AppBar"],"mappings":";;;;;;AAQA,SAAwB,iBAAiB,OAAY;AACnD,8BACG,KAAA,EAAI,IAAI,EAAE,SAAS,UAClB,UAAA;AAAA,IAAA,oBAAC,aAAA,EAAY;AAAA,IACb,oBAACA,eAAA,EAAO,OAAO,YAAA,CAAa;AAAA,IAC5B,oBAAC,cAAA,EAAc,UAAA,MAAM,SAAA,CAAS;AAAA,EAAA,GAChC;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/layout/fullScreen/fullScreen.tsx"],"sourcesContent":["import CssBaseline from \"@mui/material/CssBaseline\";\r\nimport Box from \"@mui/material/Box\";\r\n\r\nimport AppBar from \"../../components/appbar/appbar\";\r\nimport ActivityArea from \"../../components/activityArea/activityArea\";\r\n\r\nimport drawerWidth from \"../../constants/mui.constants\";\r\n\r\nexport default function FullscreenLayout(props: any) {\r\n return (\r\n <Box sx={{ display: \"flex\" }}>\r\n <CssBaseline />\r\n <AppBar width={drawerWidth} />\r\n <ActivityArea>{props.children}</ActivityArea>\r\n </Box>\r\n );\r\n}\r\n"],"names":["props","Box","sx","display","children","jsx","CssBaseline","AppBar","width","drawerWidth","ActivityArea"],"mappings":"8bAQA,SAAyCA;AACvC,cACGC,EAAAA,QAAA,CAAIC,GAAI,CAAEC,QAAS,QAClBC,SAAA;eAAAC,EAAAA,IAACC,EAAAA,QAAA;eACDD,EAAAA,IAACE,EAAAA,cAAA,CAAOC,MAAOC,EAAAA;eACfJ,EAAAA,IAACK,EAAAA,aAAA,CAAcN,SAAAJ,EAAMI,aAG3B"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/layout/fullScreen/fullScreen.tsx"],"sourcesContent":["import CssBaseline from \"@mui/material/CssBaseline\";\nimport Box from \"@mui/material/Box\";\n\nimport AppBar from \"../../components/appbar/appbar\";\nimport ActivityArea from \"../../components/activityArea/activityArea\";\n\nimport drawerWidth from \"../../constants/mui.constants\";\n\nexport default function FullscreenLayout(props: any) {\n return (\n <Box sx={{ display: \"flex\" }}>\n <CssBaseline />\n <AppBar width={drawerWidth} />\n <ActivityArea>{props.children}</ActivityArea>\n </Box>\n );\n}\n"],"names":["props","Box","sx","display","children","jsx","CssBaseline","AppBar","width","drawerWidth","ActivityArea"],"mappings":"8bAQA,SAAyCA;AACvC,cACGC,EAAAA,QAAA,CAAIC,GAAI,CAAEC,QAAS,QAClBC,SAAA;eAAAC,EAAAA,IAACC,EAAAA,QAAA;eACDD,EAAAA,IAACE,EAAAA,cAAA,CAAOC,MAAOC,EAAAA;eACfJ,EAAAA,IAACK,EAAAA,aAAA,CAAcN,SAAAJ,EAAMI,aAG3B"}
@@ -1,3 +1,3 @@
1
- export { default as FullScreenLayout } from './fullScreen/fullScreen';
2
- export { default as SidebarLayout } from './sidebarScreen/sidebarScreen';
3
-
1
+ export { default as FullScreenLayout } from './fullScreen/fullScreen';
2
+ export { default as SidebarLayout } from './sidebarScreen/sidebarScreen';
3
+
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../../../../src/layout/sidebarScreen/sidebarScreen.tsx"],"sourcesContent":["import { useEffect, useState, useCallback, useMemo } from \"react\";\r\n\r\nimport { useTheme } from \"@mui/material/styles\";\r\nimport Box from \"@mui/material/Box\";\r\n\r\nimport AppBar from \"../../components/appbar/appbar\";\r\nimport SideBar from \"../../components/sidebar/sidebar\";\r\nimport ActivityArea from \"../../components/activityArea/activityArea\";\r\n\r\nimport drawerWidth from \"../../constants/mui.constants\";\r\n// const drawerWidth = 240;\r\nimport { useLanguage } from \"../../hooks/useLangauge\";\r\nimport { getToken } from \"@/utils\";\r\nimport { getV1Settings } from \"../../api-client/api.manufacturing/api\";\r\n\r\n// Local storage key for drawer state\r\nconst DRAWER_STATE_KEY = '_is_drawer_open';\r\n\r\n// Interface for better type safety\r\ninterface SidebarLayoutProps {\r\n menu: any[];\r\n children: React.ReactNode;\r\n dashboardPath?: string;\r\n}\r\n\r\nexport default function SidebarLayout(props: SidebarLayoutProps) {\r\n const theme = useTheme();\r\n const {currentLanguage}=useLanguage();\r\n const isRtl=useMemo(()=>currentLanguage?.direction===\"rtl\",[currentLanguage])\r\n // Enhanced state management\r\n const [forcedOpen, setForcedOpen] = useState(true);\r\n const [hoverOpen, setHoverOpen] = useState(false);\r\n const [isInitialized, setIsInitialized] = useState(false);\r\n \r\n // Memoized computed state for actual drawer open status\r\n const isDrawerOpen = forcedOpen || (!forcedOpen && hoverOpen);\r\n\r\n // Enhanced drawer control functions with better state management\r\n const handleDrawerOpen = useCallback(() => {\r\n setForcedOpen(true);\r\n setHoverOpen(false); // Clear hover state when forcing open\r\n try {\r\n window.localStorage.setItem(DRAWER_STATE_KEY, 'true');\r\n } catch (error) {\r\n console.warn('Failed to save drawer state to localStorage:', error);\r\n }\r\n }, []);\r\n\r\n const handleDrawerClose = useCallback(() => {\r\n setForcedOpen(false);\r\n window.localStorage.setItem('_is_drawer_open', 'false')\r\n }, []);\r\n\r\n const [wipSettingsData, setWipSettingsData] = useState<any>(null)\r\n \r\n const getSettings = useCallback(async () => {\r\n // getToken returns { \"x-token\": string; \"x-timezone\": number }, but API expects string type for \"x-timezone\"\r\n const tokenData = getToken();\r\n const apiParams = {\r\n \"x-token\": tokenData[\"x-token\"],\r\n \"x-timezone\": String(tokenData[\"x-timezone\"]),\r\n };\r\n const response = await getV1Settings(apiParams);\r\n // The \"data\" property may not exist on GetV1SettingsResponses, so check existence safely\r\n const data = (response && (response as any)?.data?.settings?.[0]) || null;\r\n setWipSettingsData(data);\r\n }, []);\r\n useEffect(() => {\r\n getSettings()\r\n }, [getSettings])\r\n\r\n\tconst [manufacturingSubmenu, setManufacturingSubmenu] = useState<any>(props.menu)\r\n\r\n\tuseEffect(() => {\r\n\t\tif(wipSettingsData && Array.isArray(props?.menu)){\r\n\t\t\tconsole.log('wipSettingsData: ', wipSettingsData);\r\n\t\t\tconst _new = props.menu.filter((item) => {\r\n\t\t\t\tif(!wipSettingsData?.enable_production_planning){\r\n\t\t\t\t\treturn item.label !== \"Plans\"\r\n\t\t\t\t}else {\r\n\t\t\t\t\treturn item\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\tsetManufacturingSubmenu(_new)\r\n\t\t}\r\n\t}, [wipSettingsData, props.menu])\r\n\t// const module_type = '';\r\n\r\n const handleMouseEnter = () => {\r\n if(!forcedOpen) {\r\n setOpen(true)\r\n window.localStorage.setItem(DRAWER_STATE_KEY, 'true')\r\n }\r\n };\r\n\r\n const handleMouseLeave = useCallback(() => {\r\n if (!forcedOpen && isInitialized) {\r\n setHoverOpen(false);\r\n window.localStorage.setItem(DRAWER_STATE_KEY, 'false');\r\n }\r\n }, [forcedOpen, isInitialized]);\r\n\r\n // Toggle function for programmatic control\r\n const toggleDrawer = useCallback(() => {\r\n if (forcedOpen) {\r\n handleDrawerClose();\r\n } else {\r\n handleDrawerOpen();\r\n }\r\n }, [forcedOpen, handleDrawerClose, handleDrawerOpen]);\r\n\r\n // Enhanced initialization with error handling\r\n useEffect(() => {\r\n const initializeDrawerState = () => {\r\n try {\r\n if (typeof window !== 'undefined' && window.localStorage) {\r\n const savedState = window.localStorage.getItem(DRAWER_STATE_KEY);\r\n const shouldBeOpen = savedState === 'true';\r\n \r\n setForcedOpen(shouldBeOpen);\r\n setHoverOpen(false); // Ensure hover state is reset\r\n setIsInitialized(true);\r\n } else {\r\n // Fallback for environments without localStorage\r\n setForcedOpen(true);\r\n setIsInitialized(true);\r\n }\r\n } catch (error) {\r\n console.warn('Failed to read drawer state from localStorage:', error);\r\n // Fallback to default state\r\n setForcedOpen(true);\r\n setIsInitialized(true);\r\n }\r\n };\r\n\r\n initializeDrawerState();\r\n }, []);\r\n\r\n // Handle window focus to sync state across tabs\r\n useEffect(() => {\r\n const handleWindowFocus = () => {\r\n try {\r\n if (typeof window !== 'undefined' && window.localStorage) {\r\n const savedState = window.localStorage.getItem(DRAWER_STATE_KEY);\r\n const shouldBeOpen = savedState === 'true';\r\n \r\n if (shouldBeOpen !== forcedOpen) {\r\n setForcedOpen(shouldBeOpen);\r\n setHoverOpen(false);\r\n }\r\n }\r\n } catch (error) {\r\n console.warn('Failed to sync drawer state on window focus:', error);\r\n }\r\n };\r\n\r\n window.addEventListener('focus', handleWindowFocus);\r\n \r\n return () => {\r\n window.removeEventListener('focus', handleWindowFocus);\r\n };\r\n }, [forcedOpen]);\r\n\r\n // Prevent rendering until initialization is complete\r\n if (!isInitialized) {\r\n return (\r\n <Box sx={{ \r\n display: \"flex\", \r\n minHeight: \"100vh\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\"\r\n }}>\r\n {/* Optional loading indicator */}\r\n <Box>Loading...</Box>\r\n </Box>\r\n );\r\n }\r\n\r\n return (\r\n <Box sx={{ display: \"flex\", minHeight: \"100vh\",direction: isRtl ? \"rtl\" : \"ltr\" }}>\r\n <AppBar\r\n open={forcedOpen}\r\n handleDrawerOpen={handleDrawerOpen}\r\n handleDrawerClose={handleDrawerClose}\r\n toggleDrawer={toggleDrawer}\r\n width={drawerWidth}\r\n forcedOpen={forcedOpen}\r\n hoverOpen={hoverOpen}\r\n />\r\n \r\n <SideBar\r\n open={forcedOpen}\r\n forcedOpen={forcedOpen}\r\n hoverOpen={hoverOpen}\r\n handleDrawerClose={handleDrawerClose}\r\n handleDrawerOpen={handleDrawerOpen}\r\n toggleDrawer={toggleDrawer}\r\n width={drawerWidth}\r\n theme={theme}\r\n menu={manufacturingSubmenu}\r\n handleMouseEnter={handleMouseEnter}\r\n handleMouseLeave={handleMouseLeave}\r\n isInitialized={isInitialized}\r\n dashboardPath={props.dashboardPath}\r\n />\r\n \r\n <ActivityArea \r\n isDrawerOpen={isDrawerOpen}\r\n drawerWidth={drawerWidth}\r\n forcedOpen={forcedOpen}\r\n >\r\n {props.children}\r\n </ActivityArea>\r\n </Box>\r\n );\r\n}"],"names":["AppBar","SideBar"],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","sources":["../../../../src/layout/sidebarScreen/sidebarScreen.tsx"],"sourcesContent":["import { useEffect, useState, useCallback, useMemo } from \"react\";\n\nimport { useTheme } from \"@mui/material/styles\";\nimport Box from \"@mui/material/Box\";\n\nimport AppBar from \"../../components/appbar/appbar\";\nimport SideBar from \"../../components/sidebar/sidebar\";\nimport ActivityArea from \"../../components/activityArea/activityArea\";\n\nimport drawerWidth from \"../../constants/mui.constants\";\n// const drawerWidth = 240;\nimport { useLanguage } from \"../../hooks/useLangauge\";\nimport { getToken } from \"@/utils\";\nimport { getV1Settings } from \"../../api-client/api.manufacturing/api\";\n\n// Local storage key for drawer state\nconst DRAWER_STATE_KEY = '_is_drawer_open';\n\n// Interface for better type safety\ninterface SidebarLayoutProps {\n menu: any[];\n children: React.ReactNode;\n dashboardPath?: string;\n}\n\nexport default function SidebarLayout(props: SidebarLayoutProps) {\n const theme = useTheme();\n const {currentLanguage}=useLanguage();\n const isRtl=useMemo(()=>currentLanguage?.direction===\"rtl\",[currentLanguage])\n // Enhanced state management\n const [forcedOpen, setForcedOpen] = useState(true);\n const [hoverOpen, setHoverOpen] = useState(false);\n const [isInitialized, setIsInitialized] = useState(false);\n \n // Memoized computed state for actual drawer open status\n const isDrawerOpen = forcedOpen || (!forcedOpen && hoverOpen);\n\n // Enhanced drawer control functions with better state management\n const handleDrawerOpen = useCallback(() => {\n setForcedOpen(true);\n setHoverOpen(false); // Clear hover state when forcing open\n try {\n window.localStorage.setItem(DRAWER_STATE_KEY, 'true');\n } catch (error) {\n console.warn('Failed to save drawer state to localStorage:', error);\n }\n }, []);\n\n const handleDrawerClose = useCallback(() => {\n setForcedOpen(false);\n window.localStorage.setItem('_is_drawer_open', 'false')\n }, []);\n\n const [wipSettingsData, setWipSettingsData] = useState<any>(null)\n \n const getSettings = useCallback(async () => {\n // getToken returns { \"x-token\": string; \"x-timezone\": number }, but API expects string type for \"x-timezone\"\n const tokenData = getToken();\n const apiParams = {\n \"x-token\": tokenData[\"x-token\"],\n \"x-timezone\": String(tokenData[\"x-timezone\"]),\n };\n const response = await getV1Settings(apiParams);\n // The \"data\" property may not exist on GetV1SettingsResponses, so check existence safely\n const data = (response && (response as any)?.data?.settings?.[0]) || null;\n setWipSettingsData(data);\n }, []);\n useEffect(() => {\n getSettings()\n }, [getSettings])\n\n\tconst [manufacturingSubmenu, setManufacturingSubmenu] = useState<any>(props.menu)\n\n\tuseEffect(() => {\n\t\tif(wipSettingsData && Array.isArray(props?.menu)){\n\t\t\tconsole.log('wipSettingsData: ', wipSettingsData);\n\t\t\tconst _new = props.menu.filter((item) => {\n\t\t\t\tif(!wipSettingsData?.enable_production_planning){\n\t\t\t\t\treturn item.label !== \"Plans\"\n\t\t\t\t}else {\n\t\t\t\t\treturn item\n\t\t\t\t}\n\t\t\t})\n\t\t\tsetManufacturingSubmenu(_new)\n\t\t}\n\t}, [wipSettingsData, props.menu])\n\t// const module_type = '';\n\n const handleMouseEnter = () => {\n if(!forcedOpen) {\n setOpen(true)\n window.localStorage.setItem(DRAWER_STATE_KEY, 'true')\n }\n };\n\n const handleMouseLeave = useCallback(() => {\n if (!forcedOpen && isInitialized) {\n setHoverOpen(false);\n window.localStorage.setItem(DRAWER_STATE_KEY, 'false');\n }\n }, [forcedOpen, isInitialized]);\n\n // Toggle function for programmatic control\n const toggleDrawer = useCallback(() => {\n if (forcedOpen) {\n handleDrawerClose();\n } else {\n handleDrawerOpen();\n }\n }, [forcedOpen, handleDrawerClose, handleDrawerOpen]);\n\n // Enhanced initialization with error handling\n useEffect(() => {\n const initializeDrawerState = () => {\n try {\n if (typeof window !== 'undefined' && window.localStorage) {\n const savedState = window.localStorage.getItem(DRAWER_STATE_KEY);\n const shouldBeOpen = savedState === 'true';\n \n setForcedOpen(shouldBeOpen);\n setHoverOpen(false); // Ensure hover state is reset\n setIsInitialized(true);\n } else {\n // Fallback for environments without localStorage\n setForcedOpen(true);\n setIsInitialized(true);\n }\n } catch (error) {\n console.warn('Failed to read drawer state from localStorage:', error);\n // Fallback to default state\n setForcedOpen(true);\n setIsInitialized(true);\n }\n };\n\n initializeDrawerState();\n }, []);\n\n // Handle window focus to sync state across tabs\n useEffect(() => {\n const handleWindowFocus = () => {\n try {\n if (typeof window !== 'undefined' && window.localStorage) {\n const savedState = window.localStorage.getItem(DRAWER_STATE_KEY);\n const shouldBeOpen = savedState === 'true';\n \n if (shouldBeOpen !== forcedOpen) {\n setForcedOpen(shouldBeOpen);\n setHoverOpen(false);\n }\n }\n } catch (error) {\n console.warn('Failed to sync drawer state on window focus:', error);\n }\n };\n\n window.addEventListener('focus', handleWindowFocus);\n \n return () => {\n window.removeEventListener('focus', handleWindowFocus);\n };\n }, [forcedOpen]);\n\n // Prevent rendering until initialization is complete\n if (!isInitialized) {\n return (\n <Box sx={{ \n display: \"flex\", \n minHeight: \"100vh\",\n alignItems: \"center\",\n justifyContent: \"center\"\n }}>\n {/* Optional loading indicator */}\n <Box>Loading...</Box>\n </Box>\n );\n }\n\n return (\n <Box sx={{ display: \"flex\", minHeight: \"100vh\",direction: isRtl ? \"rtl\" : \"ltr\" }}>\n <AppBar\n open={forcedOpen}\n handleDrawerOpen={handleDrawerOpen}\n handleDrawerClose={handleDrawerClose}\n toggleDrawer={toggleDrawer}\n width={drawerWidth}\n forcedOpen={forcedOpen}\n hoverOpen={hoverOpen}\n />\n \n <SideBar\n open={forcedOpen}\n forcedOpen={forcedOpen}\n hoverOpen={hoverOpen}\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n toggleDrawer={toggleDrawer}\n width={drawerWidth}\n theme={theme}\n menu={manufacturingSubmenu}\n handleMouseEnter={handleMouseEnter}\n handleMouseLeave={handleMouseLeave}\n isInitialized={isInitialized}\n dashboardPath={props.dashboardPath}\n />\n \n <ActivityArea \n isDrawerOpen={isDrawerOpen}\n drawerWidth={drawerWidth}\n forcedOpen={forcedOpen}\n >\n {props.children}\n </ActivityArea>\n </Box>\n );\n}"],"names":["AppBar","SideBar"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/layout/sidebarScreen/sidebarScreen.tsx"],"sourcesContent":["import { useEffect, useState, useCallback, useMemo } from \"react\";\r\n\r\nimport { useTheme } from \"@mui/material/styles\";\r\nimport Box from \"@mui/material/Box\";\r\n\r\nimport AppBar from \"../../components/appbar/appbar\";\r\nimport SideBar from \"../../components/sidebar/sidebar\";\r\nimport ActivityArea from \"../../components/activityArea/activityArea\";\r\n\r\nimport drawerWidth from \"../../constants/mui.constants\";\r\n// const drawerWidth = 240;\r\nimport { useLanguage } from \"../../hooks/useLangauge\";\r\nimport { getToken } from \"@/utils\";\r\nimport { getV1Settings } from \"../../api-client/api.manufacturing/api\";\r\n\r\n// Local storage key for drawer state\r\nconst DRAWER_STATE_KEY = '_is_drawer_open';\r\n\r\n// Interface for better type safety\r\ninterface SidebarLayoutProps {\r\n menu: any[];\r\n children: React.ReactNode;\r\n dashboardPath?: string;\r\n}\r\n\r\nexport default function SidebarLayout(props: SidebarLayoutProps) {\r\n const theme = useTheme();\r\n const {currentLanguage}=useLanguage();\r\n const isRtl=useMemo(()=>currentLanguage?.direction===\"rtl\",[currentLanguage])\r\n // Enhanced state management\r\n const [forcedOpen, setForcedOpen] = useState(true);\r\n const [hoverOpen, setHoverOpen] = useState(false);\r\n const [isInitialized, setIsInitialized] = useState(false);\r\n \r\n // Memoized computed state for actual drawer open status\r\n const isDrawerOpen = forcedOpen || (!forcedOpen && hoverOpen);\r\n\r\n // Enhanced drawer control functions with better state management\r\n const handleDrawerOpen = useCallback(() => {\r\n setForcedOpen(true);\r\n setHoverOpen(false); // Clear hover state when forcing open\r\n try {\r\n window.localStorage.setItem(DRAWER_STATE_KEY, 'true');\r\n } catch (error) {\r\n console.warn('Failed to save drawer state to localStorage:', error);\r\n }\r\n }, []);\r\n\r\n const handleDrawerClose = useCallback(() => {\r\n setForcedOpen(false);\r\n window.localStorage.setItem('_is_drawer_open', 'false')\r\n }, []);\r\n\r\n const [wipSettingsData, setWipSettingsData] = useState<any>(null)\r\n \r\n const getSettings = useCallback(async () => {\r\n // getToken returns { \"x-token\": string; \"x-timezone\": number }, but API expects string type for \"x-timezone\"\r\n const tokenData = getToken();\r\n const apiParams = {\r\n \"x-token\": tokenData[\"x-token\"],\r\n \"x-timezone\": String(tokenData[\"x-timezone\"]),\r\n };\r\n const response = await getV1Settings(apiParams);\r\n // The \"data\" property may not exist on GetV1SettingsResponses, so check existence safely\r\n const data = (response && (response as any)?.data?.settings?.[0]) || null;\r\n setWipSettingsData(data);\r\n }, []);\r\n useEffect(() => {\r\n getSettings()\r\n }, [getSettings])\r\n\r\n\tconst [manufacturingSubmenu, setManufacturingSubmenu] = useState<any>(props.menu)\r\n\r\n\tuseEffect(() => {\r\n\t\tif(wipSettingsData && Array.isArray(props?.menu)){\r\n\t\t\tconsole.log('wipSettingsData: ', wipSettingsData);\r\n\t\t\tconst _new = props.menu.filter((item) => {\r\n\t\t\t\tif(!wipSettingsData?.enable_production_planning){\r\n\t\t\t\t\treturn item.label !== \"Plans\"\r\n\t\t\t\t}else {\r\n\t\t\t\t\treturn item\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\tsetManufacturingSubmenu(_new)\r\n\t\t}\r\n\t}, [wipSettingsData, props.menu])\r\n\t// const module_type = '';\r\n\r\n const handleMouseEnter = () => {\r\n if(!forcedOpen) {\r\n setOpen(true)\r\n window.localStorage.setItem(DRAWER_STATE_KEY, 'true')\r\n }\r\n };\r\n\r\n const handleMouseLeave = useCallback(() => {\r\n if (!forcedOpen && isInitialized) {\r\n setHoverOpen(false);\r\n window.localStorage.setItem(DRAWER_STATE_KEY, 'false');\r\n }\r\n }, [forcedOpen, isInitialized]);\r\n\r\n // Toggle function for programmatic control\r\n const toggleDrawer = useCallback(() => {\r\n if (forcedOpen) {\r\n handleDrawerClose();\r\n } else {\r\n handleDrawerOpen();\r\n }\r\n }, [forcedOpen, handleDrawerClose, handleDrawerOpen]);\r\n\r\n // Enhanced initialization with error handling\r\n useEffect(() => {\r\n const initializeDrawerState = () => {\r\n try {\r\n if (typeof window !== 'undefined' && window.localStorage) {\r\n const savedState = window.localStorage.getItem(DRAWER_STATE_KEY);\r\n const shouldBeOpen = savedState === 'true';\r\n \r\n setForcedOpen(shouldBeOpen);\r\n setHoverOpen(false); // Ensure hover state is reset\r\n setIsInitialized(true);\r\n } else {\r\n // Fallback for environments without localStorage\r\n setForcedOpen(true);\r\n setIsInitialized(true);\r\n }\r\n } catch (error) {\r\n console.warn('Failed to read drawer state from localStorage:', error);\r\n // Fallback to default state\r\n setForcedOpen(true);\r\n setIsInitialized(true);\r\n }\r\n };\r\n\r\n initializeDrawerState();\r\n }, []);\r\n\r\n // Handle window focus to sync state across tabs\r\n useEffect(() => {\r\n const handleWindowFocus = () => {\r\n try {\r\n if (typeof window !== 'undefined' && window.localStorage) {\r\n const savedState = window.localStorage.getItem(DRAWER_STATE_KEY);\r\n const shouldBeOpen = savedState === 'true';\r\n \r\n if (shouldBeOpen !== forcedOpen) {\r\n setForcedOpen(shouldBeOpen);\r\n setHoverOpen(false);\r\n }\r\n }\r\n } catch (error) {\r\n console.warn('Failed to sync drawer state on window focus:', error);\r\n }\r\n };\r\n\r\n window.addEventListener('focus', handleWindowFocus);\r\n \r\n return () => {\r\n window.removeEventListener('focus', handleWindowFocus);\r\n };\r\n }, [forcedOpen]);\r\n\r\n // Prevent rendering until initialization is complete\r\n if (!isInitialized) {\r\n return (\r\n <Box sx={{ \r\n display: \"flex\", \r\n minHeight: \"100vh\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\"\r\n }}>\r\n {/* Optional loading indicator */}\r\n <Box>Loading...</Box>\r\n </Box>\r\n );\r\n }\r\n\r\n return (\r\n <Box sx={{ display: \"flex\", minHeight: \"100vh\",direction: isRtl ? \"rtl\" : \"ltr\" }}>\r\n <AppBar\r\n open={forcedOpen}\r\n handleDrawerOpen={handleDrawerOpen}\r\n handleDrawerClose={handleDrawerClose}\r\n toggleDrawer={toggleDrawer}\r\n width={drawerWidth}\r\n forcedOpen={forcedOpen}\r\n hoverOpen={hoverOpen}\r\n />\r\n \r\n <SideBar\r\n open={forcedOpen}\r\n forcedOpen={forcedOpen}\r\n hoverOpen={hoverOpen}\r\n handleDrawerClose={handleDrawerClose}\r\n handleDrawerOpen={handleDrawerOpen}\r\n toggleDrawer={toggleDrawer}\r\n width={drawerWidth}\r\n theme={theme}\r\n menu={manufacturingSubmenu}\r\n handleMouseEnter={handleMouseEnter}\r\n handleMouseLeave={handleMouseLeave}\r\n isInitialized={isInitialized}\r\n dashboardPath={props.dashboardPath}\r\n />\r\n \r\n <ActivityArea \r\n isDrawerOpen={isDrawerOpen}\r\n drawerWidth={drawerWidth}\r\n forcedOpen={forcedOpen}\r\n >\r\n {props.children}\r\n </ActivityArea>\r\n </Box>\r\n );\r\n}"],"names":["DRAWER_STATE_KEY","props","theme","useTheme","currentLanguage","useLanguage","isRtl","useMemo","direction","forcedOpen","setForcedOpen","useState","hoverOpen","setHoverOpen","isInitialized","setIsInitialized","isDrawerOpen","handleDrawerOpen","useCallback","window","localStorage","setItem","error","handleDrawerClose","wipSettingsData","setWipSettingsData","getSettings","async","tokenData","getToken","apiParams","String","response","getV1Settings","data","_b","_a","settings","useEffect","manufacturingSubmenu","setManufacturingSubmenu","menu","Array","isArray","_new","filter","item","enable_production_planning","label","handleMouseLeave","toggleDrawer","savedState","getItem","initializeDrawerState","handleWindowFocus","shouldBeOpen","addEventListener","removeEventListener","jsxs","Box","sx","display","minHeight","children","jsx","AppBar","open","width","drawerWidth","SideBar","handleMouseEnter","setOpen","dashboardPath","ActivityArea","alignItems","justifyContent"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/layout/sidebarScreen/sidebarScreen.tsx"],"sourcesContent":["import { useEffect, useState, useCallback, useMemo } from \"react\";\n\nimport { useTheme } from \"@mui/material/styles\";\nimport Box from \"@mui/material/Box\";\n\nimport AppBar from \"../../components/appbar/appbar\";\nimport SideBar from \"../../components/sidebar/sidebar\";\nimport ActivityArea from \"../../components/activityArea/activityArea\";\n\nimport drawerWidth from \"../../constants/mui.constants\";\n// const drawerWidth = 240;\nimport { useLanguage } from \"../../hooks/useLangauge\";\nimport { getToken } from \"@/utils\";\nimport { getV1Settings } from \"../../api-client/api.manufacturing/api\";\n\n// Local storage key for drawer state\nconst DRAWER_STATE_KEY = '_is_drawer_open';\n\n// Interface for better type safety\ninterface SidebarLayoutProps {\n menu: any[];\n children: React.ReactNode;\n dashboardPath?: string;\n}\n\nexport default function SidebarLayout(props: SidebarLayoutProps) {\n const theme = useTheme();\n const {currentLanguage}=useLanguage();\n const isRtl=useMemo(()=>currentLanguage?.direction===\"rtl\",[currentLanguage])\n // Enhanced state management\n const [forcedOpen, setForcedOpen] = useState(true);\n const [hoverOpen, setHoverOpen] = useState(false);\n const [isInitialized, setIsInitialized] = useState(false);\n \n // Memoized computed state for actual drawer open status\n const isDrawerOpen = forcedOpen || (!forcedOpen && hoverOpen);\n\n // Enhanced drawer control functions with better state management\n const handleDrawerOpen = useCallback(() => {\n setForcedOpen(true);\n setHoverOpen(false); // Clear hover state when forcing open\n try {\n window.localStorage.setItem(DRAWER_STATE_KEY, 'true');\n } catch (error) {\n console.warn('Failed to save drawer state to localStorage:', error);\n }\n }, []);\n\n const handleDrawerClose = useCallback(() => {\n setForcedOpen(false);\n window.localStorage.setItem('_is_drawer_open', 'false')\n }, []);\n\n const [wipSettingsData, setWipSettingsData] = useState<any>(null)\n \n const getSettings = useCallback(async () => {\n // getToken returns { \"x-token\": string; \"x-timezone\": number }, but API expects string type for \"x-timezone\"\n const tokenData = getToken();\n const apiParams = {\n \"x-token\": tokenData[\"x-token\"],\n \"x-timezone\": String(tokenData[\"x-timezone\"]),\n };\n const response = await getV1Settings(apiParams);\n // The \"data\" property may not exist on GetV1SettingsResponses, so check existence safely\n const data = (response && (response as any)?.data?.settings?.[0]) || null;\n setWipSettingsData(data);\n }, []);\n useEffect(() => {\n getSettings()\n }, [getSettings])\n\n\tconst [manufacturingSubmenu, setManufacturingSubmenu] = useState<any>(props.menu)\n\n\tuseEffect(() => {\n\t\tif(wipSettingsData && Array.isArray(props?.menu)){\n\t\t\tconsole.log('wipSettingsData: ', wipSettingsData);\n\t\t\tconst _new = props.menu.filter((item) => {\n\t\t\t\tif(!wipSettingsData?.enable_production_planning){\n\t\t\t\t\treturn item.label !== \"Plans\"\n\t\t\t\t}else {\n\t\t\t\t\treturn item\n\t\t\t\t}\n\t\t\t})\n\t\t\tsetManufacturingSubmenu(_new)\n\t\t}\n\t}, [wipSettingsData, props.menu])\n\t// const module_type = '';\n\n const handleMouseEnter = () => {\n if(!forcedOpen) {\n setOpen(true)\n window.localStorage.setItem(DRAWER_STATE_KEY, 'true')\n }\n };\n\n const handleMouseLeave = useCallback(() => {\n if (!forcedOpen && isInitialized) {\n setHoverOpen(false);\n window.localStorage.setItem(DRAWER_STATE_KEY, 'false');\n }\n }, [forcedOpen, isInitialized]);\n\n // Toggle function for programmatic control\n const toggleDrawer = useCallback(() => {\n if (forcedOpen) {\n handleDrawerClose();\n } else {\n handleDrawerOpen();\n }\n }, [forcedOpen, handleDrawerClose, handleDrawerOpen]);\n\n // Enhanced initialization with error handling\n useEffect(() => {\n const initializeDrawerState = () => {\n try {\n if (typeof window !== 'undefined' && window.localStorage) {\n const savedState = window.localStorage.getItem(DRAWER_STATE_KEY);\n const shouldBeOpen = savedState === 'true';\n \n setForcedOpen(shouldBeOpen);\n setHoverOpen(false); // Ensure hover state is reset\n setIsInitialized(true);\n } else {\n // Fallback for environments without localStorage\n setForcedOpen(true);\n setIsInitialized(true);\n }\n } catch (error) {\n console.warn('Failed to read drawer state from localStorage:', error);\n // Fallback to default state\n setForcedOpen(true);\n setIsInitialized(true);\n }\n };\n\n initializeDrawerState();\n }, []);\n\n // Handle window focus to sync state across tabs\n useEffect(() => {\n const handleWindowFocus = () => {\n try {\n if (typeof window !== 'undefined' && window.localStorage) {\n const savedState = window.localStorage.getItem(DRAWER_STATE_KEY);\n const shouldBeOpen = savedState === 'true';\n \n if (shouldBeOpen !== forcedOpen) {\n setForcedOpen(shouldBeOpen);\n setHoverOpen(false);\n }\n }\n } catch (error) {\n console.warn('Failed to sync drawer state on window focus:', error);\n }\n };\n\n window.addEventListener('focus', handleWindowFocus);\n \n return () => {\n window.removeEventListener('focus', handleWindowFocus);\n };\n }, [forcedOpen]);\n\n // Prevent rendering until initialization is complete\n if (!isInitialized) {\n return (\n <Box sx={{ \n display: \"flex\", \n minHeight: \"100vh\",\n alignItems: \"center\",\n justifyContent: \"center\"\n }}>\n {/* Optional loading indicator */}\n <Box>Loading...</Box>\n </Box>\n );\n }\n\n return (\n <Box sx={{ display: \"flex\", minHeight: \"100vh\",direction: isRtl ? \"rtl\" : \"ltr\" }}>\n <AppBar\n open={forcedOpen}\n handleDrawerOpen={handleDrawerOpen}\n handleDrawerClose={handleDrawerClose}\n toggleDrawer={toggleDrawer}\n width={drawerWidth}\n forcedOpen={forcedOpen}\n hoverOpen={hoverOpen}\n />\n \n <SideBar\n open={forcedOpen}\n forcedOpen={forcedOpen}\n hoverOpen={hoverOpen}\n handleDrawerClose={handleDrawerClose}\n handleDrawerOpen={handleDrawerOpen}\n toggleDrawer={toggleDrawer}\n width={drawerWidth}\n theme={theme}\n menu={manufacturingSubmenu}\n handleMouseEnter={handleMouseEnter}\n handleMouseLeave={handleMouseLeave}\n isInitialized={isInitialized}\n dashboardPath={props.dashboardPath}\n />\n \n <ActivityArea \n isDrawerOpen={isDrawerOpen}\n drawerWidth={drawerWidth}\n forcedOpen={forcedOpen}\n >\n {props.children}\n </ActivityArea>\n </Box>\n );\n}"],"names":["DRAWER_STATE_KEY","props","theme","useTheme","currentLanguage","useLanguage","isRtl","useMemo","direction","forcedOpen","setForcedOpen","useState","hoverOpen","setHoverOpen","isInitialized","setIsInitialized","isDrawerOpen","handleDrawerOpen","useCallback","window","localStorage","setItem","error","handleDrawerClose","wipSettingsData","setWipSettingsData","getSettings","async","tokenData","getToken","apiParams","String","response","getV1Settings","data","_b","_a","settings","useEffect","manufacturingSubmenu","setManufacturingSubmenu","menu","Array","isArray","_new","filter","item","enable_production_planning","label","handleMouseLeave","toggleDrawer","savedState","getItem","initializeDrawerState","handleWindowFocus","shouldBeOpen","addEventListener","removeEventListener","jsxs","Box","sx","display","minHeight","children","jsx","AppBar","open","width","drawerWidth","SideBar","handleMouseEnter","setOpen","dashboardPath","ActivityArea","alignItems","justifyContent"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { getDefaultExportFromCjs } from "../../../../../_virtual/_commonjsHelpers/index.esm.js";
2
- import { __module as dist } from "../../../../../_virtual/index/index.esm2.js";
2
+ import { __module as dist } from "../../../../../_virtual/index/index.esm11.js";
3
3
  import React__default from "react";
4
4
  import ReactDOM__default from "react-dom";
5
5
  import require$$0 from "react-is";
6
- (function(module, exports) {
6
+ (function(module, exports$1) {
7
7
  !function(e, r) {
8
8
  module.exports = r(React__default, ReactDOM__default, require$$0);
9
9
  }(window, function(e, r, n) {