@tetacom/ng-components 1.0.64 → 1.0.67

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,7 +9,6 @@ export declare class TextFieldComponent implements ControlValueAccessor {
9
9
  onlyNumber: boolean;
10
10
  invalid: boolean;
11
11
  input: ElementRef;
12
- private get tabindex();
13
12
  private readonly textField;
14
13
  value: string;
15
14
  constructor(_cdr: ChangeDetectorRef);
@@ -14,9 +14,6 @@ export class TextFieldComponent {
14
14
  this.textField = true;
15
15
  this.value = '';
16
16
  }
17
- get tabindex() {
18
- return this.disabled ? null : 0;
19
- }
20
17
  onFocus() {
21
18
  if (this.disabled) {
22
19
  return;
@@ -51,7 +48,7 @@ export class TextFieldComponent {
51
48
  }
52
49
  }
53
50
  TextFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: TextFieldComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
54
- TextFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: TextFieldComponent, selector: "teta-text-field", inputs: { placeholder: "placeholder", leftIconName: "leftIconName", disabled: "disabled", onlyNumber: "onlyNumber", invalid: "invalid" }, host: { listeners: { "click": "onFocus()" }, properties: { "class.text-field_disabled": "this.disabled", "class.text-field_invalid": "this.invalid", "attr.tabindex": "this.tabindex", "class.text-field": "this.textField" } }, providers: [
51
+ TextFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: TextFieldComponent, selector: "teta-text-field", inputs: { placeholder: "placeholder", leftIconName: "leftIconName", disabled: "disabled", onlyNumber: "onlyNumber", invalid: "invalid" }, host: { listeners: { "click": "onFocus()" }, properties: { "class.text-field_disabled": "this.disabled", "class.text-field_invalid": "this.invalid", "class.text-field": "this.textField" } }, providers: [
55
52
  {
56
53
  provide: NG_VALUE_ACCESSOR,
57
54
  useExisting: forwardRef(() => TextFieldComponent),
@@ -86,9 +83,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
86
83
  }], input: [{
87
84
  type: ViewChild,
88
85
  args: ['input', { static: false }]
89
- }], tabindex: [{
90
- type: HostBinding,
91
- args: ['attr.tabindex']
92
86
  }], textField: [{
93
87
  type: HostBinding,
94
88
  args: ['class.text-field']
@@ -96,4 +90,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
96
90
  type: HostListener,
97
91
  args: ['click']
98
92
  }] } });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2lucHV0L3RleHQtZmllbGQvdGV4dC1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2lucHV0L3RleHQtZmllbGQvdGV4dC1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBQ0wsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBdUIsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBZXZFLE1BQU0sT0FBTyxrQkFBa0I7SUFxQjdCLFlBQW9CLElBQXVCO1FBQXZCLFNBQUksR0FBSixJQUFJLENBQW1CO1FBcEJsQyxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUkxQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ1IsZUFBVSxHQUFHLEtBQUssQ0FBQztRQVlYLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDbEMsVUFBSyxHQUFHLEVBQUUsQ0FBQztJQUdYLENBQUM7SUFWRCxJQUNZLFFBQVE7UUFDbEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBU3NCLE9BQU87UUFDNUIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBb0I7UUFDM0IsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLEVBQUUsRUFBRTtZQUNqRCxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNqQztJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBRSxVQUFtQjtRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBYTtRQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBYTtJQUN0QixDQUFDO0lBRUQsU0FBUztJQUNULENBQUM7OytHQS9EVSxrQkFBa0I7bUdBQWxCLGtCQUFrQixxWkFUbEI7UUFDVDtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztZQUNqRCxLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0YsMEhDdkJILDJnQkFtQkE7MkZET2Esa0JBQWtCO2tCQWI5QixTQUFTOytCQUNFLGlCQUFpQixhQUdoQjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsQ0FBQzs0QkFDakQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU07d0dBR3RDLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFHTixRQUFRO3NCQUZQLFdBQVc7dUJBQUMsMkJBQTJCOztzQkFDdkMsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdOLE9BQU87c0JBRk4sV0FBVzt1QkFBQywwQkFBMEI7O3NCQUN0QyxLQUFLO2dCQUUrQixLQUFLO3NCQUF6QyxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBR3ZCLFFBQVE7c0JBRG5CLFdBQVc7dUJBQUMsZUFBZTtnQkFNWCxTQUFTO3NCQUR6QixXQUFXO3VCQUFDLGtCQUFrQjtnQkFPUixPQUFPO3NCQUE3QixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXRhLXRleHQtZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGV4dC1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RleHQtZmllbGQuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUZXh0RmllbGRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFRleHRGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcbiAgQElucHV0KCkgbGVmdEljb25OYW1lPzogc3RyaW5nO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRleHQtZmllbGRfZGlzYWJsZWQnKVxuICBASW5wdXQoKVxuICBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBvbmx5TnVtYmVyID0gZmFsc2U7XG4gIEBIb3N0QmluZGluZygnY2xhc3MudGV4dC1maWVsZF9pbnZhbGlkJylcbiAgQElucHV0KClcbiAgaW52YWxpZDogYm9vbGVhbjtcbiAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7c3RhdGljOiBmYWxzZX0pIGlucHV0OiBFbGVtZW50UmVmO1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpXG4gIHByaXZhdGUgZ2V0IHRhYmluZGV4KCkge1xuICAgIHJldHVybiB0aGlzLmRpc2FibGVkID8gbnVsbCA6IDA7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRleHQtZmllbGQnKVxuICBwcml2YXRlIHJlYWRvbmx5IHRleHRGaWVsZCA9IHRydWU7XG4gIHZhbHVlID0gJyc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snKSBvbkZvY3VzKCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG5cbiAga2V5UHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleUNvZGUgPT09IDEzKSB7XG4gICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgIH1cbiAgfVxuXG4gIGVtaXRCbHVyKCkge1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKGlucHV0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gaW5wdXQ7XG4gICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG9uQ2hhbmdlKGlucHV0OiBzdHJpbmcpOiB2b2lkIHtcbiAgfVxuXG4gIG9uVG91Y2hlZCgpOiB2b2lkIHtcbiAgfVxufVxuIiwiPHRldGEtaWNvbiAqbmdJZj1cImxlZnRJY29uTmFtZVwiIFtuYW1lXT1cImxlZnRJY29uTmFtZVwiPjwvdGV0YS1pY29uPlxuPGlucHV0XG4gICNpbnB1dFxuICBbbmdNb2RlbF09XCJ2YWx1ZVwiXG4gIFt0ZXRhT25seU51bWJlcl09XCJvbmx5TnVtYmVyXCJcbiAgKG5nTW9kZWxDaGFuZ2UpPVwidmFsdWUgPSAkZXZlbnQ7IG9uQ2hhbmdlKCRldmVudCk7XCJcbiAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgKGJsdXIpPVwiZW1pdEJsdXIoKVwiXG4gIChrZXlkb3duKT1cImtleVByZXNzKCRldmVudClcIlxuICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICB0eXBlPVwidGV4dFwiXG4vPlxuPHRldGEtaWNvblxuICAqbmdJZj1cInZhbHVlICYmICFkaXNhYmxlZFwiXG4gIGNsYXNzPVwiY2xvc2UtaWNvblwiXG4gIFtuYW1lXT1cIidjbG9zZUNpcmNsZSdcIlxuICAoY2xpY2spPVwidmFsdWUgPSAnJzsgb25DaGFuZ2UoJycpO1wiXG4+PC90ZXRhLWljb24+XG4iXX0=
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2lucHV0L3RleHQtZmllbGQvdGV4dC1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2lucHV0L3RleHQtZmllbGQvdGV4dC1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBQ0wsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBdUIsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBZXZFLE1BQU0sT0FBTyxrQkFBa0I7SUFnQjdCLFlBQW9CLElBQXVCO1FBQXZCLFNBQUksR0FBSixJQUFJLENBQW1CO1FBZmxDLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBSTFCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDUixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBT1gsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNsQyxVQUFLLEdBQUcsRUFBRSxDQUFDO0lBR1gsQ0FBQztJQUVzQixPQUFPO1FBQzVCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQW9CO1FBQzNCLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxFQUFFLEVBQUU7WUFDakQsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDakM7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsZ0JBQWdCLENBQUUsVUFBbUI7UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7UUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWE7UUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQWE7SUFDdEIsQ0FBQztJQUVELFNBQVM7SUFDVCxDQUFDOzsrR0ExRFUsa0JBQWtCO21HQUFsQixrQkFBa0IsbVhBVGxCO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUM7WUFDakQsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGLDBIQ3ZCSCwyZ0JBbUJBOzJGRE9hLGtCQUFrQjtrQkFiOUIsU0FBUzsrQkFDRSxpQkFBaUIsYUFHaEI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsbUJBQW1CLENBQUM7NEJBQ2pELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNO3dHQUd0QyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR04sUUFBUTtzQkFGUCxXQUFXO3VCQUFDLDJCQUEyQjs7c0JBQ3ZDLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFHTixPQUFPO3NCQUZOLFdBQVc7dUJBQUMsMEJBQTBCOztzQkFDdEMsS0FBSztnQkFFK0IsS0FBSztzQkFBekMsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUdsQixTQUFTO3NCQUR6QixXQUFXO3VCQUFDLGtCQUFrQjtnQkFPUixPQUFPO3NCQUE3QixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXRhLXRleHQtZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGV4dC1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RleHQtZmllbGQuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUZXh0RmllbGRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFRleHRGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcbiAgQElucHV0KCkgbGVmdEljb25OYW1lPzogc3RyaW5nO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRleHQtZmllbGRfZGlzYWJsZWQnKVxuICBASW5wdXQoKVxuICBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBvbmx5TnVtYmVyID0gZmFsc2U7XG4gIEBIb3N0QmluZGluZygnY2xhc3MudGV4dC1maWVsZF9pbnZhbGlkJylcbiAgQElucHV0KClcbiAgaW52YWxpZDogYm9vbGVhbjtcbiAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7c3RhdGljOiBmYWxzZX0pIGlucHV0OiBFbGVtZW50UmVmO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MudGV4dC1maWVsZCcpXG4gIHByaXZhdGUgcmVhZG9ubHkgdGV4dEZpZWxkID0gdHJ1ZTtcbiAgdmFsdWUgPSAnJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycpIG9uRm9jdXMoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBrZXlQcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicgfHwgZXZlbnQua2V5Q29kZSA9PT0gMTMpIHtcbiAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgfVxuICB9XG5cbiAgZW1pdEJsdXIoKSB7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUoaW5wdXQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSBpbnB1dDtcbiAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgb25DaGFuZ2UoaW5wdXQ6IHN0cmluZyk6IHZvaWQge1xuICB9XG5cbiAgb25Ub3VjaGVkKCk6IHZvaWQge1xuICB9XG59XG4iLCI8dGV0YS1pY29uICpuZ0lmPVwibGVmdEljb25OYW1lXCIgW25hbWVdPVwibGVmdEljb25OYW1lXCI+PC90ZXRhLWljb24+XG48aW5wdXRcbiAgI2lucHV0XG4gIFtuZ01vZGVsXT1cInZhbHVlXCJcbiAgW3RldGFPbmx5TnVtYmVyXT1cIm9ubHlOdW1iZXJcIlxuICAobmdNb2RlbENoYW5nZSk9XCJ2YWx1ZSA9ICRldmVudDsgb25DaGFuZ2UoJGV2ZW50KTtcIlxuICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAoYmx1cik9XCJlbWl0Qmx1cigpXCJcbiAgKGtleWRvd24pPVwia2V5UHJlc3MoJGV2ZW50KVwiXG4gIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gIHR5cGU9XCJ0ZXh0XCJcbi8+XG48dGV0YS1pY29uXG4gICpuZ0lmPVwidmFsdWUgJiYgIWRpc2FibGVkXCJcbiAgY2xhc3M9XCJjbG9zZS1pY29uXCJcbiAgW25hbWVdPVwiJ2Nsb3NlQ2lyY2xlJ1wiXG4gIChjbGljayk9XCJ2YWx1ZSA9ICcnOyBvbkNoYW5nZSgnJyk7XCJcbj48L3RldGEtaWNvbj5cbiJdfQ==
@@ -83,10 +83,10 @@ export class PropertyGridItemComponent {
83
83
  }
84
84
  }
85
85
  PropertyGridItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PropertyGridItemComponent, deps: [{ token: i1.TranslocoService }], target: i0.ɵɵFactoryTarget.Component });
