@erpsquad/common 1.8.83 → 1.8.84

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 (320) hide show
  1. package/dist/_virtual/index/index.esm3.js +2 -4
  2. package/dist/_virtual/index/index.esm3.js.map +1 -1
  3. package/dist/_virtual/index/index.esm4.js +3 -3
  4. package/dist/_virtual/index/index.esm5.js +4 -2
  5. package/dist/_virtual/index/index.esm5.js.map +1 -1
  6. package/dist/_virtual/index/index3.js +1 -1
  7. package/dist/_virtual/index/index4.js +1 -1
  8. package/dist/_virtual/index/index5.js +1 -1
  9. package/dist/components/accordion/accordion.d.ts +1 -1
  10. package/dist/components/action-bar/action-bar/index.esm.js +1 -1
  11. package/dist/components/action-bar/action-bar/index.esm.js.map +1 -1
  12. package/dist/components/action-bar/action-bar/index.js +5 -5
  13. package/dist/components/action-bar/action-bar/index.js.map +1 -1
  14. package/dist/components/action-bar/action-bar.d.ts +1 -1
  15. package/dist/components/checkbox/checkbox.d.ts +1 -1
  16. package/dist/components/date-picker/date-picker.d.ts +1 -1
  17. package/dist/components/filter/components/delete-group/index.esm.js +1 -0
  18. package/dist/components/filter/components/delete-group/index.esm.js.map +1 -1
  19. package/dist/components/filter/components/delete-group/index.js +1 -1
  20. package/dist/components/filter/components/delete-group/index.js.map +1 -1
  21. package/dist/components/filter/filter/index.esm.js +1 -1
  22. package/dist/components/filter/filter/index.esm.js.map +1 -1
  23. package/dist/components/filter/filter/index.js +7 -7
  24. package/dist/components/filter/filter/index.js.map +1 -1
  25. package/dist/components/footer/footer.d.ts +1 -1
  26. package/dist/components/form-control/form-builder/form-builder-element/media.d.ts +1 -1
  27. package/dist/components/form-control/form-builder/form-builder-element/phone.d.ts +1 -1
  28. package/dist/components/form-control/form-builder/form-builder-element/select.d.ts +1 -1
  29. package/dist/components/form-control/form-builder/form-builder-element/text.d.ts +1 -1
  30. package/dist/components/form-control/form-builder/form-builder-element/time.d.ts +1 -1
  31. package/dist/components/form-control/form-parser/form-switcher.d.ts +1 -1
  32. package/dist/components/header/redux/actionCreator/index.esm.js +1 -1
  33. package/dist/components/header/redux/actionCreator/index.esm.js.map +1 -1
  34. package/dist/components/header/redux/actionCreator/index.js +1 -1
  35. package/dist/components/header/redux/actionCreator/index.js.map +1 -1
  36. package/dist/components/icons/action-arrow.d.ts +3 -3
  37. package/dist/components/icons/add-circle.d.ts +3 -3
  38. package/dist/components/icons/arrow-bidirectional.d.ts +3 -3
  39. package/dist/components/icons/arrow-circle-down.d.ts +3 -3
  40. package/dist/components/icons/arrow-down-three.d.ts +3 -3
  41. package/dist/components/icons/arrow-down-two.d.ts +3 -3
  42. package/dist/components/icons/arrow-down.d.ts +3 -3
  43. package/dist/components/icons/arrow-up-down.d.ts +3 -3
  44. package/dist/components/icons/arrow-up-two.d.ts +3 -3
  45. package/dist/components/icons/assignments.d.ts +3 -3
  46. package/dist/components/icons/blank-circle.d.ts +3 -3
  47. package/dist/components/icons/block-filled.d.ts +3 -3
  48. package/dist/components/icons/calendar-add.d.ts +3 -3
  49. package/dist/components/icons/calendar.d.ts +3 -3
  50. package/dist/components/icons/checkbox-square.d.ts +3 -3
  51. package/dist/components/icons/circular-arrow-setting.d.ts +3 -3
  52. package/dist/components/icons/clock.d.ts +3 -3
  53. package/dist/components/icons/close.d.ts +3 -3
  54. package/dist/components/icons/coin-outline.d.ts +3 -3
  55. package/dist/components/icons/copy.d.ts +3 -3
  56. package/dist/components/icons/coupon.d.ts +3 -3
  57. package/dist/components/icons/cross-hire.d.ts +3 -3
  58. package/dist/components/icons/custom-styled-icon.d.ts +3 -3
  59. package/dist/components/icons/dashboard.d.ts +3 -3
  60. package/dist/components/icons/document-download.d.ts +3 -3
  61. package/dist/components/icons/document.d.ts +3 -3
  62. package/dist/components/icons/dollar-circle-filled.d.ts +3 -3
  63. package/dist/components/icons/dollar-circle.d.ts +3 -3
  64. package/dist/components/icons/edit.d.ts +3 -3
  65. package/dist/components/icons/email.d.ts +3 -3
  66. package/dist/components/icons/export.d.ts +3 -3
  67. package/dist/components/icons/eye-off.d.ts +3 -3
  68. package/dist/components/icons/eye-plus-circle.d.ts +3 -3
  69. package/dist/components/icons/eye.d.ts +3 -3
  70. package/dist/components/icons/filled-circle.d.ts +3 -3
  71. package/dist/components/icons/filter-remove.d.ts +3 -3
  72. package/dist/components/icons/filter.d.ts +3 -3
  73. package/dist/components/icons/folder-save.d.ts +3 -3
  74. package/dist/components/icons/grid.d.ts +3 -3
  75. package/dist/components/icons/hashtag.d.ts +3 -3
  76. package/dist/components/icons/image.d.ts +3 -3
  77. package/dist/components/icons/import.d.ts +3 -3
  78. package/dist/components/icons/info-circle.d.ts +3 -3
  79. package/dist/components/icons/info.d.ts +3 -3
  80. package/dist/components/icons/link-horizontal.d.ts +3 -3
  81. package/dist/components/icons/link.d.ts +3 -3
  82. package/dist/components/icons/location.d.ts +3 -3
  83. package/dist/components/icons/lowest-lead-time.d.ts +3 -3
  84. package/dist/components/icons/lowest-min-qty.d.ts +3 -3
  85. package/dist/components/icons/lowest-price.d.ts +3 -3
  86. package/dist/components/icons/more.d.ts +3 -3
  87. package/dist/components/icons/notification.d.ts +3 -3
  88. package/dist/components/icons/paper-clip.d.ts +3 -3
  89. package/dist/components/icons/paragraph.d.ts +3 -3
  90. package/dist/components/icons/payment-request.d.ts +3 -3
  91. package/dist/components/icons/phone.d.ts +3 -3
  92. package/dist/components/icons/printer.d.ts +3 -3
  93. package/dist/components/icons/process-calendar.d.ts +3 -3
  94. package/dist/components/icons/promotion.d.ts +3 -3
  95. package/dist/components/icons/radio-button.d.ts +3 -3
  96. package/dist/components/icons/receipt-filled.d.ts +3 -3
  97. package/dist/components/icons/receipt-outline.d.ts +3 -3
  98. package/dist/components/icons/receipt.d.ts +3 -3
  99. package/dist/components/icons/refresh-icon.d.ts +3 -3
  100. package/dist/components/icons/replace.d.ts +3 -3
  101. package/dist/components/icons/save.d.ts +3 -3
  102. package/dist/components/icons/search-status.d.ts +3 -3
  103. package/dist/components/icons/search.d.ts +3 -3
  104. package/dist/components/icons/settings-fallback.d.ts +3 -3
  105. package/dist/components/icons/sort-arrow-icon.d.ts +3 -3
  106. package/dist/components/icons/stacked-layer.d.ts +3 -3
  107. package/dist/components/icons/start-filled.d.ts +3 -3
  108. package/dist/components/icons/three-dot-icon.d.ts +3 -3
  109. package/dist/components/icons/tick-circle-filled.d.ts +3 -3
  110. package/dist/components/icons/tick-circle.d.ts +3 -3
  111. package/dist/components/icons/tick-octagon.d.ts +3 -3
  112. package/dist/components/icons/tick.d.ts +3 -3
  113. package/dist/components/icons/toggle-switch.d.ts +3 -3
  114. package/dist/components/icons/trash.d.ts +3 -3
  115. package/dist/components/icons/wave.d.ts +3 -3
  116. package/dist/components/icons/with-out-tick-octagon.d.ts +3 -3
  117. package/dist/components/icons/work-centre.d.ts +3 -3
  118. package/dist/components/index.esm.js +279 -277
  119. package/dist/components/index.esm.js.map +1 -1
  120. package/dist/components/index.js +1 -1
  121. package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.esm.js +1 -1
  122. package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.esm.js.map +1 -1
  123. package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.js +1 -1
  124. package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.js.map +1 -1
  125. package/dist/components/location-select.d.ts +1 -1
  126. package/dist/components/material-editable-table/material-editable-table.d.ts +1 -1
  127. package/dist/components/material-table/material-table.d.ts +1 -1
  128. package/dist/components/phone-input/phone-input.d.ts +1 -1
  129. package/dist/components/providers/ERPUIProvider/index.esm.js +1 -15
  130. package/dist/components/providers/ERPUIProvider/index.esm.js.map +1 -1
  131. package/dist/components/providers/ERPUIProvider/index.js +1 -1
  132. package/dist/components/providers/ERPUIProvider/index.js.map +1 -1
  133. package/dist/components/providers/ERPUIProvider.d.ts +0 -2
  134. package/dist/components/radio/radio.d.ts +1 -1
  135. package/dist/components/reports-title-bar/redux/actionCreator/index.esm.js +1 -1
  136. package/dist/components/reports-title-bar/redux/actionCreator/index.esm.js.map +1 -1
  137. package/dist/components/reports-title-bar/redux/actionCreator/index.js +1 -1
  138. package/dist/components/reports-title-bar/redux/actionCreator/index.js.map +1 -1
  139. package/dist/components/select/select.d.ts +1 -1
  140. package/dist/components/share-modal/redux/actionCreator/index.esm.js +1 -1
  141. package/dist/components/share-modal/redux/actionCreator/index.esm.js.map +1 -1
  142. package/dist/components/share-modal/redux/actionCreator/index.js +1 -1
  143. package/dist/components/share-modal/redux/actionCreator/index.js.map +1 -1
  144. package/dist/components/switches/android-12-switch.d.ts +1 -3
  145. package/dist/components/text-field/text-field.d.ts +1 -1
  146. package/dist/components/time-picker/time-picker.d.ts +1 -1
  147. package/dist/components/uom-field-wrapper/index.d.ts +1 -0
  148. package/dist/components/uom-field-wrapper/uom-field-wrapper/index.esm.js +76 -0
  149. package/dist/components/uom-field-wrapper/uom-field-wrapper/index.esm.js.map +1 -0
  150. package/dist/components/uom-field-wrapper/uom-field-wrapper/index.js +3 -0
  151. package/dist/components/uom-field-wrapper/uom-field-wrapper/index.js.map +1 -0
  152. package/dist/components/uom-field-wrapper/uom-field-wrapper.d.ts +22 -0
  153. package/dist/components/upload/upload/index.esm.js +2 -2
  154. package/dist/components/upload/upload/index.esm.js.map +1 -1
  155. package/dist/components/upload/upload/index.js +11 -11
  156. package/dist/components/upload/upload/index.js.map +1 -1
  157. package/dist/components/upload-media/upload-media.d.ts +1 -1
  158. package/dist/contexts/AuthContext/index.esm.js +2 -2
  159. package/dist/contexts/AuthContext/index.esm.js.map +1 -1
  160. package/dist/contexts/AuthContext/index.js +1 -1
  161. package/dist/contexts/AuthContext/index.js.map +1 -1
  162. package/dist/contexts/languageContext/index.esm.js +1 -1
  163. package/dist/contexts/languageContext/index.esm.js.map +1 -1
  164. package/dist/contexts/languageContext/index.js +1 -1
  165. package/dist/contexts/languageContext/index.js.map +1 -1
  166. package/dist/hooks/useUomFieldUpdater/index.esm.js +24 -0
  167. package/dist/hooks/useUomFieldUpdater/index.esm.js.map +1 -0
  168. package/dist/hooks/useUomFieldUpdater/index.js +2 -0
  169. package/dist/hooks/useUomFieldUpdater/index.js.map +1 -0
  170. package/dist/hooks/useUomFieldUpdater.d.ts +8 -0
  171. package/dist/index.esm.js +349 -353
  172. package/dist/index.js +1 -1
  173. package/dist/node_modules/@asseinfo/react-kanban/dist/index/index.esm.js +1 -1
  174. package/dist/node_modules/@asseinfo/react-kanban/dist/index/index.js +1 -1
  175. package/dist/node_modules/@mui/system/colorManipulator/index.esm.js +2 -2
  176. package/dist/node_modules/@mui/system/colorManipulator/index.js +1 -1
  177. package/dist/src/components/accordion/accordion.d.ts +1 -1
  178. package/dist/src/components/action-bar/action-bar.d.ts +1 -1
  179. package/dist/src/components/checkbox/checkbox.d.ts +1 -1
  180. package/dist/src/components/date-picker/date-picker.d.ts +1 -1
  181. package/dist/src/components/footer/footer.d.ts +1 -1
  182. package/dist/src/components/form-control/form-builder/form-builder-element/media.d.ts +1 -1
  183. package/dist/src/components/form-control/form-builder/form-builder-element/phone.d.ts +1 -1
  184. package/dist/src/components/form-control/form-builder/form-builder-element/select.d.ts +1 -1
  185. package/dist/src/components/form-control/form-builder/form-builder-element/text.d.ts +1 -1
  186. package/dist/src/components/form-control/form-builder/form-builder-element/time.d.ts +1 -1
  187. package/dist/src/components/form-control/form-parser/form-switcher.d.ts +1 -1
  188. package/dist/src/components/icons/action-arrow.d.ts +3 -3
  189. package/dist/src/components/icons/add-circle.d.ts +3 -3
  190. package/dist/src/components/icons/arrow-bidirectional.d.ts +3 -3
  191. package/dist/src/components/icons/arrow-circle-down.d.ts +3 -3
  192. package/dist/src/components/icons/arrow-down-three.d.ts +3 -3
  193. package/dist/src/components/icons/arrow-down-two.d.ts +3 -3
  194. package/dist/src/components/icons/arrow-down.d.ts +3 -3
  195. package/dist/src/components/icons/arrow-up-down.d.ts +3 -3
  196. package/dist/src/components/icons/arrow-up-two.d.ts +3 -3
  197. package/dist/src/components/icons/assignments.d.ts +3 -3
  198. package/dist/src/components/icons/blank-circle.d.ts +3 -3
  199. package/dist/src/components/icons/block-filled.d.ts +3 -3
  200. package/dist/src/components/icons/calendar-add.d.ts +3 -3
  201. package/dist/src/components/icons/calendar.d.ts +3 -3
  202. package/dist/src/components/icons/checkbox-square.d.ts +3 -3
  203. package/dist/src/components/icons/circular-arrow-setting.d.ts +3 -3
  204. package/dist/src/components/icons/clock.d.ts +3 -3
  205. package/dist/src/components/icons/close.d.ts +3 -3
  206. package/dist/src/components/icons/coin-outline.d.ts +3 -3
  207. package/dist/src/components/icons/copy.d.ts +3 -3
  208. package/dist/src/components/icons/coupon.d.ts +3 -3
  209. package/dist/src/components/icons/cross-hire.d.ts +3 -3
  210. package/dist/src/components/icons/custom-styled-icon.d.ts +3 -3
  211. package/dist/src/components/icons/dashboard.d.ts +3 -3
  212. package/dist/src/components/icons/document-download.d.ts +3 -3
  213. package/dist/src/components/icons/document.d.ts +3 -3
  214. package/dist/src/components/icons/dollar-circle-filled.d.ts +3 -3
  215. package/dist/src/components/icons/dollar-circle.d.ts +3 -3
  216. package/dist/src/components/icons/edit.d.ts +3 -3
  217. package/dist/src/components/icons/email.d.ts +3 -3
  218. package/dist/src/components/icons/export.d.ts +3 -3
  219. package/dist/src/components/icons/eye-off.d.ts +3 -3
  220. package/dist/src/components/icons/eye-plus-circle.d.ts +3 -3
  221. package/dist/src/components/icons/eye.d.ts +3 -3
  222. package/dist/src/components/icons/filled-circle.d.ts +3 -3
  223. package/dist/src/components/icons/filter-remove.d.ts +3 -3
  224. package/dist/src/components/icons/filter.d.ts +3 -3
  225. package/dist/src/components/icons/folder-save.d.ts +3 -3
  226. package/dist/src/components/icons/grid.d.ts +3 -3
  227. package/dist/src/components/icons/hashtag.d.ts +3 -3
  228. package/dist/src/components/icons/image.d.ts +3 -3
  229. package/dist/src/components/icons/import.d.ts +3 -3
  230. package/dist/src/components/icons/info-circle.d.ts +3 -3
  231. package/dist/src/components/icons/info.d.ts +3 -3
  232. package/dist/src/components/icons/link-horizontal.d.ts +3 -3
  233. package/dist/src/components/icons/link.d.ts +3 -3
  234. package/dist/src/components/icons/location.d.ts +3 -3
  235. package/dist/src/components/icons/lowest-lead-time.d.ts +3 -3
  236. package/dist/src/components/icons/lowest-min-qty.d.ts +3 -3
  237. package/dist/src/components/icons/lowest-price.d.ts +3 -3
  238. package/dist/src/components/icons/more.d.ts +3 -3
  239. package/dist/src/components/icons/notification.d.ts +3 -3
  240. package/dist/src/components/icons/paper-clip.d.ts +3 -3
  241. package/dist/src/components/icons/paragraph.d.ts +3 -3
  242. package/dist/src/components/icons/payment-request.d.ts +3 -3
  243. package/dist/src/components/icons/phone.d.ts +3 -3
  244. package/dist/src/components/icons/printer.d.ts +3 -3
  245. package/dist/src/components/icons/process-calendar.d.ts +3 -3
  246. package/dist/src/components/icons/promotion.d.ts +3 -3
  247. package/dist/src/components/icons/radio-button.d.ts +3 -3
  248. package/dist/src/components/icons/receipt-filled.d.ts +3 -3
  249. package/dist/src/components/icons/receipt-outline.d.ts +3 -3
  250. package/dist/src/components/icons/receipt.d.ts +3 -3
  251. package/dist/src/components/icons/refresh-icon.d.ts +3 -3
  252. package/dist/src/components/icons/replace.d.ts +3 -3
  253. package/dist/src/components/icons/save.d.ts +3 -3
  254. package/dist/src/components/icons/search-status.d.ts +3 -3
  255. package/dist/src/components/icons/search.d.ts +3 -3
  256. package/dist/src/components/icons/settings-fallback.d.ts +3 -3
  257. package/dist/src/components/icons/sort-arrow-icon.d.ts +3 -3
  258. package/dist/src/components/icons/stacked-layer.d.ts +3 -3
  259. package/dist/src/components/icons/start-filled.d.ts +3 -3
  260. package/dist/src/components/icons/three-dot-icon.d.ts +3 -3
  261. package/dist/src/components/icons/tick-circle-filled.d.ts +3 -3
  262. package/dist/src/components/icons/tick-circle.d.ts +3 -3
  263. package/dist/src/components/icons/tick-octagon.d.ts +3 -3
  264. package/dist/src/components/icons/tick.d.ts +3 -3
  265. package/dist/src/components/icons/toggle-switch.d.ts +3 -3
  266. package/dist/src/components/icons/trash.d.ts +3 -3
  267. package/dist/src/components/icons/wave.d.ts +3 -3
  268. package/dist/src/components/icons/with-out-tick-octagon.d.ts +3 -3
  269. package/dist/src/components/icons/work-centre.d.ts +3 -3
  270. package/dist/src/components/index.d.ts +2 -0
  271. package/dist/src/components/location-select.d.ts +1 -1
  272. package/dist/src/components/material-editable-table/material-editable-table.d.ts +1 -1
  273. package/dist/src/components/material-table/material-table.d.ts +1 -1
  274. package/dist/src/components/phone-input/phone-input.d.ts +1 -1
  275. package/dist/src/components/providers/ERPUIProvider.d.ts +0 -2
  276. package/dist/src/components/radio/radio.d.ts +1 -1
  277. package/dist/src/components/select/select.d.ts +1 -1
  278. package/dist/src/components/switches/android-12-switch.d.ts +1 -3
  279. package/dist/src/components/text-field/text-field.d.ts +1 -1
  280. package/dist/src/components/time-picker/time-picker.d.ts +1 -1
  281. package/dist/src/components/uom-field-wrapper/index.d.ts +1 -0
  282. package/dist/src/components/uom-field-wrapper/uom-field-wrapper.d.ts +22 -0
  283. package/dist/src/components/upload-media/upload-media.d.ts +1 -1
  284. package/dist/src/hooks/useUomFieldUpdater.d.ts +8 -0
  285. package/dist/src/utils/api.d.ts +0 -1
  286. package/dist/src/utils/common-utility.d.ts +1 -1
  287. package/dist/src/utils/index.d.ts +0 -1
  288. package/dist/style.css +71 -71
  289. package/dist/utils/api/index.esm.js +7 -20
  290. package/dist/utils/api/index.esm.js.map +1 -1
  291. package/dist/utils/api/index.js +1 -1
  292. package/dist/utils/api/index.js.map +1 -1
  293. package/dist/utils/api.d.ts +0 -1
  294. package/dist/utils/common/index.esm.js +6 -7
  295. package/dist/utils/common/index.esm.js.map +1 -1
  296. package/dist/utils/common/index.js +1 -1
  297. package/dist/utils/common/index.js.map +1 -1
  298. package/dist/utils/common-utility.d.ts +1 -1
  299. package/dist/utils/index.esm.js +1 -7
  300. package/dist/utils/index.esm.js.map +1 -1
  301. package/dist/utils/index.js +1 -1
  302. package/dist/views/form-builder/redux/actionCreator/index.esm.js +1 -1
  303. package/dist/views/form-builder/redux/actionCreator/index.esm.js.map +1 -1
  304. package/dist/views/form-builder/redux/actionCreator/index.js +1 -1
  305. package/dist/views/form-builder/redux/actionCreator/index.js.map +1 -1
  306. package/dist/views/template-editor/components/EditorSidebar/index.esm.js +1 -1
  307. package/dist/views/template-editor/components/EditorSidebar/index.esm.js.map +1 -1
  308. package/dist/views/template-editor/components/EditorSidebar/index.js +1 -1
  309. package/dist/views/template-editor/components/EditorSidebar/index.js.map +1 -1
  310. package/dist/views/template-editor/templates/index.esm.js +1 -1
  311. package/dist/views/template-editor/templates/index.esm.js.map +1 -1
  312. package/dist/views/template-editor/templates/index.js +1 -1
  313. package/dist/views/template-editor/templates/index.js.map +1 -1
  314. package/package.json +1 -1
  315. package/dist/src/utils/api-config.d.ts +0 -48
  316. package/dist/utils/api-config/index.esm.js +0 -36
  317. package/dist/utils/api-config/index.esm.js.map +0 -1
  318. package/dist/utils/api-config/index.js +0 -2
  319. package/dist/utils/api-config/index.js.map +0 -1
  320. package/dist/utils/api-config.d.ts +0 -48
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../../../../../src/components/filter/components/delete-group.tsx"],"sourcesContent":["import Button from \"../../button/button\";\n// import Typography from \"../../typography/typography\";\nimport { ActionProps } from \"react-querybuilder\";\nimport { Trash } from \"../../icons\";\n\nconst RemoveGroupAction = (props: ActionProps) => {\n const { handleOnClick } = props;\n\n return (\n <Button\n variant=\"outlined\"\n onClick={handleOnClick}\n sx={({palette}) => ({\n marginRight: \"0px\",\n marginLeft: \"auto\",\n color: `${palette.theme.error?.[600]} !important`\n })}\n startIcon={<Trash color=\"theme.error.600\" fontSize=\"small\"/>}\n >\n Delete Group\n </Button>\n );\n};\n\nexport { RemoveGroupAction };\nexport default RemoveGroupAction;\n"],"names":[],"mappings":";;;AAKA,MAAM,oBAAoB,CAAC,UAAuB;AAChD,QAAM,EAAE,kBAAkB;AAE1B,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,SAAQ;AAAA,MACR,SAAS;AAAA,MACT,IAAI,CAAC,EAAC,cAAO;;AAAO;AAAA,UAClB,aAAa;AAAA,UACb,YAAY;AAAA,UACZ,OAAO,IAAG,aAAQ,MAAM,UAAd,mBAAsB,IAAI;AAAA,QAAA;AAAA;AAAA,MAEtC,WAAW,oBAAC,OAAA,EAAM,OAAM,mBAAkB,UAAS,SAAO;AAAA,MAC3D,UAAA;AAAA,IAAA;AAAA,EAAA;AAIL;"}
1
+ {"version":3,"file":"index.esm.js","sources":["../../../../../src/components/filter/components/delete-group.tsx"],"sourcesContent":["import Button from \"../../button/button\";\n// import Typography from \"../../typography/typography\";\nimport { ActionProps } from \"react-querybuilder\";\nimport { Trash } from \"../../icons\";\n\nconst RemoveGroupAction = (props: ActionProps) => {\n const { handleOnClick } = props;\n\n return (\n <Button\n className=\"filterGrp-remove-btn\"\n variant=\"outlined\"\n onClick={handleOnClick}\n sx={({palette}) => ({\n marginRight: \"0px\",\n marginLeft: \"auto\",\n color: `${palette.theme.error?.[600]} !important`\n })}\n startIcon={<Trash color=\"theme.error.600\" fontSize=\"small\"/>}\n >\n Delete Group\n </Button>\n );\n};\n\nexport { RemoveGroupAction };\nexport default RemoveGroupAction;\n"],"names":[],"mappings":";;;AAKA,MAAM,oBAAoB,CAAC,UAAuB;AAChD,QAAM,EAAE,kBAAkB;AAE1B,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,SAAQ;AAAA,MACR,SAAS;AAAA,MACT,IAAI,CAAC,EAAC,cAAO;;AAAO;AAAA,UAClB,aAAa;AAAA,UACb,YAAY;AAAA,UACZ,OAAO,IAAG,aAAQ,MAAM,UAAd,mBAAsB,IAAI;AAAA,QAAA;AAAA;AAAA,MAEtC,WAAW,oBAAC,OAAA,EAAM,OAAM,mBAAkB,UAAS,SAAO;AAAA,MAC3D,UAAA;AAAA,IAAA;AAAA,EAAA;AAIL;"}
@@ -1,3 +1,3 @@
1
1
  "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("../../../button/button/index.js"),t=require("../../../icons/trash/index.js");const o=o=>{const{handleOnClick:n}=o;/* @__PURE__ */
