@acorex/components 4.0.23 → 4.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (606) hide show
  1. package/README.md +2 -23
  2. package/acorex-components.d.ts +1 -0
  3. package/{esm2015/acorex-components.js → esm2020/acorex-components.mjs} +1 -1
  4. package/esm2020/lib/accordion/accordion.component.mjs +44 -0
  5. package/esm2020/lib/accordion/accordion.module.mjs +20 -0
  6. package/esm2020/lib/base/base-page.class.mjs +92 -0
  7. package/esm2020/lib/base/element.class.mjs +294 -0
  8. package/esm2020/lib/base/events.class.mjs +11 -0
  9. package/esm2020/lib/button/button.component.mjs +71 -0
  10. package/esm2020/lib/button/button.module.mjs +21 -0
  11. package/esm2020/lib/calendar/calendar-box/calendar-box.component.mjs +413 -0
  12. package/esm2020/lib/calendar/calendar-box/calendar-box.module.mjs +22 -0
  13. package/esm2020/lib/calendar/scheduler/scheduler-views.property.mjs +54 -0
  14. package/esm2020/lib/calendar/scheduler/scheduler.class.mjs +18 -0
  15. package/esm2020/lib/calendar/scheduler/scheduler.component.mjs +213 -0
  16. package/esm2020/lib/calendar/scheduler/scheduler.module.mjs +68 -0
  17. package/esm2020/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.mjs +132 -0
  18. package/esm2020/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.mjs +37 -0
  19. package/esm2020/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.mjs +47 -0
  20. package/esm2020/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.mjs +95 -0
  21. package/esm2020/lib/calendar/scheduler/views/month/scheduler-month-view.component.mjs +204 -0
  22. package/esm2020/lib/calendar/scheduler/views/scheduler-view.component.mjs +99 -0
  23. package/esm2020/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.mjs +77 -0
  24. package/esm2020/lib/checkbox/checkbox.component.mjs +98 -0
  25. package/esm2020/lib/checkbox/checkbox.module.mjs +20 -0
  26. package/esm2020/lib/color-picker/color-box/color-box.component.mjs +422 -0
  27. package/esm2020/lib/color-picker/color-picker.component.mjs +82 -0
  28. package/esm2020/lib/color-picker/color-picker.module.mjs +24 -0
  29. package/esm2020/lib/context-menu/context-menu.component.mjs +65 -0
  30. package/esm2020/lib/context-menu/context-menu.directive.mjs +135 -0
  31. package/esm2020/lib/context-menu/context-menu.module.mjs +20 -0
  32. package/esm2020/lib/data-filter/columns/filter-column-date.component.mjs +138 -0
  33. package/esm2020/lib/data-filter/columns/filter-column-number.component.mjs +117 -0
  34. package/esm2020/lib/data-filter/columns/filter-column-selection.component.mjs +74 -0
  35. package/esm2020/lib/data-filter/columns/filter-column-string.component.mjs +117 -0
  36. package/esm2020/lib/data-filter/filter-panel/filter-panel.component.mjs +258 -0
  37. package/esm2020/lib/data-filter/filter.class.mjs +44 -0
  38. package/esm2020/lib/data-filter/filter.module.mjs +90 -0
  39. package/esm2020/lib/data-filter/toolbar/filter-toolbar.component.mjs +166 -0
  40. package/esm2020/lib/data-list/core/data-list.component.mjs +40 -0
  41. package/esm2020/lib/data-list/list/list.component.mjs +124 -0
  42. package/esm2020/lib/data-list/list/list.module.mjs +22 -0
  43. package/esm2020/lib/data-list/list/toolbar-list-view.component.mjs +85 -0
  44. package/esm2020/lib/data-source/datasource.component.mjs +47 -0
  45. package/esm2020/lib/data-source/datasource.module.mjs +18 -0
  46. package/esm2020/lib/data-source/read-param.mjs +5 -0
  47. package/esm2020/lib/date-picker/date-picker.component.mjs +705 -0
  48. package/esm2020/lib/date-picker/date-picker.module.mjs +25 -0
  49. package/esm2020/lib/dialog/dialog.component.mjs +24 -0
  50. package/esm2020/lib/dialog/dialog.module.mjs +21 -0
  51. package/esm2020/lib/dialog/dialog.service.mjs +150 -0
  52. package/esm2020/lib/drawer/drawer.component.mjs +54 -0
  53. package/esm2020/lib/drawer/drawer.module.mjs +20 -0
  54. package/esm2020/lib/dropdown/dropdown.component.mjs +177 -0
  55. package/esm2020/lib/dropdown/dropdown.module.mjs +26 -0
  56. package/esm2020/lib/fieldset/fieldset.component.mjs +59 -0
  57. package/esm2020/lib/fieldset/fieldset.module.mjs +19 -0
  58. package/esm2020/lib/form-group/form-group.component.mjs +34 -0
  59. package/esm2020/lib/form-group/form-group.module.mjs +21 -0
  60. package/esm2020/lib/label/label.component.mjs +19 -0
  61. package/esm2020/lib/label/label.module.mjs +21 -0
  62. package/esm2020/lib/loading/loading-indicator.component.mjs +17 -0
  63. package/esm2020/lib/loading/loading-panel.component.mjs +44 -0
  64. package/esm2020/lib/loading/loading.module.mjs +21 -0
  65. package/esm2020/lib/loading/loading.service.mjs +45 -0
  66. package/esm2020/lib/menu/menu-item.component.mjs +47 -0
  67. package/esm2020/lib/menu/menu.component.mjs +86 -0
  68. package/esm2020/lib/menu/menu.module.mjs +22 -0
  69. package/esm2020/lib/menu/menu2.component.mjs +96 -0
  70. package/esm2020/lib/number-box/number-box.component.mjs +622 -0
  71. package/esm2020/lib/number-box/number-box.module.mjs +21 -0
  72. package/esm2020/lib/page/content.component.mjs +32 -0
  73. package/esm2020/lib/page/footer.component.mjs +19 -0
  74. package/esm2020/lib/page/page.component.mjs +53 -0
  75. package/esm2020/lib/page/page.module.mjs +22 -0
  76. package/esm2020/lib/panel-box/panel-box.component.mjs +88 -0
  77. package/esm2020/lib/panel-box/panel-box.module.mjs +19 -0
  78. package/esm2020/lib/password-box/password-box.component.mjs +31 -0
  79. package/esm2020/lib/password-box/password-box.module.mjs +23 -0
  80. package/esm2020/lib/popover/custom-cdk-overlay.service.mjs +47 -0
  81. package/esm2020/lib/popover/overlay.service.mjs +87 -0
  82. package/esm2020/lib/popover/popover.component.mjs +115 -0
  83. package/esm2020/lib/popover/popover.module.mjs +19 -0
  84. package/esm2020/lib/popup/popup.component.mjs +147 -0
  85. package/esm2020/lib/popup/popup.module.mjs +25 -0
  86. package/esm2020/lib/popup/popup.service.mjs +93 -0
  87. package/esm2020/lib/progress-bar/progress-bar.component.mjs +19 -0
  88. package/esm2020/lib/progress-bar/progress-bar.module.mjs +19 -0
  89. package/esm2020/lib/property-editor/editors/color-editor/color.editor.mjs +38 -0
  90. package/esm2020/lib/property-editor/editors/color-editor/color.module.mjs +24 -0
  91. package/esm2020/lib/property-editor/editors/column-editor/column.editor.mjs +115 -0
  92. package/esm2020/lib/property-editor/editors/column-editor/column.module.mjs +32 -0
  93. package/esm2020/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.mjs +211 -0
  94. package/esm2020/lib/property-editor/editors/conditional-color-editor/conditional-color.module.mjs +78 -0
  95. package/esm2020/lib/property-editor/editors/date-editor/date.editor.mjs +51 -0
  96. package/esm2020/lib/property-editor/editors/date-editor/date.module.mjs +24 -0
  97. package/esm2020/lib/property-editor/editors/number-editor/number.editor.mjs +60 -0
  98. package/esm2020/lib/property-editor/editors/number-editor/number.module.mjs +24 -0
  99. package/esm2020/lib/property-editor/editors/range-editor/range.editor.mjs +140 -0
  100. package/esm2020/lib/property-editor/editors/range-editor/range.module.mjs +61 -0
  101. package/esm2020/lib/property-editor/editors/selectbox-editor/selectbox.editor.mjs +71 -0
  102. package/esm2020/lib/property-editor/editors/selectbox-editor/selectbox.module.mjs +25 -0
  103. package/esm2020/lib/property-editor/editors/switch-editor/number.editor.mjs +29 -0
  104. package/esm2020/lib/property-editor/editors/switch-editor/number.module.mjs +25 -0
  105. package/esm2020/lib/property-editor/editors/text-editor/text.editor.mjs +30 -0
  106. package/esm2020/lib/property-editor/editors/text-editor/text.module.mjs +24 -0
  107. package/esm2020/lib/property-editor/editors/time-editor/time.editor.mjs +43 -0
  108. package/esm2020/lib/property-editor/editors/time-editor/time.module.mjs +24 -0
  109. package/esm2020/lib/property-editor/property-editor-renderer.directive.mjs +152 -0
  110. package/esm2020/lib/property-editor/property-editor.class.mjs +101 -0
  111. package/esm2020/lib/property-editor/property-editor.module.mjs +147 -0
  112. package/esm2020/lib/query-builder/query-builder-group.component.mjs +124 -0
  113. package/esm2020/lib/query-builder/query-builder-popup/query-builder-popup.component.mjs +171 -0
  114. package/esm2020/lib/query-builder/query-builder-rule.component.mjs +357 -0
  115. package/esm2020/lib/query-builder/query-builder.class.mjs +20 -0
  116. package/esm2020/lib/query-builder/query-builder.component.mjs +82 -0
  117. package/esm2020/lib/query-builder/query-builder.module.mjs +59 -0
  118. package/esm2020/lib/query-builder/query-builder.service.mjs +191 -0
  119. package/esm2020/lib/searchbox/searchbox.component.mjs +79 -0
  120. package/esm2020/lib/searchbox/searchbox.module.mjs +24 -0
  121. package/esm2020/lib/selectbox/selectbox.component.mjs +956 -0
  122. package/esm2020/lib/selectbox/selectbox.module.mjs +44 -0
  123. package/esm2020/lib/selectbox/selectbox2.component.mjs +574 -0
  124. package/esm2020/lib/selection-list/selection-list.component.mjs +101 -0
  125. package/esm2020/lib/selection-list/selection-list.module.mjs +21 -0
  126. package/esm2020/lib/switch/switch.component.mjs +51 -0
  127. package/esm2020/lib/switch/switch.module.mjs +20 -0
  128. package/esm2020/lib/tab-page/tab-page-Renderer.component.mjs +69 -0
  129. package/esm2020/lib/tab-page/tab-page-host.component.mjs +109 -0
  130. package/esm2020/lib/tab-page/tab-page.module.mjs +21 -0
  131. package/esm2020/lib/tab-page/tab-page.service.mjs +156 -0
  132. package/esm2020/lib/tab-strip/tab-strip.component.mjs +36 -0
  133. package/esm2020/lib/tab-strip/tab-strip.module.mjs +19 -0
  134. package/esm2020/lib/tab-view/dynamic-tabs.directive.mjs +24 -0
  135. package/esm2020/lib/tab-view/tab-view.component.mjs +105 -0
  136. package/esm2020/lib/tab-view/tab-view.module.mjs +21 -0
  137. package/esm2020/lib/tab-view/tab.component.mjs +30 -0
  138. package/esm2020/lib/textarea/textarea.component.mjs +26 -0
  139. package/esm2020/lib/textarea/textarea.module.mjs +21 -0
  140. package/esm2020/lib/textbox/textbox.component.mjs +39 -0
  141. package/esm2020/lib/textbox/textbox.module.mjs +24 -0
  142. package/esm2020/lib/time-picker/time-picker.component.mjs +943 -0
  143. package/esm2020/lib/time-picker/time-picker.module.mjs +22 -0
  144. package/esm2020/lib/toast/toast-message/toast-message.component.mjs +74 -0
  145. package/esm2020/lib/toast/toast-wrapper/toast-wrapper.component.mjs +13 -0
  146. package/esm2020/lib/toast/toast.module.mjs +21 -0
  147. package/esm2020/lib/toast/toast.service.mjs +44 -0
  148. package/esm2020/lib/toolbar/group-button/toolbar-group-button.component.mjs +78 -0
  149. package/esm2020/lib/toolbar/menu/toolbar-menu.component.mjs +57 -0
  150. package/esm2020/lib/toolbar/search/toolbar-search.component.mjs +54 -0
  151. package/esm2020/lib/toolbar/title/toolbar-title.component.mjs +47 -0
  152. package/esm2020/lib/toolbar/toolbar-item.mjs +6 -0
  153. package/esm2020/lib/toolbar/toolbar.component.mjs +13 -0
  154. package/esm2020/lib/toolbar/toolbar.module.mjs +40 -0
  155. package/esm2020/lib/tooltip/tooltip.directive.mjs +100 -0
  156. package/esm2020/lib/tooltip/tooltip.module.mjs +19 -0
  157. package/esm2020/lib/tree-side-menu/tree-side-menu.component.mjs +646 -0
  158. package/esm2020/lib/tree-side-menu/tree-side-menu.module.mjs +35 -0
  159. package/esm2020/lib/tree-view/tree-view.component.mjs +726 -0
  160. package/esm2020/lib/tree-view/tree-view.module.mjs +22 -0
  161. package/esm2020/lib/upload-file/upload-file.component.mjs +170 -0
  162. package/esm2020/lib/upload-file/upload-file.events.mjs +2 -0
  163. package/esm2020/lib/upload-file/upload-file.module.mjs +24 -0
  164. package/esm2020/lib/validation/validation-form.component.mjs +64 -0
  165. package/esm2020/lib/validation/validation-rule.widget.mjs +111 -0
  166. package/esm2020/lib/validation/validation.class.mjs +2 -0
  167. package/esm2020/lib/validation/validation.component.mjs +90 -0
  168. package/esm2020/lib/validation/validation.module.mjs +34 -0
  169. package/esm2020/public-api.mjs +154 -0
  170. package/fesm2015/acorex-components.mjs +15036 -0
  171. package/fesm2015/acorex-components.mjs.map +1 -0
  172. package/fesm2020/acorex-components.mjs +14983 -0
  173. package/fesm2020/acorex-components.mjs.map +1 -0
  174. package/lib/accordion/accordion.component.d.ts +13 -0
  175. package/lib/accordion/accordion.module.d.ts +9 -0
  176. package/lib/{page → base}/base-page.class.d.ts +11 -6
  177. package/lib/base/element.class.d.ts +106 -0
  178. package/lib/base/events.class.d.ts +8 -18
  179. package/lib/button/button.component.d.ts +19 -4
  180. package/lib/button/button.module.d.ts +6 -0
  181. package/lib/calendar/calendar-box/calendar-box.component.d.ts +81 -0
  182. package/lib/calendar/calendar-box/calendar-box.module.d.ts +11 -0
  183. package/lib/calendar/scheduler/scheduler-views.property.d.ts +19 -0
  184. package/lib/calendar/scheduler/scheduler.class.d.ts +36 -0
  185. package/lib/calendar/scheduler/scheduler.component.d.ts +39 -0
  186. package/lib/calendar/scheduler/scheduler.module.d.ts +21 -0
  187. package/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.d.ts +25 -0
  188. package/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.d.ts +14 -0
  189. package/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.d.ts +16 -0
  190. package/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.d.ts +26 -0
  191. package/lib/calendar/scheduler/views/month/scheduler-month-view.component.d.ts +37 -0
  192. package/lib/calendar/scheduler/views/scheduler-view.component.d.ts +28 -0
  193. package/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.d.ts +24 -0
  194. package/lib/checkbox/checkbox.component.d.ts +28 -7
  195. package/lib/checkbox/checkbox.module.d.ts +7 -0
  196. package/lib/color-picker/color-box/color-box.component.d.ts +25 -0
  197. package/lib/color-picker/color-picker.component.d.ts +30 -0
  198. package/lib/color-picker/color-picker.module.d.ts +13 -0
  199. package/lib/context-menu/context-menu.component.d.ts +22 -0
  200. package/lib/context-menu/context-menu.directive.d.ts +38 -0
  201. package/lib/context-menu/context-menu.module.d.ts +9 -0
  202. package/lib/data-filter/columns/filter-column-date.component.d.ts +22 -0
  203. package/lib/data-filter/columns/filter-column-number.component.d.ts +15 -0
  204. package/lib/data-filter/columns/filter-column-selection.component.d.ts +18 -0
  205. package/lib/data-filter/columns/filter-column-string.component.d.ts +15 -0
  206. package/lib/data-filter/filter-panel/filter-panel.component.d.ts +45 -0
  207. package/lib/data-filter/filter.class.d.ts +40 -0
  208. package/lib/data-filter/filter.module.d.ts +24 -0
  209. package/lib/data-filter/toolbar/filter-toolbar.component.d.ts +25 -0
  210. package/lib/data-list/core/data-list.component.d.ts +15 -0
  211. package/lib/data-list/list/list.component.d.ts +40 -0
  212. package/lib/data-list/list/list.module.d.ts +11 -0
  213. package/lib/data-list/list/toolbar-list-view.component.d.ts +17 -0
  214. package/lib/data-source/datasource.component.d.ts +16 -0
  215. package/lib/data-source/datasource.module.d.ts +7 -0
  216. package/lib/data-source/read-param.d.ts +40 -0
  217. package/lib/date-picker/date-picker.component.d.ts +81 -0
  218. package/lib/date-picker/date-picker.module.d.ts +14 -0
  219. package/lib/dialog/dialog.component.d.ts +13 -11
  220. package/lib/dialog/dialog.module.d.ts +8 -0
  221. package/lib/dialog/dialog.service.d.ts +34 -11
  222. package/lib/drawer/drawer.component.d.ts +8 -25
  223. package/lib/drawer/drawer.module.d.ts +7 -0
  224. package/lib/dropdown/dropdown.component.d.ts +29 -13
  225. package/lib/dropdown/dropdown.module.d.ts +11 -0
  226. package/lib/fieldset/fieldset.component.d.ts +11 -0
  227. package/lib/fieldset/fieldset.module.d.ts +8 -0
  228. package/lib/form-group/form-group.component.d.ts +14 -0
  229. package/lib/form-group/form-group.module.d.ts +8 -0
  230. package/lib/label/label.component.d.ts +8 -4
  231. package/lib/label/label.module.d.ts +6 -0
  232. package/lib/loading/loading-indicator.component.d.ts +9 -0
  233. package/lib/loading/loading-panel.component.d.ts +13 -0
  234. package/lib/loading/loading.module.d.ts +8 -0
  235. package/lib/loading/loading.service.d.ts +7 -39
  236. package/lib/menu/menu-item.component.d.ts +18 -0
  237. package/lib/menu/menu.component.d.ts +35 -0
  238. package/lib/menu/menu.module.d.ts +11 -0
  239. package/lib/menu/menu2.component.d.ts +21 -0
  240. package/lib/number-box/number-box.component.d.ts +51 -30
  241. package/lib/number-box/number-box.module.d.ts +8 -0
  242. package/lib/page/content.component.d.ts +8 -0
  243. package/lib/page/footer.component.d.ts +5 -0
  244. package/lib/page/page.component.d.ts +11 -6
  245. package/lib/page/page.module.d.ts +11 -0
  246. package/lib/panel-box/panel-box.component.d.ts +19 -0
  247. package/lib/panel-box/panel-box.module.d.ts +8 -0
  248. package/lib/password-box/password-box.component.d.ts +12 -0
  249. package/lib/password-box/password-box.module.d.ts +10 -0
  250. package/lib/{base → popover}/custom-cdk-overlay.service.d.ts +7 -3
  251. package/lib/{base → popover}/overlay.service.d.ts +5 -3
  252. package/lib/popover/popover.component.d.ts +30 -0
  253. package/lib/popover/popover.module.d.ts +8 -0
  254. package/lib/popup/popup.component.d.ts +21 -15
  255. package/lib/popup/popup.module.d.ts +11 -0
  256. package/lib/popup/popup.service.d.ts +7 -3
  257. package/lib/progress-bar/progress-bar.component.d.ts +7 -0
  258. package/lib/progress-bar/progress-bar.module.d.ts +8 -0
  259. package/lib/property-editor/editors/color-editor/color.editor.d.ts +13 -0
  260. package/lib/property-editor/editors/color-editor/color.module.d.ts +12 -0
  261. package/lib/property-editor/editors/column-editor/column.editor.d.ts +34 -0
  262. package/lib/property-editor/editors/column-editor/column.module.d.ts +20 -0
  263. package/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.d.ts +44 -0
  264. package/lib/property-editor/editors/conditional-color-editor/conditional-color.module.d.ts +19 -0
  265. package/lib/property-editor/editors/date-editor/date.editor.d.ts +28 -0
  266. package/lib/property-editor/editors/date-editor/date.module.d.ts +12 -0
  267. package/lib/property-editor/editors/number-editor/number.editor.d.ts +19 -0
  268. package/lib/property-editor/editors/number-editor/number.module.d.ts +12 -0
  269. package/lib/property-editor/editors/range-editor/range.editor.d.ts +29 -0
  270. package/lib/property-editor/editors/range-editor/range.module.d.ts +18 -0
  271. package/lib/property-editor/editors/selectbox-editor/selectbox.editor.d.ts +28 -0
  272. package/lib/property-editor/editors/selectbox-editor/selectbox.module.d.ts +13 -0
  273. package/lib/property-editor/editors/switch-editor/number.editor.d.ts +11 -0
  274. package/lib/property-editor/editors/switch-editor/number.module.d.ts +13 -0
  275. package/lib/property-editor/editors/text-editor/text.editor.d.ts +15 -0
  276. package/lib/property-editor/editors/text-editor/text.module.d.ts +12 -0
  277. package/lib/property-editor/editors/time-editor/time.editor.d.ts +17 -0
  278. package/lib/property-editor/editors/time-editor/time.module.d.ts +12 -0
  279. package/lib/property-editor/property-editor-renderer.directive.d.ts +30 -0
  280. package/lib/property-editor/property-editor.class.d.ts +67 -0
  281. package/lib/property-editor/property-editor.module.d.ts +18 -0
  282. package/lib/query-builder/query-builder-group.component.d.ts +33 -0
  283. package/lib/query-builder/query-builder-popup/query-builder-popup.component.d.ts +35 -0
  284. package/lib/query-builder/query-builder-rule.component.d.ts +45 -0
  285. package/lib/query-builder/query-builder.class.d.ts +45 -0
  286. package/lib/query-builder/query-builder.component.d.ts +27 -0
  287. package/lib/query-builder/query-builder.module.d.ts +22 -0
  288. package/lib/query-builder/query-builder.service.d.ts +18 -0
  289. package/lib/searchbox/searchbox.component.d.ts +22 -0
  290. package/lib/searchbox/searchbox.module.d.ts +13 -0
  291. package/lib/selectbox/selectbox.component.d.ts +114 -23
  292. package/lib/selectbox/selectbox.module.d.ts +13 -0
  293. package/lib/selectbox/selectbox2.component.d.ts +103 -0
  294. package/lib/selection-list/selection-list.component.d.ts +29 -6
  295. package/lib/selection-list/selection-list.module.d.ts +8 -0
  296. package/lib/switch/switch.component.d.ts +19 -5
  297. package/lib/switch/switch.module.d.ts +7 -0
  298. package/lib/tab-page/tab-page-Renderer.component.d.ts +16 -0
  299. package/lib/tab-page/tab-page-host.component.d.ts +26 -0
  300. package/lib/tab-page/tab-page.module.d.ts +10 -0
  301. package/lib/tab-page/tab-page.service.d.ts +30 -0
  302. package/lib/tab-strip/tab-strip.component.d.ts +28 -0
  303. package/lib/tab-strip/tab-strip.module.d.ts +8 -0
  304. package/lib/tab-view/dynamic-tabs.directive.d.ts +16 -0
  305. package/lib/tab-view/tab-view.component.d.ts +26 -0
  306. package/lib/tab-view/tab-view.module.d.ts +10 -0
  307. package/lib/tab-view/tab.component.d.ts +12 -0
  308. package/lib/textarea/textarea.component.d.ts +12 -0
  309. package/lib/textarea/textarea.module.d.ts +8 -0
  310. package/lib/textbox/textbox.component.d.ts +14 -6
  311. package/lib/textbox/textbox.module.d.ts +9 -0
  312. package/lib/time-picker/time-picker.component.d.ts +52 -0
  313. package/lib/time-picker/time-picker.module.d.ts +11 -0
  314. package/lib/toast/toast-message/toast-message.component.d.ts +18 -0
  315. package/lib/toast/toast-wrapper/toast-wrapper.component.d.ts +8 -0
  316. package/lib/toast/toast.module.d.ts +7 -0
  317. package/lib/toast/toast.service.d.ts +16 -13
  318. package/lib/toolbar/group-button/toolbar-group-button.component.d.ts +12 -0
  319. package/lib/toolbar/menu/toolbar-menu.component.d.ts +24 -0
  320. package/lib/toolbar/search/toolbar-search.component.d.ts +16 -0
  321. package/lib/toolbar/title/toolbar-title.component.d.ts +9 -0
  322. package/lib/toolbar/toolbar-item.d.ts +3 -0
  323. package/lib/toolbar/toolbar.component.d.ts +8 -0
  324. package/lib/toolbar/toolbar.module.d.ts +14 -0
  325. package/lib/tooltip/tooltip.directive.d.ts +18 -12
  326. package/lib/tooltip/tooltip.module.d.ts +6 -0
  327. package/lib/tree-side-menu/tree-side-menu.component.d.ts +111 -0
  328. package/lib/tree-side-menu/tree-side-menu.module.d.ts +11 -0
  329. package/lib/tree-view/tree-view.component.d.ts +117 -0
  330. package/lib/tree-view/tree-view.module.d.ts +11 -0
  331. package/lib/upload-file/upload-file.component.d.ts +38 -0
  332. package/lib/upload-file/upload-file.events.d.ts +10 -0
  333. package/lib/upload-file/upload-file.module.d.ts +13 -0
  334. package/lib/validation/validation-form.component.d.ts +19 -0
  335. package/lib/validation/validation-rule.widget.d.ts +8 -7
  336. package/lib/validation/validation.class.d.ts +0 -1
  337. package/lib/validation/validation.component.d.ts +25 -0
  338. package/lib/validation/validation.module.d.ts +8 -0
  339. package/package.json +25 -15
  340. package/public-api.d.ts +151 -31
  341. package/acorex-components.metadata.json +0 -1
  342. package/bundles/acorex-components.umd.js +0 -6492
  343. package/bundles/acorex-components.umd.js.map +0 -1
  344. package/bundles/acorex-components.umd.min.js +0 -16
  345. package/bundles/acorex-components.umd.min.js.map +0 -1
  346. package/esm2015/lib/alert/alert-button.component.js +0 -42
  347. package/esm2015/lib/alert/alert-contnet.component.js +0 -16
  348. package/esm2015/lib/alert/alert-footer.component.js +0 -18
  349. package/esm2015/lib/alert/alert-suffix.component.js +0 -18
  350. package/esm2015/lib/alert/alert-title.component.js +0 -16
  351. package/esm2015/lib/alert/alert.component.js +0 -87
  352. package/esm2015/lib/alert/alert.module.js +0 -28
  353. package/esm2015/lib/alert/index.js +0 -8
  354. package/esm2015/lib/base/common.module.js +0 -13
  355. package/esm2015/lib/base/custom-cdk-overlay.service.js +0 -56
  356. package/esm2015/lib/base/drawing.class.js +0 -11
  357. package/esm2015/lib/base/events.class.js +0 -19
  358. package/esm2015/lib/base/index.js +0 -7
  359. package/esm2015/lib/base/mixin/base-components.class.js +0 -72
  360. package/esm2015/lib/base/mixin/button-mixin.class.js +0 -36
  361. package/esm2015/lib/base/mixin/clickable-mixin.class.js +0 -17
  362. package/esm2015/lib/base/mixin/constratctor.js +0 -2
  363. package/esm2015/lib/base/mixin/datalist-component.class.js +0 -97
  364. package/esm2015/lib/base/mixin/dropdown-mixin.class.js +0 -36
  365. package/esm2015/lib/base/mixin/index.js +0 -3
  366. package/esm2015/lib/base/mixin/interactive-mixin.class.js +0 -47
  367. package/esm2015/lib/base/mixin/loading-mixin.class.js +0 -15
  368. package/esm2015/lib/base/mixin/mixin.class.js +0 -24
  369. package/esm2015/lib/base/mixin/selection-component.class.js +0 -158
  370. package/esm2015/lib/base/mixin/sizable-mixin.class.js +0 -19
  371. package/esm2015/lib/base/mixin/textbox-mixin.class.js +0 -19
  372. package/esm2015/lib/base/mixin/value-mixin.class.js +0 -172
  373. package/esm2015/lib/base/overlay.service.js +0 -96
  374. package/esm2015/lib/base/responsive.directive.js +0 -34
  375. package/esm2015/lib/base/styles.class.js +0 -4
  376. package/esm2015/lib/button/button-group.component.js +0 -71
  377. package/esm2015/lib/button/button-item.class.js +0 -2
  378. package/esm2015/lib/button/button-item.component.js +0 -35
  379. package/esm2015/lib/button/button.component.js +0 -34
  380. package/esm2015/lib/button/button.module.js +0 -24
  381. package/esm2015/lib/button/dropdown-button.component.js +0 -108
  382. package/esm2015/lib/button/index.js +0 -7
  383. package/esm2015/lib/calendar/calendar.component.js +0 -69
  384. package/esm2015/lib/calendar/calendar.module.js +0 -19
  385. package/esm2015/lib/calendar/index.js +0 -3
  386. package/esm2015/lib/carousel/carousel-arrows.component.js +0 -45
  387. package/esm2015/lib/carousel/carousel-item.component.js +0 -21
  388. package/esm2015/lib/carousel/carousel-pager.component.js +0 -71
  389. package/esm2015/lib/carousel/carousel-splidejs.class.js +0 -82
  390. package/esm2015/lib/carousel/carousel.class.js +0 -7
  391. package/esm2015/lib/carousel/carousel.component.js +0 -221
  392. package/esm2015/lib/carousel/carousel.module.js +0 -24
  393. package/esm2015/lib/carousel/index.js +0 -7
  394. package/esm2015/lib/checkbox/checkbox.component.js +0 -41
  395. package/esm2015/lib/checkbox/checkbox.module.js +0 -15
  396. package/esm2015/lib/checkbox/index.js +0 -3
  397. package/esm2015/lib/datalist/datalist.component.js +0 -71
  398. package/esm2015/lib/datalist/datalist.module.js +0 -17
  399. package/esm2015/lib/datalist/index.js +0 -3
  400. package/esm2015/lib/datapager/datapager-base.component.js +0 -33
  401. package/esm2015/lib/datapager/datapager-info.component.js +0 -59
  402. package/esm2015/lib/datapager/datapager-input-selector.component.js +0 -51
  403. package/esm2015/lib/datapager/datapager-next-buttons.components.js +0 -51
  404. package/esm2015/lib/datapager/datapager-numeric-selector.component.js +0 -86
  405. package/esm2015/lib/datapager/datapager-pagesize-dropdown.component.js +0 -69
  406. package/esm2015/lib/datapager/datapager-prev-buttons.component.js +0 -47
  407. package/esm2015/lib/datapager/datapager.component.js +0 -124
  408. package/esm2015/lib/datapager/datapager.module.js +0 -32
  409. package/esm2015/lib/datapager/index.js +0 -9
  410. package/esm2015/lib/datepicker/datepicker.component.js +0 -62
  411. package/esm2015/lib/datepicker/datepicker.module.js +0 -18
  412. package/esm2015/lib/datepicker/index.js +0 -3
  413. package/esm2015/lib/decorators/decorators.module.js +0 -17
  414. package/esm2015/lib/decorators/index.js +0 -4
  415. package/esm2015/lib/decorators/prefix.component.js +0 -28
  416. package/esm2015/lib/decorators/suffix.component.js +0 -28
  417. package/esm2015/lib/dialog/dialog.class.js +0 -47
  418. package/esm2015/lib/dialog/dialog.component.js +0 -39
  419. package/esm2015/lib/dialog/dialog.module.js +0 -19
  420. package/esm2015/lib/dialog/dialog.service.js +0 -139
  421. package/esm2015/lib/dialog/index.js +0 -5
  422. package/esm2015/lib/drawer/drawer-container.component.js +0 -67
  423. package/esm2015/lib/drawer/drawer-content.component.js +0 -24
  424. package/esm2015/lib/drawer/drawer.component.js +0 -139
  425. package/esm2015/lib/drawer/drawer.module.js +0 -18
  426. package/esm2015/lib/drawer/index.js +0 -5
  427. package/esm2015/lib/dropdown/dropdown.component.js +0 -127
  428. package/esm2015/lib/dropdown/dropdown.module.js +0 -15
  429. package/esm2015/lib/dropdown/index.js +0 -3
  430. package/esm2015/lib/form/form-field.component.js +0 -20
  431. package/esm2015/lib/form/form-field.module.js +0 -15
  432. package/esm2015/lib/form/form.component.js +0 -51
  433. package/esm2015/lib/form/index.js +0 -4
  434. package/esm2015/lib/icon/icon.component.js +0 -28
  435. package/esm2015/lib/icon/icon.module.js +0 -16
  436. package/esm2015/lib/icon/index.js +0 -3
  437. package/esm2015/lib/input-mask/index.js +0 -3
  438. package/esm2015/lib/input-mask/input-mask.component.js +0 -35
  439. package/esm2015/lib/input-mask/input-mask.module.js +0 -17
  440. package/esm2015/lib/label/index.js +0 -3
  441. package/esm2015/lib/label/label.component.js +0 -20
  442. package/esm2015/lib/label/label.module.js +0 -16
  443. package/esm2015/lib/loading/index.js +0 -5
  444. package/esm2015/lib/loading/loading.component.js +0 -23
  445. package/esm2015/lib/loading/loading.directive.js +0 -70
  446. package/esm2015/lib/loading/loading.module.js +0 -18
  447. package/esm2015/lib/loading/loading.service.js +0 -157
  448. package/esm2015/lib/number-box/index.js +0 -3
  449. package/esm2015/lib/number-box/number-box.component.js +0 -242
  450. package/esm2015/lib/number-box/number-box.module.js +0 -24
  451. package/esm2015/lib/page/base-page.class.js +0 -84
  452. package/esm2015/lib/page/index.js +0 -3
  453. package/esm2015/lib/page/page.component.js +0 -32
  454. package/esm2015/lib/popup/index.js +0 -4
  455. package/esm2015/lib/popup/popup.component.js +0 -143
  456. package/esm2015/lib/popup/popup.module.js +0 -19
  457. package/esm2015/lib/popup/popup.service.js +0 -89
  458. package/esm2015/lib/selectbox/index.js +0 -3
  459. package/esm2015/lib/selectbox/selectbox.component.js +0 -188
  460. package/esm2015/lib/selectbox/selectbox.module.js +0 -16
  461. package/esm2015/lib/selection-list/index.js +0 -3
  462. package/esm2015/lib/selection-list/selection-list.component.js +0 -46
  463. package/esm2015/lib/selection-list/selection-list.module.js +0 -16
  464. package/esm2015/lib/side-menu/index.js +0 -3
  465. package/esm2015/lib/side-menu/side-menu.component.js +0 -21
  466. package/esm2015/lib/side-menu/side-menu.module.js +0 -16
  467. package/esm2015/lib/switch/index.js +0 -3
  468. package/esm2015/lib/switch/switch.component.js +0 -29
  469. package/esm2015/lib/switch/switch.module.js +0 -16
  470. package/esm2015/lib/tabs/index.js +0 -6
  471. package/esm2015/lib/tabs/tab-strip.component.js +0 -57
  472. package/esm2015/lib/tabs/tab-view.component.js +0 -45
  473. package/esm2015/lib/tabs/tab.component.js +0 -48
  474. package/esm2015/lib/tabs/tabs.class.js +0 -4
  475. package/esm2015/lib/tabs/tabs.module.js +0 -18
  476. package/esm2015/lib/textbox/index.js +0 -3
  477. package/esm2015/lib/textbox/textbox.component.js +0 -46
  478. package/esm2015/lib/textbox/textbox.module.js +0 -24
  479. package/esm2015/lib/time-box/index.js +0 -3
  480. package/esm2015/lib/time-box/time-box.component.js +0 -127
  481. package/esm2015/lib/time-box/time-box.module.js +0 -24
  482. package/esm2015/lib/toast/index.js +0 -5
  483. package/esm2015/lib/toast/toast.class.js +0 -2
  484. package/esm2015/lib/toast/toast.component.js +0 -54
  485. package/esm2015/lib/toast/toast.module.js +0 -17
  486. package/esm2015/lib/toast/toast.service.js +0 -117
  487. package/esm2015/lib/tooltip/index.js +0 -4
  488. package/esm2015/lib/tooltip/tooltip.component.js +0 -37
  489. package/esm2015/lib/tooltip/tooltip.directive.js +0 -81
  490. package/esm2015/lib/tooltip/tooltip.module.js +0 -18
  491. package/esm2015/lib/validation/index.js +0 -3
  492. package/esm2015/lib/validation/validation-rule.widget.js +0 -110
  493. package/esm2015/lib/validation/validation.class.js +0 -2
  494. package/esm2015/lib/validation/validation.module.js +0 -28
  495. package/esm2015/public-api.js +0 -32
  496. package/fesm2015/acorex-components.js +0 -5431
  497. package/fesm2015/acorex-components.js.map +0 -1
  498. package/lib/alert/alert-button.component.d.ts +0 -10
  499. package/lib/alert/alert-contnet.component.d.ts +0 -2
  500. package/lib/alert/alert-footer.component.d.ts +0 -2
  501. package/lib/alert/alert-suffix.component.d.ts +0 -2
  502. package/lib/alert/alert-title.component.d.ts +0 -2
  503. package/lib/alert/alert.component.d.ts +0 -16
  504. package/lib/alert/alert.module.d.ts +0 -2
  505. package/lib/alert/index.d.ts +0 -7
  506. package/lib/base/common.module.d.ts +0 -2
  507. package/lib/base/drawing.class.d.ts +0 -9
  508. package/lib/base/index.d.ts +0 -6
  509. package/lib/base/mixin/base-components.class.d.ts +0 -51
  510. package/lib/base/mixin/button-mixin.class.d.ts +0 -34
  511. package/lib/base/mixin/clickable-mixin.class.d.ts +0 -29
  512. package/lib/base/mixin/constratctor.d.ts +0 -4
  513. package/lib/base/mixin/datalist-component.class.d.ts +0 -45
  514. package/lib/base/mixin/dropdown-mixin.class.d.ts +0 -38
  515. package/lib/base/mixin/index.d.ts +0 -2
  516. package/lib/base/mixin/interactive-mixin.class.d.ts +0 -34
  517. package/lib/base/mixin/loading-mixin.class.d.ts +0 -28
  518. package/lib/base/mixin/mixin.class.d.ts +0 -493
  519. package/lib/base/mixin/selection-component.class.d.ts +0 -46
  520. package/lib/base/mixin/sizable-mixin.class.d.ts +0 -28
  521. package/lib/base/mixin/textbox-mixin.class.d.ts +0 -33
  522. package/lib/base/mixin/value-mixin.class.d.ts +0 -50
  523. package/lib/base/responsive.directive.d.ts +0 -7
  524. package/lib/base/styles.class.d.ts +0 -6
  525. package/lib/button/button-group.component.d.ts +0 -19
  526. package/lib/button/button-item.class.d.ts +0 -17
  527. package/lib/button/button-item.component.d.ts +0 -16
  528. package/lib/button/dropdown-button.component.d.ts +0 -27
  529. package/lib/button/index.d.ts +0 -6
  530. package/lib/calendar/calendar.component.d.ts +0 -17
  531. package/lib/calendar/calendar.module.d.ts +0 -2
  532. package/lib/calendar/index.d.ts +0 -2
  533. package/lib/carousel/carousel-arrows.component.d.ts +0 -11
  534. package/lib/carousel/carousel-item.component.d.ts +0 -5
  535. package/lib/carousel/carousel-pager.component.d.ts +0 -19
  536. package/lib/carousel/carousel-splidejs.class.d.ts +0 -18
  537. package/lib/carousel/carousel.class.d.ts +0 -51
  538. package/lib/carousel/carousel.component.d.ts +0 -59
  539. package/lib/carousel/carousel.module.d.ts +0 -2
  540. package/lib/carousel/index.d.ts +0 -6
  541. package/lib/checkbox/index.d.ts +0 -2
  542. package/lib/datalist/datalist.component.d.ts +0 -22
  543. package/lib/datalist/datalist.module.d.ts +0 -2
  544. package/lib/datalist/index.d.ts +0 -2
  545. package/lib/datapager/datapager-base.component.d.ts +0 -12
  546. package/lib/datapager/datapager-info.component.d.ts +0 -24
  547. package/lib/datapager/datapager-input-selector.component.d.ts +0 -12
  548. package/lib/datapager/datapager-next-buttons.components.d.ts +0 -14
  549. package/lib/datapager/datapager-numeric-selector.component.d.ts +0 -17
  550. package/lib/datapager/datapager-pagesize-dropdown.component.d.ts +0 -17
  551. package/lib/datapager/datapager-prev-buttons.component.d.ts +0 -13
  552. package/lib/datapager/datapager.component.d.ts +0 -41
  553. package/lib/datapager/datapager.module.d.ts +0 -2
  554. package/lib/datapager/index.d.ts +0 -8
  555. package/lib/datepicker/datepicker.component.d.ts +0 -15
  556. package/lib/datepicker/datepicker.module.d.ts +0 -2
  557. package/lib/datepicker/index.d.ts +0 -2
  558. package/lib/decorators/decorators.module.d.ts +0 -2
  559. package/lib/decorators/index.d.ts +0 -3
  560. package/lib/decorators/prefix.component.d.ts +0 -5
  561. package/lib/decorators/suffix.component.d.ts +0 -5
  562. package/lib/dialog/dialog.class.d.ts +0 -35
  563. package/lib/dialog/index.d.ts +0 -4
  564. package/lib/drawer/drawer-container.component.d.ts +0 -10
  565. package/lib/drawer/drawer-content.component.d.ts +0 -5
  566. package/lib/drawer/index.d.ts +0 -4
  567. package/lib/dropdown/index.d.ts +0 -2
  568. package/lib/form/form-field.component.d.ts +0 -5
  569. package/lib/form/form-field.module.d.ts +0 -2
  570. package/lib/form/form.component.d.ts +0 -10
  571. package/lib/form/index.d.ts +0 -3
  572. package/lib/icon/icon.component.d.ts +0 -7
  573. package/lib/icon/icon.module.d.ts +0 -2
  574. package/lib/icon/index.d.ts +0 -2
  575. package/lib/input-mask/index.d.ts +0 -2
  576. package/lib/input-mask/input-mask.component.d.ts +0 -11
  577. package/lib/input-mask/input-mask.module.d.ts +0 -2
  578. package/lib/label/index.d.ts +0 -2
  579. package/lib/loading/index.d.ts +0 -4
  580. package/lib/loading/loading.component.d.ts +0 -5
  581. package/lib/loading/loading.directive.d.ts +0 -19
  582. package/lib/number-box/index.d.ts +0 -2
  583. package/lib/page/index.d.ts +0 -2
  584. package/lib/popup/index.d.ts +0 -3
  585. package/lib/selectbox/index.d.ts +0 -2
  586. package/lib/selection-list/index.d.ts +0 -2
  587. package/lib/side-menu/index.d.ts +0 -2
  588. package/lib/side-menu/side-menu.component.d.ts +0 -5
  589. package/lib/side-menu/side-menu.module.d.ts +0 -2
  590. package/lib/switch/index.d.ts +0 -2
  591. package/lib/tabs/index.d.ts +0 -5
  592. package/lib/tabs/tab-strip.component.d.ts +0 -14
  593. package/lib/tabs/tab-view.component.d.ts +0 -11
  594. package/lib/tabs/tab.component.d.ts +0 -15
  595. package/lib/tabs/tabs.class.d.ts +0 -18
  596. package/lib/tabs/tabs.module.d.ts +0 -2
  597. package/lib/textbox/index.d.ts +0 -2
  598. package/lib/time-box/index.d.ts +0 -2
  599. package/lib/time-box/time-box.component.d.ts +0 -26
  600. package/lib/time-box/time-box.module.d.ts +0 -2
  601. package/lib/toast/index.d.ts +0 -4
  602. package/lib/toast/toast.class.d.ts +0 -14
  603. package/lib/toast/toast.component.d.ts +0 -13
  604. package/lib/tooltip/index.d.ts +0 -3
  605. package/lib/tooltip/tooltip.component.d.ts +0 -7
  606. package/lib/validation/index.d.ts +0 -2
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-components.js","sources":["../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/loading-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/events.class.ts","../../projects/acorex/components/src/lib/base/drawing.class.ts","../../projects/acorex/components/src/lib/base/styles.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.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-splidejs.class.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/acorex-components.ts"],"sourcesContent":["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 { 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}","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","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}","// export type AXPlacement =\r\n// | 'top-start'\r\n// | 'top-middle'\r\n// | 'top-end'\r\n// | 'center-start'\r\n// | 'center-end'\r\n// | 'bottom-start'\r\n// | 'bottom-middle'\r\n// | 'bottom-end';\r\n\r\n\r\nexport interface AXConnectedPosition {\r\n originX: 'start' | 'center' | 'end';\r\n originY: 'top' | 'center' | 'bottom';\r\n overlayX: 'start' | 'center' | 'end';\r\n overlayY: 'top' | 'center' | 'bottom';\r\n weight?: number;\r\n offsetX?: number;\r\n offsetY?: number;\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';","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 debugger\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 debugger;\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 debugger;\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\nexport interface AXCarouselConfig {\r\n pageSize: number;\r\n height: number | string;\r\n width: number | string;\r\n gap: number | string;\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\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})\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 { 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 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 { 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 provide: AXCarouselCore,\r\n useClass: AXCarouselSplideJS\r\n }],\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["COMPONENT","MODULES"],"mappings":"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"}