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.
Files changed (59) hide show
  1. package/esm2020/lib/application-controller/application-content.service.mjs +36 -36
  2. package/esm2020/lib/application-controller/application-controller.module.mjs +6 -1
  3. package/esm2020/lib/application-controller/application-dataset-component/create-dataset/create-dataset.component.mjs +2 -2
  4. package/esm2020/lib/application-controller/application-menu-controller/application-create-menu/application-create-menu.component.mjs +10 -27
  5. package/esm2020/lib/application-controller/application-view-components/create-comp-view/create-comp-view.component.mjs +6 -3
  6. package/esm2020/lib/application-controller/page-controller/page-config/page-config.component.mjs +3 -3
  7. package/esm2020/lib/application-controller/support-components/dash-chart/dash-chart.component.mjs +32 -167
  8. package/esm2020/lib/application-controller/support-components/dash-table/dash-table.component.mjs +4 -3
  9. package/esm2020/lib/application-controller/support-components/geo-map/geo-map.component.mjs +12 -228
  10. package/esm2020/lib/application-controller/support-components/heat-map/heat-map.component.mjs +32 -3
  11. package/esm2020/lib/application-controller/support-components/single-card/single-card.component.mjs +24 -34
  12. package/esm2020/lib/shared/advanced-component/gamm-single-number-card/gamm-single-number-card.component.mjs +3 -4
  13. package/esm2020/lib/shared/advanced-component/gamma-advance-chart/gamma-advance-chart.component.mjs +39 -109
  14. package/esm2020/lib/shared/advanced-component/gamma-advance-operator-table/gamma-advance-operator-table.component.mjs +15 -2
  15. package/esm2020/lib/shared/advanced-component/gamma-geo-chart/gamma-geo-chart.component.mjs +7 -272
  16. package/esm2020/lib/shared/advanced-component/gamma-heatmap/gamma-heatmap.component.mjs +68 -16
  17. package/esm2020/lib/shared/advanced-component/google-geo-map/google-geo-map.component.mjs +439 -0
  18. package/esm2020/lib/shared/gamma-bread-crumbs/bread-crumbs.component.mjs +66 -58
  19. package/esm2020/lib/shared/permission-helper.mjs +4 -35
  20. package/esm2020/lib/shared/template-dataset-call-service.mjs +5 -1
  21. package/esm2020/lib/shared/user-access/user-access.component.mjs +5 -5
  22. package/esm2020/lib/template-module/KpiCreationModule/create-kpi-tree.component.mjs +275 -153
  23. package/esm2020/lib/template-module/KpiCreationModule/createKpi.service.mjs +6 -37
  24. package/esm2020/lib/template-module/KpiCreationModule/treeview/components/basic/basic.component.mjs +3 -3
  25. package/esm2020/lib/template-module/KpiCreationModule/treeview/components/collapsable/collapsable.component.mjs +15 -4
  26. package/esm2020/lib/template-module/KpiCreationModule/treeview/treeview.component.mjs +6 -4
  27. package/esm2020/lib/template-module/bookmarked-template/bookmarked-layout.service.mjs +8 -8
  28. package/esm2020/lib/template-module/cdrConfigModule/cdr-browser.service.mjs +2 -2
  29. package/esm2020/lib/template-module/defaulLandingComponent/landing-component.component.mjs +2 -1
  30. package/esm2020/lib/template-module/defaulLandingComponent/landing-component.service.mjs +8 -8
  31. package/esm2020/lib/template-module/defaulLandingMultiLayoutComponent/defaulLandingMultiLayout.service.mjs +8 -8
  32. package/esm2020/lib/template-module/kpiWithMultiLayout/kpi-multi-layout.service.mjs +8 -8
  33. package/esm2020/lib/template-module/kpiWithSingleLayout/kpi-single-layout.service.mjs +8 -16
  34. package/esm2020/lib/template-module/kpiWithSingleLayout/kpi-with-dataset.component.mjs +9 -12
  35. package/esm2020/public-api.mjs +3 -1
  36. package/fesm2015/gamma-app-controller.mjs +8857 -8951
  37. package/fesm2015/gamma-app-controller.mjs.map +1 -1
  38. package/fesm2020/gamma-app-controller.mjs +9471 -9578
  39. package/fesm2020/gamma-app-controller.mjs.map +1 -1
  40. package/lib/application-controller/application-content.service.d.ts +1 -1
  41. package/lib/application-controller/application-controller.module.d.ts +26 -25
  42. package/lib/application-controller/application-menu-controller/application-create-menu/application-create-menu.component.d.ts +0 -2
  43. package/lib/application-controller/support-components/dash-chart/dash-chart.component.d.ts +3 -18
  44. package/lib/application-controller/support-components/geo-map/geo-map.component.d.ts +2 -46
  45. package/lib/application-controller/support-components/heat-map/heat-map.component.d.ts +5 -0
  46. package/lib/application-controller/support-components/single-card/single-card.component.d.ts +2 -5
  47. package/lib/shared/advanced-component/gamm-single-number-card/gamm-single-number-card.component.d.ts +0 -1
  48. package/lib/shared/advanced-component/gamma-advance-chart/gamma-advance-chart.component.d.ts +1 -3
  49. package/lib/shared/advanced-component/gamma-advance-operator-table/gamma-advance-operator-table.component.d.ts +1 -0
  50. package/lib/shared/advanced-component/gamma-geo-chart/gamma-geo-chart.component.d.ts +0 -40
  51. package/lib/shared/advanced-component/gamma-heatmap/gamma-heatmap.component.d.ts +3 -1
  52. package/lib/shared/advanced-component/google-geo-map/google-geo-map.component.d.ts +62 -0
  53. package/lib/shared/gamma-bread-crumbs/bread-crumbs.component.d.ts +0 -2
  54. package/lib/shared/permission-helper.d.ts +0 -1
  55. package/lib/template-module/KpiCreationModule/create-kpi-tree.component.d.ts +15 -11
  56. package/lib/template-module/KpiCreationModule/createKpi.service.d.ts +0 -4
  57. package/lib/template-module/kpiWithSingleLayout/kpi-single-layout.service.d.ts +0 -1
  58. package/package.json +1 -1
  59. 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 Manage Permissions\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"] }] });
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 Manage Permissions\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>" }]
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hY2Nlc3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2FtbWEtYXBwLWNvbnRyb2xsZXIvc3JjL2xpYi9zaGFyZWQvdXNlci1hY2Nlc3MvdXNlci1hY2Nlc3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2FtbWEtYXBwLWNvbnRyb2xsZXIvc3JjL2xpYi9zaGFyZWQvdXNlci1hY2Nlc3MvdXNlci1hY2Nlc3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQVkvRSxNQUFNLE9BQU8sbUJBQW1CO0lBVTVCLFlBQ1MsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFSOUIsd0JBQW1CLEdBQWlCLEVBQUUsQ0FBQztRQUd0Qyw4QkFBeUIsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUV2RSxhQUFRLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQU1oRSxDQUFDO0lBRUgsUUFBUTtRQUVOLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDdEUsSUFBSSxDQUFDLG1CQUFtQixHQUFHO2dCQUN6QjtvQkFDRSxVQUFVLEVBQUUsTUFBTTtvQkFDbEIsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDO2lCQUN6QjthQUNGLENBQUM7WUFDRixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDcEI7SUFDSCxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUM7WUFDNUIsVUFBVSxFQUFFLE1BQU07WUFDbEIsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDO1NBQ3pCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWE7UUFDdEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFhRCxXQUFXO1FBRVQsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNoRSxDQUFDOztnSEF4RFUsbUJBQW1CO29HQUFuQixtQkFBbUIsb0xDWmhDLCttREE0Q007MkZEaENPLG1CQUFtQjtrQkFKL0IsU0FBUzsrQkFDRSxpQkFBaUI7b0dBTWxCLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFHSSx5QkFBeUI7c0JBQWxDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXBwbGljYXRpb24tY29udHJvbGxlci9jb21tb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJPcHRpb24ge1xuICBlbnRpdHlOYW1lOiBzdHJpbmc7XG4gIGVudGl0eVZhbHVlczogc3RyaW5nW107XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC11c2VyLWFjY2VzcycsXG4gIHRlbXBsYXRlVXJsOiAnLi91c2VyLWFjY2Vzcy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgVXNlckFjY2Vzc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgLyoqIElucHV0IGZyb20gcGFyZW50ICovXG4gIEBJbnB1dCgpIHVzZXJPcHRpb25Db250YWluZXI6IFVzZXJPcHRpb25bXSA9IFtdO1xuXG4gIC8qKiBPdXRwdXQgdG8gcGFyZW50ICovXG4gIEBPdXRwdXQoKSB1c2VyT3B0aW9uQ29udGFpbmVyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxVc2VyT3B0aW9uW10+KCk7XG5cbiAgbWVudVR5cGUgPSBbJ3VzZXInLCAncm9sZScsICdncm91cCcsICd0ZW5hbnQnLCAnc2VydmljZV9hY2NvdW50J107XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgIHB1YmxpYyBjb21tb25TZXJ2aWNlOiBDb21tb25TZXJ2aWNlXG4gICAgKSB7XG4gIFxuICAgIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBJZiBpbnB1dCBpcyBlbXB0eSBvciB1bmRlZmluZWQsIHNldCBkZWZhdWx0XG4gICAgaWYgKCF0aGlzLnVzZXJPcHRpb25Db250YWluZXIgfHwgdGhpcy51c2VyT3B0aW9uQ29udGFpbmVyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy51c2VyT3B0aW9uQ29udGFpbmVyID0gW1xuICAgICAgICB7XG4gICAgICAgICAgZW50aXR5TmFtZTogJ3VzZXInLFxuICAgICAgICAgIGVudGl0eVZhbHVlczogWyd7VVNFUn0nXVxuICAgICAgICB9XG4gICAgICBdO1xuICAgICAgdGhpcy5lbWl0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxuXG4gIGFkZE5ld1VzZXIoKTogdm9pZCB7XG4gICAgdGhpcy51c2VyT3B0aW9uQ29udGFpbmVyLnB1c2goe1xuICAgICAgZW50aXR5TmFtZTogJ3VzZXInLFxuICAgICAgZW50aXR5VmFsdWVzOiBbJ3tVU0VSfSddXG4gICAgfSk7XG4gICAgdGhpcy5lbWl0Q2hhbmdlcygpO1xuICB9XG5cbiAgZGVsZXRlVXNlcihpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy51c2VyT3B0aW9uQ29udGFpbmVyLnNwbGljZShpbmRleCwgMSk7XG4gICAgdGhpcy5lbWl0Q2hhbmdlcygpO1xuICB9XG5cbiAgLy8gb25DdXN0b21EaW1lbnRpb25DcmVhdGluZyhhcmdzKSB7XG4gIC8vICAgY29uc3QgbmV3VmFsdWUgPSBhcmdzLnRleHQ7XG4gIC8vICAgYXJncy5jdXN0b21JdGVtID0gbmV3VmFsdWU7XG4gIC8vICAgY29uc3QgaXNJdGVtSW5EYXRhU291cmNlID0gdGhpcy5hdmFpbGFibGVEaW1lbnRpb24uc29tZSgoaXRlbSkgPT4gaXRlbSA9PT0gbmV3VmFsdWUpO1xuICAvLyAgIGlmICghaXNJdGVtSW5EYXRhU291cmNlKSB7XG4gIC8vICAgICB0aGlzLmF2YWlsYWJsZURpbWVudGlvbi51bnNoaWZ0KG5ld1ZhbHVlKTtcbiAgLy8gICB9XG5cblxuICAvLyB9XG5cbiAgZW1pdENoYW5nZXMoKTogdm9pZCB7XG4gICAgXG4gICAgdGhpcy51c2VyT3B0aW9uQ29udGFpbmVyQ2hhbmdlLmVtaXQodGhpcy51c2VyT3B0aW9uQ29udGFpbmVyKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInAtNCB3LWZ1bGxcIj5cbiAgPGRpdiBjbGFzcz1cIm0tMyBwLTQgYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ncmF5LTIwMCByb3VuZGVkLWxnIHNoYWRvdy1tZCBkYXJrOmJnLWdyYXktODAwIGRhcms6Ym9yZGVyLWdyYXktNzAwXCI+XG5cbiAgICA8aDYgY2xhc3M9XCJtYi0yIHRleHQtbGcgdHJhY2tpbmctdGlnaHQgdGV4dC1ncmF5LTkwMCBkYXJrOnRleHQtd2hpdGUgYm9yZGVyLWIgcGItMyBmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgTWFuYWdlIFBlcm1pc3Npb25zXG4gICAgICA8ZGl2IGNsYXNzPVwibWwtYXV0b1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwie3sgY29tbW9uU2VydmljZT8uYnRuX3ByaW1hcnlfbWQgfX1cIiAoY2xpY2spPVwiYWRkTmV3VXNlcigpXCI+XG4gICAgICAgICAgQWRkIFBlcm1pc3Npb24gRW50aXR5XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9oNj5cblxuICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgbS0yXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHVzZXJPcHRpb25Db250YWluZXI7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3dcIj5cblxuICAgICAgICAgIDwhLS0gQWNjZXNzaWJsZSBVc2VyIFR5cGUgLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm14LTIgdy0xLzRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW1kIHAtMiBjYXBpdGFsaXplXCI+RW50aXR5IFR5cGU8L2Rpdj5cbiAgICAgICAgICAgIDxkeC1zZWxlY3QtYm94IFtpdGVtc109XCJtZW51VHlwZVwiIFsobmdNb2RlbCldPVwiaXRlbS5lbnRpdHlOYW1lXCIgKG9uVmFsdWVDaGFuZ2VkKT1cImVtaXRDaGFuZ2VzKClcIj5cbiAgICAgICAgICAgIDwvZHgtc2VsZWN0LWJveD5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwhLS0gVXNlciAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibXgtMiB3LTEvNFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbWQgcC0yIGNhcGl0YWxpemVcIj5FbnRpdHkgVmFsdWU8L2Rpdj5cbiAgICAgICAgICAgIDxkeC10YWctYm94IFsobmdNb2RlbCldPVwiaXRlbS5lbnRpdHlWYWx1ZXNcIiBbYWNjZXB0Q3VzdG9tVmFsdWVdPVwidHJ1ZVwiIChvblZhbHVlQ2hhbmdlZCk9XCJlbWl0Q2hhbmdlcygpXCI+XG4gICAgICAgICAgICA8L2R4LXRhZy1ib3g+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8IS0tIERlbGV0ZSAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibXgtMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbWQgcC0yIGNhcGl0YWxpemVcIj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC00XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ7eyBjb21tb25TZXJ2aWNlPy5idG5fZGFuZ2VyX21kIH19XCIgKGNsaWNrKT1cImRlbGV0ZVVzZXIoaSlcIj5cbiAgICAgICAgICAgICAgICBEZWxldGVcbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hY2Nlc3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2FtbWEtYXBwLWNvbnRyb2xsZXIvc3JjL2xpYi9zaGFyZWQvdXNlci1hY2Nlc3MvdXNlci1hY2Nlc3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2FtbWEtYXBwLWNvbnRyb2xsZXIvc3JjL2xpYi9zaGFyZWQvdXNlci1hY2Nlc3MvdXNlci1hY2Nlc3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQVkvRSxNQUFNLE9BQU8sbUJBQW1CO0lBVTVCLFlBQ1MsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFSOUIsd0JBQW1CLEdBQWlCLEVBQUUsQ0FBQztRQUd0Qyw4QkFBeUIsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUV2RSxhQUFRLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQU1oRSxDQUFDO0lBRUgsUUFBUTtRQUVOLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDdEUsSUFBSSxDQUFDLG1CQUFtQixHQUFHO2dCQUN6QjtvQkFDRSxVQUFVLEVBQUUsTUFBTTtvQkFDbEIsWUFBWSxFQUFFLENBQUMsU0FBUyxDQUFDO2lCQUMxQjthQUNGLENBQUM7WUFDRixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDcEI7SUFDSCxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUM7WUFDNUIsVUFBVSxFQUFFLE1BQU07WUFDbEIsWUFBWSxFQUFFLENBQUMsU0FBUyxDQUFDO1NBQzFCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWE7UUFDdEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFhRCxXQUFXO1FBRVQsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNoRSxDQUFDOztnSEF4RFUsbUJBQW1CO29HQUFuQixtQkFBbUIsb0xDWmhDLDZtREE0Q007MkZEaENPLG1CQUFtQjtrQkFKL0IsU0FBUzsrQkFDRSxpQkFBaUI7b0dBTWxCLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFHSSx5QkFBeUI7c0JBQWxDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXBwbGljYXRpb24tY29udHJvbGxlci9jb21tb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJPcHRpb24ge1xuICBlbnRpdHlOYW1lOiBzdHJpbmc7XG4gIGVudGl0eVZhbHVlczogc3RyaW5nW107XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC11c2VyLWFjY2VzcycsXG4gIHRlbXBsYXRlVXJsOiAnLi91c2VyLWFjY2Vzcy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgVXNlckFjY2Vzc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgLyoqIElucHV0IGZyb20gcGFyZW50ICovXG4gIEBJbnB1dCgpIHVzZXJPcHRpb25Db250YWluZXI6IFVzZXJPcHRpb25bXSA9IFtdO1xuXG4gIC8qKiBPdXRwdXQgdG8gcGFyZW50ICovXG4gIEBPdXRwdXQoKSB1c2VyT3B0aW9uQ29udGFpbmVyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxVc2VyT3B0aW9uW10+KCk7XG5cbiAgbWVudVR5cGUgPSBbJ3VzZXInLCAncm9sZScsICdncm91cCcsICd0ZW5hbnQnLCAnc2VydmljZV9hY2NvdW50J107XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgIHB1YmxpYyBjb21tb25TZXJ2aWNlOiBDb21tb25TZXJ2aWNlXG4gICAgKSB7XG4gIFxuICAgIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBJZiBpbnB1dCBpcyBlbXB0eSBvciB1bmRlZmluZWQsIHNldCBkZWZhdWx0XG4gICAgaWYgKCF0aGlzLnVzZXJPcHRpb25Db250YWluZXIgfHwgdGhpcy51c2VyT3B0aW9uQ29udGFpbmVyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy51c2VyT3B0aW9uQ29udGFpbmVyID0gW1xuICAgICAgICB7XG4gICAgICAgICAgZW50aXR5TmFtZTogJ3VzZXInLFxuICAgICAgICAgIGVudGl0eVZhbHVlczogWycke1VTRVJ9J11cbiAgICAgICAgfVxuICAgICAgXTtcbiAgICAgIHRoaXMuZW1pdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICBhZGROZXdVc2VyKCk6IHZvaWQge1xuICAgIHRoaXMudXNlck9wdGlvbkNvbnRhaW5lci5wdXNoKHtcbiAgICAgIGVudGl0eU5hbWU6ICd1c2VyJyxcbiAgICAgIGVudGl0eVZhbHVlczogWycke1VTRVJ9J11cbiAgICB9KTtcbiAgICB0aGlzLmVtaXRDaGFuZ2VzKCk7XG4gIH1cblxuICBkZWxldGVVc2VyKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnVzZXJPcHRpb25Db250YWluZXIuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB0aGlzLmVtaXRDaGFuZ2VzKCk7XG4gIH1cblxuICAvLyBvbkN1c3RvbURpbWVudGlvbkNyZWF0aW5nKGFyZ3MpIHtcbiAgLy8gICBjb25zdCBuZXdWYWx1ZSA9IGFyZ3MudGV4dDtcbiAgLy8gICBhcmdzLmN1c3RvbUl0ZW0gPSBuZXdWYWx1ZTtcbiAgLy8gICBjb25zdCBpc0l0ZW1JbkRhdGFTb3VyY2UgPSB0aGlzLmF2YWlsYWJsZURpbWVudGlvbi5zb21lKChpdGVtKSA9PiBpdGVtID09PSBuZXdWYWx1ZSk7XG4gIC8vICAgaWYgKCFpc0l0ZW1JbkRhdGFTb3VyY2UpIHtcbiAgLy8gICAgIHRoaXMuYXZhaWxhYmxlRGltZW50aW9uLnVuc2hpZnQobmV3VmFsdWUpO1xuICAvLyAgIH1cblxuXG4gIC8vIH1cblxuICBlbWl0Q2hhbmdlcygpOiB2b2lkIHtcbiAgICBcbiAgICB0aGlzLnVzZXJPcHRpb25Db250YWluZXJDaGFuZ2UuZW1pdCh0aGlzLnVzZXJPcHRpb25Db250YWluZXIpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicC00IHctZnVsbFwiPlxuICA8ZGl2IGNsYXNzPVwibS0zIHAtNCBiZy13aGl0ZSBib3JkZXIgYm9yZGVyLWdyYXktMjAwIHJvdW5kZWQtbGcgc2hhZG93LW1kIGRhcms6YmctZ3JheS04MDAgZGFyazpib3JkZXItZ3JheS03MDBcIj5cblxuICAgIDxoNiBjbGFzcz1cIm1iLTIgdGV4dC1sZyB0cmFja2luZy10aWdodCB0ZXh0LWdyYXktOTAwIGRhcms6dGV4dC13aGl0ZSBib3JkZXItYiBwYi0zIGZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICBVc2VyIEluZm9ybWF0aW9uXG4gICAgICA8ZGl2IGNsYXNzPVwibWwtYXV0b1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwie3sgY29tbW9uU2VydmljZT8uYnRuX3ByaW1hcnlfbWQgfX1cIiAoY2xpY2spPVwiYWRkTmV3VXNlcigpXCI+XG4gICAgICAgICAgQWRkIFBlcm1pc3Npb24gRW50aXR5XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9oNj5cblxuICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgbS0yXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHVzZXJPcHRpb25Db250YWluZXI7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3dcIj5cblxuICAgICAgICAgIDwhLS0gQWNjZXNzaWJsZSBVc2VyIFR5cGUgLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm14LTIgdy0xLzRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW1kIHAtMiBjYXBpdGFsaXplXCI+RW50aXR5IFR5cGU8L2Rpdj5cbiAgICAgICAgICAgIDxkeC1zZWxlY3QtYm94IFtpdGVtc109XCJtZW51VHlwZVwiIFsobmdNb2RlbCldPVwiaXRlbS5lbnRpdHlOYW1lXCIgKG9uVmFsdWVDaGFuZ2VkKT1cImVtaXRDaGFuZ2VzKClcIj5cbiAgICAgICAgICAgIDwvZHgtc2VsZWN0LWJveD5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwhLS0gVXNlciAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibXgtMiB3LTEvNFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbWQgcC0yIGNhcGl0YWxpemVcIj5FbnRpdHkgVmFsdWU8L2Rpdj5cbiAgICAgICAgICAgIDxkeC10YWctYm94IFsobmdNb2RlbCldPVwiaXRlbS5lbnRpdHlWYWx1ZXNcIiBbYWNjZXB0Q3VzdG9tVmFsdWVdPVwidHJ1ZVwiIChvblZhbHVlQ2hhbmdlZCk9XCJlbWl0Q2hhbmdlcygpXCI+XG4gICAgICAgICAgICA8L2R4LXRhZy1ib3g+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8IS0tIERlbGV0ZSAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibXgtMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbWQgcC0yIGNhcGl0YWxpemVcIj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC00XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ7eyBjb21tb25TZXJ2aWNlPy5idG5fZGFuZ2VyX21kIH19XCIgKGNsaWNrKT1cImRlbGV0ZVVzZXIoaSlcIj5cbiAgICAgICAgICAgICAgICBEZWxldGVcbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==