2
- return e.jsx(r.Button,{variant:"outlined",onClick:n,sx:({palette:e})=>{var r;return{marginRight:"0px",marginLeft:"auto",color:`${null==(r=e.theme.error)?void 0:r[600]} !important`}},startIcon:/* @__PURE__ */e.jsx(t.Trash,{color:"theme.error.600",fontSize:"small"}),children:"Delete Group"})};exports.RemoveGroupAction=o,exports.default=o;
2
+ return e.jsx(r.Button,{className:"filterGrp-remove-btn",variant:"outlined",onClick:n,sx:({palette:e})=>{var r;return{marginRight:"0px",marginLeft:"auto",color:`${null==(r=e.theme.error)?void 0:r[600]} !important`}},startIcon:/* @__PURE__ */e.jsx(t.Trash,{color:"theme.error.600",fontSize:"small"}),children:"Delete Group"})};exports.RemoveGroupAction=o,exports.default=o;
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/filter/components/delete-group.tsx"],"sourcesContent":["import Button from \"../../button/button\";\n// import Typography from \"../../typography/typography\";\nimport { ActionProps } from \"react-querybuilder\";\nimport { Trash } from \"../../icons\";\n\nconst RemoveGroupAction = (props: ActionProps) => {\n const { handleOnClick } = props;\n\n return (\n <Button\n variant=\"outlined\"\n onClick={handleOnClick}\n sx={({palette}) => ({\n marginRight: \"0px\",\n marginLeft: \"auto\",\n color: `${palette.theme.error?.[600]} !important`\n })}\n startIcon={<Trash color=\"theme.error.600\" fontSize=\"small\"/>}\n >\n Delete Group\n </Button>\n );\n};\n\nexport { RemoveGroupAction };\nexport default RemoveGroupAction;\n"],"names":["RemoveGroupAction","props","handleOnClick","jsx","Button","variant","onClick","sx","palette","marginRight","marginLeft","color","_a","theme","error","startIcon","Trash","fontSize","children"],"mappings":"+LAKA,MAAMA,EAAqBC,IACzB,MAAMC,cAAEA,GAAkBD;AAE1B,OACEE,EAAAA,IAACC,EAAAA,OAAA,CACCC,QAAQ,WACRC,QAASJ,EACTK,GAAI,EAAEC,oBAAc,MAAA,CAClBC,YAAa,MACbC,WAAY,OACZC,MAAO,GAAG,OAAAC,EAAAJ,EAAQK,MAAMC,gBAAQ,oBAElCC,yBAAWZ,EAAAA,IAACa,QAAA,CAAML,MAAM,kBAAkBM,SAAS,UACpDC,SAAA"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/filter/components/delete-group.tsx"],"sourcesContent":["import Button from \"../../button/button\";\n// import Typography from \"../../typography/typography\";\nimport { ActionProps } from \"react-querybuilder\";\nimport { Trash } from \"../../icons\";\n\nconst RemoveGroupAction = (props: ActionProps) => {\n const { handleOnClick } = props;\n\n return (\n <Button\n className=\"filterGrp-remove-btn\"\n variant=\"outlined\"\n onClick={handleOnClick}\n sx={({palette}) => ({\n marginRight: \"0px\",\n marginLeft: \"auto\",\n color: `${palette.theme.error?.[600]} !important`\n })}\n startIcon={<Trash color=\"theme.error.600\" fontSize=\"small\"/>}\n >\n Delete Group\n </Button>\n );\n};\n\nexport { RemoveGroupAction };\nexport default RemoveGroupAction;\n"],"names":["RemoveGroupAction","props","handleOnClick","jsx","Button","className","variant","onClick","sx","palette","marginRight","marginLeft","color","_a","theme","error","startIcon","Trash","fontSize","children"],"mappings":"+LAKA,MAAMA,EAAqBC,IACzB,MAAMC,cAAEA,GAAkBD;AAE1B,OACEE,EAAAA,IAACC,EAAAA,OAAA,CACCC,UAAU,uBACVC,QAAQ,WACRC,QAASL,EACTM,GAAI,EAAEC,oBAAc,MAAA,CAClBC,YAAa,MACbC,WAAY,OACZC,MAAO,GAAG,OAAAC,EAAAJ,EAAQK,MAAMC,gBAAQ,oBAElCC,yBAAWb,EAAAA,IAACc,QAAA,CAAML,MAAM,kBAAkBM,SAAS,UACpDC,SAAA"}
@@ -38,7 +38,7 @@ import Close from "../../../node_modules/@mui/icons-material/esm/Close/index.esm
38
38
  import DialogContent from "../../../node_modules/@mui/material/DialogContent/DialogContent/index.esm.js";
39
39
  import Alert from "../../../node_modules/@mui/material/Alert/Alert/index.esm.js";
40
40
  import DialogActions from "../../../node_modules/@mui/material/DialogActions/DialogActions/index.esm.js";
41
- setBaseUrl(`${"http://127.0.0.1:4011"}/system-feature`);
41
+ setBaseUrl(`${"https://apidev.erpforce.co"}/system-feature`);
42
42
  const initialQuery = { combinator: "and", rules: [] };
