@acorex/components 21.0.1-next.51 → 21.0.1-next.53

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 (330) hide show
  1. package/fesm2022/acorex-components-accordion.mjs +18 -23
  2. package/fesm2022/acorex-components-accordion.mjs.map +1 -1
  3. package/fesm2022/acorex-components-action-sheet.mjs +17 -17
  4. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  5. package/fesm2022/acorex-components-alert.mjs +14 -14
  6. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  7. package/fesm2022/acorex-components-aspect-ratio.mjs +4 -4
  8. package/fesm2022/acorex-components-aspect-ratio.mjs.map +1 -1
  9. package/fesm2022/acorex-components-audio-wave.mjs +12 -11
  10. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  11. package/fesm2022/acorex-components-autocomplete.mjs +9 -9
  12. package/fesm2022/acorex-components-autocomplete.mjs.map +1 -1
  13. package/fesm2022/acorex-components-avatar.mjs +13 -13
  14. package/fesm2022/acorex-components-avatar.mjs.map +1 -1
  15. package/fesm2022/acorex-components-badge.mjs +10 -10
  16. package/fesm2022/acorex-components-badge.mjs.map +1 -1
  17. package/fesm2022/acorex-components-bottom-navigation.mjs +12 -12
  18. package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
  19. package/fesm2022/acorex-components-breadcrumbs.mjs +12 -12
  20. package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
  21. package/fesm2022/acorex-components-button-group.mjs +41 -26
  22. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  23. package/fesm2022/acorex-components-button.mjs +20 -20
  24. package/fesm2022/acorex-components-button.mjs.map +1 -1
  25. package/fesm2022/acorex-components-calendar.mjs +18 -18
  26. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  27. package/fesm2022/acorex-components-check-box.mjs +11 -11
  28. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  29. package/fesm2022/acorex-components-chips.mjs +12 -14
  30. package/fesm2022/acorex-components-chips.mjs.map +1 -1
  31. package/fesm2022/acorex-components-circular-progress.mjs +13 -11
  32. package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
  33. package/fesm2022/acorex-components-code-editor.mjs +14 -14
  34. package/fesm2022/acorex-components-code-editor.mjs.map +1 -1
  35. package/fesm2022/acorex-components-collapse.mjs +22 -19
  36. package/fesm2022/acorex-components-collapse.mjs.map +1 -1
  37. package/fesm2022/acorex-components-color-box.mjs +11 -11
  38. package/fesm2022/acorex-components-color-box.mjs.map +1 -1
  39. package/fesm2022/acorex-components-color-palette.mjs +31 -31
  40. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  41. package/fesm2022/acorex-components-command.mjs +11 -11
  42. package/fesm2022/acorex-components-command.mjs.map +1 -1
  43. package/fesm2022/acorex-components-comment.mjs +33 -33
  44. package/fesm2022/acorex-components-comment.mjs.map +1 -1
  45. package/fesm2022/acorex-components-conversation.mjs +56 -56
  46. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  47. package/fesm2022/acorex-components-conversation2.mjs +229 -229
  48. package/fesm2022/acorex-components-conversation2.mjs.map +1 -1
  49. package/fesm2022/acorex-components-cron-job.mjs +53 -53
  50. package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
  51. package/fesm2022/acorex-components-data-list.mjs +6 -6
  52. package/fesm2022/acorex-components-data-list.mjs.map +1 -1
  53. package/fesm2022/acorex-components-data-pager.mjs +33 -33
  54. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  55. package/fesm2022/acorex-components-data-table.mjs +50 -486
  56. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  57. package/fesm2022/acorex-components-datetime-box.mjs +10 -10
  58. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  59. package/fesm2022/acorex-components-datetime-input.mjs +10 -10
  60. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
  61. package/fesm2022/acorex-components-datetime-picker.mjs +11 -11
  62. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  63. package/fesm2022/acorex-components-decorators.mjs +48 -41
  64. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  65. package/fesm2022/acorex-components-dialog.mjs +13 -13
  66. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  67. package/fesm2022/acorex-components-drawer-legacy.mjs +14 -14
  68. package/fesm2022/acorex-components-drawer-legacy.mjs.map +1 -1
  69. package/fesm2022/acorex-components-drawer.mjs +16 -17
  70. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  71. package/fesm2022/acorex-components-dropdown-button.mjs +9 -9
  72. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  73. package/fesm2022/acorex-components-dropdown.mjs +18 -19
  74. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  75. package/fesm2022/acorex-components-editor.mjs +12 -12
  76. package/fesm2022/acorex-components-editor.mjs.map +1 -1
  77. package/fesm2022/acorex-components-file-explorer.mjs +28 -28
  78. package/fesm2022/acorex-components-file-explorer.mjs.map +1 -1
  79. package/fesm2022/acorex-components-flow-chart.mjs +18 -18
  80. package/fesm2022/acorex-components-flow-chart.mjs.map +1 -1
  81. package/fesm2022/acorex-components-form.mjs +35 -27
  82. package/fesm2022/acorex-components-form.mjs.map +1 -1
  83. package/fesm2022/acorex-components-grid-layout-builder.mjs +12 -13
  84. package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
  85. package/fesm2022/acorex-components-image-editor.mjs +48 -48
  86. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  87. package/fesm2022/acorex-components-image.mjs +10 -10
  88. package/fesm2022/acorex-components-image.mjs.map +1 -1
  89. package/fesm2022/acorex-components-json-viewer.mjs +9 -9
  90. package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
  91. package/fesm2022/acorex-components-kanban.mjs +9 -7
  92. package/fesm2022/acorex-components-kanban.mjs.map +1 -1
  93. package/fesm2022/acorex-components-kbd.mjs +10 -10
  94. package/fesm2022/acorex-components-kbd.mjs.map +1 -1
  95. package/fesm2022/acorex-components-label.mjs +9 -9
  96. package/fesm2022/acorex-components-label.mjs.map +1 -1
  97. package/fesm2022/acorex-components-list.mjs +10 -10
  98. package/fesm2022/acorex-components-list.mjs.map +1 -1
  99. package/fesm2022/acorex-components-loading-dialog.mjs +12 -12
  100. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  101. package/fesm2022/acorex-components-loading.mjs +23 -23
  102. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  103. package/fesm2022/acorex-components-map.mjs +15 -15
  104. package/fesm2022/acorex-components-map.mjs.map +1 -1
  105. package/fesm2022/acorex-components-media-viewer.mjs +45 -45
  106. package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
  107. package/fesm2022/acorex-components-menu.mjs +29 -29
  108. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  109. package/fesm2022/{acorex-components-modal-acorex-components-modal-DwBY73dZ.mjs → acorex-components-modal-acorex-components-modal-B03hJbP8.mjs} +24 -24
  110. package/fesm2022/acorex-components-modal-acorex-components-modal-B03hJbP8.mjs.map +1 -0
  111. package/fesm2022/acorex-components-modal-modal-content.component-DrHm0mZ4.mjs +214 -0
  112. package/fesm2022/acorex-components-modal-modal-content.component-DrHm0mZ4.mjs.map +1 -0
  113. package/fesm2022/acorex-components-modal.mjs +1 -1
  114. package/fesm2022/acorex-components-navbar.mjs +9 -9
  115. package/fesm2022/acorex-components-navbar.mjs.map +1 -1
  116. package/fesm2022/acorex-components-notification.mjs +13 -13
  117. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  118. package/fesm2022/acorex-components-number-box-legacy.mjs +14 -32
  119. package/fesm2022/acorex-components-number-box-legacy.mjs.map +1 -1
  120. package/fesm2022/acorex-components-number-box.mjs +10 -10
  121. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  122. package/fesm2022/acorex-components-otp.mjs +10 -10
  123. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  124. package/fesm2022/acorex-components-page.mjs +10 -10
  125. package/fesm2022/acorex-components-page.mjs.map +1 -1
  126. package/fesm2022/acorex-components-paint.mjs +35 -40
  127. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  128. package/fesm2022/acorex-components-password-box.mjs +14 -14
  129. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  130. package/fesm2022/acorex-components-pdf-reader.mjs +9 -9
  131. package/fesm2022/acorex-components-pdf-reader.mjs.map +1 -1
  132. package/fesm2022/acorex-components-phone-box.mjs +10 -10
  133. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  134. package/fesm2022/acorex-components-picker.mjs +20 -20
  135. package/fesm2022/acorex-components-picker.mjs.map +1 -1
  136. package/fesm2022/acorex-components-popover.mjs +8 -8
  137. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  138. package/fesm2022/acorex-components-popup.mjs +17 -17
  139. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  140. package/fesm2022/acorex-components-progress-bar.mjs +11 -9
  141. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  142. package/fesm2022/acorex-components-qrcode.mjs +10 -10
  143. package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
  144. package/fesm2022/acorex-components-query-builder.mjs +9 -9
  145. package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
  146. package/fesm2022/acorex-components-radio.mjs +10 -9
  147. package/fesm2022/acorex-components-radio.mjs.map +1 -1
  148. package/fesm2022/acorex-components-rail-navigation.mjs +40 -38
  149. package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
  150. package/fesm2022/acorex-components-range-slider.mjs +11 -11
  151. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  152. package/fesm2022/acorex-components-rate-picker.mjs +20 -35
  153. package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
  154. package/fesm2022/acorex-components-rest-api-generator.mjs +25 -25
  155. package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
  156. package/fesm2022/acorex-components-result.mjs +8 -8
  157. package/fesm2022/acorex-components-result.mjs.map +1 -1
  158. package/fesm2022/acorex-components-routing-progress.mjs +8 -8
  159. package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
  160. package/fesm2022/acorex-components-rrule.mjs +11 -11
  161. package/fesm2022/acorex-components-rrule.mjs.map +1 -1
  162. package/fesm2022/acorex-components-scheduler-picker.mjs +73 -73
  163. package/fesm2022/acorex-components-scheduler-picker.mjs.map +1 -1
  164. package/fesm2022/acorex-components-scheduler.mjs +161 -85
  165. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  166. package/fesm2022/acorex-components-scss.mjs +4 -4
  167. package/fesm2022/acorex-components-scss.mjs.map +1 -1
  168. package/fesm2022/acorex-components-search-box.mjs +17 -11
  169. package/fesm2022/acorex-components-search-box.mjs.map +1 -1
  170. package/fesm2022/acorex-components-select-box.mjs +14 -12
  171. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  172. package/fesm2022/acorex-components-selection-list-2.mjs +12 -12
  173. package/fesm2022/acorex-components-selection-list-2.mjs.map +1 -1
  174. package/fesm2022/acorex-components-selection-list.mjs +10 -10
  175. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  176. package/fesm2022/acorex-components-side-menu.mjs +81 -24
  177. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  178. package/fesm2022/acorex-components-skeleton.mjs +8 -8
  179. package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
  180. package/fesm2022/acorex-components-slider.mjs +13 -13
  181. package/fesm2022/acorex-components-slider.mjs.map +1 -1
  182. package/fesm2022/acorex-components-sliding-item.mjs +19 -19
  183. package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
  184. package/fesm2022/acorex-components-step-wizard.mjs +16 -16
  185. package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
  186. package/fesm2022/acorex-components-switch.mjs +14 -14
  187. package/fesm2022/acorex-components-switch.mjs.map +1 -1
  188. package/fesm2022/acorex-components-tabs.mjs +17 -17
  189. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  190. package/fesm2022/acorex-components-tag-box.mjs +10 -10
  191. package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
  192. package/fesm2022/acorex-components-tag.mjs +10 -10
  193. package/fesm2022/acorex-components-tag.mjs.map +1 -1
  194. package/fesm2022/acorex-components-text-area.mjs +9 -9
  195. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  196. package/fesm2022/acorex-components-text-box.mjs +27 -12
  197. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  198. package/fesm2022/acorex-components-time-duration.mjs +8 -8
  199. package/fesm2022/acorex-components-time-duration.mjs.map +1 -1
  200. package/fesm2022/acorex-components-time-line.mjs +14 -14
  201. package/fesm2022/acorex-components-time-line.mjs.map +1 -1
  202. package/fesm2022/acorex-components-toast.mjs +13 -13
  203. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  204. package/fesm2022/acorex-components-toolbar.mjs +10 -10
  205. package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
  206. package/fesm2022/acorex-components-tooltip.mjs +14 -14
  207. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  208. package/fesm2022/acorex-components-tree-view-legacy.mjs +15 -15
  209. package/fesm2022/acorex-components-tree-view-legacy.mjs.map +1 -1
  210. package/fesm2022/acorex-components-tree-view.mjs +12 -12
  211. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  212. package/fesm2022/acorex-components-uploader.mjs +17 -17
  213. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  214. package/fesm2022/acorex-components-video-player.mjs +9 -9
  215. package/fesm2022/acorex-components-video-player.mjs.map +1 -1
  216. package/fesm2022/acorex-components-wysiwyg.mjs +45 -45
  217. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  218. package/fesm2022/acorex-components.mjs.map +1 -1
  219. package/package.json +121 -121
  220. package/{accordion/index.d.ts → types/acorex-components-accordion.d.ts} +0 -1
  221. package/{button-group/index.d.ts → types/acorex-components-button-group.d.ts} +14 -12
  222. package/{button/index.d.ts → types/acorex-components-button.d.ts} +3 -3
  223. package/{check-box/index.d.ts → types/acorex-components-check-box.d.ts} +1 -1
  224. package/{chips/index.d.ts → types/acorex-components-chips.d.ts} +3 -8
  225. package/{collapse/index.d.ts → types/acorex-components-collapse.d.ts} +4 -6
  226. package/{conversation2/index.d.ts → types/acorex-components-conversation2.d.ts} +827 -827
  227. package/{data-table/index.d.ts → types/acorex-components-data-table.d.ts} +4 -253
  228. package/{grid-layout-builder/index.d.ts → types/acorex-components-grid-layout-builder.d.ts} +0 -1
  229. package/{loading/index.d.ts → types/acorex-components-loading.d.ts} +1 -1
  230. package/{menu/index.d.ts → types/acorex-components-menu.d.ts} +6 -6
  231. package/{paint/index.d.ts → types/acorex-components-paint.d.ts} +1 -6
  232. package/{radio/index.d.ts → types/acorex-components-radio.d.ts} +1 -1
  233. package/{rate-picker/index.d.ts → types/acorex-components-rate-picker.d.ts} +5 -15
  234. package/{scheduler-picker/index.d.ts → types/acorex-components-scheduler-picker.d.ts} +82 -81
  235. package/{scheduler/index.d.ts → types/acorex-components-scheduler.d.ts} +46 -23
  236. package/{select-box/index.d.ts → types/acorex-components-select-box.d.ts} +1 -1
  237. package/{side-menu/index.d.ts → types/acorex-components-side-menu.d.ts} +9 -2
  238. package/{slider/index.d.ts → types/acorex-components-slider.d.ts} +2 -2
  239. package/{tabs/index.d.ts → types/acorex-components-tabs.d.ts} +1 -1
  240. package/{tag/index.d.ts → types/acorex-components-tag.d.ts} +3 -3
  241. package/{text-box/index.d.ts → types/acorex-components-text-box.d.ts} +2 -0
  242. package/fesm2022/acorex-components-modal-acorex-components-modal-DwBY73dZ.mjs.map +0 -1
  243. package/fesm2022/acorex-components-modal-modal-content.component-DPMt_zaI.mjs +0 -212
  244. package/fesm2022/acorex-components-modal-modal-content.component-DPMt_zaI.mjs.map +0 -1
  245. /package/{action-sheet/index.d.ts → types/acorex-components-action-sheet.d.ts} +0 -0
  246. /package/{alert/index.d.ts → types/acorex-components-alert.d.ts} +0 -0
  247. /package/{aspect-ratio/index.d.ts → types/acorex-components-aspect-ratio.d.ts} +0 -0
  248. /package/{audio-wave/index.d.ts → types/acorex-components-audio-wave.d.ts} +0 -0
  249. /package/{autocomplete/index.d.ts → types/acorex-components-autocomplete.d.ts} +0 -0
  250. /package/{avatar/index.d.ts → types/acorex-components-avatar.d.ts} +0 -0
  251. /package/{badge/index.d.ts → types/acorex-components-badge.d.ts} +0 -0
  252. /package/{bottom-navigation/index.d.ts → types/acorex-components-bottom-navigation.d.ts} +0 -0
  253. /package/{breadcrumbs/index.d.ts → types/acorex-components-breadcrumbs.d.ts} +0 -0
  254. /package/{calendar/index.d.ts → types/acorex-components-calendar.d.ts} +0 -0
  255. /package/{circular-progress/index.d.ts → types/acorex-components-circular-progress.d.ts} +0 -0
  256. /package/{code-editor/index.d.ts → types/acorex-components-code-editor.d.ts} +0 -0
  257. /package/{color-box/index.d.ts → types/acorex-components-color-box.d.ts} +0 -0
  258. /package/{color-palette/index.d.ts → types/acorex-components-color-palette.d.ts} +0 -0
  259. /package/{command/index.d.ts → types/acorex-components-command.d.ts} +0 -0
  260. /package/{comment/index.d.ts → types/acorex-components-comment.d.ts} +0 -0
  261. /package/{conversation/index.d.ts → types/acorex-components-conversation.d.ts} +0 -0
  262. /package/{cron-job/index.d.ts → types/acorex-components-cron-job.d.ts} +0 -0
  263. /package/{data-list/index.d.ts → types/acorex-components-data-list.d.ts} +0 -0
  264. /package/{data-pager/index.d.ts → types/acorex-components-data-pager.d.ts} +0 -0
  265. /package/{datetime-box/index.d.ts → types/acorex-components-datetime-box.d.ts} +0 -0
  266. /package/{datetime-input/index.d.ts → types/acorex-components-datetime-input.d.ts} +0 -0
  267. /package/{datetime-picker/index.d.ts → types/acorex-components-datetime-picker.d.ts} +0 -0
  268. /package/{decorators/index.d.ts → types/acorex-components-decorators.d.ts} +0 -0
  269. /package/{dialog/index.d.ts → types/acorex-components-dialog.d.ts} +0 -0
  270. /package/{drawer-legacy/index.d.ts → types/acorex-components-drawer-legacy.d.ts} +0 -0
  271. /package/{drawer/index.d.ts → types/acorex-components-drawer.d.ts} +0 -0
  272. /package/{dropdown-button/index.d.ts → types/acorex-components-dropdown-button.d.ts} +0 -0
  273. /package/{dropdown/index.d.ts → types/acorex-components-dropdown.d.ts} +0 -0
  274. /package/{editor/index.d.ts → types/acorex-components-editor.d.ts} +0 -0
  275. /package/{file-explorer/index.d.ts → types/acorex-components-file-explorer.d.ts} +0 -0
  276. /package/{flow-chart/index.d.ts → types/acorex-components-flow-chart.d.ts} +0 -0
  277. /package/{form/index.d.ts → types/acorex-components-form.d.ts} +0 -0
  278. /package/{image-editor/index.d.ts → types/acorex-components-image-editor.d.ts} +0 -0
  279. /package/{image/index.d.ts → types/acorex-components-image.d.ts} +0 -0
  280. /package/{json-viewer/index.d.ts → types/acorex-components-json-viewer.d.ts} +0 -0
  281. /package/{kanban/index.d.ts → types/acorex-components-kanban.d.ts} +0 -0
  282. /package/{kbd/index.d.ts → types/acorex-components-kbd.d.ts} +0 -0
  283. /package/{label/index.d.ts → types/acorex-components-label.d.ts} +0 -0
  284. /package/{list/index.d.ts → types/acorex-components-list.d.ts} +0 -0
  285. /package/{loading-dialog/index.d.ts → types/acorex-components-loading-dialog.d.ts} +0 -0
  286. /package/{map/index.d.ts → types/acorex-components-map.d.ts} +0 -0
  287. /package/{media-viewer/index.d.ts → types/acorex-components-media-viewer.d.ts} +0 -0
  288. /package/{modal/index.d.ts → types/acorex-components-modal.d.ts} +0 -0
  289. /package/{navbar/index.d.ts → types/acorex-components-navbar.d.ts} +0 -0
  290. /package/{notification/index.d.ts → types/acorex-components-notification.d.ts} +0 -0
  291. /package/{number-box-legacy/index.d.ts → types/acorex-components-number-box-legacy.d.ts} +0 -0
  292. /package/{number-box/index.d.ts → types/acorex-components-number-box.d.ts} +0 -0
  293. /package/{otp/index.d.ts → types/acorex-components-otp.d.ts} +0 -0
  294. /package/{page/index.d.ts → types/acorex-components-page.d.ts} +0 -0
  295. /package/{password-box/index.d.ts → types/acorex-components-password-box.d.ts} +0 -0
  296. /package/{pdf-reader/index.d.ts → types/acorex-components-pdf-reader.d.ts} +0 -0
  297. /package/{phone-box/index.d.ts → types/acorex-components-phone-box.d.ts} +0 -0
  298. /package/{picker/index.d.ts → types/acorex-components-picker.d.ts} +0 -0
  299. /package/{popover/index.d.ts → types/acorex-components-popover.d.ts} +0 -0
  300. /package/{popup/index.d.ts → types/acorex-components-popup.d.ts} +0 -0
  301. /package/{progress-bar/index.d.ts → types/acorex-components-progress-bar.d.ts} +0 -0
  302. /package/{qrcode/index.d.ts → types/acorex-components-qrcode.d.ts} +0 -0
  303. /package/{query-builder/index.d.ts → types/acorex-components-query-builder.d.ts} +0 -0
  304. /package/{rail-navigation/index.d.ts → types/acorex-components-rail-navigation.d.ts} +0 -0
  305. /package/{range-slider/index.d.ts → types/acorex-components-range-slider.d.ts} +0 -0
  306. /package/{rest-api-generator/index.d.ts → types/acorex-components-rest-api-generator.d.ts} +0 -0
  307. /package/{result/index.d.ts → types/acorex-components-result.d.ts} +0 -0
  308. /package/{routing-progress/index.d.ts → types/acorex-components-routing-progress.d.ts} +0 -0
  309. /package/{rrule/index.d.ts → types/acorex-components-rrule.d.ts} +0 -0
  310. /package/{scss/index.d.ts → types/acorex-components-scss.d.ts} +0 -0
  311. /package/{search-box/index.d.ts → types/acorex-components-search-box.d.ts} +0 -0
  312. /package/{selection-list-2/index.d.ts → types/acorex-components-selection-list-2.d.ts} +0 -0
  313. /package/{selection-list/index.d.ts → types/acorex-components-selection-list.d.ts} +0 -0
  314. /package/{skeleton/index.d.ts → types/acorex-components-skeleton.d.ts} +0 -0
  315. /package/{sliding-item/index.d.ts → types/acorex-components-sliding-item.d.ts} +0 -0
  316. /package/{step-wizard/index.d.ts → types/acorex-components-step-wizard.d.ts} +0 -0
  317. /package/{switch/index.d.ts → types/acorex-components-switch.d.ts} +0 -0
  318. /package/{tag-box/index.d.ts → types/acorex-components-tag-box.d.ts} +0 -0
  319. /package/{text-area/index.d.ts → types/acorex-components-text-area.d.ts} +0 -0
  320. /package/{time-duration/index.d.ts → types/acorex-components-time-duration.d.ts} +0 -0
  321. /package/{time-line/index.d.ts → types/acorex-components-time-line.d.ts} +0 -0
  322. /package/{toast/index.d.ts → types/acorex-components-toast.d.ts} +0 -0
  323. /package/{toolbar/index.d.ts → types/acorex-components-toolbar.d.ts} +0 -0
  324. /package/{tooltip/index.d.ts → types/acorex-components-tooltip.d.ts} +0 -0
  325. /package/{tree-view-legacy/index.d.ts → types/acorex-components-tree-view-legacy.d.ts} +0 -0
  326. /package/{tree-view/index.d.ts → types/acorex-components-tree-view.d.ts} +0 -0
  327. /package/{uploader/index.d.ts → types/acorex-components-uploader.d.ts} +0 -0
  328. /package/{video-player/index.d.ts → types/acorex-components-video-player.d.ts} +0 -0
  329. /package/{wysiwyg/index.d.ts → types/acorex-components-wysiwyg.d.ts} +0 -0
  330. /package/{index.d.ts → types/acorex-components.d.ts} +0 -0
