@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.esm.js","sources":["../../../../../src/views/template-editor/components/SectionFormatPanel.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, { useState, useEffect, useMemo, useCallback } from 'react';\nimport {\n Box,\n Paper,\n IconButton,\n FormControl,\n MenuItem,\n Tooltip,\n} from '@mui/material';\nimport CloseIcon from '@mui/icons-material/Close';\nimport { Save } from '../../../components/icons';\nimport Typography from '../../../components/typography/typography';\n\n// Import sub-components\nimport TextControls from './controllers/TextControls';\nimport ButtonControls from './controllers/ButtonControls';\nimport ImageControls from './controllers/ImageControls';\nimport DividerControls from './controllers/DividerControls';\nimport TableControls from './controllers/TableControls';\nimport SignatureControls from './controllers/SignatureControls';\nimport CodeControls from './controllers/CodeControls';\nimport Select from '../../../components/select/select';\nimport { EnhancedSectionData, ElementType } from '../types/editor';\nimport { initialStyles } from '../utils/constant';\nimport { extractStyles, generateInlineStyles, getInitialSectionData } from '../utils/common';\n// import { useCKEditorStyleExtractor } from '../utils/style-extractor';\n\n// Shared types for SectionFormatPanel and sub-components\nexport interface TableColumn {\n id: string;\n header: string;\n placeholder?: string;\n}\n\nexport interface TableRow {\n [key: string]: string | number | boolean;\n}\n\nexport interface CellMerge {\n section: 'thead' | 'tbody';\n rowStart: number;\n rowEnd: number;\n colStart: number;\n colEnd: number;\n value: string;\n}\n\nexport interface TableData {\n name?: string; // Added name property for #each iteration\n columns: TableColumn[];\n rows: TableRow[];\n border: boolean;\n mergedCells?: CellMerge[];\n}\n\ninterface SectionData {\n type: 'text' | 'text-block' | 'heading' | 'heading-2' | 'heading-3' | 'heading-4' | 'buttons' | 'image' | 'divider' | 'table' | 'signature' | 'qr-code' | 'bar-code';\n content: string;\n attributes?: {\n styles?: any;\n placeholders?: Record<string, string>;\n tableData?: TableData;\n [key: string]: any;\n };\n}\n\ninterface SectionFormatPanelProps {\n section: SectionData | undefined;\n onClose: () => void;\n onUpdate: (data: Partial<EnhancedSectionData>) => void;\n placeholders: Record<string, any>[];\n relation_table?:any;\n handleSave?: () => void;\n}\n\nconst sectionTypes = ['text','text-block','heading','heading-2','heading-3','heading-4','buttons','image','divider','table','signature','qr-code','bar-code']\n\nconst SectionFormatPanel: React.FC<SectionFormatPanelProps> = ({ \n section, \n onClose, \n onUpdate,\n placeholders,\n relation_table,\n handleSave }) => {\n // const { applyStylesToHtml } = useCKEditorStyleExtractor()\n // const [plainContent, setPlainContent] = useState('');\n const sectionType = useMemo(() => section?.type || 'text', [section?.type]);\n const content = useMemo(() => section?.content || 'text', [section?.content]);\n const [formatOptions, setFormatOptions] = useState<string[]>([]);\n const[rowLevel, setRowLevel] = useState<boolean>((section?.attributes as any)?.rowLevel || false);\n const [tableData, setTableData] = useState<TableData>({\n name: '', // Initialize with empty name\n columns: [\n { id: 'col1', header: 'Column 1' },\n { id: 'col2', header: 'Column 2' },\n { id: 'col3', header: 'Column 3' }\n ],\n rows: [\n { col1: '', col2: '', col3: '' }\n ],\n border: true,\n mergedCells: []\n });\n const [isInitialLoad, setIsInitialLoad] = useState(true);\n const [selectedContentAttrObj, setSelectedContentAttrObj] = useState(extractStyles(content, section?.type));\n\n // Initialize table data from section attributes\n useEffect(() => {\n if (section && section.type === 'table') {\n // If section has stored table data, use it\n if (section.attributes?.tableData) {\n setTableData(section.attributes.tableData);\n } else {\n // Try to extract table data from HTML content\n const extractedTableData = extractTableDataFromHTML(section.content);\n if (extractedTableData) {\n setTableData(extractedTableData);\n setRowLevel((section?.attributes as any)?.rowLevel || false);\n }\n }\n }\n }, []);\n\n useEffect(() => {\n if (section && !isInitialLoad) {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = section.content;\n const text = tempDiv.textContent || '';\n // setPlainContent(text);\n setSelectedContentAttrObj(extractStyles(section.content, section?.type)?.styles)\n setIsInitialLoad(false);\n }\n }, [section]);\n\n // Extract table data from HTML content\n const extractTableDataFromHTML = (htmlContent: string): TableData | null => {\n try {\n const parser = new DOMParser();\n const doc = parser.parseFromString(htmlContent, 'text/html');\n const table = doc.querySelector('table');\n \n if (!table) return null;\n\n const headerRows = table.querySelectorAll('thead tr');\n const bodyRows = table.querySelectorAll('tbody tr');\n\n if (headerRows.length === 0) return null;\n\n // Extract columns from the first header row\n const headerCells = headerRows[0].querySelectorAll('th');\n const columns: TableColumn[] = Array.from(headerCells).map((th, index) => ({\n id: `col${index + 1}`,\n header: th.textContent?.trim() || `Column ${index + 1}`\n }));\n\n // Extract merged cells from thead\n const mergedCells: CellMerge[] = [];\n Array.from(headerRows).forEach((row, rowIndex) => {\n const cells = row.querySelectorAll('th');\n cells.forEach((cell, colIndex) => {\n const rowSpan = parseInt(cell.getAttribute('rowspan') || '1');\n const colSpan = parseInt(cell.getAttribute('colspan') || '1');\n if (rowSpan > 1 || colSpan > 1) {\n mergedCells.push({\n section: 'thead',\n rowStart: rowIndex,\n rowEnd: rowIndex + rowSpan - 1,\n colStart: colIndex,\n colEnd: colIndex + colSpan - 1,\n value: cell.textContent?.trim() || ''\n });\n }\n });\n });\n\n // Extract rows\n const rows: TableRow[] = Array.from(bodyRows).map(row => {\n const cells = row.querySelectorAll('td');\n const rowData: TableRow = {};\n \n cells.forEach((cell, index) => {\n if (index < columns.length) {\n rowData[columns[index].id] = cell.textContent?.trim() || '';\n }\n });\n \n return rowData;\n });\n\n // Extract merged cells from tbody\n Array.from(bodyRows).forEach((row, rowIndex) => {\n const cells = row.querySelectorAll('td');\n cells.forEach((cell, colIndex) => {\n const rowSpan = parseInt(cell.getAttribute('rowspan') || '1');\n const colSpan = parseInt(cell.getAttribute('colspan') || '1');\n if (rowSpan > 1 || colSpan > 1) {\n mergedCells.push({\n section: 'tbody',\n rowStart: rowIndex,\n rowEnd: rowIndex + rowSpan - 1,\n colStart: colIndex,\n colEnd: colIndex + colSpan - 1,\n value: cell.textContent?.trim() || ''\n });\n }\n });\n });\n\n return {\n name: '', // Default empty name\n columns,\n rows: rows.length > 0 ? rows : [{}],\n border: true,\n mergedCells\n };\n } catch (error) {\n return null;\n }\n };\n\n // Get placeholder value for table generation\n const getPlaceholderValue = (placeholderKey: string): string => {\n const placeholder = placeholders.find(p => p.value === placeholderKey);\n if (!placeholder) return '';\n \n // Return actual value or generate sample based on type\n if (typeof placeholder.actualValue !== 'undefined') {\n return String(placeholder.actualValue);\n }\n \n switch (placeholder.type) {\n case 'date':\n return new Date().toLocaleDateString();\n case 'datetime':\n return new Date().toLocaleString();\n case 'number':\n return '123';\n case 'currency':\n return '$1,234.56';\n case 'email':\n return 'example@domain.com';\n case 'phone':\n return '+1 (555) 123-4567';\n case 'url':\n return 'https://example.com';\n default:\n return placeholder.label || placeholder.value;\n }\n };\n\n const generateContent = useCallback((attrs?: Record<any, any>): string => {\n const { src, alt, styles: eStyles, text, placeholder, placeholders: tPlaceholders } = attrs || section?.attributes || selectedContentAttrObj || {}\n const styles = {\n ...initialStyles[sectionType],\n ...eStyles,\n ...selectedContentAttrObj?.styles,\n ...attrs?.styles\n }\n\n const inlineStyles = generateInlineStyles(styles);\n \n // For buttons, images, dividers, and codes - use the existing logic\n if (sectionType === 'buttons') {\n return `<button style=\"${inlineStyles}\">${text || 'Button Text'}</button>`;\n } else if (sectionType === 'image') {\n let imgInlineStyles: string = inlineStyles;\n if(styles?.is_bordered) {\n styles.padding = '10px';\n imgInlineStyles = generateInlineStyles(styles);\n } else{\n styles.padding = '0';\n imgInlineStyles = generateInlineStyles(styles);\n }\n return `<img src=\"${src || ''}\" alt=\"${alt || ''}\" style=\"${imgInlineStyles}\" />`;\n } else if (sectionType === 'divider') {\n return `<hr style=\"${inlineStyles}\" />`;\n } else if (sectionType === 'table') {\n const { border, borderStyle, borderColor, ...rest } = styles;\n const tInlineStyles = generateInlineStyles(styles.is_bordered ? styles : rest); \n const tHeadInlineStyles: string = generateInlineStyles(styles.tHead || {});\n const tBodyInlineStyles: string = generateInlineStyles(styles.tBody || {});\n const thCellInlineStyles: string = generateInlineStyles({\n ...(styles.thCells || {}), \n ...(styles.is_bordered ? { border, borderStyle, borderColor } : {}) \n });\n const tbCellInlineStyles: string = generateInlineStyles({\n ...(styles.tbCells || {}), \n ...(styles.is_bordered ? { border, borderStyle, borderColor } : {})\n });\n\n // Helper function to check if a cell is part of a merge\n const getCellMergeInfo = (section: 'thead' | 'tbody', rowIndex: number, colIndex: number) => {\n return tableData.mergedCells?.find(m => \n m.section === section &&\n rowIndex >= m.rowStart && rowIndex <= m.rowEnd &&\n colIndex >= m.colStart && colIndex <= m.colEnd\n );\n };\n\n // Generate header row with merge support\n const headerCellsHTML = tableData.columns.map((column, colIndex) => {\n const mergeInfo = getCellMergeInfo('thead', 0, colIndex);\n \n if (mergeInfo && (colIndex !== mergeInfo.colStart)) {\n return '';\n }\n\n const mergeAttributes = mergeInfo ? \n ` rowspan=\"${mergeInfo.rowEnd - mergeInfo.rowStart + 1}\" colspan=\"${mergeInfo.colEnd - mergeInfo.colStart + 1}\"` : '';\n \n const cellValue = mergeInfo ? mergeInfo.value : column.header;\n\n return `<th style=\"${thCellInlineStyles}\"${mergeAttributes}>${cellValue}</th>`;\n }).filter(cell => cell !== '').join('');\n\n // Generate table body with #each loop using tableData.name\n let tableRowsHTML = '';\n \n // Check if we should use #each loop with tableData.name\n if (tableData.name) {\n // Generate template with #each handlebars syntax\n const rowTemplate = tableData.columns.map((column, colIndex) => {\n const mergeInfo = getCellMergeInfo('tbody', 0, colIndex); // Use first row as template\n \n if (mergeInfo && (colIndex !== mergeInfo.colStart)) {\n return '';\n }\n\n const mergeAttributes = mergeInfo ? \n ` rowspan=\"${mergeInfo.rowEnd - mergeInfo.rowStart + 1}\" colspan=\"${mergeInfo.colEnd - mergeInfo.colStart + 1}\"` : '';\n \n // Use handlebars template syntax for dynamic content\n let cellTemplate = '';\n \n // Handle special cases\n if (column.id === 'index' || column.id === 'incrementIndex') {\n cellTemplate = `{{incrementIndex @index}}`;\n } else if (column.id.includes('.')) {\n // Handle nested properties (like items.sku, tax_code_data.[0].rate)\n const cellValue = tableData?.rows?.[0][column.id];\n cellTemplate = typeof cellValue === 'string' ? cellValue.replace(tableData.name + '.', '') : String(cellValue || '');\n } else {\n // Direct property access\n const cellValue = tableData?.rows?.[0][column.id];\n cellTemplate = typeof cellValue === 'string' ? cellValue.replace(tableData.name + '.', '') : String(cellValue || '');\n }\n\n return `<td style=\"${tbCellInlineStyles}\"${mergeAttributes}>${cellTemplate}</td>`;\n }).filter(cell => cell !== '').join('');\n\n // Add zebra striping logic if enabled\n const rowStyleTemplate = styles.tBody?.zebraStriping \n ? `{{#if (isOdd @index)}}${tBodyInlineStyles}; background-color: ${styles.tBody.alternateRowColor || '#f9f9f9'}{{else}}${tBodyInlineStyles}{{/if}}`\n : tBodyInlineStyles;\n\n tableRowsHTML = `{{#each ${tableData.name}}}\n <tr style=\"${rowStyleTemplate}\">\n ${rowTemplate}\n </tr>\n {{/each}}`;\n \n } else {\n // Fallback to static rows when no tableData.name is provided\n tableRowsHTML = tableData.rows.map((row, rowIndex) => {\n const rowStyleAddition = styles.tBody?.zebraStriping && rowIndex % 2 === 1 \n ? `; background-color: ${styles.tBody.alternateRowColor || '#f9f9f9'}` \n : '';\n \n const cellsHTML = tableData.columns.map((column, colIndex) => {\n const mergeInfo = getCellMergeInfo('tbody', rowIndex, colIndex);\n \n if (mergeInfo && (rowIndex !== mergeInfo.rowStart || colIndex !== mergeInfo.colStart)) {\n return '';\n }\n\n let cellValue = row[column.id] || '';\n const keys = Object.keys(row)\n if(keys.includes(`${column.id}_static`)) {\n cellValue = row[`${column.id}_static`] || '';\n }\n if (!cellValue && tPlaceholders?.[column.id]) {\n cellValue = getPlaceholderValue(tPlaceholders[column.id]);\n }\n\n const mergeAttributes = mergeInfo ? \n ` rowspan=\"${mergeInfo.rowEnd - mergeInfo.rowStart + 1}\" colspan=\"${mergeInfo.colEnd - mergeInfo.colStart + 1}\"` : '';\n \n const finalCellValue = mergeInfo ? mergeInfo.value : cellValue;\n\n return `<td style=\"${tbCellInlineStyles}\"${mergeAttributes}>${finalCellValue}</td>`;\n }).filter(cell => cell !== '').join('');\n \n return `<tr style=\"${tBodyInlineStyles}${rowStyleAddition}\">${cellsHTML}</tr>`;\n }).join('');\n }\n \n return `\n <table style=\"${tInlineStyles}\">\n <thead>\n <tr style=\"${tHeadInlineStyles}\">\n ${headerCellsHTML}\n </tr>\n </thead>\n <tbody>\n ${tableRowsHTML}\n </tbody>\n </table>\n `;\n } else if (sectionType === 'qr-code' || sectionType === 'bar-code') {\n return `<div style=\"${inlineStyles}\">${placeholder}</div>`;\n }\n \n // For text-based sections, parse and apply styles to existing HTML tags\n const hasHtmlTags = /<\\/?[a-z][\\s\\S]*>/i.test(content);\n \n if (!hasHtmlTags) {\n // If no HTML tags, wrap according to section type\n switch (sectionType) {\n case 'text':\n case 'text-block':\n return `<p style=\"${inlineStyles}\">${content}</p>`;\n case 'heading':\n return `<h1 style=\"${inlineStyles}\">${content}</h1>`;\n case 'heading-2':\n return `<h2 style=\"${inlineStyles}\">${content}</h2>`;\n case 'heading-3':\n return `<h3 style=\"${inlineStyles}\">${content}</h3>`;\n case 'heading-4':\n return `<h4 style=\"${inlineStyles}\">${content}</h4>`;\n case 'signature':\n return `<div style=\"${inlineStyles}\">${content}</div>`;\n default:\n return `<p style=\"${inlineStyles}\">${content}</p>`;\n }\n } else {\n // Create a temporary DOM element to manipulate the HTML\n const parser = new DOMParser();\n const doc = parser.parseFromString(`<div>${content}</div>`, 'text/html');\n const container = doc.body.firstChild as Element;\n \n // Process all child elements\n if (container && container.nodeType === Node.ELEMENT_NODE) {\n const elements = container.querySelectorAll('*');\n\n elements.forEach(element => {\n // Skip processing script tags or other special elements\n if (element.tagName === 'SCRIPT' || element.tagName === 'STYLE') {\n return;\n }\n \n // Get existing style and merge with new style\n const existingStyle = element.getAttribute('style') || '';\n \n // Extract properties from existing style\n const existingProps = {};\n existingStyle.split(';').forEach(prop => {\n const [key, value] = prop.split(':').map(item => item.trim());\n if (key && value) {\n existingProps[key] = value;\n }\n });\n \n // Parse the base style and prepare for merging\n const newStyleProps = {};\n inlineStyles.split(';').forEach(prop => {\n const [key, value] = prop.split(':').map(item => item.trim());\n if (key && value) {\n newStyleProps[key] = value;\n }\n });\n \n // Additional styles based on tag type\n if (element.tagName === 'P' || element.tagName === 'DIV') {\n newStyleProps['line-height'] = '1.5';\n } else if (['H1', 'H2', 'H3', 'H4', 'H5', 'H6'].includes(element.tagName)) {\n newStyleProps['line-height'] = '1.2';\n newStyleProps['margin'] = '0.5em 0';\n }\n \n // Merge styles, new styles override existing ones\n const mergedProps = { ...existingProps, ...newStyleProps };\n \n // Convert back to style string\n const mergedStyle = Object.entries(mergedProps)\n .filter(([key, value]) => key && value)\n .map(([key, value]) => `${key}: ${value}`)\n .join('; ');\n \n element.setAttribute('style', mergedStyle);\n });\n \n return container.innerHTML;\n }\n \n // Fallback to original content if parsing fails\n return content;\n }\n }, [JSON.stringify(section)]);\n\n // Local save function - renamed to avoid conflict with handleSave prop\n const saveSection = () => {\n const updatedContent = generateContent();\n \n const updatedSection = {\n content: updatedContent, \n type: sectionType as ElementType,\n rowLevel: rowLevel,\n name: tableData.name || '',\n attributes: {\n ...(section?.attributes || {}),\n ...(sectionType === 'table' ? { tableData } : {})\n },\n is_edited_from_source: (section as EnhancedSectionData)?.is_edited_from_source || false\n };\n \n onUpdate(updatedSection);\n };\nuseEffect(() => {\n saveSection();\n},[tableData])\n /**\n * Updates section attributes and triggers content regeneration.\n * Optimized to avoid unnecessary property spreading and glitches.\n */\n const updateAttrs = (prop: Record<string, any>) => {\n if (!section) return;\n\n // Merge styles safely\n const mergedStyles = {\n ...(section.attributes?.styles || {}),\n ...(prop.styles || {})\n };\n\n // Merge attributes, giving priority to new props\n const mergedAttributes = {\n ...(section.attributes || {}),\n ...prop,\n styles: mergedStyles,\n ...(sectionType === 'table' ? { tableData } : {})\n };\n\n // Prepare updated section object (exclude 'id' if present)\n const { id, ...sectionRest } = section as any;\n\n // Generate updated content based on new attributes\n const updatedContent = generateContent(mergedAttributes);\n setSelectedContentAttrObj(mergedAttributes)\n\n // Compose the update payload, omitting unknown properties\n onUpdate({\n ...sectionRest,\n content: updatedContent,\n attributes: mergedAttributes\n });\n };\n\n // Update table data and trigger content regeneration\n const handleTableDataUpdate = (newTableData: TableData) => {\n setTableData(newTableData);\n \n // Trigger immediate update with new table data\n const updatedAttrs = {\n ...(section?.attributes || {}),\n tableData: newTableData\n };\n \n // const updatedContent = generateContent(updatedAttrs);\n // onUpdate({\n // ...section,\n // content: updatedContent,\n // attributes: updatedAttrs\n // });\n saveSection();\n };\n\n const handleTypeChange = (t) => {\n const dt = getInitialSectionData(t)\n \n onUpdate({ \n ...section, \n ...dt\n });\n \n // Reset table data when switching types\n if (t === 'table') {\n setTableData({\n name: '', // Initialize with empty name\n columns: [\n { id: 'col1', header: 'Column 1' },\n { id: 'col2', header: 'Column 2' },\n { id: 'col3', header: 'Column 3' }\n ],\n rows: [\n { col1: '', col2: '', col3: '' }\n ],\n border: true,\n mergedCells: []\n });\n }\n }\n\n return (\n <Paper\n elevation={3}\n sx={{\n width: { xs: '100%', sm: 320, lg: 390 },\n height: '100%',\n overflow: 'auto',\n borderLeft: '1px solid',\n borderColor: 'divider',\n display: 'flex',\n flexDirection: 'column',\n bgcolor: 'background.paper',\n boxShadow: 'none',\n }}\n >\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n p: 2,\n borderBottom: '1px solid',\n borderColor: 'divider',\n bgcolor: 'grey.50',\n }}\n >\n <Typography type=\"s1\" weight='bold' color='theme.neutral.1000'>\n Format {sectionType ? sectionType?.charAt(0)?.toUpperCase() + sectionType?.slice(1).replace(/-/g, ' ') : ''}\n </Typography>\n <Tooltip title=\"Save and Close\">\n <Box>\n <IconButton size=\"small\" onClick={() => {\n saveSection();\n handleSave?.();\n onClose();\n }} aria-label=\"Save\">\n <Save fontSize=\"small\" />\n </IconButton>\n <IconButton size=\"small\" onClick={onClose} aria-label=\"Close\">\n <CloseIcon fontSize=\"small\" />\n </IconButton>\n </Box>\n </Tooltip>\n </Box>\n\n <Box sx={{ p: 2, flex: 1,pb:10, overflowY: 'auto' }}>\n <Box sx={{ mb: 2 }}>\n <FormControl size=\"small\" fullWidth>\n <Select\n value={section?.type}\n onChange={(e) => handleTypeChange(e.target.value)}\n renderValue={v => v ? v.charAt(0).toUpperCase() + v.slice(1).replace(/-/g, ' ') : ''}\n label='Select Preset'\n displayEmpty\n >\n {sectionTypes.map((type) => (\n <MenuItem key={type} value={type}>\n <Typography type='s4' color='theme.secondary.1000'>{type.charAt(0).toUpperCase() + type.slice(1).replace(/-/g, ' ')}</Typography>\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n </Box>\n \n {section && (sectionType === 'text' || \n sectionType === 'heading' || \n sectionType === 'heading-2' || \n sectionType === 'heading-3' || \n sectionType === 'heading-4') && (\n <TextControls\n attrs={section?.attributes || {}}\n updateAttrs={updateAttrs}\n />\n )}\n {sectionType === 'buttons' && (\n <ButtonControls\n attrs={section?.attributes || {}}\n updateAttrs={updateAttrs}\n />\n )}\n {sectionType === 'image' && (\n <ImageControls\n attrs={section?.attributes || {}}\n updateAttrs={updateAttrs}\n />\n )}\n {sectionType === 'divider' && (\n <DividerControls\n attrs={section?.attributes || {}}\n updateAttrs={updateAttrs}\n />\n )}\n {sectionType === 'table' && (\n <TableControls\n tableData={{\n ...tableData,\n rows: tableData.rows.map(row => {\n const convertedRow: Record<string, string> = {};\n Object.keys(row).forEach(key => {\n convertedRow[key] = String(row[key] ?? '');\n });\n return convertedRow;\n })\n }}\n setTableData={(value) => {\n handleTableDataUpdate({\n ...value,\n border: tableData.border,\n name: tableData.name || ''\n });\n }}\n attrs={section?.attributes || {}}\n updateAttrs={updateAttrs}\n placeholders={placeholders}\n handleSave={handleSave}\n setParentRowLevel={setRowLevel}\n levelType={rowLevel}\n relation_table={relation_table}\n />\n )}\n {sectionType === 'signature' && (\n <SignatureControls\n attrs={section?.attributes || {}}\n updateAttrs={updateAttrs}\n />\n )}\n {section && (sectionType === 'qr-code' || sectionType === 'bar-code') && (\n <CodeControls\n attrs={section?.attributes || {}}\n updateAttrs={updateAttrs}\n />\n )}\n </Box>\n </Paper>\n );\n};\n\nexport default SectionFormatPanel;"],"names":["_a","_b","section","CloseIcon"],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","sources":["../../../../../src/views/template-editor/components/SectionFormatPanel.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, { useState, useEffect, useMemo, useCallback } from 'react';\r\nimport {\r\n Box,\r\n Paper,\r\n IconButton,\r\n FormControl,\r\n MenuItem,\r\n Tooltip,\r\n} from '@mui/material';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport { Save } from '../../../components/icons';\r\nimport Typography from '../../../components/typography/typography';\r\n\r\n// Import sub-components\r\nimport TextControls from './controllers/TextControls';\r\nimport ButtonControls from './controllers/ButtonControls';\r\nimport ImageControls from './controllers/ImageControls';\r\nimport DividerControls from './controllers/DividerControls';\r\nimport TableControls from './controllers/TableControls';\r\nimport SignatureControls from './controllers/SignatureControls';\r\nimport CodeControls from './controllers/CodeControls';\r\nimport Select from '../../../components/select/select';\r\nimport { EnhancedSectionData, ElementType } from '../types/editor';\r\nimport { initialStyles } from '../utils/constant';\r\nimport { extractStyles, generateInlineStyles, getInitialSectionData } from '../utils/common';\r\n// import { useCKEditorStyleExtractor } from '../utils/style-extractor';\r\n\r\n// Shared types for SectionFormatPanel and sub-components\r\nexport interface TableColumn {\r\n id: string;\r\n header: string;\r\n placeholder?: string;\r\n}\r\n\r\nexport interface TableRow {\r\n [key: string]: string | number | boolean;\r\n}\r\n\r\nexport interface CellMerge {\r\n section: 'thead' | 'tbody';\r\n rowStart: number;\r\n rowEnd: number;\r\n colStart: number;\r\n colEnd: number;\r\n value: string;\r\n}\r\n\r\nexport interface TableData {\r\n name?: string; // Added name property for #each iteration\r\n columns: TableColumn[];\r\n rows: TableRow[];\r\n border: boolean;\r\n mergedCells?: CellMerge[];\r\n}\r\n\r\ninterface SectionData {\r\n type: 'text' | 'text-block' | 'heading' | 'heading-2' | 'heading-3' | 'heading-4' | 'buttons' | 'image' | 'divider' | 'table' | 'signature' | 'qr-code' | 'bar-code';\r\n content: string;\r\n attributes?: {\r\n styles?: any;\r\n placeholders?: Record<string, string>;\r\n tableData?: TableData;\r\n [key: string]: any;\r\n };\r\n}\r\n\r\ninterface SectionFormatPanelProps {\r\n section: SectionData | undefined;\r\n onClose: () => void;\r\n onUpdate: (data: Partial<EnhancedSectionData>) => void;\r\n placeholders: Record<string, any>[];\r\n relation_table?:any;\r\n handleSave?: () => void;\r\n}\r\n\r\nconst sectionTypes = ['text','text-block','heading','heading-2','heading-3','heading-4','buttons','image','divider','table','signature','qr-code','bar-code']\r\n\r\nconst SectionFormatPanel: React.FC<SectionFormatPanelProps> = ({ \r\n section, \r\n onClose, \r\n onUpdate,\r\n placeholders,\r\n relation_table,\r\n handleSave }) => {\r\n // const { applyStylesToHtml } = useCKEditorStyleExtractor()\r\n // const [plainContent, setPlainContent] = useState('');\r\n const sectionType = useMemo(() => section?.type || 'text', [section?.type]);\r\n const content = useMemo(() => section?.content || 'text', [section?.content]);\r\n const [formatOptions, setFormatOptions] = useState<string[]>([]);\r\n const[rowLevel, setRowLevel] = useState<boolean>((section?.attributes as any)?.rowLevel || false);\r\n const [tableData, setTableData] = useState<TableData>({\r\n name: '', // Initialize with empty name\r\n columns: [\r\n { id: 'col1', header: 'Column 1' },\r\n { id: 'col2', header: 'Column 2' },\r\n { id: 'col3', header: 'Column 3' }\r\n ],\r\n rows: [\r\n { col1: '', col2: '', col3: '' }\r\n ],\r\n border: true,\r\n mergedCells: []\r\n });\r\n const [isInitialLoad, setIsInitialLoad] = useState(true);\r\n const [selectedContentAttrObj, setSelectedContentAttrObj] = useState(extractStyles(content, section?.type));\r\n\r\n // Initialize table data from section attributes\r\n useEffect(() => {\r\n if (section && section.type === 'table') {\r\n // If section has stored table data, use it\r\n if (section.attributes?.tableData) {\r\n setTableData(section.attributes.tableData);\r\n } else {\r\n // Try to extract table data from HTML content\r\n const extractedTableData = extractTableDataFromHTML(section.content);\r\n if (extractedTableData) {\r\n setTableData(extractedTableData);\r\n setRowLevel((section?.attributes as any)?.rowLevel || false);\r\n }\r\n }\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (section && !isInitialLoad) {\r\n const tempDiv = document.createElement('div');\r\n tempDiv.innerHTML = section.content;\r\n const text = tempDiv.textContent || '';\r\n // setPlainContent(text);\r\n setSelectedContentAttrObj(extractStyles(section.content, section?.type)?.styles)\r\n setIsInitialLoad(false);\r\n }\r\n }, [section]);\r\n\r\n // Extract table data from HTML content\r\n const extractTableDataFromHTML = (htmlContent: string): TableData | null => {\r\n try {\r\n const parser = new DOMParser();\r\n const doc = parser.parseFromString(htmlContent, 'text/html');\r\n const table = doc.querySelector('table');\r\n \r\n if (!table) return null;\r\n\r\n const headerRows = table.querySelectorAll('thead tr');\r\n const bodyRows = table.querySelectorAll('tbody tr');\r\n\r\n if (headerRows.length === 0) return null;\r\n\r\n // Extract columns from the first header row\r\n const headerCells = headerRows[0].querySelectorAll('th');\r\n const columns: TableColumn[] = Array.from(headerCells).map((th, index) => ({\r\n id: `col${index + 1}`,\r\n header: th.textContent?.trim() || `Column ${index + 1}`\r\n }));\r\n\r\n // Extract merged cells from thead\r\n const mergedCells: CellMerge[] = [];\r\n Array.from(headerRows).forEach((row, rowIndex) => {\r\n const cells = row.querySelectorAll('th');\r\n cells.forEach((cell, colIndex) => {\r\n const rowSpan = parseInt(cell.getAttribute('rowspan') || '1');\r\n const colSpan = parseInt(cell.getAttribute('colspan') || '1');\r\n if (rowSpan > 1 || colSpan > 1) {\r\n mergedCells.push({\r\n section: 'thead',\r\n rowStart: rowIndex,\r\n rowEnd: rowIndex + rowSpan - 1,\r\n colStart: colIndex,\r\n colEnd: colIndex + colSpan - 1,\r\n value: cell.textContent?.trim() || ''\r\n });\r\n }\r\n });\r\n });\r\n\r\n // Extract rows\r\n const rows: TableRow[] = Array.from(bodyRows).map(row => {\r\n const cells = row.querySelectorAll('td');\r\n const rowData: TableRow = {};\r\n \r\n cells.forEach((cell, index) => {\r\n if (index < columns.length) {\r\n rowData[columns[index].id] = cell.textContent?.trim() || '';\r\n }\r\n });\r\n \r\n return rowData;\r\n });\r\n\r\n // Extract merged cells from tbody\r\n Array.from(bodyRows).forEach((row, rowIndex) => {\r\n const cells = row.querySelectorAll('td');\r\n cells.forEach((cell, colIndex) => {\r\n const rowSpan = parseInt(cell.getAttribute('rowspan') || '1');\r\n const colSpan = parseInt(cell.getAttribute('colspan') || '1');\r\n if (rowSpan > 1 || colSpan > 1) {\r\n mergedCells.push({\r\n section: 'tbody',\r\n rowStart: rowIndex,\r\n rowEnd: rowIndex + rowSpan - 1,\r\n colStart: colIndex,\r\n colEnd: colIndex + colSpan - 1,\r\n value: cell.textContent?.trim() || ''\r\n });\r\n }\r\n });\r\n });\r\n\r\n return {\r\n name: '', // Default empty name\r\n columns,\r\n rows: rows.length > 0 ? rows : [{}],\r\n border: true,\r\n mergedCells\r\n };\r\n } catch (error) {\r\n return null;\r\n }\r\n };\r\n\r\n // Get placeholder value for table generation\r\n const getPlaceholderValue = (placeholderKey: string): string => {\r\n const placeholder = placeholders.find(p => p.value === placeholderKey);\r\n if (!placeholder) return '';\r\n \r\n // Return actual value or generate sample based on type\r\n if (typeof placeholder.actualValue !== 'undefined') {\r\n return String(placeholder.actualValue);\r\n }\r\n \r\n switch (placeholder.type) {\r\n case 'date':\r\n return new Date().toLocaleDateString();\r\n case 'datetime':\r\n return new Date().toLocaleString();\r\n case 'number':\r\n return '123';\r\n case 'currency':\r\n return '$1,234.56';\r\n case 'email':\r\n return 'example@domain.com';\r\n case 'phone':\r\n return '+1 (555) 123-4567';\r\n case 'url':\r\n return 'https://example.com';\r\n default:\r\n return placeholder.label || placeholder.value;\r\n }\r\n };\r\n\r\n const generateContent = useCallback((attrs?: Record<any, any>): string => {\r\n const { src, alt, styles: eStyles, text, placeholder, placeholders: tPlaceholders } = attrs || section?.attributes || selectedContentAttrObj || {}\r\n const styles = {\r\n ...initialStyles[sectionType],\r\n ...eStyles,\r\n ...selectedContentAttrObj?.styles,\r\n ...attrs?.styles\r\n }\r\n\r\n const inlineStyles = generateInlineStyles(styles);\r\n \r\n // For buttons, images, dividers, and codes - use the existing logic\r\n if (sectionType === 'buttons') {\r\n return `<button style=\"${inlineStyles}\">${text || 'Button Text'}</button>`;\r\n } else if (sectionType === 'image') {\r\n let imgInlineStyles: string = inlineStyles;\r\n if(styles?.is_bordered) {\r\n styles.padding = '10px';\r\n imgInlineStyles = generateInlineStyles(styles);\r\n } else{\r\n styles.padding = '0';\r\n imgInlineStyles = generateInlineStyles(styles);\r\n }\r\n return `<img src=\"${src || ''}\" alt=\"${alt || ''}\" style=\"${imgInlineStyles}\" />`;\r\n } else if (sectionType === 'divider') {\r\n return `<hr style=\"${inlineStyles}\" />`;\r\n } else if (sectionType === 'table') {\r\n const { border, borderStyle, borderColor, ...rest } = styles;\r\n const tInlineStyles = generateInlineStyles(styles.is_bordered ? styles : rest); \r\n const tHeadInlineStyles: string = generateInlineStyles(styles.tHead || {});\r\n const tBodyInlineStyles: string = generateInlineStyles(styles.tBody || {});\r\n const thCellInlineStyles: string = generateInlineStyles({\r\n ...(styles.thCells || {}), \r\n ...(styles.is_bordered ? { border, borderStyle, borderColor } : {}) \r\n });\r\n const tbCellInlineStyles: string = generateInlineStyles({\r\n ...(styles.tbCells || {}), \r\n ...(styles.is_bordered ? { border, borderStyle, borderColor } : {})\r\n });\r\n\r\n // Helper function to check if a cell is part of a merge\r\n const getCellMergeInfo = (section: 'thead' | 'tbody', rowIndex: number, colIndex: number) => {\r\n return tableData.mergedCells?.find(m => \r\n m.section === section &&\r\n rowIndex >= m.rowStart && rowIndex <= m.rowEnd &&\r\n colIndex >= m.colStart && colIndex <= m.colEnd\r\n );\r\n };\r\n\r\n // Generate header row with merge support\r\n const headerCellsHTML = tableData.columns.map((column, colIndex) => {\r\n const mergeInfo = getCellMergeInfo('thead', 0, colIndex);\r\n \r\n if (mergeInfo && (colIndex !== mergeInfo.colStart)) {\r\n return '';\r\n }\r\n\r\n const mergeAttributes = mergeInfo ? \r\n ` rowspan=\"${mergeInfo.rowEnd - mergeInfo.rowStart + 1}\" colspan=\"${mergeInfo.colEnd - mergeInfo.colStart + 1}\"` : '';\r\n \r\n const cellValue = mergeInfo ? mergeInfo.value : column.header;\r\n\r\n return `<th style=\"${thCellInlineStyles}\"${mergeAttributes}>${cellValue}</th>`;\r\n }).filter(cell => cell !== '').join('');\r\n\r\n // Generate table body with #each loop using tableData.name\r\n let tableRowsHTML = '';\r\n \r\n // Check if we should use #each loop with tableData.name\r\n if (tableData.name) {\r\n // Generate template with #each handlebars syntax\r\n const rowTemplate = tableData.columns.map((column, colIndex) => {\r\n const mergeInfo = getCellMergeInfo('tbody', 0, colIndex); // Use first row as template\r\n \r\n if (mergeInfo && (colIndex !== mergeInfo.colStart)) {\r\n return '';\r\n }\r\n\r\n const mergeAttributes = mergeInfo ? \r\n ` rowspan=\"${mergeInfo.rowEnd - mergeInfo.rowStart + 1}\" colspan=\"${mergeInfo.colEnd - mergeInfo.colStart + 1}\"` : '';\r\n \r\n // Use handlebars template syntax for dynamic content\r\n let cellTemplate = '';\r\n \r\n // Handle special cases\r\n if (column.id === 'index' || column.id === 'incrementIndex') {\r\n cellTemplate = `{{incrementIndex @index}}`;\r\n } else if (column.id.includes('.')) {\r\n // Handle nested properties (like items.sku, tax_code_data.[0].rate)\r\n const cellValue = tableData?.rows?.[0][column.id];\r\n cellTemplate = typeof cellValue === 'string' ? cellValue.replace(tableData.name + '.', '') : String(cellValue || '');\r\n } else {\r\n // Direct property access\r\n const cellValue = tableData?.rows?.[0][column.id];\r\n cellTemplate = typeof cellValue === 'string' ? cellValue.replace(tableData.name + '.', '') : String(cellValue || '');\r\n }\r\n\r\n return `<td style=\"${tbCellInlineStyles}\"${mergeAttributes}>${cellTemplate}</td>`;\r\n }).filter(cell => cell !== '').join('');\r\n\r\n // Add zebra striping logic if enabled\r\n const rowStyleTemplate = styles.tBody?.zebraStriping \r\n ? `{{#if (isOdd @index)}}${tBodyInlineStyles}; background-color: ${styles.tBody.alternateRowColor || '#f9f9f9'}{{else}}${tBodyInlineStyles}{{/if}}`\r\n : tBodyInlineStyles;\r\n\r\n tableRowsHTML = `{{#each ${tableData.name}}}\r\n <tr style=\"${rowStyleTemplate}\">\r\n ${rowTemplate}\r\n </tr>\r\n {{/each}}`;\r\n \r\n } else {\r\n // Fallback to static rows when no tableData.name is provided\r\n tableRowsHTML = tableData.rows.map((row, rowIndex) => {\r\n const rowStyleAddition = styles.tBody?.zebraStriping && rowIndex % 2 === 1 \r\n ? `; background-color: ${styles.tBody.alternateRowColor || '#f9f9f9'}` \r\n : '';\r\n \r\n const cellsHTML = tableData.columns.map((column, colIndex) => {\r\n const mergeInfo = getCellMergeInfo('tbody', rowIndex, colIndex);\r\n \r\n if (mergeInfo && (rowIndex !== mergeInfo.rowStart || colIndex !== mergeInfo.colStart)) {\r\n return '';\r\n }\r\n\r\n let cellValue = row[column.id] || '';\r\n const keys = Object.keys(row)\r\n if(keys.includes(`${column.id}_static`)) {\r\n cellValue = row[`${column.id}_static`] || '';\r\n }\r\n if (!cellValue && tPlaceholders?.[column.id]) {\r\n cellValue = getPlaceholderValue(tPlaceholders[column.id]);\r\n }\r\n\r\n const mergeAttributes = mergeInfo ? \r\n ` rowspan=\"${mergeInfo.rowEnd - mergeInfo.rowStart + 1}\" colspan=\"${mergeInfo.colEnd - mergeInfo.colStart + 1}\"` : '';\r\n \r\n const finalCellValue = mergeInfo ? mergeInfo.value : cellValue;\r\n\r\n return `<td style=\"${tbCellInlineStyles}\"${mergeAttributes}>${finalCellValue}</td>`;\r\n }).filter(cell => cell !== '').join('');\r\n \r\n return `<tr style=\"${tBodyInlineStyles}${rowStyleAddition}\">${cellsHTML}</tr>`;\r\n }).join('');\r\n }\r\n \r\n return `\r\n <table style=\"${tInlineStyles}\">\r\n <thead>\r\n <tr style=\"${tHeadInlineStyles}\">\r\n ${headerCellsHTML}\r\n </tr>\r\n </thead>\r\n <tbody>\r\n ${tableRowsHTML}\r\n </tbody>\r\n </table>\r\n `;\r\n } else if (sectionType === 'qr-code' || sectionType === 'bar-code') {\r\n return `<div style=\"${inlineStyles}\">${placeholder}</div>`;\r\n }\r\n \r\n // For text-based sections, parse and apply styles to existing HTML tags\r\n const hasHtmlTags = /<\\/?[a-z][\\s\\S]*>/i.test(content);\r\n \r\n if (!hasHtmlTags) {\r\n // If no HTML tags, wrap according to section type\r\n switch (sectionType) {\r\n case 'text':\r\n case 'text-block':\r\n return `<p style=\"${inlineStyles}\">${content}</p>`;\r\n case 'heading':\r\n return `<h1 style=\"${inlineStyles}\">${content}</h1>`;\r\n case 'heading-2':\r\n return `<h2 style=\"${inlineStyles}\">${content}</h2>`;\r\n case 'heading-3':\r\n return `<h3 style=\"${inlineStyles}\">${content}</h3>`;\r\n case 'heading-4':\r\n return `<h4 style=\"${inlineStyles}\">${content}</h4>`;\r\n case 'signature':\r\n return `<div style=\"${inlineStyles}\">${content}</div>`;\r\n default:\r\n return `<p style=\"${inlineStyles}\">${content}</p>`;\r\n }\r\n } else {\r\n // Create a temporary DOM element to manipulate the HTML\r\n const parser = new DOMParser();\r\n const doc = parser.parseFromString(`<div>${content}</div>`, 'text/html');\r\n const container = doc.body.firstChild as Element;\r\n \r\n // Process all child elements\r\n if (container && container.nodeType === Node.ELEMENT_NODE) {\r\n const elements = container.querySelectorAll('*');\r\n\r\n elements.forEach(element => {\r\n // Skip processing script tags or other special elements\r\n if (element.tagName === 'SCRIPT' || element.tagName === 'STYLE') {\r\n return;\r\n }\r\n \r\n // Get existing style and merge with new style\r\n const existingStyle = element.getAttribute('style') || '';\r\n \r\n // Extract properties from existing style\r\n const existingProps = {};\r\n existingStyle.split(';').forEach(prop => {\r\n const [key, value] = prop.split(':').map(item => item.trim());\r\n if (key && value) {\r\n existingProps[key] = value;\r\n }\r\n });\r\n \r\n // Parse the base style and prepare for merging\r\n const newStyleProps = {};\r\n inlineStyles.split(';').forEach(prop => {\r\n const [key, value] = prop.split(':').map(item => item.trim());\r\n if (key && value) {\r\n newStyleProps[key] = value;\r\n }\r\n });\r\n \r\n // Additional styles based on tag type\r\n if (element.tagName === 'P' || element.tagName === 'DIV') {\r\n newStyleProps['line-height'] = '1.5';\r\n } else if (['H1', 'H2', 'H3', 'H4', 'H5', 'H6'].includes(element.tagName)) {\r\n newStyleProps['line-height'] = '1.2';\r\n newStyleProps['margin'] = '0.5em 0';\r\n }\r\n \r\n // Merge styles, new styles override existing ones\r\n const mergedProps = { ...existingProps, ...newStyleProps };\r\n \r\n // Convert back to style string\r\n const mergedStyle = Object.entries(mergedProps)\r\n .filter(([key, value]) => key && value)\r\n .map(([key, value]) => `${key}: ${value}`)\r\n .join('; ');\r\n \r\n element.setAttribute('style', mergedStyle);\r\n });\r\n \r\n return container.innerHTML;\r\n }\r\n \r\n // Fallback to original content if parsing fails\r\n return content;\r\n }\r\n }, [JSON.stringify(section)]);\r\n\r\n // Local save function - renamed to avoid conflict with handleSave prop\r\n const saveSection = () => {\r\n const updatedContent = generateContent();\r\n \r\n const updatedSection = {\r\n content: updatedContent, \r\n type: sectionType as ElementType,\r\n rowLevel: rowLevel,\r\n name: tableData.name || '',\r\n attributes: {\r\n ...(section?.attributes || {}),\r\n ...(sectionType === 'table' ? { tableData } : {})\r\n },\r\n is_edited_from_source: (section as EnhancedSectionData)?.is_edited_from_source || false\r\n };\r\n \r\n onUpdate(updatedSection);\r\n };\r\nuseEffect(() => {\r\n saveSection();\r\n},[tableData])\r\n /**\r\n * Updates section attributes and triggers content regeneration.\r\n * Optimized to avoid unnecessary property spreading and glitches.\r\n */\r\n const updateAttrs = (prop: Record<string, any>) => {\r\n if (!section) return;\r\n\r\n // Merge styles safely\r\n const mergedStyles = {\r\n ...(section.attributes?.styles || {}),\r\n ...(prop.styles || {})\r\n };\r\n\r\n // Merge attributes, giving priority to new props\r\n const mergedAttributes = {\r\n ...(section.attributes || {}),\r\n ...prop,\r\n styles: mergedStyles,\r\n ...(sectionType === 'table' ? { tableData } : {})\r\n };\r\n\r\n // Prepare updated section object (exclude 'id' if present)\r\n const { id, ...sectionRest } = section as any;\r\n\r\n // Generate updated content based on new attributes\r\n const updatedContent = generateContent(mergedAttributes);\r\n setSelectedContentAttrObj(mergedAttributes)\r\n\r\n // Compose the update payload, omitting unknown properties\r\n onUpdate({\r\n ...sectionRest,\r\n content: updatedContent,\r\n attributes: mergedAttributes\r\n });\r\n };\r\n\r\n // Update table data and trigger content regeneration\r\n const handleTableDataUpdate = (newTableData: TableData) => {\r\n setTableData(newTableData);\r\n \r\n // Trigger immediate update with new table data\r\n const updatedAttrs = {\r\n ...(section?.attributes || {}),\r\n tableData: newTableData\r\n };\r\n \r\n // const updatedContent = generateContent(updatedAttrs);\r\n // onUpdate({\r\n // ...section,\r\n // content: updatedContent,\r\n // attributes: updatedAttrs\r\n // });\r\n saveSection();\r\n };\r\n\r\n const handleTypeChange = (t) => {\r\n const dt = getInitialSectionData(t)\r\n \r\n onUpdate({ \r\n ...section, \r\n ...dt\r\n });\r\n \r\n // Reset table data when switching types\r\n if (t === 'table') {\r\n setTableData({\r\n name: '', // Initialize with empty name\r\n columns: [\r\n { id: 'col1', header: 'Column 1' },\r\n { id: 'col2', header: 'Column 2' },\r\n { id: 'col3', header: 'Column 3' }\r\n ],\r\n rows: [\r\n { col1: '', col2: '', col3: '' }\r\n ],\r\n border: true,\r\n mergedCells: []\r\n });\r\n }\r\n }\r\n\r\n return (\r\n <Paper\r\n elevation={3}\r\n sx={{\r\n width: { xs: '100%', sm: 320, lg: 390 },\r\n height: '100%',\r\n overflow: 'auto',\r\n borderLeft: '1px solid',\r\n borderColor: 'divider',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n bgcolor: 'background.paper',\r\n boxShadow: 'none',\r\n }}\r\n >\r\n <Box\r\n sx={{\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n p: 2,\r\n borderBottom: '1px solid',\r\n borderColor: 'divider',\r\n bgcolor: 'grey.50',\r\n }}\r\n >\r\n <Typography type=\"s1\" weight='bold' color='theme.neutral.1000'>\r\n Format {sectionType ? sectionType?.charAt(0)?.toUpperCase() + sectionType?.slice(1).replace(/-/g, ' ') : ''}\r\n </Typography>\r\n <Tooltip title=\"Save and Close\">\r\n <Box>\r\n <IconButton size=\"small\" onClick={() => {\r\n saveSection();\r\n handleSave?.();\r\n onClose();\r\n }} aria-label=\"Save\">\r\n <Save fontSize=\"small\" />\r\n </IconButton>\r\n <IconButton size=\"small\" onClick={onClose} aria-label=\"Close\">\r\n <CloseIcon fontSize=\"small\" />\r\n </IconButton>\r\n </Box>\r\n </Tooltip>\r\n </Box>\r\n\r\n <Box sx={{ p: 2, flex: 1,pb:10, overflowY: 'auto' }}>\r\n <Box sx={{ mb: 2 }}>\r\n <FormControl size=\"small\" fullWidth>\r\n <Select\r\n value={section?.type}\r\n onChange={(e) => handleTypeChange(e.target.value)}\r\n renderValue={v => v ? v.charAt(0).toUpperCase() + v.slice(1).replace(/-/g, ' ') : ''}\r\n label='Select Preset'\r\n displayEmpty\r\n >\r\n {sectionTypes.map((type) => (\r\n <MenuItem key={type} value={type}>\r\n <Typography type='s4' color='theme.secondary.1000'>{type.charAt(0).toUpperCase() + type.slice(1).replace(/-/g, ' ')}</Typography>\r\n </MenuItem>\r\n ))}\r\n </Select>\r\n </FormControl>\r\n </Box>\r\n \r\n {section && (sectionType === 'text' || \r\n sectionType === 'heading' || \r\n sectionType === 'heading-2' || \r\n sectionType === 'heading-3' || \r\n sectionType === 'heading-4') && (\r\n <TextControls\r\n attrs={section?.attributes || {}}\r\n updateAttrs={updateAttrs}\r\n />\r\n )}\r\n {sectionType === 'buttons' && (\r\n <ButtonControls\r\n attrs={section?.attributes || {}}\r\n updateAttrs={updateAttrs}\r\n />\r\n )}\r\n {sectionType === 'image' && (\r\n <ImageControls\r\n attrs={section?.attributes || {}}\r\n updateAttrs={updateAttrs}\r\n />\r\n )}\r\n {sectionType === 'divider' && (\r\n <DividerControls\r\n attrs={section?.attributes || {}}\r\n updateAttrs={updateAttrs}\r\n />\r\n )}\r\n {sectionType === 'table' && (\r\n <TableControls\r\n tableData={{\r\n ...tableData,\r\n rows: tableData.rows.map(row => {\r\n const convertedRow: Record<string, string> = {};\r\n Object.keys(row).forEach(key => {\r\n convertedRow[key] = String(row[key] ?? '');\r\n });\r\n return convertedRow;\r\n })\r\n }}\r\n setTableData={(value) => {\r\n handleTableDataUpdate({\r\n ...value,\r\n border: tableData.border,\r\n name: tableData.name || ''\r\n });\r\n }}\r\n attrs={section?.attributes || {}}\r\n updateAttrs={updateAttrs}\r\n placeholders={placeholders}\r\n handleSave={handleSave}\r\n setParentRowLevel={setRowLevel}\r\n levelType={rowLevel}\r\n relation_table={relation_table}\r\n />\r\n )}\r\n {sectionType === 'signature' && (\r\n <SignatureControls\r\n attrs={section?.attributes || {}}\r\n updateAttrs={updateAttrs}\r\n />\r\n )}\r\n {section && (sectionType === 'qr-code' || sectionType === 'bar-code') && (\r\n <CodeControls\r\n attrs={section?.attributes || {}}\r\n updateAttrs={updateAttrs}\r\n />\r\n )}\r\n </Box>\r\n </Paper>\r\n );\r\n};\r\n\r\nexport default SectionFormatPanel;"],"names":["_a","_b","section","CloseIcon"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/views/template-editor/components/SectionFormatPanel.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, { useState, useEffect, useMemo, useCallback } from 'react';\nimport {\n Box,\n Paper,\n IconButton,\n FormControl,\n MenuItem,\n Tooltip,\n} from '@mui/material';\nimport CloseIcon from '@mui/icons-material/Close';\nimport { Save } from '../../../components/icons';\nimport Typography from '../../../components/typography/typography';\n\n// Import sub-components\nimport TextControls from './controllers/TextControls';\nimport ButtonControls from './controllers/ButtonControls';\nimport ImageControls from './controllers/ImageControls';\nimport DividerControls from './controllers/DividerControls';\nimport TableControls from './controllers/TableControls';\nimport SignatureControls from './controllers/SignatureControls';\nimport CodeControls from './controllers/CodeControls';\nimport Select from '../../../components/select/select';\nimport { EnhancedSectionData, ElementType } from '../types/editor';\nimport { initialStyles } from '../utils/constant';\nimport { extractStyles, generateInlineStyles, getInitialSectionData } from '../utils/common';\n// import { useCKEditorStyleExtractor } from '../utils/style-extractor';\n\n// Shared types for SectionFormatPanel and sub-components\nexport interface TableColumn {\n id: string;\n header: string;\n placeholder?: string;\n}\n\nexport interface TableRow {\n [key: string]: string | number | boolean;\n}\n\nexport interface CellMerge {\n section: 'thead' | 'tbody';\n rowStart: number;\n rowEnd: number;\n colStart: number;\n colEnd: number;\n value: string;\n}\n\nexport interface TableData {\n name?: string; // Added name property for #each iteration\n columns: TableColumn[];\n rows: TableRow[];\n border: boolean;\n mergedCells?: CellMerge[];\n}\n\ninterface SectionData {\n type: 'text' | 'text-block' | 'heading' | 'heading-2' | 'heading-3' | 'heading-4' | 'buttons' | 'image' | 'divider' | 'table' | 'signature' | 'qr-code' | 'bar-code';\n content: string;\n attributes?: {\n styles?: any;\n placeholders?: Record<string, string>;\n tableData?: TableData;\n [key: string]: any;\n };\n}\n\ninterface SectionFormatPanelProps {\n section: SectionData | undefined;\n onClose: () => void;\n onUpdate: (data: Partial<EnhancedSectionData>) => void;\n placeholders: Record<string, any>[];\n relation_table?:any;\n handleSave?: () => void;\n}\n\nconst sectionTypes = ['text','text-block','heading','heading-2','heading-3','heading-4','buttons','image','divider','table','signature','qr-code','bar-code']\n\nconst SectionFormatPanel: React.FC<SectionFormatPanelProps> = ({ \n section, \n onClose, \n onUpdate,\n placeholders,\n relation_table,\n handleSave }) => {\n // const { applyStylesToHtml } = useCKEditorStyleExtractor()\n // const [plainContent, setPlainContent] = useState('');\n const sectionType = useMemo(() => section?.type || 'text', [section?.type]);\n const content = useMemo(() => section?.content || 'text', [section?.content]);\n const [formatOptions, setFormatOptions] = useState<string[]>([]);\n const[rowLevel, setRowLevel] = useState<boolean>((section?.attributes as any)?.rowLevel || false);\n const [tableData, setTableData] = useState<TableData>({\n name: '', // Initialize with empty name\n columns: [\n { id: 'col1', header: 'Column 1' },\n { id: 'col2', header: 'Column 2' },\n { id: 'col3', header: 'Column 3' }\n ],\n rows: [\n { col1: '', col2: '', col3: '' }\n ],\n border: true,\n mergedCells: []\n });\n const [isInitialLoad, setIsInitialLoad] = useState(true);\n const [selectedContentAttrObj, setSelectedContentAttrObj] = useState(extractStyles(content, section?.type));\n\n // Initialize table data from section attributes\n useEffect(() => {\n if (section && section.type === 'table') {\n // If section has stored table data, use it\n if (section.attributes?.tableData) {\n setTableData(section.attributes.tableData);\n } else {\n // Try to extract table data from HTML content\n const extractedTableData = extractTableDataFromHTML(section.content);\n if (extractedTableData) {\n setTableData(extractedTableData);\n setRowLevel((section?.attributes as any)?.rowLevel || false);\n }\n }\n }\n }, []);\n\n useEffect(() => {\n if (section && !isInitialLoad) {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = section.content;\n const text = tempDiv.textContent || '';\n // setPlainContent(text);\n setSelectedContentAttrObj(extractStyles(section.content, section?.type)?.styles)\n setIsInitialLoad(false);\n }\n }, [section]);\n\n // Extract table data from HTML content\n const extractTableDataFromHTML = (htmlContent: string): TableData | null => {\n try {\n const parser = new DOMParser();\n const doc = parser.parseFromString(htmlContent, 'text/html');\n const table = doc.querySelector('table');\n \n if (!table) return null;\n\n const headerRows = table.querySelectorAll('thead tr');\n const bodyRows = table.querySelectorAll('tbody tr');\n\n if (headerRows.length === 0) return null;\n\n // Extract columns from the first header row\n const headerCells = headerRows[0].querySelectorAll('th');\n const columns: TableColumn[] = Array.from(headerCells).map((th, index) => ({\n id: `col${index + 1}`,\n header: th.textContent?.trim() || `Column ${index + 1}`\n }));\n\n // Extract merged cells from thead\n const mergedCells: CellMerge[] = [];\n Array.from(headerRows).forEach((row, rowIndex) => {\n const cells = row.querySelectorAll('th');\n cells.forEach((cell, colIndex) => {\n const rowSpan = parseInt(cell.getAttribute('rowspan') || '1');\n const colSpan = parseInt(cell.getAttribute('colspan') || '1');\n if (rowSpan > 1 || colSpan > 1) {\n mergedCells.push({\n section: 'thead',\n rowStart: rowIndex,\n rowEnd: rowIndex + rowSpan - 1,\n colStart: colIndex,\n colEnd: colIndex + colSpan - 1,\n value: cell.textContent?.trim() || ''\n });\n }\n });\n });\n\n // Extract rows\n const rows: TableRow[] = Array.from(bodyRows).map(row => {\n const cells = row.querySelectorAll('td');\n const rowData: TableRow = {};\n \n cells.forEach((cell, index) => {\n if (index < columns.length) {\n rowData[columns[index].id] = cell.textContent?.trim() || '';\n }\n });\n \n return rowData;\n });\n\n // Extract merged cells from tbody\n Array.from(bodyRows).forEach((row, rowIndex) => {\n const cells = row.querySelectorAll('td');\n cells.forEach((cell, colIndex) => {\n const rowSpan = parseInt(cell.getAttribute('rowspan') || '1');\n const colSpan = parseInt(cell.getAttribute('colspan') || '1');\n if (rowSpan > 1 || colSpan > 1) {\n mergedCells.push({\n section: 'tbody',\n rowStart: rowIndex,\n rowEnd: rowIndex + rowSpan - 1,\n colStart: colIndex,\n colEnd: colIndex + colSpan - 1,\n value: cell.textContent?.trim() || ''\n });\n }\n });\n });\n\n return {\n name: '', // Default empty name\n columns,\n rows: rows.length > 0 ? rows : [{}],\n border: true,\n mergedCells\n };\n } catch (error) {\n return null;\n }\n };\n\n // Get placeholder value for table generation\n const getPlaceholderValue = (placeholderKey: string): string => {\n const placeholder = placeholders.find(p => p.value === placeholderKey);\n if (!placeholder) return '';\n \n // Return actual value or generate sample based on type\n if (typeof placeholder.actualValue !== 'undefined') {\n return String(placeholder.actualValue);\n }\n \n switch (placeholder.type) {\n case 'date':\n return new Date().toLocaleDateString();\n case 'datetime':\n return new Date().toLocaleString();\n case 'number':\n return '123';\n case 'currency':\n return '$1,234.56';\n case 'email':\n return 'example@domain.com';\n case 'phone':\n return '+1 (555) 123-4567';\n case 'url':\n return 'https://example.com';\n default:\n return placeholder.label || placeholder.value;\n }\n };\n\n const generateContent = useCallback((attrs?: Record<any, any>): string => {\n const { src, alt, styles: eStyles, text, placeholder, placeholders: tPlaceholders } = attrs || section?.attributes || selectedContentAttrObj || {}\n const styles = {\n ...initialStyles[sectionType],\n ...eStyles,\n ...selectedContentAttrObj?.styles,\n ...attrs?.styles\n }\n\n const inlineStyles = generateInlineStyles(styles);\n \n // For buttons, images, dividers, and codes - use the existing logic\n if (sectionType === 'buttons') {\n return `<button style=\"${inlineStyles}\">${text || 'Button Text'}</button>`;\n } else if (sectionType === 'image') {\n let imgInlineStyles: string = inlineStyles;\n if(styles?.is_bordered) {\n styles.padding = '10px';\n imgInlineStyles = generateInlineStyles(styles);\n } else{\n styles.padding = '0';\n imgInlineStyles = generateInlineStyles(styles);\n }\n return `<img src=\"${src || ''}\" alt=\"${alt || ''}\" style=\"${imgInlineStyles}\" />`;\n } else if (sectionType === 'divider') {\n return `<hr style=\"${inlineStyles}\" />`;\n } else if (sectionType === 'table') {\n const { border, borderStyle, borderColor, ...rest } = styles;\n const tInlineStyles = generateInlineStyles(styles.is_bordered ? styles : rest); \n const tHeadInlineStyles: string = generateInlineStyles(styles.tHead || {});\n const tBodyInlineStyles: string = generateInlineStyles(styles.tBody || {});\n const thCellInlineStyles: string = generateInlineStyles({\n ...(styles.thCells || {}), \n ...(styles.is_bordered ? { border, borderStyle, borderColor } : {}) \n });\n const tbCellInlineStyles: string = generateInlineStyles({\n ...(styles.tbCells || {}), \n ...(styles.is_bordered ? { border, borderStyle, borderColor } : {})\n });\n\n // Helper function to check if a cell is part of a merge\n const getCellMergeInfo = (section: 'thead' | 'tbody', rowIndex: number, colIndex: number) => {\n return tableData.mergedCells?.find(m => \n m.section === section &&\n rowIndex >= m.rowStart && rowIndex <= m.rowEnd &&\n colIndex >= m.colStart && colIndex <= m.colEnd\n );\n };\n\n // Generate header row with merge support\n const headerCellsHTML = tableData.columns.map((column, colIndex) => {\n const mergeInfo = getCellMergeInfo('thead', 0, colIndex);\n \n if (mergeInfo && (colIndex !== mergeInfo.colStart)) {\n return '';\n }\n\n const mergeAttributes = mergeInfo ? \n ` rowspan=\"${mergeInfo.rowEnd - mergeInfo.rowStart + 1}\" colspan=\"${mergeInfo.colEnd - mergeInfo.colStart + 1}\"` : '';\n \n const cellValue = mergeInfo ? mergeInfo.value : column.header;\n\n return `<th style=\"${thCellInlineStyles}\"${mergeAttributes}>${cellValue}</th>`;\n }).filter(cell => cell !== '').join('');\n\n // Generate table body with #each loop using tableData.name\n let tableRowsHTML = '';\n \n // Check if we should use #each loop with tableData.name\n if (tableData.name) {\n // Generate template with #each handlebars syntax\n const rowTemplate = tableData.columns.map((column, colIndex) => {\n const mergeInfo = getCellMergeInfo('tbody', 0, colIndex); // Use first row as template\n \n if (mergeInfo && (colIndex !== mergeInfo.colStart)) {\n return '';\n }\n\n const mergeAttributes = mergeInfo ? \n ` rowspan=\"${mergeInfo.rowEnd - mergeInfo.rowStart + 1}\" colspan=\"${mergeInfo.colEnd - mergeInfo.colStart + 1}\"` : '';\n \n // Use handlebars template syntax for dynamic content\n let cellTemplate = '';\n \n // Handle special cases\n if (column.id === 'index' || column.id === 'incrementIndex') {\n cellTemplate = `{{incrementIndex @index}}`;\n } else if (column.id.includes('.')) {\n // Handle nested properties (like items.sku, tax_code_data.[0].rate)\n const cellValue = tableData?.rows?.[0][column.id];\n cellTemplate = typeof cellValue === 'string' ? cellValue.replace(tableData.name + '.', '') : String(cellValue || '');\n } else {\n // Direct property access\n const cellValue = tableData?.rows?.[0][column.id];\n cellTemplate = typeof cellValue === 'string' ? cellValue.replace(tableData.name + '.', '') : String(cellValue || '');\n }\n\n return `<td style=\"${tbCellInlineStyles}\"${mergeAttributes}>${cellTemplate}</td>`;\n }).filter(cell => cell !== '').join('');\n\n // Add zebra striping logic if enabled\n const rowStyleTemplate = styles.tBody?.zebraStriping \n ? `{{#if (isOdd @index)}}${tBodyInlineStyles}; background-color: ${styles.tBody.alternateRowColor || '#f9f9f9'}{{else}}${tBodyInlineStyles}{{/if}}`\n : tBodyInlineStyles;\n\n tableRowsHTML = `{{#each ${tableData.name}}}\n <tr style=\"${rowStyleTemplate}\">\n ${rowTemplate}\n </tr>\n {{/each}}`;\n \n } else {\n // Fallback to static rows when no tableData.name is provided\n tableRowsHTML = tableData.rows.map((row, rowIndex) => {\n const rowStyleAddition = styles.tBody?.zebraStriping && rowIndex % 2 === 1 \n ? `; background-color: ${styles.tBody.alternateRowColor || '#f9f9f9'}` \n : '';\n \n const cellsHTML = tableData.columns.map((column, colIndex) => {\n const mergeInfo = getCellMergeInfo('tbody', rowIndex, colIndex);\n \n if (mergeInfo && (rowIndex !== mergeInfo.rowStart || colIndex !== mergeInfo.colStart)) {\n return '';\n }\n\n let cellValue = row[column.id] || '';\n const keys = Object.keys(row)\n if(keys.includes(`${column.id}_static`)) {\n cellValue = row[`${column.id}_static`] || '';\n }\n if (!cellValue && tPlaceholders?.[column.id]) {\n cellValue = getPlaceholderValue(tPlaceholders[column.id]);\n }\n\n const mergeAttributes = mergeInfo ? \n ` rowspan=\"${mergeInfo.rowEnd - mergeInfo.rowStart + 1}\" colspan=\"${mergeInfo.colEnd - mergeInfo.colStart + 1}\"` : '';\n \n const finalCellValue = mergeInfo ? mergeInfo.value : cellValue;\n\n return `<td style=\"${tbCellInlineStyles}\"${mergeAttributes}>${finalCellValue}</td>`;\n }).filter(cell => cell !== '').join('');\n \n return `<tr style=\"${tBodyInlineStyles}${rowStyleAddition}\">${cellsHTML}</tr>`;\n }).join('');\n }\n \n return `\n <table style=\"${tInlineStyles}\">\n <thead>\n <tr style=\"${tHeadInlineStyles}\">\n ${headerCellsHTML}\n </tr>\n </thead>\n <tbody>\n ${tableRowsHTML}\n </tbody>\n </table>\n `;\n } else if (sectionType === 'qr-code' || sectionType === 'bar-code') {\n return `<div style=\"${inlineStyles}\">${placeholder}</div>`;\n }\n \n // For text-based sections, parse and apply styles to existing HTML tags\n const hasHtmlTags = /<\\/?[a-z][\\s\\S]*>/i.test(content);\n \n if (!hasHtmlTags) {\n // If no HTML tags, wrap according to section type\n switch (sectionType) {\n case 'text':\n case 'text-block':\n return `<p style=\"${inlineStyles}\">${content}</p>`;\n case 'heading':\n return `<h1 style=\"${inlineStyles}\">${content}</h1>`;\n case 'heading-2':\n return `<h2 style=\"${inlineStyles}\">${content}</h2>`;\n case 'heading-3':\n return `<h3 style=\"${inlineStyles}\">${content}</h3>`;\n case 'heading-4':\n return `<h4 style=\"${inlineStyles}\">${content}</h4>`;\n case 'signature':\n return `<div style=\"${inlineStyles}\">${content}</div>`;\n default:\n return `<p style=\"${inlineStyles}\">${content}</p>`;\n }\n } else {\n // Create a temporary DOM element to manipulate the HTML\n const parser = new DOMParser();\n const doc = parser.parseFromString(`<div>${content}</div>`, 'text/html');\n const container = doc.body.firstChild as Element;\n \n // Process all child elements\n if (container && container.nodeType === Node.ELEMENT_NODE) {\n const elements = container.querySelectorAll('*');\n\n elements.forEach(element => {\n // Skip processing script tags or other special elements\n if (element.tagName === 'SCRIPT' || element.tagName === 'STYLE') {\n return;\n }\n \n // Get existing style and merge with new style\n const existingStyle = element.getAttribute('style') || '';\n \n // Extract properties from existing style\n const existingProps = {};\n existingStyle.split(';').forEach(prop => {\n const [key, value] = prop.split(':').map(item => item.trim());\n if (key && value) {\n existingProps[key] = value;\n }\n });\n \n // Parse the base style and prepare for merging\n const newStyleProps = {};\n inlineStyles.split(';').forEach(prop => {\n const [key, value] = prop.split(':').map(item => item.trim());\n if (key && value) {\n newStyleProps[key] = value;\n }\n });\n \n // Additional styles based on tag type\n if (element.tagName === 'P' || element.tagName === 'DIV') {\n newStyleProps['line-height'] = '1.5';\n } else if (['H1', 'H2', 'H3', 'H4', 'H5', 'H6'].includes(element.tagName)) {\n newStyleProps['line-height'] = '1.2';\n newStyleProps['margin'] = '0.5em 0';\n }\n \n // Merge styles, new styles override existing ones\n const mergedProps = { ...existingProps, ...newStyleProps };\n \n // Convert back to style string\n const mergedStyle = Object.entries(mergedProps)\n .filter(([key, value]) => key && value)\n .map(([key, value]) => `${key}: ${value}`)\n .join('; ');\n \n element.setAttribute('style', mergedStyle);\n });\n \n return container.innerHTML;\n }\n \n // Fallback to original content if parsing fails\n return content;\n }\n }, [JSON.stringify(section)]);\n\n // Local save function - renamed to avoid conflict with handleSave prop\n const saveSection = () => {\n const updatedContent = generateContent();\n \n const updatedSection = {\n content: updatedContent, \n type: sectionType as ElementType,\n rowLevel: rowLevel,\n name: tableData.name || '',\n attributes: {\n ...(section?.attributes || {}),\n ...(sectionType === 'table' ? { tableData } : {})\n },\n is_edited_from_source: (section as EnhancedSectionData)?.is_edited_from_source || false\n };\n \n onUpdate(updatedSection);\n };\nuseEffect(() => {\n saveSection();\n},[tableData])\n /**\n * Updates section attributes and triggers content regeneration.\n * Optimized to avoid unnecessary property spreading and glitches.\n */\n const updateAttrs = (prop: Record<string, any>) => {\n if (!section) return;\n\n // Merge styles safely\n const mergedStyles = {\n ...(section.attributes?.styles || {}),\n ...(prop.styles || {})\n };\n\n // Merge attributes, giving priority to new props\n const mergedAttributes = {\n ...(section.attributes || {}),\n ...prop,\n styles: mergedStyles,\n ...(sectionType === 'table' ? { tableData } : {})\n };\n\n // Prepare updated section object (exclude 'id' if present)\n const { id, ...sectionRest } = section as any;\n\n // Generate updated content based on new attributes\n const updatedContent = generateContent(mergedAttributes);\n setSelectedContentAttrObj(mergedAttributes)\n\n // Compose the update payload, omitting unknown properties\n onUpdate({\n ...sectionRest,\n content: updatedContent,\n attributes: mergedAttributes\n });\n };\n\n // Update table data and trigger content regeneration\n const handleTableDataUpdate = (newTableData: TableData) => {\n setTableData(newTableData);\n \n // Trigger immediate update with new table data\n const updatedAttrs = {\n ...(section?.attributes || {}),\n tableData: newTableData\n };\n \n // const updatedContent = generateContent(updatedAttrs);\n // onUpdate({\n // ...section,\n // content: updatedContent,\n // attributes: updatedAttrs\n // });\n saveSection();\n };\n\n const handleTypeChange = (t) => {\n const dt = getInitialSectionData(t)\n \n onUpdate({ \n ...section, \n ...dt\n });\n \n // Reset table data when switching types\n if (t === 'table') {\n setTableData({\n name: '', // Initialize with empty name\n columns: [\n { id: 'col1', header: 'Column 1' },\n { id: 'col2', header: 'Column 2' },\n { id: 'col3', header: 'Column 3' }\n ],\n rows: [\n { col1: '', col2: '', col3: '' }\n ],\n border: true,\n mergedCells: []\n });\n }\n }\n\n return (\n <Paper\n elevation={3}\n sx={{\n width: { xs: '100%', sm: 320, lg: 390 },\n height: '100%',\n overflow: 'auto',\n borderLeft: '1px solid',\n borderColor: 'divider',\n display: 'flex',\n flexDirection: 'column',\n bgcolor: 'background.paper',\n boxShadow: 'none',\n }}\n >\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n p: 2,\n borderBottom: '1px solid',\n borderColor: 'divider',\n bgcolor: 'grey.50',\n }}\n >\n <Typography type=\"s1\" weight='bold' color='theme.neutral.1000'>\n Format {sectionType ? sectionType?.charAt(0)?.toUpperCase() + sectionType?.slice(1).replace(/-/g, ' ') : ''}\n </Typography>\n <Tooltip title=\"Save and Close\">\n <Box>\n <IconButton size=\"small\" onClick={() => {\n saveSection();\n handleSave?.();\n onClose();\n }} aria-label=\"Save\">\n <Save fontSize=\"small\" />\n </IconButton>\n <IconButton size=\"small\" onClick={onClose} aria-label=\"Close\">\n <CloseIcon fontSize=\"small\" />\n </IconButton>\n </Box>\n </Tooltip>\n </Box>\n\n <Box sx={{ p: 2, flex: 1,pb:10, overflowY: 'auto' }}>\n <Box sx={{ mb: 2 }}>\n <FormControl size=\"small\" fullWidth>\n <Select\n value={section?.type}\n onChange={(e) => handleTypeChange(e.target.value)}\n renderValue={v => v ? v.charAt(0).toUpperCase() + v.slice(1).replace(/-/g, ' ') : ''}\n label='Select Preset'\n displayEmpty\n >\n {sectionTypes.map((type) => (\n <MenuItem key={type} value={type}>\n <Typography type='s4' color='theme.secondary.1000'>{type.charAt(0).toUpperCase() + type.slice(1).replace(/-/g, ' ')}</Typography>\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n </Box>\n \n {section && (sectionType === 'text' || \n sectionType === 'heading' || \n sectionType === 'heading-2' || \n sectionType === 'heading-3' || \n sectionType === 'heading-4') && (\n <TextControls\n attrs={section?.attributes || {}}\n updateAttrs={updateAttrs}\n />\n )}\n {sectionType === 'buttons' && (\n <ButtonControls\n attrs={section?.attributes || {}}\n updateAttrs={updateAttrs}\n />\n )}\n {sectionType === 'image' && (\n <ImageControls\n attrs={section?.attributes || {}}\n updateAttrs={updateAttrs}\n />\n )}\n {sectionType === 'divider' && (\n <DividerControls\n attrs={section?.attributes || {}}\n updateAttrs={updateAttrs}\n />\n )}\n {sectionType === 'table' && (\n <TableControls\n tableData={{\n ...tableData,\n rows: tableData.rows.map(row => {\n const convertedRow: Record<string, string> = {};\n Object.keys(row).forEach(key => {\n convertedRow[key] = String(row[key] ?? '');\n });\n return convertedRow;\n })\n }}\n setTableData={(value) => {\n handleTableDataUpdate({\n ...value,\n border: tableData.border,\n name: tableData.name || ''\n });\n }}\n attrs={section?.attributes || {}}\n updateAttrs={updateAttrs}\n placeholders={placeholders}\n handleSave={handleSave}\n setParentRowLevel={setRowLevel}\n levelType={rowLevel}\n relation_table={relation_table}\n />\n )}\n {sectionType === 'signature' && (\n <SignatureControls\n attrs={section?.attributes || {}}\n updateAttrs={updateAttrs}\n />\n )}\n {section && (sectionType === 'qr-code' || sectionType === 'bar-code') && (\n <CodeControls\n attrs={section?.attributes || {}}\n updateAttrs={updateAttrs}\n />\n )}\n </Box>\n </Paper>\n );\n};\n\nexport default SectionFormatPanel;"],"names":["sectionTypes","section","onClose","onUpdate","placeholders","relation_table","handleSave","sectionType","useMemo","type","content","useState","rowLevel","setRowLevel","_a","attributes","tableData","setTableData","name","columns","id","header","rows","col1","col2","col3","border","mergedCells","isInitialLoad","setIsInitialLoad","selectedContentAttrObj","setSelectedContentAttrObj","extractStyles","useEffect","extractedTableData","extractTableDataFromHTML","_b","document","createElement","innerHTML","styles","htmlContent","table","DOMParser","parseFromString","querySelector","headerRows","querySelectorAll","bodyRows","length","headerCells","Array","from","map","th","index","textContent","trim","forEach","row","rowIndex","cell","colIndex","rowSpan","parseInt","getAttribute","colSpan","push","rowStart","rowEnd","colStart","colEnd","value","cells","rowData","error","generateContent","useCallback","attrs","src","alt","eStyles","text","placeholder","tPlaceholders","initialStyles","inlineStyles","generateInlineStyles","imgInlineStyles","is_bordered","padding","borderStyle","borderColor","rest","tInlineStyles","tHeadInlineStyles","tHead","tBodyInlineStyles","tBody","thCellInlineStyles","thCells","tbCellInlineStyles","tbCells","getCellMergeInfo","find","m","headerCellsHTML","column","mergeInfo","mergeAttributes","cellValue","filter","join","tableRowsHTML","rowTemplate","cellTemplate","includes","replace","String","rowStyleTemplate","zebraStriping","alternateRowColor","rowStyleAddition","cellsHTML","Object","keys","placeholderKey","p","actualValue","Date","toLocaleDateString","toLocaleString","label","getPlaceholderValue","finalCellValue","test","container","body","firstChild","nodeType","Node","ELEMENT_NODE","element","tagName","existingStyle","existingProps","split","prop","key","item","newStyleProps","mergedProps","mergedStyle","entries","setAttribute","JSON","stringify","saveSection","updatedSection","is_edited_from_source","updateAttrs","mergedStyles","mergedAttributes","sectionRest","updatedContent","jsxs","Paper","elevation","sx","width","xs","sm","lg","height","overflow","borderLeft","display","flexDirection","bgcolor","boxShadow","children","Box","justifyContent","alignItems","borderBottom","Typography","weight","color","charAt","toUpperCase","slice","jsx","Tooltip","title","IconButton","size","onClick","Save","fontSize","CloseIcon","flex","pb","overflowY","mb","FormControl","fullWidth","Select","onChange","e","t","dt","getInitialSectionData","handleTypeChange","target","renderValue","v","displayEmpty","MenuItem","TextControls","ButtonControls","ImageControls","DividerControls","TableControls","convertedRow","newTableData","setParentRowLevel","levelType","SignatureControls","CodeControls"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/views/template-editor/components/SectionFormatPanel.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, { useState, useEffect, useMemo, useCallback } from 'react';\r\nimport {\r\n Box,\r\n Paper,\r\n IconButton,\r\n FormControl,\r\n MenuItem,\r\n Tooltip,\r\n} from '@mui/material';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport { Save } from '../../../components/icons';\r\nimport Typography from '../../../components/typography/typography';\r\n\r\n// Import sub-components\r\nimport TextControls from './controllers/TextControls';\r\nimport ButtonControls from './controllers/ButtonControls';\r\nimport ImageControls from './controllers/ImageControls';\r\nimport DividerControls from './controllers/DividerControls';\r\nimport TableControls from './controllers/TableControls';\r\nimport SignatureControls from './controllers/SignatureControls';\r\nimport CodeControls from './controllers/CodeControls';\r\nimport Select from '../../../components/select/select';\r\nimport { EnhancedSectionData, ElementType } from '../types/editor';\r\nimport { initialStyles } from '../utils/constant';\r\nimport { extractStyles, generateInlineStyles, getInitialSectionData } from '../utils/common';\r\n// import { useCKEditorStyleExtractor } from '../utils/style-extractor';\r\n\r\n// Shared types for SectionFormatPanel and sub-components\r\nexport interface TableColumn {\r\n id: string;\r\n header: string;\r\n placeholder?: string;\r\n}\r\n\r\nexport interface TableRow {\r\n [key: string]: string | number | boolean;\r\n}\r\n\r\nexport interface CellMerge {\r\n section: 'thead' | 'tbody';\r\n rowStart: number;\r\n rowEnd: number;\r\n colStart: number;\r\n colEnd: number;\r\n value: string;\r\n}\r\n\r\nexport interface TableData {\r\n name?: string; // Added name property for #each iteration\r\n columns: TableColumn[];\r\n rows: TableRow[];\r\n border: boolean;\r\n mergedCells?: CellMerge[];\r\n}\r\n\r\ninterface SectionData {\r\n type: 'text' | 'text-block' | 'heading' | 'heading-2' | 'heading-3' | 'heading-4' | 'buttons' | 'image' | 'divider' | 'table' | 'signature' | 'qr-code' | 'bar-code';\r\n content: string;\r\n attributes?: {\r\n styles?: any;\r\n placeholders?: Record<string, string>;\r\n tableData?: TableData;\r\n [key: string]: any;\r\n };\r\n}\r\n\r\ninterface SectionFormatPanelProps {\r\n section: SectionData | undefined;\r\n onClose: () => void;\r\n onUpdate: (data: Partial<EnhancedSectionData>) => void;\r\n placeholders: Record<string, any>[];\r\n relation_table?:any;\r\n handleSave?: () => void;\r\n}\r\n\r\nconst sectionTypes = ['text','text-block','heading','heading-2','heading-3','heading-4','buttons','image','divider','table','signature','qr-code','bar-code']\r\n\r\nconst SectionFormatPanel: React.FC<SectionFormatPanelProps> = ({ \r\n section, \r\n onClose, \r\n onUpdate,\r\n placeholders,\r\n relation_table,\r\n handleSave }) => {\r\n // const { applyStylesToHtml } = useCKEditorStyleExtractor()\r\n // const [plainContent, setPlainContent] = useState('');\r\n const sectionType = useMemo(() => section?.type || 'text', [section?.type]);\r\n const content = useMemo(() => section?.content || 'text', [section?.content]);\r\n const [formatOptions, setFormatOptions] = useState<string[]>([]);\r\n const[rowLevel, setRowLevel] = useState<boolean>((section?.attributes as any)?.rowLevel || false);\r\n const [tableData, setTableData] = useState<TableData>({\r\n name: '', // Initialize with empty name\r\n columns: [\r\n { id: 'col1', header: 'Column 1' },\r\n { id: 'col2', header: 'Column 2' },\r\n { id: 'col3', header: 'Column 3' }\r\n ],\r\n rows: [\r\n { col1: '', col2: '', col3: '' }\r\n ],\r\n border: true,\r\n mergedCells: []\r\n });\r\n const [isInitialLoad, setIsInitialLoad] = useState(true);\r\n const [selectedContentAttrObj, setSelectedContentAttrObj] = useState(extractStyles(content, section?.type));\r\n\r\n // Initialize table data from section attributes\r\n useEffect(() => {\r\n if (section && section.type === 'table') {\r\n // If section has stored table data, use it\r\n if (section.attributes?.tableData) {\r\n setTableData(section.attributes.tableData);\r\n } else {\r\n // Try to extract table data from HTML content\r\n const extractedTableData = extractTableDataFromHTML(section.content);\r\n if (extractedTableData) {\r\n setTableData(extractedTableData);\r\n setRowLevel((section?.attributes as any)?.rowLevel || false);\r\n }\r\n }\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (section && !isInitialLoad) {\r\n const tempDiv = document.createElement('div');\r\n tempDiv.innerHTML = section.content;\r\n const text = tempDiv.textContent || '';\r\n // setPlainContent(text);\r\n setSelectedContentAttrObj(extractStyles(section.content, section?.type)?.styles)\r\n setIsInitialLoad(false);\r\n }\r\n }, [section]);\r\n\r\n // Extract table data from HTML content\r\n const extractTableDataFromHTML = (htmlContent: string): TableData | null => {\r\n try {\r\n const parser = new DOMParser();\r\n const doc = parser.parseFromString(htmlContent, 'text/html');\r\n const table = doc.querySelector('table');\r\n \r\n if (!table) return null;\r\n\r\n const headerRows = table.querySelectorAll('thead tr');\r\n const bodyRows = table.querySelectorAll('tbody tr');\r\n\r\n if (headerRows.length === 0) return null;\r\n\r\n // Extract columns from the first header row\r\n const headerCells = headerRows[0].querySelectorAll('th');\r\n const columns: TableColumn[] = Array.from(headerCells).map((th, index) => ({\r\n id: `col${index + 1}`,\r\n header: th.textContent?.trim() || `Column ${index + 1}`\r\n }));\r\n\r\n // Extract merged cells from thead\r\n const mergedCells: CellMerge[] = [];\r\n Array.from(headerRows).forEach((row, rowIndex) => {\r\n const cells = row.querySelectorAll('th');\r\n cells.forEach((cell, colIndex) => {\r\n const rowSpan = parseInt(cell.getAttribute('rowspan') || '1');\r\n const colSpan = parseInt(cell.getAttribute('colspan') || '1');\r\n if (rowSpan > 1 || colSpan > 1) {\r\n mergedCells.push({\r\n section: 'thead',\r\n rowStart: rowIndex,\r\n rowEnd: rowIndex + rowSpan - 1,\r\n colStart: colIndex,\r\n colEnd: colIndex + colSpan - 1,\r\n value: cell.textContent?.trim() || ''\r\n });\r\n }\r\n });\r\n });\r\n\r\n // Extract rows\r\n const rows: TableRow[] = Array.from(bodyRows).map(row => {\r\n const cells = row.querySelectorAll('td');\r\n const rowData: TableRow = {};\r\n \r\n cells.forEach((cell, index) => {\r\n if (index < columns.length) {\r\n rowData[columns[index].id] = cell.textContent?.trim() || '';\r\n }\r\n });\r\n \r\n return rowData;\r\n });\r\n\r\n // Extract merged cells from tbody\r\n Array.from(bodyRows).forEach((row, rowIndex) => {\r\n const cells = row.querySelectorAll('td');\r\n cells.forEach((cell, colIndex) => {\r\n const rowSpan = parseInt(cell.getAttribute('rowspan') || '1');\r\n const colSpan = parseInt(cell.getAttribute('colspan') || '1');\r\n if (rowSpan > 1 || colSpan > 1) {\r\n mergedCells.push({\r\n section: 'tbody',\r\n rowStart: rowIndex,\r\n rowEnd: rowIndex + rowSpan - 1,\r\n colStart: colIndex,\r\n colEnd: colIndex + colSpan - 1,\r\n value: cell.textContent?.trim() || ''\r\n });\r\n }\r\n });\r\n });\r\n\r\n return {\r\n name: '', // Default empty name\r\n columns,\r\n rows: rows.length > 0 ? rows : [{}],\r\n border: true,\r\n mergedCells\r\n };\r\n } catch (error) {\r\n return null;\r\n }\r\n };\r\n\r\n // Get placeholder value for table generation\r\n const getPlaceholderValue = (placeholderKey: string): string => {\r\n const placeholder = placeholders.find(p => p.value === placeholderKey);\r\n if (!placeholder) return '';\r\n \r\n // Return actual value or generate sample based on type\r\n if (typeof placeholder.actualValue !== 'undefined') {\r\n return String(placeholder.actualValue);\r\n }\r\n \r\n switch (placeholder.type) {\r\n case 'date':\r\n return new Date().toLocaleDateString();\r\n case 'datetime':\r\n return new Date().toLocaleString();\r\n case 'number':\r\n return '123';\r\n case 'currency':\r\n return '$1,234.56';\r\n case 'email':\r\n return 'example@domain.com';\r\n case 'phone':\r\n return '+1 (555) 123-4567';\r\n case 'url':\r\n return 'https://example.com';\r\n default:\r\n return placeholder.label || placeholder.value;\r\n }\r\n };\r\n\r\n const generateContent = useCallback((attrs?: Record<any, any>): string => {\r\n const { src, alt, styles: eStyles, text, placeholder, placeholders: tPlaceholders } = attrs || section?.attributes || selectedContentAttrObj || {}\r\n const styles = {\r\n ...initialStyles[sectionType],\r\n ...eStyles,\r\n ...selectedContentAttrObj?.styles,\r\n ...attrs?.styles\r\n }\r\n\r\n const inlineStyles = generateInlineStyles(styles);\r\n \r\n // For buttons, images, dividers, and codes - use the existing logic\r\n if (sectionType === 'buttons') {\r\n return `<button style=\"${inlineStyles}\">${text || 'Button Text'}</button>`;\r\n } else if (sectionType === 'image') {\r\n let imgInlineStyles: string = inlineStyles;\r\n if(styles?.is_bordered) {\r\n styles.padding = '10px';\r\n imgInlineStyles = generateInlineStyles(styles);\r\n } else{\r\n styles.padding = '0';\r\n imgInlineStyles = generateInlineStyles(styles);\r\n }\r\n return `<img src=\"${src || ''}\" alt=\"${alt || ''}\" style=\"${imgInlineStyles}\" />`;\r\n } else if (sectionType === 'divider') {\r\n return `<hr style=\"${inlineStyles}\" />`;\r\n } else if (sectionType === 'table') {\r\n const { border, borderStyle, borderColor, ...rest } = styles;\r\n const tInlineStyles = generateInlineStyles(styles.is_bordered ? styles : rest); \r\n const tHeadInlineStyles: string = generateInlineStyles(styles.tHead || {});\r\n const tBodyInlineStyles: string = generateInlineStyles(styles.tBody || {});\r\n const thCellInlineStyles: string = generateInlineStyles({\r\n ...(styles.thCells || {}), \r\n ...(styles.is_bordered ? { border, borderStyle, borderColor } : {}) \r\n });\r\n const tbCellInlineStyles: string = generateInlineStyles({\r\n ...(styles.tbCells || {}), \r\n ...(styles.is_bordered ? { border, borderStyle, borderColor } : {})\r\n });\r\n\r\n // Helper function to check if a cell is part of a merge\r\n const getCellMergeInfo = (section: 'thead' | 'tbody', rowIndex: number, colIndex: number) => {\r\n return tableData.mergedCells?.find(m => \r\n m.section === section &&\r\n rowIndex >= m.rowStart && rowIndex <= m.rowEnd &&\r\n colIndex >= m.colStart && colIndex <= m.colEnd\r\n );\r\n };\r\n\r\n // Generate header row with merge support\r\n const headerCellsHTML = tableData.columns.map((column, colIndex) => {\r\n const mergeInfo = getCellMergeInfo('thead', 0, colIndex);\r\n \r\n if (mergeInfo && (colIndex !== mergeInfo.colStart)) {\r\n return '';\r\n }\r\n\r\n const mergeAttributes = mergeInfo ? \r\n ` rowspan=\"${mergeInfo.rowEnd - mergeInfo.rowStart + 1}\" colspan=\"${mergeInfo.colEnd - mergeInfo.colStart + 1}\"` : '';\r\n \r\n const cellValue = mergeInfo ? mergeInfo.value : column.header;\r\n\r\n return `<th style=\"${thCellInlineStyles}\"${mergeAttributes}>${cellValue}</th>`;\r\n }).filter(cell => cell !== '').join('');\r\n\r\n // Generate table body with #each loop using tableData.name\r\n let tableRowsHTML = '';\r\n \r\n // Check if we should use #each loop with tableData.name\r\n if (tableData.name) {\r\n // Generate template with #each handlebars syntax\r\n const rowTemplate = tableData.columns.map((column, colIndex) => {\r\n const mergeInfo = getCellMergeInfo('tbody', 0, colIndex); // Use first row as template\r\n \r\n if (mergeInfo && (colIndex !== mergeInfo.colStart)) {\r\n return '';\r\n }\r\n\r\n const mergeAttributes = mergeInfo ? \r\n ` rowspan=\"${mergeInfo.rowEnd - mergeInfo.rowStart + 1}\" colspan=\"${mergeInfo.colEnd - mergeInfo.colStart + 1}\"` : '';\r\n \r\n // Use handlebars template syntax for dynamic content\r\n let cellTemplate = '';\r\n \r\n // Handle special cases\r\n if (column.id === 'index' || column.id === 'incrementIndex') {\r\n cellTemplate = `{{incrementIndex @index}}`;\r\n } else if (column.id.includes('.')) {\r\n // Handle nested properties (like items.sku, tax_code_data.[0].rate)\r\n const cellValue = tableData?.rows?.[0][column.id];\r\n cellTemplate = typeof cellValue === 'string' ? cellValue.replace(tableData.name + '.', '') : String(cellValue || '');\r\n } else {\r\n // Direct property access\r\n const cellValue = tableData?.rows?.[0][column.id];\r\n cellTemplate = typeof cellValue === 'string' ? cellValue.replace(tableData.name + '.', '') : String(cellValue || '');\r\n }\r\n\r\n return `<td style=\"${tbCellInlineStyles}\"${mergeAttributes}>${cellTemplate}</td>`;\r\n }).filter(cell => cell !== '').join('');\r\n\r\n // Add zebra striping logic if enabled\r\n const rowStyleTemplate = styles.tBody?.zebraStriping \r\n ? `{{#if (isOdd @index)}}${tBodyInlineStyles}; background-color: ${styles.tBody.alternateRowColor || '#f9f9f9'}{{else}}${tBodyInlineStyles}{{/if}}`\r\n : tBodyInlineStyles;\r\n\r\n tableRowsHTML = `{{#each ${tableData.name}}}\r\n <tr style=\"${rowStyleTemplate}\">\r\n ${rowTemplate}\r\n </tr>\r\n {{/each}}`;\r\n \r\n } else {\r\n // Fallback to static rows when no tableData.name is provided\r\n tableRowsHTML = tableData.rows.map((row, rowIndex) => {\r\n const rowStyleAddition = styles.tBody?.zebraStriping && rowIndex % 2 === 1 \r\n ? `; background-color: ${styles.tBody.alternateRowColor || '#f9f9f9'}` \r\n : '';\r\n \r\n const cellsHTML = tableData.columns.map((column, colIndex) => {\r\n const mergeInfo = getCellMergeInfo('tbody', rowIndex, colIndex);\r\n \r\n if (mergeInfo && (rowIndex !== mergeInfo.rowStart || colIndex !== mergeInfo.colStart)) {\r\n return '';\r\n }\r\n\r\n let cellValue = row[column.id] || '';\r\n const keys = Object.keys(row)\r\n if(keys.includes(`${column.id}_static`)) {\r\n cellValue = row[`${column.id}_static`] || '';\r\n }\r\n if (!cellValue && tPlaceholders?.[column.id]) {\r\n cellValue = getPlaceholderValue(tPlaceholders[column.id]);\r\n }\r\n\r\n const mergeAttributes = mergeInfo ? \r\n ` rowspan=\"${mergeInfo.rowEnd - mergeInfo.rowStart + 1}\" colspan=\"${mergeInfo.colEnd - mergeInfo.colStart + 1}\"` : '';\r\n \r\n const finalCellValue = mergeInfo ? mergeInfo.value : cellValue;\r\n\r\n return `<td style=\"${tbCellInlineStyles}\"${mergeAttributes}>${finalCellValue}</td>`;\r\n }).filter(cell => cell !== '').join('');\r\n \r\n return `<tr style=\"${tBodyInlineStyles}${rowStyleAddition}\">${cellsHTML}</tr>`;\r\n }).join('');\r\n }\r\n \r\n return `\r\n <table style=\"${tInlineStyles}\">\r\n <thead>\r\n <tr style=\"${tHeadInlineStyles}\">\r\n ${headerCellsHTML}\r\n </tr>\r\n </thead>\r\n <tbody>\r\n ${tableRowsHTML}\r\n </tbody>\r\n </table>\r\n `;\r\n } else if (sectionType === 'qr-code' || sectionType === 'bar-code') {\r\n return `<div style=\"${inlineStyles}\">${placeholder}</div>`;\r\n }\r\n \r\n // For text-based sections, parse and apply styles to existing HTML tags\r\n const hasHtmlTags = /<\\/?[a-z][\\s\\S]*>/i.test(content);\r\n \r\n if (!hasHtmlTags) {\r\n // If no HTML tags, wrap according to section type\r\n switch (sectionType) {\r\n case 'text':\r\n case 'text-block':\r\n return `<p style=\"${inlineStyles}\">${content}</p>`;\r\n case 'heading':\r\n return `<h1 style=\"${inlineStyles}\">${content}</h1>`;\r\n case 'heading-2':\r\n return `<h2 style=\"${inlineStyles}\">${content}</h2>`;\r\n case 'heading-3':\r\n return `<h3 style=\"${inlineStyles}\">${content}</h3>`;\r\n case 'heading-4':\r\n return `<h4 style=\"${inlineStyles}\">${content}</h4>`;\r\n case 'signature':\r\n return `<div style=\"${inlineStyles}\">${content}</div>`;\r\n default:\r\n return `<p style=\"${inlineStyles}\">${content}</p>`;\r\n }\r\n } else {\r\n // Create a temporary DOM element to manipulate the HTML\r\n const parser = new DOMParser();\r\n const doc = parser.parseFromString(`<div>${content}</div>`, 'text/html');\r\n const container = doc.body.firstChild as Element;\r\n \r\n // Process all child elements\r\n if (container && container.nodeType === Node.ELEMENT_NODE) {\r\n const elements = container.querySelectorAll('*');\r\n\r\n elements.forEach(element => {\r\n // Skip processing script tags or other special elements\r\n if (element.tagName === 'SCRIPT' || element.tagName === 'STYLE') {\r\n return;\r\n }\r\n \r\n // Get existing style and merge with new style\r\n const existingStyle = element.getAttribute('style') || '';\r\n \r\n // Extract properties from existing style\r\n const existingProps = {};\r\n existingStyle.split(';').forEach(prop => {\r\n const [key, value] = prop.split(':').map(item => item.trim());\r\n if (key && value) {\r\n existingProps[key] = value;\r\n }\r\n });\r\n \r\n // Parse the base style and prepare for merging\r\n const newStyleProps = {};\r\n inlineStyles.split(';').forEach(prop => {\r\n const [key, value] = prop.split(':').map(item => item.trim());\r\n if (key && value) {\r\n newStyleProps[key] = value;\r\n }\r\n });\r\n \r\n // Additional styles based on tag type\r\n if (element.tagName === 'P' || element.tagName === 'DIV') {\r\n newStyleProps['line-height'] = '1.5';\r\n } else if (['H1', 'H2', 'H3', 'H4', 'H5', 'H6'].includes(element.tagName)) {\r\n newStyleProps['line-height'] = '1.2';\r\n newStyleProps['margin'] = '0.5em 0';\r\n }\r\n \r\n // Merge styles, new styles override existing ones\r\n const mergedProps = { ...existingProps, ...newStyleProps };\r\n \r\n // Convert back to style string\r\n const mergedStyle = Object.entries(mergedProps)\r\n .filter(([key, value]) => key && value)\r\n .map(([key, value]) => `${key}: ${value}`)\r\n .join('; ');\r\n \r\n element.setAttribute('style', mergedStyle);\r\n });\r\n \r\n return container.innerHTML;\r\n }\r\n \r\n // Fallback to original content if parsing fails\r\n return content;\r\n }\r\n }, [JSON.stringify(section)]);\r\n\r\n // Local save function - renamed to avoid conflict with handleSave prop\r\n const saveSection = () => {\r\n const updatedContent = generateContent();\r\n \r\n const updatedSection = {\r\n content: updatedContent, \r\n type: sectionType as ElementType,\r\n rowLevel: rowLevel,\r\n name: tableData.name || '',\r\n attributes: {\r\n ...(section?.attributes || {}),\r\n ...(sectionType === 'table' ? { tableData } : {})\r\n },\r\n is_edited_from_source: (section as EnhancedSectionData)?.is_edited_from_source || false\r\n };\r\n \r\n onUpdate(updatedSection);\r\n };\r\nuseEffect(() => {\r\n saveSection();\r\n},[tableData])\r\n /**\r\n * Updates section attributes and triggers content regeneration.\r\n * Optimized to avoid unnecessary property spreading and glitches.\r\n */\r\n const updateAttrs = (prop: Record<string, any>) => {\r\n if (!section) return;\r\n\r\n // Merge styles safely\r\n const mergedStyles = {\r\n ...(section.attributes?.styles || {}),\r\n ...(prop.styles || {})\r\n };\r\n\r\n // Merge attributes, giving priority to new props\r\n const mergedAttributes = {\r\n ...(section.attributes || {}),\r\n ...prop,\r\n styles: mergedStyles,\r\n ...(sectionType === 'table' ? { tableData } : {})\r\n };\r\n\r\n // Prepare updated section object (exclude 'id' if present)\r\n const { id, ...sectionRest } = section as any;\r\n\r\n // Generate updated content based on new attributes\r\n const updatedContent = generateContent(mergedAttributes);\r\n setSelectedContentAttrObj(mergedAttributes)\r\n\r\n // Compose the update payload, omitting unknown properties\r\n onUpdate({\r\n ...sectionRest,\r\n content: updatedContent,\r\n attributes: mergedAttributes\r\n });\r\n };\r\n\r\n // Update table data and trigger content regeneration\r\n const handleTableDataUpdate = (newTableData: TableData) => {\r\n setTableData(newTableData);\r\n \r\n // Trigger immediate update with new table data\r\n const updatedAttrs = {\r\n ...(section?.attributes || {}),\r\n tableData: newTableData\r\n };\r\n \r\n // const updatedContent = generateContent(updatedAttrs);\r\n // onUpdate({\r\n // ...section,\r\n // content: updatedContent,\r\n // attributes: updatedAttrs\r\n // });\r\n saveSection();\r\n };\r\n\r\n const handleTypeChange = (t) => {\r\n const dt = getInitialSectionData(t)\r\n \r\n onUpdate({ \r\n ...section, \r\n ...dt\r\n });\r\n \r\n // Reset table data when switching types\r\n if (t === 'table') {\r\n setTableData({\r\n name: '', // Initialize with empty name\r\n columns: [\r\n { id: 'col1', header: 'Column 1' },\r\n { id: 'col2', header: 'Column 2' },\r\n { id: 'col3', header: 'Column 3' }\r\n ],\r\n rows: [\r\n { col1: '', col2: '', col3: '' }\r\n ],\r\n border: true,\r\n mergedCells: []\r\n });\r\n }\r\n }\r\n\r\n return (\r\n <Paper\r\n elevation={3}\r\n sx={{\r\n width: { xs: '100%', sm: 320, lg: 390 },\r\n height: '100%',\r\n overflow: 'auto',\r\n borderLeft: '1px solid',\r\n borderColor: 'divider',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n bgcolor: 'background.paper',\r\n boxShadow: 'none',\r\n }}\r\n >\r\n <Box\r\n sx={{\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n p: 2,\r\n borderBottom: '1px solid',\r\n borderColor: 'divider',\r\n bgcolor: 'grey.50',\r\n }}\r\n >\r\n <Typography type=\"s1\" weight='bold' color='theme.neutral.1000'>\r\n Format {sectionType ? sectionType?.charAt(0)?.toUpperCase() + sectionType?.slice(1).replace(/-/g, ' ') : ''}\r\n </Typography>\r\n <Tooltip title=\"Save and Close\">\r\n <Box>\r\n <IconButton size=\"small\" onClick={() => {\r\n saveSection();\r\n handleSave?.();\r\n onClose();\r\n }} aria-label=\"Save\">\r\n <Save fontSize=\"small\" />\r\n </IconButton>\r\n <IconButton size=\"small\" onClick={onClose} aria-label=\"Close\">\r\n <CloseIcon fontSize=\"small\" />\r\n </IconButton>\r\n </Box>\r\n </Tooltip>\r\n </Box>\r\n\r\n <Box sx={{ p: 2, flex: 1,pb:10, overflowY: 'auto' }}>\r\n <Box sx={{ mb: 2 }}>\r\n <FormControl size=\"small\" fullWidth>\r\n <Select\r\n value={section?.type}\r\n onChange={(e) => handleTypeChange(e.target.value)}\r\n renderValue={v => v ? v.charAt(0).toUpperCase() + v.slice(1).replace(/-/g, ' ') : ''}\r\n label='Select Preset'\r\n displayEmpty\r\n >\r\n {sectionTypes.map((type) => (\r\n <MenuItem key={type} value={type}>\r\n <Typography type='s4' color='theme.secondary.1000'>{type.charAt(0).toUpperCase() + type.slice(1).replace(/-/g, ' ')}</Typography>\r\n </MenuItem>\r\n ))}\r\n </Select>\r\n </FormControl>\r\n </Box>\r\n \r\n {section && (sectionType === 'text' || \r\n sectionType === 'heading' || \r\n sectionType === 'heading-2' || \r\n sectionType === 'heading-3' || \r\n sectionType === 'heading-4') && (\r\n <TextControls\r\n attrs={section?.attributes || {}}\r\n updateAttrs={updateAttrs}\r\n />\r\n )}\r\n {sectionType === 'buttons' && (\r\n <ButtonControls\r\n attrs={section?.attributes || {}}\r\n updateAttrs={updateAttrs}\r\n />\r\n )}\r\n {sectionType === 'image' && (\r\n <ImageControls\r\n attrs={section?.attributes || {}}\r\n updateAttrs={updateAttrs}\r\n />\r\n )}\r\n {sectionType === 'divider' && (\r\n <DividerControls\r\n attrs={section?.attributes || {}}\r\n updateAttrs={updateAttrs}\r\n />\r\n )}\r\n {sectionType === 'table' && (\r\n <TableControls\r\n tableData={{\r\n ...tableData,\r\n rows: tableData.rows.map(row => {\r\n const convertedRow: Record<string, string> = {};\r\n Object.keys(row).forEach(key => {\r\n convertedRow[key] = String(row[key] ?? '');\r\n });\r\n return convertedRow;\r\n })\r\n }}\r\n setTableData={(value) => {\r\n handleTableDataUpdate({\r\n ...value,\r\n border: tableData.border,\r\n name: tableData.name || ''\r\n });\r\n }}\r\n attrs={section?.attributes || {}}\r\n updateAttrs={updateAttrs}\r\n placeholders={placeholders}\r\n handleSave={handleSave}\r\n setParentRowLevel={setRowLevel}\r\n levelType={rowLevel}\r\n relation_table={relation_table}\r\n />\r\n )}\r\n {sectionType === 'signature' && (\r\n <SignatureControls\r\n attrs={section?.attributes || {}}\r\n updateAttrs={updateAttrs}\r\n />\r\n )}\r\n {section && (sectionType === 'qr-code' || sectionType === 'bar-code') && (\r\n <CodeControls\r\n attrs={section?.attributes || {}}\r\n updateAttrs={updateAttrs}\r\n />\r\n )}\r\n </Box>\r\n </Paper>\r\n );\r\n};\r\n\r\nexport default SectionFormatPanel;"],"names":["sectionTypes","section","onClose","onUpdate","placeholders","relation_table","handleSave","sectionType","useMemo","type","content","useState","rowLevel","setRowLevel","_a","attributes","tableData","setTableData","name","columns","id","header","rows","col1","col2","col3","border","mergedCells","isInitialLoad","setIsInitialLoad","selectedContentAttrObj","setSelectedContentAttrObj","extractStyles","useEffect","extractedTableData","extractTableDataFromHTML","_b","document","createElement","innerHTML","styles","htmlContent","table","DOMParser","parseFromString","querySelector","headerRows","querySelectorAll","bodyRows","length","headerCells","Array","from","map","th","index","textContent","trim","forEach","row","rowIndex","cell","colIndex","rowSpan","parseInt","getAttribute","colSpan","push","rowStart","rowEnd","colStart","colEnd","value","cells","rowData","error","generateContent","useCallback","attrs","src","alt","eStyles","text","placeholder","tPlaceholders","initialStyles","inlineStyles","generateInlineStyles","imgInlineStyles","is_bordered","padding","borderStyle","borderColor","rest","tInlineStyles","tHeadInlineStyles","tHead","tBodyInlineStyles","tBody","thCellInlineStyles","thCells","tbCellInlineStyles","tbCells","getCellMergeInfo","find","m","headerCellsHTML","column","mergeInfo","mergeAttributes","cellValue","filter","join","tableRowsHTML","rowTemplate","cellTemplate","includes","replace","String","rowStyleTemplate","zebraStriping","alternateRowColor","rowStyleAddition","cellsHTML","Object","keys","placeholderKey","p","actualValue","Date","toLocaleDateString","toLocaleString","label","getPlaceholderValue","finalCellValue","test","container","body","firstChild","nodeType","Node","ELEMENT_NODE","element","tagName","existingStyle","existingProps","split","prop","key","item","newStyleProps","mergedProps","mergedStyle","entries","setAttribute","JSON","stringify","saveSection","updatedSection","is_edited_from_source","updateAttrs","mergedStyles","mergedAttributes","sectionRest","updatedContent","jsxs","Paper","elevation","sx","width","xs","sm","lg","height","overflow","borderLeft","display","flexDirection","bgcolor","boxShadow","children","Box","justifyContent","alignItems","borderBottom","Typography","weight","color","charAt","toUpperCase","slice","jsx","Tooltip","title","IconButton","size","onClick","Save","fontSize","CloseIcon","flex","pb","overflowY","mb","FormControl","fullWidth","Select","onChange","e","t","dt","getInitialSectionData","handleTypeChange","target","renderValue","v","displayEmpty","MenuItem","TextControls","ButtonControls","ImageControls","DividerControls","TableControls","convertedRow","newTableData","setParentRowLevel","levelType","SignatureControls","CodeControls"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../../../../../../src/views/template-editor/components/controllers/AlignmentControl.tsx"],"sourcesContent":["/* eslint-disable unused-imports/no-unused-vars */\nimport { Box, ToggleButton, ToggleButtonGroup, Tooltip, styled, toggleButtonGroupClasses } from \"@mui/material\";\nimport FormatAlignLeftIcon from '@mui/icons-material/FormatAlignLeft';\nimport FormatAlignCenterIcon from '@mui/icons-material/FormatAlignCenter';\nimport FormatAlignRightIcon from '@mui/icons-material/FormatAlignRight';\nimport FormatAlignJustifyIcon from '@mui/icons-material/FormatAlignJustify';\nimport Typography from \"../../../../components/typography/typography\";\n\nconst StyledToggleButtonGroup = styled(ToggleButtonGroup)(({ theme, item }) => ({\n display: 'grid',\n borderRadius: 4,\n border: `1px solid #e3e3e3`,\n width: `100%`,\n gridTemplateColumns: `repeat(${item || 4}, 1fr)`,\n [`& .${toggleButtonGroupClasses.grouped}`]: {\n margin: theme.spacing(0.5),\n border: 0,\n borderRadius: theme.shape.borderRadius,\n [`&.${toggleButtonGroupClasses.disabled}`]: {\n border: 0,\n },\n },\n [`& .${toggleButtonGroupClasses.middleButton},& .${toggleButtonGroupClasses.lastButton}`]:\n {\n marginLeft: -1,\n borderLeft: '1px solid transparent',\n },\n [`& .${toggleButtonGroupClasses.selected}`] : {\n backgroundColor: `${theme.palette.theme.primary[800]}!important`,\n color: `#fff !important`\n }\n}))\n\ninterface AlignmentControlProps {\n alignment: string;\n onAlignmentChange: (event: React.MouseEvent<HTMLElement>, newAlignment: string | null) => void;\n displayLabel?: boolean;\n}\n\nconst AlignmentControl: React.FC<AlignmentControlProps> = ({\n alignment,\n onAlignmentChange,\n displayLabel = false,\n // disableJustify = false\n}) => {\n return (\n <Box sx={{ display: 'flex', flexWrap: 'wrap', gap: 1, mb: 2 }}>\n {displayLabel &&\n <Typography type=\"s5\" weight=\"medium\" color={\"theme.secondary.800\"}>Alignment</Typography>\n }\n <StyledToggleButtonGroup\n value={alignment}\n exclusive\n onChange={onAlignmentChange}\n aria-label=\"text alignment\"\n size=\"small\"\n >\n <Tooltip title=\"Align Left\">\n <ToggleButton value=\"left\" aria-label=\"left aligned\">\n <FormatAlignLeftIcon fontSize=\"small\" />\n </ToggleButton>\n </Tooltip>\n <Tooltip title=\"Align Center\">\n <ToggleButton value=\"center\" aria-label=\"centered\">\n <FormatAlignCenterIcon fontSize=\"small\" />\n </ToggleButton>\n </Tooltip>\n <Tooltip title=\"Align Right\">\n <ToggleButton value=\"right\" aria-label=\"right aligned\">\n <FormatAlignRightIcon fontSize=\"small\" />\n </ToggleButton>\n </Tooltip>\n {/* {!disableJustify && */}\n <Tooltip title=\"Justify\">\n <ToggleButton value=\"justify\" aria-label=\"justified\">\n <FormatAlignJustifyIcon fontSize=\"small\" />\n </ToggleButton>\n </Tooltip>\n {/* } */}\n </StyledToggleButtonGroup>\n </Box>\n );\n}\n \nexport default AlignmentControl;"],"names":["FormatAlignLeftIcon","FormatAlignCenterIcon","FormatAlignRightIcon","FormatAlignJustifyIcon"],"mappings":";;;;;;;;;;;;AAQA,MAAM,0BAA0B,OAAO,iBAAiB,EAAE,CAAC,EAAE,OAAO,YAAY;AAAA,EAC9E,SAAS;AAAA,EACT,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,qBAAqB,UAAU,QAAQ,CAAC;AAAA,EACxC,CAAC,MAAM,yBAAyB,OAAO,EAAE,GAAG;AAAA,IAC1C,QAAQ,MAAM,QAAQ,GAAG;AAAA,IACzB,QAAQ;AAAA,IACR,cAAc,MAAM,MAAM;AAAA,IAC1B,CAAC,KAAK,yBAAyB,QAAQ,EAAE,GAAG;AAAA,MAC1C,QAAQ;AAAA,IAAA;AAAA,EACV;AAAA,EAEF,CAAC,MAAM,yBAAyB,YAAY,OAAO,yBAAyB,UAAU,EAAE,GACtF;AAAA,IACE,YAAY;AAAA,IACZ,YAAY;AAAA,EAAA;AAAA,EAEhB,CAAC,MAAM,yBAAyB,QAAQ,EAAE,GAAI;AAAA,IAC5C,iBAAiB,GAAG,MAAM,QAAQ,MAAM,QAAQ,GAAG,CAAC;AAAA,IACpD,OAAO;AAAA,EAAA;AAEX,EAAE;AAQF,MAAM,mBAAoD,CAAC;AAAA,EACzD;AAAA,EACA;AAAA,EACA,eAAe;AAAA;AAEjB,MAAM;AACJ,SACE,qBAAC,KAAA,EAAI,IAAI,EAAE,SAAS,QAAQ,UAAU,QAAQ,KAAK,GAAG,IAAI,EAAA,GACvD,UAAA;AAAA,IAAA,gBACC,oBAAC,cAAW,MAAK,MAAK,QAAO,UAAS,OAAO,uBAAuB,UAAA,YAAA,CAAS;AAAA,IAE/E;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAO;AAAA,QACP,WAAS;AAAA,QACT,UAAU;AAAA,QACV,cAAW;AAAA,QACX,MAAK;AAAA,QAEL,UAAA;AAAA,UAAA,oBAAC,SAAA,EAAQ,OAAM,cACb,UAAA,oBAAC,gBAAa,OAAM,QAAO,cAAW,gBACpC,UAAA,oBAACA,WAAA,EAAoB,UAAS,QAAA,CAAQ,GACxC,GACF;AAAA,UACA,oBAAC,SAAA,EAAQ,OAAM,gBACb,8BAAC,cAAA,EAAa,OAAM,UAAS,cAAW,YACtC,UAAA,oBAACC,aAAA,EAAsB,UAAS,QAAA,CAAQ,GAC1C,GACF;AAAA,UACA,oBAAC,SAAA,EAAQ,OAAM,eACb,8BAAC,cAAA,EAAa,OAAM,SAAQ,cAAW,iBACrC,UAAA,oBAACC,aAAA,EAAqB,UAAS,QAAA,CAAQ,GACzC,GACF;AAAA,UAEE,oBAAC,SAAA,EAAQ,OAAM,WACb,8BAAC,cAAA,EAAa,OAAM,WAAU,cAAW,aACvC,UAAA,oBAACC,aAAA,EAAuB,UAAS,SAAQ,GAC3C,EAAA,CACF;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAEJ,GACF;AAEJ;"}
1
+ {"version":3,"file":"index.esm.js","sources":["../../../../../../src/views/template-editor/components/controllers/AlignmentControl.tsx"],"sourcesContent":["/* eslint-disable unused-imports/no-unused-vars */\r\nimport { Box, ToggleButton, ToggleButtonGroup, Tooltip, styled, toggleButtonGroupClasses } from \"@mui/material\";\r\nimport FormatAlignLeftIcon from '@mui/icons-material/FormatAlignLeft';\r\nimport FormatAlignCenterIcon from '@mui/icons-material/FormatAlignCenter';\r\nimport FormatAlignRightIcon from '@mui/icons-material/FormatAlignRight';\r\nimport FormatAlignJustifyIcon from '@mui/icons-material/FormatAlignJustify';\r\nimport Typography from \"../../../../components/typography/typography\";\r\n\r\nconst StyledToggleButtonGroup = styled(ToggleButtonGroup)(({ theme, item }) => ({\r\n display: 'grid',\r\n borderRadius: 4,\r\n border: `1px solid #e3e3e3`,\r\n width: `100%`,\r\n gridTemplateColumns: `repeat(${item || 4}, 1fr)`,\r\n [`& .${toggleButtonGroupClasses.grouped}`]: {\r\n margin: theme.spacing(0.5),\r\n border: 0,\r\n borderRadius: theme.shape.borderRadius,\r\n [`&.${toggleButtonGroupClasses.disabled}`]: {\r\n border: 0,\r\n },\r\n },\r\n [`& .${toggleButtonGroupClasses.middleButton},& .${toggleButtonGroupClasses.lastButton}`]:\r\n {\r\n marginLeft: -1,\r\n borderLeft: '1px solid transparent',\r\n },\r\n [`& .${toggleButtonGroupClasses.selected}`] : {\r\n backgroundColor: `${theme.palette.theme.primary[800]}!important`,\r\n color: `#fff !important`\r\n }\r\n}))\r\n\r\ninterface AlignmentControlProps {\r\n alignment: string;\r\n onAlignmentChange: (event: React.MouseEvent<HTMLElement>, newAlignment: string | null) => void;\r\n displayLabel?: boolean;\r\n}\r\n\r\nconst AlignmentControl: React.FC<AlignmentControlProps> = ({\r\n alignment,\r\n onAlignmentChange,\r\n displayLabel = false,\r\n // disableJustify = false\r\n}) => {\r\n return (\r\n <Box sx={{ display: 'flex', flexWrap: 'wrap', gap: 1, mb: 2 }}>\r\n {displayLabel &&\r\n <Typography type=\"s5\" weight=\"medium\" color={\"theme.secondary.800\"}>Alignment</Typography>\r\n }\r\n <StyledToggleButtonGroup\r\n value={alignment}\r\n exclusive\r\n onChange={onAlignmentChange}\r\n aria-label=\"text alignment\"\r\n size=\"small\"\r\n >\r\n <Tooltip title=\"Align Left\">\r\n <ToggleButton value=\"left\" aria-label=\"left aligned\">\r\n <FormatAlignLeftIcon fontSize=\"small\" />\r\n </ToggleButton>\r\n </Tooltip>\r\n <Tooltip title=\"Align Center\">\r\n <ToggleButton value=\"center\" aria-label=\"centered\">\r\n <FormatAlignCenterIcon fontSize=\"small\" />\r\n </ToggleButton>\r\n </Tooltip>\r\n <Tooltip title=\"Align Right\">\r\n <ToggleButton value=\"right\" aria-label=\"right aligned\">\r\n <FormatAlignRightIcon fontSize=\"small\" />\r\n </ToggleButton>\r\n </Tooltip>\r\n {/* {!disableJustify && */}\r\n <Tooltip title=\"Justify\">\r\n <ToggleButton value=\"justify\" aria-label=\"justified\">\r\n <FormatAlignJustifyIcon fontSize=\"small\" />\r\n </ToggleButton>\r\n </Tooltip>\r\n {/* } */}\r\n </StyledToggleButtonGroup>\r\n </Box>\r\n );\r\n}\r\n \r\nexport default AlignmentControl;"],"names":["FormatAlignLeftIcon","FormatAlignCenterIcon","FormatAlignRightIcon","FormatAlignJustifyIcon"],"mappings":";;;;;;;;;;;;AAQA,MAAM,0BAA0B,OAAO,iBAAiB,EAAE,CAAC,EAAE,OAAO,YAAY;AAAA,EAC9E,SAAS;AAAA,EACT,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,qBAAqB,UAAU,QAAQ,CAAC;AAAA,EACxC,CAAC,MAAM,yBAAyB,OAAO,EAAE,GAAG;AAAA,IAC1C,QAAQ,MAAM,QAAQ,GAAG;AAAA,IACzB,QAAQ;AAAA,IACR,cAAc,MAAM,MAAM;AAAA,IAC1B,CAAC,KAAK,yBAAyB,QAAQ,EAAE,GAAG;AAAA,MAC1C,QAAQ;AAAA,IAAA;AAAA,EACV;AAAA,EAEF,CAAC,MAAM,yBAAyB,YAAY,OAAO,yBAAyB,UAAU,EAAE,GACtF;AAAA,IACE,YAAY;AAAA,IACZ,YAAY;AAAA,EAAA;AAAA,EAEhB,CAAC,MAAM,yBAAyB,QAAQ,EAAE,GAAI;AAAA,IAC5C,iBAAiB,GAAG,MAAM,QAAQ,MAAM,QAAQ,GAAG,CAAC;AAAA,IACpD,OAAO;AAAA,EAAA;AAEX,EAAE;AAQF,MAAM,mBAAoD,CAAC;AAAA,EACzD;AAAA,EACA;AAAA,EACA,eAAe;AAAA;AAEjB,MAAM;AACJ,SACE,qBAAC,KAAA,EAAI,IAAI,EAAE,SAAS,QAAQ,UAAU,QAAQ,KAAK,GAAG,IAAI,EAAA,GACvD,UAAA;AAAA,IAAA,gBACC,oBAAC,cAAW,MAAK,MAAK,QAAO,UAAS,OAAO,uBAAuB,UAAA,YAAA,CAAS;AAAA,IAE/E;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAO;AAAA,QACP,WAAS;AAAA,QACT,UAAU;AAAA,QACV,cAAW;AAAA,QACX,MAAK;AAAA,QAEL,UAAA;AAAA,UAAA,oBAAC,SAAA,EAAQ,OAAM,cACb,UAAA,oBAAC,gBAAa,OAAM,QAAO,cAAW,gBACpC,UAAA,oBAACA,WAAA,EAAoB,UAAS,QAAA,CAAQ,GACxC,GACF;AAAA,UACA,oBAAC,SAAA,EAAQ,OAAM,gBACb,8BAAC,cAAA,EAAa,OAAM,UAAS,cAAW,YACtC,UAAA,oBAACC,aAAA,EAAsB,UAAS,QAAA,CAAQ,GAC1C,GACF;AAAA,UACA,oBAAC,SAAA,EAAQ,OAAM,eACb,8BAAC,cAAA,EAAa,OAAM,SAAQ,cAAW,iBACrC,UAAA,oBAACC,aAAA,EAAqB,UAAS,QAAA,CAAQ,GACzC,GACF;AAAA,UAEE,oBAAC,SAAA,EAAQ,OAAM,WACb,8BAAC,cAAA,EAAa,OAAM,WAAU,cAAW,aACvC,UAAA,oBAACC,aAAA,EAAuB,UAAS,SAAQ,GAC3C,EAAA,CACF;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAEJ,GACF;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../src/views/template-editor/components/controllers/AlignmentControl.tsx"],"sourcesContent":["/* eslint-disable unused-imports/no-unused-vars */\nimport { Box, ToggleButton, ToggleButtonGroup, Tooltip, styled, toggleButtonGroupClasses } from \"@mui/material\";\nimport FormatAlignLeftIcon from '@mui/icons-material/FormatAlignLeft';\nimport FormatAlignCenterIcon from '@mui/icons-material/FormatAlignCenter';\nimport FormatAlignRightIcon from '@mui/icons-material/FormatAlignRight';\nimport FormatAlignJustifyIcon from '@mui/icons-material/FormatAlignJustify';\nimport Typography from \"../../../../components/typography/typography\";\n\nconst StyledToggleButtonGroup = styled(ToggleButtonGroup)(({ theme, item }) => ({\n display: 'grid',\n borderRadius: 4,\n border: `1px solid #e3e3e3`,\n width: `100%`,\n gridTemplateColumns: `repeat(${item || 4}, 1fr)`,\n [`& .${toggleButtonGroupClasses.grouped}`]: {\n margin: theme.spacing(0.5),\n border: 0,\n borderRadius: theme.shape.borderRadius,\n [`&.${toggleButtonGroupClasses.disabled}`]: {\n border: 0,\n },\n },\n [`& .${toggleButtonGroupClasses.middleButton},& .${toggleButtonGroupClasses.lastButton}`]:\n {\n marginLeft: -1,\n borderLeft: '1px solid transparent',\n },\n [`& .${toggleButtonGroupClasses.selected}`] : {\n backgroundColor: `${theme.palette.theme.primary[800]}!important`,\n color: `#fff !important`\n }\n}))\n\ninterface AlignmentControlProps {\n alignment: string;\n onAlignmentChange: (event: React.MouseEvent<HTMLElement>, newAlignment: string | null) => void;\n displayLabel?: boolean;\n}\n\nconst AlignmentControl: React.FC<AlignmentControlProps> = ({\n alignment,\n onAlignmentChange,\n displayLabel = false,\n // disableJustify = false\n}) => {\n return (\n <Box sx={{ display: 'flex', flexWrap: 'wrap', gap: 1, mb: 2 }}>\n {displayLabel &&\n <Typography type=\"s5\" weight=\"medium\" color={\"theme.secondary.800\"}>Alignment</Typography>\n }\n <StyledToggleButtonGroup\n value={alignment}\n exclusive\n onChange={onAlignmentChange}\n aria-label=\"text alignment\"\n size=\"small\"\n >\n <Tooltip title=\"Align Left\">\n <ToggleButton value=\"left\" aria-label=\"left aligned\">\n <FormatAlignLeftIcon fontSize=\"small\" />\n </ToggleButton>\n </Tooltip>\n <Tooltip title=\"Align Center\">\n <ToggleButton value=\"center\" aria-label=\"centered\">\n <FormatAlignCenterIcon fontSize=\"small\" />\n </ToggleButton>\n </Tooltip>\n <Tooltip title=\"Align Right\">\n <ToggleButton value=\"right\" aria-label=\"right aligned\">\n <FormatAlignRightIcon fontSize=\"small\" />\n </ToggleButton>\n </Tooltip>\n {/* {!disableJustify && */}\n <Tooltip title=\"Justify\">\n <ToggleButton value=\"justify\" aria-label=\"justified\">\n <FormatAlignJustifyIcon fontSize=\"small\" />\n </ToggleButton>\n </Tooltip>\n {/* } */}\n </StyledToggleButtonGroup>\n </Box>\n );\n}\n \nexport default AlignmentControl;"],"names":["StyledToggleButtonGroup","styled","ToggleButtonGroup","theme","item","display","borderRadius","border","width","gridTemplateColumns","toggleButtonGroupClasses","grouped","margin","spacing","shape","disabled","middleButton","lastButton","marginLeft","borderLeft","selected","backgroundColor","palette","primary","color","alignment","onAlignmentChange","displayLabel","jsxs","Box","sx","flexWrap","gap","mb","children","jsx","Typography","type","weight","value","exclusive","onChange","size","Tooltip","title","ToggleButton","FormatAlignLeftIcon","fontSize","FormatAlignCenterIcon","FormatAlignRightIcon","FormatAlignJustifyIcon"],"mappings":"0hCAQA,MAAMA,EAA0BC,EAAAA,QAAOC,EAAAA,QAAPD,CAA0B,EAAGE,QAAOC,YAClEC,QAAS,OACTC,aAAc,EACdC,OAAQ,oBACRC,MAAO,OACPC,oBAAqB,UAAUL,GAAQ,UACvC,CAAC,MAAMM,UAAyBC,WAAY,CAC1CC,OAAQT,EAAMU,QAAQ,IACtBN,OAAQ,EACRD,aAAcH,EAAMW,MAAMR,aAC1B,CAAC,KAAKI,UAAyBK,YAAa,CAC1CR,OAAQ,IAGZ,CAAC,MAAMG,UAAyBM,mBAAmBN,EAAAA,QAAyBO,cAC1E,CACEC,YAAY,EACZC,WAAY,yBAEhB,CAAC,MAAMT,UAAyBU,YAAc,CAC5CC,gBAAiB,GAAGlB,EAAMmB,QAAQnB,MAAMoB,QAAQ,iBAChDC,MAAO,sCAU+C,EACxDC,YACAC,oBACAC,gBAAe,sBAIbC,KAACC,EAAAA,QAAA,CAAIC,GAAI,CAAEzB,QAAS,OAAQ0B,SAAU,OAAQC,IAAK,EAAGC,GAAI,GACvDC,SAAA,CAAAP,kBACCQ,EAAAA,IAACC,cAAWC,KAAK,KAAKC,OAAO,SAASd,MAAO,sBAAuBU,SAAA;eAEtEN,EAAAA,KAAC5B,EAAA,CACCuC,MAAOd,EACPe,WAAS,EACTC,SAAUf,EACV,aAAW,iBACXgB,KAAK,QAELR,SAAA;eAAAC,MAACQ,EAAAA,QAAA,CAAQC,MAAM,aACbV,wBAAAC,EAAAA,IAACU,WAAaN,MAAM,OAAO,aAAW,eACpCL,wBAAAC,EAAAA,IAACW,EAAAA,QAAA,CAAoBC,SAAS;eAGlCZ,MAACQ,EAAAA,QAAA,CAAQC,MAAM,eACbV,8BAACW,UAAA,CAAaN,MAAM,SAAS,aAAW,WACtCL,wBAAAC,EAAAA,IAACa,EAAAA,QAAA,CAAsBD,SAAS;eAGpCZ,MAACQ,EAAAA,QAAA,CAAQC,MAAM,cACbV,8BAACW,UAAA,CAAaN,MAAM,QAAQ,aAAW,gBACrCL,wBAAAC,EAAAA,IAACc,EAAAA,QAAA,CAAqBF,SAAS;eAIjCZ,MAACQ,EAAAA,QAAA,CAAQC,MAAM,UACbV,8BAACW,UAAA,CAAaN,MAAM,UAAU,aAAW,YACvCL,wBAAAC,MAACe,EAAAA,QAAA,CAAuBH,SAAS"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../src/views/template-editor/components/controllers/AlignmentControl.tsx"],"sourcesContent":["/* eslint-disable unused-imports/no-unused-vars */\r\nimport { Box, ToggleButton, ToggleButtonGroup, Tooltip, styled, toggleButtonGroupClasses } from \"@mui/material\";\r\nimport FormatAlignLeftIcon from '@mui/icons-material/FormatAlignLeft';\r\nimport FormatAlignCenterIcon from '@mui/icons-material/FormatAlignCenter';\r\nimport FormatAlignRightIcon from '@mui/icons-material/FormatAlignRight';\r\nimport FormatAlignJustifyIcon from '@mui/icons-material/FormatAlignJustify';\r\nimport Typography from \"../../../../components/typography/typography\";\r\n\r\nconst StyledToggleButtonGroup = styled(ToggleButtonGroup)(({ theme, item }) => ({\r\n display: 'grid',\r\n borderRadius: 4,\r\n border: `1px solid #e3e3e3`,\r\n width: `100%`,\r\n gridTemplateColumns: `repeat(${item || 4}, 1fr)`,\r\n [`& .${toggleButtonGroupClasses.grouped}`]: {\r\n margin: theme.spacing(0.5),\r\n border: 0,\r\n borderRadius: theme.shape.borderRadius,\r\n [`&.${toggleButtonGroupClasses.disabled}`]: {\r\n border: 0,\r\n },\r\n },\r\n [`& .${toggleButtonGroupClasses.middleButton},& .${toggleButtonGroupClasses.lastButton}`]:\r\n {\r\n marginLeft: -1,\r\n borderLeft: '1px solid transparent',\r\n },\r\n [`& .${toggleButtonGroupClasses.selected}`] : {\r\n backgroundColor: `${theme.palette.theme.primary[800]}!important`,\r\n color: `#fff !important`\r\n }\r\n}))\r\n\r\ninterface AlignmentControlProps {\r\n alignment: string;\r\n onAlignmentChange: (event: React.MouseEvent<HTMLElement>, newAlignment: string | null) => void;\r\n displayLabel?: boolean;\r\n}\r\n\r\nconst AlignmentControl: React.FC<AlignmentControlProps> = ({\r\n alignment,\r\n onAlignmentChange,\r\n displayLabel = false,\r\n // disableJustify = false\r\n}) => {\r\n return (\r\n <Box sx={{ display: 'flex', flexWrap: 'wrap', gap: 1, mb: 2 }}>\r\n {displayLabel &&\r\n <Typography type=\"s5\" weight=\"medium\" color={\"theme.secondary.800\"}>Alignment</Typography>\r\n }\r\n <StyledToggleButtonGroup\r\n value={alignment}\r\n exclusive\r\n onChange={onAlignmentChange}\r\n aria-label=\"text alignment\"\r\n size=\"small\"\r\n >\r\n <Tooltip title=\"Align Left\">\r\n <ToggleButton value=\"left\" aria-label=\"left aligned\">\r\n <FormatAlignLeftIcon fontSize=\"small\" />\r\n </ToggleButton>\r\n </Tooltip>\r\n <Tooltip title=\"Align Center\">\r\n <ToggleButton value=\"center\" aria-label=\"centered\">\r\n <FormatAlignCenterIcon fontSize=\"small\" />\r\n </ToggleButton>\r\n </Tooltip>\r\n <Tooltip title=\"Align Right\">\r\n <ToggleButton value=\"right\" aria-label=\"right aligned\">\r\n <FormatAlignRightIcon fontSize=\"small\" />\r\n </ToggleButton>\r\n </Tooltip>\r\n {/* {!disableJustify && */}\r\n <Tooltip title=\"Justify\">\r\n <ToggleButton value=\"justify\" aria-label=\"justified\">\r\n <FormatAlignJustifyIcon fontSize=\"small\" />\r\n </ToggleButton>\r\n </Tooltip>\r\n {/* } */}\r\n </StyledToggleButtonGroup>\r\n </Box>\r\n );\r\n}\r\n \r\nexport default AlignmentControl;"],"names":["StyledToggleButtonGroup","styled","ToggleButtonGroup","theme","item","display","borderRadius","border","width","gridTemplateColumns","toggleButtonGroupClasses","grouped","margin","spacing","shape","disabled","middleButton","lastButton","marginLeft","borderLeft","selected","backgroundColor","palette","primary","color","alignment","onAlignmentChange","displayLabel","jsxs","Box","sx","flexWrap","gap","mb","children","jsx","Typography","type","weight","value","exclusive","onChange","size","Tooltip","title","ToggleButton","FormatAlignLeftIcon","fontSize","FormatAlignCenterIcon","FormatAlignRightIcon","FormatAlignJustifyIcon"],"mappings":"0hCAQA,MAAMA,EAA0BC,EAAAA,QAAOC,EAAAA,QAAPD,CAA0B,EAAGE,QAAOC,YAClEC,QAAS,OACTC,aAAc,EACdC,OAAQ,oBACRC,MAAO,OACPC,oBAAqB,UAAUL,GAAQ,UACvC,CAAC,MAAMM,UAAyBC,WAAY,CAC1CC,OAAQT,EAAMU,QAAQ,IACtBN,OAAQ,EACRD,aAAcH,EAAMW,MAAMR,aAC1B,CAAC,KAAKI,UAAyBK,YAAa,CAC1CR,OAAQ,IAGZ,CAAC,MAAMG,UAAyBM,mBAAmBN,EAAAA,QAAyBO,cAC1E,CACEC,YAAY,EACZC,WAAY,yBAEhB,CAAC,MAAMT,UAAyBU,YAAc,CAC5CC,gBAAiB,GAAGlB,EAAMmB,QAAQnB,MAAMoB,QAAQ,iBAChDC,MAAO,sCAU+C,EACxDC,YACAC,oBACAC,gBAAe,sBAIbC,KAACC,EAAAA,QAAA,CAAIC,GAAI,CAAEzB,QAAS,OAAQ0B,SAAU,OAAQC,IAAK,EAAGC,GAAI,GACvDC,SAAA,CAAAP,kBACCQ,EAAAA,IAACC,cAAWC,KAAK,KAAKC,OAAO,SAASd,MAAO,sBAAuBU,SAAA;eAEtEN,EAAAA,KAAC5B,EAAA,CACCuC,MAAOd,EACPe,WAAS,EACTC,SAAUf,EACV,aAAW,iBACXgB,KAAK,QAELR,SAAA;eAAAC,MAACQ,EAAAA,QAAA,CAAQC,MAAM,aACbV,wBAAAC,EAAAA,IAACU,WAAaN,MAAM,OAAO,aAAW,eACpCL,wBAAAC,EAAAA,IAACW,EAAAA,QAAA,CAAoBC,SAAS;eAGlCZ,MAACQ,EAAAA,QAAA,CAAQC,MAAM,eACbV,8BAACW,UAAA,CAAaN,MAAM,SAAS,aAAW,WACtCL,wBAAAC,EAAAA,IAACa,EAAAA,QAAA,CAAsBD,SAAS;eAGpCZ,MAACQ,EAAAA,QAAA,CAAQC,MAAM,cACbV,8BAACW,UAAA,CAAaN,MAAM,QAAQ,aAAW,gBACrCL,wBAAAC,EAAAA,IAACc,EAAAA,QAAA,CAAqBF,SAAS;eAIjCZ,MAACQ,EAAAA,QAAA,CAAQC,MAAM,UACbV,8BAACW,UAAA,CAAaN,MAAM,UAAU,aAAW,YACvCL,wBAAAC,MAACe,EAAAA,QAAA,CAAuBH,SAAS"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../../../../../../src/views/template-editor/components/controllers/ButtonControls.tsx"],"sourcesContent":["/* eslint-disable unused-imports/no-unused-vars */\nimport React from 'react';\nimport {\n Box,\n FormControl,\n MenuItem,\n Slider,\n} from '@mui/material';\nimport Typography from '../../../../components/typography/typography';\nimport TextField from '../../../../components/text-field/text-field';\nimport AlignmentControl from './AlignmentControl';\nimport Select from '../../../../components/select/select';\nimport ColorPickerInput from '../../../../components/color-picker-input/color-picker-input';\n\ninterface ButtonControlsProps {\n attrs: Record<string, any>;\n updateAttrs: (attr: Record<string, any>) => void;\n}\n\nconst borderOptions = [\n {label: 'None', value: 'none'},\n {value: '1px solid #e0e0e0', label: 'Solid'},\n {value: '1px dashed #e0e0e0', label: 'Dashed'},\n {value: '1px dotted #e0e0e0', label: 'Dotted'},\n]\n\nconst ButtonControls: React.FC<ButtonControlsProps> = ({\n attrs,\n updateAttrs\n}) => {\n\n const { text, styles } = attrs\n const handleAlignmentChange = (\n event: React.MouseEvent<HTMLElement>,\n newAlignment: string | null,\n ) => {\n if(newAlignment) {\n let margin = '0';\n switch (newAlignment) {\n \n case 'justify':\n margin = '0 auto';\n break;\n case 'right':\n margin = '0 0 0 auto';\n break;\n case 'center':\n margin = '0 auto';\n break;\n case 'left':\n margin = 'auto 0 0 0';\n break;\n default:\n margin = '0 auto';\n break;\n }\n updateAttrs({ styles : { margin } });\n }\n };\n\n const getAlignment = () => {\n if (styles?.margin === '0 auto') {\n return 'center';\n } else if (styles?.margin === '0 0 0 auto') {\n return 'right';\n } else if (styles?.margin === 'auto 0 0 0') {\n return 'left';\n } else {\n return 'justify';\n }\n };\n\n return (\n <>\n <TextField\n label=\"Button Text\"\n fullWidth\n value={text}\n onChange={(e) => updateAttrs({ text: e.target.value })}\n size=\"small\"\n sx={{ mb: 2 }}\n />\n <Box sx={{ mb: 2 }}>\n <ColorPickerInput\n value={styles?.backgroundColor || '#333333'}\n onChange={(color) => updateAttrs({ styles :{ backgroundColor: color }})}\n label='Background Color'\n />\n </Box>\n <Box sx={{ mb: 2 }}>\n <ColorPickerInput\n value={styles?.color || '#333333'}\n onChange={(color) => updateAttrs({ styles :{ color: color }})}\n label='Text Color'\n // sx={{ maxWidth: 150 }}\n />\n </Box>\n <FormControl fullWidth size=\"small\" sx={{ mb: 2 }}>\n <Select\n value={styles?.border}\n renderValue={(value) => borderOptions.find((option) => option.value === value)?.label || 'None'}\n onChange={(e) => updateAttrs({ styles :{ border :e.target.value }})}\n label='Border'\n >\n <MenuItem value=\"none\">None</MenuItem>\n <MenuItem value=\"1px solid #e0e0e0\">Solid</MenuItem>\n <MenuItem value=\"1px dashed #e0e0e0\">Dashed</MenuItem>\n </Select>\n </FormControl>\n <Box sx={{ mb: 2 }}>\n <Typography type=\"s3\" color='theme.neutral.800'>\n Border Radius\n </Typography>\n <Slider\n value={styles?.borderRadius}\n onChange={(_, value) => updateAttrs({ styles :{ borderRadius: value as number }})}\n min={0}\n max={20}\n step={1}\n valueLabelDisplay=\"auto\"\n size=\"small\"\n marks\n sx={(theme) => ({\n '& .MuiSlider-rail': {\n color: theme.palette.theme.primary[500],\n },\n '& .MuiSlider-thumb': {\n color: theme.palette.theme.primary[800],\n },\n '& .MuiSlider-track': {\n color: theme.palette.theme.primary[600],\n },\n })}\n />\n </Box>\n <Box sx={{ mb: 2 }}>\n <Typography type=\"s3\" color='theme.neutral.800'>\n Font Size\n </Typography>\n <Slider\n value={styles?.fontSize}\n onChange={(_, value) => updateAttrs({ styles :{ fontSize: value as number }})}\n min={10}\n max={20}\n step={1}\n valueLabelDisplay=\"auto\"\n size=\"small\"\n marks\n sx={(theme) => ({\n '& .MuiSlider-rail': {\n color: theme.palette.theme.primary[500],\n },\n '& .MuiSlider-thumb': {\n color: theme.palette.theme.primary[800],\n },\n '& .MuiSlider-track': {\n color: theme.palette.theme.primary[600],\n },\n })}\n />\n </Box>\n <AlignmentControl alignment={getAlignment()} onAlignmentChange={handleAlignmentChange}/>\n </>\n );\n};\n\nexport default ButtonControls;"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","sources":["../../../../../../src/views/template-editor/components/controllers/ButtonControls.tsx"],"sourcesContent":["/* eslint-disable unused-imports/no-unused-vars */\r\nimport React from 'react';\r\nimport {\r\n Box,\r\n FormControl,\r\n MenuItem,\r\n Slider,\r\n} from '@mui/material';\r\nimport Typography from '../../../../components/typography/typography';\r\nimport TextField from '../../../../components/text-field/text-field';\r\nimport AlignmentControl from './AlignmentControl';\r\nimport Select from '../../../../components/select/select';\r\nimport ColorPickerInput from '../../../../components/color-picker-input/color-picker-input';\r\n\r\ninterface ButtonControlsProps {\r\n attrs: Record<string, any>;\r\n updateAttrs: (attr: Record<string, any>) => void;\r\n}\r\n\r\nconst borderOptions = [\r\n {label: 'None', value: 'none'},\r\n {value: '1px solid #e0e0e0', label: 'Solid'},\r\n {value: '1px dashed #e0e0e0', label: 'Dashed'},\r\n {value: '1px dotted #e0e0e0', label: 'Dotted'},\r\n]\r\n\r\nconst ButtonControls: React.FC<ButtonControlsProps> = ({\r\n attrs,\r\n updateAttrs\r\n}) => {\r\n\r\n const { text, styles } = attrs\r\n const handleAlignmentChange = (\r\n event: React.MouseEvent<HTMLElement>,\r\n newAlignment: string | null,\r\n ) => {\r\n if(newAlignment) {\r\n let margin = '0';\r\n switch (newAlignment) {\r\n \r\n case 'justify':\r\n margin = '0 auto';\r\n break;\r\n case 'right':\r\n margin = '0 0 0 auto';\r\n break;\r\n case 'center':\r\n margin = '0 auto';\r\n break;\r\n case 'left':\r\n margin = 'auto 0 0 0';\r\n break;\r\n default:\r\n margin = '0 auto';\r\n break;\r\n }\r\n updateAttrs({ styles : { margin } });\r\n }\r\n };\r\n\r\n const getAlignment = () => {\r\n if (styles?.margin === '0 auto') {\r\n return 'center';\r\n } else if (styles?.margin === '0 0 0 auto') {\r\n return 'right';\r\n } else if (styles?.margin === 'auto 0 0 0') {\r\n return 'left';\r\n } else {\r\n return 'justify';\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n <TextField\r\n label=\"Button Text\"\r\n fullWidth\r\n value={text}\r\n onChange={(e) => updateAttrs({ text: e.target.value })}\r\n size=\"small\"\r\n sx={{ mb: 2 }}\r\n />\r\n <Box sx={{ mb: 2 }}>\r\n <ColorPickerInput\r\n value={styles?.backgroundColor || '#333333'}\r\n onChange={(color) => updateAttrs({ styles :{ backgroundColor: color }})}\r\n label='Background Color'\r\n />\r\n </Box>\r\n <Box sx={{ mb: 2 }}>\r\n <ColorPickerInput\r\n value={styles?.color || '#333333'}\r\n onChange={(color) => updateAttrs({ styles :{ color: color }})}\r\n label='Text Color'\r\n // sx={{ maxWidth: 150 }}\r\n />\r\n </Box>\r\n <FormControl fullWidth size=\"small\" sx={{ mb: 2 }}>\r\n <Select\r\n value={styles?.border}\r\n renderValue={(value) => borderOptions.find((option) => option.value === value)?.label || 'None'}\r\n onChange={(e) => updateAttrs({ styles :{ border :e.target.value }})}\r\n label='Border'\r\n >\r\n <MenuItem value=\"none\">None</MenuItem>\r\n <MenuItem value=\"1px solid #e0e0e0\">Solid</MenuItem>\r\n <MenuItem value=\"1px dashed #e0e0e0\">Dashed</MenuItem>\r\n </Select>\r\n </FormControl>\r\n <Box sx={{ mb: 2 }}>\r\n <Typography type=\"s3\" color='theme.neutral.800'>\r\n Border Radius\r\n </Typography>\r\n <Slider\r\n value={styles?.borderRadius}\r\n onChange={(_, value) => updateAttrs({ styles :{ borderRadius: value as number }})}\r\n min={0}\r\n max={20}\r\n step={1}\r\n valueLabelDisplay=\"auto\"\r\n size=\"small\"\r\n marks\r\n sx={(theme) => ({\r\n '& .MuiSlider-rail': {\r\n color: theme.palette.theme.primary[500],\r\n },\r\n '& .MuiSlider-thumb': {\r\n color: theme.palette.theme.primary[800],\r\n },\r\n '& .MuiSlider-track': {\r\n color: theme.palette.theme.primary[600],\r\n },\r\n })}\r\n />\r\n </Box>\r\n <Box sx={{ mb: 2 }}>\r\n <Typography type=\"s3\" color='theme.neutral.800'>\r\n Font Size\r\n </Typography>\r\n <Slider\r\n value={styles?.fontSize}\r\n onChange={(_, value) => updateAttrs({ styles :{ fontSize: value as number }})}\r\n min={10}\r\n max={20}\r\n step={1}\r\n valueLabelDisplay=\"auto\"\r\n size=\"small\"\r\n marks\r\n sx={(theme) => ({\r\n '& .MuiSlider-rail': {\r\n color: theme.palette.theme.primary[500],\r\n },\r\n '& .MuiSlider-thumb': {\r\n color: theme.palette.theme.primary[800],\r\n },\r\n '& .MuiSlider-track': {\r\n color: theme.palette.theme.primary[600],\r\n },\r\n })}\r\n />\r\n </Box>\r\n <AlignmentControl alignment={getAlignment()} onAlignmentChange={handleAlignmentChange}/>\r\n </>\r\n );\r\n};\r\n\r\nexport default ButtonControls;"],"names":[],"mappings":"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"}