@acorex/components 6.5.90 → 6.5.91

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 (543) hide show
  1. package/README.md +2 -6
  2. package/acorex-components.d.ts +5 -0
  3. package/esm2020/acorex-components.mjs +5 -0
  4. package/esm2020/lib/accordion/accordion.component.mjs +44 -0
  5. package/esm2020/lib/accordion/accordion.module.mjs +20 -0
  6. package/esm2020/lib/base/base-page.class.mjs +94 -0
  7. package/esm2020/lib/base/components.class.mjs +17 -0
  8. package/esm2020/lib/base/element.class.mjs +294 -0
  9. package/esm2020/lib/base/events.class.mjs +11 -0
  10. package/esm2020/lib/button/button.component.mjs +71 -0
  11. package/esm2020/lib/button/button.module.mjs +21 -0
  12. package/esm2020/lib/calendar/calendar-box/calendar-box.component.mjs +413 -0
  13. package/esm2020/lib/calendar/calendar-box/calendar-box.module.mjs +22 -0
  14. package/esm2020/lib/calendar/scheduler/scheduler-views.property.mjs +54 -0
  15. package/esm2020/lib/calendar/scheduler/scheduler.class.mjs +18 -0
  16. package/esm2020/lib/calendar/scheduler/scheduler.component.mjs +213 -0
  17. package/esm2020/lib/calendar/scheduler/scheduler.module.mjs +68 -0
  18. package/esm2020/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.mjs +132 -0
  19. package/esm2020/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.mjs +37 -0
  20. package/esm2020/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.mjs +47 -0
  21. package/esm2020/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.mjs +95 -0
  22. package/esm2020/lib/calendar/scheduler/views/month/scheduler-month-view.component.mjs +204 -0
  23. package/esm2020/lib/calendar/scheduler/views/scheduler-view.component.mjs +99 -0
  24. package/esm2020/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.mjs +77 -0
  25. package/esm2020/lib/checkbox/checkbox.component.mjs +98 -0
  26. package/esm2020/lib/checkbox/checkbox.module.mjs +20 -0
  27. package/esm2020/lib/color-picker/color-box/color-box.component.mjs +422 -0
  28. package/esm2020/lib/color-picker/color-picker.component.mjs +82 -0
  29. package/esm2020/lib/color-picker/color-picker.module.mjs +24 -0
  30. package/esm2020/lib/context-menu/context-menu.component.mjs +65 -0
  31. package/esm2020/lib/context-menu/context-menu.directive.mjs +135 -0
  32. package/esm2020/lib/context-menu/context-menu.module.mjs +20 -0
  33. package/esm2020/lib/data-filter/columns/filter-column-date.component.mjs +138 -0
  34. package/esm2020/lib/data-filter/columns/filter-column-number.component.mjs +117 -0
  35. package/esm2020/lib/data-filter/columns/filter-column-selection.component.mjs +74 -0
  36. package/esm2020/lib/data-filter/columns/filter-column-string.component.mjs +117 -0
  37. package/esm2020/lib/data-filter/filter-panel/filter-panel.component.mjs +258 -0
  38. package/esm2020/lib/data-filter/filter.class.mjs +44 -0
  39. package/esm2020/lib/data-filter/filter.module.mjs +90 -0
  40. package/esm2020/lib/data-filter/toolbar/filter-toolbar.component.mjs +166 -0
  41. package/esm2020/lib/data-list/core/data-list.component.mjs +40 -0
  42. package/esm2020/lib/data-list/list/list.component.mjs +124 -0
  43. package/esm2020/lib/data-list/list/list.module.mjs +22 -0
  44. package/esm2020/lib/data-list/list/toolbar-list-view.component.mjs +85 -0
  45. package/esm2020/lib/data-source/datasource.component.mjs +47 -0
  46. package/esm2020/lib/data-source/datasource.module.mjs +18 -0
  47. package/esm2020/lib/data-source/read-param.mjs +5 -0
  48. package/esm2020/lib/date-picker/date-picker.component.mjs +702 -0
  49. package/esm2020/lib/date-picker/date-picker.module.mjs +25 -0
  50. package/esm2020/lib/dialog/dialog.component.mjs +24 -0
  51. package/esm2020/lib/dialog/dialog.module.mjs +21 -0
  52. package/esm2020/lib/dialog/dialog.service.mjs +150 -0
  53. package/esm2020/lib/drawer/content.component.mjs +18 -0
  54. package/esm2020/lib/drawer/drawer-container.component.mjs +36 -0
  55. package/esm2020/lib/drawer/drawer.component.mjs +142 -0
  56. package/esm2020/lib/drawer/drawer.module.mjs +23 -0
  57. package/esm2020/lib/dropdown/dropdown.component.mjs +176 -0
  58. package/esm2020/lib/dropdown/dropdown.module.mjs +26 -0
  59. package/esm2020/lib/fieldset/fieldset.component.mjs +59 -0
  60. package/esm2020/lib/fieldset/fieldset.module.mjs +19 -0
  61. package/esm2020/lib/form-group/form-group.component.mjs +34 -0
  62. package/esm2020/lib/form-group/form-group.module.mjs +21 -0
  63. package/esm2020/lib/label/label.component.mjs +19 -0
  64. package/esm2020/lib/label/label.module.mjs +21 -0
  65. package/esm2020/lib/loading/loading-indicator.component.mjs +17 -0
  66. package/esm2020/lib/loading/loading-panel.component.mjs +44 -0
  67. package/esm2020/lib/loading/loading.module.mjs +21 -0
  68. package/{esm2022 → esm2020}/lib/loading/loading.service.mjs +45 -47
  69. package/esm2020/lib/menu/menu-item.component.mjs +47 -0
  70. package/esm2020/lib/menu/menu.component.mjs +86 -0
  71. package/esm2020/lib/menu/menu.module.mjs +22 -0
  72. package/esm2020/lib/menu/menu2.component.mjs +96 -0
  73. package/esm2020/lib/number-box/number-box.component.mjs +622 -0
  74. package/esm2020/lib/number-box/number-box.module.mjs +21 -0
  75. package/esm2020/lib/page/content.component.mjs +32 -0
  76. package/esm2020/lib/page/footer.component.mjs +19 -0
  77. package/esm2020/lib/page/page.component.mjs +53 -0
  78. package/esm2020/lib/page/page.module.mjs +22 -0
  79. package/esm2020/lib/panel-box/panel-box.component.mjs +88 -0
  80. package/esm2020/lib/panel-box/panel-box.module.mjs +19 -0
  81. package/esm2020/lib/password-box/password-box.component.mjs +31 -0
  82. package/esm2020/lib/password-box/password-box.module.mjs +23 -0
  83. package/esm2020/lib/popover/custom-cdk-overlay.service.mjs +48 -0
  84. package/esm2020/lib/popover/overlay.service.mjs +91 -0
  85. package/esm2020/lib/popover/popover.component.mjs +133 -0
  86. package/esm2020/lib/popover/popover.module.mjs +19 -0
  87. package/esm2020/lib/popup/popup.component.mjs +147 -0
  88. package/esm2020/lib/popup/popup.module.mjs +25 -0
  89. package/esm2020/lib/popup/popup.service.mjs +93 -0
  90. package/esm2020/lib/progress-bar/progress-bar.component.mjs +19 -0
  91. package/esm2020/lib/progress-bar/progress-bar.module.mjs +19 -0
  92. package/esm2020/lib/property-editor/editors/check-editor/check-editor.mjs +61 -0
  93. package/esm2020/lib/property-editor/editors/check-editor/check.module.mjs +22 -0
  94. package/esm2020/lib/property-editor/editors/color-editor/color.editor.mjs +38 -0
  95. package/esm2020/lib/property-editor/editors/color-editor/color.module.mjs +24 -0
  96. package/esm2020/lib/property-editor/editors/column-editor/column.editor.mjs +115 -0
  97. package/esm2020/lib/property-editor/editors/column-editor/column.module.mjs +32 -0
  98. package/esm2020/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.mjs +211 -0
  99. package/esm2020/lib/property-editor/editors/conditional-color-editor/conditional-color.module.mjs +78 -0
  100. package/esm2020/lib/property-editor/editors/date-editor/date.editor.mjs +51 -0
  101. package/esm2020/lib/property-editor/editors/date-editor/date.module.mjs +24 -0
  102. package/esm2020/lib/property-editor/editors/number-editor/number.editor.mjs +63 -0
  103. package/esm2020/lib/property-editor/editors/number-editor/number.module.mjs +24 -0
  104. package/esm2020/lib/property-editor/editors/range-editor/range.editor.mjs +140 -0
  105. package/esm2020/lib/property-editor/editors/range-editor/range.module.mjs +61 -0
  106. package/esm2020/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.mjs +72 -0
  107. package/esm2020/lib/property-editor/editors/selectbox-editor/selectbox.editor.mjs +71 -0
  108. package/esm2020/lib/property-editor/editors/selectbox-editor/selectbox.module.mjs +25 -0
  109. package/esm2020/lib/property-editor/editors/selection-editor/selection-editor.mjs +69 -0
  110. package/esm2020/lib/property-editor/editors/selection-editor/selection.module.mjs +22 -0
  111. package/esm2020/lib/property-editor/editors/switch-editor/number.editor.mjs +29 -0
  112. package/esm2020/lib/property-editor/editors/switch-editor/number.module.mjs +25 -0
  113. package/esm2020/lib/property-editor/editors/text-editor/text.editor.mjs +32 -0
  114. package/esm2020/lib/property-editor/editors/text-editor/text.module.mjs +24 -0
  115. package/esm2020/lib/property-editor/editors/textarea-editor/textarea.editor.mjs +32 -0
  116. package/esm2020/lib/property-editor/editors/textarea-editor/textarea.module.mjs +24 -0
  117. package/esm2020/lib/property-editor/editors/time-editor/time.editor.mjs +43 -0
  118. package/esm2020/lib/property-editor/editors/time-editor/time.module.mjs +24 -0
  119. package/esm2020/lib/property-editor/property-editor-renderer.directive.mjs +157 -0
  120. package/esm2020/lib/property-editor/property-editor.class.mjs +102 -0
  121. package/esm2020/lib/property-editor/property-editor.module.mjs +196 -0
  122. package/esm2020/lib/query-builder/query-builder-group.component.mjs +124 -0
  123. package/esm2020/lib/query-builder/query-builder-popup/query-builder-popup.component.mjs +172 -0
  124. package/esm2020/lib/query-builder/query-builder-rule.component.mjs +399 -0
  125. package/esm2020/lib/query-builder/query-builder.class.mjs +20 -0
  126. package/esm2020/lib/query-builder/query-builder.component.mjs +87 -0
  127. package/esm2020/lib/query-builder/query-builder.module.mjs +62 -0
  128. package/esm2020/lib/query-builder/query-builder.service.mjs +197 -0
  129. package/esm2020/lib/search-bar/search-bar.component.mjs +286 -0
  130. package/esm2020/lib/search-bar/search-bar.module.mjs +63 -0
  131. package/esm2020/lib/searchbox/searchbox.component.mjs +81 -0
  132. package/esm2020/lib/searchbox/searchbox.module.mjs +24 -0
  133. package/esm2020/lib/selectbox/selectbox.component.mjs +961 -0
  134. package/esm2020/lib/selectbox/selectbox.module.mjs +44 -0
  135. package/esm2020/lib/selectbox/selectbox2.component.mjs +574 -0
  136. package/esm2020/lib/selection-list/selection-list.component.mjs +108 -0
  137. package/esm2020/lib/selection-list/selection-list.module.mjs +21 -0
  138. package/esm2020/lib/switch/switch.component.mjs +51 -0
  139. package/esm2020/lib/switch/switch.module.mjs +20 -0
  140. package/esm2020/lib/tab-page/tab-page-Renderer.component.mjs +71 -0
  141. package/esm2020/lib/tab-page/tab-page-host.component.mjs +114 -0
  142. package/esm2020/lib/tab-page/tab-page.module.mjs +21 -0
  143. package/esm2020/lib/tab-page/tab-page.service.mjs +160 -0
  144. package/esm2020/lib/tab-strip/tab-strip.component.mjs +36 -0
  145. package/esm2020/lib/tab-strip/tab-strip.module.mjs +19 -0
  146. package/esm2020/lib/tab-view/dynamic-tabs.directive.mjs +24 -0
  147. package/esm2020/lib/tab-view/tab-view.component.mjs +105 -0
  148. package/esm2020/lib/tab-view/tab-view.module.mjs +21 -0
  149. package/esm2020/lib/tab-view/tab.component.mjs +30 -0
  150. package/esm2020/lib/textarea/textarea.component.mjs +26 -0
  151. package/esm2020/lib/textarea/textarea.module.mjs +21 -0
  152. package/esm2020/lib/textbox/textbox.component.mjs +39 -0
  153. package/esm2020/lib/textbox/textbox.module.mjs +24 -0
  154. package/esm2020/lib/time-picker/time-picker.component.mjs +943 -0
  155. package/esm2020/lib/time-picker/time-picker.module.mjs +22 -0
  156. package/esm2020/lib/toast/toast-message/toast-message.component.mjs +74 -0
  157. package/esm2020/lib/toast/toast-wrapper/toast-wrapper.component.mjs +13 -0
  158. package/esm2020/lib/toast/toast.module.mjs +21 -0
  159. package/esm2020/lib/toast/toast.service.mjs +44 -0
  160. package/esm2020/lib/toolbar/group-button/toolbar-group-button.component.mjs +78 -0
  161. package/esm2020/lib/toolbar/menu/toolbar-menu.component.mjs +57 -0
  162. package/esm2020/lib/toolbar/search/toolbar-search.component.mjs +54 -0
  163. package/esm2020/lib/toolbar/title/toolbar-title.component.mjs +47 -0
  164. package/esm2020/lib/toolbar/toolbar-item.mjs +6 -0
  165. package/esm2020/lib/toolbar/toolbar.component.mjs +13 -0
  166. package/esm2020/lib/toolbar/toolbar.module.mjs +40 -0
  167. package/esm2020/lib/tooltip/tooltip.directive.mjs +100 -0
  168. package/esm2020/lib/tooltip/tooltip.module.mjs +19 -0
  169. package/esm2020/lib/tree-side-menu/tree-side-menu.component.mjs +646 -0
  170. package/esm2020/lib/tree-side-menu/tree-side-menu.module.mjs +35 -0
  171. package/esm2020/lib/tree-view/tree-view.component.mjs +775 -0
  172. package/esm2020/lib/tree-view/tree-view.module.mjs +22 -0
  173. package/esm2020/lib/upload-file/upload-file.component.mjs +208 -0
  174. package/esm2020/lib/upload-file/upload-file.events.mjs +2 -0
  175. package/esm2020/lib/upload-file/upload-file.module.mjs +24 -0
  176. package/esm2020/lib/validation/validation-form.component.mjs +65 -0
  177. package/esm2020/lib/validation/validation-rule.widget.mjs +111 -0
  178. package/esm2020/lib/validation/validation.class.mjs +2 -0
  179. package/esm2020/lib/validation/validation.component.mjs +89 -0
  180. package/esm2020/lib/validation/validation.module.mjs +34 -0
  181. package/esm2020/public-api.mjs +158 -0
  182. package/fesm2015/acorex-components.mjs +16013 -0
  183. package/fesm2015/acorex-components.mjs.map +1 -0
  184. package/{fesm2022 → fesm2020}/acorex-components.mjs +15212 -16111
  185. package/fesm2020/acorex-components.mjs.map +1 -0
  186. package/lib/accordion/accordion.component.d.ts +13 -13
  187. package/lib/accordion/accordion.module.d.ts +9 -9
  188. package/lib/base/base-page.class.d.ts +46 -46
  189. package/lib/base/components.class.d.ts +10 -10
  190. package/lib/base/element.class.d.ts +106 -106
  191. package/lib/base/events.class.d.ts +18 -18
  192. package/lib/button/button.component.d.ts +21 -21
  193. package/lib/button/button.module.d.ts +8 -8
  194. package/lib/calendar/calendar-box/calendar-box.component.d.ts +81 -81
  195. package/lib/calendar/calendar-box/calendar-box.module.d.ts +11 -11
  196. package/lib/calendar/scheduler/scheduler-views.property.d.ts +19 -19
  197. package/lib/calendar/scheduler/scheduler.class.d.ts +36 -36
  198. package/lib/calendar/scheduler/scheduler.component.d.ts +39 -39
  199. package/lib/calendar/scheduler/scheduler.module.d.ts +21 -21
  200. package/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.d.ts +25 -25
  201. package/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.d.ts +14 -14
  202. package/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.d.ts +16 -16
  203. package/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.d.ts +26 -26
  204. package/lib/calendar/scheduler/views/month/scheduler-month-view.component.d.ts +37 -37
  205. package/lib/calendar/scheduler/views/scheduler-view.component.d.ts +28 -28
  206. package/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.d.ts +24 -24
  207. package/lib/checkbox/checkbox.component.d.ts +30 -30
  208. package/lib/checkbox/checkbox.module.d.ts +9 -9
  209. package/lib/color-picker/color-box/color-box.component.d.ts +25 -25
  210. package/lib/color-picker/color-picker.component.d.ts +30 -30
  211. package/lib/color-picker/color-picker.module.d.ts +13 -13
  212. package/lib/context-menu/context-menu.component.d.ts +22 -22
  213. package/lib/context-menu/context-menu.directive.d.ts +38 -38
  214. package/lib/context-menu/context-menu.module.d.ts +9 -9
  215. package/lib/data-filter/columns/filter-column-date.component.d.ts +22 -22
  216. package/lib/data-filter/columns/filter-column-number.component.d.ts +15 -15
  217. package/lib/data-filter/columns/filter-column-selection.component.d.ts +18 -18
  218. package/lib/data-filter/columns/filter-column-string.component.d.ts +15 -15
  219. package/lib/data-filter/filter-panel/filter-panel.component.d.ts +45 -45
  220. package/lib/data-filter/filter.class.d.ts +40 -40
  221. package/lib/data-filter/filter.module.d.ts +24 -24
  222. package/lib/data-filter/toolbar/filter-toolbar.component.d.ts +25 -25
  223. package/lib/data-list/core/data-list.component.d.ts +15 -15
  224. package/lib/data-list/list/list.component.d.ts +40 -40
  225. package/lib/data-list/list/list.module.d.ts +11 -11
  226. package/lib/data-list/list/toolbar-list-view.component.d.ts +17 -17
  227. package/lib/data-source/datasource.component.d.ts +16 -16
  228. package/lib/data-source/datasource.module.d.ts +7 -7
  229. package/lib/data-source/read-param.d.ts +40 -40
  230. package/lib/date-picker/date-picker.component.d.ts +81 -81
  231. package/lib/date-picker/date-picker.module.d.ts +14 -14
  232. package/lib/dialog/dialog.component.d.ts +14 -14
  233. package/lib/dialog/dialog.module.d.ts +10 -10
  234. package/lib/dialog/dialog.service.d.ts +36 -36
  235. package/lib/drawer/content.component.d.ts +7 -7
  236. package/lib/drawer/drawer-container.component.d.ts +10 -10
  237. package/lib/drawer/drawer.component.d.ts +34 -34
  238. package/lib/drawer/drawer.module.d.ts +10 -10
  239. package/lib/dropdown/dropdown.component.d.ts +38 -38
  240. package/lib/dropdown/dropdown.module.d.ts +13 -13
  241. package/lib/fieldset/fieldset.component.d.ts +11 -11
  242. package/lib/fieldset/fieldset.module.d.ts +8 -8
  243. package/lib/form-group/form-group.component.d.ts +14 -14
  244. package/lib/form-group/form-group.module.d.ts +8 -8
  245. package/lib/label/label.component.d.ts +9 -9
  246. package/lib/label/label.module.d.ts +8 -8
  247. package/lib/loading/loading-indicator.component.d.ts +9 -9
  248. package/lib/loading/loading-panel.component.d.ts +13 -13
  249. package/lib/loading/loading.module.d.ts +10 -10
  250. package/lib/loading/loading.service.d.ts +13 -13
  251. package/lib/menu/menu-item.component.d.ts +18 -18
  252. package/lib/menu/menu.component.d.ts +35 -35
  253. package/lib/menu/menu.module.d.ts +11 -11
  254. package/lib/menu/menu2.component.d.ts +21 -21
  255. package/lib/number-box/number-box.component.d.ts +52 -52
  256. package/lib/number-box/number-box.module.d.ts +10 -10
  257. package/lib/page/content.component.d.ts +8 -8
  258. package/lib/page/footer.component.d.ts +5 -5
  259. package/lib/page/page.component.d.ts +16 -16
  260. package/lib/page/page.module.d.ts +11 -11
  261. package/lib/panel-box/panel-box.component.d.ts +19 -19
  262. package/lib/panel-box/panel-box.module.d.ts +8 -8
  263. package/lib/password-box/password-box.component.d.ts +12 -12
  264. package/lib/password-box/password-box.module.d.ts +10 -10
  265. package/lib/popover/custom-cdk-overlay.service.d.ts +19 -19
  266. package/lib/popover/overlay.service.d.ts +32 -32
  267. package/lib/popover/popover.component.d.ts +35 -35
  268. package/lib/popover/popover.module.d.ts +8 -8
  269. package/lib/popup/popup.component.d.ts +40 -40
  270. package/lib/popup/popup.module.d.ts +13 -13
  271. package/lib/popup/popup.service.d.ts +22 -22
  272. package/lib/progress-bar/progress-bar.component.d.ts +7 -7
  273. package/lib/progress-bar/progress-bar.module.d.ts +8 -8
  274. package/lib/property-editor/editors/check-editor/check-editor.d.ts +19 -19
  275. package/lib/property-editor/editors/check-editor/check.module.d.ts +11 -11
  276. package/lib/property-editor/editors/color-editor/color.editor.d.ts +13 -13
  277. package/lib/property-editor/editors/color-editor/color.module.d.ts +12 -12
  278. package/lib/property-editor/editors/column-editor/column.editor.d.ts +34 -34
  279. package/lib/property-editor/editors/column-editor/column.module.d.ts +20 -20
  280. package/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.d.ts +44 -44
  281. package/lib/property-editor/editors/conditional-color-editor/conditional-color.module.d.ts +19 -19
  282. package/lib/property-editor/editors/date-editor/date.editor.d.ts +28 -28
  283. package/lib/property-editor/editors/date-editor/date.module.d.ts +12 -12
  284. package/lib/property-editor/editors/number-editor/number.editor.d.ts +20 -20
  285. package/lib/property-editor/editors/number-editor/number.module.d.ts +12 -12
  286. package/lib/property-editor/editors/range-editor/range.editor.d.ts +29 -29
  287. package/lib/property-editor/editors/range-editor/range.module.d.ts +18 -18
  288. package/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.d.ts +29 -29
  289. package/lib/property-editor/editors/selectbox-editor/selectbox.editor.d.ts +28 -28
  290. package/lib/property-editor/editors/selectbox-editor/selectbox.module.d.ts +14 -14
  291. package/lib/property-editor/editors/selection-editor/selection-editor.d.ts +25 -25
  292. package/lib/property-editor/editors/selection-editor/selection.module.d.ts +11 -11
  293. package/lib/property-editor/editors/switch-editor/number.editor.d.ts +11 -11
  294. package/lib/property-editor/editors/switch-editor/number.module.d.ts +13 -13
  295. package/lib/property-editor/editors/text-editor/text.editor.d.ts +18 -18
  296. package/lib/property-editor/editors/text-editor/text.module.d.ts +12 -12
  297. package/lib/property-editor/editors/textarea-editor/textarea.editor.d.ts +17 -17
  298. package/lib/property-editor/editors/textarea-editor/textarea.module.d.ts +12 -12
  299. package/lib/property-editor/editors/time-editor/time.editor.d.ts +17 -17
  300. package/lib/property-editor/editors/time-editor/time.module.d.ts +12 -12
  301. package/lib/property-editor/property-editor-renderer.directive.d.ts +31 -31
  302. package/lib/property-editor/property-editor.class.d.ts +93 -93
  303. package/lib/property-editor/property-editor.module.d.ts +21 -21
  304. package/lib/query-builder/query-builder-group.component.d.ts +33 -33
  305. package/lib/query-builder/query-builder-popup/query-builder-popup.component.d.ts +35 -35
  306. package/lib/query-builder/query-builder-rule.component.d.ts +45 -45
  307. package/lib/query-builder/query-builder.class.d.ts +45 -45
  308. package/lib/query-builder/query-builder.component.d.ts +29 -29
  309. package/lib/query-builder/query-builder.module.d.ts +23 -23
  310. package/lib/query-builder/query-builder.service.d.ts +18 -18
  311. package/lib/search-bar/search-bar.component.d.ts +62 -62
  312. package/lib/search-bar/search-bar.module.d.ts +18 -18
  313. package/lib/searchbox/searchbox.component.d.ts +22 -22
  314. package/lib/searchbox/searchbox.module.d.ts +13 -13
  315. package/lib/selectbox/selectbox.component.d.ts +118 -118
  316. package/lib/selectbox/selectbox.module.d.ts +15 -15
  317. package/lib/selectbox/selectbox2.component.d.ts +103 -103
  318. package/lib/selection-list/selection-list.component.d.ts +32 -32
  319. package/lib/selection-list/selection-list.module.d.ts +10 -10
  320. package/lib/switch/switch.component.d.ts +20 -20
  321. package/lib/switch/switch.module.d.ts +9 -9
  322. package/lib/tab-page/tab-page-Renderer.component.d.ts +16 -16
  323. package/lib/tab-page/tab-page-host.component.d.ts +24 -24
  324. package/lib/tab-page/tab-page.module.d.ts +10 -10
  325. package/lib/tab-page/tab-page.service.d.ts +30 -30
  326. package/lib/tab-strip/tab-strip.component.d.ts +28 -28
  327. package/lib/tab-strip/tab-strip.module.d.ts +8 -8
  328. package/lib/tab-view/dynamic-tabs.directive.d.ts +16 -16
  329. package/lib/tab-view/tab-view.component.d.ts +26 -26
  330. package/lib/tab-view/tab-view.module.d.ts +10 -10
  331. package/lib/tab-view/tab.component.d.ts +12 -12
  332. package/lib/textarea/textarea.component.d.ts +12 -12
  333. package/lib/textarea/textarea.module.d.ts +8 -8
  334. package/lib/textbox/textbox.component.d.ts +16 -16
  335. package/lib/textbox/textbox.module.d.ts +11 -11
  336. package/lib/time-picker/time-picker.component.d.ts +52 -52
  337. package/lib/time-picker/time-picker.module.d.ts +11 -11
  338. package/lib/toast/toast-message/toast-message.component.d.ts +18 -18
  339. package/lib/toast/toast-wrapper/toast-wrapper.component.d.ts +8 -8
  340. package/lib/toast/toast.module.d.ts +9 -9
  341. package/lib/toast/toast.service.d.ts +18 -18
  342. package/lib/toolbar/group-button/toolbar-group-button.component.d.ts +12 -12
  343. package/lib/toolbar/menu/toolbar-menu.component.d.ts +24 -24
  344. package/lib/toolbar/search/toolbar-search.component.d.ts +16 -16
  345. package/lib/toolbar/title/toolbar-title.component.d.ts +9 -9
  346. package/lib/toolbar/toolbar-item.d.ts +3 -3
  347. package/lib/toolbar/toolbar.component.d.ts +8 -8
  348. package/lib/toolbar/toolbar.module.d.ts +14 -14
  349. package/lib/tooltip/tooltip.directive.d.ts +21 -21
  350. package/lib/tooltip/tooltip.module.d.ts +8 -8
  351. package/lib/tree-side-menu/tree-side-menu.component.d.ts +111 -111
  352. package/lib/tree-side-menu/tree-side-menu.module.d.ts +11 -11
  353. package/lib/tree-view/tree-view.component.d.ts +121 -121
  354. package/lib/tree-view/tree-view.module.d.ts +11 -11
  355. package/lib/upload-file/upload-file.component.d.ts +42 -42
  356. package/lib/upload-file/upload-file.events.d.ts +10 -10
  357. package/lib/upload-file/upload-file.module.d.ts +13 -13
  358. package/lib/validation/validation-form.component.d.ts +19 -19
  359. package/lib/validation/validation-rule.widget.d.ts +23 -23
  360. package/lib/validation/validation.class.d.ts +16 -16
  361. package/lib/validation/validation.component.d.ts +25 -25
  362. package/lib/validation/validation.module.d.ts +11 -11
  363. package/package.json +20 -15
  364. package/{index.d.ts → public-api.d.ts} +155 -155
  365. package/esm2022/acorex-components.mjs +0 -5
  366. package/esm2022/index.mjs +0 -158
  367. package/esm2022/lib/accordion/accordion.component.mjs +0 -45
  368. package/esm2022/lib/accordion/accordion.module.mjs +0 -20
  369. package/esm2022/lib/base/base-page.class.mjs +0 -95
  370. package/esm2022/lib/base/components.class.mjs +0 -17
  371. package/esm2022/lib/base/element.class.mjs +0 -301
  372. package/esm2022/lib/base/events.class.mjs +0 -17
  373. package/esm2022/lib/button/button.component.mjs +0 -74
  374. package/esm2022/lib/button/button.module.mjs +0 -21
  375. package/esm2022/lib/calendar/calendar-box/calendar-box.component.mjs +0 -426
  376. package/esm2022/lib/calendar/calendar-box/calendar-box.module.mjs +0 -22
  377. package/esm2022/lib/calendar/scheduler/scheduler-views.property.mjs +0 -59
  378. package/esm2022/lib/calendar/scheduler/scheduler.class.mjs +0 -16
  379. package/esm2022/lib/calendar/scheduler/scheduler.component.mjs +0 -226
  380. package/esm2022/lib/calendar/scheduler/scheduler.module.mjs +0 -68
  381. package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.mjs +0 -136
  382. package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.mjs +0 -37
  383. package/esm2022/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.mjs +0 -49
  384. package/esm2022/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.mjs +0 -102
  385. package/esm2022/lib/calendar/scheduler/views/month/scheduler-month-view.component.mjs +0 -214
  386. package/esm2022/lib/calendar/scheduler/views/scheduler-view.component.mjs +0 -99
  387. package/esm2022/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.mjs +0 -85
  388. package/esm2022/lib/checkbox/checkbox.component.mjs +0 -102
  389. package/esm2022/lib/checkbox/checkbox.module.mjs +0 -20
  390. package/esm2022/lib/color-picker/color-box/color-box.component.mjs +0 -423
  391. package/esm2022/lib/color-picker/color-picker.component.mjs +0 -89
  392. package/esm2022/lib/color-picker/color-picker.module.mjs +0 -24
  393. package/esm2022/lib/context-menu/context-menu.component.mjs +0 -68
  394. package/esm2022/lib/context-menu/context-menu.directive.mjs +0 -146
  395. package/esm2022/lib/context-menu/context-menu.module.mjs +0 -20
  396. package/esm2022/lib/data-filter/columns/filter-column-date.component.mjs +0 -140
  397. package/esm2022/lib/data-filter/columns/filter-column-number.component.mjs +0 -119
  398. package/esm2022/lib/data-filter/columns/filter-column-selection.component.mjs +0 -75
  399. package/esm2022/lib/data-filter/columns/filter-column-string.component.mjs +0 -119
  400. package/esm2022/lib/data-filter/filter-panel/filter-panel.component.mjs +0 -267
  401. package/esm2022/lib/data-filter/filter.class.mjs +0 -46
  402. package/esm2022/lib/data-filter/filter.module.mjs +0 -88
  403. package/esm2022/lib/data-filter/toolbar/filter-toolbar.component.mjs +0 -168
  404. package/esm2022/lib/data-list/core/data-list.component.mjs +0 -37
  405. package/esm2022/lib/data-list/list/list.component.mjs +0 -134
  406. package/esm2022/lib/data-list/list/list.module.mjs +0 -22
  407. package/esm2022/lib/data-list/list/toolbar-list-view.component.mjs +0 -84
  408. package/esm2022/lib/data-source/datasource.component.mjs +0 -47
  409. package/esm2022/lib/data-source/datasource.module.mjs +0 -18
  410. package/esm2022/lib/data-source/read-param.mjs +0 -7
  411. package/esm2022/lib/date-picker/date-picker.component.mjs +0 -718
  412. package/esm2022/lib/date-picker/date-picker.module.mjs +0 -49
  413. package/esm2022/lib/dialog/dialog.component.mjs +0 -26
  414. package/esm2022/lib/dialog/dialog.module.mjs +0 -21
  415. package/esm2022/lib/dialog/dialog.service.mjs +0 -160
  416. package/esm2022/lib/drawer/content.component.mjs +0 -18
  417. package/esm2022/lib/drawer/drawer-container.component.mjs +0 -38
  418. package/esm2022/lib/drawer/drawer.component.mjs +0 -146
  419. package/esm2022/lib/drawer/drawer.module.mjs +0 -23
  420. package/esm2022/lib/dropdown/dropdown.component.mjs +0 -186
  421. package/esm2022/lib/dropdown/dropdown.module.mjs +0 -26
  422. package/esm2022/lib/fieldset/fieldset.component.mjs +0 -57
  423. package/esm2022/lib/fieldset/fieldset.module.mjs +0 -19
  424. package/esm2022/lib/form-group/form-group.component.mjs +0 -37
  425. package/esm2022/lib/form-group/form-group.module.mjs +0 -21
  426. package/esm2022/lib/label/label.component.mjs +0 -19
  427. package/esm2022/lib/label/label.module.mjs +0 -21
  428. package/esm2022/lib/loading/loading-indicator.component.mjs +0 -18
  429. package/esm2022/lib/loading/loading-panel.component.mjs +0 -45
  430. package/esm2022/lib/loading/loading.module.mjs +0 -21
  431. package/esm2022/lib/menu/menu-item.component.mjs +0 -50
  432. package/esm2022/lib/menu/menu.component.mjs +0 -98
  433. package/esm2022/lib/menu/menu.module.mjs +0 -22
  434. package/esm2022/lib/menu/menu2.component.mjs +0 -100
  435. package/esm2022/lib/number-box/number-box.component.mjs +0 -628
  436. package/esm2022/lib/number-box/number-box.module.mjs +0 -21
  437. package/esm2022/lib/page/content.component.mjs +0 -27
  438. package/esm2022/lib/page/footer.component.mjs +0 -19
  439. package/esm2022/lib/page/page.component.mjs +0 -57
  440. package/esm2022/lib/page/page.module.mjs +0 -22
  441. package/esm2022/lib/panel-box/panel-box.component.mjs +0 -87
  442. package/esm2022/lib/panel-box/panel-box.module.mjs +0 -19
  443. package/esm2022/lib/password-box/password-box.component.mjs +0 -32
  444. package/esm2022/lib/password-box/password-box.module.mjs +0 -23
  445. package/esm2022/lib/popover/custom-cdk-overlay.service.mjs +0 -50
  446. package/esm2022/lib/popover/overlay.service.mjs +0 -94
  447. package/esm2022/lib/popover/popover.component.mjs +0 -145
  448. package/esm2022/lib/popover/popover.module.mjs +0 -19
  449. package/esm2022/lib/popup/popup.component.mjs +0 -159
  450. package/esm2022/lib/popup/popup.module.mjs +0 -25
  451. package/esm2022/lib/popup/popup.service.mjs +0 -94
  452. package/esm2022/lib/progress-bar/progress-bar.component.mjs +0 -16
  453. package/esm2022/lib/progress-bar/progress-bar.module.mjs +0 -19
  454. package/esm2022/lib/property-editor/editors/check-editor/check-editor.mjs +0 -65
  455. package/esm2022/lib/property-editor/editors/check-editor/check.module.mjs +0 -22
  456. package/esm2022/lib/property-editor/editors/color-editor/color.editor.mjs +0 -41
  457. package/esm2022/lib/property-editor/editors/color-editor/color.module.mjs +0 -24
  458. package/esm2022/lib/property-editor/editors/column-editor/column.editor.mjs +0 -118
  459. package/esm2022/lib/property-editor/editors/column-editor/column.module.mjs +0 -32
  460. package/esm2022/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.mjs +0 -216
  461. package/esm2022/lib/property-editor/editors/conditional-color-editor/conditional-color.module.mjs +0 -76
  462. package/esm2022/lib/property-editor/editors/date-editor/date.editor.mjs +0 -87
  463. package/esm2022/lib/property-editor/editors/date-editor/date.module.mjs +0 -24
  464. package/esm2022/lib/property-editor/editors/number-editor/number.editor.mjs +0 -66
  465. package/esm2022/lib/property-editor/editors/number-editor/number.module.mjs +0 -24
  466. package/esm2022/lib/property-editor/editors/range-editor/range.editor.mjs +0 -145
  467. package/esm2022/lib/property-editor/editors/range-editor/range.module.mjs +0 -59
  468. package/esm2022/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.mjs +0 -76
  469. package/esm2022/lib/property-editor/editors/selectbox-editor/selectbox.editor.mjs +0 -75
  470. package/esm2022/lib/property-editor/editors/selectbox-editor/selectbox.module.mjs +0 -25
  471. package/esm2022/lib/property-editor/editors/selection-editor/selection-editor.mjs +0 -73
  472. package/esm2022/lib/property-editor/editors/selection-editor/selection.module.mjs +0 -22
  473. package/esm2022/lib/property-editor/editors/switch-editor/number.editor.mjs +0 -30
  474. package/esm2022/lib/property-editor/editors/switch-editor/number.module.mjs +0 -25
  475. package/esm2022/lib/property-editor/editors/text-editor/text.editor.mjs +0 -36
  476. package/esm2022/lib/property-editor/editors/text-editor/text.module.mjs +0 -24
  477. package/esm2022/lib/property-editor/editors/textarea-editor/textarea.editor.mjs +0 -35
  478. package/esm2022/lib/property-editor/editors/textarea-editor/textarea.module.mjs +0 -24
  479. package/esm2022/lib/property-editor/editors/time-editor/time.editor.mjs +0 -47
  480. package/esm2022/lib/property-editor/editors/time-editor/time.module.mjs +0 -24
  481. package/esm2022/lib/property-editor/property-editor-renderer.directive.mjs +0 -167
  482. package/esm2022/lib/property-editor/property-editor.class.mjs +0 -108
  483. package/esm2022/lib/property-editor/property-editor.module.mjs +0 -194
  484. package/esm2022/lib/query-builder/query-builder-group.component.mjs +0 -129
  485. package/esm2022/lib/query-builder/query-builder-popup/query-builder-popup.component.mjs +0 -177
  486. package/esm2022/lib/query-builder/query-builder-rule.component.mjs +0 -428
  487. package/esm2022/lib/query-builder/query-builder.class.mjs +0 -42
  488. package/esm2022/lib/query-builder/query-builder.component.mjs +0 -92
  489. package/esm2022/lib/query-builder/query-builder.module.mjs +0 -62
  490. package/esm2022/lib/query-builder/query-builder.service.mjs +0 -199
  491. package/esm2022/lib/search-bar/search-bar.component.mjs +0 -293
  492. package/esm2022/lib/search-bar/search-bar.module.mjs +0 -61
  493. package/esm2022/lib/searchbox/searchbox.component.mjs +0 -82
  494. package/esm2022/lib/searchbox/searchbox.module.mjs +0 -24
  495. package/esm2022/lib/selectbox/selectbox.component.mjs +0 -1025
  496. package/esm2022/lib/selectbox/selectbox.module.mjs +0 -44
  497. package/esm2022/lib/selectbox/selectbox2.component.mjs +0 -617
  498. package/esm2022/lib/selection-list/selection-list.component.mjs +0 -113
  499. package/esm2022/lib/selection-list/selection-list.module.mjs +0 -21
  500. package/esm2022/lib/switch/switch.component.mjs +0 -55
  501. package/esm2022/lib/switch/switch.module.mjs +0 -20
  502. package/esm2022/lib/tab-page/tab-page-Renderer.component.mjs +0 -75
  503. package/esm2022/lib/tab-page/tab-page-host.component.mjs +0 -124
  504. package/esm2022/lib/tab-page/tab-page.module.mjs +0 -21
  505. package/esm2022/lib/tab-page/tab-page.service.mjs +0 -158
  506. package/esm2022/lib/tab-strip/tab-strip.component.mjs +0 -38
  507. package/esm2022/lib/tab-strip/tab-strip.module.mjs +0 -19
  508. package/esm2022/lib/tab-view/dynamic-tabs.directive.mjs +0 -25
  509. package/esm2022/lib/tab-view/tab-view.component.mjs +0 -110
  510. package/esm2022/lib/tab-view/tab-view.module.mjs +0 -21
  511. package/esm2022/lib/tab-view/tab.component.mjs +0 -33
  512. package/esm2022/lib/textarea/textarea.component.mjs +0 -27
  513. package/esm2022/lib/textarea/textarea.module.mjs +0 -21
  514. package/esm2022/lib/textbox/textbox.component.mjs +0 -42
  515. package/esm2022/lib/textbox/textbox.module.mjs +0 -36
  516. package/esm2022/lib/time-picker/time-picker.component.mjs +0 -1104
  517. package/esm2022/lib/time-picker/time-picker.module.mjs +0 -34
  518. package/esm2022/lib/toast/toast-message/toast-message.component.mjs +0 -76
  519. package/esm2022/lib/toast/toast-wrapper/toast-wrapper.component.mjs +0 -13
  520. package/esm2022/lib/toast/toast.module.mjs +0 -21
  521. package/esm2022/lib/toast/toast.service.mjs +0 -45
  522. package/esm2022/lib/toolbar/group-button/toolbar-group-button.component.mjs +0 -77
  523. package/esm2022/lib/toolbar/menu/toolbar-menu.component.mjs +0 -62
  524. package/esm2022/lib/toolbar/search/toolbar-search.component.mjs +0 -56
  525. package/esm2022/lib/toolbar/title/toolbar-title.component.mjs +0 -37
  526. package/esm2022/lib/toolbar/toolbar-item.mjs +0 -4
  527. package/esm2022/lib/toolbar/toolbar.component.mjs +0 -13
  528. package/esm2022/lib/toolbar/toolbar.module.mjs +0 -40
  529. package/esm2022/lib/tooltip/tooltip.directive.mjs +0 -104
  530. package/esm2022/lib/tooltip/tooltip.module.mjs +0 -19
  531. package/esm2022/lib/tree-side-menu/tree-side-menu.component.mjs +0 -697
  532. package/esm2022/lib/tree-side-menu/tree-side-menu.module.mjs +0 -33
  533. package/esm2022/lib/tree-view/tree-view.component.mjs +0 -854
  534. package/esm2022/lib/tree-view/tree-view.module.mjs +0 -22
  535. package/esm2022/lib/upload-file/upload-file.component.mjs +0 -218
  536. package/esm2022/lib/upload-file/upload-file.events.mjs +0 -2
  537. package/esm2022/lib/upload-file/upload-file.module.mjs +0 -24
  538. package/esm2022/lib/validation/validation-form.component.mjs +0 -68
  539. package/esm2022/lib/validation/validation-rule.widget.mjs +0 -114
  540. package/esm2022/lib/validation/validation.class.mjs +0 -2
  541. package/esm2022/lib/validation/validation.component.mjs +0 -89
  542. package/esm2022/lib/validation/validation.module.mjs +0 -34
  543. package/fesm2022/acorex-components.mjs.map +0 -1
