@acorex/data-grid 6.5.70 → 6.5.72

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. package/README.md +7 -2
  2. package/esm2022/acorex-data-grid.mjs +5 -0
  3. package/esm2022/index.mjs +18 -0
  4. package/esm2022/lib/data-grid/columns/check-column.component.mjs +109 -0
  5. package/esm2022/lib/data-grid/columns/column.component.mjs +168 -0
  6. package/esm2022/lib/data-grid/columns/command-column.component.mjs +115 -0
  7. package/esm2022/lib/data-grid/columns/date-column.component.mjs +115 -0
  8. package/esm2022/lib/data-grid/columns/row-number-column.component.mjs +38 -0
  9. package/esm2022/lib/data-grid/columns/selection-column.component.mjs +43 -0
  10. package/esm2022/lib/data-grid/columns/text-column.component.mjs +97 -0
  11. package/esm2022/lib/data-grid/datagrid.component.mjs +721 -0
  12. package/esm2022/lib/data-grid/datagrid.events.mjs +2 -0
  13. package/esm2022/lib/data-grid/datagrid.module.mjs +143 -0
  14. package/esm2022/lib/data-grid/filters/filter.component.mjs +39 -0
  15. package/esm2022/lib/data-grid/templates/cell-template.component.mjs +58 -0
  16. package/esm2022/lib/data-grid/templates/detail-template.component.mjs +51 -0
  17. package/esm2022/lib/data-grid/templates/row-template.component.mjs +48 -0
  18. package/esm2022/lib/data-lov/data-lov-popup/data-lov-popup.component.mjs +121 -0
  19. package/esm2022/lib/data-lov/data-lov.component.mjs +175 -0
  20. package/esm2022/lib/data-lov/data-lov.module.mjs +23 -0
  21. package/{fesm2020 → fesm2022}/acorex-data-grid.mjs +380 -319
  22. package/fesm2022/acorex-data-grid.mjs.map +1 -0
  23. package/lib/data-grid/columns/check-column.component.d.ts +4 -4
  24. package/lib/data-grid/columns/column.component.d.ts +1 -1
  25. package/lib/data-grid/columns/command-column.component.d.ts +3 -3
  26. package/lib/data-grid/columns/date-column.component.d.ts +2 -2
  27. package/lib/data-grid/columns/row-number-column.component.d.ts +1 -1
  28. package/lib/data-grid/columns/selection-column.component.d.ts +1 -1
  29. package/lib/data-grid/columns/text-column.component.d.ts +3 -3
  30. package/lib/data-grid/datagrid.component.d.ts +1 -1
  31. package/lib/data-grid/filters/filter.component.d.ts +1 -1
  32. package/lib/data-grid/templates/cell-template.component.d.ts +2 -2
  33. package/lib/data-grid/templates/detail-template.component.d.ts +2 -2
  34. package/lib/data-grid/templates/row-template.component.d.ts +2 -2
  35. package/lib/data-lov/data-lov-popup/data-lov-popup.component.d.ts +1 -1
  36. package/lib/data-lov/data-lov.component.d.ts +1 -1
  37. package/package.json +12 -21
  38. package/acorex-data-grid.d.ts +0 -5
  39. package/esm2020/acorex-data-grid.mjs +0 -5
  40. package/esm2020/lib/data-grid/columns/check-column.component.mjs +0 -117
  41. package/esm2020/lib/data-grid/columns/column.component.mjs +0 -164
  42. package/esm2020/lib/data-grid/columns/command-column.component.mjs +0 -117
  43. package/esm2020/lib/data-grid/columns/date-column.component.mjs +0 -111
  44. package/esm2020/lib/data-grid/columns/row-number-column.component.mjs +0 -37
  45. package/esm2020/lib/data-grid/columns/selection-column.component.mjs +0 -42
  46. package/esm2020/lib/data-grid/columns/text-column.component.mjs +0 -89
  47. package/esm2020/lib/data-grid/datagrid.component.mjs +0 -698
  48. package/esm2020/lib/data-grid/datagrid.events.mjs +0 -2
  49. package/esm2020/lib/data-grid/datagrid.module.mjs +0 -145
  50. package/esm2020/lib/data-grid/filters/filter.component.mjs +0 -39
  51. package/esm2020/lib/data-grid/templates/cell-template.component.mjs +0 -53
  52. package/esm2020/lib/data-grid/templates/detail-template.component.mjs +0 -46
  53. package/esm2020/lib/data-grid/templates/row-template.component.mjs +0 -43
  54. package/esm2020/lib/data-lov/data-lov-popup/data-lov-popup.component.mjs +0 -114
  55. package/esm2020/lib/data-lov/data-lov.component.mjs +0 -165
  56. package/esm2020/lib/data-lov/data-lov.module.mjs +0 -23
  57. package/esm2020/public-api.mjs +0 -18
  58. package/fesm2015/acorex-data-grid.mjs +0 -1915
  59. package/fesm2015/acorex-data-grid.mjs.map +0 -1
  60. package/fesm2020/acorex-data-grid.mjs.map +0 -1
  61. /package/{public-api.d.ts → index.d.ts} +0 -0
