@acorex/components 7.3.2 → 7.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (423) hide show
  1. package/button/lib/button-group.component.d.ts +10 -73
  2. package/button/lib/button-item.class.d.ts +1 -3
  3. package/button/lib/button-item.component.d.ts +12 -75
  4. package/button/lib/button.component.d.ts +1 -1
  5. package/button-group/README.md +3 -0
  6. package/button-group/index.d.ts +2 -0
  7. package/button-group/lib/button-group.component.d.ts +21 -0
  8. package/button-group/lib/button-group.module.d.ts +8 -0
  9. package/calendar/lib/calendar-range.component.d.ts +2 -1
  10. package/calendar/lib/calendar.class.d.ts +9 -8
  11. package/calendar/lib/calendar.component.d.ts +2 -1
  12. package/check-box/lib/check-box.component.d.ts +3 -2
  13. package/color-box/README.md +3 -0
  14. package/color-box/index.d.ts +2 -0
  15. package/color-box/lib/color-box.component.d.ts +27 -0
  16. package/color-box/lib/color-box.module.d.ts +11 -0
  17. package/common/index.d.ts +5 -3
  18. package/common/lib/classes/styles.class.d.ts +0 -9
  19. package/common/lib/components/button-base-component.class.d.ts +0 -2
  20. package/common/lib/components/interactive-component.class.d.ts +7 -1
  21. package/common/lib/types/direction.d.ts +4 -0
  22. package/common/lib/types/orientation.d.ts +4 -0
  23. package/common/lib/types/placement.d.ts +30 -0
  24. package/common/lib/types/selection-mode.d.ts +4 -0
  25. package/data-pager/lib/data-pager.module.d.ts +5 -4
  26. package/data-table/lib/data-column.directive.d.ts +2 -2
  27. package/datetime-box/README.md +3 -0
  28. package/datetime-box/index.d.ts +2 -0
  29. package/datetime-box/lib/datetime-box.component.d.ts +34 -0
  30. package/datetime-box/lib/datetime-box.module.d.ts +13 -0
  31. package/datetime-input/README.md +3 -0
  32. package/datetime-input/index.d.ts +2 -0
  33. package/datetime-input/lib/datetime-input.component.d.ts +44 -0
  34. package/datetime-input/lib/datetime-input.module.d.ts +10 -0
  35. package/datetime-picker/README.md +3 -0
  36. package/datetime-picker/index.d.ts +2 -0
  37. package/datetime-picker/lib/datetime-picker.component.d.ts +42 -0
  38. package/datetime-picker/lib/datetime-picker.module.d.ts +14 -0
  39. package/decorators/index.d.ts +4 -4
  40. package/decorators/lib/decorators.module.d.ts +4 -4
  41. package/dropdown/index.d.ts +2 -0
  42. package/dropdown/lib/dropdown-box.class.d.ts +15 -0
  43. package/dropdown/lib/dropdown-box.component.d.ts +25 -0
  44. package/dropdown/lib/dropdown-panel.component.d.ts +31 -20
  45. package/dropdown/lib/dropdown.module.d.ts +9 -8
  46. package/esm2022/action-sheet/lib/action-sheet.class.mjs +1 -1
  47. package/esm2022/action-sheet/lib/action-sheet.component.mjs +3 -3
  48. package/esm2022/action-sheet/lib/action-sheet.module.mjs +4 -4
  49. package/esm2022/action-sheet/lib/action-sheet.service.mjs +3 -3
  50. package/esm2022/alert/lib/alert.component.mjs +3 -3
  51. package/esm2022/alert/lib/alert.module.mjs +4 -4
  52. package/esm2022/avatar/lib/avatar-group.component.mjs +3 -3
  53. package/esm2022/avatar/lib/avatar.component.mjs +3 -3
  54. package/esm2022/avatar/lib/avatar.module.mjs +4 -4
  55. package/esm2022/badge/lib/badge.component.mjs +3 -3
  56. package/esm2022/badge/lib/badge.module.mjs +4 -4
  57. package/esm2022/breadcrumbs/lib/breadcrumbs-item.component.mjs +3 -3
  58. package/esm2022/breadcrumbs/lib/breadcrumbs.component.mjs +3 -3
  59. package/esm2022/breadcrumbs/lib/breadcrumbs.module.mjs +4 -4
  60. package/esm2022/button/lib/button-group.component.mjs +36 -29
  61. package/esm2022/button/lib/button-item.class.mjs +1 -1
  62. package/esm2022/button/lib/button-item.component.mjs +46 -32
  63. package/esm2022/button/lib/button.component.mjs +10 -7
  64. package/esm2022/button/lib/button.module.mjs +4 -4
  65. package/esm2022/{color-picker/acorex-components-color-picker.mjs → button-group/acorex-components-button-group.mjs} +1 -1
  66. package/esm2022/button-group/index.mjs +3 -0
  67. package/esm2022/button-group/lib/button-group.component.mjs +97 -0
  68. package/esm2022/button-group/lib/button-group.module.mjs +21 -0
  69. package/esm2022/calendar/lib/calendar-range.component.mjs +14 -13
  70. package/esm2022/calendar/lib/calendar.class.mjs +19 -18
  71. package/esm2022/calendar/lib/calendar.component.mjs +80 -40
  72. package/esm2022/calendar/lib/calendar.module.mjs +4 -4
  73. package/esm2022/check-box/lib/check-box.component.mjs +9 -5
  74. package/esm2022/check-box/lib/check-box.module.mjs +4 -4
  75. package/esm2022/chips/lib/chips.component.mjs +3 -3
  76. package/esm2022/chips/lib/chips.module.mjs +4 -4
  77. package/esm2022/collapse/lib/collapse-group.component.mjs +3 -3
  78. package/esm2022/collapse/lib/collapse.component.mjs +3 -3
  79. package/esm2022/collapse/lib/collapse.module.mjs +4 -4
  80. package/esm2022/color-box/acorex-components-color-box.mjs +5 -0
  81. package/esm2022/color-box/index.mjs +3 -0
  82. package/esm2022/color-box/lib/color-box.component.mjs +91 -0
  83. package/esm2022/color-box/lib/color-box.module.mjs +24 -0
  84. package/esm2022/color-palette/lib/color-palette-input.component.mjs +3 -3
  85. package/esm2022/color-palette/lib/color-palette-picker.component.mjs +13 -13
  86. package/esm2022/color-palette/lib/color-palette-preview.component.mjs +3 -3
  87. package/esm2022/color-palette/lib/color-palette-swatches.component.mjs +3 -3
  88. package/esm2022/color-palette/lib/color-palette.class.mjs +6 -6
  89. package/esm2022/color-palette/lib/color-palette.component.mjs +5 -5
  90. package/esm2022/color-palette/lib/color-palette.module.mjs +4 -4
  91. package/esm2022/common/index.mjs +6 -4
  92. package/esm2022/common/lib/classes/components.class.mjs +22 -22
  93. package/esm2022/common/lib/classes/styles.class.mjs +1 -2
  94. package/esm2022/common/lib/common.module.mjs +4 -4
  95. package/esm2022/common/lib/components/base-component.class.mjs +3 -3
  96. package/esm2022/common/lib/components/button-base-component.class.mjs +4 -18
  97. package/esm2022/common/lib/components/input-base-value-component.class.mjs +3 -3
  98. package/esm2022/common/lib/components/interactive-component.class.mjs +14 -1
  99. package/esm2022/common/lib/components/value-component.class.mjs +6 -6
  100. package/esm2022/common/lib/directives/auto-focus.directive.mjs +3 -3
  101. package/esm2022/common/lib/directives/delayed-value-changed.directive.mjs +3 -3
  102. package/esm2022/common/lib/directives/hotkey.directive.mjs +3 -3
  103. package/esm2022/common/lib/directives/infinite-scroll.directive.mjs +3 -3
  104. package/esm2022/common/lib/directives/responsive.directive.mjs +3 -3
  105. package/esm2022/common/lib/services/dom.service.mjs +3 -3
  106. package/esm2022/common/lib/services/hotkey.service.mjs +3 -3
  107. package/esm2022/common/lib/types/direction.mjs +2 -0
  108. package/esm2022/common/lib/types/orientation.mjs +2 -0
  109. package/esm2022/common/lib/types/placement.mjs +160 -0
  110. package/esm2022/common/lib/types/range.mjs +2 -0
  111. package/esm2022/common/lib/types/selection-mode.mjs +5 -0
  112. package/esm2022/context-menu/lib/context-menu.component.mjs +3 -3
  113. package/esm2022/context-menu/lib/context-menu.module.mjs +4 -4
  114. package/esm2022/data-pager/lib/data-pager-base.component.mjs +6 -6
  115. package/esm2022/data-pager/lib/data-pager-info.component.mjs +3 -3
  116. package/esm2022/data-pager/lib/data-pager-input-selector.component.mjs +3 -3
  117. package/esm2022/data-pager/lib/data-pager-next-buttons.components.mjs +4 -4
  118. package/esm2022/data-pager/lib/data-pager-numeric-selector.component.mjs +15 -18
  119. package/esm2022/data-pager/lib/data-pager-pagesize-dropdown.component.mjs +7 -7
  120. package/esm2022/data-pager/lib/data-pager-prev-buttons.component.mjs +4 -4
  121. package/esm2022/data-pager/lib/data-pager.component.mjs +5 -5
  122. package/esm2022/data-pager/lib/data-pager.module.mjs +8 -7
  123. package/esm2022/data-table/lib/data-column.directive.mjs +6 -8
  124. package/esm2022/data-table/lib/data-table.component.mjs +3 -3
  125. package/esm2022/data-table/lib/data-table.module.mjs +4 -4
  126. package/esm2022/datetime-box/acorex-components-datetime-box.mjs +5 -0
  127. package/esm2022/datetime-box/index.mjs +3 -0
  128. package/esm2022/datetime-box/lib/datetime-box.component.mjs +109 -0
  129. package/esm2022/datetime-box/lib/datetime-box.module.mjs +38 -0
  130. package/esm2022/datetime-input/acorex-components-datetime-input.mjs +5 -0
  131. package/esm2022/datetime-input/index.mjs +3 -0
  132. package/esm2022/datetime-input/lib/datetime-input.component.mjs +522 -0
  133. package/esm2022/datetime-input/lib/datetime-input.module.mjs +23 -0
  134. package/esm2022/datetime-picker/acorex-components-datetime-picker.mjs +5 -0
  135. package/esm2022/datetime-picker/index.mjs +3 -0
  136. package/esm2022/datetime-picker/lib/datetime-picker.component.mjs +232 -0
  137. package/esm2022/datetime-picker/lib/datetime-picker.module.mjs +41 -0
  138. package/esm2022/decorators/index.mjs +5 -5
  139. package/esm2022/decorators/lib/components/clear-button.component.mjs +58 -0
  140. package/esm2022/decorators/lib/components/close-button.component.mjs +43 -0
  141. package/esm2022/decorators/lib/components/generic-content.component.mjs +17 -0
  142. package/esm2022/decorators/lib/components/icon.component.mjs +26 -0
  143. package/esm2022/decorators/lib/decorators.module.mjs +10 -10
  144. package/esm2022/dialog/lib/dialog.component.mjs +4 -4
  145. package/esm2022/dialog/lib/dialog.module.mjs +4 -4
  146. package/esm2022/dialog/lib/dialog.service.mjs +3 -3
  147. package/esm2022/drawer/lib/drawer-container.component.mjs +3 -3
  148. package/esm2022/drawer/lib/drawer.component.mjs +3 -3
  149. package/esm2022/drawer/lib/drawer.module.mjs +4 -4
  150. package/esm2022/dropdown/index.mjs +3 -1
  151. package/esm2022/dropdown/lib/dropdown-box.class.mjs +38 -0
  152. package/esm2022/dropdown/lib/dropdown-box.component.mjs +94 -0
  153. package/esm2022/dropdown/lib/dropdown-panel.component.mjs +88 -37
  154. package/esm2022/dropdown/lib/dropdown.module.mjs +8 -7
  155. package/esm2022/form/index.mjs +2 -1
  156. package/esm2022/form/lib/form-field.component.mjs +3 -3
  157. package/esm2022/form/lib/form.component.mjs +3 -3
  158. package/esm2022/form/lib/form.config.mjs +36 -0
  159. package/esm2022/form/lib/form.module.mjs +6 -28
  160. package/esm2022/form/lib/validation-rule.widget.mjs +8 -7
  161. package/esm2022/form/lib/validation-summary.component.mjs +4 -4
  162. package/esm2022/image/lib/image.component.mjs +3 -3
  163. package/esm2022/image/lib/image.module.mjs +4 -4
  164. package/esm2022/label/lib/label.component.mjs +3 -3
  165. package/esm2022/label/lib/label.module.mjs +4 -4
  166. package/esm2022/loading/lib/loading-spinner.component.mjs +3 -3
  167. package/esm2022/loading/lib/loading.component.mjs +3 -3
  168. package/esm2022/loading/lib/loading.directive.mjs +3 -3
  169. package/esm2022/loading/lib/loading.module.mjs +4 -4
  170. package/esm2022/loading/lib/loading.service.mjs +3 -3
  171. package/esm2022/menu/lib/menu.component.mjs +3 -3
  172. package/esm2022/menu/lib/menu.module.mjs +4 -4
  173. package/esm2022/mixin/lib/base-components.class.mjs +3 -3
  174. package/esm2022/mixin/lib/selection-component.class.mjs +3 -3
  175. package/esm2022/mixin/lib/value-mixin.class.mjs +3 -3
  176. package/esm2022/notification/lib/notification.component.mjs +3 -3
  177. package/esm2022/notification/lib/notification.module.mjs +4 -4
  178. package/esm2022/notification/lib/notification.service.mjs +3 -3
  179. package/esm2022/number-box/lib/number-box.component.mjs +3 -3
  180. package/esm2022/number-box/lib/number-box.module.mjs +4 -4
  181. package/esm2022/otp/lib/otp.component.mjs +23 -11
  182. package/esm2022/otp/lib/otp.module.mjs +4 -4
  183. package/esm2022/page/lib/base-page.class.mjs +3 -3
  184. package/esm2022/page/lib/page.component.mjs +3 -3
  185. package/esm2022/page/lib/page.module.mjs +4 -4
  186. package/esm2022/password-box/lib/password-box.component.mjs +3 -3
  187. package/esm2022/password-box/lib/password-box.module.mjs +4 -4
  188. package/esm2022/picker/acorex-components-picker.mjs +5 -0
  189. package/esm2022/picker/index.mjs +4 -0
  190. package/esm2022/picker/lib/picker-column.directive.mjs +73 -0
  191. package/esm2022/picker/lib/picker.component.mjs +148 -0
  192. package/esm2022/picker/lib/picker.module.mjs +22 -0
  193. package/esm2022/popover/index.mjs +1 -2
  194. package/esm2022/popover/lib/popover.component.mjs +241 -176
  195. package/esm2022/popover/lib/popover.module.mjs +4 -4
  196. package/esm2022/popup/lib/popup.component.mjs +37 -12
  197. package/esm2022/popup/lib/popup.module.mjs +4 -4
  198. package/esm2022/popup/lib/popup.service.mjs +9 -6
  199. package/esm2022/progress-bar/lib/progress-bar.component.mjs +4 -4
  200. package/esm2022/progress-bar/lib/progress-bar.module.mjs +4 -4
  201. package/esm2022/radio/lib/radio.component.mjs +36 -21
  202. package/esm2022/radio/lib/radio.module.mjs +4 -4
  203. package/esm2022/range-slider/lib/range-slider.component.mjs +21 -34
  204. package/esm2022/range-slider/lib/range-slider.module.mjs +4 -4
  205. package/esm2022/result/lib/result.component.mjs +6 -6
  206. package/esm2022/result/lib/result.module.mjs +4 -4
  207. package/esm2022/scheduler/index.mjs +2 -1
  208. package/esm2022/scheduler/lib/scheduler-month-view.component.mjs +16 -9
  209. package/esm2022/scheduler/lib/scheduler-week-view.component.mjs +12 -0
  210. package/esm2022/scheduler/lib/scheduler.component.mjs +27 -14
  211. package/esm2022/scheduler/lib/scheduler.module.mjs +10 -9
  212. package/esm2022/search-box/lib/search-box.component.mjs +3 -3
  213. package/esm2022/search-box/lib/search-box.module.mjs +4 -4
  214. package/esm2022/select-box/lib/select-box.component.mjs +7 -7
  215. package/esm2022/select-box/lib/select-box.module.mjs +4 -4
  216. package/esm2022/selection-list/lib/selection-list.component.mjs +3 -3
  217. package/esm2022/selection-list/lib/selection-list.module.mjs +4 -4
  218. package/esm2022/switch/lib/switch-content.component.mjs +3 -3
  219. package/esm2022/switch/lib/switch.component.mjs +3 -3
  220. package/esm2022/switch/lib/switch.module.mjs +4 -4
  221. package/esm2022/tabs/lib/tab-content.directive.mjs +3 -3
  222. package/esm2022/tabs/lib/tab-item.component.mjs +23 -53
  223. package/esm2022/tabs/lib/tabs.class.mjs +1 -1
  224. package/esm2022/tabs/lib/tabs.component.mjs +19 -28
  225. package/esm2022/tabs/lib/tabs.module.mjs +4 -4
  226. package/esm2022/tag/lib/tag.component.mjs +8 -10
  227. package/esm2022/tag/lib/tag.module.mjs +4 -4
  228. package/esm2022/text-area/lib/text-area.component.mjs +3 -3
  229. package/esm2022/text-area/lib/text-area.module.mjs +4 -4
  230. package/esm2022/text-box/lib/mask-options.directive.mjs +3 -3
  231. package/esm2022/text-box/lib/text-box.component.mjs +3 -3
  232. package/esm2022/text-box/lib/text-box.module.mjs +4 -4
  233. package/esm2022/toast/lib/toast.component.mjs +3 -3
  234. package/esm2022/toast/lib/toast.module.mjs +4 -4
  235. package/esm2022/toast/lib/toast.service.mjs +3 -3
  236. package/esm2022/tooltip/lib/tooltip.component.mjs +9 -13
  237. package/esm2022/tooltip/lib/tooltip.directive.mjs +35 -143
  238. package/esm2022/tooltip/lib/tooltip.module.mjs +4 -4
  239. package/esm2022/uploader/index.mjs +4 -2
  240. package/esm2022/uploader/lib/uploader-drop-zone.component.mjs +13 -0
  241. package/esm2022/uploader/lib/uploader-list.component.mjs +14 -0
  242. package/esm2022/uploader/lib/uploader-overlay.component.mjs +12 -0
  243. package/esm2022/uploader/lib/uploader.module.mjs +14 -11
  244. package/fesm2022/acorex-components-action-sheet.mjs +10 -10
  245. package/fesm2022/acorex-components-alert.mjs +7 -7
  246. package/fesm2022/acorex-components-avatar.mjs +10 -10
  247. package/fesm2022/acorex-components-badge.mjs +7 -7
  248. package/fesm2022/acorex-components-breadcrumbs.mjs +10 -10
  249. package/fesm2022/acorex-components-button-group.mjs +122 -0
  250. package/fesm2022/acorex-components-button-group.mjs.map +1 -0
  251. package/fesm2022/acorex-components-button.mjs +134 -113
  252. package/fesm2022/acorex-components-button.mjs.map +1 -1
  253. package/fesm2022/acorex-components-calendar.mjs +110 -68
  254. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  255. package/fesm2022/acorex-components-check-box.mjs +12 -8
  256. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  257. package/fesm2022/acorex-components-chips.mjs +7 -7
  258. package/fesm2022/acorex-components-collapse.mjs +10 -10
  259. package/fesm2022/acorex-components-color-box.mjs +116 -0
  260. package/fesm2022/acorex-components-color-box.mjs.map +1 -0
  261. package/fesm2022/acorex-components-color-palette.mjs +36 -36
  262. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  263. package/fesm2022/acorex-components-common.mjs +236 -149
  264. package/fesm2022/acorex-components-common.mjs.map +1 -1
  265. package/fesm2022/acorex-components-context-menu.mjs +7 -7
  266. package/fesm2022/acorex-components-data-pager.mjs +52 -54
  267. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  268. package/fesm2022/acorex-components-data-table.mjs +12 -14
  269. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  270. package/fesm2022/acorex-components-datetime-box.mjs +146 -0
  271. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -0
  272. package/fesm2022/acorex-components-datetime-input.mjs +547 -0
  273. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -0
  274. package/fesm2022/acorex-components-datetime-picker.mjs +273 -0
  275. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -0
  276. package/fesm2022/acorex-components-decorators.mjs +50 -50
  277. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  278. package/fesm2022/acorex-components-dialog.mjs +11 -11
  279. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  280. package/fesm2022/acorex-components-drawer.mjs +10 -10
  281. package/fesm2022/acorex-components-dropdown.mjs +217 -44
  282. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  283. package/fesm2022/acorex-components-form.mjs +58 -44
  284. package/fesm2022/acorex-components-form.mjs.map +1 -1
  285. package/fesm2022/acorex-components-image.mjs +7 -7
  286. package/fesm2022/acorex-components-label.mjs +7 -7
  287. package/fesm2022/acorex-components-loading.mjs +16 -16
  288. package/fesm2022/acorex-components-menu.mjs +7 -7
  289. package/fesm2022/acorex-components-mixin.mjs +6 -7
  290. package/fesm2022/acorex-components-mixin.mjs.map +1 -1
  291. package/fesm2022/acorex-components-notification.mjs +10 -10
  292. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  293. package/fesm2022/acorex-components-number-box.mjs +7 -7
  294. package/fesm2022/acorex-components-otp.mjs +27 -15
  295. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  296. package/fesm2022/acorex-components-page.mjs +10 -10
  297. package/fesm2022/acorex-components-password-box.mjs +7 -7
  298. package/fesm2022/acorex-components-picker.mjs +242 -0
  299. package/fesm2022/acorex-components-picker.mjs.map +1 -0
  300. package/fesm2022/acorex-components-popover.mjs +246 -251
  301. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  302. package/fesm2022/acorex-components-popup.mjs +48 -20
  303. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  304. package/fesm2022/acorex-components-progress-bar.mjs +8 -8
  305. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  306. package/fesm2022/acorex-components-radio.mjs +39 -25
  307. package/fesm2022/acorex-components-radio.mjs.map +1 -1
  308. package/fesm2022/acorex-components-range-slider.mjs +24 -37
  309. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  310. package/fesm2022/acorex-components-result.mjs +9 -9
  311. package/fesm2022/acorex-components-result.mjs.map +1 -1
  312. package/fesm2022/acorex-components-scheduler.mjs +50 -25
  313. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  314. package/fesm2022/acorex-components-search-box.mjs +7 -7
  315. package/fesm2022/acorex-components-select-box.mjs +10 -10
  316. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  317. package/fesm2022/acorex-components-selection-list.mjs +7 -7
  318. package/fesm2022/acorex-components-switch.mjs +10 -10
  319. package/fesm2022/acorex-components-tabs.mjs +45 -85
  320. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  321. package/fesm2022/acorex-components-tag.mjs +11 -13
  322. package/fesm2022/acorex-components-tag.mjs.map +1 -1
  323. package/fesm2022/acorex-components-text-area.mjs +7 -7
  324. package/fesm2022/acorex-components-text-box.mjs +10 -10
  325. package/fesm2022/acorex-components-toast.mjs +10 -10
  326. package/fesm2022/acorex-components-tooltip.mjs +45 -157
  327. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  328. package/fesm2022/acorex-components-uploader.mjs +38 -103
  329. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  330. package/form/index.d.ts +1 -0
  331. package/form/lib/form.config.d.ts +17 -0
  332. package/form/lib/form.module.d.ts +0 -1
  333. package/form/lib/validation-rule.widget.d.ts +1 -0
  334. package/mixin/lib/base-components.class.d.ts +2 -2
  335. package/mixin/lib/base-menu-mixin.class.d.ts +5 -5
  336. package/mixin/lib/button-mixin.class.d.ts +2 -2
  337. package/mixin/lib/clickable-mixin.class.d.ts +2 -2
  338. package/mixin/lib/color-look-mixing.class.d.ts +2 -2
  339. package/mixin/lib/datalist-component.class.d.ts +10 -10
  340. package/mixin/lib/dropdown-mixin.class.d.ts +2 -2
  341. package/mixin/lib/interactive-mixin.class.d.ts +4 -4
  342. package/mixin/lib/mixin.class.d.ts +61 -61
  343. package/mixin/lib/page-component.class.d.ts +2 -2
  344. package/mixin/lib/selection-component.class.d.ts +2 -2
  345. package/mixin/lib/sizable-mixin.class.d.ts +2 -2
  346. package/mixin/lib/textbox-mixin.class.d.ts +2 -2
  347. package/mixin/lib/value-mixin.class.d.ts +8 -8
  348. package/otp/lib/otp.component.d.ts +10 -6
  349. package/package.json +42 -24
  350. package/picker/README.md +3 -0
  351. package/picker/index.d.ts +3 -0
  352. package/picker/lib/picker-column.directive.d.ts +16 -0
  353. package/picker/lib/picker.component.d.ts +30 -0
  354. package/picker/lib/picker.module.d.ts +9 -0
  355. package/popover/index.d.ts +0 -1
  356. package/popover/lib/popover.component.d.ts +43 -27
  357. package/popup/lib/popup.component.d.ts +6 -6
  358. package/radio/lib/radio.component.d.ts +8 -10
  359. package/range-slider/lib/range-slider.component.d.ts +12 -12
  360. package/result/lib/result.component.d.ts +2 -2
  361. package/scheduler/index.d.ts +1 -0
  362. package/scheduler/lib/scheduler-month-view.component.d.ts +2 -1
  363. package/scheduler/lib/scheduler-week-view.component.d.ts +6 -0
  364. package/scheduler/lib/scheduler.component.d.ts +6 -0
  365. package/scheduler/lib/scheduler.module.d.ts +7 -6
  366. package/tabs/lib/tab-item.component.d.ts +7 -38
  367. package/tabs/lib/tabs.class.d.ts +2 -1
  368. package/tabs/lib/tabs.component.d.ts +7 -9
  369. package/tag/lib/tag.component.d.ts +2 -4
  370. package/tooltip/lib/tooltip.component.d.ts +3 -6
  371. package/tooltip/lib/tooltip.directive.d.ts +11 -17
  372. package/uploader/index.d.ts +3 -1
  373. package/uploader/lib/uploader-drop-zone.component.d.ts +6 -0
  374. package/uploader/lib/uploader-list.component.d.ts +6 -0
  375. package/uploader/lib/uploader-overlay.component.d.ts +6 -0
  376. package/uploader/lib/uploader.module.d.ts +7 -4
  377. package/color-picker/README.md +0 -3
  378. package/color-picker/index.d.ts +0 -2
  379. package/color-picker/lib/color-picker.component.d.ts +0 -191
  380. package/color-picker/lib/color-picker.module.d.ts +0 -18
  381. package/common/lib/classes/drawing.class.d.ts +0 -9
  382. package/common/lib/constant/positions.d.ts +0 -75
  383. package/date-picker/README.md +0 -3
  384. package/date-picker/index.d.ts +0 -2
  385. package/date-picker/lib/datepicker.component.d.ts +0 -40
  386. package/date-picker/lib/datepicker.module.d.ts +0 -15
  387. package/esm2022/color-picker/index.mjs +0 -3
  388. package/esm2022/color-picker/lib/color-picker.component.mjs +0 -116
  389. package/esm2022/color-picker/lib/color-picker.module.mjs +0 -61
  390. package/esm2022/common/lib/classes/data.class.mjs +0 -2
  391. package/esm2022/common/lib/classes/drawing.class.mjs +0 -2
  392. package/esm2022/common/lib/constant/positions.mjs +0 -75
  393. package/esm2022/date-picker/acorex-components-date-picker.mjs +0 -5
  394. package/esm2022/date-picker/index.mjs +0 -3
  395. package/esm2022/date-picker/lib/datepicker.component.mjs +0 -128
  396. package/esm2022/date-picker/lib/datepicker.module.mjs +0 -44
  397. package/esm2022/decorators/lib/clear-button.component.mjs +0 -58
  398. package/esm2022/decorators/lib/close-button.component.mjs +0 -43
  399. package/esm2022/decorators/lib/generic-content.component.mjs +0 -17
  400. package/esm2022/decorators/lib/icon.component.mjs +0 -26
  401. package/esm2022/popover/lib/dropdown-component.class.mjs +0 -73
  402. package/esm2022/time-box/acorex-components-time-box.mjs +0 -5
  403. package/esm2022/time-box/index.mjs +0 -3
  404. package/esm2022/time-box/lib/time-box.component.mjs +0 -294
  405. package/esm2022/time-box/lib/time-box.module.mjs +0 -32
  406. package/esm2022/uploader/lib/uploader.component.mjs +0 -99
  407. package/fesm2022/acorex-components-color-picker.mjs +0 -178
  408. package/fesm2022/acorex-components-color-picker.mjs.map +0 -1
  409. package/fesm2022/acorex-components-date-picker.mjs +0 -173
  410. package/fesm2022/acorex-components-date-picker.mjs.map +0 -1
  411. package/fesm2022/acorex-components-time-box.mjs +0 -329
  412. package/fesm2022/acorex-components-time-box.mjs.map +0 -1
  413. package/popover/lib/dropdown-component.class.d.ts +0 -17
  414. package/time-box/README.md +0 -3
  415. package/time-box/index.d.ts +0 -2
  416. package/time-box/lib/time-box.component.d.ts +0 -50
  417. package/time-box/lib/time-box.module.d.ts +0 -11
  418. package/uploader/lib/uploader.component.d.ts +0 -28
  419. /package/common/lib/{classes/data.class.d.ts → types/range.d.ts} +0 -0
  420. /package/decorators/lib/{clear-button.component.d.ts → components/clear-button.component.d.ts} +0 -0
  421. /package/decorators/lib/{close-button.component.d.ts → components/close-button.component.d.ts} +0 -0
  422. /package/decorators/lib/{generic-content.component.d.ts → components/generic-content.component.d.ts} +0 -0
  423. /package/decorators/lib/{icon.component.d.ts → components/icon.component.d.ts} +0 -0
