ng-prime-tools 1.0.12 → 1.0.14

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 (38) hide show
  1. package/README.md +13 -0
  2. package/esm2022/lib/models/card-config.model.mjs +1 -1
  3. package/esm2022/lib/models/icon-style.model.mjs +1 -1
  4. package/esm2022/lib/models/nav-bar-menu-config.model.mjs +1 -1
  5. package/esm2022/lib/models/pattern.model.mjs +1 -1
  6. package/esm2022/lib/models/text-style.model.mjs +1 -1
  7. package/esm2022/lib/pt-card/pt-card.component.mjs +34 -15
  8. package/esm2022/lib/pt-chart/pt-chart.component.mjs +19 -9
  9. package/esm2022/lib/pt-menu/pt-menu.component.mjs +2 -2
  10. package/esm2022/lib/pt-menu-fancy/pt-menu-fancy.component.mjs +2 -2
  11. package/esm2022/lib/pt-metric-card/pt-metric-card.component.mjs +28 -4
  12. package/esm2022/lib/pt-nav-bar-menu/pt-nav-bar-menu.component.mjs +34 -7
  13. package/esm2022/lib/pt-page-skeleton/pt-page-skeleton.component.mjs +3 -1
  14. package/esm2022/lib/pt-side-bar-menu/pt-side-bar-menu.component.mjs +4 -1
  15. package/fesm2022/ng-prime-tools.mjs +118 -33
  16. package/fesm2022/ng-prime-tools.mjs.map +1 -1
  17. package/lib/models/card-config.model.d.ts +1 -0
  18. package/lib/models/card-config.model.d.ts.map +1 -1
  19. package/lib/models/icon-style.model.d.ts +2 -0
  20. package/lib/models/icon-style.model.d.ts.map +1 -1
  21. package/lib/models/nav-bar-menu-config.model.d.ts +2 -0
  22. package/lib/models/nav-bar-menu-config.model.d.ts.map +1 -1
  23. package/lib/models/pattern.model.d.ts +1 -0
  24. package/lib/models/pattern.model.d.ts.map +1 -1
  25. package/lib/models/text-style.model.d.ts +1 -0
  26. package/lib/models/text-style.model.d.ts.map +1 -1
  27. package/lib/pt-card/pt-card.component.d.ts +8 -5
  28. package/lib/pt-card/pt-card.component.d.ts.map +1 -1
  29. package/lib/pt-chart/pt-chart.component.d.ts +3 -1
  30. package/lib/pt-chart/pt-chart.component.d.ts.map +1 -1
  31. package/lib/pt-menu-fancy/pt-menu-fancy.component.d.ts.map +1 -1
  32. package/lib/pt-metric-card/pt-metric-card.component.d.ts +22 -1
  33. package/lib/pt-metric-card/pt-metric-card.component.d.ts.map +1 -1
  34. package/lib/pt-nav-bar-menu/pt-nav-bar-menu.component.d.ts +8 -1
  35. package/lib/pt-nav-bar-menu/pt-nav-bar-menu.component.d.ts.map +1 -1
  36. package/lib/pt-page-skeleton/pt-page-skeleton.component.d.ts.map +1 -1
  37. package/lib/pt-side-bar-menu/pt-side-bar-menu.component.d.ts.map +1 -1
  38. package/package.json +1 -1
@@ -57,9 +57,16 @@ export class PTMetricCardComponent {
57
57
  getIconStyles() {
58
58
  if (this.isIconObject()) {
59
59
  const icon = this.cardData.icon;
60
+ const shape = icon.shape || 'circular'; // Default to 'circular' if not specified
61
+ // Determine border radius based on shape
62
+ const borderRadius = shape === 'circular' ? '50%' : '8px';
60
63
  return {
61
64
  color: icon.color || PTMetricCardComponent.DEFAULT_ICON_COLOR,
62
65
  fontSize: icon.fontSize || PTMetricCardComponent.DEFAULT_ICON_SIZE,
66
+ 'background-color': icon.backgroundColor || 'transparent',
67
+ 'border-radius': borderRadius,
68
+ padding: '6px',
69
+ display: 'inline-block',
63
70
  };
64
71
  }
65
72
  return {};
@@ -70,6 +77,7 @@ export class PTMetricCardComponent {
70
77
  return {
71
78
  color: title.color || PTMetricCardComponent.DEFAULT_TITLE_COLOR,
72
79
  fontSize: title.fontSize || PTMetricCardComponent.DEFAULT_TITLE_SIZE,
80
+ fontWeight: title.fontWeight || 'normal',
73
81
  };
74
82
  }
75
83
  return {};
@@ -80,12 +88,14 @@ export class PTMetricCardComponent {
80
88
  return {
81
89
  color: value.color || PTMetricCardComponent.DEFAULT_VALUE_COLOR,
82
90
  fontSize: value.fontSize || PTMetricCardComponent.DEFAULT_VALUE_SIZE,
91
+ fontWeight: value.fontWeight || 'bold',
83
92
  };
84
93
  }
85
94
  else {
86
95
  return {
87
96
  color: PTMetricCardComponent.DEFAULT_VALUE_COLOR,
88
97
  fontSize: PTMetricCardComponent.DEFAULT_VALUE_SIZE,
98
+ fontWeight: 'bold',
89
99
  };
90
100
  }
91
101
  }
@@ -98,12 +108,14 @@ export class PTMetricCardComponent {
98
108
  PTMetricCardComponent.DEFAULT_LABEL_COLOR,
99
109
  fontSize: label.fontSize ||
100
110
  PTMetricCardComponent.DEFAULT_LABEL_SIZE,
111
+ fontWeight: label.fontWeight || 'normal',
101
112
  };
102
113
  }
103
114
  else {
104
115
  return {
105
116
  color: PTMetricCardComponent.DEFAULT_LABEL_COLOR,
106
117
  fontSize: PTMetricCardComponent.DEFAULT_LABEL_SIZE,
118
+ fontWeight: 'normal',
107
119
  };
108
120
  }
109
121
  }
@@ -115,12 +127,14 @@ export class PTMetricCardComponent {
115
127
  PTMetricCardComponent.DEFAULT_ADDITIONAL_INFO_COLOR,
116
128
  fontSize: additionalInfo.fontSize ||
117
129
  PTMetricCardComponent.DEFAULT_ADDITIONAL_INFO_SIZE,
130
+ fontWeight: additionalInfo.fontWeight || 'normal',
118
131
  };
119
132
  }
120
133
  else {
121
134
  return {
122
135
  color: PTMetricCardComponent.DEFAULT_ADDITIONAL_INFO_COLOR,
123
136
  fontSize: PTMetricCardComponent.DEFAULT_ADDITIONAL_INFO_SIZE,
137
+ fontWeight: 'normal',
124
138
  };
125
139
  }
126
140
  }
@@ -132,19 +146,29 @@ export class PTMetricCardComponent {
132
146
  const label = this.cardData.value?.label;
133
147
  return (this.isLabelObject(label) && label.position === 'right');
134
148
  }