@@ -0,0 +1,74 @@
1
+ import { Component, Input, ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core';
2
+ import { AXFilterColumnComponent } from '../filter.class';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../selection-list/selection-list.component";
5
+ export class AXFilterColumnSelectionComponent extends AXFilterColumnComponent {
6
+ constructor(cdr) {
7
+ super(cdr);
8
+ this.cdr = cdr;
9
+ this.selectedItems = [];
10
+ this.items = [];
11
+ this.mode = 'single';
12
+ this.dataType = 'number';
13
+ }
14
+ get condition() {
15
+ const values = this.selectedItems.map(c => c.value);
16
+ if (values.length === 0) {
17
+ return null;
18
+ }
19
+ return {
20
+ condition: this.mode === 'single' ? 'equal' : 'contains',
21
+ field: this.field,
22
+ dataType: this.dataType,
23
+ value: this.mode === 'single' ? values[0] : values
24
+ };
25
+ }
26
+ clear() {
27
+ this.selectedItems = [];
28
+ super.clear();
29
+ }
30
+ onSelectChange(e) {
31
+ this.valueChange.emit();
32
+ }
33
+ setFilter(value, operator) {
34
+ if (value instanceof Array) {
35
+ this.selectedItems = this.items.filter(c => value.some(z => z === c.value));
36
+ }
37
+ else {
38
+ this.selectedItems = [this.items.find(c => c.value === value)];
39
+ }
40
+ super.setFilter(value, operator);
41
+ }
42
+ }
43
+ AXFilterColumnSelectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXFilterColumnSelectionComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
44
+ AXFilterColumnSelectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AXFilterColumnSelectionComponent, selector: "ax-filter-column-selection", inputs: { items: "items", mode: "mode", dataType: "dataType" }, providers: [
45
+ { provide: AXFilterColumnComponent, useExisting: AXFilterColumnSelectionComponent }
46
+ ], usesInheritance: true, ngImport: i0, template: `
47
+ <div class="ax-filter-section">
48
+ <ax-selection-list [items]="items" (selectedItemsChange)="onSelectChange($event)" [mode]="mode" direction="vertical" [(selectedItems)]="selectedItems">
49
+ </ax-selection-list>
50
+ </div>
51
+ `, isInline: true, components: [{ type: i1.AXSelectionListComponent, selector: "ax-selection-list", inputs: ["readonly", "value", "disabled", "size", "direction", "items", "mode", "textField", "valueField", "selectedItems", "selectedValues"], outputs: ["selectionChanged", "selectedItemsChange", "selectedValuesChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXFilterColumnSelectionComponent, decorators: [{
53
+ type: Component,
54
+ args: [{
55
+ selector: 'ax-filter-column-selection',
56
+ template: `
57
+ <div class="ax-filter-section">
58
+ <ax-selection-list [items]="items" (selectedItemsChange)="onSelectChange($event)" [mode]="mode" direction="vertical" [(selectedItems)]="selectedItems">
59
+ </ax-selection-list>
60
+ </div>
61
+ `,
62
+ providers: [
63
+ { provide: AXFilterColumnComponent, useExisting: AXFilterColumnSelectionComponent }
64
+ ],
65
+ changeDetection: ChangeDetectionStrategy.OnPush
66
+ }]
67
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { items: [{
68
+ type: Input
69
+ }], mode: [{
70
+ type: Input
71
+ }], dataType: [{
72
+ type: Input
73
+ }] } });
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWNvbHVtbi1zZWxlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvc3JjL2xpYi9kYXRhLWZpbHRlci9jb2x1bW5zL2ZpbHRlci1jb2x1bW4tc2VsZWN0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQXFCLHVCQUF1QixFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQWdCN0UsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLHVCQUF1QjtJQWdCekUsWUFBc0IsR0FBc0I7UUFDeEMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRE8sUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFiNUMsa0JBQWEsR0FBVSxFQUFFLENBQUM7UUFHMUIsVUFBSyxHQUFrQixFQUFFLENBQUM7UUFHMUIsU0FBSSxHQUFHLFFBQVEsQ0FBQztRQUdoQixhQUFRLEdBQVEsUUFBUSxDQUFDO0lBTXpCLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDVCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3JCLE9BQU8sSUFBSSxDQUFDO1NBRWY7UUFDRCxPQUFPO1lBQ0gsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFVBQVU7WUFDeEQsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTTtTQUNyRCxDQUFBO0lBQ0wsQ0FBQztJQUNELEtBQUs7UUFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUNELGNBQWMsQ0FBQyxDQUFDO1FBQ1osSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUU1QixDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQVUsRUFBRSxRQUFnQjtRQUNsQyxJQUFJLEtBQUssWUFBWSxLQUFLLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDL0U7YUFDSTtZQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztTQUNsRTtRQUNELEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7OzhIQWxEUSxnQ0FBZ0M7a0hBQWhDLGdDQUFnQyxxSEFMOUI7UUFDUCxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxXQUFXLEVBQUUsZ0NBQWdDLEVBQUU7S0FDdEYsaURBUlM7Ozs7O0tBS1Q7NEZBTVEsZ0NBQWdDO2tCQWI1QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw0QkFBNEI7b0JBQ3RDLFFBQVEsRUFBRTs7Ozs7S0FLVDtvQkFDRCxTQUFTLEVBQUU7d0JBQ1AsRUFBRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsV0FBVyxrQ0FBa0MsRUFBRTtxQkFDdEY7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEO3dHQU9HLEtBQUs7c0JBREosS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFYRmlsdGVyQ29uZGl0aW9uLCBBWEZpbHRlckNvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4uL2ZpbHRlci5jbGFzcyc7XHJcbmltcG9ydCB7IEFYQ2hlY2tJdGVtIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdheC1maWx0ZXItY29sdW1uLXNlbGVjdGlvbicsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cImF4LWZpbHRlci1zZWN0aW9uXCI+XHJcbiAgICA8YXgtc2VsZWN0aW9uLWxpc3QgIFtpdGVtc109XCJpdGVtc1wiIChzZWxlY3RlZEl0ZW1zQ2hhbmdlKT1cIm9uU2VsZWN0Q2hhbmdlKCRldmVudClcIiBbbW9kZV09XCJtb2RlXCIgZGlyZWN0aW9uPVwidmVydGljYWxcIiBbKHNlbGVjdGVkSXRlbXMpXT1cInNlbGVjdGVkSXRlbXNcIj5cclxuICAgIDwvYXgtc2VsZWN0aW9uLWxpc3Q+XHJcbiA8L2Rpdj5cclxuICAgIGAsXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7IHByb3ZpZGU6IEFYRmlsdGVyQ29sdW1uQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhGaWx0ZXJDb2x1bW5TZWxlY3Rpb25Db21wb25lbnQgfVxyXG4gICAgXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWEZpbHRlckNvbHVtblNlbGVjdGlvbkNvbXBvbmVudCBleHRlbmRzIEFYRmlsdGVyQ29sdW1uQ29tcG9uZW50IHtcclxuXHJcblxyXG4gICAgc2VsZWN0ZWRJdGVtczogYW55W10gPSBbXTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgaXRlbXM6IEFYQ2hlY2tJdGVtW10gPSBbXTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgbW9kZSA9ICdzaW5nbGUnO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBkYXRhVHlwZTogYW55ID0gJ251bWJlcic7XHJcblxyXG5cclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgICAgIHN1cGVyKGNkcik7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGNvbmRpdGlvbigpOiBBWEZpbHRlckNvbmRpdGlvbiB7XHJcbiAgICAgICAgY29uc3QgdmFsdWVzID0gdGhpcy5zZWxlY3RlZEl0ZW1zLm1hcChjID0+IGMudmFsdWUpO1xyXG4gICAgICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgY29uZGl0aW9uOiB0aGlzLm1vZGUgPT09ICdzaW5nbGUnID8gJ2VxdWFsJyA6ICdjb250YWlucycsXHJcbiAgICAgICAgICAgIGZpZWxkOiB0aGlzLmZpZWxkLFxyXG4gICAgICAgICAgICBkYXRhVHlwZTogdGhpcy5kYXRhVHlwZSxcclxuICAgICAgICAgICAgdmFsdWU6IHRoaXMubW9kZSA9PT0gJ3NpbmdsZScgPyB2YWx1ZXNbMF0gOiB2YWx1ZXNcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBjbGVhcigpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcclxuICAgICAgICBzdXBlci5jbGVhcigpO1xyXG4gICAgfVxyXG4gICAgb25TZWxlY3RDaGFuZ2UoZSkge1xyXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCgpO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBzZXRGaWx0ZXIodmFsdWU6IGFueSwgb3BlcmF0b3I6IHN0cmluZykge1xyXG4gICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5KSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHRoaXMuaXRlbXMuZmlsdGVyKGMgPT4gdmFsdWUuc29tZSh6ID0+IHogPT09IGMudmFsdWUpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFt0aGlzLml0ZW1zLmZpbmQoYyA9PiBjLnZhbHVlID09PSB2YWx1ZSldO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzdXBlci5zZXRGaWx0ZXIodmFsdWUsIG9wZXJhdG9yKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,117 @@
1
+ import { Component, ChangeDetectorRef } from '@angular/core';
2
+ import { AXFilterColumnComponent } from '../filter.class';
3
+ import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
4
+ import { Observable } from 'rxjs';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../textbox/textbox.component";
7
+ import * as i2 from "@angular/forms";
8
+ import * as i3 from "@angular/common";
9
+ export class AXFilterColumnStringComponent extends AXFilterColumnComponent {
10
+ constructor(cdr) {
11
+ super(cdr);
12
+ this.cdr = cdr;
13
+ this.operator = 'contains';
14
+ this.operators = [
15
+ {
16
+ title: 'is',
17
+ value: 'equal'
18
+ },
19
+ {
20
+ title: `isn't`,
21
+ value: 'not-equal'
22
+ },
23
+ {
24
+ title: 'contains',
25
+ value: 'contains'
26
+ },
27
+ {
28
+ title: 'not contains',
29
+ value: 'not-contains'
30
+ },
31
+ {
32
+ title: 'start with',
33
+ value: 'start-with'
34
+ },
35
+ {
36
+ title: 'end with',
37
+ value: 'end-with'
38
+ },
39
+ {
40
+ title: 'is empty',
41
+ value: 'is-empty'
42
+ },
43
+ {
44
+ title: `isn't empty`,
45
+ value: 'is-not-empty'
46
+ }
47
+ ];
48
+ }
49
+ onOperatorChange(e) {
50
+ this.valueChange.emit();
51
+ }
52
+ // TODO: Check this method work correctly
53
+ onTextChange(e) {
54
+ if (!this.searchChangeObserver) {
55
+ return new Observable(observer => {
56
+ this.searchChangeObserver = observer;
57
+ })
58
+ .pipe(debounceTime(500))
59
+ .pipe(distinctUntilChanged())
60
+ .subscribe(c => {
61
+ this.valueChange.emit();
62
+ });
63
+ }
64
+ this.searchChangeObserver.next(e);
65
+ }
66
+ get condition() {
67
+ return {
68
+ condition: this.operator,
69
+ field: this.field,
70
+ dataType: 'string',
71
+ value: this.value
72
+ };
73
+ }
74
+ }
75
+ AXFilterColumnStringComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXFilterColumnStringComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
76
+ AXFilterColumnStringComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AXFilterColumnStringComponent, selector: "ax-filter-column-string", providers: [
77
+ { provide: AXFilterColumnComponent, useExisting: AXFilterColumnStringComponent }
78
+ ], usesInheritance: true, ngImport: i0, template: `
79
+ <div class="ax-filter-section">
80
+ <div>
81
+ <select (ngModelChange)="onOperatorChange($event)" class="form-control form-control-sm" [(ngModel)]="operator">
82
+ <option *ngFor="let o of operators" value="{{o.value}}">
83
+ {{o.title}}
84
+ </option>
85
+ </select>
86
+ </div>
87
+ <div>
88
+ <ax-text-box placeholder="Type here" (textChange)="onTextChange($event)" [(value)]="value" *ngIf="operator!='is-not-empty' && operator!='is-empty'">
89
+ </ax-text-box>
90
+ </div>
91
+ </div>
92
+ `, isInline: true, components: [{ type: i1.AXTextBoxComponent, selector: "ax-text-box", inputs: ["mask", "type", "showMask", "maxLength", "maskGuid", "maskPlaceholder", "maskKeepCharPositions"] }], directives: [{ type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
93
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXFilterColumnStringComponent, decorators: [{
94
+ type: Component,
95
+ args: [{
96
+ selector: 'ax-filter-column-string',
97
+ template: `
98
+ <div class="ax-filter-section">
99
+ <div>
100
+ <select (ngModelChange)="onOperatorChange($event)" class="form-control form-control-sm" [(ngModel)]="operator">
101
+ <option *ngFor="let o of operators" value="{{o.value}}">
102
+ {{o.title}}
103
+ </option>
104
+ </select>
105
+ </div>
106
+ <div>
107
+ <ax-text-box placeholder="Type here" (textChange)="onTextChange($event)" [(value)]="value" *ngIf="operator!='is-not-empty' && operator!='is-empty'">
108
+ </ax-text-box>
109
+ </div>
110
+ </div>
111
+ `,
112
+ providers: [
113
+ { provide: AXFilterColumnComponent, useExisting: AXFilterColumnStringComponent }
114
+ ]
115
+ }]
116
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; } });
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWNvbHVtbi1zdHJpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvc3JjL2xpYi9kYXRhLWZpbHRlci9jb2x1bW5zL2ZpbHRlci1jb2x1bW4tc3RyaW5nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFDLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBcUIsdUJBQXVCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFzQmxDLE1BQU0sT0FBTyw2QkFBOEIsU0FBUSx1QkFBdUI7SUF1Q3RFLFlBQXNCLEdBQXNCO1FBQ3hDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQURPLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBcEM1QyxhQUFRLEdBQVcsVUFBVSxDQUFDO1FBQzlCLGNBQVMsR0FBVTtZQUNmO2dCQUNJLEtBQUssRUFBRSxJQUFJO2dCQUNYLEtBQUssRUFBRSxPQUFPO2FBQ2pCO1lBQ0Q7Z0JBQ0ksS0FBSyxFQUFFLE9BQU87Z0JBQ2QsS0FBSyxFQUFFLFdBQVc7YUFDckI7WUFDRDtnQkFDSSxLQUFLLEVBQUUsVUFBVTtnQkFDakIsS0FBSyxFQUFFLFVBQVU7YUFDcEI7WUFDRDtnQkFDSSxLQUFLLEVBQUUsY0FBYztnQkFDckIsS0FBSyxFQUFFLGNBQWM7YUFDeEI7WUFDRDtnQkFDSSxLQUFLLEVBQUUsWUFBWTtnQkFDbkIsS0FBSyxFQUFFLFlBQVk7YUFDdEI7WUFDRDtnQkFDSSxLQUFLLEVBQUUsVUFBVTtnQkFDakIsS0FBSyxFQUFFLFVBQVU7YUFDcEI7WUFDRDtnQkFDSSxLQUFLLEVBQUUsVUFBVTtnQkFDakIsS0FBSyxFQUFFLFVBQVU7YUFDcEI7WUFDRDtnQkFDSSxLQUFLLEVBQUUsYUFBYTtnQkFDcEIsS0FBSyxFQUFFLGNBQWM7YUFDeEI7U0FDSixDQUFDO0lBSUYsQ0FBQztJQUlELGdCQUFnQixDQUFDLENBQUM7UUFFZCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBRTVCLENBQUM7SUFFRCx5Q0FBeUM7SUFDekMsWUFBWSxDQUFDLENBQUM7UUFDVixJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzVCLE9BQU8sSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxRQUFRLENBQUM7WUFDekMsQ0FBQyxDQUFDO2lCQUNHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQ3ZCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO2lCQUM1QixTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM1QixDQUFDLENBQUMsQ0FBQztTQUNWO1FBQ0QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1QsT0FBTztZQUNILFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN4QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsUUFBUSxFQUFFLFFBQVE7WUFDbEIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1NBQ3BCLENBQUE7SUFDTCxDQUFDOzsySEF6RVEsNkJBQTZCOytHQUE3Qiw2QkFBNkIsa0RBSjNCO1FBQ1AsRUFBRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsV0FBVyxFQUFFLDZCQUE2QixFQUFFO0tBQ25GLGlEQWpCUzs7Ozs7Ozs7Ozs7Ozs7S0FjVDs0RkFLUSw2QkFBNkI7a0JBckJ6QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7S0FjVDtvQkFDRCxTQUFTLEVBQUU7d0JBQ1AsRUFBRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsV0FBVywrQkFBK0IsRUFBRTtxQkFDbkY7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQVhGaWx0ZXJDb25kaXRpb24sIEFYRmlsdGVyQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi4vZmlsdGVyLmNsYXNzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYXgtZmlsdGVyLWNvbHVtbi1zdHJpbmcnLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJheC1maWx0ZXItc2VjdGlvblwiPlxyXG4gICAgPGRpdj5cclxuICAgICAgICA8c2VsZWN0IChuZ01vZGVsQ2hhbmdlKT1cIm9uT3BlcmF0b3JDaGFuZ2UoJGV2ZW50KVwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zbVwiICBbKG5nTW9kZWwpXT1cIm9wZXJhdG9yXCI+XHJcbiAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IG8gb2Ygb3BlcmF0b3JzXCIgdmFsdWU9XCJ7e28udmFsdWV9fVwiPlxyXG4gICAgICAgICAgICAgICAge3tvLnRpdGxlfX1cclxuICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXY+XHJcbiAgICAgICAgPGF4LXRleHQtYm94IHBsYWNlaG9sZGVyPVwiVHlwZSBoZXJlXCIgKHRleHRDaGFuZ2UpPVwib25UZXh0Q2hhbmdlKCRldmVudClcIiBbKHZhbHVlKV09XCJ2YWx1ZVwiICpuZ0lmPVwib3BlcmF0b3IhPSdpcy1ub3QtZW1wdHknICYmIG9wZXJhdG9yIT0naXMtZW1wdHknXCI+XHJcbiAgICAgICAgPC9heC10ZXh0LWJveD5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuICAgIGAsXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7IHByb3ZpZGU6IEFYRmlsdGVyQ29sdW1uQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhGaWx0ZXJDb2x1bW5TdHJpbmdDb21wb25lbnQgfVxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhGaWx0ZXJDb2x1bW5TdHJpbmdDb21wb25lbnQgZXh0ZW5kcyBBWEZpbHRlckNvbHVtbkNvbXBvbmVudCB7XHJcblxyXG5cclxuICAgIG9wZXJhdG9yOiBzdHJpbmcgPSAnY29udGFpbnMnO1xyXG4gICAgb3BlcmF0b3JzOiBhbnlbXSA9IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnaXMnLFxyXG4gICAgICAgICAgICB2YWx1ZTogJ2VxdWFsJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aXRsZTogYGlzbid0YCxcclxuICAgICAgICAgICAgdmFsdWU6ICdub3QtZXF1YWwnXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnY29udGFpbnMnLFxyXG4gICAgICAgICAgICB2YWx1ZTogJ2NvbnRhaW5zJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aXRsZTogJ25vdCBjb250YWlucycsXHJcbiAgICAgICAgICAgIHZhbHVlOiAnbm90LWNvbnRhaW5zJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aXRsZTogJ3N0YXJ0IHdpdGgnLFxyXG4gICAgICAgICAgICB2YWx1ZTogJ3N0YXJ0LXdpdGgnXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnZW5kIHdpdGgnLFxyXG4gICAgICAgICAgICB2YWx1ZTogJ2VuZC13aXRoJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aXRsZTogJ2lzIGVtcHR5JyxcclxuICAgICAgICAgICAgdmFsdWU6ICdpcy1lbXB0eSdcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGl0bGU6IGBpc24ndCBlbXB0eWAsXHJcbiAgICAgICAgICAgIHZhbHVlOiAnaXMtbm90LWVtcHR5J1xyXG4gICAgICAgIH1cclxuICAgIF07XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgICAgICBzdXBlcihjZHIpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2VhcmNoQ2hhbmdlT2JzZXJ2ZXI6IGFueTtcclxuXHJcbiAgICBvbk9wZXJhdG9yQ2hhbmdlKGUpIHtcclxuXHJcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KCk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8vIFRPRE86IENoZWNrIHRoaXMgbWV0aG9kIHdvcmsgY29ycmVjdGx5XHJcbiAgICBvblRleHRDaGFuZ2UoZSkge1xyXG4gICAgICAgIGlmICghdGhpcy5zZWFyY2hDaGFuZ2VPYnNlcnZlcikge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZXIgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hDaGFuZ2VPYnNlcnZlciA9IG9ic2VydmVyO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDUwMCkpXHJcbiAgICAgICAgICAgICAgICAucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxyXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShjID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNlYXJjaENoYW5nZU9ic2VydmVyLm5leHQoZSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGNvbmRpdGlvbigpOiBBWEZpbHRlckNvbmRpdGlvbiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgY29uZGl0aW9uOiB0aGlzLm9wZXJhdG9yLFxyXG4gICAgICAgICAgICBmaWVsZDogdGhpcy5maWVsZCxcclxuICAgICAgICAgICAgZGF0YVR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy52YWx1ZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,258 @@
1
+ import { Component, Input, ViewChild, ViewChildren, QueryList, ViewEncapsulation, ChangeDetectionStrategy, Output, EventEmitter, ChangeDetectorRef, ElementRef } from '@angular/core';
2
+ import { AXFilterColumnComponent } from '../filter.class';
3
+ import { AXHtmlUtil } from '@acorex/core';
4
+ import { AXMenuComponent } from '../../menu/menu.component';
5
+ import { AXTextBoxComponent } from '../../textbox/textbox.component';
6
+ import { AXToastService } from '../../toast/toast.service';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "../../toast/toast.service";
9
+ import * as i2 from "../../panel-box/panel-box.component";
10
+ import * as i3 from "../../toolbar/toolbar.component";
11
+ import * as i4 from "../../toolbar/title/toolbar-title.component";
12
+ import * as i5 from "../../toolbar/menu/toolbar-menu.component";
13
+ import * as i6 from "../../textbox/textbox.component";
14
+ import * as i7 from "../../button/button.component";
15
+ import * as i8 from "../../validation/validation.component";
16
+ import * as i9 from "../../validation/validation-rule.widget";
17
+ import * as i10 from "../../checkbox/checkbox.component";
18
+ import * as i11 from "../columns/filter-column-selection.component";
19
+ import * as i12 from "../columns/filter-column-date.component";
20
+ import * as i13 from "../columns/filter-column-number.component";
21
+ import * as i14 from "../columns/filter-column-string.component";
22
+ import * as i15 from "@angular/common";
23
+ export class AXFilterPanelComponent {
24
+ constructor(cdr, toast) {
25
+ this.cdr = cdr;
26
+ this.toast = toast;
27
+ this.groups = [];
28
+ this.predefinedFilters = [];
29
+ this.mode = 'click';
30
+ this.saveItems = [
31
+ {
32
+ name: 'saveAs',
33
+ text: 'Save',
34
+ startIcon: 'fas fa-save',
35
+ items: [
36
+ {
37
+ name: 'save',
38
+ text: 'Save current'
39
+ },
40
+ {
41
+ name: 'saveAs',
42
+ text: 'Save as New'
43
+ }
44
+ ]
45
+ },
46
+ ];
47
+ this.filterChange = new EventEmitter();
48
+ }
49
+ apply() {
50
+ this.filterChange.emit(this.value);
51
+ this.updateMenu();
52
+ }
53
+ clear() {
54
+ this.filters.forEach(e => {
55
+ e.clear();
56
+ });
57
+ this.predefinedFilters.forEach(c => {
58
+ c.selected = false;
59
+ });
60
+ this.filterChange.emit(this.value);
61
+ this.updateMenu();
62
+ }
63
+ onValueChange(e) {
64
+ if (this.mode === 'immediate') {
65
+ setTimeout(() => {
66
+ this.filterChange.emit(this.value);
67
+ this.updateMenu();
68
+ }, 50);
69
+ }
70
+ }
71
+ onCheckValueChange(v, e) {
72
+ if (!e.value && this.mode === 'immediate') {
73
+ this.filters.forEach(c => {
74
+ if (c.field === v.field) {
75
+ c.clear();
76
+ }
77
+ });
78
+ setTimeout(() => {
79
+ this.filterChange.emit(this.value.filter(c => c.field !== v.field));
80
+ this.updateMenu();
81
+ }, 50);
82
+ }
83
+ }
84
+ get value() {
85
+ const con = [];
86
+ if (this.filters) {
87
+ this.filters.forEach(e => {
88
+ if (e.active && e.condition && ((e.condition.value != null) || (e.condition.value == null && (e.condition.condition === 'is-empty' || e.condition.condition === 'is-not-empty')))) {
89
+ con.push(e.condition);
90
+ }
91
+ });
92
+ }
93
+ return con;
94
+ }
95
+ load(filters) {
96
+ this.filters.forEach(e => {
97
+ e.clear();
98
+ });
99
+ this.cancelSaveFilter();
100
+ filters.forEach(f => {
101
+ const col = this.filters.find(c => c.field === f.field);
102
+ if (col) {
103
+ col.setFilter(f.value, f.condition);
104
+ }
105
+ });
106
+ this.filterChange.emit(this.value);
107
+ this.updateMenu();
108
+ }
109
+ ngAfterViewInit() {
110
+ const footer = this.panel.nativeElement.querySelector('.footer');
111
+ if (!footer) {
112
+ this.body.nativeElement.style.height = 'calc(100% - 110px)';
113
+ }
114
+ setTimeout(() => {
115
+ if (this.predefinedFilters) {
116
+ this.setFilterByIndex(0);
117
+ }
118
+ else {
119
+ this.clear();
120
+ }
121
+ }, 100);
122
+ this.applySize();
123
+ }
124
+ setFilterByIndex(index) {
125
+ const f = this.predefinedFilters[index];
126
+ if (f) {
127
+ this.setFilterByName(f.name);
128
+ }
129
+ }
130
+ setFilterByName(name) {
131
+ const f = this.predefinedFilters.find(c => c.name === name);
132
+ if (f) {
133
+ this.load(f.value);
134
+ this.predefinedFilters.forEach(c => {
135
+ c.selected = false;
136
+ });
137
+ f.selected = true;
138
+ }
139
+ }
140
+ removeFilter(f) {
141
+ this.predefinedFilters = this.predefinedFilters.filter(c => c.name != f.name);
142
+ this.updateMenu();
143
+ }
144
+ get currentFilter() {
145
+ return this.predefinedFilters.find(c => c.selected);
146
+ }
147
+ applySize() {
148
+ let h = 0;
149
+ h += this.footer.nativeElement.getBoundingClientRect().height;
150
+ h += this.savedList.nativeElement.getBoundingClientRect().height;
151
+ h += 10;
152
+ this.body.nativeElement.style.height = `calc(100% - ${h}px)`;
153
+ }
154
+ // SAVE FILTERS
155
+ updateMenu() {
156
+ setTimeout(() => {
157
+ this.saveItems[0].items[0].visible = this.currentFilter != null;
158
+ this.saveItems[0].items[1].visible = this.currentFilter != null;
159
+ // this.menu.update();
160
+ }, 100);
161
+ }
162
+ applySaveFilter() {
163
+ const f = this.currentFilter;
164
+ if (f) {
165
+ // TODO
166
+ // this.tbxName.validate().then(c => {
167
+ // if (c.result) {
168
+ // f.value = this.value;
169
+ // (f as any).isInEdit = false;
170
+ // (f as any).isNew = false;
171
+ // f.title = this.tbxName.value;
172
+ // this.toast.success('Filter saved successfully.');
173
+ // this.updateMenu();
174
+ // }
175
+ // });
176
+ }
177
+ }
178
+ cancelSaveFilter() {
179
+ const f = this.currentFilter;
180
+ if (f) {
181
+ if (f.isNew) {
182
+ this.removeFilter(f);
183
+ }
184
+ else {
185
+ f.isInEdit = false;
186
+ }
187
+ }
188
+ this.updateMenu();
189
+ }
190
+ onMenuItemClick(e) {
191
+ if (e.name === 'save') {
192
+ this.applySaveFilter();
193
+ }
194
+ if (e.name === 'saveAs') {
195
+ const f = {
196
+ name: AXHtmlUtil.getUID(),
197
+ title: '',
198
+ value: this.value
199
+ };
200
+ this.predefinedFilters.push(f);
201
+ f.isNew = true;
202
+ this.setFilterByName(f.name);
203
+ this.handleRenameClick(f);
204
+ }
205
+ }
206
+ tbxNameOnKey(e) {
207
+ if (e.type === 'keyup' && e.key === 'Enter') {
208
+ this.applySaveFilter();
209
+ }
210
+ if (e.type === 'keyup' && e.key === 'Escape') {
211
+ this.cancelSaveFilter();
212
+ }
213
+ }
214
+ handleRenameClick(f) {
215
+ f.isInEdit = true;
216
+ this.cdr.detectChanges();
217
+ setTimeout(() => {
218
+ this.tbxName.value = f.title;
219
+ this.tbxName.focus();
220
+ }, 50);
221
+ }
222
+ }
223
+ AXFilterPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXFilterPanelComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.AXToastService }], target: i0.ɵɵFactoryTarget.Component });
224
+ AXFilterPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AXFilterPanelComponent, selector: "ax-filter-panel", inputs: { groups: "groups", predefinedFilters: "predefinedFilters", mode: "mode" }, outputs: { filterChange: "filterChange" }, viewQueries: [{ propertyName: "panel", first: true, predicate: ["panel"], descendants: true, static: true }, { propertyName: "footer", first: true, predicate: ["footer"], descendants: true, static: true }, { propertyName: "savedList", first: true, predicate: ["savedList"], descendants: true, static: true }, { propertyName: "body", first: true, predicate: ["body"], descendants: true, static: true }, { propertyName: "menu", first: true, predicate: ["menu"], descendants: true }, { propertyName: "tbxName", first: true, predicate: ["tbxName"], descendants: true, static: true }, { propertyName: "filters", predicate: AXFilterColumnComponent, descendants: true }], ngImport: i0, template: "<div class=\"ax-filter-panel\" #panel>\r\n <div class=\"saved-list\" #savedList>\r\n <ax-panel-box #fb>\r\n <ng-template #header>\r\n <div class=\"group-header\" (click)=\"fb.toggle()\">\r\n <ax-toolbar>\r\n <ax-toolbar-title>\r\n <div>\r\n <i class=\"far fa-filter\"></i>\r\n <span>SAVED FILTERS</span>\r\n </div>\r\n </ax-toolbar-title>\r\n <ax-toolbar-menu #menu [items]=\"saveItems\" (onItemClick)=\"onMenuItemClick($event)\">\r\n </ax-toolbar-menu>\r\n </ax-toolbar>\r\n </div>\r\n </ng-template>\r\n\r\n <div class=\"list\">\r\n <ng-container *ngIf=\"predefinedFilters && predefinedFilters.length; else emptyList\">\r\n <ul>\r\n <ng-container *ngFor=\"let f of predefinedFilters\">\r\n <ng-container *ngIf=\"!f.isInEdit; else editMode\">\r\n <li (click)=\"setFilterByName(f.name)\">\r\n <div class=\"item-line\" [class.selected]=\"f.selected\">\r\n <span class=\"title\"><i class=\"far fa-check\"></i> {{f.title}}</span>\r\n <span class=\"tools\"><i class=\"far fa-pen text-primary\" title=\"Rename\"\r\n (click)=\"handleRenameClick(f)\"></i>&nbsp;<i\r\n class=\"far fa-times text-danger\" title=\"Remove\"\r\n (click)=\"removeFilter(f)\"></i></span>\r\n </div>\r\n </li>\r\n </ng-container>\r\n <ng-template #editMode>\r\n <li>\r\n <ax-text-box #tbxName placeholder=\"Enter filter's title here\"\r\n (onKey)=\"tbxNameOnKey($event)\">\r\n <ax-button title=\"Save\" type=\"primary\" (onClick)=\"applySaveFilter()\">\r\n <i class=\"far fa-check\"></i>\r\n </ax-button>\r\n <ax-button title=\"Cancel\" type=\"danger\" (onClick)=\"cancelSaveFilter()\">\r\n <i class=\"far fa-times\"></i>\r\n </ax-button>\r\n <ax-validation>\r\n <ax-validation-rule type=\"required\" message=\"this field is required\">\r\n </ax-validation-rule>\r\n </ax-validation>\r\n </ax-text-box>\r\n </li>\r\n </ng-template>\r\n </ng-container>\r\n </ul>\r\n </ng-container>\r\n <ng-template #emptyList>\r\n <div class=\"empty-list\">\r\n Empty\r\n </div>\r\n </ng-template>\r\n </div>\r\n </ax-panel-box>\r\n </div>\r\n <div class=\"body\" #body>\r\n <ng-container *ngFor=\"let g of groups\">\r\n <ax-panel-box #fb>\r\n <ng-template #header>\r\n <div class=\"group-header\" *ngIf=\"g.caption\" (click)=\"fb.toggle()\">\r\n <i\r\n [ngClass]=\"{ 'far fa-minus-square' : !fb.collapsed ,'fas fa-plus-square' : fb.collapsed }\"></i>\r\n <span>{{g.caption}}</span>\r\n </div>\r\n </ng-template>\r\n <ng-container *ngFor=\"let c of g.columns\">\r\n <div class=\"ax-filter-item-header\" [style.margin-bottom.px]=\"c.active ? 0 : 2\">\r\n <ax-check-box (onValueChanged)=\"onCheckValueChange(c,$event)\" [label]=\"c.caption\"\r\n [(value)]=\"c.active\">\r\n </ax-check-box>\r\n </div>\r\n <div [hidden]=\"!c.active\">\r\n <ng-container [ngSwitch]=\"c.type\">\r\n <ng-container *ngSwitchCase=\"'selection'\">\r\n <ax-filter-column-selection (valueChange)=\"onValueChange($event)\" [field]=\"c.field\"\r\n [(active)]=\"c.active\" [mode]=\"c.options.mode\" [items]=\"c.options.items\"\r\n [dataType]=\"c.options.dataType\">\r\n </ax-filter-column-selection>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <ax-filter-column-date (valueChange)=\"onValueChange($event)\" [field]=\"c.field\"\r\n [(active)]=\"c.active\">\r\n </ax-filter-column-date>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'number'\">\r\n <ax-filter-column-number (valueChange)=\"onValueChange($event)\" [field]=\"c.field\"\r\n [(active)]=\"c.active\">\r\n </ax-filter-column-number>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ax-filter-column-string (valueChange)=\"onValueChange($event)\" [field]=\"c.field\"\r\n [(active)]=\"c.active\">\r\n </ax-filter-column-string>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </ax-panel-box>\r\n </ng-container>\r\n </div>\r\n\r\n <div *ngIf=\"mode=='click'\" class=\"footer\" #footer>\r\n <div class=\"filter-panel\">\r\n <ax-button (onClick)=\"apply()\" type=\"success\" size=\"sm\">\r\n <i class=\"far fa-filter\"></i>\r\n Apply Filter\r\n </ax-button>\r\n <ax-button (onClick)=\"clear();\" type=\"light \" size=\"sm\">\r\n <i class=\"far fa-eraser\"></i>\r\n Clear\r\n </ax-button>\r\n </div>\r\n </div>\r\n</div>", styles: [".ax-filter-panel{padding:2px;position:relative;height:100%;font-size:var(--font-md-size)}.ax-filter-panel .empty-list{text-align:center;padding:var(--sp-sm-size);color:var(--gray)}.ax-filter-panel .saved-list{border-bottom:1px solid var(--border-color)}.ax-filter-panel .saved-list .list ul{list-style-type:none;display:flex;flex-direction:column;padding:0;margin-bottom:var(--sp-md-size)}.ax-filter-panel .saved-list .list ul li .item-line{cursor:pointer;display:flex;flex-direction:row;justify-content:space-between}.ax-filter-panel .saved-list .list ul li .item-line .title i{opacity:.1}.ax-filter-panel .saved-list .list ul li .item-line .tools{display:inline}.ax-filter-panel .saved-list .list ul li .item-line .tools i{opacity:.2;cursor:pointer}.ax-filter-panel .saved-list .list ul li .item-line .tools i:hover{opacity:1}.ax-filter-panel .saved-list .list ul li .item-line.selected{font-weight:700}.ax-filter-panel .saved-list .list ul li .item-line.selected .title i{opacity:1}.ax-filter-panel .body{overflow-y:auto;overflow-x:hidden;height:calc(100% - 150px)}.ax-filter-panel .body .form-inline{justify-content:space-between}.ax-filter-panel .group-header{background:var(--white-color);display:flex;align-items:center;padding:var(--sp-sm-size) var(--sp-md-size);border-bottom:1px solid var(--border-color);background:var(--gray-dark-color);color:var(--gray-dark)}.ax-filter-panel .group-header i{margin-right:var(--sp-sm-size)}.ax-filter-panel .ax-filter-item-header{height:var(--el-md-size);display:flex;align-items:center}.ax-filter-panel .footer{width:100%;position:absolute;background-color:var(--white-color);bottom:0;padding:var(--sp-sm-size);border-top:1px solid var(--border-color)}.ax-filter-panel .footer .filter-panel{display:flex;align-items:center}.ax-filter-panel .footer .filter-panel ax-button{margin:0 2px}.ax-filter-panel .ax-filter-section{padding:var(--sp-md-size) var(--sp-lg-size);display:flex;justify-content:space-between;align-items:center}.ax-filter-panel .ax-filter-section>div{flex:1}.ax-filter-panel .ax-filter-section-value{padding:0px var(--sp-md-size) var(--sp-md-size) var(--sp-md-size);display:flex;justify-content:space-between;align-items:center}.ax-filter-panel .ax-filter-section-value>*{margin:0 3px}\n"], components: [{ type: i2.AXPanelBoxComponent, selector: "ax-panel-box", inputs: ["size", "type", "caption", "collapsed", "allowCollapse"], outputs: ["collapsedChange"] }, { type: i3.AXToolbarComponent, selector: "ax-toolbar" }, { type: i4.AXToolbarTitleComponent, selector: "ax-toolbar-title", inputs: ["text"] }, { type: i5.AXToolbarMenuComponent, selector: "ax-toolbar-menu", inputs: ["menuTemplate", "selection", "items"], outputs: ["onItemClick"] }, { type: i6.AXTextBoxComponent, selector: "ax-text-box", inputs: ["mask", "type", "showMask", "maxLength", "maskGuid", "maskPlaceholder", "maskKeepCharPositions"] }, { type: i7.AXButtonComponent, selector: "ax-button", inputs: ["type", "icon", "submitBehavior", "cancelBehavior", "block", "loading", "selected"] }, { type: i8.AXValidationComponent, selector: "ax-validation", inputs: ["rules", "validateOn"], outputs: ["rulesChange", "showMessage"] }, { type: i9.AXValidationRuleComponent, selector: "ax-validation-rule", inputs: ["type", "message", "value", "enabled"] }, { type: i10.AXCheckBoxComponent, selector: "ax-check-box", inputs: ["readonly", "disabled", "size", "label", "tabIndex", "indeterminate", "value"], outputs: ["onValueChanged", "valueChange", "onClick"] }, { type: i11.AXFilterColumnSelectionComponent, selector: "ax-filter-column-selection", inputs: ["items", "mode", "dataType"] }, { type: i12.AXFilterColumnDateComponent, selector: "ax-filter-column-date" }, { type: i13.AXFilterColumnNumberComponent, selector: "ax-filter-column-number" }, { type: i14.AXFilterColumnStringComponent, selector: "ax-filter-column-string" }], directives: [{ type: i15.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i15.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i15.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i15.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i15.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i15.NgSwitchDefault, selector: "[ngSwitchDefault]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
225
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXFilterPanelComponent, decorators: [{
226
+ type: Component,
227
+ args: [{ selector: 'ax-filter-panel', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ax-filter-panel\" #panel>\r\n <div class=\"saved-list\" #savedList>\r\n <ax-panel-box #fb>\r\n <ng-template #header>\r\n <div class=\"group-header\" (click)=\"fb.toggle()\">\r\n <ax-toolbar>\r\n <ax-toolbar-title>\r\n <div>\r\n <i class=\"far fa-filter\"></i>\r\n <span>SAVED FILTERS</span>\r\n </div>\r\n </ax-toolbar-title>\r\n <ax-toolbar-menu #menu [items]=\"saveItems\" (onItemClick)=\"onMenuItemClick($event)\">\r\n </ax-toolbar-menu>\r\n </ax-toolbar>\r\n </div>\r\n </ng-template>\r\n\r\n <div class=\"list\">\r\n <ng-container *ngIf=\"predefinedFilters && predefinedFilters.length; else emptyList\">\r\n <ul>\r\n <ng-container *ngFor=\"let f of predefinedFilters\">\r\n <ng-container *ngIf=\"!f.isInEdit; else editMode\">\r\n <li (click)=\"setFilterByName(f.name)\">\r\n <div class=\"item-line\" [class.selected]=\"f.selected\">\r\n <span class=\"title\"><i class=\"far fa-check\"></i> {{f.title}}</span>\r\n <span class=\"tools\"><i class=\"far fa-pen text-primary\" title=\"Rename\"\r\n (click)=\"handleRenameClick(f)\"></i>&nbsp;<i\r\n class=\"far fa-times text-danger\" title=\"Remove\"\r\n (click)=\"removeFilter(f)\"></i></span>\r\n </div>\r\n </li>\r\n </ng-container>\r\n <ng-template #editMode>\r\n <li>\r\n <ax-text-box #tbxName placeholder=\"Enter filter's title here\"\r\n (onKey)=\"tbxNameOnKey($event)\">\r\n <ax-button title=\"Save\" type=\"primary\" (onClick)=\"applySaveFilter()\">\r\n <i class=\"far fa-check\"></i>\r\n </ax-button>\r\n <ax-button title=\"Cancel\" type=\"danger\" (onClick)=\"cancelSaveFilter()\">\r\n <i class=\"far fa-times\"></i>\r\n </ax-button>\r\n <ax-validation>\r\n <ax-validation-rule type=\"required\" message=\"this field is required\">\r\n </ax-validation-rule>\r\n </ax-validation>\r\n </ax-text-box>\r\n </li>\r\n </ng-template>\r\n </ng-container>\r\n </ul>\r\n </ng-container>\r\n <ng-template #emptyList>\r\n <div class=\"empty-list\">\r\n Empty\r\n </div>\r\n </ng-template>\r\n </div>\r\n </ax-panel-box>\r\n </div>\r\n <div class=\"body\" #body>\r\n <ng-container *ngFor=\"let g of groups\">\r\n <ax-panel-box #fb>\r\n <ng-template #header>\r\n <div class=\"group-header\" *ngIf=\"g.caption\" (click)=\"fb.toggle()\">\r\n <i\r\n [ngClass]=\"{ 'far fa-minus-square' : !fb.collapsed ,'fas fa-plus-square' : fb.collapsed }\"></i>\r\n <span>{{g.caption}}</span>\r\n </div>\r\n </ng-template>\r\n <ng-container *ngFor=\"let c of g.columns\">\r\n <div class=\"ax-filter-item-header\" [style.margin-bottom.px]=\"c.active ? 0 : 2\">\r\n <ax-check-box (onValueChanged)=\"onCheckValueChange(c,$event)\" [label]=\"c.caption\"\r\n [(value)]=\"c.active\">\r\n </ax-check-box>\r\n </div>\r\n <div [hidden]=\"!c.active\">\r\n <ng-container [ngSwitch]=\"c.type\">\r\n <ng-container *ngSwitchCase=\"'selection'\">\r\n <ax-filter-column-selection (valueChange)=\"onValueChange($event)\" [field]=\"c.field\"\r\n [(active)]=\"c.active\" [mode]=\"c.options.mode\" [items]=\"c.options.items\"\r\n [dataType]=\"c.options.dataType\">\r\n </ax-filter-column-selection>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <ax-filter-column-date (valueChange)=\"onValueChange($event)\" [field]=\"c.field\"\r\n [(active)]=\"c.active\">\r\n </ax-filter-column-date>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'number'\">\r\n <ax-filter-column-number (valueChange)=\"onValueChange($event)\" [field]=\"c.field\"\r\n [(active)]=\"c.active\">\r\n </ax-filter-column-number>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ax-filter-column-string (valueChange)=\"onValueChange($event)\" [field]=\"c.field\"\r\n [(active)]=\"c.active\">\r\n </ax-filter-column-string>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </ax-panel-box>\r\n </ng-container>\r\n </div>\r\n\r\n <div *ngIf=\"mode=='click'\" class=\"footer\" #footer>\r\n <div class=\"filter-panel\">\r\n <ax-button (onClick)=\"apply()\" type=\"success\" size=\"sm\">\r\n <i class=\"far fa-filter\"></i>\r\n Apply Filter\r\n </ax-button>\r\n <ax-button (onClick)=\"clear();\" type=\"light \" size=\"sm\">\r\n <i class=\"far fa-eraser\"></i>\r\n Clear\r\n </ax-button>\r\n </div>\r\n </div>\r\n</div>", styles: [".ax-filter-panel{padding:2px;position:relative;height:100%;font-size:var(--font-md-size)}.ax-filter-panel .empty-list{text-align:center;padding:var(--sp-sm-size);color:var(--gray)}.ax-filter-panel .saved-list{border-bottom:1px solid var(--border-color)}.ax-filter-panel .saved-list .list ul{list-style-type:none;display:flex;flex-direction:column;padding:0;margin-bottom:var(--sp-md-size)}.ax-filter-panel .saved-list .list ul li .item-line{cursor:pointer;display:flex;flex-direction:row;justify-content:space-between}.ax-filter-panel .saved-list .list ul li .item-line .title i{opacity:.1}.ax-filter-panel .saved-list .list ul li .item-line .tools{display:inline}.ax-filter-panel .saved-list .list ul li .item-line .tools i{opacity:.2;cursor:pointer}.ax-filter-panel .saved-list .list ul li .item-line .tools i:hover{opacity:1}.ax-filter-panel .saved-list .list ul li .item-line.selected{font-weight:700}.ax-filter-panel .saved-list .list ul li .item-line.selected .title i{opacity:1}.ax-filter-panel .body{overflow-y:auto;overflow-x:hidden;height:calc(100% - 150px)}.ax-filter-panel .body .form-inline{justify-content:space-between}.ax-filter-panel .group-header{background:var(--white-color);display:flex;align-items:center;padding:var(--sp-sm-size) var(--sp-md-size);border-bottom:1px solid var(--border-color);background:var(--gray-dark-color);color:var(--gray-dark)}.ax-filter-panel .group-header i{margin-right:var(--sp-sm-size)}.ax-filter-panel .ax-filter-item-header{height:var(--el-md-size);display:flex;align-items:center}.ax-filter-panel .footer{width:100%;position:absolute;background-color:var(--white-color);bottom:0;padding:var(--sp-sm-size);border-top:1px solid var(--border-color)}.ax-filter-panel .footer .filter-panel{display:flex;align-items:center}.ax-filter-panel .footer .filter-panel ax-button{margin:0 2px}.ax-filter-panel .ax-filter-section{padding:var(--sp-md-size) var(--sp-lg-size);display:flex;justify-content:space-between;align-items:center}.ax-filter-panel .ax-filter-section>div{flex:1}.ax-filter-panel .ax-filter-section-value{padding:0px var(--sp-md-size) var(--sp-md-size) var(--sp-md-size);display:flex;justify-content:space-between;align-items:center}.ax-filter-panel .ax-filter-section-value>*{margin:0 3px}\n"] }]
228
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.AXToastService }]; }, propDecorators: { panel: [{
229
+ type: ViewChild,
230
+ args: ['panel', { static: true }]
231
+ }], footer: [{
232
+ type: ViewChild,
233
+ args: ['footer', { static: true }]
234
+ }], savedList: [{
235
+ type: ViewChild,
236
+ args: ['savedList', { static: true }]
237
+ }], body: [{
238
+ type: ViewChild,
239
+ args: ['body', { static: true }]
240
+ }], menu: [{
241
+ type: ViewChild,
242
+ args: ['menu', { static: false }]
243
+ }], tbxName: [{
244
+ type: ViewChild,
245
+ args: ['tbxName', { static: true }]
246
+ }], filters: [{
247
+ type: ViewChildren,
248
+ args: [AXFilterColumnComponent]
249
+ }], groups: [{
250
+ type: Input
251
+ }], predefinedFilters: [{
252
+ type: Input
253
+ }], mode: [{
254
+ type: Input
255
+ }], filterChange: [{
256
+ type: Output
257
+ }] } });
258
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NyYy9saWIvZGF0YS1maWx0ZXIvZmlsdGVyLXBhbmVsL2ZpbHRlci1wYW5lbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL2RhdGEtZmlsdGVyL2ZpbHRlci1wYW5lbC9maWx0ZXItcGFuZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQ3hNLE9BQU8sRUFBdUIsdUJBQXVCLEVBQXlDLE1BQU0saUJBQWlCLENBQUM7QUFDdEgsT0FBTyxFQUFjLFVBQVUsRUFBbUIsTUFBTSxjQUFjLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFhM0QsTUFBTSxPQUFPLHNCQUFzQjtJQTBDL0IsWUFBb0IsR0FBc0IsRUFBVSxLQUFxQjtRQUFyRCxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUFVLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBOUJ6RSxXQUFNLEdBQTBCLEVBQUUsQ0FBQztRQUduQyxzQkFBaUIsR0FBeUIsRUFBRSxDQUFDO1FBRzdDLFNBQUksR0FBMEIsT0FBTyxDQUFDO1FBRXRDLGNB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QUdyQyxNQUFNO3NCQURMLEtBQUs7Z0JBSU4saUJBQWlCO3NCQURoQixLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkF1Qk4sWUFBWTtzQkFEWCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4sIFF1ZXJ5TGlzdCwgVmlld0VuY2Fwc3VsYXRpb24sIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQ2hhbmdlRGV0ZWN0b3JSZWYsIEVsZW1lbnRSZWYsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQVhGaWx0ZXJDb2x1bW5Hcm91cCwgQVhGaWx0ZXJDb2x1bW5Db21wb25lbnQsIEFYRmlsdGVyQ29uZGl0aW9uLCBBWEZpbHRlclByZWRlZmluZWQgfSBmcm9tICcuLi9maWx0ZXIuY2xhc3MnO1xyXG5pbXBvcnQgeyBBWE1lbnVJdGVtLCBBWEh0bWxVdGlsLCBBWEtleWJvYXJkRXZlbnQgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xyXG5pbXBvcnQgeyBBWE1lbnVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tZW51L21lbnUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQVhUZXh0Qm94Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vdGV4dGJveC90ZXh0Ym94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFYVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdG9hc3QvdG9hc3Quc2VydmljZSc7XHJcbmltcG9ydCB7IEFYVmFsdWVFdmVudCB9IGZyb20gJy4uLy4uL2Jhc2UvZXZlbnRzLmNsYXNzJztcclxuXHJcblxyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdheC1maWx0ZXItcGFuZWwnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpbHRlci1wYW5lbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9maWx0ZXItcGFuZWwuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhGaWx0ZXJQYW5lbENvbXBvbmVudCB7XHJcblxyXG4gICAgQFZpZXdDaGlsZCgncGFuZWwnLCB7IHN0YXRpYzogdHJ1ZSB9KSBwYW5lbDogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XHJcbiAgICBAVmlld0NoaWxkKCdmb290ZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBmb290ZXI6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xyXG4gICAgQFZpZXdDaGlsZCgnc2F2ZWRMaXN0JywgeyBzdGF0aWM6IHRydWUgfSkgc2F2ZWRMaXN0OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcclxuICAgIEBWaWV3Q2hpbGQoJ2JvZHknLCB7IHN0YXRpYzogdHJ1ZSB9KSBib2R5OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcclxuICAgIEBWaWV3Q2hpbGQoJ21lbnUnLCB7IHN0YXRpYzogZmFsc2UgfSkgbWVudTogQVhNZW51Q29tcG9uZW50O1xyXG4gICAgQFZpZXdDaGlsZCgndGJ4TmFtZScsIHsgc3RhdGljOiB0cnVlIH0pIHRieE5hbWU6IEFYVGV4dEJveENvbXBvbmVudDtcclxuXHJcbiAgICBAVmlld0NoaWxkcmVuKEFYRmlsdGVyQ29sdW1uQ29tcG9uZW50KSBmaWx0ZXJzOiBRdWVyeUxpc3Q8QVhGaWx0ZXJDb2x1bW5Db21wb25lbnQ+O1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBncm91cHM6IEFYRmlsdGVyQ29sdW1uR3JvdXBbXSA9IFtdO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwcmVkZWZpbmVkRmlsdGVyczogQVhGaWx0ZXJQcmVkZWZpbmVkW10gPSBbXTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgbW9kZTogJ2NsaWNrJyB8ICdpbW1lZGlhdGUnID0gJ2NsaWNrJztcclxuXHJcbiAgICBzYXZlSXRlbXM6IEFYTWVudUl0ZW1bXSA9IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIG5hbWU6ICdzYXZlQXMnLFxyXG4gICAgICAgICAgICB0ZXh0OiAnU2F2ZScsXHJcbiAgICAgICAgICAgIHN0YXJ0SWNvbjogJ2ZhcyBmYS1zYXZlJyxcclxuICAgICAgICAgICAgaXRlbXM6IFtcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiAnc2F2ZScsXHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogJ1NhdmUgY3VycmVudCdcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJ3NhdmVBcycsXHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogJ1NhdmUgYXMgTmV3J1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBdXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICBdO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgZmlsdGVyQ2hhbmdlOiBFdmVudEVtaXR0ZXI8QVhGaWx0ZXJDb25kaXRpb25bXT4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYRmlsdGVyQ29uZGl0aW9uW10+KCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIHRvYXN0OiBBWFRvYXN0U2VydmljZSkgeyB9XHJcblxyXG4gICAgYXBwbHkoKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZU1lbnUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2xlYXIoKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJzLmZvckVhY2goZSA9PiB7XHJcbiAgICAgICAgICAgIGUuY2xlYXIoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnByZWRlZmluZWRGaWx0ZXJzLmZvckVhY2goYyA9PiB7XHJcbiAgICAgICAgICAgIChjIGFzIGFueSkuc2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmZpbHRlckNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTWVudSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uVmFsdWVDaGFuZ2UoZSkge1xyXG4gICAgICAgIGlmICh0aGlzLm1vZGUgPT09ICdpbW1lZGlhdGUnKSB7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcclxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlTWVudSgpO1xyXG4gICAgICAgICAgICB9LCA1MCk7XHJcblxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbkNoZWNrVmFsdWVDaGFuZ2UodiwgZTogQVhWYWx1ZUV2ZW50PGJvb2xlYW4+KSB7XHJcblxyXG5cclxuICAgICAgICBpZiAoIWUudmFsdWUgJiYgdGhpcy5tb2RlID09PSAnaW1tZWRpYXRlJykge1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlcnMuZm9yRWFjaChjID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChjLmZpZWxkID09PSB2LmZpZWxkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYy5jbGVhcigpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyQ2hhbmdlLmVtaXQodGhpcy52YWx1ZS5maWx0ZXIoYyA9PiBjLmZpZWxkICE9PSB2LmZpZWxkKSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZU1lbnUoKTtcclxuICAgICAgICAgICAgfSwgNTApO1xyXG5cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHZhbHVlKCk6IEFYRmlsdGVyQ29uZGl0aW9uW10ge1xyXG4gICAgICAgIGNvbnN0IGNvbjogQVhGaWx0ZXJDb25kaXRpb25bXSA9IFtdO1xyXG4gICAgICAgIGlmICh0aGlzLmZpbHRlcnMpIHtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJzLmZvckVhY2goZSA9PiB7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGUuYWN0aXZlICYmIGUuY29uZGl0aW9uICYmICgoZS5jb25kaXRpb24udmFsdWUgIT0gbnVsbCkgfHwgKGUuY29uZGl0aW9uLnZhbHVlID09IG51bGwgJiYgKGUuY29uZGl0aW9uLmNvbmRpdGlvbiA9PT0gJ2lzLWVtcHR5JyB8fCBlLmNvbmRpdGlvbi5jb25kaXRpb24gPT09ICdpcy1ub3QtZW1wdHknKSkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uLnB1c2goZS5jb25kaXRpb24pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGNvbjtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIHB1YmxpYyBsb2FkKGZpbHRlcnM6IEFYRmlsdGVyQ29uZGl0aW9uW10pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZpbHRlcnMuZm9yRWFjaChlID0+IHtcclxuICAgICAgICAgICAgZS5jbGVhcigpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuY2FuY2VsU2F2ZUZpbHRlcigpO1xyXG4gICAgICAgIGZpbHRlcnMuZm9yRWFjaChmID0+IHtcclxuICAgICAgICAgICAgY29uc3QgY29sID0gdGhpcy5maWx0ZXJzLmZpbmQoYyA9PiBjLmZpZWxkID09PSBmLmZpZWxkKTtcclxuICAgICAgICAgICAgaWYgKGNvbCkge1xyXG4gICAgICAgICAgICAgICAgY29sLnNldEZpbHRlcihmLnZhbHVlLCBmLmNvbmRpdGlvbik7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZU1lbnUoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZm9vdGVyID0gdGhpcy5wYW5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5mb290ZXInKTtcclxuICAgICAgICBpZiAoIWZvb3Rlcikge1xyXG4gICAgICAgICAgICB0aGlzLmJvZHkubmF0aXZlRWxlbWVudC5zdHlsZS5oZWlnaHQgPSAnY2FsYygxMDAlIC0gMTEwcHgpJztcclxuICAgICAgICB9XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnByZWRlZmluZWRGaWx0ZXJzKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldEZpbHRlckJ5SW5kZXgoMCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNsZWFyKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LCAxMDApO1xyXG4gICAgICAgIHRoaXMuYXBwbHlTaXplKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RmlsdGVyQnlJbmRleChpbmRleDogbnVtYmVyKSB7XHJcbiAgICAgICAgY29uc3QgZiA9IHRoaXMucHJlZGVmaW5lZEZpbHRlcnNbaW5kZXhdO1xyXG4gICAgICAgIGlmIChmKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0RmlsdGVyQnlOYW1lKGYubmFtZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNldEZpbHRlckJ5TmFtZShuYW1lOiBzdHJpbmcpIHtcclxuICAgICAgICBjb25zdCBmID0gdGhpcy5wcmVkZWZpbmVkRmlsdGVycy5maW5kKGMgPT4gYy5uYW1lID09PSBuYW1lKTtcclxuICAgICAgICBpZiAoZikge1xyXG4gICAgICAgICAgICB0aGlzLmxvYWQoZi52YWx1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMucHJlZGVmaW5lZEZpbHRlcnMuZm9yRWFjaChjID0+IHtcclxuICAgICAgICAgICAgICAgIChjIGFzIGFueSkuc2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIChmIGFzIGFueSkuc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIHJlbW92ZUZpbHRlcihmOiBBWEZpbHRlclByZWRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLnByZWRlZmluZWRGaWx0ZXJzID0gdGhpcy5wcmVkZWZpbmVkRmlsdGVycy5maWx0ZXIoYyA9PiBjLm5hbWUgIT0gZi5uYW1lKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZU1lbnUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldFxyXG4gICAgICAgIGN1cnJlbnRGaWx0ZXIoKTogQVhGaWx0ZXJQcmVkZWZpbmVkIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wcmVkZWZpbmVkRmlsdGVycy5maW5kKGMgPT4gKGMgYXMgYW55KS5zZWxlY3RlZCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHByaXZhdGUgYXBwbHlTaXplKCkge1xyXG4gICAgICAgIGxldCBoID0gMDtcclxuICAgICAgICBoICs9IHRoaXMuZm9vdGVyLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O1xyXG4gICAgICAgIGggKz0gdGhpcy5zYXZlZExpc3QubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XHJcbiAgICAgICAgaCArPSAxMDtcclxuICAgICAgICB0aGlzLmJvZHkubmF0aXZlRWxlbWVudC5zdHlsZS5oZWlnaHQgPSBgY2FsYygxMDAlIC0gJHtofXB4KWA7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gU0FWRSBGSUxURVJTXHJcblxyXG4gICAgcHJpdmF0ZSB1cGRhdGVNZW51KCk6IHZvaWQge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNhdmVJdGVtc1swXS5pdGVtc1swXS52aXNpYmxlID0gdGhpcy5jdXJyZW50RmlsdGVyICE9IG51bGw7XHJcbiAgICAgICAgICAgIHRoaXMuc2F2ZUl0ZW1zWzBdLml0ZW1zWzFdLnZpc2libGUgPSB0aGlzLmN1cnJlbnRGaWx0ZXIgIT0gbnVsbDtcclxuICAgICAgICAgICAgLy8gdGhpcy5tZW51LnVwZGF0ZSgpO1xyXG4gICAgICAgIH0sIDEwMCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXBwbHlTYXZlRmlsdGVyKCkge1xyXG4gICAgICAgIGNvbnN0IGYgPSB0aGlzLmN1cnJlbnRGaWx0ZXI7XHJcbiAgICAgICAgaWYgKGYpIHtcclxuICAgICAgICAgICAgLy8gVE9ET1xyXG4gICAgICAgICAgICAvLyB0aGlzLnRieE5hbWUudmFsaWRhdGUoKS50aGVuKGMgPT4ge1xyXG4gICAgICAgICAgICAvLyAgICAgaWYgKGMucmVzdWx0KSB7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgZi52YWx1ZSA9IHRoaXMudmFsdWU7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgKGYgYXMgYW55KS5pc0luRWRpdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAvLyAgICAgICAgIChmIGFzIGFueSkuaXNOZXcgPSBmYWxzZTtcclxuICAgICAgICAgICAgLy8gICAgICAgICBmLnRpdGxlID0gdGhpcy50YnhOYW1lLnZhbHVlO1xyXG4gICAgICAgICAgICAvLyAgICAgICAgIHRoaXMudG9hc3Quc3VjY2VzcygnRmlsdGVyIHNhdmVkIHN1Y2Nlc3NmdWxseS4nKTtcclxuICAgICAgICAgICAgLy8gICAgICAgICB0aGlzLnVwZGF0ZU1lbnUoKTtcclxuICAgICAgICAgICAgLy8gICAgIH1cclxuICAgICAgICAgICAgLy8gfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNhbmNlbFNhdmVGaWx0ZXIoKSB7XHJcbiAgICAgICAgY29uc3QgZiA9IHRoaXMuY3VycmVudEZpbHRlcjtcclxuICAgICAgICBpZiAoZikge1xyXG4gICAgICAgICAgICBpZiAoKGYgYXMgYW55KS5pc05ldykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVGaWx0ZXIoZik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAoZiBhcyBhbnkpLmlzSW5FZGl0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy51cGRhdGVNZW51KCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25NZW51SXRlbUNsaWNrKGU6IEFYTWVudUl0ZW0pIHtcclxuICAgICAgICBpZiAoZS5uYW1lID09PSAnc2F2ZScpIHtcclxuICAgICAgICAgICAgdGhpcy5hcHBseVNhdmVGaWx0ZXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGUubmFtZSA9PT0gJ3NhdmVBcycpIHtcclxuICAgICAgICAgICAgY29uc3QgZiA9IHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IEFYSHRtbFV0aWwuZ2V0VUlEKCksXHJcbiAgICAgICAgICAgICAgICB0aXRsZTogJycsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy52YWx1ZVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB0aGlzLnByZWRlZmluZWRGaWx0ZXJzLnB1c2goZik7XHJcbiAgICAgICAgICAgIChmIGFzIGFueSkuaXNOZXcgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnNldEZpbHRlckJ5TmFtZShmLm5hbWUpO1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZVJlbmFtZUNsaWNrKGYpXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRieE5hbWVPbktleShlOiBBWEtleWJvYXJkRXZlbnQpIHtcclxuICAgICAgICBpZiAoZS50eXBlID09PSAna2V5dXAnICYmIGUua2V5ID09PSAnRW50ZXInKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXBwbHlTYXZlRmlsdGVyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChlLnR5cGUgPT09ICdrZXl1cCcgJiYgZS5rZXkgPT09ICdFc2NhcGUnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2FuY2VsU2F2ZUZpbHRlcigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVSZW5hbWVDbGljayhmOiBBWEZpbHRlclByZWRlZmluZWQpIHtcclxuICAgICAgICAoZiBhcyBhbnkpLmlzSW5FZGl0ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudGJ4TmFtZS52YWx1ZSA9IGYudGl0bGU7XHJcbiAgICAgICAgICAgIHRoaXMudGJ4TmFtZS5mb2N1cygpO1xyXG4gICAgICAgIH0sIDUwKTtcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiYXgtZmlsdGVyLXBhbmVsXCIgI3BhbmVsPlxyXG4gICAgPGRpdiBjbGFzcz1cInNhdmVkLWxpc3RcIiAjc2F2ZWRMaXN0PlxyXG4gICAgICAgIDxheC1wYW5lbC1ib3ggI2ZiPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2hlYWRlcj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC1oZWFkZXJcIiAoY2xpY2spPVwiZmIudG9nZ2xlKClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YXgtdG9vbGJhcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LXRvb2xiYXItdGl0bGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLWZpbHRlclwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5TQVZFRCBGSUxURVJTPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtdG9vbGJhci10aXRsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LXRvb2xiYXItbWVudSAjbWVudSBbaXRlbXNdPVwic2F2ZUl0ZW1zXCIgKG9uSXRlbUNsaWNrKT1cIm9uTWVudUl0ZW1DbGljaygkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtdG9vbGJhci1tZW51PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYXgtdG9vbGJhcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3RcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcmVkZWZpbmVkRmlsdGVycyAmJiBwcmVkZWZpbmVkRmlsdGVycy5sZW5ndGg7IGVsc2UgZW1wdHlMaXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmIG9mIHByZWRlZmluZWRGaWx0ZXJzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWYuaXNJbkVkaXQ7IGVsc2UgZWRpdE1vZGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgKGNsaWNrKT1cInNldEZpbHRlckJ5TmFtZShmLm5hbWUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWxpbmVcIiBbY2xhc3Muc2VsZWN0ZWRdPVwiZi5zZWxlY3RlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPjxpIGNsYXNzPVwiZmFyIGZhLWNoZWNrXCI+PC9pPiB7e2YudGl0bGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidG9vbHNcIj48aSBjbGFzcz1cImZhciBmYS1wZW4gdGV4dC1wcmltYXJ5XCIgdGl0bGU9XCJSZW5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlUmVuYW1lQ2xpY2soZilcIj48L2k+Jm5ic3A7PGlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYXIgZmEtdGltZXMgdGV4dC1kYW5nZXJcIiB0aXRsZT1cIlJlbW92ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVGaWx0ZXIoZilcIj48L2k+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2VkaXRNb2RlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LXRleHQtYm94ICN0YnhOYW1lIHBsYWNlaG9sZGVyPVwiRW50ZXIgZmlsdGVyJ3MgdGl0bGUgaGVyZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25LZXkpPVwidGJ4TmFtZU9uS2V5KCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC1idXR0b24gdGl0bGU9XCJTYXZlXCIgdHlwZT1cInByaW1hcnlcIiAob25DbGljayk9XCJhcHBseVNhdmVGaWx0ZXIoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLWNoZWNrXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9heC1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtYnV0dG9uIHRpdGxlPVwiQ2FuY2VsXCIgdHlwZT1cImRhbmdlclwiIChvbkNsaWNrKT1cImNhbmNlbFNhdmVGaWx0ZXIoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLXRpbWVzXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9heC1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtdmFsaWRhdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtdmFsaWRhdGlvbi1ydWxlIHR5cGU9XCJyZXF1aXJlZFwiIG1lc3NhZ2U9XCJ0aGlzIGZpZWxkIGlzIHJlcXVpcmVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9heC12YWxpZGF0aW9uLXJ1bGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LXZhbGlkYXRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtdGV4dC1ib3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZW1wdHlMaXN0PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eS1saXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2F4LXBhbmVsLWJveD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImJvZHlcIiAjYm9keT5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBnIG9mIGdyb3Vwc1wiPlxyXG4gICAgICAgICAgICA8YXgtcGFuZWwtYm94ICNmYj5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC1oZWFkZXJcIiAqbmdJZj1cImcuY2FwdGlvblwiIChjbGljayk9XCJmYi50b2dnbGUoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnZmFyIGZhLW1pbnVzLXNxdWFyZScgOiAhZmIuY29sbGFwc2VkICwnZmFzIGZhLXBsdXMtc3F1YXJlJyA6IGZiLmNvbGxhcHNlZCB9XCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e2cuY2FwdGlvbn19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGMgb2YgZy5jb2x1bW5zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZpbHRlci1pdGVtLWhlYWRlclwiIFtzdHlsZS5tYXJnaW4tYm90dG9tLnB4XT1cImMuYWN0aXZlID8gMCA6IDJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWNoZWNrLWJveCAob25WYWx1ZUNoYW5nZWQpPVwib25DaGVja1ZhbHVlQ2hhbmdlKGMsJGV2ZW50KVwiIFtsYWJlbF09XCJjLmNhcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwiYy5hY3RpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9heC1jaGVjay1ib3g+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBbaGlkZGVuXT1cIiFjLmFjdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJjLnR5cGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidzZWxlY3Rpb24nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWZpbHRlci1jb2x1bW4tc2VsZWN0aW9uICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIiBbZmllbGRdPVwiYy5maWVsZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoYWN0aXZlKV09XCJjLmFjdGl2ZVwiIFttb2RlXT1cImMub3B0aW9ucy5tb2RlXCIgW2l0ZW1zXT1cImMub3B0aW9ucy5pdGVtc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhVHlwZV09XCJjLm9wdGlvbnMuZGF0YVR5cGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LWZpbHRlci1jb2x1bW4tc2VsZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGF0ZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtZmlsdGVyLWNvbHVtbi1kYXRlICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIiBbZmllbGRdPVwiYy5maWVsZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoYWN0aXZlKV09XCJjLmFjdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtZmlsdGVyLWNvbHVtbi1kYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbnVtYmVyJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC1maWx0ZXItY29sdW1uLW51bWJlciAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCIgW2ZpZWxkXT1cImMuZmllbGRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKGFjdGl2ZSldPVwiYy5hY3RpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LWZpbHRlci1jb2x1bW4tbnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWZpbHRlci1jb2x1bW4tc3RyaW5nICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIiBbZmllbGRdPVwiYy5maWVsZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoYWN0aXZlKV09XCJjLmFjdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtZmlsdGVyLWNvbHVtbi1zdHJpbmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9heC1wYW5lbC1ib3g+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2ICpuZ0lmPVwibW9kZT09J2NsaWNrJ1wiIGNsYXNzPVwiZm9vdGVyXCIgI2Zvb3Rlcj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLXBhbmVsXCI+XHJcbiAgICAgICAgICAgIDxheC1idXR0b24gKG9uQ2xpY2spPVwiYXBwbHkoKVwiIHR5cGU9XCJzdWNjZXNzXCIgc2l6ZT1cInNtXCI+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1maWx0ZXJcIj48L2k+XHJcbiAgICAgICAgICAgICAgICBBcHBseSBGaWx0ZXJcclxuICAgICAgICAgICAgPC9heC1idXR0b24+XHJcbiAgICAgICAgICAgIDxheC1idXR0b24gKG9uQ2xpY2spPVwiY2xlYXIoKTtcIiB0eXBlPVwibGlnaHQgXCIgc2l6ZT1cInNtXCI+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1lcmFzZXJcIj48L2k+XHJcbiAgICAgICAgICAgICAgICBDbGVhclxyXG4gICAgICAgICAgICA8L2F4LWJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
@@ -0,0 +1,44 @@
1
+ import { Input, ChangeDetectorRef, EventEmitter, Output, Directive } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class AXFilterColumnComponent {
4
+ constructor(cdr) {
5
+ this.cdr = cdr;
6
+ this.operator = 'equal';
7
+ this.value = null;
8
+ this.field = null;
9
+ this.valueChange = new EventEmitter();
10
+ this.activeChange = new EventEmitter();
11
+ }
12
+ get active() {
13
+ return this._active;
14
+ }
15
+ set active(v) {
16
+ this._active = v;
17
+ this.activeChange.emit(v);
18
+ }
19
+ clear() {
20
+ this.active = false;
21
+ this.value = null;
22
+ this.cdr.detectChanges();
23
+ }
24
+ setFilter(value, operator) {
25
+ this.active = true;
26
+ this.operator = operator;
27
+ this.value = value;
28
+ this.cdr.detectChanges();
29
+ }
30
+ }
31
+ AXFilterColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXFilterColumnComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
32
+ AXFilterColumnComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: AXFilterColumnComponent, inputs: { field: "field", active: "active" }, outputs: { valueChange: "valueChange", activeChange: "activeChange" }, ngImport: i0 });
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXFilterColumnComponent, decorators: [{
34
+ type: Directive
35
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { field: [{
36
+ type: Input
37
+ }], valueChange: [{
38
+ type: Output
39
+ }], activeChange: [{
40
+ type: Output
41
+ }], active: [{
42
+ type: Input
43
+ }] } });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvc3JjL2xpYi9kYXRhLWZpbHRlci9maWx0ZXIuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUE0QjFGLE1BQU0sT0FBZ0IsdUJBQXVCO0lBRXpDLFlBQXNCLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBRzVDLGFBQVEsR0FBVyxPQUFPLENBQUM7UUFDM0IsVUFBSyxHQUFRLElBQUksQ0FBQztRQUVsQixVQUFLLEdBQVcsSUFBSSxDQUFDO1FBR3JCLGdCQUFXLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFJM0QsaUJBQVksR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztJQVhsRSxDQUFDO0lBY0QsSUFDVyxNQUFNO1FBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFXLE1BQU0sQ0FBQyxDQUFVO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFLRCxLQUFLO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQVUsRUFBRSxRQUFnQjtRQUNsQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzdCLENBQUM7O3FIQXpDaUIsdUJBQXVCO3lHQUF2Qix1QkFBdUI7NEZBQXZCLHVCQUF1QjtrQkFENUMsU0FBUzt3R0FTTixLQUFLO3NCQURKLEtBQUs7Z0JBSU4sV0FBVztzQkFEVixNQUFNO2dCQUtQLFlBQVk7c0JBRFgsTUFBTTtnQkFLSSxNQUFNO3NCQURoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXQsIENoYW5nZURldGVjdG9yUmVmLCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFYRmlsdGVyQ29sdW1uIHtcclxuICAgIGZpZWxkOiBzdHJpbmc7XHJcbiAgICBjYXB0aW9uOiBzdHJpbmc7XHJcbiAgICB0eXBlPzogJ3RleHQnIHwgJ3NlbGVjdGlvbicgfCAnZGF0ZScgfCAnbnVtYmVyJztcclxuICAgIG9wdGlvbnM/OiBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVhGaWx0ZXJDb2x1bW5Hcm91cCB7XHJcbiAgICBjYXB0aW9uPzogc3RyaW5nO1xyXG4gICAgY29sdW1uczogQVhGaWx0ZXJDb2x1bW5bXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBWEZpbHRlckNvbmRpdGlvbiB7XHJcbiAgICBmaWVsZDogc3RyaW5nO1xyXG4gICAgY29uZGl0aW9uOiBzdHJpbmc7XHJcbiAgICBkYXRhVHlwZTogJ3N0cmluZycgfCAnZGF0ZScgfCAnZGF0ZXRpbWUnIHwgJ3RpbWUnIHwgJ251bWJlcic7XHJcbiAgICB2YWx1ZTogYW55O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFYRmlsdGVyUHJlZGVmaW5lZCB7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICB0aXRsZTogc3RyaW5nO1xyXG4gICAgdmFsdWU6IEFYRmlsdGVyQ29uZGl0aW9uW107XHJcbn1cclxuXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhGaWx0ZXJDb2x1bW5Db21wb25lbnQge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcblxyXG4gICAgfVxyXG4gICAgb3BlcmF0b3I6IHN0cmluZyA9ICdlcXVhbCc7XHJcbiAgICB2YWx1ZTogYW55ID0gbnVsbDtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBmaWVsZDogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgYWN0aXZlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gICAgcHJpdmF0ZSBfYWN0aXZlOiBib29sZWFuO1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBnZXQgYWN0aXZlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9hY3RpdmU7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgc2V0IGFjdGl2ZSh2OiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fYWN0aXZlID0gdjtcclxuICAgICAgICB0aGlzLmFjdGl2ZUNoYW5nZS5lbWl0KHYpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBhYnN0cmFjdCBnZXQgY29uZGl0aW9uKCk6IEFYRmlsdGVyQ29uZGl0aW9uO1xyXG5cclxuICAgIGNsZWFyKCkge1xyXG4gICAgICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIHNldEZpbHRlcih2YWx1ZTogYW55LCBvcGVyYXRvcjogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMub3BlcmF0b3IgPSBvcGVyYXRvcjtcclxuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG59XHJcblxyXG5cclxuIl19