@acorex/components 7.3.2 → 7.4.3

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 +1 -10
  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 +20 -4
  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 +255 -151
  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 +36 -18
  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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-components-picker.mjs","sources":["../../../../libs/components/picker/src/lib/picker-column.directive.ts","../../../../libs/components/picker/src/lib/picker.component.ts","../../../../libs/components/picker/src/lib/picker.component.html","../../../../libs/components/picker/src/lib/picker.module.ts","../../../../libs/components/picker/src/acorex-components-picker.ts"],"sourcesContent":["import { MXValueComponent } from '@acorex/components/common';\nimport { Directive, EventEmitter, Input, Output, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Directive({\n selector: 'ax-picker-column',\n inputs: [\n 'disabled',\n 'readonly',\n 'readonlyChange',\n 'disabledChange'\n ],\n outputs: [\n 'onValueChanged'\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXPickerColumnDirective),\n multi: true\n }\n ],\n})\nexport class AXPickerColumnDirective extends MXValueComponent {\n\n @Input()\n valueField = 'id';\n\n @Input()\n textField = 'text';\n\n @Input()\n public title: string;\n @Input()\n public step = 1;\n\n\n @Output()\n itemsChange: EventEmitter<unknown[]> = new EventEmitter<unknown[]>();\n\n private _items: unknown[];\n @Input()\n public get items(): unknown[] {\n return this._items;\n }\n public set items(v: unknown[]) {\n this._items = v;\n this.itemsChange.emit(v);\n }\n\n override internalSetValue(v) {\n if (v == null)\n return v;\n else if (typeof v == 'object') {\n return this.items.find(c => c[this.valueField] == v[this.valueField])\n }\n else {\n return this.items.find(c => c[this.valueField] == v)\n }\n }\n}","import { Component, ViewEncapsulation, ChangeDetectionStrategy, QueryList, ContentChildren, AfterViewInit, OnDestroy, inject, NgZone, AfterContentInit } from '@angular/core';\nimport { MXBaseComponent } from '@acorex/components/common';\nimport { AXPickerColumnDirective } from './picker-column.directive';\nimport { AXDrawingUtil, AXUnsubscriber } from '@acorex/core/utils';\nimport { startWith } from 'rxjs';\n\n@Component({\n selector: 'ax-picker',\n templateUrl: './picker.component.html',\n styleUrls: ['./picker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [AXUnsubscriber]\n})\nexport class AXPickerComponent extends MXBaseComponent implements AfterContentInit, OnDestroy {\n\n @ContentChildren(AXPickerColumnDirective, { emitDistinctChangesOnly: true })\n protected _columns: QueryList<AXPickerColumnDirective> = {} as QueryList<AXPickerColumnDirective>;\n\n private _itemHeight = this._calcItemheight();\n private _htmlColumns: HTMLDivElement[];\n private _dragging = false;\n private _previousY: number;\n private _currentList: HTMLDivElement;\n\n protected _unsubscriber: AXUnsubscriber = inject(AXUnsubscriber);\n protected _zone: NgZone = inject(NgZone);\n\n\n ngAfterContentInit() {\n this._itemHeight = this._calcItemheight();\n this._columns.changes\n .pipe(this._unsubscriber.takeUntilDestroy)\n .pipe(startWith(undefined))\n .subscribe(c => {\n this.cdr.detectChanges();\n this._bindEvents();\n });\n }\n\n ngOnDestroy() {\n this._removeEvents();\n }\n\n private _calcItemheight(): number {\n const rem = window.getComputedStyle(document.documentElement, null).getPropertyValue('--ax-size-default');\n return AXDrawingUtil.convertRemToPixels(Number(rem?.replace('rem', '') ?? 0));\n }\n\n private _bindEvents(): void {\n this._removeEvents();\n //\n this._htmlColumns = Array.from(this.getHostElement().querySelectorAll<HTMLDivElement>(\".ax-picker-col .ax-content\"));\n this._columns.forEach(c => {\n c.onValueChanged\n .pipe(this._unsubscriber.takeUntilDestroy)\n .subscribe(() => {\n this._detectSelectedItemsByValue();\n });\n });\n\n this._htmlColumns.forEach((col, index) => {\n col['column'] = this._columns.get(index);\n col.addEventListener(\"wheel\", this._handleMouseWeel.bind(this), { passive: false });\n //\n col.addEventListener(\"touchstart\", this._handleTouchStart.bind(this), { passive: false });\n //col.addEventListener(\"mousedown\", this._handleTouchStart.bind(this), { passive: false });\n //\n col.addEventListener('touchmove', this._handleTouchMove.bind(this), { passive: false })\n //col.addEventListener('mousemove', this._handleTouchMove.bind(this), { passive: false })\n //\n col.addEventListener('touchend', this._handleTouchEnd.bind(this), { passive: false })\n //col.addEventListener('mouseup', this._handleTouchMove.bind(this), { passive: false })\n });\n }\n\n private _removeEvents(): void {\n this._htmlColumns?.forEach((col) => {\n col.removeEventListener(\"wheel\", this._handleMouseWeel.bind(this));\n //\n col.removeEventListener(\"touchstart\", this._handleTouchStart.bind(this));\n //col.removeEventListener(\"mousedown\", this._handleTouchStart.bind(this));\n col.removeEventListener('touchmove', this._handleTouchMove.bind(this));\n //col.removeEventListener('mousemove', this._handleTouchMove.bind(this));\n //\n col.removeEventListener('touchend', this._handleTouchEnd.bind(this));\n //col.removeEventListener('mouseup', this._handleTouchEnd.bind(this));\n });\n }\n\n _handleTouchStart(e: MouseEvent | TouchEvent) {\n e.preventDefault();\n e.stopPropagation();\n this._currentList = e.currentTarget as HTMLDivElement;\n this._previousY = e instanceof TouchEvent ? e.touches[0].clientY : e.clientY;\n }\n\n private _handleTouchMove(e: MouseEvent | TouchEvent): void {\n //console.log(\"touchmove\");\n this._dragging = true;\n e.preventDefault();\n e.stopPropagation();\n this._zone.runOutsideAngular(() => {\n if (this._currentList && this._dragging) {\n const clientY = e instanceof TouchEvent ? e.touches[0].clientY : e.clientY;\n const delta = clientY - this._previousY;\n this._previousY = clientY;\n //console.log(delta);\n if (Math.abs(delta) > 1)\n this._moveByDelta(this._currentList, -delta);\n }\n });\n }\n\n private _handleTouchEnd(e: MouseEvent | TouchEvent): void {\n // simulate click\n const targetelement = (e.target as HTMLElement);\n if (!this._dragging && targetelement.tagName == \"LI\") {\n targetelement.click();\n }\n this._dragging = false;\n }\n\n private _handleMouseWeel(e: WheelEvent): void {\n e.preventDefault();\n e.stopPropagation();\n this._moveByDelta(e.currentTarget as HTMLDivElement, e.deltaY);\n }\n\n private _moveByDelta(col: HTMLDivElement, deltaY: number) {\n const column = col['column'] as AXPickerColumnDirective;\n if (column.readonly || column.disabled)\n return;\n let index = column.items.indexOf(column.value);\n console.log(deltaY)\n index = (deltaY < 0) ? (index - column.step) : (index + column.step);\n if (index < 0)\n index = 0;\n if (index >= column.items.length)\n index = column.items.length - 1;\n column.commitValue(column.items[index], true);\n }\n\n protected _handleItemClick(column: AXPickerColumnDirective, item: any) {\n if (column.readonly || column.disabled)\n return;\n column.commitValue(item, true);\n }\n\n private _detectSelectedItemsByValue(): void {\n this._zone.runOutsideAngular(() => {\n this._htmlColumns.forEach(col => {\n const column = col['column'] as AXPickerColumnDirective;\n const index = column.items.indexOf(column.value);\n col.querySelector(\"ul\").style.transform = `translateY(${-index * this._itemHeight}px)`\n this.cdr.markForCheck();\n });\n });\n }\n\n public refresh() {\n this._detectSelectedItemsByValue();\n }\n}\n","<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>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXPickerComponent } from './picker.component';\nimport { AXPickerColumnDirective } from './picker-column.directive';\n\nconst COMPONENT = [AXPickerComponent, AXPickerColumnDirective];\nconst MODULES = [CommonModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXPickerModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,121 +1,25 @@
1
- import { MXInteractiveComponent, MXBaseComponent, AXFocusableComponent } from '@acorex/components/common';
2
- import * as i0 from '@angular/core';
3
- import { EventEmitter, Injectable, inject, ElementRef, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, ViewChild, Output, NgModule } from '@angular/core';
4
- import { Overlay } from '@angular/cdk/overlay';
5
- import { TemplatePortal } from '@angular/cdk/portal';
6
- import { some, includes } from 'lodash-es';
7
- import { fromEvent, throttleTime } from 'rxjs';
1
+ import { MXBaseComponent, convertToPlacement, AXFocusableComponent } from '@acorex/components/common';
8
2
  import { AXPlatform } from '@acorex/core/platform';
9
- import { AXDrawingUtil } from '@acorex/core/utils';
3
+ import { Overlay } from '@angular/cdk/overlay';
4
+ import { TemplatePortal, ComponentPortal } from '@angular/cdk/portal';
5
+ import * as i0 from '@angular/core';
6
+ import { inject, EventEmitter, ElementRef, TemplateRef, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, ViewChild, Output, NgModule } from '@angular/core';
7
+ import { fromEvent, delay } from 'rxjs';
10
8
  import { CommonModule } from '@angular/common';
11
9
 
12
- class MXDropDownComponent extends MXInteractiveComponent {
13
- constructor() {
14
- super(...arguments);
15
- this.onOpened = new EventEmitter();
16
- this.onClosed = new EventEmitter();
17
- this.popOverPositions = [];
18
- }
19
- initPopOverPositions() {
20
- const offset = Number(getComputedStyle(document.documentElement).getPropertyValue('--ax-base-size').replace('px', ''));
21
- const list = [
22
- {
23
- originX: 'start',
24
- originY: 'bottom',
25
- overlayX: 'start',
26
- overlayY: 'top',
27
- offsetY: offset,
28
- },
29
- {
30
- originX: 'start',
31
- originY: 'top',
32
- overlayX: 'start',
33
- overlayY: 'bottom',
34
- offsetY: -offset,
35
- },
36
- {
37
- originX: 'end',
38
- originY: 'bottom',
39
- overlayX: 'end',
40
- overlayY: 'top',
41
- offsetY: offset,
42
- },
43
- {
44
- originX: 'end',
45
- originY: 'top',
46
- overlayX: 'end',
47
- overlayY: 'bottom',
48
- offsetY: -offset,
49
- },
50
- ];
51
- this.popOverPositions.push(...list);
52
- }
53
- toggle() {
54
- if (this.disabled !== true) {
55
- this.popover.toggle();
56
- }
57
- }
58
- close() {
59
- if (!this.isOpen || this.disabled) {
60
- return;
61
- }
62
- this.popover.close();
63
- this?.focus();
64
- }
65
- open() {
66
- if (this.isOpen || this.disabled) {
67
- return;
68
- }
69
- this.popover.open();
70
- this.popover.focus();
71
- }
72
- get isOpen() {
73
- return this.popover?.isOpen;
74
- }
75
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: MXDropDownComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
76
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: MXDropDownComponent }); }
77
- }
78
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: MXDropDownComponent, decorators: [{
79
- type: Injectable
80
- }] });
81
-
82
10
  class AXPopoverComponent extends MXBaseComponent {
83
11
  constructor() {
84
12
  super(...arguments);
85
13
  this._platform = inject(AXPlatform);
86
14
  this._overlay = inject(Overlay);
87
- this.offset = Number(getComputedStyle(document.documentElement).getPropertyValue('--ax-base-size').replace('px', ''));
88
- this.position = [
89
- {
90
- originX: 'start',
91
- originY: 'bottom',
92
- overlayX: 'start',
93
- overlayY: 'top',
94
- offsetY: this.offset,
95
- },
96
- {
97
- originX: 'start',
98
- originY: 'top',
99
- overlayX: 'start',
100
- overlayY: 'bottom',
101
- offsetY: -this.offset,
102
- },
103
- {
104
- originX: 'end',
105
- originY: 'bottom',
106
- overlayX: 'end',
107
- overlayY: 'top',
108
- offsetY: this.offset,
109
- },
110
- {
111
- originX: 'end',
112
- originY: 'top',
113
- overlayX: 'end',
114
- overlayY: 'bottom',
115
- offsetY: -this.offset,
116
- },
117
- ];
118
- this._subs = [];
15
+ this._isMouseOverButton = false;
16
+ this._isMouseOverTooltip = false;
17
+ this._targetEvents = {};
18
+ this._overlayEvents = {};
19
+ //
20
+ this._defautPlacements = convertToPlacement('bottom-start');
21
+ this._placements = [...this._defautPlacements];
22
+ this._placement = this._placements;
119
23
  //
120
24
  this._openOn = 'toggle';
121
25
  //
@@ -124,34 +28,75 @@ class AXPopoverComponent extends MXBaseComponent {
124
28
  this.hasBackdrop = false;
125
29
  this.adaptivityEnabled = false;
126
30
  //
127
- this._mousePos = { x: 0, y: 0 };
128
- this._isScrollAttached = false;
129
- //
130
31
  this.onOpened = new EventEmitter();
131
32
  this.onClosed = new EventEmitter();
132
33
  }
34
+ get offsetX() {
35
+ return this._offsetX;
36
+ }
37
+ set offsetX(v) {
38
+ this.setOption({
39
+ name: 'offsetX',
40
+ value: v,
41
+ afterCallback: () => {
42
+ this.updateOffset();
43
+ },
44
+ });
45
+ }
46
+ get offsetY() {
47
+ return this._offsetY;
48
+ }
49
+ set offsetY(v) {
50
+ this.setOption({
51
+ name: 'offsetY',
52
+ value: v,
53
+ afterCallback: () => {
54
+ this.updateOffset();
55
+ },
56
+ });
57
+ }
133
58
  get target() {
134
59
  return this._target;
135
60
  }
136
61
  set target(v) {
62
+ this.removeTargetEvents();
137
63
  if (v instanceof HTMLElement)
138
64
  this._target = v;
139
65
  else if (v instanceof ElementRef)
140
66
  this._target = v.nativeElement;
141
67
  else if (typeof v.getHostElement == 'function')
142
68
  this._target = v.getHostElement();
69
+ //
70
+ this.bindTargetEvents();
71
+ }
72
+ get placement() {
73
+ return this._placement;
74
+ }
75
+ set placement(v) {
76
+ this.setOption({
77
+ name: 'placement',
78
+ value: v,
79
+ afterCallback: (o, n) => {
80
+ const converted = convertToPlacement(n);
81
+ this._placements = converted.length ? converted : this._defautPlacements;
82
+ this.updateOffset();
83
+ this.updatePositionStrategy();
84
+ },
85
+ });
86
+ }
87
+ get componentRef() {
88
+ return this._componentRef;
143
89
  }
144
90
  get openOn() {
145
91
  return this._openOn;
146
92
  }
147
93
  set openOn(v) {
148
- debugger;
149
94
  this.setOption({
150
95
  name: 'openOn',
151
96
  value: v,
152
97
  afterCallback: () => {
153
- this._config();
154
- }
98
+ this.bindTargetEvents();
99
+ },
155
100
  });
156
101
  }
157
102
  get closeOn() {
@@ -162,8 +107,8 @@ class AXPopoverComponent extends MXBaseComponent {
162
107
  name: 'closeOn',
163
108
  value: v,
164
109
  afterCallback: () => {
165
- this._config();
166
- }
110
+ this.bindTargetEvents();
111
+ },
167
112
  });