135
- getBackgroundStyle() {
149
+ getMetricCardContainerStyle() {
150
+ return {
151
+ 'min-width': this.cardData.size?.minWidth || '100%',
152
+ 'max-width': this.cardData.size?.maxWidth || 'calc(25% - 16px)',
153
+ width: this.cardData.size?.fixedWidth || 'auto',
154
+ };
155
+ }
156
+ getMetricCardStyle() {
136
157
  return {
137
158
  'background-color': this.cardData.appearance?.backgroundColor ||
138
159
  PTMetricCardComponent.DEFAULT_BACKGROUND_COLOR,
160
+ 'min-width': this.cardData.size?.minWidth || '100%',
161
+ 'max-width': this.cardData.size?.maxWidth || 'calc(25% - 16px)',
162
+ width: this.cardData.size?.fixedWidth || 'auto',
139
163
  };
140
164
  }
141
165
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTMetricCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
142
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PTMetricCardComponent, selector: "pt-metric-card", inputs: { cardData: "cardData" }, ngImport: i0, template: "<div\n class=\"metric-card-container\"\n [ngStyle]=\"{\n 'min-width': cardData.size?.minWidth || '100%',\n 'max-width': cardData.size?.maxWidth || 'calc(25% - 16px)',\n width: cardData.size?.fixedWidth || 'auto'\n }\"\n>\n <div\n *ngIf=\"cardData.verticalLine?.show\"\n class=\"vertical-line\"\n [ngStyle]=\"{\n 'background-color': cardData.verticalLine?.color || '#5a67d8'\n }\"\n ></div>\n\n <div class=\"metric-card\" [ngStyle]=\"getBackgroundStyle()\">\n <div class=\"metric-card-header\">\n <i\n *ngIf=\"isIconObject()\"\n [ngClass]=\"getIconText()\"\n [ngStyle]=\"getIconStyles()\"\n ></i>\n <i *ngIf=\"!isIconObject()\" [ngClass]=\"cardData.icon\"></i>\n\n <span\n *ngIf=\"isTitleObject()\"\n class=\"metric-card-header-text\"\n [ngStyle]=\"getTitleStyles()\"\n >\n {{ getTitleText() }}\n </span>\n <span *ngIf=\"!isTitleObject()\" class=\"metric-card-header-text\">\n {{ cardData.title }}\n </span>\n </div>\n\n <div class=\"metric-card-content\">\n <div class=\"metric-value\" [ngStyle]=\"getValueStyles()\">\n <span\n *ngIf=\"isLabelOnLeft()\"\n class=\"value-label\"\n [ngStyle]=\"getLabelStyles('left')\"\n >\n {{ getLabelText() }}\n </span>\n\n <span [ngStyle]=\"getValueStyles()\">{{ getValueText() }}</span>\n\n <span\n *ngIf=\"isLabelOnRight()\"\n class=\"value-label\"\n [ngStyle]=\"getLabelStyles('right')\"\n >\n {{ getLabelText() }}\n </span>\n </div>\n\n <div\n *ngIf=\"cardData.divider?.show\"\n class=\"metric-divider\"\n [ngStyle]=\"{ backgroundColor: cardData.divider?.color || '#e2e8f0' }\"\n ></div>\n\n <div\n *ngIf=\"isAdditionalInfoObject()\"\n class=\"metric-additional-info\"\n [ngStyle]=\"getAdditionalInfoStyles()\"\n >\n {{ getAdditionalInfoText() }}\n </div>\n <div\n *ngIf=\"!isAdditionalInfoObject()\"\n class=\"metric-additional-info\"\n [ngStyle]=\"getAdditionalInfoStyles()\"\n >\n {{ cardData.additionalInfo }}\n </div>\n </div>\n </div>\n</div>\n", styles: [".metric-card-container{display:flex;align-items:stretch;box-sizing:border-box}.vertical-line{width:4px;border-radius:8px 0 0 8px;margin-right:-4px;z-index:2}.metric-card{background-color:#fff;border-radius:5px;box-shadow:0 1px 3px #0000001a;padding:16px;display:flex;flex-direction:column;box-sizing:border-box;margin-left:0}.metric-card-header{display:flex;align-items:center;margin-bottom:16px}.metric-card-header i.icon-text{margin-right:8px}.metric-card-content{display:flex;flex-direction:column;justify-content:space-between}.metric-number{font-weight:700}.metric-label{margin-left:8px}.metric-divider{width:100%;height:1px;margin:16px 0}.metric-additional-info{margin-top:8px}.metric-card-header-text{margin-left:6px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
166
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PTMetricCardComponent, selector: "pt-metric-card", inputs: { cardData: "cardData" }, ngImport: i0, template: "<div class=\"metric-card-container\" [ngStyle]=\"getMetricCardContainerStyle()\">\n <div\n *ngIf=\"cardData.verticalLine?.show\"\n class=\"vertical-line\"\n [ngStyle]=\"{\n 'background-color': cardData.verticalLine?.color || '#5a67d8'\n }\"\n ></div>\n\n <div class=\"metric-card\" [ngStyle]=\"getMetricCardStyle()\">\n <div class=\"metric-card-header\">\n <i\n *ngIf=\"isIconObject()\"\n [ngClass]=\"getIconText()\"\n [ngStyle]=\"getIconStyles()\"\n ></i>\n <i *ngIf=\"!isIconObject()\" [ngClass]=\"cardData.icon\"></i>\n\n <span\n *ngIf=\"isTitleObject()\"\n class=\"metric-card-header-text\"\n [ngStyle]=\"getTitleStyles()\"\n >\n {{ getTitleText() }}\n </span>\n <span *ngIf=\"!isTitleObject()\" class=\"metric-card-header-text\">\n {{ cardData.title }}\n </span>\n </div>\n\n <div class=\"metric-card-content\">\n <div class=\"metric-value\" [ngStyle]=\"getValueStyles()\">\n <span\n *ngIf=\"isLabelOnLeft()\"\n class=\"value-label\"\n [ngStyle]=\"getLabelStyles('left')\"\n >\n {{ getLabelText() }}\n </span>\n\n <span [ngStyle]=\"getValueStyles()\">{{ getValueText() }}</span>\n\n <span\n *ngIf=\"isLabelOnRight()\"\n class=\"value-label\"\n [ngStyle]=\"getLabelStyles('right')\"\n >\n {{ getLabelText() }}\n </span>\n </div>\n\n <div\n *ngIf=\"cardData.divider?.show\"\n class=\"metric-divider\"\n [ngStyle]=\"{ backgroundColor: cardData.divider?.color || '#e2e8f0' }\"\n ></div>\n\n <div\n *ngIf=\"isAdditionalInfoObject()\"\n class=\"metric-additional-info\"\n [ngStyle]=\"getAdditionalInfoStyles()\"\n >\n {{ getAdditionalInfoText() }}\n </div>\n <div\n *ngIf=\"!isAdditionalInfoObject()\"\n class=\"metric-additional-info\"\n [ngStyle]=\"getAdditionalInfoStyles()\"\n >\n {{ cardData.additionalInfo }}\n </div>\n </div>\n </div>\n</div>\n", styles: [".metric-card-container{display:flex;align-items:stretch;box-sizing:border-box}.vertical-line{width:4px;border-radius:8px 0 0 8px;margin-right:-4px;z-index:2}.metric-card{background-color:#fff;border-radius:5px;box-shadow:0 1px 3px #0000001a;padding:16px;display:flex;flex-direction:column;box-sizing:border-box;margin-left:0}.metric-card-header{display:flex;align-items:center;margin-bottom:16px}.metric-card-header i.icon-text{margin-right:8px}.metric-card-content{display:flex;flex-direction:column;justify-content:space-between}.metric-number{font-weight:700}.metric-label{margin-left:8px}.metric-divider{width:100%;height:1px;margin:16px 0}.metric-additional-info{margin-top:8px}.metric-card-header-text{margin-left:6px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
143
167
  }
144
168
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTMetricCardComponent, decorators: [{
145
169
  type: Component,
146
- args: [{ selector: 'pt-metric-card', template: "<div\n class=\"metric-card-container\"\n [ngStyle]=\"{\n 'min-width': cardData.size?.minWidth || '100%',\n 'max-width': cardData.size?.maxWidth || 'calc(25% - 16px)',\n width: cardData.size?.fixedWidth || 'auto'\n }\"\n>\n <div\n *ngIf=\"cardData.verticalLine?.show\"\n class=\"vertical-line\"\n [ngStyle]=\"{\n 'background-color': cardData.verticalLine?.color || '#5a67d8'\n }\"\n ></div>\n\n <div class=\"metric-card\" [ngStyle]=\"getBackgroundStyle()\">\n <div class=\"metric-card-header\">\n <i\n *ngIf=\"isIconObject()\"\n [ngClass]=\"getIconText()\"\n [ngStyle]=\"getIconStyles()\"\n ></i>\n <i *ngIf=\"!isIconObject()\" [ngClass]=\"cardData.icon\"></i>\n\n <span\n *ngIf=\"isTitleObject()\"\n class=\"metric-card-header-text\"\n [ngStyle]=\"getTitleStyles()\"\n >\n {{ getTitleText() }}\n </span>\n <span *ngIf=\"!isTitleObject()\" class=\"metric-card-header-text\">\n {{ cardData.title }}\n </span>\n </div>\n\n <div class=\"metric-card-content\">\n <div class=\"metric-value\" [ngStyle]=\"getValueStyles()\">\n <span\n *ngIf=\"isLabelOnLeft()\"\n class=\"value-label\"\n [ngStyle]=\"getLabelStyles('left')\"\n >\n {{ getLabelText() }}\n </span>\n\n <span [ngStyle]=\"getValueStyles()\">{{ getValueText() }}</span>\n\n <span\n *ngIf=\"isLabelOnRight()\"\n class=\"value-label\"\n [ngStyle]=\"getLabelStyles('right')\"\n >\n {{ getLabelText() }}\n </span>\n </div>\n\n <div\n *ngIf=\"cardData.divider?.show\"\n class=\"metric-divider\"\n [ngStyle]=\"{ backgroundColor: cardData.divider?.color || '#e2e8f0' }\"\n ></div>\n\n <div\n *ngIf=\"isAdditionalInfoObject()\"\n class=\"metric-additional-info\"\n [ngStyle]=\"getAdditionalInfoStyles()\"\n >\n {{ getAdditionalInfoText() }}\n </div>\n <div\n *ngIf=\"!isAdditionalInfoObject()\"\n class=\"metric-additional-info\"\n [ngStyle]=\"getAdditionalInfoStyles()\"\n >\n {{ cardData.additionalInfo }}\n </div>\n </div>\n </div>\n</div>\n", styles: [".metric-card-container{display:flex;align-items:stretch;box-sizing:border-box}.vertical-line{width:4px;border-radius:8px 0 0 8px;margin-right:-4px;z-index:2}.metric-card{background-color:#fff;border-radius:5px;box-shadow:0 1px 3px #0000001a;padding:16px;display:flex;flex-direction:column;box-sizing:border-box;margin-left:0}.metric-card-header{display:flex;align-items:center;margin-bottom:16px}.metric-card-header i.icon-text{margin-right:8px}.metric-card-content{display:flex;flex-direction:column;justify-content:space-between}.metric-number{font-weight:700}.metric-label{margin-left:8px}.metric-divider{width:100%;height:1px;margin:16px 0}.metric-additional-info{margin-top:8px}.metric-card-header-text{margin-left:6px}\n"] }]
170
+ args: [{ selector: 'pt-metric-card', template: "<div class=\"metric-card-container\" [ngStyle]=\"getMetricCardContainerStyle()\">\n <div\n *ngIf=\"cardData.verticalLine?.show\"\n class=\"vertical-line\"\n [ngStyle]=\"{\n 'background-color': cardData.verticalLine?.color || '#5a67d8'\n }\"\n ></div>\n\n <div class=\"metric-card\" [ngStyle]=\"getMetricCardStyle()\">\n <div class=\"metric-card-header\">\n <i\n *ngIf=\"isIconObject()\"\n [ngClass]=\"getIconText()\"\n [ngStyle]=\"getIconStyles()\"\n ></i>\n <i *ngIf=\"!isIconObject()\" [ngClass]=\"cardData.icon\"></i>\n\n <span\n *ngIf=\"isTitleObject()\"\n class=\"metric-card-header-text\"\n [ngStyle]=\"getTitleStyles()\"\n >\n {{ getTitleText() }}\n </span>\n <span *ngIf=\"!isTitleObject()\" class=\"metric-card-header-text\">\n {{ cardData.title }}\n </span>\n </div>\n\n <div class=\"metric-card-content\">\n <div class=\"metric-value\" [ngStyle]=\"getValueStyles()\">\n <span\n *ngIf=\"isLabelOnLeft()\"\n class=\"value-label\"\n [ngStyle]=\"getLabelStyles('left')\"\n >\n {{ getLabelText() }}\n </span>\n\n <span [ngStyle]=\"getValueStyles()\">{{ getValueText() }}</span>\n\n <span\n *ngIf=\"isLabelOnRight()\"\n class=\"value-label\"\n [ngStyle]=\"getLabelStyles('right')\"\n >\n {{ getLabelText() }}\n </span>\n </div>\n\n <div\n *ngIf=\"cardData.divider?.show\"\n class=\"metric-divider\"\n [ngStyle]=\"{ backgroundColor: cardData.divider?.color || '#e2e8f0' }\"\n ></div>\n\n <div\n *ngIf=\"isAdditionalInfoObject()\"\n class=\"metric-additional-info\"\n [ngStyle]=\"getAdditionalInfoStyles()\"\n >\n {{ getAdditionalInfoText() }}\n </div>\n <div\n *ngIf=\"!isAdditionalInfoObject()\"\n class=\"metric-additional-info\"\n [ngStyle]=\"getAdditionalInfoStyles()\"\n >\n {{ cardData.additionalInfo }}\n </div>\n </div>\n </div>\n</div>\n", styles: [".metric-card-container{display:flex;align-items:stretch;box-sizing:border-box}.vertical-line{width:4px;border-radius:8px 0 0 8px;margin-right:-4px;z-index:2}.metric-card{background-color:#fff;border-radius:5px;box-shadow:0 1px 3px #0000001a;padding:16px;display:flex;flex-direction:column;box-sizing:border-box;margin-left:0}.metric-card-header{display:flex;align-items:center;margin-bottom:16px}.metric-card-header i.icon-text{margin-right:8px}.metric-card-content{display:flex;flex-direction:column;justify-content:space-between}.metric-number{font-weight:700}.metric-label{margin-left:8px}.metric-divider{width:100%;height:1px;margin:16px 0}.metric-additional-info{margin-top:8px}.metric-card-header-text{margin-left:6px}\n"] }]
147
171
  }], propDecorators: { cardData: [{
148
172
  type: Input
149
173
  }] } });
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtbWV0cmljLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctcHJpbWUtdG9vbHMvc3JjL2xpYi9wdC1tZXRyaWMtY2FyZC9wdC1tZXRyaWMtY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LW1ldHJpYy1jYXJkL3B0LW1ldHJpYy1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFjakQsTUFBTSxPQUFPLHFCQUFxQjthQUNSLHVCQUFrQixHQUFHLFNBQVMsQUFBWixDQUFhO2FBQy9CLHNCQUFpQixHQUFHLE1BQU0sQUFBVCxDQUFVO2FBQzNCLHdCQUFtQixHQUFHLFNBQVMsQUFBWixDQUFhO2FBQ2hDLHVCQUFrQixHQUFHLE1BQU0sQUFBVCxDQUFVO2FBQzVCLHdCQUFtQixHQUFHLFNBQVMsQUFBWixDQUFhO2FBQ2hDLHVCQUFrQixHQUFHLE1BQU0sQUFBVCxDQUFVO2FBQzVCLHdCQUFtQixHQUFHLFNBQVMsQUFBWixDQUFhO2FBQ2hDLHVCQUFrQixHQUFHLE1BQU0sQUFBVCxDQUFVO2FBQzVCLGtDQUE2QixHQUFHLE1BQU0sQUFBVCxDQUFVO2FBQ3ZDLGlDQUE0QixHQUFHLE1BQU0sQUFBVCxDQUFVO2FBQ3RDLDZCQUF3QixHQUFHLE1BQU0sQUFBVCxDQUFVO0lBSTFELFlBQVk7UUFDVixPQUFPLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDO0lBQ2hELENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQztJQUNqRCxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUM7SUFDakQsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUF3QztRQUNwRCxPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQztJQUNuQyxDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLE9BQU8sT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsS0FBSyxRQUFRLENBQUM7SUFDMUQsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDeEIsQ0FBQyxDQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBa0IsQ0FBQyxJQUFJO1lBQ3hDLENBQUMsQ0FBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQWUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN6QixDQUFDLENBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFtQixDQUFDLElBQUk7WUFDekMsQ0FBQyxDQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBZ0IsQ0FBQztJQUN0QyxDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN6QixDQUFDLENBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFzQixDQUFDLElBQUk7WUFDNUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBZ0IsQ0FBQztJQUN0QyxDQUFDO0lBRUQsWUFBWTtRQUNWLE1BQU0sS0FBSyxHQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBc0IsRUFBRSxLQUFLLENBQUM7UUFDM0QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztZQUM5QixDQUFDLENBQUUsS0FBc0IsQ0FBQyxJQUFJO1lBQzlCLENBQUMsQ0FBRSxLQUFnQixDQUFDO0lBQ3hCLENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDbEMsQ0FBQyxDQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBNEIsQ0FBQyxJQUFJO1lBQ2xELENBQUMsQ0FBRSxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQXlCLENBQUM7SUFDL0MsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBaUIsQ0FBQztZQUM3QyxPQUFPO2dCQUNMLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxJQUFJLHFCQUFxQixDQUFDLGtCQUFrQjtnQkFDN0QsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLElBQUkscUJBQXFCLENBQUMsaUJBQWlCO2FBQ25FLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7WUFDekIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFrQixDQUFDO1lBQy9DLE9BQU87Z0JBQ0wsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLElBQUkscUJBQXFCLENBQUMsbUJBQW1CO2dCQUMvRCxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVEsSUFBSSxxQkFBcUIsQ0FBQyxrQkFBa0I7YUFDckUsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztZQUN6QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQXFCLENBQUM7WUFDbEQsT0FBTztnQkFDTCxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssSUFBSSxxQkFBcUIsQ0FBQyxtQkFBbUI7Z0JBQy9ELFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUSxJQUFJLHFCQUFxQixDQUFDLGtCQUFrQjthQUNyRSxDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPO2dCQUNMLEtBQUssRUFBRSxxQkFBcUIsQ0FBQyxtQkFBbUI7Z0JBQ2hELFFBQVEsRUFBRSxxQkFBcUIsQ0FBQyxrQkFBa0I7YUFDbkQsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsY0FBYyxDQUFDLFFBQTBCO1FBQ3ZDLE1BQU0sS0FBSyxHQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBc0IsRUFBRSxLQUFLLENBQUM7UUFDM0QsSUFDRSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztZQUN4QixLQUFzQixDQUFDLFFBQVEsS0FBSyxRQUFRLEVBQzdDLENBQUM7WUFDRCxPQUFPO2dCQUNMLEtBQUssRUFDRixLQUFzQixDQUFDLEtBQUs7b0JBQzdCLHFCQUFxQixDQUFDLG1CQUFtQjtnQkFDM0MsUUFBUSxFQUNMLEtBQXNCLENBQUMsUUFBUTtvQkFDaEMscUJBQXFCLENBQUMsa0JBQWtCO2FBQzNDLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU87Z0JBQ0wsS0FBSyxFQUFFLHFCQUFxQixDQUFDLG1CQUFtQjtnQkFDaEQsUUFBUSxFQUFFLHFCQUFxQixDQUFDLGtCQUFrQjthQUNuRCxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFRCx1QkFBdUI7UUFDckIsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsRUFBRSxDQUFDO1lBQ2xDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBMkIsQ0FBQztZQUNqRSxPQUFPO2dCQUNMLEtBQUssRUFDSCxjQUFjLENBQUMsS0FBSztvQkFDcEIscUJBQXFCLENBQUMsNkJBQTZCO2dCQUNyRCxRQUFRLEVBQ04sY0FBYyxDQUFDLFFBQVE7b0JBQ3ZCLHFCQUFxQixDQUFDLDRCQUE0QjthQUNyRCxDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPO2dCQUNMLEtBQUssRUFBRSxxQkFBcUIsQ0FBQyw2QkFBNkI7Z0JBQzFELFFBQVEsRUFBRSxxQkFBcUIsQ0FBQyw0QkFBNEI7YUFDN0QsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsYUFBYTtRQUNYLE1BQU0sS0FBSyxHQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBc0IsRUFBRSxLQUFLLENBQUM7UUFDM0QsT0FBTyxDQUNMLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUssS0FBc0IsQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUN6RSxDQUFDO0lBQ0osQ0FBQztJQUVELGNBQWM7UUFDWixNQUFNLEtBQUssR0FBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQXNCLEVBQUUsS0FBSyxDQUFDO1FBQzNELE9BQU8sQ0FDTCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFLLEtBQXNCLENBQUMsUUFBUSxLQUFLLE9BQU8sQ0FDMUUsQ0FBQztJQUNKLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsT0FBTztZQUNMLGtCQUFrQixFQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxlQUFlO2dCQUN6QyxxQkFBcUIsQ0FBQyx3QkFBd0I7U0FDakQsQ0FBQztJQUNKLENBQUM7K0dBcEtVLHFCQUFxQjttR0FBckIscUJBQXFCLHdGQ2RsQyx3dUVBaUZBOzs0RkRuRWEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGdCQUFnQjs4QkFpQmpCLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBMYWJlbFNldHRpbmcsXG4gIE1ldHJpY0NhcmREYXRhLFxuICBWYWx1ZVNldHRpbmcsXG4gIEljb25TdHlsZSxcbiAgVGV4dFN0eWxlLFxufSBmcm9tICcuLi9tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwdC1tZXRyaWMtY2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wdC1tZXRyaWMtY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3B0LW1ldHJpYy1jYXJkLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUFRNZXRyaWNDYXJkQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9JQ09OX0NPTE9SID0gJyM1YTY3ZDgnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0lDT05fU0laRSA9ICcyNHB4JztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9USVRMRV9DT0xPUiA9ICcjNWE2N2Q4JztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9USVRMRV9TSVpFID0gJzE2cHgnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBERUZBVUxUX1ZBTFVFX0NPTE9SID0gJyMyZDM3NDgnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBERUZBVUxUX1ZBTFVFX1NJWkUgPSAnMzJweCc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfTEFCRUxfQ09MT1IgPSAnIzcxODA5Nic7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfTEFCRUxfU0laRSA9ICcxNHB4JztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9BRERJVElPTkFMX0lORk9fQ09MT1IgPSAnZ3JheSc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfQURESVRJT05BTF9JTkZPX1NJWkUgPSAnMTRweCc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfQkFDS0dST1VORF9DT0xPUiA9ICcjZmZmJztcblxuICBASW5wdXQoKSBjYXJkRGF0YSE6IE1ldHJpY0NhcmREYXRhO1xuXG4gIGlzSWNvbk9iamVjdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHlwZW9mIHRoaXMuY2FyZERhdGEuaWNvbiA9PT0gJ29iamVjdCc7XG4gIH1cblxuICBpc1RpdGxlT2JqZWN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5jYXJkRGF0YS50aXRsZSA9PT0gJ29iamVjdCc7XG4gIH1cblxuICBpc1ZhbHVlT2JqZWN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5jYXJkRGF0YS52YWx1ZSA9PT0gJ29iamVjdCc7XG4gIH1cblxuICBpc0xhYmVsT2JqZWN0KGxhYmVsOiBMYWJlbFNldHRpbmcgfCBzdHJpbmcgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHlwZW9mIGxhYmVsID09PSAnb2JqZWN0JztcbiAgfVxuXG4gIGlzQWRkaXRpb25hbEluZm9PYmplY3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLmNhcmREYXRhLmFkZGl0aW9uYWxJbmZvID09PSAnb2JqZWN0JztcbiAgfVxuXG4gIGdldEljb25UZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXNJY29uT2JqZWN0KClcbiAgICAgID8gKHRoaXMuY2FyZERhdGEuaWNvbiBhcyBJY29uU3R5bGUpLmNvZGVcbiAgICAgIDogKHRoaXMuY2FyZERhdGEuaWNvbiBhcyBzdHJpbmcpO1xuICB9XG5cbiAgZ2V0VGl0bGVUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXNUaXRsZU9iamVjdCgpXG4gICAgICA/ICh0aGlzLmNhcmREYXRhLnRpdGxlIGFzIFRleHRTdHlsZSkudGV4dFxuICAgICAgOiAodGhpcy5jYXJkRGF0YS50aXRsZSBhcyBzdHJpbmcpO1xuICB9XG5cbiAgZ2V0VmFsdWVUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWx1ZU9iamVjdCgpXG4gICAgICA/ICh0aGlzLmNhcmREYXRhLnZhbHVlIGFzIFZhbHVlU2V0dGluZykudGV4dFxuICAgICAgOiAodGhpcy5jYXJkRGF0YS52YWx1ZSBhcyBzdHJpbmcpO1xuICB9XG5cbiAgZ2V0TGFiZWxUZXh0KCk6IHN0cmluZyB7XG4gICAgY29uc3QgbGFiZWwgPSAodGhpcy5jYXJkRGF0YS52YWx1ZSBhcyBWYWx1ZVNldHRpbmcpPy5sYWJlbDtcbiAgICByZXR1cm4gdGhpcy5pc0xhYmVsT2JqZWN0KGxhYmVsKVxuICAgICAgPyAobGFiZWwgYXMgTGFiZWxTZXR0aW5nKS50ZXh0XG4gICAgICA6IChsYWJlbCBhcyBzdHJpbmcpO1xuICB9XG5cbiAgZ2V0QWRkaXRpb25hbEluZm9UZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXNBZGRpdGlvbmFsSW5mb09iamVjdCgpXG4gICAgICA/ICh0aGlzLmNhcmREYXRhLmFkZGl0aW9uYWxJbmZvIGFzIFRleHRTdHlsZSkudGV4dFxuICAgICAgOiAodGhpcy5jYXJkRGF0YS5hZGRpdGlvbmFsSW5mbyBhcyBzdHJpbmcpO1xuICB9XG5cbiAgZ2V0SWNvblN0eWxlcygpIHtcbiAgICBpZiAodGhpcy5pc0ljb25PYmplY3QoKSkge1xuICAgICAgY29uc3QgaWNvbiA9IHRoaXMuY2FyZERhdGEuaWNvbiBhcyBJY29uU3R5bGU7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb2xvcjogaWNvbi5jb2xvciB8fCBQVE1ldHJpY0NhcmRDb21wb25lbnQuREVGQVVMVF9JQ09OX0NPTE9SLFxuICAgICAgICBmb250U2l6ZTogaWNvbi5mb250U2l6ZSB8fCBQVE1ldHJpY0NhcmRDb21wb25lbnQuREVGQVVMVF9JQ09OX1NJWkUsXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4ge307XG4gIH1cblxuICBnZXRUaXRsZVN0eWxlcygpIHtcbiAgICBpZiAodGhpcy5pc1RpdGxlT2JqZWN0KCkpIHtcbiAgICAgIGNvbnN0IHRpdGxlID0gdGhpcy5jYXJkRGF0YS50aXRsZSBhcyBUZXh0U3R5bGU7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb2xvcjogdGl0bGUuY29sb3IgfHwgUFRNZXRyaWNDYXJkQ29tcG9uZW50LkRFRkFVTFRfVElUTEVfQ09MT1IsXG4gICAgICAgIGZvbnRTaXplOiB0aXRsZS5mb250U2l6ZSB8fCBQVE1ldHJpY0NhcmRDb21wb25lbnQuREVGQVVMVF9USVRMRV9TSVpFLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgZ2V0VmFsdWVTdHlsZXMoKSB7XG4gICAgaWYgKHRoaXMuaXNWYWx1ZU9iamVjdCgpKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuY2FyZERhdGEudmFsdWUgYXMgVmFsdWVTZXR0aW5nO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29sb3I6IHZhbHVlLmNvbG9yIHx8IFBUTWV0cmljQ2FyZENvbXBvbmVudC5ERUZBVUxUX1ZBTFVFX0NPTE9SLFxuICAgICAgICBmb250U2l6ZTogdmFsdWUuZm9udFNpemUgfHwgUFRNZXRyaWNDYXJkQ29tcG9uZW50LkRFRkFVTFRfVkFMVUVfU0laRSxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbG9yOiBQVE1ldHJpY0NhcmRDb21wb25lbnQuREVGQVVMVF9WQUxVRV9DT0xPUixcbiAgICAgICAgZm9udFNpemU6IFBUTWV0cmljQ2FyZENvbXBvbmVudC5ERUZBVUxUX1ZBTFVFX1NJWkUsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIGdldExhYmVsU3R5bGVzKHBvc2l0aW9uOiAnbGVmdCcgfCAncmlnaHQnKSB7XG4gICAgY29uc3QgbGFiZWwgPSAodGhpcy5jYXJkRGF0YS52YWx1ZSBhcyBWYWx1ZVNldHRpbmcpPy5sYWJlbDtcbiAgICBpZiAoXG4gICAgICB0aGlzLmlzTGFiZWxPYmplY3QobGFiZWwpICYmXG4gICAgICAobGFiZWwgYXMgTGFiZWxTZXR0aW5nKS5wb3NpdGlvbiA9PT0gcG9zaXRpb25cbiAgICApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbG9yOlxuICAgICAgICAgIChsYWJlbCBhcyBMYWJlbFNldHRpbmcpLmNvbG9yIHx8XG4gICAgICAgICAgUFRNZXRyaWNDYXJkQ29tcG9uZW50LkRFRkFVTFRfTEFCRUxfQ09MT1IsXG4gICAgICAgIGZvbnRTaXplOlxuICAgICAgICAgIChsYWJlbCBhcyBMYWJlbFNldHRpbmcpLmZvbnRTaXplIHx8XG4gICAgICAgICAgUFRNZXRyaWNDYXJkQ29tcG9uZW50LkRFRkFVTFRfTEFCRUxfU0laRSxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbG9yOiBQVE1ldHJpY0NhcmRDb21wb25lbnQuREVGQVVMVF9MQUJFTF9DT0xPUixcbiAgICAgICAgZm9udFNpemU6IFBUTWV0cmljQ2FyZENvbXBvbmVudC5ERUZBVUxUX0xBQkVMX1NJWkUsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIGdldEFkZGl0aW9uYWxJbmZvU3R5bGVzKCkge1xuICAgIGlmICh0aGlzLmlzQWRkaXRpb25hbEluZm9PYmplY3QoKSkge1xuICAgICAgY29uc3QgYWRkaXRpb25hbEluZm8gPSB0aGlzLmNhcmREYXRhLmFkZGl0aW9uYWxJbmZvIGFzIFRleHRTdHlsZTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbG9yOlxuICAgICAgICAgIGFkZGl0aW9uYWxJbmZvLmNvbG9yIHx8XG4gICAgICAgICAgUFRNZXRyaWNDYXJkQ29tcG9uZW50LkRFRkFVTFRfQURESVRJT05BTF9JTkZPX0NPTE9SLFxuICAgICAgICBmb250U2l6ZTpcbiAgICAgICAgICBhZGRpdGlvbmFsSW5mby5mb250U2l6ZSB8fFxuICAgICAgICAgIFBUTWV0cmljQ2FyZENvbXBvbmVudC5ERUZBVUxUX0FERElUSU9OQUxfSU5GT19TSVpFLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29sb3I6IFBUTWV0cmljQ2FyZENvbXBvbmVudC5ERUZBVUxUX0FERElUSU9OQUxfSU5GT19DT0xPUixcbiAgICAgICAgZm9udFNpemU6IFBUTWV0cmljQ2FyZENvbXBvbmVudC5ERUZBVUxUX0FERElUSU9OQUxfSU5GT19TSVpFLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBpc0xhYmVsT25MZWZ0KCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGxhYmVsID0gKHRoaXMuY2FyZERhdGEudmFsdWUgYXMgVmFsdWVTZXR0aW5nKT8ubGFiZWw7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuaXNMYWJlbE9iamVjdChsYWJlbCkgJiYgKGxhYmVsIGFzIExhYmVsU2V0dGluZykucG9zaXRpb24gPT09ICdsZWZ0J1xuICAgICk7XG4gIH1cblxuICBpc0xhYmVsT25SaWdodCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBsYWJlbCA9ICh0aGlzLmNhcmREYXRhLnZhbHVlIGFzIFZhbHVlU2V0dGluZyk/LmxhYmVsO1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmlzTGFiZWxPYmplY3QobGFiZWwpICYmIChsYWJlbCBhcyBMYWJlbFNldHRpbmcpLnBvc2l0aW9uID09PSAncmlnaHQnXG4gICAgKTtcbiAgfVxuXG4gIGdldEJhY2tncm91bmRTdHlsZSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgJ2JhY2tncm91bmQtY29sb3InOlxuICAgICAgICB0aGlzLmNhcmREYXRhLmFwcGVhcmFuY2U/LmJhY2tncm91bmRDb2xvciB8fFxuICAgICAgICBQVE1ldHJpY0NhcmRDb21wb25lbnQuREVGQVVMVF9CQUNLR1JPVU5EX0NPTE9SLFxuICAgIH07XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJtZXRyaWMtY2FyZC1jb250YWluZXJcIlxuICBbbmdTdHlsZV09XCJ7XG4gICAgJ21pbi13aWR0aCc6IGNhcmREYXRhLnNpemU/Lm1pbldpZHRoIHx8ICcxMDAlJyxcbiAgICAnbWF4LXdpZHRoJzogY2FyZERhdGEuc2l6ZT8ubWF4V2lkdGggfHwgJ2NhbGMoMjUlIC0gMTZweCknLFxuICAgIHdpZHRoOiBjYXJkRGF0YS5zaXplPy5maXhlZFdpZHRoIHx8ICdhdXRvJ1xuICB9XCJcbj5cbiAgPGRpdlxuICAgICpuZ0lmPVwiY2FyZERhdGEudmVydGljYWxMaW5lPy5zaG93XCJcbiAgICBjbGFzcz1cInZlcnRpY2FsLWxpbmVcIlxuICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogY2FyZERhdGEudmVydGljYWxMaW5lPy5jb2xvciB8fCAnIzVhNjdkOCdcbiAgICB9XCJcbiAgPjwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJtZXRyaWMtY2FyZFwiIFtuZ1N0eWxlXT1cImdldEJhY2tncm91bmRTdHlsZSgpXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1ldHJpYy1jYXJkLWhlYWRlclwiPlxuICAgICAgPGlcbiAgICAgICAgKm5nSWY9XCJpc0ljb25PYmplY3QoKVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cImdldEljb25UZXh0KClcIlxuICAgICAgICBbbmdTdHlsZV09XCJnZXRJY29uU3R5bGVzKClcIlxuICAgICAgPjwvaT5cbiAgICAgIDxpICpuZ0lmPVwiIWlzSWNvbk9iamVjdCgpXCIgW25nQ2xhc3NdPVwiY2FyZERhdGEuaWNvblwiPjwvaT5cblxuICAgICAgPHNwYW5cbiAgICAgICAgKm5nSWY9XCJpc1RpdGxlT2JqZWN0KClcIlxuICAgICAgICBjbGFzcz1cIm1ldHJpYy1jYXJkLWhlYWRlci10ZXh0XCJcbiAgICAgICAgW25nU3R5bGVdPVwiZ2V0VGl0bGVTdHlsZXMoKVwiXG4gICAgICA+XG4gICAgICAgIHt7IGdldFRpdGxlVGV4dCgpIH19XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhbiAqbmdJZj1cIiFpc1RpdGxlT2JqZWN0KClcIiBjbGFzcz1cIm1ldHJpYy1jYXJkLWhlYWRlci10ZXh0XCI+XG4gICAgICAgIHt7IGNhcmREYXRhLnRpdGxlIH19XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwibWV0cmljLWNhcmQtY29udGVudFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1ldHJpYy12YWx1ZVwiIFtuZ1N0eWxlXT1cImdldFZhbHVlU3R5bGVzKClcIj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAqbmdJZj1cImlzTGFiZWxPbkxlZnQoKVwiXG4gICAgICAgICAgY2xhc3M9XCJ2YWx1ZS1sYWJlbFwiXG4gICAgICAgICAgW25nU3R5bGVdPVwiZ2V0TGFiZWxTdHlsZXMoJ2xlZnQnKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBnZXRMYWJlbFRleHQoKSB9fVxuICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgPHNwYW4gW25nU3R5bGVdPVwiZ2V0VmFsdWVTdHlsZXMoKVwiPnt7IGdldFZhbHVlVGV4dCgpIH19PC9zcGFuPlxuXG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgKm5nSWY9XCJpc0xhYmVsT25SaWdodCgpXCJcbiAgICAgICAgICBjbGFzcz1cInZhbHVlLWxhYmVsXCJcbiAgICAgICAgICBbbmdTdHlsZV09XCJnZXRMYWJlbFN0eWxlcygncmlnaHQnKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBnZXRMYWJlbFRleHQoKSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cImNhcmREYXRhLmRpdmlkZXI/LnNob3dcIlxuICAgICAgICBjbGFzcz1cIm1ldHJpYy1kaXZpZGVyXCJcbiAgICAgICAgW25nU3R5bGVdPVwieyBiYWNrZ3JvdW5kQ29sb3I6IGNhcmREYXRhLmRpdmlkZXI/LmNvbG9yIHx8ICcjZTJlOGYwJyB9XCJcbiAgICAgID48L2Rpdj5cblxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cImlzQWRkaXRpb25hbEluZm9PYmplY3QoKVwiXG4gICAgICAgIGNsYXNzPVwibWV0cmljLWFkZGl0aW9uYWwtaW5mb1wiXG4gICAgICAgIFtuZ1N0eWxlXT1cImdldEFkZGl0aW9uYWxJbmZvU3R5bGVzKClcIlxuICAgICAgPlxuICAgICAgICB7eyBnZXRBZGRpdGlvbmFsSW5mb1RleHQoKSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiIWlzQWRkaXRpb25hbEluZm9PYmplY3QoKVwiXG4gICAgICAgIGNsYXNzPVwibWV0cmljLWFkZGl0aW9uYWwtaW5mb1wiXG4gICAgICAgIFtuZ1N0eWxlXT1cImdldEFkZGl0aW9uYWxJbmZvU3R5bGVzKClcIlxuICAgICAgPlxuICAgICAgICB7eyBjYXJkRGF0YS5hZGRpdGlvbmFsSW5mbyB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
174
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtbWV0cmljLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctcHJpbWUtdG9vbHMvc3JjL2xpYi9wdC1tZXRyaWMtY2FyZC9wdC1tZXRyaWMtY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LW1ldHJpYy1jYXJkL3B0LW1ldHJpYy1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFjakQsTUFBTSxPQUFPLHFCQUFxQjthQUNSLHVCQUFrQixHQUFHLFNBQVMsQUFBWixDQUFhO2FBQy9CLHNCQUFpQixHQUFHLE1BQU0sQUFBVCxDQUFVO2FBQzNCLHdCQUFtQixHQUFHLFNBQVMsQUFBWixDQUFhO2FBQ2hDLHVCQUFrQixHQUFHLE1BQU0sQUFBVCxDQUFVO2FBQzVCLHdCQUFtQixHQUFHLFNBQVMsQUFBWixDQUFhO2FBQ2hDLHVCQUFrQixHQUFHLE1BQU0sQUFBVCxDQUFVO2FBQzVCLHdCQUFtQixHQUFHLFNBQVMsQUFBWixDQUFhO2FBQ2hDLHVCQUFrQixHQUFHLE1BQU0sQUFBVCxDQUFVO2FBQzVCLGtDQUE2QixHQUFHLE1BQU0sQUFBVCxDQUFVO2FBQ3ZDLGlDQUE0QixHQUFHLE1BQU0sQUFBVCxDQUFVO2FBQ3RDLDZCQUF3QixHQUFHLE1BQU0sQUFBVCxDQUFVO0lBSTFELFlBQVk7UUFDVixPQUFPLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDO0lBQ2hELENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQztJQUNqRCxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sT0FB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QUMsUUFBUSxDQUFDLElBQUksRUFBRSxRQUFRLElBQUksTUFBTTtZQUNuRCxXQUFXLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxJQUFJLGtCQUFrQjtZQUMvRCxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsVUFBVSxJQUFJLE1BQU07U0FDaEQsQ0FBQztJQUNKLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsT0FBTztZQUNMLGtCQUFrQixFQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxlQUFlO2dCQUN6QyxxQkFBcUIsQ0FBQyx3QkFBd0I7WUFDaEQsV0FBVyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsSUFBSSxNQUFNO1lBQ25ELFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxRQUFRLElBQUksa0JBQWtCO1lBQy9ELEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxVQUFVLElBQUksTUFBTTtTQUNoRCxDQUFDO0lBQ0osQ0FBQzsrR0EvTFUscUJBQXFCO21HQUFyQixxQkFBcUIsd0ZDZGxDLGlsRUEwRUE7OzRGRDVEYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsZ0JBQWdCOzhCQWlCakIsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIExhYmVsU2V0dGluZyxcbiAgTWV0cmljQ2FyZERhdGEsXG4gIFZhbHVlU2V0dGluZyxcbiAgSWNvblN0eWxlLFxuICBUZXh0U3R5bGUsXG59IGZyb20gJy4uL21vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3B0LW1ldHJpYy1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3B0LW1ldHJpYy1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHQtbWV0cmljLWNhcmQuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBQVE1ldHJpY0NhcmRDb21wb25lbnQge1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0lDT05fQ09MT1IgPSAnIzVhNjdkOCc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfSUNPTl9TSVpFID0gJzI0cHgnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBERUZBVUxUX1RJVExFX0NPTE9SID0gJyM1YTY3ZDgnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBERUZBVUxUX1RJVExFX1NJWkUgPSAnMTZweCc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfVkFMVUVfQ09MT1IgPSAnIzJkMzc0OCc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfVkFMVUVfU0laRSA9ICczMnB4JztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9MQUJFTF9DT0xPUiA9ICcjNzE4MDk2JztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9MQUJFTF9TSVpFID0gJzE0cHgnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0FERElUSU9OQUxfSU5GT19DT0xPUiA9ICdncmF5JztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9BRERJVElPTkFMX0lORk9fU0laRSA9ICcxNHB4JztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9CQUNLR1JPVU5EX0NPTE9SID0gJyNmZmYnO1xuXG4gIEBJbnB1dCgpIGNhcmREYXRhITogTWV0cmljQ2FyZERhdGE7XG5cbiAgaXNJY29uT2JqZWN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5jYXJkRGF0YS5pY29uID09PSAnb2JqZWN0JztcbiAgfVxuXG4gIGlzVGl0bGVPYmplY3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLmNhcmREYXRhLnRpdGxlID09PSAnb2JqZWN0JztcbiAgfVxuXG4gIGlzVmFsdWVPYmplY3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLmNhcmREYXRhLnZhbHVlID09PSAnb2JqZWN0JztcbiAgfVxuXG4gIGlzTGFiZWxPYmplY3QobGFiZWw6IExhYmVsU2V0dGluZyB8IHN0cmluZyB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eXBlb2YgbGFiZWwgPT09ICdvYmplY3QnO1xuICB9XG5cbiAgaXNBZGRpdGlvbmFsSW5mb09iamVjdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHlwZW9mIHRoaXMuY2FyZERhdGEuYWRkaXRpb25hbEluZm8gPT09ICdvYmplY3QnO1xuICB9XG5cbiAgZ2V0SWNvblRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pc0ljb25PYmplY3QoKVxuICAgICAgPyAodGhpcy5jYXJkRGF0YS5pY29uIGFzIEljb25TdHlsZSkuY29kZVxuICAgICAgOiAodGhpcy5jYXJkRGF0YS5pY29uIGFzIHN0cmluZyk7XG4gIH1cblxuICBnZXRUaXRsZVRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pc1RpdGxlT2JqZWN0KClcbiAgICAgID8gKHRoaXMuY2FyZERhdGEudGl0bGUgYXMgVGV4dFN0eWxlKS50ZXh0XG4gICAgICA6ICh0aGlzLmNhcmREYXRhLnRpdGxlIGFzIHN0cmluZyk7XG4gIH1cblxuICBnZXRWYWx1ZVRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbHVlT2JqZWN0KClcbiAgICAgID8gKHRoaXMuY2FyZERhdGEudmFsdWUgYXMgVmFsdWVTZXR0aW5nKS50ZXh0XG4gICAgICA6ICh0aGlzLmNhcmREYXRhLnZhbHVlIGFzIHN0cmluZyk7XG4gIH1cblxuICBnZXRMYWJlbFRleHQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBsYWJlbCA9ICh0aGlzLmNhcmREYXRhLnZhbHVlIGFzIFZhbHVlU2V0dGluZyk/LmxhYmVsO1xuICAgIHJldHVybiB0aGlzLmlzTGFiZWxPYmplY3QobGFiZWwpXG4gICAgICA/IChsYWJlbCBhcyBMYWJlbFNldHRpbmcpLnRleHRcbiAgICAgIDogKGxhYmVsIGFzIHN0cmluZyk7XG4gIH1cblxuICBnZXRBZGRpdGlvbmFsSW5mb1RleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pc0FkZGl0aW9uYWxJbmZvT2JqZWN0KClcbiAgICAgID8gKHRoaXMuY2FyZERhdGEuYWRkaXRpb25hbEluZm8gYXMgVGV4dFN0eWxlKS50ZXh0XG4gICAgICA6ICh0aGlzLmNhcmREYXRhLmFkZGl0aW9uYWxJbmZvIGFzIHN0cmluZyk7XG4gIH1cblxuICBnZXRJY29uU3R5bGVzKCkge1xuICAgIGlmICh0aGlzLmlzSWNvbk9iamVjdCgpKSB7XG4gICAgICBjb25zdCBpY29uID0gdGhpcy5jYXJkRGF0YS5pY29uIGFzIEljb25TdHlsZTtcbiAgICAgIGNvbnN0IHNoYXBlID0gaWNvbi5zaGFwZSB8fCAnY2lyY3VsYXInOyAvLyBEZWZhdWx0IHRvICdjaXJjdWxhcicgaWYgbm90IHNwZWNpZmllZFxuXG4gICAgICAvLyBEZXRlcm1pbmUgYm9yZGVyIHJhZGl1cyBiYXNlZCBvbiBzaGFwZVxuICAgICAgY29uc3QgYm9yZGVyUmFkaXVzID0gc2hhcGUgPT09ICdjaXJjdWxhcicgPyAnNTAlJyA6ICc4cHgnO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb2xvcjogaWNvbi5jb2xvciB8fCBQVE1ldHJpY0NhcmRDb21wb25lbnQuREVGQVVMVF9JQ09OX0NPTE9SLFxuICAgICAgICBmb250U2l6ZTogaWNvbi5mb250U2l6ZSB8fCBQVE1ldHJpY0NhcmRDb21wb25lbnQuREVGQVVMVF9JQ09OX1NJWkUsXG4gICAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogaWNvbi5iYWNrZ3JvdW5kQ29sb3IgfHwgJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgJ2JvcmRlci1yYWRpdXMnOiBib3JkZXJSYWRpdXMsXG4gICAgICAgIHBhZGRpbmc6ICc2cHgnLFxuICAgICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIGdldFRpdGxlU3R5bGVzKCkge1xuICAgIGlmICh0aGlzLmlzVGl0bGVPYmplY3QoKSkge1xuICAgICAgY29uc3QgdGl0bGUgPSB0aGlzLmNhcmREYXRhLnRpdGxlIGFzIFRleHRTdHlsZTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbG9yOiB0aXRsZS5jb2xvciB8fCBQVE1ldHJpY0NhcmRDb21wb25lbnQuREVGQVVMVF9USVRMRV9DT0xPUixcbiAgICAgICAgZm9udFNpemU6IHRpdGxlLmZvbnRTaXplIHx8IFBUTWV0cmljQ2FyZENvbXBvbmVudC5ERUZBVUxUX1RJVExFX1NJWkUsXG4gICAgICAgIGZvbnRXZWlnaHQ6IHRpdGxlLmZvbnRXZWlnaHQgfHwgJ25vcm1hbCcsXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4ge307XG4gIH1cblxuICBnZXRWYWx1ZVN0eWxlcygpIHtcbiAgICBpZiAodGhpcy5pc1ZhbHVlT2JqZWN0KCkpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5jYXJkRGF0YS52YWx1ZSBhcyBWYWx1ZVNldHRpbmc7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb2xvcjogdmFsdWUuY29sb3IgfHwgUFRNZXRyaWNDYXJkQ29tcG9uZW50LkRFRkFVTFRfVkFMVUVfQ09MT1IsXG4gICAgICAgIGZvbnRTaXplOiB2YWx1ZS5mb250U2l6ZSB8fCBQVE1ldHJpY0NhcmRDb21wb25lbnQuREVGQVVMVF9WQUxVRV9TSVpFLFxuICAgICAgICBmb250V2VpZ2h0OiB2YWx1ZS5mb250V2VpZ2h0IHx8ICdib2xkJyxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbG9yOiBQVE1ldHJpY0NhcmRDb21wb25lbnQuREVGQVVMVF9WQUxVRV9DT0xPUixcbiAgICAgICAgZm9udFNpemU6IFBUTWV0cmljQ2FyZENvbXBvbmVudC5ERUZBVUxUX1ZBTFVFX1NJWkUsXG4gICAgICAgIGZvbnRXZWlnaHQ6ICdib2xkJyxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgZ2V0TGFiZWxTdHlsZXMocG9zaXRpb246ICdsZWZ0JyB8ICdyaWdodCcpIHtcbiAgICBjb25zdCBsYWJlbCA9ICh0aGlzLmNhcmREYXRhLnZhbHVlIGFzIFZhbHVlU2V0dGluZyk/LmxhYmVsO1xuICAgIGlmIChcbiAgICAgIHRoaXMuaXNMYWJlbE9iamVjdChsYWJlbCkgJiZcbiAgICAgIChsYWJlbCBhcyBMYWJlbFNldHRpbmcpLnBvc2l0aW9uID09PSBwb3NpdGlvblxuICAgICkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29sb3I6XG4gICAgICAgICAgKGxhYmVsIGFzIExhYmVsU2V0dGluZykuY29sb3IgfHxcbiAgICAgICAgICBQVE1ldHJpY0NhcmRDb21wb25lbnQuREVGQVVMVF9MQUJFTF9DT0xPUixcbiAgICAgICAgZm9udFNpemU6XG4gICAgICAgICAgKGxhYmVsIGFzIExhYmVsU2V0dGluZykuZm9udFNpemUgfHxcbiAgICAgICAgICBQVE1ldHJpY0NhcmRDb21wb25lbnQuREVGQVVMVF9MQUJFTF9TSVpFLFxuICAgICAgICBmb250V2VpZ2h0OiAobGFiZWwgYXMgTGFiZWxTZXR0aW5nKS5mb250V2VpZ2h0IHx8ICdub3JtYWwnLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29sb3I6IFBUTWV0cmljQ2FyZENvbXBvbmVudC5ERUZBVUxUX0xBQkVMX0NPTE9SLFxuICAgICAgICBmb250U2l6ZTogUFRNZXRyaWNDYXJkQ29tcG9uZW50LkRFRkFVTFRfTEFCRUxfU0laRSxcbiAgICAgICAgZm9udFdlaWdodDogJ25vcm1hbCcsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIGdldEFkZGl0aW9uYWxJbmZvU3R5bGVzKCkge1xuICAgIGlmICh0aGlzLmlzQWRkaXRpb25hbEluZm9PYmplY3QoKSkge1xuICAgICAgY29uc3QgYWRkaXRpb25hbEluZm8gPSB0aGlzLmNhcmREYXRhLmFkZGl0aW9uYWxJbmZvIGFzIFRleHRTdHlsZTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbG9yOlxuICAgICAgICAgIGFkZGl0aW9uYWxJbmZvLmNvbG9yIHx8XG4gICAgICAgICAgUFRNZXRyaWNDYXJkQ29tcG9uZW50LkRFRkFVTFRfQURESVRJT05BTF9JTkZPX0NPTE9SLFxuICAgICAgICBmb250U2l6ZTpcbiAgICAgICAgICBhZGRpdGlvbmFsSW5mby5mb250U2l6ZSB8fFxuICAgICAgICAgIFBUTWV0cmljQ2FyZENvbXBvbmVudC5ERUZBVUxUX0FERElUSU9OQUxfSU5GT19TSVpFLFxuICAgICAgICBmb250V2VpZ2h0OiBhZGRpdGlvbmFsSW5mby5mb250V2VpZ2h0IHx8ICdub3JtYWwnLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29sb3I6IFBUTWV0cmljQ2FyZENvbXBvbmVudC5ERUZBVUxUX0FERElUSU9OQUxfSU5GT19DT0xPUixcbiAgICAgICAgZm9udFNpemU6IFBUTWV0cmljQ2FyZENvbXBvbmVudC5ERUZBVUxUX0FERElUSU9OQUxfSU5GT19TSVpFLFxuICAgICAgICBmb250V2VpZ2h0OiAnbm9ybWFsJyxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgaXNMYWJlbE9uTGVmdCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBsYWJlbCA9ICh0aGlzLmNhcmREYXRhLnZhbHVlIGFzIFZhbHVlU2V0dGluZyk/LmxhYmVsO1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmlzTGFiZWxPYmplY3QobGFiZWwpICYmIChsYWJlbCBhcyBMYWJlbFNldHRpbmcpLnBvc2l0aW9uID09PSAnbGVmdCdcbiAgICApO1xuICB9XG5cbiAgaXNMYWJlbE9uUmlnaHQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgbGFiZWwgPSAodGhpcy5jYXJkRGF0YS52YWx1ZSBhcyBWYWx1ZVNldHRpbmcpPy5sYWJlbDtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5pc0xhYmVsT2JqZWN0KGxhYmVsKSAmJiAobGFiZWwgYXMgTGFiZWxTZXR0aW5nKS5wb3NpdGlvbiA9PT0gJ3JpZ2h0J1xuICAgICk7XG4gIH1cblxuICBnZXRNZXRyaWNDYXJkQ29udGFpbmVyU3R5bGUoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdtaW4td2lkdGgnOiB0aGlzLmNhcmREYXRhLnNpemU/Lm1pbldpZHRoIHx8ICcxMDAlJyxcbiAgICAgICdtYXgtd2lkdGgnOiB0aGlzLmNhcmREYXRhLnNpemU/Lm1heFdpZHRoIHx8ICdjYWxjKDI1JSAtIDE2cHgpJyxcbiAgICAgIHdpZHRoOiB0aGlzLmNhcmREYXRhLnNpemU/LmZpeGVkV2lkdGggfHwgJ2F1dG8nLFxuICAgIH07XG4gIH1cblxuICBnZXRNZXRyaWNDYXJkU3R5bGUoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzpcbiAgICAgICAgdGhpcy5jYXJkRGF0YS5hcHBlYXJhbmNlPy5iYWNrZ3JvdW5kQ29sb3IgfHxcbiAgICAgICAgUFRNZXRyaWNDYXJkQ29tcG9uZW50LkRFRkFVTFRfQkFDS0dST1VORF9DT0xPUixcbiAgICAgICdtaW4td2lkdGgnOiB0aGlzLmNhcmREYXRhLnNpemU/Lm1pbldpZHRoIHx8ICcxMDAlJyxcbiAgICAgICdtYXgtd2lkdGgnOiB0aGlzLmNhcmREYXRhLnNpemU/Lm1heFdpZHRoIHx8ICdjYWxjKDI1JSAtIDE2cHgpJyxcbiAgICAgIHdpZHRoOiB0aGlzLmNhcmREYXRhLnNpemU/LmZpeGVkV2lkdGggfHwgJ2F1dG8nLFxuICAgIH07XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtZXRyaWMtY2FyZC1jb250YWluZXJcIiBbbmdTdHlsZV09XCJnZXRNZXRyaWNDYXJkQ29udGFpbmVyU3R5bGUoKVwiPlxuICA8ZGl2XG4gICAgKm5nSWY9XCJjYXJkRGF0YS52ZXJ0aWNhbExpbmU/LnNob3dcIlxuICAgIGNsYXNzPVwidmVydGljYWwtbGluZVwiXG4gICAgW25nU3R5bGVdPVwie1xuICAgICAgJ2JhY2tncm91bmQtY29sb3InOiBjYXJkRGF0YS52ZXJ0aWNhbExpbmU/LmNvbG9yIHx8ICcjNWE2N2Q4J1xuICAgIH1cIlxuICA+PC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIm1ldHJpYy1jYXJkXCIgW25nU3R5bGVdPVwiZ2V0TWV0cmljQ2FyZFN0eWxlKClcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWV0cmljLWNhcmQtaGVhZGVyXCI+XG4gICAgICA8aVxuICAgICAgICAqbmdJZj1cImlzSWNvbk9iamVjdCgpXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiZ2V0SWNvblRleHQoKVwiXG4gICAgICAgIFtuZ1N0eWxlXT1cImdldEljb25TdHlsZXMoKVwiXG4gICAgICA+PC9pPlxuICAgICAgPGkgKm5nSWY9XCIhaXNJY29uT2JqZWN0KClcIiBbbmdDbGFzc109XCJjYXJkRGF0YS5pY29uXCI+PC9pPlxuXG4gICAgICA8c3BhblxuICAgICAgICAqbmdJZj1cImlzVGl0bGVPYmplY3QoKVwiXG4gICAgICAgIGNsYXNzPVwibWV0cmljLWNhcmQtaGVhZGVyLXRleHRcIlxuICAgICAgICBbbmdTdHlsZV09XCJnZXRUaXRsZVN0eWxlcygpXCJcbiAgICAgID5cbiAgICAgICAge3sgZ2V0VGl0bGVUZXh0KCkgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuICpuZ0lmPVwiIWlzVGl0bGVPYmplY3QoKVwiIGNsYXNzPVwibWV0cmljLWNhcmQtaGVhZGVyLXRleHRcIj5cbiAgICAgICAge3sgY2FyZERhdGEudGl0bGUgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJtZXRyaWMtY2FyZC1jb250ZW50XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWV0cmljLXZhbHVlXCIgW25nU3R5bGVdPVwiZ2V0VmFsdWVTdHlsZXMoKVwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICpuZ0lmPVwiaXNMYWJlbE9uTGVmdCgpXCJcbiAgICAgICAgICBjbGFzcz1cInZhbHVlLWxhYmVsXCJcbiAgICAgICAgICBbbmdTdHlsZV09XCJnZXRMYWJlbFN0eWxlcygnbGVmdCcpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGdldExhYmVsVGV4dCgpIH19XG4gICAgICAgIDwvc3Bhbj5cblxuICAgICAgICA8c3BhbiBbbmdTdHlsZV09XCJnZXRWYWx1ZVN0eWxlcygpXCI+e3sgZ2V0VmFsdWVUZXh0KCkgfX08L3NwYW4+XG5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAqbmdJZj1cImlzTGFiZWxPblJpZ2h0KClcIlxuICAgICAgICAgIGNsYXNzPVwidmFsdWUtbGFiZWxcIlxuICAgICAgICAgIFtuZ1N0eWxlXT1cImdldExhYmVsU3R5bGVzKCdyaWdodCcpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGdldExhYmVsVGV4dCgpIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiY2FyZERhdGEuZGl2aWRlcj8uc2hvd1wiXG4gICAgICAgIGNsYXNzPVwibWV0cmljLWRpdmlkZXJcIlxuICAgICAgICBbbmdTdHlsZV09XCJ7IGJhY2tncm91bmRDb2xvcjogY2FyZERhdGEuZGl2aWRlcj8uY29sb3IgfHwgJyNlMmU4ZjAnIH1cIlxuICAgICAgPjwvZGl2PlxuXG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiaXNBZGRpdGlvbmFsSW5mb09iamVjdCgpXCJcbiAgICAgICAgY2xhc3M9XCJtZXRyaWMtYWRkaXRpb25hbC1pbmZvXCJcbiAgICAgICAgW25nU3R5bGVdPVwiZ2V0QWRkaXRpb25hbEluZm9TdHlsZXMoKVwiXG4gICAgICA+XG4gICAgICAgIHt7IGdldEFkZGl0aW9uYWxJbmZvVGV4dCgpIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCIhaXNBZGRpdGlvbmFsSW5mb09iamVjdCgpXCJcbiAgICAgICAgY2xhc3M9XCJtZXRyaWMtYWRkaXRpb25hbC1pbmZvXCJcbiAgICAgICAgW25nU3R5bGVdPVwiZ2V0QWRkaXRpb25hbEluZm9TdHlsZXMoKVwiXG4gICAgICA+XG4gICAgICAgIHt7IGNhcmREYXRhLmFkZGl0aW9uYWxJbmZvIH19XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -18,6 +18,8 @@ export class PTNavbarMenuComponent {
18
18
  static { this.DEFAULT_APP_NAME_FONT_SIZE = '24px'; }
19
19
  static { this.DEFAULT_TRANSPARENCY = '100'; }
20
20
  static { this.DEFAULT_ICON_COLOR = '#333'; }
21
+ static { this.DEFAULT_TOGGLE_BUTTON_ICON = 'pi pi-bars'; }
22
+ static { this.DEFAULT_TOGGLE_BUTTON_COLOR = '#333'; }
21
23
  isImageStyle(object) {
22
24
  return typeof object === 'object' && 'imageUrl' in object;
23
25
  }
@@ -70,28 +72,53 @@ export class PTNavbarMenuComponent {
70
72
  getNavbarStyles() {
71
73
  const transparency = this.navBarMenuConfig.pattern?.transparencyPercentage ||
72
74
  PTNavbarMenuComponent.DEFAULT_TRANSPARENCY;
73
- const backgroundImage = this.navBarMenuConfig.pattern
74
- ? `linear-gradient(rgba(255, 255, 255, ${1 - parseFloat(transparency) / 100}), rgba(255, 255, 255, ${1 - parseFloat(transparency) / 100})), url(${this.navBarMenuConfig.pattern.imageUrl})`
75
+ const imageUrl = this.navBarMenuConfig.pattern?.imageUrl || '';
76
+ const patternWidth = this.navBarMenuConfig.pattern?.width || '100%';
77
+ const patternHeight = this.navBarMenuConfig.pattern?.height || 'auto';
78
+ // Determine background-repeat value
79
+ const repeatX = this.navBarMenuConfig.pattern?.repeatX
80
+ ? 'repeat'
81
+ : 'no-repeat';
82
+ const repeatY = this.navBarMenuConfig.pattern?.repeatY
83
+ ? 'repeat'
84
+ : 'no-repeat';
85
+ const backgroundRepeat = `${repeatX} ${repeatY}`;
86
+ // Use the position directly from the pattern configuration
87
+ const backgroundPosition = this.navBarMenuConfig.pattern?.position || 'center';
88
+ // Construct the background image style with transparency
89
+ const backgroundImage = imageUrl
90
+ ? `linear-gradient(rgba(255, 255, 255, ${1 - parseFloat(transparency) / 100}), rgba(255, 255, 255, ${1 - parseFloat(transparency) / 100})), url(${imageUrl})`
75
91
  : '';
76
92
  return {
77
93
  backgroundColor: this.navBarMenuConfig.pattern ? 'transparent' : '#fff',
78
94
  backgroundImage: backgroundImage,
79
- backgroundSize: 'cover',
80
- backgroundPosition: 'center',
95
+ backgroundSize: `${patternWidth} ${patternHeight}`,
96
+ backgroundPosition: backgroundPosition,
97
+ backgroundRepeat: backgroundRepeat,
81
98
  };
82
99
  }
83
100
  toggleMenu() {
84
101
  this.toggleSidebar.emit();
85
102
  }
103
+ getToggleButtonIcon() {
104
+ return (this.navBarMenuConfig.toggleButtonIcon ||
105
+ PTNavbarMenuComponent.DEFAULT_TOGGLE_BUTTON_ICON);
106
+ }
107
+ getToggleButtonStyles() {
108
+ return {
109
+ color: this.navBarMenuConfig.toggleButtonColor ||
110
+ PTNavbarMenuComponent.DEFAULT_TOGGLE_BUTTON_COLOR,
111
+ };
112
+ }
86
113
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTNavbarMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
87
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PTNavbarMenuComponent, selector: "pt-nav-bar-menu", inputs: { navBarMenuConfig: "navBarMenuConfig" }, outputs: { toggleSidebar: "toggleSidebar" }, ngImport: i0, template: "<div class=\"pt-nav-bar-menu\" [ngStyle]=\"getNavbarStyles()\">\n <div class=\"navbar-left\">\n <a\n [routerLink]=\"\n isImageStyle(navBarMenuConfig.logo)\n ? navBarMenuConfig.logo.routerLink\n : '/'\n \"\n class=\"logo-link\"\n >\n <img\n [src]=\"getLogoUrl()\"\n [alt]=\"getLogoAltText()\"\n [ngStyle]=\"getLogoStyles()\"\n class=\"navbar-logo\"\n />\n <span class=\"navbar-title\" [ngStyle]=\"getAppNameStyles()\">\n {{ getAppName() }}\n </span>\n </a>\n <a (click)=\"toggleMenu()\" class=\"toggle-btn\">\n <i class=\"pi pi-bars\"></i>\n </a>\n </div>\n <div class=\"navbar-right\">\n <pt-menu-fancy\n *ngFor=\"let menuConfig of navBarMenuConfig.menus\"\n [config]=\"menuConfig\"\n ></pt-menu-fancy>\n </div>\n</div>\n", styles: [".pt-nav-bar-menu{display:flex;justify-content:space-between;align-items:center;padding:10px;border-bottom:1px solid #ddd;background-color:#fff;background-size:cover;background-position:center}.pt-nav-bar-menu .navbar-left{display:flex;align-items:center}.pt-nav-bar-menu .logo-link{display:flex;align-items:center;text-decoration:none;color:inherit}.pt-nav-bar-menu .navbar-logo{margin-left:10px;margin-right:20px}.pt-nav-bar-menu .navbar-right{display:flex;align-items:center}.pt-nav-bar-menu .navbar-right a{margin-left:20px;color:#333;text-decoration:none;font-size:20px;cursor:pointer}.pt-nav-bar-menu .navbar-right a:hover{color:#000;cursor:pointer}.pt-nav-bar-menu .toggle-btn>.pi.pi-bars{font-size:1.5rem;color:#333}.pt-nav-bar-menu .toggle-btn:hover{background-color:#f1f1f1}.pt-nav-bar-menu .toggle-btn{margin-left:2rem;cursor:pointer;padding:7px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i3.PTMenuFancyComponent, selector: "pt-menu-fancy", inputs: ["config"] }] }); }
114
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PTNavbarMenuComponent, selector: "pt-nav-bar-menu", inputs: { navBarMenuConfig: "navBarMenuConfig" }, outputs: { toggleSidebar: "toggleSidebar" }, ngImport: i0, template: "<div class=\"pt-nav-bar-menu\" [ngStyle]=\"getNavbarStyles()\">\n <div class=\"navbar-left\">\n <a\n [routerLink]=\"\n isImageStyle(navBarMenuConfig.logo)\n ? navBarMenuConfig.logo.routerLink\n : '/'\n \"\n class=\"logo-link\"\n >\n <img\n [src]=\"getLogoUrl()\"\n [alt]=\"getLogoAltText()\"\n [ngStyle]=\"getLogoStyles()\"\n class=\"navbar-logo\"\n />\n <span class=\"navbar-title\" [ngStyle]=\"getAppNameStyles()\">\n {{ getAppName() }}\n </span>\n </a>\n <!-- Toggle Button -->\n <a (click)=\"toggleMenu()\" class=\"toggle-btn\">\n <i\n [class]=\"getToggleButtonIcon()\"\n [ngStyle]=\"getToggleButtonStyles()\"\n ></i>\n </a>\n </div>\n <div class=\"navbar-right\">\n <pt-menu-fancy\n *ngFor=\"let menuConfig of navBarMenuConfig.menus\"\n [config]=\"menuConfig\"\n ></pt-menu-fancy>\n </div>\n</div>\n", styles: [".pt-nav-bar-menu{display:flex;justify-content:space-between;align-items:center;padding:10px;border-bottom:1px solid #ddd;background-color:#fff;background-size:cover;background-position:center}.pt-nav-bar-menu .navbar-left{display:flex;align-items:center}.pt-nav-bar-menu .logo-link{display:flex;align-items:center;text-decoration:none;color:inherit}.pt-nav-bar-menu .navbar-logo{margin-left:10px;margin-right:20px}.pt-nav-bar-menu .navbar-right{display:flex;align-items:center}.pt-nav-bar-menu .navbar-right a{margin-left:20px;color:#333;text-decoration:none;font-size:20px;cursor:pointer}.pt-nav-bar-menu .navbar-right a:hover{color:#000;cursor:pointer}.pt-nav-bar-menu .toggle-btn>.pi.pi-bars{font-size:1.5rem;color:#333}.pt-nav-bar-menu .toggle-btn:hover{background-color:#f1f1f1}.pt-nav-bar-menu .toggle-btn{margin-left:2rem;cursor:pointer;padding:7px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i3.PTMenuFancyComponent, selector: "pt-menu-fancy", inputs: ["config"] }] }); }
88
115
  }
89
116
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTNavbarMenuComponent, decorators: [{
90
117
  type: Component,
91
- args: [{ selector: 'pt-nav-bar-menu', template: "<div class=\"pt-nav-bar-menu\" [ngStyle]=\"getNavbarStyles()\">\n <div class=\"navbar-left\">\n <a\n [routerLink]=\"\n isImageStyle(navBarMenuConfig.logo)\n ? navBarMenuConfig.logo.routerLink\n : '/'\n \"\n class=\"logo-link\"\n >\n <img\n [src]=\"getLogoUrl()\"\n [alt]=\"getLogoAltText()\"\n [ngStyle]=\"getLogoStyles()\"\n class=\"navbar-logo\"\n />\n <span class=\"navbar-title\" [ngStyle]=\"getAppNameStyles()\">\n {{ getAppName() }}\n </span>\n </a>\n <a (click)=\"toggleMenu()\" class=\"toggle-btn\">\n <i class=\"pi pi-bars\"></i>\n </a>\n </div>\n <div class=\"navbar-right\">\n <pt-menu-fancy\n *ngFor=\"let menuConfig of navBarMenuConfig.menus\"\n [config]=\"menuConfig\"\n ></pt-menu-fancy>\n </div>\n</div>\n", styles: [".pt-nav-bar-menu{display:flex;justify-content:space-between;align-items:center;padding:10px;border-bottom:1px solid #ddd;background-color:#fff;background-size:cover;background-position:center}.pt-nav-bar-menu .navbar-left{display:flex;align-items:center}.pt-nav-bar-menu .logo-link{display:flex;align-items:center;text-decoration:none;color:inherit}.pt-nav-bar-menu .navbar-logo{margin-left:10px;margin-right:20px}.pt-nav-bar-menu .navbar-right{display:flex;align-items:center}.pt-nav-bar-menu .navbar-right a{margin-left:20px;color:#333;text-decoration:none;font-size:20px;cursor:pointer}.pt-nav-bar-menu .navbar-right a:hover{color:#000;cursor:pointer}.pt-nav-bar-menu .toggle-btn>.pi.pi-bars{font-size:1.5rem;color:#333}.pt-nav-bar-menu .toggle-btn:hover{background-color:#f1f1f1}.pt-nav-bar-menu .toggle-btn{margin-left:2rem;cursor:pointer;padding:7px}\n"] }]
118
+ args: [{ selector: 'pt-nav-bar-menu', template: "<div class=\"pt-nav-bar-menu\" [ngStyle]=\"getNavbarStyles()\">\n <div class=\"navbar-left\">\n <a\n [routerLink]=\"\n isImageStyle(navBarMenuConfig.logo)\n ? navBarMenuConfig.logo.routerLink\n : '/'\n \"\n class=\"logo-link\"\n >\n <img\n [src]=\"getLogoUrl()\"\n [alt]=\"getLogoAltText()\"\n [ngStyle]=\"getLogoStyles()\"\n class=\"navbar-logo\"\n />\n <span class=\"navbar-title\" [ngStyle]=\"getAppNameStyles()\">\n {{ getAppName() }}\n </span>\n </a>\n <!-- Toggle Button -->\n <a (click)=\"toggleMenu()\" class=\"toggle-btn\">\n <i\n [class]=\"getToggleButtonIcon()\"\n [ngStyle]=\"getToggleButtonStyles()\"\n ></i>\n </a>\n </div>\n <div class=\"navbar-right\">\n <pt-menu-fancy\n *ngFor=\"let menuConfig of navBarMenuConfig.menus\"\n [config]=\"menuConfig\"\n ></pt-menu-fancy>\n </div>\n</div>\n", styles: [".pt-nav-bar-menu{display:flex;justify-content:space-between;align-items:center;padding:10px;border-bottom:1px solid #ddd;background-color:#fff;background-size:cover;background-position:center}.pt-nav-bar-menu .navbar-left{display:flex;align-items:center}.pt-nav-bar-menu .logo-link{display:flex;align-items:center;text-decoration:none;color:inherit}.pt-nav-bar-menu .navbar-logo{margin-left:10px;margin-right:20px}.pt-nav-bar-menu .navbar-right{display:flex;align-items:center}.pt-nav-bar-menu .navbar-right a{margin-left:20px;color:#333;text-decoration:none;font-size:20px;cursor:pointer}.pt-nav-bar-menu .navbar-right a:hover{color:#000;cursor:pointer}.pt-nav-bar-menu .toggle-btn>.pi.pi-bars{font-size:1.5rem;color:#333}.pt-nav-bar-menu .toggle-btn:hover{background-color:#f1f1f1}.pt-nav-bar-menu .toggle-btn{margin-left:2rem;cursor:pointer;padding:7px}\n"] }]
92
119
  }], propDecorators: { navBarMenuConfig: [{
93
120
  type: Input
94
121
  }], toggleSidebar: [{
95
122
  type: Output
96
123
  }] } });
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtbmF2LWJhci1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXByaW1lLXRvb2xzL3NyYy9saWIvcHQtbmF2LWJhci1tZW51L3B0LW5hdi1iYXItbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LW5hdi1iYXItbWVudS9wdC1uYXYtYmFyLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFRdkUsTUFBTSxPQUFPLHFCQUFxQjtJQUxsQztRQU1XLHFCQUFnQixHQUFxQixFQUFFLENBQUM7UUFFdkMsa0JBQWEsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztLQWlHeEU7SUEvRkMsdUNBQXVDO2FBQ2YscUJBQWdCLEdBQVcsRUFBRSxBQUFiLENBQWM7YUFDOUIsMEJBQXFCLEdBQVcsTUFBTSxBQUFqQixDQUFrQjthQUN2Qyx1QkFBa0IsR0FBVyxNQUFNLEFBQWpCLENBQWtCO2FBQ3BDLHdCQUFtQixHQUFXLE1BQU0sQUFBakIsQ0FBa0I7YUFDckMscUJBQWdCLEdBQVcsYUFBYSxBQUF4QixDQUF5QjthQUN6QywyQkFBc0IsR0FBVyxNQUFNLEFBQWpCLENBQWtCO2FBQ3hDLCtCQUEwQixHQUFXLE1BQU0sQUFBakIsQ0FBa0I7YUFDNUMseUJBQW9CLEdBQVcsS0FBSyxBQUFoQixDQUFpQjthQUNyQyx1QkFBa0IsR0FBVyxNQUFNLEFBQWpCLENBQWtCO0lBRTVELFlBQVksQ0FBQyxNQUFXO1FBQ3RCLE9BQU8sT0FBTyxNQUFNLEtBQUssUUFBUSxJQUFJLFVBQVUsSUFBSSxNQUFNLENBQUM7SUFDNUQsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFX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QUFNO1lBQ3ZFLGVBQWUsRUFBRSxlQUFlO1lBQ2hDLGNBQWMsRUFBRSxPQUFPO1lBQ3ZCLGtCQUFrQixFQUFFLFFBQVE7U0FDN0IsQ0FBQztJQUNKLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDOytHQW5HVSxxQkFBcUI7bUdBQXJCLHFCQUFxQixzSkNSbEMsMDFCQStCQTs7NEZEdkJhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxpQkFBaUI7OEJBS2xCLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEltYWdlU3R5bGUsIE5hdkJhck1lbnVDb25maWcsIFRleHRTdHlsZSB9IGZyb20gJy4uL21vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3B0LW5hdi1iYXItbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9wdC1uYXYtYmFyLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wdC1uYXYtYmFyLW1lbnUuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBQVE5hdmJhck1lbnVDb21wb25lbnQge1xuICBASW5wdXQoKSBuYXZCYXJNZW51Q29uZmlnOiBOYXZCYXJNZW51Q29uZmlnID0ge307XG5cbiAgQE91dHB1dCgpIHRvZ2dsZVNpZGViYXI6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvLyBEZWZhdWx0IHZhbHVlcyBhcyByZWFkb25seSB2YXJpYWJsZXNcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9MT0dPX1VSTDogc3RyaW5nID0gJyc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfTE9HT19BTFRfVEVYVDogc3RyaW5nID0gJ0xvZ28nO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0xPR09fV0lEVEg6IHN0cmluZyA9ICc0MHB4JztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9MT0dPX0hFSUdIVDogc3RyaW5nID0gJ2F1dG8nO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0FQUF9OQU1FOiBzdHJpbmcgPSAnQXBwbGljYXRpb24nO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0FQUF9OQU1FX0NPTE9SOiBzdHJpbmcgPSAnIzAwMCc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfQVBQX05BTUVfRk9OVF9TSVpFOiBzdHJpbmcgPSAnMjRweCc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfVFJBTlNQQVJFTkNZOiBzdHJpbmcgPSAnMTAwJztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9JQ09OX0NPTE9SOiBzdHJpbmcgPSAnIzMzMyc7XG5cbiAgaXNJbWFnZVN0eWxlKG9iamVjdDogYW55KTogb2JqZWN0IGlzIEltYWdlU3R5bGUge1xuICAgIHJldHVybiB0eXBlb2Ygb2JqZWN0ID09PSAnb2JqZWN0JyAmJiAnaW1hZ2VVcmwnIGluIG9iamVjdDtcbiAgfVxuXG4gIGlzVGV4dFN0eWxlKG9iamVjdDogYW55KTogb2JqZWN0IGlzIFRleHRTdHlsZSB7XG4gICAgcmV0dXJuIHR5cGVvZiBvYmplY3QgPT09ICdvYmplY3QnICYmICd0ZXh0JyBpbiBvYmplY3Q7XG4gIH1cblxuICBnZXRMb2dvVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXNJbWFnZVN0eWxlKHRoaXMubmF2QmFyTWVudUNvbmZpZy5sb2dvKVxuICAgICAgPyB0aGlzLm5hdkJhck1lbnVDb25maWcubG9nby5pbWFnZVVybFxuICAgICAgOiBQVE5hdmJhck1lbnVDb21wb25lbnQuREVGQVVMVF9MT0dPX1VSTDtcbiAgfVxuXG4gIGdldExvZ29BbHRUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXNJbWFnZVN0eWxlKHRoaXMubmF2QmFyTWVudUNvbmZpZy5sb2dvKVxuICAgICAgPyB0aGlzLm5hdkJhck1lbnVDb25maWcubG9nby5hbHRUZXh0IHx8XG4gICAgICAgICAgUFROYXZiYXJNZW51Q29tcG9uZW50LkRFRkFVTFRfTE9HT19BTFRfVEVYVFxuICAgICAgOiBQVE5hdmJhck1lbnVDb21wb25lbnQuREVGQVVMVF9MT0dPX0FMVF9URVhUO1xuICB9XG5cbiAgZ2V0TG9nb1N0eWxlcygpIHtcbiAgICBpZiAodGhpcy5pc0ltYWdlU3R5bGUodGhpcy5uYXZCYXJNZW51Q29uZmlnLmxvZ28pKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb2xvcjpcbiAgICAgICAgICB0aGlzLm5hdkJhck1lbnVDb25maWcubG9nby5jb2xvciB8fFxuICAgICAgICAgIFBUTmF2YmFyTWVudUNvbXBvbmVudC5ERUZBVUxUX0lDT05fQ09MT1IsXG4gICAgICAgIHdpZHRoOlxuICAgICAgICAgIHRoaXMubmF2QmFyTWVudUNvbmZpZy5sb2dvLndpZHRoIHx8XG4gICAgICAgICAgUFROYXZiYXJNZW51Q29tcG9uZW50LkRFRkFVTFRfTE9HT19XSURUSCxcbiAgICAgICAgaGVpZ2h0OlxuICAgICAgICAgIHRoaXMubmF2QmFyTWVudUNvbmZpZy5sb2dvLmhlaWdodCB8fFxuICAgICAgICAgIFBUTmF2YmFyTWVudUNvbXBvbmVudC5ERUZBVUxUX0xPR09fSEVJR0hULFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgZ2V0QXBwTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlzVGV4dFN0eWxlKHRoaXMubmF2QmFyTWVudUNvbmZpZy5hcHBOYW1lKVxuICAgICAgPyB0aGlzLm5hdkJhck1lbnVDb25maWcuYXBwTmFtZS50ZXh0XG4gICAgICA6IFBUTmF2YmFyTWVudUNvbXBvbmVudC5ERUZBVUxUX0FQUF9OQU1FO1xuICB9XG5cbiAgZ2V0QXBwTmFtZVN0eWxlcygpIHtcbiAgICBpZiAodGhpcy5pc1RleHRTdHlsZSh0aGlzLm5hdkJhck1lbnVDb25maWcuYXBwTmFtZSkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbG9yOlxuICAgICAgICAgIHRoaXMubmF2QmFyTWVudUNvbmZpZy5hcHBOYW1lLmNvbG9yIHx8XG4gICAgICAgICAgUFROYXZiYXJNZW51Q29tcG9uZW50LkRFRkFVTFRfQVBQX05BTUVfQ09MT1IsXG4gICAgICAgIGZvbnRTaXplOlxuICAgICAgICAgIHRoaXMubmF2QmFyTWVudUNvbmZpZy5hcHBOYW1lLmZvbnRTaXplIHx8XG4gICAgICAgICAgUFROYXZiYXJNZW51Q29tcG9uZW50LkRFRkFVTFRfQVBQX05BTUVfRk9OVF9TSVpFLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbG9yOiBQVE5hdmJhck1lbnVDb21wb25lbnQuREVGQVVMVF9BUFBfTkFNRV9DT0xPUixcbiAgICAgIGZvbnRTaXplOiBQVE5hdmJhck1lbnVDb21wb25lbnQuREVGQVVMVF9BUFBfTkFNRV9GT05UX1NJWkUsXG4gICAgfTtcbiAgfVxuXG4gIGdldE5hdmJhclN0eWxlcygpIHtcbiAgICBjb25zdCB0cmFuc3BhcmVuY3kgPVxuICAgICAgdGhpcy5uYXZCYXJNZW51Q29uZmlnLnBhdHRlcm4/LnRyYW5zcGFyZW5jeVBlcmNlbnRhZ2UgfHxcbiAgICAgIFBUTmF2YmFyTWVudUNvbXBvbmVudC5ERUZBVUxUX1RSQU5TUEFSRU5DWTtcbiAgICBjb25zdCBiYWNrZ3JvdW5kSW1hZ2UgPSB0aGlzLm5hdkJhck1lbnVDb25maWcucGF0dGVyblxuICAgICAgPyBgbGluZWFyLWdyYWRpZW50KHJnYmEoMjU1LCAyNTUsIDI1NSwgJHtcbiAgICAgICAgICAxIC0gcGFyc2VGbG9hdCh0cmFuc3BhcmVuY3kpIC8gMTAwXG4gICAgICAgIH0pLCByZ2JhKDI1NSwgMjU1LCAyNTUsICR7MSAtIHBhcnNlRmxvYXQodHJhbnNwYXJlbmN5KSAvIDEwMH0pKSwgdXJsKCR7XG4gICAgICAgICAgdGhpcy5uYXZCYXJNZW51Q29uZmlnLnBhdHRlcm4uaW1hZ2VVcmxcbiAgICAgICAgfSlgXG4gICAgICA6ICcnO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogdGhpcy5uYXZCYXJNZW51Q29uZmlnLnBhdHRlcm4gPyAndHJhbnNwYXJlbnQnIDogJyNmZmYnLFxuICAgICAgYmFja2dyb3VuZEltYWdlOiBiYWNrZ3JvdW5kSW1hZ2UsXG4gICAgICBiYWNrZ3JvdW5kU2l6ZTogJ2NvdmVyJyxcbiAgICAgIGJhY2tncm91bmRQb3NpdGlvbjogJ2NlbnRlcicsXG4gICAgfTtcbiAgfVxuXG4gIHRvZ2dsZU1lbnUoKSB7XG4gICAgdGhpcy50b2dnbGVTaWRlYmFyLmVtaXQoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInB0LW5hdi1iYXItbWVudVwiIFtuZ1N0eWxlXT1cImdldE5hdmJhclN0eWxlcygpXCI+XG4gIDxkaXYgY2xhc3M9XCJuYXZiYXItbGVmdFwiPlxuICAgIDxhXG4gICAgICBbcm91dGVyTGlua109XCJcbiAgICAgICAgaXNJbWFnZVN0eWxlKG5hdkJhck1lbnVDb25maWcubG9nbylcbiAgICAgICAgICA/IG5hdkJhck1lbnVDb25maWcubG9nby5yb3V0ZXJMaW5rXG4gICAgICAgICAgOiAnLydcbiAgICAgIFwiXG4gICAgICBjbGFzcz1cImxvZ28tbGlua1wiXG4gICAgPlxuICAgICAgPGltZ1xuICAgICAgICBbc3JjXT1cImdldExvZ29VcmwoKVwiXG4gICAgICAgIFthbHRdPVwiZ2V0TG9nb0FsdFRleHQoKVwiXG4gICAgICAgIFtuZ1N0eWxlXT1cImdldExvZ29TdHlsZXMoKVwiXG4gICAgICAgIGNsYXNzPVwibmF2YmFyLWxvZ29cIlxuICAgICAgLz5cbiAgICAgIDxzcGFuIGNsYXNzPVwibmF2YmFyLXRpdGxlXCIgW25nU3R5bGVdPVwiZ2V0QXBwTmFtZVN0eWxlcygpXCI+XG4gICAgICAgIHt7IGdldEFwcE5hbWUoKSB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvYT5cbiAgICA8YSAoY2xpY2spPVwidG9nZ2xlTWVudSgpXCIgY2xhc3M9XCJ0b2dnbGUtYnRuXCI+XG4gICAgICA8aSBjbGFzcz1cInBpIHBpLWJhcnNcIj48L2k+XG4gICAgPC9hPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm5hdmJhci1yaWdodFwiPlxuICAgIDxwdC1tZW51LWZhbmN5XG4gICAgICAqbmdGb3I9XCJsZXQgbWVudUNvbmZpZyBvZiBuYXZCYXJNZW51Q29uZmlnLm1lbnVzXCJcbiAgICAgIFtjb25maWddPVwibWVudUNvbmZpZ1wiXG4gICAgPjwvcHQtbWVudS1mYW5jeT5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtbmF2LWJhci1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXByaW1lLXRvb2xzL3NyYy9saWIvcHQtbmF2LWJhci1tZW51L3B0LW5hdi1iYXItbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LW5hdi1iYXItbWVudS9wdC1uYXYtYmFyLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFRdkUsTUFBTSxPQUFPLHFCQUFxQjtJQUxsQztRQU1XLHFCQUFnQixHQUFxQixFQUFFLENBQUM7UUFFdkMsa0JBQWEsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztLQXFJeEU7SUFuSUMsdUNBQXVDO2FBQ2YscUJBQWdCLEdBQVcsRUFBRSxBQUFiLENBQWM7YUFDOUIsMEJBQXFCLEdBQVcsTUFBTSxBQUFqQixDQUFrQjthQUN2Qyx1QkFBa0IsR0FBVyxNQUFNLEFBQWpCLENBQWtCO2FBQ3BDLHdCQUFtQixHQUFXLE1BQU0sQUFBakIsQ0FBa0I7YUFDckMscUJBQWdCLEdBQVcsYUFBYSxBQUF4QixDQUF5QjthQUN6QywyQkFBc0IsR0FBVyxNQUFNLEFBQWpCLENBQWtCO2FBQ3hDLCtCQUEwQixHQUFXLE1BQU0sQUFBakIsQ0FBa0I7YUFDNUMseUJBQW9CLEdBQVcsS0FBSyxBQUFoQixDQUFpQjthQUNyQyx1QkFBa0IsR0FBVyxNQUFNLEFBQWpCLENBQWtCO2FBQ3BDLCtCQUEwQixHQUFXLFlBQVksQUFBdkIsQ0FBd0I7YUFDbEQsZ0NBQTJCLEdBQVcsTUFBTSxBQUFqQixDQUFrQjtJQUVyRSxZQUFZLENBQUMsTUFBVztRQUN0QixPQUFPLE9BQU8s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O0lBQ0osQ0FBQztJQUVELHFCQUFxQjtRQUNuQixPQUFPO1lBQ0wsS0FBSyxFQUNILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUI7Z0JBQ3ZDLHFCQUFxQixDQUFDLDJCQUEyQjtTQUNwRCxDQUFDO0lBQ0osQ0FBQzsrR0F2SVUscUJBQXFCO21HQUFyQixxQkFBcUIsc0pDUmxDLG04QkFtQ0E7OzRGRDNCYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsaUJBQWlCOzhCQUtsQixnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbWFnZVN0eWxlLCBOYXZCYXJNZW51Q29uZmlnLCBUZXh0U3R5bGUgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwdC1uYXYtYmFyLW1lbnUnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHQtbmF2LWJhci1tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHQtbmF2LWJhci1tZW51LmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUFROYXZiYXJNZW51Q29tcG9uZW50IHtcbiAgQElucHV0KCkgbmF2QmFyTWVudUNvbmZpZzogTmF2QmFyTWVudUNvbmZpZyA9IHt9O1xuXG4gIEBPdXRwdXQoKSB0b2dnbGVTaWRlYmFyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgLy8gRGVmYXVsdCB2YWx1ZXMgYXMgcmVhZG9ubHkgdmFyaWFibGVzXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfTE9HT19VUkw6IHN0cmluZyA9ICcnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0xPR09fQUxUX1RFWFQ6IHN0cmluZyA9ICdMb2dvJztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9MT0dPX1dJRFRIOiBzdHJpbmcgPSAnNDBweCc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfTE9HT19IRUlHSFQ6IHN0cmluZyA9ICdhdXRvJztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9BUFBfTkFNRTogc3RyaW5nID0gJ0FwcGxpY2F0aW9uJztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9BUFBfTkFNRV9DT0xPUjogc3RyaW5nID0gJyMwMDAnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0FQUF9OQU1FX0ZPTlRfU0laRTogc3RyaW5nID0gJzI0cHgnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBERUZBVUxUX1RSQU5TUEFSRU5DWTogc3RyaW5nID0gJzEwMCc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfSUNPTl9DT0xPUjogc3RyaW5nID0gJyMzMzMnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBERUZBVUxUX1RPR0dMRV9CVVRUT05fSUNPTjogc3RyaW5nID0gJ3BpIHBpLWJhcnMnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBERUZBVUxUX1RPR0dMRV9CVVRUT05fQ09MT1I6IHN0cmluZyA9ICcjMzMzJztcblxuICBpc0ltYWdlU3R5bGUob2JqZWN0OiBhbnkpOiBvYmplY3QgaXMgSW1hZ2VTdHlsZSB7XG4gICAgcmV0dXJuIHR5cGVvZiBvYmplY3QgPT09ICdvYmplY3QnICYmICdpbWFnZVVybCcgaW4gb2JqZWN0O1xuICB9XG5cbiAgaXNUZXh0U3R5bGUob2JqZWN0OiBhbnkpOiBvYmplY3QgaXMgVGV4dFN0eWxlIHtcbiAgICByZXR1cm4gdHlwZW9mIG9iamVjdCA9PT0gJ29iamVjdCcgJiYgJ3RleHQnIGluIG9iamVjdDtcbiAgfVxuXG4gIGdldExvZ29VcmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pc0ltYWdlU3R5bGUodGhpcy5uYXZCYXJNZW51Q29uZmlnLmxvZ28pXG4gICAgICA/IHRoaXMubmF2QmFyTWVudUNvbmZpZy5sb2dvLmltYWdlVXJsXG4gICAgICA6IFBUTmF2YmFyTWVudUNvbXBvbmVudC5ERUZBVUxUX0xPR09fVVJMO1xuICB9XG5cbiAgZ2V0TG9nb0FsdFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pc0ltYWdlU3R5bGUodGhpcy5uYXZCYXJNZW51Q29uZmlnLmxvZ28pXG4gICAgICA/IHRoaXMubmF2QmFyTWVudUNvbmZpZy5sb2dvLmFsdFRleHQgfHxcbiAgICAgICAgICBQVE5hdmJhck1lbnVDb21wb25lbnQuREVGQVVMVF9MT0dPX0FMVF9URVhUXG4gICAgICA6IFBUTmF2YmFyTWVudUNvbXBvbmVudC5ERUZBVUxUX0xPR09fQUxUX1RFWFQ7XG4gIH1cblxuICBnZXRMb2dvU3R5bGVzKCkge1xuICAgIGlmICh0aGlzLmlzSW1hZ2VTdHlsZSh0aGlzLm5hdkJhck1lbnVDb25maWcubG9nbykpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbG9yOlxuICAgICAgICAgIHRoaXMubmF2QmFyTWVudUNvbmZpZy5sb2dvLmNvbG9yIHx8XG4gICAgICAgICAgUFROYXZiYXJNZW51Q29tcG9uZW50LkRFRkFVTFRfSUNPTl9DT0xPUixcbiAgICAgICAgd2lkdGg6XG4gICAgICAgICAgdGhpcy5uYXZCYXJNZW51Q29uZmlnLmxvZ28ud2lkdGggfHxcbiAgICAgICAgICBQVE5hdmJhck1lbnVDb21wb25lbnQuREVGQVVMVF9MT0dPX1dJRFRILFxuICAgICAgICBoZWlnaHQ6XG4gICAgICAgICAgdGhpcy5uYXZCYXJNZW51Q29uZmlnLmxvZ28uaGVpZ2h0IHx8XG4gICAgICAgICAgUFROYXZiYXJNZW51Q29tcG9uZW50LkRFRkFVTFRfTE9HT19IRUlHSFQsXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4ge307XG4gIH1cblxuICBnZXRBcHBOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXNUZXh0U3R5bGUodGhpcy5uYXZCYXJNZW51Q29uZmlnLmFwcE5hbWUpXG4gICAgICA/IHRoaXMubmF2QmFyTWVudUNvbmZpZy5hcHBOYW1lLnRleHRcbiAgICAgIDogUFROYXZiYXJNZW51Q29tcG9uZW50LkRFRkFVTFRfQVBQX05BTUU7XG4gIH1cblxuICBnZXRBcHBOYW1lU3R5bGVzKCkge1xuICAgIGlmICh0aGlzLmlzVGV4dFN0eWxlKHRoaXMubmF2QmFyTWVudUNvbmZpZy5hcHBOYW1lKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29sb3I6XG4gICAgICAgICAgdGhpcy5uYXZCYXJNZW51Q29uZmlnLmFwcE5hbWUuY29sb3IgfHxcbiAgICAgICAgICBQVE5hdmJhck1lbnVDb21wb25lbnQuREVGQVVMVF9BUFBfTkFNRV9DT0xPUixcbiAgICAgICAgZm9udFNpemU6XG4gICAgICAgICAgdGhpcy5uYXZCYXJNZW51Q29uZmlnLmFwcE5hbWUuZm9udFNpemUgfHxcbiAgICAgICAgICBQVE5hdmJhck1lbnVDb21wb25lbnQuREVGQVVMVF9BUFBfTkFNRV9GT05UX1NJWkUsXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgY29sb3I6IFBUTmF2YmFyTWVudUNvbXBvbmVudC5ERUZBVUxUX0FQUF9OQU1FX0NPTE9SLFxuICAgICAgZm9udFNpemU6IFBUTmF2YmFyTWVudUNvbXBvbmVudC5ERUZBVUxUX0FQUF9OQU1FX0ZPTlRfU0laRSxcbiAgICB9O1xuICB9XG5cbiAgZ2V0TmF2YmFyU3R5bGVzKCkge1xuICAgIGNvbnN0IHRyYW5zcGFyZW5jeSA9XG4gICAgICB0aGlzLm5hdkJhck1lbnVDb25maWcucGF0dGVybj8udHJhbnNwYXJlbmN5UGVyY2VudGFnZSB8fFxuICAgICAgUFROYXZiYXJNZW51Q29tcG9uZW50LkRFRkFVTFRfVFJBTlNQQVJFTkNZO1xuICAgIGNvbnN0IGltYWdlVXJsID0gdGhpcy5uYXZCYXJNZW51Q29uZmlnLnBhdHRlcm4/LmltYWdlVXJsIHx8ICcnO1xuICAgIGNvbnN0IHBhdHRlcm5XaWR0aCA9IHRoaXMubmF2QmFyTWVudUNvbmZpZy5wYXR0ZXJuPy53aWR0aCB8fCAnMTAwJSc7XG4gICAgY29uc3QgcGF0dGVybkhlaWdodCA9IHRoaXMubmF2QmFyTWVudUNvbmZpZy5wYXR0ZXJuPy5oZWlnaHQgfHwgJ2F1dG8nO1xuXG4gICAgLy8gRGV0ZXJtaW5lIGJhY2tncm91bmQtcmVwZWF0IHZhbHVlXG4gICAgY29uc3QgcmVwZWF0WCA9IHRoaXMubmF2QmFyTWVudUNvbmZpZy5wYXR0ZXJuPy5yZXBlYXRYXG4gICAgICA/ICdyZXBlYXQnXG4gICAgICA6ICduby1yZXBlYXQnO1xuICAgIGNvbnN0IHJlcGVhdFkgPSB0aGlzLm5hdkJhck1lbnVDb25maWcucGF0dGVybj8ucmVwZWF0WVxuICAgICAgPyAncmVwZWF0J1xuICAgICAgOiAnbm8tcmVwZWF0JztcbiAgICBjb25zdCBiYWNrZ3JvdW5kUmVwZWF0ID0gYCR7cmVwZWF0WH0gJHtyZXBlYXRZfWA7XG5cbiAgICAvLyBVc2UgdGhlIHBvc2l0aW9uIGRpcmVjdGx5IGZyb20gdGhlIHBhdHRlcm4gY29uZmlndXJhdGlvblxuICAgIGNvbnN0IGJhY2tncm91bmRQb3NpdGlvbiA9XG4gICAgICB0aGlzLm5hdkJhck1lbnVDb25maWcucGF0dGVybj8ucG9zaXRpb24gfHwgJ2NlbnRlcic7XG5cbiAgICAvLyBDb25zdHJ1Y3QgdGhlIGJhY2tncm91bmQgaW1hZ2Ugc3R5bGUgd2l0aCB0cmFuc3BhcmVuY3lcbiAgICBjb25zdCBiYWNrZ3JvdW5kSW1hZ2UgPSBpbWFnZVVybFxuICAgICAgPyBgbGluZWFyLWdyYWRpZW50KHJnYmEoMjU1LCAyNTUsIDI1NSwgJHtcbiAgICAgICAgICAxIC0gcGFyc2VGbG9hdCh0cmFuc3BhcmVuY3kpIC8gMTAwXG4gICAgICAgIH0pLCByZ2JhKDI1NSwgMjU1LCAyNTUsICR7XG4gICAgICAgICAgMSAtIHBhcnNlRmxvYXQodHJhbnNwYXJlbmN5KSAvIDEwMFxuICAgICAgICB9KSksIHVybCgke2ltYWdlVXJsfSlgXG4gICAgICA6ICcnO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogdGhpcy5uYXZCYXJNZW51Q29uZmlnLnBhdHRlcm4gPyAndHJhbnNwYXJlbnQnIDogJyNmZmYnLFxuICAgICAgYmFja2dyb3VuZEltYWdlOiBiYWNrZ3JvdW5kSW1hZ2UsXG4gICAgICBiYWNrZ3JvdW5kU2l6ZTogYCR7cGF0dGVybldpZHRofSAke3BhdHRlcm5IZWlnaHR9YCxcbiAgICAgIGJhY2tncm91bmRQb3NpdGlvbjogYmFja2dyb3VuZFBvc2l0aW9uLFxuICAgICAgYmFja2dyb3VuZFJlcGVhdDogYmFja2dyb3VuZFJlcGVhdCxcbiAgICB9O1xuICB9XG5cbiAgdG9nZ2xlTWVudSgpIHtcbiAgICB0aGlzLnRvZ2dsZVNpZGViYXIuZW1pdCgpO1xuICB9XG5cbiAgZ2V0VG9nZ2xlQnV0dG9uSWNvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLm5hdkJhck1lbnVDb25maWcudG9nZ2xlQnV0dG9uSWNvbiB8fFxuICAgICAgUFROYXZiYXJNZW51Q29tcG9uZW50LkRFRkFVTFRfVE9HR0xFX0JVVFRPTl9JQ09OXG4gICAgKTtcbiAgfVxuXG4gIGdldFRvZ2dsZUJ1dHRvblN0eWxlcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgY29sb3I6XG4gICAgICAgIHRoaXMubmF2QmFyTWVudUNvbmZpZy50b2dnbGVCdXR0b25Db2xvciB8fFxuICAgICAgICBQVE5hdmJhck1lbnVDb21wb25lbnQuREVGQVVMVF9UT0dHTEVfQlVUVE9OX0NPTE9SLFxuICAgIH07XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwdC1uYXYtYmFyLW1lbnVcIiBbbmdTdHlsZV09XCJnZXROYXZiYXJTdHlsZXMoKVwiPlxuICA8ZGl2IGNsYXNzPVwibmF2YmFyLWxlZnRcIj5cbiAgICA8YVxuICAgICAgW3JvdXRlckxpbmtdPVwiXG4gICAgICAgIGlzSW1hZ2VTdHlsZShuYXZCYXJNZW51Q29uZmlnLmxvZ28pXG4gICAgICAgICAgPyBuYXZCYXJNZW51Q29uZmlnLmxvZ28ucm91dGVyTGlua1xuICAgICAgICAgIDogJy8nXG4gICAgICBcIlxuICAgICAgY2xhc3M9XCJsb2dvLWxpbmtcIlxuICAgID5cbiAgICAgIDxpbWdcbiAgICAgICAgW3NyY109XCJnZXRMb2dvVXJsKClcIlxuICAgICAgICBbYWx0XT1cImdldExvZ29BbHRUZXh0KClcIlxuICAgICAgICBbbmdTdHlsZV09XCJnZXRMb2dvU3R5bGVzKClcIlxuICAgICAgICBjbGFzcz1cIm5hdmJhci1sb2dvXCJcbiAgICAgIC8+XG4gICAgICA8c3BhbiBjbGFzcz1cIm5hdmJhci10aXRsZVwiIFtuZ1N0eWxlXT1cImdldEFwcE5hbWVTdHlsZXMoKVwiPlxuICAgICAgICB7eyBnZXRBcHBOYW1lKCkgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2E+XG4gICAgPCEtLSBUb2dnbGUgQnV0dG9uIC0tPlxuICAgIDxhIChjbGljayk9XCJ0b2dnbGVNZW51KClcIiBjbGFzcz1cInRvZ2dsZS1idG5cIj5cbiAgICAgIDxpXG4gICAgICAgIFtjbGFzc109XCJnZXRUb2dnbGVCdXR0b25JY29uKClcIlxuICAgICAgICBbbmdTdHlsZV09XCJnZXRUb2dnbGVCdXR0b25TdHlsZXMoKVwiXG4gICAgICA+PC9pPlxuICAgIDwvYT5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJuYXZiYXItcmlnaHRcIj5cbiAgICA8cHQtbWVudS1mYW5jeVxuICAgICAgKm5nRm9yPVwibGV0IG1lbnVDb25maWcgb2YgbmF2QmFyTWVudUNvbmZpZy5tZW51c1wiXG4gICAgICBbY29uZmlnXT1cIm1lbnVDb25maWdcIlxuICAgID48L3B0LW1lbnUtZmFuY3k+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -23,6 +23,7 @@ export class PTPageSkeletonComponent {
23
23
  // Initialize backgroundCardConfig with default values
24
24
  initializeBackgroundCardConfig() {
25
25
  this.pageSkeletonConfig.backgroundCardConfig = {
26
+ identifier: 'pt-page-skeleton/background',
26
27
  noBorder: this.pageSkeletonConfig.backgroundCardConfig?.noBorder ?? true,
27
28
  backgroundColor: this.pageSkeletonConfig.backgroundCardConfig?.backgroundColor || '#fff',
28
29
  padding: this.pageSkeletonConfig.backgroundCardConfig?.padding || '20px',
@@ -33,6 +34,7 @@ export class PTPageSkeletonComponent {
33
34
  // Initialize contentCardConfig with default values (if necessary)
34
35
  initializeContentCardConfig() {
35
36
  this.pageSkeletonConfig.contentCardConfig = {
37
+ identifier: 'pt-page-skeleton/content',
36
38
  noBorder: this.pageSkeletonConfig.contentCardConfig?.noBorder ?? false,
37
39
  backgroundColor: this.pageSkeletonConfig.contentCardConfig?.backgroundColor || '#f0f0f0',
38
40
  padding: this.pageSkeletonConfig.contentCardConfig?.padding || '15px',
@@ -50,4 +52,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
50
52
  }], toggleSidebar: [{
51
53
  type: Output
52
54
  }] } });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtcGFnZS1za2VsZXRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LXBhZ2Utc2tlbGV0b24vcHQtcGFnZS1za2VsZXRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LXBhZ2Utc2tlbGV0b24vcHQtcGFnZS1za2VsZXRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7QUFRL0UsTUFBTSxPQUFPLHVCQUF1QjtJQUxwQztRQU9ZLGtCQUFhLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFdkUscUJBQWdCLEdBQVksSUFBSSxDQUFDO0tBa0NsQztJQWhDQyxRQUFRO1FBQ04sSUFBSSxDQUFDLDhCQUE4QixFQUFFLENBQUM7UUFDdEMsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDL0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsc0RBQXNEO0lBQ3RELDhCQUE4QjtRQUM1QixJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLEdBQUc7WUFDN0MsUUFBUSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsRUFBRSxRQUFRLElBQUksSUFBSTtZQUN4RSxlQUFlLEVBQ2IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixFQUFFLGVBQWUsSUFBSSxNQUFNO1lBQ3pFLE9BQU8sRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLEVBQUUsT0FBTyxJQUFJLE1BQU07WUFDeEUsTUFBTSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsRUFBRSxNQUFNLElBQUksTUFBTTtZQUN0RSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0I7U0FDaEQsQ0FBQztJQUNKLENBQUM7SUFFRCxrRUFBa0U7SUFDbEUsMkJBQTJCO1FBQ3pCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsR0FBRztZQUMxQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixFQUFFLFFBQVEsSUFBSSxLQUFLO1lBQ3RFLGVBQWUsRUFDYixJQUFJLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxJQUFJLFNBQVM7WUFDekUsT0FBTyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLElBQUksTUFBTTtZQUNyRSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUI7U0FDN0MsQ0FBQztJQUNKLENBQUM7K0dBckNVLHVCQUF1QjttR0FBdkIsdUJBQXVCLDJKQ1JwQyxrdkNBd0NBOzs0RkRoQ2EsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLGtCQUFrQjs4QkFLbkIsa0JBQWtCO3NCQUExQixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQYWdlU2tlbGV0b25Db25maWcsIENhcmRDb25maWcgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwdC1wYWdlLXNrZWxldG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3B0LXBhZ2Utc2tlbGV0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wdC1wYWdlLXNrZWxldG9uLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUFRQYWdlU2tlbGV0b25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwYWdlU2tlbGV0b25Db25maWchOiBQYWdlU2tlbGV0b25Db25maWc7XG4gIEBPdXRwdXQoKSB0b2dnbGVTaWRlYmFyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgaXNTaWRlYmFyVmlzaWJsZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pbml0aWFsaXplQmFja2dyb3VuZENhcmRDb25maWcoKTtcbiAgICB0aGlzLmluaXRpYWxpemVDb250ZW50Q2FyZENvbmZpZygpO1xuICB9XG5cbiAgb25Ub2dnbGVTaWRlYmFyKCk6IHZvaWQge1xuICAgIHRoaXMuaXNTaWRlYmFyVmlzaWJsZSA9ICF0aGlzLmlzU2lkZWJhclZpc2libGU7XG4gICAgdGhpcy50b2dnbGVTaWRlYmFyLmVtaXQoKTtcbiAgfVxuXG4gIC8vIEluaXRpYWxpemUgYmFja2dyb3VuZENhcmRDb25maWcgd2l0aCBkZWZhdWx0IHZhbHVlc1xuICBpbml0aWFsaXplQmFja2dyb3VuZENhcmRDb25maWcoKSB7XG4gICAgdGhpcy5wYWdlU2tlbGV0b25Db25maWcuYmFja2dyb3VuZENhcmRDb25maWcgPSB7XG4gICAgICBub0JvcmRlcjogdGhpcy5wYWdlU2tlbGV0b25Db25maWcuYmFja2dyb3VuZENhcmRDb25maWc/Lm5vQm9yZGVyID8/IHRydWUsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6XG4gICAgICAgIHRoaXMucGFnZVNrZWxldG9uQ29uZmlnLmJhY2tncm91bmRDYXJkQ29uZmlnPy5iYWNrZ3JvdW5kQ29sb3IgfHwgJyNmZmYnLFxuICAgICAgcGFkZGluZzogdGhpcy5wYWdlU2tlbGV0b25Db25maWcuYmFja2dyb3VuZENhcmRDb25maWc/LnBhZGRpbmcgfHwgJzIwcHgnLFxuICAgICAgbWFyZ2luOiB0aGlzLnBhZ2VTa2VsZXRvbkNvbmZpZy5iYWNrZ3JvdW5kQ2FyZENvbmZpZz8ubWFyZ2luIHx8ICcxMHB4JyxcbiAgICAgIC4uLnRoaXMucGFnZVNrZWxldG9uQ29uZmlnLmJhY2tncm91bmRDYXJkQ29uZmlnLFxuICAgIH07XG4gIH1cblxuICAvLyBJbml0aWFsaXplIGNvbnRlbnRDYXJkQ29uZmlnIHdpdGggZGVmYXVsdCB2YWx1ZXMgKGlmIG5lY2Vzc2FyeSlcbiAgaW5pdGlhbGl6ZUNvbnRlbnRDYXJkQ29uZmlnKCkge1xuICAgIHRoaXMucGFnZVNrZWxldG9uQ29uZmlnLmNvbnRlbnRDYXJkQ29uZmlnID0ge1xuICAgICAgbm9Cb3JkZXI6IHRoaXMucGFnZVNrZWxldG9uQ29uZmlnLmNvbnRlbnRDYXJkQ29uZmlnPy5ub0JvcmRlciA/PyBmYWxzZSxcbiAgICAgIGJhY2tncm91bmRDb2xvcjpcbiAgICAgICAgdGhpcy5wYWdlU2tlbGV0b25Db25maWcuY29udGVudENhcmRDb25maWc/LmJhY2tncm91bmRDb2xvciB8fCAnI2YwZjBmMCcsXG4gICAgICBwYWRkaW5nOiB0aGlzLnBhZ2VTa2VsZXRvbkNvbmZpZy5jb250ZW50Q2FyZENvbmZpZz8ucGFkZGluZyB8fCAnMTVweCcsXG4gICAgICAuLi50aGlzLnBhZ2VTa2VsZXRvbkNvbmZpZy5jb250ZW50Q2FyZENvbmZpZyxcbiAgICB9O1xuICB9XG59XG4iLCI8cHQtY2FyZCBbY29uZmlnXT1cInBhZ2VTa2VsZXRvbkNvbmZpZy5iYWNrZ3JvdW5kQ2FyZENvbmZpZyFcIj5cbiAgPCEtLSBOYXZiYXIgLS0+XG4gIDxwdC1uYXYtYmFyLW1lbnVcbiAgICBbbmF2QmFyTWVudUNvbmZpZ109XCJwYWdlU2tlbGV0b25Db25maWcubmF2QmFyTWVudUNvbmZpZ1wiXG4gICAgKHRvZ2dsZVNpZGViYXIpPVwib25Ub2dnbGVTaWRlYmFyKClcIlxuICA+PC9wdC1uYXYtYmFyLW1lbnU+XG5cbiAgPGRpdiBjbGFzcz1cIm1haW4tY29udGVudFwiPlxuICAgIDwhLS0gU2lkZWJhciAodXNlICpuZ0lmIHRvIHRvZ2dsZSB2aXNpYmlsaXR5KSAtLT5cbiAgICA8cHQtc2lkZS1iYXItbWVudVxuICAgICAgKm5nSWY9XCJpc1NpZGViYXJWaXNpYmxlXCJcbiAgICAgIFttZW51Q29uZmlnXT1cInBhZ2VTa2VsZXRvbkNvbmZpZy5zaWRlTWVudUJhckNvbmZpZ1wiXG4gICAgICBjbGFzcz1cInNpZGViYXJcIlxuICAgID48L3B0LXNpZGUtYmFyLW1lbnU+XG5cbiAgICA8IS0tIE1haW4gVmlldyBBcmVhIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWFyZWFcIiBbbmdDbGFzc109XCJ7ICdmdWxsLXdpZHRoJzogIWlzU2lkZWJhclZpc2libGUgfVwiPlxuICAgICAgPCEtLSBDb250ZW50IENhcmQgV3JhcHBlciAtLT5cbiAgICAgIDxwdC1jYXJkIFtjb25maWddPVwicGFnZVNrZWxldG9uQ29uZmlnLmNvbnRlbnRDYXJkQ29uZmlnXCI+XG4gICAgICAgIDwhLS0gQnJlYWRjcnVtYiAtLT5cbiAgICAgICAgPHB0LWJyZWFkLWNydW1iXG4gICAgICAgICAgKm5nSWY9XCJwYWdlU2tlbGV0b25Db25maWcuYnJlYWRDcnVtYkNvbmZpZ1wiXG4gICAgICAgICAgW2JyZWFkQ3J1bWJDb25maWddPVwicGFnZVNrZWxldG9uQ29uZmlnLmJyZWFkQ3J1bWJDb25maWdcIlxuICAgICAgICAgIGNsYXNzPVwiYnJlYWQtY3J1bWJcIlxuICAgICAgICA+PC9wdC1icmVhZC1jcnVtYj5cblxuICAgICAgICA8IS0tIEJhY2tncm91bmQgQ2FyZCAtLT5cblxuICAgICAgICA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG4gICAgICA8L3B0LWNhcmQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gRm9vdGVyIC0tPlxuICA8cHQtZm9vdGVyXG4gICAgKm5nSWY9XCJwYWdlU2tlbGV0b25Db25maWcuZm9vdGVyQ29uZmlnXCJcbiAgICBbZm9vdGVyQ29uZmlnXT1cInBhZ2VTa2VsZXRvbkNvbmZpZy5mb290ZXJDb25maWdcIlxuICAgIGNsYXNzPVwicHQtZm9vdGVyXCJcbiAgPjwvcHQtZm9vdGVyPlxuPC9wdC1jYXJkPlxuIl19
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtcGFnZS1za2VsZXRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LXBhZ2Utc2tlbGV0b24vcHQtcGFnZS1za2VsZXRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LXBhZ2Utc2tlbGV0b24vcHQtcGFnZS1za2VsZXRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7QUFRL0UsTUFBTSxPQUFPLHVCQUF1QjtJQUxwQztRQU9ZLGtCQUFhLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFdkUscUJBQWdCLEdBQVksSUFBSSxDQUFDO0tBb0NsQztJQWxDQyxRQUFRO1FBQ04sSUFBSSxDQUFDLDhCQUE4QixFQUFFLENBQUM7UUFDdEMsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDL0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsc0RBQXNEO0lBQ3RELDhCQUE4QjtRQUM1QixJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLEdBQUc7WUFDN0MsVUFBVSxFQUFFLDZCQUE2QjtZQUN6QyxRQUFRLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixFQUFFLFFBQVEsSUFBSSxJQUFJO1lBQ3hFLGVBQWUsRUFDYixJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLEVBQUUsZUFBZSxJQUFJLE1BQU07WUFDekUsT0FBTyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsRUFBRSxPQUFPLElBQUksTUFBTTtZQUN4RSxNQUFNLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixFQUFFLE1BQU0sSUFBSSxNQUFNO1lBQ3RFLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQjtTQUNoRCxDQUFDO0lBQ0osQ0FBQztJQUVELGtFQUFrRTtJQUNsRSwyQkFBMkI7UUFDekIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixHQUFHO1lBQzFDLFVBQVUsRUFBRSwwQkFBMEI7WUFDdEMsUUFBUSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsRUFBRSxRQUFRLElBQUksS0FBSztZQUN0RSxlQUFlLEVBQ2IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixFQUFFLGVBQWUsSUFBSSxTQUFTO1lBQ3pFLE9BQU8sRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxJQUFJLE1BQU07WUFDckUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCO1NBQzdDLENBQUM7SUFDSixDQUFDOytHQXZDVSx1QkFBdUI7bUdBQXZCLHVCQUF1QiwySkNScEMsa3ZDQXdDQTs7NEZEaENhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxrQkFBa0I7OEJBS25CLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGFnZVNrZWxldG9uQ29uZmlnLCBDYXJkQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHQtcGFnZS1za2VsZXRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wdC1wYWdlLXNrZWxldG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHQtcGFnZS1za2VsZXRvbi5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBUUGFnZVNrZWxldG9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcGFnZVNrZWxldG9uQ29uZmlnITogUGFnZVNrZWxldG9uQ29uZmlnO1xuICBAT3V0cHV0KCkgdG9nZ2xlU2lkZWJhcjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIGlzU2lkZWJhclZpc2libGU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaW5pdGlhbGl6ZUJhY2tncm91bmRDYXJkQ29uZmlnKCk7XG4gICAgdGhpcy5pbml0aWFsaXplQ29udGVudENhcmRDb25maWcoKTtcbiAgfVxuXG4gIG9uVG9nZ2xlU2lkZWJhcigpOiB2b2lkIHtcbiAgICB0aGlzLmlzU2lkZWJhclZpc2libGUgPSAhdGhpcy5pc1NpZGViYXJWaXNpYmxlO1xuICAgIHRoaXMudG9nZ2xlU2lkZWJhci5lbWl0KCk7XG4gIH1cblxuICAvLyBJbml0aWFsaXplIGJhY2tncm91bmRDYXJkQ29uZmlnIHdpdGggZGVmYXVsdCB2YWx1ZXNcbiAgaW5pdGlhbGl6ZUJhY2tncm91bmRDYXJkQ29uZmlnKCkge1xuICAgIHRoaXMucGFnZVNrZWxldG9uQ29uZmlnLmJhY2tncm91bmRDYXJkQ29uZmlnID0ge1xuICAgICAgaWRlbnRpZmllcjogJ3B0LXBhZ2Utc2tlbGV0b24vYmFja2dyb3VuZCcsXG4gICAgICBub0JvcmRlcjogdGhpcy5wYWdlU2tlbGV0b25Db25maWcuYmFja2dyb3VuZENhcmRDb25maWc/Lm5vQm9yZGVyID8/IHRydWUsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6XG4gICAgICAgIHRoaXMucGFnZVNrZWxldG9uQ29uZmlnLmJhY2tncm91bmRDYXJkQ29uZmlnPy5iYWNrZ3JvdW5kQ29sb3IgfHwgJyNmZmYnLFxuICAgICAgcGFkZGluZzogdGhpcy5wYWdlU2tlbGV0b25Db25maWcuYmFja2dyb3VuZENhcmRDb25maWc/LnBhZGRpbmcgfHwgJzIwcHgnLFxuICAgICAgbWFyZ2luOiB0aGlzLnBhZ2VTa2VsZXRvbkNvbmZpZy5iYWNrZ3JvdW5kQ2FyZENvbmZpZz8ubWFyZ2luIHx8ICcxMHB4JyxcbiAgICAgIC4uLnRoaXMucGFnZVNrZWxldG9uQ29uZmlnLmJhY2tncm91bmRDYXJkQ29uZmlnLFxuICAgIH07XG4gIH1cblxuICAvLyBJbml0aWFsaXplIGNvbnRlbnRDYXJkQ29uZmlnIHdpdGggZGVmYXVsdCB2YWx1ZXMgKGlmIG5lY2Vzc2FyeSlcbiAgaW5pdGlhbGl6ZUNvbnRlbnRDYXJkQ29uZmlnKCkge1xuICAgIHRoaXMucGFnZVNrZWxldG9uQ29uZmlnLmNvbnRlbnRDYXJkQ29uZmlnID0ge1xuICAgICAgaWRlbnRpZmllcjogJ3B0LXBhZ2Utc2tlbGV0b24vY29udGVudCcsXG4gICAgICBub0JvcmRlcjogdGhpcy5wYWdlU2tlbGV0b25Db25maWcuY29udGVudENhcmRDb25maWc/Lm5vQm9yZGVyID8/IGZhbHNlLFxuICAgICAgYmFja2dyb3VuZENvbG9yOlxuICAgICAgICB0aGlzLnBhZ2VTa2VsZXRvbkNvbmZpZy5jb250ZW50Q2FyZENvbmZpZz8uYmFja2dyb3VuZENvbG9yIHx8ICcjZjBmMGYwJyxcbiAgICAgIHBhZGRpbmc6IHRoaXMucGFnZVNrZWxldG9uQ29uZmlnLmNvbnRlbnRDYXJkQ29uZmlnPy5wYWRkaW5nIHx8ICcxNXB4JyxcbiAgICAgIC4uLnRoaXMucGFnZVNrZWxldG9uQ29uZmlnLmNvbnRlbnRDYXJkQ29uZmlnLFxuICAgIH07XG4gIH1cbn1cbiIsIjxwdC1jYXJkIFtjb25maWddPVwicGFnZVNrZWxldG9uQ29uZmlnLmJhY2tncm91bmRDYXJkQ29uZmlnIVwiPlxuICA8IS0tIE5hdmJhciAtLT5cbiAgPHB0LW5hdi1iYXItbWVudVxuICAgIFtuYXZCYXJNZW51Q29uZmlnXT1cInBhZ2VTa2VsZXRvbkNvbmZpZy5uYXZCYXJNZW51Q29uZmlnXCJcbiAgICAodG9nZ2xlU2lkZWJhcik9XCJvblRvZ2dsZVNpZGViYXIoKVwiXG4gID48L3B0LW5hdi1iYXItbWVudT5cblxuICA8ZGl2IGNsYXNzPVwibWFpbi1jb250ZW50XCI+XG4gICAgPCEtLSBTaWRlYmFyICh1c2UgKm5nSWYgdG8gdG9nZ2xlIHZpc2liaWxpdHkpIC0tPlxuICAgIDxwdC1zaWRlLWJhci1tZW51XG4gICAgICAqbmdJZj1cImlzU2lkZWJhclZpc2libGVcIlxuICAgICAgW21lbnVDb25maWddPVwicGFnZVNrZWxldG9uQ29uZmlnLnNpZGVNZW51QmFyQ29uZmlnXCJcbiAgICAgIGNsYXNzPVwic2lkZWJhclwiXG4gICAgPjwvcHQtc2lkZS1iYXItbWVudT5cblxuICAgIDwhLS0gTWFpbiBWaWV3IEFyZWEgLS0+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtYXJlYVwiIFtuZ0NsYXNzXT1cInsgJ2Z1bGwtd2lkdGgnOiAhaXNTaWRlYmFyVmlzaWJsZSB9XCI+XG4gICAgICA8IS0tIENvbnRlbnQgQ2FyZCBXcmFwcGVyIC0tPlxuICAgICAgPHB0LWNhcmQgW2NvbmZpZ109XCJwYWdlU2tlbGV0b25Db25maWcuY29udGVudENhcmRDb25maWdcIj5cbiAgICAgICAgPCEtLSBCcmVhZGNydW1iIC0tPlxuICAgICAgICA8cHQtYnJlYWQtY3J1bWJcbiAgICAgICAgICAqbmdJZj1cInBhZ2VTa2VsZXRvbkNvbmZpZy5icmVhZENydW1iQ29uZmlnXCJcbiAgICAgICAgICBbYnJlYWRDcnVtYkNvbmZpZ109XCJwYWdlU2tlbGV0b25Db25maWcuYnJlYWRDcnVtYkNvbmZpZ1wiXG4gICAgICAgICAgY2xhc3M9XCJicmVhZC1jcnVtYlwiXG4gICAgICAgID48L3B0LWJyZWFkLWNydW1iPlxuXG4gICAgICAgIDwhLS0gQmFja2dyb3VuZCBDYXJkIC0tPlxuXG4gICAgICAgIDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cbiAgICAgIDwvcHQtY2FyZD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBGb290ZXIgLS0+XG4gIDxwdC1mb290ZXJcbiAgICAqbmdJZj1cInBhZ2VTa2VsZXRvbkNvbmZpZy5mb290ZXJDb25maWdcIlxuICAgIFtmb290ZXJDb25maWddPVwicGFnZVNrZWxldG9uQ29uZmlnLmZvb3RlckNvbmZpZ1wiXG4gICAgY2xhc3M9XCJwdC1mb290ZXJcIlxuICA+PC9wdC1mb290ZXI+XG48L3B0LWNhcmQ+XG4iXX0=
@@ -24,10 +24,12 @@ export class PTSideBarMenuComponent {
24
24
  hoverColorSubMenu: '#e0e0e0', // Default hover color for submenu
25
25
  };
26
26
  this.searchCardConfig = {
27
+ identifier: 'pt-side-bar-menu/search',
27
28
  backgroundColor: 'white',
28
29
  height: '72px',
29
30
  };
30
31
  this.cardConfig = {
32
+ identifier: 'pt-side-bar-menu',
31
33
  backgroundColor: '',
32
34
  width: '',
33
35
  height: '',
@@ -45,6 +47,7 @@ export class PTSideBarMenuComponent {
45
47
  }
46
48
  ngOnInit() {
47
49
  this.cardConfig = {
50
+ identifier: 'pt-side-bar-menu',
48
51
  backgroundColor: this.menuConfig.backgroundColor,
49
52
  width: this.menuConfig.width,
50
53
  height: this.menuConfig.height,
@@ -203,4 +206,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
203
206
  }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { menuConfig: [{
204
207
  type: Input
205
208
  }] } });
206
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtc2lkZS1iYXItbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LXNpZGUtYmFyLW1lbnUvcHQtc2lkZS1iYXItbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LXNpZGUtYmFyLW1lbnUvcHQtc2lkZS1iYXItbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULEtBQUssR0FHTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUXhELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7OztBQU9yQyxNQUFNLE9BQU8sc0JBQXNCO0lBZWpDLFlBQW9CLFFBQW1CLEVBQVUsRUFBYztRQUEzQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQWR0RCxlQUFVLEdBQXNCO1lBQ3ZDLEtBQUssRUFBRSxFQUFFO1lBQ1QsU0FBUyxFQUFFLElBQUk7WUFDZixVQUFVLEVBQUUsSUFBSTtZQUNoQixLQUFLLEVBQUUsT0FBTztZQUNkLE1BQU0sRUFBRSxPQUFPO1lBQ2YsVUFBVSxFQUFFLElBQUk7WUFDaEIsZUFBZSxFQUFFLE9BQU87WUFDeEIsU0FBUyxFQUFFLE1BQU0sRUFBRSwwQkFBMEI7WUFDN0MsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLDZCQUE2QjtZQUN2RCxVQUFVLEVBQUUsU0FBUyxFQUFFLG9DQUFvQztZQUMzRCxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsa0NBQWtDO1NBQ2pFLENBQUM7UUFJRixxQkFBZ0IsR0FBZTtZQUM3QixlQUFlLEVBQUUsT0FBTztZQUN4QixN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QUM7Z0JBQ3BELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUNwQixJQUFJLEVBQ0osT0FBTyxFQUNQLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCO29CQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVM7b0JBQ3pCLE1BQU0sQ0FDVCxDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBaFBVLHNCQUFzQjttR0FBdEIsc0JBQXNCLDhGQ3ZCbkMsd2hGQW9GQTs7NEZEN0RhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxrQkFBa0I7dUdBS25CLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIFJlbmRlcmVyMixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgTWVudSxcbiAgRm9ybVRleHRGaWVsZCxcbiAgU2lkZU1lbnVCYXJDb25maWcsXG4gIENhcmRDb25maWcsXG4gIEJhZGdlLFxufSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgQmFkZ2VUeXBlIH0gZnJvbSAnLi4vZW51bXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwdC1zaWRlLWJhci1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3B0LXNpZGUtYmFyLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wdC1zaWRlLWJhci1tZW51LmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUFRTaWRlQmFyTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIG1lbnVDb25maWc6IFNpZGVNZW51QmFyQ29uZmlnID0ge1xuICAgIG1lbnVzOiBbXSxcbiAgICBpc1Zpc2libGU6IHRydWUsXG4gICAgc2VhcmNoYWJsZTogdHJ1ZSxcbiAgICB3aWR0aDogJzI1MHB4JyxcbiAgICBoZWlnaHQ6ICcxMDB2aCcsXG4gICAgc2Nyb2xsYWJsZTogdHJ1ZSxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICd3aGl0ZScsXG4gICAgZm9udENvbG9yOiAnIzMzMycsIC8vIERlZmF1bHQgbWFpbiBmb250IGNvbG9yXG4gICAgZm9udENvbG9yU3ViTWVudTogJyM2NjYnLCAvLyBEZWZhdWx0IHN1Ym1lbnUgZm9udCBjb2xvclxuICAgIGhvdmVyQ29sb3I6ICcjZjFmMWYxJywgLy8gRGVmYXVsdCBob3ZlciBjb2xvciBmb3IgbWFpbiBtZW51XG4gICAgaG92ZXJDb2xvclN1Yk1lbnU6ICcjZTBlMGUwJywgLy8gRGVmYXVsdCBob3ZlciBjb2xvciBmb3Igc3VibWVudVxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBlbDogRWxlbWVudFJlZikge31cblxuICBzZWFyY2hDYXJkQ29uZmlnOiBDYXJkQ29uZmlnID0ge1xuICAgIGJhY2tncm91bmRDb2xvcjogJ3doaXRlJyxcbiAgICBoZWlnaHQ6ICc3MnB4JyxcbiAgfTtcblxuICBjYXJkQ29uZmlnOiBDYXJkQ29uZmlnID0ge1xuICAgIGJhY2tncm91bmRDb2xvcjogJycsXG4gICAgd2lkdGg6ICcnLFxuICAgIGhlaWdodDogJycsXG4gICAgc2Nyb2xsYWJsZVZlcnRpY2FsOiBmYWxzZSxcbiAgfTtcblxuICBmb3JtR3JvdXA6IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xuICAgIHNlYXJjaDogbmV3IEZvcm1Db250cm9sKCcnKSxcbiAgfSk7XG5cbiAgc2VhcmNoRmllbGQ6IEZvcm1UZXh0RmllbGQgPSB7XG4gICAgbmFtZTogJ3NlYXJjaCcsXG4gICAgcGxhY2Vob2xkZXI6ICdTZWFyY2guLi4nLFxuICAgIGljb25DbGFzczogJ3BpIHBpLXNlYXJjaCcsXG4gIH07XG5cbiAgZmlsdGVyZWRNZW51czogTWVudVtdID0gW107XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jYXJkQ29uZmlnID0ge1xuICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGlzLm1lbnVDb25maWcuYmFja2dyb3VuZENvbG9yLFxuICAgICAgd2lkdGg6IHRoaXMubWVudUNvbmZpZy53aWR0aCxcbiAgICAgIGhlaWdodDogdGhpcy5tZW51Q29uZmlnLmhlaWdodCxcbiAgICAgIHNjcm9sbGFibGVWZXJ0aWNhbDogdGhpcy5tZW51Q29uZmlnLnNjcm9sbGFibGUsXG4gICAgICBwYXR0ZXJuOiB0aGlzLm1lbnVDb25maWcucGF0dGVybixcbiAgICB9O1xuXG4gICAgdGhpcy5maWx0ZXJlZE1lbnVzID0gdGhpcy5tZW51Q29uZmlnLm1lbnVzO1xuXG4gICAgY29uc3QgY2FyZFdpZHRoID0gdGhpcy5tZW51Q29uZmlnLndpZHRoXG4gICAgICA/IHBhcnNlSW50KHRoaXMubWVudUNvbmZpZy53aWR0aClcbiAgICAgIDogMjUwO1xuICAgIHRoaXMuc2VhcmNoRmllbGQud2lkdGggPSBgJHtjYXJkV2lkdGggLSA2MH1weGA7XG4gICAgdGhpcy5zZWFyY2hDYXJkQ29uZmlnLndpZHRoID0gdGhpcy5tZW51Q29uZmlnLndpZHRoO1xuICAgIHRoaXMuc2VhcmNoQ2FyZENvbmZpZy5wYXR0ZXJuID0gdGhpcy5tZW51Q29uZmlnLnBhdHRlcm47XG5cbiAgICBpZiAodGhpcy5tZW51Q29uZmlnLnNlYXJjaGFibGUpIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwXG4gICAgICAgIC5nZXQoJ3NlYXJjaCcpXG4gICAgICAgID8udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoc2VhcmNoVGVybTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgdGhpcy5vblNlYXJjaChzZWFyY2hUZXJtKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlTWVudShpdGVtOiBNZW51LCBldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBpdGVtLmlzRXhwYW5kZWQgPSAhaXRlbS5pc0V4cGFuZGVkO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICBnZXRDaGV2cm9uQ2xhc3MoaXRlbTogTWVudSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGl0ZW0uaXNFeHBhbmRlZCA/ICdmYSBmYS1jaGV2cm9uLWRvd24nIDogJ2ZhIGZhLWNoZXZyb24tcmlnaHQnO1xuICB9XG5cbiAgZ2V0QmFkZ2VTdHlsZXMoYmFkZ2U6IEJhZGdlKSB7XG4gICAgY29uc3QgZGVmYXVsdENvbG9ycyA9IHRoaXMuZ2V0RGVmYXVsdEJhZGdlQ29sb3JzKFxuICAgICAgYmFkZ2UudHlwZSB8fCBCYWRnZVR5cGUuSW5mb1xuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgY29sb3I6IGJhZGdlLmNvbG9yIHx8IGRlZmF1bHRDb2xvcnMuY29sb3IsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IGJhZGdlLmJhY2tncm91bmRDb2xvciB8fCBkZWZhdWx0Q29sb3JzLmJhY2tncm91bmRDb2xvcixcbiAgICAgIHBhZGRpbmc6ICcycHggOHB4JyxcbiAgICAgIGJvcmRlclJhZGl1czogJzVweCcsXG4gICAgICBmb250U2l6ZTogJzEycHgnLFxuICAgIH07XG4gIH1cblxuICBnZXREZWZhdWx0QmFkZ2VDb2xvcnModHlwZTogQmFkZ2VUeXBlKSB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlIEJhZGdlVHlwZS5JbmZvOlxuICAgICAgICByZXR1cm4geyBjb2xvcjogJ3doaXRlJywgYmFja2dyb3VuZENvbG9yOiAnIzE3YTJiOCcgfTtcbiAgICAgIGNhc2UgQmFkZ2VUeXBlLkRhbmdlcjpcbiAgICAgICAgcmV0dXJuIHsgY29sb3I6ICd3aGl0ZScsIGJhY2tncm91bmRDb2xvcjogJyNkYzM1NDUnIH07XG4gICAgICBjYXNlIEJhZGdlVHlwZS5XYXJuaW5nOlxuICAgICAgICByZXR1cm4geyBjb2xvcjogJ3doaXRlJywgYmFja2dyb3VuZENvbG9yOiAnI2ZmYzEwNycgfTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB7IGNvbG9yOiAnd2hpdGUnLCBiYWNrZ3JvdW5kQ29sb3I6ICcjNmM3NTdkJyB9O1xuICAgIH1cbiAgfVxuXG4gIG9uU2VhcmNoKHNlYXJjaFRlcm06IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChzZWFyY2hUZXJtLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgIHRoaXMuZmlsdGVyZWRNZW51cyA9IHRoaXMubWVudUNvbmZpZy5tZW51cztcbiAgICAgIHRoaXMuY29sbGFwc2VBbGxNZW51cygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBsb3dlckNhc2VTZWFyY2ggPSBzZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCk7XG4gICAgICB0aGlzLmZpbHRlcmVkTWVudXMgPSB0aGlzLm1lbnVDb25maWcubWVudXNcbiAgICAgICAgLm1hcCgobWVudSkgPT4gdGhpcy5zZWFyY2hJbk1lbnUoeyAuLi5tZW51IH0sIGxvd2VyQ2FzZVNlYXJjaCkpXG4gICAgICAgIC5maWx0ZXIoQm9vbGVhbikgYXMgTWVudVtdO1xuICAgIH1cbiAgfVxuXG4gIHNlYXJjaEluTWVudShtZW51OiBNZW51LCBzZWFyY2hUZXJtOiBzdHJpbmcpOiBNZW51IHwgbnVsbCB7XG4gICAgY29uc3QgaXNNYXRjaCA9IG1lbnUubGFiZWwudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXJtKTtcblxuICAgIGlmIChtZW51LmNoaWxkcmVuKSB7XG4gICAgICBjb25zdCBtYXRjaGluZ0NoaWxkcmVuID0gbWVudS5jaGlsZHJlblxuICAgICAgICAubWFwKChjaGlsZCkgPT4gdGhpcy5zZWFyY2hJbk1lbnUoY2hpbGQsIHNlYXJjaFRlcm0pKVxuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pIGFzIE1lbnVbXTtcblxuICAgICAgaWYgKG1hdGNoaW5nQ2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICBtZW51LmNoaWxkcmVuID0gbWF0Y2hpbmdDaGlsZHJlbjtcbiAgICAgICAgbWVudS5pc0V4cGFuZGVkID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIG1lbnU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGlzTWF0Y2ggPyBtZW51IDogbnVsbDtcbiAgfVxuXG4gIGNvbGxhcHNlQWxsTWVudXMoKTogdm9pZCB7XG4gICAgdGhpcy5tZW51Q29uZmlnLm1lbnVzLmZvckVhY2goKG1lbnUpID0+IHtcbiAgICAgIG1lbnUuaXNFeHBhbmRlZCA9IGZhbHNlO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0TWVudUl0ZW1TdHlsZXMoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgY29sb3I6IHRoaXMubWVudUNvbmZpZy5mb250Q29sb3IgfHwgJyMzMzMnLCAvLyBTZXQgZGVmYXVsdCBmb250IGNvbG9yIGlmIG5vdCBzcGVjaWZpZWQgaW4gY29uZmlnXG4gICAgfTtcbiAgfVxuXG4gIGdldE1lbnVMaW5rU3R5bGVzKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbG9yOiB0aGlzLm1lbnVDb25maWcuZm9udENvbG9yIHx8ICcjMzMzJyxcbiAgICAgICd0ZXh0LWRlY29yYXRpb24nOiAnbm9uZScsXG4gICAgICAnYm9yZGVyLXJhZGl1cyc6ICc4cHgnLFxuICAgICAgcGFkZGluZzogJzEwcHggMTVweCcsXG4gICAgICAnZm9udC1zaXplJzogJzE2cHgnLFxuICAgICAgdHJhbnNpdGlvbjogJ2JhY2tncm91bmQtY29sb3IgMC4ycywgY29sb3IgMC4ycycsXG4gICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAnYWxpZ24taXRlbXMnOiAnY2VudGVyJyxcbiAgICAgICc6aG92ZXInOiB7XG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhpcy5tZW51Q29uZmlnLmhvdmVyQ29sb3IgfHwgJyNmMWYxZjEnLFxuICAgICAgICBjb2xvcjogJyMxMTEnLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgZ2V0U3ViTWVudUxpbmtTdHlsZXMoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgY29sb3I6XG4gICAgICAgIHRoaXMubWVudUNvbmZpZy5mb250Q29sb3JTdWJNZW51IHx8IHRoaXMubWVudUNvbmZpZy5mb250Q29sb3IgfHwgJyM2NjYnLFxuICAgICAgJ3RleHQtZGVjb3JhdGlvbic6ICdub25lJyxcbiAgICAgICdib3JkZXItcmFkaXVzJzogJzVweCcsXG4gICAgICBwYWRkaW5nOiAnNXB4IDEwcHgnLFxuICAgICAgdHJhbnNpdGlvbjogJ2JhY2tncm91bmQtY29sb3IgMC4ycywgY29sb3IgMC4ycycsXG4gICAgICAnOmhvdmVyJzoge1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoaXMubWVudUNvbmZpZy5ob3ZlckNvbG9yU3ViTWVudSB8fCAnI2UwZTBlMCcsXG4gICAgICB9LFxuICAgIH07XG4gIH1cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYXBwbHlIb3ZlckVmZmVjdHMoKTtcbiAgfVxuXG4gIGFwcGx5SG92ZXJFZmZlY3RzKCk6IHZvaWQge1xuICAgIGNvbnN0IG1lbnVMaW5rcyA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdhLm1lbnUtbGluaycpO1xuICAgIGNvbnN0IHN1Yk1lbnVMaW5rcyA9XG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYS5zdWJtZW51LWxpbmsnKTtcblxuICAgIC8vIEFwcGx5IGhvdmVyIGVmZmVjdHMgZm9yIG1haW4gbWVudSBsaW5rc1xuICAgIG1lbnVMaW5rcy5mb3JFYWNoKChsaW5rOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4obGluaywgJ21vdXNlZW50ZXInLCAoKSA9PiB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgbGluayxcbiAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcicsXG4gICAgICAgICAgdGhpcy5tZW51Q29uZmlnLmhvdmVyQ29sb3IgfHwgJyNmMWYxZjEnXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgbGluayxcbiAgICAgICAgICAnY29sb3InLFxuICAgICAgICAgIHRoaXMubWVudUNvbmZpZy5ob3ZlckZvbnRDb2xvciB8fCAnd2hpdGUnXG4gICAgICAgICk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4obGluaywgJ21vdXNlbGVhdmUnLCAoKSA9PiB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUobGluaywgJ2JhY2tncm91bmQtY29sb3InKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgICBsaW5rLFxuICAgICAgICAgICdjb2xvcicsXG4gICAgICAgICAgdGhpcy5tZW51Q29uZmlnLmZvbnRDb2xvciB8fCAnIzMzMydcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgLy8gQXBwbHkgaG92ZXIgZWZmZWN0cyBmb3Igc3VibWVudSBsaW5rc1xuICAgIHN1Yk1lbnVMaW5rcy5mb3JFYWNoKChsaW5rOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4obGluaywgJ21vdXNlZW50ZXInLCAoKSA9PiB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgbGluayxcbiAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcicsXG4gICAgICAgICAgdGhpcy5tZW51Q29uZmlnLmhvdmVyQ29sb3JTdWJNZW51IHx8XG4gICAgICAgICAgICB0aGlzLm1lbnVDb25maWcuaG92ZXJDb2xvciB8fFxuICAgICAgICAgICAgJyNmMWYxZjEnXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgbGluayxcbiAgICAgICAgICAnY29sb3InLFxuICAgICAgICAgIHRoaXMubWVudUNvbmZpZy5ob3ZlckZvbnRDb2xvclN1Yk1lbnUgfHxcbiAgICAgICAgICAgIHRoaXMubWVudUNvbmZpZy5ob3ZlckZvbnRDb2xvciB8fFxuICAgICAgICAgICAgJyNmZmYnXG4gICAgICAgICk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4obGluaywgJ21vdXNlbGVhdmUnLCAoKSA9PiB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUobGluaywgJ2JhY2tncm91bmQtY29sb3InKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgICBsaW5rLFxuICAgICAgICAgICdjb2xvcicsXG4gICAgICAgICAgdGhpcy5tZW51Q29uZmlnLmZvbnRDb2xvclN1Yk1lbnUgfHxcbiAgICAgICAgICAgIHRoaXMubWVudUNvbmZpZy5mb250Q29sb3IgfHxcbiAgICAgICAgICAgICcjNjY2J1xuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwdC1zaWRlLWJhci1tZW51XCI+XG4gIDxwdC1jYXJkXG4gICAgKm5nSWY9XCJtZW51Q29uZmlnLnNlYXJjaGFibGVcIlxuICAgIFtjb25maWddPVwic2VhcmNoQ2FyZENvbmZpZ1wiXG4gICAgW25nQ2xhc3NdPVwieyAnc2lkZWJhci1oaWRkZW4nOiAhbWVudUNvbmZpZy5pc1Zpc2libGUgfVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWlucHV0XCI+XG4gICAgICA8cHQtdGV4dC1pbnB1dCBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiIFtmb3JtRmllbGRdPVwic2VhcmNoRmllbGRcIj5cbiAgICAgIDwvcHQtdGV4dC1pbnB1dD5cbiAgICA8L2Rpdj5cbiAgPC9wdC1jYXJkPlxuXG4gIDxwdC1jYXJkXG4gICAgW2NvbmZpZ109XCJjYXJkQ29uZmlnXCJcbiAgICBbbmdDbGFzc109XCJ7ICdzaWRlYmFyLWhpZGRlbic6ICFtZW51Q29uZmlnLmlzVmlzaWJsZSB9XCJcbiAgPlxuICAgIDx1bCBjbGFzcz1cIm1lbnUtbGlzdFwiPlxuICAgICAgPGxpXG4gICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZpbHRlcmVkTWVudXNcIlxuICAgICAgICBjbGFzcz1cIm1lbnUtaXRlbVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ21lbnUtaXRlbS1leHBhbmRlZCc6IGl0ZW0uaXNFeHBhbmRlZCB9XCJcbiAgICAgICAgW25nU3R5bGVdPVwiZ2V0TWVudUl0ZW1TdHlsZXMoKVwiXG4gICAgICA+XG4gICAgICAgIDwhLS0gTWFpbiBtZW51IGl0ZW1zIHdpdGhvdXQgY2hpbGRyZW4gLS0+XG4gICAgICAgIDxhXG4gICAgICAgICAgKm5nSWY9XCIhaXRlbS5jaGlsZHJlbj8ubGVuZ3RoXCJcbiAgICAgICAgICBbcm91dGVyTGlua109XCJpdGVtLnVybFwiXG4gICAgICAgICAgY2xhc3M9XCJtZW51LWxpbmtcIlxuICAgICAgICAgIFtuZ1N0eWxlXT1cImdldE1lbnVMaW5rU3R5bGVzKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPGkgW25nQ2xhc3NdPVwiaXRlbS5pY29uXCI+PC9pPlxuICAgICAgICAgIDxzcGFuPnt7IGl0ZW0ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5iYWRnZVwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJnZXRCYWRnZVN0eWxlcyhpdGVtLmJhZGdlKVwiXG4gICAgICAgICAgICBjbGFzcz1cImJhZGdlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBpdGVtLmJhZGdlLmNvdW50IH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2E+XG5cbiAgICAgICAgPCEtLSBNZW51IGl0ZW1zIHdpdGggY2hpbGRyZW4gLS0+XG4gICAgICAgIDxhXG4gICAgICAgICAgKm5nSWY9XCJpdGVtLmNoaWxkcmVuPy5sZW5ndGhcIlxuICAgICAgICAgIGNsYXNzPVwibWVudS1saW5rXCJcbiAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlTWVudShpdGVtLCAkZXZlbnQpXCJcbiAgICAgICAgICBbbmdTdHlsZV09XCJnZXRNZW51TGlua1N0eWxlcygpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpIFtuZ0NsYXNzXT1cIml0ZW0uaWNvblwiPjwvaT5cbiAgICAgICAgICA8c3Bhbj57eyBpdGVtLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAqbmdJZj1cIml0ZW0uYmFkZ2VcIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwiZ2V0QmFkZ2VTdHlsZXMoaXRlbS5iYWRnZSlcIlxuICAgICAgICAgICAgY2xhc3M9XCJiYWRnZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgaXRlbS5iYWRnZS5jb3VudCB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8aSBbbmdDbGFzc109XCJnZXRDaGV2cm9uQ2xhc3MoaXRlbSlcIiBjbGFzcz1cImNoZXZyb25cIj48L2k+XG4gICAgICAgIDwvYT5cblxuICAgICAgICA8IS0tIFN1Ym1lbnUgLS0+XG4gICAgICAgIDx1bCBjbGFzcz1cInN1Ym1lbnUtbGlzdFwiPlxuICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgY2hpbGQgb2YgaXRlbS5jaGlsZHJlblwiIGNsYXNzPVwic3VibWVudS1pdGVtXCI+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJjaGlsZC51cmxcIlxuICAgICAgICAgICAgICBjbGFzcz1cInN1Ym1lbnUtbGlua1wiXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cImdldFN1Yk1lbnVMaW5rU3R5bGVzKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aSBbbmdDbGFzc109XCJjaGlsZC5pY29uXCI+PC9pPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1Ym1lbnUtdGl0bGVcIj57eyBjaGlsZC5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAqbmdJZj1cImNoaWxkLmJhZGdlXCJcbiAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJnZXRCYWRnZVN0eWxlcyhjaGlsZC5iYWRnZSlcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFkZ2VcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgY2hpbGQuYmFkZ2UuY291bnQgfX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgICA8L2xpPlxuICAgIDwvdWw+XG4gIDwvcHQtY2FyZD5cbjwvZGl2PlxuIl19
209
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtc2lkZS1iYXItbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LXNpZGUtYmFyLW1lbnUvcHQtc2lkZS1iYXItbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LXNpZGUtYmFyLW1lbnUvcHQtc2lkZS1iYXItbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULEtBQUssR0FHTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUXhELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7OztBQU9yQyxNQUFNLE9BQU8sc0JBQXNCO0lBZWpDLFlBQW9CLFFBQW1CLEVBQVUsRUFBYztRQUEzQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQWR0RCxlQUFVLEdBQXNCO1lBQ3ZDLEtBQUssRUFBRSxFQUFFO1lBQ1QsU0FBUyxFQUFFLElBQUk7WUFDZixVQUFVLEVBQUUsSUFBSTtZQUNoQixLQUFLLEVBQUUsT0FBTztZQUNkLE1BQU0sRUFBRSxPQUFPO1lBQ2YsVUFBVSxFQUFFLElBQUk7WUFDaEIsZUFBZSxFQUFFLE9BQU87WUFDeEIsU0FBUyxFQUFFLE1BQU0sRUFBRSwwQkFBMEI7WUFDN0MsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLDZCQUE2QjtZQUN2RCxVQUFVLEVBQUUsU0FBUyxFQUFFLG9DQUFvQztZQUMzRCxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsa0NBQWtDO1NBQ2pFLENBQUM7UUFJRixxQkFBZ0IsR0FBZTtZQUM3QixVQUFVLEVBQUUseUJBQXlCO1lBQ3JD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QUcsRUFBRTtnQkFDNUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLGtCQUFrQixDQUFDLENBQUM7Z0JBQ3BELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUNwQixJQUFJLEVBQ0osT0FBTyxFQUNQLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCO29CQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVM7b0JBQ3pCLE1BQU0sQ0FDVCxDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBblBVLHNCQUFzQjttR0FBdEIsc0JBQXNCLDhGQ3ZCbkMsd2hGQW9GQTs7NEZEN0RhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxrQkFBa0I7dUdBS25CLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIFJlbmRlcmVyMixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgTWVudSxcbiAgRm9ybVRleHRGaWVsZCxcbiAgU2lkZU1lbnVCYXJDb25maWcsXG4gIENhcmRDb25maWcsXG4gIEJhZGdlLFxufSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgQmFkZ2VUeXBlIH0gZnJvbSAnLi4vZW51bXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwdC1zaWRlLWJhci1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3B0LXNpZGUtYmFyLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wdC1zaWRlLWJhci1tZW51LmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUFRTaWRlQmFyTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIG1lbnVDb25maWc6IFNpZGVNZW51QmFyQ29uZmlnID0ge1xuICAgIG1lbnVzOiBbXSxcbiAgICBpc1Zpc2libGU6IHRydWUsXG4gICAgc2VhcmNoYWJsZTogdHJ1ZSxcbiAgICB3aWR0aDogJzI1MHB4JyxcbiAgICBoZWlnaHQ6ICcxMDB2aCcsXG4gICAgc2Nyb2xsYWJsZTogdHJ1ZSxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICd3aGl0ZScsXG4gICAgZm9udENvbG9yOiAnIzMzMycsIC8vIERlZmF1bHQgbWFpbiBmb250IGNvbG9yXG4gICAgZm9udENvbG9yU3ViTWVudTogJyM2NjYnLCAvLyBEZWZhdWx0IHN1Ym1lbnUgZm9udCBjb2xvclxuICAgIGhvdmVyQ29sb3I6ICcjZjFmMWYxJywgLy8gRGVmYXVsdCBob3ZlciBjb2xvciBmb3IgbWFpbiBtZW51XG4gICAgaG92ZXJDb2xvclN1Yk1lbnU6ICcjZTBlMGUwJywgLy8gRGVmYXVsdCBob3ZlciBjb2xvciBmb3Igc3VibWVudVxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBlbDogRWxlbWVudFJlZikge31cblxuICBzZWFyY2hDYXJkQ29uZmlnOiBDYXJkQ29uZmlnID0ge1xuICAgIGlkZW50aWZpZXI6ICdwdC1zaWRlLWJhci1tZW51L3NlYXJjaCcsXG4gICAgYmFja2dyb3VuZENvbG9yOiAnd2hpdGUnLFxuICAgIGhlaWdodDogJzcycHgnLFxuICB9O1xuXG4gIGNhcmRDb25maWc6IENhcmRDb25maWcgPSB7XG4gICAgaWRlbnRpZmllcjogJ3B0LXNpZGUtYmFyLW1lbnUnLFxuICAgIGJhY2tncm91bmRDb2xvcjogJycsXG4gICAgd2lkdGg6ICcnLFxuICAgIGhlaWdodDogJycsXG4gICAgc2Nyb2xsYWJsZVZlcnRpY2FsOiBmYWxzZSxcbiAgfTtcblxuICBmb3JtR3JvdXA6IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xuICAgIHNlYXJjaDogbmV3IEZvcm1Db250cm9sKCcnKSxcbiAgfSk7XG5cbiAgc2VhcmNoRmllbGQ6IEZvcm1UZXh0RmllbGQgPSB7XG4gICAgbmFtZTogJ3NlYXJjaCcsXG4gICAgcGxhY2Vob2xkZXI6ICdTZWFyY2guLi4nLFxuICAgIGljb25DbGFzczogJ3BpIHBpLXNlYXJjaCcsXG4gIH07XG5cbiAgZmlsdGVyZWRNZW51czogTWVudVtdID0gW107XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jYXJkQ29uZmlnID0ge1xuICAgICAgaWRlbnRpZmllcjogJ3B0LXNpZGUtYmFyLW1lbnUnLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGlzLm1lbnVDb25maWcuYmFja2dyb3VuZENvbG9yLFxuICAgICAgd2lkdGg6IHRoaXMubWVudUNvbmZpZy53aWR0aCxcbiAgICAgIGhlaWdodDogdGhpcy5tZW51Q29uZmlnLmhlaWdodCxcbiAgICAgIHNjcm9sbGFibGVWZXJ0aWNhbDogdGhpcy5tZW51Q29uZmlnLnNjcm9sbGFibGUsXG4gICAgICBwYXR0ZXJuOiB0aGlzLm1lbnVDb25maWcucGF0dGVybixcbiAgICB9O1xuXG4gICAgdGhpcy5maWx0ZXJlZE1lbnVzID0gdGhpcy5tZW51Q29uZmlnLm1lbnVzO1xuXG4gICAgY29uc3QgY2FyZFdpZHRoID0gdGhpcy5tZW51Q29uZmlnLndpZHRoXG4gICAgICA/IHBhcnNlSW50KHRoaXMubWVudUNvbmZpZy53aWR0aClcbiAgICAgIDogMjUwO1xuICAgIHRoaXMuc2VhcmNoRmllbGQud2lkdGggPSBgJHtjYXJkV2lkdGggLSA2MH1weGA7XG4gICAgdGhpcy5zZWFyY2hDYXJkQ29uZmlnLndpZHRoID0gdGhpcy5tZW51Q29uZmlnLndpZHRoO1xuICAgIHRoaXMuc2VhcmNoQ2FyZENvbmZpZy5wYXR0ZXJuID0gdGhpcy5tZW51Q29uZmlnLnBhdHRlcm47XG5cbiAgICBpZiAodGhpcy5tZW51Q29uZmlnLnNlYXJjaGFibGUpIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwXG4gICAgICAgIC5nZXQoJ3NlYXJjaCcpXG4gICAgICAgID8udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoc2VhcmNoVGVybTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgdGhpcy5vblNlYXJjaChzZWFyY2hUZXJtKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlTWVudShpdGVtOiBNZW51LCBldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBpdGVtLmlzRXhwYW5kZWQgPSAhaXRlbS5pc0V4cGFuZGVkO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICBnZXRDaGV2cm9uQ2xhc3MoaXRlbTogTWVudSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGl0ZW0uaXNFeHBhbmRlZCA/ICdmYSBmYS1jaGV2cm9uLWRvd24nIDogJ2ZhIGZhLWNoZXZyb24tcmlnaHQnO1xuICB9XG5cbiAgZ2V0QmFkZ2VTdHlsZXMoYmFkZ2U6IEJhZGdlKSB7XG4gICAgY29uc3QgZGVmYXVsdENvbG9ycyA9IHRoaXMuZ2V0RGVmYXVsdEJhZGdlQ29sb3JzKFxuICAgICAgYmFkZ2UudHlwZSB8fCBCYWRnZVR5cGUuSW5mb1xuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgY29sb3I6IGJhZGdlLmNvbG9yIHx8IGRlZmF1bHRDb2xvcnMuY29sb3IsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IGJhZGdlLmJhY2tncm91bmRDb2xvciB8fCBkZWZhdWx0Q29sb3JzLmJhY2tncm91bmRDb2xvcixcbiAgICAgIHBhZGRpbmc6ICcycHggOHB4JyxcbiAgICAgIGJvcmRlclJhZGl1czogJzVweCcsXG4gICAgICBmb250U2l6ZTogJzEycHgnLFxuICAgIH07XG4gIH1cblxuICBnZXREZWZhdWx0QmFkZ2VDb2xvcnModHlwZTogQmFkZ2VUeXBlKSB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlIEJhZGdlVHlwZS5JbmZvOlxuICAgICAgICByZXR1cm4geyBjb2xvcjogJ3doaXRlJywgYmFja2dyb3VuZENvbG9yOiAnIzE3YTJiOCcgfTtcbiAgICAgIGNhc2UgQmFkZ2VUeXBlLkRhbmdlcjpcbiAgICAgICAgcmV0dXJuIHsgY29sb3I6ICd3aGl0ZScsIGJhY2tncm91bmRDb2xvcjogJyNkYzM1NDUnIH07XG4gICAgICBjYXNlIEJhZGdlVHlwZS5XYXJuaW5nOlxuICAgICAgICByZXR1cm4geyBjb2xvcjogJ3doaXRlJywgYmFja2dyb3VuZENvbG9yOiAnI2ZmYzEwNycgfTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB7IGNvbG9yOiAnd2hpdGUnLCBiYWNrZ3JvdW5kQ29sb3I6ICcjNmM3NTdkJyB9O1xuICAgIH1cbiAgfVxuXG4gIG9uU2VhcmNoKHNlYXJjaFRlcm06IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChzZWFyY2hUZXJtLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgIHRoaXMuZmlsdGVyZWRNZW51cyA9IHRoaXMubWVudUNvbmZpZy5tZW51cztcbiAgICAgIHRoaXMuY29sbGFwc2VBbGxNZW51cygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBsb3dlckNhc2VTZWFyY2ggPSBzZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCk7XG4gICAgICB0aGlzLmZpbHRlcmVkTWVudXMgPSB0aGlzLm1lbnVDb25maWcubWVudXNcbiAgICAgICAgLm1hcCgobWVudSkgPT4gdGhpcy5zZWFyY2hJbk1lbnUoeyAuLi5tZW51IH0sIGxvd2VyQ2FzZVNlYXJjaCkpXG4gICAgICAgIC5maWx0ZXIoQm9vbGVhbikgYXMgTWVudVtdO1xuICAgIH1cbiAgfVxuXG4gIHNlYXJjaEluTWVudShtZW51OiBNZW51LCBzZWFyY2hUZXJtOiBzdHJpbmcpOiBNZW51IHwgbnVsbCB7XG4gICAgY29uc3QgaXNNYXRjaCA9IG1lbnUubGFiZWwudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXJtKTtcblxuICAgIGlmIChtZW51LmNoaWxkcmVuKSB7XG4gICAgICBjb25zdCBtYXRjaGluZ0NoaWxkcmVuID0gbWVudS5jaGlsZHJlblxuICAgICAgICAubWFwKChjaGlsZCkgPT4gdGhpcy5zZWFyY2hJbk1lbnUoY2hpbGQsIHNlYXJjaFRlcm0pKVxuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pIGFzIE1lbnVbXTtcblxuICAgICAgaWYgKG1hdGNoaW5nQ2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICBtZW51LmNoaWxkcmVuID0gbWF0Y2hpbmdDaGlsZHJlbjtcbiAgICAgICAgbWVudS5pc0V4cGFuZGVkID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIG1lbnU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGlzTWF0Y2ggPyBtZW51IDogbnVsbDtcbiAgfVxuXG4gIGNvbGxhcHNlQWxsTWVudXMoKTogdm9pZCB7XG4gICAgdGhpcy5tZW51Q29uZmlnLm1lbnVzLmZvckVhY2goKG1lbnUpID0+IHtcbiAgICAgIG1lbnUuaXNFeHBhbmRlZCA9IGZhbHNlO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0TWVudUl0ZW1TdHlsZXMoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgY29sb3I6IHRoaXMubWVudUNvbmZpZy5mb250Q29sb3IgfHwgJyMzMzMnLCAvLyBTZXQgZGVmYXVsdCBmb250IGNvbG9yIGlmIG5vdCBzcGVjaWZpZWQgaW4gY29uZmlnXG4gICAgfTtcbiAgfVxuXG4gIGdldE1lbnVMaW5rU3R5bGVzKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbG9yOiB0aGlzLm1lbnVDb25maWcuZm9udENvbG9yIHx8ICcjMzMzJyxcbiAgICAgICd0ZXh0LWRlY29yYXRpb24nOiAnbm9uZScsXG4gICAgICAnYm9yZGVyLXJhZGl1cyc6ICc4cHgnLFxuICAgICAgcGFkZGluZzogJzEwcHggMTVweCcsXG4gICAgICAnZm9udC1zaXplJzogJzE2cHgnLFxuICAgICAgdHJhbnNpdGlvbjogJ2JhY2tncm91bmQtY29sb3IgMC4ycywgY29sb3IgMC4ycycsXG4gICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAnYWxpZ24taXRlbXMnOiAnY2VudGVyJyxcbiAgICAgICc6aG92ZXInOiB7XG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhpcy5tZW51Q29uZmlnLmhvdmVyQ29sb3IgfHwgJyNmMWYxZjEnLFxuICAgICAgICBjb2xvcjogJyMxMTEnLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgZ2V0U3ViTWVudUxpbmtTdHlsZXMoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgY29sb3I6XG4gICAgICAgIHRoaXMubWVudUNvbmZpZy5mb250Q29sb3JTdWJNZW51IHx8IHRoaXMubWVudUNvbmZpZy5mb250Q29sb3IgfHwgJyM2NjYnLFxuICAgICAgJ3RleHQtZGVjb3JhdGlvbic6ICdub25lJyxcbiAgICAgICdib3JkZXItcmFkaXVzJzogJzVweCcsXG4gICAgICBwYWRkaW5nOiAnNXB4IDEwcHgnLFxuICAgICAgdHJhbnNpdGlvbjogJ2JhY2tncm91bmQtY29sb3IgMC4ycywgY29sb3IgMC4ycycsXG4gICAgICAnOmhvdmVyJzoge1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoaXMubWVudUNvbmZpZy5ob3ZlckNvbG9yU3ViTWVudSB8fCAnI2UwZTBlMCcsXG4gICAgICB9LFxuICAgIH07XG4gIH1cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYXBwbHlIb3ZlckVmZmVjdHMoKTtcbiAgfVxuXG4gIGFwcGx5SG92ZXJFZmZlY3RzKCk6IHZvaWQge1xuICAgIGNvbnN0IG1lbnVMaW5rcyA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdhLm1lbnUtbGluaycpO1xuICAgIGNvbnN0IHN1Yk1lbnVMaW5rcyA9XG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYS5zdWJtZW51LWxpbmsnKTtcblxuICAgIC8vIEFwcGx5IGhvdmVyIGVmZmVjdHMgZm9yIG1haW4gbWVudSBsaW5rc1xuICAgIG1lbnVMaW5rcy5mb3JFYWNoKChsaW5rOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4obGluaywgJ21vdXNlZW50ZXInLCAoKSA9PiB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgbGluayxcbiAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcicsXG4gICAgICAgICAgdGhpcy5tZW51Q29uZmlnLmhvdmVyQ29sb3IgfHwgJyNmMWYxZjEnXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgbGluayxcbiAgICAgICAgICAnY29sb3InLFxuICAgICAgICAgIHRoaXMubWVudUNvbmZpZy5ob3ZlckZvbnRDb2xvciB8fCAnd2hpdGUnXG4gICAgICAgICk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4obGluaywgJ21vdXNlbGVhdmUnLCAoKSA9PiB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUobGluaywgJ2JhY2tncm91bmQtY29sb3InKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgICBsaW5rLFxuICAgICAgICAgICdjb2xvcicsXG4gICAgICAgICAgdGhpcy5tZW51Q29uZmlnLmZvbnRDb2xvciB8fCAnIzMzMydcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgLy8gQXBwbHkgaG92ZXIgZWZmZWN0cyBmb3Igc3VibWVudSBsaW5rc1xuICAgIHN1Yk1lbnVMaW5rcy5mb3JFYWNoKChsaW5rOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4obGluaywgJ21vdXNlZW50ZXInLCAoKSA9PiB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgbGluayxcbiAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcicsXG4gICAgICAgICAgdGhpcy5tZW51Q29uZmlnLmhvdmVyQ29sb3JTdWJNZW51IHx8XG4gICAgICAgICAgICB0aGlzLm1lbnVDb25maWcuaG92ZXJDb2xvciB8fFxuICAgICAgICAgICAgJyNmMWYxZjEnXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgbGluayxcbiAgICAgICAgICAnY29sb3InLFxuICAgICAgICAgIHRoaXMubWVudUNvbmZpZy5ob3ZlckZvbnRDb2xvclN1Yk1lbnUgfHxcbiAgICAgICAgICAgIHRoaXMubWVudUNvbmZpZy5ob3ZlckZvbnRDb2xvciB8fFxuICAgICAgICAgICAgJyNmZmYnXG4gICAgICAgICk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4obGluaywgJ21vdXNlbGVhdmUnLCAoKSA9PiB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUobGluaywgJ2JhY2tncm91bmQtY29sb3InKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgICBsaW5rLFxuICAgICAgICAgICdjb2xvcicsXG4gICAgICAgICAgdGhpcy5tZW51Q29uZmlnLmZvbnRDb2xvclN1Yk1lbnUgfHxcbiAgICAgICAgICAgIHRoaXMubWVudUNvbmZpZy5mb250Q29sb3IgfHxcbiAgICAgICAgICAgICcjNjY2J1xuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwdC1zaWRlLWJhci1tZW51XCI+XG4gIDxwdC1jYXJkXG4gICAgKm5nSWY9XCJtZW51Q29uZmlnLnNlYXJjaGFibGVcIlxuICAgIFtjb25maWddPVwic2VhcmNoQ2FyZENvbmZpZ1wiXG4gICAgW25nQ2xhc3NdPVwieyAnc2lkZWJhci1oaWRkZW4nOiAhbWVudUNvbmZpZy5pc1Zpc2libGUgfVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWlucHV0XCI+XG4gICAgICA8cHQtdGV4dC1pbnB1dCBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiIFtmb3JtRmllbGRdPVwic2VhcmNoRmllbGRcIj5cbiAgICAgIDwvcHQtdGV4dC1pbnB1dD5cbiAgICA8L2Rpdj5cbiAgPC9wdC1jYXJkPlxuXG4gIDxwdC1jYXJkXG4gICAgW2NvbmZpZ109XCJjYXJkQ29uZmlnXCJcbiAgICBbbmdDbGFzc109XCJ7ICdzaWRlYmFyLWhpZGRlbic6ICFtZW51Q29uZmlnLmlzVmlzaWJsZSB9XCJcbiAgPlxuICAgIDx1bCBjbGFzcz1cIm1lbnUtbGlzdFwiPlxuICAgICAgPGxpXG4gICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZpbHRlcmVkTWVudXNcIlxuICAgICAgICBjbGFzcz1cIm1lbnUtaXRlbVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ21lbnUtaXRlbS1leHBhbmRlZCc6IGl0ZW0uaXNFeHBhbmRlZCB9XCJcbiAgICAgICAgW25nU3R5bGVdPVwiZ2V0TWVudUl0ZW1TdHlsZXMoKVwiXG4gICAgICA+XG4gICAgICAgIDwhLS0gTWFpbiBtZW51IGl0ZW1zIHdpdGhvdXQgY2hpbGRyZW4gLS0+XG4gICAgICAgIDxhXG4gICAgICAgICAgKm5nSWY9XCIhaXRlbS5jaGlsZHJlbj8ubGVuZ3RoXCJcbiAgICAgICAgICBbcm91dGVyTGlua109XCJpdGVtLnVybFwiXG4gICAgICAgICAgY2xhc3M9XCJtZW51LWxpbmtcIlxuICAgICAgICAgIFtuZ1N0eWxlXT1cImdldE1lbnVMaW5rU3R5bGVzKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPGkgW25nQ2xhc3NdPVwiaXRlbS5pY29uXCI+PC9pPlxuICAgICAgICAgIDxzcGFuPnt7IGl0ZW0ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5iYWRnZVwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJnZXRCYWRnZVN0eWxlcyhpdGVtLmJhZGdlKVwiXG4gICAgICAgICAgICBjbGFzcz1cImJhZGdlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBpdGVtLmJhZGdlLmNvdW50IH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2E+XG5cbiAgICAgICAgPCEtLSBNZW51IGl0ZW1zIHdpdGggY2hpbGRyZW4gLS0+XG4gICAgICAgIDxhXG4gICAgICAgICAgKm5nSWY9XCJpdGVtLmNoaWxkcmVuPy5sZW5ndGhcIlxuICAgICAgICAgIGNsYXNzPVwibWVudS1saW5rXCJcbiAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlTWVudShpdGVtLCAkZXZlbnQpXCJcbiAgICAgICAgICBbbmdTdHlsZV09XCJnZXRNZW51TGlua1N0eWxlcygpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpIFtuZ0NsYXNzXT1cIml0ZW0uaWNvblwiPjwvaT5cbiAgICAgICAgICA8c3Bhbj57eyBpdGVtLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAqbmdJZj1cIml0ZW0uYmFkZ2VcIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwiZ2V0QmFkZ2VTdHlsZXMoaXRlbS5iYWRnZSlcIlxuICAgICAgICAgICAgY2xhc3M9XCJiYWRnZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgaXRlbS5iYWRnZS5jb3VudCB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8aSBbbmdDbGFzc109XCJnZXRDaGV2cm9uQ2xhc3MoaXRlbSlcIiBjbGFzcz1cImNoZXZyb25cIj48L2k+XG4gICAgICAgIDwvYT5cblxuICAgICAgICA8IS0tIFN1Ym1lbnUgLS0+XG4gICAgICAgIDx1bCBjbGFzcz1cInN1Ym1lbnUtbGlzdFwiPlxuICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgY2hpbGQgb2YgaXRlbS5jaGlsZHJlblwiIGNsYXNzPVwic3VibWVudS1pdGVtXCI+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJjaGlsZC51cmxcIlxuICAgICAgICAgICAgICBjbGFzcz1cInN1Ym1lbnUtbGlua1wiXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cImdldFN1Yk1lbnVMaW5rU3R5bGVzKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aSBbbmdDbGFzc109XCJjaGlsZC5pY29uXCI+PC9pPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1Ym1lbnUtdGl0bGVcIj57eyBjaGlsZC5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAqbmdJZj1cImNoaWxkLmJhZGdlXCJcbiAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJnZXRCYWRnZVN0eWxlcyhjaGlsZC5iYWRnZSlcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFkZ2VcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgY2hpbGQuYmFkZ2UuY291bnQgfX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgICA8L2xpPlxuICAgIDwvdWw+XG4gIDwvcHQtY2FyZD5cbjwvZGl2PlxuIl19