gamma-app-controller 2.0.25 → 4.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/application-controller/application-content.service.mjs +36 -36
- package/esm2020/lib/application-controller/application-controller.module.mjs +6 -1
- package/esm2020/lib/application-controller/application-dataset-component/create-dataset/create-dataset.component.mjs +2 -2
- package/esm2020/lib/application-controller/application-menu-controller/application-create-menu/application-create-menu.component.mjs +10 -27
- package/esm2020/lib/application-controller/application-view-components/create-comp-view/create-comp-view.component.mjs +6 -3
- package/esm2020/lib/application-controller/page-controller/page-config/page-config.component.mjs +3 -3
- package/esm2020/lib/application-controller/support-components/dash-chart/dash-chart.component.mjs +32 -167
- package/esm2020/lib/application-controller/support-components/dash-table/dash-table.component.mjs +4 -3
- package/esm2020/lib/application-controller/support-components/geo-map/geo-map.component.mjs +12 -228
- package/esm2020/lib/application-controller/support-components/heat-map/heat-map.component.mjs +32 -3
- package/esm2020/lib/application-controller/support-components/single-card/single-card.component.mjs +24 -34
- package/esm2020/lib/shared/advanced-component/gamm-single-number-card/gamm-single-number-card.component.mjs +3 -4
- package/esm2020/lib/shared/advanced-component/gamma-advance-chart/gamma-advance-chart.component.mjs +39 -109
- package/esm2020/lib/shared/advanced-component/gamma-advance-operator-table/gamma-advance-operator-table.component.mjs +15 -2
- package/esm2020/lib/shared/advanced-component/gamma-geo-chart/gamma-geo-chart.component.mjs +7 -272
- package/esm2020/lib/shared/advanced-component/gamma-heatmap/gamma-heatmap.component.mjs +68 -16
- package/esm2020/lib/shared/advanced-component/google-geo-map/google-geo-map.component.mjs +439 -0
- package/esm2020/lib/shared/gamma-bread-crumbs/bread-crumbs.component.mjs +66 -58
- package/esm2020/lib/shared/permission-helper.mjs +4 -35
- package/esm2020/lib/shared/template-dataset-call-service.mjs +5 -1
- package/esm2020/lib/shared/user-access/user-access.component.mjs +5 -5
- package/esm2020/lib/template-module/KpiCreationModule/create-kpi-tree.component.mjs +275 -153
- package/esm2020/lib/template-module/KpiCreationModule/createKpi.service.mjs +6 -37
- package/esm2020/lib/template-module/KpiCreationModule/treeview/components/basic/basic.component.mjs +3 -3
- package/esm2020/lib/template-module/KpiCreationModule/treeview/components/collapsable/collapsable.component.mjs +15 -4
- package/esm2020/lib/template-module/KpiCreationModule/treeview/treeview.component.mjs +6 -4
- package/esm2020/lib/template-module/bookmarked-template/bookmarked-layout.service.mjs +8 -8
- package/esm2020/lib/template-module/cdrConfigModule/cdr-browser.service.mjs +2 -2
- package/esm2020/lib/template-module/defaulLandingComponent/landing-component.component.mjs +2 -1
- package/esm2020/lib/template-module/defaulLandingComponent/landing-component.service.mjs +8 -8
- package/esm2020/lib/template-module/defaulLandingMultiLayoutComponent/defaulLandingMultiLayout.service.mjs +8 -8
- package/esm2020/lib/template-module/kpiWithMultiLayout/kpi-multi-layout.service.mjs +8 -8
- package/esm2020/lib/template-module/kpiWithSingleLayout/kpi-single-layout.service.mjs +8 -16
- package/esm2020/lib/template-module/kpiWithSingleLayout/kpi-with-dataset.component.mjs +9 -12
- package/esm2020/public-api.mjs +3 -1
- package/fesm2015/gamma-app-controller.mjs +8857 -8951
- package/fesm2015/gamma-app-controller.mjs.map +1 -1
- package/fesm2020/gamma-app-controller.mjs +9471 -9578
- package/fesm2020/gamma-app-controller.mjs.map +1 -1
- package/lib/application-controller/application-content.service.d.ts +1 -1
- package/lib/application-controller/application-controller.module.d.ts +26 -25
- package/lib/application-controller/application-menu-controller/application-create-menu/application-create-menu.component.d.ts +0 -2
- package/lib/application-controller/support-components/dash-chart/dash-chart.component.d.ts +3 -18
- package/lib/application-controller/support-components/geo-map/geo-map.component.d.ts +2 -46
- package/lib/application-controller/support-components/heat-map/heat-map.component.d.ts +5 -0
- package/lib/application-controller/support-components/single-card/single-card.component.d.ts +2 -5
- package/lib/shared/advanced-component/gamm-single-number-card/gamm-single-number-card.component.d.ts +0 -1
- package/lib/shared/advanced-component/gamma-advance-chart/gamma-advance-chart.component.d.ts +1 -3
- package/lib/shared/advanced-component/gamma-advance-operator-table/gamma-advance-operator-table.component.d.ts +1 -0
- package/lib/shared/advanced-component/gamma-geo-chart/gamma-geo-chart.component.d.ts +0 -40
- package/lib/shared/advanced-component/gamma-heatmap/gamma-heatmap.component.d.ts +3 -1
- package/lib/shared/advanced-component/google-geo-map/google-geo-map.component.d.ts +62 -0
- package/lib/shared/gamma-bread-crumbs/bread-crumbs.component.d.ts +0 -2
- package/lib/shared/permission-helper.d.ts +0 -1
- package/lib/template-module/KpiCreationModule/create-kpi-tree.component.d.ts +15 -11
- package/lib/template-module/KpiCreationModule/createKpi.service.d.ts +0 -4
- package/lib/template-module/kpiWithSingleLayout/kpi-single-layout.service.d.ts +0 -1
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
|
@@ -17,7 +17,7 @@ export class UserAccessComponent {
|
|
|
17
17
|
this.userOptionContainer = [
|
|
18
18
|
{
|
|
19
19
|
entityName: 'user',
|
|
20
|
-
entityValues: ['{USER}']
|
|
20
|
+
entityValues: ['${USER}']
|
|
21
21
|
}
|
|
22
22
|
];
|
|
23
23
|
this.emitChanges();
|
|
@@ -26,7 +26,7 @@ export class UserAccessComponent {
|
|
|
26
26
|
addNewUser() {
|
|
27
27
|
this.userOptionContainer.push({
|
|
28
28
|
entityName: 'user',
|
|
29
|
-
entityValues: ['{USER}']
|
|
29
|
+
entityValues: ['${USER}']
|
|
30
30
|
});
|
|
31
31
|
this.emitChanges();
|
|
32
32
|
}
|
|
@@ -39,13 +39,13 @@ export class UserAccessComponent {
|
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
UserAccessComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: UserAccessComponent, deps: [{ token: i1.CommonService }], target: i0.ɵɵFactoryTarget.Component });
|
|
42
|
-
UserAccessComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: UserAccessComponent, selector: "app-user-access", inputs: { userOptionContainer: "userOptionContainer" }, outputs: { userOptionContainerChange: "userOptionContainerChange" }, ngImport: i0, template: "<div class=\"p-4 w-full\">\n <div class=\"m-3 p-4 bg-white border border-gray-200 rounded-lg shadow-md dark:bg-gray-800 dark:border-gray-700\">\n\n <h6 class=\"mb-2 text-lg tracking-tight text-gray-900 dark:text-white border-b pb-3 flex items-center\">\n
|
|
42
|
+
UserAccessComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: UserAccessComponent, selector: "app-user-access", inputs: { userOptionContainer: "userOptionContainer" }, outputs: { userOptionContainerChange: "userOptionContainerChange" }, ngImport: i0, template: "<div class=\"p-4 w-full\">\n <div class=\"m-3 p-4 bg-white border border-gray-200 rounded-lg shadow-md dark:bg-gray-800 dark:border-gray-700\">\n\n <h6 class=\"mb-2 text-lg tracking-tight text-gray-900 dark:text-white border-b pb-3 flex items-center\">\n User Information\n <div class=\"ml-auto\">\n <div class=\"{{ commonService?.btn_primary_md }}\" (click)=\"addNewUser()\">\n Add Permission Entity\n </div>\n </div>\n </h6>\n\n <div class=\"w-full m-2\">\n <ng-container *ngFor=\"let item of userOptionContainer; let i = index\">\n <div class=\"flex flex-row\">\n\n <!-- Accessible User Type -->\n <div class=\"mx-2 w-1/4\">\n <div class=\"text-md p-2 capitalize\">Entity Type</div>\n <dx-select-box [items]=\"menuType\" [(ngModel)]=\"item.entityName\" (onValueChanged)=\"emitChanges()\">\n </dx-select-box>\n </div>\n\n <!-- User -->\n <div class=\"mx-2 w-1/4\">\n <div class=\"text-md p-2 capitalize\">Entity Value</div>\n <dx-tag-box [(ngModel)]=\"item.entityValues\" [acceptCustomValue]=\"true\" (onValueChanged)=\"emitChanges()\">\n </dx-tag-box>\n </div>\n\n <!-- Delete -->\n <div class=\"mx-2\">\n <div class=\"text-md p-2 capitalize\"></div>\n <div class=\"mt-4\">\n <div class=\"{{ commonService?.btn_danger_md }}\" (click)=\"deleteUser(i)\">\n Delete\n </div>\n </div>\n </div>\n\n </div>\n </ng-container>\n </div>\n </div>\n</div>", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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: "component", type: i4.DxSelectBoxComponent, selector: "dx-select-box", inputs: ["acceptCustomValue", "accessKey", "activeStateEnabled", "buttons", "dataSource", "deferRendering", "disabled", "displayExpr", "displayValue", "dropDownButtonTemplate", "dropDownOptions", "elementAttr", "fieldTemplate", "focusStateEnabled", "grouped", "groupTemplate", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "items", "itemTemplate", "label", "labelMode", "maxLength", "minSearchLength", "name", "noDataText", "opened", "openOnFieldClick", "placeholder", "readOnly", "rtlEnabled", "searchEnabled", "searchExpr", "searchMode", "searchTimeout", "selectedItem", "showClearButton", "showDataBeforeSearch", "showDropDownButton", "showSelectionControls", "spellcheck", "stylingMode", "tabIndex", "text", "useItemTextAsTitle", "validationError", "validationErrors", "validationMessageMode", "validationStatus", "value", "valueChangeEvent", "valueExpr", "visible", "width", "wrapItemText"], outputs: ["onChange", "onClosed", "onContentReady", "onCopy", "onCustomItemCreating", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onItemClick", "onKeyDown", "onKeyUp", "onOpened", "onOptionChanged", "onPaste", "onSelectionChanged", "onValueChanged", "acceptCustomValueChange", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "displayExprChange", "displayValueChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "elementAttrChange", "fieldTemplateChange", "focusStateEnabledChange", "groupedChange", "groupTemplateChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "itemsChange", "itemTemplateChange", "labelChange", "labelModeChange", "maxLengthChange", "minSearchLengthChange", "nameChange", "noDataTextChange", "openedChange", "openOnFieldClickChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "searchEnabledChange", "searchExprChange", "searchModeChange", "searchTimeoutChange", "selectedItemChange", "showClearButtonChange", "showDataBeforeSearchChange", "showDropDownButtonChange", "showSelectionControlsChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useItemTextAsTitleChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "valueExprChange", "visibleChange", "widthChange", "wrapItemTextChange", "onBlur"] }, { kind: "component", type: i5.DxTagBoxComponent, selector: "dx-tag-box", inputs: ["acceptCustomValue", "accessKey", "activeStateEnabled", "applyValueMode", "buttons", "dataSource", "deferRendering", "disabled", "displayExpr", "dropDownButtonTemplate", "dropDownOptions", "elementAttr", "fieldTemplate", "focusStateEnabled", "grouped", "groupTemplate", "height", "hideSelectedItems", "hint", "hoverStateEnabled", "inputAttr", "isValid", "items", "itemTemplate", "label", "labelMode", "maxDisplayedTags", "maxFilterQueryLength", "maxLength", "minSearchLength", "multiline", "name", "noDataText", "opened", "openOnFieldClick", "placeholder", "readOnly", "rtlEnabled", "searchEnabled", "searchExpr", "searchMode", "searchTimeout", "selectAllMode", "selectAllText", "selectedItems", "showClearButton", "showDataBeforeSearch", "showDropDownButton", "showMultiTagOnly", "showSelectionControls", "stylingMode", "tabIndex", "tagTemplate", "text", "useItemTextAsTitle", "validationError", "validationErrors", "validationMessageMode", "validationStatus", "value", "valueExpr", "visible", "width", "wrapItemText"], outputs: ["onChange", "onClosed", "onContentReady", "onCustomItemCreating", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onItemClick", "onKeyDown", "onKeyUp", "onMultiTagPreparing", "onOpened", "onOptionChanged", "onSelectAllValueChanged", "onSelectionChanged", "onValueChanged", "acceptCustomValueChange", "accessKeyChange", "activeStateEnabledChange", "applyValueModeChange", "buttonsChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "displayExprChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "elementAttrChange", "fieldTemplateChange", "focusStateEnabledChange", "groupedChange", "groupTemplateChange", "heightChange", "hideSelectedItemsChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "itemsChange", "itemTemplateChange", "labelChange", "labelModeChange", "maxDisplayedTagsChange", "maxFilterQueryLengthChange", "maxLengthChange", "minSearchLengthChange", "multilineChange", "nameChange", "noDataTextChange", "openedChange", "openOnFieldClickChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "searchEnabledChange", "searchExprChange", "searchModeChange", "searchTimeoutChange", "selectAllModeChange", "selectAllTextChange", "selectedItemsChange", "showClearButtonChange", "showDataBeforeSearchChange", "showDropDownButtonChange", "showMultiTagOnlyChange", "showSelectionControlsChange", "stylingModeChange", "tabIndexChange", "tagTemplateChange", "textChange", "useItemTextAsTitleChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationStatusChange", "valueChange", "valueExprChange", "visibleChange", "widthChange", "wrapItemTextChange", "onBlur"] }] });
|
|
43
43
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: UserAccessComponent, decorators: [{
|
|
44
44
|
type: Component,
|
|
45
|
-
args: [{ selector: 'app-user-access', template: "<div class=\"p-4 w-full\">\n <div class=\"m-3 p-4 bg-white border border-gray-200 rounded-lg shadow-md dark:bg-gray-800 dark:border-gray-700\">\n\n <h6 class=\"mb-2 text-lg tracking-tight text-gray-900 dark:text-white border-b pb-3 flex items-center\">\n
|
|
45
|
+
args: [{ selector: 'app-user-access', template: "<div class=\"p-4 w-full\">\n <div class=\"m-3 p-4 bg-white border border-gray-200 rounded-lg shadow-md dark:bg-gray-800 dark:border-gray-700\">\n\n <h6 class=\"mb-2 text-lg tracking-tight text-gray-900 dark:text-white border-b pb-3 flex items-center\">\n User Information\n <div class=\"ml-auto\">\n <div class=\"{{ commonService?.btn_primary_md }}\" (click)=\"addNewUser()\">\n Add Permission Entity\n </div>\n </div>\n </h6>\n\n <div class=\"w-full m-2\">\n <ng-container *ngFor=\"let item of userOptionContainer; let i = index\">\n <div class=\"flex flex-row\">\n\n <!-- Accessible User Type -->\n <div class=\"mx-2 w-1/4\">\n <div class=\"text-md p-2 capitalize\">Entity Type</div>\n <dx-select-box [items]=\"menuType\" [(ngModel)]=\"item.entityName\" (onValueChanged)=\"emitChanges()\">\n </dx-select-box>\n </div>\n\n <!-- User -->\n <div class=\"mx-2 w-1/4\">\n <div class=\"text-md p-2 capitalize\">Entity Value</div>\n <dx-tag-box [(ngModel)]=\"item.entityValues\" [acceptCustomValue]=\"true\" (onValueChanged)=\"emitChanges()\">\n </dx-tag-box>\n </div>\n\n <!-- Delete -->\n <div class=\"mx-2\">\n <div class=\"text-md p-2 capitalize\"></div>\n <div class=\"mt-4\">\n <div class=\"{{ commonService?.btn_danger_md }}\" (click)=\"deleteUser(i)\">\n Delete\n </div>\n </div>\n </div>\n\n </div>\n </ng-container>\n </div>\n </div>\n</div>" }]
|
|
46
46
|
}], ctorParameters: function () { return [{ type: i1.CommonService }]; }, propDecorators: { userOptionContainer: [{
|
|
47
47
|
type: Input
|
|
48
48
|
}], userOptionContainerChange: [{
|
|
49
49
|
type: Output
|
|
50
50
|
}] } });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hY2Nlc3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2FtbWEtYXBwLWNvbnRyb2xsZXIvc3JjL2xpYi9zaGFyZWQvdXNlci1hY2Nlc3MvdXNlci1hY2Nlc3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2FtbWEtYXBwLWNvbnRyb2xsZXIvc3JjL2xpYi9zaGFyZWQvdXNlci1hY2Nlc3MvdXNlci1hY2Nlc3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQVkvRSxNQUFNLE9BQU8sbUJBQW1CO0lBVTVCLFlBQ1MsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFSOUIsd0JBQW1CLEdBQWlCLEVBQUUsQ0FBQztRQUd0Qyw4QkFBeUIsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUV2RSxhQUFRLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQU1oRSxDQUFDO0lBRUgsUUFBUTtRQUVOLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDdEUsSUFBSSxDQUFDLG1CQUFtQixHQUFHO2dCQUN6QjtvQkFDRSxVQUFVLEVBQUUsTUFBTTtvQkFDbEIsWUFBWSxFQUFFLENBQUMsU0FBUyxDQUFDO2lCQUMxQjthQUNGLENBQUM7WUFDRixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDcEI7SUFDSCxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUM7WUFDNUIsVUFBVSxFQUFFLE1BQU07WUFDbEIsWUFBWSxFQUFFLENBQUMsU0FBUyxDQUFDO1NBQzFCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWE7UUFDdEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFhRCxXQUFXO1FBRVQsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNoRSxDQUFDOztnSEF4RFUsbUJBQW1CO29HQUFuQixtQkFBbUIsb0xDWmhDLDZtREE0Q007MkZEaENPLG1CQUFtQjtrQkFKL0IsU0FBUzsrQkFDRSxpQkFBaUI7b0dBTWxCLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFHSSx5QkFBeUI7c0JBQWxDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXBwbGljYXRpb24tY29udHJvbGxlci9jb21tb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJPcHRpb24ge1xuICBlbnRpdHlOYW1lOiBzdHJpbmc7XG4gIGVudGl0eVZhbHVlczogc3RyaW5nW107XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC11c2VyLWFjY2VzcycsXG4gIHRlbXBsYXRlVXJsOiAnLi91c2VyLWFjY2Vzcy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgVXNlckFjY2Vzc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgLyoqIElucHV0IGZyb20gcGFyZW50ICovXG4gIEBJbnB1dCgpIHVzZXJPcHRpb25Db250YWluZXI6IFVzZXJPcHRpb25bXSA9IFtdO1xuXG4gIC8qKiBPdXRwdXQgdG8gcGFyZW50ICovXG4gIEBPdXRwdXQoKSB1c2VyT3B0aW9uQ29udGFpbmVyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxVc2VyT3B0aW9uW10+KCk7XG5cbiAgbWVudVR5cGUgPSBbJ3VzZXInLCAncm9sZScsICdncm91cCcsICd0ZW5hbnQnLCAnc2VydmljZV9hY2NvdW50J107XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgIHB1YmxpYyBjb21tb25TZXJ2aWNlOiBDb21tb25TZXJ2aWNlXG4gICAgKSB7XG4gIFxuICAgIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBJZiBpbnB1dCBpcyBlbXB0eSBvciB1bmRlZmluZWQsIHNldCBkZWZhdWx0XG4gICAgaWYgKCF0aGlzLnVzZXJPcHRpb25Db250YWluZXIgfHwgdGhpcy51c2VyT3B0aW9uQ29udGFpbmVyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy51c2VyT3B0aW9uQ29udGFpbmVyID0gW1xuICAgICAgICB7XG4gICAgICAgICAgZW50aXR5TmFtZTogJ3VzZXInLFxuICAgICAgICAgIGVudGl0eVZhbHVlczogWycke1VTRVJ9J11cbiAgICAgICAgfVxuICAgICAgXTtcbiAgICAgIHRoaXMuZW1pdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICBhZGROZXdVc2VyKCk6IHZvaWQge1xuICAgIHRoaXMudXNlck9wdGlvbkNvbnRhaW5lci5wdXNoKHtcbiAgICAgIGVudGl0eU5hbWU6ICd1c2VyJyxcbiAgICAgIGVudGl0eVZhbHVlczogWycke1VTRVJ9J11cbiAgICB9KTtcbiAgICB0aGlzLmVtaXRDaGFuZ2VzKCk7XG4gIH1cblxuICBkZWxldGVVc2VyKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnVzZXJPcHRpb25Db250YWluZXIuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB0aGlzLmVtaXRDaGFuZ2VzKCk7XG4gIH1cblxuICAvLyBvbkN1c3RvbURpbWVudGlvbkNyZWF0aW5nKGFyZ3MpIHtcbiAgLy8gICBjb25zdCBuZXdWYWx1ZSA9IGFyZ3MudGV4dDtcbiAgLy8gICBhcmdzLmN1c3RvbUl0ZW0gPSBuZXdWYWx1ZTtcbiAgLy8gICBjb25zdCBpc0l0ZW1JbkRhdGFTb3VyY2UgPSB0aGlzLmF2YWlsYWJsZURpbWVudGlvbi5zb21lKChpdGVtKSA9PiBpdGVtID09PSBuZXdWYWx1ZSk7XG4gIC8vICAgaWYgKCFpc0l0ZW1JbkRhdGFTb3VyY2UpIHtcbiAgLy8gICAgIHRoaXMuYXZhaWxhYmxlRGltZW50aW9uLnVuc2hpZnQobmV3VmFsdWUpO1xuICAvLyAgIH1cblxuXG4gIC8vIH1cblxuICBlbWl0Q2hhbmdlcygpOiB2b2lkIHtcbiAgICBcbiAgICB0aGlzLnVzZXJPcHRpb25Db250YWluZXJDaGFuZ2UuZW1pdCh0aGlzLnVzZXJPcHRpb25Db250YWluZXIpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicC00IHctZnVsbFwiPlxuICA8ZGl2IGNsYXNzPVwibS0zIHAtNCBiZy13aGl0ZSBib3JkZXIgYm9yZGVyLWdyYXktMjAwIHJvdW5kZWQtbGcgc2hhZG93LW1kIGRhcms6YmctZ3JheS04MDAgZGFyazpib3JkZXItZ3JheS03MDBcIj5cblxuICAgIDxoNiBjbGFzcz1cIm1iLTIgdGV4dC1sZyB0cmFja2luZy10aWdodCB0ZXh0LWdyYXktOTAwIGRhcms6dGV4dC13aGl0ZSBib3JkZXItYiBwYi0zIGZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICBVc2VyIEluZm9ybWF0aW9uXG4gICAgICA8ZGl2IGNsYXNzPVwibWwtYXV0b1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwie3sgY29tbW9uU2VydmljZT8uYnRuX3ByaW1hcnlfbWQgfX1cIiAoY2xpY2spPVwiYWRkTmV3VXNlcigpXCI+XG4gICAgICAgICAgQWRkIFBlcm1pc3Npb24gRW50aXR5XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9oNj5cblxuICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgbS0yXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHVzZXJPcHRpb25Db250YWluZXI7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3dcIj5cblxuICAgICAgICAgIDwhLS0gQWNjZXNzaWJsZSBVc2VyIFR5cGUgLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm14LTIgdy0xLzRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW1kIHAtMiBjYXBpdGFsaXplXCI+RW50aXR5IFR5cGU8L2Rpdj5cbiAgICAgICAgICAgIDxkeC1zZWxlY3QtYm94IFtpdGVtc109XCJtZW51VHlwZVwiIFsobmdNb2RlbCldPVwiaXRlbS5lbnRpdHlOYW1lXCIgKG9uVmFsdWVDaGFuZ2VkKT1cImVtaXRDaGFuZ2VzKClcIj5cbiAgICAgICAgICAgIDwvZHgtc2VsZWN0LWJveD5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwhLS0gVXNlciAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibXgtMiB3LTEvNFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbWQgcC0yIGNhcGl0YWxpemVcIj5FbnRpdHkgVmFsdWU8L2Rpdj5cbiAgICAgICAgICAgIDxkeC10YWctYm94IFsobmdNb2RlbCldPVwiaXRlbS5lbnRpdHlWYWx1ZXNcIiBbYWNjZXB0Q3VzdG9tVmFsdWVdPVwidHJ1ZVwiIChvblZhbHVlQ2hhbmdlZCk9XCJlbWl0Q2hhbmdlcygpXCI+XG4gICAgICAgICAgICA8L2R4LXRhZy1ib3g+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8IS0tIERlbGV0ZSAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibXgtMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbWQgcC0yIGNhcGl0YWxpemVcIj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC00XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ7eyBjb21tb25TZXJ2aWNlPy5idG5fZGFuZ2VyX21kIH19XCIgKGNsaWNrKT1cImRlbGV0ZVVzZXIoaSlcIj5cbiAgICAgICAgICAgICAgICBEZWxldGVcbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|