@@ -205,8 +205,8 @@ class AXNumberBoxComponent extends MXInputBaseValueComponent {
205
205
  }
206
206
  this.commitValue(this.value - toNumber(this.decimalStep == 'auto' ? 1 / Math.pow(10, this.decimals) : this.decimalStep), u);
207
207
  }
208
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXNumberBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
209
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.8", type: AXNumberBoxComponent, selector: "ax-number-box", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", placeholder: "placeholder", value: "value", state: "state", name: "name", id: "id", thousandsSeparator: "thousandsSeparator", padDecimalZeros: "padDecimalZeros", step: "step", decimals: "decimals", decimalStep: "decimalStep", showSpinButtons: "showSpinButtons", minValue: "minValue", maxValue: "maxValue" }, outputs: { valueChange: "valueChange", stateChange: "stateChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", readonlyChange: "readonlyChange", disabledChange: "disabledChange" }, host: { classAttribute: "ax-editor-container" }, providers: [
208
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXNumberBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
209
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.9", type: AXNumberBoxComponent, selector: "ax-number-box", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", placeholder: "placeholder", value: "value", state: "state", name: "name", id: "id", thousandsSeparator: "thousandsSeparator", padDecimalZeros: "padDecimalZeros", step: "step", decimals: "decimals", decimalStep: "decimalStep", showSpinButtons: "showSpinButtons", minValue: "minValue", maxValue: "maxValue" }, outputs: { valueChange: "valueChange", stateChange: "stateChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", readonlyChange: "readonlyChange", disabledChange: "disabledChange" }, host: { classAttribute: "ax-editor-container" }, providers: [
210
210
  { provide: AXComponent, useExisting: AXNumberBoxComponent },
211
211
  { provide: AXFocusableComponent, useExisting: AXNumberBoxComponent },
212
212
  { provide: AXClearableComponent, useExisting: AXNumberBoxComponent },
@@ -217,7 +217,7 @@ class AXNumberBoxComponent extends MXInputBaseValueComponent {
217
217
  },
218
218
  ], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "_maskDirective", first: true, predicate: IMaskDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix\"> </ng-content>\n<input\n #input\n class=\"ax-input\"\n type=\"text\"\n [id]=\"id\"\n [name]=\"name\"\n [attr.placeholder]=\"placeholder\"\n [attr.autocomplete]=\"'off'\"\n [imask]=\"_maskObj\"\n [unmask]=\"'typed'\"\n [attr.min]=\"minValue\"\n [attr.max]=\"maxValue\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n [ngModel]=\"value\"\n (ngModelChange)=\"_handleModelChange($event)\"\n (keydown)=\"_handleOnKeydownEvent($event)\"\n (keyup)=\"emitOnKeyupEvent($event)\"\n (keypress)=\"emitOnKeypressEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n/>\n<ng-content select=\"ax-clear-button\"></ng-content>\n<div class=\"ax-number-box-control\" *ngIf=\"showSpinButtons\">\n <button\n type=\"button\"\n class=\"ax-general-button ax-button-icon ax-number-box-increment\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"_handleUpDownClick(1)\"\n tabindex=\"-1\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-arrow-up\"></span>\n </button>\n <button\n type=\"button\"\n class=\"ax-general-button ax-button-icon ax-number-box-decrement\"\n [class.ax-state-disabled]=\"disabled\"\n (click)=\"_handleUpDownClick(-1)\"\n [disabled]=\"disabled\"\n >\n <span class=\"ax-icon ax-icon-arrow-down\" tabindex=\"-1\"></span>\n </button>\n</div>\n<ng-content select=\"ax-suffix\"> </ng-content>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n", styles: [".ax-number-box-control{display:flex;height:100%;align-items:center;justify-content:center;margin-inline-end:.25rem;flex-direction:column}.ax-number-box-control .ax-general-button{display:flex;width:1.25rem;height:1rem;border-radius:.2rem}.ax-number-box-control .ax-general-button.ax-number-box-increment i:hover,.ax-number-box-control .ax-general-button.ax-number-box-decrement i:hover{align-items:center}.ax-number-box-control .ax-general-button.ax-number-box-increment{align-items:flex-start}.ax-number-box-control .ax-general-button.ax-number-box-decrement{align-items:flex-end}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.IMaskDirective, selector: "[imask]", inputs: ["imask", "unmask", "imaskElement"], outputs: ["accept", "complete"], exportAs: ["imask"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
219
219
  }
