mmhglobal-dynamicform 1.3.13 → 2.0.0-beta.2

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 (115) hide show
  1. package/esm2020/lib/animations/component-animations.mjs +12 -0
  2. package/esm2020/lib/components/buttonfieldbase.component.mjs +62 -0
  3. package/esm2020/lib/components/containerfieldbase.component.mjs +42 -0
  4. package/esm2020/lib/components/datalistingfieldbase.component.mjs +138 -0
  5. package/esm2020/lib/components/fieldbase.component.mjs +90 -0
  6. package/esm2020/lib/components/inputfieldbase.component.mjs +78 -0
  7. package/esm2020/lib/directives/scrollbar.theme.directive.mjs +13 -11
  8. package/esm2020/lib/embed-components/input-field-addons/input-field-addons.component.mjs +69 -0
  9. package/esm2020/lib/input-error-message/input-error-message.component.mjs +33 -0
  10. package/esm2020/lib/kcard/kcard.component.mjs +84 -0
  11. package/esm2020/lib/mmhglobal-dynamicform.module.mjs +53 -12
  12. package/esm2020/lib/pipe/htmlSanitize.pipe.mjs +18 -0
  13. package/esm2020/lib/services/component-error-handler.service.mjs +84 -0
  14. package/esm2020/lib/services/main.service.mjs +173 -73
  15. package/esm2020/lib/services/zcomponent.debug.service.mjs +17 -8
  16. package/esm2020/lib/services/zcomponent.service.mjs +133 -9
  17. package/esm2020/lib/uiappmenucontent/uiappmenucontent.component.mjs +15 -23
  18. package/esm2020/lib/uicontainer/uicontainer.component.mjs +2 -2
  19. package/esm2020/lib/uicontent/uicontent.component.mjs +21 -9
  20. package/esm2020/lib/uiheader/uiheader.component.mjs +61 -28
  21. package/esm2020/lib/uimenucontent/uimenucontent.component.mjs +3 -3
  22. package/esm2020/lib/uipage/uipage.component.mjs +41 -26
  23. package/esm2020/lib/uivalidationmessage/uivalidationmessage.component.mjs +2 -2
  24. package/esm2020/lib/zbullet/zbullet.component.mjs +3 -2
  25. package/esm2020/lib/zbuttons/zbuttons.component.mjs +45 -91
  26. package/esm2020/lib/zcard/zcard.component.mjs +13 -60
  27. package/esm2020/lib/zcheckbox/zcheckbox.component.mjs +14 -159
  28. package/esm2020/lib/zchip/zchip.component.mjs +34 -64
  29. package/esm2020/lib/zcodeeditor/zcodeeditor.component.mjs +4 -3
  30. package/esm2020/lib/zdaterange/zdaterange.component.mjs +3 -3
  31. package/esm2020/lib/zdatetime/zdatetime.component.mjs +22 -74
  32. package/esm2020/lib/zdiv/zdiv.component.mjs +63 -40
  33. package/esm2020/lib/zdiv/zdiv.pipe.mjs +2 -2
  34. package/esm2020/lib/zform/zform.component.mjs +9 -7
  35. package/esm2020/lib/zformcontrol/zformcontrol.component.mjs +5 -3
  36. package/esm2020/lib/zgauge/zgauge.component.mjs +34 -70
  37. package/esm2020/lib/zgrid/zgrid.binding.directive.mjs +32 -30
  38. package/esm2020/lib/zgrid/zgrid.component.mjs +246 -135
  39. package/esm2020/lib/zimg/zimg.component.mjs +44 -108
  40. package/esm2020/lib/zinput-container/zinput-container.component.mjs +63 -0
  41. package/esm2020/lib/zinput-container/zinput-container.pipe.mjs +120 -0
  42. package/esm2020/lib/zkcard/zkcard.component.mjs +2 -2
  43. package/esm2020/lib/zlabel/zlabel.component.mjs +18 -94
  44. package/esm2020/lib/zmfb/zmfb.component.mjs +70 -91
  45. package/esm2020/lib/zmodal/zmodal-mobile.component.mjs +15 -11
  46. package/esm2020/lib/zmodal/zmodal.component.mjs +14 -10
  47. package/esm2020/lib/znumeric/znumeric.component.mjs +18 -94
  48. package/esm2020/lib/zpostselectinput/zpostselectinput.component.mjs +35 -87
  49. package/esm2020/lib/zprogressbar/zprogressbar.component.mjs +59 -0
  50. package/esm2020/lib/zreport/zreport.component.mjs +25 -27
  51. package/esm2020/lib/zselectmultiple/zselectmultiple.component.mjs +39 -194
  52. package/esm2020/lib/ztab/ztab.component.mjs +17 -45
  53. package/esm2020/lib/ztab/ztab.pipe.mjs +6 -4
  54. package/esm2020/lib/ztext/ztext.component.mjs +20 -180
  55. package/esm2020/lib/ztextarea/ztextarea.component.mjs +23 -101
  56. package/esm2020/lib/ztexteditor/ztexteditor.component.mjs +3 -2
  57. package/esm2020/lib/ztree/ztree.component.mjs +25 -41
  58. package/esm2020/lib/ztreelist/ztreelist.component.mjs +104 -143
  59. package/esm2020/lib/zudf/zudf.component.mjs +12 -8
  60. package/esm2020/lib/zupload/zupload.component.mjs +18 -39
  61. package/esm2020/lib/zworkflowbuttons/zworkflowbuttons.component.mjs +45 -77
  62. package/esm2020/public-api.mjs +15 -2
  63. package/fesm2015/mmhglobal-dynamicform.mjs +4529 -4392
  64. package/fesm2015/mmhglobal-dynamicform.mjs.map +1 -1
  65. package/fesm2020/mmhglobal-dynamicform.mjs +4496 -4367
  66. package/fesm2020/mmhglobal-dynamicform.mjs.map +1 -1
  67. package/lib/animations/component-animations.d.ts +1 -0
  68. package/lib/components/buttonfieldbase.component.d.ts +18 -0
  69. package/lib/components/containerfieldbase.component.d.ts +19 -0
  70. package/lib/components/datalistingfieldbase.component.d.ts +30 -0
  71. package/lib/components/fieldbase.component.d.ts +30 -0
  72. package/lib/components/inputfieldbase.component.d.ts +19 -0
  73. package/lib/embed-components/input-field-addons/input-field-addons.component.d.ts +16 -0
  74. package/lib/input-error-message/input-error-message.component.d.ts +15 -0
  75. package/lib/kcard/kcard.component.d.ts +21 -0
  76. package/lib/mmhglobal-dynamicform.module.d.ts +40 -32
  77. package/lib/pipe/htmlSanitize.pipe.d.ts +10 -0
  78. package/lib/services/component-error-handler.service.d.ts +14 -0
  79. package/lib/services/main.service.d.ts +23 -5
  80. package/lib/services/zcomponent.debug.service.d.ts +4 -1
  81. package/lib/services/zcomponent.service.d.ts +20 -4
  82. package/lib/uiappmenucontent/uiappmenucontent.component.d.ts +4 -3
  83. package/lib/uicontent/uicontent.component.d.ts +6 -2
  84. package/lib/uiheader/uiheader.component.d.ts +13 -9
  85. package/lib/zbuttons/zbuttons.component.d.ts +11 -20
  86. package/lib/zcard/zcard.component.d.ts +6 -20
  87. package/lib/zcheckbox/zcheckbox.component.d.ts +6 -36
  88. package/lib/zchip/zchip.component.d.ts +7 -16
  89. package/lib/zdatetime/zdatetime.component.d.ts +6 -14
  90. package/lib/zdiv/zdiv.component.d.ts +11 -18
  91. package/lib/zformcontrol/zformcontrol.component.d.ts +2 -1
  92. package/lib/zgauge/zgauge.component.d.ts +11 -14
  93. package/lib/zgrid/zgrid.binding.directive.d.ts +4 -2
  94. package/lib/zgrid/zgrid.component.d.ts +26 -27
  95. package/lib/zimg/zimg.component.d.ts +12 -31
  96. package/lib/zinput-container/zinput-container.component.d.ts +26 -0
  97. package/lib/zinput-container/zinput-container.pipe.d.ts +20 -0
  98. package/lib/zlabel/zlabel.component.d.ts +6 -25
  99. package/lib/zmfb/zmfb.component.d.ts +12 -20
  100. package/lib/zmodal/zmodal-mobile.component.d.ts +4 -1
  101. package/lib/zmodal/zmodal.component.d.ts +4 -1
  102. package/lib/znumeric/znumeric.component.d.ts +7 -29
  103. package/lib/zpostselectinput/zpostselectinput.component.d.ts +9 -19
  104. package/lib/zprogressbar/zprogressbar.component.d.ts +28 -0
  105. package/lib/zreport/zreport.component.d.ts +8 -11
  106. package/lib/zselectmultiple/zselectmultiple.component.d.ts +10 -35
  107. package/lib/ztab/ztab.component.d.ts +6 -19
  108. package/lib/ztext/ztext.component.d.ts +7 -35
  109. package/lib/ztextarea/ztextarea.component.d.ts +9 -27
  110. package/lib/ztree/ztree.component.d.ts +6 -12
  111. package/lib/ztreelist/ztreelist.component.d.ts +17 -27
  112. package/lib/zupload/zupload.component.d.ts +6 -13
  113. package/lib/zworkflowbuttons/zworkflowbuttons.component.d.ts +6 -20
  114. package/package.json +1 -1
  115. package/public-api.d.ts +14 -1
