@acorex/components 22.1.7 → 22.2.0-next.0

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 (324) hide show
  1. package/emoji/README.md +3 -0
  2. package/emojipicker/README.md +3 -0
  3. package/fesm2022/acorex-components-accordion.mjs +12 -12
  4. package/fesm2022/acorex-components-accordion.mjs.map +1 -1
  5. package/fesm2022/acorex-components-action-sheet.mjs +15 -14
  6. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  7. package/fesm2022/acorex-components-alert.mjs +7 -7
  8. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  9. package/fesm2022/acorex-components-aspect-ratio.mjs +3 -3
  10. package/fesm2022/acorex-components-aspect-ratio.mjs.map +1 -1
  11. package/fesm2022/acorex-components-audio-wave.mjs +32 -11
  12. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  13. package/fesm2022/acorex-components-autocomplete.mjs +9 -8
  14. package/fesm2022/acorex-components-autocomplete.mjs.map +1 -1
  15. package/fesm2022/acorex-components-avatar.mjs +10 -10
  16. package/fesm2022/acorex-components-avatar.mjs.map +1 -1
  17. package/fesm2022/acorex-components-badge.mjs +7 -7
  18. package/fesm2022/acorex-components-badge.mjs.map +1 -1
  19. package/fesm2022/acorex-components-bottom-navigation.mjs +10 -10
  20. package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
  21. package/fesm2022/acorex-components-breadcrumbs.mjs +10 -10
  22. package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
  23. package/fesm2022/acorex-components-bubble.mjs +71 -0
  24. package/fesm2022/acorex-components-bubble.mjs.map +1 -0
  25. package/fesm2022/acorex-components-button-group.mjs +22 -15
  26. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  27. package/fesm2022/acorex-components-button.mjs +366 -56
  28. package/fesm2022/acorex-components-button.mjs.map +1 -1
  29. package/fesm2022/acorex-components-calendar.mjs +40 -37
  30. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  31. package/fesm2022/acorex-components-check-box.mjs +7 -7
  32. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  33. package/fesm2022/acorex-components-chips.mjs +7 -7
  34. package/fesm2022/acorex-components-chips.mjs.map +1 -1
  35. package/fesm2022/acorex-components-circular-progress.mjs +7 -7
  36. package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
  37. package/fesm2022/acorex-components-code-editor.mjs +44 -19
  38. package/fesm2022/acorex-components-code-editor.mjs.map +1 -1
  39. package/fesm2022/acorex-components-color-box.mjs +7 -7
  40. package/fesm2022/acorex-components-color-box.mjs.map +1 -1
  41. package/fesm2022/acorex-components-color-palette.mjs +28 -28
  42. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  43. package/fesm2022/acorex-components-combo-box.mjs +188 -31
  44. package/fesm2022/acorex-components-combo-box.mjs.map +1 -1
  45. package/fesm2022/acorex-components-command.mjs +11 -7
  46. package/fesm2022/acorex-components-command.mjs.map +1 -1
  47. package/fesm2022/acorex-components-comment.mjs +28 -28
  48. package/fesm2022/acorex-components-comment.mjs.map +1 -1
  49. package/fesm2022/acorex-components-conversation-acorex-components-conversation-C1Lf9tAe.mjs +19538 -0
  50. package/fesm2022/acorex-components-conversation-acorex-components-conversation-C1Lf9tAe.mjs.map +1 -0
  51. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-F5fLD_SK.mjs +50 -0
  52. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-F5fLD_SK.mjs.map +1 -0
  53. package/fesm2022/acorex-components-conversation-emoji-categories-C7Gm95V0.mjs.map +1 -1
  54. package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-Bk3ixvt2.mjs +87 -0
  55. package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-Bk3ixvt2.mjs.map +1 -0
  56. package/fesm2022/{acorex-components-conversation-picker-rename-file-dialog.component-DuRLMEa3.mjs → acorex-components-conversation-picker-rename-file-dialog.component-DyOC1WEb.mjs} +5 -5
  57. package/fesm2022/{acorex-components-conversation-picker-rename-file-dialog.component-DuRLMEa3.mjs.map → acorex-components-conversation-picker-rename-file-dialog.component-DyOC1WEb.mjs.map} +1 -1
  58. package/fesm2022/acorex-components-conversation.mjs +1 -1
  59. package/fesm2022/acorex-components-cron-job.mjs +47 -47
  60. package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
  61. package/fesm2022/acorex-components-data-list.mjs +3 -3
  62. package/fesm2022/acorex-components-data-list.mjs.map +1 -1
  63. package/fesm2022/acorex-components-data-pager.mjs +182 -184
  64. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  65. package/fesm2022/acorex-components-data-table.mjs +809 -168
  66. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  67. package/fesm2022/acorex-components-datetime-box.mjs +7 -7
  68. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  69. package/fesm2022/acorex-components-datetime-input.mjs +7 -7
  70. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
  71. package/fesm2022/acorex-components-datetime-picker.mjs +8 -8
  72. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  73. package/fesm2022/acorex-components-decorators.mjs +59 -117
  74. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  75. package/fesm2022/acorex-components-dialog.mjs +11 -11
  76. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  77. package/fesm2022/acorex-components-drawer.mjs +11 -11
  78. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  79. package/fesm2022/acorex-components-dropdown-button.mjs +10 -9
  80. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  81. package/fesm2022/acorex-components-dropdown.mjs +19 -14
  82. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  83. package/fesm2022/acorex-components-editor.mjs +15 -14
  84. package/fesm2022/acorex-components-editor.mjs.map +1 -1
  85. package/fesm2022/acorex-components-emoji.mjs +74 -0
  86. package/fesm2022/acorex-components-emoji.mjs.map +1 -0
  87. package/fesm2022/acorex-components-emojipicker.mjs +425 -0
  88. package/fesm2022/acorex-components-emojipicker.mjs.map +1 -0
  89. package/fesm2022/acorex-components-fab.mjs +6 -6
  90. package/fesm2022/acorex-components-fab.mjs.map +1 -1
  91. package/fesm2022/acorex-components-file-viewer.mjs +250 -133
  92. package/fesm2022/acorex-components-file-viewer.mjs.map +1 -1
  93. package/fesm2022/acorex-components-form.mjs +17 -17
  94. package/fesm2022/acorex-components-form.mjs.map +1 -1
  95. package/fesm2022/acorex-components-grid-layout-builder.mjs +10 -10
  96. package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
  97. package/fesm2022/acorex-components-highlight.mjs +80 -0
  98. package/fesm2022/acorex-components-highlight.mjs.map +1 -0
  99. package/fesm2022/acorex-components-image-editor.mjs +217 -79
  100. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  101. package/fesm2022/acorex-components-image.mjs +7 -7
  102. package/fesm2022/acorex-components-image.mjs.map +1 -1
  103. package/fesm2022/acorex-components-inline-reaction.mjs +111 -0
  104. package/fesm2022/acorex-components-inline-reaction.mjs.map +1 -0
  105. package/fesm2022/acorex-components-json-viewer.mjs +7 -7
  106. package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
  107. package/fesm2022/acorex-components-kanban.mjs +3 -3
  108. package/fesm2022/acorex-components-kanban.mjs.map +1 -1
  109. package/fesm2022/acorex-components-kbd.mjs +6 -6
  110. package/fesm2022/acorex-components-kbd.mjs.map +1 -1
  111. package/fesm2022/acorex-components-label.mjs +7 -7
  112. package/fesm2022/acorex-components-label.mjs.map +1 -1
  113. package/fesm2022/acorex-components-list.mjs +28 -9
  114. package/fesm2022/acorex-components-list.mjs.map +1 -1
  115. package/fesm2022/acorex-components-loading-dialog.mjs +10 -10
  116. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  117. package/fesm2022/acorex-components-loading.mjs +16 -16
  118. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  119. package/fesm2022/acorex-components-lookup.mjs +919 -169
  120. package/fesm2022/acorex-components-lookup.mjs.map +1 -1
  121. package/fesm2022/acorex-components-map.mjs +20 -13
  122. package/fesm2022/acorex-components-map.mjs.map +1 -1
  123. package/fesm2022/acorex-components-media-viewer.mjs +215 -218
  124. package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
  125. package/fesm2022/acorex-components-menu.mjs +146 -45
  126. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  127. package/fesm2022/acorex-components-message-status.mjs +71 -0
  128. package/fesm2022/acorex-components-message-status.mjs.map +1 -0
  129. package/fesm2022/acorex-components-message-time.mjs +36 -0
  130. package/fesm2022/acorex-components-message-time.mjs.map +1 -0
  131. package/fesm2022/acorex-components-message.mjs +120 -0
  132. package/fesm2022/acorex-components-message.mjs.map +1 -0
  133. package/fesm2022/acorex-components-navbar.mjs +7 -7
  134. package/fesm2022/acorex-components-navbar.mjs.map +1 -1
  135. package/fesm2022/acorex-components-notification.mjs +13 -14
  136. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  137. package/fesm2022/acorex-components-number-box.mjs +17 -10
  138. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  139. package/fesm2022/acorex-components-otp.mjs +7 -7
  140. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  141. package/fesm2022/acorex-components-page.mjs +10 -10
  142. package/fesm2022/acorex-components-page.mjs.map +1 -1
  143. package/fesm2022/acorex-components-paint.mjs +25 -25
  144. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  145. package/fesm2022/acorex-components-password-box.mjs +10 -10
  146. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  147. package/fesm2022/acorex-components-pdf-reader.mjs +7 -7
  148. package/fesm2022/acorex-components-pdf-reader.mjs.map +1 -1
  149. package/fesm2022/acorex-components-phone-box.mjs +7 -7
  150. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  151. package/fesm2022/acorex-components-picker.mjs +13 -13
  152. package/fesm2022/acorex-components-picker.mjs.map +1 -1
  153. package/fesm2022/acorex-components-popover.mjs +61 -13
  154. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  155. package/fesm2022/acorex-components-popup.mjs +631 -167
  156. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  157. package/fesm2022/acorex-components-progress-bar.mjs +7 -7
  158. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  159. package/fesm2022/acorex-components-qrcode.mjs +7 -7
  160. package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
  161. package/fesm2022/acorex-components-radio.mjs +7 -7
  162. package/fesm2022/acorex-components-radio.mjs.map +1 -1
  163. package/fesm2022/acorex-components-rail-navigation.mjs +13 -13
  164. package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
  165. package/fesm2022/acorex-components-range-slider.mjs +7 -7
  166. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  167. package/fesm2022/acorex-components-rate-picker.mjs +7 -7
  168. package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
  169. package/fesm2022/acorex-components-reaction.mjs +144 -0
  170. package/fesm2022/acorex-components-reaction.mjs.map +1 -0
  171. package/fesm2022/acorex-components-rest-api-generator.mjs +23 -23
  172. package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
  173. package/fesm2022/acorex-components-result.mjs +7 -7
  174. package/fesm2022/acorex-components-result.mjs.map +1 -1
  175. package/fesm2022/acorex-components-routing-progress.mjs +7 -7
  176. package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
  177. package/fesm2022/acorex-components-rrule.mjs +9 -9
  178. package/fesm2022/acorex-components-rrule.mjs.map +1 -1
  179. package/fesm2022/acorex-components-scheduler-picker.mjs +56 -56
  180. package/fesm2022/acorex-components-scheduler-picker.mjs.map +1 -1
  181. package/fesm2022/acorex-components-scheduler.mjs +35 -35
  182. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  183. package/fesm2022/acorex-components-search-box.mjs +7 -7
  184. package/fesm2022/acorex-components-search-box.mjs.map +1 -1
  185. package/fesm2022/acorex-components-select-box.mjs +9 -8
  186. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  187. package/fesm2022/acorex-components-selection-list.mjs +7 -8
  188. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  189. package/fesm2022/acorex-components-side-menu.mjs +55 -42
  190. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  191. package/fesm2022/acorex-components-sidebar.mjs +28 -28
  192. package/fesm2022/acorex-components-sidebar.mjs.map +1 -1
  193. package/fesm2022/acorex-components-skeleton.mjs +7 -7
  194. package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
  195. package/fesm2022/acorex-components-slider.mjs +7 -7
  196. package/fesm2022/acorex-components-slider.mjs.map +1 -1
  197. package/fesm2022/acorex-components-sliding-item.mjs +13 -13
  198. package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
  199. package/fesm2022/acorex-components-step-wizard.mjs +16 -18
  200. package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
  201. package/fesm2022/acorex-components-switch.mjs +10 -10
  202. package/fesm2022/acorex-components-switch.mjs.map +1 -1
  203. package/fesm2022/acorex-components-tabs.mjs +393 -76
  204. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  205. package/fesm2022/acorex-components-tag-box.mjs +7 -7
  206. package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
  207. package/fesm2022/acorex-components-tag.mjs +7 -7
  208. package/fesm2022/acorex-components-tag.mjs.map +1 -1
  209. package/fesm2022/acorex-components-text-area.mjs +7 -7
  210. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  211. package/fesm2022/acorex-components-text-box.mjs +7 -7
  212. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  213. package/fesm2022/acorex-components-time-duration.mjs +7 -7
  214. package/fesm2022/acorex-components-time-duration.mjs.map +1 -1
  215. package/fesm2022/acorex-components-time-line.mjs +10 -10
  216. package/fesm2022/acorex-components-time-line.mjs.map +1 -1
  217. package/fesm2022/acorex-components-toast.mjs +14 -14
  218. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  219. package/fesm2022/acorex-components-toolbar.mjs +7 -7
  220. package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
  221. package/fesm2022/acorex-components-tooltip.mjs +10 -10
  222. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  223. package/fesm2022/acorex-components-tree-view.mjs +54 -14
  224. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  225. package/fesm2022/acorex-components-uploader.mjs +13 -13
  226. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  227. package/fesm2022/acorex-components-video-player.mjs +7 -7
  228. package/fesm2022/acorex-components-video-player.mjs.map +1 -1
  229. package/fesm2022/acorex-components-wysiwyg.mjs +691 -295
  230. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  231. package/fesm2022/acorex-components.mjs.map +1 -1
  232. package/highlight/README.md +13 -0
  233. package/inline-reaction/README.md +3 -0
  234. package/lookup/README.md +1 -1
  235. package/message/README.md +3 -0
  236. package/message-status/README.md +3 -0
  237. package/message-time/README.md +3 -0
  238. package/package.json +48 -13
  239. package/reaction/README.md +3 -0
  240. package/types/acorex-components-action-sheet.d.ts +1 -1
  241. package/types/acorex-components-audio-wave.d.ts +8 -0
  242. package/types/acorex-components-bubble.d.ts +31 -0
  243. package/types/acorex-components-button-group.d.ts +4 -0
  244. package/types/acorex-components-button.d.ts +75 -10
  245. package/types/acorex-components-calendar.d.ts +13 -4
  246. package/types/acorex-components-check-box.d.ts +1 -1
  247. package/types/acorex-components-code-editor.d.ts +4 -1
  248. package/types/acorex-components-color-box.d.ts +1 -1
  249. package/types/acorex-components-color-palette.d.ts +2 -2
  250. package/types/acorex-components-combo-box.d.ts +21 -2
  251. package/types/acorex-components-command.d.ts +3 -1
  252. package/types/acorex-components-conversation.d.ts +550 -242
  253. package/types/acorex-components-cron-job.d.ts +6 -6
  254. package/types/acorex-components-data-pager.d.ts +27 -9
  255. package/types/acorex-components-data-table.d.ts +226 -21
  256. package/types/acorex-components-datetime-box.d.ts +1 -1
  257. package/types/acorex-components-datetime-picker.d.ts +1 -1
  258. package/types/acorex-components-decorators.d.ts +15 -33
  259. package/types/acorex-components-dialog.d.ts +1 -1
  260. package/types/acorex-components-dropdown-button.d.ts +2 -1
  261. package/types/acorex-components-dropdown.d.ts +6 -1
  262. package/types/acorex-components-editor.d.ts +1 -1
  263. package/types/acorex-components-emoji.d.ts +42 -0
  264. package/types/acorex-components-emojipicker.d.ts +146 -0
  265. package/types/acorex-components-file-viewer.d.ts +14 -2
  266. package/types/acorex-components-highlight.d.ts +31 -0
  267. package/types/acorex-components-image-editor.d.ts +19 -2
  268. package/types/acorex-components-inline-reaction.d.ts +52 -0
  269. package/types/acorex-components-list.d.ts +12 -0
  270. package/types/acorex-components-loading-dialog.d.ts +1 -1
  271. package/types/acorex-components-loading.d.ts +1 -1
  272. package/types/acorex-components-lookup.d.ts +227 -79
  273. package/types/acorex-components-map.d.ts +7 -2
  274. package/types/acorex-components-media-viewer.d.ts +4 -3
  275. package/types/acorex-components-menu.d.ts +17 -5
  276. package/types/acorex-components-message-status.d.ts +23 -0
  277. package/types/acorex-components-message-time.d.ts +19 -0
  278. package/types/acorex-components-message.d.ts +59 -0
  279. package/types/acorex-components-notification.d.ts +1 -1
  280. package/types/acorex-components-number-box.d.ts +2 -1
  281. package/types/acorex-components-otp.d.ts +1 -1
  282. package/types/acorex-components-page.d.ts +2 -2
  283. package/types/acorex-components-paint.d.ts +2 -2
  284. package/types/acorex-components-password-box.d.ts +1 -1
  285. package/types/acorex-components-phone-box.d.ts +1 -1
  286. package/types/acorex-components-popover.d.ts +13 -1
  287. package/types/acorex-components-popup.d.ts +183 -50
  288. package/types/acorex-components-rail-navigation.d.ts +1 -1
  289. package/types/acorex-components-range-slider.d.ts +1 -1
  290. package/types/acorex-components-reaction.d.ts +85 -0
  291. package/types/acorex-components-rest-api-generator.d.ts +1 -1
  292. package/types/acorex-components-rrule.d.ts +1 -1
  293. package/types/acorex-components-scheduler-picker.d.ts +1 -1
  294. package/types/acorex-components-scheduler.d.ts +1 -1
  295. package/types/acorex-components-search-box.d.ts +1 -1
  296. package/types/acorex-components-selection-list.d.ts +1 -1
  297. package/types/acorex-components-side-menu.d.ts +6 -8
  298. package/types/acorex-components-slider.d.ts +1 -1
  299. package/types/acorex-components-step-wizard.d.ts +4 -4
  300. package/types/acorex-components-switch.d.ts +1 -1
  301. package/types/acorex-components-tabs.d.ts +109 -19
  302. package/types/acorex-components-tag-box.d.ts +2 -2
  303. package/types/acorex-components-text-area.d.ts +1 -1
  304. package/types/acorex-components-text-box.d.ts +1 -1
  305. package/types/acorex-components-time-duration.d.ts +1 -1
  306. package/types/acorex-components-toast.d.ts +1 -1
  307. package/types/acorex-components-tree-view.d.ts +23 -1
  308. package/types/acorex-components-wysiwyg.d.ts +426 -77
  309. package/fesm2022/acorex-components-conversation-acorex-components-conversation-EiqMwr9v.mjs +0 -16862
  310. package/fesm2022/acorex-components-conversation-acorex-components-conversation-EiqMwr9v.mjs.map +0 -1
  311. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-D4ca9Mvt.mjs +0 -51
  312. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-D4ca9Mvt.mjs.map +0 -1
  313. package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-QVs1XWYf.mjs +0 -85
  314. package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-QVs1XWYf.mjs.map +0 -1
  315. package/fesm2022/acorex-components-conversation-open-composer-picker-for-files-C7BnTUw2.mjs +0 -210
  316. package/fesm2022/acorex-components-conversation-open-composer-picker-for-files-C7BnTUw2.mjs.map +0 -1
  317. package/fesm2022/acorex-components-flow-chart.mjs +0 -735
  318. package/fesm2022/acorex-components-flow-chart.mjs.map +0 -1
  319. package/fesm2022/acorex-components-query-builder.mjs +0 -267
  320. package/fesm2022/acorex-components-query-builder.mjs.map +0 -1
  321. package/flow-chart/README.md +0 -3
  322. package/query-builder/README.md +0 -3
  323. package/types/acorex-components-flow-chart.d.ts +0 -187
  324. package/types/acorex-components-query-builder.d.ts +0 -52