43
43
  const Filter = ({
44
44
  open,
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../../../../src/components/filter/filter.tsx"],"sourcesContent":["/* eslint-disable */\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport type { RuleGroupType } from \"react-querybuilder\";\nimport \"react-querybuilder/dist/query-builder.scss\";\nimport { QueryBuilder /* , formatQuery */ } from \"react-querybuilder\";\nimport { QueryBuilderMaterial } from \"@react-querybuilder/material\";\nimport {\n Box,\n IconButton,\n MenuItem,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n OutlinedInput,\n InputAdornment,\n Alert,\n} from \"@mui/material\";\nimport \"./filter.scss\";\nimport Select from \"../select/select\";\nimport Typography from \"../typography/typography\";\nimport { Close } from \"@mui/icons-material\";\nimport CombinatorSelect from \"./components/combinator-select\";\nimport RemoveAction from \"./components/remove-action\";\nimport FieldSelect from \"./components/field-select\";\nimport AddFilterButton from \"./components/add-filter\";\nimport AddGroupButton from \"./components/add-group\";\nimport ValueEditor from \"./components/value-editor\";\nimport OperatorSelect from \"./components/operator-select\";\nimport Button from \"../button/button\";\nimport RemoveGroupAction from \"./components/delete-group\";\nimport SearchBar from \"../search-bar/search-bar\";\nimport SaveFilterModal from \"../save-filter-modal/save-filter-modal\";\n\nimport {\n setBaseUrl,\n putV1FilterId,\n deleteV1FilterId,\n} from \"../../api-client/api.system-feature/api\";\nimport type * as Types from \"../../api-client/api.system-feature/api-types\";\nimport { auth } from \"../../constants/auth\";\nimport { generateFields, generateQueryString, getErrorMessage } from \"../../utils/common\";\nimport { usePages } from \"../../hooks/use-pages\";\nimport _ from \"lodash\";\nimport { Edit, Trash } from \"../icons\";\nimport { enqueueSnackbar } from \"notistack\";\nimport { IResources, routeToResourceMap } from \"../../constants/route-page-map\";\nimport { useLocation } from \"react-router-dom\";\nimport { useLanguage } from \"../../hooks/useLangauge\";\n\nsetBaseUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/system-feature`);\n\ninterface IFilter {\n open: boolean;\n onClose: () => void;\n activeView?: string;\n savedFilters?: SavedFilter[];\n fetchSavedFilters?: () => Promise<void>;\n setFilterBar?: any;\n onSaveFilter?: (query: RuleGroupType) => void;\n onSelectedFilter?: (filterName: string) => void;\n fields: any;\n applyFilter: any;\n isUseFields?: boolean;\n}\n\ninterface SavedFilter {\n id: string;\n name: string;\n query: RuleGroupType;\n}\n\nconst initialQuery: RuleGroupType = { combinator: \"and\", rules: [] };\n\nconst Filter = ({\n open,\n onClose,\n // activeView,\n savedFilters,\n fetchSavedFilters,\n onSaveFilter,\n onSelectedFilter,\n applyFilter,\n fields = [],\n isUseFields = false\n}: IFilter) => {\n const location = useLocation();\n\n const token = localStorage.getItem(auth.storageTokenKeyName);\n const { updatePageInfo, activePage, schemaFields, setActivePage } = usePages()\n\n fields = isUseFields ? generateFields(fields) : (schemaFields.length ? generateFields(schemaFields) : fields)\n const [query, setQuery] = useState<RuleGroupType>(initialQuery);\n const [filteredSavedFilters, setFilteredSavedFilters] = useState<\n SavedFilter[]\n >(savedFilters ?? []);\n const [selectedFilter, setSelectedFilter] = useState<any>(null);\n const [openRenameFilter, setIsOpenRenameFilter] = useState<any>(null);\n const [errorMessage, setErrorMessage] = useState<string | null>(null);\n const { isRtl } = useLanguage();\n const resources: IResources = useMemo(() => routeToResourceMap[location.pathname] || null, [location.pathname])\n\n useEffect(() => {\n savedFilters && setFilteredSavedFilters(savedFilters);\n }, [savedFilters]);\n\n\n const handleApplyFilter = useCallback((clear: boolean = false) => {\n let q = query\n const isInvalid = isDuplicatedFilters(q)\n if (isInvalid) {\n setErrorMessage(\"Invalid filter\")\n return\n }\n if (clear) {\n q = initialQuery\n setQuery(q)\n } else {\n const generatedSQLQuery = q ? generateQueryString(q) : q;\n updatePageInfo({ filters: q, filterQueryString: generatedSQLQuery })\n // applyFilter(generatedSQLQuery);\n onClose();\n }\n }, [query, applyFilter, onClose]);\n\n const handleQueryChange = (q: RuleGroupType) => {\n const updatedRules = q.rules.map((rule, i) => ({\n ...rule,\n value: rule.field !== query.rules?.[i]?.field || ['null', 'notNull'].includes(rule.operator) ? \"\" : rule.value\n }));\n let isValid = true;\n let errorMessage = '';\n\n // // Helper function to check for invalid aggregate usage, considering parent combinators\n // const checkForInvalidAggregateUsage = (rules: any[], combinator: string, parentCombinator: string | null): boolean => {\n // let hasAggregateField = false;\n // let hasNonAggregateField = false;\n\n // rules.forEach(rule => {\n // // Check nested groups\n // if (rule.rules) {\n // // If the current group or any parent has an 'OR', pass it down\n // const currentCombinator = combinator === 'or' || parentCombinator === 'or' ? 'or' : combinator;\n // checkForInvalidAggregateUsage(rule.rules, rule.combinator, currentCombinator);\n // } else {\n // // Find the field in the fields array and check if it's an aggregate\n // const field = fields.find((f: any) => f.name === rule.field);\n\n // if (field?.is_aggregate) {\n // hasAggregateField = true;\n // } else {\n // hasNonAggregateField = true;\n // }\n // }\n // });\n\n // // If any parent or current rule uses 'OR' with a mix of aggregate and non-aggregate fields, it's invalid\n // if ((combinator === 'or' || parentCombinator === 'or') && hasAggregateField && hasNonAggregateField) {\n // isValid = false;\n // errorMessage = 'Mixing aggregate and non-aggregate fields in OR conditions may lead to unexpected results.';\n // }\n\n // return isValid;\n // };\n\n // Start checking from the root level (no parent combinator initially)\n\n\n // Always set the query, regardless of validity\n setQuery({ ...q, rules: updatedRules });\n\n // Set error message if invalid, otherwise clear it\n if (!isValid) {\n setErrorMessage(errorMessage);\n } else {\n setErrorMessage(null);\n }\n\n // Always call onSaveFilter, if it exists\n if (onSaveFilter) {\n onSaveFilter(q);\n }\n };\n\n const handleFilterSwitch = (sf?: any) => {\n if (sf) {\n setSelectedFilter(sf);\n setQuery(sf.query);\n if (onSelectedFilter) {\n onSelectedFilter(sf);\n }\n } else {\n setSelectedFilter(null);\n setQuery(initialQuery);\n if (onSelectedFilter) {\n onSelectedFilter(null);\n }\n }\n };\n\n const handleSearchEvent = (searchText: string) => {\n const filteredFilters = savedFilters?.filter((filter: any) =>\n filter.name.toLowerCase().includes(searchText.toLowerCase())\n );\n if (filteredFilters) {\n setFilteredSavedFilters(filteredFilters);\n }\n };\n\n const handleRenameFilter = async (filterId: string, newName: string) => {\n const putFilterRequest: Types.PutV1FilterIdRequest = {\n \"x-token\": token,\n id: filterId,\n name: newName,\n module: resources?.fieldResource || resources?.pageResource\n };\n\n try {\n await putV1FilterId(putFilterRequest)\n // setSelectedFilter(newName);\n if (fetchSavedFilters) {\n fetchSavedFilters();\n }\n enqueueSnackbar('Filters renamed successfully.')\n } catch (error) {\n let m: string = 'Something went wrong on saving filters'\n if (error instanceof Error) {\n m = getErrorMessage(error.message)\n }\n enqueueSnackbar(m, { variant: 'error' })\n return false\n }\n return true\n };\n const handleUpdateSelectedFilterQuery = async () => {\n if (selectedFilter) {\n\n const putFilterRequest: Types.PutV1FilterIdRequest = {\n \"x-token\": token,\n id: selectedFilter.id,\n data: query,\n };\n\n putV1FilterId(putFilterRequest)\n .then((response: any) => {\n if (fetchSavedFilters) {\n fetchSavedFilters();\n }\n setActivePage((prev: any) => ({\n ...prev,\n filters: {\n ...prev.filters,\n rules: query.rules,\n combinator: query.combinator,\n name: selectedFilter.name\n\n }\n }));\n })\n .catch((err: any) => enqueueSnackbar(\"Error renaming saved filters:\", { variant: 'error' }));\n }\n };\n\n const handleSubmitRename = (name: string) => {\n if (openRenameFilter) {\n return handleRenameFilter(openRenameFilter.id, name);\n }\n };\n\n const handleDeleteFilter = async (filterId: string) => {\n const deleteFilterRequest: Types.DeleteV1FilterIdRequest = {\n \"x-token\": token,\n id: filterId,\n };\n\n deleteV1FilterId(deleteFilterRequest)\n .then((response: any) => {\n setSelectedFilter(null);\n setQuery(initialQuery);\n if (fetchSavedFilters) {\n fetchSavedFilters();\n }\n\n })\n .catch((err: any) => console.log(\"Error deleting saved filters:\", err));\n };\n\n useEffect(() => {\n let q = initialQuery\n if (!_.isEmpty(activePage.filters)) {\n q = activePage.filters\n }\n setQuery(q)\n const selectedFilter = savedFilters?.find((f: any) => f.name === activePage?.filters?.name);\n setSelectedFilter(selectedFilter || null);\n }, [activePage?.filters, savedFilters]);\n\n const isDuplicatedFilters = (rule) => {\n let uniques: string[] = []\n rule?.rules?.forEach((r: any) => {\n if (uniques.includes(r.field) && rule.combinator == 'and') {\n return true\n }\n uniques.push(r.field)\n })\n return uniques.length !== rule?.rules?.length\n }\n\n\n const isRuleInvalid = (rule: any): boolean => {\n // If it's a group (has nested rules), recurse\n if (Array.isArray(rule.rules)) {\n return rule.rules.length ? rule.rules.some(isRuleInvalid) : !rule.rules.length;\n }\n\n // Otherwise, validate individual rule\n return (\n !rule.field ||\n (_.isEmpty(rule.value) && !['null', 'notNull'].includes(rule.operator))\n );\n };\n\n const disabled = useMemo(() => isRuleInvalid(query) || errorMessage, [query, errorMessage])\n // const disabled = isRuleInvalid(query) || errorMessage;\n\n return (\n <div>\n <Dialog\n open={open}\n onClose={onClose}\n maxWidth='md'\n fullWidth={true}\n PaperProps={{\n sx: { borderRadius: 2 }\n }}\n >\n <DialogTitle className=\"filter-header\">\n <Typography type=\"s3\" weight=\"medium\" color=\"theme.secondary.1000\">\n Filters\n </Typography>\n <Box gap={1} display={\"flex\"}>\n <Select\n fullWidth\n size=\"small\"\n className=\"filter-dropdown\"\n value={selectedFilter ? selectedFilter.name : \"Saved Filters\"}\n onChange={(event: any) => {\n const sf = savedFilters?.find(f => f.name == event.target.value)\n handleFilterSwitch(sf)\n }}\n variant=\"outlined\"\n onClose={() => {\n setTimeout(() => {\n handleSearchEvent(\"\")\n }, 500);\n }}\n input={\n selectedFilter ? (\n <OutlinedInput\n label=''\n endAdornment={\n <InputAdornment position='end'>\n <IconButton\n aria-label='clear selection'\n onClick={() => {\n handleFilterSwitch()\n }}\n edge='end'\n sx={{ mr: 1.5 }}\n size='small'>\n <Close sx={{ fontSize: '1rem' }} />\n </IconButton>\n </InputAdornment>\n }\n />\n ) : undefined\n }\n >\n <div className=\"searchbar-box-list\">\n <SearchBar\n placeholder={\"Search Filters\"}\n handleSearch={(e) => handleSearchEvent(e)}\n />\n </div>\n {/* <Typography\n color=\"theme.secondary.1000\"\n type=\"s4\"\n className=\"filter-title\"\n >\n Saved Filters\n </Typography> */}\n {filteredSavedFilters?.map((savedFilter: SavedFilter) => (\n <MenuItem\n key={savedFilter.id}\n value={savedFilter?.name}\n className=\"menu-list\"\n selected={selectedFilter?.name == savedFilter?.name}\n >\n <Typography color=\"theme.secondary.1000\" type=\"s3\">\n {savedFilter?.name}\n </Typography>\n\n <div className=\"icon-list\">\n <IconButton size=\"small\" onClick={(e) => {\n e.preventDefault()\n e.stopPropagation()\n setIsOpenRenameFilter(savedFilter)\n }}>\n <Edit fontSize=\"small\" color={selectedFilter?.name == savedFilter?.name ? \"theme.primary.800\" : 'inherit'} />\n </IconButton>\n <IconButton size=\"small\" onClick={(e) => {\n e.preventDefault()\n e.stopPropagation()\n handleDeleteFilter(savedFilter.id)\n }} color=\"error\">\n <Trash fontSize=\"small\" color=\"theme.error.600\" />\n </IconButton>\n </div>\n </MenuItem>\n ))}\n </Select>\n <SaveFilterModal\n open={openRenameFilter !== null}\n onClose={() => setIsOpenRenameFilter(null)}\n handleSubmit={(name) => handleSubmitRename(name)}\n oldName={openRenameFilter?.name}\n />\n <Box>\n <IconButton size=\"small\" onClick={onClose}>\n <Close fontSize=\"small\" />\n </IconButton>\n </Box>\n </Box>\n </DialogTitle>\n <DialogContent className=\"content\">\n {/* Display error message */}\n {errorMessage && (\n <Alert severity=\"error\" sx={{ px: 1, pt: 0.5, mb: 1 }}>\n <Typography\n color=\"error\"\n type=\"s4\"\n >\n {errorMessage}\n </Typography>\n </Alert>\n )}\n <QueryBuilderMaterial>\n <QueryBuilder\n fields={fields || []}\n query={query}\n onQueryChange={handleQueryChange}\n showCombinatorsBetweenRules={true}\n controlClassnames={{\n header: \"actions\",\n }}\n controlElements={{\n addRuleAction: AddFilterButton,\n addGroupAction: AddGroupButton,\n combinatorSelector: CombinatorSelect,\n fieldSelector: FieldSelect,\n operatorSelector: OperatorSelect,\n removeRuleAction: RemoveAction,\n valueEditor: ValueEditor,\n removeGroupAction: RemoveGroupAction,\n }}\n />\n <Button\n variant=\"text\"\n className={isRtl ? 'remove-filters_rtl' : 'remove-filters'}\n onClick={() => {\n handleApplyFilter(true)\n }}\n disabled={disabled}\n >\n Clear all filters\n </Button>\n </QueryBuilderMaterial>\n </DialogContent>\n <DialogActions className=\"filter-footer\">\n <Box sx={{ display: 'flex', alignItems: 'center', justifyContent: selectedFilter ? 'space-between' : 'flex-end', width: '100%' }}>\n {selectedFilter &&\n <Box>\n <Button onClick={handleUpdateSelectedFilterQuery}>\n Update Seleted filter\n </Button>\n </Box>\n }\n <Box sx={{ display: 'flex', gap: 1 }}>\n <Button className=\"cancel-filter-btn\" onClick={onClose}>\n Cancel\n </Button>\n <Button\n disabled={disabled}\n onClick={() => handleApplyFilter()}\n >\n Apply\n </Button>\n </Box>\n </Box>\n </DialogActions>\n </Dialog>\n </div>\n );\n};\n\nexport { Filter };\nexport default Filter;\n"],"names":["selectedFilter"],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","sources":["../../../../src/components/filter/filter.tsx"],"sourcesContent":["/* eslint-disable */\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport type { RuleGroupType } from \"react-querybuilder\";\nimport \"react-querybuilder/dist/query-builder.scss\";\nimport { QueryBuilder /* , formatQuery */ } from \"react-querybuilder\";\nimport { QueryBuilderMaterial } from \"@react-querybuilder/material\";\nimport {\n Box,\n IconButton,\n MenuItem,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n OutlinedInput,\n InputAdornment,\n Alert,\n} from \"@mui/material\";\nimport \"./filter.scss\";\nimport Select from \"../select/select\";\nimport Typography from \"../typography/typography\";\nimport { Close } from \"@mui/icons-material\";\nimport CombinatorSelect from \"./components/combinator-select\";\nimport RemoveAction from \"./components/remove-action\";\nimport FieldSelect from \"./components/field-select\";\nimport AddFilterButton from \"./components/add-filter\";\nimport AddGroupButton from \"./components/add-group\";\nimport ValueEditor from \"./components/value-editor\";\nimport OperatorSelect from \"./components/operator-select\";\nimport Button from \"../button/button\";\nimport RemoveGroupAction from \"./components/delete-group\";\nimport SearchBar from \"../search-bar/search-bar\";\nimport SaveFilterModal from \"../save-filter-modal/save-filter-modal\";\n\nimport {\n setBaseUrl,\n putV1FilterId,\n deleteV1FilterId,\n} from \"../../api-client/api.system-feature/api\";\nimport type * as Types from \"../../api-client/api.system-feature/api-types\";\nimport { auth } from \"../../constants/auth\";\nimport { generateFields, generateQueryString, getErrorMessage } from \"../../utils/common\";\nimport { usePages } from \"../../hooks/use-pages\";\nimport _ from \"lodash\";\nimport { Edit, Trash } from \"../icons\";\nimport { enqueueSnackbar } from \"notistack\";\nimport { IResources, routeToResourceMap } from \"../../constants/route-page-map\";\nimport { useLocation } from \"react-router-dom\";\nimport { useLanguage } from \"../../hooks/useLangauge\";\n\nsetBaseUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/system-feature`);\n\ninterface IFilter {\n open: boolean;\n onClose: () => void;\n activeView?: string;\n savedFilters?: SavedFilter[];\n fetchSavedFilters?: () => Promise<void>;\n setFilterBar?: any;\n onSaveFilter?: (query: RuleGroupType) => void;\n onSelectedFilter?: (filterName: string) => void;\n fields: any;\n applyFilter: any;\n isUseFields?: boolean;\n}\n\ninterface SavedFilter {\n id: string;\n name: string;\n query: RuleGroupType;\n}\n\nconst initialQuery: RuleGroupType = { combinator: \"and\", rules: [] };\n\nconst Filter = ({\n open,\n onClose,\n // activeView,\n savedFilters,\n fetchSavedFilters,\n onSaveFilter,\n onSelectedFilter,\n applyFilter,\n fields = [],\n isUseFields = false\n}: IFilter) => {\n const location = useLocation();\n\n const token = localStorage.getItem(auth.storageTokenKeyName);\n const { updatePageInfo, activePage, schemaFields, setActivePage } = usePages()\n\n fields = isUseFields ? generateFields(fields) : (schemaFields.length ? generateFields(schemaFields) : fields)\n const [query, setQuery] = useState<RuleGroupType>(initialQuery);\n const [filteredSavedFilters, setFilteredSavedFilters] = useState<\n SavedFilter[]\n >(savedFilters ?? []);\n const [selectedFilter, setSelectedFilter] = useState<any>(null);\n const [openRenameFilter, setIsOpenRenameFilter] = useState<any>(null);\n const [errorMessage, setErrorMessage] = useState<string | null>(null);\n const { isRtl } = useLanguage();\n const resources: IResources = useMemo(() => routeToResourceMap[location.pathname] || null, [location.pathname])\n\n useEffect(() => {\n savedFilters && setFilteredSavedFilters(savedFilters);\n }, [savedFilters]);\n\n\n const handleApplyFilter = useCallback((clear: boolean = false) => {\n let q = query\n const isInvalid = isDuplicatedFilters(q)\n if (isInvalid) {\n setErrorMessage(\"Invalid filter\")\n return\n }\n if (clear) {\n q = initialQuery\n setQuery(q)\n } else {\n const generatedSQLQuery = q ? generateQueryString(q) : q;\n updatePageInfo({ filters: q, filterQueryString: generatedSQLQuery })\n // applyFilter(generatedSQLQuery);\n onClose();\n }\n }, [query, applyFilter, onClose]);\n\n const handleQueryChange = (q: RuleGroupType) => {\n const updatedRules = q.rules.map((rule, i) => ({\n ...rule,\n value: rule.field !== query.rules?.[i]?.field || ['null', 'notNull'].includes(rule.operator) ? \"\" : rule.value\n }));\n let isValid = true;\n let errorMessage = '';\n\n // // Helper function to check for invalid aggregate usage, considering parent combinators\n // const checkForInvalidAggregateUsage = (rules: any[], combinator: string, parentCombinator: string | null): boolean => {\n // let hasAggregateField = false;\n // let hasNonAggregateField = false;\n\n // rules.forEach(rule => {\n // // Check nested groups\n // if (rule.rules) {\n // // If the current group or any parent has an 'OR', pass it down\n // const currentCombinator = combinator === 'or' || parentCombinator === 'or' ? 'or' : combinator;\n // checkForInvalidAggregateUsage(rule.rules, rule.combinator, currentCombinator);\n // } else {\n // // Find the field in the fields array and check if it's an aggregate\n // const field = fields.find((f: any) => f.name === rule.field);\n\n // if (field?.is_aggregate) {\n // hasAggregateField = true;\n // } else {\n // hasNonAggregateField = true;\n // }\n // }\n // });\n\n // // If any parent or current rule uses 'OR' with a mix of aggregate and non-aggregate fields, it's invalid\n // if ((combinator === 'or' || parentCombinator === 'or') && hasAggregateField && hasNonAggregateField) {\n // isValid = false;\n // errorMessage = 'Mixing aggregate and non-aggregate fields in OR conditions may lead to unexpected results.';\n // }\n\n // return isValid;\n // };\n\n // Start checking from the root level (no parent combinator initially)\n\n\n // Always set the query, regardless of validity\n setQuery({ ...q, rules: updatedRules });\n\n // Set error message if invalid, otherwise clear it\n if (!isValid) {\n setErrorMessage(errorMessage);\n } else {\n setErrorMessage(null);\n }\n\n // Always call onSaveFilter, if it exists\n if (onSaveFilter) {\n onSaveFilter(q);\n }\n };\n\n const handleFilterSwitch = (sf?: any) => {\n if (sf) {\n setSelectedFilter(sf);\n setQuery(sf.query);\n if (onSelectedFilter) {\n onSelectedFilter(sf);\n }\n } else {\n setSelectedFilter(null);\n setQuery(initialQuery);\n if (onSelectedFilter) {\n onSelectedFilter(null);\n }\n }\n };\n\n const handleSearchEvent = (searchText: string) => {\n const filteredFilters = savedFilters?.filter((filter: any) =>\n filter.name.toLowerCase().includes(searchText.toLowerCase())\n );\n if (filteredFilters) {\n setFilteredSavedFilters(filteredFilters);\n }\n };\n\n const handleRenameFilter = async (filterId: string, newName: string) => {\n const putFilterRequest: Types.PutV1FilterIdRequest = {\n \"x-token\": token,\n id: filterId,\n name: newName,\n module: resources?.fieldResource || resources?.pageResource\n };\n\n try {\n await putV1FilterId(putFilterRequest)\n // setSelectedFilter(newName);\n if (fetchSavedFilters) {\n fetchSavedFilters();\n }\n enqueueSnackbar('Filters renamed successfully.')\n } catch (error) {\n let m: string = 'Something went wrong on saving filters'\n if (error instanceof Error) {\n m = getErrorMessage(error.message)\n }\n enqueueSnackbar(m, { variant: 'error' })\n return false\n }\n return true\n };\n const handleUpdateSelectedFilterQuery = async () => {\n if (selectedFilter) {\n\n const putFilterRequest: Types.PutV1FilterIdRequest = {\n \"x-token\": token,\n id: selectedFilter.id,\n data: query,\n };\n\n putV1FilterId(putFilterRequest)\n .then((response: any) => {\n if (fetchSavedFilters) {\n fetchSavedFilters();\n }\n setActivePage((prev: any) => ({\n ...prev,\n filters: {\n ...prev.filters,\n rules: query.rules,\n combinator: query.combinator,\n name: selectedFilter.name\n\n }\n }));\n })\n .catch((err: any) => enqueueSnackbar(\"Error renaming saved filters:\", { variant: 'error' }));\n }\n };\n\n const handleSubmitRename = (name: string) => {\n if (openRenameFilter) {\n return handleRenameFilter(openRenameFilter.id, name);\n }\n };\n\n const handleDeleteFilter = async (filterId: string) => {\n const deleteFilterRequest: Types.DeleteV1FilterIdRequest = {\n \"x-token\": token,\n id: filterId,\n };\n\n deleteV1FilterId(deleteFilterRequest)\n .then((response: any) => {\n setSelectedFilter(null);\n setQuery(initialQuery);\n if (fetchSavedFilters) {\n fetchSavedFilters();\n }\n\n })\n .catch((err: any) => console.log(\"Error deleting saved filters:\", err));\n };\n\n useEffect(() => {\n let q = initialQuery\n if (!_.isEmpty(activePage.filters)) {\n q = activePage.filters\n }\n setQuery(q)\n const selectedFilter = savedFilters?.find((f: any) => f.name === activePage?.filters?.name);\n setSelectedFilter(selectedFilter || null);\n }, [activePage?.filters, savedFilters]);\n\n const isDuplicatedFilters = (rule) => {\n let uniques: string[] = []\n rule?.rules?.forEach((r: any) => {\n if (uniques.includes(r.field) && rule.combinator == 'and') {\n return true\n }\n uniques.push(r.field)\n })\n return uniques.length !== rule?.rules?.length\n }\n\n\n const isRuleInvalid = (rule: any): boolean => {\n // If it's a group (has nested rules), recurse\n if (Array.isArray(rule.rules)) {\n return rule.rules.length ? rule.rules.some(isRuleInvalid) : !rule.rules.length;\n }\n\n // Otherwise, validate individual rule\n return (\n !rule.field ||\n (_.isEmpty(rule.value) && !['null', 'notNull'].includes(rule.operator))\n );\n };\n\n const disabled = useMemo(() => isRuleInvalid(query) || errorMessage, [query, errorMessage])\n // const disabled = isRuleInvalid(query) || errorMessage;\n\n return (\n <div>\n <Dialog\n open={open}\n onClose={onClose}\n maxWidth='md'\n fullWidth={true}\n PaperProps={{\n sx: { borderRadius: 2 }\n }}\n >\n <DialogTitle className=\"filter-header\">\n <Typography type=\"s3\" weight=\"medium\" color=\"theme.secondary.1000\">\n Filters\n </Typography>\n <Box gap={1} display={\"flex\"}>\n <Select\n fullWidth\n size=\"small\"\n className=\"filter-dropdown\"\n value={selectedFilter ? selectedFilter.name : \"Saved Filters\"}\n onChange={(event: any) => {\n const sf = savedFilters?.find(f => f.name == event.target.value)\n handleFilterSwitch(sf)\n }}\n variant=\"outlined\"\n onClose={() => {\n setTimeout(() => {\n handleSearchEvent(\"\")\n }, 500);\n }}\n input={\n selectedFilter ? (\n <OutlinedInput\n label=''\n endAdornment={\n <InputAdornment position='end'>\n <IconButton\n aria-label='clear selection'\n onClick={() => {\n handleFilterSwitch()\n }}\n edge='end'\n sx={{ mr: 1.5 }}\n size='small'>\n <Close sx={{ fontSize: '1rem' }} />\n </IconButton>\n </InputAdornment>\n }\n />\n ) : undefined\n }\n >\n <div className=\"searchbar-box-list\">\n <SearchBar\n placeholder={\"Search Filters\"}\n handleSearch={(e) => handleSearchEvent(e)}\n />\n </div>\n {/* <Typography\n color=\"theme.secondary.1000\"\n type=\"s4\"\n className=\"filter-title\"\n >\n Saved Filters\n </Typography> */}\n {filteredSavedFilters?.map((savedFilter: SavedFilter) => (\n <MenuItem\n key={savedFilter.id}\n value={savedFilter?.name}\n className=\"menu-list\"\n selected={selectedFilter?.name == savedFilter?.name}\n >\n <Typography color=\"theme.secondary.1000\" type=\"s3\">\n {savedFilter?.name}\n </Typography>\n\n <div className=\"icon-list\">\n <IconButton size=\"small\" onClick={(e) => {\n e.preventDefault()\n e.stopPropagation()\n setIsOpenRenameFilter(savedFilter)\n }}>\n <Edit fontSize=\"small\" color={selectedFilter?.name == savedFilter?.name ? \"theme.primary.800\" : 'inherit'} />\n </IconButton>\n <IconButton size=\"small\" onClick={(e) => {\n e.preventDefault()\n e.stopPropagation()\n handleDeleteFilter(savedFilter.id)\n }} color=\"error\">\n <Trash fontSize=\"small\" color=\"theme.error.600\" />\n </IconButton>\n </div>\n </MenuItem>\n ))}\n </Select>\n <SaveFilterModal\n open={openRenameFilter !== null}\n onClose={() => setIsOpenRenameFilter(null)}\n handleSubmit={(name) => handleSubmitRename(name)}\n oldName={openRenameFilter?.name}\n />\n <Box>\n <IconButton size=\"small\" onClick={onClose}>\n <Close fontSize=\"small\" />\n </IconButton>\n </Box>\n </Box>\n </DialogTitle>\n <DialogContent className=\"content\">\n {/* Display error message */}\n {errorMessage && (\n <Alert severity=\"error\" sx={{ px: 1, pt: 0.5, mb: 1 }}>\n <Typography\n color=\"error\"\n type=\"s4\"\n >\n {errorMessage}\n </Typography>\n </Alert>\n )}\n <QueryBuilderMaterial>\n <QueryBuilder\n fields={fields || []}\n query={query}\n onQueryChange={handleQueryChange}\n showCombinatorsBetweenRules={true}\n controlClassnames={{\n header: \"actions\",\n }}\n controlElements={{\n addRuleAction: AddFilterButton,\n addGroupAction: AddGroupButton,\n combinatorSelector: CombinatorSelect,\n fieldSelector: FieldSelect,\n operatorSelector: OperatorSelect,\n removeRuleAction: RemoveAction,\n valueEditor: ValueEditor,\n removeGroupAction: RemoveGroupAction,\n }}\n />\n <Button\n variant=\"text\"\n className={isRtl ? 'remove-filters_rtl' : 'remove-filters'}\n onClick={() => {\n handleApplyFilter(true)\n }}\n disabled={disabled}\n >\n Clear all filters\n </Button>\n </QueryBuilderMaterial>\n </DialogContent>\n <DialogActions className=\"filter-footer\">\n <Box sx={{ display: 'flex', alignItems: 'center', justifyContent: selectedFilter ? 'space-between' : 'flex-end', width: '100%' }}>\n {selectedFilter &&\n <Box>\n <Button onClick={handleUpdateSelectedFilterQuery}>\n Update Seleted filter\n </Button>\n </Box>\n }\n <Box sx={{ display: 'flex', gap: 1 }}>\n <Button className=\"cancel-filter-btn\" onClick={onClose}>\n Cancel\n </Button>\n <Button\n disabled={disabled}\n onClick={() => handleApplyFilter()}\n >\n Apply\n </Button>\n </Box>\n </Box>\n </DialogActions>\n </Dialog>\n </div>\n );\n};\n\nexport { Filter };\nexport default Filter;\n"],"names":["selectedFilter"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),l=require("react"),r=require("react-querybuilder"),t=;/* empty css */;/* empty css */var i=,/* empty css */n=,/* empty css */s=,/* empty css */a=,/* empty css */o=,/* empty css */u=,/* empty css */d=,/* empty css */c=,/* empty css */m=,/* empty css */x=,/* empty css */f=,/* empty css */p=,/* empty css */h=,/* empty css */j=,/* empty css */v=,/* empty css */g=,/* empty css */q=,/* empty css */y=require("lodash"),S=,/* empty css */b=,/* empty css */C=require("react-router-dom"),k=,/* empty css */F=,/* empty css */A=,/* empty css */_=,/* empty css */B=,/* empty css */I=,/* empty css */N=,/* empty css */E=,/* empty css */w=,/* empty css */D=,/* empty css */R=,/* empty css */z=,/* empty css */M=,/* empty css */P=;/* empty css */function T(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var L=/* @__PURE__ */T(y);j.setBaseUrl("http://127.0.0.1:4011/system-feature");const Q={combinator:"and",rules:[]},G=({open:y,onClose:T,savedFilters:G,fetchSavedFilters:O,onSaveFilter:V,onSelectedFilter:U,applyFilter:W,fields:K=[],isUseFields:H=!1})=>{const J=C.useLocation(),X=localStorage.getItem(v.auth.storageTokenKeyName),{updatePageInfo:Y,activePage:Z,schemaFields:$,setActivePage:ee}=q.usePages();K=H?g.generateFields(K):$.length?g.generateFields($):K;const[le,re]=l.useState(Q),[te,ie]=l.useState(G??[]),[ne,se]=l.useState(null),[ae,oe]=l.useState(null),[ue,de]=l.useState(null),{isRtl:ce}=k.useLanguage(),me=l.useMemo(()=>b.routeToResourceMap[J.pathname]||null,[J.pathname]);l.useEffect(()=>{G&&ie(G)},[G]);const xe=l.useCallback((e=!1)=>{let l=le;if(he(l))de("Invalid filter");else if(e)l=Q,re(l);else{const e=l?g.generateQueryString(l):l;Y({filters:l,filterQueryString:e}),T()}},[le,W,T]),fe=e=>{e?(se(e),re(e.query),U&&U(e)):(se(null),re(Q),U&&U(null))},pe=e=>{const l=null==G?void 0:G.filter(l=>l.name.toLowerCase().includes(e.toLowerCase()));l&&ie(l)};l.useEffect(()=>{let e=Q;L.default.isEmpty(Z.filters)||(e=Z.filters),re(e);const l=null==G?void 0:G.find(e=>{var l;return e.name===(null==(l=null==Z?void 0:Z.filters)?void 0:l.name)});se(l||null)},[null==Z?void 0:Z.filters,G]);const he=e=>{var l,r;let t=[];return null==(l=null==e?void 0:e.rules)||l.forEach(l=>{if(t.includes(l.field)&&"and"==e.combinator)return!0;t.push(l.field)}),t.length!==(null==(r=null==e?void 0:e.rules)?void 0:r.length)},je=e=>Array.isArray(e.rules)?e.rules.length?e.rules.some(je):!e.rules.length:!e.field||L.default.isEmpty(e.value)&&!["null","notNull"].includes(e.operator),ve=l.useMemo(()=>je(le)||ue,[le,ue]);/* @__PURE__ */
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),l=require("react"),r=require("react-querybuilder"),t=;/* empty css */;/* empty css */var i=,/* empty css */n=,/* empty css */s=,/* empty css */a=,/* empty css */o=,/* empty css */u=,/* empty css */d=,/* empty css */c=,/* empty css */m=,/* empty css */f=,/* empty css */x=,/* empty css */p=,/* empty css */h=,/* empty css */j=,/* empty css */v=,/* empty css */g=,/* empty css */q=,/* empty css */y=require("lodash"),S=,/* empty css */b=,/* empty css */C=require("react-router-dom"),k=,/* empty css */F=,/* empty css */A=,/* empty css */_=,/* empty css */B=,/* empty css */I=,/* empty css */N=,/* empty css */E=,/* empty css */w=,/* empty css */D=,/* empty css */R=,/* empty css */z=,/* empty css */M=,/* empty css */P=;/* empty css */function T(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var L=/* @__PURE__ */T(y);j.setBaseUrl("https://apidev.erpforce.co/system-feature");const Q={combinator:"and",rules:[]},G=({open:y,onClose:T,savedFilters:G,fetchSavedFilters:O,onSaveFilter:V,onSelectedFilter:U,applyFilter:W,fields:K=[],isUseFields:H=!1})=>{const J=C.useLocation(),X=localStorage.getItem(v.auth.storageTokenKeyName),{updatePageInfo:Y,activePage:Z,schemaFields:$,setActivePage:ee}=q.usePages();K=H?g.generateFields(K):$.length?g.generateFields($):K;const[le,re]=l.useState(Q),[te,ie]=l.useState(G??[]),[ne,se]=l.useState(null),[ae,oe]=l.useState(null),[ue,de]=l.useState(null),{isRtl:ce}=k.useLanguage(),me=l.useMemo(()=>b.routeToResourceMap[J.pathname]||null,[J.pathname]);l.useEffect(()=>{G&&ie(G)},[G]);const fe=l.useCallback((e=!1)=>{let l=le;if(he(l))de("Invalid filter");else if(e)l=Q,re(l);else{const e=l?g.generateQueryString(l):l;Y({filters:l,filterQueryString:e}),T()}},[le,W,T]),xe=e=>{e?(se(e),re(e.query),U&&U(e)):(se(null),re(Q),U&&U(null))},pe=e=>{const l=null==G?void 0:G.filter(l=>l.name.toLowerCase().includes(e.toLowerCase()));l&&ie(l)};l.useEffect(()=>{let e=Q;L.default.isEmpty(Z.filters)||(e=Z.filters),re(e);const l=null==G?void 0:G.find(e=>{var l;return e.name===(null==(l=null==Z?void 0:Z.filters)?void 0:l.name)});se(l||null)},[null==Z?void 0:Z.filters,G]);const he=e=>{var l,r;let t=[];return null==(l=null==e?void 0:e.rules)||l.forEach(l=>{if(t.includes(l.field)&&"and"==e.combinator)return!0;t.push(l.field)}),t.length!==(null==(r=null==e?void 0:e.rules)?void 0:r.length)},je=e=>Array.isArray(e.rules)?e.rules.length?e.rules.some(je):!e.rules.length:!e.field||L.default.isEmpty(e.value)&&!["null","notNull"].includes(e.operator),ve=l.useMemo(()=>je(le)||ue,[le,ue]);/* @__PURE__ */
2
2
  return e.jsx("div",{children:/* @__PURE__ */e.jsxs(F.default,{open:y,onClose:T,maxWidth:"md",fullWidth:!0,PaperProps:{sx:{borderRadius:2}},children:[
3
3
  /* @__PURE__ */e.jsxs(A.default,{className:"filter-header",children:[
4
4
  /* @__PURE__ */e.jsx(n.Typography,{type:"s3",weight:"medium",color:"theme.secondary.1000",children:"Filters"}),
5
5
  /* @__PURE__ */e.jsxs(_.default,{gap:1,display:"flex",children:[
6
- /* @__PURE__ */e.jsxs(i.Select,{fullWidth:!0,size:"small",className:"filter-dropdown",value:ne?ne.name:"Saved Filters",onChange:e=>{const l=null==G?void 0:G.find(l=>l.name==e.target.value);fe(l)},variant:"outlined",onClose:()=>{setTimeout(()=>{pe("")},500)},input:ne?/* @__PURE__ */e.jsx(w.default,{label:"",endAdornment:/* @__PURE__ */e.jsx(D.default,{position:"end",children:/* @__PURE__ */e.jsx(I.default,{"aria-label":"clear selection",onClick:()=>{fe()},edge:"end",sx:{mr:1.5},size:"small",children:/* @__PURE__ */e.jsx(R.default,{sx:{fontSize:"1rem"}})})})}):void 0,children:[
6
+ /* @__PURE__ */e.jsxs(i.Select,{fullWidth:!0,size:"small",className:"filter-dropdown",value:ne?ne.name:"Saved Filters",onChange:e=>{const l=null==G?void 0:G.find(l=>l.name==e.target.value);xe(l)},variant:"outlined",onClose:()=>{setTimeout(()=>{pe("")},500)},input:ne?/* @__PURE__ */e.jsx(w.default,{label:"",endAdornment:/* @__PURE__ */e.jsx(D.default,{position:"end",children:/* @__PURE__ */e.jsx(I.default,{"aria-label":"clear selection",onClick:()=>{xe()},edge:"end",sx:{mr:1.5},size:"small",children:/* @__PURE__ */e.jsx(R.default,{sx:{fontSize:"1rem"}})})})}):void 0,children:[
7
7
  /* @__PURE__ */e.jsx("div",{className:"searchbar-box-list",children:/* @__PURE__ */e.jsx(p.SearchBar,{placeholder:"Search Filters",handleSearch:e=>pe(e)})}),null==te?void 0:te.map(l=>/* @__PURE__ */e.jsxs(B.default,{value:null==l?void 0:l.name,className:"menu-list",selected:(null==ne?void 0:ne.name)==(null==l?void 0:l.name),children:[
8
8
  /* @__PURE__ */e.jsx(n.Typography,{color:"theme.secondary.1000",type:"s3",children:null==l?void 0:l.name}),
9
9
  /* @__PURE__ */e.jsxs("div",{className:"icon-list",children:[
@@ -13,10 +13,10 @@ return e.jsx("div",{children:/* @__PURE__ */e.jsxs(F.default,{open:y,onClose:T,m
13
13
  /* @__PURE__ */e.jsx(_.default,{children:/* @__PURE__ */e.jsx(I.default,{size:"small",onClick:T,children:/* @__PURE__ */e.jsx(R.default,{fontSize:"small"})})})]})]}),
14
14
  /* @__PURE__ */e.jsxs(z.default,{className:"content",children:[ue&&/* @__PURE__ */e.jsx(M.default,{severity:"error",sx:{px:1,pt:.5,mb:1},children:/* @__PURE__ */e.jsx(n.Typography,{color:"error",type:"s4",children:ue})}),
15
15
  /* @__PURE__ */e.jsxs(t.QueryBuilderMaterial,{children:[
16
- /* @__PURE__ */e.jsx(r.QueryBuilder,{fields:K||[],query:le,onQueryChange:e=>{const l=e.rules.map((e,l)=>{var r,t;return{...e,value:e.field!==(null==(t=null==(r=le.rules)?void 0:r[l])?void 0:t.field)||["null","notNull"].includes(e.operator)?"":e.value}});re({...e,rules:l}),de(null),V&&V(e)},showCombinatorsBetweenRules:!0,controlClassnames:{header:"actions"},controlElements:{addRuleAction:u.AddFilterButton,addGroupAction:d.AddGroupButton,combinatorSelector:s.CombinatorSelect,fieldSelector:o.FieldSelect,operatorSelector:m.OperatorSelect,removeRuleAction:a.RemoveAction,valueEditor:c.ValueEditor,removeGroupAction:f.RemoveGroupAction}}),
17
- /* @__PURE__ */e.jsx(x.Button,{variant:"text",className:ce?"remove-filters_rtl":"remove-filters",onClick:()=>{xe(!0)},disabled:ve,children:"Clear all filters"})]})]}),
18
- /* @__PURE__ */e.jsx(P.default,{className:"filter-footer",children:/* @__PURE__ */e.jsxs(_.default,{sx:{display:"flex",alignItems:"center",justifyContent:ne?"space-between":"flex-end",width:"100%"},children:[ne&&/* @__PURE__ */e.jsx(_.default,{children:/* @__PURE__ */e.jsx(x.Button,{onClick:async()=>{if(ne){const e={"x-token":X,id:ne.id,data:le};j.putV1FilterId(e).then(e=>{O&&O(),ee(e=>({...e,filters:{...e.filters,rules:le.rules,combinator:le.combinator,name:ne.name}}))}).catch(e=>S.enqueueSnackbar("Error renaming saved filters:",{variant:"error"}))}},children:"Update Seleted filter"})}),
16
+ /* @__PURE__ */e.jsx(r.QueryBuilder,{fields:K||[],query:le,onQueryChange:e=>{const l=e.rules.map((e,l)=>{var r,t;return{...e,value:e.field!==(null==(t=null==(r=le.rules)?void 0:r[l])?void 0:t.field)||["null","notNull"].includes(e.operator)?"":e.value}});re({...e,rules:l}),de(null),V&&V(e)},showCombinatorsBetweenRules:!0,controlClassnames:{header:"actions"},controlElements:{addRuleAction:u.AddFilterButton,addGroupAction:d.AddGroupButton,combinatorSelector:s.CombinatorSelect,fieldSelector:o.FieldSelect,operatorSelector:m.OperatorSelect,removeRuleAction:a.RemoveAction,valueEditor:c.ValueEditor,removeGroupAction:x.RemoveGroupAction}}),
17
+ /* @__PURE__ */e.jsx(f.Button,{variant:"text",className:ce?"remove-filters_rtl":"remove-filters",onClick:()=>{fe(!0)},disabled:ve,children:"Clear all filters"})]})]}),
18
+ /* @__PURE__ */e.jsx(P.default,{className:"filter-footer",children:/* @__PURE__ */e.jsxs(_.default,{sx:{display:"flex",alignItems:"center",justifyContent:ne?"space-between":"flex-end",width:"100%"},children:[ne&&/* @__PURE__ */e.jsx(_.default,{children:/* @__PURE__ */e.jsx(f.Button,{onClick:async()=>{if(ne){const e={"x-token":X,id:ne.id,data:le};j.putV1FilterId(e).then(e=>{O&&O(),ee(e=>({...e,filters:{...e.filters,rules:le.rules,combinator:le.combinator,name:ne.name}}))}).catch(e=>S.enqueueSnackbar("Error renaming saved filters:",{variant:"error"}))}},children:"Update Seleted filter"})}),
19
19
  /* @__PURE__ */e.jsxs(_.default,{sx:{display:"flex",gap:1},children:[
20
- /* @__PURE__ */e.jsx(x.Button,{className:"cancel-filter-btn",onClick:T,children:"Cancel"}),
21
- /* @__PURE__ */e.jsx(x.Button,{disabled:ve,onClick:()=>xe(),children:"Apply"})]})]})})]})})};exports.Filter=G,exports.default=G;
20
+ /* @__PURE__ */e.jsx(f.Button,{className:"cancel-filter-btn",onClick:T,children:"Cancel"}),
21
+ /* @__PURE__ */e.jsx(f.Button,{disabled:ve,onClick:()=>fe(),children:"Apply"})]})]})})]})})};exports.Filter=G,exports.default=G;
22
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/filter/filter.tsx"],"sourcesContent":["/* eslint-disable */\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport type { RuleGroupType } from \"react-querybuilder\";\nimport \"react-querybuilder/dist/query-builder.scss\";\nimport { QueryBuilder /* , formatQuery */ } from \"react-querybuilder\";\nimport { QueryBuilderMaterial } from \"@react-querybuilder/material\";\nimport {\n Box,\n IconButton,\n MenuItem,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n OutlinedInput,\n InputAdornment,\n Alert,\n} from \"@mui/material\";\nimport \"./filter.scss\";\nimport Select from \"../select/select\";\nimport Typography from \"../typography/typography\";\nimport { Close } from \"@mui/icons-material\";\nimport CombinatorSelect from \"./components/combinator-select\";\nimport RemoveAction from \"./components/remove-action\";\nimport FieldSelect from \"./components/field-select\";\nimport AddFilterButton from \"./components/add-filter\";\nimport AddGroupButton from \"./components/add-group\";\nimport ValueEditor from \"./components/value-editor\";\nimport OperatorSelect from \"./components/operator-select\";\nimport Button from \"../button/button\";\nimport RemoveGroupAction from \"./components/delete-group\";\nimport SearchBar from \"../search-bar/search-bar\";\nimport SaveFilterModal from \"../save-filter-modal/save-filter-modal\";\n\nimport {\n setBaseUrl,\n putV1FilterId,\n deleteV1FilterId,\n} from \"../../api-client/api.system-feature/api\";\nimport type * as Types from \"../../api-client/api.system-feature/api-types\";\nimport { auth } from \"../../constants/auth\";\nimport { generateFields, generateQueryString, getErrorMessage } from \"../../utils/common\";\nimport { usePages } from \"../../hooks/use-pages\";\nimport _ from \"lodash\";\nimport { Edit, Trash } from \"../icons\";\nimport { enqueueSnackbar } from \"notistack\";\nimport { IResources, routeToResourceMap } from \"../../constants/route-page-map\";\nimport { useLocation } from \"react-router-dom\";\nimport { useLanguage } from \"../../hooks/useLangauge\";\n\nsetBaseUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/system-feature`);\n\ninterface IFilter {\n open: boolean;\n onClose: () => void;\n activeView?: string;\n savedFilters?: SavedFilter[];\n fetchSavedFilters?: () => Promise<void>;\n setFilterBar?: any;\n onSaveFilter?: (query: RuleGroupType) => void;\n onSelectedFilter?: (filterName: string) => void;\n fields: any;\n applyFilter: any;\n isUseFields?: boolean;\n}\n\ninterface SavedFilter {\n id: string;\n name: string;\n query: RuleGroupType;\n}\n\nconst initialQuery: RuleGroupType = { combinator: \"and\", rules: [] };\n\nconst Filter = ({\n open,\n onClose,\n // activeView,\n savedFilters,\n fetchSavedFilters,\n onSaveFilter,\n onSelectedFilter,\n applyFilter,\n fields = [],\n isUseFields = false\n}: IFilter) => {\n const location = useLocation();\n\n const token = localStorage.getItem(auth.storageTokenKeyName);\n const { updatePageInfo, activePage, schemaFields, setActivePage } = usePages()\n\n fields = isUseFields ? generateFields(fields) : (schemaFields.length ? generateFields(schemaFields) : fields)\n const [query, setQuery] = useState<RuleGroupType>(initialQuery);\n const [filteredSavedFilters, setFilteredSavedFilters] = useState<\n SavedFilter[]\n >(savedFilters ?? []);\n const [selectedFilter, setSelectedFilter] = useState<any>(null);\n const [openRenameFilter, setIsOpenRenameFilter] = useState<any>(null);\n const [errorMessage, setErrorMessage] = useState<string | null>(null);\n const { isRtl } = useLanguage();\n const resources: IResources = useMemo(() => routeToResourceMap[location.pathname] || null, [location.pathname])\n\n useEffect(() => {\n savedFilters && setFilteredSavedFilters(savedFilters);\n }, [savedFilters]);\n\n\n const handleApplyFilter = useCallback((clear: boolean = false) => {\n let q = query\n const isInvalid = isDuplicatedFilters(q)\n if (isInvalid) {\n setErrorMessage(\"Invalid filter\")\n return\n }\n if (clear) {\n q = initialQuery\n setQuery(q)\n } else {\n const generatedSQLQuery = q ? generateQueryString(q) : q;\n updatePageInfo({ filters: q, filterQueryString: generatedSQLQuery })\n // applyFilter(generatedSQLQuery);\n onClose();\n }\n }, [query, applyFilter, onClose]);\n\n const handleQueryChange = (q: RuleGroupType) => {\n const updatedRules = q.rules.map((rule, i) => ({\n ...rule,\n value: rule.field !== query.rules?.[i]?.field || ['null', 'notNull'].includes(rule.operator) ? \"\" : rule.value\n }));\n let isValid = true;\n let errorMessage = '';\n\n // // Helper function to check for invalid aggregate usage, considering parent combinators\n // const checkForInvalidAggregateUsage = (rules: any[], combinator: string, parentCombinator: string | null): boolean => {\n // let hasAggregateField = false;\n // let hasNonAggregateField = false;\n\n // rules.forEach(rule => {\n // // Check nested groups\n // if (rule.rules) {\n // // If the current group or any parent has an 'OR', pass it down\n // const currentCombinator = combinator === 'or' || parentCombinator === 'or' ? 'or' : combinator;\n // checkForInvalidAggregateUsage(rule.rules, rule.combinator, currentCombinator);\n // } else {\n // // Find the field in the fields array and check if it's an aggregate\n // const field = fields.find((f: any) => f.name === rule.field);\n\n // if (field?.is_aggregate) {\n // hasAggregateField = true;\n // } else {\n // hasNonAggregateField = true;\n // }\n // }\n // });\n\n // // If any parent or current rule uses 'OR' with a mix of aggregate and non-aggregate fields, it's invalid\n // if ((combinator === 'or' || parentCombinator === 'or') && hasAggregateField && hasNonAggregateField) {\n // isValid = false;\n // errorMessage = 'Mixing aggregate and non-aggregate fields in OR conditions may lead to unexpected results.';\n // }\n\n // return isValid;\n // };\n\n // Start checking from the root level (no parent combinator initially)\n\n\n // Always set the query, regardless of validity\n setQuery({ ...q, rules: updatedRules });\n\n // Set error message if invalid, otherwise clear it\n if (!isValid) {\n setErrorMessage(errorMessage);\n } else {\n setErrorMessage(null);\n }\n\n // Always call onSaveFilter, if it exists\n if (onSaveFilter) {\n onSaveFilter(q);\n }\n };\n\n const handleFilterSwitch = (sf?: any) => {\n if (sf) {\n setSelectedFilter(sf);\n setQuery(sf.query);\n if (onSelectedFilter) {\n onSelectedFilter(sf);\n }\n } else {\n setSelectedFilter(null);\n setQuery(initialQuery);\n if (onSelectedFilter) {\n onSelectedFilter(null);\n }\n }\n };\n\n const handleSearchEvent = (searchText: string) => {\n const filteredFilters = savedFilters?.filter((filter: any) =>\n filter.name.toLowerCase().includes(searchText.toLowerCase())\n );\n if (filteredFilters) {\n setFilteredSavedFilters(filteredFilters);\n }\n };\n\n const handleRenameFilter = async (filterId: string, newName: string) => {\n const putFilterRequest: Types.PutV1FilterIdRequest = {\n \"x-token\": token,\n id: filterId,\n name: newName,\n module: resources?.fieldResource || resources?.pageResource\n };\n\n try {\n await putV1FilterId(putFilterRequest)\n // setSelectedFilter(newName);\n if (fetchSavedFilters) {\n fetchSavedFilters();\n }\n enqueueSnackbar('Filters renamed successfully.')\n } catch (error) {\n let m: string = 'Something went wrong on saving filters'\n if (error instanceof Error) {\n m = getErrorMessage(error.message)\n }\n enqueueSnackbar(m, { variant: 'error' })\n return false\n }\n return true\n };\n const handleUpdateSelectedFilterQuery = async () => {\n if (selectedFilter) {\n\n const putFilterRequest: Types.PutV1FilterIdRequest = {\n \"x-token\": token,\n id: selectedFilter.id,\n data: query,\n };\n\n putV1FilterId(putFilterRequest)\n .then((response: any) => {\n if (fetchSavedFilters) {\n fetchSavedFilters();\n }\n setActivePage((prev: any) => ({\n ...prev,\n filters: {\n ...prev.filters,\n rules: query.rules,\n combinator: query.combinator,\n name: selectedFilter.name\n\n }\n }));\n })\n .catch((err: any) => enqueueSnackbar(\"Error renaming saved filters:\", { variant: 'error' }));\n }\n };\n\n const handleSubmitRename = (name: string) => {\n if (openRenameFilter) {\n return handleRenameFilter(openRenameFilter.id, name);\n }\n };\n\n const handleDeleteFilter = async (filterId: string) => {\n const deleteFilterRequest: Types.DeleteV1FilterIdRequest = {\n \"x-token\": token,\n id: filterId,\n };\n\n deleteV1FilterId(deleteFilterRequest)\n .then((response: any) => {\n setSelectedFilter(null);\n setQuery(initialQuery);\n if (fetchSavedFilters) {\n fetchSavedFilters();\n }\n\n })\n .catch((err: any) => console.log(\"Error deleting saved filters:\", err));\n };\n\n useEffect(() => {\n let q = initialQuery\n if (!_.isEmpty(activePage.filters)) {\n q = activePage.filters\n }\n setQuery(q)\n const selectedFilter = savedFilters?.find((f: any) => f.name === activePage?.filters?.name);\n setSelectedFilter(selectedFilter || null);\n }, [activePage?.filters, savedFilters]);\n\n const isDuplicatedFilters = (rule) => {\n let uniques: string[] = []\n rule?.rules?.forEach((r: any) => {\n if (uniques.includes(r.field) && rule.combinator == 'and') {\n return true\n }\n uniques.push(r.field)\n })\n return uniques.length !== rule?.rules?.length\n }\n\n\n const isRuleInvalid = (rule: any): boolean => {\n // If it's a group (has nested rules), recurse\n if (Array.isArray(rule.rules)) {\n return rule.rules.length ? rule.rules.some(isRuleInvalid) : !rule.rules.length;\n }\n\n // Otherwise, validate individual rule\n return (\n !rule.field ||\n (_.isEmpty(rule.value) && !['null', 'notNull'].includes(rule.operator))\n );\n };\n\n const disabled = useMemo(() => isRuleInvalid(query) || errorMessage, [query, errorMessage])\n // const disabled = isRuleInvalid(query) || errorMessage;\n\n return (\n <div>\n <Dialog\n open={open}\n onClose={onClose}\n maxWidth='md'\n fullWidth={true}\n PaperProps={{\n sx: { borderRadius: 2 }\n }}\n >\n <DialogTitle className=\"filter-header\">\n <Typography type=\"s3\" weight=\"medium\" color=\"theme.secondary.1000\">\n Filters\n </Typography>\n <Box gap={1} display={\"flex\"}>\n <Select\n fullWidth\n size=\"small\"\n className=\"filter-dropdown\"\n value={selectedFilter ? selectedFilter.name : \"Saved Filters\"}\n onChange={(event: any) => {\n const sf = savedFilters?.find(f => f.name == event.target.value)\n handleFilterSwitch(sf)\n }}\n variant=\"outlined\"\n onClose={() => {\n setTimeout(() => {\n handleSearchEvent(\"\")\n }, 500);\n }}\n input={\n selectedFilter ? (\n <OutlinedInput\n label=''\n endAdornment={\n <InputAdornment position='end'>\n <IconButton\n aria-label='clear selection'\n onClick={() => {\n handleFilterSwitch()\n }}\n edge='end'\n sx={{ mr: 1.5 }}\n size='small'>\n <Close sx={{ fontSize: '1rem' }} />\n </IconButton>\n </InputAdornment>\n }\n />\n ) : undefined\n }\n >\n <div className=\"searchbar-box-list\">\n <SearchBar\n placeholder={\"Search Filters\"}\n handleSearch={(e) => handleSearchEvent(e)}\n />\n </div>\n {/* <Typography\n color=\"theme.secondary.1000\"\n type=\"s4\"\n className=\"filter-title\"\n >\n Saved Filters\n </Typography> */}\n {filteredSavedFilters?.map((savedFilter: SavedFilter) => (\n <MenuItem\n key={savedFilter.id}\n value={savedFilter?.name}\n className=\"menu-list\"\n selected={selectedFilter?.name == savedFilter?.name}\n >\n <Typography color=\"theme.secondary.1000\" type=\"s3\">\n {savedFilter?.name}\n </Typography>\n\n <div className=\"icon-list\">\n <IconButton size=\"small\" onClick={(e) => {\n e.preventDefault()\n e.stopPropagation()\n setIsOpenRenameFilter(savedFilter)\n }}>\n <Edit fontSize=\"small\" color={selectedFilter?.name == savedFilter?.name ? \"theme.primary.800\" : 'inherit'} />\n </IconButton>\n <IconButton size=\"small\" onClick={(e) => {\n e.preventDefault()\n e.stopPropagation()\n handleDeleteFilter(savedFilter.id)\n }} color=\"error\">\n <Trash fontSize=\"small\" color=\"theme.error.600\" />\n </IconButton>\n </div>\n </MenuItem>\n ))}\n </Select>\n <SaveFilterModal\n open={openRenameFilter !== null}\n onClose={() => setIsOpenRenameFilter(null)}\n handleSubmit={(name) => handleSubmitRename(name)}\n oldName={openRenameFilter?.name}\n />\n <Box>\n <IconButton size=\"small\" onClick={onClose}>\n <Close fontSize=\"small\" />\n </IconButton>\n </Box>\n </Box>\n </DialogTitle>\n <DialogContent className=\"content\">\n {/* Display error message */}\n {errorMessage && (\n <Alert severity=\"error\" sx={{ px: 1, pt: 0.5, mb: 1 }}>\n <Typography\n color=\"error\"\n type=\"s4\"\n >\n {errorMessage}\n </Typography>\n </Alert>\n )}\n <QueryBuilderMaterial>\n <QueryBuilder\n fields={fields || []}\n query={query}\n onQueryChange={handleQueryChange}\n showCombinatorsBetweenRules={true}\n controlClassnames={{\n header: \"actions\",\n }}\n controlElements={{\n addRuleAction: AddFilterButton,\n addGroupAction: AddGroupButton,\n combinatorSelector: CombinatorSelect,\n fieldSelector: FieldSelect,\n operatorSelector: OperatorSelect,\n removeRuleAction: RemoveAction,\n valueEditor: ValueEditor,\n removeGroupAction: RemoveGroupAction,\n }}\n />\n <Button\n variant=\"text\"\n className={isRtl ? 'remove-filters_rtl' : 'remove-filters'}\n onClick={() => {\n handleApplyFilter(true)\n }}\n disabled={disabled}\n >\n Clear all filters\n </Button>\n </QueryBuilderMaterial>\n </DialogContent>\n <DialogActions className=\"filter-footer\">\n <Box sx={{ display: 'flex', alignItems: 'center', justifyContent: selectedFilter ? 'space-between' : 'flex-end', width: '100%' }}>\n {selectedFilter &&\n <Box>\n <Button onClick={handleUpdateSelectedFilterQuery}>\n Update Seleted filter\n </Button>\n </Box>\n }\n <Box sx={{ display: 'flex', gap: 1 }}>\n <Button className=\"cancel-filter-btn\" onClick={onClose}>\n Cancel\n </Button>\n <Button\n disabled={disabled}\n onClick={() => handleApplyFilter()}\n >\n Apply\n </Button>\n </Box>\n </Box>\n </DialogActions>\n </Dialog>\n </div>\n );\n};\n\nexport { Filter };\nexport default Filter;\n"],"names":["setBaseUrl","initialQuery","combinator","rules","Filter","open","onClose","savedFilters","fetchSavedFilters","onSaveFilter","onSelectedFilter","applyFilter","fields","isUseFields","location","useLocation","token","localStorage","getItem","auth","storageTokenKeyName","updatePageInfo","activePage","schemaFields","setActivePage","usePages","generateFields","length","query","setQuery","useState","filteredSavedFilters","setFilteredSavedFilters","selectedFilter","setSelectedFilter","openRenameFilter","setIsOpenRenameFilter","errorMessage","setErrorMessage","isRtl","useLanguage","resources","useMemo","routeToResourceMap","pathname","useEffect","handleApplyFilter","useCallback","clear","q","isDuplicatedFilters","generatedSQLQuery","generateQueryString","filters","filterQueryString","handleFilterSwitch","sf","handleSearchEvent","searchText","filteredFilters","filter","name","toLowerCase","includes","_","isEmpty","find","f","_a","rule","uniques","forEach","r","field","push","_b","isRuleInvalid","Array","isArray","some","value","operator","disabled","children","jsxs","Dialog","maxWidth","fullWidth","PaperProps","sx","borderRadius","DialogTitle","className","jsx","Typography","type","weight","color","Box","gap","display","Select","size","onChange","event","target","variant","setTimeout","input","OutlinedInput","label","endAdornment","InputAdornment","position","IconButton","onClick","edge","mr","Close","fontSize","SearchBar","placeholder","handleSearch","e","map","savedFilter","MenuItem","selected","preventDefault","stopPropagation","Edit","async","filterId","deleteFilterRequest","id","deleteV1FilterId","then","response","catch","err","handleDeleteFilter","Trash","SaveFilterModal","handleSubmit","newName","putFilterRequest","module","fieldResource","pageResource","putV1FilterId","enqueueSnackbar","error","m","Error","getErrorMessage","message","handleRenameFilter","handleSubmitRename","oldName","DialogContent","Alert","severity","px","pt","mb","QueryBuilderMaterial","QueryBuilder","onQueryChange","updatedRules","i","showCombinatorsBetweenRules","controlClassnames","header","controlElements","addRuleAction","AddFilterButton","addGroupAction","AddGroupButton","combinatorSelector","CombinatorSelect","fieldSelector","FieldSelect","operatorSelector","OperatorSelect","removeRuleAction","RemoveAction","valueEditor","ValueEditor","removeGroupAction","RemoveGroupAction","Button","DialogActions","alignItems","justifyContent","width","data","prev"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/filter/filter.tsx"],"sourcesContent":["/* eslint-disable */\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport type { RuleGroupType } from \"react-querybuilder\";\nimport \"react-querybuilder/dist/query-builder.scss\";\nimport { QueryBuilder /* , formatQuery */ } from \"react-querybuilder\";\nimport { QueryBuilderMaterial } from \"@react-querybuilder/material\";\nimport {\n Box,\n IconButton,\n MenuItem,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n OutlinedInput,\n InputAdornment,\n Alert,\n} from \"@mui/material\";\nimport \"./filter.scss\";\nimport Select from \"../select/select\";\nimport Typography from \"../typography/typography\";\nimport { Close } from \"@mui/icons-material\";\nimport CombinatorSelect from \"./components/combinator-select\";\nimport RemoveAction from \"./components/remove-action\";\nimport FieldSelect from \"./components/field-select\";\nimport AddFilterButton from \"./components/add-filter\";\nimport AddGroupButton from \"./components/add-group\";\nimport ValueEditor from \"./components/value-editor\";\nimport OperatorSelect from \"./components/operator-select\";\nimport Button from \"../button/button\";\nimport RemoveGroupAction from \"./components/delete-group\";\nimport SearchBar from \"../search-bar/search-bar\";\nimport SaveFilterModal from \"../save-filter-modal/save-filter-modal\";\n\nimport {\n setBaseUrl,\n putV1FilterId,\n deleteV1FilterId,\n} from \"../../api-client/api.system-feature/api\";\nimport type * as Types from \"../../api-client/api.system-feature/api-types\";\nimport { auth } from \"../../constants/auth\";\nimport { generateFields, generateQueryString, getErrorMessage } from \"../../utils/common\";\nimport { usePages } from \"../../hooks/use-pages\";\nimport _ from \"lodash\";\nimport { Edit, Trash } from \"../icons\";\nimport { enqueueSnackbar } from \"notistack\";\nimport { IResources, routeToResourceMap } from \"../../constants/route-page-map\";\nimport { useLocation } from \"react-router-dom\";\nimport { useLanguage } from \"../../hooks/useLangauge\";\n\nsetBaseUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/system-feature`);\n\ninterface IFilter {\n open: boolean;\n onClose: () => void;\n activeView?: string;\n savedFilters?: SavedFilter[];\n fetchSavedFilters?: () => Promise<void>;\n setFilterBar?: any;\n onSaveFilter?: (query: RuleGroupType) => void;\n onSelectedFilter?: (filterName: string) => void;\n fields: any;\n applyFilter: any;\n isUseFields?: boolean;\n}\n\ninterface SavedFilter {\n id: string;\n name: string;\n query: RuleGroupType;\n}\n\nconst initialQuery: RuleGroupType = { combinator: \"and\", rules: [] };\n\nconst Filter = ({\n open,\n onClose,\n // activeView,\n savedFilters,\n fetchSavedFilters,\n onSaveFilter,\n onSelectedFilter,\n applyFilter,\n fields = [],\n isUseFields = false\n}: IFilter) => {\n const location = useLocation();\n\n const token = localStorage.getItem(auth.storageTokenKeyName);\n const { updatePageInfo, activePage, schemaFields, setActivePage } = usePages()\n\n fields = isUseFields ? generateFields(fields) : (schemaFields.length ? generateFields(schemaFields) : fields)\n const [query, setQuery] = useState<RuleGroupType>(initialQuery);\n const [filteredSavedFilters, setFilteredSavedFilters] = useState<\n SavedFilter[]\n >(savedFilters ?? []);\n const [selectedFilter, setSelectedFilter] = useState<any>(null);\n const [openRenameFilter, setIsOpenRenameFilter] = useState<any>(null);\n const [errorMessage, setErrorMessage] = useState<string | null>(null);\n const { isRtl } = useLanguage();\n const resources: IResources = useMemo(() => routeToResourceMap[location.pathname] || null, [location.pathname])\n\n useEffect(() => {\n savedFilters && setFilteredSavedFilters(savedFilters);\n }, [savedFilters]);\n\n\n const handleApplyFilter = useCallback((clear: boolean = false) => {\n let q = query\n const isInvalid = isDuplicatedFilters(q)\n if (isInvalid) {\n setErrorMessage(\"Invalid filter\")\n return\n }\n if (clear) {\n q = initialQuery\n setQuery(q)\n } else {\n const generatedSQLQuery = q ? generateQueryString(q) : q;\n updatePageInfo({ filters: q, filterQueryString: generatedSQLQuery })\n // applyFilter(generatedSQLQuery);\n onClose();\n }\n }, [query, applyFilter, onClose]);\n\n const handleQueryChange = (q: RuleGroupType) => {\n const updatedRules = q.rules.map((rule, i) => ({\n ...rule,\n value: rule.field !== query.rules?.[i]?.field || ['null', 'notNull'].includes(rule.operator) ? \"\" : rule.value\n }));\n let isValid = true;\n let errorMessage = '';\n\n // // Helper function to check for invalid aggregate usage, considering parent combinators\n // const checkForInvalidAggregateUsage = (rules: any[], combinator: string, parentCombinator: string | null): boolean => {\n // let hasAggregateField = false;\n // let hasNonAggregateField = false;\n\n // rules.forEach(rule => {\n // // Check nested groups\n // if (rule.rules) {\n // // If the current group or any parent has an 'OR', pass it down\n // const currentCombinator = combinator === 'or' || parentCombinator === 'or' ? 'or' : combinator;\n // checkForInvalidAggregateUsage(rule.rules, rule.combinator, currentCombinator);\n // } else {\n // // Find the field in the fields array and check if it's an aggregate\n // const field = fields.find((f: any) => f.name === rule.field);\n\n // if (field?.is_aggregate) {\n // hasAggregateField = true;\n // } else {\n // hasNonAggregateField = true;\n // }\n // }\n // });\n\n // // If any parent or current rule uses 'OR' with a mix of aggregate and non-aggregate fields, it's invalid\n // if ((combinator === 'or' || parentCombinator === 'or') && hasAggregateField && hasNonAggregateField) {\n // isValid = false;\n // errorMessage = 'Mixing aggregate and non-aggregate fields in OR conditions may lead to unexpected results.';\n // }\n\n // return isValid;\n // };\n\n // Start checking from the root level (no parent combinator initially)\n\n\n // Always set the query, regardless of validity\n setQuery({ ...q, rules: updatedRules });\n\n // Set error message if invalid, otherwise clear it\n if (!isValid) {\n setErrorMessage(errorMessage);\n } else {\n setErrorMessage(null);\n }\n\n // Always call onSaveFilter, if it exists\n if (onSaveFilter) {\n onSaveFilter(q);\n }\n };\n\n const handleFilterSwitch = (sf?: any) => {\n if (sf) {\n setSelectedFilter(sf);\n setQuery(sf.query);\n if (onSelectedFilter) {\n onSelectedFilter(sf);\n }\n } else {\n setSelectedFilter(null);\n setQuery(initialQuery);\n if (onSelectedFilter) {\n onSelectedFilter(null);\n }\n }\n };\n\n const handleSearchEvent = (searchText: string) => {\n const filteredFilters = savedFilters?.filter((filter: any) =>\n filter.name.toLowerCase().includes(searchText.toLowerCase())\n );\n if (filteredFilters) {\n setFilteredSavedFilters(filteredFilters);\n }\n };\n\n const handleRenameFilter = async (filterId: string, newName: string) => {\n const putFilterRequest: Types.PutV1FilterIdRequest = {\n \"x-token\": token,\n id: filterId,\n name: newName,\n module: resources?.fieldResource || resources?.pageResource\n };\n\n try {\n await putV1FilterId(putFilterRequest)\n // setSelectedFilter(newName);\n if (fetchSavedFilters) {\n fetchSavedFilters();\n }\n enqueueSnackbar('Filters renamed successfully.')\n } catch (error) {\n let m: string = 'Something went wrong on saving filters'\n if (error instanceof Error) {\n m = getErrorMessage(error.message)\n }\n enqueueSnackbar(m, { variant: 'error' })\n return false\n }\n return true\n };\n const handleUpdateSelectedFilterQuery = async () => {\n if (selectedFilter) {\n\n const putFilterRequest: Types.PutV1FilterIdRequest = {\n \"x-token\": token,\n id: selectedFilter.id,\n data: query,\n };\n\n putV1FilterId(putFilterRequest)\n .then((response: any) => {\n if (fetchSavedFilters) {\n fetchSavedFilters();\n }\n setActivePage((prev: any) => ({\n ...prev,\n filters: {\n ...prev.filters,\n rules: query.rules,\n combinator: query.combinator,\n name: selectedFilter.name\n\n }\n }));\n })\n .catch((err: any) => enqueueSnackbar(\"Error renaming saved filters:\", { variant: 'error' }));\n }\n };\n\n const handleSubmitRename = (name: string) => {\n if (openRenameFilter) {\n return handleRenameFilter(openRenameFilter.id, name);\n }\n };\n\n const handleDeleteFilter = async (filterId: string) => {\n const deleteFilterRequest: Types.DeleteV1FilterIdRequest = {\n \"x-token\": token,\n id: filterId,\n };\n\n deleteV1FilterId(deleteFilterRequest)\n .then((response: any) => {\n setSelectedFilter(null);\n setQuery(initialQuery);\n if (fetchSavedFilters) {\n fetchSavedFilters();\n }\n\n })\n .catch((err: any) => console.log(\"Error deleting saved filters:\", err));\n };\n\n useEffect(() => {\n let q = initialQuery\n if (!_.isEmpty(activePage.filters)) {\n q = activePage.filters\n }\n setQuery(q)\n const selectedFilter = savedFilters?.find((f: any) => f.name === activePage?.filters?.name);\n setSelectedFilter(selectedFilter || null);\n }, [activePage?.filters, savedFilters]);\n\n const isDuplicatedFilters = (rule) => {\n let uniques: string[] = []\n rule?.rules?.forEach((r: any) => {\n if (uniques.includes(r.field) && rule.combinator == 'and') {\n return true\n }\n uniques.push(r.field)\n })\n return uniques.length !== rule?.rules?.length\n }\n\n\n const isRuleInvalid = (rule: any): boolean => {\n // If it's a group (has nested rules), recurse\n if (Array.isArray(rule.rules)) {\n return rule.rules.length ? rule.rules.some(isRuleInvalid) : !rule.rules.length;\n }\n\n // Otherwise, validate individual rule\n return (\n !rule.field ||\n (_.isEmpty(rule.value) && !['null', 'notNull'].includes(rule.operator))\n );\n };\n\n const disabled = useMemo(() => isRuleInvalid(query) || errorMessage, [query, errorMessage])\n // const disabled = isRuleInvalid(query) || errorMessage;\n\n return (\n <div>\n <Dialog\n open={open}\n onClose={onClose}\n maxWidth='md'\n fullWidth={true}\n PaperProps={{\n sx: { borderRadius: 2 }\n }}\n >\n <DialogTitle className=\"filter-header\">\n <Typography type=\"s3\" weight=\"medium\" color=\"theme.secondary.1000\">\n Filters\n </Typography>\n <Box gap={1} display={\"flex\"}>\n <Select\n fullWidth\n size=\"small\"\n className=\"filter-dropdown\"\n value={selectedFilter ? selectedFilter.name : \"Saved Filters\"}\n onChange={(event: any) => {\n const sf = savedFilters?.find(f => f.name == event.target.value)\n handleFilterSwitch(sf)\n }}\n variant=\"outlined\"\n onClose={() => {\n setTimeout(() => {\n handleSearchEvent(\"\")\n }, 500);\n }}\n input={\n selectedFilter ? (\n <OutlinedInput\n label=''\n endAdornment={\n <InputAdornment position='end'>\n <IconButton\n aria-label='clear selection'\n onClick={() => {\n handleFilterSwitch()\n }}\n edge='end'\n sx={{ mr: 1.5 }}\n size='small'>\n <Close sx={{ fontSize: '1rem' }} />\n </IconButton>\n </InputAdornment>\n }\n />\n ) : undefined\n }\n >\n <div className=\"searchbar-box-list\">\n <SearchBar\n placeholder={\"Search Filters\"}\n handleSearch={(e) => handleSearchEvent(e)}\n />\n </div>\n {/* <Typography\n color=\"theme.secondary.1000\"\n type=\"s4\"\n className=\"filter-title\"\n >\n Saved Filters\n </Typography> */}\n {filteredSavedFilters?.map((savedFilter: SavedFilter) => (\n <MenuItem\n key={savedFilter.id}\n value={savedFilter?.name}\n className=\"menu-list\"\n selected={selectedFilter?.name == savedFilter?.name}\n >\n <Typography color=\"theme.secondary.1000\" type=\"s3\">\n {savedFilter?.name}\n </Typography>\n\n <div className=\"icon-list\">\n <IconButton size=\"small\" onClick={(e) => {\n e.preventDefault()\n e.stopPropagation()\n setIsOpenRenameFilter(savedFilter)\n }}>\n <Edit fontSize=\"small\" color={selectedFilter?.name == savedFilter?.name ? \"theme.primary.800\" : 'inherit'} />\n </IconButton>\n <IconButton size=\"small\" onClick={(e) => {\n e.preventDefault()\n e.stopPropagation()\n handleDeleteFilter(savedFilter.id)\n }} color=\"error\">\n <Trash fontSize=\"small\" color=\"theme.error.600\" />\n </IconButton>\n </div>\n </MenuItem>\n ))}\n </Select>\n <SaveFilterModal\n open={openRenameFilter !== null}\n onClose={() => setIsOpenRenameFilter(null)}\n handleSubmit={(name) => handleSubmitRename(name)}\n oldName={openRenameFilter?.name}\n />\n <Box>\n <IconButton size=\"small\" onClick={onClose}>\n <Close fontSize=\"small\" />\n </IconButton>\n </Box>\n </Box>\n </DialogTitle>\n <DialogContent className=\"content\">\n {/* Display error message */}\n {errorMessage && (\n <Alert severity=\"error\" sx={{ px: 1, pt: 0.5, mb: 1 }}>\n <Typography\n color=\"error\"\n type=\"s4\"\n >\n {errorMessage}\n </Typography>\n </Alert>\n )}\n <QueryBuilderMaterial>\n <QueryBuilder\n fields={fields || []}\n query={query}\n onQueryChange={handleQueryChange}\n showCombinatorsBetweenRules={true}\n controlClassnames={{\n header: \"actions\",\n }}\n controlElements={{\n addRuleAction: AddFilterButton,\n addGroupAction: AddGroupButton,\n combinatorSelector: CombinatorSelect,\n fieldSelector: FieldSelect,\n operatorSelector: OperatorSelect,\n removeRuleAction: RemoveAction,\n valueEditor: ValueEditor,\n removeGroupAction: RemoveGroupAction,\n }}\n />\n <Button\n variant=\"text\"\n className={isRtl ? 'remove-filters_rtl' : 'remove-filters'}\n onClick={() => {\n handleApplyFilter(true)\n }}\n disabled={disabled}\n >\n Clear all filters\n </Button>\n </QueryBuilderMaterial>\n </DialogContent>\n <DialogActions className=\"filter-footer\">\n <Box sx={{ display: 'flex', alignItems: 'center', justifyContent: selectedFilter ? 'space-between' : 'flex-end', width: '100%' }}>\n {selectedFilter &&\n <Box>\n <Button onClick={handleUpdateSelectedFilterQuery}>\n Update Seleted filter\n </Button>\n </Box>\n }\n <Box sx={{ display: 'flex', gap: 1 }}>\n <Button className=\"cancel-filter-btn\" onClick={onClose}>\n Cancel\n </Button>\n <Button\n disabled={disabled}\n onClick={() => handleApplyFilter()}\n >\n Apply\n </Button>\n </Box>\n </Box>\n </DialogActions>\n </Dialog>\n </div>\n );\n};\n\nexport { Filter };\nexport default Filter;\n"],"names":["setBaseUrl","initialQuery","combinator","rules","Filter","open","onClose","savedFilters","fetchSavedFilters","onSaveFilter","onSelectedFilter","applyFilter","fields","isUseFields","location","useLocation","token","localStorage","getItem","auth","storageTokenKeyName","updatePageInfo","activePage","schemaFields","setActivePage","usePages","generateFields","length","query","setQuery","useState","filteredSavedFilters","setFilteredSavedFilters","selectedFilter","setSelectedFilter","openRenameFilter","setIsOpenRenameFilter","errorMessage","setErrorMessage","isRtl","useLanguage","resources","useMemo","routeToResourceMap","pathname","useEffect","handleApplyFilter","useCallback","clear","q","isDuplicatedFilters","generatedSQLQuery","generateQueryString","filters","filterQueryString","handleFilterSwitch","sf","handleSearchEvent","searchText","filteredFilters","filter","name","toLowerCase","includes","_","isEmpty","find","f","_a","rule","uniques","forEach","r","field","push","_b","isRuleInvalid","Array","isArray","some","value","operator","disabled","children","jsxs","Dialog","maxWidth","fullWidth","PaperProps","sx","borderRadius","DialogTitle","className","jsx","Typography","type","weight","color","Box","gap","display","Select","size","onChange","event","target","variant","setTimeout","input","OutlinedInput","label","endAdornment","InputAdornment","position","IconButton","onClick","edge","mr","Close","fontSize","SearchBar","placeholder","handleSearch","e","map","savedFilter","MenuItem","selected","preventDefault","stopPropagation","Edit","async","filterId","deleteFilterRequest","id","deleteV1FilterId","then","response","catch","err","handleDeleteFilter","Trash","SaveFilterModal","handleSubmit","newName","putFilterRequest","module","fieldResource","pageResource","putV1FilterId","enqueueSnackbar","error","m","Error","getErrorMessage","message","handleRenameFilter","handleSubmitRename","oldName","DialogContent","Alert","severity","px","pt","mb","QueryBuilderMaterial","QueryBuilder","onQueryChange","updatedRules","i","showCombinatorsBetweenRules","controlClassnames","header","controlElements","addRuleAction","AddFilterButton","addGroupAction","AddGroupButton","combinatorSelector","CombinatorSelect","fieldSelector","FieldSelect","operatorSelector","OperatorSelect","removeRuleAction","RemoveAction","valueEditor","ValueEditor","removeGroupAction","RemoveGroupAction","Button","DialogActions","alignItems","justifyContent","width","data","prev"],"mappings":"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"}
@@ -17,6 +17,6 @@ interface IFooter {
17
17
  isPaginationDisplayed?: boolean;
18
18
  isPageSaving?: boolean;
19
19
  }
20
- declare const Footer: React.NamedExoticComponent<IFooter>;
20
+ declare const Footer: React.MemoExoticComponent<({ pages, setPages, currentPage, setCurrentPage, total, paginationModel, handlePaginationModel, sharedPages, resource, savePageConfiguration, handlePageDelete, enablePages, isPaginationDisplayed, isPageSaving }: IFooter) => import("react/jsx-runtime").JSX.Element>;
21
21
  export { Footer };
22
22
  export default Footer;
@@ -1,5 +1,5 @@
1
1
  import { default as React } from 'react';
2
2
 
3
- declare const DynamicMedia: React.NamedExoticComponent<any>;
3
+ declare const DynamicMedia: React.MemoExoticComponent<(props: any) => import("react/jsx-runtime").JSX.Element>;
4
4
  export { DynamicMedia };
5
5
  export default DynamicMedia;
@@ -1,4 +1,4 @@
1
1
 
2
- declare const DynamicPhone: import('react').NamedExoticComponent<any>;
2
+ declare const DynamicPhone: import('react').MemoExoticComponent<(props: any) => import("react/jsx-runtime").JSX.Element>;
3
3
  export { DynamicPhone };
4
4
  export default DynamicPhone;
@@ -1,5 +1,5 @@
1
1
  import { default as React } from 'react';
2
2
 
3
- declare const DynamicSelect: React.NamedExoticComponent<any>;
3
+ declare const DynamicSelect: React.MemoExoticComponent<(props: any) => import("react/jsx-runtime").JSX.Element>;
4
4
  export { DynamicSelect };
5
5
  export default DynamicSelect;
@@ -1,5 +1,5 @@
1
1
  import { default as React } from 'react';
2
2
 
3
- declare const DynamicInput: React.NamedExoticComponent<any>;
3
+ declare const DynamicInput: React.MemoExoticComponent<(props: any) => import("react/jsx-runtime").JSX.Element>;
4
4
  export { DynamicInput };
5
5
  export default DynamicInput;
@@ -1,5 +1,5 @@
1
1
  import { default as React } from 'react';
2
2
 
3
- declare const DynamicTime: React.NamedExoticComponent<any>;
3
+ declare const DynamicTime: React.MemoExoticComponent<(props: any) => import("react/jsx-runtime").JSX.Element>;
4
4
  export { DynamicTime };
5
5
  export default DynamicTime;
@@ -1,3 +1,3 @@
1
- declare const FormSwitcher: import('react').NamedExoticComponent<any>;
1
+ declare const FormSwitcher: import('react').MemoExoticComponent<({ children, isFormSwitcher, control, fieldArrayName, formSwitcherName, label, resetForm, }: any) => import("react/jsx-runtime").JSX.Element>;
2
2
  export { FormSwitcher };
3
3
  export default FormSwitcher;
@@ -2,7 +2,7 @@ import { createAsyncThunk } from "@reduxjs/toolkit";
2
2
  import { setBaseUrl } from "../../../../api-client/api.rbac/api/index.esm.js";
3
3
  import { getV1Languages } from "../../../../api-client/api.system-feature/api/index.esm.js";
4
4
  import { getToken } from "../../../../utils/common/index.esm.js";
5
- setBaseUrl(`${"http://127.0.0.1:4011"}/rbac`);
5
+ setBaseUrl(`${"https://apidev.erpforce.co"}/rbac`);
6
6
  const fetchLanguages = createAsyncThunk(
7
7
  "header/language/get",
8
8
  async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../../../../../src/components/header/redux/actionCreator.ts"],"sourcesContent":["import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { setRoleURL } from \"../../../utils/server\";\nimport { getV1Languages } from \"../../../api-client/api.system-feature/api\";\nimport { getToken } from '../../../utils/common';\n\n\n\nsetRoleURL(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\n\nexport const fetchLanguages = createAsyncThunk(\n \"header/language/get\",\n async () => {\n const response = await getV1Languages({\n order: `id:1`,\n ...getToken(),\n });\n const data = response?.data?.languages || [];\n const languages = data?.filter(d => d?.is_active)?.map(d => {\n return {\n label: d?.name,\n code: d?.code,\n direction: d?.direction\n }\n },\n );\n return { languages }\n});\n"],"names":["setRoleURL"],"mappings":";;;;AAOAA,WAAW,GAAG,uBAAqC,OAAO;AAEnD,MAAM,iBAAiB;AAAA,EAC5B;AAAA,EACA,YAAY;;AACV,UAAM,WAAW,MAAM,eAAe;AAAA,MACpC,OAAO;AAAA,MACP,GAAG,SAAA;AAAA,IAAS,CACb;AACD,UAAM,SAAO,0CAAU,SAAV,mBAAgB,cAAa,CAAA;AAC1C,UAAM,aAAY,kCAAM,OAAO,CAAA,MAAK,uBAAG,eAArB,mBAAiC;AAAA,MAAI,CAAA,MAAK;AAC1D,eAAO;AAAA,UACL,OAAO,uBAAG;AAAA,UACV,MAAM,uBAAG;AAAA,UACT,WAAW,uBAAG;AAAA,QAAA;AAAA,MAElB;AAAA;AAEF,WAAO,EAAE,UAAA;AAAA,EACX;AAAC;"}
1
+ {"version":3,"file":"index.esm.js","sources":["../../../../../src/components/header/redux/actionCreator.ts"],"sourcesContent":["import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { setRoleURL } from \"../../../utils/server\";\nimport { getV1Languages } from \"../../../api-client/api.system-feature/api\";\nimport { getToken } from '../../../utils/common';\n\n\n\nsetRoleURL(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\n\nexport const fetchLanguages = createAsyncThunk(\n \"header/language/get\",\n async () => {\n const response = await getV1Languages({\n order: `id:1`,\n ...getToken(),\n });\n const data = response?.data?.languages || [];\n const languages = data?.filter(d => d?.is_active)?.map(d => {\n return {\n label: d?.name,\n code: d?.code,\n direction: d?.direction\n }\n },\n );\n return { languages }\n});\n"],"names":["setRoleURL"],"mappings":";;;;AAOAA,WAAW,GAAG,4BAAqC,OAAO;AAEnD,MAAM,iBAAiB;AAAA,EAC5B;AAAA,EACA,YAAY;;AACV,UAAM,WAAW,MAAM,eAAe;AAAA,MACpC,OAAO;AAAA,MACP,GAAG,SAAA;AAAA,IAAS,CACb;AACD,UAAM,SAAO,0CAAU,SAAV,mBAAgB,cAAa,CAAA;AAC1C,UAAM,aAAY,kCAAM,OAAO,CAAA,MAAK,uBAAG,eAArB,mBAAiC;AAAA,MAAI,CAAA,MAAK;AAC1D,eAAO;AAAA,UACL,OAAO,uBAAG;AAAA,UACV,MAAM,uBAAG;AAAA,UACT,WAAW,uBAAG;AAAA,QAAA;AAAA,MAElB;AAAA;AAEF,WAAO,EAAE,UAAA;AAAA,EACX;AAAC;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@reduxjs/toolkit"),i=require("../../../../api-client/api.rbac/api/index.js"),a=require("../../../../api-client/api.system-feature/api/index.js"),n=require("../../../../utils/common/index.js");i.setBaseUrl("http://127.0.0.1:4011/rbac");const t=e.createAsyncThunk("header/language/get",async()=>{var e,i;const t=await a.getV1Languages({order:"id:1",...n.getToken()}),l=(null==(e=null==t?void 0:t.data)?void 0:e.languages)||[];return{languages:null==(i=null==l?void 0:l.filter(e=>null==e?void 0:e.is_active))?void 0:i.map(e=>({label:null==e?void 0:e.name,code:null==e?void 0:e.code,direction:null==e?void 0:e.direction}))}});exports.fetchLanguages=t;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@reduxjs/toolkit"),i=require("../../../../api-client/api.rbac/api/index.js"),a=require("../../../../api-client/api.system-feature/api/index.js"),r=require("../../../../utils/common/index.js");i.setBaseUrl("https://apidev.erpforce.co/rbac");const n=e.createAsyncThunk("header/language/get",async()=>{var e,i;const n=await a.getV1Languages({order:"id:1",...r.getToken()}),t=(null==(e=null==n?void 0:n.data)?void 0:e.languages)||[];return{languages:null==(i=null==t?void 0:t.filter(e=>null==e?void 0:e.is_active))?void 0:i.map(e=>({label:null==e?void 0:e.name,code:null==e?void 0:e.code,direction:null==e?void 0:e.direction}))}});exports.fetchLanguages=n;
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/header/redux/actionCreator.ts"],"sourcesContent":["import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { setRoleURL } from \"../../../utils/server\";\nimport { getV1Languages } from \"../../../api-client/api.system-feature/api\";\nimport { getToken } from '../../../utils/common';\n\n\n\nsetRoleURL(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\n\nexport const fetchLanguages = createAsyncThunk(\n \"header/language/get\",\n async () => {\n const response = await getV1Languages({\n order: `id:1`,\n ...getToken(),\n });\n const data = response?.data?.languages || [];\n const languages = data?.filter(d => d?.is_active)?.map(d => {\n return {\n label: d?.name,\n code: d?.code,\n direction: d?.direction\n }\n },\n );\n return { languages }\n});\n"],"names":["setRoleURL","fetchLanguages","createAsyncThunk","async","response","getV1Languages","order","getToken","data","_a","languages","_b","filter","d","is_active","map","label","name","code","direction"],"mappings":"mRAOAA,EAAAA,WAAW,8BAEJ,MAAMC,EAAiBC,EAAAA,iBAC5B,sBACAC,kBACE,MAAMC,QAAiBC,iBAAe,CACpCC,MAAO,UACJC,EAAAA,aAECC,GAAO,OAAAC,EAAA,MAAAL,OAAA,EAAAA,EAAUI,WAAV,EAAAC,EAAgBC,YAAa,GAS5C,MAAO,CAAEA,UARW,OAAAC,EAAA,MAAAH,OAAA,EAAAA,EAAMI,OAAOC,GAAK,MAAAA,OAAA,EAAAA,EAAGC,iBAArB,EAAAH,EAAiCI,IAAIF,IAC9C,CACLG,MAAO,MAAAH,OAAA,EAAAA,EAAGI,KACVC,KAAM,MAAAL,OAAA,EAAAA,EAAGK,KACTC,UAAW,MAAAN,OAAA,EAAAA,EAAGM"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/header/redux/actionCreator.ts"],"sourcesContent":["import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { setRoleURL } from \"../../../utils/server\";\nimport { getV1Languages } from \"../../../api-client/api.system-feature/api\";\nimport { getToken } from '../../../utils/common';\n\n\n\nsetRoleURL(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\n\nexport const fetchLanguages = createAsyncThunk(\n \"header/language/get\",\n async () => {\n const response = await getV1Languages({\n order: `id:1`,\n ...getToken(),\n });\n const data = response?.data?.languages || [];\n const languages = data?.filter(d => d?.is_active)?.map(d => {\n return {\n label: d?.name,\n code: d?.code,\n direction: d?.direction\n }\n },\n );\n return { languages }\n});\n"],"names":["setRoleURL","fetchLanguages","createAsyncThunk","async","response","getV1Languages","order","getToken","data","_a","languages","_b","filter","d","is_active","map","label","name","code","direction"],"mappings":"mRAOAA,EAAAA,WAAW,mCAEJ,MAAMC,EAAiBC,EAAAA,iBAC5B,sBACAC,kBACE,MAAMC,QAAiBC,iBAAe,CACpCC,MAAO,UACJC,EAAAA,aAECC,GAAO,OAAAC,EAAA,MAAAL,OAAA,EAAAA,EAAUI,WAAV,EAAAC,EAAgBC,YAAa,GAS5C,MAAO,CAAEA,UARW,OAAAC,EAAA,MAAAH,OAAA,EAAAA,EAAMI,OAAOC,GAAK,MAAAA,OAAA,EAAAA,EAAGC,iBAArB,EAAAH,EAAiCI,IAAIF,IAC9C,CACLG,MAAO,MAAAH,OAAA,EAAAA,EAAGI,KACVC,KAAM,MAAAL,OAAA,EAAAA,EAAGK,KACTC,UAAW,MAAAN,OAAA,EAAAA,EAAGM"}
@@ -1,4 +1,4 @@
1
- export declare const ActionArrow: import('@emotion/styled').StyledComponent<Pick<{}, never> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {
2
- ref?: import('react').Ref<import('react').Component<{}, any, any>>;
3
- }>;
1
+ export declare const ActionArrow: import('@emotion/styled').StyledComponent<import('@mui/material').SvgIconOwnProps & import('@mui/material/OverridableComponent').CommonProps & Omit<Omit<import('react').SVGProps<SVGSVGElement>, "ref"> & {
2
+ ref?: import('react').Ref<SVGSVGElement>;
3
+ }, "classes" | "children" | "className" | "sx" | "style" | "color" | "fontSize" | "shapeRendering" | "htmlColor" | "inheritViewBox" | "titleAccess" | "viewBox"> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {}>;
4
4
  export default ActionArrow;