@@ -346,13 +346,13 @@ class AXDataListComponent extends MXValueComponent {
346
346
  shouldShowTooltip(item) {
347
347
  return this.showItemTooltip() && !!this.getItemTooltip(item);
348
348
  }
349
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXDataListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
350
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: AXDataListComponent, isStandalone: true, selector: "ax-data-list", inputs: { dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, showCheckbox: { classPropertyName: "showCheckbox", publicName: "showCheckbox", isSignal: true, isRequired: false, transformFunction: null }, itemHeight: { classPropertyName: "itemHeight", publicName: "itemHeight", isSignal: true, 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 }, disabledField: { classPropertyName: "disabledField", publicName: "disabledField", isSignal: true, isRequired: false, transformFunction: null }, tooltipField: { classPropertyName: "tooltipField", publicName: "tooltipField", isSignal: true, isRequired: false, transformFunction: null }, textField: { classPropertyName: "textField", publicName: "textField", isSignal: true, isRequired: false, transformFunction: null }, descriptionField: { classPropertyName: "descriptionField", publicName: "descriptionField", isSignal: true, isRequired: false, transformFunction: null }, levelField: { classPropertyName: "levelField", publicName: "levelField", isSignal: true, isRequired: false, transformFunction: null }, childrenField: { classPropertyName: "childrenField", publicName: "childrenField", isSignal: true, isRequired: false, transformFunction: null }, expandedField: { classPropertyName: "expandedField", publicName: "expandedField", isSignal: true, isRequired: false, transformFunction: null }, itemTemplate: { classPropertyName: "itemTemplate", publicName: "itemTemplate", isSignal: true, isRequired: false, transformFunction: null }, emptyTemplate: { classPropertyName: "emptyTemplate", publicName: "emptyTemplate", isSignal: true, isRequired: false, transformFunction: null }, loadingTemplate: { classPropertyName: "loadingTemplate", publicName: "loadingTemplate", isSignal: true, isRequired: false, transformFunction: null }, selectionModel: { classPropertyName: "selectionModel", publicName: "selectionModel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectionChange: "selectionChange", itemClick: "itemClick", itemDoubleClick: "itemDoubleClick", expandChange: "expandChange", selectionModel: "selectionModelChange" }, viewQueries: [{ propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-data-list\" [class.ax-data-list--loading]=\"loading()\">\n <!-- Loading State -->\n @if (loading()) {\n <div class=\"ax-data-list__loading\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate() || defaultLoadingTemplate\"></ng-container>\n </div>\n }\n\n <!-- Empty State -->\n @if (isEmpty()) {\n <div class=\"ax-data-list__empty\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate() || defaultEmptyTemplate\"></ng-container>\n </div>\n }\n\n <!-- List Content -->\n @if (hasItems() && listDataSource !== null) {\n <div class=\"ax-data-list__content\">\n <cdk-virtual-scroll-viewport\n [itemSize]=\"itemHeight()\"\n class=\"ax-data-list__viewport\"\n [class.ax-data-list__viewport--truncated]=\"isItemTruncated()\"\n >\n <ng-container *cdkVirtualFor=\"let item of listDataSource; let i = index; trackBy: trackByFn\">\n @if (item) {\n <div\n class=\"ax-data-list__item\"\n [class.ax-data-list__item--selected]=\"isItemSelected(item)\"\n [class.ax-data-list__item--disabled]=\"isItemDisabled(item)\"\n [class.ax-data-list__item--focused]=\"focusedIndex() === i\"\n [class]=\"'ax-data-list__item--level-' + getItemLevel(item)\"\n [style.height.px]=\"itemHeight()\"\n (click)=\"onItemClick(item, $event)\"\n (dblclick)=\"onItemDoubleClick(item)\"\n (keydown)=\"onKeyDown($event, item, i)\"\n tabindex=\"0\"\n role=\"listitem\"\n [attr.aria-selected]=\"isItemSelected(item)\"\n [attr.aria-disabled]=\"isItemDisabled(item)\"\n [attr.aria-level]=\"getItemLevel(item) + 1\"\n >\n <!-- Checkbox -->\n @if (showCheckboxes()) {\n <div class=\"ax-data-list__checkbox\" (click)=\"onCheckboxClick($event)\">\n <ax-check-box\n [value]=\"isItemSelected(item)\"\n [disabled]=\"isItemDisabled(item)\"\n (valueChange)=\"onCheckboxChange(item, $event)\"\n >\n </ax-check-box>\n </div>\n }\n\n <!-- Expand/Collapse Button for Tree Items -->\n @if (hasChildren(item)) {\n <div\n class=\"ax-data-list__expand-button\"\n [class.ax-data-list__expand-button--expanded]=\"isExpanded(item)\"\n (click)=\"toggleExpanded(item, $event)\"\n role=\"button\"\n tabindex=\"0\"\n [attr.aria-expanded]=\"isExpanded(item)\"\n >\n <svg class=\"ax-data-list__expand-icon\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path d=\"M7 10l5 5 5-5z\" />\n </svg>\n </div>\n }\n\n <!-- Item Content -->\n <div class=\"ax-data-list__content-wrapper\">\n <!-- Custom Item Template -->\n @if (itemTemplate()) {\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate();\n context: {\n $implicit: item,\n index: i,\n selected: isItemSelected(item),\n disabled: isItemDisabled(item),\n }\n \"\n ></ng-container>\n } @else {\n <ng-container *ngTemplateOutlet=\"defaultItemTemplate\"></ng-container>\n }\n\n <!-- Default Item Template -->\n <ng-template #defaultItemTemplate>\n <div\n class=\"ax-data-list__text\"\n [class.ax-data-list__text--truncated]=\"isItemTruncated()\"\n [axTooltip]=\"shouldShowTooltip(item) ? getItemTooltip(item) : null\"\n [axTooltipDisabled]=\"!shouldShowTooltip(item)\"\n >\n {{ getItemText(item) }}\n </div>\n\n @if (getItemDescription(item)) {\n <div\n class=\"ax-data-list__description\"\n [class.ax-data-list__description--truncated]=\"isItemTruncated()\"\n >\n {{ getItemDescription(item) }}\n </div>\n }\n </ng-template>\n </div>\n </div>\n } @else {\n <!-- Loading skeleton for null items -->\n <div class=\"ax-data-list__item ax-data-list__item--loading\" [style.height.px]=\"itemHeight()\">\n <div class=\"ax-data-list__loading-skeleton\">\n <div class=\"ax-data-list__skeleton-checkbox\"></div>\n <div class=\"ax-data-list__skeleton-content\">\n <div class=\"ax-data-list__skeleton-text\"></div>\n <div class=\"ax-data-list__skeleton-description\"></div>\n </div>\n </div>\n </div>\n }\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </div>\n }\n</div>\n\n<!-- Default Loading Template -->\n<ng-template #defaultLoadingTemplate>\n <div class=\"ax-data-list__loading-default\">\n <div class=\"ax-data-list__loading-spinner\"></div>\n <span>Loading...</span>\n </div>\n</ng-template>\n\n<!-- Default Empty Template -->\n<ng-template #defaultEmptyTemplate>\n <div class=\"ax-data-list__empty-default\">\n <svg class=\"ax-data-list__empty-icon\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path\n d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z\"\n />\n </svg>\n <span>No items to display</span>\n </div>\n</ng-template>\n", styles: [".ax-data-list{display:flex;flex-direction:column;width:100%;height:100%;background:var(--ax-color-background, #ffffff);border:1px solid var(--ax-color-border, #e5e7eb);border-radius:var(--ax-border-radius, .375rem);overflow:hidden}.ax-data-list--loading .ax-data-list__content{opacity:.6;pointer-events:none}.ax-data-list__loading{display:flex;align-items:center;justify-content:center;padding:2rem;min-height:200px}.ax-data-list__loading-default{display:flex;flex-direction:column;align-items:center;gap:1rem;color:var(--ax-color-text-secondary, #6b7280)}.ax-data-list__loading-spinner{width:2rem;height:2rem;border:2px solid var(--ax-color-border, #e5e7eb);border-top:2px solid var(--ax-color-primary, #3b82f6);border-radius:50%;animation:spin 1s linear infinite}.ax-data-list__empty{display:flex;align-items:center;justify-content:center;padding:2rem;min-height:200px}.ax-data-list__empty-default{display:flex;flex-direction:column;align-items:center;gap:1rem;color:var(--ax-color-text-secondary, #6b7280);text-align:center}.ax-data-list__empty-icon{width:3rem;height:3rem;opacity:.5}.ax-data-list__content{flex:1;overflow:hidden}.ax-data-list__viewport{height:100%;width:100%}.ax-data-list__viewport--truncated .ax-data-list__text,.ax-data-list__viewport--truncated .ax-data-list__description{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ax-data-list__item{display:flex;align-items:center;padding:.5rem 1rem;cursor:pointer;transition:all .15s ease-in-out;border-bottom:1px solid var(--ax-color-border-light, #f3f4f6);position:relative}.ax-data-list__item:hover:not(.ax-data-list__item--disabled){background-color:var(--ax-color-hover, #f9fafb)}.ax-data-list__item:focus{outline:2px solid var(--ax-color-primary, #3b82f6);outline-offset:-2px}.ax-data-list__item--selected{background-color:var(--ax-color-primary-light, #dbeafe);color:var(--ax-color-primary, #3b82f6);border-color:var(--ax-color-primary, #3b82f6)}.ax-data-list__item--selected:hover{background-color:var(--ax-color-primary-light-hover, #bfdbfe)}.ax-data-list__item--disabled{cursor:not-allowed;opacity:.6;background-color:var(--ax-color-disabled, #f9fafb);color:var(--ax-color-text-disabled, #9ca3af)}.ax-data-list__item--disabled:hover{background-color:var(--ax-color-disabled, #f9fafb)}.ax-data-list__item--focused{background-color:var(--ax-color-focus, #eff6ff);outline:2px solid var(--ax-color-primary, #3b82f6);outline-offset:-2px}.ax-data-list__item--loading{cursor:default;pointer-events:none;background-color:var(--ax-color-background, #ffffff)}.ax-data-list__item--loading:hover{background-color:var(--ax-color-background, #ffffff)}.ax-data-list__item--level-0{padding-left:1rem}.ax-data-list__item--level-1{padding-left:2.5rem}.ax-data-list__item--level-2{padding-left:4rem}.ax-data-list__item--level-3{padding-left:5.5rem}.ax-data-list__item--level-4{padding-left:7rem}.ax-data-list__item--level-5{padding-left:8.5rem}.ax-data-list__checkbox{margin-right:.75rem;flex-shrink:0}.ax-data-list__expand-button{display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;margin-right:.5rem;cursor:pointer;border-radius:.25rem;transition:all .15s ease-in-out;flex-shrink:0}.ax-data-list__expand-button:hover{background-color:var(--ax-color-hover, #f3f4f6)}.ax-data-list__expand-button:focus{outline:2px solid var(--ax-color-primary, #3b82f6);outline-offset:2px}.ax-data-list__expand-button--expanded .ax-data-list__expand-icon{transform:rotate(90deg)}.ax-data-list__expand-icon{width:1rem;height:1rem;transition:transform .15s ease-in-out;color:var(--ax-color-text-secondary, #6b7280)}.ax-data-list__content-wrapper{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25rem}.ax-data-list__text{font-weight:500;color:var(--ax-color-text, #111827);line-height:1.25}.ax-data-list__text--truncated{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ax-data-list__description{font-size:.875rem;color:var(--ax-color-text-secondary, #6b7280);line-height:1.25}.ax-data-list__description--truncated{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 768px){.ax-data-list__item{padding:.75rem 1rem}.ax-data-list__item--level-1{padding-left:2rem}.ax-data-list__item--level-2{padding-left:3rem}.ax-data-list__item--level-3{padding-left:4rem}.ax-data-list__item--level-4{padding-left:5rem}.ax-data-list__item--level-5{padding-left:6rem}.ax-data-list__checkbox{margin-right:.5rem}.ax-data-list__expand-button{margin-right:.25rem}}@media (prefers-contrast: high){.ax-data-list{border-width:2px}.ax-data-list__item{border-bottom-width:2px}.ax-data-list__item:focus{outline-width:3px}.ax-data-list__item--selected{border-width:2px}.ax-data-list__expand-button:focus{outline-width:3px}}@media (prefers-reduced-motion: reduce){.ax-data-list__item,.ax-data-list__expand-icon{transition:none}.ax-data-list__loading-spinner{animation:none}}.ax-data-list__loading-skeleton{display:flex;align-items:center;width:100%;gap:.75rem}.ax-data-list__skeleton-checkbox{width:1rem;height:1rem;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;border-radius:.25rem;animation:shimmer 1.5s infinite;flex-shrink:0}.ax-data-list__skeleton-content{flex:1;display:flex;flex-direction:column;gap:.5rem}.ax-data-list__skeleton-text{height:1rem;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;border-radius:.25rem;animation:shimmer 1.5s infinite;width:80%}.ax-data-list__skeleton-description{height:.75rem;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;border-radius:.25rem;animation:shimmer 1.5s infinite;width:60%}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i2.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i2.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i2.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltipDisabled", "axTooltip", "axTooltipContext", "axTooltipPlacement", "axTooltipOffsetX", "axTooltipOffsetY", "axTooltipOpenAfter", "axTooltipCloseAfter"] }, { kind: "component", type: AXCheckBoxComponent, selector: "ax-check-box", inputs: ["disabled", "tabIndex", "readonly", "color", "value", "name", "id", "isLoading", "indeterminate"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
349
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXDataListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
350
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: AXDataListComponent, isStandalone: true, selector: "ax-data-list", inputs: { dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, showCheckbox: { classPropertyName: "showCheckbox", publicName: "showCheckbox", isSignal: true, isRequired: false, transformFunction: null }, itemHeight: { classPropertyName: "itemHeight", publicName: "itemHeight", isSignal: true, 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 }, disabledField: { classPropertyName: "disabledField", publicName: "disabledField", isSignal: true, isRequired: false, transformFunction: null }, tooltipField: { classPropertyName: "tooltipField", publicName: "tooltipField", isSignal: true, isRequired: false, transformFunction: null }, textField: { classPropertyName: "textField", publicName: "textField", isSignal: true, isRequired: false, transformFunction: null }, descriptionField: { classPropertyName: "descriptionField", publicName: "descriptionField", isSignal: true, isRequired: false, transformFunction: null }, levelField: { classPropertyName: "levelField", publicName: "levelField", isSignal: true, isRequired: false, transformFunction: null }, childrenField: { classPropertyName: "childrenField", publicName: "childrenField", isSignal: true, isRequired: false, transformFunction: null }, expandedField: { classPropertyName: "expandedField", publicName: "expandedField", isSignal: true, isRequired: false, transformFunction: null }, itemTemplate: { classPropertyName: "itemTemplate", publicName: "itemTemplate", isSignal: true, isRequired: false, transformFunction: null }, emptyTemplate: { classPropertyName: "emptyTemplate", publicName: "emptyTemplate", isSignal: true, isRequired: false, transformFunction: null }, loadingTemplate: { classPropertyName: "loadingTemplate", publicName: "loadingTemplate", isSignal: true, isRequired: false, transformFunction: null }, selectionModel: { classPropertyName: "selectionModel", publicName: "selectionModel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectionChange: "selectionChange", itemClick: "itemClick", itemDoubleClick: "itemDoubleClick", expandChange: "expandChange", selectionModel: "selectionModelChange" }, viewQueries: [{ propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-data-list\" [class.ax-data-list--loading]=\"loading()\">\n <!-- Loading State -->\n @if (loading()) {\n <div class=\"ax-data-list__loading\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate() || defaultLoadingTemplate\"></ng-container>\n </div>\n }\n\n <!-- Empty State -->\n @if (isEmpty()) {\n <div class=\"ax-data-list__empty\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate() || defaultEmptyTemplate\"></ng-container>\n </div>\n }\n\n <!-- List Content -->\n @if (hasItems() && listDataSource !== null) {\n <div class=\"ax-data-list__content\">\n <cdk-virtual-scroll-viewport\n [itemSize]=\"itemHeight()\"\n class=\"ax-data-list__viewport\"\n [class.ax-data-list__viewport--truncated]=\"isItemTruncated()\"\n >\n <ng-container *cdkVirtualFor=\"let item of listDataSource; let i = index; trackBy: trackByFn\">\n @if (item) {\n <div\n class=\"ax-data-list__item\"\n [class.ax-data-list__item--selected]=\"isItemSelected(item)\"\n [class.ax-data-list__item--disabled]=\"isItemDisabled(item)\"\n [class.ax-data-list__item--focused]=\"focusedIndex() === i\"\n [class]=\"'ax-data-list__item--level-' + getItemLevel(item)\"\n [style.height.px]=\"itemHeight()\"\n (click)=\"onItemClick(item, $event)\"\n (dblclick)=\"onItemDoubleClick(item)\"\n (keydown)=\"onKeyDown($event, item, i)\"\n tabindex=\"0\"\n role=\"listitem\"\n [attr.aria-selected]=\"isItemSelected(item)\"\n [attr.aria-disabled]=\"isItemDisabled(item)\"\n [attr.aria-level]=\"getItemLevel(item) + 1\"\n >\n <!-- Checkbox -->\n @if (showCheckboxes()) {\n <div class=\"ax-data-list__checkbox\" (click)=\"onCheckboxClick($event)\">\n <ax-check-box\n [value]=\"isItemSelected(item)\"\n [disabled]=\"isItemDisabled(item)\"\n (valueChange)=\"onCheckboxChange(item, $event)\"\n >\n </ax-check-box>\n </div>\n }\n\n <!-- Expand/Collapse Button for Tree Items -->\n @if (hasChildren(item)) {\n <div\n class=\"ax-data-list__expand-button\"\n [class.ax-data-list__expand-button--expanded]=\"isExpanded(item)\"\n (click)=\"toggleExpanded(item, $event)\"\n role=\"button\"\n tabindex=\"0\"\n [attr.aria-expanded]=\"isExpanded(item)\"\n >\n <svg class=\"ax-data-list__expand-icon\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path d=\"M7 10l5 5 5-5z\" />\n </svg>\n </div>\n }\n\n <!-- Item Content -->\n <div class=\"ax-data-list__content-wrapper\">\n <!-- Custom Item Template -->\n @if (itemTemplate()) {\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate();\n context: {\n $implicit: item,\n index: i,\n selected: isItemSelected(item),\n disabled: isItemDisabled(item),\n }\n \"\n ></ng-container>\n } @else {\n <ng-container *ngTemplateOutlet=\"defaultItemTemplate\"></ng-container>\n }\n\n <!-- Default Item Template -->\n <ng-template #defaultItemTemplate>\n <div\n class=\"ax-data-list__text\"\n [class.ax-data-list__text--truncated]=\"isItemTruncated()\"\n [axTooltip]=\"shouldShowTooltip(item) ? getItemTooltip(item) : null\"\n [axTooltipDisabled]=\"!shouldShowTooltip(item)\"\n >\n {{ getItemText(item) }}\n </div>\n\n @if (getItemDescription(item)) {\n <div\n class=\"ax-data-list__description\"\n [class.ax-data-list__description--truncated]=\"isItemTruncated()\"\n >\n {{ getItemDescription(item) }}\n </div>\n }\n </ng-template>\n </div>\n </div>\n } @else {\n <!-- Loading skeleton for null items -->\n <div class=\"ax-data-list__item ax-data-list__item--loading\" [style.height.px]=\"itemHeight()\">\n <div class=\"ax-data-list__loading-skeleton\">\n <div class=\"ax-data-list__skeleton-checkbox\"></div>\n <div class=\"ax-data-list__skeleton-content\">\n <div class=\"ax-data-list__skeleton-text\"></div>\n <div class=\"ax-data-list__skeleton-description\"></div>\n </div>\n </div>\n </div>\n }\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </div>\n }\n</div>\n\n<!-- Default Loading Template -->\n<ng-template #defaultLoadingTemplate>\n <div class=\"ax-data-list__loading-default\">\n <div class=\"ax-data-list__loading-spinner\"></div>\n <span>Loading...</span>\n </div>\n</ng-template>\n\n<!-- Default Empty Template -->\n<ng-template #defaultEmptyTemplate>\n <div class=\"ax-data-list__empty-default\">\n <svg class=\"ax-data-list__empty-icon\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path\n d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z\"\n />\n </svg>\n <span>No items to display</span>\n </div>\n</ng-template>\n", styles: [".ax-data-list{display:flex;flex-direction:column;width:100%;height:100%;background:var(--ax-color-background, #ffffff);border:1px solid var(--ax-color-border, #e5e7eb);border-radius:var(--ax-border-radius, .375rem);overflow:hidden}.ax-data-list--loading .ax-data-list__content{opacity:.6;pointer-events:none}.ax-data-list__loading{display:flex;align-items:center;justify-content:center;padding:2rem;min-height:200px}.ax-data-list__loading-default{display:flex;flex-direction:column;align-items:center;gap:1rem;color:var(--ax-color-text-secondary, #6b7280)}.ax-data-list__loading-spinner{width:2rem;height:2rem;border:2px solid var(--ax-color-border, #e5e7eb);border-top:2px solid var(--ax-color-primary, #3b82f6);border-radius:50%;animation:spin 1s linear infinite}.ax-data-list__empty{display:flex;align-items:center;justify-content:center;padding:2rem;min-height:200px}.ax-data-list__empty-default{display:flex;flex-direction:column;align-items:center;gap:1rem;color:var(--ax-color-text-secondary, #6b7280);text-align:center}.ax-data-list__empty-icon{width:3rem;height:3rem;opacity:.5}.ax-data-list__content{flex:1;overflow:hidden}.ax-data-list__viewport{height:100%;width:100%}.ax-data-list__viewport--truncated .ax-data-list__text,.ax-data-list__viewport--truncated .ax-data-list__description{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ax-data-list__item{display:flex;align-items:center;padding:.5rem 1rem;cursor:pointer;transition:all .15s ease-in-out;border-bottom:1px solid var(--ax-color-border-light, #f3f4f6);position:relative}.ax-data-list__item:hover:not(.ax-data-list__item--disabled){background-color:var(--ax-color-hover, #f9fafb)}.ax-data-list__item:focus{outline:2px solid var(--ax-color-primary, #3b82f6);outline-offset:-2px}.ax-data-list__item--selected{background-color:var(--ax-color-primary-light, #dbeafe);color:var(--ax-color-primary, #3b82f6);border-color:var(--ax-color-primary, #3b82f6)}.ax-data-list__item--selected:hover{background-color:var(--ax-color-primary-light-hover, #bfdbfe)}.ax-data-list__item--disabled{cursor:not-allowed;opacity:.6;background-color:var(--ax-color-disabled, #f9fafb);color:var(--ax-color-text-disabled, #9ca3af)}.ax-data-list__item--disabled:hover{background-color:var(--ax-color-disabled, #f9fafb)}.ax-data-list__item--focused{background-color:var(--ax-color-focus, #eff6ff);outline:2px solid var(--ax-color-primary, #3b82f6);outline-offset:-2px}.ax-data-list__item--loading{cursor:default;pointer-events:none;background-color:var(--ax-color-background, #ffffff)}.ax-data-list__item--loading:hover{background-color:var(--ax-color-background, #ffffff)}.ax-data-list__item--level-0{padding-left:1rem}.ax-data-list__item--level-1{padding-left:2.5rem}.ax-data-list__item--level-2{padding-left:4rem}.ax-data-list__item--level-3{padding-left:5.5rem}.ax-data-list__item--level-4{padding-left:7rem}.ax-data-list__item--level-5{padding-left:8.5rem}.ax-data-list__checkbox{margin-right:.75rem;flex-shrink:0}.ax-data-list__expand-button{display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;margin-right:.5rem;cursor:pointer;border-radius:.25rem;transition:all .15s ease-in-out;flex-shrink:0}.ax-data-list__expand-button:hover{background-color:var(--ax-color-hover, #f3f4f6)}.ax-data-list__expand-button:focus{outline:2px solid var(--ax-color-primary, #3b82f6);outline-offset:2px}.ax-data-list__expand-button--expanded .ax-data-list__expand-icon{transform:rotate(90deg)}.ax-data-list__expand-icon{width:1rem;height:1rem;transition:transform .15s ease-in-out;color:var(--ax-color-text-secondary, #6b7280)}.ax-data-list__content-wrapper{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25rem}.ax-data-list__text{font-weight:500;color:var(--ax-color-text, #111827);line-height:1.25}.ax-data-list__text--truncated{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ax-data-list__description{font-size:.875rem;color:var(--ax-color-text-secondary, #6b7280);line-height:1.25}.ax-data-list__description--truncated{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:768px){.ax-data-list__item{padding:.75rem 1rem}.ax-data-list__item--level-1{padding-left:2rem}.ax-data-list__item--level-2{padding-left:3rem}.ax-data-list__item--level-3{padding-left:4rem}.ax-data-list__item--level-4{padding-left:5rem}.ax-data-list__item--level-5{padding-left:6rem}.ax-data-list__checkbox{margin-right:.5rem}.ax-data-list__expand-button{margin-right:.25rem}}@media(prefers-contrast:high){.ax-data-list{border-width:2px}.ax-data-list__item{border-bottom-width:2px}.ax-data-list__item:focus{outline-width:3px}.ax-data-list__item--selected{border-width:2px}.ax-data-list__expand-button:focus{outline-width:3px}}@media(prefers-reduced-motion:reduce){.ax-data-list__item,.ax-data-list__expand-icon{transition:none}.ax-data-list__loading-spinner{animation:none}}.ax-data-list__loading-skeleton{display:flex;align-items:center;width:100%;gap:.75rem}.ax-data-list__skeleton-checkbox{width:1rem;height:1rem;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;border-radius:.25rem;animation:shimmer 1.5s infinite;flex-shrink:0}.ax-data-list__skeleton-content{flex:1;display:flex;flex-direction:column;gap:.5rem}.ax-data-list__skeleton-text{height:1rem;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;border-radius:.25rem;animation:shimmer 1.5s infinite;width:80%}.ax-data-list__skeleton-description{height:.75rem;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;border-radius:.25rem;animation:shimmer 1.5s infinite;width:60%}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i2.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i2.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i2.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltipDisabled", "axTooltip", "axTooltipContext", "axTooltipPlacement", "axTooltipOffsetX", "axTooltipOffsetY", "axTooltipOpenAfter", "axTooltipCloseAfter"] }, { kind: "component", type: AXCheckBoxComponent, selector: "ax-check-box", inputs: ["disabled", "tabIndex", "readonly", "color", "value", "name", "id", "isLoading", "indeterminate"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
351
351
  }
352
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXDataListComponent, decorators: [{
352
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXDataListComponent, decorators: [{
353
353
  type: Component,
354
- args: [{ selector: 'ax-data-list', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [CommonModule, FormsModule, ScrollingModule, AXTooltipDirective, AXCheckBoxComponent], template: "<div class=\"ax-data-list\" [class.ax-data-list--loading]=\"loading()\">\n <!-- Loading State -->\n @if (loading()) {\n <div class=\"ax-data-list__loading\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate() || defaultLoadingTemplate\"></ng-container>\n </div>\n }\n\n <!-- Empty State -->\n @if (isEmpty()) {\n <div class=\"ax-data-list__empty\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate() || defaultEmptyTemplate\"></ng-container>\n </div>\n }\n\n <!-- List Content -->\n @if (hasItems() && listDataSource !== null) {\n <div class=\"ax-data-list__content\">\n <cdk-virtual-scroll-viewport\n [itemSize]=\"itemHeight()\"\n class=\"ax-data-list__viewport\"\n [class.ax-data-list__viewport--truncated]=\"isItemTruncated()\"\n >\n <ng-container *cdkVirtualFor=\"let item of listDataSource; let i = index; trackBy: trackByFn\">\n @if (item) {\n <div\n class=\"ax-data-list__item\"\n [class.ax-data-list__item--selected]=\"isItemSelected(item)\"\n [class.ax-data-list__item--disabled]=\"isItemDisabled(item)\"\n [class.ax-data-list__item--focused]=\"focusedIndex() === i\"\n [class]=\"'ax-data-list__item--level-' + getItemLevel(item)\"\n [style.height.px]=\"itemHeight()\"\n (click)=\"onItemClick(item, $event)\"\n (dblclick)=\"onItemDoubleClick(item)\"\n (keydown)=\"onKeyDown($event, item, i)\"\n tabindex=\"0\"\n role=\"listitem\"\n [attr.aria-selected]=\"isItemSelected(item)\"\n [attr.aria-disabled]=\"isItemDisabled(item)\"\n [attr.aria-level]=\"getItemLevel(item) + 1\"\n >\n <!-- Checkbox -->\n @if (showCheckboxes()) {\n <div class=\"ax-data-list__checkbox\" (click)=\"onCheckboxClick($event)\">\n <ax-check-box\n [value]=\"isItemSelected(item)\"\n [disabled]=\"isItemDisabled(item)\"\n (valueChange)=\"onCheckboxChange(item, $event)\"\n >\n </ax-check-box>\n </div>\n }\n\n <!-- Expand/Collapse Button for Tree Items -->\n @if (hasChildren(item)) {\n <div\n class=\"ax-data-list__expand-button\"\n [class.ax-data-list__expand-button--expanded]=\"isExpanded(item)\"\n (click)=\"toggleExpanded(item, $event)\"\n role=\"button\"\n tabindex=\"0\"\n [attr.aria-expanded]=\"isExpanded(item)\"\n >\n <svg class=\"ax-data-list__expand-icon\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path d=\"M7 10l5 5 5-5z\" />\n </svg>\n </div>\n }\n\n <!-- Item Content -->\n <div class=\"ax-data-list__content-wrapper\">\n <!-- Custom Item Template -->\n @if (itemTemplate()) {\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate();\n context: {\n $implicit: item,\n index: i,\n selected: isItemSelected(item),\n disabled: isItemDisabled(item),\n }\n \"\n ></ng-container>\n } @else {\n <ng-container *ngTemplateOutlet=\"defaultItemTemplate\"></ng-container>\n }\n\n <!-- Default Item Template -->\n <ng-template #defaultItemTemplate>\n <div\n class=\"ax-data-list__text\"\n [class.ax-data-list__text--truncated]=\"isItemTruncated()\"\n [axTooltip]=\"shouldShowTooltip(item) ? getItemTooltip(item) : null\"\n [axTooltipDisabled]=\"!shouldShowTooltip(item)\"\n >\n {{ getItemText(item) }}\n </div>\n\n @if (getItemDescription(item)) {\n <div\n class=\"ax-data-list__description\"\n [class.ax-data-list__description--truncated]=\"isItemTruncated()\"\n >\n {{ getItemDescription(item) }}\n </div>\n }\n </ng-template>\n </div>\n </div>\n } @else {\n <!-- Loading skeleton for null items -->\n <div class=\"ax-data-list__item ax-data-list__item--loading\" [style.height.px]=\"itemHeight()\">\n <div class=\"ax-data-list__loading-skeleton\">\n <div class=\"ax-data-list__skeleton-checkbox\"></div>\n <div class=\"ax-data-list__skeleton-content\">\n <div class=\"ax-data-list__skeleton-text\"></div>\n <div class=\"ax-data-list__skeleton-description\"></div>\n </div>\n </div>\n </div>\n }\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </div>\n }\n</div>\n\n<!-- Default Loading Template -->\n<ng-template #defaultLoadingTemplate>\n <div class=\"ax-data-list__loading-default\">\n <div class=\"ax-data-list__loading-spinner\"></div>\n <span>Loading...</span>\n </div>\n</ng-template>\n\n<!-- Default Empty Template -->\n<ng-template #defaultEmptyTemplate>\n <div class=\"ax-data-list__empty-default\">\n <svg class=\"ax-data-list__empty-icon\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path\n d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z\"\n />\n </svg>\n <span>No items to display</span>\n </div>\n</ng-template>\n", styles: [".ax-data-list{display:flex;flex-direction:column;width:100%;height:100%;background:var(--ax-color-background, #ffffff);border:1px solid var(--ax-color-border, #e5e7eb);border-radius:var(--ax-border-radius, .375rem);overflow:hidden}.ax-data-list--loading .ax-data-list__content{opacity:.6;pointer-events:none}.ax-data-list__loading{display:flex;align-items:center;justify-content:center;padding:2rem;min-height:200px}.ax-data-list__loading-default{display:flex;flex-direction:column;align-items:center;gap:1rem;color:var(--ax-color-text-secondary, #6b7280)}.ax-data-list__loading-spinner{width:2rem;height:2rem;border:2px solid var(--ax-color-border, #e5e7eb);border-top:2px solid var(--ax-color-primary, #3b82f6);border-radius:50%;animation:spin 1s linear infinite}.ax-data-list__empty{display:flex;align-items:center;justify-content:center;padding:2rem;min-height:200px}.ax-data-list__empty-default{display:flex;flex-direction:column;align-items:center;gap:1rem;color:var(--ax-color-text-secondary, #6b7280);text-align:center}.ax-data-list__empty-icon{width:3rem;height:3rem;opacity:.5}.ax-data-list__content{flex:1;overflow:hidden}.ax-data-list__viewport{height:100%;width:100%}.ax-data-list__viewport--truncated .ax-data-list__text,.ax-data-list__viewport--truncated .ax-data-list__description{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ax-data-list__item{display:flex;align-items:center;padding:.5rem 1rem;cursor:pointer;transition:all .15s ease-in-out;border-bottom:1px solid var(--ax-color-border-light, #f3f4f6);position:relative}.ax-data-list__item:hover:not(.ax-data-list__item--disabled){background-color:var(--ax-color-hover, #f9fafb)}.ax-data-list__item:focus{outline:2px solid var(--ax-color-primary, #3b82f6);outline-offset:-2px}.ax-data-list__item--selected{background-color:var(--ax-color-primary-light, #dbeafe);color:var(--ax-color-primary, #3b82f6);border-color:var(--ax-color-primary, #3b82f6)}.ax-data-list__item--selected:hover{background-color:var(--ax-color-primary-light-hover, #bfdbfe)}.ax-data-list__item--disabled{cursor:not-allowed;opacity:.6;background-color:var(--ax-color-disabled, #f9fafb);color:var(--ax-color-text-disabled, #9ca3af)}.ax-data-list__item--disabled:hover{background-color:var(--ax-color-disabled, #f9fafb)}.ax-data-list__item--focused{background-color:var(--ax-color-focus, #eff6ff);outline:2px solid var(--ax-color-primary, #3b82f6);outline-offset:-2px}.ax-data-list__item--loading{cursor:default;pointer-events:none;background-color:var(--ax-color-background, #ffffff)}.ax-data-list__item--loading:hover{background-color:var(--ax-color-background, #ffffff)}.ax-data-list__item--level-0{padding-left:1rem}.ax-data-list__item--level-1{padding-left:2.5rem}.ax-data-list__item--level-2{padding-left:4rem}.ax-data-list__item--level-3{padding-left:5.5rem}.ax-data-list__item--level-4{padding-left:7rem}.ax-data-list__item--level-5{padding-left:8.5rem}.ax-data-list__checkbox{margin-right:.75rem;flex-shrink:0}.ax-data-list__expand-button{display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;margin-right:.5rem;cursor:pointer;border-radius:.25rem;transition:all .15s ease-in-out;flex-shrink:0}.ax-data-list__expand-button:hover{background-color:var(--ax-color-hover, #f3f4f6)}.ax-data-list__expand-button:focus{outline:2px solid var(--ax-color-primary, #3b82f6);outline-offset:2px}.ax-data-list__expand-button--expanded .ax-data-list__expand-icon{transform:rotate(90deg)}.ax-data-list__expand-icon{width:1rem;height:1rem;transition:transform .15s ease-in-out;color:var(--ax-color-text-secondary, #6b7280)}.ax-data-list__content-wrapper{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25rem}.ax-data-list__text{font-weight:500;color:var(--ax-color-text, #111827);line-height:1.25}.ax-data-list__text--truncated{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ax-data-list__description{font-size:.875rem;color:var(--ax-color-text-secondary, #6b7280);line-height:1.25}.ax-data-list__description--truncated{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 768px){.ax-data-list__item{padding:.75rem 1rem}.ax-data-list__item--level-1{padding-left:2rem}.ax-data-list__item--level-2{padding-left:3rem}.ax-data-list__item--level-3{padding-left:4rem}.ax-data-list__item--level-4{padding-left:5rem}.ax-data-list__item--level-5{padding-left:6rem}.ax-data-list__checkbox{margin-right:.5rem}.ax-data-list__expand-button{margin-right:.25rem}}@media (prefers-contrast: high){.ax-data-list{border-width:2px}.ax-data-list__item{border-bottom-width:2px}.ax-data-list__item:focus{outline-width:3px}.ax-data-list__item--selected{border-width:2px}.ax-data-list__expand-button:focus{outline-width:3px}}@media (prefers-reduced-motion: reduce){.ax-data-list__item,.ax-data-list__expand-icon{transition:none}.ax-data-list__loading-spinner{animation:none}}.ax-data-list__loading-skeleton{display:flex;align-items:center;width:100%;gap:.75rem}.ax-data-list__skeleton-checkbox{width:1rem;height:1rem;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;border-radius:.25rem;animation:shimmer 1.5s infinite;flex-shrink:0}.ax-data-list__skeleton-content{flex:1;display:flex;flex-direction:column;gap:.5rem}.ax-data-list__skeleton-text{height:1rem;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;border-radius:.25rem;animation:shimmer 1.5s infinite;width:80%}.ax-data-list__skeleton-description{height:.75rem;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;border-radius:.25rem;animation:shimmer 1.5s infinite;width:60%}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}\n"] }]
355
- }], ctorParameters: () => [], propDecorators: { selectionChange: [{
354
+ args: [{ selector: 'ax-data-list', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [CommonModule, FormsModule, ScrollingModule, AXTooltipDirective, AXCheckBoxComponent], template: "<div class=\"ax-data-list\" [class.ax-data-list--loading]=\"loading()\">\n <!-- Loading State -->\n @if (loading()) {\n <div class=\"ax-data-list__loading\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate() || defaultLoadingTemplate\"></ng-container>\n </div>\n }\n\n <!-- Empty State -->\n @if (isEmpty()) {\n <div class=\"ax-data-list__empty\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate() || defaultEmptyTemplate\"></ng-container>\n </div>\n }\n\n <!-- List Content -->\n @if (hasItems() && listDataSource !== null) {\n <div class=\"ax-data-list__content\">\n <cdk-virtual-scroll-viewport\n [itemSize]=\"itemHeight()\"\n class=\"ax-data-list__viewport\"\n [class.ax-data-list__viewport--truncated]=\"isItemTruncated()\"\n >\n <ng-container *cdkVirtualFor=\"let item of listDataSource; let i = index; trackBy: trackByFn\">\n @if (item) {\n <div\n class=\"ax-data-list__item\"\n [class.ax-data-list__item--selected]=\"isItemSelected(item)\"\n [class.ax-data-list__item--disabled]=\"isItemDisabled(item)\"\n [class.ax-data-list__item--focused]=\"focusedIndex() === i\"\n [class]=\"'ax-data-list__item--level-' + getItemLevel(item)\"\n [style.height.px]=\"itemHeight()\"\n (click)=\"onItemClick(item, $event)\"\n (dblclick)=\"onItemDoubleClick(item)\"\n (keydown)=\"onKeyDown($event, item, i)\"\n tabindex=\"0\"\n role=\"listitem\"\n [attr.aria-selected]=\"isItemSelected(item)\"\n [attr.aria-disabled]=\"isItemDisabled(item)\"\n [attr.aria-level]=\"getItemLevel(item) + 1\"\n >\n <!-- Checkbox -->\n @if (showCheckboxes()) {\n <div class=\"ax-data-list__checkbox\" (click)=\"onCheckboxClick($event)\">\n <ax-check-box\n [value]=\"isItemSelected(item)\"\n [disabled]=\"isItemDisabled(item)\"\n (valueChange)=\"onCheckboxChange(item, $event)\"\n >\n </ax-check-box>\n </div>\n }\n\n <!-- Expand/Collapse Button for Tree Items -->\n @if (hasChildren(item)) {\n <div\n class=\"ax-data-list__expand-button\"\n [class.ax-data-list__expand-button--expanded]=\"isExpanded(item)\"\n (click)=\"toggleExpanded(item, $event)\"\n role=\"button\"\n tabindex=\"0\"\n [attr.aria-expanded]=\"isExpanded(item)\"\n >\n <svg class=\"ax-data-list__expand-icon\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path d=\"M7 10l5 5 5-5z\" />\n </svg>\n </div>\n }\n\n <!-- Item Content -->\n <div class=\"ax-data-list__content-wrapper\">\n <!-- Custom Item Template -->\n @if (itemTemplate()) {\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate();\n context: {\n $implicit: item,\n index: i,\n selected: isItemSelected(item),\n disabled: isItemDisabled(item),\n }\n \"\n ></ng-container>\n } @else {\n <ng-container *ngTemplateOutlet=\"defaultItemTemplate\"></ng-container>\n }\n\n <!-- Default Item Template -->\n <ng-template #defaultItemTemplate>\n <div\n class=\"ax-data-list__text\"\n [class.ax-data-list__text--truncated]=\"isItemTruncated()\"\n [axTooltip]=\"shouldShowTooltip(item) ? getItemTooltip(item) : null\"\n [axTooltipDisabled]=\"!shouldShowTooltip(item)\"\n >\n {{ getItemText(item) }}\n </div>\n\n @if (getItemDescription(item)) {\n <div\n class=\"ax-data-list__description\"\n [class.ax-data-list__description--truncated]=\"isItemTruncated()\"\n >\n {{ getItemDescription(item) }}\n </div>\n }\n </ng-template>\n </div>\n </div>\n } @else {\n <!-- Loading skeleton for null items -->\n <div class=\"ax-data-list__item ax-data-list__item--loading\" [style.height.px]=\"itemHeight()\">\n <div class=\"ax-data-list__loading-skeleton\">\n <div class=\"ax-data-list__skeleton-checkbox\"></div>\n <div class=\"ax-data-list__skeleton-content\">\n <div class=\"ax-data-list__skeleton-text\"></div>\n <div class=\"ax-data-list__skeleton-description\"></div>\n </div>\n </div>\n </div>\n }\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </div>\n }\n</div>\n\n<!-- Default Loading Template -->\n<ng-template #defaultLoadingTemplate>\n <div class=\"ax-data-list__loading-default\">\n <div class=\"ax-data-list__loading-spinner\"></div>\n <span>Loading...</span>\n </div>\n</ng-template>\n\n<!-- Default Empty Template -->\n<ng-template #defaultEmptyTemplate>\n <div class=\"ax-data-list__empty-default\">\n <svg class=\"ax-data-list__empty-icon\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path\n d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z\"\n />\n </svg>\n <span>No items to display</span>\n </div>\n</ng-template>\n", styles: [".ax-data-list{display:flex;flex-direction:column;width:100%;height:100%;background:var(--ax-color-background, #ffffff);border:1px solid var(--ax-color-border, #e5e7eb);border-radius:var(--ax-border-radius, .375rem);overflow:hidden}.ax-data-list--loading .ax-data-list__content{opacity:.6;pointer-events:none}.ax-data-list__loading{display:flex;align-items:center;justify-content:center;padding:2rem;min-height:200px}.ax-data-list__loading-default{display:flex;flex-direction:column;align-items:center;gap:1rem;color:var(--ax-color-text-secondary, #6b7280)}.ax-data-list__loading-spinner{width:2rem;height:2rem;border:2px solid var(--ax-color-border, #e5e7eb);border-top:2px solid var(--ax-color-primary, #3b82f6);border-radius:50%;animation:spin 1s linear infinite}.ax-data-list__empty{display:flex;align-items:center;justify-content:center;padding:2rem;min-height:200px}.ax-data-list__empty-default{display:flex;flex-direction:column;align-items:center;gap:1rem;color:var(--ax-color-text-secondary, #6b7280);text-align:center}.ax-data-list__empty-icon{width:3rem;height:3rem;opacity:.5}.ax-data-list__content{flex:1;overflow:hidden}.ax-data-list__viewport{height:100%;width:100%}.ax-data-list__viewport--truncated .ax-data-list__text,.ax-data-list__viewport--truncated .ax-data-list__description{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ax-data-list__item{display:flex;align-items:center;padding:.5rem 1rem;cursor:pointer;transition:all .15s ease-in-out;border-bottom:1px solid var(--ax-color-border-light, #f3f4f6);position:relative}.ax-data-list__item:hover:not(.ax-data-list__item--disabled){background-color:var(--ax-color-hover, #f9fafb)}.ax-data-list__item:focus{outline:2px solid var(--ax-color-primary, #3b82f6);outline-offset:-2px}.ax-data-list__item--selected{background-color:var(--ax-color-primary-light, #dbeafe);color:var(--ax-color-primary, #3b82f6);border-color:var(--ax-color-primary, #3b82f6)}.ax-data-list__item--selected:hover{background-color:var(--ax-color-primary-light-hover, #bfdbfe)}.ax-data-list__item--disabled{cursor:not-allowed;opacity:.6;background-color:var(--ax-color-disabled, #f9fafb);color:var(--ax-color-text-disabled, #9ca3af)}.ax-data-list__item--disabled:hover{background-color:var(--ax-color-disabled, #f9fafb)}.ax-data-list__item--focused{background-color:var(--ax-color-focus, #eff6ff);outline:2px solid var(--ax-color-primary, #3b82f6);outline-offset:-2px}.ax-data-list__item--loading{cursor:default;pointer-events:none;background-color:var(--ax-color-background, #ffffff)}.ax-data-list__item--loading:hover{background-color:var(--ax-color-background, #ffffff)}.ax-data-list__item--level-0{padding-left:1rem}.ax-data-list__item--level-1{padding-left:2.5rem}.ax-data-list__item--level-2{padding-left:4rem}.ax-data-list__item--level-3{padding-left:5.5rem}.ax-data-list__item--level-4{padding-left:7rem}.ax-data-list__item--level-5{padding-left:8.5rem}.ax-data-list__checkbox{margin-right:.75rem;flex-shrink:0}.ax-data-list__expand-button{display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;margin-right:.5rem;cursor:pointer;border-radius:.25rem;transition:all .15s ease-in-out;flex-shrink:0}.ax-data-list__expand-button:hover{background-color:var(--ax-color-hover, #f3f4f6)}.ax-data-list__expand-button:focus{outline:2px solid var(--ax-color-primary, #3b82f6);outline-offset:2px}.ax-data-list__expand-button--expanded .ax-data-list__expand-icon{transform:rotate(90deg)}.ax-data-list__expand-icon{width:1rem;height:1rem;transition:transform .15s ease-in-out;color:var(--ax-color-text-secondary, #6b7280)}.ax-data-list__content-wrapper{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25rem}.ax-data-list__text{font-weight:500;color:var(--ax-color-text, #111827);line-height:1.25}.ax-data-list__text--truncated{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ax-data-list__description{font-size:.875rem;color:var(--ax-color-text-secondary, #6b7280);line-height:1.25}.ax-data-list__description--truncated{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:768px){.ax-data-list__item{padding:.75rem 1rem}.ax-data-list__item--level-1{padding-left:2rem}.ax-data-list__item--level-2{padding-left:3rem}.ax-data-list__item--level-3{padding-left:4rem}.ax-data-list__item--level-4{padding-left:5rem}.ax-data-list__item--level-5{padding-left:6rem}.ax-data-list__checkbox{margin-right:.5rem}.ax-data-list__expand-button{margin-right:.25rem}}@media(prefers-contrast:high){.ax-data-list{border-width:2px}.ax-data-list__item{border-bottom-width:2px}.ax-data-list__item:focus{outline-width:3px}.ax-data-list__item--selected{border-width:2px}.ax-data-list__expand-button:focus{outline-width:3px}}@media(prefers-reduced-motion:reduce){.ax-data-list__item,.ax-data-list__expand-icon{transition:none}.ax-data-list__loading-spinner{animation:none}}.ax-data-list__loading-skeleton{display:flex;align-items:center;width:100%;gap:.75rem}.ax-data-list__skeleton-checkbox{width:1rem;height:1rem;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;border-radius:.25rem;animation:shimmer 1.5s infinite;flex-shrink:0}.ax-data-list__skeleton-content{flex:1;display:flex;flex-direction:column;gap:.5rem}.ax-data-list__skeleton-text{height:1rem;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;border-radius:.25rem;animation:shimmer 1.5s infinite;width:80%}.ax-data-list__skeleton-description{height:.75rem;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;border-radius:.25rem;animation:shimmer 1.5s infinite;width:60%}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}\n"] }]
355
+ }], ctorParameters: () => [], propDecorators: { dataSource: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataSource", required: true }] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: false }] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], showCheckbox: [{ type: i0.Input, args: [{ isSignal: true, alias: "showCheckbox", required: false }] }], itemHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemHeight", required: false }] }], isItemTruncated: [{ type: i0.Input, args: [{ isSignal: true, alias: "isItemTruncated", required: false }] }], showItemTooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "showItemTooltip", required: false }] }], disabledField: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabledField", required: false }] }], tooltipField: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltipField", required: false }] }], textField: [{ type: i0.Input, args: [{ isSignal: true, alias: "textField", required: false }] }], descriptionField: [{ type: i0.Input, args: [{ isSignal: true, alias: "descriptionField", required: false }] }], levelField: [{ type: i0.Input, args: [{ isSignal: true, alias: "levelField", required: false }] }], childrenField: [{ type: i0.Input, args: [{ isSignal: true, alias: "childrenField", required: false }] }], expandedField: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandedField", required: false }] }], itemTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemTemplate", required: false }] }], emptyTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyTemplate", required: false }] }], loadingTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "loadingTemplate", required: false }] }], selectionChange: [{
356
356
  type: Output
