@erpsquad/common 1.8.80 → 1.8.81

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 (658) 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.esm2.js +2 -4
  6. package/dist/_virtual/index/index.esm2.js.map +1 -1
  7. package/dist/_virtual/index/index.esm3.js +4 -2
  8. package/dist/_virtual/index/index.esm3.js.map +1 -1
  9. package/dist/_virtual/index/index.esm4.js +1 -1
  10. package/dist/_virtual/index/index.esm5.js +3 -3
  11. package/dist/_virtual/index/index.esm6.js +3 -3
  12. package/dist/_virtual/index/index.esm7.js +3 -3
  13. package/dist/_virtual/index/index.esm8.js +3 -3
  14. package/dist/_virtual/index/index.esm9.js +3 -3
  15. package/dist/_virtual/index/index10.js +1 -1
  16. package/dist/_virtual/index/index11.js +1 -1
  17. package/dist/_virtual/index/index2.js +1 -1
  18. package/dist/_virtual/index/index3.js +1 -1
  19. package/dist/_virtual/index/index4.js +1 -1
  20. package/dist/_virtual/index/index5.js +1 -1
  21. package/dist/_virtual/index/index6.js +1 -1
  22. package/dist/_virtual/index/index7.js +1 -1
  23. package/dist/_virtual/index/index8.js +1 -1
  24. package/dist/_virtual/index/index9.js +1 -1
  25. package/dist/api-client/api.accounting/api/index.esm.js.map +1 -1
  26. package/dist/api-client/api.accounting/api/index.js.map +1 -1
  27. package/dist/api-client/api.accounting/api-types.d.ts +15883 -15883
  28. package/dist/api-client/api.drive/api/index.esm.js.map +1 -1
  29. package/dist/api-client/api.drive/api/index.js.map +1 -1
  30. package/dist/api-client/api.drive/api-types.d.ts +696 -696
  31. package/dist/api-client/api.hrms/api/index.esm.js.map +1 -1
  32. package/dist/api-client/api.hrms/api/index.js.map +1 -1
  33. package/dist/api-client/api.inventory/api/index.esm.js.map +1 -1
  34. package/dist/api-client/api.inventory/api/index.js.map +1 -1
  35. package/dist/api-client/api.inventory/api-types.d.ts +6110 -6110
  36. package/dist/api-client/api.manufacturing/api/index.esm.js.map +1 -1
  37. package/dist/api-client/api.manufacturing/api/index.js.map +1 -1
  38. package/dist/api-client/api.manufacturing/api-types.d.ts +10066 -10066
  39. package/dist/api-client/api.purchase/api/index.esm.js.map +1 -1
  40. package/dist/api-client/api.purchase/api/index.js.map +1 -1
  41. package/dist/api-client/api.purchase/api-types.d.ts +6715 -6715
  42. package/dist/api-client/api.rbac/api/index.esm.js.map +1 -1
  43. package/dist/api-client/api.rbac/api/index.esm2.js.map +1 -1
  44. package/dist/api-client/api.rbac/api/index.js.map +1 -1
  45. package/dist/api-client/api.rbac/api/index2.js.map +1 -1
  46. package/dist/api-client/api.rbac/api-types.d.ts +1753 -1753
  47. package/dist/api-client/api.rental/api/index.esm.js.map +1 -1
  48. package/dist/api-client/api.rental/api/index.js.map +1 -1
  49. package/dist/api-client/api.rental/api-types.d.ts +15666 -15666
  50. package/dist/api-client/api.sales/api/index.esm.js.map +1 -1
  51. package/dist/api-client/api.sales/api/index.js.map +1 -1
  52. package/dist/api-client/api.sales/api-types.d.ts +8258 -8258
  53. package/dist/api-client/api.system-feature/api/index.esm.js.map +1 -1
  54. package/dist/api-client/api.system-feature/api/index.js.map +1 -1
  55. package/dist/api-client/api.system-feature/api-types.d.ts +2875 -2875
  56. package/dist/api-client/api.user/api/index.esm.js.map +1 -1
  57. package/dist/api-client/api.user/api/index.js.map +1 -1
  58. package/dist/api-client/api.user/api-types.d.ts +95 -95
  59. package/dist/api-client/api.workflow-automation/api/index.esm.js.map +1 -1
  60. package/dist/api-client/api.workflow-automation/api/index.js.map +1 -1
  61. package/dist/api-client/index.d.ts +39 -39
  62. package/dist/components/accordion/accordion/index.esm.js.map +1 -1
  63. package/dist/components/accordion/accordion/index.js.map +1 -1
  64. package/dist/components/accordion/accordion.d.ts +1 -1
  65. package/dist/components/action-bar/action-bar/index.esm.js +1 -1
  66. package/dist/components/action-bar/action-bar/index.esm.js.map +1 -1
  67. package/dist/components/action-bar/action-bar/index.js +5 -5
  68. package/dist/components/action-bar/action-bar/index.js.map +1 -1
  69. package/dist/components/action-bar/action-bar.d.ts +1 -1
  70. package/dist/components/activity-tag/activity-tag/index.esm.js.map +1 -1
  71. package/dist/components/activity-tag/activity-tag/index.js.map +1 -1
  72. package/dist/components/alert/alert/index.esm.js.map +1 -1
  73. package/dist/components/alert/alert/index.js.map +1 -1
  74. package/dist/components/button/button/index.esm.js.map +1 -1
  75. package/dist/components/button/button/index.js.map +1 -1
  76. package/dist/components/change-user-password-modal/change-user-password-modal/index.esm.js.map +1 -1
  77. package/dist/components/change-user-password-modal/change-user-password-modal/index.js.map +1 -1
  78. package/dist/components/checkbox/checkbox/index.esm.js.map +1 -1
  79. package/dist/components/checkbox/checkbox/index.js.map +1 -1
  80. package/dist/components/checkbox/checkbox.d.ts +1 -1
  81. package/dist/components/chip/chip/index.esm.js.map +1 -1
  82. package/dist/components/chip/chip/index.js.map +1 -1
  83. package/dist/components/chip-generator/chip-generator/index.esm.js.map +1 -1
  84. package/dist/components/chip-generator/chip-generator/index.js.map +1 -1
  85. package/dist/components/date-picker/date-picker/index.esm.js.map +1 -1
  86. package/dist/components/date-picker/date-picker/index.js.map +1 -1
  87. package/dist/components/date-picker/date-picker.d.ts +1 -1
  88. package/dist/components/date-time-picker/date-time-picker/index.esm.js.map +1 -1
  89. package/dist/components/date-time-picker/date-time-picker/index.js.map +1 -1
  90. package/dist/components/editor/custom-editor/index.esm.js.map +1 -1
  91. package/dist/components/editor/custom-editor/index.js.map +1 -1
  92. package/dist/components/filter/components/delete-group/index.esm.js +1 -0
  93. package/dist/components/filter/components/delete-group/index.esm.js.map +1 -1
  94. package/dist/components/filter/components/delete-group/index.js +1 -1
  95. package/dist/components/filter/components/delete-group/index.js.map +1 -1
  96. package/dist/components/filter/filter/index.esm.js +1 -1
  97. package/dist/components/filter/filter/index.esm.js.map +1 -1
  98. package/dist/components/filter/filter/index.js +7 -7
  99. package/dist/components/filter/filter/index.js.map +1 -1
  100. package/dist/components/footer/footer.d.ts +1 -1
  101. package/dist/components/form-control/form-builder/form-builder-element/dynamic-select/index.esm.js.map +1 -1
  102. package/dist/components/form-control/form-builder/form-builder-element/dynamic-select/index.js.map +1 -1
  103. package/dist/components/form-control/form-builder/form-builder-element/media.d.ts +1 -1
  104. package/dist/components/form-control/form-builder/form-builder-element/phone.d.ts +1 -1
  105. package/dist/components/form-control/form-builder/form-builder-element/select.d.ts +1 -1
  106. package/dist/components/form-control/form-builder/form-builder-element/text.d.ts +1 -1
  107. package/dist/components/form-control/form-builder/form-builder-element/time.d.ts +1 -1
  108. package/dist/components/form-control/form-parser/form-switcher.d.ts +1 -1
  109. package/dist/components/header/header/index.esm.js.map +1 -1
  110. package/dist/components/header/header/index.js.map +1 -1
  111. package/dist/components/header/redux/actionCreator/index.esm.js +1 -1
  112. package/dist/components/header/redux/actionCreator/index.esm.js.map +1 -1
  113. package/dist/components/header/redux/actionCreator/index.js +1 -1
  114. package/dist/components/header/redux/actionCreator/index.js.map +1 -1
  115. package/dist/components/icons/action/index.esm.js.map +1 -1
  116. package/dist/components/icons/action/index.js.map +1 -1
  117. package/dist/components/icons/action-arrow.d.ts +3 -3
  118. package/dist/components/icons/add-circle.d.ts +3 -3
  119. package/dist/components/icons/arrow-bidirectional.d.ts +3 -3
  120. package/dist/components/icons/arrow-circle-down.d.ts +3 -3
  121. package/dist/components/icons/arrow-down-three.d.ts +3 -3
  122. package/dist/components/icons/arrow-down-two.d.ts +3 -3
  123. package/dist/components/icons/arrow-down.d.ts +3 -3
  124. package/dist/components/icons/arrow-up-down.d.ts +3 -3
  125. package/dist/components/icons/arrow-up-two.d.ts +3 -3
  126. package/dist/components/icons/assignments.d.ts +3 -3
  127. package/dist/components/icons/blank-circle.d.ts +3 -3
  128. package/dist/components/icons/block-filled.d.ts +3 -3
  129. package/dist/components/icons/calendar-add.d.ts +3 -3
  130. package/dist/components/icons/calendar.d.ts +3 -3
  131. package/dist/components/icons/checkbox-square.d.ts +3 -3
  132. package/dist/components/icons/circular-arrow-setting.d.ts +3 -3
  133. package/dist/components/icons/clock.d.ts +3 -3
  134. package/dist/components/icons/close.d.ts +3 -3
  135. package/dist/components/icons/coin-outline.d.ts +3 -3
  136. package/dist/components/icons/copy.d.ts +3 -3
  137. package/dist/components/icons/coupon.d.ts +3 -3
  138. package/dist/components/icons/criteria/index.esm.js.map +1 -1
  139. package/dist/components/icons/criteria/index.js.map +1 -1
  140. package/dist/components/icons/cross/index.esm.js.map +1 -1
  141. package/dist/components/icons/cross/index.js.map +1 -1
  142. package/dist/components/icons/cross-hire.d.ts +3 -3
  143. package/dist/components/icons/custom-styled-icon.d.ts +3 -3
  144. package/dist/components/icons/dashboard.d.ts +3 -3
  145. package/dist/components/icons/document-download.d.ts +3 -3
  146. package/dist/components/icons/document.d.ts +3 -3
  147. package/dist/components/icons/dollar-circle-filled.d.ts +3 -3
  148. package/dist/components/icons/dollar-circle.d.ts +3 -3
  149. package/dist/components/icons/edit.d.ts +3 -3
  150. package/dist/components/icons/email.d.ts +3 -3
  151. package/dist/components/icons/export.d.ts +3 -3
  152. package/dist/components/icons/eye-off.d.ts +3 -3
  153. package/dist/components/icons/eye-plus-circle.d.ts +3 -3
  154. package/dist/components/icons/eye.d.ts +3 -3
  155. package/dist/components/icons/filled-circle.d.ts +3 -3
  156. package/dist/components/icons/filter-remove.d.ts +3 -3
  157. package/dist/components/icons/filter.d.ts +3 -3
  158. package/dist/components/icons/folder-save.d.ts +3 -3
  159. package/dist/components/icons/grid.d.ts +3 -3
  160. package/dist/components/icons/hashtag.d.ts +3 -3
  161. package/dist/components/icons/image.d.ts +3 -3
  162. package/dist/components/icons/import.d.ts +3 -3
  163. package/dist/components/icons/info-circle.d.ts +3 -3
  164. package/dist/components/icons/info.d.ts +3 -3
  165. package/dist/components/icons/link-horizontal.d.ts +3 -3
  166. package/dist/components/icons/link.d.ts +3 -3
  167. package/dist/components/icons/location.d.ts +3 -3
  168. package/dist/components/icons/lowest-lead-time.d.ts +3 -3
  169. package/dist/components/icons/lowest-min-qty.d.ts +3 -3
  170. package/dist/components/icons/lowest-price.d.ts +3 -3
  171. package/dist/components/icons/more.d.ts +3 -3
  172. package/dist/components/icons/notification.d.ts +3 -3
  173. package/dist/components/icons/paper-clip.d.ts +3 -3
  174. package/dist/components/icons/paragraph.d.ts +3 -3
  175. package/dist/components/icons/payment-request.d.ts +3 -3
  176. package/dist/components/icons/phone.d.ts +3 -3
  177. package/dist/components/icons/printer.d.ts +3 -3
  178. package/dist/components/icons/process-calendar.d.ts +3 -3
  179. package/dist/components/icons/promotion.d.ts +3 -3
  180. package/dist/components/icons/radio-button.d.ts +3 -3
  181. package/dist/components/icons/receipt-filled.d.ts +3 -3
  182. package/dist/components/icons/receipt-outline.d.ts +3 -3
  183. package/dist/components/icons/receipt.d.ts +3 -3
  184. package/dist/components/icons/refresh-icon.d.ts +3 -3
  185. package/dist/components/icons/replace.d.ts +3 -3
  186. package/dist/components/icons/save.d.ts +3 -3
  187. package/dist/components/icons/search-status.d.ts +3 -3
  188. package/dist/components/icons/search.d.ts +3 -3
  189. package/dist/components/icons/settings-fallback.d.ts +3 -3
  190. package/dist/components/icons/share/index.esm.js.map +1 -1
  191. package/dist/components/icons/share/index.js.map +1 -1
  192. package/dist/components/icons/sort-arrow-icon.d.ts +3 -3
  193. package/dist/components/icons/stacked-layer.d.ts +3 -3
  194. package/dist/components/icons/start-filled.d.ts +3 -3
  195. package/dist/components/icons/three-dot-icon.d.ts +3 -3
  196. package/dist/components/icons/tick-circle-filled.d.ts +3 -3
  197. package/dist/components/icons/tick-circle.d.ts +3 -3
  198. package/dist/components/icons/tick-octagon.d.ts +3 -3
  199. package/dist/components/icons/tick.d.ts +3 -3
  200. package/dist/components/icons/toggle-switch.d.ts +3 -3
  201. package/dist/components/icons/trash.d.ts +3 -3
  202. package/dist/components/icons/wave.d.ts +3 -3
  203. package/dist/components/icons/with-out-tick-octagon.d.ts +3 -3
  204. package/dist/components/icons/work-centre.d.ts +3 -3
  205. package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.esm.js +1 -1
  206. package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.esm.js.map +1 -1
  207. package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.js +1 -1
  208. package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.js.map +1 -1
  209. package/dist/components/label-value/label-value/index.esm.js.map +1 -1
  210. package/dist/components/label-value/label-value/index.js.map +1 -1
  211. package/dist/components/listing/listing/index.esm.js.map +1 -1
  212. package/dist/components/listing/listing/index.js.map +1 -1
  213. package/dist/components/loaders/erp-loader/index.esm.js.map +1 -1
  214. package/dist/components/loaders/erp-loader/index.js.map +1 -1
  215. package/dist/components/loaders/form-loader/index.esm.js.map +1 -1
  216. package/dist/components/loaders/form-loader/index.js.map +1 -1
  217. package/dist/components/loaders/modal-loader/index.esm.js.map +1 -1
  218. package/dist/components/loaders/modal-loader/index.js.map +1 -1
  219. package/dist/components/loaders/page-loader/index.esm.js.map +1 -1
  220. package/dist/components/loaders/page-loader/index.js.map +1 -1
  221. package/dist/components/location-select.d.ts +1 -1
  222. package/dist/components/material-editable-table/components/inline-edit-fields/index.esm.js.map +1 -1
  223. package/dist/components/material-editable-table/components/inline-edit-fields/index.js.map +1 -1
  224. package/dist/components/material-editable-table/material-editable-table/index.esm.js.map +1 -1
  225. package/dist/components/material-editable-table/material-editable-table/index.js.map +1 -1
  226. package/dist/components/material-editable-table/material-editable-table.d.ts +1 -1
  227. package/dist/components/material-table/material-table.d.ts +1 -1
  228. package/dist/components/menu/menu/index.esm.js.map +1 -1
  229. package/dist/components/menu/menu/index.js.map +1 -1
  230. package/dist/components/modal/modal/index.esm.js.map +1 -1
  231. package/dist/components/modal/modal/index.js.map +1 -1
  232. package/dist/components/page-navigator/page-navigator/index.esm.js.map +1 -1
  233. package/dist/components/page-navigator/page-navigator/index.js.map +1 -1
  234. package/dist/components/phone-input/phone-input.d.ts +1 -1
  235. package/dist/components/providers/ERPUIProvider/index.esm.js.map +1 -1
  236. package/dist/components/providers/ERPUIProvider/index.js.map +1 -1
  237. package/dist/components/radio/radio.d.ts +1 -1
  238. package/dist/components/reports-title-bar/redux/actionCreator/index.esm.js +1 -1
  239. package/dist/components/reports-title-bar/redux/actionCreator/index.esm.js.map +1 -1
  240. package/dist/components/reports-title-bar/redux/actionCreator/index.js +1 -1
  241. package/dist/components/reports-title-bar/redux/actionCreator/index.js.map +1 -1
  242. package/dist/components/reset-password-modal/reset-password-modal/index.esm.js.map +1 -1
  243. package/dist/components/reset-password-modal/reset-password-modal/index.js.map +1 -1
  244. package/dist/components/search-bar/search-bar/index.esm.js.map +1 -1
  245. package/dist/components/search-bar/search-bar/index.js.map +1 -1
  246. package/dist/components/searchable-select/index.esm.js.map +1 -1
  247. package/dist/components/searchable-select/index.js.map +1 -1
  248. package/dist/components/select/controller/chip-or-placeholder/index.esm.js.map +1 -1
  249. package/dist/components/select/controller/chip-or-placeholder/index.js.map +1 -1
  250. package/dist/components/select/select/index.esm.js.map +1 -1
  251. package/dist/components/select/select/index.js.map +1 -1
  252. package/dist/components/select/select-search/index.esm.js.map +1 -1
  253. package/dist/components/select/select-search/index.js.map +1 -1
  254. package/dist/components/select/select.d.ts +1 -1
  255. package/dist/components/share-modal/redux/actionCreator/index.esm.js +1 -1
  256. package/dist/components/share-modal/redux/actionCreator/index.esm.js.map +1 -1
  257. package/dist/components/share-modal/redux/actionCreator/index.js +1 -1
  258. package/dist/components/share-modal/redux/actionCreator/index.js.map +1 -1
  259. package/dist/components/sub-header-doc/sub-header-doc/index.esm.js.map +1 -1
  260. package/dist/components/sub-header-doc/sub-header-doc/index.js.map +1 -1
  261. package/dist/components/switches/android-12-switch/index.esm.js.map +1 -1
  262. package/dist/components/switches/android-12-switch/index.js.map +1 -1
  263. package/dist/components/switches/android-12-switch.d.ts +1 -3
  264. package/dist/components/text-area/text-area/index.esm.js.map +1 -1
  265. package/dist/components/text-area/text-area/index.js.map +1 -1
  266. package/dist/components/text-field/text-field/index.esm.js.map +1 -1
  267. package/dist/components/text-field/text-field/index.js.map +1 -1
  268. package/dist/components/text-field/text-field.d.ts +1 -1
  269. package/dist/components/time-picker/time-picker/index.esm.js.map +1 -1
  270. package/dist/components/time-picker/time-picker/index.js.map +1 -1
  271. package/dist/components/time-picker/time-picker.d.ts +1 -1
  272. package/dist/components/toast/toast/index.esm.js.map +1 -1
  273. package/dist/components/toast/toast/index.js.map +1 -1
  274. package/dist/components/toggle/toggle/index.esm.js.map +1 -1
  275. package/dist/components/toggle/toggle/index.js.map +1 -1
  276. package/dist/components/typography/typography/index.esm.js.map +1 -1
  277. package/dist/components/typography/typography/index.js.map +1 -1
  278. package/dist/components/upload/upload/index.esm.js +2 -2
  279. package/dist/components/upload/upload/index.esm.js.map +1 -1
  280. package/dist/components/upload/upload/index.js +11 -11
  281. package/dist/components/upload/upload/index.js.map +1 -1
  282. package/dist/components/upload-media/upload-media.d.ts +1 -1
  283. package/dist/constants/defaultColumns/index.esm.js.map +1 -1
  284. package/dist/constants/defaultColumns/index.js.map +1 -1
  285. package/dist/constants/modules/index.esm.js.map +1 -1
  286. package/dist/constants/modules/index.js.map +1 -1
  287. package/dist/constants/pathnames/pathname/index.esm.js.map +1 -1
  288. package/dist/constants/pathnames/pathname/index.js.map +1 -1
  289. package/dist/constants/pathnames/pathname.accounting/index.esm.js.map +1 -1
  290. package/dist/constants/pathnames/pathname.accounting/index.js.map +1 -1
  291. package/dist/constants/pathnames/pathname.crm/index.esm.js.map +1 -1
  292. package/dist/constants/pathnames/pathname.crm/index.js.map +1 -1
  293. package/dist/constants/pathnames/pathname.document/index.esm.js.map +1 -1
  294. package/dist/constants/pathnames/pathname.document/index.js.map +1 -1
  295. package/dist/constants/pathnames/pathname.hrms/index.esm.js.map +1 -1
  296. package/dist/constants/pathnames/pathname.hrms/index.js.map +1 -1
  297. package/dist/constants/pathnames/pathname.inventory/index.esm.js.map +1 -1
  298. package/dist/constants/pathnames/pathname.inventory/index.js.map +1 -1
  299. package/dist/constants/pathnames/pathname.manufacturing/index.esm.js.map +1 -1
  300. package/dist/constants/pathnames/pathname.manufacturing/index.js.map +1 -1
  301. package/dist/constants/pathnames/pathname.office/index.esm.js.map +1 -1
  302. package/dist/constants/pathnames/pathname.office/index.js.map +1 -1
  303. package/dist/constants/pathnames/pathname.procurement/index.esm.js.map +1 -1
  304. package/dist/constants/pathnames/pathname.procurement/index.js.map +1 -1
  305. package/dist/constants/pathnames/pathname.project/index.esm.js.map +1 -1
  306. package/dist/constants/pathnames/pathname.project/index.js.map +1 -1
  307. package/dist/constants/pathnames/pathname.quotes/index.esm.js.map +1 -1
  308. package/dist/constants/pathnames/pathname.quotes/index.js.map +1 -1
  309. package/dist/constants/pathnames/pathname.rental/index.esm.js.map +1 -1
  310. package/dist/constants/pathnames/pathname.rental/index.js.map +1 -1
  311. package/dist/constants/pathnames/pathname.user/index.esm.js.map +1 -1
  312. package/dist/constants/pathnames/pathname.user/index.js.map +1 -1
  313. package/dist/constants/route-page-map/index.esm.js.map +1 -1
  314. package/dist/constants/route-page-map/index.js.map +1 -1
  315. package/dist/constants/status/index.esm.js.map +1 -1
  316. package/dist/constants/status/index.js.map +1 -1
  317. package/dist/contexts/AuthContext/index.esm.js +1 -1
  318. package/dist/contexts/AuthContext/index.esm.js.map +1 -1
  319. package/dist/contexts/AuthContext/index.js +1 -1
  320. package/dist/contexts/AuthContext/index.js.map +1 -1
  321. package/dist/contexts/languageContext/index.esm.js +1 -1
  322. package/dist/contexts/languageContext/index.esm.js.map +1 -1
  323. package/dist/contexts/languageContext/index.js +1 -1
  324. package/dist/contexts/languageContext/index.js.map +1 -1
  325. package/dist/contexts/page-context/index.esm.js.map +1 -1
  326. package/dist/contexts/page-context/index.js.map +1 -1
  327. package/dist/hooks/use-translations/index.esm.js.map +1 -1
  328. package/dist/hooks/use-translations/index.js.map +1 -1
  329. package/dist/hooks/useApi/index.esm.js.map +1 -1
  330. package/dist/hooks/useApi/index.js.map +1 -1
  331. package/dist/hooks/useDataFetcher/index.esm.js.map +1 -1
  332. package/dist/hooks/useDataFetcher/index.js.map +1 -1
  333. package/dist/layout/fullScreen/fullScreen/index.esm.js.map +1 -1
  334. package/dist/layout/fullScreen/fullScreen/index.js.map +1 -1
  335. package/dist/layout/sidebarScreen/sidebarScreen/index.esm.js.map +1 -1
  336. package/dist/layout/sidebarScreen/sidebarScreen/index.js.map +1 -1
  337. package/dist/node_modules/@asseinfo/react-kanban/dist/index/index.esm.js +1 -1
  338. package/dist/node_modules/@asseinfo/react-kanban/dist/index/index.js +1 -1
  339. package/dist/node_modules/@glideapps/glide-data-grid-cells/dist/js/article-cell-editor-JDI676YI/index.esm.js +1 -1
  340. package/dist/node_modules/@glideapps/glide-data-grid-cells/dist/js/article-cell-editor-JDI676YI/index.js +2 -2
  341. package/dist/node_modules/@glideapps/glide-data-grid-cells/dist/js/article-cell-editor-JDI676YI/index.js.map +1 -1
  342. package/dist/node_modules/{@toast-ui → @glideapps/glide-data-grid-cells/node_modules/@toast-ui}/react-editor/dist/esm/index/index.esm.js +2 -2
  343. package/dist/node_modules/@glideapps/glide-data-grid-cells/node_modules/@toast-ui/react-editor/dist/esm/index/index.esm.js.map +1 -0
  344. package/dist/node_modules/@glideapps/glide-data-grid-cells/node_modules/@toast-ui/react-editor/dist/esm/index/index.js +2 -0
  345. package/dist/node_modules/@glideapps/glide-data-grid-cells/node_modules/@toast-ui/react-editor/dist/esm/index/index.js.map +1 -0
  346. package/dist/node_modules/@mui/icons-material/utils/createSvgIcon/index.esm.js +1 -1
  347. package/dist/node_modules/@mui/icons-material/utils/createSvgIcon/index.js +1 -1
  348. package/dist/node_modules/@mui/system/colorManipulator/index.esm.js +2 -2
  349. package/dist/node_modules/@mui/system/colorManipulator/index.js +1 -1
  350. package/dist/node_modules/@mui/system/colorManipulator/index.js.map +1 -1
  351. package/dist/node_modules/@mui/system/createStyled/index.esm.js +6 -6
  352. package/dist/node_modules/@mui/system/createStyled/index.js +1 -1
  353. package/dist/node_modules/@mui/system/createStyled/index.js.map +1 -1
  354. package/dist/node_modules/@mui/system/useThemeWithoutDefault/index.esm.js +1 -1
  355. package/dist/node_modules/@mui/system/useThemeWithoutDefault/index.js +1 -1
  356. package/dist/node_modules/material-react-table/dist/index.esm/index.esm.js +1 -1
  357. package/dist/node_modules/material-react-table/dist/index.esm/index.js +1 -1
  358. package/dist/node_modules/material-react-table/dist/index.esm/index.js.map +1 -1
  359. package/dist/node_modules/{@tanstack → material-react-table/node_modules/@tanstack}/react-virtual/dist/esm/index/index.esm.js +2 -2
  360. package/dist/node_modules/material-react-table/node_modules/@tanstack/react-virtual/dist/esm/index/index.esm.js.map +1 -0
  361. package/dist/node_modules/material-react-table/node_modules/@tanstack/react-virtual/dist/esm/index/index.js +2 -0
  362. package/dist/node_modules/material-react-table/node_modules/@tanstack/react-virtual/dist/esm/index/index.js.map +1 -0
  363. package/dist/redux/actionCreator/index.esm.js.map +1 -1
  364. package/dist/redux/actionCreator/index.js.map +1 -1
  365. package/dist/redux/module-reducer/index.esm.js.map +1 -1
  366. package/dist/redux/module-reducer/index.js.map +1 -1
  367. package/dist/redux/store/index.esm.js.map +1 -1
  368. package/dist/redux/store/index.js.map +1 -1
  369. package/dist/server/index.esm.js.map +1 -1
  370. package/dist/server/index.js.map +1 -1
  371. package/dist/src/components/accordion/accordion.d.ts +1 -1
  372. package/dist/src/components/action-bar/action-bar.d.ts +1 -1
  373. package/dist/src/components/checkbox/checkbox.d.ts +1 -1
  374. package/dist/src/components/date-picker/date-picker.d.ts +1 -1
  375. package/dist/src/components/footer/footer.d.ts +1 -1
  376. package/dist/src/components/form-control/form-builder/form-builder-element/media.d.ts +1 -1
  377. package/dist/src/components/form-control/form-builder/form-builder-element/phone.d.ts +1 -1
  378. package/dist/src/components/form-control/form-builder/form-builder-element/select.d.ts +1 -1
  379. package/dist/src/components/form-control/form-builder/form-builder-element/text.d.ts +1 -1
  380. package/dist/src/components/form-control/form-builder/form-builder-element/time.d.ts +1 -1
  381. package/dist/src/components/form-control/form-parser/form-switcher.d.ts +1 -1
  382. package/dist/src/components/icons/action-arrow.d.ts +3 -3
  383. package/dist/src/components/icons/add-circle.d.ts +3 -3
  384. package/dist/src/components/icons/arrow-bidirectional.d.ts +3 -3
  385. package/dist/src/components/icons/arrow-circle-down.d.ts +3 -3
  386. package/dist/src/components/icons/arrow-down-three.d.ts +3 -3
  387. package/dist/src/components/icons/arrow-down-two.d.ts +3 -3
  388. package/dist/src/components/icons/arrow-down.d.ts +3 -3
  389. package/dist/src/components/icons/arrow-up-down.d.ts +3 -3
  390. package/dist/src/components/icons/arrow-up-two.d.ts +3 -3
  391. package/dist/src/components/icons/assignments.d.ts +3 -3
  392. package/dist/src/components/icons/blank-circle.d.ts +3 -3
  393. package/dist/src/components/icons/block-filled.d.ts +3 -3
  394. package/dist/src/components/icons/calendar-add.d.ts +3 -3
  395. package/dist/src/components/icons/calendar.d.ts +3 -3
  396. package/dist/src/components/icons/checkbox-square.d.ts +3 -3
  397. package/dist/src/components/icons/circular-arrow-setting.d.ts +3 -3
  398. package/dist/src/components/icons/clock.d.ts +3 -3
  399. package/dist/src/components/icons/close.d.ts +3 -3
  400. package/dist/src/components/icons/coin-outline.d.ts +3 -3
  401. package/dist/src/components/icons/copy.d.ts +3 -3
  402. package/dist/src/components/icons/coupon.d.ts +3 -3
  403. package/dist/src/components/icons/cross-hire.d.ts +3 -3
  404. package/dist/src/components/icons/custom-styled-icon.d.ts +3 -3
  405. package/dist/src/components/icons/dashboard.d.ts +3 -3
  406. package/dist/src/components/icons/document-download.d.ts +3 -3
  407. package/dist/src/components/icons/document.d.ts +3 -3
  408. package/dist/src/components/icons/dollar-circle-filled.d.ts +3 -3
  409. package/dist/src/components/icons/dollar-circle.d.ts +3 -3
  410. package/dist/src/components/icons/edit.d.ts +3 -3
  411. package/dist/src/components/icons/email.d.ts +3 -3
  412. package/dist/src/components/icons/export.d.ts +3 -3
  413. package/dist/src/components/icons/eye-off.d.ts +3 -3
  414. package/dist/src/components/icons/eye-plus-circle.d.ts +3 -3
  415. package/dist/src/components/icons/eye.d.ts +3 -3
  416. package/dist/src/components/icons/filled-circle.d.ts +3 -3
  417. package/dist/src/components/icons/filter-remove.d.ts +3 -3
  418. package/dist/src/components/icons/filter.d.ts +3 -3
  419. package/dist/src/components/icons/folder-save.d.ts +3 -3
  420. package/dist/src/components/icons/grid.d.ts +3 -3
  421. package/dist/src/components/icons/hashtag.d.ts +3 -3
  422. package/dist/src/components/icons/image.d.ts +3 -3
  423. package/dist/src/components/icons/import.d.ts +3 -3
  424. package/dist/src/components/icons/info-circle.d.ts +3 -3
  425. package/dist/src/components/icons/info.d.ts +3 -3
  426. package/dist/src/components/icons/link-horizontal.d.ts +3 -3
  427. package/dist/src/components/icons/link.d.ts +3 -3
  428. package/dist/src/components/icons/location.d.ts +3 -3
  429. package/dist/src/components/icons/lowest-lead-time.d.ts +3 -3
  430. package/dist/src/components/icons/lowest-min-qty.d.ts +3 -3
  431. package/dist/src/components/icons/lowest-price.d.ts +3 -3
  432. package/dist/src/components/icons/more.d.ts +3 -3
  433. package/dist/src/components/icons/notification.d.ts +3 -3
  434. package/dist/src/components/icons/paper-clip.d.ts +3 -3
  435. package/dist/src/components/icons/paragraph.d.ts +3 -3
  436. package/dist/src/components/icons/payment-request.d.ts +3 -3
  437. package/dist/src/components/icons/phone.d.ts +3 -3
  438. package/dist/src/components/icons/printer.d.ts +3 -3
  439. package/dist/src/components/icons/process-calendar.d.ts +3 -3
  440. package/dist/src/components/icons/promotion.d.ts +3 -3
  441. package/dist/src/components/icons/radio-button.d.ts +3 -3
  442. package/dist/src/components/icons/receipt-filled.d.ts +3 -3
  443. package/dist/src/components/icons/receipt-outline.d.ts +3 -3
  444. package/dist/src/components/icons/receipt.d.ts +3 -3
  445. package/dist/src/components/icons/refresh-icon.d.ts +3 -3
  446. package/dist/src/components/icons/replace.d.ts +3 -3
  447. package/dist/src/components/icons/save.d.ts +3 -3
  448. package/dist/src/components/icons/search-status.d.ts +3 -3
  449. package/dist/src/components/icons/search.d.ts +3 -3
  450. package/dist/src/components/icons/settings-fallback.d.ts +3 -3
  451. package/dist/src/components/icons/sort-arrow-icon.d.ts +3 -3
  452. package/dist/src/components/icons/stacked-layer.d.ts +3 -3
  453. package/dist/src/components/icons/start-filled.d.ts +3 -3
  454. package/dist/src/components/icons/three-dot-icon.d.ts +3 -3
  455. package/dist/src/components/icons/tick-circle-filled.d.ts +3 -3
  456. package/dist/src/components/icons/tick-circle.d.ts +3 -3
  457. package/dist/src/components/icons/tick-octagon.d.ts +3 -3
  458. package/dist/src/components/icons/tick.d.ts +3 -3
  459. package/dist/src/components/icons/toggle-switch.d.ts +3 -3
  460. package/dist/src/components/icons/trash.d.ts +3 -3
  461. package/dist/src/components/icons/wave.d.ts +3 -3
  462. package/dist/src/components/icons/with-out-tick-octagon.d.ts +3 -3
  463. package/dist/src/components/icons/work-centre.d.ts +3 -3
  464. package/dist/src/components/location-select.d.ts +1 -1
  465. package/dist/src/components/material-editable-table/material-editable-table.d.ts +1 -1
  466. package/dist/src/components/material-table/material-table.d.ts +1 -1
  467. package/dist/src/components/phone-input/phone-input.d.ts +1 -1
  468. package/dist/src/components/radio/radio.d.ts +1 -1
  469. package/dist/src/components/select/select.d.ts +1 -1
  470. package/dist/src/components/switches/android-12-switch.d.ts +1 -3
  471. package/dist/src/components/text-field/text-field.d.ts +1 -1
  472. package/dist/src/components/time-picker/time-picker.d.ts +1 -1
  473. package/dist/src/components/upload-media/upload-media.d.ts +1 -1
  474. package/dist/src/utils/common-utility.d.ts +1 -1
  475. package/dist/style.css +62 -62
  476. package/dist/styles/index.d.ts +1 -1
  477. package/dist/theme/theme-impl/index.esm.js.map +1 -1
  478. package/dist/theme/theme-impl/index.js.map +1 -1
  479. package/dist/utils/api/index.esm.js +6 -6
  480. package/dist/utils/api/index.esm.js.map +1 -1
  481. package/dist/utils/api/index.js +1 -1
  482. package/dist/utils/api/index.js.map +1 -1
  483. package/dist/utils/common/index.esm.js +6 -6
  484. package/dist/utils/common/index.esm.js.map +1 -1
  485. package/dist/utils/common/index.js +1 -1
  486. package/dist/utils/common/index.js.map +1 -1
  487. package/dist/utils/common-utility.d.ts +1 -1
  488. package/dist/utils/date-range/index.esm.js.map +1 -1
  489. package/dist/utils/date-range/index.js.map +1 -1
  490. package/dist/utils/i18n/index.esm.js.map +1 -1
  491. package/dist/utils/i18n/index.js.map +1 -1
  492. package/dist/utils/menu-filter/index.esm.js.map +1 -1
  493. package/dist/utils/menu-filter/index.js.map +1 -1
  494. package/dist/views/404/index.esm.js.map +1 -1
  495. package/dist/views/404/index.js.map +1 -1
  496. package/dist/views/afterAuth/dashboard/dashboard/index.esm.js.map +1 -1
  497. package/dist/views/afterAuth/dashboard/dashboard/index.js.map +1 -1
  498. package/dist/views/afterAuth/dashboard/redux/actionCreator/index.esm.js.map +1 -1
  499. package/dist/views/afterAuth/dashboard/redux/actionCreator/index.js.map +1 -1
  500. package/dist/views/afterAuth/dashboard/redux/reducer/index.esm.js.map +1 -1
  501. package/dist/views/afterAuth/dashboard/redux/reducer/index.js.map +1 -1
  502. package/dist/views/afterAuth/dashboard/redux/state/index.esm.js.map +1 -1
  503. package/dist/views/afterAuth/dashboard/redux/state/index.js.map +1 -1
  504. package/dist/views/afterAuth/page-view/page-view/index.esm.js.map +1 -1
  505. package/dist/views/afterAuth/page-view/page-view/index.js.map +1 -1
  506. package/dist/views/afterAuth/page-view/redux/actionCreator/index.esm.js.map +1 -1
  507. package/dist/views/afterAuth/page-view/redux/actionCreator/index.js.map +1 -1
  508. package/dist/views/afterAuth/page-view/redux/reducer/index.esm.js.map +1 -1
  509. package/dist/views/afterAuth/page-view/redux/reducer/index.js.map +1 -1
  510. package/dist/views/afterAuth/page-view/redux/state/index.esm.js.map +1 -1
  511. package/dist/views/afterAuth/page-view/redux/state/index.js.map +1 -1
  512. package/dist/views/afterAuth/page-view/utils/default-data/index.esm.js.map +1 -1
  513. package/dist/views/afterAuth/page-view/utils/default-data/index.js.map +1 -1
  514. package/dist/views/afterAuth/page-view/utils/local-data/index.esm.js.map +1 -1
  515. package/dist/views/afterAuth/page-view/utils/local-data/index.js.map +1 -1
  516. package/dist/views/beforeAuth/change-password/change-password/index.esm.js.map +1 -1
  517. package/dist/views/beforeAuth/change-password/change-password/index.js.map +1 -1
  518. package/dist/views/beforeAuth/components/activity-tag-data/activity-tag-data/index.esm.js.map +1 -1
  519. package/dist/views/beforeAuth/components/activity-tag-data/activity-tag-data/index.js.map +1 -1
  520. package/dist/views/beforeAuth/components/calendar-data/calendar-data/index.esm.js.map +1 -1
  521. package/dist/views/beforeAuth/components/calendar-data/calendar-data/index.js.map +1 -1
  522. package/dist/views/beforeAuth/components/gantt-data/gantt-data/index.esm.js.map +1 -1
  523. package/dist/views/beforeAuth/components/gantt-data/gantt-data/index.js.map +1 -1
  524. package/dist/views/beforeAuth/components/grid-data/grid-data/index.esm.js.map +1 -1
  525. package/dist/views/beforeAuth/components/grid-data/grid-data/index.js.map +1 -1
  526. package/dist/views/beforeAuth/components/kanbann-content/kanbann-raw/index.esm.js.map +1 -1
  527. package/dist/views/beforeAuth/components/kanbann-content/kanbann-raw/index.js.map +1 -1
  528. package/dist/views/beforeAuth/components/list-content/column-raw/index.esm.js.map +1 -1
  529. package/dist/views/beforeAuth/components/list-content/column-raw/index.js.map +1 -1
  530. package/dist/views/beforeAuth/components/list-content/list-data/index.esm.js.map +1 -1
  531. package/dist/views/beforeAuth/components/list-content/list-data/index.js.map +1 -1
  532. package/dist/views/beforeAuth/components/multiline-data/multiline-data/index.esm.js.map +1 -1
  533. package/dist/views/beforeAuth/components/multiline-data/multiline-data/index.js.map +1 -1
  534. package/dist/views/beforeAuth/components/share-modal-data/share-modal-data/index.esm.js.map +1 -1
  535. package/dist/views/beforeAuth/components/share-modal-data/share-modal-data/index.js.map +1 -1
  536. package/dist/views/beforeAuth/components/shared-pages-data/shared-pages-data/index.esm.js.map +1 -1
  537. package/dist/views/beforeAuth/components/shared-pages-data/shared-pages-data/index.js.map +1 -1
  538. package/dist/views/beforeAuth/components/tabs-data/tabs-data/index.esm.js.map +1 -1
  539. package/dist/views/beforeAuth/components/tabs-data/tabs-data/index.js.map +1 -1
  540. package/dist/views/beforeAuth/components/user-dashboard-data/user-dashboard-data/index.esm.js.map +1 -1
  541. package/dist/views/beforeAuth/components/user-dashboard-data/user-dashboard-data/index.js.map +1 -1
  542. package/dist/views/beforeAuth/components/user-dropdown-data/user-dropdown-data/index.esm.js.map +1 -1
  543. package/dist/views/beforeAuth/components/user-dropdown-data/user-dropdown-data/index.js.map +1 -1
  544. package/dist/views/beforeAuth/forgot-password/forgot-password/index.esm.js.map +1 -1
  545. package/dist/views/beforeAuth/forgot-password/forgot-password/index.js.map +1 -1
  546. package/dist/views/beforeAuth/landing/landing/index.esm.js.map +1 -1
  547. package/dist/views/beforeAuth/landing/landing/index.js.map +1 -1
  548. package/dist/views/beforeAuth/reset-password/reset-password/index.esm.js.map +1 -1
  549. package/dist/views/beforeAuth/reset-password/reset-password/index.js.map +1 -1
  550. package/dist/views/form-builder/custom-form/index.esm.js.map +1 -1
  551. package/dist/views/form-builder/custom-form/index.js.map +1 -1
  552. package/dist/views/form-builder/element-edit-forms/checkbox/index.esm.js.map +1 -1
  553. package/dist/views/form-builder/element-edit-forms/checkbox/index.js.map +1 -1
  554. package/dist/views/form-builder/element-edit-forms/column-width/index.esm.js.map +1 -1
  555. package/dist/views/form-builder/element-edit-forms/column-width/index.js.map +1 -1
  556. package/dist/views/form-builder/element-edit-forms/field-select/index.esm.js.map +1 -1
  557. package/dist/views/form-builder/element-edit-forms/field-select/index.js.map +1 -1
  558. package/dist/views/form-builder/element-edit-forms/section/index.esm.js.map +1 -1
  559. package/dist/views/form-builder/element-edit-forms/section/index.js.map +1 -1
  560. package/dist/views/form-builder/element-edit-forms/select/index.esm.js.map +1 -1
  561. package/dist/views/form-builder/element-edit-forms/select/index.js.map +1 -1
  562. package/dist/views/form-builder/element-edit-forms/table-form/index.esm.js.map +1 -1
  563. package/dist/views/form-builder/element-edit-forms/table-form/index.js.map +1 -1
  564. package/dist/views/form-builder/element-edit-forms/text/index.esm.js.map +1 -1
  565. package/dist/views/form-builder/element-edit-forms/text/index.js.map +1 -1
  566. package/dist/views/form-builder/field_properties/index.esm.js.map +1 -1
  567. package/dist/views/form-builder/field_properties/index.js.map +1 -1
  568. package/dist/views/form-builder/form-fields/index.esm.js.map +1 -1
  569. package/dist/views/form-builder/form-fields/index.js.map +1 -1
  570. package/dist/views/form-builder/redux/actionCreator/index.esm.js +1 -1
  571. package/dist/views/form-builder/redux/actionCreator/index.esm.js.map +1 -1
  572. package/dist/views/form-builder/redux/actionCreator/index.js +1 -1
  573. package/dist/views/form-builder/redux/actionCreator/index.js.map +1 -1
  574. package/dist/views/form-builder/redux/reducer/index.esm.js.map +1 -1
  575. package/dist/views/form-builder/redux/reducer/index.js.map +1 -1
  576. package/dist/views/form-builder/redux/state/index.esm.js.map +1 -1
  577. package/dist/views/form-builder/redux/state/index.js.map +1 -1
  578. package/dist/views/form-builder/utils/common/index.esm.js.map +1 -1
  579. package/dist/views/form-builder/utils/common/index.js.map +1 -1
  580. package/dist/views/index.d.ts +8 -8
  581. package/dist/views/privateRoute/index.esm.js.map +1 -1
  582. package/dist/views/privateRoute/index.js.map +1 -1
  583. package/dist/views/template-editor/add-template/add-template/index.esm.js.map +1 -1
  584. package/dist/views/template-editor/add-template/add-template/index.js.map +1 -1
  585. package/dist/views/template-editor/company-selection-modal/company-selection-modal/index.esm.js.map +1 -1
  586. package/dist/views/template-editor/company-selection-modal/company-selection-modal/index.js.map +1 -1
  587. package/dist/views/template-editor/components/EditorCanvas/index.esm.js.map +1 -1
  588. package/dist/views/template-editor/components/EditorCanvas/index.js.map +1 -1
  589. package/dist/views/template-editor/components/EditorHeader/index.esm.js.map +1 -1
  590. package/dist/views/template-editor/components/EditorHeader/index.js.map +1 -1
  591. package/dist/views/template-editor/components/EditorSection/index.esm.js.map +1 -1
  592. package/dist/views/template-editor/components/EditorSection/index.js.map +1 -1
  593. package/dist/views/template-editor/components/EditorSidebar/index.esm.js +1 -1
  594. package/dist/views/template-editor/components/EditorSidebar/index.esm.js.map +1 -1
  595. package/dist/views/template-editor/components/EditorSidebar/index.js +1 -1
  596. package/dist/views/template-editor/components/EditorSidebar/index.js.map +1 -1
  597. package/dist/views/template-editor/components/SectionFlowEditor/index.esm.js.map +1 -1
  598. package/dist/views/template-editor/components/SectionFlowEditor/index.js.map +1 -1
  599. package/dist/views/template-editor/components/SectionFormatPanel/index.esm.js.map +1 -1
  600. package/dist/views/template-editor/components/SectionFormatPanel/index.js.map +1 -1
  601. package/dist/views/template-editor/components/controllers/AlignmentControl/index.esm.js.map +1 -1
  602. package/dist/views/template-editor/components/controllers/AlignmentControl/index.js.map +1 -1
  603. package/dist/views/template-editor/components/controllers/ButtonControls/index.esm.js.map +1 -1
  604. package/dist/views/template-editor/components/controllers/ButtonControls/index.js.map +1 -1
  605. package/dist/views/template-editor/components/controllers/CodeControls/index.esm.js.map +1 -1
  606. package/dist/views/template-editor/components/controllers/CodeControls/index.js.map +1 -1
  607. package/dist/views/template-editor/components/controllers/DividerControls/index.esm.js.map +1 -1
  608. package/dist/views/template-editor/components/controllers/DividerControls/index.js.map +1 -1
  609. package/dist/views/template-editor/components/controllers/ImageControls/index.esm.js.map +1 -1
  610. package/dist/views/template-editor/components/controllers/ImageControls/index.js.map +1 -1
  611. package/dist/views/template-editor/components/controllers/SignatureControls/index.esm.js.map +1 -1
  612. package/dist/views/template-editor/components/controllers/SignatureControls/index.js.map +1 -1
  613. package/dist/views/template-editor/components/controllers/TableControls/index.esm.js.map +1 -1
  614. package/dist/views/template-editor/components/controllers/TableControls/index.js.map +1 -1
  615. package/dist/views/template-editor/components/controllers/TextControls/index.esm.js.map +1 -1
  616. package/dist/views/template-editor/components/controllers/TextControls/index.js.map +1 -1
  617. package/dist/views/template-editor/components/controllers/border-control/index.esm.js.map +1 -1
  618. package/dist/views/template-editor/components/controllers/border-control/index.js.map +1 -1
  619. package/dist/views/template-editor/edit-section-modal/edit-section-modal/index.esm.js.map +1 -1
  620. package/dist/views/template-editor/edit-section-modal/edit-section-modal/index.js.map +1 -1
  621. package/dist/views/template-editor/routes/index.esm.js.map +1 -1
  622. package/dist/views/template-editor/routes/index.js.map +1 -1
  623. package/dist/views/template-editor/template-modal/html-thumbnail-preview/index.esm.js.map +1 -1
  624. package/dist/views/template-editor/template-modal/html-thumbnail-preview/index.js.map +1 -1
  625. package/dist/views/template-editor/template-modal/template-modal/index.esm.js.map +1 -1
  626. package/dist/views/template-editor/template-modal/template-modal/index.js.map +1 -1
  627. package/dist/views/template-editor/template-name-modal/template-name-modal/index.esm.js.map +1 -1
  628. package/dist/views/template-editor/template-name-modal/template-name-modal/index.js.map +1 -1
  629. package/dist/views/template-editor/templates/index.esm.js +1 -1
  630. package/dist/views/template-editor/templates/index.esm.js.map +1 -1
  631. package/dist/views/template-editor/templates/index.js +1 -1
  632. package/dist/views/template-editor/templates/index.js.map +1 -1
  633. package/dist/views/template-editor/utils/common/index.esm.js.map +1 -1
  634. package/dist/views/template-editor/utils/common/index.js.map +1 -1
  635. package/dist/views/template-editor/utils/constant/index.esm.js.map +1 -1
  636. package/dist/views/template-editor/utils/constant/index.js.map +1 -1
  637. package/dist/views/template-editor/utils/default-data/index.esm.js.map +1 -1
  638. package/dist/views/template-editor/utils/default-data/index.js.map +1 -1
  639. package/dist/views/template-editor/utils/style-extractor/index.esm.js.map +1 -1
  640. package/dist/views/template-editor/utils/style-extractor/index.js.map +1 -1
  641. package/dist/vite-env.d.ts +23 -23
  642. package/package.json +299 -299
  643. package/src/styles/README.md +287 -287
  644. package/src/styles/all.scss +7 -7
  645. package/src/styles/animations.scss +5 -5
  646. package/src/styles/css/reset.css +1 -1
  647. package/src/styles/index.d.ts +1 -1
  648. package/src/styles/index.ts +1 -1
  649. package/src/styles/mixins.scss +5 -5
  650. package/src/styles/sass/main.scss +11 -11
  651. package/src/styles/utils.scss +5 -5
  652. package/src/styles/variables.scss +4 -4
  653. package/dist/node_modules/@tanstack/react-virtual/dist/esm/index/index.esm.js.map +0 -1
  654. package/dist/node_modules/@tanstack/react-virtual/dist/esm/index/index.js +0 -2
  655. package/dist/node_modules/@tanstack/react-virtual/dist/esm/index/index.js.map +0 -1
  656. package/dist/node_modules/@toast-ui/react-editor/dist/esm/index/index.esm.js.map +0 -1
  657. package/dist/node_modules/@toast-ui/react-editor/dist/esm/index/index.js +0 -2
  658. package/dist/node_modules/@toast-ui/react-editor/dist/esm/index/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/views/template-editor/template-modal/html-thumbnail-preview.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React, { useState, useRef, useEffect, useCallback } from 'react';\nimport { Box, Skeleton, IconButton, Tooltip, Divider, Fade } from '@mui/material';\nimport { ZoomIn, ZoomOut, Refresh } from '@mui/icons-material';\nimport { Trash } from '../../../components/icons';\nimport Typography from '../../../components/typography/typography';\n\nconst HtmlThumbnailPreview = ({ \n template, \n width = 300, \n height = 200, \n scale = 0.25,\n showControls = false,\n onClick = null,\n selectedTemplateId = '',\n isFetching = false,\n onDelete,\n minScale = 0.1,\n maxScale = 1,\n scaleStep = 1.2,\n loadingDelay = 500,\n refreshDelay = 300\n}) => {\n const [isLoading, setIsLoading] = useState(isFetching || true);\n const [currentScale, setCurrentScale] = useState(scale);\n const [error, setError] = useState(null);\n const [isHovered, setIsHovered] = useState(false);\n const containerRef = useRef(null);\n const contentRef = useRef(null);\n const loadingTimeoutRef = useRef(null);\n const refreshTimeoutRef = useRef(null);\n\n // Calculate dimensions based on scale\n const scaledWidth = width / currentScale;\n const scaledHeight = height / currentScale;\n\n // Cleanup timeouts on unmount\n useEffect(() => {\n return () => {\n if (loadingTimeoutRef.current) {\n clearTimeout(loadingTimeoutRef.current);\n }\n if (refreshTimeoutRef.current) {\n clearTimeout(refreshTimeoutRef.current);\n }\n };\n }, []);\n\n // Handle initial loading\n useEffect(() => {\n if (loadingTimeoutRef.current) {\n clearTimeout(loadingTimeoutRef.current);\n }\n \n loadingTimeoutRef.current = setTimeout(() => {\n setIsLoading(false);\n }, loadingDelay);\n\n return () => {\n if (loadingTimeoutRef.current) {\n clearTimeout(loadingTimeoutRef.current);\n }\n };\n }, [template.contents, loadingDelay]);\n\n // Handle external loading state\n useEffect(() => {\n setIsLoading(isFetching);\n }, [isFetching]);\n\n // Memoized event handlers\n const handleZoomIn = useCallback(() => {\n setCurrentScale(prev => Math.min(prev * scaleStep, maxScale));\n }, [scaleStep, maxScale]);\n\n const handleZoomOut = useCallback(() => {\n setCurrentScale(prev => Math.max(prev / scaleStep, minScale));\n }, [scaleStep, minScale]);\n\n const handleRefresh = useCallback(() => {\n setIsLoading(true);\n setError(null);\n \n if (refreshTimeoutRef.current) {\n clearTimeout(refreshTimeoutRef.current);\n }\n \n refreshTimeoutRef.current = setTimeout(() => {\n setIsLoading(false);\n }, refreshDelay);\n }, [refreshDelay]);\n\n const handleClick = useCallback(() => {\n if (onClick && !isLoading) {\n onClick(template);\n }\n }, [onClick, template, isLoading]);\n\n const handleDelete = useCallback((e) => {\n e.stopPropagation(); // Prevent triggering onClick\n if (onDelete && !template?.is_default) {\n onDelete(template);\n }\n }, [onDelete, template]);\n\n const handleMouseEnter = useCallback(() => {\n setIsHovered(true);\n }, []);\n\n const handleMouseLeave = useCallback(() => {\n setIsHovered(false);\n }, []);\n\n // Loading state\n if (isLoading) {\n return (\n <Box \n sx={{ \n width, \n height,\n borderRadius: 1,\n overflow: 'hidden',\n border: '1px solid',\n borderColor: 'divider'\n }}\n >\n <Skeleton \n variant=\"rectangular\" \n width=\"100%\" \n height=\"100%\" \n animation=\"wave\"\n />\n </Box>\n );\n }\n\n // Error state\n if (error) {\n return (\n <Box \n sx={{ \n width, \n height,\n borderRadius: 1,\n overflow: 'hidden',\n border: '1px solid',\n borderColor: 'error.main',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: 'error.light',\n color: 'error.contrastText'\n }}\n >\n Failed to load template\n </Box>\n );\n }\n\n const isSelected = selectedTemplateId === template._id;\n const canZoomIn = currentScale < maxScale;\n const canZoomOut = currentScale > minScale;\n const canDelete = !template?.is_default;\n\n return (\n <Box \n sx={{ position: 'relative', display: 'inline-block' }}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n {/* Main Container */}\n <Box\n ref={containerRef}\n onClick={handleClick}\n sx={(theme) => ({\n width,\n height,\n border: '1px solid',\n borderRadius: 1,\n overflow: 'hidden',\n position: 'relative',\n cursor: onClick ? 'pointer' : 'default',\n backgroundColor: '#fff',\n // boxShadow: '0 2px 8px rgba(0,0,0,0.1)',\n transition: 'all 0.2s ease-in-out',\n '&:hover': onClick ? {\n boxShadow: '0 4px 16px rgba(0,0,0,0.15)',\n transform: 'translateY(-1px)',\n } : {},\n borderColor: isSelected ? theme.palette.theme.primary[800] : 'grey.300',\n borderWidth: isSelected ? 2 : 1,\n })}\n >\n {/* Scaled Content Wrapper */}\n <Box\n sx={{\n width: scaledWidth,\n height: scaledHeight,\n transform: `scale(${currentScale})`,\n transformOrigin: 'top left',\n position: 'absolute',\n top: 0,\n left: 0,\n overflow: 'hidden',\n }}\n >\n {/* HTML Content */}\n <Box\n ref={contentRef}\n sx={{\n width: '100%',\n height: '100%',\n userSelect: 'none',\n pointerEvents: 'none',\n pt: 2,\n '& *': {\n maxWidth: '100% !important',\n boxSizing: 'border-box !important',\n },\n // Reset common problematic styles\n '& body': {\n margin: '0 !important',\n padding: '0 !important',\n overflow: 'hidden !important',\n },\n // Handle images\n '& img': {\n maxWidth: '100% !important',\n height: 'auto !important',\n },\n // Handle tables\n '& table': {\n width: '100% !important',\n tableLayout: 'fixed !important',\n },\n // Prevent absolute positioning issues\n '& *[style*=\"position: absolute\"]': {\n position: 'relative !important',\n },\n '& .email-container': {\n width: '85% !important',\n }\n }}\n dangerouslySetInnerHTML={{ __html: template.contents }}\n />\n </Box>\n\n {/* Loading Overlay */}\n {isLoading && (\n <Box\n sx={{\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(255,255,255,0.8)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 2,\n }}\n >\n <Skeleton variant=\"rectangular\" width=\"90%\" height=\"90%\" />\n </Box>\n )}\n\n {/* Selection Indicator */}\n {template?.is_default && (\n <Box\n sx={(theme) => ({\n position: 'absolute',\n top: 8,\n left: 8,\n width: 12,\n height: 12,\n borderRadius: '50%',\n backgroundColor: theme.palette.theme?.primary[800],\n zIndex: 3,\n })}\n />\n )}\n </Box>\n {template?.name && <Typography type='s3' weight='medium' color='theme.secondary.1000' align='center' sx={{width, mt:0.5}}>{template?.name}</Typography>}\n\n {/* Hover Controls */}\n {showControls && (\n <Fade in={isHovered} timeout={200}>\n <Box\n sx={{\n position: 'absolute',\n top: -8,\n right: -8,\n display: 'flex',\n gap: 0.5,\n zIndex: 4,\n backgroundColor: 'rgba(255,255,255,0.95)',\n border: '1px solid',\n borderColor: 'grey.300',\n borderRadius: 2,\n padding: 0.5,\n boxShadow: '0 4px 12px rgba(0,0,0,0.15)',\n backdropFilter: 'blur(4px)',\n }}\n >\n <Tooltip title={`Zoom In (${Math.round(currentScale * 100)}%)`} arrow>\n <span>\n <IconButton\n size=\"small\"\n onClick={handleZoomIn}\n disabled={!canZoomIn}\n sx={{\n backgroundColor: 'transparent',\n '&:hover': { \n backgroundColor: 'primary.light',\n color: 'primary.contrastText' \n },\n '&:disabled': {\n opacity: 0.5\n }\n }}\n >\n <ZoomIn fontSize=\"small\" />\n </IconButton>\n </span>\n </Tooltip>\n\n <Divider orientation=\"vertical\" variant=\"middle\" flexItem />\n\n <Tooltip title={`Zoom Out (${Math.round(currentScale * 100)}%)`} arrow>\n <span>\n <IconButton\n size=\"small\"\n onClick={handleZoomOut}\n disabled={!canZoomOut}\n sx={{\n backgroundColor: 'transparent',\n '&:hover': { \n backgroundColor: 'primary.light',\n color: 'primary.contrastText' \n },\n '&:disabled': {\n opacity: 0.5\n }\n }}\n >\n <ZoomOut fontSize=\"small\" />\n </IconButton>\n </span>\n </Tooltip>\n\n <Divider orientation=\"vertical\" variant=\"middle\" flexItem />\n\n <Tooltip title=\"Refresh Preview\" arrow>\n <IconButton\n size=\"small\"\n onClick={handleRefresh}\n sx={{\n backgroundColor: 'transparent',\n '&:hover': { \n backgroundColor: 'primary.light',\n color: 'primary.contrastText' \n },\n }}\n >\n <Refresh fontSize=\"small\" />\n </IconButton>\n </Tooltip>\n\n {onDelete && (\n <>\n <Divider orientation=\"vertical\" variant=\"middle\" flexItem />\n <Tooltip \n title={canDelete ? \"Delete Template\" : \"Cannot delete default template\"} \n arrow\n >\n <span>\n <IconButton\n size=\"small\"\n onClick={handleDelete}\n disabled={!canDelete}\n sx={{\n backgroundColor: 'transparent',\n '&:hover': !canDelete ? {} : { \n backgroundColor: 'error.light',\n color: 'error.contrastText' \n },\n '&:disabled': {\n opacity: 0.5\n }\n }}\n >\n <Trash fontSize=\"small\" />\n </IconButton>\n </span>\n </Tooltip>\n </>\n )}\n </Box>\n </Fade>\n )}\n </Box>\n );\n};\n\nexport { HtmlThumbnailPreview };\nexport default HtmlThumbnailPreview;"],"names":["HtmlThumbnailPreview","template","width","height","scale","showControls","onClick","selectedTemplateId","isFetching","onDelete","minScale","maxScale","scaleStep","loadingDelay","refreshDelay","isLoading","setIsLoading","useState","currentScale","setCurrentScale","error","setError","isHovered","setIsHovered","containerRef","useRef","contentRef","loadingTimeoutRef","refreshTimeoutRef","scaledWidth","scaledHeight","useEffect","current","clearTimeout","setTimeout","contents","handleZoomIn","useCallback","Math","min","prev","handleZoomOut","max","handleRefresh","handleClick","handleDelete","e","stopPropagation","is_default","handleMouseEnter","handleMouseLeave","jsx","Box","sx","borderRadius","overflow","border","borderColor","children","Skeleton","variant","animation","display","alignItems","justifyContent","backgroundColor","color","isSelected","_id","canZoomIn","canZoomOut","canDelete","jsxs","position","onMouseEnter","onMouseLeave","ref","theme","cursor","transition","boxShadow","transform","palette","primary","borderWidth","transformOrigin","top","left","userSelect","pointerEvents","pt","maxWidth","boxSizing","margin","padding","tableLayout","dangerouslySetInnerHTML","__html","right","bottom","zIndex","_a","name","Typography","type","weight","align","mt","Fade","in","timeout","gap","backdropFilter","Tooltip","title","round","arrow","IconButton","size","disabled","opacity","ZoomIn","fontSize","Divider","orientation","flexItem","ZoomOut","Refresh","Fragment","Trash"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/views/template-editor/template-modal/html-thumbnail-preview.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\r\n/* eslint-disable unused-imports/no-unused-vars */\r\nimport React, { useState, useRef, useEffect, useCallback } from 'react';\r\nimport { Box, Skeleton, IconButton, Tooltip, Divider, Fade } from '@mui/material';\r\nimport { ZoomIn, ZoomOut, Refresh } from '@mui/icons-material';\r\nimport { Trash } from '../../../components/icons';\r\nimport Typography from '../../../components/typography/typography';\r\n\r\nconst HtmlThumbnailPreview = ({ \r\n template, \r\n width = 300, \r\n height = 200, \r\n scale = 0.25,\r\n showControls = false,\r\n onClick = null,\r\n selectedTemplateId = '',\r\n isFetching = false,\r\n onDelete,\r\n minScale = 0.1,\r\n maxScale = 1,\r\n scaleStep = 1.2,\r\n loadingDelay = 500,\r\n refreshDelay = 300\r\n}) => {\r\n const [isLoading, setIsLoading] = useState(isFetching || true);\r\n const [currentScale, setCurrentScale] = useState(scale);\r\n const [error, setError] = useState(null);\r\n const [isHovered, setIsHovered] = useState(false);\r\n const containerRef = useRef(null);\r\n const contentRef = useRef(null);\r\n const loadingTimeoutRef = useRef(null);\r\n const refreshTimeoutRef = useRef(null);\r\n\r\n // Calculate dimensions based on scale\r\n const scaledWidth = width / currentScale;\r\n const scaledHeight = height / currentScale;\r\n\r\n // Cleanup timeouts on unmount\r\n useEffect(() => {\r\n return () => {\r\n if (loadingTimeoutRef.current) {\r\n clearTimeout(loadingTimeoutRef.current);\r\n }\r\n if (refreshTimeoutRef.current) {\r\n clearTimeout(refreshTimeoutRef.current);\r\n }\r\n };\r\n }, []);\r\n\r\n // Handle initial loading\r\n useEffect(() => {\r\n if (loadingTimeoutRef.current) {\r\n clearTimeout(loadingTimeoutRef.current);\r\n }\r\n \r\n loadingTimeoutRef.current = setTimeout(() => {\r\n setIsLoading(false);\r\n }, loadingDelay);\r\n\r\n return () => {\r\n if (loadingTimeoutRef.current) {\r\n clearTimeout(loadingTimeoutRef.current);\r\n }\r\n };\r\n }, [template.contents, loadingDelay]);\r\n\r\n // Handle external loading state\r\n useEffect(() => {\r\n setIsLoading(isFetching);\r\n }, [isFetching]);\r\n\r\n // Memoized event handlers\r\n const handleZoomIn = useCallback(() => {\r\n setCurrentScale(prev => Math.min(prev * scaleStep, maxScale));\r\n }, [scaleStep, maxScale]);\r\n\r\n const handleZoomOut = useCallback(() => {\r\n setCurrentScale(prev => Math.max(prev / scaleStep, minScale));\r\n }, [scaleStep, minScale]);\r\n\r\n const handleRefresh = useCallback(() => {\r\n setIsLoading(true);\r\n setError(null);\r\n \r\n if (refreshTimeoutRef.current) {\r\n clearTimeout(refreshTimeoutRef.current);\r\n }\r\n \r\n refreshTimeoutRef.current = setTimeout(() => {\r\n setIsLoading(false);\r\n }, refreshDelay);\r\n }, [refreshDelay]);\r\n\r\n const handleClick = useCallback(() => {\r\n if (onClick && !isLoading) {\r\n onClick(template);\r\n }\r\n }, [onClick, template, isLoading]);\r\n\r\n const handleDelete = useCallback((e) => {\r\n e.stopPropagation(); // Prevent triggering onClick\r\n if (onDelete && !template?.is_default) {\r\n onDelete(template);\r\n }\r\n }, [onDelete, template]);\r\n\r\n const handleMouseEnter = useCallback(() => {\r\n setIsHovered(true);\r\n }, []);\r\n\r\n const handleMouseLeave = useCallback(() => {\r\n setIsHovered(false);\r\n }, []);\r\n\r\n // Loading state\r\n if (isLoading) {\r\n return (\r\n <Box \r\n sx={{ \r\n width, \r\n height,\r\n borderRadius: 1,\r\n overflow: 'hidden',\r\n border: '1px solid',\r\n borderColor: 'divider'\r\n }}\r\n >\r\n <Skeleton \r\n variant=\"rectangular\" \r\n width=\"100%\" \r\n height=\"100%\" \r\n animation=\"wave\"\r\n />\r\n </Box>\r\n );\r\n }\r\n\r\n // Error state\r\n if (error) {\r\n return (\r\n <Box \r\n sx={{ \r\n width, \r\n height,\r\n borderRadius: 1,\r\n overflow: 'hidden',\r\n border: '1px solid',\r\n borderColor: 'error.main',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n backgroundColor: 'error.light',\r\n color: 'error.contrastText'\r\n }}\r\n >\r\n Failed to load template\r\n </Box>\r\n );\r\n }\r\n\r\n const isSelected = selectedTemplateId === template._id;\r\n const canZoomIn = currentScale < maxScale;\r\n const canZoomOut = currentScale > minScale;\r\n const canDelete = !template?.is_default;\r\n\r\n return (\r\n <Box \r\n sx={{ position: 'relative', display: 'inline-block' }}\r\n onMouseEnter={handleMouseEnter}\r\n onMouseLeave={handleMouseLeave}\r\n >\r\n {/* Main Container */}\r\n <Box\r\n ref={containerRef}\r\n onClick={handleClick}\r\n sx={(theme) => ({\r\n width,\r\n height,\r\n border: '1px solid',\r\n borderRadius: 1,\r\n overflow: 'hidden',\r\n position: 'relative',\r\n cursor: onClick ? 'pointer' : 'default',\r\n backgroundColor: '#fff',\r\n // boxShadow: '0 2px 8px rgba(0,0,0,0.1)',\r\n transition: 'all 0.2s ease-in-out',\r\n '&:hover': onClick ? {\r\n boxShadow: '0 4px 16px rgba(0,0,0,0.15)',\r\n transform: 'translateY(-1px)',\r\n } : {},\r\n borderColor: isSelected ? theme.palette.theme.primary[800] : 'grey.300',\r\n borderWidth: isSelected ? 2 : 1,\r\n })}\r\n >\r\n {/* Scaled Content Wrapper */}\r\n <Box\r\n sx={{\r\n width: scaledWidth,\r\n height: scaledHeight,\r\n transform: `scale(${currentScale})`,\r\n transformOrigin: 'top left',\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n overflow: 'hidden',\r\n }}\r\n >\r\n {/* HTML Content */}\r\n <Box\r\n ref={contentRef}\r\n sx={{\r\n width: '100%',\r\n height: '100%',\r\n userSelect: 'none',\r\n pointerEvents: 'none',\r\n pt: 2,\r\n '& *': {\r\n maxWidth: '100% !important',\r\n boxSizing: 'border-box !important',\r\n },\r\n // Reset common problematic styles\r\n '& body': {\r\n margin: '0 !important',\r\n padding: '0 !important',\r\n overflow: 'hidden !important',\r\n },\r\n // Handle images\r\n '& img': {\r\n maxWidth: '100% !important',\r\n height: 'auto !important',\r\n },\r\n // Handle tables\r\n '& table': {\r\n width: '100% !important',\r\n tableLayout: 'fixed !important',\r\n },\r\n // Prevent absolute positioning issues\r\n '& *[style*=\"position: absolute\"]': {\r\n position: 'relative !important',\r\n },\r\n '& .email-container': {\r\n width: '85% !important',\r\n }\r\n }}\r\n dangerouslySetInnerHTML={{ __html: template.contents }}\r\n />\r\n </Box>\r\n\r\n {/* Loading Overlay */}\r\n {isLoading && (\r\n <Box\r\n sx={{\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n backgroundColor: 'rgba(255,255,255,0.8)',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n zIndex: 2,\r\n }}\r\n >\r\n <Skeleton variant=\"rectangular\" width=\"90%\" height=\"90%\" />\r\n </Box>\r\n )}\r\n\r\n {/* Selection Indicator */}\r\n {template?.is_default && (\r\n <Box\r\n sx={(theme) => ({\r\n position: 'absolute',\r\n top: 8,\r\n left: 8,\r\n width: 12,\r\n height: 12,\r\n borderRadius: '50%',\r\n backgroundColor: theme.palette.theme?.primary[800],\r\n zIndex: 3,\r\n })}\r\n />\r\n )}\r\n </Box>\r\n {template?.name && <Typography type='s3' weight='medium' color='theme.secondary.1000' align='center' sx={{width, mt:0.5}}>{template?.name}</Typography>}\r\n\r\n {/* Hover Controls */}\r\n {showControls && (\r\n <Fade in={isHovered} timeout={200}>\r\n <Box\r\n sx={{\r\n position: 'absolute',\r\n top: -8,\r\n right: -8,\r\n display: 'flex',\r\n gap: 0.5,\r\n zIndex: 4,\r\n backgroundColor: 'rgba(255,255,255,0.95)',\r\n border: '1px solid',\r\n borderColor: 'grey.300',\r\n borderRadius: 2,\r\n padding: 0.5,\r\n boxShadow: '0 4px 12px rgba(0,0,0,0.15)',\r\n backdropFilter: 'blur(4px)',\r\n }}\r\n >\r\n <Tooltip title={`Zoom In (${Math.round(currentScale * 100)}%)`} arrow>\r\n <span>\r\n <IconButton\r\n size=\"small\"\r\n onClick={handleZoomIn}\r\n disabled={!canZoomIn}\r\n sx={{\r\n backgroundColor: 'transparent',\r\n '&:hover': { \r\n backgroundColor: 'primary.light',\r\n color: 'primary.contrastText' \r\n },\r\n '&:disabled': {\r\n opacity: 0.5\r\n }\r\n }}\r\n >\r\n <ZoomIn fontSize=\"small\" />\r\n </IconButton>\r\n </span>\r\n </Tooltip>\r\n\r\n <Divider orientation=\"vertical\" variant=\"middle\" flexItem />\r\n\r\n <Tooltip title={`Zoom Out (${Math.round(currentScale * 100)}%)`} arrow>\r\n <span>\r\n <IconButton\r\n size=\"small\"\r\n onClick={handleZoomOut}\r\n disabled={!canZoomOut}\r\n sx={{\r\n backgroundColor: 'transparent',\r\n '&:hover': { \r\n backgroundColor: 'primary.light',\r\n color: 'primary.contrastText' \r\n },\r\n '&:disabled': {\r\n opacity: 0.5\r\n }\r\n }}\r\n >\r\n <ZoomOut fontSize=\"small\" />\r\n </IconButton>\r\n </span>\r\n </Tooltip>\r\n\r\n <Divider orientation=\"vertical\" variant=\"middle\" flexItem />\r\n\r\n <Tooltip title=\"Refresh Preview\" arrow>\r\n <IconButton\r\n size=\"small\"\r\n onClick={handleRefresh}\r\n sx={{\r\n backgroundColor: 'transparent',\r\n '&:hover': { \r\n backgroundColor: 'primary.light',\r\n color: 'primary.contrastText' \r\n },\r\n }}\r\n >\r\n <Refresh fontSize=\"small\" />\r\n </IconButton>\r\n </Tooltip>\r\n\r\n {onDelete && (\r\n <>\r\n <Divider orientation=\"vertical\" variant=\"middle\" flexItem />\r\n <Tooltip \r\n title={canDelete ? \"Delete Template\" : \"Cannot delete default template\"} \r\n arrow\r\n >\r\n <span>\r\n <IconButton\r\n size=\"small\"\r\n onClick={handleDelete}\r\n disabled={!canDelete}\r\n sx={{\r\n backgroundColor: 'transparent',\r\n '&:hover': !canDelete ? {} : { \r\n backgroundColor: 'error.light',\r\n color: 'error.contrastText' \r\n },\r\n '&:disabled': {\r\n opacity: 0.5\r\n }\r\n }}\r\n >\r\n <Trash fontSize=\"small\" />\r\n </IconButton>\r\n </span>\r\n </Tooltip>\r\n </>\r\n )}\r\n </Box>\r\n </Fade>\r\n )}\r\n </Box>\r\n );\r\n};\r\n\r\nexport { HtmlThumbnailPreview };\nexport default HtmlThumbnailPreview;"],"names":["HtmlThumbnailPreview","template","width","height","scale","showControls","onClick","selectedTemplateId","isFetching","onDelete","minScale","maxScale","scaleStep","loadingDelay","refreshDelay","isLoading","setIsLoading","useState","currentScale","setCurrentScale","error","setError","isHovered","setIsHovered","containerRef","useRef","contentRef","loadingTimeoutRef","refreshTimeoutRef","scaledWidth","scaledHeight","useEffect","current","clearTimeout","setTimeout","contents","handleZoomIn","useCallback","Math","min","prev","handleZoomOut","max","handleRefresh","handleClick","handleDelete","e","stopPropagation","is_default","handleMouseEnter","handleMouseLeave","jsx","Box","sx","borderRadius","overflow","border","borderColor","children","Skeleton","variant","animation","display","alignItems","justifyContent","backgroundColor","color","isSelected","_id","canZoomIn","canZoomOut","canDelete","jsxs","position","onMouseEnter","onMouseLeave","ref","theme","cursor","transition","boxShadow","transform","palette","primary","borderWidth","transformOrigin","top","left","userSelect","pointerEvents","pt","maxWidth","boxSizing","margin","padding","tableLayout","dangerouslySetInnerHTML","__html","right","bottom","zIndex","_a","name","Typography","type","weight","align","mt","Fade","in","timeout","gap","backdropFilter","Tooltip","title","round","arrow","IconButton","size","disabled","opacity","ZoomIn","fontSize","Divider","orientation","flexItem","ZoomOut","Refresh","Fragment","Trash"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../../../../../src/views/template-editor/template-modal/template-modal.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React, { useEffect, useState } from 'react';\nimport { \n DialogTitle, \n DialogContent, \n DialogActions,\n IconButton,\n Box,\n MenuItem\n} from '@mui/material';\nimport CloseIcon from '@mui/icons-material/Close';\nimport Typography from '../../../components/typography/typography';\nimport Modal from '../../../components/modal/modal';\nimport { deleteV1TemplatesId, getV1Templates, patchV1TemplatesIdSetDefault } from '../../../api-client/api.system-feature/api';\nimport { getErrorMessage, getToken } from '../../../utils/common';\nimport Button from '../../../components/button/button';\n// import ModalLoader from '../../../components/loader/modal-loader';\nimport { useNavigate } from 'react-router-dom';\nimport { enqueueSnackbar } from 'notistack';\nimport Select from '../../../components/select/select';\nimport HtmlThumbnailPreview from './html-thumbnail-preview';\nimport ConfirmPopUp from '../../../components/confirm-modal/confirm-modal';\n\nconst TemplateModal = ({ email, onClose, open, companies = [], templateRoutes }) => {\n const [templates, setTemplates] = useState([]);\n const [selectedTemplate, setSelectedTemplate] = useState('');\n const [defaultTemplate, setDefaultTemplate] = useState('');\n const [loading, setLoding] = useState(true);\n const [selectedCompany, setSelectedCompany] = React.useState<number>(companies?.[0]?.id || 0);\n const [templateToDelete, setTemplateToDelete] = React.useState<Record<string, any> | null>(null);\n const navigate = useNavigate();\n\n const handleClose = () => {\n onClose();\n };\n\n const handleTemplateSelect = (id) => {\n setSelectedTemplate(id);\n };\n\n const getTemplatesViaSubject = async () => {\n setLoding(true)\n const res = await getV1Templates({ ...getToken(), filters: `(company_id.eq=${selectedCompany}&subject_id.eq=${email._id})` })\n if(res?.data) {\n const dTemplate = res?.data?.find(t => t.is_default === true)\n setDefaultTemplate(dTemplate)\n setSelectedTemplate(dTemplate?._id)\n setTemplates(res?.data)\n }\n\n setLoding(false)\n }\n\n const handleDefaultTemplate = async () => {\n try {\n await patchV1TemplatesIdSetDefault({ ...getToken(), id: selectedTemplate })\n enqueueSnackbar('Template has been set as default');\n } catch (error) {\n const m = getErrorMessage(error?.message);\n enqueueSnackbar(m, { variant: 'error' });\n }\n }\n\n const handleDeleteTemplate = async () => {\n try {\n if(templateToDelete) {\n await deleteV1TemplatesId({ ...getToken(), id: templateToDelete?._id })\n enqueueSnackbar('Template has been deleted');\n setTemplateToDelete(null)\n await getTemplatesViaSubject()\n }\n } catch (error) {\n const m = getErrorMessage(error?.message);\n enqueueSnackbar(m, { variant: 'error' });\n }\n }\n\n useEffect(() => {\n getTemplatesViaSubject()\n return () => { setLoding(true) }\n }, [selectedCompany])\n\n return (\n <div>\n <Modal \n open={open} \n onClose={handleClose} \n maxWidth=\"lg\" \n fullWidth\n aria-labelledby=\"email-template-selection\"\n >\n {/* {loading && <ModalLoader/>} */}\n <DialogTitle sx={{ marginBottom: '1rem', padding: '0.75rem 1rem 0.75rem 1.5rem', borderBottom: '1px solid #D3D3D4'}}>\n <Typography type='s1' weight='medium' color='theme.secondary.1000' sx={{ width: '100%', textAlign: 'center' }}> Select a Template</Typography>\n <Box display='flex' alignItems={'center'} gap={1} position='absolute' right='1%' top='4px'>\n <Typography type='s3' weight='medium' color='theme.secondary.800'> Company</Typography>\n <Select\n displayEmpty\n value={selectedCompany}\n size='small'\n renderValue={(value) => value ? companies.find((option) => option.value === value)?.label : 'Select Company'}\n // fullWidth\n // sx={{\n // bgcolor: 'white',\n // borderRadius: 1,\n // '& .MuiSelect-select': { py: 0.75 }\n // }}\n onChange={(e) => {\n if (e.target.value) {\n setSelectedCompany(e.target.value as number);\n }\n }}>\n {companies.map((option) => (\n <MenuItem key={option.value} value={option.value}>\n <Typography type='s3' color='theme.secondary.1000'>{option.label}</Typography>\n </MenuItem>\n ))}\n </Select>\n <IconButton\n aria-label=\"close\"\n onClick={handleClose}\n size='small'\n sx={{\n color: (theme) => theme.palette.grey[500],\n }}\n >\n <CloseIcon fontSize='small'/>\n </IconButton>\n </Box>\n </DialogTitle>\n <DialogContent>\n {/* <Grid container spacing={6}> */}\n {!templates.length && (\n // <Grid item xs={12} sx={{ minHeight: 350}}>\n <Box display='flex' alignItems='center' width='100%' height='100%' justifyContent='center'>\n {!loading && <Typography type='s1' weight='medium' color='theme.secondary.1000' sx={{ textAlign: 'center' }}>No templates found</Typography>}\n </Box>\n // </Grid>\n )}\n <Box sx={{ \n display: 'grid', \n gridTemplateColumns: 'repeat(auto-fill, minmax(300px, 1fr))', \n gap: 2, \n p: 2,\n justifyItems: 'center',\n alignItems: 'center'\n }}>\n {templates.map((template, index) => (\n <HtmlThumbnailPreview\n key={template._id || index}\n template={template}\n width={300}\n height={200}\n showControls={true}\n selectedTemplateId={selectedTemplate}\n onClick={(template: any) => {\n handleTemplateSelect(template._id)\n }}\n isFetching={loading}\n onDelete={(template: any) => setTemplateToDelete(template)}\n />\n ))}\n </Box>\n {/* </Grid> */}\n </DialogContent>\n <DialogActions sx={{ p: 2, justifyContent: 'center', borderTop: '1px solid #D3D3D4' }}>\n <Button\n onClick={() => navigate(templateRoutes.EDIT_TEMPLATE(email._id, selectedTemplate), { state: { company_id: selectedCompany } })}\n disabled={!selectedTemplate}\n >\n Continue\n </Button>\n <Button\n onClick={() => handleDefaultTemplate()}\n disabled={!selectedTemplate || defaultTemplate?._id === selectedTemplate}\n >\n Set to Default\n </Button>\n </DialogActions>\n </Modal>\n <ConfirmPopUp\n open={templateToDelete !== null}\n onClose={() => setTemplateToDelete(null)}\n title='Remove Template'\n description='Are you sure you want to delete ?'\n onConfirm={() => handleDeleteTemplate()}\n loading={loading}\n />\n </div>\n );\n};\n\nexport { TemplateModal };\nexport default TemplateModal;"],"names":["React","_a","CloseIcon","template"],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","sources":["../../../../../src/views/template-editor/template-modal/template-modal.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\r\n/* eslint-disable react-hooks/exhaustive-deps */\r\n/* eslint-disable unused-imports/no-unused-vars */\r\nimport React, { useEffect, useState } from 'react';\r\nimport { \r\n DialogTitle, \r\n DialogContent, \r\n DialogActions,\r\n IconButton,\r\n Box,\r\n MenuItem\r\n} from '@mui/material';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport Typography from '../../../components/typography/typography';\r\nimport Modal from '../../../components/modal/modal';\r\nimport { deleteV1TemplatesId, getV1Templates, patchV1TemplatesIdSetDefault } from '../../../api-client/api.system-feature/api';\r\nimport { getErrorMessage, getToken } from '../../../utils/common';\r\nimport Button from '../../../components/button/button';\r\n// import ModalLoader from '../../../components/loader/modal-loader';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { enqueueSnackbar } from 'notistack';\r\nimport Select from '../../../components/select/select';\r\nimport HtmlThumbnailPreview from './html-thumbnail-preview';\r\nimport ConfirmPopUp from '../../../components/confirm-modal/confirm-modal';\r\n\r\nconst TemplateModal = ({ email, onClose, open, companies = [], templateRoutes }) => {\r\n const [templates, setTemplates] = useState([]);\r\n const [selectedTemplate, setSelectedTemplate] = useState('');\r\n const [defaultTemplate, setDefaultTemplate] = useState('');\r\n const [loading, setLoding] = useState(true);\r\n const [selectedCompany, setSelectedCompany] = React.useState<number>(companies?.[0]?.id || 0);\r\n const [templateToDelete, setTemplateToDelete] = React.useState<Record<string, any> | null>(null);\r\n const navigate = useNavigate();\r\n\r\n const handleClose = () => {\r\n onClose();\r\n };\r\n\r\n const handleTemplateSelect = (id) => {\r\n setSelectedTemplate(id);\r\n };\r\n\r\n const getTemplatesViaSubject = async () => {\r\n setLoding(true)\r\n const res = await getV1Templates({ ...getToken(), filters: `(company_id.eq=${selectedCompany}&subject_id.eq=${email._id})` })\r\n if(res?.data) {\r\n const dTemplate = res?.data?.find(t => t.is_default === true)\r\n setDefaultTemplate(dTemplate)\r\n setSelectedTemplate(dTemplate?._id)\r\n setTemplates(res?.data)\r\n }\r\n\r\n setLoding(false)\r\n }\r\n\r\n const handleDefaultTemplate = async () => {\r\n try {\r\n await patchV1TemplatesIdSetDefault({ ...getToken(), id: selectedTemplate })\r\n enqueueSnackbar('Template has been set as default');\r\n } catch (error) {\r\n const m = getErrorMessage(error?.message);\r\n enqueueSnackbar(m, { variant: 'error' });\r\n }\r\n }\r\n\r\n const handleDeleteTemplate = async () => {\r\n try {\r\n if(templateToDelete) {\r\n await deleteV1TemplatesId({ ...getToken(), id: templateToDelete?._id })\r\n enqueueSnackbar('Template has been deleted');\r\n setTemplateToDelete(null)\r\n await getTemplatesViaSubject()\r\n }\r\n } catch (error) {\r\n const m = getErrorMessage(error?.message);\r\n enqueueSnackbar(m, { variant: 'error' });\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getTemplatesViaSubject()\r\n return () => { setLoding(true) }\r\n }, [selectedCompany])\r\n\r\n return (\r\n <div>\r\n <Modal \r\n open={open} \r\n onClose={handleClose} \r\n maxWidth=\"lg\" \r\n fullWidth\r\n aria-labelledby=\"email-template-selection\"\r\n >\r\n {/* {loading && <ModalLoader/>} */}\r\n <DialogTitle sx={{ marginBottom: '1rem', padding: '0.75rem 1rem 0.75rem 1.5rem', borderBottom: '1px solid #D3D3D4'}}>\r\n <Typography type='s1' weight='medium' color='theme.secondary.1000' sx={{ width: '100%', textAlign: 'center' }}> Select a Template</Typography>\r\n <Box display='flex' alignItems={'center'} gap={1} position='absolute' right='1%' top='4px'>\r\n <Typography type='s3' weight='medium' color='theme.secondary.800'> Company</Typography>\r\n <Select\r\n displayEmpty\r\n value={selectedCompany}\r\n size='small'\r\n renderValue={(value) => value ? companies.find((option) => option.value === value)?.label : 'Select Company'}\r\n // fullWidth\r\n // sx={{\r\n // bgcolor: 'white',\r\n // borderRadius: 1,\r\n // '& .MuiSelect-select': { py: 0.75 }\r\n // }}\r\n onChange={(e) => {\r\n if (e.target.value) {\r\n setSelectedCompany(e.target.value as number);\r\n }\r\n }}>\r\n {companies.map((option) => (\r\n <MenuItem key={option.value} value={option.value}>\r\n <Typography type='s3' color='theme.secondary.1000'>{option.label}</Typography>\r\n </MenuItem>\r\n ))}\r\n </Select>\r\n <IconButton\r\n aria-label=\"close\"\r\n onClick={handleClose}\r\n size='small'\r\n sx={{\r\n color: (theme) => theme.palette.grey[500],\r\n }}\r\n >\r\n <CloseIcon fontSize='small'/>\r\n </IconButton>\r\n </Box>\r\n </DialogTitle>\r\n <DialogContent>\r\n {/* <Grid container spacing={6}> */}\r\n {!templates.length && (\r\n // <Grid item xs={12} sx={{ minHeight: 350}}>\r\n <Box display='flex' alignItems='center' width='100%' height='100%' justifyContent='center'>\r\n {!loading && <Typography type='s1' weight='medium' color='theme.secondary.1000' sx={{ textAlign: 'center' }}>No templates found</Typography>}\r\n </Box>\r\n // </Grid>\r\n )}\r\n <Box sx={{ \r\n display: 'grid', \r\n gridTemplateColumns: 'repeat(auto-fill, minmax(300px, 1fr))', \r\n gap: 2, \r\n p: 2,\r\n justifyItems: 'center',\r\n alignItems: 'center'\r\n }}>\r\n {templates.map((template, index) => (\r\n <HtmlThumbnailPreview\r\n key={template._id || index}\r\n template={template}\r\n width={300}\r\n height={200}\r\n showControls={true}\r\n selectedTemplateId={selectedTemplate}\r\n onClick={(template: any) => {\r\n handleTemplateSelect(template._id)\r\n }}\r\n isFetching={loading}\r\n onDelete={(template: any) => setTemplateToDelete(template)}\r\n />\r\n ))}\r\n </Box>\r\n {/* </Grid> */}\r\n </DialogContent>\r\n <DialogActions sx={{ p: 2, justifyContent: 'center', borderTop: '1px solid #D3D3D4' }}>\r\n <Button\r\n onClick={() => navigate(templateRoutes.EDIT_TEMPLATE(email._id, selectedTemplate), { state: { company_id: selectedCompany } })}\r\n disabled={!selectedTemplate}\r\n >\r\n Continue\r\n </Button>\r\n <Button\r\n onClick={() => handleDefaultTemplate()}\r\n disabled={!selectedTemplate || defaultTemplate?._id === selectedTemplate}\r\n >\r\n Set to Default\r\n </Button>\r\n </DialogActions>\r\n </Modal>\r\n <ConfirmPopUp\r\n open={templateToDelete !== null}\r\n onClose={() => setTemplateToDelete(null)}\r\n title='Remove Template'\r\n description='Are you sure you want to delete ?'\r\n onConfirm={() => handleDeleteTemplate()}\r\n loading={loading}\r\n />\r\n </div>\r\n );\r\n};\r\n\r\nexport { TemplateModal };\nexport default TemplateModal;"],"names":["React","_a","CloseIcon","template"],"mappings":";;;;;;;;;;;;;;;;;;;AAyBA,MAAM,gBAAgB,CAAC,EAAE,OAAO,SAAS,MAAM,YAAY,CAAA,GAAI,qBAAqB;;AAClF,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,CAAA,CAAE;AAC7C,QAAM,CAAC,kBAAkB,mBAAmB,IAAI,SAAS,EAAE;AAC3D,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,SAAS,EAAE;AACzD,QAAM,CAAC,SAAS,SAAS,IAAI,SAAS,IAAI;AAC1C,QAAM,CAAC,iBAAiB,kBAAkB,IAAIA,eAAM,WAAiB,4CAAY,OAAZ,mBAAgB,OAAM,CAAC;AAC5F,QAAM,CAAC,kBAAkB,mBAAmB,IAAIA,eAAM,SAAqC,IAAI;AAC/F,QAAM,WAAW,YAAA;AAEjB,QAAM,cAAc,MAAM;AACxB,YAAA;AAAA,EACF;AAEA,QAAM,uBAAuB,CAAC,OAAO;AACnC,wBAAoB,EAAE;AAAA,EACxB;AAEA,QAAM,yBAAyB,YAAY;;AACzC,cAAU,IAAI;AACd,UAAM,MAAM,MAAM,eAAe,EAAE,GAAG,SAAA,GAAa,SAAS,kBAAkB,eAAe,kBAAkB,MAAM,GAAG,KAAK;AAC7H,QAAG,2BAAK,MAAM;AACZ,YAAM,aAAYC,MAAA,2BAAK,SAAL,gBAAAA,IAAW,KAAK,CAAA,MAAK,EAAE,eAAe;AACxD,yBAAmB,SAAS;AAC5B,0BAAoB,uCAAW,GAAG;AAClC,mBAAa,2BAAK,IAAI;AAAA,IACxB;AAEA,cAAU,KAAK;AAAA,EACjB;AAEA,QAAM,wBAAwB,YAAY;AACxC,QAAI;AACF,YAAM,6BAA6B,EAAE,GAAG,YAAY,IAAI,kBAAkB;AAC1E,sBAAgB,kCAAkC;AAAA,IACpD,SAAS,OAAO;AACd,YAAM,IAAI,gBAAgB,+BAAO,OAAO;AACxC,sBAAgB,GAAG,EAAE,SAAS,QAAA,CAAS;AAAA,IACzC;AAAA,EACF;AAEA,QAAM,uBAAuB,YAAY;AACvC,QAAI;AACF,UAAG,kBAAkB;AACnB,cAAM,oBAAoB,EAAE,GAAG,SAAA,GAAY,IAAI,qDAAkB,KAAK;AACtE,wBAAgB,2BAA2B;AAC3C,4BAAoB,IAAI;AACxB,cAAM,uBAAA;AAAA,MACR;AAAA,IACF,SAAS,OAAO;AACd,YAAM,IAAI,gBAAgB,+BAAO,OAAO;AACxC,sBAAgB,GAAG,EAAE,SAAS,QAAA,CAAS;AAAA,IACzC;AAAA,EACF;AAEA,YAAU,MAAM;AACd,2BAAA;AACA,WAAO,MAAM;AAAE,gBAAU,IAAI;AAAA,IAAE;AAAA,EACjC,GAAG,CAAC,eAAe,CAAC;AAEpB,8BACG,OAAA,EACC,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,SAAS;AAAA,QACT,UAAS;AAAA,QACT,WAAS;AAAA,QACT,mBAAgB;AAAA,QAGhB,UAAA;AAAA,UAAA,qBAAC,aAAA,EAAY,IAAI,EAAE,cAAc,QAAQ,SAAS,+BAA+B,cAAc,oBAAA,GAC7F,UAAA;AAAA,YAAA,oBAAC,YAAA,EAAW,MAAK,MAAK,QAAO,UAAS,OAAM,wBAAuB,IAAI,EAAE,OAAO,QAAQ,WAAW,YAAY,UAAA,sBAAkB;AAAA,YACjI,qBAAC,KAAA,EAAI,SAAQ,QAAO,YAAY,UAAU,KAAK,GAAG,UAAS,YAAW,OAAM,MAAK,KAAI,OACnF,UAAA;AAAA,cAAA,oBAAC,cAAW,MAAK,MAAK,QAAO,UAAS,OAAM,uBAAsB,UAAA,WAAA,CAAQ;AAAA,cAC1E;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,cAAY;AAAA,kBACZ,OAAO;AAAA,kBACP,MAAK;AAAA,kBACL,aAAa,CAAC;;AAAU,oCAAQA,MAAA,UAAU,KAAK,CAAC,WAAW,OAAO,UAAU,KAAK,MAAjD,gBAAAA,IAAoD,QAAQ;AAAA;AAAA,kBAO5F,UAAU,CAAC,MAAM;AACf,wBAAI,EAAE,OAAO,OAAO;AAClB,yCAAmB,EAAE,OAAO,KAAe;AAAA,oBAC7C;AAAA,kBACF;AAAA,kBACC,UAAA,UAAU,IAAI,CAAC,+BACb,UAAA,EAA4B,OAAO,OAAO,OACzC,UAAA,oBAAC,cAAW,MAAK,MAAK,OAAM,wBAAwB,UAAA,OAAO,OAAM,KADpD,OAAO,KAEtB,CACD;AAAA,gBAAA;AAAA,cAAA;AAAA,cAEH;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,cAAW;AAAA,kBACX,SAAS;AAAA,kBACT,MAAK;AAAA,kBACL,IAAI;AAAA,oBACF,OAAO,CAAC,UAAU,MAAM,QAAQ,KAAK,GAAG;AAAA,kBAAA;AAAA,kBAG1C,UAAA,oBAACC,WAAA,EAAU,UAAS,QAAA,CAAO;AAAA,gBAAA;AAAA,cAAA;AAAA,YAC7B,EAAA,CACF;AAAA,UAAA,GACF;AAAA,+BACC,eAAA,EAEE,UAAA;AAAA,YAAA,CAAC,UAAU;AAAA,YAER,oBAAC,KAAA,EAAI,SAAQ,QAAO,YAAW,UAAS,OAAM,QAAO,QAAO,QAAO,gBAAe,UAC/E,UAAA,CAAC,WAAW,oBAAC,YAAA,EAAW,MAAK,MAAK,QAAO,UAAS,OAAM,wBAAuB,IAAI,EAAE,WAAW,SAAA,GAAY,UAAA,qBAAA,CAAkB,GACjI;AAAA,YAGF,oBAAC,OAAI,IAAI;AAAA,cACP,SAAS;AAAA,cACT,qBAAqB;AAAA,cACrB,KAAK;AAAA,cACL,GAAG;AAAA,cACH,cAAc;AAAA,cACd,YAAY;AAAA,YAAA,GAEX,UAAA,UAAU,IAAI,CAAC,UAAU,UACxB;AAAA,cAAC;AAAA,cAAA;AAAA,gBAEC;AAAA,gBACA,OAAO;AAAA,gBACP,QAAQ;AAAA,gBACR,cAAc;AAAA,gBACd,oBAAoB;AAAA,gBACpB,SAAS,CAACC,cAAkB;AAC1B,uCAAqBA,UAAS,GAAG;AAAA,gBACnC;AAAA,gBACA,YAAY;AAAA,gBACZ,UAAU,CAACA,cAAkB,oBAAoBA,SAAQ;AAAA,cAAA;AAAA,cAVpD,SAAS,OAAO;AAAA,YAAA,CAYxB,EAAA,CACH;AAAA,UAAA,GAEJ;AAAA,UACA,qBAAC,eAAA,EAAc,IAAI,EAAE,GAAG,GAAG,gBAAgB,UAAU,WAAW,oBAAA,GAC9D,UAAA;AAAA,YAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,SAAS,MAAM,SAAS,eAAe,cAAc,MAAM,KAAK,gBAAgB,GAAG,EAAE,OAAO,EAAE,YAAY,gBAAA,GAAmB;AAAA,gBAC7H,UAAU,CAAC;AAAA,gBACZ,UAAA;AAAA,cAAA;AAAA,YAAA;AAAA,YAGD;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,SAAS,MAAM,sBAAA;AAAA,gBACf,UAAU,CAAC,qBAAoB,mDAAiB,SAAQ;AAAA,gBACzD,UAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UAED,EAAA,CACF;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAEF;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAM,qBAAqB;AAAA,QAC3B,SAAS,MAAM,oBAAoB,IAAI;AAAA,QACvC,OAAM;AAAA,QACN,aAAY;AAAA,QACZ,WAAW,MAAM,qBAAA;AAAA,QACjB;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,GACF;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/views/template-editor/template-modal/template-modal.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React, { useEffect, useState } from 'react';\nimport { \n DialogTitle, \n DialogContent, \n DialogActions,\n IconButton,\n Box,\n MenuItem\n} from '@mui/material';\nimport CloseIcon from '@mui/icons-material/Close';\nimport Typography from '../../../components/typography/typography';\nimport Modal from '../../../components/modal/modal';\nimport { deleteV1TemplatesId, getV1Templates, patchV1TemplatesIdSetDefault } from '../../../api-client/api.system-feature/api';\nimport { getErrorMessage, getToken } from '../../../utils/common';\nimport Button from '../../../components/button/button';\n// import ModalLoader from '../../../components/loader/modal-loader';\nimport { useNavigate } from 'react-router-dom';\nimport { enqueueSnackbar } from 'notistack';\nimport Select from '../../../components/select/select';\nimport HtmlThumbnailPreview from './html-thumbnail-preview';\nimport ConfirmPopUp from '../../../components/confirm-modal/confirm-modal';\n\nconst TemplateModal = ({ email, onClose, open, companies = [], templateRoutes }) => {\n const [templates, setTemplates] = useState([]);\n const [selectedTemplate, setSelectedTemplate] = useState('');\n const [defaultTemplate, setDefaultTemplate] = useState('');\n const [loading, setLoding] = useState(true);\n const [selectedCompany, setSelectedCompany] = React.useState<number>(companies?.[0]?.id || 0);\n const [templateToDelete, setTemplateToDelete] = React.useState<Record<string, any> | null>(null);\n const navigate = useNavigate();\n\n const handleClose = () => {\n onClose();\n };\n\n const handleTemplateSelect = (id) => {\n setSelectedTemplate(id);\n };\n\n const getTemplatesViaSubject = async () => {\n setLoding(true)\n const res = await getV1Templates({ ...getToken(), filters: `(company_id.eq=${selectedCompany}&subject_id.eq=${email._id})` })\n if(res?.data) {\n const dTemplate = res?.data?.find(t => t.is_default === true)\n setDefaultTemplate(dTemplate)\n setSelectedTemplate(dTemplate?._id)\n setTemplates(res?.data)\n }\n\n setLoding(false)\n }\n\n const handleDefaultTemplate = async () => {\n try {\n await patchV1TemplatesIdSetDefault({ ...getToken(), id: selectedTemplate })\n enqueueSnackbar('Template has been set as default');\n } catch (error) {\n const m = getErrorMessage(error?.message);\n enqueueSnackbar(m, { variant: 'error' });\n }\n }\n\n const handleDeleteTemplate = async () => {\n try {\n if(templateToDelete) {\n await deleteV1TemplatesId({ ...getToken(), id: templateToDelete?._id })\n enqueueSnackbar('Template has been deleted');\n setTemplateToDelete(null)\n await getTemplatesViaSubject()\n }\n } catch (error) {\n const m = getErrorMessage(error?.message);\n enqueueSnackbar(m, { variant: 'error' });\n }\n }\n\n useEffect(() => {\n getTemplatesViaSubject()\n return () => { setLoding(true) }\n }, [selectedCompany])\n\n return (\n <div>\n <Modal \n open={open} \n onClose={handleClose} \n maxWidth=\"lg\" \n fullWidth\n aria-labelledby=\"email-template-selection\"\n >\n {/* {loading && <ModalLoader/>} */}\n <DialogTitle sx={{ marginBottom: '1rem', padding: '0.75rem 1rem 0.75rem 1.5rem', borderBottom: '1px solid #D3D3D4'}}>\n <Typography type='s1' weight='medium' color='theme.secondary.1000' sx={{ width: '100%', textAlign: 'center' }}> Select a Template</Typography>\n <Box display='flex' alignItems={'center'} gap={1} position='absolute' right='1%' top='4px'>\n <Typography type='s3' weight='medium' color='theme.secondary.800'> Company</Typography>\n <Select\n displayEmpty\n value={selectedCompany}\n size='small'\n renderValue={(value) => value ? companies.find((option) => option.value === value)?.label : 'Select Company'}\n // fullWidth\n // sx={{\n // bgcolor: 'white',\n // borderRadius: 1,\n // '& .MuiSelect-select': { py: 0.75 }\n // }}\n onChange={(e) => {\n if (e.target.value) {\n setSelectedCompany(e.target.value as number);\n }\n }}>\n {companies.map((option) => (\n <MenuItem key={option.value} value={option.value}>\n <Typography type='s3' color='theme.secondary.1000'>{option.label}</Typography>\n </MenuItem>\n ))}\n </Select>\n <IconButton\n aria-label=\"close\"\n onClick={handleClose}\n size='small'\n sx={{\n color: (theme) => theme.palette.grey[500],\n }}\n >\n <CloseIcon fontSize='small'/>\n </IconButton>\n </Box>\n </DialogTitle>\n <DialogContent>\n {/* <Grid container spacing={6}> */}\n {!templates.length && (\n // <Grid item xs={12} sx={{ minHeight: 350}}>\n <Box display='flex' alignItems='center' width='100%' height='100%' justifyContent='center'>\n {!loading && <Typography type='s1' weight='medium' color='theme.secondary.1000' sx={{ textAlign: 'center' }}>No templates found</Typography>}\n </Box>\n // </Grid>\n )}\n <Box sx={{ \n display: 'grid', \n gridTemplateColumns: 'repeat(auto-fill, minmax(300px, 1fr))', \n gap: 2, \n p: 2,\n justifyItems: 'center',\n alignItems: 'center'\n }}>\n {templates.map((template, index) => (\n <HtmlThumbnailPreview\n key={template._id || index}\n template={template}\n width={300}\n height={200}\n showControls={true}\n selectedTemplateId={selectedTemplate}\n onClick={(template: any) => {\n handleTemplateSelect(template._id)\n }}\n isFetching={loading}\n onDelete={(template: any) => setTemplateToDelete(template)}\n />\n ))}\n </Box>\n {/* </Grid> */}\n </DialogContent>\n <DialogActions sx={{ p: 2, justifyContent: 'center', borderTop: '1px solid #D3D3D4' }}>\n <Button\n onClick={() => navigate(templateRoutes.EDIT_TEMPLATE(email._id, selectedTemplate), { state: { company_id: selectedCompany } })}\n disabled={!selectedTemplate}\n >\n Continue\n </Button>\n <Button\n onClick={() => handleDefaultTemplate()}\n disabled={!selectedTemplate || defaultTemplate?._id === selectedTemplate}\n >\n Set to Default\n </Button>\n </DialogActions>\n </Modal>\n <ConfirmPopUp\n open={templateToDelete !== null}\n onClose={() => setTemplateToDelete(null)}\n title='Remove Template'\n description='Are you sure you want to delete ?'\n onConfirm={() => handleDeleteTemplate()}\n loading={loading}\n />\n </div>\n );\n};\n\nexport { TemplateModal };\nexport default TemplateModal;"],"names":["TemplateModal","email","onClose","open","companies","templateRoutes","templates","setTemplates","useState","selectedTemplate","setSelectedTemplate","defaultTemplate","setDefaultTemplate","loading","setLoding","selectedCompany","setSelectedCompany","React","_a","id","templateToDelete","setTemplateToDelete","navigate","useNavigate","handleClose","getTemplatesViaSubject","async","res","getV1Templates","getToken","filters","_id","data","dTemplate","find","t","is_default","useEffect","children","jsxs","Modal","maxWidth","fullWidth","DialogTitle","sx","marginBottom","padding","borderBottom","jsx","Typography","type","weight","color","width","textAlign","Box","display","alignItems","gap","position","right","top","Select","displayEmpty","value","size","renderValue","option","label","onChange","e","target","map","MenuItem","IconButton","onClick","theme","palette","grey","CloseIcon","fontSize","DialogContent","length","height","justifyContent","gridTemplateColumns","p","justifyItems","template","index","HtmlThumbnailPreview","showControls","selectedTemplateId","isFetching","onDelete","DialogActions","borderTop","Button","EDIT_TEMPLATE","state","company_id","disabled","patchV1TemplatesIdSetDefault","enqueueSnackbar","error","m","getErrorMessage","message","variant","handleDefaultTemplate","ConfirmPopUp","title","description","onConfirm","deleteV1TemplatesId","handleDeleteTemplate"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/views/template-editor/template-modal/template-modal.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\r\n/* eslint-disable react-hooks/exhaustive-deps */\r\n/* eslint-disable unused-imports/no-unused-vars */\r\nimport React, { useEffect, useState } from 'react';\r\nimport { \r\n DialogTitle, \r\n DialogContent, \r\n DialogActions,\r\n IconButton,\r\n Box,\r\n MenuItem\r\n} from '@mui/material';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport Typography from '../../../components/typography/typography';\r\nimport Modal from '../../../components/modal/modal';\r\nimport { deleteV1TemplatesId, getV1Templates, patchV1TemplatesIdSetDefault } from '../../../api-client/api.system-feature/api';\r\nimport { getErrorMessage, getToken } from '../../../utils/common';\r\nimport Button from '../../../components/button/button';\r\n// import ModalLoader from '../../../components/loader/modal-loader';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { enqueueSnackbar } from 'notistack';\r\nimport Select from '../../../components/select/select';\r\nimport HtmlThumbnailPreview from './html-thumbnail-preview';\r\nimport ConfirmPopUp from '../../../components/confirm-modal/confirm-modal';\r\n\r\nconst TemplateModal = ({ email, onClose, open, companies = [], templateRoutes }) => {\r\n const [templates, setTemplates] = useState([]);\r\n const [selectedTemplate, setSelectedTemplate] = useState('');\r\n const [defaultTemplate, setDefaultTemplate] = useState('');\r\n const [loading, setLoding] = useState(true);\r\n const [selectedCompany, setSelectedCompany] = React.useState<number>(companies?.[0]?.id || 0);\r\n const [templateToDelete, setTemplateToDelete] = React.useState<Record<string, any> | null>(null);\r\n const navigate = useNavigate();\r\n\r\n const handleClose = () => {\r\n onClose();\r\n };\r\n\r\n const handleTemplateSelect = (id) => {\r\n setSelectedTemplate(id);\r\n };\r\n\r\n const getTemplatesViaSubject = async () => {\r\n setLoding(true)\r\n const res = await getV1Templates({ ...getToken(), filters: `(company_id.eq=${selectedCompany}&subject_id.eq=${email._id})` })\r\n if(res?.data) {\r\n const dTemplate = res?.data?.find(t => t.is_default === true)\r\n setDefaultTemplate(dTemplate)\r\n setSelectedTemplate(dTemplate?._id)\r\n setTemplates(res?.data)\r\n }\r\n\r\n setLoding(false)\r\n }\r\n\r\n const handleDefaultTemplate = async () => {\r\n try {\r\n await patchV1TemplatesIdSetDefault({ ...getToken(), id: selectedTemplate })\r\n enqueueSnackbar('Template has been set as default');\r\n } catch (error) {\r\n const m = getErrorMessage(error?.message);\r\n enqueueSnackbar(m, { variant: 'error' });\r\n }\r\n }\r\n\r\n const handleDeleteTemplate = async () => {\r\n try {\r\n if(templateToDelete) {\r\n await deleteV1TemplatesId({ ...getToken(), id: templateToDelete?._id })\r\n enqueueSnackbar('Template has been deleted');\r\n setTemplateToDelete(null)\r\n await getTemplatesViaSubject()\r\n }\r\n } catch (error) {\r\n const m = getErrorMessage(error?.message);\r\n enqueueSnackbar(m, { variant: 'error' });\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getTemplatesViaSubject()\r\n return () => { setLoding(true) }\r\n }, [selectedCompany])\r\n\r\n return (\r\n <div>\r\n <Modal \r\n open={open} \r\n onClose={handleClose} \r\n maxWidth=\"lg\" \r\n fullWidth\r\n aria-labelledby=\"email-template-selection\"\r\n >\r\n {/* {loading && <ModalLoader/>} */}\r\n <DialogTitle sx={{ marginBottom: '1rem', padding: '0.75rem 1rem 0.75rem 1.5rem', borderBottom: '1px solid #D3D3D4'}}>\r\n <Typography type='s1' weight='medium' color='theme.secondary.1000' sx={{ width: '100%', textAlign: 'center' }}> Select a Template</Typography>\r\n <Box display='flex' alignItems={'center'} gap={1} position='absolute' right='1%' top='4px'>\r\n <Typography type='s3' weight='medium' color='theme.secondary.800'> Company</Typography>\r\n <Select\r\n displayEmpty\r\n value={selectedCompany}\r\n size='small'\r\n renderValue={(value) => value ? companies.find((option) => option.value === value)?.label : 'Select Company'}\r\n // fullWidth\r\n // sx={{\r\n // bgcolor: 'white',\r\n // borderRadius: 1,\r\n // '& .MuiSelect-select': { py: 0.75 }\r\n // }}\r\n onChange={(e) => {\r\n if (e.target.value) {\r\n setSelectedCompany(e.target.value as number);\r\n }\r\n }}>\r\n {companies.map((option) => (\r\n <MenuItem key={option.value} value={option.value}>\r\n <Typography type='s3' color='theme.secondary.1000'>{option.label}</Typography>\r\n </MenuItem>\r\n ))}\r\n </Select>\r\n <IconButton\r\n aria-label=\"close\"\r\n onClick={handleClose}\r\n size='small'\r\n sx={{\r\n color: (theme) => theme.palette.grey[500],\r\n }}\r\n >\r\n <CloseIcon fontSize='small'/>\r\n </IconButton>\r\n </Box>\r\n </DialogTitle>\r\n <DialogContent>\r\n {/* <Grid container spacing={6}> */}\r\n {!templates.length && (\r\n // <Grid item xs={12} sx={{ minHeight: 350}}>\r\n <Box display='flex' alignItems='center' width='100%' height='100%' justifyContent='center'>\r\n {!loading && <Typography type='s1' weight='medium' color='theme.secondary.1000' sx={{ textAlign: 'center' }}>No templates found</Typography>}\r\n </Box>\r\n // </Grid>\r\n )}\r\n <Box sx={{ \r\n display: 'grid', \r\n gridTemplateColumns: 'repeat(auto-fill, minmax(300px, 1fr))', \r\n gap: 2, \r\n p: 2,\r\n justifyItems: 'center',\r\n alignItems: 'center'\r\n }}>\r\n {templates.map((template, index) => (\r\n <HtmlThumbnailPreview\r\n key={template._id || index}\r\n template={template}\r\n width={300}\r\n height={200}\r\n showControls={true}\r\n selectedTemplateId={selectedTemplate}\r\n onClick={(template: any) => {\r\n handleTemplateSelect(template._id)\r\n }}\r\n isFetching={loading}\r\n onDelete={(template: any) => setTemplateToDelete(template)}\r\n />\r\n ))}\r\n </Box>\r\n {/* </Grid> */}\r\n </DialogContent>\r\n <DialogActions sx={{ p: 2, justifyContent: 'center', borderTop: '1px solid #D3D3D4' }}>\r\n <Button\r\n onClick={() => navigate(templateRoutes.EDIT_TEMPLATE(email._id, selectedTemplate), { state: { company_id: selectedCompany } })}\r\n disabled={!selectedTemplate}\r\n >\r\n Continue\r\n </Button>\r\n <Button\r\n onClick={() => handleDefaultTemplate()}\r\n disabled={!selectedTemplate || defaultTemplate?._id === selectedTemplate}\r\n >\r\n Set to Default\r\n </Button>\r\n </DialogActions>\r\n </Modal>\r\n <ConfirmPopUp\r\n open={templateToDelete !== null}\r\n onClose={() => setTemplateToDelete(null)}\r\n title='Remove Template'\r\n description='Are you sure you want to delete ?'\r\n onConfirm={() => handleDeleteTemplate()}\r\n loading={loading}\r\n />\r\n </div>\r\n );\r\n};\r\n\r\nexport { TemplateModal };\nexport default TemplateModal;"],"names":["TemplateModal","email","onClose","open","companies","templateRoutes","templates","setTemplates","useState","selectedTemplate","setSelectedTemplate","defaultTemplate","setDefaultTemplate","loading","setLoding","selectedCompany","setSelectedCompany","React","_a","id","templateToDelete","setTemplateToDelete","navigate","useNavigate","handleClose","getTemplatesViaSubject","async","res","getV1Templates","getToken","filters","_id","data","dTemplate","find","t","is_default","useEffect","children","jsxs","Modal","maxWidth","fullWidth","DialogTitle","sx","marginBottom","padding","borderBottom","jsx","Typography","type","weight","color","width","textAlign","Box","display","alignItems","gap","position","right","top","Select","displayEmpty","value","size","renderValue","option","label","onChange","e","target","map","MenuItem","IconButton","onClick","theme","palette","grey","CloseIcon","fontSize","DialogContent","length","height","justifyContent","gridTemplateColumns","p","justifyItems","template","index","HtmlThumbnailPreview","showControls","selectedTemplateId","isFetching","onDelete","DialogActions","borderTop","Button","EDIT_TEMPLATE","state","company_id","disabled","patchV1TemplatesIdSetDefault","enqueueSnackbar","error","m","getErrorMessage","message","variant","handleDefaultTemplate","ConfirmPopUp","title","description","onConfirm","deleteV1TemplatesId","handleDeleteTemplate"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../../../../../src/views/template-editor/template-name-modal/template-name-modal.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React, { useEffect, useState } from 'react';\n\nimport Modal from '../../../components/modal/modal';\nimport Typography from '../../../components/typography/typography';\nimport Button from '../../../components/button/button';\n\nimport {\n\tBox,\n\tCircularProgress,\n\tDialogActions,\n\tDialogContent,\n\tDialogProps,\n\tDialogTitle,\n\tIconButton,\n} from '@mui/material';\nimport Close from '@mui/icons-material/Close';\n\nimport './template-name-modal.scss';\nimport { IEmail } from '../utils/types';\nimport { enqueueSnackbar } from 'notistack';\nimport { useNavigate } from 'react-router-dom';\nimport DynamicInput from '../../../components/form-control/form-builder/form-builder-element/text';\nimport { useForm } from 'react-hook-form';\nimport { patchV1TemplatesId, postV1Templates } from '../../../api-client/api.system-feature/api';\nimport * as Yup from 'yup';\nimport { yupResolver } from '@hookform/resolvers/yup';\n\ninterface TemplateNameModalProps {\n\tisOpen: boolean;\n\tsetIsOpen: (value: IEmail | null) => void;\n\tmodalProps?: DialogProps;\n\ttemplateRoutes: Record<string, any>;\n\tpayload: Record<string, any>;\n\tmode: 'add' | 'edit';\n\ttemplateData: Record<string, any> | null;\n}\n\nconst generateValidationSchema = () => {\n\treturn yupResolver(\n\t\tYup.object().shape({\n\t\t\ttemplate_name: Yup.object().shape({\n\t\t\t\tname: Yup.string().trim().required('Template name is required'),\n\t\t\t})\n\t\t})\n\t)\n}\n\nconst TemplateNameModal: React.FC<TemplateNameModalProps> = ({\n\tisOpen,\n\tsetIsOpen,\n\tmodalProps,\n\ttemplateRoutes,\n\tpayload,\n\tmode = 'add',\n\ttemplateData\n}) => {\n\tconst { handleSubmit, control, setValue } = useForm({ mode: 'all', resolver: generateValidationSchema() });\n\tconst navigate = useNavigate();\n\tconst [isSubmitting, setIsSubmitting] = useState<boolean>(false);\n\n\tconst handleModalClose = () => {\n\t\tsetIsOpen(null);\n\t};\n\n\tconst onSubmit = async (values: any) => {\n\t\tsetIsSubmitting(true);\n\t\ttry {\n\t\t\tconst { name = ''} = values?.template_name || {}\n\t\t\tpayload.name = name\n\t\t\tconst res = await (mode === 'edit' ? patchV1TemplatesId(payload) : postV1Templates(payload));\n\t\t\tif(res.status_code === 200) {\n\t\t\t\tenqueueSnackbar('Template saved successfully', { variant: 'success' });\n\t\t\t}\n\t\t\tnavigate(templateRoutes.LIST);\n\t\t\tsetIsSubmitting(false);\n\t\t} catch (error) {\n\t\t\tconst m = error?.message || 'Something went wrong'\n\t\t\tsetIsSubmitting(false);\n\t\t\tenqueueSnackbar(m, { variant: 'error' });\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tif(templateData && templateData?.name) {\n\t\t\tsetValue('template_name.name', templateData?.name)\n\t\t}\n\t}, [setValue, templateData])\n\n\treturn (\n\t\t<Modal\n\t\t\topen={isOpen}\n\t\t\tonClose={handleModalClose}\n\t\t\tmaxWidth='xs'\n\t\t\tfullWidth\n\t\t\t{...modalProps}>\n\t\t\t<DialogTitle className='companySelectionModal--DialogTitle'>\n\t\t\t\t<Typography type='s3' color='inherit' weight='medium'>\n\t\t\t\t\tTemplate Name\n\t\t\t\t</Typography>\n\t\t\t\t<IconButton onClick={handleModalClose} disabled={isSubmitting}>\n\t\t\t\t\t<Close fontSize='small' />\n\t\t\t\t</IconButton>\n\t\t\t</DialogTitle>\n\t\t\t<DialogContent className='companySelectionModal--DialogContents'>\n\t\t\t\t<form onSubmit={handleSubmit(onSubmit)} id='template_name'>\n\t\t\t\t\t<DynamicInput \n\t\t\t\t\t\tlabel={'Name'}\n\t\t\t\t\t\tname='name'\n\t\t\t\t\t\tplaceholder={'Enter Name'}\n\t\t\t\t\t\tfieldArrayName='template_name'\n\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t</form>\n\t\t\t</DialogContent>\n\t\t\t<DialogActions className='companySelectionModal--DialogAction'>\n\t\t\t\t<Box display='flex' gap={1.5}>\n\t\t\t\t\t<Button className='companySelectionModal--DialogAction--WhiteBtn' onClick={handleModalClose} disabled={isSubmitting}>Cancel</Button>\n\t\t\t\t\t<Button type='submit' form='template_name' disabled={isSubmitting} endIcon={isSubmitting && <CircularProgress size={15}/>}>Save</Button>\n\t\t\t\t</Box>\n\t\t\t</DialogActions>\n\t\t</Modal>\n\t);\n};\n\nexport default TemplateNameModal;\n"],"names":["yupResolver","Close"],"mappings":";;;;;;;;;;;;;;;;;;;;AAuCA,MAAM,2BAA2B,MAAM;AACtC,SAAOA;AAAAA,IACN,IAAI,OAAA,EAAS,MAAM;AAAA,MAClB,eAAe,IAAI,OAAA,EAAS,MAAM;AAAA,QACjC,MAAM,IAAI,OAAA,EAAS,KAAA,EAAO,SAAS,2BAA2B;AAAA,MAAA,CAC9D;AAAA,IAAA,CACD;AAAA,EAAA;AAEH;AAEA,MAAM,oBAAsD,CAAC;AAAA,EAC5D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AACD,MAAM;AACL,QAAM,EAAE,cAAc,SAAS,aAAa,QAAQ,EAAE,MAAM,OAAO,UAAU,yBAAA,EAAyB,CAAG;AACzG,QAAM,WAAW,YAAA;AACjB,QAAM,CAAC,cAAc,eAAe,IAAI,SAAkB,KAAK;AAE/D,QAAM,mBAAmB,MAAM;AAC9B,cAAU,IAAI;AAAA,EACf;AAEA,QAAM,WAAW,OAAO,WAAgB;AACvC,oBAAgB,IAAI;AACpB,QAAI;AACH,YAAM,EAAE,OAAO,GAAA,KAAM,iCAAQ,kBAAiB,CAAA;AAC9C,cAAQ,OAAO;AACf,YAAM,MAAM,OAAO,SAAS,SAAS,mBAAmB,OAAO,IAAI,gBAAgB,OAAO;AAC1F,UAAG,IAAI,gBAAgB,KAAK;AAC3B,wBAAgB,+BAA+B,EAAE,SAAS,UAAA,CAAW;AAAA,MACtE;AACA,eAAS,eAAe,IAAI;AAC5B,sBAAgB,KAAK;AAAA,IACtB,SAAS,OAAO;AACf,YAAM,KAAI,+BAAO,YAAW;AAC5B,sBAAgB,KAAK;AACrB,sBAAgB,GAAG,EAAE,SAAS,QAAA,CAAS;AAAA,IACxC;AAAA,EACD;AAEA,YAAU,MAAM;AACf,QAAG,iBAAgB,6CAAc,OAAM;AACtC,eAAS,sBAAsB,6CAAc,IAAI;AAAA,IAClD;AAAA,EACD,GAAG,CAAC,UAAU,YAAY,CAAC;AAE3B,SACC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAS;AAAA,MACT,WAAS;AAAA,MACR,GAAG;AAAA,MACJ,UAAA;AAAA,QAAA,qBAAC,aAAA,EAAY,WAAU,sCACtB,UAAA;AAAA,UAAA,oBAAC,cAAW,MAAK,MAAK,OAAM,WAAU,QAAO,UAAS,UAAA,gBAAA,CAEtD;AAAA,UACA,oBAAC,YAAA,EAAW,SAAS,kBAAkB,UAAU,cAChD,UAAA,oBAACC,WAAA,EAAM,UAAS,QAAA,CAAQ,EAAA,CACzB;AAAA,QAAA,GACD;AAAA,QACA,oBAAC,eAAA,EAAc,WAAU,yCACxB,UAAA,oBAAC,QAAA,EAAK,UAAU,aAAa,QAAQ,GAAG,IAAG,iBAC1C,UAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACA,OAAO;AAAA,YACP,MAAK;AAAA,YACL,aAAa;AAAA,YACb,gBAAe;AAAA,YACf,aAAa;AAAA,YACb,UAAQ;AAAA,UAAA;AAAA,QAAA,GAEV,EAAA,CACD;AAAA,QACA,oBAAC,iBAAc,WAAU,uCACxB,+BAAC,KAAA,EAAI,SAAQ,QAAO,KAAK,KACxB,UAAA;AAAA,UAAA,oBAAC,UAAO,WAAU,iDAAgD,SAAS,kBAAkB,UAAU,cAAc,UAAA,SAAA,CAAM;AAAA,UAC3H,oBAAC,QAAA,EAAO,MAAK,UAAS,MAAK,iBAAgB,UAAU,cAAc,SAAS,gBAAgB,oBAAC,kBAAA,EAAiB,MAAM,IAAG,GAAI,UAAA,OAAA,CAAI;AAAA,QAAA,EAAA,CAChI,EAAA,CACD;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGH;"}
1
+ {"version":3,"file":"index.esm.js","sources":["../../../../../src/views/template-editor/template-name-modal/template-name-modal.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/* eslint-disable unused-imports/no-unused-vars */\r\nimport React, { useEffect, useState } from 'react';\r\n\r\nimport Modal from '../../../components/modal/modal';\r\nimport Typography from '../../../components/typography/typography';\r\nimport Button from '../../../components/button/button';\r\n\r\nimport {\r\n\tBox,\r\n\tCircularProgress,\r\n\tDialogActions,\r\n\tDialogContent,\r\n\tDialogProps,\r\n\tDialogTitle,\r\n\tIconButton,\r\n} from '@mui/material';\r\nimport Close from '@mui/icons-material/Close';\r\n\r\nimport './template-name-modal.scss';\r\nimport { IEmail } from '../utils/types';\r\nimport { enqueueSnackbar } from 'notistack';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport DynamicInput from '../../../components/form-control/form-builder/form-builder-element/text';\r\nimport { useForm } from 'react-hook-form';\r\nimport { patchV1TemplatesId, postV1Templates } from '../../../api-client/api.system-feature/api';\r\nimport * as Yup from 'yup';\r\nimport { yupResolver } from '@hookform/resolvers/yup';\r\n\r\ninterface TemplateNameModalProps {\r\n\tisOpen: boolean;\r\n\tsetIsOpen: (value: IEmail | null) => void;\r\n\tmodalProps?: DialogProps;\r\n\ttemplateRoutes: Record<string, any>;\r\n\tpayload: Record<string, any>;\r\n\tmode: 'add' | 'edit';\r\n\ttemplateData: Record<string, any> | null;\r\n}\r\n\r\nconst generateValidationSchema = () => {\r\n\treturn yupResolver(\r\n\t\tYup.object().shape({\r\n\t\t\ttemplate_name: Yup.object().shape({\r\n\t\t\t\tname: Yup.string().trim().required('Template name is required'),\r\n\t\t\t})\r\n\t\t})\r\n\t)\r\n}\r\n\r\nconst TemplateNameModal: React.FC<TemplateNameModalProps> = ({\r\n\tisOpen,\r\n\tsetIsOpen,\r\n\tmodalProps,\r\n\ttemplateRoutes,\r\n\tpayload,\r\n\tmode = 'add',\r\n\ttemplateData\r\n}) => {\r\n\tconst { handleSubmit, control, setValue } = useForm({ mode: 'all', resolver: generateValidationSchema() });\r\n\tconst navigate = useNavigate();\r\n\tconst [isSubmitting, setIsSubmitting] = useState<boolean>(false);\r\n\r\n\tconst handleModalClose = () => {\r\n\t\tsetIsOpen(null);\r\n\t};\r\n\r\n\tconst onSubmit = async (values: any) => {\r\n\t\tsetIsSubmitting(true);\r\n\t\ttry {\r\n\t\t\tconst { name = ''} = values?.template_name || {}\r\n\t\t\tpayload.name = name\r\n\t\t\tconst res = await (mode === 'edit' ? patchV1TemplatesId(payload) : postV1Templates(payload));\r\n\t\t\tif(res.status_code === 200) {\r\n\t\t\t\tenqueueSnackbar('Template saved successfully', { variant: 'success' });\r\n\t\t\t}\r\n\t\t\tnavigate(templateRoutes.LIST);\r\n\t\t\tsetIsSubmitting(false);\r\n\t\t} catch (error) {\r\n\t\t\tconst m = error?.message || 'Something went wrong'\r\n\t\t\tsetIsSubmitting(false);\r\n\t\t\tenqueueSnackbar(m, { variant: 'error' });\r\n\t\t}\r\n\t}\r\n\r\n\tuseEffect(() => {\r\n\t\tif(templateData && templateData?.name) {\r\n\t\t\tsetValue('template_name.name', templateData?.name)\r\n\t\t}\r\n\t}, [setValue, templateData])\r\n\r\n\treturn (\r\n\t\t<Modal\r\n\t\t\topen={isOpen}\r\n\t\t\tonClose={handleModalClose}\r\n\t\t\tmaxWidth='xs'\r\n\t\t\tfullWidth\r\n\t\t\t{...modalProps}>\r\n\t\t\t<DialogTitle className='companySelectionModal--DialogTitle'>\r\n\t\t\t\t<Typography type='s3' color='inherit' weight='medium'>\r\n\t\t\t\t\tTemplate Name\r\n\t\t\t\t</Typography>\r\n\t\t\t\t<IconButton onClick={handleModalClose} disabled={isSubmitting}>\r\n\t\t\t\t\t<Close fontSize='small' />\r\n\t\t\t\t</IconButton>\r\n\t\t\t</DialogTitle>\r\n\t\t\t<DialogContent className='companySelectionModal--DialogContents'>\r\n\t\t\t\t<form onSubmit={handleSubmit(onSubmit)} id='template_name'>\r\n\t\t\t\t\t<DynamicInput \r\n\t\t\t\t\t\tlabel={'Name'}\r\n\t\t\t\t\t\tname='name'\r\n\t\t\t\t\t\tplaceholder={'Enter Name'}\r\n\t\t\t\t\t\tfieldArrayName='template_name'\r\n\t\t\t\t\t\tformControl={control}\r\n\t\t\t\t\t\trequired\r\n\t\t\t\t\t/>\r\n\t\t\t\t</form>\r\n\t\t\t</DialogContent>\r\n\t\t\t<DialogActions className='companySelectionModal--DialogAction'>\r\n\t\t\t\t<Box display='flex' gap={1.5}>\r\n\t\t\t\t\t<Button className='companySelectionModal--DialogAction--WhiteBtn' onClick={handleModalClose} disabled={isSubmitting}>Cancel</Button>\r\n\t\t\t\t\t<Button type='submit' form='template_name' disabled={isSubmitting} endIcon={isSubmitting && <CircularProgress size={15}/>}>Save</Button>\r\n\t\t\t\t</Box>\r\n\t\t\t</DialogActions>\r\n\t\t</Modal>\r\n\t);\r\n};\r\n\r\nexport default TemplateNameModal;\r\n"],"names":["yupResolver","Close"],"mappings":";;;;;;;;;;;;;;;;;;;;AAuCA,MAAM,2BAA2B,MAAM;AACtC,SAAOA;AAAAA,IACN,IAAI,OAAA,EAAS,MAAM;AAAA,MAClB,eAAe,IAAI,OAAA,EAAS,MAAM;AAAA,QACjC,MAAM,IAAI,OAAA,EAAS,KAAA,EAAO,SAAS,2BAA2B;AAAA,MAAA,CAC9D;AAAA,IAAA,CACD;AAAA,EAAA;AAEH;AAEA,MAAM,oBAAsD,CAAC;AAAA,EAC5D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AACD,MAAM;AACL,QAAM,EAAE,cAAc,SAAS,aAAa,QAAQ,EAAE,MAAM,OAAO,UAAU,yBAAA,EAAyB,CAAG;AACzG,QAAM,WAAW,YAAA;AACjB,QAAM,CAAC,cAAc,eAAe,IAAI,SAAkB,KAAK;AAE/D,QAAM,mBAAmB,MAAM;AAC9B,cAAU,IAAI;AAAA,EACf;AAEA,QAAM,WAAW,OAAO,WAAgB;AACvC,oBAAgB,IAAI;AACpB,QAAI;AACH,YAAM,EAAE,OAAO,GAAA,KAAM,iCAAQ,kBAAiB,CAAA;AAC9C,cAAQ,OAAO;AACf,YAAM,MAAM,OAAO,SAAS,SAAS,mBAAmB,OAAO,IAAI,gBAAgB,OAAO;AAC1F,UAAG,IAAI,gBAAgB,KAAK;AAC3B,wBAAgB,+BAA+B,EAAE,SAAS,UAAA,CAAW;AAAA,MACtE;AACA,eAAS,eAAe,IAAI;AAC5B,sBAAgB,KAAK;AAAA,IACtB,SAAS,OAAO;AACf,YAAM,KAAI,+BAAO,YAAW;AAC5B,sBAAgB,KAAK;AACrB,sBAAgB,GAAG,EAAE,SAAS,QAAA,CAAS;AAAA,IACxC;AAAA,EACD;AAEA,YAAU,MAAM;AACf,QAAG,iBAAgB,6CAAc,OAAM;AACtC,eAAS,sBAAsB,6CAAc,IAAI;AAAA,IAClD;AAAA,EACD,GAAG,CAAC,UAAU,YAAY,CAAC;AAE3B,SACC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAS;AAAA,MACT,WAAS;AAAA,MACR,GAAG;AAAA,MACJ,UAAA;AAAA,QAAA,qBAAC,aAAA,EAAY,WAAU,sCACtB,UAAA;AAAA,UAAA,oBAAC,cAAW,MAAK,MAAK,OAAM,WAAU,QAAO,UAAS,UAAA,gBAAA,CAEtD;AAAA,UACA,oBAAC,YAAA,EAAW,SAAS,kBAAkB,UAAU,cAChD,UAAA,oBAACC,WAAA,EAAM,UAAS,QAAA,CAAQ,EAAA,CACzB;AAAA,QAAA,GACD;AAAA,QACA,oBAAC,eAAA,EAAc,WAAU,yCACxB,UAAA,oBAAC,QAAA,EAAK,UAAU,aAAa,QAAQ,GAAG,IAAG,iBAC1C,UAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACA,OAAO;AAAA,YACP,MAAK;AAAA,YACL,aAAa;AAAA,YACb,gBAAe;AAAA,YACf,aAAa;AAAA,YACb,UAAQ;AAAA,UAAA;AAAA,QAAA,GAEV,EAAA,CACD;AAAA,QACA,oBAAC,iBAAc,WAAU,uCACxB,+BAAC,KAAA,EAAI,SAAQ,QAAO,KAAK,KACxB,UAAA;AAAA,UAAA,oBAAC,UAAO,WAAU,iDAAgD,SAAS,kBAAkB,UAAU,cAAc,UAAA,SAAA,CAAM;AAAA,UAC3H,oBAAC,QAAA,EAAO,MAAK,UAAS,MAAK,iBAAgB,UAAU,cAAc,SAAS,gBAAgB,oBAAC,kBAAA,EAAiB,MAAM,IAAG,GAAI,UAAA,OAAA,CAAI;AAAA,QAAA,EAAA,CAChI,EAAA,CACD;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGH;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/views/template-editor/template-name-modal/template-name-modal.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable unused-imports/no-unused-vars */\nimport React, { useEffect, useState } from 'react';\n\nimport Modal from '../../../components/modal/modal';\nimport Typography from '../../../components/typography/typography';\nimport Button from '../../../components/button/button';\n\nimport {\n\tBox,\n\tCircularProgress,\n\tDialogActions,\n\tDialogContent,\n\tDialogProps,\n\tDialogTitle,\n\tIconButton,\n} from '@mui/material';\nimport Close from '@mui/icons-material/Close';\n\nimport './template-name-modal.scss';\nimport { IEmail } from '../utils/types';\nimport { enqueueSnackbar } from 'notistack';\nimport { useNavigate } from 'react-router-dom';\nimport DynamicInput from '../../../components/form-control/form-builder/form-builder-element/text';\nimport { useForm } from 'react-hook-form';\nimport { patchV1TemplatesId, postV1Templates } from '../../../api-client/api.system-feature/api';\nimport * as Yup from 'yup';\nimport { yupResolver } from '@hookform/resolvers/yup';\n\ninterface TemplateNameModalProps {\n\tisOpen: boolean;\n\tsetIsOpen: (value: IEmail | null) => void;\n\tmodalProps?: DialogProps;\n\ttemplateRoutes: Record<string, any>;\n\tpayload: Record<string, any>;\n\tmode: 'add' | 'edit';\n\ttemplateData: Record<string, any> | null;\n}\n\nconst generateValidationSchema = () => {\n\treturn yupResolver(\n\t\tYup.object().shape({\n\t\t\ttemplate_name: Yup.object().shape({\n\t\t\t\tname: Yup.string().trim().required('Template name is required'),\n\t\t\t})\n\t\t})\n\t)\n}\n\nconst TemplateNameModal: React.FC<TemplateNameModalProps> = ({\n\tisOpen,\n\tsetIsOpen,\n\tmodalProps,\n\ttemplateRoutes,\n\tpayload,\n\tmode = 'add',\n\ttemplateData\n}) => {\n\tconst { handleSubmit, control, setValue } = useForm({ mode: 'all', resolver: generateValidationSchema() });\n\tconst navigate = useNavigate();\n\tconst [isSubmitting, setIsSubmitting] = useState<boolean>(false);\n\n\tconst handleModalClose = () => {\n\t\tsetIsOpen(null);\n\t};\n\n\tconst onSubmit = async (values: any) => {\n\t\tsetIsSubmitting(true);\n\t\ttry {\n\t\t\tconst { name = ''} = values?.template_name || {}\n\t\t\tpayload.name = name\n\t\t\tconst res = await (mode === 'edit' ? patchV1TemplatesId(payload) : postV1Templates(payload));\n\t\t\tif(res.status_code === 200) {\n\t\t\t\tenqueueSnackbar('Template saved successfully', { variant: 'success' });\n\t\t\t}\n\t\t\tnavigate(templateRoutes.LIST);\n\t\t\tsetIsSubmitting(false);\n\t\t} catch (error) {\n\t\t\tconst m = error?.message || 'Something went wrong'\n\t\t\tsetIsSubmitting(false);\n\t\t\tenqueueSnackbar(m, { variant: 'error' });\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tif(templateData && templateData?.name) {\n\t\t\tsetValue('template_name.name', templateData?.name)\n\t\t}\n\t}, [setValue, templateData])\n\n\treturn (\n\t\t<Modal\n\t\t\topen={isOpen}\n\t\t\tonClose={handleModalClose}\n\t\t\tmaxWidth='xs'\n\t\t\tfullWidth\n\t\t\t{...modalProps}>\n\t\t\t<DialogTitle className='companySelectionModal--DialogTitle'>\n\t\t\t\t<Typography type='s3' color='inherit' weight='medium'>\n\t\t\t\t\tTemplate Name\n\t\t\t\t</Typography>\n\t\t\t\t<IconButton onClick={handleModalClose} disabled={isSubmitting}>\n\t\t\t\t\t<Close fontSize='small' />\n\t\t\t\t</IconButton>\n\t\t\t</DialogTitle>\n\t\t\t<DialogContent className='companySelectionModal--DialogContents'>\n\t\t\t\t<form onSubmit={handleSubmit(onSubmit)} id='template_name'>\n\t\t\t\t\t<DynamicInput \n\t\t\t\t\t\tlabel={'Name'}\n\t\t\t\t\t\tname='name'\n\t\t\t\t\t\tplaceholder={'Enter Name'}\n\t\t\t\t\t\tfieldArrayName='template_name'\n\t\t\t\t\t\tformControl={control}\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t</form>\n\t\t\t</DialogContent>\n\t\t\t<DialogActions className='companySelectionModal--DialogAction'>\n\t\t\t\t<Box display='flex' gap={1.5}>\n\t\t\t\t\t<Button className='companySelectionModal--DialogAction--WhiteBtn' onClick={handleModalClose} disabled={isSubmitting}>Cancel</Button>\n\t\t\t\t\t<Button type='submit' form='template_name' disabled={isSubmitting} endIcon={isSubmitting && <CircularProgress size={15}/>}>Save</Button>\n\t\t\t\t</Box>\n\t\t\t</DialogActions>\n\t\t</Modal>\n\t);\n};\n\nexport default TemplateNameModal;\n"],"names":["isOpen","setIsOpen","modalProps","templateRoutes","payload","mode","templateData","handleSubmit","control","setValue","useForm","resolver","yupResolver","Yup","object","shape","template_name","name","string","trim","required","navigate","useNavigate","isSubmitting","setIsSubmitting","useState","handleModalClose","useEffect","jsxs","Modal","open","onClose","maxWidth","fullWidth","children","DialogTitle","className","jsx","Typography","type","color","weight","IconButton","onClick","disabled","Close","fontSize","DialogContent","onSubmit","async","values","patchV1TemplatesId","postV1Templates","status_code","enqueueSnackbar","variant","LIST","error","m","message","id","DynamicInput","label","placeholder","fieldArrayName","formControl","DialogActions","Box","display","gap","Button","form","endIcon","CircularProgress","size"],"mappings":"gpDAiD4D,EAC3DA,SACAC,YACAC,aACAC,iBACAC,UACAC,OAAO,MACPC,mBAEA,MAAMC,aAAEA,EAAAC,QAAcA,EAAAC,SAASA,GAAaC,EAAAA,QAAQ,CAAEL,KAAM,MAAOM,SAlB5DC,EAAAA,YACNC,EAAIC,SAASC,MAAM,CAClBC,cAAeH,EAAIC,SAASC,MAAM,CACjCE,KAAMJ,EAAIK,SAASC,OAAOC,SAAS,oCAgBhCC,EAAWC,EAAAA,eACVC,EAAcC,GAAmBC,EAAAA,UAAkB,GAEpDC,EAAmB,KACxBzB,EAAU,OA2BX,OANA0B,EAAAA,UAAU,KACNrB,UAAgBA,WAAcW,OAChCR,EAAS,2BAAsBH,WAAcW,OAE5C,CAACR,EAAUH,mBAGbsB,EAAAA,KAACC,EAAAA,MAAA,CACAC,KAAM9B,EACN+B,QAASL,EACTM,SAAS,KACTC,WAAS,KACL/B,EACJgC,SAAA;iBAAAN,KAACO,EAAAA,QAAA,CAAYC,UAAU,qCACtBF,SAAA;eAAAG,EAAAA,IAACC,EAAAA,YAAWC,KAAK,KAAKC,MAAM,UAAUC,OAAO,SAASP,SAAA;iBAGtDG,IAACK,EAAAA,QAAA,CAAWC,QAASjB,EAAkBkB,SAAUrB,EAChDW,wBAAAG,EAAAA,IAACQ,EAAAA,QAAA,CAAMC,SAAS;iBAGlBT,IAACU,EAAAA,QAAA,CAAcX,UAAU,wCACxBF,wBAAAG,EAAAA,IAAC,OAAA,CAAKW,SAAUzC,EAxCF0C,MAAOC,IACvB1B,GAAgB,GAChB,IACC,MAAMP,KAAEA,EAAO,KAAM,MAAAiC,OAAA,EAAAA,EAAQlC,gBAAiB,CAAA,EAC9CZ,EAAQa,KAAOA,EAEQ,aADK,SAATZ,EAAkB8C,EAAAA,mBAAmB/C,GAAWgD,kBAAgBhD,KAC5EiD,aACNC,EAAAA,gBAAgB,8BAA+B,CAAEC,QAAS,YAE3DlC,EAASlB,EAAeqD,MACxBhC,GAAgB,EACjB,OAASiC,GACR,MAAMC,SAAID,WAAOE,UAAW,uBAC5BnC,GAAgB,GAChB8B,EAAAA,gBAAgBI,EAAG,CAAEH,QAAS,SAC/B,IAyB0CK,GAAG,gBAC1C1B,wBAAAG,EAAAA,IAACwB,EAAAA,aAAA,CACAC,MAAO,OACP7C,KAAK,OACL8C,YAAa,aACbC,eAAe,gBACfC,YAAazD,EACbY,UAAQ;iBAIXiB,IAAC6B,EAAAA,SAAc9B,UAAU,sCACxBF,+BAACiC,EAAAA,QAAA,CAAIC,QAAQ,OAAOC,IAAK,IACxBnC,SAAA;eAAAG,EAAAA,IAACiC,EAAAA,QAAOlC,UAAU,gDAAgDO,QAASjB,EAAkBkB,SAAUrB,EAAcW,SAAA;eACrHG,EAAAA,IAACiC,EAAAA,OAAA,CAAO/B,KAAK,SAASgC,KAAK,gBAAgB3B,SAAUrB,EAAciD,QAASjD,kBAAgBc,EAAAA,IAACoC,EAAAA,QAAA,CAAiBC,KAAM,KAAOxC,SAAA"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/views/template-editor/template-name-modal/template-name-modal.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/* eslint-disable unused-imports/no-unused-vars */\r\nimport React, { useEffect, useState } from 'react';\r\n\r\nimport Modal from '../../../components/modal/modal';\r\nimport Typography from '../../../components/typography/typography';\r\nimport Button from '../../../components/button/button';\r\n\r\nimport {\r\n\tBox,\r\n\tCircularProgress,\r\n\tDialogActions,\r\n\tDialogContent,\r\n\tDialogProps,\r\n\tDialogTitle,\r\n\tIconButton,\r\n} from '@mui/material';\r\nimport Close from '@mui/icons-material/Close';\r\n\r\nimport './template-name-modal.scss';\r\nimport { IEmail } from '../utils/types';\r\nimport { enqueueSnackbar } from 'notistack';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport DynamicInput from '../../../components/form-control/form-builder/form-builder-element/text';\r\nimport { useForm } from 'react-hook-form';\r\nimport { patchV1TemplatesId, postV1Templates } from '../../../api-client/api.system-feature/api';\r\nimport * as Yup from 'yup';\r\nimport { yupResolver } from '@hookform/resolvers/yup';\r\n\r\ninterface TemplateNameModalProps {\r\n\tisOpen: boolean;\r\n\tsetIsOpen: (value: IEmail | null) => void;\r\n\tmodalProps?: DialogProps;\r\n\ttemplateRoutes: Record<string, any>;\r\n\tpayload: Record<string, any>;\r\n\tmode: 'add' | 'edit';\r\n\ttemplateData: Record<string, any> | null;\r\n}\r\n\r\nconst generateValidationSchema = () => {\r\n\treturn yupResolver(\r\n\t\tYup.object().shape({\r\n\t\t\ttemplate_name: Yup.object().shape({\r\n\t\t\t\tname: Yup.string().trim().required('Template name is required'),\r\n\t\t\t})\r\n\t\t})\r\n\t)\r\n}\r\n\r\nconst TemplateNameModal: React.FC<TemplateNameModalProps> = ({\r\n\tisOpen,\r\n\tsetIsOpen,\r\n\tmodalProps,\r\n\ttemplateRoutes,\r\n\tpayload,\r\n\tmode = 'add',\r\n\ttemplateData\r\n}) => {\r\n\tconst { handleSubmit, control, setValue } = useForm({ mode: 'all', resolver: generateValidationSchema() });\r\n\tconst navigate = useNavigate();\r\n\tconst [isSubmitting, setIsSubmitting] = useState<boolean>(false);\r\n\r\n\tconst handleModalClose = () => {\r\n\t\tsetIsOpen(null);\r\n\t};\r\n\r\n\tconst onSubmit = async (values: any) => {\r\n\t\tsetIsSubmitting(true);\r\n\t\ttry {\r\n\t\t\tconst { name = ''} = values?.template_name || {}\r\n\t\t\tpayload.name = name\r\n\t\t\tconst res = await (mode === 'edit' ? patchV1TemplatesId(payload) : postV1Templates(payload));\r\n\t\t\tif(res.status_code === 200) {\r\n\t\t\t\tenqueueSnackbar('Template saved successfully', { variant: 'success' });\r\n\t\t\t}\r\n\t\t\tnavigate(templateRoutes.LIST);\r\n\t\t\tsetIsSubmitting(false);\r\n\t\t} catch (error) {\r\n\t\t\tconst m = error?.message || 'Something went wrong'\r\n\t\t\tsetIsSubmitting(false);\r\n\t\t\tenqueueSnackbar(m, { variant: 'error' });\r\n\t\t}\r\n\t}\r\n\r\n\tuseEffect(() => {\r\n\t\tif(templateData && templateData?.name) {\r\n\t\t\tsetValue('template_name.name', templateData?.name)\r\n\t\t}\r\n\t}, [setValue, templateData])\r\n\r\n\treturn (\r\n\t\t<Modal\r\n\t\t\topen={isOpen}\r\n\t\t\tonClose={handleModalClose}\r\n\t\t\tmaxWidth='xs'\r\n\t\t\tfullWidth\r\n\t\t\t{...modalProps}>\r\n\t\t\t<DialogTitle className='companySelectionModal--DialogTitle'>\r\n\t\t\t\t<Typography type='s3' color='inherit' weight='medium'>\r\n\t\t\t\t\tTemplate Name\r\n\t\t\t\t</Typography>\r\n\t\t\t\t<IconButton onClick={handleModalClose} disabled={isSubmitting}>\r\n\t\t\t\t\t<Close fontSize='small' />\r\n\t\t\t\t</IconButton>\r\n\t\t\t</DialogTitle>\r\n\t\t\t<DialogContent className='companySelectionModal--DialogContents'>\r\n\t\t\t\t<form onSubmit={handleSubmit(onSubmit)} id='template_name'>\r\n\t\t\t\t\t<DynamicInput \r\n\t\t\t\t\t\tlabel={'Name'}\r\n\t\t\t\t\t\tname='name'\r\n\t\t\t\t\t\tplaceholder={'Enter Name'}\r\n\t\t\t\t\t\tfieldArrayName='template_name'\r\n\t\t\t\t\t\tformControl={control}\r\n\t\t\t\t\t\trequired\r\n\t\t\t\t\t/>\r\n\t\t\t\t</form>\r\n\t\t\t</DialogContent>\r\n\t\t\t<DialogActions className='companySelectionModal--DialogAction'>\r\n\t\t\t\t<Box display='flex' gap={1.5}>\r\n\t\t\t\t\t<Button className='companySelectionModal--DialogAction--WhiteBtn' onClick={handleModalClose} disabled={isSubmitting}>Cancel</Button>\r\n\t\t\t\t\t<Button type='submit' form='template_name' disabled={isSubmitting} endIcon={isSubmitting && <CircularProgress size={15}/>}>Save</Button>\r\n\t\t\t\t</Box>\r\n\t\t\t</DialogActions>\r\n\t\t</Modal>\r\n\t);\r\n};\r\n\r\nexport default TemplateNameModal;\r\n"],"names":["isOpen","setIsOpen","modalProps","templateRoutes","payload","mode","templateData","handleSubmit","control","setValue","useForm","resolver","yupResolver","Yup","object","shape","template_name","name","string","trim","required","navigate","useNavigate","isSubmitting","setIsSubmitting","useState","handleModalClose","useEffect","jsxs","Modal","open","onClose","maxWidth","fullWidth","children","DialogTitle","className","jsx","Typography","type","color","weight","IconButton","onClick","disabled","Close","fontSize","DialogContent","onSubmit","async","values","patchV1TemplatesId","postV1Templates","status_code","enqueueSnackbar","variant","LIST","error","m","message","id","DynamicInput","label","placeholder","fieldArrayName","formControl","DialogActions","Box","display","gap","Button","form","endIcon","CircularProgress","size"],"mappings":"gpDAiD4D,EAC3DA,SACAC,YACAC,aACAC,iBACAC,UACAC,OAAO,MACPC,mBAEA,MAAMC,aAAEA,EAAAC,QAAcA,EAAAC,SAASA,GAAaC,EAAAA,QAAQ,CAAEL,KAAM,MAAOM,SAlB5DC,EAAAA,YACNC,EAAIC,SAASC,MAAM,CAClBC,cAAeH,EAAIC,SAASC,MAAM,CACjCE,KAAMJ,EAAIK,SAASC,OAAOC,SAAS,oCAgBhCC,EAAWC,EAAAA,eACVC,EAAcC,GAAmBC,EAAAA,UAAkB,GAEpDC,EAAmB,KACxBzB,EAAU,OA2BX,OANA0B,EAAAA,UAAU,KACNrB,UAAgBA,WAAcW,OAChCR,EAAS,2BAAsBH,WAAcW,OAE5C,CAACR,EAAUH,mBAGbsB,EAAAA,KAACC,EAAAA,MAAA,CACAC,KAAM9B,EACN+B,QAASL,EACTM,SAAS,KACTC,WAAS,KACL/B,EACJgC,SAAA;iBAAAN,KAACO,EAAAA,QAAA,CAAYC,UAAU,qCACtBF,SAAA;eAAAG,EAAAA,IAACC,EAAAA,YAAWC,KAAK,KAAKC,MAAM,UAAUC,OAAO,SAASP,SAAA;iBAGtDG,IAACK,EAAAA,QAAA,CAAWC,QAASjB,EAAkBkB,SAAUrB,EAChDW,wBAAAG,EAAAA,IAACQ,EAAAA,QAAA,CAAMC,SAAS;iBAGlBT,IAACU,EAAAA,QAAA,CAAcX,UAAU,wCACxBF,wBAAAG,EAAAA,IAAC,OAAA,CAAKW,SAAUzC,EAxCF0C,MAAOC,IACvB1B,GAAgB,GAChB,IACC,MAAMP,KAAEA,EAAO,KAAM,MAAAiC,OAAA,EAAAA,EAAQlC,gBAAiB,CAAA,EAC9CZ,EAAQa,KAAOA,EAEQ,aADK,SAATZ,EAAkB8C,EAAAA,mBAAmB/C,GAAWgD,kBAAgBhD,KAC5EiD,aACNC,EAAAA,gBAAgB,8BAA+B,CAAEC,QAAS,YAE3DlC,EAASlB,EAAeqD,MACxBhC,GAAgB,EACjB,OAASiC,GACR,MAAMC,SAAID,WAAOE,UAAW,uBAC5BnC,GAAgB,GAChB8B,EAAAA,gBAAgBI,EAAG,CAAEH,QAAS,SAC/B,IAyB0CK,GAAG,gBAC1C1B,wBAAAG,EAAAA,IAACwB,EAAAA,aAAA,CACAC,MAAO,OACP7C,KAAK,OACL8C,YAAa,aACbC,eAAe,gBACfC,YAAazD,EACbY,UAAQ;iBAIXiB,IAAC6B,EAAAA,SAAc9B,UAAU,sCACxBF,+BAACiC,EAAAA,QAAA,CAAIC,QAAQ,OAAOC,IAAK,IACxBnC,SAAA;eAAAG,EAAAA,IAACiC,EAAAA,QAAOlC,UAAU,gDAAgDO,QAASjB,EAAkBkB,SAAUrB,EAAcW,SAAA;eACrHG,EAAAA,IAACiC,EAAAA,OAAA,CAAO/B,KAAK,SAASgC,KAAK,gBAAgB3B,SAAUrB,EAAciD,QAASjD,kBAAgBc,EAAAA,IAACoC,EAAAA,QAAA,CAAiBC,KAAM,KAAOxC,SAAA"}
@@ -24,7 +24,7 @@ import CompanySelectionModal from "../company-selection-modal/company-selection-
24
24
  import { setBaseUrl } from "../../../api-client/api.rbac/api/index.esm.js";
25
25
  /* empty css */
26
26
  import MenuItem from "../../../node_modules/@mui/material/MenuItem/MenuItem/index.esm.js";
27
- setBaseUrl(`${"http://127.0.0.1:4011"}/rbac`);
27
+ setBaseUrl(`${"https://apidev.erpforce.co"}/rbac`);
28
28
  const Templates = ({ type, module, modulePath }) => {
29
29
  const { t } = useTranslation();
30
30
  const {
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../../../../src/views/template-editor/templates.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable unused-imports/no-unused-vars */\nimport { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport ActionBar from '../../components/action-bar/action-bar';\nimport viewTypes from '../../constants/action-bar';\nimport MaterialTable, { MaterialTableColumnProps } from '../../components/material-table/material-table';\nimport Typography from '../../components/typography/typography';\nimport Fallback from '../../components/fallback/fallback';\nimport Menu from '../../components/menu/menu';\nimport Footer from '../../components/footer/footer';\nimport useDeepMemo from '../../hooks/use-deep-memo';\nimport { PageState } from '../../contexts/page-context';\nimport { usePages } from '../../hooks/use-pages';\nimport { transformTableColumns } from '../../utils/common-utility';\nimport { appendConditionSafely, defaultCurrencySymbol, getToken } from '../../utils/common';\nimport logo from '../../assets/images';\nimport { IPaginationModel } from '../../@types/pagination-model';\nimport { fetchApi } from '../../utils/api';\n\nimport { MenuItem } from '@mui/material';\n\n// import GridCard from './grid-view/grid-view';\nimport { useTranslation } from 'react-i18next';\nimport { enqueueSnackbar } from 'notistack';\n\nimport { templateRoutes } from './utils/common';\nimport { IEmail, ITemplateProps, Pagination } from './utils/types';\nimport { useNavigate } from 'react-router-dom';\n\nimport { usePermissions } from '../../hooks/use-permissions';\nimport { getV1Subjects } from '../../api-client/api.system-feature/api';\nimport TemplateModal from './template-modal/template-modal';\nimport CompanySelectionModal from './company-selection-modal/company-selection-modal';\nimport { setBaseUrl } from '../../api-client/api.rbac/api';\n\nimport './templates.scss';\n\nsetBaseUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\n\n\ninterface ActionData {\n\tlabel: string;\n\tposition: number;\n}\n\nconst Templates: React.FC<ITemplateProps> = ({ type, module, modulePath }) => {\n const { t } = useTranslation();\n\tconst {\n\t\tactivePage: aPage,\n\t\tupdatePageInfo,\n\t\tschemaFields,\n\t\tgeneratedColumns,\n\t\tupdateGeneratedColumns,\n\t\t// error: pageError\n\t} = usePages();\n\tconst activePage = useDeepMemo<PageState>(aPage);\n\t/* LOCAL STATES */\n\tconst [actionAnchorEl, setActionAnchorEl] = useState<null | HTMLElement>(null);\n const viewEmails = localStorage.getItem('email-subjects-view');\n const [actionBarData, setActionBarData] = useState<ActionData[]>(viewEmails ? JSON.parse(viewEmails) : [{ label: 'Table', position: 0 }]);\n\n const [actionBarActiveTab, setActionBarActiveTab] = useState<string>(viewTypes.TABLE);\n\tconst [paginationModel, setPaginationModel] = useState<Pagination>({ pageNo: 1, limit: 10, totalCount: 0, skip: 0 }); \n\tconst [rows, setRows] = useState<any[]>([]); \n\tconst [isFetching, setIsFetching] = useState<boolean>(false); \n\tconst [selectedRow, setSelectedRow] = useState([]);\n\tconst [showTemplateModal, setShowTemplateModal] = useState<IEmail | null>(null);\n\tconst [showCompanySelectionModal, setShowCompanySelectionModal] = useState<IEmail | null>(null);\n\tconst [companies, setCompanies] = useState<Record<string, any>[]>([]);\n\t/* VARS */\n\tconst navigate = useNavigate();\n\tconst { pageNo, limit: pLimit, totalCount } = paginationModel;\n\tconst limit = activePage.page_size || pLimit;\n\tconst total = limit ? Math.ceil(totalCount / limit) : 0;\n\tconst skip = limit * (pageNo - 1);\n\tconst permissions = usePermissions();\n\tconst ROUTES = templateRoutes(modulePath, type);\n\n\tconst SubjectPermissions = permissions?.Subjects || {};\n\tconst ConditionsImport = permissions?.RentalTerms?.ConditionsImport || {};\n\t\n\tconst {\n\t\tcanAdd = false,\n\t\tcanEdit = false,\n\t\tcanDelete = false,\n\t} = SubjectPermissions;\n\n\tconst { canAdd: canImport = false } = ConditionsImport;\n\n\tconst handleNewEmail = (email) => {\n\t\tif(!companies?.length) {\n\t\t\tenqueueSnackbar('Please add a company first', { variant: 'error' })\n\t\t\treturn\n\t\t}\n\n\t\tif(companies?.length > 1) {\n\t\t\tsetShowCompanySelectionModal(email)\n\t\t} else{\n\t\t\tnavigate(ROUTES.ADD_TEMPLATE(email._id), { state: { company_id: companies[0]?.id || companies[0]?.value }})\n\t\t}\n\t};\n \n\tconst rowActionMenu = [\n\t\t{\n\t\t\tlabel: 'New Template',\n\t\t\thandleAction: (email: IEmail) => handleNewEmail(email),\n\t\t\tdisabled: (row: any) => !canEdit\n\t\t},\n\t\t{\n\t\t\tlabel: 'Add From Template',\n\t\t\thandleAction: (email: IEmail) => setShowTemplateModal(email),\n\t\t\tdisabled: (row: any) => !canAdd\n\t\t}\n\t];\n\n\t/* LOCAL FUNCTIONS */\n\tconst getEmails = useCallback(\n\t\tasync () => {\n\t\t\tconst { sort, filterQueryString, search } = activePage;\n\t\t\tconst searchFiters = search ? `&subject.like=${search}` : '';\n\t\t\tconst types = [];\n\t\t\ttypes.push(type)\n\t\t\tif(type == \"email\"){\n\t\t\t\ttypes.push(\"approval_email\")\n\t\t\t}\n\t\t\tconst uFilters = appendConditionSafely(filterQueryString, `&type.in=[${types.join(\",\")}]&module.eq=${module}${searchFiters}`);\n\n\t\t\tconst response = await getV1Subjects({\n\t\t\t\t...getToken(),\n\t\t\t\tskip,\n\t\t\t\tlimit,\n\t\t\t\t// search,\n\t\t\t\t...(sort && { order: `${sort.id}:${sort.desc ? -1 : 1}` }),\n\t\t\t\t...(uFilters && uFilters !== '()' && { filters: uFilters })\n\t\t\t});\n\n\t\t\tsetRows(response?.data || []);\n\t\t\tsetPaginationModel({...paginationModel, ...(response?.pagination ||{})});\n\t\t},\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[\n\t\t\tlimit,\n\t\t\tskip,\n\t\t\tactivePage?.search,\n\t\t\tactivePage?.filterQueryString,\n\t\t\tactivePage?.sort\n\t\t]\n\t);\n\n\tconst getCopmanies = async () => {\n\t\t\tconst companiesArr = await fetchApi({apiKey: 'company', filters: { skip: 0, limit: 100, order: \"id:1\" }});\n\t\t\tsetCompanies(companiesArr?.data || []);\n\t\t}\n\n\tconst tableRows = useMemo(() => rows || [], [rows]);\n\n\tconst tableColumns = useMemo(\n\t\t() =>\n\t\t\ttransformTableColumns({\n\t\t\t\tcolumns: generatedColumns.columns,\n\t\t\t\tcurrencySymbol: (row) =>\n\t\t\t\t\trow.original?.currency_data?.symbol || defaultCurrencySymbol(),\n\t\t\t\ttranslationFn: t,\n\t\t\t\tenableFooter: true,\n\t\t\t\t// redirectionLink: ROUTES.VIEW,\n\t\t\t\t// redirectionLinkState: (row) => ({ termsAndCondition: row.original }),\n\t\t\t\trows: tableRows,\n\t\t\t\tstatusClasses: ``,\n\t\t\t}),\n\t\t[tableRows, t, generatedColumns.columns]\n\t);\n\n\tconst handlePaginationModel = (model: IPaginationModel) => {\n\t\tif (activePage.page_size != model?.limit) {\n\t\t\tupdatePageInfo({ page_size: model.limit });\n\t\t}\n\t\tsetPaginationModel(model);\n\t};\n\n\tconst cleanUp = () => {\n\t\tconst pModel = { pageNo: 1, limit: 10, totalCount: 0 };\n\t\tsetPaginationModel(pModel);\n\t};\n\n\t/* USE EFFECTS */\n\tuseEffect(() => {\n\t\tgetEmails();\n\t}, [getEmails]);\n\t\n\n\tuseEffect(() => {\n\t\tgetCopmanies();\n\t\treturn cleanUp;\n\t}, []);\n useEffect(() => {\n\t\tif (actionBarData?.length) {\n\t\t\tlocalStorage.setItem('email-subjects-view', JSON.stringify(actionBarData));\n\t\t}\n\t}, [actionBarData]);\n\n\t/* JSX STRUCTURE STARTED */\n\treturn (\n\t\t<section className='templates'>\n\t\t\t<ActionBar\n\t\t\t\ttitle={type === 'email' ? 'Emails' : 'PDFs'}\n\t\t\t\tdata={actionBarData}\n\t\t\t\tsetData={setActionBarData}\n\t\t\t\tactive={actionBarActiveTab}\n\t\t\t\tsetActive={setActionBarActiveTab}\n\t\t\t\thandleSearch={(search) => {\n\t\t\t\t\tupdatePageInfo({ search });\n\t\t\t\t\tsetPaginationModel({ ...paginationModel, pageNo: 1 });\n\t\t\t\t}}\n\t\t\t\tdisabledViews={['Kanban', 'Calendar', 'Gantt',viewTypes.GRID]}\n\t\t\t\tfields={schemaFields}\n\t\t\t\tselectedIds={selectedRow}\n\t\t\t\tbutton={false}\n\t\t\t/>\n\t\t\t\t\t{actionBarActiveTab === viewTypes.TABLE && (\n\t\t\t\t\t\t<MaterialTable\n\t\t\t\t\t\t\trows={tableRows || []}\n\t\t\t\t\t\t\tcolumns={tableColumns}\n\t\t\t\t\t\t\tpaginationModel={paginationModel}\n\t\t\t\t\t\t\ttotalPages={total}\n\t\t\t\t\t\t\tcolumnOrder={['mrt-row-select', ...generatedColumns.orderKeys]}\n\t\t\t\t\t\t\tstates={{ isLoading: isFetching }}\n\t\t\t\t\t\t\tonSortingChange={(sort) => updatePageInfo({ sort })}\n\t\t\t\t\t\t\tenableColumnDragging={false}\n\t\t\t\t\t\t\tenableEditing={false}\n\t\t\t\t\t\t\tonSelectRow={(r) =>\n\t\t\t\t\t\t\t\tsetSelectedRow(r.map((ele) => ele.original.id))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tenableAddCustomField={false}\n\t\t\t\t\t\t\trowActionMenu={rowActionMenu}\n\t\t\t\t\t\t\tisResetRow={false}\n\t\t\t\t\t\t\thandleColumnOrdering={(colOrder) =>\n\t\t\t\t\t\t\t\tupdateGeneratedColumns({ orderKeys: colOrder.slice(1) })\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonColumnVisibility={(columns: MaterialTableColumnProps[]) =>\n\t\t\t\t\t\t\t\tupdateGeneratedColumns({ columns: columns })\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{actionBarActiveTab === viewTypes.GRID && (\n\t\t\t\t\t\t<GridCard\n\t\t\t\t\t\t\tdata={tableRows}\n\t\t\t\t\t\t\trowActionMenu={rowActionMenu}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{!actionBarActiveTab && (\n\t\t\t\t\t\t<Fallback\n\t\t\t\t\t\t\theading={t('rental.settings.termsAndConditions.title')}\n\t\t\t\t\t\t\tsubHeading='No data available'\n\t\t\t\t\t\t\ticon={<img src={logo.invoiceFallback} />}>\n\t\t\t\t\t\t</Fallback>\n\t\t\t\t\t)}\n\n\t\t\t\t\t<Footer\n\t\t\t\t\t\ttotal={total}\n\t\t\t\t\t\tpaginationModel={{\n\t\t\t\t\t\t\t...paginationModel,\n\t\t\t\t\t\t\tlimit: activePage.page_size\n\t\t\t\t\t\t}}\n\t\t\t\t\t\thandlePaginationModel={handlePaginationModel}\n\t\t\t\t\t\tresource=''\n\t\t\t\t\t/>\n\n\t\t\t\t\t{/* Action Menu */}\n\t\t\t\t\t<Menu\n\t\t\t\t\t\tanchorEl={actionAnchorEl}\n\t\t\t\t\t\topen={Boolean(actionAnchorEl)}\n\t\t\t\t\t\tonClose={() => setActionAnchorEl(null)}>\n\t\t\t\t\t\t<MenuItem>\n\t\t\t\t\t\t\t<Typography type='s4' color='theme.secondary.1000'>\n\t\t\t\t\t\t\t\t{t('common.upload')}\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t<MenuItem>\n\t\t\t\t\t\t\t<Typography type='s4' color='theme.secondary.1000'>\n\t\t\t\t\t\t\t\t{t('common.print')}\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t</Menu>\n\t\t\t\t\t{showTemplateModal && (\n\t\t\t\t\t\t<TemplateModal \n\t\t\t\t\t\t\temail={showTemplateModal} \n\t\t\t\t\t\t\tonClose={() => setShowTemplateModal(null)} \n\t\t\t\t\t\t\topen={showTemplateModal !== null} \n\t\t\t\t\t\t\tcompanies={companies}\n\t\t\t\t\t\t\ttemplateRoutes={ROUTES}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{showCompanySelectionModal && (\n\t\t\t\t\t\t<CompanySelectionModal \n\t\t\t\t\t\t\tisOpen={showCompanySelectionModal !== null} \n\t\t\t\t\t\t\tsetIsOpen={setShowCompanySelectionModal} \n\t\t\t\t\t\t\tcompanies={companies} \n\t\t\t\t\t\t\temail={showCompanySelectionModal}\n\t\t\t\t\t\t\ttemplateRoutes={ROUTES}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t</section>\n\t);\n};\n\nexport default Templates;\n"],"names":["logo"],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","sources":["../../../../src/views/template-editor/templates.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\r\n/* eslint-disable react-hooks/exhaustive-deps */\r\n/* eslint-disable unused-imports/no-unused-vars */\r\nimport { useCallback, useEffect, useMemo, useState } from 'react';\r\n\r\nimport ActionBar from '../../components/action-bar/action-bar';\r\nimport viewTypes from '../../constants/action-bar';\r\nimport MaterialTable, { MaterialTableColumnProps } from '../../components/material-table/material-table';\r\nimport Typography from '../../components/typography/typography';\r\nimport Fallback from '../../components/fallback/fallback';\r\nimport Menu from '../../components/menu/menu';\r\nimport Footer from '../../components/footer/footer';\r\nimport useDeepMemo from '../../hooks/use-deep-memo';\r\nimport { PageState } from '../../contexts/page-context';\r\nimport { usePages } from '../../hooks/use-pages';\r\nimport { transformTableColumns } from '../../utils/common-utility';\r\nimport { appendConditionSafely, defaultCurrencySymbol, getToken } from '../../utils/common';\r\nimport logo from '../../assets/images';\r\nimport { IPaginationModel } from '../../@types/pagination-model';\r\nimport { fetchApi } from '../../utils/api';\r\n\r\nimport { MenuItem } from '@mui/material';\r\n\r\n// import GridCard from './grid-view/grid-view';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { enqueueSnackbar } from 'notistack';\r\n\r\nimport { templateRoutes } from './utils/common';\r\nimport { IEmail, ITemplateProps, Pagination } from './utils/types';\r\nimport { useNavigate } from 'react-router-dom';\r\n\r\nimport { usePermissions } from '../../hooks/use-permissions';\r\nimport { getV1Subjects } from '../../api-client/api.system-feature/api';\r\nimport TemplateModal from './template-modal/template-modal';\r\nimport CompanySelectionModal from './company-selection-modal/company-selection-modal';\r\nimport { setBaseUrl } from '../../api-client/api.rbac/api';\r\n\r\nimport './templates.scss';\r\n\r\nsetBaseUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\r\n\r\n\r\ninterface ActionData {\r\n\tlabel: string;\r\n\tposition: number;\r\n}\r\n\r\nconst Templates: React.FC<ITemplateProps> = ({ type, module, modulePath }) => {\r\n const { t } = useTranslation();\r\n\tconst {\r\n\t\tactivePage: aPage,\r\n\t\tupdatePageInfo,\r\n\t\tschemaFields,\r\n\t\tgeneratedColumns,\r\n\t\tupdateGeneratedColumns,\r\n\t\t// error: pageError\r\n\t} = usePages();\r\n\tconst activePage = useDeepMemo<PageState>(aPage);\r\n\t/* LOCAL STATES */\r\n\tconst [actionAnchorEl, setActionAnchorEl] = useState<null | HTMLElement>(null);\r\n const viewEmails = localStorage.getItem('email-subjects-view');\r\n const [actionBarData, setActionBarData] = useState<ActionData[]>(viewEmails ? JSON.parse(viewEmails) : [{ label: 'Table', position: 0 }]);\r\n\r\n const [actionBarActiveTab, setActionBarActiveTab] = useState<string>(viewTypes.TABLE);\r\n\tconst [paginationModel, setPaginationModel] = useState<Pagination>({ pageNo: 1, limit: 10, totalCount: 0, skip: 0 }); \r\n\tconst [rows, setRows] = useState<any[]>([]); \r\n\tconst [isFetching, setIsFetching] = useState<boolean>(false); \r\n\tconst [selectedRow, setSelectedRow] = useState([]);\r\n\tconst [showTemplateModal, setShowTemplateModal] = useState<IEmail | null>(null);\r\n\tconst [showCompanySelectionModal, setShowCompanySelectionModal] = useState<IEmail | null>(null);\r\n\tconst [companies, setCompanies] = useState<Record<string, any>[]>([]);\r\n\t/* VARS */\r\n\tconst navigate = useNavigate();\r\n\tconst { pageNo, limit: pLimit, totalCount } = paginationModel;\r\n\tconst limit = activePage.page_size || pLimit;\r\n\tconst total = limit ? Math.ceil(totalCount / limit) : 0;\r\n\tconst skip = limit * (pageNo - 1);\r\n\tconst permissions = usePermissions();\r\n\tconst ROUTES = templateRoutes(modulePath, type);\r\n\r\n\tconst SubjectPermissions = permissions?.Subjects || {};\r\n\tconst ConditionsImport = permissions?.RentalTerms?.ConditionsImport || {};\r\n\t\r\n\tconst {\r\n\t\tcanAdd = false,\r\n\t\tcanEdit = false,\r\n\t\tcanDelete = false,\r\n\t} = SubjectPermissions;\r\n\r\n\tconst { canAdd: canImport = false } = ConditionsImport;\r\n\r\n\tconst handleNewEmail = (email) => {\r\n\t\tif(!companies?.length) {\r\n\t\t\tenqueueSnackbar('Please add a company first', { variant: 'error' })\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif(companies?.length > 1) {\r\n\t\t\tsetShowCompanySelectionModal(email)\r\n\t\t} else{\r\n\t\t\tnavigate(ROUTES.ADD_TEMPLATE(email._id), { state: { company_id: companies[0]?.id || companies[0]?.value }})\r\n\t\t}\r\n\t};\r\n \r\n\tconst rowActionMenu = [\r\n\t\t{\r\n\t\t\tlabel: 'New Template',\r\n\t\t\thandleAction: (email: IEmail) => handleNewEmail(email),\r\n\t\t\tdisabled: (row: any) => !canEdit\r\n\t\t},\r\n\t\t{\r\n\t\t\tlabel: 'Add From Template',\r\n\t\t\thandleAction: (email: IEmail) => setShowTemplateModal(email),\r\n\t\t\tdisabled: (row: any) => !canAdd\r\n\t\t}\r\n\t];\r\n\r\n\t/* LOCAL FUNCTIONS */\r\n\tconst getEmails = useCallback(\r\n\t\tasync () => {\r\n\t\t\tconst { sort, filterQueryString, search } = activePage;\r\n\t\t\tconst searchFiters = search ? `&subject.like=${search}` : '';\r\n\t\t\tconst types = [];\r\n\t\t\ttypes.push(type)\r\n\t\t\tif(type == \"email\"){\r\n\t\t\t\ttypes.push(\"approval_email\")\r\n\t\t\t}\r\n\t\t\tconst uFilters = appendConditionSafely(filterQueryString, `&type.in=[${types.join(\",\")}]&module.eq=${module}${searchFiters}`);\r\n\r\n\t\t\tconst response = await getV1Subjects({\r\n\t\t\t\t...getToken(),\r\n\t\t\t\tskip,\r\n\t\t\t\tlimit,\r\n\t\t\t\t// search,\r\n\t\t\t\t...(sort && { order: `${sort.id}:${sort.desc ? -1 : 1}` }),\r\n\t\t\t\t...(uFilters && uFilters !== '()' && { filters: uFilters })\r\n\t\t\t});\r\n\r\n\t\t\tsetRows(response?.data || []);\r\n\t\t\tsetPaginationModel({...paginationModel, ...(response?.pagination ||{})});\r\n\t\t},\r\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\r\n\t\t[\r\n\t\t\tlimit,\r\n\t\t\tskip,\r\n\t\t\tactivePage?.search,\r\n\t\t\tactivePage?.filterQueryString,\r\n\t\t\tactivePage?.sort\r\n\t\t]\r\n\t);\r\n\r\n\tconst getCopmanies = async () => {\r\n\t\t\tconst companiesArr = await fetchApi({apiKey: 'company', filters: { skip: 0, limit: 100, order: \"id:1\" }});\r\n\t\t\tsetCompanies(companiesArr?.data || []);\r\n\t\t}\r\n\r\n\tconst tableRows = useMemo(() => rows || [], [rows]);\r\n\r\n\tconst tableColumns = useMemo(\r\n\t\t() =>\r\n\t\t\ttransformTableColumns({\r\n\t\t\t\tcolumns: generatedColumns.columns,\r\n\t\t\t\tcurrencySymbol: (row) =>\r\n\t\t\t\t\trow.original?.currency_data?.symbol || defaultCurrencySymbol(),\r\n\t\t\t\ttranslationFn: t,\r\n\t\t\t\tenableFooter: true,\r\n\t\t\t\t// redirectionLink: ROUTES.VIEW,\r\n\t\t\t\t// redirectionLinkState: (row) => ({ termsAndCondition: row.original }),\r\n\t\t\t\trows: tableRows,\r\n\t\t\t\tstatusClasses: ``,\r\n\t\t\t}),\r\n\t\t[tableRows, t, generatedColumns.columns]\r\n\t);\r\n\r\n\tconst handlePaginationModel = (model: IPaginationModel) => {\r\n\t\tif (activePage.page_size != model?.limit) {\r\n\t\t\tupdatePageInfo({ page_size: model.limit });\r\n\t\t}\r\n\t\tsetPaginationModel(model);\r\n\t};\r\n\r\n\tconst cleanUp = () => {\r\n\t\tconst pModel = { pageNo: 1, limit: 10, totalCount: 0 };\r\n\t\tsetPaginationModel(pModel);\r\n\t};\r\n\r\n\t/* USE EFFECTS */\r\n\tuseEffect(() => {\r\n\t\tgetEmails();\r\n\t}, [getEmails]);\r\n\t\r\n\r\n\tuseEffect(() => {\r\n\t\tgetCopmanies();\r\n\t\treturn cleanUp;\r\n\t}, []);\r\n useEffect(() => {\r\n\t\tif (actionBarData?.length) {\r\n\t\t\tlocalStorage.setItem('email-subjects-view', JSON.stringify(actionBarData));\r\n\t\t}\r\n\t}, [actionBarData]);\r\n\r\n\t/* JSX STRUCTURE STARTED */\r\n\treturn (\r\n\t\t<section className='templates'>\r\n\t\t\t<ActionBar\r\n\t\t\t\ttitle={type === 'email' ? 'Emails' : 'PDFs'}\r\n\t\t\t\tdata={actionBarData}\r\n\t\t\t\tsetData={setActionBarData}\r\n\t\t\t\tactive={actionBarActiveTab}\r\n\t\t\t\tsetActive={setActionBarActiveTab}\r\n\t\t\t\thandleSearch={(search) => {\r\n\t\t\t\t\tupdatePageInfo({ search });\r\n\t\t\t\t\tsetPaginationModel({ ...paginationModel, pageNo: 1 });\r\n\t\t\t\t}}\r\n\t\t\t\tdisabledViews={['Kanban', 'Calendar', 'Gantt',viewTypes.GRID]}\r\n\t\t\t\tfields={schemaFields}\r\n\t\t\t\tselectedIds={selectedRow}\r\n\t\t\t\tbutton={false}\r\n\t\t\t/>\r\n\t\t\t\t\t{actionBarActiveTab === viewTypes.TABLE && (\r\n\t\t\t\t\t\t<MaterialTable\r\n\t\t\t\t\t\t\trows={tableRows || []}\r\n\t\t\t\t\t\t\tcolumns={tableColumns}\r\n\t\t\t\t\t\t\tpaginationModel={paginationModel}\r\n\t\t\t\t\t\t\ttotalPages={total}\r\n\t\t\t\t\t\t\tcolumnOrder={['mrt-row-select', ...generatedColumns.orderKeys]}\r\n\t\t\t\t\t\t\tstates={{ isLoading: isFetching }}\r\n\t\t\t\t\t\t\tonSortingChange={(sort) => updatePageInfo({ sort })}\r\n\t\t\t\t\t\t\tenableColumnDragging={false}\r\n\t\t\t\t\t\t\tenableEditing={false}\r\n\t\t\t\t\t\t\tonSelectRow={(r) =>\r\n\t\t\t\t\t\t\t\tsetSelectedRow(r.map((ele) => ele.original.id))\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tenableAddCustomField={false}\r\n\t\t\t\t\t\t\trowActionMenu={rowActionMenu}\r\n\t\t\t\t\t\t\tisResetRow={false}\r\n\t\t\t\t\t\t\thandleColumnOrdering={(colOrder) =>\r\n\t\t\t\t\t\t\t\tupdateGeneratedColumns({ orderKeys: colOrder.slice(1) })\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tonColumnVisibility={(columns: MaterialTableColumnProps[]) =>\r\n\t\t\t\t\t\t\t\tupdateGeneratedColumns({ columns: columns })\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{actionBarActiveTab === viewTypes.GRID && (\r\n\t\t\t\t\t\t<GridCard\r\n\t\t\t\t\t\t\tdata={tableRows}\r\n\t\t\t\t\t\t\trowActionMenu={rowActionMenu}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{!actionBarActiveTab && (\r\n\t\t\t\t\t\t<Fallback\r\n\t\t\t\t\t\t\theading={t('rental.settings.termsAndConditions.title')}\r\n\t\t\t\t\t\t\tsubHeading='No data available'\r\n\t\t\t\t\t\t\ticon={<img src={logo.invoiceFallback} />}>\r\n\t\t\t\t\t\t</Fallback>\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t<Footer\r\n\t\t\t\t\t\ttotal={total}\r\n\t\t\t\t\t\tpaginationModel={{\r\n\t\t\t\t\t\t\t...paginationModel,\r\n\t\t\t\t\t\t\tlimit: activePage.page_size\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\thandlePaginationModel={handlePaginationModel}\r\n\t\t\t\t\t\tresource=''\r\n\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t{/* Action Menu */}\r\n\t\t\t\t\t<Menu\r\n\t\t\t\t\t\tanchorEl={actionAnchorEl}\r\n\t\t\t\t\t\topen={Boolean(actionAnchorEl)}\r\n\t\t\t\t\t\tonClose={() => setActionAnchorEl(null)}>\r\n\t\t\t\t\t\t<MenuItem>\r\n\t\t\t\t\t\t\t<Typography type='s4' color='theme.secondary.1000'>\r\n\t\t\t\t\t\t\t\t{t('common.upload')}\r\n\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t</MenuItem>\r\n\t\t\t\t\t\t<MenuItem>\r\n\t\t\t\t\t\t\t<Typography type='s4' color='theme.secondary.1000'>\r\n\t\t\t\t\t\t\t\t{t('common.print')}\r\n\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t</MenuItem>\r\n\t\t\t\t\t</Menu>\r\n\t\t\t\t\t{showTemplateModal && (\r\n\t\t\t\t\t\t<TemplateModal \r\n\t\t\t\t\t\t\temail={showTemplateModal} \r\n\t\t\t\t\t\t\tonClose={() => setShowTemplateModal(null)} \r\n\t\t\t\t\t\t\topen={showTemplateModal !== null} \r\n\t\t\t\t\t\t\tcompanies={companies}\r\n\t\t\t\t\t\t\ttemplateRoutes={ROUTES}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{showCompanySelectionModal && (\r\n\t\t\t\t\t\t<CompanySelectionModal \r\n\t\t\t\t\t\t\tisOpen={showCompanySelectionModal !== null} \r\n\t\t\t\t\t\t\tsetIsOpen={setShowCompanySelectionModal} \r\n\t\t\t\t\t\t\tcompanies={companies} \r\n\t\t\t\t\t\t\temail={showCompanySelectionModal}\r\n\t\t\t\t\t\t\ttemplateRoutes={ROUTES}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t)}\r\n\t\t</section>\r\n\t);\r\n};\r\n\r\nexport default Templates;\r\n"],"names":["logo"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),a=,/* empty css */i=,/* empty css */s=,/* empty css */l=,/* empty css */n=,/* empty css */o=,/* empty css */r=,/* empty css */u=,/* empty css */d=,/* empty css */c=,/* empty css */m=,/* empty css */p=,/* empty css */g=,/* empty css */j=require("react-i18next"),b=,/* empty css */x=,/* empty css */y=require("react-router-dom"),h=,/* empty css */f=,/* empty css */v=,/* empty css */q=,/* empty css */S=;/* empty css */;/* empty css */var C=;/* empty css */S.setBaseUrl("http://127.0.0.1:4011/rbac"),exports.default=({type:S,module:k,modulePath:A})=>{const{t:M}=j.useTranslation(),{activePage:T,updatePageInfo:w,schemaFields:_,generatedColumns:E,updateGeneratedColumns:P}=d.usePages(),N=u.default(T),[F,I]=t.useState(null),R=localStorage.getItem("email-subjects-view"),[D,O]=t.useState(R?JSON.parse(R):[{label:"Table",position:0}]),[$,B]=t.useState(i.default.TABLE),[G,z]=t.useState({pageNo:1,limit:10,totalCount:0,skip:0}),[K,L]=t.useState([]),[V]=t.useState(!1),[J,Q]=t.useState([]),[H,U]=t.useState(null),[W,X]=t.useState(null),[Y,Z]=t.useState([]),ee=y.useNavigate(),{pageNo:te,limit:ae,totalCount:ie}=G,se=N.page_size||ae,le=se?Math.ceil(ie/se):0,ne=se*(te-1),oe=h.usePermissions(),re=x.templateRoutes(A,S),ue=(null==oe?void 0:oe.Subjects)||{},{canAdd:de=!1,canEdit:ce=!1}=ue,me=[{label:"New Template",handleAction:e=>(e=>{var t,a;(null==Y?void 0:Y.length)?(null==Y?void 0:Y.length)>1?X(e):ee(re.ADD_TEMPLATE(e._id),{state:{company_id:(null==(t=Y[0])?void 0:t.id)||(null==(a=Y[0])?void 0:a.value)}}):b.enqueueSnackbar("Please add a company first",{variant:"error"})})(e),disabled:e=>!ce},{label:"Add From Template",handleAction:e=>U(e),disabled:e=>!de}],pe=t.useCallback(async()=>{const{sort:e,filterQueryString:t,search:a}=N,i=a?`&subject.like=${a}`:"",s=[];s.push(S),"email"==S&&s.push("approval_email");const l=m.appendConditionSafely(t,`&type.in=[${s.join(",")}]&module.eq=${k}${i}`),n=await f.getV1Subjects({...m.getToken(),skip:ne,limit:se,...e&&{order:`${e.id}:${e.desc?-1:1}`},...l&&"()"!==l&&{filters:l}});L((null==n?void 0:n.data)||[]),z({...G,...(null==n?void 0:n.pagination)||{}})},[se,ne,null==N?void 0:N.search,null==N?void 0:N.filterQueryString,null==N?void 0:N.sort]),ge=t.useMemo(()=>K||[],[K]),je=t.useMemo(()=>c.transformTableColumns({columns:E.columns,currencySymbol:e=>{var t,a;return(null==(a=null==(t=e.original)?void 0:t.currency_data)?void 0:a.symbol)||m.defaultCurrencySymbol()},translationFn:M,enableFooter:!0,rows:ge,statusClasses:""}),[ge,M,E.columns]),be=()=>{z({pageNo:1,limit:10,totalCount:0})};return t.useEffect(()=>{pe()},[pe]),t.useEffect(()=>((async()=>{const e=await g.fetchApi({apiKey:"company",filters:{skip:0,limit:100,order:"id:1"}});Z((null==e?void 0:e.data)||[])})(),be),[]),t.useEffect(()=>{(null==D?void 0:D.length)&&localStorage.setItem("email-subjects-view",JSON.stringify(D))},[D]),/* @__PURE__ */e.jsxs("section",{className:"templates",children:[
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),a=,/* empty css */i=,/* empty css */s=,/* empty css */l=,/* empty css */n=,/* empty css */o=,/* empty css */r=,/* empty css */u=,/* empty css */d=,/* empty css */c=,/* empty css */m=,/* empty css */p=,/* empty css */g=,/* empty css */j=require("react-i18next"),b=,/* empty css */x=,/* empty css */y=require("react-router-dom"),h=,/* empty css */f=,/* empty css */v=,/* empty css */q=,/* empty css */S=;/* empty css */;/* empty css */var C=;/* empty css */S.setBaseUrl("https://apidev.erpforce.co/rbac"),exports.default=({type:S,module:k,modulePath:A})=>{const{t:M}=j.useTranslation(),{activePage:T,updatePageInfo:w,schemaFields:_,generatedColumns:E,updateGeneratedColumns:P}=d.usePages(),N=u.default(T),[F,I]=t.useState(null),R=localStorage.getItem("email-subjects-view"),[D,O]=t.useState(R?JSON.parse(R):[{label:"Table",position:0}]),[$,B]=t.useState(i.default.TABLE),[G,z]=t.useState({pageNo:1,limit:10,totalCount:0,skip:0}),[K,L]=t.useState([]),[V]=t.useState(!1),[J,Q]=t.useState([]),[H,U]=t.useState(null),[W,X]=t.useState(null),[Y,Z]=t.useState([]),ee=y.useNavigate(),{pageNo:te,limit:ae,totalCount:ie}=G,se=N.page_size||ae,le=se?Math.ceil(ie/se):0,ne=se*(te-1),oe=h.usePermissions(),re=x.templateRoutes(A,S),ue=(null==oe?void 0:oe.Subjects)||{},{canAdd:de=!1,canEdit:ce=!1}=ue,me=[{label:"New Template",handleAction:e=>(e=>{var t,a;(null==Y?void 0:Y.length)?(null==Y?void 0:Y.length)>1?X(e):ee(re.ADD_TEMPLATE(e._id),{state:{company_id:(null==(t=Y[0])?void 0:t.id)||(null==(a=Y[0])?void 0:a.value)}}):b.enqueueSnackbar("Please add a company first",{variant:"error"})})(e),disabled:e=>!ce},{label:"Add From Template",handleAction:e=>U(e),disabled:e=>!de}],pe=t.useCallback(async()=>{const{sort:e,filterQueryString:t,search:a}=N,i=a?`&subject.like=${a}`:"",s=[];s.push(S),"email"==S&&s.push("approval_email");const l=m.appendConditionSafely(t,`&type.in=[${s.join(",")}]&module.eq=${k}${i}`),n=await f.getV1Subjects({...m.getToken(),skip:ne,limit:se,...e&&{order:`${e.id}:${e.desc?-1:1}`},...l&&"()"!==l&&{filters:l}});L((null==n?void 0:n.data)||[]),z({...G,...(null==n?void 0:n.pagination)||{}})},[se,ne,null==N?void 0:N.search,null==N?void 0:N.filterQueryString,null==N?void 0:N.sort]),ge=t.useMemo(()=>K||[],[K]),je=t.useMemo(()=>c.transformTableColumns({columns:E.columns,currencySymbol:e=>{var t,a;return(null==(a=null==(t=e.original)?void 0:t.currency_data)?void 0:a.symbol)||m.defaultCurrencySymbol()},translationFn:M,enableFooter:!0,rows:ge,statusClasses:""}),[ge,M,E.columns]),be=()=>{z({pageNo:1,limit:10,totalCount:0})};return t.useEffect(()=>{pe()},[pe]),t.useEffect(()=>((async()=>{const e=await g.fetchApi({apiKey:"company",filters:{skip:0,limit:100,order:"id:1"}});Z((null==e?void 0:e.data)||[])})(),be),[]),t.useEffect(()=>{(null==D?void 0:D.length)&&localStorage.setItem("email-subjects-view",JSON.stringify(D))},[D]),/* @__PURE__ */e.jsxs("section",{className:"templates",children:[
2
2
  /* @__PURE__ */e.jsx(a.ActionBar,{title:"email"===S?"Emails":"PDFs",data:D,setData:O,active:$,setActive:B,handleSearch:e=>{w({search:e}),z({...G,pageNo:1})},disabledViews:["Kanban","Calendar","Gantt",i.default.GRID],fields:_,selectedIds:J,button:!1}),$===i.default.TABLE&&/* @__PURE__ */e.jsx(s.MaterialTable,{rows:ge||[],columns:je,paginationModel:G,totalPages:le,columnOrder:["mrt-row-select",...E.orderKeys],states:{isLoading:V},onSortingChange:e=>w({sort:e}),enableColumnDragging:!1,enableEditing:!1,onSelectRow:e=>Q(e.map(e=>e.original.id)),enableAddCustomField:!1,rowActionMenu:me,isResetRow:!1,handleColumnOrdering:e=>P({orderKeys:e.slice(1)}),onColumnVisibility:e=>P({columns:e})}),$===i.default.GRID&&/* @__PURE__ */e.jsx(GridCard,{data:ge,rowActionMenu:me}),!$&&/* @__PURE__ */e.jsx(n.Fallback,{heading:M("rental.settings.termsAndConditions.title"),subHeading:"No data available",icon:/* @__PURE__ */e.jsx("img",{src:p.images.invoiceFallback})}),
3
3
  /* @__PURE__ */e.jsx(r.Footer,{total:le,paginationModel:{...G,limit:N.page_size},handlePaginationModel:e=>{N.page_size!=(null==e?void 0:e.limit)&&w({page_size:e.limit}),z(e)},resource:""}),
4
4
  /* @__PURE__ */e.jsxs(o.Menu,{anchorEl:F,open:Boolean(F),onClose:()=>I(null),children:[
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/views/template-editor/templates.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable unused-imports/no-unused-vars */\nimport { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport ActionBar from '../../components/action-bar/action-bar';\nimport viewTypes from '../../constants/action-bar';\nimport MaterialTable, { MaterialTableColumnProps } from '../../components/material-table/material-table';\nimport Typography from '../../components/typography/typography';\nimport Fallback from '../../components/fallback/fallback';\nimport Menu from '../../components/menu/menu';\nimport Footer from '../../components/footer/footer';\nimport useDeepMemo from '../../hooks/use-deep-memo';\nimport { PageState } from '../../contexts/page-context';\nimport { usePages } from '../../hooks/use-pages';\nimport { transformTableColumns } from '../../utils/common-utility';\nimport { appendConditionSafely, defaultCurrencySymbol, getToken } from '../../utils/common';\nimport logo from '../../assets/images';\nimport { IPaginationModel } from '../../@types/pagination-model';\nimport { fetchApi } from '../../utils/api';\n\nimport { MenuItem } from '@mui/material';\n\n// import GridCard from './grid-view/grid-view';\nimport { useTranslation } from 'react-i18next';\nimport { enqueueSnackbar } from 'notistack';\n\nimport { templateRoutes } from './utils/common';\nimport { IEmail, ITemplateProps, Pagination } from './utils/types';\nimport { useNavigate } from 'react-router-dom';\n\nimport { usePermissions } from '../../hooks/use-permissions';\nimport { getV1Subjects } from '../../api-client/api.system-feature/api';\nimport TemplateModal from './template-modal/template-modal';\nimport CompanySelectionModal from './company-selection-modal/company-selection-modal';\nimport { setBaseUrl } from '../../api-client/api.rbac/api';\n\nimport './templates.scss';\n\nsetBaseUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\n\n\ninterface ActionData {\n\tlabel: string;\n\tposition: number;\n}\n\nconst Templates: React.FC<ITemplateProps> = ({ type, module, modulePath }) => {\n const { t } = useTranslation();\n\tconst {\n\t\tactivePage: aPage,\n\t\tupdatePageInfo,\n\t\tschemaFields,\n\t\tgeneratedColumns,\n\t\tupdateGeneratedColumns,\n\t\t// error: pageError\n\t} = usePages();\n\tconst activePage = useDeepMemo<PageState>(aPage);\n\t/* LOCAL STATES */\n\tconst [actionAnchorEl, setActionAnchorEl] = useState<null | HTMLElement>(null);\n const viewEmails = localStorage.getItem('email-subjects-view');\n const [actionBarData, setActionBarData] = useState<ActionData[]>(viewEmails ? JSON.parse(viewEmails) : [{ label: 'Table', position: 0 }]);\n\n const [actionBarActiveTab, setActionBarActiveTab] = useState<string>(viewTypes.TABLE);\n\tconst [paginationModel, setPaginationModel] = useState<Pagination>({ pageNo: 1, limit: 10, totalCount: 0, skip: 0 }); \n\tconst [rows, setRows] = useState<any[]>([]); \n\tconst [isFetching, setIsFetching] = useState<boolean>(false); \n\tconst [selectedRow, setSelectedRow] = useState([]);\n\tconst [showTemplateModal, setShowTemplateModal] = useState<IEmail | null>(null);\n\tconst [showCompanySelectionModal, setShowCompanySelectionModal] = useState<IEmail | null>(null);\n\tconst [companies, setCompanies] = useState<Record<string, any>[]>([]);\n\t/* VARS */\n\tconst navigate = useNavigate();\n\tconst { pageNo, limit: pLimit, totalCount } = paginationModel;\n\tconst limit = activePage.page_size || pLimit;\n\tconst total = limit ? Math.ceil(totalCount / limit) : 0;\n\tconst skip = limit * (pageNo - 1);\n\tconst permissions = usePermissions();\n\tconst ROUTES = templateRoutes(modulePath, type);\n\n\tconst SubjectPermissions = permissions?.Subjects || {};\n\tconst ConditionsImport = permissions?.RentalTerms?.ConditionsImport || {};\n\t\n\tconst {\n\t\tcanAdd = false,\n\t\tcanEdit = false,\n\t\tcanDelete = false,\n\t} = SubjectPermissions;\n\n\tconst { canAdd: canImport = false } = ConditionsImport;\n\n\tconst handleNewEmail = (email) => {\n\t\tif(!companies?.length) {\n\t\t\tenqueueSnackbar('Please add a company first', { variant: 'error' })\n\t\t\treturn\n\t\t}\n\n\t\tif(companies?.length > 1) {\n\t\t\tsetShowCompanySelectionModal(email)\n\t\t} else{\n\t\t\tnavigate(ROUTES.ADD_TEMPLATE(email._id), { state: { company_id: companies[0]?.id || companies[0]?.value }})\n\t\t}\n\t};\n \n\tconst rowActionMenu = [\n\t\t{\n\t\t\tlabel: 'New Template',\n\t\t\thandleAction: (email: IEmail) => handleNewEmail(email),\n\t\t\tdisabled: (row: any) => !canEdit\n\t\t},\n\t\t{\n\t\t\tlabel: 'Add From Template',\n\t\t\thandleAction: (email: IEmail) => setShowTemplateModal(email),\n\t\t\tdisabled: (row: any) => !canAdd\n\t\t}\n\t];\n\n\t/* LOCAL FUNCTIONS */\n\tconst getEmails = useCallback(\n\t\tasync () => {\n\t\t\tconst { sort, filterQueryString, search } = activePage;\n\t\t\tconst searchFiters = search ? `&subject.like=${search}` : '';\n\t\t\tconst types = [];\n\t\t\ttypes.push(type)\n\t\t\tif(type == \"email\"){\n\t\t\t\ttypes.push(\"approval_email\")\n\t\t\t}\n\t\t\tconst uFilters = appendConditionSafely(filterQueryString, `&type.in=[${types.join(\",\")}]&module.eq=${module}${searchFiters}`);\n\n\t\t\tconst response = await getV1Subjects({\n\t\t\t\t...getToken(),\n\t\t\t\tskip,\n\t\t\t\tlimit,\n\t\t\t\t// search,\n\t\t\t\t...(sort && { order: `${sort.id}:${sort.desc ? -1 : 1}` }),\n\t\t\t\t...(uFilters && uFilters !== '()' && { filters: uFilters })\n\t\t\t});\n\n\t\t\tsetRows(response?.data || []);\n\t\t\tsetPaginationModel({...paginationModel, ...(response?.pagination ||{})});\n\t\t},\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[\n\t\t\tlimit,\n\t\t\tskip,\n\t\t\tactivePage?.search,\n\t\t\tactivePage?.filterQueryString,\n\t\t\tactivePage?.sort\n\t\t]\n\t);\n\n\tconst getCopmanies = async () => {\n\t\t\tconst companiesArr = await fetchApi({apiKey: 'company', filters: { skip: 0, limit: 100, order: \"id:1\" }});\n\t\t\tsetCompanies(companiesArr?.data || []);\n\t\t}\n\n\tconst tableRows = useMemo(() => rows || [], [rows]);\n\n\tconst tableColumns = useMemo(\n\t\t() =>\n\t\t\ttransformTableColumns({\n\t\t\t\tcolumns: generatedColumns.columns,\n\t\t\t\tcurrencySymbol: (row) =>\n\t\t\t\t\trow.original?.currency_data?.symbol || defaultCurrencySymbol(),\n\t\t\t\ttranslationFn: t,\n\t\t\t\tenableFooter: true,\n\t\t\t\t// redirectionLink: ROUTES.VIEW,\n\t\t\t\t// redirectionLinkState: (row) => ({ termsAndCondition: row.original }),\n\t\t\t\trows: tableRows,\n\t\t\t\tstatusClasses: ``,\n\t\t\t}),\n\t\t[tableRows, t, generatedColumns.columns]\n\t);\n\n\tconst handlePaginationModel = (model: IPaginationModel) => {\n\t\tif (activePage.page_size != model?.limit) {\n\t\t\tupdatePageInfo({ page_size: model.limit });\n\t\t}\n\t\tsetPaginationModel(model);\n\t};\n\n\tconst cleanUp = () => {\n\t\tconst pModel = { pageNo: 1, limit: 10, totalCount: 0 };\n\t\tsetPaginationModel(pModel);\n\t};\n\n\t/* USE EFFECTS */\n\tuseEffect(() => {\n\t\tgetEmails();\n\t}, [getEmails]);\n\t\n\n\tuseEffect(() => {\n\t\tgetCopmanies();\n\t\treturn cleanUp;\n\t}, []);\n useEffect(() => {\n\t\tif (actionBarData?.length) {\n\t\t\tlocalStorage.setItem('email-subjects-view', JSON.stringify(actionBarData));\n\t\t}\n\t}, [actionBarData]);\n\n\t/* JSX STRUCTURE STARTED */\n\treturn (\n\t\t<section className='templates'>\n\t\t\t<ActionBar\n\t\t\t\ttitle={type === 'email' ? 'Emails' : 'PDFs'}\n\t\t\t\tdata={actionBarData}\n\t\t\t\tsetData={setActionBarData}\n\t\t\t\tactive={actionBarActiveTab}\n\t\t\t\tsetActive={setActionBarActiveTab}\n\t\t\t\thandleSearch={(search) => {\n\t\t\t\t\tupdatePageInfo({ search });\n\t\t\t\t\tsetPaginationModel({ ...paginationModel, pageNo: 1 });\n\t\t\t\t}}\n\t\t\t\tdisabledViews={['Kanban', 'Calendar', 'Gantt',viewTypes.GRID]}\n\t\t\t\tfields={schemaFields}\n\t\t\t\tselectedIds={selectedRow}\n\t\t\t\tbutton={false}\n\t\t\t/>\n\t\t\t\t\t{actionBarActiveTab === viewTypes.TABLE && (\n\t\t\t\t\t\t<MaterialTable\n\t\t\t\t\t\t\trows={tableRows || []}\n\t\t\t\t\t\t\tcolumns={tableColumns}\n\t\t\t\t\t\t\tpaginationModel={paginationModel}\n\t\t\t\t\t\t\ttotalPages={total}\n\t\t\t\t\t\t\tcolumnOrder={['mrt-row-select', ...generatedColumns.orderKeys]}\n\t\t\t\t\t\t\tstates={{ isLoading: isFetching }}\n\t\t\t\t\t\t\tonSortingChange={(sort) => updatePageInfo({ sort })}\n\t\t\t\t\t\t\tenableColumnDragging={false}\n\t\t\t\t\t\t\tenableEditing={false}\n\t\t\t\t\t\t\tonSelectRow={(r) =>\n\t\t\t\t\t\t\t\tsetSelectedRow(r.map((ele) => ele.original.id))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tenableAddCustomField={false}\n\t\t\t\t\t\t\trowActionMenu={rowActionMenu}\n\t\t\t\t\t\t\tisResetRow={false}\n\t\t\t\t\t\t\thandleColumnOrdering={(colOrder) =>\n\t\t\t\t\t\t\t\tupdateGeneratedColumns({ orderKeys: colOrder.slice(1) })\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonColumnVisibility={(columns: MaterialTableColumnProps[]) =>\n\t\t\t\t\t\t\t\tupdateGeneratedColumns({ columns: columns })\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{actionBarActiveTab === viewTypes.GRID && (\n\t\t\t\t\t\t<GridCard\n\t\t\t\t\t\t\tdata={tableRows}\n\t\t\t\t\t\t\trowActionMenu={rowActionMenu}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{!actionBarActiveTab && (\n\t\t\t\t\t\t<Fallback\n\t\t\t\t\t\t\theading={t('rental.settings.termsAndConditions.title')}\n\t\t\t\t\t\t\tsubHeading='No data available'\n\t\t\t\t\t\t\ticon={<img src={logo.invoiceFallback} />}>\n\t\t\t\t\t\t</Fallback>\n\t\t\t\t\t)}\n\n\t\t\t\t\t<Footer\n\t\t\t\t\t\ttotal={total}\n\t\t\t\t\t\tpaginationModel={{\n\t\t\t\t\t\t\t...paginationModel,\n\t\t\t\t\t\t\tlimit: activePage.page_size\n\t\t\t\t\t\t}}\n\t\t\t\t\t\thandlePaginationModel={handlePaginationModel}\n\t\t\t\t\t\tresource=''\n\t\t\t\t\t/>\n\n\t\t\t\t\t{/* Action Menu */}\n\t\t\t\t\t<Menu\n\t\t\t\t\t\tanchorEl={actionAnchorEl}\n\t\t\t\t\t\topen={Boolean(actionAnchorEl)}\n\t\t\t\t\t\tonClose={() => setActionAnchorEl(null)}>\n\t\t\t\t\t\t<MenuItem>\n\t\t\t\t\t\t\t<Typography type='s4' color='theme.secondary.1000'>\n\t\t\t\t\t\t\t\t{t('common.upload')}\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t<MenuItem>\n\t\t\t\t\t\t\t<Typography type='s4' color='theme.secondary.1000'>\n\t\t\t\t\t\t\t\t{t('common.print')}\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t</Menu>\n\t\t\t\t\t{showTemplateModal && (\n\t\t\t\t\t\t<TemplateModal \n\t\t\t\t\t\t\temail={showTemplateModal} \n\t\t\t\t\t\t\tonClose={() => setShowTemplateModal(null)} \n\t\t\t\t\t\t\topen={showTemplateModal !== null} \n\t\t\t\t\t\t\tcompanies={companies}\n\t\t\t\t\t\t\ttemplateRoutes={ROUTES}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{showCompanySelectionModal && (\n\t\t\t\t\t\t<CompanySelectionModal \n\t\t\t\t\t\t\tisOpen={showCompanySelectionModal !== null} \n\t\t\t\t\t\t\tsetIsOpen={setShowCompanySelectionModal} \n\t\t\t\t\t\t\tcompanies={companies} \n\t\t\t\t\t\t\temail={showCompanySelectionModal}\n\t\t\t\t\t\t\ttemplateRoutes={ROUTES}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t</section>\n\t);\n};\n\nexport default Templates;\n"],"names":["setBaseUrl","type","module","modulePath","t","useTranslation","activePage","aPage","updatePageInfo","schemaFields","generatedColumns","updateGeneratedColumns","usePages","useDeepMemo","actionAnchorEl","setActionAnchorEl","useState","viewEmails","localStorage","getItem","actionBarData","setActionBarData","JSON","parse","label","position","actionBarActiveTab","setActionBarActiveTab","viewTypes","TABLE","paginationModel","setPaginationModel","pageNo","limit","totalCount","skip","rows","setRows","isFetching","selectedRow","setSelectedRow","showTemplateModal","setShowTemplateModal","showCompanySelectionModal","setShowCompanySelectionModal","companies","setCompanies","navigate","useNavigate","pLimit","page_size","total","Math","ceil","permissions","usePermissions","ROUTES","templateRoutes","SubjectPermissions","Subjects","canAdd","canEdit","rowActionMenu","handleAction","email","length","ADD_TEMPLATE","_id","state","company_id","_a","id","_b","value","enqueueSnackbar","variant","handleNewEmail","disabled","row","getEmails","useCallback","async","sort","filterQueryString","search","searchFiters","types","push","uFilters","appendConditionSafely","join","response","getV1Subjects","getToken","order","desc","filters","data","pagination","tableRows","useMemo","tableColumns","transformTableColumns","columns","currencySymbol","original","currency_data","symbol","defaultCurrencySymbol","translationFn","enableFooter","statusClasses","cleanUp","useEffect","companiesArr","fetchApi","apiKey","getCopmanies","setItem","stringify","jsxs","className","children","jsx","ActionBar","title","setData","active","setActive","handleSearch","disabledViews","GRID","fields","selectedIds","button","MaterialTable","totalPages","columnOrder","orderKeys","states","isLoading","onSortingChange","enableColumnDragging","enableEditing","onSelectRow","r","map","ele","enableAddCustomField","isResetRow","handleColumnOrdering","colOrder","slice","onColumnVisibility","GridCard","Fallback","heading","subHeading","icon","src","logo","invoiceFallback","Footer","handlePaginationModel","model","resource","Menu","anchorEl","open","Boolean","onClose","MenuItem","Typography","color","TemplateModal","CompanySelectionModal","isOpen","setIsOpen"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/views/template-editor/templates.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\r\n/* eslint-disable react-hooks/exhaustive-deps */\r\n/* eslint-disable unused-imports/no-unused-vars */\r\nimport { useCallback, useEffect, useMemo, useState } from 'react';\r\n\r\nimport ActionBar from '../../components/action-bar/action-bar';\r\nimport viewTypes from '../../constants/action-bar';\r\nimport MaterialTable, { MaterialTableColumnProps } from '../../components/material-table/material-table';\r\nimport Typography from '../../components/typography/typography';\r\nimport Fallback from '../../components/fallback/fallback';\r\nimport Menu from '../../components/menu/menu';\r\nimport Footer from '../../components/footer/footer';\r\nimport useDeepMemo from '../../hooks/use-deep-memo';\r\nimport { PageState } from '../../contexts/page-context';\r\nimport { usePages } from '../../hooks/use-pages';\r\nimport { transformTableColumns } from '../../utils/common-utility';\r\nimport { appendConditionSafely, defaultCurrencySymbol, getToken } from '../../utils/common';\r\nimport logo from '../../assets/images';\r\nimport { IPaginationModel } from '../../@types/pagination-model';\r\nimport { fetchApi } from '../../utils/api';\r\n\r\nimport { MenuItem } from '@mui/material';\r\n\r\n// import GridCard from './grid-view/grid-view';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { enqueueSnackbar } from 'notistack';\r\n\r\nimport { templateRoutes } from './utils/common';\r\nimport { IEmail, ITemplateProps, Pagination } from './utils/types';\r\nimport { useNavigate } from 'react-router-dom';\r\n\r\nimport { usePermissions } from '../../hooks/use-permissions';\r\nimport { getV1Subjects } from '../../api-client/api.system-feature/api';\r\nimport TemplateModal from './template-modal/template-modal';\r\nimport CompanySelectionModal from './company-selection-modal/company-selection-modal';\r\nimport { setBaseUrl } from '../../api-client/api.rbac/api';\r\n\r\nimport './templates.scss';\r\n\r\nsetBaseUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\r\n\r\n\r\ninterface ActionData {\r\n\tlabel: string;\r\n\tposition: number;\r\n}\r\n\r\nconst Templates: React.FC<ITemplateProps> = ({ type, module, modulePath }) => {\r\n const { t } = useTranslation();\r\n\tconst {\r\n\t\tactivePage: aPage,\r\n\t\tupdatePageInfo,\r\n\t\tschemaFields,\r\n\t\tgeneratedColumns,\r\n\t\tupdateGeneratedColumns,\r\n\t\t// error: pageError\r\n\t} = usePages();\r\n\tconst activePage = useDeepMemo<PageState>(aPage);\r\n\t/* LOCAL STATES */\r\n\tconst [actionAnchorEl, setActionAnchorEl] = useState<null | HTMLElement>(null);\r\n const viewEmails = localStorage.getItem('email-subjects-view');\r\n const [actionBarData, setActionBarData] = useState<ActionData[]>(viewEmails ? JSON.parse(viewEmails) : [{ label: 'Table', position: 0 }]);\r\n\r\n const [actionBarActiveTab, setActionBarActiveTab] = useState<string>(viewTypes.TABLE);\r\n\tconst [paginationModel, setPaginationModel] = useState<Pagination>({ pageNo: 1, limit: 10, totalCount: 0, skip: 0 }); \r\n\tconst [rows, setRows] = useState<any[]>([]); \r\n\tconst [isFetching, setIsFetching] = useState<boolean>(false); \r\n\tconst [selectedRow, setSelectedRow] = useState([]);\r\n\tconst [showTemplateModal, setShowTemplateModal] = useState<IEmail | null>(null);\r\n\tconst [showCompanySelectionModal, setShowCompanySelectionModal] = useState<IEmail | null>(null);\r\n\tconst [companies, setCompanies] = useState<Record<string, any>[]>([]);\r\n\t/* VARS */\r\n\tconst navigate = useNavigate();\r\n\tconst { pageNo, limit: pLimit, totalCount } = paginationModel;\r\n\tconst limit = activePage.page_size || pLimit;\r\n\tconst total = limit ? Math.ceil(totalCount / limit) : 0;\r\n\tconst skip = limit * (pageNo - 1);\r\n\tconst permissions = usePermissions();\r\n\tconst ROUTES = templateRoutes(modulePath, type);\r\n\r\n\tconst SubjectPermissions = permissions?.Subjects || {};\r\n\tconst ConditionsImport = permissions?.RentalTerms?.ConditionsImport || {};\r\n\t\r\n\tconst {\r\n\t\tcanAdd = false,\r\n\t\tcanEdit = false,\r\n\t\tcanDelete = false,\r\n\t} = SubjectPermissions;\r\n\r\n\tconst { canAdd: canImport = false } = ConditionsImport;\r\n\r\n\tconst handleNewEmail = (email) => {\r\n\t\tif(!companies?.length) {\r\n\t\t\tenqueueSnackbar('Please add a company first', { variant: 'error' })\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif(companies?.length > 1) {\r\n\t\t\tsetShowCompanySelectionModal(email)\r\n\t\t} else{\r\n\t\t\tnavigate(ROUTES.ADD_TEMPLATE(email._id), { state: { company_id: companies[0]?.id || companies[0]?.value }})\r\n\t\t}\r\n\t};\r\n \r\n\tconst rowActionMenu = [\r\n\t\t{\r\n\t\t\tlabel: 'New Template',\r\n\t\t\thandleAction: (email: IEmail) => handleNewEmail(email),\r\n\t\t\tdisabled: (row: any) => !canEdit\r\n\t\t},\r\n\t\t{\r\n\t\t\tlabel: 'Add From Template',\r\n\t\t\thandleAction: (email: IEmail) => setShowTemplateModal(email),\r\n\t\t\tdisabled: (row: any) => !canAdd\r\n\t\t}\r\n\t];\r\n\r\n\t/* LOCAL FUNCTIONS */\r\n\tconst getEmails = useCallback(\r\n\t\tasync () => {\r\n\t\t\tconst { sort, filterQueryString, search } = activePage;\r\n\t\t\tconst searchFiters = search ? `&subject.like=${search}` : '';\r\n\t\t\tconst types = [];\r\n\t\t\ttypes.push(type)\r\n\t\t\tif(type == \"email\"){\r\n\t\t\t\ttypes.push(\"approval_email\")\r\n\t\t\t}\r\n\t\t\tconst uFilters = appendConditionSafely(filterQueryString, `&type.in=[${types.join(\",\")}]&module.eq=${module}${searchFiters}`);\r\n\r\n\t\t\tconst response = await getV1Subjects({\r\n\t\t\t\t...getToken(),\r\n\t\t\t\tskip,\r\n\t\t\t\tlimit,\r\n\t\t\t\t// search,\r\n\t\t\t\t...(sort && { order: `${sort.id}:${sort.desc ? -1 : 1}` }),\r\n\t\t\t\t...(uFilters && uFilters !== '()' && { filters: uFilters })\r\n\t\t\t});\r\n\r\n\t\t\tsetRows(response?.data || []);\r\n\t\t\tsetPaginationModel({...paginationModel, ...(response?.pagination ||{})});\r\n\t\t},\r\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\r\n\t\t[\r\n\t\t\tlimit,\r\n\t\t\tskip,\r\n\t\t\tactivePage?.search,\r\n\t\t\tactivePage?.filterQueryString,\r\n\t\t\tactivePage?.sort\r\n\t\t]\r\n\t);\r\n\r\n\tconst getCopmanies = async () => {\r\n\t\t\tconst companiesArr = await fetchApi({apiKey: 'company', filters: { skip: 0, limit: 100, order: \"id:1\" }});\r\n\t\t\tsetCompanies(companiesArr?.data || []);\r\n\t\t}\r\n\r\n\tconst tableRows = useMemo(() => rows || [], [rows]);\r\n\r\n\tconst tableColumns = useMemo(\r\n\t\t() =>\r\n\t\t\ttransformTableColumns({\r\n\t\t\t\tcolumns: generatedColumns.columns,\r\n\t\t\t\tcurrencySymbol: (row) =>\r\n\t\t\t\t\trow.original?.currency_data?.symbol || defaultCurrencySymbol(),\r\n\t\t\t\ttranslationFn: t,\r\n\t\t\t\tenableFooter: true,\r\n\t\t\t\t// redirectionLink: ROUTES.VIEW,\r\n\t\t\t\t// redirectionLinkState: (row) => ({ termsAndCondition: row.original }),\r\n\t\t\t\trows: tableRows,\r\n\t\t\t\tstatusClasses: ``,\r\n\t\t\t}),\r\n\t\t[tableRows, t, generatedColumns.columns]\r\n\t);\r\n\r\n\tconst handlePaginationModel = (model: IPaginationModel) => {\r\n\t\tif (activePage.page_size != model?.limit) {\r\n\t\t\tupdatePageInfo({ page_size: model.limit });\r\n\t\t}\r\n\t\tsetPaginationModel(model);\r\n\t};\r\n\r\n\tconst cleanUp = () => {\r\n\t\tconst pModel = { pageNo: 1, limit: 10, totalCount: 0 };\r\n\t\tsetPaginationModel(pModel);\r\n\t};\r\n\r\n\t/* USE EFFECTS */\r\n\tuseEffect(() => {\r\n\t\tgetEmails();\r\n\t}, [getEmails]);\r\n\t\r\n\r\n\tuseEffect(() => {\r\n\t\tgetCopmanies();\r\n\t\treturn cleanUp;\r\n\t}, []);\r\n useEffect(() => {\r\n\t\tif (actionBarData?.length) {\r\n\t\t\tlocalStorage.setItem('email-subjects-view', JSON.stringify(actionBarData));\r\n\t\t}\r\n\t}, [actionBarData]);\r\n\r\n\t/* JSX STRUCTURE STARTED */\r\n\treturn (\r\n\t\t<section className='templates'>\r\n\t\t\t<ActionBar\r\n\t\t\t\ttitle={type === 'email' ? 'Emails' : 'PDFs'}\r\n\t\t\t\tdata={actionBarData}\r\n\t\t\t\tsetData={setActionBarData}\r\n\t\t\t\tactive={actionBarActiveTab}\r\n\t\t\t\tsetActive={setActionBarActiveTab}\r\n\t\t\t\thandleSearch={(search) => {\r\n\t\t\t\t\tupdatePageInfo({ search });\r\n\t\t\t\t\tsetPaginationModel({ ...paginationModel, pageNo: 1 });\r\n\t\t\t\t}}\r\n\t\t\t\tdisabledViews={['Kanban', 'Calendar', 'Gantt',viewTypes.GRID]}\r\n\t\t\t\tfields={schemaFields}\r\n\t\t\t\tselectedIds={selectedRow}\r\n\t\t\t\tbutton={false}\r\n\t\t\t/>\r\n\t\t\t\t\t{actionBarActiveTab === viewTypes.TABLE && (\r\n\t\t\t\t\t\t<MaterialTable\r\n\t\t\t\t\t\t\trows={tableRows || []}\r\n\t\t\t\t\t\t\tcolumns={tableColumns}\r\n\t\t\t\t\t\t\tpaginationModel={paginationModel}\r\n\t\t\t\t\t\t\ttotalPages={total}\r\n\t\t\t\t\t\t\tcolumnOrder={['mrt-row-select', ...generatedColumns.orderKeys]}\r\n\t\t\t\t\t\t\tstates={{ isLoading: isFetching }}\r\n\t\t\t\t\t\t\tonSortingChange={(sort) => updatePageInfo({ sort })}\r\n\t\t\t\t\t\t\tenableColumnDragging={false}\r\n\t\t\t\t\t\t\tenableEditing={false}\r\n\t\t\t\t\t\t\tonSelectRow={(r) =>\r\n\t\t\t\t\t\t\t\tsetSelectedRow(r.map((ele) => ele.original.id))\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tenableAddCustomField={false}\r\n\t\t\t\t\t\t\trowActionMenu={rowActionMenu}\r\n\t\t\t\t\t\t\tisResetRow={false}\r\n\t\t\t\t\t\t\thandleColumnOrdering={(colOrder) =>\r\n\t\t\t\t\t\t\t\tupdateGeneratedColumns({ orderKeys: colOrder.slice(1) })\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tonColumnVisibility={(columns: MaterialTableColumnProps[]) =>\r\n\t\t\t\t\t\t\t\tupdateGeneratedColumns({ columns: columns })\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{actionBarActiveTab === viewTypes.GRID && (\r\n\t\t\t\t\t\t<GridCard\r\n\t\t\t\t\t\t\tdata={tableRows}\r\n\t\t\t\t\t\t\trowActionMenu={rowActionMenu}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{!actionBarActiveTab && (\r\n\t\t\t\t\t\t<Fallback\r\n\t\t\t\t\t\t\theading={t('rental.settings.termsAndConditions.title')}\r\n\t\t\t\t\t\t\tsubHeading='No data available'\r\n\t\t\t\t\t\t\ticon={<img src={logo.invoiceFallback} />}>\r\n\t\t\t\t\t\t</Fallback>\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t<Footer\r\n\t\t\t\t\t\ttotal={total}\r\n\t\t\t\t\t\tpaginationModel={{\r\n\t\t\t\t\t\t\t...paginationModel,\r\n\t\t\t\t\t\t\tlimit: activePage.page_size\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\thandlePaginationModel={handlePaginationModel}\r\n\t\t\t\t\t\tresource=''\r\n\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t{/* Action Menu */}\r\n\t\t\t\t\t<Menu\r\n\t\t\t\t\t\tanchorEl={actionAnchorEl}\r\n\t\t\t\t\t\topen={Boolean(actionAnchorEl)}\r\n\t\t\t\t\t\tonClose={() => setActionAnchorEl(null)}>\r\n\t\t\t\t\t\t<MenuItem>\r\n\t\t\t\t\t\t\t<Typography type='s4' color='theme.secondary.1000'>\r\n\t\t\t\t\t\t\t\t{t('common.upload')}\r\n\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t</MenuItem>\r\n\t\t\t\t\t\t<MenuItem>\r\n\t\t\t\t\t\t\t<Typography type='s4' color='theme.secondary.1000'>\r\n\t\t\t\t\t\t\t\t{t('common.print')}\r\n\t\t\t\t\t\t\t</Typography>\r\n\t\t\t\t\t\t</MenuItem>\r\n\t\t\t\t\t</Menu>\r\n\t\t\t\t\t{showTemplateModal && (\r\n\t\t\t\t\t\t<TemplateModal \r\n\t\t\t\t\t\t\temail={showTemplateModal} \r\n\t\t\t\t\t\t\tonClose={() => setShowTemplateModal(null)} \r\n\t\t\t\t\t\t\topen={showTemplateModal !== null} \r\n\t\t\t\t\t\t\tcompanies={companies}\r\n\t\t\t\t\t\t\ttemplateRoutes={ROUTES}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{showCompanySelectionModal && (\r\n\t\t\t\t\t\t<CompanySelectionModal \r\n\t\t\t\t\t\t\tisOpen={showCompanySelectionModal !== null} \r\n\t\t\t\t\t\t\tsetIsOpen={setShowCompanySelectionModal} \r\n\t\t\t\t\t\t\tcompanies={companies} \r\n\t\t\t\t\t\t\temail={showCompanySelectionModal}\r\n\t\t\t\t\t\t\ttemplateRoutes={ROUTES}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t)}\r\n\t\t</section>\r\n\t);\r\n};\r\n\r\nexport default Templates;\r\n"],"names":["setBaseUrl","type","module","modulePath","t","useTranslation","activePage","aPage","updatePageInfo","schemaFields","generatedColumns","updateGeneratedColumns","usePages","useDeepMemo","actionAnchorEl","setActionAnchorEl","useState","viewEmails","localStorage","getItem","actionBarData","setActionBarData","JSON","parse","label","position","actionBarActiveTab","setActionBarActiveTab","viewTypes","TABLE","paginationModel","setPaginationModel","pageNo","limit","totalCount","skip","rows","setRows","isFetching","selectedRow","setSelectedRow","showTemplateModal","setShowTemplateModal","showCompanySelectionModal","setShowCompanySelectionModal","companies","setCompanies","navigate","useNavigate","pLimit","page_size","total","Math","ceil","permissions","usePermissions","ROUTES","templateRoutes","SubjectPermissions","Subjects","canAdd","canEdit","rowActionMenu","handleAction","email","length","ADD_TEMPLATE","_id","state","company_id","_a","id","_b","value","enqueueSnackbar","variant","handleNewEmail","disabled","row","getEmails","useCallback","async","sort","filterQueryString","search","searchFiters","types","push","uFilters","appendConditionSafely","join","response","getV1Subjects","getToken","order","desc","filters","data","pagination","tableRows","useMemo","tableColumns","transformTableColumns","columns","currencySymbol","original","currency_data","symbol","defaultCurrencySymbol","translationFn","enableFooter","statusClasses","cleanUp","useEffect","companiesArr","fetchApi","apiKey","getCopmanies","setItem","stringify","jsxs","className","children","jsx","ActionBar","title","setData","active","setActive","handleSearch","disabledViews","GRID","fields","selectedIds","button","MaterialTable","totalPages","columnOrder","orderKeys","states","isLoading","onSortingChange","enableColumnDragging","enableEditing","onSelectRow","r","map","ele","enableAddCustomField","isResetRow","handleColumnOrdering","colOrder","slice","onColumnVisibility","GridCard","Fallback","heading","subHeading","icon","src","logo","invoiceFallback","Footer","handlePaginationModel","model","resource","Menu","anchorEl","open","Boolean","onClose","MenuItem","Typography","color","TemplateModal","CompanySelectionModal","isOpen","setIsOpen"],"mappings":"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"}