carbon-components-angular 5.41.1 → 5.43.0

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 (89) hide show
  1. package/docs/documentation/components/ComboBox.html +4 -4
  2. package/docs/documentation/components/Select.html +281 -76
  3. package/docs/documentation/components/TextareaLabelComponent.html +346 -128
  4. package/docs/documentation/components/TimePickerSelect.html +180 -27
  5. package/docs/documentation/coverage.html +12 -12
  6. package/docs/documentation/directives/TextArea.html +58 -0
  7. package/docs/documentation/js/search/search_index.js +2 -2
  8. package/docs/documentation/modules/ComboBoxModule/dependencies.svg +4 -4
  9. package/docs/documentation/modules/ComboBoxModule.html +4 -4
  10. package/docs/documentation/modules/ContentSwitcherModule/dependencies.svg +4 -4
  11. package/docs/documentation/modules/ContentSwitcherModule.html +4 -4
  12. package/docs/documentation/modules/DatePickerInputModule/dependencies.svg +41 -37
  13. package/docs/documentation/modules/DatePickerInputModule.html +41 -37
  14. package/docs/documentation/modules/DatePickerModule/dependencies.svg +38 -38
  15. package/docs/documentation/modules/DatePickerModule.html +38 -38
  16. package/docs/documentation/modules/GridModule/dependencies.svg +60 -60
  17. package/docs/documentation/modules/GridModule.html +60 -60
  18. package/docs/documentation/modules/LoadingModule/dependencies.svg +4 -4
  19. package/docs/documentation/modules/LoadingModule.html +4 -4
  20. package/docs/documentation/modules/NFormsModule/dependencies.svg +4 -4
  21. package/docs/documentation/modules/NFormsModule.html +4 -4
  22. package/docs/documentation/modules/NumberModule/dependencies.svg +4 -4
  23. package/docs/documentation/modules/NumberModule.html +4 -4
  24. package/docs/documentation/modules/ProgressIndicatorModule/dependencies.svg +4 -4
  25. package/docs/documentation/modules/ProgressIndicatorModule.html +4 -4
  26. package/docs/documentation/modules/RadioModule/dependencies.svg +4 -4
  27. package/docs/documentation/modules/RadioModule.html +4 -4
  28. package/docs/documentation/modules/SelectModule/dependencies.svg +58 -58
  29. package/docs/documentation/modules/SelectModule.html +58 -58
  30. package/docs/documentation/modules/SliderModule/dependencies.svg +4 -4
  31. package/docs/documentation/modules/SliderModule.html +4 -4
  32. package/docs/documentation/modules/TableModule/dependencies.svg +216 -216
  33. package/docs/documentation/modules/TableModule.html +216 -216
  34. package/docs/documentation/modules/TabsModule/dependencies.svg +69 -69
  35. package/docs/documentation/modules/TabsModule.html +69 -69
  36. package/docs/documentation/modules/ThemeModule/dependencies.svg +14 -14
  37. package/docs/documentation/modules/ThemeModule.html +14 -14
  38. package/docs/documentation/modules/TilesModule/dependencies.svg +74 -74
  39. package/docs/documentation/modules/TilesModule.html +74 -74
  40. package/docs/documentation/modules/TimePickerModule/dependencies.svg +26 -26
  41. package/docs/documentation/modules/TimePickerModule.html +26 -26
  42. package/docs/documentation/modules/TimePickerSelectModule/dependencies.svg +42 -46
  43. package/docs/documentation/modules/TimePickerSelectModule.html +42 -46
  44. package/docs/documentation/modules/ToggleModule/dependencies.svg +17 -17
  45. package/docs/documentation/modules/ToggleModule.html +17 -17
  46. package/docs/documentation/modules/ToggletipModule/dependencies.svg +37 -37
  47. package/docs/documentation/modules/ToggletipModule.html +37 -37
  48. package/docs/documentation/modules/TooltipModule/dependencies.svg +28 -28
  49. package/docs/documentation/modules/TooltipModule.html +28 -28
  50. package/docs/documentation/modules/TreeviewModule/dependencies.svg +36 -36
  51. package/docs/documentation/modules/TreeviewModule.html +36 -36
  52. package/docs/documentation/modules/UIShellModule/dependencies.svg +4 -4
  53. package/docs/documentation/modules/UIShellModule.html +4 -4
  54. package/docs/documentation.json +401 -172
  55. package/docs/storybook/{1345.9eabf5e2.iframe.bundle.js → 1345.ec2701f8.iframe.bundle.js} +1 -1
  56. package/docs/storybook/{9672.7b7a4af9.iframe.bundle.js → 9672.84e90325.iframe.bundle.js} +1 -1
  57. package/docs/storybook/{combobox-combobox-stories.3bbada2d.iframe.bundle.js → combobox-combobox-stories.84acbfa0.iframe.bundle.js} +1 -1
  58. package/docs/storybook/iframe.html +2 -2
  59. package/docs/storybook/index.json +1 -1
  60. package/docs/storybook/input-textarea-stories.f6532f41.iframe.bundle.js +1 -0
  61. package/docs/storybook/main.fa8e9d39.iframe.bundle.js +1 -0
  62. package/docs/storybook/project.json +1 -1
  63. package/docs/storybook/{runtime~main.4b19f36d.iframe.bundle.js → runtime~main.4c0184d4.iframe.bundle.js} +1 -1
  64. package/docs/storybook/select-select-stories.5ddb23ab.iframe.bundle.js +1 -0
  65. package/docs/storybook/stories.json +1 -1
  66. package/esm2020/combobox/combobox.component.mjs +3 -3
  67. package/esm2020/input/label.component.mjs +1 -1
  68. package/esm2020/input/text-area.directive.mjs +8 -2
  69. package/esm2020/input/textarea-label.component.mjs +186 -106
  70. package/esm2020/select/select.component.mjs +102 -32
  71. package/fesm2015/carbon-components-angular-combobox.mjs +2 -2
  72. package/fesm2015/carbon-components-angular-combobox.mjs.map +1 -1
  73. package/fesm2015/carbon-components-angular-input.mjs +193 -107
  74. package/fesm2015/carbon-components-angular-input.mjs.map +1 -1
  75. package/fesm2015/carbon-components-angular-select.mjs +101 -31
  76. package/fesm2015/carbon-components-angular-select.mjs.map +1 -1
  77. package/fesm2020/carbon-components-angular-combobox.mjs +2 -2
  78. package/fesm2020/carbon-components-angular-combobox.mjs.map +1 -1
  79. package/fesm2020/carbon-components-angular-input.mjs +193 -107
  80. package/fesm2020/carbon-components-angular-input.mjs.map +1 -1
  81. package/fesm2020/carbon-components-angular-select.mjs +101 -31
  82. package/fesm2020/carbon-components-angular-select.mjs.map +1 -1
  83. package/input/text-area.directive.d.ts +1 -0
  84. package/input/textarea-label.component.d.ts +7 -1
  85. package/package.json +1 -1
  86. package/select/select.component.d.ts +7 -1
  87. package/docs/storybook/input-textarea-stories.1a3b5e80.iframe.bundle.js +0 -1
  88. package/docs/storybook/main.0398cabf.iframe.bundle.js +0 -1
  89. package/docs/storybook/select-select-stories.c1077d92.iframe.bundle.js +0 -1
@@ -46,11 +46,21 @@ export class TextareaLabelComponent {
46
46
  * Set to `true` to show a warning (contents set by warningText)
47
47
  */
48
48
  this.warn = false;
49
+ /**
50
+ * Experimental: enable fluid state
51
+ */
52
+ this.fluid = false;
49
53
  this.labelClass = true;
50
54
  }
51
55
  get isReadonly() {
52
56
  return this.wrapper?.nativeElement.querySelector("textarea")?.readOnly ?? false;
53
57
  }
58
+ get fluidClass() {
59
+ return this.fluid && !this.skeleton;
60
+ }
61
+ get fluidSkeletonClass() {
62
+ return this.fluid && this.skeleton;
63
+ }
54
64
  /**
55
65
  * Sets the id on the input item associated with the `Label`.
56
66
  */
