ngx-bimplus-components 0.0.49 → 0.0.50
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/assets/images/27_Center_Menu.svg +3 -3
- package/assets/images/27_Center_Menu_active.svg +3 -3
- package/assets/images/27_Center_Menu_opened.svg +14 -14
- package/assets/images/6-dots-gray.svg +10 -10
- package/assets/images/6_dots_gray.svg +8 -8
- package/assets/images/Add_Issue_active.svg +12 -12
- package/assets/images/Add_Issue_disabled.svg +12 -12
- package/assets/images/Allplan-Cloud-Viewer-Logo.svg +17 -17
- package/assets/images/Allplan-Connexis-Logo.svg +8 -8
- package/assets/images/Allplan_Bimplus_Logo.svg +14 -14
- package/assets/images/Fullscreen_active.svg +6 -6
- package/assets/images/Fullscreen_disabled.svg +8 -8
- package/assets/images/Hide_active.svg +12 -12
- package/assets/images/Hide_disabled.svg +12 -12
- package/assets/images/IsolateMenuClipped.svg +19 -19
- package/assets/images/IsolateMenuClipped_orange.svg +19 -19
- package/assets/images/IsolateMenuHidden.svg +8 -8
- package/assets/images/IsolateMenuHidden_orange.svg +8 -8
- package/assets/images/IsolateMenuNormal.svg +29 -29
- package/assets/images/IsolateMenuNormal_orange.svg +29 -29
- package/assets/images/IsolationMenuParams.svg +5 -5
- package/assets/images/IsolationMenuParamsOrange.svg +5 -5
- package/assets/images/Isolation_active.svg +12 -12
- package/assets/images/Isolation_disabled.svg +12 -12
- package/assets/images/Markup_active.svg +11 -11
- package/assets/images/Markup_disabled.svg +11 -11
- package/assets/images/Navigation_Map_active.svg +3 -3
- package/assets/images/Navigation_Map_disabled.svg +5 -5
- package/assets/images/Project_Navigation_active.svg +10 -10
- package/assets/images/Project_Navigation_disabled.svg +10 -10
- package/assets/images/Quantity_active.svg +3 -3
- package/assets/images/Quantity_disabled.svg +5 -5
- package/assets/images/Reset_active.svg +10 -10
- package/assets/images/Reset_disabled.svg +10 -10
- package/assets/images/Section_active.svg +3 -3
- package/assets/images/Section_disabled.svg +5 -5
- package/assets/images/Spinner_18_disabled.svg +15 -15
- package/assets/images/View_active.svg +4 -4
- package/assets/images/View_disabled.svg +6 -6
- package/assets/images/bimplus_Components_Account_Settings.svg +14 -14
- package/assets/images/bimplus_Components_Autoconverter.svg +14 -14
- package/assets/images/bimplus_Components_Autoconverter_Active.svg +14 -14
- package/assets/images/bimplus_Components_Autoconverter_Disabled.svg +14 -14
- package/assets/images/bimplus_Components_BIM_Explorer.svg +18 -18
- package/assets/images/bimplus_Components_BIM_Explorer_Active.svg +18 -18
- package/assets/images/bimplus_Components_BIM_Explorer_Disabled.svg +18 -18
- package/assets/images/bimplus_Components_Clear_Cache.svg +16 -16
- package/assets/images/bimplus_Components_Close.svg +3 -3
- package/assets/images/bimplus_Components_Connexis.svg +4 -4
- package/assets/images/bimplus_Components_Connexis_Active.svg +4 -4
- package/assets/images/bimplus_Components_Connexis_Disabled.svg +4 -4
- package/assets/images/bimplus_Components_Desktop_Mode.svg +15 -15
- package/assets/images/bimplus_Components_Documents.svg +14 -14
- package/assets/images/bimplus_Components_Documents_Active.svg +14 -14
- package/assets/images/bimplus_Components_Documents_Disabled.svg +14 -14
- package/assets/images/bimplus_Components_Edit_Profile.svg +8 -8
- package/assets/images/bimplus_Components_Forum.svg +10 -10
- package/assets/images/bimplus_Components_IFC_viewer.svg +9 -9
- package/assets/images/bimplus_Components_IFC_viewer_Active.svg +16 -16
- package/assets/images/bimplus_Components_IFC_viewer_Disabled.svg +9 -9
- package/assets/images/bimplus_Components_ISO.svg +3 -3
- package/assets/images/bimplus_Components_ISO_Active.svg +3 -3
- package/assets/images/bimplus_Components_ISO_Disabled.svg +3 -3
- package/assets/images/bimplus_Components_Info.svg +16 -16
- package/assets/images/bimplus_Components_Info_Active.svg +16 -16
- package/assets/images/bimplus_Components_Languages.svg +5 -5
- package/assets/images/bimplus_Components_Logout.svg +12 -12
- package/assets/images/bimplus_Components_Models.svg +3 -3
- package/assets/images/bimplus_Components_Models_Active.svg +3 -3
- package/assets/images/bimplus_Components_Models_Disabled.svg +3 -3
- package/assets/images/bimplus_Components_Notify_Alert.svg +6 -6
- package/assets/images/bimplus_Components_Notify_Close.svg +3 -3
- package/assets/images/bimplus_Components_Notify_Empty.svg +5 -5
- package/assets/images/bimplus_Components_Notify_Main.svg +5 -5
- package/assets/images/bimplus_Components_Notify_Tick_Up.svg +3 -3
- package/assets/images/bimplus_Components_Projects_Folder.svg +10 -10
- package/assets/images/bimplus_Components_Projects_Folder_Active.svg +10 -10
- package/assets/images/bimplus_Components_Projects_Folder_Disabled.svg +10 -10
- package/assets/images/bimplus_Components_Property_Manager.svg +5 -5
- package/assets/images/bimplus_Components_Property_Manager_Active.svg +5 -5
- package/assets/images/bimplus_Components_Property_Manager_Disabled.svg +5 -5
- package/assets/images/bimplus_Components_Setting_Active.svg +3 -3
- package/assets/images/bimplus_Components_Settings.svg +3 -3
- package/assets/images/bimplus_Components_Settings_Disabled.svg +3 -3
- package/assets/images/bimplus_Components_Shop.svg +13 -13
- package/assets/images/bimplus_Components_Shop_Disabled.svg +13 -13
- package/assets/images/bimplus_Components_Support.svg +21 -21
- package/assets/images/bimplus_Components_Team_Members.svg +4 -4
- package/assets/images/bimplus_Components_Team_Members_Active.svg +4 -4
- package/assets/images/bimplus_Components_Touch_Mode.svg +16 -16
- package/assets/images/bimplus_Components_User_Guide.svg +17 -17
- package/assets/images/bimplus_Components_Users.svg +4 -4
- package/assets/images/bimplus_Components_Users_Active.svg +4 -4
- package/assets/images/bimplus_Components_Users_Disabled.svg +4 -4
- package/assets/images/bimplus_Components_Zoom.svg +5 -5
- package/assets/images/bimplus_Components_navbar_menu.svg +6 -6
- package/assets/images/bimplus_Components_navbar_menu_active.svg +6 -6
- package/assets/images/bimplus_Components_navbar_menu_disabled.svg +6 -6
- package/assets/images/bimplus_Components_submenu_arrow.svg +4 -4
- package/assets/images/bimplus_Remove_Conection.svg +15 -15
- package/assets/images/bimplus_WebIcons_Cross.svg +1 -1
- package/assets/images/checkbox_off.svg +3 -3
- package/assets/images/checkbox_off_disabled.svg +3 -3
- package/assets/images/checkbox_off_hovered.svg +3 -3
- package/assets/images/checkbox_on.svg +4 -4
- package/assets/images/checkbox_on_disabled.svg +4 -4
- package/assets/images/checkbox_on_hovered.svg +4 -4
- package/assets/images/cm_view_front_black.svg +4 -4
- package/assets/images/cm_view_front_orange.svg +4 -4
- package/assets/images/cm_view_perspective_black.svg +3 -3
- package/assets/images/cm_view_perspective_orange.svg +3 -3
- package/assets/images/cm_view_side_black.svg +4 -4
- package/assets/images/cm_view_side_orange.svg +4 -4
- package/assets/images/cm_view_top_black.svg +4 -4
- package/assets/images/cm_view_top_orange.svg +4 -4
- package/assets/images/collapsed_18.svg +3 -3
- package/assets/images/collapsed_18_small.svg +3 -3
- package/assets/images/expanded_18.svg +3 -3
- package/assets/images/expanded_18_small.svg +3 -3
- package/assets/images/ic_drag.svg +8 -8
- package/assets/images/ic_eye_black.svg +5 -5
- package/assets/images/ic_eye_orange.svg +5 -5
- package/assets/images/ic_make_transparent.svg +4 -4
- package/assets/images/ic_make_transparent_active.svg +4 -4
- package/assets/images/ic_reset.svg +3 -3
- package/assets/images/ic_thin_arrow_left.svg +3 -3
- package/assets/images/ic_toggle_off_gray.svg +4 -4
- package/assets/images/ic_toggle_on_green.svg +4 -4
- package/assets/images/ic_toggle_on_light_green.svg +4 -4
- package/assets/images/icon-hide-param-orange.svg +5 -5
- package/assets/images/icon-hide-param-white.svg +5 -5
- package/assets/images/resize_handle_ne.svg +4 -4
- package/assets/images/resize_handle_se.svg +4 -4
- package/assets/languages/strings_cs.json +2310 -2310
- package/assets/languages/strings_de.json +2310 -2310
- package/assets/languages/strings_en.json +2345 -2344
- package/assets/languages/strings_es.json +2310 -2310
- package/assets/languages/strings_fr.json +2310 -2310
- package/assets/languages/strings_it.json +2310 -2310
- package/assets/languages/strings_nl.json +796 -796
- package/assets/languages/strings_ro.json +2310 -2310
- package/assets/languages/strings_ru.json +2310 -2310
- package/assets/languages/strings_tr.json +2310 -2310
- package/assets/languages/strings_us.json +2263 -2263
- package/esm2022/lib/components/bimplus-buttons-row/bimplus-buttons-row.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-buttons-row/bimplus-buttons-row.interface.mjs +1 -1
- package/esm2022/lib/components/bimplus-connection-designer/bimplus-connection-designer.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-connection-designer/bimplus-connection-designer.interface.mjs +1 -1
- package/esm2022/lib/components/bimplus-connection-designer/bimplus-connection-designer.service.mjs +1 -1
- package/esm2022/lib/components/bimplus-connection-designer-results/bimplus-connection-designer-results.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-connection-designer-results/bimplus-connection-designer-results.interface.mjs +1 -1
- package/esm2022/lib/components/bimplus-contact/bimplus-contact.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-context-menu/bimplus-context-menu.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-context-menu/bimplus-context-menu.interface.mjs +1 -1
- package/esm2022/lib/components/bimplus-flat-tree/bimplus-flat-tree.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-flat-tree/bimplus-flat-tree.interface.mjs +1 -1
- package/esm2022/lib/components/bimplus-floating-bar/bimplus-floating-bar.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-floating-bar/bimplus-floating-bar.interface.mjs +1 -1
- package/esm2022/lib/components/bimplus-floating-bar-body/bimplus-floating-bar-body.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-floating-bar-dragger/bimplus-floating-bar-dragger.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-floating-bar-header-content/bimplus-floating-bar-header-content.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-floating-bar-header-logo/bimplus-floating-bar-header-logo.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-floating-bar-hide-objects/bimplus-floating-bar-hide-objects.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-floating-bar-isolation-objects/bimplus-floating-bar-isolation-objects.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-floating-bar-project-navigator/bimplus-floating-bar-project-navigator.component.mjs +12 -3
- package/esm2022/lib/components/bimplus-language-menu/bimplus-language-menu.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-main-menu/bimplus-main-menu.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-navbar/bimplus-navbar.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-navbar/logo-state.enum.mjs +1 -1
- package/esm2022/lib/components/bimplus-notify/bimplus-notify.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-object-navigator/bimplus-object-navigator.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-object-navigator/criteria-select-object-properties/criteria-select-object-properties.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-object-navigator/filter-criterium/filter-criterium.component.mjs +2 -2
- package/esm2022/lib/components/bimplus-panel-toolbar/bimplus-panel-toolbar.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-project-menu/bimplus-project-menu.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-sidenav/bimplus-sidenav.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-storage-info/bimplus-storage-info.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-text-message/bimplus-text-message.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-tool-hub/bimplus-tool-hub.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-tool-hub/svgGenerator.mjs +1 -1
- package/esm2022/lib/components/bimplus-tool-hub/tool-hub-item/tool-hub-item.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-tool-hub/tool-hub-sub-item/tool-hub-sub-item.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-tooltip-message/bimplus-tooltip-message.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-tooltip-message/bimplus-tooltip-message.interface.mjs +1 -1
- package/esm2022/lib/components/bimplus-user-menu/bimplus-user-menu.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-zoom/bimplus-zoom.component.mjs +3 -3
- package/esm2022/lib/components/expansion-panel/expansion-panel.component.mjs +3 -3
- package/esm2022/lib/components/loading-spinner/loading-spinner.component.mjs +3 -3
- package/esm2022/lib/components/project-models/project-models.component.mjs +3 -3
- package/esm2022/lib/components/project-models/project-models.interface.mjs +1 -1
- package/esm2022/lib/directives/click-outside/click-outside.directive.mjs +1 -1
- package/esm2022/lib/interfaces/bimplus-opacity-properties.interface.mjs +1 -1
- package/esm2022/lib/interfaces/bimplus-visibility-properties.interface.mjs +1 -1
- package/esm2022/lib/types/types.mjs +1 -1
- package/esm2022/lib/utils/filterString.mjs +1 -1
- package/esm2022/lib/utils/filterStructureFetcher.mjs +1 -1
- package/esm2022/lib/utils/utils.mjs +1 -1
- package/esm2022/public-api.mjs +1 -1
- package/fesm2022/ngx-bimplus-components.mjs +79 -70
- package/fesm2022/ngx-bimplus-components.mjs.map +1 -1
- package/lib/components/bimplus-floating-bar-project-navigator/bimplus-floating-bar-project-navigator.component.d.ts +4 -1
- package/package.json +1 -1
package/esm2022/lib/components/bimplus-object-navigator/bimplus-object-navigator.component.mjs
CHANGED
|
@@ -164,7 +164,7 @@ export class BimplusObjectNavigatorComponent extends BimplusLocalizedWidgetCompo
|
|
|
164
164
|
});
|
|
165
165
|
}
|
|
166
166
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: BimplusObjectNavigatorComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
167
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.10", type: BimplusObjectNavigatorComponent, isStandalone: true, selector: "lib-bimplus-object-navigator", inputs: { hideFilterContextMenu: "hideFilterContextMenu", filterContextMenu: "filterContextMenu", filterTypes: "filterTypes", filters: "filters", api: "api", projectId: "projectId", selectedObjectId: "selectedObjectId", selectedObjects: "selectedObjects", selectionObject: "selectionObject" }, outputs: { filterCriteriaSelectionModeChanged: "filterCriteriaSelectionModeChanged", filterResultObjectSelectionChanged: "filterResultObjectSelectionChanged", filterResultObjectDoubleClicked: "filterResultObjectDoubleClicked", filterResultObjectMouseEntered: "filterResultObjectMouseEntered", filterResultObjectMouseLeft: "filterResultObjectMouseLeft" }, host: { properties: { "class.object-navigator": "this.objNavClassClass" } }, usesInheritance: true, ngImport: i0, template: "<lib-bimplus-sidenav-drawer-content [header]=\"'_Object navigator' | translate\">\r\n <div class=\"object-navigator-content-container\">\r\n @if(filterTypes.length>0){\r\n <div class=\"object-navigator-filters-type\">\r\n <ng-select data-test=\"object-navigator-filter-types-dropdown\" class=\"object-navigator-dropdown\" [(ngModel)]=\"activeFilterType\" [clearable]=\"false\" [searchable]=\"false\">\r\n <ng-option *ngFor=\"let type of filterTypes\" [value]=\"type\">{{type.name}}</ng-option>\r\n </ng-select>\r\n </div>\r\n <div class=\"object-navigator-filters-name\">\r\n <ng-select class=\"object-navigator-dropdown\" [(ngModel)]=\"activeFilter\" [clearable]=\"false\" [disabled]=\"!filters\" [searchable]=\"false\">\r\n <ng-option *ngFor=\"let filter of filters\" [value]=\"filter\">{{filter.name}}</ng-option>\r\n </ng-select>\r\n\r\n @if(!hideFilterContextMenu){\r\n <lib-bimplus-context-menu class=\"object-navigator-filters-name-context-menu\"\r\n [items]=\"filterContextMenu\"\r\n *ngIf=\"filterContextMenu?.length\"\r\n >\r\n </lib-bimplus-context-menu>\r\n }\r\n\r\n </div>\r\n\r\n <lib-expansion-panel class=\"object-navigator-filter-criteria-panel\">\r\n <lib-expansion-panel-header>\r\n <span class=\"object-navigator-filter-criteria-header\">\r\n {{\"_Assign_Objects_Selection_Mode\" | translate}} ({{filterCriteria.length}})\r\n </span>\r\n <lib-expansion-panel-header-actions>\r\n <div class=\"object-navigator-pick-object-button\"\r\n [ngClass]=\"filterCriteriaSelectionMode$.getValue() === FilterCriteriaSelectionMode.SelectObjectProperties? 'active' : ''\"\r\n (click)=\"setFilterCriteriaSelectionMode(FilterCriteriaSelectionMode.SelectObjectProperties)\"\r\n ></div>\r\n <div class=\"object-navigator-select-attributes-button\"\r\n [ngClass]=\"filterCriteriaSelectionMode$.getValue() === FilterCriteriaSelectionMode.SelectAttributes? 'active' : ''\"\r\n (click)=\"setFilterCriteriaSelectionMode(FilterCriteriaSelectionMode.SelectAttributes)\"\r\n ></div>\r\n </lib-expansion-panel-header-actions>\r\n </lib-expansion-panel-header>\r\n\r\n <div class=\"filter-criteria-container\">\r\n @for (criterium of filterCriteria; track criterium; let i = $index) {\r\n <app-filter-criterium\r\n [criterium] = \"criterium\"\r\n [indent]=\"i*0.8\"\r\n (deleteCriterium)=\"deleteFilterCriterium(i)\"\r\n ></app-filter-criterium>\r\n }\r\n </div>\r\n </lib-expansion-panel>\r\n\r\n <div class=\"object-navigator-apply-button-row\">\r\n <button class=\"primary-button\" [ngClass]=\"filterCriteria.length===0 ? 'disabled' : ''\" (click)=\"applyFilter()\"> {{\"_Apply filter\" | translate}} </button>\r\n </div>\r\n\r\n <div class=\"object-navigator-separator\"></div>\r\n\r\n @switch(filterCriteriaSelectionMode$.getValue()){\r\n @case(FilterCriteriaSelectionMode.SelectObjectProperties){\r\n @if(!selectedObjectId){\r\n <p id=\"NoObjectSelected\">{{ \"_NoObjectSelected\" | translate}}</p>\r\n }@else{\r\n <lib-criteria-select-object-properties\r\n [api]=\"api\"\r\n [selectedLanguage]=\"selectedLanguage\"\r\n [localizedStrings]=\"localizedStrings\"\r\n [(filterCriteria)]=\"filterCriteria\"\r\n [rootObjectId]=\"selectedObjectId\"\r\n (filterCriteriaChange)=\"resetActiveFilter()\"\r\n ></lib-criteria-select-object-properties>\r\n }\r\n }\r\n @case(FilterCriteriaSelectionMode.SelectAttributes){\r\n\r\n }\r\n @default{\r\n @if (filterResult) {\r\n <lib-object-filter-result\r\n [filterResult]=\"filterResult\"\r\n [selectedObjects]=\"selectedObjects\"\r\n (nodeSelectionChanged)=\"handleFilterResultSelectionChanged($event)\"\r\n (nodeDoubleClicked)=\"handleFilterResulObjectDoubleClicked($event)\"\r\n (nodeMouseEntered)=\"handleFilterResulObjectMouseEntered($event)\"\r\n (nodeMouseLeft)=\"handleFilterResulObjectMouseLeft($event)\"\r\n ></lib-object-filter-result>\r\n }\r\n }\r\n }\r\n }\r\n @else {\r\n <div data-test=\"object-navigator-no-filter-types-message\" class=\"object-navigator-no-filter-types\"> {{\"_No visible models found\" | translate}} </div>\r\n }\r\n </div>\r\n</lib-bimplus-sidenav-drawer-content>\r\n", styles: [".ng-select.ng-select-opened>.ng-select-container{background:#fff;border-color:#b3b3b3 #ccc #d9d9d9}.ng-select.ng-select-opened>.ng-select-container:hover{box-shadow:none}.ng-select.ng-select-opened>.ng-select-container .ng-arrow{top:-2px;border-color:transparent transparent #999;border-width:0 5px 5px}.ng-select.ng-select-opened>.ng-select-container .ng-arrow:hover{border-color:transparent transparent #333}.ng-select.ng-select-opened.ng-select-top>.ng-select-container{border-top-right-radius:0;border-top-left-radius:0}.ng-select.ng-select-opened.ng-select-right>.ng-select-container{border-top-right-radius:0;border-bottom-right-radius:0}.ng-select.ng-select-opened.ng-select-bottom>.ng-select-container{border-bottom-right-radius:0;border-bottom-left-radius:0}.ng-select.ng-select-opened.ng-select-left>.ng-select-container{border-top-left-radius:0;border-bottom-left-radius:0}.ng-select.ng-select-disabled>.ng-select-container{background-color:#f9f9f9}.ng-select .ng-has-value .ng-placeholder{display:none}.ng-select .ng-select-container{color:#333;background-color:#fff;border-radius:0;border:1px solid #ccc;min-height:36px;align-items:center}.ng-select .ng-select-container:hover{box-shadow:0 1px #0000000f;background-color:#f5f5f5}.ng-select .ng-select-container .ng-value-container{align-items:center;padding-left:10px}[dir=rtl] .ng-select .ng-select-container .ng-value-container{padding-right:10px;padding-left:0}.ng-select .ng-select-container .ng-value-container .ng-placeholder{color:#999}.ng-select.ng-select-single .ng-select-container{height:36px}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{top:5px;left:0;padding-left:10px;padding-right:50px}[dir=rtl] .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{padding-right:10px;padding-left:50px}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value{background-color:#f9f9f9;border:1px solid #e6e6e6}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-label{padding:0 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-top:5px;padding-left:7px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-right:7px;padding-left:0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{font-size:.9em;margin-bottom:5px;color:#333;background-color:#fff1eb;border-radius:2px;margin-right:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{margin-right:0;margin-left:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled{background-color:#f9f9f9}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:0;padding-right:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-label,.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:inline-block;padding:1px 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon:hover{background-color:#d1e8ff}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-right:1px solid #b8dbff}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-left:1px solid #b8dbff;border-right:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:1px solid #b8dbff}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:0;border-right:1px solid #b8dbff}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 0 3px 3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 3px 3px 0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input>input{color:#000}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{top:5px;padding-bottom:5px;padding-left:3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{padding-right:3px;padding-left:0}.ng-select .ng-clear-wrapper{color:#999}.ng-select .ng-clear-wrapper:hover .ng-clear{color:#d0021b}.ng-select .ng-clear-wrapper:focus .ng-clear{color:#d0021b}.ng-select .ng-clear-wrapper:focus{outline:none}.ng-select .ng-spinner-zone{padding:5px 5px 0 0}[dir=rtl] .ng-select .ng-spinner-zone{padding:5px 0 0 5px}.ng-select .ng-arrow-wrapper{width:25px;padding-right:5px}[dir=rtl] .ng-select .ng-arrow-wrapper{padding-left:5px;padding-right:0}.ng-select .ng-arrow-wrapper:hover .ng-arrow{border-top-color:#666}.ng-select .ng-arrow-wrapper .ng-arrow{border-color:#999 transparent transparent;border-style:solid;border-width:5px 5px 2.5px}.ng-dropdown-panel{background-color:#fff;border:1px solid #ccc;box-shadow:0 1px #0000000f;left:0}.ng-dropdown-panel.ng-select-top{bottom:100%;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-color:#e6e6e6;margin-bottom:-1px}.ng-dropdown-panel.ng-select-top .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.ng-dropdown-panel.ng-select-right{left:100%;top:0;border-top-right-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-bottom-color:#e6e6e6;margin-bottom:-1px}.ng-dropdown-panel.ng-select-right .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px}.ng-dropdown-panel.ng-select-bottom{top:100%;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-color:#e6e6e6;margin-top:-1px}.ng-dropdown-panel.ng-select-bottom .ng-dropdown-panel-items .ng-option:last-child{border-bottom-right-radius:0;border-bottom-left-radius:0}.ng-dropdown-panel.ng-select-left{left:-100%;top:0;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-bottom-color:#e6e6e6;margin-bottom:-1px}.ng-dropdown-panel.ng-select-left .ng-dropdown-panel-items .ng-option:first-child{border-top-left-radius:4px}.ng-dropdown-panel .ng-dropdown-header{border-bottom:1px solid #ccc;padding:5px 7px}.ng-dropdown-panel .ng-dropdown-footer{border-top:1px solid #ccc;padding:5px 7px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{-webkit-user-select:none;user-select:none;padding:8px 10px;font-weight:500;color:#0000008a;cursor:pointer}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-disabled{cursor:default}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-marked{background-color:#f5f5f5}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected.ng-option-marked{color:#0000008a;background-color:#fff1eb;font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{background-color:#fff;color:#000000de;padding:8px 10px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked{color:#333;background-color:#fff1eb}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected .ng-option-label,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked .ng-option-label{font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{background-color:#f5f5f5;color:#333}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-disabled{color:#ccc}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-left:22px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-right:22px;padding-left:0}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{font-size:80%;font-weight:400;padding-right:5px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{padding-left:5px;padding-right:0}[dir=rtl] .ng-dropdown-panel{direction:rtl;text-align:right}.primary-button{text-transform:uppercase;font: 700 1rem Source Sans Pro,Helvetica,Arial,tahoma,sans-serif;display:inline-block;margin-left:.8rem;height:2.4rem;white-space:nowrap;border-radius:.2rem;vertical-align:middle;font-size:1.2rem;border:solid .2rem #fe5000;color:#fff;background-color:#fe5000;cursor:pointer}.primary-button:hover{border:solid .2rem #eb4b00;color:#fff;background-color:#eb4b00;outline:0}.primary-button.disabled{border:solid .2rem #bababa;color:#fff;background-color:#bababa;cursor:default}.filter-criteria-container{display:flex;flex-direction:column;width:calc(100% - 2.4rem);padding-left:2.4rem;height:14.4rem}:host(.object-navigator){height:100%;width:100%}.object-navigator-content-container{display:flex;flex-direction:column}.object-navigator-content-container>.object-navigator-filters-type{margin-top:.1rem;margin-bottom:.1rem;height:2.4rem}.object-navigator-content-container>.object-navigator-filters-type>.object-navigator-dropdown .ng-select-container{height:2.4rem;min-height:2.4rem}.object-navigator-content-container>.object-navigator-filters-name{margin-top:.1rem;margin-bottom:.1rem;height:2.4rem;display:flex;flex-direction:row}.object-navigator-content-container>.object-navigator-filters-name>.object-navigator-dropdown{flex:1}.object-navigator-content-container>.object-navigator-filters-name>.object-navigator-dropdown .ng-select-container{height:2.4rem;min-height:2.4rem}.object-navigator-content-container>.object-navigator-filters-name>.object-navigator-filters-name-context-menu{--context-menu-trigger-width: 2.4rem;--context-menu-trigger-height: 2.4rem}.object-navigator-filter-action-buttons{width:2.4rem;height:2.4rem;display:inline-block;background-position:center center;background-repeat:no-repeat;cursor:pointer;background-size:1.8rem 1.8rem;color:#39aef2;margin-left:.4rem}.object-navigator-filter-criteria-panel{padding-top:.8rem}.object-navigator-select-attributes-button{background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M14.6 9.1l.1-3c0-2.4-.1-2.7-2.5-2.7l-3 .1c-.4.1-.7.2-1 .5L2.7 9.5c-.6.6-.6 1.6 0 2.2l3.7 3.8c.6.6 1.6.6 2.2 0l5.5-5.5c.3-.2.4-.6.5-.9zm-1.5-2.5c0 .9-.7 1.6-1.6 1.6-.9 0-1.6-.7-1.6-1.6 0-.9.7-1.6 1.6-1.6.9 0 1.6.7 1.6 1.6z\" fill=\"%23444\"/></svg>');width:2.4rem;height:2.4rem;display:inline-block;background-position:center center;background-repeat:no-repeat;cursor:pointer;background-size:1.8rem 1.8rem;color:#39aef2;margin-left:.4rem}.object-navigator-select-attributes-button.active{background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M14.6 9.1l.1-3c0-2.4-.1-2.7-2.5-2.7l-3 .1c-.4.1-.7.2-1 .5L2.7 9.5c-.6.6-.6 1.6 0 2.2l3.7 3.8c.6.6 1.6.6 2.2 0l5.5-5.5c.3-.2.4-.6.5-.9zm-1.5-2.5c0 .9-.7 1.6-1.6 1.6-.9 0-1.6-.7-1.6-1.6S10.6 5 11.5 5c.9 0 1.6.7 1.6 1.6z\" fill=\"%23fe5000\"/></svg>')}.object-navigator-pick-object-button{background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M2.8 12.4c1.2 1.2-1.3 3-.7 3.6.5.5 2.5-1.8 3.6-.7l5.6-5.6-2.9-3s-4.6 4.7-5.6 5.7zM8.4 11L7 9.6l1.4-1.4 1.4 1.4L8.4 11zm4.2-8.4l-2 2-.7-.7-1.5 1.4 4.3 4.3 1.4-1.4-.7-.7 2-2c1.8-1.9-1-4.7-2.8-2.9z\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"%23444\"/></svg>');width:2.4rem;height:2.4rem;display:inline-block;background-position:center center;background-repeat:no-repeat;cursor:pointer;background-size:1.8rem 1.8rem;color:#39aef2;margin-left:.4rem}.object-navigator-pick-object-button.active{background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M2.8 12.4c1.2 1.2-1.3 3-.7 3.6.5.5 2.5-1.8 3.6-.7l5.6-5.6-2.9-3s-4.6 4.7-5.6 5.7zM8.4 11L7 9.6l1.4-1.4 1.4 1.4L8.4 11zm4.2-8.4l-2 2-.7-.7-1.5 1.4 4.3 4.3 1.4-1.4-.7-.7 2-2c1.8-1.9-1-4.7-2.8-2.9z\" fill=\"%23fe5000\"/></svg>')}.object-navigator-filter-criteria-header{display:inline-block;text-transform:uppercase;line-height:2.4rem;font-weight:700;font-size:.9375em;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:100%}.object-navigator-apply-button-row{display:flex;margin-top:.8rem;margin-bottom:.8rem;justify-content:flex-end}.object-navigator-separator{border-top:solid .078125em #d4d4d4;padding-bottom:.8rem}.object-navigator-no-filter-types{display:block;width:100%;color:#bababa;text-align:left;padding-bottom:.8rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i4.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "component", type: i4.NgOptionComponent, selector: "ng-option", inputs: ["value", "disabled"] }, { kind: "component", type: FilterCriteriumComponent, selector: "app-filter-criterium", inputs: ["criterium", "indent"], outputs: ["deleteCriterium"] }, { kind: "component", type: ExpansionPanelComponent, selector: "lib-expansion-panel", inputs: ["expanded"] }, { kind: "component", type: ExpansionPanelHeaderComponent, selector: "lib-expansion-panel-header" }, { kind: "component", type: ExpansionPanelHeaderActionsComponent, selector: "lib-expansion-panel-header-actions" }, { kind: "component", type: BimplusSidenavDrawerContentComponent, selector: "lib-bimplus-sidenav-drawer-content", inputs: ["header"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: CriteriaSelectObjectPropertiesComponent, selector: "lib-criteria-select-object-properties", inputs: ["api", "rootObjectId", "revision", "filterCriteria"], outputs: ["filterCriteriaChange"] }, { kind: "component", type: BimplusContextMenuComponent, selector: "lib-bimplus-context-menu", inputs: ["showIcons", "triggerTitle", "items", "data"] }, { kind: "component", type: ObjectFilterResultComponent, selector: "lib-object-filter-result", inputs: ["filterResult", "selectedObjects"], outputs: ["nodeSelectionChanged", "nodeDoubleClicked", "nodeMouseEntered", "nodeMouseLeft"] }], encapsulation: i0.ViewEncapsulation.ShadowDom }); }
|
|
167
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.10", type: BimplusObjectNavigatorComponent, isStandalone: true, selector: "lib-bimplus-object-navigator", inputs: { hideFilterContextMenu: "hideFilterContextMenu", filterContextMenu: "filterContextMenu", filterTypes: "filterTypes", filters: "filters", api: "api", projectId: "projectId", selectedObjectId: "selectedObjectId", selectedObjects: "selectedObjects", selectionObject: "selectionObject" }, outputs: { filterCriteriaSelectionModeChanged: "filterCriteriaSelectionModeChanged", filterResultObjectSelectionChanged: "filterResultObjectSelectionChanged", filterResultObjectDoubleClicked: "filterResultObjectDoubleClicked", filterResultObjectMouseEntered: "filterResultObjectMouseEntered", filterResultObjectMouseLeft: "filterResultObjectMouseLeft" }, host: { properties: { "class.object-navigator": "this.objNavClassClass" } }, usesInheritance: true, ngImport: i0, template: "<lib-bimplus-sidenav-drawer-content [header]=\"'_Object navigator' | translate\">\n <div class=\"object-navigator-content-container\">\n @if(filterTypes.length>0){\n <div class=\"object-navigator-filters-type\">\n <ng-select data-test=\"object-navigator-filter-types-dropdown\" class=\"object-navigator-dropdown\" [(ngModel)]=\"activeFilterType\" [clearable]=\"false\" [searchable]=\"false\">\n <ng-option *ngFor=\"let type of filterTypes\" [value]=\"type\">{{type.name}}</ng-option>\n </ng-select>\n </div>\n <div class=\"object-navigator-filters-name\">\n <ng-select class=\"object-navigator-dropdown\" [(ngModel)]=\"activeFilter\" [clearable]=\"false\" [disabled]=\"!filters\" [searchable]=\"false\">\n <ng-option *ngFor=\"let filter of filters\" [value]=\"filter\">{{filter.name}}</ng-option>\n </ng-select>\n\n @if(!hideFilterContextMenu){\n <lib-bimplus-context-menu class=\"object-navigator-filters-name-context-menu\"\n [items]=\"filterContextMenu\"\n *ngIf=\"filterContextMenu?.length\"\n >\n </lib-bimplus-context-menu>\n }\n\n </div>\n\n <lib-expansion-panel class=\"object-navigator-filter-criteria-panel\">\n <lib-expansion-panel-header>\n <span class=\"object-navigator-filter-criteria-header\">\n {{\"_Assign_Objects_Selection_Mode\" | translate}} ({{filterCriteria.length}})\n </span>\n <lib-expansion-panel-header-actions>\n <div class=\"object-navigator-pick-object-button\"\n [ngClass]=\"filterCriteriaSelectionMode$.getValue() === FilterCriteriaSelectionMode.SelectObjectProperties? 'active' : ''\"\n (click)=\"setFilterCriteriaSelectionMode(FilterCriteriaSelectionMode.SelectObjectProperties)\"\n ></div>\n <!-- Commented until functionality will be implemented\n <div class=\"object-navigator-select-attributes-button\"\n [ngClass]=\"filterCriteriaSelectionMode$.getValue() === FilterCriteriaSelectionMode.SelectAttributes? 'active' : ''\"\n (click)=\"setFilterCriteriaSelectionMode(FilterCriteriaSelectionMode.SelectAttributes)\"\n ></div>-->\n </lib-expansion-panel-header-actions>\n </lib-expansion-panel-header>\n\n <div class=\"filter-criteria-container\">\n @for (criterium of filterCriteria; track criterium; let i = $index) {\n <app-filter-criterium\n [criterium] = \"criterium\"\n [indent]=\"i*0.8\"\n (deleteCriterium)=\"deleteFilterCriterium(i)\"\n ></app-filter-criterium>\n }\n </div>\n </lib-expansion-panel>\n\n <div class=\"object-navigator-apply-button-row\">\n <button class=\"primary-button\" [ngClass]=\"filterCriteria.length===0 ? 'disabled' : ''\" (click)=\"applyFilter()\"> {{\"_Apply filter\" | translate}} </button>\n </div>\n\n <div class=\"object-navigator-separator\"></div>\n\n @switch(filterCriteriaSelectionMode$.getValue()){\n @case(FilterCriteriaSelectionMode.SelectObjectProperties){\n @if(!selectedObjectId){\n <p id=\"NoObjectSelected\">{{ \"_NoObjectSelected\" | translate}}</p>\n }@else{\n <lib-criteria-select-object-properties\n [api]=\"api\"\n [selectedLanguage]=\"selectedLanguage\"\n [localizedStrings]=\"localizedStrings\"\n [(filterCriteria)]=\"filterCriteria\"\n [rootObjectId]=\"selectedObjectId\"\n (filterCriteriaChange)=\"resetActiveFilter()\"\n ></lib-criteria-select-object-properties>\n }\n }\n @case(FilterCriteriaSelectionMode.SelectAttributes){\n\n }\n @default{\n @if (filterResult) {\n <lib-object-filter-result\n [filterResult]=\"filterResult\"\n [selectedObjects]=\"selectedObjects\"\n (nodeSelectionChanged)=\"handleFilterResultSelectionChanged($event)\"\n (nodeDoubleClicked)=\"handleFilterResulObjectDoubleClicked($event)\"\n (nodeMouseEntered)=\"handleFilterResulObjectMouseEntered($event)\"\n (nodeMouseLeft)=\"handleFilterResulObjectMouseLeft($event)\"\n ></lib-object-filter-result>\n }\n }\n }\n }\n @else {\n <div data-test=\"object-navigator-no-filter-types-message\" class=\"object-navigator-no-filter-types\"> {{\"_No visible models found\" | translate}} </div>\n }\n </div>\n</lib-bimplus-sidenav-drawer-content>\n", styles: [".ng-select.ng-select-opened>.ng-select-container{background:#fff;border-color:#b3b3b3 #ccc #d9d9d9}.ng-select.ng-select-opened>.ng-select-container:hover{box-shadow:none}.ng-select.ng-select-opened>.ng-select-container .ng-arrow{top:-2px;border-color:transparent transparent #999;border-width:0 5px 5px}.ng-select.ng-select-opened>.ng-select-container .ng-arrow:hover{border-color:transparent transparent #333}.ng-select.ng-select-opened.ng-select-top>.ng-select-container{border-top-right-radius:0;border-top-left-radius:0}.ng-select.ng-select-opened.ng-select-right>.ng-select-container{border-top-right-radius:0;border-bottom-right-radius:0}.ng-select.ng-select-opened.ng-select-bottom>.ng-select-container{border-bottom-right-radius:0;border-bottom-left-radius:0}.ng-select.ng-select-opened.ng-select-left>.ng-select-container{border-top-left-radius:0;border-bottom-left-radius:0}.ng-select.ng-select-disabled>.ng-select-container{background-color:#f9f9f9}.ng-select .ng-has-value .ng-placeholder{display:none}.ng-select .ng-select-container{color:#333;background-color:#fff;border-radius:0;border:1px solid #ccc;min-height:36px;align-items:center}.ng-select .ng-select-container:hover{box-shadow:0 1px #0000000f;background-color:#f5f5f5}.ng-select .ng-select-container .ng-value-container{align-items:center;padding-left:10px}[dir=rtl] .ng-select .ng-select-container .ng-value-container{padding-right:10px;padding-left:0}.ng-select .ng-select-container .ng-value-container .ng-placeholder{color:#999}.ng-select.ng-select-single .ng-select-container{height:36px}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{top:5px;left:0;padding-left:10px;padding-right:50px}[dir=rtl] .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{padding-right:10px;padding-left:50px}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value{background-color:#f9f9f9;border:1px solid #e6e6e6}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-label{padding:0 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-top:5px;padding-left:7px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-right:7px;padding-left:0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{font-size:.9em;margin-bottom:5px;color:#333;background-color:#fff1eb;border-radius:2px;margin-right:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{margin-right:0;margin-left:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled{background-color:#f9f9f9}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:0;padding-right:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-label,.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:inline-block;padding:1px 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon:hover{background-color:#d1e8ff}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-right:1px solid #b8dbff}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-left:1px solid #b8dbff;border-right:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:1px solid #b8dbff}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:0;border-right:1px solid #b8dbff}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 0 3px 3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 3px 3px 0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input>input{color:#000}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{top:5px;padding-bottom:5px;padding-left:3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{padding-right:3px;padding-left:0}.ng-select .ng-clear-wrapper{color:#999}.ng-select .ng-clear-wrapper:hover .ng-clear{color:#d0021b}.ng-select .ng-clear-wrapper:focus .ng-clear{color:#d0021b}.ng-select .ng-clear-wrapper:focus{outline:none}.ng-select .ng-spinner-zone{padding:5px 5px 0 0}[dir=rtl] .ng-select .ng-spinner-zone{padding:5px 0 0 5px}.ng-select .ng-arrow-wrapper{width:25px;padding-right:5px}[dir=rtl] .ng-select .ng-arrow-wrapper{padding-left:5px;padding-right:0}.ng-select .ng-arrow-wrapper:hover .ng-arrow{border-top-color:#666}.ng-select .ng-arrow-wrapper .ng-arrow{border-color:#999 transparent transparent;border-style:solid;border-width:5px 5px 2.5px}.ng-dropdown-panel{background-color:#fff;border:1px solid #ccc;box-shadow:0 1px #0000000f;left:0}.ng-dropdown-panel.ng-select-top{bottom:100%;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-color:#e6e6e6;margin-bottom:-1px}.ng-dropdown-panel.ng-select-top .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.ng-dropdown-panel.ng-select-right{left:100%;top:0;border-top-right-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-bottom-color:#e6e6e6;margin-bottom:-1px}.ng-dropdown-panel.ng-select-right .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px}.ng-dropdown-panel.ng-select-bottom{top:100%;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-color:#e6e6e6;margin-top:-1px}.ng-dropdown-panel.ng-select-bottom .ng-dropdown-panel-items .ng-option:last-child{border-bottom-right-radius:0;border-bottom-left-radius:0}.ng-dropdown-panel.ng-select-left{left:-100%;top:0;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-bottom-color:#e6e6e6;margin-bottom:-1px}.ng-dropdown-panel.ng-select-left .ng-dropdown-panel-items .ng-option:first-child{border-top-left-radius:4px}.ng-dropdown-panel .ng-dropdown-header{border-bottom:1px solid #ccc;padding:5px 7px}.ng-dropdown-panel .ng-dropdown-footer{border-top:1px solid #ccc;padding:5px 7px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{-webkit-user-select:none;user-select:none;padding:8px 10px;font-weight:500;color:#0000008a;cursor:pointer}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-disabled{cursor:default}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-marked{background-color:#f5f5f5}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected.ng-option-marked{color:#0000008a;background-color:#fff1eb;font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{background-color:#fff;color:#000000de;padding:8px 10px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked{color:#333;background-color:#fff1eb}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected .ng-option-label,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked .ng-option-label{font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{background-color:#f5f5f5;color:#333}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-disabled{color:#ccc}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-left:22px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-right:22px;padding-left:0}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{font-size:80%;font-weight:400;padding-right:5px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{padding-left:5px;padding-right:0}[dir=rtl] .ng-dropdown-panel{direction:rtl;text-align:right}.primary-button{text-transform:uppercase;font: 700 1rem Source Sans Pro,Helvetica,Arial,tahoma,sans-serif;display:inline-block;margin-left:.8rem;height:2.4rem;white-space:nowrap;border-radius:.2rem;vertical-align:middle;font-size:1.2rem;border:solid .2rem #fe5000;color:#fff;background-color:#fe5000;cursor:pointer}.primary-button:hover{border:solid .2rem #eb4b00;color:#fff;background-color:#eb4b00;outline:0}.primary-button.disabled{border:solid .2rem #bababa;color:#fff;background-color:#bababa;cursor:default}.filter-criteria-container{display:flex;flex-direction:column;width:calc(100% - 2.4rem);padding-left:2.4rem;height:14.4rem}:host(.object-navigator){height:100%;width:100%}.object-navigator-content-container{display:flex;flex-direction:column}.object-navigator-content-container>.object-navigator-filters-type{margin-top:.1rem;margin-bottom:.1rem;height:2.4rem}.object-navigator-content-container>.object-navigator-filters-type>.object-navigator-dropdown .ng-select-container{height:2.4rem;min-height:2.4rem}.object-navigator-content-container>.object-navigator-filters-name{margin-top:.1rem;margin-bottom:.1rem;height:2.4rem;display:flex;flex-direction:row}.object-navigator-content-container>.object-navigator-filters-name>.object-navigator-dropdown{flex:1}.object-navigator-content-container>.object-navigator-filters-name>.object-navigator-dropdown .ng-select-container{height:2.4rem;min-height:2.4rem}.object-navigator-content-container>.object-navigator-filters-name>.object-navigator-filters-name-context-menu{--context-menu-trigger-width: 2.4rem;--context-menu-trigger-height: 2.4rem}.object-navigator-filter-action-buttons{width:2.4rem;height:2.4rem;display:inline-block;background-position:center center;background-repeat:no-repeat;cursor:pointer;background-size:1.8rem 1.8rem;color:#39aef2;margin-left:.4rem}.object-navigator-filter-criteria-panel{padding-top:.8rem}.object-navigator-select-attributes-button{background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M14.6 9.1l.1-3c0-2.4-.1-2.7-2.5-2.7l-3 .1c-.4.1-.7.2-1 .5L2.7 9.5c-.6.6-.6 1.6 0 2.2l3.7 3.8c.6.6 1.6.6 2.2 0l5.5-5.5c.3-.2.4-.6.5-.9zm-1.5-2.5c0 .9-.7 1.6-1.6 1.6-.9 0-1.6-.7-1.6-1.6 0-.9.7-1.6 1.6-1.6.9 0 1.6.7 1.6 1.6z\" fill=\"%23444\"/></svg>');width:2.4rem;height:2.4rem;display:inline-block;background-position:center center;background-repeat:no-repeat;cursor:pointer;background-size:1.8rem 1.8rem;color:#39aef2;margin-left:.4rem}.object-navigator-select-attributes-button.active{background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M14.6 9.1l.1-3c0-2.4-.1-2.7-2.5-2.7l-3 .1c-.4.1-.7.2-1 .5L2.7 9.5c-.6.6-.6 1.6 0 2.2l3.7 3.8c.6.6 1.6.6 2.2 0l5.5-5.5c.3-.2.4-.6.5-.9zm-1.5-2.5c0 .9-.7 1.6-1.6 1.6-.9 0-1.6-.7-1.6-1.6S10.6 5 11.5 5c.9 0 1.6.7 1.6 1.6z\" fill=\"%23fe5000\"/></svg>')}.object-navigator-pick-object-button{background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M2.8 12.4c1.2 1.2-1.3 3-.7 3.6.5.5 2.5-1.8 3.6-.7l5.6-5.6-2.9-3s-4.6 4.7-5.6 5.7zM8.4 11L7 9.6l1.4-1.4 1.4 1.4L8.4 11zm4.2-8.4l-2 2-.7-.7-1.5 1.4 4.3 4.3 1.4-1.4-.7-.7 2-2c1.8-1.9-1-4.7-2.8-2.9z\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"%23444\"/></svg>');width:2.4rem;height:2.4rem;display:inline-block;background-position:center center;background-repeat:no-repeat;cursor:pointer;background-size:1.8rem 1.8rem;color:#39aef2;margin-left:.4rem}.object-navigator-pick-object-button.active{background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M2.8 12.4c1.2 1.2-1.3 3-.7 3.6.5.5 2.5-1.8 3.6-.7l5.6-5.6-2.9-3s-4.6 4.7-5.6 5.7zM8.4 11L7 9.6l1.4-1.4 1.4 1.4L8.4 11zm4.2-8.4l-2 2-.7-.7-1.5 1.4 4.3 4.3 1.4-1.4-.7-.7 2-2c1.8-1.9-1-4.7-2.8-2.9z\" fill=\"%23fe5000\"/></svg>')}.object-navigator-filter-criteria-header{display:inline-block;text-transform:uppercase;line-height:2.4rem;font-weight:700;font-size:.9375em;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:100%}.object-navigator-apply-button-row{display:flex;margin-top:.8rem;margin-bottom:.8rem;justify-content:flex-end}.object-navigator-separator{border-top:solid .078125em #d4d4d4;padding-bottom:.8rem}.object-navigator-no-filter-types{display:block;width:100%;color:#bababa;text-align:left;padding-bottom:.8rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i4.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "component", type: i4.NgOptionComponent, selector: "ng-option", inputs: ["value", "disabled"] }, { kind: "component", type: FilterCriteriumComponent, selector: "app-filter-criterium", inputs: ["criterium", "indent"], outputs: ["deleteCriterium"] }, { kind: "component", type: ExpansionPanelComponent, selector: "lib-expansion-panel", inputs: ["expanded"] }, { kind: "component", type: ExpansionPanelHeaderComponent, selector: "lib-expansion-panel-header" }, { kind: "component", type: ExpansionPanelHeaderActionsComponent, selector: "lib-expansion-panel-header-actions" }, { kind: "component", type: BimplusSidenavDrawerContentComponent, selector: "lib-bimplus-sidenav-drawer-content", inputs: ["header"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: CriteriaSelectObjectPropertiesComponent, selector: "lib-criteria-select-object-properties", inputs: ["api", "rootObjectId", "revision", "filterCriteria"], outputs: ["filterCriteriaChange"] }, { kind: "component", type: BimplusContextMenuComponent, selector: "lib-bimplus-context-menu", inputs: ["showIcons", "triggerTitle", "items", "data"] }, { kind: "component", type: ObjectFilterResultComponent, selector: "lib-object-filter-result", inputs: ["filterResult", "selectedObjects"], outputs: ["nodeSelectionChanged", "nodeDoubleClicked", "nodeMouseEntered", "nodeMouseLeft"] }], encapsulation: i0.ViewEncapsulation.ShadowDom }); }
|
|
168
168
|
}
|
|
169
169
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: BimplusObjectNavigatorComponent, decorators: [{
|
|
170
170
|
type: Component,
|
|
@@ -180,7 +180,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
|
|
|
180
180
|
CriteriaSelectObjectPropertiesComponent,
|
|
181
181
|
BimplusContextMenuComponent,
|
|
182
182
|
ObjectFilterResultComponent
|
|
183
|
-
], encapsulation: ViewEncapsulation.ShadowDom, template: "<lib-bimplus-sidenav-drawer-content [header]=\"'_Object navigator' | translate\">\r\n <div class=\"object-navigator-content-container\">\r\n @if(filterTypes.length>0){\r\n <div class=\"object-navigator-filters-type\">\r\n <ng-select data-test=\"object-navigator-filter-types-dropdown\" class=\"object-navigator-dropdown\" [(ngModel)]=\"activeFilterType\" [clearable]=\"false\" [searchable]=\"false\">\r\n <ng-option *ngFor=\"let type of filterTypes\" [value]=\"type\">{{type.name}}</ng-option>\r\n </ng-select>\r\n </div>\r\n <div class=\"object-navigator-filters-name\">\r\n <ng-select class=\"object-navigator-dropdown\" [(ngModel)]=\"activeFilter\" [clearable]=\"false\" [disabled]=\"!filters\" [searchable]=\"false\">\r\n <ng-option *ngFor=\"let filter of filters\" [value]=\"filter\">{{filter.name}}</ng-option>\r\n </ng-select>\r\n\r\n @if(!hideFilterContextMenu){\r\n <lib-bimplus-context-menu class=\"object-navigator-filters-name-context-menu\"\r\n [items]=\"filterContextMenu\"\r\n *ngIf=\"filterContextMenu?.length\"\r\n >\r\n </lib-bimplus-context-menu>\r\n }\r\n\r\n </div>\r\n\r\n <lib-expansion-panel class=\"object-navigator-filter-criteria-panel\">\r\n <lib-expansion-panel-header>\r\n <span class=\"object-navigator-filter-criteria-header\">\r\n {{\"_Assign_Objects_Selection_Mode\" | translate}} ({{filterCriteria.length}})\r\n </span>\r\n <lib-expansion-panel-header-actions>\r\n <div class=\"object-navigator-pick-object-button\"\r\n [ngClass]=\"filterCriteriaSelectionMode$.getValue() === FilterCriteriaSelectionMode.SelectObjectProperties? 'active' : ''\"\r\n (click)=\"setFilterCriteriaSelectionMode(FilterCriteriaSelectionMode.SelectObjectProperties)\"\r\n ></div>\r\n <div class=\"object-navigator-select-attributes-button\"\r\n [ngClass]=\"filterCriteriaSelectionMode$.getValue() === FilterCriteriaSelectionMode.SelectAttributes? 'active' : ''\"\r\n (click)=\"setFilterCriteriaSelectionMode(FilterCriteriaSelectionMode.SelectAttributes)\"\r\n ></div>\r\n </lib-expansion-panel-header-actions>\r\n </lib-expansion-panel-header>\r\n\r\n <div class=\"filter-criteria-container\">\r\n @for (criterium of filterCriteria; track criterium; let i = $index) {\r\n <app-filter-criterium\r\n [criterium] = \"criterium\"\r\n [indent]=\"i*0.8\"\r\n (deleteCriterium)=\"deleteFilterCriterium(i)\"\r\n ></app-filter-criterium>\r\n }\r\n </div>\r\n </lib-expansion-panel>\r\n\r\n <div class=\"object-navigator-apply-button-row\">\r\n <button class=\"primary-button\" [ngClass]=\"filterCriteria.length===0 ? 'disabled' : ''\" (click)=\"applyFilter()\"> {{\"_Apply filter\" | translate}} </button>\r\n </div>\r\n\r\n <div class=\"object-navigator-separator\"></div>\r\n\r\n @switch(filterCriteriaSelectionMode$.getValue()){\r\n @case(FilterCriteriaSelectionMode.SelectObjectProperties){\r\n @if(!selectedObjectId){\r\n <p id=\"NoObjectSelected\">{{ \"_NoObjectSelected\" | translate}}</p>\r\n }@else{\r\n <lib-criteria-select-object-properties\r\n [api]=\"api\"\r\n [selectedLanguage]=\"selectedLanguage\"\r\n [localizedStrings]=\"localizedStrings\"\r\n [(filterCriteria)]=\"filterCriteria\"\r\n [rootObjectId]=\"selectedObjectId\"\r\n (filterCriteriaChange)=\"resetActiveFilter()\"\r\n ></lib-criteria-select-object-properties>\r\n }\r\n }\r\n @case(FilterCriteriaSelectionMode.SelectAttributes){\r\n\r\n }\r\n @default{\r\n @if (filterResult) {\r\n <lib-object-filter-result\r\n [filterResult]=\"filterResult\"\r\n [selectedObjects]=\"selectedObjects\"\r\n (nodeSelectionChanged)=\"handleFilterResultSelectionChanged($event)\"\r\n (nodeDoubleClicked)=\"handleFilterResulObjectDoubleClicked($event)\"\r\n (nodeMouseEntered)=\"handleFilterResulObjectMouseEntered($event)\"\r\n (nodeMouseLeft)=\"handleFilterResulObjectMouseLeft($event)\"\r\n ></lib-object-filter-result>\r\n }\r\n }\r\n }\r\n }\r\n @else {\r\n <div data-test=\"object-navigator-no-filter-types-message\" class=\"object-navigator-no-filter-types\"> {{\"_No visible models found\" | translate}} </div>\r\n }\r\n </div>\r\n</lib-bimplus-sidenav-drawer-content>\r\n", styles: [".ng-select.ng-select-opened>.ng-select-container{background:#fff;border-color:#b3b3b3 #ccc #d9d9d9}.ng-select.ng-select-opened>.ng-select-container:hover{box-shadow:none}.ng-select.ng-select-opened>.ng-select-container .ng-arrow{top:-2px;border-color:transparent transparent #999;border-width:0 5px 5px}.ng-select.ng-select-opened>.ng-select-container .ng-arrow:hover{border-color:transparent transparent #333}.ng-select.ng-select-opened.ng-select-top>.ng-select-container{border-top-right-radius:0;border-top-left-radius:0}.ng-select.ng-select-opened.ng-select-right>.ng-select-container{border-top-right-radius:0;border-bottom-right-radius:0}.ng-select.ng-select-opened.ng-select-bottom>.ng-select-container{border-bottom-right-radius:0;border-bottom-left-radius:0}.ng-select.ng-select-opened.ng-select-left>.ng-select-container{border-top-left-radius:0;border-bottom-left-radius:0}.ng-select.ng-select-disabled>.ng-select-container{background-color:#f9f9f9}.ng-select .ng-has-value .ng-placeholder{display:none}.ng-select .ng-select-container{color:#333;background-color:#fff;border-radius:0;border:1px solid #ccc;min-height:36px;align-items:center}.ng-select .ng-select-container:hover{box-shadow:0 1px #0000000f;background-color:#f5f5f5}.ng-select .ng-select-container .ng-value-container{align-items:center;padding-left:10px}[dir=rtl] .ng-select .ng-select-container .ng-value-container{padding-right:10px;padding-left:0}.ng-select .ng-select-container .ng-value-container .ng-placeholder{color:#999}.ng-select.ng-select-single .ng-select-container{height:36px}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{top:5px;left:0;padding-left:10px;padding-right:50px}[dir=rtl] .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{padding-right:10px;padding-left:50px}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value{background-color:#f9f9f9;border:1px solid #e6e6e6}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-label{padding:0 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-top:5px;padding-left:7px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-right:7px;padding-left:0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{font-size:.9em;margin-bottom:5px;color:#333;background-color:#fff1eb;border-radius:2px;margin-right:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{margin-right:0;margin-left:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled{background-color:#f9f9f9}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:0;padding-right:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-label,.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:inline-block;padding:1px 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon:hover{background-color:#d1e8ff}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-right:1px solid #b8dbff}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-left:1px solid #b8dbff;border-right:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:1px solid #b8dbff}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:0;border-right:1px solid #b8dbff}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 0 3px 3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 3px 3px 0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input>input{color:#000}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{top:5px;padding-bottom:5px;padding-left:3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{padding-right:3px;padding-left:0}.ng-select .ng-clear-wrapper{color:#999}.ng-select .ng-clear-wrapper:hover .ng-clear{color:#d0021b}.ng-select .ng-clear-wrapper:focus .ng-clear{color:#d0021b}.ng-select .ng-clear-wrapper:focus{outline:none}.ng-select .ng-spinner-zone{padding:5px 5px 0 0}[dir=rtl] .ng-select .ng-spinner-zone{padding:5px 0 0 5px}.ng-select .ng-arrow-wrapper{width:25px;padding-right:5px}[dir=rtl] .ng-select .ng-arrow-wrapper{padding-left:5px;padding-right:0}.ng-select .ng-arrow-wrapper:hover .ng-arrow{border-top-color:#666}.ng-select .ng-arrow-wrapper .ng-arrow{border-color:#999 transparent transparent;border-style:solid;border-width:5px 5px 2.5px}.ng-dropdown-panel{background-color:#fff;border:1px solid #ccc;box-shadow:0 1px #0000000f;left:0}.ng-dropdown-panel.ng-select-top{bottom:100%;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-color:#e6e6e6;margin-bottom:-1px}.ng-dropdown-panel.ng-select-top .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.ng-dropdown-panel.ng-select-right{left:100%;top:0;border-top-right-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-bottom-color:#e6e6e6;margin-bottom:-1px}.ng-dropdown-panel.ng-select-right .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px}.ng-dropdown-panel.ng-select-bottom{top:100%;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-color:#e6e6e6;margin-top:-1px}.ng-dropdown-panel.ng-select-bottom .ng-dropdown-panel-items .ng-option:last-child{border-bottom-right-radius:0;border-bottom-left-radius:0}.ng-dropdown-panel.ng-select-left{left:-100%;top:0;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-bottom-color:#e6e6e6;margin-bottom:-1px}.ng-dropdown-panel.ng-select-left .ng-dropdown-panel-items .ng-option:first-child{border-top-left-radius:4px}.ng-dropdown-panel .ng-dropdown-header{border-bottom:1px solid #ccc;padding:5px 7px}.ng-dropdown-panel .ng-dropdown-footer{border-top:1px solid #ccc;padding:5px 7px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{-webkit-user-select:none;user-select:none;padding:8px 10px;font-weight:500;color:#0000008a;cursor:pointer}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-disabled{cursor:default}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-marked{background-color:#f5f5f5}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected.ng-option-marked{color:#0000008a;background-color:#fff1eb;font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{background-color:#fff;color:#000000de;padding:8px 10px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked{color:#333;background-color:#fff1eb}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected .ng-option-label,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked .ng-option-label{font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{background-color:#f5f5f5;color:#333}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-disabled{color:#ccc}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-left:22px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-right:22px;padding-left:0}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{font-size:80%;font-weight:400;padding-right:5px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{padding-left:5px;padding-right:0}[dir=rtl] .ng-dropdown-panel{direction:rtl;text-align:right}.primary-button{text-transform:uppercase;font: 700 1rem Source Sans Pro,Helvetica,Arial,tahoma,sans-serif;display:inline-block;margin-left:.8rem;height:2.4rem;white-space:nowrap;border-radius:.2rem;vertical-align:middle;font-size:1.2rem;border:solid .2rem #fe5000;color:#fff;background-color:#fe5000;cursor:pointer}.primary-button:hover{border:solid .2rem #eb4b00;color:#fff;background-color:#eb4b00;outline:0}.primary-button.disabled{border:solid .2rem #bababa;color:#fff;background-color:#bababa;cursor:default}.filter-criteria-container{display:flex;flex-direction:column;width:calc(100% - 2.4rem);padding-left:2.4rem;height:14.4rem}:host(.object-navigator){height:100%;width:100%}.object-navigator-content-container{display:flex;flex-direction:column}.object-navigator-content-container>.object-navigator-filters-type{margin-top:.1rem;margin-bottom:.1rem;height:2.4rem}.object-navigator-content-container>.object-navigator-filters-type>.object-navigator-dropdown .ng-select-container{height:2.4rem;min-height:2.4rem}.object-navigator-content-container>.object-navigator-filters-name{margin-top:.1rem;margin-bottom:.1rem;height:2.4rem;display:flex;flex-direction:row}.object-navigator-content-container>.object-navigator-filters-name>.object-navigator-dropdown{flex:1}.object-navigator-content-container>.object-navigator-filters-name>.object-navigator-dropdown .ng-select-container{height:2.4rem;min-height:2.4rem}.object-navigator-content-container>.object-navigator-filters-name>.object-navigator-filters-name-context-menu{--context-menu-trigger-width: 2.4rem;--context-menu-trigger-height: 2.4rem}.object-navigator-filter-action-buttons{width:2.4rem;height:2.4rem;display:inline-block;background-position:center center;background-repeat:no-repeat;cursor:pointer;background-size:1.8rem 1.8rem;color:#39aef2;margin-left:.4rem}.object-navigator-filter-criteria-panel{padding-top:.8rem}.object-navigator-select-attributes-button{background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M14.6 9.1l.1-3c0-2.4-.1-2.7-2.5-2.7l-3 .1c-.4.1-.7.2-1 .5L2.7 9.5c-.6.6-.6 1.6 0 2.2l3.7 3.8c.6.6 1.6.6 2.2 0l5.5-5.5c.3-.2.4-.6.5-.9zm-1.5-2.5c0 .9-.7 1.6-1.6 1.6-.9 0-1.6-.7-1.6-1.6 0-.9.7-1.6 1.6-1.6.9 0 1.6.7 1.6 1.6z\" fill=\"%23444\"/></svg>');width:2.4rem;height:2.4rem;display:inline-block;background-position:center center;background-repeat:no-repeat;cursor:pointer;background-size:1.8rem 1.8rem;color:#39aef2;margin-left:.4rem}.object-navigator-select-attributes-button.active{background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M14.6 9.1l.1-3c0-2.4-.1-2.7-2.5-2.7l-3 .1c-.4.1-.7.2-1 .5L2.7 9.5c-.6.6-.6 1.6 0 2.2l3.7 3.8c.6.6 1.6.6 2.2 0l5.5-5.5c.3-.2.4-.6.5-.9zm-1.5-2.5c0 .9-.7 1.6-1.6 1.6-.9 0-1.6-.7-1.6-1.6S10.6 5 11.5 5c.9 0 1.6.7 1.6 1.6z\" fill=\"%23fe5000\"/></svg>')}.object-navigator-pick-object-button{background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M2.8 12.4c1.2 1.2-1.3 3-.7 3.6.5.5 2.5-1.8 3.6-.7l5.6-5.6-2.9-3s-4.6 4.7-5.6 5.7zM8.4 11L7 9.6l1.4-1.4 1.4 1.4L8.4 11zm4.2-8.4l-2 2-.7-.7-1.5 1.4 4.3 4.3 1.4-1.4-.7-.7 2-2c1.8-1.9-1-4.7-2.8-2.9z\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"%23444\"/></svg>');width:2.4rem;height:2.4rem;display:inline-block;background-position:center center;background-repeat:no-repeat;cursor:pointer;background-size:1.8rem 1.8rem;color:#39aef2;margin-left:.4rem}.object-navigator-pick-object-button.active{background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M2.8 12.4c1.2 1.2-1.3 3-.7 3.6.5.5 2.5-1.8 3.6-.7l5.6-5.6-2.9-3s-4.6 4.7-5.6 5.7zM8.4 11L7 9.6l1.4-1.4 1.4 1.4L8.4 11zm4.2-8.4l-2 2-.7-.7-1.5 1.4 4.3 4.3 1.4-1.4-.7-.7 2-2c1.8-1.9-1-4.7-2.8-2.9z\" fill=\"%23fe5000\"/></svg>')}.object-navigator-filter-criteria-header{display:inline-block;text-transform:uppercase;line-height:2.4rem;font-weight:700;font-size:.9375em;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:100%}.object-navigator-apply-button-row{display:flex;margin-top:.8rem;margin-bottom:.8rem;justify-content:flex-end}.object-navigator-separator{border-top:solid .078125em #d4d4d4;padding-bottom:.8rem}.object-navigator-no-filter-types{display:block;width:100%;color:#bababa;text-align:left;padding-bottom:.8rem}\n"] }]
|
|
183
|
+
], encapsulation: ViewEncapsulation.ShadowDom, template: "<lib-bimplus-sidenav-drawer-content [header]=\"'_Object navigator' | translate\">\n <div class=\"object-navigator-content-container\">\n @if(filterTypes.length>0){\n <div class=\"object-navigator-filters-type\">\n <ng-select data-test=\"object-navigator-filter-types-dropdown\" class=\"object-navigator-dropdown\" [(ngModel)]=\"activeFilterType\" [clearable]=\"false\" [searchable]=\"false\">\n <ng-option *ngFor=\"let type of filterTypes\" [value]=\"type\">{{type.name}}</ng-option>\n </ng-select>\n </div>\n <div class=\"object-navigator-filters-name\">\n <ng-select class=\"object-navigator-dropdown\" [(ngModel)]=\"activeFilter\" [clearable]=\"false\" [disabled]=\"!filters\" [searchable]=\"false\">\n <ng-option *ngFor=\"let filter of filters\" [value]=\"filter\">{{filter.name}}</ng-option>\n </ng-select>\n\n @if(!hideFilterContextMenu){\n <lib-bimplus-context-menu class=\"object-navigator-filters-name-context-menu\"\n [items]=\"filterContextMenu\"\n *ngIf=\"filterContextMenu?.length\"\n >\n </lib-bimplus-context-menu>\n }\n\n </div>\n\n <lib-expansion-panel class=\"object-navigator-filter-criteria-panel\">\n <lib-expansion-panel-header>\n <span class=\"object-navigator-filter-criteria-header\">\n {{\"_Assign_Objects_Selection_Mode\" | translate}} ({{filterCriteria.length}})\n </span>\n <lib-expansion-panel-header-actions>\n <div class=\"object-navigator-pick-object-button\"\n [ngClass]=\"filterCriteriaSelectionMode$.getValue() === FilterCriteriaSelectionMode.SelectObjectProperties? 'active' : ''\"\n (click)=\"setFilterCriteriaSelectionMode(FilterCriteriaSelectionMode.SelectObjectProperties)\"\n ></div>\n <!-- Commented until functionality will be implemented\n <div class=\"object-navigator-select-attributes-button\"\n [ngClass]=\"filterCriteriaSelectionMode$.getValue() === FilterCriteriaSelectionMode.SelectAttributes? 'active' : ''\"\n (click)=\"setFilterCriteriaSelectionMode(FilterCriteriaSelectionMode.SelectAttributes)\"\n ></div>-->\n </lib-expansion-panel-header-actions>\n </lib-expansion-panel-header>\n\n <div class=\"filter-criteria-container\">\n @for (criterium of filterCriteria; track criterium; let i = $index) {\n <app-filter-criterium\n [criterium] = \"criterium\"\n [indent]=\"i*0.8\"\n (deleteCriterium)=\"deleteFilterCriterium(i)\"\n ></app-filter-criterium>\n }\n </div>\n </lib-expansion-panel>\n\n <div class=\"object-navigator-apply-button-row\">\n <button class=\"primary-button\" [ngClass]=\"filterCriteria.length===0 ? 'disabled' : ''\" (click)=\"applyFilter()\"> {{\"_Apply filter\" | translate}} </button>\n </div>\n\n <div class=\"object-navigator-separator\"></div>\n\n @switch(filterCriteriaSelectionMode$.getValue()){\n @case(FilterCriteriaSelectionMode.SelectObjectProperties){\n @if(!selectedObjectId){\n <p id=\"NoObjectSelected\">{{ \"_NoObjectSelected\" | translate}}</p>\n }@else{\n <lib-criteria-select-object-properties\n [api]=\"api\"\n [selectedLanguage]=\"selectedLanguage\"\n [localizedStrings]=\"localizedStrings\"\n [(filterCriteria)]=\"filterCriteria\"\n [rootObjectId]=\"selectedObjectId\"\n (filterCriteriaChange)=\"resetActiveFilter()\"\n ></lib-criteria-select-object-properties>\n }\n }\n @case(FilterCriteriaSelectionMode.SelectAttributes){\n\n }\n @default{\n @if (filterResult) {\n <lib-object-filter-result\n [filterResult]=\"filterResult\"\n [selectedObjects]=\"selectedObjects\"\n (nodeSelectionChanged)=\"handleFilterResultSelectionChanged($event)\"\n (nodeDoubleClicked)=\"handleFilterResulObjectDoubleClicked($event)\"\n (nodeMouseEntered)=\"handleFilterResulObjectMouseEntered($event)\"\n (nodeMouseLeft)=\"handleFilterResulObjectMouseLeft($event)\"\n ></lib-object-filter-result>\n }\n }\n }\n }\n @else {\n <div data-test=\"object-navigator-no-filter-types-message\" class=\"object-navigator-no-filter-types\"> {{\"_No visible models found\" | translate}} </div>\n }\n </div>\n</lib-bimplus-sidenav-drawer-content>\n", styles: [".ng-select.ng-select-opened>.ng-select-container{background:#fff;border-color:#b3b3b3 #ccc #d9d9d9}.ng-select.ng-select-opened>.ng-select-container:hover{box-shadow:none}.ng-select.ng-select-opened>.ng-select-container .ng-arrow{top:-2px;border-color:transparent transparent #999;border-width:0 5px 5px}.ng-select.ng-select-opened>.ng-select-container .ng-arrow:hover{border-color:transparent transparent #333}.ng-select.ng-select-opened.ng-select-top>.ng-select-container{border-top-right-radius:0;border-top-left-radius:0}.ng-select.ng-select-opened.ng-select-right>.ng-select-container{border-top-right-radius:0;border-bottom-right-radius:0}.ng-select.ng-select-opened.ng-select-bottom>.ng-select-container{border-bottom-right-radius:0;border-bottom-left-radius:0}.ng-select.ng-select-opened.ng-select-left>.ng-select-container{border-top-left-radius:0;border-bottom-left-radius:0}.ng-select.ng-select-disabled>.ng-select-container{background-color:#f9f9f9}.ng-select .ng-has-value .ng-placeholder{display:none}.ng-select .ng-select-container{color:#333;background-color:#fff;border-radius:0;border:1px solid #ccc;min-height:36px;align-items:center}.ng-select .ng-select-container:hover{box-shadow:0 1px #0000000f;background-color:#f5f5f5}.ng-select .ng-select-container .ng-value-container{align-items:center;padding-left:10px}[dir=rtl] .ng-select .ng-select-container .ng-value-container{padding-right:10px;padding-left:0}.ng-select .ng-select-container .ng-value-container .ng-placeholder{color:#999}.ng-select.ng-select-single .ng-select-container{height:36px}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{top:5px;left:0;padding-left:10px;padding-right:50px}[dir=rtl] .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{padding-right:10px;padding-left:50px}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value{background-color:#f9f9f9;border:1px solid #e6e6e6}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-label{padding:0 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-top:5px;padding-left:7px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-right:7px;padding-left:0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{font-size:.9em;margin-bottom:5px;color:#333;background-color:#fff1eb;border-radius:2px;margin-right:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{margin-right:0;margin-left:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled{background-color:#f9f9f9}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:0;padding-right:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-label,.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:inline-block;padding:1px 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon:hover{background-color:#d1e8ff}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-right:1px solid #b8dbff}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-left:1px solid #b8dbff;border-right:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:1px solid #b8dbff}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:0;border-right:1px solid #b8dbff}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 0 3px 3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 3px 3px 0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input>input{color:#000}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{top:5px;padding-bottom:5px;padding-left:3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{padding-right:3px;padding-left:0}.ng-select .ng-clear-wrapper{color:#999}.ng-select .ng-clear-wrapper:hover .ng-clear{color:#d0021b}.ng-select .ng-clear-wrapper:focus .ng-clear{color:#d0021b}.ng-select .ng-clear-wrapper:focus{outline:none}.ng-select .ng-spinner-zone{padding:5px 5px 0 0}[dir=rtl] .ng-select .ng-spinner-zone{padding:5px 0 0 5px}.ng-select .ng-arrow-wrapper{width:25px;padding-right:5px}[dir=rtl] .ng-select .ng-arrow-wrapper{padding-left:5px;padding-right:0}.ng-select .ng-arrow-wrapper:hover .ng-arrow{border-top-color:#666}.ng-select .ng-arrow-wrapper .ng-arrow{border-color:#999 transparent transparent;border-style:solid;border-width:5px 5px 2.5px}.ng-dropdown-panel{background-color:#fff;border:1px solid #ccc;box-shadow:0 1px #0000000f;left:0}.ng-dropdown-panel.ng-select-top{bottom:100%;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-color:#e6e6e6;margin-bottom:-1px}.ng-dropdown-panel.ng-select-top .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.ng-dropdown-panel.ng-select-right{left:100%;top:0;border-top-right-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-bottom-color:#e6e6e6;margin-bottom:-1px}.ng-dropdown-panel.ng-select-right .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px}.ng-dropdown-panel.ng-select-bottom{top:100%;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-color:#e6e6e6;margin-top:-1px}.ng-dropdown-panel.ng-select-bottom .ng-dropdown-panel-items .ng-option:last-child{border-bottom-right-radius:0;border-bottom-left-radius:0}.ng-dropdown-panel.ng-select-left{left:-100%;top:0;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-bottom-color:#e6e6e6;margin-bottom:-1px}.ng-dropdown-panel.ng-select-left .ng-dropdown-panel-items .ng-option:first-child{border-top-left-radius:4px}.ng-dropdown-panel .ng-dropdown-header{border-bottom:1px solid #ccc;padding:5px 7px}.ng-dropdown-panel .ng-dropdown-footer{border-top:1px solid #ccc;padding:5px 7px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{-webkit-user-select:none;user-select:none;padding:8px 10px;font-weight:500;color:#0000008a;cursor:pointer}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-disabled{cursor:default}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-marked{background-color:#f5f5f5}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected.ng-option-marked{color:#0000008a;background-color:#fff1eb;font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{background-color:#fff;color:#000000de;padding:8px 10px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked{color:#333;background-color:#fff1eb}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected .ng-option-label,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked .ng-option-label{font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{background-color:#f5f5f5;color:#333}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-disabled{color:#ccc}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-left:22px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-right:22px;padding-left:0}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{font-size:80%;font-weight:400;padding-right:5px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{padding-left:5px;padding-right:0}[dir=rtl] .ng-dropdown-panel{direction:rtl;text-align:right}.primary-button{text-transform:uppercase;font: 700 1rem Source Sans Pro,Helvetica,Arial,tahoma,sans-serif;display:inline-block;margin-left:.8rem;height:2.4rem;white-space:nowrap;border-radius:.2rem;vertical-align:middle;font-size:1.2rem;border:solid .2rem #fe5000;color:#fff;background-color:#fe5000;cursor:pointer}.primary-button:hover{border:solid .2rem #eb4b00;color:#fff;background-color:#eb4b00;outline:0}.primary-button.disabled{border:solid .2rem #bababa;color:#fff;background-color:#bababa;cursor:default}.filter-criteria-container{display:flex;flex-direction:column;width:calc(100% - 2.4rem);padding-left:2.4rem;height:14.4rem}:host(.object-navigator){height:100%;width:100%}.object-navigator-content-container{display:flex;flex-direction:column}.object-navigator-content-container>.object-navigator-filters-type{margin-top:.1rem;margin-bottom:.1rem;height:2.4rem}.object-navigator-content-container>.object-navigator-filters-type>.object-navigator-dropdown .ng-select-container{height:2.4rem;min-height:2.4rem}.object-navigator-content-container>.object-navigator-filters-name{margin-top:.1rem;margin-bottom:.1rem;height:2.4rem;display:flex;flex-direction:row}.object-navigator-content-container>.object-navigator-filters-name>.object-navigator-dropdown{flex:1}.object-navigator-content-container>.object-navigator-filters-name>.object-navigator-dropdown .ng-select-container{height:2.4rem;min-height:2.4rem}.object-navigator-content-container>.object-navigator-filters-name>.object-navigator-filters-name-context-menu{--context-menu-trigger-width: 2.4rem;--context-menu-trigger-height: 2.4rem}.object-navigator-filter-action-buttons{width:2.4rem;height:2.4rem;display:inline-block;background-position:center center;background-repeat:no-repeat;cursor:pointer;background-size:1.8rem 1.8rem;color:#39aef2;margin-left:.4rem}.object-navigator-filter-criteria-panel{padding-top:.8rem}.object-navigator-select-attributes-button{background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M14.6 9.1l.1-3c0-2.4-.1-2.7-2.5-2.7l-3 .1c-.4.1-.7.2-1 .5L2.7 9.5c-.6.6-.6 1.6 0 2.2l3.7 3.8c.6.6 1.6.6 2.2 0l5.5-5.5c.3-.2.4-.6.5-.9zm-1.5-2.5c0 .9-.7 1.6-1.6 1.6-.9 0-1.6-.7-1.6-1.6 0-.9.7-1.6 1.6-1.6.9 0 1.6.7 1.6 1.6z\" fill=\"%23444\"/></svg>');width:2.4rem;height:2.4rem;display:inline-block;background-position:center center;background-repeat:no-repeat;cursor:pointer;background-size:1.8rem 1.8rem;color:#39aef2;margin-left:.4rem}.object-navigator-select-attributes-button.active{background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M14.6 9.1l.1-3c0-2.4-.1-2.7-2.5-2.7l-3 .1c-.4.1-.7.2-1 .5L2.7 9.5c-.6.6-.6 1.6 0 2.2l3.7 3.8c.6.6 1.6.6 2.2 0l5.5-5.5c.3-.2.4-.6.5-.9zm-1.5-2.5c0 .9-.7 1.6-1.6 1.6-.9 0-1.6-.7-1.6-1.6S10.6 5 11.5 5c.9 0 1.6.7 1.6 1.6z\" fill=\"%23fe5000\"/></svg>')}.object-navigator-pick-object-button{background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M2.8 12.4c1.2 1.2-1.3 3-.7 3.6.5.5 2.5-1.8 3.6-.7l5.6-5.6-2.9-3s-4.6 4.7-5.6 5.7zM8.4 11L7 9.6l1.4-1.4 1.4 1.4L8.4 11zm4.2-8.4l-2 2-.7-.7-1.5 1.4 4.3 4.3 1.4-1.4-.7-.7 2-2c1.8-1.9-1-4.7-2.8-2.9z\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"%23444\"/></svg>');width:2.4rem;height:2.4rem;display:inline-block;background-position:center center;background-repeat:no-repeat;cursor:pointer;background-size:1.8rem 1.8rem;color:#39aef2;margin-left:.4rem}.object-navigator-pick-object-button.active{background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M2.8 12.4c1.2 1.2-1.3 3-.7 3.6.5.5 2.5-1.8 3.6-.7l5.6-5.6-2.9-3s-4.6 4.7-5.6 5.7zM8.4 11L7 9.6l1.4-1.4 1.4 1.4L8.4 11zm4.2-8.4l-2 2-.7-.7-1.5 1.4 4.3 4.3 1.4-1.4-.7-.7 2-2c1.8-1.9-1-4.7-2.8-2.9z\" fill=\"%23fe5000\"/></svg>')}.object-navigator-filter-criteria-header{display:inline-block;text-transform:uppercase;line-height:2.4rem;font-weight:700;font-size:.9375em;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:100%}.object-navigator-apply-button-row{display:flex;margin-top:.8rem;margin-bottom:.8rem;justify-content:flex-end}.object-navigator-separator{border-top:solid .078125em #d4d4d4;padding-bottom:.8rem}.object-navigator-no-filter-types{display:block;width:100%;color:#bababa;text-align:left;padding-bottom:.8rem}\n"] }]
|
|
184
184
|
}], ctorParameters: () => [{ type: i1.TranslateService }], propDecorators: { hideFilterContextMenu: [{
|
|
185
185
|
type: Input
|
|
186
186
|
}], filterContextMenu: [{
|
|
@@ -213,4 +213,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
|
|
|
213
213
|
}], filterResultObjectMouseLeft: [{
|
|
214
214
|
type: Output
|
|
215
215
|
}] } });
|
|
216
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy1vYmplY3QtbmF2aWdhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaW1wbHVzLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2JpbXBsdXMtb2JqZWN0LW5hdmlnYXRvci9iaW1wbHVzLW9iamVjdC1uYXZpZ2F0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1vYmplY3QtbmF2aWdhdG9yL2JpbXBsdXMtb2JqZWN0LW5hdmlnYXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSwyQkFBMkIsRUFBK0IsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNuSSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUV2RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sNEVBQTRFLENBQUM7QUFDbEksT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDM0csT0FB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O3NCQURGLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUdpQyxnQkFBZ0I7c0JBQXRELFdBQVc7dUJBQUMsd0JBQXdCO2dCQUtyQyxrQ0FBa0M7c0JBRGpDLE1BQU07Z0JBSVAsZ0JBQWdCO3NCQURmLEtBQUs7Z0JBSU4sZUFBZTtzQkFEZCxLQUFLO2dCQUlOLGVBQWU7c0JBRGQsS0FBSztnQkFRTixrQ0FBa0M7c0JBRGpDLE1BQU07Z0JBSVAsK0JBQStCO3NCQUQ5QixNQUFNO2dCQUlQLDhCQUE4QjtzQkFEN0IsTUFBTTtnQkFJUCwyQkFBMkI7c0JBRDFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCAqIGFzIFdlYlNkayBmcm9tICdiaW1wbHVzLXdlYnNkayc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCAsZnJvbSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZpbHRlckNyaXRlcmlhU2VsZWN0aW9uTW9kZSwgRmlsdGVyQ3JpdGVyaXVtLCBGaWx0ZXJUeXBlLCBNYXhGaWx0ZXJDcml0ZXJpYSB9IGZyb20gJy4vYmltcGx1cy1vYmplY3QtbmF2aWdhdG9yLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEZpbHRlckNyaXRlcml1bUNvbXBvbmVudCB9IGZyb20gJy4vZmlsdGVyLWNyaXRlcml1bS9maWx0ZXItY3JpdGVyaXVtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEV4cGFuc2lvblBhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vZXhwYW5zaW9uLXBhbmVsL2V4cGFuc2lvbi1wYW5lbC5jb21wb25lbnQnO1xyXG5cclxuaW1wb3J0IHsgTmdTZWxlY3RNb2R1bGUgfSBmcm9tICdAbmctc2VsZWN0L25nLXNlbGVjdCc7XHJcbmltcG9ydCB7IEJpbXBsdXNTaWRlbmF2RHJhd2VyQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4uL2JpbXBsdXMtc2lkZW5hdi1kcmF3ZXItY29udGVudC9iaW1wbHVzLXNpZGVuYXYtZHJhd2VyLWNvbnRlbnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRXhwYW5zaW9uUGFuZWxIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi9leHBhbnNpb24tcGFuZWwtaGVhZGVyL2V4cGFuc2lvbi1wYW5lbC1oZWFkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRXhwYW5zaW9uUGFuZWxIZWFkZXJBY3Rpb25zQ29tcG9uZW50IH0gZnJvbSAnLi4vZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1hY3Rpb25zL2V4cGFuc2lvbi1wYW5lbC1oZWFkZXItYWN0aW9ucy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCaW1wbHVzTG9jYWxpemVkV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi4vYmltcGx1cy1sb2NhbGl6ZWQtd2lkZ2V0L2JpbXBsdXMtbG9jYWxpemVkLXdpZGdldC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgQ3JpdGVyaWFTZWxlY3RPYmplY3RQcm9wZXJ0aWVzQ29tcG9uZW50IH0gZnJvbSAnLi9jcml0ZXJpYS1zZWxlY3Qtb2JqZWN0LXByb3BlcnRpZXMvY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE9iamVjdEZpbHRlclJlc3VsdENvbXBvbmVudCB9IGZyb20gJy4vb2JqZWN0LWZpbHRlci1yZXN1bHQvb2JqZWN0LWZpbHRlci1yZXN1bHQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmltcGx1c0NvbnRleHRNZW51Q29tcG9uZW50IH0gZnJvbSAgJy4uL2JpbXBsdXMtY29udGV4dC1tZW51L2JpbXBsdXMtY29udGV4dC1tZW51LmNvbXBvbmVudCdcclxuaW1wb3J0IHsgQmltcGx1c0NvbnRleHRNZW51SXRlbSB9IGZyb20gJy4uL2JpbXBsdXMtY29udGV4dC1tZW51L2JpbXBsdXMtY29udGV4dC1tZW51LmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEZpbHRlclN0cmluZyB9IGZyb20gJy4uLy4uL3V0aWxzL2ZpbHRlclN0cmluZyc7XHJcbmltcG9ydCB7IEZpbHRlclN0cnVjdHVyZUZldGNoZXIgfSBmcm9tICcuLi8uLi91dGlscy9maWx0ZXJTdHJ1Y3R1cmVGZXRjaGVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWJpbXBsdXMtb2JqZWN0LW5hdmlnYXRvcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbIENvbW1vbk1vZHVsZVxyXG4gICAgLCBGb3Jtc01vZHVsZVxyXG4gICAgLCBOZ1NlbGVjdE1vZHVsZVxyXG4gICAgLCBGaWx0ZXJDcml0ZXJpdW1Db21wb25lbnRcclxuICAgICwgRXhwYW5zaW9uUGFuZWxDb21wb25lbnRcclxuICAgICwgRXhwYW5zaW9uUGFuZWxIZWFkZXJDb21wb25lbnRcclxuICAgICwgRXhwYW5zaW9uUGFuZWxIZWFkZXJBY3Rpb25zQ29tcG9uZW50XHJcbiAgICAsIEJpbXBsdXNTaWRlbmF2RHJhd2VyQ29udGVudENvbXBvbmVudFxyXG4gICAgLCBUcmFuc2xhdGVNb2R1bGVcclxuICAgICwgQ3JpdGVyaWFTZWxlY3RPYmplY3RQcm9wZXJ0aWVzQ29tcG9uZW50XHJcbiAgICAsIEJpbXBsdXNDb250ZXh0TWVudUNvbXBvbmVudFxyXG4gICAgLCBPYmplY3RGaWx0ZXJSZXN1bHRDb21wb25lbnRcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9iaW1wbHVzLW9iamVjdC1uYXZpZ2F0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9iaW1wbHVzLW9iamVjdC1uYXZpZ2F0b3IuY29tcG9uZW50Lmxlc3MnLCBcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5TaGFkb3dEb21cclxufSlcclxuZXhwb3J0IGNsYXNzIEJpbXBsdXNPYmplY3ROYXZpZ2F0b3JDb21wb25lbnQgZXh0ZW5kcyBCaW1wbHVzTG9jYWxpemVkV2lkZ2V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IodHJhbnNsYXRlU2VydmljZTogIFRyYW5zbGF0ZVNlcnZpY2Upe1xyXG4gICAgc3VwZXIodHJhbnNsYXRlU2VydmljZSkgIFxyXG4gIH1cclxuICBcclxuICAvLyAjcmVnaW9uIHB1YmxpYyBmaWVsZHNcclxuXHJcbiAgQElucHV0KClcclxuICBoaWRlRmlsdGVyQ29udGV4dE1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBmaWx0ZXJDb250ZXh0TWVudTogQXJyYXk8QmltcGx1c0NvbnRleHRNZW51SXRlbT4gPSBbXTtcclxuXHJcbiAgQElucHV0KClcclxuICBmaWx0ZXJUeXBlcyA6IEFycmF5PEZpbHRlclR5cGU+ID0gW107XHJcblxyXG4gIHNldCBhY3RpdmVGaWx0ZXJUeXBlKHZhbHVlIDogRmlsdGVyVHlwZSB8IG51bGwpe1xyXG4gICAgdGhpcy5hY3RpdmVGaWx0ZXJUeXBlU3ViamVjdCQubmV4dCh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBnZXQgYWN0aXZlRmlsdGVyVHlwZSgpIDogRmlsdGVyVHlwZSB8IG51bGx7XHJcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVGaWx0ZXJUeXBlU3ViamVjdCQuZ2V0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIGFjdGl2ZUZpbHRlclR5cGVTdWJqZWN0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RmlsdGVyVHlwZSB8IG51bGw+IChudWxsKTtcclxuICBhY3RpdmVGaWx0ZXJTdWJqZWN0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8V2ViU2RrLk9iamVjdEZpbHRlciB8IG51bGw+IChudWxsKTtcclxuXHJcbiAgc2V0IGFjdGl2ZUZpbHRlcihmaWx0ZXIgOiBXZWJTZGsuT2JqZWN0RmlsdGVyIHwgbnVsbCl7XHJcbiAgICB0aGlzLmFjdGl2ZUZpbHRlclN1YmplY3QkLm5leHQoZmlsdGVyKTtcclxuICB9XHJcblxyXG4gIGdldCBhY3RpdmVGaWx0ZXIoKSA6IFdlYlNkay5PYmplY3RGaWx0ZXIgfCBudWxse1xyXG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlRmlsdGVyU3ViamVjdCQuZ2V0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZmlsdGVycyA6IFdlYlNkay5PYmplY3RGaWx0ZXJzUmVzcG9uc2UgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgZmlsdGVyQ3JpdGVyaWEgOiBGaWx0ZXJDcml0ZXJpdW1bXSA9IFtdXHJcbiAgXHJcbiAgQElucHV0KClcclxuICBhcGkgOiBXZWJTZGsuQXBpIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHJvamVjdElkIDogc3RyaW5nID0gJydcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5vYmplY3QtbmF2aWdhdG9yJykgb2JqTmF2Q2xhc3NDbGFzczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIGZpbHRlckNyaXRlcmlhU2VsZWN0aW9uTW9kZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZpbHRlckNyaXRlcmlhU2VsZWN0aW9uTW9kZT4oRmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlLk5vbmUpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBmaWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxGaWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGU+KCk7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2VsZWN0ZWRPYmplY3RJZCA6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNlbGVjdGVkT2JqZWN0cyA6IHN0cmluZ1tdID0gW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2VsZWN0aW9uT2JqZWN0IDogV2ViU2RrLkV4cG9ydE9iamVjdCB8IG51bGwgPSBudWxsO1xyXG5cclxuICBnZXQgZmlsdGVyUmVzdWx0KCl7XHJcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyUmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgZmlsdGVyUmVzdWx0T2JqZWN0U2VsZWN0aW9uQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nW10+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGZpbHRlclJlc3VsdE9iamVjdERvdWJsZUNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgZmlsdGVyUmVzdWx0T2JqZWN0TW91c2VFbnRlcmVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGZpbHRlclJlc3VsdE9iamVjdE1vdXNlTGVmdCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICBGaWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGUgPSBGaWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGU7IC8vIEV4cG9zZSBlbnVtIHRvIHRlbXBsYXRlXHJcblxyXG4gIC8vICNlbmRyZWdpb24gcHVibGljIGZpZWxkc1xyXG5cclxuICAvLyAjcmVnaW9uIHByaXZhdGUgZmllbGRzXHJcbiAgcHJpdmF0ZSBfZmlsdGVyUmVzdWx0IDogV2ViU2RrLk9iamVjdEZpbHRlclN0cnVjdHVyZVJlc3BvbnNlIHwgbnVsbCA9IG51bGw7XHJcbiAgLy8gI2VuZHJlZ2lvbiBwcml2YXRlIGZpZWxkc1xyXG5cclxuICAvLyAjcmVnaW9uIHB1YmxpYyBtZXRob2RzXHJcbiAgbmdPbkluaXQoKSB7XHJcblxyXG4gICAgdGhpcy5hY3RpdmVGaWx0ZXJUeXBlU3ViamVjdCQuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHYpID0+IHtcclxuICAgICAgICBpZighdGhpcy5wcm9qZWN0SWQgfHwgIXRoaXMuYXBpIHx8ICF2KXtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy5hY3RpdmVGaWx0ZXIgPSBudWxsO1xyXG5cclxuICAgICAgICB0aGlzLmxvYWRDdXJyZW50TGF5ZXJGaWx0ZXJzKHRoaXMucHJvamVjdElkLCB2LmlkKT8uc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgbmV4dDogKHZhbHVlKSA9PiB7IHRoaXMuZmlsdGVycyA9IHZhbHVlXHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVycm9yOiBlcnIgPT4ge3Rocm93IG5ldyBFcnJvciAoZXJyKX0sXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKX1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWN0aXZlRmlsdGVyU3ViamVjdCQuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHYpID0+IHsgXHJcbiAgICAgICAgaWYoIXYpXHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICBcclxuICAgICAgICB0aGlzLmZpbHRlckNyaXRlcmlhID0gdGhpcy5wYXJzZUZpbHRlclN0cmluZyh2KTtcclxuICAgICAgICB0aGlzLmFwcGx5RmlsdGVyKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlJC5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAodikgPT4geyB0aGlzLmZpbHRlckNyaXRlcmlhU2VsZWN0aW9uTW9kZUNoYW5nZWQuZW1pdCh2KX1cclxuICAgIH0pXHJcblxyXG4gICAgaWYoIHRoaXMuZmlsdGVyVHlwZXMubGVuZ3RoID4gMCl7XHJcbiAgICAgIHRoaXMuYWN0aXZlRmlsdGVyVHlwZSA9IHRoaXMuZmlsdGVyVHlwZXNbMF07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsb2FkQ3VycmVudExheWVyRmlsdGVycyhwcm9qZWN0SWQgOiBzdHJpbmcsIGxheWVySWQgOiBzdHJpbmcpe1xyXG4gICAgaWYoIXRoaXMuYXBpKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZyb20odGhpcy5hcGkub2JqZWN0RmlsdGVycy5nZXQobGF5ZXJJZCxwcm9qZWN0SWQpKTtcclxuICB9XHJcblxyXG4gIHBhcnNlRmlsdGVyU3RyaW5nKGZpbHRlciA6IFdlYlNkay5PYmplY3RGaWx0ZXIpe1xyXG4gICAgY29uc3QgZmlsdGVyU3RyaW5nID0gbmV3IEZpbHRlclN0cmluZyhmaWx0ZXIuZmlsdGVyU3RyaW5nLCBNYXhGaWx0ZXJDcml0ZXJpYSk7XHJcbiAgICByZXR1cm4gZmlsdGVyU3RyaW5nLnRvRmlsdGVyQ3JpdGVyaWEoZmlsdGVyLnJlYWRhYmxlVmFsdWVzKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZUZpbHRlckNyaXRlcml1bShpbmRleDogbnVtYmVyKXtcclxuICAgIHRoaXMuZmlsdGVyQ3JpdGVyaWEuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIHRoaXMuZmlsdGVyQ3JpdGVyaWEgPSBbLi4udGhpcy5maWx0ZXJDcml0ZXJpYV07XHJcbiAgICB0aGlzLnJlc2V0QWN0aXZlRmlsdGVyKCk7XHJcbiAgfVxyXG5cclxuICBzZXRGaWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGUobW9kZSA6IEZpbHRlckNyaXRlcmlhU2VsZWN0aW9uTW9kZSl7XHJcbiAgICBpZih0aGlzLmZpbHRlckNyaXRlcmlhU2VsZWN0aW9uTW9kZSQuZ2V0VmFsdWUoKSA9PSBtb2RlKXtcclxuICAgICAgdGhpcy5maWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGUkLm5leHQoRmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlLk5vbmUpO1xyXG4gICAgICByZXR1cm47ICBcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZpbHRlckNyaXRlcmlhU2VsZWN0aW9uTW9kZSQubmV4dChtb2RlKTtcclxuICB9XHJcblxyXG4gIGFwcGx5RmlsdGVyKCl7XHJcbiAgICB0aGlzLmZpbHRlckNyaXRlcmlhU2VsZWN0aW9uTW9kZSQubmV4dChGaWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGUuTm9uZSk7XHJcbiAgICB0aGlzLl9maWx0ZXJSZXN1bHQgPSBudWxsO1xyXG5cclxuICAgIGlmKHRoaXMuc2VsZWN0aW9uT2JqZWN0KXtcclxuICAgICAgdGhpcy5fYXBwbHlTZWxlY3Rpb25PYmplY3RGaWx0ZXIodGhpcy5hY3RpdmVGaWx0ZXIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlRmlsdGVyUmVzdWx0U2VsZWN0aW9uQ2hhbmdlZChzZWxlY3Rpb24gOiBzdHJpbmdbXSl7XHJcbiAgICB0aGlzLmZpbHRlclJlc3VsdE9iamVjdFNlbGVjdGlvbkNoYW5nZWQuZW1pdChzZWxlY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRmlsdGVyUmVzdWxPYmplY3REb3VibGVDbGlja2VkKHNlbGVjdGlvbiA6IHN0cmluZyl7XHJcbiAgICB0aGlzLmZpbHRlclJlc3VsdE9iamVjdERvdWJsZUNsaWNrZWQuZW1pdChzZWxlY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgXHJcbiAgaGFuZGxlRmlsdGVyUmVzdWxPYmplY3RNb3VzZUVudGVyZWQoc2VsZWN0aW9uIDogc3RyaW5nKXtcclxuICAgIHRoaXMuZmlsdGVyUmVzdWx0T2JqZWN0TW91c2VFbnRlcmVkLmVtaXQoc2VsZWN0aW9uKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUZpbHRlclJlc3VsT2JqZWN0TW91c2VMZWZ0KHNlbGVjdGlvbiA6IHN0cmluZyl7XHJcbiAgICB0aGlzLmZpbHRlclJlc3VsdE9iamVjdE1vdXNlTGVmdC5lbWl0KHNlbGVjdGlvbik7XHJcbiAgfVxyXG5cclxuICByZXNldEFjdGl2ZUZpbHRlcigpe1xyXG4gICAgdGhpcy5hY3RpdmVGaWx0ZXIgPSBudWxsO1xyXG4gIH1cclxuICAvLyAjZW5kcmVnaW9uIHB1YmxpYyBtZXRob2RzXHJcblxyXG4gIC8vICNyZWdpb24gcHJpdmF0ZSBtZXRob2RzXHJcbiAgcHJpdmF0ZSBfYXBwbHlTZWxlY3Rpb25PYmplY3RGaWx0ZXIoYWN0aXZlRmlsdGVyIDogV2ViU2RrLk9iamVjdEZpbHRlciB8IG51bGwpe1xyXG5cclxuICAgIGlmKCF0aGlzLmFwaSB8fCAhdGhpcy5zZWxlY3Rpb25PYmplY3Qpe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZmlsdGVyIDogV2ViU2RrLk9iamVjdEZpbHRlciA9IGFjdGl2ZUZpbHRlciB8fCB7XHJcbiAgICAgIG1vZHVsZTogXCIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDBcIixcclxuICAgICAgY2F0ZWdvcnk6IFwiXCIsXHJcbiAgICAgIGRpc2NpcGxpbmVJRDogdGhpcy5hY3RpdmVGaWx0ZXJUeXBlPyB0aGlzLmFjdGl2ZUZpbHRlclR5cGUuaWQgOiBcIjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMFwiLFxyXG4gICAgICBuYW1lOiBcIkN1c3RvbSBGaWx0ZXJcIixcclxuICAgICAgZmlsdGVyU3RyaW5nOiAgbmV3IEZpbHRlclN0cmluZygpLmZyb21GaWx0ZXJDcml0ZXJpYSh0aGlzLmZpbHRlckNyaXRlcmlhKSxcclxuICAgICAgaXNEZWZhdWx0OiBmYWxzZSxcclxuICAgICAgZGlzYWJsZVNvcnRCeU1vZGVsczogZmFsc2VcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5zZWxlY3Rpb25PYmplY3Quc2luZ2xlVXNlID0gdHJ1ZTtcclxuICAgIHRoaXMuc2VsZWN0aW9uT2JqZWN0LnNlbGVjdGlvbi5zaW5nbGV1c2UgPSB0cnVlO1xyXG5cclxuICAgIEZpbHRlclN0cnVjdHVyZUZldGNoZXIuZmV0Y2hPYmplY3RGaWx0ZXJTdHJ1Y3R1cmVGcm9tU2VsZWN0aW9uKHRoaXMucHJvamVjdElkLCBmaWx0ZXIsIHRoaXMuc2VsZWN0aW9uT2JqZWN0LCB0aGlzLmFwaSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKGZpbHRlclJlc3VsdCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX2ZpbHRlclJlc3VsdCA9IGZpbHRlclJlc3VsdDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICk7XHJcbiAgfVxyXG4gIC8vICNlbmRyZWdpb24gcHJpdmF0ZSBtZXRob2RzXHJcblxyXG59XHJcbiIsIjxsaWItYmltcGx1cy1zaWRlbmF2LWRyYXdlci1jb250ZW50IFtoZWFkZXJdPVwiJ19PYmplY3QgbmF2aWdhdG9yJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm9iamVjdC1uYXZpZ2F0b3ItY29udGVudC1jb250YWluZXJcIj5cclxuICAgICAgICBAaWYoZmlsdGVyVHlwZXMubGVuZ3RoPjApe1xyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib2JqZWN0LW5hdmlnYXRvci1maWx0ZXJzLXR5cGVcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1zZWxlY3QgZGF0YS10ZXN0PVwib2JqZWN0LW5hdmlnYXRvci1maWx0ZXItdHlwZXMtZHJvcGRvd25cIiBjbGFzcz1cIm9iamVjdC1uYXZpZ2F0b3ItZHJvcGRvd25cIiBbKG5nTW9kZWwpXT1cImFjdGl2ZUZpbHRlclR5cGVcIiBbY2xlYXJhYmxlXT1cImZhbHNlXCIgW3NlYXJjaGFibGVdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctb3B0aW9uICpuZ0Zvcj1cImxldCB0eXBlIG9mIGZpbHRlclR5cGVzXCIgW3ZhbHVlXT1cInR5cGVcIj57e3R5cGUubmFtZX19PC9uZy1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8L25nLXNlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvYmplY3QtbmF2aWdhdG9yLWZpbHRlcnMtbmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLXNlbGVjdCBjbGFzcz1cIm9iamVjdC1uYXZpZ2F0b3ItZHJvcGRvd25cIiBbKG5nTW9kZWwpXT1cImFjdGl2ZUZpbHRlclwiICBbY2xlYXJhYmxlXT1cImZhbHNlXCIgW2Rpc2FibGVkXT1cIiFmaWx0ZXJzXCIgW3NlYXJjaGFibGVdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctb3B0aW9uICpuZ0Zvcj1cImxldCBmaWx0ZXIgb2YgZmlsdGVyc1wiIFt2YWx1ZV09XCJmaWx0ZXJcIj57e2ZpbHRlci5uYW1lfX08L25nLW9wdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvbmctc2VsZWN0PlxyXG5cclxuICAgICAgICAgICAgICAgIEBpZighaGlkZUZpbHRlckNvbnRleHRNZW51KXtcclxuICAgICAgICAgICAgICAgICAgICA8bGliLWJpbXBsdXMtY29udGV4dC1tZW51IGNsYXNzPVwib2JqZWN0LW5hdmlnYXRvci1maWx0ZXJzLW5hbWUtY29udGV4dC1tZW51XCJcclxuICAgICAgICAgICAgICAgICAgICBbaXRlbXNdPVwiZmlsdGVyQ29udGV4dE1lbnVcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZmlsdGVyQ29udGV4dE1lbnU/Lmxlbmd0aFwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8L2xpYi1iaW1wbHVzLWNvbnRleHQtbWVudT5cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGxpYi1leHBhbnNpb24tcGFuZWwgY2xhc3M9XCJvYmplY3QtbmF2aWdhdG9yLWZpbHRlci1jcml0ZXJpYS1wYW5lbFwiPlxyXG4gICAgICAgICAgICAgICAgPGxpYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwib2JqZWN0LW5hdmlnYXRvci1maWx0ZXItY3JpdGVyaWEtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7XCJfQXNzaWduX09iamVjdHNfU2VsZWN0aW9uX01vZGVcIiB8IHRyYW5zbGF0ZX19ICYjNDA7e3tmaWx0ZXJDcml0ZXJpYS5sZW5ndGh9fSYjNDE7XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaWItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1hY3Rpb25zPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib2JqZWN0LW5hdmlnYXRvci1waWNrLW9iamVjdC1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImZpbHRlckNyaXRlcmlhU2VsZWN0aW9uTW9kZSQuZ2V0VmFsdWUoKSA9PT0gRmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlLlNlbGVjdE9iamVjdFByb3BlcnRpZXM/ICdhY3RpdmUnIDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRGaWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGUoRmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlLlNlbGVjdE9iamVjdFByb3BlcnRpZXMpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib2JqZWN0LW5hdmlnYXRvci1zZWxlY3QtYXR0cmlidXRlcy1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImZpbHRlckNyaXRlcmlhU2VsZWN0aW9uTW9kZSQuZ2V0VmFsdWUoKSA9PT0gRmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlLlNlbGVjdEF0dHJpYnV0ZXM/ICdhY3RpdmUnIDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRGaWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGUoRmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlLlNlbGVjdEF0dHJpYnV0ZXMpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGliLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItYWN0aW9ucz5cclxuICAgICAgICAgICAgICAgIDwvbGliLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1jcml0ZXJpYS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgIEBmb3IgKGNyaXRlcml1bSBvZiBmaWx0ZXJDcml0ZXJpYTsgdHJhY2sgY3JpdGVyaXVtOyBsZXQgIGkgPSAkaW5kZXgpIHtcclxuICAgICAgICAgICAgICAgICAgICA8YXBwLWZpbHRlci1jcml0ZXJpdW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NyaXRlcml1bV0gPSBcImNyaXRlcml1bVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpbmRlbnRdPVwiaSowLjhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoZGVsZXRlQ3JpdGVyaXVtKT1cImRlbGV0ZUZpbHRlckNyaXRlcml1bShpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvYXBwLWZpbHRlci1jcml0ZXJpdW0+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9saWItZXhwYW5zaW9uLXBhbmVsPlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9iamVjdC1uYXZpZ2F0b3ItYXBwbHktYnV0dG9uLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInByaW1hcnktYnV0dG9uXCIgW25nQ2xhc3NdPVwiZmlsdGVyQ3JpdGVyaWEubGVuZ3RoPT09MCA/ICdkaXNhYmxlZCcgOiAnJ1wiIChjbGljayk9XCJhcHBseUZpbHRlcigpXCI+IHt7XCJfQXBwbHkgZmlsdGVyXCIgfCB0cmFuc2xhdGV9fSA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib2JqZWN0LW5hdmlnYXRvci1zZXBhcmF0b3JcIj48L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIEBzd2l0Y2goZmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlJC5nZXRWYWx1ZSgpKXtcclxuICAgICAgICAgICAgICAgIEBjYXNlKEZpbHRlckNyaXRlcmlhU2VsZWN0aW9uTW9kZS5TZWxlY3RPYmplY3RQcm9wZXJ0aWVzKXtcclxuICAgICAgICAgICAgICAgICAgICBAaWYoIXNlbGVjdGVkT2JqZWN0SWQpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBpZD1cIk5vT2JqZWN0U2VsZWN0ZWRcIj57eyBcIl9Ob09iamVjdFNlbGVjdGVkXCIgfCB0cmFuc2xhdGV9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICB9QGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBpXT1cImFwaVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRMYW5ndWFnZV09XCJzZWxlY3RlZExhbmd1YWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsb2NhbGl6ZWRTdHJpbmdzXT1cImxvY2FsaXplZFN0cmluZ3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhmaWx0ZXJDcml0ZXJpYSldPVwiZmlsdGVyQ3JpdGVyaWFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Jvb3RPYmplY3RJZF09XCJzZWxlY3RlZE9iamVjdElkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmaWx0ZXJDcml0ZXJpYUNoYW5nZSk9XCJyZXNldEFjdGl2ZUZpbHRlcigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbGliLWNyaXRlcmlhLXNlbGVjdC1vYmplY3QtcHJvcGVydGllcz5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBAY2FzZShGaWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGUuU2VsZWN0QXR0cmlidXRlcyl7XHJcblxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgQGRlZmF1bHR7XHJcbiAgICAgICAgICAgICAgICAgICAgQGlmIChmaWx0ZXJSZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1vYmplY3QtZmlsdGVyLXJlc3VsdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbHRlclJlc3VsdF09XCJmaWx0ZXJSZXN1bHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkT2JqZWN0c109XCJzZWxlY3RlZE9iamVjdHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgKG5vZGVTZWxlY3Rpb25DaGFuZ2VkKT1cImhhbmRsZUZpbHRlclJlc3VsdFNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAobm9kZURvdWJsZUNsaWNrZWQpPVwiaGFuZGxlRmlsdGVyUmVzdWxPYmplY3REb3VibGVDbGlja2VkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgKG5vZGVNb3VzZUVudGVyZWQpPVwiaGFuZGxlRmlsdGVyUmVzdWxPYmplY3RNb3VzZUVudGVyZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAobm9kZU1vdXNlTGVmdCk9XCJoYW5kbGVGaWx0ZXJSZXN1bE9iamVjdE1vdXNlTGVmdCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbGliLW9iamVjdC1maWx0ZXItcmVzdWx0PlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBAZWxzZSB7XHJcbiAgICAgICAgICAgIDxkaXYgZGF0YS10ZXN0PVwib2JqZWN0LW5hdmlnYXRvci1uby1maWx0ZXItdHlwZXMtbWVzc2FnZVwiIGNsYXNzPVwib2JqZWN0LW5hdmlnYXRvci1uby1maWx0ZXItdHlwZXNcIj4ge3tcIl9ObyB2aXNpYmxlIG1vZGVscyBmb3VuZFwiIHwgdHJhbnNsYXRlfX0gPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbjwvbGliLWJpbXBsdXMtc2lkZW5hdi1kcmF3ZXItY29udGVudD5cclxuIl19
|
|
216
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy1vYmplY3QtbmF2aWdhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaW1wbHVzLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2JpbXBsdXMtb2JqZWN0LW5hdmlnYXRvci9iaW1wbHVzLW9iamVjdC1uYXZpZ2F0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1vYmplY3QtbmF2aWdhdG9yL2JpbXBsdXMtb2JqZWN0LW5hdmlnYXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSwyQkFBMkIsRUFBK0IsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNuSSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUV2RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sNEVBQTRFLENBQUM7QUFDbEksT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDM0csT0FB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O3NCQURGLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUdpQyxnQkFBZ0I7c0JBQXRELFdBQVc7dUJBQUMsd0JBQXdCO2dCQUtyQyxrQ0FBa0M7c0JBRGpDLE1BQU07Z0JBSVAsZ0JBQWdCO3NCQURmLEtBQUs7Z0JBSU4sZUFBZTtzQkFEZCxLQUFLO2dCQUlOLGVBQWU7c0JBRGQsS0FBSztnQkFRTixrQ0FBa0M7c0JBRGpDLE1BQU07Z0JBSVAsK0JBQStCO3NCQUQ5QixNQUFNO2dCQUlQLDhCQUE4QjtzQkFEN0IsTUFBTTtnQkFJUCwyQkFBMkI7c0JBRDFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0ICogYXMgV2ViU2RrIGZyb20gJ2JpbXBsdXMtd2Vic2RrJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCAsZnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlLCBGaWx0ZXJDcml0ZXJpdW0sIEZpbHRlclR5cGUsIE1heEZpbHRlckNyaXRlcmlhIH0gZnJvbSAnLi9iaW1wbHVzLW9iamVjdC1uYXZpZ2F0b3IuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZpbHRlckNyaXRlcml1bUNvbXBvbmVudCB9IGZyb20gJy4vZmlsdGVyLWNyaXRlcml1bS9maWx0ZXItY3JpdGVyaXVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFeHBhbnNpb25QYW5lbENvbXBvbmVudCB9IGZyb20gJy4uL2V4cGFuc2lvbi1wYW5lbC9leHBhbnNpb24tcGFuZWwuY29tcG9uZW50JztcblxuaW1wb3J0IHsgTmdTZWxlY3RNb2R1bGUgfSBmcm9tICdAbmctc2VsZWN0L25nLXNlbGVjdCc7XG5pbXBvcnQgeyBCaW1wbHVzU2lkZW5hdkRyYXdlckNvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuLi9iaW1wbHVzLXNpZGVuYXYtZHJhd2VyLWNvbnRlbnQvYmltcGx1cy1zaWRlbmF2LWRyYXdlci1jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFeHBhbnNpb25QYW5lbEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4uL2V4cGFuc2lvbi1wYW5lbC1oZWFkZXIvZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRXhwYW5zaW9uUGFuZWxIZWFkZXJBY3Rpb25zQ29tcG9uZW50IH0gZnJvbSAnLi4vZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1hY3Rpb25zL2V4cGFuc2lvbi1wYW5lbC1oZWFkZXItYWN0aW9ucy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmltcGx1c0xvY2FsaXplZFdpZGdldENvbXBvbmVudCB9IGZyb20gJy4uL2JpbXBsdXMtbG9jYWxpemVkLXdpZGdldC9iaW1wbHVzLWxvY2FsaXplZC13aWRnZXQuY29tcG9uZW50JztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQ3JpdGVyaWFTZWxlY3RPYmplY3RQcm9wZXJ0aWVzQ29tcG9uZW50IH0gZnJvbSAnLi9jcml0ZXJpYS1zZWxlY3Qtb2JqZWN0LXByb3BlcnRpZXMvY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPYmplY3RGaWx0ZXJSZXN1bHRDb21wb25lbnQgfSBmcm9tICcuL29iamVjdC1maWx0ZXItcmVzdWx0L29iamVjdC1maWx0ZXItcmVzdWx0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCaW1wbHVzQ29udGV4dE1lbnVDb21wb25lbnQgfSBmcm9tICAnLi4vYmltcGx1cy1jb250ZXh0LW1lbnUvYmltcGx1cy1jb250ZXh0LW1lbnUuY29tcG9uZW50J1xuaW1wb3J0IHsgQmltcGx1c0NvbnRleHRNZW51SXRlbSB9IGZyb20gJy4uL2JpbXBsdXMtY29udGV4dC1tZW51L2JpbXBsdXMtY29udGV4dC1tZW51LmludGVyZmFjZSc7XG5pbXBvcnQgeyBGaWx0ZXJTdHJpbmcgfSBmcm9tICcuLi8uLi91dGlscy9maWx0ZXJTdHJpbmcnO1xuaW1wb3J0IHsgRmlsdGVyU3RydWN0dXJlRmV0Y2hlciB9IGZyb20gJy4uLy4uL3V0aWxzL2ZpbHRlclN0cnVjdHVyZUZldGNoZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItYmltcGx1cy1vYmplY3QtbmF2aWdhdG9yJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogWyBDb21tb25Nb2R1bGVcbiAgICAsIEZvcm1zTW9kdWxlXG4gICAgLCBOZ1NlbGVjdE1vZHVsZVxuICAgICwgRmlsdGVyQ3JpdGVyaXVtQ29tcG9uZW50XG4gICAgLCBFeHBhbnNpb25QYW5lbENvbXBvbmVudFxuICAgICwgRXhwYW5zaW9uUGFuZWxIZWFkZXJDb21wb25lbnRcbiAgICAsIEV4cGFuc2lvblBhbmVsSGVhZGVyQWN0aW9uc0NvbXBvbmVudFxuICAgICwgQmltcGx1c1NpZGVuYXZEcmF3ZXJDb250ZW50Q29tcG9uZW50XG4gICAgLCBUcmFuc2xhdGVNb2R1bGVcbiAgICAsIENyaXRlcmlhU2VsZWN0T2JqZWN0UHJvcGVydGllc0NvbXBvbmVudFxuICAgICwgQmltcGx1c0NvbnRleHRNZW51Q29tcG9uZW50XG4gICAgLCBPYmplY3RGaWx0ZXJSZXN1bHRDb21wb25lbnRcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2JpbXBsdXMtb2JqZWN0LW5hdmlnYXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9iaW1wbHVzLW9iamVjdC1uYXZpZ2F0b3IuY29tcG9uZW50Lmxlc3MnLCBcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uU2hhZG93RG9tXG59KVxuZXhwb3J0IGNsYXNzIEJpbXBsdXNPYmplY3ROYXZpZ2F0b3JDb21wb25lbnQgZXh0ZW5kcyBCaW1wbHVzTG9jYWxpemVkV2lkZ2V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBjb25zdHJ1Y3Rvcih0cmFuc2xhdGVTZXJ2aWNlOiAgVHJhbnNsYXRlU2VydmljZSl7XG4gICAgc3VwZXIodHJhbnNsYXRlU2VydmljZSkgIFxuICB9XG4gIFxuICAvLyAjcmVnaW9uIHB1YmxpYyBmaWVsZHNcblxuICBASW5wdXQoKVxuICBoaWRlRmlsdGVyQ29udGV4dE1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBmaWx0ZXJDb250ZXh0TWVudTogQXJyYXk8QmltcGx1c0NvbnRleHRNZW51SXRlbT4gPSBbXTtcblxuICBASW5wdXQoKVxuICBmaWx0ZXJUeXBlcyA6IEFycmF5PEZpbHRlclR5cGU+ID0gW107XG5cbiAgc2V0IGFjdGl2ZUZpbHRlclR5cGUodmFsdWUgOiBGaWx0ZXJUeXBlIHwgbnVsbCl7XG4gICAgdGhpcy5hY3RpdmVGaWx0ZXJUeXBlU3ViamVjdCQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBnZXQgYWN0aXZlRmlsdGVyVHlwZSgpIDogRmlsdGVyVHlwZSB8IG51bGx7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlRmlsdGVyVHlwZVN1YmplY3QkLmdldFZhbHVlKCk7XG4gIH1cblxuICBhY3RpdmVGaWx0ZXJUeXBlU3ViamVjdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZpbHRlclR5cGUgfCBudWxsPiAobnVsbCk7XG4gIGFjdGl2ZUZpbHRlclN1YmplY3QkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxXZWJTZGsuT2JqZWN0RmlsdGVyIHwgbnVsbD4gKG51bGwpO1xuXG4gIHNldCBhY3RpdmVGaWx0ZXIoZmlsdGVyIDogV2ViU2RrLk9iamVjdEZpbHRlciB8IG51bGwpe1xuICAgIHRoaXMuYWN0aXZlRmlsdGVyU3ViamVjdCQubmV4dChmaWx0ZXIpO1xuICB9XG5cbiAgZ2V0IGFjdGl2ZUZpbHRlcigpIDogV2ViU2RrLk9iamVjdEZpbHRlciB8IG51bGx7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlRmlsdGVyU3ViamVjdCQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGZpbHRlcnMgOiBXZWJTZGsuT2JqZWN0RmlsdGVyc1Jlc3BvbnNlIHwgbnVsbCA9IG51bGw7XG5cbiAgZmlsdGVyQ3JpdGVyaWEgOiBGaWx0ZXJDcml0ZXJpdW1bXSA9IFtdXG4gIFxuICBASW5wdXQoKVxuICBhcGkgOiBXZWJTZGsuQXBpIHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KClcbiAgcHJvamVjdElkIDogc3RyaW5nID0gJydcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm9iamVjdC1uYXZpZ2F0b3InKSBvYmpOYXZDbGFzc0NsYXNzOiBib29sZWFuID0gdHJ1ZTtcblxuICBmaWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGU+KEZpbHRlckNyaXRlcmlhU2VsZWN0aW9uTW9kZS5Ob25lKTtcblxuICBAT3V0cHV0KClcbiAgZmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlPigpO1xuXG4gIEBJbnB1dCgpXG4gIHNlbGVjdGVkT2JqZWN0SWQgOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBASW5wdXQoKVxuICBzZWxlY3RlZE9iamVjdHMgOiBzdHJpbmdbXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHNlbGVjdGlvbk9iamVjdCA6IFdlYlNkay5FeHBvcnRPYmplY3QgfCBudWxsID0gbnVsbDtcblxuICBnZXQgZmlsdGVyUmVzdWx0KCl7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlclJlc3VsdDtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBmaWx0ZXJSZXN1bHRPYmplY3RTZWxlY3Rpb25DaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4oKTtcblxuICBAT3V0cHV0KClcbiAgZmlsdGVyUmVzdWx0T2JqZWN0RG91YmxlQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIEBPdXRwdXQoKVxuICBmaWx0ZXJSZXN1bHRPYmplY3RNb3VzZUVudGVyZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBAT3V0cHV0KClcbiAgZmlsdGVyUmVzdWx0T2JqZWN0TW91c2VMZWZ0ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgRmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlID0gRmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlOyAvLyBFeHBvc2UgZW51bSB0byB0ZW1wbGF0ZVxuXG4gIC8vICNlbmRyZWdpb24gcHVibGljIGZpZWxkc1xuXG4gIC8vICNyZWdpb24gcHJpdmF0ZSBmaWVsZHNcbiAgcHJpdmF0ZSBfZmlsdGVyUmVzdWx0IDogV2ViU2RrLk9iamVjdEZpbHRlclN0cnVjdHVyZVJlc3BvbnNlIHwgbnVsbCA9IG51bGw7XG4gIC8vICNlbmRyZWdpb24gcHJpdmF0ZSBmaWVsZHNcblxuICAvLyAjcmVnaW9uIHB1YmxpYyBtZXRob2RzXG4gIG5nT25Jbml0KCkge1xuXG4gICAgdGhpcy5hY3RpdmVGaWx0ZXJUeXBlU3ViamVjdCQuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6ICh2KSA9PiB7XG4gICAgICAgIGlmKCF0aGlzLnByb2plY3RJZCB8fCAhdGhpcy5hcGkgfHwgIXYpe1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgdGhpcy5hY3RpdmVGaWx0ZXIgPSBudWxsO1xuXG4gICAgICAgIHRoaXMubG9hZEN1cnJlbnRMYXllckZpbHRlcnModGhpcy5wcm9qZWN0SWQsIHYuaWQpPy5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogKHZhbHVlKSA9PiB7IHRoaXMuZmlsdGVycyA9IHZhbHVlXG4gICAgICAgICAgICAgIFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVycm9yOiBlcnIgPT4ge3Rocm93IG5ldyBFcnJvciAoZXJyKX0sXG4gICAgICAgICAgfVxuICAgICAgICApfVxuICAgIH0pO1xuXG4gICAgdGhpcy5hY3RpdmVGaWx0ZXJTdWJqZWN0JC5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHYpID0+IHsgXG4gICAgICAgIGlmKCF2KVxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICBcbiAgICAgICAgdGhpcy5maWx0ZXJDcml0ZXJpYSA9IHRoaXMucGFyc2VGaWx0ZXJTdHJpbmcodik7XG4gICAgICAgIHRoaXMuYXBwbHlGaWx0ZXIoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuZmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlJC5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHYpID0+IHsgdGhpcy5maWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGVDaGFuZ2VkLmVtaXQodil9XG4gICAgfSlcblxuICAgIGlmKCB0aGlzLmZpbHRlclR5cGVzLmxlbmd0aCA+IDApe1xuICAgICAgdGhpcy5hY3RpdmVGaWx0ZXJUeXBlID0gdGhpcy5maWx0ZXJUeXBlc1swXTtcbiAgICB9XG4gIH1cblxuICBsb2FkQ3VycmVudExheWVyRmlsdGVycyhwcm9qZWN0SWQgOiBzdHJpbmcsIGxheWVySWQgOiBzdHJpbmcpe1xuICAgIGlmKCF0aGlzLmFwaSl7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHJldHVybiBmcm9tKHRoaXMuYXBpLm9iamVjdEZpbHRlcnMuZ2V0KGxheWVySWQscHJvamVjdElkKSk7XG4gIH1cblxuICBwYXJzZUZpbHRlclN0cmluZyhmaWx0ZXIgOiBXZWJTZGsuT2JqZWN0RmlsdGVyKXtcbiAgICBjb25zdCBmaWx0ZXJTdHJpbmcgPSBuZXcgRmlsdGVyU3RyaW5nKGZpbHRlci5maWx0ZXJTdHJpbmcsIE1heEZpbHRlckNyaXRlcmlhKTtcbiAgICByZXR1cm4gZmlsdGVyU3RyaW5nLnRvRmlsdGVyQ3JpdGVyaWEoZmlsdGVyLnJlYWRhYmxlVmFsdWVzKTtcbiAgfVxuXG4gIGRlbGV0ZUZpbHRlckNyaXRlcml1bShpbmRleDogbnVtYmVyKXtcbiAgICB0aGlzLmZpbHRlckNyaXRlcmlhLnNwbGljZShpbmRleCwgMSk7XG4gICAgdGhpcy5maWx0ZXJDcml0ZXJpYSA9IFsuLi50aGlzLmZpbHRlckNyaXRlcmlhXTtcbiAgICB0aGlzLnJlc2V0QWN0aXZlRmlsdGVyKCk7XG4gIH1cblxuICBzZXRGaWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGUobW9kZSA6IEZpbHRlckNyaXRlcmlhU2VsZWN0aW9uTW9kZSl7XG4gICAgaWYodGhpcy5maWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGUkLmdldFZhbHVlKCkgPT0gbW9kZSl7XG4gICAgICB0aGlzLmZpbHRlckNyaXRlcmlhU2VsZWN0aW9uTW9kZSQubmV4dChGaWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGUuTm9uZSk7XG4gICAgICByZXR1cm47ICBcbiAgICB9XG5cbiAgICB0aGlzLmZpbHRlckNyaXRlcmlhU2VsZWN0aW9uTW9kZSQubmV4dChtb2RlKTtcbiAgfVxuXG4gIGFwcGx5RmlsdGVyKCl7XG4gICAgdGhpcy5maWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGUkLm5leHQoRmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlLk5vbmUpO1xuICAgIHRoaXMuX2ZpbHRlclJlc3VsdCA9IG51bGw7XG5cbiAgICBpZih0aGlzLnNlbGVjdGlvbk9iamVjdCl7XG4gICAgICB0aGlzLl9hcHBseVNlbGVjdGlvbk9iamVjdEZpbHRlcih0aGlzLmFjdGl2ZUZpbHRlcik7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlRmlsdGVyUmVzdWx0U2VsZWN0aW9uQ2hhbmdlZChzZWxlY3Rpb24gOiBzdHJpbmdbXSl7XG4gICAgdGhpcy5maWx0ZXJSZXN1bHRPYmplY3RTZWxlY3Rpb25DaGFuZ2VkLmVtaXQoc2VsZWN0aW9uKTtcbiAgfVxuXG4gIGhhbmRsZUZpbHRlclJlc3VsT2JqZWN0RG91YmxlQ2xpY2tlZChzZWxlY3Rpb24gOiBzdHJpbmcpe1xuICAgIHRoaXMuZmlsdGVyUmVzdWx0T2JqZWN0RG91YmxlQ2xpY2tlZC5lbWl0KHNlbGVjdGlvbik7XG4gIH1cblxuICBcbiAgaGFuZGxlRmlsdGVyUmVzdWxPYmplY3RNb3VzZUVudGVyZWQoc2VsZWN0aW9uIDogc3RyaW5nKXtcbiAgICB0aGlzLmZpbHRlclJlc3VsdE9iamVjdE1vdXNlRW50ZXJlZC5lbWl0KHNlbGVjdGlvbik7XG4gIH1cblxuICBoYW5kbGVGaWx0ZXJSZXN1bE9iamVjdE1vdXNlTGVmdChzZWxlY3Rpb24gOiBzdHJpbmcpe1xuICAgIHRoaXMuZmlsdGVyUmVzdWx0T2JqZWN0TW91c2VMZWZ0LmVtaXQoc2VsZWN0aW9uKTtcbiAgfVxuXG4gIHJlc2V0QWN0aXZlRmlsdGVyKCl7XG4gICAgdGhpcy5hY3RpdmVGaWx0ZXIgPSBudWxsO1xuICB9XG4gIC8vICNlbmRyZWdpb24gcHVibGljIG1ldGhvZHNcblxuICAvLyAjcmVnaW9uIHByaXZhdGUgbWV0aG9kc1xuICBwcml2YXRlIF9hcHBseVNlbGVjdGlvbk9iamVjdEZpbHRlcihhY3RpdmVGaWx0ZXIgOiBXZWJTZGsuT2JqZWN0RmlsdGVyIHwgbnVsbCl7XG5cbiAgICBpZighdGhpcy5hcGkgfHwgIXRoaXMuc2VsZWN0aW9uT2JqZWN0KXtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBmaWx0ZXIgOiBXZWJTZGsuT2JqZWN0RmlsdGVyID0gYWN0aXZlRmlsdGVyIHx8IHtcbiAgICAgIG1vZHVsZTogXCIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDBcIixcbiAgICAgIGNhdGVnb3J5OiBcIlwiLFxuICAgICAgZGlzY2lwbGluZUlEOiB0aGlzLmFjdGl2ZUZpbHRlclR5cGU/IHRoaXMuYWN0aXZlRmlsdGVyVHlwZS5pZCA6IFwiMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwXCIsXG4gICAgICBuYW1lOiBcIkN1c3RvbSBGaWx0ZXJcIixcbiAgICAgIGZpbHRlclN0cmluZzogIG5ldyBGaWx0ZXJTdHJpbmcoKS5mcm9tRmlsdGVyQ3JpdGVyaWEodGhpcy5maWx0ZXJDcml0ZXJpYSksXG4gICAgICBpc0RlZmF1bHQ6IGZhbHNlLFxuICAgICAgZGlzYWJsZVNvcnRCeU1vZGVsczogZmFsc2VcbiAgICB9O1xuXG4gICAgdGhpcy5zZWxlY3Rpb25PYmplY3Quc2luZ2xlVXNlID0gdHJ1ZTtcbiAgICB0aGlzLnNlbGVjdGlvbk9iamVjdC5zZWxlY3Rpb24uc2luZ2xldXNlID0gdHJ1ZTtcblxuICAgIEZpbHRlclN0cnVjdHVyZUZldGNoZXIuZmV0Y2hPYmplY3RGaWx0ZXJTdHJ1Y3R1cmVGcm9tU2VsZWN0aW9uKHRoaXMucHJvamVjdElkLCBmaWx0ZXIsIHRoaXMuc2VsZWN0aW9uT2JqZWN0LCB0aGlzLmFwaSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChmaWx0ZXJSZXN1bHQpID0+IHtcbiAgICAgICAgdGhpcy5fZmlsdGVyUmVzdWx0ID0gZmlsdGVyUmVzdWx0O1xuICAgICAgfVxuICAgIH1cbiAgKTtcbiAgfVxuICAvLyAjZW5kcmVnaW9uIHByaXZhdGUgbWV0aG9kc1xuXG59XG4iLCI8bGliLWJpbXBsdXMtc2lkZW5hdi1kcmF3ZXItY29udGVudCBbaGVhZGVyXT1cIidfT2JqZWN0IG5hdmlnYXRvcicgfCB0cmFuc2xhdGVcIj5cbiAgICA8ZGl2IGNsYXNzPVwib2JqZWN0LW5hdmlnYXRvci1jb250ZW50LWNvbnRhaW5lclwiPlxuICAgICAgICBAaWYoZmlsdGVyVHlwZXMubGVuZ3RoPjApe1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9iamVjdC1uYXZpZ2F0b3ItZmlsdGVycy10eXBlXCI+XG4gICAgICAgICAgICAgICAgPG5nLXNlbGVjdCBkYXRhLXRlc3Q9XCJvYmplY3QtbmF2aWdhdG9yLWZpbHRlci10eXBlcy1kcm9wZG93blwiIGNsYXNzPVwib2JqZWN0LW5hdmlnYXRvci1kcm9wZG93blwiIFsobmdNb2RlbCldPVwiYWN0aXZlRmlsdGVyVHlwZVwiIFtjbGVhcmFibGVdPVwiZmFsc2VcIiBbc2VhcmNoYWJsZV09XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctb3B0aW9uICpuZ0Zvcj1cImxldCB0eXBlIG9mIGZpbHRlclR5cGVzXCIgW3ZhbHVlXT1cInR5cGVcIj57e3R5cGUubmFtZX19PC9uZy1vcHRpb24+XG4gICAgICAgICAgICAgICAgPC9uZy1zZWxlY3Q+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvYmplY3QtbmF2aWdhdG9yLWZpbHRlcnMtbmFtZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1zZWxlY3QgY2xhc3M9XCJvYmplY3QtbmF2aWdhdG9yLWRyb3Bkb3duXCIgWyhuZ01vZGVsKV09XCJhY3RpdmVGaWx0ZXJcIiAgW2NsZWFyYWJsZV09XCJmYWxzZVwiIFtkaXNhYmxlZF09XCIhZmlsdGVyc1wiIFtzZWFyY2hhYmxlXT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1vcHRpb24gKm5nRm9yPVwibGV0IGZpbHRlciBvZiBmaWx0ZXJzXCIgW3ZhbHVlXT1cImZpbHRlclwiPnt7ZmlsdGVyLm5hbWV9fTwvbmctb3B0aW9uPlxuICAgICAgICAgICAgICAgIDwvbmctc2VsZWN0PlxuXG4gICAgICAgICAgICAgICAgQGlmKCFoaWRlRmlsdGVyQ29udGV4dE1lbnUpe1xuICAgICAgICAgICAgICAgICAgICA8bGliLWJpbXBsdXMtY29udGV4dC1tZW51IGNsYXNzPVwib2JqZWN0LW5hdmlnYXRvci1maWx0ZXJzLW5hbWUtY29udGV4dC1tZW51XCJcbiAgICAgICAgICAgICAgICAgICAgW2l0ZW1zXT1cImZpbHRlckNvbnRleHRNZW51XCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJmaWx0ZXJDb250ZXh0TWVudT8ubGVuZ3RoXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9saWItYmltcGx1cy1jb250ZXh0LW1lbnU+XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGxpYi1leHBhbnNpb24tcGFuZWwgY2xhc3M9XCJvYmplY3QtbmF2aWdhdG9yLWZpbHRlci1jcml0ZXJpYS1wYW5lbFwiPlxuICAgICAgICAgICAgICAgIDxsaWItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvYmplY3QtbmF2aWdhdG9yLWZpbHRlci1jcml0ZXJpYS1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7XCJfQXNzaWduX09iamVjdHNfU2VsZWN0aW9uX01vZGVcIiB8IHRyYW5zbGF0ZX19ICYjNDA7e3tmaWx0ZXJDcml0ZXJpYS5sZW5ndGh9fSYjNDE7XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGxpYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWFjdGlvbnM+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib2JqZWN0LW5hdmlnYXRvci1waWNrLW9iamVjdC1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJmaWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGUkLmdldFZhbHVlKCkgPT09IEZpbHRlckNyaXRlcmlhU2VsZWN0aW9uTW9kZS5TZWxlY3RPYmplY3RQcm9wZXJ0aWVzPyAnYWN0aXZlJyA6ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldEZpbHRlckNyaXRlcmlhU2VsZWN0aW9uTW9kZShGaWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGUuU2VsZWN0T2JqZWN0UHJvcGVydGllcylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBDb21tZW50ZWQgdW50aWwgZnVuY3Rpb25hbGl0eSB3aWxsIGJlIGltcGxlbWVudGVkXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib2JqZWN0LW5hdmlnYXRvci1zZWxlY3QtYXR0cmlidXRlcy1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJmaWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGUkLmdldFZhbHVlKCkgPT09IEZpbHRlckNyaXRlcmlhU2VsZWN0aW9uTW9kZS5TZWxlY3RBdHRyaWJ1dGVzPyAnYWN0aXZlJyA6ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldEZpbHRlckNyaXRlcmlhU2VsZWN0aW9uTW9kZShGaWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGUuU2VsZWN0QXR0cmlidXRlcylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGl2Pi0tPlxuICAgICAgICAgICAgICAgICAgICA8L2xpYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWFjdGlvbnM+XG4gICAgICAgICAgICAgICAgPC9saWItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItY3JpdGVyaWEtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgQGZvciAoY3JpdGVyaXVtIG9mIGZpbHRlckNyaXRlcmlhOyB0cmFjayBjcml0ZXJpdW07IGxldCAgaSA9ICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICA8YXBwLWZpbHRlci1jcml0ZXJpdW1cbiAgICAgICAgICAgICAgICAgICAgICAgIFtjcml0ZXJpdW1dID0gXCJjcml0ZXJpdW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2luZGVudF09XCJpKjAuOFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoZGVsZXRlQ3JpdGVyaXVtKT1cImRlbGV0ZUZpbHRlckNyaXRlcml1bShpKVwiXG4gICAgICAgICAgICAgICAgICAgID48L2FwcC1maWx0ZXItY3JpdGVyaXVtPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbGliLWV4cGFuc2lvbi1wYW5lbD5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9iamVjdC1uYXZpZ2F0b3ItYXBwbHktYnV0dG9uLXJvd1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJwcmltYXJ5LWJ1dHRvblwiIFtuZ0NsYXNzXT1cImZpbHRlckNyaXRlcmlhLmxlbmd0aD09PTAgPyAnZGlzYWJsZWQnIDogJydcIiAoY2xpY2spPVwiYXBwbHlGaWx0ZXIoKVwiPiB7e1wiX0FwcGx5IGZpbHRlclwiIHwgdHJhbnNsYXRlfX0gPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9iamVjdC1uYXZpZ2F0b3Itc2VwYXJhdG9yXCI+PC9kaXY+XG5cbiAgICAgICAgICAgIEBzd2l0Y2goZmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlJC5nZXRWYWx1ZSgpKXtcbiAgICAgICAgICAgICAgICBAY2FzZShGaWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGUuU2VsZWN0T2JqZWN0UHJvcGVydGllcyl7XG4gICAgICAgICAgICAgICAgICAgIEBpZighc2VsZWN0ZWRPYmplY3RJZCl7XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBpZD1cIk5vT2JqZWN0U2VsZWN0ZWRcIj57eyBcIl9Ob09iamVjdFNlbGVjdGVkXCIgfCB0cmFuc2xhdGV9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgfUBlbHNle1xuICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1jcml0ZXJpYS1zZWxlY3Qtb2JqZWN0LXByb3BlcnRpZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBpXT1cImFwaVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkTGFuZ3VhZ2VdPVwic2VsZWN0ZWRMYW5ndWFnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xvY2FsaXplZFN0cmluZ3NdPVwibG9jYWxpemVkU3RyaW5nc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhmaWx0ZXJDcml0ZXJpYSldPVwiZmlsdGVyQ3JpdGVyaWFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb290T2JqZWN0SWRdPVwic2VsZWN0ZWRPYmplY3RJZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZpbHRlckNyaXRlcmlhQ2hhbmdlKT1cInJlc2V0QWN0aXZlRmlsdGVyKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbGliLWNyaXRlcmlhLXNlbGVjdC1vYmplY3QtcHJvcGVydGllcz5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAY2FzZShGaWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGUuU2VsZWN0QXR0cmlidXRlcyl7XG5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGRlZmF1bHR7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoZmlsdGVyUmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGliLW9iamVjdC1maWx0ZXItcmVzdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbHRlclJlc3VsdF09XCJmaWx0ZXJSZXN1bHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZE9iamVjdHNdPVwic2VsZWN0ZWRPYmplY3RzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAobm9kZVNlbGVjdGlvbkNoYW5nZWQpPVwiaGFuZGxlRmlsdGVyUmVzdWx0U2VsZWN0aW9uQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAobm9kZURvdWJsZUNsaWNrZWQpPVwiaGFuZGxlRmlsdGVyUmVzdWxPYmplY3REb3VibGVDbGlja2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIChub2RlTW91c2VFbnRlcmVkKT1cImhhbmRsZUZpbHRlclJlc3VsT2JqZWN0TW91c2VFbnRlcmVkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIChub2RlTW91c2VMZWZ0KT1cImhhbmRsZUZpbHRlclJlc3VsT2JqZWN0TW91c2VMZWZ0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbGliLW9iamVjdC1maWx0ZXItcmVzdWx0PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgIDxkaXYgZGF0YS10ZXN0PVwib2JqZWN0LW5hdmlnYXRvci1uby1maWx0ZXItdHlwZXMtbWVzc2FnZVwiIGNsYXNzPVwib2JqZWN0LW5hdmlnYXRvci1uby1maWx0ZXItdHlwZXNcIj4ge3tcIl9ObyB2aXNpYmxlIG1vZGVscyBmb3VuZFwiIHwgdHJhbnNsYXRlfX0gPC9kaXY+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbjwvbGliLWJpbXBsdXMtc2lkZW5hdi1kcmF3ZXItY29udGVudD5cbiJdfQ==
|
|
@@ -213,11 +213,11 @@ export class CriteriaSelectObjectPropertiesComponent extends BimplusLocalizedWid
|
|
|
213
213
|
});
|
|
214
214
|
}
|
|
215
215
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CriteriaSelectObjectPropertiesComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
216
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.10", type: CriteriaSelectObjectPropertiesComponent, isStandalone: true, selector: "lib-criteria-select-object-properties", inputs: { api: "api", rootObjectId: "rootObjectId", revision: "revision", filterCriteria: "filterCriteria" }, outputs: { filterCriteriaChange: "filterCriteriaChange" }, usesInheritance: true, ngImport: i0, template: "<!-- Object structure-->\r\n<lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-header\"> {{\"_Object structure\" | translate}}</span>\r\n </lib-expansion-panel-header>\r\n @if(objectStructure){\r\n <lib-bimplus-object-structure\r\n [objectStructure]=\"objectStructure\"\r\n (nodeSelected)=\"handleObjectStructureNodeSelected($event)\"\r\n >\r\n </lib-bimplus-object-structure> \r\n }\r\n</lib-expansion-panel>\r\n<!-- End Object structure-->\r\n\r\n<!-- Complex properties-->\r\n@if(complexProperties){ \r\n<lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-header\"> {{\"_Object multiproperties tree\" | translate}}</span>\r\n </lib-expansion-panel-header>\r\n <lib-bimplus-object-complex-properties\r\n [complexProperties]=\"complexProperties\"\r\n (nodeSelected)=\"handleComplexPropertyNodeSelected($event)\"\r\n >\r\n </lib-bimplus-object-complex-properties> \r\n</lib-expansion-panel>\r\n}\r\n<!-- End Complex properties-->\r\n\r\n<!-- Properties list-->\r\n@if(objectAttributeGroups.length > 0){ \r\n<lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-header\"> {{\"_Object properties\" | translate}}</span>\r\n </lib-expansion-panel-header>\r\n\r\n @for (attribGroup of objectAttributeGroups; track attribGroup) {\r\n <lib-expansion-panel [expanded]=\"attribGroup.expanded\">\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-group-header\"> {{attribGroup.name}}</span>\r\n </lib-expansion-panel-header>\r\n <div>\r\n @for (attrib of attribGroup.attributes; track attrib) {\r\n <div class=\"criteria-select-object-properties-attrib-row\">\r\n <div class=\"criteria-select-object-properties-attrib-row-content\">\r\n <div class=\"criteria-select-object-properties-attrib-row-cell criteria-select-checkbox\">\r\n <label class=\"criteria-select-object-properties-attrib-row-cell-label\">\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"attrib.checked\"\r\n [disabled]=\"filterCriteria.length === MaxFilterCriteria && !attrib.checked\"\r\n (click)=\"toggleAttribute(attrib)\"\r\n >\r\n <span></span>\r\n </label>\r\n <div class=\"criteria-select-object-properties-attrib-row-cell-text\">{{attrib.name}}</div>\r\n </div>\r\n <div class=\"criteria-select-object-properties-attrib-row-cell criteria-select-checkbox\">\r\n <label class=\"criteria-select-object-properties-attrib-row-cell-label\">\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"attrib.valueChecked\"\r\n [disabled]=\"filterCriteria.length === MaxFilterCriteria && !attrib.checked\"\r\n (click)=\"toggleAttributeValue(attrib)\"\r\n >\r\n <span></span>\r\n </label>\r\n @if(attrib.value){\r\n <div class=\"criteria-select-object-properties-attrib-row-cell-text\">{{attrib.value}}</div>\r\n }@else {\r\n <div class=\"criteria-select-object-properties-attrib-row-cell-text\">...</div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </lib-expansion-panel> \r\n }\r\n</lib-expansion-panel>\r\n}\r\n<!-- End Properties list-->\r\n", styles: [".criteria-select-object-properties-header{font-weight:700;text-transform:uppercase;font-size:1.4rem}.criteria-select-object-properties-group-header{line-height:2.4rem}.criteria-select-object-properties-attrib-row{display:flex;width:calc(100% - 2rem);flex-direction:row;flex-wrap:nowrap;overflow:hidden;padding-left:2rem}.criteria-select-object-properties-attrib-row:hover{background-color:#f5f5f5}.criteria-select-object-properties-attrib-row-content{display:inline-flex;width:100%}.criteria-select-object-properties-attrib-row-cell{flex-basis:50%;display:flex;overflow:hidden;text-overflow:ellipsis}.criteria-select-object-properties-attrib-row-cell-label{display:inline-flex}.criteria-select-object-properties-attrib-row-cell-text{overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}.criteria-select-checkbox input{display:none}.criteria-select-checkbox input:checked+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%
|
|
216
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.10", type: CriteriaSelectObjectPropertiesComponent, isStandalone: true, selector: "lib-criteria-select-object-properties", inputs: { api: "api", rootObjectId: "rootObjectId", revision: "revision", filterCriteria: "filterCriteria" }, outputs: { filterCriteriaChange: "filterCriteriaChange" }, usesInheritance: true, ngImport: i0, template: "<!-- Object structure-->\r\n<lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-header\"> {{\"_Object structure\" | translate}}</span>\r\n </lib-expansion-panel-header>\r\n @if(objectStructure){\r\n <lib-bimplus-object-structure\r\n [objectStructure]=\"objectStructure\"\r\n (nodeSelected)=\"handleObjectStructureNodeSelected($event)\"\r\n >\r\n </lib-bimplus-object-structure> \r\n }\r\n</lib-expansion-panel>\r\n<!-- End Object structure-->\r\n\r\n<!-- Complex properties-->\r\n@if(complexProperties){ \r\n<lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-header\"> {{\"_Object multiproperties tree\" | translate}}</span>\r\n </lib-expansion-panel-header>\r\n <lib-bimplus-object-complex-properties\r\n [complexProperties]=\"complexProperties\"\r\n (nodeSelected)=\"handleComplexPropertyNodeSelected($event)\"\r\n >\r\n </lib-bimplus-object-complex-properties> \r\n</lib-expansion-panel>\r\n}\r\n<!-- End Complex properties-->\r\n\r\n<!-- Properties list-->\r\n@if(objectAttributeGroups.length > 0){ \r\n<lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-header\"> {{\"_Object properties\" | translate}}</span>\r\n </lib-expansion-panel-header>\r\n\r\n @for (attribGroup of objectAttributeGroups; track attribGroup) {\r\n <lib-expansion-panel [expanded]=\"attribGroup.expanded\">\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-group-header\"> {{attribGroup.name}}</span>\r\n </lib-expansion-panel-header>\r\n <div>\r\n @for (attrib of attribGroup.attributes; track attrib) {\r\n <div class=\"criteria-select-object-properties-attrib-row\">\r\n <div class=\"criteria-select-object-properties-attrib-row-content\">\r\n <div class=\"criteria-select-object-properties-attrib-row-cell criteria-select-checkbox\">\r\n <label class=\"criteria-select-object-properties-attrib-row-cell-label\">\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"attrib.checked\"\r\n [disabled]=\"filterCriteria.length === MaxFilterCriteria && !attrib.checked\"\r\n (click)=\"toggleAttribute(attrib)\"\r\n >\r\n <span></span>\r\n </label>\r\n <div class=\"criteria-select-object-properties-attrib-row-cell-text\">{{attrib.name}}</div>\r\n </div>\r\n <div class=\"criteria-select-object-properties-attrib-row-cell criteria-select-checkbox\">\r\n <label class=\"criteria-select-object-properties-attrib-row-cell-label\">\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"attrib.valueChecked\"\r\n [disabled]=\"filterCriteria.length === MaxFilterCriteria && !attrib.checked\"\r\n (click)=\"toggleAttributeValue(attrib)\"\r\n >\r\n <span></span>\r\n </label>\r\n @if(attrib.value){\r\n <div class=\"criteria-select-object-properties-attrib-row-cell-text\">{{attrib.value}}</div>\r\n }@else {\r\n <div class=\"criteria-select-object-properties-attrib-row-cell-text\">...</div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </lib-expansion-panel> \r\n }\r\n</lib-expansion-panel>\r\n}\r\n<!-- End Properties list-->\r\n", styles: [".criteria-select-object-properties-header{font-weight:700;text-transform:uppercase;font-size:1.4rem}.criteria-select-object-properties-group-header{line-height:2.4rem}.criteria-select-object-properties-attrib-row{display:flex;width:calc(100% - 2rem);flex-direction:row;flex-wrap:nowrap;overflow:hidden;padding-left:2rem}.criteria-select-object-properties-attrib-row:hover{background-color:#f5f5f5}.criteria-select-object-properties-attrib-row-content{display:inline-flex;width:100%}.criteria-select-object-properties-attrib-row-cell{flex-basis:50%;display:flex;overflow:hidden;text-overflow:ellipsis}.criteria-select-object-properties-attrib-row-cell-label{display:inline-flex}.criteria-select-object-properties-attrib-row-cell-text{overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}.criteria-select-checkbox input{display:none}.criteria-select-checkbox input:checked+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0A<rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" fill=\"%23fe5000\"/>%0A<path d=\"M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z\" fill=\"white\"/>%0A</svg>%0A')}.criteria-select-checkbox input:checked+span:hover{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0A<rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" fill=\"%23fe5000\"/>%0A<path d=\"M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z\" fill=\"white\"/>%0A</svg>%0A')}.criteria-select-checkbox input:checked:disabled+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0A<rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" fill=\"%23D3D3D3\"/>%0A<path d=\"M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z\" fill=\"white\"/>%0A</svg>%0A')}.criteria-select-checkbox input:disabled+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0A<rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" fill=\"white\" stroke=\"%23D3D3D3\"/>%0A</svg>%0A')}.criteria-select-checkbox span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0A<rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" fill=\"white\" stroke=\"%238D8D8D\"/>%0A</svg>%0A');width:1.8rem;height:1.8rem;margin-top:.1rem;vertical-align:middle;border:0;background-color:transparent;background-position:-.3rem center;background-size:100% 100%;background-repeat:no-repeat}.criteria-select-checkbox span:hover{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0A<rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" fill=\"%23F5F5F5\" stroke=\"%238D8D8D\"/>%0A</svg>%0A')}\n"], dependencies: [{ kind: "component", type: ExpansionPanelHeaderComponent, selector: "lib-expansion-panel-header" }, { kind: "component", type: ExpansionPanelComponent, selector: "lib-expansion-panel", inputs: ["expanded"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: BimplusObjectStructureComponent, selector: "lib-bimplus-object-structure", inputs: ["objectStructure"], outputs: ["nodeSelected"] }, { kind: "component", type: BimplusObjectComplexPropertiesComponent, selector: "lib-bimplus-object-complex-properties", inputs: ["complexProperties"], outputs: ["nodeSelected"] }] }); }
|
|
217
217
|
}
|
|
218
218
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CriteriaSelectObjectPropertiesComponent, decorators: [{
|
|
219
219
|
type: Component,
|
|
220
|
-
args: [{ selector: 'lib-criteria-select-object-properties', standalone: true, imports: [ExpansionPanelHeaderComponent, ExpansionPanelComponent, TranslateModule, BimplusObjectStructureComponent, BimplusObjectComplexPropertiesComponent], template: "<!-- Object structure-->\r\n<lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-header\"> {{\"_Object structure\" | translate}}</span>\r\n </lib-expansion-panel-header>\r\n @if(objectStructure){\r\n <lib-bimplus-object-structure\r\n [objectStructure]=\"objectStructure\"\r\n (nodeSelected)=\"handleObjectStructureNodeSelected($event)\"\r\n >\r\n </lib-bimplus-object-structure> \r\n }\r\n</lib-expansion-panel>\r\n<!-- End Object structure-->\r\n\r\n<!-- Complex properties-->\r\n@if(complexProperties){ \r\n<lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-header\"> {{\"_Object multiproperties tree\" | translate}}</span>\r\n </lib-expansion-panel-header>\r\n <lib-bimplus-object-complex-properties\r\n [complexProperties]=\"complexProperties\"\r\n (nodeSelected)=\"handleComplexPropertyNodeSelected($event)\"\r\n >\r\n </lib-bimplus-object-complex-properties> \r\n</lib-expansion-panel>\r\n}\r\n<!-- End Complex properties-->\r\n\r\n<!-- Properties list-->\r\n@if(objectAttributeGroups.length > 0){ \r\n<lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-header\"> {{\"_Object properties\" | translate}}</span>\r\n </lib-expansion-panel-header>\r\n\r\n @for (attribGroup of objectAttributeGroups; track attribGroup) {\r\n <lib-expansion-panel [expanded]=\"attribGroup.expanded\">\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-group-header\"> {{attribGroup.name}}</span>\r\n </lib-expansion-panel-header>\r\n <div>\r\n @for (attrib of attribGroup.attributes; track attrib) {\r\n <div class=\"criteria-select-object-properties-attrib-row\">\r\n <div class=\"criteria-select-object-properties-attrib-row-content\">\r\n <div class=\"criteria-select-object-properties-attrib-row-cell criteria-select-checkbox\">\r\n <label class=\"criteria-select-object-properties-attrib-row-cell-label\">\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"attrib.checked\"\r\n [disabled]=\"filterCriteria.length === MaxFilterCriteria && !attrib.checked\"\r\n (click)=\"toggleAttribute(attrib)\"\r\n >\r\n <span></span>\r\n </label>\r\n <div class=\"criteria-select-object-properties-attrib-row-cell-text\">{{attrib.name}}</div>\r\n </div>\r\n <div class=\"criteria-select-object-properties-attrib-row-cell criteria-select-checkbox\">\r\n <label class=\"criteria-select-object-properties-attrib-row-cell-label\">\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"attrib.valueChecked\"\r\n [disabled]=\"filterCriteria.length === MaxFilterCriteria && !attrib.checked\"\r\n (click)=\"toggleAttributeValue(attrib)\"\r\n >\r\n <span></span>\r\n </label>\r\n @if(attrib.value){\r\n <div class=\"criteria-select-object-properties-attrib-row-cell-text\">{{attrib.value}}</div>\r\n }@else {\r\n <div class=\"criteria-select-object-properties-attrib-row-cell-text\">...</div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </lib-expansion-panel> \r\n }\r\n</lib-expansion-panel>\r\n}\r\n<!-- End Properties list-->\r\n", styles: [".criteria-select-object-properties-header{font-weight:700;text-transform:uppercase;font-size:1.4rem}.criteria-select-object-properties-group-header{line-height:2.4rem}.criteria-select-object-properties-attrib-row{display:flex;width:calc(100% - 2rem);flex-direction:row;flex-wrap:nowrap;overflow:hidden;padding-left:2rem}.criteria-select-object-properties-attrib-row:hover{background-color:#f5f5f5}.criteria-select-object-properties-attrib-row-content{display:inline-flex;width:100%}.criteria-select-object-properties-attrib-row-cell{flex-basis:50%;display:flex;overflow:hidden;text-overflow:ellipsis}.criteria-select-object-properties-attrib-row-cell-label{display:inline-flex}.criteria-select-object-properties-attrib-row-cell-text{overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}.criteria-select-checkbox input{display:none}.criteria-select-checkbox input:checked+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%
|
|
220
|
+
args: [{ selector: 'lib-criteria-select-object-properties', standalone: true, imports: [ExpansionPanelHeaderComponent, ExpansionPanelComponent, TranslateModule, BimplusObjectStructureComponent, BimplusObjectComplexPropertiesComponent], template: "<!-- Object structure-->\r\n<lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-header\"> {{\"_Object structure\" | translate}}</span>\r\n </lib-expansion-panel-header>\r\n @if(objectStructure){\r\n <lib-bimplus-object-structure\r\n [objectStructure]=\"objectStructure\"\r\n (nodeSelected)=\"handleObjectStructureNodeSelected($event)\"\r\n >\r\n </lib-bimplus-object-structure> \r\n }\r\n</lib-expansion-panel>\r\n<!-- End Object structure-->\r\n\r\n<!-- Complex properties-->\r\n@if(complexProperties){ \r\n<lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-header\"> {{\"_Object multiproperties tree\" | translate}}</span>\r\n </lib-expansion-panel-header>\r\n <lib-bimplus-object-complex-properties\r\n [complexProperties]=\"complexProperties\"\r\n (nodeSelected)=\"handleComplexPropertyNodeSelected($event)\"\r\n >\r\n </lib-bimplus-object-complex-properties> \r\n</lib-expansion-panel>\r\n}\r\n<!-- End Complex properties-->\r\n\r\n<!-- Properties list-->\r\n@if(objectAttributeGroups.length > 0){ \r\n<lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-header\"> {{\"_Object properties\" | translate}}</span>\r\n </lib-expansion-panel-header>\r\n\r\n @for (attribGroup of objectAttributeGroups; track attribGroup) {\r\n <lib-expansion-panel [expanded]=\"attribGroup.expanded\">\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-group-header\"> {{attribGroup.name}}</span>\r\n </lib-expansion-panel-header>\r\n <div>\r\n @for (attrib of attribGroup.attributes; track attrib) {\r\n <div class=\"criteria-select-object-properties-attrib-row\">\r\n <div class=\"criteria-select-object-properties-attrib-row-content\">\r\n <div class=\"criteria-select-object-properties-attrib-row-cell criteria-select-checkbox\">\r\n <label class=\"criteria-select-object-properties-attrib-row-cell-label\">\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"attrib.checked\"\r\n [disabled]=\"filterCriteria.length === MaxFilterCriteria && !attrib.checked\"\r\n (click)=\"toggleAttribute(attrib)\"\r\n >\r\n <span></span>\r\n </label>\r\n <div class=\"criteria-select-object-properties-attrib-row-cell-text\">{{attrib.name}}</div>\r\n </div>\r\n <div class=\"criteria-select-object-properties-attrib-row-cell criteria-select-checkbox\">\r\n <label class=\"criteria-select-object-properties-attrib-row-cell-label\">\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"attrib.valueChecked\"\r\n [disabled]=\"filterCriteria.length === MaxFilterCriteria && !attrib.checked\"\r\n (click)=\"toggleAttributeValue(attrib)\"\r\n >\r\n <span></span>\r\n </label>\r\n @if(attrib.value){\r\n <div class=\"criteria-select-object-properties-attrib-row-cell-text\">{{attrib.value}}</div>\r\n }@else {\r\n <div class=\"criteria-select-object-properties-attrib-row-cell-text\">...</div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </lib-expansion-panel> \r\n }\r\n</lib-expansion-panel>\r\n}\r\n<!-- End Properties list-->\r\n", styles: [".criteria-select-object-properties-header{font-weight:700;text-transform:uppercase;font-size:1.4rem}.criteria-select-object-properties-group-header{line-height:2.4rem}.criteria-select-object-properties-attrib-row{display:flex;width:calc(100% - 2rem);flex-direction:row;flex-wrap:nowrap;overflow:hidden;padding-left:2rem}.criteria-select-object-properties-attrib-row:hover{background-color:#f5f5f5}.criteria-select-object-properties-attrib-row-content{display:inline-flex;width:100%}.criteria-select-object-properties-attrib-row-cell{flex-basis:50%;display:flex;overflow:hidden;text-overflow:ellipsis}.criteria-select-object-properties-attrib-row-cell-label{display:inline-flex}.criteria-select-object-properties-attrib-row-cell-text{overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}.criteria-select-checkbox input{display:none}.criteria-select-checkbox input:checked+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0A<rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" fill=\"%23fe5000\"/>%0A<path d=\"M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z\" fill=\"white\"/>%0A</svg>%0A')}.criteria-select-checkbox input:checked+span:hover{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0A<rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" fill=\"%23fe5000\"/>%0A<path d=\"M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z\" fill=\"white\"/>%0A</svg>%0A')}.criteria-select-checkbox input:checked:disabled+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0A<rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" fill=\"%23D3D3D3\"/>%0A<path d=\"M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z\" fill=\"white\"/>%0A</svg>%0A')}.criteria-select-checkbox input:disabled+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0A<rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" fill=\"white\" stroke=\"%23D3D3D3\"/>%0A</svg>%0A')}.criteria-select-checkbox span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0A<rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" fill=\"white\" stroke=\"%238D8D8D\"/>%0A</svg>%0A');width:1.8rem;height:1.8rem;margin-top:.1rem;vertical-align:middle;border:0;background-color:transparent;background-position:-.3rem center;background-size:100% 100%;background-repeat:no-repeat}.criteria-select-checkbox span:hover{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0A<rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" fill=\"%23F5F5F5\" stroke=\"%238D8D8D\"/>%0A</svg>%0A')}\n"] }]
|
|
221
221
|
}], ctorParameters: () => [{ type: i1.TranslateService }], propDecorators: { api: [{
|
|
222
222
|
type: Input
|
|
223
223
|
}], rootObjectId: [{
|
|
@@ -229,4 +229,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
|
|
|
229
229
|
}], filterCriteriaChange: [{
|
|
230
230
|
type: Output
|
|
231
231
|
}] } });
|
|
232
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaW1wbHVzLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2JpbXBsdXMtb2JqZWN0LW5hdmlnYXRvci9jcml0ZXJpYS1zZWxlY3Qtb2JqZWN0LXByb3BlcnRpZXMvY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaW1wbHVzLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2JpbXBsdXMtb2JqZWN0LW5hdmlnYXRvci9jcml0ZXJpYS1zZWxlY3Qtb2JqZWN0LXByb3BlcnRpZXMvY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sbUVBQW1FLENBQUM7QUFDcEgsT0FBTyxFQUFFLGVBQWUsRUFBb0IsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUMxRixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUM5RyxPQUFPLEVBQW1CLGlCQUFpQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDM0YsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sbUVBQW1FLENBQUM7QUFDcEgsT0FBTyxFQUFFLHVDQUF1QyxFQUFF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QUEwQixDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUN2RixDQUFDO1lBQ0gsQ0FBQztTQUNGLENBQUMsQ0FBQTtJQUNKLENBQUM7K0dBdFFVLHVDQUF1QzttR0FBdkMsdUNBQXVDLGlTQ3JCcEQsb29IQW1GQSx1c0dEbEVhLDZCQUE2Qix1RUFBRSx1QkFBdUIscUZBQUUsZUFBZSw0RkFBRSwrQkFBK0IsaUlBQUUsdUNBQXVDOzs0RkFJakosdUNBQXVDO2tCQVBuRCxTQUFTOytCQUNFLHVDQUF1QyxjQUNyQyxJQUFJLFdBQ1AsQ0FBRSw2QkFBNkIsRUFBRSx1QkFBdUIsRUFBRSxlQUFlLEVBQUUsK0JBQStCLEVBQUUsdUNBQXVDLENBQUM7cUZBNkI3SixHQUFHO3NCQURGLEtBQUs7Z0JBSUYsWUFBWTtzQkFEZixLQUFLO2dCQWFOLFFBQVE7c0JBRFAsS0FBSztnQkFjRixjQUFjO3NCQURqQixLQUFLO2dCQU1JLG9CQUFvQjtzQkFBN0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgV2ViU2RrIGZyb20gJ2JpbXBsdXMtd2Vic2RrJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmcm9tIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEJpbXBsdXNMb2NhbGl6ZWRXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iaW1wbHVzLWxvY2FsaXplZC13aWRnZXQvYmltcGx1cy1sb2NhbGl6ZWQtd2lkZ2V0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBFeHBhbnNpb25QYW5lbENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2V4cGFuc2lvbi1wYW5lbC9leHBhbnNpb24tcGFuZWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRXhwYW5zaW9uUGFuZWxIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9leHBhbnNpb24tcGFuZWwtaGVhZGVyL2V4cGFuc2lvbi1wYW5lbC1oZWFkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmlsdGVyQ3JpdGVyaXVtLCBNYXhGaWx0ZXJDcml0ZXJpYSB9IGZyb20gJy4uL2JpbXBsdXMtb2JqZWN0LW5hdmlnYXRvci5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBCaW1wbHVzT2JqZWN0U3RydWN0dXJlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmltcGx1cy1vYmplY3Qtc3RydWN0dXJlL2JpbXBsdXMtb2JqZWN0LXN0cnVjdHVyZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCaW1wbHVzT2JqZWN0Q29tcGxleFByb3BlcnRpZXNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iaW1wbHVzLW9iamVjdC1jb21wbGV4LXByb3BlcnRpZXMvYmltcGx1cy1vYmplY3QtY29tcGxleC1wcm9wZXJ0aWVzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE9iamVjdFN0cnVjdHVyZU5vZGUsIE9iamVjdFN0cnVjdHVyZU5vZGVCdWlsZGVyIH0gZnJvbSAnLi4vLi4vYmltcGx1cy1vYmplY3Qtc3RydWN0dXJlL2JpbXBsdXMtb2JqZWN0LXN0cnVjdHVyZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBDb21wbGV4UHJvcGVydGllc05vZGUsIENvbXBsZXhQcm9wZXJ0aWVzTm9kZUJ1aWxkZXIgfSBmcm9tICcuLi8uLi9iaW1wbHVzLW9iamVjdC1jb21wbGV4LXByb3BlcnRpZXMvYmltcGx1cy1vYmplY3QtY29tcGxleC1wcm9wZXJ0aWVzLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IE9iamVjdEF0dHJpYnV0ZSwgT2JqZWN0QXR0cmlidXRlR3JvdXAgfSBmcm9tICcuL2NyaXRlcmlhLXNlbGVjdC1vYmplY3QtcHJvcGVydGllcy5pbnRlcmZhY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFsgRXhwYW5zaW9uUGFuZWxIZWFkZXJDb21wb25lbnQsIEV4cGFuc2lvblBhbmVsQ29tcG9uZW50LCBUcmFuc2xhdGVNb2R1bGUsIEJpbXBsdXNPYmplY3RTdHJ1Y3R1cmVDb21wb25lbnQsIEJpbXBsdXNPYmplY3RDb21wbGV4UHJvcGVydGllc0NvbXBvbmVudF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NyaXRlcmlhLXNlbGVjdC1vYmplY3QtcHJvcGVydGllcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2NyaXRlcmlhLXNlbGVjdC1vYmplY3QtcHJvcGVydGllcy5jb21wb25lbnQubGVzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIENyaXRlcmlhU2VsZWN0T2JqZWN0UHJvcGVydGllc0NvbXBvbmVudCBleHRlbmRzIEJpbXBsdXNMb2NhbGl6ZWRXaWRnZXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3Rvcih0cmFuc2xhdGVTZXJ2aWNlOiAgVHJhbnNsYXRlU2VydmljZSl7XHJcbiAgICBzdXBlcih0cmFuc2xhdGVTZXJ2aWNlKSAgXHJcbiAgfVxyXG4gIFxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5fY3VycmVudFByb3BlcnRpZXNPYmplY3RJZCQuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKGlkKSA9PiB7XHJcbiAgICAgICAgaWYoaWQpe1xyXG4gICAgICAgICAgdGhpcy5fY3JlYXRlT2JqZWN0UHJvcGVydGllcyhpZCwgdGhpcy5yZXZpc2lvbilcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuX2N1cnJlbnRPYmplY3RJZCQuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKGlkKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fY3VycmVudFByb3BlcnRpZXNPYmplY3RJZCQubmV4dChpZCk7XHJcbiAgICAgICAgdGhpcy5fY3JlYXRlQ29tcGxleFByb3BlcnRpZXN0cnVjdHVyZShpZCwgdGhpcy5yZXZpc2lvbik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgYXBpIDogV2ViU2RrLkFwaSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCByb290T2JqZWN0SWQoaWQgOiBzdHJpbmcpe1xyXG4gICAgdGhpcy5fY3VycmVudE9iamVjdElkJC5uZXh0KGlkKTtcclxuICAgIHRoaXMuX2NyZWF0ZU9iamVjdFN0cnVjdHVyZShpZCwgdGhpcy5yZXZpc2lvbik7XHJcbiAgICBcclxuICAgIHRoaXMuX3Jvb3RPYmplY3RJZCA9IGlkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJvb3RPYmplY3RJZCgpIDogc3RyaW5ne1xyXG4gICAgcmV0dXJuIHRoaXMuX3Jvb3RPYmplY3RJZDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcmV2aXNpb24gOiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XHJcbiAgXHJcbiAgcHJpdmF0ZSBfY3VycmVudE9iamVjdElkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiAoXCJcIik7XHJcblxyXG4gIHByaXZhdGUgX2N1cnJlbnRQcm9wZXJ0aWVzT2JqZWN0SWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+IChcIlwiKTtcclxuXHJcbiAgb2JqZWN0QXR0cmlidXRlR3JvdXBzIDogT2JqZWN0QXR0cmlidXRlR3JvdXBbXSA9IFtdO1xyXG5cclxuICBNYXhGaWx0ZXJDcml0ZXJpYSA9IE1heEZpbHRlckNyaXRlcmlhOyAvLyBGb3IgZXhwb3N1cmUgdG8gdGVtcGxhdGVcclxuXHJcbiAgcHJpdmF0ZSBfcm9vdE9iamVjdElkIDogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgZmlsdGVyQ3JpdGVyaWEoY3JpdGVyaWEgOiBGaWx0ZXJDcml0ZXJpdW1bXSl7XHJcbiAgICB0aGlzLl9maWx0ZXJDcml0ZXJpYSA9IGNyaXRlcmlhO1xyXG4gICAgdGhpcy5fc3luY0F0dHJpYnV0ZVN0YXRlc0Zyb21Dcml0ZXJpYSgpO1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpIGZpbHRlckNyaXRlcmlhQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxGaWx0ZXJDcml0ZXJpdW1bXT4oKTtcclxuXHJcbiAgZ2V0IGZpbHRlckNyaXRlcmlhKCl7XHJcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyQ3JpdGVyaWE7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9maWx0ZXJDcml0ZXJpYSA6IEZpbHRlckNyaXRlcml1bVtdID0gW107XHJcblxyXG4gIHByaXZhdGUgX29iamVjdFN0cnVjdHVyZSA6IE9iamVjdFN0cnVjdHVyZU5vZGUgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgIGdldCBvYmplY3RTdHJ1Y3R1cmUoKTogT2JqZWN0U3RydWN0dXJlTm9kZSB8IG51bGx7XHJcbiAgICByZXR1cm4gdGhpcy5fb2JqZWN0U3RydWN0dXJlXHJcbiAgIH1cclxuXHJcbiAgIHByaXZhdGUgX2NvbXBsZXhQcm9wZXJ0aWVzIDogQ29tcGxleFByb3BlcnRpZXNOb2RlIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICBnZXQgY29tcGxleFByb3BlcnRpZXMoKSA6IENvbXBsZXhQcm9wZXJ0aWVzTm9kZSB8IG51bGx7XHJcbiAgICByZXR1cm4gdGhpcy5fY29tcGxleFByb3BlcnRpZXM7XHJcbiAgIH1cclxuXHJcbiAgdG9nZ2xlQXR0cmlidXRlKGF0dHJpYiA6IE9iamVjdEF0dHJpYnV0ZSl7XHJcbiAgICBhdHRyaWIuY2hlY2tlZCA9ICFhdHRyaWIuY2hlY2tlZDtcclxuICAgIGlmKGF0dHJpYi5jaGVja2VkID09PSBmYWxzZSl7XHJcbiAgICAgIGF0dHJpYi52YWx1ZUNoZWNrZWQgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmhhbmRsZUZpbHRlckNyaXRlcml1bUF0dHJpYnV0ZVN0YXRlQ2hhbmdlKGF0dHJpYik7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVBdHRyaWJ1dGVWYWx1ZShhdHRyaWIgOiBPYmplY3RBdHRyaWJ1dGUpe1xyXG4gICAgYXR0cmliLnZhbHVlQ2hlY2tlZCA9ICFhdHRyaWIudmFsdWVDaGVja2VkO1xyXG4gICAgYXR0cmliLmNoZWNrZWQgPSBhdHRyaWIudmFsdWVDaGVja2VkO1xyXG5cclxuICAgIHRoaXMuaGFuZGxlRmlsdGVyQ3JpdGVyaXVtQXR0cmlidXRlU3RhdGVDaGFuZ2UoYXR0cmliKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUZpbHRlckNyaXRlcml1bUF0dHJpYnV0ZVN0YXRlQ2hhbmdlKGF0dHJpYiA6IE9iamVjdEF0dHJpYnV0ZSl7XHJcbiAgICBcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5maWx0ZXJDcml0ZXJpYS5maW5kSW5kZXgoeD0+eC5pZCA9PT0gYXR0cmliLmlkKTtcclxuICAgIGlmKGluZGV4Pj0wKXtcclxuICAgICAgaWYoYXR0cmliLmNoZWNrZWQgPT09IGZhbHNlIHx8IGF0dHJpYi52YWx1ZUNoZWNrZWQgPT09IGZhbHNlKXtcclxuICAgICAgICB0aGlzLmZpbHRlckNyaXRlcmlhLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJDcml0ZXJpYUNoYW5nZS5lbWl0KHRoaXMuZmlsdGVyQ3JpdGVyaWEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmKHRoaXMuZmlsdGVyQ3JpdGVyaWEubGVuZ3RoIDwgTWF4RmlsdGVyQ3JpdGVyaWEpe1xyXG5cclxuICAgICAgICBsZXQgc3Vic3RyaW5nID0gYFtJXVske2F0dHJpYi5pZH1dLlZhbHVlYDtcclxuXHJcbiAgICAgICAgaWYoYXR0cmliLnZhbHVlQ2hlY2tlZCl7XHJcbiAgICAgICAgICBzdWJzdHJpbmcgKz0gYFtGXVswXT0ke2F0dHJpYi52YWx1ZX1gO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5maWx0ZXJDcml0ZXJpYS5wdXNoKHtcclxuICAgICAgICAgIG5hbWUgOiBhdHRyaWIubmFtZSxcclxuICAgICAgICAgIHZhbHVlIDogYXR0cmliLnZhbHVlQ2hlY2tlZCA/IGF0dHJpYi52YWx1ZSA6IHVuZGVmaW5lZCxcclxuICAgICAgICAgIGlkIDogYXR0cmliLmlkLFxyXG4gICAgICAgICAgc3ViU3RyaW5nIDogc3Vic3RyaW5nXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuZmlsdGVyQ3JpdGVyaWFDaGFuZ2UuZW1pdCh0aGlzLmZpbHRlckNyaXRlcmlhKTtcclxuICAgICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlT2JqZWN0U3RydWN0dXJlTm9kZVNlbGVjdGVkKG5vZGUgOiBPYmplY3RTdHJ1Y3R1cmVOb2RlKXtcclxuICAgIHRoaXMuX2N1cnJlbnRPYmplY3RJZCQubmV4dChub2RlLmlkKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUNvbXBsZXhQcm9wZXJ0eU5vZGVTZWxlY3RlZChub2RlIDogQ29tcGxleFByb3BlcnRpZXNOb2RlKXtcclxuICAgIHRoaXMuX2N1cnJlbnRQcm9wZXJ0aWVzT2JqZWN0SWQkLm5leHQobm9kZS5pZCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jcmVhdGVPYmplY3RQcm9wZXJ0aWVzKG9iamVjdElkIDogc3RyaW5nLCByZXZpc2lvbiA6IG51bWJlciB8IHVuZGVmaW5lZCl7XHJcbiAgICB0aGlzLl9sb2FkT2JqZWN0UHJvcGVydGllcyhvYmplY3RJZCwgcmV2aXNpb24pPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgIFxyXG4gICAgICAgIC8vIHByb3BlcnRpZXMgcmVzcG9uc2UgaXMgYmFkbHkgc3RydWN0dXJlZCwgbmVhcmx5IGltcG9zc2libGUgdG8gY3JlYXRlIGNsYXNzIHN0cnVjdHVyZSBmcm9tIGl0LiBUaGVyZWZvcmUgdXNpbmcgc2hvcnRjdXRcclxuICAgICAgICAvLyBhbnkgZm9yIGpzb24gcmVzcG9uc2VcclxuXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lICBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgbmV4dDogKHByb3BlcnRpZXNEYXRhIDogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm9iamVjdEF0dHJpYnV0ZUdyb3VwcyA9IHRoaXMuX2NyZWF0ZUF0dHJpYnV0ZUdyb3Vwc0Zyb21SZXNwb25zZShwcm9wZXJ0aWVzRGF0YSk7XHJcbiAgICAgICAgICB0aGlzLl9zeW5jQXR0cmlidXRlU3RhdGVzRnJvbUNyaXRlcmlhKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKCkgPT57XHJcbiAgICAgICAgICB0aGlzLm9iamVjdEF0dHJpYnV0ZUdyb3VwcyA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgKVxyXG5cclxuICB9XHJcblxyXG4gICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBwcml2YXRlIF9jcmVhdGVBdHRyaWJ1dGVHcm91cHNGcm9tUmVzcG9uc2UocHJvcGVydGllc0RhdGEgOiBhbnkpe1xyXG5cclxuICAgIGNvbnN0IGdyb3VwcyA6IEFycmF5PE9iamVjdEF0dHJpYnV0ZUdyb3VwPiA9IFtdO1xyXG4gICAgbGV0IGxvY2FsaXplZEF0dHJpYkdyb3VwcyA9IG51bGw7XHJcbiAgICBpZihwcm9wZXJ0aWVzRGF0YS5sb2NhbGl6ZWRBdHRyaWJ1dGVHcm91cHMpe1xyXG4gICAgICBsb2NhbGl6ZWRBdHRyaWJHcm91cHMgPSBwcm9wZXJ0aWVzRGF0YS5sb2NhbGl6ZWRBdHRyaWJ1dGVHcm91cHM7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFwcm9wZXJ0aWVzRGF0YS5hdHRyaWJ1dGVzKXtcclxuICAgICAgcmV0dXJuIGdyb3VwcztcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBhdHRyaWJHcm91cHMgPSBwcm9wZXJ0aWVzRGF0YS5hdHRyaWJ1dGVzO1xyXG4gICAgZm9yKGNvbnN0IFtncm91cE5hbWUsIGF0dHJpYnNPYmplY3RdIG9mIE9iamVjdC5lbnRyaWVzKGF0dHJpYkdyb3Vwcykpe1xyXG4gICAgICBcclxuICAgICAgY29uc3QgbmV3R3JvdXAgOiBPYmplY3RBdHRyaWJ1dGVHcm91cCA9IHtcclxuICAgICAgICBuYW1lIDogZ3JvdXBOYW1lLFxyXG4gICAgICAgIGV4cGFuZGVkIDogZmFsc2UsXHJcbiAgICAgICAgYXR0cmlidXRlcyA6IFtdXHJcbiAgICAgIH07XHJcbiAgICAgIFxyXG4gICAgICBpZihsb2NhbGl6ZWRBdHRyaWJHcm91cHM/Lltncm91cE5hbWVdKXtcclxuICAgICAgICBuZXdHcm91cC5uYW1lID0gbG9jYWxpemVkQXR0cmliR3JvdXBzW2dyb3VwTmFtZV07IFxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZighYXR0cmlic09iamVjdCl7XHJcbiAgICAgICAgY29udGludWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGZvcihjb25zdCBhdHRyaWIgb2YgT2JqZWN0LnZhbHVlcyhhdHRyaWJzT2JqZWN0KSl7XHJcblxyXG4gICAgICAgIGNvbnN0IG5ld0F0dHJpYiA6IE9iamVjdEF0dHJpYnV0ZSA9IHtcclxuICAgICAgICAgIGlkIDogYXR0cmliLmlkLFxyXG4gICAgICAgICAgbmFtZSA6IGF0dHJpYi5uYW1lLFxyXG4gICAgICAgICAgZGVzY3JpcHRpb24gOiBhdHRyaWIuZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICB2YWx1ZSA6IGF0dHJpYi52YWx1ZSxcclxuICAgICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgdmFsdWVDaGVja2VkIDogZmFsc2UsXHJcbiAgICAgICAgICBncm91cCA6IGF0dHJpYi5ncm91cFxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbmV3R3JvdXAuYXR0cmlidXRlcy5wdXNoKG5ld0F0dHJpYik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGdyb3Vwcy5wdXNoKG5ld0dyb3VwKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgcmV0dXJuIGdyb3VwcztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3N5bmNBdHRyaWJ1dGVTdGF0ZXNGcm9tQ3JpdGVyaWEoKXtcclxuICAgIHRoaXMub2JqZWN0QXR0cmlidXRlR3JvdXBzLmZvckVhY2goZ3JvdXA9PntcclxuICAgICAgZ3JvdXAuYXR0cmlidXRlcy5mb3JFYWNoKGF0dHJpYj0+e1xyXG4gICAgICAgIGNvbnN0IGNyaXRlcmlhID0gdGhpcy5fZmlsdGVyQ3JpdGVyaWEuZmluZCh4PT54LmlkID09IGF0dHJpYi5pZClcclxuICAgICAgICBpZihjcml0ZXJpYSl7XHJcbiAgICAgICAgICBhdHRyaWIuY2hlY2tlZCA9IHRydWU7XHJcbiAgICAgICAgICBhdHRyaWIudmFsdWVDaGVja2VkID0gY3JpdGVyaWEudmFsdWUgIT09IHVuZGVmaW5lZDtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIGF0dHJpYi5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICBhdHRyaWIudmFsdWVDaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2xvYWRPYmplY3RQcm9wZXJ0aWVzKG9iamVjdElkIDogc3RyaW5nLCByZXZpc2lvbiA6IG51bWJlciB8IHVuZGVmaW5lZCl7XHJcbiAgICBpZighdGhpcy5hcGkpe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZyb20odGhpcy5hcGkub2JqZWN0cy5nZXQob2JqZWN0SWQsIHJldmlzaW9uLCBcIjhcIiwgdW5kZWZpbmVkLCBmYWxzZSwgdW5kZWZpbmVkICkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfbG9hZE9iamVjdFN0cnVjdHVyZShvYmplY3RJZCA6IHN0cmluZywgcmV2aXNpb24gOiBudW1iZXIgfCB1bmRlZmluZWQpe1xyXG4gICAgaWYoIXRoaXMuYXBpKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmcm9tKHRoaXMuYXBpLm9iamVjdHMuZ2V0VG9wb2xvZ3kob2JqZWN0SWQsIHJldmlzaW9uLCBmYWxzZSwgZmFsc2UsIHVuZGVmaW5lZCkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfbG9hZE9iamVjdENvbXBsZXhQcm9wZXJ0aWVzU3RydWN0dXJlKG9iamVjdElkIDogc3RyaW5nLCByZXZpc2lvbiA6IG51bWJlciB8IHVuZGVmaW5lZCl7XHJcbiAgICBpZighdGhpcy5hcGkpe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZyb20odGhpcy5hcGkub2JqZWN0cy5nZXRDb21wbGV4UHJvcGVydGllc1RvcG9sb2d5KG9iamVjdElkLCByZXZpc2lvbikpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY3JlYXRlQ29tcGxleFByb3BlcnRpZXN0cnVjdHVyZShvYmplY3RJZCA6IHN0cmluZywgcmV2aXNpb24gOiBudW1iZXIgfCB1bmRlZmluZWQpe1xyXG4gICAgdGhpcy5fbG9hZE9iamVjdENvbXBsZXhQcm9wZXJ0aWVzU3RydWN0dXJlKG9iamVjdElkLCByZXZpc2lvbik/LnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQgOihzdHJ1Y3R1cmVEYXRhKT0+e1xyXG4gICAgICAgIGlmKHN0cnVjdHVyZURhdGEpe1xyXG4gICAgICAgICAgY29uc3QgY29tcGxleFByb3BzID0gQ29tcGxleFByb3BlcnRpZXNOb2RlQnVpbGRlci5jcmVhdGVGcm9tUmVzcG9uc2Uoc3RydWN0dXJlRGF0YSk7XHJcbiAgICAgICAgICBpZihjb21wbGV4UHJvcHM/LmNoaWxkcmVuPy5sZW5ndGgpe1xyXG4gICAgICAgICAgICB0aGlzLl9jb21wbGV4UHJvcGVydGllcyA9IGNvbXBsZXhQcm9wcztcclxuICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICB0aGlzLl9jb21wbGV4UHJvcGVydGllcyA9IG51bGw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSAgICBcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NyZWF0ZU9iamVjdFN0cnVjdHVyZShvYmplY3RJZCA6IHN0cmluZywgcmV2aXNpb24gOiBudW1iZXIgfCB1bmRlZmluZWQpe1xyXG4gICAgdGhpcy5fbG9hZE9iamVjdFN0cnVjdHVyZShvYmplY3RJZCwgcmV2aXNpb24pPy5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0IDooc3RydWN0dXJlRGF0YSk9PntcclxuICAgICAgICBpZihzdHJ1Y3R1cmVEYXRhKXtcclxuICAgICAgICAgIHRoaXMuX29iamVjdFN0cnVjdHVyZSA9IE9iamVjdFN0cnVjdHVyZU5vZGVCdWlsZGVyLmNyZWF0ZUZyb21SZXNwb25zZShzdHJ1Y3R1cmVEYXRhKTtcclxuICAgICAgICB9ICAgIFxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcblxyXG5cclxufVxyXG4iLCI8IS0tIE9iamVjdCBzdHJ1Y3R1cmUtLT5cclxuPGxpYi1leHBhbnNpb24tcGFuZWw+XHJcbiAgPGxpYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJjcml0ZXJpYS1zZWxlY3Qtb2JqZWN0LXByb3BlcnRpZXMtaGVhZGVyXCI+IHt7XCJfT2JqZWN0IHN0cnVjdHVyZVwiIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgPC9saWItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICBAaWYob2JqZWN0U3RydWN0dXJlKXtcclxuICAgIDxsaWItYmltcGx1cy1vYmplY3Qtc3RydWN0dXJlXHJcbiAgICAgIFtvYmplY3RTdHJ1Y3R1cmVdPVwib2JqZWN0U3RydWN0dXJlXCJcclxuICAgICAgKG5vZGVTZWxlY3RlZCk9XCJoYW5kbGVPYmplY3RTdHJ1Y3R1cmVOb2RlU2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgICA+XHJcbiAgICA8L2xpYi1iaW1wbHVzLW9iamVjdC1zdHJ1Y3R1cmU+ICBcclxuICB9XHJcbjwvbGliLWV4cGFuc2lvbi1wYW5lbD5cclxuPCEtLSBFbmQgT2JqZWN0IHN0cnVjdHVyZS0tPlxyXG5cclxuPCEtLSBDb21wbGV4IHByb3BlcnRpZXMtLT5cclxuQGlmKGNvbXBsZXhQcm9wZXJ0aWVzKXsgIFxyXG48bGliLWV4cGFuc2lvbi1wYW5lbD5cclxuICA8bGliLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcbiAgICA8c3BhbiBjbGFzcz1cImNyaXRlcmlhLXNlbGVjdC1vYmplY3QtcHJvcGVydGllcy1oZWFkZXJcIj4ge3tcIl9PYmplY3QgbXVsdGlwcm9wZXJ0aWVzIHRyZWVcIiB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gIDwvbGliLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcbiAgICA8bGliLWJpbXBsdXMtb2JqZWN0LWNvbXBsZXgtcHJvcGVydGllc1xyXG4gICAgICBbY29tcGxleFByb3BlcnRpZXNdPVwiY29tcGxleFByb3BlcnRpZXNcIlxyXG4gICAgICAobm9kZVNlbGVjdGVkKT1cImhhbmRsZUNvbXBsZXhQcm9wZXJ0eU5vZGVTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgID5cclxuICAgIDwvbGliLWJpbXBsdXMtb2JqZWN0LWNvbXBsZXgtcHJvcGVydGllcz4gIFxyXG48L2xpYi1leHBhbnNpb24tcGFuZWw+XHJcbn1cclxuPCEtLSBFbmQgQ29tcGxleCBwcm9wZXJ0aWVzLS0+XHJcblxyXG48IS0tIFByb3BlcnRpZXMgbGlzdC0tPlxyXG5AaWYob2JqZWN0QXR0cmlidXRlR3JvdXBzLmxlbmd0aCA+IDApeyAgXHJcbjxsaWItZXhwYW5zaW9uLXBhbmVsPlxyXG4gIDxsaWItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICAgIDxzcGFuIGNsYXNzPVwiY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzLWhlYWRlclwiPiB7e1wiX09iamVjdCBwcm9wZXJ0aWVzXCIgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICA8L2xpYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG5cclxuICBAZm9yIChhdHRyaWJHcm91cCBvZiBvYmplY3RBdHRyaWJ1dGVHcm91cHM7IHRyYWNrIGF0dHJpYkdyb3VwKSB7XHJcbiAgICA8bGliLWV4cGFuc2lvbi1wYW5lbCBbZXhwYW5kZWRdPVwiYXR0cmliR3JvdXAuZXhwYW5kZWRcIj5cclxuICAgICAgPGxpYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzLWdyb3VwLWhlYWRlclwiPiB7e2F0dHJpYkdyb3VwLm5hbWV9fTwvc3Bhbj5cclxuICAgICAgPC9saWItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICAgICAgPGRpdj5cclxuICAgICAgICBAZm9yIChhdHRyaWIgb2YgYXR0cmliR3JvdXAuYXR0cmlidXRlczsgdHJhY2sgYXR0cmliKSB7XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzLWF0dHJpYi1yb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNyaXRlcmlhLXNlbGVjdC1vYmplY3QtcHJvcGVydGllcy1hdHRyaWItcm93LWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzLWF0dHJpYi1yb3ctY2VsbCBjcml0ZXJpYS1zZWxlY3QtY2hlY2tib3hcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNyaXRlcmlhLXNlbGVjdC1vYmplY3QtcHJvcGVydGllcy1hdHRyaWItcm93LWNlbGwtbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJhdHRyaWIuY2hlY2tlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZpbHRlckNyaXRlcmlhLmxlbmd0aCA9PT0gTWF4RmlsdGVyQ3JpdGVyaWEgJiYgIWF0dHJpYi5jaGVja2VkXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlQXR0cmlidXRlKGF0dHJpYilcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzLWF0dHJpYi1yb3ctY2VsbC10ZXh0XCI+e3thdHRyaWIubmFtZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiAgY2xhc3M9XCJjcml0ZXJpYS1zZWxlY3Qtb2JqZWN0LXByb3BlcnRpZXMtYXR0cmliLXJvdy1jZWxsIGNyaXRlcmlhLXNlbGVjdC1jaGVja2JveFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzLWF0dHJpYi1yb3ctY2VsbC1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImF0dHJpYi52YWx1ZUNoZWNrZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmaWx0ZXJDcml0ZXJpYS5sZW5ndGggPT09IE1heEZpbHRlckNyaXRlcmlhICYmICFhdHRyaWIuY2hlY2tlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUF0dHJpYnV0ZVZhbHVlKGF0dHJpYilcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICBAaWYoYXR0cmliLnZhbHVlKXtcclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNyaXRlcmlhLXNlbGVjdC1vYmplY3QtcHJvcGVydGllcy1hdHRyaWItcm93LWNlbGwtdGV4dFwiPnt7YXR0cmliLnZhbHVlfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcml0ZXJpYS1zZWxlY3Qtb2JqZWN0LXByb3BlcnRpZXMtYXR0cmliLXJvdy1jZWxsLXRleHRcIj4uLi48L2Rpdj5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgICA8L2xpYi1leHBhbnNpb24tcGFuZWw+ICAgIFxyXG4gIH1cclxuPC9saWItZXhwYW5zaW9uLXBhbmVsPlxyXG59XHJcbjwhLS0gRW5kIFByb3BlcnRpZXMgbGlzdC0tPlxyXG4iXX0=
|
|
232
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaW1wbHVzLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2JpbXBsdXMtb2JqZWN0LW5hdmlnYXRvci9jcml0ZXJpYS1zZWxlY3Qtb2JqZWN0LXByb3BlcnRpZXMvY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaW1wbHVzLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2JpbXBsdXMtb2JqZWN0LW5hdmlnYXRvci9jcml0ZXJpYS1zZWxlY3Qtb2JqZWN0LXByb3BlcnRpZXMvY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sbUVBQW1FLENBQUM7QUFDcEgsT0FBTyxFQUFFLGVBQWUsRUFBb0IsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUMxRixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUM5RyxPQUFPLEVBQW1CLGlCQUFpQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDM0YsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sbUVBQW1FLENBQUM7QUFDcEgsT0FBTyxFQUFFLHVDQUF1QyxFQUFF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QUEwQixDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUN2RixDQUFDO1lBQ0gsQ0FBQztTQUNGLENBQUMsQ0FBQTtJQUNKLENBQUM7K0dBdFFVLHVDQUF1QzttR0FBdkMsdUNBQXVDLGlTQ3JCcEQsb29IQW1GQSx3b0dEbEVhLDZCQUE2Qix1RUFBRSx1QkFBdUIscUZBQUUsZUFBZSw0RkFBRSwrQkFBK0IsaUlBQUUsdUNBQXVDOzs0RkFJakosdUNBQXVDO2tCQVBuRCxTQUFTOytCQUNFLHVDQUF1QyxjQUNyQyxJQUFJLFdBQ1AsQ0FBRSw2QkFBNkIsRUFBRSx1QkFBdUIsRUFBRSxlQUFlLEVBQUUsK0JBQStCLEVBQUUsdUNBQXVDLENBQUM7cUZBNkI3SixHQUFHO3NCQURGLEtBQUs7Z0JBSUYsWUFBWTtzQkFEZixLQUFLO2dCQWFOLFFBQVE7c0JBRFAsS0FBSztnQkFjRixjQUFjO3NCQURqQixLQUFLO2dCQU1JLG9CQUFvQjtzQkFBN0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgV2ViU2RrIGZyb20gJ2JpbXBsdXMtd2Vic2RrJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmcm9tIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEJpbXBsdXNMb2NhbGl6ZWRXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iaW1wbHVzLWxvY2FsaXplZC13aWRnZXQvYmltcGx1cy1sb2NhbGl6ZWQtd2lkZ2V0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBFeHBhbnNpb25QYW5lbENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2V4cGFuc2lvbi1wYW5lbC9leHBhbnNpb24tcGFuZWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRXhwYW5zaW9uUGFuZWxIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9leHBhbnNpb24tcGFuZWwtaGVhZGVyL2V4cGFuc2lvbi1wYW5lbC1oZWFkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmlsdGVyQ3JpdGVyaXVtLCBNYXhGaWx0ZXJDcml0ZXJpYSB9IGZyb20gJy4uL2JpbXBsdXMtb2JqZWN0LW5hdmlnYXRvci5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBCaW1wbHVzT2JqZWN0U3RydWN0dXJlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmltcGx1cy1vYmplY3Qtc3RydWN0dXJlL2JpbXBsdXMtb2JqZWN0LXN0cnVjdHVyZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCaW1wbHVzT2JqZWN0Q29tcGxleFByb3BlcnRpZXNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iaW1wbHVzLW9iamVjdC1jb21wbGV4LXByb3BlcnRpZXMvYmltcGx1cy1vYmplY3QtY29tcGxleC1wcm9wZXJ0aWVzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE9iamVjdFN0cnVjdHVyZU5vZGUsIE9iamVjdFN0cnVjdHVyZU5vZGVCdWlsZGVyIH0gZnJvbSAnLi4vLi4vYmltcGx1cy1vYmplY3Qtc3RydWN0dXJlL2JpbXBsdXMtb2JqZWN0LXN0cnVjdHVyZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBDb21wbGV4UHJvcGVydGllc05vZGUsIENvbXBsZXhQcm9wZXJ0aWVzTm9kZUJ1aWxkZXIgfSBmcm9tICcuLi8uLi9iaW1wbHVzLW9iamVjdC1jb21wbGV4LXByb3BlcnRpZXMvYmltcGx1cy1vYmplY3QtY29tcGxleC1wcm9wZXJ0aWVzLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IE9iamVjdEF0dHJpYnV0ZSwgT2JqZWN0QXR0cmlidXRlR3JvdXAgfSBmcm9tICcuL2NyaXRlcmlhLXNlbGVjdC1vYmplY3QtcHJvcGVydGllcy5pbnRlcmZhY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFsgRXhwYW5zaW9uUGFuZWxIZWFkZXJDb21wb25lbnQsIEV4cGFuc2lvblBhbmVsQ29tcG9uZW50LCBUcmFuc2xhdGVNb2R1bGUsIEJpbXBsdXNPYmplY3RTdHJ1Y3R1cmVDb21wb25lbnQsIEJpbXBsdXNPYmplY3RDb21wbGV4UHJvcGVydGllc0NvbXBvbmVudF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NyaXRlcmlhLXNlbGVjdC1vYmplY3QtcHJvcGVydGllcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2NyaXRlcmlhLXNlbGVjdC1vYmplY3QtcHJvcGVydGllcy5jb21wb25lbnQubGVzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIENyaXRlcmlhU2VsZWN0T2JqZWN0UHJvcGVydGllc0NvbXBvbmVudCBleHRlbmRzIEJpbXBsdXNMb2NhbGl6ZWRXaWRnZXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3Rvcih0cmFuc2xhdGVTZXJ2aWNlOiAgVHJhbnNsYXRlU2VydmljZSl7XHJcbiAgICBzdXBlcih0cmFuc2xhdGVTZXJ2aWNlKSAgXHJcbiAgfVxyXG4gIFxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5fY3VycmVudFByb3BlcnRpZXNPYmplY3RJZCQuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKGlkKSA9PiB7XHJcbiAgICAgICAgaWYoaWQpe1xyXG4gICAgICAgICAgdGhpcy5fY3JlYXRlT2JqZWN0UHJvcGVydGllcyhpZCwgdGhpcy5yZXZpc2lvbilcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuX2N1cnJlbnRPYmplY3RJZCQuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKGlkKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fY3VycmVudFByb3BlcnRpZXNPYmplY3RJZCQubmV4dChpZCk7XHJcbiAgICAgICAgdGhpcy5fY3JlYXRlQ29tcGxleFByb3BlcnRpZXN0cnVjdHVyZShpZCwgdGhpcy5yZXZpc2lvbik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgYXBpIDogV2ViU2RrLkFwaSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCByb290T2JqZWN0SWQoaWQgOiBzdHJpbmcpe1xyXG4gICAgdGhpcy5fY3VycmVudE9iamVjdElkJC5uZXh0KGlkKTtcclxuICAgIHRoaXMuX2NyZWF0ZU9iamVjdFN0cnVjdHVyZShpZCwgdGhpcy5yZXZpc2lvbik7XHJcbiAgICBcclxuICAgIHRoaXMuX3Jvb3RPYmplY3RJZCA9IGlkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJvb3RPYmplY3RJZCgpIDogc3RyaW5ne1xyXG4gICAgcmV0dXJuIHRoaXMuX3Jvb3RPYmplY3RJZDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcmV2aXNpb24gOiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XHJcbiAgXHJcbiAgcHJpdmF0ZSBfY3VycmVudE9iamVjdElkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiAoXCJcIik7XHJcblxyXG4gIHByaXZhdGUgX2N1cnJlbnRQcm9wZXJ0aWVzT2JqZWN0SWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+IChcIlwiKTtcclxuXHJcbiAgb2JqZWN0QXR0cmlidXRlR3JvdXBzIDogT2JqZWN0QXR0cmlidXRlR3JvdXBbXSA9IFtdO1xyXG5cclxuICBNYXhGaWx0ZXJDcml0ZXJpYSA9IE1heEZpbHRlckNyaXRlcmlhOyAvLyBGb3IgZXhwb3N1cmUgdG8gdGVtcGxhdGVcclxuXHJcbiAgcHJpdmF0ZSBfcm9vdE9iamVjdElkIDogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgZmlsdGVyQ3JpdGVyaWEoY3JpdGVyaWEgOiBGaWx0ZXJDcml0ZXJpdW1bXSl7XHJcbiAgICB0aGlzLl9maWx0ZXJDcml0ZXJpYSA9IGNyaXRlcmlhO1xyXG4gICAgdGhpcy5fc3luY0F0dHJpYnV0ZVN0YXRlc0Zyb21Dcml0ZXJpYSgpO1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpIGZpbHRlckNyaXRlcmlhQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxGaWx0ZXJDcml0ZXJpdW1bXT4oKTtcclxuXHJcbiAgZ2V0IGZpbHRlckNyaXRlcmlhKCl7XHJcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyQ3JpdGVyaWE7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9maWx0ZXJDcml0ZXJpYSA6IEZpbHRlckNyaXRlcml1bVtdID0gW107XHJcblxyXG4gIHByaXZhdGUgX29iamVjdFN0cnVjdHVyZSA6IE9iamVjdFN0cnVjdHVyZU5vZGUgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgIGdldCBvYmplY3RTdHJ1Y3R1cmUoKTogT2JqZWN0U3RydWN0dXJlTm9kZSB8IG51bGx7XHJcbiAgICByZXR1cm4gdGhpcy5fb2JqZWN0U3RydWN0dXJlXHJcbiAgIH1cclxuXHJcbiAgIHByaXZhdGUgX2NvbXBsZXhQcm9wZXJ0aWVzIDogQ29tcGxleFByb3BlcnRpZXNOb2RlIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICBnZXQgY29tcGxleFByb3BlcnRpZXMoKSA6IENvbXBsZXhQcm9wZXJ0aWVzTm9kZSB8IG51bGx7XHJcbiAgICByZXR1cm4gdGhpcy5fY29tcGxleFByb3BlcnRpZXM7XHJcbiAgIH1cclxuXHJcbiAgdG9nZ2xlQXR0cmlidXRlKGF0dHJpYiA6IE9iamVjdEF0dHJpYnV0ZSl7XHJcbiAgICBhdHRyaWIuY2hlY2tlZCA9ICFhdHRyaWIuY2hlY2tlZDtcclxuICAgIGlmKGF0dHJpYi5jaGVja2VkID09PSBmYWxzZSl7XHJcbiAgICAgIGF0dHJpYi52YWx1ZUNoZWNrZWQgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmhhbmRsZUZpbHRlckNyaXRlcml1bUF0dHJpYnV0ZVN0YXRlQ2hhbmdlKGF0dHJpYik7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVBdHRyaWJ1dGVWYWx1ZShhdHRyaWIgOiBPYmplY3RBdHRyaWJ1dGUpe1xyXG4gICAgYXR0cmliLnZhbHVlQ2hlY2tlZCA9ICFhdHRyaWIudmFsdWVDaGVja2VkO1xyXG4gICAgYXR0cmliLmNoZWNrZWQgPSBhdHRyaWIudmFsdWVDaGVja2VkO1xyXG5cclxuICAgIHRoaXMuaGFuZGxlRmlsdGVyQ3JpdGVyaXVtQXR0cmlidXRlU3RhdGVDaGFuZ2UoYXR0cmliKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUZpbHRlckNyaXRlcml1bUF0dHJpYnV0ZVN0YXRlQ2hhbmdlKGF0dHJpYiA6IE9iamVjdEF0dHJpYnV0ZSl7XHJcbiAgICBcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5maWx0ZXJDcml0ZXJpYS5maW5kSW5kZXgoeD0+eC5pZCA9PT0gYXR0cmliLmlkKTtcclxuICAgIGlmKGluZGV4Pj0wKXtcclxuICAgICAgaWYoYXR0cmliLmNoZWNrZWQgPT09IGZhbHNlIHx8IGF0dHJpYi52YWx1ZUNoZWNrZWQgPT09IGZhbHNlKXtcclxuICAgICAgICB0aGlzLmZpbHRlckNyaXRlcmlhLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJDcml0ZXJpYUNoYW5nZS5lbWl0KHRoaXMuZmlsdGVyQ3JpdGVyaWEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmKHRoaXMuZmlsdGVyQ3JpdGVyaWEubGVuZ3RoIDwgTWF4RmlsdGVyQ3JpdGVyaWEpe1xyXG5cclxuICAgICAgICBsZXQgc3Vic3RyaW5nID0gYFtJXVske2F0dHJpYi5pZH1dLlZhbHVlYDtcclxuXHJcbiAgICAgICAgaWYoYXR0cmliLnZhbHVlQ2hlY2tlZCl7XHJcbiAgICAgICAgICBzdWJzdHJpbmcgKz0gYFtGXVswXT0ke2F0dHJpYi52YWx1ZX1gO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5maWx0ZXJDcml0ZXJpYS5wdXNoKHtcclxuICAgICAgICAgIG5hbWUgOiBhdHRyaWIubmFtZSxcclxuICAgICAgICAgIHZhbHVlIDogYXR0cmliLnZhbHVlQ2hlY2tlZCA/IGF0dHJpYi52YWx1ZSA6IHVuZGVmaW5lZCxcclxuICAgICAgICAgIGlkIDogYXR0cmliLmlkLFxyXG4gICAgICAgICAgc3ViU3RyaW5nIDogc3Vic3RyaW5nXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuZmlsdGVyQ3JpdGVyaWFDaGFuZ2UuZW1pdCh0aGlzLmZpbHRlckNyaXRlcmlhKTtcclxuICAgICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlT2JqZWN0U3RydWN0dXJlTm9kZVNlbGVjdGVkKG5vZGUgOiBPYmplY3RTdHJ1Y3R1cmVOb2RlKXtcclxuICAgIHRoaXMuX2N1cnJlbnRPYmplY3RJZCQubmV4dChub2RlLmlkKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUNvbXBsZXhQcm9wZXJ0eU5vZGVTZWxlY3RlZChub2RlIDogQ29tcGxleFByb3BlcnRpZXNOb2RlKXtcclxuICAgIHRoaXMuX2N1cnJlbnRQcm9wZXJ0aWVzT2JqZWN0SWQkLm5leHQobm9kZS5pZCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jcmVhdGVPYmplY3RQcm9wZXJ0aWVzKG9iamVjdElkIDogc3RyaW5nLCByZXZpc2lvbiA6IG51bWJlciB8IHVuZGVmaW5lZCl7XHJcbiAgICB0aGlzLl9sb2FkT2JqZWN0UHJvcGVydGllcyhvYmplY3RJZCwgcmV2aXNpb24pPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgIFxyXG4gICAgICAgIC8vIHByb3BlcnRpZXMgcmVzcG9uc2UgaXMgYmFkbHkgc3RydWN0dXJlZCwgbmVhcmx5IGltcG9zc2libGUgdG8gY3JlYXRlIGNsYXNzIHN0cnVjdHVyZSBmcm9tIGl0LiBUaGVyZWZvcmUgdXNpbmcgc2hvcnRjdXRcclxuICAgICAgICAvLyBhbnkgZm9yIGpzb24gcmVzcG9uc2VcclxuXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lICBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgbmV4dDogKHByb3BlcnRpZXNEYXRhIDogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm9iamVjdEF0dHJpYnV0ZUdyb3VwcyA9IHRoaXMuX2NyZWF0ZUF0dHJpYnV0ZUdyb3Vwc0Zyb21SZXNwb25zZShwcm9wZXJ0aWVzRGF0YSk7XHJcbiAgICAgICAgICB0aGlzLl9zeW5jQXR0cmlidXRlU3RhdGVzRnJvbUNyaXRlcmlhKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKCkgPT57XHJcbiAgICAgICAgICB0aGlzLm9iamVjdEF0dHJpYnV0ZUdyb3VwcyA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgKVxyXG5cclxuICB9XHJcblxyXG4gICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBwcml2YXRlIF9jcmVhdGVBdHRyaWJ1dGVHcm91cHNGcm9tUmVzcG9uc2UocHJvcGVydGllc0RhdGEgOiBhbnkpe1xyXG5cclxuICAgIGNvbnN0IGdyb3VwcyA6IEFycmF5PE9iamVjdEF0dHJpYnV0ZUdyb3VwPiA9IFtdO1xyXG4gICAgbGV0IGxvY2FsaXplZEF0dHJpYkdyb3VwcyA9IG51bGw7XHJcbiAgICBpZihwcm9wZXJ0aWVzRGF0YS5sb2NhbGl6ZWRBdHRyaWJ1dGVHcm91cHMpe1xyXG4gICAgICBsb2NhbGl6ZWRBdHRyaWJHcm91cHMgPSBwcm9wZXJ0aWVzRGF0YS5sb2NhbGl6ZWRBdHRyaWJ1dGVHcm91cHM7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFwcm9wZXJ0aWVzRGF0YS5hdHRyaWJ1dGVzKXtcclxuICAgICAgcmV0dXJuIGdyb3VwcztcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBhdHRyaWJHcm91cHMgPSBwcm9wZXJ0aWVzRGF0YS5hdHRyaWJ1dGVzO1xyXG4gICAgZm9yKGNvbnN0IFtncm91cE5hbWUsIGF0dHJpYnNPYmplY3RdIG9mIE9iamVjdC5lbnRyaWVzKGF0dHJpYkdyb3Vwcykpe1xyXG4gICAgICBcclxuICAgICAgY29uc3QgbmV3R3JvdXAgOiBPYmplY3RBdHRyaWJ1dGVHcm91cCA9IHtcclxuICAgICAgICBuYW1lIDogZ3JvdXBOYW1lLFxyXG4gICAgICAgIGV4cGFuZGVkIDogZmFsc2UsXHJcbiAgICAgICAgYXR0cmlidXRlcyA6IFtdXHJcbiAgICAgIH07XHJcbiAgICAgIFxyXG4gICAgICBpZihsb2NhbGl6ZWRBdHRyaWJHcm91cHM/Lltncm91cE5hbWVdKXtcclxuICAgICAgICBuZXdHcm91cC5uYW1lID0gbG9jYWxpemVkQXR0cmliR3JvdXBzW2dyb3VwTmFtZV07IFxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZighYXR0cmlic09iamVjdCl7XHJcbiAgICAgICAgY29udGludWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGZvcihjb25zdCBhdHRyaWIgb2YgT2JqZWN0LnZhbHVlcyhhdHRyaWJzT2JqZWN0KSl7XHJcblxyXG4gICAgICAgIGNvbnN0IG5ld0F0dHJpYiA6IE9iamVjdEF0dHJpYnV0ZSA9IHtcclxuICAgICAgICAgIGlkIDogYXR0cmliLmlkLFxyXG4gICAgICAgICAgbmFtZSA6IGF0dHJpYi5uYW1lLFxyXG4gICAgICAgICAgZGVzY3JpcHRpb24gOiBhdHRyaWIuZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICB2YWx1ZSA6IGF0dHJpYi52YWx1ZSxcclxuICAgICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgdmFsdWVDaGVja2VkIDogZmFsc2UsXHJcbiAgICAgICAgICBncm91cCA6IGF0dHJpYi5ncm91cFxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbmV3R3JvdXAuYXR0cmlidXRlcy5wdXNoKG5ld0F0dHJpYik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGdyb3Vwcy5wdXNoKG5ld0dyb3VwKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgcmV0dXJuIGdyb3VwcztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3N5bmNBdHRyaWJ1dGVTdGF0ZXNGcm9tQ3JpdGVyaWEoKXtcclxuICAgIHRoaXMub2JqZWN0QXR0cmlidXRlR3JvdXBzLmZvckVhY2goZ3JvdXA9PntcclxuICAgICAgZ3JvdXAuYXR0cmlidXRlcy5mb3JFYWNoKGF0dHJpYj0+e1xyXG4gICAgICAgIGNvbnN0IGNyaXRlcmlhID0gdGhpcy5fZmlsdGVyQ3JpdGVyaWEuZmluZCh4PT54LmlkID09IGF0dHJpYi5pZClcclxuICAgICAgICBpZihjcml0ZXJpYSl7XHJcbiAgICAgICAgICBhdHRyaWIuY2hlY2tlZCA9IHRydWU7XHJcbiAgICAgICAgICBhdHRyaWIudmFsdWVDaGVja2VkID0gY3JpdGVyaWEudmFsdWUgIT09IHVuZGVmaW5lZDtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIGF0dHJpYi5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICBhdHRyaWIudmFsdWVDaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2xvYWRPYmplY3RQcm9wZXJ0aWVzKG9iamVjdElkIDogc3RyaW5nLCByZXZpc2lvbiA6IG51bWJlciB8IHVuZGVmaW5lZCl7XHJcbiAgICBpZighdGhpcy5hcGkpe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZyb20odGhpcy5hcGkub2JqZWN0cy5nZXQob2JqZWN0SWQsIHJldmlzaW9uLCBcIjhcIiwgdW5kZWZpbmVkLCBmYWxzZSwgdW5kZWZpbmVkICkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfbG9hZE9iamVjdFN0cnVjdHVyZShvYmplY3RJZCA6IHN0cmluZywgcmV2aXNpb24gOiBudW1iZXIgfCB1bmRlZmluZWQpe1xyXG4gICAgaWYoIXRoaXMuYXBpKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmcm9tKHRoaXMuYXBpLm9iamVjdHMuZ2V0VG9wb2xvZ3kob2JqZWN0SWQsIHJldmlzaW9uLCBmYWxzZSwgZmFsc2UsIHVuZGVmaW5lZCkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfbG9hZE9iamVjdENvbXBsZXhQcm9wZXJ0aWVzU3RydWN0dXJlKG9iamVjdElkIDogc3RyaW5nLCByZXZpc2lvbiA6IG51bWJlciB8IHVuZGVmaW5lZCl7XHJcbiAgICBpZighdGhpcy5hcGkpe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZyb20odGhpcy5hcGkub2JqZWN0cy5nZXRDb21wbGV4UHJvcGVydGllc1RvcG9sb2d5KG9iamVjdElkLCByZXZpc2lvbikpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY3JlYXRlQ29tcGxleFByb3BlcnRpZXN0cnVjdHVyZShvYmplY3RJZCA6IHN0cmluZywgcmV2aXNpb24gOiBudW1iZXIgfCB1bmRlZmluZWQpe1xyXG4gICAgdGhpcy5fbG9hZE9iamVjdENvbXBsZXhQcm9wZXJ0aWVzU3RydWN0dXJlKG9iamVjdElkLCByZXZpc2lvbik/LnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQgOihzdHJ1Y3R1cmVEYXRhKT0+e1xyXG4gICAgICAgIGlmKHN0cnVjdHVyZURhdGEpe1xyXG4gICAgICAgICAgY29uc3QgY29tcGxleFByb3BzID0gQ29tcGxleFByb3BlcnRpZXNOb2RlQnVpbGRlci5jcmVhdGVGcm9tUmVzcG9uc2Uoc3RydWN0dXJlRGF0YSk7XHJcbiAgICAgICAgICBpZihjb21wbGV4UHJvcHM/LmNoaWxkcmVuPy5sZW5ndGgpe1xyXG4gICAgICAgICAgICB0aGlzLl9jb21wbGV4UHJvcGVydGllcyA9IGNvbXBsZXhQcm9wcztcclxuICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICB0aGlzLl9jb21wbGV4UHJvcGVydGllcyA9IG51bGw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSAgICBcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NyZWF0ZU9iamVjdFN0cnVjdHVyZShvYmplY3RJZCA6IHN0cmluZywgcmV2aXNpb24gOiBudW1iZXIgfCB1bmRlZmluZWQpe1xyXG4gICAgdGhpcy5fbG9hZE9iamVjdFN0cnVjdHVyZShvYmplY3RJZCwgcmV2aXNpb24pPy5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0IDooc3RydWN0dXJlRGF0YSk9PntcclxuICAgICAgICBpZihzdHJ1Y3R1cmVEYXRhKXtcclxuICAgICAgICAgIHRoaXMuX29iamVjdFN0cnVjdHVyZSA9IE9iamVjdFN0cnVjdHVyZU5vZGVCdWlsZGVyLmNyZWF0ZUZyb21SZXNwb25zZShzdHJ1Y3R1cmVEYXRhKTtcclxuICAgICAgICB9ICAgIFxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcblxyXG5cclxufVxyXG4iLCI8IS0tIE9iamVjdCBzdHJ1Y3R1cmUtLT5cclxuPGxpYi1leHBhbnNpb24tcGFuZWw+XHJcbiAgPGxpYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJjcml0ZXJpYS1zZWxlY3Qtb2JqZWN0LXByb3BlcnRpZXMtaGVhZGVyXCI+IHt7XCJfT2JqZWN0IHN0cnVjdHVyZVwiIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgPC9saWItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICBAaWYob2JqZWN0U3RydWN0dXJlKXtcclxuICAgIDxsaWItYmltcGx1cy1vYmplY3Qtc3RydWN0dXJlXHJcbiAgICAgIFtvYmplY3RTdHJ1Y3R1cmVdPVwib2JqZWN0U3RydWN0dXJlXCJcclxuICAgICAgKG5vZGVTZWxlY3RlZCk9XCJoYW5kbGVPYmplY3RTdHJ1Y3R1cmVOb2RlU2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgICA+XHJcbiAgICA8L2xpYi1iaW1wbHVzLW9iamVjdC1zdHJ1Y3R1cmU+ICBcclxuICB9XHJcbjwvbGliLWV4cGFuc2lvbi1wYW5lbD5cclxuPCEtLSBFbmQgT2JqZWN0IHN0cnVjdHVyZS0tPlxyXG5cclxuPCEtLSBDb21wbGV4IHByb3BlcnRpZXMtLT5cclxuQGlmKGNvbXBsZXhQcm9wZXJ0aWVzKXsgIFxyXG48bGliLWV4cGFuc2lvbi1wYW5lbD5cclxuICA8bGliLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcbiAgICA8c3BhbiBjbGFzcz1cImNyaXRlcmlhLXNlbGVjdC1vYmplY3QtcHJvcGVydGllcy1oZWFkZXJcIj4ge3tcIl9PYmplY3QgbXVsdGlwcm9wZXJ0aWVzIHRyZWVcIiB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gIDwvbGliLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcbiAgICA8bGliLWJpbXBsdXMtb2JqZWN0LWNvbXBsZXgtcHJvcGVydGllc1xyXG4gICAgICBbY29tcGxleFByb3BlcnRpZXNdPVwiY29tcGxleFByb3BlcnRpZXNcIlxyXG4gICAgICAobm9kZVNlbGVjdGVkKT1cImhhbmRsZUNvbXBsZXhQcm9wZXJ0eU5vZGVTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgID5cclxuICAgIDwvbGliLWJpbXBsdXMtb2JqZWN0LWNvbXBsZXgtcHJvcGVydGllcz4gIFxyXG48L2xpYi1leHBhbnNpb24tcGFuZWw+XHJcbn1cclxuPCEtLSBFbmQgQ29tcGxleCBwcm9wZXJ0aWVzLS0+XHJcblxyXG48IS0tIFByb3BlcnRpZXMgbGlzdC0tPlxyXG5AaWYob2JqZWN0QXR0cmlidXRlR3JvdXBzLmxlbmd0aCA+IDApeyAgXHJcbjxsaWItZXhwYW5zaW9uLXBhbmVsPlxyXG4gIDxsaWItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICAgIDxzcGFuIGNsYXNzPVwiY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzLWhlYWRlclwiPiB7e1wiX09iamVjdCBwcm9wZXJ0aWVzXCIgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICA8L2xpYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG5cclxuICBAZm9yIChhdHRyaWJHcm91cCBvZiBvYmplY3RBdHRyaWJ1dGVHcm91cHM7IHRyYWNrIGF0dHJpYkdyb3VwKSB7XHJcbiAgICA8bGliLWV4cGFuc2lvbi1wYW5lbCBbZXhwYW5kZWRdPVwiYXR0cmliR3JvdXAuZXhwYW5kZWRcIj5cclxuICAgICAgPGxpYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzLWdyb3VwLWhlYWRlclwiPiB7e2F0dHJpYkdyb3VwLm5hbWV9fTwvc3Bhbj5cclxuICAgICAgPC9saWItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICAgICAgPGRpdj5cclxuICAgICAgICBAZm9yIChhdHRyaWIgb2YgYXR0cmliR3JvdXAuYXR0cmlidXRlczsgdHJhY2sgYXR0cmliKSB7XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzLWF0dHJpYi1yb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNyaXRlcmlhLXNlbGVjdC1vYmplY3QtcHJvcGVydGllcy1hdHRyaWItcm93LWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzLWF0dHJpYi1yb3ctY2VsbCBjcml0ZXJpYS1zZWxlY3QtY2hlY2tib3hcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNyaXRlcmlhLXNlbGVjdC1vYmplY3QtcHJvcGVydGllcy1hdHRyaWItcm93LWNlbGwtbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJhdHRyaWIuY2hlY2tlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZpbHRlckNyaXRlcmlhLmxlbmd0aCA9PT0gTWF4RmlsdGVyQ3JpdGVyaWEgJiYgIWF0dHJpYi5jaGVja2VkXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlQXR0cmlidXRlKGF0dHJpYilcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzLWF0dHJpYi1yb3ctY2VsbC10ZXh0XCI+e3thdHRyaWIubmFtZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiAgY2xhc3M9XCJjcml0ZXJpYS1zZWxlY3Qtb2JqZWN0LXByb3BlcnRpZXMtYXR0cmliLXJvdy1jZWxsIGNyaXRlcmlhLXNlbGVjdC1jaGVja2JveFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzLWF0dHJpYi1yb3ctY2VsbC1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImF0dHJpYi52YWx1ZUNoZWNrZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmaWx0ZXJDcml0ZXJpYS5sZW5ndGggPT09IE1heEZpbHRlckNyaXRlcmlhICYmICFhdHRyaWIuY2hlY2tlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUF0dHJpYnV0ZVZhbHVlKGF0dHJpYilcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICBAaWYoYXR0cmliLnZhbHVlKXtcclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNyaXRlcmlhLXNlbGVjdC1vYmplY3QtcHJvcGVydGllcy1hdHRyaWItcm93LWNlbGwtdGV4dFwiPnt7YXR0cmliLnZhbHVlfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcml0ZXJpYS1zZWxlY3Qtb2JqZWN0LXByb3BlcnRpZXMtYXR0cmliLXJvdy1jZWxsLXRleHRcIj4uLi48L2Rpdj5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgICA8L2xpYi1leHBhbnNpb24tcGFuZWw+ICAgIFxyXG4gIH1cclxuPC9saWItZXhwYW5zaW9uLXBhbmVsPlxyXG59XHJcbjwhLS0gRW5kIFByb3BlcnRpZXMgbGlzdC0tPlxyXG4iXX0=
|