@acorex/components 6.5.70 → 6.5.90

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 (475) hide show
  1. package/README.md +7 -3
  2. package/esm2022/acorex-components.mjs +5 -0
  3. package/esm2022/index.mjs +158 -0
  4. package/esm2022/lib/accordion/accordion.component.mjs +45 -0
  5. package/esm2022/lib/accordion/accordion.module.mjs +20 -0
  6. package/esm2022/lib/base/base-page.class.mjs +95 -0
  7. package/esm2022/lib/base/components.class.mjs +17 -0
  8. package/esm2022/lib/base/element.class.mjs +301 -0
  9. package/esm2022/lib/base/events.class.mjs +17 -0
  10. package/esm2022/lib/button/button.component.mjs +74 -0
  11. package/esm2022/lib/button/button.module.mjs +21 -0
  12. package/esm2022/lib/calendar/calendar-box/calendar-box.component.mjs +426 -0
  13. package/esm2022/lib/calendar/calendar-box/calendar-box.module.mjs +22 -0
  14. package/esm2022/lib/calendar/scheduler/scheduler-views.property.mjs +59 -0
  15. package/esm2022/lib/calendar/scheduler/scheduler.class.mjs +16 -0
  16. package/esm2022/lib/calendar/scheduler/scheduler.component.mjs +226 -0
  17. package/esm2022/lib/calendar/scheduler/scheduler.module.mjs +68 -0
  18. package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.mjs +136 -0
  19. package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.mjs +37 -0
  20. package/esm2022/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.mjs +49 -0
  21. package/esm2022/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.mjs +102 -0
  22. package/esm2022/lib/calendar/scheduler/views/month/scheduler-month-view.component.mjs +214 -0
  23. package/esm2022/lib/calendar/scheduler/views/scheduler-view.component.mjs +99 -0
  24. package/esm2022/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.mjs +85 -0
  25. package/esm2022/lib/checkbox/checkbox.component.mjs +102 -0
  26. package/esm2022/lib/checkbox/checkbox.module.mjs +20 -0
  27. package/esm2022/lib/color-picker/color-box/color-box.component.mjs +423 -0
  28. package/esm2022/lib/color-picker/color-picker.component.mjs +89 -0
  29. package/esm2022/lib/color-picker/color-picker.module.mjs +24 -0
  30. package/esm2022/lib/context-menu/context-menu.component.mjs +68 -0
  31. package/esm2022/lib/context-menu/context-menu.directive.mjs +146 -0
  32. package/esm2022/lib/context-menu/context-menu.module.mjs +20 -0
  33. package/esm2022/lib/data-filter/columns/filter-column-date.component.mjs +140 -0
  34. package/esm2022/lib/data-filter/columns/filter-column-number.component.mjs +119 -0
  35. package/esm2022/lib/data-filter/columns/filter-column-selection.component.mjs +75 -0
  36. package/esm2022/lib/data-filter/columns/filter-column-string.component.mjs +119 -0
  37. package/esm2022/lib/data-filter/filter-panel/filter-panel.component.mjs +267 -0
  38. package/esm2022/lib/data-filter/filter.class.mjs +46 -0
  39. package/esm2022/lib/data-filter/filter.module.mjs +88 -0
  40. package/esm2022/lib/data-filter/toolbar/filter-toolbar.component.mjs +168 -0
  41. package/esm2022/lib/data-list/core/data-list.component.mjs +37 -0
  42. package/esm2022/lib/data-list/list/list.component.mjs +134 -0
  43. package/esm2022/lib/data-list/list/list.module.mjs +22 -0
  44. package/esm2022/lib/data-list/list/toolbar-list-view.component.mjs +84 -0
  45. package/esm2022/lib/data-source/datasource.component.mjs +47 -0
  46. package/esm2022/lib/data-source/datasource.module.mjs +18 -0
  47. package/esm2022/lib/data-source/read-param.mjs +7 -0
  48. package/esm2022/lib/date-picker/date-picker.component.mjs +718 -0
  49. package/esm2022/lib/date-picker/date-picker.module.mjs +49 -0
  50. package/esm2022/lib/dialog/dialog.component.mjs +26 -0
  51. package/esm2022/lib/dialog/dialog.module.mjs +21 -0
  52. package/esm2022/lib/dialog/dialog.service.mjs +160 -0
  53. package/esm2022/lib/drawer/content.component.mjs +18 -0
  54. package/esm2022/lib/drawer/drawer-container.component.mjs +38 -0
  55. package/esm2022/lib/drawer/drawer.component.mjs +146 -0
  56. package/esm2022/lib/drawer/drawer.module.mjs +23 -0
  57. package/esm2022/lib/dropdown/dropdown.component.mjs +186 -0
  58. package/esm2022/lib/dropdown/dropdown.module.mjs +26 -0
  59. package/esm2022/lib/fieldset/fieldset.component.mjs +57 -0
  60. package/esm2022/lib/fieldset/fieldset.module.mjs +19 -0
  61. package/esm2022/lib/form-group/form-group.component.mjs +37 -0
  62. package/esm2022/lib/form-group/form-group.module.mjs +21 -0
  63. package/esm2022/lib/label/label.component.mjs +19 -0
  64. package/esm2022/lib/label/label.module.mjs +21 -0
  65. package/esm2022/lib/loading/loading-indicator.component.mjs +18 -0
  66. package/esm2022/lib/loading/loading-panel.component.mjs +45 -0
  67. package/esm2022/lib/loading/loading.module.mjs +21 -0
  68. package/esm2022/lib/loading/loading.service.mjs +47 -0
  69. package/esm2022/lib/menu/menu-item.component.mjs +50 -0
  70. package/esm2022/lib/menu/menu.component.mjs +98 -0
  71. package/esm2022/lib/menu/menu.module.mjs +22 -0
  72. package/esm2022/lib/menu/menu2.component.mjs +100 -0
  73. package/esm2022/lib/number-box/number-box.component.mjs +628 -0
  74. package/esm2022/lib/number-box/number-box.module.mjs +21 -0
  75. package/esm2022/lib/page/content.component.mjs +27 -0
  76. package/esm2022/lib/page/footer.component.mjs +19 -0
  77. package/esm2022/lib/page/page.component.mjs +57 -0
  78. package/esm2022/lib/page/page.module.mjs +22 -0
  79. package/esm2022/lib/panel-box/panel-box.component.mjs +87 -0
  80. package/esm2022/lib/panel-box/panel-box.module.mjs +19 -0
  81. package/esm2022/lib/password-box/password-box.component.mjs +32 -0
  82. package/esm2022/lib/password-box/password-box.module.mjs +23 -0
  83. package/esm2022/lib/popover/custom-cdk-overlay.service.mjs +50 -0
  84. package/esm2022/lib/popover/overlay.service.mjs +94 -0
  85. package/esm2022/lib/popover/popover.component.mjs +145 -0
  86. package/esm2022/lib/popover/popover.module.mjs +19 -0
  87. package/esm2022/lib/popup/popup.component.mjs +159 -0
  88. package/esm2022/lib/popup/popup.module.mjs +25 -0
  89. package/esm2022/lib/popup/popup.service.mjs +94 -0
  90. package/esm2022/lib/progress-bar/progress-bar.component.mjs +16 -0
  91. package/esm2022/lib/progress-bar/progress-bar.module.mjs +19 -0
  92. package/esm2022/lib/property-editor/editors/check-editor/check-editor.mjs +65 -0
  93. package/esm2022/lib/property-editor/editors/check-editor/check.module.mjs +22 -0
  94. package/esm2022/lib/property-editor/editors/color-editor/color.editor.mjs +41 -0
  95. package/esm2022/lib/property-editor/editors/color-editor/color.module.mjs +24 -0
  96. package/esm2022/lib/property-editor/editors/column-editor/column.editor.mjs +118 -0
  97. package/esm2022/lib/property-editor/editors/column-editor/column.module.mjs +32 -0
  98. package/esm2022/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.mjs +216 -0
  99. package/esm2022/lib/property-editor/editors/conditional-color-editor/conditional-color.module.mjs +76 -0
  100. package/esm2022/lib/property-editor/editors/date-editor/date.editor.mjs +87 -0
  101. package/esm2022/lib/property-editor/editors/date-editor/date.module.mjs +24 -0
  102. package/esm2022/lib/property-editor/editors/number-editor/number.editor.mjs +66 -0
  103. package/esm2022/lib/property-editor/editors/number-editor/number.module.mjs +24 -0
  104. package/esm2022/lib/property-editor/editors/range-editor/range.editor.mjs +145 -0
  105. package/esm2022/lib/property-editor/editors/range-editor/range.module.mjs +59 -0
  106. package/esm2022/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.mjs +76 -0
  107. package/esm2022/lib/property-editor/editors/selectbox-editor/selectbox.editor.mjs +75 -0
  108. package/esm2022/lib/property-editor/editors/selectbox-editor/selectbox.module.mjs +25 -0
  109. package/esm2022/lib/property-editor/editors/selection-editor/selection-editor.mjs +73 -0
  110. package/esm2022/lib/property-editor/editors/selection-editor/selection.module.mjs +22 -0
  111. package/esm2022/lib/property-editor/editors/switch-editor/number.editor.mjs +30 -0
  112. package/esm2022/lib/property-editor/editors/switch-editor/number.module.mjs +25 -0
  113. package/esm2022/lib/property-editor/editors/text-editor/text.editor.mjs +36 -0
  114. package/esm2022/lib/property-editor/editors/text-editor/text.module.mjs +24 -0
  115. package/esm2022/lib/property-editor/editors/textarea-editor/textarea.editor.mjs +35 -0
  116. package/esm2022/lib/property-editor/editors/textarea-editor/textarea.module.mjs +24 -0
  117. package/esm2022/lib/property-editor/editors/time-editor/time.editor.mjs +47 -0
  118. package/esm2022/lib/property-editor/editors/time-editor/time.module.mjs +24 -0
  119. package/esm2022/lib/property-editor/property-editor-renderer.directive.mjs +167 -0
  120. package/esm2022/lib/property-editor/property-editor.class.mjs +108 -0
  121. package/esm2022/lib/property-editor/property-editor.module.mjs +194 -0
  122. package/esm2022/lib/query-builder/query-builder-group.component.mjs +129 -0
  123. package/esm2022/lib/query-builder/query-builder-popup/query-builder-popup.component.mjs +177 -0
  124. package/esm2022/lib/query-builder/query-builder-rule.component.mjs +428 -0
  125. package/esm2022/lib/query-builder/query-builder.class.mjs +42 -0
  126. package/esm2022/lib/query-builder/query-builder.component.mjs +92 -0
  127. package/esm2022/lib/query-builder/query-builder.module.mjs +62 -0
  128. package/esm2022/lib/query-builder/query-builder.service.mjs +199 -0
  129. package/esm2022/lib/search-bar/search-bar.component.mjs +293 -0
  130. package/esm2022/lib/search-bar/search-bar.module.mjs +61 -0
  131. package/esm2022/lib/searchbox/searchbox.component.mjs +82 -0
  132. package/esm2022/lib/searchbox/searchbox.module.mjs +24 -0
  133. package/esm2022/lib/selectbox/selectbox.component.mjs +1025 -0
  134. package/esm2022/lib/selectbox/selectbox.module.mjs +44 -0
  135. package/esm2022/lib/selectbox/selectbox2.component.mjs +617 -0
  136. package/esm2022/lib/selection-list/selection-list.component.mjs +113 -0
  137. package/esm2022/lib/selection-list/selection-list.module.mjs +21 -0
  138. package/esm2022/lib/switch/switch.component.mjs +55 -0
  139. package/esm2022/lib/switch/switch.module.mjs +20 -0
  140. package/esm2022/lib/tab-page/tab-page-Renderer.component.mjs +75 -0
  141. package/esm2022/lib/tab-page/tab-page-host.component.mjs +124 -0
  142. package/esm2022/lib/tab-page/tab-page.module.mjs +21 -0
  143. package/esm2022/lib/tab-page/tab-page.service.mjs +158 -0
  144. package/esm2022/lib/tab-strip/tab-strip.component.mjs +38 -0
  145. package/esm2022/lib/tab-strip/tab-strip.module.mjs +19 -0
  146. package/esm2022/lib/tab-view/dynamic-tabs.directive.mjs +25 -0
  147. package/esm2022/lib/tab-view/tab-view.component.mjs +110 -0
  148. package/esm2022/lib/tab-view/tab-view.module.mjs +21 -0
  149. package/esm2022/lib/tab-view/tab.component.mjs +33 -0
  150. package/esm2022/lib/textarea/textarea.component.mjs +27 -0
  151. package/esm2022/lib/textarea/textarea.module.mjs +21 -0
  152. package/esm2022/lib/textbox/textbox.component.mjs +42 -0
  153. package/esm2022/lib/textbox/textbox.module.mjs +36 -0
  154. package/esm2022/lib/time-picker/time-picker.component.mjs +1104 -0
  155. package/esm2022/lib/time-picker/time-picker.module.mjs +34 -0
  156. package/esm2022/lib/toast/toast-message/toast-message.component.mjs +76 -0
  157. package/esm2022/lib/toast/toast-wrapper/toast-wrapper.component.mjs +13 -0
  158. package/esm2022/lib/toast/toast.module.mjs +21 -0
  159. package/esm2022/lib/toast/toast.service.mjs +45 -0
  160. package/esm2022/lib/toolbar/group-button/toolbar-group-button.component.mjs +77 -0
  161. package/esm2022/lib/toolbar/menu/toolbar-menu.component.mjs +62 -0
  162. package/esm2022/lib/toolbar/search/toolbar-search.component.mjs +56 -0
  163. package/esm2022/lib/toolbar/title/toolbar-title.component.mjs +37 -0
  164. package/esm2022/lib/toolbar/toolbar-item.mjs +4 -0
  165. package/esm2022/lib/toolbar/toolbar.component.mjs +13 -0
  166. package/esm2022/lib/toolbar/toolbar.module.mjs +40 -0
  167. package/esm2022/lib/tooltip/tooltip.directive.mjs +104 -0
  168. package/esm2022/lib/tooltip/tooltip.module.mjs +19 -0
  169. package/esm2022/lib/tree-side-menu/tree-side-menu.component.mjs +697 -0
  170. package/esm2022/lib/tree-side-menu/tree-side-menu.module.mjs +33 -0
  171. package/esm2022/lib/tree-view/tree-view.component.mjs +854 -0
  172. package/esm2022/lib/tree-view/tree-view.module.mjs +22 -0
  173. package/esm2022/lib/upload-file/upload-file.component.mjs +218 -0
  174. package/esm2022/lib/upload-file/upload-file.events.mjs +2 -0
  175. package/esm2022/lib/upload-file/upload-file.module.mjs +24 -0
  176. package/esm2022/lib/validation/validation-form.component.mjs +68 -0
  177. package/esm2022/lib/validation/validation-rule.widget.mjs +114 -0
  178. package/esm2022/lib/validation/validation.class.mjs +2 -0
  179. package/esm2022/lib/validation/validation.component.mjs +89 -0
  180. package/esm2022/lib/validation/validation.module.mjs +34 -0
  181. package/{fesm2020 → fesm2022}/acorex-components.mjs +3987 -3087
  182. package/fesm2022/acorex-components.mjs.map +1 -0
  183. package/lib/accordion/accordion.component.d.ts +1 -1
  184. package/lib/base/base-page.class.d.ts +2 -2
  185. package/lib/base/element.class.d.ts +6 -6
  186. package/lib/button/button.component.d.ts +1 -1
  187. package/lib/calendar/calendar-box/calendar-box.component.d.ts +6 -6
  188. package/lib/calendar/scheduler/scheduler-views.property.d.ts +2 -2
  189. package/lib/calendar/scheduler/scheduler.class.d.ts +1 -1
  190. package/lib/calendar/scheduler/scheduler.component.d.ts +1 -1
  191. package/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.d.ts +1 -1
  192. package/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.d.ts +1 -1
  193. package/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.d.ts +1 -1
  194. package/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.d.ts +1 -1
  195. package/lib/calendar/scheduler/views/month/scheduler-month-view.component.d.ts +1 -1
  196. package/lib/calendar/scheduler/views/scheduler-view.component.d.ts +1 -1
  197. package/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.d.ts +1 -1
  198. package/lib/checkbox/checkbox.component.d.ts +1 -1
  199. package/lib/color-picker/color-box/color-box.component.d.ts +1 -1
  200. package/lib/color-picker/color-picker.component.d.ts +1 -1
  201. package/lib/context-menu/context-menu.component.d.ts +1 -1
  202. package/lib/context-menu/context-menu.directive.d.ts +3 -3
  203. package/lib/data-filter/columns/filter-column-date.component.d.ts +1 -1
  204. package/lib/data-filter/columns/filter-column-number.component.d.ts +1 -1
  205. package/lib/data-filter/columns/filter-column-selection.component.d.ts +1 -1
  206. package/lib/data-filter/columns/filter-column-string.component.d.ts +1 -1
  207. package/lib/data-filter/filter-panel/filter-panel.component.d.ts +1 -1
  208. package/lib/data-filter/filter.class.d.ts +1 -1
  209. package/lib/data-filter/toolbar/filter-toolbar.component.d.ts +1 -1
  210. package/lib/data-list/core/data-list.component.d.ts +1 -1
  211. package/lib/data-list/list/list.component.d.ts +1 -1
  212. package/lib/data-list/list/toolbar-list-view.component.d.ts +2 -2
  213. package/lib/data-source/datasource.component.d.ts +1 -1
  214. package/lib/date-picker/date-picker.component.d.ts +1 -1
  215. package/lib/date-picker/date-picker.module.d.ts +2 -2
  216. package/lib/dialog/dialog.component.d.ts +1 -1
  217. package/lib/drawer/content.component.d.ts +1 -1
  218. package/lib/drawer/drawer-container.component.d.ts +1 -1
  219. package/lib/drawer/drawer.component.d.ts +3 -3
  220. package/lib/dropdown/dropdown.component.d.ts +1 -1
  221. package/lib/fieldset/fieldset.component.d.ts +1 -1
  222. package/lib/form-group/form-group.component.d.ts +1 -1
  223. package/lib/label/label.component.d.ts +1 -1
  224. package/lib/loading/loading-indicator.component.d.ts +1 -1
  225. package/lib/loading/loading-panel.component.d.ts +1 -1
  226. package/lib/menu/menu-item.component.d.ts +1 -1
  227. package/lib/menu/menu.component.d.ts +1 -1
  228. package/lib/menu/menu2.component.d.ts +1 -1
  229. package/lib/number-box/number-box.component.d.ts +1 -1
  230. package/lib/page/content.component.d.ts +1 -1
  231. package/lib/page/footer.component.d.ts +1 -1
  232. package/lib/page/page.component.d.ts +1 -1
  233. package/lib/panel-box/panel-box.component.d.ts +1 -1
  234. package/lib/password-box/password-box.component.d.ts +1 -1
  235. package/lib/popover/popover.component.d.ts +1 -1
  236. package/lib/popup/popup.component.d.ts +1 -1
  237. package/lib/progress-bar/progress-bar.component.d.ts +1 -1
  238. package/lib/property-editor/editors/check-editor/check-editor.d.ts +1 -1
  239. package/lib/property-editor/editors/color-editor/color.editor.d.ts +1 -1
  240. package/lib/property-editor/editors/column-editor/column.editor.d.ts +1 -1
  241. package/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.d.ts +1 -1
  242. package/lib/property-editor/editors/date-editor/date.editor.d.ts +1 -1
  243. package/lib/property-editor/editors/number-editor/number.editor.d.ts +1 -1
  244. package/lib/property-editor/editors/range-editor/range.editor.d.ts +1 -1
  245. package/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.d.ts +1 -1
  246. package/lib/property-editor/editors/selectbox-editor/selectbox.editor.d.ts +1 -1
  247. package/lib/property-editor/editors/selection-editor/selection-editor.d.ts +1 -1
  248. package/lib/property-editor/editors/switch-editor/number.editor.d.ts +1 -1
  249. package/lib/property-editor/editors/text-editor/text.editor.d.ts +1 -1
  250. package/lib/property-editor/editors/textarea-editor/textarea.editor.d.ts +1 -1
  251. package/lib/property-editor/editors/time-editor/time.editor.d.ts +1 -1
  252. package/lib/property-editor/property-editor-renderer.directive.d.ts +1 -1
  253. package/lib/property-editor/property-editor.class.d.ts +3 -3
  254. package/lib/query-builder/query-builder-group.component.d.ts +1 -1
  255. package/lib/query-builder/query-builder-popup/query-builder-popup.component.d.ts +1 -1
  256. package/lib/query-builder/query-builder-rule.component.d.ts +3 -3
  257. package/lib/query-builder/query-builder.class.d.ts +4 -4
  258. package/lib/query-builder/query-builder.component.d.ts +1 -1
  259. package/lib/search-bar/search-bar.component.d.ts +1 -1
  260. package/lib/searchbox/searchbox.component.d.ts +1 -1
  261. package/lib/selectbox/selectbox.component.d.ts +1 -1
  262. package/lib/selectbox/selectbox2.component.d.ts +1 -1
  263. package/lib/selection-list/selection-list.component.d.ts +2 -2
  264. package/lib/switch/switch.component.d.ts +1 -1
  265. package/lib/tab-page/tab-page-Renderer.component.d.ts +1 -1
  266. package/lib/tab-page/tab-page-host.component.d.ts +1 -1
  267. package/lib/tab-strip/tab-strip.component.d.ts +1 -1
  268. package/lib/tab-view/dynamic-tabs.directive.d.ts +1 -1
  269. package/lib/tab-view/tab-view.component.d.ts +1 -1
  270. package/lib/tab-view/tab.component.d.ts +1 -1
  271. package/lib/textarea/textarea.component.d.ts +1 -1
  272. package/lib/textbox/textbox.component.d.ts +1 -1
  273. package/lib/textbox/textbox.module.d.ts +2 -2
  274. package/lib/time-picker/time-picker.component.d.ts +1 -1
  275. package/lib/time-picker/time-picker.module.d.ts +2 -2
  276. package/lib/toast/toast-message/toast-message.component.d.ts +1 -1
  277. package/lib/toast/toast-wrapper/toast-wrapper.component.d.ts +1 -1
  278. package/lib/toolbar/group-button/toolbar-group-button.component.d.ts +1 -1
  279. package/lib/toolbar/menu/toolbar-menu.component.d.ts +1 -1
  280. package/lib/toolbar/search/toolbar-search.component.d.ts +1 -1
  281. package/lib/toolbar/title/toolbar-title.component.d.ts +1 -1
  282. package/lib/toolbar/toolbar.component.d.ts +1 -1
  283. package/lib/tooltip/tooltip.directive.d.ts +1 -1
  284. package/lib/tree-side-menu/tree-side-menu.component.d.ts +1 -1
  285. package/lib/tree-view/tree-view.component.d.ts +1 -1
  286. package/lib/upload-file/upload-file.component.d.ts +1 -1
  287. package/lib/validation/validation-form.component.d.ts +1 -1
  288. package/lib/validation/validation-rule.widget.d.ts +1 -1
  289. package/lib/validation/validation.class.d.ts +1 -1
  290. package/lib/validation/validation.component.d.ts +1 -1
  291. package/package.json +15 -20
  292. package/acorex-components.d.ts +0 -5
  293. package/esm2020/acorex-components.mjs +0 -5
  294. package/esm2020/lib/accordion/accordion.component.mjs +0 -44
  295. package/esm2020/lib/accordion/accordion.module.mjs +0 -20
  296. package/esm2020/lib/base/base-page.class.mjs +0 -94
  297. package/esm2020/lib/base/components.class.mjs +0 -17
  298. package/esm2020/lib/base/element.class.mjs +0 -294
  299. package/esm2020/lib/base/events.class.mjs +0 -11
  300. package/esm2020/lib/button/button.component.mjs +0 -71
  301. package/esm2020/lib/button/button.module.mjs +0 -21
  302. package/esm2020/lib/calendar/calendar-box/calendar-box.component.mjs +0 -413
  303. package/esm2020/lib/calendar/calendar-box/calendar-box.module.mjs +0 -22
  304. package/esm2020/lib/calendar/scheduler/scheduler-views.property.mjs +0 -54
  305. package/esm2020/lib/calendar/scheduler/scheduler.class.mjs +0 -18
  306. package/esm2020/lib/calendar/scheduler/scheduler.component.mjs +0 -213
  307. package/esm2020/lib/calendar/scheduler/scheduler.module.mjs +0 -68
  308. package/esm2020/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.mjs +0 -132
  309. package/esm2020/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.mjs +0 -37
  310. package/esm2020/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.mjs +0 -47
  311. package/esm2020/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.mjs +0 -95
  312. package/esm2020/lib/calendar/scheduler/views/month/scheduler-month-view.component.mjs +0 -204
  313. package/esm2020/lib/calendar/scheduler/views/scheduler-view.component.mjs +0 -99
  314. package/esm2020/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.mjs +0 -77
  315. package/esm2020/lib/checkbox/checkbox.component.mjs +0 -98
  316. package/esm2020/lib/checkbox/checkbox.module.mjs +0 -20
  317. package/esm2020/lib/color-picker/color-box/color-box.component.mjs +0 -422
  318. package/esm2020/lib/color-picker/color-picker.component.mjs +0 -82
  319. package/esm2020/lib/color-picker/color-picker.module.mjs +0 -24
  320. package/esm2020/lib/context-menu/context-menu.component.mjs +0 -65
  321. package/esm2020/lib/context-menu/context-menu.directive.mjs +0 -135
  322. package/esm2020/lib/context-menu/context-menu.module.mjs +0 -20
  323. package/esm2020/lib/data-filter/columns/filter-column-date.component.mjs +0 -138
  324. package/esm2020/lib/data-filter/columns/filter-column-number.component.mjs +0 -117
  325. package/esm2020/lib/data-filter/columns/filter-column-selection.component.mjs +0 -74
  326. package/esm2020/lib/data-filter/columns/filter-column-string.component.mjs +0 -117
  327. package/esm2020/lib/data-filter/filter-panel/filter-panel.component.mjs +0 -258
  328. package/esm2020/lib/data-filter/filter.class.mjs +0 -44
  329. package/esm2020/lib/data-filter/filter.module.mjs +0 -90
  330. package/esm2020/lib/data-filter/toolbar/filter-toolbar.component.mjs +0 -166
  331. package/esm2020/lib/data-list/core/data-list.component.mjs +0 -40
  332. package/esm2020/lib/data-list/list/list.component.mjs +0 -124
  333. package/esm2020/lib/data-list/list/list.module.mjs +0 -22
  334. package/esm2020/lib/data-list/list/toolbar-list-view.component.mjs +0 -85
  335. package/esm2020/lib/data-source/datasource.component.mjs +0 -47
  336. package/esm2020/lib/data-source/datasource.module.mjs +0 -18
  337. package/esm2020/lib/data-source/read-param.mjs +0 -5
  338. package/esm2020/lib/date-picker/date-picker.component.mjs +0 -702
  339. package/esm2020/lib/date-picker/date-picker.module.mjs +0 -25
  340. package/esm2020/lib/dialog/dialog.component.mjs +0 -24
  341. package/esm2020/lib/dialog/dialog.module.mjs +0 -21
  342. package/esm2020/lib/dialog/dialog.service.mjs +0 -150
  343. package/esm2020/lib/drawer/content.component.mjs +0 -18
  344. package/esm2020/lib/drawer/drawer-container.component.mjs +0 -36
  345. package/esm2020/lib/drawer/drawer.component.mjs +0 -142
  346. package/esm2020/lib/drawer/drawer.module.mjs +0 -23
  347. package/esm2020/lib/dropdown/dropdown.component.mjs +0 -176
  348. package/esm2020/lib/dropdown/dropdown.module.mjs +0 -26
  349. package/esm2020/lib/fieldset/fieldset.component.mjs +0 -59
  350. package/esm2020/lib/fieldset/fieldset.module.mjs +0 -19
  351. package/esm2020/lib/form-group/form-group.component.mjs +0 -34
  352. package/esm2020/lib/form-group/form-group.module.mjs +0 -21
  353. package/esm2020/lib/label/label.component.mjs +0 -19
  354. package/esm2020/lib/label/label.module.mjs +0 -21
  355. package/esm2020/lib/loading/loading-indicator.component.mjs +0 -17
  356. package/esm2020/lib/loading/loading-panel.component.mjs +0 -44
  357. package/esm2020/lib/loading/loading.module.mjs +0 -21
  358. package/esm2020/lib/loading/loading.service.mjs +0 -45
  359. package/esm2020/lib/menu/menu-item.component.mjs +0 -47
  360. package/esm2020/lib/menu/menu.component.mjs +0 -86
  361. package/esm2020/lib/menu/menu.module.mjs +0 -22
  362. package/esm2020/lib/menu/menu2.component.mjs +0 -96
  363. package/esm2020/lib/number-box/number-box.component.mjs +0 -622
  364. package/esm2020/lib/number-box/number-box.module.mjs +0 -21
  365. package/esm2020/lib/page/content.component.mjs +0 -32
  366. package/esm2020/lib/page/footer.component.mjs +0 -19
  367. package/esm2020/lib/page/page.component.mjs +0 -53
  368. package/esm2020/lib/page/page.module.mjs +0 -22
  369. package/esm2020/lib/panel-box/panel-box.component.mjs +0 -88
  370. package/esm2020/lib/panel-box/panel-box.module.mjs +0 -19
  371. package/esm2020/lib/password-box/password-box.component.mjs +0 -31
  372. package/esm2020/lib/password-box/password-box.module.mjs +0 -23
  373. package/esm2020/lib/popover/custom-cdk-overlay.service.mjs +0 -48
  374. package/esm2020/lib/popover/overlay.service.mjs +0 -91
  375. package/esm2020/lib/popover/popover.component.mjs +0 -133
  376. package/esm2020/lib/popover/popover.module.mjs +0 -19
  377. package/esm2020/lib/popup/popup.component.mjs +0 -147
  378. package/esm2020/lib/popup/popup.module.mjs +0 -25
  379. package/esm2020/lib/popup/popup.service.mjs +0 -93
  380. package/esm2020/lib/progress-bar/progress-bar.component.mjs +0 -19
  381. package/esm2020/lib/progress-bar/progress-bar.module.mjs +0 -19
  382. package/esm2020/lib/property-editor/editors/check-editor/check-editor.mjs +0 -61
  383. package/esm2020/lib/property-editor/editors/check-editor/check.module.mjs +0 -22
  384. package/esm2020/lib/property-editor/editors/color-editor/color.editor.mjs +0 -38
  385. package/esm2020/lib/property-editor/editors/color-editor/color.module.mjs +0 -24
  386. package/esm2020/lib/property-editor/editors/column-editor/column.editor.mjs +0 -115
  387. package/esm2020/lib/property-editor/editors/column-editor/column.module.mjs +0 -32
  388. package/esm2020/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.mjs +0 -211
  389. package/esm2020/lib/property-editor/editors/conditional-color-editor/conditional-color.module.mjs +0 -78
  390. package/esm2020/lib/property-editor/editors/date-editor/date.editor.mjs +0 -51
  391. package/esm2020/lib/property-editor/editors/date-editor/date.module.mjs +0 -24
  392. package/esm2020/lib/property-editor/editors/number-editor/number.editor.mjs +0 -63
  393. package/esm2020/lib/property-editor/editors/number-editor/number.module.mjs +0 -24
  394. package/esm2020/lib/property-editor/editors/range-editor/range.editor.mjs +0 -140
  395. package/esm2020/lib/property-editor/editors/range-editor/range.module.mjs +0 -61
  396. package/esm2020/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.mjs +0 -72
  397. package/esm2020/lib/property-editor/editors/selectbox-editor/selectbox.editor.mjs +0 -71
  398. package/esm2020/lib/property-editor/editors/selectbox-editor/selectbox.module.mjs +0 -25
  399. package/esm2020/lib/property-editor/editors/selection-editor/selection-editor.mjs +0 -69
  400. package/esm2020/lib/property-editor/editors/selection-editor/selection.module.mjs +0 -22
  401. package/esm2020/lib/property-editor/editors/switch-editor/number.editor.mjs +0 -29
  402. package/esm2020/lib/property-editor/editors/switch-editor/number.module.mjs +0 -25
  403. package/esm2020/lib/property-editor/editors/text-editor/text.editor.mjs +0 -32
  404. package/esm2020/lib/property-editor/editors/text-editor/text.module.mjs +0 -24
  405. package/esm2020/lib/property-editor/editors/textarea-editor/textarea.editor.mjs +0 -32
  406. package/esm2020/lib/property-editor/editors/textarea-editor/textarea.module.mjs +0 -24
  407. package/esm2020/lib/property-editor/editors/time-editor/time.editor.mjs +0 -43
  408. package/esm2020/lib/property-editor/editors/time-editor/time.module.mjs +0 -24
  409. package/esm2020/lib/property-editor/property-editor-renderer.directive.mjs +0 -157
  410. package/esm2020/lib/property-editor/property-editor.class.mjs +0 -102
  411. package/esm2020/lib/property-editor/property-editor.module.mjs +0 -196
  412. package/esm2020/lib/query-builder/query-builder-group.component.mjs +0 -124
  413. package/esm2020/lib/query-builder/query-builder-popup/query-builder-popup.component.mjs +0 -172
  414. package/esm2020/lib/query-builder/query-builder-rule.component.mjs +0 -399
  415. package/esm2020/lib/query-builder/query-builder.class.mjs +0 -20
  416. package/esm2020/lib/query-builder/query-builder.component.mjs +0 -87
  417. package/esm2020/lib/query-builder/query-builder.module.mjs +0 -62
  418. package/esm2020/lib/query-builder/query-builder.service.mjs +0 -197
  419. package/esm2020/lib/search-bar/search-bar.component.mjs +0 -286
  420. package/esm2020/lib/search-bar/search-bar.module.mjs +0 -63
  421. package/esm2020/lib/searchbox/searchbox.component.mjs +0 -79
  422. package/esm2020/lib/searchbox/searchbox.module.mjs +0 -24
  423. package/esm2020/lib/selectbox/selectbox.component.mjs +0 -961
  424. package/esm2020/lib/selectbox/selectbox.module.mjs +0 -44
  425. package/esm2020/lib/selectbox/selectbox2.component.mjs +0 -574
  426. package/esm2020/lib/selection-list/selection-list.component.mjs +0 -108
  427. package/esm2020/lib/selection-list/selection-list.module.mjs +0 -21
  428. package/esm2020/lib/switch/switch.component.mjs +0 -51
  429. package/esm2020/lib/switch/switch.module.mjs +0 -20
  430. package/esm2020/lib/tab-page/tab-page-Renderer.component.mjs +0 -71
  431. package/esm2020/lib/tab-page/tab-page-host.component.mjs +0 -114
  432. package/esm2020/lib/tab-page/tab-page.module.mjs +0 -21
  433. package/esm2020/lib/tab-page/tab-page.service.mjs +0 -160
  434. package/esm2020/lib/tab-strip/tab-strip.component.mjs +0 -36
  435. package/esm2020/lib/tab-strip/tab-strip.module.mjs +0 -19
  436. package/esm2020/lib/tab-view/dynamic-tabs.directive.mjs +0 -24
  437. package/esm2020/lib/tab-view/tab-view.component.mjs +0 -105
  438. package/esm2020/lib/tab-view/tab-view.module.mjs +0 -21
  439. package/esm2020/lib/tab-view/tab.component.mjs +0 -30
  440. package/esm2020/lib/textarea/textarea.component.mjs +0 -26
  441. package/esm2020/lib/textarea/textarea.module.mjs +0 -21
  442. package/esm2020/lib/textbox/textbox.component.mjs +0 -39
  443. package/esm2020/lib/textbox/textbox.module.mjs +0 -24
  444. package/esm2020/lib/time-picker/time-picker.component.mjs +0 -943
  445. package/esm2020/lib/time-picker/time-picker.module.mjs +0 -22
  446. package/esm2020/lib/toast/toast-message/toast-message.component.mjs +0 -74
  447. package/esm2020/lib/toast/toast-wrapper/toast-wrapper.component.mjs +0 -13
  448. package/esm2020/lib/toast/toast.module.mjs +0 -21
  449. package/esm2020/lib/toast/toast.service.mjs +0 -44
  450. package/esm2020/lib/toolbar/group-button/toolbar-group-button.component.mjs +0 -78
  451. package/esm2020/lib/toolbar/menu/toolbar-menu.component.mjs +0 -57
  452. package/esm2020/lib/toolbar/search/toolbar-search.component.mjs +0 -54
  453. package/esm2020/lib/toolbar/title/toolbar-title.component.mjs +0 -47
  454. package/esm2020/lib/toolbar/toolbar-item.mjs +0 -6
  455. package/esm2020/lib/toolbar/toolbar.component.mjs +0 -13
  456. package/esm2020/lib/toolbar/toolbar.module.mjs +0 -40
  457. package/esm2020/lib/tooltip/tooltip.directive.mjs +0 -100
  458. package/esm2020/lib/tooltip/tooltip.module.mjs +0 -19
  459. package/esm2020/lib/tree-side-menu/tree-side-menu.component.mjs +0 -646
  460. package/esm2020/lib/tree-side-menu/tree-side-menu.module.mjs +0 -35
  461. package/esm2020/lib/tree-view/tree-view.component.mjs +0 -775
  462. package/esm2020/lib/tree-view/tree-view.module.mjs +0 -22
  463. package/esm2020/lib/upload-file/upload-file.component.mjs +0 -208
  464. package/esm2020/lib/upload-file/upload-file.events.mjs +0 -2
  465. package/esm2020/lib/upload-file/upload-file.module.mjs +0 -24
  466. package/esm2020/lib/validation/validation-form.component.mjs +0 -65
  467. package/esm2020/lib/validation/validation-rule.widget.mjs +0 -111
  468. package/esm2020/lib/validation/validation.class.mjs +0 -2
  469. package/esm2020/lib/validation/validation.component.mjs +0 -89
  470. package/esm2020/lib/validation/validation.module.mjs +0 -34
  471. package/esm2020/public-api.mjs +0 -158
  472. package/fesm2015/acorex-components.mjs +0 -16012
  473. package/fesm2015/acorex-components.mjs.map +0 -1
  474. package/fesm2020/acorex-components.mjs.map +0 -1
  475. /package/{public-api.d.ts → index.d.ts} +0 -0
