@ai-table/grid 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. package/components/cell-editors/abstract-cell-editor.component.d.ts.map +1 -1
  2. package/components/cell-editors/cell-editor.scss +22 -2
  3. package/components/cell-editors/select/select-editor.component.d.ts +7 -8
  4. package/components/cell-editors/select/select-editor.component.d.ts.map +1 -1
  5. package/components/cell-views/select/option.component.d.ts +11 -0
  6. package/components/cell-views/select/option.component.d.ts.map +1 -0
  7. package/components/field-property-editor/field-property-editor.component.d.ts +13 -4
  8. package/components/field-property-editor/field-property-editor.component.d.ts.map +1 -1
  9. package/components/index.d.ts +1 -0
  10. package/components/index.d.ts.map +1 -1
  11. package/constants/field.d.ts.map +1 -1
  12. package/core/action/field.d.ts +3 -3
  13. package/core/action/field.d.ts.map +1 -1
  14. package/core/action/general.d.ts +1 -1
  15. package/core/action/general.d.ts.map +1 -1
  16. package/core/action/index.d.ts +1 -1
  17. package/core/action/record.d.ts +3 -3
  18. package/core/action/record.d.ts.map +1 -1
  19. package/core/constants/field.d.ts +22 -4
  20. package/core/constants/field.d.ts.map +1 -1
  21. package/core/types/action.d.ts +10 -8
  22. package/core/types/action.d.ts.map +1 -1
  23. package/core/types/core.d.ts +30 -18
  24. package/core/types/core.d.ts.map +1 -1
  25. package/core/utils/field.d.ts +1 -1
  26. package/core/utils/id-creator.d.ts +1 -1
  27. package/core/utils/id-creator.d.ts.map +1 -1
  28. package/core/utils/queries.d.ts +5 -4
  29. package/core/utils/queries.d.ts.map +1 -1
  30. package/esm2022/components/cell-editors/abstract-cell-editor.component.mjs +6 -8
  31. package/esm2022/components/cell-editors/date-time/date-time-editor.component.mjs +3 -3
  32. package/esm2022/components/cell-editors/link/number-editor.component.mjs +3 -3
  33. package/esm2022/components/cell-editors/number/number-editor.component.mjs +3 -3
  34. package/esm2022/components/cell-editors/progress/progress-editor.component.mjs +3 -3
  35. package/esm2022/components/cell-editors/rating/rating-editor.component.mjs +3 -3
  36. package/esm2022/components/cell-editors/select/select-editor.component.mjs +37 -27
  37. package/esm2022/components/cell-editors/text/text-editor.component.mjs +3 -3
  38. package/esm2022/components/cell-views/select/option.component.mjs +27 -0
  39. package/esm2022/components/field-menu/field-menu.component.mjs +3 -3
  40. package/esm2022/components/field-property-editor/field-property-editor.component.mjs +17 -13
  41. package/esm2022/components/index.mjs +2 -1
  42. package/esm2022/constants/field.mjs +3 -4
  43. package/esm2022/core/action/field.mjs +12 -9
  44. package/esm2022/core/action/general.mjs +45 -32
  45. package/esm2022/core/action/record.mjs +1 -1
  46. package/esm2022/core/constants/field.mjs +10 -2
  47. package/esm2022/core/types/action.mjs +1 -1
  48. package/esm2022/core/types/core.mjs +8 -1
  49. package/esm2022/core/utils/field.mjs +3 -3
  50. package/esm2022/core/utils/id-creator.mjs +4 -10
  51. package/esm2022/core/utils/queries.mjs +12 -12
  52. package/esm2022/grid.component.mjs +19 -13
  53. package/esm2022/pipes/grid.pipe.mjs +67 -7
  54. package/esm2022/services/event.service.mjs +8 -5
  55. package/esm2022/services/field.service.mjs +6 -6
  56. package/esm2022/services/selection.service.mjs +3 -3
  57. package/esm2022/types/field.mjs +1 -1
  58. package/esm2022/types/grid.mjs +1 -1
  59. package/esm2022/utils/build.mjs +4 -27
  60. package/fesm2022/ai-table-grid.mjs +275 -177
  61. package/fesm2022/ai-table-grid.mjs.map +1 -1
  62. package/grid.component.d.ts +2 -1
  63. package/grid.component.d.ts.map +1 -1
  64. package/package.json +3 -3
  65. package/pipes/grid.pipe.d.ts +22 -2
  66. package/pipes/grid.pipe.d.ts.map +1 -1
  67. package/services/event.service.d.ts +1 -0
  68. package/services/event.service.d.ts.map +1 -1
  69. package/services/field.service.d.ts +1 -1
  70. package/services/field.service.d.ts.map +1 -1
  71. package/styles/styles.scss +2 -3
  72. package/types/field.d.ts +4 -1
  73. package/types/field.d.ts.map +1 -1
  74. package/types/grid.d.ts +2 -1
  75. package/types/grid.d.ts.map +1 -1
  76. package/utils/build.d.ts +2 -3
  77. package/utils/build.d.ts.map +1 -1