@@ -1,33 +1,97 @@
1
- import { AXComponent, MXBaseComponent, AXClosableComponent, AXComponentClosedPromise, NXComponent, AXCommonModule } from '@acorex/cdk/common';
2
1
  import * as i0 from '@angular/core';
3
- import { ViewEncapsulation, Component, input, Directive, inject, NgZone, DestroyRef, viewChild, signal, TemplateRef, ViewContainerRef, HostListener, ViewChild, ComponentRef, Injectable, NgModule } from '@angular/core';
2
+ import { input, ChangeDetectionStrategy, Component, computed, Directive, inject, NgZone, viewChild, viewChildren, effect, signal, afterNextRender, TemplateRef, ViewContainerRef, HostListener, ViewChild, ViewEncapsulation, Injector, runInInjectionContext, ComponentRef, Injectable, ElementRef, afterRenderEffect, contentChild, NgModule } from '@angular/core';
3
+ import { MXBaseComponent, AXClosableComponent, AXComponent, AXComponentClosedPromise, NXComponent, AXCommonModule } from '@acorex/cdk/common';
4
+ import { AXDragHandleDirective, AXDragDirective, moveItemInArray, AX_DRAG_PARENT, AXDropListDirective } from '@acorex/cdk/drag-drop';
5
+ import { AXChromeButtonComponent, AXDecoratorCloseButtonComponent, AXButtonModule } from '@acorex/components/button';
6
+ import { DOCUMENT, NgTemplateOutlet, AsyncPipe, CommonModule } from '@angular/common';
4
7
  import { AXOverlayService } from '@acorex/cdk/overlay';
5
8
  import { Subject } from 'rxjs';
6
9
  import { AXPlatform } from '@acorex/core/platform';
7
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
8
- import { Router, NavigationStart } from '@angular/router';
9
- import { filter } from 'rxjs/operators';
10
+ import { AXResizableDirective } from '@acorex/cdk/resizable';
10
11
  import { AXFocusTrapDirective } from '@acorex/cdk/focus-trap';
11
- import { AXButtonComponent } from '@acorex/components/button';
12
- import { AXDecoratorCloseButtonComponent, AXDecoratorIconComponent, AXDecoratorModule } from '@acorex/components/decorators';
13
12
  import { AXLoadingService } from '@acorex/components/loading';
14
- import { AXComponentService } from '@acorex/core/components';
13
+ import { AXSkeletonComponent } from '@acorex/components/skeleton';
15
14
  import { AXTranslatorPipe, AXTranslationModule } from '@acorex/core/translation';
16
- import { AsyncPipe, CommonModule } from '@angular/common';
15
+ import { AXDecoratorModule } from '@acorex/components/decorators';
17
16
 
18
- class AXPopupFooterComponent {
19
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPopupFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
20
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: AXPopupFooterComponent, isStandalone: true, selector: "ax-popup-footer", providers: [{ provide: AXComponent, useExisting: AXPopupFooterComponent }], ngImport: i0, template: "<ng-content select=\"ax-prefix\"></ng-content>\n<ng-content select=\"ax-suffix\"></ng-content>\n<ng-content></ng-content>\n", styles: ["@layer components{ax-popup-footer{display:flex;width:100%;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 2)}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], encapsulation: i0.ViewEncapsulation.None }); }
17
+ /**
18
+ * Windows-style window caption glyphs: minimize, maximize, restore, close.
19
+ */
20
+ class AXPopupCaptionIconComponent {
21
+ constructor() {
22
+ this.name = input.required(/* @ts-ignore */
23
+ ...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
24
+ }
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupCaptionIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
26
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: AXPopupCaptionIconComponent, isStandalone: true, selector: "ax-popup-caption-icon", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null } }, host: { attributes: { "aria-hidden": "true" }, properties: { "attr.data-name": "name()" }, classAttribute: "ax-popup-caption-icon" }, ngImport: i0, template: `
27
+ <svg viewBox="0 0 10 10" focusable="false">
28
+ @switch (name()) {
29
+ @case ('minimize') {
30
+ <path d="M1.6 5h6.8" />
31
+ }
32
+ @case ('maximize') {
33
+ <rect x="1.4" y="1.4" width="7.2" height="7.2" rx="1" />
34
+ }
35
+ @case ('restore') {
36
+ <path d="M3.15 2.85V1.4h5.45v5.45H7.15" />
37
+ <rect x="1.4" y="3.15" width="5.45" height="5.45" rx="0.7" />
38
+ }
39
+ @case ('close') {
40
+ <path d="M2.05 2.05l5.9 5.9M7.95 2.05l-5.9 5.9" />
41
+ }
42
+ }
43
+ </svg>
44
+ `, isInline: true, styles: [":host{display:inline-flex;width:12px;height:12px}svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.15;stroke-linecap:square;stroke-linejoin:miter}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
21
45
  }
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPopupFooterComponent, decorators: [{
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupCaptionIconComponent, decorators: [{
23
47
  type: Component,
24
- args: [{ selector: 'ax-popup-footer', encapsulation: ViewEncapsulation.None, providers: [{ provide: AXComponent, useExisting: AXPopupFooterComponent }], template: "<ng-content select=\"ax-prefix\"></ng-content>\n<ng-content select=\"ax-suffix\"></ng-content>\n<ng-content></ng-content>\n", styles: ["@layer components{ax-popup-footer{display:flex;width:100%;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 2)}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
25
- }] });
48
+ args: [{ selector: 'ax-popup-caption-icon', changeDetection: ChangeDetectionStrategy.OnPush, host: {
49
+ class: 'ax-popup-caption-icon',
50
+ '[attr.data-name]': 'name()',
51
+ 'aria-hidden': 'true',
52
+ }, template: `
53
+ <svg viewBox="0 0 10 10" focusable="false">
54
+ @switch (name()) {
55
+ @case ('minimize') {
56
+ <path d="M1.6 5h6.8" />
57
+ }
58
+ @case ('maximize') {
59
+ <rect x="1.4" y="1.4" width="7.2" height="7.2" rx="1" />
60
+ }
61
+ @case ('restore') {
62
+ <path d="M3.15 2.85V1.4h5.45v5.45H7.15" />
63
+ <rect x="1.4" y="3.15" width="5.45" height="5.45" rx="0.7" />
64
+ }
65
+ @case ('close') {
66
+ <path d="M2.05 2.05l5.9 5.9M7.95 2.05l-5.9 5.9" />
67
+ }
68
+ }
69
+ </svg>
70
+ `, styles: [":host{display:inline-flex;width:12px;height:12px}svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.15;stroke-linecap:square;stroke-linejoin:miter}\n"] }]
71
+ }], propDecorators: { name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: true }] }] } });
26
72
 