@@ -1,4 +1,4 @@
1
- export declare const AddCircle: import('@emotion/styled').StyledComponent<Pick<{}, never> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {
2
- ref?: import('react').Ref<import('react').Component<{}, any, any>>;
3
- }>;
1
+ export declare const AddCircle: import('@emotion/styled').StyledComponent<import('@mui/material').SvgIconOwnProps & import('@mui/material/OverridableComponent').CommonProps & Omit<Omit<import('react').SVGProps<SVGSVGElement>, "ref"> & {
2
+ ref?: import('react').Ref<SVGSVGElement>;
3
+ }, "classes" | "children" | "className" | "sx" | "style" | "color" | "fontSize" | "shapeRendering" | "htmlColor" | "inheritViewBox" | "titleAccess" | "viewBox"> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {}>;
4
4
  export default AddCircle;
@@ -1,4 +1,4 @@
1
- export declare const ArrowBidirectional: import('@emotion/styled').StyledComponent<Pick<{}, never> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {
2
- ref?: import('react').Ref<import('react').Component<{}, any, any>>;
3
- }>;
1
+ export declare const ArrowBidirectional: import('@emotion/styled').StyledComponent<import('@mui/material').SvgIconOwnProps & import('@mui/material/OverridableComponent').CommonProps & Omit<Omit<import('react').SVGProps<SVGSVGElement>, "ref"> & {
2
+ ref?: import('react').Ref<SVGSVGElement>;
3
+ }, "classes" | "children" | "className" | "sx" | "style" | "color" | "fontSize" | "shapeRendering" | "htmlColor" | "inheritViewBox" | "titleAccess" | "viewBox"> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {}>;
4
4
  export default ArrowBidirectional;
