@erpsquad/common 1.8.81 → 1.8.82

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 (648) hide show
  1. package/CHANGELOG.md +253 -253
  2. package/README.md +979 -979
  3. package/dist/_virtual/index/index.esm10.js +3 -3
  4. package/dist/_virtual/index/index.esm11.js +3 -3
  5. package/dist/_virtual/index/index.esm4.js +1 -1
  6. package/dist/_virtual/index/index.esm5.js +3 -3
  7. package/dist/_virtual/index/index.esm6.js +3 -3
  8. package/dist/_virtual/index/index.esm7.js +3 -3
  9. package/dist/_virtual/index/index.esm8.js +3 -3
  10. package/dist/_virtual/index/index.esm9.js +3 -3
  11. package/dist/_virtual/index/index10.js +1 -1
  12. package/dist/_virtual/index/index11.js +1 -1
  13. package/dist/_virtual/index/index4.js +1 -1
  14. package/dist/_virtual/index/index5.js +1 -1
  15. package/dist/_virtual/index/index6.js +1 -1
  16. package/dist/_virtual/index/index7.js +1 -1
  17. package/dist/_virtual/index/index8.js +1 -1
  18. package/dist/_virtual/index/index9.js +1 -1
  19. package/dist/api-client/api.accounting/api/index.esm.js.map +1 -1
  20. package/dist/api-client/api.accounting/api/index.js.map +1 -1
  21. package/dist/api-client/api.accounting/api-types.d.ts +15883 -15883
  22. package/dist/api-client/api.drive/api/index.esm.js.map +1 -1
  23. package/dist/api-client/api.drive/api/index.js.map +1 -1
  24. package/dist/api-client/api.drive/api-types.d.ts +696 -696
  25. package/dist/api-client/api.hrms/api/index.esm.js.map +1 -1
  26. package/dist/api-client/api.hrms/api/index.js.map +1 -1
  27. package/dist/api-client/api.inventory/api/index.esm.js.map +1 -1
  28. package/dist/api-client/api.inventory/api/index.js.map +1 -1
  29. package/dist/api-client/api.inventory/api-types.d.ts +6110 -6110
  30. package/dist/api-client/api.manufacturing/api/index.esm.js.map +1 -1
  31. package/dist/api-client/api.manufacturing/api/index.js.map +1 -1
  32. package/dist/api-client/api.manufacturing/api-types.d.ts +10066 -10066
  33. package/dist/api-client/api.purchase/api/index.esm.js.map +1 -1
  34. package/dist/api-client/api.purchase/api/index.js.map +1 -1
  35. package/dist/api-client/api.purchase/api-types.d.ts +6715 -6715
  36. package/dist/api-client/api.rbac/api/index.esm.js.map +1 -1
  37. package/dist/api-client/api.rbac/api/index.esm2.js.map +1 -1
  38. package/dist/api-client/api.rbac/api/index.js.map +1 -1
  39. package/dist/api-client/api.rbac/api/index2.js.map +1 -1
  40. package/dist/api-client/api.rbac/api-types.d.ts +1753 -1753
  41. package/dist/api-client/api.rental/api/index.esm.js.map +1 -1
  42. package/dist/api-client/api.rental/api/index.js.map +1 -1
  43. package/dist/api-client/api.rental/api-types.d.ts +15666 -15666
  44. package/dist/api-client/api.sales/api/index.esm.js.map +1 -1
  45. package/dist/api-client/api.sales/api/index.js.map +1 -1
  46. package/dist/api-client/api.sales/api-types.d.ts +8258 -8258
  47. package/dist/api-client/api.system-feature/api/index.esm.js.map +1 -1
  48. package/dist/api-client/api.system-feature/api/index.js.map +1 -1
  49. package/dist/api-client/api.system-feature/api-types.d.ts +2875 -2875
  50. package/dist/api-client/api.user/api/index.esm.js.map +1 -1
  51. package/dist/api-client/api.user/api/index.js.map +1 -1
  52. package/dist/api-client/api.user/api-types.d.ts +95 -95
  53. package/dist/api-client/api.workflow-automation/api/index.esm.js.map +1 -1
  54. package/dist/api-client/api.workflow-automation/api/index.js.map +1 -1
  55. package/dist/api-client/index.d.ts +39 -39
  56. package/dist/components/accordion/accordion/index.esm.js.map +1 -1
  57. package/dist/components/accordion/accordion/index.js.map +1 -1
  58. package/dist/components/accordion/accordion.d.ts +1 -1
  59. package/dist/components/action-bar/action-bar/index.esm.js +1 -1
  60. package/dist/components/action-bar/action-bar/index.esm.js.map +1 -1
  61. package/dist/components/action-bar/action-bar/index.js +5 -5
  62. package/dist/components/action-bar/action-bar/index.js.map +1 -1
  63. package/dist/components/action-bar/action-bar.d.ts +1 -1
  64. package/dist/components/activity-tag/activity-tag/index.esm.js.map +1 -1
  65. package/dist/components/activity-tag/activity-tag/index.js.map +1 -1
  66. package/dist/components/alert/alert/index.esm.js.map +1 -1
  67. package/dist/components/alert/alert/index.js.map +1 -1
  68. package/dist/components/button/button/index.esm.js.map +1 -1
  69. package/dist/components/button/button/index.js.map +1 -1
  70. package/dist/components/change-user-password-modal/change-user-password-modal/index.esm.js.map +1 -1
  71. package/dist/components/change-user-password-modal/change-user-password-modal/index.js.map +1 -1
  72. package/dist/components/checkbox/checkbox/index.esm.js.map +1 -1
  73. package/dist/components/checkbox/checkbox/index.js.map +1 -1
  74. package/dist/components/checkbox/checkbox.d.ts +1 -1
  75. package/dist/components/chip/chip/index.esm.js.map +1 -1
  76. package/dist/components/chip/chip/index.js.map +1 -1
  77. package/dist/components/chip-generator/chip-generator/index.esm.js.map +1 -1
  78. package/dist/components/chip-generator/chip-generator/index.js.map +1 -1
  79. package/dist/components/date-picker/date-picker/index.esm.js.map +1 -1
  80. package/dist/components/date-picker/date-picker/index.js.map +1 -1
  81. package/dist/components/date-picker/date-picker.d.ts +1 -1
  82. package/dist/components/date-time-picker/date-time-picker/index.esm.js.map +1 -1
  83. package/dist/components/date-time-picker/date-time-picker/index.js.map +1 -1
  84. package/dist/components/editor/custom-editor/index.esm.js.map +1 -1
  85. package/dist/components/editor/custom-editor/index.js.map +1 -1
  86. package/dist/components/filter/components/delete-group/index.esm.js +0 -1
  87. package/dist/components/filter/components/delete-group/index.esm.js.map +1 -1
  88. package/dist/components/filter/components/delete-group/index.js +1 -1
  89. package/dist/components/filter/components/delete-group/index.js.map +1 -1
  90. package/dist/components/filter/filter/index.esm.js +1 -1
  91. package/dist/components/filter/filter/index.esm.js.map +1 -1
  92. package/dist/components/filter/filter/index.js +7 -7
  93. package/dist/components/filter/filter/index.js.map +1 -1
  94. package/dist/components/footer/footer.d.ts +1 -1
  95. package/dist/components/form-control/form-builder/form-builder-element/dynamic-select/index.esm.js.map +1 -1
  96. package/dist/components/form-control/form-builder/form-builder-element/dynamic-select/index.js.map +1 -1
  97. package/dist/components/form-control/form-builder/form-builder-element/media.d.ts +1 -1
  98. package/dist/components/form-control/form-builder/form-builder-element/phone.d.ts +1 -1
  99. package/dist/components/form-control/form-builder/form-builder-element/select.d.ts +1 -1
  100. package/dist/components/form-control/form-builder/form-builder-element/text.d.ts +1 -1
  101. package/dist/components/form-control/form-builder/form-builder-element/time.d.ts +1 -1
  102. package/dist/components/form-control/form-parser/form-switcher.d.ts +1 -1
  103. package/dist/components/header/header/index.esm.js.map +1 -1
  104. package/dist/components/header/header/index.js.map +1 -1
  105. package/dist/components/header/redux/actionCreator/index.esm.js +1 -1
  106. package/dist/components/header/redux/actionCreator/index.esm.js.map +1 -1
  107. package/dist/components/header/redux/actionCreator/index.js +1 -1
  108. package/dist/components/header/redux/actionCreator/index.js.map +1 -1
  109. package/dist/components/icons/action/index.esm.js.map +1 -1
  110. package/dist/components/icons/action/index.js.map +1 -1
  111. package/dist/components/icons/action-arrow.d.ts +3 -3
  112. package/dist/components/icons/add-circle.d.ts +3 -3
  113. package/dist/components/icons/arrow-bidirectional.d.ts +3 -3
  114. package/dist/components/icons/arrow-circle-down.d.ts +3 -3
  115. package/dist/components/icons/arrow-down-three.d.ts +3 -3
  116. package/dist/components/icons/arrow-down-two.d.ts +3 -3
  117. package/dist/components/icons/arrow-down.d.ts +3 -3
  118. package/dist/components/icons/arrow-up-down.d.ts +3 -3
  119. package/dist/components/icons/arrow-up-two.d.ts +3 -3
  120. package/dist/components/icons/assignments.d.ts +3 -3
  121. package/dist/components/icons/blank-circle.d.ts +3 -3
  122. package/dist/components/icons/block-filled.d.ts +3 -3
  123. package/dist/components/icons/calendar-add.d.ts +3 -3
  124. package/dist/components/icons/calendar.d.ts +3 -3
  125. package/dist/components/icons/checkbox-square.d.ts +3 -3
  126. package/dist/components/icons/circular-arrow-setting.d.ts +3 -3
  127. package/dist/components/icons/clock.d.ts +3 -3
  128. package/dist/components/icons/close.d.ts +3 -3
  129. package/dist/components/icons/coin-outline.d.ts +3 -3
  130. package/dist/components/icons/copy.d.ts +3 -3
  131. package/dist/components/icons/coupon.d.ts +3 -3
  132. package/dist/components/icons/criteria/index.esm.js.map +1 -1
  133. package/dist/components/icons/criteria/index.js.map +1 -1
  134. package/dist/components/icons/cross/index.esm.js.map +1 -1
  135. package/dist/components/icons/cross/index.js.map +1 -1
  136. package/dist/components/icons/cross-hire.d.ts +3 -3
  137. package/dist/components/icons/custom-styled-icon.d.ts +3 -3
  138. package/dist/components/icons/dashboard.d.ts +3 -3
  139. package/dist/components/icons/document-download.d.ts +3 -3
  140. package/dist/components/icons/document.d.ts +3 -3
  141. package/dist/components/icons/dollar-circle-filled.d.ts +3 -3
  142. package/dist/components/icons/dollar-circle.d.ts +3 -3
  143. package/dist/components/icons/edit.d.ts +3 -3
  144. package/dist/components/icons/email.d.ts +3 -3
  145. package/dist/components/icons/export.d.ts +3 -3
  146. package/dist/components/icons/eye-off.d.ts +3 -3
  147. package/dist/components/icons/eye-plus-circle.d.ts +3 -3
  148. package/dist/components/icons/eye.d.ts +3 -3
  149. package/dist/components/icons/filled-circle.d.ts +3 -3
  150. package/dist/components/icons/filter-remove.d.ts +3 -3
  151. package/dist/components/icons/filter.d.ts +3 -3
  152. package/dist/components/icons/folder-save.d.ts +3 -3
  153. package/dist/components/icons/grid.d.ts +3 -3
  154. package/dist/components/icons/hashtag.d.ts +3 -3
  155. package/dist/components/icons/image.d.ts +3 -3
  156. package/dist/components/icons/import.d.ts +3 -3
  157. package/dist/components/icons/info-circle.d.ts +3 -3
  158. package/dist/components/icons/info.d.ts +3 -3
  159. package/dist/components/icons/link-horizontal.d.ts +3 -3
  160. package/dist/components/icons/link.d.ts +3 -3
  161. package/dist/components/icons/location.d.ts +3 -3
  162. package/dist/components/icons/lowest-lead-time.d.ts +3 -3
  163. package/dist/components/icons/lowest-min-qty.d.ts +3 -3
  164. package/dist/components/icons/lowest-price.d.ts +3 -3
  165. package/dist/components/icons/more.d.ts +3 -3
  166. package/dist/components/icons/notification.d.ts +3 -3
  167. package/dist/components/icons/paper-clip.d.ts +3 -3
  168. package/dist/components/icons/paragraph.d.ts +3 -3
  169. package/dist/components/icons/payment-request.d.ts +3 -3
  170. package/dist/components/icons/phone.d.ts +3 -3
  171. package/dist/components/icons/printer.d.ts +3 -3
  172. package/dist/components/icons/process-calendar.d.ts +3 -3
  173. package/dist/components/icons/promotion.d.ts +3 -3
  174. package/dist/components/icons/radio-button.d.ts +3 -3
  175. package/dist/components/icons/receipt-filled.d.ts +3 -3
  176. package/dist/components/icons/receipt-outline.d.ts +3 -3
  177. package/dist/components/icons/receipt.d.ts +3 -3
  178. package/dist/components/icons/refresh-icon.d.ts +3 -3
  179. package/dist/components/icons/replace.d.ts +3 -3
  180. package/dist/components/icons/save.d.ts +3 -3
  181. package/dist/components/icons/search-status.d.ts +3 -3
  182. package/dist/components/icons/search.d.ts +3 -3
  183. package/dist/components/icons/settings-fallback.d.ts +3 -3
  184. package/dist/components/icons/share/index.esm.js.map +1 -1
  185. package/dist/components/icons/share/index.js.map +1 -1
  186. package/dist/components/icons/sort-arrow-icon.d.ts +3 -3
  187. package/dist/components/icons/stacked-layer.d.ts +3 -3
  188. package/dist/components/icons/start-filled.d.ts +3 -3
  189. package/dist/components/icons/three-dot-icon.d.ts +3 -3
  190. package/dist/components/icons/tick-circle-filled.d.ts +3 -3
  191. package/dist/components/icons/tick-circle.d.ts +3 -3
  192. package/dist/components/icons/tick-octagon.d.ts +3 -3
  193. package/dist/components/icons/tick.d.ts +3 -3
  194. package/dist/components/icons/toggle-switch.d.ts +3 -3
  195. package/dist/components/icons/trash.d.ts +3 -3
  196. package/dist/components/icons/wave.d.ts +3 -3
  197. package/dist/components/icons/with-out-tick-octagon.d.ts +3 -3
  198. package/dist/components/icons/work-centre.d.ts +3 -3
  199. package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.esm.js +1 -1
  200. package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.esm.js.map +1 -1
  201. package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.js +1 -1
  202. package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.js.map +1 -1
  203. package/dist/components/label-value/label-value/index.esm.js.map +1 -1
  204. package/dist/components/label-value/label-value/index.js.map +1 -1
  205. package/dist/components/listing/listing/index.esm.js.map +1 -1
  206. package/dist/components/listing/listing/index.js.map +1 -1
  207. package/dist/components/loaders/erp-loader/index.esm.js.map +1 -1
  208. package/dist/components/loaders/erp-loader/index.js.map +1 -1
  209. package/dist/components/loaders/form-loader/index.esm.js.map +1 -1
  210. package/dist/components/loaders/form-loader/index.js.map +1 -1
  211. package/dist/components/loaders/modal-loader/index.esm.js.map +1 -1
  212. package/dist/components/loaders/modal-loader/index.js.map +1 -1
  213. package/dist/components/loaders/page-loader/index.esm.js.map +1 -1
  214. package/dist/components/loaders/page-loader/index.js.map +1 -1
  215. package/dist/components/location-select.d.ts +1 -1
  216. package/dist/components/material-editable-table/components/inline-edit-fields/index.esm.js.map +1 -1
  217. package/dist/components/material-editable-table/components/inline-edit-fields/index.js.map +1 -1
  218. package/dist/components/material-editable-table/material-editable-table/index.esm.js.map +1 -1
  219. package/dist/components/material-editable-table/material-editable-table/index.js.map +1 -1
  220. package/dist/components/material-editable-table/material-editable-table.d.ts +1 -1
  221. package/dist/components/material-table/material-table.d.ts +1 -1
  222. package/dist/components/menu/menu/index.esm.js.map +1 -1
  223. package/dist/components/menu/menu/index.js.map +1 -1
  224. package/dist/components/modal/modal/index.esm.js.map +1 -1
  225. package/dist/components/modal/modal/index.js.map +1 -1
  226. package/dist/components/page-navigator/page-navigator/index.esm.js.map +1 -1
  227. package/dist/components/page-navigator/page-navigator/index.js.map +1 -1
  228. package/dist/components/phone-input/phone-input.d.ts +1 -1
  229. package/dist/components/providers/ERPUIProvider/index.esm.js.map +1 -1
  230. package/dist/components/providers/ERPUIProvider/index.js.map +1 -1
  231. package/dist/components/radio/radio.d.ts +1 -1
  232. package/dist/components/reports-title-bar/redux/actionCreator/index.esm.js +1 -1
  233. package/dist/components/reports-title-bar/redux/actionCreator/index.esm.js.map +1 -1
  234. package/dist/components/reports-title-bar/redux/actionCreator/index.js +1 -1
  235. package/dist/components/reports-title-bar/redux/actionCreator/index.js.map +1 -1
  236. package/dist/components/reset-password-modal/reset-password-modal/index.esm.js.map +1 -1
  237. package/dist/components/reset-password-modal/reset-password-modal/index.js.map +1 -1
  238. package/dist/components/search-bar/search-bar/index.esm.js.map +1 -1
  239. package/dist/components/search-bar/search-bar/index.js.map +1 -1
  240. package/dist/components/searchable-select/index.esm.js.map +1 -1
  241. package/dist/components/searchable-select/index.js.map +1 -1
  242. package/dist/components/select/controller/chip-or-placeholder/index.esm.js.map +1 -1
  243. package/dist/components/select/controller/chip-or-placeholder/index.js.map +1 -1
  244. package/dist/components/select/select/index.esm.js.map +1 -1
  245. package/dist/components/select/select/index.js.map +1 -1
  246. package/dist/components/select/select-search/index.esm.js.map +1 -1
  247. package/dist/components/select/select-search/index.js.map +1 -1
  248. package/dist/components/select/select.d.ts +1 -1
  249. package/dist/components/share-modal/redux/actionCreator/index.esm.js +1 -1
  250. package/dist/components/share-modal/redux/actionCreator/index.esm.js.map +1 -1
  251. package/dist/components/share-modal/redux/actionCreator/index.js +1 -1
  252. package/dist/components/share-modal/redux/actionCreator/index.js.map +1 -1
  253. package/dist/components/sub-header-doc/sub-header-doc/index.esm.js.map +1 -1
  254. package/dist/components/sub-header-doc/sub-header-doc/index.js.map +1 -1
  255. package/dist/components/switches/android-12-switch/index.esm.js.map +1 -1
  256. package/dist/components/switches/android-12-switch/index.js.map +1 -1
  257. package/dist/components/switches/android-12-switch.d.ts +3 -1
  258. package/dist/components/text-area/text-area/index.esm.js.map +1 -1
  259. package/dist/components/text-area/text-area/index.js.map +1 -1
  260. package/dist/components/text-field/text-field/index.esm.js.map +1 -1
  261. package/dist/components/text-field/text-field/index.js.map +1 -1
  262. package/dist/components/text-field/text-field.d.ts +1 -1
  263. package/dist/components/time-picker/time-picker/index.esm.js.map +1 -1
  264. package/dist/components/time-picker/time-picker/index.js.map +1 -1
  265. package/dist/components/time-picker/time-picker.d.ts +1 -1
  266. package/dist/components/toast/toast/index.esm.js.map +1 -1
  267. package/dist/components/toast/toast/index.js.map +1 -1
  268. package/dist/components/toggle/toggle/index.esm.js.map +1 -1
  269. package/dist/components/toggle/toggle/index.js.map +1 -1
  270. package/dist/components/typography/typography/index.esm.js.map +1 -1
  271. package/dist/components/typography/typography/index.js.map +1 -1
  272. package/dist/components/upload/upload/index.esm.js +2 -2
  273. package/dist/components/upload/upload/index.esm.js.map +1 -1
  274. package/dist/components/upload/upload/index.js +11 -11
  275. package/dist/components/upload/upload/index.js.map +1 -1
  276. package/dist/components/upload-media/upload-media.d.ts +1 -1
  277. package/dist/constants/defaultColumns/index.esm.js.map +1 -1
  278. package/dist/constants/defaultColumns/index.js.map +1 -1
  279. package/dist/constants/modules/index.esm.js.map +1 -1
  280. package/dist/constants/modules/index.js.map +1 -1
  281. package/dist/constants/pathnames/pathname/index.esm.js.map +1 -1
  282. package/dist/constants/pathnames/pathname/index.js.map +1 -1
  283. package/dist/constants/pathnames/pathname.accounting/index.esm.js.map +1 -1
  284. package/dist/constants/pathnames/pathname.accounting/index.js.map +1 -1
  285. package/dist/constants/pathnames/pathname.crm/index.esm.js.map +1 -1
  286. package/dist/constants/pathnames/pathname.crm/index.js.map +1 -1
  287. package/dist/constants/pathnames/pathname.document/index.esm.js.map +1 -1
  288. package/dist/constants/pathnames/pathname.document/index.js.map +1 -1
  289. package/dist/constants/pathnames/pathname.hrms/index.esm.js.map +1 -1
  290. package/dist/constants/pathnames/pathname.hrms/index.js.map +1 -1
  291. package/dist/constants/pathnames/pathname.inventory/index.esm.js.map +1 -1
  292. package/dist/constants/pathnames/pathname.inventory/index.js.map +1 -1
  293. package/dist/constants/pathnames/pathname.manufacturing/index.esm.js.map +1 -1
  294. package/dist/constants/pathnames/pathname.manufacturing/index.js.map +1 -1
  295. package/dist/constants/pathnames/pathname.office/index.esm.js.map +1 -1
  296. package/dist/constants/pathnames/pathname.office/index.js.map +1 -1
  297. package/dist/constants/pathnames/pathname.procurement/index.esm.js.map +1 -1
  298. package/dist/constants/pathnames/pathname.procurement/index.js.map +1 -1
  299. package/dist/constants/pathnames/pathname.project/index.esm.js.map +1 -1
  300. package/dist/constants/pathnames/pathname.project/index.js.map +1 -1
  301. package/dist/constants/pathnames/pathname.quotes/index.esm.js.map +1 -1
  302. package/dist/constants/pathnames/pathname.quotes/index.js.map +1 -1
  303. package/dist/constants/pathnames/pathname.rental/index.esm.js.map +1 -1
  304. package/dist/constants/pathnames/pathname.rental/index.js.map +1 -1
  305. package/dist/constants/pathnames/pathname.user/index.esm.js.map +1 -1
  306. package/dist/constants/pathnames/pathname.user/index.js.map +1 -1
  307. package/dist/constants/route-page-map/index.esm.js.map +1 -1
  308. package/dist/constants/route-page-map/index.js.map +1 -1
  309. package/dist/constants/status/index.esm.js.map +1 -1
  310. package/dist/constants/status/index.js.map +1 -1
  311. package/dist/contexts/AuthContext/index.esm.js +1 -1
  312. package/dist/contexts/AuthContext/index.esm.js.map +1 -1
  313. package/dist/contexts/AuthContext/index.js +1 -1
  314. package/dist/contexts/AuthContext/index.js.map +1 -1
  315. package/dist/contexts/languageContext/index.esm.js +1 -1
  316. package/dist/contexts/languageContext/index.esm.js.map +1 -1
  317. package/dist/contexts/languageContext/index.js +1 -1
  318. package/dist/contexts/languageContext/index.js.map +1 -1
  319. package/dist/contexts/page-context/index.esm.js.map +1 -1
  320. package/dist/contexts/page-context/index.js.map +1 -1
  321. package/dist/hooks/use-translations/index.esm.js.map +1 -1
  322. package/dist/hooks/use-translations/index.js.map +1 -1
  323. package/dist/hooks/useApi/index.esm.js.map +1 -1
  324. package/dist/hooks/useApi/index.js.map +1 -1
  325. package/dist/hooks/useDataFetcher/index.esm.js.map +1 -1
  326. package/dist/hooks/useDataFetcher/index.js.map +1 -1
  327. package/dist/layout/fullScreen/fullScreen/index.esm.js.map +1 -1
  328. package/dist/layout/fullScreen/fullScreen/index.js.map +1 -1
  329. package/dist/layout/sidebarScreen/sidebarScreen/index.esm.js.map +1 -1
  330. package/dist/layout/sidebarScreen/sidebarScreen/index.js.map +1 -1
  331. package/dist/node_modules/@glideapps/glide-data-grid-cells/dist/js/article-cell-editor-JDI676YI/index.esm.js +1 -1
  332. package/dist/node_modules/@glideapps/glide-data-grid-cells/dist/js/article-cell-editor-JDI676YI/index.js +2 -2
  333. package/dist/node_modules/@glideapps/glide-data-grid-cells/dist/js/article-cell-editor-JDI676YI/index.js.map +1 -1
  334. package/dist/node_modules/@mui/system/colorManipulator/index.esm.js +2 -2
  335. package/dist/node_modules/@mui/system/colorManipulator/index.js +1 -1
  336. package/dist/node_modules/@mui/system/colorManipulator/index.js.map +1 -1
  337. package/dist/node_modules/@mui/system/createStyled/index.esm.js +6 -6
  338. package/dist/node_modules/@mui/system/createStyled/index.js +1 -1
  339. package/dist/node_modules/@mui/system/createStyled/index.js.map +1 -1
  340. package/dist/node_modules/@mui/system/useThemeWithoutDefault/index.esm.js +1 -1
  341. package/dist/node_modules/@mui/system/useThemeWithoutDefault/index.js +1 -1
  342. package/dist/node_modules/{material-react-table/node_modules/@tanstack → @tanstack}/react-virtual/dist/esm/index/index.esm.js +2 -2
  343. package/dist/node_modules/@tanstack/react-virtual/dist/esm/index/index.esm.js.map +1 -0
  344. package/dist/node_modules/@tanstack/react-virtual/dist/esm/index/index.js +2 -0
  345. package/dist/node_modules/@tanstack/react-virtual/dist/esm/index/index.js.map +1 -0
  346. package/dist/node_modules/{@glideapps/glide-data-grid-cells/node_modules/@toast-ui → @toast-ui}/react-editor/dist/esm/index/index.esm.js +2 -2
  347. package/dist/node_modules/@toast-ui/react-editor/dist/esm/index/index.esm.js.map +1 -0
  348. package/dist/node_modules/@toast-ui/react-editor/dist/esm/index/index.js +2 -0
  349. package/dist/node_modules/@toast-ui/react-editor/dist/esm/index/index.js.map +1 -0
  350. package/dist/node_modules/material-react-table/dist/index.esm/index.esm.js +1 -1
  351. package/dist/node_modules/material-react-table/dist/index.esm/index.js +1 -1
  352. package/dist/node_modules/material-react-table/dist/index.esm/index.js.map +1 -1
  353. package/dist/redux/actionCreator/index.esm.js.map +1 -1
  354. package/dist/redux/actionCreator/index.js.map +1 -1
  355. package/dist/redux/module-reducer/index.esm.js.map +1 -1
  356. package/dist/redux/module-reducer/index.js.map +1 -1
  357. package/dist/redux/store/index.esm.js.map +1 -1
  358. package/dist/redux/store/index.js.map +1 -1
  359. package/dist/server/index.esm.js.map +1 -1
  360. package/dist/server/index.js.map +1 -1
  361. package/dist/src/components/accordion/accordion.d.ts +1 -1
  362. package/dist/src/components/action-bar/action-bar.d.ts +1 -1
  363. package/dist/src/components/checkbox/checkbox.d.ts +1 -1
  364. package/dist/src/components/date-picker/date-picker.d.ts +1 -1
  365. package/dist/src/components/footer/footer.d.ts +1 -1
  366. package/dist/src/components/form-control/form-builder/form-builder-element/media.d.ts +1 -1
  367. package/dist/src/components/form-control/form-builder/form-builder-element/phone.d.ts +1 -1
  368. package/dist/src/components/form-control/form-builder/form-builder-element/select.d.ts +1 -1
  369. package/dist/src/components/form-control/form-builder/form-builder-element/text.d.ts +1 -1
  370. package/dist/src/components/form-control/form-builder/form-builder-element/time.d.ts +1 -1
  371. package/dist/src/components/form-control/form-parser/form-switcher.d.ts +1 -1
  372. package/dist/src/components/icons/action-arrow.d.ts +3 -3
  373. package/dist/src/components/icons/add-circle.d.ts +3 -3
  374. package/dist/src/components/icons/arrow-bidirectional.d.ts +3 -3
  375. package/dist/src/components/icons/arrow-circle-down.d.ts +3 -3
  376. package/dist/src/components/icons/arrow-down-three.d.ts +3 -3
  377. package/dist/src/components/icons/arrow-down-two.d.ts +3 -3
  378. package/dist/src/components/icons/arrow-down.d.ts +3 -3
  379. package/dist/src/components/icons/arrow-up-down.d.ts +3 -3
  380. package/dist/src/components/icons/arrow-up-two.d.ts +3 -3
  381. package/dist/src/components/icons/assignments.d.ts +3 -3
  382. package/dist/src/components/icons/blank-circle.d.ts +3 -3
  383. package/dist/src/components/icons/block-filled.d.ts +3 -3
  384. package/dist/src/components/icons/calendar-add.d.ts +3 -3
  385. package/dist/src/components/icons/calendar.d.ts +3 -3
  386. package/dist/src/components/icons/checkbox-square.d.ts +3 -3
  387. package/dist/src/components/icons/circular-arrow-setting.d.ts +3 -3
  388. package/dist/src/components/icons/clock.d.ts +3 -3
  389. package/dist/src/components/icons/close.d.ts +3 -3
  390. package/dist/src/components/icons/coin-outline.d.ts +3 -3
  391. package/dist/src/components/icons/copy.d.ts +3 -3
  392. package/dist/src/components/icons/coupon.d.ts +3 -3
  393. package/dist/src/components/icons/cross-hire.d.ts +3 -3
  394. package/dist/src/components/icons/custom-styled-icon.d.ts +3 -3
  395. package/dist/src/components/icons/dashboard.d.ts +3 -3
  396. package/dist/src/components/icons/document-download.d.ts +3 -3
  397. package/dist/src/components/icons/document.d.ts +3 -3
  398. package/dist/src/components/icons/dollar-circle-filled.d.ts +3 -3
  399. package/dist/src/components/icons/dollar-circle.d.ts +3 -3
  400. package/dist/src/components/icons/edit.d.ts +3 -3
  401. package/dist/src/components/icons/email.d.ts +3 -3
  402. package/dist/src/components/icons/export.d.ts +3 -3
  403. package/dist/src/components/icons/eye-off.d.ts +3 -3
  404. package/dist/src/components/icons/eye-plus-circle.d.ts +3 -3
  405. package/dist/src/components/icons/eye.d.ts +3 -3
  406. package/dist/src/components/icons/filled-circle.d.ts +3 -3
  407. package/dist/src/components/icons/filter-remove.d.ts +3 -3
  408. package/dist/src/components/icons/filter.d.ts +3 -3
  409. package/dist/src/components/icons/folder-save.d.ts +3 -3
  410. package/dist/src/components/icons/grid.d.ts +3 -3
  411. package/dist/src/components/icons/hashtag.d.ts +3 -3
  412. package/dist/src/components/icons/image.d.ts +3 -3
  413. package/dist/src/components/icons/import.d.ts +3 -3
  414. package/dist/src/components/icons/info-circle.d.ts +3 -3
  415. package/dist/src/components/icons/info.d.ts +3 -3
  416. package/dist/src/components/icons/link-horizontal.d.ts +3 -3
  417. package/dist/src/components/icons/link.d.ts +3 -3
  418. package/dist/src/components/icons/location.d.ts +3 -3
  419. package/dist/src/components/icons/lowest-lead-time.d.ts +3 -3
  420. package/dist/src/components/icons/lowest-min-qty.d.ts +3 -3
  421. package/dist/src/components/icons/lowest-price.d.ts +3 -3
  422. package/dist/src/components/icons/more.d.ts +3 -3
  423. package/dist/src/components/icons/notification.d.ts +3 -3
  424. package/dist/src/components/icons/paper-clip.d.ts +3 -3
  425. package/dist/src/components/icons/paragraph.d.ts +3 -3
  426. package/dist/src/components/icons/payment-request.d.ts +3 -3
  427. package/dist/src/components/icons/phone.d.ts +3 -3
  428. package/dist/src/components/icons/printer.d.ts +3 -3
  429. package/dist/src/components/icons/process-calendar.d.ts +3 -3
  430. package/dist/src/components/icons/promotion.d.ts +3 -3
  431. package/dist/src/components/icons/radio-button.d.ts +3 -3
  432. package/dist/src/components/icons/receipt-filled.d.ts +3 -3
  433. package/dist/src/components/icons/receipt-outline.d.ts +3 -3
  434. package/dist/src/components/icons/receipt.d.ts +3 -3
  435. package/dist/src/components/icons/refresh-icon.d.ts +3 -3
  436. package/dist/src/components/icons/replace.d.ts +3 -3
  437. package/dist/src/components/icons/save.d.ts +3 -3
  438. package/dist/src/components/icons/search-status.d.ts +3 -3
  439. package/dist/src/components/icons/search.d.ts +3 -3
  440. package/dist/src/components/icons/settings-fallback.d.ts +3 -3
  441. package/dist/src/components/icons/sort-arrow-icon.d.ts +3 -3
  442. package/dist/src/components/icons/stacked-layer.d.ts +3 -3
  443. package/dist/src/components/icons/start-filled.d.ts +3 -3
  444. package/dist/src/components/icons/three-dot-icon.d.ts +3 -3
  445. package/dist/src/components/icons/tick-circle-filled.d.ts +3 -3
  446. package/dist/src/components/icons/tick-circle.d.ts +3 -3
  447. package/dist/src/components/icons/tick-octagon.d.ts +3 -3
  448. package/dist/src/components/icons/tick.d.ts +3 -3
  449. package/dist/src/components/icons/toggle-switch.d.ts +3 -3
  450. package/dist/src/components/icons/trash.d.ts +3 -3
  451. package/dist/src/components/icons/wave.d.ts +3 -3
  452. package/dist/src/components/icons/with-out-tick-octagon.d.ts +3 -3
  453. package/dist/src/components/icons/work-centre.d.ts +3 -3
  454. package/dist/src/components/location-select.d.ts +1 -1
  455. package/dist/src/components/material-editable-table/material-editable-table.d.ts +1 -1
  456. package/dist/src/components/material-table/material-table.d.ts +1 -1
  457. package/dist/src/components/phone-input/phone-input.d.ts +1 -1
  458. package/dist/src/components/radio/radio.d.ts +1 -1
  459. package/dist/src/components/select/select.d.ts +1 -1
  460. package/dist/src/components/switches/android-12-switch.d.ts +3 -1
  461. package/dist/src/components/text-field/text-field.d.ts +1 -1
  462. package/dist/src/components/time-picker/time-picker.d.ts +1 -1
  463. package/dist/src/components/upload-media/upload-media.d.ts +1 -1
  464. package/dist/src/utils/common-utility.d.ts +1 -1
  465. package/dist/style.css +69 -69
  466. package/dist/styles/index.d.ts +1 -1
  467. package/dist/theme/theme-impl/index.esm.js.map +1 -1
  468. package/dist/theme/theme-impl/index.js.map +1 -1
  469. package/dist/utils/api/index.esm.js +6 -6
  470. package/dist/utils/api/index.esm.js.map +1 -1
  471. package/dist/utils/api/index.js +1 -1
  472. package/dist/utils/api/index.js.map +1 -1
  473. package/dist/utils/common/index.esm.js +6 -6
  474. package/dist/utils/common/index.esm.js.map +1 -1
  475. package/dist/utils/common/index.js +1 -1
  476. package/dist/utils/common/index.js.map +1 -1
  477. package/dist/utils/common-utility.d.ts +1 -1
  478. package/dist/utils/date-range/index.esm.js.map +1 -1
  479. package/dist/utils/date-range/index.js.map +1 -1
  480. package/dist/utils/i18n/index.esm.js.map +1 -1
  481. package/dist/utils/i18n/index.js.map +1 -1
  482. package/dist/utils/menu-filter/index.esm.js.map +1 -1
  483. package/dist/utils/menu-filter/index.js.map +1 -1
  484. package/dist/views/404/index.esm.js.map +1 -1
  485. package/dist/views/404/index.js.map +1 -1
  486. package/dist/views/afterAuth/dashboard/dashboard/index.esm.js.map +1 -1
  487. package/dist/views/afterAuth/dashboard/dashboard/index.js.map +1 -1
  488. package/dist/views/afterAuth/dashboard/redux/actionCreator/index.esm.js.map +1 -1
  489. package/dist/views/afterAuth/dashboard/redux/actionCreator/index.js.map +1 -1
  490. package/dist/views/afterAuth/dashboard/redux/reducer/index.esm.js.map +1 -1
  491. package/dist/views/afterAuth/dashboard/redux/reducer/index.js.map +1 -1
  492. package/dist/views/afterAuth/dashboard/redux/state/index.esm.js.map +1 -1
  493. package/dist/views/afterAuth/dashboard/redux/state/index.js.map +1 -1
  494. package/dist/views/afterAuth/page-view/page-view/index.esm.js.map +1 -1
  495. package/dist/views/afterAuth/page-view/page-view/index.js.map +1 -1
  496. package/dist/views/afterAuth/page-view/redux/actionCreator/index.esm.js.map +1 -1
  497. package/dist/views/afterAuth/page-view/redux/actionCreator/index.js.map +1 -1
  498. package/dist/views/afterAuth/page-view/redux/reducer/index.esm.js.map +1 -1
  499. package/dist/views/afterAuth/page-view/redux/reducer/index.js.map +1 -1
  500. package/dist/views/afterAuth/page-view/redux/state/index.esm.js.map +1 -1
  501. package/dist/views/afterAuth/page-view/redux/state/index.js.map +1 -1
  502. package/dist/views/afterAuth/page-view/utils/default-data/index.esm.js.map +1 -1
  503. package/dist/views/afterAuth/page-view/utils/default-data/index.js.map +1 -1
  504. package/dist/views/afterAuth/page-view/utils/local-data/index.esm.js.map +1 -1
  505. package/dist/views/afterAuth/page-view/utils/local-data/index.js.map +1 -1
  506. package/dist/views/beforeAuth/change-password/change-password/index.esm.js.map +1 -1
  507. package/dist/views/beforeAuth/change-password/change-password/index.js.map +1 -1
  508. package/dist/views/beforeAuth/components/activity-tag-data/activity-tag-data/index.esm.js.map +1 -1
  509. package/dist/views/beforeAuth/components/activity-tag-data/activity-tag-data/index.js.map +1 -1
  510. package/dist/views/beforeAuth/components/calendar-data/calendar-data/index.esm.js.map +1 -1
  511. package/dist/views/beforeAuth/components/calendar-data/calendar-data/index.js.map +1 -1
  512. package/dist/views/beforeAuth/components/gantt-data/gantt-data/index.esm.js.map +1 -1
  513. package/dist/views/beforeAuth/components/gantt-data/gantt-data/index.js.map +1 -1
  514. package/dist/views/beforeAuth/components/grid-data/grid-data/index.esm.js.map +1 -1
  515. package/dist/views/beforeAuth/components/grid-data/grid-data/index.js.map +1 -1
  516. package/dist/views/beforeAuth/components/kanbann-content/kanbann-raw/index.esm.js.map +1 -1
  517. package/dist/views/beforeAuth/components/kanbann-content/kanbann-raw/index.js.map +1 -1
  518. package/dist/views/beforeAuth/components/list-content/column-raw/index.esm.js.map +1 -1
  519. package/dist/views/beforeAuth/components/list-content/column-raw/index.js.map +1 -1
  520. package/dist/views/beforeAuth/components/list-content/list-data/index.esm.js.map +1 -1
  521. package/dist/views/beforeAuth/components/list-content/list-data/index.js.map +1 -1
  522. package/dist/views/beforeAuth/components/multiline-data/multiline-data/index.esm.js.map +1 -1
  523. package/dist/views/beforeAuth/components/multiline-data/multiline-data/index.js.map +1 -1
  524. package/dist/views/beforeAuth/components/share-modal-data/share-modal-data/index.esm.js.map +1 -1
  525. package/dist/views/beforeAuth/components/share-modal-data/share-modal-data/index.js.map +1 -1
  526. package/dist/views/beforeAuth/components/shared-pages-data/shared-pages-data/index.esm.js.map +1 -1
  527. package/dist/views/beforeAuth/components/shared-pages-data/shared-pages-data/index.js.map +1 -1
  528. package/dist/views/beforeAuth/components/tabs-data/tabs-data/index.esm.js.map +1 -1
  529. package/dist/views/beforeAuth/components/tabs-data/tabs-data/index.js.map +1 -1
  530. package/dist/views/beforeAuth/components/user-dashboard-data/user-dashboard-data/index.esm.js.map +1 -1
  531. package/dist/views/beforeAuth/components/user-dashboard-data/user-dashboard-data/index.js.map +1 -1
  532. package/dist/views/beforeAuth/components/user-dropdown-data/user-dropdown-data/index.esm.js.map +1 -1
  533. package/dist/views/beforeAuth/components/user-dropdown-data/user-dropdown-data/index.js.map +1 -1
  534. package/dist/views/beforeAuth/forgot-password/forgot-password/index.esm.js.map +1 -1
  535. package/dist/views/beforeAuth/forgot-password/forgot-password/index.js.map +1 -1
  536. package/dist/views/beforeAuth/landing/landing/index.esm.js.map +1 -1
  537. package/dist/views/beforeAuth/landing/landing/index.js.map +1 -1
  538. package/dist/views/beforeAuth/reset-password/reset-password/index.esm.js.map +1 -1
  539. package/dist/views/beforeAuth/reset-password/reset-password/index.js.map +1 -1
  540. package/dist/views/form-builder/custom-form/index.esm.js.map +1 -1
  541. package/dist/views/form-builder/custom-form/index.js.map +1 -1
  542. package/dist/views/form-builder/element-edit-forms/checkbox/index.esm.js.map +1 -1
  543. package/dist/views/form-builder/element-edit-forms/checkbox/index.js.map +1 -1
  544. package/dist/views/form-builder/element-edit-forms/column-width/index.esm.js.map +1 -1
  545. package/dist/views/form-builder/element-edit-forms/column-width/index.js.map +1 -1
  546. package/dist/views/form-builder/element-edit-forms/field-select/index.esm.js.map +1 -1
  547. package/dist/views/form-builder/element-edit-forms/field-select/index.js.map +1 -1
  548. package/dist/views/form-builder/element-edit-forms/section/index.esm.js.map +1 -1
  549. package/dist/views/form-builder/element-edit-forms/section/index.js.map +1 -1
  550. package/dist/views/form-builder/element-edit-forms/select/index.esm.js.map +1 -1
  551. package/dist/views/form-builder/element-edit-forms/select/index.js.map +1 -1
  552. package/dist/views/form-builder/element-edit-forms/table-form/index.esm.js.map +1 -1
  553. package/dist/views/form-builder/element-edit-forms/table-form/index.js.map +1 -1
  554. package/dist/views/form-builder/element-edit-forms/text/index.esm.js.map +1 -1
  555. package/dist/views/form-builder/element-edit-forms/text/index.js.map +1 -1
  556. package/dist/views/form-builder/field_properties/index.esm.js.map +1 -1
  557. package/dist/views/form-builder/field_properties/index.js.map +1 -1
  558. package/dist/views/form-builder/form-fields/index.esm.js.map +1 -1
  559. package/dist/views/form-builder/form-fields/index.js.map +1 -1
  560. package/dist/views/form-builder/redux/actionCreator/index.esm.js +1 -1
  561. package/dist/views/form-builder/redux/actionCreator/index.esm.js.map +1 -1
  562. package/dist/views/form-builder/redux/actionCreator/index.js +1 -1
  563. package/dist/views/form-builder/redux/actionCreator/index.js.map +1 -1
  564. package/dist/views/form-builder/redux/reducer/index.esm.js.map +1 -1
  565. package/dist/views/form-builder/redux/reducer/index.js.map +1 -1
  566. package/dist/views/form-builder/redux/state/index.esm.js.map +1 -1
  567. package/dist/views/form-builder/redux/state/index.js.map +1 -1
  568. package/dist/views/form-builder/utils/common/index.esm.js.map +1 -1
  569. package/dist/views/form-builder/utils/common/index.js.map +1 -1
  570. package/dist/views/index.d.ts +8 -8
  571. package/dist/views/privateRoute/index.esm.js.map +1 -1
  572. package/dist/views/privateRoute/index.js.map +1 -1
  573. package/dist/views/template-editor/add-template/add-template/index.esm.js.map +1 -1
  574. package/dist/views/template-editor/add-template/add-template/index.js.map +1 -1
  575. package/dist/views/template-editor/company-selection-modal/company-selection-modal/index.esm.js.map +1 -1
  576. package/dist/views/template-editor/company-selection-modal/company-selection-modal/index.js.map +1 -1
  577. package/dist/views/template-editor/components/EditorCanvas/index.esm.js.map +1 -1
  578. package/dist/views/template-editor/components/EditorCanvas/index.js.map +1 -1
  579. package/dist/views/template-editor/components/EditorHeader/index.esm.js.map +1 -1
  580. package/dist/views/template-editor/components/EditorHeader/index.js.map +1 -1
  581. package/dist/views/template-editor/components/EditorSection/index.esm.js.map +1 -1
  582. package/dist/views/template-editor/components/EditorSection/index.js.map +1 -1
  583. package/dist/views/template-editor/components/EditorSidebar/index.esm.js +1 -1
  584. package/dist/views/template-editor/components/EditorSidebar/index.esm.js.map +1 -1
  585. package/dist/views/template-editor/components/EditorSidebar/index.js +1 -1
  586. package/dist/views/template-editor/components/EditorSidebar/index.js.map +1 -1
  587. package/dist/views/template-editor/components/SectionFlowEditor/index.esm.js.map +1 -1
  588. package/dist/views/template-editor/components/SectionFlowEditor/index.js.map +1 -1
  589. package/dist/views/template-editor/components/SectionFormatPanel/index.esm.js.map +1 -1
  590. package/dist/views/template-editor/components/SectionFormatPanel/index.js.map +1 -1
  591. package/dist/views/template-editor/components/controllers/AlignmentControl/index.esm.js.map +1 -1
  592. package/dist/views/template-editor/components/controllers/AlignmentControl/index.js.map +1 -1
  593. package/dist/views/template-editor/components/controllers/ButtonControls/index.esm.js.map +1 -1
  594. package/dist/views/template-editor/components/controllers/ButtonControls/index.js.map +1 -1
  595. package/dist/views/template-editor/components/controllers/CodeControls/index.esm.js.map +1 -1
  596. package/dist/views/template-editor/components/controllers/CodeControls/index.js.map +1 -1
  597. package/dist/views/template-editor/components/controllers/DividerControls/index.esm.js.map +1 -1
  598. package/dist/views/template-editor/components/controllers/DividerControls/index.js.map +1 -1
  599. package/dist/views/template-editor/components/controllers/ImageControls/index.esm.js.map +1 -1
  600. package/dist/views/template-editor/components/controllers/ImageControls/index.js.map +1 -1
  601. package/dist/views/template-editor/components/controllers/SignatureControls/index.esm.js.map +1 -1
  602. package/dist/views/template-editor/components/controllers/SignatureControls/index.js.map +1 -1
  603. package/dist/views/template-editor/components/controllers/TableControls/index.esm.js.map +1 -1
  604. package/dist/views/template-editor/components/controllers/TableControls/index.js.map +1 -1
  605. package/dist/views/template-editor/components/controllers/TextControls/index.esm.js.map +1 -1
  606. package/dist/views/template-editor/components/controllers/TextControls/index.js.map +1 -1
  607. package/dist/views/template-editor/components/controllers/border-control/index.esm.js.map +1 -1
  608. package/dist/views/template-editor/components/controllers/border-control/index.js.map +1 -1
  609. package/dist/views/template-editor/edit-section-modal/edit-section-modal/index.esm.js.map +1 -1
  610. package/dist/views/template-editor/edit-section-modal/edit-section-modal/index.js.map +1 -1
  611. package/dist/views/template-editor/routes/index.esm.js.map +1 -1
  612. package/dist/views/template-editor/routes/index.js.map +1 -1
  613. package/dist/views/template-editor/template-modal/html-thumbnail-preview/index.esm.js.map +1 -1
  614. package/dist/views/template-editor/template-modal/html-thumbnail-preview/index.js.map +1 -1
  615. package/dist/views/template-editor/template-modal/template-modal/index.esm.js.map +1 -1
  616. package/dist/views/template-editor/template-modal/template-modal/index.js.map +1 -1
  617. package/dist/views/template-editor/template-name-modal/template-name-modal/index.esm.js.map +1 -1
  618. package/dist/views/template-editor/template-name-modal/template-name-modal/index.js.map +1 -1
  619. package/dist/views/template-editor/templates/index.esm.js +1 -1
  620. package/dist/views/template-editor/templates/index.esm.js.map +1 -1
  621. package/dist/views/template-editor/templates/index.js +1 -1
  622. package/dist/views/template-editor/templates/index.js.map +1 -1
  623. package/dist/views/template-editor/utils/common/index.esm.js.map +1 -1
  624. package/dist/views/template-editor/utils/common/index.js.map +1 -1
  625. package/dist/views/template-editor/utils/constant/index.esm.js.map +1 -1
  626. package/dist/views/template-editor/utils/constant/index.js.map +1 -1
  627. package/dist/views/template-editor/utils/default-data/index.esm.js.map +1 -1
  628. package/dist/views/template-editor/utils/default-data/index.js.map +1 -1
  629. package/dist/views/template-editor/utils/style-extractor/index.esm.js.map +1 -1
  630. package/dist/views/template-editor/utils/style-extractor/index.js.map +1 -1
  631. package/dist/vite-env.d.ts +23 -23
  632. package/package.json +299 -299
  633. package/src/styles/README.md +287 -287
  634. package/src/styles/all.scss +7 -7
  635. package/src/styles/animations.scss +5 -5
  636. package/src/styles/css/reset.css +1 -1
  637. package/src/styles/index.d.ts +1 -1
  638. package/src/styles/index.ts +1 -1
  639. package/src/styles/mixins.scss +5 -5
  640. package/src/styles/sass/main.scss +11 -11
  641. package/src/styles/utils.scss +5 -5
  642. package/src/styles/variables.scss +4 -4
  643. package/dist/node_modules/@glideapps/glide-data-grid-cells/node_modules/@toast-ui/react-editor/dist/esm/index/index.esm.js.map +0 -1
  644. package/dist/node_modules/@glideapps/glide-data-grid-cells/node_modules/@toast-ui/react-editor/dist/esm/index/index.js +0 -2
  645. package/dist/node_modules/@glideapps/glide-data-grid-cells/node_modules/@toast-ui/react-editor/dist/esm/index/index.js.map +0 -1
  646. package/dist/node_modules/material-react-table/node_modules/@tanstack/react-virtual/dist/esm/index/index.esm.js.map +0 -1
  647. package/dist/node_modules/material-react-table/node_modules/@tanstack/react-virtual/dist/esm/index/index.js +0 -2
  648. package/dist/node_modules/material-react-table/node_modules/@tanstack/react-virtual/dist/esm/index/index.js.map +0 -1
