gamma-app-controller 1.1.25 → 1.1.27

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 (156) hide show
  1. package/esm2020/lib/application-controller/application-controller.module.mjs +20 -20
  2. package/esm2020/lib/application-controller/application-dataset-component/application-dataset/application-dataset.component.mjs +1 -1
  3. package/esm2020/lib/application-controller/application-dataset-component/create-dataset/create-dataset.component.mjs +1 -1
  4. package/esm2020/lib/application-controller/application-filter/application-filter.component.mjs +1 -1
  5. package/esm2020/lib/application-controller/application-menu-controller/application-menus/application-menus.component.mjs +1 -1
  6. package/esm2020/lib/application-controller/application-metric-config/all-metrics-config/all-metrics-config.component.mjs +1 -1
  7. package/esm2020/lib/application-controller/application-metric-config/create-metrics/create-metrics.component.mjs +1 -1
  8. package/esm2020/lib/application-controller/application-view-components/application-views/application-views.component.mjs +1 -1
  9. package/esm2020/lib/application-controller/application-view-components/create-comp-view/create-comp-view.component.mjs +1 -1
  10. package/esm2020/lib/application-controller/page-controller/page-config/page-config.component.mjs +11 -11
  11. package/esm2020/lib/application-controller/page-controller/page-config-multi-layout/page-config-multi-layout.component.mjs +10 -10
  12. package/esm2020/lib/application-controller/page-controller/page-controller/page-controller.component.mjs +1 -1
  13. package/esm2020/lib/application-controller/support-components/dash-chart/dash-chart.component.mjs +1 -1
  14. package/esm2020/lib/application-controller/support-components/dash-table/dash-table.component.mjs +1 -1
  15. package/esm2020/lib/application-controller/support-components/dash-today-previous/dash-today-previous.component.mjs +1 -1
  16. package/esm2020/lib/application-controller/support-components/geo-map/geo-map.component.mjs +2 -2
  17. package/esm2020/lib/application-controller/support-components/heat-map/heat-map.component.mjs +1 -1
  18. package/esm2020/lib/application-controller/support-components/single-card/single-card.component.mjs +1 -1
  19. package/esm2020/lib/application-controller/support-components/table-with-bar/table-with-bar.component.mjs +2 -2
  20. package/esm2020/lib/shared/advanced-component/advance-widget-header-filter/advance-widget-header-filter.component.mjs +116 -0
  21. package/esm2020/lib/shared/advanced-component/app-advance-header/app-header.component.mjs +306 -0
  22. package/esm2020/lib/shared/advanced-component/gamm-single-number-card/gamm-single-number-card.component.mjs +80 -0
  23. package/esm2020/lib/shared/advanced-component/gamma-advance-chart/gamma-advance-chart.component.mjs +379 -0
  24. package/esm2020/lib/shared/advanced-component/gamma-advance-operator-table/gamma-advance-operator-table.component.mjs +188 -0
  25. package/esm2020/lib/shared/advanced-component/gamma-geo-chart/gamma-geo-chart.component.mjs +435 -0
  26. package/esm2020/lib/shared/advanced-component/gamma-heatmap/gamma-heatmap.component.mjs +334 -0
  27. package/esm2020/lib/shared/advanced-component/gamma-table-clumn-bar-chart/gamma-table-clumn-bar-chart.component.mjs +155 -0
  28. package/esm2020/lib/shared/advanced-component/gamma-table-with-percentage/contentSafeHtml.mjs +20 -0
  29. package/esm2020/lib/shared/advanced-component/gamma-table-with-percentage/gamma-table-with-percentage.component.mjs +187 -0
  30. package/esm2020/lib/shared/advanced-component/gamma-today-previous/gamma-today-previous.component.mjs +86 -0
  31. package/esm2020/lib/shared/advanced-component/google-geo-map/google-geo-map.component.mjs +439 -0
  32. package/esm2020/lib/shared/app-title/app-title.component.mjs +67 -0
  33. package/esm2020/lib/shared/gamam-widget/gamam-widget.component.mjs +35 -0
  34. package/esm2020/lib/shared/gamma-advance-filter/gamma-advance-filter.component.mjs +273 -0
  35. package/esm2020/lib/shared/gamma-bread-crumbs/bread-crumbs.component.mjs +142 -0
  36. package/esm2020/lib/shared/kpi-comon-service.mjs +537 -0
  37. package/esm2020/lib/{application-controller/shared → shared}/loader/loader.component.mjs +1 -1
  38. package/esm2020/lib/{application-controller/shared → shared}/loading/loading.component.mjs +1 -1
  39. package/esm2020/lib/shared/loading/loadingModule.mjs +28 -0
  40. package/esm2020/lib/shared/safeHtmlPipe.mjs +20 -0
  41. package/esm2020/lib/template-module/KpiCreationModule/create-kpi-tree.component.mjs +381 -0
  42. package/esm2020/lib/template-module/KpiCreationModule/createKpi.service.mjs +90 -0
  43. package/esm2020/lib/template-module/KpiCreationModule/kpiCreation.module.mjs +184 -0
  44. package/esm2020/lib/template-module/KpiCreationModule/treeview/animation.mjs +15 -0
  45. package/esm2020/lib/template-module/KpiCreationModule/treeview/animations/defaults.mjs +12 -0
  46. package/esm2020/lib/template-module/KpiCreationModule/treeview/animations/expand-collapse.mjs +16 -0
  47. package/esm2020/lib/template-module/KpiCreationModule/treeview/animations/fade.mjs +160 -0
  48. package/esm2020/lib/template-module/KpiCreationModule/treeview/animations/shake.mjs +58 -0
  49. package/esm2020/lib/template-module/KpiCreationModule/treeview/animations/slide.mjs +116 -0
  50. package/esm2020/lib/template-module/KpiCreationModule/treeview/animations/zoom.mjs +36 -0
  51. package/esm2020/lib/template-module/KpiCreationModule/treeview/components/aside/aside.component.mjs +85 -0
  52. package/esm2020/lib/template-module/KpiCreationModule/treeview/components/basic/basic.component.mjs +118 -0
  53. package/esm2020/lib/template-module/KpiCreationModule/treeview/components/collapsable/collapsable.component.mjs +159 -0
  54. package/esm2020/lib/template-module/KpiCreationModule/treeview/components/divider/divider.component.mjs +27 -0
  55. package/esm2020/lib/template-module/KpiCreationModule/treeview/components/group/group.component.mjs +37 -0
  56. package/esm2020/lib/template-module/KpiCreationModule/treeview/components/spacer/spacer.component.mjs +27 -0
  57. package/esm2020/lib/template-module/KpiCreationModule/treeview/moment-helper.mjs +4 -0
  58. package/esm2020/lib/template-module/KpiCreationModule/treeview/treeview-navigation.service.mjs +2 -0
  59. package/esm2020/lib/template-module/KpiCreationModule/treeview/treeview-shared.service.mjs +16 -0
  60. package/esm2020/lib/template-module/KpiCreationModule/treeview/treeview.component.mjs +134 -0
  61. package/esm2020/lib/template-module/bookmarked-template/bookmarked-template.component.mjs +816 -0
  62. package/esm2020/lib/template-module/bookmarked-template/bookmarkedTemplate.module.mjs +149 -0
  63. package/esm2020/lib/template-module/cdrConfigModule/cdr-config.component.mjs +1 -1
  64. package/esm2020/lib/template-module/cdrConfigModule/cdrConfig.module.mjs +2 -2
  65. package/esm2020/lib/template-module/defaulLandingComponent/defaultLandingComponent.module.mjs +149 -0
  66. package/esm2020/lib/template-module/defaulLandingComponent/landing-component.component.mjs +870 -0
  67. package/esm2020/lib/template-module/exceptionConfigModule/exception-operation.component.mjs +1 -1
  68. package/esm2020/lib/template-module/exceptionConfigModule/exceptionConfig.module.mjs +2 -2
  69. package/esm2020/lib/template-module/kpiWithMultiLayout/dynamin-modal-multi.component.mjs +180 -0
  70. package/esm2020/lib/template-module/kpiWithMultiLayout/kpi-with-multilayout.component.mjs +992 -0
  71. package/esm2020/lib/template-module/kpiWithMultiLayout/kpiWithMultiayout.module.mjs +154 -0
  72. package/esm2020/lib/template-module/kpiWithSingleLayout/dynamin-modal.component.mjs +180 -0
  73. package/esm2020/lib/template-module/kpiWithSingleLayout/kpi-with-dataset.component.mjs +1046 -0
  74. package/esm2020/lib/template-module/kpiWithSingleLayout/kpiWithSingleLayout.module.mjs +154 -0
  75. package/esm2020/public-api.mjs +39 -20
  76. package/fesm2015/gamma-app-controller.mjs +6750 -475
  77. package/fesm2015/gamma-app-controller.mjs.map +1 -1
  78. package/fesm2020/gamma-app-controller.mjs +6709 -475
  79. package/fesm2020/gamma-app-controller.mjs.map +1 -1
  80. package/lib/application-controller/application-controller.module.d.ts +19 -19
  81. package/lib/application-controller/page-controller/page-config/page-config.component.d.ts +9 -9
  82. package/lib/application-controller/page-controller/page-config-multi-layout/page-config-multi-layout.component.d.ts +8 -8
  83. package/lib/{application-controller/shared → shared}/advanced-component/app-advance-header/app-header.component.d.ts +18 -2
  84. package/lib/{application-controller/shared → shared}/advanced-component/gamm-single-number-card/gamm-single-number-card.component.d.ts +3 -5
  85. package/lib/{application-controller/shared → shared}/advanced-component/gamma-advance-chart/gamma-advance-chart.component.d.ts +3 -1
  86. package/lib/{application-controller/shared → shared}/advanced-component/gamma-advance-operator-table/gamma-advance-operator-table.component.d.ts +4 -2
  87. package/lib/{application-controller/shared → shared}/advanced-component/gamma-geo-chart/gamma-geo-chart.component.d.ts +1 -1
  88. package/lib/{application-controller/shared → shared}/advanced-component/gamma-heatmap/gamma-heatmap.component.d.ts +1 -1
  89. package/lib/{application-controller/shared → shared}/advanced-component/gamma-table-clumn-bar-chart/gamma-table-clumn-bar-chart.component.d.ts +1 -1
  90. package/lib/{application-controller/shared → shared}/advanced-component/gamma-table-with-percentage/gamma-table-with-percentage.component.d.ts +6 -2
  91. package/lib/{application-controller/shared → shared}/advanced-component/gamma-today-previous/gamma-today-previous.component.d.ts +1 -1
  92. package/lib/{application-controller/shared → shared}/advanced-component/google-geo-map/google-geo-map.component.d.ts +1 -1
  93. package/lib/{application-controller/shared → shared}/app-title/app-title.component.d.ts +1 -1
  94. package/lib/{application-controller/shared → shared}/gamam-widget/gamam-widget.component.d.ts +1 -1
  95. package/lib/{application-controller/shared → shared}/gamma-advance-filter/gamma-advance-filter.component.d.ts +3 -2
  96. package/lib/{application-controller/shared → shared}/gamma-bread-crumbs/bread-crumbs.component.d.ts +1 -1
  97. package/lib/{application-controller/shared → shared}/kpi-comon-service.d.ts +1 -1
  98. package/lib/template-module/KpiCreationModule/create-kpi-tree.component.d.ts +75 -0
  99. package/lib/template-module/KpiCreationModule/createKpi.service.d.ts +32 -0
  100. package/lib/template-module/KpiCreationModule/kpiCreation.module.d.ts +23 -0
  101. package/lib/template-module/KpiCreationModule/treeview/animation.d.ts +1 -0
  102. package/lib/template-module/KpiCreationModule/treeview/animations/defaults.d.ts +11 -0
  103. package/lib/template-module/KpiCreationModule/treeview/animations/expand-collapse.d.ts +2 -0
  104. package/lib/template-module/KpiCreationModule/treeview/animations/fade.d.ts +11 -0
  105. package/lib/template-module/KpiCreationModule/treeview/animations/shake.d.ts +2 -0
  106. package/lib/template-module/KpiCreationModule/treeview/animations/slide.d.ts +9 -0
  107. package/lib/template-module/KpiCreationModule/treeview/animations/zoom.d.ts +3 -0
  108. package/lib/template-module/KpiCreationModule/treeview/components/aside/aside.component.d.ts +26 -0
  109. package/lib/template-module/KpiCreationModule/treeview/components/basic/basic.component.d.ts +29 -0
  110. package/lib/template-module/KpiCreationModule/treeview/components/collapsable/collapsable.component.d.ts +37 -0
  111. package/lib/template-module/KpiCreationModule/treeview/components/divider/divider.component.d.ts +13 -0
  112. package/lib/template-module/KpiCreationModule/treeview/components/group/group.component.d.ts +17 -0
  113. package/lib/template-module/KpiCreationModule/treeview/components/spacer/spacer.component.d.ts +13 -0
  114. package/lib/template-module/KpiCreationModule/treeview/moment-helper.d.ts +3 -0
  115. package/lib/template-module/KpiCreationModule/treeview/treeview-navigation.service.d.ts +39 -0
  116. package/lib/template-module/KpiCreationModule/treeview/treeview-shared.service.d.ts +8 -0
  117. package/lib/template-module/KpiCreationModule/treeview/treeview.component.d.ts +52 -0
  118. package/lib/template-module/bookmarked-template/bookmarked-template.component.d.ts +109 -0
  119. package/lib/template-module/bookmarked-template/bookmarkedTemplate.module.d.ts +16 -0
  120. package/lib/template-module/cdrConfigModule/cdrConfig.module.d.ts +1 -1
  121. package/lib/template-module/defaulLandingComponent/defaultLandingComponent.module.d.ts +16 -0
  122. package/lib/template-module/defaulLandingComponent/landing-component.component.d.ts +109 -0
  123. package/lib/template-module/exceptionConfigModule/exceptionConfig.module.d.ts +1 -1
  124. package/lib/template-module/kpiWithMultiLayout/dynamin-modal-multi.component.d.ts +42 -0
  125. package/lib/template-module/kpiWithMultiLayout/kpi-with-multilayout.component.d.ts +117 -0
  126. package/lib/template-module/kpiWithMultiLayout/kpiWithMultiayout.module.d.ts +17 -0
  127. package/lib/template-module/kpiWithSingleLayout/dynamin-modal.component.d.ts +42 -0
  128. package/lib/template-module/kpiWithSingleLayout/kpi-with-dataset.component.d.ts +122 -0
  129. package/lib/template-module/kpiWithSingleLayout/kpiWithSingleLayout.module.d.ts +17 -0
  130. package/package.json +1 -1
  131. package/public-api.d.ts +38 -19
  132. package/esm2020/lib/application-controller/shared/advanced-component/advance-widget-header-filter/advance-widget-header-filter.component.mjs +0 -124
  133. package/esm2020/lib/application-controller/shared/advanced-component/app-advance-header/app-header.component.mjs +0 -220
  134. package/esm2020/lib/application-controller/shared/advanced-component/gamm-single-number-card/gamm-single-number-card.component.mjs +0 -95
  135. package/esm2020/lib/application-controller/shared/advanced-component/gamma-advance-chart/gamma-advance-chart.component.mjs +0 -362
  136. package/esm2020/lib/application-controller/shared/advanced-component/gamma-advance-operator-table/gamma-advance-operator-table.component.mjs +0 -177
  137. package/esm2020/lib/application-controller/shared/advanced-component/gamma-geo-chart/gamma-geo-chart.component.mjs +0 -441
  138. package/esm2020/lib/application-controller/shared/advanced-component/gamma-heatmap/gamma-heatmap.component.mjs +0 -328
  139. package/esm2020/lib/application-controller/shared/advanced-component/gamma-table-clumn-bar-chart/gamma-table-clumn-bar-chart.component.mjs +0 -155
  140. package/esm2020/lib/application-controller/shared/advanced-component/gamma-table-with-percentage/contentSafeHtml.mjs +0 -20
  141. package/esm2020/lib/application-controller/shared/advanced-component/gamma-table-with-percentage/gamma-table-with-percentage.component.mjs +0 -157
  142. package/esm2020/lib/application-controller/shared/advanced-component/gamma-today-previous/gamma-today-previous.component.mjs +0 -85
  143. package/esm2020/lib/application-controller/shared/advanced-component/google-geo-map/google-geo-map.component.mjs +0 -439
  144. package/esm2020/lib/application-controller/shared/app-title/app-title.component.mjs +0 -67
  145. package/esm2020/lib/application-controller/shared/gamam-widget/gamam-widget.component.mjs +0 -35
  146. package/esm2020/lib/application-controller/shared/gamma-advance-filter/gamma-advance-filter.component.mjs +0 -237
  147. package/esm2020/lib/application-controller/shared/gamma-bread-crumbs/bread-crumbs.component.mjs +0 -142
  148. package/esm2020/lib/application-controller/shared/kpi-comon-service.mjs +0 -537
  149. package/esm2020/lib/application-controller/shared/loading/loadingModule.mjs +0 -28
  150. package/esm2020/lib/application-controller/shared/safeHtmlPipe.mjs +0 -20
  151. /package/lib/{application-controller/shared → shared}/advanced-component/advance-widget-header-filter/advance-widget-header-filter.component.d.ts +0 -0
  152. /package/lib/{application-controller/shared → shared}/advanced-component/gamma-table-with-percentage/contentSafeHtml.d.ts +0 -0
  153. /package/lib/{application-controller/shared → shared}/loader/loader.component.d.ts +0 -0
  154. /package/lib/{application-controller/shared → shared}/loading/loading.component.d.ts +0 -0
  155. /package/lib/{application-controller/shared → shared}/loading/loadingModule.d.ts +0 -0
  156. /package/lib/{application-controller/shared → shared}/safeHtmlPipe.d.ts +0 -0
