@acorex/components 20.2.0-next.8 → 20.2.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 (303) hide show
  1. package/accordion/index.d.ts +6 -5
  2. package/action-sheet/index.d.ts +57 -10
  3. package/alert/index.d.ts +2 -4
  4. package/aspect-ratio/README.md +3 -0
  5. package/aspect-ratio/index.d.ts +11 -0
  6. package/autocomplete/index.d.ts +7 -2
  7. package/avatar/index.d.ts +12 -6
  8. package/badge/index.d.ts +1 -2
  9. package/bottom-navigation/index.d.ts +10 -2
  10. package/breadcrumbs/index.d.ts +17 -4
  11. package/button/index.d.ts +56 -17
  12. package/button-group/index.d.ts +10 -6
  13. package/calendar/index.d.ts +32 -18
  14. package/check-box/index.d.ts +2 -5
  15. package/chips/index.d.ts +1 -2
  16. package/circular-progress/index.d.ts +23 -18
  17. package/code-editor/README.md +3 -0
  18. package/code-editor/index.d.ts +103 -0
  19. package/collapse/index.d.ts +7 -6
  20. package/color-box/index.d.ts +6 -8
  21. package/color-palette/index.d.ts +19 -24
  22. package/command/README.md +3 -0
  23. package/command/index.d.ts +60 -0
  24. package/comment/index.d.ts +18 -13
  25. package/conversation/index.d.ts +107 -78
  26. package/cron-job/index.d.ts +5 -4
  27. package/data-list/README.md +356 -0
  28. package/data-list/index.d.ts +102 -0
  29. package/data-pager/index.d.ts +22 -17
  30. package/data-table/index.d.ts +59 -3
  31. package/datetime-box/index.d.ts +12 -15
  32. package/datetime-input/index.d.ts +2 -4
  33. package/datetime-picker/index.d.ts +12 -11
  34. package/decorators/index.d.ts +2 -2
  35. package/dialog/index.d.ts +29 -4
  36. package/drawer-2/index.d.ts +22 -8
  37. package/dropdown/index.d.ts +44 -3
  38. package/dropdown-button/index.d.ts +7 -2
  39. package/fesm2022/acorex-components-accordion.mjs +74 -72
  40. package/fesm2022/acorex-components-accordion.mjs.map +1 -1
  41. package/fesm2022/acorex-components-action-sheet.mjs +78 -48
  42. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  43. package/fesm2022/acorex-components-alert.mjs +13 -17
  44. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  45. package/fesm2022/acorex-components-aspect-ratio.mjs +36 -0
  46. package/fesm2022/acorex-components-aspect-ratio.mjs.map +1 -0
  47. package/fesm2022/acorex-components-audio-wave.mjs +7 -7
  48. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  49. package/fesm2022/acorex-components-autocomplete.mjs +32 -11
  50. package/fesm2022/acorex-components-autocomplete.mjs.map +1 -1
  51. package/fesm2022/acorex-components-avatar.mjs +24 -21
  52. package/fesm2022/acorex-components-avatar.mjs.map +1 -1
  53. package/fesm2022/acorex-components-badge.mjs +9 -11
  54. package/fesm2022/acorex-components-badge.mjs.map +1 -1
  55. package/fesm2022/acorex-components-bottom-navigation.mjs +18 -16
  56. package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
  57. package/fesm2022/acorex-components-breadcrumbs.mjs +36 -21
  58. package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
  59. package/fesm2022/acorex-components-button-group.mjs +35 -26
  60. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  61. package/fesm2022/acorex-components-button.mjs +78 -38
  62. package/fesm2022/acorex-components-button.mjs.map +1 -1
  63. package/fesm2022/acorex-components-calendar.mjs +76 -47
  64. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  65. package/fesm2022/acorex-components-check-box.mjs +11 -14
  66. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  67. package/fesm2022/acorex-components-chips.mjs +9 -11
  68. package/fesm2022/acorex-components-chips.mjs.map +1 -1
  69. package/fesm2022/acorex-components-circular-progress.mjs +31 -26
  70. package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
  71. package/fesm2022/acorex-components-code-editor.mjs +591 -0
  72. package/fesm2022/acorex-components-code-editor.mjs.map +1 -0
  73. package/fesm2022/acorex-components-collapse.mjs +21 -21
  74. package/fesm2022/acorex-components-collapse.mjs.map +1 -1
  75. package/fesm2022/acorex-components-color-box.mjs +39 -33
  76. package/fesm2022/acorex-components-color-box.mjs.map +1 -1
  77. package/fesm2022/acorex-components-color-palette.mjs +69 -85
  78. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  79. package/fesm2022/acorex-components-command.mjs +144 -0
  80. package/fesm2022/acorex-components-command.mjs.map +1 -0
  81. package/fesm2022/acorex-components-comment.mjs +51 -45
  82. package/fesm2022/acorex-components-comment.mjs.map +1 -1
  83. package/fesm2022/acorex-components-conversation.mjs +128 -90
  84. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  85. package/fesm2022/acorex-components-cron-job.mjs +54 -48
  86. package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
  87. package/fesm2022/acorex-components-data-list.mjs +386 -0
  88. package/fesm2022/acorex-components-data-list.mjs.map +1 -0
  89. package/fesm2022/acorex-components-data-pager.mjs +41 -36
  90. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  91. package/fesm2022/acorex-components-data-table.mjs +98 -42
  92. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  93. package/fesm2022/acorex-components-datetime-box.mjs +28 -36
  94. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  95. package/fesm2022/acorex-components-datetime-input.mjs +20 -18
  96. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
  97. package/fesm2022/acorex-components-datetime-picker.mjs +92 -44
  98. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  99. package/fesm2022/acorex-components-decorators.mjs +27 -27
  100. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  101. package/fesm2022/acorex-components-dialog.mjs +44 -19
  102. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  103. package/fesm2022/acorex-components-drawer-2.mjs +28 -14
  104. package/fesm2022/acorex-components-drawer-2.mjs.map +1 -1
  105. package/fesm2022/acorex-components-drawer.mjs +13 -13
  106. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  107. package/fesm2022/acorex-components-dropdown-button.mjs +16 -11
  108. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  109. package/fesm2022/acorex-components-dropdown.mjs +57 -13
  110. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  111. package/fesm2022/acorex-components-file-explorer.mjs +25 -25
  112. package/fesm2022/acorex-components-file-explorer.mjs.map +1 -1
  113. package/fesm2022/acorex-components-flow-chart.mjs +40 -16
  114. package/fesm2022/acorex-components-flow-chart.mjs.map +1 -1
  115. package/fesm2022/acorex-components-form.mjs +36 -17
  116. package/fesm2022/acorex-components-form.mjs.map +1 -1
  117. package/fesm2022/acorex-components-grid-layout-builder.mjs +125 -15
  118. package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
  119. package/fesm2022/acorex-components-image-editor.mjs +121 -92
  120. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  121. package/fesm2022/acorex-components-image.mjs +7 -7
  122. package/fesm2022/acorex-components-image.mjs.map +1 -1
  123. package/fesm2022/acorex-components-json-viewer.mjs +8 -8
  124. package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
  125. package/fesm2022/acorex-components-kanban.mjs +11 -7
  126. package/fesm2022/acorex-components-kanban.mjs.map +1 -1
  127. package/fesm2022/acorex-components-kbd.mjs +21 -29
  128. package/fesm2022/acorex-components-kbd.mjs.map +1 -1
  129. package/fesm2022/acorex-components-label.mjs +11 -15
  130. package/fesm2022/acorex-components-label.mjs.map +1 -1
  131. package/fesm2022/acorex-components-list.mjs +23 -32
  132. package/fesm2022/acorex-components-list.mjs.map +1 -1
  133. package/fesm2022/acorex-components-loading-dialog.mjs +58 -59
  134. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  135. package/fesm2022/acorex-components-loading.mjs +84 -28
  136. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  137. package/fesm2022/acorex-components-map.mjs +484 -112
  138. package/fesm2022/acorex-components-map.mjs.map +1 -1
  139. package/fesm2022/acorex-components-media-viewer.mjs +37 -37
  140. package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
  141. package/fesm2022/acorex-components-menu.mjs +67 -37
  142. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  143. package/fesm2022/{acorex-components-modal-acorex-components-modal-C4zx7OP6.mjs → acorex-components-modal-acorex-components-modal-h5Y-qcbh.mjs} +117 -40
  144. package/fesm2022/acorex-components-modal-acorex-components-modal-h5Y-qcbh.mjs.map +1 -0
  145. package/fesm2022/acorex-components-modal-modal-content.component-B6tyMLdU.mjs +235 -0
  146. package/fesm2022/acorex-components-modal-modal-content.component-B6tyMLdU.mjs.map +1 -0
  147. package/fesm2022/acorex-components-modal.mjs +1 -1
  148. package/fesm2022/acorex-components-navbar.mjs +14 -10
  149. package/fesm2022/acorex-components-navbar.mjs.map +1 -1
  150. package/fesm2022/acorex-components-notification.mjs +31 -45
  151. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  152. package/fesm2022/acorex-components-number-box-2.mjs +28 -9
  153. package/fesm2022/acorex-components-number-box-2.mjs.map +1 -1
  154. package/fesm2022/acorex-components-number-box.mjs +16 -10
  155. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  156. package/fesm2022/acorex-components-otp.mjs +14 -15
  157. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  158. package/fesm2022/acorex-components-page.mjs +10 -10
  159. package/fesm2022/acorex-components-page.mjs.map +1 -1
  160. package/fesm2022/acorex-components-paint.mjs +74 -33
  161. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  162. package/fesm2022/acorex-components-password-box.mjs +21 -18
  163. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  164. package/fesm2022/acorex-components-pdf-reader.mjs +7 -7
  165. package/fesm2022/acorex-components-pdf-reader.mjs.map +1 -1
  166. package/fesm2022/acorex-components-phone-box.mjs +51 -15
  167. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  168. package/fesm2022/acorex-components-picker.mjs +26 -16
  169. package/fesm2022/acorex-components-picker.mjs.map +1 -1
  170. package/fesm2022/acorex-components-popover.mjs +13 -18
  171. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  172. package/fesm2022/acorex-components-popup.mjs +10 -10
  173. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  174. package/fesm2022/acorex-components-progress-bar.mjs +8 -8
  175. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  176. package/fesm2022/acorex-components-qrcode.mjs +7 -7
  177. package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
  178. package/fesm2022/acorex-components-query-builder.mjs +7 -7
  179. package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
  180. package/fesm2022/acorex-components-radio.mjs +8 -8
  181. package/fesm2022/acorex-components-radio.mjs.map +1 -1
  182. package/fesm2022/acorex-components-rail-navigation.mjs +26 -16
  183. package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
  184. package/fesm2022/acorex-components-range-slider.mjs +13 -9
  185. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  186. package/fesm2022/acorex-components-rate-picker.mjs +7 -7
  187. package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
  188. package/fesm2022/acorex-components-rest-api-generator.mjs +23 -23
  189. package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
  190. package/fesm2022/acorex-components-result.mjs +7 -7
  191. package/fesm2022/acorex-components-result.mjs.map +1 -1
  192. package/fesm2022/acorex-components-routing-progress.mjs +7 -7
  193. package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
  194. package/fesm2022/acorex-components-rrule.mjs +222 -102
  195. package/fesm2022/acorex-components-rrule.mjs.map +1 -1
  196. package/fesm2022/acorex-components-scheduler.mjs +1581 -167
  197. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  198. package/fesm2022/acorex-components-scss.mjs +4 -4
  199. package/fesm2022/acorex-components-scss.mjs.map +1 -1
  200. package/fesm2022/acorex-components-search-box.mjs +13 -7
  201. package/fesm2022/acorex-components-search-box.mjs.map +1 -1
  202. package/fesm2022/acorex-components-select-box.mjs +105 -38
  203. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  204. package/fesm2022/acorex-components-selection-list-2.mjs +12 -9
  205. package/fesm2022/acorex-components-selection-list-2.mjs.map +1 -1
  206. package/fesm2022/acorex-components-selection-list.mjs +14 -11
  207. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  208. package/fesm2022/acorex-components-side-menu.mjs +98 -43
  209. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  210. package/fesm2022/acorex-components-skeleton.mjs +7 -7
  211. package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
  212. package/fesm2022/acorex-components-slider.mjs +9 -9
  213. package/fesm2022/acorex-components-slider.mjs.map +1 -1
  214. package/fesm2022/acorex-components-sliding-item.mjs +16 -16
  215. package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
  216. package/fesm2022/acorex-components-step-wizard.mjs +31 -32
  217. package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
  218. package/fesm2022/acorex-components-switch.mjs +12 -12
  219. package/fesm2022/acorex-components-switch.mjs.map +1 -1
  220. package/fesm2022/acorex-components-tabs.mjs +26 -19
  221. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  222. package/fesm2022/acorex-components-tag-box.mjs +55 -21
  223. package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
  224. package/fesm2022/acorex-components-tag.mjs +8 -8
  225. package/fesm2022/acorex-components-tag.mjs.map +1 -1
  226. package/fesm2022/acorex-components-text-area.mjs +17 -12
  227. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  228. package/fesm2022/acorex-components-text-box.mjs +29 -13
  229. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  230. package/fesm2022/acorex-components-time-duration.mjs +15 -9
  231. package/fesm2022/acorex-components-time-duration.mjs.map +1 -1
  232. package/fesm2022/acorex-components-time-line.mjs +13 -10
  233. package/fesm2022/acorex-components-time-line.mjs.map +1 -1
  234. package/fesm2022/acorex-components-toast.mjs +59 -14
  235. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  236. package/fesm2022/acorex-components-toolbar.mjs +7 -7
  237. package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
  238. package/fesm2022/acorex-components-tooltip.mjs +12 -11
  239. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  240. package/fesm2022/acorex-components-tree-view.mjs +12 -12
  241. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  242. package/fesm2022/acorex-components-uploader.mjs +252 -56
  243. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  244. package/fesm2022/acorex-components-video-player.mjs +7 -7
  245. package/fesm2022/acorex-components-video-player.mjs.map +1 -1
  246. package/fesm2022/acorex-components-wysiwyg.mjs +104 -62
  247. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  248. package/flow-chart/index.d.ts +24 -0
  249. package/form/index.d.ts +27 -13
  250. package/grid-layout-builder/index.d.ts +115 -4
  251. package/image/index.d.ts +4 -4
  252. package/image-editor/index.d.ts +17 -14
  253. package/json-viewer/index.d.ts +3 -3
  254. package/kanban/index.d.ts +7 -3
  255. package/kbd/index.d.ts +11 -11
  256. package/label/index.d.ts +1 -2
  257. package/list/index.d.ts +4 -14
  258. package/loading/index.d.ts +59 -6
  259. package/loading-dialog/index.d.ts +30 -19
  260. package/map/index.d.ts +95 -2
  261. package/menu/index.d.ts +38 -13
  262. package/modal/index.d.ts +47 -2
  263. package/navbar/index.d.ts +7 -3
  264. package/notification/index.d.ts +1 -8
  265. package/number-box/index.d.ts +1 -0
  266. package/number-box-2/index.d.ts +2 -1
  267. package/otp/index.d.ts +1 -3
  268. package/package.json +43 -4
  269. package/paint/index.d.ts +43 -7
  270. package/password-box/index.d.ts +8 -10
  271. package/phone-box/index.d.ts +18 -16
  272. package/picker/index.d.ts +10 -8
  273. package/popover/index.d.ts +2 -2
  274. package/popup/index.d.ts +2 -2
  275. package/qrcode/index.d.ts +7 -7
  276. package/query-builder/index.d.ts +1 -1
  277. package/radio/index.d.ts +1 -1
  278. package/rail-navigation/index.d.ts +12 -3
  279. package/range-slider/index.d.ts +13 -13
  280. package/rate-picker/index.d.ts +5 -5
  281. package/rest-api-generator/index.d.ts +1 -1
  282. package/rrule/index.d.ts +40 -17
  283. package/scheduler/index.d.ts +541 -191
  284. package/search-box/index.d.ts +3 -2
  285. package/select-box/index.d.ts +22 -10
  286. package/selection-list-2/index.d.ts +3 -3
  287. package/side-menu/index.d.ts +24 -15
  288. package/sliding-item/index.d.ts +4 -5
  289. package/step-wizard/index.d.ts +10 -13
  290. package/switch/index.d.ts +0 -1
  291. package/tabs/index.d.ts +6 -1
  292. package/tag-box/index.d.ts +19 -2
  293. package/text-area/index.d.ts +2 -2
  294. package/text-box/index.d.ts +3 -0
  295. package/time-duration/index.d.ts +1 -0
  296. package/time-line/index.d.ts +3 -0
  297. package/toast/index.d.ts +45 -1
  298. package/tooltip/index.d.ts +2 -1
  299. package/uploader/index.d.ts +215 -5
  300. package/wysiwyg/index.d.ts +27 -5
  301. package/fesm2022/acorex-components-modal-acorex-components-modal-C4zx7OP6.mjs.map +0 -1
  302. package/fesm2022/acorex-components-modal-modal-content.component-DfhgA_WL.mjs +0 -218
  303. package/fesm2022/acorex-components-modal-modal-content.component-DfhgA_WL.mjs.map +0 -1
