zek 16.1.16 → 16.1.18

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.
@@ -8,6 +8,8 @@ import * as i1 from "@angular/common";
8
8
  import * as i2 from "@ngx-translate/core";
9
9
  export class ZekEditToolbar {
10
10
  constructor() {
11
+ this._showSave = true;
12
+ this._showCancel = true;
11
13
  this.printType = PrintType;
12
14
  this._showExport = false;
13
15
  this._showPrint = false;
@@ -25,6 +27,18 @@ export class ZekEditToolbar {
25
27
  this.onPrint = new EventEmitter();
26
28
  this.onExport = new EventEmitter();
27
29
  }
30
+ get showSave() {
31
+ return this._showSave;
32
+ }
33
+ set showSave(v) {
34
+ this._showSave = Convert.toBooleanProperty(v);
35
+ }
36
+ get showCancel() {
37
+ return this._showCancel;
38
+ }
39
+ set showCancel(v) {
40
+ this._showCancel = Convert.toBooleanProperty(v);
41
+ }
28
42
  get showExport() {
29
43
  return this._showExport;
30
44
  }
@@ -53,12 +67,16 @@ export class ZekEditToolbar {
53
67
  this.onExport.emit(1);
54
68
  }
55
69
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ZekEditToolbar, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
56
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: ZekEditToolbar, isStandalone: true, selector: "zek-edit-toolbar", inputs: { showExport: "showExport", showPrint: "showPrint", readOnly: "readOnly" }, outputs: { onSave: "onSave", onCancel: "onCancel", onPrint: "onPrint", onExport: "onExport" }, ngImport: i0, template: "<div class=\"btn-toolbar\" role=\"toolbar\" aria-label=\"Action toolbar\">\r\n <div class=\"btn-group me-2\" role=\"group\" aria-label=\"Save group\">\r\n <button type=\"submit\" class=\"btn btn-primary\" [disabled]=\"readOnly\"><i class=\"fa-solid fa-floppy-disk\"></i> {{ 'Action.Save' | translate }}</button>\r\n </div>\r\n <div class=\"btn-group me-2\" role=\"group\" aria-label=\"Cancel group\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"cancel()\"><i class=\"fa-solid fa-ban\"></i> {{ 'Action.Close' | translate }}</button>\r\n </div>\r\n <div *ngIf=\"showPrint\" class=\"btn-group me-2\" role=\"group\" aria-label=\"Print group\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"print(printType.Pdf)\"><i class=\"fa-solid fa-print\"></i> {{ 'Action.Print' | translate }}</button>\r\n <div class=\"btn-group\" role=\"group\">\r\n <button type=\"button\" class=\"btn btn-secondary dropdown-toggle dropdown-toggle-split\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n <span class=\"visually-hidden\">Toggle Dropdown</span>\r\n </button>\r\n <ul class=\"dropdown-menu\">\r\n <li><button type=\"button\" class=\"dropdown-item\" (click)=\"print(printType.Show)\"><i class=\"fa-solid fa-print\"></i> {{ 'Action.Print' | translate }}</button></li>\r\n <li><button type=\"button\" class=\"dropdown-item\" (click)=\"print(printType.Pdf)\"><i class=\"fa-solid fa-file-pdf\"></i> {{ 'Action.Print' | translate }} PDF</button></li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div *ngIf=\"showExport\" class=\"btn-group\" role=\"group\" aria-label=\"Filter / Export group\">\r\n <div class=\"btn-group\" role=\"group\">\r\n <button id=\"btnGroupExport\" type=\"button\" class=\"btn btn-secondary dropdown-toggle\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\"><i class=\"fa-solid fa-download\"></i> {{ 'Action.Export' | translate }}</button>\r\n <ul class=\"dropdown-menu\" aria-labelledby=\"btnGroupExport\">\r\n <li><a class=\"dropdown-item\" href=\"javascript:void(0)\" (click)=\"exportExcel()\"><i class=\"fa-solid fa-file-excel\"></i> Excel</a></li>\r\n </ul>\r\n </div>\r\n </div>\r\n <ng-content></ng-content>\r\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
70
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: ZekEditToolbar, isStandalone: true, selector: "zek-edit-toolbar", inputs: { showSave: "showSave", showCancel: "showCancel", showExport: "showExport", showPrint: "showPrint", readOnly: "readOnly" }, outputs: { onSave: "onSave", onCancel: "onCancel", onPrint: "onPrint", onExport: "onExport" }, ngImport: i0, template: "<div class=\"btn-toolbar\" role=\"toolbar\" aria-label=\"Action toolbar\">\r\n <div *ngIf=\"showSave\" class=\"btn-group me-2\" role=\"group\" aria-label=\"Save group\">\r\n <button type=\"submit\" class=\"btn btn-primary\" [disabled]=\"readOnly\"><i class=\"fa-solid fa-floppy-disk\"></i> {{ 'Action.Save' | translate }}</button>\r\n </div>\r\n <div *ngIf=\"showCancel\" class=\"btn-group me-2\" role=\"group\" aria-label=\"Cancel group\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"cancel()\"><i class=\"fa-solid fa-ban\"></i> {{ 'Action.Close' | translate }}</button>\r\n </div>\r\n <div *ngIf=\"showPrint\" class=\"btn-group me-2\" role=\"group\" aria-label=\"Print group\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"print(printType.Pdf)\"><i class=\"fa-solid fa-print\"></i> {{ 'Action.Print' | translate }}</button>\r\n <div class=\"btn-group\" role=\"group\">\r\n <button type=\"button\" class=\"btn btn-secondary dropdown-toggle dropdown-toggle-split\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n <span class=\"visually-hidden\">Toggle Dropdown</span>\r\n </button>\r\n <ul class=\"dropdown-menu\">\r\n <li><button type=\"button\" class=\"dropdown-item\" (click)=\"print(printType.Show)\"><i class=\"fa-solid fa-print\"></i> {{ 'Action.Print' | translate }}</button></li>\r\n <li><button type=\"button\" class=\"dropdown-item\" (click)=\"print(printType.Pdf)\"><i class=\"fa-solid fa-file-pdf\"></i> {{ 'Action.Print' | translate }} PDF</button></li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div *ngIf=\"showExport\" class=\"btn-group\" role=\"group\" aria-label=\"Filter / Export group\">\r\n <div class=\"btn-group\" role=\"group\">\r\n <button id=\"btnGroupExport\" type=\"button\" class=\"btn btn-secondary dropdown-toggle\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\"><i class=\"fa-solid fa-download\"></i> {{ 'Action.Export' | translate }}</button>\r\n <ul class=\"dropdown-menu\" aria-labelledby=\"btnGroupExport\">\r\n <li><a class=\"dropdown-item\" href=\"javascript:void(0)\" (click)=\"exportExcel()\"><i class=\"fa-solid fa-file-excel\"></i> Excel</a></li>\r\n </ul>\r\n </div>\r\n </div>\r\n <ng-content></ng-content>\r\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
57
71
  }
58
72
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ZekEditToolbar, decorators: [{
59
73
  type: Component,
60
- args: [{ standalone: true, selector: 'zek-edit-toolbar', imports: [CommonModule, TranslateModule], template: "<div class=\"btn-toolbar\" role=\"toolbar\" aria-label=\"Action toolbar\">\r\n <div class=\"btn-group me-2\" role=\"group\" aria-label=\"Save group\">\r\n <button type=\"submit\" class=\"btn btn-primary\" [disabled]=\"readOnly\"><i class=\"fa-solid fa-floppy-disk\"></i> {{ 'Action.Save' | translate }}</button>\r\n </div>\r\n <div class=\"btn-group me-2\" role=\"group\" aria-label=\"Cancel group\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"cancel()\"><i class=\"fa-solid fa-ban\"></i> {{ 'Action.Close' | translate }}</button>\r\n </div>\r\n <div *ngIf=\"showPrint\" class=\"btn-group me-2\" role=\"group\" aria-label=\"Print group\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"print(printType.Pdf)\"><i class=\"fa-solid fa-print\"></i> {{ 'Action.Print' | translate }}</button>\r\n <div class=\"btn-group\" role=\"group\">\r\n <button type=\"button\" class=\"btn btn-secondary dropdown-toggle dropdown-toggle-split\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n <span class=\"visually-hidden\">Toggle Dropdown</span>\r\n </button>\r\n <ul class=\"dropdown-menu\">\r\n <li><button type=\"button\" class=\"dropdown-item\" (click)=\"print(printType.Show)\"><i class=\"fa-solid fa-print\"></i> {{ 'Action.Print' | translate }}</button></li>\r\n <li><button type=\"button\" class=\"dropdown-item\" (click)=\"print(printType.Pdf)\"><i class=\"fa-solid fa-file-pdf\"></i> {{ 'Action.Print' | translate }} PDF</button></li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div *ngIf=\"showExport\" class=\"btn-group\" role=\"group\" aria-label=\"Filter / Export group\">\r\n <div class=\"btn-group\" role=\"group\">\r\n <button id=\"btnGroupExport\" type=\"button\" class=\"btn btn-secondary dropdown-toggle\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\"><i class=\"fa-solid fa-download\"></i> {{ 'Action.Export' | translate }}</button>\r\n <ul class=\"dropdown-menu\" aria-labelledby=\"btnGroupExport\">\r\n <li><a class=\"dropdown-item\" href=\"javascript:void(0)\" (click)=\"exportExcel()\"><i class=\"fa-solid fa-file-excel\"></i> Excel</a></li>\r\n </ul>\r\n </div>\r\n </div>\r\n <ng-content></ng-content>\r\n</div>" }]
61
- }], propDecorators: { showExport: [{
74
+ args: [{ standalone: true, selector: 'zek-edit-toolbar', imports: [CommonModule, TranslateModule], template: "<div class=\"btn-toolbar\" role=\"toolbar\" aria-label=\"Action toolbar\">\r\n <div *ngIf=\"showSave\" class=\"btn-group me-2\" role=\"group\" aria-label=\"Save group\">\r\n <button type=\"submit\" class=\"btn btn-primary\" [disabled]=\"readOnly\"><i class=\"fa-solid fa-floppy-disk\"></i> {{ 'Action.Save' | translate }}</button>\r\n </div>\r\n <div *ngIf=\"showCancel\" class=\"btn-group me-2\" role=\"group\" aria-label=\"Cancel group\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"cancel()\"><i class=\"fa-solid fa-ban\"></i> {{ 'Action.Close' | translate }}</button>\r\n </div>\r\n <div *ngIf=\"showPrint\" class=\"btn-group me-2\" role=\"group\" aria-label=\"Print group\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"print(printType.Pdf)\"><i class=\"fa-solid fa-print\"></i> {{ 'Action.Print' | translate }}</button>\r\n <div class=\"btn-group\" role=\"group\">\r\n <button type=\"button\" class=\"btn btn-secondary dropdown-toggle dropdown-toggle-split\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n <span class=\"visually-hidden\">Toggle Dropdown</span>\r\n </button>\r\n <ul class=\"dropdown-menu\">\r\n <li><button type=\"button\" class=\"dropdown-item\" (click)=\"print(printType.Show)\"><i class=\"fa-solid fa-print\"></i> {{ 'Action.Print' | translate }}</button></li>\r\n <li><button type=\"button\" class=\"dropdown-item\" (click)=\"print(printType.Pdf)\"><i class=\"fa-solid fa-file-pdf\"></i> {{ 'Action.Print' | translate }} PDF</button></li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div *ngIf=\"showExport\" class=\"btn-group\" role=\"group\" aria-label=\"Filter / Export group\">\r\n <div class=\"btn-group\" role=\"group\">\r\n <button id=\"btnGroupExport\" type=\"button\" class=\"btn btn-secondary dropdown-toggle\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\"><i class=\"fa-solid fa-download\"></i> {{ 'Action.Export' | translate }}</button>\r\n <ul class=\"dropdown-menu\" aria-labelledby=\"btnGroupExport\">\r\n <li><a class=\"dropdown-item\" href=\"javascript:void(0)\" (click)=\"exportExcel()\"><i class=\"fa-solid fa-file-excel\"></i> Excel</a></li>\r\n </ul>\r\n </div>\r\n </div>\r\n <ng-content></ng-content>\r\n</div>" }]
75
+ }], propDecorators: { showSave: [{
76
+ type: Input
77
+ }], showCancel: [{
78
+ type: Input
79
+ }], showExport: [{
62
80
  type: Input
63
81
  }], showPrint: [{
64
82
  type: Input
@@ -73,4 +91,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
73
91
  }], onExport: [{
74
92
  type: Output
75
93
  }] } });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC10b29sYmFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvbW9kdWxlcy9lZGl0LXRvb2xiYXIvZWRpdC10b29sYmFyLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvbW9kdWxlcy9lZGl0LXRvb2xiYXIvZWRpdC10b29sYmFyLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN0QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBUS9DLE1BQU0sT0FBTyxjQUFjO0lBTjNCO1FBUUksY0FBUyxHQUFHLFNBQVMsQ0FBQztRQUVkLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBVXBCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFTbkIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQVN6QixXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN0Qyx1Q0FBdUM7UUFDdkMsNkNBQTZDO1FBQzdDLElBQUk7UUFFTSxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUt4QyxZQUFZO1FBQ1osZ0NBQWdDO1FBQ2hDLFlBQVk7UUFDWiwyQkFBMkI7UUFDM0IsSUFBSTtRQUVNLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBYSxDQUFDO1FBTXhDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0tBSW5EO0lBckRHLElBQ0ksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBSSxVQUFVLENBQUMsQ0FBZTtRQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBSUQsSUFDSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLFNBQVMsQ0FBQyxDQUFlO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFHRCxJQUNJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLENBQWU7UUFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQVFELE1BQU07UUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFTRCxLQUFLLENBQUMsU0FBcUI7UUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUlELFdBQVc7UUFDUCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQixDQUFDOzhHQXpEUSxjQUFjO2tHQUFkLGNBQWMsK1BDYjNCLGsxRUE0Qk0sMkNEakJRLFlBQVksa0lBQUUsZUFBZTs7MkZBRTlCLGNBQWM7a0JBTjFCLFNBQVM7aUNBQ00sSUFBSSxZQUNOLGtCQUFrQixXQUVuQixDQUFDLFlBQVksRUFBRSxlQUFlLENBQUM7OEJBUXBDLFVBQVU7c0JBRGIsS0FBSztnQkFXRixTQUFTO3NCQURaLEtBQUs7Z0JBVUYsUUFBUTtzQkFEWCxLQUFLO2dCQVFJLE1BQU07c0JBQWYsTUFBTTtnQkFLRyxRQUFRO3NCQUFqQixNQUFNO2dCQVdHLE9BQU87c0JBQWhCLE1BQU07Z0JBTUcsUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBQcmludFR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvcHJpbnQubW9kZWwnO1xyXG5pbXBvcnQgeyBDb252ZXJ0IH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIHNlbGVjdG9yOiAnemVrLWVkaXQtdG9vbGJhcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vZWRpdC10b29sYmFyLmh0bWwnLFxyXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWmVrRWRpdFRvb2xiYXIge1xyXG5cclxuICAgIHByaW50VHlwZSA9IFByaW50VHlwZTtcclxuXHJcbiAgICBwcml2YXRlIF9zaG93RXhwb3J0ID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IHNob3dFeHBvcnQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Nob3dFeHBvcnQ7XHJcbiAgICB9XHJcbiAgICBzZXQgc2hvd0V4cG9ydCh2OiBCb29sZWFuSW5wdXQpIHtcclxuICAgICAgICB0aGlzLl9zaG93RXhwb3J0ID0gQ29udmVydC50b0Jvb2xlYW5Qcm9wZXJ0eSh2KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgcHJpdmF0ZSBfc2hvd1ByaW50ID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IHNob3dQcmludCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2hvd1ByaW50O1xyXG4gICAgfVxyXG4gICAgc2V0IHNob3dQcmludCh2OiBCb29sZWFuSW5wdXQpIHtcclxuICAgICAgICB0aGlzLl9zaG93UHJpbnQgPSBDb252ZXJ0LnRvQm9vbGVhblByb3BlcnR5KHYpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3JlYWRPbmx5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IHJlYWRPbmx5KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9yZWFkT25seTtcclxuICAgIH1cclxuICAgIHNldCByZWFkT25seSh2OiBCb29sZWFuSW5wdXQpIHtcclxuICAgICAgICB0aGlzLl9yZWFkT25seSA9IENvbnZlcnQudG9Cb29sZWFuUHJvcGVydHkodik7XHJcbiAgICB9XHJcblxyXG4gICAgQE91dHB1dCgpIG9uU2F2ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIC8vIHNhdmUobmF2aWdhdGVUb1JldHVyblVybDogYm9vbGVhbikge1xyXG4gICAgLy8gICAgIHRoaXMub25TYXZlLmVtaXQobmF2aWdhdGVUb1JldHVyblVybCk7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgQE91dHB1dCgpIG9uQ2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgY2FuY2VsKCkge1xyXG4gICAgICAgIHRoaXMub25DYW5jZWwuZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEBPdXRwdXQoKVxyXG4gICAgLy8gb25SZXNldCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIC8vIHJlc2V0KCkge1xyXG4gICAgLy8gICAgIHRoaXMub25SZXNldC5lbWl0KCk7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgQE91dHB1dCgpIG9uUHJpbnQgPSBuZXcgRXZlbnRFbWl0dGVyPFByaW50VHlwZT4oKTtcclxuICAgIHByaW50KHByaW50VHlwZT86IFByaW50VHlwZSkge1xyXG4gICAgICAgIHRoaXMub25QcmludC5lbWl0KHByaW50VHlwZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIEBPdXRwdXQoKSBvbkV4cG9ydCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG4gICAgZXhwb3J0RXhjZWwoKSB7XHJcbiAgICAgICAgdGhpcy5vbkV4cG9ydC5lbWl0KDEpO1xyXG4gICAgfVxyXG59IiwiPGRpdiBjbGFzcz1cImJ0bi10b29sYmFyXCIgcm9sZT1cInRvb2xiYXJcIiBhcmlhLWxhYmVsPVwiQWN0aW9uIHRvb2xiYXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJidG4tZ3JvdXAgbWUtMlwiIHJvbGU9XCJncm91cFwiIGFyaWEtbGFiZWw9XCJTYXZlIGdyb3VwXCI+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiBbZGlzYWJsZWRdPVwicmVhZE9ubHlcIj48aSBjbGFzcz1cImZhLXNvbGlkIGZhLWZsb3BweS1kaXNrXCI+PC9pPiB7eyAnQWN0aW9uLlNhdmUnIHwgdHJhbnNsYXRlIH19PC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJidG4tZ3JvdXAgbWUtMlwiIHJvbGU9XCJncm91cFwiIGFyaWEtbGFiZWw9XCJDYW5jZWwgZ3JvdXBcIj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+PGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1iYW5cIj48L2k+IHt7ICdBY3Rpb24uQ2xvc2UnIHwgdHJhbnNsYXRlIH19PC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJzaG93UHJpbnRcIiBjbGFzcz1cImJ0bi1ncm91cCBtZS0yXCIgcm9sZT1cImdyb3VwXCIgYXJpYS1sYWJlbD1cIlByaW50IGdyb3VwXCI+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIChjbGljayk9XCJwcmludChwcmludFR5cGUuUGRmKVwiPjxpIGNsYXNzPVwiZmEtc29saWQgZmEtcHJpbnRcIj48L2k+IHt7ICdBY3Rpb24uUHJpbnQnIHwgdHJhbnNsYXRlIH19PC9idXR0b24+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1ncm91cFwiIHJvbGU9XCJncm91cFwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IGRyb3Bkb3duLXRvZ2dsZSBkcm9wZG93bi10b2dnbGUtc3BsaXRcIiBkYXRhLWJzLXRvZ2dsZT1cImRyb3Bkb3duXCIgYXJpYS1leHBhbmRlZD1cImZhbHNlXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPlRvZ2dsZSBEcm9wZG93bjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDx1bCBjbGFzcz1cImRyb3Bkb3duLW1lbnVcIj5cclxuICAgICAgICAgICAgICAgIDxsaT48YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIiAoY2xpY2spPVwicHJpbnQocHJpbnRUeXBlLlNob3cpXCI+PGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1wcmludFwiPjwvaT4ge3sgJ0FjdGlvbi5QcmludCcgfCB0cmFuc2xhdGUgfX08L2J1dHRvbj48L2xpPlxyXG4gICAgICAgICAgICAgICAgPGxpPjxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiZHJvcGRvd24taXRlbVwiIChjbGljayk9XCJwcmludChwcmludFR5cGUuUGRmKVwiPjxpIGNsYXNzPVwiZmEtc29saWQgZmEtZmlsZS1wZGZcIj48L2k+IHt7ICdBY3Rpb24uUHJpbnQnIHwgdHJhbnNsYXRlIH19IFBERjwvYnV0dG9uPjwvbGk+XHJcbiAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJzaG93RXhwb3J0XCIgY2xhc3M9XCJidG4tZ3JvdXBcIiByb2xlPVwiZ3JvdXBcIiBhcmlhLWxhYmVsPVwiRmlsdGVyIC8gRXhwb3J0IGdyb3VwXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1ncm91cFwiIHJvbGU9XCJncm91cFwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGlkPVwiYnRuR3JvdXBFeHBvcnRcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeSBkcm9wZG93bi10b2dnbGVcIiBkYXRhLWJzLXRvZ2dsZT1cImRyb3Bkb3duXCIgYXJpYS1leHBhbmRlZD1cImZhbHNlXCI+PGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1kb3dubG9hZFwiPjwvaT4ge3sgJ0FjdGlvbi5FeHBvcnQnIHwgdHJhbnNsYXRlIH19PC9idXR0b24+XHJcbiAgICAgICAgICAgIDx1bCBjbGFzcz1cImRyb3Bkb3duLW1lbnVcIiBhcmlhLWxhYmVsbGVkYnk9XCJidG5Hcm91cEV4cG9ydFwiPlxyXG4gICAgICAgICAgICAgICAgPGxpPjxhIGNsYXNzPVwiZHJvcGRvd24taXRlbVwiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiAoY2xpY2spPVwiZXhwb3J0RXhjZWwoKVwiPjxpIGNsYXNzPVwiZmEtc29saWQgZmEtZmlsZS1leGNlbFwiPjwvaT4gRXhjZWw8L2E+PC9saT5cclxuICAgICAgICAgICAgPC91bD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG48L2Rpdj4iXX0=
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC10b29sYmFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvbW9kdWxlcy9lZGl0LXRvb2xiYXIvZWRpdC10b29sYmFyLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvbW9kdWxlcy9lZGl0LXRvb2xiYXIvZWRpdC10b29sYmFyLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN0QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBUS9DLE1BQU0sT0FBTyxjQUFjO0lBTjNCO1FBUVksY0FBUyxHQUFHLElBQUksQ0FBQztRQVNqQixnQkFBVyxHQUFHLElBQUksQ0FBQztRQVUzQixjQUFTLEdBQUcsU0FBUyxDQUFDO1FBRWQsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFVcEIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQVNuQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBU2hCLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3RDLHVDQUF1QztRQUN2Qyw2Q0FBNkM7UUFDN0MsSUFBSTtRQUVNLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBS3hDLFlBQVk7UUFDWixnQ0FBZ0M7UUFDaEMsWUFBWTtRQUNaLDJCQUEyQjtRQUMzQixJQUFJO1FBRU0sWUFBTyxHQUFHLElBQUksWUFBWSxFQUFhLENBQUM7UUFNeEMsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7S0FJbkQ7SUExRUcsSUFDSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxDQUFlO1FBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFHRCxJQUNJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUNELElBQUksVUFBVSxDQUFDLENBQWU7UUFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQU1ELElBQ0ksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBSSxVQUFVLENBQUMsQ0FBZTtRQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBSUQsSUFDSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLFNBQVMsQ0FBQyxDQUFlO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFHRCxJQUNJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLENBQWU7UUFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQVFELE1BQU07UUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFTRCxLQUFLLENBQUMsU0FBcUI7UUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUlELFdBQVc7UUFDUCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQixDQUFDOzhHQTVFUSxjQUFjO2tHQUFkLGNBQWMsK1NDYjNCLDIzRUE0Qk0sMkNEakJRLFlBQVksa0lBQUUsZUFBZTs7MkZBRTlCLGNBQWM7a0JBTjFCLFNBQVM7aUNBQ00sSUFBSSxZQUNOLGtCQUFrQixXQUVuQixDQUFDLFlBQVksRUFBRSxlQUFlLENBQUM7OEJBTXBDLFFBQVE7c0JBRFgsS0FBSztnQkFVRixVQUFVO3NCQURiLEtBQUs7Z0JBYUYsVUFBVTtzQkFEYixLQUFLO2dCQVdGLFNBQVM7c0JBRFosS0FBSztnQkFVRixRQUFRO3NCQURYLEtBQUs7Z0JBUUksTUFBTTtzQkFBZixNQUFNO2dCQUtHLFFBQVE7c0JBQWpCLE1BQU07Z0JBV0csT0FBTztzQkFBaEIsTUFBTTtnQkFNRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQm9vbGVhbklucHV0IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IFByaW50VHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9wcmludC5tb2RlbCc7XHJcbmltcG9ydCB7IENvbnZlcnQgfSBmcm9tICcuLi8uLi91dGlscyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgc2VsZWN0b3I6ICd6ZWstZWRpdC10b29sYmFyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9lZGl0LXRvb2xiYXIuaHRtbCcsXHJcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBaZWtFZGl0VG9vbGJhciB7XHJcblxyXG4gICAgcHJpdmF0ZSBfc2hvd1NhdmUgPSB0cnVlO1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBzaG93U2F2ZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2hvd1NhdmU7XHJcbiAgICB9XHJcbiAgICBzZXQgc2hvd1NhdmUodjogQm9vbGVhbklucHV0KSB7XHJcbiAgICAgICAgdGhpcy5fc2hvd1NhdmUgPSBDb252ZXJ0LnRvQm9vbGVhblByb3BlcnR5KHYpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3Nob3dDYW5jZWwgPSB0cnVlO1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBzaG93Q2FuY2VsKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zaG93Q2FuY2VsO1xyXG4gICAgfVxyXG4gICAgc2V0IHNob3dDYW5jZWwodjogQm9vbGVhbklucHV0KSB7XHJcbiAgICAgICAgdGhpcy5fc2hvd0NhbmNlbCA9IENvbnZlcnQudG9Cb29sZWFuUHJvcGVydHkodik7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHByaW50VHlwZSA9IFByaW50VHlwZTtcclxuXHJcbiAgICBwcml2YXRlIF9zaG93RXhwb3J0ID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IHNob3dFeHBvcnQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Nob3dFeHBvcnQ7XHJcbiAgICB9XHJcbiAgICBzZXQgc2hvd0V4cG9ydCh2OiBCb29sZWFuSW5wdXQpIHtcclxuICAgICAgICB0aGlzLl9zaG93RXhwb3J0ID0gQ29udmVydC50b0Jvb2xlYW5Qcm9wZXJ0eSh2KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgcHJpdmF0ZSBfc2hvd1ByaW50ID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IHNob3dQcmludCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2hvd1ByaW50O1xyXG4gICAgfVxyXG4gICAgc2V0IHNob3dQcmludCh2OiBCb29sZWFuSW5wdXQpIHtcclxuICAgICAgICB0aGlzLl9zaG93UHJpbnQgPSBDb252ZXJ0LnRvQm9vbGVhblByb3BlcnR5KHYpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3JlYWRPbmx5ID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IHJlYWRPbmx5KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9yZWFkT25seTtcclxuICAgIH1cclxuICAgIHNldCByZWFkT25seSh2OiBCb29sZWFuSW5wdXQpIHtcclxuICAgICAgICB0aGlzLl9yZWFkT25seSA9IENvbnZlcnQudG9Cb29sZWFuUHJvcGVydHkodik7XHJcbiAgICB9XHJcblxyXG4gICAgQE91dHB1dCgpIG9uU2F2ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIC8vIHNhdmUobmF2aWdhdGVUb1JldHVyblVybDogYm9vbGVhbikge1xyXG4gICAgLy8gICAgIHRoaXMub25TYXZlLmVtaXQobmF2aWdhdGVUb1JldHVyblVybCk7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgQE91dHB1dCgpIG9uQ2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgY2FuY2VsKCkge1xyXG4gICAgICAgIHRoaXMub25DYW5jZWwuZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEBPdXRwdXQoKVxyXG4gICAgLy8gb25SZXNldCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIC8vIHJlc2V0KCkge1xyXG4gICAgLy8gICAgIHRoaXMub25SZXNldC5lbWl0KCk7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgQE91dHB1dCgpIG9uUHJpbnQgPSBuZXcgRXZlbnRFbWl0dGVyPFByaW50VHlwZT4oKTtcclxuICAgIHByaW50KHByaW50VHlwZT86IFByaW50VHlwZSkge1xyXG4gICAgICAgIHRoaXMub25QcmludC5lbWl0KHByaW50VHlwZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIEBPdXRwdXQoKSBvbkV4cG9ydCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG4gICAgZXhwb3J0RXhjZWwoKSB7XHJcbiAgICAgICAgdGhpcy5vbkV4cG9ydC5lbWl0KDEpO1xyXG4gICAgfVxyXG59IiwiPGRpdiBjbGFzcz1cImJ0bi10b29sYmFyXCIgcm9sZT1cInRvb2xiYXJcIiBhcmlhLWxhYmVsPVwiQWN0aW9uIHRvb2xiYXJcIj5cclxuICAgIDxkaXYgKm5nSWY9XCJzaG93U2F2ZVwiIGNsYXNzPVwiYnRuLWdyb3VwIG1lLTJcIiByb2xlPVwiZ3JvdXBcIiBhcmlhLWxhYmVsPVwiU2F2ZSBncm91cFwiPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgW2Rpc2FibGVkXT1cInJlYWRPbmx5XCI+PGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1mbG9wcHktZGlza1wiPjwvaT4ge3sgJ0FjdGlvbi5TYXZlJyB8IHRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICAqbmdJZj1cInNob3dDYW5jZWxcIiBjbGFzcz1cImJ0bi1ncm91cCBtZS0yXCIgcm9sZT1cImdyb3VwXCIgYXJpYS1sYWJlbD1cIkNhbmNlbCBncm91cFwiPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiAoY2xpY2spPVwiY2FuY2VsKClcIj48aSBjbGFzcz1cImZhLXNvbGlkIGZhLWJhblwiPjwvaT4ge3sgJ0FjdGlvbi5DbG9zZScgfCB0cmFuc2xhdGUgfX08L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cInNob3dQcmludFwiIGNsYXNzPVwiYnRuLWdyb3VwIG1lLTJcIiByb2xlPVwiZ3JvdXBcIiBhcmlhLWxhYmVsPVwiUHJpbnQgZ3JvdXBcIj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgKGNsaWNrKT1cInByaW50KHByaW50VHlwZS5QZGYpXCI+PGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1wcmludFwiPjwvaT4ge3sgJ0FjdGlvbi5QcmludCcgfCB0cmFuc2xhdGUgfX08L2J1dHRvbj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLWdyb3VwXCIgcm9sZT1cImdyb3VwXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgZHJvcGRvd24tdG9nZ2xlIGRyb3Bkb3duLXRvZ2dsZS1zcGxpdFwiIGRhdGEtYnMtdG9nZ2xlPVwiZHJvcGRvd25cIiBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+VG9nZ2xlIERyb3Bkb3duPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPHVsIGNsYXNzPVwiZHJvcGRvd24tbWVudVwiPlxyXG4gICAgICAgICAgICAgICAgPGxpPjxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiZHJvcGRvd24taXRlbVwiIChjbGljayk9XCJwcmludChwcmludFR5cGUuU2hvdylcIj48aSBjbGFzcz1cImZhLXNvbGlkIGZhLXByaW50XCI+PC9pPiB7eyAnQWN0aW9uLlByaW50JyB8IHRyYW5zbGF0ZSB9fTwvYnV0dG9uPjwvbGk+XHJcbiAgICAgICAgICAgICAgICA8bGk+PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgKGNsaWNrKT1cInByaW50KHByaW50VHlwZS5QZGYpXCI+PGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1maWxlLXBkZlwiPjwvaT4ge3sgJ0FjdGlvbi5QcmludCcgfCB0cmFuc2xhdGUgfX0gUERGPC9idXR0b24+PC9saT5cclxuICAgICAgICAgICAgPC91bD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cInNob3dFeHBvcnRcIiBjbGFzcz1cImJ0bi1ncm91cFwiIHJvbGU9XCJncm91cFwiIGFyaWEtbGFiZWw9XCJGaWx0ZXIgLyBFeHBvcnQgZ3JvdXBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLWdyb3VwXCIgcm9sZT1cImdyb3VwXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gaWQ9XCJidG5Hcm91cEV4cG9ydFwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IGRyb3Bkb3duLXRvZ2dsZVwiIGRhdGEtYnMtdG9nZ2xlPVwiZHJvcGRvd25cIiBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIj48aSBjbGFzcz1cImZhLXNvbGlkIGZhLWRvd25sb2FkXCI+PC9pPiB7eyAnQWN0aW9uLkV4cG9ydCcgfCB0cmFuc2xhdGUgfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgPHVsIGNsYXNzPVwiZHJvcGRvd24tbWVudVwiIGFyaWEtbGFiZWxsZWRieT1cImJ0bkdyb3VwRXhwb3J0XCI+XHJcbiAgICAgICAgICAgICAgICA8bGk+PGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIChjbGljayk9XCJleHBvcnRFeGNlbCgpXCI+PGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1maWxlLWV4Y2VsXCI+PC9pPiBFeGNlbDwvYT48L2xpPlxyXG4gICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbjwvZGl2PiJdfQ==
@@ -11,9 +11,8 @@ export class StringHelper {
11
11
  return typeof value === 'undefined' || value == null || ((typeof value === 'string') && value.trim().length === 0);
12
12
  }
