@acorex/components 19.10.9 → 19.11.0-next.1

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 (470) hide show
  1. package/action-sheet/lib/action-sheet.component.d.ts +1 -1
  2. package/action-sheet/lib/action-sheet.module.d.ts +11 -11
  3. package/alert/lib/alert.component.d.ts +1 -1
  4. package/alert/lib/alert.module.d.ts +4 -4
  5. package/audio-wave/lib/audio-wave.component.d.ts +1 -1
  6. package/audio-wave/lib/audio-wave.module.d.ts +7 -7
  7. package/avatar/lib/avatar-group.component.d.ts +1 -1
  8. package/avatar/lib/avatar.component.d.ts +1 -1
  9. package/avatar/lib/avatar.module.d.ts +4 -4
  10. package/badge/lib/badge.component.d.ts +1 -1
  11. package/badge/lib/badge.module.d.ts +3 -3
  12. package/bottom-navigation/lib/bottom-navigation-item/bottom-navigation-item.component.d.ts +1 -1
  13. package/bottom-navigation/lib/bottom-navigation.component.d.ts +1 -1
  14. package/bottom-navigation/lib/bottom-navigation.module.d.ts +4 -4
  15. package/breadcrumbs/lib/breadcrumbs-item.component.d.ts +1 -1
  16. package/breadcrumbs/lib/breadcrumbs.component.d.ts +1 -1
  17. package/breadcrumbs/lib/breadcrumbs.module.d.ts +5 -5
  18. package/button/lib/button-item-list.component.d.ts +1 -1
  19. package/button/lib/button-item.component.d.ts +1 -1
  20. package/button/lib/button.component.d.ts +1 -1
  21. package/button/lib/button.module.d.ts +8 -8
  22. package/button-group/lib/button-group-item.component.d.ts +1 -1
  23. package/button-group/lib/button-group.component.d.ts +1 -1
  24. package/button-group/lib/button-group.module.d.ts +6 -6
  25. package/calendar/lib/calendar-range.component.d.ts +1 -1
  26. package/calendar/lib/calendar.component.d.ts +1 -1
  27. package/calendar/lib/calendar.module.d.ts +8 -8
  28. package/check-box/lib/check-box.component.d.ts +1 -1
  29. package/check-box/lib/check-box.module.d.ts +5 -5
  30. package/chips/lib/chips.component.d.ts +1 -1
  31. package/chips/lib/chips.module.d.ts +3 -3
  32. package/circular-progress/lib/circular-progress.component.d.ts +1 -1
  33. package/circular-progress/lib/circular-progress.module.d.ts +1 -1
  34. package/collapse/lib/collapse-group.component.d.ts +1 -1
  35. package/collapse/lib/collapse.component.d.ts +1 -1
  36. package/collapse/lib/collapse.module.d.ts +5 -5
  37. package/color-box/lib/color-box.component.d.ts +1 -1
  38. package/color-box/lib/color-box.module.d.ts +6 -6
  39. package/color-palette/lib/color-palette-input.component.d.ts +1 -1
  40. package/color-palette/lib/color-palette-picker.component.d.ts +1 -1
  41. package/color-palette/lib/color-palette-preview.component.d.ts +3 -3
  42. package/color-palette/lib/color-palette-swatches.component.d.ts +1 -1
  43. package/color-palette/lib/color-palette.component.d.ts +3 -3
  44. package/color-palette/lib/color-palette.module.d.ts +17 -17
  45. package/comment/lib/comment-container/comment-container.component.d.ts +1 -1
  46. package/comment/lib/comment-item/comment-item.component.d.ts +1 -1
  47. package/comment/lib/comment-tools/comment-date/comment-date.component.d.ts +1 -1
  48. package/comment/lib/comment-tools/comment-like/comment-like.component.d.ts +1 -1
  49. package/comment/lib/comment-tools/comment-menu-options/comment-menu-options.component.d.ts +1 -1
  50. package/comment/lib/comment-tools/comment-reply-more/comment-reply-more.component.d.ts +1 -1
  51. package/comment/lib/comment-tools/comment-reply-text/comment-reply-text.component.d.ts +1 -1
  52. package/comment/lib/comment-view/comment-view.component.d.ts +1 -1
  53. package/comment/lib/comment.module.d.ts +16 -16
  54. package/common/lib/common.module.d.ts +1 -1
  55. package/common/lib/directives/auto-focus.directive.d.ts +1 -1
  56. package/common/lib/directives/hotkey.directive.d.ts +1 -1
  57. package/common/lib/directives/infinite-scroll.directive.d.ts +1 -1
  58. package/common/lib/directives/responsive.directive.d.ts +1 -1
  59. package/conversation/lib/conversation-container/conversation-container.component.d.ts +1 -1
  60. package/conversation/lib/conversation-input/conversation-input.component.d.ts +1 -1
  61. package/conversation/lib/conversation-message/conversation-message.component.d.ts +1 -1
  62. package/conversation/lib/conversation-messages/conversation-message-audio/conversation-message-audio.component.d.ts +1 -1
  63. package/conversation/lib/conversation-messages/conversation-message-file/conversation-message-file.component.d.ts +1 -1
  64. package/conversation/lib/conversation-messages/conversation-message-image/conversation-message-image.component.d.ts +1 -1
  65. package/conversation/lib/conversation-messages/conversation-message-text/conversation-message-text.component.d.ts +1 -1
  66. package/conversation/lib/conversation-messages/conversation-message-video/conversation-message-video.component.d.ts +1 -1
  67. package/conversation/lib/conversation-messages/conversation-message-voice/conversation-message-voice.component.d.ts +1 -1
  68. package/conversation/lib/conversation-view/conversation-view.component.d.ts +1 -1
  69. package/conversation/lib/conversation.module.d.ts +29 -29
  70. package/cron-job/lib/cron-job-container/cron-job-container.component.d.ts +1 -1
  71. package/cron-job/lib/cron-job.module.d.ts +20 -20
  72. package/cron-job/lib/day/day.component.d.ts +1 -1
  73. package/cron-job/lib/hours/hours.component.d.ts +1 -1
  74. package/cron-job/lib/minutes/minutes.component.d.ts +1 -1
  75. package/cron-job/lib/month/month.component.d.ts +1 -1
  76. package/cron-job/lib/seconds/seconds.component.d.ts +1 -1
  77. package/cron-job/lib/year/year.component.d.ts +1 -1
  78. package/data-pager/lib/data-pager-info.component.d.ts +1 -1
  79. package/data-pager/lib/data-pager-input-selector.component.d.ts +1 -1
  80. package/data-pager/lib/data-pager-next-buttons.component.d.ts +1 -1
  81. package/data-pager/lib/data-pager-numeric-selector.component.d.ts +1 -1
  82. package/data-pager/lib/data-pager-pagesize-dropdown.component.d.ts +1 -1
  83. package/data-pager/lib/data-pager-prev-buttons.component.d.ts +1 -1
  84. package/data-pager/lib/data-pager.component.d.ts +1 -1
  85. package/data-pager/lib/data-pager.module.d.ts +17 -17
  86. package/data-table/lib/columns/data-table-column-resizable.directive.d.ts +1 -1
  87. package/data-table/lib/columns/data-text-column.component.d.ts +1 -1
  88. package/data-table/lib/columns/row-command-column.component.d.ts +2 -2
  89. package/data-table/lib/columns/row-expand-column.component.d.ts +1 -1
  90. package/data-table/lib/columns/row-index-column.component.d.ts +10 -10
  91. package/data-table/lib/columns/row-select-column.component.d.ts +1 -1
  92. package/data-table/lib/data-table/data-table.component.d.ts +1 -1
  93. package/data-table/lib/data-table.module.d.ts +22 -22
  94. package/data-table/lib/infinite-scroll-data-table/infinite-scroll-data-table.component.d.ts +1 -1
  95. package/datetime-box/lib/datetime-box.component.d.ts +1 -1
  96. package/datetime-box/lib/datetime-box.module.d.ts +8 -8
  97. package/datetime-input/lib/datetime-input.component.d.ts +1 -1
  98. package/datetime-input/lib/datetime-input.module.d.ts +5 -5
  99. package/datetime-picker/lib/datetime-picker.component.d.ts +1 -1
  100. package/datetime-picker/lib/datetime-picker.module.d.ts +11 -11
  101. package/decorators/lib/components/clear-button/clear-button.component.d.ts +1 -1
  102. package/decorators/lib/components/close-button/close-button.component.d.ts +1 -1
  103. package/decorators/lib/components/color-indicator/color-indicator.component.d.ts +1 -1
  104. package/decorators/lib/components/full-screen/full-screen-button.component.d.ts +1 -1
  105. package/decorators/lib/components/generic-content.component.d.ts +1 -1
  106. package/decorators/lib/components/heading/heading.component.d.ts +1 -1
  107. package/decorators/lib/components/icon/icon.component.d.ts +1 -1
  108. package/decorators/lib/decorators.module.d.ts +9 -9
  109. package/dialog/lib/dialog.component.d.ts +1 -1
  110. package/dialog/lib/dialog.module.d.ts +11 -11
  111. package/drawer/lib/drawer/drawer-container/drawer-container.component.d.ts +1 -1
  112. package/drawer/lib/drawer/drawer-item/drawer.component.d.ts +1 -1
  113. package/drawer/lib/drawer.module.d.ts +4 -4
  114. package/dropdown/lib/dropdown-box.component.d.ts +1 -1
  115. package/dropdown/lib/dropdown-panel.component.d.ts +1 -1
  116. package/dropdown/lib/dropdown.module.d.ts +9 -9
  117. package/dropdown-button/lib/dropdown-button.component.d.ts +1 -1
  118. package/dropdown-button/lib/dropdown-button.module.d.ts +8 -8
  119. package/fesm2022/acorex-components-action-sheet.mjs +20 -53
  120. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  121. package/fesm2022/acorex-components-alert.mjs +11 -13
  122. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  123. package/fesm2022/acorex-components-audio-wave.mjs +12 -15
  124. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  125. package/fesm2022/acorex-components-avatar.mjs +13 -15
  126. package/fesm2022/acorex-components-avatar.mjs.map +1 -1
  127. package/fesm2022/acorex-components-badge.mjs +10 -11
  128. package/fesm2022/acorex-components-badge.mjs.map +1 -1
  129. package/fesm2022/acorex-components-bottom-navigation.mjs +14 -15
  130. package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
  131. package/fesm2022/acorex-components-breadcrumbs.mjs +15 -17
  132. package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
  133. package/fesm2022/acorex-components-button-group.mjs +16 -18
  134. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  135. package/fesm2022/acorex-components-button.mjs +28 -51
  136. package/fesm2022/acorex-components-button.mjs.map +1 -1
  137. package/fesm2022/acorex-components-calendar.mjs +26 -42
  138. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  139. package/fesm2022/acorex-components-check-box.mjs +11 -12
  140. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  141. package/fesm2022/acorex-components-chips.mjs +10 -11
  142. package/fesm2022/acorex-components-chips.mjs.map +1 -1
  143. package/fesm2022/acorex-components-circular-progress.mjs +10 -11
  144. package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
  145. package/fesm2022/acorex-components-collapse.mjs +16 -20
  146. package/fesm2022/acorex-components-collapse.mjs.map +1 -1
  147. package/fesm2022/acorex-components-color-box.mjs +23 -40
  148. package/fesm2022/acorex-components-color-box.mjs.map +1 -1
  149. package/fesm2022/acorex-components-color-palette.mjs +50 -56
  150. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  151. package/fesm2022/acorex-components-comment.mjs +47 -63
  152. package/fesm2022/acorex-components-comment.mjs.map +1 -1
  153. package/fesm2022/acorex-components-common.mjs +94 -107
  154. package/fesm2022/acorex-components-common.mjs.map +1 -1
  155. package/fesm2022/acorex-components-conversation.mjs +101 -99
  156. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  157. package/fesm2022/acorex-components-cron-job.mjs +312 -248
  158. package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
  159. package/fesm2022/acorex-components-data-pager.mjs +79 -67
  160. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  161. package/fesm2022/acorex-components-data-table.mjs +121 -144
  162. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  163. package/fesm2022/acorex-components-datetime-box.mjs +11 -15
  164. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  165. package/fesm2022/acorex-components-datetime-input.mjs +17 -33
  166. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
  167. package/fesm2022/acorex-components-datetime-picker.mjs +35 -30
  168. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  169. package/fesm2022/acorex-components-decorators.mjs +42 -58
  170. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  171. package/fesm2022/acorex-components-dialog.mjs +32 -30
  172. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  173. package/fesm2022/acorex-components-drawer.mjs +17 -18
  174. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  175. package/fesm2022/acorex-components-dropdown-button.mjs +15 -20
  176. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  177. package/fesm2022/acorex-components-dropdown.mjs +18 -21
  178. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  179. package/fesm2022/acorex-components-file-explorer.mjs +53 -49
  180. package/fesm2022/acorex-components-file-explorer.mjs.map +1 -1
  181. package/fesm2022/acorex-components-form.mjs +56 -50
  182. package/fesm2022/acorex-components-form.mjs.map +1 -1
  183. package/fesm2022/acorex-components-grid-layout-builder.mjs +17 -22
  184. package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
  185. package/fesm2022/acorex-components-image-editor.mjs +44 -52
  186. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  187. package/fesm2022/acorex-components-image.mjs +11 -16
  188. package/fesm2022/acorex-components-image.mjs.map +1 -1
  189. package/fesm2022/acorex-components-json-viewer.mjs +12 -18
  190. package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
  191. package/fesm2022/acorex-components-kbd.mjs +14 -15
  192. package/fesm2022/acorex-components-kbd.mjs.map +1 -1
  193. package/fesm2022/acorex-components-label.mjs +10 -11
  194. package/fesm2022/acorex-components-label.mjs.map +1 -1
  195. package/fesm2022/acorex-components-list.mjs +23 -18
  196. package/fesm2022/acorex-components-list.mjs.map +1 -1
  197. package/fesm2022/acorex-components-loading-dialog.mjs +46 -45
  198. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  199. package/fesm2022/acorex-components-loading.mjs +22 -31
  200. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  201. package/fesm2022/acorex-components-map.mjs +14 -18
  202. package/fesm2022/acorex-components-map.mjs.map +1 -1
  203. package/fesm2022/acorex-components-media-viewer.mjs +69 -74
  204. package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
  205. package/fesm2022/acorex-components-menu.mjs +28 -41
  206. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  207. package/fesm2022/acorex-components-navbar.mjs +10 -11
  208. package/fesm2022/acorex-components-navbar.mjs.map +1 -1
  209. package/fesm2022/acorex-components-notification.mjs +19 -26
  210. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  211. package/fesm2022/acorex-components-number-box.mjs +11 -13
  212. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  213. package/fesm2022/acorex-components-otp.mjs +13 -15
  214. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  215. package/fesm2022/acorex-components-page.mjs +11 -11
  216. package/fesm2022/acorex-components-paint.mjs +33 -67
  217. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  218. package/fesm2022/acorex-components-password-box.mjs +21 -51
  219. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  220. package/fesm2022/acorex-components-pdf-reader.mjs +10 -11
  221. package/fesm2022/acorex-components-pdf-reader.mjs.map +1 -1
  222. package/fesm2022/acorex-components-phone-box.mjs +17 -39
  223. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  224. package/fesm2022/acorex-components-picker.mjs +21 -23
  225. package/fesm2022/acorex-components-picker.mjs.map +1 -1
  226. package/fesm2022/acorex-components-popover.mjs +10 -11
  227. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  228. package/fesm2022/acorex-components-popup.mjs +28 -51
  229. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  230. package/fesm2022/acorex-components-progress-bar.mjs +10 -11
  231. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  232. package/fesm2022/acorex-components-qrcode.mjs +10 -11
  233. package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
  234. package/fesm2022/acorex-components-query-builder.mjs +31 -28
  235. package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
  236. package/fesm2022/acorex-components-radio.mjs +11 -12
  237. package/fesm2022/acorex-components-radio.mjs.map +1 -1
  238. package/fesm2022/acorex-components-rail-navigation.mjs +19 -22
  239. package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
  240. package/fesm2022/acorex-components-range-slider.mjs +12 -14
  241. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  242. package/fesm2022/acorex-components-rate-picker.mjs +10 -11
  243. package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
  244. package/fesm2022/acorex-components-rest-api-generator.mjs +50 -45
  245. package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
  246. package/fesm2022/acorex-components-result.mjs +16 -17
  247. package/fesm2022/acorex-components-result.mjs.map +1 -1
  248. package/fesm2022/acorex-components-routing-progress.mjs +16 -17
  249. package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
  250. package/fesm2022/acorex-components-scheduler.mjs +30 -27
  251. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  252. package/fesm2022/acorex-components-scss.mjs +4 -4
  253. package/fesm2022/acorex-components-search-box.mjs +17 -40
  254. package/fesm2022/acorex-components-search-box.mjs.map +1 -1
  255. package/fesm2022/acorex-components-select-box.mjs +31 -24
  256. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  257. package/fesm2022/acorex-components-selection-list.mjs +15 -34
  258. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  259. package/fesm2022/acorex-components-side-menu.mjs +26 -56
  260. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  261. package/fesm2022/acorex-components-skeleton.mjs +10 -11
  262. package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
  263. package/fesm2022/acorex-components-slider.mjs +11 -12
  264. package/fesm2022/acorex-components-slider.mjs.map +1 -1
  265. package/fesm2022/acorex-components-sliding-item.mjs +19 -22
  266. package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
  267. package/fesm2022/acorex-components-step-wizard.mjs +20 -24
  268. package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
  269. package/fesm2022/acorex-components-switch.mjs +13 -15
  270. package/fesm2022/acorex-components-switch.mjs.map +1 -1
  271. package/fesm2022/acorex-components-tabs.mjs +19 -22
  272. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  273. package/fesm2022/acorex-components-tag.mjs +10 -11
  274. package/fesm2022/acorex-components-tag.mjs.map +1 -1
  275. package/fesm2022/acorex-components-text-area.mjs +12 -24
  276. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  277. package/fesm2022/acorex-components-text-box.mjs +17 -47
  278. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  279. package/fesm2022/acorex-components-time-line.mjs +16 -18
  280. package/fesm2022/acorex-components-time-line.mjs.map +1 -1
  281. package/fesm2022/acorex-components-toast.mjs +16 -20
  282. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  283. package/fesm2022/acorex-components-toolbar.mjs +10 -12
  284. package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
  285. package/fesm2022/acorex-components-tooltip.mjs +14 -18
  286. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  287. package/fesm2022/acorex-components-tree-view.mjs +28 -28
  288. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  289. package/fesm2022/acorex-components-uploader.mjs +42 -49
  290. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  291. package/fesm2022/acorex-components-video-player.mjs +10 -11
  292. package/fesm2022/acorex-components-video-player.mjs.map +1 -1
  293. package/fesm2022/acorex-components-wysiwyg.mjs +65 -71
  294. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  295. package/file-explorer/lib/file-explorer-container/file-explorer-container.component.d.ts +1 -1
  296. package/file-explorer/lib/file-explorer-header/file-explorer-header.component.d.ts +1 -1
  297. package/file-explorer/lib/file-explorer-item/file-explorer-item.component.d.ts +1 -1
  298. package/file-explorer/lib/file-explorer-tree/file-explorer-tree.component.d.ts +1 -1
  299. package/file-explorer/lib/file-explorer-view/file-explorer-view.component.d.ts +1 -1
  300. package/file-explorer/lib/file-explorer.module.d.ts +14 -14
  301. package/form/lib/form-field.component.d.ts +1 -1
  302. package/form/lib/form.component.d.ts +1 -1
  303. package/form/lib/form.module.d.ts +11 -11
  304. package/form/lib/validation-rule.directive.d.ts +1 -1
  305. package/form/lib/validation-summary.component.d.ts +1 -1
  306. package/grid-layout-builder/lib/grid-layout-builder.module.d.ts +5 -5
  307. package/grid-layout-builder/lib/grid-layout-container.component.d.ts +1 -1
  308. package/grid-layout-builder/lib/grid-layout-widget.component.d.ts +1 -1
  309. package/grid-layout-builder/lib/grid-layout-widget.directive.d.ts +1 -1
  310. package/image/lib/image.component.d.ts +1 -1
  311. package/image/lib/image.module.d.ts +3 -3
  312. package/image-editor/lib/image-editor-container/image-editor-container.component.d.ts +1 -1
  313. package/image-editor/lib/image-editor-tools/image-editor-color-picker/image-editor-color-picker.component.d.ts +1 -1
  314. package/image-editor/lib/image-editor-tools/image-editor-crop/image-editor-crop.component.d.ts +1 -1
  315. package/image-editor/lib/image-editor-tools/image-editor-pen-mode-changer/image-editor-pen-mode-changer.component.d.ts +1 -1
  316. package/image-editor/lib/image-editor-view/image-editor-view.component.d.ts +1 -1
  317. package/image-editor/lib/image-editor.module.d.ts +16 -16
  318. package/json-viewer/lib/json-viewer/json-viewer.component.d.ts +1 -1
  319. package/json-viewer/lib/json-viewer.module.d.ts +5 -5
  320. package/kbd/lib/kbd-item/kbd-item.component.d.ts +1 -1
  321. package/kbd/lib/kbd.component.d.ts +1 -1
  322. package/kbd/lib/kbd.module.d.ts +4 -4
  323. package/label/lib/label.component.d.ts +1 -1
  324. package/label/lib/label.module.d.ts +3 -3
  325. package/list/lib/list.component.d.ts +1 -1
  326. package/list/lib/list.module.d.ts +5 -5
  327. package/loading/lib/loading-spinner.component.d.ts +1 -1
  328. package/loading/lib/loading.component.d.ts +1 -1
  329. package/loading/lib/loading.directive.d.ts +1 -1
  330. package/loading/lib/loading.module.d.ts +8 -8
  331. package/loading-dialog/lib/loading-dialog.component.d.ts +18 -18
  332. package/loading-dialog/lib/loading-dialog.module.d.ts +9 -9
  333. package/map/lib/map.component.d.ts +1 -1
  334. package/map/lib/map.module.d.ts +3 -3
  335. package/media-viewer/lib/media-viewer-container/media-viewer-container.component.d.ts +1 -1
  336. package/media-viewer/lib/media-viewer-slider/media-viewer-slider.component.d.ts +1 -1
  337. package/media-viewer/lib/media-viewer-tools/audio-player/audio-player.component.d.ts +1 -1
  338. package/media-viewer/lib/media-viewer-tools/file-info/file-info.component.d.ts +1 -1
  339. package/media-viewer/lib/media-viewer-tools/image-viewer/image-viewer.component.d.ts +1 -1
  340. package/media-viewer/lib/media-viewer-tools/pdf-reader/pdf-reader.component.d.ts +1 -1
  341. package/media-viewer/lib/media-viewer-tools/video-player/video-player.component.d.ts +1 -1
  342. package/media-viewer/lib/media-viewer.module.d.ts +18 -18
  343. package/menu/lib/context-menu.component.d.ts +1 -1
  344. package/menu/lib/menu-item.component.d.ts +1 -1
  345. package/menu/lib/menu.component.d.ts +1 -1
  346. package/menu/lib/menu.module.d.ts +10 -10
  347. package/navbar/lib/navbar.component.d.ts +1 -1
  348. package/navbar/lib/navbar.module.d.ts +3 -3
  349. package/notification/lib/notification.component.d.ts +1 -1
  350. package/notification/lib/notification.module.d.ts +9 -9
  351. package/number-box/lib/number-box.component.d.ts +1 -1
  352. package/number-box/lib/number-box.module.d.ts +7 -7
  353. package/otp/lib/otp.component.d.ts +1 -1
  354. package/otp/lib/otp.module.d.ts +4 -4
  355. package/package.json +1 -1
  356. package/paint/lib/paint/paint-container/paint-container.component.d.ts +1 -1
  357. package/paint/lib/paint/paint-tools/paint-color-picker/paint-color-picker.component.d.ts +1 -1
  358. package/paint/lib/paint/paint-tools/paint-pen-mode-changer/paint-pen-mode-changer.component.d.ts +1 -1
  359. package/paint/lib/paint/paint-view/paint-view.component.d.ts +1 -1
  360. package/paint/lib/paint.module.d.ts +13 -13
  361. package/password-box/lib/password-box.component.d.ts +1 -1
  362. package/password-box/lib/password-box.module.d.ts +10 -10
  363. package/password-box/lib/password-strength-validation/password-strength-validation.component.d.ts +1 -1
  364. package/pdf-reader/lib/pdf-reader/pdf-reader.component.d.ts +1 -1
  365. package/pdf-reader/lib/pdf-reader.module.d.ts +1 -1
  366. package/phone-box/lib/phone-box.component.d.ts +1 -1
  367. package/phone-box/lib/phone-box.module.d.ts +10 -10
  368. package/picker/lib/picker-container/picker-container.component.d.ts +1 -1
  369. package/picker/lib/picker-items/picker-items.component.d.ts +1 -1
  370. package/picker/lib/picker-title/picker-title.component.d.ts +1 -1
  371. package/picker/lib/picker.module.d.ts +6 -6
  372. package/popover/lib/popover.component.d.ts +1 -1
  373. package/popover/lib/popover.module.d.ts +3 -3
  374. package/popup/lib/popup.component.d.ts +9 -9
  375. package/popup/lib/popup.module.d.ts +10 -10
  376. package/progress-bar/lib/progress-bar.component.d.ts +1 -1
  377. package/progress-bar/lib/progress-bar.module.d.ts +3 -3
  378. package/qrcode/lib/qrcode.component.d.ts +1 -1
  379. package/qrcode/lib/qrcode.module.d.ts +3 -3
  380. package/query-builder/lib/query-builder.component.d.ts +1 -1
  381. package/query-builder/lib/query-builder.module.d.ts +10 -10
  382. package/radio/lib/radio.component.d.ts +1 -1
  383. package/radio/lib/radio.module.d.ts +4 -4
  384. package/rail-navigation/lib/rail-navigation-item/rail-navigation-item.component.d.ts +1 -1
  385. package/rail-navigation/lib/rail-navigation.component.d.ts +1 -1
  386. package/rail-navigation/lib/rail-navigation.module.d.ts +5 -5
  387. package/range-slider/lib/range-slider.component.d.ts +1 -1
  388. package/range-slider/lib/range-slider.module.d.ts +3 -3
  389. package/rate-picker/lib/rate-picker.component.d.ts +1 -1
  390. package/rate-picker/lib/rate-picker.module.d.ts +3 -3
  391. package/rest-api-generator/lib/query-params/query-params.component.d.ts +1 -1
  392. package/rest-api-generator/lib/request-body/request-body.component.d.ts +1 -1
  393. package/rest-api-generator/lib/request-headers/request-headers.component.d.ts +1 -1
  394. package/rest-api-generator/lib/rest-api-auth/rest-api-auth.component.d.ts +1 -1
  395. package/rest-api-generator/lib/rest-api-generator.component.d.ts +1 -1
  396. package/rest-api-generator/lib/rest-api-generator.module.d.ts +14 -14
  397. package/result/lib/result.component.d.ts +7 -7
  398. package/result/lib/result.module.d.ts +3 -3
  399. package/routing-progress/lib/routing-progress.component.d.ts +7 -7
  400. package/routing-progress/lib/routing-progress.module.d.ts +3 -3
  401. package/scheduler/lib/scheduler-month-view.component.d.ts +1 -1
  402. package/scheduler/lib/scheduler-week-view.component.d.ts +1 -1
  403. package/scheduler/lib/scheduler.component.d.ts +1 -1
  404. package/scheduler/lib/scheduler.module.d.ts +9 -9
  405. package/search-box/lib/search-box.component.d.ts +1 -1
  406. package/search-box/lib/search-box.module.d.ts +9 -9
  407. package/select-box/lib/select-box.component.d.ts +1 -1
  408. package/select-box/lib/select-box.module.d.ts +15 -15
  409. package/selection-list/lib/selection-list.component.d.ts +1 -1
  410. package/selection-list/lib/selection-list.module.d.ts +8 -8
  411. package/side-menu/lib/side-menu-item/side-menu-item.component.d.ts +1 -1
  412. package/side-menu/lib/side-menu.component.d.ts +1 -1
  413. package/side-menu/lib/side-menu.directive.d.ts +1 -1
  414. package/side-menu/lib/side-menu.module.d.ts +10 -10
  415. package/skeleton/lib/skeleton.component.d.ts +1 -1
  416. package/skeleton/lib/skeleton.module.d.ts +3 -3
  417. package/slider/lib/slider.component.d.ts +1 -1
  418. package/slider/lib/slider.module.d.ts +5 -5
  419. package/sliding-item/lib/sliding-item/sliding-item.component.d.ts +1 -1
  420. package/sliding-item/lib/sliding-item-prefix/sliding-item-prefix.component.d.ts +1 -1
  421. package/sliding-item/lib/sliding-item-suffix/sliding-item-suffix.component.d.ts +1 -1
  422. package/sliding-item/lib/sliding-item.module.d.ts +6 -6
  423. package/step-wizard/lib/step-wizard-item/step-wizard-item.component.d.ts +1 -1
  424. package/step-wizard/lib/step-wizard.component.d.ts +1 -1
  425. package/step-wizard/lib/step-wizard.directive.d.ts +1 -1
  426. package/step-wizard/lib/step-wizard.module.d.ts +8 -8
  427. package/switch/lib/switch-content.component.d.ts +1 -1
  428. package/switch/lib/switch.component.d.ts +1 -1
  429. package/switch/lib/switch.module.d.ts +5 -5
  430. package/tabs/lib/tab-content.directive.d.ts +1 -1
  431. package/tabs/lib/tab-item.component.d.ts +1 -1
  432. package/tabs/lib/tabs.component.d.ts +1 -1
  433. package/tabs/lib/tabs.module.d.ts +7 -7
  434. package/tag/lib/tag.component.d.ts +1 -1
  435. package/tag/lib/tag.module.d.ts +3 -3
  436. package/text-area/lib/text-area.component.d.ts +1 -1
  437. package/text-area/lib/text-area.module.d.ts +4 -4
  438. package/text-box/lib/mask-options.directive.d.ts +1 -1
  439. package/text-box/lib/text-box.component.d.ts +1 -1
  440. package/text-box/lib/text-box.module.d.ts +8 -8
  441. package/time-line/lib/time-line-item.component.d.ts +1 -1
  442. package/time-line/lib/time-line.component.d.ts +1 -1
  443. package/time-line/lib/time-line.module.d.ts +4 -4
  444. package/toast/lib/toast.component.d.ts +1 -1
  445. package/toast/lib/toast.module.d.ts +8 -8
  446. package/toolbar/lib/toolbar.component.d.ts +1 -1
  447. package/toolbar/lib/toolbar.module.d.ts +3 -3
  448. package/tooltip/lib/tooltip.component.d.ts +1 -1
  449. package/tooltip/lib/tooltip.directive.d.ts +1 -1
  450. package/tooltip/lib/tooltip.module.d.ts +5 -5
  451. package/tree-view/lib/tree-view-item.component.d.ts +1 -1
  452. package/tree-view/lib/tree-view.component.d.ts +1 -1
  453. package/tree-view/lib/tree-view.component.module.d.ts +11 -11
  454. package/uploader/lib/uploader-browse-handle.directive.d.ts +1 -1
  455. package/uploader/lib/uploader-dialog-container/uploader-dialog-container.component.d.ts +1 -1
  456. package/uploader/lib/uploader-drop-zone/uploader-drop-zone.component.d.ts +1 -1
  457. package/uploader/lib/uploader-list/uploader-list.component.d.ts +1 -1
  458. package/uploader/lib/uploader-zone.directive.d.ts +1 -1
  459. package/uploader/lib/uploader.module.d.ts +16 -16
  460. package/video-player/lib/video-player/video-player.component.d.ts +1 -1
  461. package/video-player/lib/video-player.module.d.ts +1 -1
  462. package/wysiwyg/lib/wysiwyg/wysiwyg-container/wysiwyg-container.component.d.ts +1 -1
  463. package/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-alignment/wysiwyg-alignment.component.d.ts +1 -1
  464. package/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-colors/wysiwyg-colors.component.d.ts +1 -1
  465. package/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-font-style/wysiwyg-font-style.component.d.ts +1 -1
  466. package/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-history/wysiwyg-history.component.d.ts +1 -1
  467. package/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-insert/wysiwyg-insert.component.d.ts +1 -1
  468. package/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-list/wysiwyg-list.component.d.ts +1 -1
  469. package/wysiwyg/lib/wysiwyg/wysiwyg-view/wysiwyg-view.component.d.ts +1 -1
  470. package/wysiwyg/lib/wysiwyg.module.d.ts +16 -16
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-grid-layout-builder.mjs","sources":["../../../../libs/components/grid-layout-builder/src/lib/grid-layout-widget.component.ts","../../../../libs/components/grid-layout-builder/src/lib/grid-layout-widget.directive.ts","../../../../libs/components/grid-layout-builder/src/lib/grid-layout-container.component.ts","../../../../libs/components/grid-layout-builder/src/lib/grid-layout-builder.module.ts","../../../../libs/components/grid-layout-builder/src/lib/types.ts","../../../../libs/components/grid-layout-builder/src/acorex-components-grid-layout-builder.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXGridLayoutNode, AXGridLayoutWidget, AXGridLayoutWidgetCompElement } from './types';\n\n/**\n * A component that represents a widget within the grid layout. It serves as an individual\n * item within a `gridstack` layout, providing options for customization and interaction.\n *\n * This widget component is used within the `AXGridLayoutContainerComponent` to manage the\n * layout of widgets in a grid system. The component interacts with the GridStack library\n * to offer features like resizing, movement, and customization of the widget's properties.\n *\n * @example\n * <ax-grid-layout-widget [options]=\"widgetOptions\">\n * <div>Widget Content</div>\n * </ax-grid-layout-widget>\n */\n@Component({\n selector: 'ax-grid-layout-widget',\n template: ` <div class=\"grid-stack-item-content\">\n <ng-template #container></ng-template>\n <ng-content></ng-content>\n {{ options().content }}\n </div>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class AXGridLayoutWidgetComponent {\n /**\n * A reference to the native element of this widget component. It is used for interaction\n * with the underlying DOM element and for updating the widget properties via GridStack.\n */\n private readonly elementRef: ElementRef<AXGridLayoutWidgetCompElement> = inject(ElementRef);\n \n /**\n * The native element of the widget component.\n */\n public el: AXGridLayoutWidgetCompElement = this.elementRef.nativeElement;\n\n /**\n * The current options of the widget. These options are used to define the layout,\n * content, and behavior of the widget within the grid.\n *\n * @internal\n */\n private _options?: AXGridLayoutNode;\n\n /**\n * Input property that represents the widget's configuration options.\n *\n * The options include properties such as position, size, content, and other\n * configuration values. These options are updated dynamically.\n *\n * @param {AXGridLayoutNode} val The configuration object for the widget.\n * @returns {AXGridLayoutWidgetCompElement} The element associated with the widget.\n */\n public options = input(null, {\n transform: (val: AXGridLayoutNode) => {\n const grid = this.el.gridstackNode?.grid;\n if (grid) {\n grid.update(this.el, val);\n } else {\n this._options = { ...val, el: this.el };\n }\n return this.el.gridstackNode || this._options || { el: this.el };\n },\n });\n\n /**\n * Clears the widget's options.\n *\n * This method removes any existing options set for the widget and resets it\n * to its default state.\n */\n public clearOptions() {\n this._options = null;\n }\n\n /**\n * Constructor that initializes the widget component and sets the reference to\n * the grid widget component in the element's properties.\n */\n constructor() {\n this.el._gridWidgetComp = this;\n }\n\n /**\n * Removes this widget from the grid.\n *\n * This method interacts with GridStack to remove the widget from the layout.\n * Once removed, the widget will no longer be part of the grid.\n */\n public removeWidget() {\n this.el.gridstackNode.grid.removeWidget(this.el);\n }\n\n /**\n * Sets whether the widget can be locked (i.e., not resizable).\n *\n * @param {boolean} state Whether the widget should be locked or not.\n * @remarks\n * If the widget is locked, it cannot be resized.\n */\n public setlockable(state: boolean): void {\n this.el.gridstackNode.grid.update(this.el, { noResize: state });\n }\n\n /**\n * Sets whether the widget can be resized.\n *\n * @param {boolean} state Whether the widget should be resizable or not.\n * @remarks\n * If the widget is resizable, the user can change its size by dragging.\n */\n public setResizable(state: boolean): void {\n this.el.gridstackNode.grid.update(this.el, { noMove: state });\n }\n\n /**\n * Updates the options of the widget.\n *\n * @param {AXGridLayoutWidget} options The new options to apply to the widget.\n */\n setOptions(options: AXGridLayoutWidget) {\n this.el.gridstackNode.grid.update(this.el, options);\n }\n\n /**\n * Retrieves the current options of the widget.\n *\n * @returns {AXGridLayoutNode} The current configuration options of the widget.\n * @remarks\n * This method provides access to the widget's layout and configuration.\n * If no specific options are set, it returns the default options.\n */\n getOptions(): AXGridLayoutNode {\n const gridstackNode = this.el.gridstackNode;\n if (gridstackNode) {\n return {\n ...gridstackNode,\n el: this.el,\n };\n }\n return this.options() || this._options || { el: this.el };\n }\n}\n","import { Directive, ElementRef, inject, input, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport { AXGridLayoutNode, AXGridLayoutWidget, AXGridLayoutWidgetCompElement } from './types';\n\n/**\n * A directive that turns any element into a GridStack widget.\n * It allows the element to be managed by the GridStack library,\n * enabling features like resizing, dragging, and layout customization.\n *\n * This directive creates an inner element inside the host element\n * and moves the widget content into it for better encapsulation and styling.\n *\n * @example\n * <div axGridLayoutWidget [options]=\"widgetOptions\">Widget Content</div>\n */\n@Directive({\n selector: '[axGridLayoutWidget]',\n standalone: false,\n})\nexport class AXGridLayoutWidgetDirective implements OnInit, OnDestroy {\n /**\n * Reference to the native element of the directive.\n */\n private readonly elementRef: ElementRef<AXGridLayoutWidgetCompElement> = inject(ElementRef);\n\n /**\n * Renderer2 for safe DOM manipulation.\n */\n private readonly renderer = inject(Renderer2);\n\n /**\n * The native element of the directive.\n */\n public el: AXGridLayoutWidgetCompElement = this.elementRef.nativeElement;\n\n /**\n * The current options of the widget. These options are used to define the layout,\n * content, and behavior of the widget within the grid.\n */\n private _options?: AXGridLayoutNode;\n\n /**\n * Reference to the newly created inner element.\n */\n private innerElement: HTMLElement;\n\n /**\n * Input property that represents the widget's configuration options.\n *\n * The options include properties such as position, size, content, and other\n * configuration values. These options are updated dynamically.\n *\n * @param {AXGridLayoutNode} val The configuration object for the widget.\n * @returns {AXGridLayoutWidgetCompElement} The element associated with the widget.\n */\n public options = input(null, {\n transform: (val: AXGridLayoutNode) => {\n const grid = this.el.gridstackNode?.grid;\n if (grid) {\n grid.update(this.el, val);\n } else {\n this._options = { ...val, el: this.el };\n }\n return this.el.gridstackNode || this._options || { el: this.el };\n },\n });\n\n /**\n * Initializes the directive and sets up the inner element.\n * Create a new inner element\n * Move the host element's content into the new inner element\n * Append the inner element to the host element\n * Set the reference to the grid widget directive\n */\n ngOnInit(): void {\n this.innerElement = this.renderer.createElement('div');\n this.renderer.addClass(this.innerElement, 'grid-stack-item-content');\n\n while (this.el.firstChild) {\n this.renderer.appendChild(this.innerElement, this.el.firstChild);\n }\n\n this.renderer.appendChild(this.el, this.innerElement);\n\n this.el._gridWidgetComp = this;\n }\n\n /**\n * Cleans up the directive when it is destroyed.\n */\n ngOnDestroy(): void {\n this.removeWidget();\n }\n\n /**\n * Clears the widget's options.\n *\n * This method removes any existing options set for the widget and resets it\n * to its default state.\n */\n public clearOptions() {\n this._options = null;\n }\n\n /**\n * Removes this widget from the grid.\n *\n * This method interacts with GridStack to remove the widget from the layout.\n * Once removed, the widget will no longer be part of the grid.\n */\n public removeWidget() {\n if (this.el.gridstackNode?.grid) {\n this.el.gridstackNode.grid.removeWidget(this.el);\n }\n }\n\n /**\n * Sets whether the widget can be locked (i.e., not resizable).\n *\n * @param {boolean} state Whether the widget should be locked or not.\n * @remarks\n * If the widget is locked, it cannot be resized.\n */\n public setLockable(state: boolean): void {\n if (this.el.gridstackNode?.grid) {\n this.el.gridstackNode.grid.update(this.el, { noResize: state });\n }\n }\n\n /**\n * Sets whether the widget can be resized.\n *\n * @param {boolean} state Whether the widget should be resizable or not.\n * @remarks\n * If the widget is resizable, the user can change its size by dragging.\n */\n public setResizable(state: boolean): void {\n if (this.el.gridstackNode?.grid) {\n this.el.gridstackNode.grid.update(this.el, { noMove: state });\n }\n }\n\n /**\n * Updates the options of the widget.\n *\n * @param {AXGridLayoutWidget} options The new options to apply to the widget.\n */\n public setOptions(options: AXGridLayoutWidget) {\n if (this.el.gridstackNode?.grid) {\n this.el.gridstackNode.grid.update(this.el, options);\n }\n }\n\n /**\n * Retrieves the current options of the widget.\n *\n * @returns {AXGridLayoutNode} The current configuration options of the widget.\n * @remarks\n * This method provides access to the widget's layout and configuration.\n * If no specific options are set, it returns the default options.\n */\n public getOptions(): AXGridLayoutNode {\n const gridstackNode = this.el.gridstackNode;\n if (gridstackNode) {\n return {\n ...gridstackNode,\n el: this.el,\n };\n }\n return this._options || { el: this.el };\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n NgZone,\n OnDestroy,\n OnInit,\n SecurityContext,\n ViewEncapsulation,\n WritableSignal,\n computed,\n contentChildren,\n effect,\n inject,\n input,\n model,\n output,\n signal,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { merge } from 'lodash-es';\nimport { AXGridLayoutWidgetComponent } from './grid-layout-widget.component';\nimport { AXGridLayoutWidgetDirective } from './grid-layout-widget.directive';\nimport {\n AXGridLayout,\n AXGridLayoutContainerCompElement,\n AXGridLayoutDroppedEvent,\n AXGridLayoutElementEvent,\n AXGridLayoutEventEvent,\n AXGridLayoutNode,\n AXGridLayoutNodesEvent,\n AXGridLayoutOptions,\n AXGridLayoutWidget,\n AXGridLayoutWidgetCompElement,\n AXGridLayoutWidgetElement,\n AXSaveCallback,\n} from './types';\n\n/**\n * The `AXGridLayoutContainerComponent` is an Angular component that acts as a wrapper for the GridStack library.\n * It provides a flexible grid layout system for arranging items within a container. It integrates with GridStack.js\n * and allows dynamic manipulation of grid items (widgets), including adding, removing, resizing, and dragging.\n *\n * This component uses Angular's reactive signals, outputs, and lifecycle hooks to manage grid state and interactions.\n */\n@Component({\n selector: 'ax-grid-layout-container',\n template: ` <ng-template #container></ng-template>\n <ng-content></ng-content>`,\n styleUrl: './grid-layout-container.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class AXGridLayoutContainerComponent implements OnInit, OnDestroy {\n private serializedData?: AXGridLayoutOptions;\n /**\n * Content children elements of type `AXGridLayoutWidgetComponent` that are dynamically managed within the grid.\n */\n private compItems = contentChildren(AXGridLayoutWidgetComponent);\n private dirItems = contentChildren(AXGridLayoutWidgetDirective);\n\n /**\n * Input that holds options for configuring the GridStack grid layout.\n */\n public options = input<AXGridLayoutOptions>();\n\n /**\n * A computed signal that merges the provided `options` with the grid's existing configuration (if any).\n */\n private calcOptions = computed(() => this.grid()?.opts || this.options() || {});\n\n /**\n * A reference to the native element of the container component.\n */\n private readonly elementRef: ElementRef<AXGridLayoutContainerCompElement> = inject(ElementRef);\n\n /**\n * Angular's NgZone for running code outside Angular's change detection.\n */\n private ngZone = inject(NgZone);\n\n /**\n * A writable signal representing the current state of the grid.\n */\n private grid: WritableSignal<AXGridLayout | undefined> = signal(undefined);\n\n /**\n * Flag indicating whether the grid has been loaded with content.\n */\n private loaded?: boolean;\n\n /**\n * A reference to the native element representing the grid container.\n */\n private el: AXGridLayoutContainerCompElement = this.elementRef.nativeElement;\n\n // Outputs\n\n /**\n * Output event emitted when a widget is added to the grid.\n */\n protected onAdded = output<AXGridLayoutNodesEvent>();\n\n /**\n * Output event emitted when a widget or layout is changed.\n */\n protected onChange = output<AXGridLayoutNodesEvent>();\n\n /**\n * Output event emitted when the grid is disabled.\n */\n protected onDisable = output<AXGridLayoutEventEvent>();\n\n /**\n * Output event emitted during a drag operation on a widget.\n */\n protected onDrag = output<AXGridLayoutElementEvent>();\n\n /**\n * Output event emitted when drag starts on a widget.\n */\n protected onDragStart = output<AXGridLayoutElementEvent>();\n\n /**\n * Output event emitted when drag stops on a widget.\n */\n protected onDragStop = output<AXGridLayoutElementEvent>();\n\n /**\n * Output event emitted when a widget is dropped on the grid.\n */\n protected onDropped = output<AXGridLayoutDroppedEvent>();\n\n /**\n * Output event emitted when the grid is enabled.\n */\n protected onEnable = output<AXGridLayoutEventEvent>();\n\n /**\n * Output event emitted when a widget is removed from the grid.\n */\n protected onRemoved = output<AXGridLayoutNodesEvent>();\n\n /**\n * Output event emitted when a widget is resized.\n */\n protected onResize = output<AXGridLayoutElementEvent>();\n\n /**\n * Output event emitted when resizing starts on a widget.\n */\n protected onResizeStart = output<AXGridLayoutElementEvent>();\n\n /**\n * Output event emitted when resizing stops on a widget.\n */\n protected onResizeStop = output<AXGridLayoutElementEvent>();\n\n /**\n * Output event emitted when the grid is rendered.\n */\n protected isRendered = output<boolean>();\n\n // Model\n\n /**\n * Model that tracks whether the grid container is empty.\n */\n protected isEmpty = model(false);\n\n // Lifecycle\n\n /**\n * Initializes the grid layout component and sets up the GridStack grid.\n */\n constructor() {\n console.time('grid-layout-builder loaded in: ');\n this.el._gridComp = this;\n }\n\n /**\n * Angular lifecycle hook that initializes the grid once the component is created.\n * It sets up GridStack and loads any initial layout configuration.\n */\n public async ngOnInit(): Promise<void> {\n this.ngZone.runOutsideAngular(async () => {\n this.loaded = !!this.calcOptions()?.children?.length;\n const { GridStack } = await import('gridstack');\n this.grid.set(GridStack.init(this.calcOptions(), this.el));\n this.checkEmpty();\n });\n }\n\n /**\n * Angular lifecycle hook that cleans up resources when the component is destroyed.\n * It removes event listeners and destroys the GridStack instance.\n */\n public ngOnDestroy(): void {\n this.unhookEvents(this.grid());\n this.grid()?.destroy();\n }\n\n // Effects\n\n /**\n * Effect that reacts to changes in the grid layout and updates the DOM accordingly.\n */\n private gridChange = effect(() => {\n if (this.grid()) {\n if (!this.loaded) this.updateAll();\n this.hookEvents(this.grid());\n this.isRendered.emit(true);\n console.timeEnd('grid-layout-builder loaded in: ');\n }\n });\n\n /**\n * Effect that reacts to changes in child widgets and updates the grid layout.\n */\n private childChange = effect(() => {\n if (this.compItems() || this.dirItems()) {\n this.updateAll();\n }\n });\n\n // Methods\n\n /**\n * Updates the grid layout with the current set of widgets, clearing previous options.\n */\n private updateAll() {\n if (!this.grid()) return;\n const layout: AXGridLayoutWidget[] = [];\n const arrays = [...this.dirItems(), ...this.compItems()];\n if (arrays.length) {\n arrays.forEach((item) => {\n layout.push(item.options());\n item.clearOptions();\n });\n this.grid().load(layout);\n }\n }\n\n /**\n * Checks whether the grid is empty and updates the `isEmpty` model accordingly.\n */\n private checkEmpty() {\n if (this.grid()) {\n const isEmpty = !this.grid().engine.nodes.length;\n if (isEmpty === this.isEmpty()) return;\n this.isEmpty.set(isEmpty);\n }\n }\n\n // Event Listeners\n\n /**\n * Hooks event listeners to the grid for various grid events (e.g., add, remove, drag, resize).\n */\n private hookEvents(grid?: AXGridLayout): void {\n if (grid) {\n grid\n .on('added', (event: Event, nodes: AXGridLayoutNode[]) => {\n this.checkEmpty();\n this.onAdded.emit({ event, nodes });\n })\n .on('removed', (event: Event, nodes: AXGridLayoutNode[]) => {\n this.checkEmpty();\n this.onRemoved.emit({ event, nodes });\n })\n .on('change', (event: Event, nodes: AXGridLayoutNode[]) => this.onChange.emit({ event, nodes }))\n .on('disable', (event: Event) => this.onDisable.emit({ event }))\n .on('drag', (event: Event, el: AXGridLayoutWidgetElement) => this.onDrag.emit({ event, el }))\n .on('dragstart', (event: Event, el: AXGridLayoutWidgetElement) =>\n this.onDragStart.emit({ event, el }),\n )\n .on('dragstop', (event: Event, el: AXGridLayoutWidgetElement) => this.onDragStop.emit({ event, el }))\n .on('dropped', (event: Event, previousNode: AXGridLayoutNode, newNode: AXGridLayoutNode) =>\n this.onDropped.emit({ event, previousNode, newNode }),\n )\n .on('enable', (event: Event) => this.onEnable.emit({ event }))\n .on('resize', (event: Event, el: AXGridLayoutWidgetElement) => this.onResize.emit({ event, el }))\n .on('resizestart', (event: Event, el: AXGridLayoutWidgetElement) =>\n this.onResizeStart.emit({ event, el }),\n )\n .on('resizestop', (event: Event, el: AXGridLayoutWidgetElement) =>\n this.onResizeStop.emit({ event, el }),\n );\n }\n }\n\n /**\n * Removes all event listeners from the grid.\n */\n private unhookEvents(grid?: AXGridLayout) {\n if (grid) {\n grid.offAll();\n }\n }\n\n //PUBLIC SETTER METHODS\n\n /**\n * Creates a new widget and returns it.\n * @param w - Widget position/size options.\n * @returns The created widget's HTML element, or `undefined` if the grid is not initialized.\n */\n public addWidget(w: AXGridLayoutWidget, withAutoArrange = false): AXGridLayoutWidgetElement | undefined {\n if (withAutoArrange) {\n this.compact();\n }\n return this.grid()?.addWidget(w);\n }\n\n /**\n * Re-layout grid items to reclaim any empty space.\n * @param layout - Compaction mode: 'list' or 'compact'. Default is 'compact'.\n * @param doSort - Whether to sort items automatically. Default is `true`.\n */\n public compact(layout: 'list' | 'compact' = 'compact', doSort = true): void {\n this.grid()?.compact(layout, doSort);\n }\n\n /**\n * Updates the current cell height.\n * @param val - The new cell height value.\n * @param update - Whether to rebuild the internal CSS stylesheet. Default is `true`.\n */\n public setCellHeight(val: number, update = true): void {\n this.grid()?.cellHeight(val, update);\n }\n\n /**\n * Sets the number of columns in the grid and updates existing widgets to conform to the new layout.\n * @param column - Number of columns (must be > 0). Default is 12.\n * @param layout - Re-layout behavior: 'list', 'compact', 'moveScale', 'move', 'scale', 'none'.\n * Default is 'moveScale'.\n */\n public setColumn(\n column: number,\n layout: 'list' | 'compact' | 'moveScale' | 'move' | 'scale' | 'none' = 'moveScale',\n ): void {\n this.grid()?.column(column, layout);\n }\n\n /**\n * Destroys the grid instance.\n * @param removeDOM - If `false`, nodes and grid will not be removed from the DOM. Default is `true`.\n */\n public destroy(removeDOM = true): void {\n this.grid()?.destroy(removeDOM);\n }\n\n /**\n * Sets whether widgets in the grid can be moved (dragged).\n *\n * @param state If true, widgets are movable; otherwise, they are locked.\n * @param recurse If true, the setting is applied to nested widgets as well.\n */\n public setMovable(state: boolean, recurse?: boolean) {\n this.grid().enableMove(state, recurse);\n }\n\n /**\n * Sets whether widgets in the grid can be resized.\n *\n * @param state If true, widgets are resizable; otherwise, they are fixed.\n * @param recurse If true, the setting is applied to nested widgets as well.\n */\n public setResizable(state: boolean, recurse?: boolean) {\n this.grid().enableResize(state, recurse);\n }\n\n /**\n * Sets or gets the floating behavior of widgets.\n * @param val - If provided, sets floating behavior (`true` or `false`). If not provided, returns the current value.\n * @returns The current floating behavior if `val` is not provided.\n */\n public setFloat(val: boolean): void {\n this.grid()?.float(val);\n }\n\n /**\n * Sets the margin (gap) between grid items and their content.\n * @param value - The margin value (number or string).\n */\n public setMargin(value: number | string): void {\n this.grid()?.margin(value);\n }\n\n /**\n * Removes a widget from the grid.\n * @param el - The widget to remove.\n * @param removeDOM - If `false`, the widget won't be removed from the DOM. Default is `true`.\n * @param triggerEvent - If `false`, no 'removed' callbacks will be called. Default is `true`.\n */\n public removeWidget(el: AXGridLayoutWidgetElement, removeDOM = true, triggerEvent = true): void {\n this.grid()?.removeWidget(el, removeDOM, triggerEvent);\n }\n\n /**\n * Removes all widgets from the grid.\n * @param removeDOM - If `false`, widgets won't be removed from the DOM. Default is `true`.\n */\n public removeAll(removeDOM = true): void {\n this.grid()?.removeAll(removeDOM);\n }\n\n /**\n * Rotates a widget by swapping its width and height.\n * @param els - The widget or selector of widgets to rotate.\n * @param relative - Optional pixel coordinates to rotate around (keeps that cell under the cursor).\n */\n public setRotate(element: AXGridLayoutWidgetCompElement) {\n this.grid().rotate(element);\n }\n\n /**\n * Toggles the grid animation state.\n * @param doAnimate - If `true`, the grid will animate.\n */\n public setAnimation(doAnimate: boolean): void {\n this.grid()?.setAnimation(doAnimate);\n }\n\n domSanitizer = inject(DomSanitizer);\n\n /**\n * Saves the current grid layout configuration.\n *\n * @param saveContent Whether to save the content of the grid items.\n * @param saveGridOpt Whether to save the grid options.\n * @param saveCallback Optional callback for custom save logic.\n * @returns The serialized grid layout options.\n */\n public save(saveContent = false, saveGridOpt = true, saveCallback?: AXSaveCallback): AXGridLayoutOptions {\n this.serializedData = this.grid().save(saveContent, saveGridOpt, saveCallback) as AXGridLayoutOptions;\n return this.serializedData;\n }\n\n /**\n * Loads a serialized grid layout configuration into the grid.\n *\n * @param serializedData The serialized grid options to load.\n * @param cleanBeforeLoad If true, the grid will be cleared before loading the new layout.\n * @returns A promise that resolves to the loaded grid instance.\n */\n public async load(\n serializedData: AXGridLayoutOptions = this.serializedData,\n cleanBeforeLoad = true,\n ): Promise<AXGridLayout> {\n if (cleanBeforeLoad) {\n this.grid().removeAll();\n }\n\n // Sanitize the content of each child element\n if (serializedData.children) {\n serializedData.children = serializedData.children.map((child) => {\n if (child.content) {\n // Sanitize the HTML content using Angular's DomSanitizer\n const sanitizedContent = this.domSanitizer.sanitize(SecurityContext.HTML, child.content);\n if (!sanitizedContent) {\n console.warn('Invalid or unsafe content removed:', child.content);\n child.content = ''; // Fallback to empty string\n } else {\n child.content = sanitizedContent;\n }\n }\n return child;\n });\n }\n\n // Dynamically import GridStack and load the grid\n const { GridStack } = await import('gridstack');\n return GridStack.addGrid(this.el, serializedData);\n }\n\n /**\n * Sets up draggable functionality for external elements to be added to the grid.\n *\n * @param dragIn A CSS selector or an array of elements that can be dragged into the grid.\n * @param widgets An optional set of widgets that are draggable into the grid.\n */\n public async setupDraggable(dragIn?: string | HTMLElement[], widgets?: AXGridLayoutWidget) {\n if (typeof dragIn === 'string') {\n document.querySelectorAll(dragIn).forEach((item) => {\n if (!item.classList.contains('grid-stack-item')) {\n item.classList.add('grid-stack-item');\n }\n });\n }\n const { GridStack } = await import('gridstack');\n GridStack.setupDragIn(dragIn, undefined, [widgets]);\n }\n\n /**\n * Sets grid layout options.\n * @param options The new grid layout options to apply.\n *\n * `Experimental`\n */\n public setOption(options: AXGridLayoutOptions) {\n this.grid().opts = merge({}, this.grid().opts, options);\n }\n\n // PUBLIC GETTER METHODS //\n\n /**\n * Retrieves the current grid layout options.\n *\n * @returns The current grid options.\n */\n public getOptions(): AXGridLayoutOptions {\n return this.grid().opts;\n }\n\n /**\n * Retrieves all the child nodes (widgets) in the grid layout.\n *\n * @returns An array of grid layout nodes representing the widgets.\n */\n public getChildren(): AXGridLayoutNode[] {\n return this.grid().engine.nodes;\n }\n}\n","/**\n * gridstack.component.ts 11.1.1-dev\n * Copyright (c) 2022-2024 Alain Dumesny - see GridStack root license\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { AXGridLayoutContainerComponent } from './grid-layout-container.component';\nimport { AXGridLayoutWidgetComponent } from './grid-layout-widget.component';\nimport { AXGridLayoutWidgetDirective } from './grid-layout-widget.directive';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [AXGridLayoutContainerComponent, AXGridLayoutWidgetComponent, AXGridLayoutWidgetDirective],\n exports: [AXGridLayoutContainerComponent, AXGridLayoutWidgetComponent, AXGridLayoutWidgetDirective],\n})\nexport class AXGridLayoutBuilderModule {\n // constructor() {\n // set globally our method to create the right widget type\n // GridStack.addRemoveCB = gsCreateNgComponents;\n // GridStack.saveCB = gsSaveAdditionalNgInfo;\n // }\n}\n","import { AXGridLayoutContainerComponent } from './grid-layout-container.component';\nimport { AXGridLayoutWidgetComponent } from './grid-layout-widget.component';\nimport { AXGridLayoutWidgetDirective } from './grid-layout-widget.directive';\n//TYPES\nexport type AXGridLayoutNode = import('gridstack').GridStackNode;\nexport type AXGridLayout = import('gridstack').GridStack;\nexport type AXGridLayoutOptions = import('gridstack').GridStackOptions;\nexport type AXGridLayoutWidget = import('gridstack').GridStackWidget & { data?: any };\nexport type AXGridLayoutContainerElement = import('gridstack').GridHTMLElement;\nexport type AXGridLayoutWidgetElement = import('gridstack').GridItemHTMLElement;\n//EVENTS\nexport type AXGridLayoutEventEvent = { event: Event };\nexport type AXGridLayoutElementEvent = { event: Event; el: AXGridLayoutWidgetElement };\nexport type AXGridLayoutNodesEvent = { event: Event; nodes: AXGridLayoutNode[] };\nexport type AXGridLayoutDroppedEvent = {\n event: Event;\n previousNode: AXGridLayoutNode;\n newNode: AXGridLayoutNode;\n};\n//COMPONENTS\nexport interface AXGridLayoutContainerCompElement extends AXGridLayoutContainerElement {\n _gridComp?: AXGridLayoutContainerComponent;\n}\nexport interface AXGridLayoutWidgetCompElement extends AXGridLayoutWidgetElement {\n _gridWidgetComp?: AXGridLayoutWidgetComponent | AXGridLayoutWidgetDirective;\n}\n\n//Callback\nexport type AXSaveCallback = import('gridstack').SaveFcn;\n\n// //DYNAMIC\n// export type AXNgCompInputs = { [key: string]: any };\n// export type SelectorToType = { [key: string]: Type<object> }; // selector string to runtime Type mapping\n// export interface AXNgGridLayoutWidget extends AXGridLayoutWidget {\n// selector?: string; //Angular tag selector for this component to create at runtime\n// input?: AXNgCompInputs; // serialized data for the component input fields\n// subGridOpts?: AXNgGridLayoutOptions; // nested grid options\n// }\n// export interface AXNgGridLayoutNode extends AXGridLayoutNode {\n// selector?: string; // component type to create as content\n// }\n// export interface AXNgGridLayoutOptions extends AXGridLayoutOptions {\n// children?: AXNgGridLayoutWidget[];\n// subGridOpts?: AXNgGridLayoutOptions;\n// }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-grid-layout-builder.mjs","sources":["../../../../libs/components/grid-layout-builder/src/lib/grid-layout-widget.component.ts","../../../../libs/components/grid-layout-builder/src/lib/grid-layout-widget.directive.ts","../../../../libs/components/grid-layout-builder/src/lib/grid-layout-container.component.ts","../../../../libs/components/grid-layout-builder/src/lib/grid-layout-builder.module.ts","../../../../libs/components/grid-layout-builder/src/lib/types.ts","../../../../libs/components/grid-layout-builder/src/acorex-components-grid-layout-builder.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ElementRef, inject, input, ViewEncapsulation } from '@angular/core';\nimport { AXGridLayoutNode, AXGridLayoutWidget, AXGridLayoutWidgetCompElement } from './types';\n\n/**\n * A component that represents a widget within the grid layout. It serves as an individual\n * item within a `gridstack` layout, providing options for customization and interaction.\n *\n * This widget component is used within the `AXGridLayoutContainerComponent` to manage the\n * layout of widgets in a grid system. The component interacts with the GridStack library\n * to offer features like resizing, movement, and customization of the widget's properties.\n *\n * @example\n * <ax-grid-layout-widget [options]=\"widgetOptions\">\n * <div>Widget Content</div>\n * </ax-grid-layout-widget>\n */\n@Component({\n selector: 'ax-grid-layout-widget',\n template: ` <div class=\"grid-stack-item-content\">\n <ng-template #container></ng-template>\n <ng-content></ng-content>\n {{ options().content }}\n </div>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXGridLayoutWidgetComponent {\n /**\n * A reference to the native element of this widget component. It is used for interaction\n * with the underlying DOM element and for updating the widget properties via GridStack.\n */\n private readonly elementRef: ElementRef<AXGridLayoutWidgetCompElement> = inject(ElementRef);\n\n /**\n * The native element of the widget component.\n */\n public el: AXGridLayoutWidgetCompElement = this.elementRef.nativeElement;\n\n /**\n * The current options of the widget. These options are used to define the layout,\n * content, and behavior of the widget within the grid.\n *\n * @internal\n */\n private _options?: AXGridLayoutNode;\n\n /**\n * Input property that represents the widget's configuration options.\n *\n * The options include properties such as position, size, content, and other\n * configuration values. These options are updated dynamically.\n *\n * @param {AXGridLayoutNode} val The configuration object for the widget.\n * @returns {AXGridLayoutWidgetCompElement} The element associated with the widget.\n */\n public options = input(null, {\n transform: (val: AXGridLayoutNode) => {\n const grid = this.el.gridstackNode?.grid;\n if (grid) {\n grid.update(this.el, val);\n } else {\n this._options = { ...val, el: this.el };\n }\n return this.el.gridstackNode || this._options || { el: this.el };\n },\n });\n\n /**\n * Clears the widget's options.\n *\n * This method removes any existing options set for the widget and resets it\n * to its default state.\n */\n public clearOptions() {\n this._options = null;\n }\n\n /**\n * Constructor that initializes the widget component and sets the reference to\n * the grid widget component in the element's properties.\n */\n constructor() {\n this.el._gridWidgetComp = this;\n }\n\n /**\n * Removes this widget from the grid.\n *\n * This method interacts with GridStack to remove the widget from the layout.\n * Once removed, the widget will no longer be part of the grid.\n */\n public removeWidget() {\n this.el.gridstackNode.grid.removeWidget(this.el);\n }\n\n /**\n * Sets whether the widget can be locked (i.e., not resizable).\n *\n * @param {boolean} state Whether the widget should be locked or not.\n * @remarks\n * If the widget is locked, it cannot be resized.\n */\n public setlockable(state: boolean): void {\n this.el.gridstackNode.grid.update(this.el, { noResize: state });\n }\n\n /**\n * Sets whether the widget can be resized.\n *\n * @param {boolean} state Whether the widget should be resizable or not.\n * @remarks\n * If the widget is resizable, the user can change its size by dragging.\n */\n public setResizable(state: boolean): void {\n this.el.gridstackNode.grid.update(this.el, { noMove: state });\n }\n\n /**\n * Updates the options of the widget.\n *\n * @param {AXGridLayoutWidget} options The new options to apply to the widget.\n */\n setOptions(options: AXGridLayoutWidget) {\n this.el.gridstackNode.grid.update(this.el, options);\n }\n\n /**\n * Retrieves the current options of the widget.\n *\n * @returns {AXGridLayoutNode} The current configuration options of the widget.\n * @remarks\n * This method provides access to the widget's layout and configuration.\n * If no specific options are set, it returns the default options.\n */\n getOptions(): AXGridLayoutNode {\n const gridstackNode = this.el.gridstackNode;\n if (gridstackNode) {\n return {\n ...gridstackNode,\n el: this.el,\n };\n }\n return this.options() || this._options || { el: this.el };\n }\n}\n","import { Directive, ElementRef, inject, input, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport { AXGridLayoutNode, AXGridLayoutWidget, AXGridLayoutWidgetCompElement } from './types';\n\n/**\n * A directive that turns any element into a GridStack widget.\n * It allows the element to be managed by the GridStack library,\n * enabling features like resizing, dragging, and layout customization.\n *\n * This directive creates an inner element inside the host element\n * and moves the widget content into it for better encapsulation and styling.\n *\n * @example\n * <div axGridLayoutWidget [options]=\"widgetOptions\">Widget Content</div>\n */\n@Directive({ selector: '[axGridLayoutWidget]' })\nexport class AXGridLayoutWidgetDirective implements OnInit, OnDestroy {\n /**\n * Reference to the native element of the directive.\n */\n private readonly elementRef: ElementRef<AXGridLayoutWidgetCompElement> = inject(ElementRef);\n\n /**\n * Renderer2 for safe DOM manipulation.\n */\n private readonly renderer = inject(Renderer2);\n\n /**\n * The native element of the directive.\n */\n public el: AXGridLayoutWidgetCompElement = this.elementRef.nativeElement;\n\n /**\n * The current options of the widget. These options are used to define the layout,\n * content, and behavior of the widget within the grid.\n */\n private _options?: AXGridLayoutNode;\n\n /**\n * Reference to the newly created inner element.\n */\n private innerElement: HTMLElement;\n\n /**\n * Input property that represents the widget's configuration options.\n *\n * The options include properties such as position, size, content, and other\n * configuration values. These options are updated dynamically.\n *\n * @param {AXGridLayoutNode} val The configuration object for the widget.\n * @returns {AXGridLayoutWidgetCompElement} The element associated with the widget.\n */\n public options = input(null, {\n transform: (val: AXGridLayoutNode) => {\n const grid = this.el.gridstackNode?.grid;\n if (grid) {\n grid.update(this.el, val);\n } else {\n this._options = { ...val, el: this.el };\n }\n return this.el.gridstackNode || this._options || { el: this.el };\n },\n });\n\n /**\n * Initializes the directive and sets up the inner element.\n * Create a new inner element\n * Move the host element's content into the new inner element\n * Append the inner element to the host element\n * Set the reference to the grid widget directive\n */\n ngOnInit(): void {\n this.innerElement = this.renderer.createElement('div');\n this.renderer.addClass(this.innerElement, 'grid-stack-item-content');\n\n while (this.el.firstChild) {\n this.renderer.appendChild(this.innerElement, this.el.firstChild);\n }\n\n this.renderer.appendChild(this.el, this.innerElement);\n\n this.el._gridWidgetComp = this;\n }\n\n /**\n * Cleans up the directive when it is destroyed.\n */\n ngOnDestroy(): void {\n this.removeWidget();\n }\n\n /**\n * Clears the widget's options.\n *\n * This method removes any existing options set for the widget and resets it\n * to its default state.\n */\n public clearOptions() {\n this._options = null;\n }\n\n /**\n * Removes this widget from the grid.\n *\n * This method interacts with GridStack to remove the widget from the layout.\n * Once removed, the widget will no longer be part of the grid.\n */\n public removeWidget() {\n if (this.el.gridstackNode?.grid) {\n this.el.gridstackNode.grid.removeWidget(this.el);\n }\n }\n\n /**\n * Sets whether the widget can be locked (i.e., not resizable).\n *\n * @param {boolean} state Whether the widget should be locked or not.\n * @remarks\n * If the widget is locked, it cannot be resized.\n */\n public setLockable(state: boolean): void {\n if (this.el.gridstackNode?.grid) {\n this.el.gridstackNode.grid.update(this.el, { noResize: state });\n }\n }\n\n /**\n * Sets whether the widget can be resized.\n *\n * @param {boolean} state Whether the widget should be resizable or not.\n * @remarks\n * If the widget is resizable, the user can change its size by dragging.\n */\n public setResizable(state: boolean): void {\n if (this.el.gridstackNode?.grid) {\n this.el.gridstackNode.grid.update(this.el, { noMove: state });\n }\n }\n\n /**\n * Updates the options of the widget.\n *\n * @param {AXGridLayoutWidget} options The new options to apply to the widget.\n */\n public setOptions(options: AXGridLayoutWidget) {\n if (this.el.gridstackNode?.grid) {\n this.el.gridstackNode.grid.update(this.el, options);\n }\n }\n\n /**\n * Retrieves the current options of the widget.\n *\n * @returns {AXGridLayoutNode} The current configuration options of the widget.\n * @remarks\n * This method provides access to the widget's layout and configuration.\n * If no specific options are set, it returns the default options.\n */\n public getOptions(): AXGridLayoutNode {\n const gridstackNode = this.el.gridstackNode;\n if (gridstackNode) {\n return {\n ...gridstackNode,\n el: this.el,\n };\n }\n return this._options || { el: this.el };\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n NgZone,\n OnDestroy,\n OnInit,\n SecurityContext,\n ViewEncapsulation,\n WritableSignal,\n computed,\n contentChildren,\n effect,\n inject,\n input,\n model,\n output,\n signal,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { merge } from 'lodash-es';\nimport { AXGridLayoutWidgetComponent } from './grid-layout-widget.component';\nimport { AXGridLayoutWidgetDirective } from './grid-layout-widget.directive';\nimport {\n AXGridLayout,\n AXGridLayoutContainerCompElement,\n AXGridLayoutDroppedEvent,\n AXGridLayoutElementEvent,\n AXGridLayoutEventEvent,\n AXGridLayoutNode,\n AXGridLayoutNodesEvent,\n AXGridLayoutOptions,\n AXGridLayoutWidget,\n AXGridLayoutWidgetCompElement,\n AXGridLayoutWidgetElement,\n AXSaveCallback,\n} from './types';\n\n/**\n * The `AXGridLayoutContainerComponent` is an Angular component that acts as a wrapper for the GridStack library.\n * It provides a flexible grid layout system for arranging items within a container. It integrates with GridStack.js\n * and allows dynamic manipulation of grid items (widgets), including adding, removing, resizing, and dragging.\n *\n * This component uses Angular's reactive signals, outputs, and lifecycle hooks to manage grid state and interactions.\n */\n@Component({\n selector: 'ax-grid-layout-container',\n template: ` <ng-template #container></ng-template>\n <ng-content></ng-content>`,\n styleUrl: './grid-layout-container.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXGridLayoutContainerComponent implements OnInit, OnDestroy {\n private serializedData?: AXGridLayoutOptions;\n /**\n * Content children elements of type `AXGridLayoutWidgetComponent` that are dynamically managed within the grid.\n */\n private compItems = contentChildren(AXGridLayoutWidgetComponent);\n private dirItems = contentChildren(AXGridLayoutWidgetDirective);\n\n /**\n * Input that holds options for configuring the GridStack grid layout.\n */\n public options = input<AXGridLayoutOptions>();\n\n /**\n * A computed signal that merges the provided `options` with the grid's existing configuration (if any).\n */\n private calcOptions = computed(() => this.grid()?.opts || this.options() || {});\n\n /**\n * A reference to the native element of the container component.\n */\n private readonly elementRef: ElementRef<AXGridLayoutContainerCompElement> = inject(ElementRef);\n\n /**\n * Angular's NgZone for running code outside Angular's change detection.\n */\n private ngZone = inject(NgZone);\n\n /**\n * A writable signal representing the current state of the grid.\n */\n private grid: WritableSignal<AXGridLayout | undefined> = signal(undefined);\n\n /**\n * Flag indicating whether the grid has been loaded with content.\n */\n private loaded?: boolean;\n\n /**\n * A reference to the native element representing the grid container.\n */\n private el: AXGridLayoutContainerCompElement = this.elementRef.nativeElement;\n\n // Outputs\n\n /**\n * Output event emitted when a widget is added to the grid.\n */\n protected onAdded = output<AXGridLayoutNodesEvent>();\n\n /**\n * Output event emitted when a widget or layout is changed.\n */\n protected onChange = output<AXGridLayoutNodesEvent>();\n\n /**\n * Output event emitted when the grid is disabled.\n */\n protected onDisable = output<AXGridLayoutEventEvent>();\n\n /**\n * Output event emitted during a drag operation on a widget.\n */\n protected onDrag = output<AXGridLayoutElementEvent>();\n\n /**\n * Output event emitted when drag starts on a widget.\n */\n protected onDragStart = output<AXGridLayoutElementEvent>();\n\n /**\n * Output event emitted when drag stops on a widget.\n */\n protected onDragStop = output<AXGridLayoutElementEvent>();\n\n /**\n * Output event emitted when a widget is dropped on the grid.\n */\n protected onDropped = output<AXGridLayoutDroppedEvent>();\n\n /**\n * Output event emitted when the grid is enabled.\n */\n protected onEnable = output<AXGridLayoutEventEvent>();\n\n /**\n * Output event emitted when a widget is removed from the grid.\n */\n protected onRemoved = output<AXGridLayoutNodesEvent>();\n\n /**\n * Output event emitted when a widget is resized.\n */\n protected onResize = output<AXGridLayoutElementEvent>();\n\n /**\n * Output event emitted when resizing starts on a widget.\n */\n protected onResizeStart = output<AXGridLayoutElementEvent>();\n\n /**\n * Output event emitted when resizing stops on a widget.\n */\n protected onResizeStop = output<AXGridLayoutElementEvent>();\n\n /**\n * Output event emitted when the grid is rendered.\n */\n protected isRendered = output<boolean>();\n\n // Model\n\n /**\n * Model that tracks whether the grid container is empty.\n */\n protected isEmpty = model(false);\n\n // Lifecycle\n\n /**\n * Initializes the grid layout component and sets up the GridStack grid.\n */\n constructor() {\n console.time('grid-layout-builder loaded in: ');\n this.el._gridComp = this;\n }\n\n /**\n * Angular lifecycle hook that initializes the grid once the component is created.\n * It sets up GridStack and loads any initial layout configuration.\n */\n public async ngOnInit(): Promise<void> {\n this.ngZone.runOutsideAngular(async () => {\n this.loaded = !!this.calcOptions()?.children?.length;\n const { GridStack } = await import('gridstack');\n this.grid.set(GridStack.init(this.calcOptions(), this.el));\n this.checkEmpty();\n });\n }\n\n /**\n * Angular lifecycle hook that cleans up resources when the component is destroyed.\n * It removes event listeners and destroys the GridStack instance.\n */\n public ngOnDestroy(): void {\n this.unhookEvents(this.grid());\n this.grid()?.destroy();\n }\n\n // Effects\n\n /**\n * Effect that reacts to changes in the grid layout and updates the DOM accordingly.\n */\n private gridChange = effect(() => {\n if (this.grid()) {\n if (!this.loaded) this.updateAll();\n this.hookEvents(this.grid());\n this.isRendered.emit(true);\n console.timeEnd('grid-layout-builder loaded in: ');\n }\n });\n\n /**\n * Effect that reacts to changes in child widgets and updates the grid layout.\n */\n private childChange = effect(() => {\n if (this.compItems() || this.dirItems()) {\n this.updateAll();\n }\n });\n\n // Methods\n\n /**\n * Updates the grid layout with the current set of widgets, clearing previous options.\n */\n private updateAll() {\n if (!this.grid()) return;\n const layout: AXGridLayoutWidget[] = [];\n const arrays = [...this.dirItems(), ...this.compItems()];\n if (arrays.length) {\n arrays.forEach((item) => {\n layout.push(item.options());\n item.clearOptions();\n });\n this.grid().load(layout);\n }\n }\n\n /**\n * Checks whether the grid is empty and updates the `isEmpty` model accordingly.\n */\n private checkEmpty() {\n if (this.grid()) {\n const isEmpty = !this.grid().engine.nodes.length;\n if (isEmpty === this.isEmpty()) return;\n this.isEmpty.set(isEmpty);\n }\n }\n\n // Event Listeners\n\n /**\n * Hooks event listeners to the grid for various grid events (e.g., add, remove, drag, resize).\n */\n private hookEvents(grid?: AXGridLayout): void {\n if (grid) {\n grid\n .on('added', (event: Event, nodes: AXGridLayoutNode[]) => {\n this.checkEmpty();\n this.onAdded.emit({ event, nodes });\n })\n .on('removed', (event: Event, nodes: AXGridLayoutNode[]) => {\n this.checkEmpty();\n this.onRemoved.emit({ event, nodes });\n })\n .on('change', (event: Event, nodes: AXGridLayoutNode[]) => this.onChange.emit({ event, nodes }))\n .on('disable', (event: Event) => this.onDisable.emit({ event }))\n .on('drag', (event: Event, el: AXGridLayoutWidgetElement) => this.onDrag.emit({ event, el }))\n .on('dragstart', (event: Event, el: AXGridLayoutWidgetElement) => this.onDragStart.emit({ event, el }))\n .on('dragstop', (event: Event, el: AXGridLayoutWidgetElement) => this.onDragStop.emit({ event, el }))\n .on('dropped', (event: Event, previousNode: AXGridLayoutNode, newNode: AXGridLayoutNode) => this.onDropped.emit({ event, previousNode, newNode }))\n .on('enable', (event: Event) => this.onEnable.emit({ event }))\n .on('resize', (event: Event, el: AXGridLayoutWidgetElement) => this.onResize.emit({ event, el }))\n .on('resizestart', (event: Event, el: AXGridLayoutWidgetElement) => this.onResizeStart.emit({ event, el }))\n .on('resizestop', (event: Event, el: AXGridLayoutWidgetElement) => this.onResizeStop.emit({ event, el }));\n }\n }\n\n /**\n * Removes all event listeners from the grid.\n */\n private unhookEvents(grid?: AXGridLayout) {\n if (grid) {\n grid.offAll();\n }\n }\n\n //PUBLIC SETTER METHODS\n\n /**\n * Creates a new widget and returns it.\n * @param w - Widget position/size options.\n * @returns The created widget's HTML element, or `undefined` if the grid is not initialized.\n */\n public addWidget(w: AXGridLayoutWidget, withAutoArrange = false): AXGridLayoutWidgetElement | undefined {\n if (withAutoArrange) {\n this.compact();\n }\n return this.grid()?.addWidget(w);\n }\n\n /**\n * Re-layout grid items to reclaim any empty space.\n * @param layout - Compaction mode: 'list' or 'compact'. Default is 'compact'.\n * @param doSort - Whether to sort items automatically. Default is `true`.\n */\n public compact(layout: 'list' | 'compact' = 'compact', doSort = true): void {\n this.grid()?.compact(layout, doSort);\n }\n\n /**\n * Updates the current cell height.\n * @param val - The new cell height value.\n * @param update - Whether to rebuild the internal CSS stylesheet. Default is `true`.\n */\n public setCellHeight(val: number, update = true): void {\n this.grid()?.cellHeight(val, update);\n }\n\n /**\n * Sets the number of columns in the grid and updates existing widgets to conform to the new layout.\n * @param column - Number of columns (must be > 0). Default is 12.\n * @param layout - Re-layout behavior: 'list', 'compact', 'moveScale', 'move', 'scale', 'none'.\n * Default is 'moveScale'.\n */\n public setColumn(column: number, layout: 'list' | 'compact' | 'moveScale' | 'move' | 'scale' | 'none' = 'moveScale'): void {\n this.grid()?.column(column, layout);\n }\n\n /**\n * Destroys the grid instance.\n * @param removeDOM - If `false`, nodes and grid will not be removed from the DOM. Default is `true`.\n */\n public destroy(removeDOM = true): void {\n this.grid()?.destroy(removeDOM);\n }\n\n /**\n * Sets whether widgets in the grid can be moved (dragged).\n *\n * @param state If true, widgets are movable; otherwise, they are locked.\n * @param recurse If true, the setting is applied to nested widgets as well.\n */\n public setMovable(state: boolean, recurse?: boolean) {\n this.grid().enableMove(state, recurse);\n }\n\n /**\n * Sets whether widgets in the grid can be resized.\n *\n * @param state If true, widgets are resizable; otherwise, they are fixed.\n * @param recurse If true, the setting is applied to nested widgets as well.\n */\n public setResizable(state: boolean, recurse?: boolean) {\n this.grid().enableResize(state, recurse);\n }\n\n /**\n * Sets or gets the floating behavior of widgets.\n * @param val - If provided, sets floating behavior (`true` or `false`). If not provided, returns the current value.\n * @returns The current floating behavior if `val` is not provided.\n */\n public setFloat(val: boolean): void {\n this.grid()?.float(val);\n }\n\n /**\n * Sets the margin (gap) between grid items and their content.\n * @param value - The margin value (number or string).\n */\n public setMargin(value: number | string): void {\n this.grid()?.margin(value);\n }\n\n /**\n * Removes a widget from the grid.\n * @param el - The widget to remove.\n * @param removeDOM - If `false`, the widget won't be removed from the DOM. Default is `true`.\n * @param triggerEvent - If `false`, no 'removed' callbacks will be called. Default is `true`.\n */\n public removeWidget(el: AXGridLayoutWidgetElement, removeDOM = true, triggerEvent = true): void {\n this.grid()?.removeWidget(el, removeDOM, triggerEvent);\n }\n\n /**\n * Removes all widgets from the grid.\n * @param removeDOM - If `false`, widgets won't be removed from the DOM. Default is `true`.\n */\n public removeAll(removeDOM = true): void {\n this.grid()?.removeAll(removeDOM);\n }\n\n /**\n * Rotates a widget by swapping its width and height.\n * @param els - The widget or selector of widgets to rotate.\n * @param relative - Optional pixel coordinates to rotate around (keeps that cell under the cursor).\n */\n public setRotate(element: AXGridLayoutWidgetCompElement) {\n this.grid().rotate(element);\n }\n\n /**\n * Toggles the grid animation state.\n * @param doAnimate - If `true`, the grid will animate.\n */\n public setAnimation(doAnimate: boolean): void {\n this.grid()?.setAnimation(doAnimate);\n }\n\n domSanitizer = inject(DomSanitizer);\n\n /**\n * Saves the current grid layout configuration.\n *\n * @param saveContent Whether to save the content of the grid items.\n * @param saveGridOpt Whether to save the grid options.\n * @param saveCallback Optional callback for custom save logic.\n * @returns The serialized grid layout options.\n */\n public save(saveContent = false, saveGridOpt = true, saveCallback?: AXSaveCallback): AXGridLayoutOptions {\n this.serializedData = this.grid().save(saveContent, saveGridOpt, saveCallback) as AXGridLayoutOptions;\n return this.serializedData;\n }\n\n /**\n * Loads a serialized grid layout configuration into the grid.\n *\n * @param serializedData The serialized grid options to load.\n * @param cleanBeforeLoad If true, the grid will be cleared before loading the new layout.\n * @returns A promise that resolves to the loaded grid instance.\n */\n public async load(serializedData: AXGridLayoutOptions = this.serializedData, cleanBeforeLoad = true): Promise<AXGridLayout> {\n if (cleanBeforeLoad) {\n this.grid().removeAll();\n }\n\n // Sanitize the content of each child element\n if (serializedData.children) {\n serializedData.children = serializedData.children.map((child) => {\n if (child.content) {\n // Sanitize the HTML content using Angular's DomSanitizer\n const sanitizedContent = this.domSanitizer.sanitize(SecurityContext.HTML, child.content);\n if (!sanitizedContent) {\n console.warn('Invalid or unsafe content removed:', child.content);\n child.content = ''; // Fallback to empty string\n } else {\n child.content = sanitizedContent;\n }\n }\n return child;\n });\n }\n\n // Dynamically import GridStack and load the grid\n const { GridStack } = await import('gridstack');\n return GridStack.addGrid(this.el, serializedData);\n }\n\n /**\n * Sets up draggable functionality for external elements to be added to the grid.\n *\n * @param dragIn A CSS selector or an array of elements that can be dragged into the grid.\n * @param widgets An optional set of widgets that are draggable into the grid.\n */\n public async setupDraggable(dragIn?: string | HTMLElement[], widgets?: AXGridLayoutWidget) {\n if (typeof dragIn === 'string') {\n document.querySelectorAll(dragIn).forEach((item) => {\n if (!item.classList.contains('grid-stack-item')) {\n item.classList.add('grid-stack-item');\n }\n });\n }\n const { GridStack } = await import('gridstack');\n GridStack.setupDragIn(dragIn, undefined, [widgets]);\n }\n\n /**\n * Sets grid layout options.\n * @param options The new grid layout options to apply.\n *\n * `Experimental`\n */\n public setOption(options: AXGridLayoutOptions) {\n this.grid().opts = merge({}, this.grid().opts, options);\n }\n\n // PUBLIC GETTER METHODS //\n\n /**\n * Retrieves the current grid layout options.\n *\n * @returns The current grid options.\n */\n public getOptions(): AXGridLayoutOptions {\n return this.grid().opts;\n }\n\n /**\n * Retrieves all the child nodes (widgets) in the grid layout.\n *\n * @returns An array of grid layout nodes representing the widgets.\n */\n public getChildren(): AXGridLayoutNode[] {\n return this.grid().engine.nodes;\n }\n}\n","/**\n * gridstack.component.ts 11.1.1-dev\n * Copyright (c) 2022-2024 Alain Dumesny - see GridStack root license\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { AXGridLayoutContainerComponent } from './grid-layout-container.component';\nimport { AXGridLayoutWidgetComponent } from './grid-layout-widget.component';\nimport { AXGridLayoutWidgetDirective } from './grid-layout-widget.directive';\n\n@NgModule({\n imports: [CommonModule, AXGridLayoutContainerComponent, AXGridLayoutWidgetComponent, AXGridLayoutWidgetDirective],\n exports: [AXGridLayoutContainerComponent, AXGridLayoutWidgetComponent, AXGridLayoutWidgetDirective],\n})\nexport class AXGridLayoutBuilderModule {\n // constructor() {\n // set globally our method to create the right widget type\n // GridStack.addRemoveCB = gsCreateNgComponents;\n // GridStack.saveCB = gsSaveAdditionalNgInfo;\n // }\n}\n","import { AXGridLayoutContainerComponent } from './grid-layout-container.component';\nimport { AXGridLayoutWidgetComponent } from './grid-layout-widget.component';\nimport { AXGridLayoutWidgetDirective } from './grid-layout-widget.directive';\n//TYPES\nexport type AXGridLayoutNode = import('gridstack').GridStackNode;\nexport type AXGridLayout = import('gridstack').GridStack;\nexport type AXGridLayoutOptions = import('gridstack').GridStackOptions;\nexport type AXGridLayoutWidget = import('gridstack').GridStackWidget & { data?: any };\nexport type AXGridLayoutContainerElement = import('gridstack').GridHTMLElement;\nexport type AXGridLayoutWidgetElement = import('gridstack').GridItemHTMLElement;\n//EVENTS\nexport type AXGridLayoutEventEvent = { event: Event };\nexport type AXGridLayoutElementEvent = { event: Event; el: AXGridLayoutWidgetElement };\nexport type AXGridLayoutNodesEvent = { event: Event; nodes: AXGridLayoutNode[] };\nexport type AXGridLayoutDroppedEvent = {\n event: Event;\n previousNode: AXGridLayoutNode;\n newNode: AXGridLayoutNode;\n};\n//COMPONENTS\nexport interface AXGridLayoutContainerCompElement extends AXGridLayoutContainerElement {\n _gridComp?: AXGridLayoutContainerComponent;\n}\nexport interface AXGridLayoutWidgetCompElement extends AXGridLayoutWidgetElement {\n _gridWidgetComp?: AXGridLayoutWidgetComponent | AXGridLayoutWidgetDirective;\n}\n\n//Callback\nexport type AXSaveCallback = import('gridstack').SaveFcn;\n\n// //DYNAMIC\n// export type AXNgCompInputs = { [key: string]: any };\n// export type SelectorToType = { [key: string]: Type<object> }; // selector string to runtime Type mapping\n// export interface AXNgGridLayoutWidget extends AXGridLayoutWidget {\n// selector?: string; //Angular tag selector for this component to create at runtime\n// input?: AXNgCompInputs; // serialized data for the component input fields\n// subGridOpts?: AXNgGridLayoutOptions; // nested grid options\n// }\n// export interface AXNgGridLayoutNode extends AXGridLayoutNode {\n// selector?: string; // component type to create as content\n// }\n// export interface AXNgGridLayoutOptions extends AXGridLayoutOptions {\n// children?: AXNgGridLayoutWidget[];\n// subGridOpts?: AXNgGridLayoutOptions;\n// }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,24 +1,17 @@
1
1
  import { MXInputBaseValueComponent, MXLookComponent, AXComponent, AXFocusableComponent, AXClearableComponent, AXValuableComponent, MXBaseComponent } from '@acorex/components/common';
2
2
  import { AXDialogService, AXDialogModule } from '@acorex/components/dialog';
3
+ import { AXLoadingSpinnerComponent, AXLoadingModule } from '@acorex/components/loading';
3
4
  import * as i0 from '@angular/core';
4
- import { signal, Injectable, inject, viewChild, forwardRef, ViewEncapsulation, Component, HostBinding, input, Renderer2, computed, NgZone, afterNextRender, effect, ChangeDetectionStrategy, NgModule } from '@angular/core';
5
- import * as i1$1 from '@angular/forms';
5
+ import { signal, Injectable, inject, viewChild, forwardRef, Component, ViewEncapsulation, HostBinding, input, Renderer2, computed, NgZone, afterNextRender, effect, ChangeDetectionStrategy, NgModule } from '@angular/core';
6
+ import * as i1 from '@angular/forms';
6
7
  import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
7
8
  import { classes } from 'polytype';
8
- import * as i1 from '@acorex/components/loading';
9
- import { AXLoadingModule } from '@acorex/components/loading';
10
- import * as i2 from '@acorex/components/color-box';
11
- import { AXColorBoxModule } from '@acorex/components/color-box';
12
- import * as i3 from '@acorex/components/tooltip';
13
- import { AXTooltipModule } from '@acorex/components/tooltip';
14
- import * as i1$2 from '@acorex/components/button';
15
- import { AXButtonModule } from '@acorex/components/button';
16
- import * as i2$1 from '@acorex/components/decorators';
17
- import { AXDecoratorModule } from '@acorex/components/decorators';
18
- import * as i3$1 from '@acorex/components/range-slider';
19
- import { AXRangeSliderModule } from '@acorex/components/range-slider';
20
- import * as i4 from '@acorex/components/popover';
21
- import { AXPopoverModule } from '@acorex/components/popover';
9
+ import { AXColorBoxComponent, AXColorBoxModule } from '@acorex/components/color-box';
10
+ import { AXTooltipDirective, AXTooltipModule } from '@acorex/components/tooltip';
11
+ import { AXButtonComponent, AXButtonModule } from '@acorex/components/button';
12
+ import { AXDecoratorIconComponent, AXDecoratorModule } from '@acorex/components/decorators';
13
+ import { AXPopoverComponent, AXPopoverModule } from '@acorex/components/popover';
14
+ import { AXRangeSliderComponent, AXRangeSliderModule } from '@acorex/components/range-slider';
22
15
  import { AXSelectBoxModule } from '@acorex/components/select-box';
23
16
 
24
17
  class AXImageEditorService {
@@ -35,10 +28,10 @@ class AXImageEditorService {
35
28
  this.initialImage = signal(null);
36
29
  this.imageBlob = signal([]);
37
30
  }
38
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXImageEditorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
39
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXImageEditorService }); }
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXImageEditorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
32
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXImageEditorService }); }
40
33
  }
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXImageEditorService, decorators: [{
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXImageEditorService, decorators: [{
42
35
  type: Injectable
43
36
  }] });
