@acorex/components 16.18.49 → 16.19.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/fesm2022/acorex-components.mjs +726 -693
  2. package/fesm2022/acorex-components.mjs.map +1 -1
  3. package/index.d.ts +1 -0
  4. package/lib/base/base-page.class.d.ts +2 -2
  5. package/lib/base/element.class.d.ts +5 -5
  6. package/lib/calendar/scheduler/views/scheduler-view.component.d.ts +1 -1
  7. package/lib/data-filter/filter.class.d.ts +1 -1
  8. package/lib/data-list/core/data-list.component.d.ts +1 -1
  9. package/lib/property-editor/property-editor.class.d.ts +1 -1
  10. package/package.json +4 -6
  11. package/esm2022/acorex-components.mjs +0 -5
  12. package/esm2022/index.mjs +0 -159
  13. package/esm2022/lib/accordion/accordion.component.mjs +0 -45
  14. package/esm2022/lib/accordion/accordion.module.mjs +0 -20
  15. package/esm2022/lib/base/base-page.class.mjs +0 -97
  16. package/esm2022/lib/base/components.class.mjs +0 -17
  17. package/esm2022/lib/base/element.class.mjs +0 -307
  18. package/esm2022/lib/base/events.class.mjs +0 -17
  19. package/esm2022/lib/button/button.component.mjs +0 -74
  20. package/esm2022/lib/button/button.module.mjs +0 -21
  21. package/esm2022/lib/calendar/calendar-box/calendar-box.component.mjs +0 -472
  22. package/esm2022/lib/calendar/calendar-box/calendar-box.module.mjs +0 -22
  23. package/esm2022/lib/calendar/scheduler/scheduler-views.property.mjs +0 -59
  24. package/esm2022/lib/calendar/scheduler/scheduler.class.mjs +0 -16
  25. package/esm2022/lib/calendar/scheduler/scheduler.component.mjs +0 -226
  26. package/esm2022/lib/calendar/scheduler/scheduler.module.mjs +0 -68
  27. package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.mjs +0 -136
  28. package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.mjs +0 -37
  29. package/esm2022/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.mjs +0 -49
  30. package/esm2022/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.mjs +0 -102
  31. package/esm2022/lib/calendar/scheduler/views/month/scheduler-month-view.component.mjs +0 -214
  32. package/esm2022/lib/calendar/scheduler/views/scheduler-view.component.mjs +0 -99
  33. package/esm2022/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.mjs +0 -85
  34. package/esm2022/lib/checkbox/checkbox.component.mjs +0 -112
  35. package/esm2022/lib/checkbox/checkbox.module.mjs +0 -20
  36. package/esm2022/lib/color-picker/color-box/color-box.component.mjs +0 -423
  37. package/esm2022/lib/color-picker/color-picker.component.mjs +0 -89
  38. package/esm2022/lib/color-picker/color-picker.module.mjs +0 -24
  39. package/esm2022/lib/context-menu/context-menu.component.mjs +0 -68
  40. package/esm2022/lib/context-menu/context-menu.directive.mjs +0 -146
  41. package/esm2022/lib/context-menu/context-menu.module.mjs +0 -20
  42. package/esm2022/lib/data-filter/columns/filter-column-date.component.mjs +0 -140
  43. package/esm2022/lib/data-filter/columns/filter-column-number.component.mjs +0 -119
  44. package/esm2022/lib/data-filter/columns/filter-column-selection.component.mjs +0 -75
  45. package/esm2022/lib/data-filter/columns/filter-column-string.component.mjs +0 -119
  46. package/esm2022/lib/data-filter/filter-panel/filter-panel.component.mjs +0 -267
  47. package/esm2022/lib/data-filter/filter.class.mjs +0 -46
  48. package/esm2022/lib/data-filter/filter.module.mjs +0 -88
  49. package/esm2022/lib/data-filter/toolbar/filter-toolbar.component.mjs +0 -168
  50. package/esm2022/lib/data-list/core/data-list.component.mjs +0 -37
  51. package/esm2022/lib/data-list/list/list.component.mjs +0 -134
  52. package/esm2022/lib/data-list/list/list.module.mjs +0 -22
  53. package/esm2022/lib/data-list/list/toolbar-list-view.component.mjs +0 -84
  54. package/esm2022/lib/data-source/datasource.component.mjs +0 -47
  55. package/esm2022/lib/data-source/datasource.module.mjs +0 -18
  56. package/esm2022/lib/data-source/read-param.mjs +0 -7
  57. package/esm2022/lib/date-picker/date-picker.component.mjs +0 -1102
  58. package/esm2022/lib/date-picker/date-picker.module.mjs +0 -50
  59. package/esm2022/lib/dialog/dialog.component.mjs +0 -26
  60. package/esm2022/lib/dialog/dialog.module.mjs +0 -21
  61. package/esm2022/lib/dialog/dialog.service.mjs +0 -160
  62. package/esm2022/lib/drawer/content.component.mjs +0 -18
  63. package/esm2022/lib/drawer/drawer-container.component.mjs +0 -38
  64. package/esm2022/lib/drawer/drawer.component.mjs +0 -146
  65. package/esm2022/lib/drawer/drawer.module.mjs +0 -23
  66. package/esm2022/lib/dropdown/dropdown.component.mjs +0 -186
  67. package/esm2022/lib/dropdown/dropdown.module.mjs +0 -26
  68. package/esm2022/lib/fieldset/fieldset.component.mjs +0 -57
  69. package/esm2022/lib/fieldset/fieldset.module.mjs +0 -19
  70. package/esm2022/lib/form-group/form-group.component.mjs +0 -108
  71. package/esm2022/lib/form-group/form-group.module.mjs +0 -22
  72. package/esm2022/lib/form-group/form-lable.directive.mjs +0 -23
  73. package/esm2022/lib/label/label.component.mjs +0 -22
  74. package/esm2022/lib/label/label.module.mjs +0 -21
  75. package/esm2022/lib/loading/loading-indicator.component.mjs +0 -18
  76. package/esm2022/lib/loading/loading-panel.component.mjs +0 -45
  77. package/esm2022/lib/loading/loading.module.mjs +0 -21
  78. package/esm2022/lib/loading/loading.service.mjs +0 -47
  79. package/esm2022/lib/menu/menu-item.component.mjs +0 -50
  80. package/esm2022/lib/menu/menu.component.mjs +0 -114
  81. package/esm2022/lib/menu/menu.module.mjs +0 -22
  82. package/esm2022/lib/menu/menu2.component.mjs +0 -100
  83. package/esm2022/lib/number-box/number-box.component.mjs +0 -715
  84. package/esm2022/lib/number-box/number-box.module.mjs +0 -21
  85. package/esm2022/lib/page/content.component.mjs +0 -27
  86. package/esm2022/lib/page/footer.component.mjs +0 -19
  87. package/esm2022/lib/page/page.component.mjs +0 -57
  88. package/esm2022/lib/page/page.module.mjs +0 -22
  89. package/esm2022/lib/panel-box/panel-box.component.mjs +0 -87
  90. package/esm2022/lib/panel-box/panel-box.module.mjs +0 -19
  91. package/esm2022/lib/password-box/password-box.component.mjs +0 -36
  92. package/esm2022/lib/password-box/password-box.module.mjs +0 -23
  93. package/esm2022/lib/popover/custom-cdk-overlay.service.mjs +0 -50
  94. package/esm2022/lib/popover/overlay.service.mjs +0 -94
  95. package/esm2022/lib/popover/popover.component.mjs +0 -145
  96. package/esm2022/lib/popover/popover.module.mjs +0 -19
  97. package/esm2022/lib/popup/popup.component.mjs +0 -160
  98. package/esm2022/lib/popup/popup.module.mjs +0 -25
  99. package/esm2022/lib/popup/popup.service.mjs +0 -94
  100. package/esm2022/lib/progress-bar/progress-bar.component.mjs +0 -16
  101. package/esm2022/lib/progress-bar/progress-bar.module.mjs +0 -19
  102. package/esm2022/lib/property-editor/editors/check-editor/check-editor.mjs +0 -65
  103. package/esm2022/lib/property-editor/editors/check-editor/check.module.mjs +0 -22
  104. package/esm2022/lib/property-editor/editors/color-editor/color.editor.mjs +0 -41
  105. package/esm2022/lib/property-editor/editors/color-editor/color.module.mjs +0 -24
  106. package/esm2022/lib/property-editor/editors/column-editor/column.editor.mjs +0 -118
  107. package/esm2022/lib/property-editor/editors/column-editor/column.module.mjs +0 -32
  108. package/esm2022/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.mjs +0 -216
  109. package/esm2022/lib/property-editor/editors/conditional-color-editor/conditional-color.module.mjs +0 -76
  110. package/esm2022/lib/property-editor/editors/date-editor/date.editor.mjs +0 -87
  111. package/esm2022/lib/property-editor/editors/date-editor/date.module.mjs +0 -24
  112. package/esm2022/lib/property-editor/editors/number-editor/number.editor.mjs +0 -72
  113. package/esm2022/lib/property-editor/editors/number-editor/number.module.mjs +0 -24
  114. package/esm2022/lib/property-editor/editors/range-editor/range.editor.mjs +0 -145
  115. package/esm2022/lib/property-editor/editors/range-editor/range.module.mjs +0 -59
  116. package/esm2022/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.mjs +0 -76
  117. package/esm2022/lib/property-editor/editors/selectbox-editor/selectbox.editor.mjs +0 -75
  118. package/esm2022/lib/property-editor/editors/selectbox-editor/selectbox.module.mjs +0 -25
  119. package/esm2022/lib/property-editor/editors/selection-editor/selection-editor.mjs +0 -73
  120. package/esm2022/lib/property-editor/editors/selection-editor/selection.module.mjs +0 -22
  121. package/esm2022/lib/property-editor/editors/switch-editor/number.editor.mjs +0 -30
  122. package/esm2022/lib/property-editor/editors/switch-editor/number.module.mjs +0 -25
  123. package/esm2022/lib/property-editor/editors/text-editor/text.editor.mjs +0 -36
  124. package/esm2022/lib/property-editor/editors/text-editor/text.module.mjs +0 -24
  125. package/esm2022/lib/property-editor/editors/textarea-editor/textarea.editor.mjs +0 -35
  126. package/esm2022/lib/property-editor/editors/textarea-editor/textarea.module.mjs +0 -24
  127. package/esm2022/lib/property-editor/editors/time-editor/time.editor.mjs +0 -55
  128. package/esm2022/lib/property-editor/editors/time-editor/time.module.mjs +0 -24
  129. package/esm2022/lib/property-editor/property-editor-renderer.directive.mjs +0 -167
  130. package/esm2022/lib/property-editor/property-editor.class.mjs +0 -108
  131. package/esm2022/lib/property-editor/property-editor.module.mjs +0 -194
  132. package/esm2022/lib/query-builder/query-builder-group.component.mjs +0 -129
  133. package/esm2022/lib/query-builder/query-builder-popup/query-builder-popup.component.mjs +0 -177
  134. package/esm2022/lib/query-builder/query-builder-rule.component.mjs +0 -428
  135. package/esm2022/lib/query-builder/query-builder.class.mjs +0 -42
  136. package/esm2022/lib/query-builder/query-builder.component.mjs +0 -92
  137. package/esm2022/lib/query-builder/query-builder.module.mjs +0 -62
  138. package/esm2022/lib/query-builder/query-builder.service.mjs +0 -199
  139. package/esm2022/lib/search-bar/search-bar.component.mjs +0 -293
  140. package/esm2022/lib/search-bar/search-bar.module.mjs +0 -61
  141. package/esm2022/lib/searchbox/searchbox.component.mjs +0 -138
  142. package/esm2022/lib/searchbox/searchbox.module.mjs +0 -24
  143. package/esm2022/lib/selectbox/selectbox.component.mjs +0 -1137
  144. package/esm2022/lib/selectbox/selectbox.module.mjs +0 -45
  145. package/esm2022/lib/selectbox/selectbox2.component.mjs +0 -617
  146. package/esm2022/lib/selection-list/selection-list.component.mjs +0 -120
  147. package/esm2022/lib/selection-list/selection-list.module.mjs +0 -21
  148. package/esm2022/lib/switch/switch.component.mjs +0 -55
  149. package/esm2022/lib/switch/switch.module.mjs +0 -20
  150. package/esm2022/lib/tab-page/tab-page-Renderer.component.mjs +0 -75
  151. package/esm2022/lib/tab-page/tab-page-host.component.mjs +0 -124
  152. package/esm2022/lib/tab-page/tab-page.module.mjs +0 -21
  153. package/esm2022/lib/tab-page/tab-page.service.mjs +0 -159
  154. package/esm2022/lib/tab-strip/tab-strip.component.mjs +0 -48
  155. package/esm2022/lib/tab-strip/tab-strip.module.mjs +0 -19
  156. package/esm2022/lib/tab-view/dynamic-tabs.directive.mjs +0 -25
  157. package/esm2022/lib/tab-view/tab-view.component.mjs +0 -110
  158. package/esm2022/lib/tab-view/tab-view.module.mjs +0 -21
  159. package/esm2022/lib/tab-view/tab.component.mjs +0 -33
  160. package/esm2022/lib/textarea/textarea.component.mjs +0 -44
  161. package/esm2022/lib/textarea/textarea.module.mjs +0 -21
  162. package/esm2022/lib/textbox/textbox.component.mjs +0 -46
  163. package/esm2022/lib/textbox/textbox.module.mjs +0 -36
  164. package/esm2022/lib/time-picker/time-picker.component.mjs +0 -1107
  165. package/esm2022/lib/time-picker/time-picker.module.mjs +0 -34
  166. package/esm2022/lib/toast/toast-message/toast-message.component.mjs +0 -76
  167. package/esm2022/lib/toast/toast-wrapper/toast-wrapper.component.mjs +0 -13
  168. package/esm2022/lib/toast/toast.module.mjs +0 -21
  169. package/esm2022/lib/toast/toast.service.mjs +0 -45
  170. package/esm2022/lib/toolbar/group-button/toolbar-group-button.component.mjs +0 -77
  171. package/esm2022/lib/toolbar/menu/toolbar-menu.component.mjs +0 -65
  172. package/esm2022/lib/toolbar/search/toolbar-search.component.mjs +0 -56
  173. package/esm2022/lib/toolbar/title/toolbar-title.component.mjs +0 -37
  174. package/esm2022/lib/toolbar/toolbar-item.mjs +0 -4
  175. package/esm2022/lib/toolbar/toolbar.component.mjs +0 -13
  176. package/esm2022/lib/toolbar/toolbar.module.mjs +0 -40
  177. package/esm2022/lib/tooltip/tooltip.directive.mjs +0 -115
  178. package/esm2022/lib/tooltip/tooltip.module.mjs +0 -19
  179. package/esm2022/lib/tree-side-menu/tree-side-menu.component.mjs +0 -697
  180. package/esm2022/lib/tree-side-menu/tree-side-menu.module.mjs +0 -33
  181. package/esm2022/lib/tree-view/tree-view.component.mjs +0 -854
  182. package/esm2022/lib/tree-view/tree-view.module.mjs +0 -22
  183. package/esm2022/lib/upload-file/upload-file.component.mjs +0 -299
  184. package/esm2022/lib/upload-file/upload-file.events.mjs +0 -2
  185. package/esm2022/lib/upload-file/upload-file.module.mjs +0 -24
  186. package/esm2022/lib/validation/validation-form.component.mjs +0 -68
  187. package/esm2022/lib/validation/validation-rule.widget.mjs +0 -133
  188. package/esm2022/lib/validation/validation.class.mjs +0 -2
  189. package/esm2022/lib/validation/validation.component.mjs +0 -89
  190. package/esm2022/lib/validation/validation.module.mjs +0 -34