13
13
  static tryTrim(val) {
14
- if (val === undefined || val === null) {
14
+ if (!val)
15
15
  return val;
16
- }
17
16
  return val.trim();
18
17
  }
19
18
  static ifNullEmpty(value) {
@@ -28,5 +27,25 @@ export class StringHelper {
28
27
  }
29
28
  return val + separator + part;
30
29
  }
30
+ static trim(val, ch) {
31
+ if (!val || !ch)
32
+ return val;
33
+ var start = 0, end = val.length;
34
+ while (start < end && val[start] === ch)
35
+ ++start;
36
+ while (end > start && val[end - 1] === ch)
37
+ --end;
38
+ return (start > 0 || end < val.length) ? val.substring(start, end) : val;
39
+ }
40
+ static trimAny(val, chars) {
41
+ if (!val || !chars)
42
+ return val;
43
+ var start = 0, end = val.length;
44
+ while (start < end && chars.indexOf(val[start]) >= 0)
45
+ ++start;
46
+ while (end > start && chars.indexOf(val[end - 1]) >= 0)
47
+ --end;
48
+ return (start > 0 || end < val.length) ? val.substring(start, end) : val;
49
+ }
31
50
  }
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3play9zcmMvbGliL3V0aWxzL3N0cmluZy1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFlBQVk7SUFDckIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFpQjtRQUMvQixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUNsQixPQUFPLENBQUMsQ0FBQztRQUViLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQXFCO1FBQ3RDLE9BQU8sT0FBTyxLQUFLLEtBQUssV0FBVyxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDaEgsQ0FBQztJQUNELE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxLQUFxQjtRQUMzQyxPQUFPLE9BQU8sS0FBSyxLQUFLLFdBQVcsSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3ZILENBQUM7SUFDRCxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQThCO1FBQ3pDLElBQUksR0FBRyxLQUFLLFNBQVMsSUFBSSxHQUFHLEtBQUssSUFBSSxFQUFFO1lBQ25DLE9BQU8sR0FBRyxDQUFDO1NBQ2Q7UUFDRCxPQUFPLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBQ0QsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFxQjtRQUNwQyxPQUFPLE9BQU8sS0FBSyxLQUFLLFdBQVcsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUN0RSxDQUFDO0lBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUE4QixFQUFFLFNBQWlCLEVBQUUsSUFBK0I7UUFDMUYsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFFRCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDMUIsT0FBTyxHQUFHLENBQUM7U0FDZDtRQUVELE9BQU8sR0FBRyxHQUFHLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDbEMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFN0cmluZ0hlbHBlciB7XHJcbiAgICBzdGF0aWMgZmlyc3RVcHBlcih2Pzogc3RyaW5nIHwgbnVsbCkge1xyXG4gICAgICAgIGlmICghdiB8fCB2Lmxlbmd0aCA8IDEpXHJcbiAgICAgICAgICAgIHJldHVybiB2O1xyXG5cclxuICAgICAgICByZXR1cm4gdi5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHYuc2xpY2UoMSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzTnVsbE9yRW1wdHkodmFsdWU/OiBzdHJpbmcgfCBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcgfHwgdmFsdWUgPT0gbnVsbCB8fCAoKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpICYmIHZhbHVlLmxlbmd0aCA9PT0gMCk7XHJcbiAgICB9XHJcbiAgICBzdGF0aWMgaXNOdWxsT3JXaGl0ZVNwYWNlKHZhbHVlPzogc3RyaW5nIHwgbnVsbCkge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnIHx8IHZhbHVlID09IG51bGwgfHwgKCh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSAmJiB2YWx1ZS50cmltKCkubGVuZ3RoID09PSAwKTtcclxuICAgIH1cclxuICAgIHN0YXRpYyB0cnlUcmltKHZhbDogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCkge1xyXG4gICAgICAgIGlmICh2YWwgPT09IHVuZGVmaW5lZCB8fCB2YWwgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHZhbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHZhbC50cmltKCk7XHJcbiAgICB9XHJcbiAgICBzdGF0aWMgaWZOdWxsRW1wdHkodmFsdWU/OiBzdHJpbmcgfCBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcgfHwgdmFsdWUgPT0gbnVsbCA/ICcnIDogdmFsdWU7XHJcbiAgICB9XHJcbiAgICBzdGF0aWMgam9pbih2YWw6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwsIHNlcGFyYXRvcjogc3RyaW5nLCBwYXJ0OiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNOdWxsT3JFbXB0eSh2YWwpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBwYXJ0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaXNOdWxsT3JFbXB0eShwYXJ0KSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdmFsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHZhbCArIHNlcGFyYXRvciArIHBhcnQ7XHJcbiAgICB9XHJcbn0iXX0=
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3play9zcmMvbGliL3V0aWxzL3N0cmluZy1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFlBQVk7SUFDckIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFpQjtRQUMvQixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUNsQixPQUFPLENBQUMsQ0FBQztRQUViLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQXFCO1FBQ3RDLE9BQU8sT0FBTyxLQUFLLEtBQUssV0FBVyxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDaEgsQ0FBQztJQUNELE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxLQUFxQjtRQUMzQyxPQUFPLE9BQU8sS0FBSyxLQUFLLFdBQVcsSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3ZILENBQUM7SUFDRCxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQThCO1FBQ3pDLElBQUksQ0FBQyxHQUFHO1lBQ0osT0FBTyxHQUFHLENBQUM7UUFDZixPQUFPLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBQ0QsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFxQjtRQUNwQyxPQUFPLE9BQU8sS0FBSyxLQUFLLFdBQVcsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUN0RSxDQUFDO0lBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUE4QixFQUFFLFNBQWlCLEVBQUUsSUFBK0I7UUFDMUYsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDMUIsT0FBTyxHQUFHLENBQUM7U0FDZDtRQUVELE9BQU8sR0FBRyxHQUFHLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDbEMsQ0FBQztJQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBa0IsRUFBRSxFQUFVO1FBQ3RDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFO1lBQ1gsT0FBTyxHQUFHLENBQUM7UUFFZixJQUFJLEtBQUssR0FBRyxDQUFDLEVBQ1QsR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFFckIsT0FBTyxLQUFLLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFO1lBQ25DLEVBQUUsS0FBSyxDQUFDO1FBRVosT0FBTyxHQUFHLEdBQUcsS0FBSyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRTtZQUNyQyxFQUFFLEdBQUcsQ0FBQztRQUVWLE9BQU8sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDN0UsQ0FBQztJQUNELE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBa0IsRUFBRSxLQUFhO1FBQzVDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLO1lBQ2QsT0FBTyxHQUFHLENBQUM7UUFFZixJQUFJLEtBQUssR0FBRyxDQUFDLEVBQ1QsR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFFckIsT0FBTyxLQUFLLEdBQUcsR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNoRCxFQUFFLEtBQUssQ0FBQztRQUVaLE9BQU8sR0FBRyxHQUFHLEtBQUssSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ2xELEVBQUUsR0FBRyxDQUFDO1FBRVYsT0FBTyxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUM3RSxDQUFDO0NBRUoiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgU3RyaW5nSGVscGVyIHtcclxuICAgIHN0YXRpYyBmaXJzdFVwcGVyKHY/OiBzdHJpbmcgfCBudWxsKSB7XHJcbiAgICAgICAgaWYgKCF2IHx8IHYubGVuZ3RoIDwgMSlcclxuICAgICAgICAgICAgcmV0dXJuIHY7XHJcblxyXG4gICAgICAgIHJldHVybiB2LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdi5zbGljZSgxKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgaXNOdWxsT3JFbXB0eSh2YWx1ZT86IHN0cmluZyB8IG51bGwpIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJyB8fCB2YWx1ZSA9PSBudWxsIHx8ICgodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykgJiYgdmFsdWUubGVuZ3RoID09PSAwKTtcclxuICAgIH1cclxuICAgIHN0YXRpYyBpc051bGxPcldoaXRlU3BhY2UodmFsdWU/OiBzdHJpbmcgfCBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcgfHwgdmFsdWUgPT0gbnVsbCB8fCAoKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpICYmIHZhbHVlLnRyaW0oKS5sZW5ndGggPT09IDApO1xyXG4gICAgfVxyXG4gICAgc3RhdGljIHRyeVRyaW0odmFsOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsKSB7XHJcbiAgICAgICAgaWYgKCF2YWwpXHJcbiAgICAgICAgICAgIHJldHVybiB2YWw7XHJcbiAgICAgICAgcmV0dXJuIHZhbC50cmltKCk7XHJcbiAgICB9XHJcbiAgICBzdGF0aWMgaWZOdWxsRW1wdHkodmFsdWU/OiBzdHJpbmcgfCBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcgfHwgdmFsdWUgPT0gbnVsbCA/ICcnIDogdmFsdWU7XHJcbiAgICB9XHJcbiAgICBzdGF0aWMgam9pbih2YWw6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwsIHNlcGFyYXRvcjogc3RyaW5nLCBwYXJ0OiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNOdWxsT3JFbXB0eSh2YWwpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBwYXJ0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5pc051bGxPckVtcHR5KHBhcnQpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdmFsICsgc2VwYXJhdG9yICsgcGFydDtcclxuICAgIH1cclxuICAgIHN0YXRpYyB0cmltKHZhbDogc3RyaW5nIHwgbnVsbCwgY2g6IHN0cmluZykge1xyXG4gICAgICAgIGlmICghdmFsIHx8ICFjaClcclxuICAgICAgICAgICAgcmV0dXJuIHZhbDtcclxuXHJcbiAgICAgICAgdmFyIHN0YXJ0ID0gMCxcclxuICAgICAgICAgICAgZW5kID0gdmFsLmxlbmd0aDtcclxuXHJcbiAgICAgICAgd2hpbGUgKHN0YXJ0IDwgZW5kICYmIHZhbFtzdGFydF0gPT09IGNoKVxyXG4gICAgICAgICAgICArK3N0YXJ0O1xyXG5cclxuICAgICAgICB3aGlsZSAoZW5kID4gc3RhcnQgJiYgdmFsW2VuZCAtIDFdID09PSBjaClcclxuICAgICAgICAgICAgLS1lbmQ7XHJcblxyXG4gICAgICAgIHJldHVybiAoc3RhcnQgPiAwIHx8IGVuZCA8IHZhbC5sZW5ndGgpID8gdmFsLnN1YnN0cmluZyhzdGFydCwgZW5kKSA6IHZhbDtcclxuICAgIH1cclxuICAgIHN0YXRpYyB0cmltQW55KHZhbDogc3RyaW5nIHwgbnVsbCwgY2hhcnM6IHN0cmluZykge1xyXG4gICAgICAgIGlmICghdmFsIHx8ICFjaGFycylcclxuICAgICAgICAgICAgcmV0dXJuIHZhbDtcclxuXHJcbiAgICAgICAgdmFyIHN0YXJ0ID0gMCxcclxuICAgICAgICAgICAgZW5kID0gdmFsLmxlbmd0aDtcclxuXHJcbiAgICAgICAgd2hpbGUgKHN0YXJ0IDwgZW5kICYmIGNoYXJzLmluZGV4T2YodmFsW3N0YXJ0XSkgPj0gMClcclxuICAgICAgICAgICAgKytzdGFydDtcclxuXHJcbiAgICAgICAgd2hpbGUgKGVuZCA+IHN0YXJ0ICYmIGNoYXJzLmluZGV4T2YodmFsW2VuZCAtIDFdKSA+PSAwKVxyXG4gICAgICAgICAgICAtLWVuZDtcclxuXHJcbiAgICAgICAgcmV0dXJuIChzdGFydCA+IDAgfHwgZW5kIDwgdmFsLmxlbmd0aCkgPyB2YWwuc3Vic3RyaW5nKHN0YXJ0LCBlbmQpIDogdmFsO1xyXG4gICAgfVxyXG5cclxufSJdfQ==
package/fesm2022/zek.mjs CHANGED
@@ -1040,9 +1040,8 @@ class StringHelper {
1040
1040
  return typeof value === 'undefined' || value == null || ((typeof value === 'string') && value.trim().length === 0);
1041
1041
  }