220
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXNumberBoxComponent, decorators: [{
220
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXNumberBoxComponent, decorators: [{
221
221
  type: Component,
222
222
  args: [{ selector: 'ax-number-box', inputs: ['disabled', 'readonly', 'tabIndex', 'placeholder', 'value', 'state', 'name', 'id'], outputs: [
223
223
  'valueChange',
@@ -270,15 +270,15 @@ const MODULES = [
270
270
  IMaskModule
271
271
  ];
272
272
  class AXNumberBoxModule {
273
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXNumberBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
274
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.8", ngImport: i0, type: AXNumberBoxModule, declarations: [AXNumberBoxComponent], imports: [CommonModule,
273
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXNumberBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
274
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.9", ngImport: i0, type: AXNumberBoxModule, declarations: [AXNumberBoxComponent], imports: [CommonModule,
275
275
  FormsModule,
276
276
  AXButtonModule,
277
277
  AXDecoratorModule,
278
278
  IMaskModule], exports: [AXNumberBoxComponent] }); }
279
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXNumberBoxModule, imports: [MODULES] }); }
279
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXNumberBoxModule, imports: [MODULES] }); }
280
280
  }
281
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXNumberBoxModule, decorators: [{
281
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXNumberBoxModule, decorators: [{
282
282
  type: NgModule,
283
283
  args: [{
284
284
  declarations: [...COMPONENT],
@@ -1,6 +1,6 @@
1
1
  import { AXEvent, MXValueComponent } from '@acorex/components/common';
2
2
  import * as i0 from '@angular/core';
3
- import { EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, NgModule } from '@angular/core';
3
+ import { EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Output, Input, NgModule } from '@angular/core';
4
4
  import * as i1 from '@angular/common';
5
5
  import { CommonModule } from '@angular/common';
6
6
 
@@ -10,21 +10,31 @@ class AXOtpCompletedEvent extends AXEvent {
10
10
  class AXOtpComponent extends MXValueComponent {
11
11
  constructor() {
12
12
  super(...arguments);
13
- this.length = 4;
13
+ this.lenghtChange = new EventEmitter();
14
14
  this.inputs = [];
15
15
  this.onCompleted = new EventEmitter();
16
16
  this._numbers = [];
17
17
  }
18
+ get length() {
19
+ return this._length;
20
+ }
21
+ set length(v) {
22
+ this._length = v;
23
+ }
18
24
  ngOnInit() {
19
25
  super.ngOnInit();
20
26
  this.inputs = Array(this.length)
21
27
  .fill(1)
22
28
  .map((x, i) => i);
23
29
  }
30
+ clear() {
31
+ this._numbers = [];
32
+ this.setState('clear');
33
+ }
24
34
  ngAfterViewInit() {
25
35
  this.getHostElement().querySelector('.ax-input').focus();
26
36
  }
27
- onInput(event, i) {
37
+ _handleOnInput(event, i) {
28
38
  const inputs = this.getHostElement().querySelectorAll('.ax-input');
29
39
  const numberRegex = /^\d+$/;
30
40
  if (!numberRegex.test(event.target.value)) {
@@ -48,7 +58,7 @@ class AXOtpComponent extends MXValueComponent {
48
58
  });
49
59
  }
50
60
  }
51
- onKeyDown(event, i) {
61
+ _handleOnKeyDown(event, i) {
52
62
  const inputs = this.getHostElement().querySelectorAll('.ax-input');
53
63
  switch (event.key) {
54
64
  case 'Backspace':
@@ -81,7 +91,7 @@ class AXOtpComponent extends MXValueComponent {
81
91
  break;
82
92
  }
83
93
  }
84
- onPaste(event) {
94
+ _handleOnPaste(event) {
85
95
  const data = event.clipboardData.getData('text');
86
96
  const inputs = this.getHostElement().querySelectorAll('.ax-input');
87
97
  inputs[inputs.length - 1].focus();
@@ -90,17 +100,19 @@ class AXOtpComponent extends MXValueComponent {
90
100
  this._numbers[i] = data[i];
91
101
  }
92
102
  }
93
- onClick(event, i) {
103
+ _handleOnClick(event, i) {
94
104
  const inputs = this.getHostElement().querySelectorAll('.ax-input');
95
105
  inputs[i].select();
96
106
  }
97
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXOtpComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
98
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.8", type: AXOtpComponent, selector: "ax-otp", inputs: { state: "state", disabled: "disabled", length: "length" }, outputs: { stateChange: "stateChange", disabledChange: "disabledChange", onCompleted: "onCompleted" }, usesInheritance: true, ngImport: i0, template: "<div\n class=\"ax-otp-input-container ax-editor-container\"\n [ngStyle]=\"{ 'grid-template-columns': 'repeat(' + inputs.length + ', minmax(0, 1fr))' }\"\n (paste)=\"onPaste($event)\"\n>\n <ng-container *ngFor=\"let input of inputs; let i = index\">\n <input\n class=\"ax-input\"\n type=\"number\"\n [class.ax-state-disabled]=\"disabled\"\n maxlength=\"1\"\n [value]=\"_numbers[i]\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n (click)=\"onClick($event, i)\"\n (input)=\"onInput($event, i)\"\n (keydown)=\"onKeyDown($event, i)\"\n disabled=\"disabled\"\n />\n </ng-container>\n</div>\n<ng-template #name></ng-template>\n", styles: [".ax-otp-input-container{display:grid;gap:.5rem}.ax-otp-input-container.ax-editor-container{border:none;height:auto;outline-color:transparent;overflow:initial}.ax-otp-input-container.ax-editor-container:focus-within,.ax-otp-input-container.ax-editor-container:focus{border:none!important;box-shadow:none!important}.ax-otp-input-container.ax-editor-container.ax-state-error .ax-input{box-shadow:0 0 0 1px rgba(var(--ax-color-danger-500))}.ax-otp-input-container.ax-editor-container.ax-state-error .ax-input::placeholder{color:rgba(var(--ax-color-danger-500))}.ax-otp-input-container.ax-editor-container.ax-state-error .ax-input:focus{border-color:rgba(var(--ax-color-danger-500));box-shadow:0 0 0 1px rgba(var(--ax-color-danger-500))}.ax-otp-input-container.ax-editor-container.ax-state-success .ax-input{box-shadow:0 0 0 1px rgba(var(--ax-color-success-500))}.ax-otp-input-container.ax-editor-container.ax-state-success .ax-input:focus{border-color:rgba(var(--ax-color-success-500));box-shadow:0 0 0 1px rgba(var(--ax-color-success-500))}.ax-otp-input-container.ax-editor-container.ax-state-success .ax-input::placeholder{color:rgba(var(--ax-color-success-500))}.ax-otp-input-container.ax-editor-container .ax-input{text-align:center;font-size:200%;overflow:hidden;aspect-ratio:1;border:1px solid;border-color:rgba(var(--ax-color-border-default));border-radius:var(--ax-rounded-border-default)}.ax-otp-input-container.ax-editor-container .ax-input:disabled{opacity:.5;cursor:not-allowed}.ax-otp-input-container.ax-editor-container .ax-input:read-only{opacity:.8;cursor:text}.ax-otp-input-container.ax-editor-container .ax-input:focus{border-color:rgba(var(--ax-color-primary-500));box-shadow:0 0 0 1px rgba(var(--ax-color-primary-500))}@media (max-width: 599px){.ax-otp-input-container.ax-editor-container .ax-input{font-size:100%}}.ax-otp-input-container.ax-editor-container .ax-input[type=number]{-moz-appearance:textfield}.ax-otp-input-container.ax-editor-container .ax-input[type=number]::-webkit-inner-spin-button,.ax-otp-input-container.ax-editor-container .ax-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
107
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXOtpComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
108
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.9", type: AXOtpComponent, selector: "ax-otp", inputs: { state: "state", disabled: "disabled", readonly: "readonly", length: "length" }, outputs: { stateChange: "stateChange", disabledChange: "disabledChange", lenghtChange: "lenghtChange", onCompleted: "onCompleted" }, usesInheritance: true, ngImport: i0, template: "<div class=\"ax-otp-input-container ax-editor-container\"\n [ngStyle]=\"{ 'grid-template-columns': 'repeat(' + inputs.length + ', minmax(0, 1fr))' }\"\n (paste)=\"_handleOnPaste($event)\">\n <ng-container *ngFor=\"let input of inputs; let i = index\">\n <input class=\"ax-input\" type=\"number\" [class.ax-state-disabled]=\"disabled\" maxlength=\"1\" [value]=\"_numbers[i]\"\n [disabled]=\"disabled\" [readonly]=\"readonly\" (click)=\"_handleOnClick($event, i)\"\n (input)=\"_handleOnInput($event, i)\" (keydown)=\"_handleOnKeyDown($event, i)\" disabled=\"disabled\" />\n </ng-container>\n</div>\n<ng-template #name></ng-template>", styles: [".ax-otp-input-container{display:grid;gap:.5rem}.ax-otp-input-container.ax-editor-container{border:none;height:auto;outline-color:transparent;overflow:initial;background-color:transparent}.ax-otp-input-container.ax-editor-container:focus-within,.ax-otp-input-container.ax-editor-container:focus{border:none!important;box-shadow:none!important}.ax-otp-input-container.ax-editor-container.ax-state-error .ax-input{box-shadow:0 0 0 1px rgba(var(--ax-color-danger-500))}.ax-otp-input-container.ax-editor-container.ax-state-error .ax-input::placeholder{color:rgba(var(--ax-color-danger-500))}.ax-otp-input-container.ax-editor-container.ax-state-error .ax-input:focus{border-color:rgba(var(--ax-color-danger-500));box-shadow:0 0 0 1px rgba(var(--ax-color-danger-500))}.ax-otp-input-container.ax-editor-container.ax-state-success .ax-input{box-shadow:0 0 0 1px rgba(var(--ax-color-success-500))}.ax-otp-input-container.ax-editor-container.ax-state-success .ax-input:focus{border-color:rgba(var(--ax-color-success-500));box-shadow:0 0 0 1px rgba(var(--ax-color-success-500))}.ax-otp-input-container.ax-editor-container.ax-state-success .ax-input::placeholder{color:rgba(var(--ax-color-success-500))}.ax-otp-input-container.ax-editor-container .ax-input{text-align:center;font-size:200%;overflow:hidden;aspect-ratio:1;border:1px solid;border-color:rgba(var(--ax-color-border-default));border-radius:var(--ax-rounded-border-default);background-color:rgba(var(--ax-color-surface))}.ax-otp-input-container.ax-editor-container .ax-input:read-only{opacity:.8;cursor:text}.ax-otp-input-container.ax-editor-container .ax-input:disabled{opacity:.5;cursor:not-allowed}.ax-otp-input-container.ax-editor-container .ax-input:focus{border-color:rgba(var(--ax-color-primary-500));box-shadow:0 0 0 1px rgba(var(--ax-color-primary-500))}@media (max-width: 599px){.ax-otp-input-container.ax-editor-container .ax-input{font-size:100%}}.ax-otp-input-container.ax-editor-container .ax-input[type=number]{-moz-appearance:textfield}.ax-otp-input-container.ax-editor-container .ax-input[type=number]::-webkit-inner-spin-button,.ax-otp-input-container.ax-editor-container .ax-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
99
109
  }
100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXOtpComponent, decorators: [{
110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXOtpComponent, decorators: [{
101
111
  type: Component,
102
- args: [{ selector: 'ax-otp', inputs: ['state', 'disabled'], outputs: ['stateChange', 'disabledChange'], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n class=\"ax-otp-input-container ax-editor-container\"\n [ngStyle]=\"{ 'grid-template-columns': 'repeat(' + inputs.length + ', minmax(0, 1fr))' }\"\n (paste)=\"onPaste($event)\"\n>\n <ng-container *ngFor=\"let input of inputs; let i = index\">\n <input\n class=\"ax-input\"\n type=\"number\"\n [class.ax-state-disabled]=\"disabled\"\n maxlength=\"1\"\n [value]=\"_numbers[i]\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n (click)=\"onClick($event, i)\"\n (input)=\"onInput($event, i)\"\n (keydown)=\"onKeyDown($event, i)\"\n disabled=\"disabled\"\n />\n </ng-container>\n</div>\n<ng-template #name></ng-template>\n", styles: [".ax-otp-input-container{display:grid;gap:.5rem}.ax-otp-input-container.ax-editor-container{border:none;height:auto;outline-color:transparent;overflow:initial}.ax-otp-input-container.ax-editor-container:focus-within,.ax-otp-input-container.ax-editor-container:focus{border:none!important;box-shadow:none!important}.ax-otp-input-container.ax-editor-container.ax-state-error .ax-input{box-shadow:0 0 0 1px rgba(var(--ax-color-danger-500))}.ax-otp-input-container.ax-editor-container.ax-state-error .ax-input::placeholder{color:rgba(var(--ax-color-danger-500))}.ax-otp-input-container.ax-editor-container.ax-state-error .ax-input:focus{border-color:rgba(var(--ax-color-danger-500));box-shadow:0 0 0 1px rgba(var(--ax-color-danger-500))}.ax-otp-input-container.ax-editor-container.ax-state-success .ax-input{box-shadow:0 0 0 1px rgba(var(--ax-color-success-500))}.ax-otp-input-container.ax-editor-container.ax-state-success .ax-input:focus{border-color:rgba(var(--ax-color-success-500));box-shadow:0 0 0 1px rgba(var(--ax-color-success-500))}.ax-otp-input-container.ax-editor-container.ax-state-success .ax-input::placeholder{color:rgba(var(--ax-color-success-500))}.ax-otp-input-container.ax-editor-container .ax-input{text-align:center;font-size:200%;overflow:hidden;aspect-ratio:1;border:1px solid;border-color:rgba(var(--ax-color-border-default));border-radius:var(--ax-rounded-border-default)}.ax-otp-input-container.ax-editor-container .ax-input:disabled{opacity:.5;cursor:not-allowed}.ax-otp-input-container.ax-editor-container .ax-input:read-only{opacity:.8;cursor:text}.ax-otp-input-container.ax-editor-container .ax-input:focus{border-color:rgba(var(--ax-color-primary-500));box-shadow:0 0 0 1px rgba(var(--ax-color-primary-500))}@media (max-width: 599px){.ax-otp-input-container.ax-editor-container .ax-input{font-size:100%}}.ax-otp-input-container.ax-editor-container .ax-input[type=number]{-moz-appearance:textfield}.ax-otp-input-container.ax-editor-container .ax-input[type=number]::-webkit-inner-spin-button,.ax-otp-input-container.ax-editor-container .ax-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}\n"] }]
103
- }], propDecorators: { length: [{
112
+ args: [{ selector: 'ax-otp', inputs: ['state', 'disabled', 'readonly'], outputs: ['stateChange', 'disabledChange'], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"ax-otp-input-container ax-editor-container\"\n [ngStyle]=\"{ 'grid-template-columns': 'repeat(' + inputs.length + ', minmax(0, 1fr))' }\"\n (paste)=\"_handleOnPaste($event)\">\n <ng-container *ngFor=\"let input of inputs; let i = index\">\n <input class=\"ax-input\" type=\"number\" [class.ax-state-disabled]=\"disabled\" maxlength=\"1\" [value]=\"_numbers[i]\"\n [disabled]=\"disabled\" [readonly]=\"readonly\" (click)=\"_handleOnClick($event, i)\"\n (input)=\"_handleOnInput($event, i)\" (keydown)=\"_handleOnKeyDown($event, i)\" disabled=\"disabled\" />\n </ng-container>\n</div>\n<ng-template #name></ng-template>", styles: [".ax-otp-input-container{display:grid;gap:.5rem}.ax-otp-input-container.ax-editor-container{border:none;height:auto;outline-color:transparent;overflow:initial;background-color:transparent}.ax-otp-input-container.ax-editor-container:focus-within,.ax-otp-input-container.ax-editor-container:focus{border:none!important;box-shadow:none!important}.ax-otp-input-container.ax-editor-container.ax-state-error .ax-input{box-shadow:0 0 0 1px rgba(var(--ax-color-danger-500))}.ax-otp-input-container.ax-editor-container.ax-state-error .ax-input::placeholder{color:rgba(var(--ax-color-danger-500))}.ax-otp-input-container.ax-editor-container.ax-state-error .ax-input:focus{border-color:rgba(var(--ax-color-danger-500));box-shadow:0 0 0 1px rgba(var(--ax-color-danger-500))}.ax-otp-input-container.ax-editor-container.ax-state-success .ax-input{box-shadow:0 0 0 1px rgba(var(--ax-color-success-500))}.ax-otp-input-container.ax-editor-container.ax-state-success .ax-input:focus{border-color:rgba(var(--ax-color-success-500));box-shadow:0 0 0 1px rgba(var(--ax-color-success-500))}.ax-otp-input-container.ax-editor-container.ax-state-success .ax-input::placeholder{color:rgba(var(--ax-color-success-500))}.ax-otp-input-container.ax-editor-container .ax-input{text-align:center;font-size:200%;overflow:hidden;aspect-ratio:1;border:1px solid;border-color:rgba(var(--ax-color-border-default));border-radius:var(--ax-rounded-border-default);background-color:rgba(var(--ax-color-surface))}.ax-otp-input-container.ax-editor-container .ax-input:read-only{opacity:.8;cursor:text}.ax-otp-input-container.ax-editor-container .ax-input:disabled{opacity:.5;cursor:not-allowed}.ax-otp-input-container.ax-editor-container .ax-input:focus{border-color:rgba(var(--ax-color-primary-500));box-shadow:0 0 0 1px rgba(var(--ax-color-primary-500))}@media (max-width: 599px){.ax-otp-input-container.ax-editor-container .ax-input{font-size:100%}}.ax-otp-input-container.ax-editor-container .ax-input[type=number]{-moz-appearance:textfield}.ax-otp-input-container.ax-editor-container .ax-input[type=number]::-webkit-inner-spin-button,.ax-otp-input-container.ax-editor-container .ax-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}\n"] }]
113
+ }], propDecorators: { lenghtChange: [{
114
+ type: Output
115
+ }], length: [{
104
116
  type: Input
105
117
  }], onCompleted: [{
106
118
  type: Output
@@ -109,11 +121,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImpor
109
121
  const COMPONENT = [AXOtpComponent];
110
122
  const MODULES = [CommonModule];
111
123
  class AXOtpModule {
112
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXOtpModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
113
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.8", ngImport: i0, type: AXOtpModule, declarations: [AXOtpComponent], imports: [CommonModule], exports: [AXOtpComponent] }); }
114
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXOtpModule, imports: [MODULES] }); }
124
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXOtpModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
125
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.9", ngImport: i0, type: AXOtpModule, declarations: [AXOtpComponent], imports: [CommonModule], exports: [AXOtpComponent] }); }
126
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXOtpModule, imports: [MODULES] }); }
115
127
  }
116
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXOtpModule, decorators: [{
128
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXOtpModule, decorators: [{
117
129
  type: NgModule,
118
130
  args: [{
119
131
  declarations: [...COMPONENT],
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-otp.mjs","sources":["../../../../libs/components/otp/src/lib/otp.class.ts","../../../../libs/components/otp/src/lib/otp.component.ts","../../../../libs/components/otp/src/lib/otp.component.html","../../../../libs/components/otp/src/lib/otp.module.ts","../../../../libs/components/otp/src/acorex-components-otp.ts"],"sourcesContent":["import { AXEvent } from '@acorex/components/common';\n\nexport class AXOtpCompletedEvent extends AXEvent {\n value: string;\n}\n","import { MXValueComponent } from '@acorex/components/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXOtpCompletedEvent } from './otp.class';\n\n@Component({\n selector: 'ax-otp',\n templateUrl: './otp.component.html',\n styleUrls: ['./otp.component.scss'],\n inputs: ['state', 'disabled'],\n outputs: ['stateChange', 'disabledChange'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXOtpComponent extends MXValueComponent<string> implements OnInit, AfterViewInit {\n @Input() length = 4;\n inputs: number[] = [];\n\n @Output() onCompleted: EventEmitter<AXOtpCompletedEvent> = new EventEmitter<AXOtpCompletedEvent>();\n\n protected _numbers: number[] = [];\n\n override ngOnInit(): void {\n super.ngOnInit();\n this.inputs = Array(this.length)\n .fill(1)\n .map((x, i) => i);\n }\n\n override ngAfterViewInit(): void {\n this.getHostElement().querySelector<HTMLInputElement>('.ax-input').focus();\n }\n\n onInput(event: any, i: number) {\n const inputs = this.getHostElement().querySelectorAll<HTMLInputElement>('.ax-input');\n const numberRegex = /^\\d+$/;\n if (!numberRegex.test(event.target.value)) {\n event.target.value = '';\n return;\n }\n if (event.target.value.length > 1) {\n const currentValue = event.target.value;\n event.target.value = '';\n event.target.value = currentValue.slice(-1);\n }\n if (inputs[i + 1]) {\n inputs[i + 1].select();\n }\n this._numbers[i] = event.target.value;\n if (this._numbers.filter((c) => c).length === this.length) {\n this.setState('success');\n this.onCompleted.emit({\n component: AXOtpComponent,\n value: this._numbers.join(''),\n });\n }\n }\n\n onKeyDown(event: KeyboardEvent, i: number) {\n const inputs = this.getHostElement().querySelectorAll<HTMLInputElement>('.ax-input');\n switch (event.key) {\n case 'Backspace':\n inputs[i].value = '';\n if (inputs[i - 1]) {\n inputs[i - 1].select();\n event.preventDefault();\n }\n this._numbers[i] = NaN;\n break;\n case 'ArrowRight':\n if (inputs[i + 1]) {\n inputs[i + 1].select();\n }\n break;\n\n case 'ArrowLeft':\n if (inputs[i - 1]) {\n inputs[i - 1].select();\n }\n break;\n case 'Home':\n inputs[0].focus();\n break;\n case 'End':\n inputs[this.length - 1].select();\n break;\n case 'ArrowUp':\n case 'ArrowDown':\n event.preventDefault();\n break;\n }\n }\n onPaste(event: any) {\n const data = event.clipboardData.getData('text');\n const inputs = this.getHostElement().querySelectorAll<HTMLInputElement>('.ax-input');\n inputs[inputs.length - 1].focus();\n this._numbers = [];\n for (let i = 0; i < data.length; i++) {\n this._numbers[i] = data[i];\n }\n }\n\n onClick(event: any, i) {\n const inputs = this.getHostElement().querySelectorAll<HTMLInputElement>('.ax-input');\n inputs[i].select();\n }\n}\n","<div\n class=\"ax-otp-input-container ax-editor-container\"\n [ngStyle]=\"{ 'grid-template-columns': 'repeat(' + inputs.length + ', minmax(0, 1fr))' }\"\n (paste)=\"onPaste($event)\"\n>\n <ng-container *ngFor=\"let input of inputs; let i = index\">\n <input\n class=\"ax-input\"\n type=\"number\"\n [class.ax-state-disabled]=\"disabled\"\n maxlength=\"1\"\n [value]=\"_numbers[i]\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n (click)=\"onClick($event, i)\"\n (input)=\"onInput($event, i)\"\n (keydown)=\"onKeyDown($event, i)\"\n disabled=\"disabled\"\n />\n </ng-container>\n</div>\n<ng-template #name></ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXOtpComponent } from './otp.component';\n\nconst COMPONENT = [AXOtpComponent];\nconst MODULES = [CommonModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXOtpModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-otp.mjs","sources":["../../../../libs/components/otp/src/lib/otp.class.ts","../../../../libs/components/otp/src/lib/otp.component.ts","../../../../libs/components/otp/src/lib/otp.component.html","../../../../libs/components/otp/src/lib/otp.module.ts","../../../../libs/components/otp/src/acorex-components-otp.ts"],"sourcesContent":["import { AXEvent } from '@acorex/components/common';\n\nexport class AXOtpCompletedEvent extends AXEvent {\n value: string;\n}\n","import { MXValueComponent } from '@acorex/components/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXOtpCompletedEvent } from './otp.class';\n\n@Component({\n selector: 'ax-otp',\n templateUrl: './otp.component.html',\n styleUrls: ['./otp.component.scss'],\n inputs: ['state', 'disabled', 'readonly'],\n outputs: ['stateChange', 'disabledChange'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXOtpComponent extends MXValueComponent<string> implements OnInit, AfterViewInit {\n @Output()\n lenghtChange: EventEmitter<number> = new EventEmitter();\n\n private _length: number;\n\n @Input()\n public get length(): number {\n return this._length;\n }\n public set length(v: number) {\n this._length = v;\n }\n\n inputs: number[] = [];\n\n @Output() onCompleted: EventEmitter<AXOtpCompletedEvent> = new EventEmitter<AXOtpCompletedEvent>();\n\n protected _numbers: number[] = [];\n\n override ngOnInit(): void {\n super.ngOnInit();\n this.inputs = Array(this.length)\n .fill(1)\n .map((x, i) => i);\n }\n\n clear() {\n this._numbers = [];\n this.setState('clear');\n }\n\n override ngAfterViewInit(): void {\n this.getHostElement().querySelector<HTMLInputElement>('.ax-input').focus();\n }\n\n protected _handleOnInput(event: any, i: number) {\n const inputs = this.getHostElement().querySelectorAll<HTMLInputElement>('.ax-input');\n const numberRegex = /^\\d+$/;\n if (!numberRegex.test(event.target.value)) {\n event.target.value = '';\n return;\n }\n if (event.target.value.length > 1) {\n const currentValue = event.target.value;\n event.target.value = '';\n event.target.value = currentValue.slice(-1);\n }\n if (inputs[i + 1]) {\n inputs[i + 1].select();\n }\n this._numbers[i] = event.target.value;\n if (this._numbers.filter((c) => c).length === this.length) {\n this.setState('success');\n this.onCompleted.emit({\n component: AXOtpComponent,\n value: this._numbers.join(''),\n });\n }\n }\n\n protected _handleOnKeyDown(event: KeyboardEvent, i: number) {\n const inputs = this.getHostElement().querySelectorAll<HTMLInputElement>('.ax-input');\n switch (event.key) {\n case 'Backspace':\n inputs[i].value = '';\n if (inputs[i - 1]) {\n inputs[i - 1].select();\n event.preventDefault();\n }\n this._numbers[i] = NaN;\n break;\n case 'ArrowRight':\n if (inputs[i + 1]) {\n inputs[i + 1].select();\n }\n break;\n\n case 'ArrowLeft':\n if (inputs[i - 1]) {\n inputs[i - 1].select();\n }\n break;\n case 'Home':\n inputs[0].focus();\n break;\n case 'End':\n inputs[this.length - 1].select();\n break;\n case 'ArrowUp':\n case 'ArrowDown':\n event.preventDefault();\n break;\n }\n }\n protected _handleOnPaste(event: any) {\n const data = event.clipboardData.getData('text');\n const inputs = this.getHostElement().querySelectorAll<HTMLInputElement>('.ax-input');\n inputs[inputs.length - 1].focus();\n this._numbers = [];\n for (let i = 0; i < data.length; i++) {\n this._numbers[i] = data[i];\n }\n }\n\n protected _handleOnClick(event: any, i) {\n const inputs = this.getHostElement().querySelectorAll<HTMLInputElement>('.ax-input');\n inputs[i].select();\n }\n}\n","<div class=\"ax-otp-input-container ax-editor-container\"\n [ngStyle]=\"{ 'grid-template-columns': 'repeat(' + inputs.length + ', minmax(0, 1fr))' }\"\n (paste)=\"_handleOnPaste($event)\">\n <ng-container *ngFor=\"let input of inputs; let i = index\">\n <input class=\"ax-input\" type=\"number\" [class.ax-state-disabled]=\"disabled\" maxlength=\"1\" [value]=\"_numbers[i]\"\n [disabled]=\"disabled\" [readonly]=\"readonly\" (click)=\"_handleOnClick($event, i)\"\n (input)=\"_handleOnInput($event, i)\" (keydown)=\"_handleOnKeyDown($event, i)\" disabled=\"disabled\" />\n </ng-container>\n</div>\n<ng-template #name></ng-template>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXOtpComponent } from './otp.component';\n\nconst COMPONENT = [AXOtpComponent];\nconst MODULES = [CommonModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXOtpModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -45,10 +45,10 @@ class AXBasePageComponent extends MXBaseComponent {
45
45
  ngOnDestroy() {
46
46
  this.onClosed.unsubscribe();
47
47
  }
48
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXBasePageComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
49
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXBasePageComponent }); }
48
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXBasePageComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
49
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXBasePageComponent }); }
50
50
  }
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXBasePageComponent, decorators: [{
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXBasePageComponent, decorators: [{
52
52
  type: Injectable
53
53
  }], propDecorators: { footer: [{
54
54
  type: ViewChild,
@@ -85,10 +85,10 @@ class AXPageComponent extends MXBaseComponent {
85
85
  },
86
86
  });
87
87
  }
88
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXPageComponent, deps: [{ token: AXLoadingService }], target: i0.ɵɵFactoryTarget.Injectable }); }
89
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXPageComponent }); }
88
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXPageComponent, deps: [{ token: AXLoadingService }], target: i0.ɵɵFactoryTarget.Injectable }); }
89
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXPageComponent }); }
90
90
  }
91
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXPageComponent, decorators: [{
91
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXPageComponent, decorators: [{
92
92
  type: Injectable
93
93
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
94
94
  type: Inject,
@@ -101,11 +101,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImpor
101
101
 
102
102
  // TODO: Module is empty!?
103
103
  class AXPageModule {
104
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXPageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
105
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.8", ngImport: i0, type: AXPageModule }); }
106
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXPageModule }); }
104
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXPageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
105
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.9", ngImport: i0, type: AXPageModule }); }
106
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXPageModule }); }
107
107
  }
108
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXPageModule, decorators: [{
108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXPageModule, decorators: [{
109
109
  type: NgModule,
110
110
  args: [{
111
111
  imports: [],
@@ -37,8 +37,8 @@ class AXPasswordBoxComponent extends MXInputBaseValueComponent {
37
37
  this._icon = 'ax-icon-visibility';
38
38
  }
39
39
  }
40
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXPasswordBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
41
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.8", type: AXPasswordBoxComponent, selector: "ax-password-box", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", placeholder: "placeholder", value: "value", state: "state", name: "name", id: "id", autoComplete: "autoComplete", showToggleButton: "showToggleButton" }, outputs: { valueChange: "valueChange", stateChange: "stateChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", readonlyChange: "readonlyChange", disabledChange: "disabledChange" }, host: { classAttribute: "ax-editor-container" }, providers: [
40
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXPasswordBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
41
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.9", type: AXPasswordBoxComponent, selector: "ax-password-box", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", placeholder: "placeholder", value: "value", state: "state", name: "name", id: "id", autoComplete: "autoComplete", showToggleButton: "showToggleButton" }, outputs: { valueChange: "valueChange", stateChange: "stateChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", readonlyChange: "readonlyChange", disabledChange: "disabledChange" }, host: { classAttribute: "ax-editor-container" }, providers: [
42
42
  { provide: AXComponent, useExisting: AXPasswordBoxComponent },
43
43
  { provide: AXFocusableComponent, useExisting: AXPasswordBoxComponent },
44
44
  { provide: AXClearableComponent, useExisting: AXPasswordBoxComponent },
@@ -49,7 +49,7 @@ class AXPasswordBoxComponent extends MXInputBaseValueComponent {
49
49
  }
50
50
  ], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix\">\n</ng-content>\n<input #input class=\"ax-input\" [name]=\"name\" [type]=\"_type\" [id]=\"id\" [attr.placeholder]=\"placeholder\"\n [class.ax-state-disabled]=\"disabled\" [class.ax-state-readonly]=\"readonly\" [disabled]=\"disabled\"\n [readonly]=\"readonly\" [tabindex]=\"tabIndex\" [ngModel]=\"value\" [attr.autocomplete]=\"autoComplete\"\n (ngModelChange)=\"_handleModelChange($event)\" (keydown)=\"emitOnKeydownEvent($event)\"\n (keyup)=\"emitOnKeyupEvent($event)\" (keypress)=\"emitOnKeypressEvent($event)\" (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\">\n<ng-content select=\"ax-clear-button\"></ng-content>\n<button type=\"button\" class=\"ax-general-button ax-button-icon\" (click)=\"toggleType()\" [tabIndex]=\"-1\"\n *ngIf=\"showToggleButton\">\n <span class=\"ax-icon {{_icon}}\"></span>\n</button>\n<ng-content select=\"ax-suffix\">\n</ng-content>\n<ng-content select=\"ax-validation-rule\">\n</ng-content>", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
51
51
  }
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXPasswordBoxComponent, decorators: [{
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXPasswordBoxComponent, decorators: [{
53
53
  type: Component,
54
54
  args: [{ selector: 'ax-password-box', inputs: [
55
55
  'disabled',
@@ -87,14 +87,14 @@ const MODULES = [
87
87
  AXDecoratorModule,
88
88
  ];
89
89
  class AXPasswordBoxModule {
90
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXPasswordBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
91
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.8", ngImport: i0, type: AXPasswordBoxModule, declarations: [AXPasswordBoxComponent], imports: [CommonModule,
90
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXPasswordBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
91
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.9", ngImport: i0, type: AXPasswordBoxModule, declarations: [AXPasswordBoxComponent], imports: [CommonModule,
92
92
  FormsModule,
93
93
  AXButtonModule,
94
94
  AXDecoratorModule], exports: [AXPasswordBoxComponent] }); }
95
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXPasswordBoxModule, imports: [MODULES] }); }
95
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXPasswordBoxModule, imports: [MODULES] }); }
96
96
  }
97
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXPasswordBoxModule, decorators: [{
97
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXPasswordBoxModule, decorators: [{
98
98
  type: NgModule,
99
99
  args: [{
100
100
  declarations: [...COMPONENT],
@@ -0,0 +1,242 @@
1
+ import { MXValueComponent, MXBaseComponent } from '@acorex/components/common';
2
+ import * as i0 from '@angular/core';
3
+ import { EventEmitter, forwardRef, Directive, Input, Output, inject, NgZone, Component, ChangeDetectionStrategy, ViewEncapsulation, ContentChildren, NgModule } from '@angular/core';
4
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
5
+ import { AXUnsubscriber, AXDrawingUtil } from '@acorex/core/utils';
6
+ import { startWith } from 'rxjs';
7
+ import * as i1 from '@angular/common';
8
+ import { CommonModule } from '@angular/common';
9
+
10
+ class AXPickerColumnDirective extends MXValueComponent {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.valueField = 'id';
14
+ this.textField = 'text';
15
+ this.step = 1;
16
+ this.itemsChange = new EventEmitter();
17
+ }
18
+ get items() {
19
+ return this._items;
20
+ }
21
+ set items(v) {
22
+ this._items = v;
23
+ this.itemsChange.emit(v);
24
+ }
25
+ internalSetValue(v) {
26
+ if (v == null)
27
+ return v;
28
+ else if (typeof v == 'object') {
29
+ return this.items.find(c => c[this.valueField] == v[this.valueField]);
30
+ }
31
+ else {
32
+ return this.items.find(c => c[this.valueField] == v);
33
+ }
34
+ }
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXPickerColumnDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
36
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.9", type: AXPickerColumnDirective, selector: "ax-picker-column", inputs: { disabled: "disabled", readonly: "readonly", readonlyChange: "readonlyChange", disabledChange: "disabledChange", valueField: "valueField", textField: "textField", title: "title", step: "step", items: "items" }, outputs: { onValueChanged: "onValueChanged", itemsChange: "itemsChange" }, providers: [
37
+ {
38
+ provide: NG_VALUE_ACCESSOR,
39
+ useExisting: forwardRef(() => AXPickerColumnDirective),
40
+ multi: true
41
+ }
42
+ ], usesInheritance: true, ngImport: i0 }); }
43
+ }
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXPickerColumnDirective, decorators: [{
45
+ type: Directive,
46
+ args: [{
47
+ selector: 'ax-picker-column',
48
+ inputs: [
49
+ 'disabled',
50
+ 'readonly',
51
+ 'readonlyChange',
52
+ 'disabledChange'
53
+ ],
54
+ outputs: [
55
+ 'onValueChanged'
56
+ ],
57
+ providers: [
58
+ {
59
+ provide: NG_VALUE_ACCESSOR,
60
+ useExisting: forwardRef(() => AXPickerColumnDirective),
61
+ multi: true
62
+ }
63
+ ],
64
+ }]
65
+ }], propDecorators: { valueField: [{
66
+ type: Input
67
+ }], textField: [{
68
+ type: Input
69
+ }], title: [{
70
+ type: Input
71
+ }], step: [{
72
+ type: Input
73
+ }], itemsChange: [{
74
+ type: Output
75
+ }], items: [{
76
+ type: Input
77
+ }] } });
78
+
79
+ class AXPickerComponent extends MXBaseComponent {
80
+ constructor() {
81
+ super(...arguments);
82
+ this._columns = {};
83
+ this._itemHeight = this._calcItemheight();
84
+ this._dragging = false;
85
+ this._unsubscriber = inject(AXUnsubscriber);
86
+ this._zone = inject(NgZone);
87
+ }
88
+ ngAfterContentInit() {
89
+ this._itemHeight = this._calcItemheight();
90
+ this._columns.changes
91
+ .pipe(this._unsubscriber.takeUntilDestroy)
92
+ .pipe(startWith(undefined))
93
+ .subscribe(c => {
94
+ this.cdr.detectChanges();
95
+ this._bindEvents();
96
+ });
97
+ }
98
+ ngOnDestroy() {
99
+ this._removeEvents();
100
+ }
101
+ _calcItemheight() {
102
+ const rem = window.getComputedStyle(document.documentElement, null).getPropertyValue('--ax-size-default');
103
+ return AXDrawingUtil.convertRemToPixels(Number(rem?.replace('rem', '') ?? 0));
104
+ }
105
+ _bindEvents() {
106
+ this._removeEvents();
107
+ //
108
+ this._htmlColumns = Array.from(this.getHostElement().querySelectorAll(".ax-picker-col .ax-content"));
109
+ this._columns.forEach(c => {
110
+ c.onValueChanged
111
+ .pipe(this._unsubscriber.takeUntilDestroy)
112
+ .subscribe(() => {
113
+ this._detectSelectedItemsByValue();
114
+ });
115
+ });
116
+ this._htmlColumns.forEach((col, index) => {
117
+ col['column'] = this._columns.get(index);
118
+ col.addEventListener("wheel", this._handleMouseWeel.bind(this), { passive: false });
119
+ //
120
+ col.addEventListener("touchstart", this._handleTouchStart.bind(this), { passive: false });
121
+ //col.addEventListener("mousedown", this._handleTouchStart.bind(this), { passive: false });
122
+ //
123
+ col.addEventListener('touchmove', this._handleTouchMove.bind(this), { passive: false });
124
+ //col.addEventListener('mousemove', this._handleTouchMove.bind(this), { passive: false })
125
+ //
126
+ col.addEventListener('touchend', this._handleTouchEnd.bind(this), { passive: false });
127
+ //col.addEventListener('mouseup', this._handleTouchMove.bind(this), { passive: false })
128
+ });
129
+ }
130
+ _removeEvents() {
131
+ this._htmlColumns?.forEach((col) => {
132
+ col.removeEventListener("wheel", this._handleMouseWeel.bind(this));
133
+ //
134
+ col.removeEventListener("touchstart", this._handleTouchStart.bind(this));
135
+ //col.removeEventListener("mousedown", this._handleTouchStart.bind(this));
136
+ col.removeEventListener('touchmove', this._handleTouchMove.bind(this));
137
+ //col.removeEventListener('mousemove', this._handleTouchMove.bind(this));
138
+ //
139
+ col.removeEventListener('touchend', this._handleTouchEnd.bind(this));
140
+ //col.removeEventListener('mouseup', this._handleTouchEnd.bind(this));
141
+ });
142
+ }
143
+ _handleTouchStart(e) {
144
+ e.preventDefault();
145
+ e.stopPropagation();
146
+ this._currentList = e.currentTarget;
147
+ this._previousY = e instanceof TouchEvent ? e.touches[0].clientY : e.clientY;
148
+ }
149
+ _handleTouchMove(e) {
150
+ //console.log("touchmove");
151
+ this._dragging = true;
152
+ e.preventDefault();
153
+ e.stopPropagation();
154
+ this._zone.runOutsideAngular(() => {
155
+ if (this._currentList && this._dragging) {
156
+ const clientY = e instanceof TouchEvent ? e.touches[0].clientY : e.clientY;
157
+ const delta = clientY - this._previousY;
158
+ this._previousY = clientY;
159
+ //console.log(delta);
160
+ if (Math.abs(delta) > 1)
161
+ this._moveByDelta(this._currentList, -delta);
162
+ }
163
+ });
164
+ }
165
+ _handleTouchEnd(e) {
166
+ // simulate click
167
+ const targetelement = e.target;
168
+ if (!this._dragging && targetelement.tagName == "LI") {
169
+ targetelement.click();
170
+ }
171
+ this._dragging = false;
172
+ }
173
+ _handleMouseWeel(e) {
174
+ e.preventDefault();
175
+ e.stopPropagation();
176
+ this._moveByDelta(e.currentTarget, e.deltaY);
177
+ }
178
+ _moveByDelta(col, deltaY) {
179
+ const column = col['column'];
180
+ if (column.readonly || column.disabled)
181
+ return;
182
+ let index = column.items.indexOf(column.value);
183
+ console.log(deltaY);
184
+ index = (deltaY < 0) ? (index - column.step) : (index + column.step);
185
+ if (index < 0)
186
+ index = 0;
187
+ if (index >= column.items.length)
188
+ index = column.items.length - 1;
189
+ column.commitValue(column.items[index], true);
190
+ }
191
+ _handleItemClick(column, item) {
192
+ if (column.readonly || column.disabled)
193
+ return;
194
+ column.commitValue(item, true);
195
+ }
196
+ _detectSelectedItemsByValue() {
197
+ this._zone.runOutsideAngular(() => {
198
+ this._htmlColumns.forEach(col => {
199
+ const column = col['column'];
200
+ const index = column.items.indexOf(column.value);
201
+ col.querySelector("ul").style.transform = `translateY(${-index * this._itemHeight}px)`;
202
+ this.cdr.markForCheck();
203
+ });
204
+ });
205
+ }
206
+ refresh() {
207
+ this._detectSelectedItemsByValue();
208
+ }
209
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXPickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
210
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.9", type: AXPickerComponent, selector: "ax-picker", providers: [AXUnsubscriber], queries: [{ propertyName: "_columns", predicate: AXPickerColumnDirective }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-header\">\n <div class=\"ax-picker-col\" *ngFor=\"let col of _columns\">\n <div class=\"ax-header\">\n {{col.title}}\n </div>\n </div>\n</div>\n<div class=\"ax-content\">\n <div class=\"ax-picker-window\"></div>\n <div class=\"ax-picker-col\" *ngFor=\"let col of _columns\" [class.ax-state-disabled]=\"col.disabled\"\n [class.ax-state-readonly]=\"col.readonly\">\n <div class=\"ax-content\">\n <ul>\n <li *ngFor=\"let item of col.items\" (click)=\"_handleItemClick(col,item)\"\n [class.ax-state-active]=\"col.value && col.value[col.valueField]===item[col.valueField]\"\n [class.ax-state-disabled]=\"col.disabled\" [class.ax-state-readonly]=\"col.readonly\">\n {{item[col.textField]}}\n </li>\n </ul>\n </div>\n </div>\n</div>", styles: ["ax-picker{display:flex;flex-direction:column;width:100%;height:100%;min-height:100%;--item-height: var(--ax-size-default);--item-count: 5;--ul-pad: 2}ax-picker>.ax-header,ax-picker>.ax-content{display:flex;flex-direction:row;width:100%}ax-picker>.ax-header .ax-picker-col,ax-picker>.ax-content .ax-picker-col{display:flex;flex-direction:column;flex-grow:1;text-align:center;flex-basis:0}ax-picker>.ax-header{font-size:.875rem;font-weight:500;padding:.5rem}ax-picker>.ax-content{position:relative;flex:1}ax-picker>.ax-content .ax-picker-window{position:absolute;border-top:1px solid rgba(var(--ax-color-border-default));border-bottom:1px solid rgba(var(--ax-color-border-default));height:calc(var(--item-height));left:0;top:50%;transform:translateY(-50%);width:100%;pointer-events:none;background-color:#fff}ax-picker>.ax-content .ax-picker-col{display:flex;flex-direction:column;flex-grow:1;text-align:center;height:100%;flex-basis:0;cursor:pointer}ax-picker>.ax-content .ax-picker-col.ax-state-disabled,ax-picker>.ax-content .ax-picker-col.ax-state-readonly{opacity:.5;cursor:default}ax-picker>.ax-content .ax-picker-col:hover:not(.ax-state-disabled,.ax-state-readonly){transition:.2s;background-color:rgba(var(--ax-color-default))}ax-picker>.ax-content .ax-picker-col>.ax-content{height:calc(var(--item-height) * var(--item-count));position:relative;font-feature-settings:\"tnum\";font-weight:400;overflow:hidden;touch-action:pan-y!important}ax-picker>.ax-content .ax-picker-col>.ax-content:before,ax-picker>.ax-content .ax-picker-col>.ax-content:after{content:\"\";position:absolute;width:100%;height:calc(var(--item-height) * 2);left:0;pointer-events:none;z-index:1}ax-picker>.ax-content .ax-picker-col>.ax-content:before{top:0;background:linear-gradient(white,rgba(255,255,255,.3))}ax-picker>.ax-content .ax-picker-col>.ax-content:after{bottom:0;background:linear-gradient(rgba(255,255,255,.3),white)}ax-picker>.ax-content .ax-picker-col>.ax-content>ul{will-change:transform;transition:transform .1s ease 0s;height:calc(var(--item-height) * var(--item-count));padding-bottom:calc(var(--item-height) * var(--ul-pad));padding-top:calc(var(--item-height) * var(--ul-pad))}ax-picker>.ax-content .ax-picker-col>.ax-content>ul li{height:calc(var(--item-height));scroll-snap-align:center;display:flex;justify-content:center;align-items:center;font-size:1rem;-webkit-user-select:none;user-select:none;transition:all .2s}ax-picker>.ax-content .ax-picker-col>.ax-content>ul li:hover:not(.ax-state-disabled,.ax-state-readonly,.ax-state-active){color:rgba(var(--ax-color-primary-500))}ax-picker>.ax-content .ax-picker-col>.ax-content>ul li.ax-state-active{font-weight:700;font-size:1.25rem}ax-picker>.ax-content .ax-picker-col:not(:last-child){border-inline-end:1px solid;border-color:rgba(var(--ax-color-border-default))}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
211
+ }
212
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXPickerComponent, decorators: [{
213
+ type: Component,
214
+ args: [{ selector: 'ax-picker', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [AXUnsubscriber], template: "<div class=\"ax-header\">\n <div class=\"ax-picker-col\" *ngFor=\"let col of _columns\">\n <div class=\"ax-header\">\n {{col.title}}\n </div>\n </div>\n</div>\n<div class=\"ax-content\">\n <div class=\"ax-picker-window\"></div>\n <div class=\"ax-picker-col\" *ngFor=\"let col of _columns\" [class.ax-state-disabled]=\"col.disabled\"\n [class.ax-state-readonly]=\"col.readonly\">\n <div class=\"ax-content\">\n <ul>\n <li *ngFor=\"let item of col.items\" (click)=\"_handleItemClick(col,item)\"\n [class.ax-state-active]=\"col.value && col.value[col.valueField]===item[col.valueField]\"\n [class.ax-state-disabled]=\"col.disabled\" [class.ax-state-readonly]=\"col.readonly\">\n {{item[col.textField]}}\n </li>\n </ul>\n </div>\n </div>\n</div>", styles: ["ax-picker{display:flex;flex-direction:column;width:100%;height:100%;min-height:100%;--item-height: var(--ax-size-default);--item-count: 5;--ul-pad: 2}ax-picker>.ax-header,ax-picker>.ax-content{display:flex;flex-direction:row;width:100%}ax-picker>.ax-header .ax-picker-col,ax-picker>.ax-content .ax-picker-col{display:flex;flex-direction:column;flex-grow:1;text-align:center;flex-basis:0}ax-picker>.ax-header{font-size:.875rem;font-weight:500;padding:.5rem}ax-picker>.ax-content{position:relative;flex:1}ax-picker>.ax-content .ax-picker-window{position:absolute;border-top:1px solid rgba(var(--ax-color-border-default));border-bottom:1px solid rgba(var(--ax-color-border-default));height:calc(var(--item-height));left:0;top:50%;transform:translateY(-50%);width:100%;pointer-events:none;background-color:#fff}ax-picker>.ax-content .ax-picker-col{display:flex;flex-direction:column;flex-grow:1;text-align:center;height:100%;flex-basis:0;cursor:pointer}ax-picker>.ax-content .ax-picker-col.ax-state-disabled,ax-picker>.ax-content .ax-picker-col.ax-state-readonly{opacity:.5;cursor:default}ax-picker>.ax-content .ax-picker-col:hover:not(.ax-state-disabled,.ax-state-readonly){transition:.2s;background-color:rgba(var(--ax-color-default))}ax-picker>.ax-content .ax-picker-col>.ax-content{height:calc(var(--item-height) * var(--item-count));position:relative;font-feature-settings:\"tnum\";font-weight:400;overflow:hidden;touch-action:pan-y!important}ax-picker>.ax-content .ax-picker-col>.ax-content:before,ax-picker>.ax-content .ax-picker-col>.ax-content:after{content:\"\";position:absolute;width:100%;height:calc(var(--item-height) * 2);left:0;pointer-events:none;z-index:1}ax-picker>.ax-content .ax-picker-col>.ax-content:before{top:0;background:linear-gradient(white,rgba(255,255,255,.3))}ax-picker>.ax-content .ax-picker-col>.ax-content:after{bottom:0;background:linear-gradient(rgba(255,255,255,.3),white)}ax-picker>.ax-content .ax-picker-col>.ax-content>ul{will-change:transform;transition:transform .1s ease 0s;height:calc(var(--item-height) * var(--item-count));padding-bottom:calc(var(--item-height) * var(--ul-pad));padding-top:calc(var(--item-height) * var(--ul-pad))}ax-picker>.ax-content .ax-picker-col>.ax-content>ul li{height:calc(var(--item-height));scroll-snap-align:center;display:flex;justify-content:center;align-items:center;font-size:1rem;-webkit-user-select:none;user-select:none;transition:all .2s}ax-picker>.ax-content .ax-picker-col>.ax-content>ul li:hover:not(.ax-state-disabled,.ax-state-readonly,.ax-state-active){color:rgba(var(--ax-color-primary-500))}ax-picker>.ax-content .ax-picker-col>.ax-content>ul li.ax-state-active{font-weight:700;font-size:1.25rem}ax-picker>.ax-content .ax-picker-col:not(:last-child){border-inline-end:1px solid;border-color:rgba(var(--ax-color-border-default))}\n"] }]
215
+ }], propDecorators: { _columns: [{
216
+ type: ContentChildren,
217
+ args: [AXPickerColumnDirective, { emitDistinctChangesOnly: true }]
218
+ }] } });
219
+
220
+ const COMPONENT = [AXPickerComponent, AXPickerColumnDirective];
221
+ const MODULES = [CommonModule];
222
+ class AXPickerModule {
223
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXPickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
224
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.9", ngImport: i0, type: AXPickerModule, declarations: [AXPickerComponent, AXPickerColumnDirective], imports: [CommonModule], exports: [AXPickerComponent, AXPickerColumnDirective] }); }
225
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXPickerModule, imports: [MODULES] }); }
226
+ }
227
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXPickerModule, decorators: [{
228
+ type: NgModule,
229
+ args: [{
230
+ declarations: [...COMPONENT],
231
+ imports: [...MODULES],
232
+ exports: [...COMPONENT],
233
+ providers: [],
234
+ }]
235
+ }] });
236
+
237
+ /**
238
+ * Generated bundle index. Do not edit.
239
+ */
240
+
241
+ export { AXPickerColumnDirective, AXPickerComponent, AXPickerModule };
242
+ //# sourceMappingURL=acorex-components-picker.mjs.map