gamma-app-controller 1.1.26 → 1.1.28

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 (135) 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 +1 -1
  42. package/esm2020/lib/template-module/KpiCreationModule/kpiCreation.module.mjs +2 -2
  43. package/esm2020/lib/template-module/bookmarked-template/bookmarked-dataset-call.service.mjs +364 -0
  44. package/esm2020/lib/template-module/bookmarked-template/bookmarked-layout.service.mjs +121 -0
  45. package/esm2020/lib/template-module/bookmarked-template/bookmarked-template.component.mjs +816 -0
  46. package/esm2020/lib/template-module/bookmarked-template/bookmarkedTemplate.module.mjs +151 -0
  47. package/esm2020/lib/template-module/cdrConfigModule/cdr-config.component.mjs +1 -1
  48. package/esm2020/lib/template-module/cdrConfigModule/cdrConfig.module.mjs +2 -2
  49. package/esm2020/lib/template-module/defaulLandingComponent/defaultLandingComponent.module.mjs +151 -0
  50. package/esm2020/lib/template-module/defaulLandingComponent/landing-component.component.mjs +870 -0
  51. package/esm2020/lib/template-module/defaulLandingComponent/landing-component.service.mjs +121 -0
  52. package/esm2020/lib/template-module/defaulLandingComponent/landing-dataset-call.service.mjs +364 -0
  53. package/esm2020/lib/template-module/exceptionConfigModule/exception-operation.component.mjs +1 -1
  54. package/esm2020/lib/template-module/exceptionConfigModule/exceptionConfig.module.mjs +2 -2
  55. package/esm2020/lib/template-module/kpiWithMultiLayout/dynamin-modal-multi.component.mjs +180 -0
  56. package/esm2020/lib/template-module/kpiWithMultiLayout/kpi-multi-layout.service.mjs +121 -0
  57. package/esm2020/lib/template-module/kpiWithMultiLayout/kpi-with-multilayout.component.mjs +992 -0
  58. package/esm2020/lib/template-module/kpiWithMultiLayout/kpiWithMultiayout.module.mjs +156 -0
  59. package/esm2020/lib/template-module/kpiWithMultiLayout/single-layout-dataset-call.service.mjs +364 -0
  60. package/esm2020/lib/template-module/kpiWithSingleLayout/dynamin-modal.component.mjs +180 -0
  61. package/esm2020/lib/template-module/kpiWithSingleLayout/kpi-single-layout.service.mjs +121 -0
  62. package/esm2020/lib/template-module/kpiWithSingleLayout/kpi-with-dataset.component.mjs +1046 -0
  63. package/esm2020/lib/template-module/kpiWithSingleLayout/kpiWithSingleLayout.module.mjs +156 -0
  64. package/esm2020/lib/template-module/kpiWithSingleLayout/multi-layout-dataset-call.service.mjs +364 -0
  65. package/esm2020/public-api.mjs +38 -20
  66. package/fesm2015/gamma-app-controller.mjs +7025 -399
  67. package/fesm2015/gamma-app-controller.mjs.map +1 -1
  68. package/fesm2020/gamma-app-controller.mjs +6970 -399
  69. package/fesm2020/gamma-app-controller.mjs.map +1 -1
  70. package/lib/application-controller/application-controller.module.d.ts +19 -19
  71. package/lib/application-controller/page-controller/page-config/page-config.component.d.ts +9 -9
  72. package/lib/application-controller/page-controller/page-config-multi-layout/page-config-multi-layout.component.d.ts +8 -8
  73. package/lib/{application-controller/shared → shared}/advanced-component/app-advance-header/app-header.component.d.ts +18 -2
  74. package/lib/{application-controller/shared → shared}/advanced-component/gamm-single-number-card/gamm-single-number-card.component.d.ts +3 -5
  75. package/lib/{application-controller/shared → shared}/advanced-component/gamma-advance-chart/gamma-advance-chart.component.d.ts +3 -1
  76. package/lib/{application-controller/shared → shared}/advanced-component/gamma-advance-operator-table/gamma-advance-operator-table.component.d.ts +4 -2
  77. package/lib/{application-controller/shared → shared}/advanced-component/gamma-geo-chart/gamma-geo-chart.component.d.ts +1 -1
  78. package/lib/{application-controller/shared → shared}/advanced-component/gamma-heatmap/gamma-heatmap.component.d.ts +1 -1
  79. package/lib/{application-controller/shared → shared}/advanced-component/gamma-table-clumn-bar-chart/gamma-table-clumn-bar-chart.component.d.ts +1 -1
  80. package/lib/{application-controller/shared → shared}/advanced-component/gamma-table-with-percentage/gamma-table-with-percentage.component.d.ts +6 -2
  81. package/lib/{application-controller/shared → shared}/advanced-component/gamma-today-previous/gamma-today-previous.component.d.ts +1 -1
  82. package/lib/{application-controller/shared → shared}/advanced-component/google-geo-map/google-geo-map.component.d.ts +1 -1
  83. package/lib/{application-controller/shared → shared}/app-title/app-title.component.d.ts +1 -1
  84. package/lib/{application-controller/shared → shared}/gamam-widget/gamam-widget.component.d.ts +1 -1
  85. package/lib/{application-controller/shared → shared}/gamma-advance-filter/gamma-advance-filter.component.d.ts +3 -2
  86. package/lib/{application-controller/shared → shared}/gamma-bread-crumbs/bread-crumbs.component.d.ts +1 -1
  87. package/lib/{application-controller/shared → shared}/kpi-comon-service.d.ts +1 -1
  88. package/lib/template-module/KpiCreationModule/kpiCreation.module.d.ts +1 -1
  89. package/lib/template-module/bookmarked-template/bookmarked-dataset-call.service.d.ts +24 -0
  90. package/lib/template-module/bookmarked-template/bookmarked-layout.service.d.ts +33 -0
  91. package/lib/template-module/bookmarked-template/bookmarked-template.component.d.ts +109 -0
  92. package/lib/template-module/bookmarked-template/bookmarkedTemplate.module.d.ts +16 -0
  93. package/lib/template-module/cdrConfigModule/cdrConfig.module.d.ts +1 -1
  94. package/lib/template-module/defaulLandingComponent/defaultLandingComponent.module.d.ts +16 -0
  95. package/lib/template-module/defaulLandingComponent/landing-component.component.d.ts +109 -0
  96. package/lib/template-module/defaulLandingComponent/landing-component.service.d.ts +33 -0
  97. package/lib/template-module/defaulLandingComponent/landing-dataset-call.service.d.ts +24 -0
  98. package/lib/template-module/exceptionConfigModule/exceptionConfig.module.d.ts +1 -1
  99. package/lib/template-module/kpiWithMultiLayout/dynamin-modal-multi.component.d.ts +42 -0
  100. package/lib/template-module/kpiWithMultiLayout/kpi-multi-layout.service.d.ts +33 -0
  101. package/lib/template-module/kpiWithMultiLayout/kpi-with-multilayout.component.d.ts +117 -0
  102. package/lib/template-module/kpiWithMultiLayout/kpiWithMultiayout.module.d.ts +17 -0
  103. package/lib/template-module/kpiWithMultiLayout/single-layout-dataset-call.service.d.ts +24 -0
  104. package/lib/template-module/kpiWithSingleLayout/dynamin-modal.component.d.ts +42 -0
  105. package/lib/template-module/kpiWithSingleLayout/kpi-single-layout.service.d.ts +33 -0
  106. package/lib/template-module/kpiWithSingleLayout/kpi-with-dataset.component.d.ts +122 -0
  107. package/lib/template-module/kpiWithSingleLayout/kpiWithSingleLayout.module.d.ts +17 -0
  108. package/lib/template-module/kpiWithSingleLayout/multi-layout-dataset-call.service.d.ts +24 -0
  109. package/package.json +1 -1
  110. package/public-api.d.ts +37 -19
  111. package/esm2020/lib/application-controller/shared/advanced-component/advance-widget-header-filter/advance-widget-header-filter.component.mjs +0 -124
  112. package/esm2020/lib/application-controller/shared/advanced-component/app-advance-header/app-header.component.mjs +0 -220
  113. package/esm2020/lib/application-controller/shared/advanced-component/gamm-single-number-card/gamm-single-number-card.component.mjs +0 -95
  114. package/esm2020/lib/application-controller/shared/advanced-component/gamma-advance-chart/gamma-advance-chart.component.mjs +0 -362
  115. package/esm2020/lib/application-controller/shared/advanced-component/gamma-advance-operator-table/gamma-advance-operator-table.component.mjs +0 -177
  116. package/esm2020/lib/application-controller/shared/advanced-component/gamma-geo-chart/gamma-geo-chart.component.mjs +0 -441
  117. package/esm2020/lib/application-controller/shared/advanced-component/gamma-heatmap/gamma-heatmap.component.mjs +0 -328
  118. package/esm2020/lib/application-controller/shared/advanced-component/gamma-table-clumn-bar-chart/gamma-table-clumn-bar-chart.component.mjs +0 -155
  119. package/esm2020/lib/application-controller/shared/advanced-component/gamma-table-with-percentage/contentSafeHtml.mjs +0 -20
  120. package/esm2020/lib/application-controller/shared/advanced-component/gamma-table-with-percentage/gamma-table-with-percentage.component.mjs +0 -157
  121. package/esm2020/lib/application-controller/shared/advanced-component/gamma-today-previous/gamma-today-previous.component.mjs +0 -85
  122. package/esm2020/lib/application-controller/shared/advanced-component/google-geo-map/google-geo-map.component.mjs +0 -439
  123. package/esm2020/lib/application-controller/shared/app-title/app-title.component.mjs +0 -67
  124. package/esm2020/lib/application-controller/shared/gamam-widget/gamam-widget.component.mjs +0 -35
  125. package/esm2020/lib/application-controller/shared/gamma-advance-filter/gamma-advance-filter.component.mjs +0 -237
  126. package/esm2020/lib/application-controller/shared/gamma-bread-crumbs/bread-crumbs.component.mjs +0 -142
  127. package/esm2020/lib/application-controller/shared/kpi-comon-service.mjs +0 -537
  128. package/esm2020/lib/application-controller/shared/loading/loadingModule.mjs +0 -28
  129. package/esm2020/lib/application-controller/shared/safeHtmlPipe.mjs +0 -20
  130. /package/lib/{application-controller/shared → shared}/advanced-component/advance-widget-header-filter/advance-widget-header-filter.component.d.ts +0 -0
  131. /package/lib/{application-controller/shared → shared}/advanced-component/gamma-table-with-percentage/contentSafeHtml.d.ts +0 -0
  132. /package/lib/{application-controller/shared → shared}/loader/loader.component.d.ts +0 -0
  133. /package/lib/{application-controller/shared → shared}/loading/loading.component.d.ts +0 -0
  134. /package/lib/{application-controller/shared → shared}/loading/loadingModule.d.ts +0 -0
  135. /package/lib/{application-controller/shared → shared}/safeHtmlPipe.d.ts +0 -0
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FtbS1zaW5nbGUtbnVtYmVyLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2FtbWEtYXBwLWNvbnRyb2xsZXIvc3JjL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvZ2FtbS1zaW5nbGUtbnVtYmVyLWNhcmQvZ2FtbS1zaW5nbGUtbnVtYmVyLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2FtbWEtYXBwLWNvbnRyb2xsZXIvc3JjL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvZ2FtbS1zaW5nbGUtbnVtYmVyLWNhcmQvZ2FtbS1zaW5nbGUtbnVtYmVyLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRTVFLE9BQU8sTUFBTSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7QUFROUMsTUFBTSxPQUFPLDZCQUE2QjtJQXFCeEMsWUFDUyxhQUE0QixFQUMzQixNQUFxQixFQUNyQixHQUFzQjtRQUZ2QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUMzQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBYmhDLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFFekIsV0FBTSxHQUFHO1lBQ1AsZ0JBQWdCO1lBQ2hCLGlCQUFpQjtZQUNqQixlQUFlO1lBQ2YsaUJBQWlCO1lBQ2pCLGlCQUFpQjtTQUNsQixDQUFDO0lBT0UsQ0FBQztJQUVMLElBQ0ksZUFBZSxDQUFDLEtBQUs7UUFDdkIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztRQUU5QixJQUFJLENBQUMsSUFB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QixHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBSUQsY0FBYztRQUNaLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBSztRQUNoQixJQUFJLEtBQUssSUFBSSxHQUFHLEVBQUU7WUFDaEIsT0FBTyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO1NBQ3ZDO2FBQU0sSUFBSSxLQUFLLElBQUksR0FBRyxFQUFFO1lBQ3ZCLE9BQU8sQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztTQUN2QzthQUFNLElBQUksS0FBSyxJQUFJLEdBQUcsRUFBRTtZQUN2QixPQUFPLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7U0FDdkM7YUFBTTtZQUNMLE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQzs7MEhBNUdVLDZCQUE2Qjs4R0FBN0IsNkJBQTZCLG1IQ1YxQywwWkFVTTsyRkRBTyw2QkFBNkI7a0JBTHpDLFNBQVM7K0JBQ0UsNkJBQTZCO2dLQWlDbkMsZUFBZTtzQkFEbEIsS0FBSzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cic7XG5pbXBvcnQgbW9tZW50IGZyb20gJy4vLi4vLi4vLi4vbW9tZW50LWhlbHBlcic7XG5pbXBvcnQgeyBDb21tb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWdhbW0tc2luZ2xlLW51bWJlci1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dhbW0tc2luZ2xlLW51bWJlci1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ2FtbS1zaW5nbGUtbnVtYmVyLWNhcmQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBHYW1tU2luZ2xlTnVtYmVyQ2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIG9iamVjdGRhdGFTb3VyY2U6IGFueTtcbiAgaXNDaGFydHZpc2libGU6IGJvb2xlYW47XG4gIHBhZ2VfY29uZmlnOiBhbnk7XG4gIGN1cnJlbnREYXRlRGF0YTogYW55O1xuICBwcmV2b3VzRGF5c0RhdGE6IGFueTtcbiAgY2FsY3VsYXRlZFZhbHVlOiBhbnk7XG4gIGlzUHJldmlvdXNEYXk6IGJvb2xlYW47XG4gIHNvcnRCeTogYW55O1xuICBzZWxlY3RlZENvbHVtbjogYW55O1xuICBzdWJzY3JpYmVyX2NvdW50O1xuICBpc0xvYWRlcjogYm9vbGVhbiA9IHRydWU7XG5cbiAgY29sb3JzID0gW1xuICAgIFwidGV4dC1ncmVlbi01MDBcIixcbiAgICBcInRleHQtb3JhbmdlLTUwMFwiLFxuICAgIFwidGV4dC1ibHVlLTUwMFwiLFxuICAgIFwidGV4dC1wdXJwbGUtNTAwXCIsXG4gICAgXCJ0ZXh0LXllbGxvdy01MDBcIlxuICBdO1xuICByYW5kb21Db2xvckNsYXNzOiBhbnk7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBjb21tb25TZXJ2aWNlOiBDb21tb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9hc3RyOiBUb2FzdHJTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBcbiAgKSB7IH1cblxuICBASW5wdXQoJ2NoYXJ0RGF0YVNvdXJjZScpXG4gIHNldCBjaGFydERhdGFTb3VyY2UodmFsdWUpIHtcbiAgICB0aGlzLm9iamVjdGRhdGFTb3VyY2UgPSB2YWx1ZTtcbiAgXG4gICAgaWYgKCF0aGlzLm9iamVjdGRhdGFTb3VyY2UgfHwgdGhpcy5vYmplY3RkYXRhU291cmNlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5pc0NoYXJ0dmlzaWJsZSA9IGZhbHNlO1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzTG9hZGVyID0gdHJ1ZTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW4gPSB2YWx1ZS5rcGlDb25maWc/LmRhdGFDb25maWc/LmNvbHVtbnM/LlswXT8uZGF0YUZpZWxkIHx8IFwiXCI7XG4gICAgICB0aGlzLnNvcnRCeSA9IHZhbHVlLmtwaUNvbmZpZz8uZGF0YUNvbmZpZz8uc29ydEJ5O1xuICBcbiAgICAgIGlmICh2YWx1ZS5rcGlDb25maWcuZGF0YVNvdXJjZT8ubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMucGFnZV9jb25maWcgPSB2YWx1ZTtcbiAgICAgICAgbGV0IHNvcnRlZERhdGEgPSB2YWx1ZS5rcGlDb25maWcuZGF0YVNvdXJjZTtcbiAgXG4gICAgICAgIGlmICh0aGlzLnNvcnRCeT8ubGVuZ3RoKSB7XG4gICAgICAgICAgbGV0IHNvcnRLZXkgPSB0aGlzLnNvcnRCeVswXTtcbiAgICAgICAgICBzb3J0ZWREYXRhID0gc29ydGVkRGF0YS5zb3J0KChhLCBiKSA9PiBcbiAgICAgICAgICAgIG1vbWVudChiW3NvcnRLZXldLCBcIllZWVktTU0tRERcIikuZGlmZihtb21lbnQoYVtzb3J0S2V5XSwgXCJZWVlZLU1NLUREXCIpKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgXG4gICAgICAgIGlmICh2YWx1ZS5rcGlDb25maWcuZm9ybWF0ZSA9PT0gXCJkYWlseVwiKSB7XG4gICAgICAgICAgdGhpcy5jdXJyZW50RGF0ZURhdGEgPSBzb3J0ZWREYXRhLmxlbmd0aCA/IHRoaXMuY29tbW9uU2VydmljZS5hYmJyZXZpYXRlTnVtYmVyKHNvcnRlZERhdGFbMF1bdGhpcy5zZWxlY3RlZENvbHVtbl0gfHwgMCkgOiBcIjBcIjtcblxuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlLmtwaUNvbmZpZy5mb3JtYXRlID09PSBcIm1vbnRobHlcIikge1xuICAgICAgICAgIGxldCB0b3RhbCA9IHNvcnRlZERhdGEucmVkdWNlKChzdW0sIGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGxldCB2YWx1ZSA9IE51bWJlcihpdGVtW3RoaXMuc2VsZWN0ZWRDb2x1bW5dKSB8fCAwO1xuICAgICAgICAgICAgcmV0dXJuIHN1bSArIHZhbHVlO1xuICAgICAgICAgIH0sIDApO1xuICAgICAgICAgIHRoaXMuY3VycmVudERhdGVEYXRhID0gdGhpcy5jb21tb25TZXJ2aWNlLmFiYnJldmlhdGVOdW1iZXIodG90YWwpO1xuICAgICAgICB9XG4gICAgXG4gICAgICAgIHRoaXMuaXNMb2FkZXIgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgXG4gICAgfVxuICB9XG4gIFxuICAgICAgXG5cbmdldER5bmFtaWNWYWx1ZShkYXRhOiBhbnkpOiBudW1iZXIgfCBzdHJpbmcgfCBhbnkge1xuXG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkQ29sdW1uIHx8ICFkYXRhLmhhc093blByb3BlcnR5KHRoaXMuc2VsZWN0ZWRDb2x1bW4pKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBsZXQgdmFsdWUgPSBkYXRhW3RoaXMuc2VsZWN0ZWRDb2x1bW5dO1xuICAgIGNvbnN0IG51bWVyaWNWYWx1ZSA9IE51bWJlcih2YWx1ZSk7XG4gICAgaWYgKCFpc05hTihudW1lcmljVmFsdWUpKSB7XG4gICAgICAvLyBsZXQgY2FsX251bWJlciA9IE1hdGguYWJzKG51bWVyaWNWYWx1ZSlcbiAgICAgIHJldHVybiB0aGlzLmNvbW1vblNlcnZpY2UuYWJicmV2aWF0ZU51bWJlcihudW1lcmljVmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucmFuZG9tQ29sb3JDbGFzcyA9IHRoaXMuZ2V0UmFuZG9tQ29sb3IoKTtcbiAgfVxuXG5cblxuICBnZXRSYW5kb21Db2xvcigpIHtcbiAgICBjb25zdCByYW5kb21JbmRleCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIHRoaXMuY29sb3JzLmxlbmd0aCk7XG4gICAgcmV0dXJuIHRoaXMuY29sb3JzW3JhbmRvbUluZGV4XTtcbiAgfVxuXG4gIGZvcm1hdE51bWJlcih2YWx1ZSkge1xuICAgIGlmICh2YWx1ZSA+PSAxZTkpIHtcbiAgICAgIHJldHVybiAodmFsdWUgLyAxZTkpLnRvRml4ZWQoMSkgKyAnQic7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSA+PSAxZTYpIHtcbiAgICAgIHJldHVybiAodmFsdWUgLyAxZTYpLnRvRml4ZWQoMSkgKyAnTSc7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSA+PSAxZTMpIHtcbiAgICAgIHJldHVybiAodmFsdWUgLyAxZTMpLnRvRml4ZWQoMSkgKyAnSyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygpO1xuICAgIH1cbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWNlbnRlciBpdGVtcy1zdGFydCBiZy1ncmF5LTgwMCBwLTQgbXgtMiB0ZXh0LWNlbnRlclwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0xvYWRlclwiPlxuICAgICAgICA8YXBwLWxvYWRlcj48L2FwcC1sb2FkZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0xvYWRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXIgdGV4dC00eGwgZm9udC1ib2xkIHAtMiB7e3JhbmRvbUNvbG9yQ2xhc3N9fVwiPlxuICAgICAgICAgICAge3sgY3VycmVudERhdGVEYXRhIH19XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG48L2Rpdj4iXX0=