ontimize-web-ngx 15.6.0-next.0 → 15.6.0-next.10
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-header/o-app-header.component.mjs +3 -3
- package/esm2020/lib/components/app-sidenav/menu-group/o-app-sidenav-menu-group.component.mjs +19 -3
- package/esm2020/lib/components/app-sidenav/menu-item/o-app-sidenav-menu-item.component.mjs +17 -4
- package/esm2020/lib/components/app-sidenav/o-app-sidenav.component.mjs +7 -5
- package/esm2020/lib/components/filter-builder/o-filter-builder.component.mjs +1 -1
- package/esm2020/lib/components/form/navigation/o-form-navigation.component.mjs +42 -24
- package/esm2020/lib/components/form/o-form.component.mjs +4 -3
- package/esm2020/lib/components/form/services/o-form-message.service.mjs +2 -2
- package/esm2020/lib/components/grid/o-grid.component.mjs +19 -17
- package/esm2020/lib/components/grid/skeketon/o-grid-skeleton.component.mjs +12 -15
- package/esm2020/lib/components/index.mjs +2 -1
- package/esm2020/lib/components/input/file-input/o-file-input.component.mjs +3 -2
- package/esm2020/lib/components/input/o-boolean-form-data-component.class.mjs +9 -1
- package/esm2020/lib/components/input/o-form-service-component.class.mjs +5 -4
- package/esm2020/lib/components/list/list-item/o-list-item.component.mjs +8 -3
- package/esm2020/lib/components/list/o-list.component.mjs +41 -16
- package/esm2020/lib/components/list/skeleton/o-list-skeleton.component.mjs +12 -15
- package/esm2020/lib/components/o-form-data-component.class.mjs +2 -2
- package/esm2020/lib/components/o-repeatable-skeleton.component.mjs +33 -0
- package/esm2020/lib/components/o-service-base-component.class.mjs +5 -4
- package/esm2020/lib/components/o-service-component.class.mjs +10 -9
- package/esm2020/lib/components/o-skeleton.component.mjs +15 -6
- package/esm2020/lib/components/table/column/cell-editor/o-base-table-cell-editor.class.mjs +2 -2
- package/esm2020/lib/components/table/column/cell-renderer/o-base-table-cell-renderer.class.mjs +1 -1
- package/esm2020/lib/components/table/column/cell-renderer/service/o-table-cell-renderer-service.component.mjs +5 -4
- package/esm2020/lib/components/table/column/o-column.class.mjs +2 -1
- package/esm2020/lib/components/table/column/o-table-column.component.mjs +10 -4
- package/esm2020/lib/components/table/extensions/contextmenu/o-table-context-menu.component.mjs +24 -6
- package/esm2020/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column-data-dialog.component.mjs +75 -87
- package/esm2020/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column.service.mjs +53 -0
- package/esm2020/lib/components/table/extensions/header/table-columns-filter/o-table-columns-filter.component.mjs +12 -4
- package/esm2020/lib/components/table/extensions/header/table-menu/o-table-menu.component.mjs +2 -2
- package/esm2020/lib/components/table/extensions/o-table.dao.mjs +14 -14
- package/esm2020/lib/components/table/extensions/skeleton/o-table-skeleton.component.mjs +5 -19
- package/esm2020/lib/components/table/o-table-base.class.mjs +1 -1
- package/esm2020/lib/components/table/o-table.component.mjs +104 -10
- package/esm2020/lib/components/table/o-table.module.mjs +4 -1
- package/esm2020/lib/components/tree/o-tree.component.mjs +96 -14
- package/esm2020/lib/components/tree/o-tree.datasource.mjs +3 -3
- package/esm2020/lib/components/user-info/o-user-info.component.mjs +5 -4
- package/esm2020/lib/config/app-config.mjs +1 -1
- package/esm2020/lib/config/o-providers.mjs +6 -6
- package/esm2020/lib/i18n/i18n.mjs +6 -3
- package/esm2020/lib/injection-tokens/index.mjs +19 -0
- package/esm2020/lib/interfaces/base-response.interface.mjs +1 -1
- package/esm2020/lib/interfaces/form-layout-manager.interface.mjs +1 -1
- package/esm2020/lib/interfaces/index.mjs +3 -1
- package/esm2020/lib/interfaces/jsonapi-config.interface.mjs +3 -0
- package/esm2020/lib/interfaces/jsonapi-response.interface.mjs +2 -1
- package/esm2020/lib/interfaces/o-table-column.interface.mjs +1 -1
- package/esm2020/lib/interfaces/service-response.interface.mjs +1 -1
- package/esm2020/lib/layouts/app-layout/o-app-layout-base.class.mjs +1 -1
- package/esm2020/lib/layouts/app-layout/o-app-layout.component.mjs +26 -9
- package/esm2020/lib/layouts/form-layout/o-form-layout-manager.component.mjs +4 -3
- package/esm2020/lib/layouts/form-layout/split-pane/o-form-layout-split-pane.component.mjs +2 -2
- package/esm2020/lib/layouts/form-layout/tabgroup/o-form-layout-tabgroup.component.mjs +2 -1
- package/esm2020/lib/services/base-data-service.class.mjs +2 -1
- package/esm2020/lib/services/base-service.class.mjs +3 -3
- package/esm2020/lib/services/factories.mjs +26 -54
- package/esm2020/lib/services/index.mjs +3 -2
- package/esm2020/lib/services/jsonapi/jsonapi-preferences.service.mjs +16 -14
- package/esm2020/lib/services/jsonapi/jsonapi.service.mjs +54 -23
- package/esm2020/lib/services/ontimize/index.mjs +1 -2
- package/esm2020/lib/services/ontimize/ontimize-ee.service.mjs +1 -5
- package/esm2020/lib/services/ontimize/ontimize-export-3xx.service.mjs +2 -2
- package/esm2020/lib/services/ontimize/ontimize-preferences.service.mjs +4 -6
- package/esm2020/lib/services/request-adapter/base-request-argument.adapter.mjs +12 -0
- package/esm2020/lib/services/request-adapter/base-request-argument.interface.mjs +2 -0
- package/esm2020/lib/services/request-adapter/index.mjs +5 -0
- package/esm2020/lib/services/request-adapter/jsonapi-request-arguments.adapter.mjs +70 -0
- package/esm2020/lib/services/request-adapter/ontimize-request-arguments.adapter.mjs +19 -0
- package/esm2020/lib/services/state/o-filter-builder-component-state.service.mjs +1 -1
- package/esm2020/lib/services/state/o-table-component-state.class.mjs +7 -1
- package/esm2020/lib/services/state/o-table-component-state.service.mjs +8 -2
- package/esm2020/lib/services/translate/o-translate.service.mjs +8 -4
- package/esm2020/lib/types/config.type.mjs +1 -1
- package/esm2020/lib/types/form-layout-detail-component-data.type.mjs +1 -1
- package/esm2020/lib/types/index.mjs +1 -2
- package/esm2020/lib/types/service-configuration.type.mjs +1 -1
- package/esm2020/lib/types/table/index.mjs +2 -1
- package/esm2020/lib/types/table/o-column-value-filter.type.mjs +1 -1
- package/esm2020/lib/types/table/o-table-expandable-row-state.type.mjs +2 -0
- package/esm2020/lib/util/codes.mjs +3 -1
- package/esm2020/lib/util/errors.mjs +3 -9
- package/esm2020/lib/util/factory.util.mjs +67 -0
- package/esm2020/lib/util/index.mjs +3 -1
- package/esm2020/lib/util/injection-token.utils.mjs +4 -0
- package/esm2020/lib/util/preference-mapping-util.mjs +22 -7
- package/esm2020/lib/util/sqltypes.mjs +2 -2
- package/esm2020/lib/util/util.mjs +11 -38
- package/esm2020/public-api.mjs +2 -1
- package/fesm2015/ontimize-web-ngx.mjs +6801 -6332
- package/fesm2015/ontimize-web-ngx.mjs.map +1 -1
- package/fesm2020/ontimize-web-ngx.mjs +6660 -6211
- package/fesm2020/ontimize-web-ngx.mjs.map +1 -1
- package/lib/components/app-sidenav/menu-group/o-app-sidenav-menu-group.component.d.ts +3 -0
- package/lib/components/app-sidenav/menu-item/o-app-sidenav-menu-item.component.d.ts +1 -0
- package/lib/components/app-sidenav/o-app-sidenav.component.d.ts +2 -1
- package/lib/components/filter-builder/o-filter-builder.component.d.ts +1 -1
- package/lib/components/form/navigation/o-form-navigation.component.d.ts +7 -4
- package/lib/components/grid/skeketon/o-grid-skeleton.component.d.ts +4 -7
- package/lib/components/index.d.ts +1 -0
- package/lib/components/input/o-boolean-form-data-component.class.d.ts +1 -0
- package/lib/components/list/o-list.component.d.ts +5 -1
- package/lib/components/list/skeleton/o-list-skeleton.component.d.ts +4 -7
- package/lib/components/o-repeatable-skeleton.component.d.ts +9 -0
- package/lib/components/o-skeleton.component.d.ts +10 -5
- package/lib/components/table/column/cell-renderer/o-base-table-cell-renderer.class.d.ts +1 -1
- package/lib/components/table/column/o-column.class.d.ts +2 -1
- package/lib/components/table/column/o-table-column.component.d.ts +2 -2
- package/lib/components/table/extensions/contextmenu/o-table-context-menu.component.d.ts +2 -0
- package/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column-data-dialog.component.d.ts +9 -6
- package/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column.service.d.ts +12 -0
- package/lib/components/table/extensions/header/o-table-header-components.d.ts +2 -2
- package/lib/components/table/extensions/header/table-columns-filter/o-table-columns-filter.component.d.ts +1 -1
- package/lib/components/table/extensions/o-table.dao.d.ts +3 -2
- package/lib/components/table/extensions/skeleton/o-table-skeleton.component.d.ts +1 -10
- package/lib/components/table/o-table-base.class.d.ts +3 -0
- package/lib/components/table/o-table.component.d.ts +12 -2
- package/lib/components/tree/o-tree.component.d.ts +10 -1
- package/lib/components/user-info/o-user-info.component.d.ts +2 -1
- package/lib/config/app-config.d.ts +1 -1
- package/lib/config/o-directives.d.ts +1 -1
- package/lib/i18n/i18n.d.ts +3 -0
- package/lib/injection-tokens/index.d.ts +33 -0
- package/lib/interfaces/base-response.interface.d.ts +0 -2
- package/lib/interfaces/form-layout-manager.interface.d.ts +1 -1
- package/lib/interfaces/index.d.ts +2 -0
- package/lib/interfaces/jsonapi-config.interface.d.ts +3 -0
- package/lib/interfaces/jsonapi-response.interface.d.ts +47 -7
- package/lib/interfaces/o-table-column.interface.d.ts +2 -1
- package/lib/interfaces/service-response.interface.d.ts +2 -0
- package/lib/layouts/app-layout/o-app-layout-base.class.d.ts +1 -1
- package/lib/layouts/app-layout/o-app-layout.component.d.ts +7 -3
- package/lib/services/base-data-service.class.d.ts +1 -0
- package/lib/services/base-service.class.d.ts +2 -2
- package/lib/services/factories.d.ts +10 -31
- package/lib/services/index.d.ts +2 -1
- package/lib/services/jsonapi/jsonapi-preferences.service.d.ts +1 -1
- package/lib/services/jsonapi/jsonapi.service.d.ts +7 -5
- package/lib/services/ontimize/index.d.ts +0 -1
- package/lib/services/ontimize/ontimize-ee.service.d.ts +0 -1
- package/lib/services/{query-arguments/base-query-argument.adapter.d.ts → request-adapter/base-request-argument.adapter.d.ts} +2 -1
- package/lib/services/{query-arguments/base-query-argument.interface.d.ts → request-adapter/base-request-argument.interface.d.ts} +1 -1
- package/lib/services/request-adapter/index.d.ts +4 -0
- package/lib/services/request-adapter/jsonapi-request-arguments.adapter.d.ts +13 -0
- package/lib/services/request-adapter/ontimize-request-arguments.adapter.d.ts +8 -0
- package/lib/services/state/o-filter-builder-component-state.service.d.ts +1 -1
- package/lib/services/state/o-table-component-state.class.d.ts +3 -0
- package/lib/services/translate/o-translate.service.d.ts +1 -0
- package/lib/types/config.type.d.ts +2 -2
- package/lib/types/form-layout-detail-component-data.type.d.ts +1 -1
- package/lib/types/index.d.ts +0 -1
- package/lib/types/service-configuration.type.d.ts +12 -2
- package/lib/types/table/index.d.ts +1 -0
- package/lib/types/table/o-column-value-filter.type.d.ts +3 -0
- package/lib/types/table/o-table-expandable-row-state.type.d.ts +5 -0
- package/lib/util/codes.d.ts +3 -0
- package/lib/util/factory.util.d.ts +10 -0
- package/lib/util/index.d.ts +2 -0
- package/lib/util/injection-token.utils.d.ts +2 -0
- package/lib/util/preference-mapping-util.d.ts +22 -3
- package/lib/util/util.d.ts +1 -3
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/esm2020/lib/services/ontimize/o-preference-query-argument.adapter.mjs +0 -17
- package/esm2020/lib/services/query-arguments/base-query-argument.adapter.mjs +0 -9
- package/esm2020/lib/services/query-arguments/base-query-argument.interface.mjs +0 -2
- package/esm2020/lib/services/query-arguments/index.mjs +0 -5
- package/esm2020/lib/services/query-arguments/jsonapi-query-arguments.adapter.mjs +0 -63
- package/esm2020/lib/services/query-arguments/ontimize-query-arguments.adapter.mjs +0 -19
- package/esm2020/lib/types/ontimize-service-config.type.mjs +0 -2
- package/lib/services/ontimize/o-preference-query-argument.adapter.d.ts +0 -7
- package/lib/services/query-arguments/index.d.ts +0 -4
- package/lib/services/query-arguments/jsonapi-query-arguments.adapter.d.ts +0 -12
- package/lib/services/query-arguments/ontimize-query-arguments.adapter.d.ts +0 -8
- package/lib/types/ontimize-service-config.type.d.ts +0 -5
|
@@ -28,7 +28,8 @@ export const DEFAULT_INPUTS_O_APP_SIDENAV = [
|
|
|
28
28
|
'closedSidenavImg: closed-sidenav-image',
|
|
29
29
|
'layoutMode: layout-mode',
|
|
30
30
|
'sidenavMode: sidenav-mode',
|
|
31
|
-
'storeState: store-state'
|
|
31
|
+
'storeState: store-state',
|
|
32
|
+
'showEllipsisMenu: show-ellipsis-menu'
|
|
32
33
|
];
|
|
33
34
|
export const DEFAULT_OUTPUTS_O_APP_SIDENAV = [
|
|
34
35
|
'onSidenavOpenedChange',
|
|
@@ -48,6 +49,7 @@ export class OAppSidenavComponent extends OAppSidenavComponentStateService {
|
|
|
48
49
|
this.menuRootArray = [];
|
|
49
50
|
this._layoutMode = Codes.APP_LAYOUT_MODE_DESKTOP;
|
|
50
51
|
this.opened = true;
|
|
52
|
+
this.showEllipsisMenu = false;
|
|
51
53
|
this._showUserInfo = true;
|
|
52
54
|
this._showToggleButton = true;
|
|
53
55
|
this.onSidenavOpenedChange = new EventEmitter();
|
|
@@ -241,9 +243,9 @@ export class OAppSidenavComponent extends OAppSidenavComponentStateService {
|
|
|
241
243
|
}
|
|
242
244
|
}
|
|
243
245
|
OAppSidenavComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OAppSidenavComponent, deps: [{ token: i0.Injector }, { token: i1.Router }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i2.MediaObserver }], target: i0.ɵɵFactoryTarget.Component });
|
|
244
|
-
OAppSidenavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: OAppSidenavComponent, selector: "o-app-sidenav", inputs: { opened: "opened", showUserInfo: ["show-user-info", "showUserInfo"], showToggleButton: ["show-toggle-button", "showToggleButton"], openedSidenavImg: ["opened-sidenav-image", "openedSidenavImg"], closedSidenavImg: ["closed-sidenav-image", "closedSidenavImg"], layoutMode: ["layout-mode", "layoutMode"], sidenavMode: ["sidenav-mode", "sidenavMode"], storeState: ["store-state", "storeState"] }, outputs: { onSidenavOpenedChange: "onSidenavOpenedChange", onSidenavOpenedStart: "onSidenavOpenedStart", onSidenavClosedStart: "onSidenavClosedStart", onSidenavToggle: "onSidenavToggle", afterSidenavToggle: "afterSidenavToggle" }, host: { listeners: { "window:beforeunload": "beforeunloadHandler()", "window:resize": "onResize()" }, properties: { "class.o-app-sidenav": "true" } }, providers: [
|
|
246
|
+
OAppSidenavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: OAppSidenavComponent, selector: "o-app-sidenav", inputs: { opened: "opened", showUserInfo: ["show-user-info", "showUserInfo"], showToggleButton: ["show-toggle-button", "showToggleButton"], openedSidenavImg: ["opened-sidenav-image", "openedSidenavImg"], closedSidenavImg: ["closed-sidenav-image", "closedSidenavImg"], layoutMode: ["layout-mode", "layoutMode"], sidenavMode: ["sidenav-mode", "sidenavMode"], storeState: ["store-state", "storeState"], showEllipsisMenu: ["show-ellipsis-menu", "showEllipsisMenu"] }, outputs: { onSidenavOpenedChange: "onSidenavOpenedChange", onSidenavOpenedStart: "onSidenavOpenedStart", onSidenavClosedStart: "onSidenavClosedStart", onSidenavToggle: "onSidenavToggle", afterSidenavToggle: "afterSidenavToggle" }, host: { listeners: { "window:beforeunload": "beforeunloadHandler()", "window:resize": "onResize()" }, properties: { "class.o-app-sidenav": "true" } }, providers: [
|
|
245
247
|
{ provide: OAppSidenavBase, useExisting: forwardRef(() => OAppSidenavComponent) }
|
|
246
|
-
], viewQueries: [{ propertyName: "sidenav", first: true, predicate: MatSidenav, descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-sidenav-container class=\"o-app-sidenav-container\" [class.opened]=\"sidenav.opened\"\n [class.o-app-sidenav-mode-desktop]=\"(layoutMode || 'desktop') === 'desktop'\"\n [class.o-app-sidenav-mode-mobile]=\"(layoutMode || 'desktop') !== 'desktop'\">\n\n <mat-sidenav #sidenav class=\"o-app-sidenav-sidenav o-scroll\" [opened]=\"isSidenavOpened()\"\n [mode]=\"(sidenavMode || ((layoutMode || 'desktop') === 'desktop' ? 'side' : 'over'))\" [class.mat-drawer-opened]=\"sidenav.opened\"\n [class.mat-drawer-closed]=\"!sidenav.opened\" fxLayoutAlign=\"start stretch\" (openedChange)=\"sidenavOpenedChange()\"\n (closedStart)=\"sidenavClosedStart()\" (openedStart)=\"sidenavOpenedStart()\">\n <div fxFlex fxLayout=\"column\">\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\" class=\"sidenav-toggle-container\" *ngIf=\"isDesktopMode()\">\n <mat-icon class=\"sidenav-toggle\" (click)=\"toggleSidenav()\" svgIcon=\"ontimize:menu\">menu</mat-icon>\n </div>\n\n <o-app-sidenav-image [opened-src]=\"openedSidenavImg\" [closed-src]=\"closedSidenavImg\"> </o-app-sidenav-image>\n <ng-content select=\"o-app-layout-sidenav-projection-start\"></ng-content>\n <div class=\"navMenu\">\n <nav *ngFor=\"let menuRootItem of menuRootArray\">\n\n <ul *ngIf=\"appMenuService.getMenuItemType(menuRootItem) !== 'group' && appMenuService.isVisible(menuRootItem)\">\n <o-app-sidenav-menu-item [menu-item]=\"menuRootItem\" [menu-item-type]=\"appMenuService.getMenuItemType(menuRootItem)\"\n [sidenav-opened]=\"sidenav.opened\" (onClick)=\"onMenuItemClick()\">\n </o-app-sidenav-menu-item>\n </ul>\n\n <o-app-sidenav-menu-group [menu-group]=\"menuRootItem\" [sidenav-opened]=\"sidenav.opened\" level=\"1\"\n *ngIf=\"appMenuService.getMenuItemType(menuRootItem) === 'group' && appMenuService.isVisible(menuRootItem)\"\n (onItemClick)=\"onMenuItemClick()\">\n </o-app-sidenav-menu-group>\n\n </nav>\n </div>\n <div class=\"layout-sidenav-projection-end\">\n <ng-content select=\"o-app-layout-sidenav-projection-end\"></ng-content>\n </div>\n </div>\n </mat-sidenav>\n\n <mat-sidenav-content class=\"o-app-sidenav-content\">\n <ng-content></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>\n", styles: [".o-app-sidenav.header-layout .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav{box-shadow:3px 48px 6px #0000003d}.o-app-sidenav .navMenu{flex:1;display:flex;flex-direction:column;overflow:auto}@-moz-document url-prefix(){.o-app-sidenav .navMenu{height:100%}}.o-app-sidenav .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-menu-item a{margin-left:8px}.o-app-sidenav .o-app-sidenav-menu-group a .mat-icon svg,.o-app-sidenav .o-app-sidenav-menu-item a .mat-icon svg{display:flex}.o-app-sidenav .o-app-sidenav-menu-group[disabled=true] .mat-button-focus-overlay,.o-app-sidenav .o-app-sidenav-menu-group[disabled=true] .mat-mdc-button-persistent-ripple,.o-app-sidenav .o-app-sidenav-menu-item[disabled=true] .mat-button-focus-overlay,.o-app-sidenav .o-app-sidenav-menu-item[disabled=true] .mat-mdc-button-persistent-ripple{display:none}.o-app-sidenav .o-app-sidenav-menu-group[disabled=true] .o-app-sidenav-item,.o-app-sidenav .o-app-sidenav-menu-item[disabled=true] .o-app-sidenav-item{opacity:.5}.o-app-sidenav .o-app-sidenav-menu-group[disabled=true] a,.o-app-sidenav .o-app-sidenav-menu-item[disabled=true] a{cursor:initial}.o-app-sidenav .o-app-sidenav-menugroup{transition:background-color .5s}.o-app-sidenav .o-app-sidenav-menugroup-items-container{overflow:hidden}.o-app-sidenav .o-app-sidenav-container{width:100%;height:100%}.o-app-sidenav .o-app-sidenav-container.o-app-sidenav-mode-desktop:not(.opened) .o-app-sidenav-sidenav.mat-drawer-closed{visibility:visible!important;transform:translate3d(-191px,0,0)}.o-app-sidenav .o-app-sidenav-container.o-app-sidenav-mode-desktop:not(.opened) .o-app-sidenav-content.mat-drawer-content{margin-right:48px!important;transform:translate3d(48px,0,0)!important}.o-app-sidenav .o-app-sidenav-container .o-app-sidenav-content{position:absolute;right:0;left:0;min-height:100%;display:flex;flex-direction:column}.o-app-sidenav .o-app-sidenav-container .o-app-sidenav-content router-outlet+*{flex-grow:1}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav{box-shadow:3px 0 6px #0000003d;width:240px;bottom:0;overflow:auto;height:100%}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup{transition:padding .5s 0s}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup .o-app-sidenav-menugroup-arrow{transition:.5s transform cubic-bezier(.25,.8,.25,1)}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup.opened .o-app-sidenav-menugroup-arrow{transform:rotate(90deg)}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup-title,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menuitem-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a{padding-left:28px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a{padding-left:52px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-2 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-3 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-4 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-5 a{padding-right:4px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-3 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-4 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-5 a{padding-left:52px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup mat-icon:not(.o-app-sidenav-menugroup-arrow),.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menuitem mat-icon:not(.o-app-sidenav-menugroup-arrow){margin-right:16px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closing{transform:translate3d(-191px,0,0)}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed{text-align:center}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-item:not(.o-user-info){cursor:pointer}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-item.o-user-info:focus,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-item.o-user-info:hover{color:inherit}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-menu-group:not([disabled=true]) a.o-app-sidenav-viewer-sidenav-item-selected,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-menu-item:not([disabled=true]) a.o-app-sidenav-viewer-sidenav-item-selected{padding:0 8px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed nav{width:48px;min-width:48px;margin-left:auto}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-image .o-app-sidenav-image-container{padding:0;text-align:end;max-height:36px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-image .o-app-sidenav-image-container .o-app-sidenav-image{max-height:36px;margin-right:8px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container{padding-bottom:16px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .sidenav-toggle-container{height:48px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container nav a{border-radius:0;box-sizing:border-box;display:block;line-height:48px;height:auto;font-size:14px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container nav a>.mat-icon{vertical-align:middle;height:24px;width:24px;font-size:24px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container ul{list-style-type:none;margin:0;padding:0}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container ul li{margin:0;padding:0}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .sidenav-toggle{padding:4px 12px 8px;cursor:pointer}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-1 a{font-size:14px;line-height:48px;height:48px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a{font-size:12px;line-height:40px;height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a .mat-mdc-button-touch-target,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a .mat-mdc-button-touch-target{height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a{font-size:12px;line-height:40px;height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a .mat-mdc-button-touch-target{height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a{font-size:11px;line-height:40px;height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a .mat-mdc-button-touch-target,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a .mat-mdc-button-touch-target{height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a .mat-icon,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a .mat-icon{font-size:20px;height:20px;width:20px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menugroup-arrow{display:flex}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.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: i4.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: i4.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: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i6.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i6.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "component", type: i7.OAppSidenavMenuGroupComponent, selector: "o-app-sidenav-menu-group", inputs: ["menu-group", "sidenav-opened", "level"], outputs: ["onItemClick"] }, { kind: "component", type: i8.OAppSidenavImageComponent, selector: "o-app-sidenav-image", inputs: ["opened-src", "closed-src"] }, { kind: "component", type: i9.OAppSidenavMenuItemComponent, selector: "o-app-sidenav-menu-item", inputs: ["menu-item", "menu-item-type", "sidenav-opened", "disabled"], outputs: ["onClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
248
|
+
], viewQueries: [{ propertyName: "sidenav", first: true, predicate: MatSidenav, descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-sidenav-container class=\"o-app-sidenav-container\" [class.opened]=\"sidenav.opened\"\n [class.o-app-sidenav-mode-desktop]=\"(layoutMode || 'desktop') === 'desktop'\"\n [class.o-app-sidenav-mode-mobile]=\"(layoutMode || 'desktop') !== 'desktop'\">\n\n <mat-sidenav #sidenav class=\"o-app-sidenav-sidenav o-scroll\" [opened]=\"isSidenavOpened()\"\n [mode]=\"(sidenavMode || ((layoutMode || 'desktop') === 'desktop' ? 'side' : 'over'))\" [class.mat-drawer-opened]=\"sidenav.opened\"\n [class.mat-drawer-closed]=\"!sidenav.opened\" [class.ellipsis-menu-items]=\"showEllipsisMenu\" (openedChange)=\"sidenavOpenedChange()\"\n (closedStart)=\"sidenavClosedStart()\" (openedStart)=\"sidenavOpenedStart()\">\n <div fxLayout=\"column\" class=\"sidenav-wrapper\">\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\" class=\"sidenav-toggle-container\" *ngIf=\"isDesktopMode()\">\n <mat-icon id=\"sidenav-menu\" class=\"sidenav-toggle\" (click)=\"toggleSidenav()\" svgIcon=\"ontimize:menu\">menu</mat-icon>\n </div>\n\n <o-app-sidenav-image [opened-src]=\"openedSidenavImg\" [closed-src]=\"closedSidenavImg\"> </o-app-sidenav-image>\n <ng-content select=\"o-app-layout-sidenav-projection-start\"></ng-content>\n <div class=\"navMenu\">\n <nav *ngFor=\"let menuRootItem of menuRootArray\">\n\n <ul *ngIf=\"appMenuService.getMenuItemType(menuRootItem) !== 'group' && appMenuService.isVisible(menuRootItem)\">\n <o-app-sidenav-menu-item [menu-item]=\"menuRootItem\" [menu-item-type]=\"appMenuService.getMenuItemType(menuRootItem)\"\n [sidenav-opened]=\"sidenav.opened\" (onClick)=\"onMenuItemClick()\">\n </o-app-sidenav-menu-item>\n </ul>\n\n <o-app-sidenav-menu-group [menu-group]=\"menuRootItem\" [sidenav-opened]=\"sidenav.opened\" level=\"1\"\n *ngIf=\"appMenuService.getMenuItemType(menuRootItem) === 'group' && appMenuService.isVisible(menuRootItem)\"\n (onItemClick)=\"onMenuItemClick()\">\n </o-app-sidenav-menu-group>\n\n </nav>\n </div>\n <div class=\"layout-sidenav-projection-end\">\n <ng-content select=\"o-app-layout-sidenav-projection-end\"></ng-content>\n </div>\n </div>\n </mat-sidenav>\n\n <mat-sidenav-content class=\"o-app-sidenav-content\">\n <ng-content></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>\n", styles: [".o-app-sidenav.header-layout .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav{box-shadow:3px 48px 6px #0000003d}.o-app-sidenav .navMenu{flex:1;display:flex;flex-direction:column;overflow:auto}@-moz-document url-prefix(){.o-app-sidenav .navMenu{height:100%}}.o-app-sidenav .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-menu-item a{margin-left:8px}.o-app-sidenav .o-app-sidenav-menu-group a .mat-icon svg,.o-app-sidenav .o-app-sidenav-menu-item a .mat-icon svg{display:flex}.o-app-sidenav .o-app-sidenav-menu-group[disabled=true] .mat-button-focus-overlay,.o-app-sidenav .o-app-sidenav-menu-group[disabled=true] .mat-mdc-button-persistent-ripple,.o-app-sidenav .o-app-sidenav-menu-item[disabled=true] .mat-button-focus-overlay,.o-app-sidenav .o-app-sidenav-menu-item[disabled=true] .mat-mdc-button-persistent-ripple{display:none}.o-app-sidenav .o-app-sidenav-menu-group[disabled=true] .o-app-sidenav-item,.o-app-sidenav .o-app-sidenav-menu-item[disabled=true] .o-app-sidenav-item{opacity:.5}.o-app-sidenav .o-app-sidenav-menu-group[disabled=true] a,.o-app-sidenav .o-app-sidenav-menu-item[disabled=true] a{cursor:initial}.o-app-sidenav .o-app-sidenav-menugroup{transition:background-color .5s}.o-app-sidenav .o-app-sidenav-menugroup-items-container{overflow:hidden}.o-app-sidenav .o-app-sidenav-container{width:100%;height:100%}.o-app-sidenav .o-app-sidenav-container.o-app-sidenav-mode-desktop:not(.opened) .o-app-sidenav-sidenav.mat-drawer-closed{visibility:visible!important;transform:translate3d(-191px,0,0)}.o-app-sidenav .o-app-sidenav-container.o-app-sidenav-mode-desktop:not(.opened) .o-app-sidenav-content.mat-drawer-content{margin-right:48px!important;transform:translate3d(48px,0,0)!important}.o-app-sidenav .o-app-sidenav-container .o-app-sidenav-content{position:absolute;right:0;left:0;min-height:100%;display:flex;flex-direction:column}.o-app-sidenav .o-app-sidenav-container .o-app-sidenav-content router-outlet+*{flex-grow:1}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav{box-shadow:3px 0 6px #0000003d;width:240px;bottom:0;overflow:auto;height:100%;display:flex}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup{transition:padding .5s 0s}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup .o-app-sidenav-menugroup-arrow{transition:.5s transform cubic-bezier(.25,.8,.25,1)}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup.opened .o-app-sidenav-menugroup-arrow{transform:rotate(90deg)}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup-title,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menuitem-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a{padding-left:28px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a{padding-left:52px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-2 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-3 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-4 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-5 a{padding-right:4px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-3 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-4 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-5 a{padding-left:52px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup mat-icon:not(.o-app-sidenav-menugroup-arrow),.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menuitem mat-icon:not(.o-app-sidenav-menugroup-arrow){margin-right:16px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closing{transform:translate3d(-191px,0,0)}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed{text-align:center}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-item:not(.o-user-info){cursor:pointer}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-item.o-user-info:focus,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-item.o-user-info:hover{color:inherit}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-menu-group:not([disabled=true]) a.o-app-sidenav-viewer-sidenav-item-selected,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-menu-item:not([disabled=true]) a.o-app-sidenav-viewer-sidenav-item-selected{padding:0 8px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed nav{width:48px;min-width:48px;margin-left:auto}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-image .o-app-sidenav-image-container{padding:0;text-align:end;max-height:36px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-image .o-app-sidenav-image-container .o-app-sidenav-image{max-height:36px;margin-right:8px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.ellipsis-menu-items,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.ellipsis-menu-items .mat-drawer-inner-container{display:block}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.ellipsis-menu-items .sidenav-wrapper{height:100%;width:100%;padding-bottom:16px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container{display:flex}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .sidenav-wrapper{flex:1}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .o-app-sidenav-content-container{padding-bottom:16px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .sidenav-toggle-container{height:48px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav nav a{border-radius:0;box-sizing:border-box;display:block;line-height:48px;height:auto;font-size:14px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav nav a>.mat-icon{vertical-align:middle;height:24px;width:24px;font-size:24px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav ul{list-style-type:none;margin:0;padding:0}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav ul li{margin:0;padding:0}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .sidenav-toggle{padding:4px 12px 8px;cursor:pointer}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .o-app-sidenav-menu-group-level-1 a{font-size:14px;line-height:48px;height:48px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a{font-size:12px;line-height:40px;height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a .mat-mdc-button-touch-target,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a .mat-mdc-button-touch-target{height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .o-app-sidenav-menu-group-level-2 a{font-size:12px;line-height:40px;height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .o-app-sidenav-menu-group-level-2 a .mat-mdc-button-touch-target{height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a{font-size:11px;line-height:40px;height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a .mat-mdc-button-touch-target,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a .mat-mdc-button-touch-target{height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a .mat-icon,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a .mat-icon{font-size:20px;height:20px;width:20px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .o-app-sidenav-menugroup-arrow{display:flex}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.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: i4.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: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i6.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i6.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "component", type: i7.OAppSidenavMenuGroupComponent, selector: "o-app-sidenav-menu-group", inputs: ["menu-group", "sidenav-opened", "level"], outputs: ["onItemClick"] }, { kind: "component", type: i8.OAppSidenavImageComponent, selector: "o-app-sidenav-image", inputs: ["opened-src", "closed-src"] }, { kind: "component", type: i9.OAppSidenavMenuItemComponent, selector: "o-app-sidenav-menu-item", inputs: ["menu-item", "menu-item-type", "sidenav-opened", "disabled"], outputs: ["onClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
247
249
|
__decorate([
|
|
248
250
|
BooleanInputConverter(),
|
|
249
251
|
__metadata("design:type", Boolean)
|
|
@@ -254,7 +256,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
254
256
|
'[class.o-app-sidenav]': 'true'
|
|
255
257
|
}, providers: [
|
|
256
258
|
{ provide: OAppSidenavBase, useExisting: forwardRef(() => OAppSidenavComponent) }
|
|
257
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-sidenav-container class=\"o-app-sidenav-container\" [class.opened]=\"sidenav.opened\"\n [class.o-app-sidenav-mode-desktop]=\"(layoutMode || 'desktop') === 'desktop'\"\n [class.o-app-sidenav-mode-mobile]=\"(layoutMode || 'desktop') !== 'desktop'\">\n\n <mat-sidenav #sidenav class=\"o-app-sidenav-sidenav o-scroll\" [opened]=\"isSidenavOpened()\"\n [mode]=\"(sidenavMode || ((layoutMode || 'desktop') === 'desktop' ? 'side' : 'over'))\" [class.mat-drawer-opened]=\"sidenav.opened\"\n [class.mat-drawer-closed]=\"!sidenav.opened\" fxLayoutAlign=\"start stretch\" (openedChange)=\"sidenavOpenedChange()\"\n (closedStart)=\"sidenavClosedStart()\" (openedStart)=\"sidenavOpenedStart()\">\n <div fxFlex fxLayout=\"column\">\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\" class=\"sidenav-toggle-container\" *ngIf=\"isDesktopMode()\">\n <mat-icon class=\"sidenav-toggle\" (click)=\"toggleSidenav()\" svgIcon=\"ontimize:menu\">menu</mat-icon>\n </div>\n\n <o-app-sidenav-image [opened-src]=\"openedSidenavImg\" [closed-src]=\"closedSidenavImg\"> </o-app-sidenav-image>\n <ng-content select=\"o-app-layout-sidenav-projection-start\"></ng-content>\n <div class=\"navMenu\">\n <nav *ngFor=\"let menuRootItem of menuRootArray\">\n\n <ul *ngIf=\"appMenuService.getMenuItemType(menuRootItem) !== 'group' && appMenuService.isVisible(menuRootItem)\">\n <o-app-sidenav-menu-item [menu-item]=\"menuRootItem\" [menu-item-type]=\"appMenuService.getMenuItemType(menuRootItem)\"\n [sidenav-opened]=\"sidenav.opened\" (onClick)=\"onMenuItemClick()\">\n </o-app-sidenav-menu-item>\n </ul>\n\n <o-app-sidenav-menu-group [menu-group]=\"menuRootItem\" [sidenav-opened]=\"sidenav.opened\" level=\"1\"\n *ngIf=\"appMenuService.getMenuItemType(menuRootItem) === 'group' && appMenuService.isVisible(menuRootItem)\"\n (onItemClick)=\"onMenuItemClick()\">\n </o-app-sidenav-menu-group>\n\n </nav>\n </div>\n <div class=\"layout-sidenav-projection-end\">\n <ng-content select=\"o-app-layout-sidenav-projection-end\"></ng-content>\n </div>\n </div>\n </mat-sidenav>\n\n <mat-sidenav-content class=\"o-app-sidenav-content\">\n <ng-content></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>\n", styles: [".o-app-sidenav.header-layout .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav{box-shadow:3px 48px 6px #0000003d}.o-app-sidenav .navMenu{flex:1;display:flex;flex-direction:column;overflow:auto}@-moz-document url-prefix(){.o-app-sidenav .navMenu{height:100%}}.o-app-sidenav .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-menu-item a{margin-left:8px}.o-app-sidenav .o-app-sidenav-menu-group a .mat-icon svg,.o-app-sidenav .o-app-sidenav-menu-item a .mat-icon svg{display:flex}.o-app-sidenav .o-app-sidenav-menu-group[disabled=true] .mat-button-focus-overlay,.o-app-sidenav .o-app-sidenav-menu-group[disabled=true] .mat-mdc-button-persistent-ripple,.o-app-sidenav .o-app-sidenav-menu-item[disabled=true] .mat-button-focus-overlay,.o-app-sidenav .o-app-sidenav-menu-item[disabled=true] .mat-mdc-button-persistent-ripple{display:none}.o-app-sidenav .o-app-sidenav-menu-group[disabled=true] .o-app-sidenav-item,.o-app-sidenav .o-app-sidenav-menu-item[disabled=true] .o-app-sidenav-item{opacity:.5}.o-app-sidenav .o-app-sidenav-menu-group[disabled=true] a,.o-app-sidenav .o-app-sidenav-menu-item[disabled=true] a{cursor:initial}.o-app-sidenav .o-app-sidenav-menugroup{transition:background-color .5s}.o-app-sidenav .o-app-sidenav-menugroup-items-container{overflow:hidden}.o-app-sidenav .o-app-sidenav-container{width:100%;height:100%}.o-app-sidenav .o-app-sidenav-container.o-app-sidenav-mode-desktop:not(.opened) .o-app-sidenav-sidenav.mat-drawer-closed{visibility:visible!important;transform:translate3d(-191px,0,0)}.o-app-sidenav .o-app-sidenav-container.o-app-sidenav-mode-desktop:not(.opened) .o-app-sidenav-content.mat-drawer-content{margin-right:48px!important;transform:translate3d(48px,0,0)!important}.o-app-sidenav .o-app-sidenav-container .o-app-sidenav-content{position:absolute;right:0;left:0;min-height:100%;display:flex;flex-direction:column}.o-app-sidenav .o-app-sidenav-container .o-app-sidenav-content router-outlet+*{flex-grow:1}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav{box-shadow:3px 0 6px #0000003d;width:240px;bottom:0;overflow:auto;height:100%}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup{transition:padding .5s 0s}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup .o-app-sidenav-menugroup-arrow{transition:.5s transform cubic-bezier(.25,.8,.25,1)}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup.opened .o-app-sidenav-menugroup-arrow{transform:rotate(90deg)}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup-title,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menuitem-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a{padding-left:28px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a{padding-left:52px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-2 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-3 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-4 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-5 a{padding-right:4px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-3 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-4 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-5 a{padding-left:52px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup mat-icon:not(.o-app-sidenav-menugroup-arrow),.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menuitem mat-icon:not(.o-app-sidenav-menugroup-arrow){margin-right:16px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closing{transform:translate3d(-191px,0,0)}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed{text-align:center}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-item:not(.o-user-info){cursor:pointer}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-item.o-user-info:focus,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-item.o-user-info:hover{color:inherit}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-menu-group:not([disabled=true]) a.o-app-sidenav-viewer-sidenav-item-selected,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-menu-item:not([disabled=true]) a.o-app-sidenav-viewer-sidenav-item-selected{padding:0 8px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed nav{width:48px;min-width:48px;margin-left:auto}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-image .o-app-sidenav-image-container{padding:0;text-align:end;max-height:36px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-image .o-app-sidenav-image-container .o-app-sidenav-image{max-height:36px;margin-right:8px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container{padding-bottom:16px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .sidenav-toggle-container{height:48px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container nav a{border-radius:0;box-sizing:border-box;display:block;line-height:48px;height:auto;font-size:14px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container nav a>.mat-icon{vertical-align:middle;height:24px;width:24px;font-size:24px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container ul{list-style-type:none;margin:0;padding:0}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container ul li{margin:0;padding:0}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .sidenav-toggle{padding:4px 12px 8px;cursor:pointer}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-1 a{font-size:14px;line-height:48px;height:48px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a{font-size:12px;line-height:40px;height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a .mat-mdc-button-touch-target,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a .mat-mdc-button-touch-target{height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a{font-size:12px;line-height:40px;height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a .mat-mdc-button-touch-target{height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a{font-size:11px;line-height:40px;height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a .mat-mdc-button-touch-target,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a .mat-mdc-button-touch-target{height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a .mat-icon,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a .mat-icon{font-size:20px;height:20px;width:20px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .o-app-sidenav-menugroup-arrow{display:flex}\n"] }]
|
|
259
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-sidenav-container class=\"o-app-sidenav-container\" [class.opened]=\"sidenav.opened\"\n [class.o-app-sidenav-mode-desktop]=\"(layoutMode || 'desktop') === 'desktop'\"\n [class.o-app-sidenav-mode-mobile]=\"(layoutMode || 'desktop') !== 'desktop'\">\n\n <mat-sidenav #sidenav class=\"o-app-sidenav-sidenav o-scroll\" [opened]=\"isSidenavOpened()\"\n [mode]=\"(sidenavMode || ((layoutMode || 'desktop') === 'desktop' ? 'side' : 'over'))\" [class.mat-drawer-opened]=\"sidenav.opened\"\n [class.mat-drawer-closed]=\"!sidenav.opened\" [class.ellipsis-menu-items]=\"showEllipsisMenu\" (openedChange)=\"sidenavOpenedChange()\"\n (closedStart)=\"sidenavClosedStart()\" (openedStart)=\"sidenavOpenedStart()\">\n <div fxLayout=\"column\" class=\"sidenav-wrapper\">\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\" class=\"sidenav-toggle-container\" *ngIf=\"isDesktopMode()\">\n <mat-icon id=\"sidenav-menu\" class=\"sidenav-toggle\" (click)=\"toggleSidenav()\" svgIcon=\"ontimize:menu\">menu</mat-icon>\n </div>\n\n <o-app-sidenav-image [opened-src]=\"openedSidenavImg\" [closed-src]=\"closedSidenavImg\"> </o-app-sidenav-image>\n <ng-content select=\"o-app-layout-sidenav-projection-start\"></ng-content>\n <div class=\"navMenu\">\n <nav *ngFor=\"let menuRootItem of menuRootArray\">\n\n <ul *ngIf=\"appMenuService.getMenuItemType(menuRootItem) !== 'group' && appMenuService.isVisible(menuRootItem)\">\n <o-app-sidenav-menu-item [menu-item]=\"menuRootItem\" [menu-item-type]=\"appMenuService.getMenuItemType(menuRootItem)\"\n [sidenav-opened]=\"sidenav.opened\" (onClick)=\"onMenuItemClick()\">\n </o-app-sidenav-menu-item>\n </ul>\n\n <o-app-sidenav-menu-group [menu-group]=\"menuRootItem\" [sidenav-opened]=\"sidenav.opened\" level=\"1\"\n *ngIf=\"appMenuService.getMenuItemType(menuRootItem) === 'group' && appMenuService.isVisible(menuRootItem)\"\n (onItemClick)=\"onMenuItemClick()\">\n </o-app-sidenav-menu-group>\n\n </nav>\n </div>\n <div class=\"layout-sidenav-projection-end\">\n <ng-content select=\"o-app-layout-sidenav-projection-end\"></ng-content>\n </div>\n </div>\n </mat-sidenav>\n\n <mat-sidenav-content class=\"o-app-sidenav-content\">\n <ng-content></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>\n", styles: [".o-app-sidenav.header-layout .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav{box-shadow:3px 48px 6px #0000003d}.o-app-sidenav .navMenu{flex:1;display:flex;flex-direction:column;overflow:auto}@-moz-document url-prefix(){.o-app-sidenav .navMenu{height:100%}}.o-app-sidenav .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-menu-item a{margin-left:8px}.o-app-sidenav .o-app-sidenav-menu-group a .mat-icon svg,.o-app-sidenav .o-app-sidenav-menu-item a .mat-icon svg{display:flex}.o-app-sidenav .o-app-sidenav-menu-group[disabled=true] .mat-button-focus-overlay,.o-app-sidenav .o-app-sidenav-menu-group[disabled=true] .mat-mdc-button-persistent-ripple,.o-app-sidenav .o-app-sidenav-menu-item[disabled=true] .mat-button-focus-overlay,.o-app-sidenav .o-app-sidenav-menu-item[disabled=true] .mat-mdc-button-persistent-ripple{display:none}.o-app-sidenav .o-app-sidenav-menu-group[disabled=true] .o-app-sidenav-item,.o-app-sidenav .o-app-sidenav-menu-item[disabled=true] .o-app-sidenav-item{opacity:.5}.o-app-sidenav .o-app-sidenav-menu-group[disabled=true] a,.o-app-sidenav .o-app-sidenav-menu-item[disabled=true] a{cursor:initial}.o-app-sidenav .o-app-sidenav-menugroup{transition:background-color .5s}.o-app-sidenav .o-app-sidenav-menugroup-items-container{overflow:hidden}.o-app-sidenav .o-app-sidenav-container{width:100%;height:100%}.o-app-sidenav .o-app-sidenav-container.o-app-sidenav-mode-desktop:not(.opened) .o-app-sidenav-sidenav.mat-drawer-closed{visibility:visible!important;transform:translate3d(-191px,0,0)}.o-app-sidenav .o-app-sidenav-container.o-app-sidenav-mode-desktop:not(.opened) .o-app-sidenav-content.mat-drawer-content{margin-right:48px!important;transform:translate3d(48px,0,0)!important}.o-app-sidenav .o-app-sidenav-container .o-app-sidenav-content{position:absolute;right:0;left:0;min-height:100%;display:flex;flex-direction:column}.o-app-sidenav .o-app-sidenav-container .o-app-sidenav-content router-outlet+*{flex-grow:1}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav{box-shadow:3px 0 6px #0000003d;width:240px;bottom:0;overflow:auto;height:100%;display:flex}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup{transition:padding .5s 0s}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup .o-app-sidenav-menugroup-arrow{transition:.5s transform cubic-bezier(.25,.8,.25,1)}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup.opened .o-app-sidenav-menugroup-arrow{transform:rotate(90deg)}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup-title,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menuitem-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a{padding-left:28px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a{padding-left:52px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-2 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-3 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-4 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-5 a{padding-right:4px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-3 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-4 a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menu-group-level-5 a{padding-left:52px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menugroup mat-icon:not(.o-app-sidenav-menugroup-arrow),.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav:not(.mat-drawer-closed) .o-app-sidenav-menuitem mat-icon:not(.o-app-sidenav-menugroup-arrow){margin-right:16px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closing{transform:translate3d(-191px,0,0)}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed{text-align:center}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-item:not(.o-user-info){cursor:pointer}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-item.o-user-info:focus,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-item.o-user-info:hover{color:inherit}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-menu-group:not([disabled=true]) a.o-app-sidenav-viewer-sidenav-item-selected,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-menu-item:not([disabled=true]) a.o-app-sidenav-viewer-sidenav-item-selected{padding:0 8px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed nav{width:48px;min-width:48px;margin-left:auto}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-image .o-app-sidenav-image-container{padding:0;text-align:end;max-height:36px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.mat-drawer-closed .o-app-sidenav-image .o-app-sidenav-image-container .o-app-sidenav-image{max-height:36px;margin-right:8px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.ellipsis-menu-items,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.ellipsis-menu-items .mat-drawer-inner-container{display:block}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav.ellipsis-menu-items .sidenav-wrapper{height:100%;width:100%;padding-bottom:16px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container{display:flex}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .mat-drawer-inner-container .sidenav-wrapper{flex:1}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .o-app-sidenav-content-container{padding-bottom:16px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .sidenav-toggle-container{height:48px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav nav a{border-radius:0;box-sizing:border-box;display:block;line-height:48px;height:auto;font-size:14px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav nav a>.mat-icon{vertical-align:middle;height:24px;width:24px;font-size:24px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav ul{list-style-type:none;margin:0;padding:0}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav ul li{margin:0;padding:0}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .sidenav-toggle{padding:4px 12px 8px;cursor:pointer}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .o-app-sidenav-menu-group-level-1 a{font-size:14px;line-height:48px;height:48px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a{font-size:12px;line-height:40px;height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a .mat-mdc-button-touch-target,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .o-app-sidenav-menu-group-level-1 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a .mat-mdc-button-touch-target{height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .o-app-sidenav-menu-group-level-2 a{font-size:12px;line-height:40px;height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .o-app-sidenav-menu-group-level-2 a .mat-mdc-button-touch-target{height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a{font-size:11px;line-height:40px;height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a .mat-mdc-button-touch-target,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a .mat-mdc-button-touch-target{height:40px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-group a .mat-icon,.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .o-app-sidenav-menu-group-level-2 a+.o-app-sidenav-menugroup-items-container .o-app-sidenav-menu-item a .mat-icon{font-size:20px;height:20px;width:20px}.o-app-sidenav .o-app-sidenav-container .mat-drawer.o-app-sidenav-sidenav .o-app-sidenav-menugroup-arrow{display:flex}\n"] }]
|
|
258
260
|
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.Router }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i2.MediaObserver }]; }, propDecorators: { sidenav: [{
|
|
259
261
|
type: ViewChild,
|
|
260
262
|
args: [MatSidenav]
|
|
@@ -265,4 +267,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
265
267
|
type: HostListener,
|
|
266
268
|
args: ['window:resize', []]
|
|
267
269
|
}] } });
|
|
268
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1hcHAtc2lkZW5hdi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy9hcHAtc2lkZW5hdi9vLWFwcC1zaWRlbmF2LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL2FwcC1zaWRlbmF2L28tYXBwLXNpZGVuYXYuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osUUFBUSxFQUdSLFNBQVMsRUFDVCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHekMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBWSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBRTNHLE9BQU8sRUFBRSxLQUFLLEVBQWdDLE1BQU0sa0JBQWtCLENBQUM7QUFDdkUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7Ozs7QUFFN0QsTUFB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bnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbmplY3RvcixcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZWRpYU9ic2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvZmxleC1sYXlvdXQnO1xuaW1wb3J0IHsgTWF0U2lkZW5hdiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBCb29sZWFuSW5wdXRDb252ZXJ0ZXIgfSBmcm9tICcuLi8uLi9kZWNvcmF0b3JzL2lucHV0LWNvbnZlcnRlcic7XG5pbXBvcnQgeyBNZW51R3JvdXAsIE1lbnVJdGVtVXNlckluZm8gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2FwcC1tZW51LmludGVyZmFjZSc7XG5pbXBvcnQgeyBBcHBNZW51U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FwcC1tZW51LnNlcnZpY2UnO1xuaW1wb3J0IHsgT1VzZXJJbmZvU2VydmljZSwgVXNlckluZm8gfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vLXVzZXItaW5mby5zZXJ2aWNlJztcbmltcG9ydCB7IE9BcHBTaWRlbmF2Q29tcG9uZW50U3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc3RhdGUvby1hcHAtbWVudS1jb21wb25lbnQtc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBNZW51Um9vdEl0ZW0gfSBmcm9tICcuLi8uLi90eXBlcy9tZW51LXJvb3QtaXRlbS50eXBlJztcbmltcG9ydCB7IENvZGVzLCBPQXBwTGF5b3V0TW9kZSwgT1NpZGVuYXZNb2RlIH0gZnJvbSAnLi4vLi4vdXRpbC9jb2Rlcyc7XG5pbXBvcnQgeyBVdGlsIH0gZnJvbSAnLi4vLi4vdXRpbC91dGlsJztcbmltcG9ydCB7IE9BcHBTaWRlbmF2QmFzZSB9IGZyb20gJy4vby1hcHAtc2lkZW5hdi1iYXNlLmNsYXNzJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfSU5QVVRTX09fQVBQX1NJREVOQVYgPSBbXG4gICdvcGVuZWQnLFxuICAnc2hvd1VzZXJJbmZvOiBzaG93LXVzZXItaW5mbycsXG4gICdzaG93VG9nZ2xlQnV0dG9uOiBzaG93LXRvZ2dsZS1idXR0b24nLFxuICAnb3BlbmVkU2lkZW5hdkltZzogb3BlbmVkLXNpZGVuYXYtaW1hZ2UnLFxuICAnY2xvc2VkU2lkZW5hdkltZzogY2xvc2VkLXNpZGVuYXYtaW1hZ2UnLFxuICAnbGF5b3V0TW9kZTogbGF5b3V0LW1vZGUnLFxuICAnc2lkZW5hdk1vZGU6IHNpZGVuYXYtbW9kZScsXG4gICdzdG9yZVN0YXRlOiBzdG9yZS1zdGF0ZSdcbl07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX09VVFBVVFNfT19BUFBfU0lERU5BViA9IFtcbiAgJ29uU2lkZW5hdk9wZW5lZENoYW5nZScsXG4gICdvblNpZGVuYXZPcGVuZWRTdGFydCcsXG4gICdvblNpZGVuYXZDbG9zZWRTdGFydCcsXG4gICdvblNpZGVuYXZUb2dnbGUnLFxuICAnYWZ0ZXJTaWRlbmF2VG9nZ2xlJ1xuXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnby1hcHAtc2lkZW5hdicsXG4gIGlucHV0czogREVGQVVMVF9JTlBVVFNfT19BUFBfU0lERU5BVixcbiAgb3V0cHV0czogREVGQVVMVF9PVVRQVVRTX09fQVBQX1NJREVOQVYsXG4gIHRlbXBsYXRlVXJsOiAnLi9vLWFwcC1zaWRlbmF2LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vby1hcHAtc2lkZW5hdi5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5vLWFwcC1zaWRlbmF2XSc6ICd0cnVlJ1xuICB9LFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IE9BcHBTaWRlbmF2QmFzZSwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gT0FwcFNpZGVuYXZDb21wb25lbnQpIH1cbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgT0FwcFNpZGVuYXZDb21wb25lbnQgZXh0ZW5kcyBPQXBwU2lkZW5hdkNvbXBvbmVudFN0YXRlU2VydmljZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcblxuICBAVmlld0NoaWxkKE1hdFNpZGVuYXYpXG4gIHNpZGVuYXY6IE1hdFNpZGVuYXY7XG5cbiAgcHJvdGVjdGVkIHJvdXRlclN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBhcHBNZW51U2VydmljZTogQXBwTWVudVNlcnZpY2U7XG4gIG1lbnVSb290QXJyYXk6IE1lbnVSb290SXRlbVtdID0gW107XG4gIHByb3RlY3RlZCBfbGF5b3V0TW9kZTogT0FwcExheW91dE1vZGUgPSBDb2Rlcy5BUFBfTEFZT1VUX01PREVfREVTS1RPUDtcbiAgcHJvdGVjdGVkIF9zaWRlbmF2TW9kZTogT1NpZGVuYXZNb2RlO1xuICBAQm9vbGVhbklucHV0Q29udmVydGVyKClcbiAgcHJvdGVjdGVkIG9wZW5lZDogYm9vbGVhbiA9IHRydWU7XG4gIF9zaG93VXNlckluZm86IGJvb2xlYW4gPSB0cnVlO1xuICBfc2hvd1RvZ2dsZUJ1dHRvbjogYm9vbGVhbiA9IHRydWU7XG4gIG9wZW5lZFNpZGVuYXZJbWc6IHN0cmluZztcbiAgY2xvc2VkU2lkZW5hdkltZzogc3RyaW5nO1xuXG4gIG9uU2lkZW5hdk9wZW5lZENoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBvblNpZGVuYXZPcGVuZWRTdGFydDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBvblNpZGVuYXZDbG9zZWRTdGFydDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBvblNpZGVuYXZUb2dnbGU6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgYWZ0ZXJTaWRlbmF2VG9nZ2xlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIHByb3RlY3RlZCBvVXNlckluZm9TZXJ2aWNlOiBPVXNlckluZm9TZXJ2aWNlO1xuICBwcm90ZWN0ZWQgdXNlckluZm9TdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJvdGVjdGVkIHBlcm1pc3Npb25TdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJvdGVjdGVkIHVzZXJJbmZvOiBVc2VySW5mbztcblxuICBwcm90ZWN0ZWQgbWVkaWFXYXRjaDogU3Vic2NyaXB0aW9uO1xuICBwcm90ZWN0ZWQgbWFudWFsbHlDbG9zZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgb25Sb3V0ZUNoYW5nZVN0b3JhZ2VTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgc3RvcmVTdGF0ZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJvdGVjdGVkIGVsUmVmOiBFbGVtZW50UmVmLFxuICAgIHByb3RlY3RlZCBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJvdGVjdGVkIG1lZGlhOiBNZWRpYU9ic2VydmVyXG4gICkge1xuICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICB0aGlzLmFwcE1lbnVTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoQXBwTWVudVNlcnZpY2UpO1xuICAgIHRoaXMubWVudVJvb3RBcnJheSA9IHRoaXMuYXBwTWVudVNlcnZpY2UuZ2V0TWVudVJvb3RzKCk7XG4gICAgdGhpcy5wZXJtaXNzaW9uU3Vic2NyaXB0aW9uID0gdGhpcy5hcHBNZW51U2VydmljZS5vblBlcm1pc3Npb25NZW51Q2hhbmdlZC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZWZyZXNoTWVudVJvb3RzKCkpO1xuICAgIHRoaXMub1VzZXJJbmZvU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KE9Vc2VySW5mb1NlcnZpY2UpO1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIHRoaXMubWVkaWFXYXRjaCA9IHRoaXMubWVkaWEuYXNPYnNlcnZhYmxlKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGlmIChzZWxmLmlzU2NyZWVuU21hbGwoKSAmJiBzZWxmLnNpZGVuYXYpIHtcbiAgICAgICAgc2VsZi5zaWRlbmF2LmNsb3NlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5yZWdpc3RlckxvY2FsU3RvcmFnZVNlcnZpY2VSb3V0ZUNoYW5nZSgpO1xuICB9XG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucm91dGVyU3Vic2NyaXB0aW9uID0gdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5pc1NjcmVlblNtYWxsKCkpIHtcbiAgICAgICAgdGhpcy5zaWRlbmF2LmNsb3NlKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmluaXRpYWxpemUodGhpcyk7XG4gICAgdGhpcy5yZXN0b3JlTWVudUdyb3VwU3RhdGUoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy5zaG93VXNlckluZm8gJiYgdGhpcy5zaG93VG9nZ2xlQnV0dG9uKSB7XG4gICAgICB0aGlzLnVzZXJJbmZvID0gdGhpcy5vVXNlckluZm9TZXJ2aWNlLmdldFVzZXJJbmZvKCk7XG4gICAgICB0aGlzLnVzZXJJbmZvU3Vic2NyaXB0aW9uID0gdGhpcy5vVXNlckluZm9TZXJ2aWNlLmdldFVzZXJJbmZvT2JzZXJ2YWJsZSgpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICB0aGlzLnVzZXJJbmZvID0gcmVzO1xuICAgICAgICB0aGlzLnJlZnJlc2hNZW51SXRlbVVzZXJJbmZvKCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5yZWZyZXNoTWVudUl0ZW1Vc2VySW5mbygpO1xuICB9XG5cbiAgZ2V0RGF0YVRvU3RvcmUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZTtcblxuICB9XG5cbiAgcmVzdG9yZU1lbnVHcm91cFN0YXRlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2UgJiYgdGhpcy5zdG9yZVN0YXRlKSB7XG4gICAgICBsZXQgbWVudVN0YXRlOiB7IGlkOiBzdHJpbmcsIG9wZW5lZDogYm9vbGVhbiB9W10gPSB0aGlzLnN0YXRlLm1lbnUgPz8gW107XG5cbiAgICAgIHRoaXMubWVudVJvb3RBcnJheS5mb3JFYWNoKChncm91cDogTWVudUdyb3VwKSA9PiB7XG4gICAgICAgIGNvbnN0IHNhdmVkU3RhdGUgPSBtZW51U3RhdGUuZmluZChtZW51T3B0aW9uID0+IG1lbnVPcHRpb24uaWQgPT09IGdyb3VwLmlkKTtcbiAgICAgICAgaWYgKHNhdmVkU3RhdGUpIHtcbiAgICAgICAgICBncm91cC5vcGVuZWQgPSBzYXZlZFN0YXRlLm9wZW5lZDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0Q29tcG9uZW50S2V5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdPQXBwU2lkZW5hdkNvbXBvbmVudCc7XG4gIH1cblxuICBnZXRSb3V0ZUtleSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6YmVmb3JldW5sb2FkJywgW10pXG4gIGJlZm9yZXVubG9hZEhhbmRsZXIoKSB7XG4gICAgdGhpcy51cGRhdGVTdGF0ZVN0b3JhZ2UoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWdpc3RlckxvY2FsU3RvcmFnZVNlcnZpY2VSb3V0ZUNoYW5nZSgpIHtcbiAgICBpZiAodGhpcy5zdG9yZVN0YXRlKSB7XG4gICAgICB0aGlzLm9uUm91dGVDaGFuZ2VTdG9yYWdlU3Vic2NyaXB0aW9uID0gdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLm9uUm91dGVDaGFuZ2Uuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlU3RhdGVTdG9yYWdlKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlU3RhdGVTdG9yYWdlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2UgJiYgdGhpcy5zdG9yZVN0YXRlKSB7XG4gICAgICB0aGlzLnN0b3JlTWVudSgpO1xuICAgIH1cbiAgfVxuXG4gIHJlZnJlc2hNZW51Um9vdHMoKTogdm9pZCB7XG4gICAgdGhpcy5tZW51Um9vdEFycmF5ID0gWy4uLnRoaXMuYXBwTWVudVNlcnZpY2UuZ2V0TWVudVJvb3RzKCldO1xuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFtdKVxuICBvblJlc2l6ZSgpIHtcbiAgICBpZiAoIXRoaXMubWFudWFsbHlDbG9zZWQgJiYgIXRoaXMuaXNTY3JlZW5TbWFsbCgpICYmICF0aGlzLmlzTW9iaWxlTW9kZSgpKSB7XG4gICAgICB0aGlzLnNpZGVuYXYub3BlbigpO1xuICAgIH1cbiAgfVxuXG5cbiAgZ2V0IGxheW91dE1vZGUoKTogT0FwcExheW91dE1vZGUge1xuICAgIHJldHVybiB0aGlzLl9sYXlvdXRNb2RlO1xuICB9XG5cbiAgc2V0IGxheW91dE1vZGUodmFsOiBPQXBwTGF5b3V0TW9kZSkge1xuICAgIGNvbnN0IG0gPSBDb2Rlcy5PQXBwTGF5b3V0TW9kZXMuZmluZChlID0+IGUgPT09IHZhbCk7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKG0pKSB7XG4gICAgICB0aGlzLl9sYXlvdXRNb2RlID0gbTtcbiAgICB9XG4gIH1cblxuICBnZXQgc2lkZW5hdk1vZGUoKTogT1NpZGVuYXZNb2RlIHtcbiAgICByZXR1cm4gdGhpcy5fc2lkZW5hdk1vZGU7XG4gIH1cblxuICBzZXQgc2lkZW5hdk1vZGUodmFsOiBPU2lkZW5hdk1vZGUpIHtcbiAgICBjb25zdCBtID0gQ29kZXMuT1NpZGVuYXZNb2Rlcy5maW5kKGUgPT4gZSA9PT0gdmFsKTtcbiAgICBpZiAoVXRpbC5pc0RlZmluZWQobSkpIHtcbiAgICAgIHRoaXMuX3NpZGVuYXZNb2RlID0gbTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVmcmVzaE1lbnVJdGVtVXNlckluZm8oKSB7XG4gICAgaWYgKHRoaXMuc2hvd1VzZXJJbmZvICYmIHRoaXMudXNlckluZm8gJiYgdGhpcy5fc2hvd1RvZ2dsZUJ1dHRvbikge1xuICAgICAgY29uc3QgZmlyc3RSb290ID0gdGhpcy5tZW51Um9vdEFycmF5WzBdO1xuICAgICAgY29uc3QgYWxyZWFkeUV4aXN0c1VzZXJJbmZvID0gZmlyc3RSb290ID8gZmlyc3RSb290LmlkID09PSAndXNlci1pbmZvJyA6IGZhbHNlO1xuICAgICAgaWYgKGFscmVhZHlFeGlzdHNVc2VySW5mbykge1xuICAgICAgICBjb25zdCB1c2VySW5mb0l0ZW06IE1lbnVJdGVtVXNlckluZm8gPSAodGhpcy5tZW51Um9vdEFycmF5WzBdIGFzIE1lbnVHcm91cCkuaXRlbXNbMF0gYXMgTWVudUl0ZW1Vc2VySW5mbztcbiAgICAgICAgdXNlckluZm9JdGVtLmlkID0gdGhpcy51c2VySW5mby51c2VybmFtZTtcbiAgICAgICAgdXNlckluZm9JdGVtLm5hbWUgPSB0aGlzLnVzZXJJbmZvLnVzZXJuYW1lO1xuICAgICAgICB1c2VySW5mb0l0ZW0udXNlciA9IHRoaXMudXNlckluZm8udXNlcm5hbWU7XG4gICAgICAgIHVzZXJJbmZvSXRlbS5hdmF0YXIgPSB0aGlzLnVzZXJJbmZvLmF2YXRhcjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHVzZXJJbmZvSXRlbTogTWVudUl0ZW1Vc2VySW5mbyA9IHtcbiAgICAgICAgICBpZDogdGhpcy51c2VySW5mby51c2VybmFtZSxcbiAgICAgICAgICBuYW1lOiB0aGlzLnVzZXJJbmZvLnVzZXJuYW1lLFxuICAgICAgICAgIHVzZXI6IHRoaXMudXNlckluZm8udXNlcm5hbWUsXG4gICAgICAgICAgYXZhdGFyOiB0aGlzLnVzZXJJbmZvLmF2YXRhclxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBtZW51R3JvdXBVc2VySW5mbzogTWVudUdyb3VwID0ge1xuICAgICAgICAgIGlkOiAndXNlci1pbmZvJyxcbiAgICAgICAgICBuYW1lOiAnQVBQX0xBWU9VVC5VU0VSX1BST0ZJTEUnLFxuICAgICAgICAgIGl0ZW1zOiBbdXNlckluZm9JdGVtXSxcbiAgICAgICAgICBvcGVuZWQ6IHRydWUsXG4gICAgICAgICAgaWNvbjogJ3BlcnNvbl9waW4nXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMubWVudVJvb3RBcnJheS51bnNoaWZ0KG1lbnVHcm91cFVzZXJJbmZvKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5yb3V0ZXJTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMucm91dGVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudXNlckluZm9TdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMudXNlckluZm9TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wZXJtaXNzaW9uU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnBlcm1pc3Npb25TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBpc1NjcmVlblNtYWxsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5tYW51YWxseUNsb3NlZCAmJiB0aGlzLm1lZGlhLmlzQWN0aXZlKCdsdC1zbScpO1xuICB9XG5cbiAgaXNNb2JpbGVNb2RlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9sYXlvdXRNb2RlID09PSBDb2Rlcy5BUFBfTEFZT1VUX01PREVfTU9CSUxFO1xuICB9XG5cbiAgaXNEZXNrdG9wTW9kZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbGF5b3V0TW9kZSA9PT0gQ29kZXMuQVBQX0xBWU9VVF9NT0RFX0RFU0tUT1A7XG4gIH1cblxuICBpc1NpZGVuYXZPcGVuZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMub3BlbmVkICYmICF0aGlzLmlzTW9iaWxlTW9kZSgpICYmICF0aGlzLmlzU2NyZWVuU21hbGwoKTtcbiAgfVxuXG4gIHRvZ2dsZVNpZGVuYXYoKSB7XG4gICAgY29uc3QgcHJvbWlzZSA9IHRoaXMuc2lkZW5hdi5vcGVuZWQgPyB0aGlzLnNpZGVuYXYuY2xvc2UoKSA6IHRoaXMuc2lkZW5hdi5vcGVuKCk7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgcHJvbWlzZS50aGVuKCgpID0+IHtcbiAgICAgIHNlbGYuYWZ0ZXJTaWRlbmF2VG9nZ2xlLmVtaXQoc2VsZi5zaWRlbmF2Lm9wZW5lZCk7XG4gICAgfSk7XG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgdGhpcy5vcGVuZWQgPSB0aGlzLnNpZGVuYXYub3BlbmVkO1xuICAgIHRoaXMubWFudWFsbHlDbG9zZWQgPSAhdGhpcy5vcGVuZWQ7XG4gICAgdGhpcy5vblNpZGVuYXZUb2dnbGUuZW1pdCh0aGlzLnNpZGVuYXYub3BlbmVkKTtcbiAgfVxuXG4gIGdldCBzaG93VXNlckluZm8oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Nob3dVc2VySW5mbztcbiAgfVxuXG4gIHNldCBzaG93VXNlckluZm8oYXJnOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2hvd1VzZXJJbmZvID0gYXJnO1xuICB9XG5cbiAgZ2V0IHNob3dUb2dnbGVCdXR0b24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Nob3dUb2dnbGVCdXR0b247XG4gIH1cblxuICBzZXQgc2hvd1RvZ2dsZUJ1dHRvbihhcmc6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zaG93VG9nZ2xlQnV0dG9uID0gYXJnO1xuICB9XG5cbiAgb25NZW51SXRlbUNsaWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzTW9iaWxlTW9kZSgpKSB7XG4gICAgICB0aGlzLnNpZGVuYXYuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBzaWRlbmF2Q2xvc2VkU3RhcnQoKSB7XG4gICAgdGhpcy5vblNpZGVuYXZDbG9zZWRTdGFydC5lbWl0KCk7XG4gIH1cblxuICBzaWRlbmF2T3BlbmVkU3RhcnQoKSB7XG4gICAgdGhpcy5vblNpZGVuYXZPcGVuZWRTdGFydC5lbWl0KCk7XG4gIH1cblxuICBzaWRlbmF2T3BlbmVkQ2hhbmdlKCkge1xuICAgIHRoaXMub25TaWRlbmF2T3BlbmVkQ2hhbmdlLmVtaXQoKTtcbiAgfVxufVxuXG4iLCI8bWF0LXNpZGVuYXYtY29udGFpbmVyIGNsYXNzPVwiby1hcHAtc2lkZW5hdi1jb250YWluZXJcIiBbY2xhc3Mub3BlbmVkXT1cInNpZGVuYXYub3BlbmVkXCJcbiAgW2NsYXNzLm8tYXBwLXNpZGVuYXYtbW9kZS1kZXNrdG9wXT1cIihsYXlvdXRNb2RlIHx8ICdkZXNrdG9wJykgPT09ICdkZXNrdG9wJ1wiXG4gIFtjbGFzcy5vLWFwcC1zaWRlbmF2LW1vZGUtbW9iaWxlXT1cIihsYXlvdXRNb2RlIHx8ICdkZXNrdG9wJykgIT09ICdkZXNrdG9wJ1wiPlxuXG4gIDxtYXQtc2lkZW5hdiAjc2lkZW5hdiBjbGFzcz1cIm8tYXBwLXNpZGVuYXYtc2lkZW5hdiBvLXNjcm9sbFwiIFtvcGVuZWRdPVwiaXNTaWRlbmF2T3BlbmVkKClcIlxuICAgIFttb2RlXT1cIihzaWRlbmF2TW9kZSB8fCAoKGxheW91dE1vZGUgfHwgJ2Rlc2t0b3AnKSA9PT0gJ2Rlc2t0b3AnID8gJ3NpZGUnIDogJ292ZXInKSlcIiBbY2xhc3MubWF0LWRyYXdlci1vcGVuZWRdPVwic2lkZW5hdi5vcGVuZWRcIlxuICAgIFtjbGFzcy5tYXQtZHJhd2VyLWNsb3NlZF09XCIhc2lkZW5hdi5vcGVuZWRcIiBmeExheW91dEFsaWduPVwic3RhcnQgc3RyZXRjaFwiIChvcGVuZWRDaGFuZ2UpPVwic2lkZW5hdk9wZW5lZENoYW5nZSgpXCJcbiAgICAoY2xvc2VkU3RhcnQpPVwic2lkZW5hdkNsb3NlZFN0YXJ0KClcIiAob3BlbmVkU3RhcnQpPVwic2lkZW5hdk9wZW5lZFN0YXJ0KClcIj5cbiAgICA8ZGl2IGZ4RmxleCBmeExheW91dD1cImNvbHVtblwiPlxuICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJlbmQgY2VudGVyXCIgY2xhc3M9XCJzaWRlbmF2LXRvZ2dsZS1jb250YWluZXJcIiAqbmdJZj1cImlzRGVza3RvcE1vZGUoKVwiPlxuICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJzaWRlbmF2LXRvZ2dsZVwiIChjbGljayk9XCJ0b2dnbGVTaWRlbmF2KClcIiBzdmdJY29uPVwib250aW1pemU6bWVudVwiPm1lbnU8L21hdC1pY29uPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxvLWFwcC1zaWRlbmF2LWltYWdlIFtvcGVuZWQtc3JjXT1cIm9wZW5lZFNpZGVuYXZJbWdcIiBbY2xvc2VkLXNyY109XCJjbG9zZWRTaWRlbmF2SW1nXCI+IDwvby1hcHAtc2lkZW5hdi1pbWFnZT5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm8tYXBwLWxheW91dC1zaWRlbmF2LXByb2plY3Rpb24tc3RhcnRcIj48L25nLWNvbnRlbnQ+XG4gICAgICA8ZGl2IGNsYXNzPVwibmF2TWVudVwiPlxuICAgICAgICA8bmF2ICpuZ0Zvcj1cImxldCBtZW51Um9vdEl0ZW0gb2YgbWVudVJvb3RBcnJheVwiPlxuXG4gICAgICAgICAgPHVsICpuZ0lmPVwiYXBwTWVudVNlcnZpY2UuZ2V0TWVudUl0ZW1UeXBlKG1lbnVSb290SXRlbSkgIT09ICdncm91cCcgJiYgYXBwTWVudVNlcnZpY2UuaXNWaXNpYmxlKG1lbnVSb290SXRlbSlcIj5cbiAgICAgICAgICAgIDxvLWFwcC1zaWRlbmF2LW1lbnUtaXRlbSBbbWVudS1pdGVtXT1cIm1lbnVSb290SXRlbVwiIFttZW51LWl0ZW0tdHlwZV09XCJhcHBNZW51U2VydmljZS5nZXRNZW51SXRlbVR5cGUobWVudVJvb3RJdGVtKVwiXG4gICAgICAgICAgICAgIFtzaWRlbmF2LW9wZW5lZF09XCJzaWRlbmF2Lm9wZW5lZFwiIChvbkNsaWNrKT1cIm9uTWVudUl0ZW1DbGljaygpXCI+XG4gICAgICAgICAgICA8L28tYXBwLXNpZGVuYXYtbWVudS1pdGVtPlxuICAgICAgICAgIDwvdWw+XG5cbiAgICAgICAgICA8by1hcHAtc2lkZW5hdi1tZW51LWdyb3VwIFttZW51LWdyb3VwXT1cIm1lbnVSb290SXRlbVwiIFtzaWRlbmF2LW9wZW5lZF09XCJzaWRlbmF2Lm9wZW5lZFwiIGxldmVsPVwiMVwiXG4gICAgICAgICAgICAqbmdJZj1cImFwcE1lbnVTZXJ2aWNlLmdldE1lbnVJdGVtVHlwZShtZW51Um9vdEl0ZW0pID09PSAnZ3JvdXAnICYmIGFwcE1lbnVTZXJ2aWNlLmlzVmlzaWJsZShtZW51Um9vdEl0ZW0pXCJcbiAgICAgICAgICAgIChvbkl0ZW1DbGljayk9XCJvbk1lbnVJdGVtQ2xpY2soKVwiPlxuICAgICAgICAgIDwvby1hcHAtc2lkZW5hdi1tZW51LWdyb3VwPlxuXG4gICAgICAgIDwvbmF2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LXNpZGVuYXYtcHJvamVjdGlvbi1lbmRcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiby1hcHAtbGF5b3V0LXNpZGVuYXYtcHJvamVjdGlvbi1lbmRcIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9tYXQtc2lkZW5hdj5cblxuICA8bWF0LXNpZGVuYXYtY29udGVudCBjbGFzcz1cIm8tYXBwLXNpZGVuYXYtY29udGVudFwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9tYXQtc2lkZW5hdi1jb250ZW50PlxuPC9tYXQtc2lkZW5hdi1jb250YWluZXI+XG4iXX0=
|
|
270
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1hcHAtc2lkZW5hdi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy9hcHAtc2lkZW5hdi9vLWFwcC1zaWRlbmF2LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL2FwcC1zaWRlbmF2L28tYXBwLXNpZGVuYXYuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osUUFBUSxFQUdSLFNBQVMsRUFDVCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHekMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBWSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBRTNHLE9BQU8sRUFBRSxLQUFLLEVBQWdDLE1BQU0sa0JBQWtCLENBQUM7QUFDdkUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7Ozs7QUFFN0QsTUFB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LFlBQVk7dUJBQUMsZUFBZSxFQUFFLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIEluamVjdG9yLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1lZGlhT2JzZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9mbGV4LWxheW91dCc7XG5pbXBvcnQgeyBNYXRTaWRlbmF2IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEJvb2xlYW5JbnB1dENvbnZlcnRlciB9IGZyb20gJy4uLy4uL2RlY29yYXRvcnMvaW5wdXQtY29udmVydGVyJztcbmltcG9ydCB7IE1lbnVHcm91cCwgTWVudUl0ZW1Vc2VySW5mbyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYXBwLW1lbnUuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFwcE1lbnVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXBwLW1lbnUuc2VydmljZSc7XG5pbXBvcnQgeyBPVXNlckluZm9TZXJ2aWNlLCBVc2VySW5mbyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL28tdXNlci1pbmZvLnNlcnZpY2UnO1xuaW1wb3J0IHsgT0FwcFNpZGVuYXZDb21wb25lbnRTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zdGF0ZS9vLWFwcC1tZW51LWNvbXBvbmVudC1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IE1lbnVSb290SXRlbSB9IGZyb20gJy4uLy4uL3R5cGVzL21lbnUtcm9vdC1pdGVtLnR5cGUnO1xuaW1wb3J0IHsgQ29kZXMsIE9BcHBMYXlvdXRNb2RlLCBPU2lkZW5hdk1vZGUgfSBmcm9tICcuLi8uLi91dGlsL2NvZGVzJztcbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuLi8uLi91dGlsL3V0aWwnO1xuaW1wb3J0IHsgT0FwcFNpZGVuYXZCYXNlIH0gZnJvbSAnLi9vLWFwcC1zaWRlbmF2LWJhc2UuY2xhc3MnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9JTlBVVFNfT19BUFBfU0lERU5BViA9IFtcbiAgJ29wZW5lZCcsXG4gICdzaG93VXNlckluZm86IHNob3ctdXNlci1pbmZvJyxcbiAgJ3Nob3dUb2dnbGVCdXR0b246IHNob3ctdG9nZ2xlLWJ1dHRvbicsXG4gICdvcGVuZWRTaWRlbmF2SW1nOiBvcGVuZWQtc2lkZW5hdi1pbWFnZScsXG4gICdjbG9zZWRTaWRlbmF2SW1nOiBjbG9zZWQtc2lkZW5hdi1pbWFnZScsXG4gICdsYXlvdXRNb2RlOiBsYXlvdXQtbW9kZScsXG4gICdzaWRlbmF2TW9kZTogc2lkZW5hdi1tb2RlJyxcbiAgJ3N0b3JlU3RhdGU6IHN0b3JlLXN0YXRlJyxcbiAgJ3Nob3dFbGxpcHNpc01lbnU6IHNob3ctZWxsaXBzaXMtbWVudSdcbl07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX09VVFBVVFNfT19BUFBfU0lERU5BViA9IFtcbiAgJ29uU2lkZW5hdk9wZW5lZENoYW5nZScsXG4gICdvblNpZGVuYXZPcGVuZWRTdGFydCcsXG4gICdvblNpZGVuYXZDbG9zZWRTdGFydCcsXG4gICdvblNpZGVuYXZUb2dnbGUnLFxuICAnYWZ0ZXJTaWRlbmF2VG9nZ2xlJ1xuXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnby1hcHAtc2lkZW5hdicsXG4gIGlucHV0czogREVGQVVMVF9JTlBVVFNfT19BUFBfU0lERU5BVixcbiAgb3V0cHV0czogREVGQVVMVF9PVVRQVVRTX09fQVBQX1NJREVOQVYsXG4gIHRlbXBsYXRlVXJsOiAnLi9vLWFwcC1zaWRlbmF2LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vby1hcHAtc2lkZW5hdi5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5vLWFwcC1zaWRlbmF2XSc6ICd0cnVlJ1xuICB9LFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IE9BcHBTaWRlbmF2QmFzZSwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gT0FwcFNpZGVuYXZDb21wb25lbnQpIH1cbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgT0FwcFNpZGVuYXZDb21wb25lbnQgZXh0ZW5kcyBPQXBwU2lkZW5hdkNvbXBvbmVudFN0YXRlU2VydmljZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcblxuICBAVmlld0NoaWxkKE1hdFNpZGVuYXYpXG4gIHNpZGVuYXY6IE1hdFNpZGVuYXY7XG5cbiAgcHJvdGVjdGVkIHJvdXRlclN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBhcHBNZW51U2VydmljZTogQXBwTWVudVNlcnZpY2U7XG4gIG1lbnVSb290QXJyYXk6IE1lbnVSb290SXRlbVtdID0gW107XG4gIHByb3RlY3RlZCBfbGF5b3V0TW9kZTogT0FwcExheW91dE1vZGUgPSBDb2Rlcy5BUFBfTEFZT1VUX01PREVfREVTS1RPUDtcbiAgcHJvdGVjdGVkIF9zaWRlbmF2TW9kZTogT1NpZGVuYXZNb2RlO1xuICBAQm9vbGVhbklucHV0Q29udmVydGVyKClcbiAgcHJvdGVjdGVkIG9wZW5lZDogYm9vbGVhbiA9IHRydWU7XG5cbiAgc2hvd0VsbGlwc2lzTWVudTogYm9vbGVhbiA9IGZhbHNlO1xuICBfc2hvd1VzZXJJbmZvOiBib29sZWFuID0gdHJ1ZTtcbiAgX3Nob3dUb2dnbGVCdXR0b246IGJvb2xlYW4gPSB0cnVlO1xuICBvcGVuZWRTaWRlbmF2SW1nOiBzdHJpbmc7XG4gIGNsb3NlZFNpZGVuYXZJbWc6IHN0cmluZztcblxuICBvblNpZGVuYXZPcGVuZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgb25TaWRlbmF2T3BlbmVkU3RhcnQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgb25TaWRlbmF2Q2xvc2VkU3RhcnQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgb25TaWRlbmF2VG9nZ2xlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIGFmdGVyU2lkZW5hdlRvZ2dsZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBwcm90ZWN0ZWQgb1VzZXJJbmZvU2VydmljZTogT1VzZXJJbmZvU2VydmljZTtcbiAgcHJvdGVjdGVkIHVzZXJJbmZvU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByb3RlY3RlZCBwZXJtaXNzaW9uU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByb3RlY3RlZCB1c2VySW5mbzogVXNlckluZm87XG5cbiAgcHJvdGVjdGVkIG1lZGlhV2F0Y2g6IFN1YnNjcmlwdGlvbjtcbiAgcHJvdGVjdGVkIG1hbnVhbGx5Q2xvc2VkOiBib29sZWFuID0gZmFsc2U7XG4gIG9uUm91dGVDaGFuZ2VTdG9yYWdlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHN0b3JlU3RhdGU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJvdGVjdGVkIHJvdXRlcjogUm91dGVyLFxuICAgIHByb3RlY3RlZCBlbFJlZjogRWxlbWVudFJlZixcbiAgICBwcm90ZWN0ZWQgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByb3RlY3RlZCBtZWRpYTogTWVkaWFPYnNlcnZlclxuICApIHtcbiAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgdGhpcy5hcHBNZW51U2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFwcE1lbnVTZXJ2aWNlKTtcbiAgICB0aGlzLm1lbnVSb290QXJyYXkgPSB0aGlzLmFwcE1lbnVTZXJ2aWNlLmdldE1lbnVSb290cygpO1xuICAgIHRoaXMucGVybWlzc2lvblN1YnNjcmlwdGlvbiA9IHRoaXMuYXBwTWVudVNlcnZpY2Uub25QZXJtaXNzaW9uTWVudUNoYW5nZWQuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVmcmVzaE1lbnVSb290cygpKTtcbiAgICB0aGlzLm9Vc2VySW5mb1NlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChPVXNlckluZm9TZXJ2aWNlKTtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICB0aGlzLm1lZGlhV2F0Y2ggPSB0aGlzLm1lZGlhLmFzT2JzZXJ2YWJsZSgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpZiAoc2VsZi5pc1NjcmVlblNtYWxsKCkgJiYgc2VsZi5zaWRlbmF2KSB7XG4gICAgICAgIHNlbGYuc2lkZW5hdi5jbG9zZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMucmVnaXN0ZXJMb2NhbFN0b3JhZ2VTZXJ2aWNlUm91dGVDaGFuZ2UoKTtcbiAgfVxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnJvdXRlclN1YnNjcmlwdGlvbiA9IHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNTY3JlZW5TbWFsbCgpKSB7XG4gICAgICAgIHRoaXMuc2lkZW5hdi5jbG9zZSgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5pbml0aWFsaXplKHRoaXMpO1xuICAgIHRoaXMucmVzdG9yZU1lbnVHcm91cFN0YXRlKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKHRoaXMuc2hvd1VzZXJJbmZvICYmIHRoaXMuc2hvd1RvZ2dsZUJ1dHRvbikge1xuICAgICAgdGhpcy51c2VySW5mbyA9IHRoaXMub1VzZXJJbmZvU2VydmljZS5nZXRVc2VySW5mbygpO1xuICAgICAgdGhpcy51c2VySW5mb1N1YnNjcmlwdGlvbiA9IHRoaXMub1VzZXJJbmZvU2VydmljZS5nZXRVc2VySW5mb09ic2VydmFibGUoKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgdGhpcy51c2VySW5mbyA9IHJlcztcbiAgICAgICAgdGhpcy5yZWZyZXNoTWVudUl0ZW1Vc2VySW5mbygpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMucmVmcmVzaE1lbnVJdGVtVXNlckluZm8oKTtcbiAgfVxuXG4gIGdldERhdGFUb1N0b3JlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGU7XG5cbiAgfVxuXG4gIHJlc3RvcmVNZW51R3JvdXBTdGF0ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlICYmIHRoaXMuc3RvcmVTdGF0ZSkge1xuICAgICAgbGV0IG1lbnVTdGF0ZTogeyBpZDogc3RyaW5nLCBvcGVuZWQ6IGJvb2xlYW4gfVtdID0gdGhpcy5zdGF0ZS5tZW51ID8/IFtdO1xuXG4gICAgICB0aGlzLm1lbnVSb290QXJyYXkuZm9yRWFjaCgoZ3JvdXA6IE1lbnVHcm91cCkgPT4ge1xuICAgICAgICBjb25zdCBzYXZlZFN0YXRlID0gbWVudVN0YXRlLmZpbmQobWVudU9wdGlvbiA9PiBtZW51T3B0aW9uLmlkID09PSBncm91cC5pZCk7XG4gICAgICAgIGlmIChzYXZlZFN0YXRlKSB7XG4gICAgICAgICAgZ3JvdXAub3BlbmVkID0gc2F2ZWRTdGF0ZS5vcGVuZWQ7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGdldENvbXBvbmVudEtleSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnT0FwcFNpZGVuYXZDb21wb25lbnQnO1xuICB9XG5cbiAgZ2V0Um91dGVLZXkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmJlZm9yZXVubG9hZCcsIFtdKVxuICBiZWZvcmV1bmxvYWRIYW5kbGVyKCkge1xuICAgIHRoaXMudXBkYXRlU3RhdGVTdG9yYWdlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVnaXN0ZXJMb2NhbFN0b3JhZ2VTZXJ2aWNlUm91dGVDaGFuZ2UoKSB7XG4gICAgaWYgKHRoaXMuc3RvcmVTdGF0ZSkge1xuICAgICAgdGhpcy5vblJvdXRlQ2hhbmdlU3RvcmFnZVN1YnNjcmlwdGlvbiA9IHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS5vblJvdXRlQ2hhbmdlLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZVN0YXRlU3RvcmFnZSgpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZVN0YXRlU3RvcmFnZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlICYmIHRoaXMuc3RvcmVTdGF0ZSkge1xuICAgICAgdGhpcy5zdG9yZU1lbnUoKTtcbiAgICB9XG4gIH1cblxuICByZWZyZXNoTWVudVJvb3RzKCk6IHZvaWQge1xuICAgIHRoaXMubWVudVJvb3RBcnJheSA9IFsuLi50aGlzLmFwcE1lbnVTZXJ2aWNlLmdldE1lbnVSb290cygpXTtcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbXSlcbiAgb25SZXNpemUoKSB7XG4gICAgaWYgKCF0aGlzLm1hbnVhbGx5Q2xvc2VkICYmICF0aGlzLmlzU2NyZWVuU21hbGwoKSAmJiAhdGhpcy5pc01vYmlsZU1vZGUoKSkge1xuICAgICAgdGhpcy5zaWRlbmF2Lm9wZW4oKTtcbiAgICB9XG4gIH1cblxuXG4gIGdldCBsYXlvdXRNb2RlKCk6IE9BcHBMYXlvdXRNb2RlIHtcbiAgICByZXR1cm4gdGhpcy5fbGF5b3V0TW9kZTtcbiAgfVxuXG4gIHNldCBsYXlvdXRNb2RlKHZhbDogT0FwcExheW91dE1vZGUpIHtcbiAgICBjb25zdCBtID0gQ29kZXMuT0FwcExheW91dE1vZGVzLmZpbmQoZSA9PiBlID09PSB2YWwpO1xuICAgIGlmIChVdGlsLmlzRGVmaW5lZChtKSkge1xuICAgICAgdGhpcy5fbGF5b3V0TW9kZSA9IG07XG4gICAgfVxuICB9XG5cbiAgZ2V0IHNpZGVuYXZNb2RlKCk6IE9TaWRlbmF2TW9kZSB7XG4gICAgcmV0dXJuIHRoaXMuX3NpZGVuYXZNb2RlO1xuICB9XG5cbiAgc2V0IHNpZGVuYXZNb2RlKHZhbDogT1NpZGVuYXZNb2RlKSB7XG4gICAgY29uc3QgbSA9IENvZGVzLk9TaWRlbmF2TW9kZXMuZmluZChlID0+IGUgPT09IHZhbCk7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKG0pKSB7XG4gICAgICB0aGlzLl9zaWRlbmF2TW9kZSA9IG07XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHJlZnJlc2hNZW51SXRlbVVzZXJJbmZvKCkge1xuICAgIGlmICh0aGlzLnNob3dVc2VySW5mbyAmJiB0aGlzLnVzZXJJbmZvICYmIHRoaXMuX3Nob3dUb2dnbGVCdXR0b24pIHtcbiAgICAgIGNvbnN0IGZpcnN0Um9vdCA9IHRoaXMubWVudVJvb3RBcnJheVswXTtcbiAgICAgIGNvbnN0IGFscmVhZHlFeGlzdHNVc2VySW5mbyA9IGZpcnN0Um9vdCA/IGZpcnN0Um9vdC5pZCA9PT0gJ3VzZXItaW5mbycgOiBmYWxzZTtcbiAgICAgIGlmIChhbHJlYWR5RXhpc3RzVXNlckluZm8pIHtcbiAgICAgICAgY29uc3QgdXNlckluZm9JdGVtOiBNZW51SXRlbVVzZXJJbmZvID0gKHRoaXMubWVudVJvb3RBcnJheVswXSBhcyBNZW51R3JvdXApLml0ZW1zWzBdIGFzIE1lbnVJdGVtVXNlckluZm87XG4gICAgICAgIHVzZXJJbmZvSXRlbS5pZCA9IHRoaXMudXNlckluZm8udXNlcm5hbWU7XG4gICAgICAgIHVzZXJJbmZvSXRlbS5uYW1lID0gdGhpcy51c2VySW5mby51c2VybmFtZTtcbiAgICAgICAgdXNlckluZm9JdGVtLnVzZXIgPSB0aGlzLnVzZXJJbmZvLnVzZXJuYW1lO1xuICAgICAgICB1c2VySW5mb0l0ZW0uYXZhdGFyID0gdGhpcy51c2VySW5mby5hdmF0YXI7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB1c2VySW5mb0l0ZW06IE1lbnVJdGVtVXNlckluZm8gPSB7XG4gICAgICAgICAgaWQ6IHRoaXMudXNlckluZm8udXNlcm5hbWUsXG4gICAgICAgICAgbmFtZTogdGhpcy51c2VySW5mby51c2VybmFtZSxcbiAgICAgICAgICB1c2VyOiB0aGlzLnVzZXJJbmZvLnVzZXJuYW1lLFxuICAgICAgICAgIGF2YXRhcjogdGhpcy51c2VySW5mby5hdmF0YXJcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgbWVudUdyb3VwVXNlckluZm86IE1lbnVHcm91cCA9IHtcbiAgICAgICAgICBpZDogJ3VzZXItaW5mbycsXG4gICAgICAgICAgbmFtZTogJ0FQUF9MQVlPVVQuVVNFUl9QUk9GSUxFJyxcbiAgICAgICAgICBpdGVtczogW3VzZXJJbmZvSXRlbV0sXG4gICAgICAgICAgb3BlbmVkOiB0cnVlLFxuICAgICAgICAgIGljb246ICdwZXJzb25fcGluJ1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLm1lbnVSb290QXJyYXkudW5zaGlmdChtZW51R3JvdXBVc2VySW5mbyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMucm91dGVyU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnJvdXRlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnVzZXJJbmZvU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnVzZXJJbmZvU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucGVybWlzc2lvblN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5wZXJtaXNzaW9uU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgaXNTY3JlZW5TbWFsbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMubWFudWFsbHlDbG9zZWQgJiYgdGhpcy5tZWRpYS5pc0FjdGl2ZSgnbHQtc20nKTtcbiAgfVxuXG4gIGlzTW9iaWxlTW9kZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbGF5b3V0TW9kZSA9PT0gQ29kZXMuQVBQX0xBWU9VVF9NT0RFX01PQklMRTtcbiAgfVxuXG4gIGlzRGVza3RvcE1vZGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2xheW91dE1vZGUgPT09IENvZGVzLkFQUF9MQVlPVVRfTU9ERV9ERVNLVE9QO1xuICB9XG5cbiAgaXNTaWRlbmF2T3BlbmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm9wZW5lZCAmJiAhdGhpcy5pc01vYmlsZU1vZGUoKSAmJiAhdGhpcy5pc1NjcmVlblNtYWxsKCk7XG4gIH1cblxuICB0b2dnbGVTaWRlbmF2KCkge1xuICAgIGNvbnN0IHByb21pc2UgPSB0aGlzLnNpZGVuYXYub3BlbmVkID8gdGhpcy5zaWRlbmF2LmNsb3NlKCkgOiB0aGlzLnNpZGVuYXYub3BlbigpO1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIHByb21pc2UudGhlbigoKSA9PiB7XG4gICAgICBzZWxmLmFmdGVyU2lkZW5hdlRvZ2dsZS5lbWl0KHNlbGYuc2lkZW5hdi5vcGVuZWQpO1xuICAgIH0pO1xuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHRoaXMub3BlbmVkID0gdGhpcy5zaWRlbmF2Lm9wZW5lZDtcbiAgICB0aGlzLm1hbnVhbGx5Q2xvc2VkID0gIXRoaXMub3BlbmVkO1xuICAgIHRoaXMub25TaWRlbmF2VG9nZ2xlLmVtaXQodGhpcy5zaWRlbmF2Lm9wZW5lZCk7XG4gIH1cblxuICBnZXQgc2hvd1VzZXJJbmZvKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zaG93VXNlckluZm87XG4gIH1cblxuICBzZXQgc2hvd1VzZXJJbmZvKGFyZzogYm9vbGVhbikge1xuICAgIHRoaXMuX3Nob3dVc2VySW5mbyA9IGFyZztcbiAgfVxuXG4gIGdldCBzaG93VG9nZ2xlQnV0dG9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zaG93VG9nZ2xlQnV0dG9uO1xuICB9XG5cbiAgc2V0IHNob3dUb2dnbGVCdXR0b24oYXJnOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2hvd1RvZ2dsZUJ1dHRvbiA9IGFyZztcbiAgfVxuXG4gIG9uTWVudUl0ZW1DbGljaygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc01vYmlsZU1vZGUoKSkge1xuICAgICAgdGhpcy5zaWRlbmF2LmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgc2lkZW5hdkNsb3NlZFN0YXJ0KCkge1xuICAgIHRoaXMub25TaWRlbmF2Q2xvc2VkU3RhcnQuZW1pdCgpO1xuICB9XG5cbiAgc2lkZW5hdk9wZW5lZFN0YXJ0KCkge1xuICAgIHRoaXMub25TaWRlbmF2T3BlbmVkU3RhcnQuZW1pdCgpO1xuICB9XG5cbiAgc2lkZW5hdk9wZW5lZENoYW5nZSgpIHtcbiAgICB0aGlzLm9uU2lkZW5hdk9wZW5lZENoYW5nZS5lbWl0KCk7XG4gIH1cbn1cblxuIiwiPG1hdC1zaWRlbmF2LWNvbnRhaW5lciBjbGFzcz1cIm8tYXBwLXNpZGVuYXYtY29udGFpbmVyXCIgW2NsYXNzLm9wZW5lZF09XCJzaWRlbmF2Lm9wZW5lZFwiXG4gIFtjbGFzcy5vLWFwcC1zaWRlbmF2LW1vZGUtZGVza3RvcF09XCIobGF5b3V0TW9kZSB8fCAnZGVza3RvcCcpID09PSAnZGVza3RvcCdcIlxuICBbY2xhc3Muby1hcHAtc2lkZW5hdi1tb2RlLW1vYmlsZV09XCIobGF5b3V0TW9kZSB8fCAnZGVza3RvcCcpICE9PSAnZGVza3RvcCdcIj5cblxuICA8bWF0LXNpZGVuYXYgI3NpZGVuYXYgY2xhc3M9XCJvLWFwcC1zaWRlbmF2LXNpZGVuYXYgby1zY3JvbGxcIiBbb3BlbmVkXT1cImlzU2lkZW5hdk9wZW5lZCgpXCJcbiAgICBbbW9kZV09XCIoc2lkZW5hdk1vZGUgfHwgKChsYXlvdXRNb2RlIHx8ICdkZXNrdG9wJykgPT09ICdkZXNrdG9wJyA/ICdzaWRlJyA6ICdvdmVyJykpXCIgW2NsYXNzLm1hdC1kcmF3ZXItb3BlbmVkXT1cInNpZGVuYXYub3BlbmVkXCJcbiAgICBbY2xhc3MubWF0LWRyYXdlci1jbG9zZWRdPVwiIXNpZGVuYXYub3BlbmVkXCIgW2NsYXNzLmVsbGlwc2lzLW1lbnUtaXRlbXNdPVwic2hvd0VsbGlwc2lzTWVudVwiIChvcGVuZWRDaGFuZ2UpPVwic2lkZW5hdk9wZW5lZENoYW5nZSgpXCJcbiAgICAoY2xvc2VkU3RhcnQpPVwic2lkZW5hdkNsb3NlZFN0YXJ0KClcIiAob3BlbmVkU3RhcnQpPVwic2lkZW5hdk9wZW5lZFN0YXJ0KClcIj5cbiAgICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgY2xhc3M9XCJzaWRlbmF2LXdyYXBwZXJcIj5cbiAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwiZW5kIGNlbnRlclwiIGNsYXNzPVwic2lkZW5hdi10b2dnbGUtY29udGFpbmVyXCIgKm5nSWY9XCJpc0Rlc2t0b3BNb2RlKClcIj5cbiAgICAgICAgPG1hdC1pY29uIGlkPVwic2lkZW5hdi1tZW51XCIgY2xhc3M9XCJzaWRlbmF2LXRvZ2dsZVwiIChjbGljayk9XCJ0b2dnbGVTaWRlbmF2KClcIiBzdmdJY29uPVwib250aW1pemU6bWVudVwiPm1lbnU8L21hdC1pY29uPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxvLWFwcC1zaWRlbmF2LWltYWdlIFtvcGVuZWQtc3JjXT1cIm9wZW5lZFNpZGVuYXZJbWdcIiBbY2xvc2VkLXNyY109XCJjbG9zZWRTaWRlbmF2SW1nXCI+IDwvby1hcHAtc2lkZW5hdi1pbWFnZT5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm8tYXBwLWxheW91dC1zaWRlbmF2LXByb2plY3Rpb24tc3RhcnRcIj48L25nLWNvbnRlbnQ+XG4gICAgICA8ZGl2IGNsYXNzPVwibmF2TWVudVwiPlxuICAgICAgICA8bmF2ICpuZ0Zvcj1cImxldCBtZW51Um9vdEl0ZW0gb2YgbWVudVJvb3RBcnJheVwiPlxuXG4gICAgICAgICAgPHVsICpuZ0lmPVwiYXBwTWVudVNlcnZpY2UuZ2V0TWVudUl0ZW1UeXBlKG1lbnVSb290SXRlbSkgIT09ICdncm91cCcgJiYgYXBwTWVudVNlcnZpY2UuaXNWaXNpYmxlKG1lbnVSb290SXRlbSlcIj5cbiAgICAgICAgICAgIDxvLWFwcC1zaWRlbmF2LW1lbnUtaXRlbSBbbWVudS1pdGVtXT1cIm1lbnVSb290SXRlbVwiIFttZW51LWl0ZW0tdHlwZV09XCJhcHBNZW51U2VydmljZS5nZXRNZW51SXRlbVR5cGUobWVudVJvb3RJdGVtKVwiXG4gICAgICAgICAgICAgIFtzaWRlbmF2LW9wZW5lZF09XCJzaWRlbmF2Lm9wZW5lZFwiIChvbkNsaWNrKT1cIm9uTWVudUl0ZW1DbGljaygpXCI+XG4gICAgICAgICAgICA8L28tYXBwLXNpZGVuYXYtbWVudS1pdGVtPlxuICAgICAgICAgIDwvdWw+XG5cbiAgICAgICAgICA8by1hcHAtc2lkZW5hdi1tZW51LWdyb3VwIFttZW51LWdyb3VwXT1cIm1lbnVSb290SXRlbVwiIFtzaWRlbmF2LW9wZW5lZF09XCJzaWRlbmF2Lm9wZW5lZFwiIGxldmVsPVwiMVwiXG4gICAgICAgICAgICAqbmdJZj1cImFwcE1lbnVTZXJ2aWNlLmdldE1lbnVJdGVtVHlwZShtZW51Um9vdEl0ZW0pID09PSAnZ3JvdXAnICYmIGFwcE1lbnVTZXJ2aWNlLmlzVmlzaWJsZShtZW51Um9vdEl0ZW0pXCJcbiAgICAgICAgICAgIChvbkl0ZW1DbGljayk9XCJvbk1lbnVJdGVtQ2xpY2soKVwiPlxuICAgICAgICAgIDwvby1hcHAtc2lkZW5hdi1tZW51LWdyb3VwPlxuXG4gICAgICAgIDwvbmF2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LXNpZGVuYXYtcHJvamVjdGlvbi1lbmRcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiby1hcHAtbGF5b3V0LXNpZGVuYXYtcHJvamVjdGlvbi1lbmRcIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbWF0LXNpZGVuYXY+XG5cbiAgPG1hdC1zaWRlbmF2LWNvbnRlbnQgY2xhc3M9XCJvLWFwcC1zaWRlbmF2LWNvbnRlbnRcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvbWF0LXNpZGVuYXYtY29udGVudD5cbjwvbWF0LXNpZGVuYXYtY29udGFpbmVyPlxuIl19
|
|
@@ -211,4 +211,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
211
211
|
type: Inject,
|
|
212
212
|
args: [forwardRef(() => OFormComponent)]
|
|
213
213
|
}] }]; }, propDecorators: { queryOnChange: [], queryOnChangeDelay: [] } });
|
|
214
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1maWx0ZXItYnVpbGRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXItYnVpbGRlci9vLWZpbHRlci1idWlsZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL2ZpbHRlci1idWlsZGVyL28tZmlsdGVyLWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQWMsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFJL0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFM0UsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sK0RBQStELENBQUM7QUFLcEgsT0FBTyxFQUFpQixLQUFLLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStC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V0FBVztRQUNoQixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztRQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDdEMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2hDLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUMxQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOztvSEFyUFUsdUJBQXVCLDBDQXdCeEIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQzt3R0F4Qi9CLHVCQUF1Qiw0Y0FUdkI7UUFDVCxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixDQUFDLEVBQUU7S0FDeEYsMEJDNURILEVBQUE7QUQyRUU7SUFBQyxxQkFBcUIsRUFBRTs7OERBQ2M7QUFDdEM7SUFBQyxvQkFBb0IsRUFBRTs7bUVBQ2U7MkZBWDNCLHVCQUF1QjtrQkFkbkMsU0FBUzsrQkFDRSxrQkFBa0IsVUFFcEIsK0JBQStCLFdBQzlCLGdDQUFnQyxhQUM5Qjt3QkFDVCxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx3QkFBd0IsQ0FBQyxFQUFFO3FCQUN4Rjs7MEJBK0JFLE1BQU07MkJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQzs0Q0FmbkMsYUFBYSxNQUViLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbmplY3QsIEluamVjdG9yLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgT0Zvcm1Db21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2Zvcm0vby1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXRDb252ZXJ0ZXIsIE51bWJlcklucHV0Q29udmVydGVyIH0gZnJvbSAnLi4vLi4vZGVjb3JhdG9ycy9pbnB1dC1jb252ZXJ0ZXInO1xuaW1wb3J0IHsgSUZpbHRlckJ1aWxkZXJDbXBUYXJnZXQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2ZpbHRlci1idWlsZGVyLWNvbXBvbmVudC10YXJnZXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IElGb3JtRGF0YUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZm9ybS1kYXRhLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSVNlcnZpY2VEYXRhQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9zZXJ2aWNlLWRhdGEtY29tcG9uZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50U3RhdGVDbGFzcyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N0YXRlL28tZmlsdGVyLWJ1aWxkZXItY29tcG9uZW50LXN0YXRlLmNsYXNzJztcbmltcG9ydCB7IE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50U3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc3RhdGUvby1maWx0ZXItYnVpbGRlci1jb21wb25lbnQtc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBPRmlsdGVyRGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEJhc2ljRXhwcmVzc2lvbiB9IGZyb20gJy4uLy4uL3R5cGVzL2Jhc2ljLWV4cHJlc3Npb24udHlwZSc7XG5pbXBvcnQgeyBFeHByZXNzaW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMvZXhwcmVzc2lvbi50eXBlJztcbmltcG9ydCB7IE9GaWx0ZXJCdWlsZGVyVmFsdWVzIH0gZnJvbSAnLi4vLi4vdHlwZXMvby1maWx0ZXItYnVpbGRlci12YWx1ZXMudHlwZSc7XG5pbXBvcnQgeyBDSEFOR0VfRVZFTlRTLCBDb2RlcyB9IGZyb20gJy4uLy4uL3V0aWwvY29kZXMnO1xuaW1wb3J0IHsgRmlsdGVyRXhwcmVzc2lvblV0aWxzIH0gZnJvbSAnLi4vLi4vdXRpbC9maWx0ZXItZXhwcmVzc2lvbi51dGlscyc7XG5pbXBvcnQgeyBVdGlsIH0gZnJvbSAnLi4vLi4vdXRpbC91dGlsJztcbmltcG9ydCB7IE9GaWx0ZXJCdWlsZGVyQmFzZSB9IGZyb20gJy4vby1maWx0ZXItYnVpbGRlci1iYXNlLmNsYXNzJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfSU5QVVRTX09fRklMVEVSX0JVSUxERVIgPSBbXG4gIC8vIGZpbHRlcnM6IFtzdHJpbmddIExpc3Qgb2YgcGFpcnMgb2YgZm9ybSBjb21wb25lbnQgYXR0cmlidXRlcyBhbmQgdGFyZ2V0IGNvbXBvbmVudCBjb2x1bXMgKHRhcmdldENvbHVtbjE6Y29tcG9uZW50QXR0cjE7dGFyZ2V0Q29sdW1uMjpjb21wb25lbnRBdHRyMjsuLi4pLiBTZXBhcmF0ZWQgYnkgJzsnLlxuICAnZmlsdGVycycsXG5cbiAgLy8gdGFyZ2V0IFtgT1NlcnZpY2VDb21wb25lbnRgIGluc3RhbmNlXTogQ29tcG9uZW50IHdob3NlIGRhdGEgd2lsbCBiZSBmaWx0ZXJlZC5cbiAgJ3RhcmdldENtcDogdGFyZ2V0JyxcblxuICAvLyBleHByZXNzaW9uLWJ1aWxkZXIgW2Z1bnRpb25dOiBGdW50aW9uIGNhbGxlZCBmb3IgY3JlYXRpbmcgdGhlIGV4cHJlc3Npb24uXG4gICdleHByZXNzaW9uQnVpbGRlcjogZXhwcmVzc2lvbi1idWlsZGVyJyxcblxuICAvLyBxdWVyeS1vbi1jaGFuZ2UgW3llc3xub3x0cnVlfGZhbHNlXTogSW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IHRvIHRyaWdnZXIgdGhlIHRhcmdldCBjb21wb25lbnQgcmVmcmVzaCB3aGVuIGEgZmlsdGVyIGNvbXBvbmVudCBgb25DaGFuZ2VgIGV2ZW50IGlzIGZpcmVkLiBEZWZhdWx0OiBuby5cbiAgJ3F1ZXJ5T25DaGFuZ2U6IHF1ZXJ5LW9uLWNoYW5nZScsXG5cbiAgLy8gcXVlcnktb24tY2hhbmdlLWRlbGF5IFtudW1iZXJdOiBEZWxheSB0aW1lIGluIG1pbGxpc2Vjb25kcyBgcXVlcnktb24tY2hhbmdlYCBtZXRob2QgaXMgdHJpZ2dlcmVkLiBEZWZhdWx0OiAwLlxuICAncXVlcnlPbkNoYW5nZURlbGF5OiBxdWVyeS1vbi1jaGFuZ2UtZGVsYXknLFxuXG4gIC8vcXVlcnktb24tY2hhbmdlLWV2ZW50OiBbY2hhbmdlfCBvblZhbHVlQ2hhbmdlXSBUeXBlIG9mIGV2ZW50IHRoYXQgZW1pdCB3aGVuIHF1ZXJ5LW9uLWNoYW5nZT1geWVzYFxuICAncXVlcnlPbkNoYW5nZUV2ZW50VHlwZTogcXVlcnktb24tY2hhbmdlLWV2ZW50LXR5cGUnLFxuXG4gIC8vIGF0dHIgW3N0cmluZ106IGZpbHRlciBidWlsZGVyIGlkZW50aWZpZXIuIEl0IGlzIG1hbmRhdG9yeSBpZiBkYXRhIGFyZSBwcm92aWRlZCB0aHJvdWdoIHRoZSBkYXRhIGF0dHJpYnV0ZS4gRGVmYXVsdDogdGFyZ2V0IChpZiBzZXQpLlxuICAnb2F0dHI6IGF0dHInLFxuXVxuXG5leHBvcnQgY29uc3QgREVGQVVMVF9PVVRQVVRTX09fRklMVEVSX0JVSUxERVIgPSBbXG4gIC8vIEV2ZW50IHRyaWdnZXJlZCB3aGVuIHRoZSBmaWx0ZXIgYWN0aW9uIGlzIGV4ZWN1dGVkLlxuICAnb25GaWx0ZXInLFxuXG4gIC8vIEV2ZW50IHRyaWdnZXJlZCB3aGVuIHRoZSBjbGVhciBhY3Rpb24gaXMgZXhjdXRlZC5cbiAgJ29uQ2xlYXInXG5dO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvLWZpbHRlci1idWlsZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL28tZmlsdGVyLWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBpbnB1dHM6IERFRkFVTFRfSU5QVVRTX09fRklMVEVSX0JVSUxERVIsXG4gIG91dHB1dHM6IERFRkFVTFRfT1VUUFVUU19PX0ZJTFRFUl9CVUlMREVSLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IE9GaWx0ZXJCdWlsZGVyQmFzZSwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gT0ZpbHRlckJ1aWxkZXJDb21wb25lbnQpIH1cbiAgXVxufSlcblxuLyoqXG4gKiBUaGUgT0ZpbHRlckJ1aWxkZXJDb21wb25lbnQuXG4gKi9cblxuZXhwb3J0IGNsYXNzIE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkluaXQge1xuXG4gIHB1YmxpYyBvbkZpbHRlcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgcHVibGljIG9uQ2xlYXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgcHVibGljIGZpbHRlcnM6IHN0cmluZztcbiAgcHVibGljIHRhcmdldENtcDogSVNlcnZpY2VEYXRhQ29tcG9uZW50O1xuICBwdWJsaWMgZXhwcmVzc2lvbkJ1aWxkZXI6ICh2YWx1ZXM6IEFycmF5PHsgYXR0ciwgdmFsdWUgfT4pID0+IEV4cHJlc3Npb247XG4gIEBCb29sZWFuSW5wdXRDb252ZXJ0ZXIoKVxuICBwdWJsaWMgcXVlcnlPbkNoYW5nZTogYm9vbGVhbiA9IGZhbHNlO1xuICBATnVtYmVySW5wdXRDb252ZXJ0ZXIoKVxuICBwdWJsaWMgcXVlcnlPbkNoYW5nZURlbGF5OiBudW1iZXIgPSAwO1xuICBwdWJsaWMgcXVlcnlPbkNoYW5nZUV2ZW50VHlwZTogQ0hBTkdFX0VWRU5UUyA9IENvZGVzLkRFRkFVTFRfQ0hBTkdFX0VWRU5UO1xuXG4gIHByb3RlY3RlZCBmaWx0ZXJDb21wb25lbnRzOiBBcnJheTxJRmlsdGVyQnVpbGRlckNtcFRhcmdldD4gPSBbXTtcblxuICBwcm90ZWN0ZWQgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICBwdWJsaWMgb2F0dHI6IHN0cmluZztcbiAgcHJvdGVjdGVkIGNvbXBvbmVudFN0YXRlU2VydmljZTogT0ZpbHRlckJ1aWxkZXJDb21wb25lbnRTdGF0ZVNlcnZpY2U7XG4gIHByb3RlY3RlZCBsb2NhbFN0b3JhZ2VTZXJ2aWNlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlO1xuICBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXI7XG4gIHByb3RlY3RlZCBhY3RSb3V0ZTogQWN0aXZhdGVkUm91dGU7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgQEluamVjdChmb3J3YXJkUmVmKCgpID0+IE9Gb3JtQ29tcG9uZW50KSkgcHVibGljIGZvcm06IE9Gb3JtQ29tcG9uZW50XG4gICkge1xuICAgIHRoaXMubG9jYWxTdG9yYWdlU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KExvY2FsU3RvcmFnZVNlcnZpY2UpO1xuICAgIHRoaXMuY29tcG9uZW50U3RhdGVTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQ8T0ZpbHRlckJ1aWxkZXJDb21wb25lbnRTdGF0ZVNlcnZpY2U+KE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50U3RhdGVTZXJ2aWNlKTtcbiAgICB0aGlzLnJvdXRlciA9IHRoaXMuaW5qZWN0b3IuZ2V0PFJvdXRlcj4oUm91dGVyKTtcbiAgICB0aGlzLmFjdFJvdXRlID0gdGhpcy5pbmplY3Rvci5nZXQ8QWN0aXZhdGVkUm91dGU+KEFjdGl2YXRlZFJvdXRlKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhbGl6ZSgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhbGl6ZUxpc3RlbmVycygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9ucykge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbXBvbmVudFN0YXRlU2VydmljZS5pbml0aWFsaXplKHRoaXMpO1xuICAgIC8vIFBhcnNlIGZpbHRlcnNcbiAgICBpZiAodGhpcy5maWx0ZXJzKSB7XG4gICAgICBjb25zdCBmaWx0ZXJBcnJheTogQXJyYXk8c3RyaW5nPiA9IFV0aWwucGFyc2VBcnJheSh0aGlzLmZpbHRlcnMpO1xuICAgICAgZmlsdGVyQXJyYXkuZm9yRWFjaChmaWx0ZXIgPT4ge1xuICAgICAgICBjb25zdCBmaWx0ZXJFbG1zID0gZmlsdGVyLnNwbGl0KENvZGVzLkNPTFVNTlNfQUxJQVNfU0VQQVJBVE9SKTtcbiAgICAgICAgdGhpcy5maWx0ZXJDb21wb25lbnRzLnB1c2goe1xuICAgICAgICAgIHRhcmdldEF0dHI6IGZpbHRlckVsbXNbMF0sXG4gICAgICAgICAgZm9ybUNvbXBvbmVudEF0dHI6IGZpbHRlckVsbXNbMV0gPyBmaWx0ZXJFbG1zWzFdIDogZmlsdGVyRWxtc1swXVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChVdGlsLmlzRGVmaW5lZCh0aGlzLnRhcmdldENtcCkpIHtcbiAgICAgIHRoaXMudGFyZ2V0Q21wLnNldEZpbHRlckJ1aWxkZXIodGhpcyk7XG4gICAgfVxuICB9XG5cbiAgaW5pdGlhbGl6ZUxpc3RlbmVycygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5xdWVyeU9uQ2hhbmdlKSB7XG4gICAgICB0aGlzLmZpbHRlckNvbXBvbmVudHMuZm9yRWFjaCgoZmlsdGVyQ29tcG9uZW50OiBJRmlsdGVyQnVpbGRlckNtcFRhcmdldCkgPT4ge1xuICAgICAgICBjb25zdCBmb3JtQ29tcG9uZW50OiBJRm9ybURhdGFDb21wb25lbnQgPSB0aGlzLmZvcm0uZ2V0Q29tcG9uZW50cygpW2ZpbHRlckNvbXBvbmVudC5mb3JtQ29tcG9uZW50QXR0cl07XG4gICAgICAgIGlmIChmb3JtQ29tcG9uZW50KSB7XG4gICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgIHRoaXMuZ2V0RXZlbnRGcm9tRm9ybUNvbXBvbmVudChmb3JtQ29tcG9uZW50KVxuICAgICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUodGhpcy5xdWVyeU9uQ2hhbmdlRGVsYXkpKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMudHJpZ2dlclJlbG9hZCgpKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0RXZlbnRGcm9tRm9ybUNvbXBvbmVudChmb3JtQ29tcG9uZW50OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnF1ZXJ5T25DaGFuZ2VFdmVudFR5cGUgPT09IENvZGVzLkRFRkFVTFRfQ0hBTkdFX0VWRU5UID9cbiAgICAgIGZvcm1Db21wb25lbnQub25WYWx1ZUNoYW5nZSA6XG4gICAgICBmb3JtQ29tcG9uZW50LmdldEZvcm1Db250cm9sKCkudmFsdWVDaGFuZ2VzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gYEV4cHJlc3Npb25gIG9iamVjdCB3aXRoIHRoZSBmaWx0ZXIuXG4gICAqIEByZXR1cm5zIHRoZSBgRXhwcmVzc2lvbmAgb2JqZWN0IHdpdGggdGhlIGZpbHRlci5cbiAgICovXG4gIGdldEV4cHJlc3Npb24oKTogRXhwcmVzc2lvbiB7XG4gICAgLy8gUHJlcGFyZSBmb3JtIGZpbHRlciB2YWx1ZXMgWy4uLiB7IGF0dHIsIHZhbHVlIH1dXG4gICAgY29uc3QgZm9ybUNvbXBvbmVudHMgPSB0aGlzLmZvcm0uZ2V0Q29tcG9uZW50cygpO1xuICAgIGNvbnN0IHBhcmFtczogQXJyYXk8eyBhdHRyLCB2YWx1ZSB9PiA9IFtdO1xuICAgIHRoaXMuZmlsdGVyQ29tcG9uZW50cy5mb3JFYWNoKChmaWx0ZXJDb21wb25lbnQ6IElGaWx0ZXJCdWlsZGVyQ21wVGFyZ2V0KSA9PiB7XG4gICAgICBjb25zdCBmb3JtQ29tcG9uZW50OiBJRm9ybURhdGFDb21wb25lbnQgPSBmb3JtQ29tcG9uZW50c1tmaWx0ZXJDb21wb25lbnQuZm9ybUNvbXBvbmVudEF0dHJdO1xuICAgICAgaWYgKGZvcm1Db21wb25lbnQpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBmb3JtQ29tcG9uZW50LmdldFZhbHVlKCk7XG4gICAgICAgIHBhcmFtcy5wdXNoKHtcbiAgICAgICAgICBhdHRyOiBmaWx0ZXJDb21wb25lbnQudGFyZ2V0QXR0cixcbiAgICAgICAgICB2YWx1ZTogdmFsdWVcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBUcmlnZ2VyIHRoZSBmdW5jdGlvbiBwcm92aWRlZCBieSB0aGUgdXNlclxuICAgIGlmICh0aGlzLmV4cHJlc3Npb25CdWlsZGVyKSB7XG4gICAgICByZXR1cm4gdGhpcy5leHByZXNzaW9uQnVpbGRlcihwYXJhbXMpO1xuICAgIH1cblxuICAgIC8vIEdlbmVyYXRlIGRlc2ZhdWx0IGV4cHJlc3Npb25cbiAgICBjb25zdCBleHByZXNzaW9uczogQXJyYXk8RXhwcmVzc2lvbj4gPSBbXTtcbiAgICBwYXJhbXMuZm9yRWFjaChlbGVtID0+IHtcbiAgICAgIGlmIChVdGlsLmlzRGVmaW5lZChlbGVtLnZhbHVlKSkge1xuICAgICAgICBleHByZXNzaW9ucy5wdXNoKEZpbHRlckV4cHJlc3Npb25VdGlscy5idWlsZEV4cHJlc3Npb25FcXVhbHMoZWxlbS5hdHRyLCBlbGVtLnZhbHVlKSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZXhwcmVzc2lvbnMubGVuZ3RoID8gZXhwcmVzc2lvbnMucmVkdWNlKChmZTEsIGZlMikgPT4gRmlsdGVyRXhwcmVzc2lvblV0aWxzLmJ1aWxkQ29tcGxleEV4cHJlc3Npb24oZmUxLCBmZTIsIEZpbHRlckV4cHJlc3Npb25VdGlscy5PUF9PUikpIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gYEJhc2ljRXhwcmVzc2lvbmAgb2JqZWN0IHdpdGggdGhlIGZpbHRlci5cbiAgICogQHJldHVybnMgdGhlIGBCYXNpY0V4cHJlc3Npb25gIG9iamVjdCB3aXRoIHRoZSBmaWx0ZXIuXG4gICAqL1xuICBnZXRCYXNpY0V4cHJlc3Npb24oKTogQmFzaWNFeHByZXNzaW9uIHtcbiAgICByZXR1cm4gRmlsdGVyRXhwcmVzc2lvblV0aWxzLmJ1aWxkQmFzaWNFeHByZXNzaW9uKHRoaXMuZ2V0RXhwcmVzc2lvbigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBmaWx0ZXIgYnVpbGRlciB0YXJnZXQgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyB0aGUgdGFyZ2V0IGNvbXBvbmVudC5cbiAgICovXG4gIGdldFRhcmdldENvbXBvbmVudCgpOiBJU2VydmljZURhdGFDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLnRhcmdldENtcDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VyIHRoZSBgcmVsb2FkRGF0YWAgbWV0aG9kIGZyb20gdGhlIHRhcmdldCBjb21wb25lbnQuXG4gICAqL1xuICB0cmlnZ2VyUmVsb2FkKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy50YXJnZXRDbXApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMudGFyZ2V0Q21wLnBhZ2VhYmxlKSB7XG4gICAgICB0aGlzLnRhcmdldENtcC5yZWxvYWRQYWdpbmF0ZWREYXRhRnJvbVN0YXJ0KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudGFyZ2V0Q21wLnJlbG9hZERhdGEoKTtcbiAgICB9XG4gICAgdGhpcy5vbkZpbHRlci5lbWl0KCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXIgdGhlIGZvcm0gY29tcG9uZW50cyB1c2VkIGZvciB0aGUgZmlsdGVyLlxuICAgKi9cbiAgY2xlYXJGaWx0ZXIoKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybUNvbXBvbmVudHMgPSB0aGlzLmZvcm0uZ2V0Q29tcG9uZW50cygpO1xuICAgIHRoaXMuZ2V0RmlsdGVyQXR0cnMoKS5mb3JFYWNoKChhdHRyOiBzdHJpbmcpID0+IHtcbiAgICAgIGZvcm1Db21wb25lbnRzW2F0dHJdLmNsZWFyVmFsdWUoKTtcbiAgICB9KTtcbiAgICB0aGlzLm9uQ2xlYXIuZW1pdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgZmlsdGVyIHZhbHVlc1xuICAgKiBAcmV0dXJucyBmaWx0ZXIgdmFsdWVzXG4gICAqL1xuICBnZXRGaWx0ZXJWYWx1ZXMoKTogT0ZpbHRlckJ1aWxkZXJWYWx1ZXNbXSB7XG4gICAgY29uc3QgcmVzdWx0OiBPRmlsdGVyQnVpbGRlclZhbHVlc1tdID0gW107XG5cbiAgICB0aGlzLmZpbHRlckNvbXBvbmVudHMuXG4gICAgICBmb3JFYWNoKChmaWx0ZXJDb21wb25lbnQ6IElGaWx0ZXJCdWlsZGVyQ21wVGFyZ2V0KSA9PiB7XG4gICAgICAgIGlmIChVdGlsLmlzRGVmaW5lZCh0aGlzLmZvcm0uZ2V0Q29tcG9uZW50cygpW2ZpbHRlckNvbXBvbmVudC5mb3JtQ29tcG9uZW50QXR0cl0pKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goeyBhdHRyOiBmaWx0ZXJDb21wb25lbnQuZm9ybUNvbXBvbmVudEF0dHIsIHZhbHVlOiB0aGlzLmZvcm0uZ2V0Q29tcG9uZW50cygpW2ZpbHRlckNvbXBvbmVudC5mb3JtQ29tcG9uZW50QXR0cl0uZ2V0VmFsdWUoKSB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcblxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgZmlsdGVyIHZhbHVlc1xuICAgKiBAcGFyYW0gZmlsdGVyQnVpbGRlclZhbHVlc1xuICAgKi9cbiAgc2V0RmlsdGVyVmFsdWVzKGZpbHRlckJ1aWxkZXJWYWx1ZXM6IE9GaWx0ZXJCdWlsZGVyVmFsdWVzW10pIHtcbiAgICBmaWx0ZXJCdWlsZGVyVmFsdWVzLmZvckVhY2goKGZpbHRlckJ1aWxkZXJWYWx1ZTogT0ZpbHRlckJ1aWxkZXJWYWx1ZXMpID0+IHtcbiAgICAgIGlmICh0aGlzLmZvcm0uZ2V0Q29tcG9uZW50cygpW2ZpbHRlckJ1aWxkZXJWYWx1ZS5hdHRyXSkge1xuICAgICAgICB0aGlzLmZvcm0uZ2V0Q29tcG9uZW50cygpW2ZpbHRlckJ1aWxkZXJWYWx1ZS5hdHRyXS5zZXRWYWx1ZShmaWx0ZXJCdWlsZGVyVmFsdWUudmFsdWUpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1RoZSBmaWx0ZXIgd2l0aCBhdHRyICcgKyBmaWx0ZXJCdWlsZGVyVmFsdWUuYXR0ciArICcgY2Fubm90IGJlIHNldCAnICsgZmlsdGVyQnVpbGRlclZhbHVlLnZhbHVlICsgJyBiZWNhdXNlIGl0IGRvZXMgbm90IGV4aXN0IC4nKTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gYXJyYXkgd2l0aCB0aGUgYXR0cmlidXRlcyBvZiB0aGUgZmlsdGVyYWJsZSBjb21wb25lbnRzXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0RmlsdGVyQXR0cnMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyQ29tcG9uZW50cy5tYXAoKGVsZW06IElGaWx0ZXJCdWlsZGVyQ21wVGFyZ2V0KSA9PiBlbGVtLmZvcm1Db21wb25lbnRBdHRyKTtcbiAgfVxuICAvKipcbiAgICogR2V0cyBzdGF0ZVxuICAgKi9cbiAgZ2V0IHN0YXRlKCk6IE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50U3RhdGVDbGFzcyB7XG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50U3RhdGVTZXJ2aWNlLnN0YXRlO1xuICB9XG5cblxuICBnZXREYXRhVG9TdG9yZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnRTdGF0ZVNlcnZpY2Uuc3RhdGU7XG4gIH1cblxuICBnZXRDb21wb25lbnRLZXkoKTogc3RyaW5nIHtcbiAgICBpZiAoIVV0aWwuaXNEZWZpbmVkKHRoaXMub2F0dHIpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdZb3VyIG8tZmlsdGVyLWJ1aWxkZXIgY29tcG9uZW50IG11c3QgaGF2ZSBhbiBcXCdhdHRyXFwnLiBPdGhlcndpc2UsIHlvdXIgZmlsdGVyIGJ1aWxkZXIgc3RhdGUgd2lsbCBub3Qgc2V0IGluIGxvY2Fsc3RvcmFnZS4nKTtcbiAgICAgIHJldHVybiAnT0ZpbHRlckJ1aWxkZXJDb21wb25lbnRfJztcbiAgICB9XG5cbiAgICByZXR1cm4gJ09GaWx0ZXJCdWlsZGVyQ29tcG9uZW50XycgKyB0aGlzLm9hdHRyO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3JlcyBmaWx0ZXIgaW4gc3RhdGVcbiAgICogQHBhcmFtIGFyZ1xuICAgKi9cbiAgc3RvcmVGaWx0ZXJJblN0YXRlKGFyZzogT0ZpbHRlckRlZmluaXRpb24pIHtcbiAgICB0aGlzLmNvbXBvbmVudFN0YXRlU2VydmljZS5zdG9yZUZpbHRlcihhcmcpO1xuICAgIHRoaXMudXBkYXRlU3RhdGVTdG9yYWdlKCk7XG4gIH1cbiAgLyoqXG4gICAqIE1ldGhvZCB1cGRhdGUgc3RvcmUgbG9jYWxzdG9yYWdlLCBjYWxsIG9mIHRoZSBJTG9jYWxTdG9yYWdlXG4gICAqL1xuICBwcm90ZWN0ZWQgdXBkYXRlU3RhdGVTdG9yYWdlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2UpIHtcbiAgICAgIHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS51cGRhdGVDb21wb25lbnRTdG9yYWdlKHRoaXMsIHRoaXMuZ2V0Um91dGVLZXkoKSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFJvdXRlS2V5KCk6IHN0cmluZyB7XG4gICAgbGV0IHJvdXRlID0gdGhpcy5yb3V0ZXIudXJsO1xuICAgIHRoaXMuYWN0Um91dGUucGFyYW1zLnN1YnNjcmliZShwYXJhbXMgPT4ge1xuICAgICAgT2JqZWN0LmtleXMocGFyYW1zKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIHJvdXRlID0gcm91dGUucmVwbGFjZShwYXJhbXNba2V5XSwga2V5KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiByb3V0ZTtcbiAgfVxufVxuIiwiIl19
|
|
214
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1maWx0ZXItYnVpbGRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXItYnVpbGRlci9vLWZpbHRlci1idWlsZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL2ZpbHRlci1idWlsZGVyL28tZmlsdGVyLWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQWMsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFJL0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFM0UsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sK0RBQStELENBQUM7QUFJcEgsT0FBTyxFQUFpQixLQUFLLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStC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V0FBVztRQUNoQixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztRQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDdEMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2hDLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUMxQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOztvSEFyUFUsdUJBQXVCLDBDQXdCeEIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQzt3R0F4Qi9CLHVCQUF1Qiw0Y0FUdkI7UUFDVCxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixDQUFDLEVBQUU7S0FDeEYsMEJDNURILEVBQUE7QUQyRUU7SUFBQyxxQkFBcUIsRUFBRTs7OERBQ2M7QUFDdEM7SUFBQyxvQkFBb0IsRUFBRTs7bUVBQ2U7MkZBWDNCLHVCQUF1QjtrQkFkbkMsU0FBUzsrQkFDRSxrQkFBa0IsVUFFcEIsK0JBQStCLFdBQzlCLGdDQUFnQyxhQUM5Qjt3QkFDVCxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx3QkFBd0IsQ0FBQyxFQUFFO3FCQUN4Rjs7MEJBK0JFLE1BQU07MkJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQzs0Q0FmbkMsYUFBYSxNQUViLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbmplY3QsIEluamVjdG9yLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgT0Zvcm1Db21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2Zvcm0vby1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXRDb252ZXJ0ZXIsIE51bWJlcklucHV0Q29udmVydGVyIH0gZnJvbSAnLi4vLi4vZGVjb3JhdG9ycy9pbnB1dC1jb252ZXJ0ZXInO1xuaW1wb3J0IHsgSUZpbHRlckJ1aWxkZXJDbXBUYXJnZXQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2ZpbHRlci1idWlsZGVyLWNvbXBvbmVudC10YXJnZXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IElGb3JtRGF0YUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZm9ybS1kYXRhLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSVNlcnZpY2VEYXRhQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9zZXJ2aWNlLWRhdGEtY29tcG9uZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50U3RhdGVDbGFzcyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N0YXRlL28tZmlsdGVyLWJ1aWxkZXItY29tcG9uZW50LXN0YXRlLmNsYXNzJztcbmltcG9ydCB7IE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50U3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc3RhdGUvby1maWx0ZXItYnVpbGRlci1jb21wb25lbnQtc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBCYXNpY0V4cHJlc3Npb24gfSBmcm9tICcuLi8uLi90eXBlcy9iYXNpYy1leHByZXNzaW9uLnR5cGUnO1xuaW1wb3J0IHsgRXhwcmVzc2lvbiB9IGZyb20gJy4uLy4uL3R5cGVzL2V4cHJlc3Npb24udHlwZSc7XG5pbXBvcnQgeyBPRmlsdGVyQnVpbGRlclZhbHVlcyB9IGZyb20gJy4uLy4uL3R5cGVzL28tZmlsdGVyLWJ1aWxkZXItdmFsdWVzLnR5cGUnO1xuaW1wb3J0IHsgQ0hBTkdFX0VWRU5UUywgQ29kZXMgfSBmcm9tICcuLi8uLi91dGlsL2NvZGVzJztcbmltcG9ydCB7IEZpbHRlckV4cHJlc3Npb25VdGlscyB9IGZyb20gJy4uLy4uL3V0aWwvZmlsdGVyLWV4cHJlc3Npb24udXRpbHMnO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uLy4uL3V0aWwvdXRpbCc7XG5pbXBvcnQgeyBPRmlsdGVyQnVpbGRlckJhc2UgfSBmcm9tICcuL28tZmlsdGVyLWJ1aWxkZXItYmFzZS5jbGFzcyc7XG5pbXBvcnQgeyBPRmlsdGVyRGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzL28tZmlsdGVyLWRlZmluaXRpb24udHlwZSc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0lOUFVUU19PX0ZJTFRFUl9CVUlMREVSID0gW1xuICAvLyBmaWx0ZXJzOiBbc3RyaW5nXSBMaXN0IG9mIHBhaXJzIG9mIGZvcm0gY29tcG9uZW50IGF0dHJpYnV0ZXMgYW5kIHRhcmdldCBjb21wb25lbnQgY29sdW1zICh0YXJnZXRDb2x1bW4xOmNvbXBvbmVudEF0dHIxO3RhcmdldENvbHVtbjI6Y29tcG9uZW50QXR0cjI7Li4uKS4gU2VwYXJhdGVkIGJ5ICc7Jy5cbiAgJ2ZpbHRlcnMnLFxuXG4gIC8vIHRhcmdldCBbYE9TZXJ2aWNlQ29tcG9uZW50YCBpbnN0YW5jZV06IENvbXBvbmVudCB3aG9zZSBkYXRhIHdpbGwgYmUgZmlsdGVyZWQuXG4gICd0YXJnZXRDbXA6IHRhcmdldCcsXG5cbiAgLy8gZXhwcmVzc2lvbi1idWlsZGVyIFtmdW50aW9uXTogRnVudGlvbiBjYWxsZWQgZm9yIGNyZWF0aW5nIHRoZSBleHByZXNzaW9uLlxuICAnZXhwcmVzc2lvbkJ1aWxkZXI6IGV4cHJlc3Npb24tYnVpbGRlcicsXG5cbiAgLy8gcXVlcnktb24tY2hhbmdlIFt5ZXN8bm98dHJ1ZXxmYWxzZV06IEluZGljYXRlcyB3aGV0aGVyIG9yIG5vdCB0byB0cmlnZ2VyIHRoZSB0YXJnZXQgY29tcG9uZW50IHJlZnJlc2ggd2hlbiBhIGZpbHRlciBjb21wb25lbnQgYG9uQ2hhbmdlYCBldmVudCBpcyBmaXJlZC4gRGVmYXVsdDogbm8uXG4gICdxdWVyeU9uQ2hhbmdlOiBxdWVyeS1vbi1jaGFuZ2UnLFxuXG4gIC8vIHF1ZXJ5LW9uLWNoYW5nZS1kZWxheSBbbnVtYmVyXTogRGVsYXkgdGltZSBpbiBtaWxsaXNlY29uZHMgYHF1ZXJ5LW9uLWNoYW5nZWAgbWV0aG9kIGlzIHRyaWdnZXJlZC4gRGVmYXVsdDogMC5cbiAgJ3F1ZXJ5T25DaGFuZ2VEZWxheTogcXVlcnktb24tY2hhbmdlLWRlbGF5JyxcblxuICAvL3F1ZXJ5LW9uLWNoYW5nZS1ldmVudDogW2NoYW5nZXwgb25WYWx1ZUNoYW5nZV0gVHlwZSBvZiBldmVudCB0aGF0IGVtaXQgd2hlbiBxdWVyeS1vbi1jaGFuZ2U9YHllc2BcbiAgJ3F1ZXJ5T25DaGFuZ2VFdmVudFR5cGU6IHF1ZXJ5LW9uLWNoYW5nZS1ldmVudC10eXBlJyxcblxuICAvLyBhdHRyIFtzdHJpbmddOiBmaWx0ZXIgYnVpbGRlciBpZGVudGlmaWVyLiBJdCBpcyBtYW5kYXRvcnkgaWYgZGF0YSBhcmUgcHJvdmlkZWQgdGhyb3VnaCB0aGUgZGF0YSBhdHRyaWJ1dGUuIERlZmF1bHQ6IHRhcmdldCAoaWYgc2V0KS5cbiAgJ29hdHRyOiBhdHRyJyxcbl1cblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfT1VUUFVUU19PX0ZJTFRFUl9CVUlMREVSID0gW1xuICAvLyBFdmVudCB0cmlnZ2VyZWQgd2hlbiB0aGUgZmlsdGVyIGFjdGlvbiBpcyBleGVjdXRlZC5cbiAgJ29uRmlsdGVyJyxcblxuICAvLyBFdmVudCB0cmlnZ2VyZWQgd2hlbiB0aGUgY2xlYXIgYWN0aW9uIGlzIGV4Y3V0ZWQuXG4gICdvbkNsZWFyJ1xuXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnby1maWx0ZXItYnVpbGRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9vLWZpbHRlci1idWlsZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgaW5wdXRzOiBERUZBVUxUX0lOUFVUU19PX0ZJTFRFUl9CVUlMREVSLFxuICBvdXRwdXRzOiBERUZBVUxUX09VVFBVVFNfT19GSUxURVJfQlVJTERFUixcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBPRmlsdGVyQnVpbGRlckJhc2UsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50KSB9XG4gIF1cbn0pXG5cbi8qKlxuICogVGhlIE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50LlxuICovXG5cbmV4cG9ydCBjbGFzcyBPRmlsdGVyQnVpbGRlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT25Jbml0IHtcblxuICBwdWJsaWMgb25GaWx0ZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIHB1YmxpYyBvbkNsZWFyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIHB1YmxpYyBmaWx0ZXJzOiBzdHJpbmc7XG4gIHB1YmxpYyB0YXJnZXRDbXA6IElTZXJ2aWNlRGF0YUNvbXBvbmVudDtcbiAgcHVibGljIGV4cHJlc3Npb25CdWlsZGVyOiAodmFsdWVzOiBBcnJheTx7IGF0dHIsIHZhbHVlIH0+KSA9PiBFeHByZXNzaW9uO1xuICBAQm9vbGVhbklucHV0Q29udmVydGVyKClcbiAgcHVibGljIHF1ZXJ5T25DaGFuZ2U6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE51bWJlcklucHV0Q29udmVydGVyKClcbiAgcHVibGljIHF1ZXJ5T25DaGFuZ2VEZWxheTogbnVtYmVyID0gMDtcbiAgcHVibGljIHF1ZXJ5T25DaGFuZ2VFdmVudFR5cGU6IENIQU5HRV9FVkVOVFMgPSBDb2Rlcy5ERUZBVUxUX0NIQU5HRV9FVkVOVDtcblxuICBwcm90ZWN0ZWQgZmlsdGVyQ29tcG9uZW50czogQXJyYXk8SUZpbHRlckJ1aWxkZXJDbXBUYXJnZXQ+ID0gW107XG5cbiAgcHJvdGVjdGVkIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHVibGljIG9hdHRyOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBjb21wb25lbnRTdGF0ZVNlcnZpY2U6IE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50U3RhdGVTZXJ2aWNlO1xuICBwcm90ZWN0ZWQgbG9jYWxTdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZTtcbiAgcHJvdGVjdGVkIHJvdXRlcjogUm91dGVyO1xuICBwcm90ZWN0ZWQgYWN0Um91dGU6IEFjdGl2YXRlZFJvdXRlO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBPRm9ybUNvbXBvbmVudCkpIHB1YmxpYyBmb3JtOiBPRm9ybUNvbXBvbmVudFxuICApIHtcbiAgICB0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChMb2NhbFN0b3JhZ2VTZXJ2aWNlKTtcbiAgICB0aGlzLmNvbXBvbmVudFN0YXRlU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0PE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50U3RhdGVTZXJ2aWNlPihPRmlsdGVyQnVpbGRlckNvbXBvbmVudFN0YXRlU2VydmljZSk7XG4gICAgdGhpcy5yb3V0ZXIgPSB0aGlzLmluamVjdG9yLmdldDxSb3V0ZXI+KFJvdXRlcik7XG4gICAgdGhpcy5hY3RSb3V0ZSA9IHRoaXMuaW5qZWN0b3IuZ2V0PEFjdGl2YXRlZFJvdXRlPihBY3RpdmF0ZWRSb3V0ZSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxpemUoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxpemVMaXN0ZW5lcnMoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbnMpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgdGhpcy5jb21wb25lbnRTdGF0ZVNlcnZpY2UuaW5pdGlhbGl6ZSh0aGlzKTtcbiAgICAvLyBQYXJzZSBmaWx0ZXJzXG4gICAgaWYgKHRoaXMuZmlsdGVycykge1xuICAgICAgY29uc3QgZmlsdGVyQXJyYXk6IEFycmF5PHN0cmluZz4gPSBVdGlsLnBhcnNlQXJyYXkodGhpcy5maWx0ZXJzKTtcbiAgICAgIGZpbHRlckFycmF5LmZvckVhY2goZmlsdGVyID0+IHtcbiAgICAgICAgY29uc3QgZmlsdGVyRWxtcyA9IGZpbHRlci5zcGxpdChDb2Rlcy5DT0xVTU5TX0FMSUFTX1NFUEFSQVRPUik7XG4gICAgICAgIHRoaXMuZmlsdGVyQ29tcG9uZW50cy5wdXNoKHtcbiAgICAgICAgICB0YXJnZXRBdHRyOiBmaWx0ZXJFbG1zWzBdLFxuICAgICAgICAgIGZvcm1Db21wb25lbnRBdHRyOiBmaWx0ZXJFbG1zWzFdID8gZmlsdGVyRWxtc1sxXSA6IGZpbHRlckVsbXNbMF1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoVXRpbC5pc0RlZmluZWQodGhpcy50YXJnZXRDbXApKSB7XG4gICAgICB0aGlzLnRhcmdldENtcC5zZXRGaWx0ZXJCdWlsZGVyKHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIGluaXRpYWxpemVMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucXVlcnlPbkNoYW5nZSkge1xuICAgICAgdGhpcy5maWx0ZXJDb21wb25lbnRzLmZvckVhY2goKGZpbHRlckNvbXBvbmVudDogSUZpbHRlckJ1aWxkZXJDbXBUYXJnZXQpID0+IHtcbiAgICAgICAgY29uc3QgZm9ybUNvbXBvbmVudDogSUZvcm1EYXRhQ29tcG9uZW50ID0gdGhpcy5mb3JtLmdldENvbXBvbmVudHMoKVtmaWx0ZXJDb21wb25lbnQuZm9ybUNvbXBvbmVudEF0dHJdO1xuICAgICAgICBpZiAoZm9ybUNvbXBvbmVudCkge1xuICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgICB0aGlzLmdldEV2ZW50RnJvbUZvcm1Db21wb25lbnQoZm9ybUNvbXBvbmVudClcbiAgICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKHRoaXMucXVlcnlPbkNoYW5nZURlbGF5KSlcbiAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnRyaWdnZXJSZWxvYWQoKSkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEV2ZW50RnJvbUZvcm1Db21wb25lbnQoZm9ybUNvbXBvbmVudDogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5xdWVyeU9uQ2hhbmdlRXZlbnRUeXBlID09PSBDb2Rlcy5ERUZBVUxUX0NIQU5HRV9FVkVOVCA/XG4gICAgICBmb3JtQ29tcG9uZW50Lm9uVmFsdWVDaGFuZ2UgOlxuICAgICAgZm9ybUNvbXBvbmVudC5nZXRGb3JtQ29udHJvbCgpLnZhbHVlQ2hhbmdlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGBFeHByZXNzaW9uYCBvYmplY3Qgd2l0aCB0aGUgZmlsdGVyLlxuICAgKiBAcmV0dXJucyB0aGUgYEV4cHJlc3Npb25gIG9iamVjdCB3aXRoIHRoZSBmaWx0ZXIuXG4gICAqL1xuICBnZXRFeHByZXNzaW9uKCk6IEV4cHJlc3Npb24ge1xuICAgIC8vIFByZXBhcmUgZm9ybSBmaWx0ZXIgdmFsdWVzIFsuLi4geyBhdHRyLCB2YWx1ZSB9XVxuICAgIGNvbnN0IGZvcm1Db21wb25lbnRzID0gdGhpcy5mb3JtLmdldENvbXBvbmVudHMoKTtcbiAgICBjb25zdCBwYXJhbXM6IEFycmF5PHsgYXR0ciwgdmFsdWUgfT4gPSBbXTtcbiAgICB0aGlzLmZpbHRlckNvbXBvbmVudHMuZm9yRWFjaCgoZmlsdGVyQ29tcG9uZW50OiBJRmlsdGVyQnVpbGRlckNtcFRhcmdldCkgPT4ge1xuICAgICAgY29uc3QgZm9ybUNvbXBvbmVudDogSUZvcm1EYXRhQ29tcG9uZW50ID0gZm9ybUNvbXBvbmVudHNbZmlsdGVyQ29tcG9uZW50LmZvcm1Db21wb25lbnRBdHRyXTtcbiAgICAgIGlmIChmb3JtQ29tcG9uZW50KSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZm9ybUNvbXBvbmVudC5nZXRWYWx1ZSgpO1xuICAgICAgICBwYXJhbXMucHVzaCh7XG4gICAgICAgICAgYXR0cjogZmlsdGVyQ29tcG9uZW50LnRhcmdldEF0dHIsXG4gICAgICAgICAgdmFsdWU6IHZhbHVlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gVHJpZ2dlciB0aGUgZnVuY3Rpb24gcHJvdmlkZWQgYnkgdGhlIHVzZXJcbiAgICBpZiAodGhpcy5leHByZXNzaW9uQnVpbGRlcikge1xuICAgICAgcmV0dXJuIHRoaXMuZXhwcmVzc2lvbkJ1aWxkZXIocGFyYW1zKTtcbiAgICB9XG5cbiAgICAvLyBHZW5lcmF0ZSBkZXNmYXVsdCBleHByZXNzaW9uXG4gICAgY29uc3QgZXhwcmVzc2lvbnM6IEFycmF5PEV4cHJlc3Npb24+ID0gW107XG4gICAgcGFyYW1zLmZvckVhY2goZWxlbSA9PiB7XG4gICAgICBpZiAoVXRpbC5pc0RlZmluZWQoZWxlbS52YWx1ZSkpIHtcbiAgICAgICAgZXhwcmVzc2lvbnMucHVzaChGaWx0ZXJFeHByZXNzaW9uVXRpbHMuYnVpbGRFeHByZXNzaW9uRXF1YWxzKGVsZW0uYXR0ciwgZWxlbS52YWx1ZSkpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGV4cHJlc3Npb25zLmxlbmd0aCA/IGV4cHJlc3Npb25zLnJlZHVjZSgoZmUxLCBmZTIpID0+IEZpbHRlckV4cHJlc3Npb25VdGlscy5idWlsZENvbXBsZXhFeHByZXNzaW9uKGZlMSwgZmUyLCBGaWx0ZXJFeHByZXNzaW9uVXRpbHMuT1BfT1IpKSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGBCYXNpY0V4cHJlc3Npb25gIG9iamVjdCB3aXRoIHRoZSBmaWx0ZXIuXG4gICAqIEByZXR1cm5zIHRoZSBgQmFzaWNFeHByZXNzaW9uYCBvYmplY3Qgd2l0aCB0aGUgZmlsdGVyLlxuICAgKi9cbiAgZ2V0QmFzaWNFeHByZXNzaW9uKCk6IEJhc2ljRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIEZpbHRlckV4cHJlc3Npb25VdGlscy5idWlsZEJhc2ljRXhwcmVzc2lvbih0aGlzLmdldEV4cHJlc3Npb24oKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZmlsdGVyIGJ1aWxkZXIgdGFyZ2V0IGNvbXBvbmVudC5cbiAgICogQHJldHVybnMgdGhlIHRhcmdldCBjb21wb25lbnQuXG4gICAqL1xuICBnZXRUYXJnZXRDb21wb25lbnQoKTogSVNlcnZpY2VEYXRhQ29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcy50YXJnZXRDbXA7XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlciB0aGUgYHJlbG9hZERhdGFgIG1ldGhvZCBmcm9tIHRoZSB0YXJnZXQgY29tcG9uZW50LlxuICAgKi9cbiAgdHJpZ2dlclJlbG9hZCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudGFyZ2V0Q21wKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLnRhcmdldENtcC5wYWdlYWJsZSkge1xuICAgICAgdGhpcy50YXJnZXRDbXAucmVsb2FkUGFnaW5hdGVkRGF0YUZyb21TdGFydCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRhcmdldENtcC5yZWxvYWREYXRhKCk7XG4gICAgfVxuICAgIHRoaXMub25GaWx0ZXIuZW1pdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFyIHRoZSBmb3JtIGNvbXBvbmVudHMgdXNlZCBmb3IgdGhlIGZpbHRlci5cbiAgICovXG4gIGNsZWFyRmlsdGVyKCk6IHZvaWQge1xuICAgIGNvbnN0IGZvcm1Db21wb25lbnRzID0gdGhpcy5mb3JtLmdldENvbXBvbmVudHMoKTtcbiAgICB0aGlzLmdldEZpbHRlckF0dHJzKCkuZm9yRWFjaCgoYXR0cjogc3RyaW5nKSA9PiB7XG4gICAgICBmb3JtQ29tcG9uZW50c1thdHRyXS5jbGVhclZhbHVlKCk7XG4gICAgfSk7XG4gICAgdGhpcy5vbkNsZWFyLmVtaXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGZpbHRlciB2YWx1ZXNcbiAgICogQHJldHVybnMgZmlsdGVyIHZhbHVlc1xuICAgKi9cbiAgZ2V0RmlsdGVyVmFsdWVzKCk6IE9GaWx0ZXJCdWlsZGVyVmFsdWVzW10ge1xuICAgIGNvbnN0IHJlc3VsdDogT0ZpbHRlckJ1aWxkZXJWYWx1ZXNbXSA9IFtdO1xuXG4gICAgdGhpcy5maWx0ZXJDb21wb25lbnRzLlxuICAgICAgZm9yRWFjaCgoZmlsdGVyQ29tcG9uZW50OiBJRmlsdGVyQnVpbGRlckNtcFRhcmdldCkgPT4ge1xuICAgICAgICBpZiAoVXRpbC5pc0RlZmluZWQodGhpcy5mb3JtLmdldENvbXBvbmVudHMoKVtmaWx0ZXJDb21wb25lbnQuZm9ybUNvbXBvbmVudEF0dHJdKSkge1xuICAgICAgICAgIHJlc3VsdC5wdXNoKHsgYXR0cjogZmlsdGVyQ29tcG9uZW50LmZvcm1Db21wb25lbnRBdHRyLCB2YWx1ZTogdGhpcy5mb3JtLmdldENvbXBvbmVudHMoKVtmaWx0ZXJDb21wb25lbnQuZm9ybUNvbXBvbmVudEF0dHJdLmdldFZhbHVlKCkgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG5cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIGZpbHRlciB2YWx1ZXNcbiAgICogQHBhcmFtIGZpbHRlckJ1aWxkZXJWYWx1ZXNcbiAgICovXG4gIHNldEZpbHRlclZhbHVlcyhmaWx0ZXJCdWlsZGVyVmFsdWVzOiBPRmlsdGVyQnVpbGRlclZhbHVlc1tdKSB7XG4gICAgZmlsdGVyQnVpbGRlclZhbHVlcy5mb3JFYWNoKChmaWx0ZXJCdWlsZGVyVmFsdWU6IE9GaWx0ZXJCdWlsZGVyVmFsdWVzKSA9PiB7XG4gICAgICBpZiAodGhpcy5mb3JtLmdldENvbXBvbmVudHMoKVtmaWx0ZXJCdWlsZGVyVmFsdWUuYXR0cl0pIHtcbiAgICAgICAgdGhpcy5mb3JtLmdldENvbXBvbmVudHMoKVtmaWx0ZXJCdWlsZGVyVmFsdWUuYXR0cl0uc2V0VmFsdWUoZmlsdGVyQnVpbGRlclZhbHVlLnZhbHVlKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdUaGUgZmlsdGVyIHdpdGggYXR0ciAnICsgZmlsdGVyQnVpbGRlclZhbHVlLmF0dHIgKyAnIGNhbm5vdCBiZSBzZXQgJyArIGZpbHRlckJ1aWxkZXJWYWx1ZS52YWx1ZSArICcgYmVjYXVzZSBpdCBkb2VzIG5vdCBleGlzdCAuJyk7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGFycmF5IHdpdGggdGhlIGF0dHJpYnV0ZXMgb2YgdGhlIGZpbHRlcmFibGUgY29tcG9uZW50c1xuICAgKi9cbiAgcHJvdGVjdGVkIGdldEZpbHRlckF0dHJzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmZpbHRlckNvbXBvbmVudHMubWFwKChlbGVtOiBJRmlsdGVyQnVpbGRlckNtcFRhcmdldCkgPT4gZWxlbS5mb3JtQ29tcG9uZW50QXR0cik7XG4gIH1cbiAgLyoqXG4gICAqIEdldHMgc3RhdGVcbiAgICovXG4gIGdldCBzdGF0ZSgpOiBPRmlsdGVyQnVpbGRlckNvbXBvbmVudFN0YXRlQ2xhc3Mge1xuICAgIHJldHVybiB0aGlzLmNvbXBvbmVudFN0YXRlU2VydmljZS5zdGF0ZTtcbiAgfVxuXG5cbiAgZ2V0RGF0YVRvU3RvcmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50U3RhdGVTZXJ2aWNlLnN0YXRlO1xuICB9XG5cbiAgZ2V0Q29tcG9uZW50S2V5KCk6IHN0cmluZyB7XG4gICAgaWYgKCFVdGlsLmlzRGVmaW5lZCh0aGlzLm9hdHRyKSkge1xuICAgICAgY29uc29sZS5lcnJvcignWW91ciBvLWZpbHRlci1idWlsZGVyIGNvbXBvbmVudCBtdXN0IGhhdmUgYW4gXFwnYXR0clxcJy4gT3RoZXJ3aXNlLCB5b3VyIGZpbHRlciBidWlsZGVyIHN0YXRlIHdpbGwgbm90IHNldCBpbiBsb2NhbHN0b3JhZ2UuJyk7XG4gICAgICByZXR1cm4gJ09GaWx0ZXJCdWlsZGVyQ29tcG9uZW50Xyc7XG4gICAgfVxuXG4gICAgcmV0dXJuICdPRmlsdGVyQnVpbGRlckNvbXBvbmVudF8nICsgdGhpcy5vYXR0cjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdG9yZXMgZmlsdGVyIGluIHN0YXRlXG4gICAqIEBwYXJhbSBhcmdcbiAgICovXG4gIHN0b3JlRmlsdGVySW5TdGF0ZShhcmc6IE9GaWx0ZXJEZWZpbml0aW9uKSB7XG4gICAgdGhpcy5jb21wb25lbnRTdGF0ZVNlcnZpY2Uuc3RvcmVGaWx0ZXIoYXJnKTtcbiAgICB0aGlzLnVwZGF0ZVN0YXRlU3RvcmFnZSgpO1xuICB9XG4gIC8qKlxuICAgKiBNZXRob2QgdXBkYXRlIHN0b3JlIGxvY2Fsc3RvcmFnZSwgY2FsbCBvZiB0aGUgSUxvY2FsU3RvcmFnZVxuICAgKi9cbiAgcHJvdGVjdGVkIHVwZGF0ZVN0YXRlU3RvcmFnZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlKSB7XG4gICAgICB0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2UudXBkYXRlQ29tcG9uZW50U3RvcmFnZSh0aGlzLCB0aGlzLmdldFJvdXRlS2V5KCkpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRSb3V0ZUtleSgpOiBzdHJpbmcge1xuICAgIGxldCByb3V0ZSA9IHRoaXMucm91dGVyLnVybDtcbiAgICB0aGlzLmFjdFJvdXRlLnBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcbiAgICAgIE9iamVjdC5rZXlzKHBhcmFtcykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICByb3V0ZSA9IHJvdXRlLnJlcGxhY2UocGFyYW1zW2tleV0sIGtleSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4gcm91dGU7XG4gIH1cbn1cbiIsIiJdfQ==
|