@@ -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 */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__ */
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__ */
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);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:[
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:[
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: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"})}),
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"})}),
19
19
  /* @__PURE__ */e.jsxs(_.default,{sx:{display:"flex",gap:1},children:[
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;
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;
22
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/filter/filter.tsx"],"sourcesContent":["/* eslint-disable */\r\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\r\nimport type { RuleGroupType } from \"react-querybuilder\";\r\nimport \"react-querybuilder/dist/query-builder.scss\";\r\nimport { QueryBuilder /* , formatQuery */ } from \"react-querybuilder\";\r\nimport { QueryBuilderMaterial } from \"@react-querybuilder/material\";\r\nimport {\r\n Box,\r\n IconButton,\r\n MenuItem,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n DialogActions,\r\n OutlinedInput,\r\n InputAdornment,\r\n Alert,\r\n} from \"@mui/material\";\r\nimport \"./filter.scss\";\r\nimport Select from \"../select/select\";\r\nimport Typography from \"../typography/typography\";\r\nimport { Close } from \"@mui/icons-material\";\r\nimport CombinatorSelect from \"./components/combinator-select\";\r\nimport RemoveAction from \"./components/remove-action\";\r\nimport FieldSelect from \"./components/field-select\";\r\nimport AddFilterButton from \"./components/add-filter\";\r\nimport AddGroupButton from \"./components/add-group\";\r\nimport ValueEditor from \"./components/value-editor\";\r\nimport OperatorSelect from \"./components/operator-select\";\r\nimport Button from \"../button/button\";\r\nimport RemoveGroupAction from \"./components/delete-group\";\r\nimport SearchBar from \"../search-bar/search-bar\";\r\nimport SaveFilterModal from \"../save-filter-modal/save-filter-modal\";\r\n\r\nimport {\r\n setBaseUrl,\r\n putV1FilterId,\r\n deleteV1FilterId,\r\n} from \"../../api-client/api.system-feature/api\";\r\nimport type * as Types from \"../../api-client/api.system-feature/api-types\";\r\nimport { auth } from \"../../constants/auth\";\r\nimport { generateFields, generateQueryString, getErrorMessage } from \"../../utils/common\";\r\nimport { usePages } from \"../../hooks/use-pages\";\r\nimport _ from \"lodash\";\r\nimport { Edit, Trash } from \"../icons\";\r\nimport { enqueueSnackbar } from \"notistack\";\r\nimport { IResources, routeToResourceMap } from \"../../constants/route-page-map\";\r\nimport { useLocation } from \"react-router-dom\";\r\nimport { useLanguage } from \"../../hooks/useLangauge\";\r\n\r\nsetBaseUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/system-feature`);\r\n\r\ninterface IFilter {\r\n open: boolean;\r\n onClose: () => void;\r\n activeView?: string;\r\n savedFilters?: SavedFilter[];\r\n fetchSavedFilters?: () => Promise<void>;\r\n setFilterBar?: any;\r\n onSaveFilter?: (query: RuleGroupType) => void;\r\n onSelectedFilter?: (filterName: string) => void;\r\n fields: any;\r\n applyFilter: any;\r\n isUseFields?: boolean;\r\n}\r\n\r\ninterface SavedFilter {\r\n id: string;\r\n name: string;\r\n query: RuleGroupType;\r\n}\r\n\r\nconst initialQuery: RuleGroupType = { combinator: \"and\", rules: [] };\r\n\r\nconst Filter = ({\r\n open,\r\n onClose,\r\n // activeView,\r\n savedFilters,\r\n fetchSavedFilters,\r\n onSaveFilter,\r\n onSelectedFilter,\r\n applyFilter,\r\n fields = [],\r\n isUseFields = false\r\n}: IFilter) => {\r\n const location = useLocation();\r\n\r\n const token = localStorage.getItem(auth.storageTokenKeyName);\r\n const { updatePageInfo, activePage, schemaFields, setActivePage } = usePages()\r\n\r\n fields = isUseFields ? generateFields(fields) : (schemaFields.length ? generateFields(schemaFields) : fields)\r\n const [query, setQuery] = useState<RuleGroupType>(initialQuery);\r\n const [filteredSavedFilters, setFilteredSavedFilters] = useState<\r\n SavedFilter[]\r\n >(savedFilters ?? []);\r\n const [selectedFilter, setSelectedFilter] = useState<any>(null);\r\n const [openRenameFilter, setIsOpenRenameFilter] = useState<any>(null);\r\n const [errorMessage, setErrorMessage] = useState<string | null>(null);\r\n const { isRtl } = useLanguage();\r\n const resources: IResources = useMemo(() => routeToResourceMap[location.pathname] || null, [location.pathname])\r\n\r\n useEffect(() => {\r\n savedFilters && setFilteredSavedFilters(savedFilters);\r\n }, [savedFilters]);\r\n\r\n\r\n const handleApplyFilter = useCallback((clear: boolean = false) => {\r\n let q = query\r\n const isInvalid = isDuplicatedFilters(q)\r\n if (isInvalid) {\r\n setErrorMessage(\"Invalid filter\")\r\n return\r\n }\r\n if (clear) {\r\n q = initialQuery\r\n setQuery(q)\r\n } else {\r\n const generatedSQLQuery = q ? generateQueryString(q) : q;\r\n updatePageInfo({ filters: q, filterQueryString: generatedSQLQuery })\r\n // applyFilter(generatedSQLQuery);\r\n onClose();\r\n }\r\n }, [query, applyFilter, onClose]);\r\n\r\n const handleQueryChange = (q: RuleGroupType) => {\r\n const updatedRules = q.rules.map((rule, i) => ({\r\n ...rule,\r\n value: rule.field !== query.rules?.[i]?.field || ['null', 'notNull'].includes(rule.operator) ? \"\" : rule.value\r\n }));\r\n let isValid = true;\r\n let errorMessage = '';\r\n\r\n // // Helper function to check for invalid aggregate usage, considering parent combinators\r\n // const checkForInvalidAggregateUsage = (rules: any[], combinator: string, parentCombinator: string | null): boolean => {\r\n // let hasAggregateField = false;\r\n // let hasNonAggregateField = false;\r\n\r\n // rules.forEach(rule => {\r\n // // Check nested groups\r\n // if (rule.rules) {\r\n // // If the current group or any parent has an 'OR', pass it down\r\n // const currentCombinator = combinator === 'or' || parentCombinator === 'or' ? 'or' : combinator;\r\n // checkForInvalidAggregateUsage(rule.rules, rule.combinator, currentCombinator);\r\n // } else {\r\n // // Find the field in the fields array and check if it's an aggregate\r\n // const field = fields.find((f: any) => f.name === rule.field);\r\n\r\n // if (field?.is_aggregate) {\r\n // hasAggregateField = true;\r\n // } else {\r\n // hasNonAggregateField = true;\r\n // }\r\n // }\r\n // });\r\n\r\n // // If any parent or current rule uses 'OR' with a mix of aggregate and non-aggregate fields, it's invalid\r\n // if ((combinator === 'or' || parentCombinator === 'or') && hasAggregateField && hasNonAggregateField) {\r\n // isValid = false;\r\n // errorMessage = 'Mixing aggregate and non-aggregate fields in OR conditions may lead to unexpected results.';\r\n // }\r\n\r\n // return isValid;\r\n // };\r\n\r\n // Start checking from the root level (no parent combinator initially)\r\n\r\n\r\n // Always set the query, regardless of validity\r\n setQuery({ ...q, rules: updatedRules });\r\n\r\n // Set error message if invalid, otherwise clear it\r\n if (!isValid) {\r\n setErrorMessage(errorMessage);\r\n } else {\r\n setErrorMessage(null);\r\n }\r\n\r\n // Always call onSaveFilter, if it exists\r\n if (onSaveFilter) {\r\n onSaveFilter(q);\r\n }\r\n };\r\n\r\n const handleFilterSwitch = (sf?: any) => {\r\n if (sf) {\r\n setSelectedFilter(sf);\r\n setQuery(sf.query);\r\n if (onSelectedFilter) {\r\n onSelectedFilter(sf);\r\n }\r\n } else {\r\n setSelectedFilter(null);\r\n setQuery(initialQuery);\r\n if (onSelectedFilter) {\r\n onSelectedFilter(null);\r\n }\r\n }\r\n };\r\n\r\n const handleSearchEvent = (searchText: string) => {\r\n const filteredFilters = savedFilters?.filter((filter: any) =>\r\n filter.name.toLowerCase().includes(searchText.toLowerCase())\r\n );\r\n if (filteredFilters) {\r\n setFilteredSavedFilters(filteredFilters);\r\n }\r\n };\r\n\r\n const handleRenameFilter = async (filterId: string, newName: string) => {\r\n const putFilterRequest: Types.PutV1FilterIdRequest = {\r\n \"x-token\": token,\r\n id: filterId,\r\n name: newName,\r\n module: resources?.fieldResource || resources?.pageResource\r\n };\r\n\r\n try {\r\n await putV1FilterId(putFilterRequest)\r\n // setSelectedFilter(newName);\r\n if (fetchSavedFilters) {\r\n fetchSavedFilters();\r\n }\r\n enqueueSnackbar('Filters renamed successfully.')\r\n } catch (error) {\r\n let m: string = 'Something went wrong on saving filters'\r\n if (error instanceof Error) {\r\n m = getErrorMessage(error.message)\r\n }\r\n enqueueSnackbar(m, { variant: 'error' })\r\n return false\r\n }\r\n return true\r\n };\r\n const handleUpdateSelectedFilterQuery = async () => {\r\n if (selectedFilter) {\r\n\r\n const putFilterRequest: Types.PutV1FilterIdRequest = {\r\n \"x-token\": token,\r\n id: selectedFilter.id,\r\n data: query,\r\n };\r\n\r\n putV1FilterId(putFilterRequest)\r\n .then((response: any) => {\r\n if (fetchSavedFilters) {\r\n fetchSavedFilters();\r\n }\r\n setActivePage((prev: any) => ({\r\n ...prev,\r\n filters: {\r\n ...prev.filters,\r\n rules: query.rules,\r\n combinator: query.combinator,\r\n name: selectedFilter.name\r\n\r\n }\r\n }));\r\n })\r\n .catch((err: any) => enqueueSnackbar(\"Error renaming saved filters:\", { variant: 'error' }));\r\n }\r\n };\r\n\r\n const handleSubmitRename = (name: string) => {\r\n if (openRenameFilter) {\r\n return handleRenameFilter(openRenameFilter.id, name);\r\n }\r\n };\r\n\r\n const handleDeleteFilter = async (filterId: string) => {\r\n const deleteFilterRequest: Types.DeleteV1FilterIdRequest = {\r\n \"x-token\": token,\r\n id: filterId,\r\n };\r\n\r\n deleteV1FilterId(deleteFilterRequest)\r\n .then((response: any) => {\r\n setSelectedFilter(null);\r\n setQuery(initialQuery);\r\n if (fetchSavedFilters) {\r\n fetchSavedFilters();\r\n }\r\n\r\n })\r\n .catch((err: any) => console.log(\"Error deleting saved filters:\", err));\r\n };\r\n\r\n useEffect(() => {\r\n let q = initialQuery\r\n if (!_.isEmpty(activePage.filters)) {\r\n q = activePage.filters\r\n }\r\n setQuery(q)\r\n const selectedFilter = savedFilters?.find((f: any) => f.name === activePage?.filters?.name);\r\n setSelectedFilter(selectedFilter || null);\r\n }, [activePage?.filters, savedFilters]);\r\n\r\n const isDuplicatedFilters = (rule) => {\r\n let uniques: string[] = []\r\n rule?.rules?.forEach((r: any) => {\r\n if (uniques.includes(r.field) && rule.combinator == 'and') {\r\n return true\r\n }\r\n uniques.push(r.field)\r\n })\r\n return uniques.length !== rule?.rules?.length\r\n }\r\n\r\n\r\n const isRuleInvalid = (rule: any): boolean => {\r\n // If it's a group (has nested rules), recurse\r\n if (Array.isArray(rule.rules)) {\r\n return rule.rules.length ? rule.rules.some(isRuleInvalid) : !rule.rules.length;\r\n }\r\n\r\n // Otherwise, validate individual rule\r\n return (\r\n !rule.field ||\r\n (_.isEmpty(rule.value) && !['null', 'notNull'].includes(rule.operator))\r\n );\r\n };\r\n\r\n const disabled = useMemo(() => isRuleInvalid(query) || errorMessage, [query, errorMessage])\r\n // const disabled = isRuleInvalid(query) || errorMessage;\r\n\r\n return (\r\n <div>\r\n <Dialog\r\n open={open}\r\n onClose={onClose}\r\n maxWidth='md'\r\n fullWidth={true}\r\n PaperProps={{\r\n sx: { borderRadius: 2 }\r\n }}\r\n >\r\n <DialogTitle className=\"filter-header\">\r\n <Typography type=\"s3\" weight=\"medium\" color=\"theme.secondary.1000\">\r\n Filters\r\n </Typography>\r\n <Box gap={1} display={\"flex\"}>\r\n <Select\r\n fullWidth\r\n size=\"small\"\r\n className=\"filter-dropdown\"\r\n value={selectedFilter ? selectedFilter.name : \"Saved Filters\"}\r\n onChange={(event: any) => {\r\n const sf = savedFilters?.find(f => f.name == event.target.value)\r\n handleFilterSwitch(sf)\r\n }}\r\n variant=\"outlined\"\r\n onClose={() => {\r\n setTimeout(() => {\r\n handleSearchEvent(\"\")\r\n }, 500);\r\n }}\r\n input={\r\n selectedFilter ? (\r\n <OutlinedInput\r\n label=''\r\n endAdornment={\r\n <InputAdornment position='end'>\r\n <IconButton\r\n aria-label='clear selection'\r\n onClick={() => {\r\n handleFilterSwitch()\r\n }}\r\n edge='end'\r\n sx={{ mr: 1.5 }}\r\n size='small'>\r\n <Close sx={{ fontSize: '1rem' }} />\r\n </IconButton>\r\n </InputAdornment>\r\n }\r\n />\r\n ) : undefined\r\n }\r\n >\r\n <div className=\"searchbar-box-list\">\r\n <SearchBar\r\n placeholder={\"Search Filters\"}\r\n handleSearch={(e) => handleSearchEvent(e)}\r\n />\r\n </div>\r\n {/* <Typography\r\n color=\"theme.secondary.1000\"\r\n type=\"s4\"\r\n className=\"filter-title\"\r\n >\r\n Saved Filters\r\n </Typography> */}\r\n {filteredSavedFilters?.map((savedFilter: SavedFilter) => (\r\n <MenuItem\r\n key={savedFilter.id}\r\n value={savedFilter?.name}\r\n className=\"menu-list\"\r\n selected={selectedFilter?.name == savedFilter?.name}\r\n >\r\n <Typography color=\"theme.secondary.1000\" type=\"s3\">\r\n {savedFilter?.name}\r\n </Typography>\r\n\r\n <div className=\"icon-list\">\r\n <IconButton size=\"small\" onClick={(e) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n setIsOpenRenameFilter(savedFilter)\r\n }}>\r\n <Edit fontSize=\"small\" color={selectedFilter?.name == savedFilter?.name ? \"theme.primary.800\" : 'inherit'} />\r\n </IconButton>\r\n <IconButton size=\"small\" onClick={(e) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n handleDeleteFilter(savedFilter.id)\r\n }} color=\"error\">\r\n <Trash fontSize=\"small\" color=\"theme.error.600\" />\r\n </IconButton>\r\n </div>\r\n </MenuItem>\r\n ))}\r\n </Select>\r\n <SaveFilterModal\r\n open={openRenameFilter !== null}\r\n onClose={() => setIsOpenRenameFilter(null)}\r\n handleSubmit={(name) => handleSubmitRename(name)}\r\n oldName={openRenameFilter?.name}\r\n />\r\n <Box>\r\n <IconButton size=\"small\" onClick={onClose}>\r\n <Close fontSize=\"small\" />\r\n </IconButton>\r\n </Box>\r\n </Box>\r\n </DialogTitle>\r\n <DialogContent className=\"content\">\r\n {/* Display error message */}\r\n {errorMessage && (\r\n <Alert severity=\"error\" sx={{ px: 1, pt: 0.5, mb: 1 }}>\r\n <Typography\r\n color=\"error\"\r\n type=\"s4\"\r\n >\r\n {errorMessage}\r\n </Typography>\r\n </Alert>\r\n )}\r\n <QueryBuilderMaterial>\r\n <QueryBuilder\r\n fields={fields || []}\r\n query={query}\r\n onQueryChange={handleQueryChange}\r\n showCombinatorsBetweenRules={true}\r\n controlClassnames={{\r\n header: \"actions\",\r\n }}\r\n controlElements={{\r\n addRuleAction: AddFilterButton,\r\n addGroupAction: AddGroupButton,\r\n combinatorSelector: CombinatorSelect,\r\n fieldSelector: FieldSelect,\r\n operatorSelector: OperatorSelect,\r\n removeRuleAction: RemoveAction,\r\n valueEditor: ValueEditor,\r\n removeGroupAction: RemoveGroupAction,\r\n }}\r\n />\r\n <Button\r\n variant=\"text\"\r\n className={isRtl ? 'remove-filters_rtl' : 'remove-filters'}\r\n onClick={() => {\r\n handleApplyFilter(true)\r\n }}\r\n disabled={disabled}\r\n >\r\n Clear all filters\r\n </Button>\r\n </QueryBuilderMaterial>\r\n </DialogContent>\r\n <DialogActions className=\"filter-footer\">\r\n <Box sx={{ display: 'flex', alignItems: 'center', justifyContent: selectedFilter ? 'space-between' : 'flex-end', width: '100%' }}>\r\n {selectedFilter &&\r\n <Box>\r\n <Button onClick={handleUpdateSelectedFilterQuery}>\r\n Update Seleted filter\r\n </Button>\r\n </Box>\r\n }\r\n <Box sx={{ display: 'flex', gap: 1 }}>\r\n <Button className=\"cancel-filter-btn\" onClick={onClose}>\r\n Cancel\r\n </Button>\r\n <Button\r\n disabled={disabled}\r\n onClick={() => handleApplyFilter()}\r\n >\r\n Apply\r\n </Button>\r\n </Box>\r\n </Box>\r\n </DialogActions>\r\n </Dialog>\r\n </div>\r\n );\r\n};\r\n\r\nexport { Filter };\r\nexport default Filter;\r\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.MemoExoticComponent<({ pages, setPages, currentPage, setCurrentPage, total, paginationModel, handlePaginationModel, sharedPages, resource, savePageConfiguration, handlePageDelete, enablePages, isPaginationDisplayed, isPageSaving }: IFooter) => import("react/jsx-runtime").JSX.Element>;
20
+ declare const Footer: React.NamedExoticComponent<IFooter>;
21
21
  export { Footer };
22
22
  export default Footer;
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../../../../../../src/components/form-control/form-builder/form-builder-element/dynamic-select.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\r\nimport { Controller, useFormContext, useWatch, Control } from 'react-hook-form';\r\nimport { dynamicSelectAdd } from './select-configuration';\r\nimport {\r\n Box,\r\n CircularProgress,\r\n Divider,\r\n IconButton,\r\n InputAdornment,\r\n MenuItem,\r\n MenuItemProps,\r\n OutlinedInput,\r\n} from '@mui/material';\r\nimport PropTypes from 'prop-types';\r\nimport { debounce } from 'lodash';\r\nimport { sortBy } from \"lodash\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Add, Close } from '@mui/icons-material';\r\n\r\nimport Select from '../../../select/select';\r\nimport ChipOrPlaceholder from './chip-or-placeholder';\r\nimport Checkbox from '../../../checkbox/checkbox';\r\nimport Typography from '../../../typography/typography';\r\nimport Chip from '../../../chip/chip';\r\nimport { MoreIcon } from '../../../icons';\r\nimport { fetchApi } from '../../../../utils/api';\r\nimport { useLanguage } from '../../../../hooks/useLangauge';\r\nimport './element.scss';\r\n\r\n// Types\r\ninterface IOption {\r\n id: string | number;\r\n value: string | number;\r\n label: string | React.ReactNode;\r\n disabled?: boolean;\r\n isGroup?: boolean;\r\n options?: IOption[];\r\n searchLabel?: string;\r\n}\r\n\r\n\r\n\r\ninterface IMenuItemsProps extends MenuItemProps {\r\n options: IOption[];\r\n multiple: boolean;\r\n placeholder: string;\r\n with_checkboxes: boolean;\r\n values: string | string[];\r\n field: IDynamicSearchSelectProps;\r\n disabledIds: (string | number)[];\r\n onChange: (value: string | string[]) => void;\r\n handleChange?: (value: string | string[]) => void;\r\n hasParent: boolean;\r\n t: (key: string) => string;\r\n // onFooterClick?: () => void;\r\n}\r\n\r\ninterface IDynamicSearchSelectProps {\r\n name: string;\r\n placeholder: string;\r\n label: string;\r\n size?: 'small' | 'medium';\r\n options: IOption[];\r\n formControl: Control<any>;\r\n defaultValue?: string | string[];\r\n fieldArrayName: string;\r\n id?: string;\r\n required?: boolean;\r\n is_multiselect?: boolean;\r\n position?: number;\r\n formType?: string;\r\n typeOfField?: string;\r\n disabled?: boolean;\r\n onChipRemove?: (value: string) => void;\r\n enable_footer?: boolean;\r\n footer_action?: string;\r\n onFooterClick?: () => void;\r\n is_loading?: boolean;\r\n selectedLabel?: string;\r\n isInternal?: boolean;\r\n disabledIds?: (string | number)[];\r\n getSelectedData?: (data: IOption | IOption[] | null, name: string) => void;\r\n attributes?: string[];\r\n handleChange?: (value: string | string[]) => void;\r\n hasParent?: boolean;\r\n sortOrder?: string;\r\n apiType?: string;\r\n handleOptions?: (value: any) => void;\r\n filterKey?: string;\r\n customeFilter?: Record<string, any>;\r\n refresh?: boolean;\r\n addType?: string;\r\n}\r\n\r\ninterface IPaginationState {\r\n page: number;\r\n hasMore: boolean;\r\n isLoadingMore: boolean;\r\n total: number;\r\n}\r\n\r\n// Helper function to generate menu items\r\nconst generateMenuItems = ({\r\n options,\r\n multiple,\r\n placeholder,\r\n with_checkboxes,\r\n values,\r\n // field,\r\n disabledIds,\r\n onChange,\r\n handleChange,\r\n hasParent,\r\n t,\r\n // onFooterClick\r\n}: IMenuItemsProps): React.ReactElement[] => {\r\n const itemDisabled = (id: string | number) => disabledIds?.includes(id);\r\n const items: React.ReactElement[] = [];\r\n\r\n if (!multiple) {\r\n items.push(\r\n <MenuItem disabled value='' key=\"placeholder\" sx={{ opacity: `0 !important`, height: `0 !important`, p: `0 !important`, m: `0 !important` }}>\r\n <Typography type='s3' color='theme.secondary.1000'>\r\n <em>{t(placeholder)}</em>\r\n </Typography>\r\n </MenuItem>\r\n );\r\n }\r\n const selectedValues = (Array.isArray(values) && values?.length > 0) ? values?.filter((value) => value) : values;\r\n\r\n const handleParentChange = (parentValue: string, childOptions: IOption[]) => {\r\n const childValues = childOptions.map((child) => child.value);\r\n const valueArray = Array.isArray(selectedValues) ? selectedValues : [selectedValues];\r\n\r\n const isParentSelected = valueArray.includes(parentValue);\r\n const updatedValues = isParentSelected\r\n ? valueArray.filter((value) => value !== parentValue && !childValues.includes(value))\r\n : [...new Set([...valueArray, parentValue, ...childValues])];\r\n\r\n onChange(updatedValues);\r\n handleChange?.(updatedValues);\r\n };\r\n\r\n const isAllOptionsSelected = (parentValue: string, childOptions: IOption[]) => {\r\n const childValues = childOptions.map((child) => child.value);\r\n const valueArray = Array.isArray(selectedValues) ? selectedValues : [selectedValues];\r\n return childValues.every((childValue) => valueArray.includes(childValue));\r\n };\r\n\r\n const isSomeOptionsSelected = (childOptions: IOption[]) => {\r\n const childValues = childOptions.map((child) => child.value);\r\n const valueArray = Array.isArray(selectedValues) ? selectedValues : [selectedValues];\r\n return childValues.some((childValue) => valueArray.includes(childValue));\r\n };\r\n\r\n if (Array.isArray(options) && options.length > 0) {\r\n options.forEach((option) => {\r\n items.push(\r\n <MenuItem\r\n value={option.value}\r\n key={option.value}\r\n disabled={Boolean(option.disabled) || itemDisabled(option.id || option.value)}\r\n className={option.isGroup ? 'select--MenuItemHeader' : ''}\r\n >\r\n <Box sx={{ display: 'flex', gap: 1 }}>\r\n {multiple && with_checkboxes && (\r\n <Checkbox\r\n checked={\r\n hasParent\r\n ? isAllOptionsSelected(option.value, option.options || [])\r\n : Boolean(Array.isArray(selectedValues) ? selectedValues.includes(option.value) : selectedValues == option.value)\r\n }\r\n indeterminate={\r\n hasParent && isSomeOptionsSelected(option.options || [])\r\n }\r\n onChange={() => hasParent ? handleParentChange(option.value, option.options || []) : handleChange?.(option.value)}\r\n />\r\n )}\r\n <Typography\r\n type='s3'\r\n color='theme.secondary.1000'\r\n onClick={() => handleChange?.(option.value)}\r\n >\r\n {option.label}\r\n </Typography>\r\n </Box>\r\n </MenuItem>\r\n );\r\n\r\n if (option.isGroup && Array.isArray(option.options)) {\r\n option.options.forEach((opt) => {\r\n items.push(\r\n <MenuItem\r\n value={opt.value}\r\n disabled={Boolean(opt.disabled) || itemDisabled(opt.id || opt.value)}\r\n sx={{ pl: 5 }}\r\n key={`${option.value}-${opt.value}`}\r\n >\r\n <Box sx={{ display: 'flex', gap: 1 }}>\r\n {multiple && with_checkboxes && (\r\n <Checkbox\r\n checked={Boolean(Array.isArray(values) && values.includes(opt.value))}\r\n />\r\n )}\r\n <Typography\r\n type='s3'\r\n color='theme.secondary.1000'\r\n onClick={() => handleChange?.(String(opt.value))}\r\n >\r\n {opt.label == \"Payment Entries\" ? \"Payment and Collection Entries\" : opt.label || opt.value}\r\n </Typography>\r\n </Box>\r\n </MenuItem>\r\n );\r\n });\r\n }\r\n });\r\n }\r\n\r\n // if (field.enable_footer) {\r\n\r\n // }\r\n\r\n if (!items.length || (items.length == 1 && !multiple)) {\r\n items.push(\r\n <MenuItem disabled key=\"no-data\">\r\n No data available\r\n </MenuItem>\r\n );\r\n }\r\n\r\n return items;\r\n};\r\n\r\n// Selected items component\r\nconst SelectedItems: React.FC<{\r\n data: (string | number)[];\r\n options: IOption[];\r\n}> = ({ data, options }) => {\r\n const displayTitle = data.map(\r\n (selectedItem) =>\r\n options?.find((option) => option.value == selectedItem)?.label || ''\r\n );\r\n const filteredDisplayTitle = displayTitle.filter(Boolean);\r\n\r\n return (\r\n <Typography\r\n type='s4'\r\n color='inherit'\r\n sx={{ display: 'flex', gap: 1, alignItems: 'center', mt: 0.5 }}\r\n >\r\n {filteredDisplayTitle.slice(0, 4).join(', ')}\r\n {data.length > 4 && (\r\n <Chip variant='outlined' type='normal' label={<MoreIcon />} />\r\n )}\r\n </Typography>\r\n );\r\n};\r\n\r\nconst Loading = () => (\r\n <Typography fontStyle='italic' color='inherit' type='s3'>Loading...</Typography>\r\n)\r\n\r\nconst DynamicSearchSelect: React.FC<IDynamicSearchSelectProps> = React.memo((props) => {\r\n const watchedValue = useWatch({\r\n control: props.formControl,\r\n name: `${props.fieldArrayName}.${props.name}`\r\n });\r\n\r\n const formContext = useFormContext();\r\n const { setValue } = formContext || {};\r\n const { t } = useTranslation();\r\n const { isRtl } = useLanguage();\r\n const selectRef = useRef<HTMLDivElement>(null);\r\n\r\n // State management\r\n const [options, setOptions] = useState<IOption[]>([]);\r\n const [selectedValue, setSelectedValue] = useState<any>(null);\r\n const [selectedOptions, setSelectedOptions] = useState<IOption[]>([]);\r\n const [loading, setLoading] = useState<boolean>(false);\r\n const [open, setOpen] = useState<boolean>(false);\r\n const [isAlreadyLoaded, setIsAlreadyLoaded] = useState<boolean>(false);\r\n const [prevFilter, setPrevFilter] = useState<any>(null);\r\n const [initialLoading, setInitialLoading] = useState<boolean>(false);\r\n const [searchQuery, setSearchQuery] = useState<string>(\"\");\r\n const [searchInitiate, setSearchInitiate] = useState<boolean>(false);\r\n const [addConfig, setAddConfig] = useState<any>(null);\r\n\r\n // Modal states\r\n const [isModalOpen, setIsModalOpen] = useState<boolean>(false);\r\n const [isAddLoading, setIsAddLoading] = useState<boolean>(false);\r\n\r\n\r\n // Pagination state\r\n const [pagination, setPagination] = useState<IPaginationState>({\r\n page: 1,\r\n hasMore: true,\r\n isLoadingMore: false,\r\n total: 0\r\n });\r\n\r\n // Props destructuring with defaults\r\n const {\r\n handleOptions,\r\n isInternal = false,\r\n disabledIds = [],\r\n getSelectedData,\r\n attributes = [],\r\n filterKey = 'id',\r\n customeFilter = {},\r\n refresh,\r\n handleChange,\r\n hasParent = false,\r\n sortOrder = 'id:-1',\r\n apiType,\r\n addType\r\n } = props;\r\n\r\n const limit = 25;\r\n\r\n // Memoized values\r\n const isInternalOptions = useMemo(() => {\r\n return isInternal || !apiType;\r\n }, [isInternal, apiType]);\r\n //eslint-disable-next-line\r\n const cf = useMemo(() => customeFilter, [JSON.stringify(customeFilter)]);\r\n\r\n // Local search function\r\n const searchOptionsLocally = useCallback((searchTerm: string, value: any): IOption[] => {\r\n if (!searchTerm) return props.options || [];\r\n\r\n const lowercasedSearchTerm = searchTerm.toLowerCase();\r\n\r\n const filteredOptions = hasParent\r\n ? props.options?.reduce((acc: IOption[], opt) => {\r\n const searchedOptions = opt.options?.filter((item) => {\r\n const label = React.isValidElement(item.label) ? item.searchLabel : String(item.label);\r\n return label?.toLowerCase().includes(lowercasedSearchTerm);\r\n });\r\n\r\n if (searchedOptions?.length) {\r\n acc.push({ ...opt, options: searchedOptions });\r\n }\r\n\r\n return acc;\r\n }, []) || []\r\n : props.options?.filter((opt) => {\r\n const label = React.isValidElement(opt.label) ? opt.searchLabel : String(opt.label);\r\n return label?.toLowerCase().includes(lowercasedSearchTerm);\r\n }) || [];\r\n //eslint-disable-next-line\r\n return sortBySelectedValues(filteredOptions, value);\r\n //eslint-disable-next-line\r\n }, [props.options, hasParent]);\r\n\r\n // Get unique options\r\n const getUniqueOptions = useCallback((data: IOption[]): IOption[] => {\r\n const uniqueOptions = [\r\n ...new Map(data?.map(item => [item.value, item])).values()\r\n ];\r\n return uniqueOptions;\r\n }, []);\r\n\r\n // Sort by selected values\r\n const sortBySelectedValues = useCallback((arrayToSort: IOption[], value: any): IOption[] => {\r\n const selectedValues = Array.isArray(value) ? value : [value];\r\n const sortedValue = sortBy(arrayToSort, (item) => {\r\n const index = selectedValues.indexOf(item.id || item.value);\r\n return index == -1 ? Infinity : index;\r\n });\r\n return sortedValue;\r\n }, []);\r\n\r\n // Filtered options with pagination support\r\n const filteredOptions = useMemo(() => {\r\n if (isInternalOptions) {\r\n return searchOptionsLocally(searchQuery, watchedValue);\r\n }\r\n return sortBySelectedValues(getUniqueOptions([...options, ...selectedOptions]), watchedValue);\r\n //eslint-disable-next-line\r\n }, [options, selectedOptions, isInternalOptions, props.options, watchedValue, searchQuery, searchOptionsLocally, sortBySelectedValues, getUniqueOptions]);\r\n\r\n // API Functions\r\n const fetchOptions = useCallback(async (searchTerm = '', flt = cf, page = 1, append = false) => {\r\n if (!apiType) return [];\r\n\r\n setLoading(true);\r\n if (page > 1) {\r\n setPagination(prev => ({ ...prev, isLoadingMore: true }));\r\n }\r\n\r\n try {\r\n const { data = [], pagination = {} } = await fetchApi({\r\n apiKey: apiType,\r\n filters: {\r\n limit,\r\n skip: (page - 1) * limit,\r\n search: searchTerm,\r\n filters: flt,\r\n select: attributes,\r\n order: sortOrder\r\n }\r\n });\r\n\r\n if (data && Array.isArray(data)) {\r\n const newOptions = append ? [...options, ...data] : data;\r\n updateOptions(newOptions, append);\r\n handleSelectedValue(data);\r\n // Update pagination\r\n setPagination(prev => ({\r\n ...prev,\r\n page,\r\n hasMore: pagination?.totalCount > (page * limit),\r\n total: pagination?.totalCount,\r\n isLoadingMore: false\r\n }));\r\n }\r\n\r\n return data || [];\r\n } catch (error) {\r\n console.error('Error fetching options:', error);\r\n setPagination(prev => ({ ...prev, isLoadingMore: false }));\r\n return [];\r\n } finally {\r\n setLoading(false);\r\n }\r\n //eslint-disable-next-line\r\n }, [apiType, options, attributes, sortOrder, limit, cf]);\r\n\r\n // Handle scroll pagination\r\n const handleScroll = useCallback((event: React.UIEvent<HTMLDivElement>) => {\r\n const { scrollTop, scrollHeight, clientHeight } = event.currentTarget;\r\n const isBottom = scrollHeight - scrollTop <= clientHeight + 10;\r\n\r\n if (isBottom && pagination.hasMore && !pagination.isLoadingMore && !isInternalOptions) {\r\n const nextPage = pagination.page + 1;\r\n fetchOptions(searchQuery, cf, nextPage, true);\r\n }\r\n }, [pagination.hasMore, pagination.isLoadingMore, pagination.page, isInternalOptions, searchQuery, cf, fetchOptions]);\r\n\r\n // Update options\r\n const updateOptions = useCallback((newOptions: IOption[], append = false) => {\r\n const oldOptions = append ? options : selectedOptions;\r\n const uniqueOptions = getUniqueOptions([...oldOptions, ...newOptions]);\r\n setOptions(uniqueOptions);\r\n }, [options, selectedOptions, getUniqueOptions]);\r\n\r\n // Handle selected value\r\n const handleSelectedValue = useCallback(async (updateOptions: IOption[]) => {\r\n const filterValue = props.is_multiselect ? watchedValue : [watchedValue];\r\n const isInOptions = updateOptions?.filter((item) =>\r\n Array.isArray(filterValue) ? filterValue.includes(item.id || item.value) : (item[filterKey] || item.value || item.id) == filterValue\r\n );\r\n\r\n if (Array.isArray(isInOptions) && isInOptions.length > 0) {\r\n getSelectedData?.(props.is_multiselect ? isInOptions : isInOptions[0], props.name);\r\n return true;\r\n }\r\n return false;\r\n //eslint-disable-next-line\r\n }, [props.is_multiselect, props.name, watchedValue, filterKey, getSelectedData, filteredOptions]);\r\n\r\n // Fetch options by ID\r\n const fetchIdOptions = useCallback(async () => {\r\n if (await handleSelectedValue(filteredOptions)) return;\r\n if (open) return;\r\n const condition = props.is_multiselect ?\r\n Array.isArray(watchedValue) && watchedValue.length > 0 :\r\n Boolean(watchedValue);\r\n\r\n if (condition) {\r\n setInitialLoading(true);\r\n const response = await fetchOptions('', { ...cf, '&id.in': watchedValue }, 1, false);\r\n setInitialLoading(false);\r\n\r\n if (response.length == 0 && setValue && !isInternalOptions) {\r\n // setValue(`${props.fieldArrayName}.${props.name}`, props.is_multiselect ? [] : null);\r\n }\r\n }\r\n //eslint-disable-next-line\r\n }, [open, watchedValue, JSON.stringify(cf)]);\r\n\r\n // Initial fetch\r\n const initialFetch = useCallback(async () => {\r\n const condition = JSON.stringify(cf) !== JSON.stringify(prevFilter);\r\n\r\n if (condition) {\r\n setPrevFilter(cf);\r\n setOptions([]);\r\n setIsAlreadyLoaded(false);\r\n setPagination({\r\n page: 1,\r\n hasMore: true,\r\n isLoadingMore: false,\r\n total: 0\r\n });\r\n }\r\n\r\n if (!isInternalOptions && !isAlreadyLoaded) {\r\n await fetchOptions(searchQuery, cf, 1, false);\r\n setIsAlreadyLoaded(true);\r\n }\r\n //eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [cf, isInternalOptions, isAlreadyLoaded]);\r\n\r\n // Debounced search\r\n const debouncedSearch = useMemo(\r\n () => debounce(async (searchTerm: string) => {\r\n if (loading) return;\r\n\r\n if (!searchTerm && !isInternalOptions && searchInitiate) {\r\n setPagination({\r\n page: 1,\r\n hasMore: true,\r\n isLoadingMore: false,\r\n total: 0\r\n });\r\n await fetchOptions('', cf, 1, false);\r\n }\r\n if (searchTerm.length > 1 && !isInternalOptions) {\r\n setPagination({\r\n page: 1,\r\n hasMore: true,\r\n isLoadingMore: false,\r\n total: 0\r\n });\r\n await fetchOptions(searchTerm, cf, 1, false);\r\n }\r\n }, 700),\r\n //eslint-disable-next-line\r\n [isInternalOptions, searchInitiate, cf]\r\n );\r\n\r\n // Reset value function\r\n const resetValue = useCallback((field: any) => {\r\n field.onChange(props.is_multiselect ? [] : null);\r\n if (getSelectedData) {\r\n getSelectedData(null, props.name);\r\n }\r\n }, [props.is_multiselect, props.name, getSelectedData]);\r\n\r\n // Handle close\r\n const handleClose = useCallback(() => {\r\n setOpen(false);\r\n if (searchQuery.length > 0) {\r\n setIsAlreadyLoaded(false);\r\n }\r\n setSearchInitiate(false);\r\n setSearchQuery('');\r\n }, [searchQuery]);\r\n\r\n const handleModalOpen = useCallback(() => {\r\n setIsModalOpen(true);\r\n }, []);\r\n\r\n\r\n\r\n // Handle modal save\r\n const handleModalSave = useCallback(async (payload: any) => {\r\n if (!addConfig || !addConfig.api) {\r\n console.error('Add configuration is not properly set');\r\n return;\r\n }\r\n\r\n setIsAddLoading(true);\r\n try {\r\n const result = await addConfig.api(payload);\r\n setIsAddLoading(false);\r\n setIsModalOpen(false);\r\n if (!isInternalOptions) {\r\n setPagination({\r\n page: 1,\r\n hasMore: true,\r\n isLoadingMore: false,\r\n total: 0\r\n });\r\n setIsAlreadyLoaded(false);\r\n await fetchOptions('', cf, 1, false);\r\n }\r\n if (result && result.data) {\r\n const newValue = props.is_multiselect\r\n ? [...(watchedValue || []), result.data.id]\r\n : result.data.id;\r\n\r\n if (setValue) {\r\n setValue(`${props.fieldArrayName}.${props.name}`, newValue);\r\n }\r\n }\r\n } catch (error) {\r\n console.log(\"error\", error);\r\n setIsAddLoading(false);\r\n }\r\n\r\n\r\n }, [addConfig, isInternalOptions, fetchOptions, cf, props.is_multiselect, props.fieldArrayName, props.name, watchedValue, setValue]);\r\n\r\n // Effects\r\n useEffect(() => {\r\n if (handleOptions) {\r\n handleOptions(selectedValue);\r\n }\r\n }, [handleOptions, selectedValue]);\r\n\r\n useEffect(() => {\r\n if (open) {\r\n initialFetch();\r\n }\r\n }, [open, initialFetch]);\r\n\r\n useEffect(() => {\r\n fetchIdOptions();\r\n }, [fetchIdOptions]);\r\n\r\n useEffect(() => {\r\n if (refresh) {\r\n setPagination({\r\n page: 1,\r\n hasMore: true,\r\n isLoadingMore: false,\r\n total: 0\r\n });\r\n fetchOptions('', cf, 1, false);\r\n }\r\n }, [refresh, fetchOptions, cf]);\r\n\r\n useEffect(() => {\r\n if (open) {\r\n debouncedSearch(searchQuery);\r\n }\r\n return () => debouncedSearch.cancel();\r\n }, [searchQuery, open, debouncedSearch]);\r\n\r\n useEffect(() => {\r\n if (watchedValue && !open) {\r\n const selectedData = options?.filter((item) =>\r\n props.is_multiselect ?\r\n Array.isArray(watchedValue) && watchedValue.includes(item.id || item.value) :\r\n (item.id || item.value) == watchedValue\r\n );\r\n setSelectedOptions(selectedData || []);\r\n }\r\n }, [watchedValue, options, props.is_multiselect, open]);\r\n\r\n const removeUndefined = useCallback((selectOptions: any[]) => {\r\n return Array.isArray(selectOptions) ? selectOptions.filter(Boolean) : [];\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!addType) return;\r\n const config = dynamicSelectAdd(addType);\r\n setAddConfig(config);\r\n }, [addType])\r\n\r\n useEffect(() => {\r\n handleSelectedValue(filteredOptions)\r\n }, [handleSelectedValue])\r\n return (\r\n <Controller\r\n control={props.formControl}\r\n name={`${props.fieldArrayName}.${props.name}`}\r\n render={({ field, fieldState }) => (\r\n <>\r\n {props.placeholder == 'Select Currency' && setSelectedValue(field.value)}\r\n <Select\r\n {...field}\r\n ref={selectRef}\r\n open={open}\r\n onOpen={() => setOpen(true)}\r\n onClose={handleClose}\r\n fullWidth\r\n dataPosition={props.position}\r\n dataName={`${props.fieldArrayName}.${props.name}`}\r\n placeholder={props.placeholder}\r\n label={props.label}\r\n defaultValue={props.defaultValue || (props.is_multiselect ? [] : '')}\r\n searchValue={searchQuery}\r\n required={props.formType == 'builder' ? false : props.required}\r\n size={props.size || 'small'}\r\n multiple={props.is_multiselect || false}\r\n disabled={props.disabled}\r\n sx={(props.is_multiselect && field?.value?.length) ? { \"& .MuiSelect-select\": { padding: '5.5px !important' } } : {}}\r\n variant='outlined'\r\n value={\r\n initialLoading\r\n ? (props.is_multiselect ? [] : '')\r\n : (field.value?.id || field.value || (props.is_multiselect ? [] : ''))\r\n }\r\n className={\r\n props.is_multiselect && removeUndefined(field.value)?.length\r\n ? 'MultiSelect filter-select'\r\n : ''\r\n }\r\n MenuProps={{\r\n PaperProps: {\r\n onScroll: handleScroll,\r\n style: { maxHeight: 300 }\r\n }\r\n }}\r\n\r\n renderValue={(selected: any) => {\r\n if (Array.isArray(selected)) {\r\n return (\r\n <ChipOrPlaceholder\r\n selectedLabel={props.selectedLabel}\r\n data={removeUndefined(selected)}\r\n placeholder={(loading || props.is_loading) ? <Loading /> : `${t('common.search')} ${props.label}`}\r\n onDelete={props.onChipRemove}\r\n disabled={props.disabled}\r\n chipProps={{\r\n sx: {\r\n background: '#ebf9f2',\r\n border: 0,\r\n // borderRadius: '15px',\r\n '& .MuiTypography-body1': {\r\n color: '#289b64',\r\n fontWeight: \"500\",\r\n }\r\n }\r\n }}\r\n />\r\n );\r\n } else {\r\n const selectedOption = filteredOptions?.find(\r\n (option) => (option.value?.id || option.value) == selected\r\n );\r\n return (loading || props.is_loading) ? <Loading /> : selectedOption?.label ||\r\n (typeof props.label == 'string' ?\r\n `${t('common.search')} ${props.label}` :\r\n props.placeholder);\r\n }\r\n }}\r\n searchPlaceholder={`${t('common.search')} ${props.label}`}\r\n handleSearch={(text: string) => {\r\n setSearchQuery(text);\r\n setSearchInitiate(true);\r\n }}\r\n error={Boolean(fieldState.error?.message)}\r\n helperText={fieldState.error?.message || ''}\r\n onBlur={field.onBlur}\r\n input={\r\n <OutlinedInput\r\n label=''\r\n endAdornment={\r\n <InputAdornment position='end'>\r\n {(loading || props.is_loading) ? (\r\n <CircularProgress\r\n size={20}\r\n sx={{ mr: 3, color: \"#4AC08C\" }}\r\n />\r\n ) : (\r\n !props.disabled &&\r\n (props.is_multiselect ?\r\n (Array.isArray(field.value) && field.value.length > 0) :\r\n Boolean(field.value)) && (\r\n <IconButton\r\n aria-label='clear selection'\r\n onClick={() => resetValue(field)}\r\n edge='end'\r\n sx={isRtl ? { ml: 2.5 } : { mr: 1.5 }}\r\n size='small'\r\n >\r\n <Close sx={{ fontSize: '1rem' }} />\r\n </IconButton>\r\n )\r\n )}\r\n </InputAdornment>\r\n }\r\n />\r\n }\r\n >\r\n {generateMenuItems({\r\n options: filteredOptions,\r\n multiple: Boolean(props.is_multiselect),\r\n placeholder: props.placeholder,\r\n values: field.value,\r\n with_checkboxes: true,\r\n field: props,\r\n disabledIds,\r\n onChange: field.onChange,\r\n handleChange,\r\n hasParent,\r\n t,\r\n // onFooterClick: () => {\r\n // if (props?.onFooterClick) {\r\n // props?.onFooterClick();\r\n // } else {\r\n // handleModalOpen();\r\n // }\r\n // }\r\n })}\r\n {props?.enable_footer &&\r\n <Box key=\"footer\" sx={{ position: 'sticky', bottom: 0, background: '#fff', zIndex: 1 }}>\r\n <Divider flexItem sx={{ mt: '0.25rem !important', mb: '0.25rem !important' }} />\r\n <MenuItem sx={{ gap: 1 }} onClick={\r\n () => {\r\n if (props?.onFooterClick) {\r\n props?.onFooterClick();\r\n } else {\r\n handleModalOpen();\r\n }\r\n }\r\n\r\n }>\r\n <Add fontSize='small' />\r\n <Typography type='s4' color='theme.secondary.1000'>\r\n Create New {props.label}\r\n </Typography>\r\n </MenuItem>\r\n </Box>}\r\n {pagination.isLoadingMore && (\r\n <MenuItem disabled>\r\n <Box sx={{ display: 'flex', justifyContent: 'center', width: '100%' }}>\r\n <CircularProgress size={20} />\r\n </Box>\r\n </MenuItem>\r\n )}\r\n </Select>\r\n\r\n {/* Modal for adding new items */}\r\n {addConfig && addConfig.component && (\r\n <>\r\n {React.createElement(addConfig.component, {\r\n isOpen: isModalOpen,\r\n setIsOpen: setIsModalOpen,\r\n isLoading: isAddLoading,\r\n onSave: handleModalSave,\r\n modalProps: {\r\n maxWidth: 'md',\r\n fullWidth: true\r\n },\r\n ...props?.modalComponentProps\r\n })}\r\n </>\r\n )}\r\n\r\n {props.is_multiselect && Array.isArray(field.value) && (\r\n <SelectedItems\r\n data={field.value}\r\n options={filteredOptions}\r\n />\r\n )}\r\n </>\r\n )}\r\n />\r\n );\r\n});\r\n\r\nDynamicSearchSelect.propTypes = {\r\n name: PropTypes.string.isRequired,\r\n placeholder: PropTypes.string.isRequired,\r\n label: PropTypes.string.isRequired,\r\n size: PropTypes.string,\r\n options: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\r\n value: PropTypes.any\r\n })\r\n ).isRequired,\r\n formControl: PropTypes.object.isRequired,\r\n defaultValue: PropTypes.any,\r\n fieldArrayName: PropTypes.string.isRequired,\r\n id: PropTypes.string,\r\n required: PropTypes.bool,\r\n is_multiselect: PropTypes.bool,\r\n position: PropTypes.number,\r\n formType: PropTypes.string,\r\n typeOfField: PropTypes.string,\r\n disabled: PropTypes.bool,\r\n onChipRemove: PropTypes.func,\r\n enable_footer: PropTypes.bool,\r\n footer_action: PropTypes.string,\r\n onFooterClick: PropTypes.func,\r\n is_loading: PropTypes.bool,\r\n selectedLabel: PropTypes.string,\r\n isInternal: PropTypes.bool,\r\n disabledIds: PropTypes.array,\r\n getSelectedData: PropTypes.func,\r\n attributes: PropTypes.array,\r\n handleChange: PropTypes.func,\r\n hasParent: PropTypes.bool,\r\n sortOrder: PropTypes.string,\r\n apiType: PropTypes.string,\r\n handleOptions: PropTypes.func,\r\n filterKey: PropTypes.string,\r\n customeFilter: PropTypes.object,\r\n refresh: PropTypes.bool,\r\n addType: PropTypes.string,\r\n modalComponentProps: PropTypes.object\r\n};\r\n\r\nexport default DynamicSearchSelect;\r\n"],"names":["React","filteredOptions","_a","pagination","updateOptions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAsGA,MAAM,oBAAoB,CAAC;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAEJ,MAA6C;AACzC,QAAM,eAAe,CAAC,OAAwB,2CAAa,SAAS;AACpE,QAAM,QAA8B,CAAA;AAEpC,MAAI,CAAC,UAAU;AACX,UAAM;AAAA,MACF,oBAAC,UAAA,EAAS,UAAQ,MAAC,OAAM,IAAqB,IAAI,EAAE,SAAS,gBAAgB,QAAQ,gBAAgB,GAAG,gBAAgB,GAAG,kBACvH,UAAA,oBAAC,YAAA,EAAW,MAAK,MAAK,OAAM,wBACxB,UAAA,oBAAC,MAAA,EAAI,UAAA,EAAE,WAAW,GAAE,EAAA,CACxB,KAH4B,aAIhC;AAAA,IAAA;AAAA,EAER;AACA,QAAM,iBAAkB,MAAM,QAAQ,MAAM,MAAK,iCAAQ,UAAS,IAAK,iCAAQ,OAAO,CAAC,UAAU,SAAS;AAE1G,QAAM,qBAAqB,CAAC,aAAqB,iBAA4B;AACzE,UAAM,cAAc,aAAa,IAAI,CAAC,UAAU,MAAM,KAAK;AAC3D,UAAM,aAAa,MAAM,QAAQ,cAAc,IAAI,iBAAiB,CAAC,cAAc;AAEnF,UAAM,mBAAmB,WAAW,SAAS,WAAW;AACxD,UAAM,gBAAgB,mBAChB,WAAW,OAAO,CAAC,UAAU,UAAU,eAAe,CAAC,YAAY,SAAS,KAAK,CAAC,IAClF,CAAC,GAAG,oBAAI,IAAI,CAAC,GAAG,YAAY,aAAa,GAAG,WAAW,CAAC,CAAC;AAE/D,aAAS,aAAa;AACtB,iDAAe;AAAA,EACnB;AAEA,QAAM,uBAAuB,CAAC,aAAqB,iBAA4B;AAC3E,UAAM,cAAc,aAAa,IAAI,CAAC,UAAU,MAAM,KAAK;AAC3D,UAAM,aAAa,MAAM,QAAQ,cAAc,IAAI,iBAAiB,CAAC,cAAc;AACnF,WAAO,YAAY,MAAM,CAAC,eAAe,WAAW,SAAS,UAAU,CAAC;AAAA,EAC5E;AAEA,QAAM,wBAAwB,CAAC,iBAA4B;AACvD,UAAM,cAAc,aAAa,IAAI,CAAC,UAAU,MAAM,KAAK;AAC3D,UAAM,aAAa,MAAM,QAAQ,cAAc,IAAI,iBAAiB,CAAC,cAAc;AACnF,WAAO,YAAY,KAAK,CAAC,eAAe,WAAW,SAAS,UAAU,CAAC;AAAA,EAC3E;AAEA,MAAI,MAAM,QAAQ,OAAO,KAAK,QAAQ,SAAS,GAAG;AAC9C,YAAQ,QAAQ,CAAC,WAAW;AACxB,YAAM;AAAA,QACF;AAAA,UAAC;AAAA,UAAA;AAAA,YACG,OAAO,OAAO;AAAA,YAEd,UAAU,QAAQ,OAAO,QAAQ,KAAK,aAAa,OAAO,MAAM,OAAO,KAAK;AAAA,YAC5E,WAAW,OAAO,UAAU,2BAA2B;AAAA,YAEvD,UAAA,qBAAC,OAAI,IAAI,EAAE,SAAS,QAAQ,KAAK,KAC5B,UAAA;AAAA,cAAA,YAAY,mBACT;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACG,SACI,YACM,qBAAqB,OAAO,OAAO,OAAO,WAAW,EAAE,IACvD,QAAQ,MAAM,QAAQ,cAAc,IAAI,eAAe,SAAS,OAAO,KAAK,IAAI,kBAAkB,OAAO,KAAK;AAAA,kBAExH,eACI,aAAa,sBAAsB,OAAO,WAAW,CAAA,CAAE;AAAA,kBAE3D,UAAU,MAAM,YAAY,mBAAmB,OAAO,OAAO,OAAO,WAAW,CAAA,CAAE,IAAI,6CAAe,OAAO;AAAA,gBAAK;AAAA,cAAA;AAAA,cAGxH;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACG,MAAK;AAAA,kBACL,OAAM;AAAA,kBACN,SAAS,MAAM,6CAAe,OAAO;AAAA,kBAEpC,UAAA,OAAO;AAAA,gBAAA;AAAA,cAAA;AAAA,YACZ,EAAA,CACJ;AAAA,UAAA;AAAA,UAzBK,OAAO;AAAA,QAAA;AAAA,MA0BhB;AAGJ,UAAI,OAAO,WAAW,MAAM,QAAQ,OAAO,OAAO,GAAG;AACjD,eAAO,QAAQ,QAAQ,CAAC,QAAQ;AAC5B,gBAAM;AAAA,YACF;AAAA,cAAC;AAAA,cAAA;AAAA,gBACG,OAAO,IAAI;AAAA,gBACX,UAAU,QAAQ,IAAI,QAAQ,KAAK,aAAa,IAAI,MAAM,IAAI,KAAK;AAAA,gBACnE,IAAI,EAAE,IAAI,EAAA;AAAA,gBAGV,UAAA,qBAAC,OAAI,IAAI,EAAE,SAAS,QAAQ,KAAK,KAC5B,UAAA;AAAA,kBAAA,YAAY,mBACT;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACG,SAAS,QAAQ,MAAM,QAAQ,MAAM,KAAK,OAAO,SAAS,IAAI,KAAK,CAAC;AAAA,oBAAA;AAAA,kBAAA;AAAA,kBAG5E;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACG,MAAK;AAAA,sBACL,OAAM;AAAA,sBACN,SAAS,MAAM,6CAAe,OAAO,IAAI,KAAK;AAAA,sBAE7C,cAAI,SAAS,oBAAoB,mCAAmC,IAAI,SAAS,IAAI;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBAC1F,EAAA,CACJ;AAAA,cAAA;AAAA,cAfK,GAAG,OAAO,KAAK,IAAI,IAAI,KAAK;AAAA,YAAA;AAAA,UAgBrC;AAAA,QAER,CAAC;AAAA,MACL;AAAA,IACJ,CAAC;AAAA,EACL;AAMA,MAAI,CAAC,MAAM,UAAW,MAAM,UAAU,KAAK,CAAC,UAAW;AACnD,UAAM;AAAA,MACF,oBAAC,UAAA,EAAS,UAAQ,MAAe,iCAAV,SAEvB;AAAA,IAAA;AAAA,EAER;AAEA,SAAO;AACX;AAGA,MAAM,gBAGD,CAAC,EAAE,MAAM,cAAc;AACxB,QAAM,eAAe,KAAK;AAAA,IACtB,CAAC,iBAAA;;AACG,uDAAS,KAAK,CAAC,WAAW,OAAO,SAAS,kBAA1C,mBAAyD,UAAS;AAAA;AAAA,EAAA;AAE1E,QAAM,uBAAuB,aAAa,OAAO,OAAO;AAExD,SACI;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,MAAK;AAAA,MACL,OAAM;AAAA,MACN,IAAI,EAAE,SAAS,QAAQ,KAAK,GAAG,YAAY,UAAU,IAAI,IAAA;AAAA,MAExD,UAAA;AAAA,QAAA,qBAAqB,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI;AAAA,QAC1C,KAAK,SAAS,KACX,oBAAC,MAAA,EAAK,SAAQ,YAAW,MAAK,UAAS,OAAO,oBAAC,UAAA,CAAA,CAAS,EAAA,CAAI;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAI5E;AAEA,MAAM,UAAU,MACZ,oBAAC,YAAA,EAAW,WAAU,UAAS,OAAM,WAAU,MAAK,MAAK,UAAA,aAAA,CAAU;AAGvE,MAAM,sBAA2DA,eAAM,KAAK,CAAC,UAAU;AACnF,QAAM,eAAe,SAAS;AAAA,IAC1B,SAAS,MAAM;AAAA,IACf,MAAM,GAAG,MAAM,cAAc,IAAI,MAAM,IAAI;AAAA,EAAA,CAC9C;AAED,QAAM,cAAc,eAAA;AACpB,QAAM,EAAE,aAAa,eAAe,CAAA;AACpC,QAAM,EAAE,EAAA,IAAM,eAAA;AACd,QAAM,EAAE,MAAA,IAAU,YAAA;AAClB,QAAM,YAAY,OAAuB,IAAI;AAG7C,QAAM,CAAC,SAAS,UAAU,IAAI,SAAoB,CAAA,CAAE;AACpD,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAAc,IAAI;AAC5D,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,SAAoB,CAAA,CAAE;AACpE,QAAM,CAAC,SAAS,UAAU,IAAI,SAAkB,KAAK;AACrD,QAAM,CAAC,MAAM,OAAO,IAAI,SAAkB,KAAK;AAC/C,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,SAAkB,KAAK;AACrE,QAAM,CAAC,YAAY,aAAa,IAAI,SAAc,IAAI;AACtD,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAkB,KAAK;AACnE,QAAM,CAAC,aAAa,cAAc,IAAI,SAAiB,EAAE;AACzD,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAkB,KAAK;AACnE,QAAM,CAAC,WAAW,YAAY,IAAI,SAAc,IAAI;AAGpD,QAAM,CAAC,aAAa,cAAc,IAAI,SAAkB,KAAK;AAC7D,QAAM,CAAC,cAAc,eAAe,IAAI,SAAkB,KAAK;AAI/D,QAAM,CAAC,YAAY,aAAa,IAAI,SAA2B;AAAA,IAC3D,MAAM;AAAA,IACN,SAAS;AAAA,IACT,eAAe;AAAA,IACf,OAAO;AAAA,EAAA,CACV;AAGD,QAAM;AAAA,IACF;AAAA,IACA,aAAa;AAAA,IACb,cAAc,CAAA;AAAA,IACd;AAAA,IACA,aAAa,CAAA;AAAA,IACb,YAAY;AAAA,IACZ,gBAAgB,CAAA;AAAA,IAChB;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,EAAA,IACA;AAEJ,QAAM,QAAQ;AAGd,QAAM,oBAAoB,QAAQ,MAAM;AACpC,WAAO,cAAc,CAAC;AAAA,EAC1B,GAAG,CAAC,YAAY,OAAO,CAAC;AAExB,QAAM,KAAK,QAAQ,MAAM,eAAe,CAAC,KAAK,UAAU,aAAa,CAAC,CAAC;AAGvE,QAAM,uBAAuB,YAAY,CAAC,YAAoB,UAA0B;;AACpF,QAAI,CAAC,WAAY,QAAO,MAAM,WAAW,CAAA;AAEzC,UAAM,uBAAuB,WAAW,YAAA;AAExC,UAAMC,mBAAkB,cAClB,WAAM,YAAN,mBAAe,OAAO,CAAC,KAAgB,QAAQ;;AAC7C,YAAM,mBAAkBC,MAAA,IAAI,YAAJ,gBAAAA,IAAa,OAAO,CAAC,SAAS;AAClD,cAAM,QAAQF,eAAM,eAAe,KAAK,KAAK,IAAI,KAAK,cAAc,OAAO,KAAK,KAAK;AACrF,eAAO,+BAAO,cAAc,SAAS;AAAA,MACzC;AAEA,UAAI,mDAAiB,QAAQ;AACzB,YAAI,KAAK,EAAE,GAAG,KAAK,SAAS,iBAAiB;AAAA,MACjD;AAEA,aAAO;AAAA,IACX,GAAG,CAAA,OAAO,CAAA,MACR,WAAM,YAAN,mBAAe,OAAO,CAAC,QAAQ;AAC7B,YAAM,QAAQA,eAAM,eAAe,IAAI,KAAK,IAAI,IAAI,cAAc,OAAO,IAAI,KAAK;AAClF,aAAO,+BAAO,cAAc,SAAS;AAAA,IACzC,OAAM,CAAA;AAEV,WAAO,qBAAqBC,kBAAiB,KAAK;AAAA,EAEtD,GAAG,CAAC,MAAM,SAAS,SAAS,CAAC;AAG7B,QAAM,mBAAmB,YAAY,CAAC,SAA+B;AACjE,UAAM,gBAAgB;AAAA,MAClB,GAAG,IAAI,IAAI,6BAAM,IAAI,CAAA,SAAQ,CAAC,KAAK,OAAO,IAAI,EAAE,EAAE,OAAA;AAAA,IAAO;AAE7D,WAAO;AAAA,EACX,GAAG,CAAA,CAAE;AAGL,QAAM,uBAAuB,YAAY,CAAC,aAAwB,UAA0B;AACxF,UAAM,iBAAiB,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;AAC5D,UAAM,cAAc,OAAO,aAAa,CAAC,SAAS;AAC9C,YAAM,QAAQ,eAAe,QAAQ,KAAK,MAAM,KAAK,KAAK;AAC1D,aAAO,SAAS,KAAK,WAAW;AAAA,IACpC,CAAC;AACD,WAAO;AAAA,EACX,GAAG,CAAA,CAAE;AAGL,QAAM,kBAAkB,QAAQ,MAAM;AAClC,QAAI,mBAAmB;AACnB,aAAO,qBAAqB,aAAa,YAAY;AAAA,IACzD;AACA,WAAO,qBAAqB,iBAAiB,CAAC,GAAG,SAAS,GAAG,eAAe,CAAC,GAAG,YAAY;AAAA,EAEhG,GAAG,CAAC,SAAS,iBAAiB,mBAAmB,MAAM,SAAS,cAAc,aAAa,sBAAsB,sBAAsB,gBAAgB,CAAC;AAGxJ,QAAM,eAAe,YAAY,OAAO,aAAa,IAAI,MAAM,IAAI,OAAO,GAAG,SAAS,UAAU;AAC5F,QAAI,CAAC,QAAS,QAAO,CAAA;AAErB,eAAW,IAAI;AACf,QAAI,OAAO,GAAG;AACV,oBAAc,WAAS,EAAE,GAAG,MAAM,eAAe,OAAO;AAAA,IAC5D;AAEA,QAAI;AACA,YAAM,EAAE,OAAO,IAAI,YAAAE,cAAa,CAAA,EAAC,IAAM,MAAM,SAAS;AAAA,QAClD,QAAQ;AAAA,QACR,SAAS;AAAA,UACL;AAAA,UACA,OAAO,OAAO,KAAK;AAAA,UACnB,QAAQ;AAAA,UACR,SAAS;AAAA,UACT,QAAQ;AAAA,UACR,OAAO;AAAA,QAAA;AAAA,MACX,CACH;AAED,UAAI,QAAQ,MAAM,QAAQ,IAAI,GAAG;AAC7B,cAAM,aAAa,SAAS,CAAC,GAAG,SAAS,GAAG,IAAI,IAAI;AACpD,sBAAc,YAAY,MAAM;AAChC,4BAAoB,IAAI;AAExB,sBAAc,CAAA,UAAS;AAAA,UACnB,GAAG;AAAA,UACH;AAAA,UACA,UAASA,2CAAY,cAAc,OAAO;AAAA,UAC1C,OAAOA,2CAAY;AAAA,UACnB,eAAe;AAAA,QAAA,EACjB;AAAA,MACN;AAEA,aAAO,QAAQ,CAAA;AAAA,IACnB,SAAS,OAAO;AACZ,cAAQ,MAAM,2BAA2B,KAAK;AAC9C,oBAAc,WAAS,EAAE,GAAG,MAAM,eAAe,QAAQ;AACzD,aAAO,CAAA;AAAA,IACX,UAAA;AACI,iBAAW,KAAK;AAAA,IACpB;AAAA,EAEJ,GAAG,CAAC,SAAS,SAAS,YAAY,WAAW,OAAO,EAAE,CAAC;AAGvD,QAAM,eAAe,YAAY,CAAC,UAAyC;AACvE,UAAM,EAAE,WAAW,cAAc,aAAA,IAAiB,MAAM;AACxD,UAAM,WAAW,eAAe,aAAa,eAAe;AAE5D,QAAI,YAAY,WAAW,WAAW,CAAC,WAAW,iBAAiB,CAAC,mBAAmB;AACnF,YAAM,WAAW,WAAW,OAAO;AACnC,mBAAa,aAAa,IAAI,UAAU,IAAI;AAAA,IAChD;AAAA,EACJ,GAAG,CAAC,WAAW,SAAS,WAAW,eAAe,WAAW,MAAM,mBAAmB,aAAa,IAAI,YAAY,CAAC;AAGpH,QAAM,gBAAgB,YAAY,CAAC,YAAuB,SAAS,UAAU;AACzE,UAAM,aAAa,SAAS,UAAU;AACtC,UAAM,gBAAgB,iBAAiB,CAAC,GAAG,YAAY,GAAG,UAAU,CAAC;AACrE,eAAW,aAAa;AAAA,EAC5B,GAAG,CAAC,SAAS,iBAAiB,gBAAgB,CAAC;AAG/C,QAAM,sBAAsB,YAAY,OAAOC,mBAA6B;AACxE,UAAM,cAAc,MAAM,iBAAiB,eAAe,CAAC,YAAY;AACvE,UAAM,cAAcA,iDAAe;AAAA,MAAO,CAAC,SACvC,MAAM,QAAQ,WAAW,IAAI,YAAY,SAAS,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,SAAS,KAAK,KAAK,SAAS,KAAK,OAAO;AAAA;AAG7H,QAAI,MAAM,QAAQ,WAAW,KAAK,YAAY,SAAS,GAAG;AACtD,yDAAkB,MAAM,iBAAiB,cAAc,YAAY,CAAC,GAAG,MAAM;AAC7E,aAAO;AAAA,IACX;AACA,WAAO;AAAA,EAEX,GAAG,CAAC,MAAM,gBAAgB,MAAM,MAAM,cAAc,WAAW,iBAAiB,eAAe,CAAC;AAGhG,QAAM,iBAAiB,YAAY,YAAY;AAC3C,QAAI,MAAM,oBAAoB,eAAe,EAAG;AAChD,QAAI,KAAM;AACV,UAAM,YAAY,MAAM,iBACpB,MAAM,QAAQ,YAAY,KAAK,aAAa,SAAS,IACrD,QAAQ,YAAY;AAExB,QAAI,WAAW;AACX,wBAAkB,IAAI;AACL,YAAM,aAAa,IAAI,EAAE,GAAG,IAAI,UAAU,aAAA,GAAgB,GAAG,KAAK;AACnF,wBAAkB,KAAK;AAAA,IAK3B;AAAA,EAEJ,GAAG,CAAC,MAAM,cAAc,KAAK,UAAU,EAAE,CAAC,CAAC;AAG3C,QAAM,eAAe,YAAY,YAAY;AACzC,UAAM,YAAY,KAAK,UAAU,EAAE,MAAM,KAAK,UAAU,UAAU;AAElE,QAAI,WAAW;AACX,oBAAc,EAAE;AAChB,iBAAW,CAAA,CAAE;AACb,yBAAmB,KAAK;AACxB,oBAAc;AAAA,QACV,MAAM;AAAA,QACN,SAAS;AAAA,QACT,eAAe;AAAA,QACf,OAAO;AAAA,MAAA,CACV;AAAA,IACL;AAEA,QAAI,CAAC,qBAAqB,CAAC,iBAAiB;AACxC,YAAM,aAAa,aAAa,IAAI,GAAG,KAAK;AAC5C,yBAAmB,IAAI;AAAA,IAC3B;AAAA,EAEJ,GAAG,CAAC,IAAI,mBAAmB,eAAe,CAAC;AAG3C,QAAM,kBAAkB;AAAA,IACpB,MAAM,SAAS,OAAO,eAAuB;AACzC,UAAI,QAAS;AAEb,UAAI,CAAC,cAAc,CAAC,qBAAqB,gBAAgB;AACrD,sBAAc;AAAA,UACV,MAAM;AAAA,UACN,SAAS;AAAA,UACT,eAAe;AAAA,UACf,OAAO;AAAA,QAAA,CACV;AACD,cAAM,aAAa,IAAI,IAAI,GAAG,KAAK;AAAA,MACvC;AACA,UAAI,WAAW,SAAS,KAAK,CAAC,mBAAmB;AAC7C,sBAAc;AAAA,UACV,MAAM;AAAA,UACN,SAAS;AAAA,UACT,eAAe;AAAA,UACf,OAAO;AAAA,QAAA,CACV;AACD,cAAM,aAAa,YAAY,IAAI,GAAG,KAAK;AAAA,MAC/C;AAAA,IACJ,GAAG,GAAG;AAAA;AAAA,IAEN,CAAC,mBAAmB,gBAAgB,EAAE;AAAA,EAAA;AAI1C,QAAM,aAAa,YAAY,CAAC,UAAe;AAC3C,UAAM,SAAS,MAAM,iBAAiB,CAAA,IAAK,IAAI;AAC/C,QAAI,iBAAiB;AACjB,sBAAgB,MAAM,MAAM,IAAI;AAAA,IACpC;AAAA,EACJ,GAAG,CAAC,MAAM,gBAAgB,MAAM,MAAM,eAAe,CAAC;AAGtD,QAAM,cAAc,YAAY,MAAM;AAClC,YAAQ,KAAK;AACb,QAAI,YAAY,SAAS,GAAG;AACxB,yBAAmB,KAAK;AAAA,IAC5B;AACA,sBAAkB,KAAK;AACvB,mBAAe,EAAE;AAAA,EACrB,GAAG,CAAC,WAAW,CAAC;AAEhB,QAAM,kBAAkB,YAAY,MAAM;AACtC,mBAAe,IAAI;AAAA,EACvB,GAAG,CAAA,CAAE;AAKL,QAAM,kBAAkB,YAAY,OAAO,YAAiB;AACxD,QAAI,CAAC,aAAa,CAAC,UAAU,KAAK;AAC9B,cAAQ,MAAM,uCAAuC;AACrD;AAAA,IACJ;AAEA,oBAAgB,IAAI;AACpB,QAAI;AACA,YAAM,SAAS,MAAM,UAAU,IAAI,OAAO;AAC1C,sBAAgB,KAAK;AACrB,qBAAe,KAAK;AACpB,UAAI,CAAC,mBAAmB;AACpB,sBAAc;AAAA,UACV,MAAM;AAAA,UACN,SAAS;AAAA,UACT,eAAe;AAAA,UACf,OAAO;AAAA,QAAA,CACV;AACD,2BAAmB,KAAK;AACxB,cAAM,aAAa,IAAI,IAAI,GAAG,KAAK;AAAA,MACvC;AACA,UAAI,UAAU,OAAO,MAAM;AACvB,cAAM,WAAW,MAAM,iBACjB,CAAC,GAAI,gBAAgB,CAAA,GAAK,OAAO,KAAK,EAAE,IACxC,OAAO,KAAK;AAElB,YAAI,UAAU;AACV,mBAAS,GAAG,MAAM,cAAc,IAAI,MAAM,IAAI,IAAI,QAAQ;AAAA,QAC9D;AAAA,MACJ;AAAA,IACJ,SAAS,OAAO;AACZ,cAAQ,IAAI,SAAS,KAAK;AAC1B,sBAAgB,KAAK;AAAA,IACzB;AAAA,EAGJ,GAAG,CAAC,WAAW,mBAAmB,cAAc,IAAI,MAAM,gBAAgB,MAAM,gBAAgB,MAAM,MAAM,cAAc,QAAQ,CAAC;AAGnI,YAAU,MAAM;AACZ,QAAI,eAAe;AACf,oBAAc,aAAa;AAAA,IAC/B;AAAA,EACJ,GAAG,CAAC,eAAe,aAAa,CAAC;AAEjC,YAAU,MAAM;AACZ,QAAI,MAAM;AACN,mBAAA;AAAA,IACJ;AAAA,EACJ,GAAG,CAAC,MAAM,YAAY,CAAC;AAEvB,YAAU,MAAM;AACZ,mBAAA;AAAA,EACJ,GAAG,CAAC,cAAc,CAAC;AAEnB,YAAU,MAAM;AACZ,QAAI,SAAS;AACT,oBAAc;AAAA,QACV,MAAM;AAAA,QACN,SAAS;AAAA,QACT,eAAe;AAAA,QACf,OAAO;AAAA,MAAA,CACV;AACD,mBAAa,IAAI,IAAI,GAAG,KAAK;AAAA,IACjC;AAAA,EACJ,GAAG,CAAC,SAAS,cAAc,EAAE,CAAC;AAE9B,YAAU,MAAM;AACZ,QAAI,MAAM;AACN,sBAAgB,WAAW;AAAA,IAC/B;AACA,WAAO,MAAM,gBAAgB,OAAA;AAAA,EACjC,GAAG,CAAC,aAAa,MAAM,eAAe,CAAC;AAEvC,YAAU,MAAM;AACZ,QAAI,gBAAgB,CAAC,MAAM;AACvB,YAAM,eAAe,mCAAS;AAAA,QAAO,CAAC,SAClC,MAAM,iBACF,MAAM,QAAQ,YAAY,KAAK,aAAa,SAAS,KAAK,MAAM,KAAK,KAAK,KACzE,KAAK,MAAM,KAAK,UAAU;AAAA;AAEnC,yBAAmB,gBAAgB,EAAE;AAAA,IACzC;AAAA,EACJ,GAAG,CAAC,cAAc,SAAS,MAAM,gBAAgB,IAAI,CAAC;AAEtD,QAAM,kBAAkB,YAAY,CAAC,kBAAyB;AAC1D,WAAO,MAAM,QAAQ,aAAa,IAAI,cAAc,OAAO,OAAO,IAAI,CAAA;AAAA,EAC1E,GAAG,CAAA,CAAE;AAEL,YAAU,MAAM;AACZ,QAAI,CAAC,QAAS;AACd,UAAM,SAAS,iBAAiB,OAAO;AACvC,iBAAa,MAAM;AAAA,EACvB,GAAG,CAAC,OAAO,CAAC;AAEZ,YAAU,MAAM;AACZ,wBAAoB,eAAe;AAAA,EACvC,GAAG,CAAC,mBAAmB,CAAC;AACxB,SACI;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,SAAS,MAAM;AAAA,MACf,MAAM,GAAG,MAAM,cAAc,IAAI,MAAM,IAAI;AAAA,MAC3C,QAAQ,CAAC,EAAE,OAAO,WAAA;;AACd,oCAAA,UAAA,EACK,UAAA;AAAA,UAAA,MAAM,eAAe,qBAAqB,iBAAiB,MAAM,KAAK;AAAA,UACvE;AAAA,YAAC;AAAA,YAAA;AAAA,cACI,GAAG;AAAA,cACJ,KAAK;AAAA,cACL;AAAA,cACA,QAAQ,MAAM,QAAQ,IAAI;AAAA,cAC1B,SAAS;AAAA,cACT,WAAS;AAAA,cACT,cAAc,MAAM;AAAA,cACpB,UAAU,GAAG,MAAM,cAAc,IAAI,MAAM,IAAI;AAAA,cAC/C,aAAa,MAAM;AAAA,cACnB,OAAO,MAAM;AAAA,cACb,cAAc,MAAM,iBAAiB,MAAM,iBAAiB,CAAA,IAAK;AAAA,cACjE,aAAa;AAAA,cACb,UAAU,MAAM,YAAY,YAAY,QAAQ,MAAM;AAAA,cACtD,MAAM,MAAM,QAAQ;AAAA,cACpB,UAAU,MAAM,kBAAkB;AAAA,cAClC,UAAU,MAAM;AAAA,cAChB,IAAK,MAAM,oBAAkB,oCAAO,UAAP,mBAAc,UAAU,EAAE,uBAAuB,EAAE,SAAS,mBAAA,EAAmB,IAAM,CAAA;AAAA,cAClH,SAAQ;AAAA,cACR,OACI,iBACO,MAAM,iBAAiB,CAAA,IAAK,OAC5B,WAAM,UAAN,mBAAa,OAAM,MAAM,UAAU,MAAM,iBAAiB,CAAA,IAAK;AAAA,cAE1E,WACI,MAAM,oBAAkB,qBAAgB,MAAM,KAAK,MAA3B,mBAA8B,UAChD,8BACA;AAAA,cAEV,WAAW;AAAA,gBACP,YAAY;AAAA,kBACR,UAAU;AAAA,kBACV,OAAO,EAAE,WAAW,IAAA;AAAA,gBAAI;AAAA,cAC5B;AAAA,cAGJ,aAAa,CAAC,aAAkB;AAC5B,oBAAI,MAAM,QAAQ,QAAQ,GAAG;AACzB,yBACI;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACG,eAAe,MAAM;AAAA,sBACrB,MAAM,gBAAgB,QAAQ;AAAA,sBAC9B,aAAc,WAAW,MAAM,aAAc,oBAAC,SAAA,CAAA,CAAQ,IAAK,GAAG,EAAE,eAAe,CAAC,IAAI,MAAM,KAAK;AAAA,sBAC/F,UAAU,MAAM;AAAA,sBAChB,UAAU,MAAM;AAAA,sBAChB,WAAW;AAAA,wBACP,IAAI;AAAA,0BACA,YAAY;AAAA,0BACZ,QAAQ;AAAA;AAAA,0BAER,0BAA0B;AAAA,4BACtB,OAAO;AAAA,4BACP,YAAY;AAAA,0BAAA;AAAA,wBAChB;AAAA,sBACJ;AAAA,oBACJ;AAAA,kBAAA;AAAA,gBAGZ,OAAO;AACH,wBAAM,iBAAiB,mDAAiB;AAAA,oBACpC,CAAC,WAAA;;AAAY,gCAAAF,MAAA,OAAO,UAAP,gBAAAA,IAAc,OAAM,OAAO,UAAU;AAAA;AAAA;AAEtD,yBAAQ,WAAW,MAAM,aAAc,oBAAC,WAAQ,KAAK,iDAAgB,WAChE,OAAO,MAAM,SAAS,WACnB,GAAG,EAAE,eAAe,CAAC,IAAI,MAAM,KAAK,KACpC,MAAM;AAAA,gBAClB;AAAA,cACJ;AAAA,cACA,mBAAmB,GAAG,EAAE,eAAe,CAAC,IAAI,MAAM,KAAK;AAAA,cACvD,cAAc,CAAC,SAAiB;AAC5B,+BAAe,IAAI;AACnB,kCAAkB,IAAI;AAAA,cAC1B;AAAA,cACA,OAAO,SAAQ,gBAAW,UAAX,mBAAkB,OAAO;AAAA,cACxC,cAAY,gBAAW,UAAX,mBAAkB,YAAW;AAAA,cACzC,QAAQ,MAAM;AAAA,cACd,OACI;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACG,OAAM;AAAA,kBACN,cACI,oBAAC,gBAAA,EAAe,UAAS,OACnB,UAAA,WAAW,MAAM,aACf;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACG,MAAM;AAAA,sBACN,IAAI,EAAE,IAAI,GAAG,OAAO,UAAA;AAAA,oBAAU;AAAA,kBAAA,IAGlC,CAAC,MAAM,aACN,MAAM,iBACF,MAAM,QAAQ,MAAM,KAAK,KAAK,MAAM,MAAM,SAAS,IACpD,QAAQ,MAAM,KAAK,MACnB;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACG,cAAW;AAAA,sBACX,SAAS,MAAM,WAAW,KAAK;AAAA,sBAC/B,MAAK;AAAA,sBACL,IAAI,QAAQ,EAAE,IAAI,QAAQ,EAAE,IAAI,IAAA;AAAA,sBAChC,MAAK;AAAA,sBAEL,8BAAC,OAAA,EAAM,IAAI,EAAE,UAAU,SAAO,CAAG;AAAA,oBAAA;AAAA,kBAAA,EACrC,CAGZ;AAAA,gBAAA;AAAA,cAAA;AAAA,cAKX,UAAA;AAAA,gBAAA,kBAAkB;AAAA,kBACf,SAAS;AAAA,kBACT,UAAU,QAAQ,MAAM,cAAc;AAAA,kBACtC,aAAa,MAAM;AAAA,kBACnB,QAAQ,MAAM;AAAA,kBACd,iBAAiB;AAAA,kBAEjB;AAAA,kBACA,UAAU,MAAM;AAAA,kBAChB;AAAA,kBACA;AAAA,kBACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAA,CAQH;AAAA,iBACA,+BAAO,kBACJ,qBAAC,KAAA,EAAiB,IAAI,EAAE,UAAU,UAAU,QAAQ,GAAG,YAAY,QAAQ,QAAQ,KAC/E,UAAA;AAAA,kBAAA,oBAAC,SAAA,EAAQ,UAAQ,MAAC,IAAI,EAAE,IAAI,sBAAsB,IAAI,qBAAA,EAAqB,CAAG;AAAA,kBAC9E,qBAAC,YAAS,IAAI,EAAE,KAAK,EAAA,GAAK,SACtB,MAAM;AACF,wBAAI,+BAAO,eAAe;AACtB,qDAAO;AAAA,oBACX,OAAO;AACH,sCAAA;AAAA,oBACJ;AAAA,kBACJ,GAGA,UAAA;AAAA,oBAAA,oBAAC,KAAA,EAAI,UAAS,QAAA,CAAQ;AAAA,oBACtB,qBAAC,YAAA,EAAW,MAAK,MAAK,OAAM,wBAAuB,UAAA;AAAA,sBAAA;AAAA,sBACnC,MAAM;AAAA,oBAAA,EAAA,CACtB;AAAA,kBAAA,EAAA,CACJ;AAAA,gBAAA,EAAA,GAhBK,QAiBT;AAAA,gBACH,WAAW,iBACR,oBAAC,UAAA,EAAS,UAAQ,MACd,UAAA,oBAAC,KAAA,EAAI,IAAI,EAAE,SAAS,QAAQ,gBAAgB,UAAU,OAAO,OAAA,GACzD,8BAAC,kBAAA,EAAiB,MAAM,GAAA,CAAI,EAAA,CAChC,EAAA,CACJ;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAKP,aAAa,UAAU,6CAEf,UAAAF,eAAM,cAAc,UAAU,WAAW;AAAA,YACtC,QAAQ;AAAA,YACR,WAAW;AAAA,YACX,WAAW;AAAA,YACX,QAAQ;AAAA,YACR,YAAY;AAAA,cACR,UAAU;AAAA,cACV,WAAW;AAAA,YAAA;AAAA,YAEf,GAAG,+BAAO;AAAA,UAAA,CACb,GACL;AAAA,UAGH,MAAM,kBAAkB,MAAM,QAAQ,MAAM,KAAK,KAC9C;AAAA,YAAC;AAAA,YAAA;AAAA,cACG,MAAM,MAAM;AAAA,cACZ,SAAS;AAAA,YAAA;AAAA,UAAA;AAAA,QACb,EAAA,CAER;AAAA;AAAA,IAAA;AAAA,EAAA;AAIhB,CAAC;AAED,oBAAoB,YAAY;AAAA,EAC5B,MAAM,UAAU,OAAO;AAAA,EACvB,aAAa,UAAU,OAAO;AAAA,EAC9B,OAAO,UAAU,OAAO;AAAA,EACxB,MAAM,UAAU;AAAA,EAChB,SAAS,UAAU;AAAA,IACf,UAAU,MAAM;AAAA,MACZ,OAAO,UAAU,UAAU,CAAC,UAAU,QAAQ,UAAU,IAAI,CAAC;AAAA,MAC7D,OAAO,UAAU;AAAA,IAAA,CACpB;AAAA,EAAA,EACH;AAAA,EACF,aAAa,UAAU,OAAO;AAAA,EAC9B,cAAc,UAAU;AAAA,EACxB,gBAAgB,UAAU,OAAO;AAAA,EACjC,IAAI,UAAU;AAAA,EACd,UAAU,UAAU;AAAA,EACpB,gBAAgB,UAAU;AAAA,EAC1B,UAAU,UAAU;AAAA,EACpB,UAAU,UAAU;AAAA,EACpB,aAAa,UAAU;AAAA,EACvB,UAAU,UAAU;AAAA,EACpB,cAAc,UAAU;AAAA,EACxB,eAAe,UAAU;AAAA,EACzB,eAAe,UAAU;AAAA,EACzB,eAAe,UAAU;AAAA,EACzB,YAAY,UAAU;AAAA,EACtB,eAAe,UAAU;AAAA,EACzB,YAAY,UAAU;AAAA,EACtB,aAAa,UAAU;AAAA,EACvB,iBAAiB,UAAU;AAAA,EAC3B,YAAY,UAAU;AAAA,EACtB,cAAc,UAAU;AAAA,EACxB,WAAW,UAAU;AAAA,EACrB,WAAW,UAAU;AAAA,EACrB,SAAS,UAAU;AAAA,EACnB,eAAe,UAAU;AAAA,EACzB,WAAW,UAAU;AAAA,EACrB,eAAe,UAAU;AAAA,EACzB,SAAS,UAAU;AAAA,EACnB,SAAS,UAAU;AAAA,EACnB,qBAAqB,UAAU;AACnC;"}
1
+ {"version":3,"file":"index.esm.js","sources":["../../../../../../src/components/form-control/form-builder/form-builder-element/dynamic-select.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { Controller, useFormContext, useWatch, Control } from 'react-hook-form';\nimport { dynamicSelectAdd } from './select-configuration';\nimport {\n Box,\n CircularProgress,\n Divider,\n IconButton,\n InputAdornment,\n MenuItem,\n MenuItemProps,\n OutlinedInput,\n} from '@mui/material';\nimport PropTypes from 'prop-types';\nimport { debounce } from 'lodash';\nimport { sortBy } from \"lodash\";\nimport { useTranslation } from \"react-i18next\";\nimport { Add, Close } from '@mui/icons-material';\n\nimport Select from '../../../select/select';\nimport ChipOrPlaceholder from './chip-or-placeholder';\nimport Checkbox from '../../../checkbox/checkbox';\nimport Typography from '../../../typography/typography';\nimport Chip from '../../../chip/chip';\nimport { MoreIcon } from '../../../icons';\nimport { fetchApi } from '../../../../utils/api';\nimport { useLanguage } from '../../../../hooks/useLangauge';\nimport './element.scss';\n\n// Types\ninterface IOption {\n id: string | number;\n value: string | number;\n label: string | React.ReactNode;\n disabled?: boolean;\n isGroup?: boolean;\n options?: IOption[];\n searchLabel?: string;\n}\n\n\n\ninterface IMenuItemsProps extends MenuItemProps {\n options: IOption[];\n multiple: boolean;\n placeholder: string;\n with_checkboxes: boolean;\n values: string | string[];\n field: IDynamicSearchSelectProps;\n disabledIds: (string | number)[];\n onChange: (value: string | string[]) => void;\n handleChange?: (value: string | string[]) => void;\n hasParent: boolean;\n t: (key: string) => string;\n // onFooterClick?: () => void;\n}\n\ninterface IDynamicSearchSelectProps {\n name: string;\n placeholder: string;\n label: string;\n size?: 'small' | 'medium';\n options: IOption[];\n formControl: Control<any>;\n defaultValue?: string | string[];\n fieldArrayName: string;\n id?: string;\n required?: boolean;\n is_multiselect?: boolean;\n position?: number;\n formType?: string;\n typeOfField?: string;\n disabled?: boolean;\n onChipRemove?: (value: string) => void;\n enable_footer?: boolean;\n footer_action?: string;\n onFooterClick?: () => void;\n is_loading?: boolean;\n selectedLabel?: string;\n isInternal?: boolean;\n disabledIds?: (string | number)[];\n getSelectedData?: (data: IOption | IOption[] | null, name: string) => void;\n attributes?: string[];\n handleChange?: (value: string | string[]) => void;\n hasParent?: boolean;\n sortOrder?: string;\n apiType?: string;\n handleOptions?: (value: any) => void;\n filterKey?: string;\n customeFilter?: Record<string, any>;\n refresh?: boolean;\n addType?: string;\n}\n\ninterface IPaginationState {\n page: number;\n hasMore: boolean;\n isLoadingMore: boolean;\n total: number;\n}\n\n// Helper function to generate menu items\nconst generateMenuItems = ({\n options,\n multiple,\n placeholder,\n with_checkboxes,\n values,\n // field,\n disabledIds,\n onChange,\n handleChange,\n hasParent,\n t,\n // onFooterClick\n}: IMenuItemsProps): React.ReactElement[] => {\n const itemDisabled = (id: string | number) => disabledIds?.includes(id);\n const items: React.ReactElement[] = [];\n\n if (!multiple) {\n items.push(\n <MenuItem disabled value='' key=\"placeholder\" sx={{ opacity: `0 !important`, height: `0 !important`, p: `0 !important`, m: `0 !important` }}>\n <Typography type='s3' color='theme.secondary.1000'>\n <em>{t(placeholder)}</em>\n </Typography>\n </MenuItem>\n );\n }\n const selectedValues = (Array.isArray(values) && values?.length > 0) ? values?.filter((value) => value) : values;\n\n const handleParentChange = (parentValue: string, childOptions: IOption[]) => {\n const childValues = childOptions.map((child) => child.value);\n const valueArray = Array.isArray(selectedValues) ? selectedValues : [selectedValues];\n\n const isParentSelected = valueArray.includes(parentValue);\n const updatedValues = isParentSelected\n ? valueArray.filter((value) => value !== parentValue && !childValues.includes(value))\n : [...new Set([...valueArray, parentValue, ...childValues])];\n\n onChange(updatedValues);\n handleChange?.(updatedValues);\n };\n\n const isAllOptionsSelected = (parentValue: string, childOptions: IOption[]) => {\n const childValues = childOptions.map((child) => child.value);\n const valueArray = Array.isArray(selectedValues) ? selectedValues : [selectedValues];\n return childValues.every((childValue) => valueArray.includes(childValue));\n };\n\n const isSomeOptionsSelected = (childOptions: IOption[]) => {\n const childValues = childOptions.map((child) => child.value);\n const valueArray = Array.isArray(selectedValues) ? selectedValues : [selectedValues];\n return childValues.some((childValue) => valueArray.includes(childValue));\n };\n\n if (Array.isArray(options) && options.length > 0) {\n options.forEach((option) => {\n items.push(\n <MenuItem\n value={option.value}\n key={option.value}\n disabled={Boolean(option.disabled) || itemDisabled(option.id || option.value)}\n className={option.isGroup ? 'select--MenuItemHeader' : ''}\n >\n <Box sx={{ display: 'flex', gap: 1 }}>\n {multiple && with_checkboxes && (\n <Checkbox\n checked={\n hasParent\n ? isAllOptionsSelected(option.value, option.options || [])\n : Boolean(Array.isArray(selectedValues) ? selectedValues.includes(option.value) : selectedValues == option.value)\n }\n indeterminate={\n hasParent && isSomeOptionsSelected(option.options || [])\n }\n onChange={() => hasParent ? handleParentChange(option.value, option.options || []) : handleChange?.(option.value)}\n />\n )}\n <Typography\n type='s3'\n color='theme.secondary.1000'\n onClick={() => handleChange?.(option.value)}\n >\n {option.label}\n </Typography>\n </Box>\n </MenuItem>\n );\n\n if (option.isGroup && Array.isArray(option.options)) {\n option.options.forEach((opt) => {\n items.push(\n <MenuItem\n value={opt.value}\n disabled={Boolean(opt.disabled) || itemDisabled(opt.id || opt.value)}\n sx={{ pl: 5 }}\n key={`${option.value}-${opt.value}`}\n >\n <Box sx={{ display: 'flex', gap: 1 }}>\n {multiple && with_checkboxes && (\n <Checkbox\n checked={Boolean(Array.isArray(values) && values.includes(opt.value))}\n />\n )}\n <Typography\n type='s3'\n color='theme.secondary.1000'\n onClick={() => handleChange?.(String(opt.value))}\n >\n {opt.label == \"Payment Entries\" ? \"Payment and Collection Entries\" : opt.label || opt.value}\n </Typography>\n </Box>\n </MenuItem>\n );\n });\n }\n });\n }\n\n // if (field.enable_footer) {\n\n // }\n\n if (!items.length || (items.length == 1 && !multiple)) {\n items.push(\n <MenuItem disabled key=\"no-data\">\n No data available\n </MenuItem>\n );\n }\n\n return items;\n};\n\n// Selected items component\nconst SelectedItems: React.FC<{\n data: (string | number)[];\n options: IOption[];\n}> = ({ data, options }) => {\n const displayTitle = data.map(\n (selectedItem) =>\n options?.find((option) => option.value == selectedItem)?.label || ''\n );\n const filteredDisplayTitle = displayTitle.filter(Boolean);\n\n return (\n <Typography\n type='s4'\n color='inherit'\n sx={{ display: 'flex', gap: 1, alignItems: 'center', mt: 0.5 }}\n >\n {filteredDisplayTitle.slice(0, 4).join(', ')}\n {data.length > 4 && (\n <Chip variant='outlined' type='normal' label={<MoreIcon />} />\n )}\n </Typography>\n );\n};\n\nconst Loading = () => (\n <Typography fontStyle='italic' color='inherit' type='s3'>Loading...</Typography>\n)\n\nconst DynamicSearchSelect: React.FC<IDynamicSearchSelectProps> = React.memo((props) => {\n const watchedValue = useWatch({\n control: props.formControl,\n name: `${props.fieldArrayName}.${props.name}`\n });\n\n const formContext = useFormContext();\n const { setValue } = formContext || {};\n const { t } = useTranslation();\n const { isRtl } = useLanguage();\n const selectRef = useRef<HTMLDivElement>(null);\n\n // State management\n const [options, setOptions] = useState<IOption[]>([]);\n const [selectedValue, setSelectedValue] = useState<any>(null);\n const [selectedOptions, setSelectedOptions] = useState<IOption[]>([]);\n const [loading, setLoading] = useState<boolean>(false);\n const [open, setOpen] = useState<boolean>(false);\n const [isAlreadyLoaded, setIsAlreadyLoaded] = useState<boolean>(false);\n const [prevFilter, setPrevFilter] = useState<any>(null);\n const [initialLoading, setInitialLoading] = useState<boolean>(false);\n const [searchQuery, setSearchQuery] = useState<string>(\"\");\n const [searchInitiate, setSearchInitiate] = useState<boolean>(false);\n const [addConfig, setAddConfig] = useState<any>(null);\n\n // Modal states\n const [isModalOpen, setIsModalOpen] = useState<boolean>(false);\n const [isAddLoading, setIsAddLoading] = useState<boolean>(false);\n\n\n // Pagination state\n const [pagination, setPagination] = useState<IPaginationState>({\n page: 1,\n hasMore: true,\n isLoadingMore: false,\n total: 0\n });\n\n // Props destructuring with defaults\n const {\n handleOptions,\n isInternal = false,\n disabledIds = [],\n getSelectedData,\n attributes = [],\n filterKey = 'id',\n customeFilter = {},\n refresh,\n handleChange,\n hasParent = false,\n sortOrder = 'id:-1',\n apiType,\n addType\n } = props;\n\n const limit = 25;\n\n // Memoized values\n const isInternalOptions = useMemo(() => {\n return isInternal || !apiType;\n }, [isInternal, apiType]);\n //eslint-disable-next-line\n const cf = useMemo(() => customeFilter, [JSON.stringify(customeFilter)]);\n\n // Local search function\n const searchOptionsLocally = useCallback((searchTerm: string, value: any): IOption[] => {\n if (!searchTerm) return props.options || [];\n\n const lowercasedSearchTerm = searchTerm.toLowerCase();\n\n const filteredOptions = hasParent\n ? props.options?.reduce((acc: IOption[], opt) => {\n const searchedOptions = opt.options?.filter((item) => {\n const label = React.isValidElement(item.label) ? item.searchLabel : String(item.label);\n return label?.toLowerCase().includes(lowercasedSearchTerm);\n });\n\n if (searchedOptions?.length) {\n acc.push({ ...opt, options: searchedOptions });\n }\n\n return acc;\n }, []) || []\n : props.options?.filter((opt) => {\n const label = React.isValidElement(opt.label) ? opt.searchLabel : String(opt.label);\n return label?.toLowerCase().includes(lowercasedSearchTerm);\n }) || [];\n //eslint-disable-next-line\n return sortBySelectedValues(filteredOptions, value);\n //eslint-disable-next-line\n }, [props.options, hasParent]);\n\n // Get unique options\n const getUniqueOptions = useCallback((data: IOption[]): IOption[] => {\n const uniqueOptions = [\n ...new Map(data?.map(item => [item.value, item])).values()\n ];\n return uniqueOptions;\n }, []);\n\n // Sort by selected values\n const sortBySelectedValues = useCallback((arrayToSort: IOption[], value: any): IOption[] => {\n const selectedValues = Array.isArray(value) ? value : [value];\n const sortedValue = sortBy(arrayToSort, (item) => {\n const index = selectedValues.indexOf(item.id || item.value);\n return index == -1 ? Infinity : index;\n });\n return sortedValue;\n }, []);\n\n // Filtered options with pagination support\n const filteredOptions = useMemo(() => {\n if (isInternalOptions) {\n return searchOptionsLocally(searchQuery, watchedValue);\n }\n return sortBySelectedValues(getUniqueOptions([...options, ...selectedOptions]), watchedValue);\n //eslint-disable-next-line\n }, [options, selectedOptions, isInternalOptions, props.options, watchedValue, searchQuery, searchOptionsLocally, sortBySelectedValues, getUniqueOptions]);\n\n // API Functions\n const fetchOptions = useCallback(async (searchTerm = '', flt = cf, page = 1, append = false) => {\n if (!apiType) return [];\n\n setLoading(true);\n if (page > 1) {\n setPagination(prev => ({ ...prev, isLoadingMore: true }));\n }\n\n try {\n const { data = [], pagination = {} } = await fetchApi({\n apiKey: apiType,\n filters: {\n limit,\n skip: (page - 1) * limit,\n search: searchTerm,\n filters: flt,\n select: attributes,\n order: sortOrder\n }\n });\n\n if (data && Array.isArray(data)) {\n const newOptions = append ? [...options, ...data] : data;\n updateOptions(newOptions, append);\n handleSelectedValue(data);\n // Update pagination\n setPagination(prev => ({\n ...prev,\n page,\n hasMore: pagination?.totalCount > (page * limit),\n total: pagination?.totalCount,\n isLoadingMore: false\n }));\n }\n\n return data || [];\n } catch (error) {\n console.error('Error fetching options:', error);\n setPagination(prev => ({ ...prev, isLoadingMore: false }));\n return [];\n } finally {\n setLoading(false);\n }\n //eslint-disable-next-line\n }, [apiType, options, attributes, sortOrder, limit, cf]);\n\n // Handle scroll pagination\n const handleScroll = useCallback((event: React.UIEvent<HTMLDivElement>) => {\n const { scrollTop, scrollHeight, clientHeight } = event.currentTarget;\n const isBottom = scrollHeight - scrollTop <= clientHeight + 10;\n\n if (isBottom && pagination.hasMore && !pagination.isLoadingMore && !isInternalOptions) {\n const nextPage = pagination.page + 1;\n fetchOptions(searchQuery, cf, nextPage, true);\n }\n }, [pagination.hasMore, pagination.isLoadingMore, pagination.page, isInternalOptions, searchQuery, cf, fetchOptions]);\n\n // Update options\n const updateOptions = useCallback((newOptions: IOption[], append = false) => {\n const oldOptions = append ? options : selectedOptions;\n const uniqueOptions = getUniqueOptions([...oldOptions, ...newOptions]);\n setOptions(uniqueOptions);\n }, [options, selectedOptions, getUniqueOptions]);\n\n // Handle selected value\n const handleSelectedValue = useCallback(async (updateOptions: IOption[]) => {\n const filterValue = props.is_multiselect ? watchedValue : [watchedValue];\n const isInOptions = updateOptions?.filter((item) =>\n Array.isArray(filterValue) ? filterValue.includes(item.id || item.value) : (item[filterKey] || item.value || item.id) == filterValue\n );\n\n if (Array.isArray(isInOptions) && isInOptions.length > 0) {\n getSelectedData?.(props.is_multiselect ? isInOptions : isInOptions[0], props.name);\n return true;\n }\n return false;\n //eslint-disable-next-line\n }, [props.is_multiselect, props.name, watchedValue, filterKey, getSelectedData, filteredOptions]);\n\n // Fetch options by ID\n const fetchIdOptions = useCallback(async () => {\n if (await handleSelectedValue(filteredOptions)) return;\n if (open) return;\n const condition = props.is_multiselect ?\n Array.isArray(watchedValue) && watchedValue.length > 0 :\n Boolean(watchedValue);\n\n if (condition) {\n setInitialLoading(true);\n const response = await fetchOptions('', { ...cf, '&id.in': watchedValue }, 1, false);\n setInitialLoading(false);\n\n if (response.length == 0 && setValue && !isInternalOptions) {\n // setValue(`${props.fieldArrayName}.${props.name}`, props.is_multiselect ? [] : null);\n }\n }\n //eslint-disable-next-line\n }, [open, watchedValue, JSON.stringify(cf)]);\n\n // Initial fetch\n const initialFetch = useCallback(async () => {\n const condition = JSON.stringify(cf) !== JSON.stringify(prevFilter);\n\n if (condition) {\n setPrevFilter(cf);\n setOptions([]);\n setIsAlreadyLoaded(false);\n setPagination({\n page: 1,\n hasMore: true,\n isLoadingMore: false,\n total: 0\n });\n }\n\n if (!isInternalOptions && !isAlreadyLoaded) {\n await fetchOptions(searchQuery, cf, 1, false);\n setIsAlreadyLoaded(true);\n }\n //eslint-disable-next-line react-hooks/exhaustive-deps\n }, [cf, isInternalOptions, isAlreadyLoaded]);\n\n // Debounced search\n const debouncedSearch = useMemo(\n () => debounce(async (searchTerm: string) => {\n if (loading) return;\n\n if (!searchTerm && !isInternalOptions && searchInitiate) {\n setPagination({\n page: 1,\n hasMore: true,\n isLoadingMore: false,\n total: 0\n });\n await fetchOptions('', cf, 1, false);\n }\n if (searchTerm.length > 1 && !isInternalOptions) {\n setPagination({\n page: 1,\n hasMore: true,\n isLoadingMore: false,\n total: 0\n });\n await fetchOptions(searchTerm, cf, 1, false);\n }\n }, 700),\n //eslint-disable-next-line\n [isInternalOptions, searchInitiate, cf]\n );\n\n // Reset value function\n const resetValue = useCallback((field: any) => {\n field.onChange(props.is_multiselect ? [] : null);\n if (getSelectedData) {\n getSelectedData(null, props.name);\n }\n }, [props.is_multiselect, props.name, getSelectedData]);\n\n // Handle close\n const handleClose = useCallback(() => {\n setOpen(false);\n if (searchQuery.length > 0) {\n setIsAlreadyLoaded(false);\n }\n setSearchInitiate(false);\n setSearchQuery('');\n }, [searchQuery]);\n\n const handleModalOpen = useCallback(() => {\n setIsModalOpen(true);\n }, []);\n\n\n\n // Handle modal save\n const handleModalSave = useCallback(async (payload: any) => {\n if (!addConfig || !addConfig.api) {\n console.error('Add configuration is not properly set');\n return;\n }\n\n setIsAddLoading(true);\n try {\n const result = await addConfig.api(payload);\n setIsAddLoading(false);\n setIsModalOpen(false);\n if (!isInternalOptions) {\n setPagination({\n page: 1,\n hasMore: true,\n isLoadingMore: false,\n total: 0\n });\n setIsAlreadyLoaded(false);\n await fetchOptions('', cf, 1, false);\n }\n if (result && result.data) {\n const newValue = props.is_multiselect\n ? [...(watchedValue || []), result.data.id]\n : result.data.id;\n\n if (setValue) {\n setValue(`${props.fieldArrayName}.${props.name}`, newValue);\n }\n }\n } catch (error) {\n console.log(\"error\", error);\n setIsAddLoading(false);\n }\n\n\n }, [addConfig, isInternalOptions, fetchOptions, cf, props.is_multiselect, props.fieldArrayName, props.name, watchedValue, setValue]);\n\n // Effects\n useEffect(() => {\n if (handleOptions) {\n handleOptions(selectedValue);\n }\n }, [handleOptions, selectedValue]);\n\n useEffect(() => {\n if (open) {\n initialFetch();\n }\n }, [open, initialFetch]);\n\n useEffect(() => {\n fetchIdOptions();\n }, [fetchIdOptions]);\n\n useEffect(() => {\n if (refresh) {\n setPagination({\n page: 1,\n hasMore: true,\n isLoadingMore: false,\n total: 0\n });\n fetchOptions('', cf, 1, false);\n }\n }, [refresh, fetchOptions, cf]);\n\n useEffect(() => {\n if (open) {\n debouncedSearch(searchQuery);\n }\n return () => debouncedSearch.cancel();\n }, [searchQuery, open, debouncedSearch]);\n\n useEffect(() => {\n if (watchedValue && !open) {\n const selectedData = options?.filter((item) =>\n props.is_multiselect ?\n Array.isArray(watchedValue) && watchedValue.includes(item.id || item.value) :\n (item.id || item.value) == watchedValue\n );\n setSelectedOptions(selectedData || []);\n }\n }, [watchedValue, options, props.is_multiselect, open]);\n\n const removeUndefined = useCallback((selectOptions: any[]) => {\n return Array.isArray(selectOptions) ? selectOptions.filter(Boolean) : [];\n }, []);\n\n useEffect(() => {\n if (!addType) return;\n const config = dynamicSelectAdd(addType);\n setAddConfig(config);\n }, [addType])\n\n useEffect(() => {\n handleSelectedValue(filteredOptions)\n }, [handleSelectedValue])\n return (\n <Controller\n control={props.formControl}\n name={`${props.fieldArrayName}.${props.name}`}\n render={({ field, fieldState }) => (\n <>\n {props.placeholder == 'Select Currency' && setSelectedValue(field.value)}\n <Select\n {...field}\n ref={selectRef}\n open={open}\n onOpen={() => setOpen(true)}\n onClose={handleClose}\n fullWidth\n dataPosition={props.position}\n dataName={`${props.fieldArrayName}.${props.name}`}\n placeholder={props.placeholder}\n label={props.label}\n defaultValue={props.defaultValue || (props.is_multiselect ? [] : '')}\n searchValue={searchQuery}\n required={props.formType == 'builder' ? false : props.required}\n size={props.size || 'small'}\n multiple={props.is_multiselect || false}\n disabled={props.disabled}\n sx={(props.is_multiselect && field?.value?.length) ? { \"& .MuiSelect-select\": { padding: '5.5px !important' } } : {}}\n variant='outlined'\n value={\n initialLoading\n ? (props.is_multiselect ? [] : '')\n : (field.value?.id || field.value || (props.is_multiselect ? [] : ''))\n }\n className={\n props.is_multiselect && removeUndefined(field.value)?.length\n ? 'MultiSelect filter-select'\n : ''\n }\n MenuProps={{\n PaperProps: {\n onScroll: handleScroll,\n style: { maxHeight: 300 }\n }\n }}\n\n renderValue={(selected: any) => {\n if (Array.isArray(selected)) {\n return (\n <ChipOrPlaceholder\n selectedLabel={props.selectedLabel}\n data={removeUndefined(selected)}\n placeholder={(loading || props.is_loading) ? <Loading /> : `${t('common.search')} ${props.label}`}\n onDelete={props.onChipRemove}\n disabled={props.disabled}\n chipProps={{\n sx: {\n background: '#ebf9f2',\n border: 0,\n // borderRadius: '15px',\n '& .MuiTypography-body1': {\n color: '#289b64',\n fontWeight: \"500\",\n }\n }\n }}\n />\n );\n } else {\n const selectedOption = filteredOptions?.find(\n (option) => (option.value?.id || option.value) == selected\n );\n return (loading || props.is_loading) ? <Loading /> : selectedOption?.label ||\n (typeof props.label == 'string' ?\n `${t('common.search')} ${props.label}` :\n props.placeholder);\n }\n }}\n searchPlaceholder={`${t('common.search')} ${props.label}`}\n handleSearch={(text: string) => {\n setSearchQuery(text);\n setSearchInitiate(true);\n }}\n error={Boolean(fieldState.error?.message)}\n helperText={fieldState.error?.message || ''}\n onBlur={field.onBlur}\n input={\n <OutlinedInput\n label=''\n endAdornment={\n <InputAdornment position='end'>\n {(loading || props.is_loading) ? (\n <CircularProgress\n size={20}\n sx={{ mr: 3, color: \"#4AC08C\" }}\n />\n ) : (\n !props.disabled &&\n (props.is_multiselect ?\n (Array.isArray(field.value) && field.value.length > 0) :\n Boolean(field.value)) && (\n <IconButton\n aria-label='clear selection'\n onClick={() => resetValue(field)}\n edge='end'\n sx={isRtl ? { ml: 2.5 } : { mr: 1.5 }}\n size='small'\n >\n <Close sx={{ fontSize: '1rem' }} />\n </IconButton>\n )\n )}\n </InputAdornment>\n }\n />\n }\n >\n {generateMenuItems({\n options: filteredOptions,\n multiple: Boolean(props.is_multiselect),\n placeholder: props.placeholder,\n values: field.value,\n with_checkboxes: true,\n field: props,\n disabledIds,\n onChange: field.onChange,\n handleChange,\n hasParent,\n t,\n // onFooterClick: () => {\n // if (props?.onFooterClick) {\n // props?.onFooterClick();\n // } else {\n // handleModalOpen();\n // }\n // }\n })}\n {props?.enable_footer &&\n <Box key=\"footer\" sx={{ position: 'sticky', bottom: 0, background: '#fff', zIndex: 1 }}>\n <Divider flexItem sx={{ mt: '0.25rem !important', mb: '0.25rem !important' }} />\n <MenuItem sx={{ gap: 1 }} onClick={\n () => {\n if (props?.onFooterClick) {\n props?.onFooterClick();\n } else {\n handleModalOpen();\n }\n }\n\n }>\n <Add fontSize='small' />\n <Typography type='s4' color='theme.secondary.1000'>\n Create New {props.label}\n </Typography>\n </MenuItem>\n </Box>}\n {pagination.isLoadingMore && (\n <MenuItem disabled>\n <Box sx={{ display: 'flex', justifyContent: 'center', width: '100%' }}>\n <CircularProgress size={20} />\n </Box>\n </MenuItem>\n )}\n </Select>\n\n {/* Modal for adding new items */}\n {addConfig && addConfig.component && (\n <>\n {React.createElement(addConfig.component, {\n isOpen: isModalOpen,\n setIsOpen: setIsModalOpen,\n isLoading: isAddLoading,\n onSave: handleModalSave,\n modalProps: {\n maxWidth: 'md',\n fullWidth: true\n },\n ...props?.modalComponentProps\n })}\n </>\n )}\n\n {props.is_multiselect && Array.isArray(field.value) && (\n <SelectedItems\n data={field.value}\n options={filteredOptions}\n />\n )}\n </>\n )}\n />\n );\n});\n\nDynamicSearchSelect.propTypes = {\n name: PropTypes.string.isRequired,\n placeholder: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n size: PropTypes.string,\n options: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n value: PropTypes.any\n })\n ).isRequired,\n formControl: PropTypes.object.isRequired,\n defaultValue: PropTypes.any,\n fieldArrayName: PropTypes.string.isRequired,\n id: PropTypes.string,\n required: PropTypes.bool,\n is_multiselect: PropTypes.bool,\n position: PropTypes.number,\n formType: PropTypes.string,\n typeOfField: PropTypes.string,\n disabled: PropTypes.bool,\n onChipRemove: PropTypes.func,\n enable_footer: PropTypes.bool,\n footer_action: PropTypes.string,\n onFooterClick: PropTypes.func,\n is_loading: PropTypes.bool,\n selectedLabel: PropTypes.string,\n isInternal: PropTypes.bool,\n disabledIds: PropTypes.array,\n getSelectedData: PropTypes.func,\n attributes: PropTypes.array,\n handleChange: PropTypes.func,\n hasParent: PropTypes.bool,\n sortOrder: PropTypes.string,\n apiType: PropTypes.string,\n handleOptions: PropTypes.func,\n filterKey: PropTypes.string,\n customeFilter: PropTypes.object,\n refresh: PropTypes.bool,\n addType: PropTypes.string,\n modalComponentProps: PropTypes.object\n};\n\nexport default DynamicSearchSelect;\n"],"names":["React","filteredOptions","_a","pagination","updateOptions"],"mappings":"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"}