1042
1042
  static tryTrim(val) {
1043
- if (val === undefined || val === null) {
1043
+ if (!val)
1044
1044
  return val;
1045
- }
1046
1045
  return val.trim();
1047
1046
  }
1048
1047
  static ifNullEmpty(value) {
@@ -1057,6 +1056,26 @@ class StringHelper {
1057
1056
  }
1058
1057
  return val + separator + part;
1059
1058
  }
1059
+ static trim(val, ch) {
1060
+ if (!val || !ch)
1061
+ return val;
1062
+ var start = 0, end = val.length;
1063
+ while (start < end && val[start] === ch)
1064
+ ++start;
1065
+ while (end > start && val[end - 1] === ch)
1066
+ --end;
1067
+ return (start > 0 || end < val.length) ? val.substring(start, end) : val;
1068
+ }
1069
+ static trimAny(val, chars) {
1070
+ if (!val || !chars)
1071
+ return val;
1072
+ var start = 0, end = val.length;
1073
+ while (start < end && chars.indexOf(val[start]) >= 0)
1074
+ ++start;
1075
+ while (end > start && chars.indexOf(val[end - 1]) >= 0)
1076
+ --end;
1077
+ return (start > 0 || end < val.length) ? val.substring(start, end) : val;
1078
+ }
1060
1079
  }