@@ -86,117 +96,179 @@ export class TextareaLabelComponent {
86
96
  */
87
97
  TextareaLabelComponent.labelCounter = 0;
88
98
  TextareaLabelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TextareaLabelComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
89
- TextareaLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TextareaLabelComponent, selector: "cds-textarea-label, ibm-textarea-label", inputs: { labelInputID: "labelInputID", disabled: "disabled", skeleton: "skeleton", labelTemplate: "labelTemplate", textAreaTemplate: "textAreaTemplate", helperText: "helperText", invalidText: "invalidText", invalid: "invalid", warn: "warn", warnText: "warnText", ariaLabel: "ariaLabel" }, host: { properties: { "class.cds--form-item": "this.labelClass", "class.cds--text-area__wrapper--readonly": "this.isReadonly" } }, queries: [{ propertyName: "textArea", first: true, predicate: TextArea, descendants: true }], viewQueries: [{ propertyName: "wrapper", first: true, predicate: ["wrapper"], descendants: true }], ngImport: i0, template: `
90
- <label
91
- [for]="labelInputID"
92
- [attr.aria-label]="ariaLabel"
93
- class="cds--label"
94
- [ngClass]="{
95
- 'cds--label--disabled': disabled,
96
- 'cds--skeleton': skeleton
97
- }">
98
- <ng-template *ngIf="labelTemplate; else labelContent" [ngTemplateOutlet]="labelTemplate"></ng-template>
99
- <ng-template #labelContent>
100
- <ng-content></ng-content>
101
- </ng-template>
102
- </label>
103
- <div
104
- class="cds--text-area__wrapper"
105
- [ngClass]="{
106
- 'cds--text-input__field-wrapper--warning': warn
107
- }"
108
- [attr.data-invalid]="(invalid ? true : null)"
109
- #wrapper>
110
- <svg
111
- *ngIf="invalid"
112
- cdsIcon="warning--filled"
113
- size="16"
114
- class="cds--text-area__invalid-icon">
115
- </svg>
116
- <svg
117
- *ngIf="!invalid && warn"
118
- cdsIcon="warning--alt--filled"
119
- size="16"
120
- class="cds--text-input__invalid-icon cds--text-input__invalid-icon--warning">
121
- </svg>
122
- <ng-template *ngIf="textAreaTemplate; else textAreaContent" [ngTemplateOutlet]="textAreaTemplate"></ng-template>
123
- <ng-template #textAreaContent>
124
- <ng-content select="[cdsTextArea],[ibmTextArea],textarea"></ng-content>
125
- </ng-template>
126
- </div>
127
- <div
128
- *ngIf="!skeleton && helperText && !invalid && !warn"
129
- class="cds--form__helper-text"
130
- [ngClass]="{'cds--form__helper-text--disabled': disabled}">
131
- <ng-container *ngIf="!isTemplate(helperText)">{{helperText}}</ng-container>
132
- <ng-template *ngIf="isTemplate(helperText)" [ngTemplateOutlet]="helperText"></ng-template>
133
- </div>
134
- <div *ngIf="invalid" class="cds--form-requirement">
135
- <ng-container *ngIf="!isTemplate(invalidText)">{{invalidText}}</ng-container>
136
- <ng-template *ngIf="isTemplate(invalidText)" [ngTemplateOutlet]="invalidText"></ng-template>
137
- </div>
138
- <div *ngIf="!invalid && warn" class="cds--form-requirement">
139
- <ng-container *ngIf="!isTemplate(warnText)">{{warnText}}</ng-container>
140
- <ng-template *ngIf="isTemplate(warnText)" [ngTemplateOutlet]="warnText"></ng-template>
141
- </div>
99
+ TextareaLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TextareaLabelComponent, selector: "cds-textarea-label, ibm-textarea-label", inputs: { labelInputID: "labelInputID", disabled: "disabled", skeleton: "skeleton", labelTemplate: "labelTemplate", textAreaTemplate: "textAreaTemplate", helperText: "helperText", invalidText: "invalidText", invalid: "invalid", warn: "warn", warnText: "warnText", ariaLabel: "ariaLabel", fluid: "fluid" }, host: { properties: { "class.cds--form-item": "this.labelClass", "class.cds--text-area__wrapper--readonly": "this.isReadonly", "class.cds--text-area--fluid": "this.fluidClass", "class.cds--text-area--fluid__skeleton": "this.fluidSkeletonClass" } }, queries: [{ propertyName: "textArea", first: true, predicate: TextArea, descendants: true }], viewQueries: [{ propertyName: "wrapper", first: true, predicate: ["wrapper"], descendants: true }], ngImport: i0, template: `
100
+ <ng-container *ngIf="skeleton">
101
+ <span class="cds--label cds--skeleton"></span>
102
+ <div class="cds--text-area cds--skeleton"></div>
103
+ </ng-container>
104
+ <ng-container *ngIf="!skeleton">
105
+ <div class="cds--text-area__label-wrapper">
106
+ <label
107
+ [for]="labelInputID"
108
+ [attr.aria-label]="ariaLabel"
109
+ class="cds--label"
110
+ [ngClass]="{
111
+ 'cds--label--disabled': disabled
112
+ }">
113
+ <ng-template *ngIf="labelTemplate; else labelContent" [ngTemplateOutlet]="labelTemplate"></ng-template>
114
+ <ng-template #labelContent>
115
+ <ng-content></ng-content>
116
+ </ng-template>
117
+ </label>
118
+ </div>
119
+ <div
120
+ class="cds--text-area__wrapper"
121
+ [ngClass]="{
122
+ 'cds--text-area__wrapper--warn': warn
123
+ }"
124
+ [attr.data-invalid]="(invalid ? true : null)"
125
+ #wrapper>
126
+ <svg
127
+ *ngIf="!fluid && invalid"
128
+ cdsIcon="warning--filled"
129
+ size="16"
130
+ class="cds--text-area__invalid-icon">
131
+ </svg>
132
+ <svg
133
+ *ngIf="!fluid && !invalid && warn"
134
+ cdsIcon="warning--alt--filled"
135
+ size="16"
136
+ class="cds--text-area__invalid-icon cds--text-area__invalid-icon--warning">
137
+ </svg>
138
+ <ng-template *ngIf="textAreaTemplate; else textAreaContent" [ngTemplateOutlet]="textAreaTemplate"></ng-template>
139
+ <ng-template #textAreaContent>
140
+ <ng-content select="[cdsTextArea],[ibmTextArea],textarea"></ng-content>
141
+ </ng-template>
142
+
143
+ <ng-container *ngIf="fluid">
144
+ <hr class="cds--text-area__divider" />
145
+ <div *ngIf="invalid" class="cds--form-requirement">
146
+ <ng-container *ngIf="!isTemplate(invalidText)">{{invalidText}}</ng-container>
147
+ <ng-template *ngIf="isTemplate(invalidText)" [ngTemplateOutlet]="invalidText"></ng-template>
148
+ <svg
149
+ cdsIcon="warning--filled"
150
+ size="16"
151
+ class="cds--text-area__invalid-icon">
152
+ </svg>
153
+ </div>
154
+ <div *ngIf="!invalid && warn" class="cds--form-requirement">
155
+ <ng-container *ngIf="!isTemplate(warnText)">{{warnText}}</ng-container>
156
+ <ng-template *ngIf="isTemplate(warnText)" [ngTemplateOutlet]="warnText"></ng-template>
157
+ <svg
158
+ cdsIcon="warning--alt--filled"
159
+ size="16"
160
+ class="cds--text-area__invalid-icon cds--text-area__invalid-icon--warning">
161
+ </svg>
162
+ </div>
163
+ </ng-container>
164
+ </div>
165
+ <ng-container *ngIf="!fluid">
166
+ <div
167
+ *ngIf="helperText && !invalid && !warn"
168
+ class="cds--form__helper-text"
169
+ [ngClass]="{'cds--form__helper-text--disabled': disabled}">
170
+ <ng-container *ngIf="!isTemplate(helperText)">{{helperText}}</ng-container>
171
+ <ng-template *ngIf="isTemplate(helperText)" [ngTemplateOutlet]="helperText"></ng-template>
172
+ </div>
173
+ <div *ngIf="invalid" class="cds--form-requirement">
174
+ <ng-container *ngIf="!isTemplate(invalidText)">{{invalidText}}</ng-container>
175
+ <ng-template *ngIf="isTemplate(invalidText)" [ngTemplateOutlet]="invalidText"></ng-template>
176
+ </div>
177
+ <div *ngIf="!invalid && warn" class="cds--form-requirement">
178
+ <ng-container *ngIf="!isTemplate(warnText)">{{warnText}}</ng-container>
179
+ <ng-template *ngIf="isTemplate(warnText)" [ngTemplateOutlet]="warnText"></ng-template>
180
+ </div>
181
+ </ng-container>
182
+ </ng-container>
142
183
  `, isInline: true, 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.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }] });
143
184
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TextareaLabelComponent, decorators: [{
144
185
  type: Component,
145
186
  args: [{
146
187
  selector: "cds-textarea-label, ibm-textarea-label",
147
188
  template: `
