@ai-table/grid 0.0.2 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- package/components/cell-editors/abstract-cell-editor.component.d.ts +2 -2
- package/components/cell-editors/abstract-cell-editor.component.d.ts.map +1 -1
- package/components/cell-editors/select/select-editor.component.d.ts +15 -0
- package/components/cell-editors/select/select-editor.component.d.ts.map +1 -0
- package/components/field-menu/field-menu.component.d.ts +14 -0
- package/components/field-menu/field-menu.component.d.ts.map +1 -0
- package/components/field-property-editor/field-property-editor.component.d.ts +13 -15
- package/components/field-property-editor/field-property-editor.component.d.ts.map +1 -1
- package/components/index.d.ts +2 -0
- package/components/index.d.ts.map +1 -0
- package/constants/editor.d.ts +1 -1
- package/constants/editor.d.ts.map +1 -1
- package/constants/field.d.ts +20 -0
- package/constants/field.d.ts.map +1 -0
- package/constants/grid.d.ts.map +1 -1
- package/constants/index.d.ts +1 -0
- package/constants/index.d.ts.map +1 -1
- package/core/action/field.d.ts +8 -2
- package/core/action/field.d.ts.map +1 -1
- package/core/action/general.d.ts.map +1 -1
- package/core/action/index.d.ts +5 -0
- package/core/action/index.d.ts.map +1 -1
- package/core/action/record.d.ts +7 -3
- package/core/action/record.d.ts.map +1 -1
- package/core/constants/field.d.ts +6 -8
- package/core/constants/field.d.ts.map +1 -1
- package/core/index.d.ts +1 -0
- package/core/index.d.ts.map +1 -1
- package/core/types/action.d.ts +38 -8
- package/core/types/action.d.ts.map +1 -1
- package/core/types/core.d.ts +36 -10
- package/core/types/core.d.ts.map +1 -1
- package/core/utils/common.d.ts +2 -1
- package/core/utils/common.d.ts.map +1 -1
- package/core/utils/field.d.ts +7 -1
- package/core/utils/field.d.ts.map +1 -1
- package/core/utils/queries.d.ts +4 -2
- package/core/utils/queries.d.ts.map +1 -1
- package/esm2022/components/cell-editors/abstract-cell-editor.component.mjs +11 -9
- package/esm2022/components/cell-editors/select/select-editor.component.mjs +46 -0
- package/esm2022/components/field-menu/field-menu.component.mjs +37 -0
- package/esm2022/components/field-property-editor/field-property-editor.component.mjs +35 -24
- package/esm2022/components/index.mjs +2 -0
- package/esm2022/constants/editor.mjs +8 -8
- package/esm2022/constants/field.mjs +27 -0
- package/esm2022/constants/grid.mjs +5 -5
- package/esm2022/constants/index.mjs +2 -1
- package/esm2022/core/action/field.mjs +43 -2
- package/esm2022/core/action/general.mjs +68 -14
- package/esm2022/core/action/record.mjs +22 -5
- package/esm2022/core/constants/field.mjs +22 -16
- package/esm2022/core/index.mjs +2 -1
- package/esm2022/core/types/action.mjs +6 -1
- package/esm2022/core/types/core.mjs +11 -14
- package/esm2022/core/types/index.mjs +1 -1
- package/esm2022/core/utils/common.mjs +10 -1
- package/esm2022/core/utils/field.mjs +12 -1
- package/esm2022/core/utils/queries.mjs +36 -6
- package/esm2022/core/utils/record.mjs +3 -3
- package/esm2022/grid.component.mjs +72 -32
- package/esm2022/pipes/grid.mjs +1 -2
- package/esm2022/public-api.mjs +2 -1
- package/esm2022/services/event.service.mjs +13 -6
- package/esm2022/services/field.service.mjs +32 -0
- package/esm2022/services/selection.servive.mjs +64 -0
- package/esm2022/types/field.mjs +2 -0
- package/esm2022/types/grid.mjs +1 -1
- package/esm2022/types/index.mjs +2 -1
- package/esm2022/utils/build.mjs +13 -5
- package/fesm2022/ai-table-grid.mjs +655 -283
- package/fesm2022/ai-table-grid.mjs.map +1 -1
- package/grid.component.d.ts +22 -11
- package/grid.component.d.ts.map +1 -1
- package/package.json +1 -1
- package/pipes/grid.d.ts.map +1 -1
- package/public-api.d.ts +1 -0
- package/public-api.d.ts.map +1 -1
- package/services/event.service.d.ts +2 -0
- package/services/event.service.d.ts.map +1 -1
- package/services/field.service.d.ts +16 -0
- package/services/field.service.d.ts.map +1 -0
- package/services/selection.servive.d.ts +16 -0
- package/services/selection.servive.d.ts.map +1 -0
- package/styles/styles.scss +70 -3
- package/types/field.d.ts +11 -0
- package/types/field.d.ts.map +1 -0
- package/types/grid.d.ts +13 -3
- package/types/grid.d.ts.map +1 -1
- package/types/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
- package/utils/build.d.ts +2 -2
- package/utils/build.d.ts.map +1 -1
- package/components/cell-editors/single-select/single-select-editor.component.d.ts +0 -14
- package/components/cell-editors/single-select/single-select-editor.component.d.ts.map +0 -1
- package/esm2022/components/cell-editors/single-select/single-select-editor.component.mjs +0 -44
@@ -1,48 +1,76 @@
|
|
1
|
-
import { ChangeDetectionStrategy, Component, computed, input, model, output } from '@angular/core';
|
1
|
+
import { ChangeDetectionStrategy, Component, computed, input, model, output, signal } from '@angular/core';
|
2
2
|
import { CommonModule, NgClass, NgComponentOutlet, NgForOf } from '@angular/common';
|
3
3
|
import { SelectOptionPipe } from './pipes/grid';
|
4
4
|
import { ThyTag } from 'ngx-tethys/tag';
|
5
5
|
import { ThyPopoverModule } from 'ngx-tethys/popover';
|
6
6
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
7
7
|
import { buildGridData } from './utils';
|
8
|
-
import { Actions, createAITable, getDefaultRecord, AITableFieldType } from './core';
|
8
|
+
import { Actions, createAITable, getDefaultRecord, AITableFieldType, createDefaultField } from './core';
|
9
9
|
import { ThyIcon } from 'ngx-tethys/icon';
|
10
10
|
import { AITableGridEventService } from './services/event.service';
|
11
|
-
import {
|
11
|
+
import { AITableFieldPropertyEditor } from './components/field-property-editor/field-property-editor.component';
|
12
12
|
import { ThyDatePickerFormatPipe } from 'ngx-tethys/date-picker';
|
13
13
|
import { ThyRate } from 'ngx-tethys/rate';
|
14
14
|
import { FormsModule } from '@angular/forms';
|
15
15
|
import { ThyFlexibleText } from 'ngx-tethys/flexible-text';
|
16
16
|
import { ThyTooltipModule, ThyTooltipService } from 'ngx-tethys/tooltip';
|
17
|
+
import { ThyCheckboxModule } from 'ngx-tethys/checkbox';
|
17
18
|
import { ThyStopPropagationDirective } from 'ngx-tethys/shared';
|
19
|
+
import { FieldMenu } from './components/field-menu/field-menu.component';
|
20
|
+
import { ThyAction } from 'ngx-tethys/action';
|
21
|
+
import { ThyDropdownDirective, ThyDropdownMenuComponent } from 'ngx-tethys/dropdown';
|
22
|
+
import { DefaultFieldMenus } from './constants';
|
23
|
+
import { AI_TABLE_GRID_FIELD_SERVICE_MAP, AITableGridFieldService } from './services/field.service';
|
24
|
+
import { AITableGridSelectionService } from './services/selection.servive';
|
18
25
|
import * as i0 from "@angular/core";
|
19
26
|
import * as i1 from "./services/event.service";
|
20
|
-
import * as i2 from "
|
21
|
-
import * as i3 from "
|
22
|
-
|
23
|
-
|
27
|
+
import * as i2 from "./services/selection.servive";
|
28
|
+
import * as i3 from "./services/field.service";
|
29
|
+
import * as i4 from "@angular/common";
|
30
|
+
import * as i5 from "@angular/forms";
|
31
|
+
import * as i6 from "ngx-tethys/checkbox";
|
32
|
+
export class AITableGrid {
|
33
|
+
get isSelectedAll() {
|
34
|
+
return this.aiTable.selection().selectedRecords.size === this.aiRecords().length;
|
35
|
+
}
|
36
|
+
constructor(elementRef, aiTableGridEventService, aiTableGridSelectionService, aiTableGridFieldService, ngZone) {
|
24
37
|
this.elementRef = elementRef;
|
25
38
|
this.aiTableGridEventService = aiTableGridEventService;
|
26
|
-
this.
|
39
|
+
this.aiTableGridSelectionService = aiTableGridSelectionService;
|
40
|
+
this.aiTableGridFieldService = aiTableGridFieldService;
|
41
|
+
this.ngZone = ngZone;
|
27
42
|
this.aiRecords = model.required();
|
28
43
|
this.aiFields = model.required();
|
29
44
|
this.aiRowHeight = input();
|
30
|
-
this.
|
45
|
+
this.aiFieldConfig = input();
|
31
46
|
this.aiReadonly = input();
|
47
|
+
this.aiPlugins = input();
|
32
48
|
this.AITableFieldType = AITableFieldType;
|
33
49
|
this.takeUntilDestroyed = takeUntilDestroyed();
|
34
50
|
this.onChange = output();
|
51
|
+
this.aiTableInitialized = output();
|
35
52
|
this.gridData = computed(() => {
|
36
|
-
return buildGridData(this.aiRecords(), this.aiFields());
|
53
|
+
return buildGridData(this.aiRecords(), this.aiFields(), this.aiTable.selection());
|
37
54
|
});
|
38
55
|
}
|
39
56
|
ngOnInit() {
|
40
57
|
this.initAITable();
|
41
|
-
this.
|
42
|
-
this.
|
58
|
+
this.initService();
|
59
|
+
this.buildFieldMenus();
|
60
|
+
this.ngZone.runOutsideAngular(() => {
|
61
|
+
this.aiTableGridEventService.mousedownEvent$.pipe(this.takeUntilDestroyed).subscribe((event) => {
|
62
|
+
if (event?.target) {
|
63
|
+
this.aiTableGridSelectionService.updateSelect(event);
|
64
|
+
}
|
65
|
+
});
|
66
|
+
});
|
43
67
|
}
|
44
68
|
initAITable() {
|
45
69
|
this.aiTable = createAITable(this.aiRecords, this.aiFields);
|
70
|
+
this.aiPlugins()?.forEach((plugin) => {
|
71
|
+
this.aiTable = plugin(this.aiTable);
|
72
|
+
});
|
73
|
+
this.aiTableInitialized.emit(this.aiTable);
|
46
74
|
this.aiTable.onChange = () => {
|
47
75
|
this.onChange.emit({
|
48
76
|
records: this.aiRecords(),
|
@@ -51,26 +79,33 @@ export class AITableGridComponent {
|
|
51
79
|
});
|
52
80
|
};
|
53
81
|
}
|
82
|
+
initService() {
|
83
|
+
this.aiTableGridEventService.initialize(this.aiTable, this.aiFieldConfig()?.fieldPropertyEditor);
|
84
|
+
this.aiTableGridSelectionService.initialize(this.aiTable);
|
85
|
+
this.aiTableGridEventService.registerEvents(this.elementRef.nativeElement);
|
86
|
+
this.aiTableGridFieldService.initAIFieldConfig(this.aiFieldConfig());
|
87
|
+
AI_TABLE_GRID_FIELD_SERVICE_MAP.set(this.aiTable, this.aiTableGridFieldService);
|
88
|
+
}
|
89
|
+
buildFieldMenus() {
|
90
|
+
this.fieldMenus = this.aiFieldConfig()?.fieldMenus ?? DefaultFieldMenus;
|
91
|
+
}
|
54
92
|
addRecord() {
|
55
93
|
Actions.addRecord(this.aiTable, getDefaultRecord(this.aiFields()), [this.aiRecords().length]);
|
56
94
|
}
|
57
|
-
|
58
|
-
this.
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
}
|
67
|
-
}
|
68
|
-
});
|
95
|
+
selectRecord(recordId) {
|
96
|
+
this.aiTableGridSelectionService.selectRecord(recordId);
|
97
|
+
}
|
98
|
+
toggleSelectAll(checked) {
|
99
|
+
this.aiTableGridSelectionService.toggleSelectAll(checked);
|
100
|
+
}
|
101
|
+
addField(gridColumnBlank) {
|
102
|
+
const field = signal(createDefaultField(this.aiTable, AITableFieldType.text));
|
103
|
+
this.aiTableGridFieldService.editFieldProperty(gridColumnBlank, this.aiTable, field, false);
|
69
104
|
}
|
70
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type:
|
71
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type:
|
105
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AITableGrid, deps: [{ token: i0.ElementRef }, { token: i1.AITableGridEventService }, { token: i2.AITableGridSelectionService }, { token: i3.AITableGridFieldService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
106
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AITableGrid, isStandalone: true, selector: "ai-table-grid", inputs: { aiRecords: { classPropertyName: "aiRecords", publicName: "aiRecords", isSignal: true, isRequired: true, transformFunction: null }, aiFields: { classPropertyName: "aiFields", publicName: "aiFields", isSignal: true, isRequired: true, transformFunction: null }, aiRowHeight: { classPropertyName: "aiRowHeight", publicName: "aiRowHeight", isSignal: true, isRequired: false, transformFunction: null }, aiFieldConfig: { classPropertyName: "aiFieldConfig", publicName: "aiFieldConfig", isSignal: true, isRequired: false, transformFunction: null }, aiReadonly: { classPropertyName: "aiReadonly", publicName: "aiReadonly", isSignal: true, isRequired: false, transformFunction: null }, aiPlugins: { classPropertyName: "aiPlugins", publicName: "aiPlugins", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { aiRecords: "aiRecordsChange", aiFields: "aiFieldsChange", onChange: "onChange", aiTableInitialized: "aiTableInitialized" }, host: { classAttribute: "ai-table-grid" }, providers: [ThyTooltipService, AITableGridEventService, AITableGridFieldService, AITableGridSelectionService], ngImport: i0, template: "<div class=\"grid-header d-flex\">\n <div class=\"grid-column-checkbox grid-cell\">\n <label thyCheckbox thyLabelText=\"\" [ngModel]=\"isSelectedAll\" (ngModelChange)=\"toggleSelectAll($event)\"></label>\n </div>\n @for (field of gridData().fields; track field.id) {\n <div\n class=\"grid-cell grid-field\"\n #fieldAction\n [attr.fieldId]=\"field.id\"\n [ngClass]=\"{ highlight: aiTable.selection().selectedFields.has(field.id) }\"\n [ngStyle]=\"{ width: field.width + 'px' }\"\n >\n <span class=\"text-truncate\">\n <thy-icon [thyIconName]=\"field.icon!\" class=\"mr-2 text-muted\"></thy-icon>\n <span>{{ field.name }}</span>\n </span>\n <a\n class=\"grid-field-action\"\n thyAction\n thyActiveClass=\"active\"\n thyIcon=\"more-vertical\"\n [thyDropdown]=\"fieldMenu\"\n href=\"javascript:;\"\n >\n <thy-dropdown-menu #fieldMenu>\n <field-menu [origin]=\"fieldAction\" [fieldId]=\"field.id\" [aiTable]=\"aiTable\" [fieldMenus]=\"fieldMenus\"></field-menu>\n </thy-dropdown-menu>\n </a>\n </div>\n }\n <div class=\"grid-column-blank cursor-pointer\" #gridColumnBlank (click)=\"addField(gridColumnBlank)\">\n <thy-icon thyIconName=\"plus\"></thy-icon>\n </div>\n</div>\n<div class=\"grid-body d-flex\">\n @for (record of gridData().records; track record.id; let index = $index) {\n <div class=\"grid-row d-flex\" [ngClass]=\"{ highlight: aiTable.selection().selectedRecords.has(record.id) }\">\n <div class=\"grid-row-index\">\n <label\n [ngClass]=\"record.checked ? 'checked-box' : 'unchecked-box'\"\n thyCheckbox\n thyLabelText=\"\"\n [ngModel]=\"record.checked\"\n (ngModelChange)=\"selectRecord(record.id)\"\n ></label>\n <span [ngClass]=\"record.checked ? 'grid-row-no-number' : 'grid-row-number'\"> {{ index + 1 }} </span>\n </div>\n @for (field of gridData().fields; track $index) {\n <div\n class=\"grid-cell\"\n [ngClass]=\"{\n highlight: aiTable.selection().selectedCells.has(record.id) || aiTable.selection().selectedFields.has(field.id),\n selected: aiTable.selection().selectedCells.get(record.id)?.hasOwnProperty(field.id)\n }\"\n [attr.type]=\"[field.type]\"\n [attr.fieldId]=\"[field.id]\"\n [attr.recordId]=\"[record.id]\"\n [ngStyle]=\"{ width: field.width + 'px' }\"\n #cell\n >\n @switch (field.type) {\n @case (AITableFieldType.select) {\n @if (!field.isMultiple && record.values[field.id] | selectOption: field['options']; as selectedOption) {\n <thy-tag [thyColor]=\"selectedOption!.color!\">{{ selectedOption.name }}</thy-tag>\n }\n }\n @case (AITableFieldType.date) {\n {{ record.values[field.id] | thyDatePickerFormat }}\n }\n @case (AITableFieldType.rate) {\n <thy-rate [(ngModel)]=\"record.values[field.id]\"></thy-rate>\n }\n @case (AITableFieldType.link) {\n <a\n class=\"d-block\"\n thyStopPropagation\n thyFlexibleText\n [thyTooltipContent]=\"record.values[field.id]?.text\"\n [href]=\"record.values[field.id]?.url\"\n target=\"_blank\"\n >{{ record.values[field.id]?.text }}</a\n >\n }\n @default {\n <span class=\"text-truncate\"> {{ record.values[field.id] }}</span>\n }\n }\n <div class=\"autofill-container\"></div>\n </div>\n }\n <div class=\"grid-column-blank\"></div>\n </div>\n }\n <div class=\"grid-row-insert grid-row cursor-pointer\" (click)=\"addRecord()\">\n <thy-icon thyIconName=\"plus\"></thy-icon>\n </div>\n</div>\n\n<div #activeBorder class=\"active-border\"></div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: SelectOptionPipe, name: "selectOption" }, { kind: "component", type: ThyTag, selector: "thy-tag,[thyTag]", inputs: ["thyTag", "thyShape", "thyColor", "thyTheme", "thySize", "thyHoverable"] }, { kind: "ngmodule", type: ThyPopoverModule }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "component", type: ThyRate, selector: "thy-rate", inputs: ["thyCount", "thyDisabled", "thyAllowHalf", "thyAllowClear", "thyTooltips", "thyIconTemplate"], outputs: ["thyItemHoverChange"] }, { kind: "pipe", type: ThyDatePickerFormatPipe, name: "thyDatePickerFormat" }, { kind: "ngmodule", type: ThyTooltipModule }, { kind: "component", type: ThyFlexibleText, selector: "thy-flexible-text,[thyFlexibleText]", inputs: ["thyTooltipTrigger", "thyContainerClass", "thyTooltipContent", "thyTooltipPlacement", "thyTooltipOffset"], exportAs: ["thyFlexibleText"] }, { kind: "directive", type: ThyStopPropagationDirective, selector: "[thyStopPropagation]", inputs: ["thyStopPropagation"] }, { kind: "component", type: FieldMenu, selector: "field-menu", inputs: ["fieldId", "aiTable", "fieldMenus", "origin"] }, { kind: "component", type: ThyAction, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "directive", type: ThyDropdownDirective, selector: "[thyDropdown]", inputs: ["thyDropdownMenu", "thyDropdown", "thyTrigger", "thyShowDelay", "thyHideDelay", "thyActiveClass", "thyPopoverOptions", "thyPlacement", "thyMenuInsideClosable", "thyPanelClass"], outputs: ["thyActiveChange"] }, { kind: "component", type: ThyDropdownMenuComponent, selector: "thy-dropdown-menu", inputs: ["thyWidth", "thyImmediateRender"] }, { kind: "ngmodule", type: ThyCheckboxModule }, { kind: "component", type: i6.ThyCheckbox, selector: "thy-checkbox,[thy-checkbox],[thyCheckbox]", inputs: ["thyIndeterminate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
72
107
|
}
|
73
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type:
|
108
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AITableGrid, decorators: [{
|
74
109
|
type: Component,
|
75
110
|
args: [{ selector: 'ai-table-grid', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
76
111
|
class: 'ai-table-grid'
|
@@ -85,11 +120,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
85
120
|
ThyPopoverModule,
|
86
121
|
ThyIcon,
|
87
122
|
ThyRate,
|
88
|
-
|
123
|
+
AITableFieldPropertyEditor,
|
89
124
|
ThyDatePickerFormatPipe,
|
90
125
|
ThyTooltipModule,
|
91
126
|
ThyFlexibleText,
|
92
|
-
ThyStopPropagationDirective
|
93
|
-
|
94
|
-
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9ncmlkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL2dyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQXNCLEtBQUssRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ILE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNoRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFjLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUV4QyxPQUFPLEVBQ0gsT0FBTyxFQUNQLGFBQWEsRUFDYixnQkFBZ0IsRUFLaEIsZ0JBQWdCLEVBR25CLE1BQU0sUUFBUSxDQUFDO0FBQ2hCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUNsSCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFN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QztJQUNQLENBQUM7OEdBOURRLG9CQUFvQjtrR0FBcEIsb0JBQW9CLDYzQkFGbEIsQ0FBQyxpQkFBaUIsRUFBRSx1QkFBdUIsQ0FBQywwQkN2RDNELDRsRkF1REEsMkNEYlEsWUFBWSw4QkFDWixXQUFXLDBWQUNYLGdCQUFnQixxREFDaEIsTUFBTSwrSUFDTixnQkFBZ0IsK0JBQ2hCLE9BQU8sc01BQ1AsT0FBTyx5TEFFUCx1QkFBdUIsMkRBQ3ZCLGdCQUFnQiwrQkFDaEIsZUFBZSxtT0FDZiwyQkFBMkI7OzJGQUl0QixvQkFBb0I7a0JBM0JoQyxTQUFTOytCQUNJLGVBQWUsY0FFYixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0YsS0FBSyxFQUFFLGVBQWU7cUJBQ3pCLFdBQ1E7d0JBQ0wsT0FBTzt3QkFDUCxPQUFPO3dCQUNQLGlCQUFpQjt3QkFDakIsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGdCQUFnQjt3QkFDaEIsTUFBTTt3QkFDTixnQkFBZ0I7d0JBQ2hCLE9BQU87d0JBQ1AsT0FBTzt3QkFDUCw0QkFBNEI7d0JBQzVCLHVCQUF1Qjt3QkFDdkIsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLDJCQUEyQjtxQkFDOUIsYUFDVSxDQUFDLGlCQUFpQixFQUFFLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIEVsZW1lbnRSZWYsIGluamVjdCwgaW5wdXQsIG1vZGVsLCBPbkluaXQsIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBOZ0NsYXNzLCBOZ0NvbXBvbmVudE91dGxldCwgTmdGb3JPZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTZWxlY3RPcHRpb25QaXBlIH0gZnJvbSAnLi9waXBlcy9ncmlkJztcbmltcG9ydCB7IFRoeVRhZyB9IGZyb20gJ25neC10ZXRoeXMvdGFnJztcbmltcG9ydCB7IFRoeVBvcG92ZXIsIFRoeVBvcG92ZXJNb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL3BvcG92ZXInO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgYnVpbGRHcmlkRGF0YSB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgQUlUYWJsZUdyaWRDZWxsUmVuZGVyU2NoZW1hLCBBSVRhYmxlUm93SGVpZ2h0IH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQge1xuICAgIEFjdGlvbnMsXG4gICAgY3JlYXRlQUlUYWJsZSxcbiAgICBnZXREZWZhdWx0UmVjb3JkLFxuICAgIGlkQ3JlYXRvcixcbiAgICBBSVRhYmxlLFxuICAgIEFJVGFibGVDaGFuZ2VPcHRpb25zLFxuICAgIEFJVGFibGVGaWVsZHMsXG4gICAgQUlUYWJsZUZpZWxkVHlwZSxcbiAgICBBSVRhYmxlUmVjb3JkcyxcbiAgICBBSVRhYmxlRmllbGRcbn0gZnJvbSAnLi9jb3JlJztcbmltcG9ydCB7IFRoeUljb24gfSBmcm9tICduZ3gtdGV0aHlzL2ljb24nO1xuaW1wb3J0IHsgQUlUYWJsZUdyaWRFdmVudFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2V2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgRmllbGRQcm9wZXJ0eUVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9maWVsZC1wcm9wZXJ0eS1lZGl0b3IvZmllbGQtcHJvcGVydHktZWRpdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaHlEYXRlUGlja2VyRm9ybWF0UGlwZSB9IGZyb20gJ25neC10ZXRoeXMvZGF0ZS1waWNrZXInO1xuaW1wb3J0IHsgVGh5UmF0ZSB9IGZyb20gJ25neC10ZXRoeXMvcmF0ZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRoeUZsZXhpYmxlVGV4dCB9IGZyb20gJ25neC10ZXRoeXMvZmxleGlibGUtdGV4dCc7XG5pbXBvcnQgeyBUaHlUb29sdGlwTW9kdWxlLCBUaHlUb29sdGlwU2VydmljZSB9IGZyb20gJ25neC10ZXRoeXMvdG9vbHRpcCc7XG5pbXBvcnQgeyBUaHlTdG9wUHJvcGFnYXRpb25EaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL3NoYXJlZCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWktdGFibGUtZ3JpZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2dyaWQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2FpLXRhYmxlLWdyaWQnXG4gICAgfSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE5nRm9yT2YsXG4gICAgICAgIE5nQ2xhc3MsXG4gICAgICAgIE5nQ29tcG9uZW50T3V0bGV0LFxuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBTZWxlY3RPcHRpb25QaXBlLFxuICAgICAgICBUaHlUYWcsXG4gICAgICAgIFRoeVBvcG92ZXJNb2R1bGUsXG4gICAgICAgIFRoeUljb24sXG4gICAgICAgIFRoeVJhdGUsXG4gICAgICAgIEZpZWxkUHJvcGVydHlFZGl0b3JDb21wb25lbnQsXG4gICAgICAgIFRoeURhdGVQaWNrZXJGb3JtYXRQaXBlLFxuICAgICAgICBUaHlUb29sdGlwTW9kdWxlLFxuICAgICAgICBUaHlGbGV4aWJsZVRleHQsXG4gICAgICAgIFRoeVN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZVxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbVGh5VG9vbHRpcFNlcnZpY2UsIEFJVGFibGVHcmlkRXZlbnRTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBBSVRhYmxlR3JpZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgYWlSZWNvcmRzID0gbW9kZWwucmVxdWlyZWQ8QUlUYWJsZVJlY29yZHM+KCk7XG5cbiAgICBhaUZpZWxkcyA9IG1vZGVsLnJlcXVpcmVkPEFJVGFibGVGaWVsZHM+KCk7XG5cbiAgICBhaVJvd0hlaWdodCA9IGlucHV0PEFJVGFibGVSb3dIZWlnaHQ+KCk7XG5cbiAgICBhaUZpZWxkUmVuZGVyZXJzID0gaW5wdXQ8UGFydGlhbDxSZWNvcmQ8QUlUYWJsZUZpZWxkVHlwZSwgQUlUYWJsZUdyaWRDZWxsUmVuZGVyU2NoZW1hPj4+KCk7XG5cbiAgICBhaVJlYWRvbmx5ID0gaW5wdXQ8Ym9vbGVhbj4oKTtcblxuICAgIEFJVGFibGVGaWVsZFR5cGUgPSBBSVRhYmxlRmllbGRUeXBlO1xuXG4gICAgdGFrZVVudGlsRGVzdHJveWVkID0gdGFrZVVudGlsRGVzdHJveWVkKCk7XG5cbiAgICBhaVRhYmxlITogQUlUYWJsZTtcblxuICAgIG9uQ2hhbmdlID0gb3V0cHV0PEFJVGFibGVDaGFuZ2VPcHRpb25zPigpO1xuXG4gICAgZ3JpZERhdGEgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIHJldHVybiBidWlsZEdyaWREYXRhKHRoaXMuYWlSZWNvcmRzKCksIHRoaXMuYWlGaWVsZHMoKSk7XG4gICAgfSk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIGFpVGFibGVHcmlkRXZlbnRTZXJ2aWNlOiBBSVRhYmxlR3JpZEV2ZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB0aHlQb3BvdmVyOiBUaHlQb3BvdmVyXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5pdEFJVGFibGUoKTtcbiAgICAgICAgdGhpcy5haVRhYmxlR3JpZEV2ZW50U2VydmljZS5pbml0aWFsaXplKHRoaXMuYWlUYWJsZSwgdGhpcy5haUZpZWxkUmVuZGVyZXJzKCkpO1xuICAgICAgICB0aGlzLmFpVGFibGVHcmlkRXZlbnRTZXJ2aWNlLnJlZ2lzdGVyRXZlbnRzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBpbml0QUlUYWJsZSgpIHtcbiAgICAgICAgdGhpcy5haVRhYmxlID0gY3JlYXRlQUlUYWJsZSh0aGlzLmFpUmVjb3JkcywgdGhpcy5haUZpZWxkcyk7XG4gICAgICAgIHRoaXMuYWlUYWJsZS5vbkNoYW5nZSA9ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCh7XG4gICAgICAgICAgICAgICAgcmVjb3JkczogdGhpcy5haVJlY29yZHMoKSxcbiAgICAgICAgICAgICAgICBmaWVsZHM6IHRoaXMuYWlGaWVsZHMoKSxcbiAgICAgICAgICAgICAgICBhY3Rpb25zOiB0aGlzLmFpVGFibGUuYWN0aW9uc1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgYWRkUmVjb3JkKCkge1xuICAgICAgICBBY3Rpb25zLmFkZFJlY29yZCh0aGlzLmFpVGFibGUsIGdldERlZmF1bHRSZWNvcmQodGhpcy5haUZpZWxkcygpKSwgW3RoaXMuYWlSZWNvcmRzKCkubGVuZ3RoXSk7XG4gICAgfVxuXG4gICAgYWRkRmllbGQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIHRoaXMudGh5UG9wb3Zlci5vcGVuKEZpZWxkUHJvcGVydHlFZGl0b3JDb21wb25lbnQsIHtcbiAgICAgICAgICAgIG9yaWdpbjogZXZlbnQuY3VycmVudFRhcmdldCBhcyBIVE1MRWxlbWVudCxcbiAgICAgICAgICAgIG1hbnVhbENsb3N1cmU6IHRydWUsXG4gICAgICAgICAgICBwbGFjZW1lbnQ6ICdib3R0b21MZWZ0JyxcbiAgICAgICAgICAgIGluaXRpYWxTdGF0ZToge1xuICAgICAgICAgICAgICAgIGZpZWxkczogdGhpcy5haUZpZWxkcyxcbiAgICAgICAgICAgICAgICBjb25maXJtQWN0aW9uOiAoZmllbGQ6IEFJVGFibGVGaWVsZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBBY3Rpb25zLmFkZEZpZWxkKHRoaXMuYWlUYWJsZSwgZmllbGQsIFt0aGlzLmFpRmllbGRzKCkubGVuZ3RoXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZ3JpZC1oZWFkZXIgZC1mbGV4XCI+XG4gICAgPGRpdiBjbGFzcz1cImdyaWQtY29sdW1uLWNoZWNrYm94IGdyaWQtY2VsbFwiPlxuICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgLz5cbiAgICA8L2Rpdj5cbiAgICBAZm9yIChmaWVsZCBvZiBncmlkRGF0YSgpLmZpZWxkczsgdHJhY2sgZmllbGQuaWQpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQtY2VsbFwiPnt7IGZpZWxkLm5hbWUgfX08L2Rpdj5cbiAgICB9XG4gICAgPGRpdiBjbGFzcz1cImdyaWQtY29sdW1uLWJsYW5rIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImFkZEZpZWxkKCRldmVudClcIj48dGh5LWljb24gdGh5SWNvbk5hbWU9XCJwbHVzXCI+PC90aHktaWNvbj48L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImdyaWQtYm9keSBkLWZsZXhcIj5cbiAgICBAZm9yIChyZWNvcmQgb2YgZ3JpZERhdGEoKS5yZWNvcmRzOyB0cmFjayByZWNvcmQuaWQ7IGxldCBpbmRleCA9ICRpbmRleCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZC1yb3cgZC1mbGV4XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZC1yb3ctaW5kZXhcIj5cbiAgICAgICAgICAgICAgICB7eyBpbmRleCArIDEgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgQGZvciAoZmllbGQgb2YgZ3JpZERhdGEoKS5maWVsZHM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkLWNlbGxcIiBbYXR0ci50eXBlXT1cIltmaWVsZC50eXBlXVwiIFthdHRyLmZpZWxkSWRdPVwiW2ZpZWxkLmlkXVwiIFthdHRyLnJlY29yZElkXT1cIltyZWNvcmQuaWRdXCIgI2NlbGw+XG4gICAgICAgICAgICAgICAgICAgIEBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlIChBSVRhYmxlRmllbGRUeXBlLlNpbmdsZVNlbGVjdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAocmVjb3JkLnZhbHVlW2ZpZWxkLmlkXSB8IHNlbGVjdE9wdGlvbjogZmllbGRbJ29wdGlvbnMnXTsgYXMgc2VsZWN0ZWRPcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoeS10YWcgW3RoeUNvbG9yXT1cInNlbGVjdGVkT3B0aW9uIS5jb2xvciFcIj57eyBzZWxlY3RlZE9wdGlvbi5uYW1lIH19PC90aHktdGFnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlIChBSVRhYmxlRmllbGRUeXBlLkRhdGVUaW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgcmVjb3JkLnZhbHVlW2ZpZWxkLmlkXSB8IHRoeURhdGVQaWNrZXJGb3JtYXQgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlIChBSVRhYmxlRmllbGRUeXBlLlJhdGluZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aHktcmF0ZSBbKG5nTW9kZWwpXT1cInJlY29yZC52YWx1ZVtmaWVsZC5pZF1cIj48L3RoeS1yYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKEFJVGFibGVGaWVsZFR5cGUuTGluaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1ibG9jayBwbC00IHByLTRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHlTdG9wUHJvcGFnYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGh5RmxleGlibGVUZXh0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aHlUb29sdGlwQ29udGVudF09XCJyZWNvcmQudmFsdWVbZmllbGQuaWRdPy50ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwicmVjb3JkLnZhbHVlW2ZpZWxkLmlkXT8udXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7IHJlY29yZC52YWx1ZVtmaWVsZC5pZF0/LnRleHQgfX08L2FcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBAZGVmYXVsdCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgcmVjb3JkLnZhbHVlW2ZpZWxkLmlkXSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZC1jb2x1bW4tYmxhbmtcIj48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuICAgIDxkaXYgY2xhc3M9XCJncmlkLXJvdy1pbnNlcnQgZ3JpZC1yb3cgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiYWRkUmVjb3JkKClcIj5cbiAgICAgICAgPHRoeS1pY29uIHRoeUljb25OYW1lPVwicGx1c1wiPjwvdGh5LWljb24+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiAjYWN0aXZlQm9yZGVyIGNsYXNzPVwiYWN0aXZlLWJvcmRlclwiPjwvZGl2PlxuIl19
|
127
|
+
ThyStopPropagationDirective,
|
128
|
+
FieldMenu,
|
129
|
+
ThyAction,
|
130
|
+
ThyDropdownDirective,
|
131
|
+
ThyDropdownMenuComponent,
|
132
|
+
ThyCheckboxModule
|
133
|
+
], providers: [ThyTooltipService, AITableGridEventService, AITableGridFieldService, AITableGridSelectionService], template: "<div class=\"grid-header d-flex\">\n <div class=\"grid-column-checkbox grid-cell\">\n <label thyCheckbox thyLabelText=\"\" [ngModel]=\"isSelectedAll\" (ngModelChange)=\"toggleSelectAll($event)\"></label>\n </div>\n @for (field of gridData().fields; track field.id) {\n <div\n class=\"grid-cell grid-field\"\n #fieldAction\n [attr.fieldId]=\"field.id\"\n [ngClass]=\"{ highlight: aiTable.selection().selectedFields.has(field.id) }\"\n [ngStyle]=\"{ width: field.width + 'px' }\"\n >\n <span class=\"text-truncate\">\n <thy-icon [thyIconName]=\"field.icon!\" class=\"mr-2 text-muted\"></thy-icon>\n <span>{{ field.name }}</span>\n </span>\n <a\n class=\"grid-field-action\"\n thyAction\n thyActiveClass=\"active\"\n thyIcon=\"more-vertical\"\n [thyDropdown]=\"fieldMenu\"\n href=\"javascript:;\"\n >\n <thy-dropdown-menu #fieldMenu>\n <field-menu [origin]=\"fieldAction\" [fieldId]=\"field.id\" [aiTable]=\"aiTable\" [fieldMenus]=\"fieldMenus\"></field-menu>\n </thy-dropdown-menu>\n </a>\n </div>\n }\n <div class=\"grid-column-blank cursor-pointer\" #gridColumnBlank (click)=\"addField(gridColumnBlank)\">\n <thy-icon thyIconName=\"plus\"></thy-icon>\n </div>\n</div>\n<div class=\"grid-body d-flex\">\n @for (record of gridData().records; track record.id; let index = $index) {\n <div class=\"grid-row d-flex\" [ngClass]=\"{ highlight: aiTable.selection().selectedRecords.has(record.id) }\">\n <div class=\"grid-row-index\">\n <label\n [ngClass]=\"record.checked ? 'checked-box' : 'unchecked-box'\"\n thyCheckbox\n thyLabelText=\"\"\n [ngModel]=\"record.checked\"\n (ngModelChange)=\"selectRecord(record.id)\"\n ></label>\n <span [ngClass]=\"record.checked ? 'grid-row-no-number' : 'grid-row-number'\"> {{ index + 1 }} </span>\n </div>\n @for (field of gridData().fields; track $index) {\n <div\n class=\"grid-cell\"\n [ngClass]=\"{\n highlight: aiTable.selection().selectedCells.has(record.id) || aiTable.selection().selectedFields.has(field.id),\n selected: aiTable.selection().selectedCells.get(record.id)?.hasOwnProperty(field.id)\n }\"\n [attr.type]=\"[field.type]\"\n [attr.fieldId]=\"[field.id]\"\n [attr.recordId]=\"[record.id]\"\n [ngStyle]=\"{ width: field.width + 'px' }\"\n #cell\n >\n @switch (field.type) {\n @case (AITableFieldType.select) {\n @if (!field.isMultiple && record.values[field.id] | selectOption: field['options']; as selectedOption) {\n <thy-tag [thyColor]=\"selectedOption!.color!\">{{ selectedOption.name }}</thy-tag>\n }\n }\n @case (AITableFieldType.date) {\n {{ record.values[field.id] | thyDatePickerFormat }}\n }\n @case (AITableFieldType.rate) {\n <thy-rate [(ngModel)]=\"record.values[field.id]\"></thy-rate>\n }\n @case (AITableFieldType.link) {\n <a\n class=\"d-block\"\n thyStopPropagation\n thyFlexibleText\n [thyTooltipContent]=\"record.values[field.id]?.text\"\n [href]=\"record.values[field.id]?.url\"\n target=\"_blank\"\n >{{ record.values[field.id]?.text }}</a\n >\n }\n @default {\n <span class=\"text-truncate\"> {{ record.values[field.id] }}</span>\n }\n }\n <div class=\"autofill-container\"></div>\n </div>\n }\n <div class=\"grid-column-blank\"></div>\n </div>\n }\n <div class=\"grid-row-insert grid-row cursor-pointer\" (click)=\"addRecord()\">\n <thy-icon thyIconName=\"plus\"></thy-icon>\n </div>\n</div>\n\n<div #activeBorder class=\"active-border\"></div>\n" }]
|
134
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.AITableGridEventService }, { type: i2.AITableGridSelectionService }, { type: i3.AITableGridFieldService }, { type: i0.NgZone }] });
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9ncmlkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL2dyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQWMsS0FBSyxFQUFFLEtBQUssRUFBa0IsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2SSxPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFeEMsT0FBTyxFQUNILE9BQU8sRUFDUCxhQUFhLEVBQ2IsZ0JBQWdCLEVBSWhCLGdCQUFnQixFQUVoQixrQkFBa0IsRUFFckIsTUFBTSxRQUFRLENBQUM7QUFDaEIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25FLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9FQUFvRSxDQUFDO0FBQ2hILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHdCQUF3QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2hELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7OztBQWtDM0UsTUFBTSxPQUFPLFdBQVc7SUFtQnBCLElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxNQUFNLENBQUM7SUFDckYsQ0FBQztJQVlELFlBQ1ksVUFBc0IsRUFDdEIsdUJBQWdELEVBQ2pELDJCQUF3RCxFQUN2RCx1QkFBZ0QsRUFDaEQsTUFBYztRQUpkLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUNqRCxnQ0FBMkIsR0FBM0IsMkJBQTJCLENBQTZCO1FBQ3ZELDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFDaEQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQXJDMUIsY0FBUyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWtCLENBQUM7UUFFN0MsYUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWlCLENBQUM7UUFFM0MsZ0JBQVcsR0FBRyxLQUFLLEVBQW9CLENBQUM7UUFFeEMsa0JBQWEsR0FBRyxLQUFLLEVBQWlCLENBQUM7UUFFdkMsZUFBVSxHQUFHLEtBQUssRUFBVyxDQUFDO1FBRTlCLGNBQVMsR0FBRyxLQUFLLEVBQWMsQ0FBQztRQUVoQyxxQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUVwQyx1QkFBa0IsR0FBRyxrQkFBa0IsRUFBRSxDQUFDO1FBUTFDLGFBQVEsR0FBRyxNQUFNLEVBQXdCLENBQUM7UUFFMUMsdUJBQWtCLEdBQUcsTUFBTSxFQUFXLENBQUM7UUFJdkMsYUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDckIsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDdEYsQ0FBQyxDQUFDLENBQUM7SUFRQSxDQUFDO0lBRUosUUFBUTtRQUNKLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQy9CLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUMzRixJQUFLLEtBQW9CLEVBQUUsTUFBTSxFQUFFLENBQUM7b0JBQ2hDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxZQUFZLENBQUMsS0FBbUIsQ0FBQyxDQUFDO2dCQUN2RSxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLE9BQU8sR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ2pDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLEdBQUcsRUFBRTtZQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDZixPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDekIsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ3ZCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU87YUFDaEMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsdUJBQXVCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFDakcsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUNyRSwrQkFBK0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLFVBQVUsSUFBSSxpQkFBaUIsQ0FBQztJQUM1RSxDQUFDO0lBRUQsU0FBUztRQUNMLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7SUFFRCxZQUFZLENBQUMsUUFBZ0I7UUFDekIsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsZUFBZSxDQUFDLE9BQWdCO1FBQzVCLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELFFBQVEsQ0FBQyxlQUE0QjtRQUNqQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDaEcsQ0FBQzs4R0FoR1EsV0FBVztrR0FBWCxXQUFXLGtpQ0FGVCxDQUFDLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLHVCQUF1QixFQUFFLDJCQUEyQixDQUFDLDBCQ25FakgsK3VKQW1HQSw0Q0RwRFEsT0FBTyxtRkFFUCxZQUFZLG1IQUNaLFdBQVcsMFZBQ1gsZ0JBQWdCLHFEQUNoQixNQUFNLCtJQUNOLGdCQUFnQiwrQkFDaEIsT0FBTyxzTUFDUCxPQUFPLHlMQUVQLHVCQUF1QiwyREFDdkIsZ0JBQWdCLCtCQUNoQixlQUFlLG1PQUNmLDJCQUEyQixpR0FDM0IsU0FBUywrR0FDVCxTQUFTLGdNQUNULG9CQUFvQixtUkFDcEIsd0JBQXdCLHlHQUN4QixpQkFBaUI7OzJGQUlaLFdBQVc7a0JBaEN2QixTQUFTOytCQUNJLGVBQWUsY0FFYixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0YsS0FBSyxFQUFFLGVBQWU7cUJBQ3pCLFdBQ1E7d0JBQ0wsT0FBTzt3QkFDUCxPQUFPO3dCQUNQLGlCQUFpQjt3QkFDakIsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGdCQUFnQjt3QkFDaEIsTUFBTTt3QkFDTixnQkFBZ0I7d0JBQ2hCLE9BQU87d0JBQ1AsT0FBTzt3QkFDUCwwQkFBMEI7d0JBQzFCLHVCQUF1Qjt3QkFDdkIsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLDJCQUEyQjt3QkFDM0IsU0FBUzt3QkFDVCxTQUFTO3dCQUNULG9CQUFvQjt3QkFDcEIsd0JBQXdCO3dCQUN4QixpQkFBaUI7cUJBQ3BCLGFBQ1UsQ0FBQyxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSx1QkFBdUIsRUFBRSwyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBFbGVtZW50UmVmLCBpbnB1dCwgbW9kZWwsIE5nWm9uZSwgT25Jbml0LCBvdXRwdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBOZ0NsYXNzLCBOZ0NvbXBvbmVudE91dGxldCwgTmdGb3JPZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTZWxlY3RPcHRpb25QaXBlIH0gZnJvbSAnLi9waXBlcy9ncmlkJztcbmltcG9ydCB7IFRoeVRhZyB9IGZyb20gJ25neC10ZXRoeXMvdGFnJztcbmltcG9ydCB7IFRoeVBvcG92ZXJNb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL3BvcG92ZXInO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgYnVpbGRHcmlkRGF0YSB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgQUlGaWVsZENvbmZpZywgQUlUYWJsZUZpZWxkTWVudUl0ZW0sIEFJVGFibGVSb3dIZWlnaHQgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7XG4gICAgQWN0aW9ucyxcbiAgICBjcmVhdGVBSVRhYmxlLFxuICAgIGdldERlZmF1bHRSZWNvcmQsXG4gICAgQUlUYWJsZSxcbiAgICBBSVRhYmxlQ2hhbmdlT3B0aW9ucyxcbiAgICBBSVRhYmxlRmllbGRzLFxuICAgIEFJVGFibGVGaWVsZFR5cGUsXG4gICAgQUlUYWJsZVJlY29yZHMsXG4gICAgY3JlYXRlRGVmYXVsdEZpZWxkLFxuICAgIEFJUGx1Z2luXG59IGZyb20gJy4vY29yZSc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IEFJVGFibGVHcmlkRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEFJVGFibGVGaWVsZFByb3BlcnR5RWRpdG9yIH0gZnJvbSAnLi9jb21wb25lbnRzL2ZpZWxkLXByb3BlcnR5LWVkaXRvci9maWVsZC1wcm9wZXJ0eS1lZGl0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFRoeURhdGVQaWNrZXJGb3JtYXRQaXBlIH0gZnJvbSAnbmd4LXRldGh5cy9kYXRlLXBpY2tlcic7XG5pbXBvcnQgeyBUaHlSYXRlIH0gZnJvbSAnbmd4LXRldGh5cy9yYXRlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVGh5RmxleGlibGVUZXh0IH0gZnJvbSAnbmd4LXRldGh5cy9mbGV4aWJsZS10ZXh0JztcbmltcG9ydCB7IFRoeVRvb2x0aXBNb2R1bGUsIFRoeVRvb2x0aXBTZXJ2aWNlIH0gZnJvbSAnbmd4LXRldGh5cy90b29sdGlwJztcbmltcG9ydCB7IFRoeUNoZWNrYm94TW9kdWxlIH0gZnJvbSAnbmd4LXRldGh5cy9jaGVja2JveCc7XG5pbXBvcnQgeyBUaHlTdG9wUHJvcGFnYXRpb25EaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL3NoYXJlZCc7XG5pbXBvcnQgeyBGaWVsZE1lbnUgfSBmcm9tICcuL2NvbXBvbmVudHMvZmllbGQtbWVudS9maWVsZC1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaHlBY3Rpb24gfSBmcm9tICduZ3gtdGV0aHlzL2FjdGlvbic7XG5pbXBvcnQgeyBUaHlEcm9wZG93bkRpcmVjdGl2ZSwgVGh5RHJvcGRvd25NZW51Q29tcG9uZW50IH0gZnJvbSAnbmd4LXRldGh5cy9kcm9wZG93bic7XG5pbXBvcnQgeyBEZWZhdWx0RmllbGRNZW51cyB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IEFJX1RBQkxFX0dSSURfRklFTERfU0VSVklDRV9NQVAsIEFJVGFibGVHcmlkRmllbGRTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9maWVsZC5zZXJ2aWNlJztcbmltcG9ydCB7IEFJVGFibGVHcmlkU2VsZWN0aW9uU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvc2VsZWN0aW9uLnNlcnZpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FpLXRhYmxlLWdyaWQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ncmlkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdhaS10YWJsZS1ncmlkJ1xuICAgIH0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ0Zvck9mLFxuICAgICAgICBOZ0NsYXNzLFxuICAgICAgICBOZ0NvbXBvbmVudE91dGxldCxcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgU2VsZWN0T3B0aW9uUGlwZSxcbiAgICAgICAgVGh5VGFnLFxuICAgICAgICBUaHlQb3BvdmVyTW9kdWxlLFxuICAgICAgICBUaHlJY29uLFxuICAgICAgICBUaHlSYXRlLFxuICAgICAgICBBSVRhYmxlRmllbGRQcm9wZXJ0eUVkaXRvcixcbiAgICAgICAgVGh5RGF0ZVBpY2tlckZvcm1hdFBpcGUsXG4gICAgICAgIFRoeVRvb2x0aXBNb2R1bGUsXG4gICAgICAgIFRoeUZsZXhpYmxlVGV4dCxcbiAgICAgICAgVGh5U3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlLFxuICAgICAgICBGaWVsZE1lbnUsXG4gICAgICAgIFRoeUFjdGlvbixcbiAgICAgICAgVGh5RHJvcGRvd25EaXJlY3RpdmUsXG4gICAgICAgIFRoeURyb3Bkb3duTWVudUNvbXBvbmVudCxcbiAgICAgICAgVGh5Q2hlY2tib3hNb2R1bGVcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW1RoeVRvb2x0aXBTZXJ2aWNlLCBBSVRhYmxlR3JpZEV2ZW50U2VydmljZSwgQUlUYWJsZUdyaWRGaWVsZFNlcnZpY2UsIEFJVGFibGVHcmlkU2VsZWN0aW9uU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgQUlUYWJsZUdyaWQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIGFpUmVjb3JkcyA9IG1vZGVsLnJlcXVpcmVkPEFJVGFibGVSZWNvcmRzPigpO1xuXG4gICAgYWlGaWVsZHMgPSBtb2RlbC5yZXF1aXJlZDxBSVRhYmxlRmllbGRzPigpO1xuXG4gICAgYWlSb3dIZWlnaHQgPSBpbnB1dDxBSVRhYmxlUm93SGVpZ2h0PigpO1xuXG4gICAgYWlGaWVsZENvbmZpZyA9IGlucHV0PEFJRmllbGRDb25maWc+KCk7XG5cbiAgICBhaVJlYWRvbmx5ID0gaW5wdXQ8Ym9vbGVhbj4oKTtcblxuICAgIGFpUGx1Z2lucyA9IGlucHV0PEFJUGx1Z2luW10+KCk7XG5cbiAgICBBSVRhYmxlRmllbGRUeXBlID0gQUlUYWJsZUZpZWxkVHlwZTtcblxuICAgIHRha2VVbnRpbERlc3Ryb3llZCA9IHRha2VVbnRpbERlc3Ryb3llZCgpO1xuXG4gICAgYWlUYWJsZSE6IEFJVGFibGU7XG5cbiAgICBnZXQgaXNTZWxlY3RlZEFsbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWlUYWJsZS5zZWxlY3Rpb24oKS5zZWxlY3RlZFJlY29yZHMuc2l6ZSA9PT0gdGhpcy5haVJlY29yZHMoKS5sZW5ndGg7XG4gICAgfVxuXG4gICAgb25DaGFuZ2UgPSBvdXRwdXQ8QUlUYWJsZUNoYW5nZU9wdGlvbnM+KCk7XG5cbiAgICBhaVRhYmxlSW5pdGlhbGl6ZWQgPSBvdXRwdXQ8QUlUYWJsZT4oKTtcblxuICAgIGZpZWxkTWVudXMhOiBBSVRhYmxlRmllbGRNZW51SXRlbVtdO1xuXG4gICAgZ3JpZERhdGEgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIHJldHVybiBidWlsZEdyaWREYXRhKHRoaXMuYWlSZWNvcmRzKCksIHRoaXMuYWlGaWVsZHMoKSwgdGhpcy5haVRhYmxlLnNlbGVjdGlvbigpKTtcbiAgICB9KTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgYWlUYWJsZUdyaWRFdmVudFNlcnZpY2U6IEFJVGFibGVHcmlkRXZlbnRTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgYWlUYWJsZUdyaWRTZWxlY3Rpb25TZXJ2aWNlOiBBSVRhYmxlR3JpZFNlbGVjdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYWlUYWJsZUdyaWRGaWVsZFNlcnZpY2U6IEFJVGFibGVHcmlkRmllbGRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIG5nWm9uZTogTmdab25lXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5pdEFJVGFibGUoKTtcbiAgICAgICAgdGhpcy5pbml0U2VydmljZSgpO1xuICAgICAgICB0aGlzLmJ1aWxkRmllbGRNZW51cygpO1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFpVGFibGVHcmlkRXZlbnRTZXJ2aWNlLm1vdXNlZG93bkV2ZW50JC5waXBlKHRoaXMudGFrZVVudGlsRGVzdHJveWVkKS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKChldmVudCBhcyBNb3VzZUV2ZW50KT8udGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWlUYWJsZUdyaWRTZWxlY3Rpb25TZXJ2aWNlLnVwZGF0ZVNlbGVjdChldmVudCBhcyBNb3VzZUV2ZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaW5pdEFJVGFibGUoKSB7XG4gICAgICAgIHRoaXMuYWlUYWJsZSA9IGNyZWF0ZUFJVGFibGUodGhpcy5haVJlY29yZHMsIHRoaXMuYWlGaWVsZHMpO1xuICAgICAgICB0aGlzLmFpUGx1Z2lucygpPy5mb3JFYWNoKChwbHVnaW4pID0+IHtcbiAgICAgICAgICAgIHRoaXMuYWlUYWJsZSA9IHBsdWdpbih0aGlzLmFpVGFibGUpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5haVRhYmxlSW5pdGlhbGl6ZWQuZW1pdCh0aGlzLmFpVGFibGUpO1xuICAgICAgICB0aGlzLmFpVGFibGUub25DaGFuZ2UgPSAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoe1xuICAgICAgICAgICAgICAgIHJlY29yZHM6IHRoaXMuYWlSZWNvcmRzKCksXG4gICAgICAgICAgICAgICAgZmllbGRzOiB0aGlzLmFpRmllbGRzKCksXG4gICAgICAgICAgICAgICAgYWN0aW9uczogdGhpcy5haVRhYmxlLmFjdGlvbnNcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIGluaXRTZXJ2aWNlKCkge1xuICAgICAgICB0aGlzLmFpVGFibGVHcmlkRXZlbnRTZXJ2aWNlLmluaXRpYWxpemUodGhpcy5haVRhYmxlLCB0aGlzLmFpRmllbGRDb25maWcoKT8uZmllbGRQcm9wZXJ0eUVkaXRvcik7XG4gICAgICAgIHRoaXMuYWlUYWJsZUdyaWRTZWxlY3Rpb25TZXJ2aWNlLmluaXRpYWxpemUodGhpcy5haVRhYmxlKTtcbiAgICAgICAgdGhpcy5haVRhYmxlR3JpZEV2ZW50U2VydmljZS5yZWdpc3RlckV2ZW50cyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIHRoaXMuYWlUYWJsZUdyaWRGaWVsZFNlcnZpY2UuaW5pdEFJRmllbGRDb25maWcodGhpcy5haUZpZWxkQ29uZmlnKCkpO1xuICAgICAgICBBSV9UQUJMRV9HUklEX0ZJRUxEX1NFUlZJQ0VfTUFQLnNldCh0aGlzLmFpVGFibGUsIHRoaXMuYWlUYWJsZUdyaWRGaWVsZFNlcnZpY2UpO1xuICAgIH1cblxuICAgIGJ1aWxkRmllbGRNZW51cygpIHtcbiAgICAgICAgdGhpcy5maWVsZE1lbnVzID0gdGhpcy5haUZpZWxkQ29uZmlnKCk/LmZpZWxkTWVudXMgPz8gRGVmYXVsdEZpZWxkTWVudXM7XG4gICAgfVxuXG4gICAgYWRkUmVjb3JkKCkge1xuICAgICAgICBBY3Rpb25zLmFkZFJlY29yZCh0aGlzLmFpVGFibGUsIGdldERlZmF1bHRSZWNvcmQodGhpcy5haUZpZWxkcygpKSwgW3RoaXMuYWlSZWNvcmRzKCkubGVuZ3RoXSk7XG4gICAgfVxuXG4gICAgc2VsZWN0UmVjb3JkKHJlY29yZElkOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5haVRhYmxlR3JpZFNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0UmVjb3JkKHJlY29yZElkKTtcbiAgICB9XG5cbiAgICB0b2dnbGVTZWxlY3RBbGwoY2hlY2tlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmFpVGFibGVHcmlkU2VsZWN0aW9uU2VydmljZS50b2dnbGVTZWxlY3RBbGwoY2hlY2tlZCk7XG4gICAgfVxuXG4gICAgYWRkRmllbGQoZ3JpZENvbHVtbkJsYW5rOiBIVE1MRWxlbWVudCkge1xuICAgICAgICBjb25zdCBmaWVsZCA9IHNpZ25hbChjcmVhdGVEZWZhdWx0RmllbGQodGhpcy5haVRhYmxlLCBBSVRhYmxlRmllbGRUeXBlLnRleHQpKTtcbiAgICAgICAgdGhpcy5haVRhYmxlR3JpZEZpZWxkU2VydmljZS5lZGl0RmllbGRQcm9wZXJ0eShncmlkQ29sdW1uQmxhbmssIHRoaXMuYWlUYWJsZSwgZmllbGQsIGZhbHNlKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZ3JpZC1oZWFkZXIgZC1mbGV4XCI+XG4gICAgPGRpdiBjbGFzcz1cImdyaWQtY29sdW1uLWNoZWNrYm94IGdyaWQtY2VsbFwiPlxuICAgICAgICA8bGFiZWwgdGh5Q2hlY2tib3ggdGh5TGFiZWxUZXh0PVwiXCIgW25nTW9kZWxdPVwiaXNTZWxlY3RlZEFsbFwiIChuZ01vZGVsQ2hhbmdlKT1cInRvZ2dsZVNlbGVjdEFsbCgkZXZlbnQpXCI+PC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgICBAZm9yIChmaWVsZCBvZiBncmlkRGF0YSgpLmZpZWxkczsgdHJhY2sgZmllbGQuaWQpIHtcbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJncmlkLWNlbGwgZ3JpZC1maWVsZFwiXG4gICAgICAgICAgICAjZmllbGRBY3Rpb25cbiAgICAgICAgICAgIFthdHRyLmZpZWxkSWRdPVwiZmllbGQuaWRcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyBoaWdobGlnaHQ6IGFpVGFibGUuc2VsZWN0aW9uKCkuc2VsZWN0ZWRGaWVsZHMuaGFzKGZpZWxkLmlkKSB9XCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgd2lkdGg6IGZpZWxkLndpZHRoICsgJ3B4JyB9XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXRydW5jYXRlXCI+XG4gICAgICAgICAgICAgICAgPHRoeS1pY29uIFt0aHlJY29uTmFtZV09XCJmaWVsZC5pY29uIVwiIGNsYXNzPVwibXItMiB0ZXh0LW11dGVkXCI+PC90aHktaWNvbj5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyBmaWVsZC5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBjbGFzcz1cImdyaWQtZmllbGQtYWN0aW9uXCJcbiAgICAgICAgICAgICAgICB0aHlBY3Rpb25cbiAgICAgICAgICAgICAgICB0aHlBY3RpdmVDbGFzcz1cImFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgdGh5SWNvbj1cIm1vcmUtdmVydGljYWxcIlxuICAgICAgICAgICAgICAgIFt0aHlEcm9wZG93bl09XCJmaWVsZE1lbnVcIlxuICAgICAgICAgICAgICAgIGhyZWY9XCJqYXZhc2NyaXB0OjtcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDx0aHktZHJvcGRvd24tbWVudSAjZmllbGRNZW51PlxuICAgICAgICAgICAgICAgICAgICA8ZmllbGQtbWVudSBbb3JpZ2luXT1cImZpZWxkQWN0aW9uXCIgW2ZpZWxkSWRdPVwiZmllbGQuaWRcIiBbYWlUYWJsZV09XCJhaVRhYmxlXCIgW2ZpZWxkTWVudXNdPVwiZmllbGRNZW51c1wiPjwvZmllbGQtbWVudT5cbiAgICAgICAgICAgICAgICA8L3RoeS1kcm9wZG93bi1tZW51PlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG4gICAgPGRpdiBjbGFzcz1cImdyaWQtY29sdW1uLWJsYW5rIGN1cnNvci1wb2ludGVyXCIgI2dyaWRDb2x1bW5CbGFuayAoY2xpY2spPVwiYWRkRmllbGQoZ3JpZENvbHVtbkJsYW5rKVwiPlxuICAgICAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJwbHVzXCI+PC90aHktaWNvbj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImdyaWQtYm9keSBkLWZsZXhcIj5cbiAgICBAZm9yIChyZWNvcmQgb2YgZ3JpZERhdGEoKS5yZWNvcmRzOyB0cmFjayByZWNvcmQuaWQ7IGxldCBpbmRleCA9ICRpbmRleCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZC1yb3cgZC1mbGV4XCIgW25nQ2xhc3NdPVwieyBoaWdobGlnaHQ6IGFpVGFibGUuc2VsZWN0aW9uKCkuc2VsZWN0ZWRSZWNvcmRzLmhhcyhyZWNvcmQuaWQpIH1cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkLXJvdy1pbmRleFwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJyZWNvcmQuY2hlY2tlZCA/ICdjaGVja2VkLWJveCcgOiAndW5jaGVja2VkLWJveCdcIlxuICAgICAgICAgICAgICAgICAgICB0aHlDaGVja2JveFxuICAgICAgICAgICAgICAgICAgICB0aHlMYWJlbFRleHQ9XCJcIlxuICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJyZWNvcmQuY2hlY2tlZFwiXG4gICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNlbGVjdFJlY29yZChyZWNvcmQuaWQpXCJcbiAgICAgICAgICAgICAgICA+PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8c3BhbiBbbmdDbGFzc109XCJyZWNvcmQuY2hlY2tlZCA/ICdncmlkLXJvdy1uby1udW1iZXInIDogJ2dyaWQtcm93LW51bWJlcidcIj4ge3sgaW5kZXggKyAxIH19IDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgQGZvciAoZmllbGQgb2YgZ3JpZERhdGEoKS5maWVsZHM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJncmlkLWNlbGxcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICBoaWdobGlnaHQ6IGFpVGFibGUuc2VsZWN0aW9uKCkuc2VsZWN0ZWRDZWxscy5oYXMocmVjb3JkLmlkKSB8fCBhaVRhYmxlLnNlbGVjdGlvbigpLnNlbGVjdGVkRmllbGRzLmhhcyhmaWVsZC5pZCksXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZDogYWlUYWJsZS5zZWxlY3Rpb24oKS5zZWxlY3RlZENlbGxzLmdldChyZWNvcmQuaWQpPy5oYXNPd25Qcm9wZXJ0eShmaWVsZC5pZClcbiAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLnR5cGVdPVwiW2ZpZWxkLnR5cGVdXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuZmllbGRJZF09XCJbZmllbGQuaWRdXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIucmVjb3JkSWRdPVwiW3JlY29yZC5pZF1cIlxuICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7IHdpZHRoOiBmaWVsZC53aWR0aCArICdweCcgfVwiXG4gICAgICAgICAgICAgICAgICAgICNjZWxsXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBAc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAY2FzZSAoQUlUYWJsZUZpZWxkVHlwZS5zZWxlY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCFmaWVsZC5pc011bHRpcGxlICYmIHJlY29yZC52YWx1ZXNbZmllbGQuaWRdIHwgc2VsZWN0T3B0aW9uOiBmaWVsZFsnb3B0aW9ucyddOyBhcyBzZWxlY3RlZE9wdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGh5LXRhZyBbdGh5Q29sb3JdPVwic2VsZWN0ZWRPcHRpb24hLmNvbG9yIVwiPnt7IHNlbGVjdGVkT3B0aW9uLm5hbWUgfX08L3RoeS10YWc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKEFJVGFibGVGaWVsZFR5cGUuZGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHJlY29yZC52YWx1ZXNbZmllbGQuaWRdIHwgdGh5RGF0ZVBpY2tlckZvcm1hdCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKEFJVGFibGVGaWVsZFR5cGUucmF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aHktcmF0ZSBbKG5nTW9kZWwpXT1cInJlY29yZC52YWx1ZXNbZmllbGQuaWRdXCI+PC90aHktcmF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlIChBSVRhYmxlRmllbGRUeXBlLmxpbmspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImQtYmxvY2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHlTdG9wUHJvcGFnYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGh5RmxleGlibGVUZXh0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aHlUb29sdGlwQ29udGVudF09XCJyZWNvcmQudmFsdWVzW2ZpZWxkLmlkXT8udGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cInJlY29yZC52YWx1ZXNbZmllbGQuaWRdPy51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3sgcmVjb3JkLnZhbHVlc1tmaWVsZC5pZF0/LnRleHQgfX08L2FcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBAZGVmYXVsdCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXRydW5jYXRlXCI+IHt7IHJlY29yZC52YWx1ZXNbZmllbGQuaWRdIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdXRvZmlsbC1jb250YWluZXJcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkLWNvbHVtbi1ibGFua1wiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG4gICAgPGRpdiBjbGFzcz1cImdyaWQtcm93LWluc2VydCBncmlkLXJvdyBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJhZGRSZWNvcmQoKVwiPlxuICAgICAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJwbHVzXCI+PC90aHktaWNvbj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2ICNhY3RpdmVCb3JkZXIgY2xhc3M9XCJhY3RpdmUtYm9yZGVyXCI+PC9kaXY+XG4iXX0=
|
package/esm2022/pipes/grid.mjs
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
import { Pipe } from '@angular/core';
|
2
2
|
import * as i0 from "@angular/core";
|
3
|
-
;
|
4
3
|
export class SelectOptionPipe {
|
5
4
|
transform(id, options) {
|
6
5
|
return options.find((item) => item.id === id);
|
@@ -15,4 +14,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
15
14
|
standalone: true
|
16
15
|
}]
|
17
16
|
}] });
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL3BpcGVzL2dyaWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBT3BELE1BQU0sT0FBTyxnQkFBZ0I7SUFDekIsU0FBUyxDQUFDLEVBQVUsRUFBRSxPQUE4QjtRQUNoRCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQzs4R0FIUSxnQkFBZ0I7NEdBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFKNUIsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsY0FBYztvQkFDcEIsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQUlUYWJsZVNlbGVjdE9wdGlvbiB9IGZyb20gJy4uL2NvcmUnO1xuXG5AUGlwZSh7XG4gICAgbmFtZTogJ3NlbGVjdE9wdGlvbicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RPcHRpb25QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKGlkOiBzdHJpbmcsIG9wdGlvbnM6IEFJVGFibGVTZWxlY3RPcHRpb25bXSkge1xuICAgICAgICByZXR1cm4gb3B0aW9ucy5maW5kKChpdGVtKSA9PiBpdGVtLmlkID09PSBpZCk7XG4gICAgfVxufVxuIl19
|
package/esm2022/public-api.mjs
CHANGED
@@ -4,4 +4,5 @@ export * from './pipes';
|
|
4
4
|
export * from './constants';
|
5
5
|
export * from './utils';
|
6
6
|
export * from './core';
|
7
|
-
|
7
|
+
export * from './components';
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZ3JpZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3BpcGVzJztcbmV4cG9ydCAqIGZyb20gJy4vY29uc3RhbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb3JlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cyc7Il19
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import { Injectable
|
1
|
+
import { Injectable } from '@angular/core';
|
2
2
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
3
|
-
import { fromEvent } from 'rxjs';
|
3
|
+
import { fromEvent, Subject } from 'rxjs';
|
4
4
|
import { DBL_CLICK_EDIT_TYPE } from '../constants';
|
5
5
|
import { getRecordOrField } from '../utils';
|
6
6
|
import { GRID_CELL_EDITOR_MAP } from '../constants/editor';
|
@@ -10,6 +10,7 @@ export class AITableGridEventService {
|
|
10
10
|
constructor(thyPopover) {
|
11
11
|
this.thyPopover = thyPopover;
|
12
12
|
this.takeUntilDestroyed = takeUntilDestroyed();
|
13
|
+
this.mousedownEvent$ = new Subject();
|
13
14
|
}
|
14
15
|
initialize(aiTable, aiFieldRenderers) {
|
15
16
|
this.aiTable = aiTable;
|
@@ -21,17 +22,22 @@ export class AITableGridEventService {
|
|
21
22
|
.subscribe((event) => {
|
22
23
|
this.dblClick(event);
|
23
24
|
});
|
25
|
+
fromEvent(element, 'mousedown')
|
26
|
+
.pipe(this.takeUntilDestroyed)
|
27
|
+
.subscribe((event) => {
|
28
|
+
this.mousedownEvent$.next(event);
|
29
|
+
});
|
24
30
|
}
|
25
31
|
dblClick(event) {
|
26
32
|
const cellDom = event.target.closest('.grid-cell');
|
27
33
|
const type = cellDom && cellDom.getAttribute('type');
|
28
|
-
if (type && DBL_CLICK_EDIT_TYPE.includes(
|
34
|
+
if (type && DBL_CLICK_EDIT_TYPE.includes(type)) {
|
29
35
|
this.openEdit(cellDom);
|
30
36
|
}
|
31
37
|
}
|
32
38
|
getEditorComponent(type) {
|
33
39
|
if (this.aiFieldRenderers && this.aiFieldRenderers[type]) {
|
34
|
-
return this.aiFieldRenderers[type].
|
40
|
+
return this.aiFieldRenderers[type].editor;
|
35
41
|
}
|
36
42
|
return GRID_CELL_EDITOR_MAP[type];
|
37
43
|
}
|
@@ -54,10 +60,11 @@ export class AITableGridEventService {
|
|
54
60
|
height: height + 2 + 'px',
|
55
61
|
placement: 'top',
|
56
62
|
offset: -(height + 4),
|
63
|
+
minWidth: width,
|
57
64
|
initialState: {
|
58
65
|
field: field,
|
59
66
|
record: record,
|
60
|
-
aiTable:
|
67
|
+
aiTable: this.aiTable
|
61
68
|
},
|
62
69
|
panelClass: 'grid-cell-editor',
|
63
70
|
outsideClosable: false,
|
@@ -72,4 +79,4 @@ export class AITableGridEventService {
|
|
72
79
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AITableGridEventService, decorators: [{
|
73
80
|
type: Injectable
|
74
81
|
}], ctorParameters: () => [{ type: i1.ThyPopover }] });
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL3NlcnZpY2VzL2V2ZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7QUFLM0QsTUFBTSxPQUFPLHVCQUF1QjtJQVNoQyxZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBSjFDLHVCQUFrQixHQUFHLGtCQUFrQixFQUFFLENBQUM7UUFFMUMsb0JBQWUsR0FBRyxJQUFJLE9BQU8sRUFBYyxDQUFDO0lBRUMsQ0FBQztJQUU5QyxVQUFVLENBQUMsT0FBZ0IsRUFBRSxnQkFBaUY7UUFDMUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO0lBQzdDLENBQUM7SUFFRCxjQUFjLENBQUMsT0FBb0I7UUFDL0IsU0FBUyxDQUFhLE9BQU8sRUFBRSxVQUFVLENBQUM7YUFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQzthQUM3QixTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQW1CLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztRQUVQLFNBQVMsQ0FBYSxPQUFP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bnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERCTF9DTElDS19FRElUX1RZUEUgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZ2V0UmVjb3JkT3JGaWVsZCB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IEFJVGFibGUsIEFJVGFibGVGaWVsZCwgQUlUYWJsZUZpZWxkVHlwZSwgQUlUYWJsZVJlY29yZCB9IGZyb20gJy4uL2NvcmUnO1xuaW1wb3J0IHsgR1JJRF9DRUxMX0VESVRPUl9NQVAgfSBmcm9tICcuLi9jb25zdGFudHMvZWRpdG9yJztcbmltcG9ydCB7IFRoeVBvcG92ZXIgfSBmcm9tICduZ3gtdGV0aHlzL3BvcG92ZXInO1xuaW1wb3J0IHsgQUlUYWJsZUdyaWRDZWxsUmVuZGVyU2NoZW1hIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQUlUYWJsZUdyaWRFdmVudFNlcnZpY2Uge1xuICAgIGFpVGFibGUhOiBBSVRhYmxlO1xuXG4gICAgYWlGaWVsZFJlbmRlcmVycz86IFBhcnRpYWw8UmVjb3JkPEFJVGFibGVGaWVsZFR5cGUsIEFJVGFibGVHcmlkQ2VsbFJlbmRlclNjaGVtYT4+O1xuXG4gICAgdGFrZVVudGlsRGVzdHJveWVkID0gdGFrZVVudGlsRGVzdHJveWVkKCk7XG5cbiAgICBtb3VzZWRvd25FdmVudCQgPSBuZXcgU3ViamVjdDxNb3VzZUV2ZW50PigpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB0aHlQb3BvdmVyOiBUaHlQb3BvdmVyKSB7fVxuXG4gICAgaW5pdGlhbGl6ZShhaVRhYmxlOiBBSVRhYmxlLCBhaUZpZWxkUmVuZGVyZXJzPzogUGFydGlhbDxSZWNvcmQ8QUlUYWJsZUZpZWxkVHlwZSwgQUlUYWJsZUdyaWRDZWxsUmVuZGVyU2NoZW1hPj4pIHtcbiAgICAgICAgdGhpcy5haVRhYmxlID0gYWlUYWJsZTtcbiAgICAgICAgdGhpcy5haUZpZWxkUmVuZGVyZXJzID0gYWlGaWVsZFJlbmRlcmVycztcbiAgICB9XG5cbiAgICByZWdpc3RlckV2ZW50cyhlbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICAgICAgICBmcm9tRXZlbnQ8TW91c2VFdmVudD4oZWxlbWVudCwgJ2RibGNsaWNrJylcbiAgICAgICAgICAgIC5waXBlKHRoaXMudGFrZVVudGlsRGVzdHJveWVkKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRibENsaWNrKGV2ZW50IGFzIE1vdXNlRXZlbnQpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KGVsZW1lbnQsICdtb3VzZWRvd24nKVxuICAgICAgICAgICAgLnBpcGUodGhpcy50YWtlVW50aWxEZXN0cm95ZWQpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubW91c2Vkb3duRXZlbnQkLm5leHQoZXZlbnQgYXMgTW91c2VFdmVudCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRibENsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGNlbGxEb20gPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5jbG9zZXN0KCcuZ3JpZC1jZWxsJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHR5cGUgPSBjZWxsRG9tICYmIGNlbGxEb20uZ2V0QXR0cmlidXRlKCd0eXBlJykhIGFzIEFJVGFibGVGaWVsZFR5cGU7XG4gICAgICAgIGlmICh0eXBlICYmIERCTF9DTElDS19FRElUX1RZUEUuaW5jbHVkZXModHlwZSkpIHtcbiAgICAgICAgICAgIHRoaXMub3BlbkVkaXQoY2VsbERvbSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEVkaXRvckNvbXBvbmVudCh0eXBlOiBBSVRhYmxlRmllbGRUeXBlKSB7XG4gICAgICAgIGlmICh0aGlzLmFpRmllbGRSZW5kZXJlcnMgJiYgdGhpcy5haUZpZWxkUmVuZGVyZXJzW3R5cGVdKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5haUZpZWxkUmVuZGVyZXJzW3R5cGVdIS5lZGl0b3I7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIEdSSURfQ0VMTF9FRElUT1JfTUFQW3R5cGVdO1xuICAgIH1cblxuICAgIHByaXZhdGUgb3BlbkVkaXQoY2VsbERvbTogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgeyB4LCB5LCB3aWR0aCwgaGVpZ2h0IH0gPSBjZWxsRG9tLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCBmaWVsZElkID0gY2VsbERvbS5nZXRBdHRyaWJ1dGUoJ2ZpZWxkSWQnKSE7XG4gICAgICAgIGNvbnN0IHJlY29yZElkID0gY2VsbERvbS5nZXRBdHRyaWJ1dGUoJ3JlY29yZElkJykhO1xuICAgICAgICBjb25zdCBmaWVsZCA9IGdldFJlY29yZE9yRmllbGQodGhpcy5haVRhYmxlLmZpZWxkcywgZmllbGRJZCkgYXMgU2lnbmFsPEFJVGFibGVGaWVsZD47XG4gICAgICAgIGNvbnN0IHJlY29yZCA9IGdldFJlY29yZE9yRmllbGQodGhpcy5haVRhYmxlLnJlY29yZHMsIHJlY29yZElkKSBhcyBTaWduYWw8QUlUYWJsZVJlY29yZD47XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IHRoaXMuZ2V0RWRpdG9yQ29tcG9uZW50KGZpZWxkKCkudHlwZSk7XG4gICAgICAgIHRoaXMudGh5UG9wb3Zlci5vcGVuKGNvbXBvbmVudCwge1xuICAgICAgICAgICAgb3JpZ2luOiBjZWxsRG9tLFxuICAgICAgICAgICAgb3JpZ2luUG9zaXRpb246IHtcbiAgICAgICAgICAgICAgICB4OiB4IC0gMSxcbiAgICAgICAgICAgICAgICB5OiB5ICsgMSxcbiAgICAgICAgICAgICAgICB3aWR0aDogd2lkdGggKyAyLFxuICAgICAgICAgICAgICAgIGhlaWdodDogaGVpZ2h0ICsgMlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHdpZHRoOiB3aWR0aCArIDIgKyAncHgnLFxuICAgICAgICAgICAgaGVpZ2h0OiBoZWlnaHQgKyAyICsgJ3B4JyxcbiAgICAgICAgICAgIHBsYWNlbWVudDogJ3RvcCcsXG4gICAgICAgICAgICBvZmZzZXQ6IC0oaGVpZ2h0ICsgNCksXG4gICAgICAgICAgICBtaW5XaWR0aDogd2lkdGgsXG4gICAgICAgICAgICBpbml0aWFsU3RhdGU6IHtcbiAgICAgICAgICAgICAgICBmaWVsZDogZmllbGQsXG4gICAgICAgICAgICAgICAgcmVjb3JkOiByZWNvcmQsXG4gICAgICAgICAgICAgICAgYWlUYWJsZTogdGhpcy5haVRhYmxlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGFuZWxDbGFzczogJ2dyaWQtY2VsbC1lZGl0b3InLFxuICAgICAgICAgICAgb3V0c2lkZUNsb3NhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGhhc0JhY2tkcm9wOiBmYWxzZSxcbiAgICAgICAgICAgIG1hbnVhbENsb3N1cmU6IHRydWUsXG4gICAgICAgICAgICBhbmltYXRpb25EaXNhYmxlZDogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
|
@@ -0,0 +1,32 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import { AITableFieldPropertyEditor } from '../components';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
import * as i1 from "ngx-tethys/popover";
|
5
|
+
export const AI_TABLE_GRID_FIELD_SERVICE_MAP = new WeakMap();
|
6
|
+
export class AITableGridFieldService {
|
7
|
+
constructor(thyPopover) {
|
8
|
+
this.thyPopover = thyPopover;
|
9
|
+
}
|
10
|
+
initAIFieldConfig(aiFieldConfig) {
|
11
|
+
this.aiFieldConfig = aiFieldConfig;
|
12
|
+
}
|
13
|
+
editFieldProperty(origin, aiTable, aiField, isUpdate) {
|
14
|
+
const component = this.aiFieldConfig?.fieldPropertyEditor ?? AITableFieldPropertyEditor;
|
15
|
+
this.thyPopover.open(component, {
|
16
|
+
origin: origin,
|
17
|
+
manualClosure: true,
|
18
|
+
placement: 'bottomLeft',
|
19
|
+
initialState: {
|
20
|
+
aiTable,
|
21
|
+
aiField,
|
22
|
+
isUpdate
|
23
|
+
}
|
24
|
+
});
|
25
|
+
}
|
26
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AITableGridFieldService, deps: [{ token: i1.ThyPopover }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
27
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AITableGridFieldService }); }
|
28
|
+
}
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AITableGridFieldService, decorators: [{
|
30
|
+
type: Injectable
|
31
|
+
}], ctorParameters: () => [{ type: i1.ThyPopover }] });
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL3NlcnZpY2VzL2ZpZWxkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBK0IsTUFBTSxlQUFlLENBQUM7QUFHcEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFHM0QsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsSUFBSSxPQUFPLEVBQW9DLENBQUM7QUFHL0YsTUFBTSxPQUFPLHVCQUF1QjtJQUdoQyxZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO0lBQUcsQ0FBQztJQUU5QyxpQkFBaUIsQ0FBQyxhQUF3QztRQUN0RCxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztJQUN2QyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsTUFBcUMsRUFBRSxPQUFnQixFQUFFLE9BQXFDLEVBQUUsUUFBaUI7UUFDL0gsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxtQkFBbUIsSUFBSSwwQkFBMEIsQ0FBQztRQUN4RixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDNUIsTUFBTSxFQUFFLE1BQU07WUFDZCxhQUFhLEVBQUUsSUFBSTtZQUNuQixTQUFTLEVBQUUsWUFBWTtZQUN2QixZQUFZLEVBQUU7Z0JBQ1YsT0FBTztnQkFDUCxPQUFPO2dCQUNQLFFBQVE7YUFDWDtTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBckJRLHVCQUF1QjtrSEFBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSwgTW9kZWxTaWduYWwsIFdyaXRhYmxlU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlQb3BvdmVyIH0gZnJvbSAnbmd4LXRldGh5cy9wb3BvdmVyJztcbmltcG9ydCB7IEFJVGFibGUsIEFJVGFibGVGaWVsZCwgQUlUYWJsZUZpZWxkcyB9IGZyb20gJy4uL2NvcmUnO1xuaW1wb3J0IHsgQUlUYWJsZUZpZWxkUHJvcGVydHlFZGl0b3IgfSBmcm9tICcuLi9jb21wb25lbnRzJztcbmltcG9ydCB7IEFJRmllbGRDb25maWcgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBBSV9UQUJMRV9HUklEX0ZJRUxEX1NFUlZJQ0VfTUFQID0gbmV3IFdlYWtNYXA8QUlUYWJsZSwgQUlUYWJsZUdyaWRGaWVsZFNlcnZpY2U+KCk7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBSVRhYmxlR3JpZEZpZWxkU2VydmljZSB7XG4gICAgYWlGaWVsZENvbmZpZzogQUlGaWVsZENvbmZpZyB8IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdGh5UG9wb3ZlcjogVGh5UG9wb3Zlcikge31cblxuICAgIGluaXRBSUZpZWxkQ29uZmlnKGFpRmllbGRDb25maWc6IEFJRmllbGRDb25maWcgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5haUZpZWxkQ29uZmlnID0gYWlGaWVsZENvbmZpZztcbiAgICB9XG5cbiAgICBlZGl0RmllbGRQcm9wZXJ0eShvcmlnaW46IEhUTUxFbGVtZW50IHwgRWxlbWVudFJlZjxhbnk+LCBhaVRhYmxlOiBBSVRhYmxlLCBhaUZpZWxkOiBXcml0YWJsZVNpZ25hbDxBSVRhYmxlRmllbGQ+LCBpc1VwZGF0ZTogYm9vbGVhbikge1xuICAgICAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLmFpRmllbGRDb25maWc/LmZpZWxkUHJvcGVydHlFZGl0b3IgPz8gQUlUYWJsZUZpZWxkUHJvcGVydHlFZGl0b3I7XG4gICAgICAgIHRoaXMudGh5UG9wb3Zlci5vcGVuKGNvbXBvbmVudCwge1xuICAgICAgICAgICAgb3JpZ2luOiBvcmlnaW4sXG4gICAgICAgICAgICBtYW51YWxDbG9zdXJlOiB0cnVlLFxuICAgICAgICAgICAgcGxhY2VtZW50OiAnYm90dG9tTGVmdCcsXG4gICAgICAgICAgICBpbml0aWFsU3RhdGU6IHtcbiAgICAgICAgICAgICAgICBhaVRhYmxlLFxuICAgICAgICAgICAgICAgIGFpRmllbGQsXG4gICAgICAgICAgICAgICAgaXNVcGRhdGVcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
@@ -0,0 +1,64 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
export class AITableGridSelectionService {
|
4
|
+
constructor() { }
|
5
|
+
initialize(aiTable) {
|
6
|
+
this.aiTable = aiTable;
|
7
|
+
}
|
8
|
+
clearSelection() {
|
9
|
+
this.aiTable.selection.set({
|
10
|
+
selectedRecords: new Map(),
|
11
|
+
selectedFields: new Map(),
|
12
|
+
selectedCells: new Map()
|
13
|
+
});
|
14
|
+
}
|
15
|
+
selectCell(recordId, fieldId) {
|
16
|
+
this.clearSelection();
|
17
|
+
this.aiTable.selection().selectedCells.set(recordId, { [fieldId]: true });
|
18
|
+
}
|
19
|
+
selectField(fieldId) {
|
20
|
+
this.clearSelection();
|
21
|
+
this.aiTable.selection().selectedFields.set(fieldId, true);
|
22
|
+
}
|
23
|
+
selectRecord(recordId) {
|
24
|
+
if (this.aiTable.selection().selectedRecords.has(recordId)) {
|
25
|
+
this.aiTable.selection().selectedRecords.delete(recordId);
|
26
|
+
}
|
27
|
+
else {
|
28
|
+
this.aiTable.selection().selectedRecords.set(recordId, true);
|
29
|
+
}
|
30
|
+
this.aiTable.selection.set({
|
31
|
+
selectedRecords: this.aiTable.selection().selectedRecords,
|
32
|
+
selectedFields: new Map(),
|
33
|
+
selectedCells: new Map()
|
34
|
+
});
|
35
|
+
}
|
36
|
+
toggleSelectAll(checked) {
|
37
|
+
this.clearSelection();
|
38
|
+
if (checked) {
|
39
|
+
this.aiTable.records().forEach((item) => {
|
40
|
+
this.selectRecord(item.id);
|
41
|
+
});
|
42
|
+
}
|
43
|
+
}
|
44
|
+
updateSelect(event) {
|
45
|
+
const target = event.target;
|
46
|
+
const cellDom = target.closest('.grid-cell');
|
47
|
+
const colDom = target.closest('.grid-field');
|
48
|
+
if (cellDom) {
|
49
|
+
const fieldId = cellDom.getAttribute('fieldId');
|
50
|
+
const recordId = cellDom.getAttribute('recordId');
|
51
|
+
fieldId && recordId && this.selectCell(recordId, fieldId);
|
52
|
+
}
|
53
|
+
if (colDom) {
|
54
|
+
const fieldId = colDom.getAttribute('fieldId');
|
55
|
+
fieldId && this.selectField(fieldId);
|
56
|
+
}
|
57
|
+
}
|
58
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AITableGridSelectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
59
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AITableGridSelectionService }); }
|
60
|
+
}
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AITableGridSelectionService, decorators: [{
|
62
|
+
type: Injectable
|
63
|
+
}], ctorParameters: () => [] });
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLnNlcnZpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9zZXJ2aWNlcy9zZWxlY3Rpb24uc2Vydml2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUkzQyxNQUFNLE9BQU8sMkJBQTJCO0lBR3BDLGdCQUFlLENBQUM7SUFFaEIsVUFBVSxDQUFDLE9BQWdCO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQzNCLENBQUM7SUFFRCxjQUFjO1FBQ1YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO1lBQ3ZCLGVBQWUsRUFBRSxJQUFJLEdBQUcsRUFBRTtZQUMxQixjQUFjLEVBQUUsSUFBSSxHQUFHLEVBQUU7WUFDekIsYUFBYSxFQUFFLElBQUksR0FBRyxFQUFFO1NBQzNCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxVQUFVLENBQUMsUUFBZ0IsRUFBRSxPQUFlO1FBQ3hDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBZTtRQUN2QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsWUFBWSxDQUFDLFFBQWdCO1FBQ3pCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDekQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlELENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNqRSxDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO1lBQ3ZCLGVBQWUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLGVBQWU7WUFDekQsY0FBYyxFQUFFLElBQUksR0FBRyxFQUFFO1lBQ3pCLGFBQWEsRUFBRSxJQUFJLEdBQUcsRUFBRTtTQUMzQixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsZUFBZSxDQUFDLE9BQWdCO1FBQzVCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDcEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDL0IsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFpQjtRQUMxQixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBcUIsQ0FBQztRQUMzQyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzdDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDN0MsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNWLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDaEQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNsRCxPQUFPLElBQUksUUFBUSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFDRCxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1QsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMvQyxPQUFPLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6QyxDQUFDO0lBQ0wsQ0FBQzs4R0E5RFEsMkJBQTJCO2tIQUEzQiwyQkFBMkI7OzJGQUEzQiwyQkFBMkI7a0JBRHZDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBSVRhYmxlIH0gZnJvbSAnLi4vY29yZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBSVRhYmxlR3JpZFNlbGVjdGlvblNlcnZpY2Uge1xuICAgIGFpVGFibGUhOiBBSVRhYmxlO1xuXG4gICAgY29uc3RydWN0b3IoKSB7fVxuXG4gICAgaW5pdGlhbGl6ZShhaVRhYmxlOiBBSVRhYmxlKSB7XG4gICAgICAgIHRoaXMuYWlUYWJsZSA9IGFpVGFibGU7XG4gICAgfVxuXG4gICAgY2xlYXJTZWxlY3Rpb24oKSB7XG4gICAgICAgIHRoaXMuYWlUYWJsZS5zZWxlY3Rpb24uc2V0KHtcbiAgICAgICAgICAgIHNlbGVjdGVkUmVjb3JkczogbmV3IE1hcCgpLFxuICAgICAgICAgICAgc2VsZWN0ZWRGaWVsZHM6IG5ldyBNYXAoKSxcbiAgICAgICAgICAgIHNlbGVjdGVkQ2VsbHM6IG5ldyBNYXAoKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzZWxlY3RDZWxsKHJlY29yZElkOiBzdHJpbmcsIGZpZWxkSWQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLmNsZWFyU2VsZWN0aW9uKCk7XG4gICAgICAgIHRoaXMuYWlUYWJsZS5zZWxlY3Rpb24oKS5zZWxlY3RlZENlbGxzLnNldChyZWNvcmRJZCwgeyBbZmllbGRJZF06IHRydWUgfSk7XG4gICAgfVxuXG4gICAgc2VsZWN0RmllbGQoZmllbGRJZDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuY2xlYXJTZWxlY3Rpb24oKTtcbiAgICAgICAgdGhpcy5haVRhYmxlLnNlbGVjdGlvbigpLnNlbGVjdGVkRmllbGRzLnNldChmaWVsZElkLCB0cnVlKTtcbiAgICB9XG5cbiAgICBzZWxlY3RSZWNvcmQocmVjb3JkSWQ6IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5haVRhYmxlLnNlbGVjdGlvbigpLnNlbGVjdGVkUmVjb3Jkcy5oYXMocmVjb3JkSWQpKSB7XG4gICAgICAgICAgICB0aGlzLmFpVGFibGUuc2VsZWN0aW9uKCkuc2VsZWN0ZWRSZWNvcmRzLmRlbGV0ZShyZWNvcmRJZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmFpVGFibGUuc2VsZWN0aW9uKCkuc2VsZWN0ZWRSZWNvcmRzLnNldChyZWNvcmRJZCwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5haVRhYmxlLnNlbGVjdGlvbi5zZXQoe1xuICAgICAgICAgICAgc2VsZWN0ZWRSZWNvcmRzOiB0aGlzLmFpVGFibGUuc2VsZWN0aW9uKCkuc2VsZWN0ZWRSZWNvcmRzLFxuICAgICAgICAgICAgc2VsZWN0ZWRGaWVsZHM6IG5ldyBNYXAoKSxcbiAgICAgICAgICAgIHNlbGVjdGVkQ2VsbHM6IG5ldyBNYXAoKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB0b2dnbGVTZWxlY3RBbGwoY2hlY2tlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmNsZWFyU2VsZWN0aW9uKCk7XG4gICAgICAgIGlmIChjaGVja2VkKSB7XG4gICAgICAgICAgICB0aGlzLmFpVGFibGUucmVjb3JkcygpLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdFJlY29yZChpdGVtLmlkKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlU2VsZWN0KGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgY29uc3QgY2VsbERvbSA9IHRhcmdldC5jbG9zZXN0KCcuZ3JpZC1jZWxsJyk7XG4gICAgICAgIGNvbnN0IGNvbERvbSA9IHRhcmdldC5jbG9zZXN0KCcuZ3JpZC1maWVsZCcpO1xuICAgICAgICBpZiAoY2VsbERvbSkge1xuICAgICAgICAgICAgY29uc3QgZmllbGRJZCA9IGNlbGxEb20uZ2V0QXR0cmlidXRlKCdmaWVsZElkJyk7XG4gICAgICAgICAgICBjb25zdCByZWNvcmRJZCA9IGNlbGxEb20uZ2V0QXR0cmlidXRlKCdyZWNvcmRJZCcpO1xuICAgICAgICAgICAgZmllbGRJZCAmJiByZWNvcmRJZCAmJiB0aGlzLnNlbGVjdENlbGwocmVjb3JkSWQsIGZpZWxkSWQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb2xEb20pIHtcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkSWQgPSBjb2xEb20uZ2V0QXR0cmlidXRlKCdmaWVsZElkJyk7XG4gICAgICAgICAgICBmaWVsZElkICYmIHRoaXMuc2VsZWN0RmllbGQoZmllbGRJZCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
@@ -0,0 +1,2 @@
|
|
1
|
+
export {};
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy90eXBlcy9maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBSVRhYmxlLCBBSVRhYmxlRmllbGQgfSBmcm9tICcuLi9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBBSVRhYmxlRmllbGRNZW51SXRlbSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIGljb24/OiBzdHJpbmc7XG4gICAgZXhlYz86IChhaVRhYmxlOiBBSVRhYmxlLCBmaWVsZDogU2lnbmFsPEFJVGFibGVGaWVsZD4sIG9yaWdpbj86IEhUTUxFbGVtZW50IHwgRWxlbWVudFJlZjxhbnk+KSA9PiB2b2lkO1xuICAgIGhpZGRlbj86IChhaVRhYmxlOiBBSVRhYmxlLCBmaWVsZDogU2lnbmFsPEFJVGFibGVGaWVsZD4pID0+IGJvb2xlYW47XG4gICAgZGlzYWJsZWQ/OiAoYWlUYWJsZTogQUlUYWJsZSwgZmllbGQ6IFNpZ25hbDxBSVRhYmxlRmllbGQ+KSA9PiBib29sZWFuO1xufVxuIl19
|
package/esm2022/types/grid.mjs
CHANGED
@@ -5,4 +5,4 @@ export var AITableRowHeight;
|
|
5
5
|
AITableRowHeight[AITableRowHeight["Tall"] = 3] = "Tall";
|
6
6
|
AITableRowHeight[AITableRowHeight["ExtraTall"] = 4] = "ExtraTall";
|
7
7
|
})(AITableRowHeight || (AITableRowHeight = {}));
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL3R5cGVzL2dyaWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxDQUFOLElBQVksZ0JBS1g7QUFMRCxXQUFZLGdCQUFnQjtJQUN4Qix5REFBUyxDQUFBO0lBQ1QsMkRBQVUsQ0FBQTtJQUNWLHVEQUFRLENBQUE7SUFDUixpRUFBYSxDQUFBO0FBQ2pCLENBQUMsRUFMVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBSzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUlUYWJsZUZpZWxkLCBBSVRhYmxlRmllbGRUeXBlLCBBSVRhYmxlUmVjb3JkIH0gZnJvbSAnLi4vY29yZSc7XG5pbXBvcnQgeyBBSVRhYmxlRmllbGRNZW51SXRlbSB9IGZyb20gJy4vZmllbGQnO1xuXG5leHBvcnQgZW51bSBBSVRhYmxlUm93SGVpZ2h0IHtcbiAgICBTaG9ydCA9IDEsXG4gICAgTWVkaXVtID0gMixcbiAgICBUYWxsID0gMyxcbiAgICBFeHRyYVRhbGwgPSA0XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQUlUYWJsZUdyaWRDZWxsUmVuZGVyU2NoZW1hIHtcbiAgICBlZGl0b3I6IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBSVRhYmxlR3JpZERhdGEge1xuICAgIHR5cGU6ICdncmlkJztcbiAgICBmaWVsZHM6IEFJVGFibGVGaWVsZFtdO1xuICAgIHJlY29yZHM6IEFJVGFibGVSZWNvcmRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBSVRhYmxlU2VsZWN0aW9uIHtcbiAgICBzZWxlY3RlZFJlY29yZHM6IE1hcDxzdHJpbmcsIGJvb2xlYW4+O1xuICAgIHNlbGVjdGVkRmllbGRzOiBNYXA8c3RyaW5nLCBib29sZWFuPjtcbiAgICBzZWxlY3RlZENlbGxzOiBNYXA8c3RyaW5nLCB7fT47XG59XG5leHBvcnQgaW50ZXJmYWNlIEFJRmllbGRDb25maWcge1xuICAgIGZpZWxkUmVuZGVyZXJzPzogUGFydGlhbDxSZWNvcmQ8QUlUYWJsZUZpZWxkVHlwZSwgQUlUYWJsZUdyaWRDZWxsUmVuZGVyU2NoZW1hPj47XG4gICAgZmllbGRQcm9wZXJ0eUVkaXRvcj86IGFueTtcbiAgICBmaWVsZE1lbnVzPzogQUlUYWJsZUZpZWxkTWVudUl0ZW1bXTtcbn1cbiJdfQ==
|
package/esm2022/types/index.mjs
CHANGED
@@ -1,2 +1,3 @@
|
|
1
1
|
export * from './grid';
|
2
|
-
|
2
|
+
export * from './field';
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy90eXBlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZ3JpZCc7XG5leHBvcnQgKiBmcm9tICcuL2ZpZWxkJzsiXX0=
|
package/esm2022/utils/build.mjs
CHANGED
@@ -1,9 +1,17 @@
|
|
1
|
-
;
|
2
|
-
export const buildGridData = (recordValue, fieldsValue) => {
|
1
|
+
import { FieldsMap } from '../core';
|
2
|
+
export const buildGridData = (recordValue, fieldsValue, selection) => {
|
3
3
|
return {
|
4
4
|
type: 'grid',
|
5
|
-
fields: fieldsValue
|
6
|
-
|
5
|
+
fields: fieldsValue.map(item => {
|
6
|
+
return {
|
7
|
+
...item,
|
8
|
+
icon: item.icon || FieldsMap[item.type].icon,
|
9
|
+
width: item.width || FieldsMap[item.type].width
|
10
|
+
};
|
11
|
+
}),
|
12
|
+
records: recordValue.map((item) => {
|
13
|
+
return { ...item, checked: selection.selectedRecords.has(item.id) };
|
14
|
+
})
|
7
15
|
};
|
8
16
|
};
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy91dGlscy9idWlsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlDLFNBQVMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUduRSxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxXQUEyQixFQUFFLFdBQTBCLEVBQUUsU0FBMkIsRUFBbUIsRUFBRTtJQUNuSSxPQUFPO1FBQ0gsSUFBSSxFQUFFLE1BQU07UUFDWixNQUFNLEVBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUEsRUFBRTtZQUMxQixPQUFPO2dCQUNILEdBQUcsSUFBSTtnQkFDUCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUk7Z0JBQzVDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSzthQUNsRCxDQUFBO1FBQ0wsQ0FBQyxDQUFDO1FBQ0YsT0FBTyxFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUM5QixPQUFPLEVBQUUsR0FBRyxJQUFJLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ3hFLENBQUMsQ0FBQztLQUNMLENBQUM7QUFDTixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBSVRhYmxlRmllbGRzLCBBSVRhYmxlUmVjb3JkcywgRmllbGRzTWFwIH0gZnJvbSAnLi4vY29yZSc7XG5pbXBvcnQgeyBBSVRhYmxlR3JpZERhdGEsIEFJVGFibGVTZWxlY3Rpb24gfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBidWlsZEdyaWREYXRhID0gKHJlY29yZFZhbHVlOiBBSVRhYmxlUmVjb3JkcywgZmllbGRzVmFsdWU6IEFJVGFibGVGaWVsZHMsIHNlbGVjdGlvbjogQUlUYWJsZVNlbGVjdGlvbik6IEFJVGFibGVHcmlkRGF0YSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogJ2dyaWQnLFxuICAgICAgICBmaWVsZHM6IGZpZWxkc1ZhbHVlLm1hcChpdGVtPT57XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgICAgICAgaWNvbjogaXRlbS5pY29uIHx8IEZpZWxkc01hcFtpdGVtLnR5cGVdLmljb24sXG4gICAgICAgICAgICAgICAgd2lkdGg6IGl0ZW0ud2lkdGggfHwgRmllbGRzTWFwW2l0ZW0udHlwZV0ud2lkdGhcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIHJlY29yZHM6IHJlY29yZFZhbHVlLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHsgLi4uaXRlbSwgY2hlY2tlZDogc2VsZWN0aW9uLnNlbGVjdGVkUmVjb3Jkcy5oYXMoaXRlbS5pZCkgfTtcbiAgICAgICAgfSlcbiAgICB9O1xufTtcbiJdfQ==
|