ng-tailwind 6.0.3 → 6.2.0
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.
- package/components/ngt-date/ngt-date.component.d.ts +7 -3
- package/components/ngt-date/ngt-date.module.d.ts +5 -4
- package/components/ngt-form/ngt-form.component.d.ts +1 -1
- package/esm2022/base/ngt-base-ng-model.mjs +1 -1
- package/esm2022/components/ngt-action/ngt-action.component.mjs +6 -6
- package/esm2022/components/ngt-action/ngt-action.module.mjs +4 -4
- package/esm2022/components/ngt-button/ngt-button.component.mjs +6 -6
- package/esm2022/components/ngt-button/ngt-button.module.mjs +4 -4
- package/esm2022/components/ngt-checkbox/ngt-checkbox.component.mjs +6 -6
- package/esm2022/components/ngt-checkbox/ngt-checkbox.module.mjs +4 -4
- package/esm2022/components/ngt-content/ngt-content.component.mjs +6 -6
- package/esm2022/components/ngt-content/ngt-content.module.mjs +4 -4
- package/esm2022/components/ngt-context-menu/ngt-context-menu.component.mjs +3 -3
- package/esm2022/components/ngt-context-menu/ngt-context-menu.directive.mjs +5 -5
- package/esm2022/components/ngt-context-menu/ngt-context-menu.module.mjs +4 -4
- package/esm2022/components/ngt-datatable/ngt-datatable.component.mjs +6 -6
- package/esm2022/components/ngt-datatable/ngt-datatable.module.mjs +4 -4
- package/esm2022/components/ngt-datatable/ngt-tbody/ngt-tbody.component.mjs +6 -6
- package/esm2022/components/ngt-datatable/ngt-td/ngt-td.component.mjs +6 -6
- package/esm2022/components/ngt-datatable/ngt-td-check/ngt-td-check.component.mjs +6 -6
- package/esm2022/components/ngt-datatable/ngt-th/ngt-th.component.mjs +6 -6
- package/esm2022/components/ngt-datatable/ngt-th-check/ngt-th-check.component.mjs +6 -6
- package/esm2022/components/ngt-datatable/ngt-thead/ngt-thead.component.mjs +6 -6
- package/esm2022/components/ngt-datatable/ngt-tr/ngt-tr.component.mjs +6 -6
- package/esm2022/components/ngt-date/ngt-date.component.mjs +56 -45
- package/esm2022/components/ngt-date/ngt-date.module.mjs +9 -5
- package/esm2022/components/ngt-dropdown/ngt-dropdown-container/ngt-dropdown-container.component.mjs +3 -3
- package/esm2022/components/ngt-dropdown/ngt-dropdown.component.mjs +6 -6
- package/esm2022/components/ngt-dropdown/ngt-dropdown.module.mjs +4 -4
- package/esm2022/components/ngt-dropzone/custom-dropzone-preview/custom-dropzone-preview.component.mjs +5 -5
- package/esm2022/components/ngt-dropzone/ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component.mjs +5 -5
- package/esm2022/components/ngt-dropzone/ngt-dropzone-view/ngt-dropzone-view.component.mjs +4 -4
- package/esm2022/components/ngt-dropzone/ngt-dropzone.component.mjs +6 -6
- package/esm2022/components/ngt-dropzone/ngt-dropzone.module.mjs +4 -4
- package/esm2022/components/ngt-floating-button/ngt-floating-button.component.mjs +6 -6
- package/esm2022/components/ngt-floating-button/ngt-floating-button.module.mjs +4 -4
- package/esm2022/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.component.mjs +6 -6
- package/esm2022/components/ngt-form/ngt-form.component.mjs +7 -7
- package/esm2022/components/ngt-form/ngt-form.module.mjs +4 -4
- package/esm2022/components/ngt-header-nav/ngt-header-nav.component.mjs +6 -6
- package/esm2022/components/ngt-header-nav/ngt-header-nav.module.mjs +4 -4
- package/esm2022/components/ngt-helper/ngt-helper.component.mjs +6 -6
- package/esm2022/components/ngt-helper/ngt-helper.module.mjs +4 -4
- package/esm2022/components/ngt-input/ngt-input.component.mjs +6 -6
- package/esm2022/components/ngt-input/ngt-input.module.mjs +4 -4
- package/esm2022/components/ngt-modal/ngt-modal-body/ngt-modal-body.component.mjs +6 -6
- package/esm2022/components/ngt-modal/ngt-modal-footer/ngt-modal-footer.component.mjs +6 -6
- package/esm2022/components/ngt-modal/ngt-modal-header/ngt-modal-header.component.mjs +6 -6
- package/esm2022/components/ngt-modal/ngt-modal.component.mjs +6 -6
- package/esm2022/components/ngt-modal/ngt-modal.module.mjs +4 -4
- package/esm2022/components/ngt-multi-select/ngt-multi-select.component.mjs +6 -6
- package/esm2022/components/ngt-multi-select/ngt-multi-select.module.mjs +4 -4
- package/esm2022/components/ngt-pagination/ngt-pagination.component.mjs +6 -6
- package/esm2022/components/ngt-pagination/ngt-pagination.module.mjs +4 -4
- package/esm2022/components/ngt-popover/ngt-popover-tooltip/ngt-popover-tooltip.component.mjs +3 -3
- package/esm2022/components/ngt-popover/ngt-popover.component.mjs +6 -6
- package/esm2022/components/ngt-popover/ngt-popover.directive.mjs +5 -5
- package/esm2022/components/ngt-popover/ngt-popover.module.mjs +4 -4
- package/esm2022/components/ngt-portlet/ngt-portlet-body/ngt-portlet-body.component.mjs +6 -6
- package/esm2022/components/ngt-portlet/ngt-portlet-footer/ngt-portlet-footer.component.mjs +6 -6
- package/esm2022/components/ngt-portlet/ngt-portlet-header/ngt-portlet-header.component.mjs +6 -6
- package/esm2022/components/ngt-portlet/ngt-portlet.component.mjs +6 -6
- package/esm2022/components/ngt-portlet/ngt-portlet.module.mjs +4 -4
- package/esm2022/components/ngt-radio-button/ngt-radio-button-container/ngt-radio-button-container.component.mjs +3 -3
- package/esm2022/components/ngt-radio-button/ngt-radio-button.component.mjs +6 -6
- package/esm2022/components/ngt-radio-button/ngt-radio-button.module.mjs +4 -4
- package/esm2022/components/ngt-section/ngt-section.component.mjs +6 -6
- package/esm2022/components/ngt-section/ngt-section.module.mjs +4 -4
- package/esm2022/components/ngt-select/ngt-select.component.mjs +6 -6
- package/esm2022/components/ngt-select/ngt-select.directive.mjs +12 -12
- package/esm2022/components/ngt-select/ngt-select.module.mjs +4 -4
- package/esm2022/components/ngt-shining/ngt-shining.component.mjs +6 -6
- package/esm2022/components/ngt-shining/ngt-shining.module.mjs +4 -4
- package/esm2022/components/ngt-sidenav/ngt-sidenav.component.mjs +6 -6
- package/esm2022/components/ngt-sidenav/ngt-sidenav.module.mjs +4 -4
- package/esm2022/components/ngt-slider/ngt-slider.component.mjs +8 -8
- package/esm2022/components/ngt-slider/ngt-slider.module.mjs +4 -4
- package/esm2022/components/ngt-svg/ngt-svg.component.mjs +4 -4
- package/esm2022/components/ngt-svg/ngt-svg.module.mjs +4 -4
- package/esm2022/components/ngt-tag/ngt-tag.component.mjs +6 -6
- package/esm2022/components/ngt-tag/ngt-tag.module.mjs +4 -4
- package/esm2022/components/ngt-textarea/ngt-textarea.component.mjs +6 -6
- package/esm2022/components/ngt-textarea/ngt-textarea.module.mjs +4 -4
- package/esm2022/components/ngt-validation/ngt-validation.component.mjs +6 -6
- package/esm2022/components/ngt-validation/ngt-validation.module.mjs +4 -4
- package/esm2022/directives/ngt-stylizable/ngt-stylizable.directive.mjs +5 -5
- package/esm2022/directives/ngt-stylizable/ngt-stylizable.module.mjs +4 -4
- package/esm2022/helpers/enum/enum.mjs +1 -1
- package/esm2022/services/ngt-stylizable/ngt-stylizable.service.mjs +1 -1
- package/fesm2022/ng-tailwind.mjs +429 -419
- package/fesm2022/ng-tailwind.mjs.map +1 -1
- package/package.json +4 -2
|
@@ -3,11 +3,11 @@ import { NgModule } from '@angular/core';
|
|
|
3
3
|
import { NgtContentComponent } from './ngt-content.component';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class NgtContentModule {
|
|
6
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
7
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
8
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
6
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgtContentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: NgtContentModule, declarations: [NgtContentComponent], imports: [CommonModule], exports: [NgtContentComponent] }); }
|
|
8
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgtContentModule, imports: [CommonModule] }); }
|
|
9
9
|
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgtContentModule, decorators: [{
|
|
11
11
|
type: NgModule,
|
|
12
12
|
args: [{
|
|
13
13
|
declarations: [NgtContentComponent],
|
|
@@ -11,10 +11,10 @@ export class NgtContextMenuComponent {
|
|
|
11
11
|
hasOptions() {
|
|
12
12
|
return !this.menuTemplate && !!this.menuItems?.length;
|
|
13
13
|
}
|
|
14
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
15
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
14
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgtContextMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NgtContextMenuComponent, selector: "ngt-context-menu", outputs: { onMenuItemClick: "onMenuItemClick", onTemplateClick: "onTemplateClick" }, ngImport: i0, template: "<div class=\"absolute max-w-7xl -mr-10 -mb-10\" style=\"z-index: 999999 !important; width: max-content !important;\"\n [style.left.px]=\"positionX\" [style.top.px]=\"positionY\" (click)=\"$event.stopPropagation()\">\n\n <ng-container *ngIf=\"hasOptions(); else showTemplate\">\n <ul class=\"cursor-pointer rounded-xl bg-white border border-gray-200 shadow-2xl\">\n <li *ngFor=\"let item of menuItems; last as isLast; first as isFirst\"\n class=\"flex items-center w-full px-4 py-2 gap-3 text-sm\" [class.text-gray-700]=\"!item.disabled\"\n [class.text-gray-400]=\"item.disabled\" [class.cursor-not-allowed]=\"item.disabled\"\n [class.rounded-b-xl]=\"isLast\" [class.rounded-t-xl]=\"isFirst\"\n [ngClass]=\"item.disabled ? '' : (item.background_color || 'hover:bg-green-500')\"\n (click)=\"!item.disabled && onMenuItemClick.emit(item)\">\n\n <ngt-svg *ngIf=\"item.icon\" class=\"text-lg\" [src]=\"item.icon\"></ngt-svg>\n {{ item.caption }}\n </li>\n </ul>\n </ng-container>\n\n <ng-template #showTemplate>\n <div class=\"block rounded-lg bg-white border border-gray-200 w-full h-auto shadow-2xl\"\n (click)=\"onTemplateClick.emit()\">\n <ng-container [ngTemplateOutlet]=\"menuTemplate\"></ng-container>\n </div>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.NgtSvgComponent, selector: "ngt-svg", inputs: ["src", "class"] }] }); }
|
|
16
16
|
}
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgtContextMenuComponent, decorators: [{
|
|
18
18
|
type: Component,
|
|
19
19
|
args: [{ selector: 'ngt-context-menu', template: "<div class=\"absolute max-w-7xl -mr-10 -mb-10\" style=\"z-index: 999999 !important; width: max-content !important;\"\n [style.left.px]=\"positionX\" [style.top.px]=\"positionY\" (click)=\"$event.stopPropagation()\">\n\n <ng-container *ngIf=\"hasOptions(); else showTemplate\">\n <ul class=\"cursor-pointer rounded-xl bg-white border border-gray-200 shadow-2xl\">\n <li *ngFor=\"let item of menuItems; last as isLast; first as isFirst\"\n class=\"flex items-center w-full px-4 py-2 gap-3 text-sm\" [class.text-gray-700]=\"!item.disabled\"\n [class.text-gray-400]=\"item.disabled\" [class.cursor-not-allowed]=\"item.disabled\"\n [class.rounded-b-xl]=\"isLast\" [class.rounded-t-xl]=\"isFirst\"\n [ngClass]=\"item.disabled ? '' : (item.background_color || 'hover:bg-green-500')\"\n (click)=\"!item.disabled && onMenuItemClick.emit(item)\">\n\n <ngt-svg *ngIf=\"item.icon\" class=\"text-lg\" [src]=\"item.icon\"></ngt-svg>\n {{ item.caption }}\n </li>\n </ul>\n </ng-container>\n\n <ng-template #showTemplate>\n <div class=\"block rounded-lg bg-white border border-gray-200 w-full h-auto shadow-2xl\"\n (click)=\"onTemplateClick.emit()\">\n <ng-container [ngTemplateOutlet]=\"menuTemplate\"></ng-container>\n </div>\n </ng-template>\n</div>\n" }]
|
|
20
20
|
}], propDecorators: { onMenuItemClick: [{
|
|
@@ -57,15 +57,15 @@ export class NgtContextMenuDirective {
|
|
|
57
57
|
this.componentRef?.destroy();
|
|
58
58
|
this.componentRef = null;
|
|
59
59
|
}
|
|
60
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
61
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
60
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgtContextMenuDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
61
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: NgtContextMenuDirective, selector: "[ngt-contextmenu]", inputs: { ngtContextMenuOptions: "ngtContextMenuOptions", ngtContextMenuTemplate: "ngtContextMenuTemplate" }, outputs: { onNgtContextMenuClick: "onNgtContextMenuClick", onOpenNgtContextMenu: "onOpenNgtContextMenu" }, host: { listeners: { "contextmenu": "onContextMenu($event)", "document:contextmenu": "onDocumentContextMenuClick($event)", "document:click": "onDocumentClick()", "click": "onClick()" } }, ngImport: i0 }); }
|
|
62
62
|
}
|
|
63
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgtContextMenuDirective, decorators: [{
|
|
64
64
|
type: Directive,
|
|
65
65
|
args: [{
|
|
66
66
|
selector: '[ngt-contextmenu]'
|
|
67
67
|
}]
|
|
68
|
-
}], ctorParameters:
|
|
68
|
+
}], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }], propDecorators: { onNgtContextMenuClick: [{
|
|
69
69
|
type: Output
|
|
70
70
|
}], onOpenNgtContextMenu: [{
|
|
71
71
|
type: Output
|
|
@@ -86,4 +86,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
86
86
|
type: HostListener,
|
|
87
87
|
args: ['click']
|
|
88
88
|
}] } });
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LWNvbnRleHQtbWVudS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy10YWlsd2luZC9zcmMvY29tcG9uZW50cy9uZ3QtY29udGV4dC1tZW51L25ndC1jb250ZXh0LW1lbnUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxHQUdULE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSx1QkFBdUIsRUFBaUMsTUFBTSw4QkFBOEIsQ0FBQzs7QUFLdEcsTUFBTSxPQUFPLHVCQUF1QjtJQVdoQyxZQUNZLGdCQUFrQyxFQUNsQyxjQUFpQztRQURqQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQVo1QiwwQkFBcUIsR0FBZ0QsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN4Rix5QkFBb0IsR0FBMEMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUsxRixpQkFBWSxHQUEwQyxJQUFJLENBQUM7SUFPL0QsQ0FBQztJQUdFLGFBQWEsQ0FBQyxLQUFpQjtRQUNsQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFFdkIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUdNLDBCQUEwQixDQUFDLEtBQWlCO1FBQy9DLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV2QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFHTSxlQUFlO1FBQ2xCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBR00sT0FBTztRQUNWLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRU8sZUFBZSxDQUFDLEtBQWlCO1FBQ3JDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBRW5GLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQ3JELElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQ3JELElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUM7UUFDbEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztRQUV0RSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUV6QixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUVwRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVPLGlCQUFpQjtRQUNyQixJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRO2FBQ3RELGVBQWU7YUFDZixTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNqQixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRXZDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztRQUVQLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVE7YUFDdEQsZUFBZTthQUNmLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVPLE9BQU87UUFDWCxJQUFJLENBQUMseUJBQXlCLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQzlDLElBQUksQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFFN0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDN0IsQ0FBQzsrR0FuRlEsdUJBQXVCO21HQUF2Qix1QkFBdUI7OzRGQUF2Qix1QkFBdUI7a0JBSG5DLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtpQkFDaEM7cUhBRW9CLHFCQUFxQjtzQkFBckMsTUFBTTtnQkFDVSxvQkFBb0I7c0JBQXBDLE1BQU07Z0JBRVMscUJBQXFCO3NCQUFwQyxLQUFLO2dCQUNVLHNCQUFzQjtzQkFBckMsS0FBSztnQkFZQyxhQUFhO3NCQURuQixZQUFZO3VCQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFXaEMsMEJBQTBCO3NCQURoQyxZQUFZO3VCQUFDLHNCQUFzQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVN6QyxlQUFlO3NCQURyQixZQUFZO3VCQUFDLGdCQUFnQjtnQkFNdkIsT0FBTztzQkFEYixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudFJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IE5ndENvbnRleHRNZW51Q29tcG9uZW50LCBOZ3RDb250ZXh0TWVudU9wdGlvbkludGVyZmFjZSB9IGZyb20gJy4vbmd0LWNvbnRleHQtbWVudS5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tuZ3QtY29udGV4dG1lbnVdJ1xufSlcbmV4cG9ydCBjbGFzcyBOZ3RDb250ZXh0TWVudURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBvbk5ndENvbnRleHRNZW51Q2xpY2s6IEV2ZW50RW1pdHRlcjxOZ3RDb250ZXh0TWVudU9wdGlvbkludGVyZmFjZT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBvbk9wZW5OZ3RDb250ZXh0TWVudTogRXZlbnRFbWl0dGVyPE5ndENvbnRleHRNZW51Q29tcG9uZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBJbnB1dCgpIHB1YmxpYyBuZ3RDb250ZXh0TWVudU9wdGlvbnM6IE5ndENvbnRleHRNZW51T3B0aW9uSW50ZXJmYWNlW107XG4gICAgQElucHV0KCkgcHVibGljIG5ndENvbnRleHRNZW51VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBwcml2YXRlIGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPE5ndENvbnRleHRNZW51Q29tcG9uZW50PiA9IG51bGw7XG4gICAgcHJpdmF0ZSBtZW51SXRlbUNsaWNrU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZUNsaWNrU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgKSB7IH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NvbnRleHRtZW51JywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgb25Db250ZXh0TWVudShldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUNvbXBvbmVudChldmVudCk7XG4gICAgICAgIH0sIDUwKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjb250ZXh0bWVudScsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIG9uRG9jdW1lbnRDb250ZXh0TWVudUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJylcbiAgICBwdWJsaWMgb25Eb2N1bWVudENsaWNrKCkge1xuICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gICAgcHVibGljIG9uQ2xpY2soKSB7XG4gICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVDb21wb25lbnQoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KE5ndENvbnRleHRNZW51Q29tcG9uZW50KTtcblxuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5wb3NpdGlvblggPSBldmVudC5jbGllbnRYO1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5wb3NpdGlvblkgPSBldmVudC5jbGllbnRZO1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5tZW51SXRlbXMgPSB0aGlzLm5ndENvbnRleHRNZW51T3B0aW9ucztcbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UubWVudVRlbXBsYXRlID0gdGhpcy5uZ3RDb250ZXh0TWVudVRlbXBsYXRlO1xuXG4gICAgICAgIHRoaXMuYmluZFN1YnNjcmlwdGlvbnMoKTtcblxuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgICAgIHRoaXMub25PcGVuTmd0Q29udGV4dE1lbnUuZW1pdCh0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBiaW5kU3Vic2NyaXB0aW9ucygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZW51SXRlbUNsaWNrU3Vic2NyaXB0aW9uID0gdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2VcbiAgICAgICAgICAgIC5vbk1lbnVJdGVtQ2xpY2tcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbk5ndENvbnRleHRNZW51Q2xpY2suZW1pdChldmVudCk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMudGVtcGxhdGVDbGlja1N1YnNjcmlwdGlvbiA9IHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlXG4gICAgICAgICAgICAub25UZW1wbGF0ZUNsaWNrXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4gdGhpcy5kZXN0cm95KCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZW51SXRlbUNsaWNrU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLnRlbXBsYXRlQ2xpY2tTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmPy5kZXN0cm95KCk7XG5cbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYgPSBudWxsO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -5,15 +5,15 @@ import { NgtContextMenuComponent } from './ngt-context-menu.component';
|
|
|
5
5
|
import { NgtContextMenuDirective } from './ngt-context-menu.directive';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
export class NgtContextMenuModule {
|
|
8
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
9
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgtContextMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
9
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: NgtContextMenuModule, declarations: [NgtContextMenuDirective,
|
|
10
10
|
NgtContextMenuComponent], imports: [CommonModule,
|
|
11
11
|
NgtSvgModule], exports: [NgtContextMenuDirective,
|
|
12
12
|
NgtContextMenuComponent] }); }
|
|
13
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
13
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgtContextMenuModule, imports: [CommonModule,
|
|
14
14
|
NgtSvgModule] }); }
|
|
15
15
|
}
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgtContextMenuModule, decorators: [{
|
|
17
17
|
type: NgModule,
|
|
18
18
|
args: [{
|
|
19
19
|
declarations: [
|
|
@@ -386,15 +386,15 @@ export class NgtDatatableComponent {
|
|
|
386
386
|
this.subscriptions.forEach(subscription => subscription.unsubscribe());
|
|
387
387
|
this.subscriptions = [];
|
|
388
388
|
}
|
|
389
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
390
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
389
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgtDatatableComponent, deps: [{ token: i0.Injector }, { token: i1.NgtHttpService }, { token: i0.ChangeDetectorRef }, { token: i2.NgtTranslateService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
390
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NgtDatatableComponent, selector: "ngt-datatable", inputs: { remoteResource: "remoteResource", type: "type", filterTagBgColor: "filterTagBgColor", filterTagMargin: "filterTagMargin", paginationMargin: "paginationMargin", inputSearch: "inputSearch", searchDelay: "searchDelay", searchTermMinLength: "searchTermMinLength", searchTermOnEnter: "searchTermOnEnter", defaultFilters: "defaultFilters", filtersDescription: "filtersDescription", canSelectAllRegisters: "canSelectAllRegisters" }, outputs: { onDataChange: "onDataChange", onClearFilter: "onClearFilter", onClearSelectedElements: "onClearSelectedElements", onSelectedElementsChange: "onSelectedElementsChange", onToogleAllCheckboxes: "onToogleAllCheckboxes", onToogleCheckbox: "onToogleCheckbox", onSelectAllRegisters: "onSelectAllRegisters", onOpenSearchModal: "onOpenSearchModal", onSearch: "onSearch" }, viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true, static: true }, { propertyName: "ngtPagination", first: true, predicate: ["ngtPagination"], descendants: true, static: true }, { propertyName: "searchModal", first: true, predicate: ["searchModal"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"w-full\">\n <div class=\"flex flex-wrap w-full\">\n <ngt-tag *ngIf=\"hasAppliedFilters()\" class=\"w-full sm:w-auto {{ filterTagMargin }}\"\n [class.sm:mr-4]=\"filterTagMargin == 'mb-4'\" color.bg=\"bg-red-500\" (click)=\"removeFilter()\" ngt-stylizable>\n Limpar Filtros\n </ngt-tag>\n\n <ng-container *ngIf=\"hasAppliedFilters()\">\n <ng-container *ngFor=\"let filter of filtersTranslated\">\n <ngt-tag class=\"w-full sm:w-auto {{ filterTagMargin }}\" [class.sm:mr-4]=\"filterTagMargin == 'mb-4'\"\n [color.bg]=\"filterTagBgColor\" (click)=\"removeFilter(filter.reference)\" ngt-stylizable\n [title]=\"getTitle(filter)\">\n {{ filter.translation + ': ' + getTagFilterValue(filter) }}\n </ngt-tag>\n </ng-container>\n </ng-container>\n </div>\n\n <table style=\"display: table;\" class=\"text-left w-full border-collapse table-responsive\" #table>\n <ng-content></ng-content>\n </table>\n\n <p *ngIf=\"emptyStateVisible\" class=\"mt-8 mx-auto self-center text-center text-xl\">\n {{ ngtTranslateService.ngtDatatableNoDataFound }}\n </p>\n\n <div *ngIf=\"loading\">\n <div *ngFor=\"let i of [1, 2, 3, 4]\" class=\"flex w-full mt-3\">\n <ng-container *ngIf=\"columnCount.length >= 2\">\n <ng-container *ngFor=\"let j of columnCount; let last = last\">\n <ng-container *ngIf=\"last\">\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n </ng-container>\n\n <ng-container *ngIf=\"!last\">\n <ngt-shining class=\"h-10 w-full mr-10\"></ngt-shining>\n </ng-container>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"columnCount.length < 2\">\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n <ngt-shining class=\"h-10 w-full mr-10 ml-10\"></ngt-shining>\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n </ng-container>\n </div>\n </div>\n</div>\n\n<div class=\"clearfix {{ paginationMargin }}\" [hidden]='!data || data.length == 0'>\n <ngt-pagination [pagesInterval]='4' (onPageChange)='apply($event, false)' (onPerPageChange)='apply(1, false)'\n #ngtPagination>\n </ngt-pagination>\n</div>\n\n<ngt-modal [customLayout]=\"true\" [isDisabled]=\"false\" [ngtStyle]=\"filterModalStyle\" #searchModal>\n <ng-container *ngTemplateOutlet=\"searchModalTemplate\"></ng-container>\n</ngt-modal>", styles: ["@media (max-width: 767px){.table-responsive{display:block;position:relative;width:100%}.table-responsive thead,.table-responsive tbody,.table-responsive th,.table-responsive td,.table-responsive tr{display:block}.table-responsive td,.table-responsive th{height:50px}.table-responsive thead{float:left;margin-bottom:15px}.table-responsive tbody{width:auto;position:relative;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}.table-responsive tbody tr{display:inline-block;min-width:100%}}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.NgtShiningComponent, selector: "ngt-shining", inputs: ["shiningWidth"] }, { kind: "component", type: i5.NgtPaginationComponent, selector: "ngt-pagination", inputs: ["pagesInterval"], outputs: ["onPageChange", "onPerPageChange"] }, { kind: "component", type: i6.NgtModalComponent, selector: "ngt-modal", inputs: ["customLayout", "disableDefaultCloses", "isDisabled", "ngtStyle"], outputs: ["onCloseModal", "onOpenModal"] }, { kind: "component", type: i7.NgtTagComponent, selector: "ngt-tag", inputs: ["icon"] }, { kind: "directive", type: i8.NgtStylizableDirective, selector: "[ngt-stylizable]", inputs: ["color", "color.text", "color.bg", "color.border", "h", "w", "p", "px", "py", "pt", "pr", "pb", "pl", "m", "mx", "my", "mt", "mr", "mb", "ml", "gap", "border", "shadow", "rounded", "font", "text", "breakWords", "overflow", "position", "justifyContent", "cursor", "fontCase"] }] }); }
|
|
391
391
|
}
|
|
392
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
392
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgtDatatableComponent, decorators: [{
|
|
393
393
|
type: Component,
|
|
394
394
|
args: [{ selector: 'ngt-datatable', template: "<div class=\"w-full\">\n <div class=\"flex flex-wrap w-full\">\n <ngt-tag *ngIf=\"hasAppliedFilters()\" class=\"w-full sm:w-auto {{ filterTagMargin }}\"\n [class.sm:mr-4]=\"filterTagMargin == 'mb-4'\" color.bg=\"bg-red-500\" (click)=\"removeFilter()\" ngt-stylizable>\n Limpar Filtros\n </ngt-tag>\n\n <ng-container *ngIf=\"hasAppliedFilters()\">\n <ng-container *ngFor=\"let filter of filtersTranslated\">\n <ngt-tag class=\"w-full sm:w-auto {{ filterTagMargin }}\" [class.sm:mr-4]=\"filterTagMargin == 'mb-4'\"\n [color.bg]=\"filterTagBgColor\" (click)=\"removeFilter(filter.reference)\" ngt-stylizable\n [title]=\"getTitle(filter)\">\n {{ filter.translation + ': ' + getTagFilterValue(filter) }}\n </ngt-tag>\n </ng-container>\n </ng-container>\n </div>\n\n <table style=\"display: table;\" class=\"text-left w-full border-collapse table-responsive\" #table>\n <ng-content></ng-content>\n </table>\n\n <p *ngIf=\"emptyStateVisible\" class=\"mt-8 mx-auto self-center text-center text-xl\">\n {{ ngtTranslateService.ngtDatatableNoDataFound }}\n </p>\n\n <div *ngIf=\"loading\">\n <div *ngFor=\"let i of [1, 2, 3, 4]\" class=\"flex w-full mt-3\">\n <ng-container *ngIf=\"columnCount.length >= 2\">\n <ng-container *ngFor=\"let j of columnCount; let last = last\">\n <ng-container *ngIf=\"last\">\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n </ng-container>\n\n <ng-container *ngIf=\"!last\">\n <ngt-shining class=\"h-10 w-full mr-10\"></ngt-shining>\n </ng-container>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"columnCount.length < 2\">\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n <ngt-shining class=\"h-10 w-full mr-10 ml-10\"></ngt-shining>\n <ngt-shining class=\"h-10 w-full\"></ngt-shining>\n </ng-container>\n </div>\n </div>\n</div>\n\n<div class=\"clearfix {{ paginationMargin }}\" [hidden]='!data || data.length == 0'>\n <ngt-pagination [pagesInterval]='4' (onPageChange)='apply($event, false)' (onPerPageChange)='apply(1, false)'\n #ngtPagination>\n </ngt-pagination>\n</div>\n\n<ngt-modal [customLayout]=\"true\" [isDisabled]=\"false\" [ngtStyle]=\"filterModalStyle\" #searchModal>\n <ng-container *ngTemplateOutlet=\"searchModalTemplate\"></ng-container>\n</ngt-modal>", styles: ["@media (max-width: 767px){.table-responsive{display:block;position:relative;width:100%}.table-responsive thead,.table-responsive tbody,.table-responsive th,.table-responsive td,.table-responsive tr{display:block}.table-responsive td,.table-responsive th{height:50px}.table-responsive thead{float:left;margin-bottom:15px}.table-responsive tbody{width:auto;position:relative;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}.table-responsive tbody tr{display:inline-block;min-width:100%}}\n"] }]
|
|
395
|
-
}], ctorParameters:
|
|
395
|
+
}], ctorParameters: () => [{ type: i0.Injector }, { type: i1.NgtHttpService }, { type: i0.ChangeDetectorRef }, { type: i2.NgtTranslateService, decorators: [{
|
|
396
396
|
type: Optional
|
|
397
|
-
}] }]
|
|
397
|
+
}] }], propDecorators: { table: [{
|
|
398
398
|
type: ViewChild,
|
|
399
399
|
args: ['table', { static: true }]
|
|
400
400
|
}], ngtPagination: [{
|
|
@@ -467,4 +467,4 @@ export class NgtCheckedElement {
|
|
|
467
467
|
}
|
|
468
468
|
export class NgtCustomFilter {
|
|
469
469
|
}
|
|
470
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LWRhdGF0YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy10YWlsd2luZC9zcmMvY29tcG9uZW50cy9uZ3QtZGF0YXRhYmxlL25ndC1kYXRhdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LWRhdGF0YWJsZS9uZ3QtZGF0YXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxTQUFTLEVBRVQsWUFBWSxFQUVaLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUdOLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQU01RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7Ozs7Ozs7OztBQU81RixNQUFNLE9BQU8scUJBQXFCO0lBd0Q5QixZQUNZLFFBQWtCLEVBQ2xCLGNBQThCLEVBQzlCLGNBQWlDLEVBRWxDLG1CQUF3QztRQUp2QyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFFbEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQXZEbkMsU0FBSSxHQUFxQixnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7UUFDakQscUJBQWdCLEdBQVcsYUFBYSxDQUFDO1FBQ3pDLG9CQUFlLEdBQVcsTUFBTSxDQUFDO1FBQ2pDLHFCQUFnQixHQUFXLGNBQWMsQ0FBQztRQUUxQyxnQkFBVyxHQUFXLEdBQUcsQ0FBQztRQUMxQix3QkFBbUIsR0FBVyxDQUFDLENBQUM7UUFDaEMsc0JBQWlCLEdBQVksSUFBSSxDQUFDO1FBQ2xDLG1CQUFjLEdBQVEsRUFBRSxD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ckMsTUFBTTtnQkFDVSxnQkFBZ0I7c0JBQWhDLE1BQU07Z0JBQ1Usb0JBQW9CO3NCQUFwQyxNQUFNO2dCQUNVLGlCQUFpQjtzQkFBakMsTUFBTTtnQkFDVSxRQUFRO3NCQUF4QixNQUFNOztBQWdkWCxNQUFNLENBQU4sSUFBWSxnQkFHWDtBQUhELFdBQVksZ0JBQWdCO0lBQ3hCLHFDQUFpQixDQUFBO0lBQ2pCLG1DQUFlLENBQUE7QUFDbkIsQ0FBQyxFQUhXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFHM0I7QUFFRCxNQUFNLENBQU4sSUFBWSxzQkFHWDtBQUhELFdBQVksc0JBQXNCO0lBQzlCLDZDQUFtQixDQUFBO0lBQ25CLDJDQUFpQixDQUFBO0FBQ3JCLENBQUMsRUFIVyxzQkFBc0IsS0FBdEIsc0JBQXNCLFFBR2pDO0FBRUQsTUFBTSxDQUFOLElBQVksaUJBS1g7QUFMRCxXQUFZLGlCQUFpQjtJQUN6Qix5RUFBZ0IsQ0FBQTtJQUNoQixxRUFBYyxDQUFBO0lBQ2QsMkVBQWlCLENBQUE7SUFDakIsNkVBQWtCLENBQUE7QUFDdEIsQ0FBQyxFQUxXLGlCQUFpQixLQUFqQixpQkFBaUIsUUFLNUI7QUFFRCxNQUFNLE9BQU8saUJBQWlCO0NBSTdCO0FBRUQsTUFBTSxPQUFPLGVBQWU7Q0FJM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgZ2V0RW51bUZyb21TdHJpbmcgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2VudW0vZW51bSc7XG5pbXBvcnQgeyBOZ3RIdHRwUGFnaW5hdGlvbiwgTmd0SHR0cFJlc3BvbnNlLCBOZ3RIdHRwU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2h0dHAvbmd0LWh0dHAuc2VydmljZSc7XG5pbXBvcnQgeyBOZ3RUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaHR0cC9uZ3QtdHJhbnNsYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmd0SW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9uZ3QtaW5wdXQvbmd0LWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ3RNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL25ndC1tb2RhbC9uZ3QtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IE5ndFBhZ2luYXRpb25Db21wb25lbnQgfSBmcm9tICcuLi9uZ3QtcGFnaW5hdGlvbi9uZ3QtcGFnaW5hdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmd0U3R5bGl6YWJsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9uZ3Qtc3R5bGl6YWJsZS9uZ3Qtc3R5bGl6YWJsZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3QtZGF0YXRhYmxlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbmd0LWRhdGF0YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbmd0LWRhdGF0YWJsZS5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTmd0RGF0YXRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBWaWV3Q2hpbGQoJ3RhYmxlJywgeyBzdGF0aWM6IHRydWUgfSkgcHVibGljIHRhYmxlOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ25ndFBhZ2luYXRpb24nLCB7IHN0YXRpYzogdHJ1ZSB9KSBwdWJsaWMgbmd0UGFnaW5hdGlvbjogTmd0UGFnaW5hdGlvbkNvbXBvbmVudDtcbiAgICBAVmlld0NoaWxkKCdzZWFyY2hNb2RhbCcsIHsgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyBzZWFyY2hNb2RhbDogTmd0TW9kYWxDb21wb25lbnQ7XG5cbiAgICBASW5wdXQoKSBwdWJsaWMgcmVtb3RlUmVzb3VyY2U6IGFueTtcbiAgICBASW5wdXQoKSBwdWJsaWMgdHlwZTogTmd0RGF0YXRhYmxlVHlwZSA9IE5ndERhdGF0YWJsZVR5cGUuUkVNT1RFO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBmaWx0ZXJUYWdCZ0NvbG9yOiBzdHJpbmcgPSAnYmctYmx1ZS01MDAnO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBmaWx0ZXJUYWdNYXJnaW46IHN0cmluZyA9ICdtYi00JztcbiAgICBASW5wdXQoKSBwdWJsaWMgcGFnaW5hdGlvbk1hcmdpbjogc3RyaW5nID0gJ210LTIgbWQ6bXQtOCc7XG4gICAgQElucHV0KCkgcHVibGljIGlucHV0U2VhcmNoOiBOZ3RJbnB1dENvbXBvbmVudDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc2VhcmNoRGVsYXk6IG51bWJlciA9IDUwMDtcbiAgICBASW5wdXQoKSBwdWJsaWMgc2VhcmNoVGVybU1pbkxlbmd0aDogbnVtYmVyID0gMTtcbiAgICBASW5wdXQoKSBwdWJsaWMgc2VhcmNoVGVybU9uRW50ZXI6IGJvb2xlYW4gPSB0cnVlO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkZWZhdWx0RmlsdGVyczogYW55ID0ge307XG4gICAgQElucHV0KCkgcHVibGljIGZpbHRlcnNEZXNjcmlwdGlvbiA9IHt9O1xuICAgIEBJbnB1dCgpIHB1YmxpYyBjYW5TZWxlY3RBbGxSZWdpc3RlcnM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBPdXRwdXQoKSBwdWJsaWMgb25EYXRhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIG9uQ2xlYXJGaWx0ZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgb25DbGVhclNlbGVjdGVkRWxlbWVudHM6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgb25TZWxlY3RlZEVsZW1lbnRzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8QXJyYXk8Tmd0Q2hlY2tlZEVsZW1lbnQ+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIG9uVG9vZ2xlQWxsQ2hlY2tib3hlczogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBvblRvb2dsZUNoZWNrYm94OiBFdmVudEVtaXR0ZXI8Tmd0Q2hlY2tlZEVsZW1lbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgb25TZWxlY3RBbGxSZWdpc3RlcnM6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIG9uT3BlblNlYXJjaE1vZGFsOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIG9uU2VhcmNoOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBzZWFyY2hNb2RhbFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIHB1YmxpYyBkYXRhID0gW107XG4gICAgcHVibGljIGxvYWRpbmcgPSBmYWxzZTtcbiAgICBwdWJsaWMgY2xlYW5pbmdGaWx0ZXIgPSBmYWxzZTtcbiAgICBwdWJsaWMgY29tcG9uZW50UmVhZHkgPSBmYWxzZTtcbiAgICBwdWJsaWMgZmlsdGVyc1RyYW5zbGF0ZWQgPSBbXTtcbiAgICBwdWJsaWMgZW1wdHlTdGF0ZVZpc2libGU6IGJvb2xlYW47XG4gICAgcHVibGljIGNvbHVtbkNvdW50ID0gW107XG4gICAgcHVibGljIGhhc1NlbGVjdGVkQWxsRWxlbWVudHM6IGJvb2xlYW47XG4gICAgcHVibGljIHNlbGVjdGVkRWxlbWVudHM6IEFycmF5PE5ndENoZWNrZWRFbGVtZW50PiA9IFtdO1xuXG4gICAgcHVibGljIGZpbHRlck1vZGFsU3R5bGU6IE5ndFN0eWxpemFibGVTZXJ2aWNlID0gbmV3IE5ndFN0eWxpemFibGVTZXJ2aWNlKCk7XG5cbiAgICBwcml2YXRlIHNlYXJjaGluZzogYm9vbGVhbjtcbiAgICBwcml2YXRlIHNlYXJjaFRpbWVvdXQ6IGFueTtcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IEFycmF5PFN1YnNjcmlwdGlvbj4gPSBbXTtcbiAgICBwcml2YXRlIGN1cnJlbnRTdGF0ZSA9IHtcbiAgICAgICAgZmlsdGVyczoge1xuICAgICAgICAgICAgZGVmYXVsdEZpbHRlcnM6IHt9LFxuICAgICAgICAgICAgc2lsZW50RmlsdGVyczoge30sXG4gICAgICAgICAgICBxdWFsaWZpZWRGaWx0ZXJzOiB7fSxcbiAgICAgICAgfSxcbiAgICAgICAgc29ydDoge1xuICAgICAgICAgICAgZmllbGQ6ICcnLFxuICAgICAgICAgICAgZGlyZWN0aW9uOiAnJ1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgbmd0SHR0cFNlcnZpY2U6IE5ndEh0dHBTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgcHVibGljIG5ndFRyYW5zbGF0ZVNlcnZpY2U6IE5ndFRyYW5zbGF0ZVNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgdGhpcy5maWx0ZXJNb2RhbFN0eWxlLmxvYWQodGhpcy5pbmplY3RvciwgJ0ZpbHRlck1vZGFsJywge1xuICAgICAgICAgICAgdzogJ21kOm1heC13LW1kJyxcbiAgICAgICAgICAgIHB5OiAncHktNCcsXG4gICAgICAgICAgICBweDogJ3B4LTYnLFxuICAgICAgICAgICAgYm9yZGVyOiAnYm9yZGVyIGJvcmRlci10ZWFsLTUwMCcsXG4gICAgICAgICAgICBvdmVyZmxvdzogJ292ZXJmbG93LXZpc2libGUnLFxuICAgICAgICAgICAgY29sb3I6IHt9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMudGFibGUgJiYgdGhpcy50YWJsZS5uYXRpdmVFbGVtZW50ICYmIHRoaXMudGFibGUubmF0aXZlRWxlbWVudC5yb3dzXG4gICAgICAgICAgICAmJiB0aGlzLnRhYmxlLm5hdGl2ZUVsZW1lbnQucm93c1swXSAmJiB0aGlzLnRhYmxlLm5hdGl2ZUVsZW1lbnQucm93c1swXS5jZWxscykge1xuICAgICAgICAgICAgdGhpcy5jb2x1bW5Db3VudCA9IHRoaXMudGFibGUubmF0aXZlRWxlbWVudC5yb3dzWzBdLmNlbGxzO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaW5wdXRTZWFyY2gpIHtcbiAgICAgICAgICAgIHRoaXMuaW5pdFNlYXJjaFdpdGhJbnB1dCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pbml0Q2hlY2tib3hFdmVudCgpO1xuXG4gICAgICAgIGlmICh0aGlzLnNlYXJjaERlbGF5ID09IDUwMCkge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hEZWxheSA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdOZ3REYXRhdGFibGVTZWFyY2hEZWxheScsIDUwMCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zZWFyY2hUZXJtTWluTGVuZ3RoID09IDEpIHtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVGVybU1pbkxlbmd0aCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdOZ3REYXRhdGFibGVTZWFyY2hUZXJtTWluTGVuZ3RoJywgMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuZGVzdHJveVN1YnNjcmlwdGlvbnMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0U2VhcmNoTW9kYWxUZW1wbGF0ZSh0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgICAgICB0aGlzLnNlYXJjaE1vZGFsVGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3BlblNlYXJjaE1vZGFsKHJlZmVyZW5jZT86IHN0cmluZykge1xuICAgICAgICB0aGlzLnNlYXJjaE1vZGFsLm9wZW4oKTtcbiAgICAgICAgdGhpcy5vbk9wZW5TZWFyY2hNb2RhbC5lbWl0KHJlZmVyZW5jZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsZWFyU2VsZWN0ZWRFbGVtZW50cygpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEVsZW1lbnRzID0gW107XG4gICAgICAgIHRoaXMub25DbGVhclNlbGVjdGVkRWxlbWVudHMuZW1pdCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDdXJyZW50U3RhdGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRTdGF0ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW5pdCgpIHtcbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWFkeSA9IHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHNlYXJjaChcbiAgICAgICAgZmlsdGVyczogT2JqZWN0LFxuICAgICAgICBzZWFyY2hUeXBlOiBOZ3REYXRhdGFibGVTZWFyY2hUeXBlID0gTmd0RGF0YXRhYmxlU2VhcmNoVHlwZS5ERUZBVUxULFxuICAgICAgICBhcHBseURlbGF5T25TZWFyY2g6IGJvb2xlYW4gPSB0cnVlXG4gICAgKSB7XG4gICAgICAgIGlmICh0aGlzLmNhbkFwcGx5RmlsdGVycyhmaWx0ZXJzKSkge1xuICAgICAgICAgICAgdGhpcy5vblNlYXJjaC5lbWl0KGZpbHRlcnMpO1xuXG4gICAgICAgICAgICBpZiAoc2VhcmNoVHlwZSA9PSBOZ3REYXRhdGFibGVTZWFyY2hUeXBlLkRFRkFVTFQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRTdGF0ZS5maWx0ZXJzLmRlZmF1bHRGaWx0ZXJzID0geyAuLi50aGlzLmN1cnJlbnRTdGF0ZS5maWx0ZXJzLmRlZmF1bHRGaWx0ZXJzLCAuLi5maWx0ZXJzIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFN0YXRlLmZpbHRlcnMuc2lsZW50RmlsdGVycyA9IHsgLi4udGhpcy5jdXJyZW50U3RhdGUuZmlsdGVycy5zaWxlbnRGaWx0ZXJzLCAuLi5maWx0ZXJzIH07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuYXBwbHlGaWx0ZXJzRGVzY3JpcHRpb24oKTtcblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXBwbHkoMSwgYXBwbHlEZWxheU9uU2VhcmNoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzb3J0KGZpZWxkOiBhbnksIGRpcmVjdGlvbjogYW55KSB7XG4gICAgICAgIHRoaXMuY3VycmVudFN0YXRlLnNvcnQgPSB7XG4gICAgICAgICAgICBmaWVsZDogZmllbGQsXG4gICAgICAgICAgICBkaXJlY3Rpb246IGRpcmVjdGlvblxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiB0aGlzLmFwcGx5KHRoaXMubmd0UGFnaW5hdGlvbi5nZXRDdXJyZW50UGFnZSgpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgcmVmcmVzaChzdGF5SW5QYWdlOiBOZ3REYXRhdGFibGVQYXJhbSA9IE5ndERhdGF0YWJsZVBhcmFtLlJFU0VUX1BBR0UsIGxvYWRlcjogTmd0RGF0YXRhYmxlUGFyYW0gPSBOZ3REYXRhdGFibGVQYXJhbS5FTkFCTEVfTE9BREVSKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwcGx5KFxuICAgICAgICAgICAgc3RheUluUGFnZSA/IHRoaXMubmd0UGFnaW5hdGlvbi5nZXRDdXJyZW50UGFnZSgpIDogMSxcbiAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgbG9hZGVyXG4gICAgICAgICkudGhlbigoKSA9PiAhdGhpcy5kYXRhPy5sZW5ndGggPyB0aGlzLmFwcGx5KDEsIGZhbHNlKSA6IG51bGwpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXREYXRhKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDdXJyZW50U29ydCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFN0YXRlLnNvcnQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFBlclBhZ2UocGVyUGFnZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMubmd0UGFnaW5hdGlvbi5vblJlZ2lzdGVyc1BlclBhZ2VDaGFuZ2UocGVyUGFnZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFwcGx5RmlsdGVyc0Rlc2NyaXB0aW9uKCkge1xuICAgICAgICBpZiAoIXRoaXMuY2xlYW5pbmdGaWx0ZXIpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyc1RyYW5zbGF0ZWQgPSBbXTtcblxuICAgICAgICAgICAgZm9yIChsZXQgcmVmZXJlbmNlIGluIHRoaXMuY3VycmVudFN0YXRlLmZpbHRlcnMuZGVmYXVsdEZpbHRlcnMpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5maWx0ZXJzRGVzY3JpcHRpb25bcmVmZXJlbmNlXSAmJiB0aGlzLmN1cnJlbnRTdGF0ZS5maWx0ZXJzLmRlZmF1bHRGaWx0ZXJzW3JlZmVyZW5jZV0pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJzVHJhbnNsYXRlZC5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZmVyZW5jZTogcmVmZXJlbmNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMuY3VycmVudFN0YXRlLmZpbHRlcnMuZGVmYXVsdEZpbHRlcnNbcmVmZXJlbmNlXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uOiB0aGlzLmZpbHRlcnNEZXNjcmlwdGlvbltyZWZlcmVuY2VdXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzZXRGaWx0ZXJEZXNjcmlwdGlvbihyZWZlcmVuY2U6IHN0cmluZywgZGVzY3JpcHRpb246IHN0cmluZykge1xuICAgICAgICB0aGlzLmZpbHRlcnNEZXNjcmlwdGlvbltyZWZlcmVuY2VdID0gZGVzY3JpcHRpb247XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHJlbW92ZUZpbHRlcihyZWZlcmVuY2U/OiBzdHJpbmcsIHJlZnJlc2g6IGJvb2xlYW4gPSB0cnVlKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgICAgICAgIGlmIChyZWZlcmVuY2UgJiYgIXRoaXMuaGFzQXBwbGllZEZpbHRlcihyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5jbGVhbmluZ0ZpbHRlciA9IHRydWU7XG5cbiAgICAgICAgICAgIGlmICghcmVmZXJlbmNlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50U3RhdGUuZmlsdGVycy5kZWZhdWx0RmlsdGVycyA9IHt9O1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFN0YXRlLmZpbHRlcnMuc2lsZW50RmlsdGVycyA9IHt9O1xuICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyc1RyYW5zbGF0ZWQgPSBbXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuY3VycmVudFN0YXRlLmZpbHRlcnMuZGVmYXVsdEZpbHRlcnNbcmVmZXJlbmNlXTtcbiAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5jdXJyZW50U3RhdGUuZmlsdGVycy5zaWxlbnRGaWx0ZXJzW3JlZmVyZW5jZV07XG5cbiAgICAgICAgICAgICAgICB0aGlzLmZpbHRlcnNUcmFuc2xhdGVkID0gdGhpcy5maWx0ZXJzVHJhbnNsYXRlZC5maWx0ZXIoZWxlbWVudCA9PiBlbGVtZW50ICYmIGVsZW1lbnQucmVmZXJlbmNlICE9PSByZWZlcmVuY2UpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLm9uQ2xlYXJGaWx0ZXIuZW1pdChyZWZlcmVuY2UpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5pbnB1dFNlYXJjaCAmJiAocmVmZXJlbmNlID09PSAndGVybScgfHwgIXJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0U2VhcmNoLmNsZWFySW5wdXQoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHJlZnJlc2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hcHBseSh0aGlzLm5ndFBhZ2luYXRpb24uZ2V0Q3VycmVudFBhZ2UoKSwgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYW5pbmdGaWx0ZXIgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFzQXBwbGllZEZpbHRlcihmaWx0ZXI6IE9iamVjdCB8IE5ndEN1c3RvbUZpbHRlciB8IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCByZWZlcmVuY2U6IHN0cmluZyA9IHR5cGVvZiBmaWx0ZXIgPT09ICdzdHJpbmcnID8gZmlsdGVyIDogT2JqZWN0LmtleXMoZmlsdGVyID8/IHt9KVswXTtcbiAgICAgICAgY29uc3QgYXBwbGllZEZpbHRlcnMgPSB0aGlzLmN1cnJlbnRTdGF0ZS5maWx0ZXJzLnF1YWxpZmllZEZpbHRlcnM7XG5cbiAgICAgICAgcmV0dXJuICEhT2JqZWN0LmtleXMoYXBwbGllZEZpbHRlcnMpLmZpbmQoa2V5ID0+IGtleSA9PSByZWZlcmVuY2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYXNBcHBsaWVkRmlsdGVycyhzZWFyY2hUeXBlOiBOZ3REYXRhdGFibGVTZWFyY2hUeXBlID0gTmd0RGF0YXRhYmxlU2VhcmNoVHlwZS5ERUZBVUxUKSB7XG4gICAgICAgIGxldCBhcHBsaWVkRmlsdGVycyA9IHt9O1xuXG4gICAgICAgIGlmIChzZWFyY2hUeXBlID09IE5ndERhdGF0YWJsZVNlYXJjaFR5cGUuREVGQVVMVCkge1xuICAgICAgICAgICAgYXBwbGllZEZpbHRlcnMgPSB0aGlzLmN1cnJlbnRTdGF0ZS5maWx0ZXJzLmRlZmF1bHRGaWx0ZXJzO1xuICAgICAgICB9IGVsc2UgaWYgKHNlYXJjaFR5cGUgPT0gTmd0RGF0YXRhYmxlU2VhcmNoVHlwZS5TSUxFTlQpIHtcbiAgICAgICAgICAgIGFwcGxpZWRGaWx0ZXJzID0gdGhpcy5jdXJyZW50U3RhdGUuZmlsdGVycy5zaWxlbnRGaWx0ZXJzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYXBwbGllZEZpbHRlcnMgPSB7IC4uLnRoaXMuY3VycmVudFN0YXRlLmZpbHRlcnMuZGVmYXVsdEZpbHRlcnMsIC4uLnRoaXMuY3VycmVudFN0YXRlLmZpbHRlcnMuc2lsZW50RmlsdGVycyB9O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuICEhT2JqZWN0LnZhbHVlcyhhcHBsaWVkRmlsdGVycyk/LmZpbmQoZmlsdGVyID0+ICEhZmlsdGVyKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoY2hhbmdlcy5pbnB1dFNlYXJjaCkge1xuICAgICAgICAgICAgaWYgKGNoYW5nZXMuaW5wdXRTZWFyY2guY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0U2VhcmNoV2l0aElucHV0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2hhbmdlcy50eXBlKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBnZXRFbnVtRnJvbVN0cmluZyhjaGFuZ2VzLnR5cGUuY3VycmVudFZhbHVlLCBOZ3REYXRhdGFibGVUeXBlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBhcHBseShwYWdlID0gMSwgYXBwbHlEZWxheU9uU2VhcmNoOiBib29sZWFuID0gdHJ1ZSwgbG9hZGVyOiBOZ3REYXRhdGFibGVQYXJhbSA9IE5ndERhdGF0YWJsZVBhcmFtLkVOQUJMRV9MT0FERVIpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KHJlc29sdmUgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmNvbXBvbmVudFJlYWR5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWFyY2hUaW1lb3V0KSB7XG4gICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuc2VhcmNoVGltZW91dCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMubmd0UGFnaW5hdGlvbi5kaXNwbGF5UGFnaW5hdGlvbiA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEVsZW1lbnRzID0gW107XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnR5cGUgPT09IE5ndERhdGF0YWJsZVR5cGUuUkVNT1RFKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucmVtb3RlUmVzb3VyY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxvYWRlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmluZFZpc2liaWxpdHlBdHRyaWJ1dGVzKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoYXBwbHlEZWxheU9uU2VhcmNoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWREYXRhKHBhZ2UpLnRoZW4oKCkgPT4gcmVzb2x2ZSgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIHRoaXMuc2VhcmNoRGVsYXkpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkRGF0YShwYWdlKS50aGVuKCgpID0+IHJlc29sdmUoKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdUaGUgcHJvcGVydHkgW3JlbW90ZVJlc291cmNlXSBuZWVkcyB0byBiZSBwcmVzZW50IHRvIGJlIGFibGUgdG8gbWFrZSByZW1vdGUgc2VhcmNoJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT0gTmd0RGF0YXRhYmxlVHlwZS5GSVhFRCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYmluZFZpc2liaWxpdHlBdHRyaWJ1dGVzKCk7XG5cbiAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRUYWdGaWx0ZXJWYWx1ZShmaWx0ZXI6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGZpbHRlcnNUYWcgPSB0aGlzLmdldEZpbHRlcnNUYWdBcnJheShmaWx0ZXIpO1xuXG4gICAgICAgIHJldHVybiBmaWx0ZXJzVGFnLmxlbmd0aCA+IDFcbiAgICAgICAgICAgID8gZmlsdGVyc1RhZ1swXSArIFwiICtcIlxuICAgICAgICAgICAgOiBmaWx0ZXJzVGFnWzBdO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRUaXRsZShmaWx0ZXI6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGZpbHRlcnNUYWcgPSB0aGlzLmdldEZpbHRlcnNUYWdBcnJheShmaWx0ZXIpO1xuXG4gICAgICAgIHJldHVybiBmaWx0ZXJzVGFnLmxlbmd0aCA+IDFcbiAgICAgICAgICAgID8gZmlsdGVyc1RhZy5zbGljZSgxKS5qb2luKFwiLFwiKVxuICAgICAgICAgICAgOiAnJztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZpbHRlcnNUYWdBcnJheShmaWx0ZXI6IGFueSk6IHN0cmluZ1tdIHtcbiAgICAgICAgY29uc3QgdGFnID0gZmlsdGVyPy52YWx1ZT8udGFnVmFsdWUgPyBmaWx0ZXIudmFsdWUudGFnVmFsdWUgOiBmaWx0ZXIudmFsdWU7XG5cbiAgICAgICAgcmV0dXJuIHRhZy5zcGxpdChcIixcIik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2FkRGF0YShwYWdlOiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHBhZ2luYXRpb246IE5ndEh0dHBQYWdpbmF0aW9uID0geyAuLi50aGlzLm5ndFBhZ2luYXRpb24uZ2V0UGFnaW5hdGlvbigpLCAuLi57IHBhZ2U6IHBhZ2UgfSB9O1xuXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRTdGF0ZS5maWx0ZXJzLnF1YWxpZmllZEZpbHRlcnMgPSB0aGlzLmdldFF1YWxpZmllZEZpbHRlcnMoKTtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoaW5nID0gdHJ1ZTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuaW5wdXRTZWFyY2gpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0U2VhcmNoLmlzRGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgICAgICAgICB0aGlzLm5ndEh0dHBTZXJ2aWNlLmdldChcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdGVSZXNvdXJjZSwgdGhpcy5jdXJyZW50U3RhdGUuZmlsdGVycy5xdWFsaWZpZWRGaWx0ZXJzLCBwYWdpbmF0aW9uLCB0aGlzLmN1cnJlbnRTdGF0ZS5zb3J0XG4gICAgICAgICAgICAgICAgKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgICAgIChyZXNwb25zZTogTmd0SHR0cFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2NjZXNzUmVtb3RlUmVzcG9uc2UocmVzcG9uc2UuZGF0YSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5tZXRhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uZ3RQYWdpbmF0aW9uLnByb2NjZXNzUGFnaW5hdGlvbihyZXNwb25zZS5tZXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbnB1dFNlYXJjaCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRTZWFyY2guaXNEaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRGF0YUNoYW5nZS5lbWl0KHRoaXMuZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJpbmRWaXNpYmlsaXR5QXR0cmlidXRlcygpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRTZWFyY2guaXNEaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRRdWFsaWZpZWRGaWx0ZXJzKCkge1xuICAgICAgICBjb25zdCBxdWFsaWZpZWRGaWx0ZXJzID0ge307XG4gICAgICAgIGNvbnN0IHJlcXVlc3RlZEZpbHRlcnMgPSB7IC4uLnRoaXMuY3VycmVudFN0YXRlLmZpbHRlcnMuZGVmYXVsdEZpbHRlcnMsIC4uLnRoaXMuY3VycmVudFN0YXRlLmZpbHRlcnMuc2lsZW50RmlsdGVycyB9O1xuXG4gICAgICAgIGlmIChyZXF1ZXN0ZWRGaWx0ZXJzKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHJlZmVyZW5jZSBpbiByZXF1ZXN0ZWRGaWx0ZXJzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyID0gcmVxdWVzdGVkRmlsdGVyc1tyZWZlcmVuY2VdO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNWYWxpZEZpbHRlcihmaWx0ZXIsIHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpbHRlciBpbnN0YW5jZW9mIE5ndEN1c3RvbUZpbHRlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpbHRlci50YWdMYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyc0Rlc2NyaXB0aW9uW3JlZmVyZW5jZV0gPSBmaWx0ZXIudGFnTGFiZWw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBseUZpbHRlcnNEZXNjcmlwdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBxdWFsaWZpZWRGaWx0ZXJzW3JlZmVyZW5jZV0gPSBmaWx0ZXIudGVybTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHF1YWxpZmllZEZpbHRlcnNbcmVmZXJlbmNlXSA9IGZpbHRlcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBxdWFsaWZpZWRGaWx0ZXJzO1xuICAgIH1cblxuICAgIHByaXZhdGUgYmluZFZpc2liaWxpdHlBdHRyaWJ1dGVzKCkge1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICBpZiAodGhpcy50eXBlID09IE5ndERhdGF0YWJsZVR5cGUuUkVNT1RFICYmICF0aGlzLmRhdGEubGVuZ3RoICYmICF0aGlzLmxvYWRpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuZW1wdHlTdGF0ZVZpc2libGUgPSB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PSBOZ3REYXRhdGFibGVUeXBlLkZJWEVEKSB7XG4gICAgICAgICAgICB0aGlzLmVtcHR5U3RhdGVWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVtcHR5U3RhdGVWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHByb2NjZXNzUmVtb3RlUmVzcG9uc2UocmVzcG9uc2U6IGFueSkge1xuICAgICAgICB0aGlzLmRhdGEgPSByZXNwb25zZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRTZWFyY2hXaXRoSW5wdXQoKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgICAgICAgdGhpcy5pbnB1dFNlYXJjaC5vblZhbHVlQ2hhbmdlKCkuc3Vic2NyaWJlKCh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudFN0YXRlLmZpbHRlcnMuZGVmYXVsdEZpbHRlcnNbJ3Rlcm0nXSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZUZpbHRlcigndGVybScpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlLmxlbmd0aCA8IHRoaXMuc2VhcmNoVGVybU1pbkxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuY3VycmVudFN0YXRlLmZpbHRlcnMuZGVmYXVsdEZpbHRlcnNbJ3Rlcm0nXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWFyY2goeyB0ZXJtOiAnJyB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPj0gdGhpcy5zZWFyY2hUZXJtTWluTGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoKHsgdGVybTogdmFsdWUgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAodGhpcy5zZWFyY2hUZXJtT25FbnRlcikge1xuICAgICAgICAgICAgdGhpcy5pbnB1dFNlYXJjaC5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQua2V5Q29kZSA9PSAxMykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbnB1dFNlYXJjaC52YWx1ZSAmJiB0aGlzLmlucHV0U2VhcmNoLnZhbHVlLmxlbmd0aCA+PSB0aGlzLnNlYXJjaFRlcm1NaW5MZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXBwbHkoMSwgZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRDaGVja2JveEV2ZW50KCkge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgICAgIHRoaXMub25Ub29nbGVDaGVja2JveC5zdWJzY3JpYmUoKGNoZWNrZWRFbGVtZW50OiBOZ3RDaGVja2VkRWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRFbGVtZW50cyA9IHRoaXMuc2VsZWN0ZWRFbGVtZW50cy5maWx0ZXIoaXRlbSA9PiBpdGVtLmlkICE9PSBjaGVja2VkRWxlbWVudC5pZCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoY2hlY2tlZEVsZW1lbnQuY2hlY2tlZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRWxlbWVudHMucHVzaChjaGVja2VkRWxlbWVudCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5vblNlbGVjdGVkRWxlbWVudHNDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkRWxlbWVudHMpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgICAgIHRoaXMub25TZWxlY3RBbGxSZWdpc3RlcnMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhc1NlbGVjdGVkQWxsRWxlbWVudHMgPSAhdGhpcy5oYXNTZWxlY3RlZEFsbEVsZW1lbnRzO1xuXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmhhc1NlbGVjdGVkQWxsRWxlbWVudHMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEVsZW1lbnRzID0gW107XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbkFwcGx5RmlsdGVycyhmaWx0ZXJzOiBPYmplY3QpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLnNlYXJjaGluZykge1xuICAgICAgICAgICAgZm9yIChjb25zdCByZWZlcmVuY2UgaW4gZmlsdGVycykge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzVmFsaWRGaWx0ZXIoZmlsdGVyc1tyZWZlcmVuY2VdLCByZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzVmFsaWRGaWx0ZXIoZmlsdGVyOiBzdHJpbmcgfCBOZ3RDdXN0b21GaWx0ZXIsIHJlZmVyZW5jZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGhhc1ZhbHVlOiBib29sZWFuID0gISEoKGZpbHRlciBpbnN0YW5jZW9mIE5ndEN1c3RvbUZpbHRlciAmJiBmaWx0ZXIudGVybSkgfHwgZmlsdGVyKTtcbiAgICAgICAgY29uc3QgaXNBcHBsaWVkOiBib29sZWFuID0gdGhpcy5oYXNBcHBsaWVkRmlsdGVyKHJlZmVyZW5jZSk7XG5cbiAgICAgICAgcmV0dXJuIGlzQXBwbGllZCB8fCAoIWlzQXBwbGllZCAmJiBoYXNWYWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXN0cm95U3Vic2NyaXB0aW9ucygpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3Vic2NyaXB0aW9uID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW107XG4gICAgfVxufVxuXG5leHBvcnQgZW51bSBOZ3REYXRhdGFibGVUeXBlIHtcbiAgICBSRU1PVEUgPSAnUkVNT1RFJyxcbiAgICBGSVhFRCA9ICdGSVhFRCdcbn1cblxuZXhwb3J0IGVudW0gTmd0RGF0YXRhYmxlU2VhcmNoVHlwZSB7XG4gICAgREVGQVVMVCA9ICdERUZBVUxUJyxcbiAgICBTSUxFTlQgPSAnU0lMRU5UJyxcbn1cblxuZXhwb3J0IGVudW0gTmd0RGF0YXRhYmxlUGFyYW0ge1xuICAgIFNUQVlfSU5fUEFHRSA9IDEsXG4gICAgUkVTRVRfUEFHRSA9IDAsXG4gICAgRU5BQkxFX0xPQURFUiA9IDEsXG4gICAgRElTQUJMRV9MT0FERVIgPSAwXG59XG5cbmV4cG9ydCBjbGFzcyBOZ3RDaGVja2VkRWxlbWVudCB7XG4gICAgcHVibGljIGlkOiBzdHJpbmc7XG4gICAgcHVibGljIGNoZWNrZWQ6IGJvb2xlYW47XG4gICAgcHVibGljIHJlZmVyZW5jZTogYW55O1xufVxuXG5leHBvcnQgY2xhc3MgTmd0Q3VzdG9tRmlsdGVyIHtcbiAgICBwdWJsaWMgdGVybTogc3RyaW5nO1xuICAgIHB1YmxpYyB0YWdWYWx1ZTogc3RyaW5nO1xuICAgIHB1YmxpYyB0YWdMYWJlbD86IHN0cmluZztcbn1cbiIsIjxkaXYgY2xhc3M9XCJ3LWZ1bGxcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgdy1mdWxsXCI+XG4gICAgICAgIDxuZ3QtdGFnICpuZ0lmPVwiaGFzQXBwbGllZEZpbHRlcnMoKVwiIGNsYXNzPVwidy1mdWxsIHNtOnctYXV0byB7eyBmaWx0ZXJUYWdNYXJnaW4gfX1cIlxuICAgICAgICAgICAgW2NsYXNzLnNtOm1yLTRdPVwiZmlsdGVyVGFnTWFyZ2luID09ICdtYi00J1wiIGNvbG9yLmJnPVwiYmctcmVkLTUwMFwiIChjbGljayk9XCJyZW1vdmVGaWx0ZXIoKVwiIG5ndC1zdHlsaXphYmxlPlxuICAgICAgICAgICAgTGltcGFyIEZpbHRyb3NcbiAgICAgICAgPC9uZ3QtdGFnPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNBcHBsaWVkRmlsdGVycygpXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWx0ZXIgb2YgZmlsdGVyc1RyYW5zbGF0ZWRcIj5cbiAgICAgICAgICAgICAgICA8bmd0LXRhZyBjbGFzcz1cInctZnVsbCBzbTp3LWF1dG8ge3sgZmlsdGVyVGFnTWFyZ2luIH19XCIgW2NsYXNzLnNtOm1yLTRdPVwiZmlsdGVyVGFnTWFyZ2luID09ICdtYi00J1wiXG4gICAgICAgICAgICAgICAgICAgIFtjb2xvci5iZ109XCJmaWx0ZXJUYWdCZ0NvbG9yXCIgKGNsaWNrKT1cInJlbW92ZUZpbHRlcihmaWx0ZXIucmVmZXJlbmNlKVwiIG5ndC1zdHlsaXphYmxlXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJnZXRUaXRsZShmaWx0ZXIpXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGZpbHRlci50cmFuc2xhdGlvbiArICc6ICcgKyBnZXRUYWdGaWx0ZXJWYWx1ZShmaWx0ZXIpIH19XG4gICAgICAgICAgICAgICAgPC9uZ3QtdGFnPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPHRhYmxlIHN0eWxlPVwiZGlzcGxheTogdGFibGU7XCIgY2xhc3M9XCJ0ZXh0LWxlZnQgdy1mdWxsIGJvcmRlci1jb2xsYXBzZSB0YWJsZS1yZXNwb25zaXZlXCIgI3RhYmxlPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC90YWJsZT5cblxuICAgIDxwICpuZ0lmPVwiZW1wdHlTdGF0ZVZpc2libGVcIiBjbGFzcz1cIm10LTggbXgtYXV0byBzZWxmLWNlbnRlciB0ZXh0LWNlbnRlciB0ZXh0LXhsXCI+XG4gICAgICAgIHt7IG5ndFRyYW5zbGF0ZVNlcnZpY2Uubmd0RGF0YXRhYmxlTm9EYXRhRm91bmQgfX1cbiAgICA8L3A+XG5cbiAgICA8ZGl2ICpuZ0lmPVwibG9hZGluZ1wiPlxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpIG9mIFsxLCAyLCAzLCA0XVwiIGNsYXNzPVwiZmxleCB3LWZ1bGwgbXQtM1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbkNvdW50Lmxlbmd0aCA+PSAyXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaiBvZiBjb2x1bW5Db3VudDsgbGV0IGxhc3QgPSBsYXN0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsYXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmd0LXNoaW5pbmcgY2xhc3M9XCJoLTEwIHctZnVsbFwiPjwvbmd0LXNoaW5pbmc+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbGFzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5ndC1zaGluaW5nIGNsYXNzPVwiaC0xMCB3LWZ1bGwgbXItMTBcIj48L25ndC1zaGluaW5nPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uQ291bnQubGVuZ3RoIDwgMlwiPlxuICAgICAgICAgICAgICAgIDxuZ3Qtc2hpbmluZyBjbGFzcz1cImgtMTAgdy1mdWxsXCI+PC9uZ3Qtc2hpbmluZz5cbiAgICAgICAgICAgICAgICA8bmd0LXNoaW5pbmcgY2xhc3M9XCJoLTEwIHctZnVsbCBtci0xMCBtbC0xMFwiPjwvbmd0LXNoaW5pbmc+XG4gICAgICAgICAgICAgICAgPG5ndC1zaGluaW5nIGNsYXNzPVwiaC0xMCB3LWZ1bGxcIj48L25ndC1zaGluaW5nPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJjbGVhcmZpeCB7eyBwYWdpbmF0aW9uTWFyZ2luIH19XCIgW2hpZGRlbl09JyFkYXRhIHx8IGRhdGEubGVuZ3RoID09IDAnPlxuICAgIDxuZ3QtcGFnaW5hdGlvbiBbcGFnZXNJbnRlcnZhbF09JzQnIChvblBhZ2VDaGFuZ2UpPSdhcHBseSgkZXZlbnQsIGZhbHNlKScgKG9uUGVyUGFnZUNoYW5nZSk9J2FwcGx5KDEsIGZhbHNlKSdcbiAgICAgICAgI25ndFBhZ2luYXRpb24+XG4gICAgPC9uZ3QtcGFnaW5hdGlvbj5cbjwvZGl2PlxuXG48bmd0LW1vZGFsIFtjdXN0b21MYXlvdXRdPVwidHJ1ZVwiIFtpc0Rpc2FibGVkXT1cImZhbHNlXCIgW25ndFN0eWxlXT1cImZpbHRlck1vZGFsU3R5bGVcIiAjc2VhcmNoTW9kYWw+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNlYXJjaE1vZGFsVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbjwvbmd0LW1vZGFsPiJdfQ==
|
|
470
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LWRhdGF0YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy10YWlsd2luZC9zcmMvY29tcG9uZW50cy9uZ3QtZGF0YXRhYmxlL25ndC1kYXRhdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LWRhdGF0YWJsZS9uZ3QtZGF0YXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxTQUFTLEVBRVQsWUFBWSxFQUVaLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUdOLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQU01RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7Ozs7Ozs7OztBQU81RixNQUFNLE9BQU8scUJBQXFCO0lBd0Q5QixZQUNZLFFBQWtCLEVBQ2xCLGNBQThCLEVBQzlCLGNBQWlDLEVBRWxDLG1CQUF3QztRQUp2QyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFFbEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQXZEbkMsU0FBSSxHQUFxQixnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7UUFDakQscUJBQWdCLEdBQVcsYUFBYSxDQUFDO1FBQ3pDLG9CQUFlLEdBQVcsTUFBTSxDQUFDO1FBQ2pDLHFCQUFnQixHQUFXLGNBQWMsQ0FBQztRQUUxQyxnQkFBVyxHQUFXLEdBQUcsQ0FBQztRQUMxQix3QkFBbUIsR0FBVyxDQUFDLENBQUM7UUFDaEMsc0JBQWlCLEdBQVksSUFBSSxDQUFDO1FBQ2xDLG1CQUFjLEdBQVEsRUFBRSxD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LENBQU4sSUFBWSxpQkFLWDtBQUxELFdBQVksaUJBQWlCO0lBQ3pCLHlFQUFnQixDQUFBO0lBQ2hCLHFFQUFjLENBQUE7SUFDZCwyRUFBaUIsQ0FBQTtJQUNqQiw2RUFBa0IsQ0FBQTtBQUN0QixDQUFDLEVBTFcsaUJBQWlCLEtBQWpCLGlCQUFpQixRQUs1QjtBQUVELE1BQU0sT0FBTyxpQkFBaUI7Q0FJN0I7QUFFRCxNQUFNLE9BQU8sZUFBZTtDQUkzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBnZXRFbnVtRnJvbVN0cmluZyB9IGZyb20gJy4uLy4uL2hlbHBlcnMvZW51bS9lbnVtJztcbmltcG9ydCB7IE5ndEh0dHBQYWdpbmF0aW9uLCBOZ3RIdHRwUmVzcG9uc2UsIE5ndEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaHR0cC9uZ3QtaHR0cC5zZXJ2aWNlJztcbmltcG9ydCB7IE5ndFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9odHRwL25ndC10cmFuc2xhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBOZ3RJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uL25ndC1pbnB1dC9uZ3QtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IE5ndE1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vbmd0LW1vZGFsL25ndC1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmd0UGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL25ndC1wYWdpbmF0aW9uL25ndC1wYWdpbmF0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ3RTdHlsaXphYmxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25ndC1zdHlsaXphYmxlL25ndC1zdHlsaXphYmxlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndC1kYXRhdGFibGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9uZ3QtZGF0YXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9uZ3QtZGF0YXRhYmxlLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBOZ3REYXRhdGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQFZpZXdDaGlsZCgndGFibGUnLCB7IHN0YXRpYzogdHJ1ZSB9KSBwdWJsaWMgdGFibGU6IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgnbmd0UGFnaW5hdGlvbicsIHsgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyBuZ3RQYWdpbmF0aW9uOiBOZ3RQYWdpbmF0aW9uQ29tcG9uZW50O1xuICAgIEBWaWV3Q2hpbGQoJ3NlYXJjaE1vZGFsJywgeyBzdGF0aWM6IHRydWUgfSkgcHVibGljIHNlYXJjaE1vZGFsOiBOZ3RNb2RhbENvbXBvbmVudDtcblxuICAgIEBJbnB1dCgpIHB1YmxpYyByZW1vdGVSZXNvdXJjZTogYW55O1xuICAgIEBJbnB1dCgpIHB1YmxpYyB0eXBlOiBOZ3REYXRhdGFibGVUeXBlID0gTmd0RGF0YXRhYmxlVHlwZS5SRU1PVEU7XG4gICAgQElucHV0KCkgcHVibGljIGZpbHRlclRhZ0JnQ29sb3I6IHN0cmluZyA9ICdiZy1ibHVlLTUwMCc7XG4gICAgQElucHV0KCkgcHVibGljIGZpbHRlclRhZ01hcmdpbjogc3RyaW5nID0gJ21iLTQnO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwYWdpbmF0aW9uTWFyZ2luOiBzdHJpbmcgPSAnbXQtMiBtZDptdC04JztcbiAgICBASW5wdXQoKSBwdWJsaWMgaW5wdXRTZWFyY2g6IE5ndElucHV0Q29tcG9uZW50O1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzZWFyY2hEZWxheTogbnVtYmVyID0gNTAwO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzZWFyY2hUZXJtTWluTGVuZ3RoOiBudW1iZXIgPSAxO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzZWFyY2hUZXJtT25FbnRlcjogYm9vbGVhbiA9IHRydWU7XG4gICAgQElucHV0KCkgcHVibGljIGRlZmF1bHRGaWx0ZXJzOiBhbnkgPSB7fTtcbiAgICBASW5wdXQoKSBwdWJsaWMgZmlsdGVyc0Rlc2NyaXB0aW9uID0ge307XG4gICAgQElucHV0KCkgcHVibGljIGNhblNlbGVjdEFsbFJlZ2lzdGVyczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpIHB1YmxpYyBvbkRhdGFDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgb25DbGVhckZpbHRlcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBvbkNsZWFyU2VsZWN0ZWRFbGVtZW50czogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBvblNlbGVjdGVkRWxlbWVudHNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxBcnJheTxOZ3RDaGVja2VkRWxlbWVudD4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgb25Ub29nbGVBbGxDaGVja2JveGVzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIG9uVG9vZ2xlQ2hlY2tib3g6IEV2ZW50RW1pdHRlcjxOZ3RDaGVja2VkRWxlbWVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBvblNlbGVjdEFsbFJlZ2lzdGVyczogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgb25PcGVuU2VhcmNoTW9kYWw6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgb25TZWFyY2g6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgcHVibGljIHNlYXJjaE1vZGFsVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgcHVibGljIGRhdGEgPSBbXTtcbiAgICBwdWJsaWMgbG9hZGluZyA9IGZhbHNlO1xuICAgIHB1YmxpYyBjbGVhbmluZ0ZpbHRlciA9IGZhbHNlO1xuICAgIHB1YmxpYyBjb21wb25lbnRSZWFkeSA9IGZhbHNlO1xuICAgIHB1YmxpYyBmaWx0ZXJzVHJhbnNsYXRlZCA9IFtdO1xuICAgIHB1YmxpYyBlbXB0eVN0YXRlVmlzaWJsZTogYm9vbGVhbjtcbiAgICBwdWJsaWMgY29sdW1uQ291bnQgPSBbXTtcbiAgICBwdWJsaWMgaGFzU2VsZWN0ZWRBbGxFbGVtZW50czogYm9vbGVhbjtcbiAgICBwdWJsaWMgc2VsZWN0ZWRFbGVtZW50czogQXJyYXk8Tmd0Q2hlY2tlZEVsZW1lbnQ+ID0gW107XG5cbiAgICBwdWJsaWMgZmlsdGVyTW9kYWxTdHlsZTogTmd0U3R5bGl6YWJsZVNlcnZpY2UgPSBuZXcgTmd0U3R5bGl6YWJsZVNlcnZpY2UoKTtcblxuICAgIHByaXZhdGUgc2VhcmNoaW5nOiBib29sZWFuO1xuICAgIHByaXZhdGUgc2VhcmNoVGltZW91dDogYW55O1xuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uczogQXJyYXk8U3Vic2NyaXB0aW9uPiA9IFtdO1xuICAgIHByaXZhdGUgY3VycmVudFN0YXRlID0ge1xuICAgICAgICBmaWx0ZXJzOiB7XG4gICAgICAgICAgICBkZWZhdWx0RmlsdGVyczoge30sXG4gICAgICAgICAgICBzaWxlbnRGaWx0ZXJzOiB7fSxcbiAgICAgICAgICAgIHF1YWxpZmllZEZpbHRlcnM6IHt9LFxuICAgICAgICB9LFxuICAgICAgICBzb3J0OiB7XG4gICAgICAgICAgICBmaWVsZDogJycsXG4gICAgICAgICAgICBkaXJlY3Rpb246ICcnXG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSBuZ3RIdHRwU2VydmljZTogTmd0SHR0cFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBwdWJsaWMgbmd0VHJhbnNsYXRlU2VydmljZTogTmd0VHJhbnNsYXRlU2VydmljZVxuICAgICkge1xuICAgICAgICB0aGlzLmZpbHRlck1vZGFsU3R5bGUubG9hZCh0aGlzLmluamVjdG9yLCAnRmlsdGVyTW9kYWwnLCB7XG4gICAgICAgICAgICB3OiAnbWQ6bWF4LXctbWQnLFxuICAgICAgICAgICAgcHk6ICdweS00JyxcbiAgICAgICAgICAgIHB4OiAncHgtNicsXG4gICAgICAgICAgICBib3JkZXI6ICdib3JkZXIgYm9yZGVyLXRlYWwtNTAwJyxcbiAgICAgICAgICAgIG92ZXJmbG93OiAnb3ZlcmZsb3ctdmlzaWJsZScsXG4gICAgICAgICAgICBjb2xvcjoge31cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAodGhpcy50YWJsZSAmJiB0aGlzLnRhYmxlLm5hdGl2ZUVsZW1lbnQgJiYgdGhpcy50YWJsZS5uYXRpdmVFbGVtZW50LnJvd3NcbiAgICAgICAgICAgICYmIHRoaXMudGFibGUubmF0aXZlRWxlbWVudC5yb3dzWzBdICYmIHRoaXMudGFibGUubmF0aXZlRWxlbWVudC5yb3dzWzBdLmNlbGxzKSB7XG4gICAgICAgICAgICB0aGlzLmNvbHVtbkNvdW50ID0gdGhpcy50YWJsZS5uYXRpdmVFbGVtZW50LnJvd3NbMF0uY2VsbHM7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pbnB1dFNlYXJjaCkge1xuICAgICAgICAgICAgdGhpcy5pbml0U2VhcmNoV2l0aElucHV0KCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmluaXRDaGVja2JveEV2ZW50KCk7XG5cbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoRGVsYXkgPT0gNTAwKSB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaERlbGF5ID0gdGhpcy5pbmplY3Rvci5nZXQoJ05ndERhdGF0YWJsZVNlYXJjaERlbGF5JywgNTAwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnNlYXJjaFRlcm1NaW5MZW5ndGggPT0gMSkge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hUZXJtTWluTGVuZ3RoID0gdGhpcy5pbmplY3Rvci5nZXQoJ05ndERhdGF0YWJsZVNlYXJjaFRlcm1NaW5MZW5ndGgnLCAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95U3Vic2NyaXB0aW9ucygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRTZWFyY2hNb2RhbFRlbXBsYXRlKHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgICAgIHRoaXMuc2VhcmNoTW9kYWxUZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICAgIH1cblxuICAgIHB1YmxpYyBvcGVuU2VhcmNoTW9kYWwocmVmZXJlbmNlPzogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2VhcmNoTW9kYWwub3BlbigpO1xuICAgICAgICB0aGlzLm9uT3BlblNlYXJjaE1vZGFsLmVtaXQocmVmZXJlbmNlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXJTZWxlY3RlZEVsZW1lbnRzKCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkRWxlbWVudHMgPSBbXTtcbiAgICAgICAgdGhpcy5vbkNsZWFyU2VsZWN0ZWRFbGVtZW50cy5lbWl0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEN1cnJlbnRTdGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFN0YXRlO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbml0KCkge1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlYWR5ID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgc2VhcmNoKFxuICAgICAgICBmaWx0ZXJzOiBPYmplY3QsXG4gICAgICAgIHNlYXJjaFR5cGU6IE5ndERhdGF0YWJsZVNlYXJjaFR5cGUgPSBOZ3REYXRhdGFibGVTZWFyY2hUeXBlLkRFRkFVTFQsXG4gICAgICAgIGFwcGx5RGVsYXlPblNlYXJjaDogYm9vbGVhbiA9IHRydWVcbiAgICApIHtcbiAgICAgICAgaWYgKHRoaXMuY2FuQXBwbHlGaWx0ZXJzKGZpbHRlcnMpKSB7XG4gICAgICAgICAgICB0aGlzLm9uU2VhcmNoLmVtaXQoZmlsdGVycyk7XG5cbiAgICAgICAgICAgIGlmIChzZWFyY2hUeXBlID09IE5ndERhdGF0YWJsZVNlYXJjaFR5cGUuREVGQVVMVCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFN0YXRlLmZpbHRlcnMuZGVmYXVsdEZpbHRlcnMgPSB7IC4uLnRoaXMuY3VycmVudFN0YXRlLmZpbHRlcnMuZGVmYXVsdEZpbHRlcnMsIC4uLmZpbHRlcnMgfTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50U3RhdGUuZmlsdGVycy5zaWxlbnRGaWx0ZXJzID0geyAuLi50aGlzLmN1cnJlbnRTdGF0ZS5maWx0ZXJzLnNpbGVudEZpbHRlcnMsIC4uLmZpbHRlcnMgfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5hcHBseUZpbHRlcnNEZXNjcmlwdGlvbigpO1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hcHBseSgxLCBhcHBseURlbGF5T25TZWFyY2gpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHNvcnQoZmllbGQ6IGFueSwgZGlyZWN0aW9uOiBhbnkpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50U3RhdGUuc29ydCA9IHtcbiAgICAgICAgICAgIGZpZWxkOiBmaWVsZCxcbiAgICAgICAgICAgIGRpcmVjdGlvbjogZGlyZWN0aW9uXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwbHkodGhpcy5uZ3RQYWdpbmF0aW9uLmdldEN1cnJlbnRQYWdlKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyByZWZyZXNoKHN0YXlJblBhZ2U6IE5ndERhdGF0YWJsZVBhcmFtID0gTmd0RGF0YXRhYmxlUGFyYW0uUkVTRVRfUEFHRSwgbG9hZGVyOiBOZ3REYXRhdGFibGVQYXJhbSA9IE5ndERhdGF0YWJsZVBhcmFtLkVOQUJMRV9MT0FERVIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwbHkoXG4gICAgICAgICAgICBzdGF5SW5QYWdlID8gdGhpcy5uZ3RQYWdpbmF0aW9uLmdldEN1cnJlbnRQYWdlKCkgOiAxLFxuICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICBsb2FkZXJcbiAgICAgICAgKS50aGVuKCgpID0+ICF0aGlzLmRhdGE/Lmxlbmd0aCA/IHRoaXMuYXBwbHkoMSwgZmFsc2UpIDogbnVsbCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldERhdGEoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGE7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEN1cnJlbnRTb3J0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50U3RhdGUuc29ydDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0UGVyUGFnZShwZXJQYWdlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5uZ3RQYWdpbmF0aW9uLm9uUmVnaXN0ZXJzUGVyUGFnZUNoYW5nZShwZXJQYWdlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXBwbHlGaWx0ZXJzRGVzY3JpcHRpb24oKSB7XG4gICAgICAgIGlmICghdGhpcy5jbGVhbmluZ0ZpbHRlcikge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJzVHJhbnNsYXRlZCA9IFtdO1xuXG4gICAgICAgICAgICBmb3IgKGxldCByZWZlcmVuY2UgaW4gdGhpcy5jdXJyZW50U3RhdGUuZmlsdGVycy5kZWZhdWx0RmlsdGVycykge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZpbHRlcnNEZXNjcmlwdGlvbltyZWZlcmVuY2VdICYmIHRoaXMuY3VycmVudFN0YXRlLmZpbHRlcnMuZGVmYXVsdEZpbHRlcnNbcmVmZXJlbmNlXSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbHRlcnNUcmFuc2xhdGVkLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVmZXJlbmNlOiByZWZlcmVuY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5jdXJyZW50U3RhdGUuZmlsdGVycy5kZWZhdWx0RmlsdGVyc1tyZWZlcmVuY2VdLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb246IHRoaXMuZmlsdGVyc0Rlc2NyaXB0aW9uW3JlZmVyZW5jZV1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHNldEZpbHRlckRlc2NyaXB0aW9uKHJlZmVyZW5jZTogc3RyaW5nLCBkZXNjcmlwdGlvbjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZmlsdGVyc0Rlc2NyaXB0aW9uW3JlZmVyZW5jZV0gPSBkZXNjcmlwdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgcmVtb3ZlRmlsdGVyKHJlZmVyZW5jZT86IHN0cmluZywgcmVmcmVzaDogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgICAgICAgICAgaWYgKHJlZmVyZW5jZSAmJiAhdGhpcy5oYXNBcHBsaWVkRmlsdGVyKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzb2x2ZSgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmNsZWFuaW5nRmlsdGVyID0gdHJ1ZTtcblxuICAgICAgICAgICAgaWYgKCFyZWZlcmVuY2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRTdGF0ZS5maWx0ZXJzLmRlZmF1bHRGaWx0ZXJzID0ge307XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50U3RhdGUuZmlsdGVycy5zaWxlbnRGaWx0ZXJzID0ge307XG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJzVHJhbnNsYXRlZCA9IFtdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5jdXJyZW50U3RhdGUuZmlsdGVycy5kZWZhdWx0RmlsdGVyc1tyZWZlcmVuY2VdO1xuICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmN1cnJlbnRTdGF0ZS5maWx0ZXJzLnNpbGVudEZpbHRlcnNbcmVmZXJlbmNlXTtcblxuICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyc1RyYW5zbGF0ZWQgPSB0aGlzLmZpbHRlcnNUcmFuc2xhdGVkLmZpbHRlcihlbGVtZW50ID0+IGVsZW1lbnQgJiYgZWxlbWVudC5yZWZlcmVuY2UgIT09IHJlZmVyZW5jZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMub25DbGVhckZpbHRlci5lbWl0KHJlZmVyZW5jZSk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmlucHV0U2VhcmNoICYmIChyZWZlcmVuY2UgPT09ICd0ZXJtJyB8fCAhcmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRTZWFyY2guY2xlYXJJbnB1dCgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocmVmcmVzaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFwcGx5KHRoaXMubmd0UGFnaW5hdGlvbi5nZXRDdXJyZW50UGFnZSgpLCBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbGVhbmluZ0ZpbHRlciA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYXNBcHBsaWVkRmlsdGVyKGZpbHRlcjogT2JqZWN0IHwgTmd0Q3VzdG9tRmlsdGVyIHwgc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHJlZmVyZW5jZTogc3RyaW5nID0gdHlwZW9mIGZpbHRlciA9PT0gJ3N0cmluZycgPyBmaWx0ZXIgOiBPYmplY3Qua2V5cyhmaWx0ZXIgPz8ge30pWzBdO1xuICAgICAgICBjb25zdCBhcHBsaWVkRmlsdGVycyA9IHRoaXMuY3VycmVudFN0YXRlLmZpbHRlcnMucXVhbGlmaWVkRmlsdGVycztcblxuICAgICAgICByZXR1cm4gISFPYmplY3Qua2V5cyhhcHBsaWVkRmlsdGVycykuZmluZChrZXkgPT4ga2V5ID09IHJlZmVyZW5jZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGhhc0FwcGxpZWRGaWx0ZXJzKHNlYXJjaFR5cGU6IE5ndERhdGF0YWJsZVNlYXJjaFR5cGUgPSBOZ3REYXRhdGFibGVTZWFyY2hUeXBlLkRFRkFVTFQpIHtcbiAgICAgICAgbGV0IGFwcGxpZWRGaWx0ZXJzID0ge307XG5cbiAgICAgICAgaWYgKHNlYXJjaFR5cGUgPT0gTmd0RGF0YXRhYmxlU2VhcmNoVHlwZS5ERUZBVUxUKSB7XG4gICAgICAgICAgICBhcHBsaWVkRmlsdGVycyA9IHRoaXMuY3VycmVudFN0YXRlLmZpbHRlcnMuZGVmYXVsdEZpbHRlcnM7XG4gICAgICAgIH0gZWxzZSBpZiAoc2VhcmNoVHlwZSA9PSBOZ3REYXRhdGFibGVTZWFyY2hUeXBlLlNJTEVOVCkge1xuICAgICAgICAgICAgYXBwbGllZEZpbHRlcnMgPSB0aGlzLmN1cnJlbnRTdGF0ZS5maWx0ZXJzLnNpbGVudEZpbHRlcnM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhcHBsaWVkRmlsdGVycyA9IHsgLi4udGhpcy5jdXJyZW50U3RhdGUuZmlsdGVycy5kZWZhdWx0RmlsdGVycywgLi4udGhpcy5jdXJyZW50U3RhdGUuZmlsdGVycy5zaWxlbnRGaWx0ZXJzIH07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gISFPYmplY3QudmFsdWVzKGFwcGxpZWRGaWx0ZXJzKT8uZmluZChmaWx0ZXIgPT4gISFmaWx0ZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGlmIChjaGFuZ2VzLmlucHV0U2VhcmNoKSB7XG4gICAgICAgICAgICBpZiAoY2hhbmdlcy5pbnB1dFNlYXJjaC5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRTZWFyY2hXaXRoSW5wdXQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaGFuZ2VzLnR5cGUpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IGdldEVudW1Gcm9tU3RyaW5nKGNoYW5nZXMudHlwZS5jdXJyZW50VmFsdWUsIE5ndERhdGF0YWJsZVR5cGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGFwcGx5KHBhZ2UgPSAxLCBhcHBseURlbGF5T25TZWFyY2g6IGJvb2xlYW4gPSB0cnVlLCBsb2FkZXI6IE5ndERhdGF0YWJsZVBhcmFtID0gTmd0RGF0YXRhYmxlUGFyYW0uRU5BQkxFX0xPQURFUikge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4ocmVzb2x2ZSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuY29tcG9uZW50UmVhZHkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzb2x2ZSgpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlYXJjaFRpbWVvdXQpIHtcbiAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5zZWFyY2hUaW1lb3V0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5uZ3RQYWdpbmF0aW9uLmRpc3BsYXlQYWdpbmF0aW9uID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRWxlbWVudHMgPSBbXTtcblxuICAgICAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gTmd0RGF0YXRhYmxlVHlwZS5SRU1PVEUpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5yZW1vdGVSZXNvdXJjZSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAobG9hZGVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5iaW5kVmlzaWJpbGl0eUF0dHJpYnV0ZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChhcHBseURlbGF5T25TZWFyY2gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZERhdGEocGFnZSkudGhlbigoKSA9PiByZXNvbHZlKCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSwgdGhpcy5zZWFyY2hEZWxheSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWREYXRhKHBhZ2UpLnRoZW4oKCkgPT4gcmVzb2x2ZSgpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1RoZSBwcm9wZXJ0eSBbcmVtb3RlUmVzb3VyY2VdIG5lZWRzIHRvIGJlIHByZXNlbnQgdG8gYmUgYWJsZSB0byBtYWtlIHJlbW90ZSBzZWFyY2gnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PSBOZ3REYXRhdGFibGVUeXBlLkZJWEVEKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5iaW5kVmlzaWJpbGl0eUF0dHJpYnV0ZXMoKTtcblxuICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFRhZ0ZpbHRlclZhbHVlKGZpbHRlcjogYW55KTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZmlsdGVyc1RhZyA9IHRoaXMuZ2V0RmlsdGVyc1RhZ0FycmF5KGZpbHRlcik7XG5cbiAgICAgICAgcmV0dXJuIGZpbHRlcnNUYWcubGVuZ3RoID4gMVxuICAgICAgICAgICAgPyBmaWx0ZXJzVGFnWzBdICsgXCIgK1wiXG4gICAgICAgICAgICA6IGZpbHRlcnNUYWdbMF07XG4gICAgfVxuXG4gICAgcHVibGljIGdldFRpdGxlKGZpbHRlcjogYW55KTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZmlsdGVyc1RhZyA9IHRoaXMuZ2V0RmlsdGVyc1RhZ0FycmF5KGZpbHRlcik7XG5cbiAgICAgICAgcmV0dXJuIGZpbHRlcnNUYWcubGVuZ3RoID4gMVxuICAgICAgICAgICAgPyBmaWx0ZXJzVGFnLnNsaWNlKDEpLmpvaW4oXCIsXCIpXG4gICAgICAgICAgICA6ICcnO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RmlsdGVyc1RhZ0FycmF5KGZpbHRlcjogYW55KTogc3RyaW5nW10ge1xuICAgICAgICBjb25zdCB0YWcgPSBmaWx0ZXI/LnZhbHVlPy50YWdWYWx1ZSA/IGZpbHRlci52YWx1ZS50YWdWYWx1ZSA6IGZpbHRlci52YWx1ZTtcblxuICAgICAgICByZXR1cm4gdGFnLnNwbGl0KFwiLFwiKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxvYWREYXRhKHBhZ2U6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcGFnaW5hdGlvbjogTmd0SHR0cFBhZ2luYXRpb24gPSB7IC4uLnRoaXMubmd0UGFnaW5hdGlvbi5nZXRQYWdpbmF0aW9uKCksIC4uLnsgcGFnZTogcGFnZSB9IH07XG5cbiAgICAgICAgICAgIHRoaXMuY3VycmVudFN0YXRlLmZpbHRlcnMucXVhbGlmaWVkRmlsdGVycyA9IHRoaXMuZ2V0UXVhbGlmaWVkRmlsdGVycygpO1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hpbmcgPSB0cnVlO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5pbnB1dFNlYXJjaCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRTZWFyY2guaXNEaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgICAgICAgICAgIHRoaXMubmd0SHR0cFNlcnZpY2UuZ2V0KFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbW90ZVJlc291cmNlLCB0aGlzLmN1cnJlbnRTdGF0ZS5maWx0ZXJzLnF1YWxpZmllZEZpbHRlcnMsIHBhZ2luYXRpb24sIHRoaXMuY3VycmVudFN0YXRlLnNvcnRcbiAgICAgICAgICAgICAgICApLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlOiBOZ3RIdHRwUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvY2Nlc3NSZW1vdGVSZXNwb25zZShyZXNwb25zZS5kYXRhKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLm1ldGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5ndFBhZ2luYXRpb24ucHJvY2Nlc3NQYWdpbmF0aW9uKHJlc3BvbnNlLm1ldGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlucHV0U2VhcmNoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dFNlYXJjaC5pc0Rpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25EYXRhQ2hhbmdlLmVtaXQodGhpcy5kYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmluZFZpc2liaWxpdHlBdHRyaWJ1dGVzKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dFNlYXJjaC5pc0Rpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFF1YWxpZmllZEZpbHRlcnMoKSB7XG4gICAgICAgIGNvbnN0IHF1YWxpZmllZEZpbHRlcnMgPSB7fTtcbiAgICAgICAgY29uc3QgcmVxdWVzdGVkRmlsdGVycyA9IHsgLi4udGhpcy5jdXJyZW50U3RhdGUuZmlsdGVycy5kZWZhdWx0RmlsdGVycywgLi4udGhpcy5jdXJyZW50U3RhdGUuZmlsdGVycy5zaWxlbnRGaWx0ZXJzIH07XG5cbiAgICAgICAgaWYgKHJlcXVlc3RlZEZpbHRlcnMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcmVmZXJlbmNlIGluIHJlcXVlc3RlZEZpbHRlcnMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXIgPSByZXF1ZXN0ZWRGaWx0ZXJzW3JlZmVyZW5jZV07XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1ZhbGlkRmlsdGVyKGZpbHRlciwgcmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmlsdGVyIGluc3RhbmNlb2YgTmd0Q3VzdG9tRmlsdGVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmlsdGVyLnRhZ0xhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJzRGVzY3JpcHRpb25bcmVmZXJlbmNlXSA9IGZpbHRlci50YWdMYWJlbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGx5RmlsdGVyc0Rlc2NyaXB0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHF1YWxpZmllZEZpbHRlcnNbcmVmZXJlbmNlXSA9IGZpbHRlci50ZXJtO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcXVhbGlmaWVkRmlsdGVyc1tyZWZlcmVuY2VdID0gZmlsdGVyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHF1YWxpZmllZEZpbHRlcnM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBiaW5kVmlzaWJpbGl0eUF0dHJpYnV0ZXMoKSB7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT0gTmd0RGF0YXRhYmxlVHlwZS5SRU1PVEUgJiYgIXRoaXMuZGF0YS5sZW5ndGggJiYgIXRoaXMubG9hZGluZykge1xuICAgICAgICAgICAgdGhpcy5lbXB0eVN0YXRlVmlzaWJsZSA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09IE5ndERhdGF0YWJsZVR5cGUuRklYRUQpIHtcbiAgICAgICAgICAgIHRoaXMuZW1wdHlTdGF0ZVZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZW1wdHlTdGF0ZVZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJvY2Nlc3NSZW1vdGVSZXNwb25zZShyZXNwb25zZTogYW55KSB7XG4gICAgICAgIHRoaXMuZGF0YSA9IHJlc3BvbnNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdFNlYXJjaFdpdGhJbnB1dCgpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgICAgICB0aGlzLmlucHV0U2VhcmNoLm9uVmFsdWVDaGFuZ2UoKS5zdWJzY3JpYmUoKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50U3RhdGUuZmlsdGVycy5kZWZhdWx0RmlsdGVyc1sndGVybSddKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlRmlsdGVyKCd0ZXJtJyk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUubGVuZ3RoIDwgdGhpcy5zZWFyY2hUZXJtTWluTGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5jdXJyZW50U3RhdGUuZmlsdGVycy5kZWZhdWx0RmlsdGVyc1sndGVybSddO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaCh7IHRlcm06ICcnIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+PSB0aGlzLnNlYXJjaFRlcm1NaW5MZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWFyY2goeyB0ZXJtOiB2YWx1ZSB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIGlmICh0aGlzLnNlYXJjaFRlcm1PbkVudGVyKSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0U2VhcmNoLmVsZW1lbnQubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcblxuICAgICAgICAgICAgICAgIGlmIChldmVudC5rZXlDb2RlID09IDEzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlucHV0U2VhcmNoLnZhbHVlICYmIHRoaXMuaW5wdXRTZWFyY2gudmFsdWUubGVuZ3RoID49IHRoaXMuc2VhcmNoVGVybU1pbkxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBseSgxLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdENoZWNrYm94RXZlbnQoKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgICAgICAgdGhpcy5vblRvb2dsZUNoZWNrYm94LnN1YnNjcmliZSgoY2hlY2tlZEVsZW1lbnQ6IE5ndENoZWNrZWRFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEVsZW1lbnRzID0gdGhpcy5zZWxlY3RlZEVsZW1lbnRzLmZpbHRlcihpdGVtID0+IGl0ZW0uaWQgIT09IGNoZWNrZWRFbGVtZW50LmlkKTtcblxuICAgICAgICAgICAgICAgIGlmIChjaGVja2VkRWxlbWVudC5jaGVja2VkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRFbGVtZW50cy5wdXNoKGNoZWNrZWRFbGVtZW50KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLm9uU2VsZWN0ZWRFbGVtZW50c0NoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRFbGVtZW50cyk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgICAgICAgdGhpcy5vblNlbGVjdEFsbFJlZ2lzdGVycy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaGFzU2VsZWN0ZWRBbGxFbGVtZW50cyA9ICF0aGlzLmhhc1NlbGVjdGVkQWxsRWxlbWVudHM7XG5cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaGFzU2VsZWN0ZWRBbGxFbGVtZW50cykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRWxlbWVudHMgPSBbXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FuQXBwbHlGaWx0ZXJzKGZpbHRlcnM6IE9iamVjdCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuc2VhcmNoaW5nKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHJlZmVyZW5jZSBpbiBmaWx0ZXJzKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNWYWxpZEZpbHRlcihmaWx0ZXJzW3JlZmVyZW5jZV0sIHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNWYWxpZEZpbHRlcihmaWx0ZXI6IHN0cmluZyB8IE5ndEN1c3RvbUZpbHRlciwgcmVmZXJlbmNlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgaGFzVmFsdWU6IGJvb2xlYW4gPSAhISgoZmlsdGVyIGluc3RhbmNlb2YgTmd0Q3VzdG9tRmlsdGVyICYmIGZpbHRlci50ZXJtKSB8fCBmaWx0ZXIpO1xuICAgICAgICBjb25zdCBpc0FwcGxpZWQ6IGJvb2xlYW4gPSB0aGlzLmhhc0FwcGxpZWRGaWx0ZXIocmVmZXJlbmNlKTtcblxuICAgICAgICByZXR1cm4gaXNBcHBsaWVkIHx8ICghaXNBcHBsaWVkICYmIGhhc1ZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc3Ryb3lTdWJzY3JpcHRpb25zKCkge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWJzY3JpcHRpb24gPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBbXTtcbiAgICB9XG59XG5cbmV4cG9ydCBlbnVtIE5ndERhdGF0YWJsZVR5cGUge1xuICAgIFJFTU9URSA9ICdSRU1PVEUnLFxuICAgIEZJWEVEID0gJ0ZJWEVEJ1xufVxuXG5leHBvcnQgZW51bSBOZ3REYXRhdGFibGVTZWFyY2hUeXBlIHtcbiAgICBERUZBVUxUID0gJ0RFRkFVTFQnLFxuICAgIFNJTEVOVCA9ICdTSUxFTlQnLFxufVxuXG5leHBvcnQgZW51bSBOZ3REYXRhdGFibGVQYXJhbSB7XG4gICAgU1RBWV9JTl9QQUdFID0gMSxcbiAgICBSRVNFVF9QQUdFID0gMCxcbiAgICBFTkFCTEVfTE9BREVSID0gMSxcbiAgICBESVNBQkxFX0xPQURFUiA9IDBcbn1cblxuZXhwb3J0IGNsYXNzIE5ndENoZWNrZWRFbGVtZW50IHtcbiAgICBwdWJsaWMgaWQ6IHN0cmluZztcbiAgICBwdWJsaWMgY2hlY2tlZDogYm9vbGVhbjtcbiAgICBwdWJsaWMgcmVmZXJlbmNlOiBhbnk7XG59XG5cbmV4cG9ydCBjbGFzcyBOZ3RDdXN0b21GaWx0ZXIge1xuICAgIHB1YmxpYyB0ZXJtOiBzdHJpbmc7XG4gICAgcHVibGljIHRhZ1ZhbHVlOiBzdHJpbmc7XG4gICAgcHVibGljIHRhZ0xhYmVsPzogc3RyaW5nO1xufVxuIiwiPGRpdiBjbGFzcz1cInctZnVsbFwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCB3LWZ1bGxcIj5cbiAgICAgICAgPG5ndC10YWcgKm5nSWY9XCJoYXNBcHBsaWVkRmlsdGVycygpXCIgY2xhc3M9XCJ3LWZ1bGwgc206dy1hdXRvIHt7IGZpbHRlclRhZ01hcmdpbiB9fVwiXG4gICAgICAgICAgICBbY2xhc3Muc206bXItNF09XCJmaWx0ZXJUYWdNYXJnaW4gPT0gJ21iLTQnXCIgY29sb3IuYmc9XCJiZy1yZWQtNTAwXCIgKGNsaWNrKT1cInJlbW92ZUZpbHRlcigpXCIgbmd0LXN0eWxpemFibGU+XG4gICAgICAgICAgICBMaW1wYXIgRmlsdHJvc1xuICAgICAgICA8L25ndC10YWc+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc0FwcGxpZWRGaWx0ZXJzKClcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZpbHRlciBvZiBmaWx0ZXJzVHJhbnNsYXRlZFwiPlxuICAgICAgICAgICAgICAgIDxuZ3QtdGFnIGNsYXNzPVwidy1mdWxsIHNtOnctYXV0byB7eyBmaWx0ZXJUYWdNYXJnaW4gfX1cIiBbY2xhc3Muc206bXItNF09XCJmaWx0ZXJUYWdNYXJnaW4gPT0gJ21iLTQnXCJcbiAgICAgICAgICAgICAgICAgICAgW2NvbG9yLmJnXT1cImZpbHRlclRhZ0JnQ29sb3JcIiAoY2xpY2spPVwicmVtb3ZlRmlsdGVyKGZpbHRlci5yZWZlcmVuY2UpXCIgbmd0LXN0eWxpemFibGVcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImdldFRpdGxlKGZpbHRlcilcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgZmlsdGVyLnRyYW5zbGF0aW9uICsgJzogJyArIGdldFRhZ0ZpbHRlclZhbHVlKGZpbHRlcikgfX1cbiAgICAgICAgICAgICAgICA8L25ndC10YWc+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8dGFibGUgc3R5bGU9XCJkaXNwbGF5OiB0YWJsZTtcIiBjbGFzcz1cInRleHQtbGVmdCB3LWZ1bGwgYm9yZGVyLWNvbGxhcHNlIHRhYmxlLXJlc3BvbnNpdmVcIiAjdGFibGU+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L3RhYmxlPlxuXG4gICAgPHAgKm5nSWY9XCJlbXB0eVN0YXRlVmlzaWJsZVwiIGNsYXNzPVwibXQtOCBteC1hdXRvIHNlbGYtY2VudGVyIHRleHQtY2VudGVyIHRleHQteGxcIj5cbiAgICAgICAge3sgbmd0VHJhbnNsYXRlU2VydmljZS5uZ3REYXRhdGFibGVOb0RhdGFGb3VuZCB9fVxuICAgIDwvcD5cblxuICAgIDxkaXYgKm5nSWY9XCJsb2FkaW5nXCI+XG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGkgb2YgWzEsIDIsIDMsIDRdXCIgY2xhc3M9XCJmbGV4IHctZnVsbCBtdC0zXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uQ291bnQubGVuZ3RoID49IDJcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBqIG9mIGNvbHVtbkNvdW50OyBsZXQgbGFzdCA9IGxhc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxhc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3Qtc2hpbmluZyBjbGFzcz1cImgtMTAgdy1mdWxsXCI+PC9uZ3Qtc2hpbmluZz5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsYXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmd0LXNoaW5pbmcgY2xhc3M9XCJoLTEwIHctZnVsbCBtci0xMFwiPjwvbmd0LXNoaW5pbmc+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW5Db3VudC5sZW5ndGggPCAyXCI+XG4gICAgICAgICAgICAgICAgPG5ndC1zaGluaW5nIGNsYXNzPVwiaC0xMCB3LWZ1bGxcIj48L25ndC1zaGluaW5nPlxuICAgICAgICAgICAgICAgIDxuZ3Qtc2hpbmluZyBjbGFzcz1cImgtMTAgdy1mdWxsIG1yLTEwIG1sLTEwXCI+PC9uZ3Qtc2hpbmluZz5cbiAgICAgICAgICAgICAgICA8bmd0LXNoaW5pbmcgY2xhc3M9XCJoLTEwIHctZnVsbFwiPjwvbmd0LXNoaW5pbmc+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImNsZWFyZml4IHt7IHBhZ2luYXRpb25NYXJnaW4gfX1cIiBbaGlkZGVuXT0nIWRhdGEgfHwgZGF0YS5sZW5ndGggPT0gMCc+XG4gICAgPG5ndC1wYWdpbmF0aW9uIFtwYWdlc0ludGVydmFsXT0nNCcgKG9uUGFnZUNoYW5nZSk9J2FwcGx5KCRldmVudCwgZmFsc2UpJyAob25QZXJQYWdlQ2hhbmdlKT0nYXBwbHkoMSwgZmFsc2UpJ1xuICAgICAgICAjbmd0UGFnaW5hdGlvbj5cbiAgICA8L25ndC1wYWdpbmF0aW9uPlxuPC9kaXY+XG5cbjxuZ3QtbW9kYWwgW2N1c3RvbUxheW91dF09XCJ0cnVlXCIgW2lzRGlzYWJsZWRdPVwiZmFsc2VcIiBbbmd0U3R5bGVdPVwiZmlsdGVyTW9kYWxTdHlsZVwiICNzZWFyY2hNb2RhbD5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2VhcmNoTW9kYWxUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuPC9uZ3QtbW9kYWw+Il19
|
|
@@ -20,8 +20,8 @@ import { NgtTrComponent } from './ngt-tr/ngt-tr.component';
|
|
|
20
20
|
import { NgtSvgModule } from '../ngt-svg/ngt-svg.module';
|
|
21
21
|
import * as i0 from "@angular/core";
|
|
22
22
|
export class NgtDatatableModule {
|
|
23
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
24
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
23
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgtDatatableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
24
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: NgtDatatableModule, declarations: [NgtDatatableComponent,
|
|
25
25
|
NgtTbodyComponent,
|
|
26
26
|
NgtTdComponent,
|
|
27
27
|
NgtTdCheckComponent,
|
|
@@ -46,7 +46,7 @@ export class NgtDatatableModule {
|
|
|
46
46
|
NgtThCheckComponent,
|
|
47
47
|
NgtTheadComponent,
|
|
48
48
|
NgtTrComponent] }); }
|
|
49
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
49
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgtDatatableModule, imports: [CommonModule,
|
|
50
50
|
FormsModule,
|
|
51
51
|
NgtShiningModule,
|
|
52
52
|
NgtPaginationModule,
|
|
@@ -58,7 +58,7 @@ export class NgtDatatableModule {
|
|
|
58
58
|
NgtStylizableModule,
|
|
59
59
|
NgtSvgModule] }); }
|
|
60
60
|
}
|
|
61
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgtDatatableModule, decorators: [{
|
|
62
62
|
type: NgModule,
|
|
63
63
|
args: [{
|
|
64
64
|
declarations: [
|
|
@@ -43,15 +43,15 @@ export class NgtTbodyComponent {
|
|
|
43
43
|
'font',
|
|
44
44
|
]);
|
|
45
45
|
}
|
|
46
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
47
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
46
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgtTbodyComponent, deps: [{ token: i0.Injector }, { token: i0.ElementRef }, { token: i1.NgtStylizableDirective, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
47
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NgtTbodyComponent, selector: "[ngt-tbody]", ngImport: i0, template: "<ng-content></ng-content>" }); }
|
|
48
48
|
}
|
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgtTbodyComponent, decorators: [{
|
|
50
50
|
type: Component,
|
|
51
51
|
args: [{ selector: '[ngt-tbody]', template: "<ng-content></ng-content>" }]
|
|
52
|
-
}], ctorParameters:
|
|
52
|
+
}], ctorParameters: () => [{ type: i0.Injector }, { type: i0.ElementRef }, { type: i1.NgtStylizableDirective, decorators: [{
|
|
53
53
|
type: Self
|
|
54
54
|
}, {
|
|
55
55
|
type: Optional
|
|
56
|
-
}] }]
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
}] }] });
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LXRib2R5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRhaWx3aW5kL3NyYy9jb21wb25lbnRzL25ndC1kYXRhdGFibGUvbmd0LXRib2R5L25ndC10Ym9keS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy10YWlsd2luZC9zcmMvY29tcG9uZW50cy9uZ3QtZGF0YXRhYmxlL25ndC10Ym9keS9uZ3QtdGJvZHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBd0IsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdoRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5REFBeUQsQ0FBQzs7O0FBTS9GLE1BQU0sT0FBTyxpQkFBaUI7SUFHMUIsWUFDWSxRQUFrQixFQUNsQixXQUF1QixFQUNILHNCQUE4QztRQUZsRSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ0gsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUUxRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVPLFlBQVk7UUFDaEIsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBQzFFLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLG9CQUFvQixFQUFFLENBQUM7UUFDL0MsQ0FBQztRQUVELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFO1lBQzFDLEtBQUssRUFBRTtnQkFDSCxFQUFFLEVBQUUsVUFBVTtnQkFDZCxJQUFJLEVBQUUsRUFBRTtnQkFDUixNQUFNLEVBQUUsRUFBRTthQUNiO1NBQ0osQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO1lBQzlELEdBQUc7WUFDSCxJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osUUFBUTtZQUNSLFVBQVU7WUFDVixZQUFZO1lBQ1osY0FBYztZQUNkLE1BQU07WUFDTixNQUFNO1NBQ1QsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0E3Q1EsaUJBQWlCO21HQUFqQixpQkFBaUIsbURDVDlCLDJCQUF5Qjs7NEZEU1osaUJBQWlCO2tCQUo3QixTQUFTOytCQUNJLGFBQWE7OzBCQVNsQixJQUFJOzswQkFBSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbmplY3RvciwgT3B0aW9uYWwsIFNlbGYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTmd0U3R5bGl6YWJsZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvbmd0LXN0eWxpemFibGUvbmd0LXN0eWxpemFibGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IE5ndFN0eWxpemFibGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbmd0LXN0eWxpemFibGUvbmd0LXN0eWxpemFibGUuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnW25ndC10Ym9keV0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9uZ3QtdGJvZHkuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIE5ndFRib2R5Q29tcG9uZW50IHtcbiAgICBwdWJsaWMgbmd0U3R5bGU6IE5ndFN0eWxpemFibGVTZXJ2aWNlO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSBob3N0RWxlbWVudDogRWxlbWVudFJlZixcbiAgICAgICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBwcml2YXRlIG5ndFN0eWxpemFibGVEaXJlY3RpdmU6IE5ndFN0eWxpemFibGVEaXJlY3RpdmUsXG4gICAgKSB7XG4gICAgICAgIHRoaXMuYmluZE5ndFN0eWxlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBiaW5kTmd0U3R5bGUoKSB7XG4gICAgICAgIGlmICh0aGlzLm5ndFN0eWxpemFibGVEaXJlY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMubmd0U3R5bGUgPSB0aGlzLm5ndFN0eWxpemFibGVEaXJlY3RpdmUuZ2V0Tmd0U3R5bGl6YWJsZVNlcnZpY2UoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubmd0U3R5bGUgPSBuZXcgTmd0U3R5bGl6YWJsZVNlcnZpY2UoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubmd0U3R5bGUubG9hZCh0aGlzLmluamVjdG9yLCAnTmd0VGJvZHknLCB7XG4gICAgICAgICAgICBjb2xvcjoge1xuICAgICAgICAgICAgICAgIGJnOiAnYmctd2hpdGUnLFxuICAgICAgICAgICAgICAgIHRleHQ6ICcnLFxuICAgICAgICAgICAgICAgIGJvcmRlcjogJydcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdCArPSB0aGlzLm5ndFN0eWxlLmNvbXBpbGUoW1xuICAgICAgICAgICAgJ2gnLFxuICAgICAgICAgICAgJ3B4JyxcbiAgICAgICAgICAgICdweScsXG4gICAgICAgICAgICAncGInLFxuICAgICAgICAgICAgJ3BsJyxcbiAgICAgICAgICAgICdwcicsXG4gICAgICAgICAgICAncHQnLFxuICAgICAgICAgICAgJ21iJyxcbiAgICAgICAgICAgICdtbCcsXG4gICAgICAgICAgICAnbXInLFxuICAgICAgICAgICAgJ210JyxcbiAgICAgICAgICAgICdib3JkZXInLFxuICAgICAgICAgICAgJ2NvbG9yLmJnJyxcbiAgICAgICAgICAgICdjb2xvci50ZXh0JyxcbiAgICAgICAgICAgICdjb2xvci5ib3JkZXInLFxuICAgICAgICAgICAgJ3RleHQnLFxuICAgICAgICAgICAgJ2ZvbnQnLFxuICAgICAgICBdKTtcbiAgICB9XG59XG4iLCI8bmctY29udGVudD48L25nLWNvbnRlbnQ+Il19
|
|
@@ -48,15 +48,15 @@ export class NgtTdComponent {
|
|
|
48
48
|
'break'
|
|
49
49
|
]);
|
|
50
50
|
}
|
|
51
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
52
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
51
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgtTdComponent, deps: [{ token: i0.Injector }, { token: i0.ElementRef }, { token: i1.NgtStylizableDirective, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
52
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NgtTdComponent, selector: "[ngt-td]", ngImport: i0, template: "<ng-content></ng-content>" }); }
|
|
53
53
|
}
|
|
54
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
54
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgtTdComponent, decorators: [{
|
|
55
55
|
type: Component,
|
|
56
56
|
args: [{ selector: '[ngt-td]', template: "<ng-content></ng-content>" }]
|
|
57
|
-
}], ctorParameters:
|
|
57
|
+
}], ctorParameters: () => [{ type: i0.Injector }, { type: i0.ElementRef }, { type: i1.NgtStylizableDirective, decorators: [{
|
|
58
58
|
type: Self
|
|
59
59
|
}, {
|
|
60
60
|
type: Optional
|
|
61
|
-
}] }]
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
}] }] });
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LXRkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRhaWx3aW5kL3NyYy9jb21wb25lbnRzL25ndC1kYXRhdGFibGUvbmd0LXRkL25ndC10ZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy10YWlsd2luZC9zcmMvY29tcG9uZW50cy9uZ3QtZGF0YXRhYmxlL25ndC10ZC9uZ3QtdGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBd0IsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdoRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5REFBeUQsQ0FBQzs7O0FBTS9GLE1BQU0sT0FBTyxjQUFjO0lBR3ZCLFlBQ1ksUUFBa0IsRUFDbEIsV0FBdUIsRUFDSCxzQkFBOEM7UUFGbEUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUNILDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFFMUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTyxZQUFZO1FBQ2hCLElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUMxRSxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1FBQy9DLENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRTtZQUN2QyxFQUFFLEVBQUUsTUFBTTtZQUNWLEVBQUUsRUFBRSxNQUFNO1lBQ1YsTUFBTSxFQUFFLFVBQVU7WUFDbEIsS0FBSyxFQUFFLGFBQWE7WUFDcEIsS0FBSyxFQUFFO2dCQUNILEVBQUUsRUFBRSxFQUFFO2dCQUNOLElBQUksRUFBRSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxFQUFFO2FBQ2I7U0FDSixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7WUFDOUQsR0FBRztZQUNILElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixRQUFRO1lBQ1IsVUFBVTtZQUNWLFlBQVk7WUFDWixjQUFjO1lBQ2QsTUFBTTtZQUNOLE1BQU07WUFDTixPQUFPO1NBQ1YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0FsRFEsY0FBYzttR0FBZCxjQUFjLGdEQ1QzQiwyQkFBeUI7OzRGRFNaLGNBQWM7a0JBSjFCLFNBQVM7K0JBQ0ksVUFBVTs7MEJBU2YsSUFBSTs7MEJBQUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0b3IsIE9wdGlvbmFsLCBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE5ndFN0eWxpemFibGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL25ndC1zdHlsaXphYmxlL25ndC1zdHlsaXphYmxlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBOZ3RTdHlsaXphYmxlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25ndC1zdHlsaXphYmxlL25ndC1zdHlsaXphYmxlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ1tuZ3QtdGRdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbmd0LXRkLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBOZ3RUZENvbXBvbmVudCB7XG4gICAgcHVibGljIG5ndFN0eWxlOiBOZ3RTdHlsaXphYmxlU2VydmljZTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgaG9zdEVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHJpdmF0ZSBuZ3RTdHlsaXphYmxlRGlyZWN0aXZlOiBOZ3RTdHlsaXphYmxlRGlyZWN0aXZlLFxuICAgICkge1xuICAgICAgICB0aGlzLmJpbmROZ3RTdHlsZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYmluZE5ndFN0eWxlKCkge1xuICAgICAgICBpZiAodGhpcy5uZ3RTdHlsaXphYmxlRGlyZWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLm5ndFN0eWxlID0gdGhpcy5uZ3RTdHlsaXphYmxlRGlyZWN0aXZlLmdldE5ndFN0eWxpemFibGVTZXJ2aWNlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm5ndFN0eWxlID0gbmV3IE5ndFN0eWxpemFibGVTZXJ2aWNlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm5ndFN0eWxlLmxvYWQodGhpcy5pbmplY3RvciwgJ05ndFRkJywge1xuICAgICAgICAgICAgcHk6ICdweS00JyxcbiAgICAgICAgICAgIHB4OiAncHgtNScsXG4gICAgICAgICAgICBib3JkZXI6ICdib3JkZXItYicsXG4gICAgICAgICAgICBicmVhazogJ2JyZWFrLXdvcmRzJyxcbiAgICAgICAgICAgIGNvbG9yOiB7XG4gICAgICAgICAgICAgICAgYmc6ICcnLFxuICAgICAgICAgICAgICAgIHRleHQ6ICcnLFxuICAgICAgICAgICAgICAgIGJvcmRlcjogJydcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdCArPSB0aGlzLm5ndFN0eWxlLmNvbXBpbGUoW1xuICAgICAgICAgICAgJ2gnLFxuICAgICAgICAgICAgJ3B4JyxcbiAgICAgICAgICAgICdweScsXG4gICAgICAgICAgICAncGInLFxuICAgICAgICAgICAgJ3BsJyxcbiAgICAgICAgICAgICdwcicsXG4gICAgICAgICAgICAncHQnLFxuICAgICAgICAgICAgJ21iJyxcbiAgICAgICAgICAgICdtbCcsXG4gICAgICAgICAgICAnbXInLFxuICAgICAgICAgICAgJ210JyxcbiAgICAgICAgICAgICdib3JkZXInLFxuICAgICAgICAgICAgJ2NvbG9yLmJnJyxcbiAgICAgICAgICAgICdjb2xvci50ZXh0JyxcbiAgICAgICAgICAgICdjb2xvci5ib3JkZXInLFxuICAgICAgICAgICAgJ3RleHQnLFxuICAgICAgICAgICAgJ2ZvbnQnLFxuICAgICAgICAgICAgJ2JyZWFrJ1xuICAgICAgICBdKTtcbiAgICB9XG59XG4iLCI8bmctY29udGVudD48L25nLWNvbnRlbnQ+Il19
|