@@ -1,4 +1,4 @@
1
- import { MXSelectionValueComponent, MXLookComponent, AXHotkeysService, convertArrayToDataSource, AX_SELECTION_DATA_TOKEN, AXComponent, AXFocusableComponent, AXValuableComponent, AXClearableComponent, AXClosableComponent, AXSearchableComponent, MXSelectionBridgeService, AXCommonModule } from '@acorex/cdk/common';
1
+ import { MXSelectionValueComponent, MXLookComponent, AXHotkeysService, convertArrayToDataSource, AX_SELECTION_DATA_TOKEN, AXDataSource, AXComponent, AXFocusableComponent, AXValuableComponent, AXClearableComponent, AXClosableComponent, AXSearchableComponent, MXSelectionBridgeService, AXCommonModule } from '@acorex/cdk/common';
2
2
  import { AXDecoratorGenericComponent, AXDecoratorCloseButtonComponent, AXDecoratorModule } from '@acorex/components/decorators';
3
3
  import { MXDropdownBoxBaseComponent, AXDropdownBoxComponent, AXDropdownModule } from '@acorex/components/dropdown';
4
4
  import { AXListComponent, AXListModule } from '@acorex/components/list';
@@ -11,7 +11,7 @@ import * as i0 from '@angular/core';
11
11
  import { input, inject, signal, linkedSignal, forwardRef, HostListener, ViewChild, ContentChild, Input, ViewEncapsulation, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
12
12
  import * as i1 from '@angular/forms';
13
13
  import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
14
- import { last, findLastIndex, nth } from 'lodash-es';
14
+ import { isEqual, last, findLastIndex, get, nth } from 'lodash-es';
15
15
  import { classes } from 'polytype';
16
16
  import { AXBadgeModule } from '@acorex/components/badge';
17
17
  import { AXCheckBoxModule } from '@acorex/components/check-box';
@@ -45,9 +45,9 @@ class AXSelectBoxComponent extends classes(MXDropdownBoxBaseComponent, MXSelecti
45
45
  /** @ignore */
46
46
  this.searchValue = signal('', ...(ngDevMode ? [{ debugName: "searchValue" }] : []));
47
47
  /** @ignore */
48
- this.renderList = false;
48
+ this.renderList = signal(false, ...(ngDevMode ? [{ debugName: "renderList" }] : []));
49
49
  /** @ignore */
50
- this._dropdownWidth = linkedSignal(() => this.dropdownWidth());
50
+ this._dropdownWidth = linkedSignal(() => this.dropdownWidth(), ...(ngDevMode ? [{ debugName: "_dropdownWidth" }] : []));
51
51
  /** @ignore */
52
52
  this._dropdownHeight = signal('auto', ...(ngDevMode ? [{ debugName: "_dropdownHeight" }] : []));
53
53
  /** @ignore */
@@ -73,14 +73,22 @@ class AXSelectBoxComponent extends classes(MXDropdownBoxBaseComponent, MXSelecti
73
73
  * @returns {AXDataSource<any> | any[]}
74
74
  */
75
75
  get dataSource() {
76
- return this._dataSource;
76
+ return this._originalDataSource;
77
77
  }
78
78
  /**
79
79
  * Sets the data source, either as an `AXDataSource` or an array.
80
80
  * @param {AXDataSource<any> | any[]} v
81
81
  */
82
82
  set dataSource(v) {
83
- this._dataSource = v;
83
+ // check if the data source is the same
84
+ if (Array.isArray(v) && Array.isArray(this._originalDataSource) && isEqual(v, this._originalDataSource)) {
85
+ return;
86
+ }
87
+ if (v instanceof AXDataSource && v == this._originalDataSource) {
88
+ return;
89
+ }
90
+ //
91
+ this._originalDataSource = v;
84
92
  if (Array.isArray(v)) {
85
93
  this._listDataSource = convertArrayToDataSource(v, {
86
94
  key: this.valueField,
@@ -91,52 +99,77 @@ class AXSelectBoxComponent extends classes(MXDropdownBoxBaseComponent, MXSelecti
91
99
  this._listDataSource = this.dataSource;
92
100
  }
93
101
  //
94
- //
95
- this.onChangedSubscription = this._listDataSource.onChanged.subscribe((data) => {
96
- this.setDropdownSize(data.totalCount);
102
+ this.onChangedSubscription?.unsubscribe();
103
+ this.onChangedSubscription = this._listDataSource.onChanged
104
+ .pipe(this._unsubscriber.takeUntilDestroy)
105
+ .subscribe(() => {
106
+ this.updateDropdownSize();
107
+ // Force refresh of selected items when data source changes
108
+ this.forceRefreshSelectedItems();
97
109
  });
98
- this._listDataSource.onLoadingChanged.pipe(this._unsubscriber.takeUntilDestroy).subscribe((loading) => {
110
+ //
111
+ this.onLoadingChangedSubscription?.unsubscribe();
112
+ this.onLoadingChangedSubscription = this._listDataSource.onLoadingChanged
113
+ .pipe(this._unsubscriber.takeUntilDestroy)
114
+ .subscribe((loading) => {
99
115
  this.isLoading.set(loading);
100
116
  });
117
+ // After setting data source, try to fetch item data if needed
118
+ setTimeout(() => this.fetchItemDataIfNeeded(), 0);
101
119
  }
102
120
  /** @ignore */
103
121
  ngOnInit() {
104
122
  super.ngOnInit();
105
123
  //
106
124
  this.registerValidation();
125
+ // Proactively fetch item data if we have a value but no corresponding item
126
+ this.fetchItemDataIfNeeded();
107
127
  }
108
- /** @ignore */
109
- ngAfterViewInit() {
110
- this.setDropdownSize();
128
+ /**
129
+ * Proactively fetches item data if the component has a value but no corresponding item data.
130
+ * This prevents showing "loading..." when the component has a value.
131
+ */
132
+ async fetchItemDataIfNeeded() {
133
+ if (this.value && this._listDataSource && !this.selectedItems?.length) {
134
+ try {
135
+ const item = await this.getItemByKey(this.value);
136
+ if (item) {
137
+ // Force refresh to update the display
138
+ this.forceRefreshSelectedItems();
139
+ }
140
+ }
141
+ catch (error) {
142
+ console.warn('Failed to fetch item data:', error);
143
+ }
144
+ }
111
145
  }
112
146
  /** @ignore */
113
147
  ngOnDestroy() {
114
148
  this.searchBox?.onKeyDown.unsubscribe();
115
149
  this.onChangedSubscription?.unsubscribe();
150
+ this.onLoadingChangedSubscription?.unsubscribe();
116
151
  }
117
152
  /**
118
153
  * Retrieves an item by its key.
119
154
  * @param {any} key
120
155
  */
121
156
  getItemByKey(key) {
122
- const startTime = Date.now();
123
- const check = async () => {
124
- while (Date.now() - startTime < 2000) {
125
- if (typeof this._listDataSource.find === 'function') {
126
- return this._listDataSource.find(key);
127
- }
128
- else {
129
- await new Promise((resolve) => setTimeout(resolve, 50));
130
- }
131
- }
132
- console.warn('Timeout reached without finding the "getItemByKey" method');
133
- };
134
- return check();
157
+ // Use the data source's byKey method if available
158
+ if (this._listDataSource && typeof this._listDataSource.byKey === 'function') {
159
+ return this._listDataSource.byKey(key);
160
+ }
161
+ // Fallback to find method if byKey is not available
162
+ if (this._listDataSource && typeof this._listDataSource.find === 'function') {
163
+ return this._listDataSource.find(key);
164
+ }
165
+ // If neither method is available, return null
166
+ console.warn('No byKey or find method available on data source');
167
+ return null;
135
168
  }
136
169
  /** @ignore */
137
170
  _handleOnOpenedEvent(e) {
138
- if (!this.renderList) {
139
- this.renderList = true;
171
+ if (!this.renderList()) {
172
+ this.renderList.set(true);
140
173
  this.list?.render();
141
174
  }
142
175
  else if (!this._listDataSource.totalCount || this._listDataSource.totalCount == 0) {
@@ -148,6 +181,9 @@ class AXSelectBoxComponent extends classes(MXDropdownBoxBaseComponent, MXSelecti
148
181
  component: this,
149
182
  isUserInteraction: e.isUserInteraction,
150
183
  });
184
+ this.updateDropdownSize();
185
+ // Force refresh of selected items when opening to show updated text
186
+ this.forceRefreshSelectedItems();
151
187
  }
152
188
  /** @ignore */
153
189
  _handleOnClosedEvent(e) {
@@ -200,6 +236,20 @@ class AXSelectBoxComponent extends classes(MXDropdownBoxBaseComponent, MXSelecti
200
236
  }
201
237
  }
202
238
  /** @ignore */
239
+ _handleItemClick(e) {
240
+ this.onItemClick.emit(e);
241
+ if (!this.multiple) {
242
+ this.close();
243
+ }
244
+ }
245
+ /** @ignore */
246
+ _handleItemSelected(e) {
247
+ this.onItemSelected.emit(e);
248
+ if (!this.multiple) {
249
+ this.close();
250
+ }
251
+ }
252
+ /** @ignore */
203
253
  setDropdownSize(count = 0) {
204
254
  if (this.dropdown.isActionsheetStyle) {
205
255
  const height = this._dropdownHeight();
@@ -210,10 +260,25 @@ class AXSelectBoxComponent extends classes(MXDropdownBoxBaseComponent, MXSelecti
210
260
  this._dropdownWidth.set(this.dropdownWidth() ? this.dropdownWidth() : `${this.getHostElement().offsetWidth}px`);
211
261
  this._dropdownHeight.set(count == 0 ? 'auto' : `${Math.min(5, count) * 40}px`);
212
262
  }
263
+ }
264
+ updateDropdownPosition() {
213
265
  setTimeout(() => {
214
266
  this.dropdown.updatePosition();
215
267
  });
216
268
  }
269
+ updateDropdownSize() {
270
+ setTimeout(() => {
271
+ this.setDropdownSize(this._listDataSource.totalCount);
272
+ this.updateDropdownPosition();
273
+ this.list?.render();
274
+ });
275
+ }
276
+ internalValueChanged(value) {
277
+ super.internalValueChanged(value);
278
+ this.updateDropdownPosition();
279
+ // Try to fetch item data when value changes
280
+ setTimeout(() => this.fetchItemDataIfNeeded(), 0);
281
+ }
217
282
  /** @ignore */
218
283
  _handleKeydown(e) {
219
284
  if (e.code === 'ArrowDown' || e.code === 'ArrowUp') {
@@ -243,7 +308,7 @@ class AXSelectBoxComponent extends classes(MXDropdownBoxBaseComponent, MXSelecti
243
308
  const _last = last(this.selectedItems);
244
309
  let i = -1;
245
310
  if (_last) {
246
- i = findLastIndex(items, [this.valueField, _last[this.valueField]]);
311
+ i = findLastIndex(items, [this.valueField, get(_last, this.valueField)]);
247
312
  }
248
313
  i += sign;
249
314
  if (i < 0 || i >= items.length)
@@ -287,8 +352,8 @@ class AXSelectBoxComponent extends classes(MXDropdownBoxBaseComponent, MXSelecti
287
352
  hostClickListener() {
288
353
  this.toggle();
289
354
  }
290
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXSelectBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
291
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: AXSelectBoxComponent, isStandalone: true, selector: "ax-select-box", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: false, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: false, isRequired: false, transformFunction: null }, minValue: { classPropertyName: "minValue", publicName: "minValue", isSignal: false, isRequired: false, transformFunction: null }, maxValue: { classPropertyName: "maxValue", publicName: "maxValue", isSignal: false, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: false, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: false, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: false, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: false, isRequired: false, transformFunction: null }, look: { classPropertyName: "look", publicName: "look", isSignal: false, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: false, isRequired: false, transformFunction: null }, valueField: { classPropertyName: "valueField", publicName: "valueField", isSignal: false, isRequired: false, transformFunction: null }, textField: { classPropertyName: "textField", publicName: "textField", isSignal: false, isRequired: false, transformFunction: null }, disabledField: { classPropertyName: "disabledField", publicName: "disabledField", isSignal: false, isRequired: false, transformFunction: null }, textTemplate: { classPropertyName: "textTemplate", publicName: "textTemplate", isSignal: false, isRequired: false, transformFunction: null }, selectedItems: { classPropertyName: "selectedItems", publicName: "selectedItems", isSignal: false, isRequired: false, transformFunction: null }, isItemTruncated: { classPropertyName: "isItemTruncated", publicName: "isItemTruncated", isSignal: true, isRequired: false, transformFunction: null }, showItemTooltip: { classPropertyName: "showItemTooltip", publicName: "showItemTooltip", isSignal: true, isRequired: false, transformFunction: null }, dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: false, isRequired: false, transformFunction: null }, minRecordsForSearch: { classPropertyName: "minRecordsForSearch", publicName: "minRecordsForSearch", isSignal: false, isRequired: false, transformFunction: null }, caption: { classPropertyName: "caption", publicName: "caption", isSignal: false, isRequired: false, transformFunction: null }, itemTemplate: { classPropertyName: "itemTemplate", publicName: "itemTemplate", isSignal: false, isRequired: false, transformFunction: null }, selectedTemplate: { classPropertyName: "selectedTemplate", publicName: "selectedTemplate", isSignal: false, isRequired: false, transformFunction: null }, emptyTemplate: { classPropertyName: "emptyTemplate", publicName: "emptyTemplate", isSignal: false, isRequired: false, transformFunction: null }, loadingTemplate: { classPropertyName: "loadingTemplate", publicName: "loadingTemplate", isSignal: false, isRequired: false, transformFunction: null }, dropdownWidth: { classPropertyName: "dropdownWidth", publicName: "dropdownWidth", isSignal: true, isRequired: false, transformFunction: null }, searchBoxAutoFocus: { classPropertyName: "searchBoxAutoFocus", publicName: "searchBoxAutoFocus", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", stateChange: "stateChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", readonlyChange: "readonlyChange", disabledChange: "disabledChange", onOpened: "onOpened", onClosed: "onClosed" }, host: { attributes: { "ngSkipHydration": "true" }, listeners: { "keydown": "_handleKeydown($event)", "click": "hostClickListener()" } }, providers: [
355
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSelectBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
356
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: AXSelectBoxComponent, isStandalone: true, selector: "ax-select-box", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: false, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: false, isRequired: false, transformFunction: null }, minValue: { classPropertyName: "minValue", publicName: "minValue", isSignal: false, isRequired: false, transformFunction: null }, maxValue: { classPropertyName: "maxValue", publicName: "maxValue", isSignal: false, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: false, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: false, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: false, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: false, isRequired: false, transformFunction: null }, look: { classPropertyName: "look", publicName: "look", isSignal: false, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: false, isRequired: false, transformFunction: null }, valueField: { classPropertyName: "valueField", publicName: "valueField", isSignal: false, isRequired: false, transformFunction: null }, textField: { classPropertyName: "textField", publicName: "textField", isSignal: false, isRequired: false, transformFunction: null }, disabledField: { classPropertyName: "disabledField", publicName: "disabledField", isSignal: false, isRequired: false, transformFunction: null }, textTemplate: { classPropertyName: "textTemplate", publicName: "textTemplate", isSignal: false, isRequired: false, transformFunction: null }, selectedItems: { classPropertyName: "selectedItems", publicName: "selectedItems", isSignal: false, isRequired: false, transformFunction: null }, isItemTruncated: { classPropertyName: "isItemTruncated", publicName: "isItemTruncated", isSignal: true, isRequired: false, transformFunction: null }, showItemTooltip: { classPropertyName: "showItemTooltip", publicName: "showItemTooltip", isSignal: true, isRequired: false, transformFunction: null }, dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: false, isRequired: false, transformFunction: null }, minRecordsForSearch: { classPropertyName: "minRecordsForSearch", publicName: "minRecordsForSearch", isSignal: false, isRequired: false, transformFunction: null }, caption: { classPropertyName: "caption", publicName: "caption", isSignal: false, isRequired: false, transformFunction: null }, itemTemplate: { classPropertyName: "itemTemplate", publicName: "itemTemplate", isSignal: false, isRequired: false, transformFunction: null }, selectedTemplate: { classPropertyName: "selectedTemplate", publicName: "selectedTemplate", isSignal: false, isRequired: false, transformFunction: null }, emptyTemplate: { classPropertyName: "emptyTemplate", publicName: "emptyTemplate", isSignal: false, isRequired: false, transformFunction: null }, loadingTemplate: { classPropertyName: "loadingTemplate", publicName: "loadingTemplate", isSignal: false, isRequired: false, transformFunction: null }, dropdownWidth: { classPropertyName: "dropdownWidth", publicName: "dropdownWidth", isSignal: true, isRequired: false, transformFunction: null }, searchBoxAutoFocus: { classPropertyName: "searchBoxAutoFocus", publicName: "searchBoxAutoFocus", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", stateChange: "stateChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", readonlyChange: "readonlyChange", disabledChange: "disabledChange", onOpened: "onOpened", onClosed: "onClosed", onItemSelected: "onItemSelected", onItemClick: "onItemClick" }, host: { attributes: { "ngSkipHydration": "true" }, listeners: { "keydown": "_handleKeydown($event)", "click": "hostClickListener()" } }, providers: [
292
357
  { provide: AXComponent, useExisting: AXSelectBoxComponent },
293
358
  { provide: AXFocusableComponent, useExisting: AXSelectBoxComponent },
294
359
  { provide: AXValuableComponent, useExisting: AXSelectBoxComponent },
@@ -305,9 +370,9 @@ class AXSelectBoxComponent extends classes(MXDropdownBoxBaseComponent, MXSelecti
305
370
  useClass: MXSelectionBridgeService,
306
371
  },
307
372
  AXUnsubscriber,
308
- ], queries: [{ propertyName: "searchBox", first: true, predicate: AXSearchBoxComponent, descendants: true }], viewQueries: [{ propertyName: "panel", first: true, predicate: ["panel"], descendants: true }, { propertyName: "list", first: true, predicate: AXListComponent, descendants: true }, { propertyName: "dropdown", first: true, predicate: AXDropdownBoxComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ax-dropdown-box\n [class.ax-state-multiple]=\"multiple\"\n (onOpened)=\"_handleOnOpenedEvent($event)\"\n (onClosed)=\"_handleOnClosedEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n [disabled]=\"disabled\"\n [look]=\"look\"\n [popoverWidth]=\"dropdownWidth()\"\n>\n <ng-container input>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <div\n class=\"ax-editor ax-chips-container ax-content ax-input\"\n [class.ax-state-multiple]=\"multiple\"\n [tabindex]=\"tabIndex\"\n >\n @if (selectedItems.length === 0) {\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\">\n {{ placeholder }}\n </div>\n }\n @for (item of selectedItems; track $index) {\n @if (selectedTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"selectedTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: item } }\"\n ></ng-template>\n } @else {\n <div class=\"ax-chips\">\n {{ getDisplayText(item) }}\n @if (!disabled && !readonly && multiple) {\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleBadgeRemove($event, item)\"> </span>\n }\n </div>\n }\n }\n </div>\n @if (selectedItems?.length && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n <button type=\"button\" [disabled]=\"disabled\" [tabIndex]=\"-1\" class=\"ax-editor-button\">\n @if (isLoading()) {\n <ax-loading></ax-loading>\n } @else {\n <span\n class=\"ax-icon\"\n [ngClass]=\"{\n 'ax-icon-chevron-down': !isOpen,\n 'ax-icon-chevron-up': isOpen,\n }\"\n ></span>\n }\n </button>\n <ng-content select=\"ax-suffix\"> </ng-content>\n <ng-template #search>\n <ng-content select=\"ax-search-box\"> </ng-content>\n </ng-template>\n </ng-container>\n <ng-container panel>\n <div #panel class=\"ax-select-box-panel\" [style.min-width]=\"_dropdownWidth()\">\n @if (dropdown.isActionsheetStyle) {\n <ax-header class=\"ax-solid\">\n <ax-title>{{ caption || placeholder || '@acorex:selectbox.popover.title' | translate | async }}</ax-title>\n <ax-close-button [icon]=\"multiple ? 'ax-icon ax-icon-check' : 'ax-icon ax-icon-close'\"></ax-close-button>\n </ax-header>\n }\n @if (searchBox && (!minRecordsForSearch || _listDataSource.totalCount >= minRecordsForSearch || searchValue())) {\n <div class=\"ax-search-container\">\n <ng-template [ngTemplateOutlet]=\"search\"></ng-template>\n </div>\n }\n @if (renderList) {\n <ax-list\n [readonly]=\"readonly\"\n [dataSource]=\"_listDataSource\"\n [multiple]=\"multiple\"\n [style.height]=\"_dropdownHeight()\"\n [valueField]=\"valueField\"\n [textField]=\"textField\"\n [textTemplate]=\"textTemplate\"\n [emptyTemplate]=\"emptyTemplate ?? empty\"\n [itemTemplate]=\"itemTemplate\"\n [loadingTemplate]=\"loadingTemplate\"\n [ngModel]=\"value\"\n (onValueChanged)=\"_handleValueChanged($event)\"\n [selectionMode]=\"'item'\"\n [isItemTruncated]=\"isItemTruncated()\"\n [showItemTooltip]=\"showItemTooltip()\"\n >\n </ax-list>\n <ng-template #empty>\n {{ '@acorex:common.general.no-result-found' | translate | async }}\n </ng-template>\n }\n\n @if (isLoading()) {\n @if (loadingTemplate) {\n <ng-template [ngTemplateOutlet]=\"loadingTemplate\"></ng-template>\n }\n }\n\n <ng-content select=\"ax-footer\"> </ng-content>\n </div>\n </ng-container>\n</ax-dropdown-box>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n", styles: [".ax-editor-container.ax-fill .ax-chips{--ax-comp-select-box-chips-bg-color: var(--ax-sys-color-surfaceest);--ax-comp-select-box-chips-text-color: var(--ax-sys-color-on-surface-high)}.ax-editor-container.ax-flat .ax-chips,.ax-editor-container.ax-outline .ax-chips{--ax-comp-select-box-chips-bg-color: var(--ax-sys-color-surface);--ax-comp-select-box-chips-text-color: var(--ax-sys-color-on-surface-high)}.ax-editor-container.ax-solid .ax-chips{--ax-comp-select-box-chips-bg-color: var(--ax-sys-color-light-surface);--ax-comp-select-box-chips-text-color: var(--ax-sys-color-on-light-surface)}ax-select-box .ax-chips-container{outline:0px solid transparent}.ax-xs ax-select-box,ax-select-box.ax-xs{--ax-comp-select-box-chips-padding-x: .25rem;--ax-comp-select-box-chips-padding-y: .125rem;--ax-comp-select-box-chips-font-size: .625rem;--ax-comp-editor-placeholder-space-x: .375rem}.ax-sm ax-select-box,ax-select-box.ax-sm{--ax-comp-select-box-chips-padding-x: .25rem;--ax-comp-select-box-chips-padding-y: .125rem;--ax-comp-select-box-chips-font-size: .75rem;--ax-comp-editor-placeholder-space-x: .5rem}ax-select-box,ax-select-box.ax-md{--ax-comp-select-box-chips-padding-x: .5rem;--ax-comp-select-box-chips-padding-y: .25rem;--ax-comp-select-box-chips-font-size: .875rem;--ax-comp-editor-placeholder-space-x: .75rem}.ax-lg ax-select-box,ax-select-box.ax-lg{--ax-comp-select-box-chips-padding-x: .75rem;--ax-comp-select-box-chips-padding-y: .5rem;--ax-comp-select-box-chips-font-size: 1rem;--ax-comp-editor-placeholder-space-x: .75rem}.ax-xl ax-select-box,ax-select-box.ax-xl{--ax-comp-select-box-chips-padding-x: .875rem;--ax-comp-select-box-chips-padding-y: .75rem;--ax-comp-select-box-chips-font-size: 1.125rem;--ax-comp-editor-placeholder-space-x: .75rem}ax-select-box{display:block;width:100%;border-radius:var(--ax-sys-border-radius)}ax-select-box .ax-state-disabled{opacity:.5;cursor:not-allowed}ax-select-box .ax-state-disabled .ax-content,ax-select-box .ax-state-disabled .ax-editor-button{cursor:not-allowed}ax-select-box .ax-state-disabled .ax-chips-container{cursor:not-allowed!important}ax-select-box ax-dropdown-box{border-radius:inherit!important}ax-select-box ax-dropdown-box.ax-state-multiple{height:auto;min-height:var(--ax-comp-editor-height);--ax-comp-editor-space-start-size: 0}ax-select-box ax-dropdown-box.ax-state-multiple .ax-placeholder{padding:0 var(--ax-comp-editor-placeholder-space-x)}ax-select-box .ax-chips-container{display:flex;flex:1 1 0%;min-width:0;cursor:pointer!important;-webkit-user-select:none;user-select:none;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:var(--ax-comp-select-box-chips-gap, .25rem);min-height:var(--ax-sys-size-base)}ax-select-box .ax-chips-container .ax-chips{display:block;overflow:hidden;text-wrap:nowrap;line-height:normal;text-overflow:ellipsis;padding:0 var(--ax-comp-editor-padding-x, .25rem);color:rgb(var(--ax-comp-select-box-chips-text-color));font-size:var(--ax-comp-select-box-chips-font-size)}ax-select-box .ax-chips-container.ax-state-multiple .ax-chips{background-color:rgb(var(--ax-comp-select-box-chips-bg-color));border-radius:var(--ax-comp-select-box-chips-border-radius, 999rem);border-width:var(--ax-comp-select-box-chips-border-width, 0px);padding:var(--ax-comp-select-box-chips-padding-y, .25rem) var(--ax-comp-select-box-chips-padding-x, .5rem)}ax-select-box .ax-chips-container.ax-state-multiple .ax-chips .ax-icon-close{cursor:pointer;margin-inline-start:var(--ax-comp-select-box-chips-padding-x)}ax-select-box .ax-chips-container .ax-selectbox-input{width:0px;opacity:0}ax-select-box .ax-chips-container.ax-state-multiple:has(.ax-chips){padding:var(--ax-comp-select-box-chips-container-padding, .25rem)}.ax-select-box-panel{height:fit-content}.ax-select-box-panel .ax-select-box-loading-container{display:flex;align-items:center;justify-content:center;padding:1rem}.ax-select-box-panel>ax-header .ax-icon-check{color:rgba(var(--ax-sys-color-primary-500))}.ax-select-box-panel>ax-header.ax-solid{border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface))}.ax-select-box-panel>ax-header.ax-solid ax-title{font-size:1rem;line-height:1.5rem;font-weight:500}\n"], dependencies: [{ kind: "component", type: AXDropdownBoxComponent, selector: "ax-dropdown-box", inputs: ["disabled", "look", "hasInput", "popoverWidth"], outputs: ["disabledChange", "onBlur", "onFocus", "onClick", "onOpened", "onClosed"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type: AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["closeAll", "icon"] }, { kind: "component", type: AXListComponent, selector: "ax-list", inputs: ["id", "name", "disabled", "readonly", "valueField", "textField", "textTemplate", "disabledField", "multiple", "selectionMode", "isItemTruncated", "showItemTooltip", "dataSource", "itemHeight", "itemTemplate", "emptyTemplate", "loadingTemplate", "checkbox"], outputs: ["onValueChanged", "disabledChange", "readOnlyChange", "onBlur", "onFocus", "onItemClick", "onScrolledIndexChanged"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
373
+ ], queries: [{ propertyName: "searchBox", first: true, predicate: AXSearchBoxComponent, descendants: true }], viewQueries: [{ propertyName: "panel", first: true, predicate: ["panel"], descendants: true }, { propertyName: "list", first: true, predicate: AXListComponent, descendants: true }, { propertyName: "dropdown", first: true, predicate: AXDropdownBoxComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ax-dropdown-box\n [class.ax-state-multiple]=\"multiple\"\n (onOpened)=\"_handleOnOpenedEvent($event)\"\n (onClosed)=\"_handleOnClosedEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n [disabled]=\"disabled\"\n [look]=\"look\"\n [popoverWidth]=\"dropdownWidth()\"\n>\n <ng-container input>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <div\n class=\"ax-editor ax-chips-container ax-content ax-input\"\n [class.ax-state-multiple]=\"multiple\"\n [tabindex]=\"tabIndex\"\n >\n @if (selectedItems.length === 0) {\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\">\n {{ placeholder | translate | async }}\n </div>\n }\n @for (item of selectedItems; track $index) {\n @if (selectedTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"selectedTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: item } }\"\n ></ng-template>\n } @else {\n <div class=\"ax-chips\">\n {{ getDisplayText(item) | translate | async }}\n @if (!disabled && !readonly && multiple) {\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleBadgeRemove($event, item)\"> </span>\n }\n </div>\n }\n }\n </div>\n @if (selectedItems?.length && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n <button type=\"button\" [disabled]=\"disabled\" [tabIndex]=\"-1\" class=\"ax-editor-button\">\n @if (isLoading()) {\n <ax-loading></ax-loading>\n } @else {\n <span\n class=\"ax-icon\"\n [ngClass]=\"{\n 'ax-icon-chevron-down': !isOpen,\n 'ax-icon-chevron-up': isOpen,\n }\"\n ></span>\n }\n </button>\n <ng-content select=\"ax-suffix\"> </ng-content>\n <ng-template #search>\n <ng-content select=\"ax-search-box\"> </ng-content>\n </ng-template>\n </ng-container>\n <ng-container panel>\n <div #panel class=\"ax-select-box-panel\" [style.min-width]=\"_dropdownWidth()\">\n @if (dropdown.isActionsheetStyle) {\n <ax-header class=\"ax-solid\">\n <ax-title>{{ caption || placeholder || '@acorex:selectbox.popover.title' | translate | async }}</ax-title>\n <ax-close-button [icon]=\"multiple ? 'ax-icon ax-icon-check' : 'ax-icon ax-icon-close'\"></ax-close-button>\n </ax-header>\n }\n @if (searchBox && (!minRecordsForSearch || _listDataSource.totalCount >= minRecordsForSearch || searchValue())) {\n <div class=\"ax-search-container\">\n <ng-template [ngTemplateOutlet]=\"search\"></ng-template>\n </div>\n }\n @if (renderList()) {\n <ax-list\n [readonly]=\"readonly\"\n [dataSource]=\"_listDataSource\"\n [multiple]=\"multiple\"\n [style.height]=\"_dropdownHeight()\"\n [valueField]=\"valueField\"\n [textField]=\"textField\"\n [textTemplate]=\"textTemplate\"\n [emptyTemplate]=\"emptyTemplate ?? empty\"\n [itemTemplate]=\"itemTemplate\"\n [loadingTemplate]=\"loadingTemplate\"\n [ngModel]=\"value\"\n (onValueChanged)=\"_handleValueChanged($event)\"\n (onItemClick)=\"_handleItemClick($event)\"\n (onItemSelected)=\"_handleItemSelected($event)\"\n [selectionMode]=\"'item'\"\n [isItemTruncated]=\"isItemTruncated()\"\n [showItemTooltip]=\"showItemTooltip()\"\n >\n </ax-list>\n <ng-template #empty>\n {{ '@acorex:common.general.no-result-found' | translate | async }}\n </ng-template>\n }\n\n @if (isLoading()) {\n @if (loadingTemplate) {\n <ng-template [ngTemplateOutlet]=\"loadingTemplate\"></ng-template>\n }\n }\n\n <ng-content select=\"ax-footer\"> </ng-content>\n </div>\n </ng-container>\n</ax-dropdown-box>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n", styles: [".ax-editor-container.ax-fill .ax-chips{--ax-comp-select-box-chips-bg-color: var(--ax-sys-color-surfaceest);--ax-comp-select-box-chips-text-color: var(--ax-sys-color-on-surface-high)}.ax-editor-container.ax-flat .ax-chips,.ax-editor-container.ax-outline .ax-chips{--ax-comp-select-box-chips-bg-color: var(--ax-sys-color-surface);--ax-comp-select-box-chips-text-color: var(--ax-sys-color-on-surface-high)}.ax-editor-container.ax-solid .ax-chips{--ax-comp-select-box-chips-bg-color: var(--ax-sys-color-light-surface);--ax-comp-select-box-chips-text-color: var(--ax-sys-color-on-light-surface)}ax-select-box .ax-chips-container{outline:0px solid transparent}.ax-xs ax-select-box,ax-select-box.ax-xs{--ax-comp-select-box-chips-padding-x: .25rem;--ax-comp-select-box-chips-padding-y: .125rem;--ax-comp-select-box-chips-font-size: .625rem;--ax-comp-editor-placeholder-space-x: .375rem}.ax-sm ax-select-box,ax-select-box.ax-sm{--ax-comp-select-box-chips-padding-x: .25rem;--ax-comp-select-box-chips-padding-y: .125rem;--ax-comp-select-box-chips-font-size: .75rem;--ax-comp-editor-placeholder-space-x: .5rem}ax-select-box,ax-select-box.ax-md{--ax-comp-select-box-chips-padding-x: .5rem;--ax-comp-select-box-chips-padding-y: .25rem;--ax-comp-select-box-chips-font-size: .875rem;--ax-comp-editor-placeholder-space-x: .75rem}.ax-lg ax-select-box,ax-select-box.ax-lg{--ax-comp-select-box-chips-padding-x: .75rem;--ax-comp-select-box-chips-padding-y: .5rem;--ax-comp-select-box-chips-font-size: 1rem;--ax-comp-editor-placeholder-space-x: .75rem}.ax-xl ax-select-box,ax-select-box.ax-xl{--ax-comp-select-box-chips-padding-x: .875rem;--ax-comp-select-box-chips-padding-y: .75rem;--ax-comp-select-box-chips-font-size: 1.125rem;--ax-comp-editor-placeholder-space-x: .75rem}ax-select-box{display:block;width:100%;border-radius:var(--ax-sys-border-radius)}ax-select-box .ax-state-disabled{opacity:.5;cursor:not-allowed}ax-select-box .ax-state-disabled .ax-content,ax-select-box .ax-state-disabled .ax-editor-button{cursor:not-allowed}ax-select-box .ax-state-disabled .ax-chips-container{cursor:not-allowed!important}ax-select-box ax-dropdown-box{border-radius:inherit!important}ax-select-box ax-dropdown-box.ax-state-multiple{height:auto;min-height:var(--ax-comp-editor-height);--ax-comp-editor-space-start-size: 0}ax-select-box ax-dropdown-box.ax-state-multiple .ax-placeholder{padding:0 var(--ax-comp-editor-placeholder-space-x)}ax-select-box .ax-chips-container{display:flex;flex:1 1 0%;min-width:0;cursor:pointer!important;-webkit-user-select:none;user-select:none;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:var(--ax-comp-select-box-chips-gap, .25rem);min-height:var(--ax-sys-size-base)}ax-select-box .ax-chips-container .ax-chips{display:block;overflow:hidden;text-wrap:nowrap;line-height:normal;text-overflow:ellipsis;padding:0 var(--ax-comp-editor-padding-x, .25rem);color:rgb(var(--ax-comp-select-box-chips-text-color));font-size:var(--ax-comp-select-box-chips-font-size)}ax-select-box .ax-chips-container.ax-state-multiple .ax-chips{background-color:rgb(var(--ax-comp-select-box-chips-bg-color));border-radius:var(--ax-comp-select-box-chips-border-radius, 999rem);border-width:var(--ax-comp-select-box-chips-border-width, 0px);padding:var(--ax-comp-select-box-chips-padding-y, .25rem) var(--ax-comp-select-box-chips-padding-x, .5rem)}ax-select-box .ax-chips-container.ax-state-multiple .ax-chips .ax-icon-close{cursor:pointer;margin-inline-start:var(--ax-comp-select-box-chips-padding-x)}ax-select-box .ax-chips-container .ax-selectbox-input{width:0px;opacity:0}ax-select-box .ax-chips-container.ax-state-multiple:has(.ax-chips){padding:var(--ax-comp-select-box-chips-container-padding, .25rem)}.ax-select-box-panel{height:fit-content}.ax-select-box-panel .ax-select-box-loading-container{display:flex;align-items:center;justify-content:center;padding:1rem}.ax-select-box-panel>ax-header .ax-icon-check{color:rgba(var(--ax-sys-color-primary-500))}.ax-select-box-panel>ax-header.ax-solid{border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface))}.ax-select-box-panel>ax-header.ax-solid ax-title{font-size:1rem;line-height:1.5rem;font-weight:500}\n"], dependencies: [{ kind: "component", type: AXDropdownBoxComponent, selector: "ax-dropdown-box", inputs: ["disabled", "look", "hasInput", "popoverWidth"], outputs: ["disabledChange", "onBlur", "onFocus", "onClick", "onOpened", "onClosed"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type: AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["closeAll", "icon"] }, { kind: "component", type: AXListComponent, selector: "ax-list", inputs: ["id", "name", "disabled", "readonly", "valueField", "textField", "textTemplate", "disabledField", "multiple", "selectionMode", "isItemTruncated", "showItemTooltip", "dataSource", "itemHeight", "itemTemplate", "emptyTemplate", "loadingTemplate", "checkbox"], outputs: ["onValueChanged", "disabledChange", "readonlyChange", "onBlur", "onFocus", "onItemClick", "onItemSelected", "onScrolledIndexChanged"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
309
374
  }
310
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXSelectBoxComponent, decorators: [{
375
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSelectBoxComponent, decorators: [{
311
376
  type: Component,
312
377
  args: [{ selector: 'ax-select-box', inputs: [
313
378
  'disabled',
@@ -338,6 +403,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
338
403
  'disabledChange',
339
404
  'onOpened',
340
405
  'onClosed',
406
+ 'onItemSelected',
407
+ 'onItemClick',
341
408
  ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
342
409
  { provide: AXComponent, useExisting: AXSelectBoxComponent },
343
410
  { provide: AXFocusableComponent, useExisting: AXSelectBoxComponent },
@@ -366,7 +433,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
366
433
  AXLoadingComponent,
367
434
  AsyncPipe,
368
435
  AXTranslatorPipe,
369
- ], template: "<ax-dropdown-box\n [class.ax-state-multiple]=\"multiple\"\n (onOpened)=\"_handleOnOpenedEvent($event)\"\n (onClosed)=\"_handleOnClosedEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n [disabled]=\"disabled\"\n [look]=\"look\"\n [popoverWidth]=\"dropdownWidth()\"\n>\n <ng-container input>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <div\n class=\"ax-editor ax-chips-container ax-content ax-input\"\n [class.ax-state-multiple]=\"multiple\"\n [tabindex]=\"tabIndex\"\n >\n @if (selectedItems.length === 0) {\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\">\n {{ placeholder }}\n </div>\n }\n @for (item of selectedItems; track $index) {\n @if (selectedTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"selectedTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: item } }\"\n ></ng-template>\n } @else {\n <div class=\"ax-chips\">\n {{ getDisplayText(item) }}\n @if (!disabled && !readonly && multiple) {\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleBadgeRemove($event, item)\"> </span>\n }\n </div>\n }\n }\n </div>\n @if (selectedItems?.length && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n <button type=\"button\" [disabled]=\"disabled\" [tabIndex]=\"-1\" class=\"ax-editor-button\">\n @if (isLoading()) {\n <ax-loading></ax-loading>\n } @else {\n <span\n class=\"ax-icon\"\n [ngClass]=\"{\n 'ax-icon-chevron-down': !isOpen,\n 'ax-icon-chevron-up': isOpen,\n }\"\n ></span>\n }\n </button>\n <ng-content select=\"ax-suffix\"> </ng-content>\n <ng-template #search>\n <ng-content select=\"ax-search-box\"> </ng-content>\n </ng-template>\n </ng-container>\n <ng-container panel>\n <div #panel class=\"ax-select-box-panel\" [style.min-width]=\"_dropdownWidth()\">\n @if (dropdown.isActionsheetStyle) {\n <ax-header class=\"ax-solid\">\n <ax-title>{{ caption || placeholder || '@acorex:selectbox.popover.title' | translate | async }}</ax-title>\n <ax-close-button [icon]=\"multiple ? 'ax-icon ax-icon-check' : 'ax-icon ax-icon-close'\"></ax-close-button>\n </ax-header>\n }\n @if (searchBox && (!minRecordsForSearch || _listDataSource.totalCount >= minRecordsForSearch || searchValue())) {\n <div class=\"ax-search-container\">\n <ng-template [ngTemplateOutlet]=\"search\"></ng-template>\n </div>\n }\n @if (renderList) {\n <ax-list\n [readonly]=\"readonly\"\n [dataSource]=\"_listDataSource\"\n [multiple]=\"multiple\"\n [style.height]=\"_dropdownHeight()\"\n [valueField]=\"valueField\"\n [textField]=\"textField\"\n [textTemplate]=\"textTemplate\"\n [emptyTemplate]=\"emptyTemplate ?? empty\"\n [itemTemplate]=\"itemTemplate\"\n [loadingTemplate]=\"loadingTemplate\"\n [ngModel]=\"value\"\n (onValueChanged)=\"_handleValueChanged($event)\"\n [selectionMode]=\"'item'\"\n [isItemTruncated]=\"isItemTruncated()\"\n [showItemTooltip]=\"showItemTooltip()\"\n >\n </ax-list>\n <ng-template #empty>\n {{ '@acorex:common.general.no-result-found' | translate | async }}\n </ng-template>\n }\n\n @if (isLoading()) {\n @if (loadingTemplate) {\n <ng-template [ngTemplateOutlet]=\"loadingTemplate\"></ng-template>\n }\n }\n\n <ng-content select=\"ax-footer\"> </ng-content>\n </div>\n </ng-container>\n</ax-dropdown-box>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n", styles: [".ax-editor-container.ax-fill .ax-chips{--ax-comp-select-box-chips-bg-color: var(--ax-sys-color-surfaceest);--ax-comp-select-box-chips-text-color: var(--ax-sys-color-on-surface-high)}.ax-editor-container.ax-flat .ax-chips,.ax-editor-container.ax-outline .ax-chips{--ax-comp-select-box-chips-bg-color: var(--ax-sys-color-surface);--ax-comp-select-box-chips-text-color: var(--ax-sys-color-on-surface-high)}.ax-editor-container.ax-solid .ax-chips{--ax-comp-select-box-chips-bg-color: var(--ax-sys-color-light-surface);--ax-comp-select-box-chips-text-color: var(--ax-sys-color-on-light-surface)}ax-select-box .ax-chips-container{outline:0px solid transparent}.ax-xs ax-select-box,ax-select-box.ax-xs{--ax-comp-select-box-chips-padding-x: .25rem;--ax-comp-select-box-chips-padding-y: .125rem;--ax-comp-select-box-chips-font-size: .625rem;--ax-comp-editor-placeholder-space-x: .375rem}.ax-sm ax-select-box,ax-select-box.ax-sm{--ax-comp-select-box-chips-padding-x: .25rem;--ax-comp-select-box-chips-padding-y: .125rem;--ax-comp-select-box-chips-font-size: .75rem;--ax-comp-editor-placeholder-space-x: .5rem}ax-select-box,ax-select-box.ax-md{--ax-comp-select-box-chips-padding-x: .5rem;--ax-comp-select-box-chips-padding-y: .25rem;--ax-comp-select-box-chips-font-size: .875rem;--ax-comp-editor-placeholder-space-x: .75rem}.ax-lg ax-select-box,ax-select-box.ax-lg{--ax-comp-select-box-chips-padding-x: .75rem;--ax-comp-select-box-chips-padding-y: .5rem;--ax-comp-select-box-chips-font-size: 1rem;--ax-comp-editor-placeholder-space-x: .75rem}.ax-xl ax-select-box,ax-select-box.ax-xl{--ax-comp-select-box-chips-padding-x: .875rem;--ax-comp-select-box-chips-padding-y: .75rem;--ax-comp-select-box-chips-font-size: 1.125rem;--ax-comp-editor-placeholder-space-x: .75rem}ax-select-box{display:block;width:100%;border-radius:var(--ax-sys-border-radius)}ax-select-box .ax-state-disabled{opacity:.5;cursor:not-allowed}ax-select-box .ax-state-disabled .ax-content,ax-select-box .ax-state-disabled .ax-editor-button{cursor:not-allowed}ax-select-box .ax-state-disabled .ax-chips-container{cursor:not-allowed!important}ax-select-box ax-dropdown-box{border-radius:inherit!important}ax-select-box ax-dropdown-box.ax-state-multiple{height:auto;min-height:var(--ax-comp-editor-height);--ax-comp-editor-space-start-size: 0}ax-select-box ax-dropdown-box.ax-state-multiple .ax-placeholder{padding:0 var(--ax-comp-editor-placeholder-space-x)}ax-select-box .ax-chips-container{display:flex;flex:1 1 0%;min-width:0;cursor:pointer!important;-webkit-user-select:none;user-select:none;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:var(--ax-comp-select-box-chips-gap, .25rem);min-height:var(--ax-sys-size-base)}ax-select-box .ax-chips-container .ax-chips{display:block;overflow:hidden;text-wrap:nowrap;line-height:normal;text-overflow:ellipsis;padding:0 var(--ax-comp-editor-padding-x, .25rem);color:rgb(var(--ax-comp-select-box-chips-text-color));font-size:var(--ax-comp-select-box-chips-font-size)}ax-select-box .ax-chips-container.ax-state-multiple .ax-chips{background-color:rgb(var(--ax-comp-select-box-chips-bg-color));border-radius:var(--ax-comp-select-box-chips-border-radius, 999rem);border-width:var(--ax-comp-select-box-chips-border-width, 0px);padding:var(--ax-comp-select-box-chips-padding-y, .25rem) var(--ax-comp-select-box-chips-padding-x, .5rem)}ax-select-box .ax-chips-container.ax-state-multiple .ax-chips .ax-icon-close{cursor:pointer;margin-inline-start:var(--ax-comp-select-box-chips-padding-x)}ax-select-box .ax-chips-container .ax-selectbox-input{width:0px;opacity:0}ax-select-box .ax-chips-container.ax-state-multiple:has(.ax-chips){padding:var(--ax-comp-select-box-chips-container-padding, .25rem)}.ax-select-box-panel{height:fit-content}.ax-select-box-panel .ax-select-box-loading-container{display:flex;align-items:center;justify-content:center;padding:1rem}.ax-select-box-panel>ax-header .ax-icon-check{color:rgba(var(--ax-sys-color-primary-500))}.ax-select-box-panel>ax-header.ax-solid{border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface))}.ax-select-box-panel>ax-header.ax-solid ax-title{font-size:1rem;line-height:1.5rem;font-weight:500}\n"] }]
436
+ ], template: "<ax-dropdown-box\n [class.ax-state-multiple]=\"multiple\"\n (onOpened)=\"_handleOnOpenedEvent($event)\"\n (onClosed)=\"_handleOnClosedEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n [disabled]=\"disabled\"\n [look]=\"look\"\n [popoverWidth]=\"dropdownWidth()\"\n>\n <ng-container input>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <div\n class=\"ax-editor ax-chips-container ax-content ax-input\"\n [class.ax-state-multiple]=\"multiple\"\n [tabindex]=\"tabIndex\"\n >\n @if (selectedItems.length === 0) {\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\">\n {{ placeholder | translate | async }}\n </div>\n }\n @for (item of selectedItems; track $index) {\n @if (selectedTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"selectedTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { data: item } }\"\n ></ng-template>\n } @else {\n <div class=\"ax-chips\">\n {{ getDisplayText(item) | translate | async }}\n @if (!disabled && !readonly && multiple) {\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleBadgeRemove($event, item)\"> </span>\n }\n </div>\n }\n }\n </div>\n @if (selectedItems?.length && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n <button type=\"button\" [disabled]=\"disabled\" [tabIndex]=\"-1\" class=\"ax-editor-button\">\n @if (isLoading()) {\n <ax-loading></ax-loading>\n } @else {\n <span\n class=\"ax-icon\"\n [ngClass]=\"{\n 'ax-icon-chevron-down': !isOpen,\n 'ax-icon-chevron-up': isOpen,\n }\"\n ></span>\n }\n </button>\n <ng-content select=\"ax-suffix\"> </ng-content>\n <ng-template #search>\n <ng-content select=\"ax-search-box\"> </ng-content>\n </ng-template>\n </ng-container>\n <ng-container panel>\n <div #panel class=\"ax-select-box-panel\" [style.min-width]=\"_dropdownWidth()\">\n @if (dropdown.isActionsheetStyle) {\n <ax-header class=\"ax-solid\">\n <ax-title>{{ caption || placeholder || '@acorex:selectbox.popover.title' | translate | async }}</ax-title>\n <ax-close-button [icon]=\"multiple ? 'ax-icon ax-icon-check' : 'ax-icon ax-icon-close'\"></ax-close-button>\n </ax-header>\n }\n @if (searchBox && (!minRecordsForSearch || _listDataSource.totalCount >= minRecordsForSearch || searchValue())) {\n <div class=\"ax-search-container\">\n <ng-template [ngTemplateOutlet]=\"search\"></ng-template>\n </div>\n }\n @if (renderList()) {\n <ax-list\n [readonly]=\"readonly\"\n [dataSource]=\"_listDataSource\"\n [multiple]=\"multiple\"\n [style.height]=\"_dropdownHeight()\"\n [valueField]=\"valueField\"\n [textField]=\"textField\"\n [textTemplate]=\"textTemplate\"\n [emptyTemplate]=\"emptyTemplate ?? empty\"\n [itemTemplate]=\"itemTemplate\"\n [loadingTemplate]=\"loadingTemplate\"\n [ngModel]=\"value\"\n (onValueChanged)=\"_handleValueChanged($event)\"\n (onItemClick)=\"_handleItemClick($event)\"\n (onItemSelected)=\"_handleItemSelected($event)\"\n [selectionMode]=\"'item'\"\n [isItemTruncated]=\"isItemTruncated()\"\n [showItemTooltip]=\"showItemTooltip()\"\n >\n </ax-list>\n <ng-template #empty>\n {{ '@acorex:common.general.no-result-found' | translate | async }}\n </ng-template>\n }\n\n @if (isLoading()) {\n @if (loadingTemplate) {\n <ng-template [ngTemplateOutlet]=\"loadingTemplate\"></ng-template>\n }\n }\n\n <ng-content select=\"ax-footer\"> </ng-content>\n </div>\n </ng-container>\n</ax-dropdown-box>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n", styles: [".ax-editor-container.ax-fill .ax-chips{--ax-comp-select-box-chips-bg-color: var(--ax-sys-color-surfaceest);--ax-comp-select-box-chips-text-color: var(--ax-sys-color-on-surface-high)}.ax-editor-container.ax-flat .ax-chips,.ax-editor-container.ax-outline .ax-chips{--ax-comp-select-box-chips-bg-color: var(--ax-sys-color-surface);--ax-comp-select-box-chips-text-color: var(--ax-sys-color-on-surface-high)}.ax-editor-container.ax-solid .ax-chips{--ax-comp-select-box-chips-bg-color: var(--ax-sys-color-light-surface);--ax-comp-select-box-chips-text-color: var(--ax-sys-color-on-light-surface)}ax-select-box .ax-chips-container{outline:0px solid transparent}.ax-xs ax-select-box,ax-select-box.ax-xs{--ax-comp-select-box-chips-padding-x: .25rem;--ax-comp-select-box-chips-padding-y: .125rem;--ax-comp-select-box-chips-font-size: .625rem;--ax-comp-editor-placeholder-space-x: .375rem}.ax-sm ax-select-box,ax-select-box.ax-sm{--ax-comp-select-box-chips-padding-x: .25rem;--ax-comp-select-box-chips-padding-y: .125rem;--ax-comp-select-box-chips-font-size: .75rem;--ax-comp-editor-placeholder-space-x: .5rem}ax-select-box,ax-select-box.ax-md{--ax-comp-select-box-chips-padding-x: .5rem;--ax-comp-select-box-chips-padding-y: .25rem;--ax-comp-select-box-chips-font-size: .875rem;--ax-comp-editor-placeholder-space-x: .75rem}.ax-lg ax-select-box,ax-select-box.ax-lg{--ax-comp-select-box-chips-padding-x: .75rem;--ax-comp-select-box-chips-padding-y: .5rem;--ax-comp-select-box-chips-font-size: 1rem;--ax-comp-editor-placeholder-space-x: .75rem}.ax-xl ax-select-box,ax-select-box.ax-xl{--ax-comp-select-box-chips-padding-x: .875rem;--ax-comp-select-box-chips-padding-y: .75rem;--ax-comp-select-box-chips-font-size: 1.125rem;--ax-comp-editor-placeholder-space-x: .75rem}ax-select-box{display:block;width:100%;border-radius:var(--ax-sys-border-radius)}ax-select-box .ax-state-disabled{opacity:.5;cursor:not-allowed}ax-select-box .ax-state-disabled .ax-content,ax-select-box .ax-state-disabled .ax-editor-button{cursor:not-allowed}ax-select-box .ax-state-disabled .ax-chips-container{cursor:not-allowed!important}ax-select-box ax-dropdown-box{border-radius:inherit!important}ax-select-box ax-dropdown-box.ax-state-multiple{height:auto;min-height:var(--ax-comp-editor-height);--ax-comp-editor-space-start-size: 0}ax-select-box ax-dropdown-box.ax-state-multiple .ax-placeholder{padding:0 var(--ax-comp-editor-placeholder-space-x)}ax-select-box .ax-chips-container{display:flex;flex:1 1 0%;min-width:0;cursor:pointer!important;-webkit-user-select:none;user-select:none;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:var(--ax-comp-select-box-chips-gap, .25rem);min-height:var(--ax-sys-size-base)}ax-select-box .ax-chips-container .ax-chips{display:block;overflow:hidden;text-wrap:nowrap;line-height:normal;text-overflow:ellipsis;padding:0 var(--ax-comp-editor-padding-x, .25rem);color:rgb(var(--ax-comp-select-box-chips-text-color));font-size:var(--ax-comp-select-box-chips-font-size)}ax-select-box .ax-chips-container.ax-state-multiple .ax-chips{background-color:rgb(var(--ax-comp-select-box-chips-bg-color));border-radius:var(--ax-comp-select-box-chips-border-radius, 999rem);border-width:var(--ax-comp-select-box-chips-border-width, 0px);padding:var(--ax-comp-select-box-chips-padding-y, .25rem) var(--ax-comp-select-box-chips-padding-x, .5rem)}ax-select-box .ax-chips-container.ax-state-multiple .ax-chips .ax-icon-close{cursor:pointer;margin-inline-start:var(--ax-comp-select-box-chips-padding-x)}ax-select-box .ax-chips-container .ax-selectbox-input{width:0px;opacity:0}ax-select-box .ax-chips-container.ax-state-multiple:has(.ax-chips){padding:var(--ax-comp-select-box-chips-container-padding, .25rem)}.ax-select-box-panel{height:fit-content}.ax-select-box-panel .ax-select-box-loading-container{display:flex;align-items:center;justify-content:center;padding:1rem}.ax-select-box-panel>ax-header .ax-icon-check{color:rgba(var(--ax-sys-color-primary-500))}.ax-select-box-panel>ax-header.ax-solid{border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface))}.ax-select-box-panel>ax-header.ax-solid ax-title{font-size:1rem;line-height:1.5rem;font-weight:500}\n"] }]
370
437
  }], propDecorators: { dataSource: [{
371
438
  type: Input
372
439
  }], placeholder: [{
@@ -404,8 +471,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImpor
404
471
  }] } });
405
472
 
406
473
  class AXSelectBoxModule {
407
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXSelectBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
408
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.3", ngImport: i0, type: AXSelectBoxModule, imports: [CommonModule,
474
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSelectBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
475
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.3", ngImport: i0, type: AXSelectBoxModule, imports: [CommonModule,
409
476
  AXCommonModule,
410
477
  FormsModule,
411
478
  AXCheckBoxModule,
@@ -419,7 +486,7 @@ class AXSelectBoxModule {
419
486
  AXDropdownModule,
420
487
  AXListModule,
421
488
  AXSelectBoxComponent], exports: [AXSelectBoxComponent] }); }
422
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXSelectBoxModule, imports: [CommonModule,
489
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSelectBoxModule, imports: [CommonModule,
423
490
  AXCommonModule,
424
491
  FormsModule,
425
492
  AXCheckBoxModule,
@@ -434,7 +501,7 @@ class AXSelectBoxModule {
434
501
  AXListModule,
435
502
  AXSelectBoxComponent] }); }
436
503
  }
437
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AXSelectBoxModule, decorators: [{
504
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSelectBoxModule, decorators: [{
438
505
  type: NgModule,
439
506
  args: [{
440
507
  imports: [