@@ -1,25 +1,22 @@
1
- /********** Angular **********/
2
- import { Component, Input, ViewChild } from '@angular/core';
3
- import { Validators } from '@angular/forms';
4
- /********** Component & Service **********/
5
- import { ZComponentHelper, ZComponentProperties } from 'mmhglobal-zcore';
1
+ import { Component, ViewChild } from '@angular/core';
2
+ import { ZComponentHelper } from 'mmhglobal-zcore';
3
+ import { ContainerFieldBase } from '../components/containerfieldbase.component';
6
4
  import * as i0 from "@angular/core";
7
- import * as i1 from "mmhglobal-zcore";
5
+ import * as i1 from "../services/zcomponent.service";
8
6
  import * as i2 from "@progress/kendo-angular-layout";
9
7
  import * as i3 from "@fortawesome/angular-fontawesome";
10
8
  import * as i4 from "@ionic/angular";
11
- import * as i5 from "../zformcontrol/zformcontrol.component";
9
+ import * as i5 from "../zdiv/zdiv.component";
12
10
  import * as i6 from "@angular/common";
13
11
  import * as i7 from "./ztab.pipe";
14
- export class ZtabComponent {
15
- constructor(authService) {
16
- this.authService = authService;
12
+ export class ZtabComponent extends ContainerFieldBase {
13
+ constructor(compService) {
14
+ super(compService);
17
15
  this.state = {
18
16
  lastSelectedTabIndex: 0,
19
17
  currentTabs: Array(),
20
18
  allTabs: Array()
21
19
  };
22
- this.componentProperties = new ZComponentProperties();
23
20
  this.selectTab = (index) => {
24
21
  this.state.lastSelectedTabIndex = index;
25
22
  };
@@ -41,25 +38,12 @@ export class ZtabComponent {
41
38
  }
42
39
  this.state.currentTabs[tabIndex].Counter = counter;
43
40
  };
44
- this.setEnable = (status) => {
45
- this.componentProperties.isReadOnly = !status;
46
- };
47
- this.setVisible = (status) => {
48
- this.componentProperties.isVisible = status;
49
- this.data.Visible = status;
50
- };
51
- this.setRequire = (status) => {
52
- this.componentProperties.isRequired = status;
53
- ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);
54
- };
55
- // this.lastSelectedTabIndex = 0;
56
41
  }
57
42
  ngOnInit() {
58
- ZComponentHelper.setComponentProperties(this);
59
- ZComponentHelper.registerComponent(this);
60
- ZComponentHelper.setFieldsDivClass(this.group._projectName, this.group.fieldName, this.data, this.authService);
61
- this.setCurrentTabs();
62
- this.restoreTabSelection();
43
+ super.initComponent().subscribe(() => {
44
+ this.setCurrentTabs();
45
+ this.restoreTabSelection();
46
+ });
63
47
  }
64
48
  setCurrentTabs() {
65
49
  this.state.currentTabs = new Array();
@@ -123,9 +107,6 @@ export class ZtabComponent {
123
107
  Object.assign(this.state.currentTabs, this.state.allTabs);
124
108
  }
125
109
  }
126
- ComponentIsVisible(field) {
127
- return ZComponentHelper.ComponentIsVisible(field, this.group);
128
- }
129
110
  getSelectedTab(tabIndex) {
130
111
  return this.state.lastSelectedTabIndex === tabIndex;
131
112
  }
@@ -165,23 +146,14 @@ export class ZtabComponent {
165
146
  const tabSelections = this.group['tabSelections'];
166
147
  tabSelections.set(this.data.Name, e.index);
167
148
  }
168
- getFontAwesome(iconName) {
169
- return ZComponentHelper.getFontAwesome(iconName);
170
- }
171
149
  }