1061
1080
 
1062
1081
  var firstBy = (function () {
@@ -3612,6 +3631,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
3612
3631
 
3613
3632
  class ZekEditToolbar {
3614
3633
  constructor() {
3634
+ this._showSave = true;
3635
+ this._showCancel = true;
3615
3636
  this.printType = PrintType;
3616
3637
  this._showExport = false;
3617
3638
  this._showPrint = false;
@@ -3629,6 +3650,18 @@ class ZekEditToolbar {
3629
3650
  this.onPrint = new EventEmitter();
3630
3651
  this.onExport = new EventEmitter();
3631
3652
  }
3653
+ get showSave() {
3654
+ return this._showSave;
3655
+ }
3656
+ set showSave(v) {
3657
+ this._showSave = Convert.toBooleanProperty(v);
3658
+ }
3659
+ get showCancel() {
3660
+ return this._showCancel;
3661
+ }
3662
+ set showCancel(v) {
3663
+ this._showCancel = Convert.toBooleanProperty(v);
3664
+ }
3632
3665
  get showExport() {
3633
3666
  return this._showExport;
3634
3667
  }
@@ -3657,12 +3690,16 @@ class ZekEditToolbar {
3657
3690
  this.onExport.emit(1);
3658
3691
  }
3659
3692
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ZekEditToolbar, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3660
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: ZekEditToolbar, isStandalone: true, selector: "zek-edit-toolbar", inputs: { showExport: "showExport", showPrint: "showPrint", readOnly: "readOnly" }, outputs: { onSave: "onSave", onCancel: "onCancel", onPrint: "onPrint", onExport: "onExport" }, ngImport: i0, template: "<div class=\"btn-toolbar\" role=\"toolbar\" aria-label=\"Action toolbar\">\r\n <div class=\"btn-group me-2\" role=\"group\" aria-label=\"Save group\">\r\n <button type=\"submit\" class=\"btn btn-primary\" [disabled]=\"readOnly\"><i class=\"fa-solid fa-floppy-disk\"></i> {{ 'Action.Save' | translate }}</button>\r\n </div>\r\n <div class=\"btn-group me-2\" role=\"group\" aria-label=\"Cancel group\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"cancel()\"><i class=\"fa-solid fa-ban\"></i> {{ 'Action.Close' | translate }}</button>\r\n </div>\r\n <div *ngIf=\"showPrint\" class=\"btn-group me-2\" role=\"group\" aria-label=\"Print group\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"print(printType.Pdf)\"><i class=\"fa-solid fa-print\"></i> {{ 'Action.Print' | translate }}</button>\r\n <div class=\"btn-group\" role=\"group\">\r\n <button type=\"button\" class=\"btn btn-secondary dropdown-toggle dropdown-toggle-split\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n <span class=\"visually-hidden\">Toggle Dropdown</span>\r\n </button>\r\n <ul class=\"dropdown-menu\">\r\n <li><button type=\"button\" class=\"dropdown-item\" (click)=\"print(printType.Show)\"><i class=\"fa-solid fa-print\"></i> {{ 'Action.Print' | translate }}</button></li>\r\n <li><button type=\"button\" class=\"dropdown-item\" (click)=\"print(printType.Pdf)\"><i class=\"fa-solid fa-file-pdf\"></i> {{ 'Action.Print' | translate }} PDF</button></li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div *ngIf=\"showExport\" class=\"btn-group\" role=\"group\" aria-label=\"Filter / Export group\">\r\n <div class=\"btn-group\" role=\"group\">\r\n <button id=\"btnGroupExport\" type=\"button\" class=\"btn btn-secondary dropdown-toggle\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\"><i class=\"fa-solid fa-download\"></i> {{ 'Action.Export' | translate }}</button>\r\n <ul class=\"dropdown-menu\" aria-labelledby=\"btnGroupExport\">\r\n <li><a class=\"dropdown-item\" href=\"javascript:void(0)\" (click)=\"exportExcel()\"><i class=\"fa-solid fa-file-excel\"></i> Excel</a></li>\r\n </ul>\r\n </div>\r\n </div>\r\n <ng-content></ng-content>\r\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] }); }
3693
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: ZekEditToolbar, isStandalone: true, selector: "zek-edit-toolbar", inputs: { showSave: "showSave", showCancel: "showCancel", showExport: "showExport", showPrint: "showPrint", readOnly: "readOnly" }, outputs: { onSave: "onSave", onCancel: "onCancel", onPrint: "onPrint", onExport: "onExport" }, ngImport: i0, template: "<div class=\"btn-toolbar\" role=\"toolbar\" aria-label=\"Action toolbar\">\r\n <div *ngIf=\"showSave\" class=\"btn-group me-2\" role=\"group\" aria-label=\"Save group\">\r\n <button type=\"submit\" class=\"btn btn-primary\" [disabled]=\"readOnly\"><i class=\"fa-solid fa-floppy-disk\"></i> {{ 'Action.Save' | translate }}</button>\r\n </div>\r\n <div *ngIf=\"showCancel\" class=\"btn-group me-2\" role=\"group\" aria-label=\"Cancel group\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"cancel()\"><i class=\"fa-solid fa-ban\"></i> {{ 'Action.Close' | translate }}</button>\r\n </div>\r\n <div *ngIf=\"showPrint\" class=\"btn-group me-2\" role=\"group\" aria-label=\"Print group\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"print(printType.Pdf)\"><i class=\"fa-solid fa-print\"></i> {{ 'Action.Print' | translate }}</button>\r\n <div class=\"btn-group\" role=\"group\">\r\n <button type=\"button\" class=\"btn btn-secondary dropdown-toggle dropdown-toggle-split\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n <span class=\"visually-hidden\">Toggle Dropdown</span>\r\n </button>\r\n <ul class=\"dropdown-menu\">\r\n <li><button type=\"button\" class=\"dropdown-item\" (click)=\"print(printType.Show)\"><i class=\"fa-solid fa-print\"></i> {{ 'Action.Print' | translate }}</button></li>\r\n <li><button type=\"button\" class=\"dropdown-item\" (click)=\"print(printType.Pdf)\"><i class=\"fa-solid fa-file-pdf\"></i> {{ 'Action.Print' | translate }} PDF</button></li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div *ngIf=\"showExport\" class=\"btn-group\" role=\"group\" aria-label=\"Filter / Export group\">\r\n <div class=\"btn-group\" role=\"group\">\r\n <button id=\"btnGroupExport\" type=\"button\" class=\"btn btn-secondary dropdown-toggle\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\"><i class=\"fa-solid fa-download\"></i> {{ 'Action.Export' | translate }}</button>\r\n <ul class=\"dropdown-menu\" aria-labelledby=\"btnGroupExport\">\r\n <li><a class=\"dropdown-item\" href=\"javascript:void(0)\" (click)=\"exportExcel()\"><i class=\"fa-solid fa-file-excel\"></i> Excel</a></li>\r\n </ul>\r\n </div>\r\n </div>\r\n <ng-content></ng-content>\r\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] }); }
3661
3694
  }
3662
3695
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ZekEditToolbar, decorators: [{
3663
3696
  type: Component,
3664
- args: [{ standalone: true, selector: 'zek-edit-toolbar', imports: [CommonModule, TranslateModule], template: "<div class=\"btn-toolbar\" role=\"toolbar\" aria-label=\"Action toolbar\">\r\n <div class=\"btn-group me-2\" role=\"group\" aria-label=\"Save group\">\r\n <button type=\"submit\" class=\"btn btn-primary\" [disabled]=\"readOnly\"><i class=\"fa-solid fa-floppy-disk\"></i> {{ 'Action.Save' | translate }}</button>\r\n </div>\r\n <div class=\"btn-group me-2\" role=\"group\" aria-label=\"Cancel group\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"cancel()\"><i class=\"fa-solid fa-ban\"></i> {{ 'Action.Close' | translate }}</button>\r\n </div>\r\n <div *ngIf=\"showPrint\" class=\"btn-group me-2\" role=\"group\" aria-label=\"Print group\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"print(printType.Pdf)\"><i class=\"fa-solid fa-print\"></i> {{ 'Action.Print' | translate }}</button>\r\n <div class=\"btn-group\" role=\"group\">\r\n <button type=\"button\" class=\"btn btn-secondary dropdown-toggle dropdown-toggle-split\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n <span class=\"visually-hidden\">Toggle Dropdown</span>\r\n </button>\r\n <ul class=\"dropdown-menu\">\r\n <li><button type=\"button\" class=\"dropdown-item\" (click)=\"print(printType.Show)\"><i class=\"fa-solid fa-print\"></i> {{ 'Action.Print' | translate }}</button></li>\r\n <li><button type=\"button\" class=\"dropdown-item\" (click)=\"print(printType.Pdf)\"><i class=\"fa-solid fa-file-pdf\"></i> {{ 'Action.Print' | translate }} PDF</button></li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div *ngIf=\"showExport\" class=\"btn-group\" role=\"group\" aria-label=\"Filter / Export group\">\r\n <div class=\"btn-group\" role=\"group\">\r\n <button id=\"btnGroupExport\" type=\"button\" class=\"btn btn-secondary dropdown-toggle\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\"><i class=\"fa-solid fa-download\"></i> {{ 'Action.Export' | translate }}</button>\r\n <ul class=\"dropdown-menu\" aria-labelledby=\"btnGroupExport\">\r\n <li><a class=\"dropdown-item\" href=\"javascript:void(0)\" (click)=\"exportExcel()\"><i class=\"fa-solid fa-file-excel\"></i> Excel</a></li>\r\n </ul>\r\n </div>\r\n </div>\r\n <ng-content></ng-content>\r\n</div>" }]
3665
- }], propDecorators: { showExport: [{
3697
+ args: [{ standalone: true, selector: 'zek-edit-toolbar', imports: [CommonModule, TranslateModule], template: "<div class=\"btn-toolbar\" role=\"toolbar\" aria-label=\"Action toolbar\">\r\n <div *ngIf=\"showSave\" class=\"btn-group me-2\" role=\"group\" aria-label=\"Save group\">\r\n <button type=\"submit\" class=\"btn btn-primary\" [disabled]=\"readOnly\"><i class=\"fa-solid fa-floppy-disk\"></i> {{ 'Action.Save' | translate }}</button>\r\n </div>\r\n <div *ngIf=\"showCancel\" class=\"btn-group me-2\" role=\"group\" aria-label=\"Cancel group\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"cancel()\"><i class=\"fa-solid fa-ban\"></i> {{ 'Action.Close' | translate }}</button>\r\n </div>\r\n <div *ngIf=\"showPrint\" class=\"btn-group me-2\" role=\"group\" aria-label=\"Print group\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"print(printType.Pdf)\"><i class=\"fa-solid fa-print\"></i> {{ 'Action.Print' | translate }}</button>\r\n <div class=\"btn-group\" role=\"group\">\r\n <button type=\"button\" class=\"btn btn-secondary dropdown-toggle dropdown-toggle-split\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n <span class=\"visually-hidden\">Toggle Dropdown</span>\r\n </button>\r\n <ul class=\"dropdown-menu\">\r\n <li><button type=\"button\" class=\"dropdown-item\" (click)=\"print(printType.Show)\"><i class=\"fa-solid fa-print\"></i> {{ 'Action.Print' | translate }}</button></li>\r\n <li><button type=\"button\" class=\"dropdown-item\" (click)=\"print(printType.Pdf)\"><i class=\"fa-solid fa-file-pdf\"></i> {{ 'Action.Print' | translate }} PDF</button></li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div *ngIf=\"showExport\" class=\"btn-group\" role=\"group\" aria-label=\"Filter / Export group\">\r\n <div class=\"btn-group\" role=\"group\">\r\n <button id=\"btnGroupExport\" type=\"button\" class=\"btn btn-secondary dropdown-toggle\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\"><i class=\"fa-solid fa-download\"></i> {{ 'Action.Export' | translate }}</button>\r\n <ul class=\"dropdown-menu\" aria-labelledby=\"btnGroupExport\">\r\n <li><a class=\"dropdown-item\" href=\"javascript:void(0)\" (click)=\"exportExcel()\"><i class=\"fa-solid fa-file-excel\"></i> Excel</a></li>\r\n </ul>\r\n </div>\r\n </div>\r\n <ng-content></ng-content>\r\n</div>" }]
3698
+ }], propDecorators: { showSave: [{
3699
+ type: Input
3700
+ }], showCancel: [{
3701
+ type: Input
3702
+ }], showExport: [{
3666
3703
  type: Input
3667
3704
  }], showPrint: [{
3668
3705
  type: Input