@@ -1,4 +1,4 @@
1
- export declare const ArrowCircleDown: import('@emotion/styled').StyledComponent<Pick<{}, never> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {
2
- ref?: import('react').Ref<import('react').Component<{}, any, any>>;
3
- }>;
1
+ export declare const ArrowCircleDown: import('@emotion/styled').StyledComponent<import('@mui/material').SvgIconOwnProps & import('@mui/material/OverridableComponent').CommonProps & Omit<Omit<import('react').SVGProps<SVGSVGElement>, "ref"> & {
2
+ ref?: import('react').Ref<SVGSVGElement>;
3
+ }, "classes" | "children" | "className" | "sx" | "style" | "color" | "fontSize" | "shapeRendering" | "htmlColor" | "inheritViewBox" | "titleAccess" | "viewBox"> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {}>;
4
4
  export default ArrowCircleDown;
@@ -1,4 +1,4 @@
1
- export declare const ArrowDownThree: import('@emotion/styled').StyledComponent<Pick<{}, never> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {
2
- ref?: import('react').Ref<import('react').Component<{}, any, any>>;
3
- }>;
1
+ export declare const ArrowDownThree: import('@emotion/styled').StyledComponent<import('@mui/material').SvgIconOwnProps & import('@mui/material/OverridableComponent').CommonProps & Omit<Omit<import('react').SVGProps<SVGSVGElement>, "ref"> & {
2
+ ref?: import('react').Ref<SVGSVGElement>;
3
+ }, "classes" | "children" | "className" | "sx" | "style" | "color" | "fontSize" | "shapeRendering" | "htmlColor" | "inheritViewBox" | "titleAccess" | "viewBox"> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {}>;
4
4
  export default ArrowDownThree;