357
357
  }], itemClick: [{
358
358
  type: Output
@@ -363,7 +363,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
363
363
  }], viewport: [{
364
364
  type: ViewChild,
365
365
  args: [CdkVirtualScrollViewport]
366
- }] } });
366
+ }], selectionModel: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectionModel", required: false }] }, { type: i0.Output, args: ["selectionModelChange"] }] } });
367
367
 
368
368
  // Secondary entry point for @acorex/components/data-list
369
369
 
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-data-list.mjs","sources":["../tmp-esm2022/data-list/lib/data-list.component.js","../tmp-esm2022/data-list/index.js","../tmp-esm2022/data-list/acorex-components-data-list.js"],"sourcesContent":["import { AXListDataSource, MXValueComponent } from '@acorex/cdk/common';\nimport { AXCheckBoxComponent } from '@acorex/components/check-box';\nimport { AXTooltipDirective } from '@acorex/components/tooltip';\nimport { CdkVirtualScrollViewport, ScrollingModule } from '@angular/cdk/scrolling';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, EventEmitter, input, model, Output, signal, ViewChild, ViewEncapsulation, } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@angular/cdk/scrolling\";\nexport class AXDataListComponent extends MXValueComponent {\n constructor() {\n super();\n // Inputs\n this.dataSource = input.required(...(ngDevMode ? [{ debugName: \"dataSource\" }] : []));\n this.config = input({}, ...(ngDevMode ? [{ debugName: \"config\" }] : []));\n this.multiple = input(false, ...(ngDevMode ? [{ debugName: \"multiple\" }] : []));\n this.showCheckbox = input(true, ...(ngDevMode ? [{ debugName: \"showCheckbox\" }] : []));\n this.itemHeight = input(40, ...(ngDevMode ? [{ debugName: \"itemHeight\" }] : []));\n this.isItemTruncated = input(true, ...(ngDevMode ? [{ debugName: \"isItemTruncated\" }] : []));\n this.showItemTooltip = input(true, ...(ngDevMode ? [{ debugName: \"showItemTooltip\" }] : []));\n this.disabledField = input('disabled', ...(ngDevMode ? [{ debugName: \"disabledField\" }] : []));\n this.tooltipField = input('tooltip', ...(ngDevMode ? [{ debugName: \"tooltipField\" }] : []));\n this.textField = input('text', ...(ngDevMode ? [{ debugName: \"textField\" }] : []));\n this.descriptionField = input('description', ...(ngDevMode ? [{ debugName: \"descriptionField\" }] : []));\n this.levelField = input('level', ...(ngDevMode ? [{ debugName: \"levelField\" }] : []));\n this.childrenField = input('children', ...(ngDevMode ? [{ debugName: \"childrenField\" }] : []));\n this.expandedField = input('expanded', ...(ngDevMode ? [{ debugName: \"expandedField\" }] : []));\n // Templates\n this.itemTemplate = input(...(ngDevMode ? [undefined, { debugName: \"itemTemplate\" }] : []));\n this.emptyTemplate = input(...(ngDevMode ? [undefined, { debugName: \"emptyTemplate\" }] : []));\n this.loadingTemplate = input(...(ngDevMode ? [undefined, { debugName: \"loadingTemplate\" }] : []));\n // Outputs\n this.selectionChange = new EventEmitter();\n this.itemClick = new EventEmitter();\n this.itemDoubleClick = new EventEmitter();\n this.expandChange = new EventEmitter();\n // Internal signals\n this.loading = signal(false, ...(ngDevMode ? [{ debugName: \"loading\" }] : []));\n this.totalItems = signal(0, ...(ngDevMode ? [{ debugName: \"totalItems\" }] : []));\n this.selectedItems = signal([], ...(ngDevMode ? [{ debugName: \"selectedItems\" }] : []));\n this.selectedKeys = signal([], ...(ngDevMode ? [{ debugName: \"selectedKeys\" }] : []));\n this.focusedIndex = signal(-1, ...(ngDevMode ? [{ debugName: \"focusedIndex\" }] : []));\n this.expandedItems = signal(new Set(), ...(ngDevMode ? [{ debugName: \"expandedItems\" }] : []));\n // List data source for virtual scrolling\n this.listDataSource = null;\n // Computed values\n this.hasItems = computed(() => {\n const dataSourceItems = this.listDataSource?.source?.cachedItems?.length > 0;\n return dataSourceItems;\n }, ...(ngDevMode ? [{ debugName: \"hasItems\" }] : []));\n this.isEmpty = computed(() => {\n const notLoading = !this.loading();\n const noDataSourceItems = !this.listDataSource?.source?.cachedItems?.length;\n return notLoading && noDataSourceItems;\n }, ...(ngDevMode ? [{ debugName: \"isEmpty\" }] : []));\n this.isMultipleSelection = computed(() => this.multiple(), ...(ngDevMode ? [{ debugName: \"isMultipleSelection\" }] : []));\n this.showCheckboxes = computed(() => this.showCheckbox(), ...(ngDevMode ? [{ debugName: \"showCheckboxes\" }] : []));\n // Selection model\n this.selectionModel = model(...(ngDevMode ? [undefined, { debugName: \"selectionModel\" }] : []));\n // Track by function for virtual scrolling\n this.trackByFn = (index, item) => {\n if (!item) {\n return `loading-${index}`;\n }\n return this.getItemKey(item);\n };\n // Effect to sync selection model with internal state\n effect(() => {\n const selection = this.selectionModel();\n if (selection) {\n if (Array.isArray(selection)) {\n this.selectedKeys.set(selection);\n }\n else {\n this.selectedKeys.set([selection]);\n }\n this.updateSelectedItems();\n }\n });\n // Effect to emit selection changes\n effect(() => {\n const selectedItems = this.selectedItems();\n const selectedKeys = this.selectedKeys();\n const isMultiple = this.isMultipleSelection();\n if (selectedItems.length > 0 || selectedKeys.length > 0) {\n this.selectionChange.emit({\n selectedItems,\n selectedKeys,\n isMultiple,\n });\n }\n });\n // Effect to watch for dataSource changes and create listDataSource\n effect(() => {\n const dataSource = this.dataSource();\n if (dataSource) {\n this.listDataSource = new AXListDataSource({\n source: dataSource,\n debounceTime: 100, // Add debounce to prevent too many page requests\n });\n // Set up subscriptions\n this.setupDataSourceSubscription();\n }\n });\n }\n ngOnInit() {\n super.ngOnInit();\n // Data loading is now handled by the effect watching dataSource changes\n }\n setupDataSourceSubscription() {\n if (!this.dataSource() || !this.listDataSource)\n return;\n // Subscribe to data source changes\n this.dataSource().onChanged.subscribe((data) => {\n if (data && data.cachedItems) {\n this.totalItems.set(data.totalCount || data.cachedItems.length);\n }\n });\n this.dataSource().onLoadingChanged.subscribe((loading) => {\n this.loading.set(loading);\n });\n // Load initial data - just trigger the first page load\n // The AXListDataSource will handle subsequent pages automatically\n this.dataSource().setPage(0);\n }\n // Selection management\n selectItem(item, event) {\n if (event && typeof event.stopPropagation === 'function') {\n event.stopPropagation();\n }\n if (this.isItemDisabled(item))\n return;\n if (this.isMultipleSelection()) {\n this.toggleMultipleSelection(item);\n }\n else {\n this.setSingleSelection(item);\n }\n }\n toggleMultipleSelection(item) {\n const currentKeys = this.selectedKeys();\n const itemKey = this.getItemKey(item);\n if (currentKeys.includes(itemKey)) {\n this.selectedKeys.set(currentKeys.filter((key) => key !== itemKey));\n }\n else {\n this.selectedKeys.set([...currentKeys, itemKey]);\n }\n this.updateSelectedItems();\n }\n setSingleSelection(item) {\n const itemKey = this.getItemKey(item);\n this.selectedKeys.set([itemKey]);\n this.updateSelectedItems();\n }\n deselectItem(item) {\n const currentKeys = this.selectedKeys();\n const itemKey = this.getItemKey(item);\n const newKeys = currentKeys.filter((key) => key !== itemKey);\n this.selectedKeys.set(newKeys);\n this.updateSelectedItems();\n }\n updateSelectedItems() {\n const keys = this.selectedKeys();\n const dataSource = this.listDataSource?.source;\n if (!dataSource)\n return;\n const selected = dataSource.cachedItems.filter((item) => keys.includes(this.getItemKey(item)));\n this.selectedItems.set(selected);\n // Update selection model\n if (this.isMultipleSelection()) {\n this.selectionModel.set(keys);\n }\n else {\n this.selectionModel.set(keys[0] || '');\n }\n }\n isItemSelected(item) {\n return this.selectedKeys().includes(this.getItemKey(item));\n }\n isItemDisabled(item) {\n const disabledField = this.disabledField();\n if (!disabledField)\n return false;\n const disabled = item[disabledField];\n return Boolean(disabled);\n }\n getItemKey(item) {\n if (item.id !== undefined && item.id !== null) {\n return String(item.id);\n }\n // Fallback to other potential key fields\n if (item['key'] !== undefined && item['key'] !== null) {\n return String(item['key']);\n }\n if (item['value'] !== undefined && item['value'] !== null) {\n return String(item['value']);\n }\n // Last resort: use the item itself as a string\n return String(item);\n }\n // Tree grouping\n toggleExpanded(item, event) {\n if (event && typeof event.stopPropagation === 'function') {\n event.stopPropagation();\n }\n if (!this.hasChildren(item))\n return;\n const currentExpanded = this.expandedItems();\n const itemKey = this.getItemKey(item);\n if (currentExpanded.has(itemKey)) {\n currentExpanded.delete(itemKey);\n }\n else {\n currentExpanded.add(itemKey);\n }\n this.expandedItems.set(new Set(currentExpanded));\n this.expandChange.emit({ item, expanded: currentExpanded.has(itemKey) });\n }\n hasChildren(item) {\n const childrenField = this.childrenField();\n if (!childrenField)\n return false;\n const children = item[childrenField];\n return Array.isArray(children) && children.length > 0;\n }\n isExpanded(item) {\n const expandedField = this.expandedField();\n if (expandedField) {\n const expanded = item[expandedField];\n if (expanded !== undefined && expanded !== null) {\n return Boolean(expanded);\n }\n }\n return this.expandedItems().has(this.getItemKey(item));\n }\n getItemLevel(item) {\n const levelField = this.levelField();\n if (!levelField)\n return 0;\n const level = item[levelField];\n return level !== undefined && level !== null ? Number(level) : 0;\n }\n // Keyboard navigation\n onKeyDown(event, item, index) {\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n this.focusNextItem(index);\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.focusPreviousItem(index);\n break;\n case 'Enter':\n case ' ':\n event.preventDefault();\n this.selectItem(item);\n break;\n case 'Escape':\n this.focusedIndex.set(-1);\n break;\n }\n }\n focusNextItem(currentIndex) {\n const dataSource = this.listDataSource?.source;\n if (!dataSource || dataSource.cachedItems.length === 0)\n return;\n const nextIndex = Math.min(currentIndex + 1, dataSource.cachedItems.length - 1);\n this.focusedIndex.set(nextIndex);\n this.scrollToIndex(nextIndex);\n }\n focusPreviousItem(currentIndex) {\n const dataSource = this.listDataSource?.source;\n if (!dataSource || dataSource.cachedItems.length === 0)\n return;\n const prevIndex = Math.max(currentIndex - 1, 0);\n this.focusedIndex.set(prevIndex);\n this.scrollToIndex(prevIndex);\n }\n scrollToIndex(index) {\n if (this.viewport && typeof index === 'number' && index >= 0) {\n this.viewport.scrollToIndex(index);\n }\n }\n // Item interaction\n onItemClick(item, event) {\n if (this.isItemDisabled(item))\n return;\n this.itemClick.emit(item);\n this.selectItem(item, event);\n }\n onCheckboxChange(item, checked) {\n if (this.isItemDisabled(item))\n return;\n if (checked) {\n this.selectItem(item);\n }\n else {\n this.deselectItem(item);\n }\n }\n onCheckboxClick(event) {\n if (typeof event.stopPropagation === 'function') {\n event.stopPropagation();\n }\n }\n onItemDoubleClick(item) {\n if (this.isItemDisabled(item))\n return;\n this.itemDoubleClick.emit(item);\n }\n // Utility methods\n getItemText(item) {\n const textField = this.textField();\n if (textField) {\n const text = item[textField];\n if (text !== undefined && text !== null) {\n return String(text);\n }\n }\n return item.text || '';\n }\n getItemDescription(item) {\n const descriptionField = this.descriptionField();\n if (descriptionField) {\n const description = item[descriptionField];\n if (description !== undefined && description !== null) {\n return String(description);\n }\n }\n return item.description || '';\n }\n getItemTooltip(item) {\n const tooltipField = this.tooltipField();\n if (tooltipField) {\n const tooltip = item[tooltipField];\n if (tooltip !== undefined && tooltip !== null) {\n return String(tooltip);\n }\n }\n return item.tooltip || '';\n }\n shouldShowTooltip(item) {\n return this.showItemTooltip() && !!this.getItemTooltip(item);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXDataListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.3\", type: AXDataListComponent, isStandalone: true, selector: \"ax-data-list\", inputs: { dataSource: { classPropertyName: \"dataSource\", publicName: \"dataSource\", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: \"config\", publicName: \"config\", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: \"multiple\", publicName: \"multiple\", isSignal: true, isRequired: false, transformFunction: null }, showCheckbox: { classPropertyName: \"showCheckbox\", publicName: \"showCheckbox\", isSignal: true, isRequired: false, transformFunction: null }, itemHeight: { classPropertyName: \"itemHeight\", publicName: \"itemHeight\", isSignal: true, 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 }, disabledField: { classPropertyName: \"disabledField\", publicName: \"disabledField\", isSignal: true, isRequired: false, transformFunction: null }, tooltipField: { classPropertyName: \"tooltipField\", publicName: \"tooltipField\", isSignal: true, isRequired: false, transformFunction: null }, textField: { classPropertyName: \"textField\", publicName: \"textField\", isSignal: true, isRequired: false, transformFunction: null }, descriptionField: { classPropertyName: \"descriptionField\", publicName: \"descriptionField\", isSignal: true, isRequired: false, transformFunction: null }, levelField: { classPropertyName: \"levelField\", publicName: \"levelField\", isSignal: true, isRequired: false, transformFunction: null }, childrenField: { classPropertyName: \"childrenField\", publicName: \"childrenField\", isSignal: true, isRequired: false, transformFunction: null }, expandedField: { classPropertyName: \"expandedField\", publicName: \"expandedField\", isSignal: true, isRequired: false, transformFunction: null }, itemTemplate: { classPropertyName: \"itemTemplate\", publicName: \"itemTemplate\", isSignal: true, isRequired: false, transformFunction: null }, emptyTemplate: { classPropertyName: \"emptyTemplate\", publicName: \"emptyTemplate\", isSignal: true, isRequired: false, transformFunction: null }, loadingTemplate: { classPropertyName: \"loadingTemplate\", publicName: \"loadingTemplate\", isSignal: true, isRequired: false, transformFunction: null }, selectionModel: { classPropertyName: \"selectionModel\", publicName: \"selectionModel\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectionChange: \"selectionChange\", itemClick: \"itemClick\", itemDoubleClick: \"itemDoubleClick\", expandChange: \"expandChange\", selectionModel: \"selectionModelChange\" }, viewQueries: [{ propertyName: \"viewport\", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], usesInheritance: true, ngImport: i0, template: \"<div class=\\\"ax-data-list\\\" [class.ax-data-list--loading]=\\\"loading()\\\">\\n <!-- Loading State -->\\n @if (loading()) {\\n <div class=\\\"ax-data-list__loading\\\">\\n <ng-container *ngTemplateOutlet=\\\"loadingTemplate() || defaultLoadingTemplate\\\"></ng-container>\\n </div>\\n }\\n\\n <!-- Empty State -->\\n @if (isEmpty()) {\\n <div class=\\\"ax-data-list__empty\\\">\\n <ng-container *ngTemplateOutlet=\\\"emptyTemplate() || defaultEmptyTemplate\\\"></ng-container>\\n </div>\\n }\\n\\n <!-- List Content -->\\n @if (hasItems() && listDataSource !== null) {\\n <div class=\\\"ax-data-list__content\\\">\\n <cdk-virtual-scroll-viewport\\n [itemSize]=\\\"itemHeight()\\\"\\n class=\\\"ax-data-list__viewport\\\"\\n [class.ax-data-list__viewport--truncated]=\\\"isItemTruncated()\\\"\\n >\\n <ng-container *cdkVirtualFor=\\\"let item of listDataSource; let i = index; trackBy: trackByFn\\\">\\n @if (item) {\\n <div\\n class=\\\"ax-data-list__item\\\"\\n [class.ax-data-list__item--selected]=\\\"isItemSelected(item)\\\"\\n [class.ax-data-list__item--disabled]=\\\"isItemDisabled(item)\\\"\\n [class.ax-data-list__item--focused]=\\\"focusedIndex() === i\\\"\\n [class]=\\\"'ax-data-list__item--level-' + getItemLevel(item)\\\"\\n [style.height.px]=\\\"itemHeight()\\\"\\n (click)=\\\"onItemClick(item, $event)\\\"\\n (dblclick)=\\\"onItemDoubleClick(item)\\\"\\n (keydown)=\\\"onKeyDown($event, item, i)\\\"\\n tabindex=\\\"0\\\"\\n role=\\\"listitem\\\"\\n [attr.aria-selected]=\\\"isItemSelected(item)\\\"\\n [attr.aria-disabled]=\\\"isItemDisabled(item)\\\"\\n [attr.aria-level]=\\\"getItemLevel(item) + 1\\\"\\n >\\n <!-- Checkbox -->\\n @if (showCheckboxes()) {\\n <div class=\\\"ax-data-list__checkbox\\\" (click)=\\\"onCheckboxClick($event)\\\">\\n <ax-check-box\\n [value]=\\\"isItemSelected(item)\\\"\\n [disabled]=\\\"isItemDisabled(item)\\\"\\n (valueChange)=\\\"onCheckboxChange(item, $event)\\\"\\n >\\n </ax-check-box>\\n </div>\\n }\\n\\n <!-- Expand/Collapse Button for Tree Items -->\\n @if (hasChildren(item)) {\\n <div\\n class=\\\"ax-data-list__expand-button\\\"\\n [class.ax-data-list__expand-button--expanded]=\\\"isExpanded(item)\\\"\\n (click)=\\\"toggleExpanded(item, $event)\\\"\\n role=\\\"button\\\"\\n tabindex=\\\"0\\\"\\n [attr.aria-expanded]=\\\"isExpanded(item)\\\"\\n >\\n <svg class=\\\"ax-data-list__expand-icon\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"currentColor\\\">\\n <path d=\\\"M7 10l5 5 5-5z\\\" />\\n </svg>\\n </div>\\n }\\n\\n <!-- Item Content -->\\n <div class=\\\"ax-data-list__content-wrapper\\\">\\n <!-- Custom Item Template -->\\n @if (itemTemplate()) {\\n <ng-container\\n *ngTemplateOutlet=\\\"\\n itemTemplate();\\n context: {\\n $implicit: item,\\n index: i,\\n selected: isItemSelected(item),\\n disabled: isItemDisabled(item),\\n }\\n \\\"\\n ></ng-container>\\n } @else {\\n <ng-container *ngTemplateOutlet=\\\"defaultItemTemplate\\\"></ng-container>\\n }\\n\\n <!-- Default Item Template -->\\n <ng-template #defaultItemTemplate>\\n <div\\n class=\\\"ax-data-list__text\\\"\\n [class.ax-data-list__text--truncated]=\\\"isItemTruncated()\\\"\\n [axTooltip]=\\\"shouldShowTooltip(item) ? getItemTooltip(item) : null\\\"\\n [axTooltipDisabled]=\\\"!shouldShowTooltip(item)\\\"\\n >\\n {{ getItemText(item) }}\\n </div>\\n\\n @if (getItemDescription(item)) {\\n <div\\n class=\\\"ax-data-list__description\\\"\\n [class.ax-data-list__description--truncated]=\\\"isItemTruncated()\\\"\\n >\\n {{ getItemDescription(item) }}\\n </div>\\n }\\n </ng-template>\\n </div>\\n </div>\\n } @else {\\n <!-- Loading skeleton for null items -->\\n <div class=\\\"ax-data-list__item ax-data-list__item--loading\\\" [style.height.px]=\\\"itemHeight()\\\">\\n <div class=\\\"ax-data-list__loading-skeleton\\\">\\n <div class=\\\"ax-data-list__skeleton-checkbox\\\"></div>\\n <div class=\\\"ax-data-list__skeleton-content\\\">\\n <div class=\\\"ax-data-list__skeleton-text\\\"></div>\\n <div class=\\\"ax-data-list__skeleton-description\\\"></div>\\n </div>\\n </div>\\n </div>\\n }\\n </ng-container>\\n </cdk-virtual-scroll-viewport>\\n </div>\\n }\\n</div>\\n\\n<!-- Default Loading Template -->\\n<ng-template #defaultLoadingTemplate>\\n <div class=\\\"ax-data-list__loading-default\\\">\\n <div class=\\\"ax-data-list__loading-spinner\\\"></div>\\n <span>Loading...</span>\\n </div>\\n</ng-template>\\n\\n<!-- Default Empty Template -->\\n<ng-template #defaultEmptyTemplate>\\n <div class=\\\"ax-data-list__empty-default\\\">\\n <svg class=\\\"ax-data-list__empty-icon\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"currentColor\\\">\\n <path\\n d=\\\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z\\\"\\n />\\n </svg>\\n <span>No items to display</span>\\n </div>\\n</ng-template>\\n\", styles: [\".ax-data-list{display:flex;flex-direction:column;width:100%;height:100%;background:var(--ax-color-background, #ffffff);border:1px solid var(--ax-color-border, #e5e7eb);border-radius:var(--ax-border-radius, .375rem);overflow:hidden}.ax-data-list--loading .ax-data-list__content{opacity:.6;pointer-events:none}.ax-data-list__loading{display:flex;align-items:center;justify-content:center;padding:2rem;min-height:200px}.ax-data-list__loading-default{display:flex;flex-direction:column;align-items:center;gap:1rem;color:var(--ax-color-text-secondary, #6b7280)}.ax-data-list__loading-spinner{width:2rem;height:2rem;border:2px solid var(--ax-color-border, #e5e7eb);border-top:2px solid var(--ax-color-primary, #3b82f6);border-radius:50%;animation:spin 1s linear infinite}.ax-data-list__empty{display:flex;align-items:center;justify-content:center;padding:2rem;min-height:200px}.ax-data-list__empty-default{display:flex;flex-direction:column;align-items:center;gap:1rem;color:var(--ax-color-text-secondary, #6b7280);text-align:center}.ax-data-list__empty-icon{width:3rem;height:3rem;opacity:.5}.ax-data-list__content{flex:1;overflow:hidden}.ax-data-list__viewport{height:100%;width:100%}.ax-data-list__viewport--truncated .ax-data-list__text,.ax-data-list__viewport--truncated .ax-data-list__description{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ax-data-list__item{display:flex;align-items:center;padding:.5rem 1rem;cursor:pointer;transition:all .15s ease-in-out;border-bottom:1px solid var(--ax-color-border-light, #f3f4f6);position:relative}.ax-data-list__item:hover:not(.ax-data-list__item--disabled){background-color:var(--ax-color-hover, #f9fafb)}.ax-data-list__item:focus{outline:2px solid var(--ax-color-primary, #3b82f6);outline-offset:-2px}.ax-data-list__item--selected{background-color:var(--ax-color-primary-light, #dbeafe);color:var(--ax-color-primary, #3b82f6);border-color:var(--ax-color-primary, #3b82f6)}.ax-data-list__item--selected:hover{background-color:var(--ax-color-primary-light-hover, #bfdbfe)}.ax-data-list__item--disabled{cursor:not-allowed;opacity:.6;background-color:var(--ax-color-disabled, #f9fafb);color:var(--ax-color-text-disabled, #9ca3af)}.ax-data-list__item--disabled:hover{background-color:var(--ax-color-disabled, #f9fafb)}.ax-data-list__item--focused{background-color:var(--ax-color-focus, #eff6ff);outline:2px solid var(--ax-color-primary, #3b82f6);outline-offset:-2px}.ax-data-list__item--loading{cursor:default;pointer-events:none;background-color:var(--ax-color-background, #ffffff)}.ax-data-list__item--loading:hover{background-color:var(--ax-color-background, #ffffff)}.ax-data-list__item--level-0{padding-left:1rem}.ax-data-list__item--level-1{padding-left:2.5rem}.ax-data-list__item--level-2{padding-left:4rem}.ax-data-list__item--level-3{padding-left:5.5rem}.ax-data-list__item--level-4{padding-left:7rem}.ax-data-list__item--level-5{padding-left:8.5rem}.ax-data-list__checkbox{margin-right:.75rem;flex-shrink:0}.ax-data-list__expand-button{display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;margin-right:.5rem;cursor:pointer;border-radius:.25rem;transition:all .15s ease-in-out;flex-shrink:0}.ax-data-list__expand-button:hover{background-color:var(--ax-color-hover, #f3f4f6)}.ax-data-list__expand-button:focus{outline:2px solid var(--ax-color-primary, #3b82f6);outline-offset:2px}.ax-data-list__expand-button--expanded .ax-data-list__expand-icon{transform:rotate(90deg)}.ax-data-list__expand-icon{width:1rem;height:1rem;transition:transform .15s ease-in-out;color:var(--ax-color-text-secondary, #6b7280)}.ax-data-list__content-wrapper{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25rem}.ax-data-list__text{font-weight:500;color:var(--ax-color-text, #111827);line-height:1.25}.ax-data-list__text--truncated{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ax-data-list__description{font-size:.875rem;color:var(--ax-color-text-secondary, #6b7280);line-height:1.25}.ax-data-list__description--truncated{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 768px){.ax-data-list__item{padding:.75rem 1rem}.ax-data-list__item--level-1{padding-left:2rem}.ax-data-list__item--level-2{padding-left:3rem}.ax-data-list__item--level-3{padding-left:4rem}.ax-data-list__item--level-4{padding-left:5rem}.ax-data-list__item--level-5{padding-left:6rem}.ax-data-list__checkbox{margin-right:.5rem}.ax-data-list__expand-button{margin-right:.25rem}}@media (prefers-contrast: high){.ax-data-list{border-width:2px}.ax-data-list__item{border-bottom-width:2px}.ax-data-list__item:focus{outline-width:3px}.ax-data-list__item--selected{border-width:2px}.ax-data-list__expand-button:focus{outline-width:3px}}@media (prefers-reduced-motion: reduce){.ax-data-list__item,.ax-data-list__expand-icon{transition:none}.ax-data-list__loading-spinner{animation:none}}.ax-data-list__loading-skeleton{display:flex;align-items:center;width:100%;gap:.75rem}.ax-data-list__skeleton-checkbox{width:1rem;height:1rem;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;border-radius:.25rem;animation:shimmer 1.5s infinite;flex-shrink:0}.ax-data-list__skeleton-content{flex:1;display:flex;flex-direction:column;gap:.5rem}.ax-data-list__skeleton-text{height:1rem;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;border-radius:.25rem;animation:shimmer 1.5s infinite;width:80%}.ax-data-list__skeleton-description{height:.75rem;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;border-radius:.25rem;animation:shimmer 1.5s infinite;width:60%}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"ngmodule\", type: ScrollingModule }, { kind: \"directive\", type: i2.CdkFixedSizeVirtualScroll, selector: \"cdk-virtual-scroll-viewport[itemSize]\", inputs: [\"itemSize\", \"minBufferPx\", \"maxBufferPx\"] }, { kind: \"directive\", type: i2.CdkVirtualForOf, selector: \"[cdkVirtualFor][cdkVirtualForOf]\", inputs: [\"cdkVirtualForOf\", \"cdkVirtualForTrackBy\", \"cdkVirtualForTemplate\", \"cdkVirtualForTemplateCacheSize\"] }, { kind: \"component\", type: i2.CdkVirtualScrollViewport, selector: \"cdk-virtual-scroll-viewport\", inputs: [\"orientation\", \"appendOnly\"], outputs: [\"scrolledIndexChange\"] }, { kind: \"directive\", type: AXTooltipDirective, selector: \"[axTooltip]\", inputs: [\"axTooltipDisabled\", \"axTooltip\", \"axTooltipContext\", \"axTooltipPlacement\", \"axTooltipOffsetX\", \"axTooltipOffsetY\", \"axTooltipOpenAfter\", \"axTooltipCloseAfter\"] }, { kind: \"component\", type: AXCheckBoxComponent, selector: \"ax-check-box\", inputs: [\"disabled\", \"tabIndex\", \"readonly\", \"color\", \"value\", \"name\", \"id\", \"isLoading\", \"indeterminate\"], outputs: [\"onBlur\", \"onFocus\", \"valueChange\", \"onValueChanged\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXDataListComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-data-list', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [CommonModule, FormsModule, ScrollingModule, AXTooltipDirective, AXCheckBoxComponent], template: \"<div class=\\\"ax-data-list\\\" [class.ax-data-list--loading]=\\\"loading()\\\">\\n <!-- Loading State -->\\n @if (loading()) {\\n <div class=\\\"ax-data-list__loading\\\">\\n <ng-container *ngTemplateOutlet=\\\"loadingTemplate() || defaultLoadingTemplate\\\"></ng-container>\\n </div>\\n }\\n\\n <!-- Empty State -->\\n @if (isEmpty()) {\\n <div class=\\\"ax-data-list__empty\\\">\\n <ng-container *ngTemplateOutlet=\\\"emptyTemplate() || defaultEmptyTemplate\\\"></ng-container>\\n </div>\\n }\\n\\n <!-- List Content -->\\n @if (hasItems() && listDataSource !== null) {\\n <div class=\\\"ax-data-list__content\\\">\\n <cdk-virtual-scroll-viewport\\n [itemSize]=\\\"itemHeight()\\\"\\n class=\\\"ax-data-list__viewport\\\"\\n [class.ax-data-list__viewport--truncated]=\\\"isItemTruncated()\\\"\\n >\\n <ng-container *cdkVirtualFor=\\\"let item of listDataSource; let i = index; trackBy: trackByFn\\\">\\n @if (item) {\\n <div\\n class=\\\"ax-data-list__item\\\"\\n [class.ax-data-list__item--selected]=\\\"isItemSelected(item)\\\"\\n [class.ax-data-list__item--disabled]=\\\"isItemDisabled(item)\\\"\\n [class.ax-data-list__item--focused]=\\\"focusedIndex() === i\\\"\\n [class]=\\\"'ax-data-list__item--level-' + getItemLevel(item)\\\"\\n [style.height.px]=\\\"itemHeight()\\\"\\n (click)=\\\"onItemClick(item, $event)\\\"\\n (dblclick)=\\\"onItemDoubleClick(item)\\\"\\n (keydown)=\\\"onKeyDown($event, item, i)\\\"\\n tabindex=\\\"0\\\"\\n role=\\\"listitem\\\"\\n [attr.aria-selected]=\\\"isItemSelected(item)\\\"\\n [attr.aria-disabled]=\\\"isItemDisabled(item)\\\"\\n [attr.aria-level]=\\\"getItemLevel(item) + 1\\\"\\n >\\n <!-- Checkbox -->\\n @if (showCheckboxes()) {\\n <div class=\\\"ax-data-list__checkbox\\\" (click)=\\\"onCheckboxClick($event)\\\">\\n <ax-check-box\\n [value]=\\\"isItemSelected(item)\\\"\\n [disabled]=\\\"isItemDisabled(item)\\\"\\n (valueChange)=\\\"onCheckboxChange(item, $event)\\\"\\n >\\n </ax-check-box>\\n </div>\\n }\\n\\n <!-- Expand/Collapse Button for Tree Items -->\\n @if (hasChildren(item)) {\\n <div\\n class=\\\"ax-data-list__expand-button\\\"\\n [class.ax-data-list__expand-button--expanded]=\\\"isExpanded(item)\\\"\\n (click)=\\\"toggleExpanded(item, $event)\\\"\\n role=\\\"button\\\"\\n tabindex=\\\"0\\\"\\n [attr.aria-expanded]=\\\"isExpanded(item)\\\"\\n >\\n <svg class=\\\"ax-data-list__expand-icon\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"currentColor\\\">\\n <path d=\\\"M7 10l5 5 5-5z\\\" />\\n </svg>\\n </div>\\n }\\n\\n <!-- Item Content -->\\n <div class=\\\"ax-data-list__content-wrapper\\\">\\n <!-- Custom Item Template -->\\n @if (itemTemplate()) {\\n <ng-container\\n *ngTemplateOutlet=\\\"\\n itemTemplate();\\n context: {\\n $implicit: item,\\n index: i,\\n selected: isItemSelected(item),\\n disabled: isItemDisabled(item),\\n }\\n \\\"\\n ></ng-container>\\n } @else {\\n <ng-container *ngTemplateOutlet=\\\"defaultItemTemplate\\\"></ng-container>\\n }\\n\\n <!-- Default Item Template -->\\n <ng-template #defaultItemTemplate>\\n <div\\n class=\\\"ax-data-list__text\\\"\\n [class.ax-data-list__text--truncated]=\\\"isItemTruncated()\\\"\\n [axTooltip]=\\\"shouldShowTooltip(item) ? getItemTooltip(item) : null\\\"\\n [axTooltipDisabled]=\\\"!shouldShowTooltip(item)\\\"\\n >\\n {{ getItemText(item) }}\\n </div>\\n\\n @if (getItemDescription(item)) {\\n <div\\n class=\\\"ax-data-list__description\\\"\\n [class.ax-data-list__description--truncated]=\\\"isItemTruncated()\\\"\\n >\\n {{ getItemDescription(item) }}\\n </div>\\n }\\n </ng-template>\\n </div>\\n </div>\\n } @else {\\n <!-- Loading skeleton for null items -->\\n <div class=\\\"ax-data-list__item ax-data-list__item--loading\\\" [style.height.px]=\\\"itemHeight()\\\">\\n <div class=\\\"ax-data-list__loading-skeleton\\\">\\n <div class=\\\"ax-data-list__skeleton-checkbox\\\"></div>\\n <div class=\\\"ax-data-list__skeleton-content\\\">\\n <div class=\\\"ax-data-list__skeleton-text\\\"></div>\\n <div class=\\\"ax-data-list__skeleton-description\\\"></div>\\n </div>\\n </div>\\n </div>\\n }\\n </ng-container>\\n </cdk-virtual-scroll-viewport>\\n </div>\\n }\\n</div>\\n\\n<!-- Default Loading Template -->\\n<ng-template #defaultLoadingTemplate>\\n <div class=\\\"ax-data-list__loading-default\\\">\\n <div class=\\\"ax-data-list__loading-spinner\\\"></div>\\n <span>Loading...</span>\\n </div>\\n</ng-template>\\n\\n<!-- Default Empty Template -->\\n<ng-template #defaultEmptyTemplate>\\n <div class=\\\"ax-data-list__empty-default\\\">\\n <svg class=\\\"ax-data-list__empty-icon\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"currentColor\\\">\\n <path\\n d=\\\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z\\\"\\n />\\n </svg>\\n <span>No items to display</span>\\n </div>\\n</ng-template>\\n\", styles: [\".ax-data-list{display:flex;flex-direction:column;width:100%;height:100%;background:var(--ax-color-background, #ffffff);border:1px solid var(--ax-color-border, #e5e7eb);border-radius:var(--ax-border-radius, .375rem);overflow:hidden}.ax-data-list--loading .ax-data-list__content{opacity:.6;pointer-events:none}.ax-data-list__loading{display:flex;align-items:center;justify-content:center;padding:2rem;min-height:200px}.ax-data-list__loading-default{display:flex;flex-direction:column;align-items:center;gap:1rem;color:var(--ax-color-text-secondary, #6b7280)}.ax-data-list__loading-spinner{width:2rem;height:2rem;border:2px solid var(--ax-color-border, #e5e7eb);border-top:2px solid var(--ax-color-primary, #3b82f6);border-radius:50%;animation:spin 1s linear infinite}.ax-data-list__empty{display:flex;align-items:center;justify-content:center;padding:2rem;min-height:200px}.ax-data-list__empty-default{display:flex;flex-direction:column;align-items:center;gap:1rem;color:var(--ax-color-text-secondary, #6b7280);text-align:center}.ax-data-list__empty-icon{width:3rem;height:3rem;opacity:.5}.ax-data-list__content{flex:1;overflow:hidden}.ax-data-list__viewport{height:100%;width:100%}.ax-data-list__viewport--truncated .ax-data-list__text,.ax-data-list__viewport--truncated .ax-data-list__description{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ax-data-list__item{display:flex;align-items:center;padding:.5rem 1rem;cursor:pointer;transition:all .15s ease-in-out;border-bottom:1px solid var(--ax-color-border-light, #f3f4f6);position:relative}.ax-data-list__item:hover:not(.ax-data-list__item--disabled){background-color:var(--ax-color-hover, #f9fafb)}.ax-data-list__item:focus{outline:2px solid var(--ax-color-primary, #3b82f6);outline-offset:-2px}.ax-data-list__item--selected{background-color:var(--ax-color-primary-light, #dbeafe);color:var(--ax-color-primary, #3b82f6);border-color:var(--ax-color-primary, #3b82f6)}.ax-data-list__item--selected:hover{background-color:var(--ax-color-primary-light-hover, #bfdbfe)}.ax-data-list__item--disabled{cursor:not-allowed;opacity:.6;background-color:var(--ax-color-disabled, #f9fafb);color:var(--ax-color-text-disabled, #9ca3af)}.ax-data-list__item--disabled:hover{background-color:var(--ax-color-disabled, #f9fafb)}.ax-data-list__item--focused{background-color:var(--ax-color-focus, #eff6ff);outline:2px solid var(--ax-color-primary, #3b82f6);outline-offset:-2px}.ax-data-list__item--loading{cursor:default;pointer-events:none;background-color:var(--ax-color-background, #ffffff)}.ax-data-list__item--loading:hover{background-color:var(--ax-color-background, #ffffff)}.ax-data-list__item--level-0{padding-left:1rem}.ax-data-list__item--level-1{padding-left:2.5rem}.ax-data-list__item--level-2{padding-left:4rem}.ax-data-list__item--level-3{padding-left:5.5rem}.ax-data-list__item--level-4{padding-left:7rem}.ax-data-list__item--level-5{padding-left:8.5rem}.ax-data-list__checkbox{margin-right:.75rem;flex-shrink:0}.ax-data-list__expand-button{display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;margin-right:.5rem;cursor:pointer;border-radius:.25rem;transition:all .15s ease-in-out;flex-shrink:0}.ax-data-list__expand-button:hover{background-color:var(--ax-color-hover, #f3f4f6)}.ax-data-list__expand-button:focus{outline:2px solid var(--ax-color-primary, #3b82f6);outline-offset:2px}.ax-data-list__expand-button--expanded .ax-data-list__expand-icon{transform:rotate(90deg)}.ax-data-list__expand-icon{width:1rem;height:1rem;transition:transform .15s ease-in-out;color:var(--ax-color-text-secondary, #6b7280)}.ax-data-list__content-wrapper{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25rem}.ax-data-list__text{font-weight:500;color:var(--ax-color-text, #111827);line-height:1.25}.ax-data-list__text--truncated{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ax-data-list__description{font-size:.875rem;color:var(--ax-color-text-secondary, #6b7280);line-height:1.25}.ax-data-list__description--truncated{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 768px){.ax-data-list__item{padding:.75rem 1rem}.ax-data-list__item--level-1{padding-left:2rem}.ax-data-list__item--level-2{padding-left:3rem}.ax-data-list__item--level-3{padding-left:4rem}.ax-data-list__item--level-4{padding-left:5rem}.ax-data-list__item--level-5{padding-left:6rem}.ax-data-list__checkbox{margin-right:.5rem}.ax-data-list__expand-button{margin-right:.25rem}}@media (prefers-contrast: high){.ax-data-list{border-width:2px}.ax-data-list__item{border-bottom-width:2px}.ax-data-list__item:focus{outline-width:3px}.ax-data-list__item--selected{border-width:2px}.ax-data-list__expand-button:focus{outline-width:3px}}@media (prefers-reduced-motion: reduce){.ax-data-list__item,.ax-data-list__expand-icon{transition:none}.ax-data-list__loading-spinner{animation:none}}.ax-data-list__loading-skeleton{display:flex;align-items:center;width:100%;gap:.75rem}.ax-data-list__skeleton-checkbox{width:1rem;height:1rem;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;border-radius:.25rem;animation:shimmer 1.5s infinite;flex-shrink:0}.ax-data-list__skeleton-content{flex:1;display:flex;flex-direction:column;gap:.5rem}.ax-data-list__skeleton-text{height:1rem;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;border-radius:.25rem;animation:shimmer 1.5s infinite;width:80%}.ax-data-list__skeleton-description{height:.75rem;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;border-radius:.25rem;animation:shimmer 1.5s infinite;width:60%}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}\\n\"] }]\n }], ctorParameters: () => [], propDecorators: { selectionChange: [{\n type: Output\n }], itemClick: [{\n type: Output\n }], itemDoubleClick: [{\n type: Output\n }], expandChange: [{\n type: Output\n }], viewport: [{\n type: ViewChild,\n args: [CdkVirtualScrollViewport]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZGF0YS1saXN0L3NyYy9saWIvZGF0YS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZGF0YS1saXN0L3NyYy9saWIvZGF0YS1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEVBQ04sWUFBWSxFQUNaLEtBQUssRUFDTCxLQUFLLEVBRUwsTUFBTSxFQUNOLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQXdDN0MsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGdCQUFnQjtJQTBEdkQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQTFEVixTQUFTO1FBQ1QsZUFBVSxHQUFHLEtBQUssQ0FBQyxRQUFRLHFEQUFnQyxDQUFDO1FBQzVELFdBQU0sR0FBRyxLQUFLLENBQW1CLEVBQUUsa0RBQUMsQ0FBQztRQUNyQyxhQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssb0RBQUMsQ0FBQztR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LENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9ELENBQUM7OEdBNVhVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDB4RkE2Qm5CLHdCQUF3Qix1RUN6RnJDLG00TEFtSkEsc3VMRHpGWSxZQUFZLHFNQUFFLFdBQVcsOEJBQUUsZUFBZSw0akJBQUUsa0JBQWtCLG1PQUFFLG1CQUFtQjs7MkZBRWxGLG1CQUFtQjtrQkFUL0IsU0FBUzsrQkFDRSxjQUFjLG1CQUdQLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksY0FDekIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLENBQUM7d0RBeUJwRixlQUFlO3NCQUF4QixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUc4QixRQUFRO3NCQUE1QyxTQUFTO3VCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRGF0YVNvdXJjZSwgQVhMaXN0RGF0YVNvdXJjZSwgTVhWYWx1ZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWENoZWNrQm94Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NoZWNrLWJveCc7XG5pbXBvcnQgeyBBWFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdG9vbHRpcCc7XG5pbXBvcnQgeyBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQsIFNjcm9sbGluZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIEV2ZW50RW1pdHRlcixcbiAgaW5wdXQsXG4gIG1vZGVsLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgc2lnbmFsLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuLy8gVHlwZXMgZm9yIHRoZSBjb21wb25lbnRcbmV4cG9ydCBpbnRlcmZhY2UgQVhEYXRhTGlzdEl0ZW0ge1xuICBpZDogc3RyaW5nO1xuICB0ZXh0OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIHRvb2x0aXA/OiBzdHJpbmc7XG4gIGxldmVsPzogbnVtYmVyO1xuICBjaGlsZHJlbj86IEFYRGF0YUxpc3RJdGVtW107XG4gIGV4cGFuZGVkPzogYm9vbGVhbjtcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYRGF0YUxpc3RDb25maWcge1xuICBkaXNhYmxlZEZpZWxkPzogc3RyaW5nO1xuICB0b29sdGlwRmllbGQ/OiBzdHJpbmc7XG4gIHRleHRGaWVsZD86IHN0cmluZztcbiAgZGVzY3JpcHRpb25GaWVsZD86IHN0cmluZztcbiAgbGV2ZWxGaWVsZD86IHN0cmluZztcbiAgY2hpbGRyZW5GaWVsZD86IHN0cmluZztcbiAgZXhwYW5kZWRGaWVsZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWERhdGFMaXN0U2VsZWN0aW9uQ2hhbmdlIHtcbiAgc2VsZWN0ZWRJdGVtczogQVhEYXRhTGlzdEl0ZW1bXTtcbiAgc2VsZWN0ZWRLZXlzOiBzdHJpbmdbXTtcbiAgaXNNdWx0aXBsZTogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtZGF0YS1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGEtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGEtbGlzdC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIFNjcm9sbGluZ01vZHVsZSwgQVhUb29sdGlwRGlyZWN0aXZlLCBBWENoZWNrQm94Q29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgQVhEYXRhTGlzdENvbXBvbmVudCBleHRlbmRzIE1YVmFsdWVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvLyBJbnB1dHNcbiAgZGF0YVNvdXJjZSA9IGlucHV0LnJlcXVpcmVkPEFYRGF0YVNvdXJjZTxBWERhdGFMaXN0SXRlbT4+KCk7XG4gIGNvbmZpZyA9IGlucHV0PEFYRGF0YUxpc3RDb25maWc+KHt9KTtcbiAgbXVsdGlwbGUgPSBpbnB1dChmYWxzZSk7XG4gIHNob3dDaGVja2JveCA9IGlucHV0KHRydWUpO1xuICBpdGVtSGVpZ2h0ID0gaW5wdXQoNDApO1xuICBpc0l0ZW1UcnVuY2F0ZWQgPSBpbnB1dCh0cnVlKTtcbiAgc2hvd0l0ZW1Ub29sdGlwID0gaW5wdXQodHJ1ZSk7XG4gIGRpc2FibGVkRmllbGQgPSBpbnB1dDxzdHJpbmc+KCdkaXNhYmxlZCcpO1xuICB0b29sdGlwRmllbGQgPSBpbnB1dDxzdHJpbmc+KCd0b29sdGlwJyk7XG4gIHRleHRGaWVsZCA9IGlucHV0PHN0cmluZz4oJ3RleHQnKTtcbiAgZGVzY3JpcHRpb25GaWVsZCA9IGlucHV0PHN0cmluZz4oJ2Rlc2NyaXB0aW9uJyk7XG4gIGxldmVsRmllbGQgPSBpbnB1dDxzdHJpbmc+KCdsZXZlbCcpO1xuICBjaGlsZHJlbkZpZWxkID0gaW5wdXQ8c3RyaW5nPignY2hpbGRyZW4nKTtcbiAgZXhwYW5kZWRGaWVsZCA9IGlucHV0PHN0cmluZz4oJ2V4cGFuZGVkJyk7XG5cbiAgLy8gVGVtcGxhdGVzXG4gIGl0ZW1UZW1wbGF0ZSA9IGlucHV0PFRlbXBsYXRlUmVmPGFueT4+KCk7XG4gIGVtcHR5VGVtcGxhdGUgPSBpbnB1dDxUZW1wbGF0ZVJlZjxhbnk+PigpO1xuICBsb2FkaW5nVGVtcGxhdGUgPSBpbnB1dDxUZW1wbGF0ZVJlZjxhbnk+PigpO1xuXG4gIC8vIE91dHB1dHNcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8QVhEYXRhTGlzdFNlbGVjdGlvbkNoYW5nZT4oKTtcbiAgQE91dHB1dCgpIGl0ZW1DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8QVhEYXRhTGlzdEl0ZW0+KCk7XG4gIEBPdXRwdXQoKSBpdGVtRG91YmxlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEFYRGF0YUxpc3RJdGVtPigpO1xuICBAT3V0cHV0KCkgZXhwYW5kQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx7IGl0ZW06IEFYRGF0YUxpc3RJdGVtOyBleHBhbmRlZDogYm9vbGVhbiB9PigpO1xuXG4gIC8vIFZpZXdDaGlsZFxuICBAVmlld0NoaWxkKENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCkgdmlld3BvcnQhOiBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQ7XG5cbiAgLy8gSW50ZXJuYWwgc2lnbmFsc1xuICBwcm90ZWN0ZWQgbG9hZGluZyA9IHNpZ25hbChmYWxzZSk7XG4gIHByb3RlY3RlZCB0b3RhbEl0ZW1zID0gc2lnbmFsKDApO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRJdGVtcyA9IHNpZ25hbDxBWERhdGFMaXN0SXRlbVtdPihbXSk7XG4gIHByb3RlY3RlZCBzZWxlY3RlZEtleXMgPSBzaWduYWw8c3RyaW5nW10+KFtdKTtcbiAgcHJvdGVjdGVkIGZvY3VzZWRJbmRleCA9IHNpZ25hbCgtMSk7XG4gIHByb3RlY3RlZCBleHBhbmRlZEl0ZW1zID0gc2lnbmFsPFNldDxzdHJpbmc+PihuZXcgU2V0KCkpO1xuXG4gIC8vIExpc3QgZGF0YSBzb3VyY2UgZm9yIHZpcnR1YWwgc2Nyb2xsaW5nXG4gIHByb3RlY3RlZCBsaXN0RGF0YVNvdXJjZTogQVhMaXN0RGF0YVNvdXJjZTxBWERhdGFMaXN0SXRlbT4gfCBudWxsID0gbnVsbDtcblxuICAvLyBDb21wdXRlZCB2YWx1ZXNcbiAgcHJvdGVjdGVkIGhhc0l0ZW1zID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGRhdGFTb3VyY2VJdGVtcyA9IHRoaXMubGlzdERhdGFTb3VyY2U/LnNvdXJjZT8uY2FjaGVkSXRlbXM/Lmxlbmd0aCA+IDA7XG4gICAgcmV0dXJuIGRhdGFTb3VyY2VJdGVtcztcbiAgfSk7XG4gIHByb3RlY3RlZCBpc0VtcHR5ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IG5vdExvYWRpbmcgPSAhdGhpcy5sb2FkaW5nKCk7XG4gICAgY29uc3Qgbm9EYXRhU291cmNlSXRlbXMgPSAhdGhpcy5saXN0RGF0YVNvdXJjZT8uc291cmNlPy5jYWNoZWRJdGVtcz8ubGVuZ3RoO1xuICAgIHJldHVybiBub3RMb2FkaW5nICYmIG5vRGF0YVNvdXJjZUl0ZW1zO1xuICB9KTtcbiAgcHJvdGVjdGVkIGlzTXVsdGlwbGVTZWxlY3Rpb24gPSBjb21wdXRlZCgoKSA9PiB0aGlzLm11bHRpcGxlKCkpO1xuICBwcm90ZWN0ZWQgc2hvd0NoZWNrYm94ZXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNob3dDaGVja2JveCgpKTtcblxuICAvLyBTZWxlY3Rpb24gbW9kZWxcbiAgcHVibGljIHNlbGVjdGlvbk1vZGVsID0gbW9kZWw8c3RyaW5nIHwgc3RyaW5nW10+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIC8vIEVmZmVjdCB0byBzeW5jIHNlbGVjdGlvbiBtb2RlbCB3aXRoIGludGVybmFsIHN0YXRlXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHRoaXMuc2VsZWN0aW9uTW9kZWwoKTtcbiAgICAgIGlmIChzZWxlY3Rpb24pIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2VsZWN0aW9uKSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRLZXlzLnNldChzZWxlY3Rpb24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRLZXlzLnNldChbc2VsZWN0aW9uXSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZEl0ZW1zKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBFZmZlY3QgdG8gZW1pdCBzZWxlY3Rpb24gY2hhbmdlc1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBzZWxlY3RlZEl0ZW1zID0gdGhpcy5zZWxlY3RlZEl0ZW1zKCk7XG4gICAgICBjb25zdCBzZWxlY3RlZEtleXMgPSB0aGlzLnNlbGVjdGVkS2V5cygpO1xuICAgICAgY29uc3QgaXNNdWx0aXBsZSA9IHRoaXMuaXNNdWx0aXBsZVNlbGVjdGlvbigpO1xuXG4gICAgICBpZiAoc2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAwIHx8IHNlbGVjdGVkS2V5cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQoe1xuICAgICAgICAgIHNlbGVjdGVkSXRlbXMsXG4gICAgICAgICAgc2VsZWN0ZWRLZXlzLFxuICAgICAgICAgIGlzTXVsdGlwbGUsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gRWZmZWN0IHRvIHdhdGNoIGZvciBkYXRhU291cmNlIGNoYW5nZXMgYW5kIGNyZWF0ZSBsaXN0RGF0YVNvdXJjZVxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBkYXRhU291cmNlID0gdGhpcy5kYXRhU291cmNlKCk7XG4gICAgICBpZiAoZGF0YVNvdXJjZSkge1xuICAgICAgICB0aGlzLmxpc3REYXRhU291cmNlID0gbmV3IEFYTGlzdERhdGFTb3VyY2U8QVhEYXRhTGlzdEl0ZW0+KHtcbiAgICAgICAgICBzb3VyY2U6IGRhdGFTb3VyY2UsXG4gICAgICAgICAgZGVib3VuY2VUaW1lOiAxMDAsIC8vIEFkZCBkZWJvdW5jZSB0byBwcmV2ZW50IHRvbyBtYW55IHBhZ2UgcmVxdWVzdHNcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gU2V0IHVwIHN1YnNjcmlwdGlvbnNcbiAgICAgICAgdGhpcy5zZXR1cERhdGFTb3VyY2VTdWJzY3JpcHRpb24oKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCkge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgLy8gRGF0YSBsb2FkaW5nIGlzIG5vdyBoYW5kbGVkIGJ5IHRoZSBlZmZlY3Qgd2F0Y2hpbmcgZGF0YVNvdXJjZSBjaGFuZ2VzXG4gIH1cblxuICBwcml2YXRlIHNldHVwRGF0YVNvdXJjZVN1YnNjcmlwdGlvbigpIHtcbiAgICBpZiAoIXRoaXMuZGF0YVNvdXJjZSgpIHx8ICF0aGlzLmxpc3REYXRhU291cmNlKSByZXR1cm47XG5cbiAgICAvLyBTdWJzY3JpYmUgdG8gZGF0YSBzb3VyY2UgY2hhbmdlc1xuICAgIHRoaXMuZGF0YVNvdXJjZSgpLm9uQ2hhbmdlZC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgIGlmIChkYXRhICYmIGRhdGEuY2FjaGVkSXRlbXMpIHtcbiAgICAgICAgdGhpcy50b3RhbEl0ZW1zLnNldChkYXRhLnRvdGFsQ291bnQgfHwgZGF0YS5jYWNoZWRJdGVtcy5sZW5ndGgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5kYXRhU291cmNlKCkub25Mb2FkaW5nQ2hhbmdlZC5zdWJzY3JpYmUoKGxvYWRpbmcpID0+IHtcbiAgICAgIHRoaXMubG9hZGluZy5zZXQobG9hZGluZyk7XG4gICAgfSk7XG5cbiAgICAvLyBMb2FkIGluaXRpYWwgZGF0YSAtIGp1c3QgdHJpZ2dlciB0aGUgZmlyc3QgcGFnZSBsb2FkXG4gICAgLy8gVGhlIEFYTGlzdERhdGFTb3VyY2Ugd2lsbCBoYW5kbGUgc3Vic2VxdWVudCBwYWdlcyBhdXRvbWF0aWNhbGx5XG4gICAgdGhpcy5kYXRhU291cmNlKCkuc2V0UGFnZSgwKTtcbiAgfVxuXG4gIC8vIFNlbGVjdGlvbiBtYW5hZ2VtZW50XG4gIHByb3RlY3RlZCBzZWxlY3RJdGVtKGl0ZW06IEFYRGF0YUxpc3RJdGVtLCBldmVudD86IEV2ZW50KSB7XG4gICAgaWYgKGV2ZW50ICYmIHR5cGVvZiBldmVudC5zdG9wUHJvcGFnYXRpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzSXRlbURpc2FibGVkKGl0ZW0pKSByZXR1cm47XG5cbiAgICBpZiAodGhpcy5pc011bHRpcGxlU2VsZWN0aW9uKCkpIHtcbiAgICAgIHRoaXMudG9nZ2xlTXVsdGlwbGVTZWxlY3Rpb24oaXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0U2luZ2xlU2VsZWN0aW9uKGl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCB0b2dnbGVNdWx0aXBsZVNlbGVjdGlvbihpdGVtOiBBWERhdGFMaXN0SXRlbSkge1xuICAgIGNvbnN0IGN1cnJlbnRLZXlzID0gdGhpcy5zZWxlY3RlZEtleXMoKTtcbiAgICBjb25zdCBpdGVtS2V5ID0gdGhpcy5nZXRJdGVtS2V5KGl0ZW0pO1xuXG4gICAgaWYgKGN1cnJlbnRLZXlzLmluY2x1ZGVzKGl0ZW1LZXkpKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkS2V5cy5zZXQoY3VycmVudEtleXMuZmlsdGVyKChrZXkpID0+IGtleSAhPT0gaXRlbUtleSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkS2V5cy5zZXQoWy4uLmN1cnJlbnRLZXlzLCBpdGVtS2V5XSk7XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVTZWxlY3RlZEl0ZW1zKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0U2luZ2xlU2VsZWN0aW9uKGl0ZW06IEFYRGF0YUxpc3RJdGVtKSB7XG4gICAgY29uc3QgaXRlbUtleSA9IHRoaXMuZ2V0SXRlbUtleShpdGVtKTtcbiAgICB0aGlzLnNlbGVjdGVkS2V5cy5zZXQoW2l0ZW1LZXldKTtcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkSXRlbXMoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkZXNlbGVjdEl0ZW0oaXRlbTogQVhEYXRhTGlzdEl0ZW0pIHtcbiAgICBjb25zdCBjdXJyZW50S2V5cyA9IHRoaXMuc2VsZWN0ZWRLZXlzKCk7XG4gICAgY29uc3QgaXRlbUtleSA9IHRoaXMuZ2V0SXRlbUtleShpdGVtKTtcbiAgICBjb25zdCBuZXdLZXlzID0gY3VycmVudEtleXMuZmlsdGVyKChrZXkpID0+IGtleSAhPT0gaXRlbUtleSk7XG4gICAgdGhpcy5zZWxlY3RlZEtleXMuc2V0KG5ld0tleXMpO1xuICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRJdGVtcygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZVNlbGVjdGVkSXRlbXMoKSB7XG4gICAgY29uc3Qga2V5cyA9IHRoaXMuc2VsZWN0ZWRLZXlzKCk7XG4gICAgY29uc3QgZGF0YVNvdXJjZSA9IHRoaXMubGlzdERhdGFTb3VyY2U/LnNvdXJjZTtcbiAgICBpZiAoIWRhdGFTb3VyY2UpIHJldHVybjtcblxuICAgIGNvbnN0IHNlbGVjdGVkID0gZGF0YVNvdXJjZS5jYWNoZWRJdGVtcy5maWx0ZXIoKGl0ZW0pID0+IGtleXMuaW5jbHVkZXModGhpcy5nZXRJdGVtS2V5KGl0ZW0pKSk7XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnNldChzZWxlY3RlZCk7XG5cbiAgICAvLyBVcGRhdGUgc2VsZWN0aW9uIG1vZGVsXG4gICAgaWYgKHRoaXMuaXNNdWx0aXBsZVNlbGVjdGlvbigpKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvbk1vZGVsLnNldChrZXlzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3Rpb25Nb2RlbC5zZXQoa2V5c1swXSB8fCAnJyk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGlzSXRlbVNlbGVjdGVkKGl0ZW06IEFYRGF0YUxpc3RJdGVtKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRLZXlzKCkuaW5jbHVkZXModGhpcy5nZXRJdGVtS2V5KGl0ZW0pKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc0l0ZW1EaXNhYmxlZChpdGVtOiBBWERhdGFMaXN0SXRlbSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGRpc2FibGVkRmllbGQgPSB0aGlzLmRpc2FibGVkRmllbGQoKTtcbiAgICBpZiAoIWRpc2FibGVkRmllbGQpIHJldHVybiBmYWxzZTtcblxuICAgIGNvbnN0IGRpc2FibGVkID0gaXRlbVtkaXNhYmxlZEZpZWxkXTtcbiAgICByZXR1cm4gQm9vbGVhbihkaXNhYmxlZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0SXRlbUtleShpdGVtOiBBWERhdGFMaXN0SXRlbSk6IHN0cmluZyB7XG4gICAgaWYgKGl0ZW0uaWQgIT09IHVuZGVmaW5lZCAmJiBpdGVtLmlkICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gU3RyaW5nKGl0ZW0uaWQpO1xuICAgIH1cblxuICAgIC8vIEZhbGxiYWNrIHRvIG90aGVyIHBvdGVudGlhbCBrZXkgZmllbGRzXG4gICAgaWYgKGl0ZW1bJ2tleSddICE9PSB1bmRlZmluZWQgJiYgaXRlbVsna2V5J10gIT09IG51bGwpIHtcbiAgICAgIHJldHVybiBTdHJpbmcoaXRlbVsna2V5J10pO1xuICAgIH1cblxuICAgIGlmIChpdGVtWyd2YWx1ZSddICE9PSB1bmRlZmluZWQgJiYgaXRlbVsndmFsdWUnXSAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIFN0cmluZyhpdGVtWyd2YWx1ZSddKTtcbiAgICB9XG5cbiAgICAvLyBMYXN0IHJlc29ydDogdXNlIHRoZSBpdGVtIGl0c2VsZiBhcyBhIHN0cmluZ1xuICAgIHJldHVybiBTdHJpbmcoaXRlbSk7XG4gIH1cblxuICAvLyBUcmVlIGdyb3VwaW5nXG4gIHByb3RlY3RlZCB0b2dnbGVFeHBhbmRlZChpdGVtOiBBWERhdGFMaXN0SXRlbSwgZXZlbnQ6IEV2ZW50KSB7XG4gICAgaWYgKGV2ZW50ICYmIHR5cGVvZiBldmVudC5zdG9wUHJvcGFnYXRpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5oYXNDaGlsZHJlbihpdGVtKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgY3VycmVudEV4cGFuZGVkID0gdGhpcy5leHBhbmRlZEl0ZW1zKCk7XG4gICAgY29uc3QgaXRlbUtleSA9IHRoaXMuZ2V0SXRlbUtleShpdGVtKTtcblxuICAgIGlmIChjdXJyZW50RXhwYW5kZWQuaGFzKGl0ZW1LZXkpKSB7XG4gICAgICBjdXJyZW50RXhwYW5kZWQuZGVsZXRlKGl0ZW1LZXkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjdXJyZW50RXhwYW5kZWQuYWRkKGl0ZW1LZXkpO1xuICAgIH1cblxuICAgIHRoaXMuZXhwYW5kZWRJdGVtcy5zZXQobmV3IFNldChjdXJyZW50RXhwYW5kZWQpKTtcbiAgICB0aGlzLmV4cGFuZENoYW5nZS5lbWl0KHsgaXRlbSwgZXhwYW5kZWQ6IGN1cnJlbnRFeHBhbmRlZC5oYXMoaXRlbUtleSkgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFzQ2hpbGRyZW4oaXRlbTogQVhEYXRhTGlzdEl0ZW0pOiBib29sZWFuIHtcbiAgICBjb25zdCBjaGlsZHJlbkZpZWxkID0gdGhpcy5jaGlsZHJlbkZpZWxkKCk7XG4gICAgaWYgKCFjaGlsZHJlbkZpZWxkKSByZXR1cm4gZmFsc2U7XG5cbiAgICBjb25zdCBjaGlsZHJlbiA9IGl0ZW1bY2hpbGRyZW5GaWVsZF07XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pICYmIGNoaWxkcmVuLmxlbmd0aCA+IDA7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNFeHBhbmRlZChpdGVtOiBBWERhdGFMaXN0SXRlbSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGV4cGFuZGVkRmllbGQgPSB0aGlzLmV4cGFuZGVkRmllbGQoKTtcbiAgICBpZiAoZXhwYW5kZWRGaWVsZCkge1xuICAgICAgY29uc3QgZXhwYW5kZWQgPSBpdGVtW2V4cGFuZGVkRmllbGRdO1xuICAgICAgaWYgKGV4cGFuZGVkICE9PSB1bmRlZmluZWQgJiYgZXhwYW5kZWQgIT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4oZXhwYW5kZWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmV4cGFuZGVkSXRlbXMoKS5oYXModGhpcy5nZXRJdGVtS2V5KGl0ZW0pKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRJdGVtTGV2ZWwoaXRlbTogQVhEYXRhTGlzdEl0ZW0pOiBudW1iZXIge1xuICAgIGNvbnN0IGxldmVsRmllbGQgPSB0aGlzLmxldmVsRmllbGQoKTtcbiAgICBpZiAoIWxldmVsRmllbGQpIHJldHVybiAwO1xuXG4gICAgY29uc3QgbGV2ZWwgPSBpdGVtW2xldmVsRmllbGRdO1xuICAgIHJldHVybiBsZXZlbCAhPT0gdW5kZWZpbmVkICYmIGxldmVsICE9PSBudWxsID8gTnVtYmVyKGxldmVsKSA6IDA7XG4gIH1cblxuICAvLyBLZXlib2FyZCBuYXZpZ2F0aW9uXG4gIHByb3RlY3RlZCBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGl0ZW06IEFYRGF0YUxpc3RJdGVtLCBpbmRleDogbnVtYmVyKSB7XG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuZm9jdXNOZXh0SXRlbShpbmRleCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuZm9jdXNQcmV2aW91c0l0ZW0oaW5kZXgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgIGNhc2UgJyAnOlxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLnNlbGVjdEl0ZW0oaXRlbSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnRXNjYXBlJzpcbiAgICAgICAgdGhpcy5mb2N1c2VkSW5kZXguc2V0KC0xKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGZvY3VzTmV4dEl0ZW0oY3VycmVudEluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBkYXRhU291cmNlID0gdGhpcy5saXN0RGF0YVNvdXJjZT8uc291cmNlO1xuICAgIGlmICghZGF0YVNvdXJjZSB8fCBkYXRhU291cmNlLmNhY2hlZEl0ZW1zLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG4gICAgY29uc3QgbmV4dEluZGV4ID0gTWF0aC5taW4oY3VycmVudEluZGV4ICsgMSwgZGF0YVNvdXJjZS5jYWNoZWRJdGVtcy5sZW5ndGggLSAxKTtcbiAgICB0aGlzLmZvY3VzZWRJbmRleC5zZXQobmV4dEluZGV4KTtcbiAgICB0aGlzLnNjcm9sbFRvSW5kZXgobmV4dEluZGV4KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBmb2N1c1ByZXZpb3VzSXRlbShjdXJyZW50SW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IGRhdGFTb3VyY2UgPSB0aGlzLmxpc3REYXRhU291cmNlPy5zb3VyY2U7XG4gICAgaWYgKCFkYXRhU291cmNlIHx8IGRhdGFTb3VyY2UuY2FjaGVkSXRlbXMubGVuZ3RoID09PSAwKSByZXR1cm47XG5cbiAgICBjb25zdCBwcmV2SW5kZXggPSBNYXRoLm1heChjdXJyZW50SW5kZXggLSAxLCAwKTtcbiAgICB0aGlzLmZvY3VzZWRJbmRleC5zZXQocHJldkluZGV4KTtcbiAgICB0aGlzLnNjcm9sbFRvSW5kZXgocHJldkluZGV4KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzY3JvbGxUb0luZGV4KGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy52aWV3cG9ydCAmJiB0eXBlb2YgaW5kZXggPT09ICdudW1iZXInICYmIGluZGV4ID49IDApIHtcbiAgICAgIHRoaXMudmlld3BvcnQuc2Nyb2xsVG9JbmRleChpbmRleCk7XG4gICAgfVxuICB9XG5cbiAgLy8gSXRlbSBpbnRlcmFjdGlvblxuICBwcm90ZWN0ZWQgb25JdGVtQ2xpY2soaXRlbTogQVhEYXRhTGlzdEl0ZW0sIGV2ZW50OiBFdmVudCkge1xuICAgIGlmICh0aGlzLmlzSXRlbURpc2FibGVkKGl0ZW0pKSByZXR1cm47XG5cbiAgICB0aGlzLml0ZW1DbGljay5lbWl0KGl0ZW0pO1xuICAgIHRoaXMuc2VsZWN0SXRlbShpdGVtLCBldmVudCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25DaGVja2JveENoYW5nZShpdGVtOiBBWERhdGFMaXN0SXRlbSwgY2hlY2tlZDogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLmlzSXRlbURpc2FibGVkKGl0ZW0pKSByZXR1cm47XG5cbiAgICBpZiAoY2hlY2tlZCkge1xuICAgICAgdGhpcy5zZWxlY3RJdGVtKGl0ZW0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRlc2VsZWN0SXRlbShpdGVtKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb25DaGVja2JveENsaWNrKGV2ZW50OiBFdmVudCkge1xuICAgIGlmICh0eXBlb2YgZXZlbnQuc3RvcFByb3BhZ2F0aW9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb25JdGVtRG91YmxlQ2xpY2soaXRlbTogQVhEYXRhTGlzdEl0ZW0pIHtcbiAgICBpZiAodGhpcy5pc0l0ZW1EaXNhYmxlZChpdGVtKSkgcmV0dXJuO1xuXG4gICAgdGhpcy5pdGVtRG91YmxlQ2xpY2suZW1pdChpdGVtKTtcbiAgfVxuXG4gIC8vIFV0aWxpdHkgbWV0aG9kc1xuICBwcm90ZWN0ZWQgZ2V0SXRlbVRleHQoaXRlbTogQVhEYXRhTGlzdEl0ZW0pOiBzdHJpbmcge1xuICAgIGNvbnN0IHRleHRGaWVsZCA9IHRoaXMudGV4dEZpZWxkKCk7XG4gICAgaWYgKHRleHRGaWVsZCkge1xuICAgICAgY29uc3QgdGV4dCA9IGl0ZW1bdGV4dEZpZWxkXTtcbiAgICAgIGlmICh0ZXh0ICE9PSB1bmRlZmluZWQgJiYgdGV4dCAhPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gU3RyaW5nKHRleHQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBpdGVtLnRleHQgfHwgJyc7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0SXRlbURlc2NyaXB0aW9uKGl0ZW06IEFYRGF0YUxpc3RJdGVtKTogc3RyaW5nIHtcbiAgICBjb25zdCBkZXNjcmlwdGlvbkZpZWxkID0gdGhpcy5kZXNjcmlwdGlvbkZpZWxkKCk7XG4gICAgaWYgKGRlc2NyaXB0aW9uRmllbGQpIHtcbiAgICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gaXRlbVtkZXNjcmlwdGlvbkZpZWxkXTtcbiAgICAgIGlmIChkZXNjcmlwdGlvbiAhPT0gdW5kZWZpbmVkICYmIGRlc2NyaXB0aW9uICE9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBTdHJpbmcoZGVzY3JpcHRpb24pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBpdGVtLmRlc2NyaXB0aW9uIHx8ICcnO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldEl0ZW1Ub29sdGlwKGl0ZW06IEFYRGF0YUxpc3RJdGVtKTogc3RyaW5nIHtcbiAgICBjb25zdCB0b29sdGlwRmllbGQgPSB0aGlzLnRvb2x0aXBGaWVsZCgpO1xuICAgIGlmICh0b29sdGlwRmllbGQpIHtcbiAgICAgIGNvbnN0IHRvb2x0aXAgPSBpdGVtW3Rvb2x0aXBGaWVsZF07XG4gICAgICBpZiAodG9vbHRpcCAhPT0gdW5kZWZpbmVkICYmIHRvb2x0aXAgIT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIFN0cmluZyh0b29sdGlwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gaXRlbS50b29sdGlwIHx8ICcnO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNob3VsZFNob3dUb29sdGlwKGl0ZW06IEFYRGF0YUxpc3RJdGVtKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd0l0ZW1Ub29sdGlwKCkgJiYgISF0aGlzLmdldEl0ZW1Ub29sdGlwKGl0ZW0pO1xuICB9XG5cbiAgLy8gVHJhY2sgYnkgZnVuY3Rpb24gZm9yIHZpcnR1YWwgc2Nyb2xsaW5nXG4gIHByb3RlY3RlZCB0cmFja0J5Rm4gPSAoaW5kZXg6IG51bWJlciwgaXRlbTogQVhEYXRhTGlzdEl0ZW0pOiBzdHJpbmcgPT4ge1xuICAgIGlmICghaXRlbSkge1xuICAgICAgcmV0dXJuIGBsb2FkaW5nLSR7aW5kZXh9YDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ2V0SXRlbUtleShpdGVtKTtcbiAgfTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJheC1kYXRhLWxpc3RcIiBbY2xhc3MuYXgtZGF0YS1saXN0LS1sb2FkaW5nXT1cImxvYWRpbmcoKVwiPlxuICA8IS0tIExvYWRpbmcgU3RhdGUgLS0+XG4gIEBpZiAobG9hZGluZygpKSB7XG4gICAgPGRpdiBjbGFzcz1cImF4LWRhdGEtbGlzdF9fbG9hZGluZ1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvYWRpbmdUZW1wbGF0ZSgpIHx8IGRlZmF1bHRMb2FkaW5nVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIDwhLS0gRW1wdHkgU3RhdGUgLS0+XG4gIEBpZiAoaXNFbXB0eSgpKSB7XG4gICAgPGRpdiBjbGFzcz1cImF4LWRhdGEtbGlzdF9fZW1wdHlcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlbXB0eVRlbXBsYXRlKCkgfHwgZGVmYXVsdEVtcHR5VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIDwhLS0gTGlzdCBDb250ZW50IC0tPlxuICBAaWYgKGhhc0l0ZW1zKCkgJiYgbGlzdERhdGFTb3VyY2UgIT09IG51bGwpIHtcbiAgICA8ZGl2IGNsYXNzPVwiYXgtZGF0YS1saXN0X19jb250ZW50XCI+XG4gICAgICA8Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0XG4gICAgICAgIFtpdGVtU2l6ZV09XCJpdGVtSGVpZ2h0KClcIlxuICAgICAgICBjbGFzcz1cImF4LWRhdGEtbGlzdF9fdmlld3BvcnRcIlxuICAgICAgICBbY2xhc3MuYXgtZGF0YS1saXN0X192aWV3cG9ydC0tdHJ1bmNhdGVkXT1cImlzSXRlbVRydW5jYXRlZCgpXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqY2RrVmlydHVhbEZvcj1cImxldCBpdGVtIG9mIGxpc3REYXRhU291cmNlOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgICAgICBAaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJheC1kYXRhLWxpc3RfX2l0ZW1cIlxuICAgICAgICAgICAgICBbY2xhc3MuYXgtZGF0YS1saXN0X19pdGVtLS1zZWxlY3RlZF09XCJpc0l0ZW1TZWxlY3RlZChpdGVtKVwiXG4gICAgICAgICAgICAgIFtjbGFzcy5heC1kYXRhLWxpc3RfX2l0ZW0tLWRpc2FibGVkXT1cImlzSXRlbURpc2FibGVkKGl0ZW0pXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmF4LWRhdGEtbGlzdF9faXRlbS0tZm9jdXNlZF09XCJmb2N1c2VkSW5kZXgoKSA9PT0gaVwiXG4gICAgICAgICAgICAgIFtjbGFzc109XCInYXgtZGF0YS1saXN0X19pdGVtLS1sZXZlbC0nICsgZ2V0SXRlbUxldmVsKGl0ZW0pXCJcbiAgICAgICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJpdGVtSGVpZ2h0KClcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25JdGVtQ2xpY2soaXRlbSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChkYmxjbGljayk9XCJvbkl0ZW1Eb3VibGVDbGljayhpdGVtKVwiXG4gICAgICAgICAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQsIGl0ZW0sIGkpXCJcbiAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgcm9sZT1cImxpc3RpdGVtXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJpc0l0ZW1TZWxlY3RlZChpdGVtKVwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiaXNJdGVtRGlzYWJsZWQoaXRlbSlcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxldmVsXT1cImdldEl0ZW1MZXZlbChpdGVtKSArIDFcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8IS0tIENoZWNrYm94IC0tPlxuICAgICAgICAgICAgICBAaWYgKHNob3dDaGVja2JveGVzKCkpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZGF0YS1saXN0X19jaGVja2JveFwiIChjbGljayk9XCJvbkNoZWNrYm94Q2xpY2soJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgPGF4LWNoZWNrLWJveFxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaXNJdGVtU2VsZWN0ZWQoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNJdGVtRGlzYWJsZWQoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25DaGVja2JveENoYW5nZShpdGVtLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDwvYXgtY2hlY2stYm94PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgPCEtLSBFeHBhbmQvQ29sbGFwc2UgQnV0dG9uIGZvciBUcmVlIEl0ZW1zIC0tPlxuICAgICAgICAgICAgICBAaWYgKGhhc0NoaWxkcmVuKGl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJheC1kYXRhLWxpc3RfX2V4cGFuZC1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgW2NsYXNzLmF4LWRhdGEtbGlzdF9fZXhwYW5kLWJ1dHRvbi0tZXhwYW5kZWRdPVwiaXNFeHBhbmRlZChpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRXhwYW5kZWQoaXRlbSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzRXhwYW5kZWQoaXRlbSlcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJheC1kYXRhLWxpc3RfX2V4cGFuZC1pY29uXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk03IDEwbDUgNSA1LTV6XCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgPCEtLSBJdGVtIENvbnRlbnQgLS0+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1kYXRhLWxpc3RfX2NvbnRlbnQtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgIDwhLS0gQ3VzdG9tIEl0ZW0gVGVtcGxhdGUgLS0+XG4gICAgICAgICAgICAgICAgQGlmIChpdGVtVGVtcGxhdGUoKSkge1xuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgIGl0ZW1UZW1wbGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IGlzSXRlbVNlbGVjdGVkKGl0ZW0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IGlzSXRlbURpc2FibGVkKGl0ZW0pLFxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkZWZhdWx0SXRlbVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPCEtLSBEZWZhdWx0IEl0ZW0gVGVtcGxhdGUgLS0+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0SXRlbVRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImF4LWRhdGEtbGlzdF9fdGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5heC1kYXRhLWxpc3RfX3RleHQtLXRydW5jYXRlZF09XCJpc0l0ZW1UcnVuY2F0ZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtheFRvb2x0aXBdPVwic2hvdWxkU2hvd1Rvb2x0aXAoaXRlbSkgPyBnZXRJdGVtVG9vbHRpcChpdGVtKSA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbYXhUb29sdGlwRGlzYWJsZWRdPVwiIXNob3VsZFNob3dUb29sdGlwKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgZ2V0SXRlbVRleHQoaXRlbSkgfX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICBAaWYgKGdldEl0ZW1EZXNjcmlwdGlvbihpdGVtKSkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJheC1kYXRhLWxpc3RfX2Rlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYXgtZGF0YS1saXN0X19kZXNjcmlwdGlvbi0tdHJ1bmNhdGVkXT1cImlzSXRlbVRydW5jYXRlZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IGdldEl0ZW1EZXNjcmlwdGlvbihpdGVtKSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPCEtLSBMb2FkaW5nIHNrZWxldG9uIGZvciBudWxsIGl0ZW1zIC0tPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWRhdGEtbGlzdF9faXRlbSBheC1kYXRhLWxpc3RfX2l0ZW0tLWxvYWRpbmdcIiBbc3R5bGUuaGVpZ2h0LnB4XT1cIml0ZW1IZWlnaHQoKVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZGF0YS1saXN0X19sb2FkaW5nLXNrZWxldG9uXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWRhdGEtbGlzdF9fc2tlbGV0b24tY2hlY2tib3hcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZGF0YS1saXN0X19za2VsZXRvbi1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZGF0YS1saXN0X19za2VsZXRvbi10ZXh0XCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZGF0YS1saXN0X19za2VsZXRvbi1kZXNjcmlwdGlvblwiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cbiAgICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG5cbjwhLS0gRGVmYXVsdCBMb2FkaW5nIFRlbXBsYXRlIC0tPlxuPG5nLXRlbXBsYXRlICNkZWZhdWx0TG9hZGluZ1RlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiYXgtZGF0YS1saXN0X19sb2FkaW5nLWRlZmF1bHRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtZGF0YS1saXN0X19sb2FkaW5nLXNwaW5uZXJcIj48L2Rpdj5cbiAgICA8c3Bhbj5Mb2FkaW5nLi4uPC9zcGFuPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS0gRGVmYXVsdCBFbXB0eSBUZW1wbGF0ZSAtLT5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdEVtcHR5VGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJheC1kYXRhLWxpc3RfX2VtcHR5LWRlZmF1bHRcIj5cbiAgICA8c3ZnIGNsYXNzPVwiYXgtZGF0YS1saXN0X19lbXB0eS1pY29uXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS01IDE0SDd2LTJoN3Yyem0zLTRIN3YtMmgxMHYyem0wLTRIN1Y3aDEwdjJ6XCJcbiAgICAgIC8+XG4gICAgPC9zdmc+XG4gICAgPHNwYW4+Tm8gaXRlbXMgdG8gZGlzcGxheTwvc3Bhbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19","// Secondary entry point for @acorex/components/data-list\nexport * from './lib/data-list.component';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2RhdGEtbGlzdC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseURBQXlEO0FBRXpELGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTZWNvbmRhcnkgZW50cnkgcG9pbnQgZm9yIEBhY29yZXgvY29tcG9uZW50cy9kYXRhLWxpc3RcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0YS1saXN0LmNvbXBvbmVudCc7XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtZGF0YS1saXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9kYXRhLWxpc3Qvc3JjL2Fjb3JleC1jb21wb25lbnRzLWRhdGEtbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-data-list.mjs","sources":["../../../../packages/components/data-list/src/lib/data-list.component.ts","../../../../packages/components/data-list/src/lib/data-list.component.html","../../../../packages/components/data-list/src/index.ts","../../../../packages/components/data-list/src/acorex-components-data-list.ts"],"sourcesContent":["import { AXDataSource, AXListDataSource, MXValueComponent } from '@acorex/cdk/common';\nimport { AXCheckBoxComponent } from '@acorex/components/check-box';\nimport { AXTooltipDirective } from '@acorex/components/tooltip';\nimport { CdkVirtualScrollViewport, ScrollingModule } from '@angular/cdk/scrolling';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n EventEmitter,\n input,\n model,\n OnInit,\n Output,\n signal,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n// Types for the component\nexport interface AXDataListItem {\n id: string;\n text: string;\n description?: string;\n disabled?: boolean;\n tooltip?: string;\n level?: number;\n children?: AXDataListItem[];\n expanded?: boolean;\n [key: string]: any;\n}\n\nexport interface AXDataListConfig {\n disabledField?: string;\n tooltipField?: string;\n textField?: string;\n descriptionField?: string;\n levelField?: string;\n childrenField?: string;\n expandedField?: string;\n}\n\nexport interface AXDataListSelectionChange {\n selectedItems: AXDataListItem[];\n selectedKeys: string[];\n isMultiple: boolean;\n}\n\n@Component({\n selector: 'ax-data-list',\n templateUrl: './data-list.component.html',\n styleUrls: ['./data-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [CommonModule, FormsModule, ScrollingModule, AXTooltipDirective, AXCheckBoxComponent],\n})\nexport class AXDataListComponent extends MXValueComponent implements OnInit {\n // Inputs\n dataSource = input.required<AXDataSource<AXDataListItem>>();\n config = input<AXDataListConfig>({});\n multiple = input(false);\n showCheckbox = input(true);\n itemHeight = input(40);\n isItemTruncated = input(true);\n showItemTooltip = input(true);\n disabledField = input<string>('disabled');\n tooltipField = input<string>('tooltip');\n textField = input<string>('text');\n descriptionField = input<string>('description');\n levelField = input<string>('level');\n childrenField = input<string>('children');\n expandedField = input<string>('expanded');\n\n // Templates\n itemTemplate = input<TemplateRef<any>>();\n emptyTemplate = input<TemplateRef<any>>();\n loadingTemplate = input<TemplateRef<any>>();\n\n // Outputs\n @Output() selectionChange = new EventEmitter<AXDataListSelectionChange>();\n @Output() itemClick = new EventEmitter<AXDataListItem>();\n @Output() itemDoubleClick = new EventEmitter<AXDataListItem>();\n @Output() expandChange = new EventEmitter<{ item: AXDataListItem; expanded: boolean }>();\n\n // ViewChild\n @ViewChild(CdkVirtualScrollViewport) viewport!: CdkVirtualScrollViewport;\n\n // Internal signals\n protected loading = signal(false);\n protected totalItems = signal(0);\n protected selectedItems = signal<AXDataListItem[]>([]);\n protected selectedKeys = signal<string[]>([]);\n protected focusedIndex = signal(-1);\n protected expandedItems = signal<Set<string>>(new Set());\n\n // List data source for virtual scrolling\n protected listDataSource: AXListDataSource<AXDataListItem> | null = null;\n\n // Computed values\n protected hasItems = computed(() => {\n const dataSourceItems = this.listDataSource?.source?.cachedItems?.length > 0;\n return dataSourceItems;\n });\n protected isEmpty = computed(() => {\n const notLoading = !this.loading();\n const noDataSourceItems = !this.listDataSource?.source?.cachedItems?.length;\n return notLoading && noDataSourceItems;\n });\n protected isMultipleSelection = computed(() => this.multiple());\n protected showCheckboxes = computed(() => this.showCheckbox());\n\n // Selection model\n public selectionModel = model<string | string[]>();\n\n constructor() {\n super();\n\n // Effect to sync selection model with internal state\n effect(() => {\n const selection = this.selectionModel();\n if (selection) {\n if (Array.isArray(selection)) {\n this.selectedKeys.set(selection);\n } else {\n this.selectedKeys.set([selection]);\n }\n this.updateSelectedItems();\n }\n });\n\n // Effect to emit selection changes\n effect(() => {\n const selectedItems = this.selectedItems();\n const selectedKeys = this.selectedKeys();\n const isMultiple = this.isMultipleSelection();\n\n if (selectedItems.length > 0 || selectedKeys.length > 0) {\n this.selectionChange.emit({\n selectedItems,\n selectedKeys,\n isMultiple,\n });\n }\n });\n\n // Effect to watch for dataSource changes and create listDataSource\n effect(() => {\n const dataSource = this.dataSource();\n if (dataSource) {\n this.listDataSource = new AXListDataSource<AXDataListItem>({\n source: dataSource,\n debounceTime: 100, // Add debounce to prevent too many page requests\n });\n\n // Set up subscriptions\n this.setupDataSourceSubscription();\n }\n });\n }\n\n override ngOnInit() {\n super.ngOnInit();\n // Data loading is now handled by the effect watching dataSource changes\n }\n\n private setupDataSourceSubscription() {\n if (!this.dataSource() || !this.listDataSource) return;\n\n // Subscribe to data source changes\n this.dataSource().onChanged.subscribe((data) => {\n if (data && data.cachedItems) {\n this.totalItems.set(data.totalCount || data.cachedItems.length);\n }\n });\n\n this.dataSource().onLoadingChanged.subscribe((loading) => {\n this.loading.set(loading);\n });\n\n // Load initial data - just trigger the first page load\n // The AXListDataSource will handle subsequent pages automatically\n this.dataSource().setPage(0);\n }\n\n // Selection management\n protected selectItem(item: AXDataListItem, event?: Event) {\n if (event && typeof event.stopPropagation === 'function') {\n event.stopPropagation();\n }\n\n if (this.isItemDisabled(item)) return;\n\n if (this.isMultipleSelection()) {\n this.toggleMultipleSelection(item);\n } else {\n this.setSingleSelection(item);\n }\n }\n\n protected toggleMultipleSelection(item: AXDataListItem) {\n const currentKeys = this.selectedKeys();\n const itemKey = this.getItemKey(item);\n\n if (currentKeys.includes(itemKey)) {\n this.selectedKeys.set(currentKeys.filter((key) => key !== itemKey));\n } else {\n this.selectedKeys.set([...currentKeys, itemKey]);\n }\n\n this.updateSelectedItems();\n }\n\n protected setSingleSelection(item: AXDataListItem) {\n const itemKey = this.getItemKey(item);\n this.selectedKeys.set([itemKey]);\n this.updateSelectedItems();\n }\n\n protected deselectItem(item: AXDataListItem) {\n const currentKeys = this.selectedKeys();\n const itemKey = this.getItemKey(item);\n const newKeys = currentKeys.filter((key) => key !== itemKey);\n this.selectedKeys.set(newKeys);\n this.updateSelectedItems();\n }\n\n protected updateSelectedItems() {\n const keys = this.selectedKeys();\n const dataSource = this.listDataSource?.source;\n if (!dataSource) return;\n\n const selected = dataSource.cachedItems.filter((item) => keys.includes(this.getItemKey(item)));\n this.selectedItems.set(selected);\n\n // Update selection model\n if (this.isMultipleSelection()) {\n this.selectionModel.set(keys);\n } else {\n this.selectionModel.set(keys[0] || '');\n }\n }\n\n protected isItemSelected(item: AXDataListItem): boolean {\n return this.selectedKeys().includes(this.getItemKey(item));\n }\n\n protected isItemDisabled(item: AXDataListItem): boolean {\n const disabledField = this.disabledField();\n if (!disabledField) return false;\n\n const disabled = item[disabledField];\n return Boolean(disabled);\n }\n\n protected getItemKey(item: AXDataListItem): string {\n if (item.id !== undefined && item.id !== null) {\n return String(item.id);\n }\n\n // Fallback to other potential key fields\n if (item['key'] !== undefined && item['key'] !== null) {\n return String(item['key']);\n }\n\n if (item['value'] !== undefined && item['value'] !== null) {\n return String(item['value']);\n }\n\n // Last resort: use the item itself as a string\n return String(item);\n }\n\n // Tree grouping\n protected toggleExpanded(item: AXDataListItem, event: Event) {\n if (event && typeof event.stopPropagation === 'function') {\n event.stopPropagation();\n }\n\n if (!this.hasChildren(item)) return;\n\n const currentExpanded = this.expandedItems();\n const itemKey = this.getItemKey(item);\n\n if (currentExpanded.has(itemKey)) {\n currentExpanded.delete(itemKey);\n } else {\n currentExpanded.add(itemKey);\n }\n\n this.expandedItems.set(new Set(currentExpanded));\n this.expandChange.emit({ item, expanded: currentExpanded.has(itemKey) });\n }\n\n protected hasChildren(item: AXDataListItem): boolean {\n const childrenField = this.childrenField();\n if (!childrenField) return false;\n\n const children = item[childrenField];\n return Array.isArray(children) && children.length > 0;\n }\n\n protected isExpanded(item: AXDataListItem): boolean {\n const expandedField = this.expandedField();\n if (expandedField) {\n const expanded = item[expandedField];\n if (expanded !== undefined && expanded !== null) {\n return Boolean(expanded);\n }\n }\n\n return this.expandedItems().has(this.getItemKey(item));\n }\n\n protected getItemLevel(item: AXDataListItem): number {\n const levelField = this.levelField();\n if (!levelField) return 0;\n\n const level = item[levelField];\n return level !== undefined && level !== null ? Number(level) : 0;\n }\n\n // Keyboard navigation\n protected onKeyDown(event: KeyboardEvent, item: AXDataListItem, index: number) {\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n this.focusNextItem(index);\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.focusPreviousItem(index);\n break;\n case 'Enter':\n case ' ':\n event.preventDefault();\n this.selectItem(item);\n break;\n case 'Escape':\n this.focusedIndex.set(-1);\n break;\n }\n }\n\n protected focusNextItem(currentIndex: number) {\n const dataSource = this.listDataSource?.source;\n if (!dataSource || dataSource.cachedItems.length === 0) return;\n\n const nextIndex = Math.min(currentIndex + 1, dataSource.cachedItems.length - 1);\n this.focusedIndex.set(nextIndex);\n this.scrollToIndex(nextIndex);\n }\n\n protected focusPreviousItem(currentIndex: number) {\n const dataSource = this.listDataSource?.source;\n if (!dataSource || dataSource.cachedItems.length === 0) return;\n\n const prevIndex = Math.max(currentIndex - 1, 0);\n this.focusedIndex.set(prevIndex);\n this.scrollToIndex(prevIndex);\n }\n\n protected scrollToIndex(index: number) {\n if (this.viewport && typeof index === 'number' && index >= 0) {\n this.viewport.scrollToIndex(index);\n }\n }\n\n // Item interaction\n protected onItemClick(item: AXDataListItem, event: Event) {\n if (this.isItemDisabled(item)) return;\n\n this.itemClick.emit(item);\n this.selectItem(item, event);\n }\n\n protected onCheckboxChange(item: AXDataListItem, checked: boolean) {\n if (this.isItemDisabled(item)) return;\n\n if (checked) {\n this.selectItem(item);\n } else {\n this.deselectItem(item);\n }\n }\n\n protected onCheckboxClick(event: Event) {\n if (typeof event.stopPropagation === 'function') {\n event.stopPropagation();\n }\n }\n\n protected onItemDoubleClick(item: AXDataListItem) {\n if (this.isItemDisabled(item)) return;\n\n this.itemDoubleClick.emit(item);\n }\n\n // Utility methods\n protected getItemText(item: AXDataListItem): string {\n const textField = this.textField();\n if (textField) {\n const text = item[textField];\n if (text !== undefined && text !== null) {\n return String(text);\n }\n }\n\n return item.text || '';\n }\n\n protected getItemDescription(item: AXDataListItem): string {\n const descriptionField = this.descriptionField();\n if (descriptionField) {\n const description = item[descriptionField];\n if (description !== undefined && description !== null) {\n return String(description);\n }\n }\n\n return item.description || '';\n }\n\n protected getItemTooltip(item: AXDataListItem): string {\n const tooltipField = this.tooltipField();\n if (tooltipField) {\n const tooltip = item[tooltipField];\n if (tooltip !== undefined && tooltip !== null) {\n return String(tooltip);\n }\n }\n\n return item.tooltip || '';\n }\n\n protected shouldShowTooltip(item: AXDataListItem): boolean {\n return this.showItemTooltip() && !!this.getItemTooltip(item);\n }\n\n // Track by function for virtual scrolling\n protected trackByFn = (index: number, item: AXDataListItem): string => {\n if (!item) {\n return `loading-${index}`;\n }\n return this.getItemKey(item);\n };\n}\n","<div class=\"ax-data-list\" [class.ax-data-list--loading]=\"loading()\">\n <!-- Loading State -->\n @if (loading()) {\n <div class=\"ax-data-list__loading\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate() || defaultLoadingTemplate\"></ng-container>\n </div>\n }\n\n <!-- Empty State -->\n @if (isEmpty()) {\n <div class=\"ax-data-list__empty\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate() || defaultEmptyTemplate\"></ng-container>\n </div>\n }\n\n <!-- List Content -->\n @if (hasItems() && listDataSource !== null) {\n <div class=\"ax-data-list__content\">\n <cdk-virtual-scroll-viewport\n [itemSize]=\"itemHeight()\"\n class=\"ax-data-list__viewport\"\n [class.ax-data-list__viewport--truncated]=\"isItemTruncated()\"\n >\n <ng-container *cdkVirtualFor=\"let item of listDataSource; let i = index; trackBy: trackByFn\">\n @if (item) {\n <div\n class=\"ax-data-list__item\"\n [class.ax-data-list__item--selected]=\"isItemSelected(item)\"\n [class.ax-data-list__item--disabled]=\"isItemDisabled(item)\"\n [class.ax-data-list__item--focused]=\"focusedIndex() === i\"\n [class]=\"'ax-data-list__item--level-' + getItemLevel(item)\"\n [style.height.px]=\"itemHeight()\"\n (click)=\"onItemClick(item, $event)\"\n (dblclick)=\"onItemDoubleClick(item)\"\n (keydown)=\"onKeyDown($event, item, i)\"\n tabindex=\"0\"\n role=\"listitem\"\n [attr.aria-selected]=\"isItemSelected(item)\"\n [attr.aria-disabled]=\"isItemDisabled(item)\"\n [attr.aria-level]=\"getItemLevel(item) + 1\"\n >\n <!-- Checkbox -->\n @if (showCheckboxes()) {\n <div class=\"ax-data-list__checkbox\" (click)=\"onCheckboxClick($event)\">\n <ax-check-box\n [value]=\"isItemSelected(item)\"\n [disabled]=\"isItemDisabled(item)\"\n (valueChange)=\"onCheckboxChange(item, $event)\"\n >\n </ax-check-box>\n </div>\n }\n\n <!-- Expand/Collapse Button for Tree Items -->\n @if (hasChildren(item)) {\n <div\n class=\"ax-data-list__expand-button\"\n [class.ax-data-list__expand-button--expanded]=\"isExpanded(item)\"\n (click)=\"toggleExpanded(item, $event)\"\n role=\"button\"\n tabindex=\"0\"\n [attr.aria-expanded]=\"isExpanded(item)\"\n >\n <svg class=\"ax-data-list__expand-icon\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path d=\"M7 10l5 5 5-5z\" />\n </svg>\n </div>\n }\n\n <!-- Item Content -->\n <div class=\"ax-data-list__content-wrapper\">\n <!-- Custom Item Template -->\n @if (itemTemplate()) {\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate();\n context: {\n $implicit: item,\n index: i,\n selected: isItemSelected(item),\n disabled: isItemDisabled(item),\n }\n \"\n ></ng-container>\n } @else {\n <ng-container *ngTemplateOutlet=\"defaultItemTemplate\"></ng-container>\n }\n\n <!-- Default Item Template -->\n <ng-template #defaultItemTemplate>\n <div\n class=\"ax-data-list__text\"\n [class.ax-data-list__text--truncated]=\"isItemTruncated()\"\n [axTooltip]=\"shouldShowTooltip(item) ? getItemTooltip(item) : null\"\n [axTooltipDisabled]=\"!shouldShowTooltip(item)\"\n >\n {{ getItemText(item) }}\n </div>\n\n @if (getItemDescription(item)) {\n <div\n class=\"ax-data-list__description\"\n [class.ax-data-list__description--truncated]=\"isItemTruncated()\"\n >\n {{ getItemDescription(item) }}\n </div>\n }\n </ng-template>\n </div>\n </div>\n } @else {\n <!-- Loading skeleton for null items -->\n <div class=\"ax-data-list__item ax-data-list__item--loading\" [style.height.px]=\"itemHeight()\">\n <div class=\"ax-data-list__loading-skeleton\">\n <div class=\"ax-data-list__skeleton-checkbox\"></div>\n <div class=\"ax-data-list__skeleton-content\">\n <div class=\"ax-data-list__skeleton-text\"></div>\n <div class=\"ax-data-list__skeleton-description\"></div>\n </div>\n </div>\n </div>\n }\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </div>\n }\n</div>\n\n<!-- Default Loading Template -->\n<ng-template #defaultLoadingTemplate>\n <div class=\"ax-data-list__loading-default\">\n <div class=\"ax-data-list__loading-spinner\"></div>\n <span>Loading...</span>\n </div>\n</ng-template>\n\n<!-- Default Empty Template -->\n<ng-template #defaultEmptyTemplate>\n <div class=\"ax-data-list__empty-default\">\n <svg class=\"ax-data-list__empty-icon\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path\n d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z\"\n />\n </svg>\n <span>No items to display</span>\n </div>\n</ng-template>\n","// Secondary entry point for @acorex/components/data-list\n\nexport * from './lib/data-list.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}