44
37
 
@@ -80,8 +73,8 @@ class AXImageEditorContainerComponent extends classes((MXInputBaseValueComponent
80
73
  this.commitValue(null);
81
74
  }
82
75
  }
83
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXImageEditorContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
84
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXImageEditorContainerComponent, isStandalone: false, selector: "ax-image-editor-container", inputs: { look: "look" }, outputs: { onValueChanged: "onValueChanged" }, providers: [
76
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXImageEditorContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
77
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: AXImageEditorContainerComponent, isStandalone: true, selector: "ax-image-editor-container", inputs: { look: "look" }, outputs: { onValueChanged: "onValueChanged" }, providers: [
85
78
  AXImageEditorService,
86
79
  { provide: AXComponent, useExisting: AXImageEditorContainerComponent },
87
80
  { provide: AXFocusableComponent, useExisting: AXImageEditorContainerComponent },
@@ -92,11 +85,11 @@ class AXImageEditorContainerComponent extends classes((MXInputBaseValueComponent
92
85
  useExisting: forwardRef(() => AXImageEditorContainerComponent),
93
86
  multi: true,
94
87
  },
95
- ], viewQueries: [{ propertyName: "imageEditorContainer", first: true, predicate: ["f"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (service.isImageLoad()) {\n <div #f class=\"ax-editor-container ax-{{ look }}\">\n <ng-content> </ng-content>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n </div>\n <div class=\"ax-error-container\"></div>\n} @else {\n <div class=\"ax-loading-spinner-container\">\n <ax-loading-spinner [size]=\"16\" color=\"primary\" text=\"Loading Image ...\"></ax-loading-spinner>\n </div>\n}\n", styles: ["ax-image-editor-container{width:fit-content;display:block}ax-image-editor-container>.ax-editor-container{display:flex;flex-direction:column;justify-content:center;align-items:center;height:auto!important;--ax-comp-editor-space-start-size: 0;--ax-comp-editor-space-end-size: 0}ax-image-editor-container .ax-loading-spinner-container{display:flex;justify-content:center;align-items:center}\n"], dependencies: [{ kind: "component", type: i1.AXLoadingSpinnerComponent, selector: "ax-loading-spinner", inputs: ["text", "color", "size", "stroke"] }], encapsulation: i0.ViewEncapsulation.None }); }
88
+ ], viewQueries: [{ propertyName: "imageEditorContainer", first: true, predicate: ["f"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (service.isImageLoad()) {\n <div #f class=\"ax-editor-container ax-{{ look }}\">\n <ng-content> </ng-content>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n </div>\n <div class=\"ax-error-container\"></div>\n} @else {\n <div class=\"ax-loading-spinner-container\">\n <ax-loading-spinner [size]=\"16\" color=\"primary\" text=\"Loading Image ...\"></ax-loading-spinner>\n </div>\n}\n", styles: ["ax-image-editor-container{width:fit-content;display:block}ax-image-editor-container>.ax-editor-container{display:flex;flex-direction:column;justify-content:center;align-items:center;height:auto!important;--ax-comp-editor-space-start-size: 0;--ax-comp-editor-space-end-size: 0}ax-image-editor-container .ax-loading-spinner-container{display:flex;justify-content:center;align-items:center}\n"], dependencies: [{ kind: "component", type: AXLoadingSpinnerComponent, selector: "ax-loading-spinner", inputs: ["text", "color", "size", "stroke"] }], encapsulation: i0.ViewEncapsulation.None }); }
96
89
  }
97
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXImageEditorContainerComponent, decorators: [{
90
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXImageEditorContainerComponent, decorators: [{
98
91
  type: Component,
99
- args: [{ selector: 'ax-image-editor-container', encapsulation: ViewEncapsulation.None, standalone: false, outputs: ['onValueChanged'], inputs: ['look'], providers: [
92
+ args: [{ selector: 'ax-image-editor-container', encapsulation: ViewEncapsulation.None, outputs: ['onValueChanged'], inputs: ['look'], providers: [
100
93
  AXImageEditorService,
101
94
  { provide: AXComponent, useExisting: AXImageEditorContainerComponent },
102
95
  { provide: AXFocusableComponent, useExisting: AXImageEditorContainerComponent },
@@ -107,7 +100,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
107
100
  useExisting: forwardRef(() => AXImageEditorContainerComponent),
108
101
  multi: true,
109
102
  },
110
- ], template: "@if (service.isImageLoad()) {\n <div #f class=\"ax-editor-container ax-{{ look }}\">\n <ng-content> </ng-content>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n </div>\n <div class=\"ax-error-container\"></div>\n} @else {\n <div class=\"ax-loading-spinner-container\">\n <ax-loading-spinner [size]=\"16\" color=\"primary\" text=\"Loading Image ...\"></ax-loading-spinner>\n </div>\n}\n", styles: ["ax-image-editor-container{width:fit-content;display:block}ax-image-editor-container>.ax-editor-container{display:flex;flex-direction:column;justify-content:center;align-items:center;height:auto!important;--ax-comp-editor-space-start-size: 0;--ax-comp-editor-space-end-size: 0}ax-image-editor-container .ax-loading-spinner-container{display:flex;justify-content:center;align-items:center}\n"] }]
103
+ ], imports: [AXLoadingSpinnerComponent], template: "@if (service.isImageLoad()) {\n <div #f class=\"ax-editor-container ax-{{ look }}\">\n <ng-content> </ng-content>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n </div>\n <div class=\"ax-error-container\"></div>\n} @else {\n <div class=\"ax-loading-spinner-container\">\n <ax-loading-spinner [size]=\"16\" color=\"primary\" text=\"Loading Image ...\"></ax-loading-spinner>\n </div>\n}\n", styles: ["ax-image-editor-container{width:fit-content;display:block}ax-image-editor-container>.ax-editor-container{display:flex;flex-direction:column;justify-content:center;align-items:center;height:auto!important;--ax-comp-editor-space-start-size: 0;--ax-comp-editor-space-end-size: 0}ax-image-editor-container .ax-loading-spinner-container{display:flex;justify-content:center;align-items:center}\n"] }]
111
104
  }] });
112
105
 
113
106
  /**
@@ -129,12 +122,12 @@ class AXImageEditorColorPickerComponent {
129
122
  get __hostClass() {
130
123
  return `.5rem`;
131
124
  }
132
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXImageEditorColorPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
133
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXImageEditorColorPickerComponent, isStandalone: false, selector: "ax-image-editor-color-picker", host: { properties: { "style.marginInline": "this.__hostClass" } }, ngImport: i0, template: "<ax-color-box axTooltip=\"Color Picker\" axTooltipPlacement=\"top\" look=\"none\" [ngModel]=\"selectedColor()\" (ngModelChange)=\"changeColorHandler($event)\">\n</ax-color-box>\n", styles: ["ax-image-editor-color-picker{margin-inline:0!important}ax-image-editor-color-picker .ax-submit-color{border:1px solid rgba(var(--ax-sys-body-text-color));width:.6rem;height:.6rem;border-radius:1000vmax}ax-image-editor-color-picker .ax-color-flex-container{display:flex;align-items:center;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.AXColorBoxComponent, selector: "ax-color-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "showBadge", "showValue", "showClearButton", "showIcon"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange"] }, { kind: "directive", type: i3.AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltip", "axTooltipPlacement", "axTooltipOpenAfter", "axTooltipCloseAfter"] }], encapsulation: i0.ViewEncapsulation.None }); }
125
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXImageEditorColorPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
126
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.7", type: AXImageEditorColorPickerComponent, isStandalone: true, selector: "ax-image-editor-color-picker", host: { properties: { "style.marginInline": "this.__hostClass" } }, ngImport: i0, template: "<ax-color-box axTooltip=\"Color Picker\" axTooltipPlacement=\"top\" look=\"none\" [ngModel]=\"selectedColor()\" (ngModelChange)=\"changeColorHandler($event)\">\n</ax-color-box>\n", styles: ["ax-image-editor-color-picker{margin-inline:0!important}ax-image-editor-color-picker .ax-submit-color{border:1px solid rgba(var(--ax-sys-body-text-color));width:.6rem;height:.6rem;border-radius:1000vmax}ax-image-editor-color-picker .ax-color-flex-container{display:flex;align-items:center;cursor:pointer}\n"], dependencies: [{ kind: "component", type: AXColorBoxComponent, selector: "ax-color-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "showBadge", "showValue", "showClearButton", "showIcon"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange"] }, { kind: "directive", type: AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltip", "axTooltipPlacement", "axTooltipOpenAfter", "axTooltipCloseAfter"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None }); }
134
127
  }
135
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXImageEditorColorPickerComponent, decorators: [{
128
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXImageEditorColorPickerComponent, decorators: [{
136
129
  type: Component,
137
- args: [{ selector: 'ax-image-editor-color-picker', encapsulation: ViewEncapsulation.None, standalone: false, template: "<ax-color-box axTooltip=\"Color Picker\" axTooltipPlacement=\"top\" look=\"none\" [ngModel]=\"selectedColor()\" (ngModelChange)=\"changeColorHandler($event)\">\n</ax-color-box>\n", styles: ["ax-image-editor-color-picker{margin-inline:0!important}ax-image-editor-color-picker .ax-submit-color{border:1px solid rgba(var(--ax-sys-body-text-color));width:.6rem;height:.6rem;border-radius:1000vmax}ax-image-editor-color-picker .ax-color-flex-container{display:flex;align-items:center;cursor:pointer}\n"] }]
130
+ args: [{ selector: 'ax-image-editor-color-picker', encapsulation: ViewEncapsulation.None, imports: [AXColorBoxComponent, AXTooltipDirective, FormsModule], template: "<ax-color-box axTooltip=\"Color Picker\" axTooltipPlacement=\"top\" look=\"none\" [ngModel]=\"selectedColor()\" (ngModelChange)=\"changeColorHandler($event)\">\n</ax-color-box>\n", styles: ["ax-image-editor-color-picker{margin-inline:0!important}ax-image-editor-color-picker .ax-submit-color{border:1px solid rgba(var(--ax-sys-body-text-color));width:.6rem;height:.6rem;border-radius:1000vmax}ax-image-editor-color-picker .ax-color-flex-container{display:flex;align-items:center;cursor:pointer}\n"] }]
138
131
  }], propDecorators: { __hostClass: [{
139
132
  type: HostBinding,
140
133
  args: ['style.marginInline']
@@ -163,12 +156,12 @@ class AXImageEditorCropComponent {
163
156
  return { userInteract: true, state: !prev.state };
164
157
  });
165
158
  }
166
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXImageEditorCropComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
167
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXImageEditorCropComponent, isStandalone: false, selector: "ax-image-editor-crop", ngImport: i0, template: "<ax-button\n axTooltip=\"Crop Image\"\n axTooltipPlacement=\"top\"\n [selected]=\"service.cropState().state && true\"\n (click)=\"crop()\"\n look=\"blank\"\n>\n <ax-icon class=\"ax-icon ax-icon-crop\"></ax-icon>\n</ax-button>\n\n<ax-button axTooltip=\"Rotate Left\" axTooltipPlacement=\"top\" (click)=\"rotateLeftHandler()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-undo\"></ax-icon>\n</ax-button>\n\n<ax-button axTooltip=\"Rotate Right\" axTooltipPlacement=\"top\" (click)=\"rotateRightHandler()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-redo\"></ax-icon>\n</ax-button>\n", dependencies: [{ kind: "component", type: i1$2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "directive", type: i3.AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltip", "axTooltipPlacement", "axTooltipOpenAfter", "axTooltipCloseAfter"] }], encapsulation: i0.ViewEncapsulation.None }); }
159
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXImageEditorCropComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
160
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.7", type: AXImageEditorCropComponent, isStandalone: true, selector: "ax-image-editor-crop", ngImport: i0, template: "<ax-button\n axTooltip=\"Crop Image\"\n axTooltipPlacement=\"top\"\n [selected]=\"service.cropState().state && true\"\n (click)=\"crop()\"\n look=\"blank\"\n>\n <ax-icon class=\"ax-icon ax-icon-crop\"></ax-icon>\n</ax-button>\n\n<ax-button axTooltip=\"Rotate Left\" axTooltipPlacement=\"top\" (click)=\"rotateLeftHandler()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-undo\"></ax-icon>\n</ax-button>\n\n<ax-button axTooltip=\"Rotate Right\" axTooltipPlacement=\"top\" (click)=\"rotateRightHandler()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-redo\"></ax-icon>\n</ax-button>\n", dependencies: [{ kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "directive", type: AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltip", "axTooltipPlacement", "axTooltipOpenAfter", "axTooltipCloseAfter"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }], encapsulation: i0.ViewEncapsulation.None }); }
168
161
  }
169
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXImageEditorCropComponent, decorators: [{
162
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXImageEditorCropComponent, decorators: [{
170
163
  type: Component,
171
- args: [{ selector: 'ax-image-editor-crop', encapsulation: ViewEncapsulation.None, standalone: false, template: "<ax-button\n axTooltip=\"Crop Image\"\n axTooltipPlacement=\"top\"\n [selected]=\"service.cropState().state && true\"\n (click)=\"crop()\"\n look=\"blank\"\n>\n <ax-icon class=\"ax-icon ax-icon-crop\"></ax-icon>\n</ax-button>\n\n<ax-button axTooltip=\"Rotate Left\" axTooltipPlacement=\"top\" (click)=\"rotateLeftHandler()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-undo\"></ax-icon>\n</ax-button>\n\n<ax-button axTooltip=\"Rotate Right\" axTooltipPlacement=\"top\" (click)=\"rotateRightHandler()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-redo\"></ax-icon>\n</ax-button>\n" }]
164
+ args: [{ selector: 'ax-image-editor-crop', encapsulation: ViewEncapsulation.None, imports: [AXButtonComponent, AXTooltipDirective, AXDecoratorIconComponent], template: "<ax-button\n axTooltip=\"Crop Image\"\n axTooltipPlacement=\"top\"\n [selected]=\"service.cropState().state && true\"\n (click)=\"crop()\"\n look=\"blank\"\n>\n <ax-icon class=\"ax-icon ax-icon-crop\"></ax-icon>\n</ax-button>\n\n<ax-button axTooltip=\"Rotate Left\" axTooltipPlacement=\"top\" (click)=\"rotateLeftHandler()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-undo\"></ax-icon>\n</ax-button>\n\n<ax-button axTooltip=\"Rotate Right\" axTooltipPlacement=\"top\" (click)=\"rotateRightHandler()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-redo\"></ax-icon>\n</ax-button>\n" }]
172
165
  }] });
173
166
 
174
167
  /**
@@ -208,12 +201,12 @@ class AXImageEditorPenModeChangerComponent {
208
201
  valueHandler(e) {
209
202
  this.service.lineWidth.set(e);
210
203
  }
211
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXImageEditorPenModeChangerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
212
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXImageEditorPenModeChangerComponent, isStandalone: false, selector: "ax-image-editor-pen-mode-changer", host: { properties: { "style.marginInline": "this.__hostClass" } }, ngImport: i0, template: "<ax-button axTooltip=\"Draw Utilities\" axTooltipPlacement=\"top\" look=\"blank\" #alignPop>\n @switch (service.penType()) {\n @case ('pen') {\n <ax-icon class=\"ax-icon ax-icon-pen\"></ax-icon>\n }\n @case ('highlight') {\n <ax-icon class=\"ax-icon ax-icon-highlight\"></ax-icon>\n }\n }\n</ax-button>\n\n<ax-button axTooltip=\"Reset Changes\" axTooltipPlacement=\"top\" (click)=\"clear()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-refresh\"></ax-icon>\n</ax-button>\n\n<ax-popover\n [openOn]=\"popoverOption.openOn\"\n [closeOn]=\"popoverOption.closeOn\"\n [target]=\"alignPop\"\n [placement]=\"popoverOption.placement\"\n>\n <div class=\"ax-overlay-pane\">\n <ax-button\n (click)=\"penTypeHandler('pen')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'pen' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-pen\"></ax-icon>\n </ax-button>\n\n <ax-button\n (click)=\"penTypeHandler('highlight')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'highlight' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-highlight\"></ax-icon>\n </ax-button>\n\n <div class=\"ax-paint-width-slider\">\n <ax-range-slider\n [min]=\"2\"\n [max]=\"20\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"valueHandler($event)\"\n ></ax-range-slider>\n </div>\n </div>\n</ax-popover>\n", styles: ["ax-image-editor-pen-mode-changer{margin-inline:0!important}ax-image-editor-pen-mode-changer ax-range-slider{padding:.5rem .75rem}ax-image-editor-pen-mode-changer ax-range-slider .ax-range-slider .ax-range-slider-handler{width:1rem!important;height:1rem!important}ax-image-editor-pen-mode-changer .ax-paint-pen-mode-changer-container{display:flex;align-items:center}ax-image-editor-pen-mode-changer .ax-paint-pen-mode-changer-container .ax-pen-type-container{margin-inline-end:.5rem}ax-image-editor-pen-mode-changer .ax-overlay-pane{padding:.5rem!important}\n"], dependencies: [{ kind: "component", type: i1$2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3$1.AXRangeSliderComponent, selector: "ax-range-slider", inputs: ["disabled", "readonly", "orientation", "color", "values", "mode", "min", "max", "step", "snap", "tooltipMode", "snapMode", "hasStep", "hasSnap", "hasLable", "hasTooltip"], outputs: ["valuesChange"] }, { kind: "component", type: i4.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "directive", type: i3.AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltip", "axTooltipPlacement", "axTooltipOpenAfter", "axTooltipCloseAfter"] }], encapsulation: i0.ViewEncapsulation.None }); }
204
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXImageEditorPenModeChangerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
205
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.7", type: AXImageEditorPenModeChangerComponent, isStandalone: true, selector: "ax-image-editor-pen-mode-changer", host: { properties: { "style.marginInline": "this.__hostClass" } }, ngImport: i0, template: "<ax-button axTooltip=\"Draw Utilities\" axTooltipPlacement=\"top\" look=\"blank\" #alignPop>\n @switch (service.penType()) {\n @case ('pen') {\n <ax-icon class=\"ax-icon ax-icon-pen\"></ax-icon>\n }\n @case ('highlight') {\n <ax-icon class=\"ax-icon ax-icon-highlight\"></ax-icon>\n }\n }\n</ax-button>\n\n<ax-button axTooltip=\"Reset Changes\" axTooltipPlacement=\"top\" (click)=\"clear()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-refresh\"></ax-icon>\n</ax-button>\n\n<ax-popover\n [openOn]=\"popoverOption.openOn\"\n [closeOn]=\"popoverOption.closeOn\"\n [target]=\"alignPop\"\n [placement]=\"popoverOption.placement\"\n>\n <div class=\"ax-overlay-pane\">\n <ax-button\n (click)=\"penTypeHandler('pen')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'pen' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-pen\"></ax-icon>\n </ax-button>\n\n <ax-button\n (click)=\"penTypeHandler('highlight')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'highlight' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-highlight\"></ax-icon>\n </ax-button>\n\n <div class=\"ax-paint-width-slider\">\n <ax-range-slider\n [min]=\"2\"\n [max]=\"20\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"valueHandler($event)\"\n ></ax-range-slider>\n </div>\n </div>\n</ax-popover>\n", styles: ["ax-image-editor-pen-mode-changer{margin-inline:0!important}ax-image-editor-pen-mode-changer ax-range-slider{padding:.5rem .75rem}ax-image-editor-pen-mode-changer ax-range-slider .ax-range-slider .ax-range-slider-handler{width:1rem!important;height:1rem!important}ax-image-editor-pen-mode-changer .ax-paint-pen-mode-changer-container{display:flex;align-items:center}ax-image-editor-pen-mode-changer .ax-paint-pen-mode-changer-container .ax-pen-type-container{margin-inline-end:.5rem}ax-image-editor-pen-mode-changer .ax-overlay-pane{padding:.5rem!important}\n"], dependencies: [{ kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "directive", type: AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltip", "axTooltipPlacement", "axTooltipOpenAfter", "axTooltipCloseAfter"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: AXRangeSliderComponent, selector: "ax-range-slider", inputs: ["disabled", "readonly", "orientation", "color", "values", "mode", "min", "max", "step", "snap", "tooltipMode", "snapMode", "hasStep", "hasSnap", "hasLable", "hasTooltip"], outputs: ["valuesChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None }); }
213
206
  }
214
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXImageEditorPenModeChangerComponent, decorators: [{
207
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXImageEditorPenModeChangerComponent, decorators: [{
215
208
  type: Component,
216
- args: [{ selector: 'ax-image-editor-pen-mode-changer', encapsulation: ViewEncapsulation.None, standalone: false, template: "<ax-button axTooltip=\"Draw Utilities\" axTooltipPlacement=\"top\" look=\"blank\" #alignPop>\n @switch (service.penType()) {\n @case ('pen') {\n <ax-icon class=\"ax-icon ax-icon-pen\"></ax-icon>\n }\n @case ('highlight') {\n <ax-icon class=\"ax-icon ax-icon-highlight\"></ax-icon>\n }\n }\n</ax-button>\n\n<ax-button axTooltip=\"Reset Changes\" axTooltipPlacement=\"top\" (click)=\"clear()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-refresh\"></ax-icon>\n</ax-button>\n\n<ax-popover\n [openOn]=\"popoverOption.openOn\"\n [closeOn]=\"popoverOption.closeOn\"\n [target]=\"alignPop\"\n [placement]=\"popoverOption.placement\"\n>\n <div class=\"ax-overlay-pane\">\n <ax-button\n (click)=\"penTypeHandler('pen')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'pen' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-pen\"></ax-icon>\n </ax-button>\n\n <ax-button\n (click)=\"penTypeHandler('highlight')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'highlight' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-highlight\"></ax-icon>\n </ax-button>\n\n <div class=\"ax-paint-width-slider\">\n <ax-range-slider\n [min]=\"2\"\n [max]=\"20\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"valueHandler($event)\"\n ></ax-range-slider>\n </div>\n </div>\n</ax-popover>\n", styles: ["ax-image-editor-pen-mode-changer{margin-inline:0!important}ax-image-editor-pen-mode-changer ax-range-slider{padding:.5rem .75rem}ax-image-editor-pen-mode-changer ax-range-slider .ax-range-slider .ax-range-slider-handler{width:1rem!important;height:1rem!important}ax-image-editor-pen-mode-changer .ax-paint-pen-mode-changer-container{display:flex;align-items:center}ax-image-editor-pen-mode-changer .ax-paint-pen-mode-changer-container .ax-pen-type-container{margin-inline-end:.5rem}ax-image-editor-pen-mode-changer .ax-overlay-pane{padding:.5rem!important}\n"] }]
209
+ args: [{ selector: 'ax-image-editor-pen-mode-changer', encapsulation: ViewEncapsulation.None, imports: [AXButtonComponent, AXTooltipDirective, AXDecoratorIconComponent, AXPopoverComponent, AXRangeSliderComponent, FormsModule], template: "<ax-button axTooltip=\"Draw Utilities\" axTooltipPlacement=\"top\" look=\"blank\" #alignPop>\n @switch (service.penType()) {\n @case ('pen') {\n <ax-icon class=\"ax-icon ax-icon-pen\"></ax-icon>\n }\n @case ('highlight') {\n <ax-icon class=\"ax-icon ax-icon-highlight\"></ax-icon>\n }\n }\n</ax-button>\n\n<ax-button axTooltip=\"Reset Changes\" axTooltipPlacement=\"top\" (click)=\"clear()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-refresh\"></ax-icon>\n</ax-button>\n\n<ax-popover\n [openOn]=\"popoverOption.openOn\"\n [closeOn]=\"popoverOption.closeOn\"\n [target]=\"alignPop\"\n [placement]=\"popoverOption.placement\"\n>\n <div class=\"ax-overlay-pane\">\n <ax-button\n (click)=\"penTypeHandler('pen')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'pen' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-pen\"></ax-icon>\n </ax-button>\n\n <ax-button\n (click)=\"penTypeHandler('highlight')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'highlight' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-highlight\"></ax-icon>\n </ax-button>\n\n <div class=\"ax-paint-width-slider\">\n <ax-range-slider\n [min]=\"2\"\n [max]=\"20\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"valueHandler($event)\"\n ></ax-range-slider>\n </div>\n </div>\n</ax-popover>\n", styles: ["ax-image-editor-pen-mode-changer{margin-inline:0!important}ax-image-editor-pen-mode-changer ax-range-slider{padding:.5rem .75rem}ax-image-editor-pen-mode-changer ax-range-slider .ax-range-slider .ax-range-slider-handler{width:1rem!important;height:1rem!important}ax-image-editor-pen-mode-changer .ax-paint-pen-mode-changer-container{display:flex;align-items:center}ax-image-editor-pen-mode-changer .ax-paint-pen-mode-changer-container .ax-pen-type-container{margin-inline-end:.5rem}ax-image-editor-pen-mode-changer .ax-overlay-pane{padding:.5rem!important}\n"] }]
217
210
  }], propDecorators: { __hostClass: [{
218
211
  type: HostBinding,
219
212
  args: ['style.marginInline']
@@ -567,12 +560,12 @@ class AXImageEditorViewComponent extends MXBaseComponent {
567
560
  get __hostStyle() {
568
561
  return `width: ${this.service.initialImage()?.width}px; height: ${this.service.initialImage()?.height}px`;
569
562
  }
570
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXImageEditorViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
571
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.3", type: AXImageEditorViewComponent, isStandalone: false, selector: "ax-image-editor-view", inputs: { src: { classPropertyName: "src", publicName: "src", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style": "this.__hostStyle" } }, viewQueries: [{ propertyName: "canvasElem", first: true, predicate: ["canvasElem"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<canvas\n tabindex=\"1\"\n (mousedown)=\"mouseDownHandler($event)\"\n (mouseup)=\"mouseUpHandler()\"\n (mousemove)=\"mouseMoveHandler($event)\"\n (touchstart)=\"touchStartHandler($event)\"\n (touchend)=\"touchEndHandler()\"\n (touchmove)=\"touchMoveHandler($event)\"\n class=\"ax-canvas-element\"\n #canvasElem\n></canvas>\n<ax-button\n (click)=\"cropButtonHandler()\"\n [style]=\"{ display: service.cropState().state ? 'block' : 'none' }\"\n class=\"ax-crop-save ax-sm\"\n text=\"Crop\"\n></ax-button>\n", styles: ["ax-image-editor-view{position:relative;display:flex;justify-content:center;align-items:center;background-color:#fff;width:100%}ax-image-editor-view .ax-canvas-element{cursor:crosshair}ax-image-editor-view .ax-crop-save{position:absolute;top:0;right:0;margin:1rem}\n"], dependencies: [{ kind: "component", type: i1$2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
563
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXImageEditorViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
564
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.1.7", type: AXImageEditorViewComponent, isStandalone: true, selector: "ax-image-editor-view", inputs: { src: { classPropertyName: "src", publicName: "src", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style": "this.__hostStyle" } }, viewQueries: [{ propertyName: "canvasElem", first: true, predicate: ["canvasElem"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<canvas\n tabindex=\"1\"\n (mousedown)=\"mouseDownHandler($event)\"\n (mouseup)=\"mouseUpHandler()\"\n (mousemove)=\"mouseMoveHandler($event)\"\n (touchstart)=\"touchStartHandler($event)\"\n (touchend)=\"touchEndHandler()\"\n (touchmove)=\"touchMoveHandler($event)\"\n class=\"ax-canvas-element\"\n #canvasElem\n></canvas>\n<ax-button\n (click)=\"cropButtonHandler()\"\n [style]=\"{ display: service.cropState().state ? 'block' : 'none' }\"\n class=\"ax-crop-save ax-sm\"\n text=\"Crop\"\n></ax-button>\n", styles: ["ax-image-editor-view{position:relative;display:flex;justify-content:center;align-items:center;background-color:#fff;width:100%}ax-image-editor-view .ax-canvas-element{cursor:crosshair}ax-image-editor-view .ax-crop-save{position:absolute;top:0;right:0;margin:1rem}\n"], dependencies: [{ kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
572
565
  }
573
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXImageEditorViewComponent, decorators: [{
566
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXImageEditorViewComponent, decorators: [{
574
567
  type: Component,
575
- args: [{ selector: 'ax-image-editor-view', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: false, template: "<canvas\n tabindex=\"1\"\n (mousedown)=\"mouseDownHandler($event)\"\n (mouseup)=\"mouseUpHandler()\"\n (mousemove)=\"mouseMoveHandler($event)\"\n (touchstart)=\"touchStartHandler($event)\"\n (touchend)=\"touchEndHandler()\"\n (touchmove)=\"touchMoveHandler($event)\"\n class=\"ax-canvas-element\"\n #canvasElem\n></canvas>\n<ax-button\n (click)=\"cropButtonHandler()\"\n [style]=\"{ display: service.cropState().state ? 'block' : 'none' }\"\n class=\"ax-crop-save ax-sm\"\n text=\"Crop\"\n></ax-button>\n", styles: ["ax-image-editor-view{position:relative;display:flex;justify-content:center;align-items:center;background-color:#fff;width:100%}ax-image-editor-view .ax-canvas-element{cursor:crosshair}ax-image-editor-view .ax-crop-save{position:absolute;top:0;right:0;margin:1rem}\n"] }]
568
+ args: [{ selector: 'ax-image-editor-view', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [AXButtonComponent], template: "<canvas\n tabindex=\"1\"\n (mousedown)=\"mouseDownHandler($event)\"\n (mouseup)=\"mouseUpHandler()\"\n (mousemove)=\"mouseMoveHandler($event)\"\n (touchstart)=\"touchStartHandler($event)\"\n (touchend)=\"touchEndHandler()\"\n (touchmove)=\"touchMoveHandler($event)\"\n class=\"ax-canvas-element\"\n #canvasElem\n></canvas>\n<ax-button\n (click)=\"cropButtonHandler()\"\n [style]=\"{ display: service.cropState().state ? 'block' : 'none' }\"\n class=\"ax-crop-save ax-sm\"\n text=\"Crop\"\n></ax-button>\n", styles: ["ax-image-editor-view{position:relative;display:flex;justify-content:center;align-items:center;background-color:#fff;width:100%}ax-image-editor-view .ax-canvas-element{cursor:crosshair}ax-image-editor-view .ax-crop-save{position:absolute;top:0;right:0;margin:1rem}\n"] }]
576
569
  }], ctorParameters: () => [], propDecorators: { __hostStyle: [{
577
570
  type: HostBinding,
578
571
  args: ['style']
@@ -598,12 +591,8 @@ const MODULES = [
598
591
  AXTooltipModule,
599
592
  ];
600
593
  class AXImageEditorModule {
601
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXImageEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
602
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.3", ngImport: i0, type: AXImageEditorModule, declarations: [AXImageEditorColorPickerComponent,
603
- AXImageEditorPenModeChangerComponent,
604
- AXImageEditorViewComponent,
605
- AXImageEditorContainerComponent,
606
- AXImageEditorCropComponent], imports: [AXButtonModule,
594
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXImageEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
595
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.7", ngImport: i0, type: AXImageEditorModule, imports: [AXButtonModule,
607
596
  FormsModule,
608
597
  AXRangeSliderModule,
609
598
  AXSelectBoxModule,
@@ -612,18 +601,21 @@ class AXImageEditorModule {
612
601
  AXDecoratorModule,
613
602
  AXLoadingModule,
614
603
  AXDialogModule,
615
- AXTooltipModule], exports: [AXImageEditorColorPickerComponent,
604
+ AXTooltipModule, AXImageEditorColorPickerComponent,
605
+ AXImageEditorPenModeChangerComponent,
606
+ AXImageEditorViewComponent,
607
+ AXImageEditorContainerComponent,
608
+ AXImageEditorCropComponent], exports: [AXImageEditorColorPickerComponent,
616
609
  AXImageEditorPenModeChangerComponent,
617
610
  AXImageEditorViewComponent,
618
611
  AXImageEditorContainerComponent,
619
612
  AXImageEditorCropComponent] }); }
620
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXImageEditorModule, imports: [MODULES] }); }
613
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXImageEditorModule, imports: [MODULES, COMPONENT] }); }
621
614
  }
622
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXImageEditorModule, decorators: [{
615
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: AXImageEditorModule, decorators: [{
623
616
  type: NgModule,
624
617
  args: [{
625
- declarations: [...COMPONENT],
626
- imports: [...MODULES],
618
+ imports: [...MODULES, ...COMPONENT],
627
619
  exports: [...COMPONENT],
628
620
  providers: [],
629
621
  }]