172
- ZtabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ZtabComponent, deps: [{ token: i1.AuthService }], target: i0.ɵɵFactoryTarget.Component });
173
- ZtabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ZtabComponent, selector: "app-ztab", inputs: { data: "data", group: "group", form: "form" }, viewQueries: [{ propertyName: "tabstrip", first: true, predicate: ["kendoTabStripInstance"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\" style=\"margin: 10px 0 6px 0;\"> \r\n <kendo-tabstrip #kendoTabStripInstance [keepTabContent]=\"true\" (tabSelect)=\"onTabSelect($event)\">\r\n <kendo-tabstrip-tab *ngFor=\"let tab of state.currentTabs; let i = index\" [selected]=\"getSelectedTab(i)\" [disabled]=\"!tab.Visible\">\r\n <ng-template kendoTabTitle *ngIf=\"tab.Visible\" >\r\n <fa-icon *ngIf=\"!!tab.Icon\" [icon]=\"getFontAwesome(tab.Icon)\" style=\"padding-right: 5px;\"></fa-icon>\r\n {{tab.Label}}\r\n <ion-badge class=\"tab-item-counter\" color=\"danger\" *ngIf=\"!!tab.Counter\">{{tab.Counter}}</ion-badge>\r\n </ng-template>\r\n <ng-template kendoTabContent> \r\n <div class=\"ion-row\">\r\n <app-zformcontrol \r\n [ngClass]=\"group[field.isVisibleField] ? field.DivClass : \r\n ((field.Visible === true) ? field.DivClass : 'flex-hide')\" \r\n *ngFor=\"let field of data.Value | tabfilter: tab.Index + ''\"\r\n [field]=\"field\" [group]=\"group\" [form]=\"form\" id=\"{{field.Type}}-{{field.Name}}\">\r\n </app-zformcontrol>\r\n </div>\r\n </ng-template>\r\n </kendo-tabstrip-tab>\r\n </kendo-tabstrip>\r\n</div>", styles: [".tab-item-counter{margin-left:4px}\n"], components: [{ type: i2.TabStripComponent, selector: "kendo-tabstrip", inputs: ["animate", "tabPosition", "keepTabContent", "closable", "closeIcon", "height", "scrollable", "tabAlignment"], outputs: ["tabSelect", "tabClose", "tabScroll"], exportAs: ["kendoTabStrip"] }, { type: i2.TabStripTabComponent, selector: "kendo-tabstrip-tab", inputs: ["disabled", "title", "cssClass", "cssStyle", "selected", "closable", "closeIcon"], exportAs: ["kendoTabStripTab"] }, { type: i3.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { type: i4.IonBadge, selector: "ion-badge", inputs: ["color", "mode"] }, { type: i5.ZformcontrolComponent, selector: "app-zformcontrol", inputs: ["field", "group", "form"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.TabTitleDirective, selector: "[kendoTabTitle]" }, { type: i2.TabContentDirective, selector: "[kendoTabContent]" }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "tabfilter": i7.TabFilter } });
150
+ ZtabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ZtabComponent, deps: [{ token: i1.ZComponentService }], target: i0.ɵɵFactoryTarget.Component });
151
+ ZtabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ZtabComponent, selector: "app-ztab", viewQueries: [{ propertyName: "tabstrip", first: true, predicate: ["kendoTabStripInstance"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\" class=\"container e1tag-container-style\"\r\n [style]=\"componentProperties.containerStyle.style\">\r\n <kendo-tabstrip class=\"ztab e1tag-container-style1\" #kendoTabStripInstance [keepTabContent]=\"true\" (tabSelect)=\"onTabSelect($event)\"\r\n [style]=\"componentProperties.containerStyle.style1\" [class]=\"data.ComponentStyleType\">\r\n <kendo-tabstrip-tab *ngFor=\"let tab of state.currentTabs; let i = index\" [selected]=\"getSelectedTab(i)\" [disabled]=\"!tab.Visible\"\r\n [style]=\"componentProperties.containerStyle.style2\" class=\"e1tag-container-style2\">\r\n <ng-template kendoTabTitle *ngIf=\"tab.Visible\" >\r\n <div class=\"tab-content e1tag-container-style3\" [style]=\"componentProperties.containerStyle.style3\">\r\n <fa-icon *ngIf=\"!!tab.Icon\" [icon]=\"getFontAwesome(tab.Icon)\" [style]=\"componentProperties.containerStyle.style4\" class=\"e1tag-container-style4\"></fa-icon>\r\n {{tab.Label}}\r\n <ion-badge class=\"tab-item-counter e1tag-container-style5\" color=\"danger\" *ngIf=\"!!tab.Counter\" [style]=\"componentProperties.containerStyle.style5\">{{tab.Counter}}</ion-badge>\r\n </div>\r\n </ng-template>\r\n <ng-template kendoTabContent>\r\n <app-zdiv [style]=\"componentProperties.containerStyle.style6\" class=\"e1tag-container-style6\" [data]=\"data | tabfilter: tab.Index + ''\" [form]=\"form\" [group]=\"group\" [containerField]=\"containerField\">\r\n </app-zdiv>\r\n </ng-template>\r\n </kendo-tabstrip-tab>\r\n </kendo-tabstrip>\r\n</div>\r\n", styles: [".container{margin:var(--container-margin-top) 0px 6px 0px}.tab-item-counter{margin-left:4px;position:relative;top:4px}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper{border-bottom-width:0px}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item{box-shadow:none;font-weight:600;color:gray;font-size:calc(var(--content-subtitle1-font-size) - 1px);padding:5px;background:rgba(var(--ion-color-primary-rgb),.1);border:1px solid rgba(var(--ion-color-primary-rgb),.2);margin:5px 1px 3px}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item:hover{color:rgba(var(--ion-color-dark-rgb),.8)}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-state-active,:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-state-selected{color:var(--ion-color-primary);background:white;margin:0 1px 0 0;border:1px solid var(--zcontainer-border-color);border-bottom:none}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-state-active>.k-link,:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-state-selected>.k-link{cursor:default}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-state-disabled{display:none}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-link{padding:6px 20px}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-link fa-icon{padding-right:10px}:host ::ng-deep kendo-tabstrip.ztab.style1>.k-content{padding:0;background:white;border-color:var(--zcontainer-border-color)}:host ::ng-deep kendo-tabstrip.ztab.style1>.k-content:focus,:host ::ng-deep kendo-tabstrip.ztab.style1>.k-content.k-state-focused{outline:none}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items{background:transparent;padding-left:10px;border-bottom:2px solid var(--ion-app-seperator-line-color)}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item{font-weight:600;color:rgba(var(--ion-color-dark-rgb),.6);font-size:calc(var(--content-subtitle1-font-size) - 1px);padding-bottom:5px;box-shadow:none!important;background:transparent!important}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item:hover{color:rgba(var(--ion-color-dark-rgb),.8)}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-state-active,:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-state-selected{padding:0;color:var(--ion-color-dark);font-size:var(--content-subtitle1-font-size);border:none;border-radius:4px;border-bottom:5px solid var(--ion-color-primary);background:transparent}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-state-active>.k-link,:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-state-selected>.k-link{cursor:default}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-state-disabled{display:none}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-link{padding:6px 20px}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-link fa-icon{padding-right:10px}:host ::ng-deep kendo-tabstrip.ztab.style2>.k-content{padding:0;border:none;background:transparent}:host ::ng-deep kendo-tabstrip.ztab.style2>.k-content:focus,:host ::ng-deep kendo-tabstrip.ztab.style2>.k-content.k-state-focused{outline:none}\n"], components: [{ type: i2.TabStripComponent, selector: "kendo-tabstrip", inputs: ["animate", "tabPosition", "keepTabContent", "closable", "closeIcon", "height", "scrollable", "tabAlignment"], outputs: ["tabSelect", "tabClose", "tabScroll"], exportAs: ["kendoTabStrip"] }, { type: i2.TabStripTabComponent, selector: "kendo-tabstrip-tab", inputs: ["disabled", "title", "cssClass", "cssStyle", "selected", "closable", "closeIcon"], exportAs: ["kendoTabStripTab"] }, { type: i3.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { type: i4.IonBadge, selector: "ion-badge", inputs: ["color", "mode"] }, { type: i5.ZdivComponent, selector: "app-zdiv" }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.TabTitleDirective, selector: "[kendoTabTitle]" }, { type: i2.TabContentDirective, selector: "[kendoTabContent]" }], pipes: { "tabfilter": i7.TabFilter } });
174
152
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ZtabComponent, decorators: [{
175
153
  type: Component,
176
- args: [{ selector: 'app-ztab', template: "<div *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\" style=\"margin: 10px 0 6px 0;\"> \r\n <kendo-tabstrip #kendoTabStripInstance [keepTabContent]=\"true\" (tabSelect)=\"onTabSelect($event)\">\r\n <kendo-tabstrip-tab *ngFor=\"let tab of state.currentTabs; let i = index\" [selected]=\"getSelectedTab(i)\" [disabled]=\"!tab.Visible\">\r\n <ng-template kendoTabTitle *ngIf=\"tab.Visible\" >\r\n <fa-icon *ngIf=\"!!tab.Icon\" [icon]=\"getFontAwesome(tab.Icon)\" style=\"padding-right: 5px;\"></fa-icon>\r\n {{tab.Label}}\r\n <ion-badge class=\"tab-item-counter\" color=\"danger\" *ngIf=\"!!tab.Counter\">{{tab.Counter}}</ion-badge>\r\n </ng-template>\r\n <ng-template kendoTabContent> \r\n <div class=\"ion-row\">\r\n <app-zformcontrol \r\n [ngClass]=\"group[field.isVisibleField] ? field.DivClass : \r\n ((field.Visible === true) ? field.DivClass : 'flex-hide')\" \r\n *ngFor=\"let field of data.Value | tabfilter: tab.Index + ''\"\r\n [field]=\"field\" [group]=\"group\" [form]=\"form\" id=\"{{field.Type}}-{{field.Name}}\">\r\n </app-zformcontrol>\r\n </div>\r\n </ng-template>\r\n </kendo-tabstrip-tab>\r\n </kendo-tabstrip>\r\n</div>", styles: [".tab-item-counter{margin-left:4px}\n"] }]
177
- }], ctorParameters: function () { return [{ type: i1.AuthService }]; }, propDecorators: { data: [{
178
- type: Input
179
- }], group: [{
180
- type: Input
181
- }], form: [{
182
- type: Input
183
- }], tabstrip: [{
154
+ args: [{ selector: 'app-ztab', template: "<div *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\" class=\"container e1tag-container-style\"\r\n [style]=\"componentProperties.containerStyle.style\">\r\n <kendo-tabstrip class=\"ztab e1tag-container-style1\" #kendoTabStripInstance [keepTabContent]=\"true\" (tabSelect)=\"onTabSelect($event)\"\r\n [style]=\"componentProperties.containerStyle.style1\" [class]=\"data.ComponentStyleType\">\r\n <kendo-tabstrip-tab *ngFor=\"let tab of state.currentTabs; let i = index\" [selected]=\"getSelectedTab(i)\" [disabled]=\"!tab.Visible\"\r\n [style]=\"componentProperties.containerStyle.style2\" class=\"e1tag-container-style2\">\r\n <ng-template kendoTabTitle *ngIf=\"tab.Visible\" >\r\n <div class=\"tab-content e1tag-container-style3\" [style]=\"componentProperties.containerStyle.style3\">\r\n <fa-icon *ngIf=\"!!tab.Icon\" [icon]=\"getFontAwesome(tab.Icon)\" [style]=\"componentProperties.containerStyle.style4\" class=\"e1tag-container-style4\"></fa-icon>\r\n {{tab.Label}}\r\n <ion-badge class=\"tab-item-counter e1tag-container-style5\" color=\"danger\" *ngIf=\"!!tab.Counter\" [style]=\"componentProperties.containerStyle.style5\">{{tab.Counter}}</ion-badge>\r\n </div>\r\n </ng-template>\r\n <ng-template kendoTabContent>\r\n <app-zdiv [style]=\"componentProperties.containerStyle.style6\" class=\"e1tag-container-style6\" [data]=\"data | tabfilter: tab.Index + ''\" [form]=\"form\" [group]=\"group\" [containerField]=\"containerField\">\r\n </app-zdiv>\r\n </ng-template>\r\n </kendo-tabstrip-tab>\r\n </kendo-tabstrip>\r\n</div>\r\n", styles: [".container{margin:var(--container-margin-top) 0px 6px 0px}.tab-item-counter{margin-left:4px;position:relative;top:4px}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper{border-bottom-width:0px}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item{box-shadow:none;font-weight:600;color:gray;font-size:calc(var(--content-subtitle1-font-size) - 1px);padding:5px;background:rgba(var(--ion-color-primary-rgb),.1);border:1px solid rgba(var(--ion-color-primary-rgb),.2);margin:5px 1px 3px}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item:hover{color:rgba(var(--ion-color-dark-rgb),.8)}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-state-active,:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-state-selected{color:var(--ion-color-primary);background:white;margin:0 1px 0 0;border:1px solid var(--zcontainer-border-color);border-bottom:none}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-state-active>.k-link,:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-state-selected>.k-link{cursor:default}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-item.k-state-disabled{display:none}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-link{padding:6px 20px}:host ::ng-deep kendo-tabstrip.ztab.style1 .k-tabstrip-items-wrapper .k-tabstrip-items .k-link fa-icon{padding-right:10px}:host ::ng-deep kendo-tabstrip.ztab.style1>.k-content{padding:0;background:white;border-color:var(--zcontainer-border-color)}:host ::ng-deep kendo-tabstrip.ztab.style1>.k-content:focus,:host ::ng-deep kendo-tabstrip.ztab.style1>.k-content.k-state-focused{outline:none}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items{background:transparent;padding-left:10px;border-bottom:2px solid var(--ion-app-seperator-line-color)}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item{font-weight:600;color:rgba(var(--ion-color-dark-rgb),.6);font-size:calc(var(--content-subtitle1-font-size) - 1px);padding-bottom:5px;box-shadow:none!important;background:transparent!important}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item:hover{color:rgba(var(--ion-color-dark-rgb),.8)}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-state-active,:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-state-selected{padding:0;color:var(--ion-color-dark);font-size:var(--content-subtitle1-font-size);border:none;border-radius:4px;border-bottom:5px solid var(--ion-color-primary);background:transparent}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-state-active>.k-link,:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-state-selected>.k-link{cursor:default}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-item.k-state-disabled{display:none}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-link{padding:6px 20px}:host ::ng-deep kendo-tabstrip.ztab.style2 .k-tabstrip-items .k-link fa-icon{padding-right:10px}:host ::ng-deep kendo-tabstrip.ztab.style2>.k-content{padding:0;border:none;background:transparent}:host ::ng-deep kendo-tabstrip.ztab.style2>.k-content:focus,:host ::ng-deep kendo-tabstrip.ztab.style2>.k-content.k-state-focused{outline:none}\n"] }]
155
+ }], ctorParameters: function () { return [{ type: i1.ZComponentService }]; }, propDecorators: { tabstrip: [{
184
156
  type: ViewChild,
185
157
  args: ['kendoTabStripInstance']
186
158
  }] } });
187
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoienRhYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi96dGFiL3p0YWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvenRhYi96dGFiLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBT3ZELDJDQUEyQztBQUMzQyxPQUFPLEVBQ08sZ0JBQWdCLEVBQzVCLG9CQUFvQixFQUNyQixNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7QUFRekIsTUFBTSxPQUFPLGFBQWE7SUFjeEIsWUFDVSxXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQVQzQixVQUFLLEdBQUc7WUFDYixvQkFBb0IsRUFBRSxDQUFDO1lBQ3ZCLFdBQVcsRUFBRSxLQUFLLEVBQVk7WUFDOUIsT0FBTyxFQUFFLEtBQUssRUFBWTtTQUMzQixDQUFDO1FBRUYsd0JBQW1CLEdBQUcsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1FBNEYxQyxjQUFTLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRTtZQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztRQUMxQyxDQUFDLENBQUE7UUFpRE0sbUJBQWMsR0FBRyxDQUFDLFVBQW9CLEVBQUUsTUFBZSxFQUFFLEVBQUU7WUFDaEUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FB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YXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIFBsdWdpbiAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBUYWJTdHJpcENvbXBvbmVudCB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1hbmd1bGFyLWxheW91dCc7XHJcblxyXG4vKioqKioqKioqKiBDb21wb25lbnQgJiBTZXJ2aWNlICoqKioqKioqKiovXHJcbmltcG9ydCB7IFxyXG4gIFpDb21wb25lbnQsIFpDb21wb25lbnRIZWxwZXIsIFpUYWJJdGVtLCBaR3JvdXAsIFpGaWVsZCwgXHJcbiAgWkNvbXBvbmVudFByb3BlcnRpZXMsIEF1dGhTZXJ2aWNlIFxyXG59IGZyb20gJ21taGdsb2JhbC16Y29yZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtenRhYicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3p0YWIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3p0YWIuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFp0YWJDb21wb25lbnQgaW1wbGVtZW50cyBaQ29tcG9uZW50LCBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGRhdGE6IFpGaWVsZDtcclxuICBASW5wdXQoKSBncm91cDogWkdyb3VwO1xyXG4gIEBJbnB1dCgpIGZvcm06IEZvcm1Hcm91cDtcclxuICAvLyBwcml2YXRlIGxhc3RTZWxlY3RlZFRhYkluZGV4OiBudW1iZXI7XHJcbiAgQFZpZXdDaGlsZCgna2VuZG9UYWJTdHJpcEluc3RhbmNlJykgcHVibGljIHRhYnN0cmlwOiBUYWJTdHJpcENvbXBvbmVudDtcclxuICBwdWJsaWMgc3RhdGUgPSB7XHJcbiAgICBsYXN0U2VsZWN0ZWRUYWJJbmRleDogMCxcclxuICAgIGN1cnJlbnRUYWJzOiBBcnJheTxaVGFiSXRlbT4oKSxcclxuICAgIGFsbFRhYnM6IEFycmF5PFpUYWJJdGVtPigpXHJcbiAgfTtcclxuXHJcbiAgY29tcG9uZW50UHJvcGVydGllcyA9IG5ldyBaQ29tcG9uZW50UHJvcGVydGllcygpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICAvLyB0aGlzLmxhc3RTZWxlY3RlZFRhYkluZGV4ID0gMDtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5zZXRDb21wb25lbnRQcm9wZXJ0aWVzKHRoaXMpO1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5yZWdpc3RlckNvbXBvbmVudCh0aGlzKTtcclxuICAgIFpDb21wb25lbnRIZWxwZXIuc2V0RmllbGRzRGl2Q2xhc3ModGhpcy5ncm91cC5fcHJvamVjdE5hbWUsIHRoaXMuZ3JvdXAuZmllbGROYW1lLCB0aGlzLmRhdGEsIHRoaXMuYXV0aFNlcnZpY2UpO1xyXG4gICAgdGhpcy5zZXRDdXJyZW50VGFicygpO1xyXG4gICAgdGhpcy5yZXN0b3JlVGFiU2VsZWN0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEN1cnJlbnRUYWJzKCkge1xyXG4gICAgdGhpcy5zdGF0ZS5jdXJyZW50VGFicyA9IG5ldyBBcnJheTxaVGFiSXRlbT4oKTtcclxuXHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmRhdGEuTGFiZWwpKSB7XHJcbiAgICAgIGxldCB2YWxpZEljb24gPSBmYWxzZTtcclxuICAgICAgaWYgKHRoaXMuZGF0YS5JY29uICYmIEFycmF5LmlzQXJyYXkodGhpcy5kYXRhLkljb24pICYmIHRoaXMuZGF0YS5JY29uLmxlbmd0aCA9PT0gdGhpcy5kYXRhLkxhYmVsLmxlbmd0aCkge1xyXG4gICAgICAgIHZhbGlkSWNvbiA9IHRydWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBndWFyZC1mb3ItaW5cclxuICAgICAgZm9yIChjb25zdCBpbmRleCBpbiB0aGlzLmRhdGEuTGFiZWwpIHtcclxuICAgICAgICB0aGlzLnN0YXRlLmN1cnJlbnRUYWJzLnB1c2goXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIExhYmVsOiB0aGlzLmRhdGEuTGFiZWxbaW5kZXhdLFxyXG4gICAgICAgICAgICBJY29uOiB2YWxpZEljb24gPyB0aGlzLmRhdGEuSWNvbltpbmRleF0gOiBudWxsLFxyXG4gICAgICAgICAgICBWaXNpYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICBJbmRleDogcGFyc2VJbnQoaW5kZXgpXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnN0YXRlLmFsbFRhYnMgPSB0aGlzLnN0YXRlLmN1cnJlbnRUYWJzO1xyXG5cclxuICAgICAgaWYgKHRoaXMuZGF0YS5UYWJWaXNpYmxlRmFsc2VJbmRleCkge1xyXG4gICAgICAgIHRoaXMuc2V0VGFic1Zpc2libGUodGhpcy5kYXRhLlRhYlZpc2libGVGYWxzZUluZGV4LCBmYWxzZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuZGF0YS5UYWJJdGVtcykge1xyXG4gICAgICBsZXQgaW5kID0gMDtcclxuICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiB0aGlzLmRhdGEuVGFiSXRlbXMpIHtcclxuICAgICAgICB0aGlzLnN0YXRlLmN1cnJlbnRUYWJzLnB1c2goXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIExhYmVsOiBmaWVsZC5MYWJlbCBhcyBzdHJpbmcsXHJcbiAgICAgICAgICAgIEljb246IGZpZWxkLkljb24gPyBmaWVsZC5JY29uIGFzIHN0cmluZyA6IG51bGwsXHJcbiAgICAgICAgICAgIFZpc2libGU6IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBWYWx1ZShmaWVsZC5WaXNpYmxlIGFzIHN0cmluZywgdGhpcy5ncm91cCksXHJcbiAgICAgICAgICAgIENvdW50ZXI6IHR5cGVvZiAoZmllbGRbXCJDb3VudGVyXCJdKSA9PT0gXCJzdHJpbmdcIiA/IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBWYWx1ZShmaWVsZFtcIkNvdW50ZXJcIl0gYXMgc3RyaW5nLCB0aGlzLmdyb3VwKSA6IGZpZWxkW1wiQ291bnRlclwiXSxcclxuICAgICAgICAgICAgSW5kZXg6IGluZCsrXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnN0YXRlLmFsbFRhYnMgPSB0aGlzLnN0YXRlLmN1cnJlbnRUYWJzO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWZyZXNoQ3VycmVudFRhYnMoKSB7XHJcbiAgICBjb25zdCBwcmV2aW91c1N0YXRlVGFicyA9IHRoaXMuc3RhdGUuYWxsVGFicztcclxuXHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmRhdGEuTGFiZWwpKSB7XHJcbiAgICAgIHRoaXMuc3RhdGUuY3VycmVudFRhYnMgPSBuZXcgQXJyYXk8WlRhYkl0ZW0+KCk7XHJcbiAgICAgIGxldCB2YWxpZEljb24gPSBmYWxzZTtcclxuICAgICAgaWYgKHRoaXMuZGF0YS5JY29uICYmIEFycmF5LmlzQXJyYXkodGhpcy5kYXRhLkljb24pICYmIHRoaXMuZGF0YS5JY29uLmxlbmd0aCA9PT0gdGhpcy5kYXRhLkxhYmVsLmxlbmd0aCkge1xyXG4gICAgICAgIHZhbGlkSWNvbiA9IHRydWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBndWFyZC1mb3ItaW5cclxuICAgICAgZm9yIChjb25zdCBpbmRleCBpbiB0aGlzLmRhdGEuTGFiZWwpIHtcclxuICAgICAgICBjb25zdCBwcmV2aW91c1RhYiA9IHByZXZpb3VzU3RhdGVUYWJzLmZpbHRlcih4ID0+IHguTGFiZWwgPT0gdGhpcy5kYXRhLkxhYmVsW2luZGV4XSk7XHJcbiAgICAgICAgY29uc3QgcHJldmlvdXNUYWJWaXNpYmxlID0gcHJldmlvdXNUYWIubGVuZ3RoID4gMCA/IHByZXZpb3VzVGFiWzBdLlZpc2libGUgOiBmYWxzZTtcclxuXHJcbiAgICAgICAgY29uc3QgaXNWaXNpYmxlID0gcHJldmlvdXNUYWJWaXNpYmxlO1xyXG4gICAgICAgIGlmIChpc1Zpc2libGUpIHtcclxuICAgICAgICAgIHRoaXMuc3RhdGUuY3VycmVudFRhYnMucHVzaChcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIExhYmVsOiB0aGlzLmRhdGEuTGFiZWxbaW5kZXhdLFxyXG4gICAgICAgICAgICAgIEljb246IHZhbGlkSWNvbiA/IHRoaXMuZGF0YS5JY29uW2luZGV4XSA6IG51bGwsXHJcbiAgICAgICAgICAgICAgVmlzaWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgICBJbmRleDogcGFyc2VJbnQoaW5kZXgpXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLnN0YXRlLmN1cnJlbnRUYWJzLCB0aGlzLnN0YXRlLmFsbFRhYnMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQ29tcG9uZW50SXNWaXNpYmxlKGZpZWxkOiBaRmllbGQpOiBhbnkge1xyXG4gICAgcmV0dXJuIFpDb21wb25lbnRIZWxwZXIuQ29tcG9uZW50SXNWaXNpYmxlKGZpZWxkLCB0aGlzLmdyb3VwKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RUYWIgPSAoaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgdGhpcy5zdGF0ZS5sYXN0U2VsZWN0ZWRUYWJJbmRleCA9IGluZGV4O1xyXG4gIH1cclxuXHJcbiAgZ2V0U2VsZWN0ZWRUYWIodGFiSW5kZXg6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUubGFzdFNlbGVjdGVkVGFiSW5kZXggPT09IHRhYkluZGV4O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFNlbGVjdFRhYih0YWJJbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnN0YXRlLmxhc3RTZWxlY3RlZFRhYkluZGV4ID0gdGFiSW5kZXg7XHJcbiAgfVxyXG5cclxuICByZXN0b3JlVGFiU2VsZWN0aW9uKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGF0YS5BbGxvd1NhdmVTdGF0ZSA9PT0gZmFsc2UpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCB0YWJTZWxlY3Rpb25zOiBNYXA8c3RyaW5nLCBudW1iZXI+ID0gXCJ0YWJTZWxlY3Rpb25zXCIgaW4gdGhpcy5ncm91cCA/IHRoaXMuZ3JvdXBbJ3RhYlNlbGVjdGlvbnMnXSA6IG51bGw7XHJcbiAgICBpZiAodGFiU2VsZWN0aW9ucyAhPT0gbnVsbCAmJiB0YWJTZWxlY3Rpb25zLmhhcyh0aGlzLmRhdGEuTmFtZSkpIHsgLy8gc3Vic2VxdWVudCBsb2Fkc1xyXG4gICAgICB0aGlzLnN0YXRlLmxhc3RTZWxlY3RlZFRhYkluZGV4ID0gdGFiU2VsZWN0aW9ucy5nZXQodGhpcy5kYXRhLk5hbWUpO1xyXG5cclxuICAgIH0gZWxzZSBpZiAodGFiU2VsZWN0aW9ucyA9PT0gbnVsbCkgeyAvLyBmaXJzdCBsb2FkIG9mIGZpcnN0IHRhYlxyXG4gICAgICB0YWJTZWxlY3Rpb25zID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcclxuICAgICAgdGhpcy5ncm91cFsndGFiU2VsZWN0aW9ucyddID0gdGFiU2VsZWN0aW9ucztcclxuICAgICAgdGFiU2VsZWN0aW9ucy5zZXQodGhpcy5kYXRhLk5hbWUsIDApO1xyXG5cclxuICAgIH0gZWxzZSBpZiAoIXRhYlNlbGVjdGlvbnMuaGFzKHRoaXMuZGF0YS5OYW1lKSkgeyAvLyBmaXJzdCBsb2FkIG9mIHJlc3QgdGFic1xyXG4gICAgICB0YWJTZWxlY3Rpb25zLnNldCh0aGlzLmRhdGEuTmFtZSwgMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25UYWJTZWxlY3QoZSkge1xyXG4gICAgdGhpcy5zdGF0ZS5sYXN0U2VsZWN0ZWRUYWJJbmRleCA9IGUuaW5kZXg7XHJcbiAgICB0aGlzLnNhdmVTdGF0ZShlKTtcclxuXHJcbiAgICBjb25zdCBmdW5jID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIHRoaXMuZGF0YS5DbGlja0V2ZW50KTtcclxuICAgIGlmICh0eXBlb2YgZnVuYyA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICBjb25zdCBjYWxsRnVuYyA9IGZ1bmMuYmluZCh0aGlzLmdyb3VwLmN0cmxTY29wZSk7XHJcbiAgICAgIGNhbGxGdW5jKGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzYXZlU3RhdGUoZSkge1xyXG4gICAgaWYgKHRoaXMuZGF0YS5BbGxvd1NhdmVTdGF0ZSA9PT0gZmFsc2UpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHRhYlNlbGVjdGlvbnMgPSB0aGlzLmdyb3VwWyd0YWJTZWxlY3Rpb25zJ10gYXMgTWFwPHN0cmluZywgbnVtYmVyPjtcclxuICAgIHRhYlNlbGVjdGlvbnMuc2V0KHRoaXMuZGF0YS5OYW1lLCBlLmluZGV4KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRUYWJzVmlzaWJsZSA9ICh0YWJJbmRleGVzOiBudW1iZXJbXSwgc3RhdHVzOiBib29sZWFuKSA9PiB7XHJcbiAgICBpZiAodGhpcy5zdGF0ZS5hbGxUYWJzLmxlbmd0aCA8PSBNYXRoLm1heC5hcHBseShudWxsLCB0YWJJbmRleGVzKSB8fCBNYXRoLm1pbi5hcHBseShudWxsLCB0YWJJbmRleGVzKSA8IDApIHtcclxuICAgICAgY29uc29sZS5sb2coXCJJbnZhbGlkIFRhYiBpbmRleCA6IFwiICsgdGFiSW5kZXhlcy5qb2luKFwiLFwiKSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0YWJJbmRleGVzLmZvckVhY2goaW5kZXggPT4ge1xyXG4gICAgICB0aGlzLnN0YXRlLmFsbFRhYnNbaW5kZXhdLlZpc2libGUgPSBzdGF0dXM7XHJcbiAgICB9KTtcclxuICAgIHRoaXMucmVmcmVzaEN1cnJlbnRUYWJzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VGFiQ291bnRlciA9ICh0YWJJbmRleDogbnVtYmVyLCBjb3VudGVyOiBudW1iZXIgfCBzdHJpbmcpID0+IHtcclxuICAgIGNvbnN0IGxhYmVscyA9IHRoaXMuZGF0YS5MYWJlbCA/IHRoaXMuZGF0YS5MYWJlbCA6IHRoaXMuZGF0YS5UYWJJdGVtcztcclxuICAgIGlmIChsYWJlbHMubGVuZ3RoIDw9IHRhYkluZGV4IHx8IHRhYkluZGV4IDwgMCkge1xyXG4gICAgICBjb25zb2xlLmxvZyhcIkludmFsaWQgVGFiIGluZGV4IDogXCIgKyB0YWJJbmRleCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnN0YXRlLmN1cnJlbnRUYWJzW3RhYkluZGV4XS5Db3VudGVyID0gY291bnRlcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRFbmFibGUgPSAoc3RhdHVzOiBib29sZWFuKSA9PiB7XHJcbiAgICB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seSA9ICFzdGF0dXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VmlzaWJsZSA9IChzdGF0dXM6IGJvb2xlYW4pID0+IHtcclxuICAgIHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGUgPSBzdGF0dXM7XHJcbiAgICB0aGlzLmRhdGEuVmlzaWJsZSA9IHN0YXR1cztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRSZXF1aXJlID0gKHN0YXR1czogYm9vbGVhbikgPT4ge1xyXG4gICAgdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVxdWlyZWQgPSBzdGF0dXM7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLmNoYW5nZVZhbGlkYXRvcihzdGF0dXMsIHRoaXMuZ3JvdXAsIHRoaXMuZGF0YS5WYWx1ZSwgdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLCBWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICB9XHJcblxyXG4gIGdldEZvbnRBd2Vzb21lKGljb25OYW1lOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiBaQ29tcG9uZW50SGVscGVyLmdldEZvbnRBd2Vzb21lKGljb25OYW1lKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cIighIWNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlRmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlKVwiIHN0eWxlPVwibWFyZ2luOiAxMHB4IDAgNnB4IDA7XCI+ICBcclxuICA8a2VuZG8tdGFic3RyaXAgI2tlbmRvVGFiU3RyaXBJbnN0YW5jZSBba2VlcFRhYkNvbnRlbnRdPVwidHJ1ZVwiICh0YWJTZWxlY3QpPVwib25UYWJTZWxlY3QoJGV2ZW50KVwiPlxyXG4gICAgPGtlbmRvLXRhYnN0cmlwLXRhYiAqbmdGb3I9XCJsZXQgdGFiIG9mIHN0YXRlLmN1cnJlbnRUYWJzOyBsZXQgaSA9IGluZGV4XCIgW3NlbGVjdGVkXT1cImdldFNlbGVjdGVkVGFiKGkpXCIgW2Rpc2FibGVkXT1cIiF0YWIuVmlzaWJsZVwiPlxyXG4gICAgICA8bmctdGVtcGxhdGUga2VuZG9UYWJUaXRsZSAqbmdJZj1cInRhYi5WaXNpYmxlXCIgPlxyXG4gICAgICAgIDxmYS1pY29uICpuZ0lmPVwiISF0YWIuSWNvblwiIFtpY29uXT1cImdldEZvbnRBd2Vzb21lKHRhYi5JY29uKVwiIHN0eWxlPVwicGFkZGluZy1yaWdodDogNXB4O1wiPjwvZmEtaWNvbj5cclxuICAgICAgICB7e3RhYi5MYWJlbH19XHJcbiAgICAgICAgPGlvbi1iYWRnZSBjbGFzcz1cInRhYi1pdGVtLWNvdW50ZXJcIiBjb2xvcj1cImRhbmdlclwiICpuZ0lmPVwiISF0YWIuQ291bnRlclwiPnt7dGFiLkNvdW50ZXJ9fTwvaW9uLWJhZGdlPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8bmctdGVtcGxhdGUga2VuZG9UYWJDb250ZW50PiAgICAgICBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW9uLXJvd1wiPlxyXG4gICAgICAgICAgPGFwcC16Zm9ybWNvbnRyb2wgXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cImdyb3VwW2ZpZWxkLmlzVmlzaWJsZUZpZWxkXSA/IGZpZWxkLkRpdkNsYXNzIDogXHJcbiAgICAgICAgICAgICAgKChmaWVsZC5WaXNpYmxlID09PSB0cnVlKSA/ICBmaWVsZC5EaXZDbGFzcyA6ICdmbGV4LWhpZGUnKVwiIFxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgZmllbGQgb2YgZGF0YS5WYWx1ZSB8IHRhYmZpbHRlcjogdGFiLkluZGV4ICsgJydcIlxyXG4gICAgICAgICAgICBbZmllbGRdPVwiZmllbGRcIiBbZ3JvdXBdPVwiZ3JvdXBcIiBbZm9ybV09XCJmb3JtXCIgaWQ9XCJ7e2ZpZWxkLlR5cGV9fS17e2ZpZWxkLk5hbWV9fVwiPlxyXG4gICAgICAgICAgPC9hcHAtemZvcm1jb250cm9sPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9rZW5kby10YWJzdHJpcC10YWI+XHJcbiAgPC9rZW5kby10YWJzdHJpcD5cclxuPC9kaXY+Il19
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoienRhYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi96dGFiL3p0YWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvenRhYi96dGFiLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFBYyxnQkFBZ0IsRUFBWSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7Ozs7Ozs7QUFRaEYsTUFBTSxPQUFPLGFBQWMsU0FBUSxrQkFBa0I7SUFRbkQsWUFDRSxXQUE4QjtRQUU5QixLQUFLLENBQUMsV0FBVyxDQUFDLENBQUE7UUFUYixVQUFLLEdBQUc7WUFDYixvQkFBb0IsRUFBRSxDQUFDO1lBQ3ZCLFdBQVcsRUFBRSxLQUFLLEVBQVk7WUFDOUIsT0FBTyxFQUFFLEtBQUssRUFBWTtTQUMzQixDQUFDO1FBdUZLLGNBQVMsR0FBRyxDQUFDLEtBQWEsRUFBRSxFQUFFO1lBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQzFDLENBQUMsQ0FBQTtRQWlETSxtQkFBYyxHQUFHLENBQUMsVUFBb0IsRUFBRSxNQUFlLEVBQUUsRUFBRTtZQUNoRSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtn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LENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDdEM7SUFDSCxDQUFDO0lBRU0sV0FBVyxDQUFDLENBQUM7UUFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQzFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFbEIsTUFBTSxJQUFJLEdBQUcsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pGLElBQUksT0FBTyxJQUFJLEtBQUssVUFBVSxFQUFFO1lBQzlCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNqRCxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDYjtJQUNILENBQUM7SUFFTyxTQUFTLENBQUMsQ0FBQztRQUNqQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxLQUFLLEtBQUssRUFBRTtZQUN0QyxPQUFPO1NBQ1I7UUFFRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBd0IsQ0FBQztRQUN6RSxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QyxDQUFDOzsyR0E5SVUsYUFBYTsrRkFBYixhQUFhLDBMQ1gxQix3cURBb0JBOzRGRFRhLGFBQWE7a0JBTHpCLFNBQVM7K0JBQ0UsVUFBVTt3R0FLdUIsUUFBUTtzQkFBbEQsU0FBUzt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRhYlN0cmlwQ29tcG9uZW50IH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItbGF5b3V0JztcclxuaW1wb3J0IHsgWkNvbXBvbmVudCwgWkNvbXBvbmVudEhlbHBlciwgWlRhYkl0ZW0gfSBmcm9tICdtbWhnbG9iYWwtemNvcmUnO1xyXG5pbXBvcnQgeyBDb250YWluZXJGaWVsZEJhc2UgfSBmcm9tICcuLi9jb21wb25lbnRzL2NvbnRhaW5lcmZpZWxkYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBaQ29tcG9uZW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3pjb21wb25lbnQuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC16dGFiJyxcclxuICB0ZW1wbGF0ZVVybDogJy4venRhYi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4venRhYi5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWnRhYkNvbXBvbmVudCBleHRlbmRzIENvbnRhaW5lckZpZWxkQmFzZSBpbXBsZW1lbnRzIFpDb21wb25lbnQsIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgna2VuZG9UYWJTdHJpcEluc3RhbmNlJykgcHVibGljIHRhYnN0cmlwOiBUYWJTdHJpcENvbXBvbmVudDtcclxuICBwdWJsaWMgc3RhdGUgPSB7XHJcbiAgICBsYXN0U2VsZWN0ZWRUYWJJbmRleDogMCxcclxuICAgIGN1cnJlbnRUYWJzOiBBcnJheTxaVGFiSXRlbT4oKSxcclxuICAgIGFsbFRhYnM6IEFycmF5PFpUYWJJdGVtPigpXHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBjb21wU2VydmljZTogWkNvbXBvbmVudFNlcnZpY2UsXHJcbiAgKSB7XHJcbiAgICBzdXBlcihjb21wU2VydmljZSlcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgc3VwZXIuaW5pdENvbXBvbmVudCgpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc2V0Q3VycmVudFRhYnMoKTtcclxuICAgICAgdGhpcy5yZXN0b3JlVGFiU2VsZWN0aW9uKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0Q3VycmVudFRhYnMoKSB7XHJcbiAgICB0aGlzLnN0YXRlLmN1cnJlbnRUYWJzID0gbmV3IEFycmF5PFpUYWJJdGVtPigpO1xyXG5cclxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuZGF0YS5MYWJlbCkpIHtcclxuICAgICAgbGV0IHZhbGlkSWNvbiA9IGZhbHNlO1xyXG4gICAgICBpZiAodGhpcy5kYXRhLkljb24gJiYgQXJyYXkuaXNBcnJheSh0aGlzLmRhdGEuSWNvbikgJiYgdGhpcy5kYXRhLkljb24ubGVuZ3RoID09PSB0aGlzLmRhdGEuTGFiZWwubGVuZ3RoKSB7XHJcbiAgICAgICAgdmFsaWRJY29uID0gdHJ1ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGd1YXJkLWZvci1pblxyXG4gICAgICBmb3IgKGNvbnN0IGluZGV4IGluIHRoaXMuZGF0YS5MYWJlbCkge1xyXG4gICAgICAgIHRoaXMuc3RhdGUuY3VycmVudFRhYnMucHVzaChcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgTGFiZWw6IHRoaXMuZGF0YS5MYWJlbFtpbmRleF0sXHJcbiAgICAgICAgICAgIEljb246IHZhbGlkSWNvbiA/IHRoaXMuZGF0YS5JY29uW2luZGV4XSA6IG51bGwsXHJcbiAgICAgICAgICAgIFZpc2libGU6IHRydWUsXHJcbiAgICAgICAgICAgIEluZGV4OiBwYXJzZUludChpbmRleClcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc3RhdGUuYWxsVGFicyA9IHRoaXMuc3RhdGUuY3VycmVudFRhYnM7XHJcblxyXG4gICAgICBpZiAodGhpcy5kYXRhLlRhYlZpc2libGVGYWxzZUluZGV4KSB7XHJcbiAgICAgICAgdGhpcy5zZXRUYWJzVmlzaWJsZSh0aGlzLmRhdGEuVGFiVmlzaWJsZUZhbHNlSW5kZXgsIGZhbHNlKTtcclxuICAgICAgfVxyXG5cclxuICAgIH0gZWxzZSBpZiAodGhpcy5kYXRhLlRhYkl0ZW1zKSB7XHJcbiAgICAgIGxldCBpbmQgPSAwO1xyXG4gICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIHRoaXMuZGF0YS5UYWJJdGVtcykge1xyXG4gICAgICAgIHRoaXMuc3RhdGUuY3VycmVudFRhYnMucHVzaChcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgTGFiZWw6IGZpZWxkLkxhYmVsIGFzIHN0cmluZyxcclxuICAgICAgICAgICAgSWNvbjogZmllbGQuSWNvbiA/IGZpZWxkLkljb24gYXMgc3RyaW5nIDogbnVsbCxcclxuICAgICAgICAgICAgVmlzaWJsZTogWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cFZhbHVlKGZpZWxkLlZpc2libGUgYXMgc3RyaW5nLCB0aGlzLmdyb3VwKSxcclxuICAgICAgICAgICAgQ291bnRlcjogdHlwZW9mIChmaWVsZFtcIkNvdW50ZXJcIl0pID09PSBcInN0cmluZ1wiID8gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cFZhbHVlKGZpZWxkW1wiQ291bnRlclwiXSBhcyBzdHJpbmcsIHRoaXMuZ3JvdXApIDogZmllbGRbXCJDb3VudGVyXCJdLFxyXG4gICAgICAgICAgICBJbmRleDogaW5kKytcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc3RhdGUuYWxsVGFicyA9IHRoaXMuc3RhdGUuY3VycmVudFRhYnM7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlZnJlc2hDdXJyZW50VGFicygpIHtcclxuICAgIGNvbnN0IHByZXZpb3VzU3RhdGVUYWJzID0gdGhpcy5zdGF0ZS5hbGxUYWJzO1xyXG5cclxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuZGF0YS5MYWJlbCkpIHtcclxuICAgICAgdGhpcy5zdGF0ZS5jdXJyZW50VGFicyA9IG5ldyBBcnJheTxaVGFiSXRlbT4oKTtcclxuICAgICAgbGV0IHZhbGlkSWNvbiA9IGZhbHNlO1xyXG4gICAgICBpZiAodGhpcy5kYXRhLkljb24gJiYgQXJyYXkuaXNBcnJheSh0aGlzLmRhdGEuSWNvbikgJiYgdGhpcy5kYXRhLkljb24ubGVuZ3RoID09PSB0aGlzLmRhdGEuTGFiZWwubGVuZ3RoKSB7XHJcbiAgICAgICAgdmFsaWRJY29uID0gdHJ1ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGd1YXJkLWZvci1pblxyXG4gICAgICBmb3IgKGNvbnN0IGluZGV4IGluIHRoaXMuZGF0YS5MYWJlbCkge1xyXG4gICAgICAgIGNvbnN0IHByZXZpb3VzVGFiID0gcHJldmlvdXNTdGF0ZVRhYnMuZmlsdGVyKHggPT4geC5MYWJlbCA9PSB0aGlzLmRhdGEuTGFiZWxbaW5kZXhdKTtcclxuICAgICAgICBjb25zdCBwcmV2aW91c1RhYlZpc2libGUgPSBwcmV2aW91c1RhYi5sZW5ndGggPiAwID8gcHJldmlvdXNUYWJbMF0uVmlzaWJsZSA6IGZhbHNlO1xyXG5cclxuICAgICAgICBjb25zdCBpc1Zpc2libGUgPSBwcmV2aW91c1RhYlZpc2libGU7XHJcbiAgICAgICAgaWYgKGlzVmlzaWJsZSkge1xyXG4gICAgICAgICAgdGhpcy5zdGF0ZS5jdXJyZW50VGFicy5wdXNoKFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgTGFiZWw6IHRoaXMuZGF0YS5MYWJlbFtpbmRleF0sXHJcbiAgICAgICAgICAgICAgSWNvbjogdmFsaWRJY29uID8gdGhpcy5kYXRhLkljb25baW5kZXhdIDogbnVsbCxcclxuICAgICAgICAgICAgICBWaXNpYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICAgIEluZGV4OiBwYXJzZUludChpbmRleClcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMuc3RhdGUuY3VycmVudFRhYnMsIHRoaXMuc3RhdGUuYWxsVGFicyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2VsZWN0VGFiID0gKGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgIHRoaXMuc3RhdGUubGFzdFNlbGVjdGVkVGFiSW5kZXggPSBpbmRleDtcclxuICB9XHJcblxyXG4gIGdldFNlbGVjdGVkVGFiKHRhYkluZGV4OiBudW1iZXIpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXRlLmxhc3RTZWxlY3RlZFRhYkluZGV4ID09PSB0YWJJbmRleDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRTZWxlY3RUYWIodGFiSW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5zdGF0ZS5sYXN0U2VsZWN0ZWRUYWJJbmRleCA9IHRhYkluZGV4O1xyXG4gIH1cclxuXHJcbiAgcmVzdG9yZVRhYlNlbGVjdGlvbigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRhdGEuQWxsb3dTYXZlU3RhdGUgPT09IGZhbHNlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgdGFiU2VsZWN0aW9uczogTWFwPHN0cmluZywgbnVtYmVyPiA9IFwidGFiU2VsZWN0aW9uc1wiIGluIHRoaXMuZ3JvdXAgPyB0aGlzLmdyb3VwWyd0YWJTZWxlY3Rpb25zJ10gOiBudWxsO1xyXG4gICAgaWYgKHRhYlNlbGVjdGlvbnMgIT09IG51bGwgJiYgdGFiU2VsZWN0aW9ucy5oYXModGhpcy5kYXRhLk5hbWUpKSB7IC8vIHN1YnNlcXVlbnQgbG9hZHNcclxuICAgICAgdGhpcy5zdGF0ZS5sYXN0U2VsZWN0ZWRUYWJJbmRleCA9IHRhYlNlbGVjdGlvbnMuZ2V0KHRoaXMuZGF0YS5OYW1lKTtcclxuXHJcbiAgICB9IGVsc2UgaWYgKHRhYlNlbGVjdGlvbnMgPT09IG51bGwpIHsgLy8gZmlyc3QgbG9hZCBvZiBmaXJzdCB0YWJcclxuICAgICAgdGFiU2VsZWN0aW9ucyA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCk7XHJcbiAgICAgIHRoaXMuZ3JvdXBbJ3RhYlNlbGVjdGlvbnMnXSA9IHRhYlNlbGVjdGlvbnM7XHJcbiAgICAgIHRhYlNlbGVjdGlvbnMuc2V0KHRoaXMuZGF0YS5OYW1lLCAwKTtcclxuXHJcbiAgICB9IGVsc2UgaWYgKCF0YWJTZWxlY3Rpb25zLmhhcyh0aGlzLmRhdGEuTmFtZSkpIHsgLy8gZmlyc3QgbG9hZCBvZiByZXN0IHRhYnNcclxuICAgICAgdGFiU2VsZWN0aW9ucy5zZXQodGhpcy5kYXRhLk5hbWUsIDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uVGFiU2VsZWN0KGUpIHtcclxuICAgIHRoaXMuc3RhdGUubGFzdFNlbGVjdGVkVGFiSW5kZXggPSBlLmluZGV4O1xyXG4gICAgdGhpcy5zYXZlU3RhdGUoZSk7XHJcblxyXG4gICAgY29uc3QgZnVuYyA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCB0aGlzLmRhdGEuQ2xpY2tFdmVudCk7XHJcbiAgICBpZiAodHlwZW9mIGZ1bmMgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgY29uc3QgY2FsbEZ1bmMgPSBmdW5jLmJpbmQodGhpcy5ncm91cC5jdHJsU2NvcGUpO1xyXG4gICAgICBjYWxsRnVuYyhlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2F2ZVN0YXRlKGUpIHtcclxuICAgIGlmICh0aGlzLmRhdGEuQWxsb3dTYXZlU3RhdGUgPT09IGZhbHNlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB0YWJTZWxlY3Rpb25zID0gdGhpcy5ncm91cFsndGFiU2VsZWN0aW9ucyddIGFzIE1hcDxzdHJpbmcsIG51bWJlcj47XHJcbiAgICB0YWJTZWxlY3Rpb25zLnNldCh0aGlzLmRhdGEuTmFtZSwgZS5pbmRleCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VGFic1Zpc2libGUgPSAodGFiSW5kZXhlczogbnVtYmVyW10sIHN0YXR1czogYm9vbGVhbikgPT4ge1xyXG4gICAgaWYgKHRoaXMuc3RhdGUuYWxsVGFicy5sZW5ndGggPD0gTWF0aC5tYXguYXBwbHkobnVsbCwgdGFiSW5kZXhlcykgfHwgTWF0aC5taW4uYXBwbHkobnVsbCwgdGFiSW5kZXhlcykgPCAwKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiSW52YWxpZCBUYWIgaW5kZXggOiBcIiArIHRhYkluZGV4ZXMuam9pbihcIixcIikpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGFiSW5kZXhlcy5mb3JFYWNoKGluZGV4ID0+IHtcclxuICAgICAgdGhpcy5zdGF0ZS5hbGxUYWJzW2luZGV4XS5WaXNpYmxlID0gc3RhdHVzO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnJlZnJlc2hDdXJyZW50VGFicygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFRhYkNvdW50ZXIgPSAodGFiSW5kZXg6IG51bWJlciwgY291bnRlcjogbnVtYmVyIHwgc3RyaW5nKSA9PiB7XHJcbiAgICBjb25zdCBsYWJlbHMgPSB0aGlzLmRhdGEuTGFiZWwgPyB0aGlzLmRhdGEuTGFiZWwgOiB0aGlzLmRhdGEuVGFiSXRlbXM7XHJcbiAgICBpZiAobGFiZWxzLmxlbmd0aCA8PSB0YWJJbmRleCB8fCB0YWJJbmRleCA8IDApIHtcclxuICAgICAgY29uc29sZS5sb2coXCJJbnZhbGlkIFRhYiBpbmRleCA6IFwiICsgdGFiSW5kZXgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zdGF0ZS5jdXJyZW50VGFic1t0YWJJbmRleF0uQ291bnRlciA9IGNvdW50ZXI7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCIoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGVGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZSlcIiBjbGFzcz1cImNvbnRhaW5lciBlMXRhZy1jb250YWluZXItc3R5bGVcIlxyXG4gIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmNvbnRhaW5lclN0eWxlLnN0eWxlXCI+XHJcbiAgPGtlbmRvLXRhYnN0cmlwIGNsYXNzPVwienRhYiBlMXRhZy1jb250YWluZXItc3R5bGUxXCIgI2tlbmRvVGFiU3RyaXBJbnN0YW5jZSBba2VlcFRhYkNvbnRlbnRdPVwidHJ1ZVwiICh0YWJTZWxlY3QpPVwib25UYWJTZWxlY3QoJGV2ZW50KVwiXHJcbiAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGUxXCIgW2NsYXNzXT1cImRhdGEuQ29tcG9uZW50U3R5bGVUeXBlXCI+XHJcbiAgICA8a2VuZG8tdGFic3RyaXAtdGFiICpuZ0Zvcj1cImxldCB0YWIgb2Ygc3RhdGUuY3VycmVudFRhYnM7IGxldCBpID0gaW5kZXhcIiBbc2VsZWN0ZWRdPVwiZ2V0U2VsZWN0ZWRUYWIoaSlcIiBbZGlzYWJsZWRdPVwiIXRhYi5WaXNpYmxlXCJcclxuICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmNvbnRhaW5lclN0eWxlLnN0eWxlMlwiIGNsYXNzPVwiZTF0YWctY29udGFpbmVyLXN0eWxlMlwiPlxyXG4gICAgICA8bmctdGVtcGxhdGUga2VuZG9UYWJUaXRsZSAqbmdJZj1cInRhYi5WaXNpYmxlXCIgPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWItY29udGVudCBlMXRhZy1jb250YWluZXItc3R5bGUzXCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGUzXCI+XHJcbiAgICAgICAgICA8ZmEtaWNvbiAqbmdJZj1cIiEhdGFiLkljb25cIiBbaWNvbl09XCJnZXRGb250QXdlc29tZSh0YWIuSWNvbilcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTRcIiBjbGFzcz1cImUxdGFnLWNvbnRhaW5lci1zdHlsZTRcIj48L2ZhLWljb24+XHJcbiAgICAgICAgICB7e3RhYi5MYWJlbH19XHJcbiAgICAgICAgICA8aW9uLWJhZGdlIGNsYXNzPVwidGFiLWl0ZW0tY291bnRlciBlMXRhZy1jb250YWluZXItc3R5bGU1XCIgY29sb3I9XCJkYW5nZXJcIiAqbmdJZj1cIiEhdGFiLkNvdW50ZXJcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTVcIj57e3RhYi5Db3VudGVyfX08L2lvbi1iYWRnZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvVGFiQ29udGVudD5cclxuICAgICAgICA8YXBwLXpkaXYgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGU2XCIgY2xhc3M9XCJlMXRhZy1jb250YWluZXItc3R5bGU2XCIgW2RhdGFdPVwiZGF0YSB8IHRhYmZpbHRlcjogdGFiLkluZGV4ICsgJydcIiBbZm9ybV09XCJmb3JtXCIgW2dyb3VwXT1cImdyb3VwXCIgW2NvbnRhaW5lckZpZWxkXT1cImNvbnRhaW5lckZpZWxkXCI+XHJcbiAgICAgICAgPC9hcHAtemRpdj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwva2VuZG8tdGFic3RyaXAtdGFiPlxyXG4gIDwva2VuZG8tdGFic3RyaXA+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -2,16 +2,18 @@ import { Pipe } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class TabFilter {
4
4
  transform(items, filter) {
5
- // debugger;
6
- if (!items || !filter) {
5
+ if (!items || !filter || !items.Value || !Array.isArray(items.Value)) {
7
6
  return items;
8
7
  }
9
8
  // filter items array, items which match and return true will be
10
9
  // kept, false will be filtered out
11
- return items.filter(item => {
10
+ const value = items.Value.filter(item => {
12
11
  const target = item.TabArea + '';
13
12
  return target.indexOf(filter) !== -1;
14
13
  });
14
+ const newTabItem = Object.assign({}, items);
15
+ newTabItem.Value = value;
16
+ return newTabItem;
15
17
  }
16
18
  }
17
19
  TabFilter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TabFilter, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
@@ -23,4 +25,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
23
25
  pure: true
24
26
  }]
25
27
  }] });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoienRhYi5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvenRhYi96dGFiLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBTXBELE1BQU0sT0FBTyxTQUFTO0lBQ2xCLFNBQVMsQ0FBQyxLQUFVLEVBQUUsTUFBYztRQUNoQyxZQUFZO1FBQ1osSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNuQixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELGdFQUFnRTtRQUNoRSxtQ0FBbUM7UUFDbkMsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3ZCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2pDLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O3VHQVpRLFNBQVM7cUdBQVQsU0FBUzs0RkFBVCxTQUFTO2tCQUpyQixJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxXQUFXO29CQUNqQixJQUFJLEVBQUUsSUFBSTtpQkFDYiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBQaXBlKHtcclxuICAgIG5hbWU6ICd0YWJmaWx0ZXInLFxyXG4gICAgcHVyZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFiRmlsdGVyIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgICB0cmFuc2Zvcm0oaXRlbXM6IGFueSwgZmlsdGVyOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgICAgIC8vIGRlYnVnZ2VyO1xyXG4gICAgICAgIGlmICghaXRlbXMgfHwgIWZpbHRlcikge1xyXG4gICAgICAgICAgICByZXR1cm4gaXRlbXM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGZpbHRlciBpdGVtcyBhcnJheSwgaXRlbXMgd2hpY2ggbWF0Y2ggYW5kIHJldHVybiB0cnVlIHdpbGwgYmVcclxuICAgICAgICAvLyBrZXB0LCBmYWxzZSB3aWxsIGJlIGZpbHRlcmVkIG91dFxyXG4gICAgICAgIHJldHVybiBpdGVtcy5maWx0ZXIoaXRlbSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGl0ZW0uVGFiQXJlYSArICcnO1xyXG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0LmluZGV4T2YoZmlsdGVyKSAhPT0gLTE7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn0iXX0=
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoienRhYi5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvenRhYi96dGFiLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBTXBELE1BQU0sT0FBTyxTQUFTO0lBQ3BCLFNBQVMsQ0FBQyxLQUFVLEVBQUUsTUFBYztRQUNsQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3BFLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxnRUFBZ0U7UUFDaEUsbUNBQW1DO1FBQ25DLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3RDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2pDLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7O3VHQWRVLFNBQVM7cUdBQVQsU0FBUzs0RkFBVCxTQUFTO2tCQUpyQixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxXQUFXO29CQUNqQixJQUFJLEVBQUUsSUFBSTtpQkFDWCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAndGFiZmlsdGVyJyxcclxuICBwdXJlOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJGaWx0ZXIgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICB0cmFuc2Zvcm0oaXRlbXM6IGFueSwgZmlsdGVyOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgaWYgKCFpdGVtcyB8fCAhZmlsdGVyIHx8ICFpdGVtcy5WYWx1ZSB8fCAhQXJyYXkuaXNBcnJheShpdGVtcy5WYWx1ZSkpIHtcclxuICAgICAgcmV0dXJuIGl0ZW1zO1xyXG4gICAgfVxyXG4gICAgLy8gZmlsdGVyIGl0ZW1zIGFycmF5LCBpdGVtcyB3aGljaCBtYXRjaCBhbmQgcmV0dXJuIHRydWUgd2lsbCBiZVxyXG4gICAgLy8ga2VwdCwgZmFsc2Ugd2lsbCBiZSBmaWx0ZXJlZCBvdXRcclxuICAgIGNvbnN0IHZhbHVlID0gaXRlbXMuVmFsdWUuZmlsdGVyKGl0ZW0gPT4ge1xyXG4gICAgICBjb25zdCB0YXJnZXQgPSBpdGVtLlRhYkFyZWEgKyAnJztcclxuICAgICAgcmV0dXJuIHRhcmdldC5pbmRleE9mKGZpbHRlcikgIT09IC0xO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBuZXdUYWJJdGVtID0gT2JqZWN0LmFzc2lnbih7fSwgaXRlbXMpO1xyXG4gICAgbmV3VGFiSXRlbS5WYWx1ZSA9IHZhbHVlO1xyXG4gICAgcmV0dXJuIG5ld1RhYkl0ZW07XHJcbiAgfVxyXG59XHJcbiJdfQ==