@@ -0,0 +1,68 @@
1
+ import { Component, Input, ElementRef, ViewChild, Output, EventEmitter } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ export class AXContextMenuComponent {
5
+ container;
6
+ size = 'md';
7
+ width;
8
+ items = [];
9
+ onItemClick = new EventEmitter();
10
+ onClosed = new EventEmitter();
11
+ contex;
12
+ show = false;
13
+ constructor(container) {
14
+ this.container = container;
15
+ }
16
+ ngAfterViewInit() {
17
+ }
18
+ close() {
19
+ this.show = false;
20
+ this.onClosed.emit({
21
+ component: this
22
+ });
23
+ }
24
+ open(_left, _top, _rtl = false) {
25
+ this.show = true;
26
+ setTimeout(() => {
27
+ const containRec = this.container.nativeElement.getBoundingClientRect();
28
+ let left = _rtl === false ? _left : _left - containRec.width;
29
+ let top = _top;
30
+ if (_rtl === false && _left + containRec.width > window.innerWidth) {
31
+ left = window.innerWidth - containRec.width;
32
+ }
33
+ else if (_rtl === true && _left - containRec.width < 0) {
34
+ left = 0;
35
+ }
36
+ if (top + containRec.height > window.innerHeight) {
37
+ top = _top - containRec.height;
38
+ }
39
+ this.container.nativeElement.style.left = left + 'px';
40
+ this.container.nativeElement.style.top = top + 'px';
41
+ }, 5);
42
+ }
43
+ handleClickItem(item) {
44
+ if (!item.disable || item.disable === undefined) {
45
+ this.onItemClick.emit(item);
46
+ }
47
+ }
48
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXContextMenuComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
49
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: AXContextMenuComponent, selector: "ax-context-menu", inputs: { size: "size", width: "width", items: "items" }, outputs: { onItemClick: "onItemClick", onClosed: "onClosed" }, host: { classAttribute: "ax context-menu-container" }, viewQueries: [{ propertyName: "contex", first: true, predicate: ["contex"], descendants: true }], ngImport: i0, template: "<!-- <ul class=\"ax context-menu {{size}}\" [style.width.px]=\"width\">\r\n <ng-container *ngFor=\"let item of items\">\r\n <li class=\"context-menu-item\" [class.divider]=\"item.divider\" [class.disabled]=\"item.disable\">\r\n <div class=\"startIcon\">\r\n <i class=\"{{item.icon}}\"></i>\r\n <i class=\"{{item.startIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\r\n </div>\r\n <span>{{item.text}}</span>\r\n\r\n <div class=\"endIcon\">\r\n <i class=\"{{item.endIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\r\n <i class=\"far fa-angle-left ax-menu-item-drop-icon\"></i>\r\n </div>\r\n </li>\r\n </ng-container>\r\n\r\n</ul> -->\r\n\r\n<ul #contex class=\"ax context-menu {{size}}\" [style.width.px]=\"width\"\r\n [ngClass]=\"{'animate__animated animate__faster animate__fadeIn': show}\">\r\n <ng-container *ngTemplateOutlet=\"recursiveContextMenu; context:{ $implicit: items }\"></ng-container>\r\n</ul>\r\n\r\n<ng-template #recursiveContextMenu let-items>\r\n <li *ngFor=\"let item of items\" class=\"context-menu-item\" [class.divider]=\"item.divider\"\r\n [class.disabled]=\"item.disable\" (click)=\"handleClickItem(item)\">\r\n <div class=\"startIcon\">\r\n <i class=\"{{item.icon}}\"></i>\r\n <i class=\"{{item.startIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\r\n </div>\r\n <span>{{item.text}}</span>\r\n\r\n <div class=\"endIcon\">\r\n <i class=\"{{item.endIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\r\n <i class=\"far fa-angle-left ax-menu-item-drop-icon\" *ngIf=\"item.items?.length > 0\"></i>\r\n </div>\r\n <ul class=\"ax context-menu child\" *ngIf=\"item.items?.length > 0\">\r\n <ng-container *ngTemplateOutlet=\"recursiveContextMenu; context:{ $implicit: item.items }\">\r\n </ng-container>\r\n </ul>\r\n </li>\r\n</ng-template>", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
50
+ }
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXContextMenuComponent, decorators: [{
52
+ type: Component,
53
+ args: [{ selector: 'ax-context-menu', host: { class: 'ax context-menu-container' }, template: "<!-- <ul class=\"ax context-menu {{size}}\" [style.width.px]=\"width\">\r\n <ng-container *ngFor=\"let item of items\">\r\n <li class=\"context-menu-item\" [class.divider]=\"item.divider\" [class.disabled]=\"item.disable\">\r\n <div class=\"startIcon\">\r\n <i class=\"{{item.icon}}\"></i>\r\n <i class=\"{{item.startIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\r\n </div>\r\n <span>{{item.text}}</span>\r\n\r\n <div class=\"endIcon\">\r\n <i class=\"{{item.endIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\r\n <i class=\"far fa-angle-left ax-menu-item-drop-icon\"></i>\r\n </div>\r\n </li>\r\n </ng-container>\r\n\r\n</ul> -->\r\n\r\n<ul #contex class=\"ax context-menu {{size}}\" [style.width.px]=\"width\"\r\n [ngClass]=\"{'animate__animated animate__faster animate__fadeIn': show}\">\r\n <ng-container *ngTemplateOutlet=\"recursiveContextMenu; context:{ $implicit: items }\"></ng-container>\r\n</ul>\r\n\r\n<ng-template #recursiveContextMenu let-items>\r\n <li *ngFor=\"let item of items\" class=\"context-menu-item\" [class.divider]=\"item.divider\"\r\n [class.disabled]=\"item.disable\" (click)=\"handleClickItem(item)\">\r\n <div class=\"startIcon\">\r\n <i class=\"{{item.icon}}\"></i>\r\n <i class=\"{{item.startIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\r\n </div>\r\n <span>{{item.text}}</span>\r\n\r\n <div class=\"endIcon\">\r\n <i class=\"{{item.endIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\r\n <i class=\"far fa-angle-left ax-menu-item-drop-icon\" *ngIf=\"item.items?.length > 0\"></i>\r\n </div>\r\n <ul class=\"ax context-menu child\" *ngIf=\"item.items?.length > 0\">\r\n <ng-container *ngTemplateOutlet=\"recursiveContextMenu; context:{ $implicit: item.items }\">\r\n </ng-container>\r\n </ul>\r\n </li>\r\n</ng-template>" }]
54
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { size: [{
55
+ type: Input
56
+ }], width: [{
57
+ type: Input
58
+ }], items: [{
59
+ type: Input
60
+ }], onItemClick: [{
61
+ type: Output
62
+ }], onClosed: [{
63
+ type: Output
64
+ }], contex: [{
65
+ type: ViewChild,
66
+ args: ['contex']
67
+ }] } });
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvY29udGV4dC1tZW51L2NvbnRleHQtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQWdCLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFVNUcsTUFBTSxPQUFPLHNCQUFzQjtJQXVCYjtJQXJCcEIsSUFBSSxHQUFrQixJQUFJLENBQUM7SUFHM0IsS0FBSyxDQUFTO0lBR2QsS0FBSyxHQUFpQixFQUFFLENBQUM7SUFHekIsV0FBVyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBR3pELFFBQVEsR0FBOEIsSUFBSSxZQUFZLEVBQWUsQ0FBQztJQUd0RSxNQUFNLENBQStCO0lBSXJDLElBQUksR0FBWSxLQUFLLENBQUM7SUFFdEIsWUFBb0IsU0FBcUI7UUFBckIsY0FBUyxHQUFULFNBQVMsQ0FBWTtJQUN6QyxDQUFDO0lBRUQsZUFBZTtJQUNmLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDakIsU0FBUyxFQUFFLElBQUk7U0FDaEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUlELElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBRyxLQUFLO1FBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ3hFLElBQUksSUFBSSxHQUFHLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7WUFDN0QsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDO1lBQ2YsSUFBSSxJQUFJLEtBQUssS0FBSyxJQUFJLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUU7Z0JBQ2xFLElBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7YUFDN0M7aUJBQU0sSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRTtnQkFDeEQsSUFBSSxHQUFHLENBQUMsQ0FBQzthQUNWO1lBQ0QsSUFBSSxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsV0FBVyxFQUFFO2dCQUNoRCxHQUFHLEdBQUcsSUFBSSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7YUFDaEM7WUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUM7WUFDdEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDO1FBRXRELENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUdSLENBQUM7SUFJRCxlQUFlLENBQUMsSUFBZ0I7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUU7WUFDL0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDN0I7SUFDSCxDQUFDO3VHQWxFVSxzQkFBc0I7MkZBQXRCLHNCQUFzQix5VUNWbkMsKy9EQXlDYzs7MkZEL0JELHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxpQkFBaUIsUUFFckIsRUFBRSxLQUFLLEVBQUUsMkJBQTJCLEVBQUU7aUdBSTVDLElBQUk7c0JBREgsS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUs7Z0JBSU4sS0FBSztzQkFESixLQUFLO2dCQUlOLFdBQVc7c0JBRFYsTUFBTTtnQkFJUCxRQUFRO3NCQURQLE1BQU07Z0JBSVAsTUFBTTtzQkFETCxTQUFTO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIFZpZXdDaGlsZCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQVhNZW51SXRlbSB9IGZyb20gJ0BhY29yZXgvY29yZSc7XHJcbmltcG9ydCB7IEFYRWxlbWVudFNpemUgfSBmcm9tICcuLi9iYXNlL2VsZW1lbnQuY2xhc3MnO1xyXG5pbXBvcnQgeyBBWEJhc2VFdmVudCB9IGZyb20gJy4uL2Jhc2UvZXZlbnRzLmNsYXNzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXgtY29udGV4dC1tZW51JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sJyxcclxuICBob3N0OiB7IGNsYXNzOiAnYXggY29udGV4dC1tZW51LWNvbnRhaW5lcicgfVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhDb250ZXh0TWVudUNvbXBvbmVudCB7XHJcbiAgQElucHV0KClcclxuICBzaXplOiBBWEVsZW1lbnRTaXplID0gJ21kJztcclxuXHJcbiAgQElucHV0KClcclxuICB3aWR0aDogbnVtYmVyO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGl0ZW1zOiBBWE1lbnVJdGVtW10gPSBbXTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgb25JdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIG9uQ2xvc2VkOiBFdmVudEVtaXR0ZXI8QVhCYXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWEJhc2VFdmVudD4oKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnY29udGV4JylcclxuICBjb250ZXg6IEVsZW1lbnRSZWY8SFRNTFVMaXN0RWxlbWVudD47XHJcblxyXG5cclxuXHJcbiAgc2hvdzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbnRhaW5lcjogRWxlbWVudFJlZikge1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgY2xvc2UoKSB7XHJcbiAgICB0aGlzLnNob3cgPSBmYWxzZTtcclxuICAgIHRoaXMub25DbG9zZWQuZW1pdCh7XHJcbiAgICAgIGNvbXBvbmVudDogdGhpc1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIG9wZW4oX2xlZnQsIF90b3AsIF9ydGwgPSBmYWxzZSkge1xyXG4gICAgdGhpcy5zaG93ID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBjb25zdCBjb250YWluUmVjID0gdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgbGV0IGxlZnQgPSBfcnRsID09PSBmYWxzZSA/IF9sZWZ0IDogX2xlZnQgLSBjb250YWluUmVjLndpZHRoO1xyXG4gICAgICBsZXQgdG9wID0gX3RvcDtcclxuICAgICAgaWYgKF9ydGwgPT09IGZhbHNlICYmIF9sZWZ0ICsgY29udGFpblJlYy53aWR0aCA+IHdpbmRvdy5pbm5lcldpZHRoKSB7XHJcbiAgICAgICAgbGVmdCA9IHdpbmRvdy5pbm5lcldpZHRoIC0gY29udGFpblJlYy53aWR0aDtcclxuICAgICAgfSBlbHNlIGlmIChfcnRsID09PSB0cnVlICYmIF9sZWZ0IC0gY29udGFpblJlYy53aWR0aCA8IDApIHtcclxuICAgICAgICBsZWZ0ID0gMDtcclxuICAgICAgfVxyXG4gICAgICBpZiAodG9wICsgY29udGFpblJlYy5oZWlnaHQgPiB3aW5kb3cuaW5uZXJIZWlnaHQpIHtcclxuICAgICAgICB0b3AgPSBfdG9wIC0gY29udGFpblJlYy5oZWlnaHQ7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0ID0gbGVmdCArICdweCc7XHJcbiAgICAgIHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUudG9wID0gdG9wICsgJ3B4JztcclxuXHJcbiAgICB9LCA1KTtcclxuXHJcblxyXG4gIH1cclxuXHJcblxyXG5cclxuICBoYW5kbGVDbGlja0l0ZW0oaXRlbTogQVhNZW51SXRlbSkge1xyXG4gICAgaWYgKCFpdGVtLmRpc2FibGUgfHwgaXRlbS5kaXNhYmxlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5vbkl0ZW1DbGljay5lbWl0KGl0ZW0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8IS0tIDx1bCBjbGFzcz1cImF4IGNvbnRleHQtbWVudSB7e3NpemV9fVwiIFtzdHlsZS53aWR0aC5weF09XCJ3aWR0aFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiPlxyXG4gICAgICAgIDxsaSBjbGFzcz1cImNvbnRleHQtbWVudS1pdGVtXCIgW2NsYXNzLmRpdmlkZXJdPVwiaXRlbS5kaXZpZGVyXCIgW2NsYXNzLmRpc2FibGVkXT1cIml0ZW0uZGlzYWJsZVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RhcnRJY29uXCI+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInt7aXRlbS5pY29ufX1cIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInt7aXRlbS5zdGFydEljb259fVwiICpuZ0lmPVwiIWl0ZW0uaWNvbiAmJiBpdGVtLnN0YXJ0SWNvblwiPjwvaT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7aXRlbS50ZXh0fX08L3NwYW4+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW5kSWNvblwiPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJ7e2l0ZW0uZW5kSWNvbn19XCIgKm5nSWY9XCIhaXRlbS5pY29uICYmIGl0ZW0uc3RhcnRJY29uXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtYW5nbGUtbGVmdCBheC1tZW51LWl0ZW0tZHJvcC1pY29uXCI+PC9pPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2xpPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG48L3VsPiAtLT5cclxuXHJcbjx1bCAjY29udGV4IGNsYXNzPVwiYXggY29udGV4dC1tZW51IHt7c2l6ZX19XCIgW3N0eWxlLndpZHRoLnB4XT1cIndpZHRoXCJcclxuICAgIFtuZ0NsYXNzXT1cInsnYW5pbWF0ZV9fYW5pbWF0ZWQgYW5pbWF0ZV9fZmFzdGVyIGFuaW1hdGVfX2ZhZGVJbic6IHNob3d9XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVjdXJzaXZlQ29udGV4dE1lbnU7IGNvbnRleHQ6eyAkaW1wbGljaXQ6IGl0ZW1zIH1cIj48L25nLWNvbnRhaW5lcj5cclxuPC91bD5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjcmVjdXJzaXZlQ29udGV4dE1lbnUgbGV0LWl0ZW1zPlxyXG4gICAgPGxpICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCIgY2xhc3M9XCJjb250ZXh0LW1lbnUtaXRlbVwiIFtjbGFzcy5kaXZpZGVyXT1cIml0ZW0uZGl2aWRlclwiXHJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIml0ZW0uZGlzYWJsZVwiIChjbGljayk9XCJoYW5kbGVDbGlja0l0ZW0oaXRlbSlcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RhcnRJY29uXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwie3tpdGVtLmljb259fVwiPjwvaT5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJ7e2l0ZW0uc3RhcnRJY29ufX1cIiAqbmdJZj1cIiFpdGVtLmljb24gJiYgaXRlbS5zdGFydEljb25cIj48L2k+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPHNwYW4+e3tpdGVtLnRleHR9fTwvc3Bhbj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImVuZEljb25cIj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJ7e2l0ZW0uZW5kSWNvbn19XCIgKm5nSWY9XCIhaXRlbS5pY29uICYmIGl0ZW0uc3RhcnRJY29uXCI+PC9pPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1hbmdsZS1sZWZ0IGF4LW1lbnUtaXRlbS1kcm9wLWljb25cIiAqbmdJZj1cIml0ZW0uaXRlbXM/Lmxlbmd0aCA+IDBcIj48L2k+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPHVsIGNsYXNzPVwiYXggY29udGV4dC1tZW51IGNoaWxkXCIgKm5nSWY9XCJpdGVtLml0ZW1zPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZWN1cnNpdmVDb250ZXh0TWVudTsgY29udGV4dDp7ICRpbXBsaWNpdDogaXRlbS5pdGVtcyB9XCI+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvdWw+XHJcbiAgICA8L2xpPlxyXG48L25nLXRlbXBsYXRlPiJdfQ==
@@ -0,0 +1,146 @@
1
+ import { Directive, ElementRef, HostListener, Input, Output, EventEmitter, ComponentFactoryResolver, Injector, ViewContainerRef } from '@angular/core';
2
+ import { AXBaseEvent } from '../base/events.class';
3
+ import { AXContextMenuComponent } from './context-menu.component';
4
+ import * as i0 from "@angular/core";
5
+ export class AXContextMenuItemClickEvent extends AXBaseEvent {
6
+ dataItem;
7
+ menuItem;
8
+ }
9
+ export class AXContextMenuDirective {
10
+ ref;
11
+ factoryResolver;
12
+ viewContainerRef;
13
+ injector;
14
+ contextMenu;
15
+ contextDataItem;
16
+ contextMenuItems;
17
+ onContextMenuItemClick = new EventEmitter();
18
+ rtl = false;
19
+ internalItems = [];
20
+ clickSubscribe;
21
+ closeSubscribe;
22
+ onContextMenu(e) {
23
+ this.getMenuItems().then(items => {
24
+ e.stopPropagation();
25
+ e.preventDefault();
26
+ this.createContextMenu();
27
+ this.contextMenu.items = items;
28
+ this.contextMenu.open(e.x, e.y, this.rtl);
29
+ });
30
+ }
31
+ constructor(ref, factoryResolver, viewContainerRef, injector) {
32
+ this.ref = ref;
33
+ this.factoryResolver = factoryResolver;
34
+ this.viewContainerRef = viewContainerRef;
35
+ this.injector = injector;
36
+ }
37
+ ngOnInit() {
38
+ if (this.rtl == null) {
39
+ this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';
40
+ }
41
+ }
42
+ createContextMenu() {
43
+ const wrapper = document.createElement('div');
44
+ wrapper.classList.add('ax-overlay-wrapper');
45
+ wrapper.addEventListener('click', this.wrapperClick.bind(this));
46
+ wrapper.addEventListener('contextmenu', this.wrapperRClick.bind(this));
47
+ //
48
+ document.body.appendChild(wrapper);
49
+ const factory = this.factoryResolver.resolveComponentFactory(AXContextMenuComponent);
50
+ const componentRef = this.viewContainerRef.createComponent(factory);
51
+ this.contextMenu = componentRef.instance;
52
+ wrapper.appendChild(componentRef.location.nativeElement);
53
+ //
54
+ this.clearComponentSubscriptions();
55
+ this.createComponentSubscriptions();
56
+ }
57
+ wrapperClick(e) {
58
+ this.remove();
59
+ }
60
+ wrapperRClick(e) {
61
+ if (document.elementsFromPoint(e.clientX, e.clientY).includes(this.ref.nativeElement)) {
62
+ e.stopPropagation();
63
+ e.preventDefault();
64
+ this.contextMenu.open(e.x, e.y, this.rtl);
65
+ }
66
+ else {
67
+ e.preventDefault();
68
+ this.remove();
69
+ }
70
+ }
71
+ clearComponentSubscriptions() {
72
+ if (this.clickSubscribe) {
73
+ this.clickSubscribe.unsubscribe();
74
+ this.clickSubscribe = undefined;
75
+ }
76
+ if (this.closeSubscribe) {
77
+ this.closeSubscribe.unsubscribe();
78
+ this.closeSubscribe = undefined;
79
+ }
80
+ }
81
+ createComponentSubscriptions() {
82
+ this.clickSubscribe = this.contextMenu.onItemClick.subscribe(c => {
83
+ this.remove();
84
+ this.onContextMenuItemClick.emit({
85
+ component: this,
86
+ dataItem: this.contextDataItem,
87
+ htmlElement: this.ref.nativeElement,
88
+ menuItem: c
89
+ });
90
+ });
91
+ this.closeSubscribe = this.contextMenu.onClosed.subscribe(c => {
92
+ this.clearComponentSubscriptions();
93
+ });
94
+ }
95
+ remove() {
96
+ this.viewContainerRef.clear();
97
+ this.clearComponentSubscriptions();
98
+ document.querySelector('.ax-overlay-wrapper')?.remove();
99
+ }
100
+ getMenuItems() {
101
+ return new Promise((resolve, reject) => {
102
+ if (typeof (this.contextMenuItems) === 'function') {
103
+ const val = this.contextMenuItems(this.contextDataItem);
104
+ if (val instanceof Promise) {
105
+ val.then(_data => {
106
+ resolve(_data);
107
+ });
108
+ }
109
+ else {
110
+ resolve(val);
111
+ }
112
+ }
113
+ else if (Array.isArray(this.contextMenuItems)) {
114
+ resolve(this.contextMenuItems);
115
+ }
116
+ else {
117
+ resolve([]);
118
+ }
119
+ });
120
+ }
121
+ ngOnDestroy() {
122
+ this.clearComponentSubscriptions();
123
+ }
124
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXContextMenuDirective, deps: [{ token: i0.ElementRef }, { token: i0.ComponentFactoryResolver }, { token: i0.ViewContainerRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });
125
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.0", type: AXContextMenuDirective, selector: "[axContextMenu]", inputs: { contextMenu: "contextMenu", contextDataItem: "contextDataItem", contextMenuItems: "contextMenuItems", rtl: "rtl" }, outputs: { onContextMenuItemClick: "onContextMenuItemClick" }, host: { listeners: { "contextmenu": "onContextMenu($event)" } }, ngImport: i0 });
126
+ }
127
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXContextMenuDirective, decorators: [{
128
+ type: Directive,
129
+ args: [{
130
+ selector: '[axContextMenu]'
131
+ }]
132
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ComponentFactoryResolver }, { type: i0.ViewContainerRef }, { type: i0.Injector }]; }, propDecorators: { contextMenu: [{
133
+ type: Input
134
+ }], contextDataItem: [{
135
+ type: Input
136
+ }], contextMenuItems: [{
137
+ type: Input
138
+ }], onContextMenuItemClick: [{
139
+ type: Output
140
+ }], rtl: [{
141
+ type: Input
142
+ }], onContextMenu: [{
143
+ type: HostListener,
144
+ args: ['contextmenu', ['$event']]
145
+ }] } });
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSx3QkFBd0IsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkosT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQUtsRSxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsV0FBVztJQUMxRCxRQUFRLENBQU87SUFDZixRQUFRLENBQWE7Q0FDdEI7QUFLRCxNQUFNLE9BQU8sc0JBQXNCO0lBdUN2QjtJQUNBO0lBQ0E7SUFDQTtJQXhDVixXQUFXLENBQXlCO0lBR3BDLGVBQWUsQ0FBTTtJQUdyQixnQkFBZ0IsQ0FBc0U7SUFHdEYsc0JBQXNCLEdBQThDLElBQUksWUFBWSxFQUErQixDQUFDO0lBR3BILEdBQUcsR0FBWSxLQUFLLENBQUM7SUFFckIsYUFBYSxHQUFpQixFQUFFLENBQUM7SUFFekIsY0FBYyxDQUFlO0lBQzdCLGNBQWMsQ0FBZTtJQUdyQyxhQUFhLENBQUMsQ0FBYTtRQUN6QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQy9CLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNwQixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEdBQUcsS0FBSyxD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QztnQkFDeEQsSUFBSSxHQUFHLFlBQVksT0FBTyxFQUFFO29CQUMxQixHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO3dCQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDakIsQ0FBQyxDQUFDLENBQUM7aUJBQ0o7cUJBQU07b0JBQ0wsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNkO2FBQ0Y7aUJBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO2dCQUMvQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7YUFDaEM7aUJBQ0k7Z0JBQ0gsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ2I7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7SUFDckMsQ0FBQzt1R0E3SVUsc0JBQXNCOzJGQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBSGxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtpQkFDNUI7OExBR0MsV0FBVztzQkFEVixLQUFLO2dCQUlOLGVBQWU7c0JBRGQsS0FBSztnQkFJTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFJTixzQkFBc0I7c0JBRHJCLE1BQU07Z0JBSVAsR0FBRztzQkFERixLQUFLO2dCQVNOLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIEluamVjdG9yLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFYTWVudUl0ZW0gfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xyXG5pbXBvcnQgeyBBWEJhc2VFdmVudCB9IGZyb20gJy4uL2Jhc2UvZXZlbnRzLmNsYXNzJztcclxuaW1wb3J0IHsgQVhDb250ZXh0TWVudUNvbXBvbmVudCB9IGZyb20gJy4vY29udGV4dC1tZW51LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuZXhwb3J0IHR5cGUgQVhDb250ZXh0TWVudVByb21pc2VGdW5jdGlvbiA9IChpdGVtOiBhbnkpID0+IFByb21pc2U8QVhNZW51SXRlbVtdPjtcclxuZXhwb3J0IHR5cGUgQVhDb250ZXh0TWVudUZ1bmN0aW9uID0gKGl0ZW06IGFueSkgPT4gQVhNZW51SXRlbVtdO1xyXG5leHBvcnQgY2xhc3MgQVhDb250ZXh0TWVudUl0ZW1DbGlja0V2ZW50IGV4dGVuZHMgQVhCYXNlRXZlbnQge1xyXG4gIGRhdGFJdGVtPzogYW55O1xyXG4gIG1lbnVJdGVtOiBBWE1lbnVJdGVtO1xyXG59XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1theENvbnRleHRNZW51XSdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFYQ29udGV4dE1lbnVEaXJlY3RpdmUge1xyXG4gIEBJbnB1dCgpXHJcbiAgY29udGV4dE1lbnU6IEFYQ29udGV4dE1lbnVDb21wb25lbnQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgY29udGV4dERhdGFJdGVtOiBhbnk7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgY29udGV4dE1lbnVJdGVtczogQVhNZW51SXRlbVtdIHwgQVhDb250ZXh0TWVudVByb21pc2VGdW5jdGlvbiB8IEFYQ29udGV4dE1lbnVGdW5jdGlvbjtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgb25Db250ZXh0TWVudUl0ZW1DbGljazogRXZlbnRFbWl0dGVyPEFYQ29udGV4dE1lbnVJdGVtQ2xpY2tFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYQ29udGV4dE1lbnVJdGVtQ2xpY2tFdmVudD4oKTtcclxuXHJcbiAgQElucHV0KClcclxuICBydGw6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgaW50ZXJuYWxJdGVtczogQVhNZW51SXRlbVtdID0gW107XHJcblxyXG4gIHByaXZhdGUgY2xpY2tTdWJzY3JpYmU6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIGNsb3NlU3Vic2NyaWJlOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2NvbnRleHRtZW51JywgWyckZXZlbnQnXSlcclxuICBvbkNvbnRleHRNZW51KGU6IE1vdXNlRXZlbnQpIHtcclxuICAgIHRoaXMuZ2V0TWVudUl0ZW1zKCkudGhlbihpdGVtcyA9PiB7XHJcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgdGhpcy5jcmVhdGVDb250ZXh0TWVudSgpO1xyXG4gICAgICB0aGlzLmNvbnRleHRNZW51Lml0ZW1zID0gaXRlbXM7XHJcblxyXG5cclxuICAgICAgdGhpcy5jb250ZXh0TWVudS5vcGVuKGUueCwgZS55LCB0aGlzLnJ0bCk7XHJcblxyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSBmYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcclxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnJ0bCA9PSBudWxsKSB7XHJcbiAgICAgIHRoaXMucnRsID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5yZWYubmF0aXZlRWxlbWVudCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgnZGlyZWN0aW9uJykgPT09ICdydGwnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY3JlYXRlQ29udGV4dE1lbnUoKTogdm9pZCB7XHJcbiAgICBjb25zdCB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICB3cmFwcGVyLmNsYXNzTGlzdC5hZGQoJ2F4LW92ZXJsYXktd3JhcHBlcicpO1xyXG4gICAgd3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMud3JhcHBlckNsaWNrLmJpbmQodGhpcykpO1xyXG4gICAgd3JhcHBlci5hZGRFdmVudExpc3RlbmVyKCdjb250ZXh0bWVudScsIHRoaXMud3JhcHBlclJDbGljay5iaW5kKHRoaXMpKTtcclxuICAgIC8vXHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHdyYXBwZXIpO1xyXG4gICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuZmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KEFYQ29udGV4dE1lbnVDb21wb25lbnQpO1xyXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcclxuICAgIHRoaXMuY29udGV4dE1lbnUgPSBjb21wb25lbnRSZWYuaW5zdGFuY2U7XHJcbiAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50KTtcclxuICAgIC8vXHJcbiAgICB0aGlzLmNsZWFyQ29tcG9uZW50U3Vic2NyaXB0aW9ucygpO1xyXG4gICAgdGhpcy5jcmVhdGVDb21wb25lbnRTdWJzY3JpcHRpb25zKCk7XHJcbiAgfVxyXG5cclxuICB3cmFwcGVyQ2xpY2soZTogTW91c2VFdmVudCkge1xyXG4gICAgdGhpcy5yZW1vdmUoKTtcclxuICB9XHJcblxyXG4gIHdyYXBwZXJSQ2xpY2soZTogTW91c2VFdmVudCkge1xyXG4gICAgaWYgKGRvY3VtZW50LmVsZW1lbnRzRnJvbVBvaW50KGUuY2xpZW50WCwgZS5jbGllbnRZKS5pbmNsdWRlcyh0aGlzLnJlZi5uYXRpdmVFbGVtZW50KSkge1xyXG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG4gICAgICB0aGlzLmNvbnRleHRNZW51Lm9wZW4oZS54LCBlLnksIHRoaXMucnRsKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHRoaXMucmVtb3ZlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIHByaXZhdGUgY2xlYXJDb21wb25lbnRTdWJzY3JpcHRpb25zKCkge1xyXG4gICAgaWYgKHRoaXMuY2xpY2tTdWJzY3JpYmUpIHtcclxuICAgICAgdGhpcy5jbGlja1N1YnNjcmliZS51bnN1YnNjcmliZSgpO1xyXG4gICAgICB0aGlzLmNsaWNrU3Vic2NyaWJlID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY2xvc2VTdWJzY3JpYmUpIHtcclxuICAgICAgdGhpcy5jbG9zZVN1YnNjcmliZS51bnN1YnNjcmliZSgpO1xyXG4gICAgICB0aGlzLmNsb3NlU3Vic2NyaWJlID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVDb21wb25lbnRTdWJzY3JpcHRpb25zKCkge1xyXG4gICAgdGhpcy5jbGlja1N1YnNjcmliZSA9IHRoaXMuY29udGV4dE1lbnUub25JdGVtQ2xpY2suc3Vic2NyaWJlKGMgPT4ge1xyXG4gICAgICB0aGlzLnJlbW92ZSgpO1xyXG4gICAgICB0aGlzLm9uQ29udGV4dE1lbnVJdGVtQ2xpY2suZW1pdCh7XHJcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICAgIGRhdGFJdGVtOiB0aGlzLmNvbnRleHREYXRhSXRlbSxcclxuICAgICAgICBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudCxcclxuICAgICAgICBtZW51SXRlbTogY1xyXG4gICAgICB9KTtcclxuICAgIH0pIGFzIGFueTtcclxuICAgIHRoaXMuY2xvc2VTdWJzY3JpYmUgPSB0aGlzLmNvbnRleHRNZW51Lm9uQ2xvc2VkLnN1YnNjcmliZShjID0+IHtcclxuICAgICAgdGhpcy5jbGVhckNvbXBvbmVudFN1YnNjcmlwdGlvbnMoKTtcclxuICAgIH0pIGFzIGFueTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVtb3ZlKCkge1xyXG4gICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XHJcbiAgICB0aGlzLmNsZWFyQ29tcG9uZW50U3Vic2NyaXB0aW9ucygpO1xyXG4gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmF4LW92ZXJsYXktd3JhcHBlcicpPy5yZW1vdmUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0TWVudUl0ZW1zKCk6IFByb21pc2U8QVhNZW51SXRlbVtdPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2U8QVhNZW51SXRlbVtdPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIGlmICh0eXBlb2YgKHRoaXMuY29udGV4dE1lbnVJdGVtcykgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICBjb25zdCB2YWwgPSB0aGlzLmNvbnRleHRNZW51SXRlbXModGhpcy5jb250ZXh0RGF0YUl0ZW0pO1xyXG4gICAgICAgIGlmICh2YWwgaW5zdGFuY2VvZiBQcm9taXNlKSB7XHJcbiAgICAgICAgICB2YWwudGhlbihfZGF0YSA9PiB7XHJcbiAgICAgICAgICAgIHJlc29sdmUoX2RhdGEpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlc29sdmUodmFsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmNvbnRleHRNZW51SXRlbXMpKSB7XHJcbiAgICAgICAgcmVzb2x2ZSh0aGlzLmNvbnRleHRNZW51SXRlbXMpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHJlc29sdmUoW10pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jbGVhckNvbXBvbmVudFN1YnNjcmlwdGlvbnMoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,20 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { AXContextMenuComponent } from './context-menu.component';
4
+ import { AXContextMenuDirective } from './context-menu.directive';
5
+ import * as i0 from "@angular/core";
6
+ export class AXContextMenuModule {
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXContextMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.0", ngImport: i0, type: AXContextMenuModule, declarations: [AXContextMenuComponent, AXContextMenuDirective], imports: [CommonModule], exports: [AXContextMenuComponent, AXContextMenuDirective] });
9
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXContextMenuModule, imports: [CommonModule] });
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXContextMenuModule, decorators: [{
12
+ type: NgModule,
13
+ args: [{
14
+ declarations: [AXContextMenuComponent, AXContextMenuDirective],
15
+ imports: [CommonModule],
16
+ exports: [AXContextMenuComponent, AXContextMenuDirective],
17
+ providers: [],
18
+ }]
19
+ }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQVNsRSxNQUFNLE9BQU8sbUJBQW1CO3VHQUFuQixtQkFBbUI7d0dBQW5CLG1CQUFtQixpQkFMYixzQkFBc0IsRUFBRSxzQkFBc0IsYUFDbkQsWUFBWSxhQUNaLHNCQUFzQixFQUFFLHNCQUFzQjt3R0FHL0MsbUJBQW1CLFlBSmxCLFlBQVk7OzJGQUliLG1CQUFtQjtrQkFOL0IsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxzQkFBc0IsQ0FBQztvQkFDOUQsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxzQkFBc0IsQ0FBQztvQkFDekQsU0FBUyxFQUFFLEVBQUU7aUJBQ2hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEFYQ29udGV4dE1lbnVDb21wb25lbnQgfSBmcm9tICcuL2NvbnRleHQtbWVudS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBWENvbnRleHRNZW51RGlyZWN0aXZlIH0gZnJvbSAnLi9jb250ZXh0LW1lbnUuZGlyZWN0aXZlJztcclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgZGVjbGFyYXRpb25zOiBbQVhDb250ZXh0TWVudUNvbXBvbmVudCwgQVhDb250ZXh0TWVudURpcmVjdGl2ZV0sXHJcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcclxuICAgIGV4cG9ydHM6IFtBWENvbnRleHRNZW51Q29tcG9uZW50LCBBWENvbnRleHRNZW51RGlyZWN0aXZlXSxcclxuICAgIHByb3ZpZGVyczogW10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWENvbnRleHRNZW51TW9kdWxlIHtcclxuXHJcbn0iXX0=
@@ -0,0 +1,140 @@
1
+ import { Component, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild } from '@angular/core';
2
+ import { AXFilterColumnComponent } from '../filter.class';
3
+ import { AXDateTime } from '@acorex/core';
4
+ import { AXSelectionListComponent } from '../../selection-list/selection-list.component';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../date-picker/date-picker.component";
7
+ import * as i2 from "../../selection-list/selection-list.component";
8
+ export class AXFilterColumnDateComponent extends AXFilterColumnComponent {
9
+ cdr;
10
+ selection;
11
+ items = [
12
+ {
13
+ text: 'Today',
14
+ value: 'today'
15
+ },
16
+ {
17
+ text: 'This Week',
18
+ value: 'this-week'
19
+ },
20
+ {
21
+ text: 'This Month',
22
+ value: 'this-month'
23
+ },
24
+ {
25
+ text: 'This Year',
26
+ value: 'this-year'
27
+ },
28
+ {
29
+ text: 'Specific',
30
+ value: 'specific'
31
+ },
32
+ {
33
+ text: 'Range',
34
+ value: 'range'
35
+ }
36
+ ];
37
+ fromDate = new AXDateTime();
38
+ toDate = new AXDateTime();
39
+ selectedItem = null;
40
+ showCustom = false;
41
+ showSpecific = false;
42
+ constructor(cdr) {
43
+ super(cdr);
44
+ this.cdr = cdr;
45
+ }
46
+ ngAfterViewInit() {
47
+ this.selection.selectedItems = [this.items[0]];
48
+ }
49
+ dateChange(e) {
50
+ this.valueChange.emit();
51
+ }
52
+ onSelectedChanged(items) {
53
+ this.selectedItem = items[0];
54
+ this.showCustom = this.selectedItem && this.selectedItem.value == 'range';
55
+ this.showSpecific = this.selectedItem && this.selectedItem.value == 'specific';
56
+ this.cdr.detectChanges();
57
+ this.valueChange.emit();
58
+ }
59
+ get condition() {
60
+ let today = new AXDateTime();
61
+ switch (this.selectedItem.value) {
62
+ case 'today':
63
+ this.fromDate = this.toDate = today;
64
+ return {
65
+ condition: 'equal',
66
+ field: this.field,
67
+ dataType: 'date',
68
+ value: this.fromDate.toISOString()
69
+ };
70
+ case 'specific':
71
+ return {
72
+ condition: 'equal',
73
+ field: this.field,
74
+ dataType: 'date',
75
+ value: this.fromDate.toISOString()
76
+ };
77
+ case 'this-week':
78
+ this.toDate = today.endOf('week');
79
+ this.fromDate = today.startOf('week');
80
+ break;
81
+ case 'this-month':
82
+ this.toDate = today.endOf('month');
83
+ this.fromDate = today.startOf('month');
84
+ break;
85
+ case 'this-year':
86
+ this.toDate = today.endOf('year');
87
+ this.fromDate = today.startOf('year');
88
+ break;
89
+ }
90
+ return {
91
+ condition: 'between',
92
+ field: this.field,
93
+ dataType: 'date',
94
+ value: [this.fromDate.toISOString(), this.toDate.toISOString()]
95
+ };
96
+ }
97
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXFilterColumnDateComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
98
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: AXFilterColumnDateComponent, selector: "ax-filter-column-date", providers: [
99
+ { provide: AXFilterColumnComponent, useExisting: AXFilterColumnDateComponent }
100
+ ], viewQueries: [{ propertyName: "selection", first: true, predicate: AXSelectionListComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
101
+ <div class="ax-filter-section">
102
+ <ax-selection-list [items]="items" mode="single" direction="vertical" (selectedItemsChange)="onSelectedChanged($event)">
103
+ </ax-selection-list>
104
+ </div>
105
+ <div class="ax-filter-section-value" [hidden]="!showCustom">
106
+ <ax-date-picker label="From" [(value)]="fromDate" (onValueChanged)="dateChange($event)"></ax-date-picker>
107
+ <ax-date-picker label="To" [(value)]="toDate" (onValueChanged)="dateChange($event)"></ax-date-picker>
108
+ </div>
109
+ <div class="ax-filter-section-value" [hidden]="!showSpecific">
110
+ <ax-date-picker label="Date" [(value)]="fromDate" (onValueChanged)="dateChange($event)"></ax-date-picker>
111
+ </div>
112
+ `, isInline: true, dependencies: [{ kind: "component", type: i1.AXDatePickerComponent, selector: "ax-date-picker", inputs: ["dayStyle", "dayMinMaxResoan", "validation", "placeholder", "min", "max", "readonly", "disabled", "allowClear", "textAlign", "showToday", "selectableHoliday", "dateType", "showTodayButton", "openByClick", "size", "type", "value"], outputs: ["typeChange", "onValueChanged", "valueChange"] }, { kind: "component", type: i2.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 });
113
+ }
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXFilterColumnDateComponent, decorators: [{
115
+ type: Component,
116
+ args: [{
117
+ selector: 'ax-filter-column-date',
118
+ template: `
119
+ <div class="ax-filter-section">
120
+ <ax-selection-list [items]="items" mode="single" direction="vertical" (selectedItemsChange)="onSelectedChanged($event)">
121
+ </ax-selection-list>
122
+ </div>
123
+ <div class="ax-filter-section-value" [hidden]="!showCustom">
124
+ <ax-date-picker label="From" [(value)]="fromDate" (onValueChanged)="dateChange($event)"></ax-date-picker>
125
+ <ax-date-picker label="To" [(value)]="toDate" (onValueChanged)="dateChange($event)"></ax-date-picker>
126
+ </div>
127
+ <div class="ax-filter-section-value" [hidden]="!showSpecific">
128
+ <ax-date-picker label="Date" [(value)]="fromDate" (onValueChanged)="dateChange($event)"></ax-date-picker>
129
+ </div>
130
+ `,
131
+ providers: [
132
+ { provide: AXFilterColumnComponent, useExisting: AXFilterColumnDateComponent }
133
+ ],
134
+ changeDetection: ChangeDetectionStrategy.OnPush
135
+ }]
136
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { selection: [{
137
+ type: ViewChild,
138
+ args: [AXSelectionListComponent, { static: true }]
139
+ }] } });
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWNvbHVtbi1kYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2RhdGEtZmlsdGVyL2NvbHVtbnMvZmlsdGVyLWNvbHVtbi1kYXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBd0IsTUFBTSxlQUFlLENBQUM7QUFDdkgsT0FBTyxFQUFxQix1QkFBdUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0NBQStDLENBQUM7Ozs7QUFzQnpGLE1BQU0sT0FBTywyQkFBNEIsU0FBUSx1QkFBdUI7SUFzQzlDO0lBckNpQyxTQUFTLENBQTJCO0lBRTNGLEtBQUssR0FBUTtRQUNUO1lBQ0ksSUFBSSxFQUFFLE9BQU87WUFDYixLQUFLLEVBQUUsT0FBTztTQUNqQjtRQUNEO1lBQ0ksSUFBSSxFQUFFLFdBQVc7WUFDakIsS0FBSyxFQUFFLFdBQVc7U0FDckI7UUFDRDtZQUNJLElBQUksRUFBRSxZQUFZO1lBQ2xCLEtBQUssRUFBRSxZQUFZO1NBQ3RCO1FBQ0Q7WUFDSSxJQUFJLEVBQUUsV0FBVztZQUNqQixLQUFLLEVBQUUsV0FBVztTQUNyQjtRQUNEO1lBQ0ksSUFBSSxFQUFFLFVBQVU7WUFDaEIsS0FBSyxFQUFFLFVBQVU7U0FDcEI7UUFDRDtZQUNJLElBQUksRUFBRSxPQUFPO1lBQ2IsS0FBSyxFQUFFLE9BQU87U0FDakI7S0FDSixDQUFDO0lBRUYsUUFBUSxHQUFlLElBQUksVUFBVSxFQUFFLENBQUM7SUFDeEMsTUFBTSxHQUFlLElBQUksVUFBVSxFQUFFLENBQUM7SUFFdEMsWUFBWSxHQUFRLElB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MkJBQTJCLGdEQUx6QjtZQUNQLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFdBQVcsRUFBRSwyQkFBMkIsRUFBRTtTQUNqRixxRUFJVSx3QkFBd0IscUZBbkJ6Qjs7Ozs7Ozs7Ozs7O0tBWVQ7OzJGQU1RLDJCQUEyQjtrQkFwQnZDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7S0FZVDtvQkFDRCxTQUFTLEVBQUU7d0JBQ1AsRUFBRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsV0FBVyw2QkFBNkIsRUFBRTtxQkFDakY7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEO3dHQUUwRCxTQUFTO3NCQUEvRCxTQUFTO3VCQUFDLHdCQUF3QixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBWaWV3Q2hpbGQsIEV2ZW50RW1pdHRlciwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFYRmlsdGVyQ29uZGl0aW9uLCBBWEZpbHRlckNvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4uL2ZpbHRlci5jbGFzcyc7XHJcbmltcG9ydCB7IEFYRGF0ZVRpbWUgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xyXG5pbXBvcnQgeyBBWFNlbGVjdGlvbkxpc3RDb21wb25lbnQgfSBmcm9tICcuLi8uLi9zZWxlY3Rpb24tbGlzdC9zZWxlY3Rpb24tbGlzdC5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2F4LWZpbHRlci1jb2x1bW4tZGF0ZScsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cImF4LWZpbHRlci1zZWN0aW9uXCI+XHJcbiAgICA8YXgtc2VsZWN0aW9uLWxpc3QgW2l0ZW1zXT1cIml0ZW1zXCIgbW9kZT1cInNpbmdsZVwiIGRpcmVjdGlvbj1cInZlcnRpY2FsXCIgKHNlbGVjdGVkSXRlbXNDaGFuZ2UpPVwib25TZWxlY3RlZENoYW5nZWQoJGV2ZW50KVwiPlxyXG4gICAgPC9heC1zZWxlY3Rpb24tbGlzdD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImF4LWZpbHRlci1zZWN0aW9uLXZhbHVlXCIgW2hpZGRlbl09XCIhc2hvd0N1c3RvbVwiPlxyXG4gICAgICAgIDxheC1kYXRlLXBpY2tlciBsYWJlbD1cIkZyb21cIiBbKHZhbHVlKV09XCJmcm9tRGF0ZVwiIChvblZhbHVlQ2hhbmdlZCk9XCJkYXRlQ2hhbmdlKCRldmVudClcIj48L2F4LWRhdGUtcGlja2VyPlxyXG4gICAgICAgIDxheC1kYXRlLXBpY2tlciBsYWJlbD1cIlRvXCIgWyh2YWx1ZSldPVwidG9EYXRlXCIgKG9uVmFsdWVDaGFuZ2VkKT1cImRhdGVDaGFuZ2UoJGV2ZW50KVwiPjwvYXgtZGF0ZS1waWNrZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJheC1maWx0ZXItc2VjdGlvbi12YWx1ZVwiIFtoaWRkZW5dPVwiIXNob3dTcGVjaWZpY1wiPlxyXG4gICAgICAgIDxheC1kYXRlLXBpY2tlciBsYWJlbD1cIkRhdGVcIiBbKHZhbHVlKV09XCJmcm9tRGF0ZVwiIChvblZhbHVlQ2hhbmdlZCk9XCJkYXRlQ2hhbmdlKCRldmVudClcIj48L2F4LWRhdGUtcGlja2VyPiAgICAgICAgICAgIFxyXG4gICAgPC9kaXY+XHJcbiAgICBgLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgeyBwcm92aWRlOiBBWEZpbHRlckNvbHVtbkNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYRmlsdGVyQ29sdW1uRGF0ZUNvbXBvbmVudCB9XHJcbiAgICBdLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEFYRmlsdGVyQ29sdW1uRGF0ZUNvbXBvbmVudCBleHRlbmRzIEFYRmlsdGVyQ29sdW1uQ29tcG9uZW50IHtcclxuICAgIEBWaWV3Q2hpbGQoQVhTZWxlY3Rpb25MaXN0Q29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBzZWxlY3Rpb246IEFYU2VsZWN0aW9uTGlzdENvbXBvbmVudDtcclxuXHJcbiAgICBpdGVtczogYW55ID0gW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGV4dDogJ1RvZGF5JyxcclxuICAgICAgICAgICAgdmFsdWU6ICd0b2RheSdcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGV4dDogJ1RoaXMgV2VlaycsXHJcbiAgICAgICAgICAgIHZhbHVlOiAndGhpcy13ZWVrJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0ZXh0OiAnVGhpcyBNb250aCcsXHJcbiAgICAgICAgICAgIHZhbHVlOiAndGhpcy1tb250aCdcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGV4dDogJ1RoaXMgWWVhcicsXHJcbiAgICAgICAgICAgIHZhbHVlOiAndGhpcy15ZWFyJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0ZXh0OiAnU3BlY2lmaWMnLFxyXG4gICAgICAgICAgICB2YWx1ZTogJ3NwZWNpZmljJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0ZXh0OiAnUmFuZ2UnLFxyXG4gICAgICAgICAgICB2YWx1ZTogJ3JhbmdlJ1xyXG4gICAgICAgIH1cclxuICAgIF07XHJcblxyXG4gICAgZnJvbURhdGU6IEFYRGF0ZVRpbWUgPSBuZXcgQVhEYXRlVGltZSgpO1xyXG4gICAgdG9EYXRlOiBBWERhdGVUaW1lID0gbmV3IEFYRGF0ZVRpbWUoKTtcclxuXHJcbiAgICBzZWxlY3RlZEl0ZW06IGFueSA9IG51bGw7XHJcblxyXG4gICAgc2hvd0N1c3RvbTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgc2hvd1NwZWNpZmljOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgICAgICBzdXBlcihjZHIpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZEl0ZW1zID0gW3RoaXMuaXRlbXNbMF1dO1xyXG4gICAgfVxyXG4gICAgZGF0ZUNoYW5nZShlKSB7XHJcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KCk7XHJcbiAgICB9XHJcbiAgICBvblNlbGVjdGVkQ2hhbmdlZChpdGVtczogYW55W10pIHtcclxuXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBpdGVtc1swXTtcclxuICAgICAgICB0aGlzLnNob3dDdXN0b20gPSB0aGlzLnNlbGVjdGVkSXRlbSAmJiB0aGlzLnNlbGVjdGVkSXRlbS52YWx1ZSA9PSAncmFuZ2UnO1xyXG4gICAgICAgIHRoaXMuc2hvd1NwZWNpZmljID0gdGhpcy5zZWxlY3RlZEl0ZW0gJiYgdGhpcy5zZWxlY3RlZEl0ZW0udmFsdWUgPT0gJ3NwZWNpZmljJztcclxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGNvbmRpdGlvbigpOiBBWEZpbHRlckNvbmRpdGlvbiB7XHJcbiAgICAgICAgbGV0IHRvZGF5ID0gbmV3IEFYRGF0ZVRpbWUoKTtcclxuICAgICAgICBzd2l0Y2ggKHRoaXMuc2VsZWN0ZWRJdGVtLnZhbHVlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ3RvZGF5JzpcclxuICAgICAgICAgICAgICAgIHRoaXMuZnJvbURhdGUgPSB0aGlzLnRvRGF0ZSA9IHRvZGF5O1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uOiAnZXF1YWwnLFxyXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiB0aGlzLmZpZWxkLFxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGFUeXBlOiAnZGF0ZScsXHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMuZnJvbURhdGUudG9JU09TdHJpbmcoKVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXNlICdzcGVjaWZpYyc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogJ2VxdWFsJyxcclxuICAgICAgICAgICAgICAgICAgICBmaWVsZDogdGhpcy5maWVsZCxcclxuICAgICAgICAgICAgICAgICAgICBkYXRhVHlwZTogJ2RhdGUnLFxyXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLmZyb21EYXRlLnRvSVNPU3RyaW5nKClcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FzZSAndGhpcy13ZWVrJzpcclxuICAgICAgICAgICAgICAgIHRoaXMudG9EYXRlID0gdG9kYXkuZW5kT2YoJ3dlZWsnKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZnJvbURhdGUgPSB0b2RheS5zdGFydE9mKCd3ZWVrJyk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAndGhpcy1tb250aCc6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRvRGF0ZSA9IHRvZGF5LmVuZE9mKCdtb250aCcpXHJcbiAgICAgICAgICAgICAgICB0aGlzLmZyb21EYXRlID0gdG9kYXkuc3RhcnRPZignbW9udGgnKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICd0aGlzLXllYXInOlxyXG4gICAgICAgICAgICAgICAgdGhpcy50b0RhdGUgPSB0b2RheS5lbmRPZigneWVhcicpXHJcbiAgICAgICAgICAgICAgICB0aGlzLmZyb21EYXRlID0gdG9kYXkuc3RhcnRPZigneWVhcicpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBjb25kaXRpb246ICdiZXR3ZWVuJyxcclxuICAgICAgICAgICAgZmllbGQ6IHRoaXMuZmllbGQsXHJcbiAgICAgICAgICAgIGRhdGFUeXBlOiAnZGF0ZScsXHJcbiAgICAgICAgICAgIHZhbHVlOiBbdGhpcy5mcm9tRGF0ZS50b0lTT1N0cmluZygpLCB0aGlzLnRvRGF0ZS50b0lTT1N0cmluZygpXVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,119 @@
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 "@angular/common";
7
+ import * as i2 from "@angular/forms";
8
+ import * as i3 from "../../textbox/textbox.component";
9
+ export class AXFilterColumnNumberComponent extends AXFilterColumnComponent {
10
+ cdr;
11
+ operator = 'equal';
12
+ operators = [
13
+ {
14
+ title: 'is',
15
+ value: 'equal'
16
+ },
17
+ {
18
+ title: `isn't`,
19
+ value: 'not-equal'
20
+ },
21
+ {
22
+ title: 'less than',
23
+ value: 'less-than'
24
+ },
25
+ {
26
+ title: 'less than or equal',
27
+ value: 'less-than-equal'
28
+ },
29
+ {
30
+ title: 'greater than',
31
+ value: 'greater-than'
32
+ },
33
+ {
34
+ title: 'greater than or equal',
35
+ value: 'greater-than-equal'
36
+ },
37
+ {
38
+ title: 'is empty',
39
+ value: 'is-empty'
40
+ },
41
+ {
42
+ title: `isn't empty`,
43
+ value: 'is-not-empty'
44
+ }
45
+ ];
46
+ constructor(cdr) {
47
+ super(cdr);
48
+ this.cdr = cdr;
49
+ }
50
+ searchChangeObserver;
51
+ onOperatorChange(e) {
52
+ this.valueChange.emit();
53
+ }
54
+ onTextChange(e) {
55
+ // TODO: Check this method work correctly
56
+ if (!this.searchChangeObserver) {
57
+ return new Observable(observer => {
58
+ this.searchChangeObserver = observer;
59
+ })
60
+ .pipe(debounceTime(500))
61
+ .pipe(distinctUntilChanged())
62
+ .subscribe(c => {
63
+ this.valueChange.emit();
64
+ });
65
+ }
66
+ this.searchChangeObserver.next(e);
67
+ }
68
+ get condition() {
69
+ return {
70
+ condition: this.operator,
71
+ field: this.field,
72
+ dataType: 'number',
73
+ value: this.value
74
+ };
75
+ }
76
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXFilterColumnNumberComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
77
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: AXFilterColumnNumberComponent, selector: "ax-filter-column-number", providers: [
78
+ { provide: AXFilterColumnComponent, useExisting: AXFilterColumnNumberComponent }
79
+ ], usesInheritance: true, ngImport: i0, template: `
80
+ <div class="ax-filter-section">
81
+ <div>
82
+ <select (ngModelChange)="onOperatorChange($event)" class="form-control form-control-sm" [(ngModel)]="operator">
83
+ <option *ngFor="let o of operators" value="{{o.value}}">
84
+ {{o.title}}
85
+ </option>
86
+ </select>
87
+ </div>
88
+ <div>
89
+ <ax-text-box placeholder="Type here" (textChange)="onTextChange($event)" [(value)]="value" *ngIf="operator!='is-not-empty' && operator!='is-empty'">
90
+ </ax-text-box>
91
+ </div>
92
+ </div>
93
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.AXTextBoxComponent, selector: "ax-text-box", inputs: ["mask", "type", "showMask", "maxLength", "maskGuid", "maskPlaceholder", "maskKeepCharPositions"] }] });
94
+ }
95
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: AXFilterColumnNumberComponent, decorators: [{
96
+ type: Component,
97
+ args: [{
98
+ selector: 'ax-filter-column-number',
99
+ template: `
100
+ <div class="ax-filter-section">
101
+ <div>
102
+ <select (ngModelChange)="onOperatorChange($event)" class="form-control form-control-sm" [(ngModel)]="operator">
103
+ <option *ngFor="let o of operators" value="{{o.value}}">
104
+ {{o.title}}
105
+ </option>
106
+ </select>
107
+ </div>
108
+ <div>
109
+ <ax-text-box placeholder="Type here" (textChange)="onTextChange($event)" [(value)]="value" *ngIf="operator!='is-not-empty' && operator!='is-empty'">
110
+ </ax-text-box>
111
+ </div>
112
+ </div>
113
+ `,
114
+ providers: [
115
+ { provide: AXFilterColumnComponent, useExisting: AXFilterColumnNumberComponent }
116
+ ]
117
+ }]
118
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; } });
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWNvbHVtbi1udW1iZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvZGF0YS1maWx0ZXIvY29sdW1ucy9maWx0ZXItY29sdW1uLW51bWJlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQXFCLHVCQUF1QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBd0JsQyxNQUFNLE9BQU8sNkJBQThCLFNBQVEsdUJBQXVCO0lBc0NoRDtJQXBDdEIsUUFBUSxHQUFXLE9BQU8sQ0FBQztJQUUzQixTQUFTLEdBQVU7UUFDZjtZQUNJLEtBQUssRUFBRSxJQUFJO1lBQ1gsS0FBSyxFQUFFLE9BQU87U0FDakI7UUFDRDtZQUNJLEtBQUssRUFBRSxPQUFPO1lBQ2QsS0FBSyxFQUFFLFdBQVc7U0FDckI7UUFDRDtZQUNJLEtBQUssRUFBRSxXQUFXO1lBQ2xCLEtBQUssRUFBRSxXQUFXO1NBQ3JCO1FBQ0Q7WUFDSSxLQUFLLEVBQUUsb0JBQW9CO1lBQzNCLEtBQUssRUFBRSxpQkFBaUI7U0FDM0I7UUFDRDtZQUNJLEtBQUssRUFBRSxjQUFjO1lBQ3JCLEtBQUssRUFBRSxjQUFjO1NBQ3hCO1FBQ0Q7WUFDSSxLQUFLLEVBQUUsdUJBQXVCO1lBQzlCLEtBQUssRUFBRSxvQkFBb0I7U0FDOUI7UUFDRDtZQUNJLEtBQUssRUFBRSxVQUFVO1lBQ2pCLEtBQUssRUFBRSxVQUFVO1NBQ3BCO1FBQ0Q7WUFDSSxLQUFLLEVBQUUsYUFBYTtZQUNwQixLQUFLLEVBQUUsY0FBYztTQUN4QjtLQUNKLENBQUM7SUFDRixZQUFzQixHQUFzQjtRQUN4QyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFETyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtJQUU1QyxDQUFDO0lBQ08sb0JBQW9CLENBQU07SUFDbEMsZ0JBQWdCLENBQUMsQ0FBQztRQUVkLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFNUIsQ0FBQztJQUNELFlBQVksQ0FBQyxDQUFDO1FBQ1YseUNBQXlDO1FBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDNUIsT0FBTyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDN0IsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFFBQVEsQ0FBQztZQUN6QyxDQUFDLENBQUM7aUJBQ0csSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDdkIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7aUJBQzVCLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDWCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzVCLENBQUMsQ0FBQyxDQUFDO1NBQ1Y7UUFDRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDVCxPQUFPO1lBQ0gsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3hCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixRQUFRLEVBQUUsUUFBUTtZQUNsQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7U0FDcEIsQ0FBQztJQUNOLENBQUM7dUdBckVRLDZCQUE2QjsyRkFBN0IsNkJBQTZCLGtEQUozQjtZQUNQLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFdBQVcsRUFBRSw2QkFBNkIsRUFBRTtTQUNuRixpREFqQlM7Ozs7Ozs7Ozs7Ozs7O0tBY1Q7OzJGQUtRLDZCQUE2QjtrQkFyQnpDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7OztLQWNUO29CQUNELFNBQVMsRUFBRTt3QkFDUCxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxXQUFXLCtCQUErQixFQUFFO3FCQUNuRjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQVhGaWx0ZXJDb25kaXRpb24sIEFYRmlsdGVyQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi4vZmlsdGVyLmNsYXNzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYXgtZmlsdGVyLWNvbHVtbi1udW1iZXInLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJheC1maWx0ZXItc2VjdGlvblwiPlxyXG4gICAgPGRpdj5cclxuICAgICAgICA8c2VsZWN0IChuZ01vZGVsQ2hhbmdlKT1cIm9uT3BlcmF0b3JDaGFuZ2UoJGV2ZW50KVwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zbVwiICBbKG5nTW9kZWwpXT1cIm9wZXJhdG9yXCI+XHJcbiAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IG8gb2Ygb3BlcmF0b3JzXCIgdmFsdWU9XCJ7e28udmFsdWV9fVwiPlxyXG4gICAgICAgICAgICAgICAge3tvLnRpdGxlfX1cclxuICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXY+XHJcbiAgICAgICAgPGF4LXRleHQtYm94IHBsYWNlaG9sZGVyPVwiVHlwZSBoZXJlXCIgKHRleHRDaGFuZ2UpPVwib25UZXh0Q2hhbmdlKCRldmVudClcIiBbKHZhbHVlKV09XCJ2YWx1ZVwiICpuZ0lmPVwib3BlcmF0b3IhPSdpcy1ub3QtZW1wdHknICYmIG9wZXJhdG9yIT0naXMtZW1wdHknXCI+XHJcbiAgICAgICAgPC9heC10ZXh0LWJveD5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuICAgIGAsXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7IHByb3ZpZGU6IEFYRmlsdGVyQ29sdW1uQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhGaWx0ZXJDb2x1bW5OdW1iZXJDb21wb25lbnQgfVxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhGaWx0ZXJDb2x1bW5OdW1iZXJDb21wb25lbnQgZXh0ZW5kcyBBWEZpbHRlckNvbHVtbkNvbXBvbmVudCB7XHJcblxyXG4gICAgb3BlcmF0b3I6IHN0cmluZyA9ICdlcXVhbCc7XHJcblxyXG4gICAgb3BlcmF0b3JzOiBhbnlbXSA9IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnaXMnLFxyXG4gICAgICAgICAgICB2YWx1ZTogJ2VxdWFsJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aXRsZTogYGlzbid0YCxcclxuICAgICAgICAgICAgdmFsdWU6ICdub3QtZXF1YWwnXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnbGVzcyB0aGFuJyxcclxuICAgICAgICAgICAgdmFsdWU6ICdsZXNzLXRoYW4nXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnbGVzcyB0aGFuIG9yIGVxdWFsJyxcclxuICAgICAgICAgICAgdmFsdWU6ICdsZXNzLXRoYW4tZXF1YWwnXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnZ3JlYXRlciB0aGFuJyxcclxuICAgICAgICAgICAgdmFsdWU6ICdncmVhdGVyLXRoYW4nXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnZ3JlYXRlciB0aGFuIG9yIGVxdWFsJyxcclxuICAgICAgICAgICAgdmFsdWU6ICdncmVhdGVyLXRoYW4tZXF1YWwnXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnaXMgZW1wdHknLFxyXG4gICAgICAgICAgICB2YWx1ZTogJ2lzLWVtcHR5J1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aXRsZTogYGlzbid0IGVtcHR5YCxcclxuICAgICAgICAgICAgdmFsdWU6ICdpcy1ub3QtZW1wdHknXHJcbiAgICAgICAgfVxyXG4gICAgXTtcclxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICAgICAgc3VwZXIoY2RyKTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgc2VhcmNoQ2hhbmdlT2JzZXJ2ZXI6IGFueTtcclxuICAgIG9uT3BlcmF0b3JDaGFuZ2UoZSkge1xyXG5cclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoKTtcclxuXHJcbiAgICB9XHJcbiAgICBvblRleHRDaGFuZ2UoZSkge1xyXG4gICAgICAgIC8vIFRPRE86IENoZWNrIHRoaXMgbWV0aG9kIHdvcmsgY29ycmVjdGx5XHJcbiAgICAgICAgaWYgKCF0aGlzLnNlYXJjaENoYW5nZU9ic2VydmVyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaENoYW5nZU9ic2VydmVyID0gb2JzZXJ2ZXI7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoNTAwKSlcclxuICAgICAgICAgICAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXHJcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKGMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCgpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2VhcmNoQ2hhbmdlT2JzZXJ2ZXIubmV4dChlKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY29uZGl0aW9uKCk6IEFYRmlsdGVyQ29uZGl0aW9uIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBjb25kaXRpb246IHRoaXMub3BlcmF0b3IsXHJcbiAgICAgICAgICAgIGZpZWxkOiB0aGlzLmZpZWxkLFxyXG4gICAgICAgICAgICBkYXRhVHlwZTogJ251bWJlcicsXHJcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLnZhbHVlXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbn1cclxuIl19