@@ -8,10 +8,10 @@ export class RatingCellEditorComponent extends AbstractEditCellEditor {
8
8
  updateValue() {
9
9
  this.updateFieldValue();
10
10
  }
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: RatingCellEditorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
12
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: RatingCellEditorComponent, isStandalone: true, selector: "rating-cell-editor", host: { classAttribute: "d-flex align-items-center h-100 px-3" }, usesInheritance: true, ngImport: i0, template: ` <thy-rate [(ngModel)]="modelValue" (ngModelChange)="updateValue()"></thy-rate> `, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ThyRate, selector: "thy-rate", inputs: ["thyCount", "thyDisabled", "thyAllowHalf", "thyAllowClear", "thyTooltips", "thyIconTemplate"], outputs: ["thyItemHoverChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: RatingCellEditorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
12
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: RatingCellEditorComponent, isStandalone: true, selector: "rating-cell-editor", host: { classAttribute: "d-flex align-items-center h-100 px-3" }, usesInheritance: true, ngImport: i0, template: ` <thy-rate [(ngModel)]="modelValue" (ngModelChange)="updateValue()"></thy-rate> `, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ThyRate, selector: "thy-rate", inputs: ["thyCount", "thyDisabled", "thyAllowHalf", "thyAllowClear", "thyTooltips", "thyIconTemplate"], outputs: ["thyItemHoverChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
13
13
  }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: RatingCellEditorComponent, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: RatingCellEditorComponent, decorators: [{
15
15
  type: Component,
16
16
  args: [{
17
17
  selector: 'rating-cell-editor',
@@ -1,19 +1,29 @@
1
- import { NgForOf, NgIf } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, computed, Input } from '@angular/core';
1
+ import { NgTemplateOutlet } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, computed } from '@angular/core';
3
3
  import { FormsModule } from '@angular/forms';
4
- import { ThySelect } from 'ngx-tethys/select';
5
- import { AbstractEditCellEditor } from '../abstract-cell-editor.component';
6
- import { ThyTag } from 'ngx-tethys/tag';
4
+ import { ThyDot } from 'ngx-tethys/dot';
5
+ import { ThyFlexibleText } from 'ngx-tethys/flexible-text';
7
6
  import { ThyIcon } from 'ngx-tethys/icon';
7
+ import { ThySelect } from 'ngx-tethys/select';
8
8
  import { ThyOption } from 'ngx-tethys/shared';
9
+ import { ThyTag } from 'ngx-tethys/tag';
10
+ import { ThyTooltipModule } from 'ngx-tethys/tooltip';
11
+ import { SelectOptionPipe } from '../../../pipes';
12
+ import { SelectOptionComponent } from '../../cell-views/select/option.component';
13
+ import { AbstractEditCellEditor } from '../abstract-cell-editor.component';
14
+ import { AITableSelectOptionStyle } from '../../../core';
9
15
  import * as i0 from "@angular/core";
10
16
  import * as i1 from "@angular/forms";
11
17
  export class SelectCellEditorComponent extends AbstractEditCellEditor {
12
18
  constructor() {
13
19
  super();
14
20
  this.selectOptions = computed(() => {
15
- return this.field().options;
21
+ return this.field().settings.options;
22
+ });
23
+ this.optionStyle = computed(() => {
24
+ return this.field().settings.option_style || AITableSelectOptionStyle.tag;
16
25
  });
26
+ this.AITableSelectOptionStyle = AITableSelectOptionStyle;
17
27
  }
18
28
  updateValue(value) {
19
29
  if (!value) {
@@ -21,26 +31,26 @@ export class SelectCellEditorComponent extends AbstractEditCellEditor {
21
31
  this.closePopover();
22
32
  }
23
33
  }
24
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: SelectCellEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
25
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: SelectCellEditorComponent, isStandalone: true, selector: "single-select-cell-editor", inputs: { isMultiple: "isMultiple" }, host: { classAttribute: "d-block h-100" }, usesInheritance: true, ngImport: i0, template: `<thy-select [(ngModel)]="modelValue" [thyAutoExpand]="true" (thyOnExpandStatusChange)="updateValue($event)">
26
- <thy-option *ngFor="let option of selectOptions()" [thyValue]="option._id" [thyLabelText]="option.text"> </thy-option>
27
- </thy-select> `, isInline: true, dependencies: [{ kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ThySelect, selector: "thy-select,thy-custom-select", inputs: ["thyDropdownWidthMode", "thyShowSearch", "thyPlaceHolder", "thyServerSearch", "thyLoadState", "thyAutoActiveFirstItem", "thyMode", "thySize", "thyEmptyStateText", "thyEmptySearchMessageText", "thyEnableScrollLoad", "thyAllowClear", "thyDisabled", "thySortComparator", "thyFooterTemplate", "thyPlacement", "thyOrigin", "thyFooterClass", "thyAutoExpand", "thyHasBackdrop", "thyMaxTagCount", "thyBorderless", "thyOptions", "thyPreset"], outputs: ["thyOnSearch", "thyOnScrollToBottom", "thyOnExpandStatusChange"], exportAs: ["thySelect"] }, { kind: "component", type: ThyOption, selector: "thy-option", inputs: ["thyValue", "thyRawValue", "thyLabelText", "thyShowOptionCustom", "thySearchKey", "thyDisabled"], outputs: ["selectionChange", "visibleChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: SelectCellEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
35
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.4", type: SelectCellEditorComponent, isStandalone: true, selector: "select-cell-editor", host: { properties: { "class.tag": "field()!.settings.option_style === AITableSelectOptionStyle.tag" }, classAttribute: "d-block h-100 select-cell-editor" }, usesInheritance: true, ngImport: i0, template: "<thy-select\n [(ngModel)]=\"modelValue\"\n [thyAutoExpand]=\"true\"\n [thyAllowClear]=\"true\"\n [thyMode]=\"field().settings.is_multiple ? 'multiple' : ''\"\n [thyPreset]=\"'tag'\"\n (thyOnExpandStatusChange)=\"updateValue($event)\"\n>\n <ng-template #selectedDisplay let-option>\n @if (optionStyle() === AITableSelectOptionStyle.tag) {\n <select-option [field]=\"field()\" [displayOption]=\"option\"></select-option>\n } @else {\n <div thyTag class=\"mb-1 mr-1\">\n <select-option [field]=\"field()\" [displayOption]=\"option\"></select-option>\n </div>\n }\n </ng-template>\n @for (option of selectOptions(); track option._id) {\n <thy-option [thyValue]=\"option._id\" [thyRawValue]=\"option\" [thyShowOptionCustom]=\"true\" [thyLabelText]=\"option.text\">\n <select-option [field]=\"field()\" [displayOption]=\"option\"></select-option>\n </thy-option>\n }\n</thy-select>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ThySelect, selector: "thy-select,thy-custom-select", inputs: ["thyDropdownWidthMode", "thyShowSearch", "thyPlaceHolder", "thyServerSearch", "thyLoadState", "thyAutoActiveFirstItem", "thyMode", "thySize", "thyEmptyStateText", "thyEmptySearchMessageText", "thyEnableScrollLoad", "thyAllowClear", "thyDisabled", "thySortComparator", "thyFooterTemplate", "thyPlacement", "thyOrigin", "thyFooterClass", "thyAutoExpand", "thyHasBackdrop", "thyMaxTagCount", "thyBorderless", "thyOptions", "thyPreset"], outputs: ["thyOnSearch", "thyOnScrollToBottom", "thyOnExpandStatusChange"], exportAs: ["thySelect"] }, { kind: "component", type: ThyOption, selector: "thy-option", inputs: ["thyValue", "thyRawValue", "thyLabelText", "thyShowOptionCustom", "thySearchKey", "thyDisabled"], outputs: ["selectionChange", "visibleChange"] }, { kind: "component", type: ThyTag, selector: "thy-tag,[thyTag]", inputs: ["thyTag", "thyShape", "thyColor", "thyTheme", "thySize", "thyHoverable"] }, { kind: "ngmodule", type: ThyTooltipModule }, { kind: "component", type: SelectOptionComponent, selector: "select-option", inputs: ["field", "displayOption"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
28
36
  }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: SelectCellEditorComponent, decorators: [{
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: SelectCellEditorComponent, decorators: [{
30
38
  type: Component,
31
- args: [{
32
- selector: 'single-select-cell-editor',
33
- template: `<thy-select [(ngModel)]="modelValue" [thyAutoExpand]="true" (thyOnExpandStatusChange)="updateValue($event)">
34
- <thy-option *ngFor="let option of selectOptions()" [thyValue]="option._id" [thyLabelText]="option.text"> </thy-option>
35
- </thy-select> `,
36
- standalone: true,
37
- changeDetection: ChangeDetectionStrategy.OnPush,
38
- host: {
39
- class: 'd-block h-100'
40
- },
41
- imports: [NgIf, NgForOf, FormsModule, ThySelect, ThyOption, ThyTag, ThyIcon]
42
- }]
43
- }], ctorParameters: () => [], propDecorators: { isMultiple: [{
44
- type: Input
45
- }] } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb21wb25lbnRzL2NlbGwtZWRpdG9ycy9zZWxlY3Qvc2VsZWN0LWVkaXRvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBbUI5QyxNQUFNLE9BQU8seUJBQTBCLFNBQVEsc0JBQXdEO0lBT25HO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUFMWixrQkFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDMUIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFDO0lBSUgsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFjO1FBQ3RCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNULElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN4QixDQUFDO0lBQ0wsQ0FBQzs4R0FoQlEseUJBQXlCO2tHQUF6Qix5QkFBeUIsNkxBVnhCOzttQkFFSyw0REFNQyxPQUFPLGtIQUFFLFdBQVcsK1ZBQUUsU0FBUyx5bUJBQUUsU0FBUzs7MkZBRWpELHlCQUF5QjtrQkFackMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxRQUFRLEVBQUU7O21CQUVLO29CQUNmLFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsSUFBSSxFQUFFO3dCQUNGLEtBQUssRUFBRSxlQUFlO3FCQUN6QjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUM7aUJBQy9FO3dEQUVZLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0Zvck9mLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUaHlTZWxlY3QgfSBmcm9tICduZ3gtdGV0aHlzL3NlbGVjdCc7XG5pbXBvcnQgeyBBYnN0cmFjdEVkaXRDZWxsRWRpdG9yIH0gZnJvbSAnLi4vYWJzdHJhY3QtY2VsbC1lZGl0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFRoeVRhZyB9IGZyb20gJ25neC10ZXRoeXMvdGFnJztcbmltcG9ydCB7IFRoeUljb24gfSBmcm9tICduZ3gtdGV0aHlzL2ljb24nO1xuaW1wb3J0IHsgVGh5T3B0aW9uIH0gZnJvbSAnbmd4LXRldGh5cy9zaGFyZWQnO1xuaW1wb3J0IHsgQUlUYWJsZVNlbGVjdE9wdGlvbiwgQUlUYWJsZUZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQUlUYWJsZVNpbmdsZVNlbGVjdEZpZWxkIGV4dGVuZHMgQUlUYWJsZUZpZWxkPEFJVGFibGVTZWxlY3RPcHRpb24+IHtcbiAgICBvcHRpb25zOiBBSVRhYmxlU2VsZWN0T3B0aW9uW107XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2luZ2xlLXNlbGVjdC1jZWxsLWVkaXRvcicsXG4gICAgdGVtcGxhdGU6IGA8dGh5LXNlbGVjdCBbKG5nTW9kZWwpXT1cIm1vZGVsVmFsdWVcIiBbdGh5QXV0b0V4cGFuZF09XCJ0cnVlXCIgKHRoeU9uRXhwYW5kU3RhdHVzQ2hhbmdlKT1cInVwZGF0ZVZhbHVlKCRldmVudClcIj5cbiAgICAgICAgPHRoeS1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBzZWxlY3RPcHRpb25zKClcIiBbdGh5VmFsdWVdPVwib3B0aW9uLl9pZFwiIFt0aHlMYWJlbFRleHRdPVwib3B0aW9uLnRleHRcIj4gPC90aHktb3B0aW9uPlxuICAgIDwvdGh5LXNlbGVjdD4gYCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdkLWJsb2NrIGgtMTAwJ1xuICAgIH0sXG4gICAgaW1wb3J0czogW05nSWYsIE5nRm9yT2YsIEZvcm1zTW9kdWxlLCBUaHlTZWxlY3QsIFRoeU9wdGlvbiwgVGh5VGFnLCBUaHlJY29uXVxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RDZWxsRWRpdG9yQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RFZGl0Q2VsbEVkaXRvcjxzdHJpbmcsIEFJVGFibGVTaW5nbGVTZWxlY3RGaWVsZD4ge1xuICAgIEBJbnB1dCgpIGlzTXVsdGlwbGUhOiBib29sZWFuO1xuXG4gICAgc2VsZWN0T3B0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQoKS5vcHRpb25zO1xuICAgIH0pO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgdXBkYXRlVmFsdWUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVGaWVsZFZhbHVlKCk7XG4gICAgICAgICAgICB0aGlzLmNsb3NlUG9wb3ZlcigpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
39
+ args: [{ selector: 'select-cell-editor', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, host: {
40
+ class: 'd-block h-100 select-cell-editor',
41
+ '[class.tag]': 'field()!.settings.option_style === AITableSelectOptionStyle.tag'
42
+ }, imports: [
43
+ FormsModule,
44
+ NgTemplateOutlet,
45
+ ThySelect,
46
+ ThyOption,
47
+ ThyTag,
48
+ ThyIcon,
49
+ ThyTooltipModule,
50
+ ThyDot,
51
+ ThyFlexibleText,
52
+ SelectOptionPipe,
53
+ SelectOptionComponent
54
+ ], template: "<thy-select\n [(ngModel)]=\"modelValue\"\n [thyAutoExpand]=\"true\"\n [thyAllowClear]=\"true\"\n [thyMode]=\"field().settings.is_multiple ? 'multiple' : ''\"\n [thyPreset]=\"'tag'\"\n (thyOnExpandStatusChange)=\"updateValue($event)\"\n>\n <ng-template #selectedDisplay let-option>\n @if (optionStyle() === AITableSelectOptionStyle.tag) {\n <select-option [field]=\"field()\" [displayOption]=\"option\"></select-option>\n } @else {\n <div thyTag class=\"mb-1 mr-1\">\n <select-option [field]=\"field()\" [displayOption]=\"option\"></select-option>\n </div>\n }\n </ng-template>\n @for (option of selectOptions(); track option._id) {\n <thy-option [thyValue]=\"option._id\" [thyRawValue]=\"option\" [thyShowOptionCustom]=\"true\" [thyLabelText]=\"option.text\">\n <select-option [field]=\"field()\" [displayOption]=\"option\"></select-option>\n </thy-option>\n }\n</thy-select>\n" }]
55
+ }], ctorParameters: () => [] });
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb21wb25lbnRzL2NlbGwtZWRpdG9ycy9zZWxlY3Qvc2VsZWN0LWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb21wb25lbnRzL2NlbGwtZWRpdG9ycy9zZWxlY3Qvc2VsZWN0LWVkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDM0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUF5QnpELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxzQkFBa0Q7SUFXN0Y7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQVhaLGtCQUFhLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUMxQixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO1FBRUgsZ0JBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3hCLE9BQVEsSUFBSSxDQUFDLEtBQUssRUFBeUIsQ0FBQyxRQUFRLENBQUMsWUFBWSxJQUFJLHdCQUF3QixDQUFDLEdBQUcsQ0FBQztRQUN0RyxDQUFDLENBQUMsQ0FBQztRQUVILDZCQUF3QixHQUFHLHdCQUF3QixDQUFDO0lBSXBELENBQUM7SUFFRCxXQUFXLENBQUMsS0FBYztRQUN0QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDVCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEIsQ0FBQztJQUNMLENBQUM7OEdBcEJRLHlCQUF5QjtrR0FBekIseUJBQXlCLG1RQ3ZDdEMsMitCQXVCQSwyQ0RHUSxXQUFXLCtWQUVYLFNBQVMseW1CQUNULFNBQVMsaU5BQ1QsTUFBTSwrSUFFTixnQkFBZ0IsK0JBSWhCLHFCQUFxQjs7MkZBR2hCLHlCQUF5QjtrQkF2QnJDLFNBQVM7K0JBQ0ksb0JBQW9CLGNBRWxCLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDRixLQUFLLEVBQUUsa0NBQWtDO3dCQUN6QyxhQUFhLEVBQUUsaUVBQWlFO3FCQUNuRixXQUNRO3dCQUNMLFdBQVc7d0JBQ1gsZ0JBQWdCO3dCQUNoQixTQUFTO3dCQUNULFNBQVM7d0JBQ1QsTUFBTTt3QkFDTixPQUFPO3dCQUNQLGdCQUFnQjt3QkFDaEIsTUFBTTt3QkFDTixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIscUJBQXFCO3FCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVGh5RG90IH0gZnJvbSAnbmd4LXRldGh5cy9kb3QnO1xuaW1wb3J0IHsgVGh5RmxleGlibGVUZXh0IH0gZnJvbSAnbmd4LXRldGh5cy9mbGV4aWJsZS10ZXh0JztcbmltcG9ydCB7IFRoeUljb24gfSBmcm9tICduZ3gtdGV0aHlzL2ljb24nO1xuaW1wb3J0IHsgVGh5U2VsZWN0IH0gZnJvbSAnbmd4LXRldGh5cy9zZWxlY3QnO1xuaW1wb3J0IHsgVGh5T3B0aW9uIH0gZnJvbSAnbmd4LXRldGh5cy9zaGFyZWQnO1xuaW1wb3J0IHsgVGh5VGFnIH0gZnJvbSAnbmd4LXRldGh5cy90YWcnO1xuaW1wb3J0IHsgVGh5VG9vbHRpcE1vZHVsZSB9IGZyb20gJ25neC10ZXRoeXMvdG9vbHRpcCc7XG5pbXBvcnQgeyBTZWxlY3RPcHRpb25QaXBlIH0gZnJvbSAnLi4vLi4vLi4vcGlwZXMnO1xuaW1wb3J0IHsgQUlUYWJsZVNlbGVjdEZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgU2VsZWN0T3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY2VsbC12aWV3cy9zZWxlY3Qvb3B0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBYnN0cmFjdEVkaXRDZWxsRWRpdG9yIH0gZnJvbSAnLi4vYWJzdHJhY3QtY2VsbC1lZGl0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IEFJVGFibGVTZWxlY3RPcHRpb25TdHlsZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NlbGVjdC1jZWxsLWVkaXRvcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2QtYmxvY2sgaC0xMDAgc2VsZWN0LWNlbGwtZWRpdG9yJyxcbiAgICAgICAgJ1tjbGFzcy50YWddJzogJ2ZpZWxkKCkhLnNldHRpbmdzLm9wdGlvbl9zdHlsZSA9PT0gQUlUYWJsZVNlbGVjdE9wdGlvblN0eWxlLnRhZydcbiAgICB9LFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIFRoeVNlbGVjdCxcbiAgICAgICAgVGh5T3B0aW9uLFxuICAgICAgICBUaHlUYWcsXG4gICAgICAgIFRoeUljb24sXG4gICAgICAgIFRoeVRvb2x0aXBNb2R1bGUsXG4gICAgICAgIFRoeURvdCxcbiAgICAgICAgVGh5RmxleGlibGVUZXh0LFxuICAgICAgICBTZWxlY3RPcHRpb25QaXBlLFxuICAgICAgICBTZWxlY3RPcHRpb25Db21wb25lbnRcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdENlbGxFZGl0b3JDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEVkaXRDZWxsRWRpdG9yPHN0cmluZywgQUlUYWJsZVNlbGVjdEZpZWxkPiB7XG4gICAgc2VsZWN0T3B0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQoKS5zZXR0aW5ncy5vcHRpb25zO1xuICAgIH0pO1xuXG4gICAgb3B0aW9uU3R5bGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIHJldHVybiAodGhpcy5maWVsZCgpIGFzIEFJVGFibGVTZWxlY3RGaWVsZCkuc2V0dGluZ3Mub3B0aW9uX3N0eWxlIHx8IEFJVGFibGVTZWxlY3RPcHRpb25TdHlsZS50YWc7XG4gICAgfSk7XG5cbiAgICBBSVRhYmxlU2VsZWN0T3B0aW9uU3R5bGUgPSBBSVRhYmxlU2VsZWN0T3B0aW9uU3R5bGU7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICB1cGRhdGVWYWx1ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUZpZWxkVmFsdWUoKTtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VQb3BvdmVyKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8dGh5LXNlbGVjdFxuICAgIFsobmdNb2RlbCldPVwibW9kZWxWYWx1ZVwiXG4gICAgW3RoeUF1dG9FeHBhbmRdPVwidHJ1ZVwiXG4gICAgW3RoeUFsbG93Q2xlYXJdPVwidHJ1ZVwiXG4gICAgW3RoeU1vZGVdPVwiZmllbGQoKS5zZXR0aW5ncy5pc19tdWx0aXBsZSA/ICdtdWx0aXBsZScgOiAnJ1wiXG4gICAgW3RoeVByZXNldF09XCIndGFnJ1wiXG4gICAgKHRoeU9uRXhwYW5kU3RhdHVzQ2hhbmdlKT1cInVwZGF0ZVZhbHVlKCRldmVudClcIlxuPlxuICAgIDxuZy10ZW1wbGF0ZSAjc2VsZWN0ZWREaXNwbGF5IGxldC1vcHRpb24+XG4gICAgICAgIEBpZiAob3B0aW9uU3R5bGUoKSA9PT0gQUlUYWJsZVNlbGVjdE9wdGlvblN0eWxlLnRhZykge1xuICAgICAgICAgICAgPHNlbGVjdC1vcHRpb24gW2ZpZWxkXT1cImZpZWxkKClcIiBbZGlzcGxheU9wdGlvbl09XCJvcHRpb25cIj48L3NlbGVjdC1vcHRpb24+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPGRpdiB0aHlUYWcgY2xhc3M9XCJtYi0xIG1yLTFcIj5cbiAgICAgICAgICAgICAgICA8c2VsZWN0LW9wdGlvbiBbZmllbGRdPVwiZmllbGQoKVwiIFtkaXNwbGF5T3B0aW9uXT1cIm9wdGlvblwiPjwvc2VsZWN0LW9wdGlvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICBAZm9yIChvcHRpb24gb2Ygc2VsZWN0T3B0aW9ucygpOyB0cmFjayBvcHRpb24uX2lkKSB7XG4gICAgICAgIDx0aHktb3B0aW9uIFt0aHlWYWx1ZV09XCJvcHRpb24uX2lkXCIgW3RoeVJhd1ZhbHVlXT1cIm9wdGlvblwiIFt0aHlTaG93T3B0aW9uQ3VzdG9tXT1cInRydWVcIiBbdGh5TGFiZWxUZXh0XT1cIm9wdGlvbi50ZXh0XCI+XG4gICAgICAgICAgICA8c2VsZWN0LW9wdGlvbiBbZmllbGRdPVwiZmllbGQoKVwiIFtkaXNwbGF5T3B0aW9uXT1cIm9wdGlvblwiPjwvc2VsZWN0LW9wdGlvbj5cbiAgICAgICAgPC90aHktb3B0aW9uPlxuICAgIH1cbjwvdGh5LXNlbGVjdD5cbiJdfQ==
@@ -33,8 +33,8 @@ export class TextCellEditorComponent extends AbstractEditCellEditor {
33
33
  this.updateFieldValue();
34
34
  this.closePopover();
35
35
  }
36
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: TextCellEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
37
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: TextCellEditorComponent, isStandalone: true, selector: "text-cell-editor", host: { classAttribute: "text-cell-editor" }, usesInheritance: true, ngImport: i0, template: `
36
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: TextCellEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
37
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: TextCellEditorComponent, isStandalone: true, selector: "text-cell-editor", host: { classAttribute: "text-cell-editor" }, usesInheritance: true, ngImport: i0, template: `
38
38
  <textarea
39
39
  placeholder=""
40
40
  rows="1"
@@ -47,7 +47,7 @@ export class TextCellEditorComponent extends AbstractEditCellEditor {
47
47
  ></textarea>
48
48
  `, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ThyAutofocusDirective, selector: "input[thyAutofocus],textarea[thyAutofocus]", inputs: ["thyAutofocus", "thyAutoSelect"] }, { kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "directive", type: ThyEnterDirective, selector: "[thyEnter]", outputs: ["thyEnter"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
49
49
  }
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: TextCellEditorComponent, decorators: [{
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: TextCellEditorComponent, decorators: [{
51
51
  type: Component,
52
52
  args: [{
53
53
  selector: 'text-cell-editor',
@@ -0,0 +1,27 @@
1
+ import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';
2
+ import { ThyDot } from 'ngx-tethys/dot';
3
+ import { ThyFlexibleText } from 'ngx-tethys/flexible-text';
4
+ import { ThyIcon } from 'ngx-tethys/icon';
5
+ import { ThyTag } from 'ngx-tethys/tag';
6
+ import { ThyTooltipModule } from 'ngx-tethys/tooltip';
7
+ import { AITableSelectOptionStyle } from '../../../core';
8
+ import * as i0 from "@angular/core";
9
+ export class SelectOptionComponent {
10
+ constructor() {
11
+ this.field = input.required();
12
+ this.displayOption = input.required();
13
+ this.optionStyle = computed(() => {
14
+ return this.field().settings.option_style || AITableSelectOptionStyle.tag;
15
+ });
16
+ this.AITableSelectOptionStyle = AITableSelectOptionStyle;
17
+ }
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: SelectOptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
19
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.4", type: SelectOptionComponent, isStandalone: true, selector: "select-option", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, displayOption: { classPropertyName: "displayOption", publicName: "displayOption", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "d-flex align-items-center select-option" }, ngImport: i0, template: "@if (displayOption(); as displayOption) {\n @switch (optionStyle()) {\n @case (AITableSelectOptionStyle.dot) {\n @if (displayOption.bg_color) {\n <thy-dot [thyColor]=\"displayOption.bg_color\" [thySize]=\"'sm'\" class=\"mr-2\"></thy-dot>\n }\n <span thyFlexibleText [thyTooltipContent]=\"displayOption.text\">{{ displayOption.text }}</span>\n }\n @case (AITableSelectOptionStyle.tag) {\n @if (displayOption.bg_color || displayOption.color; as color) {\n <thy-tag thyTheme=\"fill\" thyShape=\"pill\" [thyColor]=\"color\">\n @if (displayOption['icon']) {\n <thy-icon class=\"text-white\" [thyIconName]=\"displayOption['icon']\"></thy-icon>\n }\n <span thyFlexibleText [thyTooltipContent]=\"displayOption.text\">{{ displayOption.text }}</span>\n </thy-tag>\n }\n }\n @case (AITableSelectOptionStyle.piece) {\n @if (displayOption.bg_color || displayOption.color; as color) {\n <thy-dot thyShape=\"square\" [thyColor]=\"color\" [thySize]=\"'sm'\" class=\"mr-2\"></thy-dot>\n }\n <span thyFlexibleText [thyTooltipContent]=\"displayOption.text\">{{ displayOption.text }}</span>\n }\n @default {\n @if (displayOption['icon']) {\n <thy-icon [thyIconName]=\"displayOption['icon']\" [style.color]=\"displayOption.color\"></thy-icon>\n }\n <span thyFlexibleText [thyTooltipContent]=\"displayOption.text\">{{ displayOption.text }}</span>\n }\n }\n}\n", dependencies: [{ kind: "component", type: ThyTag, selector: "thy-tag,[thyTag]", inputs: ["thyTag", "thyShape", "thyColor", "thyTheme", "thySize", "thyHoverable"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "ngmodule", type: ThyTooltipModule }, { kind: "component", type: ThyDot, selector: "thy-dot,[thy-dot],[thyDot]", inputs: ["thyColor", "thySize", "thyTheme", "thyShape"] }, { kind: "component", type: ThyFlexibleText, selector: "thy-flexible-text,[thyFlexibleText]", inputs: ["thyTooltipTrigger", "thyContainerClass", "thyTooltipContent", "thyTooltipPlacement", "thyTooltipOffset"], exportAs: ["thyFlexibleText"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
20
+ }
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: SelectOptionComponent, decorators: [{
22
+ type: Component,
23
+ args: [{ selector: 'select-option', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, host: {
24
+ class: 'd-flex align-items-center select-option'
25
+ }, imports: [ThyTag, ThyIcon, ThyTooltipModule, ThyDot, ThyFlexibleText], template: "@if (displayOption(); as displayOption) {\n @switch (optionStyle()) {\n @case (AITableSelectOptionStyle.dot) {\n @if (displayOption.bg_color) {\n <thy-dot [thyColor]=\"displayOption.bg_color\" [thySize]=\"'sm'\" class=\"mr-2\"></thy-dot>\n }\n <span thyFlexibleText [thyTooltipContent]=\"displayOption.text\">{{ displayOption.text }}</span>\n }\n @case (AITableSelectOptionStyle.tag) {\n @if (displayOption.bg_color || displayOption.color; as color) {\n <thy-tag thyTheme=\"fill\" thyShape=\"pill\" [thyColor]=\"color\">\n @if (displayOption['icon']) {\n <thy-icon class=\"text-white\" [thyIconName]=\"displayOption['icon']\"></thy-icon>\n }\n <span thyFlexibleText [thyTooltipContent]=\"displayOption.text\">{{ displayOption.text }}</span>\n </thy-tag>\n }\n }\n @case (AITableSelectOptionStyle.piece) {\n @if (displayOption.bg_color || displayOption.color; as color) {\n <thy-dot thyShape=\"square\" [thyColor]=\"color\" [thySize]=\"'sm'\" class=\"mr-2\"></thy-dot>\n }\n <span thyFlexibleText [thyTooltipContent]=\"displayOption.text\">{{ displayOption.text }}</span>\n }\n @default {\n @if (displayOption['icon']) {\n <thy-icon [thyIconName]=\"displayOption['icon']\" [style.color]=\"displayOption.color\"></thy-icon>\n }\n <span thyFlexibleText [thyTooltipContent]=\"displayOption.text\">{{ displayOption.text }}</span>\n }\n }\n}\n" }]
26
+ }] });
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL2NvbXBvbmVudHMvY2VsbC12aWV3cy9zZWxlY3Qvb3B0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL2NvbXBvbmVudHMvY2VsbC12aWV3cy9zZWxlY3Qvb3B0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFxQyx3QkFBd0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFZNUYsTUFBTSxPQUFPLHFCQUFxQjtJQVZsQztRQVdJLFVBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFnQixDQUFDO1FBRXZDLGtCQUFhLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBdUIsQ0FBQztRQUV0RCxnQkFBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDeEIsT0FBUSxJQUFJLENBQUMsS0FBSyxFQUF5QixDQUFDLFFBQVEsQ0FBQyxZQUFZLElBQUksd0JBQXdCLENBQUMsR0FBRyxDQUFDO1FBQ3RHLENBQUMsQ0FBQyxDQUFDO1FBRUgsNkJBQXdCLEdBQUcsd0JBQXdCLENBQUM7S0FDdkQ7OEdBVlkscUJBQXFCO2tHQUFyQixxQkFBcUIsZ2FDbEJsQyw2b0RBZ0NBLDRDRGhCYyxNQUFNLGdKQUFFLE9BQU8scU1BQUUsZ0JBQWdCLCtCQUFFLE1BQU0sZ0lBQUUsZUFBZTs7MkZBRTNELHFCQUFxQjtrQkFWakMsU0FBUzsrQkFDSSxlQUFlLGNBRWIsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNGLEtBQUssRUFBRSx5Q0FBeUM7cUJBQ25ELFdBQ1EsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoeURvdCB9IGZyb20gJ25neC10ZXRoeXMvZG90JztcbmltcG9ydCB7IFRoeUZsZXhpYmxlVGV4dCB9IGZyb20gJ25neC10ZXRoeXMvZmxleGlibGUtdGV4dCc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IFRoeVRhZyB9IGZyb20gJ25neC10ZXRoeXMvdGFnJztcbmltcG9ydCB7IFRoeVRvb2x0aXBNb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQUlUYWJsZUZpZWxkLCBBSVRhYmxlU2VsZWN0T3B0aW9uLCBBSVRhYmxlU2VsZWN0T3B0aW9uU3R5bGUgfSBmcm9tICcuLi8uLi8uLi9jb3JlJztcbmltcG9ydCB7IEFJVGFibGVTZWxlY3RGaWVsZCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2VsZWN0LW9wdGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL29wdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBzZWxlY3Qtb3B0aW9uJ1xuICAgIH0sXG4gICAgaW1wb3J0czogW1RoeVRhZywgVGh5SWNvbiwgVGh5VG9vbHRpcE1vZHVsZSwgVGh5RG90LCBUaHlGbGV4aWJsZVRleHRdXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdE9wdGlvbkNvbXBvbmVudCB7XG4gICAgZmllbGQgPSBpbnB1dC5yZXF1aXJlZDxBSVRhYmxlRmllbGQ+KCk7XG5cbiAgICBkaXNwbGF5T3B0aW9uID0gaW5wdXQucmVxdWlyZWQ8QUlUYWJsZVNlbGVjdE9wdGlvbj4oKTtcblxuICAgIG9wdGlvblN0eWxlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICByZXR1cm4gKHRoaXMuZmllbGQoKSBhcyBBSVRhYmxlU2VsZWN0RmllbGQpLnNldHRpbmdzLm9wdGlvbl9zdHlsZSB8fCBBSVRhYmxlU2VsZWN0T3B0aW9uU3R5bGUudGFnO1xuICAgIH0pO1xuXG4gICAgQUlUYWJsZVNlbGVjdE9wdGlvblN0eWxlID0gQUlUYWJsZVNlbGVjdE9wdGlvblN0eWxlO1xufVxuIiwiQGlmIChkaXNwbGF5T3B0aW9uKCk7IGFzIGRpc3BsYXlPcHRpb24pIHtcbiAgICBAc3dpdGNoIChvcHRpb25TdHlsZSgpKSB7XG4gICAgICAgIEBjYXNlIChBSVRhYmxlU2VsZWN0T3B0aW9uU3R5bGUuZG90KSB7XG4gICAgICAgICAgICBAaWYgKGRpc3BsYXlPcHRpb24uYmdfY29sb3IpIHtcbiAgICAgICAgICAgICAgICA8dGh5LWRvdCBbdGh5Q29sb3JdPVwiZGlzcGxheU9wdGlvbi5iZ19jb2xvclwiIFt0aHlTaXplXT1cIidzbSdcIiBjbGFzcz1cIm1yLTJcIj48L3RoeS1kb3Q+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8c3BhbiB0aHlGbGV4aWJsZVRleHQgW3RoeVRvb2x0aXBDb250ZW50XT1cImRpc3BsYXlPcHRpb24udGV4dFwiPnt7IGRpc3BsYXlPcHRpb24udGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgICBAY2FzZSAoQUlUYWJsZVNlbGVjdE9wdGlvblN0eWxlLnRhZykge1xuICAgICAgICAgICAgQGlmIChkaXNwbGF5T3B0aW9uLmJnX2NvbG9yIHx8IGRpc3BsYXlPcHRpb24uY29sb3I7IGFzIGNvbG9yKSB7XG4gICAgICAgICAgICAgICAgPHRoeS10YWcgdGh5VGhlbWU9XCJmaWxsXCIgdGh5U2hhcGU9XCJwaWxsXCIgW3RoeUNvbG9yXT1cImNvbG9yXCI+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoZGlzcGxheU9wdGlvblsnaWNvbiddKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGh5LWljb24gY2xhc3M9XCJ0ZXh0LXdoaXRlXCIgW3RoeUljb25OYW1lXT1cImRpc3BsYXlPcHRpb25bJ2ljb24nXVwiPjwvdGh5LWljb24+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gdGh5RmxleGlibGVUZXh0IFt0aHlUb29sdGlwQ29udGVudF09XCJkaXNwbGF5T3B0aW9uLnRleHRcIj57eyBkaXNwbGF5T3B0aW9uLnRleHQgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC90aHktdGFnPlxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBjYXNlIChBSVRhYmxlU2VsZWN0T3B0aW9uU3R5bGUucGllY2UpIHtcbiAgICAgICAgICAgIEBpZiAoZGlzcGxheU9wdGlvbi5iZ19jb2xvciB8fCBkaXNwbGF5T3B0aW9uLmNvbG9yOyBhcyBjb2xvcikge1xuICAgICAgICAgICAgICAgIDx0aHktZG90IHRoeVNoYXBlPVwic3F1YXJlXCIgW3RoeUNvbG9yXT1cImNvbG9yXCIgW3RoeVNpemVdPVwiJ3NtJ1wiIGNsYXNzPVwibXItMlwiPjwvdGh5LWRvdD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxzcGFuIHRoeUZsZXhpYmxlVGV4dCBbdGh5VG9vbHRpcENvbnRlbnRdPVwiZGlzcGxheU9wdGlvbi50ZXh0XCI+e3sgZGlzcGxheU9wdGlvbi50ZXh0IH19PC9zcGFuPlxuICAgICAgICB9XG4gICAgICAgIEBkZWZhdWx0IHtcbiAgICAgICAgICAgIEBpZiAoZGlzcGxheU9wdGlvblsnaWNvbiddKSB7XG4gICAgICAgICAgICAgICAgPHRoeS1pY29uIFt0aHlJY29uTmFtZV09XCJkaXNwbGF5T3B0aW9uWydpY29uJ11cIiBbc3R5bGUuY29sb3JdPVwiZGlzcGxheU9wdGlvbi5jb2xvclwiPjwvdGh5LWljb24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8c3BhbiB0aHlGbGV4aWJsZVRleHQgW3RoeVRvb2x0aXBDb250ZW50XT1cImRpc3BsYXlPcHRpb24udGV4dFwiPnt7IGRpc3BsYXlPcHRpb24udGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -9,10 +9,10 @@ export class FieldMenu {
9
9
  const field = getRecordOrField(this.aiTable.fields, this.fieldId);
10
10
  menu.exec && menu.exec(this.aiTable, field, this.origin);
11
11
  }
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: FieldMenu, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
13
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: FieldMenu, isStandalone: true, selector: "field-menu", inputs: { fieldId: "fieldId", aiTable: "aiTable", fieldMenus: "fieldMenus", origin: "origin" }, ngImport: i0, template: "@for (menu of fieldMenus; track index; let index = $index) {\n @if (menu.type === 'divider') {\n <thy-divider [thyStyle]=\"'solid'\"></thy-divider>\n } @else {\n <a thyDropdownMenuItem href=\"javascript:;\" (click)=\"execute(menu)\">\n <thy-icon [thyIconName]=\"menu.icon!\"></thy-icon>\n <span>{{ menu.name! }}</span>\n </a>\n }\n}\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "component", type: ThyDivider, selector: "thy-divider", inputs: ["thyVertical", "thyStyle", "thyColor", "thyText", "thyTextDirection", "thyDeeper"] }, { kind: "directive", type: ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: FieldMenu, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
13
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.4", type: FieldMenu, isStandalone: true, selector: "field-menu", inputs: { fieldId: "fieldId", aiTable: "aiTable", fieldMenus: "fieldMenus", origin: "origin" }, ngImport: i0, template: "@for (menu of fieldMenus; track index; let index = $index) {\n @if (menu.type === 'divider') {\n <thy-divider [thyStyle]=\"'solid'\"></thy-divider>\n } @else {\n <a thyDropdownMenuItem href=\"javascript:;\" (click)=\"execute(menu)\">\n <thy-icon [thyIconName]=\"menu.icon!\"></thy-icon>\n <span>{{ menu.name! }}</span>\n </a>\n }\n}\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "component", type: ThyDivider, selector: "thy-divider", inputs: ["thyVertical", "thyStyle", "thyColor", "thyText", "thyTextDirection", "thyDeeper"] }, { kind: "directive", type: ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
14
14
  }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: FieldMenu, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: FieldMenu, decorators: [{
16
16
  type: Component,
17
17
  args: [{ selector: 'field-menu', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
18
18
  ThyIcon,
@@ -16,10 +16,10 @@ import * as i1 from "@angular/forms";
16
16
  import * as i2 from "ngx-tethys/form";
17
17
  export class AITableFieldPropertyEditor {
18
18
  constructor() {
19
- this.aiField = model.required();
19
+ this.aiEditField = model.required();
20
20
  this.aiExternalTemplate = null;
21
21
  this.fieldType = computed(() => {
22
- return FieldsMap[this.aiField().type];
22
+ return FieldsMap[this.aiEditField().type];
23
23
  });
24
24
  this.fieldMaxLength = 32;
25
25
  this.validatorConfig = {
@@ -34,29 +34,33 @@ export class AITableFieldPropertyEditor {
34
34
  this.thyPopoverRef = inject((ThyPopoverRef));
35
35
  this.checkUniqueName = (fieldName) => {
36
36
  fieldName = fieldName?.trim();
37
- return of(!!this.aiTable.fields()?.find((field) => field.name === fieldName && this.aiField()?._id !== field._id));
37
+ return of(!!this.aiTable.fields()?.find((field) => field.name === fieldName && this.aiEditField()?._id !== field._id));
38
38
  };
39
39
  }
40
- selectFieldType(fieldType) {
41
- this.aiField.update((item) => ({ ...item, type: fieldType, name: createDefaultFieldName(this.aiTable, fieldType) }));
40
+ selectFieldType(field) {
41
+ this.aiEditField.update((item) => {
42
+ const width = item.width ?? field.width;
43
+ const name = createDefaultFieldName(this.aiTable, field.type);
44
+ const settings = field.settings;
45
+ return { ...item, ...field, width, name, settings };
46
+ });
42
47
  }
43
48
  editFieldProperty() {
44
49
  if (this.isUpdate) {
45
- const path = this.aiTable.fields().findIndex((item) => item._id === this.aiField()._id);
46
- Actions.setField(this.aiTable, this.aiField(), [path]);
50
+ Actions.setField(this.aiTable, this.aiEditField(), [this.aiEditField()._id]);
47
51
  }
48
52
  else {
49
- Actions.addField(this.aiTable, this.aiField(), [this.aiTable.fields().length]);
53
+ Actions.addField(this.aiTable, this.aiEditField(), [this.aiTable.fields().length]);
50
54
  }
51
55
  this.thyPopoverRef.close();
52
56
  }
53
57
  cancel() {
54
58
  this.thyPopoverRef.close();
55
59
  }
56
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AITableFieldPropertyEditor, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
57
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: AITableFieldPropertyEditor, isStandalone: true, selector: "ai-table-field-property-editor", inputs: { aiField: { classPropertyName: "aiField", publicName: "aiField", isSignal: true, isRequired: true, transformFunction: null }, aiTable: { classPropertyName: "aiTable", publicName: "aiTable", isSignal: false, isRequired: true, transformFunction: null }, aiExternalTemplate: { classPropertyName: "aiExternalTemplate", publicName: "aiExternalTemplate", isSignal: false, isRequired: false, transformFunction: null }, isUpdate: { classPropertyName: "isUpdate", publicName: "isUpdate", isSignal: false, isRequired: false, transformFunction: booleanAttribute } }, outputs: { aiField: "aiFieldChange" }, host: { classAttribute: "field-property-editor d-block pl-5 pr-5 pb-5 pt-4" }, ngImport: i0, template: "<form thyForm name=\"createPropertyForm\" [thyFormValidatorConfig]=\"validatorConfig\" thyLayout=\"vertical\">\n <thy-form-group thyLabelRequired thyLabelText=\"\u8868\u683C\u5217\u540D\">\n <thy-input-group>\n <input\n thyInput\n [thyAutofocus]=\"true\"\n name=\"fieldName\"\n [maxlength]=\"fieldMaxLength\"\n [(ngModel)]=\"aiField().name\"\n required\n placeholder=\"\u8F93\u5165\u5217\u540D\u79F0\"\n [thyUniqueCheck]=\"checkUniqueName\"\n />\n <ng-template #suffix>\n <thy-input-count></thy-input-count>\n </ng-template>\n </thy-input-group>\n </thy-form-group>\n <thy-form-group thyLabelText=\"\u5217\u7C7B\u578B\">\n <div class=\"ml-n5 mr-n5\">\n <thy-list-item [thyDropdown]=\"menu\" thyTrigger=\"hover\" thyPlacement=\"right\" class=\"justify-content-between\">\n <span>\n <thy-icon [thyIconName]=\"fieldType().icon\" class=\"text-desc mr-2\"></thy-icon>\n <span>{{ fieldType().name }}</span>\n </span>\n <thy-icon thyIconName=\"angle-right\" class=\"text-desc\"></thy-icon>\n </thy-list-item>\n </div>\n </thy-form-group>\n <ng-container *ngIf=\"aiExternalTemplate; else defaultTemplate\">\n <ng-container *ngTemplateOutlet=\"aiExternalTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultTemplate>\n <!-- TODO: \u5185\u90E8\u5C5E\u6027\u6E32\u67D3 -->\n </ng-template>\n <thy-form-group-footer thyAlign=\"right\">\n <button thyButton=\"link-secondary\" (click)=\"cancel()\" thySize=\"sm\">\u53D6\u6D88</button>\n <button thyButton=\"primary\" (thyFormSubmit)=\"editFieldProperty()\" thySize=\"sm\">\u786E\u5B9A</button>\n </thy-form-group-footer>\n</form>\n\n<thy-dropdown-menu #menu>\n @for (item of selectableFields; track $index) {\n <a thyDropdownMenuItem href=\"javascript:;\" (click)=\"selectFieldType(item.type)\">\n <thy-icon [thyIconName]=\"item.icon\"></thy-icon>\n <span thyDropdownMenuItemName>{{ item.name }}</span>\n </a>\n }\n</thy-dropdown-menu>\n", styles: [":host{width:350px}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "component", type: ThyInputGroup, selector: "thy-input-group", inputs: ["thyAppendText", "thyAppendTextTranslateKey", "thyPrependText", "thyPrependTextTranslateKey", "thySize"] }, { kind: "component", type: ThyInputCount, selector: "thy-input-count", inputs: ["thyInput"] }, { kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "directive", type: ThyUniqueCheckValidator, selector: "[thyUniqueCheck]", inputs: ["thyUniqueCheck"] }, { 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: "directive", type: ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }, { kind: "directive", type: ThyDropdownMenuItemNameDirective, selector: "[thyDropdownMenuItemName]" }, { kind: "component", type: ThyButton, selector: "thy-button,[thy-button],[thyButton]", inputs: ["thyButton", "thyType", "thyLoading", "thyLoadingText", "thySize", "thyIcon", "thyBlock"] }, { kind: "ngmodule", type: ThyFormModule }, { kind: "directive", type: i2.ThyFormDirective, selector: "[thyForm],[thy-form]", inputs: ["thyLayout", "thyEnterKeyMode", "thyFormValidatorConfig"], exportAs: ["thyForm"] }, { kind: "component", type: i2.ThyFormGroup, selector: "thy-form-group", inputs: ["thyLabelText", "thyLabelTextTranslateKey", "thyLabelRequired", "thyLabelPaddingTopClear", "thyFeedbackIcon", "thyTipsMode", "thyTips", "thyTipsTranslateKey", "thyRowFill"] }, { kind: "directive", type: i2.ThyFormSubmitDirective, selector: "[thyFormSubmit],[thy-form-submit]", outputs: ["thyFormSubmit"] }, { kind: "component", type: i2.ThyFormGroupFooter, selector: "thy-form-group-footer", inputs: ["thyAlign"] }, { kind: "component", type: ThyListItem, selector: "thy-list-item,[thy-list-item]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ThyAutofocusDirective, selector: "input[thyAutofocus],textarea[thyAutofocus]", inputs: ["thyAutofocus", "thyAutoSelect"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
60
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: AITableFieldPropertyEditor, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
61
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.4", type: AITableFieldPropertyEditor, isStandalone: true, selector: "ai-table-field-property-editor", inputs: { aiEditField: { classPropertyName: "aiEditField", publicName: "aiEditField", isSignal: true, isRequired: true, transformFunction: null }, aiTable: { classPropertyName: "aiTable", publicName: "aiTable", isSignal: false, isRequired: true, transformFunction: null }, aiExternalTemplate: { classPropertyName: "aiExternalTemplate", publicName: "aiExternalTemplate", isSignal: false, isRequired: false, transformFunction: null }, isUpdate: { classPropertyName: "isUpdate", publicName: "isUpdate", isSignal: false, isRequired: false, transformFunction: booleanAttribute } }, outputs: { aiEditField: "aiEditFieldChange" }, host: { classAttribute: "field-property-editor d-block pl-5 pr-5 pb-5 pt-4" }, ngImport: i0, template: "<form thyForm name=\"createPropertyForm\" [thyFormValidatorConfig]=\"validatorConfig\" thyLayout=\"vertical\">\n <thy-form-group thyLabelRequired thyLabelText=\"\u8868\u683C\u5217\u540D\">\n <thy-input-group>\n <input\n thyInput\n [thyAutofocus]=\"true\"\n name=\"fieldName\"\n [maxlength]=\"fieldMaxLength\"\n [(ngModel)]=\"aiEditField().name\"\n required\n placeholder=\"\u8F93\u5165\u5217\u540D\u79F0\"\n [thyUniqueCheck]=\"checkUniqueName\"\n />\n <ng-template #suffix>\n <thy-input-count></thy-input-count>\n </ng-template>\n </thy-input-group>\n </thy-form-group>\n <thy-form-group thyLabelText=\"\u5217\u7C7B\u578B\">\n <div class=\"ml-n5 mr-n5\">\n <thy-list-item [thyDropdown]=\"menu\" thyTrigger=\"hover\" thyPlacement=\"right\" class=\"justify-content-between\">\n <span>\n <thy-icon [thyIconName]=\"fieldType().icon\" class=\"text-desc mr-2\"></thy-icon>\n <span>{{ fieldType().name }}</span>\n </span>\n <thy-icon thyIconName=\"angle-right\" class=\"text-desc\"></thy-icon>\n </thy-list-item>\n </div>\n </thy-form-group>\n <ng-container *ngIf=\"aiExternalTemplate; else defaultTemplate\">\n <ng-container *ngTemplateOutlet=\"aiExternalTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultTemplate>\n <!-- TODO: \u5185\u90E8\u5C5E\u6027\u6E32\u67D3 -->\n </ng-template>\n <thy-form-group-footer thyAlign=\"right\">\n <button thyButton=\"link-secondary\" (click)=\"cancel()\" thySize=\"sm\">\u53D6\u6D88</button>\n <button thyButton=\"primary\" (thyFormSubmit)=\"editFieldProperty()\" thySize=\"sm\">\u786E\u5B9A</button>\n </thy-form-group-footer>\n</form>\n\n<thy-dropdown-menu #menu>\n @for (item of selectableFields; track $index) {\n <a thyDropdownMenuItem href=\"javascript:;\" (click)=\"selectFieldType(item)\">\n <thy-icon [thyIconName]=\"item.icon!\"></thy-icon>\n <span thyDropdownMenuItemName>{{ item.name }}</span>\n </a>\n }\n</thy-dropdown-menu>\n", styles: [":host{width:350px}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "component", type: ThyInputGroup, selector: "thy-input-group", inputs: ["thyAppendText", "thyAppendTextTranslateKey", "thyPrependText", "thyPrependTextTranslateKey", "thySize"] }, { kind: "component", type: ThyInputCount, selector: "thy-input-count", inputs: ["thyInput"] }, { kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "directive", type: ThyUniqueCheckValidator, selector: "[thyUniqueCheck]", inputs: ["thyUniqueCheck"] }, { 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: "directive", type: ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }, { kind: "directive", type: ThyDropdownMenuItemNameDirective, selector: "[thyDropdownMenuItemName]" }, { kind: "component", type: ThyButton, selector: "thy-button,[thy-button],[thyButton]", inputs: ["thyButton", "thyType", "thyLoading", "thyLoadingText", "thySize", "thyIcon", "thyBlock"] }, { kind: "ngmodule", type: ThyFormModule }, { kind: "directive", type: i2.ThyFormDirective, selector: "[thyForm],[thy-form]", inputs: ["thyLayout", "thyEnterKeyMode", "thyFormValidatorConfig"], exportAs: ["thyForm"] }, { kind: "component", type: i2.ThyFormGroup, selector: "thy-form-group", inputs: ["thyLabelText", "thyLabelTextTranslateKey", "thyLabelRequired", "thyLabelPaddingTopClear", "thyFeedbackIcon", "thyTipsMode", "thyTips", "thyTipsTranslateKey", "thyRowFill"] }, { kind: "directive", type: i2.ThyFormSubmitDirective, selector: "[thyFormSubmit],[thy-form-submit]", outputs: ["thyFormSubmit"] }, { kind: "component", type: i2.ThyFormGroupFooter, selector: "thy-form-group-footer", inputs: ["thyAlign"] }, { kind: "component", type: ThyListItem, selector: "thy-list-item,[thy-list-item]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ThyAutofocusDirective, selector: "input[thyAutofocus],textarea[thyAutofocus]", inputs: ["thyAutofocus", "thyAutoSelect"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
58
62
  }
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AITableFieldPropertyEditor, decorators: [{
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: AITableFieldPropertyEditor, decorators: [{
60
64
  type: Component,
61
65
  args: [{ selector: 'ai-table-field-property-editor', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
62
66
  NgIf,
@@ -81,7 +85,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
81
85
  ThyAutofocusDirective
82
86
  ], host: {
83
87
  class: 'field-property-editor d-block pl-5 pr-5 pb-5 pt-4'
84
- }, template: "<form thyForm name=\"createPropertyForm\" [thyFormValidatorConfig]=\"validatorConfig\" thyLayout=\"vertical\">\n <thy-form-group thyLabelRequired thyLabelText=\"\u8868\u683C\u5217\u540D\">\n <thy-input-group>\n <input\n thyInput\n [thyAutofocus]=\"true\"\n name=\"fieldName\"\n [maxlength]=\"fieldMaxLength\"\n [(ngModel)]=\"aiField().name\"\n required\n placeholder=\"\u8F93\u5165\u5217\u540D\u79F0\"\n [thyUniqueCheck]=\"checkUniqueName\"\n />\n <ng-template #suffix>\n <thy-input-count></thy-input-count>\n </ng-template>\n </thy-input-group>\n </thy-form-group>\n <thy-form-group thyLabelText=\"\u5217\u7C7B\u578B\">\n <div class=\"ml-n5 mr-n5\">\n <thy-list-item [thyDropdown]=\"menu\" thyTrigger=\"hover\" thyPlacement=\"right\" class=\"justify-content-between\">\n <span>\n <thy-icon [thyIconName]=\"fieldType().icon\" class=\"text-desc mr-2\"></thy-icon>\n <span>{{ fieldType().name }}</span>\n </span>\n <thy-icon thyIconName=\"angle-right\" class=\"text-desc\"></thy-icon>\n </thy-list-item>\n </div>\n </thy-form-group>\n <ng-container *ngIf=\"aiExternalTemplate; else defaultTemplate\">\n <ng-container *ngTemplateOutlet=\"aiExternalTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultTemplate>\n <!-- TODO: \u5185\u90E8\u5C5E\u6027\u6E32\u67D3 -->\n </ng-template>\n <thy-form-group-footer thyAlign=\"right\">\n <button thyButton=\"link-secondary\" (click)=\"cancel()\" thySize=\"sm\">\u53D6\u6D88</button>\n <button thyButton=\"primary\" (thyFormSubmit)=\"editFieldProperty()\" thySize=\"sm\">\u786E\u5B9A</button>\n </thy-form-group-footer>\n</form>\n\n<thy-dropdown-menu #menu>\n @for (item of selectableFields; track $index) {\n <a thyDropdownMenuItem href=\"javascript:;\" (click)=\"selectFieldType(item.type)\">\n <thy-icon [thyIconName]=\"item.icon\"></thy-icon>\n <span thyDropdownMenuItemName>{{ item.name }}</span>\n </a>\n }\n</thy-dropdown-menu>\n", styles: [":host{width:350px}\n"] }]
88
+ }, template: "<form thyForm name=\"createPropertyForm\" [thyFormValidatorConfig]=\"validatorConfig\" thyLayout=\"vertical\">\n <thy-form-group thyLabelRequired thyLabelText=\"\u8868\u683C\u5217\u540D\">\n <thy-input-group>\n <input\n thyInput\n [thyAutofocus]=\"true\"\n name=\"fieldName\"\n [maxlength]=\"fieldMaxLength\"\n [(ngModel)]=\"aiEditField().name\"\n required\n placeholder=\"\u8F93\u5165\u5217\u540D\u79F0\"\n [thyUniqueCheck]=\"checkUniqueName\"\n />\n <ng-template #suffix>\n <thy-input-count></thy-input-count>\n </ng-template>\n </thy-input-group>\n </thy-form-group>\n <thy-form-group thyLabelText=\"\u5217\u7C7B\u578B\">\n <div class=\"ml-n5 mr-n5\">\n <thy-list-item [thyDropdown]=\"menu\" thyTrigger=\"hover\" thyPlacement=\"right\" class=\"justify-content-between\">\n <span>\n <thy-icon [thyIconName]=\"fieldType().icon\" class=\"text-desc mr-2\"></thy-icon>\n <span>{{ fieldType().name }}</span>\n </span>\n <thy-icon thyIconName=\"angle-right\" class=\"text-desc\"></thy-icon>\n </thy-list-item>\n </div>\n </thy-form-group>\n <ng-container *ngIf=\"aiExternalTemplate; else defaultTemplate\">\n <ng-container *ngTemplateOutlet=\"aiExternalTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultTemplate>\n <!-- TODO: \u5185\u90E8\u5C5E\u6027\u6E32\u67D3 -->\n </ng-template>\n <thy-form-group-footer thyAlign=\"right\">\n <button thyButton=\"link-secondary\" (click)=\"cancel()\" thySize=\"sm\">\u53D6\u6D88</button>\n <button thyButton=\"primary\" (thyFormSubmit)=\"editFieldProperty()\" thySize=\"sm\">\u786E\u5B9A</button>\n </thy-form-group-footer>\n</form>\n\n<thy-dropdown-menu #menu>\n @for (item of selectableFields; track $index) {\n <a thyDropdownMenuItem href=\"javascript:;\" (click)=\"selectFieldType(item)\">\n <thy-icon [thyIconName]=\"item.icon!\"></thy-icon>\n <span thyDropdownMenuItemName>{{ item.name }}</span>\n </a>\n }\n</thy-dropdown-menu>\n", styles: [":host{width:350px}\n"] }]
85
89
  }], ctorParameters: () => [], propDecorators: { aiTable: [{
86
90
  type: Input,
87
91
  args: [{ required: true }]
@@ -91,4 +95,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
91
95
  type: Input,
92
96
  args: [{ transform: booleanAttribute }]
93
97
  }] } });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtcHJvcGVydHktZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL2NvbXBvbmVudHMvZmllbGQtcHJvcGVydHktZWRpdG9yL2ZpZWxkLXByb3BlcnR5LWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb21wb25lbnRzL2ZpZWxkLXByb3BlcnR5LWVkaXRvci9maWVsZC1wcm9wZXJ0eS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBZSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0YsT0FBTyxFQUFFLDRCQUE0QixFQUFFLHVCQUF1QixFQUEwQixhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvSCxPQUFPLEVBQ0gsb0JBQW9CLEVBQ3BCLHdCQUF3QixFQUN4Qiw0QkFBNEIsRUFDNUIsZ0NBQWdDLEVBQ2hDLGdDQUFnQyxFQUNuQyxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQTJDLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3pILE9BQU8sRUFB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QUVKLFdBQVcsdzZDQUNYLE9BQU8sc01BRVAsYUFBYSwrS0FDYixhQUFhLGtGQUNiLGlCQUFpQiwrSUFFakIsdUJBQXVCLHlGQUN2QixvQkFBb0IsbVJBQ3BCLHdCQUF3QiwwR0FDeEIsNEJBQTRCLHNHQUM1QixnQ0FBZ0Msc0VBRWhDLFNBQVMsbUxBQ1QsYUFBYSwrckJBQ2IsV0FBVywwRUFDWCxnQkFBZ0Isb0pBQ2hCLHFCQUFxQjs7MkZBYWhCLDBCQUEwQjtrQkF0Q3RDLFNBQVM7K0JBQ0ksZ0NBQWdDLGNBRTlCLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDTCxJQUFJO3dCQUNKLE9BQU87d0JBQ1AsV0FBVzt3QkFDWCxPQUFPO3dCQUNQLFFBQVE7d0JBQ1IsYUFBYTt3QkFDYixhQUFhO3dCQUNiLGlCQUFpQjt3QkFDakIsNEJBQTRCO3dCQUM1Qix1QkFBdUI7d0JBQ3ZCLG9CQUFvQjt3QkFDcEIsd0JBQXdCO3dCQUN4Qiw0QkFBNEI7d0JBQzVCLGdDQUFnQzt3QkFDaEMsZ0NBQWdDO3dCQUNoQyxTQUFTO3dCQUNULGFBQWE7d0JBQ2IsV0FBVzt3QkFDWCxnQkFBZ0I7d0JBQ2hCLHFCQUFxQjtxQkFDeEIsUUFDSzt3QkFDRixLQUFLLEVBQUUsbURBQW1EO3FCQUM3RDt3REFZMEIsT0FBTztzQkFBakMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBRWhCLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFFa0MsUUFBUTtzQkFBL0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nRm9yT2YsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIFRlbXBsYXRlUmVmLCBib29sZWFuQXR0cmlidXRlLCBjb21wdXRlZCwgaW5qZWN0LCBtb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUaHlJbnB1dCwgVGh5SW5wdXRDb3VudCwgVGh5SW5wdXRHcm91cCwgVGh5SW5wdXREaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL2lucHV0JztcbmltcG9ydCB7IFRoeUNvbmZpcm1WYWxpZGF0b3JEaXJlY3RpdmUsIFRoeVVuaXF1ZUNoZWNrVmFsaWRhdG9yLCBUaHlGb3JtVmFsaWRhdG9yQ29uZmlnLCBUaHlGb3JtTW9kdWxlIH0gZnJvbSAnbmd4LXRldGh5cy9mb3JtJztcbmltcG9ydCB7XG4gICAgVGh5RHJvcGRvd25EaXJlY3RpdmUsXG4gICAgVGh5RHJvcGRvd25NZW51Q29tcG9uZW50LFxuICAgIFRoeURyb3Bkb3duTWVudUl0ZW1EaXJlY3RpdmUsXG4gICAgVGh5RHJvcGRvd25NZW51SXRlbU5hbWVEaXJlY3RpdmUsXG4gICAgVGh5RHJvcGRvd25NZW51SXRlbUljb25EaXJlY3RpdmVcbn0gZnJvbSAnbmd4LXRldGh5cy9kcm9wZG93bic7XG5pbXBvcnQgeyBUaHlCdXR0b24gfSBmcm9tICduZ3gtdGV0aHlzL2J1dHRvbic7XG5pbXBvcnQgeyBBSVRhYmxlLCBBSVRhYmxlRmllbGQsIEFJVGFibGVGaWVsZFR5cGUsIEFjdGlvbnMsIEZpZWxkcywgRmllbGRzTWFwLCBjcmVhdGVEZWZhdWx0RmllbGROYW1lIH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IFRoeVBvcG92ZXJSZWYgfSBmcm9tICduZ3gtdGV0aHlzL3BvcG92ZXInO1xuaW1wb3J0IHsgVGh5TGlzdEl0ZW0gfSBmcm9tICduZ3gtdGV0aHlzL2xpc3QnO1xuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRoeUF1dG9mb2N1c0RpcmVjdGl2ZSB9IGZyb20gJ25neC10ZXRoeXMvc2hhcmVkJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhaS10YWJsZS1maWVsZC1wcm9wZXJ0eS1lZGl0b3InLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9maWVsZC1wcm9wZXJ0eS1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ0lmLFxuICAgICAgICBOZ0Zvck9mLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgVGh5SWNvbixcbiAgICAgICAgVGh5SW5wdXQsXG4gICAgICAgIFRoeUlucHV0R3JvdXAsXG4gICAgICAgIFRoeUlucHV0Q291bnQsXG4gICAgICAgIFRoeUlucHV0RGlyZWN0aXZlLFxuICAgICAgICBUaHlDb25maXJtVmFsaWRhdG9yRGlyZWN0aXZlLFxuICAgICAgICBUaHlVbmlxdWVDaGVja1ZhbGlkYXRvcixcbiAgICAgICAgVGh5RHJvcGRvd25EaXJlY3RpdmUsXG4gICAgICAgIFRoeURyb3Bkb3duTWVudUNvbXBvbmVudCxcbiAgICAgICAgVGh5RHJvcGRvd25NZW51SXRlbURpcmVjdGl2ZSxcbiAgICAgICAgVGh5RHJvcGRvd25NZW51SXRlbU5hbWVEaXJlY3RpdmUsXG4gICAgICAgIFRoeURyb3Bkb3duTWVudUl0ZW1JY29uRGlyZWN0aXZlLFxuICAgICAgICBUaHlCdXR0b24sXG4gICAgICAgIFRoeUZvcm1Nb2R1bGUsXG4gICAgICAgIFRoeUxpc3RJdGVtLFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBUaHlBdXRvZm9jdXNEaXJlY3RpdmVcbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdmaWVsZC1wcm9wZXJ0eS1lZGl0b3IgZC1ibG9jayBwbC01IHByLTUgcGItNSBwdC00J1xuICAgIH0sXG4gICAgc3R5bGVzOiBbXG4gICAgICAgIGBcbiAgICAgICAgICAgIDpob3N0IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMzUwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIGBcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEFJVGFibGVGaWVsZFByb3BlcnR5RWRpdG9yIHtcbiAgICBhaUZpZWxkID0gbW9kZWwucmVxdWlyZWQ8QUlUYWJsZUZpZWxkPigpO1xuXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgYWlUYWJsZSE6IEFJVGFibGU7XG5cbiAgICBASW5wdXQoKSBhaUV4dGVybmFsVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc1VwZGF0ZSE6IGJvb2xlYW47XG5cbiAgICBmaWVsZFR5cGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIHJldHVybiBGaWVsZHNNYXBbdGhpcy5haUZpZWxkKCkudHlwZV07XG4gICAgfSk7XG5cbiAgICBmaWVsZE1heExlbmd0aCA9IDMyO1xuXG4gICAgdmFsaWRhdG9yQ29uZmlnOiBUaHlGb3JtVmFsaWRhdG9yQ29uZmlnID0ge1xuICAgICAgICB2YWxpZGF0aW9uTWVzc2FnZXM6IHtcbiAgICAgICAgICAgIGZpZWxkTmFtZToge1xuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAn5YiX5ZCN5LiN6IO95Li656m6JyxcbiAgICAgICAgICAgICAgICB0aHlVbmlxdWVDaGVjazogJ+WIl+WQjeW3suWtmOWcqCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBzZWxlY3RhYmxlRmllbGRzID0gRmllbGRzO1xuXG4gICAgcHJvdGVjdGVkIHRoeVBvcG92ZXJSZWYgPSBpbmplY3QoVGh5UG9wb3ZlclJlZjxBSVRhYmxlRmllbGRQcm9wZXJ0eUVkaXRvcj4pO1xuXG4gICAgY29uc3RydWN0b3IoKSB7fVxuXG4gICAgY2hlY2tVbmlxdWVOYW1lID0gKGZpZWxkTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGZpZWxkTmFtZSA9IGZpZWxkTmFtZT8udHJpbSgpO1xuICAgICAgICByZXR1cm4gb2YoISF0aGlzLmFpVGFibGUuZmllbGRzKCk/LmZpbmQoKGZpZWxkKSA9PiBmaWVsZC5uYW1lID09PSBmaWVsZE5hbWUgJiYgdGhpcy5haUZpZWxkKCk/Ll9pZCAhPT0gZmllbGQuX2lkKSk7XG4gICAgfTtcblxuICAgIHNlbGVjdEZpZWxkVHlwZShmaWVsZFR5cGU6IEFJVGFibGVGaWVsZFR5cGUpIHtcbiAgICAgICAgdGhpcy5haUZpZWxkLnVwZGF0ZSgoaXRlbSkgPT4gKHsgLi4uaXRlbSwgdHlwZTogZmllbGRUeXBlLCBuYW1lOiBjcmVhdGVEZWZhdWx0RmllbGROYW1lKHRoaXMuYWlUYWJsZSwgZmllbGRUeXBlKSB9KSk7XG4gICAgfVxuXG4gICAgZWRpdEZpZWxkUHJvcGVydHkoKSB7XG4gICAgICAgIGlmICh0aGlzLmlzVXBkYXRlKSB7XG4gICAgICAgICAgICBjb25zdCBwYXRoID0gdGhpcy5haVRhYmxlLmZpZWxkcygpLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS5faWQgPT09IHRoaXMuYWlGaWVsZCgpLl9pZCk7XG4gICAgICAgICAgICBBY3Rpb25zLnNldEZpZWxkKHRoaXMuYWlUYWJsZSwgdGhpcy5haUZpZWxkKCksIFtwYXRoXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBBY3Rpb25zLmFkZEZpZWxkKHRoaXMuYWlUYWJsZSwgdGhpcy5haUZpZWxkKCksIFt0aGlzLmFpVGFibGUuZmllbGRzKCkubGVuZ3RoXSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50aHlQb3BvdmVyUmVmLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgY2FuY2VsKCkge1xuICAgICAgICB0aGlzLnRoeVBvcG92ZXJSZWYuY2xvc2UoKTtcbiAgICB9XG59XG4iLCI8Zm9ybSB0aHlGb3JtIG5hbWU9XCJjcmVhdGVQcm9wZXJ0eUZvcm1cIiBbdGh5Rm9ybVZhbGlkYXRvckNvbmZpZ109XCJ2YWxpZGF0b3JDb25maWdcIiB0aHlMYXlvdXQ9XCJ2ZXJ0aWNhbFwiPlxuICAgIDx0aHktZm9ybS1ncm91cCB0aHlMYWJlbFJlcXVpcmVkIHRoeUxhYmVsVGV4dD1cIuihqOagvOWIl+WQjVwiPlxuICAgICAgICA8dGh5LWlucHV0LWdyb3VwPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdGh5SW5wdXRcbiAgICAgICAgICAgICAgICBbdGh5QXV0b2ZvY3VzXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIG5hbWU9XCJmaWVsZE5hbWVcIlxuICAgICAgICAgICAgICAgIFttYXhsZW5ndGhdPVwiZmllbGRNYXhMZW5ndGhcIlxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiYWlGaWVsZCgpLm5hbWVcIlxuICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLovpPlhaXliJflkI3np7BcIlxuICAgICAgICAgICAgICAgIFt0aHlVbmlxdWVDaGVja109XCJjaGVja1VuaXF1ZU5hbWVcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc3VmZml4PlxuICAgICAgICAgICAgICAgIDx0aHktaW5wdXQtY291bnQ+PC90aHktaW5wdXQtY291bnQ+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3RoeS1pbnB1dC1ncm91cD5cbiAgICA8L3RoeS1mb3JtLWdyb3VwPlxuICAgIDx0aHktZm9ybS1ncm91cCB0aHlMYWJlbFRleHQ9XCLliJfnsbvlnotcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1sLW41IG1yLW41XCI+XG4gICAgICAgICAgICA8dGh5LWxpc3QtaXRlbSBbdGh5RHJvcGRvd25dPVwibWVudVwiIHRoeVRyaWdnZXI9XCJob3ZlclwiIHRoeVBsYWNlbWVudD1cInJpZ2h0XCIgY2xhc3M9XCJqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxuICAgICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgICAgICA8dGh5LWljb24gW3RoeUljb25OYW1lXT1cImZpZWxkVHlwZSgpLmljb25cIiBjbGFzcz1cInRleHQtZGVzYyBtci0yXCI+PC90aHktaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgZmllbGRUeXBlKCkubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHRoeS1pY29uIHRoeUljb25OYW1lPVwiYW5nbGUtcmlnaHRcIiBjbGFzcz1cInRleHQtZGVzY1wiPjwvdGh5LWljb24+XG4gICAgICAgICAgICA8L3RoeS1saXN0LWl0ZW0+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvdGh5LWZvcm0tZ3JvdXA+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFpRXh0ZXJuYWxUZW1wbGF0ZTsgZWxzZSBkZWZhdWx0VGVtcGxhdGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImFpRXh0ZXJuYWxUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFRlbXBsYXRlPlxuICAgICAgICA8IS0tIFRPRE86IOWGhemDqOWxnuaAp+a4suafkyAtLT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDx0aHktZm9ybS1ncm91cC1mb290ZXIgdGh5QWxpZ249XCJyaWdodFwiPlxuICAgICAgICA8YnV0dG9uIHRoeUJ1dHRvbj1cImxpbmstc2Vjb25kYXJ5XCIgKGNsaWNrKT1cImNhbmNlbCgpXCIgdGh5U2l6ZT1cInNtXCI+5Y+W5raIPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gdGh5QnV0dG9uPVwicHJpbWFyeVwiICh0aHlGb3JtU3VibWl0KT1cImVkaXRGaWVsZFByb3BlcnR5KClcIiB0aHlTaXplPVwic21cIj7noa7lrpo8L2J1dHRvbj5cbiAgICA8L3RoeS1mb3JtLWdyb3VwLWZvb3Rlcj5cbjwvZm9ybT5cblxuPHRoeS1kcm9wZG93bi1tZW51ICNtZW51PlxuICAgIEBmb3IgKGl0ZW0gb2Ygc2VsZWN0YWJsZUZpZWxkczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgIDxhIHRoeURyb3Bkb3duTWVudUl0ZW0gaHJlZj1cImphdmFzY3JpcHQ6O1wiIChjbGljayk9XCJzZWxlY3RGaWVsZFR5cGUoaXRlbS50eXBlKVwiPlxuICAgICAgICAgICAgPHRoeS1pY29uIFt0aHlJY29uTmFtZV09XCJpdGVtLmljb25cIj48L3RoeS1pY29uPlxuICAgICAgICAgICAgPHNwYW4gdGh5RHJvcGRvd25NZW51SXRlbU5hbWU+e3sgaXRlbS5uYW1lIH19PC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgfVxuPC90aHktZHJvcGRvd24tbWVudT5cbiJdfQ==
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtcHJvcGVydHktZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL2NvbXBvbmVudHMvZmllbGQtcHJvcGVydHktZWRpdG9yL2ZpZWxkLXByb3BlcnR5LWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb21wb25lbnRzL2ZpZWxkLXByb3BlcnR5LWVkaXRvci9maWVsZC1wcm9wZXJ0eS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBZSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0YsT0FBTyxFQUFFLDRCQUE0QixFQUFFLHVCQUF1QixFQUEwQixhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvSCxPQUFPLEVBQ0gsb0JBQW9CLEVBQ3BCLHdCQUF3QixFQUN4Qiw0QkFBNEIsRUFDNUIsZ0NBQWdDLEVBQ2hDLGdDQUFnQyxFQUNuQyxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQTJDLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3pILE9BQU8sRUFB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QWdCLDRKQ2pFeEMsOHZFQWlEQSw4RUR2QlEsSUFBSSw0RkFFSixXQUFXLHc2Q0FDWCxPQUFPLHNNQUVQLGFBQWEsK0tBQ2IsYUFBYSxrRkFDYixpQkFBaUIsK0lBRWpCLHVCQUF1Qix5RkFDdkIsb0JBQW9CLG1SQUNwQix3QkFBd0IsMEdBQ3hCLDRCQUE0QixzR0FDNUIsZ0NBQWdDLHNFQUVoQyxTQUFTLG1MQUNULGFBQWEsK3JCQUNiLFdBQVcsMEVBQ1gsZ0JBQWdCLG9KQUNoQixxQkFBcUI7OzJGQWFoQiwwQkFBMEI7a0JBdEN0QyxTQUFTOytCQUNJLGdDQUFnQyxjQUU5QixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ0wsSUFBSTt3QkFDSixPQUFPO3dCQUNQLFdBQVc7d0JBQ1gsT0FBTzt3QkFDUCxRQUFRO3dCQUNSLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLDRCQUE0Qjt3QkFDNUIsdUJBQXVCO3dCQUN2QixvQkFBb0I7d0JBQ3BCLHdCQUF3Qjt3QkFDeEIsNEJBQTRCO3dCQUM1QixnQ0FBZ0M7d0JBQ2hDLGdDQUFnQzt3QkFDaEMsU0FBUzt3QkFDVCxhQUFhO3dCQUNiLFdBQVc7d0JBQ1gsZ0JBQWdCO3dCQUNoQixxQkFBcUI7cUJBQ3hCLFFBQ0s7d0JBQ0YsS0FBSyxFQUFFLG1EQUFtRDtxQkFDN0Q7d0RBWTBCLE9BQU87c0JBQWpDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUVoQixrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBRWtDLFFBQVE7c0JBQS9DLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0Zvck9mLCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBUZW1wbGF0ZVJlZiwgYm9vbGVhbkF0dHJpYnV0ZSwgY29tcHV0ZWQsIGluamVjdCwgbW9kZWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVGh5SW5wdXQsIFRoeUlucHV0Q291bnQsIFRoeUlucHV0R3JvdXAsIFRoeUlucHV0RGlyZWN0aXZlIH0gZnJvbSAnbmd4LXRldGh5cy9pbnB1dCc7XG5pbXBvcnQgeyBUaHlDb25maXJtVmFsaWRhdG9yRGlyZWN0aXZlLCBUaHlVbmlxdWVDaGVja1ZhbGlkYXRvciwgVGh5Rm9ybVZhbGlkYXRvckNvbmZpZywgVGh5Rm9ybU1vZHVsZSB9IGZyb20gJ25neC10ZXRoeXMvZm9ybSc7XG5pbXBvcnQge1xuICAgIFRoeURyb3Bkb3duRGlyZWN0aXZlLFxuICAgIFRoeURyb3Bkb3duTWVudUNvbXBvbmVudCxcbiAgICBUaHlEcm9wZG93bk1lbnVJdGVtRGlyZWN0aXZlLFxuICAgIFRoeURyb3Bkb3duTWVudUl0ZW1OYW1lRGlyZWN0aXZlLFxuICAgIFRoeURyb3Bkb3duTWVudUl0ZW1JY29uRGlyZWN0aXZlXG59IGZyb20gJ25neC10ZXRoeXMvZHJvcGRvd24nO1xuaW1wb3J0IHsgVGh5QnV0dG9uIH0gZnJvbSAnbmd4LXRldGh5cy9idXR0b24nO1xuaW1wb3J0IHsgQUlUYWJsZSwgQUlUYWJsZUZpZWxkLCBBSVRhYmxlRmllbGRUeXBlLCBBY3Rpb25zLCBGaWVsZHMsIEZpZWxkc01hcCwgY3JlYXRlRGVmYXVsdEZpZWxkTmFtZSB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgVGh5SWNvbiB9IGZyb20gJ25neC10ZXRoeXMvaWNvbic7XG5pbXBvcnQgeyBUaHlQb3BvdmVyUmVmIH0gZnJvbSAnbmd4LXRldGh5cy9wb3BvdmVyJztcbmltcG9ydCB7IFRoeUxpc3RJdGVtIH0gZnJvbSAnbmd4LXRldGh5cy9saXN0JztcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUaHlBdXRvZm9jdXNEaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL3NoYXJlZCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWktdGFibGUtZmllbGQtcHJvcGVydHktZWRpdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZmllbGQtcHJvcGVydHktZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmdJZixcbiAgICAgICAgTmdGb3JPZixcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFRoeUljb24sXG4gICAgICAgIFRoeUlucHV0LFxuICAgICAgICBUaHlJbnB1dEdyb3VwLFxuICAgICAgICBUaHlJbnB1dENvdW50LFxuICAgICAgICBUaHlJbnB1dERpcmVjdGl2ZSxcbiAgICAgICAgVGh5Q29uZmlybVZhbGlkYXRvckRpcmVjdGl2ZSxcbiAgICAgICAgVGh5VW5pcXVlQ2hlY2tWYWxpZGF0b3IsXG4gICAgICAgIFRoeURyb3Bkb3duRGlyZWN0aXZlLFxuICAgICAgICBUaHlEcm9wZG93bk1lbnVDb21wb25lbnQsXG4gICAgICAgIFRoeURyb3Bkb3duTWVudUl0ZW1EaXJlY3RpdmUsXG4gICAgICAgIFRoeURyb3Bkb3duTWVudUl0ZW1OYW1lRGlyZWN0aXZlLFxuICAgICAgICBUaHlEcm9wZG93bk1lbnVJdGVtSWNvbkRpcmVjdGl2ZSxcbiAgICAgICAgVGh5QnV0dG9uLFxuICAgICAgICBUaHlGb3JtTW9kdWxlLFxuICAgICAgICBUaHlMaXN0SXRlbSxcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgVGh5QXV0b2ZvY3VzRGlyZWN0aXZlXG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnZmllbGQtcHJvcGVydHktZWRpdG9yIGQtYmxvY2sgcGwtNSBwci01IHBiLTUgcHQtNCdcbiAgICB9LFxuICAgIHN0eWxlczogW1xuICAgICAgICBgXG4gICAgICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDM1MHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICBgXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBBSVRhYmxlRmllbGRQcm9wZXJ0eUVkaXRvciB7XG4gICAgYWlFZGl0RmllbGQgPSBtb2RlbC5yZXF1aXJlZDxBSVRhYmxlRmllbGQ+KCk7XG5cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBhaVRhYmxlITogQUlUYWJsZTtcblxuICAgIEBJbnB1dCgpIGFpRXh0ZXJuYWxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzVXBkYXRlITogYm9vbGVhbjtcblxuICAgIGZpZWxkVHlwZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIEZpZWxkc01hcFt0aGlzLmFpRWRpdEZpZWxkKCkudHlwZV07XG4gICAgfSk7XG5cbiAgICBmaWVsZE1heExlbmd0aCA9IDMyO1xuXG4gICAgdmFsaWRhdG9yQ29uZmlnOiBUaHlGb3JtVmFsaWRhdG9yQ29uZmlnID0ge1xuICAgICAgICB2YWxpZGF0aW9uTWVzc2FnZXM6IHtcbiAgICAgICAgICAgIGZpZWxkTmFtZToge1xuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAn5YiX5ZCN5LiN6IO95Li656m6JyxcbiAgICAgICAgICAgICAgICB0aHlVbmlxdWVDaGVjazogJ+WIl+WQjeW3suWtmOWcqCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBzZWxlY3RhYmxlRmllbGRzID0gRmllbGRzO1xuXG4gICAgcHJvdGVjdGVkIHRoeVBvcG92ZXJSZWYgPSBpbmplY3QoVGh5UG9wb3ZlclJlZjxBSVRhYmxlRmllbGRQcm9wZXJ0eUVkaXRvcj4pO1xuXG4gICAgY29uc3RydWN0b3IoKSB7fVxuXG4gICAgY2hlY2tVbmlxdWVOYW1lID0gKGZpZWxkTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGZpZWxkTmFtZSA9IGZpZWxkTmFtZT8udHJpbSgpO1xuICAgICAgICByZXR1cm4gb2YoISF0aGlzLmFpVGFibGUuZmllbGRzKCk/LmZpbmQoKGZpZWxkKSA9PiBmaWVsZC5uYW1lID09PSBmaWVsZE5hbWUgJiYgdGhpcy5haUVkaXRGaWVsZCgpPy5faWQgIT09IGZpZWxkLl9pZCkpO1xuICAgIH07XG5cbiAgICBzZWxlY3RGaWVsZFR5cGUoZmllbGQ6IFBhcnRpYWw8QUlUYWJsZUZpZWxkPikge1xuICAgICAgICB0aGlzLmFpRWRpdEZpZWxkLnVwZGF0ZSgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBpdGVtLndpZHRoID8/IGZpZWxkLndpZHRoO1xuICAgICAgICAgICAgY29uc3QgbmFtZSA9IGNyZWF0ZURlZmF1bHRGaWVsZE5hbWUodGhpcy5haVRhYmxlLCBmaWVsZC50eXBlISk7XG4gICAgICAgICAgICBjb25zdCBzZXR0aW5ncyA9IGZpZWxkLnNldHRpbmdzO1xuICAgICAgICAgICAgcmV0dXJuIHsgLi4uaXRlbSwgLi4uZmllbGQsIHdpZHRoLCBuYW1lLCBzZXR0aW5ncyB9O1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBlZGl0RmllbGRQcm9wZXJ0eSgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNVcGRhdGUpIHtcbiAgICAgICAgICAgIEFjdGlvbnMuc2V0RmllbGQodGhpcy5haVRhYmxlLCB0aGlzLmFpRWRpdEZpZWxkKCksIFt0aGlzLmFpRWRpdEZpZWxkKCkuX2lkXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBBY3Rpb25zLmFkZEZpZWxkKHRoaXMuYWlUYWJsZSwgdGhpcy5haUVkaXRGaWVsZCgpLCBbdGhpcy5haVRhYmxlLmZpZWxkcygpLmxlbmd0aF0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudGh5UG9wb3ZlclJlZi5jbG9zZSgpO1xuICAgIH1cblxuICAgIGNhbmNlbCgpIHtcbiAgICAgICAgdGhpcy50aHlQb3BvdmVyUmVmLmNsb3NlKCk7XG4gICAgfVxufVxuIiwiPGZvcm0gdGh5Rm9ybSBuYW1lPVwiY3JlYXRlUHJvcGVydHlGb3JtXCIgW3RoeUZvcm1WYWxpZGF0b3JDb25maWddPVwidmFsaWRhdG9yQ29uZmlnXCIgdGh5TGF5b3V0PVwidmVydGljYWxcIj5cbiAgICA8dGh5LWZvcm0tZ3JvdXAgdGh5TGFiZWxSZXF1aXJlZCB0aHlMYWJlbFRleHQ9XCLooajmoLzliJflkI1cIj5cbiAgICAgICAgPHRoeS1pbnB1dC1ncm91cD5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHRoeUlucHV0XG4gICAgICAgICAgICAgICAgW3RoeUF1dG9mb2N1c109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBuYW1lPVwiZmllbGROYW1lXCJcbiAgICAgICAgICAgICAgICBbbWF4bGVuZ3RoXT1cImZpZWxkTWF4TGVuZ3RoXCJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImFpRWRpdEZpZWxkKCkubmFtZVwiXG4gICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIui+k+WFpeWIl+WQjeensFwiXG4gICAgICAgICAgICAgICAgW3RoeVVuaXF1ZUNoZWNrXT1cImNoZWNrVW5pcXVlTmFtZVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNzdWZmaXg+XG4gICAgICAgICAgICAgICAgPHRoeS1pbnB1dC1jb3VudD48L3RoeS1pbnB1dC1jb3VudD5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvdGh5LWlucHV0LWdyb3VwPlxuICAgIDwvdGh5LWZvcm0tZ3JvdXA+XG4gICAgPHRoeS1mb3JtLWdyb3VwIHRoeUxhYmVsVGV4dD1cIuWIl+exu+Wei1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWwtbjUgbXItbjVcIj5cbiAgICAgICAgICAgIDx0aHktbGlzdC1pdGVtIFt0aHlEcm9wZG93bl09XCJtZW51XCIgdGh5VHJpZ2dlcj1cImhvdmVyXCIgdGh5UGxhY2VtZW50PVwicmlnaHRcIiBjbGFzcz1cImp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgICAgIDx0aHktaWNvbiBbdGh5SWNvbk5hbWVdPVwiZmllbGRUeXBlKCkuaWNvblwiIGNsYXNzPVwidGV4dC1kZXNjIG1yLTJcIj48L3RoeS1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBmaWVsZFR5cGUoKS5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJhbmdsZS1yaWdodFwiIGNsYXNzPVwidGV4dC1kZXNjXCI+PC90aHktaWNvbj5cbiAgICAgICAgICAgIDwvdGh5LWxpc3QtaXRlbT5cbiAgICAgICAgPC9kaXY+XG4gICAgPC90aHktZm9ybS1ncm91cD5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWlFeHRlcm5hbFRlbXBsYXRlOyBlbHNlIGRlZmF1bHRUZW1wbGF0ZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYWlFeHRlcm5hbFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0VGVtcGxhdGU+XG4gICAgICAgIDwhLS0gVE9ETzog5YaF6YOo5bGe5oCn5riy5p+TIC0tPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPHRoeS1mb3JtLWdyb3VwLWZvb3RlciB0aHlBbGlnbj1cInJpZ2h0XCI+XG4gICAgICAgIDxidXR0b24gdGh5QnV0dG9uPVwibGluay1zZWNvbmRhcnlcIiAoY2xpY2spPVwiY2FuY2VsKClcIiB0aHlTaXplPVwic21cIj7lj5bmtog8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiB0aHlCdXR0b249XCJwcmltYXJ5XCIgKHRoeUZvcm1TdWJtaXQpPVwiZWRpdEZpZWxkUHJvcGVydHkoKVwiIHRoeVNpemU9XCJzbVwiPuehruWumjwvYnV0dG9uPlxuICAgIDwvdGh5LWZvcm0tZ3JvdXAtZm9vdGVyPlxuPC9mb3JtPlxuXG48dGh5LWRyb3Bkb3duLW1lbnUgI21lbnU+XG4gICAgQGZvciAoaXRlbSBvZiBzZWxlY3RhYmxlRmllbGRzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPGEgdGh5RHJvcGRvd25NZW51SXRlbSBocmVmPVwiamF2YXNjcmlwdDo7XCIgKGNsaWNrKT1cInNlbGVjdEZpZWxkVHlwZShpdGVtKVwiPlxuICAgICAgICAgICAgPHRoeS1pY29uIFt0aHlJY29uTmFtZV09XCJpdGVtLmljb24hXCI+PC90aHktaWNvbj5cbiAgICAgICAgICAgIDxzcGFuIHRoeURyb3Bkb3duTWVudUl0ZW1OYW1lPnt7IGl0ZW0ubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgIH1cbjwvdGh5LWRyb3Bkb3duLW1lbnU+XG4iXX0=
@@ -4,5 +4,6 @@ export * from './cell-editors/number/number-editor.component';
4
4
  export * from './cell-editors/progress/progress-editor.component';
5
5
  export * from './cell-editors/rating/rating-editor.component';
6
6
  export * from './cell-editors/text/text-editor.component';
7
+ export * from './cell-views/select/option.component';
7
8
  export * from './field-property-editor/field-property-editor.component';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMseURBQXlELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NlbGwtZWRpdG9ycy9kYXRlLXRpbWUvZGF0ZS10aW1lLWVkaXRvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jZWxsLWVkaXRvcnMvbGluay9udW1iZXItZWRpdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NlbGwtZWRpdG9ycy9udW1iZXIvbnVtYmVyLWVkaXRvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jZWxsLWVkaXRvcnMvcHJvZ3Jlc3MvcHJvZ3Jlc3MtZWRpdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NlbGwtZWRpdG9ycy9yYXRpbmcvcmF0aW5nLWVkaXRvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jZWxsLWVkaXRvcnMvdGV4dC90ZXh0LWVkaXRvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9maWVsZC1wcm9wZXJ0eS1lZGl0b3IvZmllbGQtcHJvcGVydHktZWRpdG9yLmNvbXBvbmVudCc7XG4iXX0=
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx5REFBeUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2VsbC1lZGl0b3JzL2RhdGUtdGltZS9kYXRlLXRpbWUtZWRpdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NlbGwtZWRpdG9ycy9saW5rL251bWJlci1lZGl0b3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY2VsbC1lZGl0b3JzL251bWJlci9udW1iZXItZWRpdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NlbGwtZWRpdG9ycy9wcm9ncmVzcy9wcm9ncmVzcy1lZGl0b3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY2VsbC1lZGl0b3JzL3JhdGluZy9yYXRpbmctZWRpdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NlbGwtZWRpdG9ycy90ZXh0L3RleHQtZWRpdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NlbGwtdmlld3Mvc2VsZWN0L29wdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9maWVsZC1wcm9wZXJ0eS1lZGl0b3IvZmllbGQtcHJvcGVydHktZWRpdG9yLmNvbXBvbmVudCc7XG4iXX0=
@@ -1,4 +1,4 @@
1
- import { Actions, AITableQueries } from '../core';
1
+ import { Actions } from '../core';
2
2
  import { AI_TABLE_GRID_FIELD_SERVICE_MAP } from '../services/field.service';
3
3
  import { signal } from '@angular/core';
4
4
  export const DividerMenuItem = {
@@ -19,9 +19,8 @@ export const RemoveFieldItem = {
19
19
  name: '删除列',
20
20
  icon: 'trash',
21
21
  exec: (aiTable, field) => {
22
- const path = AITableQueries.findPath(aiTable, field());
23
- Actions.removeField(aiTable, path);
22
+ Actions.removeField(aiTable, [field()._id]);
24
23
  }
25
24
  };
26
25
  export const DefaultFieldMenus = [EditFieldPropertyItem, RemoveFieldItem];
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb25zdGFudHMvZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBc0MsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVFLE9BQU8sRUFBYyxNQUFNLEVBQTBCLE1BQU0sZUFBZSxDQUFDO0FBRzNFLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRztJQUMzQixJQUFJLEVBQUUsU0FBUztDQUNsQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUc7SUFDakMsSUFBSSxFQUFFLG1CQUFtQjtJQUN6QixJQUFJLEVBQUUsS0FBSztJQUNYLElBQUksRUFBRSxNQUFNO0lBQ1osSUFBSSxFQUFFLENBQUMsT0FBZ0IsRUFBRSxLQUEyQixFQUFFLE1BQXNDLEVBQUUsRUFBRTtRQUM1RixNQUFNLFlBQVksR0FBRywrQkFBK0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEUsTUFBTSxTQUFTLEdBQWlDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUYsTUFBTSxJQUFJLFlBQVksRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNoRixDQUFDO0NBQ0osQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRztJQUMzQixJQUFJLEVBQUUsYUFBYTtJQUNuQixJQUFJLEVBQUUsS0FBSztJQUNYLElBQUksRUFBRSxPQUFPO0lBQ2IsSUFBSSxFQUFFLENBQUMsT0FBZ0IsRUFBRSxLQUEyQixFQUFFLEVBQUU7UUFDcEQsTUFBTSxJQUFJLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQWdCLENBQUM7UUFDdEUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztDQUNKLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBMkIsQ0FBQyxxQkFBcUIsRUFBRSxlQUFlLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbnMsIEFJRmllbGRQYXRoLCBBSVRhYmxlLCBBSVRhYmxlRmllbGQsIEFJVGFibGVRdWVyaWVzIH0gZnJvbSAnLi4vY29yZSc7XG5pbXBvcnQgeyBBSV9UQUJMRV9HUklEX0ZJRUxEX1NFUlZJQ0VfTUFQIH0gZnJvbSAnLi4vc2VydmljZXMvZmllbGQuc2VydmljZSc7XG5pbXBvcnQgeyBFbGVtZW50UmVmLCBzaWduYWwsIFNpZ25hbCwgV3JpdGFibGVTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFJVGFibGVGaWVsZE1lbnVJdGVtIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgRGl2aWRlck1lbnVJdGVtID0ge1xuICAgIHR5cGU6ICdkaXZpZGVyJ1xufTtcblxuZXhwb3J0IGNvbnN0IEVkaXRGaWVsZFByb3BlcnR5SXRlbSA9IHtcbiAgICB0eXBlOiAnZWRpdEZpZWxkUHJvcGVydHknLFxuICAgIG5hbWU6ICfnvJbovpHliJcnLFxuICAgIGljb246ICdlZGl0JyxcbiAgICBleGVjOiAoYWlUYWJsZTogQUlUYWJsZSwgZmllbGQ6IFNpZ25hbDxBSVRhYmxlRmllbGQ+LCBvcmlnaW4/OiBIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWY8YW55PikgPT4ge1xuICAgICAgICBjb25zdCBmaWVsZFNlcnZpY2UgPSBBSV9UQUJMRV9HUklEX0ZJRUxEX1NFUlZJQ0VfTUFQLmdldChhaVRhYmxlKTtcbiAgICAgICAgY29uc3QgY29weUZpZWxkOiBXcml0YWJsZVNpZ25hbDxBSVRhYmxlRmllbGQ+ID0gc2lnbmFsKEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZmllbGQoKSkpKTtcbiAgICAgICAgb3JpZ2luICYmIGZpZWxkU2VydmljZT8uZWRpdEZpZWxkUHJvcGVydHkob3JpZ2luLCBhaVRhYmxlLCBjb3B5RmllbGQsIHRydWUpO1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBSZW1vdmVGaWVsZEl0ZW0gPSB7XG4gICAgdHlwZTogJ3JlbW92ZUZpZWxkJyxcbiAgICBuYW1lOiAn5Yig6Zmk5YiXJyxcbiAgICBpY29uOiAndHJhc2gnLFxuICAgIGV4ZWM6IChhaVRhYmxlOiBBSVRhYmxlLCBmaWVsZDogU2lnbmFsPEFJVGFibGVGaWVsZD4pID0+IHtcbiAgICAgICAgY29uc3QgcGF0aCA9IEFJVGFibGVRdWVyaWVzLmZpbmRQYXRoKGFpVGFibGUsIGZpZWxkKCkpIGFzIEFJRmllbGRQYXRoO1xuICAgICAgICBBY3Rpb25zLnJlbW92ZUZpZWxkKGFpVGFibGUsIHBhdGgpO1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0RmllbGRNZW51czogQUlUYWJsZUZpZWxkTWVudUl0ZW1bXSA9IFtFZGl0RmllbGRQcm9wZXJ0eUl0ZW0sIFJlbW92ZUZpZWxkSXRlbV07XG4iXX0=
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb25zdGFudHMvZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBc0QsTUFBTSxTQUFTLENBQUM7QUFDdEYsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUUsT0FBTyxFQUFjLE1BQU0sRUFBMEIsTUFBTSxlQUFlLENBQUM7QUFHM0UsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHO0lBQzNCLElBQUksRUFBRSxTQUFTO0NBQ2xCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRztJQUNqQyxJQUFJLEVBQUUsbUJBQW1CO0lBQ3pCLElBQUksRUFBRSxLQUFLO0lBQ1gsSUFBSSxFQUFFLE1BQU07SUFDWixJQUFJLEVBQUUsQ0FBQyxPQUFnQixFQUFFLEtBQTJCLEVBQUUsTUFBc0MsRUFBRSxFQUFFO1FBQzVGLE1BQU0sWUFBWSxHQUFHLCtCQUErQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsRSxNQUFNLFNBQVMsR0FBaUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RixNQUFNLElBQUksWUFBWSxFQUFFLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hGLENBQUM7Q0FDSixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHO0lBQzNCLElBQUksRUFBRSxhQUFhO0lBQ25CLElBQUksRUFBRSxLQUFLO0lBQ1gsSUFBSSxFQUFFLE9BQU87SUFDYixJQUFJLEVBQUUsQ0FBQyxPQUFnQixFQUFFLEtBQTJCLEVBQUUsRUFBRTtRQUNwRCxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQztDQUNKLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBMkIsQ0FBQyxxQkFBcUIsRUFBRSxlQUFlLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbnMsIEFJRmllbGRQYXRoLCBBSVRhYmxlLCBBSVRhYmxlRmllbGQsIEFJVGFibGVRdWVyaWVzIH0gZnJvbSAnLi4vY29yZSc7XG5pbXBvcnQgeyBBSV9UQUJMRV9HUklEX0ZJRUxEX1NFUlZJQ0VfTUFQIH0gZnJvbSAnLi4vc2VydmljZXMvZmllbGQuc2VydmljZSc7XG5pbXBvcnQgeyBFbGVtZW50UmVmLCBzaWduYWwsIFNpZ25hbCwgV3JpdGFibGVTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFJVGFibGVGaWVsZE1lbnVJdGVtIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgRGl2aWRlck1lbnVJdGVtID0ge1xuICAgIHR5cGU6ICdkaXZpZGVyJ1xufTtcblxuZXhwb3J0IGNvbnN0IEVkaXRGaWVsZFByb3BlcnR5SXRlbSA9IHtcbiAgICB0eXBlOiAnZWRpdEZpZWxkUHJvcGVydHknLFxuICAgIG5hbWU6ICfnvJbovpHliJcnLFxuICAgIGljb246ICdlZGl0JyxcbiAgICBleGVjOiAoYWlUYWJsZTogQUlUYWJsZSwgZmllbGQ6IFNpZ25hbDxBSVRhYmxlRmllbGQ+LCBvcmlnaW4/OiBIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWY8YW55PikgPT4ge1xuICAgICAgICBjb25zdCBmaWVsZFNlcnZpY2UgPSBBSV9UQUJMRV9HUklEX0ZJRUxEX1NFUlZJQ0VfTUFQLmdldChhaVRhYmxlKTtcbiAgICAgICAgY29uc3QgY29weUZpZWxkOiBXcml0YWJsZVNpZ25hbDxBSVRhYmxlRmllbGQ+ID0gc2lnbmFsKEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZmllbGQoKSkpKTtcbiAgICAgICAgb3JpZ2luICYmIGZpZWxkU2VydmljZT8uZWRpdEZpZWxkUHJvcGVydHkob3JpZ2luLCBhaVRhYmxlLCBjb3B5RmllbGQsIHRydWUpO1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBSZW1vdmVGaWVsZEl0ZW0gPSB7XG4gICAgdHlwZTogJ3JlbW92ZUZpZWxkJyxcbiAgICBuYW1lOiAn5Yig6Zmk5YiXJyxcbiAgICBpY29uOiAndHJhc2gnLFxuICAgIGV4ZWM6IChhaVRhYmxlOiBBSVRhYmxlLCBmaWVsZDogU2lnbmFsPEFJVGFibGVGaWVsZD4pID0+IHtcbiAgICAgICAgQWN0aW9ucy5yZW1vdmVGaWVsZChhaVRhYmxlLCBbZmllbGQoKS5faWRdKTtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdEZpZWxkTWVudXM6IEFJVGFibGVGaWVsZE1lbnVJdGVtW10gPSBbRWRpdEZpZWxkUHJvcGVydHlJdGVtLCBSZW1vdmVGaWVsZEl0ZW1dO1xuIl19
@@ -26,20 +26,23 @@ export function removeField(aiTable, path) {
26
26
  export function setField(aiTable, value, path) {
27
27
  const field = AITableQueries.getField(aiTable, path);
28
28
  if (field) {
29
- const oldField = {};
30
- const newField = {};
31
- for (const k in value) {
32
- if (field[k] !== value[k]) {
29
+ const properties = {};
30
+ const newProperties = {};
31
+ for (const key in value) {
32
+ const k = key;
33
+ if (field[k]?.toString() !== value[k]?.toString()) {
33
34
  if (field.hasOwnProperty(k)) {
34
- oldField[k] = field[k];
35
+ properties[k] = field[k];
36
+ }
37
+ if (newProperties[k] !== null) {
38
+ newProperties[k] = value[k];
35
39
  }
36
- newField[k] = value[k];
37
40
  }
38
41
  }
39
42
  const operation = {
40
43
  type: ActionName.SetField,
41
- field: oldField,
42
- newField,
44
+ properties,
45
+ newProperties,
43
46
  path
44
47
  };
45
48
  aiTable.apply(operation);
@@ -51,4 +54,4 @@ export const FieldActions = {
51
54
  removeField,
52
55
  setField
53
56
  };
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb3JlL2FjdGlvbi9maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsVUFBVSxFQVFiLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFMUMsTUFBTSxVQUFVLFFBQVEsQ0FBQyxPQUFnQixFQUFFLEtBQW1CLEVBQUUsSUFBaUI7SUFDN0UsTUFBTSxTQUFTLEdBQW1CO1FBQzlCLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUTtRQUN6QixLQUFLO1FBQ0wsSUFBSTtLQUNQLENBQUM7SUFDRixPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzdCLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLE9BQWdCLEVBQUUsSUFBaUIsRUFBRSxPQUFvQjtJQUMvRSxNQUFNLFNBQVMsR0FBb0I7UUFDL0IsSUFBSSxFQUFFLFVBQVUsQ0FBQyxTQUFTO1FBQzFCLElBQUk7UUFDSixPQUFPO0tBQ1YsQ0FBQztJQUNGLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDN0IsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsT0FBZ0IsRUFBRSxJQUFpQjtJQUMzRCxNQUFNLFNBQVMsR0FBc0I7UUFDakMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxXQUFXO1FBQzVCLElBQUk7S0FDUCxDQUFDO0lBQ0YsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUM3QixDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxPQUFnQixFQUFFLEtBQTRCLEVBQUUsSUFBaUI7SUFDdEYsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDckQsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNSLE1BQU0sUUFBUSxHQUEwQixFQUFFLENBQUM7UUFDM0MsTUFBTSxRQUFRLEdBQTBCLEVBQUUsQ0FBQztRQUMzQyxLQUFLLE1BQU0sQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3BCLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUN4QixJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDMUIsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0IsQ0FBQztnQkFDRCxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNCLENBQUM7UUFDTCxDQUFDO1FBRUQsTUFBTSxTQUFTLEdBQW1CO1lBQzlCLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUTtZQUN6QixLQUFLLEVBQUUsUUFBUTtZQUNmLFFBQVE7WUFDUixJQUFJO1NBQ1AsQ0FBQztRQUVGLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDN0IsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUc7SUFDeEIsUUFBUTtJQUNSLFNBQVM7SUFDVCxXQUFXO0lBQ1gsUUFBUTtDQUNYLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFjdGlvbk5hbWUsXG4gICAgQWRkRmllbGRBY3Rpb24sXG4gICAgQUlGaWVsZFBhdGgsXG4gICAgQUlUYWJsZSxcbiAgICBBSVRhYmxlRmllbGQsXG4gICAgTW92ZUZpZWxkQWN0aW9uLFxuICAgIFJlbW92ZUZpZWxkQWN0aW9uLFxuICAgIFNldEZpZWxkQWN0aW9uXG59IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IEFJVGFibGVRdWVyaWVzIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gYWRkRmllbGQoYWlUYWJsZTogQUlUYWJsZSwgZmllbGQ6IEFJVGFibGVGaWVsZCwgcGF0aDogQUlGaWVsZFBhdGgpIHtcbiAgICBjb25zdCBvcGVyYXRpb246IEFkZEZpZWxkQWN0aW9uID0ge1xuICAgICAgICB0eXBlOiBBY3Rpb25OYW1lLkFkZEZpZWxkLFxuICAgICAgICBmaWVsZCxcbiAgICAgICAgcGF0aFxuICAgIH07XG4gICAgYWlUYWJsZS5hcHBseShvcGVyYXRpb24pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbW92ZUZpZWxkKGFpVGFibGU6IEFJVGFibGUsIHBhdGg6IEFJRmllbGRQYXRoLCBuZXdQYXRoOiBBSUZpZWxkUGF0aCkge1xuICAgIGNvbnN0IG9wZXJhdGlvbjogTW92ZUZpZWxkQWN0aW9uID0ge1xuICAgICAgICB0eXBlOiBBY3Rpb25OYW1lLk1vdmVGaWVsZCxcbiAgICAgICAgcGF0aCxcbiAgICAgICAgbmV3UGF0aFxuICAgIH07XG4gICAgYWlUYWJsZS5hcHBseShvcGVyYXRpb24pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlRmllbGQoYWlUYWJsZTogQUlUYWJsZSwgcGF0aDogQUlGaWVsZFBhdGgpIHtcbiAgICBjb25zdCBvcGVyYXRpb246IFJlbW92ZUZpZWxkQWN0aW9uID0ge1xuICAgICAgICB0eXBlOiBBY3Rpb25OYW1lLlJlbW92ZUZpZWxkLFxuICAgICAgICBwYXRoXG4gICAgfTtcbiAgICBhaVRhYmxlLmFwcGx5KG9wZXJhdGlvbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRGaWVsZChhaVRhYmxlOiBBSVRhYmxlLCB2YWx1ZTogUGFydGlhbDxBSVRhYmxlRmllbGQ+LCBwYXRoOiBBSUZpZWxkUGF0aCkge1xuICAgIGNvbnN0IGZpZWxkID0gQUlUYWJsZVF1ZXJpZXMuZ2V0RmllbGQoYWlUYWJsZSwgcGF0aCk7XG4gICAgaWYgKGZpZWxkKSB7XG4gICAgICAgIGNvbnN0IG9sZEZpZWxkOiBQYXJ0aWFsPEFJVGFibGVGaWVsZD4gPSB7fTtcbiAgICAgICAgY29uc3QgbmV3RmllbGQ6IFBhcnRpYWw8QUlUYWJsZUZpZWxkPiA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IGsgaW4gdmFsdWUpIHtcbiAgICAgICAgICAgIGlmIChmaWVsZFtrXSAhPT0gdmFsdWVba10pIHtcbiAgICAgICAgICAgICAgICBpZiAoZmllbGQuaGFzT3duUHJvcGVydHkoaykpIHtcbiAgICAgICAgICAgICAgICAgICAgb2xkRmllbGRba10gPSBmaWVsZFtrXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbmV3RmllbGRba10gPSB2YWx1ZVtrXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG9wZXJhdGlvbjogU2V0RmllbGRBY3Rpb24gPSB7XG4gICAgICAgICAgICB0eXBlOiBBY3Rpb25OYW1lLlNldEZpZWxkLFxuICAgICAgICAgICAgZmllbGQ6IG9sZEZpZWxkLFxuICAgICAgICAgICAgbmV3RmllbGQsXG4gICAgICAgICAgICBwYXRoXG4gICAgICAgIH07XG5cbiAgICAgICAgYWlUYWJsZS5hcHBseShvcGVyYXRpb24pO1xuICAgIH1cbn1cblxuZXhwb3J0IGNvbnN0IEZpZWxkQWN0aW9ucyA9IHtcbiAgICBhZGRGaWVsZCxcbiAgICBtb3ZlRmllbGQsXG4gICAgcmVtb3ZlRmllbGQsXG4gICAgc2V0RmllbGRcbn07XG4iXX0=
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb3JlL2FjdGlvbi9maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsVUFBVSxFQVNiLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFMUMsTUFBTSxVQUFVLFFBQVEsQ0FBQyxPQUFnQixFQUFFLEtBQW1CLEVBQUUsSUFBaUI7SUFDN0UsTUFBTSxTQUFTLEdBQW1CO1FBQzlCLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUTtRQUN6QixLQUFLO1FBQ0wsSUFBSTtLQUNQLENBQUM7SUFDRixPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzdCLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLE9BQWdCLEVBQUUsSUFBaUIsRUFBRSxPQUFvQjtJQUMvRSxNQUFNLFNBQVMsR0FBb0I7UUFDL0IsSUFBSSxFQUFFLFVBQVUsQ0FBQyxTQUFTO1FBQzFCLElBQUk7UUFDSixPQUFPO0tBQ1YsQ0FBQztJQUNGLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDN0IsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsT0FBZ0IsRUFBRSxJQUFtQjtJQUM3RCxNQUFNLFNBQVMsR0FBc0I7UUFDakMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxXQUFXO1FBQzVCLElBQUk7S0FDUCxDQUFDO0lBQ0YsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUM3QixDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxPQUFnQixFQUFFLEtBQTRCLEVBQUUsSUFBbUI7SUFDeEYsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDckQsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNSLE1BQU0sVUFBVSxHQUEwQixFQUFFLENBQUM7UUFDN0MsTUFBTSxhQUFhLEdBQTBCLEVBQUUsQ0FBQztRQUNoRCxLQUFLLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3RCLE1BQU0sQ0FBQyxHQUFHLEdBQXlCLENBQUM7WUFDcEMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUM7Z0JBQ2hELElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUMxQixVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBUSxDQUFDO2dCQUNwQyxDQUFDO2dCQUNELElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO29CQUM1QixhQUFhLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBUSxDQUFDO2dCQUN2QyxDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBbUI7WUFDOUIsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRO1lBQ3pCLFVBQVU7WUFDVixhQUFhO1lBQ2IsSUFBSTtTQUNQLENBQUM7UUFFRixPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdCLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHO0lBQ3hCLFFBQVE7SUFDUixTQUFTO0lBQ1QsV0FBVztJQUNYLFFBQVE7Q0FDWCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBY3Rpb25OYW1lLFxuICAgIEFkZEZpZWxkQWN0aW9uLFxuICAgIEFJRmllbGRJZFBhdGgsXG4gICAgQUlGaWVsZFBhdGgsXG4gICAgQUlUYWJsZSxcbiAgICBBSVRhYmxlRmllbGQsXG4gICAgTW92ZUZpZWxkQWN0aW9uLFxuICAgIFJlbW92ZUZpZWxkQWN0aW9uLFxuICAgIFNldEZpZWxkQWN0aW9uXG59IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IEFJVGFibGVRdWVyaWVzIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gYWRkRmllbGQoYWlUYWJsZTogQUlUYWJsZSwgZmllbGQ6IEFJVGFibGVGaWVsZCwgcGF0aDogQUlGaWVsZFBhdGgpIHtcbiAgICBjb25zdCBvcGVyYXRpb246IEFkZEZpZWxkQWN0aW9uID0ge1xuICAgICAgICB0eXBlOiBBY3Rpb25OYW1lLkFkZEZpZWxkLFxuICAgICAgICBmaWVsZCxcbiAgICAgICAgcGF0aFxuICAgIH07XG4gICAgYWlUYWJsZS5hcHBseShvcGVyYXRpb24pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbW92ZUZpZWxkKGFpVGFibGU6IEFJVGFibGUsIHBhdGg6IEFJRmllbGRQYXRoLCBuZXdQYXRoOiBBSUZpZWxkUGF0aCkge1xuICAgIGNvbnN0IG9wZXJhdGlvbjogTW92ZUZpZWxkQWN0aW9uID0ge1xuICAgICAgICB0eXBlOiBBY3Rpb25OYW1lLk1vdmVGaWVsZCxcbiAgICAgICAgcGF0aCxcbiAgICAgICAgbmV3UGF0aFxuICAgIH07XG4gICAgYWlUYWJsZS5hcHBseShvcGVyYXRpb24pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlRmllbGQoYWlUYWJsZTogQUlUYWJsZSwgcGF0aDogQUlGaWVsZElkUGF0aCkge1xuICAgIGNvbnN0IG9wZXJhdGlvbjogUmVtb3ZlRmllbGRBY3Rpb24gPSB7XG4gICAgICAgIHR5cGU6IEFjdGlvbk5hbWUuUmVtb3ZlRmllbGQsXG4gICAgICAgIHBhdGhcbiAgICB9O1xuICAgIGFpVGFibGUuYXBwbHkob3BlcmF0aW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEZpZWxkKGFpVGFibGU6IEFJVGFibGUsIHZhbHVlOiBQYXJ0aWFsPEFJVGFibGVGaWVsZD4sIHBhdGg6IEFJRmllbGRJZFBhdGgpIHtcbiAgICBjb25zdCBmaWVsZCA9IEFJVGFibGVRdWVyaWVzLmdldEZpZWxkKGFpVGFibGUsIHBhdGgpO1xuICAgIGlmIChmaWVsZCkge1xuICAgICAgICBjb25zdCBwcm9wZXJ0aWVzOiBQYXJ0aWFsPEFJVGFibGVGaWVsZD4gPSB7fTtcbiAgICAgICAgY29uc3QgbmV3UHJvcGVydGllczogUGFydGlhbDxBSVRhYmxlRmllbGQ+ID0ge307XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIHZhbHVlKSB7XG4gICAgICAgICAgICBjb25zdCBrID0ga2V5IGFzIGtleW9mIEFJVGFibGVGaWVsZDtcbiAgICAgICAgICAgIGlmIChmaWVsZFtrXT8udG9TdHJpbmcoKSAhPT0gdmFsdWVba10/LnRvU3RyaW5nKCkpIHtcbiAgICAgICAgICAgICAgICBpZiAoZmllbGQuaGFzT3duUHJvcGVydHkoaykpIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllc1trXSA9IGZpZWxkW2tdIGFzIGFueTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG5ld1Byb3BlcnRpZXNba10gIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3UHJvcGVydGllc1trXSA9IHZhbHVlW2tdIGFzIGFueTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBvcGVyYXRpb246IFNldEZpZWxkQWN0aW9uID0ge1xuICAgICAgICAgICAgdHlwZTogQWN0aW9uTmFtZS5TZXRGaWVsZCxcbiAgICAgICAgICAgIHByb3BlcnRpZXMsXG4gICAgICAgICAgICBuZXdQcm9wZXJ0aWVzLFxuICAgICAgICAgICAgcGF0aFxuICAgICAgICB9O1xuXG4gICAgICAgIGFpVGFibGUuYXBwbHkob3BlcmF0aW9uKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjb25zdCBGaWVsZEFjdGlvbnMgPSB7XG4gICAgYWRkRmllbGQsXG4gICAgbW92ZUZpZWxkLFxuICAgIHJlbW92ZUZpZWxkLFxuICAgIHNldEZpZWxkXG59O1xuIl19