ontimize-web-ngx 15.0.0-beta.1 → 15.0.0-beta.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/lib/components/app-sidenav/o-app-sidenav.component.mjs +2 -2
- package/esm2020/lib/components/button-toggle/o-button-toggle-group/o-button-toggle-group.component.mjs +13 -15
- package/esm2020/lib/components/card-menu-item/o-card-menu-item.component.mjs +6 -8
- package/esm2020/lib/components/dual-list-selector/o-dual-list-selector.component.mjs +3 -3
- package/esm2020/lib/components/form/navigation/o-form.navigation.class.mjs +2 -2
- package/esm2020/lib/components/form-container/o-form-container.component.mjs +6 -8
- package/esm2020/lib/components/grid/o-grid.component.mjs +5 -5
- package/esm2020/lib/components/index.mjs +2 -3
- package/esm2020/lib/components/input/combo/o-combo.component.mjs +2 -2
- package/esm2020/lib/components/input/phone-input/o-phone-input.component.mjs +3 -3
- package/esm2020/lib/components/input/search-input/o-search-input.component.mjs +2 -2
- package/esm2020/lib/components/list/list-item/o-list-item.component.mjs +2 -2
- package/esm2020/lib/components/list/o-list.component.mjs +5 -14
- package/esm2020/lib/components/list/renderers/card/o-list-item-card.component.mjs +3 -3
- package/esm2020/lib/components/list/renderers/card-image/o-list-item-card-image.component.mjs +3 -3
- package/esm2020/lib/components/o-service-base-component.class.mjs +1 -1
- package/esm2020/lib/components/o-service-component.class.mjs +2 -1
- package/esm2020/lib/components/table/column/calculated/o-table-column-calculated.component.mjs +6 -7
- package/esm2020/lib/components/table/column/o-table-column.component.mjs +123 -129
- package/esm2020/lib/components/table/extensions/default-o-table.datasource.mjs +46 -9
- package/esm2020/lib/components/table/extensions/dialog/apply-configuration/o-table-apply-configuration-dialog.component.mjs +3 -3
- package/esm2020/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column-data-dialog.component.mjs +3 -3
- package/esm2020/lib/components/table/extensions/dialog/store-configuration/o-table-store-configuration-dialog.component.mjs +3 -3
- package/esm2020/lib/components/table/extensions/dialog/visible-columns/o-table-visible-columns-dialog.component.mjs +3 -3
- package/esm2020/lib/components/table/extensions/header/table-insertable-row/o-table-insertable-row.component.mjs +6 -7
- package/esm2020/lib/components/table/extensions/header/table-quickfilter/o-table-quickfilter.component.mjs +4 -4
- package/esm2020/lib/components/table/o-table.component.mjs +17 -18
- package/esm2020/lib/components/user-info/index.mjs +5 -0
- package/esm2020/lib/components/user-info/o-user-info.module.mjs +3 -3
- package/esm2020/lib/interfaces/o-table-column.interface.mjs +1 -1
- package/esm2020/lib/layouts/form-layout/dialog/o-form-layout-dialog.component.mjs +20 -22
- package/esm2020/lib/layouts/form-layout/dialog/options/o-form-layout-dialog-options.directive.mjs +7 -3
- package/esm2020/lib/layouts/form-layout/o-form-layout-manager.component.mjs +10 -4
- package/esm2020/lib/layouts/form-layout/split-pane/o-form-layout-split-pane.component.mjs +8 -9
- package/esm2020/lib/layouts/form-layout/tabgroup/o-form-layout-tabgroup.component.mjs +8 -10
- package/esm2020/lib/services/o-error-dialog-manager.service.mjs +8 -4
- package/esm2020/lib/services/translate/o-translate.service.mjs +3 -2
- package/esm2020/lib/shared/components/filter/load-filter/o-load-filter-dialog.component.mjs +3 -3
- package/esm2020/lib/util/util.mjs +5 -1
- package/fesm2015/ontimize-web-ngx.mjs +297 -272
- package/fesm2015/ontimize-web-ngx.mjs.map +1 -1
- package/fesm2020/ontimize-web-ngx.mjs +297 -272
- package/fesm2020/ontimize-web-ngx.mjs.map +1 -1
- package/lib/components/button-toggle/o-button-toggle-group/o-button-toggle-group.component.d.ts +1 -3
- package/lib/components/card-menu-item/o-card-menu-item.component.d.ts +2 -3
- package/lib/components/form-container/o-form-container.component.d.ts +1 -3
- package/lib/components/index.d.ts +1 -2
- package/lib/components/list/o-list.component.d.ts +1 -3
- package/lib/components/table/column/calculated/o-table-column-calculated.component.d.ts +2 -3
- package/lib/components/table/column/o-table-column.component.d.ts +3 -4
- package/lib/components/table/extensions/default-o-table.datasource.d.ts +1 -0
- package/lib/components/table/extensions/header/table-insertable-row/o-table-insertable-row.component.d.ts +2 -3
- package/lib/components/table/o-table.component.d.ts +5 -6
- package/lib/components/user-info/index.d.ts +4 -0
- package/lib/components/user-info/o-user-info.module.d.ts +1 -1
- package/lib/interfaces/o-table-column.interface.d.ts +2 -2
- package/lib/layouts/form-layout/dialog/o-form-layout-dialog.component.d.ts +4 -4
- package/lib/layouts/form-layout/dialog/options/o-form-layout-dialog-options.directive.d.ts +3 -1
- package/lib/layouts/form-layout/o-form-layout-manager.component.d.ts +2 -1
- package/lib/layouts/form-layout/split-pane/o-form-layout-split-pane.component.d.ts +2 -3
- package/lib/layouts/form-layout/tabgroup/o-form-layout-tabgroup.component.d.ts +2 -3
- package/lib/services/o-error-dialog-manager.service.d.ts +2 -2
- package/lib/services/translate/o-translate.service.d.ts +1 -0
- package/lib/util/util.d.ts +1 -0
- package/ontimize.scss +2 -72
- package/package.json +1 -1
- package/theme.scss +84 -99
- package/theming/addons/report-on-demand.scss +5 -1
- package/theming/ontimize-style-v8.scss +23 -1
- package/theming/ontimize-style.scss +2 -1
- package/theming/styles/density.scss +37 -23
- package/theming/styles/ontimize-v8/o-form-field-style.scss +23 -15
- package/theming/styles/ontimize-v8/o-table-style.scss +1 -1
- package/theming/styles/ontimize-v8/variables.scss +4 -1
- package/theming/themes/ontimize-blue.scss +6 -3
|
@@ -116,14 +116,14 @@ export class OTableVisibleColumnsDialogComponent {
|
|
|
116
116
|
}
|
|
117
117
|
}
|
|
118
118
|
OTableVisibleColumnsDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OTableVisibleColumnsDialogComponent, deps: [{ token: i0.Injector }, { token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
119
|
-
OTableVisibleColumnsDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: OTableVisibleColumnsDialogComponent, selector: "o-table-visible-columns-dialog", host: { properties: { "class.o-table-visible-columns-dialog": "true" } }, ngImport: i0, template: "<span mat-dialog-title>{{ 'TABLE.BUTTONS.COLVIS' | oTranslate }}</span>\n\n\n<mat-dialog-content>\n <div mat-subheader>{{'TABLE.VISIBLE_COLUMNS.DESCRIPTION' | oTranslate}}</div>\n\n <div [ngClass]=\"rowHeight\">\n <mat-list cdkDropList (cdkDropListDropped)=\"drop($event)\"
|
|
119
|
+
OTableVisibleColumnsDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: OTableVisibleColumnsDialogComponent, selector: "o-table-visible-columns-dialog", host: { properties: { "class.o-table-visible-columns-dialog": "true" } }, ngImport: i0, template: "<span mat-dialog-title>{{ 'TABLE.BUTTONS.COLVIS' | oTranslate }}</span>\n\n\n<mat-dialog-content>\n <div mat-subheader>{{'TABLE.VISIBLE_COLUMNS.DESCRIPTION' | oTranslate}}</div>\n\n <div [ngClass]=\"rowHeight\">\n <mat-list cdkDropList (cdkDropListDropped)=\"drop($event)\">\n <mat-list-item *ngFor=\"let column of columns\" cdkDrag (click)=\"onClickColumn(column)\" [ngClass]=\"{'column-hidden':!column.visible}\"\n class=\"o-drag-list-item-box\">\n <div fxLayout=\"row\" fxFlex fxLayoutAlign=\"stretch center\">\n <mat-icon matListItemIcon svgIcon=\"ontimize:drag_handle\"></mat-icon>\n <span matListItemLine fxFlex>{{ (column.title || column.attr) | oTranslate }}</span>\n <mat-icon *ngIf=\"column.visible\" svgIcon=\"ontimize:visibility\" color=\"primary\"></mat-icon>\n <mat-icon *ngIf=\"!column.visible\" svgIcon=\"ontimize:visibility_off\"></mat-icon>\n </div>\n <mat-divider></mat-divider>\n </mat-list-item>\n </mat-list>\n </div>\n</mat-dialog-content>\n\n<mat-dialog-actions fxLayoutAlign=\"end center\">\n <button type=\"button\" mat-stroked-button [mat-dialog-close]=\"null\" class=\"o-button-default cancel\" cancel>{{ 'CANCEL' | oTranslate }}</button>\n <button type=\"button\" mat-stroked-button (click)=\"closeDialog()\" class=\"o-button-primary\">{{ 'ACCEPT' | oTranslate }}</button>\n</mat-dialog-actions>\n", styles: [".o-table-visible-columns-dialog .mat-mdc-dialog-content.mat-mdc-dialog-content{overflow:auto;padding-top:0;margin-top:24px}.o-table-visible-columns-dialog .mat-mdc-dialog-content.mat-mdc-dialog-content .mat-mdc-subheader{display:block}.o-table-visible-columns-dialog .mat-mdc-dialog-content.mat-mdc-dialog-content .title_list{font-weight:600;margin-bottom:6px;margin-top:12px}.o-table-visible-columns-dialog .mat-mdc-dialog-content.mat-mdc-dialog-content .cdk-drop-list{padding:0}.o-table-visible-columns-dialog .mat-mdc-dialog-content.mat-mdc-dialog-content .mat-mdc-list .mat-mdc-list-item{padding-left:0;flex-direction:column;cursor:pointer;height:auto}.o-table-visible-columns-dialog .mat-mdc-dialog-content.mat-mdc-dialog-content .mat-mdc-list .mat-mdc-list-item.column-hidden{opacity:.4}.o-table-visible-columns-dialog .mat-mdc-dialog-content.mat-mdc-dialog-content .mat-mdc-list .mat-mdc-list-item .mdc-list-item__content{padding:0;cursor:move}.o-table-visible-columns-dialog .mat-mdc-dialog-content.mat-mdc-dialog-content .mat-mdc-list .mat-mdc-list-item .mdc-list-item__content .mdc-list-item__secondary-text,.o-table-visible-columns-dialog .mat-mdc-dialog-content.mat-mdc-dialog-content .mat-mdc-list .mat-mdc-list-item .mdc-list-item__content .mdc-list-item__primary-text{padding:0 8px}.o-table-visible-columns-dialog .mat-mdc-dialog-content.mat-mdc-dialog-content .mat-mdc-list .mat-mdc-list-item .mdc-list-item__content .mdc-list-item__start{margin-top:0}.o-table-visible-columns-dialog .mat-mdc-dialog-content.mat-mdc-dialog-content .mat-mdc-list .mat-mdc-list-item .mdc-list-item__content .mat-mdc-list-item-icon{display:flex}.o-table-visible-columns-dialog .mat-mdc-dialog-content.mat-mdc-dialog-content .mat-icon[svgicon=\"ontimize:drag_handle\"],.o-table-visible-columns-dialog .mat-mdc-dialog-content.mat-mdc-dialog-content .mat-mdc-list-item{cursor:move}.o-table-visible-columns-dialog .mat-mdc-dialog-content.mat-mdc-dialog-content .mat-icon[svgicon=\"ontimize:visibility\"],.o-table-visible-columns-dialog .mat-mdc-dialog-content.mat-mdc-dialog-content .mat-icon[svgicon=\"ontimize:visibility_off\"]{width:32px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i3.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i4.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i7.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i7.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i7.MatListSubheaderCssMatStyler, selector: "[mat-subheader], [matSubheader]" }, { kind: "component", type: i8.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i7.MatListItemLine, selector: "[matListItemLine]" }, { kind: "directive", type: i9.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: i9.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: "pipe", type: i10.OTranslatePipe, name: "oTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
120
120
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OTableVisibleColumnsDialogComponent, decorators: [{
|
|
121
121
|
type: Component,
|
|
122
122
|
args: [{ selector: 'o-table-visible-columns-dialog', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
123
123
|
'[class.o-table-visible-columns-dialog]': 'true'
|
|
124
|
-
}, template: "<span mat-dialog-title>{{ 'TABLE.BUTTONS.COLVIS' | oTranslate }}</span>\n\n\n<mat-dialog-content>\n <div mat-subheader>{{'TABLE.VISIBLE_COLUMNS.DESCRIPTION' | oTranslate}}</div>\n\n <div [ngClass]=\"rowHeight\">\n <mat-list cdkDropList (cdkDropListDropped)=\"drop($event)\"
|
|
124
|
+
}, template: "<span mat-dialog-title>{{ 'TABLE.BUTTONS.COLVIS' | oTranslate }}</span>\n\n\n<mat-dialog-content>\n <div mat-subheader>{{'TABLE.VISIBLE_COLUMNS.DESCRIPTION' | oTranslate}}</div>\n\n <div [ngClass]=\"rowHeight\">\n <mat-list cdkDropList (cdkDropListDropped)=\"drop($event)\">\n <mat-list-item *ngFor=\"let column of columns\" cdkDrag (click)=\"onClickColumn(column)\" [ngClass]=\"{'column-hidden':!column.visible}\"\n class=\"o-drag-list-item-box\">\n <div fxLayout=\"row\" fxFlex fxLayoutAlign=\"stretch center\">\n <mat-icon matListItemIcon svgIcon=\"ontimize:drag_handle\"></mat-icon>\n <span matListItemLine fxFlex>{{ (column.title || column.attr) | oTranslate }}</span>\n <mat-icon *ngIf=\"column.visible\" svgIcon=\"ontimize:visibility\" color=\"primary\"></mat-icon>\n <mat-icon *ngIf=\"!column.visible\" svgIcon=\"ontimize:visibility_off\"></mat-icon>\n </div>\n <mat-divider></mat-divider>\n </mat-list-item>\n </mat-list>\n </div>\n</mat-dialog-content>\n\n<mat-dialog-actions fxLayoutAlign=\"end center\">\n <button type=\"button\" mat-stroked-button [mat-dialog-close]=\"null\" class=\"o-button-default cancel\" cancel>{{ 'CANCEL' | oTranslate }}</button>\n <button type=\"button\" mat-stroked-button (click)=\"closeDialog()\" class=\"o-button-primary\">{{ 'ACCEPT' | oTranslate }}</button>\n</mat-dialog-actions>\n", styles: [".o-table-visible-columns-dialog .mat-mdc-dialog-content.mat-mdc-dialog-content{overflow:auto;padding-top:0;margin-top:24px}.o-table-visible-columns-dialog .mat-mdc-dialog-content.mat-mdc-dialog-content .mat-mdc-subheader{display:block}.o-table-visible-columns-dialog .mat-mdc-dialog-content.mat-mdc-dialog-content .title_list{font-weight:600;margin-bottom:6px;margin-top:12px}.o-table-visible-columns-dialog .mat-mdc-dialog-content.mat-mdc-dialog-content .cdk-drop-list{padding:0}.o-table-visible-columns-dialog .mat-mdc-dialog-content.mat-mdc-dialog-content .mat-mdc-list .mat-mdc-list-item{padding-left:0;flex-direction:column;cursor:pointer;height:auto}.o-table-visible-columns-dialog .mat-mdc-dialog-content.mat-mdc-dialog-content .mat-mdc-list .mat-mdc-list-item.column-hidden{opacity:.4}.o-table-visible-columns-dialog .mat-mdc-dialog-content.mat-mdc-dialog-content .mat-mdc-list .mat-mdc-list-item .mdc-list-item__content{padding:0;cursor:move}.o-table-visible-columns-dialog .mat-mdc-dialog-content.mat-mdc-dialog-content .mat-mdc-list .mat-mdc-list-item .mdc-list-item__content .mdc-list-item__secondary-text,.o-table-visible-columns-dialog .mat-mdc-dialog-content.mat-mdc-dialog-content .mat-mdc-list .mat-mdc-list-item .mdc-list-item__content .mdc-list-item__primary-text{padding:0 8px}.o-table-visible-columns-dialog .mat-mdc-dialog-content.mat-mdc-dialog-content .mat-mdc-list .mat-mdc-list-item .mdc-list-item__content .mdc-list-item__start{margin-top:0}.o-table-visible-columns-dialog .mat-mdc-dialog-content.mat-mdc-dialog-content .mat-mdc-list .mat-mdc-list-item .mdc-list-item__content .mat-mdc-list-item-icon{display:flex}.o-table-visible-columns-dialog .mat-mdc-dialog-content.mat-mdc-dialog-content .mat-icon[svgicon=\"ontimize:drag_handle\"],.o-table-visible-columns-dialog .mat-mdc-dialog-content.mat-mdc-dialog-content .mat-mdc-list-item{cursor:move}.o-table-visible-columns-dialog .mat-mdc-dialog-content.mat-mdc-dialog-content .mat-icon[svgicon=\"ontimize:visibility\"],.o-table-visible-columns-dialog .mat-mdc-dialog-content.mat-mdc-dialog-content .mat-icon[svgicon=\"ontimize:visibility_off\"]{width:32px}\n"] }]
|
|
125
125
|
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
126
126
|
type: Inject,
|
|
127
127
|
args: [MAT_DIALOG_DATA]
|
|
128
128
|
}] }]; } });
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS12aXNpYmxlLWNvbHVtbnMtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL2V4dGVuc2lvbnMvZGlhbG9nL3Zpc2libGUtY29sdW1ucy9vLXRhYmxlLXZpc2libGUtY29sdW1ucy1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvZXh0ZW5zaW9ucy9kaWFsb2cvdmlzaWJsZS1jb2x1bW5zL28tdGFibGUtdmlzaWJsZS1jb2x1bW5zLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEUsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBRVIsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7Ozs7OztBQXVCaEQsTUFBTSxPQUFPLG1DQUFtQztJQVc5QyxZQUNZLFFBQWtCLEVBQ3JCLFNBQTRELEVBQzFDLElBQVM7UUFGeEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtR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YWdEcm9wLCBtb3ZlSXRlbUluQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBJbmplY3QsXG4gIEluamVjdG9yLFxuICBUeXBlLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NlcnZpY2VzL2RpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IE9UcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMvdHJhbnNsYXRlL28tdHJhbnNsYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29kZXMgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlsL2NvZGVzJztcbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlsL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBPQ29sdW1uIH0gZnJvbSAnLi4vLi4vLi4vY29sdW1uL28tY29sdW1uLmNsYXNzJztcbmltcG9ydCB7IE9UYWJsZUJhc2UgfSBmcm9tICcuLi8uLi8uLi9vLXRhYmxlLWJhc2UuY2xhc3MnO1xuXG5leHBvcnQgdHlwZSBDb2x1bW5WaXNpYmlsaXR5Q29uZmlndXJhdGlvbiA9IHtcbiAgYXR0cjogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICB2aXNpYmxlOiBib29sZWFuO1xuICBkZWxldGVWYWx1ZUZpbHRlcj86IGJvb2xlYW47XG4gIGRlbGV0ZVNvcnRDb2x1bW1uPzogYm9vbGVhbjtcbiAgZGVsZXRlR3J1cGluZ0NvbHVtbj86IGJvb2xlYW47XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvLXRhYmxlLXZpc2libGUtY29sdW1ucy1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJ28tdGFibGUtdmlzaWJsZS1jb2x1bW5zLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydvLXRhYmxlLXZpc2libGUtY29sdW1ucy1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLm8tdGFibGUtdmlzaWJsZS1jb2x1bW5zLWRpYWxvZ10nOiAndHJ1ZSdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBPVGFibGVWaXNpYmxlQ29sdW1uc0RpYWxvZ0NvbXBvbmVudCB7XG5cbiAgY29sdW1uczogQ29sdW1uVmlzaWJpbGl0eUNvbmZpZ3VyYXRpb25bXSA9IFtdO1xuICByb3dIZWlnaHQ6IHN0cmluZyA9IENvZGVzLkRFRkFVTFRfUk9XX0hFSUdIVDtcbiAgcHJvdGVjdGVkIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2U7XG4gIHByb3RlY3RlZCBjZDogQ2hhbmdlRGV0ZWN0b3JSZWY7XG4gIHByb3RlY3RlZCB0cmFuc2xhdGVTZXJ2aWNlOiBPVHJhbnNsYXRlU2VydmljZTtcbiAgcHJvdGVjdGVkIGFjdGl2ZUNvbHVtblZhbHVlRmlsdGVyczogc3RyaW5nW10gPSBbXTtcbiAgcHJvdGVjdGVkIGFjdGl2ZVNvcnRDb2x1bW5zOiBzdHJpbmdbXSA9IFtdO1xuICBwcm90ZWN0ZWQgYWN0aXZlR3JvdXBCeUNvbHVtbnM6IHN0cmluZ1tdID0gW107XG4gIHByb3RlY3RlZCB0YWJsZTogT1RhYmxlQmFzZTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8T1RhYmxlVmlzaWJsZUNvbHVtbnNEaWFsb2dDb21wb25lbnQ+LFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBkYXRhOiBhbnlcbiAgKSB7XG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQ8RGlhbG9nU2VydmljZT4oRGlhbG9nU2VydmljZSBhcyBUeXBlPERpYWxvZ1NlcnZpY2U+KTtcbiAgICB0aGlzLmNkID0gdGhpcy5pbmplY3Rvci5nZXQ8Q2hhbmdlRGV0ZWN0b3JSZWY+KENoYW5nZURldGVjdG9yUmVmIGFzIFR5cGU8Q2hhbmdlRGV0ZWN0b3JSZWY+KTtcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldDxPVHJhbnNsYXRlU2VydmljZT4oT1RyYW5zbGF0ZVNlcnZpY2UgYXMgVHlwZTxPVHJhbnNsYXRlU2VydmljZT4pO1xuXG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKGRhdGEudGFibGUpKSB7XG4gICAgICB0aGlzLnRhYmxlID0gZGF0YS50YWJsZTtcblxuICAgICAgY29uc3QgdmlzaWJsZUNvbHVtbnMgPSBVdGlsLnBhcnNlQXJyYXkodGhpcy50YWJsZS52aXNpYmxlQ29sdW1ucywgdHJ1ZSk7XG5cbiAgICAgIHRoaXMudGFibGUub1RhYmxlT3B0aW9ucy5jb2x1bW5zLmZpbHRlcihvQ29sID0+IHZpc2libGVDb2x1bW5zLmluZGV4T2Yob0NvbC5hdHRyKSAhPT0gLTEgfHwgb0NvbC5kZWZpbml0aW9uICE9PSB1bmRlZmluZWQpLmZvckVhY2goKG9Db2w6IE9Db2x1bW4pID0+IHtcbiAgICAgICAgdGhpcy5jb2x1bW5zLnB1c2goe1xuICAgICAgICAgIGF0dHI6IG9Db2wuYXR0cixcbiAgICAgICAgICB0aXRsZTogb0NvbC50aXRsZSxcbiAgICAgICAgICB2aXNpYmxlOiBvQ29sLnZpc2libGVcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5yb3dIZWlnaHQgPSB0aGlzLnRhYmxlLnJvd0hlaWdodDtcbiAgICAgIHRoaXMuYWN0aXZlQ29sdW1uVmFsdWVGaWx0ZXJzID0gdGhpcy50YWJsZS5kYXRhU291cmNlLmdldENvbHVtblZhbHVlRmlsdGVycygpLm1hcChjb2xWYWx1ZUZpbHRlciA9PiBjb2xWYWx1ZUZpbHRlci5hdHRyKTtcbiAgICAgIHRoaXMuYWN0aXZlU29ydENvbHVtbnMgPSB0aGlzLnRhYmxlLnNvcnRDb2xBcnJheS5tYXAoY29sID0+IGNvbC5jb2x1bW5OYW1lKTtcbiAgICAgIHRoaXMuYWN0aXZlR3JvdXBCeUNvbHVtbnMgPSB0aGlzLnRhYmxlLmdyb3VwZWRDb2x1bW5zQXJyYXk7XG4gICAgfVxuICB9XG5cbiAgb25DbGlja0NvbHVtbihjb2w6IENvbHVtblZpc2liaWxpdHlDb25maWd1cmF0aW9uKTogdm9pZCB7XG4gICAgY29uc3QgYWN0aXZlQ29sRmlsdGVyID0gdGhpcy5hY3RpdmVDb2x1bW5WYWx1ZUZpbHRlcnMuaW5jbHVkZXMoY29sLmF0dHIpO1xuICAgIGNvbnN0IGFjdGl2ZVNvcnRpbmcgPSB0aGlzLmFjdGl2ZVNvcnRDb2x1bW5zLmluY2x1ZGVzKGNvbC5hdHRyKTtcbiAgICBjb25zdCBhY3RpdmVHcm91cGluZyA9IHRoaXMuYWN0aXZlR3JvdXBCeUNvbHVtbnMuaW5jbHVkZXMoY29sLmF0dHIpO1xuICAgIGlmIChjb2wudmlzaWJsZSAmJiAoYWN0aXZlQ29sRmlsdGVyIHx8IGFjdGl2ZVNvcnRpbmcgfHwgYWN0aXZlR3JvdXBpbmcpKSB7XG4gICAgICBjb25zdCB3YXJuQXJncyA9IFtdO1xuICAgICAgaWYgKGFjdGl2ZUNvbEZpbHRlcikge1xuICAgICAgICB3YXJuQXJncy5wdXNoKHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQoJ1RBQkxFLlZJU0lCTEVfQ09MVU1OU19ESUFMT0cuVkFMVUVfRklMVEVSX1dBUk4nKSk7XG4gICAgICB9XG4gICAgICBpZiAoYWN0aXZlU29ydGluZykge1xuICAgICAgICB3YXJuQXJncy5wdXNoKHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQoJ1RBQkxFLlZJU0lCTEVfQ09MVU1OU19ESUFMT0cuU09SVF9XQVJOJykpO1xuICAgICAgfVxuICAgICAgaWYgKGFjdGl2ZUdyb3VwaW5nKSB7XG4gICAgICAgIHdhcm5BcmdzLnB1c2godGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldCgnVEFCTEUuVklTSUJMRV9DT0xVTU5TX0RJQUxPRy5HUk9VUElOR19XQVJOJykpO1xuICAgICAgfVxuICAgICAgY29uc3QgZGlhbG9nVGV4dCA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQoJ1RBQkxFLlZJU0lCTEVfQ09MVU1OU19ESUFMT0cuSElERV9DT0xVTU5fV0FSTklORycsIHdhcm5BcmdzKTtcbiAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5jb25maXJtKCdDT05GSVJNJywgZGlhbG9nVGV4dCkudGhlbihyZXMgPT4ge1xuICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgY29sLmRlbGV0ZVZhbHVlRmlsdGVyID0gYWN0aXZlQ29sRmlsdGVyO1xuICAgICAgICAgIGNvbC5kZWxldGVTb3J0Q29sdW1tbiA9IGFjdGl2ZVNvcnRpbmc7XG4gICAgICAgICAgY29sLmRlbGV0ZUdydXBpbmdDb2x1bW4gPSBhY3RpdmVHcm91cGluZztcbiAgICAgICAgICBjb2wudmlzaWJsZSA9ICFjb2wudmlzaWJsZTtcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbC52aXNpYmxlID0gIWNvbC52aXNpYmxlO1xuICAgICAgaWYgKGNvbC52aXNpYmxlKSB7XG4gICAgICAgIGNvbC5kZWxldGVWYWx1ZUZpbHRlciA9IGZhbHNlO1xuICAgICAgICBjb2wuZGVsZXRlU29ydENvbHVtbW4gPSBmYWxzZTtcbiAgICAgICAgY29sLmRlbGV0ZUdydXBpbmdDb2x1bW4gPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxzdHJpbmdbXT4pIHtcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5jb2x1bW5zLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICB9XG5cbiAgY2xvc2VEaWFsb2coKSB7XG4gICAgY29uc3QgY29sdW1uU29ydGluZ1RvUmVtb3ZlID0gdGhpcy5nZXRDb2x1bW5Tb3J0aW5nVG9SZW1vdmUoKTtcbiAgICBjb25zdCBuZXdTb3J0Q29sdW1ucyA9IGNvbHVtblNvcnRpbmdUb1JlbW92ZS5sZW5ndGggPiAwID9cbiAgICAgIHRoaXMudGFibGUuc29ydENvbEFycmF5LmZpbHRlcihjb2wgPT4gIWNvbHVtblNvcnRpbmdUb1JlbW92ZS5pbmNsdWRlcyhjb2wuY29sdW1uTmFtZSkpIDpcbiAgICAgIHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IGNvbHVtbkdyb3VwaW5nVG9SZW1vdmUgPSB0aGlzLmdldENvbHVtbkdyb3VwaW5nVG9SZW1vdmUoKTtcbiAgICBjb25zdCBuZXdHcm91cENvbHVtbnMgPSBjb2x1bW5Hcm91cGluZ1RvUmVtb3ZlLmxlbmd0aCA+IDAgP1xuICAgICAgdGhpcy50YWJsZS5ncm91cGVkQ29sdW1uc0FycmF5LmZpbHRlcihjb2wgPT4gIWNvbHVtbkdyb3VwaW5nVG9SZW1vdmUuaW5jbHVkZXMoY29sKSkgOlxuICAgICAgdW5kZWZpbmVkO1xuXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2Uoe1xuICAgICAgdmlzaWJsZUNvbEFycmF5OiB0aGlzLmdldFZpc2libGVDb2x1bW5zKCksXG4gICAgICBjb2x1bW5zT3JkZXI6IHRoaXMuZ2V0Q29sdW1uc09yZGVyKCksXG4gICAgICBzb3J0Q29sdW1uczogbmV3U29ydENvbHVtbnMsXG4gICAgICBjb2x1bW5WYWx1ZUZpbHRlcnNUb1JlbW92ZTogdGhpcy5nZXRDb2x1bW5WYWx1ZUZpbHRlcnNUb1JlbW92ZSgpLFxuICAgICAgZ3JvdXBDb2x1bW5zOiBuZXdHcm91cENvbHVtbnNcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VmlzaWJsZUNvbHVtbnMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbnMuZmlsdGVyKGNvbCA9PiBjb2wudmlzaWJsZSkubWFwKGNvbCA9PiBjb2wuYXR0cik7XG4gIH1cblxuICBwcml2YXRlIGdldENvbHVtbnNPcmRlcigpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1ucy5tYXAoY29sID0+IGNvbC5hdHRyKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29sdW1uVmFsdWVGaWx0ZXJzVG9SZW1vdmUoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbnMuZmlsdGVyKGNvbCA9PiBjb2wuZGVsZXRlVmFsdWVGaWx0ZXIpLm1hcChjb2wgPT4gY29sLmF0dHIpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb2x1bW5Tb3J0aW5nVG9SZW1vdmUoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbnMuZmlsdGVyKGNvbCA9PiBjb2wuZGVsZXRlU29ydENvbHVtbW4pLm1hcChjb2wgPT4gY29sLmF0dHIpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb2x1bW5Hcm91cGluZ1RvUmVtb3ZlKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5zLmZpbHRlcihjb2wgPT4gY29sLmRlbGV0ZUdydXBpbmdDb2x1bW4pLm1hcChjb2wgPT4gY29sLmF0dHIpO1xuICB9XG59XG4iLCI8c3BhbiBtYXQtZGlhbG9nLXRpdGxlPnt7ICdUQUJMRS5CVVRUT05TLkNPTFZJUycgfCBvVHJhbnNsYXRlIH19PC9zcGFuPlxuXG5cbjxtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gIDxkaXYgbWF0LXN1YmhlYWRlcj57eydUQUJMRS5WSVNJQkxFX0NPTFVNTlMuREVTQ1JJUFRJT04nIHwgb1RyYW5zbGF0ZX19PC9kaXY+XG5cbiAgPGRpdiBbbmdDbGFzc109XCJyb3dIZWlnaHRcIj5cbiAgICA8bWF0LWxpc3QgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIiBkZW5zZT5cbiAgICAgIDxtYXQtbGlzdC1pdGVtICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uc1wiIGNka0RyYWcgKGNsaWNrKT1cIm9uQ2xpY2tDb2x1bW4oY29sdW1uKVwiIFtuZ0NsYXNzXT1cInsnY29sdW1uLWhpZGRlbic6IWNvbHVtbi52aXNpYmxlfVwiXG4gICAgICAgIGNsYXNzPVwiby1kcmFnLWxpc3QtaXRlbS1ib3hcIj5cbiAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4RmxleCBmeExheW91dEFsaWduPVwic3RyZXRjaCBjZW50ZXJcIj5cbiAgICAgICAgICA8bWF0LWljb24gbWF0TGlzdEl0ZW1JY29uIHN2Z0ljb249XCJvbnRpbWl6ZTpkcmFnX2hhbmRsZVwiPjwvbWF0LWljb24+XG4gICAgICAgICAgPHNwYW4gbWF0TGlzdEl0ZW1MaW5lIGZ4RmxleD57eyAoY29sdW1uLnRpdGxlIHx8IGNvbHVtbi5hdHRyKSB8IG9UcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiY29sdW1uLnZpc2libGVcIiBzdmdJY29uPVwib250aW1pemU6dmlzaWJpbGl0eVwiIGNvbG9yPVwicHJpbWFyeVwiPjwvbWF0LWljb24+XG4gICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiIWNvbHVtbi52aXNpYmxlXCIgc3ZnSWNvbj1cIm9udGltaXplOnZpc2liaWxpdHlfb2ZmXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgPC9tYXQtbGlzdC1pdGVtPlxuICAgIDwvbWF0LWxpc3Q+XG4gIDwvZGl2PlxuPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG5cbjxtYXQtZGlhbG9nLWFjdGlvbnMgZnhMYXlvdXRBbGlnbj1cImVuZCBjZW50ZXJcIj5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LXN0cm9rZWQtYnV0dG9uIFttYXQtZGlhbG9nLWNsb3NlXT1cIm51bGxcIiBjbGFzcz1cIm8tYnV0dG9uLWRlZmF1bHQgY2FuY2VsXCIgY2FuY2VsPnt7ICdDQU5DRUwnIHwgb1RyYW5zbGF0ZSB9fTwvYnV0dG9uPlxuICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtc3Ryb2tlZC1idXR0b24gKGNsaWNrKT1cImNsb3NlRGlhbG9nKClcIiBjbGFzcz1cIm8tYnV0dG9uLXByaW1hcnlcIj57eyAnQUNDRVBUJyB8IG9UcmFuc2xhdGUgfX08L2J1dHRvbj5cbjwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuIl19
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS12aXNpYmxlLWNvbHVtbnMtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL2V4dGVuc2lvbnMvZGlhbG9nL3Zpc2libGUtY29sdW1ucy9vLXRhYmxlLXZpc2libGUtY29sdW1ucy1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvZXh0ZW5zaW9ucy9kaWFsb2cvdmlzaWJsZS1jb2x1bW5zL28tdGFibGUtdmlzaWJsZS1jb2x1bW5zLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEUsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBRVIsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7Ozs7OztBQXVCaEQsTUFBTSxPQUFPLG1DQUFtQztJQVc5QyxZQUNZLFFBQWtCLEVBQ3JCLFNBQTRELEVBQzFDLElBQVM7UUFGeEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNyQixjQUFTLEdBQVQsU0FBUyxDQUFtRDtRQVhyRSxZQUFPLEdBQW9DLEVBQUUsQ0FBQztRQUM5QyxjQUFTLEdBQVcsS0FBSyxDQUFDLGtCQUFrQixDQUFDO1FBSW5DLDZCQUF3QixHQUFhLEVBQUUsQ0FBQztRQUN4QyxzQkFBaUIsR0FBYSxFQUFFLENBQUM7UUFDakMseUJBQW9CLEdBQWEsRUFBRSxDQUFDO1FBTzVDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQWdCLGFBQW9DLENBQUMsQ0FBQztRQUM1RixJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFvQixpQkFBNEMsQ0FBQyxDQUFDO1FBQzdGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBb0IsaUJBQTRDLENBQUMsQ0FBQztRQUUzRyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzlCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUV4QixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBRXhFLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQWEsRUFBRSxFQUFFO2dCQUNuSixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztvQkFDaEIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO29CQUNmLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztvQkFDakIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO2lCQUN0QixDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7WUFDdEMsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLHFCQUFxQixFQUFFLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pILElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDNUUsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUM7U0FDNUQ7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFDLEdBQWtDO1FBQzlDLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BFLElBQUksR0FBRyxDQUFDLE9BQU8sSUFBSSxDQUFDLGVBQWUsSUFBSSxhQUFhLElBQUksY0FBYyxDQUFDLEVBQUU7WUFDdkUsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO1lBQ3BCLElBQUksZUFBZSxFQUFFO2dCQUNuQixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsZ0RBQWdELENBQUMsQ0FBQyxDQUFDO2FBQzVGO1lBQ0QsSUFBSSxhQUFhLEVBQUU7Z0JBQ2pCLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDLENBQUM7YUFDcEY7WUFDRCxJQUFJLGNBQWMsRUFBRTtnQkFDbEIsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLDRDQUE0QyxDQUFDLENBQUMsQ0FBQzthQUN4RjtZQUNELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsa0RBQWtELEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDM0csSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDM0QsSUFBSSxHQUFHLEVBQUU7b0JBQ1AsR0FBRyxDQUFDLGlCQUFpQixHQUFHLGVBQWUsQ0FBQztvQkFDeEMsR0FBRyxDQUFDLGlCQUFpQixHQUFHLGFBQWEsQ0FBQztvQkFDdEMsR0FBRyxDQUFDLG1CQUFtQixHQUFHLGNBQWMsQ0FBQztvQkFDekMsR0FBRyxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7b0JBQzNCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7aUJBQ3pCO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsR0FBRyxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7WUFDM0IsSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFO2dCQUNmLEdBQUcsQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7Z0JBQzlCLEdBQUcsQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7Z0JBQzlCLEdBQUcsQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUM7YUFDakM7U0FDRjtJQUNILENBQUM7SUFFRCxJQUFJLENBQUMsS0FBNEI7UUFDL0IsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELFdBQVc7UUFDVCxNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQzlELE1BQU0sY0FBYyxHQUFHLHFCQUFxQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN2RCxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hGLFNBQVMsQ0FBQztRQUVaLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDaEUsTUFBTSxlQUFlLEdBQUcsc0JBQXNCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3pELElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JGLFNBQVMsQ0FBQztRQUVaLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO1lBQ25CLGVBQWUsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDekMsWUFBWSxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDcEMsV0FBVyxFQUFFLGNBQWM7WUFDM0IsMEJBQTBCLEVBQUUsSUFBSSxDQUFDLDZCQUE2QixFQUFFO1lBQ2hFLFlBQVksRUFBRSxlQUFlO1NBQzlCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVPLGVBQWU7UUFDckIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRU8sNkJBQTZCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVPLHdCQUF3QjtRQUM5QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFTyx5QkFBeUI7UUFDL0IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsRixDQUFDOztnSUFySFUsbUNBQW1DLHNFQWNwQyxlQUFlO29IQWRkLG1DQUFtQyxnSkN0Q2hELHE0Q0EwQkE7MkZEWWEsbUNBQW1DO2tCQVYvQyxTQUFTOytCQUNFLGdDQUFnQyxpQkFHM0IsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDSix3Q0FBd0MsRUFBRSxNQUFNO3FCQUNqRDs7MEJBZ0JFLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0RyYWdEcm9wLCBtb3ZlSXRlbUluQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBJbmplY3QsXG4gIEluamVjdG9yLFxuICBUeXBlLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NlcnZpY2VzL2RpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IE9UcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMvdHJhbnNsYXRlL28tdHJhbnNsYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29kZXMgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlsL2NvZGVzJztcbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlsL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBPQ29sdW1uIH0gZnJvbSAnLi4vLi4vLi4vY29sdW1uL28tY29sdW1uLmNsYXNzJztcbmltcG9ydCB7IE9UYWJsZUJhc2UgfSBmcm9tICcuLi8uLi8uLi9vLXRhYmxlLWJhc2UuY2xhc3MnO1xuXG5leHBvcnQgdHlwZSBDb2x1bW5WaXNpYmlsaXR5Q29uZmlndXJhdGlvbiA9IHtcbiAgYXR0cjogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICB2aXNpYmxlOiBib29sZWFuO1xuICBkZWxldGVWYWx1ZUZpbHRlcj86IGJvb2xlYW47XG4gIGRlbGV0ZVNvcnRDb2x1bW1uPzogYm9vbGVhbjtcbiAgZGVsZXRlR3J1cGluZ0NvbHVtbj86IGJvb2xlYW47XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvLXRhYmxlLXZpc2libGUtY29sdW1ucy1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJ28tdGFibGUtdmlzaWJsZS1jb2x1bW5zLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydvLXRhYmxlLXZpc2libGUtY29sdW1ucy1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLm8tdGFibGUtdmlzaWJsZS1jb2x1bW5zLWRpYWxvZ10nOiAndHJ1ZSdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBPVGFibGVWaXNpYmxlQ29sdW1uc0RpYWxvZ0NvbXBvbmVudCB7XG5cbiAgY29sdW1uczogQ29sdW1uVmlzaWJpbGl0eUNvbmZpZ3VyYXRpb25bXSA9IFtdO1xuICByb3dIZWlnaHQ6IHN0cmluZyA9IENvZGVzLkRFRkFVTFRfUk9XX0hFSUdIVDtcbiAgcHJvdGVjdGVkIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2U7XG4gIHByb3RlY3RlZCBjZDogQ2hhbmdlRGV0ZWN0b3JSZWY7XG4gIHByb3RlY3RlZCB0cmFuc2xhdGVTZXJ2aWNlOiBPVHJhbnNsYXRlU2VydmljZTtcbiAgcHJvdGVjdGVkIGFjdGl2ZUNvbHVtblZhbHVlRmlsdGVyczogc3RyaW5nW10gPSBbXTtcbiAgcHJvdGVjdGVkIGFjdGl2ZVNvcnRDb2x1bW5zOiBzdHJpbmdbXSA9IFtdO1xuICBwcm90ZWN0ZWQgYWN0aXZlR3JvdXBCeUNvbHVtbnM6IHN0cmluZ1tdID0gW107XG4gIHByb3RlY3RlZCB0YWJsZTogT1RhYmxlQmFzZTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8T1RhYmxlVmlzaWJsZUNvbHVtbnNEaWFsb2dDb21wb25lbnQ+LFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBkYXRhOiBhbnlcbiAgKSB7XG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQ8RGlhbG9nU2VydmljZT4oRGlhbG9nU2VydmljZSBhcyBUeXBlPERpYWxvZ1NlcnZpY2U+KTtcbiAgICB0aGlzLmNkID0gdGhpcy5pbmplY3Rvci5nZXQ8Q2hhbmdlRGV0ZWN0b3JSZWY+KENoYW5nZURldGVjdG9yUmVmIGFzIFR5cGU8Q2hhbmdlRGV0ZWN0b3JSZWY+KTtcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldDxPVHJhbnNsYXRlU2VydmljZT4oT1RyYW5zbGF0ZVNlcnZpY2UgYXMgVHlwZTxPVHJhbnNsYXRlU2VydmljZT4pO1xuXG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKGRhdGEudGFibGUpKSB7XG4gICAgICB0aGlzLnRhYmxlID0gZGF0YS50YWJsZTtcblxuICAgICAgY29uc3QgdmlzaWJsZUNvbHVtbnMgPSBVdGlsLnBhcnNlQXJyYXkodGhpcy50YWJsZS52aXNpYmxlQ29sdW1ucywgdHJ1ZSk7XG5cbiAgICAgIHRoaXMudGFibGUub1RhYmxlT3B0aW9ucy5jb2x1bW5zLmZpbHRlcihvQ29sID0+IHZpc2libGVDb2x1bW5zLmluZGV4T2Yob0NvbC5hdHRyKSAhPT0gLTEgfHwgb0NvbC5kZWZpbml0aW9uICE9PSB1bmRlZmluZWQpLmZvckVhY2goKG9Db2w6IE9Db2x1bW4pID0+IHtcbiAgICAgICAgdGhpcy5jb2x1bW5zLnB1c2goe1xuICAgICAgICAgIGF0dHI6IG9Db2wuYXR0cixcbiAgICAgICAgICB0aXRsZTogb0NvbC50aXRsZSxcbiAgICAgICAgICB2aXNpYmxlOiBvQ29sLnZpc2libGVcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5yb3dIZWlnaHQgPSB0aGlzLnRhYmxlLnJvd0hlaWdodDtcbiAgICAgIHRoaXMuYWN0aXZlQ29sdW1uVmFsdWVGaWx0ZXJzID0gdGhpcy50YWJsZS5kYXRhU291cmNlLmdldENvbHVtblZhbHVlRmlsdGVycygpLm1hcChjb2xWYWx1ZUZpbHRlciA9PiBjb2xWYWx1ZUZpbHRlci5hdHRyKTtcbiAgICAgIHRoaXMuYWN0aXZlU29ydENvbHVtbnMgPSB0aGlzLnRhYmxlLnNvcnRDb2xBcnJheS5tYXAoY29sID0+IGNvbC5jb2x1bW5OYW1lKTtcbiAgICAgIHRoaXMuYWN0aXZlR3JvdXBCeUNvbHVtbnMgPSB0aGlzLnRhYmxlLmdyb3VwZWRDb2x1bW5zQXJyYXk7XG4gICAgfVxuICB9XG5cbiAgb25DbGlja0NvbHVtbihjb2w6IENvbHVtblZpc2liaWxpdHlDb25maWd1cmF0aW9uKTogdm9pZCB7XG4gICAgY29uc3QgYWN0aXZlQ29sRmlsdGVyID0gdGhpcy5hY3RpdmVDb2x1bW5WYWx1ZUZpbHRlcnMuaW5jbHVkZXMoY29sLmF0dHIpO1xuICAgIGNvbnN0IGFjdGl2ZVNvcnRpbmcgPSB0aGlzLmFjdGl2ZVNvcnRDb2x1bW5zLmluY2x1ZGVzKGNvbC5hdHRyKTtcbiAgICBjb25zdCBhY3RpdmVHcm91cGluZyA9IHRoaXMuYWN0aXZlR3JvdXBCeUNvbHVtbnMuaW5jbHVkZXMoY29sLmF0dHIpO1xuICAgIGlmIChjb2wudmlzaWJsZSAmJiAoYWN0aXZlQ29sRmlsdGVyIHx8IGFjdGl2ZVNvcnRpbmcgfHwgYWN0aXZlR3JvdXBpbmcpKSB7XG4gICAgICBjb25zdCB3YXJuQXJncyA9IFtdO1xuICAgICAgaWYgKGFjdGl2ZUNvbEZpbHRlcikge1xuICAgICAgICB3YXJuQXJncy5wdXNoKHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQoJ1RBQkxFLlZJU0lCTEVfQ09MVU1OU19ESUFMT0cuVkFMVUVfRklMVEVSX1dBUk4nKSk7XG4gICAgICB9XG4gICAgICBpZiAoYWN0aXZlU29ydGluZykge1xuICAgICAgICB3YXJuQXJncy5wdXNoKHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQoJ1RBQkxFLlZJU0lCTEVfQ09MVU1OU19ESUFMT0cuU09SVF9XQVJOJykpO1xuICAgICAgfVxuICAgICAgaWYgKGFjdGl2ZUdyb3VwaW5nKSB7XG4gICAgICAgIHdhcm5BcmdzLnB1c2godGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldCgnVEFCTEUuVklTSUJMRV9DT0xVTU5TX0RJQUxPRy5HUk9VUElOR19XQVJOJykpO1xuICAgICAgfVxuICAgICAgY29uc3QgZGlhbG9nVGV4dCA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQoJ1RBQkxFLlZJU0lCTEVfQ09MVU1OU19ESUFMT0cuSElERV9DT0xVTU5fV0FSTklORycsIHdhcm5BcmdzKTtcbiAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5jb25maXJtKCdDT05GSVJNJywgZGlhbG9nVGV4dCkudGhlbihyZXMgPT4ge1xuICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgY29sLmRlbGV0ZVZhbHVlRmlsdGVyID0gYWN0aXZlQ29sRmlsdGVyO1xuICAgICAgICAgIGNvbC5kZWxldGVTb3J0Q29sdW1tbiA9IGFjdGl2ZVNvcnRpbmc7XG4gICAgICAgICAgY29sLmRlbGV0ZUdydXBpbmdDb2x1bW4gPSBhY3RpdmVHcm91cGluZztcbiAgICAgICAgICBjb2wudmlzaWJsZSA9ICFjb2wudmlzaWJsZTtcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbC52aXNpYmxlID0gIWNvbC52aXNpYmxlO1xuICAgICAgaWYgKGNvbC52aXNpYmxlKSB7XG4gICAgICAgIGNvbC5kZWxldGVWYWx1ZUZpbHRlciA9IGZhbHNlO1xuICAgICAgICBjb2wuZGVsZXRlU29ydENvbHVtbW4gPSBmYWxzZTtcbiAgICAgICAgY29sLmRlbGV0ZUdydXBpbmdDb2x1bW4gPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxzdHJpbmdbXT4pIHtcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5jb2x1bW5zLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICB9XG5cbiAgY2xvc2VEaWFsb2coKSB7XG4gICAgY29uc3QgY29sdW1uU29ydGluZ1RvUmVtb3ZlID0gdGhpcy5nZXRDb2x1bW5Tb3J0aW5nVG9SZW1vdmUoKTtcbiAgICBjb25zdCBuZXdTb3J0Q29sdW1ucyA9IGNvbHVtblNvcnRpbmdUb1JlbW92ZS5sZW5ndGggPiAwID9cbiAgICAgIHRoaXMudGFibGUuc29ydENvbEFycmF5LmZpbHRlcihjb2wgPT4gIWNvbHVtblNvcnRpbmdUb1JlbW92ZS5pbmNsdWRlcyhjb2wuY29sdW1uTmFtZSkpIDpcbiAgICAgIHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IGNvbHVtbkdyb3VwaW5nVG9SZW1vdmUgPSB0aGlzLmdldENvbHVtbkdyb3VwaW5nVG9SZW1vdmUoKTtcbiAgICBjb25zdCBuZXdHcm91cENvbHVtbnMgPSBjb2x1bW5Hcm91cGluZ1RvUmVtb3ZlLmxlbmd0aCA+IDAgP1xuICAgICAgdGhpcy50YWJsZS5ncm91cGVkQ29sdW1uc0FycmF5LmZpbHRlcihjb2wgPT4gIWNvbHVtbkdyb3VwaW5nVG9SZW1vdmUuaW5jbHVkZXMoY29sKSkgOlxuICAgICAgdW5kZWZpbmVkO1xuXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2Uoe1xuICAgICAgdmlzaWJsZUNvbEFycmF5OiB0aGlzLmdldFZpc2libGVDb2x1bW5zKCksXG4gICAgICBjb2x1bW5zT3JkZXI6IHRoaXMuZ2V0Q29sdW1uc09yZGVyKCksXG4gICAgICBzb3J0Q29sdW1uczogbmV3U29ydENvbHVtbnMsXG4gICAgICBjb2x1bW5WYWx1ZUZpbHRlcnNUb1JlbW92ZTogdGhpcy5nZXRDb2x1bW5WYWx1ZUZpbHRlcnNUb1JlbW92ZSgpLFxuICAgICAgZ3JvdXBDb2x1bW5zOiBuZXdHcm91cENvbHVtbnNcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VmlzaWJsZUNvbHVtbnMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbnMuZmlsdGVyKGNvbCA9PiBjb2wudmlzaWJsZSkubWFwKGNvbCA9PiBjb2wuYXR0cik7XG4gIH1cblxuICBwcml2YXRlIGdldENvbHVtbnNPcmRlcigpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1ucy5tYXAoY29sID0+IGNvbC5hdHRyKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29sdW1uVmFsdWVGaWx0ZXJzVG9SZW1vdmUoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbnMuZmlsdGVyKGNvbCA9PiBjb2wuZGVsZXRlVmFsdWVGaWx0ZXIpLm1hcChjb2wgPT4gY29sLmF0dHIpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb2x1bW5Tb3J0aW5nVG9SZW1vdmUoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbnMuZmlsdGVyKGNvbCA9PiBjb2wuZGVsZXRlU29ydENvbHVtbW4pLm1hcChjb2wgPT4gY29sLmF0dHIpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb2x1bW5Hcm91cGluZ1RvUmVtb3ZlKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5zLmZpbHRlcihjb2wgPT4gY29sLmRlbGV0ZUdydXBpbmdDb2x1bW4pLm1hcChjb2wgPT4gY29sLmF0dHIpO1xuICB9XG59XG4iLCI8c3BhbiBtYXQtZGlhbG9nLXRpdGxlPnt7ICdUQUJMRS5CVVRUT05TLkNPTFZJUycgfCBvVHJhbnNsYXRlIH19PC9zcGFuPlxuXG5cbjxtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gIDxkaXYgbWF0LXN1YmhlYWRlcj57eydUQUJMRS5WSVNJQkxFX0NPTFVNTlMuREVTQ1JJUFRJT04nIHwgb1RyYW5zbGF0ZX19PC9kaXY+XG5cbiAgPGRpdiBbbmdDbGFzc109XCJyb3dIZWlnaHRcIj5cbiAgICA8bWF0LWxpc3QgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIj5cbiAgICAgIDxtYXQtbGlzdC1pdGVtICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uc1wiIGNka0RyYWcgKGNsaWNrKT1cIm9uQ2xpY2tDb2x1bW4oY29sdW1uKVwiIFtuZ0NsYXNzXT1cInsnY29sdW1uLWhpZGRlbic6IWNvbHVtbi52aXNpYmxlfVwiXG4gICAgICAgIGNsYXNzPVwiby1kcmFnLWxpc3QtaXRlbS1ib3hcIj5cbiAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4RmxleCBmeExheW91dEFsaWduPVwic3RyZXRjaCBjZW50ZXJcIj5cbiAgICAgICAgICA8bWF0LWljb24gbWF0TGlzdEl0ZW1JY29uIHN2Z0ljb249XCJvbnRpbWl6ZTpkcmFnX2hhbmRsZVwiPjwvbWF0LWljb24+XG4gICAgICAgICAgPHNwYW4gbWF0TGlzdEl0ZW1MaW5lIGZ4RmxleD57eyAoY29sdW1uLnRpdGxlIHx8IGNvbHVtbi5hdHRyKSB8IG9UcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiY29sdW1uLnZpc2libGVcIiBzdmdJY29uPVwib250aW1pemU6dmlzaWJpbGl0eVwiIGNvbG9yPVwicHJpbWFyeVwiPjwvbWF0LWljb24+XG4gICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiIWNvbHVtbi52aXNpYmxlXCIgc3ZnSWNvbj1cIm9udGltaXplOnZpc2liaWxpdHlfb2ZmXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgPC9tYXQtbGlzdC1pdGVtPlxuICAgIDwvbWF0LWxpc3Q+XG4gIDwvZGl2PlxuPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG5cbjxtYXQtZGlhbG9nLWFjdGlvbnMgZnhMYXlvdXRBbGlnbj1cImVuZCBjZW50ZXJcIj5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LXN0cm9rZWQtYnV0dG9uIFttYXQtZGlhbG9nLWNsb3NlXT1cIm51bGxcIiBjbGFzcz1cIm8tYnV0dG9uLWRlZmF1bHQgY2FuY2VsXCIgY2FuY2VsPnt7ICdDQU5DRUwnIHwgb1RyYW5zbGF0ZSB9fTwvYnV0dG9uPlxuICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtc3Ryb2tlZC1idXR0b24gKGNsaWNrKT1cImNsb3NlRGlhbG9nKClcIiBjbGFzcz1cIm8tYnV0dG9uLXByaW1hcnlcIj57eyAnQUNDRVBUJyB8IG9UcmFuc2xhdGUgfX08L2J1dHRvbj5cbjwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import { ChangeDetectionStrategy, Component,
|
|
2
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Inject, Injector } from '@angular/core';
|
|
3
3
|
import { UntypedFormControl, Validators } from '@angular/forms';
|
|
4
4
|
import { BooleanInputConverter } from '../../../../../decorators/input-converter';
|
|
5
5
|
import { SnackBarService } from '../../../../../services/snackbar.service';
|
|
@@ -20,10 +20,9 @@ export const DEFAULT_OUTPUTS_O_TABLE_INSERTABLE_ROW = [
|
|
|
20
20
|
'onPostInsertRecord'
|
|
21
21
|
];
|
|
22
22
|
export class OTableInsertableRowComponent {
|
|
23
|
-
constructor(injector, table
|
|
23
|
+
constructor(injector, table) {
|
|
24
24
|
this.injector = injector;
|
|
25
25
|
this.table = table;
|
|
26
|
-
this.resolver = resolver;
|
|
27
26
|
this.columnsArray = [];
|
|
28
27
|
this.requiredColumnsArray = [];
|
|
29
28
|
this.onPostInsertRecord = new EventEmitter();
|
|
@@ -62,7 +61,7 @@ export class OTableInsertableRowComponent {
|
|
|
62
61
|
.filter((col) => this.isColumnInsertable(col)).forEach(col => {
|
|
63
62
|
const columnEditorType = col.editor ? col.editor.type : col.type;
|
|
64
63
|
if (col.definition) {
|
|
65
|
-
const editor = col.definition.buildCellEditor(columnEditorType,
|
|
64
|
+
const editor = col.definition.buildCellEditor(columnEditorType, col.definition.container, col.definition, false);
|
|
66
65
|
this.columnEditors[col.attr] = editor;
|
|
67
66
|
let disabledCol = !this.enabled;
|
|
68
67
|
if (!disabledCol) {
|
|
@@ -192,7 +191,7 @@ export class OTableInsertableRowComponent {
|
|
|
192
191
|
}
|
|
193
192
|
OTableInsertableRowComponent.AVAILABLE_ROW_POSITIONS = ['first', 'last'];
|
|
194
193
|
OTableInsertableRowComponent.DEFAULT_ROW_POSITION = 'last';
|
|
195
|
-
OTableInsertableRowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OTableInsertableRowComponent, deps: [{ token: i0.Injector }, { token: forwardRef(() => OTableComponent) }
|
|
194
|
+
OTableInsertableRowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OTableInsertableRowComponent, deps: [{ token: i0.Injector }, { token: forwardRef(() => OTableComponent) }], target: i0.ɵɵFactoryTarget.Component });
|
|
196
195
|
OTableInsertableRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: OTableInsertableRowComponent, selector: "o-table-insertable-row", inputs: { columns: "columns", requiredColumns: ["required-columns", "requiredColumns"], position: "position", showPlaceHolder: ["show-placeholder", "showPlaceHolder"], includeParentKeys: ["include-parent-keys", "includeParentKeys"] }, outputs: { onPostInsertRecord: "onPostInsertRecord" }, ngImport: i0, template: ' ', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
197
196
|
__decorate([
|
|
198
197
|
BooleanInputConverter(),
|
|
@@ -214,5 +213,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
214
213
|
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.OTableComponent, decorators: [{
|
|
215
214
|
type: Inject,
|
|
216
215
|
args: [forwardRef(() => OTableComponent)]
|
|
217
|
-
}] }
|
|
218
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1pbnNlcnRhYmxlLXJvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9leHRlbnNpb25zL2hlYWRlci90YWJsZS1pbnNlcnRhYmxlLXJvdy9vLXRhYmxlLWluc2VydGFibGUtcm93LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSx3QkFBd0IsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDakosT0FBTyxFQUFFLGtCQUFrQixFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUUxRixPQUFPLEVBQWMsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFFN0QsTUFBTSxDQUFDLE1BQU0scUNBQXFDLEdBQUc7SUFFbkQsU0FBUztJQUNULG9DQUFvQztJQUVwQyxVQUFVO0lBQ1YsbUNBQW1DO0lBQ25DLHdDQUF3QztDQUN6QyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sc0NBQXNDLEdBQUc7SUFDcEQsb0JBQW9CO0NBQ3JCLENBQUM7QUFVRixNQUFNLE9BQU8sNEJBQTRCO0lBNEJ2QyxZQUNZLFFBQWtCLEVBQ3lCLEtBQXNCLEVB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TUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNDLE9BQU8sT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvRCxDQUFDOztBQTdNYSxvREFBdUIsR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUM1QyxpREFBb0IsR0FBRyxNQUFNLENBQUM7eUhBSGpDLDRCQUE0QiwwQ0E4QjdCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUM7NkdBOUJoQyw0QkFBNEIsZ1dBTjdCLEdBQUc7QUF1QmI7SUFBQyxxQkFBcUIsRUFBRTs7cUVBQ1M7QUFDakM7SUFBQyxxQkFBcUIsRUFBRTs7dUVBQ1U7MkZBcEJ2Qiw0QkFBNEI7a0JBUnhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsUUFBUSxFQUFFLEdBQUc7b0JBQ2IsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE1BQU0sRUFBRSxxQ0FBcUM7b0JBQzdDLE9BQU8sRUFBRSxzQ0FBc0M7aUJBQ2hEOzswQkFnQ0ksTUFBTTsyQkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDO21GQVozQyxlQUFlLE1BRWYsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIEluamVjdCwgSW5qZWN0b3IsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgQm9vbGVhbklucHV0Q29udmVydGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZGVjb3JhdG9ycy9pbnB1dC1jb252ZXJ0ZXInO1xuaW1wb3J0IHsgU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMvc25hY2tiYXIuc2VydmljZSc7XG5pbXBvcnQgeyBPVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0ZS9vLXRyYW5zbGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IE9QZXJtaXNzaW9ucyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3R5cGVzL28tcGVybWlzc2lvbnMudHlwZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBPYnNlcnZhYmxlV3JhcHBlciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3V0aWwvYXN5bmMnO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3V0aWwvdXRpbCc7XG5pbXBvcnQgeyBPQmFzZVRhYmxlQ2VsbEVkaXRvciB9IGZyb20gJy4uLy4uLy4uL2NvbHVtbi9jZWxsLWVkaXRvci9vLWJhc2UtdGFibGUtY2VsbC1lZGl0b3IuY2xhc3MnO1xuaW1wb3J0IHR5cGUgeyBPQ29sdW1uIH0gZnJvbSAnLi4vLi4vLi4vY29sdW1uL28tY29sdW1uLmNsYXNzJztcbmltcG9ydCB7IE9UYWJsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL28tdGFibGUuY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfSU5QVVRTX09fVEFCTEVfSU5TRVJUQUJMRV9ST1cgPSBbXG4gIC8vIGNvbHVtbnMgW3N0cmluZ106IGNvbHVtbnMgdGhhdCBjYW4gYmUgaW5zZXJ0ZWQsIHNlcGFyYXRlZCBieSAnOycuIERlZmF1bHQ6IGFsbCB2aXNpYmxlIGNvbHVtbnMuXG4gICdjb2x1bW5zJyxcbiAgJ3JlcXVpcmVkQ29sdW1ucyA6IHJlcXVpcmVkLWNvbHVtbnMnLFxuICAvLyBwb3NpdGlvbiBbZmlyc3QgfGxhc3QgXSBkZWZhdWx0OiBsYXN0XG4gICdwb3NpdGlvbicsXG4gICdzaG93UGxhY2VIb2xkZXI6IHNob3ctcGxhY2Vob2xkZXInLFxuICAnaW5jbHVkZVBhcmVudEtleXM6IGluY2x1ZGUtcGFyZW50LWtleXMnXG5dO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9PVVRQVVRTX09fVEFCTEVfSU5TRVJUQUJMRV9ST1cgPSBbXG4gICdvblBvc3RJbnNlcnRSZWNvcmQnXG5dO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvLXRhYmxlLWluc2VydGFibGUtcm93JyxcbiAgdGVtcGxhdGU6ICcgJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGlucHV0czogREVGQVVMVF9JTlBVVFNfT19UQUJMRV9JTlNFUlRBQkxFX1JPVyxcbiAgb3V0cHV0czogREVGQVVMVF9PVVRQVVRTX09fVEFCTEVfSU5TRVJUQUJMRV9ST1dcbn0pXG5cbmV4cG9ydCBjbGFzcyBPVGFibGVJbnNlcnRhYmxlUm93Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBwdWJsaWMgc3RhdGljIEFWQUlMQUJMRV9ST1dfUE9TSVRJT05TID0gWydmaXJzdCcsICdsYXN0J107XG4gIHB1YmxpYyBzdGF0aWMgREVGQVVMVF9ST1dfUE9TSVRJT04gPSAnbGFzdCc7XG5cbiAgcHJvdGVjdGVkIGNvbHVtbnM6IHN0cmluZztcbiAgcHJvdGVjdGVkIGNvbHVtbnNBcnJheTogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXG4gIHByb3RlY3RlZCByZXF1aXJlZENvbHVtbnM6IHN0cmluZztcbiAgcHJvdGVjdGVkIHJlcXVpcmVkQ29sdW1uc0FycmF5OiBBcnJheTxzdHJpbmc+ID0gW107XG5cbiAgb25Qb3N0SW5zZXJ0UmVjb3JkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgY29sdW1uRWRpdG9yczogYW55ID0ge307XG4gIHRyV3JhcHBlcjogRXZlbnRUYXJnZXQ7XG5cbiAgcHJvdGVjdGVkIHBvc2l0aW9uOiBzdHJpbmcgPSBPVGFibGVJbnNlcnRhYmxlUm93Q29tcG9uZW50LkRFRkFVTFRfUk9XX1BPU0lUSU9OO1xuXG4gIEBCb29sZWFuSW5wdXRDb252ZXJ0ZXIoKVxuICBzaG93UGxhY2VIb2xkZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQEJvb2xlYW5JbnB1dENvbnZlcnRlcigpXG4gIGluY2x1ZGVQYXJlbnRLZXlzOiBib29sZWFuID0gdHJ1ZTtcblxuICBlbmFibGVkID0gdHJ1ZTtcbiAgcm93RGF0YSA9IHt9O1xuICBwcm90ZWN0ZWQgY29udHJvbHM6IGFueSA9IHt9O1xuICB0cmFuc2xhdGVTZXJ2aWNlOiBPVHJhbnNsYXRlU2VydmljZTtcbiAgc25hY2tCYXJTZXJ2aWNlOiBTbmFja0JhclNlcnZpY2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBASW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gT1RhYmxlQ29tcG9uZW50KSkgcHJvdGVjdGVkIHRhYmxlOiBPVGFibGVDb21wb25lbnQsXG4gICAgcHJvdGVjdGVkIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcbiAgKSB7XG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoT1RyYW5zbGF0ZVNlcnZpY2UpO1xuICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoU25hY2tCYXJTZXJ2aWNlKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY29sdW1uc0FycmF5ID0gVXRpbC5wYXJzZUFycmF5KHRoaXMuY29sdW1ucywgdHJ1ZSk7XG4gICAgaWYgKHRoaXMuY29sdW1uc0FycmF5Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5jb2x1bW5zQXJyYXkgPSB0aGlzLnRhYmxlLm9UYWJsZU9wdGlvbnMudmlzaWJsZUNvbHVtbnM7XG4gICAgfVxuICAgIHRoaXMucmVxdWlyZWRDb2x1bW5zQXJyYXkgPSBVdGlsLnBhcnNlQXJyYXkodGhpcy5yZXF1aXJlZENvbHVtbnMsIHRydWUpO1xuICAgIGlmIChPVGFibGVJbnNlcnRhYmxlUm93Q29tcG9uZW50LkFWQUlMQUJMRV9ST1dfUE9TSVRJT05TLmluZGV4T2YoKHRoaXMucG9zaXRpb24gfHwgJycpLnRvTG93ZXJDYXNlKCkpID09PSAtMSkge1xuICAgICAgdGhpcy5wb3NpdGlvbiA9IE9UYWJsZUluc2VydGFibGVSb3dDb21wb25lbnQuREVGQVVMVF9ST1dfUE9TSVRJT047XG4gICAgfVxuICAgIHRoaXMudGFibGUuc2V0T1RhYmxlSW5zZXJ0YWJsZVJvdyh0aGlzKTtcbiAgfVxuXG4gIGlzRmlyc3RSb3coKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucG9zaXRpb24gPT09ICdmaXJzdCc7XG4gIH1cblxuICBpc0NvbHVtbkluc2VydGFibGUoY29sdW1uOiBPQ29sdW1uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLmNvbHVtbnNBcnJheS5pbmRleE9mKGNvbHVtbi5hdHRyKSAhPT0gLTEpO1xuICB9XG5cbiAgaXNDb2x1bW5SZXF1aXJlZChjb2x1bW46IE9Db2x1bW4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHRoaXMucmVxdWlyZWRDb2x1bW5zQXJyYXkuaW5kZXhPZihjb2x1bW4uYXR0cikgIT09IC0xKTtcbiAgfVxuXG4gIGluaXRpYWxpemVFZGl0b3JzKCk6IHZvaWQge1xuICAgIHRoaXMudGFibGUub1RhYmxlT3B0aW9ucy5jb2x1bW5zXG4gICAgICAuZmlsdGVyKChjb2wpID0+IHRoaXMuaXNDb2x1bW5JbnNlcnRhYmxlKGNvbCkpLmZvckVhY2goY29sID0+IHtcbiAgICAgICAgY29uc3QgY29sdW1uRWRpdG9yVHlwZSA9IGNvbC5lZGl0b3IgPyBjb2wuZWRpdG9yLnR5cGUgOiBjb2wudHlwZTtcbiAgICAgICAgaWYgKGNvbC5kZWZpbml0aW9uKSB7XG4gICAgICAgICAgY29uc3QgZWRpdG9yOiBPQmFzZVRhYmxlQ2VsbEVkaXRvciA9IGNvbC5kZWZpbml0aW9uLmJ1aWxkQ2VsbEVkaXRvcihjb2x1bW5FZGl0b3JUeXBlLCB0aGlzLnJlc29sdmVyLCBjb2wuZGVmaW5pdGlvbi5jb250YWluZXIsIGNvbC5kZWZpbml0aW9uLCBmYWxzZSk7XG4gICAgICAgICAgdGhpcy5jb2x1bW5FZGl0b3JzW2NvbC5hdHRyXSA9IGVkaXRvcjtcbiAgICAgICAgICBsZXQgZGlzYWJsZWRDb2wgPSAhdGhpcy5lbmFibGVkO1xuICAgICAgICAgIGlmICghZGlzYWJsZWRDb2wpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbHVtblBlcm1pc3Npb25zOiBPUGVybWlzc2lvbnMgPSB0aGlzLnRhYmxlLmdldE9Db2x1bW5QZXJtaXNzaW9ucyhjb2wuYXR0cik7XG4gICAgICAgICAgICBkaXNhYmxlZENvbCA9IGNvbHVtblBlcm1pc3Npb25zLmVuYWJsZWQgPT09IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlZGl0b3IuZW5hYmxlZCA9ICFkaXNhYmxlZENvbDtcbiAgICAgICAgICBlZGl0b3Iuc2hvd1BsYWNlSG9sZGVyID0gdGhpcy5zaG93UGxhY2VIb2xkZXIgfHwgZWRpdG9yLnNob3dQbGFjZUhvbGRlcjtcbiAgICAgICAgICBlZGl0b3IudGFibGUgPSB0aGlzLnRhYmxlO1xuICAgICAgICAgIGVkaXRvci50YWJsZUNvbHVtbiA9IGNvbC5lZGl0b3IgPyBjb2wuZWRpdG9yLnRhYmxlQ29sdW1uIDogY29sLmRlZmluaXRpb247XG4gICAgICAgICAgZWRpdG9yLm9yZXF1aXJlZCA9IHRoaXMuaXNDb2x1bW5SZXF1aXJlZChjb2wpO1xuICAgICAgICAgIGVkaXRvci5mb3JtQ29udHJvbCA9IHRoaXMuZ2V0Q29udHJvbChjb2wsIGRpc2FibGVkQ29sKTtcbiAgICAgICAgICBlZGl0b3IuZm9ybUdyb3VwLmFkZENvbnRyb2woZWRpdG9yLmNlbGxFZGl0b3JJZCwgZWRpdG9yLmZvcm1Db250cm9sKTtcbiAgICAgICAgICBlZGl0b3IuY29udHJvbEFyZ3MgPSB7IHNpbGVudDogdHJ1ZSB9O1xuICAgICAgICAgIGVkaXRvci5yb3dEYXRhID0gdGhpcy5yb3dEYXRhO1xuICAgICAgICAgIGVkaXRvci5zdGFydEVkaXRpb24odGhpcy5yb3dEYXRhKTtcbiAgICAgICAgICBlZGl0b3IuZm9ybUNvbnRyb2wubWFya0FzVW50b3VjaGVkKCk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gIH1cblxuICB1c2VDZWxsRWRpdG9yKGNvbHVtbjogT0NvbHVtbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzQ29sdW1uSW5zZXJ0YWJsZShjb2x1bW4pICYmIFV0aWwuaXNEZWZpbmVkKHRoaXMuY29sdW1uRWRpdG9yc1tjb2x1bW4uYXR0cl0pO1xuICB9XG5cbiAgZ2V0Q29udHJvbChjb2x1bW46IE9Db2x1bW4sIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2UpOiBVbnR5cGVkRm9ybUNvbnRyb2wge1xuICAgIGlmICghdGhpcy5jb250cm9sc1tjb2x1bW4uYXR0cl0pIHtcbiAgICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSB0aGlzLnJlc29sdmVWYWxpZGF0b3JzKGNvbHVtbik7XG4gICAgICBjb25zdCBjZmcgPSB7XG4gICAgICAgIHZhbHVlOiB1bmRlZmluZWQsXG4gICAgICAgIGRpc2FibGVkOiBkaXNhYmxlZFxuICAgICAgfTtcbiAgICAgIHRoaXMuY29udHJvbHNbY29sdW1uLmF0dHJdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChjZmcsIHZhbGlkYXRvcnMpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jb250cm9sc1tjb2x1bW4uYXR0cl07XG4gIH1cblxuICByZXNvbHZlVmFsaWRhdG9ycyhjb2x1bW46IE9Db2x1bW4pOiBWYWxpZGF0b3JGbltdIHtcbiAgICBjb25zdCB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdID0gW107XG4gICAgaWYgKGNvbHVtbi5kZWZpbml0aW9uICYmIGNvbHVtbi5kZWZpbml0aW9uLmFuZ3VsYXJWYWxpZGF0b3JzRm4pIHtcbiAgICAgIGNvbHVtbi5kZWZpbml0aW9uLmFuZ3VsYXJWYWxpZGF0b3JzRm4uZm9yRWFjaCgoZm46IFZhbGlkYXRvckZuKSA9PiB7XG4gICAgICAgIHZhbGlkYXRvcnMucHVzaChmbik7XG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNDb2x1bW5SZXF1aXJlZChjb2x1bW4pKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgfVxuICAgIHJldHVybiB2YWxpZGF0b3JzO1xuICB9XG5cbiAgZ2V0UGxhY2Vob2xkZXIoY29sdW1uOiBPQ29sdW1uKTogc3RyaW5nIHtcbiAgICBsZXQgc2hvd1BsYWNlSG9sZGVyID0gdGhpcy5zaG93UGxhY2VIb2xkZXI7XG4gICAgY29uc3QgY2VsbEVkaXRvciA9IHRoaXMuY29sdW1uRWRpdG9yc1tjb2x1bW4uYXR0cl07XG4gICAgaWYgKGNlbGxFZGl0b3IpIHtcbiAgICAgIHNob3dQbGFjZUhvbGRlciA9IGNlbGxFZGl0b3Iuc2hvd1BsYWNlSG9sZGVyO1xuICAgIH0gZWxzZSBpZiAoY29sdW1uLmRlZmluaXRpb24pIHtcbiAgICAgIHNob3dQbGFjZUhvbGRlciA9IHNob3dQbGFjZUhvbGRlciB8fCBjb2x1bW4uZGVmaW5pdGlvbi5zaG93UGxhY2VIb2xkZXI7XG4gICAgfVxuICAgIHJldHVybiBzaG93UGxhY2VIb2xkZXIgPyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KGNvbHVtbi50aXRsZSkgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBoYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LmtleUNvZGUgIT09IDEzKSB7XG4gICAgICAvLyBub3QgaW50cm9cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy50cldyYXBwZXIgPSBldmVudC5jdXJyZW50VGFyZ2V0O1xuXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmluc2VydFJlY29yZCgpO1xuICB9XG5cbiAgaW5zZXJ0UmVjb3JkKCkge1xuICAgIGlmICghdGhpcy52YWxpZGF0ZUZpZWxkcygpKSB7XG4gICAgICAvLyB0aGlzLnRhYmxlLnNob3dEaWFsb2dFcnJvcignVEFCTEUuUk9XX1ZBTElEQVRJT05fRVJST1InKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdmFsdWVzID0gdGhpcy5nZXRBdHRyaWJ1dGVzVmFsdWVzVG9JbnNlcnQoKTtcbiAgICBjb25zdCBpbnNlcnRPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLnRhYmxlLmluc2VydFJlY29yZCh2YWx1ZXMpO1xuICAgIGlmIChpbnNlcnRPYnNlcnZhYmxlKSB7XG4gICAgICBpbnNlcnRPYnNlcnZhYmxlLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICB0aGlzLm9uSW5zZXJ0U3VjY2VzcyhyZXMpO1xuICAgICAgfSwgZXJyb3IgPT4ge1xuICAgICAgICB0aGlzLnRhYmxlLnNob3dEaWFsb2dFcnJvcihlcnJvciwgJ01FU1NBR0VTLkVSUk9SX0lOU0VSVCcpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHZhbGlkYXRlRmllbGRzKCk6IGJvb2xlYW4ge1xuICAgIGxldCB2YWxpZCA9IHRydWU7XG4gICAgLy8gY29sdW1ucyB3aXRoIG5vIGVkaXRvciBkZWZpbmVkXG4gICAgT2JqZWN0LmtleXModGhpcy5jb250cm9scykuZm9yRWFjaCgoY29udHJvbEtleSkgPT4ge1xuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuY29udHJvbHNbY29udHJvbEtleV07XG4gICAgICBjb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgIHZhbGlkID0gdmFsaWQgJiYgY29udHJvbC52YWxpZDtcbiAgICB9KTtcbiAgICByZXR1cm4gdmFsaWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0QXR0cmlidXRlc1ZhbHVlc1RvSW5zZXJ0KCk6IG9iamVjdCB7XG4gICAgbGV0IGF0dHJWYWx1ZXMgPSB7fTtcbiAgICBpZiAodGhpcy5pbmNsdWRlUGFyZW50S2V5cykge1xuICAgICAgYXR0clZhbHVlcyA9IHRoaXMudGFibGUuZ2V0UGFyZW50S2V5c1ZhbHVlcygpO1xuICAgIH1cbiAgICBPYmplY3Qua2V5cyh0aGlzLmNvbnRyb2xzKS5mb3JFYWNoKChjb250cm9sS2V5KSA9PiB7XG4gICAgICBhdHRyVmFsdWVzW2NvbnRyb2xLZXldID0gdGhpcy5jb250cm9sc1tjb250cm9sS2V5XS52YWx1ZTtcbiAgICB9KTtcbiAgICByZXR1cm4gYXR0clZhbHVlcztcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkluc2VydFN1Y2Nlc3MocmVzOiBhbnkpIHtcbiAgICBPYnNlcnZhYmxlV3JhcHBlci5jYWxsRW1pdCh0aGlzLm9uUG9zdEluc2VydFJlY29yZCwgcmVzKTtcbiAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKCdNRVNTQUdFUy5JTlNFUlRFRCcsIHsgaWNvbjogJ2NoZWNrX2NpcmNsZScgfSk7XG4gICAgdGhpcy5jbGVhbkZpZWxkcygpO1xuXG4gICAgaWYgKHRoaXMudGFibGUuZGFvVGFibGUudXNpbmdTdGF0aWNEYXRhKSB7XG4gICAgICB0aGlzLnRhYmxlLnNldERhdGFBcnJheShyZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRhYmxlLnJlbG9hZERhdGEoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY2xlYW5GaWVsZHMoKSB7XG4gICAgLy8gY29sdW1ucyB3aXRoIG5vIGVkaXRvciBkZWZpbmVkXG4gICAgY29uc3QgY29udHJvbEtleXMgPSBPYmplY3Qua2V5cyh0aGlzLmNvbnRyb2xzKTtcbiAgICBjb250cm9sS2V5cy5mb3JFYWNoKChjb250cm9sS2V5KSA9PiB7XG4gICAgICB0aGlzLmNvbnRyb2xzW2NvbnRyb2xLZXldLnNldFZhbHVlKHZvaWQgMCk7XG4gICAgfSk7XG4gICAgY29uc3QgZmlyc3RJbnB1dEVsID0gKHRoaXMudHJXcmFwcGVyIGFzIGFueSkucXVlcnlTZWxlY3RvcignaW5wdXQnKTtcbiAgICBpZiAoZmlyc3RJbnB1dEVsKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgZmlyc3RJbnB1dEVsLmZvY3VzKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBjb2x1bW5IYXNFcnJvcihjb2x1bW46IE9Db2x1bW4sIGVycm9yOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5jb250cm9sc1tjb2x1bW4uYXR0cl07XG4gICAgcmV0dXJuIGNvbnRyb2wgJiYgY29udHJvbC50b3VjaGVkICYmIGNvbnRyb2wuaGFzRXJyb3IoZXJyb3IpO1xuICB9XG5cbn1cbiJdfQ==
|
|
216
|
+
}] }]; }, propDecorators: { showPlaceHolder: [], includeParentKeys: [] } });
|
|
217
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1pbnNlcnRhYmxlLXJvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9leHRlbnNpb25zL2hlYWRlci90YWJsZS1pbnNlcnRhYmxlLXJvdy9vLXRhYmxlLWluc2VydGFibGUtcm93LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDdkgsT0FBTyxFQUFFLGtCQUFrQixFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUUxRixPQUFPLEVBQWMsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFFN0QsTUFBTSxDQUFDLE1BQU0scUNBQXFDLEdBQUc7SUFFbkQsU0FBUztJQUNULG9DQUFvQztJQUVwQyxVQUFVO0lBQ1YsbUNBQW1DO0lBQ25DLHdDQUF3QztDQUN6QyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sc0NBQXNDLEdBQUc7SUFDcEQsb0JBQW9CO0NBQ3JCLENBQUM7QUFVRixNQUFNLE9BQU8sNEJBQTRCO0lBNEJ2QyxZQUNZLFFBQWtCLEVBQ3lCLEtBQXNCO1FBRGpFLGFBQVEsR0FB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Q0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0QsQ0FBQzs7QUE1TWEsb0RBQXVCLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDNUMsaURBQW9CLEdBQUcsTUFBTSxDQUFDO3lIQUhqQyw0QkFBNEIsMENBOEI3QixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDOzZHQTlCaEMsNEJBQTRCLGdXQU43QixHQUFHO0FBdUJiO0lBQUMscUJBQXFCLEVBQUU7O3FFQUNTO0FBQ2pDO0lBQUMscUJBQXFCLEVBQUU7O3VFQUNVOzJGQXBCdkIsNEJBQTRCO2tCQVJ4QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFFBQVEsRUFBRSxHQUFHO29CQUNiLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxNQUFNLEVBQUUscUNBQXFDO29CQUM3QyxPQUFPLEVBQUUsc0NBQXNDO2lCQUNoRDs7MEJBZ0NJLE1BQU07MkJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQzs0Q0FaM0MsZUFBZSxNQUVmLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSW5qZWN0LCBJbmplY3RvciwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wsIFZhbGlkYXRvckZuLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBCb29sZWFuSW5wdXRDb252ZXJ0ZXIgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kZWNvcmF0b3JzL2lucHV0LWNvbnZlcnRlcic7XG5pbXBvcnQgeyBTbmFja0JhclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcy9zbmFja2Jhci5zZXJ2aWNlJztcbmltcG9ydCB7IE9UcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMvdHJhbnNsYXRlL28tdHJhbnNsYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgT1Blcm1pc3Npb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vdHlwZXMvby1wZXJtaXNzaW9ucy50eXBlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIE9ic2VydmFibGVXcmFwcGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vdXRpbC9hc3luYyc7XG5pbXBvcnQgeyBVdGlsIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vdXRpbC91dGlsJztcbmltcG9ydCB7IE9CYXNlVGFibGVDZWxsRWRpdG9yIH0gZnJvbSAnLi4vLi4vLi4vY29sdW1uL2NlbGwtZWRpdG9yL28tYmFzZS10YWJsZS1jZWxsLWVkaXRvci5jbGFzcyc7XG5pbXBvcnQgdHlwZSB7IE9Db2x1bW4gfSBmcm9tICcuLi8uLi8uLi9jb2x1bW4vby1jb2x1bW4uY2xhc3MnO1xuaW1wb3J0IHsgT1RhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vby10YWJsZS5jb21wb25lbnQnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9JTlBVVFNfT19UQUJMRV9JTlNFUlRBQkxFX1JPVyA9IFtcbiAgLy8gY29sdW1ucyBbc3RyaW5nXTogY29sdW1ucyB0aGF0IGNhbiBiZSBpbnNlcnRlZCwgc2VwYXJhdGVkIGJ5ICc7Jy4gRGVmYXVsdDogYWxsIHZpc2libGUgY29sdW1ucy5cbiAgJ2NvbHVtbnMnLFxuICAncmVxdWlyZWRDb2x1bW5zIDogcmVxdWlyZWQtY29sdW1ucycsXG4gIC8vIHBvc2l0aW9uIFtmaXJzdCB8bGFzdCBdIGRlZmF1bHQ6IGxhc3RcbiAgJ3Bvc2l0aW9uJyxcbiAgJ3Nob3dQbGFjZUhvbGRlcjogc2hvdy1wbGFjZWhvbGRlcicsXG4gICdpbmNsdWRlUGFyZW50S2V5czogaW5jbHVkZS1wYXJlbnQta2V5cydcbl07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX09VVFBVVFNfT19UQUJMRV9JTlNFUlRBQkxFX1JPVyA9IFtcbiAgJ29uUG9zdEluc2VydFJlY29yZCdcbl07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ28tdGFibGUtaW5zZXJ0YWJsZS1yb3cnLFxuICB0ZW1wbGF0ZTogJyAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW5wdXRzOiBERUZBVUxUX0lOUFVUU19PX1RBQkxFX0lOU0VSVEFCTEVfUk9XLFxuICBvdXRwdXRzOiBERUZBVUxUX09VVFBVVFNfT19UQUJMRV9JTlNFUlRBQkxFX1JPV1xufSlcblxuZXhwb3J0IGNsYXNzIE9UYWJsZUluc2VydGFibGVSb3dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHB1YmxpYyBzdGF0aWMgQVZBSUxBQkxFX1JPV19QT1NJVElPTlMgPSBbJ2ZpcnN0JywgJ2xhc3QnXTtcbiAgcHVibGljIHN0YXRpYyBERUZBVUxUX1JPV19QT1NJVElPTiA9ICdsYXN0JztcblxuICBwcm90ZWN0ZWQgY29sdW1uczogc3RyaW5nO1xuICBwcm90ZWN0ZWQgY29sdW1uc0FycmF5OiBBcnJheTxzdHJpbmc+ID0gW107XG5cbiAgcHJvdGVjdGVkIHJlcXVpcmVkQ29sdW1uczogc3RyaW5nO1xuICBwcm90ZWN0ZWQgcmVxdWlyZWRDb2x1bW5zQXJyYXk6IEFycmF5PHN0cmluZz4gPSBbXTtcblxuICBvblBvc3RJbnNlcnRSZWNvcmQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBjb2x1bW5FZGl0b3JzOiBhbnkgPSB7fTtcbiAgdHJXcmFwcGVyOiBFdmVudFRhcmdldDtcblxuICBwcm90ZWN0ZWQgcG9zaXRpb246IHN0cmluZyA9IE9UYWJsZUluc2VydGFibGVSb3dDb21wb25lbnQuREVGQVVMVF9ST1dfUE9TSVRJT047XG5cbiAgQEJvb2xlYW5JbnB1dENvbnZlcnRlcigpXG4gIHNob3dQbGFjZUhvbGRlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBAQm9vbGVhbklucHV0Q29udmVydGVyKClcbiAgaW5jbHVkZVBhcmVudEtleXM6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGVuYWJsZWQgPSB0cnVlO1xuICByb3dEYXRhID0ge307XG4gIHByb3RlY3RlZCBjb250cm9sczogYW55ID0ge307XG4gIHRyYW5zbGF0ZVNlcnZpY2U6IE9UcmFuc2xhdGVTZXJ2aWNlO1xuICBzbmFja0JhclNlcnZpY2U6IFNuYWNrQmFyU2VydmljZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBPVGFibGVDb21wb25lbnQpKSBwcm90ZWN0ZWQgdGFibGU6IE9UYWJsZUNvbXBvbmVudFxuICApIHtcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChPVHJhbnNsYXRlU2VydmljZSk7XG4gICAgdGhpcy5zbmFja0JhclNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChTbmFja0JhclNlcnZpY2UpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jb2x1bW5zQXJyYXkgPSBVdGlsLnBhcnNlQXJyYXkodGhpcy5jb2x1bW5zLCB0cnVlKTtcbiAgICBpZiAodGhpcy5jb2x1bW5zQXJyYXkubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmNvbHVtbnNBcnJheSA9IHRoaXMudGFibGUub1RhYmxlT3B0aW9ucy52aXNpYmxlQ29sdW1ucztcbiAgICB9XG4gICAgdGhpcy5yZXF1aXJlZENvbHVtbnNBcnJheSA9IFV0aWwucGFyc2VBcnJheSh0aGlzLnJlcXVpcmVkQ29sdW1ucywgdHJ1ZSk7XG4gICAgaWYgKE9UYWJsZUluc2VydGFibGVSb3dDb21wb25lbnQuQVZBSUxBQkxFX1JPV19QT1NJVElPTlMuaW5kZXhPZigodGhpcy5wb3NpdGlvbiB8fCAnJykudG9Mb3dlckNhc2UoKSkgPT09IC0xKSB7XG4gICAgICB0aGlzLnBvc2l0aW9uID0gT1RhYmxlSW5zZXJ0YWJsZVJvd0NvbXBvbmVudC5ERUZBVUxUX1JPV19QT1NJVElPTjtcbiAgICB9XG4gICAgdGhpcy50YWJsZS5zZXRPVGFibGVJbnNlcnRhYmxlUm93KHRoaXMpO1xuICB9XG5cbiAgaXNGaXJzdFJvdygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wb3NpdGlvbiA9PT0gJ2ZpcnN0JztcbiAgfVxuXG4gIGlzQ29sdW1uSW5zZXJ0YWJsZShjb2x1bW46IE9Db2x1bW4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHRoaXMuY29sdW1uc0FycmF5LmluZGV4T2YoY29sdW1uLmF0dHIpICE9PSAtMSk7XG4gIH1cblxuICBpc0NvbHVtblJlcXVpcmVkKGNvbHVtbjogT0NvbHVtbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5yZXF1aXJlZENvbHVtbnNBcnJheS5pbmRleE9mKGNvbHVtbi5hdHRyKSAhPT0gLTEpO1xuICB9XG5cbiAgaW5pdGlhbGl6ZUVkaXRvcnMoKTogdm9pZCB7XG4gICAgdGhpcy50YWJsZS5vVGFibGVPcHRpb25zLmNvbHVtbnNcbiAgICAgIC5maWx0ZXIoKGNvbCkgPT4gdGhpcy5pc0NvbHVtbkluc2VydGFibGUoY29sKSkuZm9yRWFjaChjb2wgPT4ge1xuICAgICAgICBjb25zdCBjb2x1bW5FZGl0b3JUeXBlID0gY29sLmVkaXRvciA/IGNvbC5lZGl0b3IudHlwZSA6IGNvbC50eXBlO1xuICAgICAgICBpZiAoY29sLmRlZmluaXRpb24pIHtcbiAgICAgICAgICBjb25zdCBlZGl0b3I6IE9CYXNlVGFibGVDZWxsRWRpdG9yID0gY29sLmRlZmluaXRpb24uYnVpbGRDZWxsRWRpdG9yKGNvbHVtbkVkaXRvclR5cGUsIGNvbC5kZWZpbml0aW9uLmNvbnRhaW5lciwgY29sLmRlZmluaXRpb24sIGZhbHNlKTtcbiAgICAgICAgICB0aGlzLmNvbHVtbkVkaXRvcnNbY29sLmF0dHJdID0gZWRpdG9yO1xuICAgICAgICAgIGxldCBkaXNhYmxlZENvbCA9ICF0aGlzLmVuYWJsZWQ7XG4gICAgICAgICAgaWYgKCFkaXNhYmxlZENvbCkge1xuICAgICAgICAgICAgY29uc3QgY29sdW1uUGVybWlzc2lvbnM6IE9QZXJtaXNzaW9ucyA9IHRoaXMudGFibGUuZ2V0T0NvbHVtblBlcm1pc3Npb25zKGNvbC5hdHRyKTtcbiAgICAgICAgICAgIGRpc2FibGVkQ29sID0gY29sdW1uUGVybWlzc2lvbnMuZW5hYmxlZCA9PT0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVkaXRvci5lbmFibGVkID0gIWRpc2FibGVkQ29sO1xuICAgICAgICAgIGVkaXRvci5zaG93UGxhY2VIb2xkZXIgPSB0aGlzLnNob3dQbGFjZUhvbGRlciB8fCBlZGl0b3Iuc2hvd1BsYWNlSG9sZGVyO1xuICAgICAgICAgIGVkaXRvci50YWJsZSA9IHRoaXMudGFibGU7XG4gICAgICAgICAgZWRpdG9yLnRhYmxlQ29sdW1uID0gY29sLmVkaXRvciA/IGNvbC5lZGl0b3IudGFibGVDb2x1bW4gOiBjb2wuZGVmaW5pdGlvbjtcbiAgICAgICAgICBlZGl0b3Iub3JlcXVpcmVkID0gdGhpcy5pc0NvbHVtblJlcXVpcmVkKGNvbCk7XG4gICAgICAgICAgZWRpdG9yLmZvcm1Db250cm9sID0gdGhpcy5nZXRDb250cm9sKGNvbCwgZGlzYWJsZWRDb2wpO1xuICAgICAgICAgIGVkaXRvci5mb3JtR3JvdXAuYWRkQ29udHJvbChlZGl0b3IuY2VsbEVkaXRvcklkLCBlZGl0b3IuZm9ybUNvbnRyb2wpO1xuICAgICAgICAgIGVkaXRvci5jb250cm9sQXJncyA9IHsgc2lsZW50OiB0cnVlIH07XG4gICAgICAgICAgZWRpdG9yLnJvd0RhdGEgPSB0aGlzLnJvd0RhdGE7XG4gICAgICAgICAgZWRpdG9yLnN0YXJ0RWRpdGlvbih0aGlzLnJvd0RhdGEpO1xuICAgICAgICAgIGVkaXRvci5mb3JtQ29udHJvbC5tYXJrQXNVbnRvdWNoZWQoKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgfVxuXG4gIHVzZUNlbGxFZGl0b3IoY29sdW1uOiBPQ29sdW1uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNDb2x1bW5JbnNlcnRhYmxlKGNvbHVtbikgJiYgVXRpbC5pc0RlZmluZWQodGhpcy5jb2x1bW5FZGl0b3JzW2NvbHVtbi5hdHRyXSk7XG4gIH1cblxuICBnZXRDb250cm9sKGNvbHVtbjogT0NvbHVtbiwgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZSk6IFVudHlwZWRGb3JtQ29udHJvbCB7XG4gICAgaWYgKCF0aGlzLmNvbnRyb2xzW2NvbHVtbi5hdHRyXSkge1xuICAgICAgY29uc3QgdmFsaWRhdG9yczogVmFsaWRhdG9yRm5bXSA9IHRoaXMucmVzb2x2ZVZhbGlkYXRvcnMoY29sdW1uKTtcbiAgICAgIGNvbnN0IGNmZyA9IHtcbiAgICAgICAgdmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgICAgZGlzYWJsZWQ6IGRpc2FibGVkXG4gICAgICB9O1xuICAgICAgdGhpcy5jb250cm9sc1tjb2x1bW4uYXR0cl0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKGNmZywgdmFsaWRhdG9ycyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvbnRyb2xzW2NvbHVtbi5hdHRyXTtcbiAgfVxuXG4gIHJlc29sdmVWYWxpZGF0b3JzKGNvbHVtbjogT0NvbHVtbik6IFZhbGlkYXRvckZuW10ge1xuICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcbiAgICBpZiAoY29sdW1uLmRlZmluaXRpb24gJiYgY29sdW1uLmRlZmluaXRpb24uYW5ndWxhclZhbGlkYXRvcnNGbikge1xuICAgICAgY29sdW1uLmRlZmluaXRpb24uYW5ndWxhclZhbGlkYXRvcnNGbi5mb3JFYWNoKChmbjogVmFsaWRhdG9yRm4pID0+IHtcbiAgICAgICAgdmFsaWRhdG9ycy5wdXNoKGZuKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5pc0NvbHVtblJlcXVpcmVkKGNvbHVtbikpIHtcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbGlkYXRvcnM7XG4gIH1cblxuICBnZXRQbGFjZWhvbGRlcihjb2x1bW46IE9Db2x1bW4pOiBzdHJpbmcge1xuICAgIGxldCBzaG93UGxhY2VIb2xkZXIgPSB0aGlzLnNob3dQbGFjZUhvbGRlcjtcbiAgICBjb25zdCBjZWxsRWRpdG9yID0gdGhpcy5jb2x1bW5FZGl0b3JzW2NvbHVtbi5hdHRyXTtcbiAgICBpZiAoY2VsbEVkaXRvcikge1xuICAgICAgc2hvd1BsYWNlSG9sZGVyID0gY2VsbEVkaXRvci5zaG93UGxhY2VIb2xkZXI7XG4gICAgfSBlbHNlIGlmIChjb2x1bW4uZGVmaW5pdGlvbikge1xuICAgICAgc2hvd1BsYWNlSG9sZGVyID0gc2hvd1BsYWNlSG9sZGVyIHx8IGNvbHVtbi5kZWZpbml0aW9uLnNob3dQbGFjZUhvbGRlcjtcbiAgICB9XG4gICAgcmV0dXJuIHNob3dQbGFjZUhvbGRlciA/IHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQoY29sdW1uLnRpdGxlKSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQua2V5Q29kZSAhPT0gMTMpIHtcbiAgICAgIC8vIG5vdCBpbnRyb1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnRyV3JhcHBlciA9IGV2ZW50LmN1cnJlbnRUYXJnZXQ7XG5cbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuaW5zZXJ0UmVjb3JkKCk7XG4gIH1cblxuICBpbnNlcnRSZWNvcmQoKSB7XG4gICAgaWYgKCF0aGlzLnZhbGlkYXRlRmllbGRzKCkpIHtcbiAgICAgIC8vIHRoaXMudGFibGUuc2hvd0RpYWxvZ0Vycm9yKCdUQUJMRS5ST1dfVkFMSURBVElPTl9FUlJPUicpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLmdldEF0dHJpYnV0ZXNWYWx1ZXNUb0luc2VydCgpO1xuICAgIGNvbnN0IGluc2VydE9ic2VydmFibGU6IE9ic2VydmFibGU8YW55PiA9IHRoaXMudGFibGUuaW5zZXJ0UmVjb3JkKHZhbHVlcyk7XG4gICAgaWYgKGluc2VydE9ic2VydmFibGUpIHtcbiAgICAgIGluc2VydE9ic2VydmFibGUuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHRoaXMub25JbnNlcnRTdWNjZXNzKHJlcyk7XG4gICAgICB9LCBlcnJvciA9PiB7XG4gICAgICAgIHRoaXMudGFibGUuc2hvd0RpYWxvZ0Vycm9yKGVycm9yLCAnTUVTU0FHRVMuRVJST1JfSU5TRVJUJyk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgdmFsaWRhdGVGaWVsZHMoKTogYm9vbGVhbiB7XG4gICAgbGV0IHZhbGlkID0gdHJ1ZTtcbiAgICAvLyBjb2x1bW5zIHdpdGggbm8gZWRpdG9yIGRlZmluZWRcbiAgICBPYmplY3Qua2V5cyh0aGlzLmNvbnRyb2xzKS5mb3JFYWNoKChjb250cm9sS2V5KSA9PiB7XG4gICAgICBjb25zdCBjb250cm9sID0gdGhpcy5jb250cm9sc1tjb250cm9sS2V5XTtcbiAgICAgIGNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgdmFsaWQgPSB2YWxpZCAmJiBjb250cm9sLnZhbGlkO1xuICAgIH0pO1xuICAgIHJldHVybiB2YWxpZDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRBdHRyaWJ1dGVzVmFsdWVzVG9JbnNlcnQoKTogb2JqZWN0IHtcbiAgICBsZXQgYXR0clZhbHVlcyA9IHt9O1xuICAgIGlmICh0aGlzLmluY2x1ZGVQYXJlbnRLZXlzKSB7XG4gICAgICBhdHRyVmFsdWVzID0gdGhpcy50YWJsZS5nZXRQYXJlbnRLZXlzVmFsdWVzKCk7XG4gICAgfVxuICAgIE9iamVjdC5rZXlzKHRoaXMuY29udHJvbHMpLmZvckVhY2goKGNvbnRyb2xLZXkpID0+IHtcbiAgICAgIGF0dHJWYWx1ZXNbY29udHJvbEtleV0gPSB0aGlzLmNvbnRyb2xzW2NvbnRyb2xLZXldLnZhbHVlO1xuICAgIH0pO1xuICAgIHJldHVybiBhdHRyVmFsdWVzO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uSW5zZXJ0U3VjY2VzcyhyZXM6IGFueSkge1xuICAgIE9ic2VydmFibGVXcmFwcGVyLmNhbGxFbWl0KHRoaXMub25Qb3N0SW5zZXJ0UmVjb3JkLCByZXMpO1xuICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oJ01FU1NBR0VTLklOU0VSVEVEJywgeyBpY29uOiAnY2hlY2tfY2lyY2xlJyB9KTtcbiAgICB0aGlzLmNsZWFuRmllbGRzKCk7XG5cbiAgICBpZiAodGhpcy50YWJsZS5kYW9UYWJsZS51c2luZ1N0YXRpY0RhdGEpIHtcbiAgICAgIHRoaXMudGFibGUuc2V0RGF0YUFycmF5KHJlcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudGFibGUucmVsb2FkRGF0YSgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBjbGVhbkZpZWxkcygpIHtcbiAgICAvLyBjb2x1bW5zIHdpdGggbm8gZWRpdG9yIGRlZmluZWRcbiAgICBjb25zdCBjb250cm9sS2V5cyA9IE9iamVjdC5rZXlzKHRoaXMuY29udHJvbHMpO1xuICAgIGNvbnRyb2xLZXlzLmZvckVhY2goKGNvbnRyb2xLZXkpID0+IHtcbiAgICAgIHRoaXMuY29udHJvbHNbY29udHJvbEtleV0uc2V0VmFsdWUodm9pZCAwKTtcbiAgICB9KTtcbiAgICBjb25zdCBmaXJzdElucHV0RWwgPSAodGhpcy50cldyYXBwZXIgYXMgYW55KS5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpO1xuICAgIGlmIChmaXJzdElucHV0RWwpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBmaXJzdElucHV0RWwuZm9jdXMoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbHVtbkhhc0Vycm9yKGNvbHVtbjogT0NvbHVtbiwgZXJyb3I6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmNvbnRyb2xzW2NvbHVtbi5hdHRyXTtcbiAgICByZXR1cm4gY29udHJvbCAmJiBjb250cm9sLnRvdWNoZWQgJiYgY29udHJvbC5oYXNFcnJvcihlcnJvcik7XG4gIH1cblxufVxuIl19
|
|
@@ -40,7 +40,7 @@ export class OTableQuickfilterComponent {
|
|
|
40
40
|
this.injector = injector;
|
|
41
41
|
this.elRef = elRef;
|
|
42
42
|
this.table = table;
|
|
43
|
-
this._placeholder =
|
|
43
|
+
this._placeholder = undefined;
|
|
44
44
|
this.onChange = new EventEmitter();
|
|
45
45
|
this.formControl = new UntypedFormControl();
|
|
46
46
|
}
|
|
@@ -187,12 +187,12 @@ export class OTableQuickfilterComponent {
|
|
|
187
187
|
}
|
|
188
188
|
}
|
|
189
189
|
OTableQuickfilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OTableQuickfilterComponent, deps: [{ token: i0.Injector }, { token: i0.ElementRef }, { token: forwardRef(() => OTableBase) }], target: i0.ɵɵFactoryTarget.Component });
|
|
190
|
-
OTableQuickfilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: OTableQuickfilterComponent, selector: "o-table-quickfilter", inputs: { placeholder: "placeholder" }, outputs: { onChange: "onChange" }, host: { properties: { "class.o-table-quickfilter": "true" } }, viewQueries: [{ propertyName: "filter", first: true, predicate: ["filter"], descendants: true }, { propertyName: "matMenu", first: true, predicate: ["menu"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"quickFilter\" fxLayout=\"row\">\n\n <mat-form-field appearance=\"outline\">\n <input matInput #filter [formControl]=\"formControl\" (click)=\"$event.stopPropagation()\" placeholder=\"{{ placeholder | oTranslate }}\">\n <div matPrefix>\n <mat-icon svgIcon=\"ontimize:search\" [matBadge]=\"areAllColumnsChecked()?'':getCountColumnsChecked()\" matBadgeSize=\"small\"></mat-icon>\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" (menuClosed)=\"onMenuClosed()\" (click)=\"$event.stopPropagation()\">\n <mat-icon class=\"search-icon\">expand_more</mat-icon>\n </button>\n </div>\n\n <mat-menu #menu=\"matMenu\" class=\"o-table-quickfilter-menu\">\n <div fxLayout=\"column\" class=\"checkbox-container\">\n\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"areAllColumnsChecked()\" (change)=\"onSelectAllChange($event)\">\n {{ 'SELECT_ALL' | oTranslate}}\n </mat-checkbox>\n <mat-divider></mat-divider>\n\n <ng-container *ngFor=\"let column of quickFilterColumns\">\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"isChecked(column)\" (change)=\"onCheckboxChange(column, $event)\">\n {{ column.title | oTranslate }}\n </mat-checkbox>\n </ng-container>\n\n <ng-container *ngIf=\"showCaseSensitiveCheckbox()\">\n <mat-divider></mat-divider>\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"oTableOptions.filterCaseSensitive\"\n (change)=\"oTableOptions.filterCaseSensitive = $event.checked\">\n {{ 'TABLE.FILTER.CASE_SENSITIVE' | oTranslate}}\n </mat-checkbox>\n </ng-container>\n </div>\n </mat-menu>\n </mat-form-field>\n</div>\n", styles: [".o-table-quickfilter .quickFilter .mat-mdc-form-field .mat-mdc-form-field-subscript-wrapper{display:none}.o-table-quickfilter .quickFilter .mat-mdc-form-field .mat-mdc-form-field-flex .
|
|
190
|
+
OTableQuickfilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: OTableQuickfilterComponent, selector: "o-table-quickfilter", inputs: { placeholder: "placeholder" }, outputs: { onChange: "onChange" }, host: { properties: { "class.o-table-quickfilter": "true" } }, viewQueries: [{ propertyName: "filter", first: true, predicate: ["filter"], descendants: true }, { propertyName: "matMenu", first: true, predicate: ["menu"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"quickFilter\" fxLayout=\"row\">\n\n <mat-form-field appearance=\"outline\">\n <input matInput #filter [formControl]=\"formControl\" (click)=\"$event.stopPropagation()\" placeholder=\"{{ placeholder | oTranslate }}\">\n <div matPrefix>\n <mat-icon svgIcon=\"ontimize:search\" [matBadge]=\"areAllColumnsChecked()?'':getCountColumnsChecked()\" matBadgeSize=\"small\"></mat-icon>\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" (menuClosed)=\"onMenuClosed()\" (click)=\"$event.stopPropagation()\">\n <mat-icon class=\"search-icon\">expand_more</mat-icon>\n </button>\n </div>\n\n <mat-menu #menu=\"matMenu\" class=\"o-table-quickfilter-menu\">\n <div fxLayout=\"column\" class=\"checkbox-container\">\n\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"areAllColumnsChecked()\" (change)=\"onSelectAllChange($event)\">\n {{ 'SELECT_ALL' | oTranslate}}\n </mat-checkbox>\n <mat-divider></mat-divider>\n\n <ng-container *ngFor=\"let column of quickFilterColumns\">\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"isChecked(column)\" (change)=\"onCheckboxChange(column, $event)\">\n {{ column.title | oTranslate }}\n </mat-checkbox>\n </ng-container>\n\n <ng-container *ngIf=\"showCaseSensitiveCheckbox()\">\n <mat-divider></mat-divider>\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"oTableOptions.filterCaseSensitive\"\n (change)=\"oTableOptions.filterCaseSensitive = $event.checked\">\n {{ 'TABLE.FILTER.CASE_SENSITIVE' | oTranslate}}\n </mat-checkbox>\n </ng-container>\n </div>\n </mat-menu>\n </mat-form-field>\n</div>\n", styles: [".o-table-quickfilter .quickFilter .mat-mdc-form-field .mat-mdc-form-field-subscript-wrapper{display:none}.o-table-quickfilter .quickFilter .mat-mdc-form-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix{align-self:center;padding:0;min-height:30px;display:flex}.o-table-quickfilter .quickFilter .mat-mdc-form-field .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix{padding-left:10px;padding-right:10px}.o-table-quickfilter .quickFilter .mat-mdc-form-field .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div{align-items:center;display:flex}.o-table-quickfilter .quickFilter .mat-mdc-form-field .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div .mat-icon,.o-table-quickfilter .quickFilter .mat-mdc-form-field .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div button{margin-right:6px}.o-table-quickfilter .quickFilter .mat-mdc-form-field .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div .mat-badge-content{background-color:#3c8500;width:14px;height:14px;line-height:14px;top:-4px;right:-4px}.o-table-quickfilter-menu .checkbox-container{padding:6px 12px}.o-table-quickfilter-menu .checkbox-container .mat-divider{margin:8px 0}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "component", type: i9.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i10.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i11.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "pipe", type: i12.OTranslatePipe, name: "oTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
191
191
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OTableQuickfilterComponent, decorators: [{
|
|
192
192
|
type: Component,
|
|
193
193
|
args: [{ selector: 'o-table-quickfilter', inputs: DEFAULT_INPUTS_O_TABLE_QUICKFILTER, outputs: DEFAULT_OUTPUTS_O_TABLE_QUICKFILTER, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
194
194
|
'[class.o-table-quickfilter]': 'true',
|
|
195
|
-
}, template: "<div class=\"quickFilter\" fxLayout=\"row\">\n\n <mat-form-field appearance=\"outline\">\n <input matInput #filter [formControl]=\"formControl\" (click)=\"$event.stopPropagation()\" placeholder=\"{{ placeholder | oTranslate }}\">\n <div matPrefix>\n <mat-icon svgIcon=\"ontimize:search\" [matBadge]=\"areAllColumnsChecked()?'':getCountColumnsChecked()\" matBadgeSize=\"small\"></mat-icon>\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" (menuClosed)=\"onMenuClosed()\" (click)=\"$event.stopPropagation()\">\n <mat-icon class=\"search-icon\">expand_more</mat-icon>\n </button>\n </div>\n\n <mat-menu #menu=\"matMenu\" class=\"o-table-quickfilter-menu\">\n <div fxLayout=\"column\" class=\"checkbox-container\">\n\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"areAllColumnsChecked()\" (change)=\"onSelectAllChange($event)\">\n {{ 'SELECT_ALL' | oTranslate}}\n </mat-checkbox>\n <mat-divider></mat-divider>\n\n <ng-container *ngFor=\"let column of quickFilterColumns\">\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"isChecked(column)\" (change)=\"onCheckboxChange(column, $event)\">\n {{ column.title | oTranslate }}\n </mat-checkbox>\n </ng-container>\n\n <ng-container *ngIf=\"showCaseSensitiveCheckbox()\">\n <mat-divider></mat-divider>\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"oTableOptions.filterCaseSensitive\"\n (change)=\"oTableOptions.filterCaseSensitive = $event.checked\">\n {{ 'TABLE.FILTER.CASE_SENSITIVE' | oTranslate}}\n </mat-checkbox>\n </ng-container>\n </div>\n </mat-menu>\n </mat-form-field>\n</div>\n", styles: [".o-table-quickfilter .quickFilter .mat-mdc-form-field .mat-mdc-form-field-subscript-wrapper{display:none}.o-table-quickfilter .quickFilter .mat-mdc-form-field .mat-mdc-form-field-flex .
|
|
195
|
+
}, template: "<div class=\"quickFilter\" fxLayout=\"row\">\n\n <mat-form-field appearance=\"outline\">\n <input matInput #filter [formControl]=\"formControl\" (click)=\"$event.stopPropagation()\" placeholder=\"{{ placeholder | oTranslate }}\">\n <div matPrefix>\n <mat-icon svgIcon=\"ontimize:search\" [matBadge]=\"areAllColumnsChecked()?'':getCountColumnsChecked()\" matBadgeSize=\"small\"></mat-icon>\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" (menuClosed)=\"onMenuClosed()\" (click)=\"$event.stopPropagation()\">\n <mat-icon class=\"search-icon\">expand_more</mat-icon>\n </button>\n </div>\n\n <mat-menu #menu=\"matMenu\" class=\"o-table-quickfilter-menu\">\n <div fxLayout=\"column\" class=\"checkbox-container\">\n\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"areAllColumnsChecked()\" (change)=\"onSelectAllChange($event)\">\n {{ 'SELECT_ALL' | oTranslate}}\n </mat-checkbox>\n <mat-divider></mat-divider>\n\n <ng-container *ngFor=\"let column of quickFilterColumns\">\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"isChecked(column)\" (change)=\"onCheckboxChange(column, $event)\">\n {{ column.title | oTranslate }}\n </mat-checkbox>\n </ng-container>\n\n <ng-container *ngIf=\"showCaseSensitiveCheckbox()\">\n <mat-divider></mat-divider>\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"oTableOptions.filterCaseSensitive\"\n (change)=\"oTableOptions.filterCaseSensitive = $event.checked\">\n {{ 'TABLE.FILTER.CASE_SENSITIVE' | oTranslate}}\n </mat-checkbox>\n </ng-container>\n </div>\n </mat-menu>\n </mat-form-field>\n</div>\n", styles: [".o-table-quickfilter .quickFilter .mat-mdc-form-field .mat-mdc-form-field-subscript-wrapper{display:none}.o-table-quickfilter .quickFilter .mat-mdc-form-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix{align-self:center;padding:0;min-height:30px;display:flex}.o-table-quickfilter .quickFilter .mat-mdc-form-field .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix{padding-left:10px;padding-right:10px}.o-table-quickfilter .quickFilter .mat-mdc-form-field .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div{align-items:center;display:flex}.o-table-quickfilter .quickFilter .mat-mdc-form-field .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div .mat-icon,.o-table-quickfilter .quickFilter .mat-mdc-form-field .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div button{margin-right:6px}.o-table-quickfilter .quickFilter .mat-mdc-form-field .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div .mat-badge-content{background-color:#3c8500;width:14px;height:14px;line-height:14px;top:-4px;right:-4px}.o-table-quickfilter-menu .checkbox-container{padding:6px 12px}.o-table-quickfilter-menu .checkbox-container .mat-divider{margin:8px 0}\n"] }]
|
|
196
196
|
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }, { type: i13.OTableBase, decorators: [{
|
|
197
197
|
type: Inject,
|
|
198
198
|
args: [forwardRef(() => OTableBase)]
|
|
@@ -203,4 +203,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
203
203
|
type: ViewChild,
|
|
204
204
|
args: ['menu', { static: true }]
|
|
205
205
|
}] } });
|
|
206
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1xdWlja2ZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9leHRlbnNpb25zL2hlYWRlci90YWJsZS1xdWlja2ZpbHRlci9vLXRhYmxlLXF1aWNrZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL2V4dGVuc2lvbnMvaGVhZGVyL3RhYmxlLXF1aWNrZmlsdGVyL28tdGFibGUtcXVpY2tmaWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsTUFBTSxFQUNOLFFBQVEsRUFHUixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFLcEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDcEYsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWhELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7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QUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO2FBQy9GLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNWLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLEVBQUU7Z0JBQ3JELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDdEQ7WUFFRCxPQUFPLHFCQUFxQixDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7dUhBaE5VLDBCQUEwQixvRUE4QjNCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUM7MkdBOUIzQiwwQkFBMEIsdVlDbER2QywrdURBb0NBOzJGRGNhLDBCQUEwQjtrQkFadEMsU0FBUzsrQkFDRSxxQkFBcUIsVUFHdkIsa0NBQWtDLFdBQ2pDLG1DQUFtQyxpQkFDN0IsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDSiw2QkFBNkIsRUFBRSxNQUFNO3FCQUN0Qzs7MEJBZ0NFLE1BQU07MkJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQzs0Q0FmL0IsTUFBTTtzQkFEWixTQUFTO3VCQUFDLFFBQVE7Z0JBSVosT0FBTztzQkFEYixTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIEluamVjdCxcbiAgSW5qZWN0b3IsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3hDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBNYXRNZW51IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgT19JTlBVVFNfT1BUSU9OUyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbmZpZy9hcHAtY29uZmlnJztcbmltcG9ydCB0eXBlIHsgT1RhYmxlT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2ludGVyZmFjZXMvby10YWJsZS1vcHRpb25zLmludGVyZmFjZSc7XG5pbXBvcnQgdHlwZSB7IE9UYWJsZVF1aWNrZmlsdGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vaW50ZXJmYWNlcy9vLXRhYmxlLXF1aWNrZmlsdGVyLmludGVyZmFjZSc7XG5pbXBvcnQgdHlwZSB7IEV4cHJlc3Npb24gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi90eXBlcy9leHByZXNzaW9uLnR5cGUnO1xuaW1wb3J0IHR5cGUgeyBPSW5wdXRzT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3R5cGVzL28taW5wdXRzLW9wdGlvbnMudHlwZSc7XG5pbXBvcnQgeyBGaWx0ZXJFeHByZXNzaW9uVXRpbHMgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlsL2ZpbHRlci1leHByZXNzaW9uLnV0aWxzJztcbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlsL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBPQ29sdW1uIH0gZnJvbSAnLi4vLi4vLi4vY29sdW1uL28tY29sdW1uLmNsYXNzJztcbmltcG9ydCB7IE9UYWJsZUJhc2UgfSBmcm9tICcuLi8uLi8uLi9vLXRhYmxlLWJhc2UuY2xhc3MnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9JTlBVVFNfT19UQUJMRV9RVUlDS0ZJTFRFUiA9IFtcbiAgJ3BsYWNlaG9sZGVyJ1xuXTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfT1VUUFVUU19PX1RBQkxFX1FVSUNLRklMVEVSID0gW1xuICAnb25DaGFuZ2UnXG5dO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvLXRhYmxlLXF1aWNrZmlsdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL28tdGFibGUtcXVpY2tmaWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vLXRhYmxlLXF1aWNrZmlsdGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGlucHV0czogREVGQVVMVF9JTlBVVFNfT19UQUJMRV9RVUlDS0ZJTFRFUixcbiAgb3V0cHV0czogREVGQVVMVF9PVVRQVVRTX09fVEFCTEVfUVVJQ0tGSUxURVIsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5vLXRhYmxlLXF1aWNrZmlsdGVyXSc6ICd0cnVlJyxcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBPVGFibGVRdWlja2ZpbHRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9UYWJsZVF1aWNrZmlsdGVyLCBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgcHJvdGVjdGVkIF9wbGFjZWhvbGRlcjogc3RyaW5nID0gJ1RBQkxFLkZJTFRFUic7XG5cbiAgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3BsYWNlaG9sZGVyO1xuICB9XG5cbiAgc2V0IHBsYWNlaG9sZGVyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAoVXRpbC5pc0RlZmluZWQodmFsdWUpKSB7XG4gICAgICB0aGlzLl9wbGFjZWhvbGRlciA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ2ZpbHRlcicpXG4gIHB1YmxpYyBmaWx0ZXI6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZCgnbWVudScsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBtYXRNZW51OiBNYXRNZW51O1xuXG4gIHB1YmxpYyB2YWx1ZTogc3RyaW5nO1xuICBwdWJsaWMgb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgcHVibGljIGZvcm1Db250cm9sO1xuXG4gIHByb3RlY3RlZCBvSW5wdXRzT3B0aW9uczogT0lucHV0c09wdGlvbnM7XG4gIHByb3RlY3RlZCBxdWlja0ZpbHRlck9ic2VydmFibGU6IFN1YnNjcmlwdGlvbjtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcm90ZWN0ZWQgZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgQEluamVjdChmb3J3YXJkUmVmKCgpID0+IE9UYWJsZUJhc2UpKSBwcm90ZWN0ZWQgdGFibGU6IE9UYWJsZUJhc2VcbiAgKSB7XG4gICAgdGhpcy5mb3JtQ29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRhYmxlLnJlZ2lzdGVyUXVpY2tGaWx0ZXIodGhpcyk7XG4gICAgLy8gd29ya2Fyb3VuZCBiZWNhdXNlICd4LXBvc2l0aW9uPVwiYmVmb3JlXCInIHdhcyBub3Qgd29ya2luZyBpbiB0aGUgdGVtcGxhdGVcbiAgICB0aGlzLm1hdE1lbnUueFBvc2l0aW9uID0gJ2JlZm9yZSc7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhbGl6ZUV2ZW50RmlsdGVyKCk7XG5cbiAgICB0cnkge1xuICAgICAgdGhpcy5vSW5wdXRzT3B0aW9ucyA9IHRoaXMuaW5qZWN0b3IuZ2V0KE9fSU5QVVRTX09QVElPTlMpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMub0lucHV0c09wdGlvbnMgPSB7fTtcbiAgICB9XG4gICAgVXRpbC5wYXJzZU9JbnB1dHNPcHRpb25zKHRoaXMuZWxSZWYsIHRoaXMub0lucHV0c09wdGlvbnMpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnF1aWNrRmlsdGVyT2JzZXJ2YWJsZSkge1xuICAgICAgdGhpcy5xdWlja0ZpbHRlck9ic2VydmFibGUudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBnZXQgb1RhYmxlT3B0aW9ucygpOiBPVGFibGVPcHRpb25zIHtcbiAgICByZXR1cm4gdGhpcy50YWJsZS5vVGFibGVPcHRpb25zO1xuICB9XG5cbiAgZ2V0IHF1aWNrRmlsdGVyQ29sdW1ucygpOiBPQ29sdW1uW10ge1xuICAgIHJldHVybiB0aGlzLnRhYmxlLm9UYWJsZU9wdGlvbnMuY29sdW1ucy5maWx0ZXIob0NvbCA9PiB7XG4gICAgICAvLyBDSEVDSzogV2h5IGNvbHVtbnMgd2l0aCByZW5kZXJlcnMgYXJlIG5vdCBmaWx0ZXJlZD9cbiAgICAgIC8vIHJldHVybiBvQ29sLnNlYXJjaGFibGUgJiYgb0NvbC52aXNpYmxlICYmICFVdGlsLmlzRGVmaW5lZChvQ29sLnJlbmRlcmVyKTtcbiAgICAgIHJldHVybiBvQ29sLnNlYXJjaGFibGUgJiYgb0NvbC52aXNpYmxlO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGZpbHRlckV4cHJlc3Npb24oKTogRXhwcmVzc2lvbiB7XG4gICAgbGV0IHJlc3VsdDogRXhwcmVzc2lvbiA9IHRoaXMuZ2V0VXNlckZpbHRlcigpO1xuICAgIGlmICghVXRpbC5pc0RlZmluZWQocmVzdWx0KSAmJiBVdGlsLmlzRGVmaW5lZCh0aGlzLnZhbHVlKSAmJiB0aGlzLnZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGV4cHJlc3Npb25zOiBFeHByZXNzaW9uW10gPSBbXTtcblxuICAgICAgY29uc3Qgc2VhcmNoaW5nQ29scyA9IHRoaXMub1RhYmxlT3B0aW9ucy5jb2x1bW5zLmZpbHRlcihvQ29sID0+IG9Db2wuc2VhcmNoaW5nICYmIG9Db2wudmlzaWJsZSAmJiBvQ29sLnNlYXJjaGFibGUgJiYgdGhpcy5pc0ZpbHRlcmFibGVDb2x1bW4ob0NvbCkpO1xuICAgICAgZXhwcmVzc2lvbnMucHVzaCguLi50aGlzLmdldENvbHVtbnNXaXRob3V0UmVuZGVyZXJFeHByZXNzaW9ucyhzZWFyY2hpbmdDb2xzKSk7XG5cbiAgICAgIGNvbnN0IHJlbmRlcmVyc0V4cHIgPSB0aGlzLmdldENvbHVtbnNSZW5kZXJlckV4cHJlc3Npb25zKHNlYXJjaGluZ0NvbHMpO1xuXG4gICAgICBjb25zdCBub3ROdWxsRXhwcmVzc2lvbnMgPSByZW5kZXJlcnNFeHByLmZpbHRlcihleHByID0+IFV0aWwuaXNEZWZpbmVkKGV4cHIpKTtcbiAgICAgIGlmIChleHByZXNzaW9ucy5sZW5ndGggPT09IDAgJiYgbm90TnVsbEV4cHJlc3Npb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAvLyBBbGwgZmlsdGVycyBpbiB0aGUgcmVuZGVyZXIgYXJlIGVtcHR5IGFuZCB0aGVyZSBhcmUgbm8gb3RoZXIgZmlsdGVycyBjb25maWd1cmVkLFxuICAgICAgICAvLyBzbyB3ZSBhbHJlYWR5IGtub3cgdGhhdCB0aGUgdGFibGUgc2hvdWxkIG5vdCBoYXZlIGFueSBpbmZvcm1hdGlvbiBidXRcbiAgICAgICAgLy8gaXQgd291bGQgbWFrZSBhIHF1ZXJ5IHdpdGggZW1wdHkgZmlsdGVycyBhbmQgcmV0cmlldmUgaW5mb3JtYXRpb24gbm90IGNvbnNpc3RlbnQgd2l0aCB0aGUgY29uZmlndXJlZCBxdWlja2ZpbHRlciB2YWx1ZSxcbiAgICAgICAgLy8gc28gd2UgZm9yY2UgdG8gc3RvcCB0aGUgcXVlcnkgYW5kIHNldCBhbiBlbXB0eSBhcnJheSBvbiB0aGUgdGFibGVcbiAgICAgICAgdGhpcy50YWJsZS5hYm9ydFF1ZXJ5Lm5leHQodHJ1ZSk7XG4gICAgICB9XG4gICAgICBleHByZXNzaW9ucy5wdXNoKC4uLm5vdE51bGxFeHByZXNzaW9ucyk7XG5cbiAgICAgIGlmIChleHByZXNzaW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJlc3VsdCA9IGV4cHJlc3Npb25zLnJlZHVjZSgoYSwgYikgPT4gRmlsdGVyRXhwcmVzc2lvblV0aWxzLmJ1aWxkQ29tcGxleEV4cHJlc3Npb24oYSwgYiwgRmlsdGVyRXhwcmVzc2lvblV0aWxzLk9QX09SKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0VXNlckZpbHRlcigpOiBFeHByZXNzaW9uIHtcbiAgICBsZXQgcmVzdWx0OiBFeHByZXNzaW9uO1xuICAgIGlmICh0aGlzLnRhYmxlLnF1aWNrRmlsdGVyQ2FsbGJhY2sgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuICAgICAgY29uc3QgdXNlckZpbHRlciA9IHRoaXMudGFibGUucXVpY2tGaWx0ZXJDYWxsYmFjayh0aGlzLnZhbHVlKTtcbiAgICAgIGlmIChVdGlsLmlzRGVmaW5lZCh1c2VyRmlsdGVyKSAmJiBGaWx0ZXJFeHByZXNzaW9uVXRpbHMuaW5zdGFuY2VvZkV4cHJlc3Npb24odXNlckZpbHRlcikpIHtcbiAgICAgICAgcmVzdWx0ID0gKHVzZXJGaWx0ZXIgYXMgRXhwcmVzc2lvbik7XG4gICAgICB9IGVsc2UgaWYgKFV0aWwuaXNEZWZpbmVkKHVzZXJGaWx0ZXIpKSB7XG4gICAgICAgIHJlc3VsdCA9IEZpbHRlckV4cHJlc3Npb25VdGlscy5idWlsZEV4cHJlc3Npb25Gcm9tT2JqZWN0KHVzZXJGaWx0ZXIpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHVibGljIGluaXRpYWxpemVFdmVudEZpbHRlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5maWx0ZXIgJiYgIXRoaXMucXVpY2tGaWx0ZXJPYnNlcnZhYmxlKSB7XG4gICAgICB0aGlzLnF1aWNrRmlsdGVyT2JzZXJ2YWJsZSA9IGZyb21FdmVudCh0aGlzLmZpbHRlci5uYXRpdmVFbGVtZW50LCAna2V5dXAnKVxuICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoMTUwKSlcbiAgICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgZmlsdGVyVmFsID0gdGhpcy5maWx0ZXIubmF0aXZlRWxlbWVudC52YWx1ZTtcbiAgICAgICAgICBpZiAoIXRoaXMudGFibGUuZGF0YVNvdXJjZSB8fCB0aGlzLnZhbHVlID09PSBmaWx0ZXJWYWwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5zZXRWYWx1ZShmaWx0ZXJWYWwpO1xuICAgICAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICAgICAgfSk7XG5cbiAgICAgIC8vIGlmIGV4aXN0cyBmaWx0ZXIgdmFsdWUgaW4gc3RvcmFnZSB0aGVuIGZpbHRlciByZXN1bHQgdGFibGVcbiAgICAgIGNvbnN0IGZpbHRlclZhbHVlID0gdGhpcy52YWx1ZSB8fCB0aGlzLmZpbHRlci5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZShmaWx0ZXJWYWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldFZhbHVlKHZhbHVlOiBhbnksIHRyaWdnZXI6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy52YWx1ZSk7XG4gICAgaWYgKHRyaWdnZXIgJiYgdGhpcy50YWJsZSAmJiAhdGhpcy50YWJsZS5wYWdlYWJsZSAmJiB0aGlzLnRhYmxlLmRhdGFTb3VyY2UpIHtcbiAgICAgIHRoaXMudGFibGUuZGF0YVNvdXJjZS5xdWlja0ZpbHRlciA9IHRoaXMudmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uTWVudUNsb3NlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldFZhbHVlKHRoaXMudmFsdWUpO1xuICAgIHRoaXMub25DaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBpc0NoZWNrZWQoY29sdW1uOiBPQ29sdW1uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGNvbHVtbi5zZWFyY2hpbmc7XG4gIH1cblxuICBwdWJsaWMgb25DaGVja2JveENoYW5nZShjb2x1bW46IE9Db2x1bW4sIGV2ZW50OiBNYXRDaGVja2JveENoYW5nZSk6IHZvaWQge1xuICAgIGNvbHVtbi5zZWFyY2hpbmcgPSBldmVudC5jaGVja2VkO1xuICB9XG5cbiAgcHVibGljIHNob3dDYXNlU2Vuc2l0aXZlQ2hlY2tib3goKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudGFibGUuc2hvd0Nhc2VTZW5zaXRpdmVDaGVja2JveCgpO1xuICB9XG5cbiAgcHVibGljIGFyZUFsbENvbHVtbnNDaGVja2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnF1aWNrRmlsdGVyQ29sdW1ucy5ldmVyeSgoY29sOiBPQ29sdW1uKSA9PiBjb2wuc2VhcmNoaW5nKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb3VudENvbHVtbnNDaGVja2VkKCk6IG51bWJlciB7XG4gICAgbGV0IGNvdW50ID0gMDtcbiAgICB0aGlzLnF1aWNrRmlsdGVyQ29sdW1ucy5mb3JFYWNoKChjb2w6IE9Db2x1bW4pID0+IHtcbiAgICAgIGlmIChjb2wuc2VhcmNoaW5nKSB7XG4gICAgICAgIGNvdW50Kys7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGNvdW50O1xuICB9XG5cbiAgcHVibGljIG9uU2VsZWN0QWxsQ2hhbmdlKGV2ZW50OiBNYXRDaGVja2JveENoYW5nZSk6IHZvaWQge1xuICAgIHRoaXMucXVpY2tGaWx0ZXJDb2x1bW5zLmZvckVhY2goKGNvbDogT0NvbHVtbikgPT4gY29sLnNlYXJjaGluZyA9IGV2ZW50LmNoZWNrZWQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzRmlsdGVyYWJsZUNvbHVtbihjb2x1bW46IE9Db2x1bW4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gIWNvbHVtbi5yZW5kZXJlciB8fCAoXG4gICAgICBjb2x1bW4udHlwZSA9PT0gJ3N0cmluZycgfHxcbiAgICAgIGNvbHVtbi50eXBlID09PSAndHJhbnNsYXRlJyB8fFxuICAgICAgY29sdW1uLnR5cGUgPT09ICdpbnRlZ2VyJyB8fFxuICAgICAgY29sdW1uLnR5cGUgPT09ICdyZWFsJyB8fFxuICAgICAgY29sdW1uLnR5cGUgPT09ICdwZXJjZW50YWdlJyB8fFxuICAgICAgY29sdW1uLnR5cGUgPT09ICdjdXJyZW5jeScgfHxcbiAgICAgIGNvbHVtbi50eXBlID09PSAnc2VydmljZSdcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldENvbHVtbnNXaXRob3V0UmVuZGVyZXJFeHByZXNzaW9ucyhjb2x1bW5zOiBPQ29sdW1uW10pOiBFeHByZXNzaW9uW10ge1xuICAgIHJldHVybiBjb2x1bW5zXG4gICAgICAuZmlsdGVyKG9Db2wgPT4gIVV0aWwuaXNEZWZpbmVkKG9Db2wucmVuZGVyZXIpKVxuICAgICAgLm1hcChvQ29sID0+IHtcbiAgICAgICAgaWYgKFV0aWwuaXNEZWZpbmVkKG9Db2wuZmlsdGVyRXhwcmVzc2lvbkZ1bmN0aW9uKSkge1xuICAgICAgICAgIHJldHVybiBvQ29sLmZpbHRlckV4cHJlc3Npb25GdW5jdGlvbihvQ29sLmF0dHIsIHRoaXMudmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIERlZmF1bHQgYmVoYXZpb3VyXG4gICAgICAgICAgcmV0dXJuIEZpbHRlckV4cHJlc3Npb25VdGlscy5idWlsZEV4cHJlc3Npb25MaWtlKG9Db2wuYXR0ciwgdGhpcy52YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldENvbHVtbnNSZW5kZXJlckV4cHJlc3Npb25zKGNvbHVtbnM6IE9Db2x1bW5bXSkge1xuICAgIHJldHVybiBjb2x1bW5zXG4gICAgICAuZmlsdGVyKG9Db2wgPT4gVXRpbC5pc0RlZmluZWQob0NvbC5yZW5kZXJlcikgJiYgIVV0aWwuaXNEZWZpbmVkKG9Db2wuZmlsdGVyRXhwcmVzc2lvbkZ1bmN0aW9uKSlcbiAgICAgIC5tYXAob0NvbCA9PiB7XG4gICAgICAgIGlmIChVdGlsLmlzRGVmaW5lZChvQ29sLnJlbmRlcmVyLmdldEZpbHRlckV4cHJlc3Npb24pKSB7XG4gICAgICAgICAgcmV0dXJuIG9Db2wucmVuZGVyZXIuZ2V0RmlsdGVyRXhwcmVzc2lvbih0aGlzLnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBEZWZhdWx0IGJlaGF2aW91clxuICAgICAgICByZXR1cm4gRmlsdGVyRXhwcmVzc2lvblV0aWxzLmJ1aWxkRXhwcmVzc2lvbkxpa2Uob0NvbC5hdHRyLCB0aGlzLnZhbHVlKTtcbiAgICAgIH0pO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJxdWlja0ZpbHRlclwiIGZ4TGF5b3V0PVwicm93XCI+XG5cbiAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgPGlucHV0IG1hdElucHV0ICNmaWx0ZXIgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiIHBsYWNlaG9sZGVyPVwie3sgcGxhY2Vob2xkZXIgfCBvVHJhbnNsYXRlIH19XCI+XG4gICAgPGRpdiBtYXRQcmVmaXg+XG4gICAgICA8bWF0LWljb24gc3ZnSWNvbj1cIm9udGltaXplOnNlYXJjaFwiIFttYXRCYWRnZV09XCJhcmVBbGxDb2x1bW5zQ2hlY2tlZCgpPycnOmdldENvdW50Q29sdW1uc0NoZWNrZWQoKVwiIG1hdEJhZGdlU2l6ZT1cInNtYWxsXCI+PC9tYXQtaWNvbj5cbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCIgKG1lbnVDbG9zZWQpPVwib25NZW51Q2xvc2VkKClcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInNlYXJjaC1pY29uXCI+ZXhwYW5kX21vcmU8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJvLXRhYmxlLXF1aWNrZmlsdGVyLW1lbnVcIj5cbiAgICAgIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBjbGFzcz1cImNoZWNrYm94LWNvbnRhaW5lclwiPlxuXG4gICAgICAgIDxtYXQtY2hlY2tib3ggKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiIFtjaGVja2VkXT1cImFyZUFsbENvbHVtbnNDaGVja2VkKClcIiAoY2hhbmdlKT1cIm9uU2VsZWN0QWxsQ2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgICB7eyAnU0VMRUNUX0FMTCcgfCBvVHJhbnNsYXRlfX1cbiAgICAgICAgPC9tYXQtY2hlY2tib3g+XG4gICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBxdWlja0ZpbHRlckNvbHVtbnNcIj5cbiAgICAgICAgICA8bWF0LWNoZWNrYm94IChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiBbY2hlY2tlZF09XCJpc0NoZWNrZWQoY29sdW1uKVwiIChjaGFuZ2UpPVwib25DaGVja2JveENoYW5nZShjb2x1bW4sICRldmVudClcIj5cbiAgICAgICAgICAgIHt7IGNvbHVtbi50aXRsZSB8IG9UcmFuc2xhdGUgfX1cbiAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dDYXNlU2Vuc2l0aXZlQ2hlY2tib3goKVwiPlxuICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgIDxtYXQtY2hlY2tib3ggKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiIFtjaGVja2VkXT1cIm9UYWJsZU9wdGlvbnMuZmlsdGVyQ2FzZVNlbnNpdGl2ZVwiXG4gICAgICAgICAgICAoY2hhbmdlKT1cIm9UYWJsZU9wdGlvbnMuZmlsdGVyQ2FzZVNlbnNpdGl2ZSA9ICRldmVudC5jaGVja2VkXCI+XG4gICAgICAgICAgICB7eyAnVEFCTEUuRklMVEVSLkNBU0VfU0VOU0lUSVZFJyB8IG9UcmFuc2xhdGV9fVxuICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbWF0LW1lbnU+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG48L2Rpdj5cbiJdfQ==
|
|
206
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1xdWlja2ZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9leHRlbnNpb25zL2hlYWRlci90YWJsZS1xdWlja2ZpbHRlci9vLXRhYmxlLXF1aWNrZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL2V4dGVuc2lvbnMvaGVhZGVyL3RhYmxlLXF1aWNrZmlsdGVyL28tdGFibGUtcXVpY2tmaWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsTUFBTSxFQUNOLFFBQVEsRUFHUixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFLcEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDcEYsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWhELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7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QUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO2FBQy9GLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNWLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLEVBQUU7Z0JBQ3JELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDdEQ7WUFFRCxPQUFPLHFCQUFxQixDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7dUhBaE5VLDBCQUEwQixvRUE4QjNCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUM7MkdBOUIzQiwwQkFBMEIsdVlDbER2QywrdURBb0NBOzJGRGNhLDBCQUEwQjtrQkFadEMsU0FBUzsrQkFDRSxxQkFBcUIsVUFHdkIsa0NBQWtDLFdBQ2pDLG1DQUFtQyxpQkFDN0IsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDSiw2QkFBNkIsRUFBRSxNQUFNO3FCQUN0Qzs7MEJBZ0NFLE1BQU07MkJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQzs0Q0FmL0IsTUFBTTtzQkFEWixTQUFTO3VCQUFDLFFBQVE7Z0JBSVosT0FBTztzQkFEYixTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIEluamVjdCxcbiAgSW5qZWN0b3IsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3hDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBNYXRNZW51IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgT19JTlBVVFNfT1BUSU9OUyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbmZpZy9hcHAtY29uZmlnJztcbmltcG9ydCB0eXBlIHsgT1RhYmxlT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2ludGVyZmFjZXMvby10YWJsZS1vcHRpb25zLmludGVyZmFjZSc7XG5pbXBvcnQgdHlwZSB7IE9UYWJsZVF1aWNrZmlsdGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vaW50ZXJmYWNlcy9vLXRhYmxlLXF1aWNrZmlsdGVyLmludGVyZmFjZSc7XG5pbXBvcnQgdHlwZSB7IEV4cHJlc3Npb24gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi90eXBlcy9leHByZXNzaW9uLnR5cGUnO1xuaW1wb3J0IHR5cGUgeyBPSW5wdXRzT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3R5cGVzL28taW5wdXRzLW9wdGlvbnMudHlwZSc7XG5pbXBvcnQgeyBGaWx0ZXJFeHByZXNzaW9uVXRpbHMgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlsL2ZpbHRlci1leHByZXNzaW9uLnV0aWxzJztcbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlsL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBPQ29sdW1uIH0gZnJvbSAnLi4vLi4vLi4vY29sdW1uL28tY29sdW1uLmNsYXNzJztcbmltcG9ydCB7IE9UYWJsZUJhc2UgfSBmcm9tICcuLi8uLi8uLi9vLXRhYmxlLWJhc2UuY2xhc3MnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9JTlBVVFNfT19UQUJMRV9RVUlDS0ZJTFRFUiA9IFtcbiAgJ3BsYWNlaG9sZGVyJ1xuXTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfT1VUUFVUU19PX1RBQkxFX1FVSUNLRklMVEVSID0gW1xuICAnb25DaGFuZ2UnXG5dO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvLXRhYmxlLXF1aWNrZmlsdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL28tdGFibGUtcXVpY2tmaWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vLXRhYmxlLXF1aWNrZmlsdGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGlucHV0czogREVGQVVMVF9JTlBVVFNfT19UQUJMRV9RVUlDS0ZJTFRFUixcbiAgb3V0cHV0czogREVGQVVMVF9PVVRQVVRTX09fVEFCTEVfUVVJQ0tGSUxURVIsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5vLXRhYmxlLXF1aWNrZmlsdGVyXSc6ICd0cnVlJyxcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBPVGFibGVRdWlja2ZpbHRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9UYWJsZVF1aWNrZmlsdGVyLCBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgcHJvdGVjdGVkIF9wbGFjZWhvbGRlcjogc3RyaW5nID0gdW5kZWZpbmVkO1xuXG4gIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9wbGFjZWhvbGRlcjtcbiAgfVxuXG4gIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKHZhbHVlKSkge1xuICAgICAgdGhpcy5fcGxhY2Vob2xkZXIgPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBAVmlld0NoaWxkKCdmaWx0ZXInKVxuICBwdWJsaWMgZmlsdGVyOiBFbGVtZW50UmVmO1xuXG4gIEBWaWV3Q2hpbGQoJ21lbnUnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgbWF0TWVudTogTWF0TWVudTtcblxuICBwdWJsaWMgdmFsdWU6IHN0cmluZztcbiAgcHVibGljIG9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIHB1YmxpYyBmb3JtQ29udHJvbDtcblxuICBwcm90ZWN0ZWQgb0lucHV0c09wdGlvbnM6IE9JbnB1dHNPcHRpb25zO1xuICBwcm90ZWN0ZWQgcXVpY2tGaWx0ZXJPYnNlcnZhYmxlOiBTdWJzY3JpcHRpb247XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJvdGVjdGVkIGVsUmVmOiBFbGVtZW50UmVmLFxuICAgIEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBPVGFibGVCYXNlKSkgcHJvdGVjdGVkIHRhYmxlOiBPVGFibGVCYXNlXG4gICkge1xuICAgIHRoaXMuZm9ybUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy50YWJsZS5yZWdpc3RlclF1aWNrRmlsdGVyKHRoaXMpO1xuICAgIC8vIHdvcmthcm91bmQgYmVjYXVzZSAneC1wb3NpdGlvbj1cImJlZm9yZVwiJyB3YXMgbm90IHdvcmtpbmcgaW4gdGhlIHRlbXBsYXRlXG4gICAgdGhpcy5tYXRNZW51LnhQb3NpdGlvbiA9ICdiZWZvcmUnO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxpemVFdmVudEZpbHRlcigpO1xuXG4gICAgdHJ5IHtcbiAgICAgIHRoaXMub0lucHV0c09wdGlvbnMgPSB0aGlzLmluamVjdG9yLmdldChPX0lOUFVUU19PUFRJT05TKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLm9JbnB1dHNPcHRpb25zID0ge307XG4gICAgfVxuICAgIFV0aWwucGFyc2VPSW5wdXRzT3B0aW9ucyh0aGlzLmVsUmVmLCB0aGlzLm9JbnB1dHNPcHRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5xdWlja0ZpbHRlck9ic2VydmFibGUpIHtcbiAgICAgIHRoaXMucXVpY2tGaWx0ZXJPYnNlcnZhYmxlLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IG9UYWJsZU9wdGlvbnMoKTogT1RhYmxlT3B0aW9ucyB7XG4gICAgcmV0dXJuIHRoaXMudGFibGUub1RhYmxlT3B0aW9ucztcbiAgfVxuXG4gIGdldCBxdWlja0ZpbHRlckNvbHVtbnMoKTogT0NvbHVtbltdIHtcbiAgICByZXR1cm4gdGhpcy50YWJsZS5vVGFibGVPcHRpb25zLmNvbHVtbnMuZmlsdGVyKG9Db2wgPT4ge1xuICAgICAgLy8gQ0hFQ0s6IFdoeSBjb2x1bW5zIHdpdGggcmVuZGVyZXJzIGFyZSBub3QgZmlsdGVyZWQ/XG4gICAgICAvLyByZXR1cm4gb0NvbC5zZWFyY2hhYmxlICYmIG9Db2wudmlzaWJsZSAmJiAhVXRpbC5pc0RlZmluZWQob0NvbC5yZW5kZXJlcik7XG4gICAgICByZXR1cm4gb0NvbC5zZWFyY2hhYmxlICYmIG9Db2wudmlzaWJsZTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBmaWx0ZXJFeHByZXNzaW9uKCk6IEV4cHJlc3Npb24ge1xuICAgIGxldCByZXN1bHQ6IEV4cHJlc3Npb24gPSB0aGlzLmdldFVzZXJGaWx0ZXIoKTtcbiAgICBpZiAoIVV0aWwuaXNEZWZpbmVkKHJlc3VsdCkgJiYgVXRpbC5pc0RlZmluZWQodGhpcy52YWx1ZSkgJiYgdGhpcy52YWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBleHByZXNzaW9uczogRXhwcmVzc2lvbltdID0gW107XG5cbiAgICAgIGNvbnN0IHNlYXJjaGluZ0NvbHMgPSB0aGlzLm9UYWJsZU9wdGlvbnMuY29sdW1ucy5maWx0ZXIob0NvbCA9PiBvQ29sLnNlYXJjaGluZyAmJiBvQ29sLnZpc2libGUgJiYgb0NvbC5zZWFyY2hhYmxlICYmIHRoaXMuaXNGaWx0ZXJhYmxlQ29sdW1uKG9Db2wpKTtcbiAgICAgIGV4cHJlc3Npb25zLnB1c2goLi4udGhpcy5nZXRDb2x1bW5zV2l0aG91dFJlbmRlcmVyRXhwcmVzc2lvbnMoc2VhcmNoaW5nQ29scykpO1xuXG4gICAgICBjb25zdCByZW5kZXJlcnNFeHByID0gdGhpcy5nZXRDb2x1bW5zUmVuZGVyZXJFeHByZXNzaW9ucyhzZWFyY2hpbmdDb2xzKTtcblxuICAgICAgY29uc3Qgbm90TnVsbEV4cHJlc3Npb25zID0gcmVuZGVyZXJzRXhwci5maWx0ZXIoZXhwciA9PiBVdGlsLmlzRGVmaW5lZChleHByKSk7XG4gICAgICBpZiAoZXhwcmVzc2lvbnMubGVuZ3RoID09PSAwICYmIG5vdE51bGxFeHByZXNzaW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgLy8gQWxsIGZpbHRlcnMgaW4gdGhlIHJlbmRlcmVyIGFyZSBlbXB0eSBhbmQgdGhlcmUgYXJlIG5vIG90aGVyIGZpbHRlcnMgY29uZmlndXJlZCxcbiAgICAgICAgLy8gc28gd2UgYWxyZWFkeSBrbm93IHRoYXQgdGhlIHRhYmxlIHNob3VsZCBub3QgaGF2ZSBhbnkgaW5mb3JtYXRpb24gYnV0XG4gICAgICAgIC8vIGl0IHdvdWxkIG1ha2UgYSBxdWVyeSB3aXRoIGVtcHR5IGZpbHRlcnMgYW5kIHJldHJpZXZlIGluZm9ybWF0aW9uIG5vdCBjb25zaXN0ZW50IHdpdGggdGhlIGNvbmZpZ3VyZWQgcXVpY2tmaWx0ZXIgdmFsdWUsXG4gICAgICAgIC8vIHNvIHdlIGZvcmNlIHRvIHN0b3AgdGhlIHF1ZXJ5IGFuZCBzZXQgYW4gZW1wdHkgYXJyYXkgb24gdGhlIHRhYmxlXG4gICAgICAgIHRoaXMudGFibGUuYWJvcnRRdWVyeS5uZXh0KHRydWUpO1xuICAgICAgfVxuICAgICAgZXhwcmVzc2lvbnMucHVzaCguLi5ub3ROdWxsRXhwcmVzc2lvbnMpO1xuXG4gICAgICBpZiAoZXhwcmVzc2lvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICByZXN1bHQgPSBleHByZXNzaW9ucy5yZWR1Y2UoKGEsIGIpID0+IEZpbHRlckV4cHJlc3Npb25VdGlscy5idWlsZENvbXBsZXhFeHByZXNzaW9uKGEsIGIsIEZpbHRlckV4cHJlc3Npb25VdGlscy5PUF9PUikpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHVibGljIGdldFVzZXJGaWx0ZXIoKTogRXhwcmVzc2lvbiB7XG4gICAgbGV0IHJlc3VsdDogRXhwcmVzc2lvbjtcbiAgICBpZiAodGhpcy50YWJsZS5xdWlja0ZpbHRlckNhbGxiYWNrIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcbiAgICAgIGNvbnN0IHVzZXJGaWx0ZXIgPSB0aGlzLnRhYmxlLnF1aWNrRmlsdGVyQ2FsbGJhY2sodGhpcy52YWx1ZSk7XG4gICAgICBpZiAoVXRpbC5pc0RlZmluZWQodXNlckZpbHRlcikgJiYgRmlsdGVyRXhwcmVzc2lvblV0aWxzLmluc3RhbmNlb2ZFeHByZXNzaW9uKHVzZXJGaWx0ZXIpKSB7XG4gICAgICAgIHJlc3VsdCA9ICh1c2VyRmlsdGVyIGFzIEV4cHJlc3Npb24pO1xuICAgICAgfSBlbHNlIGlmIChVdGlsLmlzRGVmaW5lZCh1c2VyRmlsdGVyKSkge1xuICAgICAgICByZXN1bHQgPSBGaWx0ZXJFeHByZXNzaW9uVXRpbHMuYnVpbGRFeHByZXNzaW9uRnJvbU9iamVjdCh1c2VyRmlsdGVyKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHB1YmxpYyBpbml0aWFsaXplRXZlbnRGaWx0ZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZmlsdGVyICYmICF0aGlzLnF1aWNrRmlsdGVyT2JzZXJ2YWJsZSkge1xuICAgICAgdGhpcy5xdWlja0ZpbHRlck9ic2VydmFibGUgPSBmcm9tRXZlbnQodGhpcy5maWx0ZXIubmF0aXZlRWxlbWVudCwgJ2tleXVwJylcbiAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDE1MCkpXG4gICAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGZpbHRlclZhbCA9IHRoaXMuZmlsdGVyLm5hdGl2ZUVsZW1lbnQudmFsdWU7XG4gICAgICAgICAgaWYgKCF0aGlzLnRhYmxlLmRhdGFTb3VyY2UgfHwgdGhpcy52YWx1ZSA9PT0gZmlsdGVyVmFsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuc2V0VmFsdWUoZmlsdGVyVmFsKTtcbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAvLyBpZiBleGlzdHMgZmlsdGVyIHZhbHVlIGluIHN0b3JhZ2UgdGhlbiBmaWx0ZXIgcmVzdWx0IHRhYmxlXG4gICAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IHRoaXMudmFsdWUgfHwgdGhpcy5maWx0ZXIubmF0aXZlRWxlbWVudC52YWx1ZTtcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUoZmlsdGVyVmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRWYWx1ZSh2YWx1ZTogYW55LCB0cmlnZ2VyOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMudmFsdWUpO1xuICAgIGlmICh0cmlnZ2VyICYmIHRoaXMudGFibGUgJiYgIXRoaXMudGFibGUucGFnZWFibGUgJiYgdGhpcy50YWJsZS5kYXRhU291cmNlKSB7XG4gICAgICB0aGlzLnRhYmxlLmRhdGFTb3VyY2UucXVpY2tGaWx0ZXIgPSB0aGlzLnZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbk1lbnVDbG9zZWQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLm9uQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgaXNDaGVja2VkKGNvbHVtbjogT0NvbHVtbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBjb2x1bW4uc2VhcmNoaW5nO1xuICB9XG5cbiAgcHVibGljIG9uQ2hlY2tib3hDaGFuZ2UoY29sdW1uOiBPQ29sdW1uLCBldmVudDogTWF0Q2hlY2tib3hDaGFuZ2UpOiB2b2lkIHtcbiAgICBjb2x1bW4uc2VhcmNoaW5nID0gZXZlbnQuY2hlY2tlZDtcbiAgfVxuXG4gIHB1YmxpYyBzaG93Q2FzZVNlbnNpdGl2ZUNoZWNrYm94KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRhYmxlLnNob3dDYXNlU2Vuc2l0aXZlQ2hlY2tib3goKTtcbiAgfVxuXG4gIHB1YmxpYyBhcmVBbGxDb2x1bW5zQ2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5xdWlja0ZpbHRlckNvbHVtbnMuZXZlcnkoKGNvbDogT0NvbHVtbikgPT4gY29sLnNlYXJjaGluZyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q291bnRDb2x1bW5zQ2hlY2tlZCgpOiBudW1iZXIge1xuICAgIGxldCBjb3VudCA9IDA7XG4gICAgdGhpcy5xdWlja0ZpbHRlckNvbHVtbnMuZm9yRWFjaCgoY29sOiBPQ29sdW1uKSA9PiB7XG4gICAgICBpZiAoY29sLnNlYXJjaGluZykge1xuICAgICAgICBjb3VudCsrO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBjb3VudDtcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdEFsbENoYW5nZShldmVudDogTWF0Q2hlY2tib3hDaGFuZ2UpOiB2b2lkIHtcbiAgICB0aGlzLnF1aWNrRmlsdGVyQ29sdW1ucy5mb3JFYWNoKChjb2w6IE9Db2x1bW4pID0+IGNvbC5zZWFyY2hpbmcgPSBldmVudC5jaGVja2VkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc0ZpbHRlcmFibGVDb2x1bW4oY29sdW1uOiBPQ29sdW1uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFjb2x1bW4ucmVuZGVyZXIgfHwgKFxuICAgICAgY29sdW1uLnR5cGUgPT09ICdzdHJpbmcnIHx8XG4gICAgICBjb2x1bW4udHlwZSA9PT0gJ3RyYW5zbGF0ZScgfHxcbiAgICAgIGNvbHVtbi50eXBlID09PSAnaW50ZWdlcicgfHxcbiAgICAgIGNvbHVtbi50eXBlID09PSAncmVhbCcgfHxcbiAgICAgIGNvbHVtbi50eXBlID09PSAncGVyY2VudGFnZScgfHxcbiAgICAgIGNvbHVtbi50eXBlID09PSAnY3VycmVuY3knIHx8XG4gICAgICBjb2x1bW4udHlwZSA9PT0gJ3NlcnZpY2UnXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRDb2x1bW5zV2l0aG91dFJlbmRlcmVyRXhwcmVzc2lvbnMoY29sdW1uczogT0NvbHVtbltdKTogRXhwcmVzc2lvbltdIHtcbiAgICByZXR1cm4gY29sdW1uc1xuICAgICAgLmZpbHRlcihvQ29sID0+ICFVdGlsLmlzRGVmaW5lZChvQ29sLnJlbmRlcmVyKSlcbiAgICAgIC5tYXAob0NvbCA9PiB7XG4gICAgICAgIGlmIChVdGlsLmlzRGVmaW5lZChvQ29sLmZpbHRlckV4cHJlc3Npb25GdW5jdGlvbikpIHtcbiAgICAgICAgICByZXR1cm4gb0NvbC5maWx0ZXJFeHByZXNzaW9uRnVuY3Rpb24ob0NvbC5hdHRyLCB0aGlzLnZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBEZWZhdWx0IGJlaGF2aW91clxuICAgICAgICAgIHJldHVybiBGaWx0ZXJFeHByZXNzaW9uVXRpbHMuYnVpbGRFeHByZXNzaW9uTGlrZShvQ29sLmF0dHIsIHRoaXMudmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRDb2x1bW5zUmVuZGVyZXJFeHByZXNzaW9ucyhjb2x1bW5zOiBPQ29sdW1uW10pIHtcbiAgICByZXR1cm4gY29sdW1uc1xuICAgICAgLmZpbHRlcihvQ29sID0+IFV0aWwuaXNEZWZpbmVkKG9Db2wucmVuZGVyZXIpICYmICFVdGlsLmlzRGVmaW5lZChvQ29sLmZpbHRlckV4cHJlc3Npb25GdW5jdGlvbikpXG4gICAgICAubWFwKG9Db2wgPT4ge1xuICAgICAgICBpZiAoVXRpbC5pc0RlZmluZWQob0NvbC5yZW5kZXJlci5nZXRGaWx0ZXJFeHByZXNzaW9uKSkge1xuICAgICAgICAgIHJldHVybiBvQ29sLnJlbmRlcmVyLmdldEZpbHRlckV4cHJlc3Npb24odGhpcy52YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gRGVmYXVsdCBiZWhhdmlvdXJcbiAgICAgICAgcmV0dXJuIEZpbHRlckV4cHJlc3Npb25VdGlscy5idWlsZEV4cHJlc3Npb25MaWtlKG9Db2wuYXR0ciwgdGhpcy52YWx1ZSk7XG4gICAgICB9KTtcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwicXVpY2tGaWx0ZXJcIiBmeExheW91dD1cInJvd1wiPlxuXG4gIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgIDxpbnB1dCBtYXRJbnB1dCAjZmlsdGVyIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiBwbGFjZWhvbGRlcj1cInt7IHBsYWNlaG9sZGVyIHwgb1RyYW5zbGF0ZSB9fVwiPlxuICAgIDxkaXYgbWF0UHJlZml4PlxuICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJvbnRpbWl6ZTpzZWFyY2hcIiBbbWF0QmFkZ2VdPVwiYXJlQWxsQ29sdW1uc0NoZWNrZWQoKT8nJzpnZXRDb3VudENvbHVtbnNDaGVja2VkKClcIiBtYXRCYWRnZVNpemU9XCJzbWFsbFwiPjwvbWF0LWljb24+XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIChtZW51Q2xvc2VkKT1cIm9uTWVudUNsb3NlZCgpXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJzZWFyY2gtaWNvblwiPmV4cGFuZF9tb3JlPC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiIGNsYXNzPVwiby10YWJsZS1xdWlja2ZpbHRlci1tZW51XCI+XG4gICAgICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgY2xhc3M9XCJjaGVja2JveC1jb250YWluZXJcIj5cblxuICAgICAgICA8bWF0LWNoZWNrYm94IChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiBbY2hlY2tlZF09XCJhcmVBbGxDb2x1bW5zQ2hlY2tlZCgpXCIgKGNoYW5nZSk9XCJvblNlbGVjdEFsbENoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgICAge3sgJ1NFTEVDVF9BTEwnIHwgb1RyYW5zbGF0ZX19XG4gICAgICAgIDwvbWF0LWNoZWNrYm94PlxuICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgcXVpY2tGaWx0ZXJDb2x1bW5zXCI+XG4gICAgICAgICAgPG1hdC1jaGVja2JveCAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCIgW2NoZWNrZWRdPVwiaXNDaGVja2VkKGNvbHVtbilcIiAoY2hhbmdlKT1cIm9uQ2hlY2tib3hDaGFuZ2UoY29sdW1uLCAkZXZlbnQpXCI+XG4gICAgICAgICAgICB7eyBjb2x1bW4udGl0bGUgfCBvVHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9tYXQtY2hlY2tib3g+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93Q2FzZVNlbnNpdGl2ZUNoZWNrYm94KClcIj5cbiAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICA8bWF0LWNoZWNrYm94IChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiBbY2hlY2tlZF09XCJvVGFibGVPcHRpb25zLmZpbHRlckNhc2VTZW5zaXRpdmVcIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJvVGFibGVPcHRpb25zLmZpbHRlckNhc2VTZW5zaXRpdmUgPSAkZXZlbnQuY2hlY2tlZFwiPlxuICAgICAgICAgICAge3sgJ1RBQkxFLkZJTFRFUi5DQVNFX1NFTlNJVElWRScgfCBvVHJhbnNsYXRlfX1cbiAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L21hdC1tZW51PlxuICA8L21hdC1mb3JtLWZpZWxkPlxuPC9kaXY+XG4iXX0=
|