148
- <label
149
- [for]="labelInputID"
150
- [attr.aria-label]="ariaLabel"
151
- class="cds--label"
152
- [ngClass]="{
153
- 'cds--label--disabled': disabled,
154
- 'cds--skeleton': skeleton
155
- }">
156
- <ng-template *ngIf="labelTemplate; else labelContent" [ngTemplateOutlet]="labelTemplate"></ng-template>
157
- <ng-template #labelContent>
158
- <ng-content></ng-content>
159
- </ng-template>
160
- </label>
161
- <div
162
- class="cds--text-area__wrapper"
163
- [ngClass]="{
164
- 'cds--text-input__field-wrapper--warning': warn
165
- }"
166
- [attr.data-invalid]="(invalid ? true : null)"
167
- #wrapper>
168
- <svg
169
- *ngIf="invalid"
170
- cdsIcon="warning--filled"
171
- size="16"
172
- class="cds--text-area__invalid-icon">
173
- </svg>
174
- <svg
175
- *ngIf="!invalid && warn"
176
- cdsIcon="warning--alt--filled"
177
- size="16"
178
- class="cds--text-input__invalid-icon cds--text-input__invalid-icon--warning">
179
- </svg>
180
- <ng-template *ngIf="textAreaTemplate; else textAreaContent" [ngTemplateOutlet]="textAreaTemplate"></ng-template>
181
- <ng-template #textAreaContent>
182
- <ng-content select="[cdsTextArea],[ibmTextArea],textarea"></ng-content>
183
- </ng-template>
184
- </div>
185
- <div
186
- *ngIf="!skeleton && helperText && !invalid && !warn"
187
- class="cds--form__helper-text"
188
- [ngClass]="{'cds--form__helper-text--disabled': disabled}">
189
- <ng-container *ngIf="!isTemplate(helperText)">{{helperText}}</ng-container>
190
- <ng-template *ngIf="isTemplate(helperText)" [ngTemplateOutlet]="helperText"></ng-template>
191
- </div>
192
- <div *ngIf="invalid" class="cds--form-requirement">
193
- <ng-container *ngIf="!isTemplate(invalidText)">{{invalidText}}</ng-container>
194
- <ng-template *ngIf="isTemplate(invalidText)" [ngTemplateOutlet]="invalidText"></ng-template>
195
- </div>
196
- <div *ngIf="!invalid && warn" class="cds--form-requirement">
197
- <ng-container *ngIf="!isTemplate(warnText)">{{warnText}}</ng-container>
198
- <ng-template *ngIf="isTemplate(warnText)" [ngTemplateOutlet]="warnText"></ng-template>
199
- </div>
189
+ <ng-container *ngIf="skeleton">
190
+ <span class="cds--label cds--skeleton"></span>
191
+ <div class="cds--text-area cds--skeleton"></div>
192
+ </ng-container>
193
+ <ng-container *ngIf="!skeleton">
194
+ <div class="cds--text-area__label-wrapper">
195
+ <label
196
+ [for]="labelInputID"
197
+ [attr.aria-label]="ariaLabel"
198
+ class="cds--label"
199
+ [ngClass]="{
200
+ 'cds--label--disabled': disabled
201
+ }">
202
+ <ng-template *ngIf="labelTemplate; else labelContent" [ngTemplateOutlet]="labelTemplate"></ng-template>
203
+ <ng-template #labelContent>
204
+ <ng-content></ng-content>
205
+ </ng-template>
206
+ </label>
207
+ </div>
208
+ <div
209
+ class="cds--text-area__wrapper"
210
+ [ngClass]="{
211
+ 'cds--text-area__wrapper--warn': warn
212
+ }"
213
+ [attr.data-invalid]="(invalid ? true : null)"
214
+ #wrapper>
215
+ <svg
216
+ *ngIf="!fluid && invalid"
217
+ cdsIcon="warning--filled"
218
+ size="16"
219
+ class="cds--text-area__invalid-icon">
220
+ </svg>
221
+ <svg
222
+ *ngIf="!fluid && !invalid && warn"
223
+ cdsIcon="warning--alt--filled"
224
+ size="16"
225
+ class="cds--text-area__invalid-icon cds--text-area__invalid-icon--warning">
226
+ </svg>
227
+ <ng-template *ngIf="textAreaTemplate; else textAreaContent" [ngTemplateOutlet]="textAreaTemplate"></ng-template>
228
+ <ng-template #textAreaContent>
229
+ <ng-content select="[cdsTextArea],[ibmTextArea],textarea"></ng-content>
230
+ </ng-template>
231
+
232
+ <ng-container *ngIf="fluid">
233
+ <hr class="cds--text-area__divider" />
234
+ <div *ngIf="invalid" class="cds--form-requirement">
235
+ <ng-container *ngIf="!isTemplate(invalidText)">{{invalidText}}</ng-container>
236
+ <ng-template *ngIf="isTemplate(invalidText)" [ngTemplateOutlet]="invalidText"></ng-template>
237
+ <svg
238
+ cdsIcon="warning--filled"
239
+ size="16"
240
+ class="cds--text-area__invalid-icon">
241
+ </svg>
242
+ </div>
243
+ <div *ngIf="!invalid && warn" class="cds--form-requirement">
244
+ <ng-container *ngIf="!isTemplate(warnText)">{{warnText}}</ng-container>
245
+ <ng-template *ngIf="isTemplate(warnText)" [ngTemplateOutlet]="warnText"></ng-template>
246
+ <svg
247
+ cdsIcon="warning--alt--filled"
248
+ size="16"
249
+ class="cds--text-area__invalid-icon cds--text-area__invalid-icon--warning">
250
+ </svg>
251
+ </div>
252
+ </ng-container>
253
+ </div>
254
+ <ng-container *ngIf="!fluid">
255
+ <div
256
+ *ngIf="helperText && !invalid && !warn"
257
+ class="cds--form__helper-text"
258
+ [ngClass]="{'cds--form__helper-text--disabled': disabled}">
259
+ <ng-container *ngIf="!isTemplate(helperText)">{{helperText}}</ng-container>
260
+ <ng-template *ngIf="isTemplate(helperText)" [ngTemplateOutlet]="helperText"></ng-template>
261
+ </div>
262
+ <div *ngIf="invalid" class="cds--form-requirement">
263
+ <ng-container *ngIf="!isTemplate(invalidText)">{{invalidText}}</ng-container>
264
+ <ng-template *ngIf="isTemplate(invalidText)" [ngTemplateOutlet]="invalidText"></ng-template>
265
+ </div>
266
+ <div *ngIf="!invalid && warn" class="cds--form-requirement">
267
+ <ng-container *ngIf="!isTemplate(warnText)">{{warnText}}</ng-container>
268
+ <ng-template *ngIf="isTemplate(warnText)" [ngTemplateOutlet]="warnText"></ng-template>
269
+ </div>
270
+ </ng-container>
271
+ </ng-container>
200
272
  `
201
273
  }]
202
274
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { labelInputID: [{
@@ -221,6 +293,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
221
293
  type: Input
222
294
  }], ariaLabel: [{
223
295
  type: Input
296
+ }], fluid: [{
297
+ type: Input
224
298
  }], wrapper: [{
225
299
  type: ViewChild,
226
300
  args: ["wrapper", { static: false }]
@@ -233,5 +307,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
233
307
  }], isReadonly: [{
234
308
  type: HostBinding,
235
309
  args: ["class.cds--text-area__wrapper--readonly"]
310
+ }], fluidClass: [{
311
+ type: HostBinding,
312
+ args: ["class.cds--text-area--fluid"]
313
+ }], fluidSkeletonClass: [{
314
+ type: HostBinding,
315
+ args: ["class.cds--text-area--fluid__skeleton"]
236
316
  }] } });
237
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEtbGFiZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2lucHV0L3RleHRhcmVhLWxhYmVsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sU0FBUyxFQUNULEtBQUssRUFHTCxXQUFXLEVBQ1gsV0FBVyxFQUNYLFNBQVMsRUFDVCxZQUFZLEVBRVosTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7O0FBRWpEOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQTBESCxNQUFNLE9BQU8sc0JBQXNCO0lBK0RsQzs7T0FFRztJQUNILFlBQXNCLGlCQUFvQztRQUFwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBN0QxRDs7O1VBR0U7UUFDTyxpQkFBWSxHQUFHLGVBQWUsR0FBRyxzQkFBc0IsQ0FBQyxZQUFZLENBQUM7UUFFOUU7O1dBRUc7UUFDTSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzFCOztXQUVHO1FBQ00sYUFBUSxHQUFHLEtBQUssQ0FBQztRQWdCMUI7O1dBRUc7UUFDTSxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3pCOztZQUVJO1FBQ0ssU0FBSSxHQUFHLEtBQUssQ0FBQztRQWdCZSxlQUFVLEdBQUcsSUFBSSxDQUFDO0lBU00sQ0FBQztJQVA5RCxJQUE0RCxVQUFVO1FBQ3JFLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxFQUFFLFFBQVEsSUFBSSxLQUFLLENBQUM7SUFDakYsQ0FBQztJQU9EOztPQUVHO0lBQ0gsZUFBZTtRQUNkLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNqQiwrQ0FBK0M7WUFDL0MsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzFFLElBQUksWUFBWSxFQUFFO2dCQUNqQixnRUFBZ0U7Z0JBQ2hFLElBQUksWUFBWSxDQUFDLEVBQUUsRUFBRTtvQkFDcEIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUMsRUFBRSxDQUFDO29CQUNwQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7aUJBQ3ZDO2dCQUNELFlBQVksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDbkQsT0FBTzthQUNQO1lBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25FLElBQUksVUFBVSxFQUFFO2dCQUNmLElBQUksVUFBVSxDQUFDLEVBQUUsRUFBRTtvQkFDbEIsSUFBSSxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUMsRUFBRSxDQUFDO29CQUNsQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7aUJBQ3ZDO2dCQUNELFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUNqRDtTQUNEO0lBQ0YsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFLO1FBQ3RCLE9BQU8sS0FBSyxZQUFZLFdBQVcsQ0FBQztJQUNyQyxDQUFDOztBQWpHRDs7R0FFRztBQUNJLG1DQUFZLEdBQUcsQ0FBQyxDQUFDO21IQUpaLHNCQUFzQjt1R0FBdEIsc0JBQXNCLHloQkF1RHBCLFFBQVEsb0pBOUdaOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXFEVDsyRkFFVyxzQkFBc0I7a0JBekRsQyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSx3Q0FBd0M7b0JBQ2xELFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFxRFQ7aUJBQ0Q7d0dBVVMsWUFBWTtzQkFBcEIsS0FBSztnQkFLRyxRQUFRO3NCQUFoQixLQUFLO2dCQUlHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBTUcsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBSUcsVUFBVTtzQkFBbEIsS0FBSztnQkFJRyxXQUFXO3NCQUFuQixLQUFLO2dCQUlHLE9BQU87c0JBQWYsS0FBSztnQkFJRyxJQUFJO3NCQUFaLEtBQUs7Z0JBSUcsUUFBUTtzQkFBaEIsS0FBSztnQkFJRyxTQUFTO3NCQUFqQixLQUFLO2dCQUdtQyxPQUFPO3NCQUEvQyxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBR0ksUUFBUTtzQkFBbEQsWUFBWTt1QkFBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUVKLFVBQVU7c0JBQTlDLFdBQVc7dUJBQUMsc0JBQXNCO2dCQUV5QixVQUFVO3NCQUFyRSxXQUFXO3VCQUFDLHlDQUF5QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENvbXBvbmVudCxcblx0SW5wdXQsXG5cdEFmdGVyVmlld0luaXQsXG5cdEVsZW1lbnRSZWYsXG5cdEhvc3RCaW5kaW5nLFxuXHRUZW1wbGF0ZVJlZixcblx0Vmlld0NoaWxkLFxuXHRDb250ZW50Q2hpbGQsXG5cdENoYW5nZURldGVjdG9yUmVmXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IFRleHRBcmVhIH0gZnJvbSBcIi4vdGV4dC1hcmVhLmRpcmVjdGl2ZVwiO1xuXG4vKipcbiAqIEdldCBzdGFydGVkIHdpdGggaW1wb3J0aW5nIHRoZSBtb2R1bGU6XG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgSW5wdXRNb2R1bGUgfSBmcm9tICdjYXJib24tY29tcG9uZW50cy1hbmd1bGFyJztcbiAqIGBgYFxuICpcbiAqIGBgYGh0bWxcbiAqIDxjZHMtdGV4dGFyZWEtbGFiZWw+XG4gKiBcdExhYmVsXG4gKiBcdDx0ZXh0YXJlYSBjZHNUZXh0QXJlYSBjbGFzcz1cInRleHRhcmVhLWZpZWxkXCI+XG4gKiA8L2Nkcy10ZXh0YXJlYS1sYWJlbD5cbiAqIGBgYFxuICpcbiAqIFtTZWUgZGVtb10oLi4vLi4vP3BhdGg9L3N0b3J5L2NvbXBvbmVudHMtaW5wdXQtdGV4dC1hcmVhLS1iYXNpYylcbiAqL1xuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiBcImNkcy10ZXh0YXJlYS1sYWJlbCwgaWJtLXRleHRhcmVhLWxhYmVsXCIsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PGxhYmVsXG5cdFx0XHRbZm9yXT1cImxhYmVsSW5wdXRJRFwiXG5cdFx0XHRbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG5cdFx0XHRjbGFzcz1cImNkcy0tbGFiZWxcIlxuXHRcdFx0W25nQ2xhc3NdPVwie1xuXHRcdFx0XHQnY2RzLS1sYWJlbC0tZGlzYWJsZWQnOiBkaXNhYmxlZCxcblx0XHRcdFx0J2Nkcy0tc2tlbGV0b24nOiBza2VsZXRvblxuXHRcdFx0fVwiPlxuXHRcdFx0PG5nLXRlbXBsYXRlICpuZ0lmPVwibGFiZWxUZW1wbGF0ZTsgZWxzZSBsYWJlbENvbnRlbnRcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJsYWJlbFRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdDxuZy10ZW1wbGF0ZSAjbGFiZWxDb250ZW50PlxuXHRcdFx0XHQ8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cdFx0XHQ8L25nLXRlbXBsYXRlPlxuXHRcdDwvbGFiZWw+XG5cdFx0PGRpdlxuXHRcdFx0Y2xhc3M9XCJjZHMtLXRleHQtYXJlYV9fd3JhcHBlclwiXG5cdFx0XHRbbmdDbGFzc109XCJ7XG5cdFx0XHRcdCdjZHMtLXRleHQtaW5wdXRfX2ZpZWxkLXdyYXBwZXItLXdhcm5pbmcnOiB3YXJuXG5cdFx0XHR9XCJcblx0XHRcdFthdHRyLmRhdGEtaW52YWxpZF09XCIoaW52YWxpZCA/IHRydWUgOiBudWxsKVwiXG5cdFx0XHQjd3JhcHBlcj5cblx0XHRcdDxzdmdcblx0XHRcdFx0Km5nSWY9XCJpbnZhbGlkXCJcblx0XHRcdFx0Y2RzSWNvbj1cIndhcm5pbmctLWZpbGxlZFwiXG5cdFx0XHRcdHNpemU9XCIxNlwiXG5cdFx0XHRcdGNsYXNzPVwiY2RzLS10ZXh0LWFyZWFfX2ludmFsaWQtaWNvblwiPlxuXHRcdFx0PC9zdmc+XG5cdFx0XHQ8c3ZnXG5cdFx0XHRcdCpuZ0lmPVwiIWludmFsaWQgJiYgd2FyblwiXG5cdFx0XHRcdGNkc0ljb249XCJ3YXJuaW5nLS1hbHQtLWZpbGxlZFwiXG5cdFx0XHRcdHNpemU9XCIxNlwiXG5cdFx0XHRcdGNsYXNzPVwiY2RzLS10ZXh0LWlucHV0X19pbnZhbGlkLWljb24gY2RzLS10ZXh0LWlucHV0X19pbnZhbGlkLWljb24tLXdhcm5pbmdcIj5cblx0XHRcdDwvc3ZnPlxuXHRcdFx0PG5nLXRlbXBsYXRlICpuZ0lmPVwidGV4dEFyZWFUZW1wbGF0ZTsgZWxzZSB0ZXh0QXJlYUNvbnRlbnRcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJ0ZXh0QXJlYVRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdDxuZy10ZW1wbGF0ZSAjdGV4dEFyZWFDb250ZW50PlxuXHRcdFx0XHQ8bmctY29udGVudCBzZWxlY3Q9XCJbY2RzVGV4dEFyZWFdLFtpYm1UZXh0QXJlYV0sdGV4dGFyZWFcIj48L25nLWNvbnRlbnQ+XG5cdFx0XHQ8L25nLXRlbXBsYXRlPlxuXHRcdDwvZGl2PlxuXHRcdDxkaXZcblx0XHRcdCpuZ0lmPVwiIXNrZWxldG9uICYmIGhlbHBlclRleHQgJiYgIWludmFsaWQgJiYgIXdhcm5cIlxuXHRcdFx0Y2xhc3M9XCJjZHMtLWZvcm1fX2hlbHBlci10ZXh0XCJcblx0XHRcdFtuZ0NsYXNzXT1cInsnY2RzLS1mb3JtX19oZWxwZXItdGV4dC0tZGlzYWJsZWQnOiBkaXNhYmxlZH1cIj5cblx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNUZW1wbGF0ZShoZWxwZXJUZXh0KVwiPnt7aGVscGVyVGV4dH19PC9uZy1jb250YWluZXI+XG5cdFx0XHQ8bmctdGVtcGxhdGUgKm5nSWY9XCJpc1RlbXBsYXRlKGhlbHBlclRleHQpXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVscGVyVGV4dFwiPjwvbmctdGVtcGxhdGU+XG5cdFx0PC9kaXY+XG5cdFx0PGRpdiAqbmdJZj1cImludmFsaWRcIiBjbGFzcz1cImNkcy0tZm9ybS1yZXF1aXJlbWVudFwiPlxuXHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1RlbXBsYXRlKGludmFsaWRUZXh0KVwiPnt7aW52YWxpZFRleHR9fTwvbmctY29udGFpbmVyPlxuXHRcdFx0PG5nLXRlbXBsYXRlICpuZ0lmPVwiaXNUZW1wbGF0ZShpbnZhbGlkVGV4dClcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJpbnZhbGlkVGV4dFwiPjwvbmctdGVtcGxhdGU+XG5cdFx0PC9kaXY+XG5cdFx0PGRpdiAqbmdJZj1cIiFpbnZhbGlkICYmIHdhcm5cIiBjbGFzcz1cImNkcy0tZm9ybS1yZXF1aXJlbWVudFwiPlxuXHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1RlbXBsYXRlKHdhcm5UZXh0KVwiPnt7d2FyblRleHR9fTwvbmctY29udGFpbmVyPlxuXHRcdFx0PG5nLXRlbXBsYXRlICpuZ0lmPVwiaXNUZW1wbGF0ZSh3YXJuVGV4dClcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJ3YXJuVGV4dFwiPjwvbmctdGVtcGxhdGU+XG5cdFx0PC9kaXY+XG5cdGBcbn0pXG5leHBvcnQgY2xhc3MgVGV4dGFyZWFMYWJlbENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXHQvKipcblx0ICogVXNlZCB0byBidWlsZCB0aGUgaWQgb2YgdGhlIGlucHV0IGl0ZW0gYXNzb2NpYXRlZCB3aXRoIHRoZSBgTGFiZWxgLlxuXHQgKi9cblx0c3RhdGljIGxhYmVsQ291bnRlciA9IDA7XG5cdC8qKlxuXHQgKiBUaGUgaWQgb2YgdGhlIGlucHV0IGl0ZW0gYXNzb2NpYXRlZCB3aXRoIHRoZSBgTGFiZWxgLiBUaGlzIHZhbHVlIGlzIGFsc28gdXNlZCB0byBhc3NvY2lhdGUgdGhlIGBMYWJlbGAgd2l0aFxuXHQgKiBpdHMgaW5wdXQgY291bnRlcnBhcnQgdGhyb3VnaCB0aGUgJ2ZvcicgYXR0cmlidXRlLlxuXHQqL1xuXHRASW5wdXQoKSBsYWJlbElucHV0SUQgPSBcImlibS10ZXh0YXJlYS1cIiArIFRleHRhcmVhTGFiZWxDb21wb25lbnQubGFiZWxDb3VudGVyO1xuXG5cdC8qKlxuXHQgKiBTZXQgdG8gYHRydWVgIGZvciBhIGRpc2FibGVkIGxhYmVsLlxuXHQgKi9cblx0QElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcblx0LyoqXG5cdCAqIFNldCB0byBgdHJ1ZWAgZm9yIGEgbG9hZGluZyBsYWJlbC5cblx0ICovXG5cdEBJbnB1dCgpIHNrZWxldG9uID0gZmFsc2U7XG5cblx0LyoqXG5cdCAqIEhlbHBlciBpbnB1dCBwcm9wZXJ0eSBmb3IgZWFzZSBvZiBtaWdyYXRpb25cblx0ICogU2luY2Ugd2UgY2Fubm90IHBhc3MgbmctY29udGVudCBkb3duIGVhc2lseSBmcm9tIGxhYmVsIGNvbXBvbmVudCwgd2Ugd2lsbCBhY2NlcHQgdGhlIHRlbXBsYXRlc1xuXHQgKi9cblx0QElucHV0KCkgbGFiZWxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pjtcblx0QElucHV0KCkgdGV4dEFyZWFUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pjtcblx0LyoqXG5cdCAqIE9wdGlvbmFsIGhlbHBlciB0ZXh0IHRoYXQgYXBwZWFycyB1bmRlciB0aGUgbGFiZWwuXG5cdCAqL1xuXHRASW5wdXQoKSBoZWxwZXJUZXh0OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuXHQvKipcblx0ICogU2V0cyB0aGUgaW52YWxpZCB0ZXh0LlxuXHQgKi9cblx0QElucHV0KCkgaW52YWxpZFRleHQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cdC8qKlxuXHQgKiBTZXQgdG8gYHRydWVgIGZvciBhbiBpbnZhbGlkIGxhYmVsIGNvbXBvbmVudC5cblx0ICovXG5cdEBJbnB1dCgpIGludmFsaWQgPSBmYWxzZTtcblx0LyoqXG5cdCAgKiBTZXQgdG8gYHRydWVgIHRvIHNob3cgYSB3YXJuaW5nIChjb250ZW50cyBzZXQgYnkgd2FybmluZ1RleHQpXG5cdCAgKi9cblx0QElucHV0KCkgd2FybiA9IGZhbHNlO1xuXHQvKipcblx0ICogU2V0cyB0aGUgd2FybmluZyB0ZXh0XG5cdCAqL1xuXHRASW5wdXQoKSB3YXJuVGV4dDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55Pjtcblx0LyoqXG5cdCAqIFNldCB0aGUgYXJpYWxhYmVsIGZvciBsYWJlbFxuXHQgKi9cblx0QElucHV0KCkgYXJpYUxhYmVsOiBzdHJpbmc7XG5cblx0Ly8gQHRzLWlnbm9yZVxuXHRAVmlld0NoaWxkKFwid3JhcHBlclwiLCB7IHN0YXRpYzogZmFsc2UgfSkgd3JhcHBlcjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cblx0Ly8gQHRzLWlnbm9yZVxuXHRAQ29udGVudENoaWxkKFRleHRBcmVhLCB7IHN0YXRpYzogZmFsc2UgfSkgdGV4dEFyZWE6IFRleHRBcmVhO1xuXG5cdEBIb3N0QmluZGluZyhcImNsYXNzLmNkcy0tZm9ybS1pdGVtXCIpIGxhYmVsQ2xhc3MgPSB0cnVlO1xuXG5cdEBIb3N0QmluZGluZyhcImNsYXNzLmNkcy0tdGV4dC1hcmVhX193cmFwcGVyLS1yZWFkb25seVwiKSBnZXQgaXNSZWFkb25seSgpIHtcblx0XHRyZXR1cm4gdGhpcy53cmFwcGVyPy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCJ0ZXh0YXJlYVwiKT8ucmVhZE9ubHkgPz8gZmFsc2U7XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBMYWJlbC5cblx0ICovXG5cdGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cblx0LyoqXG5cdCAqIFNldHMgdGhlIGlkIG9uIHRoZSBpbnB1dCBpdGVtIGFzc29jaWF0ZWQgd2l0aCB0aGUgYExhYmVsYC5cblx0ICovXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpIHtcblx0XHRpZiAodGhpcy53cmFwcGVyKSB7XG5cdFx0XHQvLyBQcmlvcml0aXplIHNldHRpbmcgaWQgdG8gYHRleHRhcmVhYCBvdmVyIGRpdlxuXHRcdFx0Y29uc3QgaW5wdXRFbGVtZW50ID0gdGhpcy53cmFwcGVyLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcInRleHRhcmVhXCIpO1xuXHRcdFx0aWYgKGlucHV0RWxlbWVudCkge1xuXHRcdFx0XHQvLyBhdm9pZCBvdmVycmlkaW5nIGlkcyBhbHJlYWR5IHNldCBieSB0aGUgdXNlciByZXVzZSBpdCBpbnN0ZWFkXG5cdFx0XHRcdGlmIChpbnB1dEVsZW1lbnQuaWQpIHtcblx0XHRcdFx0XHR0aGlzLmxhYmVsSW5wdXRJRCA9IGlucHV0RWxlbWVudC5pZDtcblx0XHRcdFx0XHR0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpbnB1dEVsZW1lbnQuc2V0QXR0cmlidXRlKFwiaWRcIiwgdGhpcy5sYWJlbElucHV0SUQpO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IGRpdkVsZW1lbnQgPSB0aGlzLndyYXBwZXIubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiZGl2XCIpO1xuXHRcdFx0aWYgKGRpdkVsZW1lbnQpIHtcblx0XHRcdFx0aWYgKGRpdkVsZW1lbnQuaWQpIHtcblx0XHRcdFx0XHR0aGlzLmxhYmVsSW5wdXRJRCA9IGRpdkVsZW1lbnQuaWQ7XG5cdFx0XHRcdFx0dGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZGl2RWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJpZFwiLCB0aGlzLmxhYmVsSW5wdXRJRCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIGlzVGVtcGxhdGUodmFsdWUpIHtcblx0XHRyZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZjtcblx0fVxufVxuIl19
317
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEtbGFiZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2lucHV0L3RleHRhcmVhLWxhYmVsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sU0FBUyxFQUNULEtBQUssRUFHTCxXQUFXLEVBQ1gsV0FBVyxFQUNYLFNBQVMsRUFDVCxZQUFZLEVBRVosTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7O0FBRWpEOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQXlGSCxNQUFNLE9BQU8sc0JBQXNCO0lBNEVsQzs7T0FFRztJQUNILFlBQXNCLGlCQUFvQztRQUFwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBMUUxRDs7O1VBR0U7UUFDTyxpQkFBWSxHQUFHLGVBQWUsR0FBRyxzQkFBc0IsQ0FBQyxZQUFZLENBQUM7UUFFOUU7O1dBRUc7UUFDTSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzFCOztXQUVHO1FBQ00sYUFBUSxHQUFHLEtBQUssQ0FBQztRQWdCMUI7O1dBRUc7UUFDTSxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3pCOztZQUVJO1FBQ0ssU0FBSSxHQUFHLEtBQUssQ0FBQztRQVV0Qjs7V0FFRztRQUNNLFVBQUssR0FBRyxLQUFLLENBQUM7UUFRYyxlQUFVLEdBQUcsSUFBSSxDQUFDO0lBaUJNLENBQUM7SUFmOUQsSUFBNEQsVUFBVTtRQUNyRSxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsRUFBRSxRQUFRLElBQUksS0FBSyxDQUFDO0lBQ2pGLENBQUM7SUFFRCxJQUFnRCxVQUFVO1FBQ3pELE9BQU8sSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDckMsQ0FBQztJQUVELElBQTBELGtCQUFrQjtRQUMzRSxPQUFPLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUNwQyxDQUFDO0lBT0Q7O09BRUc7SUFDSCxlQUFlO1FBQ2QsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2pCLCtDQUErQztZQUMvQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDMUUsSUFBSSxZQUFZLEVBQUU7Z0JBQ2pCLGdFQUFnRTtnQkFDaEUsSUFBSSxZQUFZLENBQUMsRUFBRSxFQUFFO29CQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQyxFQUFFLENBQUM7b0JBQ3BDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztpQkFDdkM7Z0JBQ0QsWUFBWSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUNuRCxPQUFPO2FBQ1A7WUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkUsSUFBSSxVQUFVLEVBQUU7Z0JBQ2YsSUFBSSxVQUFVLENBQUMsRUFBRSxFQUFFO29CQUNsQixJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxFQUFFLENBQUM7b0JBQ2xDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztpQkFDdkM7Z0JBQ0QsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ2pEO1NBQ0Q7SUFDRixDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQUs7UUFDdEIsT0FBTyxLQUFLLFlBQVksV0FBVyxDQUFDO0lBQ3JDLENBQUM7O0FBOUdEOztHQUVHO0FBQ0ksbUNBQVksR0FBRyxDQUFDLENBQUM7bUhBSlosc0JBQXNCO3VHQUF0QixzQkFBc0IsK3BCQTREcEIsUUFBUSxvSkFsSlo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW9GVDsyRkFFVyxzQkFBc0I7a0JBeEZsQyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSx3Q0FBd0M7b0JBQ2xELFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBb0ZUO2lCQUNEO3dHQVVTLFlBQVk7c0JBQXBCLEtBQUs7Z0JBS0csUUFBUTtzQkFBaEIsS0FBSztnQkFJRyxRQUFRO3NCQUFoQixLQUFLO2dCQU1HLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUlHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBSUcsV0FBVztzQkFBbkIsS0FBSztnQkFJRyxPQUFPO3NCQUFmLEtBQUs7Z0JBSUcsSUFBSTtzQkFBWixLQUFLO2dCQUlHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUcsU0FBUztzQkFBakIsS0FBSztnQkFLRyxLQUFLO3NCQUFiLEtBQUs7Z0JBR21DLE9BQU87c0JBQS9DLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFHSSxRQUFRO3NCQUFsRCxZQUFZO3VCQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBRUosVUFBVTtzQkFBOUMsV0FBVzt1QkFBQyxzQkFBc0I7Z0JBRXlCLFVBQVU7c0JBQXJFLFdBQVc7dUJBQUMseUNBQXlDO2dCQUlOLFVBQVU7c0JBQXpELFdBQVc7dUJBQUMsNkJBQTZCO2dCQUlnQixrQkFBa0I7c0JBQTNFLFdBQVc7dUJBQUMsdUNBQXVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q29tcG9uZW50LFxuXHRJbnB1dCxcblx0QWZ0ZXJWaWV3SW5pdCxcblx0RWxlbWVudFJlZixcblx0SG9zdEJpbmRpbmcsXG5cdFRlbXBsYXRlUmVmLFxuXHRWaWV3Q2hpbGQsXG5cdENvbnRlbnRDaGlsZCxcblx0Q2hhbmdlRGV0ZWN0b3JSZWZcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuaW1wb3J0IHsgVGV4dEFyZWEgfSBmcm9tIFwiLi90ZXh0LWFyZWEuZGlyZWN0aXZlXCI7XG5cbi8qKlxuICogR2V0IHN0YXJ0ZWQgd2l0aCBpbXBvcnRpbmcgdGhlIG1vZHVsZTpcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgeyBJbnB1dE1vZHVsZSB9IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXInO1xuICogYGBgXG4gKlxuICogYGBgaHRtbFxuICogPGNkcy10ZXh0YXJlYS1sYWJlbD5cbiAqIFx0TGFiZWxcbiAqIFx0PHRleHRhcmVhIGNkc1RleHRBcmVhIGNsYXNzPVwidGV4dGFyZWEtZmllbGRcIj5cbiAqIDwvY2RzLXRleHRhcmVhLWxhYmVsPlxuICogYGBgXG4gKlxuICogW1NlZSBkZW1vXSguLi8uLi8/cGF0aD0vc3RvcnkvY29tcG9uZW50cy1pbnB1dC10ZXh0LWFyZWEtLWJhc2ljKVxuICovXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6IFwiY2RzLXRleHRhcmVhLWxhYmVsLCBpYm0tdGV4dGFyZWEtbGFiZWxcIixcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwic2tlbGV0b25cIj5cblx0XHRcdDxzcGFuIGNsYXNzPVwiY2RzLS1sYWJlbCBjZHMtLXNrZWxldG9uXCI+PC9zcGFuPlxuXHRcdFx0PGRpdiBjbGFzcz1cImNkcy0tdGV4dC1hcmVhIGNkcy0tc2tlbGV0b25cIj48L2Rpdj5cblx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIXNrZWxldG9uXCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY2RzLS10ZXh0LWFyZWFfX2xhYmVsLXdyYXBwZXJcIj5cblx0XHRcdFx0PGxhYmVsXG5cdFx0XHRcdFx0W2Zvcl09XCJsYWJlbElucHV0SURcIlxuXHRcdFx0XHRcdFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcblx0XHRcdFx0XHRjbGFzcz1cImNkcy0tbGFiZWxcIlxuXHRcdFx0XHRcdFtuZ0NsYXNzXT1cIntcblx0XHRcdFx0XHRcdCdjZHMtLWxhYmVsLS1kaXNhYmxlZCc6IGRpc2FibGVkXG5cdFx0XHRcdFx0fVwiPlxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSAqbmdJZj1cImxhYmVsVGVtcGxhdGU7IGVsc2UgbGFiZWxDb250ZW50XCIgW25nVGVtcGxhdGVPdXRsZXRdPVwibGFiZWxUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG5cdFx0XHRcdFx0PG5nLXRlbXBsYXRlICNsYWJlbENvbnRlbnQ+XG5cdFx0XHRcdFx0XHQ8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0PC9sYWJlbD5cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdlxuXHRcdFx0XHRjbGFzcz1cImNkcy0tdGV4dC1hcmVhX193cmFwcGVyXCJcblx0XHRcdFx0W25nQ2xhc3NdPVwie1xuXHRcdFx0XHRcdCdjZHMtLXRleHQtYXJlYV9fd3JhcHBlci0td2Fybic6IHdhcm5cblx0XHRcdFx0fVwiXG5cdFx0XHRcdFthdHRyLmRhdGEtaW52YWxpZF09XCIoaW52YWxpZCA/IHRydWUgOiBudWxsKVwiXG5cdFx0XHRcdCN3cmFwcGVyPlxuXHRcdFx0XHQ8c3ZnXG5cdFx0XHRcdFx0Km5nSWY9XCIhZmx1aWQgJiYgaW52YWxpZFwiXG5cdFx0XHRcdFx0Y2RzSWNvbj1cIndhcm5pbmctLWZpbGxlZFwiXG5cdFx0XHRcdFx0c2l6ZT1cIjE2XCJcblx0XHRcdFx0XHRjbGFzcz1cImNkcy0tdGV4dC1hcmVhX19pbnZhbGlkLWljb25cIj5cblx0XHRcdFx0PC9zdmc+XG5cdFx0XHRcdDxzdmdcblx0XHRcdFx0XHQqbmdJZj1cIiFmbHVpZCAmJiAhaW52YWxpZCAmJiB3YXJuXCJcblx0XHRcdFx0XHRjZHNJY29uPVwid2FybmluZy0tYWx0LS1maWxsZWRcIlxuXHRcdFx0XHRcdHNpemU9XCIxNlwiXG5cdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLXRleHQtYXJlYV9faW52YWxpZC1pY29uIGNkcy0tdGV4dC1hcmVhX19pbnZhbGlkLWljb24tLXdhcm5pbmdcIj5cblx0XHRcdFx0PC9zdmc+XG5cdFx0XHRcdDxuZy10ZW1wbGF0ZSAqbmdJZj1cInRleHRBcmVhVGVtcGxhdGU7IGVsc2UgdGV4dEFyZWFDb250ZW50XCIgW25nVGVtcGxhdGVPdXRsZXRdPVwidGV4dEFyZWFUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG5cdFx0XHRcdDxuZy10ZW1wbGF0ZSAjdGV4dEFyZWFDb250ZW50PlxuXHRcdFx0XHRcdDxuZy1jb250ZW50IHNlbGVjdD1cIltjZHNUZXh0QXJlYV0sW2libVRleHRBcmVhXSx0ZXh0YXJlYVwiPjwvbmctY29udGVudD5cblx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cblxuXHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiZmx1aWRcIj5cblx0XHRcdFx0XHQ8aHIgY2xhc3M9XCJjZHMtLXRleHQtYXJlYV9fZGl2aWRlclwiIC8+XG5cdFx0XHRcdFx0PGRpdiAqbmdJZj1cImludmFsaWRcIiBjbGFzcz1cImNkcy0tZm9ybS1yZXF1aXJlbWVudFwiPlxuXHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1RlbXBsYXRlKGludmFsaWRUZXh0KVwiPnt7aW52YWxpZFRleHR9fTwvbmctY29udGFpbmVyPlxuXHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlICpuZ0lmPVwiaXNUZW1wbGF0ZShpbnZhbGlkVGV4dClcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJpbnZhbGlkVGV4dFwiPjwvbmctdGVtcGxhdGU+XG5cdFx0XHRcdFx0XHQ8c3ZnXG5cdFx0XHRcdFx0XHRcdGNkc0ljb249XCJ3YXJuaW5nLS1maWxsZWRcIlxuXHRcdFx0XHRcdFx0XHRzaXplPVwiMTZcIlxuXHRcdFx0XHRcdFx0XHRjbGFzcz1cImNkcy0tdGV4dC1hcmVhX19pbnZhbGlkLWljb25cIj5cblx0XHRcdFx0XHRcdDwvc3ZnPlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdDxkaXYgKm5nSWY9XCIhaW52YWxpZCAmJiB3YXJuXCIgY2xhc3M9XCJjZHMtLWZvcm0tcmVxdWlyZW1lbnRcIj5cblx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNUZW1wbGF0ZSh3YXJuVGV4dClcIj57e3dhcm5UZXh0fX08L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSAqbmdJZj1cImlzVGVtcGxhdGUod2FyblRleHQpXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwid2FyblRleHRcIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0XHRcdFx0PHN2Z1xuXHRcdFx0XHRcdFx0XHRjZHNJY29uPVwid2FybmluZy0tYWx0LS1maWxsZWRcIlxuXHRcdFx0XHRcdFx0XHRzaXplPVwiMTZcIlxuXHRcdFx0XHRcdFx0XHRjbGFzcz1cImNkcy0tdGV4dC1hcmVhX19pbnZhbGlkLWljb24gY2RzLS10ZXh0LWFyZWFfX2ludmFsaWQtaWNvbi0td2FybmluZ1wiPlxuXHRcdFx0XHRcdFx0PC9zdmc+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDwvbmctY29udGFpbmVyPlxuXHRcdFx0PC9kaXY+XG5cdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIWZsdWlkXCI+XG5cdFx0XHRcdDxkaXZcblx0XHRcdFx0XHQqbmdJZj1cImhlbHBlclRleHQgJiYgIWludmFsaWQgJiYgIXdhcm5cIlxuXHRcdFx0XHRcdGNsYXNzPVwiY2RzLS1mb3JtX19oZWxwZXItdGV4dFwiXG5cdFx0XHRcdFx0W25nQ2xhc3NdPVwieydjZHMtLWZvcm1fX2hlbHBlci10ZXh0LS1kaXNhYmxlZCc6IGRpc2FibGVkfVwiPlxuXHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNUZW1wbGF0ZShoZWxwZXJUZXh0KVwiPnt7aGVscGVyVGV4dH19PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdFx0PG5nLXRlbXBsYXRlICpuZ0lmPVwiaXNUZW1wbGF0ZShoZWxwZXJUZXh0KVwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlbHBlclRleHRcIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PGRpdiAqbmdJZj1cImludmFsaWRcIiBjbGFzcz1cImNkcy0tZm9ybS1yZXF1aXJlbWVudFwiPlxuXHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNUZW1wbGF0ZShpbnZhbGlkVGV4dClcIj57e2ludmFsaWRUZXh0fX08L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgKm5nSWY9XCJpc1RlbXBsYXRlKGludmFsaWRUZXh0KVwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImludmFsaWRUZXh0XCI+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDxkaXYgKm5nSWY9XCIhaW52YWxpZCAmJiB3YXJuXCIgY2xhc3M9XCJjZHMtLWZvcm0tcmVxdWlyZW1lbnRcIj5cblx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzVGVtcGxhdGUod2FyblRleHQpXCI+e3t3YXJuVGV4dH19PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdFx0PG5nLXRlbXBsYXRlICpuZ0lmPVwiaXNUZW1wbGF0ZSh3YXJuVGV4dClcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJ3YXJuVGV4dFwiPjwvbmctdGVtcGxhdGU+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0PC9uZy1jb250YWluZXI+XG5cdGBcbn0pXG5leHBvcnQgY2xhc3MgVGV4dGFyZWFMYWJlbENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXHQvKipcblx0ICogVXNlZCB0byBidWlsZCB0aGUgaWQgb2YgdGhlIGlucHV0IGl0ZW0gYXNzb2NpYXRlZCB3aXRoIHRoZSBgTGFiZWxgLlxuXHQgKi9cblx0c3RhdGljIGxhYmVsQ291bnRlciA9IDA7XG5cdC8qKlxuXHQgKiBUaGUgaWQgb2YgdGhlIGlucHV0IGl0ZW0gYXNzb2NpYXRlZCB3aXRoIHRoZSBgTGFiZWxgLiBUaGlzIHZhbHVlIGlzIGFsc28gdXNlZCB0byBhc3NvY2lhdGUgdGhlIGBMYWJlbGAgd2l0aFxuXHQgKiBpdHMgaW5wdXQgY291bnRlcnBhcnQgdGhyb3VnaCB0aGUgJ2ZvcicgYXR0cmlidXRlLlxuXHQqL1xuXHRASW5wdXQoKSBsYWJlbElucHV0SUQgPSBcImlibS10ZXh0YXJlYS1cIiArIFRleHRhcmVhTGFiZWxDb21wb25lbnQubGFiZWxDb3VudGVyO1xuXG5cdC8qKlxuXHQgKiBTZXQgdG8gYHRydWVgIGZvciBhIGRpc2FibGVkIGxhYmVsLlxuXHQgKi9cblx0QElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcblx0LyoqXG5cdCAqIFNldCB0byBgdHJ1ZWAgZm9yIGEgbG9hZGluZyBsYWJlbC5cblx0ICovXG5cdEBJbnB1dCgpIHNrZWxldG9uID0gZmFsc2U7XG5cblx0LyoqXG5cdCAqIEhlbHBlciBpbnB1dCBwcm9wZXJ0eSBmb3IgZWFzZSBvZiBtaWdyYXRpb25cblx0ICogU2luY2Ugd2UgY2Fubm90IHBhc3MgbmctY29udGVudCBkb3duIGVhc2lseSBmcm9tIGxhYmVsIGNvbXBvbmVudCwgd2Ugd2lsbCBhY2NlcHQgdGhlIHRlbXBsYXRlc1xuXHQgKi9cblx0QElucHV0KCkgbGFiZWxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pjtcblx0QElucHV0KCkgdGV4dEFyZWFUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pjtcblx0LyoqXG5cdCAqIE9wdGlvbmFsIGhlbHBlciB0ZXh0IHRoYXQgYXBwZWFycyB1bmRlciB0aGUgbGFiZWwuXG5cdCAqL1xuXHRASW5wdXQoKSBoZWxwZXJUZXh0OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuXHQvKipcblx0ICogU2V0cyB0aGUgaW52YWxpZCB0ZXh0LlxuXHQgKi9cblx0QElucHV0KCkgaW52YWxpZFRleHQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cdC8qKlxuXHQgKiBTZXQgdG8gYHRydWVgIGZvciBhbiBpbnZhbGlkIGxhYmVsIGNvbXBvbmVudC5cblx0ICovXG5cdEBJbnB1dCgpIGludmFsaWQgPSBmYWxzZTtcblx0LyoqXG5cdCAgKiBTZXQgdG8gYHRydWVgIHRvIHNob3cgYSB3YXJuaW5nIChjb250ZW50cyBzZXQgYnkgd2FybmluZ1RleHQpXG5cdCAgKi9cblx0QElucHV0KCkgd2FybiA9IGZhbHNlO1xuXHQvKipcblx0ICogU2V0cyB0aGUgd2FybmluZyB0ZXh0XG5cdCAqL1xuXHRASW5wdXQoKSB3YXJuVGV4dDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55Pjtcblx0LyoqXG5cdCAqIFNldCB0aGUgYXJpYWxhYmVsIGZvciBsYWJlbFxuXHQgKi9cblx0QElucHV0KCkgYXJpYUxhYmVsOiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIEV4cGVyaW1lbnRhbDogZW5hYmxlIGZsdWlkIHN0YXRlXG5cdCAqL1xuXHRASW5wdXQoKSBmbHVpZCA9IGZhbHNlO1xuXG5cdC8vIEB0cy1pZ25vcmVcblx0QFZpZXdDaGlsZChcIndyYXBwZXJcIiwgeyBzdGF0aWM6IGZhbHNlIH0pIHdyYXBwZXI6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG5cdC8vIEB0cy1pZ25vcmVcblx0QENvbnRlbnRDaGlsZChUZXh0QXJlYSwgeyBzdGF0aWM6IGZhbHNlIH0pIHRleHRBcmVhOiBUZXh0QXJlYTtcblxuXHRASG9zdEJpbmRpbmcoXCJjbGFzcy5jZHMtLWZvcm0taXRlbVwiKSBsYWJlbENsYXNzID0gdHJ1ZTtcblxuXHRASG9zdEJpbmRpbmcoXCJjbGFzcy5jZHMtLXRleHQtYXJlYV9fd3JhcHBlci0tcmVhZG9ubHlcIikgZ2V0IGlzUmVhZG9ubHkoKSB7XG5cdFx0cmV0dXJuIHRoaXMud3JhcHBlcj8ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwidGV4dGFyZWFcIik/LnJlYWRPbmx5ID8/IGZhbHNlO1xuXHR9XG5cblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS10ZXh0LWFyZWEtLWZsdWlkXCIpIGdldCBmbHVpZENsYXNzKCkge1xuXHRcdHJldHVybiB0aGlzLmZsdWlkICYmICF0aGlzLnNrZWxldG9uO1xuXHR9XG5cblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS10ZXh0LWFyZWEtLWZsdWlkX19za2VsZXRvblwiKSBnZXQgZmx1aWRTa2VsZXRvbkNsYXNzKCkge1xuXHRcdHJldHVybiB0aGlzLmZsdWlkICYmIHRoaXMuc2tlbGV0b247XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBMYWJlbC5cblx0ICovXG5cdGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cblx0LyoqXG5cdCAqIFNldHMgdGhlIGlkIG9uIHRoZSBpbnB1dCBpdGVtIGFzc29jaWF0ZWQgd2l0aCB0aGUgYExhYmVsYC5cblx0ICovXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpIHtcblx0XHRpZiAodGhpcy53cmFwcGVyKSB7XG5cdFx0XHQvLyBQcmlvcml0aXplIHNldHRpbmcgaWQgdG8gYHRleHRhcmVhYCBvdmVyIGRpdlxuXHRcdFx0Y29uc3QgaW5wdXRFbGVtZW50ID0gdGhpcy53cmFwcGVyLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcInRleHRhcmVhXCIpO1xuXHRcdFx0aWYgKGlucHV0RWxlbWVudCkge1xuXHRcdFx0XHQvLyBhdm9pZCBvdmVycmlkaW5nIGlkcyBhbHJlYWR5IHNldCBieSB0aGUgdXNlciByZXVzZSBpdCBpbnN0ZWFkXG5cdFx0XHRcdGlmIChpbnB1dEVsZW1lbnQuaWQpIHtcblx0XHRcdFx0XHR0aGlzLmxhYmVsSW5wdXRJRCA9IGlucHV0RWxlbWVudC5pZDtcblx0XHRcdFx0XHR0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpbnB1dEVsZW1lbnQuc2V0QXR0cmlidXRlKFwiaWRcIiwgdGhpcy5sYWJlbElucHV0SUQpO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IGRpdkVsZW1lbnQgPSB0aGlzLndyYXBwZXIubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiZGl2XCIpO1xuXHRcdFx0aWYgKGRpdkVsZW1lbnQpIHtcblx0XHRcdFx0aWYgKGRpdkVsZW1lbnQuaWQpIHtcblx0XHRcdFx0XHR0aGlzLmxhYmVsSW5wdXRJRCA9IGRpdkVsZW1lbnQuaWQ7XG5cdFx0XHRcdFx0dGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZGl2RWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJpZFwiLCB0aGlzLmxhYmVsSW5wdXRJRCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIGlzVGVtcGxhdGUodmFsdWUpIHtcblx0XHRyZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZjtcblx0fVxufVxuIl19