@porscheinformatik/material-addons 17.3.3 → 17.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -42,7 +42,7 @@ export class CardComponent {
42
42
  this.additionalAction.emit(undefined);
43
43
  }
44
44
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: CardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
45
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: CardComponent, selector: "mad-card", inputs: { cancelDisabled: "cancelDisabled", cancelText: "cancelText", readonly: "readonly", editText: "editText", expandable: "expandable", expanded: "expanded", saveDisabled: "saveDisabled", saveText: "saveText", title: "title", editMode: "editMode", additionalActionIcon: "additionalActionIcon", additionalActionText: "additionalActionText" }, outputs: { edit: "edit", cancel: "cancel", save: "save", additionalAction: "additionalAction" }, ngImport: i0, template: "<mat-card>\n <mat-card-header class=\"header\">\n <mat-card-title-group class=\"center\">\n <mat-card-title class=\"small-title-container\">{{ title }}</mat-card-title>\n <div class=\"top-right-icons\">\n <mad-icon-button data-testid=\"collapse-btn\" (click)=\"toggleCollapse()\" *ngIf=\"expandable && !editMode\">\n <mat-icon [@rotateIcon]=\"!expanded\">keyboard_arrow_down</mat-icon>\n </mad-icon-button>\n <mad-icon-button\n data-testid=\"additional-btn\"\n (click)=\"additionalActionClicked()\"\n *ngIf=\"additionalActionIcon\"\n [title]=\"additionalActionText\"\n type=\"button\"\n >\n <mat-icon>{{ additionalActionIcon }}</mat-icon>\n </mad-icon-button>\n <mad-icon-button data-testid=\"edit-btn\" [title]=\"editText\" (click)=\"onEdit()\" *ngIf=\"!readonly && !editMode\">\n <mat-icon>create</mat-icon>\n </mad-icon-button>\n </div>\n </mat-card-title-group>\n </mat-card-header>\n <mat-card-content [@collapseExpandAnimation] *ngIf=\"expanded\">\n <ng-content></ng-content>\n </mat-card-content>\n <mat-card-actions *ngIf=\"!readonly && editMode\">\n <mad-primary-button data-testid=\"save-btn\" [title]=\"saveText\" [disabled]=\"saveDisabled\" (throttleClick)=\"onSave()\" madThrottleClick>\n {{ saveText }}\n </mad-primary-button>\n <mad-outline-button data-testid=\"cancel-btn\" [title]=\"cancelText\" [disabled]=\"cancelDisabled\" (click)=\"onCancel()\">\n {{ cancelText }}\n </mad-outline-button>\n </mat-card-actions>\n</mat-card>\n", styles: [".top-right-icons{text-align:end;width:-moz-fit-content;width:fit-content}.center{display:flex;align-items:center}.header{height:48px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i2.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i2.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i2.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i2.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: i2.MatCardTitleGroup, selector: "mat-card-title-group" }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.PrimaryButtonComponent, selector: "mad-primary-button", inputs: ["type", "disabled", "title"] }, { kind: "component", type: i5.OutlineButtonComponent, selector: "mad-outline-button", inputs: ["type", "disabled", "title", "color"] }, { kind: "component", type: i6.IconButtonComponent, selector: "mad-icon-button", inputs: ["type", "disabled", "title"] }, { kind: "directive", type: i7.ThrottleClickDirective, selector: "[madThrottleClick]", inputs: ["throttleTime"], outputs: ["throttleClick"] }], animations: [
45
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: CardComponent, selector: "mad-card", inputs: { cancelDisabled: "cancelDisabled", cancelText: "cancelText", readonly: "readonly", editText: "editText", expandable: "expandable", expanded: "expanded", saveDisabled: "saveDisabled", saveText: "saveText", title: "title", editMode: "editMode", additionalActionIcon: "additionalActionIcon", additionalActionText: "additionalActionText" }, outputs: { edit: "edit", cancel: "cancel", save: "save", additionalAction: "additionalAction" }, ngImport: i0, template: "<mat-card>\n <mat-card-header class=\"header\" *ngIf=\"title || expandable\">\n <mat-card-title-group class=\"center\">\n <mat-card-title class=\"small-title-container\">{{ title }}</mat-card-title>\n <div class=\"top-right-icons\">\n <mad-icon-button data-testid=\"collapse-btn\" (click)=\"toggleCollapse()\" *ngIf=\"expandable && !editMode\">\n <mat-icon [@rotateIcon]=\"!expanded\">keyboard_arrow_down</mat-icon>\n </mad-icon-button>\n <mad-icon-button\n data-testid=\"additional-btn\"\n (click)=\"additionalActionClicked()\"\n *ngIf=\"additionalActionIcon\"\n [title]=\"additionalActionText\"\n type=\"button\"\n >\n <mat-icon>{{ additionalActionIcon }}</mat-icon>\n </mad-icon-button>\n <mad-icon-button data-testid=\"edit-btn\" [title]=\"editText\" (click)=\"onEdit()\" *ngIf=\"!readonly && !editMode\">\n <mat-icon>create</mat-icon>\n </mad-icon-button>\n </div>\n </mat-card-title-group>\n </mat-card-header>\n <mat-card-content [@collapseExpandAnimation] *ngIf=\"expanded\">\n <ng-content></ng-content>\n </mat-card-content>\n <mat-card-actions *ngIf=\"!readonly && editMode\">\n <mad-primary-button data-testid=\"save-btn\" [title]=\"saveText\" [disabled]=\"saveDisabled\" (throttleClick)=\"onSave()\" madThrottleClick>\n {{ saveText }}\n </mad-primary-button>\n <mad-outline-button data-testid=\"cancel-btn\" [title]=\"cancelText\" [disabled]=\"cancelDisabled\" (click)=\"onCancel()\">\n {{ cancelText }}\n </mad-outline-button>\n </mat-card-actions>\n</mat-card>\n", styles: [".top-right-icons{text-align:end;width:-moz-fit-content;width:fit-content}.center{display:flex;align-items:center}.header{height:48px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i2.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i2.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i2.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i2.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: i2.MatCardTitleGroup, selector: "mat-card-title-group" }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.PrimaryButtonComponent, selector: "mad-primary-button", inputs: ["type", "disabled", "title"] }, { kind: "component", type: i5.OutlineButtonComponent, selector: "mad-outline-button", inputs: ["type", "disabled", "title", "color"] }, { kind: "component", type: i6.IconButtonComponent, selector: "mad-icon-button", inputs: ["type", "disabled", "title"] }, { kind: "directive", type: i7.ThrottleClickDirective, selector: "[madThrottleClick]", inputs: ["throttleTime"], outputs: ["throttleClick"] }], animations: [
46
46
  trigger('collapseExpandAnimation', [
47
47
  transition(':enter', [
48
48
  style({ opacity: 0, height: 0, overflow: 'hidden' }),
@@ -92,7 +92,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
92
92
  transition('true => false', animate('100ms ease-out')),
93
93
  transition('false => true', animate('100ms ease-in')),
94
94
  ]),
95
- ], template: "<mat-card>\n <mat-card-header class=\"header\">\n <mat-card-title-group class=\"center\">\n <mat-card-title class=\"small-title-container\">{{ title }}</mat-card-title>\n <div class=\"top-right-icons\">\n <mad-icon-button data-testid=\"collapse-btn\" (click)=\"toggleCollapse()\" *ngIf=\"expandable && !editMode\">\n <mat-icon [@rotateIcon]=\"!expanded\">keyboard_arrow_down</mat-icon>\n </mad-icon-button>\n <mad-icon-button\n data-testid=\"additional-btn\"\n (click)=\"additionalActionClicked()\"\n *ngIf=\"additionalActionIcon\"\n [title]=\"additionalActionText\"\n type=\"button\"\n >\n <mat-icon>{{ additionalActionIcon }}</mat-icon>\n </mad-icon-button>\n <mad-icon-button data-testid=\"edit-btn\" [title]=\"editText\" (click)=\"onEdit()\" *ngIf=\"!readonly && !editMode\">\n <mat-icon>create</mat-icon>\n </mad-icon-button>\n </div>\n </mat-card-title-group>\n </mat-card-header>\n <mat-card-content [@collapseExpandAnimation] *ngIf=\"expanded\">\n <ng-content></ng-content>\n </mat-card-content>\n <mat-card-actions *ngIf=\"!readonly && editMode\">\n <mad-primary-button data-testid=\"save-btn\" [title]=\"saveText\" [disabled]=\"saveDisabled\" (throttleClick)=\"onSave()\" madThrottleClick>\n {{ saveText }}\n </mad-primary-button>\n <mad-outline-button data-testid=\"cancel-btn\" [title]=\"cancelText\" [disabled]=\"cancelDisabled\" (click)=\"onCancel()\">\n {{ cancelText }}\n </mad-outline-button>\n </mat-card-actions>\n</mat-card>\n", styles: [".top-right-icons{text-align:end;width:-moz-fit-content;width:fit-content}.center{display:flex;align-items:center}.header{height:48px}\n"] }]
95
+ ], template: "<mat-card>\n <mat-card-header class=\"header\" *ngIf=\"title || expandable\">\n <mat-card-title-group class=\"center\">\n <mat-card-title class=\"small-title-container\">{{ title }}</mat-card-title>\n <div class=\"top-right-icons\">\n <mad-icon-button data-testid=\"collapse-btn\" (click)=\"toggleCollapse()\" *ngIf=\"expandable && !editMode\">\n <mat-icon [@rotateIcon]=\"!expanded\">keyboard_arrow_down</mat-icon>\n </mad-icon-button>\n <mad-icon-button\n data-testid=\"additional-btn\"\n (click)=\"additionalActionClicked()\"\n *ngIf=\"additionalActionIcon\"\n [title]=\"additionalActionText\"\n type=\"button\"\n >\n <mat-icon>{{ additionalActionIcon }}</mat-icon>\n </mad-icon-button>\n <mad-icon-button data-testid=\"edit-btn\" [title]=\"editText\" (click)=\"onEdit()\" *ngIf=\"!readonly && !editMode\">\n <mat-icon>create</mat-icon>\n </mad-icon-button>\n </div>\n </mat-card-title-group>\n </mat-card-header>\n <mat-card-content [@collapseExpandAnimation] *ngIf=\"expanded\">\n <ng-content></ng-content>\n </mat-card-content>\n <mat-card-actions *ngIf=\"!readonly && editMode\">\n <mad-primary-button data-testid=\"save-btn\" [title]=\"saveText\" [disabled]=\"saveDisabled\" (throttleClick)=\"onSave()\" madThrottleClick>\n {{ saveText }}\n </mad-primary-button>\n <mad-outline-button data-testid=\"cancel-btn\" [title]=\"cancelText\" [disabled]=\"cancelDisabled\" (click)=\"onCancel()\">\n {{ cancelText }}\n </mad-outline-button>\n </mat-card-actions>\n</mat-card>\n", styles: [".top-right-icons{text-align:end;width:-moz-fit-content;width:fit-content}.center{display:flex;align-items:center}.header{height:48px}\n"] }]
96
96
  }], propDecorators: { cancelDisabled: [{
97
97
  type: Input
98
98
  }], cancelText: [{
@@ -126,4 +126,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
126
126
  }], additionalAction: [{
127
127
  type: Output
128
128
  }] } });
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9jYXJkL2NhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvY2FyZC9jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7O0FBcUNqRixNQUFNLE9BQU8sYUFBYTtJQW5DMUI7UUFvQ1csbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsZUFBVSxHQUFHLFNBQVMsQ0FBQztRQUN2QixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLGFBQVEsR0FBRyxTQUFTLENBQUM7UUFDckIsZUFBVSxHQUFHLElBQUksQ0FBQztRQUNsQixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLGFBQVEsR0FBRyxTQUFTLENBQUM7UUFFckIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQix5QkFBb0IsR0FBRyxFQUFFLENBQUM7UUFDekIsU0FBSSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDMUIsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDNUIsU0FBSSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDMUIscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztLQXNCakQ7SUFwQkMsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FB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QUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQzs0QkFDdEQsVUFBVSxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQzs0QkFDdEQsVUFBVSxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7eUJBQ3RELENBQUM7cUJBQ0g7OEJBSVEsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0ksSUFBSTtzQkFBYixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxJQUFJO3NCQUFiLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYWQtY2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ2NvbGxhcHNlRXhwYW5kQW5pbWF0aW9uJywgW1xuICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuICAgICAgICBzdHlsZSh7IG9wYWNpdHk6IDAsIGhlaWdodDogMCwgb3ZlcmZsb3c6ICdoaWRkZW4nIH0pLFxuICAgICAgICBhbmltYXRlKFxuICAgICAgICAgICcxMDBtcycsXG4gICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgICAgICAgIGhlaWdodDogJyonLFxuICAgICAgICAgIH0pLFxuICAgICAgICApLFxuICAgICAgXSksXG4gICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbXG4gICAgICAgIHN0eWxlKHsgb3BhY2l0eTogMSwgaGVpZ2h0OiAnKicsIG92ZXJmbG93OiAnaGlkZGVuJyB9KSxcbiAgICAgICAgYW5pbWF0ZShcbiAgICAgICAgICAnMTAwbXMnLFxuICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAsXG4gICAgICAgICAgICBoZWlnaHQ6IDAsXG4gICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgICBdKSxcbiAgICBdKSxcbiAgICB0cmlnZ2VyKCdyb3RhdGVJY29uJywgW1xuICAgICAgc3RhdGUoJ3RydWUnLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3JvdGF0ZSgwKScgfSkpLFxuICAgICAgc3RhdGUoJ2ZhbHNlJywgc3R5bGUoeyB0cmFuc2Zvcm06ICdyb3RhdGUoMTgwZGVnKScgfSkpLFxuICAgICAgdHJhbnNpdGlvbigndHJ1ZSA9PiBmYWxzZScsIGFuaW1hdGUoJzEwMG1zIGVhc2Utb3V0JykpLFxuICAgICAgdHJhbnNpdGlvbignZmFsc2UgPT4gdHJ1ZScsIGFuaW1hdGUoJzEwMG1zIGVhc2UtaW4nKSksXG4gICAgXSksXG4gIF0sXG4gIHN0eWxlVXJsczogWycuL2NhcmQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FyZENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGNhbmNlbERpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNhbmNlbFRleHQgPSAnTk9UIFNFVCc7XG4gIEBJbnB1dCgpIHJlYWRvbmx5ID0gdHJ1ZTtcbiAgQElucHV0KCkgZWRpdFRleHQgPSAnTk9UIFNFVCc7XG4gIEBJbnB1dCgpIGV4cGFuZGFibGUgPSB0cnVlO1xuICBASW5wdXQoKSBleHBhbmRlZCA9IHRydWU7XG4gIEBJbnB1dCgpIHNhdmVEaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBzYXZlVGV4dCA9ICdOT1QgU0VUJztcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcbiAgQElucHV0KCkgZWRpdE1vZGUgPSBmYWxzZTtcbiAgQElucHV0KCkgYWRkaXRpb25hbEFjdGlvbkljb246IHN0cmluZztcbiAgQElucHV0KCkgYWRkaXRpb25hbEFjdGlvblRleHQgPSAnJztcbiAgQE91dHB1dCgpIGVkaXQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBjYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBzYXZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgYWRkaXRpb25hbEFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBvbkNhbmNlbCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhbmNlbC5lbWl0KHVuZGVmaW5lZCk7XG4gIH1cblxuICBvbkVkaXQoKTogdm9pZCB7XG4gICAgdGhpcy5lZGl0LmVtaXQodW5kZWZpbmVkKTtcbiAgICB0aGlzLmV4cGFuZGVkID0gdHJ1ZTtcbiAgfVxuXG4gIG9uU2F2ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNhdmUuZW1pdCh1bmRlZmluZWQpO1xuICB9XG5cbiAgdG9nZ2xlQ29sbGFwc2UoKTogdm9pZCB7XG4gICAgdGhpcy5leHBhbmRlZCA9ICF0aGlzLmV4cGFuZGVkO1xuICB9XG5cbiAgYWRkaXRpb25hbEFjdGlvbkNsaWNrZWQoKTogdm9pZCB7XG4gICAgdGhpcy5hZGRpdGlvbmFsQWN0aW9uLmVtaXQodW5kZWZpbmVkKTtcbiAgfVxufVxuIiwiPG1hdC1jYXJkPlxuICA8bWF0LWNhcmQtaGVhZGVyIGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgPG1hdC1jYXJkLXRpdGxlLWdyb3VwIGNsYXNzPVwiY2VudGVyXCI+XG4gICAgICA8bWF0LWNhcmQtdGl0bGUgY2xhc3M9XCJzbWFsbC10aXRsZS1jb250YWluZXJcIj57eyB0aXRsZSB9fTwvbWF0LWNhcmQtdGl0bGU+XG4gICAgICA8ZGl2IGNsYXNzPVwidG9wLXJpZ2h0LWljb25zXCI+XG4gICAgICAgIDxtYWQtaWNvbi1idXR0b24gZGF0YS10ZXN0aWQ9XCJjb2xsYXBzZS1idG5cIiAoY2xpY2spPVwidG9nZ2xlQ29sbGFwc2UoKVwiICpuZ0lmPVwiZXhwYW5kYWJsZSAmJiAhZWRpdE1vZGVcIj5cbiAgICAgICAgICA8bWF0LWljb24gW0Byb3RhdGVJY29uXT1cIiFleHBhbmRlZFwiPmtleWJvYXJkX2Fycm93X2Rvd248L21hdC1pY29uPlxuICAgICAgICA8L21hZC1pY29uLWJ1dHRvbj5cbiAgICAgICAgPG1hZC1pY29uLWJ1dHRvblxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwiYWRkaXRpb25hbC1idG5cIlxuICAgICAgICAgIChjbGljayk9XCJhZGRpdGlvbmFsQWN0aW9uQ2xpY2tlZCgpXCJcbiAgICAgICAgICAqbmdJZj1cImFkZGl0aW9uYWxBY3Rpb25JY29uXCJcbiAgICAgICAgICBbdGl0bGVdPVwiYWRkaXRpb25hbEFjdGlvblRleHRcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICA+XG4gICAgICAgICAgPG1hdC1pY29uPnt7IGFkZGl0aW9uYWxBY3Rpb25JY29uIH19PC9tYXQtaWNvbj5cbiAgICAgICAgPC9tYWQtaWNvbi1idXR0b24+XG4gICAgICAgIDxtYWQtaWNvbi1idXR0b24gZGF0YS10ZXN0aWQ9XCJlZGl0LWJ0blwiIFt0aXRsZV09XCJlZGl0VGV4dFwiIChjbGljayk9XCJvbkVkaXQoKVwiICpuZ0lmPVwiIXJlYWRvbmx5ICYmICFlZGl0TW9kZVwiPlxuICAgICAgICAgIDxtYXQtaWNvbj5jcmVhdGU8L21hdC1pY29uPlxuICAgICAgICA8L21hZC1pY29uLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbWF0LWNhcmQtdGl0bGUtZ3JvdXA+XG4gIDwvbWF0LWNhcmQtaGVhZGVyPlxuICA8bWF0LWNhcmQtY29udGVudCBbQGNvbGxhcHNlRXhwYW5kQW5pbWF0aW9uXSAqbmdJZj1cImV4cGFuZGVkXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gIDxtYXQtY2FyZC1hY3Rpb25zICpuZ0lmPVwiIXJlYWRvbmx5ICYmIGVkaXRNb2RlXCI+XG4gICAgPG1hZC1wcmltYXJ5LWJ1dHRvbiBkYXRhLXRlc3RpZD1cInNhdmUtYnRuXCIgW3RpdGxlXT1cInNhdmVUZXh0XCIgW2Rpc2FibGVkXT1cInNhdmVEaXNhYmxlZFwiICh0aHJvdHRsZUNsaWNrKT1cIm9uU2F2ZSgpXCIgbWFkVGhyb3R0bGVDbGljaz5cbiAgICAgIHt7IHNhdmVUZXh0IH19XG4gICAgPC9tYWQtcHJpbWFyeS1idXR0b24+XG4gICAgPG1hZC1vdXRsaW5lLWJ1dHRvbiBkYXRhLXRlc3RpZD1cImNhbmNlbC1idG5cIiBbdGl0bGVdPVwiY2FuY2VsVGV4dFwiIFtkaXNhYmxlZF09XCJjYW5jZWxEaXNhYmxlZFwiIChjbGljayk9XCJvbkNhbmNlbCgpXCI+XG4gICAgICB7eyBjYW5jZWxUZXh0IH19XG4gICAgPC9tYWQtb3V0bGluZS1idXR0b24+XG4gIDwvbWF0LWNhcmQtYWN0aW9ucz5cbjwvbWF0LWNhcmQ+XG4iXX0=
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9jYXJkL2NhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvY2FyZC9jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7O0FBcUMvRSxNQUFNLE9BQU8sYUFBYTtJQW5DMUI7UUFvQ1csbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsZUFBVSxHQUFHLFNBQVMsQ0FBQztRQUN2QixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLGFBQVEsR0FBRyxTQUFTLENBQUM7UUFDckIsZUFBVSxHQUFHLElBQUksQ0FBQztRQUNsQixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLGFBQVEsR0FBRyxTQUFTLENBQUM7UUFFckIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQix5QkFBb0IsR0FBRyxFQUFFLENBQUM7UUFDekIsU0FBSSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDMUIsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDNUIsU0FBSSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDMUIscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztLQXNCakQ7SUFwQkMsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FB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QUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQzs0QkFDdEQsVUFBVSxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQzs0QkFDdEQsVUFBVSxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7eUJBQ3RELENBQUM7cUJBQ0g7OEJBSVEsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0ksSUFBSTtzQkFBYixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxJQUFJO3NCQUFiLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2FuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlcn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hZC1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignY29sbGFwc2VFeHBhbmRBbmltYXRpb24nLCBbXG4gICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXG4gICAgICAgIHN0eWxlKHsgb3BhY2l0eTogMCwgaGVpZ2h0OiAwLCBvdmVyZmxvdzogJ2hpZGRlbicgfSksXG4gICAgICAgIGFuaW1hdGUoXG4gICAgICAgICAgJzEwMG1zJyxcbiAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICBvcGFjaXR5OiAxLFxuICAgICAgICAgICAgaGVpZ2h0OiAnKicsXG4gICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgICBdKSxcbiAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcbiAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAxLCBoZWlnaHQ6ICcqJywgb3ZlcmZsb3c6ICdoaWRkZW4nIH0pLFxuICAgICAgICBhbmltYXRlKFxuICAgICAgICAgICcxMDBtcycsXG4gICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgICAgIGhlaWdodDogMCxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKSxcbiAgICAgIF0pLFxuICAgIF0pLFxuICAgIHRyaWdnZXIoJ3JvdGF0ZUljb24nLCBbXG4gICAgICBzdGF0ZSgndHJ1ZScsIHN0eWxlKHsgdHJhbnNmb3JtOiAncm90YXRlKDApJyB9KSksXG4gICAgICBzdGF0ZSgnZmFsc2UnLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3JvdGF0ZSgxODBkZWcpJyB9KSksXG4gICAgICB0cmFuc2l0aW9uKCd0cnVlID0+IGZhbHNlJywgYW5pbWF0ZSgnMTAwbXMgZWFzZS1vdXQnKSksXG4gICAgICB0cmFuc2l0aW9uKCdmYWxzZSA9PiB0cnVlJywgYW5pbWF0ZSgnMTAwbXMgZWFzZS1pbicpKSxcbiAgICBdKSxcbiAgXSxcbiAgc3R5bGVVcmxzOiBbJy4vY2FyZC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDYXJkQ29tcG9uZW50IHtcbiAgQElucHV0KCkgY2FuY2VsRGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgY2FuY2VsVGV4dCA9ICdOT1QgU0VUJztcbiAgQElucHV0KCkgcmVhZG9ubHkgPSB0cnVlO1xuICBASW5wdXQoKSBlZGl0VGV4dCA9ICdOT1QgU0VUJztcbiAgQElucHV0KCkgZXhwYW5kYWJsZSA9IHRydWU7XG4gIEBJbnB1dCgpIGV4cGFuZGVkID0gdHJ1ZTtcbiAgQElucHV0KCkgc2F2ZURpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNhdmVUZXh0ID0gJ05PVCBTRVQnO1xuICBASW5wdXQoKSB0aXRsZT86IHN0cmluZztcbiAgQElucHV0KCkgZWRpdE1vZGUgPSBmYWxzZTtcbiAgQElucHV0KCkgYWRkaXRpb25hbEFjdGlvbkljb246IHN0cmluZztcbiAgQElucHV0KCkgYWRkaXRpb25hbEFjdGlvblRleHQgPSAnJztcbiAgQE91dHB1dCgpIGVkaXQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBjYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBzYXZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgYWRkaXRpb25hbEFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBvbkNhbmNlbCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhbmNlbC5lbWl0KHVuZGVmaW5lZCk7XG4gIH1cblxuICBvbkVkaXQoKTogdm9pZCB7XG4gICAgdGhpcy5lZGl0LmVtaXQodW5kZWZpbmVkKTtcbiAgICB0aGlzLmV4cGFuZGVkID0gdHJ1ZTtcbiAgfVxuXG4gIG9uU2F2ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNhdmUuZW1pdCh1bmRlZmluZWQpO1xuICB9XG5cbiAgdG9nZ2xlQ29sbGFwc2UoKTogdm9pZCB7XG4gICAgdGhpcy5leHBhbmRlZCA9ICF0aGlzLmV4cGFuZGVkO1xuICB9XG5cbiAgYWRkaXRpb25hbEFjdGlvbkNsaWNrZWQoKTogdm9pZCB7XG4gICAgdGhpcy5hZGRpdGlvbmFsQWN0aW9uLmVtaXQodW5kZWZpbmVkKTtcbiAgfVxufVxuIiwiPG1hdC1jYXJkPlxuICA8bWF0LWNhcmQtaGVhZGVyIGNsYXNzPVwiaGVhZGVyXCIgKm5nSWY9XCJ0aXRsZSB8fCBleHBhbmRhYmxlXCI+XG4gICAgPG1hdC1jYXJkLXRpdGxlLWdyb3VwIGNsYXNzPVwiY2VudGVyXCI+XG4gICAgICA8bWF0LWNhcmQtdGl0bGUgY2xhc3M9XCJzbWFsbC10aXRsZS1jb250YWluZXJcIj57eyB0aXRsZSB9fTwvbWF0LWNhcmQtdGl0bGU+XG4gICAgICA8ZGl2IGNsYXNzPVwidG9wLXJpZ2h0LWljb25zXCI+XG4gICAgICAgIDxtYWQtaWNvbi1idXR0b24gZGF0YS10ZXN0aWQ9XCJjb2xsYXBzZS1idG5cIiAoY2xpY2spPVwidG9nZ2xlQ29sbGFwc2UoKVwiICpuZ0lmPVwiZXhwYW5kYWJsZSAmJiAhZWRpdE1vZGVcIj5cbiAgICAgICAgICA8bWF0LWljb24gW0Byb3RhdGVJY29uXT1cIiFleHBhbmRlZFwiPmtleWJvYXJkX2Fycm93X2Rvd248L21hdC1pY29uPlxuICAgICAgICA8L21hZC1pY29uLWJ1dHRvbj5cbiAgICAgICAgPG1hZC1pY29uLWJ1dHRvblxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwiYWRkaXRpb25hbC1idG5cIlxuICAgICAgICAgIChjbGljayk9XCJhZGRpdGlvbmFsQWN0aW9uQ2xpY2tlZCgpXCJcbiAgICAgICAgICAqbmdJZj1cImFkZGl0aW9uYWxBY3Rpb25JY29uXCJcbiAgICAgICAgICBbdGl0bGVdPVwiYWRkaXRpb25hbEFjdGlvblRleHRcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICA+XG4gICAgICAgICAgPG1hdC1pY29uPnt7IGFkZGl0aW9uYWxBY3Rpb25JY29uIH19PC9tYXQtaWNvbj5cbiAgICAgICAgPC9tYWQtaWNvbi1idXR0b24+XG4gICAgICAgIDxtYWQtaWNvbi1idXR0b24gZGF0YS10ZXN0aWQ9XCJlZGl0LWJ0blwiIFt0aXRsZV09XCJlZGl0VGV4dFwiIChjbGljayk9XCJvbkVkaXQoKVwiICpuZ0lmPVwiIXJlYWRvbmx5ICYmICFlZGl0TW9kZVwiPlxuICAgICAgICAgIDxtYXQtaWNvbj5jcmVhdGU8L21hdC1pY29uPlxuICAgICAgICA8L21hZC1pY29uLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbWF0LWNhcmQtdGl0bGUtZ3JvdXA+XG4gIDwvbWF0LWNhcmQtaGVhZGVyPlxuICA8bWF0LWNhcmQtY29udGVudCBbQGNvbGxhcHNlRXhwYW5kQW5pbWF0aW9uXSAqbmdJZj1cImV4cGFuZGVkXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gIDxtYXQtY2FyZC1hY3Rpb25zICpuZ0lmPVwiIXJlYWRvbmx5ICYmIGVkaXRNb2RlXCI+XG4gICAgPG1hZC1wcmltYXJ5LWJ1dHRvbiBkYXRhLXRlc3RpZD1cInNhdmUtYnRuXCIgW3RpdGxlXT1cInNhdmVUZXh0XCIgW2Rpc2FibGVkXT1cInNhdmVEaXNhYmxlZFwiICh0aHJvdHRsZUNsaWNrKT1cIm9uU2F2ZSgpXCIgbWFkVGhyb3R0bGVDbGljaz5cbiAgICAgIHt7IHNhdmVUZXh0IH19XG4gICAgPC9tYWQtcHJpbWFyeS1idXR0b24+XG4gICAgPG1hZC1vdXRsaW5lLWJ1dHRvbiBkYXRhLXRlc3RpZD1cImNhbmNlbC1idG5cIiBbdGl0bGVdPVwiY2FuY2VsVGV4dFwiIFtkaXNhYmxlZF09XCJjYW5jZWxEaXNhYmxlZFwiIChjbGljayk9XCJvbkNhbmNlbCgpXCI+XG4gICAgICB7eyBjYW5jZWxUZXh0IH19XG4gICAgPC9tYWQtb3V0bGluZS1idXR0b24+XG4gIDwvbWF0LWNhcmQtYWN0aW9ucz5cbjwvbWF0LWNhcmQ+XG4iXX0=
@@ -10,38 +10,34 @@ export class DataTableSortUtil {
10
10
  const x = a[sort.active];
11
11
  const y = b[sort.active];
12
12
  const ascending = sort.direction === 'asc';
13
- switch (typeof x) {
14
- case 'number':
15
- if (typeof y !== 'number') {
16
- return DataTableSortUtil.compareString(String(x), y, ascending);
17
- }
18
- return DataTableSortUtil.compareNumber(x, y, ascending);
19
- case 'string': {
20
- const stringY = String(y);
21
- // a string could be a date
22
- if (!!dateTimeFormat) {
23
- const dateX = DateTime.fromFormat(x, dateTimeFormat);
24
- const dateY = DateTime.fromFormat(stringY, dateTimeFormat);
25
- if (dateX.isValid && dateY.isValid) {
26
- return DataTableSortUtil.compareDate(dateX, dateY, ascending);
27
- }
13
+ if (typeof x === 'number' && typeof y === 'number') {
14
+ return DataTableSortUtil.compareNumber(x, y, ascending);
15
+ }
16
+ if (typeof x === 'boolean' && typeof y === 'boolean') {
17
+ return DataTableSortUtil.compareBoolean(x, y, ascending);
18
+ }
19
+ if (typeof x === 'string' || typeof y === 'string') {
20
+ const stringX = String(x ?? '');
21
+ const stringY = String(y ?? '');
22
+ // a string could be a date
23
+ if (!!dateTimeFormat) {
24
+ const dateX = DateTime.fromFormat(stringX, dateTimeFormat);
25
+ const dateY = DateTime.fromFormat(stringY, dateTimeFormat);
26
+ if (dateX.isValid && dateY.isValid) {
27
+ return DataTableSortUtil.compareDate(dateX, dateY, ascending);
28
28
  }
29
- // .. but also a formatted number
30
- if (!!numberFormat) {
31
- const numberX = DataTableSortUtil.parseNumber(x, numberFormat);
32
- const numberY = DataTableSortUtil.parseNumber(y, numberFormat);
33
- if (typeof numberX === 'number' && typeof numberY === 'number') {
34
- return DataTableSortUtil.compareNumber(numberX, numberY, ascending);
35
- }
29
+ }
30
+ // .. but also a formatted number
31
+ if (!!numberFormat) {
32
+ const numberX = DataTableSortUtil.parseNumber(stringX, numberFormat);
33
+ const numberY = DataTableSortUtil.parseNumber(stringY, numberFormat);
34
+ if (typeof numberX === 'number' && typeof numberY === 'number') {
35
+ return DataTableSortUtil.compareNumber(numberX, numberY, ascending);
36
36
  }
37
- return DataTableSortUtil.compareString(x, stringY, ascending);
38
37
  }
39
- case 'boolean':
40
- return DataTableSortUtil.compareBoolean(x, y, ascending);
41
- default:
42
- // cannot compare -> return equal
43
- return 0;
38
+ return DataTableSortUtil.compareString(stringX, stringY, ascending);
44
39
  }
40
+ return 0;
45
41
  }
46
42
  static compareNumber(x, y, ascending) {
47
43
  return ascending ? x - y : y - x;
@@ -77,4 +73,4 @@ export class DataTableSortUtil {
77
73
  return value;
78
74
  }
79
75
  }
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1zb3J0LXV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9kYXRhLXRhYmxlL3V0aWwvZGF0YS10YWJsZS1zb3J0LXV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUdqQyxNQUFNLE9BQU8saUJBQWlCO0lBQzVCLE1BQU0sQ0FBQyxRQUFRLENBQUMsY0FBdUIsRUFBRSxZQUEyQjtRQUNsRSxPQUFPLENBQUMsU0FBZ0IsRUFBRSxPQUFnQixFQUFFLEVBQUUsQ0FDNUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUMxRyxDQUFDO0lBRUQsTUFBTSxDQUFDLFdBQVc7UUFDaEIsT0FBTyxDQUFDLFNBQWdCLEVBQUUsQ0FBVSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUM7SUFDckQsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBc0IsRUFBRSxDQUFzQixFQUFFLElBQVUsRUFBRSxjQUF1QixFQUFFLFlBQTJCO1FBQzdILE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssQ0FBQztRQUUzQyxRQUFRLE9BQU8sQ0FBQyxFQUFFO1lBQ2hCLEtBQUssUUFBUTtnQkFDWCxJQUFJLE9BQU8sQ0FBQyxLQUFL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Q0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBYSxFQUFFLFlBQTJCO1FBQzNELE1BQU0sU0FBUyxHQUFHLEtBQUs7YUFDcEIsT0FBTyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDO2FBQ2pELE9BQU8sQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQzthQUNqRCxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpFLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUV0QyxJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUMxRCxPQUFPLFdBQVcsQ0FBQztTQUNwQjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWF0U29ydCwgU29ydCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgRGF0ZVRpbWUgfSBmcm9tICdsdXhvbic7XG5pbXBvcnQgeyBOdW1iZXJGb3JtYXQgfSBmcm9tICcuLi9jb25maWd1cmF0aW9uL2RhdGEtdGFibGUtZ2xvYmFsLWNvbmZpZ3VyYXRpb24nO1xuXG5leHBvcnQgY2xhc3MgRGF0YVRhYmxlU29ydFV0aWwge1xuICBzdGF0aWMgc29ydERhdGEoZGF0ZVRpbWVGb3JtYXQ/OiBzdHJpbmcsIG51bWJlckZvcm1hdD86IE51bWJlckZvcm1hdCk6ICh0YWJsZURhdGE6IGFueVtdLCBtYXRTb3J0OiBNYXRTb3J0KSA9PiBhbnlbXSB7XG4gICAgcmV0dXJuICh0YWJsZURhdGE6IGFueVtdLCBtYXRTb3J0OiBNYXRTb3J0KSA9PlxuICAgICAgWy4uLnRhYmxlRGF0YV0uc29ydCgoYSwgYikgPT4gRGF0YVRhYmxlU29ydFV0aWwuY29tcGFyZShhLCBiLCBtYXRTb3J0LCBkYXRlVGltZUZvcm1hdCwgbnVtYmVyRm9ybWF0KSk7XG4gIH1cblxuICBzdGF0aWMgc29ydE5vdGhpbmcoKTogKHRhYmxlRGF0YTogYW55W10sIG1hdFNvcnQ6IE1hdFNvcnQpID0+IGFueVtdIHtcbiAgICByZXR1cm4gKHRhYmxlRGF0YTogYW55W10sIF86IE1hdFNvcnQpID0+IHRhYmxlRGF0YTtcbiAgfVxuXG4gIHN0YXRpYyBjb21wYXJlKGE6IFJlY29yZDxzdHJpbmcsIGFueT4sIGI6IFJlY29yZDxzdHJpbmcsIGFueT4sIHNvcnQ6IFNvcnQsIGRhdGVUaW1lRm9ybWF0Pzogc3RyaW5nLCBudW1iZXJGb3JtYXQ/OiBOdW1iZXJGb3JtYXQpOiBudW1iZXIge1xuICAgIGNvbnN0IHggPSBhW3NvcnQuYWN0aXZlXTtcbiAgICBjb25zdCB5ID0gYltzb3J0LmFjdGl2ZV07XG4gICAgY29uc3QgYXNjZW5kaW5nID0gc29ydC5kaXJlY3Rpb24gPT09ICdhc2MnO1xuXG4gICAgc3dpdGNoICh0eXBlb2YgeCkge1xuICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgaWYgKHR5cGVvZiB5ICE9PSAnbnVtYmVyJykge1xuICAgICAgICAgIHJldHVybiBEYXRhVGFibGVTb3J0VXRpbC5jb21wYXJlU3RyaW5nKFN0cmluZyh4KSwgeSwgYXNjZW5kaW5nKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gRGF0YVRhYmxlU29ydFV0aWwuY29tcGFyZU51bWJlcih4LCB5LCBhc2NlbmRpbmcpO1xuICAgICAgY2FzZSAnc3RyaW5nJzoge1xuICAgICAgICBjb25zdCBzdHJpbmdZID0gU3RyaW5nKHkpO1xuXG4gICAgICAgIC8vIGEgc3RyaW5nIGNvdWxkIGJlIGEgZGF0ZVxuICAgICAgICBpZiAoISFkYXRlVGltZUZvcm1hdCkge1xuICAgICAgICAgIGNvbnN0IGRhdGVYID0gRGF0ZVRpbWUuZnJvbUZvcm1hdCh4LCBkYXRlVGltZUZvcm1hdCk7XG4gICAgICAgICAgY29uc3QgZGF0ZVkgPSBEYXRlVGltZS5mcm9tRm9ybWF0KHN0cmluZ1ksIGRhdGVUaW1lRm9ybWF0KTtcblxuICAgICAgICAgIGlmIChkYXRlWC5pc1ZhbGlkICYmIGRhdGVZLmlzVmFsaWQpIHtcbiAgICAgICAgICAgIHJldHVybiBEYXRhVGFibGVTb3J0VXRpbC5jb21wYXJlRGF0ZShkYXRlWCwgZGF0ZVksIGFzY2VuZGluZyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gLi4gYnV0IGFsc28gYSBmb3JtYXR0ZWQgbnVtYmVyXG4gICAgICAgIGlmICghIW51bWJlckZvcm1hdCkge1xuICAgICAgICAgIGNvbnN0IG51bWJlclggPSBEYXRhVGFibGVTb3J0VXRpbC5wYXJzZU51bWJlcih4LCBudW1iZXJGb3JtYXQpO1xuICAgICAgICAgIGNvbnN0IG51bWJlclkgPSBEYXRhVGFibGVTb3J0VXRpbC5wYXJzZU51bWJlcih5LCBudW1iZXJGb3JtYXQpO1xuXG4gICAgICAgICAgaWYgKHR5cGVvZiBudW1iZXJYID09PSAnbnVtYmVyJyAmJiB0eXBlb2YgbnVtYmVyWSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIHJldHVybiBEYXRhVGFibGVTb3J0VXRpbC5jb21wYXJlTnVtYmVyKG51bWJlclgsIG51bWJlclksIGFzY2VuZGluZyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIERhdGFUYWJsZVNvcnRVdGlsLmNvbXBhcmVTdHJpbmcoeCwgc3RyaW5nWSwgYXNjZW5kaW5nKTtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgICByZXR1cm4gRGF0YVRhYmxlU29ydFV0aWwuY29tcGFyZUJvb2xlYW4oeCwgeSwgYXNjZW5kaW5nKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIC8vIGNhbm5vdCBjb21wYXJlIC0+IHJldHVybiBlcXVhbFxuICAgICAgICByZXR1cm4gMDtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgY29tcGFyZU51bWJlcih4OiBudW1iZXIsIHk6IG51bWJlciwgYXNjZW5kaW5nOiBib29sZWFuKTogbnVtYmVyIHtcbiAgICByZXR1cm4gYXNjZW5kaW5nID8geCAtIHkgOiB5IC0geDtcbiAgfVxuXG4gIHN0YXRpYyBjb21wYXJlRGF0ZSh4OiBEYXRlVGltZSwgeTogRGF0ZVRpbWUsIGFzY2VuZGluZzogYm9vbGVhbik6IG51bWJlciB7XG4gICAgcmV0dXJuIERhdGFUYWJsZVNvcnRVdGlsLmNvbXBhcmVOdW1iZXIoK3gsICt5LCBhc2NlbmRpbmcpO1xuICB9XG5cbiAgc3RhdGljIGNvbXBhcmVTdHJpbmcoeDogc3RyaW5nLCB5OiBzdHJpbmcsIGFzY2VuZGluZzogYm9vbGVhbik6IG51bWJlciB7XG4gICAgcmV0dXJuIGFzY2VuZGluZyA/IHgubG9jYWxlQ29tcGFyZSh5KSA6IHkubG9jYWxlQ29tcGFyZSh4KTtcbiAgfVxuXG4gIHN0YXRpYyBjb21wYXJlQm9vbGVhbih4OiBib29sZWFuLCB5OiBib29sZWFuLCBhc2NlbmRpbmc6IGJvb2xlYW4pOiBudW1iZXIge1xuICAgIGlmICh4ID09PSB5KSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgaWYgKGFzY2VuZGluZykge1xuICAgICAgLy8gdHJ1ZSBmaXJzdFxuICAgICAgcmV0dXJuIHggPyAtMSA6IDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGZhbHNlIGZpcnN0XG4gICAgICByZXR1cm4geCA/IDEgOiAtMTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgcGFyc2VOdW1iZXIodmFsdWU6IHN0cmluZywgbnVtYmVyRm9ybWF0PzogTnVtYmVyRm9ybWF0KTogbnVtYmVyIHwgc3RyaW5nIHtcbiAgICBjb25zdCBzYW5pdGl6ZWQgPSB2YWx1ZVxuICAgICAgLnJlcGxhY2UobnVtYmVyRm9ybWF0Lmdyb3VwaW5nU2VwYXJhdG9yID8/ICcnLCAnJylcbiAgICAgIC5yZXBsYWNlKG51bWJlckZvcm1hdC5kZWNpbWFsU2VwYXJhdG9yID8/ICcnLCAnLicpXG4gICAgICAucmVwbGFjZShuZXcgUmVnRXhwKChudW1iZXJGb3JtYXQudW5pdHMgPz8gW10pLmpvaW4oJ3wnKSksICcnKTtcblxuICAgIGNvbnN0IG51bWJlclZhbHVlID0gTnVtYmVyKHNhbml0aXplZCk7XG5cbiAgICBpZiAodHlwZW9mIG51bWJlclZhbHVlID09PSAnbnVtYmVyJyAmJiAhaXNOYU4obnVtYmVyVmFsdWUpKSB7XG4gICAgICByZXR1cm4gbnVtYmVyVmFsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59XG4iXX0=
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1zb3J0LXV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9kYXRhLXRhYmxlL3V0aWwvZGF0YS10YWJsZS1zb3J0LXV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUdqQyxNQUFNLE9BQU8saUJBQWlCO0lBQzVCLE1BQU0sQ0FBQyxRQUFRLENBQUMsY0FBdUIsRUFBRSxZQUEyQjtRQUNsRSxPQUFPLENBQUMsU0FBZ0IsRUFBRSxPQUFnQixFQUFFLEVBQUUsQ0FDNUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUMxRyxDQUFDO0lBRUQsTUFBTSxDQUFDLFdBQVc7UUFDaEIsT0FBTyxDQUFDLFNBQWdCLEVBQUUsQ0FBVSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUM7SUFDckQsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBc0IsRUFBRSxDQUFzQixFQUFFLElBQVUsRUFBRSxjQUF1QixFQUFFLFlBQTJCO1FBQzdILE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssQ0FBQztRQUUzQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLEVBQUU7WUFDbEQs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LENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNuQjtJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQWEsRUFBRSxZQUEyQjtRQUMzRCxNQUFNLFNBQVMsR0FBRyxLQUFLO2FBQ3BCLE9BQU8sQ0FBQyxZQUFZLENBQUMsaUJBQWlCLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQzthQUNqRCxPQUFPLENBQUMsWUFBWSxDQUFDLGdCQUFnQixJQUFJLEVBQUUsRUFBRSxHQUFHLENBQUM7YUFDakQsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqRSxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFdEMsSUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDMUQsT0FBTyxXQUFXLENBQUM7U0FDcEI7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hdFNvcnQsIFNvcnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7IERhdGVUaW1lIH0gZnJvbSAnbHV4b24nO1xuaW1wb3J0IHsgTnVtYmVyRm9ybWF0IH0gZnJvbSAnLi4vY29uZmlndXJhdGlvbi9kYXRhLXRhYmxlLWdsb2JhbC1jb25maWd1cmF0aW9uJztcblxuZXhwb3J0IGNsYXNzIERhdGFUYWJsZVNvcnRVdGlsIHtcbiAgc3RhdGljIHNvcnREYXRhKGRhdGVUaW1lRm9ybWF0Pzogc3RyaW5nLCBudW1iZXJGb3JtYXQ/OiBOdW1iZXJGb3JtYXQpOiAodGFibGVEYXRhOiBhbnlbXSwgbWF0U29ydDogTWF0U29ydCkgPT4gYW55W10ge1xuICAgIHJldHVybiAodGFibGVEYXRhOiBhbnlbXSwgbWF0U29ydDogTWF0U29ydCkgPT5cbiAgICAgIFsuLi50YWJsZURhdGFdLnNvcnQoKGEsIGIpID0+IERhdGFUYWJsZVNvcnRVdGlsLmNvbXBhcmUoYSwgYiwgbWF0U29ydCwgZGF0ZVRpbWVGb3JtYXQsIG51bWJlckZvcm1hdCkpO1xuICB9XG5cbiAgc3RhdGljIHNvcnROb3RoaW5nKCk6ICh0YWJsZURhdGE6IGFueVtdLCBtYXRTb3J0OiBNYXRTb3J0KSA9PiBhbnlbXSB7XG4gICAgcmV0dXJuICh0YWJsZURhdGE6IGFueVtdLCBfOiBNYXRTb3J0KSA9PiB0YWJsZURhdGE7XG4gIH1cblxuICBzdGF0aWMgY29tcGFyZShhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBiOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBzb3J0OiBTb3J0LCBkYXRlVGltZUZvcm1hdD86IHN0cmluZywgbnVtYmVyRm9ybWF0PzogTnVtYmVyRm9ybWF0KTogbnVtYmVyIHtcbiAgICBjb25zdCB4ID0gYVtzb3J0LmFjdGl2ZV07XG4gICAgY29uc3QgeSA9IGJbc29ydC5hY3RpdmVdO1xuICAgIGNvbnN0IGFzY2VuZGluZyA9IHNvcnQuZGlyZWN0aW9uID09PSAnYXNjJztcblxuICAgIGlmICh0eXBlb2YgeCA9PT0gJ251bWJlcicgJiYgdHlwZW9mIHkgPT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm4gRGF0YVRhYmxlU29ydFV0aWwuY29tcGFyZU51bWJlcih4LCB5LCBhc2NlbmRpbmcpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHggPT09ICdib29sZWFuJyAmJiB0eXBlb2YgeSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICByZXR1cm4gRGF0YVRhYmxlU29ydFV0aWwuY29tcGFyZUJvb2xlYW4oeCwgeSwgYXNjZW5kaW5nKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB4ID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgeSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IHN0cmluZ1ggPSBTdHJpbmcoeCA/PyAnJyk7XG4gICAgICBjb25zdCBzdHJpbmdZID0gU3RyaW5nKHkgPz8gJycpO1xuXG4gICAgICAvLyBhIHN0cmluZyBjb3VsZCBiZSBhIGRhdGVcbiAgICAgIGlmICghIWRhdGVUaW1lRm9ybWF0KSB7XG4gICAgICAgIGNvbnN0IGRhdGVYID0gRGF0ZVRpbWUuZnJvbUZvcm1hdChzdHJpbmdYLCBkYXRlVGltZUZvcm1hdCk7XG4gICAgICAgIGNvbnN0IGRhdGVZID0gRGF0ZVRpbWUuZnJvbUZvcm1hdChzdHJpbmdZLCBkYXRlVGltZUZvcm1hdCk7XG5cbiAgICAgICAgaWYgKGRhdGVYLmlzVmFsaWQgJiYgZGF0ZVkuaXNWYWxpZCkge1xuICAgICAgICAgIHJldHVybiBEYXRhVGFibGVTb3J0VXRpbC5jb21wYXJlRGF0ZShkYXRlWCwgZGF0ZVksIGFzY2VuZGluZyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gLi4gYnV0IGFsc28gYSBmb3JtYXR0ZWQgbnVtYmVyXG4gICAgICBpZiAoISFudW1iZXJGb3JtYXQpIHtcbiAgICAgICAgY29uc3QgbnVtYmVyWCA9IERhdGFUYWJsZVNvcnRVdGlsLnBhcnNlTnVtYmVyKHN0cmluZ1gsIG51bWJlckZvcm1hdCk7XG4gICAgICAgIGNvbnN0IG51bWJlclkgPSBEYXRhVGFibGVTb3J0VXRpbC5wYXJzZU51bWJlcihzdHJpbmdZLCBudW1iZXJGb3JtYXQpO1xuXG4gICAgICAgIGlmICh0eXBlb2YgbnVtYmVyWCA9PT0gJ251bWJlcicgJiYgdHlwZW9mIG51bWJlclkgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgcmV0dXJuIERhdGFUYWJsZVNvcnRVdGlsLmNvbXBhcmVOdW1iZXIobnVtYmVyWCwgbnVtYmVyWSwgYXNjZW5kaW5nKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gRGF0YVRhYmxlU29ydFV0aWwuY29tcGFyZVN0cmluZyhzdHJpbmdYLCBzdHJpbmdZLCBhc2NlbmRpbmcpO1xuICAgIH1cblxuICAgIHJldHVybiAwO1xuICB9XG5cbiAgc3RhdGljIGNvbXBhcmVOdW1iZXIoeDogbnVtYmVyLCB5OiBudW1iZXIsIGFzY2VuZGluZzogYm9vbGVhbik6IG51bWJlciB7XG4gICAgcmV0dXJuIGFzY2VuZGluZyA/IHggLSB5IDogeSAtIHg7XG4gIH1cblxuICBzdGF0aWMgY29tcGFyZURhdGUoeDogRGF0ZVRpbWUsIHk6IERhdGVUaW1lLCBhc2NlbmRpbmc6IGJvb2xlYW4pOiBudW1iZXIge1xuICAgIHJldHVybiBEYXRhVGFibGVTb3J0VXRpbC5jb21wYXJlTnVtYmVyKCt4LCAreSwgYXNjZW5kaW5nKTtcbiAgfVxuXG4gIHN0YXRpYyBjb21wYXJlU3RyaW5nKHg6IHN0cmluZywgeTogc3RyaW5nLCBhc2NlbmRpbmc6IGJvb2xlYW4pOiBudW1iZXIge1xuICAgIHJldHVybiBhc2NlbmRpbmcgPyB4LmxvY2FsZUNvbXBhcmUoeSkgOiB5LmxvY2FsZUNvbXBhcmUoeCk7XG4gIH1cblxuICBzdGF0aWMgY29tcGFyZUJvb2xlYW4oeDogYm9vbGVhbiwgeTogYm9vbGVhbiwgYXNjZW5kaW5nOiBib29sZWFuKTogbnVtYmVyIHtcbiAgICBpZiAoeCA9PT0geSkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIGlmIChhc2NlbmRpbmcpIHtcbiAgICAgIC8vIHRydWUgZmlyc3RcbiAgICAgIHJldHVybiB4ID8gLTEgOiAxO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBmYWxzZSBmaXJzdFxuICAgICAgcmV0dXJuIHggPyAxIDogLTE7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIHBhcnNlTnVtYmVyKHZhbHVlOiBzdHJpbmcsIG51bWJlckZvcm1hdD86IE51bWJlckZvcm1hdCk6IG51bWJlciB8IHN0cmluZyB7XG4gICAgY29uc3Qgc2FuaXRpemVkID0gdmFsdWVcbiAgICAgIC5yZXBsYWNlKG51bWJlckZvcm1hdC5ncm91cGluZ1NlcGFyYXRvciA/PyAnJywgJycpXG4gICAgICAucmVwbGFjZShudW1iZXJGb3JtYXQuZGVjaW1hbFNlcGFyYXRvciA/PyAnJywgJy4nKVxuICAgICAgLnJlcGxhY2UobmV3IFJlZ0V4cCgobnVtYmVyRm9ybWF0LnVuaXRzID8/IFtdKS5qb2luKCd8JykpLCAnJyk7XG5cbiAgICBjb25zdCBudW1iZXJWYWx1ZSA9IE51bWJlcihzYW5pdGl6ZWQpO1xuXG4gICAgaWYgKHR5cGVvZiBudW1iZXJWYWx1ZSA9PT0gJ251bWJlcicgJiYgIWlzTmFOKG51bWJlclZhbHVlKSkge1xuICAgICAgcmV0dXJuIG51bWJlclZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxufVxuIl19
@@ -1,2 +1,2 @@
1
- export const VERSION = '17.3.3';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL21hdGVyaWFsLWFkZG9ucy9zcmMvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFZFUlNJT04gPSAnMTcuMy4zJztcbiJdfQ==
1
+ export const VERSION = '17.3.4';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL21hdGVyaWFsLWFkZG9ucy9zcmMvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFZFUlNJT04gPSAnMTcuMy40JztcbiJdfQ==
@@ -1311,7 +1311,7 @@ class CardComponent {
1311
1311
  this.additionalAction.emit(undefined);
1312
1312
  }
1313
1313
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: CardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1314
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: CardComponent, selector: "mad-card", inputs: { cancelDisabled: "cancelDisabled", cancelText: "cancelText", readonly: "readonly", editText: "editText", expandable: "expandable", expanded: "expanded", saveDisabled: "saveDisabled", saveText: "saveText", title: "title", editMode: "editMode", additionalActionIcon: "additionalActionIcon", additionalActionText: "additionalActionText" }, outputs: { edit: "edit", cancel: "cancel", save: "save", additionalAction: "additionalAction" }, ngImport: i0, template: "<mat-card>\n <mat-card-header class=\"header\">\n <mat-card-title-group class=\"center\">\n <mat-card-title class=\"small-title-container\">{{ title }}</mat-card-title>\n <div class=\"top-right-icons\">\n <mad-icon-button data-testid=\"collapse-btn\" (click)=\"toggleCollapse()\" *ngIf=\"expandable && !editMode\">\n <mat-icon [@rotateIcon]=\"!expanded\">keyboard_arrow_down</mat-icon>\n </mad-icon-button>\n <mad-icon-button\n data-testid=\"additional-btn\"\n (click)=\"additionalActionClicked()\"\n *ngIf=\"additionalActionIcon\"\n [title]=\"additionalActionText\"\n type=\"button\"\n >\n <mat-icon>{{ additionalActionIcon }}</mat-icon>\n </mad-icon-button>\n <mad-icon-button data-testid=\"edit-btn\" [title]=\"editText\" (click)=\"onEdit()\" *ngIf=\"!readonly && !editMode\">\n <mat-icon>create</mat-icon>\n </mad-icon-button>\n </div>\n </mat-card-title-group>\n </mat-card-header>\n <mat-card-content [@collapseExpandAnimation] *ngIf=\"expanded\">\n <ng-content></ng-content>\n </mat-card-content>\n <mat-card-actions *ngIf=\"!readonly && editMode\">\n <mad-primary-button data-testid=\"save-btn\" [title]=\"saveText\" [disabled]=\"saveDisabled\" (throttleClick)=\"onSave()\" madThrottleClick>\n {{ saveText }}\n </mad-primary-button>\n <mad-outline-button data-testid=\"cancel-btn\" [title]=\"cancelText\" [disabled]=\"cancelDisabled\" (click)=\"onCancel()\">\n {{ cancelText }}\n </mad-outline-button>\n </mat-card-actions>\n</mat-card>\n", styles: [".top-right-icons{text-align:end;width:-moz-fit-content;width:fit-content}.center{display:flex;align-items:center}.header{height:48px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i2$1.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i2$1.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i2$1.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i2$1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: i2$1.MatCardTitleGroup, selector: "mat-card-title-group" }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: PrimaryButtonComponent, selector: "mad-primary-button", inputs: ["type", "disabled", "title"] }, { kind: "component", type: OutlineButtonComponent, selector: "mad-outline-button", inputs: ["type", "disabled", "title", "color"] }, { kind: "component", type: IconButtonComponent, selector: "mad-icon-button", inputs: ["type", "disabled", "title"] }, { kind: "directive", type: ThrottleClickDirective, selector: "[madThrottleClick]", inputs: ["throttleTime"], outputs: ["throttleClick"] }], animations: [
1314
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: CardComponent, selector: "mad-card", inputs: { cancelDisabled: "cancelDisabled", cancelText: "cancelText", readonly: "readonly", editText: "editText", expandable: "expandable", expanded: "expanded", saveDisabled: "saveDisabled", saveText: "saveText", title: "title", editMode: "editMode", additionalActionIcon: "additionalActionIcon", additionalActionText: "additionalActionText" }, outputs: { edit: "edit", cancel: "cancel", save: "save", additionalAction: "additionalAction" }, ngImport: i0, template: "<mat-card>\n <mat-card-header class=\"header\" *ngIf=\"title || expandable\">\n <mat-card-title-group class=\"center\">\n <mat-card-title class=\"small-title-container\">{{ title }}</mat-card-title>\n <div class=\"top-right-icons\">\n <mad-icon-button data-testid=\"collapse-btn\" (click)=\"toggleCollapse()\" *ngIf=\"expandable && !editMode\">\n <mat-icon [@rotateIcon]=\"!expanded\">keyboard_arrow_down</mat-icon>\n </mad-icon-button>\n <mad-icon-button\n data-testid=\"additional-btn\"\n (click)=\"additionalActionClicked()\"\n *ngIf=\"additionalActionIcon\"\n [title]=\"additionalActionText\"\n type=\"button\"\n >\n <mat-icon>{{ additionalActionIcon }}</mat-icon>\n </mad-icon-button>\n <mad-icon-button data-testid=\"edit-btn\" [title]=\"editText\" (click)=\"onEdit()\" *ngIf=\"!readonly && !editMode\">\n <mat-icon>create</mat-icon>\n </mad-icon-button>\n </div>\n </mat-card-title-group>\n </mat-card-header>\n <mat-card-content [@collapseExpandAnimation] *ngIf=\"expanded\">\n <ng-content></ng-content>\n </mat-card-content>\n <mat-card-actions *ngIf=\"!readonly && editMode\">\n <mad-primary-button data-testid=\"save-btn\" [title]=\"saveText\" [disabled]=\"saveDisabled\" (throttleClick)=\"onSave()\" madThrottleClick>\n {{ saveText }}\n </mad-primary-button>\n <mad-outline-button data-testid=\"cancel-btn\" [title]=\"cancelText\" [disabled]=\"cancelDisabled\" (click)=\"onCancel()\">\n {{ cancelText }}\n </mad-outline-button>\n </mat-card-actions>\n</mat-card>\n", styles: [".top-right-icons{text-align:end;width:-moz-fit-content;width:fit-content}.center{display:flex;align-items:center}.header{height:48px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i2$1.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i2$1.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i2$1.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i2$1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: i2$1.MatCardTitleGroup, selector: "mat-card-title-group" }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: PrimaryButtonComponent, selector: "mad-primary-button", inputs: ["type", "disabled", "title"] }, { kind: "component", type: OutlineButtonComponent, selector: "mad-outline-button", inputs: ["type", "disabled", "title", "color"] }, { kind: "component", type: IconButtonComponent, selector: "mad-icon-button", inputs: ["type", "disabled", "title"] }, { kind: "directive", type: ThrottleClickDirective, selector: "[madThrottleClick]", inputs: ["throttleTime"], outputs: ["throttleClick"] }], animations: [
1315
1315
  trigger('collapseExpandAnimation', [
1316
1316
  transition(':enter', [
1317
1317
  style({ opacity: 0, height: 0, overflow: 'hidden' }),
@@ -1361,7 +1361,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
1361
1361
  transition('true => false', animate('100ms ease-out')),
1362
1362
  transition('false => true', animate('100ms ease-in')),
1363
1363
  ]),
1364
- ], template: "<mat-card>\n <mat-card-header class=\"header\">\n <mat-card-title-group class=\"center\">\n <mat-card-title class=\"small-title-container\">{{ title }}</mat-card-title>\n <div class=\"top-right-icons\">\n <mad-icon-button data-testid=\"collapse-btn\" (click)=\"toggleCollapse()\" *ngIf=\"expandable && !editMode\">\n <mat-icon [@rotateIcon]=\"!expanded\">keyboard_arrow_down</mat-icon>\n </mad-icon-button>\n <mad-icon-button\n data-testid=\"additional-btn\"\n (click)=\"additionalActionClicked()\"\n *ngIf=\"additionalActionIcon\"\n [title]=\"additionalActionText\"\n type=\"button\"\n >\n <mat-icon>{{ additionalActionIcon }}</mat-icon>\n </mad-icon-button>\n <mad-icon-button data-testid=\"edit-btn\" [title]=\"editText\" (click)=\"onEdit()\" *ngIf=\"!readonly && !editMode\">\n <mat-icon>create</mat-icon>\n </mad-icon-button>\n </div>\n </mat-card-title-group>\n </mat-card-header>\n <mat-card-content [@collapseExpandAnimation] *ngIf=\"expanded\">\n <ng-content></ng-content>\n </mat-card-content>\n <mat-card-actions *ngIf=\"!readonly && editMode\">\n <mad-primary-button data-testid=\"save-btn\" [title]=\"saveText\" [disabled]=\"saveDisabled\" (throttleClick)=\"onSave()\" madThrottleClick>\n {{ saveText }}\n </mad-primary-button>\n <mad-outline-button data-testid=\"cancel-btn\" [title]=\"cancelText\" [disabled]=\"cancelDisabled\" (click)=\"onCancel()\">\n {{ cancelText }}\n </mad-outline-button>\n </mat-card-actions>\n</mat-card>\n", styles: [".top-right-icons{text-align:end;width:-moz-fit-content;width:fit-content}.center{display:flex;align-items:center}.header{height:48px}\n"] }]
1364
+ ], template: "<mat-card>\n <mat-card-header class=\"header\" *ngIf=\"title || expandable\">\n <mat-card-title-group class=\"center\">\n <mat-card-title class=\"small-title-container\">{{ title }}</mat-card-title>\n <div class=\"top-right-icons\">\n <mad-icon-button data-testid=\"collapse-btn\" (click)=\"toggleCollapse()\" *ngIf=\"expandable && !editMode\">\n <mat-icon [@rotateIcon]=\"!expanded\">keyboard_arrow_down</mat-icon>\n </mad-icon-button>\n <mad-icon-button\n data-testid=\"additional-btn\"\n (click)=\"additionalActionClicked()\"\n *ngIf=\"additionalActionIcon\"\n [title]=\"additionalActionText\"\n type=\"button\"\n >\n <mat-icon>{{ additionalActionIcon }}</mat-icon>\n </mad-icon-button>\n <mad-icon-button data-testid=\"edit-btn\" [title]=\"editText\" (click)=\"onEdit()\" *ngIf=\"!readonly && !editMode\">\n <mat-icon>create</mat-icon>\n </mad-icon-button>\n </div>\n </mat-card-title-group>\n </mat-card-header>\n <mat-card-content [@collapseExpandAnimation] *ngIf=\"expanded\">\n <ng-content></ng-content>\n </mat-card-content>\n <mat-card-actions *ngIf=\"!readonly && editMode\">\n <mad-primary-button data-testid=\"save-btn\" [title]=\"saveText\" [disabled]=\"saveDisabled\" (throttleClick)=\"onSave()\" madThrottleClick>\n {{ saveText }}\n </mad-primary-button>\n <mad-outline-button data-testid=\"cancel-btn\" [title]=\"cancelText\" [disabled]=\"cancelDisabled\" (click)=\"onCancel()\">\n {{ cancelText }}\n </mad-outline-button>\n </mat-card-actions>\n</mat-card>\n", styles: [".top-right-icons{text-align:end;width:-moz-fit-content;width:fit-content}.center{display:flex;align-items:center}.header{height:48px}\n"] }]
1365
1365
  }], propDecorators: { cancelDisabled: [{
1366
1366
  type: Input
1367
1367
  }], cancelText: [{
@@ -1942,38 +1942,34 @@ class DataTableSortUtil {
1942
1942
  const x = a[sort.active];
1943
1943
  const y = b[sort.active];
1944
1944
  const ascending = sort.direction === 'asc';
1945
- switch (typeof x) {
1946
- case 'number':
1947
- if (typeof y !== 'number') {
1948
- return DataTableSortUtil.compareString(String(x), y, ascending);
1945
+ if (typeof x === 'number' && typeof y === 'number') {
1946
+ return DataTableSortUtil.compareNumber(x, y, ascending);
1947
+ }
1948
+ if (typeof x === 'boolean' && typeof y === 'boolean') {
1949
+ return DataTableSortUtil.compareBoolean(x, y, ascending);
1950
+ }
1951
+ if (typeof x === 'string' || typeof y === 'string') {
1952
+ const stringX = String(x ?? '');
1953
+ const stringY = String(y ?? '');
1954
+ // a string could be a date
1955
+ if (!!dateTimeFormat) {
1956
+ const dateX = DateTime.fromFormat(stringX, dateTimeFormat);
1957
+ const dateY = DateTime.fromFormat(stringY, dateTimeFormat);
1958
+ if (dateX.isValid && dateY.isValid) {
1959
+ return DataTableSortUtil.compareDate(dateX, dateY, ascending);
1949
1960
  }
1950
- return DataTableSortUtil.compareNumber(x, y, ascending);
1951
- case 'string': {
1952
- const stringY = String(y);
1953
- // a string could be a date
1954
- if (!!dateTimeFormat) {
1955
- const dateX = DateTime.fromFormat(x, dateTimeFormat);
1956
- const dateY = DateTime.fromFormat(stringY, dateTimeFormat);
1957
- if (dateX.isValid && dateY.isValid) {
1958
- return DataTableSortUtil.compareDate(dateX, dateY, ascending);
1959
- }
1960
- }
1961
- // .. but also a formatted number
1962
- if (!!numberFormat) {
1963
- const numberX = DataTableSortUtil.parseNumber(x, numberFormat);
1964
- const numberY = DataTableSortUtil.parseNumber(y, numberFormat);
1965
- if (typeof numberX === 'number' && typeof numberY === 'number') {
1966
- return DataTableSortUtil.compareNumber(numberX, numberY, ascending);
1967
- }
1961
+ }
1962
+ // .. but also a formatted number
1963
+ if (!!numberFormat) {
1964
+ const numberX = DataTableSortUtil.parseNumber(stringX, numberFormat);
1965
+ const numberY = DataTableSortUtil.parseNumber(stringY, numberFormat);
1966
+ if (typeof numberX === 'number' && typeof numberY === 'number') {
1967
+ return DataTableSortUtil.compareNumber(numberX, numberY, ascending);
1968
1968
  }
1969
- return DataTableSortUtil.compareString(x, stringY, ascending);
1970
1969
  }
1971
- case 'boolean':
1972
- return DataTableSortUtil.compareBoolean(x, y, ascending);
1973
- default:
1974
- // cannot compare -> return equal
1975
- return 0;
1970
+ return DataTableSortUtil.compareString(stringX, stringY, ascending);
1976
1971
  }
1972
+ return 0;
1977
1973
  }
1978
1974
  static compareNumber(x, y, ascending) {
1979
1975
  return ascending ? x - y : y - x;
@@ -4173,7 +4169,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
4173
4169
  type: Output
4174
4170
  }] } });
4175
4171
 
4176
- const VERSION = '17.3.3';
4172
+ const VERSION = '17.3.4';
4177
4173
 
4178
4174
  /*
4179
4175
  * Public API Surface of material-addons