@@ -1,4 +1,4 @@
1
- export declare const ArrowDownTwo: import('@emotion/styled').StyledComponent<Pick<{}, never> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {
2
- ref?: import('react').Ref<import('react').Component<{}, any, any>>;
3
- }>;
1
+ export declare const ArrowDownTwo: import('@emotion/styled').StyledComponent<import('@mui/material').SvgIconOwnProps & import('@mui/material/OverridableComponent').CommonProps & Omit<Omit<import('react').SVGProps<SVGSVGElement>, "ref"> & {
2
+ ref?: import('react').Ref<SVGSVGElement>;
3
+ }, "classes" | "children" | "className" | "sx" | "style" | "color" | "fontSize" | "shapeRendering" | "htmlColor" | "inheritViewBox" | "titleAccess" | "viewBox"> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {}>;
4
4
  export default ArrowDownTwo;
@@ -1,4 +1,4 @@
1
- export declare const ArrowDown: import('@emotion/styled').StyledComponent<Pick<{}, never> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {
2
- ref?: import('react').Ref<import('react').Component<{}, any, any>>;
3
- }>;
1
+ export declare const ArrowDown: import('@emotion/styled').StyledComponent<import('@mui/material').SvgIconOwnProps & import('@mui/material/OverridableComponent').CommonProps & Omit<Omit<import('react').SVGProps<SVGSVGElement>, "ref"> & {
2
+ ref?: import('react').Ref<SVGSVGElement>;
3
+ }, "classes" | "children" | "className" | "sx" | "style" | "color" | "fontSize" | "shapeRendering" | "htmlColor" | "inheritViewBox" | "titleAccess" | "viewBox"> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {}>;
4
4
  export default ArrowDown;
