gamma-app-controller 1.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 (120) hide show
  1. package/README.md +24 -0
  2. package/esm2020/gamma-app-controller.mjs +2 -0
  3. package/esm2020/lib/application-controller/app.http.service.mjs +24 -0
  4. package/esm2020/lib/application-controller/application-content.service.mjs +482 -0
  5. package/esm2020/lib/application-controller/application-controller.module.mjs +324 -0
  6. package/esm2020/lib/application-controller/application-dataset-call.service.mjs +321 -0
  7. package/esm2020/lib/application-controller/application-dataset-component/application-dataset/application-dataset.component.mjs +390 -0
  8. package/esm2020/lib/application-controller/application-dataset-component/create-dataset/create-dataset.component.mjs +349 -0
  9. package/esm2020/lib/application-controller/application-dataset-component/create-dataset-json/create-dataset-json.component.mjs +148 -0
  10. package/esm2020/lib/application-controller/application-dataset-component/create-dataset-sql/create-dataset-sql.component.mjs +167 -0
  11. package/esm2020/lib/application-controller/application-dataset-component/create-dataset-sql/sqlFormatter.mjs +17 -0
  12. package/esm2020/lib/application-controller/application-dataset-component/dataset-mongo/dataset-mongo.component.mjs +57 -0
  13. package/esm2020/lib/application-controller/application-dataset-component/dataset-query-bulder/dataset-query-bulder.component.mjs +409 -0
  14. package/esm2020/lib/application-controller/application-dataset-component/dataset-rest-api/dataset-rest-api.component.mjs +61 -0
  15. package/esm2020/lib/application-controller/application-filter/application-filter.component.mjs +186 -0
  16. package/esm2020/lib/application-controller/application-view-components/application-views/application-views.component.mjs +134 -0
  17. package/esm2020/lib/application-controller/application-view-components/create-comp-view/create-comp-view.component.mjs +559 -0
  18. package/esm2020/lib/application-controller/common-header/common-header.component.mjs +33 -0
  19. package/esm2020/lib/application-controller/common.mjs +1207 -0
  20. package/esm2020/lib/application-controller/environment.mjs +26 -0
  21. package/esm2020/lib/application-controller/kpi-comon-service.mjs +537 -0
  22. package/esm2020/lib/application-controller/kpi-service.mjs +108 -0
  23. package/esm2020/lib/application-controller/loading/loading.component.mjs +16 -0
  24. package/esm2020/lib/application-controller/loading/loadingModule.mjs +28 -0
  25. package/esm2020/lib/application-controller/moment-helper.mjs +4 -0
  26. package/esm2020/lib/application-controller/page-controller/page-config/page-config.component.mjs +977 -0
  27. package/esm2020/lib/application-controller/page-controller/page-controller/page-controller.component.mjs +172 -0
  28. package/esm2020/lib/application-controller/page-templates/cdr-config/cdr-config.component.mjs +227 -0
  29. package/esm2020/lib/application-controller/page-templates/dynamic-route-service.mjs +22 -0
  30. package/esm2020/lib/application-controller/shared/advanced-component/advance-widget-header-filter/advance-widget-header-filter.component.mjs +118 -0
  31. package/esm2020/lib/application-controller/shared/advanced-component/app-advance-header/app-header.component.mjs +181 -0
  32. package/esm2020/lib/application-controller/shared/advanced-component/gamm-single-number-card/gamm-single-number-card.component.mjs +71 -0
  33. package/esm2020/lib/application-controller/shared/advanced-component/gamma-advance-chart/gamma-advance-chart.component.mjs +266 -0
  34. package/esm2020/lib/application-controller/shared/advanced-component/gamma-advance-operator-table/gamma-advance-operator-table.component.mjs +159 -0
  35. package/esm2020/lib/application-controller/shared/advanced-component/gamma-table-clumn-bar-chart/gamma-table-clumn-bar-chart.component.mjs +144 -0
  36. package/esm2020/lib/application-controller/shared/advanced-component/gamma-table-with-percentage/contentSafeHtml.mjs +20 -0
  37. package/esm2020/lib/application-controller/shared/advanced-component/gamma-table-with-percentage/gamma-table-with-percentage.component.mjs +168 -0
  38. package/esm2020/lib/application-controller/shared/advanced-component/gamma-today-previous/gamma-today-previous.component.mjs +74 -0
  39. package/esm2020/lib/application-controller/shared/advanced-component/google-geo-map/google-geo-map.component.mjs +118 -0
  40. package/esm2020/lib/application-controller/shared/api.service.mjs +117 -0
  41. package/esm2020/lib/application-controller/shared/app-title/app-title.component.mjs +67 -0
  42. package/esm2020/lib/application-controller/shared/gamam-widget/gamam-widget.component.mjs +37 -0
  43. package/esm2020/lib/application-controller/shared/gamma-advance-filter/gamma-advance-filter.component.mjs +229 -0
  44. package/esm2020/lib/application-controller/shared/gamma-bread-crumbs/bread-crumbs.component.mjs +144 -0
  45. package/esm2020/lib/application-controller/shared/kpi-comon-service.mjs +537 -0
  46. package/esm2020/lib/application-controller/shared/loader/loader.component.mjs +14 -0
  47. package/esm2020/lib/application-controller/shared/loading/loading.component.mjs +16 -0
  48. package/esm2020/lib/application-controller/shared/loading/loadingModule.mjs +28 -0
  49. package/esm2020/lib/application-controller/shared/safeHtmlPipe.mjs +20 -0
  50. package/esm2020/lib/application-controller/support-components/dash-chart/dash-chart.component.mjs +294 -0
  51. package/esm2020/lib/application-controller/support-components/dash-table/dash-table.component.mjs +287 -0
  52. package/esm2020/lib/application-controller/support-components/geo-map/geo-map.component.mjs +255 -0
  53. package/esm2020/lib/application-controller/support-components/table-with-bar/table-with-bar.component.mjs +269 -0
  54. package/esm2020/lib/gamma-app-controller.component.mjs +16 -0
  55. package/esm2020/lib/gamma-app-controller.module.mjs +43 -0
  56. package/esm2020/lib/gamma-app-controller.service.mjs +20 -0
  57. package/esm2020/lib/icons.module.mjs +23 -0
  58. package/esm2020/public-api.mjs +49 -0
  59. package/fesm2015/gamma-app-controller.mjs +10250 -0
  60. package/fesm2015/gamma-app-controller.mjs.map +1 -0
  61. package/fesm2020/gamma-app-controller.mjs +10248 -0
  62. package/fesm2020/gamma-app-controller.mjs.map +1 -0
  63. package/index.d.ts +2 -0
  64. package/lib/application-controller/app.http.service.d.ts +15 -0
  65. package/lib/application-controller/application-content.service.d.ts +79 -0
  66. package/lib/application-controller/application-controller.module.d.ts +51 -0
  67. package/lib/application-controller/application-dataset-call.service.d.ts +20 -0
  68. package/lib/application-controller/application-dataset-component/application-dataset/application-dataset.component.d.ts +55 -0
  69. package/lib/application-controller/application-dataset-component/create-dataset/create-dataset.component.d.ts +121 -0
  70. package/lib/application-controller/application-dataset-component/create-dataset-json/create-dataset-json.component.d.ts +38 -0
  71. package/lib/application-controller/application-dataset-component/create-dataset-sql/create-dataset-sql.component.d.ts +42 -0
  72. package/lib/application-controller/application-dataset-component/create-dataset-sql/sqlFormatter.d.ts +7 -0
  73. package/lib/application-controller/application-dataset-component/dataset-mongo/dataset-mongo.component.d.ts +21 -0
  74. package/lib/application-controller/application-dataset-component/dataset-query-bulder/dataset-query-bulder.component.d.ts +62 -0
  75. package/lib/application-controller/application-dataset-component/dataset-rest-api/dataset-rest-api.component.d.ts +22 -0
  76. package/lib/application-controller/application-filter/application-filter.component.d.ts +36 -0
  77. package/lib/application-controller/application-view-components/application-views/application-views.component.d.ts +47 -0
  78. package/lib/application-controller/application-view-components/create-comp-view/create-comp-view.component.d.ts +73 -0
  79. package/lib/application-controller/common-header/common-header.component.d.ts +15 -0
  80. package/lib/application-controller/common.d.ts +148 -0
  81. package/lib/application-controller/environment.d.ts +25 -0
  82. package/lib/application-controller/kpi-comon-service.d.ts +14 -0
  83. package/lib/application-controller/kpi-service.d.ts +6 -0
  84. package/lib/application-controller/loading/loading.component.d.ts +9 -0
  85. package/lib/application-controller/loading/loadingModule.d.ts +10 -0
  86. package/lib/application-controller/moment-helper.d.ts +3 -0
  87. package/lib/application-controller/page-controller/page-config/page-config.component.d.ts +188 -0
  88. package/lib/application-controller/page-controller/page-controller/page-controller.component.d.ts +47 -0
  89. package/lib/application-controller/page-templates/cdr-config/cdr-config.component.d.ts +44 -0
  90. package/lib/application-controller/page-templates/dynamic-route-service.d.ts +8 -0
  91. package/lib/application-controller/shared/advanced-component/advance-widget-header-filter/advance-widget-header-filter.component.d.ts +33 -0
  92. package/lib/application-controller/shared/advanced-component/app-advance-header/app-header.component.d.ts +43 -0
  93. package/lib/application-controller/shared/advanced-component/gamm-single-number-card/gamm-single-number-card.component.d.ts +20 -0
  94. package/lib/application-controller/shared/advanced-component/gamma-advance-chart/gamma-advance-chart.component.d.ts +51 -0
  95. package/lib/application-controller/shared/advanced-component/gamma-advance-operator-table/gamma-advance-operator-table.component.d.ts +32 -0
  96. package/lib/application-controller/shared/advanced-component/gamma-table-clumn-bar-chart/gamma-table-clumn-bar-chart.component.d.ts +31 -0
  97. package/lib/application-controller/shared/advanced-component/gamma-table-with-percentage/contentSafeHtml.d.ts +10 -0
  98. package/lib/application-controller/shared/advanced-component/gamma-table-with-percentage/gamma-table-with-percentage.component.d.ts +26 -0
  99. package/lib/application-controller/shared/advanced-component/gamma-today-previous/gamma-today-previous.component.d.ts +21 -0
  100. package/lib/application-controller/shared/advanced-component/google-geo-map/google-geo-map.component.d.ts +29 -0
  101. package/lib/application-controller/shared/api.service.d.ts +26 -0
  102. package/lib/application-controller/shared/app-title/app-title.component.d.ts +28 -0
  103. package/lib/application-controller/shared/gamam-widget/gamam-widget.component.d.ts +20 -0
  104. package/lib/application-controller/shared/gamma-advance-filter/gamma-advance-filter.component.d.ts +45 -0
  105. package/lib/application-controller/shared/gamma-bread-crumbs/bread-crumbs.component.d.ts +32 -0
  106. package/lib/application-controller/shared/kpi-comon-service.d.ts +14 -0
  107. package/lib/application-controller/shared/loader/loader.component.d.ts +8 -0
  108. package/lib/application-controller/shared/loading/loading.component.d.ts +9 -0
  109. package/lib/application-controller/shared/loading/loadingModule.d.ts +10 -0
  110. package/lib/application-controller/shared/safeHtmlPipe.d.ts +10 -0
  111. package/lib/application-controller/support-components/dash-chart/dash-chart.component.d.ts +83 -0
  112. package/lib/application-controller/support-components/dash-table/dash-table.component.d.ts +67 -0
  113. package/lib/application-controller/support-components/geo-map/geo-map.component.d.ts +70 -0
  114. package/lib/application-controller/support-components/table-with-bar/table-with-bar.component.d.ts +70 -0
  115. package/lib/gamma-app-controller.component.d.ts +5 -0
  116. package/lib/gamma-app-controller.module.d.ts +10 -0
  117. package/lib/gamma-app-controller.service.d.ts +7 -0
  118. package/lib/icons.module.d.ts +11 -0
  119. package/package.json +33 -0
  120. package/public-api.d.ts +48 -0
