@acorex/components 6.5.91 → 6.6.0

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 (544) hide show
  1. package/README.md +7 -3
  2. package/esm2022/acorex-components.mjs +5 -0
  3. package/esm2022/index.mjs +158 -0
  4. package/esm2022/lib/accordion/accordion.component.mjs +45 -0
  5. package/esm2022/lib/accordion/accordion.module.mjs +20 -0
  6. package/esm2022/lib/base/base-page.class.mjs +97 -0
  7. package/esm2022/lib/base/components.class.mjs +17 -0
  8. package/esm2022/lib/base/element.class.mjs +301 -0
  9. package/esm2022/lib/base/events.class.mjs +17 -0
  10. package/esm2022/lib/button/button.component.mjs +74 -0
  11. package/esm2022/lib/button/button.module.mjs +21 -0
  12. package/esm2022/lib/calendar/calendar-box/calendar-box.component.mjs +426 -0
  13. package/esm2022/lib/calendar/calendar-box/calendar-box.module.mjs +22 -0
  14. package/esm2022/lib/calendar/scheduler/scheduler-views.property.mjs +59 -0
  15. package/esm2022/lib/calendar/scheduler/scheduler.class.mjs +16 -0
  16. package/esm2022/lib/calendar/scheduler/scheduler.component.mjs +226 -0
  17. package/esm2022/lib/calendar/scheduler/scheduler.module.mjs +68 -0
  18. package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.mjs +136 -0
  19. package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.mjs +37 -0
  20. package/esm2022/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.mjs +49 -0
  21. package/esm2022/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.mjs +102 -0
  22. package/esm2022/lib/calendar/scheduler/views/month/scheduler-month-view.component.mjs +214 -0
  23. package/esm2022/lib/calendar/scheduler/views/scheduler-view.component.mjs +99 -0
  24. package/esm2022/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.mjs +85 -0
  25. package/esm2022/lib/checkbox/checkbox.component.mjs +102 -0
  26. package/esm2022/lib/checkbox/checkbox.module.mjs +20 -0
  27. package/esm2022/lib/color-picker/color-box/color-box.component.mjs +423 -0
  28. package/esm2022/lib/color-picker/color-picker.component.mjs +89 -0
  29. package/esm2022/lib/color-picker/color-picker.module.mjs +24 -0
  30. package/esm2022/lib/context-menu/context-menu.component.mjs +68 -0
  31. package/esm2022/lib/context-menu/context-menu.directive.mjs +146 -0
  32. package/esm2022/lib/context-menu/context-menu.module.mjs +20 -0
  33. package/esm2022/lib/data-filter/columns/filter-column-date.component.mjs +140 -0
  34. package/esm2022/lib/data-filter/columns/filter-column-number.component.mjs +119 -0
  35. package/esm2022/lib/data-filter/columns/filter-column-selection.component.mjs +75 -0
  36. package/esm2022/lib/data-filter/columns/filter-column-string.component.mjs +119 -0
  37. package/esm2022/lib/data-filter/filter-panel/filter-panel.component.mjs +267 -0
  38. package/esm2022/lib/data-filter/filter.class.mjs +46 -0
  39. package/esm2022/lib/data-filter/filter.module.mjs +88 -0
  40. package/esm2022/lib/data-filter/toolbar/filter-toolbar.component.mjs +168 -0
  41. package/esm2022/lib/data-list/core/data-list.component.mjs +37 -0
  42. package/esm2022/lib/data-list/list/list.component.mjs +134 -0
  43. package/esm2022/lib/data-list/list/list.module.mjs +22 -0
  44. package/esm2022/lib/data-list/list/toolbar-list-view.component.mjs +84 -0
  45. package/esm2022/lib/data-source/datasource.component.mjs +47 -0
  46. package/esm2022/lib/data-source/datasource.module.mjs +18 -0
  47. package/esm2022/lib/data-source/read-param.mjs +7 -0
  48. package/esm2022/lib/date-picker/date-picker.component.mjs +1093 -0
  49. package/esm2022/lib/date-picker/date-picker.module.mjs +49 -0
  50. package/esm2022/lib/dialog/dialog.component.mjs +26 -0
  51. package/esm2022/lib/dialog/dialog.module.mjs +21 -0
  52. package/esm2022/lib/dialog/dialog.service.mjs +160 -0
  53. package/esm2022/lib/drawer/content.component.mjs +18 -0
  54. package/esm2022/lib/drawer/drawer-container.component.mjs +38 -0
  55. package/esm2022/lib/drawer/drawer.component.mjs +146 -0
  56. package/esm2022/lib/drawer/drawer.module.mjs +23 -0
  57. package/esm2022/lib/dropdown/dropdown.component.mjs +186 -0
  58. package/esm2022/lib/dropdown/dropdown.module.mjs +26 -0
  59. package/esm2022/lib/fieldset/fieldset.component.mjs +57 -0
  60. package/esm2022/lib/fieldset/fieldset.module.mjs +19 -0
  61. package/esm2022/lib/form-group/form-group.component.mjs +37 -0
  62. package/esm2022/lib/form-group/form-group.module.mjs +21 -0
  63. package/esm2022/lib/label/label.component.mjs +19 -0
  64. package/esm2022/lib/label/label.module.mjs +21 -0
  65. package/esm2022/lib/loading/loading-indicator.component.mjs +18 -0
  66. package/esm2022/lib/loading/loading-panel.component.mjs +45 -0
  67. package/esm2022/lib/loading/loading.module.mjs +21 -0
  68. package/esm2022/lib/loading/loading.service.mjs +47 -0
  69. package/esm2022/lib/menu/menu-item.component.mjs +50 -0
  70. package/esm2022/lib/menu/menu.component.mjs +98 -0
  71. package/esm2022/lib/menu/menu.module.mjs +22 -0
  72. package/esm2022/lib/menu/menu2.component.mjs +100 -0
  73. package/esm2022/lib/number-box/number-box.component.mjs +628 -0
  74. package/esm2022/lib/number-box/number-box.module.mjs +21 -0
  75. package/esm2022/lib/page/content.component.mjs +27 -0
  76. package/esm2022/lib/page/footer.component.mjs +19 -0
  77. package/esm2022/lib/page/page.component.mjs +57 -0
  78. package/esm2022/lib/page/page.module.mjs +22 -0
  79. package/esm2022/lib/panel-box/panel-box.component.mjs +87 -0
  80. package/esm2022/lib/panel-box/panel-box.module.mjs +19 -0
  81. package/esm2022/lib/password-box/password-box.component.mjs +32 -0
  82. package/esm2022/lib/password-box/password-box.module.mjs +23 -0
  83. package/esm2022/lib/popover/custom-cdk-overlay.service.mjs +50 -0
  84. package/esm2022/lib/popover/overlay.service.mjs +94 -0
  85. package/esm2022/lib/popover/popover.component.mjs +145 -0
  86. package/esm2022/lib/popover/popover.module.mjs +19 -0
  87. package/esm2022/lib/popup/popup.component.mjs +160 -0
  88. package/esm2022/lib/popup/popup.module.mjs +25 -0
  89. package/esm2022/lib/popup/popup.service.mjs +94 -0
  90. package/esm2022/lib/progress-bar/progress-bar.component.mjs +16 -0
  91. package/esm2022/lib/progress-bar/progress-bar.module.mjs +19 -0
  92. package/esm2022/lib/property-editor/editors/check-editor/check-editor.mjs +65 -0
  93. package/esm2022/lib/property-editor/editors/check-editor/check.module.mjs +22 -0
  94. package/esm2022/lib/property-editor/editors/color-editor/color.editor.mjs +41 -0
  95. package/esm2022/lib/property-editor/editors/color-editor/color.module.mjs +24 -0
  96. package/esm2022/lib/property-editor/editors/column-editor/column.editor.mjs +118 -0
  97. package/esm2022/lib/property-editor/editors/column-editor/column.module.mjs +32 -0
  98. package/esm2022/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.mjs +216 -0
  99. package/esm2022/lib/property-editor/editors/conditional-color-editor/conditional-color.module.mjs +76 -0
  100. package/esm2022/lib/property-editor/editors/date-editor/date.editor.mjs +87 -0
  101. package/esm2022/lib/property-editor/editors/date-editor/date.module.mjs +24 -0
  102. package/esm2022/lib/property-editor/editors/number-editor/number.editor.mjs +69 -0
  103. package/esm2022/lib/property-editor/editors/number-editor/number.module.mjs +24 -0
  104. package/esm2022/lib/property-editor/editors/range-editor/range.editor.mjs +145 -0
  105. package/esm2022/lib/property-editor/editors/range-editor/range.module.mjs +59 -0
  106. package/esm2022/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.mjs +76 -0
  107. package/esm2022/lib/property-editor/editors/selectbox-editor/selectbox.editor.mjs +75 -0
  108. package/esm2022/lib/property-editor/editors/selectbox-editor/selectbox.module.mjs +25 -0
  109. package/esm2022/lib/property-editor/editors/selection-editor/selection-editor.mjs +73 -0
  110. package/esm2022/lib/property-editor/editors/selection-editor/selection.module.mjs +22 -0
  111. package/esm2022/lib/property-editor/editors/switch-editor/number.editor.mjs +30 -0
  112. package/esm2022/lib/property-editor/editors/switch-editor/number.module.mjs +25 -0
  113. package/esm2022/lib/property-editor/editors/text-editor/text.editor.mjs +36 -0
  114. package/esm2022/lib/property-editor/editors/text-editor/text.module.mjs +24 -0
  115. package/esm2022/lib/property-editor/editors/textarea-editor/textarea.editor.mjs +35 -0
  116. package/esm2022/lib/property-editor/editors/textarea-editor/textarea.module.mjs +24 -0
  117. package/esm2022/lib/property-editor/editors/time-editor/time.editor.mjs +47 -0
  118. package/esm2022/lib/property-editor/editors/time-editor/time.module.mjs +24 -0
  119. package/esm2022/lib/property-editor/property-editor-renderer.directive.mjs +167 -0
  120. package/esm2022/lib/property-editor/property-editor.class.mjs +108 -0
  121. package/esm2022/lib/property-editor/property-editor.module.mjs +194 -0
  122. package/esm2022/lib/query-builder/query-builder-group.component.mjs +129 -0
  123. package/esm2022/lib/query-builder/query-builder-popup/query-builder-popup.component.mjs +177 -0
  124. package/esm2022/lib/query-builder/query-builder-rule.component.mjs +428 -0
  125. package/esm2022/lib/query-builder/query-builder.class.mjs +42 -0
  126. package/esm2022/lib/query-builder/query-builder.component.mjs +92 -0
  127. package/esm2022/lib/query-builder/query-builder.module.mjs +62 -0
  128. package/esm2022/lib/query-builder/query-builder.service.mjs +199 -0
  129. package/esm2022/lib/search-bar/search-bar.component.mjs +293 -0
  130. package/esm2022/lib/search-bar/search-bar.module.mjs +61 -0
  131. package/esm2022/lib/searchbox/searchbox.component.mjs +106 -0
  132. package/esm2022/lib/searchbox/searchbox.module.mjs +24 -0
  133. package/esm2022/lib/selectbox/selectbox.component.mjs +1134 -0
  134. package/esm2022/lib/selectbox/selectbox.module.mjs +44 -0
  135. package/esm2022/lib/selectbox/selectbox2.component.mjs +617 -0
  136. package/esm2022/lib/selection-list/selection-list.component.mjs +113 -0
  137. package/esm2022/lib/selection-list/selection-list.module.mjs +21 -0
  138. package/esm2022/lib/switch/switch.component.mjs +55 -0
  139. package/esm2022/lib/switch/switch.module.mjs +20 -0
  140. package/esm2022/lib/tab-page/tab-page-Renderer.component.mjs +75 -0
  141. package/esm2022/lib/tab-page/tab-page-host.component.mjs +124 -0
  142. package/esm2022/lib/tab-page/tab-page.module.mjs +21 -0
  143. package/esm2022/lib/tab-page/tab-page.service.mjs +159 -0
  144. package/esm2022/lib/tab-strip/tab-strip.component.mjs +38 -0
  145. package/esm2022/lib/tab-strip/tab-strip.module.mjs +19 -0
  146. package/esm2022/lib/tab-view/dynamic-tabs.directive.mjs +25 -0
  147. package/esm2022/lib/tab-view/tab-view.component.mjs +110 -0
  148. package/esm2022/lib/tab-view/tab-view.module.mjs +21 -0
  149. package/esm2022/lib/tab-view/tab.component.mjs +33 -0
  150. package/esm2022/lib/textarea/textarea.component.mjs +27 -0
  151. package/esm2022/lib/textarea/textarea.module.mjs +21 -0
  152. package/esm2022/lib/textbox/textbox.component.mjs +42 -0
  153. package/esm2022/lib/textbox/textbox.module.mjs +36 -0
  154. package/esm2022/lib/time-picker/time-picker.component.mjs +1107 -0
  155. package/esm2022/lib/time-picker/time-picker.module.mjs +34 -0
  156. package/esm2022/lib/toast/toast-message/toast-message.component.mjs +76 -0
  157. package/esm2022/lib/toast/toast-wrapper/toast-wrapper.component.mjs +13 -0
  158. package/esm2022/lib/toast/toast.module.mjs +21 -0
  159. package/esm2022/lib/toast/toast.service.mjs +45 -0
  160. package/esm2022/lib/toolbar/group-button/toolbar-group-button.component.mjs +77 -0
  161. package/esm2022/lib/toolbar/menu/toolbar-menu.component.mjs +62 -0
  162. package/esm2022/lib/toolbar/search/toolbar-search.component.mjs +56 -0
  163. package/esm2022/lib/toolbar/title/toolbar-title.component.mjs +37 -0
  164. package/esm2022/lib/toolbar/toolbar-item.mjs +4 -0
  165. package/esm2022/lib/toolbar/toolbar.component.mjs +13 -0
  166. package/esm2022/lib/toolbar/toolbar.module.mjs +40 -0
  167. package/esm2022/lib/tooltip/tooltip.directive.mjs +104 -0
  168. package/esm2022/lib/tooltip/tooltip.module.mjs +19 -0
  169. package/esm2022/lib/tree-side-menu/tree-side-menu.component.mjs +697 -0
  170. package/esm2022/lib/tree-side-menu/tree-side-menu.module.mjs +33 -0
  171. package/esm2022/lib/tree-view/tree-view.component.mjs +854 -0
  172. package/esm2022/lib/tree-view/tree-view.module.mjs +22 -0
  173. package/esm2022/lib/upload-file/upload-file.component.mjs +226 -0
  174. package/esm2022/lib/upload-file/upload-file.events.mjs +2 -0
  175. package/esm2022/lib/upload-file/upload-file.module.mjs +24 -0
  176. package/esm2022/lib/validation/validation-form.component.mjs +68 -0
  177. package/esm2022/lib/validation/validation-rule.widget.mjs +114 -0
  178. package/esm2022/lib/validation/validation.class.mjs +2 -0
  179. package/esm2022/lib/validation/validation.component.mjs +89 -0
  180. package/esm2022/lib/validation/validation.module.mjs +34 -0
  181. package/{fesm2020 → fesm2022}/acorex-components.mjs +17004 -15581
  182. package/fesm2022/acorex-components.mjs.map +1 -0
  183. package/{public-api.d.ts → index.d.ts} +155 -155
  184. package/lib/accordion/accordion.component.d.ts +13 -13
  185. package/lib/accordion/accordion.module.d.ts +9 -9
  186. package/lib/base/base-page.class.d.ts +46 -46
  187. package/lib/base/components.class.d.ts +10 -10
  188. package/lib/base/element.class.d.ts +106 -106
  189. package/lib/base/events.class.d.ts +18 -18
  190. package/lib/button/button.component.d.ts +21 -21
  191. package/lib/button/button.module.d.ts +8 -8
  192. package/lib/calendar/calendar-box/calendar-box.component.d.ts +81 -81
  193. package/lib/calendar/calendar-box/calendar-box.module.d.ts +11 -11
  194. package/lib/calendar/scheduler/scheduler-views.property.d.ts +19 -19
  195. package/lib/calendar/scheduler/scheduler.class.d.ts +36 -36
  196. package/lib/calendar/scheduler/scheduler.component.d.ts +39 -39
  197. package/lib/calendar/scheduler/scheduler.module.d.ts +21 -21
  198. package/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.d.ts +25 -25
  199. package/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.d.ts +14 -14
  200. package/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.d.ts +16 -16
  201. package/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.d.ts +26 -26
  202. package/lib/calendar/scheduler/views/month/scheduler-month-view.component.d.ts +37 -37
  203. package/lib/calendar/scheduler/views/scheduler-view.component.d.ts +28 -28
  204. package/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.d.ts +24 -24
  205. package/lib/checkbox/checkbox.component.d.ts +30 -30
  206. package/lib/checkbox/checkbox.module.d.ts +9 -9
  207. package/lib/color-picker/color-box/color-box.component.d.ts +25 -25
  208. package/lib/color-picker/color-picker.component.d.ts +30 -30
  209. package/lib/color-picker/color-picker.module.d.ts +13 -13
  210. package/lib/context-menu/context-menu.component.d.ts +22 -22
  211. package/lib/context-menu/context-menu.directive.d.ts +38 -38
  212. package/lib/context-menu/context-menu.module.d.ts +9 -9
  213. package/lib/data-filter/columns/filter-column-date.component.d.ts +22 -22
  214. package/lib/data-filter/columns/filter-column-number.component.d.ts +15 -15
  215. package/lib/data-filter/columns/filter-column-selection.component.d.ts +18 -18
  216. package/lib/data-filter/columns/filter-column-string.component.d.ts +15 -15
  217. package/lib/data-filter/filter-panel/filter-panel.component.d.ts +45 -45
  218. package/lib/data-filter/filter.class.d.ts +40 -40
  219. package/lib/data-filter/filter.module.d.ts +24 -24
  220. package/lib/data-filter/toolbar/filter-toolbar.component.d.ts +25 -25
  221. package/lib/data-list/core/data-list.component.d.ts +15 -15
  222. package/lib/data-list/list/list.component.d.ts +40 -40
  223. package/lib/data-list/list/list.module.d.ts +11 -11
  224. package/lib/data-list/list/toolbar-list-view.component.d.ts +17 -17
  225. package/lib/data-source/datasource.component.d.ts +16 -16
  226. package/lib/data-source/datasource.module.d.ts +7 -7
  227. package/lib/data-source/read-param.d.ts +40 -40
  228. package/lib/date-picker/date-picker.component.d.ts +81 -81
  229. package/lib/date-picker/date-picker.module.d.ts +14 -14
  230. package/lib/dialog/dialog.component.d.ts +14 -14
  231. package/lib/dialog/dialog.module.d.ts +10 -10
  232. package/lib/dialog/dialog.service.d.ts +36 -36
  233. package/lib/drawer/content.component.d.ts +7 -7
  234. package/lib/drawer/drawer-container.component.d.ts +10 -10
  235. package/lib/drawer/drawer.component.d.ts +34 -34
  236. package/lib/drawer/drawer.module.d.ts +10 -10
  237. package/lib/dropdown/dropdown.component.d.ts +38 -38
  238. package/lib/dropdown/dropdown.module.d.ts +13 -13
  239. package/lib/fieldset/fieldset.component.d.ts +11 -11
  240. package/lib/fieldset/fieldset.module.d.ts +8 -8
  241. package/lib/form-group/form-group.component.d.ts +14 -14
  242. package/lib/form-group/form-group.module.d.ts +8 -8
  243. package/lib/label/label.component.d.ts +9 -9
  244. package/lib/label/label.module.d.ts +8 -8
  245. package/lib/loading/loading-indicator.component.d.ts +9 -9
  246. package/lib/loading/loading-panel.component.d.ts +13 -13
  247. package/lib/loading/loading.module.d.ts +10 -10
  248. package/lib/loading/loading.service.d.ts +13 -13
  249. package/lib/menu/menu-item.component.d.ts +18 -18
  250. package/lib/menu/menu.component.d.ts +35 -35
  251. package/lib/menu/menu.module.d.ts +11 -11
  252. package/lib/menu/menu2.component.d.ts +21 -21
  253. package/lib/number-box/number-box.component.d.ts +52 -52
  254. package/lib/number-box/number-box.module.d.ts +10 -10
  255. package/lib/page/content.component.d.ts +8 -8
  256. package/lib/page/footer.component.d.ts +5 -5
  257. package/lib/page/page.component.d.ts +16 -16
  258. package/lib/page/page.module.d.ts +11 -11
  259. package/lib/panel-box/panel-box.component.d.ts +19 -19
  260. package/lib/panel-box/panel-box.module.d.ts +8 -8
  261. package/lib/password-box/password-box.component.d.ts +12 -12
  262. package/lib/password-box/password-box.module.d.ts +10 -10
  263. package/lib/popover/custom-cdk-overlay.service.d.ts +19 -19
  264. package/lib/popover/overlay.service.d.ts +32 -32
  265. package/lib/popover/popover.component.d.ts +35 -35
  266. package/lib/popover/popover.module.d.ts +8 -8
  267. package/lib/popup/popup.component.d.ts +40 -40
  268. package/lib/popup/popup.module.d.ts +13 -13
  269. package/lib/popup/popup.service.d.ts +22 -22
  270. package/lib/progress-bar/progress-bar.component.d.ts +7 -7
  271. package/lib/progress-bar/progress-bar.module.d.ts +8 -8
  272. package/lib/property-editor/editors/check-editor/check-editor.d.ts +19 -19
  273. package/lib/property-editor/editors/check-editor/check.module.d.ts +11 -11
  274. package/lib/property-editor/editors/color-editor/color.editor.d.ts +13 -13
  275. package/lib/property-editor/editors/color-editor/color.module.d.ts +12 -12
  276. package/lib/property-editor/editors/column-editor/column.editor.d.ts +34 -34
  277. package/lib/property-editor/editors/column-editor/column.module.d.ts +20 -20
  278. package/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.d.ts +44 -44
  279. package/lib/property-editor/editors/conditional-color-editor/conditional-color.module.d.ts +19 -19
  280. package/lib/property-editor/editors/date-editor/date.editor.d.ts +28 -28
  281. package/lib/property-editor/editors/date-editor/date.module.d.ts +12 -12
  282. package/lib/property-editor/editors/number-editor/number.editor.d.ts +21 -20
  283. package/lib/property-editor/editors/number-editor/number.module.d.ts +12 -12
  284. package/lib/property-editor/editors/range-editor/range.editor.d.ts +29 -29
  285. package/lib/property-editor/editors/range-editor/range.module.d.ts +18 -18
  286. package/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.d.ts +29 -29
  287. package/lib/property-editor/editors/selectbox-editor/selectbox.editor.d.ts +28 -28
  288. package/lib/property-editor/editors/selectbox-editor/selectbox.module.d.ts +14 -14
  289. package/lib/property-editor/editors/selection-editor/selection-editor.d.ts +25 -25
  290. package/lib/property-editor/editors/selection-editor/selection.module.d.ts +11 -11
  291. package/lib/property-editor/editors/switch-editor/number.editor.d.ts +11 -11
  292. package/lib/property-editor/editors/switch-editor/number.module.d.ts +13 -13
  293. package/lib/property-editor/editors/text-editor/text.editor.d.ts +18 -18
  294. package/lib/property-editor/editors/text-editor/text.module.d.ts +12 -12
  295. package/lib/property-editor/editors/textarea-editor/textarea.editor.d.ts +17 -17
  296. package/lib/property-editor/editors/textarea-editor/textarea.module.d.ts +12 -12
  297. package/lib/property-editor/editors/time-editor/time.editor.d.ts +17 -17
  298. package/lib/property-editor/editors/time-editor/time.module.d.ts +12 -12
  299. package/lib/property-editor/property-editor-renderer.directive.d.ts +31 -31
  300. package/lib/property-editor/property-editor.class.d.ts +93 -93
  301. package/lib/property-editor/property-editor.module.d.ts +21 -21
  302. package/lib/query-builder/query-builder-group.component.d.ts +33 -33
  303. package/lib/query-builder/query-builder-popup/query-builder-popup.component.d.ts +35 -35
  304. package/lib/query-builder/query-builder-rule.component.d.ts +45 -45
  305. package/lib/query-builder/query-builder.class.d.ts +45 -45
  306. package/lib/query-builder/query-builder.component.d.ts +29 -29
  307. package/lib/query-builder/query-builder.module.d.ts +23 -23
  308. package/lib/query-builder/query-builder.service.d.ts +18 -18
  309. package/lib/search-bar/search-bar.component.d.ts +62 -62
  310. package/lib/search-bar/search-bar.module.d.ts +18 -18
  311. package/lib/searchbox/searchbox.component.d.ts +23 -22
  312. package/lib/searchbox/searchbox.module.d.ts +13 -13
  313. package/lib/selectbox/selectbox.component.d.ts +149 -118
  314. package/lib/selectbox/selectbox.module.d.ts +15 -15
  315. package/lib/selectbox/selectbox2.component.d.ts +103 -103
  316. package/lib/selection-list/selection-list.component.d.ts +32 -32
  317. package/lib/selection-list/selection-list.module.d.ts +10 -10
  318. package/lib/switch/switch.component.d.ts +20 -20
  319. package/lib/switch/switch.module.d.ts +9 -9
  320. package/lib/tab-page/tab-page-Renderer.component.d.ts +16 -16
  321. package/lib/tab-page/tab-page-host.component.d.ts +24 -24
  322. package/lib/tab-page/tab-page.module.d.ts +10 -10
  323. package/lib/tab-page/tab-page.service.d.ts +30 -30
  324. package/lib/tab-strip/tab-strip.component.d.ts +28 -28
  325. package/lib/tab-strip/tab-strip.module.d.ts +8 -8
  326. package/lib/tab-view/dynamic-tabs.directive.d.ts +16 -16
  327. package/lib/tab-view/tab-view.component.d.ts +26 -26
  328. package/lib/tab-view/tab-view.module.d.ts +10 -10
  329. package/lib/tab-view/tab.component.d.ts +12 -12
  330. package/lib/textarea/textarea.component.d.ts +12 -12
  331. package/lib/textarea/textarea.module.d.ts +8 -8
  332. package/lib/textbox/textbox.component.d.ts +16 -16
  333. package/lib/textbox/textbox.module.d.ts +11 -11
  334. package/lib/time-picker/time-picker.component.d.ts +53 -52
  335. package/lib/time-picker/time-picker.module.d.ts +11 -11
  336. package/lib/toast/toast-message/toast-message.component.d.ts +18 -18
  337. package/lib/toast/toast-wrapper/toast-wrapper.component.d.ts +8 -8
  338. package/lib/toast/toast.module.d.ts +9 -9
  339. package/lib/toast/toast.service.d.ts +18 -18
  340. package/lib/toolbar/group-button/toolbar-group-button.component.d.ts +12 -12
  341. package/lib/toolbar/menu/toolbar-menu.component.d.ts +24 -24
  342. package/lib/toolbar/search/toolbar-search.component.d.ts +16 -16
  343. package/lib/toolbar/title/toolbar-title.component.d.ts +9 -9
  344. package/lib/toolbar/toolbar-item.d.ts +3 -3
  345. package/lib/toolbar/toolbar.component.d.ts +8 -8
  346. package/lib/toolbar/toolbar.module.d.ts +14 -14
  347. package/lib/tooltip/tooltip.directive.d.ts +21 -21
  348. package/lib/tooltip/tooltip.module.d.ts +8 -8
  349. package/lib/tree-side-menu/tree-side-menu.component.d.ts +111 -111
  350. package/lib/tree-side-menu/tree-side-menu.module.d.ts +11 -11
  351. package/lib/tree-view/tree-view.component.d.ts +121 -121
  352. package/lib/tree-view/tree-view.module.d.ts +11 -11
  353. package/lib/upload-file/upload-file.component.d.ts +42 -42
  354. package/lib/upload-file/upload-file.events.d.ts +10 -10
  355. package/lib/upload-file/upload-file.module.d.ts +13 -13
  356. package/lib/validation/validation-form.component.d.ts +19 -19
  357. package/lib/validation/validation-rule.widget.d.ts +23 -23
  358. package/lib/validation/validation.class.d.ts +16 -16
  359. package/lib/validation/validation.component.d.ts +25 -25
  360. package/lib/validation/validation.module.d.ts +11 -11
  361. package/package.json +15 -20
  362. package/acorex-components.d.ts +0 -5
  363. package/esm2020/acorex-components.mjs +0 -5
  364. package/esm2020/lib/accordion/accordion.component.mjs +0 -44
  365. package/esm2020/lib/accordion/accordion.module.mjs +0 -20
  366. package/esm2020/lib/base/base-page.class.mjs +0 -94
  367. package/esm2020/lib/base/components.class.mjs +0 -17
  368. package/esm2020/lib/base/element.class.mjs +0 -294
  369. package/esm2020/lib/base/events.class.mjs +0 -11
  370. package/esm2020/lib/button/button.component.mjs +0 -71
  371. package/esm2020/lib/button/button.module.mjs +0 -21
  372. package/esm2020/lib/calendar/calendar-box/calendar-box.component.mjs +0 -413
  373. package/esm2020/lib/calendar/calendar-box/calendar-box.module.mjs +0 -22
  374. package/esm2020/lib/calendar/scheduler/scheduler-views.property.mjs +0 -54
  375. package/esm2020/lib/calendar/scheduler/scheduler.class.mjs +0 -18
  376. package/esm2020/lib/calendar/scheduler/scheduler.component.mjs +0 -213
  377. package/esm2020/lib/calendar/scheduler/scheduler.module.mjs +0 -68
  378. package/esm2020/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.mjs +0 -132
  379. package/esm2020/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.mjs +0 -37
  380. package/esm2020/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.mjs +0 -47
  381. package/esm2020/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.mjs +0 -95
  382. package/esm2020/lib/calendar/scheduler/views/month/scheduler-month-view.component.mjs +0 -204
  383. package/esm2020/lib/calendar/scheduler/views/scheduler-view.component.mjs +0 -99
  384. package/esm2020/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.mjs +0 -77
  385. package/esm2020/lib/checkbox/checkbox.component.mjs +0 -98
  386. package/esm2020/lib/checkbox/checkbox.module.mjs +0 -20
  387. package/esm2020/lib/color-picker/color-box/color-box.component.mjs +0 -422
  388. package/esm2020/lib/color-picker/color-picker.component.mjs +0 -82
  389. package/esm2020/lib/color-picker/color-picker.module.mjs +0 -24
  390. package/esm2020/lib/context-menu/context-menu.component.mjs +0 -65
  391. package/esm2020/lib/context-menu/context-menu.directive.mjs +0 -135
  392. package/esm2020/lib/context-menu/context-menu.module.mjs +0 -20
  393. package/esm2020/lib/data-filter/columns/filter-column-date.component.mjs +0 -138
  394. package/esm2020/lib/data-filter/columns/filter-column-number.component.mjs +0 -117
  395. package/esm2020/lib/data-filter/columns/filter-column-selection.component.mjs +0 -74
  396. package/esm2020/lib/data-filter/columns/filter-column-string.component.mjs +0 -117
  397. package/esm2020/lib/data-filter/filter-panel/filter-panel.component.mjs +0 -258
  398. package/esm2020/lib/data-filter/filter.class.mjs +0 -44
  399. package/esm2020/lib/data-filter/filter.module.mjs +0 -90
  400. package/esm2020/lib/data-filter/toolbar/filter-toolbar.component.mjs +0 -166
  401. package/esm2020/lib/data-list/core/data-list.component.mjs +0 -40
  402. package/esm2020/lib/data-list/list/list.component.mjs +0 -124
  403. package/esm2020/lib/data-list/list/list.module.mjs +0 -22
  404. package/esm2020/lib/data-list/list/toolbar-list-view.component.mjs +0 -85
  405. package/esm2020/lib/data-source/datasource.component.mjs +0 -47
  406. package/esm2020/lib/data-source/datasource.module.mjs +0 -18
  407. package/esm2020/lib/data-source/read-param.mjs +0 -5
  408. package/esm2020/lib/date-picker/date-picker.component.mjs +0 -702
  409. package/esm2020/lib/date-picker/date-picker.module.mjs +0 -25
  410. package/esm2020/lib/dialog/dialog.component.mjs +0 -24
  411. package/esm2020/lib/dialog/dialog.module.mjs +0 -21
  412. package/esm2020/lib/dialog/dialog.service.mjs +0 -150
  413. package/esm2020/lib/drawer/content.component.mjs +0 -18
  414. package/esm2020/lib/drawer/drawer-container.component.mjs +0 -36
  415. package/esm2020/lib/drawer/drawer.component.mjs +0 -142
  416. package/esm2020/lib/drawer/drawer.module.mjs +0 -23
  417. package/esm2020/lib/dropdown/dropdown.component.mjs +0 -176
  418. package/esm2020/lib/dropdown/dropdown.module.mjs +0 -26
  419. package/esm2020/lib/fieldset/fieldset.component.mjs +0 -59
  420. package/esm2020/lib/fieldset/fieldset.module.mjs +0 -19
  421. package/esm2020/lib/form-group/form-group.component.mjs +0 -34
  422. package/esm2020/lib/form-group/form-group.module.mjs +0 -21
  423. package/esm2020/lib/label/label.component.mjs +0 -19
  424. package/esm2020/lib/label/label.module.mjs +0 -21
  425. package/esm2020/lib/loading/loading-indicator.component.mjs +0 -17
  426. package/esm2020/lib/loading/loading-panel.component.mjs +0 -44
  427. package/esm2020/lib/loading/loading.module.mjs +0 -21
  428. package/esm2020/lib/loading/loading.service.mjs +0 -45
  429. package/esm2020/lib/menu/menu-item.component.mjs +0 -47
  430. package/esm2020/lib/menu/menu.component.mjs +0 -86
  431. package/esm2020/lib/menu/menu.module.mjs +0 -22
  432. package/esm2020/lib/menu/menu2.component.mjs +0 -96
  433. package/esm2020/lib/number-box/number-box.component.mjs +0 -622
  434. package/esm2020/lib/number-box/number-box.module.mjs +0 -21
  435. package/esm2020/lib/page/content.component.mjs +0 -32
  436. package/esm2020/lib/page/footer.component.mjs +0 -19
  437. package/esm2020/lib/page/page.component.mjs +0 -53
  438. package/esm2020/lib/page/page.module.mjs +0 -22
  439. package/esm2020/lib/panel-box/panel-box.component.mjs +0 -88
  440. package/esm2020/lib/panel-box/panel-box.module.mjs +0 -19
  441. package/esm2020/lib/password-box/password-box.component.mjs +0 -31
  442. package/esm2020/lib/password-box/password-box.module.mjs +0 -23
  443. package/esm2020/lib/popover/custom-cdk-overlay.service.mjs +0 -48
  444. package/esm2020/lib/popover/overlay.service.mjs +0 -91
  445. package/esm2020/lib/popover/popover.component.mjs +0 -133
  446. package/esm2020/lib/popover/popover.module.mjs +0 -19
  447. package/esm2020/lib/popup/popup.component.mjs +0 -147
  448. package/esm2020/lib/popup/popup.module.mjs +0 -25
  449. package/esm2020/lib/popup/popup.service.mjs +0 -93
  450. package/esm2020/lib/progress-bar/progress-bar.component.mjs +0 -19
  451. package/esm2020/lib/progress-bar/progress-bar.module.mjs +0 -19
  452. package/esm2020/lib/property-editor/editors/check-editor/check-editor.mjs +0 -61
  453. package/esm2020/lib/property-editor/editors/check-editor/check.module.mjs +0 -22
  454. package/esm2020/lib/property-editor/editors/color-editor/color.editor.mjs +0 -38
  455. package/esm2020/lib/property-editor/editors/color-editor/color.module.mjs +0 -24
  456. package/esm2020/lib/property-editor/editors/column-editor/column.editor.mjs +0 -115
  457. package/esm2020/lib/property-editor/editors/column-editor/column.module.mjs +0 -32
  458. package/esm2020/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.mjs +0 -211
  459. package/esm2020/lib/property-editor/editors/conditional-color-editor/conditional-color.module.mjs +0 -78
  460. package/esm2020/lib/property-editor/editors/date-editor/date.editor.mjs +0 -51
  461. package/esm2020/lib/property-editor/editors/date-editor/date.module.mjs +0 -24
  462. package/esm2020/lib/property-editor/editors/number-editor/number.editor.mjs +0 -63
  463. package/esm2020/lib/property-editor/editors/number-editor/number.module.mjs +0 -24
  464. package/esm2020/lib/property-editor/editors/range-editor/range.editor.mjs +0 -140
  465. package/esm2020/lib/property-editor/editors/range-editor/range.module.mjs +0 -61
  466. package/esm2020/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.mjs +0 -72
  467. package/esm2020/lib/property-editor/editors/selectbox-editor/selectbox.editor.mjs +0 -71
  468. package/esm2020/lib/property-editor/editors/selectbox-editor/selectbox.module.mjs +0 -25
  469. package/esm2020/lib/property-editor/editors/selection-editor/selection-editor.mjs +0 -69
  470. package/esm2020/lib/property-editor/editors/selection-editor/selection.module.mjs +0 -22
  471. package/esm2020/lib/property-editor/editors/switch-editor/number.editor.mjs +0 -29
  472. package/esm2020/lib/property-editor/editors/switch-editor/number.module.mjs +0 -25
  473. package/esm2020/lib/property-editor/editors/text-editor/text.editor.mjs +0 -32
  474. package/esm2020/lib/property-editor/editors/text-editor/text.module.mjs +0 -24
  475. package/esm2020/lib/property-editor/editors/textarea-editor/textarea.editor.mjs +0 -32
  476. package/esm2020/lib/property-editor/editors/textarea-editor/textarea.module.mjs +0 -24
  477. package/esm2020/lib/property-editor/editors/time-editor/time.editor.mjs +0 -43
  478. package/esm2020/lib/property-editor/editors/time-editor/time.module.mjs +0 -24
  479. package/esm2020/lib/property-editor/property-editor-renderer.directive.mjs +0 -157
  480. package/esm2020/lib/property-editor/property-editor.class.mjs +0 -102
  481. package/esm2020/lib/property-editor/property-editor.module.mjs +0 -196
  482. package/esm2020/lib/query-builder/query-builder-group.component.mjs +0 -124
  483. package/esm2020/lib/query-builder/query-builder-popup/query-builder-popup.component.mjs +0 -172
  484. package/esm2020/lib/query-builder/query-builder-rule.component.mjs +0 -399
  485. package/esm2020/lib/query-builder/query-builder.class.mjs +0 -20
  486. package/esm2020/lib/query-builder/query-builder.component.mjs +0 -87
  487. package/esm2020/lib/query-builder/query-builder.module.mjs +0 -62
  488. package/esm2020/lib/query-builder/query-builder.service.mjs +0 -197
  489. package/esm2020/lib/search-bar/search-bar.component.mjs +0 -286
  490. package/esm2020/lib/search-bar/search-bar.module.mjs +0 -63
  491. package/esm2020/lib/searchbox/searchbox.component.mjs +0 -81
  492. package/esm2020/lib/searchbox/searchbox.module.mjs +0 -24
  493. package/esm2020/lib/selectbox/selectbox.component.mjs +0 -961
  494. package/esm2020/lib/selectbox/selectbox.module.mjs +0 -44
  495. package/esm2020/lib/selectbox/selectbox2.component.mjs +0 -574
  496. package/esm2020/lib/selection-list/selection-list.component.mjs +0 -108
  497. package/esm2020/lib/selection-list/selection-list.module.mjs +0 -21
  498. package/esm2020/lib/switch/switch.component.mjs +0 -51
  499. package/esm2020/lib/switch/switch.module.mjs +0 -20
  500. package/esm2020/lib/tab-page/tab-page-Renderer.component.mjs +0 -71
  501. package/esm2020/lib/tab-page/tab-page-host.component.mjs +0 -114
  502. package/esm2020/lib/tab-page/tab-page.module.mjs +0 -21
  503. package/esm2020/lib/tab-page/tab-page.service.mjs +0 -160
  504. package/esm2020/lib/tab-strip/tab-strip.component.mjs +0 -36
  505. package/esm2020/lib/tab-strip/tab-strip.module.mjs +0 -19
  506. package/esm2020/lib/tab-view/dynamic-tabs.directive.mjs +0 -24
  507. package/esm2020/lib/tab-view/tab-view.component.mjs +0 -105
  508. package/esm2020/lib/tab-view/tab-view.module.mjs +0 -21
  509. package/esm2020/lib/tab-view/tab.component.mjs +0 -30
  510. package/esm2020/lib/textarea/textarea.component.mjs +0 -26
  511. package/esm2020/lib/textarea/textarea.module.mjs +0 -21
  512. package/esm2020/lib/textbox/textbox.component.mjs +0 -39
  513. package/esm2020/lib/textbox/textbox.module.mjs +0 -24
  514. package/esm2020/lib/time-picker/time-picker.component.mjs +0 -943
  515. package/esm2020/lib/time-picker/time-picker.module.mjs +0 -22
  516. package/esm2020/lib/toast/toast-message/toast-message.component.mjs +0 -74
  517. package/esm2020/lib/toast/toast-wrapper/toast-wrapper.component.mjs +0 -13
  518. package/esm2020/lib/toast/toast.module.mjs +0 -21
  519. package/esm2020/lib/toast/toast.service.mjs +0 -44
  520. package/esm2020/lib/toolbar/group-button/toolbar-group-button.component.mjs +0 -78
  521. package/esm2020/lib/toolbar/menu/toolbar-menu.component.mjs +0 -57
  522. package/esm2020/lib/toolbar/search/toolbar-search.component.mjs +0 -54
  523. package/esm2020/lib/toolbar/title/toolbar-title.component.mjs +0 -47
  524. package/esm2020/lib/toolbar/toolbar-item.mjs +0 -6
  525. package/esm2020/lib/toolbar/toolbar.component.mjs +0 -13
  526. package/esm2020/lib/toolbar/toolbar.module.mjs +0 -40
  527. package/esm2020/lib/tooltip/tooltip.directive.mjs +0 -100
  528. package/esm2020/lib/tooltip/tooltip.module.mjs +0 -19
  529. package/esm2020/lib/tree-side-menu/tree-side-menu.component.mjs +0 -646
  530. package/esm2020/lib/tree-side-menu/tree-side-menu.module.mjs +0 -35
  531. package/esm2020/lib/tree-view/tree-view.component.mjs +0 -775
  532. package/esm2020/lib/tree-view/tree-view.module.mjs +0 -22
  533. package/esm2020/lib/upload-file/upload-file.component.mjs +0 -208
  534. package/esm2020/lib/upload-file/upload-file.events.mjs +0 -2
  535. package/esm2020/lib/upload-file/upload-file.module.mjs +0 -24
  536. package/esm2020/lib/validation/validation-form.component.mjs +0 -65
  537. package/esm2020/lib/validation/validation-rule.widget.mjs +0 -111
  538. package/esm2020/lib/validation/validation.class.mjs +0 -2
  539. package/esm2020/lib/validation/validation.component.mjs +0 -89
  540. package/esm2020/lib/validation/validation.module.mjs +0 -34
  541. package/esm2020/public-api.mjs +0 -158
  542. package/fesm2015/acorex-components.mjs +0 -16013
  543. package/fesm2015/acorex-components.mjs.map +0 -1
  544. package/fesm2020/acorex-components.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-components.mjs","sources":["../../../../libs/components/src/lib/validation/validation-rule.widget.ts","../../../../libs/components/src/lib/validation/validation.component.ts","../../../../libs/components/src/lib/base/events.class.ts","../../../../libs/components/src/lib/base/element.class.ts","../../../../libs/components/src/lib/popover/custom-cdk-overlay.service.ts","../../../../libs/components/src/lib/popover/overlay.service.ts","../../../../libs/components/src/lib/loading/loading-indicator.component.ts","../../../../libs/components/src/lib/loading/loading-indicator.component.html","../../../../libs/components/src/lib/loading/loading.service.ts","../../../../libs/components/src/lib/page/page.component.ts","../../../../libs/components/src/lib/base/base-page.class.ts","../../../../libs/components/src/lib/button/button.component.ts","../../../../libs/components/src/lib/button/button.component.html","../../../../libs/components/src/lib/button/button.module.ts","../../../../libs/components/src/lib/calendar/calendar-box/calendar-box.component.ts","../../../../libs/components/src/lib/calendar/calendar-box/calendar-box.component.html","../../../../libs/components/src/lib/popover/popover.component.ts","../../../../libs/components/src/lib/popover/popover.component.html","../../../../libs/components/src/lib/popover/popover.module.ts","../../../../libs/components/src/lib/calendar/calendar-box/calendar-box.module.ts","../../../../libs/components/src/lib/calendar/scheduler/scheduler-views.property.ts","../../../../libs/components/src/lib/calendar/scheduler/scheduler.class.ts","../../../../libs/components/src/lib/toolbar/toolbar-item.ts","../../../../libs/components/src/lib/tooltip/tooltip.directive.ts","../../../../libs/components/src/lib/menu/menu.component.ts","../../../../libs/components/src/lib/menu/menu.component.html","../../../../libs/components/src/lib/toolbar/menu/toolbar-menu.component.ts","../../../../libs/components/src/lib/toolbar/menu/toolbar-menu.component.html","../../../../libs/components/src/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.ts","../../../../libs/components/src/lib/calendar/scheduler/views/scheduler-view.component.ts","../../../../libs/components/src/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.ts","../../../../libs/components/src/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.html","../../../../libs/components/src/lib/calendar/scheduler/views/month/scheduler-month-view.component.ts","../../../../libs/components/src/lib/calendar/scheduler/views/month/scheduler-month-view.component.html","../../../../libs/components/src/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.ts","../../../../libs/components/src/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.ts","../../../../libs/components/src/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.html","../../../../libs/components/src/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.ts","../../../../libs/components/src/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.html","../../../../libs/components/src/lib/toolbar/search/toolbar-search.component.ts","../../../../libs/components/src/lib/toolbar/search/toolbar-search.component.html","../../../../libs/components/src/lib/data-source/read-param.ts","../../../../libs/components/src/lib/data-source/datasource.component.ts","../../../../libs/components/src/lib/calendar/scheduler/scheduler.component.ts","../../../../libs/components/src/lib/calendar/scheduler/scheduler.component.html","../../../../libs/components/src/lib/toolbar/toolbar.component.ts","../../../../libs/components/src/lib/toolbar/toolbar.component.html","../../../../libs/components/src/lib/toolbar/title/toolbar-title.component.ts","../../../../libs/components/src/lib/toolbar/group-button/toolbar-group-button.component.ts","../../../../libs/components/src/lib/menu/menu-item.component.ts","../../../../libs/components/src/lib/menu/menu2.component.ts","../../../../libs/components/src/lib/tooltip/tooltip.module.ts","../../../../libs/components/src/lib/menu/menu.module.ts","../../../../libs/components/src/lib/toolbar/toolbar.module.ts","../../../../libs/components/src/lib/calendar/scheduler/scheduler.module.ts","../../../../libs/components/src/lib/checkbox/checkbox.component.ts","../../../../libs/components/src/lib/checkbox/checkbox.component.html","../../../../libs/components/src/lib/checkbox/checkbox.module.ts","../../../../libs/components/src/lib/context-menu/context-menu.component.ts","../../../../libs/components/src/lib/context-menu/context-menu.component.html","../../../../libs/components/src/lib/context-menu/context-menu.directive.ts","../../../../libs/components/src/lib/context-menu/context-menu.module.ts","../../../../libs/components/src/lib/data-filter/filter.class.ts","../../../../libs/components/src/lib/selection-list/selection-list.component.ts","../../../../libs/components/src/lib/selection-list/selection-list.component.html","../../../../libs/components/src/lib/dropdown/dropdown.component.ts","../../../../libs/components/src/lib/dropdown/dropdown.component.html","../../../../libs/components/src/lib/textbox/textbox.component.ts","../../../../libs/components/src/lib/textbox/textbox.component.html","../../../../libs/components/src/lib/date-picker/date-picker.component.ts","../../../../libs/components/src/lib/date-picker/date-picker.component.html","../../../../libs/components/src/lib/data-filter/columns/filter-column-date.component.ts","../../../../libs/components/src/lib/data-filter/columns/filter-column-number.component.ts","../../../../libs/components/src/lib/data-filter/columns/filter-column-selection.component.ts","../../../../libs/components/src/lib/data-filter/columns/filter-column-string.component.ts","../../../../libs/components/src/lib/toast/toast-wrapper/toast-wrapper.component.ts","../../../../libs/components/src/lib/toast/toast-message/toast-message.component.ts","../../../../libs/components/src/lib/toast/toast-message/toast-message.component.html","../../../../libs/components/src/lib/toast/toast.service.ts","../../../../libs/components/src/lib/panel-box/panel-box.component.ts","../../../../libs/components/src/lib/panel-box/panel-box.component.html","../../../../libs/components/src/lib/data-filter/filter-panel/filter-panel.component.ts","../../../../libs/components/src/lib/data-filter/filter-panel/filter-panel.component.html","../../../../libs/components/src/lib/data-filter/toolbar/filter-toolbar.component.ts","../../../../libs/components/src/lib/data-filter/toolbar/filter-toolbar.component.html","../../../../libs/components/src/lib/panel-box/panel-box.module.ts","../../../../libs/components/src/lib/form-group/form-group.component.ts","../../../../libs/components/src/lib/form-group/form-group.component.html","../../../../libs/components/src/lib/form-group/form-group.module.ts","../../../../libs/components/src/lib/textbox/textbox.module.ts","../../../../libs/components/src/lib/dropdown/dropdown.module.ts","../../../../libs/components/src/lib/date-picker/date-picker.module.ts","../../../../libs/components/src/lib/toast/toast.module.ts","../../../../libs/components/src/lib/selection-list/selection-list.module.ts","../../../../libs/components/src/lib/validation/validation-form.component.ts","../../../../libs/components/src/lib/validation/validation.module.ts","../../../../libs/components/src/lib/data-filter/filter.module.ts","../../../../libs/components/src/lib/data-list/core/data-list.component.ts","../../../../libs/components/src/lib/data-list/list/toolbar-list-view.component.ts","../../../../libs/components/src/lib/data-list/list/list.component.ts","../../../../libs/components/src/lib/data-list/list/list.component.html","../../../../libs/components/src/lib/data-source/datasource.module.ts","../../../../libs/components/src/lib/data-list/list/list.module.ts","../../../../libs/components/src/lib/dialog/dialog.component.ts","../../../../libs/components/src/lib/dialog/dialog.component.html","../../../../libs/components/src/lib/dialog/dialog.module.ts","../../../../libs/components/src/lib/popup/popup.component.ts","../../../../libs/components/src/lib/popup/popup.component.html","../../../../libs/components/src/lib/popup/popup.service.ts","../../../../libs/components/src/lib/dialog/dialog.service.ts","../../../../libs/components/src/lib/base/components.class.ts","../../../../libs/components/src/lib/drawer/drawer.component.ts","../../../../libs/components/src/lib/drawer/content.component.ts","../../../../libs/components/src/lib/drawer/drawer-container.component.ts","../../../../libs/components/src/lib/drawer/drawer.module.ts","../../../../libs/components/src/lib/fieldset/fieldset.component.ts","../../../../libs/components/src/lib/fieldset/fieldset.component.html","../../../../libs/components/src/lib/fieldset/fieldset.module.ts","../../../../libs/components/src/lib/label/label.component.ts","../../../../libs/components/src/lib/label/label.component.html","../../../../libs/components/src/lib/label/label.module.ts","../../../../libs/components/src/lib/loading/loading-panel.component.ts","../../../../libs/components/src/lib/loading/loading.module.ts","../../../../libs/components/src/lib/number-box/number-box.component.ts","../../../../libs/components/src/lib/number-box/number-box.component.html","../../../../libs/components/src/lib/number-box/number-box.module.ts","../../../../libs/components/src/lib/page/content.component.ts","../../../../libs/components/src/lib/page/footer.component.ts","../../../../libs/components/src/lib/page/page.module.ts","../../../../libs/components/src/lib/password-box/password-box.component.ts","../../../../libs/components/src/lib/password-box/password-box.component.html","../../../../libs/components/src/lib/password-box/password-box.module.ts","../../../../libs/components/src/lib/popup/popup.module.ts","../../../../libs/components/src/lib/progress-bar/progress-bar.component.ts","../../../../libs/components/src/lib/progress-bar/progress-bar.component.html","../../../../libs/components/src/lib/progress-bar/progress-bar.module.ts","../../../../libs/components/src/lib/query-builder/query-builder.class.ts","../../../../libs/components/src/lib/searchbox/searchbox.component.ts","../../../../libs/components/src/lib/searchbox/searchbox.component.html","../../../../libs/components/src/lib/selectbox/selectbox.component.ts","../../../../libs/components/src/lib/selectbox/selectbox.component.html","../../../../libs/components/src/lib/query-builder/query-builder-rule.component.ts","../../../../libs/components/src/lib/query-builder/query-builder-rule.component.html","../../../../libs/components/src/lib/query-builder/query-builder-popup/query-builder-popup.component.ts","../../../../libs/components/src/lib/query-builder/query-builder-popup/query-builder-popup.component.html","../../../../libs/components/src/lib/query-builder/query-builder.service.ts","../../../../libs/components/src/lib/query-builder/query-builder-group.component.ts","../../../../libs/components/src/lib/query-builder/query-builder-group.component.html","../../../../libs/components/src/lib/query-builder/query-builder.component.ts","../../../../libs/components/src/lib/query-builder/query-builder.component.html","../../../../libs/components/src/lib/searchbox/searchbox.module.ts","../../../../libs/components/src/lib/selectbox/selectbox2.component.ts","../../../../libs/components/src/lib/selectbox/selectbox2.component.html","../../../../libs/components/src/lib/selectbox/selectbox.module.ts","../../../../libs/components/src/lib/query-builder/query-builder.module.ts","../../../../libs/components/src/lib/property-editor/property-editor-renderer.directive.ts","../../../../libs/components/src/lib/search-bar/search-bar.component.ts","../../../../libs/components/src/lib/search-bar/search-bar.component.html","../../../../libs/components/src/lib/property-editor/property-editor.class.ts","../../../../libs/components/src/lib/property-editor/editors/check-editor/check-editor.ts","../../../../libs/components/src/lib/property-editor/editors/check-editor/check.module.ts","../../../../libs/components/src/lib/color-picker/color-box/color-box.component.ts","../../../../libs/components/src/lib/color-picker/color-box/color-box.component.html","../../../../libs/components/src/lib/color-picker/color-picker.component.ts","../../../../libs/components/src/lib/color-picker/color-picker.component.html","../../../../libs/components/src/lib/property-editor/editors/color-editor/color.editor.ts","../../../../libs/components/src/lib/color-picker/color-picker.module.ts","../../../../libs/components/src/lib/property-editor/editors/color-editor/color.module.ts","../../../../libs/components/src/lib/property-editor/editors/column-editor/column.editor.ts","../../../../libs/components/src/lib/property-editor/editors/column-editor/column.editor.html","../../../../libs/components/src/lib/property-editor/editors/column-editor/column.module.ts","../../../../libs/components/src/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.ts","../../../../libs/components/src/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.html","../../../../libs/components/src/lib/property-editor/editors/conditional-color-editor/conditional-color.module.ts","../../../../libs/components/src/lib/property-editor/editors/date-editor/date.editor.ts","../../../../libs/components/src/lib/property-editor/editors/date-editor/date.module.ts","../../../../libs/components/src/lib/property-editor/editors/number-editor/number.editor.ts","../../../../libs/components/src/lib/property-editor/editors/number-editor/number.module.ts","../../../../libs/components/src/lib/property-editor/editors/range-editor/range.editor.ts","../../../../libs/components/src/lib/property-editor/editors/range-editor/range.editor.html","../../../../libs/components/src/lib/property-editor/editors/range-editor/range.module.ts","../../../../libs/components/src/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.ts","../../../../libs/components/src/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.html","../../../../libs/components/src/lib/property-editor/editors/selectbox-editor/selectbox.editor.ts","../../../../libs/components/src/lib/property-editor/editors/selectbox-editor/selectbox.editor.html","../../../../libs/components/src/lib/property-editor/editors/selectbox-editor/selectbox.module.ts","../../../../libs/components/src/lib/property-editor/editors/selection-editor/selection-editor.ts","../../../../libs/components/src/lib/property-editor/editors/selection-editor/selection.module.ts","../../../../libs/components/src/lib/switch/switch.component.ts","../../../../libs/components/src/lib/switch/switch.component.html","../../../../libs/components/src/lib/property-editor/editors/switch-editor/number.editor.ts","../../../../libs/components/src/lib/switch/switch.module.ts","../../../../libs/components/src/lib/property-editor/editors/switch-editor/number.module.ts","../../../../libs/components/src/lib/property-editor/editors/text-editor/text.editor.ts","../../../../libs/components/src/lib/property-editor/editors/text-editor/text.editor.html","../../../../libs/components/src/lib/property-editor/editors/text-editor/text.module.ts","../../../../libs/components/src/lib/textarea/textarea.component.ts","../../../../libs/components/src/lib/textarea/textarea.component.html","../../../../libs/components/src/lib/property-editor/editors/textarea-editor/textarea.editor.ts","../../../../libs/components/src/lib/property-editor/editors/textarea-editor/textarea.editor.html","../../../../libs/components/src/lib/textarea/textarea.module.ts","../../../../libs/components/src/lib/property-editor/editors/textarea-editor/textarea.module.ts","../../../../libs/components/src/lib/time-picker/time-picker.component.ts","../../../../libs/components/src/lib/time-picker/time-picker.component.html","../../../../libs/components/src/lib/property-editor/editors/time-editor/time.editor.ts","../../../../libs/components/src/lib/time-picker/time-picker.module.ts","../../../../libs/components/src/lib/property-editor/editors/time-editor/time.module.ts","../../../../libs/components/src/lib/property-editor/property-editor.module.ts","../../../../libs/components/src/lib/search-bar/search-bar.module.ts","../../../../libs/components/src/lib/tab-page/tab-page.service.ts","../../../../libs/components/src/lib/tab-page/tab-page-host.component.ts","../../../../libs/components/src/lib/tab-page/tab-page-Renderer.component.ts","../../../../libs/components/src/lib/tab-page/tab-page.module.ts","../../../../libs/components/src/lib/tab-strip/tab-strip.component.ts","../../../../libs/components/src/lib/tab-strip/tab-strip.component.html","../../../../libs/components/src/lib/tab-strip/tab-strip.module.ts","../../../../libs/components/src/lib/tab-view/dynamic-tabs.directive.ts","../../../../libs/components/src/lib/tab-view/tab.component.ts","../../../../libs/components/src/lib/tab-view/tab.component.html","../../../../libs/components/src/lib/tab-view/tab-view.component.ts","../../../../libs/components/src/lib/tab-view/tab-view.component.html","../../../../libs/components/src/lib/tab-view/tab-view.module.ts","../../../../libs/components/src/lib/tree-side-menu/tree-side-menu.component.ts","../../../../libs/components/src/lib/tree-side-menu/tree-side-menu.component.html","../../../../libs/components/src/lib/tree-side-menu/tree-side-menu.module.ts","../../../../libs/components/src/lib/tree-view/tree-view.component.ts","../../../../libs/components/src/lib/tree-view/tree-view.component.html","../../../../libs/components/src/lib/tree-view/tree-view.module.ts","../../../../libs/components/src/lib/upload-file/upload-file.component.ts","../../../../libs/components/src/lib/upload-file/upload-file.component.html","../../../../libs/components/src/lib/upload-file/upload-file.module.ts","../../../../libs/components/src/lib/accordion/accordion.component.ts","../../../../libs/components/src/lib/accordion/accordion.module.ts","../../../../libs/components/src/index.ts","../../../../libs/components/src/acorex-components.ts"],"sourcesContent":["import { Component, ElementRef, Inject, inject, Input, Optional } from '@angular/core';\nimport { AXValidationRuleResult, AXValidationRule, AXValidationRuleTypes } from './validation.class';\nimport { AXTranslator } from '@acorex/core';\n\n\n// @dynamic\nexport class AXValidationRules {\n private static registredRules: { name: string, rule: AXValidationRule }[] = [];\n\n public static addRule(name: string, rule: AXValidationRule) {\n const exists = AXValidationRules.get(name);\n if (exists) {\n exists.rule = rule;\n }\n else {\n AXValidationRules.registredRules.push({\n name,\n rule\n });\n }\n }\n\n public static get(name: string) {\n return this.registredRules.find(c => c.name === name);\n }\n}\n\n\n@Component({\n selector: 'ax-validation-rule',\n template: ''\n})\nexport class AXValidationRuleComponent implements AXValidationRule {\n @Input()\n type: AXValidationRuleTypes = 'required';\n @Input()\n message: string;\n @Input()\n value: any;\n\n @Input()\n enabled: boolean = true;\n\n\n constructor(\n @Inject(ElementRef)\n @Optional()\n private ref?: ElementRef) {\n if (ref)\n ref.nativeElement[\"__axContext__\"] = this;\n }\n\n validate(value: any): Promise<AXValidationRuleResult> {\n if (this.enabled === false) {\n return Promise.resolve({ result: true });\n }\n const regRule = AXValidationRules.get(this.type);\n if (regRule) {\n return this.internalValidate(regRule.rule.type, value, this.message || regRule.rule.message, regRule.rule.value);\n }\n else {\n return this.internalValidate(this.type, value, this.message, this.value);\n }\n }\n\n\n private internalValidate(type: string, value?: any, message?: string, ruleValue?: any): Promise<AXValidationRuleResult> {\n return new Promise<AXValidationRuleResult>(resolve => {\n switch (type) {\n case 'required':\n resolve({\n message: message || AXTranslator.get('validation.messages.required'),\n result: value != null && value != '' && (!Array.isArray(value) || (Array.isArray(value) && value.length > 0))\n });\n break;\n case 'regex':\n const ex = new RegExp(ruleValue);\n resolve({\n message: message || AXTranslator.get('validation.messages.regex'),\n result: ex.test(value)\n });\n break;\n case 'custom':\n case 'callback':\n if (typeof ruleValue === 'function') {\n const res: any = {};\n res.message = message;\n const val = ruleValue({ value, message });\n if (val instanceof Promise) {\n val.then(c => {\n res.result = c;\n }).catch(c => {\n res.result = false;\n }).finally(() => {\n resolve(res);\n });\n }\n else {\n res.result = val;\n resolve(res);\n }\n }\n else {\n resolve({ result: true });\n }\n break;\n default:\n resolve({ result: true });\n }\n });\n }\n}\n","import { Component, ContentChildren, QueryList, Input, Output, EventEmitter, Injectable, ElementRef, Optional, Inject } from '@angular/core';\nimport { AXValidatableComponent } from '../base/element.class';\nimport { AXValidationRuleComponent } from './validation-rule.widget';\nimport { AXValidationRule, AXValidationRuleResult } from './validation.class';\n\n\n@Injectable()\nexport abstract class AXValidation {\n\n abstract rules: AXValidationRule[];\n validateOn: 'blur' | 'change' | 'submit' = 'submit';\n showMessage: boolean;\n\n validate(value: any): Promise<AXValidationRuleResult> {\n if (!this.rules || this.rules.length === 0) {\n return Promise.resolve({ result: true });\n }\n return new Promise<AXValidationRuleResult>(resolve => {\n Promise.all(\n this.rules.map(c => {\n if (c instanceof AXValidationRuleComponent) {\n return c.validate(value);\n }\n else {\n const v = new AXValidationRuleComponent();\n Object.assign(v, c);\n return v.validate(value);\n }\n })\n ).then(d => {\n const error = d.find(c => c.result === false);\n if (error) {\n resolve(error);\n } else {\n resolve({ result: true });\n }\n });\n });\n }\n\n}\n\n\n@Component({\n selector: 'ax-validation',\n template: '<ng-content></ng-content>',\n providers: [{ provide: AXValidation, useExisting: AXValidationComponent }]\n})\nexport class AXValidationComponent extends AXValidation {\n\n _getComponenets(): AXValidationRule[] {\n return Array.from(this.ref?.nativeElement.querySelectorAll('ax-validation-rule')).map(c => c[\"__axContext__\"] as AXValidationRule);\n }\n\n constructor(\n @Inject(ElementRef)\n @Optional()\n private ref?: ElementRef\n ) {\n super();\n }\n\n\n @Output()\n rulesChange: EventEmitter<AXValidationRule[]> = new EventEmitter<AXValidationRule[]>();\n\n @Output()\n showMessage: boolean = true;\n\n private _rules: AXValidationRule[] = [];\n\n @Input()\n public get rules(): AXValidationRule[] {\n return this._rules;\n }\n public set rules(v: AXValidationRule[]) {\n this._rules = v;\n if (this.rulesChange) {\n this.rulesChange.emit(v);\n }\n }\n\n @Input()\n validateOn: 'blur' | 'change' | 'submit' = null;\n\n\n ngAfterContentInit() {\n if (this.rules && this.rules.length === 0) {\n this.rules.push(...this._getComponenets());\n }\n }\n}\n","export class AXBaseEvent {\n component: any;\n htmlElement?: HTMLElement;\n}\n\nexport class AXHtmlEvent<E extends Event> extends AXBaseEvent {\n\n htmlEvent?: E;\n}\n\nexport class AXValueEvent<T> extends AXBaseEvent {\n value?: T;\n oldValue?: T;\n}\n\nexport class AXDataEvent<T> extends AXBaseEvent {\n data?: T;\n}\n\nexport class AXEvent<T, E extends Event>\n{\n\n}\nexport interface AXEvent<T, E extends Event> extends AXDataEvent<T>, AXHtmlEvent<E> {\n\n}\n\n\n\n\n\n\n","import { Input, Output, EventEmitter, ChangeDetectorRef, ViewChild, ElementRef, ContentChild, Directive } from '@angular/core';\nimport { AXValidationComponent, AXValidation } from '../validation/validation.component';\nimport { AXValidationRuleResult } from '../validation/validation.class';\nimport { AXHtmlUtil } from '@acorex/core';\nimport { AXEvent, AXHtmlEvent, AXValueEvent } from './events.class';\n\nexport type AXElementSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\n@Directive()\nexport abstract class AXBaseComponent {\n @Input() cssClass: string;\n uid: string = AXHtmlUtil.getUID();\n constructor() {\n }\n}\n\n\nexport class AXBaseInputChangeEvent extends AXValueEvent<any> {\n isUserChange?: boolean;\n}\n\nexport interface AXBaseSizableComponent {\n size: AXElementSize;\n}\n\nexport interface AXBaseInteractiveComponent {\n disabled: boolean;\n tabIndex: number;\n}\n\nexport interface AXBaseInputComponent extends AXBaseInteractiveComponent {\n readonly: boolean;\n focus(): void;\n}\n\n\nexport interface AXBaseValueComponent<T> extends AXBaseInputComponent {\n onValueChanged?: EventEmitter<AXValueEvent<T>>;\n valueChange?: EventEmitter<T>;\n value: T;\n}\n\nexport interface AXBaseClickableComponent extends AXBaseInteractiveComponent {\n click: EventEmitter<AXHtmlEvent<MouseEvent>>;\n}\n\n@Directive()\nexport abstract class AXValidatableComponent extends AXBaseComponent {\n\n private __valueField: string = 'value';\n private __nativeElement: HTMLElement;\n private __validation: AXValidation;\n\n\n @Input()\n tabIndex: number = 0;\n\n protected initValidation(\n elementRef: ElementRef,\n valueField: string,\n validation: AXValidation\n ) {\n this.__nativeElement = elementRef.nativeElement;\n this.__valueField = valueField;\n this.__validation = validation;\n const value = this[this.__valueField]\n if ((!Array.isArray(value) && value) || (Array.isArray(value) && value.length > 0))\n this.validate();\n }\n\n get validation() {\n return this.__validation;\n }\n\n validate(): Promise<AXValidationRuleResult> {\n if (this.__validation !== undefined && (this.__validation.rules || []).length > 0) {\n const result = this.__validation.validate(this[this.__valueField]);\n result.then(c => {\n if (c.result) {\n this.clearValidationStyle(this.__nativeElement);\n }\n else {\n this.applyValidationStyle(this.__nativeElement, c);\n }\n });\n return result;\n }\n else {\n return Promise.resolve({ result: true });\n }\n }\n\n\n protected clearValidationStyle(element: HTMLElement, clear: boolean = false) {\n if (this.__validation !== undefined && (this.__validation.rules || []).length > 0) {\n const formGroup = element.closest('.form-group');\n const formItem = formGroup?.querySelector('.form-item') || element.closest('.form-item') || element.querySelector('.form-item');;\n const label = formGroup?.querySelector('.form-group-label');\n const parent = formItem?.parentElement || element.parentElement;\n\n formItem?.classList.remove('success-state');\n formItem?.classList.remove('error-state');\n //formItem?.classList.remove('required-state');\n if (!clear) {\n formItem?.classList.add('success-state');\n }\n // label?.classList.remove('error-text');\n if (parent.querySelector('span.error-text')) {\n parent.removeChild(parent.querySelector('span.error-text'));\n }\n }\n }\n\n protected applyValidationStyle(element: HTMLElement, v: AXValidationRuleResult): void {\n if (this.__validation !== undefined && (this.__validation.rules || []).length > 0) {\n const formGroup = element.closest('.form-group');\n const formItem = formGroup?.querySelector('.form-item') || element.closest('.form-item') || element.querySelector('.form-item');\n const label = formGroup?.querySelector('.form-group-label');\n const parent = formItem?.parentElement || element.parentElement;\n formItem?.classList.add('error-state');\n formItem?.classList.remove('success-state');\n if (parent.querySelector('span.error-text')) {\n parent.removeChild(parent.querySelector('span.error-text'));\n }\n if (this.__validation.showMessage) {\n const span = document.createElement('span');\n span.innerText = v.message;\n span.classList.add('ax', 'error-text');\n parent.appendChild(span);\n }\n // label?.classList.add('error-text');\n }\n }\n}\n\n\n\n\n@Directive()\nexport abstract class AXBaseTextComponent extends AXValidatableComponent implements AXBaseSizableComponent, AXBaseValueComponent<string> {\n\n ngAfterViewInit() {\n if (this.input) {\n this.input.nativeElement.onkeyup = (e) => {\n this.userChange = true;\n this.value = (e.target as any).value;\n this.onkey.emit(e);\n };\n this.input.nativeElement.onkeydown = (e) => {\n this.userChange = true;\n\n this.value = (e.target as any).value;\n this.onkey.emit(e);\n };\n this.input.nativeElement.onkeypress = (e) => {\n this.userChange = true;\n\n this.value = (e.target as any).value;\n this.onkey.emit(e);\n };\n }\n }\n\n\n ngAfterContentInit(): void {\n this.initValidation(this.ref, 'value', this.validation);\n }\n\n\n @Input()\n tabIndex: number = 0;\n\n @ViewChild('input', { static: true })\n @ContentChild('input', { static: true })\n input: ElementRef<HTMLInputElement>;\n\n @ContentChild(AXValidation, { static: true })\n private _contentValidation: AXValidation;\n\n private _validation: AXValidation;\n\n @Input()\n public get validation(): AXValidation {\n return this._validation ? this._validation : this._contentValidation;\n }\n\n public set validation(v: AXValidation) {\n this._validation = v;\n this.initValidation(this.ref, 'value', v);\n }\n\n\n @Input()\n disabled: boolean = false;\n\n @Input()\n readonly: boolean = false;\n\n @Input()\n textAlign: 'right' | 'left' | null = null;\n\n @Input()\n size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'md';\n\n @Input()\n placeholder: string;\n\n\n @Input()\n autocomplete: \"on\" | \"off\";\n\n @Input()\n name: string;\n\n userChange: boolean = false;\n\n constructor(protected cdr: ChangeDetectorRef, protected ref: ElementRef) {\n super();\n }\n\n @Output()\n public onkey: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\n\n @Output()\n public onBlur: EventEmitter<AXHtmlEvent<Event>> = new EventEmitter<AXHtmlEvent<Event>>();\n\n @Output()\n public onFocus: EventEmitter<AXHtmlEvent<Event>> = new EventEmitter<AXHtmlEvent<Event>>();\n\n @Output()\n public onValueChanged: EventEmitter<AXBaseInputChangeEvent> = new EventEmitter<AXBaseInputChangeEvent>();\n\n @Output()\n valueChange: EventEmitter<any> = new EventEmitter<any>();\n\n\n @Input()\n icon: string = '';\n\n @Input()\n allowClear: boolean = false;\n\n private _value: string;\n @Input()\n public get value(): string {\n return this._value;\n }\n public set value(v: string) {\n if (v !== this._value) {\n const old = this._value;\n this._value = v;\n\n this.valueChange.emit(v);\n this.onValueChanged.emit({\n component: this,\n value: v,\n oldValue: old,\n isUserChange: this.userChange\n });\n this.userChange = false;\n this.clearValidationStyle(this.input.nativeElement, v ? false : true);\n this.cdr.detectChanges();\n }\n }\n\n focus() {\n this.input.nativeElement.focus();\n }\n\n clear() {\n this.userChange = true;\n\n this.value = null;\n this.input.nativeElement.value = null;\n }\n\n isFocused(): boolean {\n return this.input.nativeElement === document.activeElement;\n }\n\n setTextAlign() {\n if (this.textAlign === 'left') {\n return 'text-left';\n }\n if (this.textAlign === 'right') {\n return 'text-right';\n }\n }\n\n handleInputBlur(e: Event) {\n this.onBlur.emit({\n component: this,\n htmlElement: this.ref.nativeElement,\n htmlEvent: e\n });\n }\n\n handleInputFocus(e: Event) {\n this.onFocus.emit({\n component: this,\n htmlElement: this.ref.nativeElement,\n htmlEvent: e\n });\n }\n}\n\n@Directive()\nexport abstract class AXBaseButtonComponent extends AXBaseComponent implements AXBaseClickableComponent, AXBaseSizableComponent {\n\n @Input()\n disabled: boolean;\n\n @Output()\n click: EventEmitter<AXHtmlEvent<MouseEvent>> = new EventEmitter<AXHtmlEvent<MouseEvent>>();\n\n @Input()\n size: AXElementSize = \"md\";\n\n @Input()\n tabIndex: number = 0;\n\n}\n\n@Directive()\nexport abstract class AXBaseDropdownComponent extends AXBaseComponent implements AXBaseInteractiveComponent, AXBaseSizableComponent {\n\n @Input()\n disabled: boolean;\n\n @Input()\n size: AXElementSize;\n\n @Input()\n fitParent: boolean = true;\n\n @Input()\n tabIndex: number = 0;\n\n @Input()\n showDropDownButton: boolean = true;\n\n abstract close();\n abstract open();\n}\n","import {\n Overlay,\n OverlayKeyboardDispatcher,\n OverlayPositionBuilder,\n ScrollStrategyOptions,\n OverlayContainer,\n OverlayRef,\n OverlayConfig,\n OverlayOutsideClickDispatcher\n} from '@angular/cdk/overlay';\nimport {\n ComponentFactoryResolver,\n Inject,\n Injector,\n NgZone,\n Renderer2,\n RendererFactory2,\n Injectable\n} from '@angular/core';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { DOCUMENT, Location } from '@angular/common';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DynamicOverlayContainer extends OverlayContainer {\n public setContainerElement(containerElement: HTMLElement): void {\n this._containerElement = containerElement;\n }\n}\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DynamicOverlay extends Overlay {\n private readonly _dynamicOverlayContainer: DynamicOverlayContainer;\n private renderer: Renderer2;\n\n constructor(\n scrollStrategies: ScrollStrategyOptions,\n _overlayContainer: DynamicOverlayContainer,\n _componentFactoryResolver: ComponentFactoryResolver,\n _positionBuilder: OverlayPositionBuilder,\n _keyboardDispatcher: OverlayKeyboardDispatcher,\n _injector: Injector,\n _ngZone: NgZone,\n @Inject(DOCUMENT) _document: any,\n _directionality: Directionality,\n rendererFactory: RendererFactory2,\n _location: Location,\n _outsideClickDispatcher: OverlayOutsideClickDispatcher\n ) {\n super(\n scrollStrategies,\n _overlayContainer,\n _componentFactoryResolver,\n _positionBuilder,\n _keyboardDispatcher,\n _injector,\n _ngZone,\n _document,\n _directionality,\n _location,\n _outsideClickDispatcher\n );\n this.renderer = rendererFactory.createRenderer(null, null);\n\n this._dynamicOverlayContainer = _overlayContainer;\n }\n\n private setContainerElement(containerElement: HTMLElement): void {\n this.renderer.setStyle(containerElement, 'transform', 'translateZ(0)');\n this._dynamicOverlayContainer.setContainerElement(containerElement);\n }\n\n public createOn(containerElement: HTMLElement, config?: OverlayConfig): OverlayRef {\n this.setContainerElement(containerElement);\n return super.create(config);\n }\n}","import { Injectable, ApplicationRef, ViewContainerRef, TemplateRef, EventEmitter } from '@angular/core';\nimport { Overlay, PositionStrategy, ScrollStrategy } from '@angular/cdk/overlay';\nimport { TemplatePortal, Portal, ComponentPortal } from '@angular/cdk/portal';\nimport { AXConnectedPosition } from '@acorex/core';\nimport { merge } from 'rxjs';\nimport { DynamicOverlay } from './custom-cdk-overlay.service';\n\nexport interface AXOverlayViewRef {\n instance: any;\n dispose: () => void;\n overlayRef: any\n}\n\nexport interface AXOverlayConfigs {\n position?: AXConnectedPosition | AXConnectedPosition[];\n hasBackdrop?: boolean;\n transparentBackdrop?: boolean;\n closeOnClickOutside?: boolean;\n targetElement?: HTMLElement;\n containerElement?: HTMLElement;\n onBackdropClick?: () => void;\n panelClass?: string[] | string;\n backdropClass?: string[] | string;\n scroll?: 'auto' | 'block';\n direction?: 'rtl' | 'ltr';\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AXOverlayService {\n constructor(private overlayService: DynamicOverlay, private overlayService2: Overlay, private appRef: ApplicationRef) { }\n\n show(content: any, context?: any, configs?: AXOverlayConfigs): AXOverlayViewRef {\n configs = Object.assign(\n {\n hasBackdrop: true,\n transparentBackdrop: true,\n closeOnClickOutside: true\n },\n configs || {}\n );\n // get root viewref\n const viewRef: ViewContainerRef = this.appRef.components[0].instance.viewRef;\n\n let portal: Portal<any>;\n // get component by route\n if (typeof content === 'string') {\n // TODO\n }\n // create portal from component\n else if (content instanceof TemplateRef) {\n portal = new TemplatePortal(content, viewRef, context);\n } else if (typeof content === 'function') {\n portal = new ComponentPortal(content, viewRef);\n }\n let positionStrategy: PositionStrategy;\n if (configs.position && configs.targetElement) {\n positionStrategy = this.overlayService\n .position()\n .flexibleConnectedTo(configs.targetElement)\n .withPositions(Array.isArray(configs.position) ? configs.position : [configs.position])\n .withPush(true);\n } else {\n positionStrategy = this.overlayService.position().global().centerHorizontally().centerVertically();\n }\n let scrollStrategy: ScrollStrategy = this.overlayService.scrollStrategies.reposition({ autoClose: true });\n if (configs.scroll === 'block') {\n scrollStrategy = this.overlayService.scrollStrategies.block();\n }\n\n const config = {\n positionStrategy,\n scrollStrategy,\n hasBackdrop: configs.hasBackdrop,\n disposeOnNavigation: true,\n backdropClass: configs.backdropClass ? configs.backdropClass : configs.transparentBackdrop ? 'cdk-overlay-transparent-backdrop' : undefined,\n panelClass: configs.panelClass ? configs.panelClass : ['animate__animated', 'animate__fadeIn']\n };\n // joon nanat dorost sho\n let overlayRef = configs.containerElement ? this.overlayService.createOn(configs.containerElement, config) : this.overlayService2.create(config);\n\n const host = overlayRef.attach(portal);\n if (host.instance) {\n Object.assign(host.instance, context);\n setTimeout(() => {\n host.changeDetectorRef.detectChanges();\n }, 0);\n }\n if (configs.direction) overlayRef.setDirection(configs.direction);\n if (configs.closeOnClickOutside) {\n merge(overlayRef.backdropClick() as any, overlayRef.detachments() as any).subscribe(() => {\n overlayRef.dispose();\n overlayRef = undefined;\n if (configs.onBackdropClick) {\n configs.onBackdropClick();\n }\n });\n }\n\n return {\n instance: host.instance,\n dispose: overlayRef.dispose.bind(overlayRef),\n overlayRef: overlayRef\n };\n }\n}\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'ax-loading-indicator',\n templateUrl: './loading-indicator.component.html'\n})\nexport class AXLoadingIndicatorComponent implements OnInit {\n constructor() { }\n\n ngOnInit(): void {\n this.size = 80;\n }\n\n @Input()\n size: number;\n}\n","<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" style=\"margin:auto;display:block;\"\n [style.width.px]=\"size\" [style.height.px]=\"size\" viewBox=\"0 0 100 100\" preserveAspectRatio=\"xMidYMid\">\n <rect fill=\"var(--ax-gray-trans-light-color)\" x=\"55\" y=\"55\" width=\"30\" height=\"30\" rx=\"3\" ry=\"3\">\n <animate attributeName=\"x\" dur=\"2s\" repeatCount=\"indefinite\"\n keyTimes=\"0;0.083;0.25;0.333;0.5;0.583;0.75;0.833;1\" values=\"15;55;55;55;55;15;15;15;15\"\n begin=\"-1.8333333333333333s\"></animate>\n <animate attributeName=\"y\" dur=\"2s\" repeatCount=\"indefinite\"\n keyTimes=\"0;0.083;0.25;0.333;0.5;0.583;0.75;0.833;1\" values=\"15;55;55;55;55;15;15;15;15\"\n begin=\"-1.3333333333333333s\"></animate>\n </rect>\n <rect fill=\"var(--ax-primary-light-color)\" x=\"55\" y=\"15\" width=\"30\" height=\"30\" rx=\"3\" ry=\"3\">\n <animate attributeName=\"x\" dur=\"2s\" repeatCount=\"indefinite\"\n keyTimes=\"0;0.083;0.25;0.333;0.5;0.583;0.75;0.833;1\" values=\"15;55;55;55;55;15;15;15;15\"\n begin=\"-1.1666666666666667s\"></animate>\n <animate attributeName=\"y\" dur=\"2s\" repeatCount=\"indefinite\"\n keyTimes=\"0;0.083;0.25;0.333;0.5;0.583;0.75;0.833;1\" values=\"15;55;55;55;55;15;15;15;15\"\n begin=\"-0.6666666666666666s\"></animate>\n </rect>\n <rect fill=\"var(--ax-primary-dark-color)\" x=\"15\" y=\"34.6776\" width=\"30\" height=\"30\" rx=\"3\" ry=\"3\">\n <animate attributeName=\"x\" dur=\"2s\" repeatCount=\"indefinite\"\n keyTimes=\"0;0.083;0.25;0.333;0.5;0.583;0.75;0.833;1\" values=\"15;55;55;55;55;15;15;15;15\" begin=\"-0.5s\">\n </animate>\n <animate attributeName=\"y\" dur=\"2s\" repeatCount=\"indefinite\"\n keyTimes=\"0;0.083;0.25;0.333;0.5;0.583;0.75;0.833;1\" values=\"15;55;55;55;55;15;15;15;15\" begin=\"0s\">\n </animate>\n </rect>\n</svg>","import { Injectable, ComponentRef, EventEmitter } from '@angular/core';\nimport { AXRenderService } from '@acorex/core';\nimport { AXLoadingPanelComponent } from './loading-panel.component';\nimport { AXOverlayService, AXOverlayViewRef } from '../popover/overlay.service';\nimport { AXLoadingIndicatorComponent } from './loading-indicator.component';\n\n\n@Injectable({ providedIn: 'root' })\nexport class AXLoadingService {\n\n private _stack: { id: number, component: AXOverlayViewRef }[] = [];\n\n\n constructor(private injection: AXRenderService, private overlayService: AXOverlayService) {\n\n }\n\n show(location?: Element): number {\n let host: Element;\n if (location) {\n host = location.closest('.ax-loading-host');\n }\n const containerElement = (host || location) as HTMLDivElement;\n const com = this.overlayService.show(AXLoadingIndicatorComponent, {},\n {\n closeOnClickOutside: false,\n containerElement,\n hasBackdrop: true,\n backdropClass: ['ax-loading-overlay'],\n scroll: 'block'\n });\n const id = new Date().getTime();\n this._stack.push({ id, component: com });\n return id;\n }\n\n hide(id): void {\n const f = this._stack.find(c => c.id === id);\n if (f) {\n f.component.dispose();\n this._stack = this._stack.filter(c => c.id !== id);\n }\n }\n}","import { Component, ElementRef, ChangeDetectorRef } from '@angular/core';\nimport { AXLoadingService } from '../loading/loading.service';\n\n@Component({\n selector: 'ax-page',\n template: `\n <div class=\"page-content-wrap\">\n <div class=\"ax-page-toolbar\">\n <ng-content select=\"ax-toolbar\"></ng-content>\n </div>\n <ng-content select=\"ax-page-content\"></ng-content>\n <ng-content select=\"ax-page-footer\"></ng-content>\n </div>\n`\n})\nexport class AXPageComponent {\n constructor(\n private el: ElementRef<HTMLElement>,\n private loadingService: AXLoadingService,\n private cdr: ChangeDetectorRef,\n ) { }\n\n\n ngAfterViewInit(): void {\n }\n\n private _loadingId: number;\n\n private _isLoading: boolean = false;\n public get isLoading(): boolean {\n return this._isLoading;\n }\n public set isLoading(v: boolean) {\n this._isLoading = v;\n if (this._loadingId && !v) {\n this.loadingService.hide(this._loadingId);\n this._loadingId = null;\n }\n if (v) {\n this._loadingId = this.loadingService.show(this.el.nativeElement);\n }\n }\n}\n","import { EventEmitter, ViewChild, Directive } from '@angular/core';\nimport { AXDataEvent } from './events.class';\nimport { AXMenuItemClickEvent } from '../menu/menu.component';\nimport { AXButtonItem } from '@acorex/core';\nimport { AXPageComponent } from '../page/page.component';\nimport { Subject } from 'rxjs';\n\nexport const TAB_META_KEY = '__meta__';\n\nexport class AXPageCloseEvent extends AXDataEvent<any> {\n}\nexport class AXPageClosing {\n cancel: boolean = false;\n data?: any;\n}\n\nexport class AXPageResult {\n sender: any;\n data?: any;\n}\n\nexport class AXPageClosedPromise extends Promise<AXPageResult> {\n\n private closeMethod: () => void;\n constructor(\n executor: (resolve: (value?: AXPageResult | PromiseLike<AXPageResult>) => void,\n reject: (reason?: any) => void) => void\n ) {\n super(executor);\n }\n\n public close() {\n if (this.closeMethod) {\n this.closeMethod();\n }\n }\n}\n\n@Directive()\nexport abstract class AXBasePageComponent {\n\n @ViewChild(AXPageComponent, { static: true })\n private pageContainer: AXPageComponent;\n\n private _isLoading: boolean = false;\n public get isLoading(): boolean {\n return this._isLoading;\n }\n public set isLoading(v: boolean) {\n this._isLoading = v;\n if (this.pageContainer) {\n this.pageContainer.isLoading = this.isLoading;\n }\n }\n\n\n onClosed: EventEmitter<AXPageCloseEvent> = new EventEmitter<AXPageCloseEvent>();\n\n close(data?: any) {\n this.onClosed.emit({\n component: this,\n data: data\n });\n }\n\n onClosing(e: AXPageClosing): void | Promise<void> {\n }\n\n onActivated() {\n\n }\n\n ngOnDestroy() {\n this.onClosed.unsubscribe();\n }\n}\n\n@Directive()\nexport abstract class AXBasePopupPageComponent extends AXBasePageComponent {\n\n\n constructor() {\n super();\n setTimeout(() => {\n this.configFooterButtons(this.getFooterButtons());\n });\n }\n\n\n private _footerButtons: AXButtonItem[] = [];\n onFooterButtonsChanged = new Subject<AXButtonItem[]>();\n\n protected get footerButtons(): AXButtonItem[] {\n return this._footerButtons || [];\n }\n\n protected configFooterButtons(buttons?: AXButtonItem[]) {\n //debugger\n console.log(\"configFooterButtons\", buttons);\n if (buttons?.length) {\n this._footerButtons = buttons;\n this.onFooterButtonsChanged.next(buttons);\n }\n else {\n this.onFooterButtonsChanged.next(this.footerButtons);\n }\n }\n\n onFooterButtonClick(e: AXMenuItemClickEvent) {\n }\n\n getFooterButtons(): AXButtonItem[] {\n return [];\n }\n}\n\n\n","import { Component, Input, ViewEncapsulation, ElementRef, ViewChild, HostListener } from '@angular/core';\nimport { AXBaseButtonComponent } from '../base/element.class';\n\n@Component({\n selector: 'ax-button',\n encapsulation: ViewEncapsulation.None,\n templateUrl: './button.component.html'\n})\nexport class AXButtonComponent extends AXBaseButtonComponent {\n\n constructor(private el: ElementRef) {\n super();\n }\n\n @ViewChild('container', { static: true }) container: ElementRef<HTMLButtonElement>;\n\n @Input()\n type: string = 'primary';\n\n @Input()\n icon: string;\n\n @Input()\n submitBehavior: boolean = false;\n\n @Input()\n cancelBehavior: boolean = false;\n\n @Input()\n block: boolean = false;\n\n @Input()\n loading: boolean = false;\n\n @Input()\n selected: boolean = false;\n\n ngAfterViewInit(): void {\n if (this.submitBehavior) {\n setTimeout(() => {\n this.focusButton();\n }, 10);\n }\n }\n\n\n\n handleClick(e: MouseEvent) {\n if (this.disabled === true) {\n this.click.emit({\n component: this,\n htmlElement: this.el.nativeElement,\n htmlEvent: e,\n });\n e.stopPropagation();\n }\n }\n\n @HostListener('document:keydown.escape', ['$event'])\n onKeydownHandler(e: KeyboardEvent) {\n if (this.cancelBehavior) {\n this.handleClick(null);\n e.stopPropagation();\n e.preventDefault();\n return false;\n }\n }\n\n focusButton() {\n this.container.nativeElement.focus();\n }\n}\n","<button #container class=\"ax button form-control {{type}} {{size}} {{cssClass}}\" [class.ax-button-icon]=\"refContent.innerText.length==0 && refContent.children.length == 0\" [class.selected]=\"selected\" [class.icon]=\"icon\"\n [class.icon]=\"loading\" [class.disabled]=\"disabled || loading\" (click)=\"handleClick($event)\" [disabled]=\"disabled\"\n [ngStyle]=\"{'width.%': block ? 100 : 'auto'}\" [attr.tabindex]=\"tabIndex\">\n <div class=\"button-inner-content\">\n <ng-container *ngIf=\"icon && !loading\">\n <i class=\"{{icon}} icon\"></i>\n <ng-container *ngIf=\"refContent.innerText.length==0 && refContent.children.length == 0\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"loading\">\n <i class=\"far fa-circle-notch fa-spin icon\"></i>\n <ng-container *ngIf=\"refContent.innerText.length==0 && refContent.children.length == 0\"></ng-container>\n </ng-container>\n <div class=\"ax-wrapper\" #refContent>\n <ng-content></ng-content>\n </div>\n </div>\n</button>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXButtonComponent } from './button.component';\n\nconst COMPONENT = [AXButtonComponent];\nconst MODULES = [CommonModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXButtonModule { }\n","import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef, ViewEncapsulation, ElementRef } from '@angular/core';\nimport { AXDateTime, AXDateTimeRange, AXCalendarType, AXTranslator } from '@acorex/core';\nimport { AXBaseSizableComponent, AXElementSize } from '../../base/element.class';\nimport { AXValueEvent } from '../../base/events.class';\nimport { AXConfig } from '@acorex/core';\n\nexport type AXCalendarViewType = 'year' | 'month' | 'day';\n\nexport type AXCalendarHolidays = AXCalendarHoliday[];\nexport type AXCalendarHolidaysFunc = (start: Date, end: Date, type: AXCalendarType) => AXCalendarHoliday[];\nexport interface AXCalendarHoliday {\n date: Date;\n title: string;\n description?: string;\n}\n\nexport type AXCalendarWeekends = AXCalendarWeekend[];\nexport type AXCalendarWeekendsFunc = (start: Date, end: Date, type: AXCalendarType) => AXCalendarWeekend[];\n\nexport interface AXCalendarWeekend {\n indexDay: number;\n}\n\n@Component({\n selector: 'ax-calendar-box',\n templateUrl: './calendar-box.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AXCalendarBoxComponent implements AXBaseSizableComponent {\n weekdays: string[] = [];\n\n private d = {\n jalali: {\n locale: AXConfig.get('dateTime.jalali.locale') || 'fa',\n dir: 'rtl',\n number: 1\n },\n gregorian: {\n locale: AXConfig.get('dateTime.gregorian.locale') || 'en',\n dir: 'ltr',\n number: 0\n }\n };\n\n numRotate: number;\n\n @Input()\n size: AXElementSize = 'md';\n\n @Input()\n type: AXCalendarType;\n\n @Input()\n locale: string;\n\n @Input()\n dir: string;\n\n @Input()\n min: Date;\n\n @Input()\n max: Date;\n\n @Input()\n selectableHoliday: boolean = true;\n\n @Input()\n dayStyle = [];\n\n @Input()\n dayMinMaxResoan = '';\n\n private getHoliday: AXCalendarHolidays | AXCalendarHolidaysFunc;\n\n private getWeekend: AXCalendarWeekends | AXCalendarWeekendsFunc;\n\n @Input('showTodayButton')\n public showTodayButton: boolean = false;\n\n matrix: any[] = [];\n rotated: boolean = false;\n private _view: AXCalendarViewType = 'day';\n @Input()\n public get view(): AXCalendarViewType {\n return this._view;\n }\n public set view(v: AXCalendarViewType) {\n this._view = v;\n this.navigate(0);\n }\n\n private _depth: AXCalendarViewType = 'day';\n\n @Input()\n public get depth(): AXCalendarViewType {\n return this._depth;\n }\n public set depth(v: AXCalendarViewType) {\n this._depth = v;\n this.view = v;\n }\n\n viewRange: AXDateTimeRange;\n private holidays: AXCalendarHoliday[] = [];\n private weekends: AXCalendarWeekend[] = [];\n\n @Output()\n onValueChanged: EventEmitter<AXValueEvent<Date>> = new EventEmitter<AXValueEvent<Date>>();\n\n @Output()\n onClick: EventEmitter<AXValueEvent<Date>> = new EventEmitter<AXValueEvent<Date>>();\n\n @Output()\n valueChange: EventEmitter<Date> = new EventEmitter<Date>();\n\n private _value: AXDateTime;\n @Input()\n public get value(): Date {\n return this._value?.date;\n }\n public set value(v: Date) {\n let vv: AXDateTime;\n if (v) {\n vv = AXDateTime.convert(v);\n }\n let unValidDate = false;\n if (this.max || this.min) {\n unValidDate = this.isInMInMaxRange(vv);\n }\n if (!unValidDate) {\n if (vv && !vv.equal(this._value)) {\n this._value = vv;\n this._value.type = this.type;\n this.setFocus(this._value.clone());\n this.valueChange.emit(vv.date);\n this.onValueChanged.emit({\n component: this,\n value: this._value?.date,\n htmlElement: this.ref.nativeElement\n });\n }\n if (v == undefined) {\n this._value = null;\n this.focusedValue = this.today;\n this.viewRange = this.today.month.range;\n this.navigate(0);\n }\n this.onClick.emit({\n component: this,\n value: this._value?.date,\n htmlElement: this.ref.nativeElement\n });\n }\n }\n\n focusedValue: AXDateTime;\n get today(): AXDateTime {\n return new AXDateTime(new Date(), this.type);\n }\n\n constructor(private cdr: ChangeDetectorRef, private ref: ElementRef) {\n // set defaults\n this.getHoliday = AXConfig.get('dateTime.holidays');\n this.getWeekend = AXConfig.get('dateTime.weekends');\n }\n findDay(date: AXDateTime) {\n if (this.dayStyle.find((c) => c.date.split('T')[0] == date.toISOString().split('T')[0])) {\n return true;\n } else {\n return false;\n }\n }\n getStyle(date: AXDateTime) {\n if (this.dayStyle.find((c) => c.date.split('T')[0] == date.toISOString().split('T')[0])) {\n return this.dayStyle.find((c) => c.date.split('T')[0] == date.toISOString().split('T')[0]).style;\n } else {\n return '';\n }\n }\n\n getTitle(date: AXDateTime) {\n if (this.dayStyle.find((c) => c.date.split('T')[0] == date.toISOString().split('T')[0])) {\n return this.dayStyle.find((c) => c.date.split('T')[0] == date.toISOString().split('T')[0]).text;\n } else {\n if (\n (this.min && this.max && date.compaireNew(new AXDateTime(this.min, this.type), 'YMD', this.type) === -1) ||\n date.compaireNew(new AXDateTime(this.max, this.type), 'YMD', this.type) === 1\n ) {\n return this.dayMinMaxResoan;\n } else {\n return '';\n }\n }\n }\n\n ngOnInit() {\n this.focusedValue = new AXDateTime(new Date(), this.type);\n //\n this.initLayout();\n //\n this.viewRange = this.today.month.range;\n if (this.value) {\n this.setFocus(new AXDateTime(this.value, this.type));\n } else {\n this.setFocus(this.today);\n }\n\n this.view = 'day';\n }\n\n getViewCompaire(view: AXCalendarViewType) {\n switch (view) {\n case 'day':\n return 'YMD';\n case 'month':\n return 'YM';\n case 'year':\n return 'Y';\n }\n }\n\n ngAfterViewInit(): void {\n this.navigate(0);\n }\n\n private initLayout() {\n if (!this.type) {\n this.type = AXConfig.get('dateTime.type') || 'gregorian';\n }\n if (!this.locale) {\n this.locale = this.d[this.type]?.locale || this.locale;\n }\n if (!this.dir) {\n this.dir = this.d[this.type]?.dir || 'ltr';\n }\n this.numRotate = this.d[this.type]?.number || 0;\n const path = 'dateTime.weekdaysShort';\n this.weekdays = [\n AXTranslator.get(`${path}.sun`, this.locale),\n AXTranslator.get(`${path}.mon`, this.locale),\n AXTranslator.get(`${path}.tue`, this.locale),\n AXTranslator.get(`${path}.wed`, this.locale),\n AXTranslator.get(`${path}.thu`, this.locale),\n AXTranslator.get(`${path}.fri`, this.locale),\n AXTranslator.get(`${path}.sat`, this.locale)\n ];\n }\n\n getTodayName() {\n return AXTranslator.get('dateTime.today', this.locale);\n }\n\n prev() {\n this.navigate(-1);\n }\n\n next() {\n this.navigate(1);\n }\n\n rotate(array, n) {\n const len = array.length;\n return !(n % len) ? array : n > 0 ? array.map((e, i, a) => a[(i + n) % len]) : array.map((e, i, a) => a[(len - ((len - i - n) % len)) % len]);\n }\n\n navigate(value: number | AXDateTime) {\n let start: AXDateTime;\n let end: AXDateTime;\n if (this.view === 'day') {\n let fd: AXDateTime;\n if (value instanceof AXDateTime) {\n fd = value.startOf('month');\n } else {\n fd = this.viewRange.startTime.add('day', 15).add('month', value).startOf('month');\n }\n\n start = fd.firstDayOfWeek;\n end = fd.endOf('month').endDayOfWeek;\n\n start = start.add('day', -this.numRotate);\n end = end.add('day', 7).add('day', -this.numRotate);\n\n // TODO: apply start of week\n if (!this.rotated && this.weekdays.length > 0) {\n if (this.type === 'jalali') {\n this.weekdays = this.rotate(this.weekdays, -this.numRotate);\n } else {\n this.weekdays = this.rotate(this.weekdays, this.numRotate);\n }\n\n this.rotated = true;\n }\n } else if (this.view === 'month') {\n let fd: AXDateTime;\n if (value instanceof AXDateTime) {\n fd = value.startOf('year');\n } else {\n fd = this.viewRange.startTime.add('day', 15).add('year', value).startOf('year');\n }\n start = fd;\n end = fd.endOf('year');\n } else if (this.view === 'year') {\n let fd: AXDateTime;\n if (value instanceof AXDateTime) {\n fd = value.startOf('year');\n } else {\n fd = this.viewRange.startTime\n .add('day', 15)\n .add('year', value * 10)\n .startOf('year');\n }\n start = fd.add('year', -4);\n end = start.add('year', 8).endOf('year');\n }\n this.viewRange = new AXDateTimeRange(start, end);\n //\n if (this.getHoliday && typeof this.getHoliday === 'function') {\n this.holidays = this.getHoliday(start.date, end.date, this.type);\n }\n\n if (this.getWeekend && typeof this.getWeekend === 'function') {\n this.weekends = this.getWeekend(start.date, end.date, this.type);\n }\n\n //\n if (this.view === 'day') {\n this.matrix = this.matrixify(this.applyStyle(this.viewRange.enumurate('day', this.type)), 7);\n if (this.matrix.length > 0 && this.matrix[0].find((c) => c.nextMonth === false) === undefined) {\n this.matrix.splice(0, 1);\n }\n if (this.matrix[this.matrix.length - 1].find((c) => c.nextMonth === false) === undefined) {\n this.matrix.splice(this.matrix.length - 1, 1);\n }\n } else if (this.view === 'month') {\n this.matrix = this.matrixify(this.applyStyle(this.viewRange.enumurate('month', this.type)), 3);\n } else if (this.view === 'year') {\n this.matrix = this.matrixify(this.applyStyle(this.viewRange.enumurate('year', this.type)), 3);\n }\n this.cdr.detectChanges();\n }\n\n private applyStyle(dates: AXDateTime[]): any[] {\n const items: any[] = [];\n dates.forEach((d, i, j) => {\n const item: any = {};\n item.date = d;\n\n item.selected = d.compaireNew(new AXDateTime(this.value, this.type), this.getViewCompaire(this.view), this.type) === 0;\n item.focused = d.compaireNew(this.focusedValue, this.getViewCompaire(this.view), this.type) === 0;\n item.today = this.today && d.compaireNew(this.today, this.getViewCompaire(this.view), this.type) === 0;\n if (this.view === 'day') {\n // item.nextMonth = d.compaireNew(this.viewRange.startTime.add('day', 10), 'YM') !== 0;\n item.nextMonth = d.compaireNew(this.viewRange.startTime.add('day', 10), 'YM', this.type) !== 0;\n\n item.unselect = this.isInMInMaxRange(d);\n this.holidays.forEach((h) => {\n const comp = d.compaireNew(new AXDateTime(h.date, this.type), 'YMD', this.type);\n if (comp === 0) {\n item.holiday = true;\n if (this.selectableHoliday === false) {\n item.unselect = true;\n }\n }\n });\n\n const indexDay = i - Math.floor(i / 7) * 7;\n this.weekends.forEach((cc) => {\n if (Number(cc) === indexDay) {\n item.holiday = true;\n if (this.selectableHoliday === false) {\n item.unselect = true;\n }\n }\n });\n }\n items.push(item);\n });\n return items;\n }\n\n changeView() {\n if (this.view === 'day') {\n this.view = 'month';\n } else if (this.view === 'month') {\n this.view = 'year';\n }\n }\n\n matrixify(arr: any[], cols) {\n const rows = Math.ceil(arr.length / cols);\n const matrix = [];\n if (rows * cols === arr.length) {\n for (let i = 0; i < arr.length; i += cols) {\n matrix.push(arr.slice(i, cols + i));\n }\n }\n return matrix;\n }\n\n setDayClick(event: MouseEvent, item) {\n if (item.unselect !== true) {\n this.value = item.date.date;\n }\n\n event.stopPropagation();\n }\n\n isInMInMaxRange(d) {\n let r = false;\n if (d !== undefined) {\n if (this.min && !this.max) {\n r = d.compaireNew(new AXDateTime(this.min, this.type), this.getViewCompaire(this.view), this.type) === -1;\n }\n if (this.max && !this.min) {\n r = d.compaireNew(new AXDateTime(this.max, this.type), this.getViewCompaire(this.view), this.type) === 1;\n }\n if (this.min && this.max) {\n r =\n d.compaireNew(new AXDateTime(this.min, this.type), this.getViewCompaire(this.view), this.type) === -1 ||\n d.compaireNew(new AXDateTime(this.max, this.type), this.getViewCompaire(this.view), this.type) === 1;\n }\n }\n return r;\n }\n\n setMonthClick(event: MouseEvent, date: AXDateTime) {\n if (this.depth === 'month') {\n this.value = date.date;\n } else {\n this.view = 'day';\n this.setFocus(new AXDateTime(this.value, this.type).set('year', date.year).set('month', date.monthOfYear));\n }\n event.stopPropagation();\n }\n\n setYearClick(event: MouseEvent, date: AXDateTime) {\n if (this.depth === 'year') {\n this.value = date.date;\n } else {\n this.view = 'month';\n this.setFocus(new AXDateTime(this.value, this.type).set('year', date.year));\n }\n event.stopPropagation();\n }\n\n setFocus(date: AXDateTime) {\n this.focusedValue = date;\n this.navigate(this.focusedValue);\n }\n\n setToday() {\n this.value = this.today.date;\n this.view = 'day';\n }\n\n trackByFn(index, item: any) {\n return item.date.date.getTime();\n }\n}\n","<div class=\"ax-calendar-container {{size}}\" [ngClass]=\"type\">\n <div class=\"ax-calendar-header\">\n <div class=\"ax-controll-button\">\n <ax-button type=\"light blank\" (click)=\"next()\">\n {{'common.next' | trans}}\n </ax-button>\n </div>\n <div class=\"ax-nav-button\" [ngSwitch]=\"view\">\n <ax-button type=\"light blank\" (click)=\"changeView()\">\n <ng-container *ngSwitchCase=\"'day'\">\n {{viewRange.startTime.add('day',10) | dt:\"MMM YYYY\"}}\n </ng-container>\n <ng-container *ngSwitchCase=\"'month'\">\n {{viewRange.startTime | dt:\"YYYY\"}}\n </ng-container>\n <ng-container *ngSwitchDefault>\n {{viewRange.startTime | dt:\"YYYY\"}} - {{viewRange.endTime | dt:\"YYYY\"}}\n </ng-container>\n </ax-button>\n </div>\n <div class=\"ax-controll-button\">\n <ax-button type=\"light blank\" (click)=\"prev()\">\n {{'common.prev' | trans}}\n </ax-button>\n </div>\n </div>\n <div class=\"ax-calendar-body\">\n <ng-container [ngSwitch]=\"view\">\n <ng-container *ngSwitchCase=\"'day'\">\n <div class=\"ax-month-items\">\n <ng-container *ngFor='let w of weekdays'>\n <div class=\"ax-month-item\">{{w}}</div>\n </ng-container>\n </div>\n <div class=\"ax-day-items\">\n <ng-container *ngFor=\"let r of matrix\">\n <div class=\"ax-day-item ax-state-event\" *ngFor=\"let d of r;trackBy:trackByFn\" [title]=\"getTitle(d.date)\" [ngClass]=\"{'selected': d.selected,'focused':d.focused,'today':d.today,'next-month':d.nextMonth , 'holiday':d.holiday , 'unselect':d.unselect}\" [ngStyle]=\"(findDay(d.date)) ? getStyle(d.date):''\"\n (click)=\"setDayClick($event,d)\">\n {{d.date.dayInMonth}}</div>\n </ng-container>\n\n </div>\n </ng-container>\n <div class=\"ax-month-container\" *ngSwitchCase=\"'month'\">\n <ng-container *ngFor=\"let r of matrix\">\n <div class=\"ax-month-item\" *ngFor=\"let d of r;trackBy:trackByFn\" [ngClass]=\"{'selected': d.selected,'focused':d.focused,'today':d.today}\" (click)=\"setMonthClick($event,d.date)\">\n <strong>\n {{d.date| dt:\"MMM\"}}\n </strong>\n </div>\n </ng-container>\n </div>\n <div class=\"ax-year-container\" *ngSwitchCase=\"'year'\">\n <ng-container class=\"calendar-row\" *ngFor=\"let r of matrix\">\n <div class=\"ax-year-item\" *ngFor=\"let d of r;trackBy:trackByFn\" [ngClass]=\"{'selected': d.selected,'focused':d.focused,'today':d.today}\" (click)=\"setYearClick($event,d.date)\">\n <strong>{{d.date | dt:\"YYYY\"}}</strong>\n </div>\n </ng-container>\n </div>\n </ng-container>\n\n </div>\n <div class=\"ax-calendar-footer\">\n <ax-button (click)=\"setToday()\" *ngIf=\"showTodayButton\" type=\"dark\">\n {{getTodayName()}}\n </ax-button>\n </div>\n</div>","import { Component, Input, NgZone, ChangeDetectorRef, ChangeDetectionStrategy, ViewEncapsulation, ViewChild, TemplateRef, Output, EventEmitter } from '@angular/core';\nimport { ElementRef } from '@angular/core';\nimport { AXOverlayService, AXOverlayViewRef } from './overlay.service';\nimport { AXConfig, AXConnectedPosition } from '@acorex/core';\n\n@Component({\n selector: 'ax-popover',\n templateUrl: './popover.component.html',\n styleUrls: ['./popover.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AXPopoverComponent {\n constructor(\n private overlayService: AXOverlayService,\n private zone: NgZone,\n private ref: ElementRef<HTMLDivElement>,\n private cdr: ChangeDetectorRef\n ) { }\n //\n private targetEl: HTMLElement;\n private overlay: AXOverlayViewRef;\n @ViewChild('tpl')\n private template: TemplateRef<any>;\n //\n @Input('target') target: string | HTMLElement;\n //\n @Input('position') position: AXConnectedPosition;\n //\n @Input('openMode') openMode: 'manual' | 'click' | 'hover' = 'manual';\n //\n @Input('closeMode') closeMode: 'manual' | 'clickout' | 'mouseout' = 'clickout';\n //\n @Input()\n rtl: boolean = AXConfig.get('layout.rtl');\n\n private _visible: boolean = false;\n @Input()\n public get visible(): boolean {\n return this._visible;\n }\n public set visible(v: boolean) {\n if (v !== this._visible) {\n if (v) {\n this.internalShow();\n } else {\n this.internalHide();\n }\n this._visible = v;\n this.cdr.detectChanges();\n }\n }\n\n @Output()\n onOutSideClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n\n //\n toggle() {\n this.visible = !this.visible;\n }\n\n close() {\n this.zone.run(() => {\n this.visible = false;\n });\n }\n\n open() {\n this.zone.run(() => {\n this.visible = true;\n });\n }\n\n private internalShow() {\n if (this.isOpen) {\n return;\n }\n this.overlay = this.overlayService.show(\n this.template,\n {},\n {\n closeOnClickOutside: this.closeMode === 'clickout',\n targetElement: this.targetEl,\n hasBackdrop: this.closeMode === 'clickout',\n position: this.position,\n direction: this.rtl ? 'rtl' : 'ltr',\n onBackdropClick: () => {\n this._visible = false;\n }\n }\n );\n this.overlay.overlayRef.outsidePointerEvents().subscribe((e) => {\n this.onOutSideClick.emit(e)\n })\n }\n\n private internalHide() {\n if (this.overlay) {\n this.overlay.dispose();\n }\n }\n\n ngOnInit(): void {\n if (this.rtl == null) {\n this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';\n }\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.targetEl = typeof this.target === 'string' ? document.querySelector<HTMLElement>(this.target) : this.target;\n //\n if (this.closeMode === 'mouseout') {\n this.targetEl.addEventListener('mouseout', this.close.bind(this));\n }\n if (this.openMode === 'hover' && this.targetEl) {\n this.targetEl.addEventListener('mouseover', this.open.bind(this));\n }\n //\n if (this.openMode === 'click' && this.targetEl) {\n this.targetEl.addEventListener('click', this.open.bind(this));\n }\n }, 100);\n }\n\n ngOnDestroy(): void {\n if (this.openMode === 'click' && this.targetEl) {\n this.targetEl.removeEventListener('mouseover', this.open.bind(this));\n this.targetEl.removeEventListener('click', this.open.bind(this));\n this.targetEl.removeEventListener('mouseout', this.open.bind(this));\n }\n }\n\n get isOpen(): boolean {\n return this.visible;\n }\n}\n","<ng-template #tpl>\n <div class=\"ax-popover-container animate__animated animate__fadeIn\">\n <ng-content></ng-content>\n </div>\n</ng-template>","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { AXPopoverComponent } from \"./popover.component\";\n\n@NgModule({\n declarations: [AXPopoverComponent],\n imports: [CommonModule],\n exports: [AXPopoverComponent],\n providers: []\n})\nexport class AXPopoverModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXCalendarBoxComponent } from './calendar-box.component';\nimport { AXCoreModule, AXTranslatorModule } from '@acorex/core';\nimport { AXPopoverModule } from '../../popover/popover.module';\nimport { AXButtonModule } from '../../button/button.module';\n\n\n@NgModule({\n declarations: [AXCalendarBoxComponent],\n imports: [CommonModule, AXButtonModule, AXPopoverModule, AXCoreModule,AXTranslatorModule],\n exports: [AXCalendarBoxComponent],\n providers: []\n})\nexport class AXCalendarBoxModule {\n}\n","import { Component, ContentChildren, QueryList, Input, Attribute } from '@angular/core';\nimport { AXSchedulerViewType } from './scheduler.class';\n\n@Component({\n selector: 'ax-scheduler-view',\n template: ``\n})\nexport class AXSchedulerViewProperty {\n\n constructor(\n @Attribute('type') public type: AXSchedulerViewType,\n @Attribute('caption') public caption: string,\n @Attribute('name') public name: string,\n ) {\n\n }\n\n @Input()\n public interval: number;\n\n\n ngOnInit(): void {\n if (!this.interval) {\n this.interval = 1;\n }\n }\n}\n\n@Component({\n selector: 'ax-scheduler-views',\n template: `\n <ng-content>\n </ng-content>`,\n})\nexport class AXSchedulerViewsProperty {\n @ContentChildren(AXSchedulerViewProperty) views: QueryList<AXSchedulerViewProperty>;\n constructor() { }\n}\n","import { AXDateTime, AXDateTimeRange } from '@acorex/core';\nimport { EventEmitter } from '@angular/core';\n\n\n\n\nexport type AXSchedulerViewType = 'day' | 'week' | 'month' | 'timeline' | 'agenda';\n\nexport interface AXSchedulerRequestDataArge {\n startTime: AXDateTime;\n endTime: AXDateTime;\n events: AXSchedulerEvent[];\n}\n\nexport abstract class AXAsyncEventArgs {\n onComplete: EventEmitter<any> = new EventEmitter<any>(true);\n complete(): void {\n if (this.onComplete) {\n this.onComplete.emit(this);\n }\n }\n}\n\nexport class AXSchedulerEventChangeArgs extends AXAsyncEventArgs {\n canceled: boolean = false;\n event: AXSchedulerEvent;\n oldSlot: AXSchedulerSlot;\n newSlot: AXSchedulerSlot;\n}\n\nexport interface AXSchedulerSlot {\n range: AXDateTimeRange;\n events?: AXSchedulerEvent[];\n uid?: string;\n}\n\nexport interface AXSchedulerEvent {\n range: AXDateTimeRange;\n title: string;\n description?: string;\n uid: string;\n color: string;\n}\n\nexport interface AXSchedulerOccasion {\n range: AXDateTimeRange;\n title: string;\n description?: string;\n blocked?: boolean;\n}\n","export abstract class AXToolbarItem\n{\n alignment:\"start\"|\"end\"|\"center\"=\"center\";\n}","import { Directive, Input, ElementRef, HostListener, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[axTooltip]'\n})\nexport class AXTooltipDirective {\n @Input('tooltip') tooltipTitle: string;\n @Input() placement: string = 'top';\n @Input() delay: number = 500;\n tooltip: HTMLElement;\n offset = 17;\n\n constructor(private el: ElementRef, private renderer: Renderer2) {\n \n }\n\n\n @HostListener('mouseenter') onMouseEnter() {\n if (!this.tooltip && this.tooltipTitle) {\n this.show();\n }\n }\n\n @HostListener('mouseleave') onMouseLeave() {\n if (this.tooltip && this.tooltipTitle) {\n this.hide();\n }\n }\n\n show() {\n this.create();\n this.setPosition();\n this.renderer.addClass(this.tooltip, 'ax-tooltip-show');\n }\n\n hide() {\n if (this.tooltip) {\n try {\n this.renderer.removeClass(this.tooltip, 'ax-tooltip-show');\n this.renderer.removeChild(document.body, this.tooltip);\n this.tooltip = null;\n } catch (error) {}\n }\n }\n\n create() {\n if(this.tooltipTitle){\n this.tooltip = this.renderer.createElement('span');\n\n this.renderer.appendChild(\n this.tooltip,\n this.renderer.createText(this.tooltipTitle) // textNode\n );\n\n this.renderer.appendChild(document.body, this.tooltip);\n\n this.renderer.addClass(this.tooltip, 'ax-tooltip');\n this.renderer.addClass(this.tooltip, `ax-tooltip-${this.placement}`);\n this.renderer.setStyle(this.tooltip, '-webkit-transition', `opacity ${this.delay}ms`);\n this.renderer.setStyle(this.tooltip, '-moz-transition', `opacity ${this.delay}ms`);\n this.renderer.setStyle(this.tooltip, '-o-transition', `opacity ${this.delay}ms`);\n this.renderer.setStyle(this.tooltip, 'transition', `opacity ${this.delay}ms`);\n }\n }\n\n ngOnDestroy(): void {\n this.hide();\n }\n\n setPosition() {\n const hostPos = this.el.nativeElement.getBoundingClientRect();\n const tooltipPos = this.tooltip.getBoundingClientRect();\n const scrollPos = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\n\n let top;\n let left;\n\n if (this.placement === 'top') {\n top = hostPos.top - tooltipPos.height - this.offset;\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\n }\n\n if (this.placement === 'bottom') {\n top = hostPos.bottom + this.offset;\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\n }\n\n if (this.placement === 'left') {\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\n left = hostPos.left - tooltipPos.width - this.offset;\n }\n\n if (this.placement === 'right') {\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\n left = hostPos.right + this.offset;\n }\n\n this.renderer.setStyle(this.tooltip, 'top', `${top + scrollPos}px`);\n this.renderer.setStyle(this.tooltip, 'left', `${left}px`);\n }\n}\n","import {\n Component,\n Input,\n EventEmitter,\n Output,\n ElementRef,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n NgZone,\n ChangeDetectorRef,\n TemplateRef,\n ContentChild\n} from '@angular/core';\nimport { AXPlacement, AXMenuItem } from '@acorex/core';\nimport { AXBaseSizableComponent, AXElementSize } from '../base/element.class';\nimport { AXEvent } from '../base/events.class';\n\nexport class AXMenuItemClickEvent extends AXEvent<AXMenuItem, MouseEvent> {\n name: string;\n}\n\n@Component({\n selector: 'ax-menu',\n templateUrl: './menu.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class AXMenuComponent implements AXBaseSizableComponent {\n\n constructor(private ref: ElementRef, private cdr: ChangeDetectorRef) {\n }\n\n @ContentChild(TemplateRef, { static: true })\n _contentMenuTemplate: TemplateRef<any>;\n\n private _menuTemplate: TemplateRef<any>;\n @Input()\n public get menuTemplate(): TemplateRef<any> {\n return this._menuTemplate ? this._menuTemplate : this._contentMenuTemplate;\n }\n public set menuTemplate(v: TemplateRef<any>) {\n this._menuTemplate = v;\n }\n\n resizeChangeObserver: any;\n\n @Input()\n rtl: boolean;\n\n @Output()\n onItemClick: EventEmitter<AXMenuItemClickEvent> = new EventEmitter<AXMenuItemClickEvent>();\n\n @Input()\n size: AXElementSize = 'md';\n\n @Input()\n public selection: 'none' | 'single' | 'multiple' = 'none';\n\n @Input()\n public mode: 'click' | 'context' | 'visible' | 'manual' = 'visible';\n\n @Input()\n public target: string;\n\n @Input()\n public floatAlignment: AXPlacement;\n\n @Input()\n public floatPlacemnet: AXPlacement;\n\n public currentTarget: HTMLElement;\n\n @Input()\n public direction: 'vertical' | 'horizontal' = 'horizontal';\n\n private _items: AXMenuItem[];\n @Input()\n public get items(): AXMenuItem[] {\n return this._items;\n }\n public set items(v: AXMenuItem[]) {\n this._items = v;\n }\n\n ngOnInit() {\n if (this.rtl == null) {\n this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';\n }\n }\n\n\n handleItemClick(e: MouseEvent, item?: AXMenuItem) {\n e.stopPropagation();\n if (item && (!item.items || !item.items.filter((c) => c.visible !== false).length) && !item.disable) {\n const m = {\n component: this,\n htmlElement: this.ref.nativeElement,\n htmlEvent: e,\n data: item,\n name: item?.name\n };\n if (item.onClick) {\n item.onClick();\n }\n else {\n this.onItemClick.emit(m);\n }\n\n return;\n }\n }\n}\n","<!-- <div class=\"ax menu-container {{size}}\" #container>\n <ul class=\"root\" [class.horizontal]=\"direction=='horizontal'\" [class.vertical]=\"direction=='vertical'\" #root>\n <ng-template #recursiveList let-list>\n <ng-container *ngFor=\"let item of list;trackBy:trackByItem\">\n <li class=\"ax-toolbar-menu-item ax {{item.type || 'ax primary'}} {{item.style || 'ax primary'}}\" [class.disabled]='item.disable' [class.subIcon]='item.items' [class.startIcon]='item.startIcon' [class.startIcon]='item.icon' [class.endIcon]='item.endIcon' *ngIf=\"item.visible!=false\" (click)=\"handleItemClick($event, item)\"\n [class.selected]=\"item.selected\" [class.divider]=\"item.divider\" [attr.title]=\"item.tooltip ? item.tooltip : null\"\n [attr.data-uid]=\"item.uid\"\n [class.split]=\"item.split\">\n <div class=\"content-side\">\n <ng-container *ngIf=\"menuTemplate; else menuBody\">\n <ng-container *ngTemplateOutlet=\"menuTemplate; context: { $implicit: item }\">\n </ng-container>\n </ng-container>\n <ng-template #menuBody>\n <span class=\"ax-toolbar-menu-item-text\">\n <i class=\"{{ item.startIcon }} start-icon ax-menu-item-icon\" *ngIf=\"item.startIcon\"></i>\n <i class=\"{{ item.icon }} start-icon ax-menu-item-icon\" *ngIf=\"item.icon\"></i>\n <span *ngIf=\"item.text\">{{ item.text }}</span>\n <i class=\"{{ item.endIcon }} end-icon ax-menu-item-icon\" *ngIf=\"item.endIcon\"></i>\n </span>\n </ng-template>\n </div>\n <div class=\"sub-icon-side\" *ngIf=\"item.hasChildren\">\n <i class=\"far fa-angle-down ax-menu-item-drop-icon\"></i>\n </div>\n <ul *ngIf=\"item.hasChildren\" class=\"collapsed sub-menu\">\n <ng-container *ngTemplateOutlet=\"\n recursiveList;\n context: { $implicit: item.items }\n \"></ng-container>\n </ul>\n </li>\n </ng-container>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"recursiveList; context: { $implicit: items }\"></ng-container>\n <li class=\"more\" #moreLI (click)=\"handleItemClick($event)\">\n <i class=\"far fa-bars\"></i>\n <ul #moreUL class=\"collapsed sub-menu\"></ul>\n </li>\n </ul>\n</div> -->\n\n<nav>\n <ul class=\"ax nav-menu\" [class.rtl]=\"rtl\" [class.nav-center]=\"direction=='horizontal'\"\n [class.nav-vertical]=\"direction=='vertical'\">\n <ng-container *ngTemplateOutlet=\"recursiveMenu; context:{ $implicit: items }\"></ng-container>\n </ul>\n</nav>\n\n<ng-template #recursiveMenu let-items>\n <ng-container *ngFor=\"let item of items\">\n <li class=\"ax {{item.style}}\" [ngClass]=\"{'disabled': item.disable}\"\n *ngIf=\"item.visible === undefined || item.visible\" (click)=\"handleItemClick($event,item)\" axTooltip\n [placement]=\"item.tooltipPlacement ? item.tooltipPlacement : 'bottom'\"\n [tooltip]=\"item.tooltip ? item.tooltip : ''\">\n <div class=\"ax-menu-item\" >\n <span class=\"menu-item-start-side\">\n <i class=\"{{ item.startIcon }}\" *ngIf=\"item.startIcon\"></i>\n <i class=\"{{ item.icon }}\" *ngIf=\"item.icon\"></i>\n <span class=\"ax-menu-item-text\" *ngIf=\"item.text\">{{item.text}}</span>\n </span>\n <span class=\"menu-item-end-side\">\n <i class=\"far fa-angle-down drop-icon\" *ngIf=\"item.items && item.text\"></i>\n <i class=\"{{ item.endIcon }}\" *ngIf=\"item.endIcon\"></i>\n </span>\n\n </div>\n <ul *ngIf=\"item.items\" class=\"ax-sub-menu\">\n <ng-container *ngTemplateOutlet=\"recursiveMenu; context:{ $implicit: item.items }\">\n </ng-container>\n </ul>\n </li>\n </ng-container>\n</ng-template>","import {\n Component,\n Input,\n EventEmitter,\n Output,\n ElementRef,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n NgZone,\n ViewChild,\n ChangeDetectorRef,\n ContentChild,\n TemplateRef\n} from '@angular/core';\nimport { AXToolbarItem } from '../toolbar-item';\nimport { AXMenuComponent, AXMenuItemClickEvent } from '../../menu/menu.component';\nimport { AXMenuItem } from '@acorex/core';\n\n@Component({\n selector: 'ax-toolbar-menu',\n templateUrl: './toolbar-menu.component.html',\n providers: [{ provide: AXToolbarItem, useExisting: AXToolbarMenuComponent }],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXToolbarMenuComponent extends AXToolbarItem {\n \n constructor(\n private cdr: ChangeDetectorRef\n ) {\n super();\n }\n\n @ViewChild('menu', { static: true }) menu: AXMenuComponent\n\n @Output()\n onItemClick: EventEmitter<AXMenuItemClickEvent> = new EventEmitter<AXMenuItemClickEvent>();\n\n @ContentChild(TemplateRef, { static: true })\n _contentMenuTemplate: TemplateRef<any>;\n\n\n private _menuTemplate: TemplateRef<any>;\n @Input()\n public get menuTemplate(): TemplateRef<any> {\n return this._menuTemplate ? this._menuTemplate : this._contentMenuTemplate;\n }\n public set menuTemplate(v: TemplateRef<any>) {\n this._menuTemplate = v;\n }\n\n\n @Input()\n public selection: 'none' | 'single' | 'multiple' = 'none';\n\n private _items: AXMenuItem[];\n @Input()\n public get items(): AXMenuItem[] {\n return this._items;\n }\n public set items(v: AXMenuItem[]) {\n this._items = v;\n this.update();\n }\n\n\n handleItemClick(item?: AXMenuItemClickEvent) {\n this.onItemClick.emit(item);\n }\n\n\n public close(): void {\n // this.menu.close();\n }\n\n update() {\n //this.menu.update();\n this.cdr.detectChanges();\n }\n\n\n}\n","<div class=\"ax-toolbar-menu-container\">\n <ax-menu #menu [items]=\"items\" [selection]=\"selection\" (onItemClick)=\"handleItemClick($event)\" [menuTemplate]=\"menuTemplate\">\n </ax-menu>\n</div>","import { Component, Output, EventEmitter, ViewChild } from '@angular/core';\nimport { AXMenuItem } from '@acorex/core';\nimport { AXToolbarItem } from '../../../toolbar/toolbar-item';\nimport { AXToolbarMenuComponent } from '../../../toolbar/menu/toolbar-menu.component';\n\n\n\n\n@Component({\n selector: 'ax-toolbar-scheduler-view',\n template: `\n <ax-toolbar-menu [items]=\"items\" selection=\"single\" (onItemClick)=\"onItemClick($event)\"></ax-toolbar-menu>\n `,\n providers: [{ provide: AXToolbarItem, useExisting: AXToolbarSchedulerViewsComponent }]\n})\nexport class AXToolbarSchedulerViewsComponent {\n constructor() { }\n\n @ViewChild(AXToolbarMenuComponent, { static: true }) menu: AXToolbarMenuComponent;\n items: AXMenuItem[] = [];\n\n update(): void {\n this.menu.update();\n }\n\n @Output()\n onViewChanged: EventEmitter<string> = new EventEmitter<string>();\n\n onItemClick(e: AXMenuItem) {\n this.onViewChanged.emit(e.name);\n }\n\n}\n","import { Input, EventEmitter, OnDestroy } from '@angular/core';\nimport { AXDateTime, AXDateTimeRange, TimeUnit } from '@acorex/core';\nimport { Output, Directive } from '@angular/core';\nimport { AXSchedulerSlot, AXSchedulerEventChangeArgs, AXSchedulerEvent, AXSchedulerViewType } from '../scheduler.class';\n\n\n\n\n\n@Directive()\nexport abstract class AXSchedulerBaseViewComponent implements OnDestroy {\n\n type: AXSchedulerViewType;\n timeSlot: number = 1;\n\n interval: number = 1;\n\n abstract updateSize(): void;\n\n abstract next(): void;\n\n abstract prev(): void;\n\n abstract navigate(date: AXDateTime): void;\n\n get dateRange(): AXDateTimeRange {\n if (this.slots && this.slots.length) {\n return new AXDateTimeRange(this.slots[0].range.startTime, this.slots[this.slots.length - 1].range.startTime);\n }\n else {\n return null;\n }\n }\n\n\n today: AXDateTime = new AXDateTime();\n\n\n\n @Output()\n onNavigatorDateChanged: EventEmitter<AXDateTime> = new EventEmitter<AXDateTime>();\n\n private _navigatorDate: AXDateTime;\n public get navigatorDate(): AXDateTime {\n return this._navigatorDate;\n }\n public set navigatorDate(v: AXDateTime) {\n this._navigatorDate = v;\n this.onNavigatorDateChanged.emit(v);\n }\n\n events: AXSchedulerEvent[] = [];\n\n slots: AXSchedulerSlot[] = [];\n\n getEvents(range: AXDateTimeRange, unit: TimeUnit) {\n return this.events.filter(c => c.range.startTime.equal(range.startTime, unit))\n }\n\n ngAfterViewChecked(): void {\n this.updateSize();\n }\n\n @Output()\n onEventChanged: EventEmitter<AXSchedulerEventChangeArgs> = new EventEmitter<AXSchedulerEventChangeArgs>(true);\n\n\n ngOnDestroy(): void {\n if (this.onEventChanged) {\n this.onEventChanged.unsubscribe();\n }\n if (this.onNavigatorDateChanged) {\n this.onEventChanged.unsubscribe();\n }\n if (this.slots) {\n this.slots = null;\n }\n if (this.events) {\n this.events = null;\n }\n }\n\n\n onDragDropOnDay(e, time?: number) {\n const el = e.item.element.nativeElement as HTMLElement;\n if (e.previousContainer !== e.container) {\n el.style.opacity = '0';\n const r: AXSchedulerEventChangeArgs = new AXSchedulerEventChangeArgs();\n r.event = e.item.data;\n r.oldSlot = e.previousContainer.data;\n r.newSlot = e.container.data;\n //\n r.onComplete.subscribe((er: AXSchedulerEventChangeArgs) => {\n el.style.opacity = '1';\n if (!er.canceled) {\n const slotTime = er.newSlot.range.startTime.startOf();\n const z = er.event.range.startTime.clone();\n const durDay = slotTime.duration(z.startOf(), 'days');\n const durTime = slotTime.duration(z, 'hours');\n const eventRange = er.event.range;\n //\n // if (time && slotTime.add('hour', time).hour + eventRange.duration('hours') > 24) {\n // return;\n // }\n if (time) {\n return;\n }\n er.event.range.startTime = er.event.range.startTime.add('day', durDay);\n er.event.range.endTime = er.event.range.endTime.add('day', durDay);\n er.oldSlot.events = er.oldSlot.events.filter(c => c.uid !== er.event.uid);\n if (time) {\n er.event.range.startTime = er.event.range.startTime.set('hour', time);\n let durTime = er.event.range.startTime.duration(z, 'hours') % 24;\n er.event.range.endTime = er.event.range.endTime.add('hour', durTime);\n }\n er.newSlot.events.push(er.event);\n\n }\n });\n this.onEventChanged.emit(r);\n }\n }\n\n}","import { Component, ElementRef, ChangeDetectorRef, ViewEncapsulation } from '@angular/core';\nimport { AXSchedulerBaseViewComponent } from '../scheduler-view.component';\nimport { AXSchedulerSlot, AXSchedulerEvent } from '../../scheduler.class';\nimport { AXDateTime, AXDateTimeRange } from '@acorex/core';\n\n@Component({\n templateUrl: './scheduler-daytime-view.component.html',\n styleUrls: ['./scheduler-daytime-view.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: AXSchedulerBaseViewComponent, useExisting: AXSchedulerDayTimeViewComponent }]\n})\nexport class AXSchedulerDayTimeViewComponent extends AXSchedulerBaseViewComponent {\n constructor(private elm: ElementRef<HTMLDivElement>, private cdr: ChangeDetectorRef) { super(); }\n times: any[] = [];\n private vScroll: HTMLElement;\n private container: HTMLElement;\n private view: HTMLElement;\n private header: HTMLElement;\n private body: HTMLElement;\n\n ngOnInit(): void {\n }\n\n ngAfterViewInit(): void {\n this.vScroll = this.elm.nativeElement.querySelector<HTMLElement>('.v-scroll');\n this.header = this.elm.nativeElement.querySelector<HTMLElement>('.header');\n this.body = this.elm.nativeElement.querySelector<HTMLElement>('.body');\n this.view = this.elm.nativeElement.querySelector<HTMLElement>('.view');\n this.container = this.elm.nativeElement.closest('.view-container') as HTMLElement;\n }\n\n updateSize(): void {\n const firstTr = this.body.querySelector('tr');\n if (firstTr) {\n let index = 0;\n this.header.querySelectorAll('th').forEach(c => {\n const td = firstTr.children.item(index++) as HTMLElement;\n td.style.width = `${c.offsetWidth}px`;\n });\n this.vScroll.style.height = `calc(100% - ${this.header.clientHeight}px)`;\n if (this.container) {\n this.view.style.height = `${this.container.clientHeight}px`;\n }\n }\n this.arrangeEvents();\n }\n\n navigate(date: AXDateTime = new AXDateTime()) {\n this.times = [];\n this.slots = [];\n for (let i = 0; i < this.interval; i++) {\n const d = date.addDay(i);\n const range = new AXDateTimeRange(d, d);\n const slot: AXSchedulerSlot = {\n range,\n events: this.getEvents(range, 'day')\n };\n this.slots.push(slot);\n }\n for (let i = 0; i < 24; i++) {\n this.times.push({\n display: ('0' + i).slice(-2) + ':00',\n value: i\n });\n }\n this.navigatorDate = date;\n this.cdr.detectChanges();\n }\n\n next(): void {\n this.navigate(this.navigatorDate.addDay(this.interval));\n }\n prev(): void {\n this.navigate(this.navigatorDate.addDay(-this.interval));\n }\n\n arrangeEvents() {\n const events = this.elm.nativeElement.querySelectorAll<HTMLElement>('.event');\n if (events.length) {\n const height = events[0].closest('td').offsetHeight;\n events.forEach(e => {\n const uid = e.attributes.getNamedItem('data-uid').value;\n const event = this.events.find(c => c.uid === uid);\n const dur = Math.ceil(Math.abs(event.range.duration('hours')));\n let total = dur + 1;\n if (event.range.startTime.hour + total > 23) {\n total = 24 - event.range.startTime.hour;\n }\n e.style.height = (total * height) + 'px';\n });\n }\n }\n\n findEventIndex(event: AXSchedulerEvent): number {\n const a = this.events.filter(c =>\n c.range.startTime.equal(event.range.startTime, 'day')\n ).sort((d1, d2) => {\n return d1.range.startTime.compaireNew(d2.range.startTime);\n });\n\n return a.indexOf(event);\n }\n}\n","<div class=\"view ax-scheduler-day-time-view\">\n <table class=\"header\">\n <thead>\n <th class=\"time-column\"></th>\n <th *ngFor=\"let d of slots\" class=\"header-cell\">\n <div [class.same-week-day]=\"d.range.startTime.equal(today)\">\n {{d.range.startTime | dt: 'ddd'}}<br>\n {{d.range.startTime | dt: 'DD'}}\n </div>\n </th>\n </thead>\n </table>\n <div class=\"v-scroll\">\n <table class=\"body\" cdkDropListGroup>\n <tbody>\n <tr *ngFor=\"let t of times\">\n <td>\n {{t.display}}\n </td>\n <td *ngFor=\"let d of slots\" class=\"slot-cell\" cdkDropList [cdkDropListData]=\"d\"\n (cdkDropListDropped)=\"onDragDropOnDay($event,t.value)\" [attr.data-uid]=\"d.uid\">\n <div class=\"event-wrapper\">\n <ng-container *ngFor=\"let e of d.events\">\n <div *ngIf=\"e.range.startTime.hour==t.value\" class=\"event\"\n role=\"button\" aria-readonly=\"false\" aria-selected=\"true\" aria-grabbed=\"false\"\n cdkDrag [cdkDragData]=\"e\" \n [attr.data-uid]=\"e.uid\" [style.background-color]=\"e.color\" [title]=\"e.title\">\n <div class=\"event-title\">{{e.title}}</div>\n <div>\n <span>{{e.range.startTime | dt: 'HH:mm'}}</span> -\n <span>{{e.range.endTime | dt: 'HH:mm'}}</span>\n </div>\n <div *cdkDragPreview [style.background-color]=\"e.color\" class=\"event-drag-preview\">\n {{e.title}}\n </div>\n <div class=\"event-drag-placeholder\" *cdkDragPlaceholder></div>\n </div>\n </ng-container>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</div>","import { Component, ElementRef, ChangeDetectorRef, ViewEncapsulation, HostListener, NgZone } from '@angular/core';\nimport { AXSchedulerBaseViewComponent } from '../scheduler-view.component';\nimport { AXSchedulerEvent, AXSchedulerEventChangeArgs } from '../../scheduler.class';\nimport { AXDateTime, AXDateTimeRange } from '@acorex/core';\n\n@Component({\n templateUrl: './scheduler-month-view.component.html',\n styleUrls: ['./scheduler-month-view.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: AXSchedulerBaseViewComponent, useExisting: AXSchedulerMonthViewComponent }]\n})\nexport class AXSchedulerMonthViewComponent extends AXSchedulerBaseViewComponent {\n\n\n constructor(\n private elm: ElementRef<HTMLDivElement>,\n private zone: NgZone,\n private cdr: ChangeDetectorRef) {\n super();\n }\n\n @HostListener('wheel', ['$event'])\n onKeydownHandler(e: any) {\n if (e.deltaY > 0) {\n this.navigate(this.navigatorDate.addMonth(1))\n }\n else if (e.deltaY < 0) {\n this.navigate(this.navigatorDate.addMonth(-1))\n }\n }\n\n weekDays: any[] = [\n {\n index: 0, title: 'Sunday'\n },\n {\n index: 1, title: 'Moday'\n },\n {\n index: 2, title: 'Tuesday'\n },\n {\n index: 3, title: 'Wednesday'\n },\n {\n index: 4, title: 'Thursday'\n },\n {\n index: 5, title: 'Friday'\n },\n {\n index: 6, title: 'Saturday'\n }];\n startDayOfWeek = 'Moday';\n\n\n\n private container: HTMLElement;\n private view: HTMLElement;\n private header: HTMLElement;\n private body: HTMLElement;\n\n\n\n\n ngAfterViewInit(): void {\n this.header = this.elm.nativeElement.querySelector<HTMLElement>('.header');\n this.body = this.elm.nativeElement.querySelector<HTMLElement>('.body');\n this.view = this.elm.nativeElement.querySelector<HTMLElement>('.view');\n this.container = this.elm.nativeElement.closest('.view-container') as HTMLElement;\n\n }\n\n\n updateSize(): void {\n const firstTr = this.body.querySelector('tr');\n if (firstTr) {\n let index = 0;\n this.header.querySelectorAll('th').forEach(c => {\n const td = firstTr.children.item(index++) as HTMLElement;\n td.style.width = `${c.offsetWidth}px`;\n });\n this.body.style.height = `calc(100% - ${this.header.clientHeight}px)`;\n if (this.container) {\n this.view.style.height = `${this.container.clientHeight}px`;\n }\n }\n this.arrangeEvents();\n }\n\n matrixify(arr, rows, cols) {\n const matrix = [];\n if (rows * cols === arr.length) {\n for (let i = 0; i < arr.length; i += cols) {\n matrix.push(arr.slice(i, cols + i));\n }\n }\n return matrix;\n }\n\n matrixSlots: any;\n\n navigate(date: AXDateTime = new AXDateTime()) {\n\n const start = date.month.range.startTime.firstDayOfWeek;\n const end = date.month.range.startTime.endDayOfWeek;\n const dur = end.duration(start);\n this.slots = [];\n for (let i = 0; i < dur; i++) {\n const d = start.addDay(i);\n const range: AXDateTimeRange = new AXDateTimeRange(d, d);\n this.slots.push({\n range,\n events: this.getEvents(range, 'day'),\n uid: range.startTime.date.getTime().toString()\n });\n }\n const dayInWeek = 7;\n const rows = Math.floor(dur / dayInWeek);\n this.matrixSlots = this.matrixify(this.slots, rows, dayInWeek);\n this.navigatorDate = date;\n this.cdr.detectChanges();\n }\n\n\n next(): void {\n this.navigate(this.navigatorDate.addMonth(this.interval));\n }\n prev(): void {\n this.navigate(this.navigatorDate.addMonth(-this.interval));\n }\n\n arrangeEvents() {\n this.slots.forEach(slot => {\n const slotTd = this.elm.nativeElement.querySelector<HTMLElement>(`[data-uid='` + slot.uid + `']`);\n const viewMoreDiv = slotTd.querySelector<HTMLElement>('.view-more');\n let viewMore = 0;\n viewMoreDiv.style.display = 'none';\n const width = slotTd.offsetWidth;\n slot.events.forEach(event => {\n const e = slotTd.querySelector<HTMLElement>(`[data-uid='` + event.uid + `']`);\n if (e) {\n const dur = Math.ceil(Math.abs(event.range.duration()));\n e.style.visibility = 'unset';\n e.style.width = (dur * width) + 'px';\n e.style.top = ((this.findEventIndex(event)) * 25) + 'px';\n if (e.getBoundingClientRect().bottom >= slotTd.getBoundingClientRect().bottom) {\n viewMore++;\n e.style.visibility = 'hidden';\n viewMoreDiv.style.display = 'unset';\n viewMoreDiv.innerHTML = `+${viewMore} more`;\n }\n }\n });\n });\n }\n\n findEventIndex(event: AXSchedulerEvent): number {\n const a = this.events.filter(c =>\n c.range.startTime.equal(event.range.startTime, 'days')\n ).sort((d1, d2) => {\n const v = d1.range.startTime.compaireNew(d2.range.startTime, 'YMDhm');\n return v;\n });\n return a.indexOf(event);\n }\n\n private dragEnterSlot: HTMLElement;\n private dragPreview: HTMLElement;\n private dragHour: number = null;\n onDragStarted(event) {\n this.zone.runOutsideAngular(() => {\n this.dragEnterSlot = event.source.dropContainer.element.nativeElement;\n this.elm.nativeElement.addEventListener('mousemove', this.drageMouseMove.bind(this));\n });\n }\n onDragEntered(event) {\n this.dragPreview = document.querySelector<HTMLElement>('.cdk-drag-preview');\n this.dragEnterSlot = event.container.element.nativeElement;\n }\n onDragEnded(event) {\n this.dragEnterSlot = null;\n this.dragPreview = null;\n this.zone.runOutsideAngular(() => {\n this.elm.nativeElement.removeEventListener('mousemove', this.drageMouseMove.bind(this));\n });\n }\n\n private drageMouseMove(e: MouseEvent) {\n this.zone.runOutsideAngular(() => {\n if (!this.dragPreview) {\n this.dragPreview = document.querySelector<HTMLElement>('.cdk-drag-preview');\n }\n if (this.dragEnterSlot && this.dragPreview) {\n const diff = this.dragPreview.getBoundingClientRect().top - this.dragEnterSlot.getBoundingClientRect().top;\n const hour = Math.round((diff / this.dragEnterSlot.getBoundingClientRect().height) * 24);\n this.dragPreview.querySelector('.ax-sch-str').innerHTML = `${hour > 0 ? hour : 0}:00`;\n this.dragHour = hour;\n }\n });\n }\n\n onDragDropOnDay(e) {\n const el = e.item.element.nativeElement as HTMLElement;\n if (e.previousContainer !== e.container) {\n el.style.opacity = '0';\n const r: AXSchedulerEventChangeArgs = new AXSchedulerEventChangeArgs();\n r.event = e.item.data;\n r.oldSlot = e.previousContainer.data;\n r.newSlot = e.container.data;\n //\n r.onComplete.subscribe((er: AXSchedulerEventChangeArgs) => {\n el.style.opacity = '1';\n if (!er.canceled) {\n const slotTime = er.newSlot.range.startTime.startOf();\n const z = er.event.range.startTime.clone();\n const durDay = slotTime.duration(z.startOf(), 'days');\n er.event.range.startTime = er.event.range.startTime.add('day', durDay);\n if (this.dragHour != null) {\n er.event.range.startTime = er.event.range.startTime.set('hour', this.dragHour);\n er.event.range.startTime = er.event.range.startTime.set('minute', 0);\n }\n er.event.range.endTime = er.event.range.endTime.add('day', durDay);\n er.oldSlot.events = er.oldSlot.events.filter(c => c.uid !== er.event.uid);\n er.newSlot.events.push(er.event);\n }\n });\n this.onEventChanged.emit(r);\n }\n\n }\n\n}\n","<div class=\"view ax-sheduler-month-view\">\n <table class=\"header\">\n <thead>\n <th *ngFor=\"let d of weekDays\" class=\"header-cell\">\n <span [class.same-week-day]=\"d.index==today.dayInWeek\"> {{d.title}}</span>\n </th>\n </thead>\n </table>\n <table class=\"body\" cdkDropListGroup>\n <tbody>\n <tr *ngFor=\"let r of matrixSlots\">\n <td *ngFor=\"let d of r\" class=\"cell-slot\" cdkDropList [cdkDropListData]=\"d\"\n (cdkDropListDropped)=\"onDragDropOnDay($event)\" \n [attr.data-uid]=\"d.uid\">\n <div class=\"day-num\" [class.first-day-month]=\"d.range.startTime.dayInMonth==1\"\n [class.today]=\"d.range.startTime.equal(today)\">\n <ng-container *ngIf=\"d.range.startTime.dayInMonth==1\">\n {{d.range.startTime | dt: 'MMM'}}\n </ng-container>\n {{d.range.startTime | dt: 'DD'}}\n </div>\n <div class=\"event-wrapper\">\n <ng-container *ngFor=\"let e of d.events\">\n <div class=\"event ax-scheduler-event\" cdkDrag [cdkDragData]=\"e\" [attr.data-uid]=\"e.uid\"\n [style.background-color]=\"e.color\"\n (cdkDragStarted)=\"onDragStarted($event)\"\n (cdkDragEnded)=\"onDragEnded($event)\"\n (cdkDragEntered)=\"onDragEntered($event)\">\n <span class=\"ax-sch-str\">{{e.range.startTime | dt: 'HH:mm'}}</span><span\n class=\"event-title\">{{e.title}}</span><span>{{e.range.endTime | dt: 'HH:mm'}}</span>\n </div>\n </ng-container>\n </div>\n <div class=\"view-more\"></div>\n </td>\n </tr>\n </tbody>\n </table>\n</div>","\nimport { Component, OnInit, Input, Output, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild } from '@angular/core';\n\nimport { AXSchedulerViewType } from '../scheduler.class';\nimport { AXCalendarBoxComponent } from '../../calendar-box/calendar-box.component';\n\nimport { AXMenuItem, AXDateTime, AXDateTimeRange } from '@acorex/core';\nimport { AXToolbarItem } from '../../../toolbar/toolbar-item';\nimport { AXToolbarMenuComponent } from '../../../toolbar/menu/toolbar-menu.component';\nimport { AXPopoverComponent } from '../../../popover/popover.component';\nimport { AXValueEvent } from '../../../base/events.class';\n\n\n@Component({\n selector: 'ax-toolbar-scheduler-navigator',\n template: `\n <div id=\"nav\">\n <ax-toolbar-menu [items]=\"items\" (onItemClick)=\"onItemClick($event)\"></ax-toolbar-menu>\n <ax-popover target=\"#nav\" placement=\"bottom-end\" alignment=\"top-end\" #pop>\n <ax-calendar-box (onValueChanged)=\"onDateChange($event)\" [depth]=\"viewDepth\" #cal></ax-calendar-box>\n </ax-popover>\n</div>`,\n providers: [{ provide: AXToolbarItem, useExisting: AXToolbarSchedulerNavigatorComponent }],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AXToolbarSchedulerNavigatorComponent {\n constructor(private cdr: ChangeDetectorRef) { }\n\n @ViewChild(AXToolbarMenuComponent, { static: true })\n toolbar: AXToolbarMenuComponent;\n\n @ViewChild('pop', { static: true })\n pop: AXPopoverComponent;\n\n @ViewChild('cal', { static: true })\n cal: AXCalendarBoxComponent;\n\n viewDepth: string = 'day';\n\n\n items: AXMenuItem[] = [];\n\n ngAfterViewInit(): void {\n this.items = [\n {\n name: 'prev',\n startIcon: 'fas fa-angle-left',\n tooltip: 'Prev'\n },\n {\n name: 'today',\n text: 'Today',\n tooltip: 'Today'\n },\n {\n name: 'next',\n startIcon: 'fas fa-angle-right',\n tooltip: 'Next'\n },\n {\n name: 'current',\n\n }];\n }\n\n\n @Output()\n onNavigate: EventEmitter<'next' | 'back' | AXDateTime> = new EventEmitter<'next' | 'back' | AXDateTime>();\n\n onItemClick(e: AXMenuItem) {\n if (e.name === 'current') {\n this.pop.toggle();\n }\n else if (e.name === 'today') {\n this.goto(new AXDateTime());\n }\n else {\n this.onNavigate.emit(e.name as any);\n this.pop.close();\n }\n }\n\n\n onDateChange(e: AXValueEvent<AXDateTime>) {\n this.goto(e.value);\n }\n\n goto(date: AXDateTime) {\n this.onNavigate.emit(date);\n this.pop.close();\n }\n\n\n set(range: AXDateTimeRange, type: AXSchedulerViewType) {\n if (range) {\n let text: string = '';\n const calDate: AXDateTime = range.startTime;\n const sameDay = range.startTime.compaireNew(range.endTime, 'YMD') === 0;\n const sameMonth = range.startTime.compaireNew(range.endTime, 'YM') === 0;\n const sameYear = range.startTime.compaireNew(range.endTime, 'Y') === 0;\n if (type !== 'month' && sameDay) {\n text = range.startTime.format('MMMM DD, YYYY');\n }\n //\n else if (type !== 'month' && sameMonth && sameYear) {\n text = `${range.startTime.format('MMMM DD')} - ${range.endTime.format('DD, YYYY')}`;\n }\n else if (type !== 'month' && sameYear) {\n text = `${range.startTime.format('MMM DD')} - ${range.endTime.format('MMM DD, YYYY')}`;\n }\n else if (type !== 'month') {\n text = `${range.startTime.format('MMM DD, YYYY')} - ${range.endTime.format('MMM DD, YYYY')}`;\n }\n else if (type === 'month') {\n text = range.startTime.add('day', 15).format('MMMM YYYY');\n }\n this.items[3].text = text;\n if (type === 'month') {\n this.viewDepth = 'month';\n }\n else {\n this.viewDepth = 'day';\n }\n //\n this.cal.focusedValue = calDate;\n this.cal.navigate(calDate);\n this.pop.close();\n //\n this.toolbar.update();\n }\n }\n\n}\n","import { Component, ElementRef, ChangeDetectorRef, ViewEncapsulation } from '@angular/core';\nimport { AXSchedulerBaseViewComponent } from '../scheduler-view.component';\nimport { AXSchedulerSlot } from '../../scheduler.class';\nimport { AXDateTime, AXDateTimeRange } from '@acorex/core';\n\n@Component({\n templateUrl: './scheduler-agenda-view.component.html',\n styleUrls: ['./scheduler-agenda-view.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: AXSchedulerBaseViewComponent, useExisting: AXSchedulerAgendaViewComponent }]\n})\nexport class AXSchedulerAgendaViewComponent extends AXSchedulerBaseViewComponent {\n constructor(\n private elm: ElementRef<HTMLDivElement>,\n private cdr: ChangeDetectorRef\n ) {\n super();\n }\n\n hideEmptyDays: boolean = true;\n\n updateSize() {\n }\n\n\n navigate(date: AXDateTime = new AXDateTime()) {\n this.slots = [];\n for (let i = 0; i < this.interval; i++) {\n let d = date.addDay(i);\n const range = new AXDateTimeRange(d, d);\n const slot: AXSchedulerSlot = {\n range,\n events: this.getEvents(range, 'day')\n }\n if (this.hideEmptyDays && slot.events.length === 0) {\n continue;\n }\n this.slots.push(slot);\n }\n this.navigatorDate = date;\n this.cdr.detectChanges();\n }\n\n next(): void {\n this.navigate(this.navigatorDate.addDay(this.interval));\n }\n prev(): void {\n this.navigate(this.navigatorDate.addDay(-this.interval));\n }\n}\n","<div class=\"view ax-scheduler-agenda-view\">\n <table class=\"body\" cdkDropListGroup>\n <tbody *ngIf=\"slots.length; else elseTemplate\">\n <tr *ngFor=\"let slot of slots\" cdkDropList [cdkDropListData]=\"slot\" [attr.data-uid]=\"slot.uid\"\n (cdkDropListDropped)=\"onDragDropOnDay($event)\">\n <td class=\"day-column\">\n <div class=\"day-num\">{{slot.range.startTime | dt:\"DD\"}}</div>\n <div class=\"day-name\">{{slot.range.startTime | dt:\"ddd\"}}</div>\n </td>\n <td class=\"day-border\">\n <ul *ngIf=\"slot.events.length\">\n <li *ngFor=\"let e of slot.events\" [style.border-color]=\"e.color\" cdkDrag [cdkDragData]=\"e\"\n [attr.data-uid]=\"e.uid\">\n <div class=\"event-title\">{{e.title}}</div>\n <div class=\"event-time\">{{e.range.startTime | dt:\"HH:mm\"}} - <span\n *ngIf=\"e.range.duration('days')!=0 then a else b\"></span></div>\n <ng-template #a>\n {{e.range.endTime | dt:\"HH:mm\"}}\n </ng-template>\n <ng-template #b>\n {{e.range.endTime | dt:\"YYYY-MM-DD HH:mm\"}}\n </ng-template>\n\n <div *cdkDragPreview [style.background-color]=\"e.color\" class=\"event-drag-preview\">\n {{e.title}}\n </div>\n </li>\n </ul>\n <div *ngIf=\"!slot.events.length\" class=\"event-empty\">No events</div>\n </td>\n </tr>\n </tbody>\n <ng-template #elseTemplate>\n <tbody>\n <tr>\n <td colspan=\"2\">\n <div class=\"event-empty\">No events</div>\n </td>\n </tr>\n </tbody>\n </ng-template>\n </table>\n</div>","import { Component, OnInit, Input, ElementRef, ChangeDetectorRef, ViewEncapsulation } from '@angular/core';\nimport { AXSchedulerBaseViewComponent } from '../scheduler-view.component';\nimport { AXDateTime, AXDateTimeRange } from '@acorex/core';\nimport { AXSchedulerSlot } from '../../scheduler.class';\n\n@Component({\n templateUrl: './scheduler-timeline-view.component.html',\n styleUrls:['./scheduler-timeline-view.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: AXSchedulerBaseViewComponent, useExisting: AXSchedulerTimelineViewComponent }]\n})\nexport class AXSchedulerTimelineViewComponent extends AXSchedulerBaseViewComponent {\n constructor(private elm: ElementRef<HTMLDivElement>, private cdr: ChangeDetectorRef) { super(); }\n\n\n\n\n times: any[] = []\n\n //private hScroll: HTMLElement;\n private vScroll: HTMLElement;\n private container: HTMLElement;\n private view: HTMLElement;\n private header: HTMLElement;\n private body: HTMLElement;\n\n ngOnInit(): void {\n }\n\n ngAfterViewInit(): void {\n this.vScroll = this.elm.nativeElement.querySelector<HTMLElement>(\".v-scroll\");\n //this.hScroll = this.elm.nativeElement.querySelector<HTMLElement>(\".h-scroll\");\n this.header = this.elm.nativeElement.querySelector<HTMLElement>(\".header\");\n this.body = this.elm.nativeElement.querySelector<HTMLElement>(\".body\");\n this.view = this.elm.nativeElement.querySelector<HTMLElement>(\".view\");\n\n this.container = this.elm.nativeElement.closest(\".view-container\") as HTMLElement;\n // this.hScroll.addEventListener(\"scroll\", () => {\n // this.updateSize();\n // });\n }\n\n\n updateSize(): void {\n // let firstTr = this.body.querySelector('tr');\n // if (firstTr) {\n // let index = 0;\n // this.header.querySelectorAll('th').forEach(c => {\n // let td = firstTr.children.item(index++) as HTMLElement;\n // td.style.width = `${c.offsetWidth}px`;\n // })\n // this.vScroll.style.height = `calc(100% - ${this.header.clientHeight}px)`;\n // //this.vScroll.style.width = `${this.hScroll.clientWidth + this.hScroll.scrollLeft}px`;\n // if (this.container)\n // this.view.style.height = `${this.container.clientHeight}px`;\n // }\n }\n\n navigate(date: AXDateTime = new AXDateTime()) {\n this.navigatorDate = date;\n this.times=[];\n this.slots = [];\n for (let i = 0; i < this.interval; i++) {\n let d = date.addDay(i);\n let range = new AXDateTimeRange(d, d);\n let slot: AXSchedulerSlot = {\n range: range,\n events: this.getEvents(range, \"day\")\n }\n this.slots.push(slot);\n }\n for (let i = 0; i < 24; i++) {\n this.times.push({\n display:('0' + i).slice(-2) + \":00\",\n value:i\n });\n }\n this.cdr.detectChanges();\n }\n\n next(): void {\n this.navigate(this.navigatorDate.addDay(this.interval));\n }\n prev(): void {\n this.navigate(this.navigatorDate.addDay(-this.interval));\n }\n\n arrangeEvents()\n {\n \n }\n}\n","<div class=\"view ax-scheduler-timeline-view\">\n <table class=\"header\">\n <colgroup>\n <col *ngFor=\"let t of times\" class=\"time-column\"/>\n </colgroup>\n <tbody>\n <ng-container *ngFor=\"let d of slots\">\n <tr>\n <td class=\"header-cell\" [attr.colspan]=\"times.length\">\n <div [class.same-week-day]=\"d.range.startTime.equal(today)\">\n {{d.range.startTime | dt: 'MMM DD, dddd'}}\n </div>\n </td>\n </tr>\n <tr>\n <td *ngFor=\"let t of times\">\n <div>\n {{t.display}}\n </div>\n </td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n <!-- <div class=\"v-scroll\">\n <table class=\"body\">\n <tbody>\n <tr *ngFor=\"let t of times\">\n <td>\n {{t.display}}\n </td>\n <td *ngFor=\"let d of slots\" class=\"slot-cell\">\n <div class=\"event-wrapper\">\n <ng-container *ngFor=\"let e of d.events\">\n <div *ngIf=\"e.range.startTime.date.getHours()==t.value\" class=\"event\"\n [attr.data-uid]=\"e.uid\" [style.background-color]=\"e.color\">\n <div class=\"event-title\">{{e.title}}</div>\n <div>\n <span>{{e.range.startTime | dt: 'HH:mm'}}</span> -\n <span>{{e.range.endTime | dt: 'HH:mm'}}</span>\n </div>\n </div>\n </ng-container>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </div> -->\n</div>","import { Component, OnInit, Input, Output, EventEmitter, ChangeDetectorRef, ElementRef, ViewChild } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport { AXToolbarItem } from '../toolbar-item';\nimport { AXValueEvent } from '../../base/events.class';\nimport { AXBaseInputComponent } from '../../base/element.class';\n\n\n@Component({\n selector: 'ax-toolbar-search',\n templateUrl: './toolbar-search.component.html',\n styleUrls: ['./toolbar-search.component.scss'],\n providers: [{ provide: AXToolbarItem, useExisting: AXToolbarSearchComponent }]\n})\n\nexport class AXToolbarSearchComponent {\n constructor() { }\n\n private searchChangeObserver: any;\n\n @ViewChild('input', { static: true }) inputSearch: ElementRef;\n\n @Output()\n onValueChanged: EventEmitter<AXValueEvent<string>> = new EventEmitter<AXValueEvent<string>>();\n\n private _text: string;\n @Input()\n public get text(): string {\n return this._text;\n }\n public set text(v: string) {\n if (v !== this._text) {\n const old = this._text;\n this._text = v;\n this.onValueChanged.emit({\n component: this,\n value: v,\n oldValue: old\n });\n }\n }\n\n public focus() {\n this.inputSearch.nativeElement.focus();\n }\n\n onSearchChanged(text: string) {\n if (!this.searchChangeObserver) {\n Observable.create(observer => {\n\n this.searchChangeObserver = observer;\n })\n .pipe(debounceTime(500))\n .pipe(distinctUntilChanged())\n .subscribe(c => {\n this.text = c;\n });\n }\n this.searchChangeObserver.next(text);\n }\n}\n","<div class=\"search-bar\">\n <input #input type=\"text\" placeholder=\"جستجو ...\" (input)=\"onSearchChanged($event.target.value)\" />\n <i class=\"far fa-search text-secondary\"></i>\n</div>","import { EventEmitter } from '@angular/core';\n\n\n\nexport interface AXSortParams {\n field?: string;\n sort?: 'asc' | 'desc';\n}\nexport interface AXGroups {\n field?: string;\n}\n\nexport interface AXFilterParams {\n field?: string;\n filters?: AXFilterConditionParams[];\n}\n\nexport interface AXFilterConditionParams {\n dataType?: 'text' | 'number' | 'date';\n type?: 'contains' | 'equal' | 'notEqual';\n value?: any;\n}\n\nexport interface AXDataSourceReadParams {\n skip?: number;\n take?: number;\n sort?: AXSortParams;\n filter?: AXFilterParams[];\n searchText?: string;\n group?: AXDataSourceGroupParams;\n requestId?: any;\n extra?: any;\n}\n\nexport class AXDataSourceReceivedResult {\n result?: any;\n requestId?: any;\n}\n\nexport interface AXDataSourceGroupParams {\n parentData: any;\n keys: string[];\n fields: string[];\n}\n\n\nexport abstract class AXDataSourceRead {\n abstract fetch(params: AXDataSourceReadParams): void;\n abstract dataReceived: EventEmitter<any>;\n}","import { Component, ContentChild, EventEmitter, Input } from \"@angular/core\";\nimport { AXDataSourceReadParams, AXDataSourceRead, AXDataSourceReceivedResult } from './read-param';\nimport { AXBaseEvent, AXValueEvent } from '../base/events.class';\nimport { AXDataEvent } from '../base/events.class';\n\n\nexport class AXDataSourceReceivedEvent extends AXDataEvent<AXDataSourceReceivedResult>\n{\n\n}\n\n\n@Component({\n selector: \"ax-data-source\",\n template: \"<ng-content></ng-content>\"\n})\nexport class AXDataSourceComponent {\n\n onDataReceived: EventEmitter<AXDataSourceReceivedEvent> = new EventEmitter<AXDataSourceReceivedEvent>();\n onFetchStart: EventEmitter<AXBaseEvent> = new EventEmitter<AXBaseEvent>();\n\n @Input()\n provideData: (params: AXDataSourceReadParams) => Promise<any>;\n\n @Input()\n params: any;\n\n fetch(params: AXDataSourceReadParams) {\n this.onFetchStart.emit({ component: this });\n if (this.provideData) {\n if (params === null) {\n params = this.params === undefined ? null : this.params;\n } else {\n params.extra = this.params;\n }\n\n //\n this.provideData(params).then(_data => {\n const data: AXDataSourceReceivedResult = new AXDataSourceReceivedResult();\n data.result = _data;\n data.requestId = params == null ? null : params.requestId;\n this.onDataReceived.emit({\n component: this,\n data: data\n });\n });\n }\n }\n\n}\n","import {\n Component,\n OnInit,\n ContentChild,\n Input,\n ViewEncapsulation,\n ElementRef,\n ViewChild,\n ComponentRef,\n Output,\n EventEmitter,\n ChangeDetectorRef,\n NgZone,\n ViewContainerRef\n} from '@angular/core';\nimport { AXSchedulerViewsProperty, AXSchedulerViewProperty } from './scheduler-views.property';\nimport { AXToolbarSchedulerViewsComponent } from './toolbars/scheduler-toolbar-views';\nimport { AXSchedulerDayTimeViewComponent } from './views/daytime/scheduler-daytime-view.component';\nimport { ComponentPortal, CdkPortalOutlet } from '@angular/cdk/portal';\nimport { AXSchedulerBaseViewComponent } from './views/scheduler-view.component';\nimport { AXSchedulerMonthViewComponent } from './views/month/scheduler-month-view.component';\nimport { AXToolbarSchedulerNavigatorComponent } from './toolbars/scheduler-toolbar-navigator';\nimport { AXSchedulerAgendaViewComponent } from './views/agenda/scheduler-agenda-view.component';\nimport { AXSchedulerTimelineViewComponent } from './views/timeline/scheduler-timeline-view.component';\nimport { AXSchedulerEventChangeArgs, AXSchedulerEvent } from './scheduler.class';\nimport { AXMenuItem, AXDateTime } from '@acorex/core';\nimport { AXToolbarSearchComponent } from '../../toolbar/search/toolbar-search.component';\nimport { AXDataSourceComponent } from '../../data-source/datasource.component';\n\n\n\n\n@Component({\n selector: 'ax-scheduler',\n templateUrl: './scheduler.component.html',\n styleUrls: ['./scheduler.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class AXSchedulerComponent {\n constructor(\n private elm: ElementRef<HTMLDivElement>,\n private zone: NgZone,\n private cdr: ChangeDetectorRef\n ) { }\n\n @ViewChild(CdkPortalOutlet, { static: true })\n private portalOutlet: CdkPortalOutlet\n\n\n @ViewChild('container', { static: true })\n private container: ElementRef<HTMLElement>;\n\n @ContentChild(AXSchedulerViewsProperty, { static: true })\n private viewManager: AXSchedulerViewsProperty;\n\n @ContentChild(AXToolbarSchedulerViewsComponent, { static: true })\n private toolbarView: AXToolbarSchedulerViewsComponent;\n @ContentChild(AXToolbarSchedulerNavigatorComponent, { static: true })\n private toolbarNavigator: AXToolbarSchedulerNavigatorComponent;\n\n @ContentChild(AXToolbarSearchComponent, { static: true })\n searchInput: AXToolbarSearchComponent;\n\n @ContentChild(AXDataSourceComponent, { static: true })\n private dataSource: AXDataSourceComponent;\n\n view: AXSchedulerBaseViewComponent;\n\n\n private _currentView: string;\n @Input()\n public get currentView(): string {\n return this._currentView;\n }\n public set currentView(v: string) {\n this.setView(v);\n }\n\n private viewItems: AXMenuItem[] = [];\n private today = new AXDateTime();\n private navigatorDate = new AXDateTime();\n searchText: string;\n\n @Input()\n events: AXSchedulerEvent[] = [];\n\n @Output()\n onEventChanged: EventEmitter<AXSchedulerEventChangeArgs> = new EventEmitter<AXSchedulerEventChangeArgs>();\n\n setView(name: string) {\n this._currentView = name;\n if (this.viewManager.views) {\n this.viewItems.forEach(c => {\n c.selected = false;\n });\n this.viewItems.find(c => c.name == name).selected = true;\n const selected = this.viewManager.views.find(c => c.name == name);\n this.createView(selected);\n }\n }\n\n\n private createView(selected: AXSchedulerViewProperty) {\n this.startAnim();\n if (this.view) {\n this.view.ngOnDestroy();\n }\n let portal: ComponentPortal<AXSchedulerBaseViewComponent>;\n this.portalOutlet.detach();\n let interval = selected.interval;\n if (selected.type === 'day') {\n portal = new ComponentPortal<AXSchedulerBaseViewComponent>(AXSchedulerDayTimeViewComponent);\n }\n if (selected.type === 'week') {\n portal = new ComponentPortal<AXSchedulerBaseViewComponent>(AXSchedulerDayTimeViewComponent);\n interval = selected.interval * 7;\n }\n if (selected.type === 'month') {\n portal = new ComponentPortal<AXSchedulerBaseViewComponent>(AXSchedulerMonthViewComponent);\n }\n if (selected.type === 'agenda') {\n portal = new ComponentPortal<AXSchedulerBaseViewComponent>(AXSchedulerAgendaViewComponent);\n }\n if (selected.type === 'timeline') {\n portal = new ComponentPortal<AXSchedulerBaseViewComponent>(AXSchedulerTimelineViewComponent);\n }\n const compRef: ComponentRef<AXSchedulerBaseViewComponent> = this.portalOutlet.attach(portal);\n this.view = compRef.instance;\n this.view.type = selected.type;\n this.view.interval = interval;\n //\n this.view.onEventChanged.subscribe(e => {\n this.onEventChanged.emit(e);\n });\n this.view.onNavigatorDateChanged.subscribe((e) => {\n this.navigatorDate = e;\n this.setNavigatorText();\n this.startAnim();\n });\n this.refresh();\n }\n\n private setNavigatorText() {\n if (this.toolbarNavigator) {\n this.toolbarNavigator.set(this.view.dateRange, this.view.type);\n }\n }\n\n private startAnim() {\n this.container.nativeElement.classList.remove('ax-anim-fade-in-fwd');\n this.container.nativeElement.style.opacity = '0';\n setTimeout(() => {\n this.container.nativeElement.classList.add('ax-anim-fade-in-fwd');\n }, 250);\n }\n\n ngAfterViewInit(): void {\n setTimeout(_ => {\n this.viewManager.views.forEach(v => {\n this.viewItems.push({\n groupName: 'view',\n name: v.name,\n text: v.caption\n });\n });\n //\n this.dataSource.onDataReceived.subscribe((e:any) => {\n this.events = e;\n this.view.events = this.events;\n if (this.searchText && this.view.events && this.view.events.length) {\n this.navigatorDate = this.view.events[0].range.startTime;\n }\n if (this.navigatorDate) {\n this.view.navigate(this.navigatorDate);\n }\n else {\n this.view.navigate(this.today);\n }\n });\n //\n if (this.toolbarView) {\n this.toolbarView.onViewChanged.subscribe((c: any) => {\n this.currentView = c;\n });\n this.toolbarView.items = this.viewItems;\n }\n //\n if (this.toolbarNavigator) {\n this.toolbarNavigator.onNavigate.subscribe((c: any) => {\n if (c === 'next') {\n this.view.next();\n }\n else if (c === 'prev') {\n this.view.prev();\n }\n else {\n this.view.navigate(c);\n }\n });\n }\n if (this.searchInput) {\n this.searchInput.onValueChanged.subscribe((c: any) => {\n this.searchText = c;\n if (c) {\n this.viewItems.forEach(c => { c.visible = false; });\n const x: AXSchedulerViewProperty = new AXSchedulerViewProperty('agenda', 'Search', 'VIEW_SEARCH');\n x.interval = 100;\n this.createView(x);\n this.refresh();\n }\n else {\n this.viewItems.forEach(c => { c.visible = true; });\n this.setView(this._currentView);\n }\n this.toolbarView.update();\n });\n }\n //\n this.setView(this.currentView);\n this.refresh();\n });\n }\n\n ngAfterViewChecked(): void {\n this.updateSize();\n }\n\n private updateSize() {\n this.zone.runOutsideAngular(() => {\n const toolbar = this.elm.nativeElement.querySelector<HTMLElement>(\n '.ax-scheduler-toolbar'\n );\n if (toolbar) {\n this.container.nativeElement.style.height = `calc(100% - ${toolbar.clientHeight}px)`;\n }\n });\n }\n\n ngOnDestroy(): void {\n this.portalOutlet.detach();\n }\n\n refresh() {\n this.dataSource.fetch({\n searchText: this.searchText,\n });\n }\n\n}\n","<ng-content select=\"ax-scheduler-views\"></ng-content>\n<div class=\"ax-scheduler\">\n <div class=\"ax-scheduler-toolbar\" >\n <ng-content select=\"ax-toolbar\"></ng-content>\n </div>\n <div class=\"view-container\" #container>\n <ng-template cdkPortalOutlet></ng-template>\n </div>\n</div>","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\n\n\n@Component({\n selector: 'ax-toolbar',\n templateUrl: './toolbar.component.html',\n styleUrls: ['./toolbar.component.scss'],\n encapsulation:ViewEncapsulation.None\n})\nexport class AXToolbarComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void { }\n \n}\n","<div class=\"ax-toolbar\">\n <ng-content>\n </ng-content>\n</div>","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { AXToolbarItem } from '../toolbar-item';\n\n@Component({\n selector: 'ax-toolbar-title',\n template: `\n <ng-container *ngIf=\"text; else elseTemplate\">\n <div class=\"title\">{{text}}</div>\n </ng-container>\n <ng-template #elseTemplate>\n <ng-content></ng-content>\n </ng-template>`,\n styles: [`\n .title{\n height: 100%;\n display: flex;\n align-items: center;\n }\n `],\n providers: [{ provide: AXToolbarItem, useExisting: AXToolbarTitleComponent }]\n})\nexport class AXToolbarTitleComponent {\n constructor() { }\n\n private _text: string;\n @Input()\n public get text(): string {\n return this._text;\n }\n public set text(v: string) {\n if (v !== this._text) {\n this._text = v;\n }\n }\n}\n","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\nimport { AXToolbarItem } from \"../toolbar-item\";\nimport { AXBaseMenuItem } from '@acorex/core';\n\n@Component({\n selector: \"ax-toolbar-group-button\",\n template: `\n <div class=\"btn-group\" role=\"group\">\n <button\n type=\"button\"\n *ngFor=\"let item of items\"\n class=\"btn btn-sm {{ item.style }}\"\n [class.active]=\"item.selected\"\n (click)=\"onClick(item)\"\n [title]=\"item.tooltip\"\n >\n <i class=\"{{ item.icon }}\"></i>\n {{ item.text }}\n </button>\n </div>\n `,\n providers: [\n { provide: AXToolbarItem, useExisting: AXToolbarButtonGroupComponent }\n ]\n})\nexport class AXToolbarButtonGroupComponent {\n constructor() { }\n\n @Input()\n items: AXBaseMenuItem[] = [];\n\n @Output()\n itemClick: EventEmitter<AXBaseMenuItem> = new EventEmitter<AXBaseMenuItem>();\n\n @Input()\n mode: \"single\" | \"multiple\" = \"single\";\n\n onClick(item: AXBaseMenuItem) {\n if (this.mode == \"single\") {\n this.items.forEach(c => {\n c.selected = false;\n });\n item.selected = true;\n this.itemClick.emit(item);\n } else {\n if (item.selected) {\n item.selected = false;\n } else {\n item.selected = true;\n this.itemClick.emit(item);\n }\n }\n }\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXMenuItem } from '@acorex/core';\n\n@Component({\n selector: 'ax-menu-item',\n template: `\n <div class=\"ax-menu-item {{item.style}}\" [attr.data-level]=\"level\" (click)=\"showSubItems($event)\" [ngClass]=\"{'disabled': item.disable}\" >\n <i *ngIf=\"item.startIcon\" class=\"icon {{item.startIcon}}\"></i>\n <span class=\"text\">{{ item.text }}</span>\n <i *ngIf=\"item.endIcon\" class=\"icon {{item.endIcon}}\"></i>\n <i class=\"far fa-angle-down icon drop-icon\" *ngIf=\"item?.items?.length && item.text\"></i>\n </div>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class AXMenuItemComponent {\n @Input() item: AXMenuItem;\n @Input() level: number;\n @Output() showSubMenu = new EventEmitter<SubItemsEvent>();\n\n constructor(private element: ElementRef) { }\n\n showSubItems(event: Event) {\n event.stopPropagation();\n if (this.item?.items?.length) {\n this.showSubMenu.emit({ item: this.item, element: this.element, level: this.level });\n }\n }\n}\nexport interface SubItemsEvent {\n element: ElementRef;\n item: AXMenuItem;\n level: number;\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnDestroy,\n Output,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SubItemsEvent } from './menu-item.component';\nimport { Overlay, OverlayRef, ConnectedPosition } from '@angular/cdk/overlay';\nimport { TemplatePortal, ComponentPortal } from '@angular/cdk/portal';\nimport { AXMenuItem } from '@acorex/core';\n\n@Component({\n selector: 'ax-menu2',\n template: `\n <div class=\"ax ax-menu ax-menu-vertical\" [attr.data-level]=\"level\">\n <ax-menu-item\n *ngFor=\"let item of items\"\n [level]=\"level\"\n [item]=\"item\"\n (showSubMenu)=\"showSubmenu($event)\">\n </ax-menu-item>\n </div>\n `,\n styleUrls: ['./menu2.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class AXMenu2Component implements OnDestroy {\n subItemsOverlays = new Array<OverlayRef>();\n level: number = 0;\n\n @Input() items: AXMenuItem[];\n @Output() selected = new EventEmitter<AXMenuItem>();\n //@ViewChild(TemplateRef) template;\n\n constructor(\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef,\n private elementRef: ElementRef\n ) { }\n\n showSubmenu(event: SubItemsEvent) {\n const position: ConnectedPosition[] = [];\n if (event.level === 0) {\n position.push({\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n });\n } else {\n position.push({\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n });\n }\n\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(event.element)\n .withPositions(position);\n const overlayRef = this.overlay.create({\n positionStrategy,\n hasBackdrop: false,\n backdropClass: 'cdk-overlay-transparent-backdrop'\n });\n this.subItemsOverlays.push(overlayRef);\n const portal = new ComponentPortal(AXMenu2Component, this.viewContainerRef);\n\n const com = overlayRef.attach(portal);\n com.instance.level = event.level + 1;\n com.instance.items = event.item.items;\n }\n\n @HostListener('document:click', ['$event.target'])\n public onDocumentClick(target) {\n const clickedInside = this.elementRef.nativeElement.contains(target);\n if (!clickedInside) {\n this.hideOverlays();\n }\n }\n\n hideOverlays() {\n this.subItemsOverlays.forEach((o) => o.dispose());\n this.subItemsOverlays.length = 0;\n }\n ngOnDestroy() {\n this.hideOverlays();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXTooltipDirective } from './tooltip.directive';\n\n@NgModule({\n declarations: [AXTooltipDirective],\n imports: [ CommonModule ],\n exports: [AXTooltipDirective],\n providers: [],\n})\nexport class AXTooltipModule {}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXMenuComponent } from './menu.component';\nimport { AXMenu2Component } from './menu2.component';\nimport { AXMenuItemComponent } from './menu-item.component';\nimport { AXTooltipModule } from '../tooltip/tooltip.module';\n@NgModule({\n declarations: [AXMenuComponent, AXMenu2Component, AXMenuItemComponent],\n imports: [CommonModule,AXTooltipModule],\n exports: [AXMenuComponent, AXMenu2Component, AXMenuItemComponent],\n providers: []\n})\nexport class AXMenuModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXToolbarComponent } from './toolbar.component';\nimport { AXToolbarMenuComponent } from './menu/toolbar-menu.component';\nimport { AXToolbarSearchComponent } from './search/toolbar-search.component';\nimport { AXToolbarTitleComponent } from './title/toolbar-title.component';\nimport { AXToolbarButtonGroupComponent } from './group-button/toolbar-group-button.component';\nimport { AXPopoverModule } from '../popover/popover.module';\nimport { AXMenuModule } from '../menu/menu.module';\n\nconst COMPONENTS = [\n AXToolbarComponent,\n AXToolbarMenuComponent,\n AXToolbarSearchComponent,\n AXToolbarTitleComponent,\n AXToolbarButtonGroupComponent\n]\n\n@NgModule({\n declarations: [COMPONENTS],\n imports: [CommonModule, AXPopoverModule, AXMenuModule],\n exports: [COMPONENTS],\n providers: [],\n})\nexport class AXToolbarModule { }","import { NgModule } from '@angular/core';\nimport { AXSchedulerComponent } from './scheduler.component';\nimport { AXSchedulerViewsProperty, AXSchedulerViewProperty } from './scheduler-views.property';\nimport { AXSchedulerDayTimeViewComponent } from './views/daytime/scheduler-daytime-view.component';\nimport { AXToolbarSchedulerViewsComponent } from './toolbars/scheduler-toolbar-views';\nimport { AXCoreModule } from '@acorex/core';\nimport { AXSchedulerMonthViewComponent } from './views/month/scheduler-month-view.component';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { AXToolbarSchedulerNavigatorComponent } from './toolbars/scheduler-toolbar-navigator';\nimport { AXSchedulerAgendaViewComponent } from './views/agenda/scheduler-agenda-view.component';\nimport { AXSchedulerTimelineViewComponent } from './views/timeline/scheduler-timeline-view.component';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { AXCalendarBoxModule } from '../calendar-box/calendar-box.module';\n\nimport { CommonModule } from '@angular/common';\nimport { AXToolbarModule } from '../../toolbar/toolbar.module';\nimport { AXPopoverModule } from '../../popover/popover.module';\n\n@NgModule({\n declarations: [\n AXSchedulerComponent,\n AXSchedulerViewsProperty,\n AXSchedulerViewProperty,\n AXSchedulerDayTimeViewComponent,\n AXSchedulerMonthViewComponent,\n AXSchedulerAgendaViewComponent,\n AXSchedulerTimelineViewComponent,\n AXToolbarSchedulerViewsComponent,\n AXToolbarSchedulerNavigatorComponent\n ],\n imports: [CommonModule, AXCoreModule, AXCalendarBoxModule, AXToolbarModule, AXPopoverModule, PortalModule, DragDropModule],\n exports: [\n AXSchedulerComponent,\n AXSchedulerViewsProperty,\n AXSchedulerViewProperty,\n AXSchedulerDayTimeViewComponent,\n AXSchedulerMonthViewComponent,\n AXSchedulerAgendaViewComponent,\n AXSchedulerTimelineViewComponent,\n AXToolbarSchedulerViewsComponent,\n AXToolbarSchedulerNavigatorComponent\n ],\n providers: []\n})\nexport class AXSchedulerModule { }","import {\n Component,\n ViewEncapsulation,\n Output,\n EventEmitter,\n Input,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n ViewChild,\n ElementRef\n} from '@angular/core';\nimport { AXBaseComponent, AXBaseSizableComponent, AXBaseValueComponent, AXElementSize, AXValidatableComponent } from '../base/element.class';\nimport { AXValueEvent, AXHtmlEvent } from '../base/events.class';\n\nexport class AXCheckBoxItemClick extends AXHtmlEvent<MouseEvent> {\n value?: boolean;\n}\n\n@Component({\n selector: 'ax-check-box',\n templateUrl: './checkbox.component.html',\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: AXValidatableComponent, useExisting: AXCheckBoxComponent }],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AXCheckBoxComponent extends AXValidatableComponent implements AXBaseSizableComponent, AXBaseComponent, AXBaseValueComponent<boolean> {\n @ViewChild('input', { static: true }) input: ElementRef<HTMLInputElement>;\n\n @Input()\n readonly: boolean = false;\n\n @Input()\n disabled: boolean = false;\n\n @Input()\n size: AXElementSize = 'md';\n\n @Input()\n label: string = '';\n\n @Input()\n tabIndex: number = 0;\n\n @Input()\n indeterminate: boolean = false;\n\n focus(): void { }\n constructor(protected cdr: ChangeDetectorRef, private ref: ElementRef) {\n super();\n }\n // Value\n @Output()\n onValueChanged: EventEmitter<AXValueEvent<boolean>> = new EventEmitter<AXValueEvent<boolean>>();\n @Output()\n valueChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n //\n @Output()\n onClick: EventEmitter<AXCheckBoxItemClick> = new EventEmitter<AXCheckBoxItemClick>();\n\n private _value?: boolean = false;\n public get value(): boolean {\n return this._value;\n }\n\n @Input()\n public set value(v: boolean) {\n if (v != this._value && v !== undefined) {\n const old = this._value;\n this._value = v;\n this.valueChange.emit(v);\n this.onValueChanged.emit({\n component: this,\n value: v,\n oldValue: old,\n htmlElement: this.ref.nativeElement\n });\n }\n }\n\n // handelChange(e) {\n // const val = e.target.checked;\n // this.value = val;\n // }\n\n ngOnInit(): void {\n if (!this.indeterminate && this.value == null) {\n this.value = false;\n }\n }\n\n handleClick(e: MouseEvent) {\n e.preventDefault();\n e.stopPropagation();\n // setTimeout(() => {\n if (!this.disabled && !this.readonly) {\n //TODO: check intermddiate;\n this.value = !this.value;\n this.onClick.emit({\n component: this,\n htmlElement: this.ref.nativeElement,\n htmlEvent: e,\n value: this.value\n });\n }\n // }, 100);\n }\n}\n","<!-- <label class=\"ax checkbox {{size}}\" for=\"{{uid}}\" [ngClass]=\"{ 'disabled': disabled, 'readonly': readonly }\"\n (click)=\"handleClick($event)\">\n {{ label }}\n <input #input type=\"checkbox\" id=\"{{uid}}\" [readonly]=\"readonly\" [checked]=\"value\"\n [disabled]=\"disabled || readonly\" />\n <span class=\"checkmark\" [ngClass]=\"{'indeterminate': indeterminate && value == null}\"></span>\n\n</label> -->\n\n\n<!-- [(ngModel)]=\"value\" -->\n<!-- (click)=\"handleClick($event)\" -->\n\n<label class=\"ax-checkbox-container\" for=\"{{uid}}\" [ngClass]=\"{ 'disabled': disabled, 'readonly': readonly }\">\n\n <input #input class=\"ax-checkbox\" type=\"checkbox\" id=\"{{uid}}\" [readonly]=\"readonly\" [class.checked]=\"value\"\n [checked]=\"value\" [ngClass]=\"{'indeterminate': indeterminate && value == null}\" (click)=\"handleClick($event)\"\n [disabled]=\"disabled || readonly\" />\n\n\n <span>{{ label ? label : '&nbsp;' }}</span>\n</label>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { AXCheckBoxComponent } from './checkbox.component';\n@NgModule({\n declarations: [AXCheckBoxComponent],\n imports: [CommonModule, FormsModule],\n exports: [AXCheckBoxComponent],\n providers: []\n})\nexport class AXCheckBoxModule { }\n","import { Component, Input, ElementRef, HostListener, ViewChild, Output, EventEmitter } from '@angular/core';\nimport { AXMenuItem } from '@acorex/core';\nimport { AXElementSize } from '../base/element.class';\nimport { AXBaseEvent } from '../base/events.class';\n\n@Component({\n selector: 'ax-context-menu',\n templateUrl: './context-menu.component.html',\n host: { class: 'ax context-menu-container' }\n})\nexport class AXContextMenuComponent {\n @Input()\n size: AXElementSize = 'md';\n\n @Input()\n width: number;\n\n @Input()\n items: AXMenuItem[] = [];\n\n @Output()\n onItemClick: EventEmitter<any> = new EventEmitter<any>();\n\n @Output()\n onClosed: EventEmitter<AXBaseEvent> = new EventEmitter<AXBaseEvent>();\n\n @ViewChild('contex')\n contex: ElementRef<HTMLUListElement>;\n\n\n\n show: boolean = false;\n\n constructor(private container: ElementRef) {\n }\n\n ngAfterViewInit(): void {\n }\n\n close() {\n this.show = false;\n this.onClosed.emit({\n component: this\n });\n }\n\n\n\n open(_left, _top, _rtl = false) {\n this.show = true;\n setTimeout(() => {\n const containRec = this.container.nativeElement.getBoundingClientRect();\n let left = _rtl === false ? _left : _left - containRec.width;\n let top = _top;\n if (_rtl === false && _left + containRec.width > window.innerWidth) {\n left = window.innerWidth - containRec.width;\n } else if (_rtl === true && _left - containRec.width < 0) {\n left = 0;\n }\n if (top + containRec.height > window.innerHeight) {\n top = _top - containRec.height;\n }\n this.container.nativeElement.style.left = left + 'px';\n this.container.nativeElement.style.top = top + 'px';\n\n }, 5);\n\n\n }\n\n\n\n handleClickItem(item: AXMenuItem) {\n if (!item.disable || item.disable === undefined) {\n this.onItemClick.emit(item);\n }\n }\n}\n","<!-- <ul class=\"ax context-menu {{size}}\" [style.width.px]=\"width\">\n <ng-container *ngFor=\"let item of items\">\n <li class=\"context-menu-item\" [class.divider]=\"item.divider\" [class.disabled]=\"item.disable\">\n <div class=\"startIcon\">\n <i class=\"{{item.icon}}\"></i>\n <i class=\"{{item.startIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\n </div>\n <span>{{item.text}}</span>\n\n <div class=\"endIcon\">\n <i class=\"{{item.endIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\n <i class=\"far fa-angle-left ax-menu-item-drop-icon\"></i>\n </div>\n </li>\n </ng-container>\n\n</ul> -->\n\n<ul #contex class=\"ax context-menu {{size}}\" [style.width.px]=\"width\"\n [ngClass]=\"{'animate__animated animate__faster animate__fadeIn': show}\">\n <ng-container *ngTemplateOutlet=\"recursiveContextMenu; context:{ $implicit: items }\"></ng-container>\n</ul>\n\n<ng-template #recursiveContextMenu let-items>\n <li *ngFor=\"let item of items\" class=\"context-menu-item\" [class.divider]=\"item.divider\"\n [class.disabled]=\"item.disable\" (click)=\"handleClickItem(item)\">\n <div class=\"startIcon\">\n <i class=\"{{item.icon}}\"></i>\n <i class=\"{{item.startIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\n </div>\n <span>{{item.text}}</span>\n\n <div class=\"endIcon\">\n <i class=\"{{item.endIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\n <i class=\"far fa-angle-left ax-menu-item-drop-icon\" *ngIf=\"item.items?.length > 0\"></i>\n </div>\n <ul class=\"ax context-menu child\" *ngIf=\"item.items?.length > 0\">\n <ng-container *ngTemplateOutlet=\"recursiveContextMenu; context:{ $implicit: item.items }\">\n </ng-container>\n </ul>\n </li>\n</ng-template>","import { Directive, ElementRef, HostListener, Input, Output, EventEmitter, ComponentFactoryResolver, Injector, ViewContainerRef } from '@angular/core';\nimport { AXMenuItem } from '@acorex/core';\nimport { AXBaseEvent } from '../base/events.class';\nimport { AXContextMenuComponent } from './context-menu.component';\nimport { Subscription } from 'rxjs';\n\nexport type AXContextMenuPromiseFunction = (item: any) => Promise<AXMenuItem[]>;\nexport type AXContextMenuFunction = (item: any) => AXMenuItem[];\nexport class AXContextMenuItemClickEvent extends AXBaseEvent {\n dataItem?: any;\n menuItem: AXMenuItem;\n}\n\n@Directive({\n selector: '[axContextMenu]'\n})\nexport class AXContextMenuDirective {\n @Input()\n contextMenu: AXContextMenuComponent;\n\n @Input()\n contextDataItem: any;\n\n @Input()\n contextMenuItems: AXMenuItem[] | AXContextMenuPromiseFunction | AXContextMenuFunction;\n\n @Output()\n onContextMenuItemClick: EventEmitter<AXContextMenuItemClickEvent> = new EventEmitter<AXContextMenuItemClickEvent>();\n\n @Input()\n rtl: boolean = false;\n\n internalItems: AXMenuItem[] = [];\n\n private clickSubscribe: Subscription;\n private closeSubscribe: Subscription;\n\n @HostListener('contextmenu', ['$event'])\n onContextMenu(e: MouseEvent) {\n this.getMenuItems().then(items => {\n e.stopPropagation();\n e.preventDefault();\n this.createContextMenu();\n this.contextMenu.items = items;\n\n\n this.contextMenu.open(e.x, e.y, this.rtl);\n\n\n });\n }\n\n\n\n constructor(\n private ref: ElementRef,\n private factoryResolver: ComponentFactoryResolver,\n private viewContainerRef: ViewContainerRef,\n private injector: Injector\n ) {\n }\n\n ngOnInit(): void {\n if (this.rtl == null) {\n this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';\n }\n }\n\n createContextMenu(): void {\n const wrapper = document.createElement('div');\n wrapper.classList.add('ax-overlay-wrapper');\n wrapper.addEventListener('click', this.wrapperClick.bind(this));\n wrapper.addEventListener('contextmenu', this.wrapperRClick.bind(this));\n //\n document.body.appendChild(wrapper);\n const factory = this.factoryResolver.resolveComponentFactory(AXContextMenuComponent);\n const componentRef = this.viewContainerRef.createComponent(factory);\n this.contextMenu = componentRef.instance;\n wrapper.appendChild(componentRef.location.nativeElement);\n //\n this.clearComponentSubscriptions();\n this.createComponentSubscriptions();\n }\n\n wrapperClick(e: MouseEvent) {\n this.remove();\n }\n\n wrapperRClick(e: MouseEvent) {\n if (document.elementsFromPoint(e.clientX, e.clientY).includes(this.ref.nativeElement)) {\n e.stopPropagation();\n e.preventDefault();\n\n this.contextMenu.open(e.x, e.y, this.rtl);\n }\n else {\n e.preventDefault();\n this.remove();\n }\n }\n\n\n\n private clearComponentSubscriptions() {\n if (this.clickSubscribe) {\n this.clickSubscribe.unsubscribe();\n this.clickSubscribe = undefined;\n }\n if (this.closeSubscribe) {\n this.closeSubscribe.unsubscribe();\n this.closeSubscribe = undefined;\n }\n }\n\n private createComponentSubscriptions() {\n this.clickSubscribe = this.contextMenu.onItemClick.subscribe(c => {\n this.remove();\n this.onContextMenuItemClick.emit({\n component: this,\n dataItem: this.contextDataItem,\n htmlElement: this.ref.nativeElement,\n menuItem: c\n });\n }) as any;\n this.closeSubscribe = this.contextMenu.onClosed.subscribe(c => {\n this.clearComponentSubscriptions();\n }) as any;\n }\n\n private remove() {\n this.viewContainerRef.clear();\n this.clearComponentSubscriptions();\n document.querySelector('.ax-overlay-wrapper')?.remove();\n }\n\n private getMenuItems(): Promise<AXMenuItem[]> {\n return new Promise<AXMenuItem[]>((resolve, reject) => {\n if (typeof (this.contextMenuItems) === 'function') {\n const val = this.contextMenuItems(this.contextDataItem);\n if (val instanceof Promise) {\n val.then(_data => {\n resolve(_data);\n });\n } else {\n resolve(val);\n }\n } else if (Array.isArray(this.contextMenuItems)) {\n resolve(this.contextMenuItems);\n }\n else {\n resolve([]);\n }\n });\n }\n\n ngOnDestroy(): void {\n this.clearComponentSubscriptions();\n }\n}\n","import { NgModule, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXContextMenuComponent } from './context-menu.component';\nimport { AXContextMenuDirective } from './context-menu.directive';\n\n\n@NgModule({\n declarations: [AXContextMenuComponent, AXContextMenuDirective],\n imports: [CommonModule],\n exports: [AXContextMenuComponent, AXContextMenuDirective],\n providers: [],\n})\nexport class AXContextMenuModule {\n\n}","import { Input, ChangeDetectorRef, EventEmitter, Output, Directive } from '@angular/core';\n\nexport interface AXFilterColumn {\n field: string;\n caption: string;\n type?: 'text' | 'selection' | 'date' | 'number';\n options?: any;\n}\n\nexport interface AXFilterColumnGroup {\n caption?: string;\n columns: AXFilterColumn[];\n}\n\nexport interface AXFilterCondition {\n field: string;\n condition: string;\n dataType: 'string' | 'date' | 'datetime' | 'time' | 'number';\n value: any;\n}\n\nexport interface AXFilterPredefined {\n name: string;\n title: string;\n value: AXFilterCondition[];\n}\n\n@Directive()\nexport abstract class AXFilterColumnComponent {\n\n constructor(protected cdr: ChangeDetectorRef) {\n\n }\n operator: string = 'equal';\n value: any = null;\n @Input()\n field: string = null;\n\n @Output()\n valueChange: EventEmitter<void> = new EventEmitter<void>();\n\n\n @Output()\n activeChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n private _active: boolean;\n @Input()\n public get active(): boolean {\n return this._active;\n }\n public set active(v: boolean) {\n this._active = v;\n this.activeChange.emit(v);\n }\n\n\n abstract get condition(): AXFilterCondition;\n\n clear() {\n this.active = false;\n this.value = null;\n this.cdr.detectChanges();\n }\n\n setFilter(value: any, operator: string) {\n this.active = true;\n this.operator = operator;\n this.value = value;\n this.cdr.detectChanges();\n }\n}\n\n\n","import { AXSelectionList } from '@acorex/core';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n AXBaseComponent,\n AXBaseSizableComponent,\n AXElementSize,\n AXValidatableComponent,\n} from '../base/element.class';\n\n@Component({\n selector: 'ax-selection-list',\n templateUrl: './selection-list.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXSelectionListComponent\n extends AXValidatableComponent\n implements AXBaseSizableComponent, AXBaseComponent\n{\n private _selectedItems: any[] = [];\n\n @Input()\n readonly: boolean;\n\n @Input()\n value: boolean;\n\n @Input()\n disabled: boolean;\n\n @Input()\n size: AXElementSize = 'md';\n\n @Input()\n direction: string = 'horizontal';\n\n @Input()\n items: Array<AXSelectionList> = [];\n\n @Input()\n mode: string = 'single';\n\n @Input()\n textField: string = 'text';\n\n @Input()\n valueField: string = 'value';\n\n @Output()\n selectionChanged: EventEmitter<any> = new EventEmitter<any>();\n\n @Output()\n selectedItemsChange: EventEmitter<any[]> = new EventEmitter<any[]>();\n\n @Input()\n public get selectedItems(): any[] {\n return this._selectedItems || [];\n }\n public set selectedItems(v: any[]) {\n this._selectedItems = v;\n this.selectedItemsChange.emit(this.selectedItems);\n this.cdr.detectChanges();\n }\n\n @Output()\n selectedValuesChange: EventEmitter<any[]> = new EventEmitter<any[]>();\n\n @Input()\n public get selectedValues(): any[] {\n return this._selectedItems.map((c) => c[this.valueField]) || [];\n }\n public set selectedValues(v: any[]) {\n const old = this.selectedValues;\n if (v == null) {\n v = [];\n }\n if (JSON.stringify(old) != JSON.stringify(v)) {\n this.selectedItems = this.items.filter((c) =>\n v.includes(c[this.valueField])\n );\n this.selectedValuesChange.emit(this.selectedValues);\n }\n }\n\n ngAfterViewInit(): void {\n this.cdr.detectChanges();\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n super();\n }\n\n onCheckValueChange(value: any, checked: boolean) {\n if (!this.disabled) {\n if (this.mode === 'single') {\n this.selectedValues = [value];\n } else {\n if (checked) {\n if (!this.selectedValues.includes(value)) {\n this.selectedValues = [...this.selectedValues, ...[value]];\n }\n } else {\n this.selectedValues = this.selectedValues.filter((c) => c !== value);\n }\n }\n }\n }\n focus(): void {}\n\n onvalueChanged(e) {\n if (!this.disabled) {\n this.selectedItemsChange.emit([e]);\n }\n }\n\n checkBoxClick(e, data) {\n this.selectionChanged.emit({\n valueField: data[this.valueField],\n value: e.value,\n });\n }\n}\n","<ng-container\n *ngIf=\"mode == 'multiple'; then checkboxList; else radioButtonList\"\n></ng-container>\n<ng-template #checkboxList>\n <div class=\"ax selection-list {{ size }}\" [ngClass]=\"direction\">\n <ax-check-box\n label=\"{{ item[textField] }}\"\n *ngFor=\"let item of items\"\n [disabled]=\"item.disable || disabled\"\n [readonly]=\"item.readonly || readonly\"\n [value]=\"selectedValues.indexOf(item[valueField]) > -1\"\n (onValueChanged)=\"onCheckValueChange(item[valueField], $event.value)\"\n (onClick)=\"checkBoxClick($event, item)\"\n >\n </ax-check-box>\n </div>\n</ng-template>\n<ng-template #radioButtonList>\n <div\n style=\"flex-wrap: wrap-reverse; gap: 4p\"\n class=\"ax selection-list {{ size }}\"\n [ngClass]=\"direction\"\n >\n <label\n class=\"ax radio\"\n for=\"{{ uid }}\"\n [class.disabled]=\"disabled\"\n [class.readonly]=\"readonly\"\n *ngFor=\"let item of items\"\n (click)=\"onvalueChanged(item)\"\n >\n {{ item[textField] }}\n <input\n type=\"radio\"\n (change)=\"onCheckValueChange(item[valueField], true)\"\n [value]=\"item[valueField]\"\n [checked]=\"selectedValues == item[valueField]\"\n [name]=\"uid\"\n [disabled]=\"item.disable || disabled\"\n [readonly]=\"item.readonly || readonly\"\n />\n <span class=\"checkmark\"></span>\n </label>\n </div>\n</ng-template>\n","import {\n Component,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ViewChild,\n Input,\n ElementRef,\n AfterViewInit,\n HostListener,\n Output,\n EventEmitter,\n ChangeDetectorRef,\n ViewContainerRef,\n TemplateRef,\n OnDestroy,\n DebugElement\n} from '@angular/core';\nimport { AXBaseDropdownComponent } from '../base/element.class';\nimport { AXHtmlEvent } from '../base/events.class';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { AXConfig } from '@acorex/core';\n\n@Component({\n selector: 'ax-drop-down',\n templateUrl: './dropdown.component.html',\n styleUrls: ['./dropdown.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { style: 'display:contents;' }\n})\nexport class AXDropdownComponent extends AXBaseDropdownComponent implements AfterViewInit, OnDestroy {\n @ViewChild('baseTemplate') baseTemplate: TemplateRef<any>;\n @ViewChild('content', { static: false }) content: ElementRef<HTMLDivElement>;\n @ViewChild('endButtons', { static: false }) endButtons: ElementRef<HTMLDivElement>;\n @ViewChild('el', { static: true }) dropdownEL: ElementRef<HTMLDivElement>;\n\n @Input()\n rtl: boolean = AXConfig.get('layout.rtl');\n\n @Input()\n readonly: boolean = false;\n\n @Input()\n loading: boolean = false;\n\n @Output()\n dropdownToggle: EventEmitter<any> = new EventEmitter<any>();\n\n @Output()\n onButtonClick: EventEmitter<AXHtmlEvent<MouseEvent>> = new EventEmitter<AXHtmlEvent<MouseEvent>>();\n\n @HostListener('keydown', ['$event'])\n onKeydownHandler(e: KeyboardEvent) {\n if (!this.disabled && e.key === 'Enter' && e.type === 'keydown') {\n if (!this.readonly) {\n this.toggle();\n // this.dropdownToggle.emit({ mode: 'enter' });\n }\n }\n if (e.key === 'Escape') {\n if (this.isOpen) {\n this.close();\n e.stopPropagation();\n }\n }\n }\n\n @Input()\n dropdownWidth: string = \"300px\";\n\n private overlayRef: OverlayRef;\n private templatePortal: TemplatePortal;\n\n constructor(\n private cdr: ChangeDetectorRef,\n private ref: ElementRef<HTMLDivElement>,\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef\n ) {\n super();\n }\n\n ngOnInit(): void {\n if (this.rtl == null) {\n this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';\n }\n setTimeout(() => {\n this.ref.nativeElement.classList.add(this.rtl ? 'rtl' : 'ltr');\n this.dropdownEL.nativeElement.classList.add(this.rtl ? 'rtl' : 'ltr');\n }, 5);\n }\n ngAfterViewInit(): void {\n setTimeout(() => {\n if (this.endButtons && this.endButtons.nativeElement.childNodes.length !== 0) {\n this.content.nativeElement.style.paddingInlineEnd = `${this.endButtons.nativeElement.clientWidth}px`;\n }\n if (this.fitParent == true) {\n this.dropdownWidth = `${this.dropdownEL.nativeElement.offsetWidth}px`;\n }\n }, 5);\n }\n\n ngOnDestroy(): void {\n this.overlayRef?.detach();\n this.overlayRef?.dispose();\n }\n\n handleArrowClick(e: AXHtmlEvent<MouseEvent>) {\n setTimeout(() => {\n this.toggle();\n }, 0);\n }\n\n toggle() {\n if (this.disabled !== true) {\n this.isOpen ? this.close() : this.open();\n }\n }\n\n close() {\n if (!this.isOpen) {\n return;\n }\n this.overlayRef?.detach();\n this.dropdownToggle.emit({ mode: 'close' });\n }\n\n open() {\n if (this.isOpen) {\n return;\n }\n this.ensureOverlayCreated();\n this.overlayRef.attach(this.templatePortal);\n this.dropdownToggle.emit({ mode: 'open' });\n }\n\n private ensureOverlayCreated() {\n if (!this.overlayRef) {\n const targetEl = document.querySelector<HTMLElement>('#' + this.uid);\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(targetEl)\n .withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n },\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom'\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top'\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom'\n }\n ])\n .withPush(false);\n this.overlayRef = this.overlay.create({\n positionStrategy,\n\n //width: this.dropdownEL.nativeElement.clientWidth,\n scrollStrategy: this.overlay.scrollStrategies.reposition({\n autoClose: true\n }),\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop'\n });\n this.overlayRef.setDirection(this.rtl ? 'rtl' : 'ltr');\n this.overlayRef.backdropClick().subscribe(() => this.close());\n }\n if (!this.templatePortal) {\n this.templatePortal = new TemplatePortal(this.baseTemplate, this.viewContainerRef);\n }\n }\n\n get isOpen(): boolean {\n return this.overlayRef ? this.overlayRef.hasAttached() : false;\n }\n\n updatePosition(): void {\n this.overlayRef?.updatePosition();\n }\n focus() { }\n}\n","<div class=\"ax form-item {{size}}\" [class.readonly]=\"readonly\" [attr.id]=\"uid\" [class.disabled]=\"disabled\" #el>\n <div class=\"ax items-wrapper\">\n <ng-content select=\"[start]\">\n </ng-content>\n </div>\n <div class=\"content\">\n <ng-content select=\"ng-container[header]\">\n </ng-content>\n </div>\n <div class=\"ax items-wrapper\">\n <ax-button *ngIf=\"showDropDownButton\" [disabled]=\"disabled || readonly\" [loading]=\"loading\"\n icon=\"far fa-angle-down icon\" type=\"light blank\" [size]=\"size\" (click)=\"handleArrowClick($event)\"\n [tabIndex]=\"-1\">\n </ax-button>\n <ng-content select=\"[end]\">\n </ng-content>\n </div>\n</div>\n\n<ng-template #baseTemplate>\n <!-- [ngStyle]=\"{'width': dropdownWidth ? dropdownWidth + 'px' : 'unset'}\" -->\n <div class=\"ax-dropdown-container-bordered\" [ngStyle]=\"{'width': dropdownWidth !== '0px' ? dropdownWidth : 'unset'}\">\n <ng-content select=\"ng-container[panel]\">\n </ng-content>\n </div>\n</ng-template>","import { Component, ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef, ViewChild, ElementRef, Input } from '@angular/core';\nimport { AXBaseTextComponent, AXValidatableComponent } from '../base/element.class';\n\n@Component({\n selector: 'ax-text-box',\n templateUrl: './textbox.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { style: 'width: 100%' },\n providers: [{ provide: AXValidatableComponent, useExisting: AXTextBoxComponent }]\n})\nexport class AXTextBoxComponent extends AXBaseTextComponent {\n\n @Input()\n mask: any;\n\n @Input()\n showMask = false;\n\n @Input()\n type: 'text' | 'number' | 'tel' | 'url' | 'password' | 'search' = 'text';\n\n @Input()\n maxLength: number;\n\n @Input()\n maskGuid: boolean = false;\n\n @Input()\n maskPlaceholder: string = '_';\n\n @Input()\n maskKeepCharPositions: boolean = false;\n\n constructor(protected cdr: ChangeDetectorRef, ref: ElementRef) {\n super(cdr, ref);\n }\n}\n","<div class=\"ax form-item\" [class.disabled]=\"disabled\" [attr.id]=\"uid\" #fc>\n <div class=\"ax items-wrapper\">\n <ng-content select=\"[start]\"> </ng-content>\n <i class=\"form-item-icon {{ icon }}\" *ngIf=\"icon\"></i>\n </div>\n <div class=\"content\" #content>\n <div class=\"ax form-control input {{ size }}\" [class.disabled]=\"disabled\" [class.readonly]=\"readonly\"\n [class.icon]=\"icon\">\n <input #input [autocomplete]=\"autocomplete\" [name]=\"name\" class=\"ax {{ size }}\" [attr.type]=\"type\"\n [attr.maxlength]=\"maxLength\" [mask]=\"mask\" [showMaskTyped]=\"showMask\" [(ngModel)]=\"value\"\n placeholder=\"{{ placeholder }}\" [readonly]=\"readonly\" [disabled]=\"disabled\" [ngClass]=\"setTextAlign()\"\n [class.clear]=\"value && allowClear\" (focus)=\"handleInputFocus($event)\" (blur)=\"handleInputBlur($event)\" />\n </div>\n </div>\n <div class=\"ax items-wrapper\">\n <ax-button *ngIf=\"value && allowClear\" icon=\"far fa-times\" type=\"danger blank\" (click)=\"clear()\"></ax-button>\n <ng-content select=\"[end]\"> </ng-content>\n </div>\n</div>","import { AXCalendarType, AXConfig, AXDateTime } from '@acorex/core';\nimport {\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n AXBaseSizableComponent,\n AXElementSize,\n AXValidatableComponent,\n} from '../base/element.class';\nimport { AXValueEvent } from '../base/events.class';\nimport { AXDropdownComponent } from '../dropdown/dropdown.component';\nimport { AXTextBoxComponent } from '../textbox/textbox.component';\nimport { AXValidation } from '../validation/validation.component';\n\nexport class AXDataPickerChangeEvent extends AXValueEvent<Date> {\n isUserChange: boolean;\n}\n\n@Component({\n selector: 'ax-date-picker',\n templateUrl: './date-picker.component.html',\n styleUrls: ['./date-picker.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: AXValidatableComponent, useExisting: AXDatePickerComponent },\n ],\n host: { style: 'width: 100%' },\n})\nexport class AXDatePickerComponent\n extends AXValidatableComponent\n implements AXBaseSizableComponent\n{\n @ViewChild('dropdown', { static: true })\n dropdown: AXDropdownComponent;\n\n @ViewChild('input', { static: true })\n input: AXTextBoxComponent;\n\n @Input()\n dayStyle = [];\n\n @Input()\n dayMinMaxResoan = '';\n\n // mmddyyyy: any = [/[0-1]/, /[0-9]/, '-', /[0-1]/, /[0-9]/, '-', /[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/];\n yyyyMMdd: any = '0000/00/00';\n ddMMyyyy: any = '00/00/0000';\n yyyyddMM: any = '0000-00-00';\n // yyyyMMdd1: any = [/[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/, '/', /[0-1]/, /[0-9]/, '/', /[0-3]/, /[0-9]/];\n // ddMMyyyy2: any = [/[0-3]/, /[0-9]/, '/', /[0-1]/, /[0-9]/, '/', /[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/];\n // yyyyddMM3: any = [/[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/, '/', /[0-3]/, /[0-9]/, '/', /[0-1]/, /[0-9]/];\n\n @ContentChild(AXValidation, { static: true })\n private _contentValidation: AXValidation;\n private _validation: AXValidation;\n\n @Input()\n public get validation(): AXValidation {\n return this._validation ? this._validation : this._contentValidation;\n }\n\n public set validation(v: AXValidation) {\n this._validation = v;\n }\n\n @Input() placeholder: string = '';\n\n @Input()\n min: Date;\n\n @Input()\n max: Date;\n\n @Input()\n readonly: boolean;\n\n @Input()\n disabled: boolean;\n\n @Input()\n allowClear: boolean = false;\n\n @Input()\n textAlign: 'right' | 'left' | null = null;\n\n @Input()\n showToday: boolean = false;\n\n @Input()\n selectableHoliday: boolean = true;\n\n @Input()\n dateType: any;\n\n @Input()\n showTodayButton: boolean = true;\n\n @Input()\n openByClick: boolean = false;\n\n cursorPosition: number = 0;\n\n model: any = null;\n text: string;\n\n _renderPicker: boolean = false;\n\n constructor(private ref: ElementRef, private cdr: ChangeDetectorRef) {\n super();\n // set defaults\n if (AXConfig.get('dateTime.type')) {\n this.type = AXConfig.get('dateTime.type');\n }\n }\n\n @Input()\n size: AXElementSize = 'md';\n\n @Output()\n typeChange: EventEmitter<AXCalendarType> = new EventEmitter<AXCalendarType>();\n\n private _type: AXCalendarType = 'gregorian';\n\n @Input()\n public get type(): AXCalendarType {\n return this._type;\n }\n\n public set type(v: AXCalendarType) {\n if (v != this._type) {\n this._type = v;\n if (this._value) {\n this.value = this._value.date;\n }\n this._setDateType();\n this.typeChange.emit(v);\n }\n }\n\n selectToday() {\n this.value = new Date();\n }\n\n focus(): void {\n // this.dropdown.focus();\n this.input.focus();\n }\n\n convertMaskToDate(text: string) {\n if (this.type == 'jalali') {\n var d = new AXDateTime().convertStringToGregorian(text, 'YYYY/M/D');\n } else {\n var d = new Date(new AXDateTime(text, 'gregorian').toISOString());\n }\n\n return d;\n }\n\n convertMask(date: string) {\n let y;\n let m;\n let d;\n switch (this.dateType) {\n case this.yyyyMMdd:\n y = date.slice(0, 4);\n m = date.slice(5, 7);\n d = date.slice(8, 10);\n break;\n case this.ddMMyyyy:\n y = date.slice(6, 10);\n m = date.slice(3, 5);\n d = date.slice(0, 2);\n break;\n case this.yyyyddMM:\n y = date.slice(0, 4);\n m = date.slice(8, 10);\n d = date.slice(5, 7);\n break;\n }\n\n return { year: y, monnth: m, day: d };\n }\n\n textChange(e) {\n this.text = e.value;\n const date = this.convertMask(this.text);\n\n if (\n this.text &&\n this.text.indexOf('_') === -1 &&\n this.text.length == 10 &&\n this.type == 'jalali'\n ) {\n this.userChange = e.isUserChange;\n\n this.value = this.convertMaskToDate(\n date.year + '-' + date.monnth + '-' + date.day\n );\n } else if (\n this.text &&\n this.text.indexOf('_') === -1 &&\n this.text.length == 10 &&\n this.type == 'gregorian'\n ) {\n this.userChange = e.isUserChange;\n this.value = this.convertMaskToDate(\n date.year + '-' + date.monnth + '-' + date.day\n );\n }\n }\n\n ngOnInit(): void {\n this._setDateType();\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.text = this._value?.toString();\n if (this.showToday && !this.value) {\n this.selectToday();\n }\n this.cdr.markForCheck();\n });\n }\n\n ngAfterContentInit(): void {\n this.initValidation(this.ref, 'value', this.validation);\n }\n\n clear() {\n this.userChange = true;\n this.value = null;\n }\n\n userChange: boolean = false;\n\n @Output()\n onValueChanged: EventEmitter<AXDataPickerChangeEvent> =\n new EventEmitter<AXDataPickerChangeEvent>();\n\n @Output()\n valueChange: EventEmitter<Date> = new EventEmitter<Date>();\n\n private _value: AXDateTime;\n @Input()\n public get value(): Date {\n return this._value?.date;\n }\n public set value(v: Date) {\n this.validate();\n const oldValue = this._value;\n const old = this.value;\n\n if (v) {\n this._value = new AXDateTime(v, this.type);\n } else {\n this._value = null;\n }\n let unValidDate = false;\n if (this.max || this.min) {\n unValidDate = this.isInMInMaxRange(AXDateTime.convert(v));\n }\n\n if (!unValidDate) {\n if (\n (!v && oldValue) ||\n (this._value && !this._value.equal(oldValue, 'day'))\n ) {\n this.text = this._value?.toString();\n setTimeout(() => {\n this.valueChange.emit(v);\n this.onValueChanged.emit({\n component: this,\n oldValue: old,\n value: v,\n isUserChange: this.userChange,\n });\n }, 100);\n }\n } else {\n this.text = '';\n }\n this.userChange = false;\n }\n\n private _setDateType() {\n switch (this.dateType) {\n case 'yyyyMMdd':\n this.dateType = this.yyyyMMdd;\n break;\n case 'ddMMyyyy':\n this.dateType = this.ddMMyyyy;\n break;\n case 'yyyyddMM':\n this.dateType = this.yyyyddMM;\n break;\n\n default:\n if (this.type == 'gregorian') {\n this.dateType = this.ddMMyyyy;\n } else if (this.type == 'jalali') {\n this.dateType = this.yyyyMMdd;\n }\n break;\n }\n }\n\n isInMInMaxRange(d) {\n let r = false;\n if (d !== undefined) {\n if (this.min && !this.max) {\n r =\n d.compaireNew(\n new AXDateTime(this.min, this.type),\n 'YMD',\n this.type\n ) === -1;\n }\n if (this.max && !this.min) {\n r =\n d.compaireNew(\n new AXDateTime(this.max, this.type),\n 'YMD',\n this.type\n ) === 1;\n }\n if (this.min && this.max) {\n r =\n d.compaireNew(\n new AXDateTime(this.min, this.type),\n 'YMD',\n this.type\n ) === -1 ||\n d.compaireNew(\n new AXDateTime(this.max, this.type),\n 'YMD',\n this.type\n ) === 1;\n }\n }\n return r;\n }\n\n onDateChange(e) {\n this.userChange = true;\n this.dropdown.close();\n\n //this.clearValidationStyle(this.ref.nativeElement);\n }\n\n onClick(e) {\n this.userChange = true;\n this.dropdown.close();\n }\n\n onStartfocus() {\n if (this.text == undefined || this.text == null || this.text == '') {\n this.input.input.nativeElement.style.caretColor = 'transparent';\n setTimeout(() => {\n this.setCaretPosition(this.input.input.nativeElement, 0);\n this.cursorPosition = 0;\n this.input.input.nativeElement.style.caretColor = 'auto';\n }, 0);\n }\n }\n\n handleInputFocus() {\n if (this.openByClick) {\n this._renderPicker = true;\n this.dropdown.open();\n } else {\n this.onStartfocus();\n }\n\n // this.input.input.nativeElement.focus();\n }\n handleInputBlur() {\n if (this.text && this.text.indexOf('_') != -1) {\n this.text = '';\n this.value = null;\n }\n }\n\n handleButtonClick() {\n this._renderPicker = true;\n setTimeout(() => {\n this.dropdown.toggle();\n });\n }\n\n handleKeyPress(e: KeyboardEvent) {\n if (e.type == 'keydown' || e.type == 'keypress' || e.type == 'keyup') {\n if (e.key === 'Delete') {\n e.preventDefault();\n }\n if (e.key === 'Backspace') {\n }\n if (e.key === 'ArrowLeft' || e.key === 'ArrowRight') {\n if (\n this.input.input.nativeElement.selectionStart ||\n this.input.input.nativeElement.selectionStart === 0\n ) {\n this.cursorPosition = this.input.input.nativeElement.selectionStart;\n }\n }\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n\n const inputChar = String.fromCharCode(e.charCode);\n if (this.text != undefined) {\n const ind1 = this.text.charAt(0);\n const ind2 = this.text.charAt(1);\n const ind3 = this.text.charAt(2);\n const ind4 = this.text.charAt(3);\n const ind5 = this.text.charAt(4);\n const ind6 = this.text.charAt(5);\n const ind7 = this.text.charAt(6);\n const ind8 = this.text.charAt(7);\n const ind9 = this.text.charAt(8);\n const ind10 = this.text.charAt(9);\n switch (this.dateType.mask) {\n case this.yyyyMMdd:\n if (e.type == 'keypress') {\n this.handleClick();\n if (\n (ind6 == '1' && ind7 == '_' && inputChar >= '3') ||\n (((ind6 == '0' && ind7 == '_') ||\n (ind9 == '0' && ind10 == '_')) &&\n inputChar == '0')\n ) {\n e.preventDefault();\n } else if (ind9 == '3' && ind10 == '_') {\n if (ind6 + ind7 <= '06' && inputChar >= '2') {\n e.preventDefault();\n } else if (ind6 + ind7 > '06' && inputChar >= '1') {\n e.preventDefault();\n }\n }\n }\n if (this.text.indexOf('_') === -1 && this.text !== '') {\n if (e.type === 'keydown') {\n if (e.key === 'ArrowUp') {\n if (this.cursorPosition <= 4) {\n this.text =\n String(Number(ind1 + ind2 + ind3 + ind4) + 1) +\n ind5 +\n ind6 +\n ind7 +\n ind8 +\n ind9 +\n ind10;\n }\n if (this.cursorPosition >= 5 && this.cursorPosition <= 7) {\n if (Number(ind6 + ind7) < 12) {\n if (Number(ind6 + ind7) < 9) {\n this.text =\n ind1 +\n ind2 +\n ind3 +\n ind4 +\n ind5 +\n '0' +\n String(Number(ind6 + ind7) + 1) +\n ind8 +\n ind9 +\n ind10;\n } else {\n this.text =\n ind1 +\n ind2 +\n ind3 +\n ind4 +\n ind5 +\n String(Number(ind6 + ind7) + 1) +\n ind8 +\n ind9 +\n ind10;\n }\n } else {\n this.text =\n ind1 +\n ind2 +\n ind3 +\n ind4 +\n ind5 +\n '01' +\n ind8 +\n ind9 +\n ind10;\n }\n }\n if (this.cursorPosition >= 8) {\n if (Number(ind9 + ind10) < 31) {\n if (Number(ind9 + ind10) < 9) {\n this.text =\n ind1 +\n ind2 +\n ind3 +\n ind4 +\n ind5 +\n ind6 +\n ind7 +\n ind8 +\n '0' +\n String(Number(ind9 + ind10) + 1);\n } else {\n this.text =\n ind1 +\n ind2 +\n ind3 +\n ind4 +\n ind5 +\n ind6 +\n ind7 +\n ind8 +\n String(Number(ind9 + ind10) + 1);\n }\n } else {\n this.text =\n ind1 +\n ind2 +\n ind3 +\n ind4 +\n ind5 +\n ind6 +\n ind7 +\n ind8 +\n '01';\n }\n }\n // this.input.input.nativeElement.style.caretColor = 'transparent';\n // setTimeout(() => {\n // this.setCaret();\n // e.preventDefault();\n // this.input.input.nativeElement.style.caretColor = 'auto';\n // }, 0);\n // e.preventDefault();\n } else if (e.key === 'ArrowDown') {\n if (this.cursorPosition <= 4) {\n this.text =\n String(Number(ind1 + ind2 + ind3 + ind4) - 1) +\n ind5 +\n ind6 +\n ind7 +\n ind8 +\n ind9 +\n ind10;\n } else if (\n this.cursorPosition > 4 &&\n this.cursorPosition <= 7\n ) {\n if (Number(ind6 + ind7) > 1) {\n if (Number(ind6 + ind7) < 11) {\n this.text =\n ind1 +\n ind2 +\n ind3 +\n ind4 +\n ind5 +\n '0' +\n String(Number(ind6 + ind7) - 1) +\n ind8 +\n ind9 +\n ind10;\n } else {\n this.text =\n ind1 +\n ind2 +\n ind3 +\n ind4 +\n ind5 +\n String(Number(ind6 + ind7) - 1) +\n ind8 +\n ind9 +\n ind10;\n }\n } else {\n this.text =\n ind1 +\n ind2 +\n ind3 +\n ind4 +\n ind5 +\n '12' +\n ind8 +\n ind9 +\n ind10;\n }\n } else if (this.cursorPosition >= 8) {\n if (Number(ind9 + ind10) > 1) {\n if (Number(ind9 + ind10) < 11) {\n this.text =\n ind1 +\n ind2 +\n ind3 +\n ind4 +\n ind5 +\n ind6 +\n ind7 +\n ind8 +\n '0' +\n String(Number(ind9 + ind10) - 1);\n } else {\n this.text =\n ind1 +\n ind2 +\n ind3 +\n ind4 +\n ind5 +\n ind6 +\n ind7 +\n ind8 +\n String(Number(ind9 + ind10) - 1);\n }\n } else {\n this.text =\n ind1 +\n ind2 +\n ind3 +\n ind4 +\n ind5 +\n ind6 +\n ind7 +\n ind8 +\n '31';\n }\n }\n // this.input.input.nativeElement.style.caretColor = 'transparent';\n\n // setTimeout(() => {\n // this.setCaret();\n // this.input.input.nativeElement.style.caretColor = 'auto';\n // }, 0);\n }\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n this.input.input.nativeElement.style.caretColor = 'transparent';\n e.preventDefault();\n e.stopPropagation();\n return false;\n }\n }\n }\n if (e.type === 'keyup') {\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n this.setCaret();\n this.input.input.nativeElement.style.caretColor = 'auto';\n e.preventDefault();\n e.stopPropagation();\n }\n }\n break;\n case this.ddMMyyyy:\n if (e.type === 'keypress') {\n this.handleClick();\n if (\n (ind4 == '1' && ind5 == '_' && inputChar >= '3') ||\n (((ind1 == '0' && ind2 == '_') || (ind4 == '0' && ind5 == '_')) &&\n inputChar == '0')\n ) {\n e.preventDefault();\n } else {\n if (ind1 == '3' && ind2 == '_' && inputChar >= '2') {\n e.preventDefault();\n }\n }\n }\n if (this.text.indexOf('_') === -1 && this.text !== '') {\n if (e.type === 'keydown') {\n if (e.key === 'ArrowUp') {\n if (this.cursorPosition >= 6) {\n this.text =\n ind1 +\n ind2 +\n ind3 +\n ind4 +\n ind5 +\n ind6 +\n String(Number(ind7 + ind8 + ind9 + ind10) + 1);\n }\n if (this.cursorPosition > 2 && this.cursorPosition <= 5) {\n if (Number(ind4 + ind5) < 12) {\n if (Number(ind4 + ind5) < 9) {\n this.text =\n ind1 +\n ind2 +\n ind3 +\n '0' +\n String(Number(ind4 + ind5) + 1) +\n ind6 +\n ind7 +\n ind8 +\n ind9 +\n ind10;\n } else {\n this.text =\n ind1 +\n ind2 +\n ind3 +\n String(Number(ind4 + ind5) + 1) +\n ind6 +\n ind7 +\n ind8 +\n ind9 +\n ind10;\n }\n } else {\n this.text =\n ind1 +\n ind2 +\n ind3 +\n '01' +\n ind6 +\n ind7 +\n ind8 +\n ind9 +\n ind10;\n }\n }\n if (this.cursorPosition <= 2) {\n if (Number(ind1 + ind2) < 31) {\n if (Number(ind1 + ind2) < 9) {\n this.text =\n '0' +\n String(Number(ind1 + ind2) + 1) +\n ind3 +\n ind4 +\n ind5 +\n ind6 +\n ind7 +\n ind8 +\n ind9 +\n ind10;\n } else {\n this.text =\n String(Number(ind1 + ind2) + 1) +\n ind3 +\n ind4 +\n ind5 +\n ind6 +\n ind7 +\n ind8 +\n ind9 +\n ind10;\n }\n } else {\n this.text =\n '01' +\n ind3 +\n ind4 +\n ind5 +\n ind6 +\n ind7 +\n ind8 +\n ind9 +\n ind10;\n }\n }\n // this.input.input.nativeElement.style.caretColor = 'transparent';\n // setTimeout(() => {\n // this.setCaret();\n // this.input.input.nativeElement.style.caretColor = 'auto';\n // }, 0);\n } else if (e.key === 'ArrowDown') {\n if (this.cursorPosition >= 6) {\n this.text =\n ind1 +\n ind2 +\n ind3 +\n ind4 +\n ind5 +\n ind6 +\n String(Number(ind7 + ind8 + ind9 + ind10) - 1);\n } else if (\n this.cursorPosition > 2 &&\n this.cursorPosition <= 5\n ) {\n if (Number(ind4 + ind5) > 1) {\n if (Number(ind4 + ind5) < 11) {\n this.text =\n ind1 +\n ind2 +\n ind3 +\n '0' +\n String(Number(ind4 + ind5) - 1) +\n ind6 +\n ind7 +\n ind8 +\n ind9 +\n ind10;\n } else {\n this.text =\n ind1 +\n ind2 +\n ind3 +\n String(Number(ind4 + ind5) - 1) +\n ind6 +\n ind7 +\n ind8 +\n ind9 +\n ind10;\n }\n } else {\n this.text =\n ind1 +\n ind2 +\n ind3 +\n '12' +\n ind6 +\n ind7 +\n ind8 +\n ind9 +\n ind10;\n }\n } else if (this.cursorPosition <= 2) {\n if (Number(ind1 + ind2) > 1) {\n if (Number(ind1 + ind2) < 11) {\n this.text =\n '0' +\n String(Number(ind1 + ind2) - 1) +\n ind3 +\n ind4 +\n ind5 +\n ind6 +\n ind7 +\n ind8 +\n ind9 +\n ind10;\n } else {\n this.text =\n String(Number(ind1 + ind2) - 1) +\n ind3 +\n ind4 +\n ind5 +\n ind6 +\n ind7 +\n ind8 +\n ind9 +\n ind10;\n }\n } else {\n this.text =\n '31' +\n ind3 +\n ind4 +\n ind5 +\n ind6 +\n ind7 +\n ind8 +\n ind9 +\n ind10;\n }\n }\n // this.input.input.nativeElement.style.caretColor = 'transparent';\n // setTimeout(() => {\n // this.setCaret();\n // this.input.input.nativeElement.style.caretColor = 'auto';\n // }, 0);\n }\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n this.input.input.nativeElement.style.caretColor = 'transparent';\n e.preventDefault();\n e.stopPropagation();\n return false;\n }\n }\n }\n if (e.type === 'keyup') {\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n this.setCaret();\n this.input.input.nativeElement.style.caretColor = 'auto';\n e.preventDefault();\n e.stopPropagation();\n }\n }\n break;\n\n case this.yyyyddMM:\n if (e.type === 'keypress') {\n if (\n (ind9 === '1' && ind10 == '_' && inputChar >= '3') ||\n (((ind6 == '0' && ind7 == '_') || (ind9 == '0' && ind10)) &&\n inputChar == '0')\n ) {\n e.preventDefault();\n } else if (ind6 == '3' && ind7 == '_' && inputChar >= '2') {\n e.preventDefault();\n }\n setTimeout(() => {\n this.handleClick();\n }, 0);\n }\n if (this.text.indexOf('_') === -1 && this.text !== '') {\n if (e.type === 'keydown') {\n if (e.key === 'ArrowUp') {\n if (this.cursorPosition <= 4) {\n this.text =\n String(Number(ind1 + ind2 + ind3 + ind4) + 1) +\n ind5 +\n ind6 +\n ind7 +\n ind8 +\n ind9 +\n ind10;\n }\n if (this.cursorPosition > 4 && this.cursorPosition <= 7) {\n if (Number(ind6 + ind7) < 31) {\n if (Number(ind6 + ind7) < 9) {\n this.text =\n ind1 +\n ind2 +\n ind3 +\n ind4 +\n ind5 +\n '0' +\n String(Number(ind6 + ind7) + 1) +\n ind8 +\n ind9 +\n ind10;\n } else {\n this.text =\n ind1 +\n ind2 +\n ind3 +\n ind4 +\n ind5 +\n String(Number(ind6 + ind7) + 1) +\n ind8 +\n ind9 +\n ind10;\n }\n } else {\n this.text =\n ind1 +\n ind2 +\n ind3 +\n ind4 +\n ind5 +\n '01' +\n ind8 +\n ind9 +\n ind10;\n }\n }\n if (this.cursorPosition >= 8) {\n if (Number(ind9 + ind10) < 12) {\n if (Number(ind9 + ind10) < 9) {\n this.text =\n ind1 +\n ind2 +\n ind3 +\n ind4 +\n ind5 +\n ind6 +\n ind7 +\n ind8 +\n '0' +\n String(Number(ind9 + ind10) + 1);\n } else {\n this.text =\n ind1 +\n ind2 +\n ind3 +\n ind4 +\n ind5 +\n ind6 +\n ind7 +\n ind8 +\n String(Number(ind9 + ind10) + 1);\n }\n } else {\n this.text =\n ind1 +\n ind2 +\n ind3 +\n ind4 +\n ind5 +\n ind6 +\n ind7 +\n ind8 +\n '01';\n }\n }\n // this.input.input.nativeElement.style.caretColor = 'transparent';\n // setTimeout(() => {\n // this.setCaret();\n // this.input.input.nativeElement.style.caretColor = 'auto';\n // }, 0);\n } else if (e.key === 'ArrowDown') {\n if (this.cursorPosition <= 4) {\n this.text =\n String(Number(ind1 + ind2 + ind3 + ind4) - 1) +\n ind5 +\n ind6 +\n ind7 +\n ind8 +\n ind9 +\n ind10;\n } else if (\n this.cursorPosition > 4 &&\n this.cursorPosition <= 7\n ) {\n if (Number(ind6 + ind7) > 1) {\n if (Number(ind6 + ind7) < 11) {\n this.text =\n ind1 +\n ind2 +\n ind3 +\n ind4 +\n ind5 +\n '0' +\n String(Number(ind6 + ind7) - 1) +\n ind8 +\n ind9 +\n ind10;\n } else {\n this.text =\n ind1 +\n ind2 +\n ind3 +\n ind4 +\n ind5 +\n String(Number(ind6 + ind7) - 1) +\n ind8 +\n ind9 +\n ind10;\n }\n } else {\n this.text =\n ind1 +\n ind2 +\n ind3 +\n ind4 +\n ind5 +\n '31' +\n ind8 +\n ind9 +\n ind10;\n }\n } else if (this.cursorPosition >= 8) {\n if (Number(ind9 + ind10) > 1) {\n if (Number(ind9 + ind10) < 11) {\n this.text =\n ind1 +\n ind2 +\n ind3 +\n ind4 +\n ind5 +\n ind6 +\n ind7 +\n ind8 +\n '0' +\n String(Number(ind9 + ind10) - 1);\n } else {\n this.text =\n ind1 +\n ind2 +\n ind3 +\n ind4 +\n ind5 +\n ind6 +\n ind7 +\n ind8 +\n String(Number(ind9 + ind10) - 1);\n }\n } else {\n this.text =\n ind1 +\n ind2 +\n ind3 +\n ind4 +\n ind5 +\n ind6 +\n ind7 +\n ind8 +\n '12';\n }\n }\n // this.input.input.nativeElement.style.caretColor = 'transparent';\n // setTimeout(() => {\n // this.setCaret();\n // this.input.input.nativeElement.style.caretColor = 'auto';\n // }, 0);\n }\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n this.input.input.nativeElement.style.caretColor = 'transparent';\n e.preventDefault();\n e.stopPropagation();\n return false;\n }\n }\n }\n if (e.type === 'keyup') {\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n this.setCaret();\n this.input.input.nativeElement.style.caretColor = 'auto';\n e.preventDefault();\n e.stopPropagation();\n }\n }\n break;\n default:\n break;\n }\n }\n }\n handleClick() {\n if (\n this.input.input.nativeElement.selectionStart ||\n this.input.input.nativeElement.selectionStart === 0\n ) {\n this.cursorPosition = this.input.input.nativeElement.selectionStart;\n }\n }\n\n setCaretPosition(ctrl, pos) {\n if (ctrl.setSelectionRange) {\n ctrl.focus();\n ctrl.setSelectionRange(pos, pos);\n }\n }\n\n setCaret() {\n this.setCaretPosition(this.input.input.nativeElement, this.cursorPosition);\n }\n}\n","<ax-drop-down\n [readonly]=\"readonly\"\n [fitParent]=\"false\"\n [size]=\"size\"\n [showDropDownButton]=\"false\"\n icon=\"far fa-calendar-alt\"\n #dropdown\n maxHeight=\"unset\"\n>\n <ng-container start>\n <ng-content select=\"[start]\"> </ng-content>\n </ng-container>\n <ng-container header>\n <ax-text-box\n #input\n [textAlign]=\"textAlign\"\n [(value)]=\"text\"\n [readonly]=\"false\"\n [mask]=\"dateType\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [size]=\"size\"\n (onkey)=\"handleKeyPress($event)\"\n (onFocus)=\"handleInputFocus()\"\n (click)=\"handleClick()\"\n (onBlur)=\"handleInputBlur()\"\n (onValueChanged)=\"textChange($event)\"\n ></ax-text-box>\n </ng-container>\n <ng-container panel>\n <ax-calendar-box\n *ngIf=\"_renderPicker\"\n [showTodayButton]=\"showTodayButton\"\n [selectableHoliday]=\"selectableHoliday\"\n [min]=\"min\"\n [max]=\"max\"\n [size]=\"size\"\n (onClick)=\"onClick($event)\"\n (onValueChanged)=\"onDateChange($event)\"\n [type]=\"type\"\n [(value)]=\"value\"\n [dayStyle]=\"dayStyle\"\n [dayMinMaxResoan]=\"dayMinMaxResoan\"\n >\n </ax-calendar-box>\n </ng-container>\n <ng-container end>\n <ax-button\n end\n *ngIf=\"allowClear && value\"\n [disabled]=\"disabled\"\n icon=\"far fa-times icon\"\n type=\"blank danger\"\n (click)=\"clear()\"\n [size]=\"size\"\n [tabIndex]=\"-1\"\n >\n </ax-button>\n <ax-button\n end\n icon=\"far fa-calendar-alt icon\"\n type=\"light blank\"\n (click)=\"handleButtonClick()\"\n [disabled]=\"disabled\"\n [size]=\"size\"\n [tabIndex]=\"-1\"\n ></ax-button>\n <ng-content select=\"[end]\"> </ng-content>\n </ng-container>\n</ax-drop-down>\n","import { Component, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild, EventEmitter, Output } from '@angular/core';\nimport { AXFilterCondition, AXFilterColumnComponent } from '../filter.class';\nimport { AXDateTime } from '@acorex/core';\nimport { AXSelectionListComponent } from '../../selection-list/selection-list.component';\n\n@Component({\n selector: 'ax-filter-column-date',\n template: `\n <div class=\"ax-filter-section\">\n <ax-selection-list [items]=\"items\" mode=\"single\" direction=\"vertical\" (selectedItemsChange)=\"onSelectedChanged($event)\">\n </ax-selection-list>\n </div>\n <div class=\"ax-filter-section-value\" [hidden]=\"!showCustom\">\n <ax-date-picker label=\"From\" [(value)]=\"fromDate\" (onValueChanged)=\"dateChange($event)\"></ax-date-picker>\n <ax-date-picker label=\"To\" [(value)]=\"toDate\" (onValueChanged)=\"dateChange($event)\"></ax-date-picker>\n </div>\n <div class=\"ax-filter-section-value\" [hidden]=\"!showSpecific\">\n <ax-date-picker label=\"Date\" [(value)]=\"fromDate\" (onValueChanged)=\"dateChange($event)\"></ax-date-picker> \n </div>\n `,\n providers: [\n { provide: AXFilterColumnComponent, useExisting: AXFilterColumnDateComponent }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AXFilterColumnDateComponent extends AXFilterColumnComponent {\n @ViewChild(AXSelectionListComponent, { static: true }) selection: AXSelectionListComponent;\n\n items: any = [\n {\n text: 'Today',\n value: 'today'\n },\n {\n text: 'This Week',\n value: 'this-week'\n },\n {\n text: 'This Month',\n value: 'this-month'\n },\n {\n text: 'This Year',\n value: 'this-year'\n },\n {\n text: 'Specific',\n value: 'specific'\n },\n {\n text: 'Range',\n value: 'range'\n }\n ];\n\n fromDate: AXDateTime = new AXDateTime();\n toDate: AXDateTime = new AXDateTime();\n\n selectedItem: any = null;\n\n showCustom: boolean = false;\n showSpecific: boolean = false;\n\n constructor(protected cdr: ChangeDetectorRef) {\n super(cdr);\n }\n\n ngAfterViewInit(): void {\n this.selection.selectedItems = [this.items[0]];\n }\n dateChange(e) {\n this.valueChange.emit();\n }\n onSelectedChanged(items: any[]) {\n\n this.selectedItem = items[0];\n this.showCustom = this.selectedItem && this.selectedItem.value == 'range';\n this.showSpecific = this.selectedItem && this.selectedItem.value == 'specific';\n this.cdr.detectChanges();\n this.valueChange.emit();\n }\n\n get condition(): AXFilterCondition {\n let today = new AXDateTime();\n switch (this.selectedItem.value) {\n case 'today':\n this.fromDate = this.toDate = today;\n\n return {\n condition: 'equal',\n field: this.field,\n dataType: 'date',\n value: this.fromDate.toISOString()\n }\n case 'specific':\n return {\n condition: 'equal',\n field: this.field,\n dataType: 'date',\n value: this.fromDate.toISOString()\n }\n case 'this-week':\n this.toDate = today.endOf('week');\n this.fromDate = today.startOf('week');\n break;\n case 'this-month':\n this.toDate = today.endOf('month')\n this.fromDate = today.startOf('month');\n break;\n case 'this-year':\n this.toDate = today.endOf('year')\n this.fromDate = today.startOf('year');\n break;\n }\n\n return {\n condition: 'between',\n field: this.field,\n dataType: 'date',\n value: [this.fromDate.toISOString(), this.toDate.toISOString()]\n }\n }\n}\n","import { Component, ChangeDetectorRef } from '@angular/core';\nimport { AXFilterCondition, AXFilterColumnComponent } from '../filter.class';\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\n\nimport { Observable } from 'rxjs';\n\n\n@Component({\n selector: 'ax-filter-column-number',\n template: `\n <div class=\"ax-filter-section\">\n <div>\n <select (ngModelChange)=\"onOperatorChange($event)\" class=\"form-control form-control-sm\" [(ngModel)]=\"operator\">\n <option *ngFor=\"let o of operators\" value=\"{{o.value}}\">\n {{o.title}}\n </option>\n </select>\n </div>\n <div>\n <ax-text-box placeholder=\"Type here\" (textChange)=\"onTextChange($event)\" [(value)]=\"value\" *ngIf=\"operator!='is-not-empty' && operator!='is-empty'\">\n </ax-text-box>\n </div>\n</div>\n `,\n providers: [\n { provide: AXFilterColumnComponent, useExisting: AXFilterColumnNumberComponent }\n ]\n})\nexport class AXFilterColumnNumberComponent extends AXFilterColumnComponent {\n\n operator: string = 'equal';\n\n operators: any[] = [\n {\n title: 'is',\n value: 'equal'\n },\n {\n title: `isn't`,\n value: 'not-equal'\n },\n {\n title: 'less than',\n value: 'less-than'\n },\n {\n title: 'less than or equal',\n value: 'less-than-equal'\n },\n {\n title: 'greater than',\n value: 'greater-than'\n },\n {\n title: 'greater than or equal',\n value: 'greater-than-equal'\n },\n {\n title: 'is empty',\n value: 'is-empty'\n },\n {\n title: `isn't empty`,\n value: 'is-not-empty'\n }\n ];\n constructor(protected cdr: ChangeDetectorRef) {\n super(cdr);\n }\n private searchChangeObserver: any;\n onOperatorChange(e) {\n\n this.valueChange.emit();\n\n }\n onTextChange(e) {\n // TODO: Check this method work correctly\n if (!this.searchChangeObserver) {\n return new Observable(observer => {\n this.searchChangeObserver = observer;\n })\n .pipe(debounceTime(500))\n .pipe(distinctUntilChanged())\n .subscribe(c => {\n this.valueChange.emit();\n });\n }\n this.searchChangeObserver.next(e);\n }\n\n get condition(): AXFilterCondition {\n return {\n condition: this.operator,\n field: this.field,\n dataType: 'number',\n value: this.value\n };\n }\n\n}\n","import { Component, Input, ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core';\nimport { AXFilterCondition, AXFilterColumnComponent } from '../filter.class';\nimport { AXCheckItem } from '@acorex/core';\n\n@Component({\n selector: 'ax-filter-column-selection',\n template: `\n <div class=\"ax-filter-section\">\n <ax-selection-list [items]=\"items\" (selectedItemsChange)=\"onSelectChange($event)\" [mode]=\"mode\" direction=\"vertical\" [(selectedItems)]=\"selectedItems\">\n </ax-selection-list>\n </div>\n `,\n providers: [\n { provide: AXFilterColumnComponent, useExisting: AXFilterColumnSelectionComponent }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AXFilterColumnSelectionComponent extends AXFilterColumnComponent {\n\n\n selectedItems: any[] = [];\n\n @Input()\n items: AXCheckItem[] = [];\n\n @Input()\n mode = 'single';\n\n @Input()\n dataType: any = 'number';\n\n\n\n constructor(protected cdr: ChangeDetectorRef) {\n super(cdr);\n }\n\n get condition(): AXFilterCondition {\n const values = this.selectedItems.map(c => c.value);\n if (values.length === 0) {\n return null;\n\n }\n return {\n condition: this.mode === 'single' ? 'equal' : 'contains',\n field: this.field,\n dataType: this.dataType,\n value: this.mode === 'single' ? values[0] : values\n }\n }\n clear() {\n this.selectedItems = [];\n super.clear();\n }\n onSelectChange(e) {\n this.valueChange.emit();\n\n }\n\n setFilter(value: any, operator: string) {\n if (value instanceof Array) {\n this.selectedItems = this.items.filter(c => value.some(z => z === c.value));\n }\n else {\n this.selectedItems = [this.items.find(c => c.value === value)];\n }\n super.setFilter(value, operator);\n }\n}\n","import { Component,ChangeDetectorRef } from '@angular/core';\nimport { AXFilterCondition, AXFilterColumnComponent } from '../filter.class';\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport { Observable } from 'rxjs';\n@Component({\n selector: 'ax-filter-column-string',\n template: `\n <div class=\"ax-filter-section\">\n <div>\n <select (ngModelChange)=\"onOperatorChange($event)\" class=\"form-control form-control-sm\" [(ngModel)]=\"operator\">\n <option *ngFor=\"let o of operators\" value=\"{{o.value}}\">\n {{o.title}}\n </option>\n </select>\n </div>\n <div>\n <ax-text-box placeholder=\"Type here\" (textChange)=\"onTextChange($event)\" [(value)]=\"value\" *ngIf=\"operator!='is-not-empty' && operator!='is-empty'\">\n </ax-text-box>\n </div>\n</div>\n `,\n providers: [\n { provide: AXFilterColumnComponent, useExisting: AXFilterColumnStringComponent }\n ]\n})\nexport class AXFilterColumnStringComponent extends AXFilterColumnComponent {\n\n\n operator: string = 'contains';\n operators: any[] = [\n {\n title: 'is',\n value: 'equal'\n },\n {\n title: `isn't`,\n value: 'not-equal'\n },\n {\n title: 'contains',\n value: 'contains'\n },\n {\n title: 'not contains',\n value: 'not-contains'\n },\n {\n title: 'start with',\n value: 'start-with'\n },\n {\n title: 'end with',\n value: 'end-with'\n },\n {\n title: 'is empty',\n value: 'is-empty'\n },\n {\n title: `isn't empty`,\n value: 'is-not-empty'\n }\n ];\n\n constructor(protected cdr: ChangeDetectorRef) {\n super(cdr);\n }\n\n private searchChangeObserver: any;\n\n onOperatorChange(e) {\n\n this.valueChange.emit();\n\n }\n\n // TODO: Check this method work correctly\n onTextChange(e) {\n if (!this.searchChangeObserver) {\n return new Observable(observer => {\n this.searchChangeObserver = observer;\n })\n .pipe(debounceTime(500))\n .pipe(distinctUntilChanged())\n .subscribe(c => {\n this.valueChange.emit();\n });\n }\n this.searchChangeObserver.next(e);\n }\n\n get condition(): AXFilterCondition {\n return {\n condition: this.operator,\n field: this.field,\n dataType: 'string',\n value: this.value\n }\n }\n}\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ax-toast-wrapper',\n template: '',\n styleUrls: ['./toast-wrapper.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class AXToastWrapperComponent implements OnInit {\n constructor() {}\n\n ngOnInit(): void {}\n}\n","import { Component, OnInit, Input, ElementRef, ViewEncapsulation } from '@angular/core';\n\n@Component({\n templateUrl: './toast-message.component.html',\n styleUrls: ['./toast-message.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class AXToastMessageComponent implements OnInit {\n constructor(private elRef: ElementRef) { }\n\n @Input() title: string = '';\n @Input() message: string;\n @Input() timeOut: number = 6000;\n @Input() closeable: boolean = false;\n\n @Input() type: 'info' | 'success' | 'warning' | 'error' = 'info';\n\n style: string = 'info';\n icon: string = '';\n toastWidth: number = 100;\n\n ngOnInit(): void {\n if (this.timeOut) {\n const interval = setInterval(() => {\n --this.toastWidth;\n if (this.toastWidth === 0) {\n clearInterval(interval);\n this.close();\n }\n }, this.timeOut / 100);\n }\n switch (this.type) {\n case 'success':\n this.style = 'success';\n break;\n case 'warning':\n this.style = 'warning';\n break;\n case 'error':\n this.style = 'error';\n break;\n default:\n this.style = 'info';\n break;\n }\n switch (this.type) {\n case 'success':\n this.icon = 'fas fa-check-circle';\n break;\n case 'warning':\n this.icon = 'fas fa-exclamation-triangle';\n break;\n case 'error':\n this.icon = 'fas fa-exclamation-circle';\n break;\n default:\n this.icon = 'fas fa-info-circle';\n break;\n }\n }\n close() {\n this.elRef.nativeElement.parentElement.removeChild(this.elRef.nativeElement);\n }\n}\n","<div class=\"toast-container\">\n <header *ngIf=\"title\" class=\"ax toast {{ style }}\">\n <div>\n <i class=\"{{icon}}\"></i>&nbsp; {{ title }}\n </div>\n <div *ngIf=\"closeable\" (click)=\"close()\" class=\"toast-close\">\n <i class=\"far fa-times\"></i>\n </div>\n </header>\n <div class=\"content ax toast {{ style }}\">\n {{ message }}\n <div *ngIf=\"!title && closeable\" (click)=\"close()\" class=\"toast-close\">\n <i class=\"far fa-times\"></i>\n </div>\n <div class=\"toast-progress\" [style.animation-duration.ms]=\"timeOut\"></div>\n </div>\n</div>","import { Injectable } from '@angular/core';\nimport { AXRenderService } from '@acorex/core';\nimport { AXToastWrapperComponent } from './toast-wrapper/toast-wrapper.component';\nimport { AXToastMessageComponent } from './toast-message/toast-message.component';\n\nexport interface IToastOptions {\n timeOut?: number;\n title?: string;\n closeable?: boolean;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AXToastService {\n\n constructor(private injectionService: AXRenderService) { }\n\n info(message: string, options?: IToastOptions) {\n this.show(message, 'info', options);\n }\n\n success(message: string, options?: IToastOptions) {\n this.show(message, 'success', options);\n }\n\n warning(message: string, options?: IToastOptions) {\n this.show(message, 'warning', options);\n }\n\n error(message: string, options?: IToastOptions) {\n this.show(message, 'error', options);\n }\n\n private show(\n message: string,\n type: 'success' | 'info' | 'error' | 'warning',\n options?: IToastOptions\n ) {\n const opt = Object.assign(\n {\n message,\n type\n },\n options\n );\n\n const wrapper = document.querySelector('ax-toast-wrapper');\n if (!wrapper) {\n const toastWrapper = this.injectionService.appendComponent(\n AXToastWrapperComponent\n );\n this.injectionService.appendComponent(\n AXToastMessageComponent,\n opt,\n toastWrapper.location.nativeElement\n );\n } else {\n this.injectionService.appendComponent(\n AXToastMessageComponent,\n opt,\n wrapper\n );\n }\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ContentChild,\n TemplateRef,\n} from \"@angular/core\";\nimport {\n trigger,\n state,\n style,\n animate,\n transition,\n} from \"@angular/animations\";\nimport { AXBaseSizableComponent, AXElementSize } from \"../base/element.class\";\n\n@Component({\n selector: \"ax-panel-box\",\n templateUrl: \"./panel-box.component.html\",\n styleUrls: [\"./panel-box.component.scss\"],\n animations: [\n trigger(\"visibilityChanged\", [\n state(\n \"shown\",\n style({\n height: \"*\",\n opacity: 1,\n })\n ),\n state(\n \"hidden\",\n style({\n height: \"0px\",\n opacity: 0,\n padding: 0,\n })\n ),\n transition(\"Void => *\", animate(\"0ms\")),\n transition(\"shown => hidden\", animate(\"200ms\")),\n transition(\"hidden => shown\", animate(\"200ms\")),\n ]),\n ],\n})\nexport class AXPanelBoxComponent implements AXBaseSizableComponent {\n @ContentChild(\"header\", { static: true })\n headerTemplate: TemplateRef<any>;\n\n @Input() size: AXElementSize = \"md\";\n\n @Input() type: string = \"\";\n\n // @Input()\n // caption: string = 'Caption';\n\n private _caption: string = \"caption\";\n @Input()\n get caption(): string {\n return this._caption;\n }\n set caption(val: string) {\n this._caption = val === \"\" ? \"caption\" : val;\n }\n\n @Output()\n collapsedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n private _collapsed: boolean = false;\n\n @Input()\n get collapsed(): boolean {\n return this._collapsed;\n }\n set collapsed(val: boolean) {\n if (val !== this._collapsed) {\n this._collapsed = val;\n this.collapsedChange.emit(this._collapsed);\n }\n }\n\n @Input() allowCollapse: boolean = true;\n\n toggle() {\n if (this.allowCollapse) {\n this.collapsed = !this.collapsed;\n }\n }\n}\n","<div class=\"ax-panel-box ax {{size}}\">\n <ng-container *ngIf=\"headerTemplate; else elseTemplate\">\n <header [class.toggle]=\"allowCollapse\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\">\n </ng-container>\n </header>\n </ng-container>\n <ng-template #elseTemplate>\n <header class=\"ax panel {{type}}\" [class.toggle]=\"allowCollapse\" (click)=\"toggle()\">\n <div [innerHTML]=\"caption\"></div>\n <div *ngIf=\"allowCollapse\">\n <i [ngClass]=\"{ 'far fa-minus-square' : !collapsed ,'fas fa-plus-square' : collapsed }\"></i>\n </div>\n </header>\n </ng-template>\n <div class=\"content\" [@visibilityChanged]=\"collapsed ? 'hidden' : 'shown'\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { Component, Input, ViewChild, ViewChildren, QueryList, ViewEncapsulation, ChangeDetectionStrategy, Output, EventEmitter, ChangeDetectorRef, ElementRef, ViewContainerRef } from '@angular/core';\nimport { AXFilterColumnGroup, AXFilterColumnComponent, AXFilterCondition, AXFilterPredefined } from '../filter.class';\nimport { AXMenuItem, AXHtmlUtil, AXKeyboardEvent } from '@acorex/core';\nimport { AXMenuComponent } from '../../menu/menu.component';\nimport { AXTextBoxComponent } from '../../textbox/textbox.component';\nimport { AXToastService } from '../../toast/toast.service';\nimport { AXValueEvent } from '../../base/events.class';\n\n\n\n\n@Component({\n selector: 'ax-filter-panel',\n templateUrl: './filter-panel.component.html',\n styleUrls: ['./filter-panel.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AXFilterPanelComponent {\n\n @ViewChild('panel', { static: true }) panel: ElementRef<HTMLDivElement>;\n @ViewChild('footer', { static: true }) footer: ElementRef<HTMLDivElement>;\n @ViewChild('savedList', { static: true }) savedList: ElementRef<HTMLDivElement>;\n @ViewChild('body', { static: true }) body: ElementRef<HTMLDivElement>;\n @ViewChild('menu', { static: false }) menu: AXMenuComponent;\n @ViewChild('tbxName', { static: true }) tbxName: AXTextBoxComponent;\n\n @ViewChildren(AXFilterColumnComponent) filters: QueryList<AXFilterColumnComponent>;\n\n @Input()\n groups: AXFilterColumnGroup[] = [];\n\n @Input()\n predefinedFilters: AXFilterPredefined[] = [];\n\n @Input()\n mode: 'click' | 'immediate' = 'click';\n\n saveItems: AXMenuItem[] = [\n {\n name: 'saveAs',\n text: 'Save',\n startIcon: 'fas fa-save',\n items: [\n {\n name: 'save',\n text: 'Save current'\n },\n {\n name: 'saveAs',\n text: 'Save as New'\n }\n ]\n },\n\n ];\n\n @Output()\n filterChange: EventEmitter<AXFilterCondition[]> = new EventEmitter<AXFilterCondition[]>();\n\n constructor(private cdr: ChangeDetectorRef, private toast: AXToastService) { }\n\n apply() {\n this.filterChange.emit(this.value);\n this.updateMenu();\n }\n\n public clear() {\n this.filters.forEach(e => {\n e.clear();\n });\n this.predefinedFilters.forEach(c => {\n (c as any).selected = false;\n });\n this.filterChange.emit(this.value);\n this.updateMenu();\n }\n\n onValueChange(e) {\n if (this.mode === 'immediate') {\n setTimeout(() => {\n this.filterChange.emit(this.value);\n this.updateMenu();\n }, 50);\n\n }\n }\n\n onCheckValueChange(v, e: AXValueEvent<boolean>) {\n\n\n if (!e.value && this.mode === 'immediate') {\n this.filters.forEach(c => {\n if (c.field === v.field) {\n c.clear();\n }\n })\n setTimeout(() => {\n this.filterChange.emit(this.value.filter(c => c.field !== v.field));\n this.updateMenu();\n }, 50);\n\n }\n }\n\n get value(): AXFilterCondition[] {\n const con: AXFilterCondition[] = [];\n if (this.filters) {\n this.filters.forEach(e => {\n\n if (e.active && e.condition && ((e.condition.value != null) || (e.condition.value == null && (e.condition.condition === 'is-empty' || e.condition.condition === 'is-not-empty')))) {\n con.push(e.condition);\n }\n });\n }\n return con;\n }\n\n\n\n public load(filters: AXFilterCondition[]): void {\n this.filters.forEach(e => {\n e.clear();\n });\n this.cancelSaveFilter();\n filters.forEach(f => {\n const col = this.filters.find(c => c.field === f.field);\n if (col) {\n col.setFilter(f.value, f.condition);\n }\n\n });\n this.filterChange.emit(this.value);\n this.updateMenu();\n }\n\n ngAfterViewInit(): void {\n const footer = this.panel.nativeElement.querySelector('.footer');\n if (!footer) {\n this.body.nativeElement.style.height = 'calc(100% - 110px)';\n }\n setTimeout(() => {\n if (this.predefinedFilters) {\n this.setFilterByIndex(0);\n }\n else {\n this.clear();\n }\n }, 100);\n this.applySize();\n }\n\n setFilterByIndex(index: number) {\n const f = this.predefinedFilters[index];\n if (f) {\n this.setFilterByName(f.name);\n }\n }\n\n setFilterByName(name: string) {\n const f = this.predefinedFilters.find(c => c.name === name);\n if (f) {\n this.load(f.value);\n this.predefinedFilters.forEach(c => {\n (c as any).selected = false;\n });\n (f as any).selected = true;\n }\n }\n\n\n\n removeFilter(f: AXFilterPredefined) {\n this.predefinedFilters = this.predefinedFilters.filter(c => c.name != f.name);\n this.updateMenu();\n }\n\n private get\n currentFilter(): AXFilterPredefined {\n return this.predefinedFilters.find(c => (c as any).selected);\n }\n\n\n private applySize() {\n let h = 0;\n h += this.footer.nativeElement.getBoundingClientRect().height;\n h += this.savedList.nativeElement.getBoundingClientRect().height;\n h += 10;\n this.body.nativeElement.style.height = `calc(100% - ${h}px)`;\n }\n\n // SAVE FILTERS\n\n private updateMenu(): void {\n setTimeout(() => {\n this.saveItems[0].items[0].visible = this.currentFilter != null;\n this.saveItems[0].items[1].visible = this.currentFilter != null;\n // this.menu.update();\n }, 100);\n }\n\n applySaveFilter() {\n const f = this.currentFilter;\n if (f) {\n // TODO\n // this.tbxName.validate().then(c => {\n // if (c.result) {\n // f.value = this.value;\n // (f as any).isInEdit = false;\n // (f as any).isNew = false;\n // f.title = this.tbxName.value;\n // this.toast.success('Filter saved successfully.');\n // this.updateMenu();\n // }\n // });\n }\n }\n\n cancelSaveFilter() {\n const f = this.currentFilter;\n if (f) {\n if ((f as any).isNew) {\n this.removeFilter(f);\n }\n else {\n (f as any).isInEdit = false;\n }\n }\n this.updateMenu();\n }\n\n onMenuItemClick(e: AXMenuItem) {\n if (e.name === 'save') {\n this.applySaveFilter();\n }\n if (e.name === 'saveAs') {\n const f = {\n name: AXHtmlUtil.getUID(),\n title: '',\n value: this.value\n };\n this.predefinedFilters.push(f);\n (f as any).isNew = true;\n this.setFilterByName(f.name);\n this.handleRenameClick(f)\n }\n }\n\n tbxNameOnKey(e: AXKeyboardEvent) {\n if (e.type === 'keyup' && e.key === 'Enter') {\n this.applySaveFilter();\n }\n if (e.type === 'keyup' && e.key === 'Escape') {\n this.cancelSaveFilter();\n }\n }\n\n handleRenameClick(f: AXFilterPredefined) {\n (f as any).isInEdit = true;\n this.cdr.detectChanges();\n setTimeout(() => {\n this.tbxName.value = f.title;\n this.tbxName.focus();\n }, 50);\n }\n}\n","<div class=\"ax-filter-panel\" #panel>\n <div class=\"saved-list\" #savedList>\n <ax-panel-box #fb>\n <ng-template #header>\n <div class=\"group-header\" (click)=\"fb.toggle()\">\n <ax-toolbar>\n <ax-toolbar-title>\n <div>\n <i class=\"far fa-filter\"></i>\n <span>SAVED FILTERS</span>\n </div>\n </ax-toolbar-title>\n <ax-toolbar-menu #menu [items]=\"saveItems\" (onItemClick)=\"onMenuItemClick($event)\">\n </ax-toolbar-menu>\n </ax-toolbar>\n </div>\n </ng-template>\n\n <div class=\"list\">\n <ng-container *ngIf=\"predefinedFilters && predefinedFilters.length; else emptyList\">\n <ul>\n <ng-container *ngFor=\"let f of predefinedFilters\">\n <ng-container *ngIf=\"!f.isInEdit; else editMode\">\n <li (click)=\"setFilterByName(f.name)\">\n <div class=\"item-line\" [class.selected]=\"f.selected\">\n <span class=\"title\"><i class=\"far fa-check\"></i> {{f.title}}</span>\n <span class=\"tools\"><i class=\"far fa-pen text-primary\" title=\"Rename\"\n (click)=\"handleRenameClick(f)\"></i>&nbsp;<i\n class=\"far fa-times text-danger\" title=\"Remove\"\n (click)=\"removeFilter(f)\"></i></span>\n </div>\n </li>\n </ng-container>\n <ng-template #editMode>\n <li>\n <ax-text-box #tbxName placeholder=\"Enter filter's title here\"\n (onKey)=\"tbxNameOnKey($event)\">\n <ax-button title=\"Save\" type=\"primary\" (onClick)=\"applySaveFilter()\">\n <i class=\"far fa-check\"></i>\n </ax-button>\n <ax-button title=\"Cancel\" type=\"danger\" (onClick)=\"cancelSaveFilter()\">\n <i class=\"far fa-times\"></i>\n </ax-button>\n <ax-validation>\n <ax-validation-rule type=\"required\" message=\"this field is required\">\n </ax-validation-rule>\n </ax-validation>\n </ax-text-box>\n </li>\n </ng-template>\n </ng-container>\n </ul>\n </ng-container>\n <ng-template #emptyList>\n <div class=\"empty-list\">\n Empty\n </div>\n </ng-template>\n </div>\n </ax-panel-box>\n </div>\n <div class=\"body\" #body>\n <ng-container *ngFor=\"let g of groups\">\n <ax-panel-box #fb>\n <ng-template #header>\n <div class=\"group-header\" *ngIf=\"g.caption\" (click)=\"fb.toggle()\">\n <i\n [ngClass]=\"{ 'far fa-minus-square' : !fb.collapsed ,'fas fa-plus-square' : fb.collapsed }\"></i>\n <span>{{g.caption}}</span>\n </div>\n </ng-template>\n <ng-container *ngFor=\"let c of g.columns\">\n <div class=\"ax-filter-item-header\" [style.margin-bottom.px]=\"c.active ? 0 : 2\">\n <ax-check-box (onValueChanged)=\"onCheckValueChange(c,$event)\" [label]=\"c.caption\"\n [(value)]=\"c.active\">\n </ax-check-box>\n </div>\n <div [hidden]=\"!c.active\">\n <ng-container [ngSwitch]=\"c.type\">\n <ng-container *ngSwitchCase=\"'selection'\">\n <ax-filter-column-selection (valueChange)=\"onValueChange($event)\" [field]=\"c.field\"\n [(active)]=\"c.active\" [mode]=\"c.options.mode\" [items]=\"c.options.items\"\n [dataType]=\"c.options.dataType\">\n </ax-filter-column-selection>\n </ng-container>\n <ng-container *ngSwitchCase=\"'date'\">\n <ax-filter-column-date (valueChange)=\"onValueChange($event)\" [field]=\"c.field\"\n [(active)]=\"c.active\">\n </ax-filter-column-date>\n </ng-container>\n <ng-container *ngSwitchCase=\"'number'\">\n <ax-filter-column-number (valueChange)=\"onValueChange($event)\" [field]=\"c.field\"\n [(active)]=\"c.active\">\n </ax-filter-column-number>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <ax-filter-column-string (valueChange)=\"onValueChange($event)\" [field]=\"c.field\"\n [(active)]=\"c.active\">\n </ax-filter-column-string>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n </ax-panel-box>\n </ng-container>\n </div>\n\n <div *ngIf=\"mode=='click'\" class=\"footer\" #footer>\n <div class=\"filter-panel\">\n <ax-button (onClick)=\"apply()\" type=\"success\" size=\"sm\">\n <i class=\"far fa-filter\"></i>\n Apply Filter\n </ax-button>\n <ax-button (onClick)=\"clear();\" type=\"light \" size=\"sm\">\n <i class=\"far fa-eraser\"></i>\n Clear\n </ax-button>\n </div>\n </div>\n</div>","import { Component, Input, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { AXHtmlUtil, AXMenuItem } from '@acorex/core';\nimport { AXFilterPanelComponent } from '../filter-panel/filter-panel.component';\nimport { AXToolbarItem } from '../../toolbar/toolbar-item';\nimport { AXToolbarMenuComponent } from '../../toolbar/menu/toolbar-menu.component';\nimport { AXMenuComponent } from '../../menu/menu.component';\n\n\n@Component({\n selector: 'ax-toolbar-filter-view',\n templateUrl: './filter-toolbar.component.html',\n styleUrls: ['./filter-toolbar.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: AXToolbarItem, useExisting: AXToolbarFilterViewComponent }]\n})\nexport class AXToolbarFilterViewComponent {\n constructor() { }\n _uid: string = AXHtmlUtil.getUID();\n\n @ViewChild('menu', { static: true }) menu: AXToolbarMenuComponent;\n @ViewChild('contextMenu', { static: true }) contextMenu: AXMenuComponent;\n\n @Input()\n filterPanel: AXFilterPanelComponent;\n\n contextMenuItems: AXMenuItem[] = [\n // {\n // name: 'addFolder',\n // startIcon: 'fas fa-folder',\n // text: 'New Folder',\n // },\n {\n name: 'remove',\n startIcon: 'fas fa-trash',\n text: 'Delete',\n },\n ];\n\n\n\n menuItems: AXMenuItem[] = [\n {\n name: 'root',\n startIcon: 'fas fa-filter',\n text: 'Select All',\n items: [\n {\n name: 'selectAll',\n style: 'f',\n text: 'Select All',\n },\n // {\n // split: true,\n // name: 'addFolder',\n // startIcon: 'fas fa-folder',\n // text: 'New Folder',\n // },\n {\n divider: true,\n name: 'save',\n startIcon: 'fas fa-save',\n text: 'Save'\n },\n {\n divider: true,\n name: 'saveAs',\n startIcon: 'fas fa-save',\n text: 'Save As...'\n }\n ]\n }\n\n ];\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.selectAll();\n this.addPredefinedList();\n }, 100);\n }\n\n addPredefinedList() {\n this.filterPanel.predefinedFilters.forEach(c => {\n const item = {\n name: c.name,\n text: c.title,\n type: 'f',\n startIcon: 'fas',\n data: c.value,\n style: this._uid,\n uid: AXHtmlUtil.getUID()\n };\n this.root.items.splice(1, 0, item);\n });\n this.update();\n }\n\n public selectAll(): void {\n this.setCurrent(this.root.items[0]);\n this.filterPanel.clear();\n this.update();\n this.menu.close();\n // this.contextMenu.close();\n }\n\n itemClick(e: AXMenuItem) {\n\n if (e.style === 'f') {\n if (e.name === 'selectAll') {\n this.selectAll();\n }\n else {\n this.setCurrent(e);\n this.filterPanel.load(e.data);\n }\n }\n else {\n if (e.name === 'saveAs') {\n const name = prompt('Please enter the name;');\n if (name) {\n const item = {\n text: name,\n type: 'f',\n style: this._uid,\n startIcon: 'fas',\n data: this.filterPanel.value,\n uid: AXHtmlUtil.getUID()\n };\n this.root.items.splice(1, 0, item);\n this.setCurrent(item);\n }\n\n }\n if (e.name === 'save') {\n const selected = this.findSelected();\n if (selected) {\n selected.data = this.filterPanel.value;\n }\n }\n }\n this.update();\n }\n\n private findSelected(): AXMenuItem {\n return this.root.items.find(c => c.selected);\n }\n\n private get root(): AXMenuItem {\n return this.menuItems[0];\n }\n\n public update(): void {\n this.menu.update();\n setTimeout(() => {\n // this.contextMenu.update();\n }, 100);\n\n }\n\n private setCurrent(e: AXMenuItem) {\n this.root.text = e.text;\n this.root.items.filter(c => c.style === 'f').forEach(c => {\n c.selected = false;\n c.startIcon = 'fas';\n });\n e.selected = true;\n e.startIcon = 'fas fa-check';\n this.root.items.find(c => c.name === 'save').visible = e.name !== 'selectAll';\n }\n\n onCtxClick(e: AXMenuItem) {\n const target = this.contextMenu.currentTarget as HTMLElement;\n const menuId = target.getAttribute('data-uid');\n if (e.name === 'remove' && menuId) {\n this.root.items = this.root.items.filter(c => c.uid !== menuId);\n this.selectAll();\n }\n }\n}\n","<ax-toolbar-menu [items]=\"menuItems\" (onItemClick)=\"itemClick($event)\" #menu >\n \n</ax-toolbar-menu>\n<ax-menu target=\".{{_uid}}\" [items]=\"contextMenuItems\" direction=\"vertical\" #contextMenu (onItemClick)=\"onCtxClick($event)\">\n</ax-menu>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXPanelBoxComponent } from './panel-box.component';\n@NgModule({\n declarations: [AXPanelBoxComponent],\n imports: [CommonModule],\n exports: [AXPanelBoxComponent],\n providers: []\n})\nexport class AXPanelBoxModule {}\n","import {\n Component, Input, ChangeDetectorRef, ChangeDetectionStrategy,\n ViewEncapsulation, ContentChild, ViewChild, ElementRef\n} from '@angular/core';\nimport { AXBaseComponent, AXBaseSizableComponent, AXElementSize, AXValidatableComponent } from '../base/element.class';\n\n@Component({\n selector: 'ax-form-group',\n templateUrl: './form-group.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { style:'width: 100%; display:contents;' }\n})\nexport class AXFormGroupComponent extends AXBaseComponent implements AXBaseSizableComponent {\n @Input()\n size: AXElementSize = 'md';\n\n @ViewChild('div')\n div: ElementRef\n\n @ContentChild(AXValidatableComponent)\n private component: AXValidatableComponent;\n\n required: boolean = false;\n\n constructor(private cdr: ChangeDetectorRef) {\n super();\n }\n\n\n ngAfterViewInit(): void {\n this.required = this.component?.validation?.rules?.some(c => c.type === 'required');\n this.div.nativeElement.classList.add(this.size)\n if (this.required) {\n this.div.nativeElement.classList.add('required-state')\n }\n }\n\n}\n","<div class=\"ax form-group {{size}}\">\n <ng-content select=\"ax-label\"></ng-content>\n <div #div class=\"ax form-item {{size}}\" [ngClass]=\"{'required-state': required}\">\n <div class=\"ax buttons start-buttons\" #startButtons>\n <ng-content select=\"ax-button[start]\"></ng-content>\n </div>\n <div class=\"content\" #content>\n <ng-content></ng-content>\n </div>\n <div class=\"ax buttons end-buttons\" #endButtons>\n <ng-content select=\"ax-button[end]\"></ng-content>\n <ng-content select=\"ax-button\"></ng-content>\n </div>\n </div>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXFormGroupComponent } from './form-group.component';\n\nconst COMPONENT = [AXFormGroupComponent];\nconst MODULES = [CommonModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXFormGroupModule { }","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { NgxMaskDirective, NgxMaskPipe, provideNgxMask } from 'ngx-mask';\nimport { AXButtonModule } from '../button/button.module';\nimport { AXTextBoxComponent } from './textbox.component';\n\nimport { FormsModule } from '@angular/forms';\nconst COMPONENT = [AXTextBoxComponent];\nconst MODULES = [\n CommonModule,\n AXButtonModule,\n NgxMaskDirective,\n NgxMaskPipe,\n FormsModule,\n];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [provideNgxMask()],\n})\nexport class AXTextBoxModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXDropdownComponent } from './dropdown.component';\nimport { AXFormGroupModule } from '../form-group/form-group.module';\nimport { AXTextBoxModule } from '../textbox/textbox.module';\nimport { AXButtonModule } from '../button/button.module';\nimport { AXPopoverModule } from '../popover/popover.module';\nimport { OverlayModule } from '@angular/cdk/overlay';\n\nconst COMPONENT = [AXDropdownComponent];\nconst MODULES = [CommonModule, AXFormGroupModule, AXTextBoxModule, AXButtonModule, AXPopoverModule, OverlayModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXDropdownModule { }\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { NgxMaskDirective, NgxMaskPipe, provideNgxMask } from 'ngx-mask';\nimport { AXButtonModule } from '../button/button.module';\nimport { AXCalendarBoxModule } from '../calendar/calendar-box/calendar-box.module';\nimport { AXDropdownModule } from '../dropdown/dropdown.module';\nimport { AXTextBoxModule } from '../textbox/textbox.module';\nimport { AXDatePickerComponent } from './date-picker.component';\n\n@NgModule({\n declarations: [AXDatePickerComponent],\n imports: [\n CommonModule,\n FormsModule,\n AXDropdownModule,\n AXCalendarBoxModule,\n AXButtonModule,\n AXTextBoxModule,\n NgxMaskDirective,\n NgxMaskPipe,\n FormsModule,\n ],\n exports: [AXDatePickerComponent],\n providers: [provideNgxMask()],\n})\nexport class AXDatePickerModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXToastService } from './toast.service';\nimport { AXToastWrapperComponent } from './toast-wrapper/toast-wrapper.component';\nimport { AXToastMessageComponent } from './toast-message/toast-message.component';\n@NgModule({\n declarations: [AXToastWrapperComponent, AXToastMessageComponent],\n imports: [CommonModule],\n exports: [AXToastWrapperComponent],\n providers: [AXToastService]\n})\nexport class AXToastModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXSelectionListComponent } from './selection-list.component';\nimport { AXCheckBoxModule } from '../checkbox/checkbox.module';\nimport { FormsModule } from '@angular/forms';\n\n@NgModule({\n declarations: [AXSelectionListComponent],\n imports: [CommonModule, FormsModule, AXCheckBoxModule],\n exports: [AXSelectionListComponent],\n providers: []\n})\nexport class AXSelectionListModule { }\n","import {\n Component,\n OnInit,\n QueryList,\n ContentChildren,\n Input,\n Output,\n EventEmitter,\n ElementRef,\n ChangeDetectorRef\n} from '@angular/core';\nimport { AXValidationResult } from './validation.class';\nimport { AXValidatableComponent } from '../base/element.class';\nimport { AXBaseEvent } from '../base/events.class';\n@Component({\n selector: 'ax-validation-form',\n template: '<ng-content></ng-content>'\n})\nexport class AXValidationFormComponent {\n\n constructor(private ref: ElementRef, private cdr: ChangeDetectorRef) { }\n\n\n private widgets: AXValidatableComponent[] = [];\n\n\n @ContentChildren(AXValidatableComponent, { descendants: true })\n private widgetsQuery: QueryList<AXValidatableComponent>;\n\n @Input()\n validateOn: 'blur' | 'change' | 'submit' = 'submit';\n\n @Output()\n onInit: EventEmitter<AXBaseEvent> = new EventEmitter<AXBaseEvent>();\n\n\n ngAfterViewInit() {\n this.onInit.emit({\n component: this,\n htmlElement: this.ref.nativeElement\n });\n }\n\n validate(): Promise<AXValidationResult> {\n this.widgets.push(...this.widgetsQuery.toArray().filter(c => !this.widgets.includes(c)));\n //\n this.widgets.forEach(w => {\n if (w.validation && w.validation.validateOn == null) {\n w.validation.validateOn = this.validateOn;\n }\n });\n\n return new Promise<AXValidationResult>(resolve => {\n if (!this.widgets || this.widgets.length === 0) {\n return Promise.resolve({ result: true });\n }\n Promise.all(this.widgets.map((c) => c.validate())).then((rules: any) => {\n const failed = rules.filter((c: any) => !c.result);\n if (failed.length) {\n resolve({\n result: false,\n items: failed\n });\n }\n else {\n resolve({ result: true });\n }\n });\n });\n }\n\n\n addWidget(widget: AXValidatableComponent) {\n if(widget)\n this.widgets.push(widget);\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXValidationFormComponent } from './validation-form.component';\nimport { AXValidationComponent } from './validation.component';\nimport { AXValidationRuleComponent, AXValidationRules } from './validation-rule.widget';\nimport { AXTranslator } from '@acorex/core';\n\n\n@NgModule({\n declarations: [AXValidationFormComponent, AXValidationComponent, AXValidationRuleComponent],\n imports: [CommonModule],\n exports: [AXValidationFormComponent, AXValidationComponent, AXValidationRuleComponent],\n providers: []\n})\nexport class AXValidationModule {\n constructor() {\n AXValidationRules.addRule('email', {\n message: AXTranslator.get('validation.messages.email'),\n type: 'regex',\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])?)*$/\n })\n AXValidationRules.addRule('phone', {\n message: AXTranslator.get('validation.messages.phone'),\n type: 'regex',\n value: /^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$/\n })\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXFilterPanelComponent } from './filter-panel/filter-panel.component';\nimport { AXFilterColumnStringComponent } from './columns/filter-column-string.component';\nimport { FormsModule } from '@angular/forms';\nimport { AXFilterColumnSelectionComponent } from './columns/filter-column-selection.component';\nimport { AXFilterColumnDateComponent } from './columns/filter-column-date.component';\nimport { AXFilterColumnNumberComponent } from './columns/filter-column-number.component';\nimport { AXToolbarFilterViewComponent } from './toolbar/filter-toolbar.component';\nimport { AXPanelBoxModule } from '../panel-box/panel-box.module';\nimport { AXDatePickerModule } from '../date-picker/date-picker.module';\nimport { AXCheckBoxModule } from '../checkbox/checkbox.module';\nimport { AXTextBoxModule } from '../textbox/textbox.module';\nimport { AXToastModule } from '../toast/toast.module';\nimport { AXToolbarModule } from '../toolbar/toolbar.module';\nimport { AXMenuModule } from '../menu/menu.module';\nimport { AXSelectionListModule } from '../selection-list/selection-list.module';\nimport { AXButtonModule } from '../button/button.module';\nimport { AXValidationModule } from '../validation/validation.module';\n\n\n\n\nconst COMPONENTS = [\n AXFilterPanelComponent,\n AXFilterColumnStringComponent,\n AXFilterColumnSelectionComponent,\n AXFilterColumnDateComponent,\n AXFilterColumnNumberComponent,\n AXToolbarFilterViewComponent,\n]\n\n@NgModule({\n declarations: [COMPONENTS],\n imports: [\n CommonModule,\n FormsModule,\n AXPanelBoxModule,\n AXDatePickerModule,\n AXCheckBoxModule,\n AXTextBoxModule,\n AXValidationModule,\n AXToastModule,\n AXToolbarModule,\n AXMenuModule,\n AXSelectionListModule,\n AXButtonModule\n ],\n exports: [COMPONENTS],\n providers: [],\n})\nexport class AXFilterModule { }","import { ContentChild, Input, Directive } from '@angular/core';\nimport { AXDataSourceComponent } from '../../data-source/datasource.component';\nimport { AXDataSourceReadParams } from '../../data-source/read-param';\nimport { AXBaseComponent } from '../../base/element.class';\n\n\n@Directive()\nexport abstract class AXDataListComponent extends AXBaseComponent {\n\n\n\n @Input()\n items: any[] = [];\n\n // @ContentChild(AXDataSourceComponent, { static: true })\n // private _contentDataSource: AXDataSourceComponent;\n\n // private _dataSource: AXDataSourceComponent;\n\n // @Input()\n // public get dataSource(): AXDataSourceComponent {\n // return this._dataSource ? this._dataSource : this._contentDataSource;\n // }\n\n // public set dataSource(v: AXDataSourceComponent) {\n // this._dataSource = v;\n // }\n\n\n abstract dataSource: AXDataSourceComponent;\n\n\n // ngAfterContentInit(): void {\n // this.configDataList();\n // }\n\n\n protected configDataList() {\n if (this.dataSource) {\n this.dataSource.onDataReceived.subscribe(c => {\n this.dataReceived(c.data.result);\n });\n }\n }\n\n private dataReceived(data: any) {\n this.items = data;\n }\n\n private params: AXDataSourceReadParams = {};\n\n fetch(params: AXDataSourceReadParams = {}) {\n this.params = params;\n if (this.dataSource) {\n this.dataSource.fetch(params);\n }\n }\n\n refresh() {\n this.fetch(this.params);\n }\n}\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { AXToolbarItem } from '../../toolbar/toolbar-item';\nimport { AXValueEvent } from '../../base/events.class';\n\nexport type AXListViewDirection = \"vertical\" | \"vertical-wrap\" | \"horizontal-wrap\" | \"horizontal\";\n\n@Component({\n selector: 'ax-toolbar-list-view',\n template: `\n <div class=\"btn-group\" role=\"group\">\n <button type=\"button\" class=\"btn btn-light btn-sm\" *ngIf=\"vertical\" [class.active]=\"direction=='vertical'\" (click)=\"direction='vertical'\" title=\"vertical\">\n <i class=\"far fa-bars\"></i>\n </button>\n <button type=\"button\" class=\"btn btn-light btn-sm\" *ngIf=\"verticalWrap\" [class.active]=\"direction=='vertical-wrap'\" (click)=\"direction='vertical-wrap'\" title=\"vertical-wrap\">\n <i class=\"far fa-grip-horizontal\"></i>\n </button>\n <button type=\"button\" class=\"btn btn-light btn-sm\" *ngIf=\"horizontalWrap\" [class.active]=\"direction=='horizontal-wrap'\" title=\"horizontal-wrap'\" (click)=\"direction='horizontal-wrap'\" title=\"horizontal-wrap\">\n <i class=\"far fa-bars fa-rotate-90\"></i>\n </button>\n <button type=\"button\" class=\"btn btn-light btn-sm\" *ngIf=\"horizontal\" [class.active]=\"direction=='horizontal'\" (click)=\"direction='horizontal'\" title=\"horizontal\">\n <i class=\"far fa-grip-horizontal fa-rotate-90\"></i>\n </button>\n </div>\n `,\n providers: [{ provide: AXToolbarItem, useExisting: AXToolbarListViewComponent }]\n})\nexport class AXToolbarListViewComponent {\n constructor() { }\n\n @Input('vertical')\n vertical: boolean = true;\n\n @Input('vertical-wrap')\n verticalWrap: boolean = true;\n\n @Input('horizontal-wrap')\n horizontalWrap: boolean = true;\n\n @Input('horizontal')\n horizontal: boolean = true;\n\n\n @Output()\n onDirectionChanged: EventEmitter<AXValueEvent<AXListViewDirection>> = new EventEmitter<AXValueEvent<AXListViewDirection>>();\n\n private _direction: AXListViewDirection = \"vertical\";\n @Input()\n public get direction(): AXListViewDirection {\n return this._direction;\n }\n public set direction(v: AXListViewDirection) {\n if (v != this._direction) {\n const old = this._direction;\n this._direction = v;\n this.onDirectionChanged.emit({\n component: this,\n value: v,\n oldValue: old\n });\n }\n }\n\n}\n","import {\n Component,\n ContentChild,\n TemplateRef,\n Input,\n Output,\n EventEmitter\n} from \"@angular/core\";\nimport { AXDataListComponent } from \"../core/data-list.component\";\nimport {\n AXToolbarListViewComponent,\n AXListViewDirection\n} from \"./toolbar-list-view.component\";\nimport { ViewEncapsulation } from \"@angular/core\";\nimport { AXToolbarSearchComponent } from '../../toolbar/search/toolbar-search.component';\nimport { AXToolbarComponent } from '../../toolbar/toolbar.component';\nimport { AXEvent, AXValueEvent } from '../../base/events.class';\nimport { AXDataSourceComponent } from '../../data-source/datasource.component';\n\n\n\n\n\n\n@Component({\n selector: \"ax-list\",\n templateUrl: \"./list.component.html\",\n styleUrls: [\"./list.component.scss\"],\n encapsulation: ViewEncapsulation.None\n})\nexport class AXListComponent extends AXDataListComponent {\n constructor() {\n super();\n }\n @Input() width: string = \"\";\n @Input() height: string = \"auto\";\n\n @Input(\"dropId\") public dropId: string;\n @Input(\"connectedList\") public connectedList: string[] = [];\n\n @Input() public allowMoveItem: boolean = false;\n\n\n @ContentChild(AXDataSourceComponent, { static: true })\n private _contentDataSource: AXDataSourceComponent;\n\n private _dataSource: AXDataSourceComponent;\n\n @Input()\n public get dataSource(): AXDataSourceComponent {\n return this._dataSource ? this._dataSource : this._contentDataSource;\n }\n\n public set dataSource(v: AXDataSourceComponent) {\n this._dataSource = v;\n }\n\n\n @ContentChild('itemTemplate', { static: true })\n _contentItemTemplate: TemplateRef<any>;\n\n\n private _itemTemplate: TemplateRef<any>;\n @Input()\n public get itemTemplate(): TemplateRef<any> {\n return this._itemTemplate ? this._itemTemplate : this._contentItemTemplate;\n }\n public set itemTemplate(v: TemplateRef<any>) {\n this._itemTemplate = v;\n }\n\n\n\n\n @ContentChild('emptyTemplate', { static: true })\n _contentEmptyTemplate: TemplateRef<any>;\n\n private _emptyTemplate: TemplateRef<any>;\n @Input()\n public get emptyTemplate(): TemplateRef<any> {\n return this._emptyTemplate ? this._emptyTemplate : this._contentEmptyTemplate;\n }\n public set emptyTemplate(v: TemplateRef<any>) {\n this._emptyTemplate = v;\n }\n\n\n @ContentChild(AXToolbarSearchComponent, { static: true })\n searchToolbar: AXToolbarSearchComponent;\n\n @ContentChild(AXToolbarListViewComponent, { static: true })\n viewToolbar: AXToolbarListViewComponent;\n\n @ContentChild(AXToolbarComponent, { static: true })\n toolbar: AXToolbarComponent;\n\n\n\n @Output()\n onDirectionChanged: EventEmitter<AXValueEvent<AXListViewDirection>> = new EventEmitter<AXValueEvent<AXListViewDirection>>();\n\n private _direction: AXListViewDirection = \"vertical\";\n @Input()\n public get direction(): AXListViewDirection {\n return this._direction;\n }\n public set direction(v: AXListViewDirection) {\n if (this._direction != v) {\n const old = this._direction;\n this._direction = v;\n this.setDirection(v);\n this.onDirectionChanged.emit({\n component: this,\n value: v,\n oldValue: old\n });\n }\n }\n\n\n ngAfterViewInit(): void {\n this.fetch();\n if (this.viewToolbar) {\n this.viewToolbar.onDirectionChanged.subscribe(c => {\n this.direction = c.value;\n });\n }\n }\n\n private setDirection(e: AXListViewDirection) {\n this.direction = e;\n }\n\n\n\n // dragDrop(event: CdkDragDrop<any[]>) {\n // if (event.previousContainer === event.container) {\n // moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\n // } else {\n // transferArrayItem(event.previousContainer.data,\n // event.container.data,\n // event.previousIndex,\n // event.currentIndex);\n // }\n // }\n dragDrop(event: any) {\n\n }\n}\n","<div [style.height]=\"height\" [style.width]=\"width\">\n <div class=\"ax-list-toolbar\" *ngIf=\"toolbar\">\n <ng-content select=\"ax-toolbar\"></ng-content>\n </div>\n <div class=\"ax-list-container\" cdkDropList [id]=\"dropId\" [cdkDropListConnectedTo]=\"connectedList\"\n (cdkDropListDropped)=\"dragDrop($event)\" [cdkDropListData]=\"items\"\n [ngClass]=\"{'overflow-y': direction=='vertical' || direction=='horizontal-wrap','overflow-x': direction=='horizontal' || direction=='vertical-wrap'}\">\n <div class=\"item-wrapper\" [ngClass]=\"direction\">\n <!-- <ng-container *ngIf=\"items && items.length; else emptyTemplate\"> -->\n <ng-container *ngIf=\"allowMoveItem; else elseTemplate\">\n <div class=\"ax-list-item\" *ngFor=\"let item of items\" cdkDrag [cdkDragData]=\"item\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item,direction:direction}\">\n </ng-container>\n <div class=\"drop-placeholder\" *cdkDragPlaceholder></div>\n </div>\n </ng-container>\n <ng-template #elseTemplate>\n <div class=\"ax-list-item\" *ngFor=\"let item of items\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item,direction:direction }\">\n </ng-container>\n </div>\n </ng-template>\n <!-- </ng-container> -->\n\n </div>\n <ng-container *ngIf=\"items==null || items.length==0\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\">\n </ng-container>\n </ng-container>\n\n </div>\n</div>","import { NgModule } from '@angular/core';\nimport { AXDataSourceComponent } from './datasource.component';\nimport { AXHttpModule } from '@acorex/core';\n\n@NgModule({\n declarations: [AXDataSourceComponent],\n imports: [],\n exports: [AXDataSourceComponent],\n providers: [],\n})\nexport class AXDataSourceModule { }","import { NgModule } from '@angular/core';\nimport { AXListComponent } from './list.component';\nimport { CommonModule } from '@angular/common';\nimport { AXToolbarListViewComponent } from './toolbar-list-view.component';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { AXDataSourceModule } from '../../data-source/datasource.module';\n\n@NgModule({\n declarations: [AXListComponent, AXToolbarListViewComponent],\n imports: [CommonModule, AXDataSourceModule, DragDropModule],\n exports: [AXListComponent, AXToolbarListViewComponent],\n providers: [],\n})\nexport class AXListModule { }","import { Component, OnInit, Input, ViewEncapsulation } from '@angular/core';\nimport { AXButtonItem } from '@acorex/core';\nimport { AXMenuItemClickEvent } from '../menu/menu.component';\nimport { AXBasePopupPageComponent } from '../base/base-page.class';\n\n@Component({\n selector: 'ax-dialog',\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class AXDialogComponent extends AXBasePopupPageComponent {\n message: any;\n\n buttons: AXButtonItem[] = [];\n\n constructor() {\n super();\n }\n\n onClick: Function;\n\n onFooterButtonClick(e: AXMenuItemClickEvent) {\n if (this.onClick) {\n this.onClick(e.data);\n }\n }\n\n getFooterButtons(): AXButtonItem[] {\n return this.buttons;\n }\n}\n","<div class=\"ax-dialog\">\n <div class=\"dialog-content\" [innerHTML]=\"message\">\n \n </div>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXDialogComponent } from './dialog.component';\nimport { AXButtonModule } from '../button/button.module';\nimport { AXTranslatorModule } from '@acorex/core';\n\n@NgModule({\n declarations: [AXDialogComponent],\n imports: [CommonModule, AXButtonModule,AXTranslatorModule],\n exports: [AXDialogComponent],\n providers: [],\n})\nexport class AXDialogModule { }","import {\n Component,\n Input,\n EventEmitter,\n ViewChild,\n ViewContainerRef,\n OnInit,\n ComponentFactoryResolver,\n ViewEncapsulation,\n HostListener,\n ElementRef,\n ComponentRef,\n OnDestroy,\n Output,\n ChangeDetectorRef,\n ChangeDetectionStrategy,\n SimpleChanges,\n TemplateRef\n} from '@angular/core';\nimport { AXBaseComponent } from '../base/element.class';\nimport { AXPageCloseEvent, TAB_META_KEY } from '../base/base-page.class';\nimport { AXButtonItem, AXPlatform, AXRenderService } from '@acorex/core';\nimport { AXLoadingService } from '../loading/loading.service';\nimport { Subscription } from 'rxjs';\n\n@Component({\n templateUrl: './popup.component.html',\n styleUrls: ['./popup.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXPopupComponent extends AXBaseComponent implements OnDestroy {\n\n isLoading: boolean = true;\n _loadingId: number;\n private onFooterButtonsSubscription: Subscription;\n\n constructor(\n private resolver: ComponentFactoryResolver,\n private ref: ElementRef<HTMLDivElement>,\n private rendererService: AXRenderService,\n private loadingService: AXLoadingService,\n private cdr: ChangeDetectorRef,\n private _platform: AXPlatform\n\n ) {\n super();\n }\n\n ngAfterViewInit() {\n this._loadingId = this.loadingService.show(this.ref.nativeElement.querySelector('.ax-popup-body-container'));\n if (typeof this.content === 'string') {\n this.rendererService.findLoadedComponentByRoute(this.content, 20).then(route => {\n setTimeout(() => {\n this.loadComponent(route?.component);\n }, 300);\n });\n }\n else if (this.content instanceof TemplateRef) {\n const view = this.content.createEmbeddedView({ $implicit: this.data });\n this.popupBody.insert(view);\n this.isLoading = false;\n this.loadingService.hide(this._loadingId);\n }\n else if (typeof this.content === 'function') {\n setTimeout(() => {\n this.loadComponent(this.content);\n });\n }\n }\n\n\n private loadComponent(component: any) {\n\n if (component == null) {\n //TODO: 404 page component\n console.error(`Invalid page Component! ${this.content}`);\n return;\n }\n ///\n try {\n const factory = this.resolver.resolveComponentFactory(component);\n this.comRef = this.popupBody.createComponent(factory);\n const com = this.comRef.instance as any;\n if (com.onClosed) {\n com.onClosed.subscribe((e: AXPageCloseEvent) => {\n this.onClosed.emit(e);\n });\n }\n this[TAB_META_KEY].component = com;\n Object.assign(this[TAB_META_KEY].component, this.data);\n //\n if (com.getFooterButtons) {\n this.footerButtons = com.getFooterButtons();\n }\n if (com.onFooterButtonsChanged) {\n this.onFooterButtonsSubscription = (com.onFooterButtonsChanged as EventEmitter<AXButtonItem[]>).subscribe(c => {\n console.log(\"onFooterButtonsChanged\", c);\n this.footerButtons = c;\n this.cdr.detectChanges();\n }) as any;\n }\n //\n this.focus();\n this.isLoading = false;\n this.loadingService.hide(this._loadingId);\n setTimeout(() => {\n this.comRef.changeDetectorRef.detectChanges();\n }, 100);\n this.cdr.detectChanges();\n } catch (error) {\n //TODO: 404 page component\n console.error(error);\n }\n }\n\n @ViewChild('popupBody', { read: ViewContainerRef, static: true })\n private popupBody: ViewContainerRef;\n\n @HostListener('keydown.escape', ['$event'])\n onKeydownHandler(event: KeyboardEvent) {\n if (this.closable) {\n this.onCloseClick();\n }\n }\n\n private comRef: ComponentRef<any>;\n\n title: string;\n\n onClosed: EventEmitter<AXPageCloseEvent> = new EventEmitter<AXPageCloseEvent>();\n\n size: 'sm' | 'md' | 'lg' | 'full' = 'sm';\n modal: boolean = true;\n\n data: any = {};\n\n maximizable: boolean = false;\n\n closable: boolean = true;\n\n content: any;\n\n headerButtons: AXButtonItem[] = [];\n\n footerButtons: AXButtonItem[] = [];\n\n onCloseClick() {\n this.onClosed.emit({\n component: this[TAB_META_KEY].component,\n htmlElement: this.ref.nativeElement,\n });\n this.cdr.detectChanges();\n }\n\n ngOnDestroy() {\n if (this.comRef) {\n this.comRef.destroy();\n }\n if (this.onFooterButtonsSubscription) {\n this.onFooterButtonsSubscription.unsubscribe();\n }\n this.cdr.detectChanges();\n this.loadingService.hide(this._loadingId);\n }\n\n focus() {\n setTimeout(() => this.ref.nativeElement.focus());\n }\n\n onFullScreen() { }\n\n handleFooterButtonClick(e: AXButtonItem) {\n if (e.onClick) {\n e.onClick();\n }\n else if (this[TAB_META_KEY].component.onFooterButtonClick) {\n this[TAB_META_KEY].component.onFooterButtonClick({\n component: this[TAB_META_KEY].component,\n name: e.name,\n data: e,\n htmlElement: this.ref.nativeElement,\n });\n }\n }\n}\n","<div class=\"popup-wrapper\" role=\"dialog\" [attr.aria-labelledby]=\"'dialog'+uid+'_label'\" aria-modal=\"true\" cdkTrapFocus>\n <div class=\"popup-container {{size}}\" tabindex=\"0\" cdkDrag [class.has-border]=\"!modal\">\n <div class=\"ax-popup-header\" cdkDragHandle [attr.id]=\"'dialog'+uid+'_label'\">\n <span>\n {{title}}\n </span>\n <span class=\"ax-buttons-containers\">\n <i class=\"far fa-expand ax-popup-header-button\" (click)=\"onFullScreen()\" *ngIf=\"maximizable\" tabindex=\"2\"\n title=\"تمام صفحه\"></i>\n <i class=\"far fa-times ax-popup-header-button\" (click)=\"onCloseClick()\" *ngIf=\"closable\" tabindex=\"1\"\n title=\"بستن\"></i>\n </span>\n </div>\n <div class=\"ax-popup-body ax-loading-host\">\n <div class=\"ax-popup-body-container\">\n <div [hidden]=\"isLoading\">\n <ng-template #popupBody></ng-template>\n </div>\n </div>\n <div class=\"ax-popup-footer\" *ngIf=\"!isLoading && footerButtons.length > 0\">\n <div class=\"ax-buttons-containers\">\n <ng-container *ngFor=\"let button of footerButtons\">\n <ax-button [type]=\"button.style\" [icon]=\"button.icon\" [submitBehavior]=\"button.submitBehavior\"\n [disabled]=\"button.disable\" [cancelBehavior]=\"button.cancelBehavior\"\n (click)=\"handleFooterButtonClick(button)\">\n {{button.text}}\n </ax-button>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n</div>","import { Injectable } from '@angular/core';\nimport { AXPopupComponent } from './popup.component';\nimport { AXButtonItem } from '@acorex/core';\nimport { TAB_META_KEY, AXPageClosedPromise, AXPageCloseEvent } from '../base/base-page.class';\nimport { AXOverlayService, AXOverlayViewRef } from '../popover/overlay.service';\nimport { options } from '@amcharts/amcharts4/core';\n\n\n@Injectable({ providedIn: 'root' })\nexport class AXPopupService {\n private stack: Array<AXPopupComponent> = [];\n\n constructor(private overlayService: AXOverlayService) { }\n\n\n open(content: any, title: string): AXPageClosedPromise;\n open(\n content: any,\n options?: {\n title: string;\n closable?: boolean;\n maximizable?: boolean;\n size?: 'sm' | 'md' | 'lg' | 'full';\n data?: any;\n footerButtons?: AXButtonItem[],\n modal?: boolean\n }\n ): AXPageClosedPromise;\n\n open(arg1, arg2): AXPageClosedPromise {\n const options: any = {\n closable: true,\n size: 'md',\n maximizable: false,\n footerButtons: [],\n modal: true,\n };\n\n if (typeof arg2 === 'string') {\n options.title = arg2;\n } else {\n Object.assign(options, arg2);\n }\n const com = this.overlayService.show(AXPopupComponent, options, {\n transparentBackdrop: false,\n hasBackdrop: options.modal,\n closeOnClickOutside: false,\n scroll: 'block'\n });\n const popup = com.instance as AXPopupComponent;\n popup.content = arg1;\n popup[TAB_META_KEY] = {};\n if (options.size) {\n popup.size = options.size;\n }\n if (options.footerButtons) {\n popup.footerButtons = options.footerButtons;\n }\n this.stack.push(popup);\n popup.onClosed.subscribe(c => {\n this.closePopup(popup, com, c);\n });\n const promise = new AXPageClosedPromise((resolve) => {\n popup[TAB_META_KEY].close = (e) => {\n if (resolve) {\n resolve(e);\n }\n };\n });\n promise['closeMethod'] = () => { popup.onCloseClick(); };\n return promise;\n }\n\n\n private closePopup(popup: AXPopupComponent, com: AXOverlayViewRef, result: AXPageCloseEvent) {\n const closeFunc = (e) => {\n com.dispose();\n this.stack.pop();\n delete e.cancel;\n popup[TAB_META_KEY].close(e);\n if (this.stack.length) { this.stack.reverse()[0].focus(); }\n };\n const e = { cancel: false };\n const closingFunc = popup[TAB_META_KEY]?.component?.onClosing;\n if (closingFunc) {\n const res = closingFunc(e);\n if (res instanceof Promise) {\n res.then(() => {\n if (e == null || e.cancel !== true) {\n closeFunc(result);\n }\n });\n }\n else {\n if (e == null || e.cancel !== true) {\n closeFunc(result);\n }\n }\n } else {\n closeFunc(result);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AXDialogComponent } from './dialog.component';\nimport { AXPopupService } from '../popup/popup.service';\nimport { AXButtonItem, AXTranslator } from '@acorex/core';\n\nexport class AXDialogAlertResult {\n private _executor: (close: (e?: any) => void) => void;\n constructor(\n executor: (close: (e?: any) => void) => void\n ) {\n this._executor = executor;\n setTimeout(() => {\n this._executor(this.closeAction);\n }, 50);\n }\n\n private closeAction: (e?: any) => void;\n\n close(action: (e?: any) => void): AXDialogAlertResult {\n this.closeAction = action;\n return this;\n }\n\n}\n\nexport class AXDialogConfirmResult {\n private _executor: (okay: () => void, cancel: () => void, final: () => void) => void;\n constructor(\n executor: (okay: () => void, cancel: () => void, final: () => void) => void\n ) {\n this._executor = executor;\n setTimeout(() => {\n this._executor(this.okayAction, this.cancelAction, this.finalAction);\n }, 50);\n }\n\n private okayAction: () => void;\n private cancelAction: () => void;\n private finalAction: () => void;\n\n okay(action: () => void): AXDialogConfirmResult {\n this.okayAction = action;\n return this;\n }\n cancel(action: () => void): AXDialogConfirmResult {\n this.cancelAction = action;\n\n return this;\n }\n final(action: () => void) {\n this.finalAction = action;\n }\n}\n\n\nexport class AXDialogResult {\n private _executor: (then: (name: string) => void, final: () => void) => void;\n constructor(\n executor: (then: (name: string) => void, final: () => void) => void\n ) {\n this._executor = executor;\n setTimeout(() => {\n this._executor(this.thenAction, this.finalAction);\n }, 50);\n }\n\n private thenAction: (name: string) => void;\n private finalAction: () => void;\n\n then(action: (name: string) => void): AXDialogResult {\n this.thenAction = action;\n return this;\n }\n\n final(action: () => void) {\n this.finalAction = action;\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AXDialogService {\n\n constructor(private popupService: AXPopupService) {\n\n }\n\n alert(title: string, message: string): AXDialogAlertResult {\n return new AXDialogAlertResult((close) => {\n const popup = this.popupService.open(AXDialogComponent, {\n title,\n size: 'sm',\n closable: false,\n\n data: {\n message,\n buttons: [\n {\n name: 'confirm',\n text: AXTranslator.get('common.confirm'),\n style: 'success',\n submitBehavior: true,\n }\n ],\n onClick: (e) => {\n popup.close()\n close();\n }\n }\n });\n });\n }\n\n confirm(title: string, message: string): AXDialogConfirmResult {\n return new AXDialogConfirmResult((okay, cancel, final) => {\n const popup = this.popupService.open(AXDialogComponent, {\n title,\n size: 'sm',\n closable: false,\n\n data: {\n buttons: [\n {\n name: 'confirm',\n text: AXTranslator.get('common.confirm'),\n style: 'success',\n submitBehavior: true,\n cancelBehavior: false,\n },\n {\n name: 'cancel',\n text: AXTranslator.get('common.cancel'),\n style: 'danger blank',\n submitBehavior: false,\n cancelBehavior: true,\n }\n ],\n message,\n onClick: (e) => {\n popup.close()\n if (e.name === 'confirm' && okay) {\n okay();\n }\n if (e.name === 'cancel' && cancel) {\n cancel();\n }\n if (final) {\n final();\n }\n }\n }\n })\n });\n }\n\n\n show(title: string, message: string, closable: boolean = false, ...buttons: AXButtonItem[]): AXDialogResult {\n return new AXDialogResult((then, final) => {\n const popup = this.popupService.open(AXDialogComponent, {\n title,\n size: 'sm',\n closable,\n data: {\n message,\n buttons,\n onClick: (e) => {\n popup.close();\n if (then) {\n then(e.name);\n }\n if (final) {\n final();\n }\n }\n }\n });\n });\n }\n}","import { Injectable } from \"@angular/core\";\n\n@Injectable()\nexport abstract class AXComponent {}\n\n@Injectable()\nexport abstract class AXClosbaleComponent extends AXComponent {\n abstract close(): void;\n}\n","import {\n Component,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ElementRef,\n ChangeDetectorRef,\n NgZone,\n Input,\n HostBinding,\n Output,\n EventEmitter\n} from '@angular/core';\nimport { AXClosbaleComponent, AXComponent } from '../base/components.class';\n\nexport type AXDrawerMode = 'push' | 'overlay';\nexport type AXDrawerLocation = 'start' | 'end';\n\n@Component({\n selector: 'ax-drawer',\n template: `\n <ng-content select=\".header\"> </ng-content>\n <ng-content> </ng-content>\n `,\n host: { class: 'ax-drawer' },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: AXComponent, useExisting: AXDrawerComponent },\n { provide: AXClosbaleComponent, useExisting: AXDrawerComponent }\n ]\n})\nexport class AXDrawerComponent {\n constructor(private _elementRef: ElementRef, _cdr: ChangeDetectorRef, private _zone: NgZone) {\n this._elementRef.nativeElement['__axContext__'] = this;\n }\n\n @Output()\n public locationChange: EventEmitter<AXDrawerLocation> = new EventEmitter<AXDrawerLocation>();\n\n private _location: AXDrawerLocation;\n @Input()\n public get location(): AXDrawerLocation {\n return this._location;\n }\n public set location(v: AXDrawerLocation) {\n if (v != this._location) {\n this._location = v;\n this.locationChange.emit(v);\n this._checkProps();\n }\n }\n\n @Output()\n public modeChange: EventEmitter<AXDrawerMode> = new EventEmitter<AXDrawerMode>();\n\n private _mode: AXDrawerMode = 'overlay';\n @Input()\n public get mode(): AXDrawerMode {\n return this._mode;\n }\n public set mode(v: AXDrawerMode) {\n if (v != this._mode) {\n this._mode = v;\n this.modeChange.emit(v);\n this._checkProps();\n }\n }\n\n @Output()\n public collapsedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n private _collapsed: boolean = true;\n @Input()\n public get collapsed(): boolean {\n return this._collapsed;\n }\n public set collapsed(v: boolean) {\n if (v != this._collapsed) {\n this._collapsed = v;\n this.collapsedChange.emit(v);\n this._checkProps();\n }\n }\n\n ngAfterViewInit(): void {\n this._detectBoundingSize();\n }\n\n ngDoCheck() {\n this._detectBoundingSize();\n }\n\n private _detectBoundingSize() {\n this._zone.runOutsideAngular(() => {\n const host = this._elementRef.nativeElement;\n if (host.clientWidth) host.style.setProperty('--ax-el-width', `${host.clientWidth}px`);\n });\n }\n\n private _checkProps() {\n this._detectBoundingSize();\n this._removeBackdrop();\n if (this.mode == 'overlay') {\n if (!this.collapsed) {\n this._addBackdrop();\n }\n }\n }\n\n toggle() {\n this.collapsed = !this.collapsed;\n }\n\n close() {\n this.collapsed = true;\n }\n\n open() {\n this.collapsed = false;\n }\n\n @HostBinding('class')\n private get __hostClass(): string {\n //return `ax-drawer-${this.mode} ax-drawer-${this.location} ${this.collapsed ? 'ax-collapsed' : 'ax-expanded'} ${!this._loaded ? 'ax-preload' : ''}`;\n return `ax-drawer-${this.mode} ax-drawer-${this.location} ${this.collapsed ? 'ax-collapsed' : 'ax-expanded'}`;\n }\n\n private _backdropElement: HTMLElement | any;\n // private _loaded: boolean = false;\n\n private _addBackdrop() {\n this._zone.runOutsideAngular(() => {\n this._backdropElement = document.createElement('div');\n this._backdropElement.classList.add('ax-backdrop');\n this._backdropElement.onclick = () => {\n this._zone.run(() => {\n this.close();\n });\n };\n this._elementRef.nativeElement.parentElement?.appendChild(this._backdropElement);\n });\n }\n private _removeBackdrop() {\n this._zone.runOutsideAngular(() => {\n if (this._backdropElement) {\n this._elementRef.nativeElement.parentElement?.removeChild(this._backdropElement);\n this._backdropElement = null;\n }\n });\n }\n}\n","import {\n Component,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ElementRef,\n ChangeDetectorRef,\n} from '@angular/core';\n\n@Component({\n selector: 'ax-content',\n template: ` <ng-content> </ng-content> `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class AXDecoratorContentComponent {\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\n }\n}\n","import {\n Component,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ElementRef,\n ChangeDetectorRef,\n NgZone,\n} from '@angular/core';\nimport { AXDrawerComponent } from './drawer.component';\n\n@Component({\n selector: 'ax-drawer-container',\n template: `\n <ng-content select=\"ax-drawer[location='start']\"> </ng-content>\n <ng-content> </ng-content>\n <ng-content select=\"ax-drawer[location='end']\"> </ng-content>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXDrawerContainerComponent {\n constructor(\n private elementRef: ElementRef,\n cdr: ChangeDetectorRef,\n private _zone: NgZone\n ) {\n }\n\n ngDoCheck() {\n const host = this.elementRef.nativeElement;\n Array.from(host.querySelectorAll('ax-drawer'))\n .map((c) => c['__axContext__'] as AXDrawerComponent)\n .some((c) => !c?.collapsed)\n ? host.classList.add('ax-visible')\n : host.classList.remove('ax-visible');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXDrawerComponent } from './drawer.component';\nimport { AXDrawerContainerComponent } from './drawer-container.component';\nimport { AXDecoratorContentComponent } from './content.component';\n\nconst COMPONENT = [AXDrawerComponent, AXDrawerContainerComponent,AXDecoratorContentComponent];\nconst MODULES = [CommonModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXDrawerModule { }\n","import { Component, OnInit, ViewEncapsulation, ChangeDetectionStrategy, Input } from '@angular/core';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport { AXBaseSizableComponent, AXElementSize } from '../base/element.class';\n\n@Component({\n selector: 'ax-fieldset',\n templateUrl: './fieldset.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('visibilityChanged', [\n state(\n 'shown',\n style({\n height: '*',\n opacity: 1\n })\n ),\n state(\n 'hidden',\n style({\n height: '0px',\n opacity: 0,\n padding: 0\n })\n ),\n transition('Void => *', animate('0ms')),\n transition('shown => hidden', animate('200ms')),\n transition('hidden => shown', animate('200ms'))\n ])\n ]\n})\nexport class AXFieldsetComponent implements AXBaseSizableComponent {\n @Input()\n size: AXElementSize = \"md\";\n\n @Input()\n caption: string = '';\n\n @Input()\n allowCollapse: boolean = false;\n\n collapsed: boolean = false;\n toggle() {\n if (this.allowCollapse) {\n this.collapsed = !this.collapsed;\n }\n }\n}\n","<fieldset class=\"ax fieldset {{size}}\">\n <legend (click)=\"toggle()\"> {{ caption }} </legend>\n <div class=\"fieldset-content\" [@visibilityChanged]=\"collapsed ? 'hidden' : 'shown'\">\n <ng-content></ng-content>\n </div>\n</fieldset>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXFieldsetComponent } from './fieldset.component';\n\n@NgModule({\n declarations: [AXFieldsetComponent],\n imports: [ CommonModule ],\n exports: [AXFieldsetComponent],\n providers: [],\n})\nexport class AXFieldsetModule {}","import { Component, OnInit, ViewEncapsulation, Input } from '@angular/core';\nimport { AXBaseComponent, AXBaseSizableComponent, AXElementSize } from '../base/element.class';\n\n@Component({\n selector: 'ax-label',\n templateUrl: './label.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class AXLabelComponent extends AXBaseComponent implements AXBaseSizableComponent {\n constructor() {\n super();\n }\n\n @Input()\n size: AXElementSize = 'md';\n\n ngOnInit(): void {}\n}\n","<div class=\"ax form-group-label {{size}}\">\n <label>\n <ng-content></ng-content>\n </label>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXLabelComponent } from './label.component';\n\nconst COMPONENT = [AXLabelComponent];\nconst MODULES = [CommonModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXLabelModule { }","import { Component, OnInit, Input, ElementRef } from '@angular/core';\n\n@Component({\n selector: 'ax-loading-panel',\n template: `\n <div onclick=\"return false;\" class=\"ax ax-loading-panel ax-overlay-wrapper ax-overlay-modal ax-loading-overlay\" *ngIf=\"visible\" >\n <ax-loading-indicator tabindex=\"0\" cdkTrapFocus>\n </ax-loading-indicator>\n </div>\n `\n})\nexport class AXLoadingPanelComponent implements OnInit {\n\n constructor(private ref: ElementRef<HTMLDivElement>) {\n\n }\n\n @Input()\n visible: boolean = false;\n\n ngOnInit(): void {\n\n }\n\n ngAfterViewInit() {\n const host = this.ref.nativeElement.closest('.ax-loading-host');\n }\n\n show() {\n this.visible = true;\n }\n\n hide() {\n this.visible = false;\n }\n}\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXLoadingIndicatorComponent } from './loading-indicator.component';\nimport { AXLoadingPanelComponent } from './loading-panel.component';\nimport { A11yModule } from '@angular/cdk/a11y';\n\n@NgModule({\n declarations: [AXLoadingIndicatorComponent, AXLoadingPanelComponent],\n imports: [CommonModule, A11yModule],\n exports: [AXLoadingIndicatorComponent, AXLoadingPanelComponent],\n providers: [],\n})\nexport class AXLoadingModule { }","import { Component, Input, ElementRef, HostListener, ChangeDetectorRef, ChangeDetectionStrategy, AfterViewInit, OnInit } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport { AXBaseTextComponent, AXValidatableComponent } from '../base/element.class';\n@Component({\n selector: 'ax-number-box',\n templateUrl: './number-box.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { style: 'width: 100%' },\n providers: [{ provide: AXValidatableComponent, useExisting: AXNumberBoxComponent }]\n})\nexport class AXNumberBoxComponent extends AXBaseTextComponent implements OnInit {\n @Input() min: number = null;\n @Input() max: number = null;\n\n @Input()\n showSeparator: boolean = false;\n @Input()\n showCurrency: boolean = false;\n\n @Input()\n showCounter: boolean = true;\n\n @Input()\n scrollWeel: boolean = true;\n\n @Input()\n showDoubleCounter: boolean = false;\n\n @Input()\n maxLength: number = 18;\n\n userQuestionUpdate = new Subject<string>();\n\n userEdite: boolean = false;\n\n tmp: any;\n count: number;\n findDots: boolean = false;\n findMinus: boolean = false;\n cursorPosition: number = 0;\n dotPosition: number;\n textValue: string;\n decimalConstant: number = 0.1;\n lastStep: number = null;\n\n @Input() intStep: number = 1;\n @Input() decimalNumber: number = null;\n @Input() customStep: number = null;\n\n private _values: string;\n public get value(): string {\n return this._values;\n }\n public set value(v: string) {\n if (v === '-') {\n this.textValue = '-';\n this._values = '-';\n } else {\n if (v === '' || v == null || v === undefined ? true : isNaN(Number(v.toString().replace(/,/g, ''))) === false) {\n if (v === '' || v == null || v === undefined) {\n this.textValue = '';\n const old = this._values;\n this._values = null;\n\n if (this._values !== old) {\n this.valueChange.emit(null);\n this.onValueChanged.emit({\n isUserChange: this.userEdite,\n component: this,\n value: null,\n oldValue:\n this.showSeparator && old\n ? old === '-'\n ? null\n : Number(old.replace(/,/g, ''))\n : old === null || old === undefined\n ? null\n : old === '-'\n ? null\n : Number(old),\n htmlElement: this.ref.nativeElement\n });\n this.userEdite = false;\n this.cdr.detectChanges();\n this.clearValidationStyle(this.input.nativeElement);\n }\n } else {\n v = v.toString();\n\n // this.addCommas(v.toString());\n this.textValue = this.showSeparator && v ? this.addCommas(v.toString()) : v;\n\n // if (this.textValue.indexOf('.') !== -1) {\n // // const dottt= (this.textValue.length-1) - this.textValue.indexOf('.')\n // if (this.textValue.length - 1 - this.textValue.indexOf('.') < this.decimalNumber) {\n // const a = this.decimalNumber - (this.textValue.length - 1 - this.textValue.indexOf('.'));\n // const z = '0';\n // this.textValue = this.textValue + '0';\n // }\n // }\n\n if (this._values) {\n const old = this._values;\n if (old.toString().search(/\\./g) !== v.toString().search(/\\./g)) {\n if (this.cursorPosition <= old.search(/\\./g)) {\n this.cursorPosition = v.search(/\\./g);\n } else {\n this.cursorPosition = v.length;\n }\n }\n }\n if (v !== this._values) {\n const old = this._values;\n this._values = v;\n this.valueChange.emit(this.showSeparator && v ? Number(v.replace(/,/g, '')) : Number(v));\n this.onValueChanged.emit({\n isUserChange: this.userEdite,\n component: this,\n value: this.showSeparator && v ? Number(v.replace(/,/g, '')) : Number(v),\n oldValue:\n this.showSeparator && old\n ? old === '-'\n ? null\n : Number(old.replace(/,/g, ''))\n : old === null || old === undefined\n ? null\n : old === '-'\n ? null\n : Number(old),\n htmlElement: this.ref.nativeElement\n });\n this.userEdite = false;\n this.cdr.detectChanges();\n this.clearValidationStyle(this.input.nativeElement);\n }\n }\n } else {\n this.textValue = '';\n v = null;\n const old = this._values;\n this._values = null;\n\n if (this._values !== old) {\n this.valueChange.emit(null);\n this.onValueChanged.emit({\n isUserChange: this.userEdite,\n component: this,\n value: null,\n oldValue:\n this.showSeparator && old\n ? old === '-'\n ? null\n : Number(old.replace(/,/g, ''))\n : old === null || old === undefined\n ? null\n : old === '-'\n ? null\n : Number(old),\n htmlElement: this.ref.nativeElement\n });\n this.userEdite = false;\n this.cdr.detectChanges();\n this.clearValidationStyle(this.input.nativeElement);\n }\n }\n }\n }\n constructor(protected cdr: ChangeDetectorRef, ref: ElementRef) {\n super(cdr, ref);\n this.textAlign = 'left';\n }\n\n calcSeparator(num: number) {\n if (this.showSeparator) {\n return num + +(num / 3);\n } else {\n return num;\n }\n }\n\n addCommas2(x) {\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n }\n\n addCommas(nStr) {\n nStr += '';\n const x = nStr.split('.');\n let x1 = x[0];\n const x2 = x.length > 1 ? '.' + x[1] : '';\n const rgx = /(\\d+)(\\d{3})/;\n while (rgx.test(x1)) {\n x1 = x1.replace(rgx, '$1' + ',' + '$2');\n }\n return x1 + x2;\n }\n\n ngOnInit() {\n if (this.disabled === false) {\n if (this.scrollWeel === true) {\n setTimeout(() => {\n if (this.readonly === false) {\n this.input.nativeElement.addEventListener('wheel', (e) => {\n this.handleWheel(e);\n });\n }\n }, 500);\n }\n }\n\n // this.value = this.min.toString();\n }\n\n handleWheel(event) {\n if ((event as any).wheelDelta > 0) {\n this.input.nativeElement.style.caretColor = 'transparent';\n\n this.upStepHandel();\n this.delaySearch();\n\n setTimeout(() => {\n this.setCaret();\n this.input.nativeElement.style.caretColor = 'auto';\n }, 0);\n }\n if ((event as any).wheelDelta < 0) {\n this.input.nativeElement.style.caretColor = 'transparent';\n\n this.downStepHandel();\n this.delaySearch();\n\n setTimeout(() => {\n this.setCaret();\n this.input.nativeElement.style.caretColor = 'auto';\n }, 0);\n }\n event.stopPropagation();\n event.preventDefault();\n }\n\n handleKeyPress(event: any) {\n this.userEdite = true;\n const NumberDotpattern = /[0-9\\.]/g;\n const NumberMinusPattern = /[0-9\\-]/g;\n\n const inputChar = String.fromCharCode(event.charCode);\n\n if (this.value && this.value.toString().match(/\\./g) === null) {\n this.findDots = false;\n }\n if (this.value && this.value.toString().search('-') === null) {\n this.findMinus = false;\n }\n\n // get cursur position when key press\n if (this.input.nativeElement.selectionStart || this.input.nativeElement.selectionStart === 0) {\n this.cursorPosition = this.input.nativeElement.selectionStart;\n this.cursorPosition += 1;\n }\n\n // control cursor when in first Index\n if (this.cursorPosition <= 1) {\n if (!NumberMinusPattern.test(inputChar)) {\n event.preventDefault();\n }\n if (this.value && this.value.match(/\\-/g)) {\n event.preventDefault();\n }\n }\n // control cursor when in another index\n if (this.cursorPosition !== 1) {\n if (event.keyCode !== 8 && !NumberDotpattern.test(inputChar)) {\n event.preventDefault();\n } else {\n // for contor decimal figur = 0 or null\n if (this.decimalNumber === null || this.decimalNumber === 0) {\n if (inputChar === '.') {\n event.preventDefault();\n }\n }\n // control decimal number (figur of decimal)\n if (this.value && this.value.toString().match(/\\./g)) {\n const figureAfterDot = this.value.length - this.value.indexOf('.');\n const dotIndex = this.value.indexOf('.');\n if (dotIndex - 1 + dotIndex + figureAfterDot > dotIndex - 1 + dotIndex + this.decimalNumber && this.cursorPosition - 1 > dotIndex) {\n event.preventDefault();\n }\n }\n // control '.' input\n if (inputChar === '.') {\n const lastChar = this.value.toString().charAt(this.value.length - 1);\n // control . when last char is -\n if (lastChar.toString().match(/\\-/g)) {\n event.preventDefault();\n }\n // control . when find first dot\n if (this.findDots) {\n event.preventDefault();\n }\n this.findDots = true;\n this.findMinus = true;\n }\n }\n }\n }\n\n handleKeyUp(event: KeyboardEvent) {\n this.userEdite = true;\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n this.input.nativeElement.style.caretColor = 'auto';\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (event.key === 'ArrowUp') {\n this.setCaret();\n }\n\n if (event.key === 'ArrowDown') {\n this.setCaret();\n }\n\n // left & right Button\n if (event.key === 'ArrowLeft' || event.key === 'ArrowRight') {\n if (this.input.nativeElement.selectionStart || this.input.nativeElement.selectionStart === 0) {\n this.cursorPosition = this.input.nativeElement.selectionStart;\n }\n }\n\n // home button\n if (event.key === 'Home') {\n this.cursorPosition = 0;\n }\n\n // end button\n if (event.key === 'End') {\n this.cursorPosition = this.value.length;\n }\n\n // set delay with rxjs\n this.delaySearch();\n\n // backspace Control\n if (event.key === 'Backspace') {\n if (this.value === null || this.value.length <= 0) {\n this.cursorPosition = 0;\n } else {\n this.cursorPosition -= 1;\n }\n }\n }\n\n handleKeyDown(event: KeyboardEvent) {\n this.userEdite = true;\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n event.preventDefault();\n event.stopPropagation();\n }\n if (this.readonly === false) {\n const countAfterDot =\n this.value !== null && this.value !== '' && this.value !== undefined\n ? this.value.toString().length - 1 - this.value.toString().indexOf('.')\n : 0;\n const defaultStep: number =\n countAfterDot > this.decimalNumber ? Math.pow(this.decimalConstant, this.decimalNumber) : Math.pow(this.decimalConstant, countAfterDot);\n // step and +- with up key and down key\n if (this.value && this.value.toString().match(/\\./g)) {\n this.dotPosition = this.value.indexOf('.');\n if (this.dotPosition >= this.cursorPosition) {\n if (event.key === 'ArrowDown') {\n this.tmp = parseFloat(this.value.replace(/,/g, ''));\n this.count = this.tmp - +this.intStep;\n if (this.min === null || Number(this.count) >= Number(this.min)) {\n // this.value = this.count.toFixed(this.decimalNumber);\n this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot);\n }\n }\n\n if (event.key === 'ArrowUp') {\n this.tmp = parseFloat(this.value.replace(/,/g, ''));\n this.count = this.tmp + +this.intStep;\n if (this.max === null || Number(this.count) <= Number(this.max)) {\n this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot);\n }\n }\n } else {\n if (event.key === 'ArrowDown') {\n if (this.min === null || Number(this.value) > Number(this.min)) {\n if (this.customStep !== null) {\n this.tmp = parseFloat(this.value.replace(/,/g, ''));\n this.lastStep =\n parseFloat(defaultStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot)) +\n parseFloat(this.customStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot)) -\n parseFloat(defaultStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot));\n this.count = parseFloat(this.tmp) - this.lastStep;\n this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot);\n } else {\n this.tmp = parseFloat(this.value.replace(/,/g, ''));\n this.count = parseFloat(this.tmp) - defaultStep;\n this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot);\n }\n }\n }\n\n if (event.key === 'ArrowUp') {\n if (this.max === null || Number(this.value) < Number(this.max)) {\n if (this.customStep !== null) {\n this.tmp = parseFloat(this.value.replace(/,/g, ''));\n this.lastStep =\n parseFloat(defaultStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot)) +\n parseFloat(this.customStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot)) -\n parseFloat(defaultStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot));\n this.count = parseFloat(this.tmp) + this.lastStep;\n this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot);\n } else {\n this.tmp = parseFloat(this.value.replace(/,/g, ''));\n this.count = parseFloat(this.tmp) + defaultStep;\n this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot);\n }\n }\n }\n }\n } else {\n if (event.key === 'ArrowDown') {\n if (this.min != null && this.value == null) {\n this.value = this.min.toString();\n } else {\n if (this.min === null || Number(this.value) > parseInt(this.min.toString())) {\n if (this.value == null) {\n this.value = '0';\n } else {\n this.tmp = +this.value.toString().replace(/,/g, '');\n this.count = +this.tmp - +this.intStep;\n this.value = this.count.toString().replace(/,/g, '');\n }\n }\n }\n }\n if (event.key === 'ArrowUp') {\n if (this.min != null && this.value == null) {\n this.value = this.min.toString();\n } else {\n if (this.max === null || Number(this.value) < parseInt(this.max.toString())) {\n if (this.value == null) {\n this.value = '0';\n } else {\n this.tmp = this.value.toString().replace(/,/g, '');\n this.count = +this.tmp + +this.intStep;\n this.value = this.count.toString().replace(/,/g, '');\n }\n }\n }\n }\n }\n }\n\n // stop when keydown\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n this.input.nativeElement.style.caretColor = 'transparent';\n event.preventDefault();\n event.stopPropagation();\n return false;\n }\n }\n\n handleClick() {\n if (this.input.nativeElement.selectionStart || this.input.nativeElement.selectionStart === 0) {\n this.cursorPosition = this.input.nativeElement.selectionStart;\n }\n }\n\n delaySearch() {\n Observable.create((observer) => {\n this.userQuestionUpdate = observer;\n });\n this.userQuestionUpdate.pipe(debounceTime(1000), distinctUntilChanged()).subscribe((text: string) => this.checkMinMax(text));\n // this.userQuestionUpdate.next((e.target as any).value);\n setTimeout(() => {\n this.userQuestionUpdate.next(this.input.nativeElement.value);\n }, 50);\n }\n\n checkMinMax(text) {\n let number: number;\n if (text.indexOf(',') > 0) {\n number = Number(text.replaceAll(',', ''));\n } else {\n number = Number(text);\n }\n\n if (!!this.min) {\n if (number < this.min) {\n this.value = '';\n }\n }\n if (!!this.max) {\n if (number > this.max) {\n this.value = '';\n }\n }\n }\n\n doGetCaretPosition(ctrl) {\n let CaretPos = 0;\n if (ctrl.selectionStart || ctrl.selectionStart === 0) {\n CaretPos = ctrl.selectionStart;\n return CaretPos;\n }\n }\n\n setCaretPosition(ctrl, pos) {\n if (ctrl.setSelectionRange) {\n ctrl.focus();\n ctrl.setSelectionRange(pos, pos);\n } else if (ctrl.createTextRange) {\n const range = ctrl.createTextRange();\n range.collapse(true);\n range.moveEnd('character', pos);\n range.moveStart('character', pos);\n range.select();\n }\n }\n\n setCaret() {\n this.setCaretPosition(this.input.nativeElement, this.cursorPosition);\n }\n\n upStepHandel() {\n this.userEdite = true;\n if (this.min != null && this.value == null) {\n this.value = this.min.toString();\n } else {\n if (this.readonly === false) {\n const countAfterDot =\n this.value !== null && this.value !== '' && this.value !== undefined\n ? this.value.toString().length - 1 - this.value.toString().indexOf('.')\n : 0;\n if (this.value == null) {\n this.value = '0';\n } else {\n const defaultStep: number =\n countAfterDot > this.decimalNumber ? Math.pow(this.decimalConstant, this.decimalNumber) : Math.pow(this.decimalConstant, countAfterDot);\n this.dotPosition = this.value.toString().indexOf('.') + 1;\n if (this.value && this.value.toString().match(/\\./g)) {\n if (this.dotPosition > this.cursorPosition) {\n this.tmp = parseFloat(this.value.replace(/,/g, ''));\n this.count = this.tmp + +this.intStep;\n if (this.max === null || Number(this.count) <= this.max) {\n this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot);\n }\n } else {\n if (this.max === null || Number(this.value) < Number(this.max)) {\n if (this.customStep !== null) {\n this.tmp = parseFloat(this.value.replace(/,/g, ''));\n this.lastStep =\n parseFloat(defaultStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot)) +\n parseFloat(this.customStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot)) -\n parseFloat(defaultStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot));\n this.count = parseFloat(this.tmp) + this.lastStep;\n this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot).replace(/,/g, '');\n } else {\n this.tmp = parseFloat(this.value.replace(/,/g, ''));\n this.count = parseFloat(this.tmp) + defaultStep;\n this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot).replace(/,/g, '');\n }\n }\n }\n } else {\n if (this.max === null || Number(this.value) < parseInt(this.max.toString())) {\n this.tmp = this.value.toString().replace(/,/g, '');\n this.count = +this.tmp + +this.intStep;\n\n this.value = this.count.toString().replace(/,/g, '');\n }\n }\n }\n }\n }\n }\n\n downStepHandel() {\n this.userEdite = true;\n if (this.min != null && this.value == null) {\n this.value = this.min.toString();\n } else {\n if (this.readonly === false) {\n const countAfterDot =\n this.value !== null && this.value !== '' && this.value !== undefined\n ? this.value.toString().length - 1 - this.value.toString().indexOf('.')\n : 0;\n if (this.value == null) {\n this.value = '0';\n } else {\n const defaultStep: number =\n countAfterDot > this.decimalNumber ? Math.pow(this.decimalConstant, this.decimalNumber) : Math.pow(this.decimalConstant, countAfterDot);\n this.dotPosition = this.value.toString().indexOf('.') + 1;\n if (this.value && this.value.toString().match(/\\./g)) {\n if (this.dotPosition > this.cursorPosition) {\n this.tmp = parseFloat(this.value.replace(/,/g, ''));\n this.count = parseFloat(this.value.replace(/,/g, '')) - +this.intStep;\n if (this.min === null || Number(this.count) >= this.min) {\n this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot).replace(/,/g, '');\n }\n } else {\n if (this.min === null || Number(this.value) > Number(this.min)) {\n if (this.customStep !== null) {\n this.tmp = parseFloat(this.value.replace(/,/g, ''));\n this.lastStep =\n parseFloat(defaultStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot)) +\n parseFloat(this.customStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot)) -\n parseFloat(defaultStep.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot));\n this.count = parseFloat(this.tmp) - this.lastStep;\n this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot);\n } else {\n this.tmp = parseFloat(this.value.replace(/,/g, ''));\n this.count = parseFloat(this.tmp) - defaultStep;\n this.value = this.count.toFixed(countAfterDot > this.decimalNumber ? this.decimalNumber : countAfterDot);\n }\n }\n }\n } else {\n if (this.min === null || Number(this.value) > parseInt(this.min.toString())) {\n this.tmp = +this.value.toString().replace(/,/g, '');\n this.count = +this.tmp - +this.intStep;\n this.value = this.count.toString().replace(/,/g, '');\n }\n }\n }\n }\n }\n }\n\n handleInputBlur(e: Event) {\n this.checkMinMax(this.textValue);\n this.onBlur.emit({\n component: this,\n htmlElement: this.ref.nativeElement,\n htmlEvent: e\n });\n }\n}\n","<div class=\"ax form-item\" [class.disabled]=\"disabled\" [attr.id]=\"uid\" #fc>\n <div class=\"ax items-wrapper\">\n <ng-content select=\"[start]\">\n </ng-content>\n <ax-button icon=\"far fa-plus\" type=\"success blank\" (click)=\"upStepHandel()\" [disabled]=\"disabled\" *ngIf=\"showDoubleCounter\"></ax-button>\n </div>\n <div class=\"content\" #content>\n <div class=\"ax form-control input {{size}}\" [class.disabled]=\"disabled\" [class.readonly]=\"readonly\"\n [class.icon]=\"icon\">\n <input [autocomplete]=\"autocomplete\" [name]=\"name\" #input type=\"text\" class=\"ax {{size}}\" [maxlength]=\"calcSeparator(maxLength)\" [(ngModel)]=\"textValue\" placeholder=\"{{placeholder}}\"\n [readonly]=\"readonly\" [disabled]=\"disabled\" [ngClass]=\"setTextAlign()\"\n [class.clear]=\"value && allowClear\" (focus)=\"handleInputFocus($event)\" (blur)=\"handleInputBlur($event)\"\n (keypress)=\"handleKeyPress($event)\" (ngModelChange)=\"this.userQuestionUpdate.next($event)\"\n (keydown)=\"handleKeyDown($event)\" (click)=\"handleClick()\" (keyup)=\"handleKeyUp($event)\">\n <i class=\"{{icon}}\" *ngIf=\"icon\"></i>\n </div>\n </div>\n <div class=\"ax items-wrapper\">\n <ax-button *ngIf=\"value && allowClear\" [disabled]=\"disabled\" icon=\"far fa-times\" type=\"danger blank\"\n (click)=\"clear()\"></ax-button>\n <ax-button icon=\"far fa-minus\" type=\"danger blank\" (click)=\"downStepHandel()\" [disabled]=\"disabled\" *ngIf=\"showDoubleCounter\"></ax-button>\n <ng-content select=\"[end]\">\n </ng-content>\n <div class=\"arrow-number\" *ngIf=\"showCounter && !showDoubleCounter && !readonly\" >\n <ax-button type=\"light blank\" [disabled]=\"disabled\" icon=\"fas fa-angle-up\" [size]=\"size\"\n (mousedown)=\"upStepHandel()\" (mouseup)=\"delaySearch()\" [tabIndex]=\"-1\"></ax-button>\n <ax-button type=\"light blank\" [disabled]=\"disabled\" icon=\"fas fa-angle-down\" [size]=\"size\"\n (mousedown)=\"downStepHandel()\" (mouseup)=\"delaySearch()\" [tabIndex]=\"-1\"></ax-button>\n </div>\n </div>\n\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXNumberBoxComponent } from './number-box.component';\nimport { AXButtonModule } from '../button/button.module';\nimport { FormsModule } from '@angular/forms';\n\n@NgModule({\n declarations: [AXNumberBoxComponent],\n imports: [CommonModule, AXButtonModule, FormsModule],\n exports: [AXNumberBoxComponent],\n providers: []\n})\nexport class AXNumberBoxModule {}\n","import { Component, ElementRef } from '@angular/core';\n\n@Component({\n selector: 'ax-page-content',\n template: `\n <div class='ax-page-content'>\n <div class='inner-content'>\n <ng-content></ng-content>\n </div>\n </div>\n `,\n styles: [\n ':host { height:100% }'\n ]\n})\nexport class AXPageContentComponent {\n constructor(private el: ElementRef) { }\n}\n","import {\n Component\n} from '@angular/core';\n\n@Component({\n selector: 'ax-page-footer',\n template:\n `<div class='ax-page-footer' >\n <ng-content></ng-content>\n </div>`\n})\n\nexport class AXPageFooterComponent { };","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXPageContentComponent } from './content.component';\nimport { AXPageFooterComponent } from './footer.component';\nimport { AXPageComponent } from './page.component';\nimport { AXLoadingModule } from '../loading/loading.module';\n\n@NgModule({\n declarations: [AXPageContentComponent, AXPageFooterComponent, AXPageComponent],\n imports: [CommonModule, AXLoadingModule],\n exports: [AXPageContentComponent, AXPageFooterComponent, AXPageComponent],\n providers: [],\n})\nexport class AXPageModule { }","import { Component, ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef, ViewChild, ElementRef } from '@angular/core';\nimport { AXBaseTextComponent, AXValidatableComponent } from '../base/element.class';\n\n@Component({\n selector: 'ax-password-box',\n templateUrl: './password-box.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { style:'width: 100%' },\n providers: [{ provide: AXValidatableComponent, useExisting: AXPasswordBoxComponent }]\n})\nexport class AXPasswordBoxComponent extends AXBaseTextComponent {\n constructor(protected cdr: ChangeDetectorRef, ref: ElementRef) {\n super(cdr, ref);\n }\n\n type: 'text' | 'password' = 'password';\n eyeIcon: string = 'far fa-eye';\n\n handleShowPassword() {\n this.eyeIcon = 'far fa-eye-slash';\n if (this.type === 'password') {\n this.type = 'text';\n this.eyeIcon = 'far fa-eye-slash';\n } else {\n this.type = 'password';\n this.eyeIcon = 'far fa-eye';\n }\n }\n}\n","<div class=\"ax form-item\" [class.disabled]=\"disabled\" [attr.id]=\"uid\">\n <div class=\"ax items-wrapper\">\n <ng-content select=\"[start]\">\n </ng-content>\n <i class=\"form-item-icon {{icon}}\" *ngIf=\"icon\"></i>\n\n </div>\n <div class=\"content\" #content>\n <div class=\"ax input form-control {{size}}\" [class.disabled]=\"disabled\" [class.readonly]=\"readonly\" [class.icon]=\"icon\">\n <input [autocomplete]=\"autocomplete\" [name]=\"name\" #input [type]=\"type\" class=\"ax {{size}}\" value=\"{{value}}\" placeholder=\"{{placeholder}}\"\n [readonly]=\"readonly\" [disabled]=\"disabled\"\n [ngClass]=\"setTextAlign()\" [class.clear]=\"value && allowClear\">\n </div>\n </div>\n <div class=\"ax items-wrapper\">\n <ax-button *ngIf=\"value && allowClear\" icon=\"fas fa-times\" type=\"danger blank\" (click)=\"clear()\" [tabIndex]=\"-1\"></ax-button>\n <ax-button [disabled]=\"disabled\" [icon]=\"eyeIcon\" type=\"light blank\" size=\"{{size}}\" (click)=\"handleShowPassword()\" [tabIndex]=\"-1\">\n <!-- <i class=\"\" [ngClass]=\"{'fa-eye': type === 'password','fa-eye-slash':type === 'text'}\"></i> -->\n </ax-button>\n <ng-content select=\"[end]\">\n </ng-content>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXPasswordBoxComponent } from './password-box.component';\nimport { AXButtonModule } from '../button/button.module';\nimport { AXFormGroupModule } from '../form-group/form-group.module';\n\nconst COMPONENT = [AXPasswordBoxComponent];\nconst MODULES = [CommonModule, AXButtonModule,AXFormGroupModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: []\n})\nexport class AXPasswordBoxModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXPopupComponent } from './popup.component';\nimport { AXPopupService } from './popup.service';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { AXButtonModule } from '../button/button.module';\nimport { AXTranslatorModule } from '@acorex/core';\nimport { AXLoadingModule } from '../loading/loading.module';\n@NgModule({\n declarations: [AXPopupComponent],\n imports: [CommonModule, DragDropModule, A11yModule, AXButtonModule, AXTranslatorModule, AXLoadingModule],\n exports: [AXPopupComponent],\n providers: [AXPopupService]\n})\nexport class AXPopupModule { }\n","import { Component, Input } from '@angular/core';\nimport { AXBaseComponent } from '../base/element.class';\n\n@Component({\n selector: 'ax-progress-bar',\n templateUrl: './progress-bar.component.html'\n})\nexport class AXProgressBarComponent extends AXBaseComponent {\n @Input() progress: number = 0;\n}\n","<div class=\"ax progress\">\n <div class=\"progress-bar\" role=\"progressbar\" aria-valuenow=\"75\" aria-valuemin=\"0\"\n aria-valuemax=\"100\" [ngStyle]=\"{'width.%': progress}\">\n </div>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXProgressBarComponent } from './progress-bar.component';\n\n@NgModule({\n declarations: [AXProgressBarComponent],\n imports: [CommonModule],\n exports: [AXProgressBarComponent],\n providers: []\n})\nexport class AXProgressBarModule {}\n","import { AXDataEvent } from '../base/events.class';\nimport { AXTranslator } from '@acorex/core';\n\nexport type AXQueryBuilderDataType = 'string' | 'number' | 'date' | 'time' | 'datetime' | 'boolean';\nexport type AXQueryBuilderGroupItem = AXQueryBuilderGroup | AXQueryBuilderRule;\nexport type AXQueryBuilderControlType = 'textBox' | 'selectBox' | 'numberBox' | 'dataPicker' | 'lov' | 'boolean';\nexport type AXQueryBuilderStringType = 'simple' | 'sql' | 'sodoco' | 'elastic';\n\nexport class AXQueryBuilderControl {\n type: AXQueryBuilderControlType = 'textBox';\n options: any = {};\n}\n\nexport class AXQueryBuilderRule {\n dataField: string;\n caption: string;\n dataType: AXQueryBuilderDataType;\n control: AXQueryBuilderControl;\n operator: string;\n value?: any;\n text?: string;\n dataFieldItem: any;\n valueItem?: any;\n onDemandLabel?: string;\n}\n\nexport class AXQueryBuilderGroup {\n items: AXQueryBuilderGroupItem[];\n condition: string;\n queryString: string;\n queryStringElastic:string\n}\nexport class AXQueryBuilderField {\n caption: string;\n dataField: string;\n dataType: AXQueryBuilderDataType;\n default?: any;\n options?: any;\n}\n\nexport class AXQueryBuilderRuleEvent extends AXDataEvent<AXQueryBuilderRuleEvent> {\n items: AXQueryBuilderRule;\n}\n\nexport class AXQueryBuilderGroupEvent extends AXDataEvent<AXQueryBuilderGroupEvent> {\n items?: AXQueryBuilderRule;\n groups: AXQueryBuilderGroup;\n}\n\nexport class AXQueryBuilderPopup {\n name: string;\n type: string;\n}\n","import { Component, OnInit, Input, Output, EventEmitter, ChangeDetectorRef, ElementRef, ChangeDetectionStrategy, ViewChild } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport { AXBaseTextComponent } from '../base/element.class';\nimport { AXBaseEvent, AXValueEvent } from '../base/events.class';\nimport { AXTranslator } from '@acorex/core';\n\n\n@Component({\n selector: 'ax-search-box',\n templateUrl: './searchbox.component.html',\n host: { style: 'width: 100%' },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AXSearchBoxComponent extends AXBaseTextComponent {\n\n @Output()\n public textChanged: EventEmitter<AXValueEvent<any>> = new EventEmitter<AXValueEvent<any>>();\n @Output()\n onButtonClick: EventEmitter<AXValueEvent<any>> = new EventEmitter<AXValueEvent<any>>();\n\n @Input()\n placeholder: string = AXTranslator.get('common.search');\n\n @Input()\n onDemandTranslate: boolean = false\n\n constructor(protected cdr: ChangeDetectorRef, ref: ElementRef) {\n super(cdr, ref);\n }\n\n private _text: string;\n @Input()\n public get text(): string {\n return this._text;\n }\n public set text(v: string) {\n if (v !== this._text) {\n const old = this._text;\n this._text = v;\n this.textChanged.emit({\n component: this,\n value: v,\n oldValue: old\n });\n }\n }\n\n ngOnInit() {\n this.value = '';\n this.text = '';\n }\n\n onSearchChanged(text: string) {\n console.log(text);\n\n if (this.onDemandTranslate) {\n const latinPattern = /[A-Za-z;'\\/\\\\[\\],]/;\n const asciiToPersianMap = {\n 113: \"ض\", 119: \"ص\", 101: \"ث\", 114: \"ق\", 116: \"ف\", 121: \"غ\", 117: \"ع\", 105: \"ه\", 111: \"خ\", 112: \"ح\",\n 97: \"ش\", 115: \"س\", 100: \"ی\", 102: \"ب\", 103: \"ل\", 104: \"ا\", 106: \"ت\", 107: \"ن\", 108: \"م\", 59: \"ک\",\n 122: \"ظ\", 120: \"ط\", 99: \"ز\", 118: \"ر\", 98: \"ذ\", 110: \"د\", 44: \"و\", 39: \"گ\", 67: \"ژ\", 93: \"چ\", 91: \"ج\", 92: \"پ\", 109: \"ئ\"\n };\n\n if (latinPattern.test(text)) {\n text = text.split('').map((char) => {\n const asciiValue = char.charCodeAt(0);\n if (asciiToPersianMap[asciiValue]) {\n return asciiToPersianMap[asciiValue];\n } else {\n return char;\n }\n }).join('');\n }\n }\n if (!this.searchChangeObserver) {\n Observable.create(observer => {\n this.searchChangeObserver = observer;\n })\n .pipe(debounceTime(this.delay))\n .pipe(distinctUntilChanged())\n .subscribe(c => {\n this.text = c;\n this.value = c;\n });\n }\n\n this.searchChangeObserver.next(text);\n }\n\n @Input()\n delay: number = 500;\n\n private searchChangeObserver: any;\n\n handleKeyEvent(e: KeyboardEvent) {\n\n // this.searchChangeObserver.next(this.text);\n this.onkey.emit(e);\n }\n\n click(e: MouseEvent) {\n this.onButtonClick.emit({\n component: this,\n htmlElement: this.ref.nativeElement,\n value: this.text\n });\n // this.searchChangeObserver.next(this.text);\n }\n}\n","<div class=\"ax form-item\" [class.disabled]=\"disabled\" [attr.id]=\"uid\">\n <div class=\"ax items-wrapper\">\n <ng-content select=\"[start]\">\n </ng-content>\n <i class=\"form-item-icon {{icon}}\" *ngIf=\"icon\"></i>\n </div>\n <div class=\"content\" #content>\n <div class=\"ax input form-control {{size}}\" [class.disabled]=\"disabled\" [class.readonly]=\"readonly\"\n [class.icon]=\"icon\">\n <input #input type=\"text\" class=\"ax {{size}}\" [(ngModel)]=\"value\"\n (input)=\"onSearchChanged($event.target.value)\" [placeholder]=\"placeholder\" [readonly]=\"readonly\"\n [disabled]=\"disabled\" [ngClass]=\"setTextAlign()\" [class.clear]=\"value && allowClear\"\n (focus)=\"handleInputFocus($event)\" (blur)=\"handleInputBlur($event)\" (keyup)=\"handleKeyEvent($event)\"\n (keydown)=\"handleKeyEvent($event)\">\n </div>\n </div>\n <div class=\"ax items-wrapper\">\n <ax-button [size]=\"size\" *ngIf=\"value && allowClear\" icon=\"far fa-times\" type=\"danger blank\" (click)=\"clear()\" [tabIndex]=\"-1\">\n </ax-button>\n <ax-button [size]=\"size\" type=\"light blank\" icon=\"far fa-search\" end (click)=\"click($event)\" [tabIndex]=\"-1\">\n </ax-button>\n <ng-content select=\"[end]\">\n </ng-content>\n </div>\n</div>","import { AXConfig } from '@acorex/core';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n Output,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { differenceBy } from 'lodash';\nimport { Observable } from 'rxjs';\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport {\n AXBaseInputComponent,\n AXBaseSizableComponent,\n AXElementSize,\n AXValidatableComponent,\n} from '../base/element.class';\nimport { AXBaseEvent } from '../base/events.class';\nimport { AXDataSourceComponent } from '../data-source/datasource.component';\nimport { AXDataSourceReadParams } from '../data-source/read-param';\nimport { AXDropdownComponent } from '../dropdown/dropdown.component';\nimport { AXSearchBoxComponent } from '../searchbox/searchbox.component';\nimport { AXTextBoxComponent } from '../textbox/textbox.component';\nimport { AXValidation } from '../validation/validation.component';\nexport class AXSelectBoxSelectionChangedEvent extends AXBaseEvent {\n constructor(\n component: any,\n public selectedItems: any[],\n public selectedValues: any[] | any\n ) {\n super();\n this.component = component;\n }\n}\n\n@Component({\n selector: 'ax-select-box',\n templateUrl: './selectbox.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { style: 'width: 100%' },\n providers: [\n { provide: AXValidatableComponent, useExisting: AXSelectBoxComponent },\n ],\n})\nexport class AXSelectBoxComponent\n extends AXValidatableComponent\n implements AXBaseSizableComponent, AXBaseInputComponent\n{\n @Input() showDropDownButton: boolean = true;\n\n @ContentChild(TemplateRef, { static: true })\n rowTemplate: TemplateRef<any>;\n\n @Input()\n rowInputTemplate: TemplateRef<any>;\n @ViewChild(AXTextBoxComponent, { static: true })\n span: ElementRef<HTMLElement>;\n\n @ViewChild(AXTextBoxComponent, { static: true })\n textbox: AXTextBoxComponent;\n\n @ViewChild('listContainer', { static: true })\n listContainer: ElementRef<HTMLDivElement>;\n\n @ViewChild('serchBox', { static: false })\n serchBox: AXSearchBoxComponent;\n\n @ViewChild('textBoxSelectBox', { static: true })\n textBoxSelectBox: AXTextBoxComponent;\n\n @Input() showCheckBox: boolean = true;\n\n @Input() readonly: boolean = false;\n\n @Input() rtl: boolean = AXConfig.get('layout.rtl');\n\n @Input() disabled: boolean = false;\n\n @Input() placeholder: string;\n\n @Input() size: AXElementSize = 'md';\n\n @Input() allowNull: boolean = true;\n\n @Input() textAlign: 'right' | 'left' | null = null;\n\n @Input() bufferSize: number = 20;\n\n @Input() remoteOperation: boolean = false;\n\n @Input() fitParent: boolean = true;\n\n @Input() dropdownWidth: string = '300px';\n\n @Input() multiLine = false;\n\n @Output()\n dropdownToggle: EventEmitter<any> = new EventEmitter<any>();\n // this input is Private and only use in LOV\n\n @Input() onDemandTranslate: boolean = false;\n\n currentfocusedIndex: number = -1;\n showLoading: boolean = false;\n\n skip: number = -1;\n searchText: string = '';\n // @Input()\n // chipsWidth: string = '';\n\n text: string = '';\n totalCount: number = 0;\n\n @ContentChild(AXDataSourceComponent, { static: true })\n private _contentDataSource: AXDataSourceComponent;\n\n private _dataSource: AXDataSourceComponent;\n\n @Input()\n public get dataSource(): AXDataSourceComponent {\n return this._dataSource ? this._dataSource : this._contentDataSource;\n }\n\n public set dataSource(v: AXDataSourceComponent) {\n this._dataSource = v;\n }\n\n @ContentChild(AXValidation, { static: true })\n private _contentValidation: AXValidation;\n\n private _validation: AXValidation;\n\n @Input()\n public get validation(): AXValidation {\n return this._validation ? this._validation : this._contentValidation;\n }\n\n public set validation(v: AXValidation) {\n this._validation = v;\n }\n\n constructor(\n private cdr: ChangeDetectorRef,\n private ref: ElementRef,\n private zone: NgZone\n ) {\n super();\n }\n\n @ViewChild('d', { static: true })\n dropdown: AXDropdownComponent;\n\n @Input() disabledCallback: (e: { item: any; index: number }) => boolean;\n\n @Input() allowSearch: boolean = true;\n @Input() textField: string = 'text';\n @Input() valueField: string = 'value';\n @Input() disabledField: string = 'disabled';\n @Input() mode: 'single' | 'multiple' = 'single';\n itemRemove: boolean = false;\n @Output() itemsChange: EventEmitter<any[]> = new EventEmitter<any[]>();\n\n @Output() onBlur: EventEmitter<any> = new EventEmitter<any>();\n\n @Output() onFocus: EventEmitter<any> = new EventEmitter<any>();\n\n private _items: any[] = [];\n @Input()\n public get items(): any[] {\n return this._items;\n }\n public set items(v: any[]) {\n this._items = v;\n if (this.itemsChange) {\n this.itemsChange.emit(v);\n }\n if (this.itemsStatusObserver) {\n this.itemsStatusObserver.next(this.items.length);\n }\n }\n\n hasSelectedValue: boolean = false;\n itemsFiltered: any[] = [];\n\n // #endregion\n\n dropDownDisabled: boolean = false;\n\n @Output()\n selectionChanged: EventEmitter<AXSelectBoxSelectionChangedEvent> =\n new EventEmitter<AXSelectBoxSelectionChangedEvent>();\n\n @Output()\n selectedItemsChange: EventEmitter<any[]> = new EventEmitter<any[]>();\n\n private _selectedItems: any[] = [];\n @Input()\n public get selectedItems(): any[] {\n return this._selectedItems || [];\n }\n public set selectedItems(v: any[]) {\n this.setSelectedItemsChange(v);\n // if (!v) {\n // v = [];\n // }\n\n // const old = this.selectedItems;\n // if (JSON.stringify(old) !== JSON.stringify(v)) {\n // this._selectedItems = this.mode == 'single' ? v.slice(0, 1) : [...new Set(v)]; //[...new Set(v[0])] : [...new Set(v)];\n // this._selectedItems.forEach((c) => (c.selected = true));\n // this.selectedItemsChange.emit(this._selectedItems);\n // this.selectedValuesChange.emit(this.selectedValues);\n // this.clearValidationStyle(this.ref.nativeElement);\n // this.waitForData(() => {\n // if (this._selectedItems) {\n // this.items.forEach((c) => (c.selected = this._selectedItems.some((i) => i[this.valueField] == c[this.valueField])));\n // }\n // });\n // }\n }\n\n setSelectedItemsChange(v: any[], old: any[] = this.selectedItems) {\n if (!v) {\n v = [];\n }\n // const old = this.selectedItems;\n var f = differenceBy(old, v, this.valueField);\n var s = differenceBy(v, old, this.valueField);\n // if (JSON.stringify(old) !== JSON.stringify(v)) {\n if (f.length != 0 || s.length != 0) {\n this._selectedItems =\n this.mode == 'single' ? v.slice(0, 1) : [...new Set(v)]; //[...new Set(v[0])] : [...new Set(v)];\n this._selectedItems.forEach((c) => (c.selected = true));\n this.selectedItemsChange.emit(this._selectedItems);\n this.selectedValuesChange.emit(this.selectedValues);\n this.clearValidationStyle(this.ref.nativeElement);\n this.waitForData(() => {\n if (this._selectedItems) {\n this.items.forEach(\n (c) =>\n (c.selected = this._selectedItems.some(\n (i) => i[this.valueField] == c[this.valueField]\n ))\n );\n }\n });\n }\n }\n\n ngOnInit() {\n if (this.rowTemplate === undefined && this.rowInputTemplate != undefined) {\n this.rowTemplate = this.rowInputTemplate;\n }\n if (this.rtl == null) {\n this.rtl =\n window\n .getComputedStyle(this.ref.nativeElement, null)\n .getPropertyValue('direction') === 'rtl';\n }\n }\n\n scrolled(e) {\n if (\n this.remoteOperation &&\n this.totalCount > this.items.length &&\n this.listContainer.nativeElement.scrollHeight != 0 &&\n this.listContainer.nativeElement.scrollHeight -\n this.listContainer.nativeElement.scrollTop -\n 300 <\n 50\n ) {\n if (this.skip !== this.items.length) {\n this.showLoading = true;\n this.skip = this.items.length;\n const params: AXDataSourceReadParams = {};\n params.skip = this.items.length;\n params.take = this.bufferSize; //* (Math.floor(this.items.length / this.bufferSize) + 1);\n if (this.textbox) {\n params.searchText = this.text;\n } else {\n params.searchText = null;\n }\n this.fetch(params);\n }\n }\n }\n private setSelectedItems(v: any[], isUserInput: boolean) {\n let changed = false;\n if (isUserInput) {\n changed = JSON.stringify(v) !== JSON.stringify(this.selectedItems);\n }\n this.selectedItems = v;\n this.setSelectedIndex();\n if (isUserInput && changed) {\n this.emitSelectionChangedEvent();\n }\n }\n\n private searchChangeObserver: any;\n\n delay: number = 500;\n\n textChanged(e) {\n if (\n (e.value === null || e.value === undefined || e.value === '') &&\n (e.oldValue === null || e.oldValue === undefined || e.oldValue === '')\n ) {\n } else {\n this.currentfocusedIndex = -1;\n if (this.remoteOperation) {\n this.searchText = this.text;\n // this.searchText = e.value;\n // this.text = e.value;\n // this.items = [];\n if (this.items) {\n let t = this.items.length;\n for (let i = 0; i < t; i++) {\n this.items.pop();\n }\n }\n\n // this.items.forEach((element) => {\n // this.items.pop();\n // });\n const params: AXDataSourceReadParams = {};\n params.searchText = this.text;\n // params.searchText = e.value;\n params.skip = 0;\n params.take = this.bufferSize;\n this.fetch(params);\n }\n }\n }\n\n isItemDisabled(item: any): boolean {\n if (item[this.disabledField] == true) {\n return true;\n } else if (this.disabledCallback) {\n return this.disabledCallback({ item, index: -1 });\n } else {\n return false;\n }\n }\n\n onButtonClick(e) {}\n\n private setSelectedIndex(sign: -1 | 1 | null = null): void {\n if (sign == null) {\n if (!this.remoteOperation && this.text && this.text !== '') {\n this.currentfocusedIndex = this.items\n .filter((c) =>\n (c[this.textField] as string)\n .toLowerCase()\n .includes(this.text.toLowerCase())\n )\n .indexOf(this.selectedItems[this.selectedItems.length - 1]);\n } else {\n this.currentfocusedIndex = this.items.indexOf(\n this.selectedItems[this.selectedItems.length - 1]\n );\n }\n } else {\n sign === -1 ? this.currentfocusedIndex-- : this.currentfocusedIndex++;\n }\n\n if (this.remoteOperation) {\n this.itemsFiltered = this.items;\n } else {\n this.itemsFiltered = this.text\n ? this.items.filter((c) =>\n (c[this.textField] as string)\n .toLowerCase()\n .includes(this.text.toLowerCase())\n )\n : this.items;\n }\n\n this.currentfocusedIndex =\n this.currentfocusedIndex < 0\n ? 0\n : this.currentfocusedIndex >= this.itemsFiltered.length\n ? this.itemsFiltered.length - 1\n : this.currentfocusedIndex;\n //\n // set scroll\n if (this.listContainer) {\n this.zone.runOutsideAngular(() => {\n const itemDiv = this.listContainer.nativeElement.querySelector(\n `.list-item:nth-child(${this.currentfocusedIndex})`\n );\n if (itemDiv) {\n itemDiv.scrollIntoView({ behavior: 'smooth' });\n }\n });\n }\n }\n\n @Output()\n selectedValuesChange: EventEmitter<any[] | any> = new EventEmitter<\n any[] | any\n >();\n\n @Input()\n public get selectedValues(): any[] | any {\n if (this.mode === 'single') {\n return this._selectedItems.map((c) => c[this.valueField])[0];\n } else {\n return this._selectedItems.map((c) => c[this.valueField]) || [];\n }\n }\n\n public set selectedValues(v: any[] | any) {\n if (this.compareSelectedValues(v)) {\n return;\n }\n if (v == null) {\n this.selectedItems = [];\n } else {\n if (v !== undefined) {\n if (v != []! && v != '' && v != null) {\n this.hasSelectedValue = true;\n }\n\n this.waitForData(() => {\n if (this.mode === 'single') {\n if (this.items.filter((c) => v == c[this.valueField])) {\n this.selectedItems = this.items.filter(\n (c) => v == c[this.valueField]\n );\n } else {\n this.selectedItems = [];\n }\n } else {\n if (Array.isArray(v)) {\n if (this.selectedItems.length > v.length) {\n this.selectedItems = this.selectedItems.filter((c) =>\n v.includes(c[this.valueField])\n );\n } else {\n let addId = [];\n v.forEach((vId) => {\n addId.push({\n [this.valueField]: vId,\n });\n });\n\n let newId = differenceBy(\n addId,\n this.selectedItems,\n this.valueField\n );\n let vv = [];\n newId.forEach((rc) => {\n vv.push(rc[this.valueField]);\n });\n this.items\n .filter((c) => vv.includes(c[this.valueField]))\n .forEach((res) => {\n this.selectedItems.push(res);\n });\n // this.selectedItems.push(this.items.filter((c) => vv.includes(c[this.valueField])));\n this.setSelectedItemsChange(\n this.selectedItems,\n vv.length > 0 ? [1] : this.selectedItems\n );\n }\n\n // this.selectedItems = this.items.filter((c) => v.includes(c[this.valueField]));\n } else if (v) {\n this.selectedItems = this.items.filter(\n (c) => v === c[this.valueField]\n );\n } else {\n this.selectedItems = [];\n }\n }\n this.selectedValuesChange.emit(this.selectedValues);\n this.cdr.markForCheck();\n this.cdr.detectChanges();\n });\n }\n }\n }\n\n private compareSelectedValues(newValue: any[] | any) {\n const currentValue = this.selectedValues;\n return (\n (currentValue == null && newValue == null) ||\n JSON.stringify(currentValue) === JSON.stringify(newValue)\n );\n }\n\n private setSelectedValues(v: any[] | any, isUserInput: boolean) {\n const changed = isUserInput ? !this.compareSelectedValues(v) : false;\n this.selectedValues = v;\n if (isUserInput && changed) {\n this.emitSelectionChangedEvent();\n }\n }\n\n private emitSelectionChangedEvent() {\n this.selectedValuesChange.emit(this.selectedValues);\n this.selectionChanged.emit(\n new AXSelectBoxSelectionChangedEvent(\n this,\n this.selectedItems,\n this.selectedValues\n )\n );\n }\n\n ngAfterViewInit(): void {\n if (this.bufferSize < 10) {\n this.bufferSize = 10;\n }\n if (this.mode == 'single') {\n this.showCheckBox = false;\n } else {\n this.showCheckBox = true;\n }\n if (\n !this.remoteOperation ||\n (this.remoteOperation && this.hasSelectedValue)\n ) {\n this.refresh();\n }\n }\n dropdownToggleSelecBox(e) {\n this.text = '';\n if (this.dropdown.isOpen) {\n this.refresh();\n setTimeout(() => {\n if (this.serchBox) {\n this.serchBox.focus();\n }\n }, 1);\n } else {\n // this.refresh();\n }\n this.dropdownToggle.emit(e);\n }\n\n ngAfterContentInit() {\n // if (!this.allowSearch) {\n // if (this.readonly == false) {\n // this.itemRemove = true;\n // this.readonly = true;\n // }\n // }\n this.initValidation(this.ref, 'selectedItems', this.validation);\n if (this.dataSource) {\n // if (this.allowSearch == false) {\n // this.fetch();\n // }\n this.dataSource.onDataReceived.subscribe((c) => {\n this.showLoading = false;\n this.dataReceived(c.data.result);\n });\n }\n this.cdr.markForCheck();\n this.cdr.detectChanges();\n }\n\n private dataReceived(data: any) {\n if (this.remoteOperation) {\n if (\n this.searchText &&\n this.searchText != null &&\n this.searchText !== ''\n ) {\n if (data.totalCount) {\n if (this.items.length == 0) {\n //this.items = data.items;\n data.items.forEach((item) => {\n this.items.push(item);\n });\n } else {\n data.items.forEach((item) => {\n this.items.push(item);\n });\n // if (this.itemsStatusObserver) {\n // this.itemsStatusObserver.next(this.items.length);\n // }\n }\n\n this.totalCount = data.totalCount;\n } else {\n if (this.items.length == 0) {\n this.items = data.items;\n } else {\n data.items.forEach((item) => {\n this.items.push(item);\n });\n // if (this.itemsStatusObserver) {\n // this.itemsStatusObserver.next(this.items.length);\n // }\n }\n this.totalCount = data.items == undefined ? 0 : data.items.length;\n }\n } else if (data.items && data.items.length === data.totalCount) {\n this.items = data.items;\n this.totalCount = data.items.length;\n } else if (data.totalCount) {\n data.items.forEach((elm) => {\n this.items.push(elm);\n });\n // if (this.itemsStatusObserver) {\n // this.itemsStatusObserver.next(this.items.length);\n // }\n this.totalCount = data.totalCount;\n } else {\n data.forEach((elm) => {\n this.items.push(elm);\n // if (this.itemsStatusObserver) {\n // this.itemsStatusObserver.next(this.items.length);\n // }\n });\n this.totalCount = data.length;\n }\n } else {\n this.items = data;\n }\n\n this.cdr.markForCheck();\n this.cdr.detectChanges();\n\n this.dropdown.updatePosition();\n }\n\n // private params: AXDataSourceReadParams = {};\n\n fetch(params: AXDataSourceReadParams = {}) {\n // this.params = params;\n if (this.dataSource) {\n if (this.onDemandTranslate && params?.searchText) {\n params.searchText = this.translateSearch(params?.searchText);\n }\n this.showLoading = true;\n this.dataSource.fetch(params);\n }\n }\n\n translateSearch(searchText: string): string {\n const latinPattern = /[A-Za-z;'\\/\\\\[\\],]/;\n const asciiToPersianMap = {\n 113: 'ض',\n 119: 'ص',\n 101: 'ث',\n 114: 'ق',\n 116: 'ف',\n 121: 'غ',\n 117: 'ع',\n 105: 'ه',\n 111: 'خ',\n 112: 'ح',\n 97: 'ش',\n 115: 'س',\n 100: 'ی',\n 102: 'ب',\n 103: 'ل',\n 104: 'ا',\n 106: 'ت',\n 107: 'ن',\n 108: 'م',\n 59: 'ک',\n 122: 'ظ',\n 120: 'ط',\n 99: 'ز',\n 118: 'ر',\n 98: 'ذ',\n 110: 'د',\n 44: 'و',\n 39: 'گ',\n 67: 'ژ',\n 93: 'چ',\n 91: 'ج',\n 92: 'پ',\n 109: 'ئ',\n };\n if (latinPattern.test(searchText)) {\n searchText = searchText\n .split('')\n .map((char) => {\n const asciiValue = char.charCodeAt(0);\n if (asciiToPersianMap[asciiValue]) {\n return asciiToPersianMap[asciiValue];\n } else {\n return char;\n }\n })\n .join('');\n }\n return searchText;\n }\n\n refresh() {\n const params: AXDataSourceReadParams = {};\n if (this.remoteOperation) {\n params.skip = 0;\n this.skip = 0;\n params.take = this.bufferSize;\n }\n if (this.dataSource != undefined) {\n // this.items = [];\n // this.items.forEach((element) => {\n // this.items.pop();\n // });\n\n if (this.items) {\n let t = this.items.length;\n for (let i = 0; i < t; i++) {\n this.items.pop();\n }\n }\n\n this.fetch(params);\n }\n }\n\n handleItemRemoveClick(item) {\n if (this.mode === 'single') {\n // this.selectedItems = null;\n this.setSelectedValues(null, true);\n // this.selectedItemsChange.emit(this._selectedItems);\n // this.clearValidationStyle(this.ref.nativeElement);\n } else {\n // this.selectedItems = this.selectedItems.filter((c) => c !== item);\n this.setSelectedItems(\n this.selectedItems.filter(\n (c) => c[this.valueField] !== item[this.valueField]\n ),\n true\n );\n // this._selectedItems = this._selectedItems.filter(c => c !== item);\n // this.selectedItemsChange.emit(this._selectedItems);\n // this.clearValidationStyle(this.ref.nativeElement);\n }\n // this.text = '';\n this.validate();\n this.cdr.markForCheck();\n }\n\n onFocusTextBox(e) {}\n\n onTextBoxClick(e) {\n if (this.disabled == false && this.readonly == false) {\n this.dropdown.open();\n }\n }\n\n handleItemClick(e: MouseEvent, item: any) {\n if (this.isItemDisabled(item) == false) {\n const value = item[this.valueField];\n\n if (this.mode === 'single') {\n // this.selectedValues = value;\n this.setSelectedValues(value, true);\n } else {\n const exists = this.selectedValues.slice(0);\n if (exists.includes(value)) {\n if (\n this.allowNull == true ||\n (this.allowNull == false && this.selectedItems.length > 1)\n ) {\n this.handleItemRemoveClick(item);\n }\n } else {\n exists.push(value);\n // this.selectedValues = exists;\n this.setSelectedValues(exists, true);\n }\n }\n\n if (this.mode == 'single') {\n this.text = '';\n this.dropdown.close();\n this.cdr.markForCheck();\n }\n // if (e.stopPropagation() == undefined) {\n // e.stopPropagation();\n // }\n setTimeout(() => {\n if (this.serchBox) {\n this.serchBox.focus();\n }\n }, 0);\n }\n\n e.stopPropagation();\n }\n\n handleKeyEventSearch(e: KeyboardEvent) {\n if (this.disabled || this.readonly) {\n this.dropdown.close();\n setTimeout(() => {\n this.textBoxSelectBox.focus();\n }, 0);\n return false;\n }\n if (e.key === 'Escape') {\n this.text = null;\n setTimeout(() => {\n this.textBoxSelectBox.focus();\n }, 0);\n }\n if (\n (e.key === 'ArrowDown' || e.key === 'ArrowUp') &&\n this.getItems().length > 0 &&\n e.type === 'keydown'\n ) {\n if (this.mode === 'single') {\n this.currentfocusedIndex =\n this.currentfocusedIndex + (e.key === 'ArrowDown' ? 1 : -1);\n this.selectedItemByIndex(this.currentfocusedIndex);\n } else {\n if (this.dropdown.isOpen) {\n this.setSelectedIndex(e.key === 'ArrowDown' ? 1 : -1);\n } else {\n this.dropdown.open();\n setTimeout(() => {\n if (this.serchBox) {\n this.serchBox.focus();\n }\n }, 0);\n }\n }\n }\n // if (e.key == 'Enter' && this.dropdown.isOpen && this.mode == 'single') {\n // this.dropdown.close();\n // setTimeout(() => {\n // this.dropdown.focus();\n // }, 0);\n // }\n //e.stopPropagation();\n //e.preventDefault();\n e.stopImmediatePropagation();\n if (e.type === 'keydown' && e.key == 'Enter' && this.dropdown.isOpen) {\n if (!this.remoteOperation && this.text && this.text !== '') {\n this.itemsFiltered = this.items.filter((c) =>\n (c[this.textField] as string)\n .toLowerCase()\n .includes(this.text.toLowerCase())\n );\n if (this.itemsFiltered.length === 1) {\n this.currentfocusedIndex = 0;\n }\n } else {\n this.itemsFiltered = this.items;\n }\n\n if (\n this.selectedItems.filter(\n (c) =>\n c[this.valueField] ===\n this.itemsFiltered[this.currentfocusedIndex][this.valueField]\n ).length > 0 &&\n this.mode == 'multiple'\n ) {\n if (\n this.allowNull == true ||\n (this.allowNull == false && this.selectedItems.length > 1)\n ) {\n if (!this.remoteOperation && this.text && this.text !== '') {\n this.selectedItems = this.selectedItems.filter(\n (c) =>\n c !==\n this.items.filter((c) =>\n (c[this.textField] as string)\n .toLowerCase()\n .includes(this.text.toLowerCase())\n )[this.currentfocusedIndex]\n );\n } else {\n this.selectedItems = this.selectedItems.filter(\n (c) =>\n c[this.valueField] !==\n this.items[this.currentfocusedIndex][this.valueField]\n );\n }\n this.emitSelectionChangedEvent();\n }\n } else {\n if (this.mode == 'multiple') {\n if (this.currentfocusedIndex != -1) {\n if (!this.remoteOperation && this.text && this.text !== '') {\n if (this.itemsFiltered.length === 1) {\n this.selectedItems.push(this.itemsFiltered[0]);\n } else {\n this.selectedItems.push(\n this.itemsFiltered[this.currentfocusedIndex]\n );\n }\n } else {\n this.selectedItems.push(this.items[this.currentfocusedIndex]);\n }\n this.emitSelectionChangedEvent();\n }\n } else {\n if (this.text && this.itemsFiltered?.length === 1) {\n this.setSelectedItems(this.itemsFiltered, true);\n }\n if (this.mode == 'single') {\n this.dropdown.close();\n setTimeout(() => {\n this.textBoxSelectBox.focus();\n }, 0);\n }\n }\n }\n e.stopPropagation();\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n this.cdr.markForCheck();\n }\n\n isChar(str: string) {\n if (\n str.includes('Shift') ||\n str.includes('Tab') ||\n str.includes('Control') ||\n str.includes('Alt') ||\n str.includes('CapsLock') ||\n str.includes('Meta') ||\n str.includes('ContextMenu') ||\n str.includes('Enter') ||\n str.includes('Backspace') ||\n str.includes('PrintScreen') ||\n str.includes('ScrollLock') ||\n str.includes('Pause') ||\n str.includes('Home') ||\n str.includes('End') ||\n str.includes('Insert') ||\n str.includes('PageUp') ||\n str.includes('Delete') ||\n str.includes('PageDown') ||\n str.includes('NumLock') ||\n str.includes('Escape') ||\n str.includes('Arrow') ||\n str.includes('ّF1') ||\n str.includes('F2') ||\n str.includes('F3') ||\n str.includes('F4') ||\n str.includes('F5') ||\n str.includes('F6') ||\n str.includes('F7') ||\n str.includes('F8') ||\n str.includes('F9') ||\n str.includes('F10') ||\n str.includes('F11') ||\n str.includes('F12')\n ) {\n return false;\n } else {\n return true;\n }\n }\n\n handleKeyEvent(e: any) {\n // const NumberMinusPattern = /[a-zA-Z0-9\\-]/g;\n // const Farsi = /[پچجحخهعغفقثصضشسیبلاتنمکگوئدذرزطظژؤإأءًٌٍَُِّ\\s]+$/;\n // const inputChar = String.fromCharCode(e.charCode);\n // const patternEn = /^[a-zA-Z0-9]*$/;\n // const pattern = /^[\\u0600-\\u06FF\\s]+$/;\n const inputChar = e.key;\n if (\n (inputChar != 'Backspace' &&\n inputChar != 'Backspace' &&\n inputChar != 'Tab' &&\n inputChar != 'Enter' &&\n inputChar != 'Escape' &&\n inputChar != 'ArrowDown' &&\n inputChar != 'ArrowUp') ||\n e.code === 'Space' ||\n e.ctrlKey == true\n ) {\n e.preventDefault();\n }\n if (\n e.key === 'Backspace' &&\n e.type === 'keydown' &&\n ((this.allowNull === true && this.selectedItems.length > 0) ||\n (this.allowNull === false && this.selectedItems.length > 1))\n ) {\n this.selectedItems.pop();\n this.emitSelectionChangedEvent();\n }\n if (this.disabled || this.readonly) {\n this.dropdown.close();\n setTimeout(() => {\n this.textBoxSelectBox.focus();\n }, 0);\n return false;\n }\n const INPUT = String.fromCharCode(e.keyCode);\n if (this.isChar(e.key) && this.allowSearch && e.ctrlKey == false) {\n this.dropdown.open();\n setTimeout(() => {\n if (this.serchBox) {\n this.serchBox.focus();\n }\n }, 0);\n this.text = e.key;\n }\n\n if (e.key === 'Escape') {\n this.text = null;\n this.dropdown.close();\n setTimeout(() => {\n this.textBoxSelectBox.focus();\n }, 0);\n }\n if (\n (e.key === 'ArrowDown' || e.key === 'ArrowUp') &&\n this.getItems().length > 0 &&\n e.type === 'keydown'\n ) {\n if (this.mode === 'single') {\n this.selectedItemByIndex(\n this.currentfocusedIndex + (e.key === 'ArrowDown' ? 1 : -1)\n );\n } else {\n if (this.dropdown.isOpen) {\n // this.setSelectedIndex((e.key === 'ArrowDown' ? 1 : -1));\n if (this.allowSearch == false) {\n this.setSelectedIndex(e.key === 'ArrowDown' ? 1 : -1);\n } else {\n setTimeout(() => {\n if (this.serchBox) {\n this.serchBox.focus();\n }\n }, 0);\n }\n } else {\n this.dropdown.open();\n if (this.allowSearch == true) {\n setTimeout(() => {\n if (this.serchBox) {\n this.serchBox.focus();\n }\n }, 0);\n }\n }\n }\n }\n\n if (this.allowSearch === false) {\n if (e.type === 'keydown' && e.key == 'Enter' && this.dropdown.isOpen) {\n e.stopImmediatePropagation();\n if (\n this.selectedItems.filter(\n (c) =>\n c[this.valueField] ===\n this.itemsFiltered[this.currentfocusedIndex][this.valueField]\n ).length > 0 &&\n this.mode == 'multiple'\n ) {\n if (\n this.allowNull == true ||\n (this.allowNull == false && this.selectedItems.length > 1)\n ) {\n if (!this.remoteOperation && this.text && this.text !== '') {\n this.selectedItems = this.selectedItems.filter(\n (c) =>\n c !==\n this.items.filter((c) =>\n (c[this.textField] as string)\n .toLowerCase()\n .includes(this.text.toLowerCase())\n )[this.currentfocusedIndex]\n );\n } else {\n this.selectedItems = this.selectedItems.filter(\n (c) =>\n c[this.valueField] !==\n this.items[this.currentfocusedIndex][this.valueField]\n );\n }\n this.emitSelectionChangedEvent();\n }\n } else {\n if (this.mode == 'multiple') {\n if (this.currentfocusedIndex != -1) {\n if (!this.remoteOperation && this.text && this.text !== '') {\n if (this.itemsFiltered.length === 1) {\n this.selectedItems.push(this.itemsFiltered[0]);\n } else {\n this.selectedItems.push(\n this.itemsFiltered[this.currentfocusedIndex]\n );\n }\n } else {\n this.selectedItems.push(this.items[this.currentfocusedIndex]);\n }\n this.emitSelectionChangedEvent();\n }\n } else {\n if (this.text && this.itemsFiltered.length === 1) {\n this.setSelectedItems(this.itemsFiltered, true);\n }\n if (this.mode == 'single') {\n this.dropdown.close();\n setTimeout(() => {\n this.textBoxSelectBox.focus();\n }, 0);\n }\n }\n }\n }\n }\n\n this.cdr.markForCheck();\n }\n\n focus(): void {\n this.textbox.focus();\n }\n\n selectedItemByIndex(index: number) {\n let item = [];\n if (!this.remoteOperation && this.text && this.text !== '') {\n this.itemsFiltered = this.items.filter((c) =>\n (c[this.textField] as string)\n .toLowerCase()\n .includes(this.text.toLowerCase())\n );\n\n item = this.itemsFiltered[index];\n } else {\n item = this.items[index];\n }\n //\n // const item = this.text ? this.items.filter((c) => (c[this.textField] as string).toLowerCase().includes(this.text.toLowerCase()))[index] : this.items[index];\n if (item) {\n this.setSelectedItems([item], true);\n }\n\n this.setSelectedIndex();\n }\n\n noAccentOrigin = {\n ك: 'ک',\n ﻷ: 'لا',\n ؤ: 'و',\n ى: 'ی',\n ي: 'ی',\n ئ: 'ی',\n أ: 'ا',\n إ: 'ا',\n آ: 'ا',\n ٱ: 'ا',\n ٳ: 'ا',\n ة: 'ه',\n ء: '',\n 'ِ': '',\n 'ْ': '',\n 'ُ': '',\n 'َ': '',\n 'ّ': '',\n 'ٍ': '',\n 'ً': '',\n 'ٌ': '',\n 'ٓ': '',\n 'ٰ': '',\n 'ٔ': '',\n '�': '',\n };\n\n getItems(): any[] {\n if (this.items == null) {\n return [];\n }\n if (!this.remoteOperation && this.text && this.text !== '') {\n return this.items.filter((c) => {\n const convertedTextField = this.convertArabicToPersian(\n c[this.textField],\n this.noAccentOrigin\n );\n const convertedText = this.convertArabicToPersian(\n this.text,\n this.noAccentOrigin\n );\n return convertedTextField\n .toLowerCase()\n .includes(convertedText.toLowerCase());\n });\n } else {\n return this.items;\n }\n }\n\n convertArabicToPersian(inputString, conversionMap) {\n let textConvert = '';\n for (let i = 0; i < inputString.length; i++) {\n const currentChar = inputString[i];\n if (conversionMap[currentChar]) {\n textConvert += conversionMap[currentChar];\n } else {\n textConvert += currentChar;\n }\n }\n return textConvert;\n }\n\n isItemSelected(item: any): boolean {\n return (\n this.selectedItems &&\n this.selectedItems.filter(\n (c) => c[this.valueField] === item[this.valueField]\n ).length > 0\n );\n }\n\n private itemsStatusObserver: any;\n private waitForData(callbackfn: () => void) {\n if (this.items && this.items.length) {\n callbackfn();\n } else if (!this.itemsStatusObserver) {\n Observable.create((observer) => {\n this.itemsStatusObserver = observer;\n })\n .pipe(debounceTime(100))\n .pipe(distinctUntilChanged())\n .subscribe((c) => {\n callbackfn();\n });\n }\n }\n}\n","<ax-drop-down\n #d\n [size]=\"size\"\n [fitParent]=\"fitParent\"\n [dropdownWidth]=\"dropdownWidth\"\n [rtl]=\"rtl\"\n [showDropDownButton]=\"showDropDownButton\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n (dropdownToggle)=\"dropdownToggleSelecBox($event)\"\n>\n <ng-container start>\n <ng-content select=\"[start]\"> </ng-content>\n </ng-container>\n <ng-container header>\n <div\n class=\"ax chips-container\"\n [class.multiline]=\"multiLine\"\n [style.padding]=\"selectedItems.length && multiLine ? '0.25rem' : ''\"\n >\n <div\n class=\"chips\"\n [class.chips-blank]=\"mode === 'single'\"\n [title]=\"item[textField]\"\n *ngFor=\"let item of selectedItems\"\n >\n <span\n class=\"chips-text\"\n [ngStyle]=\"{\n width:\n item[textField].length > 15 &&\n this.mode === 'multiple' &&\n !multiLine\n ? '110px'\n : 'auto'\n }\"\n >\n {{ item[textField] }}\n </span>\n <span\n class=\"close-icon\"\n (click)=\"handleItemRemoveClick(item)\"\n *ngIf=\"\n (readonly != true || itemRemove == true) &&\n disabled != true &&\n (allowNull == true || selectedItems.length > 1)\n \"\n >\n <i class=\"far fa-times close\"></i>\n </span>\n </div>\n <div class=\"search-wrapper\" (click)=\"onTextBoxClick($event)\">\n <ax-text-box\n #textBoxSelectBox\n [textAlign]=\"textAlign\"\n [placeholder]=\"selectedItems.length == 0 ? placeholder : ''\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n (onkey)=\"handleKeyEvent($event)\"\n [size]=\"size\"\n (onFocus)=\"onFocusTextBox($event)\"\n >\n </ax-text-box>\n </div>\n </div>\n </ng-container>\n <ng-container end>\n <ng-content select=\"[end]\"> </ng-content>\n </ng-container>\n\n <ng-container panel>\n <div *ngIf=\"allowSearch\" class=\"search-wrapper\" style=\"padding: 0.7em\">\n <ax-search-box\n #serchBox\n [onDemandTranslate]=\"onDemandTranslate\"\n [(value)]=\"text\"\n (onkey)=\"handleKeyEventSearch($event)\"\n (textChanged)=\"textChanged($event)\"\n (onButtonClick)=\"textChanged($event)\"\n >\n </ax-search-box>\n </div>\n <div class=\"ax list-container\">\n <div\n #listContainer\n class=\"list-container-items\"\n (scroll)=\"scrolled($event)\"\n >\n <ng-container\n *ngIf=\"getItems().length > 0; then thenTemplate; else elseTemplate\"\n ></ng-container>\n <ng-template #thenTemplate>\n <div\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\n class=\"list-item\"\n *ngFor=\"let item of getItems(); let i = index\"\n [class.focused]=\"i == currentfocusedIndex\"\n [class.selected]=\"isItemSelected(item)\"\n (click)=\"handleItemClick($event, item)\"\n >\n <div style=\"display: flex\">\n <ax-check-box\n *ngIf=\"showCheckBox\"\n [size]=\"size\"\n [value]=\"isItemSelected(item)\"\n [disabled]=\"\n (!allowNull &&\n selectedItems.length === 1 &&\n isItemSelected(item)) ||\n isItemDisabled(item)\n \"\n (onClick)=\"handleItemClick($event, item)\"\n >\n </ax-check-box>\n <ng-container *ngIf=\"rowTemplate; else elseTemplate\">\n <div\n style=\"\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n flex: 1;\n \"\n [title]=\"item[textField]\"\n [ngStyle]=\"\n showCheckBox ? { 'padding-inline-start': '0.5rem' } : ''\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n rowTemplate;\n context: { $implicit: item }\n \"\n >\n </ng-container>\n </div>\n </ng-container>\n <ng-template #elseTemplate>\n <div\n style=\"\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n flex: 1;\n \"\n [title]=\"item[textField]\"\n [ngStyle]=\"\n showCheckBox ? { 'padding-inline-start': '0.5rem' } : ''\n \"\n >\n {{ item[textField] }}\n </div>\n </ng-template>\n </div>\n </div>\n </ng-template>\n <div *ngIf=\"showLoading\" class=\"ax-pad-sm\" style=\"text-align: center\">\n <i\n class=\"far fa-spinner-third fa-pulse fa-2x\"\n style=\"color: var(--ax-primary-color)\"\n ></i>\n </div>\n <!-- <ax-loading-indicator ></ax-loading-indicator> -->\n <ng-template #elseTemplate>\n <ng-container\n *ngIf=\"\n showLoading == true;\n then searchTemplate;\n else noDataTemplate\n \"\n ></ng-container>\n <ng-template #searchTemplate>\n <div class=\"list-item\">\n {{ 'common.search' | trans }}\n </div>\n </ng-template>\n <ng-template #noDataTemplate>\n <div class=\"list-item\">\n {{ 'common.noDataFound' | trans }}\n </div>\n </ng-template>\n </ng-template>\n </div>\n </div>\n </ng-container>\n</ax-drop-down>\n","import { AXTranslator } from '@acorex/core';\nimport {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXSelectBoxComponent } from '../selectbox/selectbox.component';\nimport { AXTextBoxComponent } from '../textbox/textbox.component';\nimport { AXValidationFormComponent } from '../validation/validation-form.component';\nimport {\n AXQueryBuilderControl,\n AXQueryBuilderGroup,\n AXQueryBuilderRule,\n AXQueryBuilderRuleEvent,\n} from './query-builder.class';\n\n@Component({\n selector: 'ax-query-rule',\n templateUrl: 'query-builder-rule.component.html',\n host: { class: 'ax ax-query-rule' },\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXQueryBuilderRuleComponent implements OnInit {\n @ViewChild('selectBox') selectBox: AXSelectBoxComponent;\n @ViewChild('selectBoxValue') selectBoxValue: AXSelectBoxComponent;\n\n @ViewChild('selectBoxBoolean') selectBoxBoolean: AXSelectBoxComponent;\n\n @ViewChild('textBoxNameValue') textBoxNameValue: AXTextBoxComponent;\n @ViewChild(AXValidationFormComponent) form: AXValidationFormComponent;\n @Input()\n isEditing: boolean = true;\n\n @Input()\n rule: AXQueryBuilderRule;\n\n @Input()\n parent: AXQueryBuilderGroup;\n\n @Input()\n mode: 'new' | 'edit' = 'new';\n\n @Input()\n fields: any[] = [];\n\n @Output()\n onRuleDelete: EventEmitter<AXQueryBuilderRuleEvent> =\n new EventEmitter<AXQueryBuilderRuleEvent>();\n\n @Output()\n ruleChanged: EventEmitter<AXQueryBuilderRuleEvent> =\n new EventEmitter<AXQueryBuilderRuleEvent>();\n\n showValue: boolean = false;\n\n isOnDemandLabel: boolean = false;\n\n showSelectBox: boolean = true;\n showOperatorSelectBox: boolean = true;\n constructor() {}\n\n ngOnInit(): void {\n this.fields.forEach((field) => {\n if (field.dataField == this.rule.dataField) {\n this.rule.control.options = field.control.options;\n }\n });\n }\n\n ngAfterViewInit(): void {\n if (this.rule.onDemandLabel) {\n this.isOnDemandLabel = true;\n }\n }\n provideDataBoolean = (e) => {\n return new Promise((resolve) => {\n resolve([\n {\n value: 'true',\n text: AXTranslator.get('queryBuilder.true'),\n },\n {\n value: 'false',\n text: AXTranslator.get('queryBuilder.false'),\n },\n ]);\n });\n };\n\n saveRule() {\n this.form.validate().then((c) => {});\n }\n\n provideDataOperator = (e) => {\n return new Promise((resolve) => {\n if (this.rule.dataType === 'string') {\n if (\n this.rule &&\n this.rule.control &&\n this.rule.control.type &&\n this.rule.control.type == 'selectBox'\n ) {\n if (this.rule.control.options.mode == 'multiple') {\n resolve([\n {\n value: 'contains',\n text: AXTranslator.get('queryBuilder.contains'),\n },\n {\n value: 'not-contains',\n text: AXTranslator.get('queryBuilder.not-contains'),\n },\n {\n value: 'contains-all',\n text: AXTranslator.get('queryBuilder.contains-all'),\n },\n {\n value: 'null',\n text: AXTranslator.get('queryBuilder.null'),\n },\n {\n value: 'not-null',\n text: AXTranslator.get('queryBuilder.not-null'),\n },\n ]);\n } else {\n resolve([\n {\n value: 'equal',\n text: AXTranslator.get('queryBuilder.equal'),\n },\n {\n value: 'not-equal',\n text: AXTranslator.get('queryBuilder.not-equal'),\n },\n {\n value: 'null',\n text: AXTranslator.get('queryBuilder.null'),\n },\n {\n value: 'not-null',\n text: AXTranslator.get('queryBuilder.not-null'),\n },\n ]);\n }\n } else {\n resolve([\n {\n value: 'equal',\n text: AXTranslator.get('queryBuilder.equal'),\n },\n {\n value: 'contains',\n text: AXTranslator.get('queryBuilder.contains'),\n },\n {\n value: 'start-with',\n text: AXTranslator.get('queryBuilder.start-with'),\n },\n {\n value: 'end-with',\n text: AXTranslator.get('queryBuilder.end-with'),\n },\n {\n value: 'not-equal',\n text: AXTranslator.get('queryBuilder.not-equal'),\n },\n {\n value: 'null',\n text: AXTranslator.get('queryBuilder.null'),\n },\n {\n value: 'not-null',\n text: AXTranslator.get('queryBuilder.not-null'),\n },\n ]);\n }\n }\n if (this.rule.dataType === 'number') {\n resolve([\n {\n value: 'equal',\n text: AXTranslator.get('queryBuilder.equal'),\n },\n {\n value: 'gt',\n text: AXTranslator.get('queryBuilder.greater-than'),\n },\n {\n value: 'gte',\n text: AXTranslator.get('queryBuilder.greater-than-equal'),\n },\n {\n value: 'lt',\n text: AXTranslator.get('queryBuilder.less-than'),\n },\n {\n value: 'lte',\n text: AXTranslator.get('queryBuilder.less-than-equal'),\n },\n {\n value: 'not-equal',\n text: AXTranslator.get('queryBuilder.not-equal'),\n },\n {\n value: 'null',\n text: AXTranslator.get('queryBuilder.null'),\n },\n {\n value: 'not-null',\n text: AXTranslator.get('queryBuilder.not-null'),\n },\n ]);\n }\n if (this.rule.dataType === 'boolean') {\n resolve([\n {\n value: 'equal',\n text: AXTranslator.get('queryBuilder.equal'),\n },\n {\n value: 'null',\n text: AXTranslator.get('queryBuilder.null'),\n },\n {\n value: 'not-null',\n text: AXTranslator.get('queryBuilder.not-null'),\n },\n ]);\n }\n if (this.rule.dataType === 'datetime' || this.rule.dataType === 'date') {\n resolve([\n {\n value: 'equal',\n text: AXTranslator.get('queryBuilder.equal'),\n },\n {\n value: 'gt',\n text: AXTranslator.get('queryBuilder.greater-than'),\n },\n {\n value: 'gte',\n text: AXTranslator.get('queryBuilder.greater-than-equal'),\n },\n {\n value: 'lt',\n text: AXTranslator.get('queryBuilder.less-than'),\n },\n {\n value: 'lte',\n text: AXTranslator.get('queryBuilder.less-than-equal'),\n },\n {\n value: 'not-equal',\n text: AXTranslator.get('queryBuilder.not-equal'),\n },\n {\n value: 'null',\n text: AXTranslator.get('queryBuilder.null'),\n },\n {\n value: 'not-null',\n text: AXTranslator.get('queryBuilder.not-null'),\n },\n ]);\n }\n resolve([]);\n });\n };\n\n handleEditClick() {\n this.isEditing = true;\n }\n\n handleCommitClick() {\n this.isEditing = false;\n this.ruleChanged.emit({ items: this.rule, component: this });\n }\n handleRemoveClick() {\n this.onRuleDelete.emit({ items: this.rule, component: this });\n }\n captionChange(e) {\n if (e.selectedItems[0]) {\n this.rule.caption = e.selectedItems[0].caption;\n this.rule.dataField = e.selectedItems[0].dataField;\n this.rule.dataType = e.selectedItems[0].dataType;\n this.rule.control =\n e.selectedItems[0].control || new AXQueryBuilderControl();\n this.rule.dataFieldItem[0] = e.selectedItems[0];\n }\n\n if (this.selectBox) {\n if (\n this.rule.control.type === 'selectBox' &&\n this.rule.control.options.mode == 'multiple'\n ) {\n this.rule.operator = 'contains';\n } else {\n this.rule.operator = 'equal';\n }\n this.selectBox.refresh();\n }\n\n this.showOperatorSelectBox = false;\n setTimeout(() => {\n this.showOperatorSelectBox = true;\n }, 20);\n\n this.rule.value = null;\n this.rule.valueItem = [];\n this.rule.text = '';\n\n if (this.rule.control.type === 'selectBox' && this.selectBoxValue) {\n this.showSelectBox = false;\n setTimeout(() => {\n this.showSelectBox = true;\n this.selectBoxValue.refresh();\n }, 20);\n }\n if (this.rule.control.type == 'boolean') {\n this.selectBoxBoolean.refresh();\n }\n this.ruleChanged.emit({ component: this, items: this.rule });\n }\n\n operatorChange(e) {\n this.rule.operator = e[0].value;\n this.ruleChanged.emit({ component: this, items: this.rule });\n\n if (e[0].value !== 'null' && e[0].value !== 'not-null') {\n this.showValue = true;\n } else {\n this.showValue = false;\n this.rule.value = '';\n this.rule.text = '';\n this.rule.valueItem = [];\n this.rule.onDemandLabel = '';\n }\n }\n valueChange(e) {\n // this.rule.text = e.value == undefined ? e[0].value : (e.value == null ? '' : e.value);\n\n this.rule.text = e[0]\n ? e[0].value == null\n ? ''\n : e[0].value\n : e.value == null\n ? ''\n : e.value;\n this.rule.onDemandLabel = '';\n this.ruleChanged.emit({ component: this, items: this.rule });\n }\n onDemandLabelChange(e) {\n // this.rule.onDemandLabel = e.value == undefined ? '????|' + e[0].value : '????|' + e.value;\n this.rule.onDemandLabel = e[0]\n ? '????|' + (e[0].value == null ? '' : e[0].value)\n : '????|' + (e.value == null ? '' : e.value);\n this.rule.value = '';\n this.rule.text = '';\n this.rule.valueItem = [];\n\n this.ruleChanged.emit({ component: this, items: this.rule });\n }\n valueBooleanChange(e) {\n // this.rule.text = e.value == undefined ? e[0].value : (e.value == null ? '' : e.value);\n this.rule.text = e[0]\n ? e[0].value == null\n ? ''\n : e[0].value\n : e.value == null\n ? ''\n : e.value;\n this.rule.value = e.value == undefined ? e[0].value : e.value;\n this.rule.onDemandLabel = '';\n this.ruleChanged.emit({ component: this, items: this.rule });\n }\n getOnDemandName(v) {\n return v ? v.split('|')[1] : '';\n }\n selectedItemsChange(e) {\n let n = this.getOption('textField');\n\n if (this.rule.control.options.mode === 'single') {\n this.rule.text = e[0][n];\n if (this.rule && this.rule.control.options.valueField) {\n this.rule.value = e[0][this.rule.control.options.valueField];\n } else {\n this.rule.value = e[0].value;\n }\n this.rule.valueItem[0] = e[0];\n } else {\n this.rule.text = e.map((x) => x[n]).join('- ');\n const THAT = this;\n if (THAT.rule && THAT.rule.control.options.valueField) {\n THAT.rule.value = e.map(function (item) {\n return item[THAT.rule.control.options.valueField];\n });\n } else {\n this.rule.value = e.map(function (item) {\n return item.value;\n });\n }\n this.rule.valueItem = e;\n }\n\n this.ruleChanged.emit({ component: this, items: this.rule });\n this.rule.onDemandLabel = '';\n }\n onDemandLabel(e) {\n // if (e.value && (this.rule.onDemandLabel == '????|' || this.rule.onDemandLabel === undefined || this.rule.onDemandLabel === null || this.rule.onDemandLabel === '')) {\n // this.textBoxNameValue.focus();\n // }\n if (e.value == false) {\n this.rule.onDemandLabel = '';\n }\n this.isOnDemandLabel = e.value;\n }\n getProvideData = (e) => {\n if (\n this.rule &&\n this.rule.control.options &&\n this.rule.control.options.dataSource\n ) {\n return this.rule.control.options.dataSource({\n ...e,\n optionsData: { ...this.rule.control.options },\n });\n }\n };\n\n getOption(name: string) {\n return this.rule.control.options ? this.rule.control.options[name] : null;\n }\n}\n","<div class=\"condition\" *ngIf=\"parent\">\n <div class=\"text {{parent.condition}}\">\n <span>{{parent.condition}}</span>\n </div>\n</div>\n<div class=\"handler\">\n <i class=\"far fa-grip-lines-vertical\"></i>\n</div>\n\n<div class=\"caption\" [ngClass]=\"{'editable': isEditing}\">\n <ng-container *ngIf=\"isEditing;else fieldsTemplate\">\n <ax-form-group>\n <ax-select-box [readonly]=\"mode == 'edit'\" (selectionChanged)=\"captionChange($event)\" allowNull=\"false\"\n [(selectedItems)]=\"rule.dataFieldItem\" textField=\"caption\" valueField=\"dataField\" [items]=\"fields\"\n mode=\"single\">\n </ax-select-box>\n </ax-form-group>\n </ng-container>\n <ng-template #fieldsTemplate>\n <div (click)=\"handleEditClick()\">\n {{rule.caption}}\n </div>\n </ng-template>\n</div>\n\n<div class=\"operator\" [ngClass]=\"{'editable': isEditing,'radius':!showValue}\">\n <ng-container *ngIf=\"isEditing;else operatorTemplate\">\n <ax-form-group>\n <ax-select-box [readonly]=\"mode == 'edit'\" *ngIf=\"showOperatorSelectBox\" [(selectedValues)]=\"rule.operator\"\n #selectBox (selectedItemsChange)=\"operatorChange($event)\" allowNull=\"false\" mode=\"single\">\n <ax-data-source [provideData]=\"provideDataOperator\">\n </ax-data-source>\n </ax-select-box>\n </ax-form-group>\n </ng-container>\n <ng-template #operatorTemplate>\n <div class=\"text\" (click)=\"handleEditClick()\">\n {{('queryBuilder.'+rule.operator) | trans}}\n </div>\n </ng-template>\n</div>\n<div *ngIf=\"showValue\" class=\"value\" [ngClass]=\"{'editable': isEditing}\">\n <ng-container *ngIf=\"isEditing;else valueTemplate\">\n\n <div *ngIf=\" rule.control && !isOnDemandLabel\" [ngSwitch]=\"rule.control.type\">\n <div *ngSwitchCase=\"'textBox'\">\n <ax-form-group>\n <ax-text-box (onValueChanged)=\"valueChange($event)\" placeholder=\"مقدار مورد نظر خود را وارد کنید\"\n [(value)]=\"rule.value\">\n </ax-text-box>\n </ax-form-group>\n </div>\n <div *ngSwitchCase=\"'selectBox'\">\n <ax-form-group>\n <ax-select-box *ngIf=\"showSelectBox\" [mode]=\"getOption('mode')\"\n [remoteOperation]=\"getOption('remoteOperation')\" [valueField]=\"getOption('valueField')\"\n placeholder=\"مقدار مورد نظر خود را وارد کنید\" [textField]=\"getOption('textField')\"\n [(selectedItems)]=\"rule.valueItem\" (selectedItemsChange)=\"selectedItemsChange($event)\"\n #selectBoxValue>\n <ax-data-source [provideData]=\"getProvideData\"></ax-data-source>\n </ax-select-box>\n </ax-form-group>\n </div>\n\n <div *ngSwitchCase=\"'numberBox'\">\n <ax-form-group>\n <ax-number-box [decimalNumber]=\"2\" (onValueChanged)=\"valueChange($event)\"\n placeholder=\"مقدار مورد نظر خود را وارد کنید\" [(value)]=\"rule.value\">\n </ax-number-box>\n </ax-form-group>\n </div>\n <div *ngSwitchCase=\"'datetime'\">\n <ax-date-picker label=\"From\" [(value)]=\"rule.value\" (onValueChanged)=\"valueChange($event)\">\n </ax-date-picker>\n\n </div>\n <div *ngSwitchCase=\"'boolean'\">\n\n <ax-form-group>\n <ax-select-box #selectBoxBoolean (selectedItemsChange)=\"valueBooleanChange($event)\"\n allowNull=\"false\" [selectedValues]=\"rule.value\" mode=\"single\">\n <ax-data-source [provideData]=\"provideDataBoolean\">\n </ax-data-source>\n </ax-select-box>\n </ax-form-group>\n\n </div>\n <div *ngSwitchDefault>\n <ax-form-group>\n <ax-text-box (onValueChanged)=\"valueChange($event)\" placeholder=\"مقدار مورد نظر خود را وارد کنید\"\n [(value)]=\"rule.value\">\n </ax-text-box>\n\n </ax-form-group>\n\n </div>\n </div>\n\n <div *ngIf=\"isOnDemandLabel\">\n\n <ax-text-box #textBoxNameValue [value]=\"getOnDemandName(rule.onDemandLabel)\"\n (onValueChanged)=\"onDemandLabelChange($event)\" placeholder=\"نام متغیر خود را وارد کنید\">\n <!-- <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation> -->\n </ax-text-box>\n\n\n </div>\n\n </ng-container>\n <ng-template #valueTemplate>\n <div (click)=\"handleEditClick()\">\n\n {{rule.text}}\n\n </div>\n </ng-template>\n</div>\n\n<div class=\"buttons-list\">\n <div *ngIf=\"showValue && isEditing && mode == 'new'\" class=\"button variable\"\n [ngClass]=\"{'active-button': isOnDemandLabel}\">\n <i class=\"far fa-dollar-sign\"></i>\n <ax-check-box [value]=\"isOnDemandLabel\" (onClick)=\"onDemandLabel($event)\">\n </ax-check-box>\n </div>\n\n <div class=\"button commit\" (click)=\"handleCommitClick()\" *ngIf=\"isEditing\">\n <i class=\"far fa-check\"></i>\n </div>\n <div class=\"button remove\" (click)=\"handleRemoveClick()\" *ngIf=\"mode == 'new'\">\n <i class=\"far fa-times\"></i>\n </div>\n</div>","import { AXButtonItem, AXTranslator } from '@acorex/core';\nimport { ChangeDetectorRef, Component, ViewChild } from '@angular/core';\nimport { AXBasePopupPageComponent } from '../../base/base-page.class';\nimport { AXMenuItemClickEvent } from '../../menu/menu.component';\nimport { AXQueryBuilderGroup, AXQueryBuilderPopup, AXQueryBuilderRule } from '../query-builder.class';\n\nimport { AXDataSourceReadParams } from '../../data-source/read-param'\nimport { AXToastService } from '../../toast/toast.service';\nimport { AXValidationFormComponent } from '../../validation/validation-form.component';\n@Component({\n templateUrl: './query-builder-popup.component.html'\n})\n\nexport class AXQueryBuilderPopupComponent extends AXBasePopupPageComponent {\n @ViewChild(AXValidationFormComponent) form: AXValidationFormComponent;\n constructor(private toast: AXToastService) {\n super();\n }\n group: AXQueryBuilderGroup;\n items: AXQueryBuilderRule[] = [];\n groupCopy: AXQueryBuilderGroup;\n complateValue: boolean = true;\n provideData: any;\n makeJsonString(items: any[]) {\n return new Promise((resolve, reject) => {\n items.forEach((element, index, array) => {\n if (element.items) {\n this.makeJsonString(element.items);\n } else {\n if (element.control && element.control.options && (element.control.options.dataSource === '' || element.control.options.dataSource === undefined)) {\n element.control.options.dataSource = this.provideData;\n }\n }\n if (index === array.length - 1) {\n resolve(array[0]);\n }\n });\n });\n }\n ngAfterViewInit() {\n var groupString = JSON.stringify(this.group);\n this.groupCopy = JSON.parse(groupString);\n this.makeJsonString(this.groupCopy.items);\n for (let i = 0; i < this.groupCopy.items.length; i++) {\n this.getNoValueRule(this.groupCopy.items[i]);\n }\n if (this.items.length < 1) {\n this.close(this.group);\n }\n\n }\n getValue(v) {\n return v.indexOf('????') == 0 ? v.split('|')[1] : v;\n }\n getNoValueRule(gr) {\n // for (let i = 0; i < gr.items.length; i++) {\n if (gr.condition) {\n for (let i = 0; i < gr.items.length; i++) {\n this.getNoValueRule(gr.items[i]);\n }\n\n } else {\n if (gr.onDemandLabel?.indexOf('????') == 0) {\n this.items.push(gr);\n }\n }\n\n // }\n }\n\n ngOnInit(): void {\n\n }\n\n\n textValueChange(e, rule) {\n rule.value = e.value;\n rule.text = e.value;\n\n }\n selectedItemsChange(e, rule) {\n let n = this.getOption('textField', rule);\n rule.text = e[0][n];\n if (rule && rule.control.options.valueField) {\n rule.value = e[0][rule.control.options.valueField];\n } else {\n rule.value = e[0].value;\n }\n rule.valueItem[0] = e[0];\n\n }\n valueChange(e, rule) {\n rule.value = e.value;\n rule.text = e.value;\n\n }\n valueBooleanChange(e, rule) {\n rule.text = e.value == undefined ? e[0].value : e.value;\n rule.value = e.value == undefined ? e[0].value : e.value;\n\n }\n getOption(name: string, rule) {\n return rule.control.options ? rule.control.options[name] : null;\n }\n getProvideData = (e: AXDataSourceReadParams) => {\n if (e.extra && e.extra.control.options && e.extra.control.options.dataSource) {\n return e.extra.control.options.dataSource({ ...e, optionsData: { ...e.extra.control.options } });\n }\n };\n\n provideDataBoolean = (e) => {\n return new Promise((resolve) => {\n resolve([\n {\n value: 'true',\n text: AXTranslator.get('queryBuilder.true')\n },\n {\n value: 'false',\n text: AXTranslator.get('queryBuilder.false')\n }\n\n ])\n })\n }\n\n findNullValue(gr) {\n for (let i = 0; i < gr.length; i++) {\n if (gr[i].value === null || gr[i].value === undefined || gr[i].value === '') {\n this.complateValue = false;\n }\n }\n\n\n // if (gr.condition) {\n // for (let i = 0; i < gr.items.length; i++) {\n // this.findNullValue(gr.items[i]);\n // }\n\n // } else {\n // if (gr.onDemandLabel?.indexOf('????') == 0 || gr.value === null || gr.value === undefined || gr.value === '') {\n // this.complateValue = false;\n // }\n // }\n\n }\n\n onFooterButtonClick(e: AXMenuItemClickEvent) {\n if (e.name === 'confirm') {\n this.form.validate().then(c => {\n if (c.result === true) {\n this.close(this.groupCopy);\n }\n });\n }\n if (e.name === 'cancel') {\n this.close();\n }\n\n }\n\n getFooterButtons(): AXButtonItem[] {\n return [\n {\n text: AXTranslator.get('common.confirm'),\n name: 'confirm',\n style: 'ax primary',\n icon: 'far fa-check-circle'\n },\n {\n text: AXTranslator.get('common.cancel'),\n name: 'cancel',\n style: 'ax light',\n icon: 'far fa-times'\n }\n ]\n }\n}","<div>\n <ax-validation-form #form>\n <div *ngFor=\"let rule of items\">\n\n <div *ngIf=\" rule.control\" [ngSwitch]=\"rule.control.type\" style=\"padding: 1em;\">\n <div *ngSwitchCase=\"'textBox'\">\n <ax-form-group>\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\n <ax-text-box (onValueChanged)=\"textValueChange($event,rule)\"\n placeholder=\"مقدار مورد نظر خود را وارد کنید\" size=\"sm\">\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n </ax-text-box>\n </ax-form-group>\n </div>\n <div *ngSwitchCase=\"'selectBox'\">\n <ax-form-group>\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\n <ax-select-box placeholder=\"مقدار مورد نظر خود را وارد کنید\"\n [textField]=\"getOption('textField',rule)\" [(selectedItems)]=\"rule.valueItem\"\n [valueField]=\"getOption('valueField',rule)\" [mode]=\"getOption('mode',rule)\"\n (selectedItemsChange)=\"selectedItemsChange($event,rule)\" size=\"sm\" #selectBoxValue\n [remoteOperation]=\"getOption('remoteOperation',rule)\">\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n <ax-data-source [provideData]=\"getProvideData\" [params]=\"rule\"></ax-data-source>\n </ax-select-box>\n </ax-form-group>\n </div>\n <div *ngSwitchCase=\"'numberBox'\">\n <ax-form-group>\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\n <ax-number-box (onValueChanged)=\"valueChange($event,rule)\"\n placeholder=\"مقدار مورد نظر خود را وارد کنید\" size=\"sm\">\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n </ax-number-box>\n </ax-form-group>\n </div>\n <div *ngSwitchCase=\"'datetime'\">\n <ax-date-picker label=\"From\" [(value)]=\"rule.value\" (onValueChanged)=\"valueChange($event,rule)\">\n </ax-date-picker>\n </div>\n <div *ngSwitchCase=\"'boolean'\">\n <ax-form-group>\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\n <ax-select-box #selectBoxBoolean (selectedItemsChange)=\"valueBooleanChange($event,rule)\"\n allowNull=\"false\" [selectedValues]=\"rule.value\" size=\"sm\" mode=\"single\">\n <ax-data-source [provideData]=\"provideDataBoolean\">\n </ax-data-source>\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n </ax-select-box>\n </ax-form-group>\n </div>\n <div *ngSwitchDefault>\n <ax-form-group>\n <ax-label>{{getValue(rule.onDemandLabel)}}</ax-label>\n <ax-text-box (onValueChanged)=\"textValueChange($event,rule)\"\n placeholder=\"مقدار مورد نظر خود را وارد کنید\" size=\"sm\">\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n </ax-text-box>\n\n </ax-form-group>\n\n </div>\n </div>\n\n\n\n\n </div>\n\n </ax-validation-form>\n</div>\n","import { AXQueryBuilderGroup, AXQueryBuilderStringType } from './query-builder.class';\nimport { Injectable } from '@angular/core';\nimport { AXPopupService } from '../popup/popup.service';\nimport { AXQueryBuilderPopupComponent } from './query-builder-popup/query-builder-popup.component';\nimport { AXToastService } from '../toast/toast.service';\nimport { AXDateTime } from '@acorex/core';\n@Injectable({ providedIn: 'root' })\nexport class AXQueryBuilderService {\n constructor(private popup: AXPopupService, private toast: AXToastService) { }\n canOpen: boolean = false;\n canRun: boolean = false;\n public runQuery(group: AXQueryBuilderGroup, provideData) {\n return new Promise((resolve) => {\n this.canOpen = false;\n for (let i = 0; i < group.items.length; i++) {\n this.getNoValueRule(group.items[i]);\n }\n if (this.canOpen) {\n this.canRun = true;\n for (let i = 0; i < group.items.length; i++) {\n if (this.canRun == true) {\n this.findNullValue(group.items[i]);\n }\n }\n if (this.canRun) {\n this.popup.open(AXQueryBuilderPopupComponent, { data: { group: group, provideData: provideData }, title: 'دریافت مقادیر' }).then((c) => {\n resolve(c);\n });\n }\n } else {\n resolve(group);\n }\n });\n }\n\n findNullValue(gr) {\n if (this.canRun == true) {\n if (gr.condition) {\n for (let i = 0; i < gr.items.length; i++) {\n this.findNullValue(gr.items[i]);\n }\n } else {\n if (gr.onDemandLabel == '????|') {\n this.canRun = false;\n this.toast.error('لطفا نام متغیر های مورد نیاز را کامل کنید');\n }\n }\n }\n }\n\n private getNoValueRule(gr) {\n // for (let i = 0; i < gr.items.length; i++) {\n if (gr.condition) {\n for (let i = 0; i < gr.items.length; i++) {\n this.getNoValueRule(gr.items[i]);\n }\n } else {\n if (gr.onDemandLabel?.indexOf('????') == 0) {\n this.canOpen = true;\n }\n }\n\n // }\n }\n\n async getQueryStringSimple(group: AXQueryBuilderGroup) {\n return new Promise<string>(async (resolve, reject) => {\n var query: string;\n if (group.items.length > 0) {\n query = ' ( ';\n }\n var id = 0;\n for await (const iterator of group.items) {\n const item: any = group.items[id];\n\n if (item.condition) {\n await this.getQueryStringSimple(item).then((c) => {\n query = query + c;\n });\n } else {\n let codeOperator: string = null;\n switch (item.operator) {\n case 'equal':\n codeOperator = '==';\n break;\n case 'not-equal':\n codeOperator = '!=';\n break;\n case 'not-null':\n codeOperator = '!= null';\n break;\n case 'null':\n codeOperator = '== null';\n break;\n case 'gt':\n codeOperator = '>';\n break;\n case 'gte':\n codeOperator = '>=';\n break;\n case 'lt':\n codeOperator = '<';\n break;\n case 'lte':\n codeOperator = '<=';\n break;\n case 'contains':\n codeOperator = item.operator;\n break;\n case 'start-with':\n codeOperator = item.operator;\n break;\n case 'end-with':\n codeOperator = item.operator;\n break;\n default:\n codeOperator = item.operator;\n break;\n }\n if (item.dataType == 'datetime' && item.text && item.text != '' && item.text != null || item.dataType == 'date' && item.text && item.text != '' && item.text != null) {\n query = query + ' ' + item.caption + ' ' + codeOperator + ' (' + AXDateTime.convert(item.text, 'jalali') + ')';\n } else if (item.dataType != 'datetime' || item.dataType != 'date') {\n query = query + ' ' + item.caption + ' ' + codeOperator + ' ' + item.text;\n }\n\n }\n if (id !== group.items.length - 1 && query != ' ( ') {\n query = query + ' ' + group.condition;\n }\n id += 1;\n }\n if (group.items.length > 0) {\n query = query + ' ) ';\n }\n resolve(query);\n });\n }\n\n public getQueryString(group: AXQueryBuilderGroup, type: AXQueryBuilderStringType): string {\n let query = '';\n switch (type) {\n case 'simple':\n if (group.items.length > 0) {\n query = ' ( ';\n }\n for (let i = 0; i < group.items.length; i++) {\n const item = group.items[i];\n if (item instanceof AXQueryBuilderGroup) {\n query = query + item.queryString;\n } else {\n query = query + ' ' + item.caption + ' ' + item.operator + ' ' + item.value;\n }\n if (i !== group.items.length - 1 && query != ' ( ') {\n query = query + ' ' + group.condition;\n }\n }\n if (group.items.length > 0) {\n query = query + ' ) ';\n }\n break;\n\n case 'elastic':\n if (group.items.length > 0) {\n query = ' ( ';\n }\n for (let i = 0; i < group.items.length; i++) {\n const item = group.items[i];\n if (item instanceof AXQueryBuilderGroup) {\n query = query + item.queryStringElastic;\n } else {\n query = query + ' ' + item.dataField + ' ' + item.operator + ' ' + item.value;\n }\n if (i !== group.items.length - 1 && query != ' ( ') {\n query = query + ' ' + group.condition;\n }\n }\n if (group.items.length > 0) {\n query = query + ' ) ';\n }\n\n break;\n case 'sql':\n break;\n }\n\n return query;\n }\n}\n","import { Component, OnInit, Input, ViewEncapsulation, Output, EventEmitter, ViewChild } from '@angular/core';\nimport { AXValidationFormComponent } from '../validation/validation-form.component';\nimport { AXQueryBuilderRuleComponent } from './query-builder-rule.component';\nimport { AXQueryBuilderGroup, AXQueryBuilderGroupEvent, AXQueryBuilderRuleEvent, AXQueryBuilderRule } from './query-builder.class';\nimport { AXQueryBuilderService } from './query-builder.service';\n@Component({\n selector: 'ax-query-group',\n templateUrl: 'query-builder-group.component.html',\n host: { class: 'ax ax-query-group' },\n encapsulation: ViewEncapsulation.None\n})\nexport class AXQueryBuilderGroupComponent implements OnInit {\n @ViewChild('queryRule') queryRule: AXQueryBuilderRuleComponent;\n @ViewChild(AXValidationFormComponent) form: AXValidationFormComponent;\n @Input()\n group: AXQueryBuilderGroup;\n\n collapsed: boolean = false;\n\n @Input()\n parent: AXQueryBuilderGroup;\n\n @Input()\n fields: any[] = [];\n\n @Input()\n mode: 'new' | 'edit' = 'new';\n\n //ruleIsEditing: boolean = true;\n\n @Output()\n groupRuleChanged: EventEmitter<AXQueryBuilderGroupEvent> = new EventEmitter<AXQueryBuilderGroupEvent>();\n\n showGroupCondition: boolean = false;\n\n constructor(private qs: AXQueryBuilderService) {}\n\n ngOnInit() {}\n\n ruleDelete(e: AXQueryBuilderRuleEvent) {\n this.group.items = this.group.items.filter((c) => c !== e.items);\n this.ruleChanged(null);\n }\n handleRemoveClick() {\n this.parent.items = this.parent.items.filter((c) => c !== this.group);\n this.groupRuleChanged.emit({ groups: this.group, component: this });\n }\n saveRule() {\n // this.form.validate().then(c => {\n // });\n // return this.queryRule.saveRule();\n }\n addRule() {\n const item: AXQueryBuilderRule = new AXQueryBuilderRule();\n if (this.fields.length > 0) {\n // item.caption = this.fields[0].caption;\n // item.dataType = this.fields[0].dataType;\n // item.dataField = this.fields[0].dataField;\n } else {\n }\n item.operator = 'equal';\n\n if (item.dataType === 'string') {\n item.value = '';\n }\n if (item.dataType === 'number') {\n item.value = 0;\n }\n\n if (this.group.items == undefined) {\n this.group.items = [];\n }\n this.group.items.push(item);\n this.ruleChanged(null);\n }\n addGroup() {\n this.showGroupCondition = true;\n }\n addGroupOR() {\n this.makeGroup('OR');\n }\n addGroupAND() {\n this.makeGroup('AND');\n }\n makeGroup(_condition) {\n let r: AXQueryBuilderGroup = new AXQueryBuilderGroup();\n r.condition = _condition;\n r.items = [];\n r.queryString = '';\n if (this.group.items == undefined) {\n this.group.items = [];\n }\n this.group.items.push(r);\n this.showGroupCondition = false;\n this.ruleChanged(null);\n }\n changeDetailMode() {\n //if (this.parent) {\n this.collapsed = !this.collapsed;\n // this.ruleIsEditing = false;\n //}\n }\n\n handleChangeClick() {\n if (this.group.condition == 'OR') {\n this.group.condition = 'AND';\n } else {\n this.group.condition = 'OR';\n }\n this.ruleChanged(null);\n }\n\n ruleChanged(e) {\n ;\n // this.group.queryString = this.qs.getQueryString(this.group, 'simple');\n this.qs.getQueryStringSimple(this.group).then((c) => {\n this.group.queryString = c;\n this.group.queryStringElastic = this.qs.getQueryString(this.group, 'elastic');\n this.groupRuleChanged.emit({ groups: this.group, component: this });\n });\n }\n}\n","<div class=\"header\">\n <div class=\"condition\" *ngIf=\"parent\">\n <div class=\"text {{parent.condition}}\">\n <span>{{parent.condition }}</span>\n </div>\n </div>\n <div class=\"handler\">\n <i class=\"far fa-grip-lines-vertical\"></i>\n </div>\n\n <div class=\"detail {{group.condition}}\" (click)=\"changeDetailMode()\">\n <div class=\"collapsed\" *ngIf=\"collapsed;else expandedTemplate\">\n {{group.queryString}}\n </div>\n <ng-template #expandedTemplate>\n <div class=\"expanded\">\n <strong>{{group.condition == 'OR' ? 'یکی از' : 'همه' }} <span>شرایط زیر برقرار باشد</span> </strong>\n </div>\n </ng-template>\n </div>\n <div class=\"buttons-list\">\n <div class=\"button remove\" *ngIf=\"parent && mode=='new'\" (click)=\"handleRemoveClick()\">\n <i class=\"far fa-times ax-danger-color\"></i>\n </div>\n <div class=\"button edit\" *ngIf=\"mode=='new'\" (click)=\"handleChangeClick()\">\n <i class=\"far fa-retweet ax-danger-color\"></i>\n </div>\n </div>\n</div>\n<div class=\"rules\" *ngIf=\"!collapsed\">\n <!-- <ax-validation-form #form> -->\n\n <div *ngFor=\"let item of group.items\" class=\"group-item\">\n <ng-container *ngIf=\"item.condition;else ruleTemplate\">\n <ax-query-group (groupRuleChanged)=\"ruleChanged($event)\" [mode]=\"mode\" [group]=\"item\" [fields]=\"fields\"\n [parent]=\"group\">\n </ax-query-group>\n </ng-container>\n <ng-template #ruleTemplate>\n <ax-query-rule #queryRule (ruleChanged)=\"ruleChanged($event)\" [mode]=\"mode\"\n (onRuleDelete)=\"ruleDelete($event)\" [rule]=\"item\" [fields]=\"fields\" [parent]=\"group\">\n </ax-query-rule>\n </ng-template>\n </div>\n <!-- </ax-validation-form> -->\n <div class=\"group-item\" *ngIf=\"mode=='new'\">\n <div class=\"ax-query-rule\">\n <div class=\"condition\">\n </div>\n <div class=\"handler\">\n <i class=\"far fa-grip-lines-vertical\"></i>\n </div>\n <div class=\"add-rule\" (click)=\"addRule()\" *ngIf=\"mode=='new'\">\n <i class=\"far fa-plus\"></i>&nbsp;&nbsp;<span>شرط</span>\n </div>\n <div class=\"add-group\" (click)=\"addGroup()\" *ngIf=\"!showGroupCondition && mode=='new'\">\n <i class=\"far fa-plus\"></i>&nbsp;&nbsp;<span>گروه</span>\n </div>\n <div *ngIf=\"showGroupCondition && mode=='new'\" class=\"add-condition OR\" (click)=\"addGroupOR()\">\n <i class=\"far fa-plus\"></i>&nbsp;&nbsp;<span>OR</span>\n </div>\n <div *ngIf=\"showGroupCondition && mode=='new'\" class=\"add-condition AND\" (click)=\"addGroupAND()\">\n <i class=\"far fa-plus\"></i>&nbsp;&nbsp;<span>AND</span>\n </div>\n\n </div>\n </div>\n</div>","import { AXBaseComponent } from '../base/element.class';\nimport { Component, Input, Output, EventEmitter, ElementRef, ViewEncapsulation, ViewChild } from '@angular/core';\nimport { AXTranslator, AXHtmlUtil } from '@acorex/core';\nimport { AXQueryBuilderGroup, AXQueryBuilderGroupEvent, AXQueryBuilderGroupItem } from './query-builder.class';\nimport { AXQueryBuilderGroupComponent } from './query-builder-group.component';\nimport { AXToastService } from '../toast/toast.service';\n\n@Component({\n selector: 'ax-query-builder',\n templateUrl: './query-builder.component.html',\n styleUrls: ['./query-builder.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class AXQueryBuilderComponent extends AXBaseComponent {\n @ViewChild('queryGroup') queryGroup: AXQueryBuilderGroupComponent;\n\n @Input()\n query: AXQueryBuilderGroup;\n\n @Input()\n mode: 'new' | 'edit' = 'new';\n\n rootGroup: AXQueryBuilderGroup = new AXQueryBuilderGroup();\n\n ngOnInit(): void {\n this.rootGroup.condition = this.query.condition ? this.query.condition : 'AND';\n this.rootGroup.items = this.query.items ? this.query.items : [];\n }\n\n constructor(private ref: ElementRef, private toast: AXToastService) {\n super();\n }\n\n private _fields : any[];\n @Input()\n public get fields() : any[] {\n return this._fields;\n }\n public set fields(v : any[]) {\n this._fields = v;\n }\n\n // @Input()\n // mode: 'immediate' | 'click' = 'click';\n\n @Output()\n onRuleChanged: EventEmitter<AXQueryBuilderGroupEvent> = new EventEmitter<AXQueryBuilderGroupEvent>();\n\n saved: boolean = false;\n\n public getQueryBuilder() {\n return { groups: this.rootGroup };\n }\n\n ruleChanged(e) {\n this.onRuleChanged.emit({ component: this, groups: this.rootGroup });\n }\n\n public saveRule() {\n /// return this.queryGroup.saveRule();\n return new Promise((resolve, reject) => {\n this.saved = true;\n for (let i = 0; i < this.rootGroup.items.length; i++) {\n if (this.saved == true) {\n this.findNullValue(this.rootGroup.items[i]);\n }\n }\n if (this.saved == true) {\n resolve(this.rootGroup);\n } else {\n reject();\n }\n });\n }\n\n findNullValue(gr) {\n if (this.saved == true) {\n if (gr.condition) {\n for (let i = 0; i < gr.items.length; i++) {\n this.findNullValue(gr.items[i]);\n }\n } else {\n if (gr.onDemandLabel == '????|') {\n this.saved = false;\n this.toast.error('لطفا نام متغیر های مورد نیاز را کامل کنید');\n }\n }\n }\n }\n\n // selectionFieldsChanged(e, rules: AXQueryBuilderRule) {\n //\n // rules.dataField = e.selectedItems[0].dataField;\n // rules.caption = e.selectedItems[0].caption;\n // rules.dataType = e.selectedItems[0].dataType;\n\n // // TO DO chack dataType For Def operator and Value\n // if (rules.dataType == 'string') {\n // rules.operator = this.operatorStringItem[0].id;\n // rules.value = 'null';\n // }\n // if (rules.dataType == 'number') {\n // rules.operator = this.operatorNumberItem[0].id;\n // rules.value = '0';\n // }\n\n // this.onRuleChanged.emit({ groups: this.rootGroup, queryString: this.getQueryDisplay(), component: this, htmlElement: this.ref.nativeElement })\n // }\n\n // selectionOparatorChanged(e, rules: AXQueryBuilderRule) {\n // rules.operator = e.selectedItems[0].id;\n // }\n\n // provideDataFields = (e) => {\n // return new Promise((resolve) => {\n // resolve(this.fields);\n // });\n // }\n\n // provideDataOperatorString = (e) => {\n // return new Promise((resolve) => {\n // resolve(this.operatorStringItem);\n // });\n // }\n // provideDataOperatorNumber = (e) => {\n // return new Promise((resolve) => {\n // resolve(this.operatorNumberItem);\n // });\n // }\n\n // private getQueryDisplay(gr = this.list, _condition = this.list[0].condition) {\n // var cap: string = '(';\n\n // for (let j = 0; j < gr.length; j++) {\n // if (j > 0) {\n // cap = cap + _condition;\n // }\n // cap = cap + \" ( \";\n // for (let i = 0; i < gr[j].items.length; i++) {\n // if (gr[j].items[i].value && gr[j].items[i].operator && gr[j].items[i].caption || ((gr[j].items[i].operator == \"is-empty\" || gr[j].items[i].operator == \"is-not-empty\") && gr[j].items[i].caption)) {\n // var opr: string;\n // if (gr[j].items[i].dataType == \"number\" || gr[j].items[i].dataType == \"date\" || gr[j].items[i].dataType == \"dateTime\") {\n // let d = this.operatorNumberItem.filter(c => c.id == gr[j].items[i].operator);\n // opr = d[0].text;\n // } else {\n // let d = this.operatorStringItem.filter(c => c.id == gr[j].items[i].operator);\n // opr = d[0].text;\n // }\n // if ((gr[j].items[i].operator == \"is-empty\" || gr[j].items[i].operator == \"is-not-empty\")) {\n\n // if (i === gr[j].items.length - 1) {\n // cap = cap + \" \" + \"[\" + gr[j].items[i].caption + \"]\";\n // } else {\n // cap = cap + \" \" + \"[\" + gr[j].items[i].caption + \"]\" + \" \" + opr + \" \" + gr[j].condition;\n // }\n // } else {\n // var val: string;\n\n // if (gr[j].items[i].dataType == 'date') {\n // // val = moment(item.value).locale('fa').format('YYYY/MM/DD');\n // } else if (gr[j].items[i].dataType == 'dateTime') {\n // // val = moment(item.value).locale('fa').format('HH:mm YYYY/MM/DD');\n // } else {\n // val = gr[j].items[i].value;\n // }\n // if (i === gr[j].items.length - 1) {\n // cap = cap + \" \" + \"[\" + gr[j].items[i].caption + \"]\" + \" \" + opr + \" \" + val\n // } else {\n // cap = cap + \" \" + \"[\" + gr[j].items[i].caption + \"]\" + \" \" + opr + \" \" + val + \" \" + gr[j].condition\n // }\n\n // }\n // }\n // }\n\n // if (gr[j].groups && gr[j].groups.length > 0) {\n // let c = this.getQueryDisplay(gr[j].groups, gr[j].condition);\n // if (c != \"( ) \") {\n // if (gr[j].items.length > 0 || j > 0) {\n // cap = cap + \" \" + gr[j].condition + \" \" + c + \" \";\n // } else {\n // cap = cap + \" \" + c + \" \";\n // }\n\n // }\n // }\n\n // cap = cap + \" ) \";\n // };\n\n // cap = cap + \" ) \";\n // return cap;\n // }\n\n // deleteGroup(groupOut: AXQueryBuilderGroup, groupIn: AXQueryBuilderGroup) {\n // groupOut.items = groupOut.items.filter(c => c.id != groupIn.id);\n // }\n\n // deleteRule1(group: AXQueryBuilderGroup, rule: AXQueryBuilderRule) {\n // group.items = group.items.filter(c => c.id != rule.id);\n // }\n\n // addRule(group: AXQueryBuilderGroup) {\n // const item: AXQueryBuilderRule = new AXQueryBuilderRule();\n // group.items.push(item);\n // }\n\n // addGroupAND(group: AXQueryBuilderGroup) {\n // this.addGroupOnClick(group);\n // group.condition = \"AND\";\n // }\n // addGroupOR(group: AXQueryBuilderGroup) {\n // this.addGroupOnClick(group);\n // group.condition = \"OR\";\n // }\n\n // addGroupOnClick(groups: AXQueryBuilderGroup) {\n // let r: AXQueryBuilderGroup = new AXQueryBuilderGroup();\n // r.condition = \"\";\n // r.items = [];\n // if (groups.items == undefined) {\n // groups.items = [];\n // }\n // groups.items.push(r);\n // }\n}\n","<ax-query-group #queryGroup [mode]=\"mode\" [group]=\"rootGroup\" [fields]=\"fields\"\n (groupRuleChanged)=\"ruleChanged($event)\">\n</ax-query-group>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXSearchBoxComponent } from './searchbox.component';\nimport { AXTextBoxModule } from '../textbox/textbox.module';\nimport { AXButtonModule } from '../button/button.module';\nimport { AXFormGroupModule } from '../form-group/form-group.module';\nimport { AXTranslatorModule } from '@acorex/core';\nimport { FormsModule } from '@angular/forms';\n\n\n@NgModule({\n declarations: [AXSearchBoxComponent],\n imports: [CommonModule, AXTextBoxModule, AXButtonModule, AXFormGroupModule, AXTranslatorModule, FormsModule],\n exports: [AXSearchBoxComponent],\n providers: []\n})\nexport class AXSearchBoxModule { }\n","import {\n Component,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n Input,\n EventEmitter,\n Output,\n ViewChild,\n ChangeDetectorRef,\n ElementRef,\n ContentChild,\n NgZone,\n HostListener,\n} from '@angular/core';\nimport { AXTextBoxComponent } from '../textbox/textbox.component';\nimport { AXDropdownComponent } from '../dropdown/dropdown.component';\nimport {\n AXBaseSizableComponent,\n AXBaseInputComponent,\n AXElementSize,\n AXValidatableComponent,\n AXBaseValueComponent,\n} from '../base/element.class';\nimport { AXDataSourceComponent } from '../data-source/datasource.component';\nimport { AXValidation } from '../validation/validation.component';\nimport { AXDataSourceReadParams } from '../data-source/read-param';\nimport { AXSearchBoxComponent } from '../searchbox/searchbox.component';\nimport { AXConfig, AXObjectUtil, AXTranslator } from '@acorex/core';\nimport { AXValueEvent } from '../base/events.class';\n\nexport class AXSelectBoxValueChangedEvent extends AXValueEvent<any | any[]> {\n declare value?: any;\n declare oldValue?: any;\n isUserInput = false;\n declare selectedKeys?: any[];\n declare selectedItems?: any[];\n}\n\n@Component({\n selector: 'ax-select-box2',\n templateUrl: './selectbox2.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { style: 'width: 100%' },\n providers: [\n { provide: AXValidatableComponent, useExisting: AXSelectBox2Component },\n ],\n})\nexport class AXSelectBox2Component\n extends AXValidatableComponent\n implements\n AXBaseSizableComponent,\n AXBaseInputComponent,\n AXBaseValueComponent<any>\n{\n @ViewChild(AXTextBoxComponent, { static: true })\n span: ElementRef<HTMLElement>;\n\n @ViewChild(AXTextBoxComponent, { static: true })\n textbox: AXTextBoxComponent;\n\n @ViewChild('listContainer', { static: true })\n listContainer: ElementRef<HTMLDivElement>;\n\n @ViewChild('searchBox', { static: false })\n searchBox: AXSearchBoxComponent;\n\n @ViewChild('textBoxSelectBox', { static: true })\n textBoxSelectBox: AXTextBoxComponent;\n\n @ContentChild(AXDataSourceComponent, { static: true })\n private _contentDataSource: AXDataSourceComponent;\n\n @ContentChild(AXValidation, { static: true })\n private _contentValidation: AXValidation;\n\n @ViewChild('d', { static: true })\n dropdown: AXDropdownComponent;\n\n @Input() showDropDownButton: boolean = true;\n @Input() readonly: boolean = false;\n @Input() rtl: boolean = AXConfig.get('layout.rtl');\n @Input() disabled: boolean;\n @Input() placeholder: string;\n @Input() size: AXElementSize = 'md';\n @Input() allowNull: boolean = true;\n @Input() textAlign: 'right' | 'left' | null = null;\n @Input() bufferSize: number = 10;\n @Input() remoteOperation: boolean = false;\n @Input() allowSearch: boolean = true;\n @Input() textField: string = 'text';\n @Input() valueField: string = 'value';\n @Input() selectionMode: 'single' | 'multiple' = 'single';\n @Input() selectionDataMode: 'value' | 'item' = 'value';\n\n currentfocusedIndex: number = -1;\n showLoading: boolean = false;\n skip: number = -1;\n searchText: string = '';\n text: string = '';\n totalCount: number = 0;\n itemsFiltered: any[] = [];\n\n private isUserInput: boolean = false;\n\n private _dataSource: AXDataSourceComponent;\n @Input()\n public get dataSource(): AXDataSourceComponent {\n return this._dataSource ? this._dataSource : this._contentDataSource;\n }\n public set dataSource(v: AXDataSourceComponent) {\n this._dataSource = v;\n }\n\n private _validation: AXValidation;\n @Input()\n public get validation(): AXValidation {\n return this._validation ? this._validation : this._contentValidation;\n }\n public set validation(v: AXValidation) {\n this._validation = v;\n }\n\n constructor(\n private cdr: ChangeDetectorRef,\n private ref: ElementRef,\n private zone: NgZone\n ) {\n super();\n }\n\n private _value: any | any[];\n @Input()\n public get value(): any | any[] {\n return this._value;\n }\n public set value(v: any | any[]) {\n if (v !== this._value) {\n const oldValue = AXObjectUtil.deepJSONClone(this._value);\n if (this.selectionMode === 'multiple') {\n this._value = Array.isArray(v) ? v : v ? [v] : [];\n } else {\n this._value = Array.isArray(v) ? v[0] : v;\n }\n this.valueChange.emit(this._value);\n this.onValueChanged.emit({\n component: this,\n htmlElement: this.ref.nativeElement,\n isUserInput: this.isUserInput,\n oldValue,\n value: this._value,\n selectedKeys: this.selectedItems.map((c) => c[this.valueField]),\n selectedItems: this.selectedItems.slice(),\n });\n this.isUserInput = false;\n this.renderSelection();\n }\n }\n\n private _selectedItems: any[];\n public get selectedItems(): any[] {\n return this._selectedItems || [];\n }\n\n private _items: any[] = [];\n @Input()\n public get items(): any[] {\n return this._items;\n }\n public set items(v: any[]) {\n this._items = v;\n if (this.itemsChange) {\n this.itemsChange.emit(v);\n }\n this.renderSelection();\n }\n\n @Output()\n itemsChange: EventEmitter<any[]> = new EventEmitter<any[]>();\n\n @Output()\n onBlur: EventEmitter<any> = new EventEmitter<any>();\n\n @Output()\n onFocus: EventEmitter<any> = new EventEmitter<any>();\n\n @Output()\n public valueChange: EventEmitter<any> = new EventEmitter<any>();\n\n @Output()\n public onValueChanged: EventEmitter<AXSelectBoxValueChangedEvent> =\n new EventEmitter<AXSelectBoxValueChangedEvent>();\n\n ngOnInit() {\n if (this.rtl == null) {\n this.rtl =\n window\n .getComputedStyle(this.ref.nativeElement, null)\n .getPropertyValue('direction') === 'rtl';\n }\n }\n\n scrolled(e) {\n if (\n this.remoteOperation &&\n this.totalCount > this.items.length &&\n this.listContainer.nativeElement.scrollHeight != 0 &&\n this.listContainer.nativeElement.scrollHeight -\n this.listContainer.nativeElement.scrollTop -\n 300 <\n 50\n ) {\n this.showLoading = true;\n\n if (this.skip !== this.items.length) {\n this.skip = this.items.length;\n\n const params: AXDataSourceReadParams = {};\n params.skip = this.items.length;\n params.take =\n this.bufferSize *\n (Math.floor(this.items.length / this.bufferSize) + 1);\n if (this.textbox) {\n params.searchText = this.text;\n } else {\n params.searchText = null;\n }\n this.fetch(params);\n }\n }\n }\n\n textChanged(e) {\n this.currentfocusedIndex = -1;\n if (this.remoteOperation) {\n this.searchText = this.text;\n this.items = [];\n const params: AXDataSourceReadParams = {};\n params.searchText = this.text;\n params.skip = 0;\n params.take = this.bufferSize;\n this.fetch(params);\n }\n }\n\n private renderSelection() {\n const func = () => {\n if (!this.value) {\n return [];\n }\n if (this.items?.length > 0 && this.selectionDataMode == 'value') {\n const orgRes = this.items.filter((i) => {\n if (Array.isArray(this.value)) {\n return this.value.some((ii) => {\n if (typeof ii === 'object') {\n return i[this.valueField] === ii[this.valueField];\n } else {\n return i[this.valueField] === ii;\n }\n });\n } else {\n if (typeof this.value === 'object') {\n return i[this.valueField] === this.value[this.valueField];\n } else {\n return i[this.valueField] === this.value;\n }\n }\n });\n if (orgRes.length > 0) {\n return orgRes;\n }\n }\n if (Array.isArray(this.value)) {\n return this.value.map((ii) => {\n if (typeof ii === 'object' && ii[this.textField]) {\n return ii;\n } else {\n const fake: any = {};\n fake[this.valueField] = this.value;\n fake[this.textField] = AXTranslator.get('common.loading');\n return fake;\n }\n });\n } else {\n if (typeof this.value === 'object' && this.value[this.textField]) {\n return [this.value];\n } else {\n const fake: any = {};\n fake[this.valueField] = this.value;\n fake[this.textField] = AXTranslator.get('common.loading');\n return [fake];\n }\n }\n };\n this._selectedItems = func();\n this.cdr.markForCheck();\n }\n\n ngAfterViewInit(): void {\n if (this.bufferSize < 10) {\n this.bufferSize = 10;\n }\n if (!this.remoteOperation) {\n this.refresh();\n }\n }\n\n dropdownToggle(e) {\n if (this.dropdown.isOpen) {\n this.currentfocusedIndex = this.getItems().indexOf(\n this.selectedItems[this.selectedItems.length - 1]\n );\n this.focusOnSearchBox();\n this.focusOnCurrentFocusedIndex();\n } else {\n this.focus();\n }\n }\n\n ngAfterContentInit() {\n this.initValidation(this.ref, 'value', this.validation);\n if (this.dataSource) {\n if (this.allowSearch === false) {\n this.fetch();\n }\n this.dataSource.onDataReceived.subscribe((c) => {\n this.showLoading = false;\n this.dataReceived(c.data.result);\n });\n }\n this.cdr.markForCheck();\n this.cdr.detectChanges();\n }\n\n private dataReceived(data: any) {\n if (this.remoteOperation) {\n if (\n this.searchText &&\n this.searchText != null &&\n this.searchText !== ''\n ) {\n if (data.totalCount) {\n this.items = data.items;\n this.totalCount = data.totalCount;\n } else {\n this.items = data.items;\n this.totalCount = data.items == undefined ? 0 : data.items.length;\n }\n } else if (data.items && data.items.length === data.totalCount) {\n this.items = data.items;\n this.totalCount = data.items.length;\n } else if (data.totalCount) {\n data.items.forEach((elm) => {\n this.items.push(elm);\n });\n this.totalCount = data.totalCount;\n } else {\n data.forEach((elm) => {\n this.items.push(elm);\n });\n this.totalCount = data.length;\n }\n } else {\n this.items = data;\n }\n this.renderSelection();\n this.cdr.markForCheck();\n this.cdr.detectChanges();\n }\n\n fetch(params: AXDataSourceReadParams = {}) {\n if (this.dataSource) {\n this.showLoading = true;\n this.dataSource.fetch(params);\n }\n }\n\n refresh() {\n const params: AXDataSourceReadParams = {};\n if (this.remoteOperation) {\n params.skip = 0;\n this.skip = 0;\n params.take = this.bufferSize;\n }\n if (this.dataSource !== undefined) {\n this.items = [];\n this.fetch(params);\n }\n }\n\n handleItemRemoveClick(item) {\n this.text = '';\n this.isUserInput = true;\n if (Array.isArray(this.value)) {\n this.value = this.value.filter((c) =>\n typeof c === 'object'\n ? c[this.valueField] !== item[this.valueField]\n : c !== item[this.valueField]\n );\n } else {\n this.value = null;\n }\n this.cdr.markForCheck();\n }\n\n onTextBoxClick(e) {\n if (this.disabled === false && this.readonly === false) {\n this.open();\n }\n }\n\n handleItemClick(e: MouseEvent, item: any) {\n this.isUserInput = true;\n if (this.selectionMode === 'single') {\n this.selectItems(item);\n this.close();\n } else {\n if (Array.isArray(this.value) && this.value.length > 0) {\n if (\n this.value.some(\n (c) =>\n this.internalGetItemValue(c) === this.internalGetItemValue(item)\n )\n ) {\n this.unselectItems(item);\n } else {\n this.selectItems(item);\n }\n } else {\n this.selectItems(item);\n }\n }\n this.cdr.markForCheck();\n this.focusOnSearchBox();\n }\n\n private internalGetItemByDataMode(item: any) {\n return this.selectionDataMode === 'item' ? item : item[this.valueField];\n }\n\n private internalGetItemValue(item: any) {\n return typeof item === 'object' ? item[this.valueField] : item;\n }\n\n @HostListener('document:keydown', ['$event'])\n handleKeyDown(e: KeyboardEvent) {\n if (e.key === 'Escape' || this.disabled || this.readonly) {\n this.close();\n e.preventDefault();\n return;\n }\n const isLetter = new RegExp(/[a-zA-Z0-9\\-]/).test(\n String.fromCharCode(e.keyCode)\n );\n if (this.textbox.isFocused()) {\n if (\n e.key === 'Backspace' &&\n e.type === 'keydown' &&\n ((this.allowNull === true && this.selectedItems.length > 0) ||\n (this.allowNull === false && this.selectedItems.length > 1))\n ) {\n this.isUserInput = true;\n this.unselectItems(this.selectedItems.pop());\n e.preventDefault();\n return;\n } else if (\n (e.key === 'ArrowDown' || e.key === 'ArrowUp') &&\n this.getItems().length > 0 &&\n !this.dropdown.isOpen &&\n e.type === 'keydown'\n ) {\n if (this.selectionMode === 'single') {\n this.isUserInput = true;\n this.selectedItemByIndex(\n this.currentfocusedIndex + (e.key === 'ArrowDown' ? 1 : -1)\n );\n if (e.ctrlKey) {\n this.open();\n }\n } else {\n this.open();\n }\n e.preventDefault();\n return;\n } else if (isLetter) {\n this.text = e.key;\n this.open();\n e.preventDefault();\n return;\n }\n }\n if (this.dropdown.isOpen) {\n if (\n (e.key === 'ArrowDown' || e.key === 'ArrowUp') &&\n this.getItems().length > 0\n ) {\n this.isUserInput = true;\n this.selectItemByNav(e.key === 'ArrowDown' ? 1 : -1);\n e.preventDefault();\n return;\n }\n if (e.key === 'Enter' || e.code === 'Space') {\n const focusedItem = this.getItems()[this.currentfocusedIndex];\n if (focusedItem) {\n if (this.selectionMode === 'single') {\n this.isUserInput = true;\n this.selectItems(focusedItem);\n this.close();\n } else {\n this.isUserInput = true;\n this.toggleSelect(focusedItem);\n }\n }\n e.preventDefault();\n return;\n }\n }\n }\n\n unselectItems(...items: any[]) {\n if (!items || items.length === 0) {\n this.value = null;\n } else if (Array.isArray(this.value)) {\n this.value = this.value.filter(\n (c) =>\n !items.some(\n (d) => this.internalGetItemValue(c) === this.internalGetItemValue(d)\n )\n );\n } else {\n this.value = null;\n }\n this.cdr.markForCheck();\n }\n\n selectItems(...items: any[]) {\n if (items && items.length) {\n if (this.selectionMode === 'single') {\n this.value = this.internalGetItemByDataMode(items[0]);\n } else {\n this.value = (this.value || []).concat(\n items.map((c) => this.internalGetItemByDataMode(c))\n );\n }\n }\n }\n\n toggleSelect(...items: any[]) {\n if (items && items.length) {\n items.forEach((item) => {\n this.selectedItems.includes(item)\n ? this.unselectItems(item)\n : this.selectItems(item);\n });\n }\n }\n\n close() {\n this.dropdown.close();\n }\n\n open() {\n this.dropdown.open();\n }\n\n focus(): void {\n this.text = null;\n this.textbox.focus();\n }\n\n private focusOnSearchBox() {\n const inputedVal = this.text;\n if (this.allowSearch === true) {\n setTimeout(() => {\n if (this.searchBox) {\n this.searchBox.value = inputedVal;\n this.searchBox.focus();\n }\n }, 0);\n } else {\n this.textbox.focus();\n }\n }\n\n getItems(): any[] {\n if (this.items == null) {\n return [];\n }\n return !this.remoteOperation && this.text && this.text !== ''\n ? this.items.filter((c) =>\n (c[this.textField] as string)\n .toLowerCase()\n .includes(this.text.toLowerCase())\n )\n : this.items;\n }\n\n isItemSelected(item: any): boolean {\n return this.selectedItems.some(\n (c) => c[this.valueField] === item[this.valueField]\n );\n }\n\n private selectItemByNav(sign: -1 | 1 | null = null): void {\n if (sign == null) {\n this.currentfocusedIndex = this.getItems().indexOf(\n this.selectedItems[this.selectedItems.length - 1]\n );\n } else {\n sign === -1 ? this.currentfocusedIndex-- : this.currentfocusedIndex++;\n }\n if (this.currentfocusedIndex < 0) {\n this.currentfocusedIndex = 0;\n }\n if (this.currentfocusedIndex > this.getItems().length - 1) {\n this.currentfocusedIndex = this.getItems().length - 1;\n }\n\n // set scroll\n this.focusOnCurrentFocusedIndex();\n }\n\n private focusOnCurrentFocusedIndex() {\n if (this.listContainer) {\n this.zone.runOutsideAngular(() => {\n const itemDiv = this.listContainer.nativeElement.querySelector(\n `.list-item:nth-child(${this.currentfocusedIndex})`\n );\n if (itemDiv) {\n itemDiv.scrollIntoView({ behavior: 'auto' });\n }\n });\n }\n }\n\n selectedItemByIndex(index: number) {\n if (index < 0) {\n index = 0;\n }\n if (index > this.getItems().length - 1) {\n index = this.getItems().length - 1;\n }\n this.selectItems(this.getItems()[index]);\n this.currentfocusedIndex = index;\n }\n}\n","<ax-drop-down [size]=\"size\" [rtl]=\"rtl\" [showDropDownButton]=\"showDropDownButton\" [disabled]=\"disabled\"\n [readonly]=\"readonly\" #d (dropdownToggle)=\"dropdownToggle($event)\" [loading]=\"showLoading\">\n <ng-container start>\n <ng-content select=\"[start]\">\n </ng-content>\n </ng-container>\n <ng-container header>\n <div class=\"ax chips-container\" [horizontalScroll]=\"40\">\n <div *ngFor=\"let item of selectedItems\" class=\"chips\" [class.chips-blank]=\"selectionMode === 'single'\"\n [title]=\"item[textField]\">\n <span class=\"chips-text\">\n {{item[textField]}}\n </span>\n <span class=\"close-icon\" (click)=\"handleItemRemoveClick(item)\"\n *ngIf=\"(readonly!=true) && disabled!=true && (allowNull==true || (selectedItems.length > 1))\">\n <i class=\"far fa-times close\"></i>\n </span>\n </div>\n <div class=\"search-wrapper\" (click)=\"onTextBoxClick($event)\">\n <ax-text-box #textBoxSelectBox [textAlign]=\"textAlign\"\n [placeholder]=\"selectedItems.length == 0 ? placeholder : ''\" [readonly]=\"readonly\"\n [disabled]=\"disabled\" [size]=\"size\">\n </ax-text-box>\n </div>\n </div>\n </ng-container>\n <ng-container end>\n <ng-content select=\"[end]\">\n </ng-content>\n </ng-container>\n <ng-container panel>\n <div *ngIf=\"allowSearch\" class=\"search-wrapper\" style=\"padding: 0.7em;\">\n <ax-search-box #searchBox [(value)]=\"text\" size=\"sm\"\n (textChanged)=\"textChanged($event)\" (onButtonClick)=\"textChanged($event)\">\n </ax-search-box>\n </div>\n <div class=\"ax list-container\">\n <div #listContainer style=\"max-height: 300px;overflow-y: auto;width: 100%;\" (scroll)=\"scrolled($event)\">\n <ng-container *ngIf=\"getItems().length>0; then thenTemplate; else elseTemplate\"></ng-container>\n <ng-template #thenTemplate>\n <div class=\"list-item\" *ngFor=\"let item of getItems();let i = index\"\n [class.focused]=\"i==currentfocusedIndex\" (click)=\"handleItemClick($event,item)\"\n [class.selected]=\"isItemSelected(item)\">\n <div>\n <div>\n <ax-check-box *ngIf=\"selectionMode !== 'single'\" [size]=\"size\" [value]=\"isItemSelected(item)\"\n [disabled]=\"!allowNull && selectedItems.length === 1 && isItemSelected(item)\"\n (onClick)=\"handleItemClick($event,item)\">\n </ax-check-box>\n </div>\n <div style=\"white-space: nowrap;text-overflow: ellipsis;overflow: hidden;\"\n [title]=\"item[textField]\"\n [ngStyle]=\"(selectionMode !== 'single') ? {'padding-inline-start': '2em'}:''\">\n {{ item[textField] }}\n </div>\n </div>\n </div>\n </ng-template>\n <div *ngIf=\"showLoading\" class=\"ax-pad-sm\" style=\"text-align: center;\">\n <i class=\"far fa-spinner-third fa-pulse fa-2x\" style=\"color: var(--ax-primary-color);\"></i>\n </div>\n <ng-template #elseTemplate>\n <ng-container *ngIf=\"showLoading == true; then searchTemplate else noDataTemplate\"></ng-container>\n <ng-template #searchTemplate>\n <div class=\"list-item\">\n {{'common.searching' | trans}}\n </div>\n </ng-template>\n <ng-template #noDataTemplate>\n <div class=\"list-item\">\n {{'common.noDataFound' | trans}}\n </div>\n </ng-template>\n </ng-template>\n </div>\n </div>\n </ng-container>\n</ax-drop-down>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXSelectBoxComponent } from './selectbox.component';\nimport { AXDropdownModule } from '../dropdown/dropdown.module';\nimport { AXTextBoxModule } from '../textbox/textbox.module';\nimport { AXTranslatorModule, AXScrollModule } from '@acorex/core';\nimport { AXCheckBoxModule } from '../checkbox/checkbox.module';\nimport { AXLoadingModule } from '../loading/loading.module';\nimport { AXSearchBoxModule } from '../searchbox/searchbox.module';\nimport { AXSelectBox2Component } from './selectbox2.component';\n\n\nconst COMPONENT = [AXSelectBoxComponent, AXSelectBox2Component];\nconst MODULES = [\n CommonModule,\n AXDropdownModule,\n AXTextBoxModule,\n AXTranslatorModule,\n AXScrollModule,\n AXCheckBoxModule,\n AXLoadingModule,\n AXSearchBoxModule\n];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: []\n})\nexport class AXSelectBoxModule { }\n","import { NgModule } from '@angular/core';\nimport { AXQueryBuilderComponent } from './query-builder.component';\nimport { AXButtonModule } from '../button/button.module';\nimport { CommonModule } from '@angular/common';\nimport { AXPanelBoxModule } from '../panel-box/panel-box.module';\nimport { AXSelectBoxModule } from '../selectbox/selectbox.module';\nimport { AXTextBoxModule } from '../textbox/textbox.module';\nimport { AXQueryBuilderRuleComponent } from './query-builder-rule.component';\nimport { AXQueryBuilderGroupComponent } from './query-builder-group.component';\nimport { AXTranslatorModule } from '@acorex/core';\nimport { AXNumberBoxModule } from '../number-box/number-box.module';\nimport { AXDataSourceModule } from '../data-source/datasource.module';\nimport { AXFormGroupModule } from '../form-group/form-group.module';\nimport { AXQueryBuilderPopupComponent } from './query-builder-popup/query-builder-popup.component';\nimport { AXLabelModule } from '../label/label.module';\nimport { AXCheckBoxModule } from '../checkbox/checkbox.module';\nimport { AXValidationModule } from '../validation/validation.module';\nimport { AXQueryBuilderService } from './query-builder.service';\nimport { AXDatePickerModule } from '../date-picker/date-picker.module';\n\nconst MODUELS = [\n CommonModule,\n AXButtonModule,\n AXPanelBoxModule,\n AXSelectBoxModule,\n AXDataSourceModule,\n AXTextBoxModule,\n AXNumberBoxModule,\n AXFormGroupModule,\n AXTranslatorModule,\n AXLabelModule,\n AXCheckBoxModule,\n AXValidationModule,\n AXDatePickerModule\n]\n\n@NgModule({\n declarations: [AXQueryBuilderComponent, AXQueryBuilderGroupComponent, AXQueryBuilderRuleComponent, AXQueryBuilderPopupComponent],\n imports: [MODUELS],\n exports: [AXQueryBuilderComponent],\n providers: [AXQueryBuilderService]\n})\n\nexport class AXQueryBuilderModule { }","import { Directive, ViewContainerRef, ComponentFactoryResolver, Input, Output, EventEmitter, KeyValueDiffer, KeyValueDiffers } from '@angular/core';\nimport { AXProperyEditorComponent, AXProperyEditorValueChangeEvent, AXPropertyConfig } from './property-editor.class';\nimport { AXEventService, AXObjectUtil, AXRenderService, getPropByPath, setPropByPath } from '@acorex/core';\nimport { Subscription } from 'rxjs';\nimport { AXValidationFormComponent } from '../validation/validation-form.component';\n\n@Directive({\n selector: '[ax-property-editor-renderer]'\n})\nexport class AXPropertyEditorRendererDirective {\n private instance: AXProperyEditorComponent<any>;\n\n @Input()\n property: AXPropertyConfig;\n\n @Input()\n validationForm: AXValidationFormComponent;\n\n private _context: any = {};\n @Input()\n public get context(): any {\n return this._context;\n }\n public set context(v: any) {\n this._context = v;\n }\n\n @Input()\n host: any;\n\n @Input()\n groupId: any;\n\n @Output()\n onValueChange: EventEmitter<AXProperyEditorValueChangeEvent> = new EventEmitter<AXProperyEditorValueChangeEvent>();\n\n private subscription: Subscription;\n\n constructor(\n private target: ViewContainerRef,\n private componentFactoryResolver: ComponentFactoryResolver,\n private renderService: AXRenderService,\n private eventService: AXEventService\n ) { }\n\n clear() {\n if (this.instance?.value) {\n this.instance.value = null;\n }\n }\n\n disabeld(disableValue: boolean) {\n this.instance.disabled = disableValue\n }\n\n ngOnInit(): void {\n this.createComponent();\n }\n\n createComponent() {\n this.renderService.findLoadedComponentByRoute(this.property.property.editorClass).then((c) => {\n if (c) {\n const factory = this.componentFactoryResolver.resolveComponentFactory(c.component);\n const cmpRef = this.target.createComponent(factory);\n this.instance = cmpRef.instance as AXProperyEditorComponent<any>;\n this.subscription = this.instance.valueChange.subscribe((value) => {\n this.property.value = value;\n this.onValueChange.emit(this.property);\n if (this.property?.property?.name) {\n setTimeout(() => {\n this.eventService.broadcast(`props-${this.groupId}-${this.property.property.name}`, this.property);\n }, 0);\n }\n }) as any;\n this.watchChanges();\n this.assignProps();\n this.instance.value = this.property.value;\n\n // this.instance.onRenderCompleted.subscribe(() => {\n\n // });\n\n if (this.validationForm) {\n this.instance.validatableComponentRegistered.subscribe((v) => {\n this.validationForm.addWidget(v);\n });\n }\n }\n });\n }\n\n private watchChanges() {\n const varsRegx = /((\\$\\{[a-zA-Z_0-9]+\\})+)/gm;\n const varNameRegx = /[a-zA-Z_0-9]+/gm;\n const options = this.property.property.editorOptions;\n if (!options) {\n return;\n }\n for (const p in options) {\n if (options.hasOwnProperty(p)) {\n const opt = options[p];\n const vars = typeof opt === 'string' ? opt?.match(varsRegx) : [];\n // bind the props\n if (vars?.length) {\n vars.forEach((v) => {\n const path = v.match(varNameRegx)?.length ? v.match(varNameRegx)[0] : null;\n if (path) {\n this.eventService.on(`props-${this.groupId}-${path}`, (e: AXPropertyConfig) => {\n let execCode = opt.slice();\n const params = {};\n vars.forEach((vv) => {\n const p2 = vv.match(varNameRegx)?.length ? vv.match(varNameRegx)[0] : null;\n params[p2] = AXObjectUtil.deepCopy(this.context[p2]) || null;\n execCode = execCode.replace(vv, `__params__.${p2}`);\n });\n\n const func = new Function('__params__', `try { return ${execCode}} catch(e){ return null; }`);\n const val = func(params);\n\n const keys = p.split('.');\n const prop = Object.assign({}, this.instance[keys[0]]);\n if (keys.length > 1) {\n this.instance[keys[0]] = setPropByPath(prop, p, val);\n } else {\n setPropByPath(this.instance, p, val);\n }\n });\n }\n });\n }\n // else {\n // this.assignProps();\n // }\n }\n }\n }\n\n private assignProps() {\n const options = this.property.property.editorOptions;\n if (!options) {\n return;\n }\n const varsRegx = /((\\$\\{[a-zA-Z_0-9]+\\})+)/gm;\n for (const p in options) {\n if (options.hasOwnProperty(p)) {\n const opt = options[p];\n const vars = typeof opt === 'string' ? opt?.match(varsRegx) : [];\n if (vars?.length) {\n continue;\n } else {\n const val = typeof opt === 'function' ? opt({ data: this.context, host: this.host }, this.property) : opt;\n if (val instanceof Promise) {\n val.then((v) => {\n setPropByPath(this.instance, p, val);\n });\n } else {\n setPropByPath(this.instance, p, val);\n }\n }\n }\n }\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n","import { AXConfig, AXDateTime } from '@acorex/core';\nimport { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, QueryList, ViewChild, ViewChildren } from '@angular/core';\nimport * as _ from 'lodash';\nimport { AXElementSize } from '../base/element.class';\nimport { AXPopoverComponent } from '../popover/popover.component';\nimport { AXPropertyEditorRendererDirective } from '../property-editor/property-editor-renderer.directive';\nimport { AXPropertyColDef, AXPropertyConfig, AXProperyEditorValueChangeEvent, FilterModel } from '../property-editor/property-editor.class';\nimport { AXValidationFormComponent } from '../validation/validation-form.component';\n\nexport interface FilterTextItemsModel {\n name: string;\n title: string;\n value: any;\n textValue: string;\n filterOptions?: FilterModel;\n component: AXPropertyConfig;\n uniqueNumber?: number;\n}\n\n@Component({\n selector: 'ax-search-bar',\n templateUrl: './search-bar.component.html',\n styleUrls: ['./search-bar.component.scss']\n})\nexport class AXSearchBarComponent {\n constructor(private cdr: ChangeDetectorRef, public ref: ElementRef<HTMLDivElement>) { }\n\n @ViewChild('searchPop') searchPopover: AXPopoverComponent;\n @ViewChildren(AXPropertyEditorRendererDirective) _editors: QueryList<AXPropertyEditorRendererDirective>;\n @ViewChild(AXValidationFormComponent) form: AXValidationFormComponent;\n\n @Input()\n sizeButton: AXElementSize = 'md';\n\n @Input()\n size: 'sm' | 'md' | 'lg' | 'full' = 'sm';\n\n @Input()\n disabled: boolean = false;\n\n @Input()\n fitParent: boolean = false;\n\n @Input()\n popoverWidth: string = '65vw';\n\n @Input()\n rtl: boolean = AXConfig.get('layout.rtl');\n\n @Input()\n loadOnInit: boolean = false;\n\n @Input()\n caption: string\n\n @Input()\n block: boolean = false\n\n @Input()\n public set items(v: AXPropertyConfig[]) {\n this._defultValueCount = v.filter((x) => x.value);\n v.forEach((el) => {\n el.property.uniqueNumber = Math.random();\n if (el.value != null) {\n this._filterItems.push({\n name: el.property.name,\n title: el.property.title,\n textValue: this._handleTextValue(el),\n value: el.value ? this._handleDefultVlaue(el) : null,\n component: el\n });\n }\n });\n this._items = _.chain(v)\n .groupBy((x) => x.property.row)\n .map((value, key) => ({ row: key, items: value }))\n .value();\n }\n\n @Output()\n onValueChange: EventEmitter<any> = new EventEmitter();\n\n @Output()\n onSearchValue: EventEmitter<FilterTextItemsModel[]> = new EventEmitter();\n\n _items: any[] = [];\n _filterItems: FilterTextItemsModel[] = [];\n _filterItemsClone: FilterTextItemsModel[] = [];\n _defultValueCount: any = [];\n _context: any = {};\n _isEmitted: boolean = false;\n _searchCount: number\n\n public disableItem(name: string, disableValue: boolean) {\n this._editors.find((x) => x.property.property.name === name).disabeld(disableValue)\n }\n public clearItem(name: string) {\n this._editors.find((x) => x.property.property.name === name).clear();\n }\n\n ngOnInit(): void {\n if (this.rtl == null) {\n this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';\n }\n }\n\n public refresh() {\n this.loadOnInit = true;\n this._defultValueCount = [];\n this._filterItems = [];\n this._filterItemsClone = [];\n this.items = this._items[0].items;\n (this.form as any).widgets = [];\n (this.form as any).widgetsQuery.forEach((el) => {\n (this.form as any).widgets.push(el);\n });\n this.cdr.detectChanges();\n }\n\n handleButtonClick() {\n this.searchPopover.open();\n }\n\n async handleValueChange(e: AXProperyEditorValueChangeEvent) {\n await this._handleInitVlaue(e);\n this.onValueChange.emit(e);\n }\n\n handleItemRemoveClick(item: FilterTextItemsModel) {\n this._editors.forEach((e) => {\n if (e.property.property.name == item.name) {\n e.clear();\n }\n });\n this._filterItems = this._filterItems.filter((el) => el.name != item.name);\n }\n\n public search() {\n this.form.validate().then((c) => {\n if (c.result) {\n this._filterItems = JSON.parse(JSON.stringify(this._filterItemsClone.filter((el) => el.value === 0 || el.value != null && el.value != '')));\n this._searchCount = this._filterItems.filter((x) => x.component.property.visible != false).length\n this.searchPopover.close();\n this.onSearchValue.emit(this._filterItems);\n }\n });\n }\n\n clear() {\n this._editors.forEach((e) => {\n e.clear();\n });\n this._filterItems = [];\n this._filterItemsClone = [];\n this.searchPopover.close();\n this._searchCount = null\n this.onSearchValue.emit(this._filterItems);\n }\n\n renderCol(e: number | AXPropertyColDef) {\n let className: string[] = [];\n if (typeof e == 'number') {\n className.push(`col-${e}`);\n } else {\n for (const key in e) {\n switch (key) {\n case 'lg':\n className.push(`col-lg-${e[key]}`);\n break;\n case 'md':\n className.push(`col-md-${e[key]}`);\n break;\n case 'sm':\n className.push(`col-sm-${e[key]}`);\n break;\n case 'xs':\n className.push(`col-xs-${e[key]}`);\n break;\n }\n }\n }\n return className.toString().replace(/,/g, ' ');\n }\n\n _handleShowTitleSelected(item) {\n if (item.title) {\n return item.title + ':';\n }\n }\n\n _handleShowValueSelected(item) {\n if (item.component.property.editorClass === 'ax/editors/check') {\n return item.component.property.editorOptions.label;\n } else {\n return item.textValue;\n }\n }\n\n private _handleTextValue(dataItem: any) {\n let text = '';\n if (Array.isArray(dataItem.value)) {\n if (dataItem.value.length) {\n dataItem.value.forEach((element, index) => {\n text +=\n index === dataItem.value.length - 1\n ? element[dataItem.property.editorOptions.textField]\n : element[dataItem.property.editorOptions.textField] + ',';\n });\n }\n return text;\n } else if (dataItem.property.editorClass === 'ax/editors/date') {\n if (dataItem.value) {\n return new AXDateTime(dataItem.value, 'jalali').format('yyyy/MM/DD');\n } else {\n return;\n }\n } else {\n return;\n }\n }\n\n private async _handleDefultVlaue(dataItem: any) {\n await this._handleInitVlaue(dataItem);\n this._filterItems = JSON.parse(JSON.stringify(this._filterItemsClone.filter((el) => el.value === 0 || el.value != null && el.value != '')));\n if (this._filterItems.length === this._defultValueCount.length && this.loadOnInit && !this._isEmitted) {\n this._isEmitted = true;\n this._searchCount = this._filterItems.filter((x) => x.component.property.visible != false).length\n setTimeout(() => {\n this.onSearchValue.emit(this._filterItems);\n });\n }\n }\n\n private async _handleInitVlaue(e) {\n let value = [];\n let text: any = [];\n if (e.property.editorOptions?.valueField && e.value != null) {\n if (e.property.editorOptions.returnAllData) {\n value = e.value;\n text = await this._handleTextValue(e);\n } else if (e.property.editorOptions?.mode == 'multiple') {\n e.value.forEach((element) => {\n value.push(element[e.property.editorOptions.valueField]);\n text.push(element[e.property.editorOptions.textField]);\n });\n } else {\n if (e.value.length) {\n value = e.value[0][e.property.editorOptions.valueField];\n text = e.value[0][e.property.editorOptions.textField];\n }\n }\n } else {\n value = e.value;\n text = e.value;\n }\n const findEl = this._filterItemsClone.find((el) => el.uniqueNumber == e.property.uniqueNumber);\n if (findEl) {\n findEl.value = value;\n findEl.textValue = e.property.editorClass === 'ax/editors/date' ? new AXDateTime(text, 'jalali').format('yyyy/MM/DD') : text;\n } else if (e.value != null) {\n this._filterItemsClone.push({\n name: e.property.name,\n title: e.property.title,\n uniqueNumber: e.property.uniqueNumber,\n value,\n textValue: e.property.editorClass === 'ax/editors/date' ? new AXDateTime(text, 'jalali').format('yyyy/MM/DD') : text,\n component: e,\n filterOptions: {\n filters: e.property?.filterOptions?.filters ? e.property.filterOptions.filters : [],\n logic: e.property?.filterOptions?.logic ? e.property.filterOptions.logic : 'and',\n ignoreCase: e.property?.filterOptions?.ignoreCase ? e.property.filterOptions.ignoreCase : true,\n joinType: e.property?.filterOptions?.joinType ? e.property.filterOptions.joinType : 'INNER',\n operator: e.property?.filterOptions?.operator ? e.property.filterOptions.operator : null,\n truncateDate: e.property?.filterOptions?.truncateDate ? e.property.filterOptions.truncateDate : true\n }\n });\n }\n }\n\n public open() {\n setTimeout(() => {\n this.searchPopover.open();\n this.cdr.detectChanges();\n this.cdr.markForCheck();\n }, 100);\n }\n\n public close() {\n this.searchPopover.close();\n }\n}\n","<ax-button [block]=\"block\" end icon=\"far fa-sliders-h icon\" [selected]=\"_searchCount? true:false\"\n [type]=\" _searchCount ? 'primary':'primary outline'\" [disabled]=\"disabled\" [size]=\"sizeButton\" [tabIndex]=\"-1\"\n (click)=\"handleButtonClick()\"> {{caption? caption:'common.search' | trans}}\n <span *ngIf=\"_searchCount\" class=\"search-count\">{{_searchCount}}</span></ax-button>\n\n\n<ax-popover #searchPop [target]=\"ref\" [rtl]=\"rtl\"\n [position]=\"{originX:'end',originY:'bottom',overlayX:'end',overlayY:'top',offsetY:10}\">\n <div class=\"panel-box ax-dropdown-container-bordered {{size}}\">\n <ax-validation-form #form>\n <ng-container *ngFor=\"let item of _items\">\n <div class=\"row\">\n <ng-container *ngFor=\"let prop of item.items\">\n <div *ngIf=\"prop.property.visible != false\" class=\"{{renderCol(prop.property.col)}}\">\n <div>\n <ax-label>{{prop.property.title}}</ax-label>\n <ng-container ax-property-editor-renderer [validationForm]=\"form\" [property]=\"prop\"\n [context]=\"_context\" (onValueChange)=\"handleValueChange($event)\"></ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n </ng-container>\n <div class=\"footer-button\">\n <ax-button (click)=\"search()\">{{'common.search' | trans}}</ax-button>\n <ax-button type=\"blank danger\" (click)=\"clear()\">{{'common.reset' | trans}}</ax-button>\n </div>\n </ax-validation-form>\n </div>\n</ax-popover>","import { Input, Output, EventEmitter, ChangeDetectorRef, Directive } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AXValidatableComponent } from '../base/element.class';\n\nexport type AXDataType = 'string' | 'number' | 'date' | 'boolean' | 'object';\nexport type AXControlType = 'textbox' | 'numberbox' | 'datePicker' | 'switch' | 'custom';\n\nexport interface AXPropertyDef {\n name: string;\n title: string;\n hint?: string;\n defaultValue?: any;\n editorClass: any;\n editorOptions?: any;\n visible?: boolean | (() => boolean);\n order?: number;\n row?: number;\n col?: number | AXPropertyColDef;\n filterOptions?: FilterModel;\n uniqueNumber?: number;\n}\n\nexport interface FilterModel {\n operator?: any;\n filters?: FiltersModel[];\n truncateDate?: boolean;\n joinType?: string;\n ignoreCase?: boolean;\n logic?: 'and' | 'or';\n advance?: boolean;\n}\n\nexport interface FiltersModel {\n name?: string;\n value?: string;\n field?: string;\n filterOptions: FilterModel;\n}\nexport interface AXPropertyColDef {\n lg?: number;\n md?: number;\n sm?: number;\n xs?: number;\n}\n\nexport interface AXPropertyEditorDef {\n title: string;\n hint?: string;\n defaultValue?: any;\n editorClass: any;\n editorOptions?: any;\n visible?: boolean | (() => boolean);\n order?: number;\n}\n\nexport interface AXPropertyConfig {\n property: AXPropertyDef;\n value: any;\n}\n\nexport interface AXProperyEditorValueChangeEvent {\n property: AXPropertyDef;\n value: any;\n}\n\n@Directive()\nexport abstract class AXProperyEditorComponent<T> {\n readonly: boolean = false;\n disabled = false\n\n private _initiated: boolean = false;\n private _valueBound: boolean = false;\n\n public get initiated(): boolean {\n return this._initiated && this._valueBound;\n }\n\n validatableComponentRegistered: Subject<AXValidatableComponent> = new Subject<AXValidatableComponent>();\n\n registerForValidationForm(component?: AXValidatableComponent) {\n this.validatableComponentRegistered.next(component);\n }\n\n @Output()\n valueChange: EventEmitter<T> = new EventEmitter<T>();\n\n @Output()\n onRenderCompleted: EventEmitter<void> = new EventEmitter<void>();\n\n private _value: T;\n @Input()\n public get value(): T {\n return this._value;\n }\n\n public set value(v: T) {\n if (v !== this._value) {\n this._value = v;\n this.valueChange.emit(v);\n this.cdr.detectChanges();\n //TODO: find better solution\n setTimeout(() => {\n this._valueBound = true;\n }, 100);\n }\n }\n\n constructor(protected cdr: ChangeDetectorRef) {\n this.onRenderCompleted.subscribe(() => {\n this._initiated = true;\n });\n }\n\n uid: string;\n\n handleValueChange(v: T) {\n this.value = v;\n }\n}\n\nexport class AXPropertyDecorator {\n cls: any;\n property: string;\n options: any;\n\n constructor(cls: any, property: string, options: any) {\n this.cls = cls;\n this.property = property;\n this.options = options;\n }\n}\n\n// @dynamic\nexport class AXPropertyDecorators {\n private static REGISTRY = new Array<AXPropertyDecorator>();\n\n static register(cls: string, property: string, options?: any) {\n const item = AXPropertyDecorators.REGISTRY.find((c) => c.cls === cls && c.property === property);\n if (item) {\n item.options = options;\n } else {\n AXPropertyDecorators.REGISTRY.push(new AXPropertyDecorator(cls, property, options));\n }\n }\n\n static has(cls: string, property: string): boolean {\n return AXPropertyDecorators.REGISTRY.some((c) => c.cls === cls && c.property === property);\n }\n\n static get(cls: string, property: string): AXPropertyDecorator {\n return AXPropertyDecorators.REGISTRY.find((c) => c.cls === cls && c.property === property);\n }\n\n static isValid(property: string): boolean {\n if (property) {\n return AXPropertyDecorators.REGISTRY.some((c) => c.property === property);\n }\n return false;\n }\n\n static getProperties(target: any): AXPropertyDecorator[] {\n const list: AXPropertyDecorator[] = [];\n const p: any[] = Array<any>();\n let superClass = Object.getPrototypeOf(target);\n while (superClass.constructor.name !== 'Object') {\n p.push(superClass.constructor);\n superClass = Object.getPrototypeOf(superClass);\n }\n list.push(...AXPropertyDecorators.REGISTRY.filter((c) => p.includes(c.cls.constructor)));\n return list;\n }\n}\n\nexport function propertyEditor(options: AXPropertyEditorDef) {\n return (target: any, key: string) => {\n (options as any).name = key;\n AXPropertyDecorators.register(target, key, options);\n };\n}\n","import { ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core';\nimport { AXCheckBoxComponent } from '../../../checkbox/checkbox.component';\nimport { AXValidation } from '../../../validation/validation.component';\nimport { AXProperyEditorComponent } from '../../property-editor.class';\n\n@Component({\n template: `\n <ax-check-box \n [disabled]=\"disabled\"\n [label]=\"label\" \n [size]=\"size\"\n [indeterminate]=\"indeterminate\"\n [readonly]=\"readonly\"\n [value]=\"value\"\n (onValueChanged)=\"handleValueChange($event)\"\n >\n <ax-validation [rules]=\"validation?.rules\">\n </ax-validation>\n </ax-check-box>\n `,\n})\nexport class AXCheckBoxPropertyEditorComponent extends AXProperyEditorComponent<any> {\n constructor(protected cdr: ChangeDetectorRef) {\n super(cdr)\n }\n @ViewChild(AXCheckBoxComponent, { static: true })\n private checkBox: AXCheckBoxComponent;\n\n disabled: boolean = false;\n indeterminate: boolean = false;\n label: string;\n readonly: boolean = false;\n size: 'sm' | 'md' | 'lg' = 'md';\n validation: AXValidation;\n\n handleValueChange(e: any) {\n super.handleValueChange(e.value);\n }\n\n ngAfterViewInit() {\n this.registerForValidationForm(this.checkBox);\n this.onRenderCompleted.emit();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXCheckBoxModule } from '../../../checkbox/checkbox.module';\nimport { AXValidationModule } from '../../../validation/validation.module';\nimport { FormsModule } from '@angular/forms';\nimport { AXCheckBoxPropertyEditorComponent } from './check-editor';\n\n@NgModule({\n declarations: [AXCheckBoxPropertyEditorComponent],\n imports: [CommonModule, AXCheckBoxModule, FormsModule, AXValidationModule],\n exports: [AXCheckBoxPropertyEditorComponent],\n providers: [],\n})\nexport class AXCheckPropertyEditorModule { }","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { AXValidatableComponent } from '../../base/element.class';\nimport { AXColorUtil, AXColor } from '@acorex/core';\n\n@Component({\n selector: 'ax-color-box',\n templateUrl: './color-box.component.html',\n styleUrls: ['./color-box.component.scss'],\n providers: [\n { provide: AXValidatableComponent, useExisting: AXColorBoxComponent },\n ]\n})\nexport class AXColorBoxComponent extends AXValidatableComponent {\n\n inputFormat: 'hex' | 'rgb' = 'hex';\n\n constructor() {\n super();\n }\n\n @Output()\n onColorSelect: EventEmitter<string> = new EventEmitter<string>();\n\n @Output()\n valueChange: EventEmitter<string> = new EventEmitter<string>();\n\n private _value: string;\n\n @Input()\n public get value(): string {\n return this._value;\n }\n public set value(v: string) {\n if (v != this._value) {\n this._value = v;\n if (v) {\n const selected = this.colors.find(c => c.code === v);\n if (selected) {\n this.selectColor(selected);\n }\n else {\n this.colors.forEach((i) => {\n i.active = false\n });\n }\n const rgb = AXColorUtil.hex2Rgb(v);\n\n if (rgb) {\n this.rColor = rgb.r;\n this.gColor = rgb.g;\n this.bColor = rgb.b;\n }\n }\n else {\n this.rColor = null;\n this.gColor = null;\n this.bColor = null;\n }\n this.valueChange.emit(v);\n }\n }\n\n rColor: number = 0;\n gColor: number = 0;\n bColor: number = 0;\n\n\n colors: AXColor[] = [\n // Pink ***************************\n {\n code: '#FFC0CB',\n },\n {\n code: '#FF69B4',\n },\n {\n code: '#DB7093',\n },\n {\n code: '#C71585',\n },\n // Purple ***************************\n {\n code: '#E6E6FA',\n },\n {\n code: '#D8BFD8',\n },\n {\n code: '#DDA0DD',\n },\n {\n code: '#DA70D6',\n },\n {\n code: '#FF00FF',\n },\n {\n code: '#BA55D3',\n },\n {\n code: '#9932CC',\n },\n {\n code: '#8A2BE2',\n\n },\n {\n code: '#8B008B',\n },\n {\n code: '#9370DB',\n },\n {\n code: '#7B68EE',\n },\n {\n code: '#6A5ACD',\n },\n {\n code: '#483D8B',\n },\n {\n code: '#663399',\n },\n {\n code: '#4B0082',\n },\n // Red ***************************\n {\n code: '#FFA07A',\n },\n {\n code: '#FA8072',\n },\n {\n code: '#F08080',\n },\n {\n code: '#CD5C5C',\n },\n {\n code: '#DC143C',\n },\n {\n code: '#FF0000',\n },\n {\n code: '#B22222',\n },\n {\n code: '#8B0000',\n },\n // Orange ***************************\n {\n code: '#FFA500',\n },\n {\n code: '#FF8C00',\n },\n {\n code: '#FF7F50',\n },\n {\n code: '#FF6347',\n },\n {\n code: '#FF4500',\n },\n {\n code: '#FFD700',\n },\n // Yellow ***************************\n {\n code: '#FFFF00',\n },\n {\n code: '#FFFFE0',\n },\n {\n code: '#FFFACD',\n },\n {\n code: '#FFEFD5',\n },\n {\n code: '#FFE4B5',\n },\n {\n code: '#FFDAB9',\n },\n {\n code: '#EEE8AA',\n },\n {\n code: '#F0E68C',\n },\n {\n code: '#BDB76B',\n },\n // Brown ***************************\n // {\n // code: '#FFF8DC'\n // },\n // {\n // code: '#FFEBCD'\n // },\n // {\n // code: '#FFE4C4'\n // },\n {\n code: '#FFDEAD'\n },\n {\n code: '#DEB887'\n },\n {\n code: '#D2B48C'\n },\n {\n code: '#DAA520'\n },\n {\n code: '#B8860B'\n },\n {\n code: '#CD853F'\n },\n {\n code: '#D2691E'\n },\n {\n code: '#8B4513'\n },\n {\n code: '#A0522D'\n },\n // Green ***************************\n {\n code: '#ADFF2F',\n },\n {\n code: '#7FFF00',\n },\n {\n code: '#00FF00',\n },\n {\n code: '#32CD32',\n },\n {\n code: '#98FB98',\n },\n {\n code: '#90EE90',\n },\n {\n code: '#00FA9A',\n },\n {\n code: '#00FF7F',\n },\n {\n code: '#3CB371',\n },\n {\n code: '#2E8B57',\n },\n {\n code: '#228B22',\n },\n {\n code: '#008000',\n },\n {\n code: '#006400',\n },\n {\n code: '#9ACD32',\n },\n {\n code: '#6B8E23',\n },\n {\n code: '#556B2F',\n },\n {\n code: '#66CDAA',\n },\n {\n code: '#8FBC8F',\n },\n {\n code: '#20B2AA',\n },\n {\n code: '#008B8B',\n },\n // Cyan ***************************\n\n {\n code: '#E0FFFF',\n },\n {\n code: '#AFEEEE',\n },\n {\n code: '#7FFFD4',\n },\n {\n code: '#40E0D0',\n },\n {\n code: '#48D1CC',\n },\n {\n code: '#00CED1',\n },\n // Blue ***************************\n {\n code: '#5F9EA0'\n },\n {\n code: '#4682B4'\n },\n {\n code: '#B0C4DE'\n },\n {\n code: '#ADD8E6'\n },\n {\n code: '#B0E0E6'\n },\n {\n code: '#87CEFA'\n },\n {\n code: '#87CEEB'\n },\n {\n code: '#6495ED'\n },\n {\n code: '#00BFFF'\n },\n {\n code: '#00FFFF',\n },\n {\n code: '#1E90FF'\n },\n {\n code: '#4169E1'\n },\n {\n code: '#0000FF'\n },\n {\n code: '#0000CD'\n },\n {\n code: '#00008B'\n },\n {\n code: '#191970'\n },\n // Gray\n {\n code: '#FFFFFF'\n },\n {\n code: '#DCDCDC'\n },\n {\n code: '#808080'\n },\n {\n code: '#708090'\n },\n {\n code: '#000000'\n },\n ];\n\n\n // validate(): Promise<IValidationRuleResult> {\n\n // return new Promise<IValidationRuleResult>(resolve => {\n // if (!this.validator) {\n // resolve({ result: true });\n // } else {\n // // this.validator.validate(this.model).then(r => {\n // // r.target = this;\n // // if (r.result) {\n // // this.errorText = null;\n // // } else {\n // // this.errorText = r.message;\n // // }\n // // resolve(r);\n // // });\n\n // resolve()\n // }\n // });\n // }\n\n focus() {\n }\n\n clear(): void {\n this.value = null;\n }\n\n onColorClick(item: AXColor) {\n this.value = item ? item.code : null;\n this.selectColor(item);\n this.onColorSelect.emit(this.value);\n }\n\n handleColorChange() {\n this.value = AXColorUtil.rgb2Hex(this.rColor, this.gColor, this.bColor);\n\n }\n\n private selectColor(item: AXColor) {\n this.colors.forEach((i) => {\n i.active = false;\n });\n item.active = true\n }\n\n handleKeyEvent(e: KeyboardEvent) {\n if (e.code == 'Enter' || e.code == 'NumpadEnter') {\n this.onColorSelect.emit(this.value);\n }\n }\n}\n","<div class=\"color-box\">\n <div class=\"color-box-pallet\">\n <div class=\"color-item\" *ngFor=\"let item of colors\" [style.background-color]=\"item.code\" [title]=\"item.code\"\n (click)=\"onColorClick(item)\">\n <i class=\"fas fa-check-circle color-active\" *ngIf=\"item.active\"></i>\n </div>\n </div>\n <div class=\"text-input\">\n <ng-container *ngIf=\"inputFormat=='rgb';else hexTemplate\">\n <div class=\"color-part\">\n <ax-text-box [(value)]=\"rColor\" (textChange)=\"handleColorChange()\" (onKey)=\"handleKeyEvent($event)\">\n </ax-text-box>\n </div>\n <div class=\"color-part\">\n <ax-text-box [(value)]=\"gColor\" (textChange)=\"handleColorChange()\" (onKey)=\"handleKeyEvent($event)\">\n </ax-text-box>\n </div>\n <div class=\"color-part\">\n <ax-text-box [(value)]=\"bColor\" (textChange)=\"handleColorChange()\" (onKey)=\"handleKeyEvent($event)\">\n </ax-text-box>\n </div>\n <div class=\"color-part switch\" (click)=\"inputFormat='hex'\">\n <span>RGB</span>\n </div>\n </ng-container>\n <ng-template #hexTemplate>\n <div class=\"color-part\">\n <ax-text-box [(value)]=\"value\" size=\"sm\" (onKey)=\"handleKeyEvent($event)\">\n </ax-text-box>\n </div>\n <!-- <div class=\"color-part switch\" (click)=\"inputFormat='rgb'\">\n <span>HEX</span>\n </div> -->\n </ng-template>\n\n </div>\n</div>","import { Component, OnInit, ViewChild, Input, Output, EventEmitter, ContentChild, ElementRef } from '@angular/core';\nimport { AXValidatableComponent, AXBaseSizableComponent, AXBaseInputComponent, AXElementSize } from '../base/element.class';\nimport { AXColorBoxComponent } from './color-box/color-box.component';\nimport { AXColorUtil, AXConfig } from '@acorex/core';\nimport { AXDropdownComponent } from '../dropdown/dropdown.component';\nimport { AXValidation } from '../validation/validation.component';\n\n\n@Component({\n selector: 'ax-color-picker',\n templateUrl: './color-picker.component.html',\n providers: [\n { provide: AXValidatableComponent, useExisting: AXColorPickerComponent },\n ],\n host: { style:'width: 100%' }\n})\nexport class AXColorPickerComponent extends AXColorBoxComponent implements AXBaseSizableComponent, AXBaseInputComponent {\n\n @ViewChild('dropdown', { static: true })\n dropdown: AXDropdownComponent;\n @Input() placeholder: string = '';\n @Input() showClear: boolean = false;\n\n @Input() label: string;\n\n _text: string = '';\n\n constructor(private ref: ElementRef) {\n super();\n }\n\n @Input()\n readonly: boolean;\n @Input()\n disabled: boolean;\n @Input()\n size: AXElementSize = 'md';\n\n @Input()\n rtl: boolean = AXConfig.get('layout.rtl');\n\n @ContentChild(AXValidation, { static: true })\n private _contentValidation: AXValidation;\n\n private _validation: AXValidation;\n\n @Input()\n public get validation(): AXValidation {\n return this._validation ? this._validation : this._contentValidation;\n }\n\n public set validation(v: AXValidation) {\n this._validation = v;\n }\n\n\n ngOnInit() {\n if (this.rtl == null) {\n this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';\n }\n }\n\n\n ngAfterContentInit() {\n this.initValidation(this.ref, 'value', this.validation);\n }\n\n focus(): void {\n this.dropdown.focus();\n }\n\n // handleValueChange(c: string) {\n\n // }\n\n findTextColor(color: string) {\n if (!color) {\n return '#000';\n }\n return !(AXColorUtil.contrastToWhite(color) > 2.0) ? '#000' : '#fff';\n }\n\n handleItemClick(e) {\n this.dropdown.close();\n }\n\n}\n","<ax-drop-down #dropdown fitParent=\"false\" [size]=\"size\" [disabled]=\"disabled\" [rtl]=\"rtl\">\n <ng-container start>\n <ng-content select=\"[start]\">\n </ng-content>\n </ng-container>\n <ng-container header>\n\n <div class=\"ax form-item\" [class.disabled]=\"disabled\" [attr.id]=\"uid\" #fc>\n <div class=\"content\" #content>\n <div class=\"ax form-control input {{size}}\" [class.disabled]=\"disabled\" [class.readonly]=\"readonly\">\n <ng-container *ngIf=\"value; else elseTemplate\">\n <div [style.background-color]=\"value\" [style.color]=\"findTextColor(value)\"\n style=\"padding:0px 5px;width: 100%;display: flex;align-items: center;\">\n {{value}}&nbsp;</div>\n </ng-container>\n <ng-template #elseTemplate>\n {{placeholder}}&nbsp;\n </ng-template>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container end>\n <ng-content select=\"[end]\">\n </ng-content>\n </ng-container>\n <ng-container panel>\n <ax-color-box [(value)]=\"value\" \n (onColorSelect)=\"handleItemClick($event)\"></ax-color-box>\n </ng-container>\n</ax-drop-down>","import { Component, OnInit, ChangeDetectorRef, ViewChild } from '@angular/core';\nimport { AXColorPickerComponent } from '../../../color-picker/color-picker.component';\nimport { AXValidation } from '../../../validation/validation.component';\nimport { AXProperyEditorComponent } from '../../property-editor.class';\n\n@Component({\n template: `\n <ax-color-picker [(value)]=\"value\">\n <ax-validation [rules]=\"validation?.rules\">\n </ax-validation>\n </ax-color-picker>\n `,\n})\nexport class AXColorPropertyEditorComponent extends AXProperyEditorComponent<string> {\n\n validation: AXValidation;\n\n @ViewChild(AXColorPickerComponent)\n private textBox: AXColorPickerComponent;\n\n constructor(protected cdr: ChangeDetectorRef) {\n super(cdr);\n }\n\n ngAfterViewInit() {\n this.registerForValidationForm(this.textBox);\n this.onRenderCompleted.emit();\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXColorPickerComponent } from './color-picker.component';\nimport { AXColorBoxComponent } from './color-box/color-box.component';\nimport { AXValidationModule } from '../validation/validation.module';\nimport { AXDropdownModule } from '../dropdown/dropdown.module';\nimport { AXTextBoxModule } from '../textbox/textbox.module';\nimport { FormsModule } from '@angular/forms';\n\n@NgModule({\n declarations: [AXColorPickerComponent, AXColorBoxComponent],\n imports: [CommonModule, FormsModule, AXDropdownModule, AXValidationModule, AXTextBoxModule],\n exports: [AXColorPickerComponent, AXColorBoxComponent],\n providers: []\n})\nexport class AXColorPickerModule { }","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { AXColorPropertyEditorComponent } from './color.editor';\nimport { AXColorPickerModule } from '../../../color-picker/color-picker.module';\nimport { AXValidationModule } from '../../../validation/validation.module';\n\n\n\n\n@NgModule({\n declarations: [AXColorPropertyEditorComponent],\n imports: [CommonModule, FormsModule, AXColorPickerModule, AXValidationModule],\n exports: [AXColorPropertyEditorComponent],\n providers: []\n})\nexport class AXColorPropertyEditorModule {\n constructor() {\n }\n}","import { Component, OnInit, ViewChild, TemplateRef, ChangeDetectorRef } from '@angular/core';\nimport { AXTranslator } from '@acorex/core';\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { AXProperyEditorComponent } from '../../property-editor.class';\nimport { AXPopupService } from '../../../popup/popup.service';\nimport { AXDataSourceReadParams } from '../../../data-source/read-param';\n\n\nexport interface AXTableColumnModel {\n id: number;\n index: number;\n fieldName: string;\n caption?: string;\n fieldType?: string;\n displayType?: string;\n fillByUser?: boolean;\n rowHeader?: boolean;\n}\n\n@Component({\n templateUrl: './column.editor.html',\n styleUrls: ['./column.editor.scss']\n})\nexport class ColumnPropertyEditorComponent extends AXProperyEditorComponent<AXTableColumnModel[]> implements OnInit {\n @ViewChild('tplEdit')\n tplEdit: TemplateRef<any>;\n\n columns: AXTableColumnModel[] = [];\n\n index: number = 2;\n\n constructor(protected cdr: ChangeDetectorRef, private popupService: AXPopupService) {\n super(cdr);\n }\n\n columnTypeData: any[] = [\n { id: 1, title: 'String' },\n { id: 2, title: 'Number' },\n { id: 3, title: 'Boolean' },\n { id: 4, title: 'Data' },\n { id: 5, title: 'Time' }\n ];\n\n ngOnInit(): void {\n this.columns = this.value ? JSON.parse(JSON.stringify(this.value)) : [];\n }\n\n ngAfterViewInit() {\n this.onRenderCompleted.emit();\n }\n\n drop(event: CdkDragDrop<string[]>) {\n moveItemInArray(this.columns, event.previousIndex, event.currentIndex);\n }\n\n handleAddColumn() {\n this.columns.push({\n id: Math.floor(1000*Math.random()*9000),\n index: this.index,\n fieldName: 'ستون' + this.index,\n caption: 'ستون' + this.index,\n fieldType: '',\n displayType: '',\n fillByUser: false,\n rowHeader: false\n });\n this.index++;\n }\n\n handleAddClick() {\n if (this.columns.length === 0) {\n this.columns.push({\n id: Math.floor(1000*Math.random()*9000),\n index: 1,\n fieldName: 'ستون 1',\n caption: 'ستون 1',\n fieldType: '',\n displayType: '',\n fillByUser: false,\n rowHeader: false\n });\n }\n const popup = this.popupService.open(this.tplEdit, {\n title: 'ستون',\n size: 'lg',\n footerButtons: [\n {\n name: 'confirm',\n text: AXTranslator.get('common.confirm'),\n style: 'success',\n submitBehavior: true,\n cancelBehavior: false,\n onClick: () => {\n super.handleValueChange(this.columns);\n this.cdr.detectChanges();\n this.index++;\n popup.close();\n }\n },\n {\n name: 'cancel',\n text: AXTranslator.get('common.cancel'),\n style: 'danger blank',\n submitBehavior: false,\n cancelBehavior: true,\n onClick: () => {\n this.cdr.detectChanges();\n popup.close();\n }\n }\n ]\n });\n }\n\n handleRemoveClick(item: AXTableColumnModel) {\n this.columns = this.columns.filter((c) => c.id !== item.id);\n super.handleValueChange(this.columns);\n }\n\n handleDataReceived = (e: AXDataSourceReadParams) => {\n return Promise.resolve(this.columnTypeData);\n }\n\n}\n","<div *ngFor=\"let c of columns\" class=\"column-item\">\n <div>\n <div>{{c.fieldName}} - {{c.caption}}</div>\n </div>\n <div>\n <div>\n </div>\n <div class=\"remove-button\" (click)=\"handleRemoveClick(c)\"><i class=\"far fa-trash-alt\"></i></div>\n </div>\n</div>\n<ax-button icon=\"far fa-plus\" size=\"sm\" type=\"success outline\" (click)=\"handleAddClick()\">ستون ها</ax-button>\n<ng-template #tplEdit>\n <ax-page>\n <ax-page-content>\n <div class=\"container\">\n <div class=\"ax-mrg-md\"></div>\n <div class=\"table\">\n <div class=\"thead\">\n <div class=\"tr\">\n <div class=\"th\">\n <div style=\"width: 5px;\"></div>\n نام\n </div>\n <div class=\"th\">عنوان</div>\n <div class=\"th\">نوع</div>\n <div class=\"th\">نوع نمایش</div>\n <div class=\"th\">به عنوان هدر</div>\n <div class=\"th\">تکمیل توسط کاربر</div>\n <div class=\"th\">عملیات</div>\n </div>\n </div>\n <div class=\"tbody\">\n <div cdkDropList class=\"drag-drop-table-item\" (cdkDropListDropped)=\"drop($event)\">\n <div class=\"tr drag-drop-item-box\" *ngFor=\"let c of columns\" cdkDrag>\n <div class=\"td\">\n <div>\n </div>\n <ax-text-box size=\"sm\" [(value)]=\"c.fieldName\" [allowClear]=\"true\"></ax-text-box>\n </div>\n <div class=\"td\">\n <ax-text-box size=\"sm\" [(value)]=\"c.caption\" [allowClear]=\"true\"></ax-text-box>\n </div>\n <div class=\"td\">\n <ax-select-box size=\"sm\" textField=\"title\" valueField=\"id\">\n <ax-data-source [provideData]=\"handleDataReceived\"></ax-data-source>\n </ax-select-box>\n </div>\n <div class=\"td\">\n <ax-text-box size=\"sm\" [(value)]=\"c.displayType\"></ax-text-box>\n </div>\n <div class=\"td\">\n <ax-check-box size=\"md\" [(value)]=\"c.rowHeader\"></ax-check-box>\n </div>\n <div class=\"td\">\n <ax-check-box size=\"md\" [(value)]=\"c.fillByUser\"></ax-check-box>\n </div>\n <div class=\"td\">\n <ax-button type=\"danger blank\" icon=\"far fa-trash-alt\" (click)=\"handleRemoveClick(c)\">\n </ax-button>\n <ax-button type=\"primary blank\" icon=\"far fa-ellipsis-v\">\n </ax-button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"ax-mrg-md\"></div>\n <div style=\"display: flex; justify-content: flex-end;margin-left: 15px;\">\n <ax-button icon=\"far fa-plus\" size=\"sm\" type=\"primary\" (click)=\"handleAddColumn()\">افزودن ستون جدید\n </ax-button>\n </div>\n </ax-page-content>\n </ax-page>\n</ng-template>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { AXTextBoxModule } from '../../../textbox/textbox.module';\nimport { AXNumberBoxModule } from '../../../number-box/number-box.module';\nimport { AXColorPickerModule } from '../../../color-picker/color-picker.module';\nimport { AXLabelModule } from '../../../label/label.module';\nimport { AXPageModule } from '../../../page/page.module';\nimport { AXButtonModule } from '../../../button/button.module';\nimport { AXCheckBoxModule } from './../../../checkbox/checkbox.module';\nimport { ColumnPropertyEditorComponent } from './column.editor';\nimport { AXSelectBoxModule } from '../../../selectbox/selectbox.module';\nimport { AXDataSourceModule } from '../../../data-source/datasource.module';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\n\n\n\n\n@NgModule({\n declarations: [ColumnPropertyEditorComponent],\n imports: [CommonModule, FormsModule, AXTextBoxModule, AXNumberBoxModule, AXColorPickerModule, AXLabelModule, AXPageModule, AXButtonModule, AXCheckBoxModule, AXSelectBoxModule, AXDataSourceModule, DragDropModule],\n exports: [ColumnPropertyEditorComponent],\n providers: []\n})\nexport class AXColumnPropertyEditorModule {\n constructor() {\n }\n}\n","import { Component, ChangeDetectorRef, ViewChild, TemplateRef, ChangeDetectionStrategy, Input } from '@angular/core';\nimport { AXObjectUtil, AXTranslator } from '@acorex/core';\nimport { AXDataType, AXProperyEditorComponent } from '../../property-editor.class';\nimport { AXPopupService } from '../../../popup/popup.service';\nimport { AXValidationFormComponent } from '../../../validation/validation-form.component';\n\n\n\n\nexport interface AXConditionalColorModel {\n color: string;\n operator: string;\n value: any;\n display?: string;\n}\n\n\n\n@Component({\n templateUrl: './conditional-color.editor.html',\n styleUrls: ['./conditional-color.editor.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AXConditionalColorPropertyEditorComponent extends AXProperyEditorComponent<AXConditionalColorModel[]> {\n\n\n form: AXValidationFormComponent;\n\n @ViewChild('tplEdit')\n tplEdit: TemplateRef<any>;\n\n @Input()\n dataType: AXDataType = 'number';\n\n // @Input()\n // mode: string[] = ['color', 'title'];\n\n operators: { value: string, text: string, dataTypes?: AXDataType[] }[] = [];\n\n ranges: AXConditionalColorModel[] = [];\n\n editRow: AXConditionalColorModel;\n\n showSeparator: boolean = true;\n decimalNumber: number = 2;\n\n booleanItems = [{ value: true, text: AXTranslator.get('queryBuilder.true') }, { value: false, text: AXTranslator.get('queryBuilder.false') }];\n\n constructor(protected cdr: ChangeDetectorRef, private popupService: AXPopupService) {\n super(cdr);\n }\n\n\n onFormInit(e) {\n this.form = e.component;\n }\n\n ngOnInit() {\n this.ranges = this.value ? AXObjectUtil.deepCopy(this.value) : [];\n this.updateOperations();\n }\n\n\n\n updateOperations() {\n this.operators = [\n {\n value: '<',\n text: AXTranslator.get('queryBuilder.lt'),\n dataTypes: ['string', 'number', 'date']\n },\n {\n value: '<=',\n text: AXTranslator.get('queryBuilder.lte'),\n dataTypes: ['string', 'number', 'date']\n },\n {\n value: '>',\n text: AXTranslator.get('queryBuilder.gt'),\n dataTypes: ['string', 'number', 'date']\n },\n {\n value: '>=',\n text: AXTranslator.get('queryBuilder.gte'),\n dataTypes: ['string', 'number', 'date']\n },\n {\n value: '==',\n text: AXTranslator.get('queryBuilder.equal'),\n dataTypes: ['string', 'boolean', 'number', 'date']\n },\n {\n value: '<>',\n text: AXTranslator.get('queryBuilder.not-equal'),\n dataTypes: ['string', 'boolean', 'number', 'date']\n }\n ].filter(c => c.dataTypes == null || c.dataTypes.includes(this.dataType)) as any;\n }\n\n\n ngAfterViewInit() {\n this.cdr.detectChanges();\n this.onRenderCompleted.emit();\n }\n\n handleEditClick(item: AXConditionalColorModel) {\n this.updateOperations();\n this.editRow = Object.assign({}, item);\n const popup = this.popupService.open(this.tplEdit, {\n size: 'sm',\n footerButtons: [\n {\n name: 'confirm',\n text: AXTranslator.get('common.confirm'),\n style: 'success',\n submitBehavior: true,\n cancelBehavior: false,\n onClick: () => {\n this.form.validate().then(c => {\n if (c.result) {\n super.handleValueChange(this.ranges);\n Object.assign(item, this.editRow);\n popup.close();\n this.editRow = null;\n this.cdr.detectChanges();\n }\n });\n }\n },\n {\n name: 'cancel',\n text: AXTranslator.get('common.cancel'),\n style: 'danger blank',\n submitBehavior: false,\n cancelBehavior: true,\n onClick: () => {\n popup.close();\n this.editRow = null;\n this.cdr.detectChanges();\n }\n }\n ],\n title: AXTranslator.get('common.edit')\n });\n }\n\n handleAddClick() {\n this.updateOperations();\n this.editRow = {\n value: this.getDefaultValue(),\n color: null,\n operator: '=='\n };\n const popup = this.popupService.open(this.tplEdit, {\n title: AXTranslator.get('common.add-item'),\n size: 'sm',\n footerButtons: [\n {\n name: 'confirm',\n text: AXTranslator.get('common.confirm'),\n style: 'success',\n submitBehavior: true,\n cancelBehavior: false,\n onClick: () => {\n this.form.validate().then(c => {\n if (c.result) {\n super.handleValueChange(this.ranges);\n this.ranges.push(this.editRow);\n popup.close();\n this.editRow = null;\n this.cdr.detectChanges();\n }\n });\n }\n },\n {\n name: 'cancel',\n text: AXTranslator.get('common.cancel'),\n style: 'danger blank',\n submitBehavior: false,\n cancelBehavior: true,\n onClick: () => {\n popup.close();\n this.editRow = null;\n this.cdr.detectChanges();\n }\n }\n ],\n });\n }\n getDefaultValue(): any {\n switch (this.dataType) {\n case 'boolean':\n return true;\n case 'number':\n return 0;\n default:\n return null;\n }\n }\n\n handleRemoveClick(item: AXConditionalColorModel) {\n this.ranges = this.ranges.filter(c => !(c.value === item.value && c.operator === item.operator));\n super.handleValueChange(this.ranges);\n }\n\n\n getTitle(opr: string) {\n const oprItem = this.operators.find(c => c.value === opr);\n return oprItem ? AXTranslator.get(oprItem.text) : '';\n }\n\n getIcon(opr: string) {\n switch (opr) {\n case '==':\n return 'fa-equals';\n case '<>':\n return 'fa-not-equal';\n case '<':\n return 'fa-less-than';\n case '<=':\n return 'fa-less-than-equal';\n case '>':\n return 'fa-greater-than';\n case '>=':\n return 'fa-greater-than-equal';\n default:\n return null;\n }\n }\n\n}\n","<div *ngFor=\"let r of ranges\" [style.border-color]=\"r.color\" class=\"range-item\" (click)=\"handleEditClick(r)\">\n <div>\n <div [style.background-color]=\"r.color\"></div>\n <div>{{ r.display }}</div>\n </div>\n <div [attr.title]=\"getTitle(r.operator)\">\n <div class=\"value\">{{r.value}}</div>\n <div>\n <i class=\"far {{getIcon(r.operator)}}\"></i>\n </div>\n <div class=\"value-text\">{{'common.value' | trans}}</div>\n <div class=\"remove-button\" (click)=\"handleRemoveClick(r)\"><i class=\"far fa-trash-alt\"></i></div>\n </div>\n</div>\n<ax-button icon=\"far fa-plus\" type=\"success outline\" (click)=\"handleAddClick()\">{{ 'common.add-item' | trans }}\n</ax-button>\n<ng-template #tplEdit>\n <ax-page>\n <ax-page-content>\n <div class=\"container\">\n <ax-validation-form (onInit)=\"onFormInit($event)\">\n\n <div class=\"row\">\n <div class=\"col-12\">\n <ax-label>{{ 'common.condition' | trans }}</ax-label>\n <ax-select-box [(selectedValues)]=\"editRow.operator\" [allowSearch]=\"false\"\n [allowNull]=\"false\" [items]=\"operators\">\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n </ax-select-box>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-12\">\n <ax-label>{{ 'common.value' | trans }}</ax-label>\n <div [ngSwitch]=\"dataType\">\n <ax-text-box *ngSwitchCase=\"'string'\" [(value)]=\"editRow.value\">\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n </ax-text-box>\n <ax-select-box *ngSwitchCase=\"'boolean'\" [(selectedValues)]=\"editRow.value\"\n [allowSearch]=\"false\" [allowNull]=\"false\" [items]=\"booleanItems\">\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n </ax-select-box>\n <ax-number-box *ngSwitchDefault [(value)]=\"editRow.value\"\n [showSeparator]=\"showSeparator\" [decimalNumber]=\"decimalNumber\">\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n </ax-number-box>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-12\">\n <ax-label>{{ 'conditional-color-property-editor.replaced-color' | trans }}</ax-label>\n <ax-color-picker [(value)]=\"editRow.color\">\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n </ax-color-picker>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-12\">\n <ax-label>{{ 'conditional-color-property-editor.replaced-title' | trans }}</ax-label>\n <ax-text-box [(value)]=\"editRow.display\">\n </ax-text-box>\n </div>\n </div>\n </ax-validation-form>\n </div>\n <div class=\"ax-mrg-md\"></div>\n </ax-page-content>\n </ax-page>\n</ng-template>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { AXTextBoxModule } from '../../../textbox/textbox.module';\nimport { AXNumberBoxModule } from '../../../number-box/number-box.module';\nimport { AXColorPickerModule } from '../../../color-picker/color-picker.module';\nimport { AXLabelModule } from '../../../label/label.module';\nimport { AXPageModule } from '../../../page/page.module';\nimport { AXButtonModule } from '../../../button/button.module';\nimport { AXTranslator, AXTranslatorModule } from '@acorex/core';\nimport { AXConditionalColorPropertyEditorComponent } from './conditional-color.editor';\nimport { AXValidationModule } from '../../../validation/validation.module';\nimport { AXSelectBoxModule } from '../../../selectbox/selectbox.module';\n\n\n\n\n@NgModule({\n declarations: [AXConditionalColorPropertyEditorComponent],\n imports: [\n CommonModule,\n FormsModule,\n AXTranslatorModule,\n AXTextBoxModule,\n AXNumberBoxModule,\n AXColorPickerModule,\n AXLabelModule,\n AXPageModule,\n AXButtonModule,\n AXSelectBoxModule,\n AXValidationModule,\n ],\n exports: [AXConditionalColorPropertyEditorComponent],\n providers: []\n})\nexport class AXConditionalColorPropertyEditorModule {\n constructor() {\n AXTranslator.load('en', {\n 'conditional-color-property-editor': {\n 'replaced-color': 'Replaced Color',\n 'replaced-title': 'Replaced Title',\n }\n });\n //\n AXTranslator.load('fa', {\n 'conditional-color-property-editor': {\n 'replaced-color': 'رنگ جایگزین',\n 'replaced-title': 'متن جایگزین',\n }\n });\n }\n}","import { Component, OnInit, ChangeDetectorRef, ViewChild } from '@angular/core';\nimport { AXDatePickerComponent } from '../../../date-picker/date-picker.component';\nimport { AXValidation } from '../../../validation/validation.component';\nimport { AXProperyEditorComponent } from '../../property-editor.class';\nimport { AXCalendarType } from '@acorex/core';\n\n@Component({\n template: `\n <ax-date-picker\n [size]=\"size\"\n [dateType]=\"dateType\"\n [showToday]=\"showToday\"\n [disabled]=\"disabled\"\n [allowClear]=\"clearButton\"\n [readonly]=\"readonly\"\n [max]=\"max\"\n [min]=\"min\"\n [placeholder]=\"placeholder\"\n [showTodayButton]=\"showTodayButton\"\n [selectableHoliday]=\"selectableHoliday\"\n (onValueChanged)=\"handleValueChange($event)\"\n [type]=\"type\"\n [textAlign]=\"textAlign\"\n [(value)]=\"value\"\n >\n <ax-validation [rules]=\"validation?.rules\"> </ax-validation>\n </ax-date-picker>\n `,\n})\nexport class AXDatePropertyEditorComponent extends AXProperyEditorComponent<Date> {\n showTodayButton = true;\n selectableHoliday = true;\n type: AXCalendarType = 'gregorian';\n textAlign: 'right' | 'left' | null = null;\n declare validation: AXValidation;\n placeholder = '';\n declare min: Date;\n declare max: Date;\n declare readonly: boolean;\n declare disabled: boolean;\n clearButton = false;\n showToday = false;\n dateType: any;\n size = 'md';\n\n @ViewChild(AXDatePickerComponent)\n private date: AXDatePickerComponent;\n\n constructor(protected cdr: ChangeDetectorRef) {\n super(cdr);\n }\n\n handleValueChange(e: any) {\n super.handleValueChange(e.value);\n }\n\n ngAfterViewInit() {\n this.registerForValidationForm(this.date);\n this.onRenderCompleted.emit();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { AXValidationModule } from '../../../validation/validation.module';\nimport { AXDatePickerModule } from '../../../date-picker/date-picker.module';\nimport { AXDatePropertyEditorComponent } from './date.editor';\n\n\n\n\n@NgModule({\n declarations: [AXDatePropertyEditorComponent],\n imports: [CommonModule, FormsModule, AXDatePickerModule, AXValidationModule],\n exports: [AXDatePropertyEditorComponent],\n providers: []\n})\nexport class AXDatePropertyEditorModule {\n constructor() {\n }\n}","import { ChangeDetectorRef, Component, ViewChild } from '@angular/core';\nimport { AXNumberBoxComponent } from '../../../number-box/number-box.component';\nimport { AXValidation } from '../../../validation/validation.component';\nimport { AXProperyEditorComponent } from '../../property-editor.class';\n\n@Component({\n template: `\n <ax-number-box\n (onValueChanged)=\"handleValueChange($event)\"\n [value]=\"value\"\n [showSeparator]=\"showSeparator\"\n [decimalNumber]=\"decimalNumber\"\n [min]=\"minValue\"\n [max]=\"maxValue\"\n [allowClear]=\"clearButton\"\n [showCounter]=\"showCounter\"\n [readonly]=\"readonly\"\n >\n <ax-validation [rules]=\"validation?.rules\"> </ax-validation>\n </ax-number-box>\n `,\n})\nexport class AXNumberBoxPropertyEditorComponent extends AXProperyEditorComponent<number> {\n showSeparator: boolean = true;\n decimalNumber: number = 2;\n minValue?: number = null;\n maxValue?: number = null;\n validation: AXValidation;\n clearButton: boolean = false;\n showCounter: boolean = true;\n readonly = false;\n\n @ViewChild(AXNumberBoxComponent)\n private textBox: AXNumberBoxComponent;\n\n constructor(protected cdr: ChangeDetectorRef) {\n super(cdr);\n }\n\n handleValueChange(e: any) {\n super.handleValueChange(e.value);\n }\n\n ngAfterViewInit() {\n this.registerForValidationForm(this.textBox);\n this.onRenderCompleted.emit();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { AXNumberBoxPropertyEditorComponent } from './number.editor';\nimport { AXNumberBoxModule } from '../../../number-box/number-box.module';\nimport { AXValidationModule } from '../../../validation/validation.module';\n\n\n\n\n@NgModule({\n declarations: [AXNumberBoxPropertyEditorComponent],\n imports: [CommonModule, FormsModule, AXNumberBoxModule, AXValidationModule],\n exports: [AXNumberBoxPropertyEditorComponent],\n providers: []\n})\nexport class AXNumberBoxPropertyEditorModule {\n constructor() {\n }\n}","import { Component, ChangeDetectorRef, ViewChild, TemplateRef, ChangeDetectionStrategy, ElementRef } from '@angular/core';\nimport { AXTranslator } from '@acorex/core';\nimport { AXProperyEditorComponent } from '../../property-editor.class';\nimport { AXPopupService } from '../../../popup/popup.service';\nimport { AXValidationFormComponent } from '../../../validation/validation-form.component';\n\n\nexport interface AXRangeModel {\n title: string;\n color?: string;\n minValue: number;\n maxValue: number;\n}\n\n\n\n@Component({\n templateUrl: './range.editor.html',\n styleUrls: ['./range.editor.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AXRangePropertyEditorComponent extends AXProperyEditorComponent<AXRangeModel[]> {\n\n\n private form: AXValidationFormComponent;\n\n @ViewChild('tplEdit')\n tplEdit: TemplateRef<any>;\n\n ranges: AXRangeModel[] = [];\n\n editRow: AXRangeModel;\n\n showSeparator: boolean = true;\n decimalNumber: number = 2;\n\n constructor(protected cdr: ChangeDetectorRef, private popupService: AXPopupService) {\n super(cdr);\n }\n\n\n ngOnInit() {\n this.ranges = this.value ? JSON.parse(JSON.stringify(this.value)) : [];\n this.cdr.detectChanges();\n }\n\n\n ngAfterViewInit() {\n this.onRenderCompleted.emit();\n }\n\n // getRanges() {\n // return this.ranges.sort((a, b) => a.minValue - b.minValue);\n // }\n\n onFormInit(e) {\n this.form = e.component;\n }\n\n\n handleEditClick(item: AXRangeModel) {\n this.editRow = Object.assign({}, item);\n const popup = this.popupService.open(this.tplEdit, {\n size: 'sm',\n footerButtons: [\n {\n name: 'confirm',\n text: AXTranslator.get('common.confirm'),\n style: 'success',\n submitBehavior: true,\n cancelBehavior: false,\n onClick: () => {\n this.form.validate().then(c => {\n if (c.result) {\n super.handleValueChange(this.ranges);\n Object.assign(item, this.editRow);\n popup.close();\n this.editRow = null;\n this.cdr.detectChanges();\n }\n });\n }\n },\n {\n name: 'cancel',\n text: AXTranslator.get('common.cancel'),\n style: 'danger blank',\n submitBehavior: false,\n cancelBehavior: true,\n onClick: () => {\n popup.close();\n this.editRow = null;\n this.cdr.detectChanges();\n }\n }\n ],\n title: AXTranslator.get('common.edit')\n });\n }\n\n handleAddClick() {\n const min = this.ranges?.length ? Math.max(...this.ranges.map(c => c.maxValue)) : 0;\n this.editRow = {\n title: '',\n minValue: min,\n maxValue: min + 1,\n color: null\n };\n const popup = this.popupService.open(this.tplEdit, {\n title: AXTranslator.get('common.add-item'),\n size: 'sm',\n footerButtons: [\n {\n name: 'confirm',\n text: AXTranslator.get('common.confirm'),\n style: 'success',\n submitBehavior: true,\n cancelBehavior: false,\n onClick: () => {\n this.form.validate().then(c => {\n if (c.result) {\n super.handleValueChange(this.ranges);\n this.ranges.push(this.editRow);\n popup.close();\n this.editRow = null;\n this.cdr.detectChanges();\n }\n });\n }\n },\n {\n name: 'cancel',\n text: AXTranslator.get('common.cancel'),\n style: 'danger blank',\n submitBehavior: false,\n cancelBehavior: true,\n onClick: () => {\n popup.close();\n this.editRow = null;\n this.cdr.detectChanges();\n }\n }\n ],\n });\n this.cdr.detectChanges();\n }\n\n handleRemoveClick(item: AXRangeModel) {\n this.ranges = this.ranges.filter(c => c.minValue !== item.minValue);\n super.handleValueChange(this.ranges);\n }\n\n}\n","<div *ngFor=\"let r of ranges\" [style.border-color]=\"r.color\" class=\"range-item\" (click)=\"handleEditClick(r)\">\n <div>\n <div [style.background-color]=\"r.color\"></div>\n <div>{{r.title}}</div>\n </div>\n <div>\n <div class=\"min\" title=\"minimum {{r.minValue}}\">{{r.minValue}}</div>\n <div>\n <i class=\"far fa-long-arrow-left\"></i>\n </div>\n <div class=\"max\" title=\"maxmimum {{r.maxValue}}\">{{r.maxValue}}</div>\n <div class=\"remove-button\" (click)=\"handleRemoveClick(r)\"><i class=\"far fa-trash-alt\"></i></div>\n </div>\n</div>\n<ax-button icon=\"far fa-plus\" type=\"success outline\" (click)=\"handleAddClick()\">{{ 'common.add-item' | trans }}\n</ax-button>\n<ng-template #tplEdit>\n <ax-page>\n <ax-page-content>\n <div class=\"container\">\n <ax-validation-form (onInit)=\"onFormInit($event)\">\n <div class=\"row\">\n <div class=\"col-12\">\n <ax-label>{{ 'common.title' | trans }}</ax-label>\n <ax-text-box [(value)]=\"editRow.title\">\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n </ax-text-box>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-6\">\n <ax-label>{{ 'common.min-value' | trans }}</ax-label>\n <ax-number-box [(value)]=\"editRow.minValue\" [showSeparator]=\"showSeparator\"\n [decimalNumber]=\"decimalNumber\">\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n </ax-number-box>\n </div>\n <div class=\"col-6\">\n <ax-label>{{ 'common.max-value' | trans }}</ax-label>\n <ax-number-box [(value)]=\"editRow.maxValue\" [showSeparator]=\"showSeparator\"\n [decimalNumber]=\"decimalNumber\">\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n </ax-number-box>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-12\">\n <ax-label>{{ 'common.color' | trans }}</ax-label>\n <ax-color-picker [(value)]=\"editRow.color\">\n <ax-validation>\n <ax-validation-rule type=\"required\"></ax-validation-rule>\n </ax-validation>\n </ax-color-picker>\n </div>\n </div>\n </ax-validation-form>\n </div>\n <div class=\"ax-mrg-md\"></div>\n </ax-page-content>\n </ax-page>\n</ng-template>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXRangePropertyEditorComponent } from './range.editor';\nimport { FormsModule } from '@angular/forms';\nimport { AXTextBoxModule } from '../../../textbox/textbox.module';\nimport { AXNumberBoxModule } from '../../../number-box/number-box.module';\nimport { AXColorPickerModule } from '../../../color-picker/color-picker.module';\nimport { AXLabelModule } from '../../../label/label.module';\nimport { AXPageModule } from '../../../page/page.module';\nimport { AXButtonModule } from '../../../button/button.module';\nimport { AXTranslatorModule } from '@acorex/core';\nimport { AXValidationModule } from '../../../validation/validation.module';\n\n\n\n\n@NgModule({\n declarations: [AXRangePropertyEditorComponent],\n imports: [\n CommonModule,\n FormsModule,\n AXTranslatorModule,\n AXTextBoxModule,\n AXNumberBoxModule,\n AXColorPickerModule,\n AXLabelModule,\n AXPageModule,\n AXValidationModule,\n AXButtonModule\n ],\n exports: [AXRangePropertyEditorComponent],\n providers: []\n})\nexport class AXRangePropertyEditorModule {\n constructor() {\n }\n}","import { Component, ChangeDetectorRef, ViewChild } from '@angular/core';\nimport { AXProperyEditorComponent } from '../../property-editor.class';\nimport { AXValidation } from '../../../validation/validation.component';\nimport { AXSelectBoxComponent } from '../../../selectbox/selectbox.component';\n\n@Component({\n templateUrl: './searchbar-selectbox-editor.html'\n})\nexport class AXSearchBarSelectBoxEditorComponent extends AXProperyEditorComponent<any> {\n valueField: string = 'id';\n textField: string = 'text';\n mode: string = 'single';\n selectionDataMode: string = 'value';\n allowSearch: boolean = true;\n allowNull: boolean = true;\n disabled: boolean = false;\n items: any = [];\n remoteOperation = false;\n returnAllData: boolean = false;\n validation: AXValidation;\n\n @ViewChild(AXSelectBoxComponent, { static: false })\n selectBox: AXSelectBoxComponent;\n\n private _filter: any;\n public get filter(): any {\n return this._filter;\n }\n public set filter(v: any) {\n this._filter = v;\n if (this.value && this.initiated) {\n this.value = null;\n this.selectBox?.refresh();\n }\n }\n\n constructor(protected cdr: ChangeDetectorRef) {\n super(cdr);\n }\n\n handleValueChange(e: any) {\n super.handleValueChange(e.selectedItems);\n }\n\n ngAfterViewInit() {\n this.registerForValidationForm(this.selectBox);\n this.onRenderCompleted.emit();\n }\n\n provideData = (e): Promise<any> => {\n return new Promise((resolve) => {\n const func = () => {\n if (Array.isArray(this.items)) {\n resolve(this.items.slice());\n } else if (typeof this.items === 'function') {\n const a = Object.assign(e, { sender: this });\n resolve(this.items(a));\n } else {\n resolve([]);\n }\n };\n const intVal = setInterval(() => {\n if (this.initiated) {\n func();\n clearInterval(intVal);\n }\n }, 50);\n });\n };\n}\n","<ax-select-box [mode]=\"mode\" [textField]=\"textField\" [valueField]=\"valueField\" [remoteOperation]=\"remoteOperation\"\n [selectedItems]=\"value\" [allowSearch]=\"allowSearch\" [allowNull]=\"allowNull\" [readonly]=\"readonly\"\n [disabled]=\"disabled\" (selectionChanged)=\"handleValueChange($event)\">\n <ax-data-source [provideData]=\"provideData\">\n </ax-data-source>\n <ax-validation [rules]=\"validation?.rules\">\n </ax-validation>\n</ax-select-box>","import { Component, OnInit, ChangeDetectorRef, ViewChild } from '@angular/core';\nimport { AXProperyEditorComponent } from '../../property-editor.class';\nimport { AXValidation } from '../../../validation/validation.component';\nimport { AXSelectBoxComponent } from '../../../selectbox/selectbox.component';\n\n@Component({\n templateUrl: './selectbox.editor.html',\n})\nexport class AXSelectBoxPropertyEditorComponent extends AXProperyEditorComponent<any> {\n\n\n valueField: string = 'id';\n textField: string = 'text';\n selectionMode: string = 'single';\n selectionDataMode: string = 'value';\n allowSearch: boolean = true;\n allowNull: boolean = false;\n disabled: boolean = false;\n items: any = [];\n remoteOperation = false;\n\n validation: AXValidation;\n\n @ViewChild(AXSelectBoxComponent, { static: true })\n selectBox: AXSelectBoxComponent;\n\n\n\n private _filter: any;\n public get filter(): any {\n return this._filter;\n }\n public set filter(v: any) {\n this._filter = v;\n if (this.value && this.initiated) {\n this.value = null;\n this.selectBox?.refresh();\n }\n }\n\n\n constructor(protected cdr: ChangeDetectorRef) {\n super(cdr);\n }\n\n handleValueChange(e: any) {\n super.handleValueChange(e.selectedValues);\n }\n\n ngAfterViewInit() {\n this.registerForValidationForm(this.selectBox);\n this.onRenderCompleted.emit();\n }\n\n provideData = (e): Promise<any> => {\n return new Promise((resolve) => {\n const func = () => {\n if (Array.isArray(this.items)) {\n resolve(this.items.slice());\n }\n else if (typeof this.items === 'function') {\n const a = Object.assign(e, { sender: this })\n resolve(this.items(a));\n }\n else {\n resolve([]);\n }\n };\n const intVal = setInterval(() => {\n if (this.initiated) {\n func();\n clearInterval(intVal);\n }\n },50);\n });\n }\n}\n","<ax-select-box [mode]=\"selectionMode\" [textField]=\"textField\" [valueField]=\"valueField\" [selectedValues]=\"value\"\n [remoteOperation]=\"remoteOperation\" [allowSearch]=\"allowSearch\" [allowNull]=\"allowNull\" [readonly]=\"readonly\"\n [disabled]=\"disabled\" (selectionChanged)=\"handleValueChange($event)\">\n <ax-data-source [provideData]=\"provideData\">\n </ax-data-source>\n <ax-validation [rules]=\"validation?.rules\">\n </ax-validation>\n</ax-select-box>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { AXSelectBoxPropertyEditorComponent } from './selectbox.editor';\nimport { AXSelectBoxModule } from '../../../selectbox/selectbox.module';\nimport { AXDataSourceModule } from '../../../data-source/datasource.module';\nimport { AXValidationModule } from '../../../validation/validation.module';\nimport { AXSearchBarSelectBoxEditorComponent } from '../searchbar-selectbox-editor/searchbar-selectbox-editor';\n\n@NgModule({\n declarations: [AXSelectBoxPropertyEditorComponent, AXSearchBarSelectBoxEditorComponent],\n imports: [CommonModule, FormsModule, AXSelectBoxModule, AXDataSourceModule, AXValidationModule],\n exports: [AXSelectBoxPropertyEditorComponent],\n providers: []\n})\nexport class AXSelectBoxPropertyEditorModule {\n constructor() {}\n}\n","import { ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core';\nimport { AXSelectionListComponent } from '../../../selection-list/selection-list.component';\nimport { AXCheckBoxComponent } from '../../../checkbox/checkbox.component';\nimport { AXValidation } from '../../../validation/validation.component';\nimport { AXProperyEditorComponent } from '../../property-editor.class';\n\n@Component({\n template: `\n <ax-selection-list\n [disabled]=\"disabled\"\n [size]=\"size\"\n [readonly]=\"readonly\"\n [value]=\"value\"\n [items]=\"items\"\n [mode]=\"mode\"\n (selectedItemsChange)=\"handleValueChange($event)\"\n [direction]=\"direction\"\n [(selectedItems)]=\"selectedItems\"\n >\n <ax-validation [rules]=\"validation?.rules\"> </ax-validation>\n </ax-selection-list>\n `\n})\nexport class AXSelectionListPropertyEditorComponent extends AXProperyEditorComponent<any> {\n constructor(protected cdr: ChangeDetectorRef) {\n super(cdr);\n }\n @ViewChild(AXSelectionListComponent, { static: true })\n private selectionList: AXSelectionListComponent;\n\n disabled: boolean = false;\n indeterminate: boolean = false;\n label: string;\n readonly: boolean = false;\n size: 'sm' | 'md' | 'lg' = 'md';\n validation: AXValidation;\n items: any = [];\n mode: 'multiple' | 'single' = 'single';\n direction: 'horizontal' | 'vertical' = 'horizontal';\n textField: string = null;\n valueField: string = null;\n selectedItems: any = [];\n\n handleValueChange(e: any) {\n super.handleValueChange(e);\n }\n\n ngAfterViewInit() {\n this.registerForValidationForm(this.selectionList);\n this.onRenderCompleted.emit();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXSelectionListModule } from '../../../selection-list/selection-list.module';\nimport { AXValidationModule } from '../../../validation/validation.module';\nimport { AXSelectionListPropertyEditorComponent } from './selection-editor';\n\n@NgModule({\n declarations: [AXSelectionListPropertyEditorComponent],\n imports: [CommonModule, AXSelectionListModule, FormsModule, AXValidationModule],\n exports: [AXSelectionListPropertyEditorComponent],\n providers: [],\n})\nexport class AXSelectionPropertyEditorModule { }","import { Component, ChangeDetectorRef, ChangeDetectionStrategy, ViewEncapsulation, Output, Input, EventEmitter } from '@angular/core';\nimport { AXBaseComponent, AXBaseSizableComponent, AXBaseValueComponent, AXElementSize } from '../base/element.class';\nimport { AXValueEvent } from '../base/events.class';\n\n@Component({\n selector: 'ax-switch',\n templateUrl: './switch.component.html',\n styleUrls: ['./switch.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXSwitchComponent extends AXBaseComponent implements AXBaseSizableComponent, AXBaseValueComponent<boolean> {\n\n\n @Output()\n onValueChanged: EventEmitter<AXValueEvent<boolean>> = new EventEmitter<AXValueEvent<boolean>>();\n\n @Output()\n valueChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @Input()\n tabIndex: number = 0;\n\n private _value: boolean;\n @Input()\n public get value(): boolean {\n return this._value;\n }\n public set value(v: boolean) {\n if (this._value !== v) {\n const oldValue = this._value;\n this._value = v;\n this.valueChange.emit(v);\n this.onValueChanged.emit({\n component: this,\n oldValue,\n value: v\n });\n }\n }\n\n\n @Input()\n readonly: boolean;\n\n @Input()\n disabled: boolean;\n\n @Input()\n size: AXElementSize = 'md';\n\n constructor(protected cdr: ChangeDetectorRef) {\n super();\n }\n\n focus(): void { }\n}\n","<label class=\"ax ax-switch\" >\n <input type=\"checkbox\" [(ngModel)]=\"value\" [ngModelOptions]=\"{standalone: true}\" [attr.tabindex]=\"tabIndex\">\n <span class=\"slider round\"></span>\n</label>","import { Component, OnInit, ChangeDetectorRef, ViewChild } from '@angular/core';\nimport { AXProperyEditorComponent } from '../../property-editor.class';\n\n@Component({\n template: `\n <ax-switch (onValueChanged)=\"handleValueChange($event)\" [value]=\"value\"></ax-switch>\n `,\n})\nexport class AXSwitchPropertyEditorComponent extends AXProperyEditorComponent<boolean> {\n\n\n\n constructor(protected cdr: ChangeDetectorRef) {\n super(cdr);\n }\n\n\n handleValueChange(e: any) {\n super.handleValueChange(e.value);\n }\n\n ngAfterViewInit() {\n this.onRenderCompleted.emit();\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { AXSwitchComponent } from './switch.component';\n\n@NgModule({\n declarations: [AXSwitchComponent],\n imports: [CommonModule, FormsModule],\n exports: [AXSwitchComponent],\n providers: []\n})\nexport class AXSwitchModule {\n\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { AXNumberBoxModule } from '../../../number-box/number-box.module';\nimport { AXValidationModule } from '../../../validation/validation.module';\nimport { AXSwitchPropertyEditorComponent } from './number.editor';\nimport { AXSwitchModule } from '../../../switch/switch.module';\n\n\n\n\n@NgModule({\n declarations: [AXSwitchPropertyEditorComponent],\n imports: [CommonModule, FormsModule, AXNumberBoxModule, AXValidationModule, AXSwitchModule],\n exports: [AXSwitchPropertyEditorComponent],\n providers: []\n})\nexport class AXSwitchPropertyEditorModule {\n constructor() {\n }\n}","import { Component, ChangeDetectorRef, ViewChild } from '@angular/core';\nimport { AXTextBoxComponent } from '../../../textbox/textbox.component';\nimport { AXValidation } from '../../../validation/validation.component';\nimport { AXProperyEditorComponent } from '../../property-editor.class';\n\n@Component({\n templateUrl: './text.editor.html'\n})\nexport class AXTextPropertyEditorComponent extends AXProperyEditorComponent<string> {\n @ViewChild(AXTextBoxComponent)\n private textBox: AXTextBoxComponent;\n\n validation: AXValidation;\n clearButton: boolean = false;\n mask: any;\n maskGuid: boolean = false;\n showMask: boolean = false;\n\n constructor(protected cdr: ChangeDetectorRef) {\n super(cdr);\n }\n\n handleValueChange(e: any) {\n super.handleValueChange(e.value);\n }\n\n ngAfterViewInit() {\n this.registerForValidationForm(this.textBox);\n this.onRenderCompleted.emit();\n }\n}\n","<ax-text-box (onValueChanged)=\"handleValueChange($event)\" [value]=\"value\" [readonly]=\"readonly\"\n [allowClear]=\"clearButton\" [mask]=\"mask\" [showMask]=\"showMask\">\n <ax-validation [rules]=\"validation?.rules\">\n </ax-validation>\n</ax-text-box>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXTextPropertyEditorComponent } from './text.editor';\nimport { FormsModule } from '@angular/forms';\nimport { AXTextBoxModule } from '../../../textbox/textbox.module';\nimport { AXValidationModule } from '../../../validation/validation.module';\n\n\n\n\n@NgModule({\n declarations: [AXTextPropertyEditorComponent],\n imports: [CommonModule, FormsModule, AXTextBoxModule, AXValidationModule],\n exports: [AXTextPropertyEditorComponent],\n providers: []\n})\nexport class AXTextPropertyEditorModule {\n constructor() {\n }\n}","import { Component, ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef, ViewChild, ElementRef, Input } from '@angular/core';\nimport { AXBaseTextComponent, AXValidatableComponent } from '../base/element.class';\n\n@Component({\n selector: 'ax-text-area',\n templateUrl: './textarea.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { style:'width: 100%' },\n providers: [{ provide: AXValidatableComponent, useExisting: AXTextAreaComponent }]\n})\nexport class AXTextAreaComponent extends AXBaseTextComponent {\n constructor(protected cdr: ChangeDetectorRef, ref: ElementRef) {\n super(cdr, ref);\n }\n\n @Input()\n rows: number = 0;\n @Input()\n cols: number = 0;\n\n @Input()\n maxLength: number = null;\n}\n","<div class=\"ax form-item {{size}}\" [class.disabled]=\"disabled\" [attr.id]=\"uid\">\n <div class=\"content\">\n <div class=\"ax input {{size}}\" [class.disabled]=\"disabled\" [class.readonly]=\"readonly\">\n <textarea [name]=\"name\" [attr.maxlength]=\"maxLength\" rows=\"{{rows}}\" cols=\"{{cols}}\" #input type=\"text\"\n class=\"ax icon {{size}}\" [ngClass]=\"setTextAlign()\" placeholder=\"{{placeholder}}\" [readonly]=\"readonly\"\n [disabled]=\"disabled\" value=\"{{value}}\"></textarea>\n </div>\n </div>\n <div class=\"ax buttons\">\n <ng-content select=\"ax-button\">\n </ng-content>\n </div>\n</div>","import { Component, ChangeDetectorRef, ViewChild } from '@angular/core';\nimport { AXTextBoxComponent } from '../../../textbox/textbox.component';\nimport { AXValidation } from '../../../validation/validation.component';\nimport { AXProperyEditorComponent } from '../../property-editor.class';\n\n@Component({\n templateUrl: './textarea.editor.html',\n})\nexport class AXTextareaPropertyEditorComponent extends AXProperyEditorComponent<string> {\n\n\n @ViewChild(AXTextBoxComponent)\n private textBox: AXTextBoxComponent;\n\n\n validation: AXValidation;\n clearButton: boolean = false;\n placeholder: string = null;\n rows: number = 3;\n\n\n constructor(protected cdr: ChangeDetectorRef) {\n super(cdr);\n }\n\n\n handleValueChange(e: any) {\n super.handleValueChange(e.value);\n }\n\n\n ngAfterViewInit() {\n this.registerForValidationForm(this.textBox);\n this.onRenderCompleted.emit();\n }\n\n}\n","<ax-text-area (onValueChanged)=\"handleValueChange($event)\" [value]=\"value\" \n [readonly]=\"readonly\" \n [allowClear]=\"clearButton\"\n [placeholder]=\"placeholder\"\n [rows]=\"rows\"\n >\n <ax-validation [rules]=\"validation?.rules\">\n </ax-validation>\n</ax-text-area>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXTextAreaComponent } from './textarea.component';\n\nconst COMPONENT = [AXTextAreaComponent];\nconst MODULES = [CommonModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXTextAreaModule { }","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXTextareaPropertyEditorComponent } from './textarea.editor';\nimport { FormsModule } from '@angular/forms';\nimport { AXTextAreaModule } from '../../../textarea/textarea.module';\nimport { AXValidationModule } from '../../../validation/validation.module';\n\n\n\n\n@NgModule({\n declarations: [AXTextareaPropertyEditorComponent],\n imports: [CommonModule, FormsModule, AXTextAreaModule, AXValidationModule],\n exports: [AXTextareaPropertyEditorComponent],\n providers: []\n})\nexport class AXTextareaPropertyEditorModule {\n constructor() {\n }\n}\n","import {\n Component,\n OnInit,\n ChangeDetectorRef,\n ElementRef,\n Input,\n ViewChild,\n ChangeDetectionStrategy,\n EventEmitter,\n Output,\n ContentChild,\n} from '@angular/core';\nimport {\n AXBaseTextComponent,\n AXValidatableComponent,\n} from '../base/element.class';\nimport { _ } from 'ag-grid-community';\nimport { AXValueEvent } from '../base/events.class';\nimport { AXTranslator } from '@acorex/core';\n\nexport class AXTimePickerItemChangedEvent {\n minute?: number;\n second?: number;\n hour?: number;\n time: string;\n}\nexport class AXTimePickerChangedEvent extends AXValueEvent<AXTimePickerItemChangedEvent> { }\n\n@Component({\n selector: 'ax-time-picker',\n templateUrl: './time-picker.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { style: 'width: 100%' },\n providers: [\n { provide: AXValidatableComponent, useExisting: AXTimePickerComponent },\n ],\n})\nexport class AXTimePickerComponent\n extends AXBaseTextComponent\n implements OnInit {\n @Output()\n onValueChanged: EventEmitter<AXTimePickerChangedEvent> =\n new EventEmitter<AXTimePickerChangedEvent>();\n\n // @ViewChild('input', { static: true })\n // @ContentChild('input', { static: true })\n // input: ElementRef<HTMLInputElement>;\n\n\n\n\n @Input()\n timeType: any;\n\n @Input()\n showMask = true\n\n type: string = 'HHmm';\n @Input()\n showCurentTime: boolean = false;\n\n clearDisabled: boolean = true;\n HHmmss: any = [\n /[0-2]/,\n /[0-9]/,\n ':',\n /[0-5]/,\n /[0-9]/,\n ':',\n /[0-5]/,\n /[0-9]/,\n ];\n HHmm: any = [/[0-2]/, /[0-9]/, ':', /[0-5]/, /[0-9]/];\n HH: any = [/[0-2]/, /[0-9]/];\n hhmmss: any = [\n /[0-1]/,\n /[0-9]/,\n ':',\n /[0-5]/,\n /[0-9]/,\n ':',\n /[0-5]/,\n /[0-9]/,\n ];\n hhmm: any = [/[0-1]/, /[0-9]/, ':', /[0-5]/, /[0-9]/];\n hh: any = [/[0-1]/, /[0-9]/];\n // TODO: apply am pm from locale\n hhmmssam: any = [\n /[0-1]/,\n /[0-9]/,\n ':',\n /[0-5]/,\n /[0-9]/,\n ':',\n /[0-5]/,\n /[0-9]/,\n ' ',\n /[a|p|ق|ب]/,\n AXTranslator.get('dateTime.dayTime.m'),\n ];\n hhmmam: any = [\n /[0-1]/,\n /[0-9]/,\n ':',\n /[0-5]/,\n /[0-9]/,\n ' ',\n /[a|p|ق|ب]/,\n AXTranslator.get('dateTime.dayTime.m'),\n ];\n hham: any = [\n /[0-1]/,\n /[0-9]/,\n ' ',\n /[a|p|ق|ب]/,\n AXTranslator.get('dateTime.dayTime.m'),\n ];\n textValue: string = '';\n\n valueHam: string = '-- ' + AXTranslator.get('dateTime.dayTime.am');\n valueMam: string = '--:-- ' + AXTranslator.get('dateTime.dayTime.am');\n valueSam: string = '--:--:-- ' + AXTranslator.get('dateTime.dayTime.am');\n\n private _values: string;\n public get value(): string {\n return this._values;\n }\n public set value(v: string) {\n if (\n v === '' ||\n v == null ||\n v === '--:--:--' ||\n v === '--:--' ||\n v === '--' ||\n v === this.valueSam ||\n v === this.valueMam ||\n v === this.valueHam\n ) {\n this.clearDisabled = false;\n\n const old = this._values;\n switch (this.type) {\n case 'HHmmss':\n this.textValue = '--:--:--';\n break;\n case 'HHmm':\n this.textValue = '--:--';\n break;\n case 'HH':\n this.textValue = '--';\n break;\n case 'hhmmss':\n this.textValue = '--:--:--';\n break;\n case 'hhmm':\n this.textValue = '--:--';\n break;\n case 'hh':\n this.textValue = '--';\n break;\n case 'hhmmssam':\n this.textValue = this.valueSam;\n break;\n case 'hhmmam':\n this.textValue = this.valueMam;\n break;\n case 'hham':\n this.textValue = this.valueHam;\n break;\n }\n\n this._values = null;\n if (v !== old) {\n this.valueChange.emit(null);\n this.onValueChanged.emit({\n component: this,\n value: { hour: null, minute: null, second: null, time: null },\n oldValue: { time: old },\n htmlElement: this.ref.nativeElement,\n });\n }\n } else {\n this.clearDisabled = true;\n if (this._values && v) {\n const old = this._values;\n const ind1 = v.charAt(0);\n const ind2 = v.charAt(1);\n const ind3 = v.charAt(2);\n const ind4 = v.charAt(3);\n const ind5 = v.charAt(4);\n const ind6 = v.charAt(5);\n const ind7 = v.charAt(6);\n const ind8 = v.charAt(7);\n const ind9 = v.charAt(8);\n const ind10 = v.charAt(9);\n\n const indOld4 = old.charAt(9);\n const indOld7 = old.charAt(9);\n const indOld10 = old.charAt(9);\n\n // handle hhmmssAm\n if (\n ind1 === '-' &&\n ind2 !== '-' &&\n this.timeType.mask === this.hhmmssam\n ) {\n this.textValue =\n '0' +\n ind2 +\n ind3 +\n ind4 +\n ind5 +\n ind6 +\n ind7 +\n ind8 +\n ind9 +\n ind10 +\n AXTranslator.get('dateTime.dayTime.m');\n setTimeout(() => {\n this.setCaretPosition(this.input.nativeElement, 2);\n this.cursorPosition = 2;\n }, 0);\n }\n if (\n ind4 === '-' &&\n ind5 !== '-' &&\n this.timeType.mask === this.hhmmssam\n ) {\n this.textValue =\n ind1 +\n ind2 +\n ind3 +\n '0' +\n ind5 +\n ind6 +\n ind7 +\n ind8 +\n ind9 +\n ind10 +\n AXTranslator.get('dateTime.dayTime.m');\n setTimeout(() => {\n this.setCaretPosition(this.input.nativeElement, 5);\n this.cursorPosition = 5;\n }, 0);\n }\n if (\n ind7 === '-' &&\n ind8 !== '-' &&\n this.timeType.mask === this.hhmmssam\n ) {\n this.textValue =\n ind1 +\n ind2 +\n ind3 +\n ind4 +\n ind5 +\n ind6 +\n '0' +\n ind8 +\n ind9 +\n ind10 +\n AXTranslator.get('dateTime.dayTime.m');\n setTimeout(() => {\n this.setCaretPosition(this.input.nativeElement, 8);\n this.cursorPosition = 8;\n }, 0);\n }\n if (indOld10 === '-' && this.timeType.mask === this.hhmmssam) {\n this.textValue =\n ind1 +\n ind2 +\n ind3 +\n ind4 +\n ind5 +\n ind6 +\n ind7 +\n ind8 +\n ind9 +\n AXTranslator.get('dateTime.dayTime.am');\n }\n\n //\n if (\n ind1 === '-' &&\n ind2 !== '-' &&\n this.timeType.mask === this.hhmmam\n ) {\n this.textValue =\n '0' +\n ind2 +\n ind3 +\n ind4 +\n ind5 +\n ind6 +\n ind7 +\n AXTranslator.get('dateTime.dayTime.m');\n setTimeout(() => {\n this.setCaretPosition(this.input.nativeElement, 2);\n this.cursorPosition = 2;\n }, 0);\n }\n if (\n ind4 === '-' &&\n ind5 !== '-' &&\n this.timeType.mask === this.hhmmam\n ) {\n this.textValue =\n ind1 +\n ind2 +\n ind3 +\n '0' +\n ind5 +\n ind6 +\n ind7 +\n AXTranslator.get('dateTime.dayTime.m');\n setTimeout(() => {\n this.setCaretPosition(this.input.nativeElement, 5);\n this.cursorPosition = 5;\n }, 0);\n }\n if (indOld7 === '-' && this.timeType.mask === this.hhmmam) {\n this.textValue =\n ind1 +\n ind2 +\n ind3 +\n ind4 +\n ind5 +\n ind6 +\n AXTranslator.get('dateTime.dayTime.am');\n }\n\n //\n if (ind1 === '-' && ind2 !== '-' && this.timeType.mask === this.hham) {\n this.textValue =\n '0' + ind2 + ind3 + ind4 + AXTranslator.get('dateTime.dayTime.m');\n setTimeout(() => {\n this.setCaretPosition(this.input.nativeElement, 2);\n this.cursorPosition = 2;\n }, 0);\n }\n if (indOld4 === '-' && this.timeType.mask === this.hham) {\n this.textValue =\n ind1 + ind2 + ind3 + AXTranslator.get('dateTime.dayTime.am');\n }\n\n //\n if (\n ind1 === '-' &&\n ind2 !== '-' &&\n (this.timeType.mask === this.hhmmss ||\n this.timeType.mask === this.HHmmss)\n ) {\n this.textValue = '0' + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8;\n setTimeout(() => {\n this.setCaretPosition(this.input.nativeElement, 2);\n this.cursorPosition = 2;\n }, 0);\n }\n if (\n ind4 === '-' &&\n ind5 !== '-' &&\n (this.timeType.mask === this.hhmmss ||\n this.timeType.mask === this.HHmmss)\n ) {\n this.textValue = ind1 + ind2 + ind3 + '0' + ind5 + ind6 + ind7 + ind8;\n setTimeout(() => {\n this.setCaretPosition(this.input.nativeElement, 6);\n this.cursorPosition = 6;\n }, 0);\n }\n if (\n ind7 === '-' &&\n ind8 !== '-' &&\n (this.timeType.mask === this.hhmmss ||\n this.timeType.mask === this.HHmmss)\n ) {\n this.textValue = ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + '0' + ind8;\n setTimeout(() => {\n this.setCaretPosition(this.input.nativeElement, 9);\n this.cursorPosition = 9;\n }, 0);\n }\n\n //\n if (\n ind1 === '-' &&\n ind2 !== '-' &&\n (this.timeType.mask === this.hhmm || this.timeType.mask === this.HHmm)\n ) {\n this.textValue = '0' + ind2 + ind3 + ind4 + ind5;\n setTimeout(() => {\n this.setCaretPosition(this.input.nativeElement, 2);\n this.cursorPosition = 2;\n }, 0);\n }\n if (\n ind4 === '-' &&\n ind5 !== '-' &&\n (this.timeType.mask === this.hhmm || this.timeType.mask === this.HHmm)\n ) {\n this.textValue = ind1 + ind2 + ind3 + '0' + ind5;\n setTimeout(() => {\n this.setCaretPosition(this.input.nativeElement, 5);\n this.cursorPosition = 5;\n }, 0);\n }\n\n //\n if (\n ind1 === '-' &&\n ind2 !== '-' &&\n (this.timeType.mask === this.hh || this.timeType.mask === this.HH)\n ) {\n this.textValue = '0' + ind2;\n setTimeout(() => {\n this.setCaretPosition(this.input.nativeElement, 2);\n this.cursorPosition = 2;\n }, 0);\n }\n }\n if (v !== this._values) {\n const old = this._values;\n this.textValue = v;\n this._values = v && v.indexOf('-') === -1 ? v : null;\n if (v.indexOf('-') === -1) {\n this.valueChange.emit(v);\n this.onValueChanged.emit({\n component: this,\n value: {\n time: v,\n hour: Number(v[0] + v[1]),\n minute:\n v[3] &&\n v[3] !== AXTranslator.get('dateTime.dayTime.a') &&\n v[3] !== AXTranslator.get('dateTime.dayTime.p')\n ? Number(v[3] + v[4])\n : null,\n second:\n v[6] &&\n v[6] !== AXTranslator.get('dateTime.dayTime.a') &&\n v[6] !== AXTranslator.get('dateTime.dayTime.p')\n ? Number(v[6] + v[7])\n : null,\n },\n oldValue: { time: old },\n htmlElement: this.ref.nativeElement,\n });\n this.cdr.detectChanges();\n this.clearValidationStyle(this.input.nativeElement);\n }\n }\n }\n }\n\n cursorPosition: number = 0;\n\n constructor(protected cdr: ChangeDetectorRef, ref: ElementRef) {\n super(cdr, ref);\n\n this.timeType = 'HHmm';\n }\n clearValue() {\n this.clear();\n this.handleInputFocus();\n }\n\n ngOnInit(): void {\n switch (this.timeType) {\n case 'HHmmss':\n this.type = 'HHmmss';\n this.timeType = \"00:00:00\"\n this.textValue = this.value ? this.value : '--:--:--';\n break;\n case 'HHmm':\n this.type = 'HHmm';\n this.timeType = \"00:00\"\n this.textValue = this.value ? this.value : '--:--';\n break;\n case 'HH':\n this.type = 'HH';\n this.timeType = \"00\"\n this.textValue = this.value ? this.value : '--';\n break;\n case 'hhmmss':\n this.type = 'hhmmss';\n this.timeType = \"00:00:00\"\n this.textValue = this.value ? this.value : '--:--:--';\n break;\n case 'hhmm':\n this.type = 'hhmm';\n this.timeType = \"00:00\"\n this.textValue = this.value ? this.value : '--:--';\n break;\n case 'hh':\n this.type = 'hh';\n this.timeType = \"00\"\n this.textValue = this.value ? this.value : '--';\n break;\n case 'hhmmssam':\n this.type = 'hhmmssam';\n this.timeType = \"00:00:00aa\"\n this.textValue = this.value ? this.value : this.valueSam;\n break;\n case 'hhmmam':\n this.type = 'hhmmam';\n this.timeType = \"00:00aa\"\n this.textValue = this.value ? this.value : this.valueMam;\n\n break;\n case 'hham':\n this.type = 'hham';\n this.timeType = \"9haa\"\n\n this.textValue = this.value ? this.value : this.valueHam;\n break;\n default:\n this.type = 'HHmm';\n this.timeType = \"00:00\"\n this.textValue = this.value ? this.value : '--:--';\n break;\n }\n if (this.showCurentTime === true) {\n const hour: any =\n new Date().getHours() > 10\n ? new Date().getHours()\n : '0' + new Date().getHours();\n let amHour: any;\n\n if (new Date().getHours() > 10) {\n if (new Date().getHours() > 12) {\n if (new Date().getHours() - 12 < 10) {\n amHour = '0' + (new Date().getHours() - 12);\n } else {\n amHour = new Date().getHours();\n }\n } else {\n amHour = new Date().getHours();\n }\n } else {\n amHour = '0' + new Date().getHours();\n }\n\n const min =\n new Date().getMinutes() > 9\n ? new Date().getMinutes()\n : '0' + new Date().getMinutes();\n const sec =\n new Date().getSeconds() > 9\n ? new Date().getSeconds()\n : '0' + new Date().getSeconds();\n if (\n this.type === 'hh' ||\n this.type === 'hhmm' ||\n this.type === 'hhmmss' ||\n this.type === 'hhmmssam'\n ) {\n if (hour >= 12) {\n this.value =\n amHour +\n ':' +\n min +\n ':' +\n sec +\n ' ' +\n AXTranslator.get('dateTime.dayTime.pm');\n } else {\n this.value =\n amHour +\n ':' +\n min +\n ':' +\n sec +\n ' ' +\n AXTranslator.get('dateTime.dayTime.am');\n }\n } else if (this.type === 'hham') {\n if (hour >= 12) {\n this.value = amHour + ' ' + AXTranslator.get('dateTime.dayTime.pm');\n } else {\n this.value = amHour + ' ' + AXTranslator.get('dateTime.dayTime.am');\n }\n } else if (this.type === 'hhmmam') {\n if (hour >= 12) {\n this.value =\n amHour + ':' + min + ' ' + AXTranslator.get('dateTime.dayTime.pm');\n } else {\n this.value =\n amHour + ':' + min + ' ' + AXTranslator.get('dateTime.dayTime.am');\n }\n } else {\n this.value = hour + ':' + min + ':' + sec;\n }\n }\n }\n\n onStartfocus() {\n this.input.nativeElement.style.caretColor = 'transparent';\n setTimeout(() => {\n this.setCaretPosition(this.input.nativeElement, 0);\n this.cursorPosition = 0;\n this.input.nativeElement.style.caretColor = 'auto';\n }, 0);\n }\n\n handleInputFocus() {\n this.onStartfocus();\n this.input.nativeElement.focus();\n }\n handleInputBlur(e) {\n if (this.textValue.indexOf('-') !== -1) {\n switch (this.type) {\n case 'HHmmss':\n this.textValue = '--:--:--';\n break;\n case 'HHmm':\n this.textValue = '--:--';\n break;\n case 'HH':\n this.textValue = '--';\n break;\n case 'hhmmss':\n this.textValue = '--:--:--';\n break;\n case 'hhmm':\n this.textValue = '--:--';\n break;\n case 'hh':\n this.textValue = '--';\n break;\n case 'hhmmssam':\n this.textValue = this.valueSam;\n break;\n case 'hhmmam':\n this.textValue = this.valueMam;\n break;\n case 'hham':\n this.textValue = this.valueHam;\n break;\n }\n }\n }\n\n handleKeyPress(event: any) {\n const inputChar = String.fromCharCode(event.charCode);\n const firstChar = this.textValue.charAt(0);\n const secondChar = this.textValue.charAt(1);\n\n setTimeout(() => {\n if (\n this.input.nativeElement.selectionStart ||\n this.input.nativeElement.selectionStart === 0\n ) {\n this.cursorPosition = this.input.nativeElement.selectionStart;\n // this.cursorPosition += 1 ;\n }\n }, 0);\n\n if (firstChar === '2') {\n if (\n secondChar === '' ||\n this.textValue.charAt(1) >= '4' ||\n this.cursorPosition < 3\n ) {\n if (inputChar >= '4') {\n event.preventDefault();\n }\n }\n }\n if (\n this.timeType.mask === this.hhmmss ||\n this.timeType.mask === this.hhmm ||\n this.timeType.mask === this.hh ||\n this.timeType.mask === this.hhmmssam ||\n this.timeType.mask === this.hhmmam ||\n this.timeType.mask === this.hham\n ) {\n if (firstChar === '1') {\n if (\n secondChar === '' ||\n this.textValue.charAt(1) >= '3' ||\n this.cursorPosition < 3\n ) {\n if (inputChar >= '3') {\n event.preventDefault();\n }\n }\n }\n }\n if (inputChar === '-') {\n event.preventDefault();\n }\n }\n\n handleKeyUp(event: KeyboardEvent) {\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n this.input.nativeElement.style.caretColor = 'auto';\n event.preventDefault();\n event.stopPropagation();\n }\n // up & down button\n if (event.key === 'ArrowUp') {\n this.setCaret();\n }\n if (event.key === 'ArrowDown') {\n this.setCaret();\n }\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n event.preventDefault();\n return false;\n }\n\n // left & right Button\n if (event.key === 'ArrowLeft' || event.key === 'ArrowRight') {\n if (\n this.input.nativeElement.selectionStart ||\n this.input.nativeElement.selectionStart === 0\n ) {\n this.cursorPosition = this.input.nativeElement.selectionStart;\n }\n }\n\n // home button\n if (event.key === 'Home') {\n this.cursorPosition = 0;\n }\n\n // end button\n if (event.key === 'End') {\n if (\n this.timeType.mask === this.hhmmssam ||\n this.timeType.mask === this.hhmmam ||\n this.timeType.mask === this.hham\n ) {\n if (this.timeType.mask === this.hhmmssam) {\n this.cursorPosition = 9;\n setTimeout(() => {\n this.setCaretPosition(\n this.input.nativeElement,\n this.cursorPosition\n );\n this.input.nativeElement.style.caretColor = 'auto';\n }, 0);\n }\n if (this.timeType.mask === this.hhmmam) {\n this.cursorPosition = 6;\n setTimeout(() => {\n this.setCaretPosition(\n this.input.nativeElement,\n this.cursorPosition\n );\n this.input.nativeElement.style.caretColor = 'auto';\n }, 0);\n }\n if (this.timeType.mask === this.hham) {\n this.cursorPosition = 3;\n setTimeout(() => {\n this.setCaretPosition(\n this.input.nativeElement,\n this.cursorPosition\n );\n this.input.nativeElement.style.caretColor = 'auto';\n }, 0);\n }\n } else {\n this.cursorPosition = this.textValue.length;\n }\n }\n\n // backspace Control\n if (event.key === 'Backspace') {\n const ind1 = this.textValue.charAt(0);\n const ind2 = this.textValue.charAt(1);\n const ind3 = this.textValue.charAt(2);\n const ind4 = this.textValue.charAt(3);\n const ind5 = this.textValue.charAt(4);\n const ind6 = this.textValue.charAt(5);\n const ind7 = this.textValue.charAt(6);\n const ind8 = this.textValue.charAt(7);\n const ind9 = this.textValue.charAt(8);\n const ind10 = this.textValue.charAt(9);\n if (this.timeType.mask === this.hhmmssam) {\n if (ind10 === '-') {\n this.textValue =\n ind1 +\n ind2 +\n ind3 +\n ind4 +\n ind5 +\n ind6 +\n ind7 +\n ind8 +\n ind9 +\n AXTranslator.get('dateTime.dayTime.am');\n setTimeout(() => {\n this.setCaretPosition(this.input.nativeElement, 0);\n this.cursorPosition = 0;\n }, 0);\n }\n }\n if (this.timeType.mask === this.hhmmam) {\n if (ind7 === '-') {\n this.textValue =\n ind1 +\n ind2 +\n ind3 +\n ind4 +\n ind5 +\n ind6 +\n AXTranslator.get('dateTime.dayTime.am');\n setTimeout(() => {\n this.setCaretPosition(this.input.nativeElement, 0);\n this.cursorPosition = 0;\n }, 0);\n }\n }\n if (this.timeType.mask === this.hham) {\n if (ind4 === '-') {\n this.textValue =\n ind1 + ind2 + ind3 + AXTranslator.get('dateTime.dayTime.am');\n setTimeout(() => {\n this.setCaretPosition(this.input.nativeElement, 0);\n this.cursorPosition = 0;\n }, 0);\n }\n }\n\n if (this.textValue.length <= 0) {\n this.cursorPosition = 0;\n } else {\n this.cursorPosition -= 1;\n }\n }\n }\n\n handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'End') {\n if (\n this.timeType.mask === this.hhmmssam ||\n this.timeType.mask === this.hhmmam ||\n this.timeType.mask === this.hham\n ) {\n this.input.nativeElement.style.caretColor = 'transparent';\n } else {\n this.input.nativeElement.style.caretColor = 'auto';\n }\n }\n\n let newValue = this.textValue;\n\n const ind1 = newValue.charAt(0);\n const ind2 = newValue.charAt(1);\n const ind3 = this.textValue.charAt(2);\n const ind4 = this.textValue.charAt(3);\n const ind5 = this.textValue.charAt(4);\n const ind6 = this.textValue.charAt(5);\n const ind7 = this.textValue.charAt(6);\n const ind8 = this.textValue.charAt(7);\n const ind9 = this.textValue.charAt(8);\n const ind10 = this.textValue.charAt(9);\n const ind11 = this.textValue.charAt(10);\n\n // up key\n if (event.key === 'ArrowUp') {\n // hour\n if (this.cursorPosition <= 2) {\n const hourind = ind1 + ind2;\n const newHour = +hourind + 1;\n newValue = newHour.toString();\n if (\n this.timeType.mask === this.hhmmss ||\n this.timeType.mask === this.hhmm ||\n this.timeType.mask === this.hh ||\n this.timeType.mask === this.hhmmssam ||\n this.timeType.mask === this.hhmmam ||\n this.timeType.mask === this.hham\n ) {\n if (hourind === '--') {\n newValue = '0';\n }\n if (ind1 !== '-' && hourind === ind1 + '-') {\n newValue = '0';\n }\n if (ind2 !== '-' && hourind === '-' + ind2) {\n newValue = '0';\n }\n if (+newValue > 12) {\n newValue = '01';\n } else if (+newValue < 10) {\n newValue = '0' + newValue;\n }\n } else {\n if (hourind === '--') {\n newValue = '0';\n }\n if (ind1 !== '-' && hourind === ind1 + '-') {\n newValue = '0';\n }\n if (ind2 !== '-' && hourind === '-' + ind2) {\n newValue = '0';\n }\n if (+newValue > 23) {\n newValue = '00';\n } else if (+newValue < 10) {\n newValue = '0' + newValue;\n }\n }\n const afterHourind =\n ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9 + ind10 + ind11;\n const hour = newValue.toString() + afterHourind;\n this.textValue = hour;\n }\n // minute\n if (this.cursorPosition >= 3 && this.cursorPosition <= 5) {\n const hourind = ind4 + ind5;\n const newHour = +hourind + 1;\n\n newValue = newHour.toString();\n if (hourind === '--') {\n newValue = '0';\n }\n if (ind4 !== '-' && hourind === ind4 + '-') {\n newValue = '0';\n }\n if (ind5 !== '-' && hourind === '-' + ind5) {\n newValue = '0';\n }\n if (+newValue > 59) {\n newValue = '00';\n } else if (+newValue < 10) {\n newValue = '0' + newValue;\n }\n const beforeHourind = ind1 + ind2 + ind3;\n const afterHourind = ind6 + ind7 + ind8 + ind9 + ind10 + ind11;\n const minute = beforeHourind + newValue.toString() + afterHourind;\n this.textValue = minute;\n }\n\n // second\n if (this.cursorPosition >= 6 && this.cursorPosition <= 8) {\n const secondind = ind7 + ind8;\n const newSecond = +secondind + 1;\n\n newValue = newSecond.toString();\n if (secondind === '--') {\n newValue = '0';\n }\n if (ind7 !== '-' && secondind === ind7 + '-') {\n newValue = '0';\n }\n if (ind8 !== '-' && secondind === '-' + ind8) {\n newValue = '0';\n }\n if (+newValue > 59) {\n newValue = '00';\n } else if (+newValue < 10) {\n newValue = '0' + newValue;\n }\n const beforeHourind = ind1 + ind2 + ind3 + ind4 + ind5 + ind6;\n const afterHourind = ind9 + ind10 + ind11;\n const second = beforeHourind + newValue.toString() + afterHourind;\n this.textValue = second;\n }\n\n // type am/PM\n if (this.timeType.mask === this.hhmmssam) {\n if (this.cursorPosition > 8) {\n let typeind = ind10.toString();\n\n const beforeHourind =\n ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9;\n const afterHourind = ind11;\n\n if (ind10 === AXTranslator.get('dateTime.dayTime.p')) {\n typeind = AXTranslator.get('dateTime.dayTime.a');\n } else if (ind10 === AXTranslator.get('dateTime.dayTime.a')) {\n typeind = AXTranslator.get('dateTime.dayTime.p');\n }\n this.textValue = beforeHourind + typeind + afterHourind;\n }\n }\n if (this.timeType.mask === this.hhmmam) {\n if (this.cursorPosition >= 6) {\n let typeind = ind7.toString();\n\n const beforeHourind = ind1 + ind2 + ind3 + ind4 + ind5 + ind6;\n const afterHourind = ind8;\n\n if (ind7 === AXTranslator.get('dateTime.dayTime.p')) {\n typeind = AXTranslator.get('dateTime.dayTime.a');\n } else if (ind7 === AXTranslator.get('dateTime.dayTime.a')) {\n typeind = AXTranslator.get('dateTime.dayTime.p');\n }\n this.textValue = beforeHourind + typeind + afterHourind;\n }\n }\n if (this.timeType.mask === this.hham) {\n if (this.cursorPosition >= 3) {\n let typeind2 = ind4.toString();\n\n const beforeHourind = ind1 + ind2 + ind3;\n const afterHourind = ind5;\n\n if (ind4 === AXTranslator.get('dateTime.dayTime.p')) {\n typeind2 = AXTranslator.get('dateTime.dayTime.a');\n } else if (ind4 === AXTranslator.get('dateTime.dayTime.a')) {\n typeind2 = AXTranslator.get('dateTime.dayTime.p');\n }\n this.textValue = beforeHourind + typeind2 + afterHourind;\n }\n }\n }\n\n // key down\n if (event.key === 'ArrowDown') {\n // hour\n if (this.cursorPosition <= 2) {\n const hourind = ind1 + ind2;\n const newHour = +hourind - 1;\n\n newValue = newHour.toString();\n if (\n this.timeType.mask === this.hhmmss ||\n this.timeType.mask === this.hhmm ||\n this.timeType.mask === this.hh ||\n this.timeType.mask === this.hhmmssam ||\n this.timeType.mask === this.hhmmam ||\n this.timeType.mask === this.hham\n ) {\n if (hourind === '--') {\n newValue = '0';\n }\n if (ind1 !== '-' && hourind === ind1 + '-') {\n newValue = '0';\n }\n if (ind2 !== '-' && hourind === '-' + ind2) {\n newValue = '0';\n }\n if (+newValue < 1) {\n newValue = '12';\n } else if (+newValue < 10) {\n newValue = '0' + newValue;\n }\n } else {\n if (hourind === '--') {\n newValue = '0';\n }\n if (ind1 !== '-' && hourind === ind1 + '-') {\n newValue = '0';\n }\n if (ind2 !== '-' && hourind === '-' + ind2) {\n newValue = '0';\n }\n if (+newValue < 0) {\n newValue = '23';\n } else if (+newValue < 10) {\n newValue = '0' + newValue;\n }\n }\n const afterHourIndex =\n ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9 + ind10 + ind11;\n const hour = newValue.toString() + afterHourIndex;\n this.textValue = hour;\n }\n // minute\n if (this.cursorPosition >= 3 && this.cursorPosition <= 5) {\n const minuteind = ind4 + ind5;\n const newMinute = +minuteind - 1;\n\n newValue = newMinute.toString();\n if (minuteind === '--') {\n newValue = '0';\n }\n if (ind4 !== '-' && minuteind === ind4 + '-') {\n newValue = '0';\n }\n if (ind5 !== '-' && minuteind === '-' + ind5) {\n newValue = '0';\n }\n if (minuteind === '--') {\n newValue = '0';\n }\n if (+newValue < 0) {\n newValue = '59';\n } else if (+newValue < 10) {\n newValue = '0' + newValue;\n }\n const beforeMinuteIndex = ind1 + ind2 + ind3;\n const afterMinuteIndex = ind6 + ind7 + ind8 + ind9 + ind10 + ind11;\n const minute =\n beforeMinuteIndex + newValue.toString() + afterMinuteIndex;\n this.textValue = minute;\n }\n\n // second\n if (this.cursorPosition >= 6 && this.cursorPosition <= 8) {\n const secondIndex = ind7 + ind8;\n const newSecond = +secondIndex - 1;\n\n newValue = newSecond.toString();\n if (secondIndex === '--') {\n newValue = '0';\n }\n if (ind7 !== '-' && secondIndex === ind7 + '-') {\n newValue = '0';\n }\n if (ind8 !== '-' && secondIndex === '-' + ind8) {\n newValue = '0';\n }\n if (secondIndex === '--') {\n newValue = '0';\n }\n if (+newValue < 0) {\n newValue = '59';\n } else if (+newValue < 10) {\n newValue = '0' + newValue;\n }\n const beforesecondIndex = ind1 + ind2 + ind3 + ind4 + ind5 + ind6;\n const aftersecondIndex = ind9 + ind10 + ind11;\n const second =\n beforesecondIndex + newValue.toString() + aftersecondIndex;\n this.textValue = second;\n }\n\n // type\n if (this.timeType.mask === this.hhmmssam) {\n if (this.cursorPosition > 8) {\n let typeind = ind10.toString();\n\n const beforeHourind =\n ind1 + ind2 + ind3 + ind4 + ind5 + ind6 + ind7 + ind8 + ind9;\n const afterHourind = ind11;\n\n if (ind10 === AXTranslator.get('dateTime.dayTime.p')) {\n typeind = AXTranslator.get('dateTime.dayTime.a');\n } else if (ind10 === AXTranslator.get('dateTime.dayTime.a')) {\n typeind = AXTranslator.get('dateTime.dayTime.p');\n }\n this.textValue = beforeHourind + typeind + afterHourind;\n }\n }\n if (this.timeType.mask === this.hhmmam) {\n if (this.cursorPosition >= 6) {\n let typeind = ind7.toString();\n\n const beforeHourind = ind1 + ind2 + ind3 + ind4 + ind5 + ind6;\n const afterHourind = ind8;\n\n if (ind7 === AXTranslator.get('dateTime.dayTime.p')) {\n typeind = AXTranslator.get('dateTime.dayTime.a');\n } else if (ind7 === AXTranslator.get('dateTime.dayTime.a')) {\n typeind = AXTranslator.get('dateTime.dayTime.p');\n }\n this.textValue = beforeHourind + typeind + afterHourind;\n }\n }\n if (this.timeType.mask === this.hham) {\n if (this.cursorPosition >= 3) {\n let typeind2 = ind4.toString();\n\n const beforeHourind = ind1 + ind2 + ind3;\n const afterHourind = ind5;\n //TO DO this is wrong check index\n if (ind4 === AXTranslator.get('dateTime.dayTime.p')) {\n typeind2 = AXTranslator.get('dateTime.dayTime.a');\n } else if (ind4 === AXTranslator.get('dateTime.dayTime.a')) {\n typeind2 = AXTranslator.get('dateTime.dayTime.p');\n }\n this.textValue = beforeHourind + typeind2 + afterHourind;\n }\n }\n }\n\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n this.input.nativeElement.style.caretColor = 'transparent';\n event.preventDefault();\n event.stopPropagation();\n return false;\n }\n if (event.key === 'Delete') {\n event.preventDefault();\n }\n }\n\n handleClick(event: KeyboardEvent) {\n if (\n this.input.nativeElement.selectionStart ||\n this.input.nativeElement.selectionStart === 0\n ) {\n this.cursorPosition = this.input.nativeElement.selectionStart;\n }\n }\n\n doGetCaretPosition(ctrl) {\n let CaretPos = 0;\n if (ctrl.selectionStart || ctrl.selectionStart === 0) {\n CaretPos = ctrl.selectionStart;\n return CaretPos;\n }\n }\n\n setCaretPosition(ctrl, pos) {\n if (ctrl.setSelectionRange) {\n ctrl.focus();\n ctrl.setSelectionRange(pos, pos);\n } else if (ctrl.createTextRange) {\n const range = ctrl.createTextRange();\n range.collapse(true);\n range.moveEnd('character', pos);\n range.moveStart('character', pos);\n range.select();\n }\n }\n\n setCaret() {\n this.setCaretPosition(this.input.nativeElement, this.cursorPosition);\n }\n}\n","<div class=\"ax form-item\" [class.disabled]=\"disabled\" [attr.id]=\"uid\" #fc>\n <div class=\"ax items-wrapper\">\n <ng-content select=\"[start]\"> </ng-content>\n <i class=\"form-item-icon {{ icon }}\" *ngIf=\"icon\"></i>\n </div>\n <div class=\"content\" #content>\n <div class=\"ax form-control input {{ size }}\" [class.disabled]=\"disabled\" [class.readonly]=\"readonly\"\n [class.icon]=\"icon\">\n <input #input type=\"text\" class=\"ax {{ size }}\" [mask]=\"timeType\" [showMaskTyped]=\"showMask\"\n [(ngModel)]=\"textValue\" placeholder=\"{{ placeholder }}\" [readonly]=\"readonly\" [disabled]=\"disabled\"\n [ngClass]=\"setTextAlign()\" [class.clear]=\"value && allowClear\" (focus)=\"handleInputFocus()\"\n (blur)=\"handleInputBlur($event)\" (keypress)=\"handleKeyPress($event)\" (keyup)=\"handleKeyUp($event)\"\n (keydown)=\"handleKeyDown($event)\" (click)=\"handleClick($event)\" />\n </div>\n </div>\n <div class=\"ax items-wrapper\">\n <ax-button *ngIf=\"value && allowClear\" icon=\"far fa-times\" type=\"danger blank\" (click)=\"clear()\"\n [disabled]=\"disabled\" [tabIndex]=\"-1\"></ax-button>\n <ng-content select=\"[end]\"> </ng-content>\n </div>\n</div>\n<!-- [textMask]=\"{mask: mask , showMask:showMask , guid: maskGuid , keepCharPositions: maskKeepCharPositions}\" -->\n<!-- <input #input id=\"timePickerValue\" [textMask]=\"timeType\" type=\"text\" [(ngModel)]=\"value\" (keypress)='handleKeyPress($event)'\n (keyup)=\"handleKeyUp($event)\" (keydown)=\"handleKeyDown($event)\" (click)=\"handleClick($event)\"> -->","import { Component, OnInit, ChangeDetectorRef, ViewChild } from '@angular/core';\nimport { AXDatePickerComponent } from '../../../date-picker/date-picker.component';\nimport { AXValidation } from '../../../validation/validation.component';\nimport { AXProperyEditorComponent } from '../../property-editor.class';\n\n@Component({\n template: `\n <ax-time-picker [showCurentTime]=\"showCurentTime\" [timeType]=\"timeType\" [allowClear]=\"clearButton\" (onValueChanged)=\"handleValueChange($event)\">\n <ax-validation [rules]=\"validation?.rules\">\n </ax-validation>\n </ax-time-picker>\n `,\n})\nexport class AXTimePropertyEditorComponent extends AXProperyEditorComponent<String> {\n\n\n timeType: any;\n validation: AXValidation;\n showCurentTime: boolean = false;\n clearButton: boolean = false;\n\n @ViewChild(AXDatePickerComponent)\n private time: AXDatePickerComponent;\n\n constructor(protected cdr: ChangeDetectorRef) {\n super(cdr);\n }\n\n handleValueChange(e: any) {\n super.handleValueChange(e.value?.time);\n }\n\n ngAfterViewInit() {\n this.registerForValidationForm(this.time);\n this.onRenderCompleted.emit();\n }\n\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { NgxMaskDirective, NgxMaskPipe, provideNgxMask } from 'ngx-mask';\nimport { AXButtonModule } from '../button/button.module';\nimport { AXTimePickerComponent } from './time-picker.component';\n\n@NgModule({\n declarations: [AXTimePickerComponent],\n imports: [\n CommonModule,\n FormsModule,\n AXButtonModule,\n NgxMaskDirective,\n NgxMaskPipe,\n ],\n exports: [AXTimePickerComponent],\n providers: [provideNgxMask()],\n})\nexport class AXTimePickerModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { AXValidationModule } from '../../../validation/validation.module';\nimport { AXTimePickerModule } from '../../../time-picker/time-picker.module';\nimport { AXTimePropertyEditorComponent } from './time.editor';\n\n\n\n\n@NgModule({\n declarations: [AXTimePropertyEditorComponent],\n imports: [CommonModule, FormsModule, AXTimePickerModule, AXValidationModule],\n exports: [AXTimePropertyEditorComponent],\n providers: []\n})\nexport class AXTimePropertyEditorModule {\n constructor() {\n }\n}","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { AXCheckBoxPropertyEditorComponent } from './editors/check-editor/check-editor';\nimport { AXCheckPropertyEditorModule } from './editors/check-editor/check.module';\nimport { AXColorPropertyEditorComponent } from './editors/color-editor/color.editor';\nimport { AXColorPropertyEditorModule } from './editors/color-editor/color.module';\nimport { ColumnPropertyEditorComponent } from './editors/column-editor/column.editor';\nimport { AXColumnPropertyEditorModule } from './editors/column-editor/column.module';\nimport { AXConditionalColorPropertyEditorComponent } from './editors/conditional-color-editor/conditional-color.editor';\nimport { AXConditionalColorPropertyEditorModule } from './editors/conditional-color-editor/conditional-color.module';\nimport { AXDatePropertyEditorComponent } from './editors/date-editor/date.editor';\nimport { AXDatePropertyEditorModule } from './editors/date-editor/date.module';\nimport { AXNumberBoxPropertyEditorComponent } from './editors/number-editor/number.editor';\nimport { AXNumberBoxPropertyEditorModule } from './editors/number-editor/number.module';\nimport { AXRangePropertyEditorComponent } from './editors/range-editor/range.editor';\nimport { AXRangePropertyEditorModule } from './editors/range-editor/range.module';\nimport { AXSearchBarSelectBoxEditorComponent } from './editors/searchbar-selectbox-editor/searchbar-selectbox-editor';\nimport { AXSelectBoxPropertyEditorComponent } from './editors/selectbox-editor/selectbox.editor';\nimport { AXSelectBoxPropertyEditorModule } from './editors/selectbox-editor/selectbox.module';\nimport { AXSelectionListPropertyEditorComponent } from './editors/selection-editor/selection-editor';\nimport { AXSelectionPropertyEditorModule } from './editors/selection-editor/selection.module';\nimport { AXSwitchPropertyEditorComponent } from './editors/switch-editor/number.editor';\nimport { AXSwitchPropertyEditorModule } from './editors/switch-editor/number.module';\nimport { AXTextPropertyEditorComponent } from './editors/text-editor/text.editor';\nimport { AXTextPropertyEditorModule } from './editors/text-editor/text.module';\nimport { AXTextareaPropertyEditorComponent } from './editors/textarea-editor/textarea.editor';\nimport { AXTextareaPropertyEditorModule } from './editors/textarea-editor/textarea.module';\nimport { AXTimePropertyEditorComponent } from './editors/time-editor/time.editor';\nimport { AXTimePropertyEditorModule } from './editors/time-editor/time.module';\nimport { AXPropertyEditorRendererDirective } from './property-editor-renderer.directive';\n\nconst WDIGET_MODULES = [\n AXNumberBoxPropertyEditorModule,\n AXTextPropertyEditorModule,\n AXSelectBoxPropertyEditorModule,\n AXRangePropertyEditorModule,\n AXColorPropertyEditorModule,\n AXConditionalColorPropertyEditorModule,\n AXColumnPropertyEditorModule,\n AXSwitchPropertyEditorModule,\n AXDatePropertyEditorModule,\n AXTimePropertyEditorModule,\n AXTimePropertyEditorModule,\n AXTextareaPropertyEditorModule,\n AXCheckPropertyEditorModule,\n AXSelectionPropertyEditorModule\n];\n\n@NgModule({\n imports: [\n WDIGET_MODULES,\n RouterModule.forChild([\n {\n path: 'ax/editors/selection',\n component: AXSelectionListPropertyEditorComponent\n },\n {\n component: AXCheckBoxPropertyEditorComponent,\n path: 'ax/editors/check'\n },\n {\n component: AXTextPropertyEditorComponent,\n path: 'ax/editors/text'\n },\n {\n component: AXTextareaPropertyEditorComponent,\n path: 'ax/editors/textarea'\n },\n {\n component: AXSelectBoxPropertyEditorComponent,\n path: 'ax/editors/select'\n },\n {\n component: AXSearchBarSelectBoxEditorComponent,\n path: 'ax/editors/selectBox'\n },\n {\n component: AXNumberBoxPropertyEditorComponent,\n path: 'ax/editors/number'\n },\n {\n component: AXRangePropertyEditorComponent,\n path: 'ax/editors/range'\n },\n {\n component: AXConditionalColorPropertyEditorComponent,\n path: 'ax/editors/conditional-color'\n },\n {\n component: AXColorPropertyEditorComponent,\n path: 'ax/editors/color'\n },\n {\n component: AXSwitchPropertyEditorComponent,\n path: 'ax/editors/switch'\n },\n {\n component: ColumnPropertyEditorComponent,\n path: 'ax/editors/column'\n },\n {\n component: AXDatePropertyEditorComponent,\n path: 'ax/editors/date'\n },\n {\n component: AXTimePropertyEditorComponent,\n path: 'ax/editors/time'\n }\n ])\n ],\n exports: [AXPropertyEditorRendererDirective],\n declarations: [AXPropertyEditorRendererDirective],\n providers: []\n})\nexport class AXProppertyEditorModule {}\n","import { AXTranslatorModule } from '@acorex/core';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXButtonModule } from '../button/button.module';\nimport { AXDropdownModule } from '../dropdown/dropdown.module';\nimport { AXFormGroupModule } from '../form-group/form-group.module';\nimport { AXLabelModule } from '../label/label.module';\nimport { AXPopoverModule } from '../popover/popover.module';\nimport { AXProppertyEditorModule } from '../property-editor/property-editor.module';\nimport { AXTextBoxModule } from '../textbox/textbox.module';\nimport { AXValidationModule } from '../validation/validation.module';\nimport { AXSearchBarComponent } from './search-bar.component';\n\n@NgModule({\n declarations: [AXSearchBarComponent],\n imports: [\n CommonModule,\n FormsModule,\n AXDropdownModule,\n AXButtonModule,\n AXTextBoxModule,\n AXProppertyEditorModule,\n AXFormGroupModule,\n AXLabelModule,\n AXTranslatorModule,\n AXValidationModule,\n AXPopoverModule\n ],\n exports: [AXSearchBarComponent],\n providers: []\n})\nexport class AXSearchBarModule {}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AXHtmlUtil } from '@acorex/core';\nimport { AXPageClosing, AXPageResult, TAB_META_KEY, AXPageClosedPromise } from '../base/base-page.class';\nimport * as _ from 'lodash';\n\n\nexport interface AXTabPage {\n title: string;\n content: any;\n closable?: boolean;\n data?: any;\n pinned?: boolean;\n}\n\n\n\n@Injectable({ providedIn: 'root' })\nexport class AXTabPageService {\n\n\n\n tabs: AXTabPage[] = new Array<AXTabPage>();\n opened = new Subject<AXTabPage>();\n activated = new Subject<AXTabPage>();\n closed = new Subject<AXTabPage>();\n changed = new Subject();\n\n\n\n constructor() { }\n\n open(content: any, title: string): AXPageClosedPromise;\n open(content: any, title: string, data?: any): AXPageClosedPromise;\n open(options: AXTabPage): AXPageClosedPromise;\n\n open(arg1, arg2?, arg3?) {\n let newTab: AXTabPage;\n if (typeof arg1 === 'object') {\n const options = Object.assign({ closable: true }, arg1);\n newTab = {\n title: options.title,\n closable: options.closable,\n content: options.content,\n data: options.data,\n pinned: options.pinned\n };\n } else {\n newTab = {\n title: arg2,\n closable: true,\n content: arg1,\n data: arg3,\n };\n }\n newTab[TAB_META_KEY] = {};\n newTab[TAB_META_KEY].uid = AXHtmlUtil.getUID();\n if (newTab?.data) {\n newTab[TAB_META_KEY].oldData = _.cloneDeep(newTab.data);\n }\n //\n const existTab = this.tabs.find((c) => newTab[TAB_META_KEY].uid && c[TAB_META_KEY].uid === newTab[TAB_META_KEY].uid) ||\n this.findExistTab(newTab.content, newTab.data);\n //\n if (existTab) {\n return Promise.resolve(this.active(existTab));\n }\n this.tabs.push(newTab);\n this.tabs\n .filter((c) => c[TAB_META_KEY].uid !== newTab[TAB_META_KEY].uid)\n .forEach((t) => {\n t[TAB_META_KEY].active = false;\n });\n this.opened.next(newTab);\n this.active(newTab);\n const promise = new AXPageClosedPromise((resolve) => {\n newTab[TAB_META_KEY].close = (e) => {\n if (resolve) {\n delete e.cancel;\n resolve(e);\n }\n };\n });\n promise['closeMethod'] = () => { this.close(newTab); };\n return promise;\n }\n\n close(tab: AXTabPage) {\n const e = { cancel: false };\n const closingFunc = tab[TAB_META_KEY].component?.onClosing;\n if (closingFunc) {\n const res = closingFunc(e);\n if (res instanceof Promise) {\n res.then(() => {\n if (e == null || e.cancel !== true) {\n this.doCloseAction(tab, e);\n }\n });\n }\n else {\n if (e == null || e.cancel !== true) {\n this.doCloseAction(tab, e);\n }\n }\n } else {\n this.doCloseAction(tab, e);\n }\n }\n\n private doCloseAction(tab: AXTabPage, e: AXPageClosing): void {\n const currentTab = this.tabs.find((c) => c[TAB_META_KEY].uid == tab[TAB_META_KEY].uid);\n if (!currentTab) {\n return;\n }\n const index = this.tabs.indexOf(currentTab);\n this.tabs = this.tabs.filter(c => c != currentTab);\n const prev = index > 0 ? this.tabs[index - 1] : this.tabs[0];\n if (prev) {\n this.active(prev);\n }\n this.closed.next(currentTab);\n this.changed.next(null);\n if (currentTab[TAB_META_KEY].close) {\n currentTab[TAB_META_KEY].close(e);\n }\n }\n\n active(tab: AXTabPage): AXPageResult;\n active(uid: string): AXPageResult;\n active(): AXPageResult;\n active(arg1?): AXPageResult {\n if (!arg1) {\n return {\n sender: this.tabs.find((c) => c[TAB_META_KEY].active === true)\n }\n }\n if (typeof arg1 === 'object') {\n const tab = <AXTabPage>arg1;\n tab[TAB_META_KEY].active = true;\n this.tabs\n .filter((c) => c[TAB_META_KEY].uid !== tab[TAB_META_KEY].uid)\n .forEach((t) => {\n t[TAB_META_KEY].active = false;\n });\n this.activated.next(tab);\n this.changed.next(null);\n return {\n sender: tab\n }\n } else if (typeof arg1 === 'string') {\n const tab = this.tabs.find((c) => c[TAB_META_KEY].uid === arg1);\n if (tab) {\n return this.active(tab);\n }\n return null;\n }\n }\n\n clear(): void {\n this.tabs.forEach((c) => {\n this.close(c);\n });\n this.tabs = [];\n }\n\n private findExistTab(component: any, data: any): AXTabPage {\n try {\n if (!data) {\n data = {};\n }\n const result = this.tabs.find((c: any) =>\n c.content === component &&\n ((!c.data) ||\n JSON.parse(JSON.stringify(data)) === JSON.parse(JSON.stringify(c.data)) || JSON.stringify(data) === JSON.stringify(c[TAB_META_KEY].oldData))\n );\n return result;\n } catch (error) {\n return null;\n }\n }\n}\n","import { Component, OnInit, ViewChild, ViewContainerRef, ElementRef, ComponentRef, ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core';\nimport { AXTabPage, AXTabPageService } from './tab-page.service';\nimport { AXRenderService } from '@acorex/core';\nimport { AXBasePageComponent, AXPageCloseEvent, TAB_META_KEY } from '../base/base-page.class';\nimport { AXLoadingService } from '../loading/loading.service';\n\n@Component({\n selector: 'ax-tab-page-host',\n template: `\n <div class='ax-loading-host'>\n <div class='ax-tab-page-host' >\n <div [hidden]=\"isLoading\" style=\"height:100%\" class='ax-tab-page-host-container'>\n <ng-template #container></ng-template>\n </div>\n </div>\n </div>\n `\n})\n\nexport class AXTabPageHostComponent implements OnInit {\n\n tab: AXTabPage;\n private componentRef: ComponentRef<any>;\n isLoading: boolean;\n _loadingId: number;\n\n @ViewChild('container', { read: ViewContainerRef, static: true })\n private container: ViewContainerRef;\n\n constructor(\n private ref: ElementRef<HTMLDivElement>,\n private rendererService: AXRenderService,\n private tabService: AXTabPageService,\n private loadingService: AXLoadingService,\n private cdr: ChangeDetectorRef,\n ) {\n }\n\n\n ngOnInit() {\n this.isLoading = true;\n }\n\n active() {\n const func = this.componentRef?.instance?.onActivated;\n if (func) {\n const f = (func as Function).bind(this.componentRef.instance);\n f()\n }\n }\n\n async ngAfterViewInit() {\n this._loadingId = this.loadingService.show(this.ref.nativeElement.querySelector('.ax-tab-page-host-container'));\n //\n let data: any = {};\n //\n let component: any;\n if (typeof this.tab.content === 'string') {\n const route = await this.rendererService.findLoadedComponentByRoute(this.tab.content, 20);\n component = route?.component;\n data = Object.assign(data, route.data);\n }\n else if (typeof this.tab.content === 'function') {\n component = this.tab.content;\n }\n if (component == null) {\n // TODO: 404 page component\n this.isLoading = false;\n console.error(`Invalid page Component! ${this.tab.content}`);\n return;\n }\n //\n data = Object.assign(data, this.tab.data);\n //\n try {\n this.componentRef = this.container.createComponent(component);\n if (!this.componentRef.instance.onClosed) {\n throw Error('The Component must be inherited from AXBasePageComponent!');\n }\n this.componentRef.instance.onClosed.subscribe((e: AXPageCloseEvent) => {\n this.tabService.close(this.tab);\n });\n //\n const com = this.componentRef.instance as any;\n //\n Object.assign(com, data);\n //\n this.tab[TAB_META_KEY].component = com;\n this.isLoading = false;\n this.loadingService.hide(this._loadingId);\n this.componentRef.changeDetectorRef.detectChanges();\n } catch (error) {\n // TODO: 404 page component\n console.error(error);\n } finally {\n //this.isLoading = false;\n }\n }\n\n ngOnDestroy() {\n if (this.componentRef) {\n this.componentRef.hostView.destroy();\n this.componentRef.destroy();\n this.container.clear();\n }\n this.loadingService.hide(this._loadingId);\n }\n}","import { Component, ViewChild, ViewContainerRef, ComponentFactoryResolver, ComponentRef, ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core';\nimport { AXTabPageService } from './tab-page.service';\nimport { TAB_META_KEY } from '../base/base-page.class';\nimport { AXTabPageHostComponent } from './tab-page-host.component';\nimport { Subscription } from 'rxjs';\n\n\n@Component({\n selector: 'ax-tab-page-renderer',\n template: `<template #container></template>`,\n host: { 'class': 'ax tab-page-renderer' }\n})\nexport class AXTabPageRendererComponent {\n\n childs: ComponentRef<AXTabPageHostComponent>[] = [];\n\n @ViewChild('container', { read: ViewContainerRef }) container: ViewContainerRef;\n\n private subscriptions: Subscription[] = [];\n\n constructor(\n private resolver: ComponentFactoryResolver,\n private tabService: AXTabPageService,\n private cdr: ChangeDetectorRef\n ) {\n this.subscriptions.push(tabService.activated.subscribe(tab => {\n this.childs.forEach((v: ComponentRef<AXTabPageHostComponent>) => {\n v.changeDetectorRef.detach();\n v.location.nativeElement.hidden = true;\n });\n const v = this.childs.find(t => (t as any).uid === tab[TAB_META_KEY].uid) as ComponentRef<AXTabPageHostComponent>;\n if (v) {\n v.location.nativeElement.hidden = false;\n v.changeDetectorRef.reattach();\n v.instance.active();\n }\n else {\n try {\n const factory = this.resolver.resolveComponentFactory(AXTabPageHostComponent);\n const componentRef = this.container.createComponent(factory);\n (componentRef as any).uid = tab[TAB_META_KEY].uid;\n const host = componentRef.instance as AXTabPageHostComponent;\n host.tab = tab;\n this.childs.push(componentRef);\n setTimeout(() => {\n componentRef.changeDetectorRef.detectChanges();\n //host.active();\n }, 10);\n } catch (error) {\n console.error(error);\n }\n }\n }));\n\n this.subscriptions.push(tabService.closed.subscribe(tab => {\n const hostref = this.childs.find(c => (c as any).uid === tab[TAB_META_KEY].uid);\n if (hostref) {\n hostref.destroy();\n }\n this.childs = this.childs.filter(c => (c as any).uid !== tab[TAB_META_KEY].uid);\n }));\n }\n\n ngOnDestroy() {\n this.tabService.clear();\n this.subscriptions.forEach(s => {\n s.unsubscribe();\n });\n }\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXTabPageRendererComponent } from './tab-page-Renderer.component';\nimport { AXLoadingModule } from '../loading/loading.module';\nimport { AXTabPageHostComponent } from './tab-page-host.component';\n\n@NgModule({\n declarations: [AXTabPageRendererComponent, AXTabPageHostComponent],\n imports: [CommonModule, AXLoadingModule],\n exports: [AXTabPageRendererComponent],\n providers: []\n})\nexport class AXTabPageModule { }","import { Component, OnInit, Input, Output, EventEmitter, ElementRef } from '@angular/core';\nimport { AXBaseEvent } from '../base/events.class';\n\nexport declare class AXTabStripItem {\n id: string;\n name?: string;\n text?: string;\n tooltip?: string;\n icon?: string;\n visible?: boolean;\n disable?: boolean;\n data?: any;\n style?: string;\n active?: boolean;\n}\n\nexport class AXTabStripChangedEvent extends AXBaseEvent {\n seledtedTab: AXTabStripItem;\n}\n\n@Component({\n selector: 'ax-tab-strip',\n templateUrl: './tab-strip.component.html'\n})\nexport class AXTabStripComponent implements OnInit {\n constructor(private ref: ElementRef) {}\n\n ngOnInit(): void {}\n\n @Input()\n items: AXTabStripItem[] = [];\n\n @Output()\n onTabChanged: EventEmitter<AXTabStripChangedEvent> = new EventEmitter<AXTabStripChangedEvent>();\n\n handleClick(i: AXTabStripItem) {\n if (!i.disable) {\n this.items.forEach((c) => (c.active = false));\n i.active = true;\n this.onTabChanged.emit({\n component: this,\n seledtedTab: i,\n htmlElement: this.ref.nativeElement\n });\n }\n }\n}\n","<ul class=\"tab-strip-container\">\n <ng-container *ngFor=\"let item of items\">\n <li *ngIf=\"!!item.visible || item.visible == undefined\" [class.active]=\"item.active\"\n [class.disabled]=\"item.disable\" (click)=\"handleClick(item)\">{{item.text}}</li>\n </ng-container>\n</ul>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXTabStripComponent } from './tab-strip.component';\n\n@NgModule({\n declarations: [AXTabStripComponent],\n imports: [CommonModule],\n exports: [AXTabStripComponent],\n providers: []\n})\nexport class AXTabStripModule {}\n","/**\n * This directive is used as an anchor to get access\n * to the ViewContainerRef which here is exposed via\n * the public member `viewContainer`\n *\n * Theres an ALTERNATIVE to explicitly using the anchor directive.\n * Read in the blog post\n */\n\nimport { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[dynamic-tabs]'\n})\nexport class DynamicTabsDirective {\n constructor(public viewContainer: ViewContainerRef) {}\n}\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\n@Component({\n selector: 'ax-tab',\n templateUrl: './tab.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class AXTabComponent {\n @Input() caption: string;\n @Input() name: string;\n @Input() active = false;\n @Input() isCloseable = false;\n @Input() template: any;\n @Input() dataContext: any;\n @Input() icon: string;\n}\n","<div [hidden]=\"!active\" class=\"ax tab-pane\">\n <ng-content></ng-content>\n <ng-container *ngIf=\"template\"\n [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"dataContext\"\n >\n </ng-container>\n</div>","/**\n * The main component that renders single TabComponent\n * instances.\n */\n\nimport {\n Component,\n ContentChildren,\n QueryList,\n AfterContentInit,\n ViewChild,\n ComponentFactoryResolver,\n ViewEncapsulation,\n Attribute,\n Output,\n EventEmitter,\n ElementRef\n} from '@angular/core';\n\nimport { AXTabComponent } from './tab.component';\nimport { DynamicTabsDirective } from './dynamic-tabs.directive';\nimport { AXDataEvent } from '../base/events.class';\n\n@Component({\n selector: 'ax-tab-view',\n templateUrl: './tab-view.component.html',\n styleUrls: ['./tab-view.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class AXTabViewComponent implements AfterContentInit {\n dynamicTabs: AXTabComponent[] = [];\n\n @ContentChildren(AXTabComponent) tabs: QueryList<AXTabComponent>;\n\n @ViewChild(DynamicTabsDirective) dynamicTabPlaceholder: DynamicTabsDirective;\n\n @Output()\n onActiveTab: EventEmitter<AXDataEvent<any>> = new EventEmitter<AXDataEvent<any>>();\n /*\n Alternative approach of using an anchor directive\n would be to simply get hold of a template variable\n as follows\n */\n // @ViewChild('container', {read: ViewContainerRef}) dynamicTabPlaceholder;\n\n constructor(\n private ref: ElementRef,\n private _componentFactoryResolver: ComponentFactoryResolver,\n @Attribute('fullWidth') public fullWidth: boolean = false\n ) {}\n\n // contentChildren are set\n ngAfterContentInit() {\n // get all active tabs\n const activeTabs = this.tabs.filter((tab) => tab.active);\n\n // if there is no active tab set, activate the first\n if (activeTabs.length === 0 && this.tabs.first) {\n this.selectTab(this.tabs.first);\n }\n }\n\n openTab(title: string, template, isCloseable = false, icon = null, data = null) {\n // get a component factory for our AXTabComponent\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(AXTabComponent);\n\n // fetch the view container reference from our anchor directive\n const viewContainerRef = this.dynamicTabPlaceholder.viewContainer;\n\n // alternatively...\n // let viewContainerRef = this.dynamicTabPlaceholder;\n\n // create a component instance\n const componentRef = viewContainerRef.createComponent(componentFactory);\n\n // set the according properties on our component instance\n const instance: AXTabComponent = componentRef.instance as AXTabComponent;\n instance.caption = title;\n instance.template = template;\n instance.dataContext = data;\n instance.isCloseable = isCloseable;\n instance.icon = icon;\n\n // remember the dynamic component for rendering the\n // tab navigation headers\n this.dynamicTabs.push(componentRef.instance as AXTabComponent);\n\n //componentRef.changeDetectorRef.detectChanges();\n\n // set it active\n this.selectTab(this.dynamicTabs[this.dynamicTabs.length - 1]);\n }\n\n selectTab(tab: AXTabComponent) {\n // deactivate all tabs\n this.tabs.toArray().forEach((tab) => (tab.active = false));\n this.dynamicTabs.forEach((tab) => (tab.active = false));\n\n // activate the tab the user has clicked on.\n tab.active = true;\n this.onActiveTab.emit({ component: this, data: tab, htmlElement: this.ref.nativeElement });\n }\n\n closeTab(tab: AXTabComponent) {\n for (let i = 0; i < this.dynamicTabs.length; i++) {\n if (this.dynamicTabs[i] === tab) {\n // remove the tab from our array\n this.dynamicTabs.splice(i, 1);\n\n // destroy our dynamically created component again\n const viewContainerRef = this.dynamicTabPlaceholder.viewContainer;\n // let viewContainerRef = this.dynamicTabPlaceholder;\n viewContainerRef.remove(i);\n\n // set tab index to 1st one\n this.selectTab(this.tabs.first);\n break;\n }\n }\n }\n\n closeActiveTab() {\n const activeTabs = this.dynamicTabs.filter((tab) => tab.active);\n if (activeTabs.length > 0) {\n // close the 1st active tab (should only be one at a time)\n this.closeTab(activeTabs[0]);\n }\n }\n}\n","<ul class=\"ax nav-tabs\">\n <li\n *ngFor=\"let tab of tabs\"\n (click)=\"selectTab(tab)\"\n [class.active]=\"tab.active\"\n [class.flex-sm-fill]=\"fullWidth\"\n >\n <i class=\"{{ tab.icon }}\"></i>\n <span>{{ tab.caption }}</span>\n </li>\n <!-- dynamic tabs -->\n <li\n *ngFor=\"let tab of dynamicTabs\"\n (click)=\"selectTab(tab)\"\n [class.active]=\"tab.active\"\n [class.flex-sm-fill]=\"fullWidth\"\n >\n <i class=\"{{ tab.icon }}\"></i>\n <span>\n {{ tab.caption }}\n <i\n *ngIf=\"tab.isCloseable\"\n (click)=\"closeTab(tab)\"\n class=\"far fa-times\"\n >\n </i>\n </span>\n </li>\n</ul>\n<div class=\"ax-tab-container\">\n <ng-content></ng-content>\n<ng-template dynamic-tabs #container></ng-template>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXTabComponent } from './tab.component';\nimport { AXTabViewComponent } from './tab-view.component';\nimport { DynamicTabsDirective } from './dynamic-tabs.directive';\n@NgModule({\n declarations: [AXTabComponent, AXTabViewComponent, DynamicTabsDirective],\n imports: [CommonModule],\n exports: [AXTabComponent, AXTabViewComponent, DynamicTabsDirective],\n providers: []\n})\nexport class AXTabViewModule {}\n","import {\n Component,\n ViewEncapsulation,\n Input,\n ContentChild,\n Output,\n EventEmitter,\n ViewChild,\n ElementRef,\n TemplateRef,\n} from '@angular/core';\nimport { AXDataSourceComponent } from '../data-source/datasource.component';\nimport { AXDataEvent, AXHtmlEvent, AXValueEvent } from '../base/events.class';\nimport { AXBaseComponent } from '../base/element.class';\nimport {\n AXContextMenuItemClickEvent,\n AXContextMenuPromiseFunction,\n AXContextMenuFunction,\n} from '../context-menu/context-menu.directive';\nimport { AXMenuItem } from '@acorex/core';\n\nexport class AXTreeSideMenuNode {\n children: AXTreeSideMenuNode[];\n itemData: AXTreeSideMenuItemData = new AXTreeSideMenuItemData();\n parent: AXTreeSideMenuNode;\n}\n\nexport class AXTreeSideMenuItemData {\n selected: boolean;\n key: string;\n disabled: boolean;\n open: boolean;\n hasChild: boolean;\n item: any;\n}\n\nexport class AXTreeSideMenuItemMovedEvent {\n source: AXTreeSideMenuNode;\n target: AXTreeSideMenuNode;\n resolve: (value: boolean) => void;\n}\n\nexport class AXTreeSideMenuSelectionChangedEvent extends AXValueEvent<AXTreeSideMenuNode> {\n declare component: AXTreeSideMenuComponent;\n}\n\nexport class AXTreeSideMenuItemClick extends AXHtmlEvent<MouseEvent> {\n declare component: AXTreeSideMenuComponent;\n declare item: any;\n declare flag: boolean;\n declare cancel?: boolean;\n}\n\n@Component({\n selector: 'ax-tree-side-menu',\n templateUrl: './tree-side-menu.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXTreeSideMenuComponent extends AXBaseComponent {\n @ContentChild(TemplateRef, { static: true })\n nodeTemplate: TemplateRef<any>;\n\n @ContentChild(AXDataSourceComponent, { static: true })\n private _contentDataSource: AXDataSourceComponent;\n\n @Input()\n cssClass: 'single' | 'multiple' = 'single';\n\n @Input()\n selectionMode: 'single' | 'multiple' = 'single';\n\n @Input()\n selectionLevel: 'all' | 'nodes' | 'parents' = 'all';\n\n @Input()\n selectedFieldName: string = null;\n\n @Input()\n selectNodesRecursive: boolean = true;\n\n @Input()\n seletedKeyFields: any[] = [];\n\n @Input()\n keyField: string = 'id';\n\n @Input()\n textField: string = 'title';\n\n @Input()\n hasChildField: string = 'child';\n\n @Input()\n bordered: boolean = false;\n\n @Input()\n lazyLoading: boolean = true;\n\n @Input()\n allowDrag: boolean = false;\n\n @Input()\n size: 'md' | 'sm' = 'md';\n\n @Input()\n iconStart: boolean = true;\n\n @Input()\n closeIconName: string = 'fal fa-plus';\n\n @Input()\n openIconName: string = 'fal fa-minus';\n\n @Output()\n selectionChanged: EventEmitter<AXTreeSideMenuSelectionChangedEvent> =\n new EventEmitter<AXTreeSideMenuSelectionChangedEvent>();\n\n @Output()\n onItemOpening: EventEmitter<any> = new EventEmitter<any>();\n\n @Output()\n onItemClick: EventEmitter<AXTreeSideMenuItemClick> =\n new EventEmitter<AXTreeSideMenuItemClick>();\n\n @Output()\n onItemClosing: EventEmitter<any> = new EventEmitter<any>();\n\n @Output()\n onItemDrag: EventEmitter<any> = new EventEmitter<any>();\n\n @Output()\n onItemMoved: EventEmitter<AXTreeSideMenuItemMovedEvent> =\n new EventEmitter<AXTreeSideMenuItemMovedEvent>();\n\n @Output()\n onContextMenuItemClick: EventEmitter<AXContextMenuItemClickEvent> =\n new EventEmitter<AXContextMenuItemClickEvent>();\n\n showSelectBox: boolean = false;\n loading: boolean = false;\n list: any[] = [];\n itemRow: any;\n selectedItems: any[] = [];\n selectedParents: any[] = [];\n loadAllChildren: boolean = false;\n listLoad: any[] = [];\n itemDrop: any;\n itemDrag: any;\n validDrop: boolean = true;\n lockedDrag: boolean = false;\n childField: string = 'childeren';\n showContextMenu: boolean = false;\n @Input()\n contextMenuItems:\n | AXMenuItem[]\n | AXContextMenuPromiseFunction\n | AXContextMenuFunction;\n\n constructor(private ref: ElementRef) {\n super();\n }\n\n handleOnContextMenuItem(e: AXContextMenuItemClickEvent) {\n this.onContextMenuItemClick.emit(e);\n }\n\n refresh() {\n this.list = [];\n this._contentDataSource.fetch(null);\n }\n\n internalSelectItem(item, userChange: boolean = true) {\n if (item[this.hasChildField] === false || this.selectionMode === 'single') {\n item.select = !item.select;\n if (item.parentNode && this.selectionMode !== 'single') {\n this.changeParentSelect(item.parentNode);\n }\n if (item.select === true) {\n if (this.selectionMode === 'single') {\n this.selectedItems.forEach((e) => {\n e.select = false;\n });\n this.selectedItems = [];\n this.selectedItems.push(item);\n } else {\n this.selectedItems.push(item);\n }\n } else {\n this.selectedItems = this.selectedItems.filter(\n (c) => c[this.keyField] !== item[this.keyField]\n );\n }\n } else {\n item.select = !item.select;\n\n if (item.parentNode && this.selectionMode === 'multiple') {\n this.changeParentSelect(item.parentNode);\n }\n if (this.selectionMode === 'multiple') {\n this.changeChildSelect(item, item.select);\n }\n\n if (item.select == true) {\n if (this.selectionMode === 'multiple') {\n this.selectedParents.push(item);\n } else {\n this.selectedParents.forEach((e) => {\n e.select = false;\n });\n this.selectedParents = [];\n this.selectedParents.push(item);\n }\n } else {\n this.selectedParents = this.selectedParents.filter(\n (c) => c[this.keyField] !== item[this.keyField]\n );\n }\n }\n if (userChange) {\n this.selectionChanged.emit({\n component: this,\n value: this.makeNode(item),\n htmlElement: this.ref.nativeElement,\n });\n }\n }\n\n private makeNode(item, addChildren: boolean = true) {\n const node: AXTreeSideMenuNode = new AXTreeSideMenuNode();\n if (addChildren) {\n node.children =\n item[this.childField] === undefined\n ? []\n : item[this.childField]?.map((m) => this.makeNode(m));\n }\n node.itemData.disabled = item.disabled === true ? item.disabled : false;\n node.itemData.open = item.open === true ? item.open : false;\n node.itemData.key = item[this.keyField];\n\n const c = [];\n let i = 0;\n for (var k in item) {\n i = i + 1;\n if (\n k != 'select' &&\n k != 'hasChild' &&\n k != 'loading' &&\n k != 'requestId' &&\n k != 'disabled' &&\n k != 'open' &&\n k != 'parentNode' &&\n k != 'toggle' &&\n k != 'loaded' &&\n k != 'indeterminate' &&\n k != this.childField\n ) {\n //c.push({ k: item[k] });\n c[k] = item[k];\n }\n }\n node.itemData.item = c; //TO DO\n node.itemData.selected = item.select === true ? item.select : false;\n node.itemData.hasChild = item[this.hasChildField];\n node.parent =\n item.parentNode === undefined\n ? null\n : this.makeNode(item.parentNode, false);\n return node;\n }\n\n private changeChildSelect(item, s) {\n if (this.selectNodesRecursive) {\n item.select = s;\n if (\n item[this.hasChildField] === true &&\n item[this.childField] &&\n item[this.childField].length > 0\n ) {\n item[this.childField].forEach((elm) => {\n if (elm[this.hasChildField] === true) {\n elm.select = s;\n\n if (s === true && this.selectionMode !== 'single') {\n this.selectedParents = this.selectedParents.filter(\n (c) => c[this.keyField] !== elm[this.keyField]\n );\n this.selectedParents.push(elm);\n }\n if (s === false && this.selectionMode !== 'single') {\n this.selectedParents = this.selectedParents.filter(\n (c) => c[this.keyField] !== elm[this.keyField]\n );\n }\n\n this.changeChildSelect(elm, s);\n } else {\n elm.select = s;\n if (s === true && this.selectionMode !== 'single') {\n this.selectedItems = this.selectedItems.filter(\n (c) => c[this.keyField] !== elm[this.keyField]\n );\n this.selectedItems.push(elm);\n }\n if (s === false && this.selectionMode !== 'single') {\n this.selectedItems = this.selectedItems.filter(\n (c) => c[this.keyField] !== elm[this.keyField]\n );\n }\n }\n });\n } else {\n item.select = s;\n }\n }\n }\n\n private changeParentSelect(item) {\n if (this.selectNodesRecursive) {\n let allselect = true;\n let alldeselect = true;\n let oneselect = false;\n let isindeterminate = false;\n\n if (item[this.childField]) {\n for (let index = 0; index < item[this.childField].length; index++) {\n if (item[this.childField][index].select === true) {\n alldeselect = false;\n oneselect = true;\n }\n if (\n item[this.childField][index].select === false ||\n item[this.childField][index].select === undefined\n ) {\n allselect = false;\n }\n if (item[this.childField][index].select === null) {\n isindeterminate = true;\n alldeselect = false;\n oneselect = true;\n allselect = false;\n }\n }\n }\n\n if (oneselect || (isindeterminate && !allselect)) {\n item.select = null;\n }\n if (allselect === true) {\n item.select = true;\n }\n if (alldeselect === true) {\n item.select = false;\n }\n if (\n item.parentNode &&\n item.parentNode[this.childField] &&\n item.parentNode[this.childField].length > 0\n ) {\n this.changeParentSelect(item.parentNode);\n }\n }\n }\n\n ngOnInit(): void {\n this.onItemClick.subscribe((data: AXTreeSideMenuItemClick) => {\n if (!data.cancel) {\n this.toggleNode(data.item, data.flag);\n }\n });\n }\n\n itemdbClick(e: MouseEvent, item) {\n if (this.selectionMode == 'single') {\n this.handleOnNodeClick(e, item, true);\n }\n }\n\n handleOnNodeClick(e: MouseEvent, item, flag = false) {\n this.onItemClick.emit({\n component: this,\n htmlEvent: e,\n item,\n flag,\n });\n e.stopPropagation();\n e.preventDefault();\n }\n\n toggleNode(item, flag = false) {\n //item[this.hasChildField] === false &&\n if (this.selectionMode === 'single' && !flag) {\n if (this.selectionLevel == 'nodes' && item.hasChild == true) {\n } else {\n this.internalSelectItem(item);\n }\n } else {\n if (item[this.hasChildField] == true) {\n item.toggle = !item.toggle;\n }\n\n if (this.selectionMode === 'single') {\n if (this.selectionLevel == 'nodes' && item.hasChild == true) {\n } else {\n this.internalSelectItem(item);\n }\n }\n\n if (\n item[this.hasChildField] === true &&\n item.loaded !== true &&\n this.lazyLoading\n ) {\n this.itemRow = item;\n const uid = Math.floor(Math.random() * 100000000);\n item.requestId = uid;\n this.listLoad.push(item);\n this._contentDataSource.fetch(item);\n this.showLoading(this.itemRow);\n }\n if (item.toggle && item[this.hasChildField] === true) {\n item.open = true;\n this.onItemOpening.emit(this.makeNode(item));\n } else if (!item.toggle && item[this.hasChildField] === true) {\n item.open = false;\n this.onItemClosing.emit(this.makeNode(item));\n }\n }\n }\n\n ngAfterContentInit(): void {\n this._contentDataSource.fetch(null);\n this._contentDataSource.onDataReceived.subscribe((_data) => {\n if (this.list.length === 0) {\n this.hideLoading(null);\n this.list = _data.data.result;\n\n this.list.forEach((el) => {\n el.select = false;\n\n if (\n this.selectionLevel == 'nodes' &&\n el[this.hasChildField] == true\n ) {\n el.disabledCheckBox = true;\n }\n\n if (\n this.selectionLevel == 'parents' &&\n el[this.hasChildField] == false\n ) {\n el.disabledCheckBox = true;\n }\n\n if (this.seletedKeyFields.length > 0) {\n this.seletedKeyFields.forEach((n: any) => {\n if (n.includes(el[this.keyField])) {\n if (el[this.hasChildField] == true) {\n // if (this.selectNodesRecursive) {\n this.open(el);\n // }\n } else {\n this.selectItem(el);\n }\n }\n });\n } else if (this.selectedFieldName != null) {\n if (\n el[this.hasChildField] == true &&\n el[this.selectedFieldName] == true\n ) {\n // if (this.selectNodesRecursive) {\n this.open(el);\n // }\n } else if (el[this.selectedFieldName] == true) {\n this.selectItem(el);\n }\n }\n });\n } else {\n this.itemRow = this.listLoad.filter(\n (c) => c.requestId === _data.data.requestId\n )[0];\n this.listLoad = this.listLoad.filter(\n (c) => c.requestId !== _data.data.requestId\n );\n if (this.itemRow !== undefined) {\n this.hideLoading(this.itemRow);\n const result = _data.data.result;\n\n if (this.list.length !== 0) {\n if (\n this.itemRow[this.childField] &&\n this.itemRow[this.childField].length > 0\n ) {\n result.forEach((el) => {\n this.itemRow[this.childField][\n this.itemRow[this.childField].length\n ] = el;\n });\n } else {\n this.itemRow[this.childField] = result;\n }\n\n for (let i = 0; i < result.length; i++) {\n if (\n this.selectionLevel == 'nodes' &&\n result[i][this.hasChildField] == true\n ) {\n result[i].disabledCheckBox = true;\n }\n\n if (\n this.selectionLevel == 'parents' &&\n result[i][this.hasChildField] == false\n ) {\n result[i].disabledCheckBox = true;\n }\n if (\n this.selectionMode !== 'single' &&\n this.selectNodesRecursive\n ) {\n result[i].select =\n this.itemRow.select === (undefined || null)\n ? false\n : this.itemRow.select;\n\n if (\n this.itemRow.select === true &&\n this.selectionMode == 'multiple' &&\n result[i][this.hasChildField] === false\n ) {\n this.selectedItems = this.selectedItems.filter(\n (c) => c[this.keyField] !== result[i][this.keyField]\n );\n this.selectedItems.push(result[i]);\n }\n } else {\n result[i].select = false;\n }\n result[i].parentNode = this.itemRow;\n\n if (this.seletedKeyFields.length > 0) {\n this.seletedKeyFields.forEach((n: any) => {\n if (n.includes(result[i][this.keyField])) {\n if (result[i][this.hasChildField] == true) {\n // if (this.selectNodesRecursive) {\n this.open(result[i]);\n // }\n } else {\n this.selectItem(result[i]);\n }\n }\n });\n } else if (this.selectedFieldName != null) {\n if (\n result[i][this.hasChildField] == true &&\n result[i][this.selectedFieldName] == true\n ) {\n // if (this.selectNodesRecursive) {\n this.open(result[i]);\n // }\n } else if (result[i][this.selectedFieldName] == true) {\n this.selectItem(result[i]);\n }\n }\n }\n\n this.itemRow.loaded = true;\n }\n }\n }\n });\n }\n\n ngAfterViewInit(): void {\n if (this.selectionMode !== 'single') {\n this.showSelectBox = true;\n }\n this.showContextMenu = true;\n }\n\n // onItemClick(e, v) {\n\n // }\n\n onDragStart(e: Event, v) {\n if (!this.lockedDrag) {\n this.itemDrag = v;\n this.onItemDrag.emit(v);\n }\n e.stopImmediatePropagation();\n }\n\n onDragEnd(e, v) {\n if (!this.lockedDrag) {\n this.itemDrop = v;\n }\n e.stopImmediatePropagation();\n }\n\n drop(e) {\n // this.onItemDrop.emit(this.itemDrop);\n if (!this.lockedDrag) {\n this.validDrop = true;\n this.sameChilde(this.itemDrag, this.itemDrop);\n if (\n this.validDrop &&\n this.itemDrag[this.keyField] !== this.itemDrop[this.keyField] &&\n this.itemDrag.parentNode !== this.itemDrop\n ) {\n const movedEvent: AXTreeSideMenuItemMovedEvent =\n new AXTreeSideMenuItemMovedEvent();\n movedEvent.source = this.makeNode(this.itemDrag);\n movedEvent.target = this.makeNode(this.itemDrop);\n this.lockedDrag = true;\n this.showLoading(this.itemDrag);\n this.showLoading(this.itemDrop);\n movedEvent.resolve = (value: boolean) => {\n this.hideLoading(this.itemDrag);\n this.hideLoading(this.itemDrop);\n if (value) {\n this.dragDropItem(this.itemDrag, this.itemDrop);\n } else {\n this.lockedDrag = false;\n }\n };\n this.onItemMoved.emit(movedEvent);\n }\n }\n\n e.stopImmediatePropagation();\n }\n\n sameChilde(parent, child) {\n if (parent[this.childField] && parent[this.childField].length > 0) {\n for (let index = 0; index < parent[this.childField].length; index++) {\n if (\n parent[this.childField][index][this.keyField] == child[this.keyField]\n ) {\n this.validDrop = false;\n }\n if (\n parent[this.childField][index][this.childField] &&\n parent[this.childField][index][this.childField].length > 0\n ) {\n this.sameChilde(parent[this.childField][index], child);\n }\n }\n } else if (parent[this.keyField] == child[this.keyField]) {\n this.validDrop = false;\n }\n }\n\n dragDropItem(itemChild, itemParent) {\n if (this.selectionLevel == 'nodes') {\n itemParent.disabledCheckBox = true;\n }\n\n if (itemChild.parentNode) {\n itemChild.parentNode[this.childField] = itemChild.parentNode[\n this.childField\n ].filter((c) => c[this.keyField] !== itemChild[this.keyField]);\n } else {\n this.list = this.list.filter(\n (c) => c[this.keyField] !== itemChild[this.keyField]\n );\n }\n itemChild.parentNode = itemParent;\n if (itemParent[this.childField] && itemParent[this.childField].length > 0) {\n itemParent[this.childField][itemParent[this.childField].length] =\n itemChild;\n } else {\n itemParent[this.childField] = [];\n itemParent[this.childField][0] = itemChild;\n if (itemParent[this.hasChildField] === true) {\n this.toggleNode(itemParent);\n } else {\n itemParent.toggle = !itemParent.toggle;\n itemParent.loaded = true;\n }\n itemParent[this.hasChildField] = true;\n }\n if (itemChild.parentNode && this.selectionMode !== 'single') {\n this.changeParentSelect(itemChild.parentNode);\n }\n this.lockedDrag = false;\n }\n\n private listChange(field, value) {\n for (let index = 0; index < this.list.length; index++) {\n this.changeChiled(this.list[index], field, value);\n }\n this.loadAllChildren = false;\n }\n\n private changeChiled(item, field, value) {\n if (\n field === 'toggle' &&\n (item.loaded === false || item.loaded === undefined)\n ) {\n if (this.loadAllChildren === true) {\n this.toggleNode(item);\n item[field] = value;\n }\n } else {\n item[field] = value;\n if (\n field === 'select' &&\n item[this.hasChildField] === false &&\n value === true\n ) {\n this.selectedItems.push(item);\n }\n }\n if (field === 'select') {\n item.indeterminate = false;\n }\n if (\n item[this.hasChildField] === true &&\n item[this.childField] &&\n item[this.childField].length > 0\n ) {\n item[this.childField].forEach((element) => {\n this.changeChiled(element, field, value);\n });\n }\n }\n\n private showLoading(item): void {\n item.loading = true;\n }\n\n private hideLoading(item): void {\n if (item != null) {\n item.loading = false;\n }\n }\n\n public openAll(loadAll: boolean = false) {\n // if (loadAll) {\n // this.loadAllChildren = true;\n // this.listChange('toggle', true);\n //} else {\n this.listChange('toggle', true);\n // }\n }\n\n public selectItem(item) {\n if (item['select'] != true) {\n this.internalSelectItem(item, false);\n }\n }\n\n public open(item) {\n if (item['toggle'] !== true) {\n this.toggleNode(item, true);\n }\n }\n\n public scrolIntoView(item) {\n let element = document.querySelector(\n `li[data-id='${item[this.keyField]}']`\n );\n element.scrollIntoView();\n }\n\n public closeAll() {\n this.listChange('toggle', false);\n }\n\n public selectAll() {\n if (this.selectionMode !== 'single') {\n this.listChange('select', true);\n }\n }\n\n public unSelectAll() {\n if (this.selectionMode !== 'single') {\n this.listChange('select', false);\n }\n this.selectedItems = [];\n }\n\n public getSelectedNodes(): AXTreeSideMenuNode[] {\n const selectItemsNode = [];\n this.selectedItems.forEach((e) => {\n selectItemsNode.push(this.makeNode(e));\n });\n return selectItemsNode;\n }\n\n public getSelectedParents(): AXTreeSideMenuNode[] {\n const selectItemsParent = [];\n this.selectedParents.forEach((e) => {\n selectItemsParent.push(this.makeNode(e));\n });\n return selectItemsParent;\n }\n\n getParentsId(item) {\n let keyFields = [];\n keyFields.push(item[this.keyField]);\n if (item.parentNode) {\n keyFields.push(...this.getParentsId(item.parentNode));\n }\n return keyFields;\n }\n\n public getSelectedKeyFields() {\n let keyFields = [];\n this.selectedItems.forEach((elm) => {\n var Ids = this.getParentsId(elm);\n if (Ids) {\n keyFields.push(Ids);\n }\n });\n return keyFields;\n }\n}\n","<ul class=\"ax-tree-side-menu {{size}} {{cssClass}}\">\n <ng-template #recursiveList let-list>\n <ng-container *ngFor=\"let item of list\">\n <li (click)=\"handleOnNodeClick($event,item,true)\"\n class=\"{{item[hasChildField] ? '':'node'}} {{!!item.toggle ? 'active':''}}\" style=\"display: flex;\"\n [class.selected]=\"item.select\">\n <div class=\"ax-tree-side-menu-item\" (click)=\"handleOnNodeClick($event,item,true)\">\n\n \n\n <div (click)=\"handleOnNodeClick($event,item,true)\" (dblclick)=\"itemdbClick($event,item)\">\n <ng-container *ngIf=\"nodeTemplate; else elseTemplate\">\n <ng-container *ngTemplateOutlet=\"nodeTemplate; context:{ $implicit: item }\"></ng-container>\n </ng-container>\n <ng-template #elseTemplate>\n {{item[textField]}}\n </ng-template>\n </div>\n\n <div class=\"start-side\" *ngIf=\"iconStart\">\n <div *ngIf=\"item[hasChildField]\">\n <i class=\"{{openIconName}}\" *ngIf=\" !!item.toggle && !item.loading\"></i>\n <i class=\"{{closeIconName}}\" *ngIf=\"!item.toggle && !item.loading\"></i>\n <i class=\"fal fa-spinner fa-spin\" *ngIf=\"item.loading\"></i>\n </div>\n </div>\n\n <div class=\"start-side\" *ngIf=\"!iconStart\">\n <div *ngIf=\"item[hasChildField]\" (click)=\"handleOnNodeClick($event,item,true)\">\n <i class=\"{{openIconName}}\" *ngIf=\" !!item.toggle && !item.loading\"></i>\n <i class=\"{{closeIconName}}\" *ngIf=\"!item.toggle && !item.loading\"></i>\n <i class=\"fal fa-spinner fa-spin\" *ngIf=\"item.loading\"></i>\n </div>\n </div>\n </div>\n <ul class=\"ax-tree-side-menu-child\" *ngIf=\"item.toggle\">\n <ng-container *ngTemplateOutlet=\"recursiveList; context:{ $implicit: item.childeren }\"></ng-container>\n </ul>\n </li>\n </ng-container>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"recursiveList; context:{ $implicit: list }\"></ng-container>\n</ul>","import { NgModule } from \"@angular/core\";\nimport { AXTreeSideMenuComponent } from \"./tree-side-menu.component\";\nimport { CommonModule } from \"@angular/common\";\nimport { AXDataSourceModule } from \"../data-source/datasource.module\";\nimport { AXCheckBoxModule } from \"../checkbox/checkbox.module\";\nimport { AXContextMenuModule } from \"../context-menu/context-menu.module\";\n\n@NgModule({\n declarations: [AXTreeSideMenuComponent],\n imports: [\n AXDataSourceModule,\n CommonModule,\n AXCheckBoxModule,\n AXContextMenuModule,\n ],\n exports: [AXTreeSideMenuComponent],\n providers: [],\n})\nexport class AXTreeSideMenuModule {}\n","import {\n Component,\n ViewEncapsulation,\n Input,\n ContentChild,\n Output,\n EventEmitter,\n ViewChild,\n ElementRef,\n TemplateRef,\n} from '@angular/core';\nimport { AXDataSourceComponent } from '../data-source/datasource.component';\nimport { AXDataEvent, AXHtmlEvent, AXValueEvent } from '../base/events.class';\nimport { AXBaseComponent } from '../base/element.class';\nimport {\n AXContextMenuItemClickEvent,\n AXContextMenuPromiseFunction,\n AXContextMenuFunction,\n} from '../context-menu/context-menu.directive';\nimport { AXMenuItem } from '@acorex/core';\n\nexport class AXTreeViewNode {\n children: AXTreeViewNode[];\n itemData: AXTreeViewItemData = new AXTreeViewItemData();\n parent: AXTreeViewNode;\n}\n\nexport class AXTreeViewItemData {\n selected: boolean;\n indeterminate: boolean;\n key: string;\n disabled: boolean;\n open: boolean;\n hasChild: boolean;\n item: any;\n}\n\nexport class AXTreeViewItemMovedEvent {\n source: AXTreeViewNode;\n target: AXTreeViewNode;\n resolve: (value: boolean) => void;\n}\n\nexport class AXTreeViewselectionChangedEvent extends AXValueEvent<AXTreeViewNode> {\n declare component: AXTreeViewComponent;\n}\n\nexport class AXTreeViewseletedKeyFieldsChangedEvent extends AXValueEvent<AXTreeViewNode> {\n declare component: AXTreeViewComponent;\n}\n\nexport class AXTreeViewItemClick extends AXHtmlEvent<MouseEvent> {\n declare component: AXTreeViewComponent;\n declare item: any;\n declare flag: boolean;\n declare cancel?: boolean;\n}\n\n@Component({\n selector: 'ax-tree-view',\n templateUrl: './tree-view.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXTreeViewComponent extends AXBaseComponent {\n @ContentChild(TemplateRef, { static: true })\n nodeTemplate: TemplateRef<any>;\n\n @ContentChild(AXDataSourceComponent, { static: true })\n private _contentDataSource: AXDataSourceComponent;\n\n @Input()\n selectionMode: 'single' | 'multiple' = 'single';\n\n @Input()\n selectionLevel: 'all' | 'nodes' | 'parents' = 'all';\n\n // user can set only one of this /selectedFieldName or /seletedKeyFields\n //seletedKeyFields set id of nodes and parents\n //selectedFieldName set name of fields that set selectes\n @Input()\n selectedFieldName: string = null;\n\n // @Input()\n // selectNodesRecursive: 'all' | 'parents' | 'childs' | 'none' = 'all'; //leaf\n\n @Input()\n checkParents: boolean = true;\n\n @Input()\n checkChilds: boolean = true;\n\n @Input()\n seletedKeyFields: any[] = [];\n\n @Input()\n keyField: string = 'id';\n\n @Input()\n hasChildField: string = 'child';\n\n @Input()\n bordered: boolean = false;\n\n @Input()\n lazyLoading: boolean = true;\n\n @Input()\n allowDrag: boolean = false;\n\n @Input()\n size: 'md' | 'sm' = 'md';\n\n @Input() disabled: boolean = false;\n\n @Output()\n selectionChanged: EventEmitter<AXTreeViewselectionChangedEvent> =\n new EventEmitter<AXTreeViewselectionChangedEvent>();\n\n @Output()\n seletedKeyFieldsChanged: EventEmitter<AXTreeViewseletedKeyFieldsChangedEvent> =\n new EventEmitter<AXTreeViewselectionChangedEvent>();\n\n @Output()\n onItemOpening: EventEmitter<any> = new EventEmitter<any>();\n\n @Output()\n onItemClick: EventEmitter<AXTreeViewItemClick> =\n new EventEmitter<AXTreeViewItemClick>();\n\n @Output()\n onItemClosing: EventEmitter<any> = new EventEmitter<any>();\n\n @Output()\n onItemDrag: EventEmitter<any> = new EventEmitter<any>();\n\n @Output()\n onItemMoved: EventEmitter<AXTreeViewItemMovedEvent> =\n new EventEmitter<AXTreeViewItemMovedEvent>();\n\n @Input()\n selectableField: string = '';\n\n @Output()\n onContextMenuItemClick: EventEmitter<AXContextMenuItemClickEvent> =\n new EventEmitter<AXContextMenuItemClickEvent>();\n\n showSelectBox: boolean = false;\n loading: boolean = false;\n list: any[] = [];\n itemRow: any;\n selectedItems: any[] = [];\n selectedParents: any[] = [];\n loadAllChildren: boolean = false;\n listLoad: any[] = [];\n itemDrop: any;\n itemDrag: any;\n validDrop: boolean = true;\n lockedDrag: boolean = false;\n childField: string = 'childeren';\n showContextMenu: boolean = false;\n isSelectedItem: boolean = false;\n loced: boolean = false;\n @Input()\n contextMenuItems:\n | AXMenuItem[]\n | AXContextMenuPromiseFunction\n | AXContextMenuFunction;\n\n constructor(private ref: ElementRef) {\n super();\n }\n\n handleOnContextMenuItem(e: AXContextMenuItemClickEvent) {\n if (this.disabled) {\n return;\n }\n this.onContextMenuItemClick.emit(e);\n }\n\n refresh() {\n this.list = [];\n this._contentDataSource.fetch(null);\n }\n\n internalSelectItem(item, userChange: boolean = true) {\n if (item[this.hasChildField] === false || this.selectionMode === 'single') {\n item.select = !item.select;\n if (\n item.parentNode &&\n this.selectionMode !== 'single' &&\n this.checkParents == true\n ) {\n this.changeParentSelect(item.parentNode);\n }\n if (item.select === true) {\n if (this.selectionMode === 'single') {\n this.selectedItems.forEach((e) => {\n e.select = false;\n });\n this.selectedItems = [];\n this.selectedItems.push(item);\n } else {\n this.selectedItems.push(item);\n }\n } else {\n this.selectedItems = this.selectedItems.filter(\n (c) => c[this.keyField] !== item[this.keyField]\n );\n }\n } else {\n item.select = !item.select;\n\n if (\n item.parentNode &&\n this.selectionMode === 'multiple' &&\n this.checkParents == true\n ) {\n this.changeParentSelect(item.parentNode);\n }\n if (this.selectionMode === 'multiple' && this.checkChilds == true) {\n this.changeChildSelect(item, item.select);\n }\n\n if (item.select == true) {\n if (this.selectionMode === 'multiple') {\n this.selectedParents = this.selectedParents.filter(\n (c) => c[this.keyField] !== item[this.keyField]\n );\n this.selectedParents.push(item);\n } else {\n this.selectedParents.forEach((e) => {\n e.select = false;\n });\n this.selectedParents = [];\n this.selectedParents.push(item);\n }\n } else {\n this.selectedParents = this.selectedParents.filter(\n (c) => c[this.keyField] !== item[this.keyField]\n );\n }\n }\n if (userChange) {\n this.selectionChanged.emit({\n component: this,\n value: this.makeNode(item),\n htmlElement: this.ref.nativeElement,\n });\n }\n }\n\n private makeNode(item, addChildren: boolean = true) {\n const node: AXTreeViewNode = new AXTreeViewNode();\n if (addChildren) {\n node.children =\n item[this.childField] === undefined\n ? []\n : item[this.childField]?.map((m) => this.makeNode(m));\n }\n node.itemData.disabled = item.disabled === true ? item.disabled : false;\n node.itemData.open = item.open === true ? item.open : false;\n node.itemData.key = item[this.keyField];\n\n const c = [];\n let i = 0;\n for (var k in item) {\n i = i + 1;\n if (\n k != 'select' &&\n k != 'hasChild' &&\n k != 'loading' &&\n k != 'requestId' &&\n k != 'disabled' &&\n k != 'open' &&\n k != 'parentNode' &&\n k != 'toggle' &&\n k != 'loaded' &&\n k != 'indeterminate' &&\n k != this.childField\n ) {\n //c.push({ k: item[k] });\n c[k] = item[k];\n }\n }\n\n node.itemData.item = c; //TO DO\n node.itemData.selected = item.select === true ? item.select : false;\n node.itemData.indeterminate = item.select === null ? true : false;\n node.itemData.hasChild = item[this.hasChildField];\n node.parent =\n item.parentNode === undefined\n ? null\n : this.makeNode(item.parentNode, false);\n if (node.parent != null) {\n (node.parent as any).selectParent = () => {\n if (item.parentNode['select'] != true) {\n this.internalSelectItem(item.parentNode, true);\n }\n };\n (node.parent as any).unSelectParent = () => {\n if (item.parentNode['select'] == true) {\n this.internalSelectItem(item.parentNode, true);\n }\n };\n }\n if (node.children != null && node.children.length > 0) {\n (node.children as any).selectChilds = () => {\n item.childeren.forEach((element) => {\n if (element['select'] != true) {\n this.internalSelectItem(element, true);\n }\n });\n };\n (node.children as any).unSelectChilds = () => {\n item.childeren.forEach((element) => {\n if (element['select'] == true) {\n this.internalSelectItem(element, true);\n }\n });\n };\n }\n return node;\n }\n\n private changeChildSelect(item, s) {\n // if (this.selectNodesRecursive == 'all' || this.selectNodesRecursive == 'childs') {\n if (this.checkChilds == true) {\n item.select = s;\n if (\n item[this.hasChildField] === true &&\n item[this.childField] &&\n item[this.childField].length > 0\n ) {\n item[this.childField].forEach((elm) => {\n if (elm[this.hasChildField] === true) {\n elm.select = s;\n\n if (s === true && this.selectionMode !== 'single') {\n this.selectedParents = this.selectedParents.filter(\n (c) => c[this.keyField] !== elm[this.keyField]\n );\n this.selectedParents.push(elm);\n }\n if (s === false && this.selectionMode !== 'single') {\n this.selectedParents = this.selectedParents.filter(\n (c) => c[this.keyField] !== elm[this.keyField]\n );\n }\n this.changeChildSelect(elm, s);\n } else {\n elm.select = s;\n if (s === true && this.selectionMode !== 'single') {\n this.selectedItems = this.selectedItems.filter(\n (c) => c[this.keyField] !== elm[this.keyField]\n );\n this.selectedItems.push(elm);\n }\n if (s === false && this.selectionMode !== 'single') {\n this.selectedItems = this.selectedItems.filter(\n (c) => c[this.keyField] !== elm[this.keyField]\n );\n }\n }\n });\n } else {\n item.select = s;\n }\n }\n }\n\n private changeParentSelect(item) {\n //if (this.selectNodesRecursive == 'all' || this.selectNodesRecursive == 'parents') {\n if (this.checkParents) {\n let allselect = true;\n let alldeselect = true;\n let oneselect = false;\n let isindeterminate = false;\n\n if (item[this.childField]) {\n for (let index = 0; index < item[this.childField].length; index++) {\n if (item[this.childField][index].select === true) {\n alldeselect = false;\n oneselect = true;\n }\n if (\n item[this.childField][index].select === false ||\n item[this.childField][index].select === undefined\n ) {\n allselect = false;\n }\n if (item[this.childField][index].select === null) {\n isindeterminate = true;\n alldeselect = false;\n oneselect = true;\n allselect = false;\n }\n }\n }\n\n if (oneselect || (isindeterminate && !allselect)) {\n item.select = null;\n this.selectedParents = this.selectedParents.filter(\n (c) => c[this.keyField] !== item[this.keyField]\n );\n this.selectedParents.push(item);\n }\n if (allselect === true) {\n item.select = true;\n this.selectedParents = this.selectedParents.filter(\n (c) => c[this.keyField] !== item[this.keyField]\n );\n this.selectedParents.push(item);\n }\n if (alldeselect === true) {\n this.selectedParents = this.selectedParents.filter(\n (c) => c[this.keyField] !== item[this.keyField]\n );\n item.select = false;\n }\n if (\n item.parentNode &&\n item.parentNode[this.childField] &&\n item.parentNode[this.childField].length > 0\n ) {\n this.changeParentSelect(item.parentNode);\n }\n }\n }\n\n ngOnInit(): void {\n this.onItemClick.subscribe((data: AXTreeViewItemClick) => {\n if (!data.cancel) {\n this.toggleNode(data.item, data.flag);\n }\n });\n }\n\n itemdbClick(e: MouseEvent, item) {\n if (this.selectionMode == 'single') {\n this.handleOnNodeClick(e, item, true);\n }\n }\n\n handleOnNodeClick(e: MouseEvent, item, flag = false) {\n if (this.disabled) {\n return;\n }\n // this.internalSelectItem(item);\n this.onItemClick.emit({\n component: this,\n htmlEvent: e,\n item,\n flag,\n });\n }\n\n nodeClick(item) {\n if (this.disabled) {\n return;\n }\n if (item[this.hasChildField] == true) {\n this.toggleNode(item, true);\n } else {\n this.internalSelectItem(item, true);\n }\n }\n\n toggleNode(item, flag = false) {\n //item[this.hasChildField] === false &&\n if (this.selectionMode === 'single' && !flag) {\n if (this.selectionLevel == 'nodes' && item.hasChild == true) {\n } else {\n this.internalSelectItem(item);\n }\n } else {\n item.toggle = !item.toggle;\n if (this.selectionMode === 'single') {\n if (this.selectionLevel == 'nodes' && item.hasChild == true) {\n } else {\n this.internalSelectItem(item);\n }\n }\n\n if (\n item[this.hasChildField] === true &&\n item.loaded !== true &&\n this.lazyLoading\n ) {\n this.itemRow = item;\n const uid = Math.floor(Math.random() * 100000000);\n item.requestId = uid;\n this.listLoad.push(item);\n this._contentDataSource.fetch(item);\n this.showLoading(this.itemRow);\n }\n if (item.toggle && item[this.hasChildField] === true) {\n item.open = true;\n this.onItemOpening.emit(this.makeNode(item));\n } else if (!item.toggle && item[this.hasChildField] === true) {\n item.open = false;\n this.onItemClosing.emit(this.makeNode(item));\n }\n }\n }\n\n levelCount: number = 0;\n getLevel(item) {\n return new Promise((resolve, reject) => {\n if (item.parentNode) {\n this.levelCount = this.levelCount + 1;\n this.getLevel(item.parentNode).then((res) => {\n resolve(this.levelCount);\n });\n } else {\n this.levelCount = this.levelCount + 1;\n resolve(this.levelCount);\n }\n });\n }\n\n ngAfterContentInit(): void {\n this._contentDataSource.fetch(null);\n this._contentDataSource.onDataReceived.subscribe((_data) => {\n if (this.list.length === 0) {\n this.hideLoading(null);\n this.list = _data.data.result;\n\n this.list.forEach((el) => {\n el.disabledCheckBox =\n this.selectableField != ''\n ? el[this.selectableField]\n ? el[this.selectableField]\n : false\n : false;\n el.select = false;\n\n if (\n this.selectionLevel == 'nodes' &&\n el[this.hasChildField] == true\n ) {\n el.disabledCheckBox = true;\n }\n\n if (\n this.selectionLevel == 'parents' &&\n el[this.hasChildField] == false\n ) {\n el.disabledCheckBox = true;\n }\n if (this.seletedKeyFields.length > 0) {\n this.seletedKeyFields.forEach((n: any) => {\n if (n.includes(el[this.keyField])) {\n if (el[this.hasChildField] == true) {\n if (\n ((this.checkParents == false &&\n this.checkChilds == false) ||\n this.checkChilds == false) &&\n n.length == 1\n ) {\n //select parent when check child and check parent is false TODO check this Action\n this.selectItem(el);\n }\n if (!this.disabled) {\n this.open(el);\n }\n } else {\n this.selectItem(el);\n this.isSelectedItem = true;\n }\n }\n });\n } else if (this.selectedFieldName != null) {\n if (\n el[this.hasChildField] == true &&\n el[this.selectedFieldName] == true\n ) {\n if (\n (this.checkParents == false && this.checkChilds == false) ||\n this.checkChilds == false\n ) {\n //select parent when check child and check parent is false TODO check this Action\n this.selectItem(el);\n }\n this.open(el);\n } else if (el[this.selectedFieldName] == true) {\n this.selectItem(el);\n this.isSelectedItem = true;\n }\n }\n });\n } else {\n this.itemRow = this.listLoad.filter(\n (c) => c.requestId === _data.data.requestId\n )[0];\n this.listLoad = this.listLoad.filter(\n (c) => c.requestId !== _data.data.requestId\n );\n this.itemRow.loaded = true;\n if (this.itemRow !== undefined) {\n this.hideLoading(this.itemRow);\n const result = _data.data.result;\n\n if (this.list.length !== 0) {\n if (\n this.itemRow[this.childField] &&\n this.itemRow[this.childField].length > 0\n ) {\n result.forEach((el) => {\n el.disabledCheckBox =\n this.selectableField != ''\n ? el[this.selectableField]\n ? el[this.selectableField]\n : false\n : false;\n // el.disabledCheckBox = this.selectableField != '' ? el[this.selectableField] : false;\n this.itemRow[this.childField][\n this.itemRow[this.childField].length\n ] = el;\n });\n } else {\n this.itemRow[this.childField] = result;\n }\n\n for (let i = 0; i < result.length; i++) {\n result[i].disabledCheckBox =\n this.selectableField != ''\n ? result[i][this.selectableField]\n ? result[i][this.selectableField]\n : false\n : false;\n\n if (\n this.selectionLevel == 'nodes' &&\n result[i][this.hasChildField] == true\n ) {\n result[i].disabledCheckBox = true;\n }\n if (\n this.selectionLevel == 'parents' &&\n result[i][this.hasChildField] == false\n ) {\n result[i].disabledCheckBox = true;\n }\n // if (this.selectionMode !== 'single' && (this.selectNodesRecursive == 'all' || this.selectNodesRecursive == 'childs')) {\n if (this.selectionMode !== 'single' && this.checkChilds == true) {\n result[i].select =\n this.itemRow.select === (undefined || null)\n ? false\n : this.itemRow.select;\n\n if (\n this.itemRow.select === true &&\n this.selectionMode == 'multiple' &&\n result[i][this.hasChildField] === false\n ) {\n this.selectedItems = this.selectedItems.filter(\n (c) => c[this.keyField] !== result[i][this.keyField]\n );\n this.selectedItems.push(result[i]);\n } else if (\n this.itemRow.select === true &&\n this.selectionMode == 'multiple' &&\n result[i][this.hasChildField] === true\n ) {\n this.selectedParents = this.selectedParents.filter(\n (c) => c[this.keyField] !== result[i][this.keyField]\n );\n this.selectedParents.push(result[i]);\n }\n } else {\n result[i].select = false;\n }\n result[i].parentNode = this.itemRow;\n\n if (this.seletedKeyFields.length > 0) {\n this.seletedKeyFields.forEach((n: any) => {\n if (n.includes(result[i][this.keyField])) {\n if (result[i][this.hasChildField] == true) {\n this.levelCount = 0;\n this.getLevel(result[i]).then((resLevel) => {\n if (\n this.checkParents == false &&\n this.checkChilds == false &&\n n.length == this.levelCount\n ) {\n //select parent when check child and check parent is false TODO check this Action\n this.selectItem(result[i]);\n }\n\n this.open(result[i]);\n });\n } else {\n this.selectItem(result[i]);\n this.isSelectedItem = true;\n }\n }\n });\n } else if (this.selectedFieldName != null) {\n if (\n result[i][this.hasChildField] == true &&\n result[i][this.selectedFieldName] == true\n ) {\n if (this.checkParents == false && this.checkChilds == false) {\n //select parent when check child and check parent is false TODO check this Action\n this.selectItem(result[i]);\n }\n this.open(result[i]);\n } else if (result[i][this.selectedFieldName] == true) {\n this.selectItem(result[i]);\n this.isSelectedItem = true;\n }\n }\n }\n this.itemRow.loaded = true;\n }\n }\n }\n\n if (this.isSelectedItem == true && !this.loced) {\n this.loced = true;\n this.seletedKeyFieldsChanged.emit({\n component: this,\n // value: this.makeNode(item),\n htmlElement: this.ref.nativeElement,\n });\n }\n });\n }\n\n ngAfterViewInit(): void {\n if (this.selectionMode !== 'single') {\n this.showSelectBox = true;\n }\n this.showContextMenu = true;\n }\n\n // onItemClick(e, v) {\n\n // }\n\n onDragStart(e: Event, v) {\n if (!this.lockedDrag) {\n this.itemDrag = v;\n this.onItemDrag.emit(v);\n }\n e.stopImmediatePropagation();\n }\n\n onDragEnd(e, v) {\n if (!this.lockedDrag) {\n this.itemDrop = v;\n }\n e.stopImmediatePropagation();\n }\n\n drop(e) {\n // this.onItemDrop.emit(this.itemDrop);\n if (!this.lockedDrag) {\n this.validDrop = true;\n this.sameChilde(this.itemDrag, this.itemDrop);\n if (\n this.validDrop &&\n this.itemDrag[this.keyField] !== this.itemDrop[this.keyField] &&\n this.itemDrag.parentNode !== this.itemDrop\n ) {\n const movedEvent: AXTreeViewItemMovedEvent =\n new AXTreeViewItemMovedEvent();\n movedEvent.source = this.makeNode(this.itemDrag);\n movedEvent.target = this.makeNode(this.itemDrop);\n this.lockedDrag = true;\n this.showLoading(this.itemDrag);\n this.showLoading(this.itemDrop);\n movedEvent.resolve = (value: boolean) => {\n this.hideLoading(this.itemDrag);\n this.hideLoading(this.itemDrop);\n if (value) {\n this.dragDropItem(this.itemDrag, this.itemDrop);\n } else {\n this.lockedDrag = false;\n }\n };\n this.onItemMoved.emit(movedEvent);\n }\n }\n\n e.stopImmediatePropagation();\n }\n\n sameChilde(parent, child) {\n if (parent[this.childField] && parent[this.childField].length > 0) {\n for (let index = 0; index < parent[this.childField].length; index++) {\n if (\n parent[this.childField][index][this.keyField] == child[this.keyField]\n ) {\n this.validDrop = false;\n }\n if (\n parent[this.childField][index][this.childField] &&\n parent[this.childField][index][this.childField].length > 0\n ) {\n this.sameChilde(parent[this.childField][index], child);\n }\n }\n } else if (parent[this.keyField] == child[this.keyField]) {\n this.validDrop = false;\n }\n }\n\n dragDropItem(itemChild, itemParent) {\n if (this.selectionLevel == 'nodes') {\n itemParent.disabledCheckBox = true;\n }\n\n if (itemChild.parentNode) {\n itemChild.parentNode[this.childField] = itemChild.parentNode[\n this.childField\n ].filter((c) => c[this.keyField] !== itemChild[this.keyField]);\n } else {\n this.list = this.list.filter(\n (c) => c[this.keyField] !== itemChild[this.keyField]\n );\n }\n itemChild.parentNode = itemParent;\n if (itemParent[this.childField] && itemParent[this.childField].length > 0) {\n itemParent[this.childField][itemParent[this.childField].length] =\n itemChild;\n } else {\n itemParent[this.childField] = [];\n itemParent[this.childField][0] = itemChild;\n if (itemParent[this.hasChildField] === true) {\n this.toggleNode(itemParent);\n } else {\n itemParent.toggle = !itemParent.toggle;\n itemParent.loaded = true;\n }\n itemParent[this.hasChildField] = true;\n }\n if (itemChild.parentNode && this.selectionMode !== 'single') {\n this.changeParentSelect(itemChild.parentNode);\n }\n this.lockedDrag = false;\n }\n\n private listChange(field, value) {\n for (let index = 0; index < this.list.length; index++) {\n this.changeChiled(this.list[index], field, value);\n }\n this.loadAllChildren = false;\n }\n\n private changeChiled(item, field, value) {\n if (\n field === 'toggle' &&\n (item.loaded === false || item.loaded === undefined)\n ) {\n if (this.loadAllChildren === true) {\n this.toggleNode(item);\n item[field] = value;\n }\n } else {\n item[field] = value;\n if (\n field === 'select' &&\n item[this.hasChildField] === false &&\n value === true\n ) {\n this.selectedItems.push(item);\n }\n if (\n field === 'select' &&\n item[this.hasChildField] === true &&\n value === true\n ) {\n this.selectedParents.push(item);\n }\n }\n if (field === 'select') {\n item.indeterminate = false;\n }\n if (\n item[this.hasChildField] === true &&\n item[this.childField] &&\n item[this.childField].length > 0\n ) {\n item[this.childField].forEach((element) => {\n this.changeChiled(element, field, value);\n });\n }\n }\n\n private showLoading(item): void {\n item.loading = true;\n }\n\n private hideLoading(item): void {\n if (item != null) {\n item.loading = false;\n }\n }\n\n public openAll(loadAll: boolean = false) {\n // if (loadAll) {\n // this.loadAllChildren = true;\n // this.listChange('toggle', true);\n //} else {\n this.listChange('toggle', true);\n // }\n }\n\n public selectItem(item) {\n if (item['select'] != true) {\n this.internalSelectItem(item, false);\n }\n }\n\n public unSelectItem(item) {\n if (item['select'] == true) {\n this.internalSelectItem(item, false);\n }\n }\n\n public open(item) {\n if (item['toggle'] !== true) {\n this.toggleNode(item, true);\n }\n }\n\n public scrolIntoView(item) {\n let element = document.querySelector(\n `li[data-id='${item[this.keyField]}']`\n );\n element.scrollIntoView();\n }\n\n public closeAll() {\n this.listChange('toggle', false);\n }\n\n public selectAll() {\n if (this.selectionMode !== 'single') {\n this.listChange('select', true);\n }\n }\n\n public unSelectAll() {\n if (this.selectionMode !== 'single') {\n this.listChange('select', false);\n }\n this.selectedItems = [];\n }\n\n public getSelectedNodes(): AXTreeViewNode[] {\n const selectItemsNode = [];\n this.selectedItems.forEach((e) => {\n selectItemsNode.push(this.makeNode(e));\n });\n return selectItemsNode;\n }\n\n public getSelectedParents(): AXTreeViewNode[] {\n const selectItemsParent = [];\n this.selectedParents.forEach((e) => {\n selectItemsParent.push(this.makeNode(e));\n });\n return selectItemsParent;\n }\n\n getParentsId(item) {\n let keyFields = [];\n keyFields.push(item[this.keyField]);\n if (item.parentNode) {\n keyFields.push(...this.getParentsId(item.parentNode));\n }\n return keyFields;\n }\n\n public getSelectedKeyFields() {\n let keyFields = [];\n this.selectedItems.forEach((elm) => {\n var Ids = this.getParentsId(elm);\n if (Ids) {\n keyFields.push(Ids);\n }\n });\n return keyFields;\n }\n\n public getSelectedKeyFieldsParents() {\n let keyFields = [];\n this.selectedParents.forEach((elm) => {\n var Ids = this.getParentsId(elm);\n if (Ids) {\n keyFields.push(Ids);\n }\n });\n return keyFields;\n }\n}\n","<ul class=\"ax treeview {{size}}\">\n <ng-template #recursiveList let-list>\n <ng-container *ngFor=\"let item of list\">\n <li class=\"active {{item[hasChildField] ? '':'node'}}\" [class.bordered]=\"bordered\"\n [class.selected]=\"item.select\" [draggable]=\"allowDrag\" (dragstart)=\"onDragStart($event, item)\"\n [attr.data-id]=\"item[keyField]\" (dragleave)=\"onDragEnd($event,item)\" (dragend)=drop($event)>\n <div [class.disabled]=\"disabled\" axContextMenu [contextDataItem]=\"item\"\n [contextMenuItems]=\"contextMenuItems\" [contextMenu]=\"menu\"\n (onContextMenuItemClick)=\"handleOnContextMenuItem($event)\"\n style=\"display: flex; cursor: pointer;align-items: center;\">\n <div class=\"start-side\">\n <div *ngIf=\"item[hasChildField]\" class=\"collapse-icon\"\n (click)=\"handleOnNodeClick($event,item,true)\">\n <i class=\"fal\"\n [ngClass]=\"{'fa-minus': !!item.toggle , 'fa-plus': !item.toggle , 'fa-spinner fa-spin':item.loading }\"></i>\n </div>\n\n <ax-check-box *ngIf=\"showSelectBox\" [disabled]=\"item.disabledCheckBox || disabled\" [size]=\"size\"\n [indeterminate]=\"true\" [value]=\"item.select\" (onClick)=\"internalSelectItem(item)\">\n </ax-check-box>\n\n\n </div>\n <div class=\"text-list\" (click)=\"nodeClick(item)\" (dblclick)=\"itemdbClick($event,item)\">\n <ng-container *ngIf=\"nodeTemplate; else elseTemplate\">\n <ng-container *ngTemplateOutlet=\"nodeTemplate; context:{ $implicit: item }\"></ng-container>\n </ng-container>\n <ng-template #elseTemplate>\n {{item.title}}\n </ng-template>\n </div>\n </div>\n <ul *ngIf=\"item.loading\">\n <i class=\"far \"></i>\n </ul>\n <ul class=\"child\" *ngIf=\"item.toggle\" style=\"background-color: white !important;\">\n <ng-container *ngTemplateOutlet=\"recursiveList; context:{ $implicit: item.childeren }\">\n </ng-container>\n </ul>\n </li>\n </ng-container>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"recursiveList; context:{ $implicit: list }\"></ng-container>\n</ul>\n\n<ax-context-menu #menu></ax-context-menu>","import { NgModule } from '@angular/core';\nimport { AXTreeViewComponent } from './tree-view.component';\nimport { CommonModule } from '@angular/common';\nimport { AXDataSourceModule } from '../data-source/datasource.module';\nimport { AXCheckBoxModule } from '../checkbox/checkbox.module';\nimport { AXContextMenuModule } from '../context-menu/context-menu.module';\n\n\n@NgModule({\n declarations: [AXTreeViewComponent],\n imports: [AXDataSourceModule, CommonModule, AXCheckBoxModule, AXContextMenuModule],\n exports: [AXTreeViewComponent],\n providers: []\n})\n\nexport class AXTreeViewModule { }","import {\n Component,\n ViewChild,\n Input,\n ElementRef,\n ViewEncapsulation,\n TemplateRef,\n Renderer2,\n EventEmitter,\n Output,\n ChangeDetectorRef\n} from '@angular/core';\nimport { AXUploadFileLoadEvent, AXUploadFileProgressEvent } from './upload-file.events';\nimport { AXProgressBarComponent } from '../progress-bar/progress-bar.component';\nimport { AXBaseTextComponent, AXElementSize, AXBaseSizableComponent, AXBaseComponent } from '../base/element.class';\nimport { AXRenderService } from '@acorex/core';\n\n@Component({\n selector: 'ax-upload-file',\n templateUrl: './upload-file.component.html',\n encapsulation: ViewEncapsulation.None,\n host: { style: 'display: block; width:100%; position: relative' }\n})\nexport class AXUploadFileComponent extends AXBaseComponent implements AXBaseSizableComponent {\n private overlayDiv: HTMLElement;\n\n @Input()\n contentType: 'image' | 'excel' | 'audio' | 'video' | 'video/image' | 'any' | 'json' = 'image';\n\n @Input()\n dropRef: HTMLElement;\n\n @Input()\n progressRef: HTMLElement;\n\n @Input()\n label: string;\n\n @Input()\n size: AXElementSize = \"md\";\n\n @ViewChild('fileInput') fileInput: ElementRef;\n\n @Input()\n type: 'box' | 'inline' | 'hidden' = 'inline';\n\n @Input()\n public template: TemplateRef<any>;\n\n @Input() disabled: boolean = false;\n @Output()\n onLoad: EventEmitter<AXUploadFileLoadEvent> = new EventEmitter<AXUploadFileLoadEvent>();\n\n @Output()\n onProgress: EventEmitter<AXUploadFileProgressEvent> = new EventEmitter<AXUploadFileProgressEvent>();\n\n @Output()\n onRemove: EventEmitter<any> = new EventEmitter();\n\n fileTypes: any[] = [\n {\n type: 'image',\n accept: ['image/gif', 'image/jpeg', 'image/png'],\n },\n {\n type: 'audio',\n accept: ['audio/mp3'],\n },\n {\n type: 'ebook',\n accept: ['application/pdf'],\n },\n {\n type: 'excel',\n accept: ['application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'],\n },\n {\n type: 'video',\n accept: ['video/*'],\n },\n {\n type: 'video/image',\n accept: ['image/gif', 'image/jpeg', 'image/png', 'video/*'],\n },\n {\n type: 'json',\n accept: ['application/json'],\n },\n {\n type: 'any',\n accept: ['*/*'],\n },\n ];\n\n\n\n files: File[] = [];\n focus() { }\n\n fileName: string = '';\n constructor(\n private el: ElementRef<HTMLElement>,\n private injectionService: AXRenderService,\n private rendrer: Renderer2,\n protected cdr: ChangeDetectorRef\n ) {\n super();\n }\n\n\n onDeleteClick(e) {\n e.stopPropagation();\n }\n\n onFileChange(e) {\n const files = e.target.files;\n this.addFile(files[0]);\n (this.fileInput.nativeElement as HTMLInputElement).value = null;\n }\n\n open() {\n this.fileInput.nativeElement.click({ accept: this.accessTypes });\n }\n remove() {\n this.fileInput.nativeElement.value = ''\n this.files = [];\n this.fileName = null\n this.onRemove.emit()\n }\n ngAfterViewInit(): void {\n if (this.dropRef != null) {\n } else {\n this.dropRef = this.el.nativeElement;\n }\n //\n if (this.progressRef != null) {\n } else {\n this.progressRef = this.el.nativeElement;\n }\n //\n if (this.type === 'hidden' || this.type === 'box') {\n this.overlayDiv = this.rendrer.createElement('div') as HTMLElement;\n this.overlayDiv.classList.add('overlay');\n this.overlayDiv.innerHTML = `\n <div class=\"icon-wrapper\">\n <i class=\"far fa-cloud-upload-alt fa-3x\"></i>\n <span>Drop File(s) Here</span>\n </div>\n `;\n this.overlayDiv.addEventListener('drag', this.handleOverlayDragOver);\n this.overlayDiv.addEventListener('dragover', this.handleOverlayDragOver);\n this.overlayDiv.addEventListener('dragleave', this.handleOverlayDragOver);\n this.rendrer.appendChild(this.dropRef, this.overlayDiv);\n }\n //\n this.dropRef.classList.add('ax-upload-drop-over');\n this.dropRef.addEventListener('dragover', this.handleDragOver.bind(this));\n this.dropRef.addEventListener('dragleave', this.handleDragLeave.bind(this));\n this.dropRef.addEventListener('drop', this.handleDrop.bind(this));\n }\n\n private handleOverlayDragOver(e: DragEvent) {\n e.preventDefault();\n e.stopPropagation();\n return false;\n }\n\n private handleDragOver(e: DragEvent) {\n e.preventDefault();\n e.stopPropagation();\n this.overlayDiv.classList.add('show');\n return false;\n }\n\n private handleDragLeave(e: DragEvent) {\n e.preventDefault();\n e.stopPropagation();\n this.overlayDiv.classList.remove('show');\n return false;\n }\n\n handleDrop(e: DragEvent) {\n this.handleDragLeave(e);\n for (let i = 0; i < e.dataTransfer.files.length; i++) {\n const file = e.dataTransfer.files[i];\n this.addFile(file);\n }\n }\n\n private addFile(file: File) {\n const progressDiv = this.rendrer.createElement('div') as HTMLElement;\n progressDiv.classList.add('ax-upload-progress-panel');\n const progressLabel = this.rendrer.createElement('small') as HTMLElement;\n progressLabel.innerText = file.name;\n this.fileName = file.name;\n this.rendrer.appendChild(this.progressRef, progressDiv);\n const com = this.injectionService.appendComponent(AXProgressBarComponent, { progress: 0 }, progressDiv).instance as AXProgressBarComponent;\n this.rendrer.appendChild(progressDiv, progressLabel);\n\n const reader = new FileReader();\n reader.addEventListener('load', (e) => {\n this.onLoad.emit({\n file,\n data: (e as any).target.result\n });\n //\n // Fake Upload\n let pv = 0;\n let uploaded = 0;\n const intv = setInterval(() => {\n uploaded += 1024 * 1000;\n if (uploaded > e.total) {\n uploaded = e.total;\n }\n pv = Math.ceil((uploaded / e.total) * 100);\n com.progress = pv;\n this.onProgress.emit({\n file,\n total: e.total,\n uploaded,\n value: pv\n });\n //\n if (com.progress >= 100) {\n clearInterval(intv);\n setTimeout(() => {\n this.rendrer.removeChild(this.progressRef, progressDiv);\n }, 1000);\n }\n }, 100);\n });\n reader.readAsDataURL(file);\n this.files.push(file);\n }\n\n get accessTypes(): string[] {\n return this.fileTypes.find((item) => item.type == this.contentType).accept;\n }\n}\n","<input #fileInput type=\"file\" [accept]=\"accessTypes.join(',')\" style=\"display: none;\" (change)=\"onFileChange($event)\" />\n\n<ng-container *ngIf=\"type == 'inline'; else elseTemplate\">\n <ax-form-group size=\"{{size}}\">\n <ax-text-box [value]=\"fileName\" readonly=\"true\" [disabled]=\"disabled\"></ax-text-box>\n <ax-button type=\"blank light\" icon=\"far fa-times\" (click)=\"remove()\" *ngIf=\"fileName\" [tabIndex]=\"-1\">\n </ax-button>\n <ax-button type=\"primary blank\" icon=\"far fa-upload\" (click)=\"open()\" [disabled]=\"disabled\" [tabIndex]=\"-1\">\n </ax-button>\n </ax-form-group>\n</ng-container>\n\n<ng-template #elseTemplate>\n <div class=\"ax upload-file-box\" (click)=\"open()\" #dropRef>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXUploadFileComponent } from './upload-file.component';\nimport { AXButtonModule } from '../button/button.module';\nimport { AXTextBoxModule } from '../textbox/textbox.module';\nimport { AXProgressBarModule } from '../progress-bar/progress-bar.module';\nimport { AXLabelModule } from '../label/label.module';\nimport { AXFormGroupModule } from '../form-group/form-group.module';\n\n@NgModule({\n declarations: [AXUploadFileComponent],\n imports: [CommonModule, AXButtonModule, AXTextBoxModule, AXProgressBarModule, AXLabelModule, AXFormGroupModule],\n exports: [AXUploadFileComponent],\n providers: []\n})\nexport class AXUploadFileModule {}\n","import { Component, Input, Output, EventEmitter, ContentChild, TemplateRef, ContentChildren, QueryList } from \"@angular/core\";\nimport { AXPanelBoxComponent } from \"../panel-box/panel-box.component\";\nimport { AXBaseComponent } from '../base/element.class';\n\n@Component({\n selector: \"ax-accordion\",\n template: \"<ng-content></ng-content>\",\n})\nexport class AXAccordionComponent extends AXBaseComponent {\n\n @ContentChildren(AXPanelBoxComponent)\n panels: QueryList<AXPanelBoxComponent>;\n\n @Input()\n multiple: boolean = false;\n\n constructor() {\n super()\n }\n\n ngAfterContentInit() {\n this.panels.forEach(p => {\n if (this.multiple == false)\n p.collapsed = true;\n p.collapsedChange.subscribe((v: boolean) => {\n this.handleCollapsedChanged(p, v);\n });\n });\n if (this.multiple == false)\n this.panels.first.collapsed = false;\n }\n\n private handleCollapsedChanged(panel: AXPanelBoxComponent, value: boolean) {\n if (value == false && this.multiple == false) {\n this.panels.forEach(p => {\n if (p != panel)\n p.collapsed = true;\n });\n }\n }\n\n\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { AXAccordionComponent } from \"./accordion.component\";\nimport { AXPanelBoxModule } from \"../panel-box/panel-box.module\";\n@NgModule({\n declarations: [AXAccordionComponent],\n imports: [CommonModule, AXPanelBoxModule],\n exports: [AXAccordionComponent],\n providers: []\n})\nexport class AXAccordionModule { }\n","//import { expressionType } from '@angular/compiler/src/output/output_ast';\n\n//import { from } from 'rxjs';\n\nexport * from './lib/base/element.class';\nexport * from './lib/base/events.class';\nexport * from './lib/base/base-page.class';\n\nexport * from './lib/button/button.component';\nexport * from './lib/button/button.module';\n\nexport * from './lib/calendar/calendar-box/calendar-box.component';\nexport * from './lib/calendar/calendar-box/calendar-box.module';\n\nexport * from './lib/calendar/scheduler/scheduler-views.property';\nexport * from './lib/calendar/scheduler/scheduler.class';\nexport * from './lib/calendar/scheduler/scheduler.component';\nexport * from './lib/calendar/scheduler/scheduler.module';\nexport * from './lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator';\nexport * from './lib/calendar/scheduler/toolbars/scheduler-toolbar-views';\nexport * from './lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component';\nexport * from './lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component';\nexport * from './lib/calendar/scheduler/views/month/scheduler-month-view.component';\nexport * from './lib/calendar/scheduler/views/scheduler-view.component';\nexport * from './lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component';\n\nexport * from './lib/checkbox/checkbox.component';\nexport * from './lib/checkbox/checkbox.module';\n\nexport * from './lib/context-menu/context-menu.component';\nexport * from './lib/context-menu/context-menu.directive';\nexport * from './lib/context-menu/context-menu.module';\n\nexport * from './lib/data-filter/columns/filter-column-date.component';\nexport * from './lib/data-filter/columns/filter-column-number.component';\nexport * from './lib/data-filter/columns/filter-column-selection.component';\nexport * from './lib/data-filter/columns/filter-column-string.component';\nexport * from './lib/data-filter/filter-panel/filter-panel.component';\nexport * from './lib/data-filter/filter.class';\nexport * from './lib/data-filter/filter.module';\nexport * from './lib/data-filter/toolbar/filter-toolbar.component';\nexport * from './lib/data-list/core/data-list.component';\nexport * from './lib/data-list/list/list.component';\nexport * from './lib/data-list/list/list.module';\nexport * from './lib/data-list/list/toolbar-list-view.component';\n\nexport * from './lib/data-source/datasource.component';\nexport * from './lib/data-source/datasource.module';\nexport * from './lib/data-source/read-param';\n\nexport * from './lib/date-picker/date-picker.component';\nexport * from './lib/date-picker/date-picker.module';\n\nexport * from './lib/dialog/dialog.component';\nexport * from './lib/dialog/dialog.module';\nexport * from './lib/dialog/dialog.service';\n\nexport * from './lib/drawer/drawer.component';\nexport * from './lib/drawer/content.component';\nexport * from './lib/drawer/drawer-container.component';\nexport * from './lib/drawer/drawer.module';\n\nexport * from './lib/dropdown/dropdown.component';\nexport * from './lib/dropdown/dropdown.module';\n\nexport * from './lib/fieldset/fieldset.component';\nexport * from './lib/fieldset/fieldset.module';\n\nexport * from './lib/form-group/form-group.component';\nexport * from './lib/form-group/form-group.module';\n\nexport * from './lib/label/label.component';\nexport * from './lib/label/label.module';\n\nexport * from './lib/loading/loading-indicator.component';\nexport * from './lib/loading/loading-panel.component';\nexport * from './lib/loading/loading.module';\nexport * from './lib/loading/loading.service';\n\nexport * from './lib/menu/menu.component';\nexport * from './lib/menu/menu-item.component';\nexport * from './lib/menu/menu2.component';\nexport * from './lib/menu/menu.module';\n\nexport * from './lib/number-box/number-box.component';\nexport * from './lib/number-box/number-box.module';\n\nexport * from './lib/page/content.component';\nexport * from './lib/page/footer.component';\nexport * from './lib/page/page.component';\nexport * from './lib/page/page.module';\n\nexport * from './lib/panel-box/panel-box.component';\nexport * from './lib/panel-box/panel-box.module';\n\nexport * from './lib/password-box/password-box.component';\nexport * from './lib/password-box/password-box.module';\n\nexport * from './lib/popover/popover.component';\nexport * from './lib/popover/popover.module';\nexport * from './lib/popover/overlay.service';\n\n\nexport * from './lib/popup/popup.component';\nexport * from './lib/popup/popup.module';\nexport * from './lib/popup/popup.service';\n\nexport * from './lib/progress-bar/progress-bar.component';\nexport * from './lib/progress-bar/progress-bar.module';\n\nexport * from './lib/query-builder/query-builder.component';\nexport * from './lib/query-builder/query-builder.module';\nexport * from './lib/query-builder/query-builder.service';\nexport * from './lib/query-builder/query-builder.class';\n\nexport * from './lib/searchbox/searchbox.component';\nexport * from './lib/searchbox/searchbox.module';\n\nexport * from './lib/search-bar/search-bar.component';\nexport * from './lib/search-bar/search-bar.module';\n\nexport * from './lib/selectbox/selectbox.component';\nexport * from './lib/selectbox/selectbox2.component';\nexport * from './lib/selectbox/selectbox.module';\n\n\nexport * from './lib/selection-list/selection-list.component';\nexport * from './lib/selection-list/selection-list.module';\n\nexport * from './lib/switch/switch.component';\nexport * from './lib/switch/switch.module';\n\nexport * from './lib/tab-page/tab-page-Renderer.component';\nexport * from './lib/tab-page/tab-page-host.component';\nexport * from './lib/tab-page/tab-page.module';\nexport * from './lib/tab-page/tab-page.service';\n\nexport * from './lib/tab-strip/tab-strip.component';\nexport * from './lib/tab-strip/tab-strip.module';\n\nexport * from './lib/tab-view/dynamic-tabs.directive';\nexport * from './lib/tab-view/tab-view.component';\nexport * from './lib/tab-view/tab-view.module';\nexport * from './lib/tab-view/tab.component';\n\nexport * from './lib/textarea/textarea.component';\nexport * from './lib/textarea/textarea.module';\n\nexport * from './lib/textbox/textbox.component';\nexport * from './lib/textbox/textbox.module';\n\nexport * from './lib/time-picker/time-picker.component';\nexport * from './lib/time-picker/time-picker.module';\n\nexport * from './lib/toast/toast-message/toast-message.component';\nexport * from './lib/toast/toast-wrapper/toast-wrapper.component';\nexport * from './lib/toast/toast.module';\nexport * from './lib/toast/toast.service';\n\nexport * from './lib/toolbar/group-button/toolbar-group-button.component';\nexport * from './lib/toolbar/menu/toolbar-menu.component';\nexport * from './lib/toolbar/search/toolbar-search.component';\nexport * from './lib/toolbar/title/toolbar-title.component';\nexport * from './lib/toolbar/toolbar-item';\nexport * from './lib/toolbar/toolbar.component';\nexport * from './lib/toolbar/toolbar.module';\n\nexport * from './lib/tooltip/tooltip.directive';\nexport * from './lib/tooltip/tooltip.module';\n\nexport * from './lib/tree-side-menu/tree-side-menu.component'\nexport * from './lib/tree-side-menu/tree-side-menu.module'\n\n\nexport * from './lib/tree-view/tree-view.component';\nexport * from './lib/tree-view/tree-view.module';\n\nexport * from './lib/upload-file/upload-file.component';\nexport * from './lib/upload-file/upload-file.events';\nexport * from './lib/upload-file/upload-file.module';\n\nexport * from './lib/accordion/accordion.component';\nexport * from './lib/accordion/accordion.module';\n\nexport * from './lib/validation/validation-form.component';\nexport * from './lib/validation/validation-rule.widget';\nexport * from './lib/validation/validation.class';\nexport * from './lib/validation/validation.component';\nexport * from './lib/validation/validation.module';\n\n\n\n\nexport * from './lib/property-editor/property-editor.class';\nexport * from './lib/property-editor/property-editor-renderer.directive';\nexport * from './lib/property-editor/property-editor.module';\nexport * from './lib/property-editor/editors/text-editor/text.editor';\nexport * from './lib/property-editor/editors/text-editor/text.module';\nexport * from './lib/property-editor/editors/selectbox-editor/selectbox.editor';\nexport * from './lib/property-editor/editors/selectbox-editor/selectbox.module';\nexport * from './lib/property-editor/editors/range-editor/range.editor';\nexport * from './lib/property-editor/editors/range-editor/range.module';\nexport * from './lib/property-editor/editors/color-editor/color.editor';\nexport * from './lib/property-editor/editors/color-editor/color.module';\nexport * from './lib/property-editor/editors/conditional-color-editor/conditional-color.editor';\nexport * from './lib/property-editor/editors/conditional-color-editor/conditional-color.module';\n\n\n\nexport * from './lib/color-picker/color-box/color-box.component';\nexport * from './lib/color-picker/color-picker.component';\nexport * from './lib/color-picker/color-picker.module';\n\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3","i1.DynamicOverlay","i2","i1","i2.AXOverlayService","i1.AXLoadingService","COMPONENT","MODULES","i2.AXButtonComponent","i1.AXOverlayService","i2.AXTooltipDirective","i1.AXMenuComponent","i1.AXToolbarMenuComponent","i1.AXCalendarBoxComponent","i2.AXToolbarMenuComponent","i3.AXPopoverComponent","i3.AXMenuItemComponent","COMPONENTS","i2.AXCheckBoxComponent","i3.AXButtonComponent","i4","i2.AXDropdownComponent","i3.AXCalendarBoxComponent","i4.AXButtonComponent","i5.AXTextBoxComponent","i1.AXDatePickerComponent","i2.AXSelectionListComponent","i3.AXTextBoxComponent","i1.AXSelectionListComponent","i1.AXToastService","i3.AXPanelBoxComponent","i4.AXCheckBoxComponent","i6.AXValidationComponent","i7.AXValidationRuleComponent","i8.AXToolbarComponent","i9.AXToolbarMenuComponent","i10.AXToolbarTitleComponent","i11.AXButtonComponent","i12.AXFilterColumnStringComponent","i13.AXFilterColumnSelectionComponent","i14.AXFilterColumnDateComponent","i15.AXFilterColumnNumberComponent","i2.AXMenuComponent","i2.AXLoadingService","i6.AXButtonComponent","i1.AXPopupService","i3.AXLoadingIndicatorComponent","i5.AXSearchBoxComponent","i6","i2.AXSelectBoxComponent","i3.AXDataSourceComponent","i4.AXTextBoxComponent","i5.AXNumberBoxComponent","i6.AXFormGroupComponent","i7.AXCheckBoxComponent","i8.AXDatePickerComponent","i9","i3.AXSelectBoxComponent","i4.AXDataSourceComponent","i6.AXNumberBoxComponent","i7.AXFormGroupComponent","i8.AXLabelComponent","i9.AXValidationFormComponent","i10.AXValidationComponent","i11.AXValidationRuleComponent","i12.AXDatePickerComponent","i2.AXToastService","i1.AXQueryBuilderService","i3.AXQueryBuilderRuleComponent","i2.AXQueryBuilderGroupComponent","i5.AXCheckBoxComponent","i6.AXSearchBoxComponent","i3.AXPropertyEditorRendererDirective","i4.AXLabelComponent","i5.AXValidationFormComponent","i6.AXPopoverComponent","i7","i1.AXCheckBoxComponent","i2.AXValidationComponent","i2.AXTextBoxComponent","i3.AXColorBoxComponent","i1.AXColorPickerComponent","i4.AXPageContentComponent","i5.AXPageComponent","i8.AXSelectBoxComponent","i9.AXDataSourceComponent","i10","i4.AXNumberBoxComponent","i5.AXColorPickerComponent","i6.AXLabelComponent","i7.AXPageContentComponent","i8.AXPageComponent","i9.AXButtonComponent","i10.AXSelectBoxComponent","i11.AXValidationFormComponent","i12.AXValidationComponent","i13.AXValidationRuleComponent","i14","i1.AXNumberBoxComponent","i12.AXButtonComponent","i13","i1.AXSelectBoxComponent","i2.AXDataSourceComponent","i3.AXValidationComponent","i1.AXSwitchComponent","i1.AXTextBoxComponent","i1.AXTextAreaComponent","i1.AXTimePickerComponent","i2.AXTabPageService","i3.AXLoadingService","i1.AXTabPageService","i2.DynamicTabsDirective","i3.AXContextMenuComponent","i4.AXContextMenuDirective","i5.AXFormGroupComponent"],"mappings":"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"}