168
113
  }
169
114
  _emitOnOpenedEvent() {
@@ -179,49 +124,90 @@ class AXPopoverComponent extends MXBaseComponent {
179
124
  });
180
125
  }
181
126
  //
182
- ngAfterViewInit() {
183
- this._config();
127
+ _handleMouseEnter(e) {
128
+ this._isMouseOverTooltip = true;
129
+ }
130
+ _handleMouseLeave(e) {
131
+ this._isMouseOverTooltip = false;
132
+ setTimeout(() => {
133
+ if (!this._isMouseOverButton && this.closeOn == 'leave') {
134
+ this.close();
135
+ }
136
+ }, 250);
137
+ }
138
+ removeTargetEvents() {
139
+ Object.entries(this._targetEvents).forEach((e) => {
140
+ e[1].unsubscribe();
141
+ });
142
+ }
143
+ bindTargetEvents() {
144
+ this.removeTargetEvents();
145
+ if (!this._target)
146
+ return;
147
+ const targetMouseEnter$ = fromEvent(this._target, 'mouseenter');
148
+ const targetMouseLeave$ = fromEvent(this._target, 'mouseleave');
149
+ if (this.openOn == 'hover') {
150
+ this._targetEvents.mouseenter = targetMouseEnter$.pipe(delay(200)).subscribe(() => {
151
+ this._isMouseOverButton = true;
152
+ this.open();
153
+ });
154
+ }
155
+ if (this.closeOn == 'leave') {
156
+ this._targetEvents.mouseleave = targetMouseLeave$.pipe(delay(200)).subscribe(() => {
157
+ this._isMouseOverButton = false;
158
+ if (!this._isMouseOverTooltip) {
159
+ this.close();
160
+ }
161
+ });
162
+ }
163
+ if (this.openOn === 'click' || this.openOn === 'toggle') {
164
+ const click$ = fromEvent(this._target, 'click');
165
+ this._targetEvents.click = click$.subscribe((e) => {
166
+ this.openOn == 'toggle' ? this.toggle() : this.open();
167
+ });
168
+ }
184
169
  }
185
170
  //
186
- _config() {
187
- this.dispose();
188
- if (this._target) {
189
- if (this.openOn === 'mouseover') {
190
- const mouseEnter$ = fromEvent(this._target, 'mouseover');
191
- this._addSub(mouseEnter$.subscribe(e => {
192
- const point = { x: e.clientX, y: e.clientY };
193
- if (AXDrawingUtil.isInElementBound(point, this._target))
194
- this.open();
195
- }));
171
+ bindOverlayEvents() {
172
+ this.removeOverlayEvents();
173
+ this._overlayEvents.attach = this._overlayRef.attachments().subscribe(() => {
174
+ if (this.openOn == 'hover') {
175
+ this._overlayRef.overlayElement.addEventListener('mouseenter', this._handleMouseEnter.bind(this));
196
176
  }
197
- if (this.closeOn === 'mouseout') {
198
- const mouseMove$ = fromEvent(document, 'mousemove');
199
- this._addSub(mouseMove$.pipe(throttleTime(50)).subscribe(e => {
200
- debugger;
201
- this._mousePos.x = e.clientX;
202
- this._mousePos.y = e.clientY;
203
- if (this.isOpen) {
204
- setTimeout(() => {
205
- if (some([this._target, this._overlayRef.overlayElement], el => includes(document.elementsFromPoint(this._mousePos.x, this._mousePos.y), el)))
206
- this.close();
207
- }, 100);
208
- }
209
- }));
177
+ if (this.closeOn == 'leave') {
178
+ this._overlayRef.overlayElement.addEventListener('mouseleave', this._handleMouseLeave.bind(this));
210
179
  }
211
180
  //
212
- if (this.openOn === 'click' || this.openOn === 'toggle') {
213
- const click$ = fromEvent(this._target, 'click');
214
- this._addSub(click$.subscribe(e => {
215
- this.openOn == 'toggle' ? this.toggle() : this.open();
216
- }));
217
- }
218
- }
181
+ this._overlayEvents.outside = this._overlayRef._outsidePointerEvents.subscribe((e) => {
182
+ const el = e.target;
183
+ if (this.closeOn == 'clickout' &&
184
+ this.isOpen &&
185
+ !this._target.contains(el) &&
186
+ !this._overlayRef?.overlayElement?.contains(el)) {
187
+ this.close();
188
+ }
189
+ });
190
+ //
191
+ this._overlayEvents.scroll = this._platform.scroll.subscribe((c) => {
192
+ const el = c.nativeEvent.target;
193
+ if (this.isOpen &&
194
+ el?.closest &&
195
+ !el.closest('.ax-overlay-pane') &&
196
+ !this._target.contains(el) &&
197
+ !this._overlayRef?.overlayElement?.contains(el)) {
198
+ this.close();
199
+ }
200
+ });
201
+ });
219
202
  }
220
- //
221
- ngOnDestroy() {
222
- this.dispose();
223
- this._overlayRef?.dispose();
203
+ removeOverlayEvents() {
204
+ this._overlayRef?.overlayElement.removeEventListener('mouseenter', this._handleMouseEnter.bind(this));
205
+ this._overlayRef?.overlayElement.addEventListener('mouseleave', this._handleMouseLeave.bind(this));
206
+ Object.entries(this._overlayEvents).forEach((e) => {
207
+ e[1].unsubscribe();
208
+ });
224
209
  }
210
+ //
225
211
  toggle() {
226
212
  this.isOpen ? this.close() : this.open();
227
213
  }
@@ -231,108 +217,108 @@ class AXPopoverComponent extends MXBaseComponent {
231
217
  return;
232
218
  }
233
219
  this._overlayRef?.detach();
220
+ this.restoreFocus();
234
221
  this._emitOnClosedEvent();
235
- //
236
- if (this._lastActiveElement?.focus) {
237
- this._lastActiveElement.focus();
238
- }
239
- }
240
- dispose() {
241
- this._overlayRef?.detach();
242
- //this._overlayRef?.dispose();
243
- this._subs.forEach(s => {
244
- s?.unsubscribe();
245
- });
246
222
  }
247
223
  //
248
224
  open() {
249
225
  if (this.isOpen) {
250
226
  return;
251
227
  }
252
- this._lastActiveElement = document.activeElement;
253
- this._ensureOverlayCreated();
254
- this._overlayRef?.attach(this._templatePortal);
228
+ this.saveFocus();
229
+ this.openOverlayInternal();
255
230
  this._emitOnOpenedEvent();
256
231
  }
257
- _ensureOverlayCreated() {
232
+ saveFocus() {
233
+ this._lastActiveElement = document.activeElement;
234
+ }
235
+ restoreFocus() {
236
+ if (this._lastActiveElement?.focus) {
237
+ this._lastActiveElement.focus();
238
+ }
239
+ }
240
+ openOverlayInternal() {
258
241
  const targetRef = this._target;
259
242
  if (!targetRef)
260
243
  return;
261
- if (!this._overlayRef) {
262
- if (this._platform.is('SM') && this.adaptivityEnabled) {
263
- this._openAsActionsheet();
264
- }
265
- else {
266
- this._openAsPopover(targetRef);
267
- }
268
- if (this.closeOn == 'clickout') {
269
- debugger;
270
- this._addSub(this._overlayRef._outsidePointerEvents.subscribe(c => {
271
- debugger;
272
- const target = c.target;
273
- const comElem = targetRef;
274
- if (!comElem.contains(target)) {
275
- this.close();
276
- }
277
- }));
278
- }
279
- this._addSub(this._overlayRef.attachments().subscribe(() => {
280
- if (!this._isScrollAttached) {
281
- this._addSub(this._platform.scroll.subscribe(c => {
282
- try {
283
- if (!c.nativeEvent.target?.closest('.ax-overlay-pane'))
284
- this.close();
285
- }
286
- catch (error) { }
287
- }));
288
- this._isScrollAttached = true;
289
- }
290
- }));
244
+ //if (!this._overlayRef) {
245
+ if (this._platform.is('SM') && this.adaptivityEnabled) {
246
+ this._overlayRef = this._overlay.create({
247
+ positionStrategy: this._overlay.position().global().bottom().centerHorizontally(),
248
+ disposeOnNavigation: true,
249
+ scrollStrategy: this._overlay.scrollStrategies.block(),
250
+ panelClass: ['ax-actionsheet-base', 'ax-animate-slideInUp', 'ax-animate-faster'],
251
+ hasBackdrop: true,
252
+ width: '100%',
253
+ });
254
+ }
255
+ else {
256
+ this._overlayRef = this._overlay.create({
257
+ positionStrategy: this._overlay
258
+ .position()
259
+ .flexibleConnectedTo(targetRef)
260
+ .withPositions(this._placements)
261
+ .withPush(false),
262
+ scrollStrategy: this._overlay.scrollStrategies.close(),
263
+ disposeOnNavigation: true,
264
+ panelClass: ['ax-animate-fadeIn', 'ax-animate-faster'],
265
+ maxHeight: 'unset',
266
+ hasBackdrop: this.hasBackdrop,
267
+ backdropClass: [this.backdropClass || 'cdk-overlay-transparent-backdrop'],
268
+ });
269
+ }
270
+ //
271
+ this.bindOverlayEvents();
272
+ //}
273
+ //
274
+ if (this.content instanceof TemplateRef) {
275
+ this._portal = new TemplatePortal(this.content, this.getViewContainer(), {
276
+ $implicit: this.context,
277
+ ref: this,
278
+ });
279
+ this._overlayRef?.attach(this._portal);
291
280
  }
292
- if (!this._templatePortal) {
293
- this._templatePortal = new TemplatePortal(this._baseTemplate, this.getViewContainer());
281
+ else if (typeof this.content === 'function') {
282
+ this._portal = new ComponentPortal(this.content);
283
+ this._componentRef = this._overlayRef?.attach(this._portal);
284
+ Object.assign(this._componentRef.instance, this.context);
294
285
  }
286
+ else {
287
+ this._portal = new TemplatePortal(this._baseTemplate, this.getViewContainer(), {
288
+ $implicit: this.context,
289
+ ref: this,
290
+ });
291
+ this._overlayRef?.attach(this._portal);
292
+ }
293
+ }
294
+ get isOpen() {
295
+ return this._overlayRef ? this._overlayRef.hasAttached() : false;
295
296
  }
296
- _openAsPopover(targetRef) {
297
- this._overlayRef = this._overlay.create({
298
- positionStrategy: this._overlay
297
+ updatePositionStrategy() {
298
+ const targetRef = this._target;
299
+ if (!targetRef)
300
+ return;
301
+ let strategy;
302
+ if (this._platform.is('SM') && this.adaptivityEnabled) {
303
+ strategy = this._overlay.position().global().bottom().centerHorizontally();
304
+ }
305
+ else {
306
+ strategy = this._overlay
299
307
  .position()
300
308
  .flexibleConnectedTo(targetRef)
301
- .withPositions(Array.isArray(this.position) ? this.position : [this.position])
302
- .withPush(false),
303
- scrollStrategy: this._overlay.scrollStrategies.reposition(),
304
- disposeOnNavigation: true,
305
- panelClass: ['ax-animate-fadeIn', 'ax-animate-faster'],
306
- maxHeight: 'unset',
307
- hasBackdrop: this.hasBackdrop,
308
- backdropClass: [this.backdropClass || 'cdk-overlay-transparent-backdrop'],
309
- });
309
+ .withPositions(this._placements)
310
+ .withPush(false);
311
+ }
312
+ this._overlayRef?.updatePositionStrategy(strategy);
310
313
  }
311
- _openAsActionsheet() {
312
- this._overlayRef = this._overlay.create({
313
- positionStrategy: this._overlay
314
- .position()
315
- .flexibleConnectedTo(document.body)
316
- .withPositions([
317
- {
318
- originX: 'center',
319
- originY: 'bottom',
320
- overlayX: 'center',
321
- overlayY: 'bottom',
322
- },
323
- ]),
324
- disposeOnNavigation: true,
325
- panelClass: ['ax-animate-slideInUp', 'ax-animate-faster'],
326
- hasBackdrop: true,
327
- width: '100%',
314
+ updateOffset() {
315
+ this._placements?.forEach((p) => {
316
+ if (this.offsetY != null)
317
+ p.offsetY = this.offsetY;
318
+ if (this.offsetX != null)
319
+ p.offsetX = this.offsetX;
328
320
  });
329
321
  }
330
- get isOpen() {
331
- return this._overlayRef ? this._overlayRef.hasAttached() : false;
332
- }
333
- _addSub(sub) {
334
- this._subs.push(sub);
335
- }
336
322
  updatePosition() {
337
323
  this._overlayRef?.updatePosition();
338
324
  this.focus();
@@ -340,23 +326,32 @@ class AXPopoverComponent extends MXBaseComponent {
340
326
  focus() {
341
327
  //TODO: need this??
342
328
  }
343
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXPopoverComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
344
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.8", type: AXPopoverComponent, selector: "ax-popover", inputs: { target: "target", position: "position", openOn: "openOn", closeOn: "closeOn", hasBackdrop: "hasBackdrop", backdropClass: "backdropClass", adaptivityEnabled: "adaptivityEnabled" }, outputs: { onOpened: "onOpened", onClosed: "onClosed" }, providers: [
345
- { provide: AXFocusableComponent, useExisting: AXPopoverComponent }
346
- ], viewQueries: [{ propertyName: "_baseTemplate", first: true, predicate: ["baseTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #baseTemplate>\n <ng-content></ng-content>\n</ng-template>", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
329
+ //
330
+ ngOnDestroy() {
331
+ this.removeTargetEvents();
332
+ this.removeOverlayEvents();
333
+ this._overlayRef?.detach();
334
+ this._overlayRef?.dispose();
335
+ }
336
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXPopoverComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
337
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.9", type: AXPopoverComponent, selector: "ax-popover", inputs: { offsetX: "offsetX", offsetY: "offsetY", target: "target", placement: "placement", content: "content", openOn: "openOn", closeOn: "closeOn", hasBackdrop: "hasBackdrop", backdropClass: "backdropClass", adaptivityEnabled: "adaptivityEnabled" }, outputs: { onOpened: "onOpened", onClosed: "onClosed" }, providers: [{ provide: AXFocusableComponent, useExisting: AXPopoverComponent }], viewQueries: [{ propertyName: "_baseTemplate", first: true, predicate: ["baseTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #baseTemplate>\n <ng-content></ng-content>\n</ng-template>", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
347
338
  }
348
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXPopoverComponent, decorators: [{
339
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXPopoverComponent, decorators: [{
349
340
  type: Component,
350
- args: [{ selector: 'ax-popover', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
351
- { provide: AXFocusableComponent, useExisting: AXPopoverComponent }
352
- ], template: "<ng-template #baseTemplate>\n <ng-content></ng-content>\n</ng-template>" }]
353
- }], propDecorators: { target: [{
341
+ args: [{ selector: 'ax-popover', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXFocusableComponent, useExisting: AXPopoverComponent }], template: "<ng-template #baseTemplate>\n <ng-content></ng-content>\n</ng-template>" }]
342
+ }], propDecorators: { offsetX: [{
354
343
  type: Input
355
- }], position: [{
344
+ }], offsetY: [{
345
+ type: Input
346
+ }], target: [{
347
+ type: Input
348
+ }], placement: [{
356
349
  type: Input
357
350
  }], _baseTemplate: [{
358
351
  type: ViewChild,
359
352
  args: ['baseTemplate']
353
+ }], content: [{
354
+ type: Input
360
355
  }], openOn: [{
361
356
  type: Input
362
357
  }], closeOn: [{
@@ -374,11 +369,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImpor
374
369
  }] } });
375
370
 
376
371
  class AXPopoverModule {
377
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXPopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
378
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.8", ngImport: i0, type: AXPopoverModule, declarations: [AXPopoverComponent], imports: [CommonModule], exports: [AXPopoverComponent] }); }
379
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXPopoverModule, imports: [CommonModule] }); }
372
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXPopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
373
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.9", ngImport: i0, type: AXPopoverModule, declarations: [AXPopoverComponent], imports: [CommonModule], exports: [AXPopoverComponent] }); }
374
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXPopoverModule, imports: [CommonModule] }); }
380
375
  }
381
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXPopoverModule, decorators: [{
376
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXPopoverModule, decorators: [{
382
377
  type: NgModule,
383
378
  args: [{
384
379
  declarations: [AXPopoverComponent],
@@ -392,5 +387,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImpor
392
387
  * Generated bundle index. Do not edit.
393
388
  */
394
389
 
395
- export { AXPopoverComponent, AXPopoverModule, MXDropDownComponent };
390
+ export { AXPopoverComponent, AXPopoverModule };
396
391
  //# sourceMappingURL=acorex-components-popover.mjs.map