@acorex/components 4.0.24 → 5.0.4

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 (339) hide show
  1. package/README.md +24 -24
  2. package/acorex-components.d.ts +5 -4
  3. package/bundles/acorex-components.umd.js +6858 -6233
  4. package/bundles/acorex-components.umd.js.map +1 -1
  5. package/esm2015/acorex-components.js +5 -5
  6. package/esm2015/lib/alert/alert-button.component.js +52 -42
  7. package/esm2015/lib/alert/alert-contnet.component.js +21 -16
  8. package/esm2015/lib/alert/alert-footer.component.js +27 -18
  9. package/esm2015/lib/alert/alert-suffix.component.js +27 -18
  10. package/esm2015/lib/alert/alert-title.component.js +23 -16
  11. package/esm2015/lib/alert/alert.component.js +131 -87
  12. package/esm2015/lib/alert/alert.module.js +43 -28
  13. package/esm2015/lib/alert/index.js +8 -8
  14. package/esm2015/lib/avatar/avatar.component.js +55 -0
  15. package/esm2015/lib/avatar/avatar.module.js +21 -0
  16. package/esm2015/lib/avatar/index.js +3 -0
  17. package/esm2015/lib/base/common.module.js +18 -13
  18. package/esm2015/lib/base/custom-cdk-overlay.service.js +47 -56
  19. package/esm2015/lib/base/drawing.class.js +11 -11
  20. package/esm2015/lib/base/events.class.js +53 -19
  21. package/esm2015/lib/base/index.js +7 -7
  22. package/esm2015/lib/base/mixin/base-components.class.js +83 -72
  23. package/esm2015/lib/base/mixin/button-mixin.class.js +129 -36
  24. package/esm2015/lib/base/mixin/clickable-mixin.class.js +24 -17
  25. package/esm2015/lib/base/mixin/constratctor.js +2 -2
  26. package/esm2015/lib/base/mixin/datalist-component.class.js +97 -97
  27. package/esm2015/lib/base/mixin/dropdown-mixin.class.js +36 -36
  28. package/esm2015/lib/base/mixin/index.js +3 -3
  29. package/esm2015/lib/base/mixin/interactive-mixin.class.js +72 -47
  30. package/esm2015/lib/base/mixin/loading-mixin.class.js +18 -15
  31. package/esm2015/lib/base/mixin/mixin.class.js +23 -24
  32. package/esm2015/lib/base/mixin/selection-component.class.js +158 -158
  33. package/esm2015/lib/base/mixin/sizable-mixin.class.js +18 -19
  34. package/esm2015/lib/base/mixin/textbox-mixin.class.js +38 -19
  35. package/esm2015/lib/base/mixin/value-mixin.class.js +190 -172
  36. package/esm2015/lib/base/overlay.service.js +91 -96
  37. package/esm2015/lib/base/responsive.directive.js +34 -33
  38. package/esm2015/lib/base/styles.class.js +4 -4
  39. package/esm2015/lib/button/button-group.component.js +131 -71
  40. package/esm2015/lib/button/button-item.class.js +2 -2
  41. package/esm2015/lib/button/button-item.component.js +81 -35
  42. package/esm2015/lib/button/button.component.js +51 -34
  43. package/esm2015/lib/button/button.module.js +37 -24
  44. package/esm2015/lib/button/dropdown-button.component.js +200 -108
  45. package/esm2015/lib/button/index.js +7 -7
  46. package/esm2015/lib/calendar/calendar.component.js +59 -69
  47. package/esm2015/lib/calendar/calendar.module.js +24 -19
  48. package/esm2015/lib/calendar/index.js +3 -3
  49. package/esm2015/lib/carousel/carousel-arrows.component.js +53 -45
  50. package/esm2015/lib/carousel/carousel-item.component.js +21 -21
  51. package/esm2015/lib/carousel/carousel-pager.component.js +74 -71
  52. package/esm2015/lib/carousel/carousel-splidejs.class.js +82 -83
  53. package/esm2015/lib/carousel/carousel.class.js +10 -7
  54. package/esm2015/lib/carousel/carousel.component.js +246 -226
  55. package/esm2015/lib/carousel/carousel.module.js +24 -19
  56. package/esm2015/lib/carousel/index.js +7 -7
  57. package/esm2015/lib/checkbox/checkbox.component.js +40 -41
  58. package/esm2015/lib/checkbox/checkbox.module.js +20 -15
  59. package/esm2015/lib/checkbox/index.js +3 -3
  60. package/esm2015/lib/datalist/datalist.component.js +81 -71
  61. package/esm2015/lib/datalist/datalist.module.js +22 -17
  62. package/esm2015/lib/datalist/index.js +3 -3
  63. package/esm2015/lib/datepicker/datepicker.component.js +64 -62
  64. package/esm2015/lib/datepicker/datepicker.module.js +23 -18
  65. package/esm2015/lib/datepicker/index.js +3 -3
  66. package/esm2015/lib/decorators/decorators.module.js +22 -17
  67. package/esm2015/lib/decorators/index.js +4 -4
  68. package/esm2015/lib/decorators/prefix.component.js +27 -28
  69. package/esm2015/lib/decorators/suffix.component.js +35 -28
  70. package/esm2015/lib/dialog/dialog.class.js +2 -47
  71. package/esm2015/lib/dialog/dialog.component.js +45 -39
  72. package/esm2015/lib/dialog/dialog.module.js +26 -19
  73. package/esm2015/lib/dialog/dialog.service.js +127 -139
  74. package/esm2015/lib/dialog/index.js +5 -5
  75. package/esm2015/lib/drawer/drawer-container.component.js +73 -67
  76. package/esm2015/lib/drawer/drawer-content.component.js +27 -24
  77. package/esm2015/lib/drawer/drawer.component.js +145 -139
  78. package/esm2015/lib/drawer/drawer.module.js +23 -18
  79. package/esm2015/lib/drawer/index.js +5 -5
  80. package/esm2015/lib/dropdown/dropdown-panel.component.js +194 -0
  81. package/esm2015/lib/dropdown/dropdown.component.js +139 -127
  82. package/esm2015/lib/dropdown/dropdown.module.js +24 -15
  83. package/esm2015/lib/dropdown/index.js +4 -3
  84. package/esm2015/lib/form/form-field.component.js +20 -20
  85. package/esm2015/lib/form/form-field.module.js +21 -15
  86. package/esm2015/lib/form/form-hint.component.js +20 -0
  87. package/esm2015/lib/form/form.component.js +51 -51
  88. package/esm2015/lib/form/index.js +5 -4
  89. package/esm2015/lib/icon/icon.component.js +28 -28
  90. package/esm2015/lib/icon/icon.module.js +21 -16
  91. package/esm2015/lib/icon/index.js +3 -3
  92. package/esm2015/lib/input-mask/index.js +3 -3
  93. package/esm2015/lib/input-mask/input-mask.component.js +42 -35
  94. package/esm2015/lib/input-mask/input-mask.module.js +23 -17
  95. package/esm2015/lib/label/index.js +3 -3
  96. package/esm2015/lib/label/label.component.js +20 -20
  97. package/esm2015/lib/label/label.module.js +21 -16
  98. package/esm2015/lib/loading/index.js +6 -5
  99. package/esm2015/lib/loading/loading-spinner.component.js +32 -0
  100. package/esm2015/lib/loading/loading.component.js +54 -23
  101. package/esm2015/lib/loading/loading.directive.js +67 -70
  102. package/esm2015/lib/loading/loading.module.js +35 -18
  103. package/esm2015/lib/loading/loading.service.js +155 -157
  104. package/esm2015/lib/number-box/index.js +3 -3
  105. package/esm2015/lib/number-box/number-box.component.js +289 -242
  106. package/esm2015/lib/number-box/number-box.module.js +32 -24
  107. package/esm2015/lib/page/base-page.class.js +66 -84
  108. package/esm2015/lib/page/index.js +5 -3
  109. package/esm2015/lib/page/page-footer.component.js +32 -0
  110. package/esm2015/lib/page/page.component.js +33 -32
  111. package/esm2015/lib/page/page.module.js +18 -0
  112. package/esm2015/lib/popover/index.js +3 -0
  113. package/esm2015/lib/popover/popover.component.js +119 -0
  114. package/esm2015/lib/popover/popover.module.js +19 -0
  115. package/esm2015/lib/popup/index.js +4 -4
  116. package/esm2015/lib/popup/popup.component.js +97 -143
  117. package/esm2015/lib/popup/popup.module.js +26 -19
  118. package/esm2015/lib/popup/popup.service.js +94 -89
  119. package/esm2015/lib/range-slider/index.js +3 -0
  120. package/esm2015/lib/range-slider/range-slider.component.js +22 -0
  121. package/esm2015/lib/range-slider/range-slider.module.js +21 -0
  122. package/esm2015/lib/selectbox/index.js +3 -3
  123. package/esm2015/lib/selectbox/selectbox.component.js +193 -188
  124. package/esm2015/lib/selectbox/selectbox.module.js +21 -16
  125. package/esm2015/lib/selection-list/index.js +3 -3
  126. package/esm2015/lib/selection-list/selection-list.component.js +46 -46
  127. package/esm2015/lib/selection-list/selection-list.module.js +21 -16
  128. package/esm2015/lib/side-menu/index.js +3 -3
  129. package/esm2015/lib/side-menu/side-menu.component.js +21 -21
  130. package/esm2015/lib/side-menu/side-menu.module.js +21 -16
  131. package/esm2015/lib/switch/index.js +3 -3
  132. package/esm2015/lib/switch/switch.component.js +30 -29
  133. package/esm2015/lib/switch/switch.module.js +21 -16
  134. package/esm2015/lib/tabs/index.js +6 -6
  135. package/esm2015/lib/tabs/tab-strip.component.js +61 -57
  136. package/esm2015/lib/tabs/tab-view.component.js +46 -45
  137. package/esm2015/lib/tabs/tab.component.js +59 -48
  138. package/esm2015/lib/tabs/tabs.class.js +4 -4
  139. package/esm2015/lib/tabs/tabs.module.js +23 -18
  140. package/esm2015/lib/textbox/index.js +3 -3
  141. package/esm2015/lib/textbox/textbox.component.js +62 -46
  142. package/esm2015/lib/textbox/textbox.module.js +43 -24
  143. package/esm2015/lib/time-box/index.js +3 -3
  144. package/esm2015/lib/time-box/time-box.component.js +134 -127
  145. package/esm2015/lib/time-box/time-box.module.js +32 -24
  146. package/esm2015/lib/toast/index.js +5 -5
  147. package/esm2015/lib/toast/toast.class.js +2 -2
  148. package/esm2015/lib/toast/toast.component.js +50 -54
  149. package/esm2015/lib/toast/toast.module.js +22 -17
  150. package/esm2015/lib/toast/toast.service.js +114 -117
  151. package/esm2015/lib/tooltip/index.js +4 -4
  152. package/esm2015/lib/tooltip/tooltip.component.js +45 -37
  153. package/esm2015/lib/tooltip/tooltip.directive.js +86 -81
  154. package/esm2015/lib/tooltip/tooltip.module.js +23 -18
  155. package/esm2015/lib/validation/index.js +3 -3
  156. package/esm2015/lib/validation/validation-rule.widget.js +113 -110
  157. package/esm2015/lib/validation/validation.class.js +2 -2
  158. package/esm2015/lib/validation/validation.module.js +32 -28
  159. package/esm2015/public-api.js +39 -32
  160. package/fesm2015/acorex-components.js +5918 -5285
  161. package/fesm2015/acorex-components.js.map +1 -1
  162. package/lib/alert/alert-button.component.d.ts +13 -10
  163. package/lib/alert/alert-contnet.component.d.ts +5 -2
  164. package/lib/alert/alert-footer.component.d.ts +5 -2
  165. package/lib/alert/alert-suffix.component.d.ts +5 -2
  166. package/lib/alert/alert-title.component.d.ts +5 -2
  167. package/lib/alert/alert.component.d.ts +46 -16
  168. package/lib/alert/alert.module.d.ts +13 -2
  169. package/lib/alert/index.d.ts +7 -7
  170. package/lib/avatar/avatar.component.d.ts +20 -0
  171. package/lib/avatar/avatar.module.d.ts +8 -0
  172. package/lib/avatar/index.d.ts +2 -0
  173. package/lib/base/common.module.d.ts +7 -2
  174. package/lib/base/custom-cdk-overlay.service.d.ts +19 -14
  175. package/lib/base/drawing.class.d.ts +9 -9
  176. package/lib/base/events.class.d.ts +72 -28
  177. package/lib/base/index.d.ts +6 -6
  178. package/lib/base/mixin/base-components.class.d.ts +84 -51
  179. package/lib/base/mixin/button-mixin.class.d.ts +79 -34
  180. package/lib/base/mixin/clickable-mixin.class.d.ts +42 -29
  181. package/lib/base/mixin/constratctor.d.ts +4 -4
  182. package/lib/base/mixin/datalist-component.class.d.ts +54 -45
  183. package/lib/base/mixin/dropdown-mixin.class.d.ts +47 -38
  184. package/lib/base/mixin/index.d.ts +2 -2
  185. package/lib/base/mixin/interactive-mixin.class.d.ts +60 -34
  186. package/lib/base/mixin/loading-mixin.class.d.ts +46 -28
  187. package/lib/base/mixin/mixin.class.d.ts +814 -493
  188. package/lib/base/mixin/selection-component.class.d.ts +55 -46
  189. package/lib/base/mixin/sizable-mixin.class.d.ts +40 -28
  190. package/lib/base/mixin/textbox-mixin.class.d.ts +59 -33
  191. package/lib/base/mixin/value-mixin.class.d.ts +68 -50
  192. package/lib/base/overlay.service.d.ts +31 -28
  193. package/lib/base/responsive.directive.d.ts +10 -7
  194. package/lib/base/styles.class.d.ts +17 -6
  195. package/lib/button/button-group.component.d.ts +36 -19
  196. package/lib/button/button-item.class.d.ts +22 -17
  197. package/lib/button/button-item.component.d.ts +92 -16
  198. package/lib/button/button.component.d.ts +18 -6
  199. package/lib/button/button.module.d.ts +13 -2
  200. package/lib/button/dropdown-button.component.d.ts +234 -27
  201. package/lib/button/index.d.ts +6 -6
  202. package/lib/calendar/calendar.component.d.ts +16 -17
  203. package/lib/calendar/calendar.module.d.ts +11 -2
  204. package/lib/calendar/index.d.ts +2 -2
  205. package/lib/carousel/carousel-arrows.component.d.ts +14 -11
  206. package/lib/carousel/carousel-item.component.d.ts +8 -5
  207. package/lib/carousel/carousel-pager.component.d.ts +22 -19
  208. package/lib/carousel/carousel-splidejs.class.d.ts +18 -18
  209. package/lib/carousel/carousel.class.d.ts +48 -45
  210. package/lib/carousel/carousel.component.d.ts +62 -59
  211. package/lib/carousel/carousel.module.d.ts +11 -2
  212. package/lib/carousel/index.d.ts +6 -6
  213. package/lib/checkbox/checkbox.component.d.ts +12 -9
  214. package/lib/checkbox/checkbox.module.d.ts +9 -2
  215. package/lib/checkbox/index.d.ts +2 -2
  216. package/lib/datalist/datalist.component.d.ts +25 -22
  217. package/lib/datalist/datalist.module.d.ts +9 -2
  218. package/lib/datalist/index.d.ts +2 -2
  219. package/lib/datepicker/datepicker.component.d.ts +18 -15
  220. package/lib/datepicker/datepicker.module.d.ts +10 -2
  221. package/lib/datepicker/index.d.ts +2 -2
  222. package/lib/decorators/decorators.module.d.ts +9 -2
  223. package/lib/decorators/index.d.ts +3 -3
  224. package/lib/decorators/prefix.component.d.ts +8 -5
  225. package/lib/decorators/suffix.component.d.ts +8 -5
  226. package/lib/dialog/dialog.class.d.ts +12 -35
  227. package/lib/dialog/dialog.component.d.ts +15 -12
  228. package/lib/dialog/dialog.module.d.ts +13 -2
  229. package/lib/dialog/dialog.service.d.ts +18 -13
  230. package/lib/dialog/index.d.ts +4 -4
  231. package/lib/drawer/drawer-container.component.d.ts +13 -10
  232. package/lib/drawer/drawer-content.component.d.ts +8 -5
  233. package/lib/drawer/drawer.component.d.ts +30 -27
  234. package/lib/drawer/drawer.module.d.ts +10 -2
  235. package/lib/drawer/index.d.ts +4 -4
  236. package/lib/dropdown/dropdown-panel.component.d.ts +117 -0
  237. package/lib/dropdown/dropdown.component.d.ts +31 -22
  238. package/lib/dropdown/dropdown.module.d.ts +13 -2
  239. package/lib/dropdown/index.d.ts +3 -2
  240. package/lib/form/form-field.component.d.ts +8 -5
  241. package/lib/form/form-field.module.d.ts +10 -2
  242. package/lib/form/form-hint.component.d.ts +8 -0
  243. package/lib/form/form.component.d.ts +13 -10
  244. package/lib/form/index.d.ts +4 -3
  245. package/lib/icon/icon.component.d.ts +10 -7
  246. package/lib/icon/icon.module.d.ts +8 -2
  247. package/lib/icon/index.d.ts +2 -2
  248. package/lib/input-mask/index.d.ts +2 -2
  249. package/lib/input-mask/input-mask.component.d.ts +14 -11
  250. package/lib/input-mask/input-mask.module.d.ts +9 -2
  251. package/lib/label/index.d.ts +2 -2
  252. package/lib/label/label.component.d.ts +8 -5
  253. package/lib/label/label.module.d.ts +8 -2
  254. package/lib/loading/index.d.ts +5 -4
  255. package/lib/loading/loading-spinner.component.d.ts +5 -0
  256. package/lib/loading/loading.component.d.ts +19 -5
  257. package/lib/loading/loading.directive.d.ts +22 -19
  258. package/lib/loading/loading.module.d.ts +13 -2
  259. package/lib/loading/loading.service.d.ts +48 -45
  260. package/lib/number-box/index.d.ts +2 -2
  261. package/lib/number-box/number-box.component.d.ts +69 -31
  262. package/lib/number-box/number-box.module.d.ts +11 -2
  263. package/lib/page/base-page.class.d.ts +37 -40
  264. package/lib/page/index.d.ts +4 -2
  265. package/lib/page/page-footer.component.d.ts +7 -0
  266. package/lib/page/page.component.d.ts +13 -11
  267. package/lib/page/page.module.d.ts +7 -0
  268. package/lib/popover/index.d.ts +2 -0
  269. package/lib/popover/popover.component.d.ts +30 -0
  270. package/lib/popover/popover.module.d.ts +8 -0
  271. package/lib/popup/index.d.ts +3 -3
  272. package/lib/popup/popup.component.d.ts +33 -33
  273. package/lib/popup/popup.module.d.ts +12 -2
  274. package/lib/popup/popup.service.d.ts +37 -18
  275. package/lib/range-slider/index.d.ts +2 -0
  276. package/lib/range-slider/range-slider.component.d.ts +8 -0
  277. package/lib/range-slider/range-slider.module.d.ts +8 -0
  278. package/lib/selectbox/index.d.ts +2 -2
  279. package/lib/selectbox/selectbox.component.d.ts +28 -25
  280. package/lib/selectbox/selectbox.module.d.ts +10 -2
  281. package/lib/selection-list/index.d.ts +2 -2
  282. package/lib/selection-list/selection-list.component.d.ts +10 -7
  283. package/lib/selection-list/selection-list.module.d.ts +10 -2
  284. package/lib/side-menu/index.d.ts +2 -2
  285. package/lib/side-menu/side-menu.component.d.ts +8 -5
  286. package/lib/side-menu/side-menu.module.d.ts +8 -2
  287. package/lib/switch/index.d.ts +2 -2
  288. package/lib/switch/switch.component.d.ts +9 -6
  289. package/lib/switch/switch.module.d.ts +9 -2
  290. package/lib/tabs/index.d.ts +5 -5
  291. package/lib/tabs/tab-strip.component.d.ts +17 -14
  292. package/lib/tabs/tab-view.component.d.ts +14 -11
  293. package/lib/tabs/tab.component.d.ts +18 -15
  294. package/lib/tabs/tabs.class.d.ts +18 -18
  295. package/lib/tabs/tabs.module.d.ts +10 -2
  296. package/lib/textbox/index.d.ts +2 -2
  297. package/lib/textbox/textbox.component.d.ts +19 -8
  298. package/lib/textbox/textbox.module.d.ts +13 -2
  299. package/lib/time-box/index.d.ts +2 -2
  300. package/lib/time-box/time-box.component.d.ts +29 -26
  301. package/lib/time-box/time-box.module.d.ts +11 -2
  302. package/lib/toast/index.d.ts +4 -4
  303. package/lib/toast/toast.class.d.ts +14 -14
  304. package/lib/toast/toast.component.d.ts +16 -13
  305. package/lib/toast/toast.module.d.ts +9 -2
  306. package/lib/toast/toast.service.d.ts +18 -15
  307. package/lib/tooltip/index.d.ts +3 -3
  308. package/lib/tooltip/tooltip.component.d.ts +10 -7
  309. package/lib/tooltip/tooltip.directive.d.ts +18 -15
  310. package/lib/tooltip/tooltip.module.d.ts +10 -2
  311. package/lib/validation/index.d.ts +2 -2
  312. package/lib/validation/validation-rule.widget.d.ts +25 -22
  313. package/lib/validation/validation.class.d.ts +17 -17
  314. package/lib/validation/validation.module.d.ts +9 -3
  315. package/package.json +19 -21
  316. package/public-api.d.ts +37 -31
  317. package/acorex-components.metadata.json +0 -1
  318. package/bundles/acorex-components.umd.min.js +0 -16
  319. package/bundles/acorex-components.umd.min.js.map +0 -1
  320. package/esm2015/lib/datapager/datapager-base.component.js +0 -33
  321. package/esm2015/lib/datapager/datapager-info.component.js +0 -59
  322. package/esm2015/lib/datapager/datapager-input-selector.component.js +0 -51
  323. package/esm2015/lib/datapager/datapager-next-buttons.components.js +0 -51
  324. package/esm2015/lib/datapager/datapager-numeric-selector.component.js +0 -86
  325. package/esm2015/lib/datapager/datapager-pagesize-dropdown.component.js +0 -69
  326. package/esm2015/lib/datapager/datapager-prev-buttons.component.js +0 -47
  327. package/esm2015/lib/datapager/datapager.component.js +0 -122
  328. package/esm2015/lib/datapager/datapager.module.js +0 -32
  329. package/esm2015/lib/datapager/index.js +0 -9
  330. package/lib/datapager/datapager-base.component.d.ts +0 -12
  331. package/lib/datapager/datapager-info.component.d.ts +0 -24
  332. package/lib/datapager/datapager-input-selector.component.d.ts +0 -12
  333. package/lib/datapager/datapager-next-buttons.components.d.ts +0 -14
  334. package/lib/datapager/datapager-numeric-selector.component.d.ts +0 -17
  335. package/lib/datapager/datapager-pagesize-dropdown.component.d.ts +0 -17
  336. package/lib/datapager/datapager-prev-buttons.component.d.ts +0 -13
  337. package/lib/datapager/datapager.component.d.ts +0 -41
  338. package/lib/datapager/datapager.module.d.ts +0 -2
  339. package/lib/datapager/index.d.ts +0 -8
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","../projects/acorex/components/src/lib/base/mixin/base-components.class.ts","../projects/acorex/components/src/lib/base/mixin/button-mixin.class.ts","../projects/acorex/components/src/lib/base/mixin/clickable-mixin.class.ts","../projects/acorex/components/src/lib/base/mixin/datalist-component.class.ts","../projects/acorex/components/src/lib/base/mixin/dropdown-mixin.class.ts","../projects/acorex/components/src/lib/base/mixin/interactive-mixin.class.ts","../projects/acorex/components/src/lib/base/mixin/selection-component.class.ts","../projects/acorex/components/src/lib/base/mixin/sizable-mixin.class.ts","../projects/acorex/components/src/lib/base/mixin/value-mixin.class.ts","../projects/acorex/components/src/lib/base/mixin/textbox-mixin.class.ts","../projects/acorex/components/src/lib/base/mixin/mixin.class.ts","../projects/acorex/components/src/lib/base/mixin/loading-mixin.class.ts","../../projects/acorex/components/src/lib/base/events.class.ts","../../projects/acorex/components/src/lib/base/responsive.directive.ts","../../projects/acorex/components/src/lib/base/common.module.ts","../../projects/acorex/components/src/lib/alert/alert.component.ts","../../projects/acorex/components/src/lib/alert/alert-title.component.ts","../../projects/acorex/components/src/lib/alert/alert-button.component.ts","../../projects/acorex/components/src/lib/alert/alert-contnet.component.ts","../../projects/acorex/components/src/lib/alert/alert-suffix.component.ts","../../projects/acorex/components/src/lib/alert/alert-footer.component.ts","../../projects/acorex/components/src/lib/alert/alert.module.ts","../../projects/acorex/components/src/lib/form/form-field.component.ts","../../projects/acorex/components/src/lib/form/form.component.ts","../../projects/acorex/components/src/lib/form/form-field.module.ts","../../projects/acorex/components/src/lib/label/label.component.ts","../../projects/acorex/components/src/lib/label/label.module.ts","../../projects/acorex/components/src/lib/button/button.component.ts","../../projects/acorex/components/src/lib/base/custom-cdk-overlay.service.ts","../../projects/acorex/components/src/lib/base/overlay.service.ts","../../projects/acorex/components/src/lib/button/button-item.component.ts","../../projects/acorex/components/src/lib/button/dropdown-button.component.ts","../../projects/acorex/components/src/lib/button/button-group.component.ts","../../projects/acorex/components/src/lib/button/button.module.ts","../../projects/acorex/components/src/lib/calendar/calendar.component.ts","../../projects/acorex/components/src/lib/input-mask/input-mask.component.ts","../../projects/acorex/components/src/lib/input-mask/input-mask.module.ts","../../projects/acorex/components/src/lib/textbox/textbox.component.ts","../../projects/acorex/components/src/lib/decorators/prefix.component.ts","../../projects/acorex/components/src/lib/decorators/suffix.component.ts","../../projects/acorex/components/src/lib/decorators/decorators.module.ts","../../projects/acorex/components/src/lib/textbox/textbox.module.ts","../../projects/acorex/components/src/lib/calendar/calendar.module.ts","../../projects/acorex/components/src/lib/dropdown/dropdown.component.ts","../../projects/acorex/components/src/lib/dropdown/dropdown.module.ts","../../projects/acorex/components/src/lib/selectbox/selectbox.component.ts","../../projects/acorex/components/src/lib/selectbox/selectbox.module.ts","../../projects/acorex/components/src/lib/switch/switch.component.ts","../../projects/acorex/components/src/lib/switch/switch.module.ts","../../projects/acorex/components/src/lib/datepicker/datepicker.component.ts","../../projects/acorex/components/src/lib/datepicker/datepicker.module.ts","../../projects/acorex/components/src/lib/checkbox/checkbox.component.ts","../../projects/acorex/components/src/lib/checkbox/checkbox.module.ts","../../projects/acorex/components/src/lib/validation/validation-rule.widget.ts","../../projects/acorex/components/src/lib/validation/validation.module.ts","../../projects/acorex/components/src/lib/selection-list/selection-list.component.ts","../../projects/acorex/components/src/lib/selection-list/selection-list.module.ts","../../projects/acorex/components/src/lib/datalist/datalist.component.ts","../../projects/acorex/components/src/lib/datalist/datalist.module.ts","../../projects/acorex/components/src/lib/toast/toast.component.ts","../../projects/acorex/components/src/lib/toast/toast.module.ts","../../projects/acorex/components/src/lib/toast/toast.service.ts","../../projects/acorex/components/src/lib/tooltip/tooltip.component.ts","../../projects/acorex/components/src/lib/tooltip/tooltip.directive.ts","../../projects/acorex/components/src/lib/tooltip/tooltip.module.ts","../../projects/acorex/components/src/lib/loading/loading.component.ts","../../projects/acorex/components/src/lib/loading/loading.directive.ts","../../projects/acorex/components/src/lib/loading/loading.module.ts","../../projects/acorex/components/src/lib/loading/loading.service.ts","../../projects/acorex/components/src/lib/page/page.component.ts","../../projects/acorex/components/src/lib/page/base-page.class.ts","../../projects/acorex/components/src/lib/popup/popup.component.ts","../../projects/acorex/components/src/lib/popup/popup.service.ts","../../projects/acorex/components/src/lib/popup/popup.module.ts","../../projects/acorex/components/src/lib/dialog/dialog.component.ts","../../projects/acorex/components/src/lib/dialog/dialog.class.ts","../../projects/acorex/components/src/lib/dialog/dialog.service.ts","../../projects/acorex/components/src/lib/dialog/dialog.module.ts","../../projects/acorex/components/src/lib/drawer/drawer.component.ts","../../projects/acorex/components/src/lib/drawer/drawer-container.component.ts","../../projects/acorex/components/src/lib/drawer/drawer-content.component.ts","../../projects/acorex/components/src/lib/drawer/drawer.module.ts","../../projects/acorex/components/src/lib/side-menu/side-menu.component.ts","../../projects/acorex/components/src/lib/side-menu/side-menu.module.ts","../../projects/acorex/components/src/lib/number-box/number-box.component.ts","../../projects/acorex/components/src/lib/number-box/number-box.module.ts","../../projects/acorex/components/src/lib/time-box/time-box.component.ts","../../projects/acorex/components/src/lib/time-box/time-box.module.ts","../../projects/acorex/components/src/lib/tabs/tab-strip.component.ts","../../projects/acorex/components/src/lib/tabs/tab.component.ts","../../projects/acorex/components/src/lib/tabs/tab-view.component.ts","../../projects/acorex/components/src/lib/tabs/tabs.class.ts","../../projects/acorex/components/src/lib/tabs/tabs.module.ts","../../projects/acorex/components/src/lib/datapager/datapager-base.component.ts","../../projects/acorex/components/src/lib/datapager/datapager.component.ts","../../projects/acorex/components/src/lib/datapager/datapager-next-buttons.components.ts","../../projects/acorex/components/src/lib/datapager/datapager-prev-buttons.component.ts","../../projects/acorex/components/src/lib/datapager/datapager-pagesize-dropdown.component.ts","../../projects/acorex/components/src/lib/datapager/datapager-numeric-selector.component.ts","../../projects/acorex/components/src/lib/datapager/datapager-input-selector.component.ts","../../projects/acorex/components/src/lib/datapager/datapager-info.component.ts","../../projects/acorex/components/src/lib/datapager/datapager.module.ts","../../projects/acorex/components/src/lib/carousel/carousel.class.ts","../../projects/acorex/components/src/lib/carousel/carousel-splidejs.class.ts","../../projects/acorex/components/src/lib/carousel/carousel.component.ts","../../projects/acorex/components/src/lib/carousel/carousel-item.component.ts","../../projects/acorex/components/src/lib/carousel/carousel-arrows.component.ts","../../projects/acorex/components/src/lib/carousel/carousel-pager.component.ts","../../projects/acorex/components/src/lib/carousel/carousel.module.ts","../../projects/acorex/components/src/lib/icon/icon.component.ts","../../projects/acorex/components/src/lib/icon/icon.module.ts","../../projects/acorex/components/src/lib/base/styles.class.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","__values","o","s","Symbol","iterator","m","i","length","next","value","done","__read","n","r","e","ar","push","error","__spreadArray","to","from","pack","arguments","l","slice","concat","__classPrivateFieldGet","receiver","state","kind","f","has","get","__classPrivateFieldSet","set","AXBaseComponent","args","_i","id","Date","getTime","toString","_elementRef","_cdr","ngOnInit","_isInited","_onInternalInit","ngAfterViewInit","_isRendered","_onInternalViewInit","ngOnDestroy","_onInternalDestroy","_getHostElement","nativeElement","_getInnerElement","firstElementChild","__axContext__","setAttribute","rtl","window","getComputedStyle","getPropertyValue","classList","add","_a","onInit","onViewInit","onDestroy","_BaseComponenetMixin","Base","_super","class_1","Injectable","_ButtonComponentMixin","_this","apply","text","iconClass","iconClassAfter","iconClassBefore","badge","submitBehavior","cancelBehavior","setTimeout","focus","BUTTON_INPUTS","_ClickableComponenetMixin","onClick","EventEmitter","_emitOnClickEvent","emit","component","htmlElement","nativeEvent","_DatalistComponenetMixin","valueField","textField","groupValueField","groupTextField","pageSize","_currentPage","_isLoading","_loadedItems","_totalItems","_isLazy","_items","defineProperty","v","isArray","items","_fetchData","loadedCount","totalCount","skip","take","then","c","total","markForCheck","finally","_onDataLoaded","_getItemDisplayTextTemplte","item","map","join","_trackByFunction","_DropdownComponenetMixin","Mixin","_readonly","fitParent","onOpened","onClosed","coerceBooleanProperty","_emitOnOpenedEvent","_emitOnClosedEvent","_InteractiveComponenetMixin","_disabled","_tabIndex","onFocus","onBlur","disabled","readonly","coerceNumberProperty","_emitOnFocusEvent","_emitOnBlurEvent","focusable","querySelector","_SelectionComponenetMixin","multiple","selectionMode","valueChange","onValueChanged","_value","oldValue","AXObjectUtil","deepJSONClone","isUserInput","selectedKeys","selectedItems","undefined","_setErrorState","validate","_renderSelection","_selectedItems","displayItems","filter","some","ii","fake","func","_getItemByDataMode","_getItemValue","unselectItems","selectItems","toggleSelect","forEach","includes","isItemSelected","_SizableComponenetMixin","size","AXConfig","_ValueComponenetMixin","_allowNull","_name","_debounceTime","_valueSubscription","Subscription","_valueSubject","Subject","_onValueChanging","_setValue","_emitOnValueChangedEvent","newValue","name","_onValueChanged","pipe","debounceTime","distinctUntilChanged","subscribe","unsubscribe","old","clear","rules","querySelectorAll","enabled","Promise","resolve","all","find","result","message","container","formField","closest","label","target","parent","parentElement","removeChild","remove","span","document","createElement","innerText","appendChild","VALUE_INPUTS","VALUE_OUTPUT","TEXTBOX_INPUTS","TEXTBOX_OUTPUT","AXBaseComponentMixin","AXSizableComponentMixin","AXInteractiveComponenetMixin","AXBaseClickableMixin","AXBaseButtonMixin","loading","AXBaseValueComponentMixin","AXBaseTextBoxMixin","onKeyDown","_emitOnKeydownEvent","_TextboxComponenetMixin","AXBaseDropdownMixin","AXBaseSelectionValueMixin","AXBaseValueDropdownMixin","AXBaseSelectionDropdownMixin","AXCalendarMixin","AXHtmlEvent","AXEvent","AXValueChangedEvent","AXClickEvent","AXButtonClickEvent","AXFocusEvent","AXSelectionValueChangedEvent","AXResponsiveDirective","_observer","ResizeObserver","entries","entry","e_2","element","clientWidth","_b","entries_1","entries_1_1","observe","disconnect","unobserve","Directive","selector","ElementRef","NgModule","imports","exports","declarations","providers","AXAlertComponent","elementRef","cdr","_visible","host","type","timeOut","dismiss","_icon","visible","addEventListener","hide","show","Component","template","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","class","ChangeDetectorRef","Input","AXAlertButtonComponent","_handleOnClick","_handleOnFocus","_handleOnBlur","outputs","HostListener","COMPONENT","AXAlertContentComponent","AXAlertTitleComponent","AXAlertFooterComponent","AXAlertSuffixComponent","MODULES","CommonModule","AXFormFieldComponent","AXFormComponent","_getComponenets","widgets","reject","failed","w","AXLabelComponent","AXButtonComponent","onKeydownHandler","stopPropagation","preventDefault","inputs","DynamicOverlayContainer","setContainerElement","containerElement","_containerElement","OverlayContainer","providedIn","DynamicOverlay","scrollStrategies","_overlayContainer","_componentFactoryResolver","_positionBuilder","_keyboardDispatcher","_injector","_ngZone","_document","_directionality","rendererFactory","_location","_outsideClickDispatcher","renderer","createRenderer","_dynamicOverlayContainer","setStyle","createOn","config","Overlay","ScrollStrategyOptions","ComponentFactoryResolver","OverlayPositionBuilder","OverlayKeyboardDispatcher","Injector","NgZone","Inject","DOCUMENT","Directionality","RendererFactory2","Location","OverlayOutsideClickDispatcher","AXOverlayService","overlayService","overlayService2","appRef","content","context","configs","assign","hasBackdrop","transparentBackdrop","closeOnClickOutside","portal","positionStrategy","viewRef","components","instance","TemplateRef","TemplatePortal","ComponentPortal","position","targetElement","flexibleConnectedTo","withPositions","withPush","global","centerHorizontally","centerVertically","scrollStrategy","reposition","autoClose","scroll","block","close","disposeOnNavigation","backdropClass","panelClass","overlayRef","attach","changeDetectorRef","detectChanges","merge","backdropClick","detachments","dispose","onBackdropClick","bind","isOpen","hasAttached","ApplicationRef","tooltip","selected","seperated","AXBaseDropdownButtonMixin","AXDropdownButtonComponent","onItemClick","_buttons","_dropdownWidth","dropdownIcon","splitedbutton","_emitOnItemClickEvent","data","_calcButtons","_contentButtons","offsetWidth","open","overlay","originX","originY","overlayX","overlayY","offsetY","ContentChildren","AXButtonItemComponent","Output","ViewChild","AXButtonGroupComponent","zone","selectable","_handleClickEvent","button","nativeButton","role","AXCalendarComponent","actionBar","showTime","dayItems","yearItems","monthItems","_showDays","_showsMonths","_showYears","createYears","showMonths","showYears","showDays","number","AXInputMaskComponent","showMaskTyped","clearIfNotMatch","_prefix","_suffix","NgxMaskModule","forRoot","AXTextBoxComponent","cssClass","ContentChild","HostBinding","AXDecoratorPrefixComponent","AXDecoratorSuffixComponent","FormsModule","AXButtonModule","AXEditorDecoratorModule","forChild","AXTextBoxModule","AXInputMaskModule","AXDropdownComponent","viewContainerRef","_overlayRef","_templatePortal","detach","_handleKeydownHandler","key","toggle","_handleArrowClickEvent","_ensureOverlayCreated","baseSize","Number","documentElement","replace","_baseTemplate","ViewContainerRef","OverlayModule","AXSelectBoxComponent","_currentfocusedIndex","dropdown","_focusSelectedItem","_handleOnItemClick","_handleListScroll","list","scrollTop","scrollHeight","clientHeight","_checkForLoadData","listContainer","_handleOnRemoveItemClick","_handleKeydown","activeElement","contains","isLetter","RegExp","test","fromCharCode","keyCode","allowNull","pop","ctrlKey","_selectedItemByIndex","_focusItemByNav","code","focusedItem","sign","lastSelectedItem_1","findIndex","_focusItemByIndex","inedx","runOutsideAngular","itemDiv","scrollIntoView","behavior","lastSelectedItem","index","static","AXDropdownModule","AXSwitchComponent","handleOnClickEvent","entryComponents","AXDatepickerComponent","AXCalendarModule","AXCheckBoxComponent","indeterminate","_handleOnClickEvent","AXValidationRules","addRule","rule","exists","registredRules","AXValidationRuleComponent","showMessage","regRule","_internalValidate","ruleValue","AXTranslator","ex","res_1","val","catch","AXSelectionListComponent","direction","_handleOnItemValueChange","checked","AXCheckBoxModule","AXDataListComponent","_itemTemplate","_contentItemTemplate","_emptyTemplate","_contentEmptyTemplate","_loadingTemplate","_contentloadingTemplate","_container","AXToastComponent","_toastWidth","options","interval_1","setInterval","clearInterval","_handleButtonClick","AXToastService","parentInjector","_activeList","info","title","success","warning","danger","opt","closeable","location","pos","getPosition","bottom","right","marging","left","top","toastPortal","visibleIndex","split","innerHeight","offsetTop","offsetHeight","AXTooltipComponent","animations","trigger","transition","style","opacity","animate","AXTooltipDirective","overlayPositionBuilder","positions","offsetX","tooltipRef","AXLoadingComponent","innerHTML","AXLoadingDirective","componentFactoryResolver","isLoading","hostElement","ngOnChanges","changes","overlayElement","spinnerElement","init","currentValue","addLoadingIndicator","removeLoadingIndicator","initOverlayElement","initSpinnerComponent","spinnerComponentFactory","resolveComponentFactory","spinnerComponent","createComponent","addClass","Renderer2","AXLoadingService","zoneRef","loadingStates","WeakMap","loadingStates$","_stack","com","doLoading","source$","loaderId","startLoading","observeOn","asyncScheduler","finalize","endLoading","loaderStates","getLoaderId","values","isLoading$","coalescedLoaderId","hasLoadingStates","setLoadingState","clearLoadings","hasContextLoadingState","BehaviorSubject","Map","hasLoaderLoadingState","AXPageComponent","_loadingService","_loadingId","TAB_META_KEY","AXPageCloseEvent","cancel","AXPageClosedPromise","executor","closeMethod","AXBasePageComponent","pageContainer","onClosing","AXBasePopupPageComponent","_footerButtons","onFooterButtonsChanged","_configFooterButtons","getFooterButtons","buttons","footerButtons","onFooterButtonClick","AXPopupComponent","resolver","loadingService","maximizable","closable","headerButtons","view","createEmbeddedView","$implicit","popupBody","insert","loadComponent","factory","comRef","_onFooterButtonsSubscription","console","event","_handleCloseClick","destroy","onFullScreen","read","AXPopupService","stack","arg1","arg2","popup","closePopup","promise","closeFunc","reverse","closingFunc","res","DragDropModule","A11yModule","AXDialogComponent","AXDialogAlertResult","_executor","closeAction","action","AXDialogConfirmResult","okayAction","cancelAction","finalAction","okay","final","AXDialogResult","thenAction","AXDialogService","alert","confirm","orginalClick","dialogPortal","AXDrawerComponent","onChanged","mode","_collapsed","_updateClass","_emitChange","_currentMode","elm","_setOverlayMode","_setPushMode","collapsed","_removeBackdrop","_addBackdrop","_detectSize","_handleWindowsResize","bound","getBoundingClientRect","width","log","_backdrop","prepend","_handleBackfropClick","removeEventListener","AXDrawerContainerComponent","_updateWidth","drawers","parentWidth","overflow","diff","every","setProperty","AXDrawerContentComponent","AXSideMenuComponent","AXNumberBoxComponent","_maskService","separator","thousandSeparator","step","scale","decimalStep","showSpinButtons","_minValue","MIN_VALUE","_maxValue","MAX_VALUE","displayTextChange","_displayText","_handleOnKeydownEvent","ignore","toNum","nums","fill","input","valStr","decimalPointIndex","indexOf","selectionStart","selectionEnd","stepVal","setSelectionRange","chr","substr","newVal","_format","Math","abs","minValue","maxValue","_fixValue","parseFloat","toFixed","allowNegativeNumbers","format","applyMask","displayText","_handleOnBlurEvent","MaskApplierService","AXTimeBoxComponent","toDate","AXDateTime","AXTabStripComponent","fullWidth","minWidth","onSelectionChanged","active","_handleClick","tab","selectedIndex","selectedTab","AXTabComponent","_render","display","AXTabViewComponent","_tabs","_contentTabs","caption","icon","_handleSelectionChanged","tabs","AXTabStripChangedEvent","AXDataPagerElementBase","AXDataPagerSelectorBase","AXPagerPageChangedEvent","range","page","totalPages","totalItems","AXPagerStateChangedEvent","AXDataPagerComponent","_totalPages","onPageChanged","onStateChanged","_pageSize","_emitStateChangedEvent","newPage","ceil","getState","needRefresh","_emitChangedEvent","_total","min","goNextPage","goLastPage","goFirstPage","goPrevPage","max","descendants","AXDataPagerNextButtonsComponent","_parent","_checkDisabled","_emitOnLastPageClick","_emitOnNextPageClick","provide","useExisting","AXDataPagerPrevButtonsComponent","_emitOnFirstPageClick","_emitOnPrevPageClick","AXDataPagerPageSizesComponent","_generateDisplayItems","_sizes","sizes","_emitOnItemClick","AXDataPagerNumericSelectorComponent","_displayCount","start","end","AXDataPagerInputSelectorComponent","AXDataPagerInfoComponent","_updateText","AXNumberBoxModule","AXCarouselSplideJS","mount","_instance","listElement","rebuild","onItemsChanged","_ref","refresh","onOptionsChanged","_emitOnSlideChanged","onSlideChanged","_getConfig","autoplay","loop","rewind","gap","perPage","perMove","interval","vertical","arrows","pagination","padding","autoWidth","centered","go","last","prev","first","goToSlide","goToPage","off","Splide","on","AXCarouselComponent","core","pageSizeChange","autoplayChange","_autoplay","intervalChange","_interval","paddingChange","_padding","centeredChange","_centered","verticalChange","_vertical","loopChange","_loop","rewindChange","_rewind","_visibleIndex","AXCarouselCore","useClass","AXCarouselItemComponent","AXCarouselArrowsComponent","onNextClick","onPrevClick","_handlePrevClick","_handleNextClick","decorators","Optional","AXCarouselPagerComponent","_pageIndex","_size","_dots","_subs","_generateDots","keys","_setPageIndex","_findPageIndex","slideIndex","AXIconComponent"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { ChangeDetectorRef, Injectable } from \"@angular/core\";\r\nimport { ElementRef } from \"@angular/core\";\r\nimport { Constructor } from \"./constratctor\";\r\n\r\n\r\n\r\nexport type AXElementSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\r\n\r\n@Injectable()\r\nexport class AXBaseComponent {\r\n id: string = `ax-${new Date().getTime().toString()}`;\r\n rtl: boolean;\r\n cssClass: string;\r\n cssStyle: string;\r\n\r\n\r\n #elementRef: ElementRef;\r\n _cdr: ChangeDetectorRef;\r\n\r\n _isInited: boolean;\r\n _isRendered: boolean;\r\n\r\n constructor(...args: any[]) {\r\n this.#elementRef = args[0];\r\n this._cdr = args[1];\r\n }\r\n\r\n ngOnInit() {\r\n this._isInited = true;\r\n this._onInternalInit();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this._isRendered = true;\r\n this._onInternalViewInit();\r\n }\r\n\r\n ngOnDestroy() {\r\n this._onInternalDestroy();\r\n }\r\n\r\n _getHostElement<T = HTMLElement>(): T {\r\n return this.#elementRef.nativeElement as T;\r\n }\r\n\r\n _getInnerElement<T = HTMLElement>(): T {\r\n return this._getHostElement().firstElementChild as unknown as T;\r\n }\r\n\r\n\r\n _onInternalInit() {\r\n (this._getHostElement() as any).__axContext__ = this;\r\n this._getHostElement().setAttribute('data-id', this.id);\r\n if (this.rtl == null) {\r\n this.rtl = window.getComputedStyle(this._getHostElement(), null).getPropertyValue('direction') === 'rtl';\r\n }\r\n this._getHostElement().classList.add(this.rtl ? 'ax-rtl' : 'ax-ltr');\r\n this._getInnerElement()?.classList.add(this.rtl ? 'ax-rtl' : 'ax-ltr');\r\n this.onInit();\r\n }\r\n\r\n _onInternalViewInit() {\r\n this.onViewInit();\r\n }\r\n\r\n _onInternalDestroy() {\r\n this.onDestroy();\r\n }\r\n\r\n onInit() {\r\n }\r\n\r\n onViewInit() {\r\n }\r\n\r\n onDestroy() {\r\n }\r\n}\r\n\r\n\r\nexport function _BaseComponenetMixin<TBase extends Constructor<AXBaseComponent>>(Base: TBase) {\r\n return class extends Base {\r\n constructor(...args: any[]) {\r\n super(...args);\r\n }\r\n }\r\n}\r\n\r\n\r\nexport const BASE_INPUTS = [\r\n 'rtl',\r\n 'cssClass',\r\n 'cssStyle'\r\n];\r\nexport const BASE_OUTPUT = [];\r\n","import { AXBaseComponent } from './base-components.class';\r\nimport { Constructor } from './constratctor';\r\n\r\nexport function _ButtonComponentMixin<\r\n TBase extends Constructor<AXBaseComponent>\r\n>(Base: TBase) {\r\n return class extends Base {\r\n text: string = '';\r\n\r\n iconClass: string = null;\r\n iconClassAfter: string = null;\r\n iconClassBefore: string = null;\r\n\r\n badge: string = null;\r\n\r\n submitBehavior: boolean = false;\r\n\r\n cancelBehavior: boolean = false;\r\n\r\n constructor(...args: any[]) {\r\n super(...args);\r\n }\r\n\r\n _onInternalViewInit() {\r\n super._onInternalViewInit();\r\n if (this.submitBehavior) {\r\n setTimeout(() => {\r\n (this as any).focus();\r\n }, 0);\r\n }\r\n }\r\n\r\n _onInternalDestroy() {\r\n super._onInternalDestroy();\r\n }\r\n };\r\n}\r\n\r\nexport const BUTTON_INPUTS = [\r\n 'text',\r\n 'iconClass',\r\n 'iconClassBefore',\r\n 'iconClassAfter',\r\n 'badge',\r\n 'submitBehavior',\r\n 'cancelBehavior',\r\n];\r\nexport const BUTTON_OUTPUT = ['onClick'];\r\n","import { EventEmitter } from \"@angular/core\";\r\nimport { AXBaseComponent } from \"./base-components.class\";\r\nimport { Constructor } from \"./constratctor\";\r\nimport { AXClickEvent } from \"../events.class\";\r\n\r\n\r\nexport function _ClickableComponenetMixin<TBase extends Constructor<AXBaseComponent>>(Base: TBase){\r\n return class extends Base {\r\n onClick: EventEmitter<AXClickEvent> = new EventEmitter<AXClickEvent>();\r\n\r\n _emitOnClickEvent(e: MouseEvent): void {\r\n this.onClick.emit({\r\n component: this,\r\n htmlElement: this._getHostElement(),\r\n nativeEvent: e\r\n });\r\n }\r\n\r\n constructor(...args: any[]) {\r\n super(...args);\r\n }\r\n }\r\n}\r\n\r\n","import { AXBaseComponent } from './base-components.class';\r\nimport { Constructor } from './constratctor';\r\n\r\n\r\nexport function _DatalistComponenetMixin<TBase extends Constructor<AXBaseComponent>>(Base: TBase) {\r\n return class extends Base {\r\n\r\n valueField: string = 'id';\r\n textField: string | string[] = 'text';\r\n groupValueField: string = 'group';\r\n groupTextField: string | string[] = 'group';\r\n pageSize: number = 10;\r\n\r\n #currentPage: number = 0;\r\n #isLoading: boolean = false;\r\n #loadedItems: any[] = [];\r\n #totalItems: number = 0;\r\n\r\n #isLazy: boolean = false;\r\n\r\n get totalCount(): number {\r\n return this.#totalItems;\r\n }\r\n\r\n get loadedCount(): number {\r\n return this.#loadedItems?.length || 0;\r\n }\r\n\r\n constructor(...args: any[]) {\r\n super(...args);\r\n\r\n }\r\n\r\n #items: any = [];\r\n get items(): any {\r\n return this.#items;\r\n }\r\n set items(v: any) {\r\n this.#items = v;\r\n }\r\n\r\n get displayItems() {\r\n if (Array.isArray(this.items)) {\r\n return this.#items || [];\r\n }\r\n else if (typeof this.#items == 'function') {\r\n return this.#loadedItems || [];\r\n }\r\n return [];\r\n }\r\n\r\n get isLoading() {\r\n return this.#isLoading;\r\n }\r\n\r\n _fetchData() {\r\n if ((this.loadedCount >= this.totalCount && this.totalCount != 0) || this.#isLoading || !this.#isLazy) {\r\n return;\r\n }\r\n if (this.#items) {\r\n this.#isLoading = true;\r\n this.#items({ skip: this.#currentPage * this.pageSize, take: this.pageSize }).then(c => {\r\n if (Array.isArray(c)) {\r\n this.#loadedItems = c;\r\n this.#totalItems = c.length;\r\n }\r\n else {\r\n this.#totalItems = c.total || c.items?.length || 0;\r\n this.#loadedItems = this.#loadedItems.concat(c.items);\r\n this.#currentPage++;\r\n }\r\n this._cdr.markForCheck();\r\n }).finally(() => {\r\n this.#isLoading = false;\r\n this._onDataLoaded();\r\n });\r\n }\r\n }\r\n\r\n _onInternalInit() {\r\n if (typeof this.#items == 'function') {\r\n this.#isLazy = true;\r\n this._fetchData();\r\n }\r\n super._onInternalInit();\r\n }\r\n\r\n _onDataLoaded() {\r\n\r\n }\r\n\r\n _getItemDisplayTextTemplte(item) {\r\n if (item)\r\n return Array.isArray(this.textField) ? this.textField.map(c => item[c]).join(',') : item[this.textField];\r\n else\r\n return 'Loading...';\r\n }\r\n\r\n _trackByFunction(item) {\r\n if (!item) return null;\r\n return item[this.valueField];\r\n }\r\n\r\n }\r\n}","import { coerceBooleanProperty } from \"@angular/cdk/coercion\";\r\nimport { EventEmitter } from \"@angular/core\";\r\nimport { AXBaseComponent } from \"./base-components.class\";\r\nimport { Constructor } from \"./constratctor\";\r\nimport { AXEvent } from \"../events.class\";\r\n\r\n\r\n\r\nexport interface DropdownComponentInterface\r\n{\r\n open():void;\r\n close():void;\r\n toggle():void;\r\n isOpen:boolean;\r\n}\r\n\r\n\r\nexport function _DropdownComponenetMixin<TBase extends Constructor<AXBaseComponent>>(Base: TBase) {\r\n\r\n abstract class Mixin extends Base {\r\n #readonly: boolean = false;\r\n get readonly() { return this.#readonly; }\r\n set readonly(value: any) { this.#readonly = coerceBooleanProperty(value); }\r\n \r\n fitParent: boolean = true;\r\n \r\n onOpened: EventEmitter<AXEvent> = new EventEmitter<AXEvent>();\r\n onClosed: EventEmitter<AXEvent> = new EventEmitter<AXEvent>();\r\n \r\n _emitOnOpenedEvent() {\r\n //** call from interactive mixin **//\r\n //(this as any).focus();\r\n //\r\n this.onOpened.emit({\r\n component: this,\r\n htmlElement: this._getHostElement()\r\n });\r\n }\r\n \r\n _emitOnClosedEvent() {\r\n (this as any).focus();\r\n this.onClosed.emit({\r\n component: this,\r\n htmlElement: this._getHostElement()\r\n });\r\n }\r\n \r\n constructor(...args: any[]) {\r\n super(...args);\r\n }\r\n\r\n }\r\n\r\n return Mixin;\r\n}","import { coerceBooleanProperty, coerceNumberProperty } from \"@angular/cdk/coercion\";\r\nimport { EventEmitter } from \"@angular/core\";\r\nimport { AXBaseComponent } from \"./base-components.class\";\r\nimport { Constructor } from \"./constratctor\";\r\nimport { AXFocusEvent } from \"../events.class\";\r\n\r\n\r\nexport function _InteractiveComponenetMixin<TBase extends Constructor<AXBaseComponent>>(Base: TBase) {\r\n abstract class Mixin extends Base {\r\n \r\n #disabled: boolean = false;\r\n get disabled() { return this.#disabled; }\r\n set disabled(value: any) {\r\n this.#disabled = coerceBooleanProperty(value);\r\n this._cdr.markForCheck();\r\n }\r\n\r\n\r\n\r\n #tabIndex: number = 0;\r\n get tabIndex(): number { return this.disabled || (this as any).readonly ? -1 : this.#tabIndex; }\r\n set tabIndex(value: number) {\r\n this.#tabIndex = value != null ? coerceNumberProperty(value) : 0;\r\n }\r\n\r\n onFocus: EventEmitter<AXFocusEvent> = new EventEmitter<AXFocusEvent>();\r\n\r\n _emitOnFocusEvent(e: FocusEvent): void {\r\n this.onFocus.emit({\r\n component: this,\r\n htmlElement: this._getHostElement(),\r\n nativeEvent: e\r\n });\r\n }\r\n\r\n onBlur: EventEmitter<AXFocusEvent> = new EventEmitter<AXFocusEvent>();\r\n\r\n _emitOnBlurEvent(e: FocusEvent): void {\r\n this.onBlur.emit({\r\n component: this,\r\n htmlElement: this._getHostElement(),\r\n nativeEvent: e\r\n });\r\n }\r\n\r\n focus() {\r\n const focusable = this._getHostElement().querySelector<HTMLElement>('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])');\r\n if (focusable) {\r\n focusable.focus();\r\n }\r\n }\r\n\r\n constructor(...args: any[]) {\r\n super(...args);\r\n }\r\n }\r\n return Mixin;\r\n}","import { AXObjectUtil } from '@acorex/core';\r\nimport { EventEmitter } from '@angular/core';\r\nimport { AXSelectionValueChangedEvent } from '../events.class';\r\nimport { AXBaseComponent } from './base-components.class';\r\nimport { Constructor } from './constratctor';\r\n\r\nexport function _SelectionComponenetMixin<TBase extends Constructor<AXBaseComponent>>(Base: TBase) {\r\n return class extends Base {\r\n\r\n valueField: string = 'id';\r\n textField: string | string[] = 'text';\r\n multiple: boolean = false;\r\n selectionMode: 'value' | 'item' = 'value';\r\n\r\n // for data-list\r\n get items(): any[] {\r\n return [];\r\n }\r\n\r\n get displayItems(): any[] {\r\n return [];\r\n }\r\n\r\n\r\n public valueChange: EventEmitter<any> = new EventEmitter<any>();\r\n public onValueChanged: EventEmitter<AXSelectionValueChangedEvent> = new EventEmitter<AXSelectionValueChangedEvent>();\r\n\r\n\r\n constructor(...args: any[]) {\r\n super(...args)\r\n }\r\n\r\n _onInternalInit() {\r\n super._onInternalInit();\r\n }\r\n\r\n\r\n _value: any | any[];\r\n get value(): any | any[] {\r\n return this._value;\r\n }\r\n set value(v: any | any[]) {\r\n if (v !== this._value) {\r\n const oldValue = AXObjectUtil.deepJSONClone(this._value);\r\n if (this.multiple) {\r\n this._value = Array.isArray(v) ? v : (v ? [v] : []);\r\n } else {\r\n this._value = Array.isArray(v) ? v[0] : v;\r\n }\r\n this.valueChange.emit(this._value);\r\n this.onValueChanged.emit({\r\n component: this,\r\n htmlElement: this._getHostElement(),\r\n isUserInput: false,\r\n oldValue,\r\n value: this._value,\r\n selectedKeys: this.selectedItems.map(c => c[this.valueField]),\r\n selectedItems: this.selectedItems.slice()\r\n });\r\n if (v == null || v == undefined || v == \"\") {\r\n (this as any)._setErrorState('clear');\r\n }\r\n else {\r\n if (this._isInited) {\r\n (this as any).validate();\r\n }\r\n }\r\n this._renderSelection();\r\n }\r\n }\r\n\r\n _selectedItems: any[];\r\n get selectedItems(): any[] {\r\n return this._selectedItems || [];\r\n }\r\n\r\n _renderSelection() {\r\n const func = () => {\r\n if (this.value == null || this.value == undefined) {\r\n return [];\r\n }\r\n if (this.displayItems.length > 0) {\r\n return this.displayItems.filter(i => {\r\n\r\n if (Array.isArray(this.value)) {\r\n return this.value.some(ii => {\r\n if (typeof ii === 'object') {\r\n return i[this.valueField] === ii[this.valueField];\r\n }\r\n else {\r\n return i[this.valueField] === ii;\r\n }\r\n });\r\n }\r\n else {\r\n if (typeof this.value === 'object') {\r\n return i[this.valueField] === this.value[this.valueField];\r\n }\r\n else {\r\n return i[this.valueField] === this.value;\r\n }\r\n }\r\n });\r\n }\r\n if (Array.isArray(this.value)) {\r\n return this.value.map(ii => () => {\r\n //&& ii[this.textField]\r\n if (typeof ii === 'object') {\r\n return ii;\r\n }\r\n else {\r\n const fake: any = {};\r\n fake[this.valueField] = this.value;\r\n return fake;\r\n }\r\n });\r\n }\r\n else {\r\n //&& this.value[this.textField]\r\n if (typeof this.value === 'object') {\r\n return [this.value];\r\n }\r\n else {\r\n const fake: any = {};\r\n fake[this.valueField] = this.value;\r\n return [fake];\r\n }\r\n }\r\n };\r\n this._selectedItems = func();\r\n }\r\n\r\n _getItemByDataMode(item: any) {\r\n return this.selectionMode === 'item' ? item : item[this.valueField];\r\n }\r\n\r\n _getItemValue(item: any) {\r\n return typeof item === 'object' ? item[this.valueField] : item;\r\n }\r\n\r\n\r\n\r\n unselectItems(...items: any[]) {\r\n if (!items || items.length === 0) {\r\n this.value = null;\r\n }\r\n else if (Array.isArray(this.value)) {\r\n this.value = this.value.filter(c => !items.some(d =>\r\n this._getItemValue(c) === this._getItemValue(d))\r\n );\r\n }\r\n else {\r\n this.value = null;\r\n }\r\n }\r\n\r\n selectItems(...items: any[]) {\r\n if (items && items.length) {\r\n if (this.multiple) {\r\n this.value = (this.value || []).concat(items.map(c => this._getItemByDataMode(c)));\r\n }\r\n else {\r\n this.value = this._getItemByDataMode(items[0]);\r\n }\r\n }\r\n }\r\n\r\n toggleSelect(...items: any[]) {\r\n if (items && items.length) {\r\n items.forEach(item => {\r\n if (this.multiple) {\r\n this.selectedItems.includes(item) ? this.unselectItems(item) : this.selectItems(item);\r\n }\r\n else {\r\n this.selectItems(item)\r\n }\r\n });\r\n }\r\n }\r\n\r\n isItemSelected(item: any): boolean {\r\n return this.selectedItems.some(c => c[this.valueField] === item[this.valueField]);\r\n }\r\n }\r\n}","import { AXConfig } from '@acorex/core';\r\nimport { AXBaseComponent, AXElementSize } from './base-components.class';\r\nimport { Constructor } from './constratctor';\r\n\r\nexport function _SizableComponenetMixin<TBase extends Constructor<AXBaseComponent>>(Base: TBase) {\r\n return class extends Base {\r\n size: AXElementSize;\r\n\r\n constructor(...args: any[]) {\r\n super(...args.slice(0, 2))\r\n }\r\n\r\n _onInternalInit() {\r\n if (!this.size) {\r\n this.size = AXConfig.get('layout.size');\r\n }\r\n super._onInternalInit();\r\n }\r\n }\r\n}\r\n\r\n\r\nexport const SIZABLE_INPUTS = [\r\n 'size',\r\n];\r\nexport const SIZABLE_OUTPUT = [];","import {\r\n coerceBooleanProperty,\r\n coerceNumberProperty,\r\n} from '@angular/cdk/coercion';\r\nimport { EventEmitter } from '@angular/core';\r\nimport { AXBaseComponent } from './base-components.class';\r\nimport { Constructor } from './constratctor';\r\nimport { AXValueChangedEvent } from '../events.class';\r\nimport { AXValidationRuleResult } from '../../validation/validation.class';\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\n\r\nexport function _ValueComponenetMixin<\r\n TBase extends Constructor<AXBaseComponent>\r\n>(Base: TBase) {\r\n abstract class Mixin extends Base {\r\n onValueChanged: EventEmitter<AXValueChangedEvent<any>> = new EventEmitter<\r\n AXValueChangedEvent<any>\r\n >();\r\n valueChange: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n #readonly: boolean = false;\r\n get readonly() {\r\n return this.#readonly;\r\n }\r\n set readonly(value: any) {\r\n this.#readonly = coerceBooleanProperty(value);\r\n }\r\n\r\n #allowNull: boolean = true;\r\n get allowNull() {\r\n return this.#allowNull;\r\n }\r\n set allowNull(value: any) {\r\n this.#allowNull = coerceBooleanProperty(value);\r\n }\r\n\r\n\r\n #name: string;\r\n get name() {\r\n return this.#name;\r\n }\r\n set name(value: string) {\r\n this.#name = value;\r\n }\r\n\r\n #debounceTime: number = 50;\r\n get debounceTime() {\r\n return this.#debounceTime;\r\n }\r\n set debounceTime(value: any) {\r\n this.#debounceTime = coerceNumberProperty(value);\r\n }\r\n\r\n #valueSubscription = new Subscription();\r\n #valueSubject = new Subject();\r\n\r\n #value: any;\r\n public get value(): any {\r\n return this.#value;\r\n }\r\n public set value(v: any) {\r\n v = this._onValueChanging(v);\r\n if (!this._isInited) {\r\n this._setValue(v);\r\n } else {\r\n this.#valueSubject.next(v);\r\n }\r\n }\r\n\r\n _emitOnValueChangedEvent(oldValue?: any, newValue?: any) {\r\n this.valueChange.emit(newValue);\r\n this.onValueChanged.emit({\r\n component: this,\r\n value: newValue,\r\n oldValue: oldValue,\r\n name: this.name\r\n });\r\n this._onValueChanged(oldValue, this.#value);\r\n }\r\n\r\n _onValueChanging(value: any) {\r\n return value;\r\n }\r\n _onValueChanged(oldValue: any, newValue: any): void { }\r\n\r\n _onInternalInit() {\r\n this._getHostElement().setAttribute('ax-form-input', 'true');\r\n this.#valueSubscription = this.#valueSubject\r\n .pipe(debounceTime(this.#debounceTime))\r\n .pipe(distinctUntilChanged())\r\n .subscribe((v) => {\r\n this._setValue(v);\r\n });\r\n super._onInternalInit();\r\n }\r\n\r\n _onInternalDestroy() {\r\n this.#valueSubscription.unsubscribe();\r\n super.onDestroy();\r\n }\r\n\r\n _setValue(v: any) {\r\n const old = this.#value;\r\n // TODO: check real equality\r\n if (v != old) {\r\n this.#value = v;\r\n this._emitOnValueChangedEvent(old, this.#value);\r\n this._cdr.markForCheck();\r\n if (v == null || v == undefined || v == '') {\r\n this._setErrorState('clear');\r\n } else {\r\n if (this._isInited) {\r\n this.validate();\r\n }\r\n }\r\n }\r\n }\r\n\r\n clear() {\r\n this.value = null;\r\n }\r\n\r\n validate(): Promise<AXValidationRuleResult> {\r\n const rules = Array.from(\r\n this._getHostElement().querySelectorAll('ax-validation-rule')\r\n ).filter((c) => (c as any).__axContext__.enabled);\r\n //\r\n if (!rules || rules.length === 0) {\r\n this._setErrorState('clear');\r\n return Promise.resolve({ result: true, value: this.value });\r\n }\r\n\r\n return new Promise<AXValidationRuleResult>((resolve) => {\r\n Promise.all(\r\n rules\r\n .filter((c) => typeof (c as any)?.validate === 'function')\r\n .map((c) => {\r\n return (c as any).validate(this.value);\r\n })\r\n ).then((d) => {\r\n const error = d.find((c) => c.result === false);\r\n if (error) {\r\n this._setErrorState('error', error.message);\r\n resolve({ result: false, value: this.value });\r\n } else {\r\n this._setErrorState('success');\r\n resolve({ result: true, value: this.value });\r\n }\r\n });\r\n });\r\n }\r\n\r\n constructor(...args: any[]) {\r\n super(...args);\r\n }\r\n\r\n _setErrorState(state: 'clear' | 'success' | 'error', ...args) {\r\n const container = this._getHostElement().querySelector(\r\n '.ax-editor-container'\r\n );\r\n const formField = container?.closest('.ax-form-field');\r\n const label = formField?.querySelector('.ax-label');\r\n const target = container || this._getInnerElement();\r\n const parent = target.parentElement;\r\n\r\n switch (state) {\r\n case 'clear':\r\n if (parent.querySelector('span.ax-error-msg')) {\r\n parent.removeChild(parent.querySelector('span.ax-error-msg'));\r\n }\r\n label?.classList.remove('ax-state-error');\r\n target.classList.remove('ax-state-error', 'ax-state-success');\r\n break;\r\n case 'success':\r\n this._setErrorState('clear');\r\n target.classList.add('ax-state-success');\r\n break;\r\n case 'error':\r\n this._setErrorState('clear');\r\n if (args[0]) {\r\n const span = document.createElement('span');\r\n span.innerText = args[0];\r\n span.classList.add('ax-error-msg');\r\n parent.appendChild(span);\r\n }\r\n label?.classList.add('ax-state-error');\r\n target.classList.add('ax-state-error');\r\n break;\r\n }\r\n }\r\n }\r\n return Mixin;\r\n}\r\n\r\n\r\nexport const VALUE_INPUTS = [\r\n 'readonly',\r\n 'allowNull',\r\n 'value',\r\n 'debounceTime',\r\n 'name'\r\n];\r\nexport const VALUE_OUTPUT = ['valueChange', 'onValueChanged'];","import { EventEmitter } from '@angular/core';\r\nimport { AXHtmlEvent } from '../events.class';\r\nimport { AXBaseComponent } from './base-components.class';\r\nimport { Constructor } from './constratctor';\r\nimport { VALUE_INPUTS, VALUE_OUTPUT } from './value-mixin.class';\r\n\r\nexport function _TextboxComponenetMixin<TBase extends Constructor<AXBaseComponent>>(Base: TBase) {\r\n return class extends Base {\r\n\r\n placeholder: string;\r\n\r\n maxLength: string;\r\n\r\n onKeyDown: EventEmitter<AXHtmlEvent<KeyboardEvent>> = new EventEmitter<AXHtmlEvent<KeyboardEvent>>();\r\n\r\n\r\n _emitOnKeydownEvent(e: KeyboardEvent) {\r\n this.onKeyDown.emit({\r\n component: this,\r\n nativeEvent: e\r\n });\r\n }\r\n\r\n\r\n constructor(...args: any[]) {\r\n super(...args.slice(0, 2))\r\n }\r\n }\r\n}\r\n\r\nexport const TEXTBOX_INPUTS = ['placeholder', 'maxLength', 'allowNull', 'debounceTime', ...VALUE_INPUTS]\r\nexport const TEXTBOX_OUTPUT = [...VALUE_OUTPUT]","import { AXBaseComponent, _BaseComponenetMixin } from './base-components.class';\r\nimport { _ButtonComponentMixin } from './button-mixin.class';\r\nimport { _ClickableComponenetMixin } from './clickable-mixin.class';\r\nimport { _DatalistComponenetMixin } from './datalist-component.class';\r\nimport { _DropdownComponenetMixin } from './dropdown-mixin.class';\r\nimport { _InteractiveComponenetMixin } from './interactive-mixin.class';\r\nimport { _LoadingComponenetMixin } from './loading-mixin.class';\r\nimport { _SelectionComponenetMixin } from './selection-component.class';\r\nimport { _SizableComponenetMixin } from './sizable-mixin.class';\r\nimport { _TextboxComponenetMixin } from './textbox-mixin.class';\r\nimport { _ValueComponenetMixin } from './value-mixin.class';\r\n\r\nexport const AXBaseComponentMixin = _BaseComponenetMixin(AXBaseComponent);\r\n\r\nexport const AXSizableComponentMixin = _SizableComponenetMixin(\r\n _BaseComponenetMixin(AXBaseComponent)\r\n);\r\n\r\nexport const AXInteractiveComponenetMixin = _SizableComponenetMixin(\r\n _InteractiveComponenetMixin(AXBaseComponent)\r\n);\r\n\r\nexport const AXBaseClickableMixin = _SizableComponenetMixin(\r\n _InteractiveComponenetMixin(_ClickableComponenetMixin(AXBaseComponent))\r\n);\r\n\r\nexport const AXBaseButtonMixin = _SizableComponenetMixin(\r\n _InteractiveComponenetMixin(\r\n _ClickableComponenetMixin(_LoadingComponenetMixin(_ButtonComponentMixin(AXBaseComponent)))\r\n )\r\n);\r\n\r\nexport const AXBaseValueComponentMixin = _SizableComponenetMixin(\r\n _InteractiveComponenetMixin(_ValueComponenetMixin<any>(AXBaseComponent))\r\n);\r\n\r\nexport const AXBaseTextBoxMixin = _SizableComponenetMixin(\r\n _InteractiveComponenetMixin(\r\n _ValueComponenetMixin<any>(_TextboxComponenetMixin(AXBaseComponent))\r\n )\r\n);\r\n\r\nexport const AXBaseDropdownMixin = _SizableComponenetMixin(\r\n _InteractiveComponenetMixin(_DropdownComponenetMixin(AXBaseComponent))\r\n);\r\n\r\nexport const AXBaseSelectionValueMixin = _SizableComponenetMixin(\r\n _InteractiveComponenetMixin(\r\n _DatalistComponenetMixin(\r\n _SelectionComponenetMixin(_ValueComponenetMixin<any>(AXBaseComponent))\r\n )\r\n )\r\n);\r\n\r\nexport const AXBaseValueDropdownMixin = _SizableComponenetMixin(\r\n _InteractiveComponenetMixin(\r\n _DropdownComponenetMixin(\r\n _DatalistComponenetMixin(_ValueComponenetMixin<any>(AXBaseComponent))\r\n )\r\n )\r\n);\r\n\r\nexport const AXBaseSelectionDropdownMixin = _SizableComponenetMixin(\r\n _InteractiveComponenetMixin(\r\n _DropdownComponenetMixin(\r\n _DatalistComponenetMixin(\r\n _SelectionComponenetMixin(_ValueComponenetMixin<any>(AXBaseComponent))\r\n )\r\n )\r\n )\r\n);\r\n\r\nexport const AXCalendarMixin = _ClickableComponenetMixin(_ButtonComponentMixin(_SizableComponenetMixin(AXBaseComponent)));\r\n","import { AXConfig } from '@acorex/core';\r\nimport { AXBaseComponent, AXElementSize } from './base-components.class';\r\nimport { Constructor } from './constratctor';\r\n\r\nexport function _LoadingComponenetMixin<TBase extends Constructor<AXBaseComponent>>(Base: TBase) {\r\n return class extends Base {\r\n loading: boolean=false;\r\n loadingIconClass: string;\r\n loadingText:string;\r\n\r\n \r\n constructor(...args: any[]) {\r\n super(...args.slice(0, 2))\r\n }\r\n\r\n _onInternalInit() {\r\n // if (!this.size) {\r\n // this.size = AXConfig.get('layout.size', 'sm');\r\n // }\r\n super._onInternalInit();\r\n }\r\n }\r\n}","export class AXEvent {\r\n component: any;\r\n htmlElement?: HTMLElement;\r\n}\r\n\r\nexport class AXHtmlEvent<E extends Event> extends AXEvent {\r\n nativeEvent?: E;\r\n}\r\n\r\nexport class AXValueChangedEvent<T> extends AXEvent {\r\n name?: T;\r\n value?: T;\r\n oldValue?: T;\r\n isTriggred?: boolean;\r\n}\r\n\r\n\r\nexport class AXClickEvent extends AXHtmlEvent<MouseEvent> {\r\n data?: any\r\n}\r\n\r\n\r\nexport class AXButtonClickEvent extends AXHtmlEvent<MouseEvent> {\r\n name: string;\r\n}\r\n\r\nexport class AXFocusEvent extends AXHtmlEvent<FocusEvent> {\r\n}\r\n\r\nexport class AXSelectionValueChangedEvent extends AXValueChangedEvent<any | any[]> {\r\n value?: any;\r\n oldValue?: any;\r\n isUserInput: boolean = false;\r\n selectedKeys?: any[];\r\n selectedItems?: any[];\r\n}","import { Directive, ElementRef, OnDestroy } from '@angular/core';\r\n\r\n@Directive({ selector: '[ax-responsive]' })\r\nexport class AXResponsiveDirective implements OnDestroy {\r\n\r\n private _observer: ResizeObserver = new ResizeObserver(entries => {\r\n for (let entry of entries) {\r\n\r\n if (entry.target) {\r\n const e = entry.target;\r\n const elements = [e, ...Array.from(e.querySelectorAll(`[class*='sm:']`))];\r\n elements.map(c => ({\r\n element: c,\r\n classList: Array.from(c.classList).filter(c => c.includes('sm')).map(c => c.slice(3))\r\n })).forEach(c => {\r\n e.clientWidth < 320 ? c.element.classList.add(...c.classList) : c.element.classList.remove(...c.classList);\r\n });\r\n }\r\n }\r\n });;\r\n\r\n constructor(private _elementRef: ElementRef<HTMLDivElement>) {\r\n this._observer.observe(_elementRef.nativeElement);\r\n }\r\n\r\n ngOnDestroy() {\r\n this._observer.disconnect();\r\n this._observer.unobserve(this._elementRef.nativeElement);\r\n }\r\n\r\n}","import { NgModule } from '@angular/core';\r\nimport { AXResponsiveDirective } from './responsive.directive';\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n imports: [],\r\n exports: [AXResponsiveDirective],\r\n declarations: [AXResponsiveDirective],\r\n providers: [],\r\n})\r\nexport class AXCommonModule { }\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, Input, ViewChildren, QueryList } from '@angular/core';\r\nimport { AXBaseComponentMixin, AXStyleType } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-alert',\r\n templateUrl: './alert.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-alert ax-none' }\r\n})\r\nexport class AXAlertComponent extends AXBaseComponentMixin {\r\n\r\n\r\n _icon: string;\r\n\r\n\r\n @Input()\r\n type: AXStyleType;\r\n\r\n @Input()\r\n timeOut: number;\r\n\r\n\r\n\r\n #visible: boolean;\r\n @Input()\r\n public get visible(): boolean {\r\n return this.#visible;\r\n }\r\n public set visible(v: boolean) {\r\n if (this.#visible != v) {\r\n this.#visible = v;\r\n const host = this._getHostElement();\r\n if (v) {\r\n host.classList.remove('ax-none','animate__fadeOut');\r\n host.classList.add('animate__animated', 'animate__fadeIn', 'animate__fast');\r\n }\r\n else {\r\n host.classList.remove('animate__fadeIn');\r\n host.classList.add('animate__animated', 'animate__fadeOut', 'animate__fast');\r\n }\r\n }\r\n }\r\n\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n onInit() {\r\n this._getHostElement().classList.add(`ax-${this.type}`);\r\n if (this.timeOut) {\r\n setTimeout(() => {\r\n this.dismiss()\r\n }, this.timeOut);\r\n }\r\n switch (this.type) {\r\n case 'success':\r\n this._icon = 'far fa-check-circle';\r\n break;\r\n case 'warning':\r\n this._icon = 'far fa-exclamation-triangle';\r\n break;\r\n case 'danger':\r\n this._icon = 'far fa-exclamation-circle';\r\n break;\r\n default:\r\n this._icon = 'fas fa-info-circle';\r\n break;\r\n }\r\n }\r\n\r\n onViewInit() {\r\n if (this.visible == undefined) {\r\n this.visible = true;\r\n }\r\n }\r\n\r\n\r\n dismiss() {\r\n const host = this._getHostElement();\r\n host.classList.add('animate__animated', 'animate__fadeOut', 'animate__fast');\r\n host.addEventListener('animationend', () => {\r\n host.parentElement.removeChild(host);\r\n });\r\n }\r\n\r\n hide() {\r\n this.visible = false;\r\n }\r\n\r\n show() {\r\n this.visible = true;\r\n }\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, Input, Attribute } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-alert-title',\r\n template: `\r\n <ng-content>\r\n </ng-content>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-alert-title' }\r\n})\r\nexport class AXAlertTitleComponent {\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, Input, Attribute, HostListener } from '@angular/core';\r\nimport { AXBaseClickableMixin } from '../base';\r\nimport { BUTTON_OUTPUT } from '../base/mixin/button-mixin.class';\r\n\r\n@Component({\r\n selector: 'ax-alert-button',\r\n template: `\r\n {{title}}\r\n <i *ngIf=\"icon\" class=\"{{icon}}\"></i>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n outputs: [...BUTTON_OUTPUT],\r\n host: { class: 'ax-alert-button' }\r\n})\r\nexport class AXAlertButtonComponent extends AXBaseClickableMixin {\r\n\r\n @Input()\r\n title: string;\r\n\r\n @Input()\r\n icon: string;\r\n\r\n\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr)\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n _handleOnClick(e) {\r\n this._emitOnClickEvent(e);\r\n }\r\n\r\n @HostListener('focus', ['$event'])\r\n _handleOnFocus(e) {\r\n this._emitOnFocusEvent(e);\r\n }\r\n\r\n @HostListener('blur', ['$event'])\r\n _handleOnBlur(e) {\r\n this._emitOnBlurEvent(e);\r\n }\r\n\r\n\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, Input, Attribute } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-alert-content',\r\n template: `\r\n <ng-content>\r\n </ng-content>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-alert-content' }\r\n})\r\nexport class AXAlertContentComponent {\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-alert-suffix',\r\n template: `\r\n <div class=\"ax-alert-buttons\">\r\n <ng-content select=\"ax-alert-button\">\r\n </ng-content>\r\n </div>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-alert-suffix' }\r\n})\r\nexport class AXAlertSuffixComponent {\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-alert-footer',\r\n template: `\r\n <div class=\"ax-alert-buttons\">\r\n <ng-content select=\"ax-alert-button\">\r\n </ng-content>\r\n </div>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-alert-footer' }\r\n})\r\nexport class AXAlertFooterComponent {\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXAlertComponent } from './alert.component';\r\nimport { AXAlertContentComponent } from './alert-contnet.component';\r\nimport { AXAlertTitleComponent } from './alert-title.component';\r\nimport { AXAlertButtonComponent } from './alert-button.component';\r\nimport { AXAlertFooterComponent } from './alert-footer.component';\r\nimport { AXAlertSuffixComponent } from './alert-suffix.component';\r\n\r\nconst COMPONENT = [\r\n AXAlertComponent,\r\n AXAlertContentComponent,\r\n AXAlertTitleComponent,\r\n AXAlertButtonComponent,\r\n AXAlertFooterComponent,\r\n AXAlertSuffixComponent\r\n];\r\nconst MODULES = [CommonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXAlertModule { }\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base/mixin/mixin.class';\r\n\r\n@Component({\r\n selector: 'ax-form-field',\r\n template: '<div class=\"ax-form-field\"><ng-content></ng-content></div>',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AXFormFieldComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n}","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base/mixin/mixin.class';\r\nimport { AXValidationResult } from '../validation/validation.class';\r\n\r\n@Component({\r\n selector: 'ax-form',\r\n template: '<div class=\"ax-form\"><ng-content></ng-content></div>',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AXFormComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n private cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n\r\n _getComponenets() {\r\n return Array.from(this._getHostElement().querySelectorAll('[ax-form-input=\"true\"]'));\r\n }\r\n\r\n validate(): Promise<AXValidationResult> {\r\n const widgets = this._getComponenets();\r\n //\r\n return new Promise<AXValidationResult>((resolve, reject) => {\r\n if (widgets.length === 0) {\r\n return Promise.resolve({ result: true });\r\n }\r\n Promise.all(widgets.map((c) => (c as any).__axContext__.validate())).then((rules: any) => {\r\n const failed = rules.filter((c: any) => !c.result);\r\n if (failed.length) {\r\n reject({\r\n result: false,\r\n items: failed\r\n });\r\n }\r\n else {\r\n resolve({ result: true });\r\n }\r\n });\r\n });\r\n }\r\n\r\n clear() {\r\n const widgets = this._getComponenets();\r\n widgets.forEach(w => {\r\n (w as any).__axContext__.clear();\r\n });\r\n\r\n }\r\n}","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { AXFormFieldComponent } from './form-field.component';\r\nimport { AXFormComponent } from './form.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n exports: [AXFormFieldComponent, AXFormComponent],\r\n declarations: [AXFormFieldComponent, AXFormComponent],\r\n providers: [],\r\n})\r\nexport class AXFormModule { }\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { AXSizableComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-label',\r\n templateUrl: './label.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXLabelComponent extends AXSizableComponentMixin {\r\n\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXLabelComponent } from './label.component';\r\n\r\nconst COMPONENT = [AXLabelComponent];\r\nconst MODULES = [CommonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXLabelModule { }","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostListener, Input, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { BUTTON_INPUTS } from '../base/mixin/button-mixin.class';\r\nimport { AXBaseButtonMixin } from '../base/mixin/mixin.class';\r\n\r\n@Component({\r\n selector: 'ax-button',\r\n templateUrl: 'button.component.html',\r\n inputs: ['disabled', 'tabIndex', 'size', 'cssClass', 'cssStyle','loading','loadingText', ...BUTTON_INPUTS],\r\n outputs: ['onClick', 'onBlur', 'onFocus'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AXButtonComponent extends AXBaseButtonMixin {\r\n\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr)\r\n }\r\n\r\n @HostListener('document:keydown.escape', ['$event'])\r\n onKeydownHandler(e: KeyboardEvent) {\r\n if (this.cancelBehavior) {\r\n this._emitOnClickEvent(e as any);\r\n e.stopPropagation();\r\n e.preventDefault();\r\n return false;\r\n }\r\n }\r\n}","import {\r\n Overlay,\r\n OverlayKeyboardDispatcher,\r\n OverlayPositionBuilder,\r\n ScrollStrategyOptions,\r\n OverlayContainer,\r\n OverlayRef,\r\n OverlayConfig,\r\n OverlayOutsideClickDispatcher\r\n} from '@angular/cdk/overlay';\r\nimport {\r\n ComponentFactoryResolver,\r\n Inject,\r\n Injector,\r\n NgZone,\r\n Renderer2,\r\n RendererFactory2,\r\n Injectable,\r\n} from '@angular/core';\r\n\r\nimport { Directionality } from '@angular/cdk/bidi';\r\nimport { DOCUMENT, Location } from '@angular/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DynamicOverlayContainer extends OverlayContainer {\r\n public setContainerElement(containerElement: HTMLElement): void {\r\n this._containerElement = containerElement;\r\n }\r\n}\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DynamicOverlay extends Overlay {\r\n private readonly _dynamicOverlayContainer: DynamicOverlayContainer;\r\n private renderer: Renderer2;\r\n\r\n constructor(\r\n scrollStrategies: ScrollStrategyOptions,\r\n _overlayContainer: DynamicOverlayContainer,\r\n _componentFactoryResolver: ComponentFactoryResolver,\r\n _positionBuilder: OverlayPositionBuilder,\r\n _keyboardDispatcher: OverlayKeyboardDispatcher,\r\n _injector: Injector,\r\n _ngZone: NgZone,\r\n @Inject(DOCUMENT) _document: any,\r\n _directionality: Directionality,\r\n rendererFactory: RendererFactory2,\r\n _location: Location,\r\n _outsideClickDispatcher: OverlayOutsideClickDispatcher,\r\n ) {\r\n super(\r\n scrollStrategies,\r\n _overlayContainer,\r\n _componentFactoryResolver,\r\n _positionBuilder,\r\n _keyboardDispatcher,\r\n _injector,\r\n _ngZone,\r\n _document,\r\n _directionality,\r\n _location,\r\n _outsideClickDispatcher,\r\n );\r\n this.renderer = rendererFactory.createRenderer(null, null);\r\n\r\n this._dynamicOverlayContainer = _overlayContainer;\r\n }\r\n\r\n private setContainerElement(containerElement: HTMLElement): void {\r\n this.renderer.setStyle(containerElement, 'transform', 'translateZ(0)');\r\n this._dynamicOverlayContainer.setContainerElement(containerElement);\r\n }\r\n\r\n public createOn(containerElement: HTMLElement, config?: OverlayConfig): OverlayRef {\r\n this.setContainerElement(containerElement);\r\n return super.create(config);\r\n }\r\n}","import { Injectable, ApplicationRef, ViewContainerRef, TemplateRef, EventEmitter } from '@angular/core';\r\nimport { Overlay, PositionStrategy, ScrollStrategy } from '@angular/cdk/overlay';\r\nimport { TemplatePortal, Portal, ComponentPortal } from '@angular/cdk/portal';\r\nimport { AXConnectedPosition } from '.';\r\nimport { merge } from 'rxjs';\r\nimport { DynamicOverlay } from './custom-cdk-overlay.service';\r\n\r\nexport interface AXOverlayViewRef {\r\n instance: any;\r\n dispose: () => void;\r\n isOpen: () => boolean;\r\n}\r\n\r\nexport interface AXOverlayConfigs {\r\n position?: AXConnectedPosition | AXConnectedPosition[];\r\n hasBackdrop?: boolean;\r\n transparentBackdrop?: boolean;\r\n closeOnClickOutside?: boolean;\r\n targetElement?: HTMLElement;\r\n containerElement?: HTMLElement;\r\n onBackdropClick?: () => void;\r\n panelClass?: string[] | string;\r\n backdropClass?: string[] | string;\r\n scroll?: 'auto' | 'block' | 'close';\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXOverlayService {\r\n constructor(\r\n private overlayService: DynamicOverlay,\r\n private overlayService2: Overlay,\r\n private appRef: ApplicationRef) {\r\n\r\n }\r\n\r\n show(content: any, context?: any, configs?: AXOverlayConfigs): AXOverlayViewRef {\r\n configs = Object.assign({\r\n hasBackdrop: true,\r\n transparentBackdrop: true,\r\n closeOnClickOutside: true\r\n }, configs || {});\r\n // get root viewref\r\n const viewRef: ViewContainerRef = this.appRef.components[0].instance.viewRef;\r\n\r\n let portal: Portal<any>;\r\n // get component by route\r\n if (typeof content === 'string') {\r\n // TODO\r\n }\r\n // create portal from component\r\n else if (content instanceof TemplateRef) {\r\n portal = new TemplatePortal(content, viewRef, context);\r\n }\r\n else if (typeof content === 'function') {\r\n portal = new ComponentPortal(content, viewRef);\r\n }\r\n let positionStrategy: PositionStrategy;\r\n if (configs.position && configs.targetElement) {\r\n positionStrategy = this.overlayService.position()\r\n .flexibleConnectedTo(configs.targetElement)\r\n .withPositions(\r\n Array.isArray(configs.position) ? configs.position : [configs.position]\r\n )\r\n .withPush(true);\r\n }\r\n else {\r\n positionStrategy = this.overlayService.position().global().centerHorizontally().centerVertically();\r\n }\r\n let scrollStrategy: ScrollStrategy = this.overlayService.scrollStrategies.reposition({ autoClose: true });\r\n if (configs.scroll === 'block') {\r\n scrollStrategy = this.overlayService.scrollStrategies.block();\r\n }\r\n if (configs.scroll === 'close') {\r\n scrollStrategy = this.overlayService.scrollStrategies.close();\r\n }\r\n\r\n const config = {\r\n positionStrategy,\r\n scrollStrategy,\r\n hasBackdrop: configs.hasBackdrop,\r\n disposeOnNavigation: true,\r\n backdropClass: configs.backdropClass ? configs.backdropClass : (configs.transparentBackdrop ? 'cdk-overlay-transparent-backdrop' : undefined),\r\n panelClass: configs.panelClass ? configs.panelClass : ['animate__animated', 'animate__fadeIn','animate__faster']\r\n };\r\n // joon nanat dorost sho\r\n let overlayRef = configs.containerElement ? this.overlayService.createOn(configs.containerElement, config) : this.overlayService2.create(config);\r\n\r\n const host = overlayRef.attach(portal);\r\n if (host.instance) {\r\n Object.assign(host.instance, context);\r\n setTimeout(() => {\r\n host.changeDetectorRef.detectChanges();\r\n }, 0);\r\n }\r\n if (configs.closeOnClickOutside) {\r\n merge(\r\n overlayRef.backdropClick(),\r\n overlayRef.detachments(),\r\n ).subscribe(() => {\r\n overlayRef.dispose();\r\n overlayRef = undefined;\r\n if (configs.onBackdropClick) {\r\n configs.onBackdropClick();\r\n }\r\n });\r\n\r\n }\r\n return {\r\n instance: host.instance,\r\n dispose: overlayRef.dispose.bind(overlayRef),\r\n isOpen: () => {\r\n return overlayRef.hasAttached();\r\n }\r\n };\r\n }\r\n\r\n}","import { ChangeDetectionStrategy, Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { AXButtonItem } from './button-item.class';\r\n\r\n@Component({\r\n selector: 'ax-button-item',\r\n template: `\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\n\r\nexport class AXButtonItemComponent implements AXButtonItem {\r\n\r\n @Input()\r\n cssClass: string;\r\n\r\n @Input()\r\n text: string = null;\r\n\r\n @Input()\r\n tooltip: string = null;\r\n\r\n @Input()\r\n iconClass: string;\r\n\r\n @Input()\r\n iconClassAfter: string;\r\n\r\n @Input()\r\n iconClassBefore: string;\r\n\r\n @Input()\r\n badge: string = null;\r\n\r\n location: 'before' | 'after';\r\n\r\n @Input()\r\n disabled: boolean = false;\r\n\r\n @Input()\r\n selected: boolean = false;\r\n\r\n \r\n @Input()\r\n seperated: boolean = false;\r\n\r\n @Input()\r\n name: string;\r\n\r\n @Input()\r\n data: any;\r\n}","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChildren,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n QueryList,\r\n TemplateRef,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { AXBaseComponent, AXClickEvent } from '../base';\r\nimport { BUTTON_INPUTS, _ButtonComponentMixin } from '../base/mixin/button-mixin.class';\r\nimport { _ClickableComponenetMixin } from '../base/mixin/clickable-mixin.class';\r\nimport { _DatalistComponenetMixin } from '../base/mixin/datalist-component.class';\r\nimport { _DropdownComponenetMixin } from '../base/mixin/dropdown-mixin.class';\r\nimport { _InteractiveComponenetMixin } from '../base/mixin/interactive-mixin.class';\r\nimport { _SizableComponenetMixin } from '../base/mixin/sizable-mixin.class';\r\nimport { _ValueComponenetMixin } from '../base/mixin/value-mixin.class';\r\nimport { AXOverlayService, AXOverlayViewRef } from '../base/overlay.service';\r\nimport { AXButtonItem } from './button-item.class';\r\nimport { AXButtonItemComponent } from './button-item.component';\r\n\r\nexport const AXBaseDropdownButtonMixin =\r\n _SizableComponenetMixin(\r\n _InteractiveComponenetMixin(\r\n _ClickableComponenetMixin(\r\n _ButtonComponentMixin(\r\n _DatalistComponenetMixin(\r\n _ValueComponenetMixin<any>(AXBaseComponent)\r\n )\r\n )\r\n )\r\n )\r\n )\r\n\r\n@Component({\r\n selector: 'ax-dropdown-button',\r\n templateUrl: 'dropdown-button.component.html',\r\n inputs: ['disabled', 'tabIndex', 'size', 'cssClass', ...BUTTON_INPUTS],\r\n outputs: ['onClick', 'onBlur', 'onFocus'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'ax-dropdown-button' }\r\n})\r\nexport class AXDropdownButtonComponent extends AXBaseDropdownButtonMixin {\r\n\r\n @ContentChildren(AXButtonItemComponent) _contentButtons: QueryList<AXButtonItemComponent>;\r\n\r\n @Output()\r\n onItemClick: EventEmitter<AXClickEvent> = new EventEmitter<AXClickEvent>();\r\n\r\n _emitOnItemClickEvent(e: MouseEvent, item: any): void {\r\n this.onItemClick.emit({\r\n component: this,\r\n htmlElement: this._getHostElement(),\r\n nativeEvent: e,\r\n data: item\r\n });\r\n this.close();\r\n }\r\n\r\n\r\n private _items: AXButtonItem[];\r\n @Input()\r\n public get items(): AXButtonItem[] {\r\n return this._items || [];\r\n }\r\n public set items(v: AXButtonItem[]) {\r\n this._items = v;\r\n this._calcButtons();\r\n }\r\n\r\n _buttons: any = [];\r\n\r\n _dropdownWidth: number = 100;\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef,\r\n private overlayService: AXOverlayService) {\r\n super(elementRef, cdr)\r\n }\r\n\r\n\r\n private _calcButtons(): void {\r\n this._buttons = [...this.items, ...Array.from(this._contentButtons || [])];\r\n this._cdr.markForCheck();\r\n }\r\n\r\n onViewInit() {\r\n setTimeout(() => {\r\n this._dropdownWidth = this._getHostElement().offsetWidth * 1.5;\r\n }, 500);\r\n //\r\n this._calcButtons();\r\n }\r\n\r\n @Input()\r\n dropdownIcon: string = 'ax-ic-expand-more icon';\r\n\r\n @Input()\r\n splitedbutton: boolean = true;\r\n\r\n private overlay: AXOverlayViewRef;\r\n @ViewChild('tpl')\r\n private template: TemplateRef<any>;\r\n\r\n\r\n open() {\r\n if (this.isOpen) {\r\n return;\r\n }\r\n this.overlay = this.overlayService.show(this.template, {}, {\r\n closeOnClickOutside: true,\r\n targetElement: this._getHostElement(),\r\n hasBackdrop: true,\r\n scroll:'close',\r\n position: {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top',\r\n offsetY: 2,\r\n },\r\n onBackdropClick: () => {\r\n this.close()\r\n }\r\n });\r\n }\r\n\r\n close() {\r\n if (this.overlay) {\r\n this.overlay.dispose();\r\n }\r\n }\r\n\r\n _emitOnClickEvent(e) {\r\n if (this.splitedbutton) {\r\n super._emitOnClickEvent(e);\r\n }\r\n else {\r\n this.open();\r\n }\r\n }\r\n\r\n\r\n}","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, ElementRef, EventEmitter, Input, NgZone, Output, QueryList, ViewEncapsulation } from \"@angular/core\";\r\nimport { AXClickEvent, AXInteractiveComponenetMixin } from \"../base\";\r\nimport { AXButtonItem } from \"./button-item.class\";\r\nimport { AXButtonItemComponent } from \"./button-item.component\";\r\n\r\n@Component({\r\n selector: 'ax-button-group',\r\n templateUrl: 'button-group.component.html',\r\n inputs: ['cssClass', 'size', 'cssStyle', 'rtl', 'disabled'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'ax-button-group', role: 'group' }\r\n})\r\nexport class AXButtonGroupComponent extends AXInteractiveComponenetMixin {\r\n\r\n @ContentChildren(AXButtonItemComponent) _contentButtons: QueryList<AXButtonItemComponent>;\r\n\r\n private _items: AXButtonItem[] = [];\r\n @Input()\r\n public get items(): AXButtonItem[] {\r\n return this._items;\r\n }\r\n public set items(v: AXButtonItem[]) {\r\n this._items = v;\r\n this._calcButtons();\r\n }\r\n\r\n\r\n @Input()\r\n multiple: boolean = false;\r\n\r\n @Input()\r\n selectable: boolean = false;\r\n\r\n _buttons: AXButtonItem[] = [];\r\n\r\n\r\n @Output()\r\n onItemClick: EventEmitter<AXClickEvent> = new EventEmitter<AXClickEvent>();\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n private zone: NgZone,\r\n cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr)\r\n }\r\n\r\n onViewInit() {\r\n this._calcButtons();\r\n }\r\n\r\n private _calcButtons(): void {\r\n this._buttons = [...this.items, ...Array.from(this._contentButtons || [])];\r\n this._cdr.detectChanges();\r\n }\r\n\r\n _handleClickEvent(e: MouseEvent, button: AXButtonItem) {\r\n const nativeButton = (e.target as HTMLButtonElement);\r\n if (this.selectable) {\r\n if (this.multiple) {\r\n button.selected = !button.selected;\r\n }\r\n else {\r\n this._buttons.forEach(c => {\r\n c.selected = false;\r\n })\r\n button.selected = true;\r\n }\r\n }\r\n this.onItemClick.emit({\r\n component: this,\r\n htmlElement: nativeButton,\r\n data: button,\r\n nativeEvent: e\r\n });\r\n\r\n }\r\n}","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AXButtonGroupComponent } from './button-group.component';\r\nimport { AXButtonItemComponent } from './button-item.component';\r\nimport { AXButtonComponent } from './button.component';\r\nimport { AXDropdownButtonComponent } from './dropdown-button.component';\r\n\r\n\r\nconst COMPONENT = [\r\n AXButtonComponent, \r\n AXDropdownButtonComponent, \r\n AXButtonItemComponent, \r\n AXButtonGroupComponent\r\n];\r\nconst MODULES = [CommonModule];\r\n\r\n@NgModule({\r\n imports: [MODULES],\r\n exports: [COMPONENT],\r\n declarations: [COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXButtonModule { }\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n Input,\r\n} from '@angular/core';\r\nimport { AXBaseComponentMixin, AXCalendarMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-calendar',\r\n templateUrl: './calendar.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n inputs: ['disabled', 'tabIndex', 'size', 'cssClass', 'cssStyle'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AXCalendarComponent extends AXCalendarMixin {\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n this.createYears();\r\n }\r\n @Input()\r\n actionBar: boolean = false;\r\n\r\n @Input()\r\n showTime: boolean = false;\r\n\r\n dayItems: number[] = new Array(32);\r\n yearItems: number[] = [1990];\r\n monthItems: string[] = [\r\n 'January',\r\n 'February',\r\n 'March',\r\n 'April',\r\n 'May',\r\n 'June',\r\n 'July',\r\n 'August',\r\n 'September',\r\n 'October',\r\n 'November',\r\n 'December',\r\n ];\r\n\r\n _showDays: boolean = true;\r\n _showsMonths: boolean = false;\r\n _showYears: boolean = false;\r\n\r\n showMonths() {\r\n this._showDays = false;\r\n this._showYears = false;\r\n this._showsMonths = true;\r\n }\r\n\r\n showYears() {\r\n this._showsMonths = false;\r\n this._showDays = false;\r\n this._showYears = true;\r\n }\r\n\r\n showDays() {\r\n this._showYears = false;\r\n this._showsMonths = false;\r\n this._showDays = true;\r\n }\r\n\r\n createYears() {\r\n let number = 1990;\r\n for (let i = 0; i < 40; i++) {\r\n number = number + 1;\r\n this.yearItems.push(number);\r\n }\r\n }\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-input-mask',\r\n template: '',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AXInputMaskComponent {\r\n\r\n \r\n private _prefix : string;\r\n @Input()\r\n public get prefix() : string {\r\n return this._prefix || '';\r\n }\r\n public set prefix(v : string) {\r\n this._prefix = v;\r\n }\r\n\r\n\r\n \r\n private _suffix : string;\r\n @Input()\r\n public get suffix() : string {\r\n return this._suffix || '';\r\n }\r\n public set suffix(v : string) {\r\n this._suffix = v;\r\n }\r\n \r\n \r\n\r\n @Input()\r\n showMaskTyped: boolean = false;\r\n\r\n @Input()\r\n clearIfNotMatch: boolean = false;\r\n\r\n @Input()\r\n mask: string;\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXInputMaskComponent } from './input-mask.component';\r\nimport { NgxMaskModule } from 'ngx-mask';\r\n\r\nconst COMPONENT = [AXInputMaskComponent];\r\nconst MODULES = [CommonModule, NgxMaskModule.forRoot()];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXInputMaskModule { }\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChild,\r\n ElementRef,\r\n HostBinding,\r\n OnInit,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { AXBaseTextBoxMixin } from '../base/mixin/mixin.class';\r\nimport {\r\n TEXTBOX_INPUTS,\r\n TEXTBOX_OUTPUT,\r\n} from '../base/mixin/textbox-mixin.class';\r\nimport { AXButtonComponent } from '../button';\r\nimport { AXInputMaskComponent } from '../input-mask';\r\n\r\n@Component({\r\n selector: 'ax-text-box',\r\n templateUrl: 'textbox.component.html',\r\n inputs: [\r\n 'disabled',\r\n 'readonly',\r\n 'tabIndex',\r\n 'cssClass',\r\n 'size',\r\n ...TEXTBOX_INPUTS,\r\n ],\r\n outputs: [\r\n 'valueChange',\r\n 'onValueChanged',\r\n 'onBlur',\r\n 'onFocus',\r\n ...TEXTBOX_OUTPUT,\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'ax-text-box ax-editor-container' },\r\n})\r\nexport class AXTextBoxComponent extends AXBaseTextBoxMixin {\r\n @ContentChild(AXInputMaskComponent)\r\n _contentMask: AXInputMaskComponent;\r\n\r\n //TODO: prefix suffix text\r\n\r\n\r\n @HostBinding('class')\r\n get hostClass(): string {\r\n return `${this.cssClass} ax-${this.size}`;\r\n }\r\n\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-prefix',\r\n template: `\r\n <ng-content select=\"ax-button\">\r\n </ng-content>\r\n <ng-content select=\"ax-dropdown-button\">\r\n </ng-content>\r\n <ng-content select=\"ax-icon\">\r\n </ng-content>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-prefix' }\r\n})\r\nexport class AXDecoratorPrefixComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-suffix',\r\n template: `\r\n <ng-content select=\"ax-button\">\r\n </ng-content>\r\n <ng-content select=\"ax-dropdown-button\">\r\n </ng-content>\r\n <ng-content select=\"ax-icon\">\r\n </ng-content>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-suffix' }\r\n})\r\nexport class AXDecoratorSuffixComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXDecoratorPrefixComponent } from './prefix.component';\r\nimport { AXDecoratorSuffixComponent } from './suffix.component';\r\n\r\nconst COMPONENT = [AXDecoratorPrefixComponent, AXDecoratorSuffixComponent];\r\nconst MODULES = [CommonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXEditorDecoratorModule { }\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { NgxMaskModule } from 'ngx-mask';\r\nimport { AXButtonModule } from '../button';\r\nimport { AXEditorDecoratorModule } from '../decorators';\r\nimport { AXTextBoxComponent } from './textbox.component';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule, \r\n FormsModule, \r\n AXButtonModule,\r\n AXEditorDecoratorModule,\r\n NgxMaskModule.forChild()\r\n ],\r\n exports: [AXTextBoxComponent],\r\n declarations: [AXTextBoxComponent],\r\n providers: [],\r\n})\r\nexport class AXTextBoxModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXCalendarComponent } from './calendar.component';\r\nimport { AXButtonModule } from '../button';\r\nimport { AXTextBoxModule } from '../textbox';\r\nimport { AXInputMaskModule } from '../input-mask';\r\n\r\nconst COMPONENT = [AXCalendarComponent];\r\nconst MODULES = [CommonModule, AXButtonModule, AXTextBoxModule, AXInputMaskModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXCalendarModule { }\r\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\r\nimport { TemplatePortal } from '@angular/cdk/portal';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostListener, TemplateRef, ViewChild, ViewContainerRef, ViewEncapsulation } from '@angular/core';\r\nimport { AXClickEvent } from '../base/events.class';\r\nimport { DropdownComponentInterface } from '../base/mixin/dropdown-mixin.class';\r\nimport { AXBaseDropdownMixin } from '../base/mixin/mixin.class';\r\n\r\n@Component({\r\n selector: 'ax-drop-down',\r\n templateUrl: 'dropdown.component.html',\r\n inputs: ['disabled', 'readonly', 'tabIndex', 'size', 'fitParent'],\r\n outputs: ['onOpened', 'onClosed'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { class: 'ax-dropdown' }\r\n})\r\nexport class AXDropdownComponent extends AXBaseDropdownMixin implements DropdownComponentInterface {\r\n\r\n @ViewChild('baseTemplate')\r\n _baseTemplate: TemplateRef<any>;\r\n #overlayRef: OverlayRef;\r\n #templatePortal: TemplatePortal;\r\n\r\n _dropdownWidth: number;\r\n\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef,\r\n private overlay: Overlay,\r\n private viewContainerRef: ViewContainerRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n\r\n\r\n onViewInit() {\r\n setTimeout(() => {\r\n if (this.fitParent === true) {\r\n this._dropdownWidth = this._getInnerElement().offsetWidth;\r\n } else {\r\n this._dropdownWidth = null;\r\n }\r\n }, 500);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.#overlayRef?.detach();\r\n this.#overlayRef?.dispose();\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n _handleKeydownHandler(e: KeyboardEvent) {\r\n if (e.key === 'Enter' && e.type === 'keydown') {\r\n this.toggle();\r\n }\r\n if (e.key === 'Escape') {\r\n if (this.isOpen) {\r\n this.close();\r\n e.stopPropagation();\r\n }\r\n }\r\n }\r\n\r\n _handleArrowClickEvent(e: AXClickEvent) {\r\n this.toggle();\r\n }\r\n\r\n\r\n toggle() {\r\n if (this.disabled !== true && this.readonly !== true) {\r\n this.isOpen ? this.close() : this.open();\r\n }\r\n }\r\n\r\n close() {\r\n if (!this.isOpen) {\r\n return;\r\n }\r\n this.#overlayRef?.detach();\r\n this._emitOnClosedEvent();\r\n }\r\n\r\n open() {\r\n if (this.isOpen) {\r\n return;\r\n }\r\n this._ensureOverlayCreated();\r\n this.#overlayRef.attach(this.#templatePortal);\r\n this._emitOnOpenedEvent();\r\n }\r\n\r\n private _ensureOverlayCreated() {\r\n let baseSize = Number(getComputedStyle(document.documentElement).getPropertyValue('--ax-base-size').replace('px', ''));\r\n\r\n if (!this.#overlayRef) {\r\n const positionStrategy = this.overlay.position()\r\n .flexibleConnectedTo(this._getInnerElement())\r\n .withPositions([\r\n {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top',\r\n offsetY: baseSize\r\n },\r\n {\r\n originX: 'start',\r\n originY: 'top',\r\n overlayX: 'start',\r\n overlayY: 'bottom'\r\n }\r\n ])\r\n .withPush(false);\r\n this.#overlayRef = this.overlay.create({\r\n positionStrategy,\r\n scrollStrategy: this.overlay.scrollStrategies.close(),\r\n panelClass: ['animate__animated', 'animate__fadeIn', 'animate__faster'],\r\n hasBackdrop: true,\r\n backdropClass: ['cdk-overlay-transparent-backdrop']\r\n });\r\n this.#overlayRef.backdropClick().subscribe(() => {\r\n this.close();\r\n });\r\n }\r\n if (!this.#templatePortal) {\r\n this.#templatePortal = new TemplatePortal(this._baseTemplate, this.viewContainerRef);\r\n }\r\n }\r\n\r\n get isOpen(): boolean {\r\n return this.#overlayRef ? this.#overlayRef.hasAttached() : false;\r\n }\r\n}","import { OverlayModule } from '@angular/cdk/overlay';\r\nimport { NgModule } from '@angular/core';\r\nimport { AXButtonModule } from '../button';\r\n\r\nimport { AXDropdownComponent } from './dropdown.component';\r\n\r\n@NgModule({\r\n imports: [AXButtonModule,OverlayModule],\r\n exports: [AXDropdownComponent],\r\n declarations: [AXDropdownComponent],\r\n providers: [],\r\n})\r\nexport class AXDropdownModule { }\r\n","import { Overlay } from '@angular/cdk/overlay';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostListener, NgZone, ViewChild, ViewContainerRef, ViewEncapsulation } from '@angular/core';\r\nimport { AXBaseSelectionDropdownMixin } from '../base';\r\nimport { DropdownComponentInterface } from '../base/mixin/dropdown-mixin.class';\r\nimport { AXDropdownComponent } from '../dropdown';\r\n\r\n@Component({\r\n selector: 'ax-select-box',\r\n templateUrl: 'selectbox.component.html',\r\n inputs: ['disabled', 'readonly', 'tabIndex', 'size', 'fitParent', 'value', 'items', 'multiple', 'allowNull', 'valueField', 'textField'],\r\n outputs: ['onOpened', 'onClosed', 'valueChange', 'onValueChanged', 'onBlur', 'onFocus'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: { 'class': 'ax-select-box' }\r\n})\r\nexport class AXSelectBoxComponent extends AXBaseSelectionDropdownMixin implements DropdownComponentInterface {\r\n\r\n @ViewChild(AXDropdownComponent)\r\n private dropdown: AXDropdownComponent;\r\n\r\n @ViewChild('listContainer', { static: true })\r\n private listContainer: ElementRef<HTMLDivElement>;\r\n\r\n\r\n _currentfocusedIndex: number = -1;\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef,\r\n private zone: NgZone\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n open(): void {\r\n this.dropdown.open();\r\n }\r\n close(): void {\r\n this.dropdown.close();\r\n }\r\n toggle(): void {\r\n this.dropdown.toggle();\r\n }\r\n\r\n\r\n onViewInit() {\r\n this.dropdown.onOpened.subscribe(() => {\r\n this._focusSelectedItem();\r\n });\r\n }\r\n\r\n get isOpen(): boolean {\r\n return this.dropdown.isOpen;\r\n }\r\n\r\n\r\n _handleOnItemClick(e: MouseEvent, item: any) {\r\n this.close();\r\n this.toggleSelect(item);\r\n }\r\n\r\n _handleListScroll(e: UIEvent) {\r\n const list = e.target as HTMLDivElement;\r\n if ((list.scrollTop < list.scrollHeight - list.clientHeight)) {\r\n return;\r\n }\r\n this._fetchData();\r\n }\r\n\r\n private _checkForLoadData() {\r\n const list = this.listContainer.nativeElement;\r\n if (this.loadedCount < this.totalCount && list.clientHeight < list.parentElement.clientHeight) {\r\n this._fetchData();\r\n }\r\n }\r\n\r\n _onDataLoaded() {\r\n setTimeout(() => {\r\n this._checkForLoadData();\r\n }, 100);\r\n }\r\n\r\n _handleOnRemoveItemClick(e: MouseEvent, item: any) {\r\n this.unselectItems(item)\r\n e.stopPropagation();\r\n }\r\n\r\n @HostListener('document:keydown', ['$event'])\r\n _handleKeydown(e: KeyboardEvent) {\r\n if (!(\r\n this._getHostElement() == document.activeElement ||\r\n this._getHostElement().contains(document.activeElement) ||\r\n this.listContainer.nativeElement.contains(document.activeElement)\r\n )) {\r\n return;\r\n }\r\n\r\n if (e.key === 'Escape' || this.disabled || this.readonly) {\r\n this.close();\r\n e.preventDefault();\r\n return;\r\n }\r\n const isLetter = new RegExp(/[a-zA-Z0-9\\-]/).test(String.fromCharCode(e.keyCode));\r\n if (e.key === 'Backspace' && e.type === 'keydown' &&\r\n ((this.allowNull === true && this.selectedItems.length > 0) ||\r\n (this.allowNull !== true && this.selectedItems.length > 1))) {\r\n this.isUserInput = true;\r\n this.unselectItems(this.selectedItems.pop());\r\n e.preventDefault();\r\n return;\r\n }\r\n else if ((e.key === 'ArrowDown' || e.key === 'ArrowUp') && this.displayItems.length > 0 && !this.dropdown.isOpen && e.type === 'keydown') {\r\n if (this.multiple) {\r\n this.open();\r\n }\r\n else {\r\n this.isUserInput = true;\r\n if (e.ctrlKey) {\r\n this.open();\r\n }\r\n else {\r\n this._selectedItemByIndex(this._currentfocusedIndex + (e.key === 'ArrowDown' ? 1 : -1));\r\n }\r\n }\r\n e.preventDefault();\r\n return;\r\n }\r\n else if (isLetter) {\r\n this.text = e.key;\r\n this.open();\r\n e.preventDefault();\r\n return;\r\n }\r\n if (this.dropdown.isOpen) {\r\n if ((e.key === 'ArrowDown' || e.key === 'ArrowUp') && this.displayItems.length > 0) {\r\n this.isUserInput = true;\r\n this._focusItemByNav((e.key === 'ArrowDown' ? 1 : -1));\r\n if (!this.multiple) {\r\n this.selectItems(this.displayItems[this._currentfocusedIndex]);\r\n }\r\n e.preventDefault();\r\n return;\r\n }\r\n if ((e.key === 'Enter' || e.code === 'Space')) {\r\n const focusedItem = this.displayItems[this._currentfocusedIndex];\r\n if (focusedItem) {\r\n if (this.multiple) {\r\n this.isUserInput = true;\r\n this.toggleSelect(focusedItem);\r\n }\r\n else {\r\n this.isUserInput = true;\r\n this.selectItems(focusedItem);\r\n this.close();\r\n }\r\n }\r\n e.preventDefault();\r\n return;\r\n }\r\n }\r\n }\r\n\r\n\r\n private _focusItemByNav(sign: -1 | 1 | null = null): void {\r\n if (sign == null) {\r\n const lastSelectedItem = this.selectedItems[this.selectedItems.length - 1];\r\n this._currentfocusedIndex = lastSelectedItem ? this.displayItems.findIndex(c => c[this.valueField] == lastSelectedItem[this.valueField]) : 0;\r\n }\r\n else {\r\n sign === -1 ? this._currentfocusedIndex-- : this._currentfocusedIndex++;\r\n }\r\n if (this._currentfocusedIndex < 0) {\r\n this._currentfocusedIndex = 0;\r\n }\r\n if (this._currentfocusedIndex > this.displayItems.length - 1) {\r\n this._currentfocusedIndex = this.displayItems.length - 1;\r\n }\r\n\r\n // set scroll\r\n this._focusItemByIndex(this._currentfocusedIndex);\r\n }\r\n\r\n private _focusItemByIndex(inedx: number) {\r\n if (this.listContainer) {\r\n this.zone.runOutsideAngular(() => {\r\n const itemDiv = this.listContainer.nativeElement.querySelector<HTMLElement>(`.ax-list-item:nth-child(${inedx + 1})`);\r\n if (itemDiv) {\r\n itemDiv.focus();\r\n itemDiv.scrollIntoView({ behavior: 'auto' });\r\n }\r\n });\r\n }\r\n }\r\n\r\n private _focusSelectedItem() {\r\n const lastSelectedItem = this.selectedItems[this.selectedItems.length - 1];\r\n this._currentfocusedIndex = lastSelectedItem ? this.displayItems.findIndex(c => c[this.valueField] == lastSelectedItem[this.valueField]) : 0;\r\n this._focusItemByIndex(this._currentfocusedIndex);\r\n }\r\n\r\n private _selectedItemByIndex(index: number) {\r\n if (index < 0) {\r\n index = 0;\r\n }\r\n if (index > this.displayItems.length - 1) {\r\n index = this.displayItems.length - 1;\r\n }\r\n this.selectItems(this.displayItems[index]);\r\n this._currentfocusedIndex = index;\r\n }\r\n}","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXButtonModule } from '../button';\r\nimport { AXDropdownModule } from '../dropdown';\r\n\r\nimport { AXSelectBoxComponent } from './selectbox.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule, AXDropdownModule, FormsModule],\r\n exports: [AXSelectBoxComponent],\r\n declarations: [AXSelectBoxComponent],\r\n providers: [],\r\n})\r\nexport class AXSelectBoxModule { }\r\n","import { Component, ChangeDetectorRef, ChangeDetectionStrategy, ViewEncapsulation, ElementRef } from '@angular/core';\r\nimport { AXBaseValueComponentMixin } from '../base';\r\nimport { VALUE_INPUTS, VALUE_OUTPUT } from '../base/mixin/value-mixin.class';\r\n\r\n@Component({\r\n selector: 'ax-switch',\r\n templateUrl: './switch.component.html',\r\n inputs: ['disabled', 'readonly', 'tabIndex', 'size', 'cssClass', 'cssStyle', ...VALUE_INPUTS],\r\n outputs: ['onBlur', 'onFocus', ...VALUE_OUTPUT],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AXSwitchComponent extends AXBaseValueComponentMixin {\r\n\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n handleOnClickEvent(e: MouseEvent) {\r\n if (this.readonly || this.disabled) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXSwitchComponent } from './switch.component';\r\n\r\n@NgModule({\r\n declarations: [AXSwitchComponent],\r\n imports: [CommonModule, FormsModule],\r\n exports: [AXSwitchComponent],\r\n entryComponents: [AXSwitchComponent],\r\n providers: [],\r\n})\r\nexport class AXSwitchModule {\r\n\r\n}","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n} from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-datepicker',\r\n templateUrl: './datepicker.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AXDatepickerComponent extends AXBaseComponentMixin {\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n this.createYears();\r\n }\r\n dayItems: number[] = new Array(32);\r\n yearItems: number[] = [1990];\r\n monthItems: string[] = [\r\n 'January',\r\n 'February',\r\n 'March',\r\n 'April',\r\n 'May',\r\n 'June',\r\n 'July',\r\n 'August',\r\n 'September',\r\n 'October',\r\n 'November',\r\n 'December',\r\n ];\r\n\r\n _showDays: boolean = true;\r\n _showsMonths: boolean = false;\r\n _showYears: boolean = false;\r\n\r\n showMonths() {\r\n this._showDays = false;\r\n this._showYears = false;\r\n this._showsMonths = true;\r\n }\r\n\r\n showYears() {\r\n this._showsMonths = false;\r\n this._showDays = false;\r\n this._showYears = true;\r\n }\r\n\r\n showDays() {\r\n this._showYears = false;\r\n this._showsMonths = false;\r\n this._showDays = true;\r\n }\r\n\r\n createYears() {\r\n let number = 1990;\r\n for (let i = 0; i < 40; i++) {\r\n number = number + 1;\r\n this.yearItems.push(number);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXDatepickerComponent } from './datepicker.component';\r\nimport { AXCalendarModule } from '../calendar';\r\nimport { AXDropdownModule } from '../dropdown';\r\n\r\nconst COMPONENT = [AXDatepickerComponent];\r\nconst MODULES = [CommonModule, AXCalendarModule, AXDropdownModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXDatepickerModule { }\r\n","import { Component, ChangeDetectorRef, ChangeDetectionStrategy, ViewEncapsulation, ElementRef, Input } from '@angular/core';\r\nimport { AXBaseValueComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-check-box',\r\n templateUrl: './checkbox.component.html',\r\n inputs: ['disabled', 'readonly', 'tabIndex', 'size', 'value'],\r\n outputs: ['valueChange', 'onValueChanged', 'onBlur', 'onFocus'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AXCheckBoxComponent extends AXBaseValueComponentMixin {\r\n\r\n //TODO: apply it\r\n @Input()\r\n indeterminate: boolean = false;\r\n\r\n @Input()\r\n label: string = 'checkbox';\r\n\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n\r\n onInit() {\r\n super.onInit();\r\n if (!this.indeterminate && this.value == null) {\r\n this.value = false;\r\n }\r\n }\r\n\r\n\r\n _handleOnClickEvent(e: MouseEvent) {\r\n if (this.readonly || this.disabled) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXCheckBoxComponent } from './checkbox.component';\r\n@NgModule({\r\n declarations: [AXCheckBoxComponent],\r\n imports: [CommonModule, FormsModule],\r\n exports: [AXCheckBoxComponent],\r\n providers: [],\r\n})\r\nexport class AXCheckBoxModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostBinding, Input, ViewEncapsulation } from '@angular/core';\r\nimport { AXValidationRuleResult, AXValidationRule, AXValidationRuleTypes } from './validation.class';\r\nimport { AXTranslator } from '@acorex/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\n\r\n\r\n// @dynamic\r\nexport class AXValidationRules {\r\n private static registredRules: { name: string, rule: AXValidationRule }[] = [];\r\n\r\n public static addRule(name: string, rule: AXValidationRule) {\r\n const exists = AXValidationRules.get(name);\r\n if (exists) {\r\n exists.rule = rule;\r\n }\r\n else {\r\n AXValidationRules.registredRules.push({\r\n name,\r\n rule\r\n });\r\n }\r\n }\r\n\r\n public static get(name: string) {\r\n return this.registredRules.find(c => c.name === name);\r\n }\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'ax-validation-rule',\r\n template: '',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXValidationRuleComponent extends AXBaseComponentMixin implements AXValidationRule {\r\n\r\n @Input()\r\n type: AXValidationRuleTypes = 'required';\r\n\r\n @Input()\r\n message: string;\r\n\r\n @Input()\r\n showMessage: boolean = true;\r\n\r\n @Input()\r\n value: any;\r\n\r\n @Input()\r\n enabled: boolean = true;\r\n\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n onInit() {\r\n (this._getHostElement() as any).validate = this.validate.bind(this);\r\n }\r\n\r\n validate(value: any): Promise<AXValidationRuleResult> {\r\n if (this.enabled === false) {\r\n return Promise.resolve({ result: true });\r\n }\r\n const regRule = AXValidationRules.get(this.type);\r\n if (regRule) {\r\n return this._internalValidate(regRule.rule.type, value, this.message || regRule.rule.message, regRule.rule.value);\r\n }\r\n else {\r\n return this._internalValidate(this.type, value, this.message, this.value);\r\n }\r\n }\r\n\r\n\r\n private _internalValidate(type: string, value?: any, message?: string, ruleValue?: any): Promise<AXValidationRuleResult> {\r\n return new Promise<AXValidationRuleResult>(resolve => {\r\n switch (type) {\r\n case 'required':\r\n resolve({\r\n message: this.showMessage ? (message || AXTranslator.get('validation.messages.required')) : null,\r\n result: value != null && value != '' && (!Array.isArray(value) || (Array.isArray(value) && value.length > 0))\r\n });\r\n break;\r\n case 'regex':\r\n const ex = new RegExp(ruleValue);\r\n resolve({\r\n message: this.showMessage ? (message || AXTranslator.get('validation.messages.regex')) : null,\r\n result: ex.test(value)\r\n });\r\n break;\r\n case 'custom':\r\n case 'callback':\r\n if (typeof ruleValue === 'function') {\r\n const res: any = {};\r\n res.message = this.showMessage ? message : null;\r\n const val = ruleValue({ value, message });\r\n if (val instanceof Promise) {\r\n val.then(c => {\r\n res.result = c;\r\n }).catch(c => {\r\n res.result = false;\r\n }).finally(() => {\r\n resolve(res);\r\n });\r\n }\r\n else {\r\n res.result = val;\r\n resolve(res);\r\n }\r\n }\r\n else {\r\n resolve({ result: true });\r\n }\r\n break;\r\n default:\r\n resolve({ result: true });\r\n }\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXValidationRuleComponent, AXValidationRules } from './validation-rule.widget';\r\nimport { AXTranslator } from '@acorex/core';\r\n\r\n\r\n@NgModule({\r\n declarations: [AXValidationRuleComponent],\r\n imports: [CommonModule],\r\n exports: [AXValidationRuleComponent],\r\n providers: []\r\n})\r\nexport class AXValidationModule {\r\n constructor() {\r\n AXValidationRules.addRule('email', {\r\n message: AXTranslator.get('validation.messages.email'),\r\n type: 'regex',\r\n value: /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/\r\n })\r\n AXValidationRules.addRule('phone', {\r\n message: AXTranslator.get('validation.messages.phone'),\r\n type: 'regex',\r\n value: /^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$/\r\n })\r\n }\r\n}\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy,\r\n ViewEncapsulation,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n Input,\r\n} from '@angular/core';\r\nimport { AXBaseSelectionValueMixin, AXDirection } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-selection-list',\r\n templateUrl: './selection-list.component.html',\r\n inputs: [\r\n 'disabled',\r\n 'readonly',\r\n 'tabIndex',\r\n 'size',\r\n 'value',\r\n 'valueField',\r\n 'textField',\r\n 'multiple',\r\n 'items',\r\n 'selectionMode',\r\n ],\r\n outputs: ['valueChange', 'onValueChanged', 'onBlur', 'onFocus'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AXSelectionListComponent extends AXBaseSelectionValueMixin {\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n @Input()\r\n direction: AXDirection = 'horizontal';\r\n\r\n _handleOnItemValueChange(item: any, checked: boolean, e: Event) {\r\n if (this.readonly || this.disabled) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n } else {\r\n checked ? this.selectItems(item) : this.unselectItems(item);\r\n }\r\n }\r\n\r\n // _handleOnClickEvent(e: MouseEvent) {\r\n //\r\n // if (this.readonly || this.disabled) {\r\n // e.preventDefault();\r\n // e.stopPropagation();\r\n // }\r\n // }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXSelectionListComponent } from './selection-list.component';\r\nimport { AXCheckBoxModule } from '../checkbox/checkbox.module';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n declarations: [AXSelectionListComponent],\r\n imports: [CommonModule, FormsModule, AXCheckBoxModule],\r\n exports: [AXSelectionListComponent],\r\n providers: []\r\n})\r\nexport class AXSelectionListModule { }\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, Input, ContentChild, TemplateRef, HostListener, ViewChild } from '@angular/core';\r\nimport { AXBaseSelectionValueMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-datalist',\r\n templateUrl: './datalist.component.html',\r\n inputs: ['disabled', 'readonly', 'tabIndex', 'size', 'value', 'items', 'pageSize'],\r\n outputs: ['valueChange', 'onValueChanged', 'onBlur', 'onFocus'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-list ax-list-container' }\r\n})\r\nexport class AXDataListComponent extends AXBaseSelectionValueMixin {\r\n\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n @ViewChild('container')\r\n _container: ElementRef<HTMLDivElement>\r\n\r\n @ContentChild('itemTemplate', { static: true })\r\n _contentItemTemplate: TemplateRef<any>;\r\n\r\n private _itemTemplate: TemplateRef<any>;\r\n @Input()\r\n public get itemTemplate(): TemplateRef<any> {\r\n return this._itemTemplate ? this._itemTemplate : this._contentItemTemplate;\r\n }\r\n public set itemTemplate(v: TemplateRef<any>) {\r\n this._itemTemplate = v;\r\n }\r\n\r\n @ContentChild('emptyTemplate', { static: true })\r\n _contentEmptyTemplate: TemplateRef<any>;\r\n\r\n private _emptyTemplate: TemplateRef<any>;\r\n @Input()\r\n public get emptyTemplate(): TemplateRef<any> {\r\n return this._emptyTemplate ? this._emptyTemplate : this._contentEmptyTemplate;\r\n }\r\n public set emptyTemplate(v: TemplateRef<any>) {\r\n this._emptyTemplate = v;\r\n }\r\n\r\n @ContentChild('loadingTemplate', { static: true })\r\n _contentloadingTemplate: TemplateRef<any>;\r\n\r\n private _loadingTemplate: TemplateRef<any>;\r\n @Input()\r\n public get loadingTemplate(): TemplateRef<any> {\r\n return this._loadingTemplate ? this._loadingTemplate : this._contentloadingTemplate;\r\n }\r\n public set loadingTemplate(v: TemplateRef<any>) {\r\n this._loadingTemplate = v;\r\n }\r\n\r\n\r\n _handleOnItemClick(e: MouseEvent, item: any) {\r\n this.selectItems(item);\r\n }\r\n\r\n _handleListScroll(e: UIEvent) {\r\n const list = e.target as HTMLDivElement;\r\n if ((list.scrollTop < list.scrollHeight - list.clientHeight)) {\r\n return;\r\n }\r\n this._fetchData();\r\n }\r\n\r\n\r\n private _checkForLoadData() {\r\n const list = this._container.nativeElement;\r\n if (this.loadedCount < this.totalCount && list.clientHeight < list.parentElement.clientHeight) {\r\n this._fetchData();\r\n }\r\n }\r\n\r\n _onDataLoaded() {\r\n setTimeout(() => {\r\n this._checkForLoadData();\r\n }, 100);\r\n\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXDataListComponent } from './datalist.component';\r\nimport { AXButtonModule } from '../button';\r\n\r\n\r\n\r\nconst COMPONENT = [AXDataListComponent];\r\nconst MODULES = [CommonModule, AXButtonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXDataListModule { }\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\nimport { AXButtonComponent, AXButtonItem } from '../button';\r\nimport { AXToastOptions } from './toast.class';\r\n\r\n@Component({\r\n selector: 'ax-toast',\r\n templateUrl: './toast.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-toast' }\r\n})\r\nexport class AXToastComponent extends AXBaseComponentMixin {\r\n\r\n options: AXToastOptions;\r\n _toastWidth: number = 100;\r\n _icon: string;\r\n close: () => void;\r\n\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n onInit() {\r\n this._getHostElement().classList.add(`ax-${this.options.type}`);\r\n if (this.options.timeOut) {\r\n const interval = setInterval(() => {\r\n --this._toastWidth;\r\n this._cdr.markForCheck();\r\n if (this._toastWidth === 0) {\r\n clearInterval(interval);\r\n this.close();\r\n }\r\n }, this.options.timeOut / 100);\r\n }\r\n switch (this.options.type) {\r\n case 'success':\r\n this._icon = 'ax-ic ax-ic-check-circle-outline ax-text-2xl';\r\n break;\r\n case 'warning':\r\n this._icon = 'ax-ic ax-ic-warning ax-text-2xl';\r\n break;\r\n case 'danger':\r\n this._icon = 'ax-ic ax-ic-error-outline ax-text-2xl';\r\n break;\r\n default:\r\n this._icon = 'ax-ic ax-ic-info-outline ax-text-2xl';\r\n break;\r\n }\r\n }\r\n\r\n _handleButtonClick(button: AXButtonItem) {\r\n if (button.onClick) {\r\n button.onClick(this);\r\n }\r\n }\r\n\r\n\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXToastComponent } from './toast.component';\r\nimport { AXButtonModule } from '../button';\r\n\r\nconst COMPONENT = [AXToastComponent];\r\nconst MODULES = [CommonModule, AXButtonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXToastModule { }\r\n","import { Overlay } from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { AXToastOptions, AXToastRef } from './toast.class';\r\nimport { AXToastComponent } from './toast.component';\r\n\r\n\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXToastService {\r\n\r\n constructor(private overlayService: Overlay, private parentInjector: Injector) { }\r\n\r\n private _activeList: AXToastComponent[] = [];\r\n\r\n info(content: string) {\r\n this.show({\r\n timeOut: 2500,\r\n type: 'info',\r\n title: content\r\n });\r\n }\r\n\r\n success(content: string) {\r\n this.show({\r\n timeOut: 2500,\r\n type: 'success',\r\n title: content\r\n });\r\n }\r\n\r\n warning(content: string) {\r\n this.show({\r\n timeOut: 2500,\r\n type: 'warning',\r\n title: content\r\n });\r\n }\r\n\r\n danger(content: string) {\r\n this.show({\r\n timeOut: 2500,\r\n type: 'danger',\r\n title: content\r\n });\r\n }\r\n\r\n show(options: AXToastOptions): AXToastRef {\r\n const opt = Object.assign(\r\n {\r\n closeable: true,\r\n location: 'bottom-center'\r\n },\r\n options\r\n );\r\n const marging = 5;\r\n\r\n let positionStrategy = this.overlayService.position().global();\r\n const pos = this.getPosition(opt.location) + marging + 'px';\r\n switch (opt.location) {\r\n case 'bottom-center':\r\n positionStrategy = positionStrategy.bottom(pos).centerHorizontally()\r\n break;\r\n case 'bottom-end':\r\n positionStrategy = positionStrategy.bottom(pos).right(marging + 'px');\r\n break;\r\n case 'bottom-start':\r\n positionStrategy = positionStrategy.bottom(pos).left(marging + 'px');\r\n break;\r\n case 'top-center':\r\n positionStrategy = positionStrategy.top(pos).centerHorizontally()\r\n break;\r\n case 'top-end':\r\n positionStrategy = positionStrategy.top(pos).right(marging + 'px');\r\n break;\r\n case 'top-start':\r\n positionStrategy = positionStrategy.top(pos).left(marging + 'px');\r\n break;\r\n default:\r\n break;\r\n }\r\n const overlayRef = this.overlayService.create(\r\n {\r\n positionStrategy,\r\n panelClass: ['animate__animated', 'animate__fadeIn', 'animate__faster'],\r\n });\r\n const toastPortal = new ComponentPortal(AXToastComponent, null, this.parentInjector);\r\n\r\n const host = overlayRef.attach(toastPortal);\r\n (host.instance as any).visibleIndex = this._activeList.length;\r\n this._activeList.push(host.instance);\r\n if (host.instance) {\r\n Object.assign(host.instance, {\r\n options: opt,\r\n close: () => {\r\n this._activeList = this._activeList.filter(c => c != host.instance);\r\n overlayRef.dispose()\r\n }\r\n });\r\n setTimeout(() => {\r\n host.changeDetectorRef.detectChanges();\r\n }, 0);\r\n }\r\n\r\n return {\r\n close: () => {\r\n host.instance.close();\r\n }\r\n }\r\n }\r\n\r\n private getPosition(location: string) {\r\n const list = this._activeList.filter(c => c.options.location == location);\r\n if (list.length == 0) return 0;\r\n if (location.split('-')[0] == 'bottom') {\r\n return window.innerHeight - list[list.length - 1]._getHostElement().offsetTop;\r\n }\r\n else {\r\n return list[list.length - 1]._getHostElement().offsetTop + list[list.length - 1]._getHostElement().offsetHeight;\r\n }\r\n }\r\n}\r\n","import { animate, style, transition, trigger } from '@angular/animations';\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n Input,\r\n} from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-tooltip',\r\n templateUrl: './tooltip.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-tooltip' },\r\n animations: [\r\n trigger('tooltip', [\r\n transition(':enter', [\r\n style({ opacity: 0 }),\r\n animate(50, style({ opacity: 1 })),\r\n ]),\r\n transition(':leave', [animate(50, style({ opacity: 0 }))]),\r\n ]),\r\n ],\r\n})\r\nexport class AXTooltipComponent extends AXBaseComponentMixin {\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n @Input()\r\n text: string = 'Text';\r\n\r\n @Input() position = 'top';\r\n}\r\n","import {\r\n ComponentRef,\r\n Directive,\r\n ElementRef,\r\n HostListener,\r\n Input,\r\n OnInit,\r\n} from '@angular/core';\r\nimport {\r\n Overlay,\r\n OverlayPositionBuilder,\r\n OverlayRef,\r\n} from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { AXTooltipComponent } from './tooltip.component';\r\n\r\n@Directive({ selector: '[axTooltip]' })\r\nexport class AXTooltipDirective implements OnInit {\r\n @Input('axTooltip') text = '';\r\n @Input('axTooltipPositon') position = 'top';\r\n\r\n private overlayRef: OverlayRef;\r\n\r\n positions: any;\r\n\r\n constructor(\r\n private overlay: Overlay,\r\n private overlayPositionBuilder: OverlayPositionBuilder,\r\n private elementRef: ElementRef\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n switch (this.position) {\r\n default:\r\n case 'top':\r\n this.positions = {\r\n originX: 'center',\r\n originY: 'top',\r\n overlayX: 'center',\r\n overlayY: 'bottom',\r\n offsetY: -8,\r\n };\r\n break;\r\n case 'right':\r\n this.positions = {\r\n originX: 'end',\r\n originY: 'center',\r\n overlayX: 'start',\r\n overlayY: 'center',\r\n offsetX: 8,\r\n };\r\n break;\r\n case 'bottom':\r\n this.positions = {\r\n originX: 'center',\r\n originY: 'bottom',\r\n overlayX: 'center',\r\n overlayY: 'top',\r\n offsetY: 8,\r\n };\r\n break;\r\n case 'left':\r\n this.positions = {\r\n originX: 'start',\r\n originY: 'center',\r\n overlayX: 'end',\r\n overlayY: 'center',\r\n offsetX: -8,\r\n };\r\n break;\r\n }\r\n const positionStrategy = this.overlayPositionBuilder\r\n .flexibleConnectedTo(this.elementRef)\r\n .withPositions([this.positions]);\r\n\r\n this.overlayRef = this.overlay.create({ positionStrategy });\r\n }\r\n\r\n @HostListener('mouseenter')\r\n show() {\r\n const tooltipRef: ComponentRef<AXTooltipComponent> = this.overlayRef.attach(\r\n new ComponentPortal(AXTooltipComponent)\r\n );\r\n\r\n tooltipRef.instance.text = this.text;\r\n tooltipRef.instance.position = this.position;\r\n }\r\n\r\n @HostListener('mouseout')\r\n hide() {\r\n this.overlayRef.detach();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXTooltipComponent } from './tooltip.component';\r\nimport { AXTooltipDirective } from './tooltip.directive';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\n\r\nconst COMPONENT = [AXTooltipComponent, AXTooltipDirective];\r\nconst MODULES = [CommonModule, OverlayModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXTooltipModule {}\r\n","import { AXConfig } from '@acorex/core';\r\nimport { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-loading',\r\n template: '',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-loading' }\r\n})\r\nexport class AXLoadingComponent extends AXBaseComponentMixin {\r\n\r\n constructor(elementRef: ElementRef<HTMLDivElement>, cdr: ChangeDetectorRef,) {\r\n super(elementRef, cdr);\r\n elementRef.nativeElement.innerHTML = AXConfig.get('layout.loading') || '';\r\n }\r\n\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n ComponentFactoryResolver,\r\n Directive,\r\n ElementRef,\r\n Input,\r\n OnChanges,\r\n Renderer2,\r\n SimpleChanges, ViewContainerRef\r\n } from '@angular/core';\r\nimport { AXLoadingComponent } from './loading.component';\r\n \r\n \r\n const OVERLAY_CLASS = 'loading-overlay';\r\n \r\n // This directive places an overlay with a loading spinner over its host element\r\n // if isLoading equals to true and hides the overlay when isLoading becomes false.\r\n @Directive({\r\n selector: '[axIsLoading]'\r\n })\r\n export class AXLoadingDirective implements OnChanges {\r\n @Input('axIsLoading')\r\n isLoading = false;\r\n \r\n protected overlayElement!: HTMLDivElement;\r\n protected spinnerElement!: HTMLDivElement;\r\n protected hostElement!: HTMLDivElement;\r\n \r\n constructor(\r\n protected readonly elementRef: ElementRef,\r\n protected readonly renderer: Renderer2,\r\n protected readonly changeDetectorRef: ChangeDetectorRef,\r\n protected readonly viewContainerRef: ViewContainerRef,\r\n protected readonly componentFactoryResolver: ComponentFactoryResolver,\r\n ) {\r\n this.hostElement = this.elementRef.nativeElement;\r\n this.hostElement.style.position = 'relative';\r\n }\r\n \r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (!this.overlayElement || !this.spinnerElement) {\r\n this.init();\r\n }\r\n \r\n if (changes.isLoading) {\r\n const isLoadingValue = changes.isLoading.currentValue;\r\n \r\n if (isLoadingValue) {\r\n this.addLoadingIndicator();\r\n }\r\n else {\r\n this.removeLoadingIndicator();\r\n }\r\n \r\n this.changeDetectorRef.markForCheck();\r\n }\r\n }\r\n \r\n protected addLoadingIndicator(): void {\r\n this.renderer.appendChild(this.hostElement, this.overlayElement);\r\n this.renderer.appendChild(this.overlayElement, this.spinnerElement);\r\n }\r\n \r\n protected removeLoadingIndicator(): void {\r\n this.renderer.removeChild(this.overlayElement, this.spinnerElement);\r\n this.renderer.removeChild(this.hostElement, this.overlayElement);\r\n this.viewContainerRef.clear();\r\n }\r\n \r\n protected init(): void {\r\n this.initOverlayElement();\r\n this.initSpinnerComponent();\r\n }\r\n \r\n protected initSpinnerComponent(): void {\r\n const spinnerComponentFactory = this.componentFactoryResolver.resolveComponentFactory(AXLoadingComponent);\r\n const spinnerComponent = this.viewContainerRef.createComponent(spinnerComponentFactory);\r\n this.spinnerElement = spinnerComponent.location.nativeElement;\r\n }\r\n \r\n protected initOverlayElement(): void {\r\n this.overlayElement = this.renderer.createElement('div');\r\n this.renderer.addClass(this.overlayElement, OVERLAY_CLASS);\r\n }\r\n }\r\n ","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXLoadingComponent } from './loading.component';\r\nimport { AXLoadingDirective } from './loading.directive';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\n\r\nconst COMPONENT = [AXLoadingComponent, AXLoadingDirective];\r\nconst MODULES = [CommonModule, OverlayModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXLoadingModule { }\r\n","import { Injectable, NgZone } from '@angular/core';\r\nimport { asyncScheduler, BehaviorSubject, Observable } from 'rxjs';\r\nimport { finalize, observeOn } from 'rxjs/operators';\r\nimport { AXOverlayService, AXOverlayViewRef } from '../base/overlay.service';\r\nimport { AXLoadingComponent } from './loading.component';\r\n\r\ntype LoadingContext = object;\r\ntype LoaderId = string | number; // expected enum values\r\nconst DEFAULT_LOADER_ID: LoaderId = '_DEFAULT';\r\n\r\n/**\r\n * Used for centrally setting/unsetting loading flags for components or services.\r\n * Should be connected to global HTTP interceptor which will unset\r\n * the loading flags in case an error happens using the clearLoadings() method.\r\n *\r\n * FAQ:\r\n * Q: How to change loading flag for a parent component?\r\n * A: Inject the parent component as a dependency to your constructor and\r\n * call loadingService.setLoading(parentComponent, STATE).\r\n * \r\n * Q: How to change loading flag for a child component?\r\n * A: Use a @ViewChild with component selector and pass the\r\n * reference of the child to setLoading method.\r\n *\r\n * Q: I need more loading indicators in my components. How to?\r\n * A: Assign a LoaderId to each indicator and then use them\r\n * with calls to methods of this service.\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AXLoadingService {\r\n // WeakMap will remove components from itself upon\r\n // their garbage collection by JS runtime.\r\n protected loadingStates = new WeakMap<LoadingContext, Map<LoaderId, boolean>>();\r\n // Both loading state maps are kept in-sync such that\r\n // they can be used by both sync and async methods.\r\n protected loadingStates$ = new WeakMap<LoadingContext, Map<LoaderId, BehaviorSubject<boolean>>>();\r\n\r\n constructor(protected zoneRef: NgZone, private overlayService: AXOverlayService) { }\r\n\r\n private _stack: { id: number, component: AXOverlayViewRef }[] = [];\r\n\r\n show(location?: Element): number {\r\n let host: Element;\r\n if (location) {\r\n host = location.closest('.ax-loading-host');\r\n }\r\n const containerElement = (host || location) as HTMLDivElement;\r\n const com = this.overlayService.show(AXLoadingComponent, {},\r\n {\r\n closeOnClickOutside: false,\r\n containerElement,\r\n hasBackdrop: true,\r\n backdropClass: ['ax-loading-overlay'],\r\n scroll: 'block'\r\n });\r\n const id = new Date().getTime();\r\n this._stack.push({ id, component: com });\r\n return id;\r\n }\r\n\r\n hide(id): void {\r\n const f = this._stack.find(c => c.id === id);\r\n if (f) {\r\n f.component.dispose();\r\n this._stack = this._stack.filter(c => c.id !== id);\r\n }\r\n }\r\n\r\n\r\n // Observable creation operator.\r\n // LoaderId can be used when there are multiple loading indicators associated to a single context.\r\n // Context can be any object, though in practice, components and services will be the most common contexts.\r\n // loaderId is a non-mandatory parameter - when not specified, a default loaderId is used.\r\n // Such a scenario is used when your context has contains only one loading indicator.\r\n doLoading<V>(source$: Observable<V>, context: LoadingContext, loaderId?: LoaderId): Observable<V> {\r\n this.startLoading(context, loaderId);\r\n\r\n return source$.pipe(\r\n observeOn(asyncScheduler),\r\n finalize(() => this.endLoading(context, loaderId)),\r\n );\r\n }\r\n\r\n // To be used in your html templates.\r\n // Returns a boolean indicating whether a given loader is active in a given context.\r\n // If loaderId is unspecified, the method will return a logical disjunction of all\r\n // loader states in the context.\r\n isLoading(context: LoadingContext, loaderId?: LoaderId): boolean {\r\n const loaderStates = this.loadingStates.get(context);\r\n\r\n if (!loaderStates) {\r\n return false;\r\n }\r\n else {\r\n if (loaderId !== undefined) {\r\n return loaderStates.get(this.getLoaderId(loaderId)) ?? false;\r\n }\r\n else {\r\n return [...loaderStates.values()].filter(state => state).length > 0;\r\n }\r\n }\r\n }\r\n\r\n // To be used in your html templates with async pipes.\r\n // Returns an Observable of booleans indicating whether a given loader is active in a given context.\r\n isLoading$(context: LoadingContext, loaderId?: LoaderId): Observable<boolean> {\r\n const coalescedLoaderId = this.getLoaderId(loaderId);\r\n\r\n if (!this.hasLoadingStates(context, coalescedLoaderId)) {\r\n this.setLoadingState(context, false, loaderId);\r\n }\r\n\r\n return this.loadingStates$.get(context).get(coalescedLoaderId);\r\n }\r\n\r\n // The startLoading and endLoading methods are intended to be used when handling\r\n // complex scenarios where a need for extended usage flexibility is desired.\r\n startLoading(context: LoadingContext, loaderId?: LoaderId): void {\r\n this.setLoadingState(context, true, this.getLoaderId(loaderId));\r\n }\r\n\r\n endLoading(context: LoadingContext, loaderId?: LoaderId): void {\r\n this.setLoadingState(context, false, this.getLoaderId(loaderId));\r\n }\r\n\r\n // To be called by middleware code (HTTP interceptors/routing listeners, etc.).\r\n clearLoadings(): void {\r\n this.loadingStates = new WeakMap<LoadingContext, Map<LoaderId, boolean>>();\r\n this.loadingStates$ = new WeakMap<LoadingContext, Map<LoaderId, BehaviorSubject<boolean>>>();\r\n }\r\n\r\n protected setLoadingState(context: LoadingContext, state: boolean, loaderId: LoaderId): void {\r\n if (!this.hasLoadingStates(context, loaderId)) {\r\n if (this.hasContextLoadingState(context)) {\r\n this.loadingStates.get(context).set(loaderId, state);\r\n this.loadingStates$.get(context).set(loaderId, new BehaviorSubject<boolean>(state));\r\n }\r\n else {\r\n this.loadingStates.set(context, new Map<LoaderId, boolean>([\r\n [loaderId, state]\r\n ]));\r\n this.loadingStates$.set(context, new Map<LoaderId, BehaviorSubject<boolean>>([\r\n [loaderId, new BehaviorSubject<boolean>(state)]\r\n ]));\r\n }\r\n }\r\n else {\r\n // @ts-ignore - loadingStates[context] is surely defined in this branch\r\n this.loadingStates.get(context).set(loaderId, state);\r\n this.loadingStates$.get(context).get(loaderId).next(state);\r\n }\r\n }\r\n\r\n protected hasLoadingStates(context: LoadingContext, loaderId: LoaderId) {\r\n return this.hasContextLoadingState(context) && this.hasLoaderLoadingState(context, loaderId);\r\n }\r\n\r\n protected hasContextLoadingState(context: LoadingContext) {\r\n return this.loadingStates.has(context) && this.loadingStates$.has(context);\r\n }\r\n\r\n protected hasLoaderLoadingState(context: LoadingContext, loaderId: LoaderId) {\r\n return this.loadingStates.get(context).has(loaderId) && this.loadingStates$.get(context).has(loaderId);\r\n }\r\n\r\n protected getLoaderId(loaderId?: LoaderId): LoaderId {\r\n return loaderId ?? DEFAULT_LOADER_ID;\r\n }\r\n}\r\n","import { ChangeDetectorRef, ElementRef, Injectable } from \"@angular/core\";\r\nimport { AXBaseComponentMixin } from \"../base\";\r\nimport { AXLoadingService } from \"../loading\";\r\n\r\n@Injectable()\r\nexport abstract class AXPageComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef,\r\n private _loadingService: AXLoadingService\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n private _loadingId: number;\r\n\r\n private _isLoading: boolean = false;\r\n public get isLoading(): boolean {\r\n return this._isLoading;\r\n }\r\n public set isLoading(v: boolean) {\r\n this._isLoading = v;\r\n if (this._loadingId && !v) {\r\n this._loadingService.hide(this._loadingId);\r\n this._loadingId = null;\r\n }\r\n if (v) {\r\n this._loadingId = this._loadingService.show(this._getHostElement());\r\n }\r\n }\r\n}","import { EventEmitter, Injectable, ViewChild } from '@angular/core';\r\nimport { AXButtonClickEvent, AXEvent } from '../base/events.class';\r\n\r\n\r\nimport { Subject } from 'rxjs';\r\nimport { AXButtonItem } from '../button';\r\nimport { AXPageComponent } from './page.component';\r\n\r\nexport const TAB_META_KEY = '__meta__';\r\n\r\nexport class AXPageCloseEvent extends AXEvent {\r\n data?:any\r\n}\r\nexport class AXPageClosing {\r\n cancel: boolean = false;\r\n data?: any;\r\n}\r\n\r\nexport class AXPageResult {\r\n sender: any;\r\n data?: any;\r\n}\r\n\r\nexport class AXPageClosedPromise extends Promise<AXPageResult> {\r\n\r\n private closeMethod: () => void;\r\n constructor(\r\n executor: (resolve: (value?: AXPageResult | PromiseLike<AXPageResult>) => void,\r\n reject: (reason?: any) => void) => void\r\n ) {\r\n super(executor);\r\n }\r\n\r\n public close() {\r\n if (this.closeMethod) {\r\n this.closeMethod();\r\n }\r\n }\r\n}\r\n\r\n\r\n@Injectable()\r\nexport abstract class AXBasePageComponent {\r\n\r\n @ViewChild(AXPageComponent, { static: true })\r\n private pageContainer: AXPageComponent;\r\n\r\n private _isLoading: boolean = false;\r\n public get isLoading(): boolean {\r\n return this._isLoading;\r\n }\r\n public set isLoading(v: boolean) {\r\n this._isLoading = v;\r\n if (this.pageContainer) {\r\n this.pageContainer.isLoading = this.isLoading;\r\n }\r\n }\r\n\r\n\r\n onClosed: EventEmitter<AXPageCloseEvent> = new EventEmitter<AXPageCloseEvent>();\r\n\r\n close(data?: any) {\r\n this.onClosed.emit({\r\n component: this,\r\n data: data\r\n });\r\n }\r\n\r\n onClosing(e: AXPageClosing): void | Promise<void> {\r\n }\r\n\r\n ngOnDestroy() {\r\n this.onClosed.unsubscribe();\r\n }\r\n}\r\n\r\nexport abstract class AXBasePopupPageComponent extends AXBasePageComponent {\r\n\r\n constructor() {\r\n super();\r\n setTimeout(() => {\r\n this._configFooterButtons(this.getFooterButtons());\r\n });\r\n }\r\n\r\n\r\n private _footerButtons: AXButtonItem[] = [];\r\n onFooterButtonsChanged = new Subject<AXButtonItem[]>();\r\n\r\n protected get footerButtons(): AXButtonItem[] {\r\n return this._footerButtons || [];\r\n }\r\n\r\n protected _configFooterButtons(buttons?: AXButtonItem[]) {\r\n if (buttons) {\r\n this._footerButtons = buttons;\r\n this.onFooterButtonsChanged.next(buttons);\r\n }\r\n else {\r\n this.onFooterButtonsChanged.next(this.footerButtons);\r\n }\r\n }\r\n\r\n onFooterButtonClick(e: AXButtonClickEvent) {\r\n }\r\n\r\n getFooterButtons(): AXButtonItem[] {\r\n return [];\r\n }\r\n}","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, ViewChild, ViewContainerRef, ComponentFactoryResolver, HostListener, ComponentRef, EventEmitter, TemplateRef } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { AXBaseComponentMixin } from '../base';\r\nimport { AXPageCloseEvent, TAB_META_KEY } from '../page/base-page.class';\r\nimport { AXButtonItem } from '../button';\r\nimport { AXLoadingService } from '../loading';\r\n\r\n@Component({\r\n selector: 'ax-popup',\r\n templateUrl: './popup.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXPopupComponent extends AXBaseComponentMixin {\r\n\r\n isLoading: boolean = true;\r\n _loadingId: number;\r\n private comRef: ComponentRef<any>;\r\n\r\n title: string;\r\n\r\n onClosed: EventEmitter<AXPageCloseEvent> = new EventEmitter<AXPageCloseEvent>();\r\n\r\n size: 'sm' | 'md' | 'lg' | 'full' = 'sm';\r\n\r\n data: any = {};\r\n\r\n maximizable: boolean = false;\r\n\r\n closable: boolean = true;\r\n\r\n content: any;\r\n\r\n headerButtons: AXButtonItem[] = [];\r\n\r\n footerButtons: AXButtonItem[] = [];\r\n\r\n private _onFooterButtonsSubscription: Subscription;\r\n\r\n @ViewChild('popupBody', { read: ViewContainerRef, static: true })\r\n private popupBody: ViewContainerRef;\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef,\r\n private resolver: ComponentFactoryResolver,\r\n private loadingService: AXLoadingService,\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n onViewInit() {\r\n this._loadingId = this.loadingService.show(this._getHostElement().querySelector('.ax-popup-body-container'));\r\n if (typeof this.content === 'string') {\r\n // this.rendererService.findLoadedComponentByRoute(this.content, 20).then(route => {\r\n // setTimeout(() => {\r\n // this.loadComponent(route?.component);\r\n // }, 300);\r\n // });\r\n }\r\n else if (this.content instanceof TemplateRef) {\r\n const view = this.content.createEmbeddedView({ $implicit: this.data });\r\n this.popupBody.insert(view);\r\n this.isLoading = false;\r\n this.loadingService.hide(this._loadingId);\r\n }\r\n else if (typeof this.content === 'function') {\r\n setTimeout(() => {\r\n this.loadComponent(this.content);\r\n });\r\n }\r\n }\r\n\r\n private loadComponent(component: any) {\r\n\r\n if (component == null) {\r\n //TODO: 404 page component\r\n console.error(`Invalid page Component! ${this.content}`);\r\n return;\r\n }\r\n ///\r\n try {\r\n const factory = this.resolver.resolveComponentFactory(component);\r\n this.comRef = this.popupBody.createComponent(factory);\r\n const com = this.comRef.instance as any;\r\n if (com.onClosed) {\r\n com.onClosed.subscribe((e: AXPageCloseEvent) => {\r\n this.onClosed.emit(e);\r\n });\r\n }\r\n this[TAB_META_KEY].component = com;\r\n Object.assign(this[TAB_META_KEY].component, this.data);\r\n //\r\n if (com.getFooterButtons) {\r\n this.footerButtons = com.getFooterButtons();\r\n }\r\n if (com.onFooterButtonsChanged) {\r\n this._onFooterButtonsSubscription = (com.onFooterButtonsChanged as EventEmitter<AXButtonItem[]>).subscribe(c => {\r\n this.footerButtons = c;\r\n this._cdr.detectChanges();\r\n });\r\n }\r\n //\r\n this.focus();\r\n this.isLoading = false;\r\n this.loadingService.hide(this._loadingId);\r\n setTimeout(() => {\r\n this.comRef.changeDetectorRef.detectChanges();\r\n }, 100);\r\n this._cdr.detectChanges();\r\n } catch (error) {\r\n //TODO: 404 page component\r\n console.error(error);\r\n }\r\n }\r\n\r\n\r\n @HostListener('keydown.escape', ['$event'])\r\n onKeydownHandler(event: KeyboardEvent) {\r\n if (this.closable) {\r\n this.close();\r\n }\r\n }\r\n\r\n _handleCloseClick() {\r\n this.close();\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.comRef) {\r\n this.comRef.destroy();\r\n }\r\n if (this._onFooterButtonsSubscription) {\r\n this._onFooterButtonsSubscription.unsubscribe();\r\n }\r\n this._cdr.detectChanges();\r\n this.loadingService.hide(this._loadingId);\r\n }\r\n\r\n focus() {\r\n setTimeout(() => this._getHostElement().focus());\r\n }\r\n\r\n close() {\r\n this.onClosed.emit({\r\n component: this[TAB_META_KEY].component,\r\n htmlElement: this._getHostElement(),\r\n });\r\n this._cdr.detectChanges();\r\n }\r\n\r\n onFullScreen() { }\r\n\r\n _handleButtonClick(e: AXButtonItem) {\r\n if (e.onClick) {\r\n e.onClick();\r\n }\r\n else if (this[TAB_META_KEY].component.onFooterButtonClick) {\r\n this[TAB_META_KEY].component.onFooterButtonClick({\r\n component: this[TAB_META_KEY].component,\r\n name: e.name,\r\n data: e,\r\n htmlElement: this._getHostElement(),\r\n });\r\n }\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AXOverlayService, AXOverlayViewRef } from '../base/overlay.service';\r\nimport { AXButtonItem } from '../button';\r\nimport { AXPageClosedPromise, AXPageCloseEvent, TAB_META_KEY } from '../page';\r\nimport { AXPopupComponent } from './popup.component';\r\n\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXPopupService {\r\n private stack: Array<AXPopupComponent> = [];\r\n\r\n constructor(private overlayService: AXOverlayService) { }\r\n\r\n\r\n\r\n open(content: any, title: string): AXPageClosedPromise;\r\n open(\r\n content: any,\r\n options?: {\r\n title: string;\r\n closable?: boolean;\r\n maximizable?: boolean;\r\n size?: 'sm' | 'md' | 'lg' | 'full';\r\n data?: any;\r\n footerButtons?: AXButtonItem[]\r\n }\r\n ): AXPageClosedPromise;\r\n\r\n open(arg1, arg2): AXPageClosedPromise {\r\n const options: any = {\r\n closable: true,\r\n size: 'md',\r\n maximizable: false,\r\n footerButtons: []\r\n };\r\n if (typeof arg2 === 'string') {\r\n options.title = arg2;\r\n } else {\r\n Object.assign(options, arg2);\r\n }\r\n const com = this.overlayService.show(AXPopupComponent, options, { transparentBackdrop: false, closeOnClickOutside: false, scroll: 'block' });\r\n const popup = com.instance as AXPopupComponent;\r\n popup.content = arg1;\r\n popup[TAB_META_KEY] = {};\r\n if (options.size) {\r\n popup.size = options.size;\r\n }\r\n if (options.footerButtons) {\r\n popup.footerButtons = options.footerButtons;\r\n }\r\n this.stack.push(popup);\r\n popup.onClosed.subscribe(c => {\r\n this.closePopup(popup, com, c);\r\n });\r\n const promise = new AXPageClosedPromise((resolve) => {\r\n popup[TAB_META_KEY].close = (e) => {\r\n if (resolve) {\r\n resolve(e);\r\n }\r\n };\r\n });\r\n promise['closeMethod'] = () => { popup.close(); };\r\n return promise;\r\n }\r\n\r\n\r\n private closePopup(popup: AXPopupComponent, com: AXOverlayViewRef, result: AXPageCloseEvent) {\r\n const closeFunc = (e) => {\r\n com.dispose();\r\n this.stack.pop();\r\n delete e.cancel;\r\n popup[TAB_META_KEY].close(e);\r\n if (this.stack.length) { this.stack.reverse()[0].focus(); }\r\n };\r\n const e = { cancel: false };\r\n const closingFunc = popup[TAB_META_KEY]?.component?.onClosing;\r\n if (closingFunc) {\r\n const res = closingFunc(e);\r\n if (res instanceof Promise) {\r\n res.then(() => {\r\n if (e == null || e.cancel !== true) {\r\n closeFunc(result);\r\n }\r\n });\r\n }\r\n else {\r\n if (e == null || e.cancel !== true) {\r\n closeFunc(result);\r\n }\r\n }\r\n } else {\r\n closeFunc(result);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXPopupComponent } from './popup.component';\r\nimport { AXButtonModule } from '../button';\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\n\r\nconst COMPONENT = [AXPopupComponent];\r\nconst MODULES = [CommonModule, DragDropModule, A11yModule, AXButtonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXPopupModule { }\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\nimport { AXButtonItem } from '../button';\r\nimport { AXDialogOptions } from './dialog.class';\r\n\r\n@Component({\r\n selector: 'ax-dialog',\r\n templateUrl: './dialog.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXDialogComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n options: AXDialogOptions;\r\n _icon: string;\r\n close: () => void;\r\n\r\n onInit() {\r\n\r\n switch (this.options.type) {\r\n case 'success':\r\n this._icon = 'ax-ic ax-ic-check';\r\n break;\r\n case 'danger':\r\n case 'warning':\r\n this._icon = 'ax-ic ax-ic-warning';\r\n break;\r\n default:\r\n this._icon = 'ax-ic ax-ic-info-outline';\r\n break;\r\n }\r\n }\r\n\r\n _handleButtonClick(button: AXButtonItem) {\r\n if (button.onClick) {\r\n button.onClick();\r\n }\r\n }\r\n\r\n}\r\n","import { AXStyleType } from \"../base/styles.class\";\r\nimport { AXButtonItem } from \"../button\";\r\n\r\nexport interface AXDialogOptions {\r\n title: string;\r\n content: string;\r\n buttons?: AXButtonItem[]\r\n type: AXStyleType;\r\n}\r\n\r\nexport interface AXDialogRef {\r\n close(): void;\r\n}\r\n\r\nexport class AXDialogAlertResult {\r\n private _executor: (close: (e?: any) => void) => void;\r\n constructor(\r\n executor: (close: (e?: any) => void) => void\r\n ) {\r\n this._executor = executor;\r\n setTimeout(() => {\r\n this._executor(this.closeAction);\r\n }, 50);\r\n }\r\n\r\n private closeAction: (e?: any) => void;\r\n\r\n close(action: (e?: any) => void): AXDialogAlertResult {\r\n this.closeAction = action;\r\n return this;\r\n }\r\n\r\n}\r\n\r\nexport class AXDialogConfirmResult {\r\n private _executor: (okay: () => void, cancel: () => void, final: () => void) => void;\r\n constructor(\r\n executor: (okay: () => void, cancel: () => void, final: () => void) => void\r\n ) {\r\n this._executor = executor;\r\n setTimeout(() => {\r\n this._executor(this.okayAction, this.cancelAction, this.finalAction);\r\n }, 50);\r\n }\r\n\r\n private okayAction: () => void;\r\n private cancelAction: () => void;\r\n private finalAction: () => void;\r\n\r\n okay(action: () => void): AXDialogConfirmResult {\r\n this.okayAction = action;\r\n return this;\r\n }\r\n cancel(action: () => void): AXDialogConfirmResult {\r\n this.cancelAction = action;\r\n\r\n return this;\r\n }\r\n final(action: () => void) {\r\n this.finalAction = action;\r\n }\r\n}\r\n\r\n\r\nexport class AXDialogResult {\r\n private _executor: (then: (name: string) => void, final: () => void) => void;\r\n constructor(\r\n executor: (then: (name: string) => void, final: () => void) => void\r\n ) {\r\n this._executor = executor;\r\n setTimeout(() => {\r\n this._executor(this.thenAction, this.finalAction);\r\n }, 50);\r\n }\r\n\r\n private thenAction: (name: string) => void;\r\n private finalAction: () => void;\r\n\r\n then(action: (name: string) => void): AXDialogResult {\r\n this.thenAction = action;\r\n return this;\r\n }\r\n\r\n final(action: () => void) {\r\n this.finalAction = action;\r\n }\r\n}","import { AXTranslator } from '@acorex/core';\r\nimport { Overlay } from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { AXStyleType } from '../base/styles.class';\r\nimport {\r\n AXDialogAlertResult,\r\n AXDialogConfirmResult,\r\n AXDialogOptions,\r\n AXDialogRef,\r\n AXDialogResult,\r\n} from './dialog.class';\r\nimport { AXDialogComponent } from './dialog.component';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AXDialogService {\r\n constructor(\r\n private overlayService: Overlay,\r\n private parentInjector: Injector\r\n ) {}\r\n\r\n alert(title: string, content: string): AXDialogAlertResult {\r\n return new AXDialogAlertResult((close) => {\r\n const popup = this.open({\r\n title,\r\n type: 'info',\r\n content,\r\n buttons: [\r\n {\r\n name: 'confirm',\r\n text: AXTranslator.get('common.confirm'),\r\n class: 'ax-info',\r\n onClick: () => {\r\n popup.close();\r\n if (close) {\r\n close();\r\n }\r\n },\r\n },\r\n ],\r\n });\r\n });\r\n }\r\n\r\n confirm(\r\n title: string,\r\n content: string,\r\n type: AXStyleType = 'info'\r\n ): AXDialogConfirmResult {\r\n return new AXDialogConfirmResult((okay, cancel, final) => {\r\n const popup = this.open({\r\n title,\r\n content,\r\n type,\r\n buttons: [\r\n {\r\n name: 'confirm',\r\n text: AXTranslator.get('common.confirm'),\r\n class: `ax-${type}`,\r\n onClick: () => {\r\n popup.close();\r\n if (okay) {\r\n okay();\r\n }\r\n if (final) {\r\n final();\r\n }\r\n },\r\n submitBehavior: true,\r\n cancelBehavior: false,\r\n },\r\n {\r\n name: 'cancel',\r\n text: AXTranslator.get('common.cancel'),\r\n class: `ax-light-outline`,\r\n onClick: () => {\r\n popup.close();\r\n if (cancel) {\r\n cancel();\r\n }\r\n if (final) {\r\n final();\r\n }\r\n },\r\n submitBehavior: false,\r\n cancelBehavior: true,\r\n },\r\n ],\r\n });\r\n });\r\n }\r\n\r\n show(options: AXDialogOptions): AXDialogResult {\r\n return new AXDialogResult((then, final) => {\r\n const popup = this.open(options);\r\n options.buttons?.forEach((b) => {\r\n const orginalClick = b.onClick;\r\n b.onClick = () => {\r\n popup.close();\r\n if (orginalClick) {\r\n orginalClick();\r\n }\r\n if (then) {\r\n then(b.name);\r\n }\r\n if (final) {\r\n final();\r\n }\r\n };\r\n });\r\n });\r\n }\r\n\r\n private open(options: AXDialogOptions): AXDialogRef {\r\n let positionStrategy = this.overlayService\r\n .position()\r\n .global()\r\n .centerHorizontally()\r\n .centerVertically();\r\n const overlayRef = this.overlayService.create({\r\n positionStrategy,\r\n hasBackdrop: true,\r\n panelClass: ['animate__animated', 'animate__fadeIn', 'animate__faster'],\r\n });\r\n const dialogPortal = new ComponentPortal(\r\n AXDialogComponent,\r\n null,\r\n this.parentInjector\r\n );\r\n const host = overlayRef.attach(dialogPortal);\r\n if (host.instance) {\r\n Object.assign(host.instance, {\r\n options: options,\r\n close: () => {\r\n overlayRef.dispose();\r\n },\r\n });\r\n setTimeout(() => {\r\n host.changeDetectorRef.detectChanges();\r\n }, 0);\r\n }\r\n\r\n return {\r\n close: () => {\r\n host.instance.close();\r\n },\r\n };\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXDialogComponent } from './dialog.component';\r\nimport { AXButtonModule } from '../button';\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\n\r\nconst COMPONENT = [AXDialogComponent];\r\nconst MODULES = [CommonModule, DragDropModule, A11yModule, AXButtonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXDialogModule { }\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, NgZone, Input, HostBinding, Output, EventEmitter, HostListener } from '@angular/core';\r\nimport { AXBaseComponentMixin, AXEvent } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-drawer',\r\n template: `\r\n <ng-content>\r\n </ng-content>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-drawer' }\r\n})\r\nexport class AXDrawerComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n cdr: ChangeDetectorRef,\r\n private zone: NgZone\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n @Output()\r\n onChanged: EventEmitter<AXEvent> = new EventEmitter<AXEvent>();\r\n\r\n @Input()\r\n mode: 'push' | 'overlay' = 'push';\r\n\r\n _currentMode: 'push' | 'overlay'\r\n\r\n @Input()\r\n location: 'start' | 'end' = 'start';\r\n\r\n private _backdrop: HTMLDivElement;\r\n\r\n private _collapsed: boolean = false;\r\n @Input()\r\n public get collapsed(): boolean {\r\n return this._collapsed;\r\n }\r\n public set collapsed(v: boolean) {\r\n if (v != this._collapsed) {\r\n this._collapsed = v;\r\n this._updateClass();\r\n this._emitChange();\r\n }\r\n }\r\n\r\n onInit() {\r\n this._getHostElement().classList.add(this.location == 'start' ? 'ax-drawer-start' : 'ax-drawer-end');\r\n this._currentMode = this.mode;\r\n }\r\n\r\n private _updateClass() {\r\n this.zone.runOutsideAngular(() => {\r\n const elm = this._getHostElement();\r\n // \r\n this._currentMode == 'overlay' ? this._setOverlayMode() : this._setPushMode();\r\n //\r\n if (this.collapsed) {\r\n elm.classList.remove('ax-expanded');\r\n elm.classList.add('ax-collapsed');\r\n if (this._currentMode == 'overlay') {\r\n this._removeBackdrop();\r\n }\r\n }\r\n else {\r\n elm.classList.add('ax-expanded');\r\n elm.classList.remove('ax-collapsed');\r\n if (this._currentMode == 'overlay') {\r\n this._addBackdrop();\r\n }\r\n }\r\n });\r\n }\r\n\r\n onViewInit() {\r\n this._detectSize();\r\n }\r\n\r\n toggle() {\r\n this.collapsed = !this.collapsed;\r\n }\r\n\r\n @HostListener('window:resize', ['$event'])\r\n _handleWindowsResize(e:UIEvent) {\r\n this._detectSize();\r\n }\r\n \r\n\r\n _detectSize() {\r\n //TODO detect break size\r\n const bound = this._getHostElement().parentElement.getBoundingClientRect();\r\n if (bound.width == 0) {\r\n console.log('Drawe invalid size', bound);\r\n setTimeout(() => {\r\n this._detectSize();\r\n }, 1);\r\n return;\r\n }\r\n if (bound.width < 400) {\r\n this._currentMode = 'overlay';\r\n this.collapsed = true;\r\n }\r\n else {\r\n this._currentMode = this.mode;\r\n }\r\n this._updateClass();\r\n this._emitChange();\r\n }\r\n\r\n private _emitChange() {\r\n this.onChanged.emit({\r\n component: this,\r\n htmlElement: this.elementRef.nativeElement\r\n })\r\n }\r\n\r\n private _setOverlayMode() {\r\n this._currentMode = 'overlay';\r\n this._getHostElement().classList.remove('ax-drawer-push');\r\n this._getHostElement().classList.add('ax-drawer-overlay');\r\n\r\n }\r\n\r\n private _setPushMode() {\r\n this._currentMode = 'push';\r\n this._getHostElement().classList.remove('ax-drawer-overlay');\r\n this._getHostElement().classList.add('ax-drawer-push');\r\n this._removeBackdrop();\r\n }\r\n\r\n private _addBackdrop() {\r\n if (!this._backdrop) {\r\n this._backdrop = document.createElement('div');\r\n this._backdrop.classList.add('ax-drawer-backdrop')\r\n this._getHostElement().parentElement.prepend(this._backdrop);\r\n this._backdrop.addEventListener('click', this._handleBackfropClick.bind(this));\r\n }\r\n }\r\n\r\n private _removeBackdrop() {\r\n if (this._backdrop) {\r\n this._backdrop.removeEventListener('click', this._handleBackfropClick.bind(this));\r\n this._getHostElement().parentElement.removeChild(this._backdrop);\r\n this._backdrop = null;\r\n }\r\n }\r\n\r\n private _handleBackfropClick(e: MouseEvent) {\r\n this._removeBackdrop();\r\n this.collapsed = true;\r\n }\r\n\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, NgZone, ContentChildren, QueryList } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\nimport { AXDrawerComponent } from './drawer.component';\r\n\r\n@Component({\r\n selector: 'ax-drawer-container',\r\n template: `\r\n <ng-content select=\"ax-drawer[location='start']\">\r\n </ng-content>\r\n <ng-content select=\"ax-drawer-content\">\r\n </ng-content>\r\n <ng-content select=\"ax-drawer[location='end']\">\r\n </ng-content>\r\n `,\r\n inputs: ['rtl'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-drawer-container' }\r\n})\r\nexport class AXDrawerContainerComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef,\r\n private zone: NgZone\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n\r\n @ContentChildren(AXDrawerComponent)\r\n drawers: QueryList<AXDrawerComponent>;\r\n\r\n\r\n onViewInit() {\r\n this._updateWidth();\r\n // add animation\r\n setTimeout(() => {\r\n this._getHostElement().querySelectorAll('ax-drawer').forEach(c => {\r\n c.classList.add('ax-animated');\r\n });\r\n }, 100);\r\n\r\n this.drawers.forEach(c => {\r\n c.onChanged.subscribe(c => {\r\n this._updateWidth();\r\n });\r\n });\r\n }\r\n\r\n private _updateWidth() {\r\n this.zone.runOutsideAngular(() => {\r\n const container = this._getHostElement().closest('ax-drawer-container') as HTMLDivElement;\r\n const parentWidth = this._getHostElement().getBoundingClientRect().width;\r\n let w = 0;\r\n this._getHostElement().querySelectorAll('ax-drawer').forEach(c => {\r\n const elm = c as HTMLDivElement;\r\n const width = elm.getBoundingClientRect().width;\r\n const overflow = parentWidth < width;\r\n const diff = width - parentWidth;\r\n w += ['ax-expanded', 'ax-drawer-push'].every(c => elm.classList.contains(c)) ? width : 0;\r\n elm.style.setProperty('--attr-width', `${width}px`);\r\n //TODO check overflow\r\n elm.style.setProperty('--attr-diff', `${overflow ? diff : 0}px`);\r\n });\r\n container.style.setProperty('--attr-content-width', `${parentWidth - w}px`);\r\n });\r\n }\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-drawer-content',\r\n template: `\r\n <ng-content>\r\n </ng-content>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-drawer-content' }\r\n})\r\nexport class AXDrawerContentComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXDrawerComponent } from './drawer.component';\r\nimport { AXDrawerContainerComponent } from './drawer-container.component';\r\nimport { AXDrawerContentComponent } from './drawer-content.component';\r\n\r\nconst COMPONENT = [AXDrawerComponent, AXDrawerContainerComponent, AXDrawerContentComponent];\r\nconst MODULES = [CommonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXDrawerModule { }\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-side-menu',\r\n templateUrl: './side-menu.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host : { class: 'ax-side-menu' }\r\n})\r\nexport class AXSideMenuComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef, \r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXSideMenuComponent } from './side-menu.component';\r\n\r\nconst COMPONENT = [AXSideMenuComponent];\r\nconst MODULES = [CommonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXSideMenuModule { }\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n HostBinding,\r\n} from '@angular/core';\r\nimport { MaskApplierService } from 'ngx-mask';\r\nimport { AXBaseTextBoxMixin } from '../base';\r\nimport {\r\n TEXTBOX_INPUTS,\r\n TEXTBOX_OUTPUT,\r\n} from '../base/mixin/textbox-mixin.class';\r\n\r\n@Component({\r\n selector: 'ax-number-box',\r\n templateUrl: './number-box.component.html',\r\n inputs: [\r\n 'disabled',\r\n 'readonly',\r\n 'tabIndex',\r\n 'size',\r\n 'value',\r\n ...TEXTBOX_INPUTS,\r\n ],\r\n outputs: [\r\n 'valueChange',\r\n 'onValueChanged',\r\n 'onBlur',\r\n 'onFocus',\r\n ...TEXTBOX_OUTPUT,\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-number-box ax-editor-container' },\r\n})\r\nexport class AXNumberBoxComponent extends AXBaseTextBoxMixin {\r\n\r\n @HostBinding('class')\r\n get hostClass(): string {\r\n return `${this.cssClass} ax-${this.size}`;\r\n }\r\n\r\n @Input()\r\n separator: string = ',';\r\n\r\n @Input()\r\n thousandSeparator: boolean = false;\r\n\r\n @Input()\r\n step: number = 1;\r\n\r\n @Input()\r\n scale: number = 0;\r\n\r\n @Input()\r\n decimalStep: number = 0.1;\r\n\r\n @Input()\r\n showSpinButtons: boolean = true;\r\n\r\n private _minValue: number = Number.MIN_VALUE;\r\n @Input()\r\n public get minValue(): number {\r\n return this._minValue;\r\n }\r\n public set minValue(v: number) {\r\n this._minValue = v ? Number(v) : Number.MIN_VALUE;\r\n }\r\n\r\n private _maxValue: number = Number.MAX_VALUE;\r\n @Input()\r\n public get maxValue(): number {\r\n return this._maxValue;\r\n }\r\n public set maxValue(v: number) {\r\n this._maxValue = v ? Number(v) : Number.MAX_VALUE;\r\n }\r\n\r\n @Output()\r\n public displayTextChange: EventEmitter<string> = new EventEmitter<string>();\r\n private _displayText: string;\r\n\r\n @Input()\r\n public get displayText(): string {\r\n return this._displayText;\r\n }\r\n\r\n public set displayText(v: string) {\r\n this._displayText = v;\r\n this.displayTextChange.emit(v);\r\n }\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n private cdr: ChangeDetectorRef,\r\n private _maskService: MaskApplierService\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n _handleOnKeydownEvent(e: KeyboardEvent) {\r\n const ignore = () => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n };\r\n const toNum = (val: string) => {\r\n return Number(val.replace(/[^0-9.-]+/g, ''));\r\n };\r\n const nums: string[] = Array(10)\r\n .fill(0)\r\n .map((v, i) => i.toString());\r\n const chars: string[] = [\r\n '.',\r\n '-',\r\n 'Backspace',\r\n 'ArrowDown',\r\n 'ArrowUp',\r\n 'ArrowRight',\r\n 'ArrowLeft',\r\n 'Tab',\r\n 'Enter',\r\n ];\r\n const input = e.target as HTMLInputElement;\r\n const key = e.key;\r\n const valStr = input.value;\r\n const val = toNum(valStr);\r\n const decimalPointIndex = valStr.indexOf('.');\r\n const selectionStart = input.selectionStart;\r\n const selectionEnd = input.selectionEnd;\r\n //\r\n\r\n //\r\n if (![...nums, ...chars].includes(key)) {\r\n ignore();\r\n }\r\n if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\r\n const stepVal =\r\n decimalPointIndex > -1\r\n ? selectionStart >= decimalPointIndex\r\n ? this.decimalStep\r\n : this.step\r\n : this.step;\r\n if (e.key === 'ArrowDown') {\r\n this.value = val - stepVal;\r\n } else {\r\n this.value = val + stepVal;\r\n }\r\n ignore();\r\n input.setSelectionRange(selectionStart, selectionStart);\r\n } else if (e.key == 'Backspace') {\r\n const chr = valStr.substr(selectionStart - 1, 1);\r\n if (!nums.includes(chr)) {\r\n ignore();\r\n input.setSelectionRange(selectionStart - 1, selectionStart - 1);\r\n } else {\r\n const newVal = toNum(\r\n valStr.substr(0, selectionStart - 1) + valStr.substr(selectionEnd)\r\n );\r\n input.value = this._format(newVal);\r\n this.value = newVal;\r\n ignore();\r\n if (newVal == 0) {\r\n input.setSelectionRange(1, 1);\r\n } else {\r\n input.setSelectionRange(selectionStart - 1, selectionStart - 1);\r\n }\r\n }\r\n } else if (e.key == '.') {\r\n if (!this.scale) {\r\n ignore();\r\n } else if (decimalPointIndex > -1) {\r\n input.setSelectionRange(decimalPointIndex + 1, decimalPointIndex + 1);\r\n ignore();\r\n } else {\r\n if (input.selectionEnd != valStr.length) {\r\n input.setSelectionRange(valStr.length, valStr.length);\r\n ignore();\r\n }\r\n }\r\n } else if (e.key == '-') {\r\n const index = valStr.indexOf('-');\r\n if (index > -1) {\r\n ignore();\r\n } else {\r\n this.value = Math.abs(this.value) * -1;\r\n input.setSelectionRange(index + 1, index + 1);\r\n ignore();\r\n }\r\n } else if (nums.includes(key)) {\r\n const newVal = toNum(\r\n valStr.substr(0, selectionStart) + key + valStr.substr(selectionEnd)\r\n );\r\n if (newVal < this.minValue) {\r\n //TODO : highlight correct number\r\n //input.value = this._format(this.minValue);\r\n //const diff = this.minValue - val;\r\n //this.value = this.minValue;\r\n //ignore();\r\n // setTimeout(() => {\r\n // input.setSelectionRange(input.selectionStart + 1, this.minValue.toString().length);\r\n // }, 50);\r\n } else if (newVal > this.maxValue) {\r\n input.value = this._format(this.maxValue);\r\n this.value = this.maxValue;\r\n ignore();\r\n } else {\r\n input.value = this._format(newVal);\r\n this.value = newVal;\r\n ignore();\r\n }\r\n }\r\n super._emitOnKeydownEvent(e);\r\n }\r\n\r\n _onValueChanging(value: number) {\r\n return this._fixValue(value);\r\n }\r\n\r\n _fixValue(value: number): number {\r\n if (value == null || value == undefined) {\r\n return this.allowNull ? null : this.minValue;\r\n } else if (value > this.maxValue) {\r\n return this.maxValue;\r\n } else if (value < this.minValue) {\r\n return this.minValue;\r\n }\r\n return parseFloat(value.toFixed(this.scale));\r\n }\r\n\r\n _format(value: number): string {\r\n if (this.thousandSeparator) {\r\n this._maskService.thousandSeparator = this.separator;\r\n this._maskService.allowNegativeNumbers = true;\r\n const format = `separator.${this.scale}`;\r\n return this._maskService.applyMask(value?.toString(), format);\r\n } else {\r\n this._maskService.thousandSeparator = '';\r\n this._maskService.allowNegativeNumbers = true;\r\n const format = `separator.${this.scale}`;\r\n return this._maskService.applyMask(value?.toString(), format);\r\n }\r\n }\r\n\r\n _onValueChanged(oldValue: any, newValue: any): void {\r\n this.displayText = this._format(newValue);\r\n }\r\n\r\n _handleOnBlurEvent(e: FocusEvent) {\r\n const input = e.target as HTMLInputElement;\r\n this.value = this._fixValue(this.value);\r\n input.value = this._format(this.value);\r\n this._emitOnFocusEvent(e);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXNumberBoxComponent } from './number-box.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXButtonModule } from '../button';\r\nimport { NgxMaskModule } from 'ngx-mask';\r\n\r\nconst COMPONENT = [AXNumberBoxComponent];\r\nconst MODULES = [\r\n CommonModule,\r\n FormsModule,\r\n AXButtonModule,\r\n NgxMaskModule.forChild()\r\n];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXNumberBoxModule { }\r\n","import { AXDateTime } from '@acorex/core';\r\nimport { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, EventEmitter, Output, Input, HostBinding } from '@angular/core';\r\nimport { MaskApplierService } from 'ngx-mask';\r\nimport { AXBaseTextBoxMixin } from '../base';\r\nimport { TEXTBOX_INPUTS, TEXTBOX_OUTPUT } from '../base/mixin/textbox-mixin.class';\r\n\r\n@Component({\r\n selector: 'ax-time-box',\r\n templateUrl: './time-box.component.html',\r\n inputs: ['disabled', 'readonly', 'tabIndex', 'size', 'value', ...TEXTBOX_INPUTS],\r\n outputs: ['valueChange', 'onValueChanged', 'onBlur', 'onFocus', ...TEXTBOX_OUTPUT],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-time-box ax-editor-container' },\r\n})\r\nexport class AXTimeBoxComponent extends AXBaseTextBoxMixin {\r\n\r\n @HostBinding('class')\r\n get hostClass(): string {\r\n return `${this.cssClass} ax-${this.size}`;\r\n }\r\n\r\n\r\n private _minValue: Date;\r\n @Input()\r\n public get minValue(): Date {\r\n return this._minValue;\r\n }\r\n public set minValue(v: Date) {\r\n this._minValue = v;\r\n }\r\n\r\n private _maxValue: Date;\r\n @Input()\r\n public get maxValue(): Date {\r\n return this._maxValue;\r\n }\r\n public set maxValue(v: Date) {\r\n this._maxValue = v;\r\n }\r\n\r\n\r\n @Input()\r\n format: string = 'HH:mm';\r\n\r\n\r\n\r\n @Output()\r\n public displayTextChange: EventEmitter<string> = new EventEmitter<string>();\r\n private _displayText: string = \"\";\r\n\r\n @Input()\r\n public get displayText(): string {\r\n return this._displayText;\r\n }\r\n\r\n public set displayText(v: string) {\r\n this._displayText = v;\r\n this.displayTextChange.emit(v);\r\n }\r\n\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n private cdr: ChangeDetectorRef,\r\n private _maskService: MaskApplierService\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n _handleOnKeydownEvent(e: KeyboardEvent) {\r\n const ignore = () => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n const toDate = (val: string) => {\r\n return new Date(val);\r\n }\r\n const nums: string[] = Array(10).fill(0).map((v, i) => i.toString());\r\n const chars: string[] = [':', 'Backspace', 'ArrowDown', 'ArrowUp', 'ArrowRight', 'ArrowLeft', 'Tab', 'Enter'];\r\n const input = (e.target as HTMLInputElement);\r\n const key = (e.key);\r\n const valStr = input.value;\r\n const val = toDate(valStr);\r\n const selectionStart = input.selectionStart;\r\n const selectionEnd = input.selectionEnd;\r\n //\r\n\r\n //\r\n if (![...nums, ...chars].includes(key)) {\r\n ignore();\r\n }\r\n if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\r\n // const stepVal = decimalPointIndex > -1 ? (selectionStart >= decimalPointIndex ? this.decimalStep : this.step) : this.step;\r\n // if (e.key === 'ArrowDown') {\r\n // this.value = val - stepVal;\r\n // }\r\n // else {\r\n // this.value = val + stepVal;\r\n // }\r\n ignore();\r\n input.setSelectionRange(selectionStart, selectionStart);\r\n }\r\n else if (e.key == 'Backspace') {\r\n\r\n }\r\n else if (nums.includes(key)) {\r\n\r\n }\r\n super._emitOnKeydownEvent(e);\r\n }\r\n\r\n _onValueChanging(value: Date) {\r\n return this._fixValue(value);\r\n }\r\n\r\n _fixValue(value: Date): Date {\r\n if ((value == null || value == undefined)) {\r\n return this.allowNull ? null : this.minValue;\r\n }\r\n else if (value > this.maxValue) {\r\n return this.maxValue;\r\n }\r\n else if (value < this.minValue) {\r\n return this.minValue;\r\n }\r\n return value;\r\n }\r\n\r\n _format(value: Date): string {\r\n return new AXDateTime(value).format(this.format);\r\n }\r\n\r\n _onValueChanged(oldValue: any, newValue: any): void {\r\n this.displayText = this._format(newValue);\r\n }\r\n\r\n _handleOnBlurEvent(e: FocusEvent) {\r\n const input = (e.target as HTMLInputElement);\r\n this.value = this._fixValue(this.value);\r\n input.value = this._format(this.value);\r\n this._emitOnFocusEvent(e);\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXTimeBoxComponent } from './time-box.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AXButtonModule } from '../button';\r\nimport { NgxMaskModule } from 'ngx-mask';\r\n\r\nconst COMPONENT = [AXTimeBoxComponent];\r\nconst MODULES = [\r\n CommonModule,\r\n FormsModule,\r\n AXButtonModule,\r\n NgxMaskModule.forChild()\r\n];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXTimeBoxModule { }\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n Input,\r\n EventEmitter,\r\n Output,\r\n} from '@angular/core';\r\nimport { AXSizableComponentMixin } from '../base';\r\nimport { AXTabStripChangedEvent, AXTabStripItem } from './tabs.class';\r\n\r\n@Component({\r\n selector: 'ax-tab-strip',\r\n templateUrl: './tab-strip.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n inputs: ['size', 'cssClass'],\r\n host: { class: 'ax-tab-strip' },\r\n})\r\nexport class AXTabStripComponent extends AXSizableComponentMixin {\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n private _items: AXTabStripItem[];\r\n @Input()\r\n public get items(): AXTabStripItem[] {\r\n return this._items;\r\n }\r\n public set items(v: AXTabStripItem[]) {\r\n this._items = v;\r\n if (\r\n this._items &&\r\n this.items.length &&\r\n !this._items.some((c) => c.active)\r\n ) {\r\n this._handleClick(this.items[0], 0);\r\n }\r\n }\r\n\r\n @Input()\r\n mode: 'default' | 'underline' | 'pills' | 'pills-color' = 'default';\r\n\r\n @Input()\r\n fullWidth: boolean = false;\r\n\r\n @Input()\r\n minWidth: boolean = false;\r\n\r\n @Output()\r\n onSelectionChanged: EventEmitter<AXTabStripChangedEvent> = new EventEmitter<AXTabStripChangedEvent>();\r\n\r\n _handleClick(tab: AXTabStripItem, index: number) {\r\n if (tab.disabled) {\r\n return;\r\n }\r\n this.items.forEach((c) => (c.active = false));\r\n tab.active = true;\r\n this.onSelectionChanged.emit({\r\n component: this,\r\n selectedIndex: index,\r\n selectedTab: tab,\r\n htmlElement: this._getHostElement(),\r\n });\r\n }\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, Input, NgZone } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-tab',\r\n template: `\r\n <div *ngIf=\"_render\" >\r\n <ng-content>\r\n </ng-content>\r\n </div>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-tab', style: 'display:none' }\r\n})\r\nexport class AXTabComponent extends AXBaseComponentMixin {\r\n\r\n\r\n @Input()\r\n name: string;\r\n @Input()\r\n caption: string;\r\n @Input()\r\n tooltip: string;\r\n @Input()\r\n icon: string;\r\n @Input()\r\n visible: boolean = true;\r\n @Input()\r\n disabled: boolean = false;\r\n @Input()\r\n data: any;\r\n\r\n _render: boolean = false\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n show() {\r\n this._getHostElement().style.display = 'unset';\r\n if (!this._render) {\r\n this._render = true;\r\n this._cdr.detectChanges();\r\n }\r\n }\r\n\r\n hide() {\r\n this._getHostElement().style.display = 'none';\r\n }\r\n\r\n\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, ContentChildren, QueryList, Input } from '@angular/core';\r\nimport { AXTabStripChangedEvent, AXTabStripItem } from './tabs.class';\r\nimport { AXTabStripComponent } from './tab-strip.component';\r\nimport { AXTabComponent } from './tab.component';\r\n\r\n@Component({\r\n selector: 'ax-tab-view',\r\n templateUrl: './tab-view.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n inputs: ['size'],\r\n host: { class: 'ax-tab-view' }\r\n})\r\nexport class AXTabViewComponent extends AXTabStripComponent {\r\n\r\n @ContentChildren(AXTabComponent) _contentTabs: QueryList<AXTabComponent>;\r\n _tabs: AXTabStripItem[] = [];\r\n\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n\r\n onViewInit() {\r\n this._tabs = Array.from(this._contentTabs).map(c => ({\r\n name: c.name,\r\n text: c.caption,\r\n tooltip: c.tooltip,\r\n icon: c.icon,\r\n visible: c.visible,\r\n disabled: c.disabled,\r\n }));\r\n this._cdr.detectChanges();\r\n\r\n }\r\n\r\n\r\n _handleSelectionChanged(e: AXTabStripChangedEvent) {\r\n const tabs = Array.from(this._contentTabs);\r\n tabs.forEach(tab => {\r\n tab.hide();\r\n });\r\n tabs[e.selectedIndex].show();\r\n }\r\n\r\n}\r\n","import { AXEvent } from \"../base\";\r\n\r\nexport interface AXTabStripItem {\r\n name?: string;\r\n text?: string;\r\n tooltip?: string;\r\n iconClassAfter?: string;\r\n iconClassBefore?: string;\r\n iconClass?: string;\r\n visible?: boolean;\r\n disabled?: boolean;\r\n data?: any;\r\n style?: string;\r\n active?: boolean;\r\n }\r\n \r\n export class AXTabStripChangedEvent extends AXEvent {\r\n selectedTab: AXTabStripItem;\r\n selectedIndex:number;\r\n\r\n }","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXTabViewComponent } from './tab-view.component';\r\nimport { AXTabStripComponent } from './tab-strip.component';\r\nimport { AXTabComponent } from './tab.component';\r\n\r\nconst COMPONENT = [AXTabViewComponent, AXTabStripComponent, AXTabComponent];\r\nconst MODULES = [CommonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXTabsModule { }\r\n","import { Injectable, Input } from \"@angular/core\";\r\nimport { AXBaseValueComponentMixin, AXInteractiveComponenetMixin } from \"../base\";\r\n\r\n\r\nexport interface AXDataPagerElementInterface {\r\n visible: boolean;\r\n}\r\n\r\n@Injectable()\r\nexport abstract class AXDataPagerElementBase extends AXInteractiveComponenetMixin implements AXDataPagerElementInterface {\r\n\r\n @Input()\r\n visible: boolean = true;\r\n\r\n constructor(...args: any[]) {\r\n super(...args);\r\n }\r\n}\r\n\r\n@Injectable()\r\nexport abstract class AXDataPagerSelectorBase extends AXBaseValueComponentMixin implements AXDataPagerElementInterface{\r\n\r\n @Input()\r\n visible: boolean = true;\r\n\r\n constructor(...args: any[]) {\r\n super(...args);\r\n }\r\n}","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, Input, EventEmitter, Output, ViewChild, ContentChildren, QueryList } from '@angular/core';\r\nimport { AXBaseValueComponentMixin, AXEvent } from '../base';\r\nimport { SIZABLE_INPUTS } from '../base/mixin/sizable-mixin.class';\r\nimport { VALUE_OUTPUT, VALUE_INPUTS } from '../base/mixin/value-mixin.class';\r\nimport { AXDataPagerElementBase } from './datapager-base.component';\r\nimport { AXDataPagerInfoData } from './datapager-info.component';\r\n\r\nexport class AXPagerPageChangedEvent extends AXEvent implements AXDataPagerInfoData {\r\n range: { from: number, to: number } = { from: 0, to: 0 };\r\n page: number = 0;\r\n skip: number = 0;\r\n take: number = 0;\r\n totalPages: number = 0;\r\n totalItems: number = 0;\r\n}\r\n\r\nexport class AXPagerStateChangedEvent extends AXPagerPageChangedEvent {\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'ax-datapager',\r\n templateUrl: './datapager.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n inputs: [...SIZABLE_INPUTS, ...VALUE_INPUTS],\r\n outputs: [...VALUE_OUTPUT],\r\n host: { class: 'ax-datapager' }\r\n})\r\nexport class AXDataPagerComponent extends AXBaseValueComponentMixin {\r\n\r\n\r\n private _pageSize: number;\r\n @Input()\r\n public get pageSize(): number {\r\n return this._pageSize;\r\n }\r\n public set pageSize(v: number) {\r\n const oldValue = this.pageSize;\r\n this._pageSize = v;\r\n this._emitStateChangedEvent();\r\n const newPage = Math.ceil(this.getState().range.from / this._pageSize) || 1;\r\n const needRefresh = this.value == newPage && oldValue != v;\r\n this.value = newPage;\r\n if (needRefresh) {\r\n this._emitChangedEvent();\r\n }\r\n }\r\n\r\n\r\n private _total: number;\r\n @Input()\r\n public get total(): number {\r\n return this._total;\r\n }\r\n public set total(v: number) {\r\n this._total = v && v > 0 ? v : 0;\r\n this._emitStateChangedEvent();\r\n }\r\n\r\n\r\n _totalPages: number = 0;\r\n\r\n @Output()\r\n onPageChanged: EventEmitter<AXPagerPageChangedEvent> = new EventEmitter<AXPagerPageChangedEvent>();\r\n @Output()\r\n onStateChanged: EventEmitter<AXPagerStateChangedEvent> = new EventEmitter<AXPagerStateChangedEvent>();\r\n\r\n\r\n @ContentChildren(AXDataPagerElementBase,{descendants:true})\r\n _contents: QueryList<AXDataPagerElementBase>;\r\n\r\n\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n \r\n }\r\n\r\n onInit() {\r\n if (!this.pageSize) {\r\n this.pageSize = 5;\r\n }\r\n }\r\n\r\n _onValueChanged(oldValue: number, newValue: number) {\r\n this._emitStateChangedEvent();\r\n this._emitChangedEvent();\r\n }\r\n\r\n public getState(): AXDataPagerInfoData {\r\n return {\r\n page: this.value,\r\n totalItems: this.total,\r\n totalPages: this._totalPages,\r\n range: {\r\n from: ((this.value - 1) * this.pageSize) + 1,\r\n to: Math.min((this.value * this.pageSize), this.total)\r\n },\r\n skip: (this.value - 1) * this.pageSize,\r\n take: this.pageSize,\r\n }\r\n }\r\n\r\n private _emitStateChangedEvent(): void {\r\n this._totalPages = Math.ceil(this._total / this.pageSize);\r\n //\r\n this.onStateChanged.emit(\r\n Object.assign({\r\n component: this,\r\n htmlElement: this.elementRef.nativeElement\r\n }, this.getState())\r\n );\r\n }\r\n\r\n private _emitChangedEvent(): void {\r\n if (this.value) {\r\n this.onPageChanged.emit(\r\n Object.assign({\r\n component: this,\r\n htmlElement: this.elementRef.nativeElement\r\n }, this.getState())\r\n );\r\n }\r\n }\r\n\r\n\r\n goNextPage(): void {\r\n this.value = Math.min(++this.value, this._totalPages);\r\n }\r\n\r\n goLastPage(): void {\r\n this.value = this._totalPages;\r\n }\r\n\r\n goFirstPage(): void {\r\n this.value = 1;\r\n }\r\n\r\n goPrevPage(): void {\r\n this.value = Math.max(--this.value, 1);\r\n }\r\n}\r\n","import { Component, ChangeDetectionStrategy, ViewEncapsulation, ElementRef, ChangeDetectorRef, Output, EventEmitter } from \"@angular/core\";\r\nimport { AXClickEvent } from \"../base\";\r\nimport { AXDataPagerElementBase, AXDataPagerSelectorBase } from \"./datapager-base.component\";\r\nimport { AXDataPagerComponent } from \"./datapager.component\";\r\n\r\n@Component({\r\n selector: 'ax-datapager-next-buttons',\r\n template: `\r\n <ng-container *ngIf=\"visible\">\r\n <ax-button cssClass=\"ax-light-blank\" [size]=\"size\" [disabled]=\"disabled\" iconClass=\"ax-ic ax-ic-navigate-next\" text=\"\" title=\"Go to the next page\" (onClick)=\"_emitOnNextPageClick($event)\" >\r\n </ax-button>\r\n <ax-button cssClass=\"ax-light-blank\" [size]=\"size\" [disabled]=\"disabled\" iconClass=\"ax-ic ax-ic-last-page\" text=\"\" title=\"Go to the last page\" (onClick)=\"_emitOnLastPageClick($event)\">\r\n </ax-button>\r\n </ng-container>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n inputs: ['size'],\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-datapager-nav-buttons' },\r\n providers: [{ provide: AXDataPagerElementBase, useExisting: AXDataPagerNextButtonsComponent }]\r\n})\r\nexport class AXDataPagerNextButtonsComponent extends AXDataPagerElementBase {\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private cdr: ChangeDetectorRef,\r\n private _parent: AXDataPagerComponent,\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n onViewInit() {\r\n this._checkDisabled();\r\n //\r\n this._parent.onStateChanged.subscribe(c => {\r\n this._checkDisabled();\r\n });\r\n }\r\n\r\n private _checkDisabled()\r\n {\r\n this.disabled = this._parent.value == this._parent.getState().totalPages;\r\n }\r\n\r\n _emitOnLastPageClick(e: AXClickEvent) {\r\n this._parent.goLastPage();\r\n }\r\n\r\n _emitOnNextPageClick(e: AXClickEvent) {\r\n this._parent.goNextPage();\r\n }\r\n}","import { Component, ChangeDetectionStrategy, ViewEncapsulation, ElementRef, ChangeDetectorRef, Output, EventEmitter } from \"@angular/core\";\r\nimport { AXClickEvent, AXInteractiveComponenetMixin } from \"../base\";\r\nimport { AXDataPagerElementBase, AXDataPagerSelectorBase } from \"./datapager-base.component\";\r\nimport { AXDataPagerComponent } from \"./datapager.component\";\r\n\r\n@Component({\r\n selector: 'ax-datapager-prev-buttons',\r\n template: `\r\n <ax-button [disabled]=\"disabled\" [size]=\"size\" cssClass=\"ax-light-blank\" iconClass=\"ax-ic ax-ic-first-page\" text=\"\" title=\"Go to the last page\" (onClick)=\"_emitOnFirstPageClick($event)\">\r\n </ax-button>\r\n <ax-button [disabled]=\"disabled\" [size]=\"size\" cssClass=\"ax-light-blank\" iconClass=\"ax-ic ax-ic-navigate-before\" text=\"\" title=\"Go to the next page\" (onClick)=\"_emitOnPrevPageClick($event)\">\r\n </ax-button>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n inputs: ['size'],\r\n host: { class: 'ax-datapager-nav-buttons' },\r\n providers: [{ provide: AXDataPagerElementBase, useExisting: AXDataPagerPrevButtonsComponent }]\r\n})\r\nexport class AXDataPagerPrevButtonsComponent extends AXDataPagerSelectorBase {\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n cdr: ChangeDetectorRef,\r\n private _parent: AXDataPagerComponent\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n onViewInit() {\r\n this._checkDisabled();\r\n this._parent.onStateChanged.subscribe(c => {\r\n this._checkDisabled();\r\n });\r\n }\r\n\r\n private _checkDisabled() {\r\n this.disabled = this.disabled = this._parent.value == 1;\r\n }\r\n\r\n\r\n _emitOnFirstPageClick(e: AXClickEvent) {\r\n this._parent.goFirstPage();\r\n }\r\n\r\n _emitOnPrevPageClick(e: AXClickEvent) {\r\n this._parent.goPrevPage();\r\n }\r\n\r\n}","import { Component, ChangeDetectionStrategy, ViewEncapsulation, ElementRef, ChangeDetectorRef, Input } from \"@angular/core\";\r\nimport { AXClickEvent } from \"../base\";\r\nimport { AXButtonItem } from \"../button\";\r\nimport { AXDataPagerElementBase } from \"./datapager-base.component\";\r\nimport { AXDataPagerComponent } from \"./datapager.component\";\r\n\r\n@Component({\r\n selector: 'ax-datapager-page-sizes',\r\n template: `\r\n <ax-dropdown-button \r\n class=\"ax-flex-1\" \r\n cssClass=\"ax-light-blank\"\r\n [text]=\"_pageSize\"\r\n [size]=\"size\"\r\n [items]=\"_items\" \r\n [splitedbutton]=\"false\"\r\n (onItemClick)=\"_emitOnItemClick($event)\"\r\n > \r\n </ax-dropdown-button>\r\n <span class=\"ax-text-light-700\">items per page</span>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n inputs: ['size'],\r\n outputs: [],\r\n host: { class: 'ax-datapager-page-sizes' },\r\n providers: [{ provide: AXDataPagerElementBase, useExisting: AXDataPagerPageSizesComponent }]\r\n})\r\nexport class AXDataPagerPageSizesComponent extends AXDataPagerElementBase {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef,\r\n private _parent: AXDataPagerComponent,\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n\r\n _pageSize: number;\r\n\r\n\r\n onViewInit() {\r\n this._generateDisplayItems();\r\n //\r\n this._parent.onStateChanged.subscribe(c => {\r\n this._generateDisplayItems();\r\n });\r\n }\r\n\r\n\r\n _items: AXButtonItem[] = [];\r\n\r\n private _sizes: number[];\r\n @Input()\r\n public get sizes(): number[] {\r\n return this._sizes || [5, 10, 20, 50, 100];\r\n }\r\n public set sizes(v: number[]) {\r\n this._sizes = v;\r\n this._generateDisplayItems();\r\n }\r\n\r\n private _generateDisplayItems(): void {\r\n this._pageSize = this._parent.pageSize;\r\n this._items = this.sizes.map(s => ({\r\n text: s.toString(),\r\n selected : s == this._pageSize\r\n }));\r\n this._cdr.detectChanges();\r\n }\r\n\r\n\r\n _emitOnItemClick(e: AXClickEvent) {\r\n this._pageSize = Number(e.data.text); \r\n this._parent.pageSize = this._pageSize; \r\n }\r\n}","import { Component, ChangeDetectionStrategy, ViewEncapsulation, ElementRef, ChangeDetectorRef, Input } from \"@angular/core\";\r\nimport { AXBaseValueComponentMixin, AXClickEvent } from \"../base\";\r\nimport { VALUE_INPUTS, VALUE_OUTPUT } from \"../base/mixin/value-mixin.class\";\r\nimport { AXButtonItem } from \"../button\";\r\nimport { AXDataPagerElementBase, AXDataPagerSelectorBase } from \"./datapager-base.component\";\r\nimport { AXDataPagerComponent } from \"./datapager.component\";\r\n\r\n@Component({\r\n selector: 'ax-datapager-numeric-selector',\r\n template: `\r\n <ax-button-group cssClass=\"ax-primary-blank\" [size]=\"size\" [selectable]=\"true\" [items]=\"_items\" (onItemClick)=\"_emitOnItemClick($event)\">\r\n </ax-button-group>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n inputs: ['size', ...VALUE_INPUTS],\r\n outputs: [...VALUE_OUTPUT],\r\n host: { class: 'ax-datapager-numeric-selector' },\r\n providers: [{ provide: AXDataPagerElementBase, useExisting: AXDataPagerNumericSelectorComponent }]\r\n})\r\nexport class AXDataPagerNumericSelectorComponent extends AXDataPagerSelectorBase {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n private cdr: ChangeDetectorRef,\r\n private _parent: AXDataPagerComponent,\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n\r\n _items: AXButtonItem[] = [];\r\n\r\n private _displayCount: number = 5;\r\n\r\n\r\n onViewInit() {\r\n this._generateDisplayItems();\r\n this._parent.onPageChanged.subscribe(c => {\r\n this.value = c.page;\r\n this._generateDisplayItems();\r\n });\r\n this._parent.onStateChanged.subscribe(c => {\r\n this._generateDisplayItems();\r\n });\r\n }\r\n\r\n private _generateDisplayItems(): void {\r\n debugger;\r\n const val = this._parent.value;\r\n const totalPages = this._parent._totalPages;\r\n //\r\n this._items = [];\r\n\r\n const start: number = ((Math.ceil(val / this._displayCount) - 1) * this._displayCount) + 1;\r\n const end: number = Math.min(start + this._displayCount - 1, totalPages);\r\n //\r\n if (start > this._displayCount) {\r\n this._items.push({\r\n selected: false,\r\n iconClass: 'ax-ic ax-ic-keyboard-control',\r\n data: start - 1\r\n });\r\n }\r\n //\r\n for (let i = start; i <= end; i++) {\r\n this._items.push({\r\n selected: val == i,\r\n text: i.toString(),\r\n data: i\r\n });\r\n }\r\n if (end < totalPages) {\r\n this._items.push({\r\n selected: false,\r\n iconClass: 'ax-ic ax-ic-keyboard-control',\r\n data: end + 1\r\n });\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n _onValueChanging(value: number) {\r\n return Number(value) || 1;\r\n\r\n }\r\n\r\n _onValueChanged(oldValue: number, newValue: number) {\r\n this._parent.value = newValue;\r\n }\r\n\r\n _emitOnItemClick(e: AXClickEvent) {\r\n this.value = Number(e.data.data);\r\n }\r\n}","import { Component, ChangeDetectionStrategy, ViewEncapsulation, ElementRef, ChangeDetectorRef, Input } from \"@angular/core\";\r\nimport { VALUE_INPUTS, VALUE_OUTPUT } from \"../base/mixin/value-mixin.class\";\r\nimport { AXDataPagerElementBase, AXDataPagerSelectorBase } from \"./datapager-base.component\";\r\nimport { AXDataPagerComponent } from \"./datapager.component\";\r\n\r\n@Component({\r\n selector: 'ax-datapager-input-selector',\r\n template: `\r\n <ax-number-box [(value)]=\"value\" [size]=\"size\" \r\n minValue=\"1\" [maxValue]=\"_totalPages\" allowNull=\"false\" [debounceTime]=\"500\">\r\n </ax-number-box>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n inputs: ['size', ...VALUE_INPUTS],\r\n outputs: [...VALUE_OUTPUT],\r\n host: { class: 'ax-datapager-input-selector' },\r\n providers: [{ provide: AXDataPagerElementBase, useExisting: AXDataPagerInputSelectorComponent }]\r\n})\r\nexport class AXDataPagerInputSelectorComponent extends AXDataPagerSelectorBase {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n private _parent: AXDataPagerComponent,\r\n private cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n _totalPages: number = 1;\r\n\r\n onViewInit() {\r\n this.value = this._parent.getState().page;\r\n this._totalPages = this._parent.getState().totalPages;\r\n\r\n this._parent.onPageChanged.subscribe(c => {\r\n this.value = c.page;\r\n });\r\n this._parent.onStateChanged.subscribe(c => {\r\n this.value = c.page;\r\n this._totalPages = c.totalPages;\r\n });\r\n }\r\n\r\n _onValueChanging(value: number) {\r\n return Number(value) || 1;\r\n\r\n }\r\n\r\n _onValueChanged(oldValue: number, newValue: number) {\r\n this._parent.value = newValue;\r\n\r\n }\r\n}","import { Component, ChangeDetectionStrategy, ViewEncapsulation, ElementRef, ChangeDetectorRef, Input, NgZone, HostBinding } from \"@angular/core\";\r\nimport { AXDataPagerElementBase, AXDataPagerSelectorBase } from \"./datapager-base.component\";\r\nimport { AXDataPagerComponent } from \"./datapager.component\";\r\n\r\nexport interface AXDataPagerInfoData {\r\n range: { from: number, to: number };\r\n page: number;\r\n skip: number;\r\n take: number;\r\n totalPages: number;\r\n totalItems: number;\r\n}\r\n\r\n@Component({\r\n selector: 'ax-datapager-info',\r\n template: `<ng-container *ngIf=\"visible\"><span></span></ng-container>`,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n inputs: ['size'],\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-datapager-info' },\r\n providers: [{ provide: AXDataPagerElementBase, useExisting: AXDataPagerInfoComponent }]\r\n})\r\nexport class AXDataPagerInfoComponent extends AXDataPagerElementBase {\r\n\r\n constructor(\r\n private elementRef: ElementRef<HTMLDivElement>,\r\n private cdr: ChangeDetectorRef,\r\n private _parent: AXDataPagerComponent,\r\n private zone: NgZone\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n\r\n @HostBinding('class')\r\n get sizeBinding(): string {\r\n return this.size ? `ax-text-${this.size}` : null;\r\n }\r\n\r\n onViewInit() {\r\n this._updateText();\r\n this._parent.onStateChanged.subscribe(c => {\r\n this._updateText();\r\n });\r\n }\r\n\r\n private _updateText() {\r\n this.zone.runOutsideAngular(() => {\r\n const span = this.elementRef.nativeElement.querySelector('span');\r\n if (!span)\r\n return;\r\n const info = this._parent.getState();\r\n if ([info.range, info.range.from].every(c => c)) {\r\n span.innerHTML = '{{from}} - {{to}} of {{totalItems}} items'\r\n .replace('{{from}}', info.range.from.toString())\r\n .replace('{{to}}', info.range.to.toString())\r\n .replace('{{totalItems}}', info.totalItems.toString());\r\n }\r\n else {\r\n span.innerHTML = '...';\r\n }\r\n });\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXDataPagerComponent } from './datapager.component';\r\nimport { AXDataPagerNextButtonsComponent } from './datapager-next-buttons.components';\r\nimport { AXButtonModule } from '../button';\r\nimport { AXDataPagerPrevButtonsComponent } from './datapager-prev-buttons.component';\r\nimport { AXDataPagerPageSizesComponent } from './datapager-pagesize-dropdown.component';\r\nimport { AXDataPagerNumericSelectorComponent } from './datapager-numeric-selector.component';\r\nimport { AXDataPagerInputSelectorComponent } from './datapager-input-selector.component';\r\nimport { AXDataPagerInfoComponent } from './datapager-info.component';\r\nimport { AXNumberBoxModule } from '../number-box';\r\n\r\nconst COMPONENT = [\r\n AXDataPagerComponent,\r\n AXDataPagerNextButtonsComponent,\r\n AXDataPagerPrevButtonsComponent,\r\n AXDataPagerPageSizesComponent,\r\n AXDataPagerNumericSelectorComponent,\r\n AXDataPagerInputSelectorComponent,\r\n AXDataPagerInfoComponent\r\n];\r\nconst MODULES = [CommonModule, AXButtonModule,AXNumberBoxModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXDataPagerModule { }\r\n","import { EventEmitter, Injectable } from \"@angular/core\";\r\nimport { AXValueChangedEvent } from \"../base\";\r\n\r\n\r\n@Injectable()\r\nexport abstract class AXCarouselCore {\r\n abstract next(): void;\r\n abstract last(): void;\r\n abstract prev(): void;\r\n abstract first(): void;\r\n abstract destroy(): void;\r\n abstract goToSlide(index: number): void;\r\n abstract goToPage(index: number): void;\r\n abstract mount(instance: AXCarousel): void;\r\n abstract rebuild(): void;\r\n}\r\n\r\n\r\n\r\nexport interface AXCarousel {\r\n\r\n onSlideChanged: EventEmitter<AXValueChangedEvent<number>>;\r\n onOptionsChanged: EventEmitter<void>;\r\n //\r\n pageSizeChange: EventEmitter<number>\r\n pageSize: number;\r\n //\r\n gap: number;\r\n //\r\n autoplayChange: EventEmitter<boolean>;\r\n autoplay: boolean;\r\n //\r\n intervalChange: EventEmitter<number>\r\n interval: number;\r\n //\r\n centeredChange: EventEmitter<boolean>\r\n centered: boolean;\r\n //\r\n verticalChange: EventEmitter<boolean>\r\n vertical: boolean;\r\n //\r\n paddingChange: EventEmitter<string | number>\r\n padding: string | number;\r\n //\r\n loopChange: EventEmitter<boolean>\r\n loop: boolean;\r\n //\r\n rewindChange: EventEmitter<boolean>\r\n rewind: boolean;\r\n //\r\n visibleIndex: number;\r\n //\r\n onItemsChanged: EventEmitter<AXValueChangedEvent<HTMLDivElement[]>>\r\n items: HTMLDivElement[];\r\n\r\n rtl: boolean;\r\n\r\n next(): void;\r\n last(): void;\r\n prev(): void;\r\n first(): void;\r\n goToSlide(index: number): void;\r\n goToPage(index: number): void;\r\n\r\n host: HTMLDivElement;\r\n}\r\n\r\n","import { AXCarousel, AXCarouselCore } from \"./carousel.class\";\r\nimport { Splide as SS, SplideOptions } from '@splidejs/splide'\r\n\r\ndeclare var Splide: any;\r\n\r\nexport class AXCarouselSplideJS implements AXCarouselCore {\r\n constructor() {\r\n\r\n }\r\n\r\n _ref: SS;\r\n _instance: AXCarousel;\r\n\r\n mount(instance: AXCarousel): void {\r\n debugger;\r\n this._instance = instance;\r\n this._instance.host.classList.add('splide');\r\n this._instance.host.querySelector('.ax-carousel-list-container').classList.add('splide__track');\r\n const listElement = this._instance.host.querySelector('.ax-carousel-list');\r\n listElement.classList.add('splide__list');\r\n //\r\n this.rebuild();\r\n this._instance.onItemsChanged.subscribe(items => {\r\n items.value.forEach(i => i.classList.add('splide__slide'));\r\n this._ref.refresh();\r\n });\r\n this._instance.items = Array.from(listElement.querySelectorAll<HTMLDivElement>('ax-carousel-item'));\r\n this._instance.onOptionsChanged.subscribe(() => {\r\n this.rebuild();\r\n });\r\n }\r\n\r\n private _emitOnSlideChanged(i: number) {\r\n const oldValue = this._instance.visibleIndex;\r\n this._instance.visibleIndex = i;\r\n this._instance.onSlideChanged.emit({\r\n component: this,\r\n htmlElement: this._instance.host,\r\n value: this._instance.visibleIndex,\r\n oldValue\r\n });\r\n }\r\n\r\n\r\n private _getConfig(): SplideOptions {\r\n return {\r\n autoplay: this._instance.autoplay,\r\n type: this._instance.loop && !this._instance.rewind ? 'loop' : 'slide',\r\n rewind: this._instance.rewind,\r\n gap: this._instance.gap,\r\n perPage: this._instance.pageSize,\r\n perMove: 1,\r\n start: this._instance.visibleIndex,\r\n interval: this._instance.interval,\r\n direction: this._instance.vertical ? 'ttb' : (this._instance.rtl ? 'rtl' : 'ltr'),\r\n arrows: false,\r\n pagination: false,\r\n padding: this._instance.padding,\r\n autoWidth: true,\r\n focus: this._instance.centered ? 'center' : false,\r\n }\r\n }\r\n\r\n\r\n\r\n next(): void {\r\n this._ref.go('+');\r\n }\r\n\r\n last(): void {\r\n this._ref.go(this._ref.length - 1);\r\n }\r\n\r\n prev(): void {\r\n this._ref.go('-');\r\n }\r\n\r\n first(): void {\r\n this._ref.go(0);\r\n }\r\n\r\n goToSlide(index: number): void {\r\n this._ref.go(index);\r\n }\r\n\r\n goToPage(index: number): void {\r\n this._ref.go(`>${index}`);\r\n }\r\n\r\n destroy() {\r\n this._ref.destroy();\r\n }\r\n\r\n rebuild() {\r\n if (this._ref) {\r\n this._ref.off('move');\r\n this._ref.destroy();\r\n }\r\n //\r\n this._ref = new Splide(this._instance.host, this._getConfig());\r\n this._ref.mount();\r\n this._ref.on('move', this._emitOnSlideChanged.bind(this));\r\n this._emitOnSlideChanged(this._instance.visibleIndex);\r\n }\r\n}","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, ContentChildren, QueryList, Input, NgZone, Output, EventEmitter, ViewChild, ContentChild } from '@angular/core';\r\nimport { AXBaseComponentMixin, AXValueChangedEvent } from '../base';\r\nimport { coerceBooleanProperty, coerceCssPixelValue, coerceNumberProperty } from '@angular/cdk/coercion';\r\nimport { AXCarousel, AXCarouselCore } from './carousel.class';\r\nimport { AXCarouselSplideJS } from './carousel-splidejs.class';\r\n\r\n@Component({\r\n selector: 'ax-carousel',\r\n templateUrl: './carousel.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-carousel' },\r\n providers:[{\r\n provide: AXCarouselCore,\r\n useClass: AXCarouselSplideJS\r\n }]\r\n})\r\nexport class AXCarouselComponent extends AXBaseComponentMixin implements AXCarousel {\r\n\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n private zone: NgZone,\r\n cdr: ChangeDetectorRef,\r\n private core: AXCarouselCore,\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n\r\n @Output()\r\n onOptionsChanged: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n @Output()\r\n public onSlideChanged: EventEmitter<AXValueChangedEvent<number>> = new EventEmitter<AXValueChangedEvent<number>>();\r\n\r\n @Output()\r\n public pageSizeChange: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n private _pageSize: number = 1\r\n @Input()\r\n public get pageSize(): number {\r\n return this._pageSize;\r\n }\r\n public set pageSize(v: number) {\r\n const val = Math.max(1, coerceNumberProperty(v));\r\n if (val != this._pageSize) {\r\n this._pageSize = val;\r\n if (this._pageSize > 1) {\r\n this._vertical = false;\r\n }\r\n this.pageSizeChange.emit(this.pageSize);\r\n this.onOptionsChanged.emit();\r\n }\r\n }\r\n\r\n\r\n\r\n @Input()\r\n gap: number = 10;\r\n\r\n\r\n @Output()\r\n public autoplayChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n private _autoplay: boolean = false;\r\n @Input()\r\n public get autoplay(): boolean {\r\n return this._autoplay;\r\n }\r\n public set autoplay(v: boolean) {\r\n const val = coerceBooleanProperty(v);\r\n if (val != this._autoplay) {\r\n this._autoplay = val;\r\n this.autoplayChange.emit(this.autoplay);\r\n this.onOptionsChanged.emit();\r\n }\r\n }\r\n\r\n @Output()\r\n public intervalChange: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n private _interval: number = 3000\r\n @Input()\r\n public get interval(): number {\r\n return this._interval;\r\n }\r\n public set interval(v: number) {\r\n const val = coerceNumberProperty(v);\r\n if (val != this._interval) {\r\n this.intervalChange.emit(val);\r\n this.onOptionsChanged.emit();\r\n }\r\n }\r\n\r\n\r\n\r\n @Output()\r\n public paddingChange: EventEmitter<number | string> = new EventEmitter<number | string>();\r\n\r\n private _padding: number | string = 0\r\n @Input()\r\n public get padding(): number | string {\r\n return this._padding;\r\n }\r\n public set padding(v: number | string) {\r\n if (v != this._padding) {\r\n this._padding=v;\r\n this.paddingChange.emit(v);\r\n this.onOptionsChanged.emit();\r\n }\r\n }\r\n\r\n\r\n\r\n @Output()\r\n public centeredChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n private _centered: boolean = false;\r\n @Input()\r\n public get centered(): boolean {\r\n return this._centered;\r\n }\r\n public set centered(v: boolean) {\r\n const val = coerceBooleanProperty(v);\r\n if (val != this._centered) {\r\n this._centered = val;\r\n if (this._centered) {\r\n this._rewind = false;\r\n }\r\n this.centeredChange.emit(this.centered);\r\n this.rewindChange.emit(this.rewind);\r\n this.onOptionsChanged.emit();\r\n }\r\n }\r\n\r\n @Output()\r\n public verticalChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n private _vertical: boolean = false;\r\n @Input()\r\n public get vertical(): boolean {\r\n return this._vertical;\r\n }\r\n public set vertical(v: boolean) {\r\n const val = coerceBooleanProperty(v);\r\n if (val != this._vertical) {\r\n this._vertical = val;\r\n this.verticalChange.emit(this.vertical);\r\n this.onOptionsChanged.emit();\r\n }\r\n }\r\n\r\n @Output()\r\n public loopChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n private _loop: boolean = false;\r\n @Input()\r\n public get loop(): boolean {\r\n return this._loop;\r\n }\r\n public set loop(v: boolean) {\r\n const val = coerceBooleanProperty(v);\r\n if (val != this._loop) {\r\n this._loop = val;\r\n if (this._loop) {\r\n this._rewind = false;\r\n }\r\n this.loopChange.emit(this.loop);\r\n this.rewindChange.emit(this.rewind);\r\n this.onOptionsChanged.emit();\r\n }\r\n }\r\n\r\n @Output()\r\n public rewindChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n private _rewind: boolean = false;\r\n @Input()\r\n public get rewind(): boolean {\r\n return this._rewind;\r\n }\r\n public set rewind(v: boolean) {\r\n const val = coerceBooleanProperty(v);\r\n if (val != this._rewind) {\r\n this._rewind = val;\r\n if (this._rewind) {\r\n this._loop = false;\r\n this._centered = false;\r\n }\r\n this.rewindChange.emit(this.rewind);\r\n this.loopChange.emit(this.loop);\r\n this.centeredChange.emit(this.centered);\r\n this.onOptionsChanged.emit();\r\n }\r\n }\r\n\r\n\r\n\r\n \r\n private _visibleIndex : number = 0;\r\n public get visibleIndex() : number {\r\n return this._visibleIndex;\r\n }\r\n public set visibleIndex(v : number) {\r\n this._visibleIndex = v;\r\n }\r\n \r\n\r\n\r\n\r\n @Output()\r\n public onItemsChanged: EventEmitter<AXValueChangedEvent<HTMLDivElement[]>> = new EventEmitter<AXValueChangedEvent<HTMLDivElement[]>>();\r\n\r\n private _items: HTMLDivElement[] = [];\r\n public get items(): HTMLDivElement[] {\r\n return this._items ?? [];\r\n }\r\n public set items(v: HTMLDivElement[]) {\r\n const oldValue = this.items.slice();\r\n this._items = v;\r\n this.onItemsChanged.emit({\r\n component: this,\r\n htmlElement: this._getHostElement(),\r\n oldValue,\r\n value: this.items\r\n })\r\n }\r\n\r\n\r\n onViewInit() {\r\n this.core.mount(this);\r\n }\r\n\r\n \r\n\r\n \r\n next(): void {\r\n this.core.next();\r\n }\r\n\r\n last(): void {\r\n this.core.last();\r\n }\r\n\r\n prev(): void {\r\n this.core.prev();\r\n }\r\n\r\n first(): void {\r\n this.core.first();\r\n }\r\n\r\n goToSlide(index: number): void {\r\n this.core.goToSlide(index);\r\n }\r\n\r\n goToPage(index: number): void {\r\n this.core.goToPage(index);\r\n }\r\n\r\n\r\n get host():HTMLDivElement\r\n {\r\n return this._getHostElement();\r\n }\r\n\r\n\r\n onDestroy()\r\n {\r\n this.core.destroy();\r\n }\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { AXBaseComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-carousel-item',\r\n template: '<ng-content></ng-content>',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host : { class: 'ax-carousel-item' }\r\n})\r\nexport class AXCarouselItemComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef, \r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, EventEmitter, Output, Host, Optional } from '@angular/core';\r\nimport { AXBaseComponentMixin, AXClickEvent } from '../base';\r\nimport { AXCarouselComponent } from './carousel.component';\r\n\r\n@Component({\r\n selector: 'ax-carousel-arrows',\r\n template: `\r\n <button class=\"ax-carousel-arrow-prev\" (click)=\"_handlePrevClick($event)\">\r\n <i class=\"ax-ic ax-ic-keyboard-arrow-left\"></i>\r\n </button>\r\n <button class=\"ax-carousel-arrow-next\" (click)=\"_handleNextClick($event)\">\r\n <i class=\"ax-ic ax-ic-keyboard-arrow-right\"></i>\r\n </button>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-carousel-arrows' }\r\n})\r\nexport class AXCarouselArrowsComponent extends AXBaseComponentMixin {\r\n\r\n @Output()\r\n public onNextClick: EventEmitter<AXClickEvent> = new EventEmitter<AXClickEvent>();\r\n\r\n @Output()\r\n public onPrevClick: EventEmitter<AXClickEvent> = new EventEmitter<AXClickEvent>();\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef,\r\n @Optional() \r\n private parent: AXCarouselComponent\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n\r\n _handlePrevClick(e: MouseEvent) {\r\n e.stopPropagation();\r\n this.parent.prev();\r\n }\r\n\r\n _handleNextClick(e: MouseEvent) {\r\n e.stopPropagation();\r\n this.parent.next();\r\n }\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, EventEmitter, Output, Host, Optional } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { AXBaseComponentMixin } from '../base';\r\nimport { AXCarouselComponent } from './carousel.component';\r\n\r\n@Component({\r\n selector: 'ax-carousel-pager',\r\n template: `\r\n <button *ngFor=\"let d of _dots;let i=index\" [class.ax-state-active]=\"i==_pageIndex\" (click)=\"_handleClick($event,i)\">\r\n </button>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-carousel-pager' }\r\n})\r\nexport class AXCarouselPagerComponent extends AXBaseComponentMixin {\r\n\r\n\r\n _visibleIndex: number = 0;\r\n _pageIndex: number = 0;\r\n private _size: number = 1;\r\n\r\n _dots: any[] = [];\r\n\r\n\r\n private _subs: Subscription[] = [];\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n private cdr: ChangeDetectorRef,\r\n private _parent: AXCarouselComponent\r\n ) {\r\n super(elementRef, cdr);\r\n this._subs[0] = _parent.pageSizeChange.subscribe(c => {\r\n this._size = c;\r\n this._generateDots();\r\n });\r\n this._subs[1] = _parent.onSlideChanged.subscribe(c => {\r\n this._visibleIndex = c.value;\r\n this._generateDots();\r\n });\r\n this._subs[2] = _parent.onItemsChanged.subscribe(c => {\r\n this._generateDots();\r\n });\r\n }\r\n\r\n\r\n onViewInit() {\r\n this._size = this._parent.pageSize;\r\n this._visibleIndex = this._parent.visibleIndex;\r\n this._generateDots();\r\n }\r\n\r\n\r\n private _generateDots(): void {\r\n this._dots = [...Array(Math.ceil(this._parent.items.length / this._size)).keys()];\r\n this._setPageIndex(this._findPageIndex(this._visibleIndex));\r\n this.cdr.detectChanges();\r\n }\r\n\r\n\r\n _handleClick(e: MouseEvent, index: number) {\r\n e.stopPropagation();\r\n this._setPageIndex(index);\r\n this._parent.goToPage(index);\r\n }\r\n\r\n private _setPageIndex(index: number) {\r\n this._pageIndex = index;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n private _findPageIndex(slideIndex: number): number {\r\n return Math.min(Math.ceil(slideIndex / this._size), this._dots.length - 1);\r\n }\r\n\r\n onDestroy() {\r\n this._subs.forEach(s => {\r\n s.unsubscribe();\r\n });\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXCarouselComponent } from './carousel.component';\r\nimport { AXCarouselItemComponent } from './carousel-item.component';\r\nimport { AXCarouselArrowsComponent } from './carousel-arrows.component';\r\nimport { AXCarouselPagerComponent } from './carousel-pager.component';\r\nimport { AXCarouselSplideJS } from './carousel-splidejs.class';\r\nimport { AXCarousel, AXCarouselCore } from './carousel.class';\r\n\r\nconst COMPONENT = [AXCarouselComponent, AXCarouselItemComponent, AXCarouselArrowsComponent, AXCarouselPagerComponent];\r\nconst MODULES = [CommonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXCarouselModule { }\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, ChangeDetectorRef, Input, HostBinding } from '@angular/core';\r\nimport { AXSizableComponentMixin } from '../base';\r\n\r\n@Component({\r\n selector: 'ax-icon',\r\n template: '',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ax-ic' }\r\n})\r\nexport class AXIconComponent extends AXSizableComponentMixin {\r\n\r\n @Input()\r\n icon: string;\r\n\r\n @HostBinding('class')\r\n get iconClass(): string {\r\n return `ax-ic-${this.icon} ax-${this.size}`;\r\n }\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXIconComponent } from './icon.component';\r\n\r\nconst COMPONENT = [AXIconComponent];\r\nconst MODULES = [CommonModule];\r\n\r\n@NgModule({\r\n declarations: [...COMPONENT],\r\n imports: [...MODULES],\r\n exports: [...COMPONENT],\r\n providers: [],\r\n})\r\nexport class AXIconModule { }\r\n","\r\nexport const AX_STYLE_TYPES = ['info', 'danger', 'success', 'warning'];\r\nexport type AXStyleType = 'info' | 'danger' | 'success' | 'warning';\r\n\r\nexport const AX_LOCATIONS = ['bottom-start', 'bottom-center', 'bottom-end', 'top-start', 'top-center', 'top-end'];\r\nexport type AXLocation = 'bottom-start' | 'bottom-center' | 'bottom-end' | 'top-start' | 'top-center' | 'top-end';\r\n\r\n\r\nexport const AX_DIRECTIONS = ['vertical', 'horizontal'];\r\nexport type AXDirection = 'vertical'| 'horizontal';"]}