@@ -1,68 +0,0 @@
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: "18.0.7", ngImport: i0, type: AXContextMenuComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
49
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", 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\">\n <ng-container *ngFor=\"let item of items\">\n <li class=\"context-menu-item\" [class.divider]=\"item.divider\" [class.disabled]=\"item.disable\">\n <div class=\"startIcon\">\n <i class=\"{{item.icon}}\"></i>\n <i class=\"{{item.startIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\n </div>\n <span>{{item.text}}</span>\n\n <div class=\"endIcon\">\n <i class=\"{{item.endIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\n <i class=\"far fa-angle-left ax-menu-item-drop-icon\"></i>\n </div>\n </li>\n </ng-container>\n\n</ul> -->\n\n<ul #contex class=\"ax context-menu {{size}}\" [style.width.px]=\"width\"\n [ngClass]=\"{'animate__animated animate__faster animate__fadeIn': show}\">\n <ng-container *ngTemplateOutlet=\"recursiveContextMenu; context:{ $implicit: items }\"></ng-container>\n</ul>\n\n<ng-template #recursiveContextMenu let-items>\n <li *ngFor=\"let item of items\" class=\"context-menu-item\" [class.divider]=\"item.divider\"\n [class.disabled]=\"item.disable\" (click)=\"handleClickItem(item)\">\n <div class=\"startIcon\">\n <i class=\"{{item.icon}}\"></i>\n <i class=\"{{item.startIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\n </div>\n <span>{{item.text}}</span>\n\n <div class=\"endIcon\">\n <i class=\"{{item.endIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\n <i class=\"far fa-angle-left ax-menu-item-drop-icon\" *ngIf=\"item.items?.length > 0\"></i>\n </div>\n <ul class=\"ax context-menu child\" *ngIf=\"item.items?.length > 0\">\n <ng-container *ngTemplateOutlet=\"recursiveContextMenu; context:{ $implicit: item.items }\">\n </ng-container>\n </ul>\n </li>\n</ng-template>", 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: "18.0.7", 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\">\n <ng-container *ngFor=\"let item of items\">\n <li class=\"context-menu-item\" [class.divider]=\"item.divider\" [class.disabled]=\"item.disable\">\n <div class=\"startIcon\">\n <i class=\"{{item.icon}}\"></i>\n <i class=\"{{item.startIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\n </div>\n <span>{{item.text}}</span>\n\n <div class=\"endIcon\">\n <i class=\"{{item.endIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\n <i class=\"far fa-angle-left ax-menu-item-drop-icon\"></i>\n </div>\n </li>\n </ng-container>\n\n</ul> -->\n\n<ul #contex class=\"ax context-menu {{size}}\" [style.width.px]=\"width\"\n [ngClass]=\"{'animate__animated animate__faster animate__fadeIn': show}\">\n <ng-container *ngTemplateOutlet=\"recursiveContextMenu; context:{ $implicit: items }\"></ng-container>\n</ul>\n\n<ng-template #recursiveContextMenu let-items>\n <li *ngFor=\"let item of items\" class=\"context-menu-item\" [class.divider]=\"item.divider\"\n [class.disabled]=\"item.disable\" (click)=\"handleClickItem(item)\">\n <div class=\"startIcon\">\n <i class=\"{{item.icon}}\"></i>\n <i class=\"{{item.startIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\n </div>\n <span>{{item.text}}</span>\n\n <div class=\"endIcon\">\n <i class=\"{{item.endIcon}}\" *ngIf=\"!item.icon && item.startIcon\"></i>\n <i class=\"far fa-angle-left ax-menu-item-drop-icon\" *ngIf=\"item.items?.length > 0\"></i>\n </div>\n <ul class=\"ax context-menu child\" *ngIf=\"item.items?.length > 0\">\n <ng-container *ngTemplateOutlet=\"recursiveContextMenu; context:{ $implicit: item.items }\">\n </ng-container>\n </ul>\n </li>\n</ng-template>" }]
54
- }], ctorParameters: () => [{ 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvY29udGV4dC1tZW51L2NvbnRleHQtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQWdCLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFVNUcsTUFBTSxPQUFPLHNCQUFzQjtJQXVCYjtJQXJCcEIsSUFBSSxHQUFrQixJQUFJLENBQUM7SUFHM0IsS0FBSyxDQUFTO0lBR2QsS0FBSyxHQUFpQixFQUFFLENBQUM7SUFHekIsV0FBVyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBR3pELFFBQVEsR0FBOEIsSUFBSSxZQUFZLEVBQWUsQ0FBQztJQUd0RSxNQUFNLENBQStCO0lBSXJDLElBQUksR0FBWSxLQUFLLENBQUM7SUFFdEIsWUFBb0IsU0FBcUI7UUFBckIsY0FBUyxHQUFULFNBQVMsQ0FBWTtJQUN6QyxDQUFDO0lBRUQsZUFBZTtJQUNmLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDakIsU0FBUyxFQUFFLElBQUk7U0FDaEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUlELElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBRyxLQUFLO1FBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ3hFLElBQUksSUFBSSxHQUFHLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7WUFDN0QsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDO1lBQ2YsSUFBSSxJQUFJLEtBQUssS0FBSyxJQUFJLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDbkUsSUFBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQztZQUM5QyxDQUFDO2lCQUFNLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDekQsSUFBSSxHQUFHLENBQUMsQ0FBQztZQUNYLENBQUM7WUFDRCxJQUFJLEdBQUcsR0FBRyxVQUFVLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDakQsR0FBRyxHQUFHLElBQUksR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1lBQ2pDLENBQUM7WUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUM7WUFDdEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDO1FBRXRELENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUdSLENBQUM7SUFJRCxlQUFlLENBQUMsSUFBZ0I7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNoRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QixDQUFDO0lBQ0gsQ0FBQzt1R0FsRVUsc0JBQXNCOzJGQUF0QixzQkFBc0IseVVDVm5DLDY2REF5Q2M7OzJGRC9CRCxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UsaUJBQWlCLFFBRXJCLEVBQUUsS0FBSyxFQUFFLDJCQUEyQixFQUFFOytFQUk1QyxJQUFJO3NCQURILEtBQUs7Z0JBSU4sS0FBSztzQkFESixLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFJTixXQUFXO3NCQURWLE1BQU07Z0JBSVAsUUFBUTtzQkFEUCxNQUFNO2dCQUlQLE1BQU07c0JBREwsU0FBUzt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBWaWV3Q2hpbGQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWE1lbnVJdGVtIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcbmltcG9ydCB7IEFYRWxlbWVudFNpemUgfSBmcm9tICcuLi9iYXNlL2VsZW1lbnQuY2xhc3MnO1xuaW1wb3J0IHsgQVhCYXNlRXZlbnQgfSBmcm9tICcuLi9iYXNlL2V2ZW50cy5jbGFzcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNvbnRleHQtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250ZXh0LW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7IGNsYXNzOiAnYXggY29udGV4dC1tZW51LWNvbnRhaW5lcicgfVxufSlcbmV4cG9ydCBjbGFzcyBBWENvbnRleHRNZW51Q29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgc2l6ZTogQVhFbGVtZW50U2l6ZSA9ICdtZCc7XG5cbiAgQElucHV0KClcbiAgd2lkdGg6IG51bWJlcjtcblxuICBASW5wdXQoKVxuICBpdGVtczogQVhNZW51SXRlbVtdID0gW107XG5cbiAgQE91dHB1dCgpXG4gIG9uSXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBPdXRwdXQoKVxuICBvbkNsb3NlZDogRXZlbnRFbWl0dGVyPEFYQmFzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhCYXNlRXZlbnQ+KCk7XG5cbiAgQFZpZXdDaGlsZCgnY29udGV4JylcbiAgY29udGV4OiBFbGVtZW50UmVmPEhUTUxVTGlzdEVsZW1lbnQ+O1xuXG5cblxuICBzaG93OiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb250YWluZXI6IEVsZW1lbnRSZWYpIHtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuc2hvdyA9IGZhbHNlO1xuICAgIHRoaXMub25DbG9zZWQuZW1pdCh7XG4gICAgICBjb21wb25lbnQ6IHRoaXNcbiAgICB9KTtcbiAgfVxuXG5cblxuICBvcGVuKF9sZWZ0LCBfdG9wLCBfcnRsID0gZmFsc2UpIHtcbiAgICB0aGlzLnNob3cgPSB0cnVlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgY29udGFpblJlYyA9IHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBsZXQgbGVmdCA9IF9ydGwgPT09IGZhbHNlID8gX2xlZnQgOiBfbGVmdCAtIGNvbnRhaW5SZWMud2lkdGg7XG4gICAgICBsZXQgdG9wID0gX3RvcDtcbiAgICAgIGlmIChfcnRsID09PSBmYWxzZSAmJiBfbGVmdCArIGNvbnRhaW5SZWMud2lkdGggPiB3aW5kb3cuaW5uZXJXaWR0aCkge1xuICAgICAgICBsZWZ0ID0gd2luZG93LmlubmVyV2lkdGggLSBjb250YWluUmVjLndpZHRoO1xuICAgICAgfSBlbHNlIGlmIChfcnRsID09PSB0cnVlICYmIF9sZWZ0IC0gY29udGFpblJlYy53aWR0aCA8IDApIHtcbiAgICAgICAgbGVmdCA9IDA7XG4gICAgICB9XG4gICAgICBpZiAodG9wICsgY29udGFpblJlYy5oZWlnaHQgPiB3aW5kb3cuaW5uZXJIZWlnaHQpIHtcbiAgICAgICAgdG9wID0gX3RvcCAtIGNvbnRhaW5SZWMuaGVpZ2h0O1xuICAgICAgfVxuICAgICAgdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0ID0gbGVmdCArICdweCc7XG4gICAgICB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnN0eWxlLnRvcCA9IHRvcCArICdweCc7XG5cbiAgICB9LCA1KTtcblxuXG4gIH1cblxuXG5cbiAgaGFuZGxlQ2xpY2tJdGVtKGl0ZW06IEFYTWVudUl0ZW0pIHtcbiAgICBpZiAoIWl0ZW0uZGlzYWJsZSB8fCBpdGVtLmRpc2FibGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5vbkl0ZW1DbGljay5lbWl0KGl0ZW0pO1xuICAgIH1cbiAgfVxufVxuIiwiPCEtLSA8dWwgY2xhc3M9XCJheCBjb250ZXh0LW1lbnUge3tzaXplfX1cIiBbc3R5bGUud2lkdGgucHhdPVwid2lkdGhcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCI+XG4gICAgICAgIDxsaSBjbGFzcz1cImNvbnRleHQtbWVudS1pdGVtXCIgW2NsYXNzLmRpdmlkZXJdPVwiaXRlbS5kaXZpZGVyXCIgW2NsYXNzLmRpc2FibGVkXT1cIml0ZW0uZGlzYWJsZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXJ0SWNvblwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwie3tpdGVtLmljb259fVwiPjwvaT5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInt7aXRlbS5zdGFydEljb259fVwiICpuZ0lmPVwiIWl0ZW0uaWNvbiAmJiBpdGVtLnN0YXJ0SWNvblwiPjwvaT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHNwYW4+e3tpdGVtLnRleHR9fTwvc3Bhbj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVuZEljb25cIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInt7aXRlbS5lbmRJY29ufX1cIiAqbmdJZj1cIiFpdGVtLmljb24gJiYgaXRlbS5zdGFydEljb25cIj48L2k+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtYW5nbGUtbGVmdCBheC1tZW51LWl0ZW0tZHJvcC1pY29uXCI+PC9pPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbGk+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbjwvdWw+IC0tPlxuXG48dWwgI2NvbnRleCBjbGFzcz1cImF4IGNvbnRleHQtbWVudSB7e3NpemV9fVwiIFtzdHlsZS53aWR0aC5weF09XCJ3aWR0aFwiXG4gICAgW25nQ2xhc3NdPVwieydhbmltYXRlX19hbmltYXRlZCBhbmltYXRlX19mYXN0ZXIgYW5pbWF0ZV9fZmFkZUluJzogc2hvd31cIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVjdXJzaXZlQ29udGV4dE1lbnU7IGNvbnRleHQ6eyAkaW1wbGljaXQ6IGl0ZW1zIH1cIj48L25nLWNvbnRhaW5lcj5cbjwvdWw+XG5cbjxuZy10ZW1wbGF0ZSAjcmVjdXJzaXZlQ29udGV4dE1lbnUgbGV0LWl0ZW1zPlxuICAgIDxsaSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiIGNsYXNzPVwiY29udGV4dC1tZW51LWl0ZW1cIiBbY2xhc3MuZGl2aWRlcl09XCJpdGVtLmRpdmlkZXJcIlxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlXCIgKGNsaWNrKT1cImhhbmRsZUNsaWNrSXRlbShpdGVtKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RhcnRJY29uXCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cInt7aXRlbS5pY29ufX1cIj48L2k+XG4gICAgICAgICAgICA8aSBjbGFzcz1cInt7aXRlbS5zdGFydEljb259fVwiICpuZ0lmPVwiIWl0ZW0uaWNvbiAmJiBpdGVtLnN0YXJ0SWNvblwiPjwvaT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzcGFuPnt7aXRlbS50ZXh0fX08L3NwYW4+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVuZEljb25cIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwie3tpdGVtLmVuZEljb259fVwiICpuZ0lmPVwiIWl0ZW0uaWNvbiAmJiBpdGVtLnN0YXJ0SWNvblwiPjwvaT5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLWFuZ2xlLWxlZnQgYXgtbWVudS1pdGVtLWRyb3AtaWNvblwiICpuZ0lmPVwiaXRlbS5pdGVtcz8ubGVuZ3RoID4gMFwiPjwvaT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDx1bCBjbGFzcz1cImF4IGNvbnRleHQtbWVudSBjaGlsZFwiICpuZ0lmPVwiaXRlbS5pdGVtcz8ubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJlY3Vyc2l2ZUNvbnRleHRNZW51OyBjb250ZXh0OnsgJGltcGxpY2l0OiBpdGVtLml0ZW1zIH1cIj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3VsPlxuICAgIDwvbGk+XG48L25nLXRlbXBsYXRlPiJdfQ==
@@ -1,146 +0,0 @@
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: "18.0.7", 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: "18.0.7", 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: "18.0.7", ngImport: i0, type: AXContextMenuDirective, decorators: [{
128
- type: Directive,
129
- args: [{
130
- selector: '[axContextMenu]'
131
- }]
132
- }], ctorParameters: () => [{ 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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LEdBQUcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUN4RCxJQUFJLEdBQUcsWUFBWSxPQUFPLEVBQUUsQ0FBQztvQkFDM0IsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTt3QkFDZixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ2pCLENBQUMsQ0FBQyxDQUFDO2dCQUNMLENBQUM7cUJBQU0sQ0FBQztvQkFDTixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2YsQ0FBQztZQUNILENBQUM7aUJBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7Z0JBQ2hELE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUNqQyxDQUFDO2lCQUNJLENBQUM7Z0JBQ0osT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2QsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztJQUNyQyxDQUFDO3VHQTdJVSxzQkFBc0I7MkZBQXRCLHNCQUFzQjs7MkZBQXRCLHNCQUFzQjtrQkFIbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2lCQUM1Qjs0S0FHQyxXQUFXO3NCQURWLEtBQUs7Z0JBSU4sZUFBZTtzQkFEZCxLQUFLO2dCQUlOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUlOLHNCQUFzQjtzQkFEckIsTUFBTTtnQkFJUCxHQUFHO3NCQURGLEtBQUs7Z0JBU04sYUFBYTtzQkFEWixZQUFZO3VCQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgSW5qZWN0b3IsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYTWVudUl0ZW0gfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xuaW1wb3J0IHsgQVhCYXNlRXZlbnQgfSBmcm9tICcuLi9iYXNlL2V2ZW50cy5jbGFzcyc7XG5pbXBvcnQgeyBBWENvbnRleHRNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9jb250ZXh0LW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgdHlwZSBBWENvbnRleHRNZW51UHJvbWlzZUZ1bmN0aW9uID0gKGl0ZW06IGFueSkgPT4gUHJvbWlzZTxBWE1lbnVJdGVtW10+O1xuZXhwb3J0IHR5cGUgQVhDb250ZXh0TWVudUZ1bmN0aW9uID0gKGl0ZW06IGFueSkgPT4gQVhNZW51SXRlbVtdO1xuZXhwb3J0IGNsYXNzIEFYQ29udGV4dE1lbnVJdGVtQ2xpY2tFdmVudCBleHRlbmRzIEFYQmFzZUV2ZW50IHtcbiAgZGF0YUl0ZW0/OiBhbnk7XG4gIG1lbnVJdGVtOiBBWE1lbnVJdGVtO1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXhDb250ZXh0TWVudV0nXG59KVxuZXhwb3J0IGNsYXNzIEFYQ29udGV4dE1lbnVEaXJlY3RpdmUge1xuICBASW5wdXQoKVxuICBjb250ZXh0TWVudTogQVhDb250ZXh0TWVudUNvbXBvbmVudDtcblxuICBASW5wdXQoKVxuICBjb250ZXh0RGF0YUl0ZW06IGFueTtcblxuICBASW5wdXQoKVxuICBjb250ZXh0TWVudUl0ZW1zOiBBWE1lbnVJdGVtW10gfCBBWENvbnRleHRNZW51UHJvbWlzZUZ1bmN0aW9uIHwgQVhDb250ZXh0TWVudUZ1bmN0aW9uO1xuXG4gIEBPdXRwdXQoKVxuICBvbkNvbnRleHRNZW51SXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8QVhDb250ZXh0TWVudUl0ZW1DbGlja0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhDb250ZXh0TWVudUl0ZW1DbGlja0V2ZW50PigpO1xuXG4gIEBJbnB1dCgpXG4gIHJ0bDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGludGVybmFsSXRlbXM6IEFYTWVudUl0ZW1bXSA9IFtdO1xuXG4gIHByaXZhdGUgY2xpY2tTdWJzY3JpYmU6IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBjbG9zZVN1YnNjcmliZTogU3Vic2NyaXB0aW9uO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2NvbnRleHRtZW51JywgWyckZXZlbnQnXSlcbiAgb25Db250ZXh0TWVudShlOiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5nZXRNZW51SXRlbXMoKS50aGVuKGl0ZW1zID0+IHtcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLmNyZWF0ZUNvbnRleHRNZW51KCk7XG4gICAgICB0aGlzLmNvbnRleHRNZW51Lml0ZW1zID0gaXRlbXM7XG5cblxuICAgICAgdGhpcy5jb250ZXh0TWVudS5vcGVuKGUueCwgZS55LCB0aGlzLnJ0bCk7XG5cblxuICAgIH0pO1xuICB9XG5cblxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgZmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yXG4gICkge1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucnRsID09IG51bGwpIHtcbiAgICAgIHRoaXMucnRsID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5yZWYubmF0aXZlRWxlbWVudCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgnZGlyZWN0aW9uJykgPT09ICdydGwnO1xuICAgIH1cbiAgfVxuXG4gIGNyZWF0ZUNvbnRleHRNZW51KCk6IHZvaWQge1xuICAgIGNvbnN0IHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICB3cmFwcGVyLmNsYXNzTGlzdC5hZGQoJ2F4LW92ZXJsYXktd3JhcHBlcicpO1xuICAgIHdyYXBwZXIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLndyYXBwZXJDbGljay5iaW5kKHRoaXMpKTtcbiAgICB3cmFwcGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2NvbnRleHRtZW51JywgdGhpcy53cmFwcGVyUkNsaWNrLmJpbmQodGhpcykpO1xuICAgIC8vXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh3cmFwcGVyKTtcbiAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5mYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoQVhDb250ZXh0TWVudUNvbXBvbmVudCk7XG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcbiAgICB0aGlzLmNvbnRleHRNZW51ID0gY29tcG9uZW50UmVmLmluc3RhbmNlO1xuICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQoY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQpO1xuICAgIC8vXG4gICAgdGhpcy5jbGVhckNvbXBvbmVudFN1YnNjcmlwdGlvbnMoKTtcbiAgICB0aGlzLmNyZWF0ZUNvbXBvbmVudFN1YnNjcmlwdGlvbnMoKTtcbiAgfVxuXG4gIHdyYXBwZXJDbGljayhlOiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5yZW1vdmUoKTtcbiAgfVxuXG4gIHdyYXBwZXJSQ2xpY2soZTogTW91c2VFdmVudCkge1xuICAgIGlmIChkb2N1bWVudC5lbGVtZW50c0Zyb21Qb2ludChlLmNsaWVudFgsIGUuY2xpZW50WSkuaW5jbHVkZXModGhpcy5yZWYubmF0aXZlRWxlbWVudCkpIHtcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgIHRoaXMuY29udGV4dE1lbnUub3BlbihlLngsIGUueSwgdGhpcy5ydGwpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMucmVtb3ZlKCk7XG4gICAgfVxuICB9XG5cblxuXG4gIHByaXZhdGUgY2xlYXJDb21wb25lbnRTdWJzY3JpcHRpb25zKCkge1xuICAgIGlmICh0aGlzLmNsaWNrU3Vic2NyaWJlKSB7XG4gICAgICB0aGlzLmNsaWNrU3Vic2NyaWJlLnVuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLmNsaWNrU3Vic2NyaWJlID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAodGhpcy5jbG9zZVN1YnNjcmliZSkge1xuICAgICAgdGhpcy5jbG9zZVN1YnNjcmliZS51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5jbG9zZVN1YnNjcmliZSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUNvbXBvbmVudFN1YnNjcmlwdGlvbnMoKSB7XG4gICAgdGhpcy5jbGlja1N1YnNjcmliZSA9IHRoaXMuY29udGV4dE1lbnUub25JdGVtQ2xpY2suc3Vic2NyaWJlKGMgPT4ge1xuICAgICAgdGhpcy5yZW1vdmUoKTtcbiAgICAgIHRoaXMub25Db250ZXh0TWVudUl0ZW1DbGljay5lbWl0KHtcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgICBkYXRhSXRlbTogdGhpcy5jb250ZXh0RGF0YUl0ZW0sXG4gICAgICAgIGh0bWxFbGVtZW50OiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICBtZW51SXRlbTogY1xuICAgICAgfSk7XG4gICAgfSkgYXMgYW55O1xuICAgIHRoaXMuY2xvc2VTdWJzY3JpYmUgPSB0aGlzLmNvbnRleHRNZW51Lm9uQ2xvc2VkLnN1YnNjcmliZShjID0+IHtcbiAgICAgIHRoaXMuY2xlYXJDb21wb25lbnRTdWJzY3JpcHRpb25zKCk7XG4gICAgfSkgYXMgYW55O1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmUoKSB7XG4gICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgdGhpcy5jbGVhckNvbXBvbmVudFN1YnNjcmlwdGlvbnMoKTtcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuYXgtb3ZlcmxheS13cmFwcGVyJyk/LnJlbW92ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRNZW51SXRlbXMoKTogUHJvbWlzZTxBWE1lbnVJdGVtW10+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8QVhNZW51SXRlbVtdPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAodHlwZW9mICh0aGlzLmNvbnRleHRNZW51SXRlbXMpID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGNvbnN0IHZhbCA9IHRoaXMuY29udGV4dE1lbnVJdGVtcyh0aGlzLmNvbnRleHREYXRhSXRlbSk7XG4gICAgICAgIGlmICh2YWwgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgdmFsLnRoZW4oX2RhdGEgPT4ge1xuICAgICAgICAgICAgcmVzb2x2ZShfZGF0YSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzb2x2ZSh2YWwpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5jb250ZXh0TWVudUl0ZW1zKSkge1xuICAgICAgICByZXNvbHZlKHRoaXMuY29udGV4dE1lbnVJdGVtcyk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgcmVzb2x2ZShbXSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyQ29tcG9uZW50U3Vic2NyaXB0aW9ucygpO1xuICB9XG59XG4iXX0=
@@ -1,20 +0,0 @@
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: "18.0.7", ngImport: i0, type: AXContextMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.7", ngImport: i0, type: AXContextMenuModule, declarations: [AXContextMenuComponent, AXContextMenuDirective], imports: [CommonModule], exports: [AXContextMenuComponent, AXContextMenuDirective] });
9
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXContextMenuModule, imports: [CommonModule] });
10
- }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQVNsRSxNQUFNLE9BQU8sbUJBQW1CO3VHQUFuQixtQkFBbUI7d0dBQW5CLG1CQUFtQixpQkFMYixzQkFBc0IsRUFBRSxzQkFBc0IsYUFDbkQsWUFBWSxhQUNaLHNCQUFzQixFQUFFLHNCQUFzQjt3R0FHL0MsbUJBQW1CLFlBSmxCLFlBQVk7OzJGQUliLG1CQUFtQjtrQkFOL0IsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxzQkFBc0IsQ0FBQztvQkFDOUQsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxzQkFBc0IsQ0FBQztvQkFDekQsU0FBUyxFQUFFLEVBQUU7aUJBQ2hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQVhDb250ZXh0TWVudUNvbXBvbmVudCB9IGZyb20gJy4vY29udGV4dC1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWENvbnRleHRNZW51RGlyZWN0aXZlIH0gZnJvbSAnLi9jb250ZXh0LW1lbnUuZGlyZWN0aXZlJztcblxuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW0FYQ29udGV4dE1lbnVDb21wb25lbnQsIEFYQ29udGV4dE1lbnVEaXJlY3RpdmVdLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtBWENvbnRleHRNZW51Q29tcG9uZW50LCBBWENvbnRleHRNZW51RGlyZWN0aXZlXSxcbiAgICBwcm92aWRlcnM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBWENvbnRleHRNZW51TW9kdWxlIHtcblxufSJdfQ==
@@ -1,140 +0,0 @@
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: "18.0.7", ngImport: i0, type: AXFilterColumnDateComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
98
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", 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: "18.0.7", 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: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { selection: [{
137
- type: ViewChild,
138
- args: [AXSelectionListComponent, { static: true }]
139
- }] } });
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWNvbHVtbi1kYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2RhdGEtZmlsdGVyL2NvbHVtbnMvZmlsdGVyLWNvbHVtbi1kYXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBd0IsTUFBTSxlQUFlLENBQUM7QUFDdkgsT0FBTyxFQUFxQix1QkFBdUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0NBQStDLENBQUM7Ozs7QUFzQnpGLE1BQU0sT0FBTywyQkFBNEIsU0FBUSx1QkFBdUI7SUFzQzlDO0lBckNpQyxTQUFTLENBQTJCO0lBRTNGLEtBQUssR0FBUTtRQUNUO1lBQ0ksSUFBSSxFQUFFLE9BQU87WUFDYixLQUFLLEVBQUUsT0FBTztTQUNqQjtRQUNEO1lBQ0ksSUFBSSxFQUFFLFdBQVc7WUFDakIsS0FBSyxFQUFFLFdBQVc7U0FDckI7UUFDRDtZQUNJLElBQUksRUFBRSxZQUFZO1lBQ2xCLEtBQUssRUFBRSxZQUFZO1NBQ3RCO1FBQ0Q7WUFDSSxJQUFJLEVBQUUsV0FBVztZQUNqQixLQUFLLEVBQUUsV0FBVztTQUNyQjtRQUNEO1lBQ0ksSUFBSSxFQUFFLFVBQVU7WUFDaEIsS0FBSyxFQUFFLFVBQVU7U0FDcEI7UUFDRDtZQUNJLElBQUksRUFBRSxPQUFPO1lBQ2IsS0FBSyxFQUFFLE9BQU87U0FDakI7S0FDSixDQUFDO0lBRUYsUUFBUSxHQUFlLElBQUksVUFBVSxFQUFFLENBQUM7SUFDeEMsTUFBTSxHQUFlLElBQUksVUFBVSxFQUFFLENBQUM7SUFFdEMsWUFBWSxHQUFRLElBQUksQ0FBQztJQUV6QixVQUFVLEdBQVksS0FBSyxDQUFDO0lBQzVCLFlBQVksR0FBWSxLQUFLLENBQUM7SUFFOUIsWUFBc0IsR0FBc0I7UUFDeEMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRE8sUUFBRyxHQUFILEdBQUcsQ0FBbUI7SUFFNUMsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBQ0QsVUFBVSxDQUFDLENBQUM7UUFDUixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFDRCxpQkFBaUIsQ0FBQyxLQUFZO1FBRTFCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUM7UUFDMUUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxJQUFJLFVBQVUsQ0FBQztRQUMvRSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksU0FBUztRQUNULElBQUksS0FBSyxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFDN0IsUUFBUSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzlCLEtBQUssT0FBTztnQkFDUixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO2dCQUVwQyxPQUFPO29CQUNILFNBQVMsRUFBRSxPQUFPO29CQUNsQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7b0JBQ2pCLFFBQVEsRUFBRSxNQUFNO29CQUNoQixLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUU7aUJBQ3JDLENBQUE7WUFDTCxLQUFLLFVBQVU7Z0JBQ1gsT0FBTztvQkFDSCxTQUFTLEVBQUUsT0FBTztvQkFDbEIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO29CQUNqQixRQUFRLEVBQUUsTUFBTTtvQkFDaEIsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFO2lCQUNyQyxDQUFBO1lBQ0wsS0FBSyxXQUFXO2dCQUNaLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN0QyxNQUFNO1lBQ1YsS0FBSyxZQUFZO2dCQUNiLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtnQkFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN2QyxNQUFNO1lBQ1YsS0FBSyxXQUFXO2dCQUNaLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQTtnQkFDakMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN0QyxNQUFNO1FBQ2QsQ0FBQztRQUVELE9BQU87WUFDSCxTQUFTLEVBQUUsU0FBUztZQUNwQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsUUFBUSxFQUFFLE1BQU07WUFDaEIsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ2xFLENBQUE7SUFDTCxDQUFDO3VHQWhHUSwyQkFBMkI7MkZBQTNCLDJCQUEyQixnREFMekI7WUFDUCxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxXQUFXLEVBQUUsMkJBQTJCLEVBQUU7U0FDakYscUVBSVUsd0JBQXdCLHFGQW5CekI7Ozs7Ozs7Ozs7OztLQVlUOzsyRkFNUSwyQkFBMkI7a0JBcEJ2QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7O0tBWVQ7b0JBQ0QsU0FBUyxFQUFFO3dCQUNQLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFdBQVcsNkJBQTZCLEVBQUU7cUJBQ2pGO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRDtzRkFFMEQsU0FBUztzQkFBL0QsU0FBUzt1QkFBQyx3QkFBd0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgVmlld0NoaWxkLCBFdmVudEVtaXR0ZXIsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhGaWx0ZXJDb25kaXRpb24sIEFYRmlsdGVyQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi4vZmlsdGVyLmNsYXNzJztcbmltcG9ydCB7IEFYRGF0ZVRpbWUgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xuaW1wb3J0IHsgQVhTZWxlY3Rpb25MaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vc2VsZWN0aW9uLWxpc3Qvc2VsZWN0aW9uLWxpc3QuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdheC1maWx0ZXItY29sdW1uLWRhdGUnLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImF4LWZpbHRlci1zZWN0aW9uXCI+XG4gICAgPGF4LXNlbGVjdGlvbi1saXN0IFtpdGVtc109XCJpdGVtc1wiIG1vZGU9XCJzaW5nbGVcIiBkaXJlY3Rpb249XCJ2ZXJ0aWNhbFwiIChzZWxlY3RlZEl0ZW1zQ2hhbmdlKT1cIm9uU2VsZWN0ZWRDaGFuZ2VkKCRldmVudClcIj5cbiAgICA8L2F4LXNlbGVjdGlvbi1saXN0PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJheC1maWx0ZXItc2VjdGlvbi12YWx1ZVwiIFtoaWRkZW5dPVwiIXNob3dDdXN0b21cIj5cbiAgICAgICAgPGF4LWRhdGUtcGlja2VyIGxhYmVsPVwiRnJvbVwiIFsodmFsdWUpXT1cImZyb21EYXRlXCIgKG9uVmFsdWVDaGFuZ2VkKT1cImRhdGVDaGFuZ2UoJGV2ZW50KVwiPjwvYXgtZGF0ZS1waWNrZXI+XG4gICAgICAgIDxheC1kYXRlLXBpY2tlciBsYWJlbD1cIlRvXCIgWyh2YWx1ZSldPVwidG9EYXRlXCIgKG9uVmFsdWVDaGFuZ2VkKT1cImRhdGVDaGFuZ2UoJGV2ZW50KVwiPjwvYXgtZGF0ZS1waWNrZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImF4LWZpbHRlci1zZWN0aW9uLXZhbHVlXCIgW2hpZGRlbl09XCIhc2hvd1NwZWNpZmljXCI+XG4gICAgICAgIDxheC1kYXRlLXBpY2tlciBsYWJlbD1cIkRhdGVcIiBbKHZhbHVlKV09XCJmcm9tRGF0ZVwiIChvblZhbHVlQ2hhbmdlZCk9XCJkYXRlQ2hhbmdlKCRldmVudClcIj48L2F4LWRhdGUtcGlja2VyPiAgICAgICAgICAgIFxuICAgIDwvZGl2PlxuICAgIGAsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogQVhGaWx0ZXJDb2x1bW5Db21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWEZpbHRlckNvbHVtbkRhdGVDb21wb25lbnQgfVxuICAgIF0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQVhGaWx0ZXJDb2x1bW5EYXRlQ29tcG9uZW50IGV4dGVuZHMgQVhGaWx0ZXJDb2x1bW5Db21wb25lbnQge1xuICAgIEBWaWV3Q2hpbGQoQVhTZWxlY3Rpb25MaXN0Q29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBzZWxlY3Rpb246IEFYU2VsZWN0aW9uTGlzdENvbXBvbmVudDtcblxuICAgIGl0ZW1zOiBhbnkgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRleHQ6ICdUb2RheScsXG4gICAgICAgICAgICB2YWx1ZTogJ3RvZGF5J1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0ZXh0OiAnVGhpcyBXZWVrJyxcbiAgICAgICAgICAgIHZhbHVlOiAndGhpcy13ZWVrJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0ZXh0OiAnVGhpcyBNb250aCcsXG4gICAgICAgICAgICB2YWx1ZTogJ3RoaXMtbW9udGgnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRleHQ6ICdUaGlzIFllYXInLFxuICAgICAgICAgICAgdmFsdWU6ICd0aGlzLXllYXInXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRleHQ6ICdTcGVjaWZpYycsXG4gICAgICAgICAgICB2YWx1ZTogJ3NwZWNpZmljJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0ZXh0OiAnUmFuZ2UnLFxuICAgICAgICAgICAgdmFsdWU6ICdyYW5nZSdcbiAgICAgICAgfVxuICAgIF07XG5cbiAgICBmcm9tRGF0ZTogQVhEYXRlVGltZSA9IG5ldyBBWERhdGVUaW1lKCk7XG4gICAgdG9EYXRlOiBBWERhdGVUaW1lID0gbmV3IEFYRGF0ZVRpbWUoKTtcblxuICAgIHNlbGVjdGVkSXRlbTogYW55ID0gbnVsbDtcblxuICAgIHNob3dDdXN0b206IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBzaG93U3BlY2lmaWM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgICAgIHN1cGVyKGNkcik7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZEl0ZW1zID0gW3RoaXMuaXRlbXNbMF1dO1xuICAgIH1cbiAgICBkYXRlQ2hhbmdlKGUpIHtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KCk7XG4gICAgfVxuICAgIG9uU2VsZWN0ZWRDaGFuZ2VkKGl0ZW1zOiBhbnlbXSkge1xuXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gaXRlbXNbMF07XG4gICAgICAgIHRoaXMuc2hvd0N1c3RvbSA9IHRoaXMuc2VsZWN0ZWRJdGVtICYmIHRoaXMuc2VsZWN0ZWRJdGVtLnZhbHVlID09ICdyYW5nZSc7XG4gICAgICAgIHRoaXMuc2hvd1NwZWNpZmljID0gdGhpcy5zZWxlY3RlZEl0ZW0gJiYgdGhpcy5zZWxlY3RlZEl0ZW0udmFsdWUgPT0gJ3NwZWNpZmljJztcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoKTtcbiAgICB9XG5cbiAgICBnZXQgY29uZGl0aW9uKCk6IEFYRmlsdGVyQ29uZGl0aW9uIHtcbiAgICAgICAgbGV0IHRvZGF5ID0gbmV3IEFYRGF0ZVRpbWUoKTtcbiAgICAgICAgc3dpdGNoICh0aGlzLnNlbGVjdGVkSXRlbS52YWx1ZSkge1xuICAgICAgICAgICAgY2FzZSAndG9kYXknOlxuICAgICAgICAgICAgICAgIHRoaXMuZnJvbURhdGUgPSB0aGlzLnRvRGF0ZSA9IHRvZGF5O1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uOiAnZXF1YWwnLFxuICAgICAgICAgICAgICAgICAgICBmaWVsZDogdGhpcy5maWVsZCxcbiAgICAgICAgICAgICAgICAgICAgZGF0YVR5cGU6ICdkYXRlJyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMuZnJvbURhdGUudG9JU09TdHJpbmcoKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ3NwZWNpZmljJzpcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBjb25kaXRpb246ICdlcXVhbCcsXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiB0aGlzLmZpZWxkLFxuICAgICAgICAgICAgICAgICAgICBkYXRhVHlwZTogJ2RhdGUnLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5mcm9tRGF0ZS50b0lTT1N0cmluZygpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAndGhpcy13ZWVrJzpcbiAgICAgICAgICAgICAgICB0aGlzLnRvRGF0ZSA9IHRvZGF5LmVuZE9mKCd3ZWVrJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5mcm9tRGF0ZSA9IHRvZGF5LnN0YXJ0T2YoJ3dlZWsnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3RoaXMtbW9udGgnOlxuICAgICAgICAgICAgICAgIHRoaXMudG9EYXRlID0gdG9kYXkuZW5kT2YoJ21vbnRoJylcbiAgICAgICAgICAgICAgICB0aGlzLmZyb21EYXRlID0gdG9kYXkuc3RhcnRPZignbW9udGgnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3RoaXMteWVhcic6XG4gICAgICAgICAgICAgICAgdGhpcy50b0RhdGUgPSB0b2RheS5lbmRPZigneWVhcicpXG4gICAgICAgICAgICAgICAgdGhpcy5mcm9tRGF0ZSA9IHRvZGF5LnN0YXJ0T2YoJ3llYXInKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb25kaXRpb246ICdiZXR3ZWVuJyxcbiAgICAgICAgICAgIGZpZWxkOiB0aGlzLmZpZWxkLFxuICAgICAgICAgICAgZGF0YVR5cGU6ICdkYXRlJyxcbiAgICAgICAgICAgIHZhbHVlOiBbdGhpcy5mcm9tRGF0ZS50b0lTT1N0cmluZygpLCB0aGlzLnRvRGF0ZS50b0lTT1N0cmluZygpXVxuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -1,119 +0,0 @@
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: "18.0.7", ngImport: i0, type: AXFilterColumnNumberComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
77
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", 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", "showMask", "type", "maxLength", "maskGuid", "maskPlaceholder", "maskKeepCharPositions"] }] });
94
- }
95
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", 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: () => [{ type: i0.ChangeDetectorRef }] });
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWNvbHVtbi1udW1iZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvZGF0YS1maWx0ZXIvY29sdW1ucy9maWx0ZXItY29sdW1uLW51bWJlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQXFCLHVCQUF1QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBd0JsQyxNQUFNLE9BQU8sNkJBQThCLFNBQVEsdUJBQXVCO0lBc0NoRDtJQXBDdEIsUUFBUSxHQUFXLE9BQU8sQ0FBQztJQUUzQixTQUFTLEdBQVU7UUFDZjtZQUNJLEtBQUssRUFBRSxJQUFJO1lBQ1gsS0FBSyxFQUFFLE9BQU87U0FDakI7UUFDRDtZQUNJLEtBQUssRUFBRSxPQUFPO1lBQ2QsS0FBSyxFQUFFLFdBQVc7U0FDckI7UUFDRDtZQUNJLEtBQUssRUFBRSxXQUFXO1lBQ2xCLEtBQUssRUFBRSxXQUFXO1NBQ3JCO1FBQ0Q7WUFDSSxLQUFLLEVBQUUsb0JBQW9CO1lBQzNCLEtBQUssRUFBRSxpQkFBaUI7U0FDM0I7UUFDRDtZQUNJLEtBQUssRUFBRSxjQUFjO1lBQ3JCLEtBQUssRUFBRSxjQUFjO1NBQ3hCO1FBQ0Q7WUFDSSxLQUFLLEVBQUUsdUJBQXVCO1lBQzlCLEtBQUssRUFBRSxvQkFBb0I7U0FDOUI7UUFDRDtZQUNJLEtBQUssRUFBRSxVQUFVO1lBQ2pCLEtBQUssRUFBRSxVQUFVO1NBQ3BCO1FBQ0Q7WUFDSSxLQUFLLEVBQUUsYUFBYTtZQUNwQixLQUFLLEVBQUUsY0FBYztTQUN4QjtLQUNKLENBQUM7SUFDRixZQUFzQixHQUFzQjtRQUN4QyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFETyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtJQUU1QyxDQUFDO0lBQ08sb0JBQW9CLENBQU07SUFDbEMsZ0JBQWdCLENBQUMsQ0FBQztRQUVkLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFNUIsQ0FBQztJQUNELFlBQVksQ0FBQyxDQUFDO1FBQ1YseUNBQXlDO1FBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUM3QixPQUFPLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUM3QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsUUFBUSxDQUFDO1lBQ3pDLENBQUMsQ0FBQztpQkFDRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUN2QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztpQkFDNUIsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNYLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFDWCxDQUFDO1FBQ0QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1QsT0FBTztZQUNILFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN4QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsUUFBUSxFQUFFLFFBQVE7WUFDbEIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1NBQ3BCLENBQUM7SUFDTixDQUFDO3VHQXJFUSw2QkFBNkI7MkZBQTdCLDZCQUE2QixrREFKM0I7WUFDUCxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxXQUFXLEVBQUUsNkJBQTZCLEVBQUU7U0FDbkYsaURBakJTOzs7Ozs7Ozs7Ozs7OztLQWNUOzsyRkFLUSw2QkFBNkI7a0JBckJ6QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7S0FjVDtvQkFDRCxTQUFTLEVBQUU7d0JBQ1AsRUFBRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsV0FBVywrQkFBK0IsRUFBRTtxQkFDbkY7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWEZpbHRlckNvbmRpdGlvbiwgQVhGaWx0ZXJDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuLi9maWx0ZXIuY2xhc3MnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXgtZmlsdGVyLWNvbHVtbi1udW1iZXInLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImF4LWZpbHRlci1zZWN0aW9uXCI+XG4gICAgPGRpdj5cbiAgICAgICAgPHNlbGVjdCAobmdNb2RlbENoYW5nZSk9XCJvbk9wZXJhdG9yQ2hhbmdlKCRldmVudClcIiBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc21cIiAgWyhuZ01vZGVsKV09XCJvcGVyYXRvclwiPlxuICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgbyBvZiBvcGVyYXRvcnNcIiB2YWx1ZT1cInt7by52YWx1ZX19XCI+XG4gICAgICAgICAgICAgICAge3tvLnRpdGxlfX1cbiAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICA8L3NlbGVjdD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgICA8YXgtdGV4dC1ib3ggcGxhY2Vob2xkZXI9XCJUeXBlIGhlcmVcIiAodGV4dENoYW5nZSk9XCJvblRleHRDaGFuZ2UoJGV2ZW50KVwiIFsodmFsdWUpXT1cInZhbHVlXCIgKm5nSWY9XCJvcGVyYXRvciE9J2lzLW5vdC1lbXB0eScgJiYgb3BlcmF0b3IhPSdpcy1lbXB0eSdcIj5cbiAgICAgICAgPC9heC10ZXh0LWJveD5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuICAgIGAsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogQVhGaWx0ZXJDb2x1bW5Db21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWEZpbHRlckNvbHVtbk51bWJlckNvbXBvbmVudCB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBBWEZpbHRlckNvbHVtbk51bWJlckNvbXBvbmVudCBleHRlbmRzIEFYRmlsdGVyQ29sdW1uQ29tcG9uZW50IHtcblxuICAgIG9wZXJhdG9yOiBzdHJpbmcgPSAnZXF1YWwnO1xuXG4gICAgb3BlcmF0b3JzOiBhbnlbXSA9IFtcbiAgICAgICAge1xuICAgICAgICAgICAgdGl0bGU6ICdpcycsXG4gICAgICAgICAgICB2YWx1ZTogJ2VxdWFsJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0aXRsZTogYGlzbid0YCxcbiAgICAgICAgICAgIHZhbHVlOiAnbm90LWVxdWFsJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0aXRsZTogJ2xlc3MgdGhhbicsXG4gICAgICAgICAgICB2YWx1ZTogJ2xlc3MtdGhhbidcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdGl0bGU6ICdsZXNzIHRoYW4gb3IgZXF1YWwnLFxuICAgICAgICAgICAgdmFsdWU6ICdsZXNzLXRoYW4tZXF1YWwnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRpdGxlOiAnZ3JlYXRlciB0aGFuJyxcbiAgICAgICAgICAgIHZhbHVlOiAnZ3JlYXRlci10aGFuJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0aXRsZTogJ2dyZWF0ZXIgdGhhbiBvciBlcXVhbCcsXG4gICAgICAgICAgICB2YWx1ZTogJ2dyZWF0ZXItdGhhbi1lcXVhbCdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdGl0bGU6ICdpcyBlbXB0eScsXG4gICAgICAgICAgICB2YWx1ZTogJ2lzLWVtcHR5J1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0aXRsZTogYGlzbid0IGVtcHR5YCxcbiAgICAgICAgICAgIHZhbHVlOiAnaXMtbm90LWVtcHR5J1xuICAgICAgICB9XG4gICAgXTtcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgICAgICBzdXBlcihjZHIpO1xuICAgIH1cbiAgICBwcml2YXRlIHNlYXJjaENoYW5nZU9ic2VydmVyOiBhbnk7XG4gICAgb25PcGVyYXRvckNoYW5nZShlKSB7XG5cbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KCk7XG5cbiAgICB9XG4gICAgb25UZXh0Q2hhbmdlKGUpIHtcbiAgICAgICAgLy8gVE9ETzogQ2hlY2sgdGhpcyBtZXRob2Qgd29yayBjb3JyZWN0bHlcbiAgICAgICAgaWYgKCF0aGlzLnNlYXJjaENoYW5nZU9ic2VydmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZXIgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoQ2hhbmdlT2JzZXJ2ZXIgPSBvYnNlcnZlcjtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDUwMCkpXG4gICAgICAgICAgICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKGMgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlYXJjaENoYW5nZU9ic2VydmVyLm5leHQoZSk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbmRpdGlvbigpOiBBWEZpbHRlckNvbmRpdGlvbiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb25kaXRpb246IHRoaXMub3BlcmF0b3IsXG4gICAgICAgICAgICBmaWVsZDogdGhpcy5maWVsZCxcbiAgICAgICAgICAgIGRhdGFUeXBlOiAnbnVtYmVyJyxcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLnZhbHVlXG4gICAgICAgIH07XG4gICAgfVxuXG59XG4iXX0=