@@ -1,4 +1,4 @@
1
- export declare const ArrowUpDown: import('@emotion/styled').StyledComponent<Pick<{}, never> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {
2
- ref?: import('react').Ref<import('react').Component<{}, any, any>>;
3
- }>;
1
+ export declare const ArrowUpDown: import('@emotion/styled').StyledComponent<import('@mui/material').SvgIconOwnProps & import('@mui/material/OverridableComponent').CommonProps & Omit<Omit<import('react').SVGProps<SVGSVGElement>, "ref"> & {
2
+ ref?: import('react').Ref<SVGSVGElement>;
3
+ }, "classes" | "children" | "className" | "sx" | "style" | "color" | "fontSize" | "shapeRendering" | "htmlColor" | "inheritViewBox" | "titleAccess" | "viewBox"> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {}>;
4
4
  export default ArrowUpDown;
@@ -1,4 +1,4 @@
1
- export declare const ArrowUpTwo: import('@emotion/styled').StyledComponent<Pick<{}, never> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {
2
- ref?: import('react').Ref<import('react').Component<{}, any, any>>;
3
- }>;
1
+ export declare const ArrowUpTwo: import('@emotion/styled').StyledComponent<import('@mui/material').SvgIconOwnProps & import('@mui/material/OverridableComponent').CommonProps & Omit<Omit<import('react').SVGProps<SVGSVGElement>, "ref"> & {
2
+ ref?: import('react').Ref<SVGSVGElement>;
3
+ }, "classes" | "children" | "className" | "sx" | "style" | "color" | "fontSize" | "shapeRendering" | "htmlColor" | "inheritViewBox" | "titleAccess" | "viewBox"> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {}>;
4
4
  export default ArrowUpTwo;