86
- PropertyGridItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PropertyGridItemComponent, selector: "teta-property-grid-item", inputs: { column: "column", hideNonEditable: "hideNonEditable", dict: "dict", formGroup: "formGroup", horizontal: "horizontal" }, outputs: { controlValueChange: "controlValueChange" }, ngImport: i0, template: "<teta-input [label]=\"caption\"\n [tetaHint]=\"column.hint\"\n [align]=\"align.left\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n *ngIf=\"column.editable || !hideNonEditable\">\n <ng-container [ngSwitch]=\"column.filterType\">\n <teta-select class=\"row_auto\"\n *ngSwitchCase=\"filterTypeEnum.list\"\n [searchRef]=\"getDict()?.length > 10 ? 'name' : ''\"\n [allowNull]=\"!column.required\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n [options]=\"getDict()\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [multiple]=\"false\"></teta-select>\n <teta-date-picker *ngSwitchCase=\"filterTypeEnum.date\"\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-date-picker>\n <teta-toggle *ngSwitchCase=\"filterTypeEnum.boolean\"\n [formControlName]=\"column.name\">{{column.caption}}</teta-toggle>\n <teta-text-field class=\"row_auto\"\n *ngSwitchDefault\n (focusout)=\"valueChange()\"\n [onlyNumber]=\"column.filterType === filterTypeEnum.number\"\n [placeholder]=\"column.caption\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-text-field>\n </ng-container>\n <div *ngIf=\"controlIsInvalid(column.name)\"\n ngProjectAs=\"message\"\n class=\"color-red-50\">\n {{getError(column)}}\n </div>\n</teta-input>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i4.DatePickerComponent, selector: "teta-date-picker", inputs: ["disabled", "invalid", "firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minDate", "maxDate", "minYearDate", "maxYearDate", "align", "verticalAlign", "appendToBody", "allowNull", "backdrop", "showTime", "format"] }, { kind: "component", type: i5.SelectComponent, selector: "teta-select", inputs: ["multiple", "options", "invalid", "align", "verticalAlign", "autoClose", "autoCloseIgnore", "disabled", "itemSize", "virtual", "icon", "placeholder", "appendToBody", "allowNull", "valueRef", "textRef", "searchRef"] }, { kind: "component", type: i6.InputComponent, selector: "teta-input", inputs: ["label", "horizontal", "required"] }, { kind: "component", type: i7.TextFieldComponent, selector: "teta-text-field", inputs: ["placeholder", "leftIconName", "disabled", "onlyNumber", "invalid"] }, { kind: "component", type: i8.ToggleComponent, selector: "teta-toggle", inputs: ["palette", "noLabel", "disabled"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i9.HintDirective, selector: "[tetaHint]", inputs: ["tetaHint", "align", "verticalAlign", "delay"] }] });
86
+ PropertyGridItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PropertyGridItemComponent, selector: "teta-property-grid-item", inputs: { column: "column", hideNonEditable: "hideNonEditable", dict: "dict", formGroup: "formGroup", horizontal: "horizontal" }, outputs: { controlValueChange: "controlValueChange" }, ngImport: i0, template: "<teta-input [label]=\"caption\"\n [tetaHint]=\"column.hint\"\n [align]=\"align.left\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n [required]=\"column.required\"\n *ngIf=\"column.editable || !hideNonEditable\">\n <ng-container [ngSwitch]=\"column.filterType\">\n <teta-select class=\"row_auto\"\n *ngSwitchCase=\"filterTypeEnum.list\"\n [searchRef]=\"getDict()?.length > 10 ? 'name' : ''\"\n [allowNull]=\"!column.required\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n [options]=\"getDict()\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [multiple]=\"false\"></teta-select>\n <teta-date-picker *ngSwitchCase=\"filterTypeEnum.date\"\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-date-picker>\n <teta-toggle *ngSwitchCase=\"filterTypeEnum.boolean\"\n [formControlName]=\"column.name\">{{column.caption}}</teta-toggle>\n <teta-text-field class=\"row_auto\"\n *ngSwitchDefault\n (focusout)=\"valueChange()\"\n [onlyNumber]=\"column.filterType === filterTypeEnum.number\"\n [placeholder]=\"column.caption\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-text-field>\n </ng-container>\n <div *ngIf=\"controlIsInvalid(column.name)\"\n ngProjectAs=\"message\"\n class=\"color-red-50\">\n {{getError(column)}}\n </div>\n</teta-input>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i4.DatePickerComponent, selector: "teta-date-picker", inputs: ["disabled", "invalid", "firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minDate", "maxDate", "minYearDate", "maxYearDate", "align", "verticalAlign", "appendToBody", "allowNull", "backdrop", "showTime", "format"] }, { kind: "component", type: i5.SelectComponent, selector: "teta-select", inputs: ["multiple", "options", "invalid", "align", "verticalAlign", "autoClose", "autoCloseIgnore", "disabled", "itemSize", "virtual", "icon", "placeholder", "appendToBody", "allowNull", "valueRef", "textRef", "searchRef"] }, { kind: "component", type: i6.InputComponent, selector: "teta-input", inputs: ["label", "horizontal", "required"] }, { kind: "component", type: i7.TextFieldComponent, selector: "teta-text-field", inputs: ["placeholder", "leftIconName", "disabled", "onlyNumber", "invalid"] }, { kind: "component", type: i8.ToggleComponent, selector: "teta-toggle", inputs: ["palette", "noLabel", "disabled"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i9.HintDirective, selector: "[tetaHint]", inputs: ["tetaHint", "align", "verticalAlign", "delay"] }] });
87
87
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PropertyGridItemComponent, decorators: [{
88
88
  type: Component,
89
- args: [{ selector: 'teta-property-grid-item', template: "<teta-input [label]=\"caption\"\n [tetaHint]=\"column.hint\"\n [align]=\"align.left\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n *ngIf=\"column.editable || !hideNonEditable\">\n <ng-container [ngSwitch]=\"column.filterType\">\n <teta-select class=\"row_auto\"\n *ngSwitchCase=\"filterTypeEnum.list\"\n [searchRef]=\"getDict()?.length > 10 ? 'name' : ''\"\n [allowNull]=\"!column.required\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n [options]=\"getDict()\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [multiple]=\"false\"></teta-select>\n <teta-date-picker *ngSwitchCase=\"filterTypeEnum.date\"\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-date-picker>\n <teta-toggle *ngSwitchCase=\"filterTypeEnum.boolean\"\n [formControlName]=\"column.name\">{{column.caption}}</teta-toggle>\n <teta-text-field class=\"row_auto\"\n *ngSwitchDefault\n (focusout)=\"valueChange()\"\n [onlyNumber]=\"column.filterType === filterTypeEnum.number\"\n [placeholder]=\"column.caption\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-text-field>\n </ng-container>\n <div *ngIf=\"controlIsInvalid(column.name)\"\n ngProjectAs=\"message\"\n class=\"color-red-50\">\n {{getError(column)}}\n </div>\n</teta-input>\n" }]
89
+ args: [{ selector: 'teta-property-grid-item', template: "<teta-input [label]=\"caption\"\n [tetaHint]=\"column.hint\"\n [align]=\"align.left\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n [required]=\"column.required\"\n *ngIf=\"column.editable || !hideNonEditable\">\n <ng-container [ngSwitch]=\"column.filterType\">\n <teta-select class=\"row_auto\"\n *ngSwitchCase=\"filterTypeEnum.list\"\n [searchRef]=\"getDict()?.length > 10 ? 'name' : ''\"\n [allowNull]=\"!column.required\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n [options]=\"getDict()\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [multiple]=\"false\"></teta-select>\n <teta-date-picker *ngSwitchCase=\"filterTypeEnum.date\"\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-date-picker>\n <teta-toggle *ngSwitchCase=\"filterTypeEnum.boolean\"\n [formControlName]=\"column.name\">{{column.caption}}</teta-toggle>\n <teta-text-field class=\"row_auto\"\n *ngSwitchDefault\n (focusout)=\"valueChange()\"\n [onlyNumber]=\"column.filterType === filterTypeEnum.number\"\n [placeholder]=\"column.caption\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-text-field>\n </ng-container>\n <div *ngIf=\"controlIsInvalid(column.name)\"\n ngProjectAs=\"message\"\n class=\"color-red-50\">\n {{getError(column)}}\n </div>\n</teta-input>\n" }]
90
90
  }], ctorParameters: function () { return [{ type: i1.TranslocoService }]; }, propDecorators: { column: [{
91
91
  type: Input
92
92
  }], hideNonEditable: [{
@@ -100,4 +100,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
100
100
  }], controlValueChange: [{
101
101
  type: Output
102
102
  }] } });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZ3JpZC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQtaXRlbS9wcm9wZXJ0eS1ncmlkLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQvcHJvcGVydHktZ3JpZC1pdGVtL3Byb3BlcnR5LWdyaWQtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUVuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFeEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7Ozs7O0FBT3pELE1BQU0sT0FBTyx5QkFBeUI7SUFpRHBDLFlBQW9CLFVBQTRCO1FBQTVCLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBbEJ0Qyx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUNoRSxVQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2QsbUJBQWMsR0FBRyxVQUFVLENBQUM7UUFjcEIsV0FBTSxHQUFHLElBQUksQ0FBQztJQUU2QixDQUFDO0lBNUNwRCxJQUNJLFNBQVMsQ0FBQyxJQUFzQjtRQUNsQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDO1FB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SjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQztZQUMzQixFQUFFLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLO1lBQ25ELElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUk7U0FDdkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVEsS0FBVSxDQUFDO0lBRW5CLFdBQVc7UUFDVCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQy9CLENBQUM7O3NIQWhHVSx5QkFBeUI7MEdBQXpCLHlCQUF5Qix3UEN4QnRDLG8xREF1Q0E7MkZEZmEseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLHlCQUF5Qjt1R0FLMUIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUdGLFNBQVM7c0JBRFosS0FBSztnQkF5QkcsVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxrQkFBa0I7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGFibGVDb2x1bW4gfSBmcm9tICcuLi8uLi8uLi90YWJsZS9jb250cmFjdC90YWJsZS1jb2x1bW4nO1xuaW1wb3J0IHsgSURpY3Rpb25hcnkgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vY29udHJhY3QvaS1kaWN0aW9uYXJ5JztcbmltcG9ydCB7IElJZE5hbWUgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vY29udHJhY3QvaS1pZC1uYW1lJztcbmltcG9ydCB7IEZpbHRlclR5cGUgfSBmcm9tICcuLi8uLi8uLi9maWx0ZXIvZW51bS9maWx0ZXItdHlwZS5lbnVtJztcbmltcG9ydCB7IFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGb3Jtc1V0aWwgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlsL2Zvcm1zLXV0aWwnO1xuaW1wb3J0IHsgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJztcbmltcG9ydCB7IGZpbHRlciwgdGFrZVdoaWxlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0FsaWdufSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vZW51bS9hbGlnbi5lbnVtJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0YS1wcm9wZXJ0eS1ncmlkLWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvcGVydHktZ3JpZC1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHJvcGVydHktZ3JpZC1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5R3JpZEl0ZW1Db21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGNvbHVtbjogVGFibGVDb2x1bW47XG4gIEBJbnB1dCgpIGhpZGVOb25FZGl0YWJsZTogYm9vbGVhbjtcbiAgQElucHV0KCkgZGljdDogSURpY3Rpb25hcnk8SUlkTmFtZTxhbnk+W10+O1xuXG4gIEBJbnB1dCgpXG4gIHNldCBmb3JtR3JvdXAoZm9ybTogVW50eXBlZEZvcm1Hcm91cCkge1xuICAgIHRoaXMuX2Zvcm1Hcm91cCA9IGZvcm07XG4gICAgdGhpcy5fZm9ybVN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl9mb3JtU3ViID0gdGhpcy5fZm9ybUdyb3VwLmNvbnRyb2xzW3RoaXMuY29sdW1uLm5hbWVdLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VXaGlsZSgoKSA9PiB0aGlzLl9hbGl2ZSksXG4gICAgICAgIGZpbHRlcihcbiAgICAgICAgICAoXykgPT5cbiAgICAgICAgICAgIHRoaXMuY29sdW1uLmZpbHRlclR5cGUgIT09IEZpbHRlclR5cGUuc3RyaW5nICYmXG4gICAgICAgICAgICB0aGlzLmNvbHVtbi5maWx0ZXJUeXBlICE9PSBGaWx0ZXJUeXBlLm51bWJlclxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChfKSA9PiB7XG4gICAgICAgIHRoaXMuY29udHJvbFZhbHVlQ2hhbmdlLmVtaXQoe1xuICAgICAgICAgIGlkOiBfLFxuICAgICAgICAgIG5hbWU6IHRoaXMuY29sdW1uLm5hbWUsXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cblxuICBnZXQgZm9ybUdyb3VwKCkge1xuICAgIHJldHVybiB0aGlzLl9mb3JtR3JvdXA7XG4gIH1cblxuICBASW5wdXQoKSBob3Jpem9udGFsOiBib29sZWFuO1xuICBAT3V0cHV0KCkgY29udHJvbFZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxJSWROYW1lPGFueT4+KCk7XG4gIGFsaWduID0gQWxpZ247XG4gIGZpbHRlclR5cGVFbnVtID0gRmlsdGVyVHlwZTtcblxuICBwcml2YXRlIF9mb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXA7XG4gIHByaXZhdGUgX2Zvcm1TdWI6IFN1YnNjcmlwdGlvbjtcblxuICBnZXQgY2FwdGlvbigpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmNvbHVtbi5maWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlLmJvb2xlYW4pIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgcmV0dXJuIGAke3RoaXMuY29sdW1uLmNhcHRpb259JHtcbiAgICAgIHRoaXMuY29sdW1uLnVuaXQgPyBgLCAke3RoaXMuY29sdW1uLnVuaXR9YCA6ICcnXG4gICAgfWA7XG4gIH1cblxuICBwcml2YXRlIF9hbGl2ZSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfdHJhbnNsb2NvOiBUcmFuc2xvY29TZXJ2aWNlKSB7fVxuXG4gIGdldERpY3QoKSB7XG4gICAgY29uc3QgZGljdCA9IHRoaXMuZGljdCA/IHRoaXMuZGljdFt0aGlzLmNvbHVtbi5uYW1lXSA6IFtdO1xuICAgIGlmICh0aGlzLmNvbHVtbi5wYXJlbnROYW1lPy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gZGljdD8uZmlsdGVyKFxuICAgICAgICAoZGljdEl0ZW06IElJZE5hbWU8YW55PikgPT5cbiAgICAgICAgICBkaWN0SXRlbS5wYXJlbnRJZCA9PT1cbiAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpW3RoaXMuY29sdW1uLnBhcmVudE5hbWVdXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gZGljdDtcbiAgfVxuXG4gIGNvbnRyb2xJc0ludmFsaWQoY29udHJvbE5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBGb3Jtc1V0aWwuY29udHJvbElzSW52YWxpZCh0aGlzLmZvcm1Hcm91cCwgY29udHJvbE5hbWUpO1xuICB9XG5cbiAgZ2V0RXJyb3IoY29sdW1uOiBUYWJsZUNvbHVtbik6IHN0cmluZyB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZm9ybUdyb3VwLmdldChjb2x1bW4ubmFtZSk7XG4gICAgaWYgKGNvbnRyb2w/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fdHJhbnNsb2NvLnRyYW5zbGF0ZSgnZXJyb3JzLmZpZWxkX2lzX3JlcXVpcmVkJyk7XG4gICAgfVxuICAgIGlmIChjb250cm9sPy5oYXNFcnJvcignbWluJykpIHtcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2xvY28udHJhbnNsYXRlKCdlcnJvcnMubWluX3ZhbHVlJywge1xuICAgICAgICB2YWx1ZTogY29sdW1uLm1pblZhbHVlLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChjb250cm9sPy5oYXNFcnJvcignbWF4JykpIHtcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2xvY28udHJhbnNsYXRlKCdlcnJvcnMubWF4X3ZhbHVlJywge1xuICAgICAgICB2YWx1ZTogY29sdW1uLm1heFZhbHVlLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgdmFsdWVDaGFuZ2UoKSB7XG4gICAgdGhpcy5jb250cm9sVmFsdWVDaGFuZ2UuZW1pdCh7XG4gICAgICBpZDogdGhpcy5mb3JtR3JvdXAuY29udHJvbHNbdGhpcy5jb2x1bW4ubmFtZV0udmFsdWUsXG4gICAgICBuYW1lOiB0aGlzLmNvbHVtbi5uYW1lLFxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2FsaXZlID0gZmFsc2U7XG4gICAgdGhpcy5fZm9ybVN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIiwiPHRldGEtaW5wdXQgW2xhYmVsXT1cImNhcHRpb25cIlxuICAgICAgICAgICAgW3RldGFIaW50XT1cImNvbHVtbi5oaW50XCJcbiAgICAgICAgICAgIFthbGlnbl09XCJhbGlnbi5sZWZ0XCJcbiAgICAgICAgICAgIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCJcbiAgICAgICAgICAgIFtob3Jpem9udGFsXT1cImhvcml6b250YWxcIlxuICAgICAgICAgICAgKm5nSWY9XCJjb2x1bW4uZWRpdGFibGUgfHwgIWhpZGVOb25FZGl0YWJsZVwiPlxuICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJjb2x1bW4uZmlsdGVyVHlwZVwiPlxuICAgIDx0ZXRhLXNlbGVjdCBjbGFzcz1cInJvd19hdXRvXCJcbiAgICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cImZpbHRlclR5cGVFbnVtLmxpc3RcIlxuICAgICAgICAgICAgICAgICBbc2VhcmNoUmVmXT1cImdldERpY3QoKT8ubGVuZ3RoID4gMTAgPyAnbmFtZScgOiAnJ1wiXG4gICAgICAgICAgICAgICAgIFthbGxvd051bGxdPVwiIWNvbHVtbi5yZXF1aXJlZFwiXG4gICAgICAgICAgICAgICAgIFthcHBlbmRUb0JvZHldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgIFtpbnZhbGlkXT1cImNvbnRyb2xJc0ludmFsaWQoY29sdW1uLm5hbWUpXCJcbiAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb2x1bW4ubmFtZVwiXG4gICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cImdldERpY3QoKVwiXG4gICAgICAgICAgICAgICAgIFt2YWx1ZVJlZl09XCInaWQnXCJcbiAgICAgICAgICAgICAgICAgW3RleHRSZWZdPVwiJ25hbWUnXCJcbiAgICAgICAgICAgICAgICAgW211bHRpcGxlXT1cImZhbHNlXCI+PC90ZXRhLXNlbGVjdD5cbiAgICA8dGV0YS1kYXRlLXBpY2tlciAqbmdTd2l0Y2hDYXNlPVwiZmlsdGVyVHlwZUVudW0uZGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyb3dfYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgW2FwcGVuZFRvQm9keV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICBbaW52YWxpZF09XCJjb250cm9sSXNJbnZhbGlkKGNvbHVtbi5uYW1lKVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb2x1bW4ubmFtZVwiPjwvdGV0YS1kYXRlLXBpY2tlcj5cbiAgICA8dGV0YS10b2dnbGUgKm5nU3dpdGNoQ2FzZT1cImZpbHRlclR5cGVFbnVtLmJvb2xlYW5cIlxuICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbHVtbi5uYW1lXCI+e3tjb2x1bW4uY2FwdGlvbn19PC90ZXRhLXRvZ2dsZT5cbiAgICA8dGV0YS10ZXh0LWZpZWxkIGNsYXNzPVwicm93X2F1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgKm5nU3dpdGNoRGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgKGZvY3Vzb3V0KT1cInZhbHVlQ2hhbmdlKClcIlxuICAgICAgICAgICAgICAgICAgICAgW29ubHlOdW1iZXJdPVwiY29sdW1uLmZpbHRlclR5cGUgPT09IGZpbHRlclR5cGVFbnVtLm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29sdW1uLmNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgW2ludmFsaWRdPVwiY29udHJvbElzSW52YWxpZChjb2x1bW4ubmFtZSlcIlxuICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb2x1bW4ubmFtZVwiPjwvdGV0YS10ZXh0LWZpZWxkPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPGRpdiAqbmdJZj1cImNvbnRyb2xJc0ludmFsaWQoY29sdW1uLm5hbWUpXCJcbiAgICAgICBuZ1Byb2plY3RBcz1cIm1lc3NhZ2VcIlxuICAgICAgIGNsYXNzPVwiY29sb3ItcmVkLTUwXCI+XG4gICAge3tnZXRFcnJvcihjb2x1bW4pfX1cbiAgPC9kaXY+XG48L3RldGEtaW5wdXQ+XG4iXX0=
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZ3JpZC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQtaXRlbS9wcm9wZXJ0eS1ncmlkLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQvcHJvcGVydHktZ3JpZC1pdGVtL3Byb3BlcnR5LWdyaWQtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUVuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFeEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7Ozs7O0FBT3pELE1BQU0sT0FBTyx5QkFBeUI7SUFpRHBDLFlBQW9CLFVBQTRCO1FBQTVCLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBbEJ0Qyx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUNoRSxVQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2QsbUJBQWMsR0FBRyxVQUFVLENBQUM7UUFjcEIsV0FBTSxHQUFHLElBQUksQ0FBQztJQUU2QixDQUFDO0lBNUNwRCxJQUNJLFNBQVMsQ0FBQyxJQUFzQjtRQUNsQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDO1FB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SjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQztZQUMzQixFQUFFLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLO1lBQ25ELElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUk7U0FDdkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVEsS0FBVSxDQUFDO0lBRW5CLFdBQVc7UUFDVCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQy9CLENBQUM7O3NIQWhHVSx5QkFBeUI7MEdBQXpCLHlCQUF5Qix3UEN4QnRDLGc0REF3Q0E7MkZEaEJhLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSx5QkFBeUI7dUdBSzFCLE1BQU07c0JBQWQsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFHRixTQUFTO3NCQURaLEtBQUs7Z0JBeUJHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0ksa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRhYmxlQ29sdW1uIH0gZnJvbSAnLi4vLi4vLi4vdGFibGUvY29udHJhY3QvdGFibGUtY29sdW1uJztcbmltcG9ydCB7IElEaWN0aW9uYXJ5IH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2NvbnRyYWN0L2ktZGljdGlvbmFyeSc7XG5pbXBvcnQgeyBJSWROYW1lIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2NvbnRyYWN0L2ktaWQtbmFtZSc7XG5pbXBvcnQgeyBGaWx0ZXJUeXBlIH0gZnJvbSAnLi4vLi4vLi4vZmlsdGVyL2VudW0vZmlsdGVyLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybXNVdGlsIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbC9mb3Jtcy11dGlsJztcbmltcG9ydCB7IFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAbmduZWF0L3RyYW5zbG9jbyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VXaGlsZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtBbGlnbn0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2VudW0vYWxpZ24uZW51bSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEtcHJvcGVydHktZ3JpZC1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3BlcnR5LWdyaWQtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Byb3BlcnR5LWdyaWQtaXRlbS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eUdyaWRJdGVtQ29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBjb2x1bW46IFRhYmxlQ29sdW1uO1xuICBASW5wdXQoKSBoaWRlTm9uRWRpdGFibGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGRpY3Q6IElEaWN0aW9uYXJ5PElJZE5hbWU8YW55PltdPjtcblxuICBASW5wdXQoKVxuICBzZXQgZm9ybUdyb3VwKGZvcm06IFVudHlwZWRGb3JtR3JvdXApIHtcbiAgICB0aGlzLl9mb3JtR3JvdXAgPSBmb3JtO1xuICAgIHRoaXMuX2Zvcm1TdWI/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5fZm9ybVN1YiA9IHRoaXMuX2Zvcm1Hcm91cC5jb250cm9sc1t0aGlzLmNvbHVtbi5uYW1lXS52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlV2hpbGUoKCkgPT4gdGhpcy5fYWxpdmUpLFxuICAgICAgICBmaWx0ZXIoXG4gICAgICAgICAgKF8pID0+XG4gICAgICAgICAgICB0aGlzLmNvbHVtbi5maWx0ZXJUeXBlICE9PSBGaWx0ZXJUeXBlLnN0cmluZyAmJlxuICAgICAgICAgICAgdGhpcy5jb2x1bW4uZmlsdGVyVHlwZSAhPT0gRmlsdGVyVHlwZS5udW1iZXJcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgICB0aGlzLmNvbnRyb2xWYWx1ZUNoYW5nZS5lbWl0KHtcbiAgICAgICAgICBpZDogXyxcbiAgICAgICAgICBuYW1lOiB0aGlzLmNvbHVtbi5uYW1lLFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgZ2V0IGZvcm1Hcm91cCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZm9ybUdyb3VwO1xuICB9XG5cbiAgQElucHV0KCkgaG9yaXpvbnRhbDogYm9vbGVhbjtcbiAgQE91dHB1dCgpIGNvbnRyb2xWYWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8SUlkTmFtZTxhbnk+PigpO1xuICBhbGlnbiA9IEFsaWduO1xuICBmaWx0ZXJUeXBlRW51bSA9IEZpbHRlclR5cGU7XG5cbiAgcHJpdmF0ZSBfZm9ybUdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwO1xuICBwcml2YXRlIF9mb3JtU3ViOiBTdWJzY3JpcHRpb247XG5cbiAgZ2V0IGNhcHRpb24oKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5jb2x1bW4uZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5ib29sZWFuKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiBgJHt0aGlzLmNvbHVtbi5jYXB0aW9ufSR7XG4gICAgICB0aGlzLmNvbHVtbi51bml0ID8gYCwgJHt0aGlzLmNvbHVtbi51bml0fWAgOiAnJ1xuICAgIH1gO1xuICB9XG5cbiAgcHJpdmF0ZSBfYWxpdmUgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3RyYW5zbG9jbzogVHJhbnNsb2NvU2VydmljZSkge31cblxuICBnZXREaWN0KCkge1xuICAgIGNvbnN0IGRpY3QgPSB0aGlzLmRpY3QgPyB0aGlzLmRpY3RbdGhpcy5jb2x1bW4ubmFtZV0gOiBbXTtcbiAgICBpZiAodGhpcy5jb2x1bW4ucGFyZW50TmFtZT8ubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIGRpY3Q/LmZpbHRlcihcbiAgICAgICAgKGRpY3RJdGVtOiBJSWROYW1lPGFueT4pID0+XG4gICAgICAgICAgZGljdEl0ZW0ucGFyZW50SWQgPT09XG4gICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0UmF3VmFsdWUoKVt0aGlzLmNvbHVtbi5wYXJlbnROYW1lXVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGRpY3Q7XG4gIH1cblxuICBjb250cm9sSXNJbnZhbGlkKGNvbnRyb2xOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gRm9ybXNVdGlsLmNvbnRyb2xJc0ludmFsaWQodGhpcy5mb3JtR3JvdXAsIGNvbnRyb2xOYW1lKTtcbiAgfVxuXG4gIGdldEVycm9yKGNvbHVtbjogVGFibGVDb2x1bW4pOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmZvcm1Hcm91cC5nZXQoY29sdW1uLm5hbWUpO1xuICAgIGlmIChjb250cm9sPy5oYXNFcnJvcigncmVxdWlyZWQnKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zbG9jby50cmFuc2xhdGUoJ2Vycm9ycy5maWVsZF9pc19yZXF1aXJlZCcpO1xuICAgIH1cbiAgICBpZiAoY29udHJvbD8uaGFzRXJyb3IoJ21pbicpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fdHJhbnNsb2NvLnRyYW5zbGF0ZSgnZXJyb3JzLm1pbl92YWx1ZScsIHtcbiAgICAgICAgdmFsdWU6IGNvbHVtbi5taW5WYWx1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoY29udHJvbD8uaGFzRXJyb3IoJ21heCcpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fdHJhbnNsb2NvLnRyYW5zbGF0ZSgnZXJyb3JzLm1heF92YWx1ZScsIHtcbiAgICAgICAgdmFsdWU6IGNvbHVtbi5tYXhWYWx1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHZhbHVlQ2hhbmdlKCkge1xuICAgIHRoaXMuY29udHJvbFZhbHVlQ2hhbmdlLmVtaXQoe1xuICAgICAgaWQ6IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzW3RoaXMuY29sdW1uLm5hbWVdLnZhbHVlLFxuICAgICAgbmFtZTogdGhpcy5jb2x1bW4ubmFtZSxcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge31cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9hbGl2ZSA9IGZhbHNlO1xuICAgIHRoaXMuX2Zvcm1TdWI/LnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjx0ZXRhLWlucHV0IFtsYWJlbF09XCJjYXB0aW9uXCJcbiAgICAgICAgICAgIFt0ZXRhSGludF09XCJjb2x1bW4uaGludFwiXG4gICAgICAgICAgICBbYWxpZ25dPVwiYWxpZ24ubGVmdFwiXG4gICAgICAgICAgICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXG4gICAgICAgICAgICBbaG9yaXpvbnRhbF09XCJob3Jpem9udGFsXCJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJjb2x1bW4ucmVxdWlyZWRcIlxuICAgICAgICAgICAgKm5nSWY9XCJjb2x1bW4uZWRpdGFibGUgfHwgIWhpZGVOb25FZGl0YWJsZVwiPlxuICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJjb2x1bW4uZmlsdGVyVHlwZVwiPlxuICAgIDx0ZXRhLXNlbGVjdCBjbGFzcz1cInJvd19hdXRvXCJcbiAgICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cImZpbHRlclR5cGVFbnVtLmxpc3RcIlxuICAgICAgICAgICAgICAgICBbc2VhcmNoUmVmXT1cImdldERpY3QoKT8ubGVuZ3RoID4gMTAgPyAnbmFtZScgOiAnJ1wiXG4gICAgICAgICAgICAgICAgIFthbGxvd051bGxdPVwiIWNvbHVtbi5yZXF1aXJlZFwiXG4gICAgICAgICAgICAgICAgIFthcHBlbmRUb0JvZHldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgIFtpbnZhbGlkXT1cImNvbnRyb2xJc0ludmFsaWQoY29sdW1uLm5hbWUpXCJcbiAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb2x1bW4ubmFtZVwiXG4gICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cImdldERpY3QoKVwiXG4gICAgICAgICAgICAgICAgIFt2YWx1ZVJlZl09XCInaWQnXCJcbiAgICAgICAgICAgICAgICAgW3RleHRSZWZdPVwiJ25hbWUnXCJcbiAgICAgICAgICAgICAgICAgW211bHRpcGxlXT1cImZhbHNlXCI+PC90ZXRhLXNlbGVjdD5cbiAgICA8dGV0YS1kYXRlLXBpY2tlciAqbmdTd2l0Y2hDYXNlPVwiZmlsdGVyVHlwZUVudW0uZGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyb3dfYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgW2FwcGVuZFRvQm9keV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICBbaW52YWxpZF09XCJjb250cm9sSXNJbnZhbGlkKGNvbHVtbi5uYW1lKVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb2x1bW4ubmFtZVwiPjwvdGV0YS1kYXRlLXBpY2tlcj5cbiAgICA8dGV0YS10b2dnbGUgKm5nU3dpdGNoQ2FzZT1cImZpbHRlclR5cGVFbnVtLmJvb2xlYW5cIlxuICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbHVtbi5uYW1lXCI+e3tjb2x1bW4uY2FwdGlvbn19PC90ZXRhLXRvZ2dsZT5cbiAgICA8dGV0YS10ZXh0LWZpZWxkIGNsYXNzPVwicm93X2F1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgKm5nU3dpdGNoRGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgKGZvY3Vzb3V0KT1cInZhbHVlQ2hhbmdlKClcIlxuICAgICAgICAgICAgICAgICAgICAgW29ubHlOdW1iZXJdPVwiY29sdW1uLmZpbHRlclR5cGUgPT09IGZpbHRlclR5cGVFbnVtLm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29sdW1uLmNhcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgW2ludmFsaWRdPVwiY29udHJvbElzSW52YWxpZChjb2x1bW4ubmFtZSlcIlxuICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb2x1bW4ubmFtZVwiPjwvdGV0YS10ZXh0LWZpZWxkPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPGRpdiAqbmdJZj1cImNvbnRyb2xJc0ludmFsaWQoY29sdW1uLm5hbWUpXCJcbiAgICAgICBuZ1Byb2plY3RBcz1cIm1lc3NhZ2VcIlxuICAgICAgIGNsYXNzPVwiY29sb3ItcmVkLTUwXCI+XG4gICAge3tnZXRFcnJvcihjb2x1bW4pfX1cbiAgPC9kaXY+XG48L3RldGEtaW5wdXQ+XG4iXX0=
@@ -129,10 +129,10 @@ export class HeadCellComponent {
129
129
  }
