fabrikantencore 2.2.1 → 2.2.3
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/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-filters/beheer-filters.component.mjs +3 -3
- package/esm2020/src/app/modules/fabrikantencore/components/fab-filter-fold/fab-filter-fold.component.mjs +81 -0
- package/esm2020/src/app/modules/fabrikantencore/components/fab-input/fab-input.component.mjs +6 -3
- package/esm2020/src/app/modules/fabrikantencore/components/fab-multiselect/fab-multiselect.component.mjs +4 -7
- package/esm2020/src/app/modules/fabrikantencore/components/fab-multiselect-fold/fab-multiselect-fold.component.mjs +33 -0
- package/esm2020/src/app/modules/fabrikantencore/components/fab-product-tile/fab-product-tile.component.mjs +14 -8
- package/esm2020/src/app/modules/fabrikantencore/components/fab-range-input/fab-range-input.component.mjs +10 -7
- package/esm2020/src/app/modules/fabrikantencore/components/fab-range-input-fold/fab-range-input-fold.component.mjs +33 -0
- package/esm2020/src/app/modules/fabrikantencore/fabrikantencore.module.mjs +16 -3
- package/esm2020/src/app/modules/fabrikantencore/services/fabrikanten.service.mjs +20 -7
- package/esm2020/src/app/modules/fabrikantencore/services/translate.service.mjs +18 -1
- package/esm2020/src/app/modules/fabrikantencore/swagger/SwaggerClient.mjs +23 -1
- package/fesm2015/fabrikantencore.mjs +292 -99
- package/fesm2015/fabrikantencore.mjs.map +1 -1
- package/fesm2020/fabrikantencore.mjs +292 -99
- package/fesm2020/fabrikantencore.mjs.map +1 -1
- package/package.json +1 -1
- package/src/app/modules/fabrikantencore/components/fab-filter-fold/fab-filter-fold.component.d.ts +26 -0
- package/src/app/modules/fabrikantencore/components/fab-multiselect/fab-multiselect.component.d.ts +2 -3
- package/src/app/modules/fabrikantencore/components/fab-multiselect-fold/fab-multiselect-fold.component.d.ts +18 -0
- package/src/app/modules/fabrikantencore/components/fab-range-input/fab-range-input.component.d.ts +1 -1
- package/src/app/modules/fabrikantencore/components/fab-range-input-fold/fab-range-input-fold.component.d.ts +18 -0
- package/src/app/modules/fabrikantencore/fabrikantencore.module.d.ts +30 -26
- package/src/app/modules/fabrikantencore/services/translate.service.d.ts +2 -0
- package/src/app/modules/fabrikantencore/swagger/SwaggerClient.d.ts +21 -1
|
@@ -273,9 +273,9 @@ export class BeheerFiltersComponent {
|
|
|
273
273
|
}
|
|
274
274
|
}
|
|
275
275
|
BeheerFiltersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: BeheerFiltersComponent, deps: [{ token: i1.FiltersApiClient }, { token: i2.MatDialog }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
276
|
-
BeheerFiltersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: BeheerFiltersComponent, selector: "app-beheer-filters", ngImport: i0, template: "<app-beheer-nav></app-beheer-nav>\r\n\r\n<div *ngIf=\"Loading\">\r\n <app-fab-loader></app-fab-loader>\r\n</div>\r\n\r\n<div *ngIf=\"!Loading\" class=\"main-content\">\r\n <mat-card>\r\n <mat-card-content>\r\n <button mat-raised-button (click)=\"AddCategory()\">Categorie toevoegen</button>\r\n </mat-card-content>\r\n </mat-card>\r\n <br />\r\n <div class=\"displayflex\">\r\n <div>\r\n <mat-card>\r\n <mat-card-content>\r\n <div cdkDropList class=\"input-list\" (cdkDropListDropped)=\"drop($event)\">\r\n <div class=\"input-item\" *ngFor=\"let input of InputsViewModel.inputs\" cdkDrag>\r\n <ng-container *ngIf=\"input.filter\">\r\n {{ input.filter.name }}\r\n </ng-container>\r\n <ng-container *ngIf=\"input.range\">\r\n {{ input.range.name }}\r\n </ng-container>\r\n <button (click)=\"Open(input)\">Select</button>\r\n </div>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n <div class=\"flexauto\">\r\n <mat-card>\r\n <mat-card-content>\r\n <div *ngIf=\"InputViewModel != undefined\">\r\n <ng-container *ngIf=\"InputViewModel.filter\">\r\n <div class=\"filter-name\">\r\n <div class=\"flexauto\">\r\n Name: {{ InputViewModel.filter.name }}\r\n </div>\r\n <div>\r\n <button mat-raised-button (click)=\"Sort()\">Sort</button>\r\n </div>\r\n </div>\r\n <div>\r\n <div class=\"filter-name\">\r\n <div class=\"flexauto\">\r\n Requires\r\n </div>\r\n <button mat-raised-button (click)=\"RequireFilter()\">Filter</button>\r\n <button mat-raised-button (click)=\"RequireFilterOption()\">FilterOption</button>\r\n </div>\r\n\r\n <div *ngFor=\"let option of InputViewModel.filter.requiresFilterOptions\">\r\n {{ option.requiredFilterName }}: {{ option.requiredFilterOptionName }}\r\n <button mat-raised-button (click)=\"RemoveRequireFilterOption(option)\">Remove</button>\r\n </div>\r\n </div>\r\n <div class=\"filter-options-container\">\r\n <div *ngFor=\"let option of GetFilterOptions(); let i = index;\" class=\"filter-option\">\r\n <div class=\"filter-option-name\">\r\n {{ option.name }}\r\n </div>\r\n <button mat-raised-button (click)=\"RemoveFilterOption(option)\">Remove</button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"InputViewModel.range\">\r\n <div class=\"filter-name\">\r\n <div class=\"flexauto\">\r\n Name: {{ InputViewModel.range.name }}\r\n </div>\r\n </div>\r\n <div>\r\n <div class=\"filter-name\">\r\n <div class=\"flexauto\">\r\n Requires\r\n </div>\r\n <button mat-raised-button (click)=\"RequireRangeInputFilterOption()\">FilterOption</button>\r\n </div>\r\n\r\n <div *ngFor=\"let option of InputViewModel.range.requiresRangeInputFilterOptions\">\r\n {{ option.requiredFilterName }}: {{ option.requiredFilterOptionName }}\r\n <button mat-raised-button (click)=\"RemoveRequireRangeInputFilterOption(option)\">Remove</button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n \r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n", styles: [".displayflex{display:flex;gap:10px}.filter-row{font-size:20px;line-height:30px;margin-bottom:10px}.flexauto{flex:auto}.main-content{padding:10px}.filter-name{font-size:20px;padding:10px;border-bottom:1px solid #000;display:flex}.filter-option:hover{background-color:gray}.filter-options-container{border:1px solid #000;padding:10px;margin:10px}.filter-option{padding:5px;border-bottom:1px solid #000;display:flex;gap:5px}.filter-option-name{flex:auto;line-height:30px;font-size:20px}.input-list{max-width:100%;border:solid 1px #ccc;min-height:60px;display:block;background:white;border-radius:4px;overflow-y:scroll;height:calc(100vH - 188px)}.input-item{padding:20px 10px;border-bottom:solid 1px #ccc;color:#000000de;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;cursor:move;background:white;font-size:14px}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.input-item:last-child{border:none}.input-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\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: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i5.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: i7.BeheerNavComponent, selector: "app-beheer-nav" }, { kind: "component", type: i8.FabLoaderComponent, selector: "app-fab-loader" }] });
|
|
276
|
+
BeheerFiltersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: BeheerFiltersComponent, selector: "app-beheer-filters", ngImport: i0, template: "<app-beheer-nav></app-beheer-nav>\r\n\r\n<div *ngIf=\"Loading\">\r\n <app-fab-loader></app-fab-loader>\r\n</div>\r\n\r\n<div *ngIf=\"!Loading\" class=\"main-content\">\r\n <mat-card>\r\n <mat-card-content>\r\n <button mat-raised-button (click)=\"AddCategory()\">Categorie toevoegen</button>\r\n </mat-card-content>\r\n </mat-card>\r\n <br />\r\n <div class=\"displayflex\">\r\n <div>\r\n <mat-card>\r\n <mat-card-content>\r\n <div cdkDropList class=\"input-list\" (cdkDropListDropped)=\"drop($event)\">\r\n <div class=\"input-item\" *ngFor=\"let input of InputsViewModel.inputs\" cdkDrag>\r\n <ng-container *ngIf=\"input.filter\">\r\n {{ input.filter.name }}\r\n </ng-container>\r\n <ng-container *ngIf=\"input.range\">\r\n {{ input.range.name }}\r\n </ng-container>\r\n <button (click)=\"Open(input)\">Select</button>\r\n </div>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n <div class=\"flexauto\">\r\n <mat-card>\r\n <mat-card-content>\r\n <div *ngIf=\"InputViewModel != undefined\">\r\n <ng-container *ngIf=\"InputViewModel.filter\">\r\n <div class=\"filter-name\">\r\n <div class=\"flexauto\">\r\n Name: {{ InputViewModel.filter.name }}\r\n </div>\r\n <div>\r\n <button mat-raised-button (click)=\"Sort()\">Sort</button>\r\n </div>\r\n </div>\r\n <div>\r\n <div class=\"filter-name\">\r\n <div class=\"flexauto\">\r\n Requires\r\n </div>\r\n <button mat-raised-button (click)=\"RequireFilter()\">Filter</button>\r\n <button mat-raised-button (click)=\"RequireFilterOption()\">FilterOption</button>\r\n </div>\r\n\r\n <div *ngFor=\"let option of InputViewModel.filter.requiresFilterOptions\" class=\"required-option\" [ngClass]=\"{ 'AND': option.filterOptionRequiredType == 0, 'OR': option.filterOptionRequiredType == 1 }\">\r\n {{ option.requiredFilterName }}: {{ option.requiredFilterOptionName }}\r\n <button mat-raised-button (click)=\"RemoveRequireFilterOption(option)\">Remove</button>\r\n </div>\r\n </div>\r\n <div class=\"filter-options-container\">\r\n <div *ngFor=\"let option of GetFilterOptions(); let i = index;\" class=\"filter-option\">\r\n <div class=\"filter-option-name\">\r\n {{ option.name }}\r\n </div>\r\n <button mat-raised-button (click)=\"RemoveFilterOption(option)\">Remove</button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"InputViewModel.range\">\r\n <div class=\"filter-name\">\r\n <div class=\"flexauto\">\r\n Name: {{ InputViewModel.range.name }}\r\n </div>\r\n </div>\r\n <div>\r\n <div class=\"filter-name\">\r\n <div class=\"flexauto\">\r\n Requires\r\n </div>\r\n <button mat-raised-button (click)=\"RequireRangeInputFilterOption()\">FilterOption</button>\r\n </div>\r\n\r\n <div *ngFor=\"let option of InputViewModel.range.requiresRangeInputFilterOptions\" class=\"required-option\" [ngClass]=\"{ 'AND': option.filterOptionRequiredType == 0, 'OR': option.filterOptionRequiredType == 1 }\">\r\n {{ option.requiredFilterName }}: {{ option.requiredFilterOptionName }}\r\n <button mat-raised-button (click)=\"RemoveRequireRangeInputFilterOption(option)\">Remove</button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n \r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n", styles: [".displayflex{display:flex;gap:10px}.required-option{border:1px solid #000;border-radius:2px;padding:2px;margin:2px}.AND{border-color:red}.OR{border-color:#0f0}.filter-row{font-size:20px;line-height:30px;margin-bottom:10px}.flexauto{flex:auto}.main-content{padding:10px}.filter-name{font-size:20px;padding:10px;border-bottom:1px solid #000;display:flex}.filter-option:hover{background-color:gray}.filter-options-container{border:1px solid #000;padding:10px;margin:10px}.filter-option{padding:5px;border-bottom:1px solid #000;display:flex;gap:5px}.filter-option-name{flex:auto;line-height:30px;font-size:20px}.input-list{max-width:100%;border:solid 1px #ccc;min-height:60px;display:block;background:white;border-radius:4px;overflow-y:scroll;height:calc(100vH - 188px)}.input-item{padding:20px 10px;border-bottom:solid 1px #ccc;color:#000000de;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;cursor:move;background:white;font-size:14px}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.input-item:last-child{border:none}.input-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i5.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: i7.BeheerNavComponent, selector: "app-beheer-nav" }, { kind: "component", type: i8.FabLoaderComponent, selector: "app-fab-loader" }] });
|
|
277
277
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: BeheerFiltersComponent, decorators: [{
|
|
278
278
|
type: Component,
|
|
279
|
-
args: [{ selector: 'app-beheer-filters', template: "<app-beheer-nav></app-beheer-nav>\r\n\r\n<div *ngIf=\"Loading\">\r\n <app-fab-loader></app-fab-loader>\r\n</div>\r\n\r\n<div *ngIf=\"!Loading\" class=\"main-content\">\r\n <mat-card>\r\n <mat-card-content>\r\n <button mat-raised-button (click)=\"AddCategory()\">Categorie toevoegen</button>\r\n </mat-card-content>\r\n </mat-card>\r\n <br />\r\n <div class=\"displayflex\">\r\n <div>\r\n <mat-card>\r\n <mat-card-content>\r\n <div cdkDropList class=\"input-list\" (cdkDropListDropped)=\"drop($event)\">\r\n <div class=\"input-item\" *ngFor=\"let input of InputsViewModel.inputs\" cdkDrag>\r\n <ng-container *ngIf=\"input.filter\">\r\n {{ input.filter.name }}\r\n </ng-container>\r\n <ng-container *ngIf=\"input.range\">\r\n {{ input.range.name }}\r\n </ng-container>\r\n <button (click)=\"Open(input)\">Select</button>\r\n </div>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n <div class=\"flexauto\">\r\n <mat-card>\r\n <mat-card-content>\r\n <div *ngIf=\"InputViewModel != undefined\">\r\n <ng-container *ngIf=\"InputViewModel.filter\">\r\n <div class=\"filter-name\">\r\n <div class=\"flexauto\">\r\n Name: {{ InputViewModel.filter.name }}\r\n </div>\r\n <div>\r\n <button mat-raised-button (click)=\"Sort()\">Sort</button>\r\n </div>\r\n </div>\r\n <div>\r\n <div class=\"filter-name\">\r\n <div class=\"flexauto\">\r\n Requires\r\n </div>\r\n <button mat-raised-button (click)=\"RequireFilter()\">Filter</button>\r\n <button mat-raised-button (click)=\"RequireFilterOption()\">FilterOption</button>\r\n </div>\r\n\r\n <div *ngFor=\"let option of InputViewModel.filter.requiresFilterOptions\">\r\n {{ option.requiredFilterName }}: {{ option.requiredFilterOptionName }}\r\n <button mat-raised-button (click)=\"RemoveRequireFilterOption(option)\">Remove</button>\r\n </div>\r\n </div>\r\n <div class=\"filter-options-container\">\r\n <div *ngFor=\"let option of GetFilterOptions(); let i = index;\" class=\"filter-option\">\r\n <div class=\"filter-option-name\">\r\n {{ option.name }}\r\n </div>\r\n <button mat-raised-button (click)=\"RemoveFilterOption(option)\">Remove</button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"InputViewModel.range\">\r\n <div class=\"filter-name\">\r\n <div class=\"flexauto\">\r\n Name: {{ InputViewModel.range.name }}\r\n </div>\r\n </div>\r\n <div>\r\n <div class=\"filter-name\">\r\n <div class=\"flexauto\">\r\n Requires\r\n </div>\r\n <button mat-raised-button (click)=\"RequireRangeInputFilterOption()\">FilterOption</button>\r\n </div>\r\n\r\n <div *ngFor=\"let option of InputViewModel.range.requiresRangeInputFilterOptions\">\r\n {{ option.requiredFilterName }}: {{ option.requiredFilterOptionName }}\r\n <button mat-raised-button (click)=\"RemoveRequireRangeInputFilterOption(option)\">Remove</button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n \r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n", styles: [".displayflex{display:flex;gap:10px}.filter-row{font-size:20px;line-height:30px;margin-bottom:10px}.flexauto{flex:auto}.main-content{padding:10px}.filter-name{font-size:20px;padding:10px;border-bottom:1px solid #000;display:flex}.filter-option:hover{background-color:gray}.filter-options-container{border:1px solid #000;padding:10px;margin:10px}.filter-option{padding:5px;border-bottom:1px solid #000;display:flex;gap:5px}.filter-option-name{flex:auto;line-height:30px;font-size:20px}.input-list{max-width:100%;border:solid 1px #ccc;min-height:60px;display:block;background:white;border-radius:4px;overflow-y:scroll;height:calc(100vH - 188px)}.input-item{padding:20px 10px;border-bottom:solid 1px #ccc;color:#000000de;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;cursor:move;background:white;font-size:14px}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.input-item:last-child{border:none}.input-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"] }]
|
|
279
|
+
args: [{ selector: 'app-beheer-filters', template: "<app-beheer-nav></app-beheer-nav>\r\n\r\n<div *ngIf=\"Loading\">\r\n <app-fab-loader></app-fab-loader>\r\n</div>\r\n\r\n<div *ngIf=\"!Loading\" class=\"main-content\">\r\n <mat-card>\r\n <mat-card-content>\r\n <button mat-raised-button (click)=\"AddCategory()\">Categorie toevoegen</button>\r\n </mat-card-content>\r\n </mat-card>\r\n <br />\r\n <div class=\"displayflex\">\r\n <div>\r\n <mat-card>\r\n <mat-card-content>\r\n <div cdkDropList class=\"input-list\" (cdkDropListDropped)=\"drop($event)\">\r\n <div class=\"input-item\" *ngFor=\"let input of InputsViewModel.inputs\" cdkDrag>\r\n <ng-container *ngIf=\"input.filter\">\r\n {{ input.filter.name }}\r\n </ng-container>\r\n <ng-container *ngIf=\"input.range\">\r\n {{ input.range.name }}\r\n </ng-container>\r\n <button (click)=\"Open(input)\">Select</button>\r\n </div>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n <div class=\"flexauto\">\r\n <mat-card>\r\n <mat-card-content>\r\n <div *ngIf=\"InputViewModel != undefined\">\r\n <ng-container *ngIf=\"InputViewModel.filter\">\r\n <div class=\"filter-name\">\r\n <div class=\"flexauto\">\r\n Name: {{ InputViewModel.filter.name }}\r\n </div>\r\n <div>\r\n <button mat-raised-button (click)=\"Sort()\">Sort</button>\r\n </div>\r\n </div>\r\n <div>\r\n <div class=\"filter-name\">\r\n <div class=\"flexauto\">\r\n Requires\r\n </div>\r\n <button mat-raised-button (click)=\"RequireFilter()\">Filter</button>\r\n <button mat-raised-button (click)=\"RequireFilterOption()\">FilterOption</button>\r\n </div>\r\n\r\n <div *ngFor=\"let option of InputViewModel.filter.requiresFilterOptions\" class=\"required-option\" [ngClass]=\"{ 'AND': option.filterOptionRequiredType == 0, 'OR': option.filterOptionRequiredType == 1 }\">\r\n {{ option.requiredFilterName }}: {{ option.requiredFilterOptionName }}\r\n <button mat-raised-button (click)=\"RemoveRequireFilterOption(option)\">Remove</button>\r\n </div>\r\n </div>\r\n <div class=\"filter-options-container\">\r\n <div *ngFor=\"let option of GetFilterOptions(); let i = index;\" class=\"filter-option\">\r\n <div class=\"filter-option-name\">\r\n {{ option.name }}\r\n </div>\r\n <button mat-raised-button (click)=\"RemoveFilterOption(option)\">Remove</button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"InputViewModel.range\">\r\n <div class=\"filter-name\">\r\n <div class=\"flexauto\">\r\n Name: {{ InputViewModel.range.name }}\r\n </div>\r\n </div>\r\n <div>\r\n <div class=\"filter-name\">\r\n <div class=\"flexauto\">\r\n Requires\r\n </div>\r\n <button mat-raised-button (click)=\"RequireRangeInputFilterOption()\">FilterOption</button>\r\n </div>\r\n\r\n <div *ngFor=\"let option of InputViewModel.range.requiresRangeInputFilterOptions\" class=\"required-option\" [ngClass]=\"{ 'AND': option.filterOptionRequiredType == 0, 'OR': option.filterOptionRequiredType == 1 }\">\r\n {{ option.requiredFilterName }}: {{ option.requiredFilterOptionName }}\r\n <button mat-raised-button (click)=\"RemoveRequireRangeInputFilterOption(option)\">Remove</button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n \r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n", styles: [".displayflex{display:flex;gap:10px}.required-option{border:1px solid #000;border-radius:2px;padding:2px;margin:2px}.AND{border-color:red}.OR{border-color:#0f0}.filter-row{font-size:20px;line-height:30px;margin-bottom:10px}.flexauto{flex:auto}.main-content{padding:10px}.filter-name{font-size:20px;padding:10px;border-bottom:1px solid #000;display:flex}.filter-option:hover{background-color:gray}.filter-options-container{border:1px solid #000;padding:10px;margin:10px}.filter-option{padding:5px;border-bottom:1px solid #000;display:flex;gap:5px}.filter-option-name{flex:auto;line-height:30px;font-size:20px}.input-list{max-width:100%;border:solid 1px #ccc;min-height:60px;display:block;background:white;border-radius:4px;overflow-y:scroll;height:calc(100vH - 188px)}.input-item{padding:20px 10px;border-bottom:solid 1px #ccc;color:#000000de;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;cursor:move;background:white;font-size:14px}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.input-item:last-child{border:none}.input-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"] }]
|
|
280
280
|
}], ctorParameters: function () { return [{ type: i1.FiltersApiClient }, { type: i2.MatDialog }, { type: i0.ChangeDetectorRef }]; } });
|
|
281
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLWZpbHRlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9iZWhlZXIvY29tcG9uZW50cy9iZWhlZXItZmlsdGVycy9iZWhlZXItZmlsdGVycy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1maWx0ZXJzL2JlaGVlci1maWx0ZXJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBNkgsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQXlCLHdCQUF3QixFQUFFLDhCQUE4QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeFMsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXRFLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQ3pILE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxNQUFNLGtGQUFrRixDQUFDOzs7Ozs7Ozs7O0FBTzNJLE1BQU0sT0FBTyxzQkFBc0I7SUFRakMsWUFBb0IsZ0JBQWtDLEVBQzdDLE1BQWlCLEVBQ2hCLGlCQUFvQztRQUYxQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQzdDLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDaEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQVJ2QyxZQUFPLEdBQVksSUFBSSxDQUFDO1FBSXhCLG1CQUFjLEdBQStCLFNBQVMsQ0FBQztJQUlaLENBQUM7SUFFbkQsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBSSxDQUFD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QU8sR0FBRyxJQUFJLENBQUM7WUFFcEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDM0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQzthQUM3QztZQUVELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDN0UsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLENBQUMsRUFBRSxDQUFDLEtBQWUsRUFBRSxFQUFFO2dCQUNyQixJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRztvQkFDckIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztxQkFDdkI7b0JBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO29CQUMzQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUNwQjtnQkFFRCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUN2QixDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7bUhBelVVLHNCQUFzQjt1R0FBdEIsc0JBQXNCLDBEQ1puQyx5eUhBZ0dBOzJGRHBGYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0Usb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWx0ZXJzQXBpQ2xpZW50LCBJbnB1dHNWaWV3TW9kZWwsIEZpbHRlck9wdGlvblJlcXVpcmVkVmlld01vZGVsLCBSYW5nZUlucHV0RmlsdGVyT3B0aW9uUmVxdWlyZWRWaWV3TW9kZWwsIElucHV0Vmlld01vZGVsLCBNb3ZlRmlsdGVyUmVxdWVzdCwgTW92ZUZpbHRlck9wdGlvblJlcXVlc3QsIEZpbHRlck9wdGlvblZpZXdNb2RlbCwgU2V0RmlsdGVyUmVxdWlyZWRSZXF1ZXN0LCBTZXRGaWx0ZXJPcHRpb25SZXF1aXJlZFJlcXVlc3QgfSBmcm9tICcuLi8uLi8uLi9zd2FnZ2VyL1N3YWdnZXJDbGllbnQnO1xyXG5pbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IEJlaGVlclNlbGVjdEZpbHRlckRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2JlaGVlci1zZWxlY3QtZmlsdGVyLWRpYWxvZy9iZWhlZXItc2VsZWN0LWZpbHRlci1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmVoZWVyU2VsZWN0RmlsdGVyb3B0aW9uRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vYmVoZWVyLXNlbGVjdC1maWx0ZXJvcHRpb24tZGlhbG9nL2JlaGVlci1zZWxlY3QtZmlsdGVyb3B0aW9uLWRpYWxvZy5jb21wb25lbnQnO1xyXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1iZWhlZXItZmlsdGVycycsXG4gIHRlbXBsYXRlVXJsOiAnLi9iZWhlZXItZmlsdGVycy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2JlaGVlci1maWx0ZXJzLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQmVoZWVyRmlsdGVyc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcHVibGljIExvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIHB1YmxpYyBJbnB1dHNWaWV3TW9kZWw6IElucHV0c1ZpZXdNb2RlbDtcblxuICBwdWJsaWMgSW5wdXRWaWV3TW9kZWw6IElucHV0Vmlld01vZGVsIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgRmlsdGVyc0FwaUNsaWVudDogRmlsdGVyc0FwaUNsaWVudCxcbiAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIENoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5Mb2FkSW5wdXRzKCk7XG4gIH1cblxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxzdHJpbmdbXT4pIHtcclxuICAgIGlmICh0aGlzLklucHV0c1ZpZXdNb2RlbC5pbnB1dHMgIT0gbnVsbCkge1xyXG4gICAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5JbnB1dHNWaWV3TW9kZWwuaW5wdXRzLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xyXG5cclxuICAgICAgdGhpcy5TYXZlSW5wdXRzKCk7XHJcbiAgICB9XHJcbiAgfVxuXG4gIHB1YmxpYyBHZXRGaWx0ZXJPcHRpb25zKCk6IEZpbHRlck9wdGlvblZpZXdNb2RlbFtdIHtcbiAgICBpZiAodGhpcy5JbnB1dFZpZXdNb2RlbD8uZmlsdGVyPy5maWx0ZXJPcHRpb25WaWV3TW9kZWxzICE9IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHRoaXMuSW5wdXRWaWV3TW9kZWwuZmlsdGVyLmZpbHRlck9wdGlvblZpZXdNb2RlbHM7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcmV0dXJuIG5ldyBBcnJheTxGaWx0ZXJPcHRpb25WaWV3TW9kZWw+KCk7XHJcbiAgICB9XHJcbiAgfVxuXG4gIHB1YmxpYyBNb3ZlVXBPcHRpb24ob3B0aW9uOiBGaWx0ZXJPcHRpb25WaWV3TW9kZWwpIHtcbiAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgdmFyIHJlcXVlc3QgPSBuZXcgTW92ZUZpbHRlck9wdGlvblJlcXVlc3QoKTtcblxuICAgIHJlcXVlc3QuZmlsdGVyT3B0aW9uSWQgPSBvcHRpb24uaWQ7XG4gICAgcmVxdWVzdC51cCA9IHRydWU7XG5cbiAgICB0aGlzLkZpbHRlcnNBcGlDbGllbnQubW92ZUZpbHRlck9wdGlvbihyZXF1ZXN0KS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5Mb2FkSW5wdXRzKCk7XG4gICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yLmpzb24oKSk7XG4gICAgICBlbHNlIHtcbiAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xuICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuTG9hZGluZyA9IGZhbHNlO1xuICAgIH0pO1xyXG4gIH1cblxuICBwdWJsaWMgTW92ZURvd25PcHRpb24ob3B0aW9uOiBGaWx0ZXJPcHRpb25WaWV3TW9kZWwpIHtcbiAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgdmFyIHJlcXVlc3QgPSBuZXcgTW92ZUZpbHRlck9wdGlvblJlcXVlc3QoKTtcblxuICAgIHJlcXVlc3QuZmlsdGVyT3B0aW9uSWQgPSBvcHRpb24uaWQ7XG4gICAgcmVxdWVzdC51cCA9IGZhbHNlO1xuXG4gICAgdGhpcy5GaWx0ZXJzQXBpQ2xpZW50Lm1vdmVGaWx0ZXJPcHRpb24ocmVxdWVzdCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuTG9hZElucHV0cygpO1xuICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcbiAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gNDAwKVxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvci5qc29uKCkpO1xuICAgICAgZWxzZSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLkxvYWRpbmcgPSBmYWxzZTtcbiAgICB9KTtcclxuICB9XG5cbiAgcHVibGljIE9wZW4oaW5wdXQ6IElucHV0Vmlld01vZGVsKSB7XG4gICAgdGhpcy5JbnB1dFZpZXdNb2RlbCA9IGlucHV0O1xyXG4gIH1cblxuICBwdWJsaWMgQWRkQ2F0ZWdvcnkoKTogdm9pZCB7XG5cclxuICB9XG5cbiAgcHVibGljIFNvcnQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuSW5wdXRWaWV3TW9kZWw/LmZpbHRlciAhPSBudWxsKSB7XG4gICAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgICB2YXIgcmVxdWVzdCA9IG5ldyBNb3ZlRmlsdGVyUmVxdWVzdCgpO1xuXG4gICAgICByZXF1ZXN0LmZpbHRlcklkID0gdGhpcy5JbnB1dFZpZXdNb2RlbC5maWx0ZXIuaWQ7XG5cbiAgICAgIHRoaXMuRmlsdGVyc0FwaUNsaWVudC5zb3J0RmlsdGVyKHJlcXVlc3QpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuTG9hZElucHV0cygpO1xuICAgICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09IDQwMClcbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvci5qc29uKCkpO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmxvZygnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XG4gICAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XG5cbiAgcHVibGljIFJlcXVpcmVGaWx0ZXIoKTogdm9pZCB7XG4gICAgdmFyIGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQmVoZWVyU2VsZWN0RmlsdGVyRGlhbG9nQ29tcG9uZW50KTtcclxuXHJcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHQ/LmZpbHRlciAhPSBudWxsICYmIHRoaXMuSW5wdXRWaWV3TW9kZWw/LmZpbHRlciAhPSBudWxsKSB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC5maWx0ZXIgPiAwKSB7XHJcbiAgICAgICAgICBpZiAoY29uZmlybShcIldlZXQgamUgaGV0IHpla2VyP1wiKSkge1xyXG5cclxuICAgICAgICAgICAgdGhpcy5DaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBTZXRGaWx0ZXJSZXF1aXJlZFJlcXVlc3QoKTtcclxuXHJcbiAgICAgICAgICAgIHJlcXVlc3QuZmlsdGVyQWZmZWN0c0lkID0gdGhpcy5JbnB1dFZpZXdNb2RlbD8uZmlsdGVyLmlkO1xyXG4gICAgICAgICAgICByZXF1ZXN0LmZpbHRlclJlcXVpcmVkSWQgPSByZXN1bHQuZmlsdGVyO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5GaWx0ZXJzQXBpQ2xpZW50LnNldEZpbHRlclJlcXVpcmVkKHJlcXVlc3QpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuTG9hZElucHV0cygpO1xuICAgICAgICAgICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09IDQwMClcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvci5qc29uKCkpO1xuICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cblxuICBwdWJsaWMgUmVxdWlyZUZpbHRlck9wdGlvbigpOiB2b2lkIHtcbiAgICB2YXIgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihCZWhlZXJTZWxlY3RGaWx0ZXJvcHRpb25EaWFsb2dDb21wb25lbnQpO1xyXG5cclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlc3VsdD8uZmlsdGVyb3B0aW9uICE9IG51bGwgJiYgdGhpcy5JbnB1dFZpZXdNb2RlbD8uZmlsdGVyKSB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC5maWx0ZXJvcHRpb24gPiAwKSB7XHJcbiAgICAgICAgICBpZiAoY29uZmlybShcIldlZXQgamUgaGV0IHpla2VyP1wiKSkge1xyXG5cclxuICAgICAgICAgICAgdGhpcy5DaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLkNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICAgICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFNldEZpbHRlck9wdGlvblJlcXVpcmVkUmVxdWVzdCgpO1xyXG5cclxuICAgICAgICAgICAgcmVxdWVzdC5maWx0ZXJJZCA9IHRoaXMuSW5wdXRWaWV3TW9kZWwuZmlsdGVyLmlkO1xyXG4gICAgICAgICAgICByZXF1ZXN0LnJhbmdlSW5wdXRJZCA9IDA7XHJcbiAgICAgICAgICAgIHJlcXVlc3QuZmlsdGVyT3B0aW9uSWQgPSByZXN1bHQuZmlsdGVyb3B0aW9uO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5GaWx0ZXJzQXBpQ2xpZW50LnNldEZpbHRlck9wdGlvblJlcXVpcmVkKHJlcXVlc3QpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuTG9hZElucHV0cygpO1xuICAgICAgICAgICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09IDQwMClcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvci5qc29uKCkpO1xuICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cblxuICBwdWJsaWMgUmVtb3ZlUmVxdWlyZUZpbHRlck9wdGlvbihyZXF1aXJlOiBGaWx0ZXJPcHRpb25SZXF1aXJlZFZpZXdNb2RlbCk6IHZvaWQge1xuICAgIGlmIChjb25maXJtKFwiV2VldCBqZSBoZXQgemVrZXI/XCIpKSB7XHJcblxyXG4gICAgICB0aGlzLkNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFNldEZpbHRlck9wdGlvblJlcXVpcmVkUmVxdWVzdCgpO1xyXG5cclxuICAgICAgcmVxdWVzdC5maWx0ZXJJZCA9IHJlcXVpcmUuYWZmZWN0ZWRGaWx0ZXJJZDtcclxuICAgICAgcmVxdWVzdC5yYW5nZUlucHV0SWQgPSAwO1xyXG4gICAgICByZXF1ZXN0LmZpbHRlck9wdGlvbklkID0gcmVxdWlyZS5yZXF1aXJlZEZpbHRlck9wdGlvbklkO1xyXG5cclxuICAgICAgdGhpcy5GaWx0ZXJzQXBpQ2xpZW50LnJlbW92ZUZpbHRlck9wdGlvblJlcXVpcmVkKHJlcXVlc3QpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuTG9hZElucHV0cygpO1xuICAgICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09IDQwMClcbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvci5qc29uKCkpO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmxvZygnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XG4gICAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XG5cbiAgcHVibGljIFJlcXVpcmVSYW5nZUlucHV0RmlsdGVyT3B0aW9uKCk6IHZvaWQge1xuICAgIHZhciBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEJlaGVlclNlbGVjdEZpbHRlcm9wdGlvbkRpYWxvZ0NvbXBvbmVudCk7XHJcblxyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzdWx0Py5maWx0ZXJvcHRpb24gIT0gbnVsbCAmJiB0aGlzLklucHV0Vmlld01vZGVsPy5yYW5nZSkge1xyXG4gICAgICAgIGlmIChyZXN1bHQuZmlsdGVyb3B0aW9uID4gMCkge1xyXG4gICAgICAgICAgaWYgKGNvbmZpcm0oXCJXZWV0IGplIGhldCB6ZWtlcj9cIikpIHtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgICAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgU2V0RmlsdGVyT3B0aW9uUmVxdWlyZWRSZXF1ZXN0KCk7XHJcblxyXG4gICAgICAgICAgICByZXF1ZXN0LmZpbHRlcklkID0gMDtcclxuICAgICAgICAgICAgcmVxdWVzdC5yYW5nZUlucHV0SWQgPSB0aGlzLklucHV0Vmlld01vZGVsLnJhbmdlLmlkO1xyXG4gICAgICAgICAgICByZXF1ZXN0LmZpbHRlck9wdGlvbklkID0gcmVzdWx0LmZpbHRlcm9wdGlvbjtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuRmlsdGVyc0FwaUNsaWVudC5zZXRGaWx0ZXJPcHRpb25SZXF1aXJlZChyZXF1ZXN0KS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLkxvYWRJbnB1dHMoKTtcbiAgICAgICAgICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcbiAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHRoaXMuTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XG5cbiAgcHVibGljIFJlbW92ZVJlcXVpcmVSYW5nZUlucHV0RmlsdGVyT3B0aW9uKHJlcXVpcmU6IFJhbmdlSW5wdXRGaWx0ZXJPcHRpb25SZXF1aXJlZFZpZXdNb2RlbCk6IHZvaWQge1xuICAgIGlmIChjb25maXJtKFwiV2VldCBqZSBoZXQgemVrZXI/XCIpKSB7XHJcblxyXG4gICAgICB0aGlzLkNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFNldEZpbHRlck9wdGlvblJlcXVpcmVkUmVxdWVzdCgpO1xyXG5cclxuICAgICAgcmVxdWVzdC5maWx0ZXJJZCA9IDA7XHJcbiAgICAgIHJlcXVlc3QucmFuZ2VJbnB1dElkID0gcmVxdWlyZS5hZmZlY3RlZFJhbmdlSW5wdXRJZDtcclxuICAgICAgcmVxdWVzdC5maWx0ZXJPcHRpb25JZCA9IHJlcXVpcmUucmVxdWlyZWRGaWx0ZXJPcHRpb25JZDtcclxuXHJcbiAgICAgIHRoaXMuRmlsdGVyc0FwaUNsaWVudC5yZW1vdmVGaWx0ZXJPcHRpb25SZXF1aXJlZChyZXF1ZXN0KS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLkxvYWRJbnB1dHMoKTtcbiAgICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xuICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuTG9hZGluZyA9IGZhbHNlO1xuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxuXG4gIHB1YmxpYyBSZW1vdmVGaWx0ZXJPcHRpb24ob3B0aW9uOiBGaWx0ZXJPcHRpb25WaWV3TW9kZWwpOiB2b2lkIHtcbiAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgdGhpcy5GaWx0ZXJzQXBpQ2xpZW50LnJlbW92ZUZpbHRlck9wdGlvbihvcHRpb24pLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLkxvYWRJbnB1dHMoKTtcbiAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XG4gICAgICBpZiAoZXJyb3Iuc3RhdHVzID09IDQwMClcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcbiAgICAgIGVsc2Uge1xuICAgICAgICBjb25zb2xlLmxvZygnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XG4gICAgfSk7XHJcbiAgfVxuXG4gIHByaXZhdGUgTG9hZElucHV0cygpOiB2b2lkIHtcbiAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgdGhpcy5GaWx0ZXJzQXBpQ2xpZW50LmdldElucHV0c1ZpZXdNb2RlbCgpLnN1YnNjcmliZSgobW9kZWw6IElucHV0c1ZpZXdNb2RlbCkgPT4ge1xuICAgICAgdGhpcy5JbnB1dHNWaWV3TW9kZWwgPSBtb2RlbDtcblxuICAgICAgaWYgKHRoaXMuSW5wdXRWaWV3TW9kZWwgIT0gbnVsbCAmJiB0aGlzLklucHV0c1ZpZXdNb2RlbC5pbnB1dHMgIT0gbnVsbCkge1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuSW5wdXRzVmlld01vZGVsLmlucHV0cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgaWYgKCh0aGlzLklucHV0Vmlld01vZGVsLmZpbHRlcj8uaWQgPT0gdGhpcy5JbnB1dHNWaWV3TW9kZWwuaW5wdXRzW2ldLmZpbHRlcj8uaWQpICYmXHJcbiAgICAgICAgICAgICh0aGlzLklucHV0Vmlld01vZGVsLnJhbmdlPy5pZCA9PSB0aGlzLklucHV0c1ZpZXdNb2RlbC5pbnB1dHNbaV0ucmFuZ2U/LmlkKSkge1xyXG4gICAgICAgICAgICB0aGlzLklucHV0Vmlld01vZGVsID0gdGhpcy5JbnB1dHNWaWV3TW9kZWwuaW5wdXRzW2ldO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxuXG4gICAgICB0aGlzLkxvYWRpbmcgPSBmYWxzZTtcbiAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XG4gICAgICBpZiAoZXJyb3Iuc3RhdHVzID09IDQwMClcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcbiAgICAgIGVsc2Uge1xuICAgICAgICBjb25zb2xlLmxvZygnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIFNhdmVJbnB1dHMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuSW5wdXRzVmlld01vZGVsLmlucHV0cyAhPSBudWxsKSB7XG4gICAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuSW5wdXRzVmlld01vZGVsLmlucHV0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICB0aGlzLklucHV0c1ZpZXdNb2RlbC5pbnB1dHNbaV0ucG9zaXRpb24gPSBpO1xyXG4gICAgICB9XG5cbiAgICAgIHRoaXMuRmlsdGVyc0FwaUNsaWVudC5zYXZlSW5wdXRzVmlld01vZGVsKHRoaXMuSW5wdXRzVmlld01vZGVsKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLkxvYWRJbnB1dHMoKTtcbiAgICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xuICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuTG9hZGluZyA9IGZhbHNlO1xuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxufVxuIiwiPGFwcC1iZWhlZXItbmF2PjwvYXBwLWJlaGVlci1uYXY+XHJcblxyXG48ZGl2ICpuZ0lmPVwiTG9hZGluZ1wiPlxyXG4gIDxhcHAtZmFiLWxvYWRlcj48L2FwcC1mYWItbG9hZGVyPlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgKm5nSWY9XCIhTG9hZGluZ1wiIGNsYXNzPVwibWFpbi1jb250ZW50XCI+XHJcbiAgPG1hdC1jYXJkPlxyXG4gICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIkFkZENhdGVnb3J5KClcIj5DYXRlZ29yaWUgdG9ldm9lZ2VuPC9idXR0b24+XHJcbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgPC9tYXQtY2FyZD5cclxuICA8YnIgLz5cclxuICA8ZGl2IGNsYXNzPVwiZGlzcGxheWZsZXhcIj5cclxuICAgIDxkaXY+XHJcbiAgICAgIDxtYXQtY2FyZD5cclxuICAgICAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICAgIDxkaXYgY2RrRHJvcExpc3QgY2xhc3M9XCJpbnB1dC1saXN0XCIgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWl0ZW1cIiAqbmdGb3I9XCJsZXQgaW5wdXQgb2YgSW5wdXRzVmlld01vZGVsLmlucHV0c1wiIGNka0RyYWc+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlucHV0LmZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgaW5wdXQuZmlsdGVyLm5hbWUgfX1cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaW5wdXQucmFuZ2VcIj5cclxuICAgICAgICAgICAgICAgIHt7IGlucHV0LnJhbmdlLm5hbWUgfX1cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJPcGVuKGlucHV0KVwiPlNlbGVjdDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cclxuICAgICAgPC9tYXQtY2FyZD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXhhdXRvXCI+XHJcbiAgICAgIDxtYXQtY2FyZD5cclxuICAgICAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICAgPGRpdiAqbmdJZj1cIklucHV0Vmlld01vZGVsICE9IHVuZGVmaW5lZFwiPlxyXG4gICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJJbnB1dFZpZXdNb2RlbC5maWx0ZXJcIj5cclxuICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItbmFtZVwiPlxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleGF1dG9cIj5cclxuICAgICAgICAgICAgICAgICBOYW1lOiB7eyBJbnB1dFZpZXdNb2RlbC5maWx0ZXIubmFtZSB9fVxyXG4gICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJTb3J0KClcIj5Tb3J0PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLW5hbWVcIj5cclxuICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleGF1dG9cIj5cclxuICAgICAgICAgICAgICAgICAgIFJlcXVpcmVzXHJcbiAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiUmVxdWlyZUZpbHRlcigpXCI+RmlsdGVyPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiUmVxdWlyZUZpbHRlck9wdGlvbigpXCI+RmlsdGVyT3B0aW9uPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIElucHV0Vmlld01vZGVsLmZpbHRlci5yZXF1aXJlc0ZpbHRlck9wdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgICB7eyBvcHRpb24ucmVxdWlyZWRGaWx0ZXJOYW1lIH19OiB7eyBvcHRpb24ucmVxdWlyZWRGaWx0ZXJPcHRpb25OYW1lIH19XHJcbiAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiUmVtb3ZlUmVxdWlyZUZpbHRlck9wdGlvbihvcHRpb24pXCI+UmVtb3ZlPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLW9wdGlvbnMtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBHZXRGaWx0ZXJPcHRpb25zKCk7IGxldCBpID0gaW5kZXg7XCIgY2xhc3M9XCJmaWx0ZXItb3B0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1vcHRpb24tbmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAge3sgb3B0aW9uLm5hbWUgfX1cclxuICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJSZW1vdmVGaWx0ZXJPcHRpb24ob3B0aW9uKVwiPlJlbW92ZTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiSW5wdXRWaWV3TW9kZWwucmFuZ2VcIj5cclxuICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItbmFtZVwiPlxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleGF1dG9cIj5cclxuICAgICAgICAgICAgICAgICBOYW1lOiB7eyBJbnB1dFZpZXdNb2RlbC5yYW5nZS5uYW1lIH19XHJcbiAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLW5hbWVcIj5cclxuICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleGF1dG9cIj5cclxuICAgICAgICAgICAgICAgICAgIFJlcXVpcmVzXHJcbiAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiUmVxdWlyZVJhbmdlSW5wdXRGaWx0ZXJPcHRpb24oKVwiPkZpbHRlck9wdGlvbjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBJbnB1dFZpZXdNb2RlbC5yYW5nZS5yZXF1aXJlc1JhbmdlSW5wdXRGaWx0ZXJPcHRpb25zXCI+XHJcbiAgICAgICAgICAgICAgICAge3sgb3B0aW9uLnJlcXVpcmVkRmlsdGVyTmFtZSB9fToge3sgb3B0aW9uLnJlcXVpcmVkRmlsdGVyT3B0aW9uTmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIlJlbW92ZVJlcXVpcmVSYW5nZUlucHV0RmlsdGVyT3B0aW9uKG9wdGlvbilcIj5SZW1vdmU8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICBcclxuICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICA8L21hdC1jYXJkPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuIl19
|
|
281
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLWZpbHRlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9iZWhlZXIvY29tcG9uZW50cy9iZWhlZXItZmlsdGVycy9iZWhlZXItZmlsdGVycy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1maWx0ZXJzL2JlaGVlci1maWx0ZXJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBNkgsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQXlCLHdCQUF3QixFQUFFLDhCQUE4QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeFMsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXRFLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQ3pILE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxNQUFNLGtGQUFrRixDQUFDOzs7Ozs7Ozs7O0FBTzNJLE1BQU0sT0FBTyxzQkFBc0I7SUFRakMsWUFBb0IsZ0JBQWtDLEVBQzdDLE1BQWlCLEVBQ2hCLGlCQUFvQztRQUYxQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQzdDLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDaEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQVJ2QyxZQUFPLEdBQVksSUFBSSxDQUFDO1FBSXhCLG1CQUFjLEdBQStCLFNBQVMsQ0FBQztJQUlaLENBQUM7SUFFbkQsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBSSxDQUFD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QU8sR0FBRyxJQUFJLENBQUM7WUFFcEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDM0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQzthQUM3QztZQUVELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDN0UsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLENBQUMsRUFBRSxDQUFDLEtBQWUsRUFBRSxFQUFFO2dCQUNyQixJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRztvQkFDckIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztxQkFDdkI7b0JBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO29CQUMzQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUNwQjtnQkFFRCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUN2QixDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7bUhBelVVLHNCQUFzQjt1R0FBdEIsc0JBQXNCLDBEQ1puQyxpaklBZ0dBOzJGRHBGYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0Usb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWx0ZXJzQXBpQ2xpZW50LCBJbnB1dHNWaWV3TW9kZWwsIEZpbHRlck9wdGlvblJlcXVpcmVkVmlld01vZGVsLCBSYW5nZUlucHV0RmlsdGVyT3B0aW9uUmVxdWlyZWRWaWV3TW9kZWwsIElucHV0Vmlld01vZGVsLCBNb3ZlRmlsdGVyUmVxdWVzdCwgTW92ZUZpbHRlck9wdGlvblJlcXVlc3QsIEZpbHRlck9wdGlvblZpZXdNb2RlbCwgU2V0RmlsdGVyUmVxdWlyZWRSZXF1ZXN0LCBTZXRGaWx0ZXJPcHRpb25SZXF1aXJlZFJlcXVlc3QgfSBmcm9tICcuLi8uLi8uLi9zd2FnZ2VyL1N3YWdnZXJDbGllbnQnO1xyXG5pbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IEJlaGVlclNlbGVjdEZpbHRlckRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2JlaGVlci1zZWxlY3QtZmlsdGVyLWRpYWxvZy9iZWhlZXItc2VsZWN0LWZpbHRlci1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmVoZWVyU2VsZWN0RmlsdGVyb3B0aW9uRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vYmVoZWVyLXNlbGVjdC1maWx0ZXJvcHRpb24tZGlhbG9nL2JlaGVlci1zZWxlY3QtZmlsdGVyb3B0aW9uLWRpYWxvZy5jb21wb25lbnQnO1xyXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1iZWhlZXItZmlsdGVycycsXG4gIHRlbXBsYXRlVXJsOiAnLi9iZWhlZXItZmlsdGVycy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2JlaGVlci1maWx0ZXJzLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQmVoZWVyRmlsdGVyc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcHVibGljIExvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIHB1YmxpYyBJbnB1dHNWaWV3TW9kZWw6IElucHV0c1ZpZXdNb2RlbDtcblxuICBwdWJsaWMgSW5wdXRWaWV3TW9kZWw6IElucHV0Vmlld01vZGVsIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgRmlsdGVyc0FwaUNsaWVudDogRmlsdGVyc0FwaUNsaWVudCxcbiAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIENoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5Mb2FkSW5wdXRzKCk7XG4gIH1cblxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxzdHJpbmdbXT4pIHtcclxuICAgIGlmICh0aGlzLklucHV0c1ZpZXdNb2RlbC5pbnB1dHMgIT0gbnVsbCkge1xyXG4gICAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5JbnB1dHNWaWV3TW9kZWwuaW5wdXRzLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xyXG5cclxuICAgICAgdGhpcy5TYXZlSW5wdXRzKCk7XHJcbiAgICB9XHJcbiAgfVxuXG4gIHB1YmxpYyBHZXRGaWx0ZXJPcHRpb25zKCk6IEZpbHRlck9wdGlvblZpZXdNb2RlbFtdIHtcbiAgICBpZiAodGhpcy5JbnB1dFZpZXdNb2RlbD8uZmlsdGVyPy5maWx0ZXJPcHRpb25WaWV3TW9kZWxzICE9IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHRoaXMuSW5wdXRWaWV3TW9kZWwuZmlsdGVyLmZpbHRlck9wdGlvblZpZXdNb2RlbHM7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcmV0dXJuIG5ldyBBcnJheTxGaWx0ZXJPcHRpb25WaWV3TW9kZWw+KCk7XHJcbiAgICB9XHJcbiAgfVxuXG4gIHB1YmxpYyBNb3ZlVXBPcHRpb24ob3B0aW9uOiBGaWx0ZXJPcHRpb25WaWV3TW9kZWwpIHtcbiAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgdmFyIHJlcXVlc3QgPSBuZXcgTW92ZUZpbHRlck9wdGlvblJlcXVlc3QoKTtcblxuICAgIHJlcXVlc3QuZmlsdGVyT3B0aW9uSWQgPSBvcHRpb24uaWQ7XG4gICAgcmVxdWVzdC51cCA9IHRydWU7XG5cbiAgICB0aGlzLkZpbHRlcnNBcGlDbGllbnQubW92ZUZpbHRlck9wdGlvbihyZXF1ZXN0KS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5Mb2FkSW5wdXRzKCk7XG4gICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yLmpzb24oKSk7XG4gICAgICBlbHNlIHtcbiAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xuICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuTG9hZGluZyA9IGZhbHNlO1xuICAgIH0pO1xyXG4gIH1cblxuICBwdWJsaWMgTW92ZURvd25PcHRpb24ob3B0aW9uOiBGaWx0ZXJPcHRpb25WaWV3TW9kZWwpIHtcbiAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgdmFyIHJlcXVlc3QgPSBuZXcgTW92ZUZpbHRlck9wdGlvblJlcXVlc3QoKTtcblxuICAgIHJlcXVlc3QuZmlsdGVyT3B0aW9uSWQgPSBvcHRpb24uaWQ7XG4gICAgcmVxdWVzdC51cCA9IGZhbHNlO1xuXG4gICAgdGhpcy5GaWx0ZXJzQXBpQ2xpZW50Lm1vdmVGaWx0ZXJPcHRpb24ocmVxdWVzdCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuTG9hZElucHV0cygpO1xuICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcbiAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gNDAwKVxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvci5qc29uKCkpO1xuICAgICAgZWxzZSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLkxvYWRpbmcgPSBmYWxzZTtcbiAgICB9KTtcclxuICB9XG5cbiAgcHVibGljIE9wZW4oaW5wdXQ6IElucHV0Vmlld01vZGVsKSB7XG4gICAgdGhpcy5JbnB1dFZpZXdNb2RlbCA9IGlucHV0O1xyXG4gIH1cblxuICBwdWJsaWMgQWRkQ2F0ZWdvcnkoKTogdm9pZCB7XG5cclxuICB9XG5cbiAgcHVibGljIFNvcnQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuSW5wdXRWaWV3TW9kZWw/LmZpbHRlciAhPSBudWxsKSB7XG4gICAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgICB2YXIgcmVxdWVzdCA9IG5ldyBNb3ZlRmlsdGVyUmVxdWVzdCgpO1xuXG4gICAgICByZXF1ZXN0LmZpbHRlcklkID0gdGhpcy5JbnB1dFZpZXdNb2RlbC5maWx0ZXIuaWQ7XG5cbiAgICAgIHRoaXMuRmlsdGVyc0FwaUNsaWVudC5zb3J0RmlsdGVyKHJlcXVlc3QpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuTG9hZElucHV0cygpO1xuICAgICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09IDQwMClcbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvci5qc29uKCkpO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmxvZygnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XG4gICAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XG5cbiAgcHVibGljIFJlcXVpcmVGaWx0ZXIoKTogdm9pZCB7XG4gICAgdmFyIGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQmVoZWVyU2VsZWN0RmlsdGVyRGlhbG9nQ29tcG9uZW50KTtcclxuXHJcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHQ/LmZpbHRlciAhPSBudWxsICYmIHRoaXMuSW5wdXRWaWV3TW9kZWw/LmZpbHRlciAhPSBudWxsKSB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC5maWx0ZXIgPiAwKSB7XHJcbiAgICAgICAgICBpZiAoY29uZmlybShcIldlZXQgamUgaGV0IHpla2VyP1wiKSkge1xyXG5cclxuICAgICAgICAgICAgdGhpcy5DaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBTZXRGaWx0ZXJSZXF1aXJlZFJlcXVlc3QoKTtcclxuXHJcbiAgICAgICAgICAgIHJlcXVlc3QuZmlsdGVyQWZmZWN0c0lkID0gdGhpcy5JbnB1dFZpZXdNb2RlbD8uZmlsdGVyLmlkO1xyXG4gICAgICAgICAgICByZXF1ZXN0LmZpbHRlclJlcXVpcmVkSWQgPSByZXN1bHQuZmlsdGVyO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5GaWx0ZXJzQXBpQ2xpZW50LnNldEZpbHRlclJlcXVpcmVkKHJlcXVlc3QpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuTG9hZElucHV0cygpO1xuICAgICAgICAgICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09IDQwMClcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvci5qc29uKCkpO1xuICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cblxuICBwdWJsaWMgUmVxdWlyZUZpbHRlck9wdGlvbigpOiB2b2lkIHtcbiAgICB2YXIgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihCZWhlZXJTZWxlY3RGaWx0ZXJvcHRpb25EaWFsb2dDb21wb25lbnQpO1xyXG5cclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlc3VsdD8uZmlsdGVyb3B0aW9uICE9IG51bGwgJiYgdGhpcy5JbnB1dFZpZXdNb2RlbD8uZmlsdGVyKSB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC5maWx0ZXJvcHRpb24gPiAwKSB7XHJcbiAgICAgICAgICBpZiAoY29uZmlybShcIldlZXQgamUgaGV0IHpla2VyP1wiKSkge1xyXG5cclxuICAgICAgICAgICAgdGhpcy5DaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLkNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICAgICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFNldEZpbHRlck9wdGlvblJlcXVpcmVkUmVxdWVzdCgpO1xyXG5cclxuICAgICAgICAgICAgcmVxdWVzdC5maWx0ZXJJZCA9IHRoaXMuSW5wdXRWaWV3TW9kZWwuZmlsdGVyLmlkO1xyXG4gICAgICAgICAgICByZXF1ZXN0LnJhbmdlSW5wdXRJZCA9IDA7XHJcbiAgICAgICAgICAgIHJlcXVlc3QuZmlsdGVyT3B0aW9uSWQgPSByZXN1bHQuZmlsdGVyb3B0aW9uO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5GaWx0ZXJzQXBpQ2xpZW50LnNldEZpbHRlck9wdGlvblJlcXVpcmVkKHJlcXVlc3QpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuTG9hZElucHV0cygpO1xuICAgICAgICAgICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09IDQwMClcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvci5qc29uKCkpO1xuICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cblxuICBwdWJsaWMgUmVtb3ZlUmVxdWlyZUZpbHRlck9wdGlvbihyZXF1aXJlOiBGaWx0ZXJPcHRpb25SZXF1aXJlZFZpZXdNb2RlbCk6IHZvaWQge1xuICAgIGlmIChjb25maXJtKFwiV2VldCBqZSBoZXQgemVrZXI/XCIpKSB7XHJcblxyXG4gICAgICB0aGlzLkNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFNldEZpbHRlck9wdGlvblJlcXVpcmVkUmVxdWVzdCgpO1xyXG5cclxuICAgICAgcmVxdWVzdC5maWx0ZXJJZCA9IHJlcXVpcmUuYWZmZWN0ZWRGaWx0ZXJJZDtcclxuICAgICAgcmVxdWVzdC5yYW5nZUlucHV0SWQgPSAwO1xyXG4gICAgICByZXF1ZXN0LmZpbHRlck9wdGlvbklkID0gcmVxdWlyZS5yZXF1aXJlZEZpbHRlck9wdGlvbklkO1xyXG5cclxuICAgICAgdGhpcy5GaWx0ZXJzQXBpQ2xpZW50LnJlbW92ZUZpbHRlck9wdGlvblJlcXVpcmVkKHJlcXVlc3QpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuTG9hZElucHV0cygpO1xuICAgICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09IDQwMClcbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvci5qc29uKCkpO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmxvZygnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XG4gICAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XG5cbiAgcHVibGljIFJlcXVpcmVSYW5nZUlucHV0RmlsdGVyT3B0aW9uKCk6IHZvaWQge1xuICAgIHZhciBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEJlaGVlclNlbGVjdEZpbHRlcm9wdGlvbkRpYWxvZ0NvbXBvbmVudCk7XHJcblxyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzdWx0Py5maWx0ZXJvcHRpb24gIT0gbnVsbCAmJiB0aGlzLklucHV0Vmlld01vZGVsPy5yYW5nZSkge1xyXG4gICAgICAgIGlmIChyZXN1bHQuZmlsdGVyb3B0aW9uID4gMCkge1xyXG4gICAgICAgICAgaWYgKGNvbmZpcm0oXCJXZWV0IGplIGhldCB6ZWtlcj9cIikpIHtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgICAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgU2V0RmlsdGVyT3B0aW9uUmVxdWlyZWRSZXF1ZXN0KCk7XHJcblxyXG4gICAgICAgICAgICByZXF1ZXN0LmZpbHRlcklkID0gMDtcclxuICAgICAgICAgICAgcmVxdWVzdC5yYW5nZUlucHV0SWQgPSB0aGlzLklucHV0Vmlld01vZGVsLnJhbmdlLmlkO1xyXG4gICAgICAgICAgICByZXF1ZXN0LmZpbHRlck9wdGlvbklkID0gcmVzdWx0LmZpbHRlcm9wdGlvbjtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuRmlsdGVyc0FwaUNsaWVudC5zZXRGaWx0ZXJPcHRpb25SZXF1aXJlZChyZXF1ZXN0KS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLkxvYWRJbnB1dHMoKTtcbiAgICAgICAgICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcbiAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHRoaXMuTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XG5cbiAgcHVibGljIFJlbW92ZVJlcXVpcmVSYW5nZUlucHV0RmlsdGVyT3B0aW9uKHJlcXVpcmU6IFJhbmdlSW5wdXRGaWx0ZXJPcHRpb25SZXF1aXJlZFZpZXdNb2RlbCk6IHZvaWQge1xuICAgIGlmIChjb25maXJtKFwiV2VldCBqZSBoZXQgemVrZXI/XCIpKSB7XHJcblxyXG4gICAgICB0aGlzLkNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFNldEZpbHRlck9wdGlvblJlcXVpcmVkUmVxdWVzdCgpO1xyXG5cclxuICAgICAgcmVxdWVzdC5maWx0ZXJJZCA9IDA7XHJcbiAgICAgIHJlcXVlc3QucmFuZ2VJbnB1dElkID0gcmVxdWlyZS5hZmZlY3RlZFJhbmdlSW5wdXRJZDtcclxuICAgICAgcmVxdWVzdC5maWx0ZXJPcHRpb25JZCA9IHJlcXVpcmUucmVxdWlyZWRGaWx0ZXJPcHRpb25JZDtcclxuXHJcbiAgICAgIHRoaXMuRmlsdGVyc0FwaUNsaWVudC5yZW1vdmVGaWx0ZXJPcHRpb25SZXF1aXJlZChyZXF1ZXN0KS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLkxvYWRJbnB1dHMoKTtcbiAgICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xuICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuTG9hZGluZyA9IGZhbHNlO1xuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxuXG4gIHB1YmxpYyBSZW1vdmVGaWx0ZXJPcHRpb24ob3B0aW9uOiBGaWx0ZXJPcHRpb25WaWV3TW9kZWwpOiB2b2lkIHtcbiAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgdGhpcy5GaWx0ZXJzQXBpQ2xpZW50LnJlbW92ZUZpbHRlck9wdGlvbihvcHRpb24pLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLkxvYWRJbnB1dHMoKTtcbiAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XG4gICAgICBpZiAoZXJyb3Iuc3RhdHVzID09IDQwMClcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcbiAgICAgIGVsc2Uge1xuICAgICAgICBjb25zb2xlLmxvZygnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XG4gICAgfSk7XHJcbiAgfVxuXG4gIHByaXZhdGUgTG9hZElucHV0cygpOiB2b2lkIHtcbiAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgdGhpcy5GaWx0ZXJzQXBpQ2xpZW50LmdldElucHV0c1ZpZXdNb2RlbCgpLnN1YnNjcmliZSgobW9kZWw6IElucHV0c1ZpZXdNb2RlbCkgPT4ge1xuICAgICAgdGhpcy5JbnB1dHNWaWV3TW9kZWwgPSBtb2RlbDtcblxuICAgICAgaWYgKHRoaXMuSW5wdXRWaWV3TW9kZWwgIT0gbnVsbCAmJiB0aGlzLklucHV0c1ZpZXdNb2RlbC5pbnB1dHMgIT0gbnVsbCkge1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuSW5wdXRzVmlld01vZGVsLmlucHV0cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgaWYgKCh0aGlzLklucHV0Vmlld01vZGVsLmZpbHRlcj8uaWQgPT0gdGhpcy5JbnB1dHNWaWV3TW9kZWwuaW5wdXRzW2ldLmZpbHRlcj8uaWQpICYmXHJcbiAgICAgICAgICAgICh0aGlzLklucHV0Vmlld01vZGVsLnJhbmdlPy5pZCA9PSB0aGlzLklucHV0c1ZpZXdNb2RlbC5pbnB1dHNbaV0ucmFuZ2U/LmlkKSkge1xyXG4gICAgICAgICAgICB0aGlzLklucHV0Vmlld01vZGVsID0gdGhpcy5JbnB1dHNWaWV3TW9kZWwuaW5wdXRzW2ldO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxuXG4gICAgICB0aGlzLkxvYWRpbmcgPSBmYWxzZTtcbiAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XG4gICAgICBpZiAoZXJyb3Iuc3RhdHVzID09IDQwMClcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcbiAgICAgIGVsc2Uge1xuICAgICAgICBjb25zb2xlLmxvZygnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIFNhdmVJbnB1dHMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuSW5wdXRzVmlld01vZGVsLmlucHV0cyAhPSBudWxsKSB7XG4gICAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuSW5wdXRzVmlld01vZGVsLmlucHV0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICB0aGlzLklucHV0c1ZpZXdNb2RlbC5pbnB1dHNbaV0ucG9zaXRpb24gPSBpO1xyXG4gICAgICB9XG5cbiAgICAgIHRoaXMuRmlsdGVyc0FwaUNsaWVudC5zYXZlSW5wdXRzVmlld01vZGVsKHRoaXMuSW5wdXRzVmlld01vZGVsKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLkxvYWRJbnB1dHMoKTtcbiAgICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xuICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuTG9hZGluZyA9IGZhbHNlO1xuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxufVxuIiwiPGFwcC1iZWhlZXItbmF2PjwvYXBwLWJlaGVlci1uYXY+XHJcblxyXG48ZGl2ICpuZ0lmPVwiTG9hZGluZ1wiPlxyXG4gIDxhcHAtZmFiLWxvYWRlcj48L2FwcC1mYWItbG9hZGVyPlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgKm5nSWY9XCIhTG9hZGluZ1wiIGNsYXNzPVwibWFpbi1jb250ZW50XCI+XHJcbiAgPG1hdC1jYXJkPlxyXG4gICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIkFkZENhdGVnb3J5KClcIj5DYXRlZ29yaWUgdG9ldm9lZ2VuPC9idXR0b24+XHJcbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgPC9tYXQtY2FyZD5cclxuICA8YnIgLz5cclxuICA8ZGl2IGNsYXNzPVwiZGlzcGxheWZsZXhcIj5cclxuICAgIDxkaXY+XHJcbiAgICAgIDxtYXQtY2FyZD5cclxuICAgICAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICAgIDxkaXYgY2RrRHJvcExpc3QgY2xhc3M9XCJpbnB1dC1saXN0XCIgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWl0ZW1cIiAqbmdGb3I9XCJsZXQgaW5wdXQgb2YgSW5wdXRzVmlld01vZGVsLmlucHV0c1wiIGNka0RyYWc+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlucHV0LmZpbHRlclwiPlxyXG4gICAgICAgICAgICAgICAge3sgaW5wdXQuZmlsdGVyLm5hbWUgfX1cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaW5wdXQucmFuZ2VcIj5cclxuICAgICAgICAgICAgICAgIHt7IGlucHV0LnJhbmdlLm5hbWUgfX1cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJPcGVuKGlucHV0KVwiPlNlbGVjdDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cclxuICAgICAgPC9tYXQtY2FyZD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXhhdXRvXCI+XHJcbiAgICAgIDxtYXQtY2FyZD5cclxuICAgICAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICAgPGRpdiAqbmdJZj1cIklucHV0Vmlld01vZGVsICE9IHVuZGVmaW5lZFwiPlxyXG4gICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJJbnB1dFZpZXdNb2RlbC5maWx0ZXJcIj5cclxuICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItbmFtZVwiPlxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleGF1dG9cIj5cclxuICAgICAgICAgICAgICAgICBOYW1lOiB7eyBJbnB1dFZpZXdNb2RlbC5maWx0ZXIubmFtZSB9fVxyXG4gICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJTb3J0KClcIj5Tb3J0PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLW5hbWVcIj5cclxuICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleGF1dG9cIj5cclxuICAgICAgICAgICAgICAgICAgIFJlcXVpcmVzXHJcbiAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiUmVxdWlyZUZpbHRlcigpXCI+RmlsdGVyPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiUmVxdWlyZUZpbHRlck9wdGlvbigpXCI+RmlsdGVyT3B0aW9uPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIElucHV0Vmlld01vZGVsLmZpbHRlci5yZXF1aXJlc0ZpbHRlck9wdGlvbnNcIiBjbGFzcz1cInJlcXVpcmVkLW9wdGlvblwiIFtuZ0NsYXNzXT1cInsgJ0FORCc6IG9wdGlvbi5maWx0ZXJPcHRpb25SZXF1aXJlZFR5cGUgPT0gMCwgJ09SJzogb3B0aW9uLmZpbHRlck9wdGlvblJlcXVpcmVkVHlwZSA9PSAxIH1cIj5cclxuICAgICAgICAgICAgICAgICB7eyBvcHRpb24ucmVxdWlyZWRGaWx0ZXJOYW1lIH19OiB7eyBvcHRpb24ucmVxdWlyZWRGaWx0ZXJPcHRpb25OYW1lIH19XHJcbiAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiUmVtb3ZlUmVxdWlyZUZpbHRlck9wdGlvbihvcHRpb24pXCI+UmVtb3ZlPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLW9wdGlvbnMtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBHZXRGaWx0ZXJPcHRpb25zKCk7IGxldCBpID0gaW5kZXg7XCIgY2xhc3M9XCJmaWx0ZXItb3B0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1vcHRpb24tbmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAge3sgb3B0aW9uLm5hbWUgfX1cclxuICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJSZW1vdmVGaWx0ZXJPcHRpb24ob3B0aW9uKVwiPlJlbW92ZTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiSW5wdXRWaWV3TW9kZWwucmFuZ2VcIj5cclxuICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItbmFtZVwiPlxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleGF1dG9cIj5cclxuICAgICAgICAgICAgICAgICBOYW1lOiB7eyBJbnB1dFZpZXdNb2RlbC5yYW5nZS5uYW1lIH19XHJcbiAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLW5hbWVcIj5cclxuICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleGF1dG9cIj5cclxuICAgICAgICAgICAgICAgICAgIFJlcXVpcmVzXHJcbiAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiUmVxdWlyZVJhbmdlSW5wdXRGaWx0ZXJPcHRpb24oKVwiPkZpbHRlck9wdGlvbjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBJbnB1dFZpZXdNb2RlbC5yYW5nZS5yZXF1aXJlc1JhbmdlSW5wdXRGaWx0ZXJPcHRpb25zXCIgY2xhc3M9XCJyZXF1aXJlZC1vcHRpb25cIiBbbmdDbGFzc109XCJ7ICdBTkQnOiBvcHRpb24uZmlsdGVyT3B0aW9uUmVxdWlyZWRUeXBlID09IDAsICdPUic6IG9wdGlvbi5maWx0ZXJPcHRpb25SZXF1aXJlZFR5cGUgPT0gMSB9XCI+XHJcbiAgICAgICAgICAgICAgICAge3sgb3B0aW9uLnJlcXVpcmVkRmlsdGVyTmFtZSB9fToge3sgb3B0aW9uLnJlcXVpcmVkRmlsdGVyT3B0aW9uTmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIlJlbW92ZVJlcXVpcmVSYW5nZUlucHV0RmlsdGVyT3B0aW9uKG9wdGlvbilcIj5SZW1vdmU8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICBcclxuICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICA8L21hdC1jYXJkPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuIl19
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../../services/fabrikanten.service";
|
|
4
|
+
import * as i2 from "../../services/translate.service";
|
|
5
|
+
import * as i3 from "@angular/common";
|
|
6
|
+
import * as i4 from "@angular/forms";
|
|
7
|
+
import * as i5 from "@angular/material/icon";
|
|
8
|
+
import * as i6 from "@angular/material/radio";
|
|
9
|
+
export class FabFilterFoldComponent {
|
|
10
|
+
constructor(FabrikantenService, TranslateService, ChangeDetectorRef) {
|
|
11
|
+
this.FabrikantenService = FabrikantenService;
|
|
12
|
+
this.TranslateService = TranslateService;
|
|
13
|
+
this.ChangeDetectorRef = ChangeDetectorRef;
|
|
14
|
+
this.Opened = false;
|
|
15
|
+
}
|
|
16
|
+
get filter() {
|
|
17
|
+
return this._filter;
|
|
18
|
+
}
|
|
19
|
+
set filter(value) {
|
|
20
|
+
this._filter = value;
|
|
21
|
+
}
|
|
22
|
+
ngOnInit() {
|
|
23
|
+
}
|
|
24
|
+
ChangeState() {
|
|
25
|
+
if (this.HasChosen()) {
|
|
26
|
+
this.ResetSelection();
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
if (this.HasOptions()) {
|
|
30
|
+
this.Opened = !this.Opened;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
IsFilled() {
|
|
35
|
+
return this.GetSelectedOption() != null;
|
|
36
|
+
}
|
|
37
|
+
SelectOption(optionid) {
|
|
38
|
+
this.FabrikantenService.SelectOption(this.filter.id, optionid, this.ChangeDetectorRef);
|
|
39
|
+
}
|
|
40
|
+
ResetSelection() {
|
|
41
|
+
this.FabrikantenService.ResetSelectionFilter(this.filter, this.ChangeDetectorRef);
|
|
42
|
+
}
|
|
43
|
+
HasChosen() {
|
|
44
|
+
if (this.filter.selectedOption > 0) {
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
HasOptions() {
|
|
50
|
+
if (this.filter.options != null) {
|
|
51
|
+
if (this.filter.options.length > 1) {
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
GetSelectedOption() {
|
|
58
|
+
if (this._filter.options != null) {
|
|
59
|
+
if (this._filter.options.length == 1) {
|
|
60
|
+
return this._filter.options[0];
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
for (var i = 0; i < this._filter.options.length; i++) {
|
|
64
|
+
if (this._filter.selectedOption == this._filter.options[i].id) {
|
|
65
|
+
return this._filter.options[i];
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
FabFilterFoldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: FabFilterFoldComponent, deps: [{ token: i1.FabrikantenService }, { token: i2.TranslateService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
74
|
+
FabFilterFoldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: FabFilterFoldComponent, selector: "app-fab-filter-fold", inputs: { filter: "filter" }, ngImport: i0, template: "<ng-container *ngIf=\"!filter.hidden\">\r\n <div class=\"main-fold\" [ngClass]=\"{ 'filled': IsFilled() }\">\r\n <div class=\"row selectbar\" (click)=\"ChangeState()\">\r\n <div class=\"flexauto namebar\">\r\n {{ TranslateService.GetActiveValueFilter(filter.id) }}\r\n <span *ngIf=\"filter.blocksProductSelect || filter.required\">*</span>\r\n <ng-container *ngIf=\"HasChosen() || !HasOptions()\">\r\n <div *ngIf=\"GetSelectedOption() != null && GetSelectedOption().colour != null && GetSelectedOption().colour != ''\">\r\n <div [ngStyle]=\"{'background-color': GetSelectedOption().colour}\" class=\"colour-preview-selected\">\r\n \r\n \r\n </div>\r\n </div>\r\n ({{ TranslateService.GetActiveValueFilterOption(GetSelectedOption().id) }})\r\n </ng-container>\r\n </div>\r\n <div>\r\n <ng-container *ngIf=\"HasChosen()\">\r\n <mat-icon class=\"icon-clear\">clear</mat-icon>\r\n </ng-container>\r\n <ng-container *ngIf=\"!HasChosen() && HasOptions()\">\r\n <mat-icon *ngIf=\"!Opened\" class=\"expand_more\">expand_more</mat-icon>\r\n <mat-icon *ngIf=\"Opened\" class=\"expand_less\">expand_less</mat-icon>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"collapsible-wrapper\" [ngClass]=\"{'collapsed': !Opened}\">\r\n <div class=\"collapsible\">\r\n <div class=\"content\">\r\n <div class=\"row\">\r\n <div class=\"select\">\r\n\r\n <mat-radio-group class=\"radio-group\" [(ngModel)]=\"SelectedOptionId\">\r\n <ng-container *ngFor=\"let option of filter.options\">\r\n <mat-radio-button class=\"select-mat-option radio-button\" *ngIf=\"!option.hidden\" (change)=\"SelectOption(option.id)\">\r\n <ng-container *ngIf=\"option.colour != null && option.colour != ''\">\r\n <span [ngStyle]=\"{'background-color': option.colour}\" class=\"colour-preview\">\r\n \r\n \r\n </span>\r\n </ng-container>\r\n\r\n {{ TranslateService.GetActiveValueFilterOption(option.id) }}\r\n </mat-radio-button>\r\n </ng-container>\r\n </mat-radio-group>\r\n </div>\r\n <div *ngIf=\"GetSelectedOption() != null && GetSelectedOption().colour != null && GetSelectedOption().colour != ''\">\r\n <div [ngStyle]=\"{'background-color': GetSelectedOption().colour}\" class=\"colour-preview-selected\">\r\n \r\n \r\n </div>\r\n </div>\r\n <div class=\"reset\" *ngIf=\"filter.selectedOption != 0\" (click)=\"ResetSelection()\">\r\n <mat-icon class=\"icon-position clear\" [inline]=\"true\">clear</mat-icon>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n</ng-container>\r\n", styles: [".flexauto{flex:auto}.namebar{font-size:14px;line-height:24px}.main-fold{overflow:hidden;border:1px solid #AAA;border-radius:2px;margin-bottom:5px}.filled{border-left:3px solid #000}.selectbar{cursor:pointer;padding:5px}.radio-button{padding-bottom:3px}.radio-group{display:inline-flex;flex-direction:column}.content{padding:5px}.collapsible-wrapper{display:flex;overflow:hidden}.collapsible-wrapper:after{content:\"\";height:50px;transition:height .3s linear,max-height 0s .3s linear;max-height:0px}.collapsible{transition:margin-bottom .3s cubic-bezier(0,0,0,1);margin-bottom:0;max-height:1000000px}.collapsible-wrapper.collapsed>.collapsible{margin-bottom:-2000px;transition:margin-bottom .3s cubic-bezier(1,0,1,1),visibility 0s .3s,max-height 0s .3s;visibility:hidden;max-height:0}.collapsible-wrapper.collapsed:after{height:0;transition:height .3s linear;max-height:50px}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i6.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }] });
|
|
75
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: FabFilterFoldComponent, decorators: [{
|
|
76
|
+
type: Component,
|
|
77
|
+
args: [{ selector: 'app-fab-filter-fold', template: "<ng-container *ngIf=\"!filter.hidden\">\r\n <div class=\"main-fold\" [ngClass]=\"{ 'filled': IsFilled() }\">\r\n <div class=\"row selectbar\" (click)=\"ChangeState()\">\r\n <div class=\"flexauto namebar\">\r\n {{ TranslateService.GetActiveValueFilter(filter.id) }}\r\n <span *ngIf=\"filter.blocksProductSelect || filter.required\">*</span>\r\n <ng-container *ngIf=\"HasChosen() || !HasOptions()\">\r\n <div *ngIf=\"GetSelectedOption() != null && GetSelectedOption().colour != null && GetSelectedOption().colour != ''\">\r\n <div [ngStyle]=\"{'background-color': GetSelectedOption().colour}\" class=\"colour-preview-selected\">\r\n \r\n \r\n </div>\r\n </div>\r\n ({{ TranslateService.GetActiveValueFilterOption(GetSelectedOption().id) }})\r\n </ng-container>\r\n </div>\r\n <div>\r\n <ng-container *ngIf=\"HasChosen()\">\r\n <mat-icon class=\"icon-clear\">clear</mat-icon>\r\n </ng-container>\r\n <ng-container *ngIf=\"!HasChosen() && HasOptions()\">\r\n <mat-icon *ngIf=\"!Opened\" class=\"expand_more\">expand_more</mat-icon>\r\n <mat-icon *ngIf=\"Opened\" class=\"expand_less\">expand_less</mat-icon>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"collapsible-wrapper\" [ngClass]=\"{'collapsed': !Opened}\">\r\n <div class=\"collapsible\">\r\n <div class=\"content\">\r\n <div class=\"row\">\r\n <div class=\"select\">\r\n\r\n <mat-radio-group class=\"radio-group\" [(ngModel)]=\"SelectedOptionId\">\r\n <ng-container *ngFor=\"let option of filter.options\">\r\n <mat-radio-button class=\"select-mat-option radio-button\" *ngIf=\"!option.hidden\" (change)=\"SelectOption(option.id)\">\r\n <ng-container *ngIf=\"option.colour != null && option.colour != ''\">\r\n <span [ngStyle]=\"{'background-color': option.colour}\" class=\"colour-preview\">\r\n \r\n \r\n </span>\r\n </ng-container>\r\n\r\n {{ TranslateService.GetActiveValueFilterOption(option.id) }}\r\n </mat-radio-button>\r\n </ng-container>\r\n </mat-radio-group>\r\n </div>\r\n <div *ngIf=\"GetSelectedOption() != null && GetSelectedOption().colour != null && GetSelectedOption().colour != ''\">\r\n <div [ngStyle]=\"{'background-color': GetSelectedOption().colour}\" class=\"colour-preview-selected\">\r\n \r\n \r\n </div>\r\n </div>\r\n <div class=\"reset\" *ngIf=\"filter.selectedOption != 0\" (click)=\"ResetSelection()\">\r\n <mat-icon class=\"icon-position clear\" [inline]=\"true\">clear</mat-icon>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n</ng-container>\r\n", styles: [".flexauto{flex:auto}.namebar{font-size:14px;line-height:24px}.main-fold{overflow:hidden;border:1px solid #AAA;border-radius:2px;margin-bottom:5px}.filled{border-left:3px solid #000}.selectbar{cursor:pointer;padding:5px}.radio-button{padding-bottom:3px}.radio-group{display:inline-flex;flex-direction:column}.content{padding:5px}.collapsible-wrapper{display:flex;overflow:hidden}.collapsible-wrapper:after{content:\"\";height:50px;transition:height .3s linear,max-height 0s .3s linear;max-height:0px}.collapsible{transition:margin-bottom .3s cubic-bezier(0,0,0,1);margin-bottom:0;max-height:1000000px}.collapsible-wrapper.collapsed>.collapsible{margin-bottom:-2000px;transition:margin-bottom .3s cubic-bezier(1,0,1,1),visibility 0s .3s,max-height 0s .3s;visibility:hidden;max-height:0}.collapsible-wrapper.collapsed:after{height:0;transition:height .3s linear;max-height:50px}\n"] }]
|
|
78
|
+
}], ctorParameters: function () { return [{ type: i1.FabrikantenService }, { type: i2.TranslateService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { filter: [{
|
|
79
|
+
type: Input
|
|
80
|
+
}] } });
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLWZpbHRlci1mb2xkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItZmlsdGVyLWZvbGQvZmFiLWZpbHRlci1mb2xkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItZmlsdGVyLWZvbGQvZmFiLWZpbHRlci1mb2xkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFnQixLQUFLLEVBQXFDLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQVVySCxNQUFNLE9BQU8sc0JBQXNCO0lBYWpDLFlBQ1Usa0JBQXNDLEVBQ3ZDLGdCQUFrQyxFQUNqQyxpQkFBb0M7UUFGcEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN2QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2pDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFkdkMsV0FBTSxHQUFZLEtBQUssQ0FBQztJQWNtQixDQUFDO0lBWG5ELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBYSxNQUFNLENBQUMsS0FBaUM7UUFDbkQsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQU9ELFFBQVE7SUFDUixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNwQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDdkI7YUFDSTtZQUNILElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFO2dCQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQzthQUM1QjtTQUNGO0lBQ0gsQ0FBQztJQUVNLFFBQVE7UUFDYixPQUFPLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLElBQUksQ0FBQztJQUMxQyxDQUFDO0lBRU0sWUFBWSxDQUFDLFFBQWdCO1FBQ2xDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFTSxjQUFjO1FBQ25CLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFTSxTQUFTO1FBQ2QsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsR0FBRyxDQUFDLEVBQUU7WUFDbEMsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRTtZQUMvQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ2xDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7U0FDRjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVNLGlCQUFpQjtRQUN0QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRTtZQUNoQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7Z0JBQ3BDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDaEM7aUJBQ0k7Z0JBQ0gsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtvQkFDcEQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7d0JBQzdELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQ2hDO2lCQUNGO2FBQ0Y7U0FDRjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs7bUhBN0VVLHNCQUFzQjt1R0FBdEIsc0JBQXNCLHlGQ1ZuQyw4aUdBK0RBOzJGRHJEYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UscUJBQXFCO3dLQWFsQixNQUFNO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGYWJyaWthbnRlblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mYWJyaWthbnRlbi5zZXJ2aWNlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmFuc2xhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBGYWJyaWthbnRlbkZpbHRlck9wdGlvblZpZXdNb2RlbCwgRmFicmlrYW50ZW5GaWx0ZXJWaWV3TW9kZWwgfSBmcm9tICcuLi8uLi9zd2FnZ2VyL1N3YWdnZXJDbGllbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZmFiLWZpbHRlci1mb2xkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZhYi1maWx0ZXItZm9sZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZhYi1maWx0ZXItZm9sZC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZhYkZpbHRlckZvbGRDb21wb25lbnQge1xuICBwdWJsaWMgU2VsZWN0ZWRPcHRpb25JZDogbnVtYmVyO1xuICBwdWJsaWMgT3BlbmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgX2ZpbHRlcjogRmFicmlrYW50ZW5GaWx0ZXJWaWV3TW9kZWw7XG4gIGdldCBmaWx0ZXIoKTogRmFicmlrYW50ZW5GaWx0ZXJWaWV3TW9kZWwge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXI7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgZmlsdGVyKHZhbHVlOiBGYWJyaWthbnRlbkZpbHRlclZpZXdNb2RlbCkge1xuICAgIHRoaXMuX2ZpbHRlciA9IHZhbHVlO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBGYWJyaWthbnRlblNlcnZpY2U6IEZhYnJpa2FudGVuU2VydmljZSxcbiAgICBwdWJsaWMgVHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIENoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuICBwdWJsaWMgQ2hhbmdlU3RhdGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuSGFzQ2hvc2VuKCkpIHtcbiAgICAgIHRoaXMuUmVzZXRTZWxlY3Rpb24oKTtcclxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGlmICh0aGlzLkhhc09wdGlvbnMoKSkge1xyXG4gICAgICAgIHRoaXMuT3BlbmVkID0gIXRoaXMuT3BlbmVkO1xyXG4gICAgICB9XHJcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgSXNGaWxsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuR2V0U2VsZWN0ZWRPcHRpb24oKSAhPSBudWxsO1xyXG4gIH1cblxuICBwdWJsaWMgU2VsZWN0T3B0aW9uKG9wdGlvbmlkOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5TZWxlY3RPcHRpb24odGhpcy5maWx0ZXIuaWQsIG9wdGlvbmlkLCB0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcbiAgfVxuXG4gIHB1YmxpYyBSZXNldFNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5SZXNldFNlbGVjdGlvbkZpbHRlcih0aGlzLmZpbHRlciwgdGhpcy5DaGFuZ2VEZXRlY3RvclJlZik7XG4gIH1cblxuICBwdWJsaWMgSGFzQ2hvc2VuKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmZpbHRlci5zZWxlY3RlZE9wdGlvbiA+IDApIHtcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cblxuICBwdWJsaWMgSGFzT3B0aW9ucygpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5maWx0ZXIub3B0aW9ucyAhPSBudWxsKSB7XG4gICAgICBpZiAodGhpcy5maWx0ZXIub3B0aW9ucy5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XG5cbiAgcHVibGljIEdldFNlbGVjdGVkT3B0aW9uKCk6IEZhYnJpa2FudGVuRmlsdGVyT3B0aW9uVmlld01vZGVsIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMuX2ZpbHRlci5vcHRpb25zICE9IG51bGwpIHtcbiAgICAgIGlmICh0aGlzLl9maWx0ZXIub3B0aW9ucy5sZW5ndGggPT0gMSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmlsdGVyLm9wdGlvbnNbMF07XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9maWx0ZXIub3B0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGlmICh0aGlzLl9maWx0ZXIuc2VsZWN0ZWRPcHRpb24gPT0gdGhpcy5fZmlsdGVyLm9wdGlvbnNbaV0uaWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9maWx0ZXIub3B0aW9uc1tpXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFmaWx0ZXIuaGlkZGVuXCI+XHJcbiAgPGRpdiBjbGFzcz1cIm1haW4tZm9sZFwiIFtuZ0NsYXNzXT1cInsgJ2ZpbGxlZCc6IElzRmlsbGVkKCkgfVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBzZWxlY3RiYXJcIiAoY2xpY2spPVwiQ2hhbmdlU3RhdGUoKVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleGF1dG8gbmFtZWJhclwiPlxyXG4gICAgICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWVGaWx0ZXIoZmlsdGVyLmlkKSB9fVxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiZmlsdGVyLmJsb2Nrc1Byb2R1Y3RTZWxlY3QgfHwgZmlsdGVyLnJlcXVpcmVkXCI+Kjwvc3Bhbj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiSGFzQ2hvc2VuKCkgfHwgIUhhc09wdGlvbnMoKVwiPlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cIkdldFNlbGVjdGVkT3B0aW9uKCkgIT0gbnVsbCAmJiBHZXRTZWxlY3RlZE9wdGlvbigpLmNvbG91ciAhPSBudWxsICYmIEdldFNlbGVjdGVkT3B0aW9uKCkuY29sb3VyICE9ICcnXCI+XHJcbiAgICAgICAgICAgIDxkaXYgW25nU3R5bGVdPVwieydiYWNrZ3JvdW5kLWNvbG9yJzogR2V0U2VsZWN0ZWRPcHRpb24oKS5jb2xvdXJ9XCIgY2xhc3M9XCJjb2xvdXItcHJldmlldy1zZWxlY3RlZFwiPlxyXG4gICAgICAgICAgICAgICZuYnNwO1xyXG4gICAgICAgICAgICAgICZuYnNwO1xyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWVGaWx0ZXJPcHRpb24oR2V0U2VsZWN0ZWRPcHRpb24oKS5pZCkgfX0pXHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2PlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJIYXNDaG9zZW4oKVwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvbi1jbGVhclwiPmNsZWFyPC9tYXQtaWNvbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIUhhc0Nob3NlbigpICYmIEhhc09wdGlvbnMoKVwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiIU9wZW5lZFwiIGNsYXNzPVwiZXhwYW5kX21vcmVcIj5leHBhbmRfbW9yZTwvbWF0LWljb24+XHJcbiAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJPcGVuZWRcIiBjbGFzcz1cImV4cGFuZF9sZXNzXCI+ZXhwYW5kX2xlc3M8L21hdC1pY29uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbGxhcHNpYmxlLXdyYXBwZXJcIiBbbmdDbGFzc109XCJ7J2NvbGxhcHNlZCc6ICFPcGVuZWR9XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYXBzaWJsZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RcIj5cclxuXHJcbiAgICAgICAgICAgICAgPG1hdC1yYWRpby1ncm91cCBjbGFzcz1cInJhZGlvLWdyb3VwXCIgWyhuZ01vZGVsKV09XCJTZWxlY3RlZE9wdGlvbklkXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZmlsdGVyLm9wdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY2xhc3M9XCJzZWxlY3QtbWF0LW9wdGlvbiByYWRpby1idXR0b25cIiAqbmdJZj1cIiFvcHRpb24uaGlkZGVuXCIgKGNoYW5nZSk9XCJTZWxlY3RPcHRpb24ob3B0aW9uLmlkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvcHRpb24uY29sb3VyICE9IG51bGwgJiYgb3B0aW9uLmNvbG91ciAhPSAnJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW25nU3R5bGVdPVwieydiYWNrZ3JvdW5kLWNvbG9yJzogb3B0aW9uLmNvbG91cn1cIiBjbGFzcz1cImNvbG91ci1wcmV2aWV3XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICZuYnNwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDtcclxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAge3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZUZpbHRlck9wdGlvbihvcHRpb24uaWQpIH19XHJcbiAgICAgICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIkdldFNlbGVjdGVkT3B0aW9uKCkgIT0gbnVsbCAmJiBHZXRTZWxlY3RlZE9wdGlvbigpLmNvbG91ciAhPSBudWxsICYmIEdldFNlbGVjdGVkT3B0aW9uKCkuY29sb3VyICE9ICcnXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJ7J2JhY2tncm91bmQtY29sb3InOiBHZXRTZWxlY3RlZE9wdGlvbigpLmNvbG91cn1cIiBjbGFzcz1cImNvbG91ci1wcmV2aWV3LXNlbGVjdGVkXCI+XHJcbiAgICAgICAgICAgICAgICAmbmJzcDtcclxuICAgICAgICAgICAgICAgICZuYnNwO1xyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlc2V0XCIgKm5nSWY9XCJmaWx0ZXIuc2VsZWN0ZWRPcHRpb24gIT0gMFwiIChjbGljayk9XCJSZXNldFNlbGVjdGlvbigpXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvbi1wb3NpdGlvbiBjbGVhclwiIFtpbmxpbmVdPVwidHJ1ZVwiPmNsZWFyPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgXHJcbiAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
|
package/esm2020/src/app/modules/fabrikantencore/components/fab-input/fab-input.component.mjs
CHANGED
|
@@ -5,6 +5,9 @@ import * as i2 from "../fab-filter/fab-filter.component";
|
|
|
5
5
|
import * as i3 from "../fab-range-input/fab-range-input.component";
|
|
6
6
|
import * as i4 from "../fab-filter-colour/fab-filter-colour.component";
|
|
7
7
|
import * as i5 from "../fab-multiselect/fab-multiselect.component";
|
|
8
|
+
import * as i6 from "../fab-filter-fold/fab-filter-fold.component";
|
|
9
|
+
import * as i7 from "../fab-multiselect-fold/fab-multiselect-fold.component";
|
|
10
|
+
import * as i8 from "../fab-range-input-fold/fab-range-input-fold.component";
|
|
8
11
|
export class FabInputComponent {
|
|
9
12
|
get input() {
|
|
10
13
|
return this._input;
|
|
@@ -14,11 +17,11 @@ export class FabInputComponent {
|
|
|
14
17
|
}
|
|
15
18
|
}
|
|
16
19
|
FabInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: FabInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
17
|
-
FabInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: FabInputComponent, selector: "app-fab-input", inputs: { input: "input" }, ngImport: i0, template: "<ng-container *ngIf=\"input.filter && !input.filter.hidden\">\r\n <ng-container *ngIf=\"input.filter.filterType == 1\">\r\n <app-fab-filter [filter]=\"input.filter\"></app-fab-filter>\r\n </ng-container>\r\n <ng-container *ngIf=\"input.filter.filterType == 2\">\r\n <app-fab-filter-colour [filter]=\"input.filter\"></app-fab-filter-colour>\r\n </ng-container>\r\n <ng-container *ngIf=\"input.filter.filterType == 3\">\r\n <app-fab-multiselect [filter]=\"input.filter\"></app-fab-multiselect>\r\n </ng-container>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"input.range && !input.range.hidden\">\r\n <app-fab-range-input [rangeinput]=\"input.range\"></app-fab-range-input>\r\n</ng-container>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FabFilterComponent, selector: "app-fab-filter", inputs: ["filter"], outputs: ["filterchanged"] }, { kind: "component", type: i3.FabRangeInputComponent, selector: "app-fab-range-input", inputs: ["rangeinput"] }, { kind: "component", type: i4.FabFilterColourComponent, selector: "app-fab-filter-colour", inputs: ["filter"] }, { kind: "component", type: i5.FabMultiselectComponent, selector: "app-fab-multiselect", inputs: ["filter"],
|
|
20
|
+
FabInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: FabInputComponent, selector: "app-fab-input", inputs: { input: "input" }, ngImport: i0, template: "<ng-container *ngIf=\"input.filter && !input.filter.hidden\">\r\n <ng-container *ngIf=\"input.filter.filterType == 1\">\r\n <app-fab-filter [filter]=\"input.filter\"></app-fab-filter>\r\n </ng-container>\r\n <ng-container *ngIf=\"input.filter.filterType == 4\">\r\n <app-fab-filter-fold [filter]=\"input.filter\"></app-fab-filter-fold>\r\n </ng-container>\r\n <ng-container *ngIf=\"input.filter.filterType == 2\">\r\n <app-fab-filter-colour [filter]=\"input.filter\"></app-fab-filter-colour>\r\n </ng-container>\r\n <ng-container *ngIf=\"input.filter.filterType == 3\">\r\n <app-fab-multiselect [filter]=\"input.filter\"></app-fab-multiselect>\r\n </ng-container>\r\n <ng-container *ngIf=\"input.filter.filterType == 5\">\r\n <app-fab-multiselect-fold [filter]=\"input.filter\"></app-fab-multiselect-fold>\r\n </ng-container>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"input.range && !input.range.hidden\">\r\n <ng-container *ngIf=\"input.range.rangeInputType == 0\">\r\n <app-fab-range-input [rangeinput]=\"input.range\"></app-fab-range-input>\r\n </ng-container>\r\n <ng-container *ngIf=\"input.range.rangeInputType == 1\">\r\n <app-fab-range-input-fold [rangeinput]=\"input.range\"></app-fab-range-input-fold>\r\n </ng-container> \r\n</ng-container>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FabFilterComponent, selector: "app-fab-filter", inputs: ["filter"], outputs: ["filterchanged"] }, { kind: "component", type: i3.FabRangeInputComponent, selector: "app-fab-range-input", inputs: ["rangeinput"] }, { kind: "component", type: i4.FabFilterColourComponent, selector: "app-fab-filter-colour", inputs: ["filter"] }, { kind: "component", type: i5.FabMultiselectComponent, selector: "app-fab-multiselect", inputs: ["filter"] }, { kind: "component", type: i6.FabFilterFoldComponent, selector: "app-fab-filter-fold", inputs: ["filter"] }, { kind: "component", type: i7.FabMultiselectFoldComponent, selector: "app-fab-multiselect-fold", inputs: ["filter"] }, { kind: "component", type: i8.FabRangeInputFoldComponent, selector: "app-fab-range-input-fold", inputs: ["rangeinput"] }] });
|
|
18
21
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: FabInputComponent, decorators: [{
|
|
19
22
|
type: Component,
|
|
20
|
-
args: [{ selector: 'app-fab-input', template: "<ng-container *ngIf=\"input.filter && !input.filter.hidden\">\r\n <ng-container *ngIf=\"input.filter.filterType == 1\">\r\n <app-fab-filter [filter]=\"input.filter\"></app-fab-filter>\r\n </ng-container>\r\n <ng-container *ngIf=\"input.filter.filterType == 2\">\r\n <app-fab-filter-colour [filter]=\"input.filter\"></app-fab-filter-colour>\r\n </ng-container>\r\n <ng-container *ngIf=\"input.filter.filterType == 3\">\r\n <app-fab-multiselect [filter]=\"input.filter\"></app-fab-multiselect>\r\n </ng-container>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"input.range && !input.range.hidden\">\r\n <app-fab-range-input [rangeinput]=\"input.range\"></app-fab-range-input>\r\n</ng-container>\r\n" }]
|
|
23
|
+
args: [{ selector: 'app-fab-input', template: "<ng-container *ngIf=\"input.filter && !input.filter.hidden\">\r\n <ng-container *ngIf=\"input.filter.filterType == 1\">\r\n <app-fab-filter [filter]=\"input.filter\"></app-fab-filter>\r\n </ng-container>\r\n <ng-container *ngIf=\"input.filter.filterType == 4\">\r\n <app-fab-filter-fold [filter]=\"input.filter\"></app-fab-filter-fold>\r\n </ng-container>\r\n <ng-container *ngIf=\"input.filter.filterType == 2\">\r\n <app-fab-filter-colour [filter]=\"input.filter\"></app-fab-filter-colour>\r\n </ng-container>\r\n <ng-container *ngIf=\"input.filter.filterType == 3\">\r\n <app-fab-multiselect [filter]=\"input.filter\"></app-fab-multiselect>\r\n </ng-container>\r\n <ng-container *ngIf=\"input.filter.filterType == 5\">\r\n <app-fab-multiselect-fold [filter]=\"input.filter\"></app-fab-multiselect-fold>\r\n </ng-container>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"input.range && !input.range.hidden\">\r\n <ng-container *ngIf=\"input.range.rangeInputType == 0\">\r\n <app-fab-range-input [rangeinput]=\"input.range\"></app-fab-range-input>\r\n </ng-container>\r\n <ng-container *ngIf=\"input.range.rangeInputType == 1\">\r\n <app-fab-range-input-fold [rangeinput]=\"input.range\"></app-fab-range-input-fold>\r\n </ng-container> \r\n</ng-container>\r\n" }]
|
|
21
24
|
}], propDecorators: { input: [{
|
|
22
25
|
type: Input
|
|
23
26
|
}] } });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItaW5wdXQvZmFiLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItaW5wdXQvZmFiLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7O0FBUWpELE1BQU0sT0FBTyxpQkFBaUI7SUFHNUIsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFhLEtBQUssQ0FBQyxLQUFnQztRQUNqRCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDOzs4R0FUVSxpQkFBaUI7a0dBQWpCLGlCQUFpQixpRkNSOUIsbXhDQTBCQTsyRkRsQmEsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLGVBQWU7OEJBV1osS0FBSztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZhYnJpa2FudGVuSW5wdXRWaWV3TW9kZWwgfSBmcm9tICcuLi8uLi9zd2FnZ2VyL1N3YWdnZXJDbGllbnQnO1xyXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1mYWItaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmFiLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmFiLWlucHV0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRmFiSW5wdXRDb21wb25lbnQge1xuXG4gIF9pbnB1dDogRmFicmlrYW50ZW5JbnB1dFZpZXdNb2RlbDtcbiAgZ2V0IGlucHV0KCk6IEZhYnJpa2FudGVuSW5wdXRWaWV3TW9kZWwge1xuICAgIHJldHVybiB0aGlzLl9pbnB1dDtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBpbnB1dCh2YWx1ZTogRmFicmlrYW50ZW5JbnB1dFZpZXdNb2RlbCkge1xuICAgIHRoaXMuX2lucHV0ID0gdmFsdWU7XG4gIH1cblxuXG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiaW5wdXQuZmlsdGVyICYmICFpbnB1dC5maWx0ZXIuaGlkZGVuXCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlucHV0LmZpbHRlci5maWx0ZXJUeXBlID09IDFcIj5cclxuICAgIDxhcHAtZmFiLWZpbHRlciBbZmlsdGVyXT1cImlucHV0LmZpbHRlclwiPjwvYXBwLWZhYi1maWx0ZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlucHV0LmZpbHRlci5maWx0ZXJUeXBlID09IDRcIj5cclxuICAgIDxhcHAtZmFiLWZpbHRlci1mb2xkIFtmaWx0ZXJdPVwiaW5wdXQuZmlsdGVyXCI+PC9hcHAtZmFiLWZpbHRlci1mb2xkPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbnB1dC5maWx0ZXIuZmlsdGVyVHlwZSA9PSAyXCI+XHJcbiAgICA8YXBwLWZhYi1maWx0ZXItY29sb3VyIFtmaWx0ZXJdPVwiaW5wdXQuZmlsdGVyXCI+PC9hcHAtZmFiLWZpbHRlci1jb2xvdXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlucHV0LmZpbHRlci5maWx0ZXJUeXBlID09IDNcIj5cclxuICAgIDxhcHAtZmFiLW11bHRpc2VsZWN0IFtmaWx0ZXJdPVwiaW5wdXQuZmlsdGVyXCI+PC9hcHAtZmFiLW11bHRpc2VsZWN0PlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbnB1dC5maWx0ZXIuZmlsdGVyVHlwZSA9PSA1XCI+XHJcbiAgICA8YXBwLWZhYi1tdWx0aXNlbGVjdC1mb2xkIFtmaWx0ZXJdPVwiaW5wdXQuZmlsdGVyXCI+PC9hcHAtZmFiLW11bHRpc2VsZWN0LWZvbGQ+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImlucHV0LnJhbmdlICYmICFpbnB1dC5yYW5nZS5oaWRkZW5cIj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaW5wdXQucmFuZ2UucmFuZ2VJbnB1dFR5cGUgPT0gMFwiPlxyXG4gICAgPGFwcC1mYWItcmFuZ2UtaW5wdXQgW3JhbmdlaW5wdXRdPVwiaW5wdXQucmFuZ2VcIj48L2FwcC1mYWItcmFuZ2UtaW5wdXQ+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlucHV0LnJhbmdlLnJhbmdlSW5wdXRUeXBlID09IDFcIj5cclxuICAgIDxhcHAtZmFiLXJhbmdlLWlucHV0LWZvbGQgW3JhbmdlaW5wdXRdPVwiaW5wdXQucmFuZ2VcIj48L2FwcC1mYWItcmFuZ2UtaW5wdXQtZm9sZD5cclxuICA8L25nLWNvbnRhaW5lcj4gIFxyXG48L25nLWNvbnRhaW5lcj5cclxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component,
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "../../services/fabrikanten.service";
|
|
4
4
|
import * as i2 from "../../services/translate.service";
|
|
@@ -9,7 +9,6 @@ export class FabMultiselectComponent {
|
|
|
9
9
|
this.FabrikantenService = FabrikantenService;
|
|
10
10
|
this.TranslateService = TranslateService;
|
|
11
11
|
this.ChangeDetectorRef = ChangeDetectorRef;
|
|
12
|
-
this.filterchanged = new EventEmitter();
|
|
13
12
|
}
|
|
14
13
|
get filter() {
|
|
15
14
|
return this._filter;
|
|
@@ -32,13 +31,11 @@ export class FabMultiselectComponent {
|
|
|
32
31
|
}
|
|
33
32
|
}
|
|
34
33
|
FabMultiselectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: FabMultiselectComponent, deps: [{ token: i1.FabrikantenService }, { token: i2.TranslateService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
35
|
-
FabMultiselectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: FabMultiselectComponent, selector: "app-fab-multiselect", inputs: { filter: "filter" },
|
|
34
|
+
FabMultiselectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: FabMultiselectComponent, selector: "app-fab-multiselect", inputs: { filter: "filter" }, ngImport: i0, template: "<div class=\"multiselect-name\">\n {{ TranslateService.GetActiveValueFilter(filter.id) }}\n <span *ngIf=\"filter.blocksProductSelect || filter.required\">*</span>\n</div>\n<ng-container *ngFor=\"let option of filter.options\">\n <div *ngIf=\"!option.hidden\" class=\"disableoverflow\">\n <mat-checkbox [checked]=\"IsChecked(option.id)\" (change)=\"SelectOption(option.id)\">{{ TranslateService.GetActiveValueFilterOption(option.id) }}</mat-checkbox>\n </div>\n</ng-container>\n", styles: [".disableoverflow{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}\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: "component", type: i4.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }] });
|
|
36
35
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: FabMultiselectComponent, decorators: [{
|
|
37
36
|
type: Component,
|
|
38
|
-
args: [{ selector: 'app-fab-multiselect', template: "<div>\n {{ TranslateService.GetActiveValueFilter(filter.id) }}\n <span *ngIf=\"filter.blocksProductSelect || filter.required\">*</span>\n</div>\n<ng-container *ngFor=\"let option of filter.options\">\n <div *ngIf=\"!option.hidden\" class=\"disableoverflow\">\n <mat-checkbox [checked]=\"IsChecked(option.id)\" (change)=\"SelectOption(option.id)\">{{ TranslateService.GetActiveValueFilterOption(option.id) }}</mat-checkbox>\n </div>\n</ng-container>\n", styles: [".disableoverflow{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}\n"] }]
|
|
37
|
+
args: [{ selector: 'app-fab-multiselect', template: "<div class=\"multiselect-name\">\n {{ TranslateService.GetActiveValueFilter(filter.id) }}\n <span *ngIf=\"filter.blocksProductSelect || filter.required\">*</span>\n</div>\n<ng-container *ngFor=\"let option of filter.options\">\n <div *ngIf=\"!option.hidden\" class=\"disableoverflow\">\n <mat-checkbox [checked]=\"IsChecked(option.id)\" (change)=\"SelectOption(option.id)\">{{ TranslateService.GetActiveValueFilterOption(option.id) }}</mat-checkbox>\n </div>\n</ng-container>\n", styles: [".disableoverflow{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}\n"] }]
|
|
39
38
|
}], ctorParameters: function () { return [{ type: i1.FabrikantenService }, { type: i2.TranslateService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { filter: [{
|
|
40
39
|
type: Input
|
|
41
|
-
}], filterchanged: [{
|
|
42
|
-
type: Output
|
|
43
40
|
}] } });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLW11bHRpc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItbXVsdGlzZWxlY3QvZmFiLW11bHRpc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItbXVsdGlzZWxlY3QvZmFiLW11bHRpc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFnQixLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVUxRixNQUFNLE9BQU8sdUJBQXVCO0lBV2xDLFlBQW9CLGtCQUFzQyxFQUNqRCxnQkFBa0MsRUFDakMsaUJBQW9DO1FBRjFCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDakQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNqQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO0lBRTlDLENBQUM7SUFiRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQWEsTUFBTSxDQUFDLEtBQWlDO1FBQ25ELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBRXZCLENBQUM7SUFRTSxZQUFZLENBQUMsRUFBVTtRQUM1QixJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRU0sU0FBUyxDQUFDLEVBQVU7UUFDekIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsSUFBSSxJQUFJLEVBQUU7WUFDeEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDNUQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7b0JBQ3pDLE9BQU8sSUFBSSxDQUFDO2lCQUNiO2FBQ0Y7U0FDRjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7b0hBL0JVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLHlGQ1ZwQyxzZUFTQTsyRkRDYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0UscUJBQXFCO3dLQVVsQixNQUFNO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGYWJyaWthbnRlblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mYWJyaWthbnRlbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmFicmlrYW50ZW5GaWx0ZXJPcHRpb25WaWV3TW9kZWwsIEZhYnJpa2FudGVuRmlsdGVyVmlld01vZGVsIH0gZnJvbSAnLi4vLi4vc3dhZ2dlci9Td2FnZ2VyQ2xpZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZhYi1tdWx0aXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9mYWItbXVsdGlzZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mYWItbXVsdGlzZWxlY3QuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGYWJNdWx0aXNlbGVjdENvbXBvbmVudCB7XG4gIF9maWx0ZXI6IEZhYnJpa2FudGVuRmlsdGVyVmlld01vZGVsO1xuICBnZXQgZmlsdGVyKCk6IEZhYnJpa2FudGVuRmlsdGVyVmlld01vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGZpbHRlcih2YWx1ZTogRmFicmlrYW50ZW5GaWx0ZXJWaWV3TW9kZWwpIHtcbiAgICB0aGlzLl9maWx0ZXIgPSB2YWx1ZTtcblxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBGYWJyaWthbnRlblNlcnZpY2U6IEZhYnJpa2FudGVuU2VydmljZSxcclxuICAgIHB1YmxpYyBUcmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBDaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcblxyXG4gIH1cblxuICBwdWJsaWMgU2VsZWN0T3B0aW9uKGlkOiBudW1iZXIpIHtcbiAgICB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5TZWxlY3RPcHRpb24odGhpcy5maWx0ZXIuaWQsIGlkLCB0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcclxuICB9XG5cbiAgcHVibGljIElzQ2hlY2tlZChpZDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuX2ZpbHRlci5zZWxlY3RlZE9wdGlvbnMgIT0gbnVsbCkge1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9maWx0ZXIuc2VsZWN0ZWRPcHRpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmICh0aGlzLl9maWx0ZXIuc2VsZWN0ZWRPcHRpb25zW2ldID09IGlkKSB7XHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm11bHRpc2VsZWN0LW5hbWVcIj5cbiAge3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZUZpbHRlcihmaWx0ZXIuaWQpIH19XG4gIDxzcGFuICpuZ0lmPVwiZmlsdGVyLmJsb2Nrc1Byb2R1Y3RTZWxlY3QgfHwgZmlsdGVyLnJlcXVpcmVkXCI+Kjwvc3Bhbj5cbjwvZGl2PlxuPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGZpbHRlci5vcHRpb25zXCI+XG4gIDxkaXYgKm5nSWY9XCIhb3B0aW9uLmhpZGRlblwiIGNsYXNzPVwiZGlzYWJsZW92ZXJmbG93XCI+XG4gICAgPG1hdC1jaGVja2JveCBbY2hlY2tlZF09XCJJc0NoZWNrZWQob3B0aW9uLmlkKVwiIChjaGFuZ2UpPVwiU2VsZWN0T3B0aW9uKG9wdGlvbi5pZClcIj57eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlRmlsdGVyT3B0aW9uKG9wdGlvbi5pZCkgfX08L21hdC1jaGVja2JveD5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Component, Input, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../../services/fabrikanten.service";
|
|
4
|
+
import * as i2 from "../../services/translate.service";
|
|
5
|
+
import * as i3 from "@angular/common";
|
|
6
|
+
import * as i4 from "@angular/material/icon";
|
|
7
|
+
import * as i5 from "../fab-multiselect/fab-multiselect.component";
|
|
8
|
+
export class FabMultiselectFoldComponent {
|
|
9
|
+
constructor(FabrikantenService, TranslateService, ChangeDetectorRef) {
|
|
10
|
+
this.FabrikantenService = FabrikantenService;
|
|
11
|
+
this.TranslateService = TranslateService;
|
|
12
|
+
this.ChangeDetectorRef = ChangeDetectorRef;
|
|
13
|
+
this.Opened = false;
|
|
14
|
+
}
|
|
15
|
+
get filter() {
|
|
16
|
+
return this._filter;
|
|
17
|
+
}
|
|
18
|
+
set filter(value) {
|
|
19
|
+
this._filter = value;
|
|
20
|
+
}
|
|
21
|
+
ChangeState() {
|
|
22
|
+
this.Opened = !this.Opened;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
FabMultiselectFoldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: FabMultiselectFoldComponent, deps: [{ token: i1.FabrikantenService }, { token: i2.TranslateService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
26
|
+
FabMultiselectFoldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: FabMultiselectFoldComponent, selector: "app-fab-multiselect-fold", inputs: { filter: "filter" }, ngImport: i0, template: "<ng-container *ngIf=\"!filter.hidden\">\r\n <div class=\"main-fold\">\r\n <div class=\"row selectbar\" (click)=\"ChangeState()\">\r\n <div class=\"flexauto namebar\">\r\n {{ TranslateService.GetActiveValueFilter(filter.id) }}\r\n <span *ngIf=\"filter.blocksProductSelect || filter.required\">*</span>\r\n </div>\r\n <div>\r\n <mat-icon *ngIf=\"!Opened\" class=\"expand_more\">expand_more</mat-icon>\r\n <mat-icon *ngIf=\"Opened\" class=\"expand_less\">expand_less</mat-icon>\r\n </div>\r\n </div>\r\n <div class=\"collapsible-wrapper\" [ngClass]=\"{'collapsed': !Opened}\">\r\n <div class=\"collapsible\">\r\n <div class=\"content\">\r\n <app-fab-multiselect [filter]=\"filter\"></app-fab-multiselect>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n", styles: ["app-fab-multiselect-fold .multiselect-name{display:none}app-fab-multiselect-fold .flexauto{flex:auto}app-fab-multiselect-fold .namebar{font-size:14px;line-height:24px}app-fab-multiselect-fold .main-fold{overflow:hidden;border:1px solid #AAA;border-radius:2px;margin-bottom:5px}app-fab-multiselect-fold .selectbar{cursor:pointer;padding:5px}app-fab-multiselect-fold .content{padding:5px}app-fab-multiselect-fold .collapsible-wrapper{display:flex;overflow:hidden}app-fab-multiselect-fold .collapsible-wrapper:after{content:\"\";height:50px;transition:height .3s linear,max-height 0s .3s linear;max-height:0px}app-fab-multiselect-fold .collapsible{transition:margin-bottom .3s cubic-bezier(0,0,0,1);margin-bottom:0;max-height:1000000px}app-fab-multiselect-fold .collapsible-wrapper.collapsed>.collapsible{margin-bottom:-2000px;transition:margin-bottom .3s cubic-bezier(1,0,1,1),visibility 0s .3s,max-height 0s .3s;visibility:hidden;max-height:0}app-fab-multiselect-fold .collapsible-wrapper.collapsed:after{height:0;transition:height .3s linear;max-height:50px}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.FabMultiselectComponent, selector: "app-fab-multiselect", inputs: ["filter"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: FabMultiselectFoldComponent, decorators: [{
|
|
28
|
+
type: Component,
|
|
29
|
+
args: [{ selector: 'app-fab-multiselect-fold', encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"!filter.hidden\">\r\n <div class=\"main-fold\">\r\n <div class=\"row selectbar\" (click)=\"ChangeState()\">\r\n <div class=\"flexauto namebar\">\r\n {{ TranslateService.GetActiveValueFilter(filter.id) }}\r\n <span *ngIf=\"filter.blocksProductSelect || filter.required\">*</span>\r\n </div>\r\n <div>\r\n <mat-icon *ngIf=\"!Opened\" class=\"expand_more\">expand_more</mat-icon>\r\n <mat-icon *ngIf=\"Opened\" class=\"expand_less\">expand_less</mat-icon>\r\n </div>\r\n </div>\r\n <div class=\"collapsible-wrapper\" [ngClass]=\"{'collapsed': !Opened}\">\r\n <div class=\"collapsible\">\r\n <div class=\"content\">\r\n <app-fab-multiselect [filter]=\"filter\"></app-fab-multiselect>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n", styles: ["app-fab-multiselect-fold .multiselect-name{display:none}app-fab-multiselect-fold .flexauto{flex:auto}app-fab-multiselect-fold .namebar{font-size:14px;line-height:24px}app-fab-multiselect-fold .main-fold{overflow:hidden;border:1px solid #AAA;border-radius:2px;margin-bottom:5px}app-fab-multiselect-fold .selectbar{cursor:pointer;padding:5px}app-fab-multiselect-fold .content{padding:5px}app-fab-multiselect-fold .collapsible-wrapper{display:flex;overflow:hidden}app-fab-multiselect-fold .collapsible-wrapper:after{content:\"\";height:50px;transition:height .3s linear,max-height 0s .3s linear;max-height:0px}app-fab-multiselect-fold .collapsible{transition:margin-bottom .3s cubic-bezier(0,0,0,1);margin-bottom:0;max-height:1000000px}app-fab-multiselect-fold .collapsible-wrapper.collapsed>.collapsible{margin-bottom:-2000px;transition:margin-bottom .3s cubic-bezier(1,0,1,1),visibility 0s .3s,max-height 0s .3s;visibility:hidden;max-height:0}app-fab-multiselect-fold .collapsible-wrapper.collapsed:after{height:0;transition:height .3s linear;max-height:50px}\n"] }]
|
|
30
|
+
}], ctorParameters: function () { return [{ type: i1.FabrikantenService }, { type: i2.TranslateService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { filter: [{
|
|
31
|
+
type: Input
|
|
32
|
+
}] } });
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLW11bHRpc2VsZWN0LWZvbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9jb21wb25lbnRzL2ZhYi1tdWx0aXNlbGVjdC1mb2xkL2ZhYi1tdWx0aXNlbGVjdC1mb2xkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItbXVsdGlzZWxlY3QtZm9sZC9mYWItbXVsdGlzZWxlY3QtZm9sZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBZ0IsS0FBSyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBVzdHLE1BQU0sT0FBTywyQkFBMkI7SUFhdEMsWUFBb0Isa0JBQXNDLEVBQ2pELGdCQUFrQyxFQUNqQyxpQkFBb0M7UUFGMUIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUNqRCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2pDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFKdkMsV0FBTSxHQUFZLEtBQUssQ0FBQztJQU0vQixDQUFDO0lBZkQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFhLE1BQU0sQ0FBQyxLQUFpQztRQUNuRCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUV2QixDQUFDO0lBVU0sV0FBVztRQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUM3QixDQUFDOzt3SEFyQlUsMkJBQTJCOzRHQUEzQiwyQkFBMkIsOEZDWHhDLGkyQkFxQkE7MkZEVmEsMkJBQTJCO2tCQU52QyxTQUFTOytCQUNFLDBCQUEwQixpQkFHckIsaUJBQWlCLENBQUMsSUFBSTt3S0FReEIsTUFBTTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZhYnJpa2FudGVuU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZhYnJpa2FudGVuLnNlcnZpY2UnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IEZhYnJpa2FudGVuRmlsdGVyT3B0aW9uVmlld01vZGVsLCBGYWJyaWthbnRlbkZpbHRlclZpZXdNb2RlbCB9IGZyb20gJy4uLy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1mYWItbXVsdGlzZWxlY3QtZm9sZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9mYWItbXVsdGlzZWxlY3QtZm9sZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZhYi1tdWx0aXNlbGVjdC1mb2xkLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgRmFiTXVsdGlzZWxlY3RGb2xkQ29tcG9uZW50IHtcbiAgX2ZpbHRlcjogRmFicmlrYW50ZW5GaWx0ZXJWaWV3TW9kZWw7XG4gIGdldCBmaWx0ZXIoKTogRmFicmlrYW50ZW5GaWx0ZXJWaWV3TW9kZWwge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXI7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgZmlsdGVyKHZhbHVlOiBGYWJyaWthbnRlbkZpbHRlclZpZXdNb2RlbCkge1xuICAgIHRoaXMuX2ZpbHRlciA9IHZhbHVlO1xuXG4gIH1cblxuICBwdWJsaWMgT3BlbmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBGYWJyaWthbnRlblNlcnZpY2U6IEZhYnJpa2FudGVuU2VydmljZSxcbiAgICBwdWJsaWMgVHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIENoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuXG4gIH1cblxuICBwdWJsaWMgQ2hhbmdlU3RhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5PcGVuZWQgPSAhdGhpcy5PcGVuZWQ7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhZmlsdGVyLmhpZGRlblwiPlxyXG4gIDxkaXYgY2xhc3M9XCJtYWluLWZvbGRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgc2VsZWN0YmFyXCIgKGNsaWNrKT1cIkNoYW5nZVN0YXRlKClcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXhhdXRvIG5hbWViYXJcIj5cclxuICAgICAgICB7eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlRmlsdGVyKGZpbHRlci5pZCkgfX1cclxuICAgICAgICA8c3BhbiAqbmdJZj1cImZpbHRlci5ibG9ja3NQcm9kdWN0U2VsZWN0IHx8IGZpbHRlci5yZXF1aXJlZFwiPio8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2PlxyXG4gICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIiFPcGVuZWRcIiBjbGFzcz1cImV4cGFuZF9tb3JlXCI+ZXhwYW5kX21vcmU8L21hdC1pY29uPlxyXG4gICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIk9wZW5lZFwiIGNsYXNzPVwiZXhwYW5kX2xlc3NcIj5leHBhbmRfbGVzczwvbWF0LWljb24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sbGFwc2libGUtd3JhcHBlclwiIFtuZ0NsYXNzXT1cInsnY29sbGFwc2VkJzogIU9wZW5lZH1cIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbGxhcHNpYmxlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cclxuICAgICAgICAgIDxhcHAtZmFiLW11bHRpc2VsZWN0IFtmaWx0ZXJdPVwiZmlsdGVyXCI+PC9hcHAtZmFiLW11bHRpc2VsZWN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuIl19
|