@@ -1,220 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import moment from './../../../moment-helper';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/router";
5
- import * as i2 from "@angular/common";
6
- import * as i3 from "devextreme-angular/core";
7
- import * as i4 from "devextreme-angular/ui/popup";
8
- import * as i5 from "devextreme-angular/ui/select-box";
9
- import * as i6 from "@angular/material/icon";
10
- import * as i7 from "../../gamma-advance-filter/gamma-advance-filter.component";
11
- import * as i8 from "../../gamma-bread-crumbs/bread-crumbs.component";
12
- export class AppAdvanceHeaderComponent {
13
- constructor(activatedRoute, route) {
14
- this.activatedRoute = activatedRoute;
15
- this.route = route;
16
- this.isEditButton = true;
17
- this.toggleEvent = new EventEmitter();
18
- this.autoload_button = true;
19
- this.toolTipText = 'By Date Range';
20
- this.daterange = {};
21
- this.daterange_options = {
22
- locale: { format: 'YYYY-MM-DD' },
23
- alwaysShowCalendars: true,
24
- showCustomRangeLabel: true,
25
- ranges: {
26
- Today: [moment(), moment()],
27
- 'Last 1 Month': [moment().subtract(30, 'days'), moment()],
28
- 'Last 3 Month': [moment().subtract(91, 'days'), moment()],
29
- 'Last 6 Month': [moment().subtract(182, 'days'), moment()],
30
- 'Last 12 Month': [moment().subtract(365, 'days'), moment()],
31
- 'Last 13 Months': [
32
- moment().subtract(12, 'month').startOf('month'),
33
- moment(),
34
- ],
35
- 'This Month': [moment().startOf('month'), moment().endOf('month')],
36
- },
37
- };
38
- this.srvTypeDataSource = [];
39
- this.srvTypeDisplayValue = [];
40
- this.selectedDateRangeOrServtype = new EventEmitter();
41
- this.getFilterPageConfig = new EventEmitter();
42
- }
43
- set filterItems(value) {
44
- if (value === undefined || value.length === 0) {
45
- return;
46
- }
47
- else {
48
- let displayStartDate = '';
49
- let displayEndDate = '';
50
- this.filterItemsForFilter = value;
51
- value.forEach(element => {
52
- if (element.filterType === 'date' || element.filterType === 'datetime') {
53
- if (element.defaultFilterType === "dynamic" && element.momentFunction !== "" && element.defaultFilterValue !== "" && element.momentFormat !== "") {
54
- if (element.apiName === "startDate") {
55
- if (element.display) {
56
- displayStartDate = this.selectedDates[element.apiName];
57
- }
58
- }
59
- if (element.apiName === "endDate") {
60
- if (element.display) {
61
- displayEndDate = this.selectedDates[element.apiName];
62
- }
63
- }
64
- }
65
- else if (element.defaultFilterType === "static" && element.defaultFilterValue !== "") {
66
- if (element.apiName === "startDate") {
67
- if (element.display) {
68
- displayStartDate = moment(this.selectedDates[element.apiName]).format(element.momentFormat);
69
- }
70
- }
71
- if (element.apiName === "endDate") {
72
- if (element.display) {
73
- displayEndDate = moment(this.selectedDates[element.apiName]).format(element.momentFormat);
74
- }
75
- }
76
- }
77
- }
78
- });
79
- if (displayStartDate && displayEndDate) {
80
- this.selectedDetesforView = `${displayStartDate} - ${displayEndDate}`;
81
- }
82
- else if (displayStartDate) {
83
- this.selectedDetesforView = displayStartDate;
84
- }
85
- else if (displayEndDate) {
86
- this.selectedDetesforView = displayEndDate;
87
- }
88
- else {
89
- this.selectedDetesforView = '';
90
- }
91
- }
92
- }
93
- set contextFilterItems(value) {
94
- if (!value) {
95
- this.contextFilterItemsForFilter = value;
96
- }
97
- else {
98
- this.contextFilterItemsForFilter = [];
99
- value.forEach(element => {
100
- if (element.filterType == "context") {
101
- this.contextFilterItemsForFilter.push(element);
102
- }
103
- });
104
- }
105
- }
106
- ngOnInit() {
107
- }
108
- pageAutoloadStopRun() {
109
- if (this.autoload_button == true) {
110
- this.autoload_button = false;
111
- clearInterval(this.time_out_id);
112
- this.time_out_id = 0;
113
- }
114
- else if (this.autoload_button == false) {
115
- this.autoload_button = true;
116
- this.time_out_id = 1;
117
- }
118
- }
119
- callPageDocumentation() {
120
- }
121
- getDateOrServeTypeValueChange(node) {
122
- this.selectedDateRangeOrServtype.emit(node);
123
- }
124
- editKpi() {
125
- const pageId = this.activatedRoute.snapshot.queryParams['pageId'];
126
- let navigationExtras = {
127
- queryParams: {
128
- pageId: pageId,
129
- contentType: "edit"
130
- },
131
- };
132
- this.route.navigate(['/apps/controlPanel/pageConfigController'], navigationExtras);
133
- }
134
- advanceFilterKpi() {
135
- this.isAdvanceFilter = true;
136
- }
137
- getSerchFilter(filter) {
138
- this.isAdvanceFilter = false;
139
- let displayStartDate = '';
140
- let displayEndDate = '';
141
- this.filterItemsForFilter.forEach(element => {
142
- if (element.filterType === 'date' || element.filterType === 'datetime') {
143
- if (element.defaultFilterType === "dynamic" && element.momentFunction !== "" && element.defaultFilterValue !== "" && element.momentFormat !== "") {
144
- let [count, unit] = element.defaultFilterValue.split(',');
145
- if (element.apiName === "startDate") {
146
- if (element.display) {
147
- filter.startDate = moment(filter.startDate).format(element.momentFormat);
148
- displayStartDate = filter.startDate;
149
- }
150
- else {
151
- filter.startDate = moment(filter.endDate)[element.momentFunction](parseInt(count), unit).format(element.momentFormat);
152
- }
153
- }
154
- if (element.apiName === "endDate") {
155
- filter.endDate = moment(filter.endDate).format(element.momentFormat);
156
- if (element.display) {
157
- displayEndDate = filter.endDate;
158
- }
159
- }
160
- }
161
- else if (element.defaultFilterType === "static" && element.defaultFilterValue !== "") {
162
- if (element.apiName === "startDate") {
163
- if (element.display) {
164
- displayStartDate = moment(this.selectedDates[element.apiName]).format(element.momentFormat);
165
- filter.startDate = moment(this.selectedDates[element.apiName]).format(element.momentFormat);
166
- }
167
- }
168
- if (element.apiName === "endDate") {
169
- if (element.display) {
170
- displayEndDate = moment(this.selectedDates[element.apiName]).format(element.momentFormat);
171
- filter.endDate = moment(this.selectedDates[element.apiName]).format(element.momentFormat);
172
- }
173
- }
174
- }
175
- }
176
- });
177
- if (displayStartDate && displayEndDate) {
178
- this.selectedDetesforView = `${displayStartDate} - ${displayEndDate}`;
179
- }
180
- else if (displayStartDate) {
181
- this.selectedDetesforView = displayStartDate;
182
- }
183
- else if (displayEndDate) {
184
- this.selectedDetesforView = displayEndDate;
185
- }
186
- else {
187
- this.selectedDetesforView = '';
188
- }
189
- this.getFilterPageConfig.emit(filter);
190
- }
191
- }
192
- AppAdvanceHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AppAdvanceHeaderComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
193
- AppAdvanceHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: AppAdvanceHeaderComponent, selector: "app-advance-header", inputs: { pageTitle: "pageTitle", bread_crumbs_container: "bread_crumbs_container", isEditButton: "isEditButton", isAdvanceButton: "isAdvanceButton", selectedDates: "selectedDates", filterItems: "filterItems", contextFilterItems: "contextFilterItems" }, outputs: { toggleEvent: "toggleEvent", selectedDateRangeOrServtype: "selectedDateRangeOrServtype", getFilterPageConfig: "getFilterPageConfig" }, ngImport: i0, template: "<div class=\"flex flex-col mb-2\">\n <div class=\"flex justify-between border-b dark:bg-transparent\">\n <div class=\"flex flex-col ml-1\">\n <div class=\"flex items-center float-start\">\n <div class=\"flex items-center overflow-hidden\">\n <mat-icon class=\"icon-size-2\" [svgIcon]=\"'heroicons_solid:template'\"></mat-icon>\n </div>\n <h2\n class=\"text-2xl md:text-2xl py-3 font-extrabold items-center ml-2 tracking-tight leading-5 truncate capitalize\">\n {{ pageTitle }}\n </h2>\n </div>\n <div class=\"\">\n <!-- INCOMING -->\n <gamma-bread-crumbs [kpi_data_container]=\"bread_crumbs_container\"></gamma-bread-crumbs>\n </div>\n </div>\n <div class=\"flex justify-between items-center border-l-2 p-0 m-0\">\n\n <div class=\"mx-2\" *ngIf=\"isEditButton\">\n <div (click)=\"editKpi()\"\n class=\"bg-blue-700 cursor-pointer dark:bg-blue-600 dark:focus:ring-blue-800 dark:hover:bg-blue-700 focus:outline-none focus:ring-4 focus:ring-blue-300 font-medium hover:bg-blue-800 mr-2 px-2.5 py-2 rounded text-sm text-white ng-star-inserted\">\n Edit\n </div>\n </div>\n <div class=\"w-1 h-full border-l-2\"></div>\n <ng-container *ngIf=\"contextFilterItemsForFilter && contextFilterItemsForFilter.length !== 0\">\n <div class=\"mx-2\">\n <dx-select-box [dataSource]=\"contextFilterItemsForFilter\" displayExpr=\"label\" value=\"defaultFilterValue\"></dx-select-box>\n </div>\n </ng-container>\n \n <div class=\"w-1 h-full border-l-2\"></div>\n <div class=\"mx-2\">\n <div class=\"cursor-pointer\" (click)=\"advanceFilterKpi()\"> {{selectedDetesforView}}</div>\n </div>\n <div class=\"w-1 h-full border-l-2\"></div>\n <div class=\"mx-2\" *ngIf=\"isAdvanceButton\">\n <button class=\"mat-focus-indicator mat-menu-trigger mat-icon-button mat-button-base\"\n aria-haspopup=\"menu\" (click)=\"advanceFilterKpi()\">\n <span class=\"mat-button-wrapper\">\n <span class=\"relative\">\n <mat-icon title=\"Filters\" [svgIcon]=\"'heroicons_outline:adjustments'\">\n </mat-icon>\n </span>\n </span>\n </button>\n </div>\n\n\n <div class=\"w-1 h-full border-l-2\"></div>\n \n\n </div>\n </div>\n</div>\n\n<dx-popup [(visible)]=\"isAdvanceFilter\" [closeOnOutsideClick]=\"false\" [dragEnabled]=\"false\" [width]=\"600\"\n [height]=\"'auto'\" [showTitle]=\"true\" class=\"popup\" title=\"Filter\">\n <div *dxTemplate=\"let data of 'content'\">\n <app-gamma-advance-filter [kpiId]=\"'231212'\" [filterOperatorData]=\"filterItemsForFilter\"\n [isButtonDesiable]=\"isAdvanceFilter\" [filterStartDate]=\"filterStartDate\" [filterEndDate]=\"filterEndDate\"\n (filterDataObject)=\"getSerchFilter($event)\"></app-gamma-advance-filter>\n </div>\n</dx-popup>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i4.DxPopupComponent, selector: "dx-popup", inputs: ["accessKey", "animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "dragAndResizeArea", "dragEnabled", "dragOutsideBoundary", "elementAttr", "focusStateEnabled", "fullScreen", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "resizeEnabled", "restorePosition", "rtlEnabled", "shading", "shadingColor", "showCloseButton", "showTitle", "tabIndex", "title", "titleTemplate", "toolbarItems", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onResize", "onResizeEnd", "onResizeStart", "onShowing", "onShown", "onTitleRendered", "accessKeyChange", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "dragAndResizeAreaChange", "dragEnabledChange", "dragOutsideBoundaryChange", "elementAttrChange", "focusStateEnabledChange", "fullScreenChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "resizeEnabledChange", "restorePositionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showCloseButtonChange", "showTitleChange", "tabIndexChange", "titleChange", "titleTemplateChange", "toolbarItemsChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "component", type: i5.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: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.GammaAdvanceFilterComponent, selector: "app-gamma-advance-filter", inputs: ["kpiId", "filterStartDate", "filterEndDate", "browser_api_config", "isButtonDesiable", "filterOperatorData"], outputs: ["filterDataObject"] }, { kind: "component", type: i8.BreadCrumbsComponent, selector: "gamma-bread-crumbs", inputs: ["kpi_data_container"] }] });
194
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AppAdvanceHeaderComponent, decorators: [{
195
- type: Component,
196
- args: [{ selector: 'app-advance-header', template: "<div class=\"flex flex-col mb-2\">\n <div class=\"flex justify-between border-b dark:bg-transparent\">\n <div class=\"flex flex-col ml-1\">\n <div class=\"flex items-center float-start\">\n <div class=\"flex items-center overflow-hidden\">\n <mat-icon class=\"icon-size-2\" [svgIcon]=\"'heroicons_solid:template'\"></mat-icon>\n </div>\n <h2\n class=\"text-2xl md:text-2xl py-3 font-extrabold items-center ml-2 tracking-tight leading-5 truncate capitalize\">\n {{ pageTitle }}\n </h2>\n </div>\n <div class=\"\">\n <!-- INCOMING -->\n <gamma-bread-crumbs [kpi_data_container]=\"bread_crumbs_container\"></gamma-bread-crumbs>\n </div>\n </div>\n <div class=\"flex justify-between items-center border-l-2 p-0 m-0\">\n\n <div class=\"mx-2\" *ngIf=\"isEditButton\">\n <div (click)=\"editKpi()\"\n class=\"bg-blue-700 cursor-pointer dark:bg-blue-600 dark:focus:ring-blue-800 dark:hover:bg-blue-700 focus:outline-none focus:ring-4 focus:ring-blue-300 font-medium hover:bg-blue-800 mr-2 px-2.5 py-2 rounded text-sm text-white ng-star-inserted\">\n Edit\n </div>\n </div>\n <div class=\"w-1 h-full border-l-2\"></div>\n <ng-container *ngIf=\"contextFilterItemsForFilter && contextFilterItemsForFilter.length !== 0\">\n <div class=\"mx-2\">\n <dx-select-box [dataSource]=\"contextFilterItemsForFilter\" displayExpr=\"label\" value=\"defaultFilterValue\"></dx-select-box>\n </div>\n </ng-container>\n \n <div class=\"w-1 h-full border-l-2\"></div>\n <div class=\"mx-2\">\n <div class=\"cursor-pointer\" (click)=\"advanceFilterKpi()\"> {{selectedDetesforView}}</div>\n </div>\n <div class=\"w-1 h-full border-l-2\"></div>\n <div class=\"mx-2\" *ngIf=\"isAdvanceButton\">\n <button class=\"mat-focus-indicator mat-menu-trigger mat-icon-button mat-button-base\"\n aria-haspopup=\"menu\" (click)=\"advanceFilterKpi()\">\n <span class=\"mat-button-wrapper\">\n <span class=\"relative\">\n <mat-icon title=\"Filters\" [svgIcon]=\"'heroicons_outline:adjustments'\">\n </mat-icon>\n </span>\n </span>\n </button>\n </div>\n\n\n <div class=\"w-1 h-full border-l-2\"></div>\n \n\n </div>\n </div>\n</div>\n\n<dx-popup [(visible)]=\"isAdvanceFilter\" [closeOnOutsideClick]=\"false\" [dragEnabled]=\"false\" [width]=\"600\"\n [height]=\"'auto'\" [showTitle]=\"true\" class=\"popup\" title=\"Filter\">\n <div *dxTemplate=\"let data of 'content'\">\n <app-gamma-advance-filter [kpiId]=\"'231212'\" [filterOperatorData]=\"filterItemsForFilter\"\n [isButtonDesiable]=\"isAdvanceFilter\" [filterStartDate]=\"filterStartDate\" [filterEndDate]=\"filterEndDate\"\n (filterDataObject)=\"getSerchFilter($event)\"></app-gamma-advance-filter>\n </div>\n</dx-popup>" }]
197
- }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i1.Router }]; }, propDecorators: { pageTitle: [{
198
- type: Input
199
- }], bread_crumbs_container: [{
200
- type: Input
201
- }], isEditButton: [{
202
- type: Input
203
- }], isAdvanceButton: [{
204
- type: Input
205
- }], selectedDates: [{
206
- type: Input
207
- }], toggleEvent: [{
208
- type: Output
209
- }], selectedDateRangeOrServtype: [{
210
- type: Output
211
- }], getFilterPageConfig: [{
212
- type: Output
213
- }], filterItems: [{
214
- type: Input,
215
- args: ['filterItems']
216
- }], contextFilterItems: [{
217
- type: Input,
218
- args: ['contextFilterItems']
219
- }] } });
220
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nYW1tYS1hcHAtY29udHJvbGxlci9zcmMvbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9hcHAtYWR2YW5jZS1oZWFkZXIvYXBwLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nYW1tYS1hcHAtY29udHJvbGxlci9zcmMvbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9hcHAtYWR2YW5jZS1oZWFkZXIvYXBwLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sTUFBTSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7O0FBTTlDLE1BQU0sT0FBTyx5QkFBeUI7SUErSGxDLFlBQ1ksY0FBOEIsRUFDOUIsS0FBYTtRQURiLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBOUhoQixpQkFBWSxHQUFZLElBQUksQ0FBQztRQUs1QixnQkFBVyxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBU3pFLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBRXZCLGdCQUFXLEdBQUcsZUFBZSxDQUFDO1FBRXZCLGNBQVMsR0FBUSxFQUFFLENBQUM7UUFDcEIsc0JBQWlCLEdBQVE7WUFDNUIsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRTtZQUNoQyxtQkFBbUIsRUFBRSxJQUFJO1lBQ3pCLG9CQUFvQixFQUFFLElBQUk7WUFDMUIsTUFBTSxFQUFFO2dCQUNK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RyxnQkFBZ0IsQ0FBQztTQUNoRDthQUFNLElBQUksY0FBYyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxjQUFjLENBQUM7U0FDOUM7YUFBTTtZQUNILElBQUksQ0FBQyxvQkFBb0IsR0FBRyxFQUFFLENBQUM7U0FDbEM7UUFJRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ3pDLENBQUM7O3NIQTdPUSx5QkFBeUI7MEdBQXpCLHlCQUF5Qix5Y0NSdEMsd3lHQWdFVzsyRkR4REUseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNJLG9CQUFvQjswSEFLckIsU0FBUztzQkFBakIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFvQ1UsMkJBQTJCO3NCQUEzQyxNQUFNO2dCQUNVLG1CQUFtQjtzQkFBbkMsTUFBTTtnQkFNSCxXQUFXO3NCQURkLEtBQUs7dUJBQUMsYUFBYTtnQkE0RGhCLGtCQUFrQjtzQkFEckIsS0FBSzt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgTmF2aWdhdGlvbkV4dHJhcywgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCBtb21lbnQgZnJvbSAnLi8uLi8uLi8uLi9tb21lbnQtaGVscGVyJztcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLWFkdmFuY2UtaGVhZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXBwLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYXBwLWhlYWRlci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBBcHBBZHZhbmNlSGVhZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSBwYWdlVGl0bGU6IHN0cmluZztcbiAgICBASW5wdXQoKSBicmVhZF9jcnVtYnNfY29udGFpbmVyOiBhbnk7XG4gICAgQElucHV0KCkgaXNFZGl0QnV0dG9uOiBib29sZWFuID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBpc0FkdmFuY2VCdXR0b246IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKSBzZWxlY3RlZERhdGVzOiBhbnk7XG5cbiAgICBAT3V0cHV0KCkgdG9nZ2xlRXZlbnQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gICAgaXNBZHZhbmNlRmlsdGVyOiBib29sZWFuO1xuICAgIGJyb3dzZXJfY29uZmlnOiBhbnk7XG4gICAga3BpX2lkOiBhbnk7XG5cbiAgICBmaWx0ZXJTdGFydERhdGU7XG4gICAgZmlsdGVyRW5kRGF0ZTtcbiAgICBmaWx0ZXJPcHRpb25zO1xuXG4gICAgYXV0b2xvYWRfYnV0dG9uID0gdHJ1ZTtcbiAgICBwcml2YXRlIHRpbWVfb3V0X2lkO1xuICAgIHRvb2xUaXBUZXh0ID0gJ0J5IERhdGUgUmFuZ2UnO1xuXG4gICAgcHVibGljIGRhdGVyYW5nZTogYW55ID0ge307XG4gICAgcHVibGljIGRhdGVyYW5nZV9vcHRpb25zOiBhbnkgPSB7XG4gICAgICAgIGxvY2FsZTogeyBmb3JtYXQ6ICdZWVlZLU1NLUREJyB9LFxuICAgICAgICBhbHdheXNTaG93Q2FsZW5kYXJzOiB0cnVlLFxuICAgICAgICBzaG93Q3VzdG9tUmFuZ2VMYWJlbDogdHJ1ZSxcbiAgICAgICAgcmFuZ2VzOiB7XG4gICAgICAgICAgICBUb2RheTogW21vbWVudCgpLCBtb21lbnQoKV0sXG4gICAgICAgICAgICAvLyBZZXN0ZXJkYXk6IFttb21lbnQoKS5zdWJ0cmFjdCgxLCAnZGF5cycpLCBtb21lbnQoKS5zdWJ0cmFjdCgxLCAnZGF5cycpXSxcbiAgICAgICAgICAgICdMYXN0IDEgTW9udGgnOiBbbW9tZW50KCkuc3VidHJhY3QoMzAsICdkYXlzJyksIG1vbWVudCgpXSxcbiAgICAgICAgICAgICdMYXN0IDMgTW9udGgnOiBbbW9tZW50KCkuc3VidHJhY3QoOTEsICdkYXlzJyksIG1vbWVudCgpXSxcbiAgICAgICAgICAgICdMYXN0IDYgTW9udGgnOiBbbW9tZW50KCkuc3VidHJhY3QoMTgyLCAnZGF5cycpLCBtb21lbnQoKV0sXG4gICAgICAgICAgICAnTGFzdCAxMiBNb250aCc6IFttb21lbnQoKS5zdWJ0cmFjdCgzNjUsICdkYXlzJyksIG1vbWVudCgpXSxcbiAgICAgICAgICAgICdMYXN0IDEzIE1vbnRocyc6IFtcbiAgICAgICAgICAgICAgICBtb21lbnQoKS5zdWJ0cmFjdCgxMiwgJ21vbnRoJykuc3RhcnRPZignbW9udGgnKSxcbiAgICAgICAgICAgICAgICBtb21lbnQoKSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAnVGhpcyBNb250aCc6IFttb21lbnQoKS5zdGFydE9mKCdtb250aCcpLCBtb21lbnQoKS5lbmRPZignbW9udGgnKV0sXG4gICAgICAgIH0sXG4gICAgfTtcblxuICAgIHNydlR5cGVEYXRhU291cmNlOiBhbnkgPSBbXTtcbiAgICBzcnZUeXBlRGlzcGxheVZhbHVlOiBhbnkgPSBbXTtcbiAgICBzZWxlY3RlZERldGVzZm9yVmlldzogYW55O1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgc2VsZWN0ZWREYXRlUmFuZ2VPclNlcnZ0eXBlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGdldEZpbHRlclBhZ2VDb25maWc6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5cbiAgICBmaWx0ZXJJdGVtc0ZvckZpbHRlcjogYW55O1xuXG4gICAgQElucHV0KCdmaWx0ZXJJdGVtcycpXG4gICAgc2V0IGZpbHRlckl0ZW1zKHZhbHVlKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2Uge1xuXG4gICAgICAgICAgICBsZXQgZGlzcGxheVN0YXJ0RGF0ZSA9ICcnO1xuICAgICAgICAgICAgbGV0IGRpc3BsYXlFbmREYXRlID0gJyc7XG4gICAgICAgICAgICB0aGlzLmZpbHRlckl0ZW1zRm9yRmlsdGVyID0gdmFsdWU7XG4gICAgICAgICAgICB2YWx1ZS5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmZpbHRlclR5cGUgPT09ICdkYXRlJyB8fCBlbGVtZW50LmZpbHRlclR5cGUgPT09ICdkYXRldGltZScpIHtcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmRlZmF1bHRGaWx0ZXJUeXBlID09PSBcImR5bmFtaWNcIiAmJiBlbGVtZW50Lm1vbWVudEZ1bmN0aW9uICE9PSBcIlwiICYmIGVsZW1lbnQuZGVmYXVsdEZpbHRlclZhbHVlICE9PSBcIlwiICYmIGVsZW1lbnQubW9tZW50Rm9ybWF0ICE9PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gIGxldCBbY291bnQsIHVuaXRdID0gZWxlbWVudC5kZWZhdWx0RmlsdGVyVmFsdWUuc3BsaXQoJywnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxldCBmb3JtYXR0ZWREYXRlID0gbW9tZW50KClbZWxlbWVudC5tb21lbnRGdW5jdGlvbl0ocGFyc2VJbnQoY291bnQpLCB1bml0KS5mb3JtYXQoZWxlbWVudC5tb21lbnRGb3JtYXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuYXBpTmFtZSA9PT0gXCJzdGFydERhdGVcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmRpc3BsYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheVN0YXJ0RGF0ZSA9IHRoaXMuc2VsZWN0ZWREYXRlc1tlbGVtZW50LmFwaU5hbWVdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmFwaU5hbWUgPT09IFwiZW5kRGF0ZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuZGlzcGxheSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5RW5kRGF0ZSA9IHRoaXMuc2VsZWN0ZWREYXRlc1tlbGVtZW50LmFwaU5hbWVdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChlbGVtZW50LmRlZmF1bHRGaWx0ZXJUeXBlID09PSBcInN0YXRpY1wiICYmIGVsZW1lbnQuZGVmYXVsdEZpbHRlclZhbHVlICE9PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuYXBpTmFtZSA9PT0gXCJzdGFydERhdGVcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmRpc3BsYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheVN0YXJ0RGF0ZSA9IG1vbWVudCh0aGlzLnNlbGVjdGVkRGF0ZXNbZWxlbWVudC5hcGlOYW1lXSkuZm9ybWF0KGVsZW1lbnQubW9tZW50Rm9ybWF0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5hcGlOYW1lID09PSBcImVuZERhdGVcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmRpc3BsYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheUVuZERhdGUgPSBtb21lbnQodGhpcy5zZWxlY3RlZERhdGVzW2VsZW1lbnQuYXBpTmFtZV0pLmZvcm1hdChlbGVtZW50Lm1vbWVudEZvcm1hdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIC8vIHRoaXMuZ2V0RmlsdGVyUGFnZUNvbmZpZy5lbWl0KGZpbHRlcl9jb25maWcpXG5cbiAgICAgICAgICAgIGlmIChkaXNwbGF5U3RhcnREYXRlICYmIGRpc3BsYXlFbmREYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERldGVzZm9yVmlldyA9IGAke2Rpc3BsYXlTdGFydERhdGV9IC0gJHtkaXNwbGF5RW5kRGF0ZX1gO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChkaXNwbGF5U3RhcnREYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERldGVzZm9yVmlldyA9IGRpc3BsYXlTdGFydERhdGU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGRpc3BsYXlFbmREYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERldGVzZm9yVmlldyA9IGRpc3BsYXlFbmREYXRlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGV0ZXNmb3JWaWV3ID0gJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuXG4gICAgfVxuXG4gICAgY29udGV4dEZpbHRlckl0ZW1zRm9yRmlsdGVyOmFueTtcbiAgICBASW5wdXQoJ2NvbnRleHRGaWx0ZXJJdGVtcycpXG4gICAgc2V0IGNvbnRleHRGaWx0ZXJJdGVtcyh2YWx1ZSkge1xuICAgICAgICBcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0RmlsdGVySXRlbXNGb3JGaWx0ZXIgPSB2YWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dEZpbHRlckl0ZW1zRm9yRmlsdGVyID0gW107XG4gICAgICAgICAgICB2YWx1ZS5mb3JFYWNoKGVsZW1lbnQ9PntcbiAgICAgICAgICAgICAgICBpZihlbGVtZW50LmZpbHRlclR5cGUgPT0gXCJjb250ZXh0XCIpe1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHRGaWx0ZXJJdGVtc0ZvckZpbHRlci5wdXNoKGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBcbiAgICAgICAgfVxuXG5cbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgcm91dGU6IFJvdXRlcixcbiAgICApIHtcblxuICAgIH1cblxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG5cblxuICAgIH1cblxuXG5cbiAgICBwYWdlQXV0b2xvYWRTdG9wUnVuKCkge1xuICAgICAgICBpZiAodGhpcy5hdXRvbG9hZF9idXR0b24gPT0gdHJ1ZSkge1xuICAgICAgICAgICAgdGhpcy5hdXRvbG9hZF9idXR0b24gPSBmYWxzZTtcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy50aW1lX291dF9pZCk7XG4gICAgICAgICAgICB0aGlzLnRpbWVfb3V0X2lkID0gMDtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmF1dG9sb2FkX2J1dHRvbiA9PSBmYWxzZSkge1xuICAgICAgICAgICAgdGhpcy5hdXRvbG9hZF9idXR0b24gPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy50aW1lX291dF9pZCA9IDE7XG4gICAgICAgICAgICAvLyB0aGlzLmRhdGVzVXBkYXRlZCh0aGlzLnNlbGVjdGVkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNhbGxQYWdlRG9jdW1lbnRhdGlvbigpIHtcblxuICAgIH1cblxuXG4gICAgZ2V0RGF0ZU9yU2VydmVUeXBlVmFsdWVDaGFuZ2Uobm9kZTogYW55KSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2VPclNlcnZ0eXBlLmVtaXQobm9kZSlcbiAgICB9XG5cblxuICAgIGVkaXRLcGkoKSB7XG4gICAgICAgIGNvbnN0IHBhZ2VJZCA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbJ3BhZ2VJZCddO1xuICAgICAgICBsZXQgbmF2aWdhdGlvbkV4dHJhczogTmF2aWdhdGlvbkV4dHJhcyA9IHtcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgcGFnZUlkOiBwYWdlSWQsXG4gICAgICAgICAgICAgICAgY29udGVudFR5cGU6IFwiZWRpdFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnJvdXRlLm5hdmlnYXRlKFsnL2FwcHMvY29udHJvbFBhbmVsL3BhZ2VDb25maWdDb250cm9sbGVyJ10sIG5hdmlnYXRpb25FeHRyYXMpO1xuICAgIH1cblxuXG4gICAgYWR2YW5jZUZpbHRlcktwaSgpIHtcbiAgICAgICAgdGhpcy5pc0FkdmFuY2VGaWx0ZXIgPSB0cnVlO1xuICAgIH1cblxuICAgIGdldFNlcmNoRmlsdGVyKGZpbHRlcikge1xuXG4gICAgICAgIHRoaXMuaXNBZHZhbmNlRmlsdGVyID0gZmFsc2U7XG4gICAgICAgIGxldCBkaXNwbGF5U3RhcnREYXRlID0gJyc7XG4gICAgICAgIGxldCBkaXNwbGF5RW5kRGF0ZSA9ICcnO1xuXG4gICAgICAgIHRoaXMuZmlsdGVySXRlbXNGb3JGaWx0ZXIuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgICAgIGlmIChlbGVtZW50LmZpbHRlclR5cGUgPT09ICdkYXRlJyB8fCBlbGVtZW50LmZpbHRlclR5cGUgPT09ICdkYXRldGltZScpIHtcbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5kZWZhdWx0RmlsdGVyVHlwZSA9PT0gXCJkeW5hbWljXCIgJiYgZWxlbWVudC5tb21lbnRGdW5jdGlvbiAhPT0gXCJcIiAmJiBlbGVtZW50LmRlZmF1bHRGaWx0ZXJWYWx1ZSAhPT0gXCJcIiAmJiBlbGVtZW50Lm1vbWVudEZvcm1hdCAhPT0gXCJcIikge1xuICAgICAgICAgICAgICAgICAgICBsZXQgW2NvdW50LCB1bml0XSA9IGVsZW1lbnQuZGVmYXVsdEZpbHRlclZhbHVlLnNwbGl0KCcsJyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmFwaU5hbWUgPT09IFwic3RhcnREYXRlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmRpc3BsYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIuc3RhcnREYXRlID0gbW9tZW50KGZpbHRlci5zdGFydERhdGUpLmZvcm1hdChlbGVtZW50Lm1vbWVudEZvcm1hdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheVN0YXJ0RGF0ZSA9IGZpbHRlci5zdGFydERhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlci5zdGFydERhdGUgPSBtb21lbnQoZmlsdGVyLmVuZERhdGUpW2VsZW1lbnQubW9tZW50RnVuY3Rpb25dKHBhcnNlSW50KGNvdW50KSwgdW5pdCkuZm9ybWF0KGVsZW1lbnQubW9tZW50Rm9ybWF0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5hcGlOYW1lID09PSBcImVuZERhdGVcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyLmVuZERhdGUgPSBtb21lbnQoZmlsdGVyLmVuZERhdGUpLmZvcm1hdChlbGVtZW50Lm1vbWVudEZvcm1hdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5kaXNwbGF5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheUVuZERhdGUgPSBmaWx0ZXIuZW5kRGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5kZWZhdWx0RmlsdGVyVHlwZSA9PT0gXCJzdGF0aWNcIiAmJiBlbGVtZW50LmRlZmF1bHRGaWx0ZXJWYWx1ZSAhPT0gXCJcIikge1xuICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuYXBpTmFtZSA9PT0gXCJzdGFydERhdGVcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuZGlzcGxheSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlTdGFydERhdGUgPSBtb21lbnQodGhpcy5zZWxlY3RlZERhdGVzW2VsZW1lbnQuYXBpTmFtZV0pLmZvcm1hdChlbGVtZW50Lm1vbWVudEZvcm1hdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyLnN0YXJ0RGF0ZSA9IG1vbWVudCh0aGlzLnNlbGVjdGVkRGF0ZXNbZWxlbWVudC5hcGlOYW1lXSkuZm9ybWF0KGVsZW1lbnQubW9tZW50Rm9ybWF0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5hcGlOYW1lID09PSBcImVuZERhdGVcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuZGlzcGxheSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlFbmREYXRlID0gbW9tZW50KHRoaXMuc2VsZWN0ZWREYXRlc1tlbGVtZW50LmFwaU5hbWVdKS5mb3JtYXQoZWxlbWVudC5tb21lbnRGb3JtYXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlci5lbmREYXRlID0gbW9tZW50KHRoaXMuc2VsZWN0ZWREYXRlc1tlbGVtZW50LmFwaU5hbWVdKS5mb3JtYXQoZWxlbWVudC5tb21lbnRGb3JtYXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGRpc3BsYXlTdGFydERhdGUgJiYgZGlzcGxheUVuZERhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREZXRlc2ZvclZpZXcgPSBgJHtkaXNwbGF5U3RhcnREYXRlfSAtICR7ZGlzcGxheUVuZERhdGV9YDtcbiAgICAgICAgfSBlbHNlIGlmIChkaXNwbGF5U3RhcnREYXRlKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGV0ZXNmb3JWaWV3ID0gZGlzcGxheVN0YXJ0RGF0ZTtcbiAgICAgICAgfSBlbHNlIGlmIChkaXNwbGF5RW5kRGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERldGVzZm9yVmlldyA9IGRpc3BsYXlFbmREYXRlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERldGVzZm9yVmlldyA9ICcnO1xuICAgICAgICB9XG5cblxuXG4gICAgICAgIHRoaXMuZ2V0RmlsdGVyUGFnZUNvbmZpZy5lbWl0KGZpbHRlcilcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBtYi0yXCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIGJvcmRlci1iIGRhcms6YmctdHJhbnNwYXJlbnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgbWwtMVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGZsb2F0LXN0YXJ0XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIG92ZXJmbG93LWhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJpY29uLXNpemUtMlwiIFtzdmdJY29uXT1cIidoZXJvaWNvbnNfc29saWQ6dGVtcGxhdGUnXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8aDJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LTJ4bCBtZDp0ZXh0LTJ4bCBweS0zIGZvbnQtZXh0cmFib2xkIGl0ZW1zLWNlbnRlciBtbC0yIHRyYWNraW5nLXRpZ2h0IGxlYWRpbmctNSB0cnVuY2F0ZSBjYXBpdGFsaXplXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IHBhZ2VUaXRsZSB9fVxuICAgICAgICAgICAgICAgIDwvaDI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJcIj5cbiAgICAgICAgICAgICAgICA8IS0tIElOQ09NSU5HIC0tPlxuICAgICAgICAgICAgICAgIDxnYW1tYS1icmVhZC1jcnVtYnMgW2twaV9kYXRhX2NvbnRhaW5lcl09XCJicmVhZF9jcnVtYnNfY29udGFpbmVyXCI+PC9nYW1tYS1icmVhZC1jcnVtYnM+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgYm9yZGVyLWwtMiBwLTAgbS0wXCI+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteC0yXCIgKm5nSWY9XCJpc0VkaXRCdXR0b25cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJlZGl0S3BpKClcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJnLWJsdWUtNzAwIGN1cnNvci1wb2ludGVyIGRhcms6YmctYmx1ZS02MDAgZGFyazpmb2N1czpyaW5nLWJsdWUtODAwIGRhcms6aG92ZXI6YmctYmx1ZS03MDAgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctNCBmb2N1czpyaW5nLWJsdWUtMzAwIGZvbnQtbWVkaXVtIGhvdmVyOmJnLWJsdWUtODAwIG1yLTIgcHgtMi41IHB5LTIgcm91bmRlZCB0ZXh0LXNtIHRleHQtd2hpdGUgbmctc3Rhci1pbnNlcnRlZFwiPlxuICAgICAgICAgICAgICAgICAgICBFZGl0XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEgaC1mdWxsIGJvcmRlci1sLTJcIj48L2Rpdj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZXh0RmlsdGVySXRlbXNGb3JGaWx0ZXIgJiYgIGNvbnRleHRGaWx0ZXJJdGVtc0ZvckZpbHRlci5sZW5ndGggIT09IDBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXgtMlwiPlxuICAgICAgICAgICAgICAgICAgICA8ZHgtc2VsZWN0LWJveCBbZGF0YVNvdXJjZV09XCJjb250ZXh0RmlsdGVySXRlbXNGb3JGaWx0ZXJcIiBkaXNwbGF5RXhwcj1cImxhYmVsXCIgdmFsdWU9XCJkZWZhdWx0RmlsdGVyVmFsdWVcIj48L2R4LXNlbGVjdC1ib3g+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xIGgtZnVsbCBib3JkZXItbC0yXCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXgtMlwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJhZHZhbmNlRmlsdGVyS3BpKClcIj4ge3tzZWxlY3RlZERldGVzZm9yVmlld319PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEgaC1mdWxsIGJvcmRlci1sLTJcIj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteC0yXCIgKm5nSWY9XCJpc0FkdmFuY2VCdXR0b25cIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWF0LWZvY3VzLWluZGljYXRvciBtYXQtbWVudS10cmlnZ2VyIG1hdC1pY29uLWJ1dHRvbiBtYXQtYnV0dG9uLWJhc2VcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwibWVudVwiIChjbGljayk9XCJhZHZhbmNlRmlsdGVyS3BpKClcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXQtYnV0dG9uLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVsYXRpdmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gdGl0bGU9XCJGaWx0ZXJzXCIgW3N2Z0ljb25dPVwiJ2hlcm9pY29uc19vdXRsaW5lOmFkanVzdG1lbnRzJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEgaC1mdWxsIGJvcmRlci1sLTJcIj48L2Rpdj5cbiAgICAgICAgICAgIFxuXG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxkeC1wb3B1cCBbKHZpc2libGUpXT1cImlzQWR2YW5jZUZpbHRlclwiIFtjbG9zZU9uT3V0c2lkZUNsaWNrXT1cImZhbHNlXCIgW2RyYWdFbmFibGVkXT1cImZhbHNlXCIgW3dpZHRoXT1cIjYwMFwiXG4gICAgW2hlaWdodF09XCInYXV0bydcIiBbc2hvd1RpdGxlXT1cInRydWVcIiBjbGFzcz1cInBvcHVwXCIgdGl0bGU9XCJGaWx0ZXJcIj5cbiAgICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGRhdGEgb2YgJ2NvbnRlbnQnXCI+XG4gICAgICAgIDxhcHAtZ2FtbWEtYWR2YW5jZS1maWx0ZXIgW2twaUlkXT1cIicyMzEyMTInXCIgW2ZpbHRlck9wZXJhdG9yRGF0YV09XCJmaWx0ZXJJdGVtc0ZvckZpbHRlclwiXG4gICAgICAgICAgICBbaXNCdXR0b25EZXNpYWJsZV09XCJpc0FkdmFuY2VGaWx0ZXJcIiBbZmlsdGVyU3RhcnREYXRlXT1cImZpbHRlclN0YXJ0RGF0ZVwiIFtmaWx0ZXJFbmREYXRlXT1cImZpbHRlckVuZERhdGVcIlxuICAgICAgICAgICAgKGZpbHRlckRhdGFPYmplY3QpPVwiZ2V0U2VyY2hGaWx0ZXIoJGV2ZW50KVwiPjwvYXBwLWdhbW1hLWFkdmFuY2UtZmlsdGVyPlxuICAgIDwvZGl2PlxuPC9keC1wb3B1cD4iXX0=
@@ -1,95 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import moment from './../../../moment-helper';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../../../common";
5
- import * as i2 from "ngx-toastr";
6
- import * as i3 from "@angular/common";
7
- import * as i4 from "../../loader/loader.component";
8
- export class GammSingleNumberCardComponent {
9
- constructor(commonService, toastr, cdr) {
10
- this.commonService = commonService;
11
- this.toastr = toastr;
12
- this.cdr = cdr;
13
- this.isLoader = true;
14
- this.colors = [
15
- "text-green-500",
16
- "text-orange-500",
17
- "text-blue-500",
18
- "text-purple-500",
19
- "text-yellow-500"
20
- ];
21
- }
22
- set chartDataSource(value) {
23
- this.objectdataSource = value;
24
- if (!this.objectdataSource || this.objectdataSource.length === 0) {
25
- this.isChartvisible = false;
26
- return;
27
- }
28
- else {
29
- this.isLoader = true;
30
- this.selectedColumn = value.kpiConfig?.dataConfig?.columns?.[0]?.dataField || "";
31
- this.sortBy = value.kpiConfig?.dataConfig?.sortBy;
32
- if (value.kpiConfig.dataSource?.length) {
33
- this.page_config = value;
34
- let sortedData = value.kpiConfig.dataSource;
35
- if (this.sortBy?.length) {
36
- let sortKey = this.sortBy[0];
37
- sortedData = sortedData.sort((a, b) => moment(b[sortKey], "YYYY-MM-DD").diff(moment(a[sortKey], "YYYY-MM-DD")));
38
- }
39
- if (value.kpiConfig.formate === "daily") {
40
- this.currentDateData = sortedData.length ? this.commonService.abbreviateNumber(sortedData[0][this.selectedColumn] || 0) : "0";
41
- }
42
- else if (value.kpiConfig.formate === "monthly") {
43
- let total = sortedData.reduce((sum, item) => {
44
- let value = Number(item[this.selectedColumn]) || 0;
45
- return sum + value;
46
- }, 0);
47
- this.currentDateData = this.commonService.abbreviateNumber(total);
48
- }
49
- this.isLoader = false;
50
- }
51
- }
52
- }
53
- getDynamicValue(data) {
54
- if (!this.selectedColumn || !data.hasOwnProperty(this.selectedColumn)) {
55
- return null;
56
- }
57
- let value = data[this.selectedColumn];
58
- const numericValue = Number(value);
59
- if (!isNaN(numericValue)) {
60
- return this.commonService.abbreviateNumber(numericValue);
61
- }
62
- return value;
63
- }
64
- ngOnInit() {
65
- this.randomColorClass = this.getRandomColor();
66
- }
67
- getRandomColor() {
68
- const randomIndex = Math.floor(Math.random() * this.colors.length);
69
- return this.colors[randomIndex];
70
- }
71
- formatNumber(value) {
72
- if (value >= 1e9) {
73
- return (value / 1e9).toFixed(1) + 'B';
74
- }
75
- else if (value >= 1e6) {
76
- return (value / 1e6).toFixed(1) + 'M';
77
- }
78
- else if (value >= 1e3) {
79
- return (value / 1e3).toFixed(1) + 'K';
80
- }
81
- else {
82
- return value.toString();
83
- }
84
- }
85
- }
86
- GammSingleNumberCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: GammSingleNumberCardComponent, deps: [{ token: i1.CommonService }, { token: i2.ToastrService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
87
- GammSingleNumberCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: GammSingleNumberCardComponent, selector: "app-gamm-single-number-card", inputs: { chartDataSource: "chartDataSource" }, ngImport: i0, template: "<div class=\"flex flex-row justify-center items-start bg-gray-800 p-4 mx-2 text-center\">\n <ng-container *ngIf=\"isLoader\">\n <app-loader></app-loader>\n </ng-container>\n <ng-container *ngIf=\"!isLoader\">\n <div class=\"flex justify-center items-center text-4xl font-bold p-2 {{randomColorClass}}\">\n {{ currentDateData }}\n </div>\n </ng-container>\n\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.LoaderComponent, selector: "app-loader" }] });
88
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: GammSingleNumberCardComponent, decorators: [{
89
- type: Component,
90
- args: [{ selector: 'app-gamm-single-number-card', template: "<div class=\"flex flex-row justify-center items-start bg-gray-800 p-4 mx-2 text-center\">\n <ng-container *ngIf=\"isLoader\">\n <app-loader></app-loader>\n </ng-container>\n <ng-container *ngIf=\"!isLoader\">\n <div class=\"flex justify-center items-center text-4xl font-bold p-2 {{randomColorClass}}\">\n {{ currentDateData }}\n </div>\n </ng-container>\n\n</div>" }]
91
- }], ctorParameters: function () { return [{ type: i1.CommonService }, { type: i2.ToastrService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { chartDataSource: [{
92
- type: Input,
93
- args: ['chartDataSource']
94
- }] } });
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FtbS1zaW5nbGUtbnVtYmVyLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2FtbWEtYXBwLWNvbnRyb2xsZXIvc3JjL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvZ2FtbS1zaW5nbGUtbnVtYmVyLWNhcmQvZ2FtbS1zaW5nbGUtbnVtYmVyLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2FtbWEtYXBwLWNvbnRyb2xsZXIvc3JjL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvZ2FtbS1zaW5nbGUtbnVtYmVyLWNhcmQvZ2FtbS1zaW5nbGUtbnVtYmVyLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRTVFLE9BQU8sTUFBTSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7QUFROUMsTUFBTSxPQUFPLDZCQUE2QjtJQXFCeEMsWUFDUyxhQUE0QixFQUMzQixNQUFxQixFQUNyQixHQUFzQjtRQUZ2QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUMzQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBYmhDLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFFekIsV0FBTSxHQUFHO1lBQ1AsZ0JBQWdCO1lBQ2hCLGlCQUFpQjtZQUNqQixlQUFlO1lBQ2YsaUJBQWlCO1lBQ2pCLGlCQUFpQjtTQUNsQixDQUFDO0lBT0UsQ0FBQztJQUVMLElBQ0ksZUFBZSxDQUFDLEtBQUs7UUFDdkIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztRQUU5QixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ2hFLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1lBQzVCLE9BQU87U0FDUjthQUFNO1lBQ0wsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDckIsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLElBQUksRUFBRSxDQUFDO1lBQ2pGLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDO1lBRWxELElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFO2dCQUN0QyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztnQkFDekIsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUM7Z0JBRTVDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUU7b0JBQ3ZCLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzdCLFVBQVUsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQ3BDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FDeEUsQ0FBQztpQkFDSDtnQkFFRCxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxLQUFLLE9BQU8sRUFBRTtvQkFDdkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztpQkFFL0g7cUJBQU0sSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUU7b0JBQ2hELElBQUksS0FBSyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7d0JBQzFDLElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUNuRCxPQUFPLEdBQUcsR0FBRyxLQUFLLENBQUM7b0JBQ3JCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDTixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ25FO2dCQUVELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO2FBQ3ZCO1NBR0Y7SUFDSCxDQUFDO0lBSUgsZUFBZSxDQUFDLElBQVM7UUFFckIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUNyRSxPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN0QyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUV4QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDMUQ7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFHRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBSUQsY0FBYztRQUNaLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBSztRQUNoQixJQUFJLEtBQUssSUFBSSxHQUFHLEVBQUU7WUFDaEIsT0FBTyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO1NBQ3ZDO2FBQU0sSUFBSSxLQUFLLElBQUksR0FBRyxFQUFFO1lBQ3ZCLE9BQU8sQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztTQUN2QzthQUFNLElBQUksS0FBSyxJQUFJLEdBQUcsRUFBRTtZQUN2QixPQUFPLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7U0FDdkM7YUFBTTtZQUNMLE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQzs7MEhBNUdVLDZCQUE2Qjs4R0FBN0IsNkJBQTZCLG1IQ1YxQywwWkFVTTsyRkRBTyw2QkFBNkI7a0JBTHpDLFNBQVM7K0JBQ0UsNkJBQTZCO2dLQWlDbkMsZUFBZTtzQkFEbEIsS0FBSzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cic7XG5pbXBvcnQgbW9tZW50IGZyb20gJy4vLi4vLi4vLi4vbW9tZW50LWhlbHBlcic7XG5pbXBvcnQgeyBDb21tb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWdhbW0tc2luZ2xlLW51bWJlci1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dhbW0tc2luZ2xlLW51bWJlci1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ2FtbS1zaW5nbGUtbnVtYmVyLWNhcmQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBHYW1tU2luZ2xlTnVtYmVyQ2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIG9iamVjdGRhdGFTb3VyY2U6IGFueTtcbiAgaXNDaGFydHZpc2libGU6IGJvb2xlYW47XG4gIHBhZ2VfY29uZmlnOiBhbnk7XG4gIGN1cnJlbnREYXRlRGF0YTogYW55O1xuICBwcmV2b3VzRGF5c0RhdGE6IGFueTtcbiAgY2FsY3VsYXRlZFZhbHVlOiBhbnk7XG4gIGlzUHJldmlvdXNEYXk6IGJvb2xlYW47XG4gIHNvcnRCeTogYW55O1xuICBzZWxlY3RlZENvbHVtbjogYW55O1xuICBzdWJzY3JpYmVyX2NvdW50O1xuICBpc0xvYWRlcjogYm9vbGVhbiA9IHRydWU7XG5cbiAgY29sb3JzID0gW1xuICAgIFwidGV4dC1ncmVlbi01MDBcIixcbiAgICBcInRleHQtb3JhbmdlLTUwMFwiLFxuICAgIFwidGV4dC1ibHVlLTUwMFwiLFxuICAgIFwidGV4dC1wdXJwbGUtNTAwXCIsXG4gICAgXCJ0ZXh0LXllbGxvdy01MDBcIlxuICBdO1xuICByYW5kb21Db2xvckNsYXNzOiBhbnk7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBjb21tb25TZXJ2aWNlOiBDb21tb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9hc3RyOiBUb2FzdHJTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBcbiAgKSB7IH1cblxuICBASW5wdXQoJ2NoYXJ0RGF0YVNvdXJjZScpXG4gIHNldCBjaGFydERhdGFTb3VyY2UodmFsdWUpIHtcbiAgICB0aGlzLm9iamVjdGRhdGFTb3VyY2UgPSB2YWx1ZTtcbiAgXG4gICAgaWYgKCF0aGlzLm9iamVjdGRhdGFTb3VyY2UgfHwgdGhpcy5vYmplY3RkYXRhU291cmNlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5pc0NoYXJ0dmlzaWJsZSA9IGZhbHNlO1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzTG9hZGVyID0gdHJ1ZTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW4gPSB2YWx1ZS5rcGlDb25maWc/LmRhdGFDb25maWc/LmNvbHVtbnM/LlswXT8uZGF0YUZpZWxkIHx8IFwiXCI7XG4gICAgICB0aGlzLnNvcnRCeSA9IHZhbHVlLmtwaUNvbmZpZz8uZGF0YUNvbmZpZz8uc29ydEJ5O1xuICBcbiAgICAgIGlmICh2YWx1ZS5rcGlDb25maWcuZGF0YVNvdXJjZT8ubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMucGFnZV9jb25maWcgPSB2YWx1ZTtcbiAgICAgICAgbGV0IHNvcnRlZERhdGEgPSB2YWx1ZS5rcGlDb25maWcuZGF0YVNvdXJjZTtcbiAgXG4gICAgICAgIGlmICh0aGlzLnNvcnRCeT8ubGVuZ3RoKSB7XG4gICAgICAgICAgbGV0IHNvcnRLZXkgPSB0aGlzLnNvcnRCeVswXTtcbiAgICAgICAgICBzb3J0ZWREYXRhID0gc29ydGVkRGF0YS5zb3J0KChhLCBiKSA9PiBcbiAgICAgICAgICAgIG1vbWVudChiW3NvcnRLZXldLCBcIllZWVktTU0tRERcIikuZGlmZihtb21lbnQoYVtzb3J0S2V5XSwgXCJZWVlZLU1NLUREXCIpKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgXG4gICAgICAgIGlmICh2YWx1ZS5rcGlDb25maWcuZm9ybWF0ZSA9PT0gXCJkYWlseVwiKSB7XG4gICAgICAgICAgdGhpcy5jdXJyZW50RGF0ZURhdGEgPSBzb3J0ZWREYXRhLmxlbmd0aCA/IHRoaXMuY29tbW9uU2VydmljZS5hYmJyZXZpYXRlTnVtYmVyKHNvcnRlZERhdGFbMF1bdGhpcy5zZWxlY3RlZENvbHVtbl0gfHwgMCkgOiBcIjBcIjtcblxuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlLmtwaUNvbmZpZy5mb3JtYXRlID09PSBcIm1vbnRobHlcIikge1xuICAgICAgICAgIGxldCB0b3RhbCA9IHNvcnRlZERhdGEucmVkdWNlKChzdW0sIGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGxldCB2YWx1ZSA9IE51bWJlcihpdGVtW3RoaXMuc2VsZWN0ZWRDb2x1bW5dKSB8fCAwO1xuICAgICAgICAgICAgcmV0dXJuIHN1bSArIHZhbHVlO1xuICAgICAgICAgIH0sIDApO1xuICAgICAgICAgIHRoaXMuY3VycmVudERhdGVEYXRhID0gdGhpcy5jb21tb25TZXJ2aWNlLmFiYnJldmlhdGVOdW1iZXIodG90YWwpO1xuICAgICAgICB9XG4gICAgXG4gICAgICAgIHRoaXMuaXNMb2FkZXIgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgXG4gICAgfVxuICB9XG4gIFxuICAgICAgXG5cbmdldER5bmFtaWNWYWx1ZShkYXRhOiBhbnkpOiBudW1iZXIgfCBzdHJpbmcgfCBhbnkge1xuXG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkQ29sdW1uIHx8ICFkYXRhLmhhc093blByb3BlcnR5KHRoaXMuc2VsZWN0ZWRDb2x1bW4pKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBsZXQgdmFsdWUgPSBkYXRhW3RoaXMuc2VsZWN0ZWRDb2x1bW5dO1xuICAgIGNvbnN0IG51bWVyaWNWYWx1ZSA9IE51bWJlcih2YWx1ZSk7XG4gICAgaWYgKCFpc05hTihudW1lcmljVmFsdWUpKSB7XG4gICAgICAvLyBsZXQgY2FsX251bWJlciA9IE1hdGguYWJzKG51bWVyaWNWYWx1ZSlcbiAgICAgIHJldHVybiB0aGlzLmNvbW1vblNlcnZpY2UuYWJicmV2aWF0ZU51bWJlcihudW1lcmljVmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucmFuZG9tQ29sb3JDbGFzcyA9IHRoaXMuZ2V0UmFuZG9tQ29sb3IoKTtcbiAgfVxuXG5cblxuICBnZXRSYW5kb21Db2xvcigpIHtcbiAgICBjb25zdCByYW5kb21JbmRleCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIHRoaXMuY29sb3JzLmxlbmd0aCk7XG4gICAgcmV0dXJuIHRoaXMuY29sb3JzW3JhbmRvbUluZGV4XTtcbiAgfVxuXG4gIGZvcm1hdE51bWJlcih2YWx1ZSkge1xuICAgIGlmICh2YWx1ZSA+PSAxZTkpIHtcbiAgICAgIHJldHVybiAodmFsdWUgLyAxZTkpLnRvRml4ZWQoMSkgKyAnQic7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSA+PSAxZTYpIHtcbiAgICAgIHJldHVybiAodmFsdWUgLyAxZTYpLnRvRml4ZWQoMSkgKyAnTSc7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSA+PSAxZTMpIHtcbiAgICAgIHJldHVybiAodmFsdWUgLyAxZTMpLnRvRml4ZWQoMSkgKyAnSyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygpO1xuICAgIH1cbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWNlbnRlciBpdGVtcy1zdGFydCBiZy1ncmF5LTgwMCBwLTQgbXgtMiB0ZXh0LWNlbnRlclwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0xvYWRlclwiPlxuICAgICAgICA8YXBwLWxvYWRlcj48L2FwcC1sb2FkZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0xvYWRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXIgdGV4dC00eGwgZm9udC1ib2xkIHAtMiB7e3JhbmRvbUNvbG9yQ2xhc3N9fVwiPlxuICAgICAgICAgICAge3sgY3VycmVudERhdGVEYXRhIH19XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG48L2Rpdj4iXX0=