@@ -0,0 +1,175 @@
1
+ import { Component, Input, ContentChildren, QueryList, Output, EventEmitter, ContentChild, ViewChild, ViewEncapsulation, ElementRef, TemplateRef } from '@angular/core';
2
+ import { AXPopupService, AXValidation } from '@acorex/components';
3
+ import { AXDataSourceComponent, AXSelectBoxComponent, AXValidatableComponent } from '@acorex/components';
4
+ import { AXDataLovPopupComponent } from './data-lov-popup/data-lov-popup.component';
5
+ import { AXGridDataColumn } from '../data-grid/columns/column.component';
6
+ import { AXConfig } from '@acorex/core';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@acorex/components";
9
+ export class AXLOVComponent extends AXValidatableComponent {
10
+ popup;
11
+ ref;
12
+ _contentValidation;
13
+ _validation;
14
+ get validation() {
15
+ return this._validation ? this._validation : this._contentValidation;
16
+ }
17
+ set validation(v) {
18
+ this._validation = v;
19
+ }
20
+ constructor(popup, ref) {
21
+ super();
22
+ this.popup = popup;
23
+ this.ref = ref;
24
+ }
25
+ selectBox;
26
+ dataSource;
27
+ columns;
28
+ rowTemplate;
29
+ textField = '';
30
+ allowSearch = true;
31
+ valueField = '';
32
+ hasChildField = 'null';
33
+ allowNull = true;
34
+ popupSize = 'md';
35
+ pagination = true;
36
+ selectedItems = [];
37
+ // @Input()
38
+ // selectedValues: any[] = [];
39
+ readonly = false;
40
+ disabled = false;
41
+ chipsWidth = '';
42
+ size = 'md';
43
+ caption;
44
+ mode = 'single';
45
+ placeholder;
46
+ onSelectionChange = new EventEmitter();
47
+ rtl = AXConfig.get('layout.rtl');
48
+ focus() {
49
+ this.selectBox.focus();
50
+ }
51
+ refresh() {
52
+ this.selectBox.refresh();
53
+ }
54
+ handleButtonClick() {
55
+ this.open();
56
+ }
57
+ ngOnInit() {
58
+ if (this.rtl == null) {
59
+ this.rtl = window.getComputedStyle(this.ref.nativeElement, null).getPropertyValue('direction') === 'rtl';
60
+ }
61
+ // this.selectVal = this.selectedValues;
62
+ this.onSelectionChange.subscribe((c) => {
63
+ this.clearValidationStyle(this.ref.nativeElement);
64
+ });
65
+ }
66
+ ngAfterContentInit() {
67
+ this.initValidation(this.ref, 'selectedItems', this.validation);
68
+ }
69
+ handleSelectChange(e) {
70
+ this.onSelectionChange.emit({ data: this.selectedItems, component: this, htmlElement: this.ref.nativeElement });
71
+ }
72
+ open() {
73
+ return new Promise((resolve) => {
74
+ this.selectBox.dropdown.close();
75
+ this.popup
76
+ .open(AXDataLovPopupComponent, {
77
+ size: this.popupSize,
78
+ // closable: false,
79
+ data: {
80
+ dataSource: this.dataSource,
81
+ selectionMode: this.mode,
82
+ columns: this.columns.toArray(),
83
+ // selectedItems: this.selectedValues,
84
+ selectedItems: this.selectedItems,
85
+ keyField: this.valueField,
86
+ allowNull: this.allowNull,
87
+ hasChildField: this.hasChildField,
88
+ rtl: this.rtl,
89
+ pagination: this.pagination
90
+ },
91
+ title: this.caption
92
+ // size: this.size,
93
+ })
94
+ .then((c) => {
95
+ if (c.data) {
96
+ // this.selectedValues = [];
97
+ this.selectedItems = [];
98
+ c.data.forEach((elm) => {
99
+ this.selectedItems.push(elm);
100
+ });
101
+ // this.selectedItems = c.data;
102
+ // this.selectBox.refresh();
103
+ this.onSelectionChange.emit({ data: this.selectedItems, component: this, htmlElement: this.ref.nativeElement });
104
+ if (resolve) {
105
+ resolve(c.data);
106
+ }
107
+ }
108
+ else {
109
+ if (resolve) {
110
+ resolve(this.selectedItems);
111
+ }
112
+ }
113
+ this.selectBox.refresh();
114
+ });
115
+ });
116
+ }
117
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXLOVComponent, deps: [{ token: i1.AXPopupService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
118
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AXLOVComponent, selector: "ax-lov", inputs: { validation: "validation", textField: "textField", allowSearch: "allowSearch", valueField: "valueField", hasChildField: "hasChildField", allowNull: "allowNull", popupSize: "popupSize", pagination: "pagination", selectedItems: "selectedItems", readonly: "readonly", disabled: "disabled", chipsWidth: "chipsWidth", size: "size", caption: "caption", mode: "mode", placeholder: "placeholder", rtl: "rtl" }, outputs: { onSelectionChange: "onSelectionChange" }, host: { styleAttribute: "width: 100%" }, providers: [{ provide: AXValidatableComponent, useExisting: AXLOVComponent }], queries: [{ propertyName: "_contentValidation", first: true, predicate: AXValidation, descendants: true, static: true }, { propertyName: "dataSource", first: true, predicate: AXDataSourceComponent, descendants: true, static: true }, { propertyName: "rowTemplate", first: true, predicate: ["itemTemplate"], descendants: true, static: true }, { propertyName: "columns", predicate: AXGridDataColumn }], viewQueries: [{ propertyName: "selectBox", first: true, predicate: ["selectBox"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ax-select-box [rowInputTemplate]=\"rowTemplate\" [rtl]=\"rtl\" [allowSearch]=\"allowSearch\" #selectBox [showDropDownButton]=\"false\" [allowNull]=\"allowNull\"\n [remoteOperation]=\"true\" [placeholder]=\"placeholder\" [size]=\"size\" [textField]=\"textField\" [valueField]=\"valueField\"\n [disabled]=\"disabled\" [mode]=\"mode\" [(selectedItems)]=\"selectedItems\"\n (selectionChanged)=\"handleSelectChange($event)\" [dataSource]=\"dataSource\">\n <ng-container start>\n <ng-content select=\"[start]\">\n </ng-content>\n </ng-container>\n <ng-container end>\n <ax-button icon=\"far fa-bars icon\" [disabled]=\"disabled\" type=\"light blank\" (click)=\"handleButtonClick()\" end\n [tabIndex]=\"-1\">\n </ax-button>\n <ng-content select=\"[end]\">\n </ng-content>\n </ng-container>\n</ax-select-box>\n\n\n<!-- <ax-select-box2 [rtl]=\"rtl\" [allowSearch]=\"allowSearch\" #selectBox [showDropDownButton]=\"false\" [allowNull]=\"allowNull\"\n [remoteOperation]=\"true\" [placeholder]=\"placeholder\" [size]=\"size\" [textField]=\"textField\" [valueField]=\"valueField\"\n [disabled]=\"disabled\" [selectionMode]=\"mode\" (onValueChanged)=\"handleSelectChange($event)\" [dataSource]=\"dataSource\"\n [(value)]=\"selectedItems\" selectionDataMode=\"item\">\n <ng-container start>\n <ng-content select=\"[start]\">\n </ng-content>\n </ng-container>\n <ng-container end>\n <ax-button icon=\"far fa-bars icon\" [disabled]=\"disabled\" type=\"primary blank\" (click)=\"handleButtonClick()\" end\n [tabIndex]=\"-1\">\n </ax-button>\n <ng-content select=\"[end]\">\n </ng-content>\n </ng-container>\n</ax-select-box2> -->\n\n\n<!-- <div class=\"ax-lov-box\" [style.display]=\"mode=='hidden' ? 'none':'unset'\">\n <div class=\"ax-field-set\">\n <div class=\"ax-field-set-wrapper\" [ngClass]=\"{ 'no-label': !label }\">\n <fieldset [ngClass]=\"{ 'input-focused': isFocused, 'input-error': errorText }\">\n <legend *ngIf=\"label\">\n {{ label }}\n </legend>\n </fieldset>\n <input type=\"text\" [(ngModel)]=\"text\" [placeholder]=\"placeholder\" (keyup)=\"handleKeyEvent($event)\"\n (blur)=\"handleBlurEvent($event)\" (focus)=\"handleFocusEvent($event)\" class=\"ax-text-box\" disabled />\n <div class=\"ax-field-set-button\">\n <button *ngIf=\"text && allowClear\" type=\"button\" class=\"btn btn-light\" (click)=\"clearText()\">\n <i class=\"far fa-times\"></i>\n </button>\n <button type=\"button\" class=\" btn btn-primary\" (click)=\"handleButtonClick($event)\">\n <i class=\"far fa-check-circle\"></i>\n </button>\n </div>\n </div>\n </div>\n <div class=\"validation-text\" *ngIf=\"errorText\">\n {{ errorText }}\n </div>\n\n</div> -->", dependencies: [{ kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["type", "icon", "submitBehavior", "cancelBehavior", "block", "loading", "selected"] }, { kind: "component", type: i1.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["showDropDownButton", "rowInputTemplate", "showCheckBox", "readonly", "rtl", "disabled", "placeholder", "size", "allowNull", "textAlign", "bufferSize", "remoteOperation", "fitParent", "dropdownWidth", "onDemandTranslate", "dataSource", "validation", "disabledCallback", "allowSearch", "textField", "valueField", "disabledField", "mode", "items", "selectedItems", "selectedValues"], outputs: ["dropdownToggle", "itemsChange", "onBlur", "onFocus", "selectionChanged", "selectedItemsChange", "selectedValuesChange"] }], encapsulation: i0.ViewEncapsulation.None });
119
+ }
120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXLOVComponent, decorators: [{
121
+ type: Component,
122
+ args: [{ selector: 'ax-lov', encapsulation: ViewEncapsulation.None, host: { style: 'width: 100%' }, providers: [{ provide: AXValidatableComponent, useExisting: AXLOVComponent }], template: "<ax-select-box [rowInputTemplate]=\"rowTemplate\" [rtl]=\"rtl\" [allowSearch]=\"allowSearch\" #selectBox [showDropDownButton]=\"false\" [allowNull]=\"allowNull\"\n [remoteOperation]=\"true\" [placeholder]=\"placeholder\" [size]=\"size\" [textField]=\"textField\" [valueField]=\"valueField\"\n [disabled]=\"disabled\" [mode]=\"mode\" [(selectedItems)]=\"selectedItems\"\n (selectionChanged)=\"handleSelectChange($event)\" [dataSource]=\"dataSource\">\n <ng-container start>\n <ng-content select=\"[start]\">\n </ng-content>\n </ng-container>\n <ng-container end>\n <ax-button icon=\"far fa-bars icon\" [disabled]=\"disabled\" type=\"light blank\" (click)=\"handleButtonClick()\" end\n [tabIndex]=\"-1\">\n </ax-button>\n <ng-content select=\"[end]\">\n </ng-content>\n </ng-container>\n</ax-select-box>\n\n\n<!-- <ax-select-box2 [rtl]=\"rtl\" [allowSearch]=\"allowSearch\" #selectBox [showDropDownButton]=\"false\" [allowNull]=\"allowNull\"\n [remoteOperation]=\"true\" [placeholder]=\"placeholder\" [size]=\"size\" [textField]=\"textField\" [valueField]=\"valueField\"\n [disabled]=\"disabled\" [selectionMode]=\"mode\" (onValueChanged)=\"handleSelectChange($event)\" [dataSource]=\"dataSource\"\n [(value)]=\"selectedItems\" selectionDataMode=\"item\">\n <ng-container start>\n <ng-content select=\"[start]\">\n </ng-content>\n </ng-container>\n <ng-container end>\n <ax-button icon=\"far fa-bars icon\" [disabled]=\"disabled\" type=\"primary blank\" (click)=\"handleButtonClick()\" end\n [tabIndex]=\"-1\">\n </ax-button>\n <ng-content select=\"[end]\">\n </ng-content>\n </ng-container>\n</ax-select-box2> -->\n\n\n<!-- <div class=\"ax-lov-box\" [style.display]=\"mode=='hidden' ? 'none':'unset'\">\n <div class=\"ax-field-set\">\n <div class=\"ax-field-set-wrapper\" [ngClass]=\"{ 'no-label': !label }\">\n <fieldset [ngClass]=\"{ 'input-focused': isFocused, 'input-error': errorText }\">\n <legend *ngIf=\"label\">\n {{ label }}\n </legend>\n </fieldset>\n <input type=\"text\" [(ngModel)]=\"text\" [placeholder]=\"placeholder\" (keyup)=\"handleKeyEvent($event)\"\n (blur)=\"handleBlurEvent($event)\" (focus)=\"handleFocusEvent($event)\" class=\"ax-text-box\" disabled />\n <div class=\"ax-field-set-button\">\n <button *ngIf=\"text && allowClear\" type=\"button\" class=\"btn btn-light\" (click)=\"clearText()\">\n <i class=\"far fa-times\"></i>\n </button>\n <button type=\"button\" class=\" btn btn-primary\" (click)=\"handleButtonClick($event)\">\n <i class=\"far fa-check-circle\"></i>\n </button>\n </div>\n </div>\n </div>\n <div class=\"validation-text\" *ngIf=\"errorText\">\n {{ errorText }}\n </div>\n\n</div> -->" }]
123
+ }], ctorParameters: function () { return [{ type: i1.AXPopupService }, { type: i0.ElementRef }]; }, propDecorators: { _contentValidation: [{
124
+ type: ContentChild,
125
+ args: [AXValidation, { static: true }]
126
+ }], validation: [{
127
+ type: Input
128
+ }], selectBox: [{
129
+ type: ViewChild,
130
+ args: ['selectBox', { static: true }]
131
+ }], dataSource: [{
132
+ type: ContentChild,
133
+ args: [AXDataSourceComponent, { static: true }]
134
+ }], columns: [{
135
+ type: ContentChildren,
136
+ args: [AXGridDataColumn]
137
+ }], rowTemplate: [{
138
+ type: ContentChild,
139
+ args: ['itemTemplate', { static: true }]
140
+ }], textField: [{
141
+ type: Input
142
+ }], allowSearch: [{
143
+ type: Input
144
+ }], valueField: [{
145
+ type: Input
146
+ }], hasChildField: [{
147
+ type: Input
148
+ }], allowNull: [{
149
+ type: Input
150
+ }], popupSize: [{
151
+ type: Input
152
+ }], pagination: [{
153
+ type: Input
154
+ }], selectedItems: [{
155
+ type: Input
156
+ }], readonly: [{
157
+ type: Input
158
+ }], disabled: [{
159
+ type: Input
160
+ }], chipsWidth: [{
161
+ type: Input
162
+ }], size: [{
163
+ type: Input
164
+ }], caption: [{
165
+ type: Input
166
+ }], mode: [{
167
+ type: Input
168
+ }], placeholder: [{
169
+ type: Input
170
+ }], onSelectionChange: [{
171
+ type: Output
172
+ }], rtl: [{
173
+ type: Input
174
+ }] } });
175
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1sb3YuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWdyaWQvc3JjL2xpYi9kYXRhLWxvdi9kYXRhLWxvdi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtZ3JpZC9zcmMvbGliL2RhdGEtbG92L2RhdGEtbG92LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLGVBQWUsRUFDZixTQUFTLEVBQ1QsTUFBTSxFQUNOLFlBQVksRUFDWixZQUFZLEVBQ1osU0FBUyxFQUNULGlCQUFpQixFQUNqQixVQUFVLEVBQ1YsV0FBVyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQStELFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQy9ILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxvQkFBb0IsRUFBZSxzQkFBc0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7OztBQVN4QyxNQUFNLE9BQU8sY0FBZSxTQUFRLHNCQUFzQjtJQWFwQztJQUErQjtJQVgzQyxrQkFBa0IsQ0FBZTtJQUNqQyxXQUFXLENBQWU7SUFFbEMsSUFDVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ3ZFLENBQUM7SUFDRCxJQUFXLFVBQVUsQ0FBQyxDQUFlO1FBQ25DLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxD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QUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkFJTixPQUFPO3NCQUROLEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixpQkFBaUI7c0JBRGhCLE1BQU07Z0JBSVAsR0FBRztzQkFERixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBRdWVyeUxpc3QsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBDb250ZW50Q2hpbGQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIEVsZW1lbnRSZWYsXG4gIFRlbXBsYXRlUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQb3B1cFNlcnZpY2UsIEFYQmFzZUlucHV0Q29tcG9uZW50LCBBWEJhc2VTaXphYmxlQ29tcG9uZW50LCBBWEVsZW1lbnRTaXplLCBBWFZhbGlkYXRpb24gfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQVhEYXRhU291cmNlQ29tcG9uZW50LCBBWFNlbGVjdEJveENvbXBvbmVudCwgQVhEYXRhRXZlbnQsIEFYVmFsaWRhdGFibGVDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQVhEYXRhTG92UG9wdXBDb21wb25lbnQgfSBmcm9tICcuL2RhdGEtbG92LXBvcHVwL2RhdGEtbG92LXBvcHVwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWEdyaWREYXRhQ29sdW1uIH0gZnJvbSAnLi4vZGF0YS1ncmlkL2NvbHVtbnMvY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWENvbmZpZyB9IGZyb20gJ0BhY29yZXgvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWxvdicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhLWxvdi5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHsgc3R5bGU6ICd3aWR0aDogMTAwJScgfSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBBWFZhbGlkYXRhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhMT1ZDb21wb25lbnQgfV1cbn0pXG5leHBvcnQgY2xhc3MgQVhMT1ZDb21wb25lbnQgZXh0ZW5kcyBBWFZhbGlkYXRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQVhCYXNlU2l6YWJsZUNvbXBvbmVudCwgQVhCYXNlSW5wdXRDb21wb25lbnQge1xuICBAQ29udGVudENoaWxkKEFYVmFsaWRhdGlvbiwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJpdmF0ZSBfY29udGVudFZhbGlkYXRpb246IEFYVmFsaWRhdGlvbjtcbiAgcHJpdmF0ZSBfdmFsaWRhdGlvbjogQVhWYWxpZGF0aW9uO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgdmFsaWRhdGlvbigpOiBBWFZhbGlkYXRpb24ge1xuICAgIHJldHVybiB0aGlzLl92YWxpZGF0aW9uID8gdGhpcy5fdmFsaWRhdGlvbiA6IHRoaXMuX2NvbnRlbnRWYWxpZGF0aW9uO1xuICB9XG4gIHB1YmxpYyBzZXQgdmFsaWRhdGlvbih2OiBBWFZhbGlkYXRpb24pIHtcbiAgICB0aGlzLl92YWxpZGF0aW9uID0gdjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcG9wdXA6IEFYUG9wdXBTZXJ2aWNlLCBwcml2YXRlIHJlZjogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBAVmlld0NoaWxkKCdzZWxlY3RCb3gnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBzZWxlY3RCb3g6IEFYU2VsZWN0Qm94Q29tcG9uZW50O1xuXG4gIEBDb250ZW50Q2hpbGQoQVhEYXRhU291cmNlQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBkYXRhU291cmNlOiBBWERhdGFTb3VyY2VDb21wb25lbnQ7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihBWEdyaWREYXRhQ29sdW1uKVxuICBwcml2YXRlIGNvbHVtbnM6IFF1ZXJ5TGlzdDxBWEdyaWREYXRhQ29sdW1uPjtcblxuICBAQ29udGVudENoaWxkKCdpdGVtVGVtcGxhdGUnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICByb3dUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBASW5wdXQoKVxuICB0ZXh0RmllbGQ6IHN0cmluZyA9ICcnO1xuXG4gIEBJbnB1dCgpXG4gIGFsbG93U2VhcmNoOiBib29sZWFuID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICB2YWx1ZUZpZWxkOiBzdHJpbmcgPSAnJztcblxuICBASW5wdXQoKVxuICBoYXNDaGlsZEZpZWxkOiBzdHJpbmcgPSAnbnVsbCc7XG5cbiAgQElucHV0KClcbiAgYWxsb3dOdWxsOiBib29sZWFuID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwb3B1cFNpemU6ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICdmdWxsJyA9ICdtZCc7XG5cbiAgQElucHV0KClcbiAgcGFnaW5hdGlvbjpib29sZWFuID10cnVlO1xuICBASW5wdXQoKVxuICBzZWxlY3RlZEl0ZW1zOiBhbnlbXSA9IFtdO1xuXG4gIC8vIEBJbnB1dCgpXG4gIC8vIHNlbGVjdGVkVmFsdWVzOiBhbnlbXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBjaGlwc1dpZHRoOiBzdHJpbmcgPSAnJztcblxuICBASW5wdXQoKVxuICBzaXplOiBBWEVsZW1lbnRTaXplID0gJ21kJztcblxuICBASW5wdXQoKVxuICBjYXB0aW9uOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgbW9kZTogJ3NpbmdsZScgfCAnbXVsdGlwbGUnID0gJ3NpbmdsZSc7XG5cbiAgQElucHV0KClcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICBAT3V0cHV0KClcbiAgb25TZWxlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxBWERhdGFFdmVudDxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhEYXRhRXZlbnQ8YW55Pj4oKTtcblxuICBASW5wdXQoKVxuICBydGw6IGJvb2xlYW4gPSBBWENvbmZpZy5nZXQoJ2xheW91dC5ydGwnKTtcblxuICBmb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdEJveC5mb2N1cygpO1xuICB9XG5cbiAgcmVmcmVzaCgpIHtcbiAgICB0aGlzLnNlbGVjdEJveC5yZWZyZXNoKCk7XG4gIH1cblxuICBoYW5kbGVCdXR0b25DbGljaygpIHtcbiAgICB0aGlzLm9wZW4oKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJ0bCA9PSBudWxsKSB7XG4gICAgICB0aGlzLnJ0bCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQsIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ2RpcmVjdGlvbicpID09PSAncnRsJztcbiAgICB9XG4gICAgLy8gIHRoaXMuc2VsZWN0VmFsID0gdGhpcy5zZWxlY3RlZFZhbHVlcztcbiAgICB0aGlzLm9uU2VsZWN0aW9uQ2hhbmdlLnN1YnNjcmliZSgoYykgPT4ge1xuICAgICAgdGhpcy5jbGVhclZhbGlkYXRpb25TdHlsZSh0aGlzLnJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRWYWxpZGF0aW9uKHRoaXMucmVmLCAnc2VsZWN0ZWRJdGVtcycsIHRoaXMudmFsaWRhdGlvbik7XG4gIH1cblxuICBoYW5kbGVTZWxlY3RDaGFuZ2UoZSkge1xuICAgIHRoaXMub25TZWxlY3Rpb25DaGFuZ2UuZW1pdCh7IGRhdGE6IHRoaXMuc2VsZWN0ZWRJdGVtcywgY29tcG9uZW50OiB0aGlzLCBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudCB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuKCk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICB0aGlzLnNlbGVjdEJveC5kcm9wZG93bi5jbG9zZSgpO1xuICAgICAgdGhpcy5wb3B1cFxuICAgICAgICAub3BlbihBWERhdGFMb3ZQb3B1cENvbXBvbmVudCwge1xuICAgICAgICAgIHNpemU6IHRoaXMucG9wdXBTaXplLFxuICAgICAgICAgIC8vICAgY2xvc2FibGU6IGZhbHNlLFxuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGRhdGFTb3VyY2U6IHRoaXMuZGF0YVNvdXJjZSxcbiAgICAgICAgICAgIHNlbGVjdGlvbk1vZGU6IHRoaXMubW9kZSxcbiAgICAgICAgICAgIGNvbHVtbnM6IHRoaXMuY29sdW1ucy50b0FycmF5KCksXG4gICAgICAgICAgICAvLyAgc2VsZWN0ZWRJdGVtczogdGhpcy5zZWxlY3RlZFZhbHVlcyxcbiAgICAgICAgICAgIHNlbGVjdGVkSXRlbXM6IHRoaXMuc2VsZWN0ZWRJdGVtcyxcbiAgICAgICAgICAgIGtleUZpZWxkOiB0aGlzLnZhbHVlRmllbGQsXG4gICAgICAgICAgICBhbGxvd051bGw6IHRoaXMuYWxsb3dOdWxsLFxuICAgICAgICAgICAgaGFzQ2hpbGRGaWVsZDogdGhpcy5oYXNDaGlsZEZpZWxkLFxuICAgICAgICAgICAgcnRsOiB0aGlzLnJ0bCxcbiAgICAgICAgICAgIHBhZ2luYXRpb246dGhpcy5wYWdpbmF0aW9uXG4gICAgICAgICAgfSxcbiAgICAgICAgICB0aXRsZTogdGhpcy5jYXB0aW9uXG4gICAgICAgICAgLy8gc2l6ZTogdGhpcy5zaXplLFxuICAgICAgICB9KVxuICAgICAgICAudGhlbigoYykgPT4ge1xuICAgICAgICAgIGlmIChjLmRhdGEpIHtcbiAgICAgICAgICAgIC8vIHRoaXMuc2VsZWN0ZWRWYWx1ZXMgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgICAgICAgICAgYy5kYXRhLmZvckVhY2goKGVsbSkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMucHVzaChlbG0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gYy5kYXRhO1xuICAgICAgICAgICAgLy8gIHRoaXMuc2VsZWN0Qm94LnJlZnJlc2goKTtcbiAgICAgICAgICAgIHRoaXMub25TZWxlY3Rpb25DaGFuZ2UuZW1pdCh7IGRhdGE6IHRoaXMuc2VsZWN0ZWRJdGVtcywgY29tcG9uZW50OiB0aGlzLCBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudCB9KTtcbiAgICAgICAgICAgIGlmIChyZXNvbHZlKSB7XG4gICAgICAgICAgICAgIHJlc29sdmUoYy5kYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHJlc29sdmUpIHtcbiAgICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuc2VsZWN0Qm94LnJlZnJlc2goKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxheC1zZWxlY3QtYm94IFtyb3dJbnB1dFRlbXBsYXRlXT1cInJvd1RlbXBsYXRlXCIgW3J0bF09XCJydGxcIiBbYWxsb3dTZWFyY2hdPVwiYWxsb3dTZWFyY2hcIiAjc2VsZWN0Qm94IFtzaG93RHJvcERvd25CdXR0b25dPVwiZmFsc2VcIiBbYWxsb3dOdWxsXT1cImFsbG93TnVsbFwiXG4gICAgW3JlbW90ZU9wZXJhdGlvbl09XCJ0cnVlXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW3NpemVdPVwic2l6ZVwiIFt0ZXh0RmllbGRdPVwidGV4dEZpZWxkXCIgW3ZhbHVlRmllbGRdPVwidmFsdWVGaWVsZFwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW21vZGVdPVwibW9kZVwiIFsoc2VsZWN0ZWRJdGVtcyldPVwic2VsZWN0ZWRJdGVtc1wiXG4gICAgKHNlbGVjdGlvbkNoYW5nZWQpPVwiaGFuZGxlU2VsZWN0Q2hhbmdlKCRldmVudClcIiBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCI+XG4gICAgPG5nLWNvbnRhaW5lciBzdGFydD5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3N0YXJ0XVwiPlxuICAgICAgICA8L25nLWNvbnRlbnQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciBlbmQ+XG4gICAgICAgIDxheC1idXR0b24gaWNvbj1cImZhciBmYS1iYXJzIGljb25cIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiB0eXBlPVwibGlnaHQgYmxhbmtcIiAoY2xpY2spPVwiaGFuZGxlQnV0dG9uQ2xpY2soKVwiIGVuZFxuICAgICAgICAgICAgW3RhYkluZGV4XT1cIi0xXCI+XG4gICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZW5kXVwiPlxuICAgICAgICA8L25nLWNvbnRlbnQ+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2F4LXNlbGVjdC1ib3g+XG5cblxuPCEtLSA8YXgtc2VsZWN0LWJveDIgW3J0bF09XCJydGxcIiBbYWxsb3dTZWFyY2hdPVwiYWxsb3dTZWFyY2hcIiAjc2VsZWN0Qm94IFtzaG93RHJvcERvd25CdXR0b25dPVwiZmFsc2VcIiBbYWxsb3dOdWxsXT1cImFsbG93TnVsbFwiXG4gICAgW3JlbW90ZU9wZXJhdGlvbl09XCJ0cnVlXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW3NpemVdPVwic2l6ZVwiIFt0ZXh0RmllbGRdPVwidGV4dEZpZWxkXCIgW3ZhbHVlRmllbGRdPVwidmFsdWVGaWVsZFwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3NlbGVjdGlvbk1vZGVdPVwibW9kZVwiIChvblZhbHVlQ2hhbmdlZCk9XCJoYW5kbGVTZWxlY3RDaGFuZ2UoJGV2ZW50KVwiIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIlxuICAgIFsodmFsdWUpXT1cInNlbGVjdGVkSXRlbXNcIiBzZWxlY3Rpb25EYXRhTW9kZT1cIml0ZW1cIj5cbiAgICA8bmctY29udGFpbmVyIHN0YXJ0PlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc3RhcnRdXCI+XG4gICAgICAgIDwvbmctY29udGVudD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyIGVuZD5cbiAgICAgICAgPGF4LWJ1dHRvbiBpY29uPVwiZmFyIGZhLWJhcnMgaWNvblwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIHR5cGU9XCJwcmltYXJ5IGJsYW5rXCIgKGNsaWNrKT1cImhhbmRsZUJ1dHRvbkNsaWNrKClcIiBlbmRcbiAgICAgICAgICAgIFt0YWJJbmRleF09XCItMVwiPlxuICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2VuZF1cIj5cbiAgICAgICAgPC9uZy1jb250ZW50PlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9heC1zZWxlY3QtYm94Mj4gLS0+XG5cblxuPCEtLSA8ZGl2IGNsYXNzPVwiYXgtbG92LWJveFwiIFtzdHlsZS5kaXNwbGF5XT1cIm1vZGU9PSdoaWRkZW4nID8gJ25vbmUnOid1bnNldCdcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtZmllbGQtc2V0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1maWVsZC1zZXQtd3JhcHBlclwiIFtuZ0NsYXNzXT1cInsgJ25vLWxhYmVsJzogIWxhYmVsIH1cIj5cbiAgICAgICAgICAgIDxmaWVsZHNldCBbbmdDbGFzc109XCJ7ICdpbnB1dC1mb2N1c2VkJzogaXNGb2N1c2VkLCAnaW5wdXQtZXJyb3InOiBlcnJvclRleHQgfVwiPlxuICAgICAgICAgICAgICAgIDxsZWdlbmQgKm5nSWY9XCJsYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBsYWJlbCB9fVxuICAgICAgICAgICAgICAgIDwvbGVnZW5kPlxuICAgICAgICAgICAgPC9maWVsZHNldD5cbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwidGV4dFwiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIChrZXl1cCk9XCJoYW5kbGVLZXlFdmVudCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoYmx1cik9XCJoYW5kbGVCbHVyRXZlbnQoJGV2ZW50KVwiIChmb2N1cyk9XCJoYW5kbGVGb2N1c0V2ZW50KCRldmVudClcIiBjbGFzcz1cImF4LXRleHQtYm94XCIgZGlzYWJsZWQgLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1maWVsZC1zZXQtYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInRleHQgJiYgYWxsb3dDbGVhclwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tbGlnaHRcIiAoY2xpY2spPVwiY2xlYXJUZXh0KClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtdGltZXNcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCIgYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cImhhbmRsZUJ1dHRvbkNsaWNrKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtY2hlY2stY2lyY2xlXCI+PC9pPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ2YWxpZGF0aW9uLXRleHRcIiAqbmdJZj1cImVycm9yVGV4dFwiPlxuICAgICAgICB7eyBlcnJvclRleHQgfX1cbiAgICA8L2Rpdj5cblxuPC9kaXY+IC0tPiJdfQ==
@@ -0,0 +1,23 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { AXLOVComponent } from './data-lov.component';
4
+ import { FormsModule } from '@angular/forms';
5
+ import { AXDataLovPopupComponent } from './data-lov-popup/data-lov-popup.component';
6
+ import { AXDataGridModule } from '../data-grid/datagrid.module';
7
+ import { AXDataSourceModule, AXButtonModule, AXToolbarModule, AXSearchBoxModule, AXSelectBoxModule } from '@acorex/components';
8
+ import * as i0 from "@angular/core";
9
+ export class AXLOVModule {
10
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXLOVModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: AXLOVModule, declarations: [AXLOVComponent, AXDataLovPopupComponent], imports: [CommonModule, FormsModule, AXDataGridModule, AXDataSourceModule, AXButtonModule, AXToolbarModule, AXSelectBoxModule, AXSearchBoxModule], exports: [AXLOVComponent, AXDataLovPopupComponent] });
12
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXLOVModule, imports: [CommonModule, FormsModule, AXDataGridModule, AXDataSourceModule, AXButtonModule, AXToolbarModule, AXSelectBoxModule, AXSearchBoxModule] });
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXLOVModule, decorators: [{
15
+ type: NgModule,
16
+ args: [{
17
+ declarations: [AXLOVComponent, AXDataLovPopupComponent],
18
+ imports: [CommonModule, FormsModule, AXDataGridModule, AXDataSourceModule, AXButtonModule, AXToolbarModule, AXSelectBoxModule, AXSearchBoxModule],
19
+ exports: [AXLOVComponent, AXDataLovPopupComponent],
20
+ providers: []
21
+ }]
22
+ }] });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1sb3YubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWdyaWQvc3JjL2xpYi9kYXRhLWxvdi9kYXRhLWxvdi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNwRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQVMvSCxNQUFNLE9BQU8sV0FBVzt3R0FBWCxXQUFXO3lHQUFYLFdBQVcsaUJBTEwsY0FBYyxFQUFFLHVCQUF1QixhQUM1QyxZQUFZLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLGFBQ3RJLGNBQWMsRUFBRSx1QkFBdUI7eUdBR3hDLFdBQVcsWUFKVixZQUFZLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCOzs0RkFJdkksV0FBVztrQkFOdkIsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsQ0FBQyxjQUFjLEVBQUUsdUJBQXVCLENBQUM7b0JBQ3ZELE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQztvQkFDakosT0FBTyxFQUFFLENBQUMsY0FBYyxFQUFFLHVCQUF1QixDQUFDO29CQUNsRCxTQUFTLEVBQUUsRUFBRTtpQkFDaEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFYTE9WQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhLWxvdi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBWERhdGFMb3ZQb3B1cENvbXBvbmVudCB9IGZyb20gJy4vZGF0YS1sb3YtcG9wdXAvZGF0YS1sb3YtcG9wdXAuY29tcG9uZW50JztcbmltcG9ydCB7IEFYRGF0YUdyaWRNb2R1bGUgfSBmcm9tICcuLi9kYXRhLWdyaWQvZGF0YWdyaWQubW9kdWxlJztcbmltcG9ydCB7IEFYRGF0YVNvdXJjZU1vZHVsZSwgQVhCdXR0b25Nb2R1bGUsIEFYVG9vbGJhck1vZHVsZSwgQVhTZWFyY2hCb3hNb2R1bGUsIEFYU2VsZWN0Qm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzJztcblxuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW0FYTE9WQ29tcG9uZW50LCBBWERhdGFMb3ZQb3B1cENvbXBvbmVudF0sXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIEFYRGF0YUdyaWRNb2R1bGUsIEFYRGF0YVNvdXJjZU1vZHVsZSwgQVhCdXR0b25Nb2R1bGUsIEFYVG9vbGJhck1vZHVsZSwgQVhTZWxlY3RCb3hNb2R1bGUsIEFYU2VhcmNoQm94TW9kdWxlXSxcbiAgICBleHBvcnRzOiBbQVhMT1ZDb21wb25lbnQsIEFYRGF0YUxvdlBvcHVwQ29tcG9uZW50XSxcbiAgICBwcm92aWRlcnM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIEFYTE9WTW9kdWxlIHsgfSJdfQ==