@@ -0,0 +1,57 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../common";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "devextreme-angular/ui/select-box";
6
+ import * as i4 from "devextreme-angular/ui/text-box";
7
+ import * as i5 from "@angular/forms";
8
+ export class DatasetMongoComponent {
9
+ constructor(commonService) {
10
+ this.commonService = commonService;
11
+ this.filter_type = ['single', 'multiple', 'date', 'datetime'];
12
+ this.defaultFilterTypeDataSource = ['static', 'dynamic'];
13
+ this.momentFunction = ["subtract", "add", "startOf", "endOf"];
14
+ this.fixOperationArray = [];
15
+ this.getMongoServiceDataSet = new EventEmitter();
16
+ }
17
+ ngOnInit() {
18
+ }
19
+ addFilter() {
20
+ let obj = {
21
+ "apiName": "",
22
+ "label": "",
23
+ "filterType": false,
24
+ "operatorName": "",
25
+ "defaultFilterType": "",
26
+ "defaultFilterValue": ""
27
+ };
28
+ this.mongoDataset.filterItems.push(obj);
29
+ }
30
+ deleteFilters(i) {
31
+ this.mongoDataset.filterItems.splice(i, 1);
32
+ }
33
+ deleteFixoperation(i) {
34
+ this.mongoDataset.fixOperationLevles.splice(i, 1);
35
+ }
36
+ addFixOperation() {
37
+ let obj = {
38
+ "key": '',
39
+ "value": ''
40
+ };
41
+ this.mongoDataset.fixOperationLevles.push(obj);
42
+ }
43
+ createDataSet() {
44
+ this.getMongoServiceDataSet.emit(this.mongoDataset);
45
+ }
46
+ }
47
+ DatasetMongoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: DatasetMongoComponent, deps: [{ token: i1.CommonService }], target: i0.ɵɵFactoryTarget.Component });
48
+ DatasetMongoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: DatasetMongoComponent, selector: "app-dataset-mongo", inputs: { mongoDataset: "mongoDataset" }, outputs: { getMongoServiceDataSet: "getMongoServiceDataSet" }, ngImport: i0, template: "<div class=\"m-2\">\n <div class=\"flex flex-row\">\n <div class=\"mx-2 w-1/3\">\n <div class=\"text-md mb-2\">End Point</div>\n <dx-text-box [(ngModel)]=\"mongoDataset.api\"></dx-text-box>\n </div>\n <div class=\"mx-2 w-1/3\">\n <div class=\"text-md mb-2\">Service Id</div>\n <dx-text-box [(ngModel)]=\"mongoDataset.serviceId\"></dx-text-box>\n </div>\n </div>\n <div class=\"flex flex-col flex-auto min-w-0 my-2\">\n <div class=\"text-lg py-2 font-extrabold border-b bg-gray-700 text-white px-1\"> Select Filters\n </div>\n <div class=\"pt-2 border-x border-b \">\n <ng-container *ngFor=\"let item of mongoDataset.filterItems; let i = index;\">\n <div class=\"my-2 flex flex-row justify-between border-b\">\n\n <div class=\"px-1 mb-2 w-full\">\n <div class=\"text-md mb-2\">Filter Key Name </div>\n <dx-text-box displayExpr=\"apiName\" valueExpr=\"apiUrl\" [(ngModel)]=\"item.apiName\"></dx-text-box>\n </div>\n\n <div class=\"px-1 mb-2 w-full\">\n <div class=\"text-md mb-2\">Operator Key Name </div>\n <dx-text-box [(ngModel)]=\"item.operatorName\"></dx-text-box>\n\n </div>\n <div class=\"px-1 mb-2 w-full\">\n <div class=\"text-md mb-2\"> FIlter Label</div>\n <dx-text-box [(ngModel)]=\"item.label\"></dx-text-box>\n </div>\n <div class=\"px-1 mb-2 w-full\">\n <div class=\"text-md mb-2\"> FIlter Container</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"filter_type\"\n [(ngModel)]=\"item.filterType\"></dx-select-box>\n\n </div>\n <div class=\"px-1 mb-2 w-full\">\n <div class=\"text-md mb-2\"> FIlter type</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"defaultFilterTypeDataSource\"\n [(ngModel)]=\"item.defaultFilterType\" value=\"defaultFilterTypeDataSource[0]\"></dx-select-box>\n\n </div>\n\n <ng-container\n *ngIf=\"item.defaultFilterType == 'dynamic' && (item.filterType == 'date' || item.filterType == 'datetime')\">\n <div class=\"px-1 mb-2 w-full\">\n <div class=\"text-md mb-2\"> Function </div>\n <dx-select-box [items]=\"momentFunction\" [(ngModel)]=\"item.momentFunction\"></dx-select-box>\n </div>\n <div class=\"px-1 mb-2 w-full\">\n <div class=\"text-md mb-2\"> Additionals </div>\n <dx-text-box [(ngModel)]=\"item.momentFormate\"></dx-text-box>\n </div>\n\n </ng-container>\n <ng-container\n *ngIf=\"item.defaultFilterType == 'dynamic' && (item.filterType !== 'date' || item.filterType !== 'datetime')\">\n <div class=\"px-1 mb-2 w-full\">\n <div class=\"text-md mb-2\"> FIlter Default Value</div>\n <dx-text-box [(ngModel)]=\"item.defaultFilterValue\"></dx-text-box>\n </div>\n </ng-container>\n\n <!-- <div class=\"text-center mt-8 w-full\">\n\n <button *ngIf=\"i !== 0\" class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItemForFilters(i, 'up')\">\n <i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i>\n </button>\n\n <button *ngIf=\"i !== mongoDataset.filterItems.length - 1\"\n class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItemForFilters(i, 'down')\">\n <i class=\"fa fa-arrow-down\" aria-hidden=\"true\"></i>\n </button>\n </div> -->\n <div class=\"px-1 mt-8 text-center\">\n <button class=\"{{commonService.btn_danger_sm}} cursor-pointer\" (click)=\"deleteFilters(i)\"><i\n class=\"fa fa-trash-o\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </ng-container>\n <div class=\"flex flex-row justify-end my-2\">\n <button class=\"{{commonService.btn_primary_sm}} cursor-pointer\" (click)=\"addFilter()\">Add\n Columns</button>\n </div>\n </div>\n </div>\n <div class=\"mt-4\">\n <div class=\"text-md m-3\">Fix Operation Levles</div>\n <ng-container *ngFor=\"let item of mongoDataset.fixOperationLevles; let i = index\">\n <div class=\"flex justify-between mb-2\">\n <div class=\"w-1/2 px-1\">\n <dx-text-box [(ngModel)]=\"item.key\" placeholder=\"key Name\"></dx-text-box>\n </div>\n <div class=\"w-1/2 px-1\">\n <dx-text-box [(ngModel)]=\"item.value\" placeholder=\"Value\"></dx-text-box>\n </div>\n <div class=\"w-1/6 px-1 mt-1\">\n <button type=\"button\" class=\"{{commonService.btn_danger_sm}}\"\n (click)=\"deleteFixoperation(i)\">Delete</button>\n\n </div>\n </div>\n\n </ng-container>\n <div class=\"pb-2 border-t\">\n <button type=\"button\" class=\"{{commonService.btn_warning_md}} text-center mt-3\"\n (click)=\"addFixOperation()\">Add</button>\n </div>\n </div>\n\n <div class=\"flex w-full justify-end mt-5 border-t\">\n <button class=\"{{commonService.btn_success_md}} cursor-pointer mx-1 my-2\" (click)=\"createDataSet()\">\n Submit DataSet\n </button>\n </div>\n\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.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: i4.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: DatasetMongoComponent, decorators: [{
50
+ type: Component,
51
+ args: [{ selector: 'app-dataset-mongo', template: "<div class=\"m-2\">\n <div class=\"flex flex-row\">\n <div class=\"mx-2 w-1/3\">\n <div class=\"text-md mb-2\">End Point</div>\n <dx-text-box [(ngModel)]=\"mongoDataset.api\"></dx-text-box>\n </div>\n <div class=\"mx-2 w-1/3\">\n <div class=\"text-md mb-2\">Service Id</div>\n <dx-text-box [(ngModel)]=\"mongoDataset.serviceId\"></dx-text-box>\n </div>\n </div>\n <div class=\"flex flex-col flex-auto min-w-0 my-2\">\n <div class=\"text-lg py-2 font-extrabold border-b bg-gray-700 text-white px-1\"> Select Filters\n </div>\n <div class=\"pt-2 border-x border-b \">\n <ng-container *ngFor=\"let item of mongoDataset.filterItems; let i = index;\">\n <div class=\"my-2 flex flex-row justify-between border-b\">\n\n <div class=\"px-1 mb-2 w-full\">\n <div class=\"text-md mb-2\">Filter Key Name </div>\n <dx-text-box displayExpr=\"apiName\" valueExpr=\"apiUrl\" [(ngModel)]=\"item.apiName\"></dx-text-box>\n </div>\n\n <div class=\"px-1 mb-2 w-full\">\n <div class=\"text-md mb-2\">Operator Key Name </div>\n <dx-text-box [(ngModel)]=\"item.operatorName\"></dx-text-box>\n\n </div>\n <div class=\"px-1 mb-2 w-full\">\n <div class=\"text-md mb-2\"> FIlter Label</div>\n <dx-text-box [(ngModel)]=\"item.label\"></dx-text-box>\n </div>\n <div class=\"px-1 mb-2 w-full\">\n <div class=\"text-md mb-2\"> FIlter Container</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"filter_type\"\n [(ngModel)]=\"item.filterType\"></dx-select-box>\n\n </div>\n <div class=\"px-1 mb-2 w-full\">\n <div class=\"text-md mb-2\"> FIlter type</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"defaultFilterTypeDataSource\"\n [(ngModel)]=\"item.defaultFilterType\" value=\"defaultFilterTypeDataSource[0]\"></dx-select-box>\n\n </div>\n\n <ng-container\n *ngIf=\"item.defaultFilterType == 'dynamic' && (item.filterType == 'date' || item.filterType == 'datetime')\">\n <div class=\"px-1 mb-2 w-full\">\n <div class=\"text-md mb-2\"> Function </div>\n <dx-select-box [items]=\"momentFunction\" [(ngModel)]=\"item.momentFunction\"></dx-select-box>\n </div>\n <div class=\"px-1 mb-2 w-full\">\n <div class=\"text-md mb-2\"> Additionals </div>\n <dx-text-box [(ngModel)]=\"item.momentFormate\"></dx-text-box>\n </div>\n\n </ng-container>\n <ng-container\n *ngIf=\"item.defaultFilterType == 'dynamic' && (item.filterType !== 'date' || item.filterType !== 'datetime')\">\n <div class=\"px-1 mb-2 w-full\">\n <div class=\"text-md mb-2\"> FIlter Default Value</div>\n <dx-text-box [(ngModel)]=\"item.defaultFilterValue\"></dx-text-box>\n </div>\n </ng-container>\n\n <!-- <div class=\"text-center mt-8 w-full\">\n\n <button *ngIf=\"i !== 0\" class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItemForFilters(i, 'up')\">\n <i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i>\n </button>\n\n <button *ngIf=\"i !== mongoDataset.filterItems.length - 1\"\n class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItemForFilters(i, 'down')\">\n <i class=\"fa fa-arrow-down\" aria-hidden=\"true\"></i>\n </button>\n </div> -->\n <div class=\"px-1 mt-8 text-center\">\n <button class=\"{{commonService.btn_danger_sm}} cursor-pointer\" (click)=\"deleteFilters(i)\"><i\n class=\"fa fa-trash-o\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </ng-container>\n <div class=\"flex flex-row justify-end my-2\">\n <button class=\"{{commonService.btn_primary_sm}} cursor-pointer\" (click)=\"addFilter()\">Add\n Columns</button>\n </div>\n </div>\n </div>\n <div class=\"mt-4\">\n <div class=\"text-md m-3\">Fix Operation Levles</div>\n <ng-container *ngFor=\"let item of mongoDataset.fixOperationLevles; let i = index\">\n <div class=\"flex justify-between mb-2\">\n <div class=\"w-1/2 px-1\">\n <dx-text-box [(ngModel)]=\"item.key\" placeholder=\"key Name\"></dx-text-box>\n </div>\n <div class=\"w-1/2 px-1\">\n <dx-text-box [(ngModel)]=\"item.value\" placeholder=\"Value\"></dx-text-box>\n </div>\n <div class=\"w-1/6 px-1 mt-1\">\n <button type=\"button\" class=\"{{commonService.btn_danger_sm}}\"\n (click)=\"deleteFixoperation(i)\">Delete</button>\n\n </div>\n </div>\n\n </ng-container>\n <div class=\"pb-2 border-t\">\n <button type=\"button\" class=\"{{commonService.btn_warning_md}} text-center mt-3\"\n (click)=\"addFixOperation()\">Add</button>\n </div>\n </div>\n\n <div class=\"flex w-full justify-end mt-5 border-t\">\n <button class=\"{{commonService.btn_success_md}} cursor-pointer mx-1 my-2\" (click)=\"createDataSet()\">\n Submit DataSet\n </button>\n </div>\n\n</div>" }]
52
+ }], ctorParameters: function () { return [{ type: i1.CommonService }]; }, propDecorators: { mongoDataset: [{
53
+ type: Input
54
+ }], getMongoServiceDataSet: [{
55
+ type: Output
56
+ }] } });
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNldC1tb25nby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nYW1tYS1hcHAtY29udHJvbGxlci9zcmMvbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvYXBwbGljYXRpb24tZGF0YXNldC1jb21wb25lbnQvZGF0YXNldC1tb25nby9kYXRhc2V0LW1vbmdvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dhbW1hLWFwcC1jb250cm9sbGVyL3NyYy9saWIvYXBwbGljYXRpb24tY29udHJvbGxlci9hcHBsaWNhdGlvbi1kYXRhc2V0LWNvbXBvbmVudC9kYXRhc2V0LW1vbmdvL2RhdGFzZXQtbW9uZ28uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQVEvRSxNQUFNLE9BQU8scUJBQXFCO0lBd0JoQyxZQUNTLGFBQTRCO1FBQTVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBVHJDLGdCQUFXLEdBQUcsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQTtRQUN4RCxnQ0FBMkIsR0FBRyxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQTtRQUVuRCxtQkFBYyxHQUFHLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDeEQsc0JBQWlCLEdBQVEsRUFBRSxDQUFDO1FBQ1gsMkJBQXNCLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFLNUUsQ0FBQztJQUVMLFFBQVE7SUFDUixDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksR0FBRyxHQUFHO1lBQ1IsU0FBUyxFQUFFLEVBQUU7WUFDYixPQUFPLEVBQUUsRUFBRTtZQUNYLFlBQVksRUFBRSxLQUFLO1lBQ25CLGNBQWMsRUFBRSxFQUFFO1lBQ2xCLG1CQUFtQixFQUFFLEVBQUU7WUFDdkIsb0JBQW9CLEVBQUUsRUFBRTtTQUN6QixDQUFBO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxhQUFhLENBQUMsQ0FBQztRQUNiLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDNUMsQ0FBQztJQUVELGtCQUFrQixDQUFDLENBQUM7UUFDbEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ25ELENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxHQUFHLEdBQUc7WUFDUixLQUFLLEVBQUUsRUFBRTtZQUNULE9BQU8sRUFBRSxFQUFFO1NBQ1osQ0FBQTtRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ2hELENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDckQsQ0FBQzs7a0hBN0RVLHFCQUFxQjtzR0FBckIscUJBQXFCLGtLQ1JsQywycE1BeUhNOzJGRGpITyxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsbUJBQW1CO29HQW1CcEIsWUFBWTtzQkFBcEIsS0FBSztnQkFNVyxzQkFBc0I7c0JBQXRDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWRhdGFzZXQtbW9uZ28nLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YXNldC1tb25nby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGFzZXQtbW9uZ28uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRhc2V0TW9uZ29Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvLyBtb25nb0RhdGFzZXQgPSB7XG4gIC8vICAgXCJhcGlcIjogXCIva3BpL3RyZW5kcy9tc2MvZ2V0LXN0YXRzLWJ5LWRhaWx5XCIsXG4gIC8vICAgXCJzZXJ2aWNlSWRcIjogXCJnZXRNc2NEYWlseVN0YXRzXCIsXG4gIC8vICAgXCJmaWx0ZXJJdGVtc1wiOiBbXG4gIC8vICAgICB7XG4gIC8vICAgICAgIFwiYXBpTmFtZVwiOiBcIlwiLFxuICAvLyAgICAgICBcImxhYmVsXCI6IFwiXCIsXG4gIC8vICAgICAgIFwiZmlsdGVyVHlwZVwiOiBmYWxzZSxcbiAgLy8gICAgICAgXCJvcGVyYXRvck5hbWVcIjogXCJcIixcbiAgLy8gICAgICAgXCJkZWZhdWx0RmlsdGVyVHlwZVwiOiBcIlwiLFxuICAvLyAgICAgICBcImRlZmF1bHRGaWx0ZXJWYWx1ZVwiOiBcIlwiXG4gIC8vICAgICB9XG4gIC8vICAgXVxuICAvLyB9XG4gIEBJbnB1dCgpIG1vbmdvRGF0YXNldDogYW55O1xuICBmaWx0ZXJfdHlwZSA9IFsnc2luZ2xlJywgJ211bHRpcGxlJywgJ2RhdGUnLCAnZGF0ZXRpbWUnXVxuICBkZWZhdWx0RmlsdGVyVHlwZURhdGFTb3VyY2UgPSBbJ3N0YXRpYycsICdkeW5hbWljJ11cblxuICBtb21lbnRGdW5jdGlvbiA9IFtcInN1YnRyYWN0XCIsIFwiYWRkXCIsIFwic3RhcnRPZlwiLCBcImVuZE9mXCJdXG4gIGZpeE9wZXJhdGlvbkFycmF5OiBhbnkgPSBbXTtcbiAgQE91dHB1dCgpIHB1YmxpYyBnZXRNb25nb1NlcnZpY2VEYXRhU2V0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBjb21tb25TZXJ2aWNlOiBDb21tb25TZXJ2aWNlXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuICBhZGRGaWx0ZXIoKSB7XG4gICAgbGV0IG9iaiA9IHtcbiAgICAgIFwiYXBpTmFtZVwiOiBcIlwiLFxuICAgICAgXCJsYWJlbFwiOiBcIlwiLFxuICAgICAgXCJmaWx0ZXJUeXBlXCI6IGZhbHNlLFxuICAgICAgXCJvcGVyYXRvck5hbWVcIjogXCJcIixcbiAgICAgIFwiZGVmYXVsdEZpbHRlclR5cGVcIjogXCJcIixcbiAgICAgIFwiZGVmYXVsdEZpbHRlclZhbHVlXCI6IFwiXCJcbiAgICB9XG4gICAgdGhpcy5tb25nb0RhdGFzZXQuZmlsdGVySXRlbXMucHVzaChvYmopO1xuICB9XG5cbiAgZGVsZXRlRmlsdGVycyhpKSB7XG4gICAgdGhpcy5tb25nb0RhdGFzZXQuZmlsdGVySXRlbXMuc3BsaWNlKGksIDEpXG4gIH1cblxuICBkZWxldGVGaXhvcGVyYXRpb24oaSkge1xuICAgIHRoaXMubW9uZ29EYXRhc2V0LmZpeE9wZXJhdGlvbkxldmxlcy5zcGxpY2UoaSwgMSlcbiAgfVxuXG4gIGFkZEZpeE9wZXJhdGlvbigpIHtcbiAgICBsZXQgb2JqID0ge1xuICAgICAgXCJrZXlcIjogJycsXG4gICAgICBcInZhbHVlXCI6ICcnXG4gICAgfVxuICAgIHRoaXMubW9uZ29EYXRhc2V0LmZpeE9wZXJhdGlvbkxldmxlcy5wdXNoKG9iailcbiAgfVxuXG4gIGNyZWF0ZURhdGFTZXQoKSB7XG4gICAgdGhpcy5nZXRNb25nb1NlcnZpY2VEYXRhU2V0LmVtaXQodGhpcy5tb25nb0RhdGFzZXQpXG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cIm0tMlwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJteC0yIHctMS8zXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1tZCBtYi0yXCI+RW5kIFBvaW50PC9kaXY+XG4gICAgICAgICAgICA8ZHgtdGV4dC1ib3ggWyhuZ01vZGVsKV09XCJtb25nb0RhdGFzZXQuYXBpXCI+PC9keC10ZXh0LWJveD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJteC0yIHctMS8zXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1tZCBtYi0yXCI+U2VydmljZSBJZDwvZGl2PlxuICAgICAgICAgICAgPGR4LXRleHQtYm94IFsobmdNb2RlbCldPVwibW9uZ29EYXRhc2V0LnNlcnZpY2VJZFwiPjwvZHgtdGV4dC1ib3g+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGZsZXgtYXV0byBtaW4tdy0wIG15LTJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbGcgcHktMiBmb250LWV4dHJhYm9sZCBib3JkZXItYiBiZy1ncmF5LTcwMCB0ZXh0LXdoaXRlIHB4LTFcIj4gU2VsZWN0IEZpbHRlcnNcbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwdC0yIGJvcmRlci14IGJvcmRlci1iIFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBtb25nb0RhdGFzZXQuZmlsdGVySXRlbXM7IGxldCBpID0gaW5kZXg7XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTIgZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWJldHdlZW4gYm9yZGVyLWJcIj5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHgtMSBtYi0yIHctZnVsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbWQgbWItMlwiPkZpbHRlciBLZXkgTmFtZSA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkeC10ZXh0LWJveCBkaXNwbGF5RXhwcj1cImFwaU5hbWVcIiB2YWx1ZUV4cHI9XCJhcGlVcmxcIiBbKG5nTW9kZWwpXT1cIml0ZW0uYXBpTmFtZVwiPjwvZHgtdGV4dC1ib3g+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweC0xIG1iLTIgdy1mdWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1tZCBtYi0yXCI+T3BlcmF0b3IgS2V5IE5hbWUgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZHgtdGV4dC1ib3ggWyhuZ01vZGVsKV09XCJpdGVtLm9wZXJhdG9yTmFtZVwiPjwvZHgtdGV4dC1ib3g+XG5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweC0xIG1iLTIgdy1mdWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1tZCBtYi0yXCI+IEZJbHRlciBMYWJlbDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGR4LXRleHQtYm94IFsobmdNb2RlbCldPVwiaXRlbS5sYWJlbFwiPjwvZHgtdGV4dC1ib3g+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHgtMSBtYi0yIHctZnVsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbWQgbWItMlwiPiBGSWx0ZXIgQ29udGFpbmVyPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZHgtc2VsZWN0LWJveCBbc2VhcmNoRW5hYmxlZF09XCJ0cnVlXCIgW2l0ZW1zXT1cImZpbHRlcl90eXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIml0ZW0uZmlsdGVyVHlwZVwiPjwvZHgtc2VsZWN0LWJveD5cblxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB4LTEgbWItMiB3LWZ1bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW1kIG1iLTJcIj4gRklsdGVyIHR5cGU8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkeC1zZWxlY3QtYm94IFtzZWFyY2hFbmFibGVkXT1cInRydWVcIiBbaXRlbXNdPVwiZGVmYXVsdEZpbHRlclR5cGVEYXRhU291cmNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIml0ZW0uZGVmYXVsdEZpbHRlclR5cGVcIiB2YWx1ZT1cImRlZmF1bHRGaWx0ZXJUeXBlRGF0YVNvdXJjZVswXVwiPjwvZHgtc2VsZWN0LWJveD5cblxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0uZGVmYXVsdEZpbHRlclR5cGUgPT0gJ2R5bmFtaWMnICYmIChpdGVtLmZpbHRlclR5cGUgPT0gJ2RhdGUnIHx8IGl0ZW0uZmlsdGVyVHlwZSA9PSAnZGF0ZXRpbWUnKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB4LTEgbWItMiB3LWZ1bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1tZCBtYi0yXCI+IEZ1bmN0aW9uIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkeC1zZWxlY3QtYm94IFtpdGVtc109XCJtb21lbnRGdW5jdGlvblwiIFsobmdNb2RlbCldPVwiaXRlbS5tb21lbnRGdW5jdGlvblwiPjwvZHgtc2VsZWN0LWJveD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB4LTEgbWItMiB3LWZ1bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1tZCBtYi0yXCI+IEFkZGl0aW9uYWxzIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkeC10ZXh0LWJveCBbKG5nTW9kZWwpXT1cIml0ZW0ubW9tZW50Rm9ybWF0ZVwiPjwvZHgtdGV4dC1ib3g+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLmRlZmF1bHRGaWx0ZXJUeXBlID09ICdkeW5hbWljJyAmJiAoaXRlbS5maWx0ZXJUeXBlICE9PSAnZGF0ZScgfHwgaXRlbS5maWx0ZXJUeXBlICE9PSAnZGF0ZXRpbWUnKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB4LTEgbWItMiB3LWZ1bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1tZCBtYi0yXCI+IEZJbHRlciBEZWZhdWx0IFZhbHVlPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGR4LXRleHQtYm94IFsobmdNb2RlbCldPVwiaXRlbS5kZWZhdWx0RmlsdGVyVmFsdWVcIj48L2R4LXRleHQtYm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIG10LTggdy1mdWxsXCI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJpICE9PSAwXCIgY2xhc3M9XCJ7e2NvbW1vblNlcnZpY2UuYnRuX2xpZ2h0X3NtfX0gY3Vyc29yLXBvaW50ZXIgbXgtMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1vdmVJdGVtRm9yRmlsdGVycyhpLCAndXAnKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtYXJyb3ctdXBcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImkgIT09IG1vbmdvRGF0YXNldC5maWx0ZXJJdGVtcy5sZW5ndGggLSAxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInt7Y29tbW9uU2VydmljZS5idG5fbGlnaHRfc219fSBjdXJzb3ItcG9pbnRlciBteC0xXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibW92ZUl0ZW1Gb3JGaWx0ZXJzKGksICdkb3duJylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWFycm93LWRvd25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHgtMSBtdC04IHRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwie3tjb21tb25TZXJ2aWNlLmJ0bl9kYW5nZXJfc219fSBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJkZWxldGVGaWx0ZXJzKGkpXCI+PGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYSBmYS10cmFzaC1vXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWVuZCBteS0yXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInt7Y29tbW9uU2VydmljZS5idG5fcHJpbWFyeV9zbX19IGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImFkZEZpbHRlcigpXCI+QWRkXG4gICAgICAgICAgICAgICAgICAgIENvbHVtbnM8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibXQtNFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1tZCBtLTNcIj5GaXggT3BlcmF0aW9uIExldmxlczwvZGl2PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIG1vbmdvRGF0YXNldC5maXhPcGVyYXRpb25MZXZsZXM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBtYi0yXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMS8yIHB4LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgPGR4LXRleHQtYm94IFsobmdNb2RlbCldPVwiaXRlbS5rZXlcIiBwbGFjZWhvbGRlcj1cImtleSBOYW1lXCI+PC9keC10ZXh0LWJveD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xLzIgcHgtMVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZHgtdGV4dC1ib3ggWyhuZ01vZGVsKV09XCJpdGVtLnZhbHVlXCIgcGxhY2Vob2xkZXI9XCJWYWx1ZVwiPjwvZHgtdGV4dC1ib3g+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMS82IHB4LTEgbXQtMVwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInt7Y29tbW9uU2VydmljZS5idG5fZGFuZ2VyX3NtfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZUZpeG9wZXJhdGlvbihpKVwiPkRlbGV0ZTwvYnV0dG9uPlxuXG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBiLTIgYm9yZGVyLXRcIj5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwie3tjb21tb25TZXJ2aWNlLmJ0bl93YXJuaW5nX21kfX0gIHRleHQtY2VudGVyIG10LTNcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJhZGRGaXhPcGVyYXRpb24oKVwiPkFkZDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IHctZnVsbCBqdXN0aWZ5LWVuZCBtdC01IGJvcmRlci10XCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJ7e2NvbW1vblNlcnZpY2UuYnRuX3N1Y2Nlc3NfbWR9fSBjdXJzb3ItcG9pbnRlciBteC0xIG15LTJcIiAoY2xpY2spPVwiY3JlYXRlRGF0YVNldCgpXCI+XG4gICAgICAgICAgICBTdWJtaXQgRGF0YVNldFxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuPC9kaXY+Il19