73
+ const AX_POPUP_DEFAULT_RESIZE_HANDLES = [
74
+ 'top',
75
+ 'bottom',
76
+ 'start',
77
+ 'end',
78
+ 'top-start',
79
+ 'top-end',
80
+ 'bottom-start',
81
+ 'bottom-end',
82
+ ];
27
83
  class AXPopupComponentBase {
28
84
  constructor() {
29
85
  this.__popup__ = input(/* @ts-ignore */
30
86
  ...(ngDevMode ? [undefined, { debugName: "__popup__" }] : /* istanbul ignore next */ []));
87
+ this.popupState = computed(() => this.__popup__()?.state() ?? 'normal', /* @ts-ignore */
88
+ ...(ngDevMode ? [{ debugName: "popupState" }] : /* istanbul ignore next */ []));
89
+ this.isMinimized = computed(() => this.__popup__()?.isMinimized() ?? false, /* @ts-ignore */
90
+ ...(ngDevMode ? [{ debugName: "isMinimized" }] : /* istanbul ignore next */ []));
91
+ this.isMaximized = computed(() => this.__popup__()?.isMaximized() ?? false, /* @ts-ignore */
92
+ ...(ngDevMode ? [{ debugName: "isMaximized" }] : /* istanbul ignore next */ []));
93
+ this.popupTitle = computed(() => this.__popup__()?.title() ?? '', /* @ts-ignore */
94
+ ...(ngDevMode ? [{ debugName: "popupTitle" }] : /* istanbul ignore next */ []));
31
95
  }
32
96
  close(data = null) {
33
97
  this.__popup__()?.close(data);
@@ -47,10 +111,10 @@ class AXPopupComponentBase {
47
111
  bringToFront() {
48
112
  this.__popup__()?.bringToFront();
49
113
  }
50
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPopupComponentBase, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
51
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.8", type: AXPopupComponentBase, isStandalone: true, inputs: { __popup__: { classPropertyName: "__popup__", publicName: "__popup__", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
114
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupComponentBase, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
115
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.6", type: AXPopupComponentBase, isStandalone: true, inputs: { __popup__: { classPropertyName: "__popup__", publicName: "__popup__", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
52
116
  }
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPopupComponentBase, decorators: [{
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupComponentBase, decorators: [{
54
118
  type: Directive
55
119
  }], propDecorators: { __popup__: [{ type: i0.Input, args: [{ isSignal: true, alias: "__popup__", required: false }] }] } });
56
120
  /** Resolves whether the close header button is shown. `buttons.close` wins over `closeButton`. */
@@ -72,6 +136,38 @@ function resolvePopupMinimize(config) {
72
136
  return {
73
137
  enable: config?.buttons?.minimize?.enable ?? false,
74
138
  position: config?.buttons?.minimize?.position ?? 'bottom-right',
139
+ dock: config?.buttons?.minimize?.dock ?? 'default',
140
+ };
141
+ }
142
+ /** Resolves resize config. Disabled for `size: 'full'` and when `resizable` is false/omitted. */
143
+ function resolvePopupResizable(config) {
144
+ const defaults = {
145
+ enable: false,
146
+ handles: AX_POPUP_DEFAULT_RESIZE_HANDLES,
147
+ minWidth: 240,
148
+ minHeight: 160,
149
+ maxWidth: null,
150
+ maxHeight: null,
151
+ lockAspectRatio: false,
152
+ dblClickAction: 'reset',
153
+ };
154
+ if (!config || config.size === 'full') {
155
+ return defaults;
156
+ }
157
+ const raw = config.resizable;
158
+ if (!raw) {
159
+ return defaults;
160
+ }
161
+ const options = raw === true ? {} : raw;
162
+ return {
163
+ enable: true,
164
+ handles: options.handles ?? AX_POPUP_DEFAULT_RESIZE_HANDLES,
165
+ minWidth: options.minWidth ?? defaults.minWidth,
166
+ minHeight: options.minHeight ?? defaults.minHeight,
167
+ maxWidth: options.maxWidth ?? null,
168
+ maxHeight: options.maxHeight ?? null,
169
+ lockAspectRatio: options.lockAspectRatio ?? false,
170
+ dblClickAction: options.dblClickAction ?? 'reset',
75
171
  };
76
172
  }
77
173
 
@@ -81,16 +177,28 @@ function resolvePopupMinimize(config) {
81
177
  * @category Components
82
178
  */
83
179
  class AXPopupComponent extends MXBaseComponent {
180
+ #syncDragHandles;
84
181
  constructor() {
85
- super(...arguments);
182
+ super();
86
183
  this._zone = inject(NgZone);
87
184
  this.loadingService = inject(AXLoadingService);
88
185
  this._platform = inject(AXPlatform);
89
- this.componentService = inject(AXComponentService);
90
- this._router = inject(Router, { optional: true });
91
- this._destroyRef = inject(DestroyRef);
186
+ this.document = inject(DOCUMENT);
92
187
  this.popupEl = viewChild('popupEl', /* @ts-ignore */
93
188
  ...(ngDevMode ? [{ debugName: "popupEl" }] : /* istanbul ignore next */ []));
189
+ this.projectedHandles = viewChildren(AXDragHandleDirective, /* @ts-ignore */
190
+ ...(ngDevMode ? [{ debugName: "projectedHandles" }] : /* istanbul ignore next */ []));
191
+ this.#syncDragHandles = effect(() => {
192
+ const handles = this.projectedHandles();
193
+ const drag = this.dragDir;
194
+ if (!drag) {
195
+ return;
196
+ }
197
+ for (const handle of handles) {
198
+ drag.registerHandle(handle);
199
+ }
200
+ }, /* @ts-ignore */
201
+ ...(ngDevMode ? [{ debugName: "#syncDragHandles" }] : /* istanbul ignore next */ []));
94
202
  // Inputs from overlay service
95
203
  this.__content__ = input(/* @ts-ignore */
96
204
  ...(ngDevMode ? [undefined, { debugName: "__content__" }] : /* istanbul ignore next */ []));
@@ -106,20 +214,53 @@ class AXPopupComponent extends MXBaseComponent {
106
214
  */
107
215
  this.isLoading = true;
108
216
  /** @ignore */
217
+ this._delayTimer = null;
218
+ /** @ignore */
109
219
  this._componentRef = null;
220
+ this.showSkeleton = signal(false, /* @ts-ignore */
221
+ ...(ngDevMode ? [{ debugName: "showSkeleton" }] : /* istanbul ignore next */ []));
222
+ this.skeletonTemplate = () => this.__config__()?.skeletonTemplate ?? null;
110
223
  /** Current title */
111
224
  this.title = signal('', /* @ts-ignore */
112
225
  ...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
113
- /** @ignore */
114
- this.isDragging = signal(false, /* @ts-ignore */
115
- ...(ngDevMode ? [{ debugName: "isDragging" }] : /* istanbul ignore next */ []));
116
- /** @ignore */
117
- this.dragOffset = signal({ x: 0, y: 0 }, /* @ts-ignore */
118
- ...(ngDevMode ? [{ debugName: "dragOffset" }] : /* istanbul ignore next */ []));
119
- /** @ignore */
120
- this.dragStartPos = { x: 0, y: 0 };
121
- /** @ignore */
122
- this.elementStartPos = { x: 0, y: 0 };
226
+ /** Clamps dragging to the viewport (`document.documentElement`). */
227
+ this.dragBoundary = signal(undefined, /* @ts-ignore */
228
+ ...(ngDevMode ? [{ debugName: "dragBoundary" }] : /* istanbul ignore next */ []));
229
+ this.dragDisabled = computed(() => !this.__config__()?.draggable || this.popupSizeState() === 'minimize' || this.fullScreenState(), /* @ts-ignore */
230
+ ...(ngDevMode ? [{ debugName: "dragDisabled" }] : /* istanbul ignore next */ []));
231
+ this.resizeConfig = computed(() => resolvePopupResizable(this.__config__()), /* @ts-ignore */
232
+ ...(ngDevMode ? [{ debugName: "resizeConfig" }] : /* istanbul ignore next */ []));
233
+ this.resizeActive = computed(() => this.resizeConfig().enable, /* @ts-ignore */
234
+ ...(ngDevMode ? [{ debugName: "resizeActive" }] : /* istanbul ignore next */ []));
235
+ this.resizeEnabled = computed(() => this.resizeConfig().enable && this.popupSizeState() !== 'minimize' && !this.fullScreenState(), /* @ts-ignore */
236
+ ...(ngDevMode ? [{ debugName: "resizeEnabled" }] : /* istanbul ignore next */ []));
237
+ this.viewportSize = signal({ width: 0, height: 0 }, /* @ts-ignore */
238
+ ...(ngDevMode ? [{ debugName: "viewportSize" }] : /* istanbul ignore next */ []));
239
+ this.resizeMaxWidth = computed(() => {
240
+ const max = this.resizeConfig().maxWidth;
241
+ if (max != null) {
242
+ return max;
243
+ }
244
+ const viewport = this.viewportSize().width;
245
+ return viewport > 0 ? viewport : Infinity;
246
+ }, /* @ts-ignore */
247
+ ...(ngDevMode ? [{ debugName: "resizeMaxWidth" }] : /* istanbul ignore next */ []));
248
+ this.resizeMaxHeight = computed(() => {
249
+ const max = this.resizeConfig().maxHeight;
250
+ if (max != null) {
251
+ return max;
252
+ }
253
+ const viewport = this.viewportSize().height;
254
+ return viewport > 0 ? viewport : Infinity;
255
+ }, /* @ts-ignore */
256
+ ...(ngDevMode ? [{ debugName: "resizeMaxHeight" }] : /* istanbul ignore next */ []));
257
+ this.viewportResizeHandler = () => {
258
+ const win = this.document.defaultView;
259
+ if (!win) {
260
+ return;
261
+ }
262
+ this.viewportSize.set({ width: win.innerWidth, height: win.innerHeight });
263
+ };
123
264
  this.popupSizeState = signal('normal', /* @ts-ignore */
124
265
  ...(ngDevMode ? [{ debugName: "popupSizeState" }] : /* istanbul ignore next */ []));
125
266
  this.fullScreenState = signal(false, /* @ts-ignore */
@@ -128,15 +269,26 @@ class AXPopupComponent extends MXBaseComponent {
128
269
  ...(ngDevMode ? [{ debugName: "minimizeLeft" }] : /* istanbul ignore next */ []));
129
270
  this.minimizeRight = signal(null, /* @ts-ignore */
130
271
  ...(ngDevMode ? [{ debugName: "minimizeRight" }] : /* istanbul ignore next */ []));
272
+ this.minimizeSide = computed(() => resolvePopupMinimize(this.__config__()).position, /* @ts-ignore */
273
+ ...(ngDevMode ? [{ debugName: "minimizeSide" }] : /* istanbul ignore next */ []));
131
274
  this.fullscreenChangeHandler = () => {
132
- if (!document.fullscreenElement) {
133
- this.fullScreenState.set(false);
134
- this.cdr.markForCheck();
275
+ const isFullscreen = !!document.fullscreenElement;
276
+ this.fullScreenState.set(isFullscreen);
277
+ if (this.__popupRef__()?.state() !== 'minimized') {
278
+ this.__popupRef__()?._setState?.(isFullscreen ? 'maximized' : 'normal');
135
279
  }
280
+ this.cdr.markForCheck();
136
281
  };
137
282
  this.closeEnabled = () => resolvePopupCloseButton(this.__config__());
138
283
  this.maximizeEnabled = () => resolvePopupMaximizable(this.__config__());
139
284
  this.minimizeEnabled = () => resolvePopupMinimize(this.__config__()).enable;
285
+ afterNextRender(() => {
286
+ this.dragBoundary.set(this.document.documentElement);
287
+ this.viewportResizeHandler();
288
+ const win = this.document.defaultView;
289
+ win?.addEventListener('resize', this.viewportResizeHandler);
290
+ this.bindContentDragHandles();
291
+ });
140
292
  }
141
293
  /** @ignore */
142
294
  ngOnInit() {
@@ -145,39 +297,39 @@ class AXPopupComponent extends MXBaseComponent {
145
297
  if (this._platform.is('SM')) {
146
298
  if (config) {
147
299
  config.draggable = false;
300
+ config.resizable = false;
148
301
  }
149
302
  }
150
303
  this.title.set(config?.title ?? '');
151
- this._loadingId = this.loadingService.show({
152
- location: this.getHostElement(),
153
- });
154
- this._setupCloseOnNavigation();
155
304
  document.addEventListener('fullscreenchange', this.fullscreenChangeHandler);
156
- this.renderContent();
157
- }
158
- /**
159
- * Subscribes to router navigation events so the popup is closed automatically
160
- * when the user navigates to another route. Enabled by default; disable via
161
- * `closeOnNavigation: false` in the popup config.
162
- * @ignore
163
- */
164
- _setupCloseOnNavigation() {
165
- if (!this._router)
166
- return;
167
- if (this.__config__()?.closeOnNavigation === false)
168
- return;
169
- this._router.events
170
- .pipe(filter((event) => event instanceof NavigationStart), takeUntilDestroyed(this._destroyRef))
171
- .subscribe(() => {
172
- this.close();
173
- });
305
+ const delay = config?.delay ?? 0;
306
+ if (delay > 0) {
307
+ this.showSkeleton.set(true);
308
+ this.cdr.markForCheck();
309
+ this._delayTimer = setTimeout(() => {
310
+ this._zone.run(() => {
311
+ this._delayTimer = null;
312
+ this.showSkeleton.set(false);
313
+ void this.renderContent();
314
+ this.cdr.markForCheck();
315
+ });
316
+ }, delay);
317
+ }
318
+ else {
319
+ this._loadingId = this.loadingService.show({
320
+ location: this.getHostElement(),
321
+ });
322
+ this.renderContent();
323
+ }
174
324
  }
175
325
  /** @ignore */
176
326
  async renderContent() {
177
327
  const content = this.__content__();
178
328
  const config = this.__config__();
179
329
  if (!content) {
180
- this.loadingService.hide(this._loadingId);
330
+ if (this._loadingId !== undefined) {
331
+ this.loadingService.hide(this._loadingId);
332
+ }
181
333
  return;
182
334
  }
183
335
  if (content instanceof TemplateRef) {
@@ -193,7 +345,7 @@ class AXPopupComponent extends MXBaseComponent {
193
345
  this.handleContentRendered();
194
346
  }
195
347
  else if (typeof content === 'function') {
196
- const componentRef = this.componentService.createFromComponent(content);
348
+ const componentRef = this.contentContainerRef.createComponent(content);
197
349
  this._componentRef = componentRef;
198
350
  const popupRef = this.__popupRef__();
199
351
  if (popupRef) {
@@ -216,8 +368,6 @@ class AXPopupComponent extends MXBaseComponent {
216
368
  if (inputDefs && '__popup__' in inputDefs) {
217
369
  componentRef.setInput('__popup__', this.__popupRef__());
218
370
  }
219
- const hostElement = componentRef.location.nativeElement;
220
- this.contentContainerEl.nativeElement.appendChild(hostElement);
221
371
  const instance = componentRef.instance;
222
372
  if (instance.onClosed) {
223
373
  instance.onClosed.subscribe((e) => {
@@ -235,6 +385,7 @@ class AXPopupComponent extends MXBaseComponent {
235
385
  const content = body?.children[0];
236
386
  if (!content || !body) {
237
387
  this.focus();
388
+ this.bindContentDragHandles();
238
389
  return;
239
390
  }
240
391
  const popHeader = this.getHostElement().querySelector('.ax-popup-header-container');
@@ -251,11 +402,26 @@ class AXPopupComponent extends MXBaseComponent {
251
402
  popHeader.append(header);
252
403
  }
253
404
  this.focus();
405
+ this.bindContentDragHandles();
254
406
  });
255
407
  });
256
- this.loadingService.hide(this._loadingId);
408
+ if (this._loadingId !== undefined) {
409
+ this.loadingService.hide(this._loadingId);
410
+ }
257
411
  this.cdr.markForCheck();
258
412
  }
413
+ bindContentDragHandles() {
414
+ const drag = this.dragDir;
415
+ const root = this.getHostElement();
416
+ if (!drag || !root) {
417
+ return;
418
+ }
419
+ this._zone.run(() => {
420
+ root.querySelectorAll('[axDragHandle]').forEach((element) => {
421
+ drag.registerHandle(element);
422
+ });
423
+ });
424
+ }
259
425
  /** @ignore */
260
426
  onKeydownHandler() {
261
427
  const config = this.__config__();
@@ -274,11 +440,18 @@ class AXPopupComponent extends MXBaseComponent {
274
440
  }
275
441
  /** @ignore */
276
442
  ngOnDestroy() {
443
+ if (this._delayTimer !== null) {
444
+ clearTimeout(this._delayTimer);
445
+ this._delayTimer = null;
446
+ }
277
447
  document.removeEventListener('fullscreenchange', this.fullscreenChangeHandler);
448
+ this.document.defaultView?.removeEventListener('resize', this.viewportResizeHandler);
278
449
  if (this.fullScreenState() && document.fullscreenElement) {
279
450
  document.exitFullscreen().catch(() => undefined);
280
451
  }
281
- this.loadingService.hide(this._loadingId);
452
+ if (this._loadingId !== undefined) {
453
+ this.loadingService.hide(this._loadingId);
454
+ }
282
455
  if (this._componentRef) {
283
456
  this._componentRef.destroy();
284
457
  this._componentRef = null;
@@ -322,66 +495,114 @@ class AXPopupComponent extends MXBaseComponent {
322
495
  }
323
496
  }
324
497
  /**
325
- * Minimizes the popup to the bottom bar.
498
+ * Minimizes the popup. Routes through the popup ref so a registered dock can host the tab.
326
499
  */
327
500
  minimize() {
501
+ this.__popupRef__()?.minimize();
502
+ }
503
+ /**
504
+ * Maximizes the popup using the Fullscreen API.
505
+ */
506
+ maximize() {
507
+ this.__popupRef__()?.maximize();
508
+ }
509
+ /**
510
+ * Restores the popup from minimized or fullscreen state.
511
+ */
512
+ restore() {
513
+ this.__popupRef__()?.restore();
514
+ }
515
+ /**
516
+ * Applies the minimized visual. When `docked` is true the overlay is hidden by the service
517
+ * and the window stays at normal size for the next restore.
518
+ * @internal
519
+ */
520
+ enterMinimized(docked) {
328
521
  if (this.fullScreenState() && document.fullscreenElement) {
329
522
  document.exitFullscreen().catch(() => undefined);
330
523
  }
524
+ if (docked) {
525
+ this.minimizeLeft.set(null);
526
+ this.minimizeRight.set(null);
527
+ this.popupSizeState.set('normal');
528
+ this.cdr.markForCheck();
529
+ return;
530
+ }
331
531
  const el = this.popupEl()?.nativeElement;
332
532
  if (!el)
333
533
  return;
334
- this.minimizeLeft.set(null);
335
- this.minimizeRight.set(null);
534
+ const position = resolvePopupMinimize(this.__config__()).position;
336
535
  this.popupSizeState.set('minimize');
536
+ if (position === 'bottom-right') {
537
+ this.minimizeLeft.set(null);
538
+ this.minimizeRight.set('0px');
539
+ }
540
+ else {
541
+ this.minimizeRight.set(null);
542
+ this.minimizeLeft.set('0px');
543
+ }
337
544
  this.cdr.markForCheck();
338
545
  requestAnimationFrame(() => {
546
+ if (this.popupSizeState() !== 'minimize') {
547
+ return;
548
+ }
549
+ if (this.resizeActive()) {
550
+ el.style.height = '';
551
+ el.style.width = '';
552
+ }
339
553
  const width = el.offsetWidth;
340
554
  const index = this.__popupRef__()?._getStackIndex?.() ?? 0;
341
- const position = resolvePopupMinimize(this.__config__()).position;
555
+ const offset = `${index * (width + 10)}px`;
342
556
  if (position === 'bottom-right') {
343
557
  this.minimizeLeft.set(null);
344
- this.minimizeRight.set(`${index * (width + 10)}px`);
558
+ this.minimizeRight.set(offset);
345
559
  }
346
560
  else {
347
561
  this.minimizeRight.set(null);
348
- this.minimizeLeft.set(`${index * (width + 10)}px`);
562
+ this.minimizeLeft.set(offset);
349
563
  }
350
564
  this.cdr.markForCheck();
351
565
  });
352
566
  }
353
567
  /**
354
- * Maximizes the popup using the Fullscreen API.
568
+ * Restores the window from the legacy bottom bar.
569
+ * @internal
355
570
  */
356
- maximize() {
571
+ exitMinimized() {
572
+ this.minimizeLeft.set(null);
573
+ this.minimizeRight.set(null);
574
+ this.popupSizeState.set('normal');
575
+ this.cdr.markForCheck();
576
+ }
577
+ /**
578
+ * Enters or toggles the Fullscreen API on the popup element.
579
+ * @internal
580
+ */
581
+ enterMaximized() {
357
582
  const el = this.popupEl()?.nativeElement;
358
583
  if (!el)
359
584
  return;
360
- if (this.popupSizeState() === 'minimize') {
361
- this.restore();
362
- }
363
585
  if (!document.fullscreenElement) {
364
- el.requestFullscreen().then(() => {
586
+ el.requestFullscreen()
587
+ .then(() => {
365
588
  this.fullScreenState.set(true);
589
+ this.__popupRef__()?._setState?.('maximized');
366
590
  this.cdr.markForCheck();
367
- });
591
+ })
592
+ .catch(() => undefined);
368
593
  }
369
594
  else {
370
595
  document.exitFullscreen().catch(() => undefined);
371
596
  }
372
597
  }
373
598
  /**
374
- * Restores the popup from minimized or fullscreen state.
599
+ * Leaves fullscreen.
600
+ * @internal
375
601
  */
376
- restore() {
602
+ exitMaximized() {
377
603
  if (this.fullScreenState() && document.fullscreenElement) {
378
604
  document.exitFullscreen().catch(() => undefined);
379
- return;
380
605
  }
381
- this.minimizeLeft.set(null);
382
- this.minimizeRight.set(null);
383
- this.popupSizeState.set('normal');
384
- this.cdr.markForCheck();
385
606
  }
386
607
  /**
387
608
  * Sets inputs on the content component.
@@ -401,42 +622,13 @@ class AXPopupComponent extends MXBaseComponent {
401
622
  this.title.set(title);
402
623
  this.cdr.markForCheck();
403
624
  }
404
- // Drag functionality
405
- onDragStart(event) {
406
- const config = this.__config__();
407
- if (!config?.draggable)
408
- return;
409
- if (this.popupSizeState() === 'minimize' || this.fullScreenState())
410
- return;
411
- this.isDragging.set(true);
412
- this.dragStartPos = { x: event.clientX, y: event.clientY };
413
- const popup = this.getHostElement().querySelector('.ax-popup');
414
- if (popup) {
415
- const rect = popup.getBoundingClientRect();
416
- this.elementStartPos = { x: rect.left, y: rect.top };
417
- }
418
- event.preventDefault();
419
- }
420
- onDragMove(event) {
421
- if (!this.isDragging())
422
- return;
423
- const deltaX = event.clientX - this.dragStartPos.x;
424
- const deltaY = event.clientY - this.dragStartPos.y;
425
- this.dragOffset.set({
426
- x: this.elementStartPos.x + deltaX,
427
- y: this.elementStartPos.y + deltaY,
428
- });
429
- }
430
- onDragEnd() {
431
- this.isDragging.set(false);
432
- }
433
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPopupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
434
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPopupComponent, isStandalone: true, selector: "ax-popup", inputs: { __content__: { classPropertyName: "__content__", publicName: "__content__", isSignal: true, isRequired: false, transformFunction: null }, __config__: { classPropertyName: "__config__", publicName: "__config__", isSignal: true, isRequired: false, transformFunction: null }, __popupRef__: { classPropertyName: "__popupRef__", publicName: "__popupRef__", isSignal: true, isRequired: false, transformFunction: null }, __id__: { classPropertyName: "__id__", publicName: "__id__", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "keydown.escape": "onKeydownHandler()", "document:mousemove": "onDragMove($event)", "document:mouseup": "onDragEnd()" }, styleAttribute: "display: block; max-width: 100%;", classAttribute: "ax-popup-host" }, providers: [
625
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
626
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: AXPopupComponent, isStandalone: true, selector: "ax-popup", inputs: { __content__: { classPropertyName: "__content__", publicName: "__content__", isSignal: true, isRequired: false, transformFunction: null }, __config__: { classPropertyName: "__config__", publicName: "__config__", isSignal: true, isRequired: false, transformFunction: null }, __popupRef__: { classPropertyName: "__popupRef__", publicName: "__popupRef__", isSignal: true, isRequired: false, transformFunction: null }, __id__: { classPropertyName: "__id__", publicName: "__id__", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "keydown.escape": "onKeydownHandler()" }, styleAttribute: "display: block; max-width: 100%;", classAttribute: "ax-popup-host" }, providers: [
435
627
  { provide: AXClosableComponent, useExisting: AXPopupComponent },
436
628
  { provide: AXComponent, useExisting: AXPopupComponent },
437
- ], viewQueries: [{ propertyName: "popupEl", first: true, predicate: ["popupEl"], descendants: true, isSignal: true }, { propertyName: "contentContainerRef", first: true, predicate: ["contentContainer"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "contentContainerEl", first: true, predicate: ["contentContainer"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"ax-popup-wrapper\"\n aria-modal=\"true\"\n axFocusTrap\n [class.ax-popup-minimized-host]=\"popupSizeState() === 'minimize'\"\n>\n <div\n #popupEl\n class=\"ax-popup ax-popup-{{ __config__()?.size || 'md' }}\"\n tabindex=\"0\"\n [class.ax-popup-dragging]=\"isDragging()\"\n [class.ax-popup-minimized]=\"popupSizeState() === 'minimize'\"\n [class.ax-popup-fullscreen]=\"fullScreenState()\"\n [style.position]=\"dragOffset().x || dragOffset().y || popupSizeState() === 'minimize' ? 'fixed' : null\"\n [style.left]=\"popupSizeState() === 'minimize' ? minimizeLeft() : dragOffset().x ? dragOffset().x + 'px' : null\"\n [style.right]=\"popupSizeState() === 'minimize' ? minimizeRight() : null\"\n [style.top]=\"popupSizeState() === 'minimize' ? 'auto' : dragOffset().y ? dragOffset().y + 'px' : null\"\n [style.bottom]=\"popupSizeState() === 'minimize' ? '0' : null\"\n [style.transform]=\"dragOffset().x || dragOffset().y || popupSizeState() === 'minimize' ? 'none' : null\"\n >\n <div\n class=\"ax-popup-header-container\"\n [class.ax-popup-draggable]=\"__config__()?.draggable && popupSizeState() !== 'minimize' && !fullScreenState()\"\n (mousedown)=\"onDragStart($event)\"\n >\n @if (__config__()?.header) {\n <div class=\"ax-popup-header\">\n <span class=\"ax-popup-title\">{{ title() | translate | async }}</span>\n <div class=\"ax-popup-header-actions\">\n @if (minimizeEnabled()) {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" (onClick)=\"minimize()\">\n <ax-icon class=\"ax-icon ax-icon-minimize\"></ax-icon>\n </ax-button>\n }\n\n @if (popupSizeState() !== 'normal' || fullScreenState()) {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" (onClick)=\"restore()\">\n <ax-icon class=\"ax-icon ax-icon-maximize\"></ax-icon>\n </ax-button>\n }\n\n @if (maximizeEnabled()) {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" (onClick)=\"maximize()\">\n <ax-icon class=\"ax-icon ax-icon-full-screen\"></ax-icon>\n </ax-button>\n }\n\n @if (closeEnabled()) {\n <ax-close-button tabindex=\"1\" (click)=\"_handleCloseClick()\"></ax-close-button>\n }\n </div>\n </div>\n }\n </div>\n <div class=\"ax-popup-main-container ax-loading-container\">\n <div class=\"ax-popup-body-container\" #contentContainer></div>\n <div class=\"ax-popup-footer-container\" [class.ax-popup-footer-visible]=\"__config__()?.footer\"></div>\n </div>\n </div>\n</div>\n", styles: ["@layer properties;@layer components{.ax-popup-overlay.ax-overlay-centered{pointer-events:none}.ax-popup-overlay.ax-overlay-centered .ax-overlay-content{display:flex;max-height:100%;min-height:calc(var(--spacing, .25rem) * 0);width:auto;max-width:100%;flex-direction:column;align-items:center;overflow:hidden;pointer-events:none}.ax-popup-overlay.ax-overlay-centered ax-popup.ax-popup-host{width:fit-content;flex-shrink:0;align-self:center;pointer-events:auto}.ax-popup-overlay.ax-overlay-centered ax-popup.ax-popup-host:has(.ax-popup-full){width:100%;max-width:100vw}.ax-popup-overlay.ax-overlay-centered ax-popup.ax-popup-host:has(.ax-popup-minimized){width:fit-content!important}.ax-popup-wrapper{display:block;width:fit-content;max-width:100%}.ax-popup-wrapper.ax-popup-minimized-host{width:fit-content!important}.ax-popup-header-container.ax-popup-draggable{cursor:move}.ax-popup.ax-popup-dragging{-webkit-user-select:none;user-select:none}.ax-popup.ax-popup-fullscreen{max-height:100vh!important;width:100vw!important;border-radius:0!important}.ax-popup-header-actions{display:flex;flex-shrink:0;align-items:center;gap:calc(var(--spacing, .25rem) * 1)}.ax-popup{--ax-comp-popup-shadow-rest: var(--ax-sys-effect-modal);--ax-comp-popup-highlight-rest: var(--ax-sys-highlight-surface);--ax-comp-popup-inner-border-rest: var(--ax-sys-inner-border-surface);--ax-comp-popup-contrast-inner-border-rest: var(--ax-sys-contrast-inner-border-surface);--ax-comp-popup-contrast-surface-overlay-rest: var(--ax-sys-contrast-surface-overlay-surface);--ax-comp-popup-backdrop-filter-rest: var(--ax-sys-backdrop-filter-surface);--ax-comp-popup-background-image-rest: var(--ax-sys-gradient-surface);--ax-comp-popup-surface-overlay-rest: var(--ax-sys-surface-overlay-modal);box-sizing:border-box;display:flex;min-height:calc(var(--spacing, .25rem) * 0);min-width:calc(var(--spacing, .25rem) * 0);flex-direction:column;overflow:hidden;border-style:var(--tw-border-style);border-width:1px;padding:calc(var(--spacing, .25rem) * 0);outline-style:var(--tw-outline-style);outline-width:2px;outline-offset:2px;outline-color:transparent;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));border-radius:var(--ax-comp-popup-border-radius);border-color:rgba(var(--ax-comp-popup-border-color));background-color:rgba(var(--ax-comp-popup-body-bg-color));box-shadow:var(--ax-comp-popup-contrast-inner-border-rest),var(--ax-comp-popup-inner-border-rest),var(--ax-comp-popup-highlight-rest),var(--ax-comp-popup-shadow-rest);background-image:linear-gradient(var(--ax-comp-popup-contrast-surface-overlay-rest),var(--ax-comp-popup-contrast-surface-overlay-rest)),linear-gradient(var(--ax-comp-popup-surface-overlay-rest),var(--ax-comp-popup-surface-overlay-rest)),var(--ax-comp-popup-background-image-rest);backdrop-filter:var(--ax-comp-popup-backdrop-filter-rest);-webkit-backdrop-filter:var(--ax-comp-popup-backdrop-filter-rest);color:rgba(var(--ax-comp-popup-body-text-color))}.ax-popup .ax-popup-header-container{flex-shrink:0;background-color:rgba(var(--ax-comp-popup-header-bg-color))}.ax-popup .ax-popup-header-container .ax-popup-header{display:flex;align-items:center;justify-content:space-between;border-bottom-style:var(--tw-border-style);border-bottom-width:1px;padding:calc(var(--spacing, .25rem) * 3);border-color:rgba(var(--ax-comp-popup-header-border-color))}.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-base, 1rem);line-height:var(--tw-leading, var(--text-base--line-height, 1.5 ));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}@media(min-width:48rem){.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)))}}@media(min-width:48rem){.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{--tw-leading: calc(var(--spacing, .25rem) * 7);line-height:calc(var(--spacing, .25rem) * 7)}}.ax-popup ax-footer{display:flex;align-items:center;justify-content:space-between;border-top-style:var(--tw-border-style);border-top-width:1px;padding:calc(var(--spacing, .25rem) * 3);border-color:rgba(var(--ax-comp-popup-footer-border-color));background-color:rgba(var(--ax-comp-popup-footer-bg-color))}.ax-popup:focus{outline-style:var(--tw-outline-style);outline-width:2px;outline-offset:2px;outline-color:transparent}.ax-popup:focus-visible{border-color:rgba(var(--ax-sys-color-primary-surface))}.ax-popup .ax-popup-main-container{display:flex;min-height:calc(var(--spacing, .25rem) * 0);flex:1;flex-direction:column;overflow:hidden}.ax-popup .ax-popup-main-container .ax-popup-body-container{min-height:calc(var(--spacing, .25rem) * 0);flex:1;overflow:auto;background-color:rgba(var(--ax-comp-popup-body-bg-color))}.ax-popup .ax-popup-main-container .ax-popup-footer-container{flex-shrink:0;background-color:rgba(var(--ax-comp-popup-footer-bg-color))}.ax-popup.ax-popup-full{height:calc(100 * var(--ax-vh));max-height:calc(100 * var(--ax-vh));width:100vw;border-radius:0!important}.ax-popup.ax-popup-fit{width:fit-content!important}.ax-popup.ax-popup-fit .ax-popup-body-container{max-height:calc(100 * var(--ax-vh))}.ax-popup.ax-popup-fit .ax-popup-body-container>ng-component>div{width:fit-content!important}.ax-popup.ax-popup-xs{width:18vw!important;max-width:100vw}.ax-popup.ax-popup-sm{width:25vw!important;max-width:100vw}.ax-popup.ax-popup-md{width:40vw!important;max-width:100vw}.ax-popup.ax-popup-lg{width:65vw!important;max-width:100vw}.ax-popup.ax-popup-xl{width:75vw!important;max-width:100vw}.ax-popup.ax-popup-2xl{width:85vw!important;max-width:100vw}.ax-popup.ax-popup-minimized{z-index:55;width:fit-content!important;max-width:min(90vw,24rem)!important;min-width:0;max-height:none}.ax-popup.ax-popup-minimized .ax-popup-main-container{display:none}.ax-popup.ax-popup-minimized .ax-popup-header{width:max-content;max-width:100%;gap:calc(var(--spacing, .25rem) * 2)}.ax-popup.ax-popup-minimized .ax-popup-title{max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media screen and (max-width:768px){.ax-popup:not(.ax-popup-fit):not(.ax-popup-minimized){width:93vw!important;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh))!important;border-radius:var(--ax-comp-popup-border-radius)}.ax-popup:not(.ax-popup-fit):not(.ax-popup-minimized):not(.ax-popup-full) .ax-popup-body-container>ng-component>div{width:100%}.ax-popup:not(.ax-popup-fit):not(.ax-popup-minimized).ax-popup-full{height:calc(var(--ax-overlay-full-width) * var(--ax-vh));border-radius:var(--ax-comp-popup-border-radius)!important}}.ax-dark .ax-popup{--ax-comp-popup-border-color: var(--ax-sys-color-border-darkest-surface);--ax-comp-popup-body-bg-color: var(--ax-sys-color-darker-surface);--ax-comp-popup-body-text-color: var(--ax-sys-color-on-darker-surface);--ax-comp-popup-header-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-popup-header-border-color: var(--ax-sys-color-border-dark-surface);--ax-comp-popup-footer-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-popup-footer-border-color: var(--ax-sys-color-border-dark-surface)}}:root{--ax-comp-popup-border-radius: var(--ax-sys-border-radius);--ax-comp-popup-border-color: var(--ax-sys-color-border-lightest-surface);--ax-comp-popup-body-bg-color: var(--ax-sys-color-lightest-surface);--ax-comp-popup-body-text-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-popup-header-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-popup-header-border-color: var(--ax-sys-color-border-lighter-surface);--ax-comp-popup-footer-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-popup-footer-border-color: var(--ax-sys-color-border-lighter-surface)}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-outline-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-leading{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-outline-style: solid;--tw-font-weight: initial;--tw-leading: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["closeAll", "icon"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "directive", type: AXFocusTrapDirective, selector: "[axFocusTrap]", inputs: ["axFocusTrapArrowNavigation"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
629
+ ], viewQueries: [{ propertyName: "popupEl", first: true, predicate: ["popupEl"], descendants: true, isSignal: true }, { propertyName: "projectedHandles", predicate: AXDragHandleDirective, descendants: true, isSignal: true }, { propertyName: "contentContainerRef", first: true, predicate: ["contentOutlet"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "contentContainerEl", first: true, predicate: ["contentContainer"], descendants: true, static: true }, { propertyName: "dragDir", first: true, predicate: ["popupEl"], descendants: true, read: AXDragDirective, static: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"ax-popup-wrapper\"\n aria-modal=\"true\"\n axFocusTrap\n [class.ax-popup-minimized-host]=\"popupSizeState() === 'minimize'\"\n>\n <div\n #popupEl\n axDrag\n class=\"ax-popup ax-popup-{{ __config__()?.size || 'md' }}\"\n tabindex=\"0\"\n [dragDisabled]=\"dragDisabled()\"\n [dragBoundary]=\"dragBoundary()\"\n [dragResetOnDblClick]=\"false\"\n [axResizable]=\"resizeEnabled()\"\n [handles]=\"resizeConfig().handles\"\n [minWidth]=\"resizeConfig().minWidth\"\n [minHeight]=\"resizeConfig().minHeight\"\n [maxWidth]=\"resizeMaxWidth()\"\n [maxHeight]=\"resizeMaxHeight()\"\n [lockAspectRatio]=\"resizeConfig().lockAspectRatio\"\n [dblClickAction]=\"resizeConfig().dblClickAction\"\n [class.ax-popup-resizable]=\"resizeActive()\"\n [class.ax-popup-minimized]=\"popupSizeState() === 'minimize'\"\n [class.ax-popup-minimized-end]=\"popupSizeState() === 'minimize' && minimizeSide() === 'bottom-right'\"\n [class.ax-popup-minimized-start]=\"popupSizeState() === 'minimize' && minimizeSide() === 'bottom-left'\"\n [class.ax-popup-fullscreen]=\"fullScreenState()\"\n [style.left]=\"popupSizeState() === 'minimize' ? minimizeLeft() : null\"\n [style.right]=\"popupSizeState() === 'minimize' ? minimizeRight() : null\"\n >\n <div class=\"ax-popup-header-container\">\n @if (__config__()?.header) {\n <div class=\"ax-popup-header\" axDragHandle>\n <span class=\"ax-popup-title\">{{ title() | translate | async }}</span>\n\n <div class=\"ax-popup-header-actions\" (pointerdown)=\"$event.stopPropagation()\">\n @if (minimizeEnabled() && popupSizeState() !== 'minimize') {\n <ax-chrome-button class=\"ax-sm\" title=\"Minimize\" (click)=\"minimize()\">\n <ax-popup-caption-icon name=\"minimize\" />\n </ax-chrome-button>\n }\n\n @if (popupSizeState() === 'minimize' || fullScreenState()) {\n <ax-chrome-button class=\"ax-sm\" title=\"Restore\" (click)=\"restore()\">\n <ax-popup-caption-icon name=\"restore\" />\n </ax-chrome-button>\n } @else if (maximizeEnabled()) {\n <ax-chrome-button class=\"ax-sm\" title=\"Maximize\" (click)=\"maximize()\">\n <ax-popup-caption-icon name=\"maximize\" />\n </ax-chrome-button>\n }\n\n @if (closeEnabled()) {\n <ax-close-button class=\"ax-sm\" tabindex=\"1\" (click)=\"_handleCloseClick()\"></ax-close-button>\n\n }\n </div>\n </div>\n }\n </div>\n\n <div class=\"ax-popup-main-container ax-loading-container\">\n <div class=\"ax-popup-body-container\" #contentContainer>\n @if (showSkeleton()) {\n <div class=\"ax-popup-skeleton-container\" #skeletonEl>\n @if (skeletonTemplate()) {\n <ng-container [ngTemplateOutlet]=\"skeletonTemplate()\"></ng-container>\n } @else {\n <div class=\"ax-popup-skeleton-default\">\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-title\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-line\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-line ax-popup-skeleton-bar-line-short\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-line\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n </div>\n }\n </div>\n }\n\n <ng-container #contentOutlet />\n </div>\n\n <div class=\"ax-popup-footer-container\" [class.ax-popup-footer-visible]=\"__config__()?.footer\"></div>\n </div>\n </div>\n</div>\n", styles: ["@layer properties;@layer components{.ax-popup-overlay-hidden,.ax-overlay-backdrop.ax-popup-overlay-hidden{display:none!important;pointer-events:none!important}.ax-popup-overlay.ax-overlay-centered{pointer-events:none}.ax-popup-overlay.ax-overlay-centered .ax-overlay-content{display:flex;max-height:100%;min-height:calc(var(--spacing, .25rem) * 0);flex-direction:column;align-items:center;justify-content:center;width:100%!important;height:100%!important;max-width:none!important;overflow:visible!important;pointer-events:none}.ax-popup-overlay.ax-overlay-centered ax-popup.ax-popup-host{width:fit-content;flex-shrink:0;align-self:center;pointer-events:auto}.ax-popup-overlay.ax-overlay-centered ax-popup.ax-popup-host:has(.ax-popup-full){width:100%;max-width:100vw}.ax-popup-overlay.ax-overlay-centered ax-popup.ax-popup-host:has(.ax-popup-minimized){width:fit-content!important}.ax-popup-wrapper{display:block;width:fit-content;max-width:100%}.ax-popup-wrapper.ax-popup-minimized-host{width:fit-content!important}.ax-popup.ax-dragging{-webkit-user-select:none;user-select:none}.ax-popup.ax-popup-minimized,.ax-popup.ax-popup-fullscreen{translate:none!important}.ax-popup.ax-popup-fullscreen{max-height:100vh!important;width:100vw!important;border-radius:0!important}.ax-popup-header-actions{display:flex;flex-shrink:0;align-items:center;gap:calc(var(--spacing, .25rem) * 2.5)}.ax-popup-header-actions .ax-popup-caption-icon{width:.875rem;height:.875rem}.ax-popup-header-actions :is(ax-chrome-button,ax-close-button){--ax-comp-text: rgba(var(--ax-comp-popup-body-text-color))}.ax-popup{--ax-comp-popup-shadow-rest: var(--ax-sys-effect-modal);--ax-comp-popup-highlight-rest: var(--ax-sys-highlight-surface);--ax-comp-popup-inner-border-rest: var(--ax-sys-inner-border-surface);--ax-comp-popup-contrast-inner-border-rest: var(--ax-sys-contrast-inner-border-surface);--ax-comp-popup-contrast-surface-overlay-rest: var(--ax-sys-contrast-surface-overlay-surface);--ax-comp-popup-backdrop-filter-rest: var(--ax-sys-backdrop-filter-surface);--ax-comp-popup-background-image-rest: var(--ax-sys-gradient-surface);--ax-comp-popup-surface-overlay-rest: var(--ax-sys-surface-overlay-modal);position:relative;box-sizing:border-box;display:flex;min-height:calc(var(--spacing, .25rem) * 0);min-width:calc(var(--spacing, .25rem) * 0);flex-direction:column;overflow:hidden;border-style:var(--tw-border-style);border-width:1px;padding:calc(var(--spacing, .25rem) * 0);outline-style:var(--tw-outline-style);outline-width:2px;outline-offset:2px;outline-color:transparent;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));border-radius:var(--ax-comp-popup-border-radius);border-color:rgba(var(--ax-comp-popup-border-color));background-color:rgba(var(--ax-comp-popup-body-bg-color));box-shadow:var(--ax-comp-popup-contrast-inner-border-rest),var(--ax-comp-popup-inner-border-rest),var(--ax-comp-popup-highlight-rest),var(--ax-comp-popup-shadow-rest);background-image:linear-gradient(var(--ax-comp-popup-contrast-surface-overlay-rest),var(--ax-comp-popup-contrast-surface-overlay-rest)),linear-gradient(var(--ax-comp-popup-surface-overlay-rest),var(--ax-comp-popup-surface-overlay-rest)),var(--ax-comp-popup-background-image-rest);backdrop-filter:var(--ax-comp-popup-backdrop-filter-rest);-webkit-backdrop-filter:var(--ax-comp-popup-backdrop-filter-rest);color:rgba(var(--ax-comp-popup-body-text-color))}.ax-popup .ax-popup-header-container{flex-shrink:0}.ax-popup .ax-popup-header-container .ax-popup-header{display:flex;align-items:center;justify-content:space-between;border-bottom-style:var(--tw-border-style);border-bottom-width:1px;padding:calc(var(--spacing, .25rem) * 3);border-color:rgba(var(--ax-comp-popup-header-border-color))}.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-base, 1rem);line-height:var(--tw-leading, var(--text-base--line-height, 1.5 ));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}@media(min-width:48rem){.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)))}}@media(min-width:48rem){.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{--tw-leading: calc(var(--spacing, .25rem) * 7);line-height:calc(var(--spacing, .25rem) * 7)}}.ax-popup ax-footer{display:flex;align-items:center;justify-content:space-between;border-top-style:var(--tw-border-style);border-top-width:1px;padding:calc(var(--spacing, .25rem) * 3);border-color:rgba(var(--ax-comp-popup-footer-border-color));background-color:rgba(var(--ax-comp-popup-footer-bg-color))}.ax-popup:focus{outline-style:var(--tw-outline-style);outline-width:2px;outline-offset:2px;outline-color:transparent}.ax-popup:focus-visible{border-color:rgba(var(--ax-sys-color-primary-surface))}.ax-popup .ax-popup-main-container{display:flex;min-height:calc(var(--spacing, .25rem) * 0);flex:1;flex-direction:column;overflow:hidden}.ax-popup .ax-popup-main-container .ax-popup-body-container{min-height:calc(var(--spacing, .25rem) * 0);flex:1;overflow:auto;background-color:rgba(var(--ax-comp-popup-body-bg-color))}.ax-popup .ax-popup-main-container .ax-popup-skeleton-container{overflow:hidden;padding:calc(var(--spacing, .25rem) * 4)}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 3)}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default .ax-popup-skeleton-bar{display:block;border-radius:var(--radius-md, .375rem)}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default .ax-popup-skeleton-bar-title{height:calc(var(--spacing, .25rem) * 5);width:40%}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default .ax-popup-skeleton-bar-line{height:calc(var(--spacing, .25rem) * 3.5);width:100%}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default .ax-popup-skeleton-bar-line-short{width:80%}.ax-popup .ax-popup-main-container .ax-popup-footer-container{flex-shrink:0;background-color:rgba(var(--ax-comp-popup-footer-bg-color))}.ax-popup.ax-popup-full{height:calc(100 * var(--ax-vh));max-height:calc(100 * var(--ax-vh));width:100vw;border-radius:0!important}.ax-popup.ax-popup-fit{width:fit-content!important}.ax-popup.ax-popup-fit .ax-popup-body-container{max-height:calc(100 * var(--ax-vh))}.ax-popup.ax-popup-fit .ax-popup-body-container>ng-component>div{width:fit-content!important}.ax-popup.ax-popup-xs:not(.ax-popup-resizable){width:18vw!important;max-width:100vw}.ax-popup.ax-popup-sm:not(.ax-popup-resizable){width:25vw!important;max-width:100vw}.ax-popup.ax-popup-md:not(.ax-popup-resizable){width:40vw!important;max-width:100vw}.ax-popup.ax-popup-lg:not(.ax-popup-resizable){width:65vw!important;max-width:100vw}.ax-popup.ax-popup-xl:not(.ax-popup-resizable){width:75vw!important;max-width:100vw}.ax-popup.ax-popup-2xl:not(.ax-popup-resizable){width:85vw!important;max-width:100vw}.ax-popup.ax-popup-resizable{max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));--ax-comp-resizable-corner-size: 12px}.ax-popup.ax-popup-resizable.ax-popup-xs{width:18vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-sm{width:25vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-md{width:40vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-lg{width:65vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-xl{width:75vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-2xl{width:85vw;max-width:100vw}.ax-popup.ax-popup-minimized{z-index:55;width:fit-content!important;max-width:min(90vw,24rem)!important;border-top-left-radius:var(--radius-2xl, 1rem);border-top-right-radius:var(--radius-2xl, 1rem);border-bottom-right-radius:0!important;border-bottom-left-radius:0!important;position:fixed!important;bottom:0!important;min-width:0;max-height:none;height:auto!important;min-height:0}.ax-popup.ax-popup-minimized .ax-popup-main-container{display:none}.ax-popup.ax-popup-minimized .ax-popup-header{max-width:100%;gap:calc(var(--spacing, .25rem) * 2)}.ax-popup.ax-popup-minimized .ax-popup-header-container .ax-popup-header .ax-popup-title{max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading: calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5);--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}@media(min-width:48rem){.ax-popup.ax-popup-minimized .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)))}}@media(min-width:48rem){.ax-popup.ax-popup-minimized .ax-popup-header-container .ax-popup-header .ax-popup-title{--tw-leading: calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5)}}.ax-popup.ax-popup-minimized-end{right:0}.ax-popup.ax-popup-minimized-start{left:0}@media screen and (max-width:768px){.ax-popup:not(.ax-popup-fit):not(.ax-popup-minimized):not(.ax-popup-resizable){width:93vw!important;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh))!important;border-radius:var(--ax-comp-popup-border-radius)}.ax-popup:not(.ax-popup-fit):not(.ax-popup-minimized):not(.ax-popup-resizable):not(.ax-popup-full) .ax-popup-body-container>ng-component>div{width:100%}.ax-popup:not(.ax-popup-fit):not(.ax-popup-minimized):not(.ax-popup-resizable).ax-popup-full{height:calc(var(--ax-overlay-full-width) * var(--ax-vh));border-radius:var(--ax-comp-popup-border-radius)!important}}.ax-dark .ax-popup{--ax-comp-popup-border-color: var(--ax-sys-color-border-darkest-surface);--ax-comp-popup-body-bg-color: var(--ax-sys-color-darker-surface);--ax-comp-popup-body-text-color: var(--ax-sys-color-on-darker-surface);--ax-comp-popup-header-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-popup-header-border-color: var(--ax-sys-color-border-dark-surface);--ax-comp-popup-footer-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-popup-footer-border-color: var(--ax-sys-color-border-dark-surface)}}.ax-popup-header-actions :is(ax-chrome-button,ax-close-button) ax-button.ax-chrome-button-action.ax-button-icon>button.ax-blank-interactive{min-width:1.625rem;min-height:1.625rem;padding:.25rem}.ax-popup-header-actions ax-close-button ax-button.ax-chrome-button-action.ax-button-icon>button.ax-blank-interactive i{--ax-sys-icon-size: .875rem;font-size:.875rem}:root{--ax-comp-popup-border-radius: var(--ax-sys-border-radius);--ax-comp-popup-border-color: var(--ax-sys-color-border-lightest-surface);--ax-comp-popup-body-bg-color: var(--ax-sys-color-lightest-surface);--ax-comp-popup-body-text-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-popup-header-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-popup-header-border-color: var(--ax-sys-color-border-lighter-surface);--ax-comp-popup-footer-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-popup-footer-border-color: var(--ax-sys-color-border-lighter-surface)}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-outline-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-leading{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-outline-style: solid;--tw-font-weight: initial;--tw-leading: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: AXPopupCaptionIconComponent, selector: "ax-popup-caption-icon", inputs: ["name"] }, { kind: "component", type: AXChromeButtonComponent, selector: "ax-chrome-button", inputs: ["title", "aria-label"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: AXFocusTrapDirective, selector: "[axFocusTrap]", inputs: ["axFocusTrapArrowNavigation"] }, { kind: "component", type: AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "directive", type: AXDragDirective, selector: "[axDrag]", inputs: ["axDrag", "dragData", "dragDisabled", "dragTransition", "dragElementClone", "dropZoneGroup", "dragStartDelay", "dragResetOnDblClick", "dragLockAxis", "dragClonedTemplate", "dragCursor", "dragBoundary", "dragTransitionDuration"], outputs: ["dragPositionChanged"] }, { kind: "directive", type: AXDragHandleDirective, selector: "[axDragHandle]" }, { kind: "directive", type: AXResizableDirective, selector: "[axResizable]", inputs: ["axResizable", "handles", "minWidth", "maxWidth", "minHeight", "maxHeight", "dblClickAction", "width", "defaultWidth", "height", "defaultHeight", "lockAspectRatio"], outputs: ["axResizableChange", "handlesChange", "minWidthChange", "maxWidthChange", "minHeightChange", "maxHeightChange", "dblClickActionChange", "widthChange", "defaultWidthChange", "heightChange", "defaultHeightChange", "lockAspectRatioChange", "onResizingStarted", "onResizingEnded", "onResizingDblClick"] }, { kind: "component", type: AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["closeAll", "icon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
438
630
  }
439
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPopupComponent, decorators: [{
631
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupComponent, decorators: [{
440
632
  type: Component,
441
633
  args: [{ selector: 'ax-popup', encapsulation: ViewEncapsulation.None, host: {
442
634
  class: 'ax-popup-host',
@@ -445,30 +637,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
445
637
  { provide: AXClosableComponent, useExisting: AXPopupComponent },
446
638
  { provide: AXComponent, useExisting: AXPopupComponent },
447
639
  ], imports: [
448
- AXDecoratorCloseButtonComponent,
449
- AXDecoratorIconComponent,
450
- AXButtonComponent,
640
+ AXPopupCaptionIconComponent,
641
+ AXChromeButtonComponent,
451
642
  AsyncPipe,
643
+ NgTemplateOutlet,
452
644
  AXTranslatorPipe,
453
645
  AXFocusTrapDirective,
454
- ], template: "<div\n class=\"ax-popup-wrapper\"\n aria-modal=\"true\"\n axFocusTrap\n [class.ax-popup-minimized-host]=\"popupSizeState() === 'minimize'\"\n>\n <div\n #popupEl\n class=\"ax-popup ax-popup-{{ __config__()?.size || 'md' }}\"\n tabindex=\"0\"\n [class.ax-popup-dragging]=\"isDragging()\"\n [class.ax-popup-minimized]=\"popupSizeState() === 'minimize'\"\n [class.ax-popup-fullscreen]=\"fullScreenState()\"\n [style.position]=\"dragOffset().x || dragOffset().y || popupSizeState() === 'minimize' ? 'fixed' : null\"\n [style.left]=\"popupSizeState() === 'minimize' ? minimizeLeft() : dragOffset().x ? dragOffset().x + 'px' : null\"\n [style.right]=\"popupSizeState() === 'minimize' ? minimizeRight() : null\"\n [style.top]=\"popupSizeState() === 'minimize' ? 'auto' : dragOffset().y ? dragOffset().y + 'px' : null\"\n [style.bottom]=\"popupSizeState() === 'minimize' ? '0' : null\"\n [style.transform]=\"dragOffset().x || dragOffset().y || popupSizeState() === 'minimize' ? 'none' : null\"\n >\n <div\n class=\"ax-popup-header-container\"\n [class.ax-popup-draggable]=\"__config__()?.draggable && popupSizeState() !== 'minimize' && !fullScreenState()\"\n (mousedown)=\"onDragStart($event)\"\n >\n @if (__config__()?.header) {\n <div class=\"ax-popup-header\">\n <span class=\"ax-popup-title\">{{ title() | translate | async }}</span>\n <div class=\"ax-popup-header-actions\">\n @if (minimizeEnabled()) {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" (onClick)=\"minimize()\">\n <ax-icon class=\"ax-icon ax-icon-minimize\"></ax-icon>\n </ax-button>\n }\n\n @if (popupSizeState() !== 'normal' || fullScreenState()) {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" (onClick)=\"restore()\">\n <ax-icon class=\"ax-icon ax-icon-maximize\"></ax-icon>\n </ax-button>\n }\n\n @if (maximizeEnabled()) {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" (onClick)=\"maximize()\">\n <ax-icon class=\"ax-icon ax-icon-full-screen\"></ax-icon>\n </ax-button>\n }\n\n @if (closeEnabled()) {\n <ax-close-button tabindex=\"1\" (click)=\"_handleCloseClick()\"></ax-close-button>\n }\n </div>\n </div>\n }\n </div>\n <div class=\"ax-popup-main-container ax-loading-container\">\n <div class=\"ax-popup-body-container\" #contentContainer></div>\n <div class=\"ax-popup-footer-container\" [class.ax-popup-footer-visible]=\"__config__()?.footer\"></div>\n </div>\n </div>\n</div>\n", styles: ["@layer properties;@layer components{.ax-popup-overlay.ax-overlay-centered{pointer-events:none}.ax-popup-overlay.ax-overlay-centered .ax-overlay-content{display:flex;max-height:100%;min-height:calc(var(--spacing, .25rem) * 0);width:auto;max-width:100%;flex-direction:column;align-items:center;overflow:hidden;pointer-events:none}.ax-popup-overlay.ax-overlay-centered ax-popup.ax-popup-host{width:fit-content;flex-shrink:0;align-self:center;pointer-events:auto}.ax-popup-overlay.ax-overlay-centered ax-popup.ax-popup-host:has(.ax-popup-full){width:100%;max-width:100vw}.ax-popup-overlay.ax-overlay-centered ax-popup.ax-popup-host:has(.ax-popup-minimized){width:fit-content!important}.ax-popup-wrapper{display:block;width:fit-content;max-width:100%}.ax-popup-wrapper.ax-popup-minimized-host{width:fit-content!important}.ax-popup-header-container.ax-popup-draggable{cursor:move}.ax-popup.ax-popup-dragging{-webkit-user-select:none;user-select:none}.ax-popup.ax-popup-fullscreen{max-height:100vh!important;width:100vw!important;border-radius:0!important}.ax-popup-header-actions{display:flex;flex-shrink:0;align-items:center;gap:calc(var(--spacing, .25rem) * 1)}.ax-popup{--ax-comp-popup-shadow-rest: var(--ax-sys-effect-modal);--ax-comp-popup-highlight-rest: var(--ax-sys-highlight-surface);--ax-comp-popup-inner-border-rest: var(--ax-sys-inner-border-surface);--ax-comp-popup-contrast-inner-border-rest: var(--ax-sys-contrast-inner-border-surface);--ax-comp-popup-contrast-surface-overlay-rest: var(--ax-sys-contrast-surface-overlay-surface);--ax-comp-popup-backdrop-filter-rest: var(--ax-sys-backdrop-filter-surface);--ax-comp-popup-background-image-rest: var(--ax-sys-gradient-surface);--ax-comp-popup-surface-overlay-rest: var(--ax-sys-surface-overlay-modal);box-sizing:border-box;display:flex;min-height:calc(var(--spacing, .25rem) * 0);min-width:calc(var(--spacing, .25rem) * 0);flex-direction:column;overflow:hidden;border-style:var(--tw-border-style);border-width:1px;padding:calc(var(--spacing, .25rem) * 0);outline-style:var(--tw-outline-style);outline-width:2px;outline-offset:2px;outline-color:transparent;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));border-radius:var(--ax-comp-popup-border-radius);border-color:rgba(var(--ax-comp-popup-border-color));background-color:rgba(var(--ax-comp-popup-body-bg-color));box-shadow:var(--ax-comp-popup-contrast-inner-border-rest),var(--ax-comp-popup-inner-border-rest),var(--ax-comp-popup-highlight-rest),var(--ax-comp-popup-shadow-rest);background-image:linear-gradient(var(--ax-comp-popup-contrast-surface-overlay-rest),var(--ax-comp-popup-contrast-surface-overlay-rest)),linear-gradient(var(--ax-comp-popup-surface-overlay-rest),var(--ax-comp-popup-surface-overlay-rest)),var(--ax-comp-popup-background-image-rest);backdrop-filter:var(--ax-comp-popup-backdrop-filter-rest);-webkit-backdrop-filter:var(--ax-comp-popup-backdrop-filter-rest);color:rgba(var(--ax-comp-popup-body-text-color))}.ax-popup .ax-popup-header-container{flex-shrink:0;background-color:rgba(var(--ax-comp-popup-header-bg-color))}.ax-popup .ax-popup-header-container .ax-popup-header{display:flex;align-items:center;justify-content:space-between;border-bottom-style:var(--tw-border-style);border-bottom-width:1px;padding:calc(var(--spacing, .25rem) * 3);border-color:rgba(var(--ax-comp-popup-header-border-color))}.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-base, 1rem);line-height:var(--tw-leading, var(--text-base--line-height, 1.5 ));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}@media(min-width:48rem){.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)))}}@media(min-width:48rem){.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{--tw-leading: calc(var(--spacing, .25rem) * 7);line-height:calc(var(--spacing, .25rem) * 7)}}.ax-popup ax-footer{display:flex;align-items:center;justify-content:space-between;border-top-style:var(--tw-border-style);border-top-width:1px;padding:calc(var(--spacing, .25rem) * 3);border-color:rgba(var(--ax-comp-popup-footer-border-color));background-color:rgba(var(--ax-comp-popup-footer-bg-color))}.ax-popup:focus{outline-style:var(--tw-outline-style);outline-width:2px;outline-offset:2px;outline-color:transparent}.ax-popup:focus-visible{border-color:rgba(var(--ax-sys-color-primary-surface))}.ax-popup .ax-popup-main-container{display:flex;min-height:calc(var(--spacing, .25rem) * 0);flex:1;flex-direction:column;overflow:hidden}.ax-popup .ax-popup-main-container .ax-popup-body-container{min-height:calc(var(--spacing, .25rem) * 0);flex:1;overflow:auto;background-color:rgba(var(--ax-comp-popup-body-bg-color))}.ax-popup .ax-popup-main-container .ax-popup-footer-container{flex-shrink:0;background-color:rgba(var(--ax-comp-popup-footer-bg-color))}.ax-popup.ax-popup-full{height:calc(100 * var(--ax-vh));max-height:calc(100 * var(--ax-vh));width:100vw;border-radius:0!important}.ax-popup.ax-popup-fit{width:fit-content!important}.ax-popup.ax-popup-fit .ax-popup-body-container{max-height:calc(100 * var(--ax-vh))}.ax-popup.ax-popup-fit .ax-popup-body-container>ng-component>div{width:fit-content!important}.ax-popup.ax-popup-xs{width:18vw!important;max-width:100vw}.ax-popup.ax-popup-sm{width:25vw!important;max-width:100vw}.ax-popup.ax-popup-md{width:40vw!important;max-width:100vw}.ax-popup.ax-popup-lg{width:65vw!important;max-width:100vw}.ax-popup.ax-popup-xl{width:75vw!important;max-width:100vw}.ax-popup.ax-popup-2xl{width:85vw!important;max-width:100vw}.ax-popup.ax-popup-minimized{z-index:55;width:fit-content!important;max-width:min(90vw,24rem)!important;min-width:0;max-height:none}.ax-popup.ax-popup-minimized .ax-popup-main-container{display:none}.ax-popup.ax-popup-minimized .ax-popup-header{width:max-content;max-width:100%;gap:calc(var(--spacing, .25rem) * 2)}.ax-popup.ax-popup-minimized .ax-popup-title{max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media screen and (max-width:768px){.ax-popup:not(.ax-popup-fit):not(.ax-popup-minimized){width:93vw!important;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh))!important;border-radius:var(--ax-comp-popup-border-radius)}.ax-popup:not(.ax-popup-fit):not(.ax-popup-minimized):not(.ax-popup-full) .ax-popup-body-container>ng-component>div{width:100%}.ax-popup:not(.ax-popup-fit):not(.ax-popup-minimized).ax-popup-full{height:calc(var(--ax-overlay-full-width) * var(--ax-vh));border-radius:var(--ax-comp-popup-border-radius)!important}}.ax-dark .ax-popup{--ax-comp-popup-border-color: var(--ax-sys-color-border-darkest-surface);--ax-comp-popup-body-bg-color: var(--ax-sys-color-darker-surface);--ax-comp-popup-body-text-color: var(--ax-sys-color-on-darker-surface);--ax-comp-popup-header-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-popup-header-border-color: var(--ax-sys-color-border-dark-surface);--ax-comp-popup-footer-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-popup-footer-border-color: var(--ax-sys-color-border-dark-surface)}}:root{--ax-comp-popup-border-radius: var(--ax-sys-border-radius);--ax-comp-popup-border-color: var(--ax-sys-color-border-lightest-surface);--ax-comp-popup-body-bg-color: var(--ax-sys-color-lightest-surface);--ax-comp-popup-body-text-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-popup-header-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-popup-header-border-color: var(--ax-sys-color-border-lighter-surface);--ax-comp-popup-footer-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-popup-footer-border-color: var(--ax-sys-color-border-lighter-surface)}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-outline-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-leading{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-outline-style: solid;--tw-font-weight: initial;--tw-leading: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
455
- }], propDecorators: { contentContainerRef: [{
646
+ AXSkeletonComponent,
647
+ AXDragDirective,
648
+ AXDragHandleDirective,
649
+ AXResizableDirective,
650
+ AXDecoratorCloseButtonComponent
651
+ ], template: "<div\n class=\"ax-popup-wrapper\"\n aria-modal=\"true\"\n axFocusTrap\n [class.ax-popup-minimized-host]=\"popupSizeState() === 'minimize'\"\n>\n <div\n #popupEl\n axDrag\n class=\"ax-popup ax-popup-{{ __config__()?.size || 'md' }}\"\n tabindex=\"0\"\n [dragDisabled]=\"dragDisabled()\"\n [dragBoundary]=\"dragBoundary()\"\n [dragResetOnDblClick]=\"false\"\n [axResizable]=\"resizeEnabled()\"\n [handles]=\"resizeConfig().handles\"\n [minWidth]=\"resizeConfig().minWidth\"\n [minHeight]=\"resizeConfig().minHeight\"\n [maxWidth]=\"resizeMaxWidth()\"\n [maxHeight]=\"resizeMaxHeight()\"\n [lockAspectRatio]=\"resizeConfig().lockAspectRatio\"\n [dblClickAction]=\"resizeConfig().dblClickAction\"\n [class.ax-popup-resizable]=\"resizeActive()\"\n [class.ax-popup-minimized]=\"popupSizeState() === 'minimize'\"\n [class.ax-popup-minimized-end]=\"popupSizeState() === 'minimize' && minimizeSide() === 'bottom-right'\"\n [class.ax-popup-minimized-start]=\"popupSizeState() === 'minimize' && minimizeSide() === 'bottom-left'\"\n [class.ax-popup-fullscreen]=\"fullScreenState()\"\n [style.left]=\"popupSizeState() === 'minimize' ? minimizeLeft() : null\"\n [style.right]=\"popupSizeState() === 'minimize' ? minimizeRight() : null\"\n >\n <div class=\"ax-popup-header-container\">\n @if (__config__()?.header) {\n <div class=\"ax-popup-header\" axDragHandle>\n <span class=\"ax-popup-title\">{{ title() | translate | async }}</span>\n\n <div class=\"ax-popup-header-actions\" (pointerdown)=\"$event.stopPropagation()\">\n @if (minimizeEnabled() && popupSizeState() !== 'minimize') {\n <ax-chrome-button class=\"ax-sm\" title=\"Minimize\" (click)=\"minimize()\">\n <ax-popup-caption-icon name=\"minimize\" />\n </ax-chrome-button>\n }\n\n @if (popupSizeState() === 'minimize' || fullScreenState()) {\n <ax-chrome-button class=\"ax-sm\" title=\"Restore\" (click)=\"restore()\">\n <ax-popup-caption-icon name=\"restore\" />\n </ax-chrome-button>\n } @else if (maximizeEnabled()) {\n <ax-chrome-button class=\"ax-sm\" title=\"Maximize\" (click)=\"maximize()\">\n <ax-popup-caption-icon name=\"maximize\" />\n </ax-chrome-button>\n }\n\n @if (closeEnabled()) {\n <ax-close-button class=\"ax-sm\" tabindex=\"1\" (click)=\"_handleCloseClick()\"></ax-close-button>\n\n }\n </div>\n </div>\n }\n </div>\n\n <div class=\"ax-popup-main-container ax-loading-container\">\n <div class=\"ax-popup-body-container\" #contentContainer>\n @if (showSkeleton()) {\n <div class=\"ax-popup-skeleton-container\" #skeletonEl>\n @if (skeletonTemplate()) {\n <ng-container [ngTemplateOutlet]=\"skeletonTemplate()\"></ng-container>\n } @else {\n <div class=\"ax-popup-skeleton-default\">\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-title\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-line\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-line ax-popup-skeleton-bar-line-short\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-line\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n </div>\n }\n </div>\n }\n\n <ng-container #contentOutlet />\n </div>\n\n <div class=\"ax-popup-footer-container\" [class.ax-popup-footer-visible]=\"__config__()?.footer\"></div>\n </div>\n </div>\n</div>\n", styles: ["@layer properties;@layer components{.ax-popup-overlay-hidden,.ax-overlay-backdrop.ax-popup-overlay-hidden{display:none!important;pointer-events:none!important}.ax-popup-overlay.ax-overlay-centered{pointer-events:none}.ax-popup-overlay.ax-overlay-centered .ax-overlay-content{display:flex;max-height:100%;min-height:calc(var(--spacing, .25rem) * 0);flex-direction:column;align-items:center;justify-content:center;width:100%!important;height:100%!important;max-width:none!important;overflow:visible!important;pointer-events:none}.ax-popup-overlay.ax-overlay-centered ax-popup.ax-popup-host{width:fit-content;flex-shrink:0;align-self:center;pointer-events:auto}.ax-popup-overlay.ax-overlay-centered ax-popup.ax-popup-host:has(.ax-popup-full){width:100%;max-width:100vw}.ax-popup-overlay.ax-overlay-centered ax-popup.ax-popup-host:has(.ax-popup-minimized){width:fit-content!important}.ax-popup-wrapper{display:block;width:fit-content;max-width:100%}.ax-popup-wrapper.ax-popup-minimized-host{width:fit-content!important}.ax-popup.ax-dragging{-webkit-user-select:none;user-select:none}.ax-popup.ax-popup-minimized,.ax-popup.ax-popup-fullscreen{translate:none!important}.ax-popup.ax-popup-fullscreen{max-height:100vh!important;width:100vw!important;border-radius:0!important}.ax-popup-header-actions{display:flex;flex-shrink:0;align-items:center;gap:calc(var(--spacing, .25rem) * 2.5)}.ax-popup-header-actions .ax-popup-caption-icon{width:.875rem;height:.875rem}.ax-popup-header-actions :is(ax-chrome-button,ax-close-button){--ax-comp-text: rgba(var(--ax-comp-popup-body-text-color))}.ax-popup{--ax-comp-popup-shadow-rest: var(--ax-sys-effect-modal);--ax-comp-popup-highlight-rest: var(--ax-sys-highlight-surface);--ax-comp-popup-inner-border-rest: var(--ax-sys-inner-border-surface);--ax-comp-popup-contrast-inner-border-rest: var(--ax-sys-contrast-inner-border-surface);--ax-comp-popup-contrast-surface-overlay-rest: var(--ax-sys-contrast-surface-overlay-surface);--ax-comp-popup-backdrop-filter-rest: var(--ax-sys-backdrop-filter-surface);--ax-comp-popup-background-image-rest: var(--ax-sys-gradient-surface);--ax-comp-popup-surface-overlay-rest: var(--ax-sys-surface-overlay-modal);position:relative;box-sizing:border-box;display:flex;min-height:calc(var(--spacing, .25rem) * 0);min-width:calc(var(--spacing, .25rem) * 0);flex-direction:column;overflow:hidden;border-style:var(--tw-border-style);border-width:1px;padding:calc(var(--spacing, .25rem) * 0);outline-style:var(--tw-outline-style);outline-width:2px;outline-offset:2px;outline-color:transparent;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));border-radius:var(--ax-comp-popup-border-radius);border-color:rgba(var(--ax-comp-popup-border-color));background-color:rgba(var(--ax-comp-popup-body-bg-color));box-shadow:var(--ax-comp-popup-contrast-inner-border-rest),var(--ax-comp-popup-inner-border-rest),var(--ax-comp-popup-highlight-rest),var(--ax-comp-popup-shadow-rest);background-image:linear-gradient(var(--ax-comp-popup-contrast-surface-overlay-rest),var(--ax-comp-popup-contrast-surface-overlay-rest)),linear-gradient(var(--ax-comp-popup-surface-overlay-rest),var(--ax-comp-popup-surface-overlay-rest)),var(--ax-comp-popup-background-image-rest);backdrop-filter:var(--ax-comp-popup-backdrop-filter-rest);-webkit-backdrop-filter:var(--ax-comp-popup-backdrop-filter-rest);color:rgba(var(--ax-comp-popup-body-text-color))}.ax-popup .ax-popup-header-container{flex-shrink:0}.ax-popup .ax-popup-header-container .ax-popup-header{display:flex;align-items:center;justify-content:space-between;border-bottom-style:var(--tw-border-style);border-bottom-width:1px;padding:calc(var(--spacing, .25rem) * 3);border-color:rgba(var(--ax-comp-popup-header-border-color))}.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-base, 1rem);line-height:var(--tw-leading, var(--text-base--line-height, 1.5 ));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}@media(min-width:48rem){.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)))}}@media(min-width:48rem){.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{--tw-leading: calc(var(--spacing, .25rem) * 7);line-height:calc(var(--spacing, .25rem) * 7)}}.ax-popup ax-footer{display:flex;align-items:center;justify-content:space-between;border-top-style:var(--tw-border-style);border-top-width:1px;padding:calc(var(--spacing, .25rem) * 3);border-color:rgba(var(--ax-comp-popup-footer-border-color));background-color:rgba(var(--ax-comp-popup-footer-bg-color))}.ax-popup:focus{outline-style:var(--tw-outline-style);outline-width:2px;outline-offset:2px;outline-color:transparent}.ax-popup:focus-visible{border-color:rgba(var(--ax-sys-color-primary-surface))}.ax-popup .ax-popup-main-container{display:flex;min-height:calc(var(--spacing, .25rem) * 0);flex:1;flex-direction:column;overflow:hidden}.ax-popup .ax-popup-main-container .ax-popup-body-container{min-height:calc(var(--spacing, .25rem) * 0);flex:1;overflow:auto;background-color:rgba(var(--ax-comp-popup-body-bg-color))}.ax-popup .ax-popup-main-container .ax-popup-skeleton-container{overflow:hidden;padding:calc(var(--spacing, .25rem) * 4)}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 3)}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default .ax-popup-skeleton-bar{display:block;border-radius:var(--radius-md, .375rem)}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default .ax-popup-skeleton-bar-title{height:calc(var(--spacing, .25rem) * 5);width:40%}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default .ax-popup-skeleton-bar-line{height:calc(var(--spacing, .25rem) * 3.5);width:100%}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default .ax-popup-skeleton-bar-line-short{width:80%}.ax-popup .ax-popup-main-container .ax-popup-footer-container{flex-shrink:0;background-color:rgba(var(--ax-comp-popup-footer-bg-color))}.ax-popup.ax-popup-full{height:calc(100 * var(--ax-vh));max-height:calc(100 * var(--ax-vh));width:100vw;border-radius:0!important}.ax-popup.ax-popup-fit{width:fit-content!important}.ax-popup.ax-popup-fit .ax-popup-body-container{max-height:calc(100 * var(--ax-vh))}.ax-popup.ax-popup-fit .ax-popup-body-container>ng-component>div{width:fit-content!important}.ax-popup.ax-popup-xs:not(.ax-popup-resizable){width:18vw!important;max-width:100vw}.ax-popup.ax-popup-sm:not(.ax-popup-resizable){width:25vw!important;max-width:100vw}.ax-popup.ax-popup-md:not(.ax-popup-resizable){width:40vw!important;max-width:100vw}.ax-popup.ax-popup-lg:not(.ax-popup-resizable){width:65vw!important;max-width:100vw}.ax-popup.ax-popup-xl:not(.ax-popup-resizable){width:75vw!important;max-width:100vw}.ax-popup.ax-popup-2xl:not(.ax-popup-resizable){width:85vw!important;max-width:100vw}.ax-popup.ax-popup-resizable{max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));--ax-comp-resizable-corner-size: 12px}.ax-popup.ax-popup-resizable.ax-popup-xs{width:18vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-sm{width:25vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-md{width:40vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-lg{width:65vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-xl{width:75vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-2xl{width:85vw;max-width:100vw}.ax-popup.ax-popup-minimized{z-index:55;width:fit-content!important;max-width:min(90vw,24rem)!important;border-top-left-radius:var(--radius-2xl, 1rem);border-top-right-radius:var(--radius-2xl, 1rem);border-bottom-right-radius:0!important;border-bottom-left-radius:0!important;position:fixed!important;bottom:0!important;min-width:0;max-height:none;height:auto!important;min-height:0}.ax-popup.ax-popup-minimized .ax-popup-main-container{display:none}.ax-popup.ax-popup-minimized .ax-popup-header{max-width:100%;gap:calc(var(--spacing, .25rem) * 2)}.ax-popup.ax-popup-minimized .ax-popup-header-container .ax-popup-header .ax-popup-title{max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading: calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5);--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}@media(min-width:48rem){.ax-popup.ax-popup-minimized .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)))}}@media(min-width:48rem){.ax-popup.ax-popup-minimized .ax-popup-header-container .ax-popup-header .ax-popup-title{--tw-leading: calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5)}}.ax-popup.ax-popup-minimized-end{right:0}.ax-popup.ax-popup-minimized-start{left:0}@media screen and (max-width:768px){.ax-popup:not(.ax-popup-fit):not(.ax-popup-minimized):not(.ax-popup-resizable){width:93vw!important;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh))!important;border-radius:var(--ax-comp-popup-border-radius)}.ax-popup:not(.ax-popup-fit):not(.ax-popup-minimized):not(.ax-popup-resizable):not(.ax-popup-full) .ax-popup-body-container>ng-component>div{width:100%}.ax-popup:not(.ax-popup-fit):not(.ax-popup-minimized):not(.ax-popup-resizable).ax-popup-full{height:calc(var(--ax-overlay-full-width) * var(--ax-vh));border-radius:var(--ax-comp-popup-border-radius)!important}}.ax-dark .ax-popup{--ax-comp-popup-border-color: var(--ax-sys-color-border-darkest-surface);--ax-comp-popup-body-bg-color: var(--ax-sys-color-darker-surface);--ax-comp-popup-body-text-color: var(--ax-sys-color-on-darker-surface);--ax-comp-popup-header-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-popup-header-border-color: var(--ax-sys-color-border-dark-surface);--ax-comp-popup-footer-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-popup-footer-border-color: var(--ax-sys-color-border-dark-surface)}}.ax-popup-header-actions :is(ax-chrome-button,ax-close-button) ax-button.ax-chrome-button-action.ax-button-icon>button.ax-blank-interactive{min-width:1.625rem;min-height:1.625rem;padding:.25rem}.ax-popup-header-actions ax-close-button ax-button.ax-chrome-button-action.ax-button-icon>button.ax-blank-interactive i{--ax-sys-icon-size: .875rem;font-size:.875rem}:root{--ax-comp-popup-border-radius: var(--ax-sys-border-radius);--ax-comp-popup-border-color: var(--ax-sys-color-border-lightest-surface);--ax-comp-popup-body-bg-color: var(--ax-sys-color-lightest-surface);--ax-comp-popup-body-text-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-popup-header-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-popup-header-border-color: var(--ax-sys-color-border-lighter-surface);--ax-comp-popup-footer-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-popup-footer-border-color: var(--ax-sys-color-border-lighter-surface)}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-outline-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-leading{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-outline-style: solid;--tw-font-weight: initial;--tw-leading: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
652
+ }], ctorParameters: () => [], propDecorators: { contentContainerRef: [{
456
653
  type: ViewChild,
457
- args: ['contentContainer', { read: ViewContainerRef, static: true }]
654
+ args: ['contentOutlet', { read: ViewContainerRef, static: true }]
458
655
  }], contentContainerEl: [{
459
656
  type: ViewChild,
460
657
  args: ['contentContainer', { static: true }]
461
- }], popupEl: [{ type: i0.ViewChild, args: ['popupEl', { isSignal: true }] }], __content__: [{ type: i0.Input, args: [{ isSignal: true, alias: "__content__", required: false }] }], __config__: [{ type: i0.Input, args: [{ isSignal: true, alias: "__config__", required: false }] }], __popupRef__: [{ type: i0.Input, args: [{ isSignal: true, alias: "__popupRef__", required: false }] }], __id__: [{ type: i0.Input, args: [{ isSignal: true, alias: "__id__", required: false }] }], onKeydownHandler: [{
658
+ }], dragDir: [{
659
+ type: ViewChild,
660
+ args: ['popupEl', { read: AXDragDirective, static: true }]
661
+ }], popupEl: [{ type: i0.ViewChild, args: ['popupEl', { isSignal: true }] }], projectedHandles: [{ type: i0.ViewChildren, args: [i0.forwardRef(() => AXDragHandleDirective), { isSignal: true }] }], __content__: [{ type: i0.Input, args: [{ isSignal: true, alias: "__content__", required: false }] }], __config__: [{ type: i0.Input, args: [{ isSignal: true, alias: "__config__", required: false }] }], __popupRef__: [{ type: i0.Input, args: [{ isSignal: true, alias: "__popupRef__", required: false }] }], __id__: [{ type: i0.Input, args: [{ isSignal: true, alias: "__id__", required: false }] }], onKeydownHandler: [{
462
662
  type: HostListener,
463
663
  args: ['keydown.escape']
464
- }], onDragMove: [{
465
- type: HostListener,
466
- args: ['document:mousemove', ['$event']]
467
- }], onDragEnd: [{
468
- type: HostListener,
469
- args: ['document:mouseup']
470
664
  }] } });
471
665
 
666
+ const OVERLAY_HIDDEN_CLASS = 'ax-popup-overlay-hidden';
472
667
  /**
473
668
  * This is a service which you can create popup with it
474
669
  *
@@ -478,6 +673,11 @@ class AXPopupService {
478
673
  constructor() {
479
674
  this.popupList = new Map();
480
675
  this.overlayService = inject(AXOverlayService);
676
+ this.injector = inject(Injector);
677
+ this.dockCounts = signal({}, /* @ts-ignore */
678
+ ...(ngDevMode ? [{ debugName: "dockCounts" }] : /* istanbul ignore next */ []));
679
+ this.minimizedByDock = signal({}, /* @ts-ignore */
680
+ ...(ngDevMode ? [{ debugName: "minimizedByDock" }] : /* istanbul ignore next */ []));
481
681
  }
482
682
  /**
483
683
  * @ignore
@@ -504,6 +704,50 @@ class AXPopupService {
504
704
  async openRef(content, config) {
505
705
  return this.openInternal(content, this.mergeConfig(config));
506
706
  }
707
+ hasDock(name) {
708
+ return (this.dockCounts()[name] ?? 0) > 0;
709
+ }
710
+ registerDock(name) {
711
+ this.dockCounts.update((counts) => ({
712
+ ...counts,
713
+ [name]: (counts[name] ?? 0) + 1,
714
+ }));
715
+ }
716
+ unregisterDock(name) {
717
+ const remaining = Math.max(0, (this.dockCounts()[name] ?? 0) - 1);
718
+ this.dockCounts.update((counts) => ({
719
+ ...counts,
720
+ [name]: remaining,
721
+ }));
722
+ if (remaining > 0) {
723
+ return;
724
+ }
725
+ const ids = this.minimizedByDock()[name] ?? [];
726
+ for (const id of [...ids]) {
727
+ const instance = this.getPopupInstance(id);
728
+ instance?.enterMinimized(false);
729
+ this.setOverlayVisible(id, true);
730
+ }
731
+ this.minimizedByDock.update((map) => {
732
+ if (!(name in map)) {
733
+ return map;
734
+ }
735
+ const next = { ...map };
736
+ delete next[name];
737
+ return next;
738
+ });
739
+ }
740
+ minimizedInDock(dock) {
741
+ const ids = this.minimizedByDock()[dock] ?? [];
742
+ return ids.map((id) => this.toDockItem(id)).filter((item) => !!item);
743
+ }
744
+ reorderMinimized(dock, fromIndex, toIndex) {
745
+ this.minimizedByDock.update((map) => {
746
+ const list = [...(map[dock] ?? [])];
747
+ moveItemInArray(list, fromIndex, toIndex);
748
+ return { ...map, [dock]: list };
749
+ });
750
+ }
507
751
  mergeConfig(arg2) {
508
752
  const config = {
509
753
  closeButton: true,
@@ -516,13 +760,13 @@ class AXPopupService {
516
760
  closeOnBackdropClick: false,
517
761
  data: {},
518
762
  closeOnNavigation: true,
519
- panelClass: ['animate-fadeIn', 'animate-fast'],
520
763
  buttons: {
521
764
  close: true,
522
765
  maximize: false,
523
766
  minimize: {
524
767
  enable: false,
525
768
  position: 'bottom-right',
769
+ dock: 'default',
526
770
  },
527
771
  },
528
772
  };
@@ -539,6 +783,7 @@ class AXPopupService {
539
783
  minimize: {
540
784
  enable: false,
541
785
  position: 'bottom-right',
786
+ dock: 'default',
542
787
  ...config.buttons?.minimize,
543
788
  ...buttons.minimize,
544
789
  },
@@ -553,6 +798,14 @@ class AXPopupService {
553
798
  async openInternal(content, config) {
554
799
  const randomId = Math.floor(Math.random() * 100000000000);
555
800
  const onClose = new Subject();
801
+ const onStateChange = new Subject();
802
+ const state = signal('normal', /* @ts-ignore */
803
+ ...(ngDevMode ? [{ debugName: "state" }] : /* istanbul ignore next */ []));
804
+ const title = signal(config.title ?? '', /* @ts-ignore */
805
+ ...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
806
+ const isMinimized = runInInjectionContext(this.injector, () => computed(() => state() === 'minimized'));
807
+ const isMaximized = runInInjectionContext(this.injector, () => computed(() => state() === 'maximized'));
808
+ const dock = resolvePopupMinimize(config).dock;
556
809
  const returnRef = {
557
810
  close: (data) => {
558
811
  this.close(randomId, data);
@@ -560,8 +813,9 @@ class AXPopupService {
560
813
  setInputs: (values) => {
561
814
  this.setInputs(randomId, values);
562
815
  },
563
- setTitle: (title) => {
564
- this.setTitle(randomId, title);
816
+ setTitle: (value) => {
817
+ title.set(value);
818
+ this.setTitle(randomId, value);
565
819
  },
566
820
  minimize: () => {
567
821
  this.minimize(randomId);
@@ -576,7 +830,19 @@ class AXPopupService {
576
830
  this.bringToFront(randomId);
577
831
  },
578
832
  onClose,
833
+ onStateChange,
834
+ state: state.asReadonly(),
835
+ title: title.asReadonly(),
836
+ isMinimized,
837
+ isMaximized,
579
838
  _getStackIndex: () => this.getMapIndexOf(randomId),
839
+ _setState: (next) => {
840
+ if (state() === next) {
841
+ return;
842
+ }
843
+ state.set(next);
844
+ onStateChange.next(next);
845
+ },
580
846
  };
581
847
  if (config._bindContentInputs) {
582
848
  config.inputs = {
@@ -585,20 +851,21 @@ class AXPopupService {
585
851
  };
586
852
  }
587
853
  const panelClasses = ['ax-popup-overlay'];
588
- if (config.panelClass) {
854
+ if (config.panelClass?.length) {
589
855
  panelClasses.push(...config.panelClass);
590
856
  }
591
857
  const ref = await this.overlayService.create(AXPopupComponent, {
592
858
  contextElement: config.contextElement,
593
859
  visualContextScope: 'theme',
860
+ closeOnNavigation: config.closeOnNavigation,
594
861
  backdrop: {
595
862
  enabled: config.hasBackdrop ?? true,
596
863
  background: true,
597
- // Dispose is handled via onDispose so close goes through onClose.
598
864
  closeOnClick: config.closeOnBackdropClick ?? false,
599
865
  backdropClass: config.backdropClass,
600
866
  },
601
867
  panelClass: panelClasses,
868
+ animation: config.animation ?? true,
602
869
  inputs: {
603
870
  __content__: content,
604
871
  __config__: config,
@@ -606,33 +873,35 @@ class AXPopupService {
606
873
  __id__: randomId,
607
874
  },
608
875
  onDispose: () => {
609
- // Backdrop click (or external dispose) — complete close pipeline if still open.
610
876
  const entry = this.popupList.get(randomId);
611
877
  if (!entry)
612
878
  return;
879
+ this.removeFromDock(randomId);
613
880
  this.popupList.delete(randomId);
614
881
  entry.popup.onClose.next(undefined);
615
882
  entry.popup.onClose.complete();
883
+ entry.popup.onStateChange.complete();
616
884
  },
617
885
  });
618
- this.popupList.set(randomId, { overlay: ref, popup: returnRef });
886
+ this.popupList.set(randomId, {
887
+ overlay: ref,
888
+ popup: returnRef,
889
+ dock,
890
+ data: config.data,
891
+ });
619
892
  return returnRef;
620
893
  }
621
- /**
622
- * Closes a popup by its ID.
623
- */
624
894
  close(id, data) {
625
895
  const ref = this.popupList.get(id);
626
896
  if (!ref)
627
897
  return;
898
+ this.removeFromDock(id);
628
899
  this.popupList.delete(id);
629
900
  ref.popup.onClose.next(data);
630
901
  ref.popup.onClose.complete();
902
+ ref.popup.onStateChange.complete();
631
903
  ref.overlay.dispose();
632
904
  }
633
- /**
634
- * Sets input values for a popup by its ID.
635
- */
636
905
  setInputs(id, values) {
637
906
  const ref = this.popupList.get(id)?.overlay.instance;
638
907
  if (!ref)
@@ -642,9 +911,6 @@ class AXPopupService {
642
911
  componentInstance.setContentInputs(values);
643
912
  }
644
913
  }
645
- /**
646
- * Sets the title for a popup by its ID.
647
- */
648
914
  setTitle(id, title) {
649
915
  const ref = this.popupList.get(id)?.overlay.instance;
650
916
  if (!ref)
@@ -655,20 +921,47 @@ class AXPopupService {
655
921
  }
656
922
  }
657
923
  minimize(id) {
924
+ const entry = this.popupList.get(id);
658
925
  const instance = this.getPopupInstance(id);
659
- instance?.minimize();
926
+ if (!entry || !instance || entry.popup.state() === 'minimized')
927
+ return;
928
+ const docked = this.hasDock(entry.dock);
929
+ instance.enterMinimized(docked);
930
+ entry.popup._setState?.('minimized');
931
+ if (docked) {
932
+ this.addToDock(id, entry.dock);
933
+ this.setOverlayVisible(id, false);
934
+ }
660
935
  }
661
936
  maximize(id) {
937
+ const entry = this.popupList.get(id);
662
938
  const instance = this.getPopupInstance(id);
663
- instance?.maximize();
939
+ if (!entry || !instance)
940
+ return;
941
+ if (entry.popup.state() === 'minimized') {
942
+ this.restore(id);
943
+ }
944
+ instance.enterMaximized();
664
945
  }
665
946
  restore(id) {
947
+ const entry = this.popupList.get(id);
666
948
  const instance = this.getPopupInstance(id);
667
- instance?.restore();
949
+ if (!entry || !instance)
950
+ return;
951
+ const current = entry.popup.state();
952
+ if (current === 'normal') {
953
+ return;
954
+ }
955
+ if (current === 'maximized') {
956
+ instance.exitMaximized();
957
+ return;
958
+ }
959
+ instance.exitMinimized();
960
+ this.removeFromDock(id);
961
+ this.setOverlayVisible(id, true);
962
+ entry.popup._setState?.('normal');
963
+ this.bringToFront(id);
668
964
  }
669
- /**
670
- * Gets the index of a popup in the open stack (used for minimized bar positioning).
671
- */
672
965
  getMapIndexOf(targetKey) {
673
966
  let index = 0;
674
967
  for (const key of this.popupList.keys()) {
@@ -679,15 +972,66 @@ class AXPopupService {
679
972
  }
680
973
  return -1;
681
974
  }
682
- /**
683
- * Brings a popup to the front of all other overlays.
684
- */
685
975
  bringToFront(id) {
686
976
  const ref = this.popupList.get(id);
687
977
  if (!ref)
688
978
  return;
689
979
  ref.overlay.bringToFront();
690
980
  }
981
+ markMaximized(id, maximized) {
982
+ const entry = this.popupList.get(id);
983
+ if (!entry || entry.popup.state() === 'minimized') {
984
+ return;
985
+ }
986
+ entry.popup._setState?.(maximized ? 'maximized' : 'normal');
987
+ }
988
+ addToDock(id, dock) {
989
+ this.minimizedByDock.update((map) => {
990
+ const list = map[dock] ?? [];
991
+ if (list.includes(id)) {
992
+ return map;
993
+ }
994
+ return { ...map, [dock]: [...list, id] };
995
+ });
996
+ }
997
+ removeFromDock(id) {
998
+ this.minimizedByDock.update((map) => {
999
+ let changed = false;
1000
+ const next = {};
1001
+ for (const [dock, ids] of Object.entries(map)) {
1002
+ const filtered = ids.filter((item) => item !== id);
1003
+ next[dock] = filtered;
1004
+ if (filtered.length !== ids.length) {
1005
+ changed = true;
1006
+ }
1007
+ }
1008
+ return changed ? next : map;
1009
+ });
1010
+ }
1011
+ setOverlayVisible(id, visible) {
1012
+ const overlay = this.popupList.get(id)?.overlay;
1013
+ if (!overlay)
1014
+ return;
1015
+ overlay.overlayElement?.classList.toggle(OVERLAY_HIDDEN_CLASS, !visible);
1016
+ overlay.backdropElement?.classList.toggle(OVERLAY_HIDDEN_CLASS, !visible);
1017
+ overlay.overlayElement?.toggleAttribute('aria-hidden', !visible);
1018
+ overlay.backdropElement?.toggleAttribute('aria-hidden', !visible);
1019
+ }
1020
+ toDockItem(id) {
1021
+ const entry = this.popupList.get(id);
1022
+ if (!entry) {
1023
+ return null;
1024
+ }
1025
+ return {
1026
+ id,
1027
+ title: entry.popup.title,
1028
+ data: entry.data,
1029
+ ref: entry.popup,
1030
+ restore: () => entry.popup.restore(),
1031
+ maximize: () => entry.popup.maximize(),
1032
+ close: () => entry.popup.close(),
1033
+ };
1034
+ }
691
1035
  getPopupInstance(id) {
692
1036
  const ref = this.popupList.get(id)?.overlay.instance;
693
1037
  if (!ref)
@@ -697,16 +1041,121 @@ class AXPopupService {
697
1041
  }
698
1042
  return null;
699
1043
  }
700
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPopupService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
701
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPopupService, providedIn: 'root' }); }
1044
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1045
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupService, providedIn: 'root' }); }
702
1046
  }
703
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPopupService, decorators: [{
1047
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupService, decorators: [{
704
1048
  type: Injectable,
705
1049
  args: [{
706
1050
  providedIn: 'root',
707
1051
  }]
708
1052
  }] });
709
1053
 
1054
+ /**
1055
+ * Binds `[axDragHandle]` nodes inside a dock tab (including projected templates)
1056
+ * to the parent `axDrag` wrapper.
1057
+ */
1058
+ class AXPopupDockItemDirective {
1059
+ constructor() {
1060
+ this.host = inject(ElementRef);
1061
+ this.drag = inject(AXDragDirective);
1062
+ this.injector = Injector.create({
1063
+ parent: inject(Injector),
1064
+ providers: [{ provide: AX_DRAG_PARENT, useValue: this.drag }],
1065
+ });
1066
+ afterRenderEffect(() => {
1067
+ this.host.nativeElement.querySelectorAll('[axDragHandle]').forEach((element) => {
1068
+ this.drag.registerHandle(element);
1069
+ });
1070
+ });
1071
+ }
1072
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupDockItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1073
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.6", type: AXPopupDockItemDirective, isStandalone: true, selector: "[axPopupDockItem]", exportAs: ["axPopupDockItem"], ngImport: i0 }); }
1074
+ }
1075
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupDockItemDirective, decorators: [{
1076
+ type: Directive,
1077
+ args: [{
1078
+ selector: '[axPopupDockItem]',
1079
+ exportAs: 'axPopupDockItem',
1080
+ }]
1081
+ }], ctorParameters: () => [] });
1082
+
1083
+ /**
1084
+ * Page-hosted dock for minimized popups. Place it anywhere in the app; matching
1085
+ * `buttons.minimize.dock` names send hidden windows here as reorderable tabs.
1086
+ *
1087
+ * @example
1088
+ * ```html
1089
+ * <ax-popup-dock name="taskbar">
1090
+ * <ng-template let-item>
1091
+ * <button axDragHandle (click)="item.restore()">{{ item.title() }}</button>
1092
+ * <button (click)="item.close()">Close</button>
1093
+ * </ng-template>
1094
+ * </ax-popup-dock>
1095
+ * ```
1096
+ */
1097
+ class AXPopupDockComponent extends NXComponent {
1098
+ constructor() {
1099
+ super();
1100
+ this.popupService = inject(AXPopupService);
1101
+ /**
1102
+ * Dock name matched against `buttons.minimize.dock`.
1103
+ * @defaultValue 'default'
1104
+ */
1105
+ this.name = input('default', /* @ts-ignore */
1106
+ ...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
1107
+ /**
1108
+ * Layout of the tab strip.
1109
+ * @defaultValue 'horizontal'
1110
+ */
1111
+ this.orientation = input('horizontal', /* @ts-ignore */
1112
+ ...(ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []));
1113
+ this.itemTemplate = contentChild(TemplateRef, /* @ts-ignore */
1114
+ ...(ngDevMode ? [{ debugName: "itemTemplate" }] : /* istanbul ignore next */ []));
1115
+ this.items = computed(() => this.popupService.minimizedInDock(this.name()), /* @ts-ignore */
1116
+ ...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
1117
+ effect((onCleanup) => {
1118
+ const name = this.name();
1119
+ this.popupService.registerDock(name);
1120
+ onCleanup(() => this.popupService.unregisterDock(name));
1121
+ });
1122
+ }
1123
+ onDropped(event) {
1124
+ if (event.previousIndex < 0 || event.currentIndex < 0 || event.previousIndex === event.currentIndex) {
1125
+ return;
1126
+ }
1127
+ this.popupService.reorderMinimized(this.name(), event.previousIndex, event.currentIndex);
1128
+ }
1129
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupDockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1130
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: AXPopupDockComponent, isStandalone: true, selector: "ax-popup-dock", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.ax-popup-dock-empty": "items().length === 0", "class.ax-popup-dock-vertical": "orientation() === \"vertical\"", "class.ax-popup-dock-horizontal": "orientation() === \"horizontal\"" }, classAttribute: "ax-popup-dock" }, providers: [{ provide: AXComponent, useExisting: AXPopupDockComponent }], queries: [{ propertyName: "itemTemplate", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"ax-popup-dock-list\"\n axDropList\n [dropListOrientation]=\"orientation()\"\n (dropListDropped)=\"onDropped($event)\"\n>\n @for (item of items(); track item.id) {\n <div\n axDrag\n axPopupDockItem\n #dockItem=\"axPopupDockItem\"\n class=\"ax-popup-dock-item\"\n [dragData]=\"item.id\"\n dragCursor=\"grab\"\n >\n @if (itemTemplate(); as tpl) {\n <ng-container\n [ngTemplateOutlet]=\"tpl\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n [ngTemplateOutletInjector]=\"dockItem.injector\"\n />\n } @else {\n <div class=\"ax-popup-dock-tab\">\n <span axDragHandle class=\"ax-popup-dock-tab-title\" (click)=\"item.restore()\">\n {{ item.title() }}\n </span>\n <div class=\"ax-popup-dock-tab-actions\" (pointerdown)=\"$event.stopPropagation()\">\n <ax-chrome-button class=\"ax-sm\" title=\"Restore\" (click)=\"item.restore()\">\n <ax-popup-caption-icon name=\"restore\" />\n </ax-chrome-button>\n <ax-chrome-button class=\"ax-sm\" title=\"Maximize\" (click)=\"item.maximize()\">\n <ax-popup-caption-icon name=\"maximize\" />\n </ax-chrome-button>\n <ax-chrome-button class=\"ax-sm\" title=\"Close\" (click)=\"item.close()\">\n <ax-popup-caption-icon name=\"close\" />\n </ax-chrome-button>\n </div>\n </div>\n }\n </div>\n }\n</div>\n", styles: ["@layer properties;@layer components{.ax-popup-dock{pointer-events:auto;display:flex;max-width:100%;z-index:10000}.ax-popup-dock.ax-popup-dock-empty{display:none}.ax-popup-dock-list{display:flex;max-width:100%;align-items:stretch;gap:calc(var(--spacing, .25rem) * 2)}.ax-popup-dock-horizontal .ax-popup-dock-list{flex-direction:row;overflow:auto}.ax-popup-dock-vertical .ax-popup-dock-list{flex-direction:column}.ax-popup-dock-tab{display:flex;max-width:calc(var(--spacing, .25rem) * 72);min-width:calc(var(--spacing, .25rem) * 40);align-items:center;gap:calc(var(--spacing, .25rem) * 2);border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-border-default);padding-inline:calc(var(--spacing, .25rem) * 2);padding-block:calc(var(--spacing, .25rem) * 1);--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);background-color:rgba(var(--ax-comp-popup-header-bg-color));color:rgba(var(--ax-comp-popup-body-text-color))}.ax-popup-dock-tab-title{min-width:calc(var(--spacing, .25rem) * 0);flex:1;cursor:grab;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);-webkit-user-select:none;user-select:none}.ax-popup-dock-tab-actions{display:flex;flex-shrink:0;align-items:center;gap:calc(var(--spacing, .25rem) * 2)}.ax-popup-dock-tab-actions .ax-popup-caption-icon{width:.875rem;height:.875rem}.ax-popup-dock-tab-actions ax-chrome-button{--ax-comp-text: rgba(var(--ax-comp-popup-body-text-color))}}.ax-popup-dock-tab-actions ax-chrome-button ax-button.ax-chrome-button-action.ax-button-icon>button.ax-blank-interactive{min-width:1.625rem;min-height:1.625rem;padding:.25rem}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: \"*\"; inherits: false;}@property --tw-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: \"*\"; inherits: false;}@property --tw-inset-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: \"*\"; inherits: false;}@property --tw-ring-offset-width{syntax: \"<length>\"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: \"*\"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000;--tw-font-weight: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: AXDragDirective, selector: "[axDrag]", inputs: ["axDrag", "dragData", "dragDisabled", "dragTransition", "dragElementClone", "dropZoneGroup", "dragStartDelay", "dragResetOnDblClick", "dragLockAxis", "dragClonedTemplate", "dragCursor", "dragBoundary", "dragTransitionDuration"], outputs: ["dragPositionChanged"] }, { kind: "directive", type: AXDragHandleDirective, selector: "[axDragHandle]" }, { kind: "directive", type: AXDropListDirective, selector: "[axDropList]", inputs: ["axDropList", "sortingDisabled", "dropListGroup", "dropListOrientation"], outputs: ["dropListDropped", "sortPreviewChanged"], exportAs: ["axDropList"] }, { kind: "directive", type: AXPopupDockItemDirective, selector: "[axPopupDockItem]", exportAs: ["axPopupDockItem"] }, { kind: "component", type: AXChromeButtonComponent, selector: "ax-chrome-button", inputs: ["title", "aria-label"] }, { kind: "component", type: AXPopupCaptionIconComponent, selector: "ax-popup-caption-icon", inputs: ["name"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1131
+ }
1132
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupDockComponent, decorators: [{
1133
+ type: Component,
1134
+ args: [{ selector: 'ax-popup-dock', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
1135
+ class: 'ax-popup-dock',
1136
+ '[class.ax-popup-dock-empty]': 'items().length === 0',
1137
+ '[class.ax-popup-dock-vertical]': 'orientation() === "vertical"',
1138
+ '[class.ax-popup-dock-horizontal]': 'orientation() === "horizontal"',
1139
+ }, imports: [
1140
+ NgTemplateOutlet,
1141
+ AXDragDirective,
1142
+ AXDragHandleDirective,
1143
+ AXDropListDirective,
1144
+ AXPopupDockItemDirective,
1145
+ AXChromeButtonComponent,
1146
+ AXPopupCaptionIconComponent,
1147
+ ], providers: [{ provide: AXComponent, useExisting: AXPopupDockComponent }], template: "<div\n class=\"ax-popup-dock-list\"\n axDropList\n [dropListOrientation]=\"orientation()\"\n (dropListDropped)=\"onDropped($event)\"\n>\n @for (item of items(); track item.id) {\n <div\n axDrag\n axPopupDockItem\n #dockItem=\"axPopupDockItem\"\n class=\"ax-popup-dock-item\"\n [dragData]=\"item.id\"\n dragCursor=\"grab\"\n >\n @if (itemTemplate(); as tpl) {\n <ng-container\n [ngTemplateOutlet]=\"tpl\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n [ngTemplateOutletInjector]=\"dockItem.injector\"\n />\n } @else {\n <div class=\"ax-popup-dock-tab\">\n <span axDragHandle class=\"ax-popup-dock-tab-title\" (click)=\"item.restore()\">\n {{ item.title() }}\n </span>\n <div class=\"ax-popup-dock-tab-actions\" (pointerdown)=\"$event.stopPropagation()\">\n <ax-chrome-button class=\"ax-sm\" title=\"Restore\" (click)=\"item.restore()\">\n <ax-popup-caption-icon name=\"restore\" />\n </ax-chrome-button>\n <ax-chrome-button class=\"ax-sm\" title=\"Maximize\" (click)=\"item.maximize()\">\n <ax-popup-caption-icon name=\"maximize\" />\n </ax-chrome-button>\n <ax-chrome-button class=\"ax-sm\" title=\"Close\" (click)=\"item.close()\">\n <ax-popup-caption-icon name=\"close\" />\n </ax-chrome-button>\n </div>\n </div>\n }\n </div>\n }\n</div>\n", styles: ["@layer properties;@layer components{.ax-popup-dock{pointer-events:auto;display:flex;max-width:100%;z-index:10000}.ax-popup-dock.ax-popup-dock-empty{display:none}.ax-popup-dock-list{display:flex;max-width:100%;align-items:stretch;gap:calc(var(--spacing, .25rem) * 2)}.ax-popup-dock-horizontal .ax-popup-dock-list{flex-direction:row;overflow:auto}.ax-popup-dock-vertical .ax-popup-dock-list{flex-direction:column}.ax-popup-dock-tab{display:flex;max-width:calc(var(--spacing, .25rem) * 72);min-width:calc(var(--spacing, .25rem) * 40);align-items:center;gap:calc(var(--spacing, .25rem) * 2);border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-border-default);padding-inline:calc(var(--spacing, .25rem) * 2);padding-block:calc(var(--spacing, .25rem) * 1);--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);background-color:rgba(var(--ax-comp-popup-header-bg-color));color:rgba(var(--ax-comp-popup-body-text-color))}.ax-popup-dock-tab-title{min-width:calc(var(--spacing, .25rem) * 0);flex:1;cursor:grab;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);-webkit-user-select:none;user-select:none}.ax-popup-dock-tab-actions{display:flex;flex-shrink:0;align-items:center;gap:calc(var(--spacing, .25rem) * 2)}.ax-popup-dock-tab-actions .ax-popup-caption-icon{width:.875rem;height:.875rem}.ax-popup-dock-tab-actions ax-chrome-button{--ax-comp-text: rgba(var(--ax-comp-popup-body-text-color))}}.ax-popup-dock-tab-actions ax-chrome-button ax-button.ax-chrome-button-action.ax-button-icon>button.ax-blank-interactive{min-width:1.625rem;min-height:1.625rem;padding:.25rem}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: \"*\"; inherits: false;}@property --tw-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: \"*\"; inherits: false;}@property --tw-inset-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: \"*\"; inherits: false;}@property --tw-ring-offset-width{syntax: \"<length>\"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: \"*\"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000;--tw-font-weight: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
1148
+ }], ctorParameters: () => [], propDecorators: { name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], itemTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }] } });
1149
+
1150
+ class AXPopupFooterComponent {
1151
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1152
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.6", type: AXPopupFooterComponent, isStandalone: true, selector: "ax-popup-footer", providers: [{ provide: AXComponent, useExisting: AXPopupFooterComponent }], ngImport: i0, template: "<ng-content select=\"ax-prefix\"></ng-content>\n<ng-content select=\"ax-suffix\"></ng-content>\n<ng-content></ng-content>\n", styles: ["@layer components{ax-popup-footer{display:flex;width:100%;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 2)}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], encapsulation: i0.ViewEncapsulation.None }); }
1153
+ }
1154
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupFooterComponent, decorators: [{
1155
+ type: Component,
1156
+ args: [{ selector: 'ax-popup-footer', encapsulation: ViewEncapsulation.None, providers: [{ provide: AXComponent, useExisting: AXPopupFooterComponent }], template: "<ng-content select=\"ax-prefix\"></ng-content>\n<ng-content select=\"ax-suffix\"></ng-content>\n<ng-content></ng-content>\n", styles: ["@layer components{ax-popup-footer{display:flex;width:100%;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 2)}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
1157
+ }] });
1158
+
710
1159
  /**
711
1160
  * Declarative popup host. Project content and call `open()` / `close()` on the component instance.
712
1161
  *
@@ -777,14 +1226,14 @@ class AXPopupHostComponent extends NXComponent {
777
1226
  async restore() {
778
1227
  this.ref()?.restore();
779
1228
  }
780
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPopupHostComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
781
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.8", type: AXPopupHostComponent, isStandalone: true, selector: "ax-popup-host", providers: [{ provide: AXComponent, useExisting: AXPopupHostComponent }], viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
1229
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupHostComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1230
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.6", type: AXPopupHostComponent, isStandalone: true, selector: "ax-popup-host", providers: [{ provide: AXComponent, useExisting: AXPopupHostComponent }], viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
782
1231
  <ng-template #contentTemplate>
783
1232
  <ng-content></ng-content>
784
1233
  </ng-template>
785
1234
  `, isInline: true, encapsulation: i0.ViewEncapsulation.None }); }
786
1235
  }
787
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPopupHostComponent, decorators: [{
1236
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupHostComponent, decorators: [{
788
1237
  type: Component,
789
1238
  args: [{
790
1239
  selector: 'ax-popup-host',
@@ -798,14 +1247,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
798
1247
  }]
799
1248
  }], propDecorators: { template: [{ type: i0.ViewChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }] } });
800
1249
 
801
- const COMPONENT = [AXPopupComponent, AXPopupHostComponent, AXPopupFooterComponent];
802
- const MODULES = [CommonModule, AXCommonModule, AXDecoratorModule, AXTranslationModule];
1250
+ const COMPONENT = [
1251
+ AXPopupComponent,
1252
+ AXPopupHostComponent,
1253
+ AXPopupFooterComponent,
1254
+ AXPopupDockComponent,
1255
+ AXPopupCaptionIconComponent,
1256
+ ];
1257
+ const MODULES = [CommonModule, AXCommonModule, AXButtonModule, AXDecoratorModule, AXTranslationModule];
803
1258
  class AXPopupModule {
804
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPopupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
805
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXPopupModule, imports: [CommonModule, AXCommonModule, AXDecoratorModule, AXTranslationModule, AXPopupComponent, AXPopupHostComponent, AXPopupFooterComponent], exports: [AXPopupComponent, AXPopupHostComponent, AXPopupFooterComponent] }); }
806
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPopupModule, providers: [AXPopupService], imports: [MODULES, AXPopupComponent] }); }
1259
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1260
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.6", ngImport: i0, type: AXPopupModule, imports: [CommonModule, AXCommonModule, AXButtonModule, AXDecoratorModule, AXTranslationModule, AXPopupComponent,
1261
+ AXPopupHostComponent,
1262
+ AXPopupFooterComponent,
1263
+ AXPopupDockComponent,
1264
+ AXPopupCaptionIconComponent], exports: [AXPopupComponent,
1265
+ AXPopupHostComponent,
1266
+ AXPopupFooterComponent,
1267
+ AXPopupDockComponent,
1268
+ AXPopupCaptionIconComponent] }); }
1269
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupModule, providers: [AXPopupService], imports: [MODULES, AXPopupComponent,
1270
+ AXPopupDockComponent] }); }
807
1271
  }
808
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPopupModule, decorators: [{
1272
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupModule, decorators: [{
809
1273
  type: NgModule,
810
1274
  args: [{
811
1275
  imports: [...MODULES, ...COMPONENT],
@@ -818,5 +1282,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
818
1282
  * Generated bundle index. Do not edit.
819
1283
  */
820
1284
 
821
- export { AXPopupComponent, AXPopupComponentBase, AXPopupFooterComponent, AXPopupHostComponent, AXPopupModule, AXPopupService, resolvePopupCloseButton, resolvePopupMaximizable, resolvePopupMinimize };
1285
+ export { AXPopupCaptionIconComponent, AXPopupComponent, AXPopupComponentBase, AXPopupDockComponent, AXPopupFooterComponent, AXPopupHostComponent, AXPopupModule, AXPopupService, AX_POPUP_DEFAULT_RESIZE_HANDLES, resolvePopupCloseButton, resolvePopupMaximizable, resolvePopupMinimize, resolvePopupResizable };
822
1286
  //# sourceMappingURL=acorex-components-popup.mjs.map