130
130
  }
131
131
  HeadCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: HeadCellComponent, deps: [{ token: i1.TableService }, { token: i0.ApplicationRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
132
- HeadCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: HeadCellComponent, selector: "teta-head-cell", inputs: { column: "column", showHeadCellMenu: "showHeadCellMenu", data: "data" }, host: { listeners: { "dragstart": "dragstart($event)", "dragenter": "dragenter($event)", "dragover": "allowDrop($event)", "dragleave": "dragleave($event)", "dragend": "dragend($event)", "drop": "drop($event)" }, properties: { "class.table-head__cell_active": "this.dropDownOpen" } }, viewQueries: [{ propertyName: "mainTemplate", first: true, predicate: ["mainTemplate"], descendants: true, static: true }, { propertyName: "filterTemplate", first: true, predicate: ["filterTemplate"], descendants: true, static: true }, { propertyName: "columnsTemplate", first: true, predicate: ["columnsTemplate"], descendants: true, static: true }], ngImport: i0, template: "<div draggable=\"true\" class=\"row row_auto\">\n <teta-dropdown [autoCloseIgnore]=\"['enter', 'inside']\"\n [verticalAlign]=\"verticalAlign.bottom\"\n [appendToBody]=\"false\"\n [(open)]=\"dropDownOpen\"\n [align]=\"align.left\"\n (click)=\"$event.preventDefault()\"\n [class.table-head__cell__menu_open]=\"dropDownOpen\"\n class=\"column column_auto justify-content-center\">\n <div tetaDropdownHead class=\"table-head__cell__wrapper\"\n [ngClass]=\"column.headCellClass\">\n <teta-head-cell-host [column]=\"column\" [columns]=\"columns | async\" [data]=\"data\"></teta-head-cell-host>\n <teta-icon *ngIf=\"iconName | async as icon\"\n [palette]=\"'text'\"\n [name]=\"icon\"></teta-icon>\n </div>\n <teta-head-cell-dropdown tetaDropdownContent\n *ngIf=\"showHeadCellMenu\"\n [tabTemplates]=\"tabTemplates\"\n [data]=\"data\"\n [column]=\"column\"\n [columns]=\"columns | async\"\n [state]=\"state | async\"\n [(dropDownOpen)]=\"dropDownOpen\"></teta-head-cell-dropdown>\n </teta-dropdown>\n <div class=\"drop-area\"\n draggable=\"false\"\n [class.drop-area_left]=\"showDrag === 'left'\"\n [class.drop-area_right]=\"showDrag === 'right'\"\n *ngIf=\"showDrag\"></div>\n</div>\n<div class=\"table-head__cell__resize\"\n draggable=\"false\"\n (dragstart)=\"$event.preventDefault();$event.stopPropagation()\"\n (drag)=\"$event.preventDefault();$event.stopPropagation()\"\n [tetaResizeDrag]=\"'vertical'\"\n (resizeStart)=\"resizeStart($event)\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd()\">\n <div class=\"table-head__cell__resize_drag\"></div>\n</div>\n<ng-template #mainTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-main-dropdown-tab [column]=\"column\" [state]=\"state\" [close]=\"close\"></teta-main-dropdown-tab>\n</ng-template>\n<ng-template #filterTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-filter-dropdown-tab [column]=\"column\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"></teta-filter-dropdown-tab>\n</ng-template>\n<ng-template #columnsTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-visibility-dropdown-tab [column]=\"column\"\n [columns]=\"columns\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"></teta-visibility-dropdown-tab>\n</ng-template>\n", styles: [".drop-area{position:absolute;width:1px;background:var(--color-text-50);top:0;bottom:0;z-index:10}.drop-area_left{left:-1px}.drop-area_right{right:-1px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "component", type: i4.DropdownComponent, selector: "teta-dropdown", exportAs: ["dropdown"] }, { kind: "directive", type: i5.DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { kind: "directive", type: i6.DropdownContentDirective, selector: "[tetaDropdownContent]" }, { kind: "directive", type: i7.ResizeDragDirective, selector: "[tetaResizeDrag]", inputs: ["tetaResizeDrag"], outputs: ["resizeStart", "resizeProcess", "resizeEnd"] }, { kind: "component", type: i8.HeadCellHostComponent, selector: "teta-head-cell-host", inputs: ["column", "columns", "data"] }, { kind: "component", type: i9.HeadCellDropdownComponent, selector: "teta-head-cell-dropdown", inputs: ["columns", "column", "state", "data", "tabTemplates", "dropDownOpen"], outputs: ["dropDownOpenChange"] }, { kind: "component", type: i10.MainDropdownTabComponent, selector: "teta-main-dropdown-tab", inputs: ["columns", "column", "state", "data", "close"] }, { kind: "component", type: i11.FilterDropdownTabComponent, selector: "teta-filter-dropdown-tab", inputs: ["columns", "column", "state", "data", "close"] }, { kind: "component", type: i12.VisibilityDropdownTabComponent, selector: "teta-visibility-dropdown-tab", inputs: ["columns", "column", "state", "data", "close"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
132
+ HeadCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: HeadCellComponent, selector: "teta-head-cell", inputs: { column: "column", showHeadCellMenu: "showHeadCellMenu", data: "data" }, host: { listeners: { "dragenter": "dragenter($event)", "dragover": "allowDrop($event)", "dragleave": "dragleave($event)", "dragend": "dragend($event)", "drop": "drop($event)" }, properties: { "class.table-head__cell_active": "this.dropDownOpen" } }, viewQueries: [{ propertyName: "mainTemplate", first: true, predicate: ["mainTemplate"], descendants: true, static: true }, { propertyName: "filterTemplate", first: true, predicate: ["filterTemplate"], descendants: true, static: true }, { propertyName: "columnsTemplate", first: true, predicate: ["columnsTemplate"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"row row_auto\">\n <teta-dropdown [autoCloseIgnore]=\"['enter', 'inside']\"\n [verticalAlign]=\"verticalAlign.bottom\"\n [appendToBody]=\"false\"\n [(open)]=\"dropDownOpen\"\n [align]=\"align.left\"\n (click)=\"$event.preventDefault()\"\n [class.table-head__cell__menu_open]=\"dropDownOpen\"\n class=\"column column_auto justify-content-center\">\n <div tetaDropdownHead\n draggable=\"true\"\n class=\"table-head__cell__wrapper\"\n (dragstart)=\"dragstart($event)\"\n [ngClass]=\"column.headCellClass\">\n <teta-head-cell-host [column]=\"column\" [columns]=\"columns | async\" [data]=\"data\"></teta-head-cell-host>\n <teta-icon *ngIf=\"iconName | async as icon\"\n [palette]=\"'text'\"\n [name]=\"icon\"></teta-icon>\n </div>\n <teta-head-cell-dropdown tetaDropdownContent\n *ngIf=\"showHeadCellMenu\"\n [tabTemplates]=\"tabTemplates\"\n [data]=\"data\"\n [column]=\"column\"\n [columns]=\"columns | async\"\n [state]=\"state | async\"\n [(dropDownOpen)]=\"dropDownOpen\"></teta-head-cell-dropdown>\n </teta-dropdown>\n <div class=\"drop-area\"\n draggable=\"false\"\n [class.drop-area_left]=\"showDrag === 'left'\"\n [class.drop-area_right]=\"showDrag === 'right'\"\n *ngIf=\"showDrag\"></div>\n</div>\n<div class=\"table-head__cell__resize\"\n draggable=\"false\"\n (dragstart)=\"$event.preventDefault();$event.stopPropagation()\"\n (drag)=\"$event.preventDefault();$event.stopPropagation()\"\n [tetaResizeDrag]=\"'vertical'\"\n (resizeStart)=\"resizeStart($event)\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd()\">\n <div class=\"table-head__cell__resize_drag\"></div>\n</div>\n<ng-template #mainTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-main-dropdown-tab [column]=\"column\" [state]=\"state\" [close]=\"close\"></teta-main-dropdown-tab>\n</ng-template>\n<ng-template #filterTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-filter-dropdown-tab [column]=\"column\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"></teta-filter-dropdown-tab>\n</ng-template>\n<ng-template #columnsTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-visibility-dropdown-tab [column]=\"column\"\n [columns]=\"columns\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"></teta-visibility-dropdown-tab>\n</ng-template>\n", styles: [".drop-area{position:absolute;width:1px;background:var(--color-text-50);top:0;bottom:0;z-index:10}.drop-area_left{left:-1px}.drop-area_right{right:-1px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "component", type: i4.DropdownComponent, selector: "teta-dropdown", exportAs: ["dropdown"] }, { kind: "directive", type: i5.DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { kind: "directive", type: i6.DropdownContentDirective, selector: "[tetaDropdownContent]" }, { kind: "directive", type: i7.ResizeDragDirective, selector: "[tetaResizeDrag]", inputs: ["tetaResizeDrag"], outputs: ["resizeStart", "resizeProcess", "resizeEnd"] }, { kind: "component", type: i8.HeadCellHostComponent, selector: "teta-head-cell-host", inputs: ["column", "columns", "data"] }, { kind: "component", type: i9.HeadCellDropdownComponent, selector: "teta-head-cell-dropdown", inputs: ["columns", "column", "state", "data", "tabTemplates", "dropDownOpen"], outputs: ["dropDownOpenChange"] }, { kind: "component", type: i10.MainDropdownTabComponent, selector: "teta-main-dropdown-tab", inputs: ["columns", "column", "state", "data", "close"] }, { kind: "component", type: i11.FilterDropdownTabComponent, selector: "teta-filter-dropdown-tab", inputs: ["columns", "column", "state", "data", "close"] }, { kind: "component", type: i12.VisibilityDropdownTabComponent, selector: "teta-visibility-dropdown-tab", inputs: ["columns", "column", "state", "data", "close"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
133
133
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: HeadCellComponent, decorators: [{
134
134
  type: Component,
135
- args: [{ selector: 'teta-head-cell', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div draggable=\"true\" class=\"row row_auto\">\n <teta-dropdown [autoCloseIgnore]=\"['enter', 'inside']\"\n [verticalAlign]=\"verticalAlign.bottom\"\n [appendToBody]=\"false\"\n [(open)]=\"dropDownOpen\"\n [align]=\"align.left\"\n (click)=\"$event.preventDefault()\"\n [class.table-head__cell__menu_open]=\"dropDownOpen\"\n class=\"column column_auto justify-content-center\">\n <div tetaDropdownHead class=\"table-head__cell__wrapper\"\n [ngClass]=\"column.headCellClass\">\n <teta-head-cell-host [column]=\"column\" [columns]=\"columns | async\" [data]=\"data\"></teta-head-cell-host>\n <teta-icon *ngIf=\"iconName | async as icon\"\n [palette]=\"'text'\"\n [name]=\"icon\"></teta-icon>\n </div>\n <teta-head-cell-dropdown tetaDropdownContent\n *ngIf=\"showHeadCellMenu\"\n [tabTemplates]=\"tabTemplates\"\n [data]=\"data\"\n [column]=\"column\"\n [columns]=\"columns | async\"\n [state]=\"state | async\"\n [(dropDownOpen)]=\"dropDownOpen\"></teta-head-cell-dropdown>\n </teta-dropdown>\n <div class=\"drop-area\"\n draggable=\"false\"\n [class.drop-area_left]=\"showDrag === 'left'\"\n [class.drop-area_right]=\"showDrag === 'right'\"\n *ngIf=\"showDrag\"></div>\n</div>\n<div class=\"table-head__cell__resize\"\n draggable=\"false\"\n (dragstart)=\"$event.preventDefault();$event.stopPropagation()\"\n (drag)=\"$event.preventDefault();$event.stopPropagation()\"\n [tetaResizeDrag]=\"'vertical'\"\n (resizeStart)=\"resizeStart($event)\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd()\">\n <div class=\"table-head__cell__resize_drag\"></div>\n</div>\n<ng-template #mainTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-main-dropdown-tab [column]=\"column\" [state]=\"state\" [close]=\"close\"></teta-main-dropdown-tab>\n</ng-template>\n<ng-template #filterTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-filter-dropdown-tab [column]=\"column\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"></teta-filter-dropdown-tab>\n</ng-template>\n<ng-template #columnsTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-visibility-dropdown-tab [column]=\"column\"\n [columns]=\"columns\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"></teta-visibility-dropdown-tab>\n</ng-template>\n", styles: [".drop-area{position:absolute;width:1px;background:var(--color-text-50);top:0;bottom:0;z-index:10}.drop-area_left{left:-1px}.drop-area_right{right:-1px}\n"] }]
135
+ args: [{ selector: 'teta-head-cell', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"row row_auto\">\n <teta-dropdown [autoCloseIgnore]=\"['enter', 'inside']\"\n [verticalAlign]=\"verticalAlign.bottom\"\n [appendToBody]=\"false\"\n [(open)]=\"dropDownOpen\"\n [align]=\"align.left\"\n (click)=\"$event.preventDefault()\"\n [class.table-head__cell__menu_open]=\"dropDownOpen\"\n class=\"column column_auto justify-content-center\">\n <div tetaDropdownHead\n draggable=\"true\"\n class=\"table-head__cell__wrapper\"\n (dragstart)=\"dragstart($event)\"\n [ngClass]=\"column.headCellClass\">\n <teta-head-cell-host [column]=\"column\" [columns]=\"columns | async\" [data]=\"data\"></teta-head-cell-host>\n <teta-icon *ngIf=\"iconName | async as icon\"\n [palette]=\"'text'\"\n [name]=\"icon\"></teta-icon>\n </div>\n <teta-head-cell-dropdown tetaDropdownContent\n *ngIf=\"showHeadCellMenu\"\n [tabTemplates]=\"tabTemplates\"\n [data]=\"data\"\n [column]=\"column\"\n [columns]=\"columns | async\"\n [state]=\"state | async\"\n [(dropDownOpen)]=\"dropDownOpen\"></teta-head-cell-dropdown>\n </teta-dropdown>\n <div class=\"drop-area\"\n draggable=\"false\"\n [class.drop-area_left]=\"showDrag === 'left'\"\n [class.drop-area_right]=\"showDrag === 'right'\"\n *ngIf=\"showDrag\"></div>\n</div>\n<div class=\"table-head__cell__resize\"\n draggable=\"false\"\n (dragstart)=\"$event.preventDefault();$event.stopPropagation()\"\n (drag)=\"$event.preventDefault();$event.stopPropagation()\"\n [tetaResizeDrag]=\"'vertical'\"\n (resizeStart)=\"resizeStart($event)\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd()\">\n <div class=\"table-head__cell__resize_drag\"></div>\n</div>\n<ng-template #mainTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-main-dropdown-tab [column]=\"column\" [state]=\"state\" [close]=\"close\"></teta-main-dropdown-tab>\n</ng-template>\n<ng-template #filterTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-filter-dropdown-tab [column]=\"column\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"></teta-filter-dropdown-tab>\n</ng-template>\n<ng-template #columnsTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-visibility-dropdown-tab [column]=\"column\"\n [columns]=\"columns\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"></teta-visibility-dropdown-tab>\n</ng-template>\n", styles: [".drop-area{position:absolute;width:1px;background:var(--color-text-50);top:0;bottom:0;z-index:10}.drop-area_left{left:-1px}.drop-area_right{right:-1px}\n"] }]
136
136
  }], ctorParameters: function () { return [{ type: i1.TableService }, { type: i0.ApplicationRef }, { type: i0.ElementRef }]; }, propDecorators: { column: [{
137
137
  type: Input
138
138
  }], showHeadCellMenu: [{
@@ -151,9 +151,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
151
151
  }], columnsTemplate: [{
152
152
  type: ViewChild,
153
153
  args: ['columnsTemplate', { static: true }]
154
- }], dragstart: [{
155
- type: HostListener,
156
- args: ['dragstart', ['$event']]
157
154
  }], dragenter: [{
158
155
  type: HostListener,
159
156
  args: ['dragenter', ['$event']]
@@ -170,4 +167,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
170
167
  type: HostListener,
171
168
  args: ['drop', ['$event']]
172
169
  }] } });
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZC1jZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvdGFibGUvaGVhZC1jZWxsL2hlYWQtY2VsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RhYmxlL2hlYWQtY2VsbC9oZWFkLWNlbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ0csV0FBVyxFQUN2QixZQUFZLEVBQ1osS0FBSyxFQUVnQixTQUFTLEdBQy9CLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBR2xFLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDN0MsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RCxPQUFPLEVBQUMsYUFBYSxFQUFhLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7OztBQVMvQyxNQUFNLE9BQU8saUJBQWlCO0lBeUQ1QixZQUNVLElBQXFCLEVBQ3JCLElBQW9CLEVBQ3BCLFdBQXVCO1FBRnZCLFNBQUksR0FBSixJQUFJLENBQWlCO1FBQ3JCLFNBQUksR0FBSixJQUFJLENBQWdCO1FBQ3BCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBdkRqQyxrQkFBYSxHQUFHLGFBQWEsQ0FBQztRQUM5QixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBUWQsYUFBUSxHQUE0QixJQUFJLENBQUM7UUFHakMsV0FBTSxHQUFHLElBQUksQ0FBQztJQTZDdEIsQ0FBQztJQXRDRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPO1lB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aENhLGlCQUFpQjtrQkFON0IsU0FBUzsrQkFDRSxnQkFBZ0IsbUJBR1QsdUJBQXVCLENBQUMsTUFBTTt5SkFHdEMsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBVU4sWUFBWTtzQkFEWCxXQUFXO3VCQUFDLCtCQUErQjtnQkFRRCxZQUFZO3NCQUF0RCxTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBQ0ksY0FBYztzQkFBMUQsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBQ0csZUFBZTtzQkFBNUQsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBMENMLFNBQVM7c0JBQS9DLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU9FLFNBQVM7c0JBQS9DLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUlDLFNBQVM7c0JBQTlDLFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVFHLFNBQVM7c0JBQS9DLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUtBLE9BQU87c0JBQTNDLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUlELElBQUk7c0JBQXJDLFlBQVk7dUJBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXBwbGljYXRpb25SZWYsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RhYmxlQ29sdW1ufSBmcm9tICcuLi9jb250cmFjdC90YWJsZS1jb2x1bW4nO1xuaW1wb3J0IHtDb2x1bW5SZXNpemVFdmVudH0gZnJvbSAnLi4vY29udHJhY3QvY29sdW1uLXJlc2l6ZS1ldmVudCc7XG5pbXBvcnQge0ZpbHRlclN0YXRlfSBmcm9tICcuLi8uLi9maWx0ZXIvY29udGFyY3QvZmlsdGVyLXN0YXRlJztcbmltcG9ydCB7VGFibGVTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL3RhYmxlLnNlcnZpY2UnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7U29ydFBhcmFtfSBmcm9tICcuLi8uLi9maWx0ZXIvY29udGFyY3Qvc29ydC1wYXJhbSc7XG5pbXBvcnQge1N0YXRlVXRpbH0gZnJvbSAnLi4vdXRpbC9zdGF0ZS11dGlsJztcbmltcG9ydCB7VmVydGljYWxBbGlnbn0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2VudW0vdmVydGljYWwtYWxpZ24uZW51bSc7XG5pbXBvcnQge0FsaWdufSBmcm9tICcuLi8uLi8uLi9jb21tb24vZW51bS9hbGlnbi5lbnVtJztcbmltcG9ydCB7Y29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0hlYWREcm9wZG93blRhYn0gZnJvbSAnLi4vY29udHJhY3QvaGVhZC1kcm9wZG93bi10YWInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXRhLWhlYWQtY2VsbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9oZWFkLWNlbGwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9oZWFkLWNlbGwuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEhlYWRDZWxsQ29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBjb2x1bW46IFRhYmxlQ29sdW1uO1xuICBASW5wdXQoKSBzaG93SGVhZENlbGxNZW51OiBib29sZWFuO1xuICBASW5wdXQoKSBkYXRhOiBUW107XG5cbiAgdmVydGljYWxBbGlnbiA9IFZlcnRpY2FsQWxpZ247XG4gIGFsaWduID0gQWxpZ247XG4gIHN0YXRlOiBPYnNlcnZhYmxlPEZpbHRlclN0YXRlPjtcbiAgY29sdW1uczogT2JzZXJ2YWJsZTxUYWJsZUNvbHVtbltdPjtcbiAgZmlsdGVyZWQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHNvcnRQYXJhbTogT2JzZXJ2YWJsZTxTb3J0UGFyYW0+O1xuICBpY29uTmFtZTogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRhYmxlLWhlYWRfX2NlbGxfYWN0aXZlJylcbiAgZHJvcERvd25PcGVuOiBib29sZWFuO1xuICBzaG93RHJhZzogJ2xlZnQnIHwgJ3JpZ2h0JyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHJlY3Q6IGFueTtcblxuICBwcml2YXRlIF9hbGl2ZSA9IHRydWU7XG4gIHByaXZhdGUgX3N0YXJ0UG9zaXRpb246IG51bWJlcjtcblxuICBAVmlld0NoaWxkKCdtYWluVGVtcGxhdGUnLCB7c3RhdGljOiB0cnVlfSkgbWFpblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAVmlld0NoaWxkKCdmaWx0ZXJUZW1wbGF0ZScsIHtzdGF0aWM6IHRydWV9KSBmaWx0ZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgQFZpZXdDaGlsZCgnY29sdW1uc1RlbXBsYXRlJywge3N0YXRpYzogdHJ1ZX0pIGNvbHVtbnNUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBnZXQgZGVmYXVsdFRlbXBsYXRlcygpOiBIZWFkRHJvcGRvd25UYWJbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgaWNvbjogJ21lbnUnLFxuICAgICAgICB0ZW1wbGF0ZTogdGhpcy5tYWluVGVtcGxhdGUsXG4gICAgICAgIG9yZGVyOiAxMCxcbiAgICAgICAgc2hvd1RhYjogKCkgPT4gdHJ1ZSxcbiAgICAgIH0sIHtcbiAgICAgICAgaWNvbjogJ2ZpbHRlcicsXG4gICAgICAgIHRlbXBsYXRlOiB0aGlzLmZpbHRlclRlbXBsYXRlLFxuICAgICAgICBvcmRlcjogMjAsXG4gICAgICAgIHNob3dUYWI6IChjb2x1bW4pID0+IGNvbHVtbi5maWx0ZXJhYmxlLFxuICAgICAgfSwge1xuICAgICAgICBpY29uOiAnZXllJyxcbiAgICAgICAgdGVtcGxhdGU6IHRoaXMuY29sdW1uc1RlbXBsYXRlLFxuICAgICAgICBvcmRlcjogMzAsXG4gICAgICAgIHNob3dUYWI6ICgpID0+IHRydWUsXG4gICAgICB9XG4gICAgXTtcbiAgfVxuXG4gIGdldCB0YWJUZW1wbGF0ZXMoKSB7XG4gICAgaWYgKHRoaXMuY29sdW1uPy5oZWFkRHJvcGRvd25Db25maWcgJiYgdGhpcy5jb2x1bW4uaGVhZERyb3Bkb3duQ29uZmlnLnRhYnM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGlmICh0aGlzLmNvbHVtbi5oZWFkRHJvcGRvd25Db25maWcuc3RyYXRlZ3kgPT09ICdyZXBsYWNlJykge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2x1bW4uaGVhZERyb3Bkb3duQ29uZmlnLnRhYnM7XG4gICAgICB9XG4gICAgICByZXR1cm4gWy4uLnRoaXMuZGVmYXVsdFRlbXBsYXRlcywgLi4udGhpcy5jb2x1bW4uaGVhZERyb3Bkb3duQ29uZmlnLnRhYnNdXG4gICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdFRlbXBsYXRlcztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX3N2YzogVGFibGVTZXJ2aWNlPFQ+LFxuICAgIHByaXZhdGUgX2FwcDogQXBwbGljYXRpb25SZWYsXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZlxuICApIHtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdzdGFydCcsIFsnJGV2ZW50J10pIGRyYWdzdGFydChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50ICYmIGV2ZW50LmRhdGFUcmFuc2Zlcikge1xuICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQnLCAnbW92ZScpO1xuICAgIH1cbiAgICB0aGlzLl9zdmMuZHJhZ1N0YXJ0KHRoaXMuY29sdW1uKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdlbnRlcicsIFsnJGV2ZW50J10pIGRyYWdlbnRlcihldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5yZWN0ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZHJhZ292ZXInLCBbJyRldmVudCddKSBhbGxvd0Ryb3AoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKHRoaXMucmVjdCAmJiB0aGlzLl9zdmMuZHJhZ1NvdXJjZSkge1xuICAgICAgdGhpcy5zaG93RHJhZyA9XG4gICAgICAgIGV2ZW50LmNsaWVudFggPj0gdGhpcy5yZWN0LnggKyB0aGlzLnJlY3Qud2lkdGggLyAyID8gJ3JpZ2h0JyA6ICdsZWZ0JztcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkcmFnbGVhdmUnLCBbJyRldmVudCddKSBkcmFnbGVhdmUoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5zaG93RHJhZyA9IG51bGw7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkcmFnZW5kJywgWyckZXZlbnQnXSkgZHJhZ2VuZChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5zaG93RHJhZyA9IG51bGw7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkcm9wJywgWyckZXZlbnQnXSkgZHJvcChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgbW92ZSA9IGV2ZW50LmRhdGFUcmFuc2ZlciAmJiBldmVudC5kYXRhVHJhbnNmZXIuZ2V0RGF0YSgndGV4dCcpO1xuICAgIGlmIChtb3ZlID09PSAnbW92ZScpIHtcbiAgICAgIHRoaXMuX3N2Yy5yZW9yZGVyQ29sdW1uKHRoaXMuY29sdW1uLCB0aGlzLnNob3dEcmFnID09PSAnbGVmdCcpO1xuICAgIH1cbiAgICB0aGlzLnNob3dEcmFnID0gbnVsbDtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY29sdW1ucyA9IHRoaXMuX3N2Yy5jb2x1bW5zO1xuICAgIHRoaXMuc3RhdGUgPSB0aGlzLl9zdmMuc3RhdGU7XG4gICAgdGhpcy5zb3J0UGFyYW0gPSB0aGlzLnN0YXRlLnBpcGUoXG4gICAgICBtYXAoKF8pID0+IFN0YXRlVXRpbC5nZXRTb3J0U3RhdGUoXywgdGhpcy5jb2x1bW4pKVxuICAgICk7XG4gICAgdGhpcy5maWx0ZXJlZCA9IHRoaXMuc3RhdGUucGlwZShcbiAgICAgIG1hcCgoXykgPT4gU3RhdGVVdGlsLmlzQ29sdW1uRmlsdGVyZWQoXywgdGhpcy5jb2x1bW4pKVxuICAgICk7XG4gICAgdGhpcy5pY29uTmFtZSA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuc29ydFBhcmFtLCB0aGlzLmZpbHRlcmVkXSkucGlwZShcbiAgICAgIG1hcCgoZGF0YTogW1NvcnRQYXJhbSwgYm9vbGVhbl0pID0+IHtcbiAgICAgICAgY29uc3QgW3NvcnRQYXJhbSwgZmlsdGVyZWRdID0gZGF0YTtcbiAgICAgICAgaWYgKHNvcnRQYXJhbSAmJiBmaWx0ZXJlZCkge1xuICAgICAgICAgIHJldHVybiBzb3J0UGFyYW0uYXNjID8gJ2ZpbHRlclNvcnRVcENvbG9yJyA6ICdmaWx0ZXJTb3J0RG93bkNvbG9yJztcbiAgICAgICAgfVxuICAgICAgICBpZiAoc29ydFBhcmFtKSB7XG4gICAgICAgICAgcmV0dXJuIHNvcnRQYXJhbS5hc2MgPyAnc29ydFVwQ29sb3InIDogJ3NvcnREb3duQ29sb3InO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmaWx0ZXJlZCkge1xuICAgICAgICAgIHJldHVybiAnZmlsdGVyQ29sb3InO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnJztcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2FsaXZlID0gZmFsc2U7XG4gIH1cblxuICByZXNpemVTdGFydChldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHJlY3QgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgdGhpcy5fc3RhcnRQb3NpdGlvbiA9IHJlY3QueDtcbiAgICB0aGlzLl9zdmMubG9ja1ByZXZpb3VzQ29sdW1ucyh0aGlzLmNvbHVtbiwgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIHJlc2l6ZVByb2Nlc3MoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fc3RhcnRQb3NpdGlvbiAmJiBldmVudC5wYWdlWCA+IDApIHtcbiAgICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5fc3RhcnRQb3NpdGlvbjtcbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX3N2Yy5yZXNpemVDb2x1bW4oXG4gICAgICAgICAgbmV3IENvbHVtblJlc2l6ZUV2ZW50KHRoaXMuY29sdW1uLCBldmVudC5wYWdlWCAtIHBvc2l0aW9uKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLl9hcHAudGljaygpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVzaXplRW5kKCkge1xuICAgIHRoaXMuX3N0YXJ0UG9zaXRpb24gPSBudWxsO1xuICB9XG59XG4iLCI8ZGl2IGRyYWdnYWJsZT1cInRydWVcIiBjbGFzcz1cInJvdyByb3dfYXV0b1wiPlxuICA8dGV0YS1kcm9wZG93biBbYXV0b0Nsb3NlSWdub3JlXT1cIlsnZW50ZXInLCAnaW5zaWRlJ11cIlxuICAgICAgICAgICAgICAgICBbdmVydGljYWxBbGlnbl09XCJ2ZXJ0aWNhbEFsaWduLmJvdHRvbVwiXG4gICAgICAgICAgICAgICAgIFthcHBlbmRUb0JvZHldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICBbKG9wZW4pXT1cImRyb3BEb3duT3BlblwiXG4gICAgICAgICAgICAgICAgIFthbGlnbl09XCJhbGlnbi5sZWZ0XCJcbiAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCJcbiAgICAgICAgICAgICAgICAgW2NsYXNzLnRhYmxlLWhlYWRfX2NlbGxfX21lbnVfb3Blbl09XCJkcm9wRG93bk9wZW5cIlxuICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbHVtbiBjb2x1bW5fYXV0byBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG4gICAgPGRpdiB0ZXRhRHJvcGRvd25IZWFkIGNsYXNzPVwidGFibGUtaGVhZF9fY2VsbF9fd3JhcHBlclwiXG4gICAgICAgICBbbmdDbGFzc109XCJjb2x1bW4uaGVhZENlbGxDbGFzc1wiPlxuICAgICAgPHRldGEtaGVhZC1jZWxsLWhvc3QgW2NvbHVtbl09XCJjb2x1bW5cIiBbY29sdW1uc109XCJjb2x1bW5zIHwgYXN5bmNcIiBbZGF0YV09XCJkYXRhXCI+PC90ZXRhLWhlYWQtY2VsbC1ob3N0PlxuICAgICAgPHRldGEtaWNvbiAqbmdJZj1cImljb25OYW1lIHwgYXN5bmMgYXMgaWNvblwiXG4gICAgICAgICAgICAgICAgIFtwYWxldHRlXT1cIid0ZXh0J1wiXG4gICAgICAgICAgICAgICAgIFtuYW1lXT1cImljb25cIj48L3RldGEtaWNvbj5cbiAgICA8L2Rpdj5cbiAgICA8dGV0YS1oZWFkLWNlbGwtZHJvcGRvd24gdGV0YURyb3Bkb3duQ29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dIZWFkQ2VsbE1lbnVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGFiVGVtcGxhdGVzXT1cInRhYlRlbXBsYXRlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImRhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnMgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGF0ZV09XCJzdGF0ZSB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhkcm9wRG93bk9wZW4pXT1cImRyb3BEb3duT3BlblwiPjwvdGV0YS1oZWFkLWNlbGwtZHJvcGRvd24+XG4gIDwvdGV0YS1kcm9wZG93bj5cbiAgPGRpdiBjbGFzcz1cImRyb3AtYXJlYVwiXG4gICAgICAgZHJhZ2dhYmxlPVwiZmFsc2VcIlxuICAgICAgIFtjbGFzcy5kcm9wLWFyZWFfbGVmdF09XCJzaG93RHJhZyA9PT0gJ2xlZnQnXCJcbiAgICAgICBbY2xhc3MuZHJvcC1hcmVhX3JpZ2h0XT1cInNob3dEcmFnID09PSAncmlnaHQnXCJcbiAgICAgICAqbmdJZj1cInNob3dEcmFnXCI+PC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJ0YWJsZS1oZWFkX19jZWxsX19yZXNpemVcIlxuICAgICBkcmFnZ2FibGU9XCJmYWxzZVwiXG4gICAgIChkcmFnc3RhcnQpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7JGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgKGRyYWcpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7JGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgW3RldGFSZXNpemVEcmFnXT1cIid2ZXJ0aWNhbCdcIlxuICAgICAocmVzaXplU3RhcnQpPVwicmVzaXplU3RhcnQoJGV2ZW50KVwiXG4gICAgIChyZXNpemVQcm9jZXNzKT1cInJlc2l6ZVByb2Nlc3MoJGV2ZW50KVwiXG4gICAgIChyZXNpemVFbmQpPVwicmVzaXplRW5kKClcIj5cbiAgPGRpdiBjbGFzcz1cInRhYmxlLWhlYWRfX2NlbGxfX3Jlc2l6ZV9kcmFnXCI+PC9kaXY+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjbWFpblRlbXBsYXRlIGxldC1jb2x1bW49XCJjb2x1bW5cIiBsZXQtY29sdW1ucz1cImNvbHVtbnNcIiBsZXQtZGF0YT1cImRhdGFcIiBsZXQtc3RhdGU9XCJzdGF0ZVwiXG4gICAgICAgICAgICAgbGV0LWNsb3NlPVwiY2xvc2VcIj5cbiAgPHRldGEtbWFpbi1kcm9wZG93bi10YWIgW2NvbHVtbl09XCJjb2x1bW5cIiBbc3RhdGVdPVwic3RhdGVcIiBbY2xvc2VdPVwiY2xvc2VcIj48L3RldGEtbWFpbi1kcm9wZG93bi10YWI+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNmaWx0ZXJUZW1wbGF0ZSBsZXQtY29sdW1uPVwiY29sdW1uXCIgbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCIgbGV0LWRhdGE9XCJkYXRhXCIgbGV0LXN0YXRlPVwic3RhdGVcIlxuICAgICAgICAgICAgIGxldC1jbG9zZT1cImNsb3NlXCI+XG4gIDx0ZXRhLWZpbHRlci1kcm9wZG93bi10YWIgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGF0ZV09XCJzdGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Nsb3NlXT1cImNsb3NlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJkYXRhXCI+PC90ZXRhLWZpbHRlci1kcm9wZG93bi10YWI+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNjb2x1bW5zVGVtcGxhdGUgbGV0LWNvbHVtbj1cImNvbHVtblwiIGxldC1jb2x1bW5zPVwiY29sdW1uc1wiIGxldC1kYXRhPVwiZGF0YVwiIGxldC1zdGF0ZT1cInN0YXRlXCJcbiAgICAgICAgICAgICBsZXQtY2xvc2U9XCJjbG9zZVwiPlxuICA8dGV0YS12aXNpYmlsaXR5LWRyb3Bkb3duLXRhYiBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RhdGVdPVwic3RhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xvc2VdPVwiY2xvc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJkYXRhXCI+PC90ZXRhLXZpc2liaWxpdHktZHJvcGRvd24tdGFiPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZC1jZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvdGFibGUvaGVhZC1jZWxsL2hlYWQtY2VsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RhYmxlL2hlYWQtY2VsbC9oZWFkLWNlbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ0csV0FBVyxFQUN2QixZQUFZLEVBQ1osS0FBSyxFQUVnQixTQUFTLEdBQy9CLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBR2xFLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDN0MsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RCxPQUFPLEVBQUMsYUFBYSxFQUFhLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7OztBQVMvQyxNQUFNLE9BQU8saUJBQWlCO0lBeUQ1QixZQUNVLElBQXFCLEVBQ3JCLElBQW9CLEVBQ3BCLFdBQXVCO1FBRnZCLFNBQUksR0FBSixJQUFJLENBQWlCO1FBQ3JCLFNBQUksR0FBSixJQUFJLENBQWdCO1FBQ3BCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBdkRqQyxrQkFBYSxHQUFHLGFBQWEsQ0FBQztRQUM5QixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBUWQsYUFBUSxHQUE0QixJQUFJLENBQUM7UUFHakMsV0FBTSxHQUFHLElBQUksQ0FBQztJQTZDdEIsQ0FBQztJQXRDRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPO1lB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Q2EsaUJBQWlCO2tCQU43QixTQUFTOytCQUNFLGdCQUFnQixtQkFHVCx1QkFBdUIsQ0FBQyxNQUFNO3lKQUd0QyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFVTixZQUFZO3NCQURYLFdBQVc7dUJBQUMsK0JBQStCO2dCQVFELFlBQVk7c0JBQXRELFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFDSSxjQUFjO3NCQUExRCxTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFDRyxlQUFlO3NCQUE1RCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFpREwsU0FBUztzQkFBL0MsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBSUMsU0FBUztzQkFBOUMsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBUUcsU0FBUztzQkFBL0MsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBS0EsT0FBTztzQkFBM0MsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBSUQsSUFBSTtzQkFBckMsWUFBWTt1QkFBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBcHBsaWNhdGlvblJlZixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VGFibGVDb2x1bW59IGZyb20gJy4uL2NvbnRyYWN0L3RhYmxlLWNvbHVtbic7XG5pbXBvcnQge0NvbHVtblJlc2l6ZUV2ZW50fSBmcm9tICcuLi9jb250cmFjdC9jb2x1bW4tcmVzaXplLWV2ZW50JztcbmltcG9ydCB7RmlsdGVyU3RhdGV9IGZyb20gJy4uLy4uL2ZpbHRlci9jb250YXJjdC9maWx0ZXItc3RhdGUnO1xuaW1wb3J0IHtUYWJsZVNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2UvdGFibGUuc2VydmljZSc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtTb3J0UGFyYW19IGZyb20gJy4uLy4uL2ZpbHRlci9jb250YXJjdC9zb3J0LXBhcmFtJztcbmltcG9ydCB7U3RhdGVVdGlsfSBmcm9tICcuLi91dGlsL3N0YXRlLXV0aWwnO1xuaW1wb3J0IHtWZXJ0aWNhbEFsaWdufSBmcm9tICcuLi8uLi8uLi9jb21tb24vZW51bS92ZXJ0aWNhbC1hbGlnbi5lbnVtJztcbmltcG9ydCB7QWxpZ259IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9lbnVtL2FsaWduLmVudW0nO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7SGVhZERyb3Bkb3duVGFifSBmcm9tICcuLi9jb250cmFjdC9oZWFkLWRyb3Bkb3duLXRhYic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEtaGVhZC1jZWxsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWQtY2VsbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2hlYWQtY2VsbC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgSGVhZENlbGxDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGNvbHVtbjogVGFibGVDb2x1bW47XG4gIEBJbnB1dCgpIHNob3dIZWFkQ2VsbE1lbnU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGRhdGE6IFRbXTtcblxuICB2ZXJ0aWNhbEFsaWduID0gVmVydGljYWxBbGlnbjtcbiAgYWxpZ24gPSBBbGlnbjtcbiAgc3RhdGU6IE9ic2VydmFibGU8RmlsdGVyU3RhdGU+O1xuICBjb2x1bW5zOiBPYnNlcnZhYmxlPFRhYmxlQ29sdW1uW10+O1xuICBmaWx0ZXJlZDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgc29ydFBhcmFtOiBPYnNlcnZhYmxlPFNvcnRQYXJhbT47XG4gIGljb25OYW1lOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIEBIb3N0QmluZGluZygnY2xhc3MudGFibGUtaGVhZF9fY2VsbF9hY3RpdmUnKVxuICBkcm9wRG93bk9wZW46IGJvb2xlYW47XG4gIHNob3dEcmFnOiAnbGVmdCcgfCAncmlnaHQnIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgcmVjdDogYW55O1xuXG4gIHByaXZhdGUgX2FsaXZlID0gdHJ1ZTtcbiAgcHJpdmF0ZSBfc3RhcnRQb3NpdGlvbjogbnVtYmVyO1xuXG4gIEBWaWV3Q2hpbGQoJ21haW5UZW1wbGF0ZScsIHtzdGF0aWM6IHRydWV9KSBtYWluVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ2ZpbHRlclRlbXBsYXRlJywge3N0YXRpYzogdHJ1ZX0pIGZpbHRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAVmlld0NoaWxkKCdjb2x1bW5zVGVtcGxhdGUnLCB7c3RhdGljOiB0cnVlfSkgY29sdW1uc1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGdldCBkZWZhdWx0VGVtcGxhdGVzKCk6IEhlYWREcm9wZG93blRhYltdIHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBpY29uOiAnbWVudScsXG4gICAgICAgIHRlbXBsYXRlOiB0aGlzLm1haW5UZW1wbGF0ZSxcbiAgICAgICAgb3JkZXI6IDEwLFxuICAgICAgICBzaG93VGFiOiAoKSA9PiB0cnVlLFxuICAgICAgfSwge1xuICAgICAgICBpY29uOiAnZmlsdGVyJyxcbiAgICAgICAgdGVtcGxhdGU6IHRoaXMuZmlsdGVyVGVtcGxhdGUsXG4gICAgICAgIG9yZGVyOiAyMCxcbiAgICAgICAgc2hvd1RhYjogKGNvbHVtbikgPT4gY29sdW1uLmZpbHRlcmFibGUsXG4gICAgICB9LCB7XG4gICAgICAgIGljb246ICdleWUnLFxuICAgICAgICB0ZW1wbGF0ZTogdGhpcy5jb2x1bW5zVGVtcGxhdGUsXG4gICAgICAgIG9yZGVyOiAzMCxcbiAgICAgICAgc2hvd1RhYjogKCkgPT4gdHJ1ZSxcbiAgICAgIH1cbiAgICBdO1xuICB9XG5cbiAgZ2V0IHRhYlRlbXBsYXRlcygpIHtcbiAgICBpZiAodGhpcy5jb2x1bW4/LmhlYWREcm9wZG93bkNvbmZpZyAmJiB0aGlzLmNvbHVtbi5oZWFkRHJvcGRvd25Db25maWcudGFicz8ubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKHRoaXMuY29sdW1uLmhlYWREcm9wZG93bkNvbmZpZy5zdHJhdGVneSA9PT0gJ3JlcGxhY2UnKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbHVtbi5oZWFkRHJvcGRvd25Db25maWcudGFicztcbiAgICAgIH1cbiAgICAgIHJldHVybiBbLi4udGhpcy5kZWZhdWx0VGVtcGxhdGVzLCAuLi50aGlzLmNvbHVtbi5oZWFkRHJvcGRvd25Db25maWcudGFic11cbiAgICAgICAgLnNvcnQoKGEsIGIpID0+IGEub3JkZXIgLSBiLm9yZGVyKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5kZWZhdWx0VGVtcGxhdGVzO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfc3ZjOiBUYWJsZVNlcnZpY2U8VD4sXG4gICAgcHJpdmF0ZSBfYXBwOiBBcHBsaWNhdGlvblJlZixcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmXG4gICkge1xuICB9XG5cbiAgZHJhZ3N0YXJ0KGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQgJiYgZXZlbnQuZGF0YVRyYW5zZmVyKSB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dCcsICdtb3ZlJyk7XG4gICAgfVxuICAgIHRoaXMuX3N2Yy5kcmFnU3RhcnQodGhpcy5jb2x1bW4pO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZHJhZ2VudGVyJywgWyckZXZlbnQnXSkgZHJhZ2VudGVyKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnJlY3QgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkcmFnb3ZlcicsIFsnJGV2ZW50J10pIGFsbG93RHJvcChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBpZiAodGhpcy5yZWN0ICYmIHRoaXMuX3N2Yy5kcmFnU291cmNlKSB7XG4gICAgICB0aGlzLnNob3dEcmFnID1cbiAgICAgICAgZXZlbnQuY2xpZW50WCA+PSB0aGlzLnJlY3QueCArIHRoaXMucmVjdC53aWR0aCAvIDIgPyAncmlnaHQnIDogJ2xlZnQnO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIFsnJGV2ZW50J10pIGRyYWdsZWF2ZShldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnNob3dEcmFnID0gbnVsbDtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdlbmQnLCBbJyRldmVudCddKSBkcmFnZW5kKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dEcmFnID0gbnVsbDtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbJyRldmVudCddKSBkcm9wKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBtb3ZlID0gZXZlbnQuZGF0YVRyYW5zZmVyICYmIGV2ZW50LmRhdGFUcmFuc2Zlci5nZXREYXRhKCd0ZXh0Jyk7XG4gICAgaWYgKG1vdmUgPT09ICdtb3ZlJykge1xuICAgICAgdGhpcy5fc3ZjLnJlb3JkZXJDb2x1bW4odGhpcy5jb2x1bW4sIHRoaXMuc2hvd0RyYWcgPT09ICdsZWZ0Jyk7XG4gICAgfVxuICAgIHRoaXMuc2hvd0RyYWcgPSBudWxsO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jb2x1bW5zID0gdGhpcy5fc3ZjLmNvbHVtbnM7XG4gICAgdGhpcy5zdGF0ZSA9IHRoaXMuX3N2Yy5zdGF0ZTtcbiAgICB0aGlzLnNvcnRQYXJhbSA9IHRoaXMuc3RhdGUucGlwZShcbiAgICAgIG1hcCgoXykgPT4gU3RhdGVVdGlsLmdldFNvcnRTdGF0ZShfLCB0aGlzLmNvbHVtbikpXG4gICAgKTtcbiAgICB0aGlzLmZpbHRlcmVkID0gdGhpcy5zdGF0ZS5waXBlKFxuICAgICAgbWFwKChfKSA9PiBTdGF0ZVV0aWwuaXNDb2x1bW5GaWx0ZXJlZChfLCB0aGlzLmNvbHVtbikpXG4gICAgKTtcbiAgICB0aGlzLmljb25OYW1lID0gY29tYmluZUxhdGVzdChbdGhpcy5zb3J0UGFyYW0sIHRoaXMuZmlsdGVyZWRdKS5waXBlKFxuICAgICAgbWFwKChkYXRhOiBbU29ydFBhcmFtLCBib29sZWFuXSkgPT4ge1xuICAgICAgICBjb25zdCBbc29ydFBhcmFtLCBmaWx0ZXJlZF0gPSBkYXRhO1xuICAgICAgICBpZiAoc29ydFBhcmFtICYmIGZpbHRlcmVkKSB7XG4gICAgICAgICAgcmV0dXJuIHNvcnRQYXJhbS5hc2MgPyAnZmlsdGVyU29ydFVwQ29sb3InIDogJ2ZpbHRlclNvcnREb3duQ29sb3InO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzb3J0UGFyYW0pIHtcbiAgICAgICAgICByZXR1cm4gc29ydFBhcmFtLmFzYyA/ICdzb3J0VXBDb2xvcicgOiAnc29ydERvd25Db2xvcic7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpbHRlcmVkKSB7XG4gICAgICAgICAgcmV0dXJuICdmaWx0ZXJDb2xvcic7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fYWxpdmUgPSBmYWxzZTtcbiAgfVxuXG4gIHJlc2l6ZVN0YXJ0KGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgcmVjdCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICB0aGlzLl9zdGFydFBvc2l0aW9uID0gcmVjdC54O1xuICAgIHRoaXMuX3N2Yy5sb2NrUHJldmlvdXNDb2x1bW5zKHRoaXMuY29sdW1uLCB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgcmVzaXplUHJvY2VzcyhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9zdGFydFBvc2l0aW9uICYmIGV2ZW50LnBhZ2VYID4gMCkge1xuICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLl9zdGFydFBvc2l0aW9uO1xuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgdGhpcy5fc3ZjLnJlc2l6ZUNvbHVtbihcbiAgICAgICAgICBuZXcgQ29sdW1uUmVzaXplRXZlbnQodGhpcy5jb2x1bW4sIGV2ZW50LnBhZ2VYIC0gcG9zaXRpb24pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX2FwcC50aWNrKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZXNpemVFbmQoKSB7XG4gICAgdGhpcy5fc3RhcnRQb3NpdGlvbiA9IG51bGw7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJyb3cgcm93X2F1dG9cIj5cbiAgPHRldGEtZHJvcGRvd24gW2F1dG9DbG9zZUlnbm9yZV09XCJbJ2VudGVyJywgJ2luc2lkZSddXCJcbiAgICAgICAgICAgICAgICAgW3ZlcnRpY2FsQWxpZ25dPVwidmVydGljYWxBbGlnbi5ib3R0b21cIlxuICAgICAgICAgICAgICAgICBbYXBwZW5kVG9Cb2R5XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgWyhvcGVuKV09XCJkcm9wRG93bk9wZW5cIlxuICAgICAgICAgICAgICAgICBbYWxpZ25dPVwiYWxpZ24ubGVmdFwiXG4gICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gICAgICAgICAgICAgICAgIFtjbGFzcy50YWJsZS1oZWFkX19jZWxsX19tZW51X29wZW5dPVwiZHJvcERvd25PcGVuXCJcbiAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2x1bW4gY29sdW1uX2F1dG8ganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgIDxkaXYgdGV0YURyb3Bkb3duSGVhZFxuICAgICAgICAgZHJhZ2dhYmxlPVwidHJ1ZVwiXG4gICAgICAgICBjbGFzcz1cInRhYmxlLWhlYWRfX2NlbGxfX3dyYXBwZXJcIlxuICAgICAgICAgKGRyYWdzdGFydCk9XCJkcmFnc3RhcnQoJGV2ZW50KVwiXG4gICAgICAgICBbbmdDbGFzc109XCJjb2x1bW4uaGVhZENlbGxDbGFzc1wiPlxuICAgICAgPHRldGEtaGVhZC1jZWxsLWhvc3QgW2NvbHVtbl09XCJjb2x1bW5cIiBbY29sdW1uc109XCJjb2x1bW5zIHwgYXN5bmNcIiBbZGF0YV09XCJkYXRhXCI+PC90ZXRhLWhlYWQtY2VsbC1ob3N0PlxuICAgICAgPHRldGEtaWNvbiAqbmdJZj1cImljb25OYW1lIHwgYXN5bmMgYXMgaWNvblwiXG4gICAgICAgICAgICAgICAgIFtwYWxldHRlXT1cIid0ZXh0J1wiXG4gICAgICAgICAgICAgICAgIFtuYW1lXT1cImljb25cIj48L3RldGEtaWNvbj5cbiAgICA8L2Rpdj5cbiAgICA8dGV0YS1oZWFkLWNlbGwtZHJvcGRvd24gdGV0YURyb3Bkb3duQ29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dIZWFkQ2VsbE1lbnVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGFiVGVtcGxhdGVzXT1cInRhYlRlbXBsYXRlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImRhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnMgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGF0ZV09XCJzdGF0ZSB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhkcm9wRG93bk9wZW4pXT1cImRyb3BEb3duT3BlblwiPjwvdGV0YS1oZWFkLWNlbGwtZHJvcGRvd24+XG4gIDwvdGV0YS1kcm9wZG93bj5cbiAgPGRpdiBjbGFzcz1cImRyb3AtYXJlYVwiXG4gICAgICAgZHJhZ2dhYmxlPVwiZmFsc2VcIlxuICAgICAgIFtjbGFzcy5kcm9wLWFyZWFfbGVmdF09XCJzaG93RHJhZyA9PT0gJ2xlZnQnXCJcbiAgICAgICBbY2xhc3MuZHJvcC1hcmVhX3JpZ2h0XT1cInNob3dEcmFnID09PSAncmlnaHQnXCJcbiAgICAgICAqbmdJZj1cInNob3dEcmFnXCI+PC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJ0YWJsZS1oZWFkX19jZWxsX19yZXNpemVcIlxuICAgICBkcmFnZ2FibGU9XCJmYWxzZVwiXG4gICAgIChkcmFnc3RhcnQpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7JGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgKGRyYWcpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7JGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgW3RldGFSZXNpemVEcmFnXT1cIid2ZXJ0aWNhbCdcIlxuICAgICAocmVzaXplU3RhcnQpPVwicmVzaXplU3RhcnQoJGV2ZW50KVwiXG4gICAgIChyZXNpemVQcm9jZXNzKT1cInJlc2l6ZVByb2Nlc3MoJGV2ZW50KVwiXG4gICAgIChyZXNpemVFbmQpPVwicmVzaXplRW5kKClcIj5cbiAgPGRpdiBjbGFzcz1cInRhYmxlLWhlYWRfX2NlbGxfX3Jlc2l6ZV9kcmFnXCI+PC9kaXY+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjbWFpblRlbXBsYXRlIGxldC1jb2x1bW49XCJjb2x1bW5cIiBsZXQtY29sdW1ucz1cImNvbHVtbnNcIiBsZXQtZGF0YT1cImRhdGFcIiBsZXQtc3RhdGU9XCJzdGF0ZVwiXG4gICAgICAgICAgICAgbGV0LWNsb3NlPVwiY2xvc2VcIj5cbiAgPHRldGEtbWFpbi1kcm9wZG93bi10YWIgW2NvbHVtbl09XCJjb2x1bW5cIiBbc3RhdGVdPVwic3RhdGVcIiBbY2xvc2VdPVwiY2xvc2VcIj48L3RldGEtbWFpbi1kcm9wZG93bi10YWI+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNmaWx0ZXJUZW1wbGF0ZSBsZXQtY29sdW1uPVwiY29sdW1uXCIgbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCIgbGV0LWRhdGE9XCJkYXRhXCIgbGV0LXN0YXRlPVwic3RhdGVcIlxuICAgICAgICAgICAgIGxldC1jbG9zZT1cImNsb3NlXCI+XG4gIDx0ZXRhLWZpbHRlci1kcm9wZG93bi10YWIgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGF0ZV09XCJzdGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Nsb3NlXT1cImNsb3NlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJkYXRhXCI+PC90ZXRhLWZpbHRlci1kcm9wZG93bi10YWI+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNjb2x1bW5zVGVtcGxhdGUgbGV0LWNvbHVtbj1cImNvbHVtblwiIGxldC1jb2x1bW5zPVwiY29sdW1uc1wiIGxldC1kYXRhPVwiZGF0YVwiIGxldC1zdGF0ZT1cInN0YXRlXCJcbiAgICAgICAgICAgICBsZXQtY2xvc2U9XCJjbG9zZVwiPlxuICA8dGV0YS12aXNpYmlsaXR5LWRyb3Bkb3duLXRhYiBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RhdGVdPVwic3RhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xvc2VdPVwiY2xvc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJkYXRhXCI+PC90ZXRhLXZpc2liaWxpdHktZHJvcGRvd24tdGFiPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -3794,9 +3794,6 @@ class TextFieldComponent {
3794
3794
  this.textField = true;
3795
3795
  this.value = '';
3796
3796
  }
3797
- get tabindex() {
3798
- return this.disabled ? null : 0;
3799
- }
3800
3797
  onFocus() {
3801
3798
  if (this.disabled) {
3802
3799
  return;
@@ -3831,7 +3828,7 @@ class TextFieldComponent {
3831
3828
  }
3832
3829
  }
3833
3830
  TextFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: TextFieldComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
3834
- TextFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: TextFieldComponent, selector: "teta-text-field", inputs: { placeholder: "placeholder", leftIconName: "leftIconName", disabled: "disabled", onlyNumber: "onlyNumber", invalid: "invalid" }, host: { listeners: { "click": "onFocus()" }, properties: { "class.text-field_disabled": "this.disabled", "class.text-field_invalid": "this.invalid", "attr.tabindex": "this.tabindex", "class.text-field": "this.textField" } }, providers: [
3831
+ TextFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: TextFieldComponent, selector: "teta-text-field", inputs: { placeholder: "placeholder", leftIconName: "leftIconName", disabled: "disabled", onlyNumber: "onlyNumber", invalid: "invalid" }, host: { listeners: { "click": "onFocus()" }, properties: { "class.text-field_disabled": "this.disabled", "class.text-field_invalid": "this.invalid", "class.text-field": "this.textField" } }, providers: [
3835
3832
  {
3836
3833
  provide: NG_VALUE_ACCESSOR,
3837
3834
  useExisting: forwardRef(() => TextFieldComponent),
@@ -3866,9 +3863,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
3866
3863
  }], input: [{
3867
3864
  type: ViewChild,
3868
3865
  args: ['input', { static: false }]
3869
- }], tabindex: [{
3870
- type: HostBinding,
3871
- args: ['attr.tabindex']
3872
3866
  }], textField: [{
3873
3867
  type: HostBinding,
3874
3868
  args: ['class.text-field']
@@ -6503,10 +6497,10 @@ class PropertyGridItemComponent {
6503
6497
  }
6504
6498
  }
6505
6499
  PropertyGridItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PropertyGridItemComponent, deps: [{ token: i1$1.TranslocoService }], target: i0.ɵɵFactoryTarget.Component });
6506
- PropertyGridItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PropertyGridItemComponent, selector: "teta-property-grid-item", inputs: { column: "column", hideNonEditable: "hideNonEditable", dict: "dict", formGroup: "formGroup", horizontal: "horizontal" }, outputs: { controlValueChange: "controlValueChange" }, ngImport: i0, template: "<teta-input [label]=\"caption\"\n [tetaHint]=\"column.hint\"\n [align]=\"align.left\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n *ngIf=\"column.editable || !hideNonEditable\">\n <ng-container [ngSwitch]=\"column.filterType\">\n <teta-select class=\"row_auto\"\n *ngSwitchCase=\"filterTypeEnum.list\"\n [searchRef]=\"getDict()?.length > 10 ? 'name' : ''\"\n [allowNull]=\"!column.required\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n [options]=\"getDict()\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [multiple]=\"false\"></teta-select>\n <teta-date-picker *ngSwitchCase=\"filterTypeEnum.date\"\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-date-picker>\n <teta-toggle *ngSwitchCase=\"filterTypeEnum.boolean\"\n [formControlName]=\"column.name\">{{column.caption}}</teta-toggle>\n <teta-text-field class=\"row_auto\"\n *ngSwitchDefault\n (focusout)=\"valueChange()\"\n [onlyNumber]=\"column.filterType === filterTypeEnum.number\"\n [placeholder]=\"column.caption\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-text-field>\n </ng-container>\n <div *ngIf=\"controlIsInvalid(column.name)\"\n ngProjectAs=\"message\"\n class=\"color-red-50\">\n {{getError(column)}}\n </div>\n</teta-input>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: DatePickerComponent, selector: "teta-date-picker", inputs: ["disabled", "invalid", "firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minDate", "maxDate", "minYearDate", "maxYearDate", "align", "verticalAlign", "appendToBody", "allowNull", "backdrop", "showTime", "format"] }, { kind: "component", type: SelectComponent, selector: "teta-select", inputs: ["multiple", "options", "invalid", "align", "verticalAlign", "autoClose", "autoCloseIgnore", "disabled", "itemSize", "virtual", "icon", "placeholder", "appendToBody", "allowNull", "valueRef", "textRef", "searchRef"] }, { kind: "component", type: InputComponent, selector: "teta-input", inputs: ["label", "horizontal", "required"] }, { kind: "component", type: TextFieldComponent, selector: "teta-text-field", inputs: ["placeholder", "leftIconName", "disabled", "onlyNumber", "invalid"] }, { kind: "component", type: ToggleComponent, selector: "teta-toggle", inputs: ["palette", "noLabel", "disabled"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: HintDirective, selector: "[tetaHint]", inputs: ["tetaHint", "align", "verticalAlign", "delay"] }] });
6500
+ PropertyGridItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PropertyGridItemComponent, selector: "teta-property-grid-item", inputs: { column: "column", hideNonEditable: "hideNonEditable", dict: "dict", formGroup: "formGroup", horizontal: "horizontal" }, outputs: { controlValueChange: "controlValueChange" }, ngImport: i0, template: "<teta-input [label]=\"caption\"\n [tetaHint]=\"column.hint\"\n [align]=\"align.left\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n [required]=\"column.required\"\n *ngIf=\"column.editable || !hideNonEditable\">\n <ng-container [ngSwitch]=\"column.filterType\">\n <teta-select class=\"row_auto\"\n *ngSwitchCase=\"filterTypeEnum.list\"\n [searchRef]=\"getDict()?.length > 10 ? 'name' : ''\"\n [allowNull]=\"!column.required\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n [options]=\"getDict()\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [multiple]=\"false\"></teta-select>\n <teta-date-picker *ngSwitchCase=\"filterTypeEnum.date\"\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-date-picker>\n <teta-toggle *ngSwitchCase=\"filterTypeEnum.boolean\"\n [formControlName]=\"column.name\">{{column.caption}}</teta-toggle>\n <teta-text-field class=\"row_auto\"\n *ngSwitchDefault\n (focusout)=\"valueChange()\"\n [onlyNumber]=\"column.filterType === filterTypeEnum.number\"\n [placeholder]=\"column.caption\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-text-field>\n </ng-container>\n <div *ngIf=\"controlIsInvalid(column.name)\"\n ngProjectAs=\"message\"\n class=\"color-red-50\">\n {{getError(column)}}\n </div>\n</teta-input>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: DatePickerComponent, selector: "teta-date-picker", inputs: ["disabled", "invalid", "firstDayOfWeek", "disabledDates", "disabledPeriods", "disabledDays", "minDate", "maxDate", "minYearDate", "maxYearDate", "align", "verticalAlign", "appendToBody", "allowNull", "backdrop", "showTime", "format"] }, { kind: "component", type: SelectComponent, selector: "teta-select", inputs: ["multiple", "options", "invalid", "align", "verticalAlign", "autoClose", "autoCloseIgnore", "disabled", "itemSize", "virtual", "icon", "placeholder", "appendToBody", "allowNull", "valueRef", "textRef", "searchRef"] }, { kind: "component", type: InputComponent, selector: "teta-input", inputs: ["label", "horizontal", "required"] }, { kind: "component", type: TextFieldComponent, selector: "teta-text-field", inputs: ["placeholder", "leftIconName", "disabled", "onlyNumber", "invalid"] }, { kind: "component", type: ToggleComponent, selector: "teta-toggle", inputs: ["palette", "noLabel", "disabled"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: HintDirective, selector: "[tetaHint]", inputs: ["tetaHint", "align", "verticalAlign", "delay"] }] });
6507
6501
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PropertyGridItemComponent, decorators: [{
6508
6502
  type: Component,
6509
- args: [{ selector: 'teta-property-grid-item', template: "<teta-input [label]=\"caption\"\n [tetaHint]=\"column.hint\"\n [align]=\"align.left\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n *ngIf=\"column.editable || !hideNonEditable\">\n <ng-container [ngSwitch]=\"column.filterType\">\n <teta-select class=\"row_auto\"\n *ngSwitchCase=\"filterTypeEnum.list\"\n [searchRef]=\"getDict()?.length > 10 ? 'name' : ''\"\n [allowNull]=\"!column.required\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n [options]=\"getDict()\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [multiple]=\"false\"></teta-select>\n <teta-date-picker *ngSwitchCase=\"filterTypeEnum.date\"\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-date-picker>\n <teta-toggle *ngSwitchCase=\"filterTypeEnum.boolean\"\n [formControlName]=\"column.name\">{{column.caption}}</teta-toggle>\n <teta-text-field class=\"row_auto\"\n *ngSwitchDefault\n (focusout)=\"valueChange()\"\n [onlyNumber]=\"column.filterType === filterTypeEnum.number\"\n [placeholder]=\"column.caption\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-text-field>\n </ng-container>\n <div *ngIf=\"controlIsInvalid(column.name)\"\n ngProjectAs=\"message\"\n class=\"color-red-50\">\n {{getError(column)}}\n </div>\n</teta-input>\n" }]
6503
+ args: [{ selector: 'teta-property-grid-item', template: "<teta-input [label]=\"caption\"\n [tetaHint]=\"column.hint\"\n [align]=\"align.left\"\n [formGroup]=\"formGroup\"\n [horizontal]=\"horizontal\"\n [required]=\"column.required\"\n *ngIf=\"column.editable || !hideNonEditable\">\n <ng-container [ngSwitch]=\"column.filterType\">\n <teta-select class=\"row_auto\"\n *ngSwitchCase=\"filterTypeEnum.list\"\n [searchRef]=\"getDict()?.length > 10 ? 'name' : ''\"\n [allowNull]=\"!column.required\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"\n [options]=\"getDict()\"\n [valueRef]=\"'id'\"\n [textRef]=\"'name'\"\n [multiple]=\"false\"></teta-select>\n <teta-date-picker *ngSwitchCase=\"filterTypeEnum.date\"\n class=\"row_auto\"\n [appendToBody]=\"true\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-date-picker>\n <teta-toggle *ngSwitchCase=\"filterTypeEnum.boolean\"\n [formControlName]=\"column.name\">{{column.caption}}</teta-toggle>\n <teta-text-field class=\"row_auto\"\n *ngSwitchDefault\n (focusout)=\"valueChange()\"\n [onlyNumber]=\"column.filterType === filterTypeEnum.number\"\n [placeholder]=\"column.caption\"\n [invalid]=\"controlIsInvalid(column.name)\"\n [formControlName]=\"column.name\"></teta-text-field>\n </ng-container>\n <div *ngIf=\"controlIsInvalid(column.name)\"\n ngProjectAs=\"message\"\n class=\"color-red-50\">\n {{getError(column)}}\n </div>\n</teta-input>\n" }]
6510
6504
  }], ctorParameters: function () { return [{ type: i1$1.TranslocoService }]; }, propDecorators: { column: [{
6511
6505
  type: Input
6512
6506
  }], hideNonEditable: [{
@@ -9045,10 +9039,10 @@ class HeadCellComponent {
9045
9039
  }
9046
9040
  }
9047
9041
  HeadCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: HeadCellComponent, deps: [{ token: TableService }, { token: i0.ApplicationRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
9048
- HeadCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: HeadCellComponent, selector: "teta-head-cell", inputs: { column: "column", showHeadCellMenu: "showHeadCellMenu", data: "data" }, host: { listeners: { "dragstart": "dragstart($event)", "dragenter": "dragenter($event)", "dragover": "allowDrop($event)", "dragleave": "dragleave($event)", "dragend": "dragend($event)", "drop": "drop($event)" }, properties: { "class.table-head__cell_active": "this.dropDownOpen" } }, viewQueries: [{ propertyName: "mainTemplate", first: true, predicate: ["mainTemplate"], descendants: true, static: true }, { propertyName: "filterTemplate", first: true, predicate: ["filterTemplate"], descendants: true, static: true }, { propertyName: "columnsTemplate", first: true, predicate: ["columnsTemplate"], descendants: true, static: true }], ngImport: i0, template: "<div draggable=\"true\" class=\"row row_auto\">\n <teta-dropdown [autoCloseIgnore]=\"['enter', 'inside']\"\n [verticalAlign]=\"verticalAlign.bottom\"\n [appendToBody]=\"false\"\n [(open)]=\"dropDownOpen\"\n [align]=\"align.left\"\n (click)=\"$event.preventDefault()\"\n [class.table-head__cell__menu_open]=\"dropDownOpen\"\n class=\"column column_auto justify-content-center\">\n <div tetaDropdownHead class=\"table-head__cell__wrapper\"\n [ngClass]=\"column.headCellClass\">\n <teta-head-cell-host [column]=\"column\" [columns]=\"columns | async\" [data]=\"data\"></teta-head-cell-host>\n <teta-icon *ngIf=\"iconName | async as icon\"\n [palette]=\"'text'\"\n [name]=\"icon\"></teta-icon>\n </div>\n <teta-head-cell-dropdown tetaDropdownContent\n *ngIf=\"showHeadCellMenu\"\n [tabTemplates]=\"tabTemplates\"\n [data]=\"data\"\n [column]=\"column\"\n [columns]=\"columns | async\"\n [state]=\"state | async\"\n [(dropDownOpen)]=\"dropDownOpen\"></teta-head-cell-dropdown>\n </teta-dropdown>\n <div class=\"drop-area\"\n draggable=\"false\"\n [class.drop-area_left]=\"showDrag === 'left'\"\n [class.drop-area_right]=\"showDrag === 'right'\"\n *ngIf=\"showDrag\"></div>\n</div>\n<div class=\"table-head__cell__resize\"\n draggable=\"false\"\n (dragstart)=\"$event.preventDefault();$event.stopPropagation()\"\n (drag)=\"$event.preventDefault();$event.stopPropagation()\"\n [tetaResizeDrag]=\"'vertical'\"\n (resizeStart)=\"resizeStart($event)\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd()\">\n <div class=\"table-head__cell__resize_drag\"></div>\n</div>\n<ng-template #mainTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-main-dropdown-tab [column]=\"column\" [state]=\"state\" [close]=\"close\"></teta-main-dropdown-tab>\n</ng-template>\n<ng-template #filterTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-filter-dropdown-tab [column]=\"column\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"></teta-filter-dropdown-tab>\n</ng-template>\n<ng-template #columnsTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-visibility-dropdown-tab [column]=\"column\"\n [columns]=\"columns\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"></teta-visibility-dropdown-tab>\n</ng-template>\n", styles: [".drop-area{position:absolute;width:1px;background:var(--color-text-50);top:0;bottom:0;z-index:10}.drop-area_left{left:-1px}.drop-area_right{right:-1px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "component", type: DropdownComponent, selector: "teta-dropdown", exportAs: ["dropdown"] }, { kind: "directive", type: DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { kind: "directive", type: DropdownContentDirective, selector: "[tetaDropdownContent]" }, { kind: "directive", type: ResizeDragDirective, selector: "[tetaResizeDrag]", inputs: ["tetaResizeDrag"], outputs: ["resizeStart", "resizeProcess", "resizeEnd"] }, { kind: "component", type: HeadCellHostComponent, selector: "teta-head-cell-host", inputs: ["column", "columns", "data"] }, { kind: "component", type: HeadCellDropdownComponent, selector: "teta-head-cell-dropdown", inputs: ["columns", "column", "state", "data", "tabTemplates", "dropDownOpen"], outputs: ["dropDownOpenChange"] }, { kind: "component", type: MainDropdownTabComponent, selector: "teta-main-dropdown-tab", inputs: ["columns", "column", "state", "data", "close"] }, { kind: "component", type: FilterDropdownTabComponent, selector: "teta-filter-dropdown-tab", inputs: ["columns", "column", "state", "data", "close"] }, { kind: "component", type: VisibilityDropdownTabComponent, selector: "teta-visibility-dropdown-tab", inputs: ["columns", "column", "state", "data", "close"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9042
+ HeadCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: HeadCellComponent, selector: "teta-head-cell", inputs: { column: "column", showHeadCellMenu: "showHeadCellMenu", data: "data" }, host: { listeners: { "dragenter": "dragenter($event)", "dragover": "allowDrop($event)", "dragleave": "dragleave($event)", "dragend": "dragend($event)", "drop": "drop($event)" }, properties: { "class.table-head__cell_active": "this.dropDownOpen" } }, viewQueries: [{ propertyName: "mainTemplate", first: true, predicate: ["mainTemplate"], descendants: true, static: true }, { propertyName: "filterTemplate", first: true, predicate: ["filterTemplate"], descendants: true, static: true }, { propertyName: "columnsTemplate", first: true, predicate: ["columnsTemplate"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"row row_auto\">\n <teta-dropdown [autoCloseIgnore]=\"['enter', 'inside']\"\n [verticalAlign]=\"verticalAlign.bottom\"\n [appendToBody]=\"false\"\n [(open)]=\"dropDownOpen\"\n [align]=\"align.left\"\n (click)=\"$event.preventDefault()\"\n [class.table-head__cell__menu_open]=\"dropDownOpen\"\n class=\"column column_auto justify-content-center\">\n <div tetaDropdownHead\n draggable=\"true\"\n class=\"table-head__cell__wrapper\"\n (dragstart)=\"dragstart($event)\"\n [ngClass]=\"column.headCellClass\">\n <teta-head-cell-host [column]=\"column\" [columns]=\"columns | async\" [data]=\"data\"></teta-head-cell-host>\n <teta-icon *ngIf=\"iconName | async as icon\"\n [palette]=\"'text'\"\n [name]=\"icon\"></teta-icon>\n </div>\n <teta-head-cell-dropdown tetaDropdownContent\n *ngIf=\"showHeadCellMenu\"\n [tabTemplates]=\"tabTemplates\"\n [data]=\"data\"\n [column]=\"column\"\n [columns]=\"columns | async\"\n [state]=\"state | async\"\n [(dropDownOpen)]=\"dropDownOpen\"></teta-head-cell-dropdown>\n </teta-dropdown>\n <div class=\"drop-area\"\n draggable=\"false\"\n [class.drop-area_left]=\"showDrag === 'left'\"\n [class.drop-area_right]=\"showDrag === 'right'\"\n *ngIf=\"showDrag\"></div>\n</div>\n<div class=\"table-head__cell__resize\"\n draggable=\"false\"\n (dragstart)=\"$event.preventDefault();$event.stopPropagation()\"\n (drag)=\"$event.preventDefault();$event.stopPropagation()\"\n [tetaResizeDrag]=\"'vertical'\"\n (resizeStart)=\"resizeStart($event)\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd()\">\n <div class=\"table-head__cell__resize_drag\"></div>\n</div>\n<ng-template #mainTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-main-dropdown-tab [column]=\"column\" [state]=\"state\" [close]=\"close\"></teta-main-dropdown-tab>\n</ng-template>\n<ng-template #filterTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-filter-dropdown-tab [column]=\"column\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"></teta-filter-dropdown-tab>\n</ng-template>\n<ng-template #columnsTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-visibility-dropdown-tab [column]=\"column\"\n [columns]=\"columns\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"></teta-visibility-dropdown-tab>\n</ng-template>\n", styles: [".drop-area{position:absolute;width:1px;background:var(--color-text-50);top:0;bottom:0;z-index:10}.drop-area_left{left:-1px}.drop-area_right{right:-1px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "component", type: DropdownComponent, selector: "teta-dropdown", exportAs: ["dropdown"] }, { kind: "directive", type: DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { kind: "directive", type: DropdownContentDirective, selector: "[tetaDropdownContent]" }, { kind: "directive", type: ResizeDragDirective, selector: "[tetaResizeDrag]", inputs: ["tetaResizeDrag"], outputs: ["resizeStart", "resizeProcess", "resizeEnd"] }, { kind: "component", type: HeadCellHostComponent, selector: "teta-head-cell-host", inputs: ["column", "columns", "data"] }, { kind: "component", type: HeadCellDropdownComponent, selector: "teta-head-cell-dropdown", inputs: ["columns", "column", "state", "data", "tabTemplates", "dropDownOpen"], outputs: ["dropDownOpenChange"] }, { kind: "component", type: MainDropdownTabComponent, selector: "teta-main-dropdown-tab", inputs: ["columns", "column", "state", "data", "close"] }, { kind: "component", type: FilterDropdownTabComponent, selector: "teta-filter-dropdown-tab", inputs: ["columns", "column", "state", "data", "close"] }, { kind: "component", type: VisibilityDropdownTabComponent, selector: "teta-visibility-dropdown-tab", inputs: ["columns", "column", "state", "data", "close"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9049
9043
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: HeadCellComponent, decorators: [{
9050
9044
  type: Component,
9051
- args: [{ selector: 'teta-head-cell', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div draggable=\"true\" class=\"row row_auto\">\n <teta-dropdown [autoCloseIgnore]=\"['enter', 'inside']\"\n [verticalAlign]=\"verticalAlign.bottom\"\n [appendToBody]=\"false\"\n [(open)]=\"dropDownOpen\"\n [align]=\"align.left\"\n (click)=\"$event.preventDefault()\"\n [class.table-head__cell__menu_open]=\"dropDownOpen\"\n class=\"column column_auto justify-content-center\">\n <div tetaDropdownHead class=\"table-head__cell__wrapper\"\n [ngClass]=\"column.headCellClass\">\n <teta-head-cell-host [column]=\"column\" [columns]=\"columns | async\" [data]=\"data\"></teta-head-cell-host>\n <teta-icon *ngIf=\"iconName | async as icon\"\n [palette]=\"'text'\"\n [name]=\"icon\"></teta-icon>\n </div>\n <teta-head-cell-dropdown tetaDropdownContent\n *ngIf=\"showHeadCellMenu\"\n [tabTemplates]=\"tabTemplates\"\n [data]=\"data\"\n [column]=\"column\"\n [columns]=\"columns | async\"\n [state]=\"state | async\"\n [(dropDownOpen)]=\"dropDownOpen\"></teta-head-cell-dropdown>\n </teta-dropdown>\n <div class=\"drop-area\"\n draggable=\"false\"\n [class.drop-area_left]=\"showDrag === 'left'\"\n [class.drop-area_right]=\"showDrag === 'right'\"\n *ngIf=\"showDrag\"></div>\n</div>\n<div class=\"table-head__cell__resize\"\n draggable=\"false\"\n (dragstart)=\"$event.preventDefault();$event.stopPropagation()\"\n (drag)=\"$event.preventDefault();$event.stopPropagation()\"\n [tetaResizeDrag]=\"'vertical'\"\n (resizeStart)=\"resizeStart($event)\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd()\">\n <div class=\"table-head__cell__resize_drag\"></div>\n</div>\n<ng-template #mainTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-main-dropdown-tab [column]=\"column\" [state]=\"state\" [close]=\"close\"></teta-main-dropdown-tab>\n</ng-template>\n<ng-template #filterTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-filter-dropdown-tab [column]=\"column\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"></teta-filter-dropdown-tab>\n</ng-template>\n<ng-template #columnsTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-visibility-dropdown-tab [column]=\"column\"\n [columns]=\"columns\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"></teta-visibility-dropdown-tab>\n</ng-template>\n", styles: [".drop-area{position:absolute;width:1px;background:var(--color-text-50);top:0;bottom:0;z-index:10}.drop-area_left{left:-1px}.drop-area_right{right:-1px}\n"] }]
9045
+ args: [{ selector: 'teta-head-cell', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"row row_auto\">\n <teta-dropdown [autoCloseIgnore]=\"['enter', 'inside']\"\n [verticalAlign]=\"verticalAlign.bottom\"\n [appendToBody]=\"false\"\n [(open)]=\"dropDownOpen\"\n [align]=\"align.left\"\n (click)=\"$event.preventDefault()\"\n [class.table-head__cell__menu_open]=\"dropDownOpen\"\n class=\"column column_auto justify-content-center\">\n <div tetaDropdownHead\n draggable=\"true\"\n class=\"table-head__cell__wrapper\"\n (dragstart)=\"dragstart($event)\"\n [ngClass]=\"column.headCellClass\">\n <teta-head-cell-host [column]=\"column\" [columns]=\"columns | async\" [data]=\"data\"></teta-head-cell-host>\n <teta-icon *ngIf=\"iconName | async as icon\"\n [palette]=\"'text'\"\n [name]=\"icon\"></teta-icon>\n </div>\n <teta-head-cell-dropdown tetaDropdownContent\n *ngIf=\"showHeadCellMenu\"\n [tabTemplates]=\"tabTemplates\"\n [data]=\"data\"\n [column]=\"column\"\n [columns]=\"columns | async\"\n [state]=\"state | async\"\n [(dropDownOpen)]=\"dropDownOpen\"></teta-head-cell-dropdown>\n </teta-dropdown>\n <div class=\"drop-area\"\n draggable=\"false\"\n [class.drop-area_left]=\"showDrag === 'left'\"\n [class.drop-area_right]=\"showDrag === 'right'\"\n *ngIf=\"showDrag\"></div>\n</div>\n<div class=\"table-head__cell__resize\"\n draggable=\"false\"\n (dragstart)=\"$event.preventDefault();$event.stopPropagation()\"\n (drag)=\"$event.preventDefault();$event.stopPropagation()\"\n [tetaResizeDrag]=\"'vertical'\"\n (resizeStart)=\"resizeStart($event)\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd()\">\n <div class=\"table-head__cell__resize_drag\"></div>\n</div>\n<ng-template #mainTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-main-dropdown-tab [column]=\"column\" [state]=\"state\" [close]=\"close\"></teta-main-dropdown-tab>\n</ng-template>\n<ng-template #filterTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-filter-dropdown-tab [column]=\"column\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"></teta-filter-dropdown-tab>\n</ng-template>\n<ng-template #columnsTemplate let-column=\"column\" let-columns=\"columns\" let-data=\"data\" let-state=\"state\"\n let-close=\"close\">\n <teta-visibility-dropdown-tab [column]=\"column\"\n [columns]=\"columns\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"></teta-visibility-dropdown-tab>\n</ng-template>\n", styles: [".drop-area{position:absolute;width:1px;background:var(--color-text-50);top:0;bottom:0;z-index:10}.drop-area_left{left:-1px}.drop-area_right{right:-1px}\n"] }]
9052
9046
  }], ctorParameters: function () { return [{ type: TableService }, { type: i0.ApplicationRef }, { type: i0.ElementRef }]; }, propDecorators: { column: [{
9053
9047
  type: Input
9054
9048
  }], showHeadCellMenu: [{
@@ -9067,9 +9061,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
9067
9061
  }], columnsTemplate: [{
9068
9062
  type: ViewChild,
9069
9063
  args: ['columnsTemplate', { static: true }]
9070
- }], dragstart: [{
9071
- type: HostListener,
9072
- args: ['dragstart', ['$event']]
9073
9064
  }], dragenter: [{
9074
9065
  type: HostListener,
9075
9066
  args: ['dragenter', ['$event']]