@bravura/ui 1.7.1 → 1.9.1
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.
- package/CHANGELOG.md +22 -0
- package/behavior/await.directive.d.ts +60 -0
- package/behavior/behavior.module.d.ts +5 -2
- package/behavior/public-api.d.ts +1 -0
- package/behavior/sizing.directive.d.ts +12 -6
- package/bundles/bravura-ui-behavior.umd.js +161 -23
- package/bundles/bravura-ui-behavior.umd.js.map +1 -1
- package/bundles/bravura-ui-discrete-input.umd.js +2 -2
- package/bundles/bravura-ui-discrete-input.umd.js.map +1 -1
- package/bundles/bravura-ui-form-field.umd.js +8 -6
- package/bundles/bravura-ui-form-field.umd.js.map +1 -1
- package/bundles/bravura-ui-radio-panel.umd.js +2 -2
- package/bundles/bravura-ui-radio-panel.umd.js.map +1 -1
- package/bundles/bravura-ui-selection-panel.umd.js +6 -4
- package/bundles/bravura-ui-selection-panel.umd.js.map +1 -1
- package/bundles/bravura-ui-tooltip.umd.js +9 -1
- package/bundles/bravura-ui-tooltip.umd.js.map +1 -1
- package/esm2015/behavior/await.directive.js +106 -0
- package/esm2015/behavior/behavior.module.js +9 -6
- package/esm2015/behavior/public-api.js +2 -1
- package/esm2015/behavior/sizing.directive.js +42 -14
- package/esm2015/discrete-input/discrete-input.component.js +3 -3
- package/esm2015/form-field/form-field.component.js +9 -7
- package/esm2015/radio-panel/radio-panel.directive.js +3 -3
- package/esm2015/selection-panel/selection-panel.directive.js +4 -3
- package/esm2015/selection-panel/selection-panel.module.js +4 -3
- package/esm2015/tooltip/tooltip.component.js +3 -2
- package/esm2015/tooltip/tooltip.directive.js +8 -1
- package/fesm2015/bravura-ui-behavior.js +151 -19
- package/fesm2015/bravura-ui-behavior.js.map +1 -1
- package/fesm2015/bravura-ui-discrete-input.js +2 -2
- package/fesm2015/bravura-ui-discrete-input.js.map +1 -1
- package/fesm2015/bravura-ui-form-field.js +8 -6
- package/fesm2015/bravura-ui-form-field.js.map +1 -1
- package/fesm2015/bravura-ui-radio-panel.js +2 -2
- package/fesm2015/bravura-ui-radio-panel.js.map +1 -1
- package/fesm2015/bravura-ui-selection-panel.js +6 -4
- package/fesm2015/bravura-ui-selection-panel.js.map +1 -1
- package/fesm2015/bravura-ui-tooltip.js +9 -1
- package/fesm2015/bravura-ui-tooltip.js.map +1 -1
- package/package.json +1 -1
- package/selection-panel/selection-panel.module.d.ts +1 -1
- package/theme/_ui-theme.scss +39 -11
|
@@ -2,6 +2,9 @@ import { NgModule } from '@angular/core';
|
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import { SizingDirective } from './sizing.directive';
|
|
4
4
|
import { SizingMonitorDirective } from './sizing-monitor.directive';
|
|
5
|
+
import { AwaitDirective } from './await.directive';
|
|
6
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
7
|
+
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
5
8
|
import * as i0 from "@angular/core";
|
|
6
9
|
/**
|
|
7
10
|
* For functionality that cannot be easily achieved via CSS.
|
|
@@ -9,14 +12,14 @@ import * as i0 from "@angular/core";
|
|
|
9
12
|
export class BehaviorModule {
|
|
10
13
|
}
|
|
11
14
|
BehaviorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: BehaviorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
12
|
-
BehaviorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: BehaviorModule, declarations: [SizingDirective, SizingMonitorDirective], imports: [CommonModule], exports: [SizingDirective, SizingMonitorDirective] });
|
|
13
|
-
BehaviorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: BehaviorModule, imports: [[CommonModule]] });
|
|
15
|
+
BehaviorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: BehaviorModule, declarations: [SizingDirective, SizingMonitorDirective, AwaitDirective], imports: [CommonModule, MatButtonModule, MatProgressSpinnerModule], exports: [SizingDirective, SizingMonitorDirective, AwaitDirective, MatProgressSpinnerModule] });
|
|
16
|
+
BehaviorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: BehaviorModule, imports: [[CommonModule, MatButtonModule, MatProgressSpinnerModule], MatProgressSpinnerModule] });
|
|
14
17
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: BehaviorModule, decorators: [{
|
|
15
18
|
type: NgModule,
|
|
16
19
|
args: [{
|
|
17
|
-
declarations: [SizingDirective, SizingMonitorDirective],
|
|
18
|
-
imports: [CommonModule],
|
|
19
|
-
exports: [SizingDirective, SizingMonitorDirective]
|
|
20
|
+
declarations: [SizingDirective, SizingMonitorDirective, AwaitDirective],
|
|
21
|
+
imports: [CommonModule, MatButtonModule, MatProgressSpinnerModule],
|
|
22
|
+
exports: [SizingDirective, SizingMonitorDirective, AwaitDirective, MatProgressSpinnerModule]
|
|
20
23
|
}]
|
|
21
24
|
}] });
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoYXZpb3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvYmVoYXZpb3IvYmVoYXZpb3IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQUU5RTs7R0FFRztBQU1ILE1BQU0sT0FBTyxjQUFjOzsyR0FBZCxjQUFjOzRHQUFkLGNBQWMsaUJBSlgsZUFBZSxFQUFFLHNCQUFzQixFQUFFLGNBQWMsYUFDNUQsWUFBWSxFQUFFLGVBQWUsRUFBRSx3QkFBd0IsYUFDdkQsZUFBZSxFQUFFLHNCQUFzQixFQUFFLGNBQWMsRUFBRSx3QkFBd0I7NEdBRS9FLGNBQWMsWUFIakIsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLHdCQUF3QixDQUFDLEVBQ0Msd0JBQXdCOzJGQUUvRSxjQUFjO2tCQUwxQixRQUFRO21CQUFDO29CQUNULFlBQVksRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsRUFBRSxjQUFjLENBQUM7b0JBQ3ZFLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsd0JBQXdCLENBQUM7b0JBQ2xFLE9BQU8sRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsRUFBRSxjQUFjLEVBQUUsd0JBQXdCLENBQUM7aUJBQzVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTaXppbmdEaXJlY3RpdmUgfSBmcm9tICcuL3NpemluZy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2l6aW5nTW9uaXRvckRpcmVjdGl2ZSB9IGZyb20gJy4vc2l6aW5nLW1vbml0b3IuZGlyZWN0aXZlJztcbmltcG9ydCB7IEF3YWl0RGlyZWN0aXZlIH0gZnJvbSAnLi9hd2FpdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xuXG4vKipcbiAqICBGb3IgZnVuY3Rpb25hbGl0eSB0aGF0IGNhbm5vdCBiZSBlYXNpbHkgYWNoaWV2ZWQgdmlhIENTUy5cbiAqL1xuQE5nTW9kdWxlKHtcblx0ZGVjbGFyYXRpb25zOiBbU2l6aW5nRGlyZWN0aXZlLCBTaXppbmdNb25pdG9yRGlyZWN0aXZlLCBBd2FpdERpcmVjdGl2ZV0sXG5cdGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlXSxcblx0ZXhwb3J0czogW1NpemluZ0RpcmVjdGl2ZSwgU2l6aW5nTW9uaXRvckRpcmVjdGl2ZSwgQXdhaXREaXJlY3RpdmUsIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgQmVoYXZpb3JNb2R1bGUge31cbiJdfQ==
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from './sizing.directive';
|
|
2
2
|
export * from './sizing-monitor.directive';
|
|
3
3
|
export * from './behavior.module';
|
|
4
|
-
|
|
4
|
+
export * from './await.directive';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL2JlaGF2aW9yL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2l6aW5nLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NpemluZy1tb25pdG9yLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2JlaGF2aW9yLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2F3YWl0LmRpcmVjdGl2ZSc7XG4iXX0=
|
|
@@ -5,8 +5,8 @@ import { debounceTime, take } from 'rxjs/operators';
|
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "./sizing-monitor.directive";
|
|
7
7
|
/**
|
|
8
|
-
* This directive monitors the changes in width of the `sizingBy` target, and apply specified style
|
|
9
|
-
* classes to the current element dynamically.
|
|
8
|
+
* This directive monitors the changes in the width of the `sizingBy` target, and apply specified style
|
|
9
|
+
* classes and/or inline styles to the current element dynamically.
|
|
10
10
|
*
|
|
11
11
|
* In order for the layout engine to efficiently calculate and stabilize the dimensions, the effective style property
|
|
12
12
|
* `box-sizing` of the `sizingBy` target element must be set to `border-box`.
|
|
@@ -19,8 +19,9 @@ import * as i1 from "./sizing-monitor.directive";
|
|
|
19
19
|
*
|
|
20
20
|
* ```html
|
|
21
21
|
* <div #parentElement>
|
|
22
|
-
* <div [buiSizing]="{'400': 'small', '800': 'medium', '~': 'large'}" [
|
|
23
|
-
* <div [buiSizing]="['small', 'medium', 'large']" [
|
|
22
|
+
* <div [buiSizing]="{'400': 'small', '800': 'medium', '~': 'large'}" [buiSizingBy]="parentElement"></div>
|
|
23
|
+
* <div [buiSizing]="['small', 'medium', 'large']" [buiSizingBy]="'root'"></div>
|
|
24
|
+
* <div [buiSizing]="{'650': 'border-color: #28569', '~': 'bg-muted; border-style: dotted'}" [buiSizingBy]="parentElement"></div>
|
|
24
25
|
* </div>
|
|
25
26
|
* ```
|
|
26
27
|
*/
|
|
@@ -41,6 +42,7 @@ export class SizingDirective {
|
|
|
41
42
|
this.buiSizing = {};
|
|
42
43
|
/**
|
|
43
44
|
* The alias of `buiSizingBy`.
|
|
45
|
+
* @default 'root'
|
|
44
46
|
*/
|
|
45
47
|
this.sizingBy = 'root';
|
|
46
48
|
/**
|
|
@@ -63,8 +65,10 @@ export class SizingDirective {
|
|
|
63
65
|
/**
|
|
64
66
|
* Designate an element to be monitored for recalculating the style classes of the current element.
|
|
65
67
|
*
|
|
66
|
-
* `root` specifies the document root or the enclosing shadow host.
|
|
67
|
-
* `parent` specifies the parent element.
|
|
68
|
+
* - `root` specifies the document root or the enclosing shadow host. This is the default value.
|
|
69
|
+
* - `parent` specifies the parent element.
|
|
70
|
+
*
|
|
71
|
+
* @default 'root'
|
|
68
72
|
* @alias sizingBy
|
|
69
73
|
*/
|
|
70
74
|
get buiSizingBy() {
|
|
@@ -146,15 +150,11 @@ export class SizingDirective {
|
|
|
146
150
|
const bks = Object.keys(this._sizingSpec).sort((a, b) => this._toNumber(a) - this._toNumber(b));
|
|
147
151
|
let found = false;
|
|
148
152
|
for (const key of bks) {
|
|
149
|
-
const
|
|
150
|
-
|
|
151
|
-
this._element.classList.remove(...classes);
|
|
152
|
-
}
|
|
153
|
+
const classesOrStyles = this._sizingSpec[key].split(/;+/).filter(c => c);
|
|
154
|
+
this._removeClassesOrStyles(classesOrStyles);
|
|
153
155
|
const expectedWidth = this._toNumber(key);
|
|
154
156
|
if (this._width <= expectedWidth && !found) {
|
|
155
|
-
|
|
156
|
-
this._element.classList.add(...classes);
|
|
157
|
-
}
|
|
157
|
+
this._applyClassesOrStyles(classesOrStyles);
|
|
158
158
|
found = true;
|
|
159
159
|
}
|
|
160
160
|
}
|
|
@@ -168,6 +168,34 @@ export class SizingDirective {
|
|
|
168
168
|
this.buiResized.emit({ width: this._width, height: this._height });
|
|
169
169
|
}
|
|
170
170
|
}
|
|
171
|
+
_applyClassesOrStyles(clsOrStyles) {
|
|
172
|
+
clsOrStyles.forEach(s => {
|
|
173
|
+
if (s.includes(':')) {
|
|
174
|
+
const [prop, val] = s.split(':');
|
|
175
|
+
this._element.style.setProperty(prop.trim(), val.trim());
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
const classes = s.split(/\s+/).filter(c => c);
|
|
179
|
+
if (classes.length) {
|
|
180
|
+
this._element.classList.add(...classes);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
_removeClassesOrStyles(clsOrStyles) {
|
|
186
|
+
clsOrStyles.forEach(s => {
|
|
187
|
+
if (s.includes(':')) {
|
|
188
|
+
const [prop] = s.split(':');
|
|
189
|
+
this._element.style.removeProperty(prop);
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
const classes = s.split(/\s+/).filter(c => c);
|
|
193
|
+
if (classes.length) {
|
|
194
|
+
this._element.classList.remove(...classes);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
}
|
|
171
199
|
_reflowHeight() {
|
|
172
200
|
const cnt = this._reflowFrameCount;
|
|
173
201
|
if (cnt < 15) {
|
|
@@ -214,4 +242,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImpor
|
|
|
214
242
|
}], buiFixedHeight: [{
|
|
215
243
|
type: Input
|
|
216
244
|
}] } });
|
|
217
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l6aW5nLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL2JlaGF2aW9yL3NpemluZy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFDTixTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBSUwsUUFBUSxFQUNSLE1BQU0sRUFFTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFHcEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFJSCxNQUFNLE9BQU8sZUFBZTtJQTZEM0IsWUFDMkIsSUFBYyxFQUNwQixjQUFzQyxFQUMxRCxPQUFnQyxFQUN4QixLQUFhO1FBSEssU0FBSSxHQUFKLElBQUksQ0FBVTtRQUNwQixtQkFBYyxHQUFkLGNBQWMsQ0FBd0I7UUFFbEQsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQTNEdEI7Ozs7Ozs7O1dBUUc7UUFFSCxjQUFTLEdBQXVELEVBQUUsQ0FBQztRQUVuRTs7V0FFRztRQUVILGFBQVEsR0FBb0MsTUFBTSxDQUFDO1FBaUJuRDs7OztXQUlHO1FBRUgsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFxQyxDQUFDO1FBRW5FOztXQUVHO1FBRUgsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFJZixnQkFBVyxHQUE4QixFQUFFLENBQUM7UUFDNUMsV0FBTSxHQUFHLENBQUMsQ0FBQztRQUNYLFlBQU8sR0FBRyxDQUFDLENBQUM7UUFDWixzQkFBaUIsR0FBRyxDQUFDLENBQUM7UUFTN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUNyQyxDQUFDO0lBN0NEOzs7Ozs7T0FNRztJQUNILElBQ0ksV0FBVztRQUNkLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN0QixDQUFDO0lBQ0QsSUFBSSxXQUFXLENBQUMsTUFBdUM7UUFDdEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUM7SUFDeEIsQ0FBQztJQWtDRCxXQUFXLENBQUMsQ0FBZ0I7UUFDM0IsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsWUFBWSxXQUFXLENBQUM7UUFDeEUsSUFBSSxZQUFZLEVBQUU7WUFDakIsbURBQW1EO1lBQ25ELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1NBQ3pGO2FBQU07WUFDTixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDcEI7SUFDRixDQUFDO0lBRUQsV0FBVztRQUNWLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTyxZQUFZO1FBQ25CLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDM0MsSUFBSSxJQUFJLENBQUMsV0FBVyxZQUFZLFdBQVcsRUFBRTtZQUM1QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7U0FDdkM7YUFBTSxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDL0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7U0FDaEU7YUFBTSxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssTUFBTSxFQUFFO1lBQ3ZDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDekMsSUFBSSxJQUFJLFlBQVksVUFBVSxFQUFFO2dCQUMvQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFtQixDQUFDO2FBQy9DO2lCQUFNO2dCQUNOLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7YUFDaEQ7U0FDRDthQUFNO1lBQ04sSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQW9CLENBQUM7U0FDekQ7UUFFRCxJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksY0FBYyxFQUFFO1lBQzFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1NBQ3pCO1FBRUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUMxQixJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUM3QixJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUMxQztRQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNyQixJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDMUUsQ0FBQyxDQUFDLENBQUM7U0FDSDthQUFNLElBQUksSUFBSSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1NBQ3hCO1FBRUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFakUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxpQkFBaUI7UUFDeEIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDNUIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7WUFFakUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO1NBQ25FO0lBQ0YsQ0FBQztJQUVPLG9CQUFvQjtRQUMzQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztTQUMzQjtJQUNGLENBQUM7SUFFTyxjQUFjO1FBQ3JCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUM7UUFDckUsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQztRQUN4RSxJQUFJLFlBQVksRUFBRTtZQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDO1lBRTlDLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hHLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNsQixLQUFLLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRTtnQkFDdEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNwRSxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7b0JBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO2lCQUMzQztnQkFDRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMxQyxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksYUFBYSxJQUFJLENBQUMsS0FBSyxFQUFFO29CQUMzQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7d0JBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO3FCQUN4QztvQkFDRCxLQUFLLEdBQUcsSUFBSSxDQUFDO2lCQUNiO2FBQ0Q7U0FDRDtRQUVELElBQUksWUFBWSxJQUFJLGFBQWEsRUFBRTtZQUNsQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDO1lBQ2hELElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDeEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2FBQ3JCO1lBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7U0FDbkU7SUFDRixDQUFDO0lBRU8sYUFBYTtRQUNwQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFDbkMsSUFBSSxHQUFHLEdBQUcsRUFBRSxFQUFFO1lBQ2IscUJBQXFCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUVyRCxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQzthQUNqQztpQkFBTSxJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUU7Z0JBQ3RCLE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FDbEIsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxFQUMvRixFQUFFLENBQ0YsQ0FBQztnQkFDRixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQ2xCLGdCQUFnQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxFQUNsRyxFQUFFLENBQ0YsQ0FBQztnQkFDRixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUM7YUFDL0Q7U0FDRDtRQUNELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTyxTQUFTLENBQUMsQ0FBUztRQUMxQixPQUFPLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN4RCxDQUFDOztBQXJNRDs7R0FFRztBQUNJLHdDQUF3QixHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQzs0R0FKMUMsZUFBZSxrQkE4RGxCLFFBQVE7Z0dBOURMLGVBQWU7MkZBQWYsZUFBZTtrQkFIM0IsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUseURBQXlEO2lCQUNuRTswREErRGlDLFFBQVE7MEJBQXZDLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsUUFBUTswRkEvQ1YsU0FBUztzQkFEUixLQUFLO2dCQU9OLFFBQVE7c0JBRFAsS0FBSztnQkFXRixXQUFXO3NCQURkLEtBQUs7Z0JBY04sVUFBVTtzQkFEVCxNQUFNO2dCQU9QLGNBQWM7c0JBRGIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHREaXJlY3RpdmUsXG5cdEVsZW1lbnRSZWYsXG5cdEV2ZW50RW1pdHRlcixcblx0SW5qZWN0LFxuXHRJbnB1dCxcblx0Tmdab25lLFxuXHRPbkNoYW5nZXMsXG5cdE9uRGVzdHJveSxcblx0T3B0aW9uYWwsXG5cdE91dHB1dCxcblx0U2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFNpemluZ01vbml0b3JEaXJlY3RpdmUgfSBmcm9tICcuL3NpemluZy1tb25pdG9yLmRpcmVjdGl2ZSc7XG5cbi8qKlxuICogVGhpcyBkaXJlY3RpdmUgbW9uaXRvcnMgdGhlIGNoYW5nZXMgaW4gd2lkdGggb2YgdGhlIGBzaXppbmdCeWAgdGFyZ2V0LCBhbmQgYXBwbHkgc3BlY2lmaWVkIHN0eWxlXG4gKiAgY2xhc3NlcyB0byB0aGUgY3VycmVudCBlbGVtZW50IGR5bmFtaWNhbGx5LlxuICpcbiAqIEluIG9yZGVyIGZvciB0aGUgbGF5b3V0IGVuZ2luZSB0byBlZmZpY2llbnRseSBjYWxjdWxhdGUgYW5kIHN0YWJpbGl6ZSB0aGUgZGltZW5zaW9ucywgdGhlIGVmZmVjdGl2ZSBzdHlsZSBwcm9wZXJ0eVxuICogYGJveC1zaXppbmdgIG9mIHRoZSBgc2l6aW5nQnlgIHRhcmdldCBlbGVtZW50IG11c3QgYmUgc2V0IHRvIGBib3JkZXItYm94YC5cbiAqXG4gKiBUaGUgZGlyZWN0aXZlIHVzZXMgW1Jlc2l6ZU9ic2VydmVyIEFQSV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1Jlc2l6ZV9PYnNlcnZlcl9BUEkpXG4gKiB0byBjYXB0dXJlIHRoZSBldmVudHMgb2YgZWxlbWVudCByZXNpemluZy4gUGxlYXNlIHVzZSBhIHBvbHlmaWxsIGlmIHlvdSB3YW50IHRvIHN1cHBvcnQgb2xkZXIgYnJvd3NlcnNcbiAqIHRoYXQgZG8gbm90IGltcGxlbWVudCBSZXNpemVPYnNlcnZlciBBUEkuXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogYGBgaHRtbFxuICogPGRpdiAjcGFyZW50RWxlbWVudD5cbiAqICAgPGRpdiBbYnVpU2l6aW5nXT1cInsnNDAwJzogJ3NtYWxsJywgJzgwMCc6ICdtZWRpdW0nLCAnfic6ICdsYXJnZSd9XCIgW3NpemluZ0J5XT1cInBhcmVudEVsZW1lbnRcIj48L2Rpdj5cbiAqICAgPGRpdiBbYnVpU2l6aW5nXT1cIlsnc21hbGwnLCAnbWVkaXVtJywgJ2xhcmdlJ11cIiBbc2l6aW5nQnldPVwiJ3Jvb3QnXCI+PC9kaXY+XG4gKiA8L2Rpdj5cbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdbYnVpU2l6aW5nXSxbYnVpUmVzaXplZF0sW2J1aVNpemluZ0J5XSxbYnVpRml4ZWRIZWlnaHRdJ1xufSlcbmV4cG9ydCBjbGFzcyBTaXppbmdEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG5cdC8qKlxuXHQgKiBAaWdub3JlXG5cdCAqL1xuXHRzdGF0aWMgZGVmYXVsdFNpemluZ0JyZWFrcG9pbnRzID0gWyc0MDAnLCAnODAwJywgJ34nXTtcblxuXHQvKipcblx0ICogU3BlY2lmaWVzIHRoZSBicmVha3BvaW50IHdpZHRocyBhbmQgdGhlIHN0eWxlIGNsYXNzZXMuXG5cdCAqXG5cdCAqIFRoZSBzaXppbmcgc3BlYyBge1wiNDAwXCI6IFwic21hbGxcIiwgXCI4MDBcIjogXCJtZWRpdW1cIiwgXCJ+XCI6IFwibGFyZ2VcIn1gIHRlbGxzIHRoZSBkaXJlY3RpdmUgdG8gYXBwbHlcblx0ICogYSBzdHlsZSBjbGFzcyBgc21hbGxgIHdoZW4gdGhlIHdpZHRoIG9mIHRoZSBtb25pdG9yZWQgdGFyZ2V0IGlzIHNtYWxsZXIgdGhhbiA0MDAgcGl4ZWxzLFxuXHQgKiBgbWVkaXVtYCB3aGVuIHRoZSB3aWR0aCBpcyBiZXR3ZWVuIDQwMCBhbmQgODAwIHBpeGVscywgYW5kIGBsYXJnZWAgd2hlbiBhYm92ZS5cblx0ICpcblx0ICogQGV4YW1wbGUgeyc0MDAnOiAnc21hbGwnLCAnODAwJzogJ21lZGl1bScsICd+JzogJ2xhcmdlJ31cblx0ICovXG5cdEBJbnB1dCgpXG5cdGJ1aVNpemluZzogc3RyaW5nIHwgQXJyYXk8c3RyaW5nPiB8IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcblxuXHQvKipcblx0ICogVGhlIGFsaWFzIG9mIGBidWlTaXppbmdCeWAuXG5cdCAqL1xuXHRASW5wdXQoKVxuXHRzaXppbmdCeTogJ3Jvb3QnIHwgJ3BhcmVudCcgfCBIVE1MRWxlbWVudCA9ICdyb290JztcblxuXHQvKipcblx0ICogRGVzaWduYXRlIGFuIGVsZW1lbnQgdG8gYmUgbW9uaXRvcmVkIGZvciByZWNhbGN1bGF0aW5nIHRoZSBzdHlsZSBjbGFzc2VzIG9mIHRoZSBjdXJyZW50IGVsZW1lbnQuXG5cdCAqXG5cdCAqIGByb290YCBzcGVjaWZpZXMgdGhlIGRvY3VtZW50IHJvb3Qgb3IgdGhlIGVuY2xvc2luZyBzaGFkb3cgaG9zdC5cblx0ICogYHBhcmVudGAgc3BlY2lmaWVzIHRoZSBwYXJlbnQgZWxlbWVudC5cblx0ICogQGFsaWFzIHNpemluZ0J5XG5cdCAqL1xuXHRASW5wdXQoKVxuXHRnZXQgYnVpU2l6aW5nQnkoKTogJ3Jvb3QnIHwgJ3BhcmVudCcgfCBIVE1MRWxlbWVudCB7XG5cdFx0cmV0dXJuIHRoaXMuc2l6aW5nQnk7XG5cdH1cblx0c2V0IGJ1aVNpemluZ0J5KHRhcmdldDogJ3Jvb3QnIHwgJ3BhcmVudCcgfCBIVE1MRWxlbWVudCkge1xuXHRcdHRoaXMuc2l6aW5nQnkgPSB0YXJnZXQ7XG5cdH1cblxuXHQvKipcblx0ICogRW1pdHMgYHt3aWR0aCwgaGVpZ2h0fWAgd2hlbiB0aGUgbW9uaXRvciB0YXJnZXQgZWxlbWVudCByZXNpemVzLlxuXHQgKlxuXHQgKiBOb3RlIHRoYXQgdGhlIGRpbWVuc2lvbnMgZW1pdHRlZCBhcmUgb2YgdGhlIFtzaXppbmdCeV0gdGFyZ2V0LCBidXQgbm90IHRoZSBjdXJyZW50IGVsZW1lbnQuXG5cdCAqL1xuXHRAT3V0cHV0KClcblx0YnVpUmVzaXplZCA9IG5ldyBFdmVudEVtaXR0ZXI8eyB3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlciB9PigpO1xuXG5cdC8qKlxuXHQgKiBSZWNhbGN1bGF0ZSB0aGUgaGVpZ2h0IG9mIHRoaXMgZWxlbWVudCBhY2NvcmRpbmcgdG8gdGhlIGhlaWdodCBvZiB0aGUgbW9uaXRvcmVkIHRhcmdldC5cblx0ICovXG5cdEBJbnB1dCgpXG5cdGJ1aUZpeGVkSGVpZ2h0ID0gZmFsc2U7XG5cblx0cHJpdmF0ZSBfbW9uaXRvclRhcmdldDogSFRNTEVsZW1lbnQ7XG5cdHByaXZhdGUgX29ic2VydmVyOiBSZXNpemVPYnNlcnZlciB8IHVuZGVmaW5lZDtcblx0cHJpdmF0ZSBfc2l6aW5nU3BlYzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuXHRwcml2YXRlIF93aWR0aCA9IDA7XG5cdHByaXZhdGUgX2hlaWdodCA9IDA7XG5cdHByaXZhdGUgX3JlZmxvd0ZyYW1lQ291bnQgPSAwO1xuXHRwcml2YXRlIF9lbGVtZW50OiBIVE1MRWxlbWVudDtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIF9kb2M6IERvY3VtZW50LFxuXHRcdEBPcHRpb25hbCgpIHByaXZhdGUgX2RlZmF1bHRUYXJnZXQ6IFNpemluZ01vbml0b3JEaXJlY3RpdmUsXG5cdFx0ZWxlbVJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG5cdFx0cHJpdmF0ZSBfem9uZTogTmdab25lXG5cdCkge1xuXHRcdHRoaXMuX2VsZW1lbnQgPSBlbGVtUmVmLm5hdGl2ZUVsZW1lbnQ7XG5cdFx0dGhpcy5fbW9uaXRvclRhcmdldCA9IHRoaXMuX2VsZW1lbnQ7XG5cdH1cblxuXHRuZ09uQ2hhbmdlcyhfOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG5cdFx0Y29uc3QgZGlzY29ubmVjdGVkID0gdGhpcy5fZWxlbWVudC5nZXRSb290Tm9kZSgpIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQ7XG5cdFx0aWYgKGRpc2Nvbm5lY3RlZCkge1xuXHRcdFx0Ly8gZGVmZXIgc2hhZG93IGRldGVjdGlvbiB0aWxsIGRvbSBjb25uZWN0aW9uIGV2ZW50XG5cdFx0XHR0aGlzLl96b25lLm9uU3RhYmxlLnBpcGUoZGVib3VuY2VUaW1lKDEwKSwgdGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2luaXRPclJlc2V0KCkpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLl9pbml0T3JSZXNldCgpO1xuXHRcdH1cblx0fVxuXG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xuXHRcdHRoaXMuX3RlYXJEb3duTm9kZU1vbml0b3IoKTtcblx0fVxuXG5cdHByaXZhdGUgX2luaXRPclJlc2V0KCkge1xuXHRcdGNvbnN0IG9yaWdpbmFsVGFyZ2V0ID0gdGhpcy5fbW9uaXRvclRhcmdldDtcblx0XHRpZiAodGhpcy5idWlTaXppbmdCeSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG5cdFx0XHR0aGlzLl9tb25pdG9yVGFyZ2V0ID0gdGhpcy5idWlTaXppbmdCeTtcblx0XHR9IGVsc2UgaWYgKHRoaXMuX2RlZmF1bHRUYXJnZXQpIHtcblx0XHRcdHRoaXMuX21vbml0b3JUYXJnZXQgPSB0aGlzLl9kZWZhdWx0VGFyZ2V0LmVsZW1lbnQubmF0aXZlRWxlbWVudDtcblx0XHR9IGVsc2UgaWYgKHRoaXMuYnVpU2l6aW5nQnkgPT09ICdyb290Jykge1xuXHRcdFx0Y29uc3Qgcm9vdCA9IHRoaXMuX2VsZW1lbnQuZ2V0Um9vdE5vZGUoKTtcblx0XHRcdGlmIChyb290IGluc3RhbmNlb2YgU2hhZG93Um9vdCkge1xuXHRcdFx0XHR0aGlzLl9tb25pdG9yVGFyZ2V0ID0gcm9vdC5ob3N0IGFzIEhUTUxFbGVtZW50O1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy5fbW9uaXRvclRhcmdldCA9IHRoaXMuX2RvYy5kb2N1bWVudEVsZW1lbnQ7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuX21vbml0b3JUYXJnZXQgPSB0aGlzLl9lbGVtZW50LnBhcmVudEVsZW1lbnQgYXMgYW55O1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLl9tb25pdG9yVGFyZ2V0ICE9IG9yaWdpbmFsVGFyZ2V0KSB7XG5cdFx0XHR0aGlzLl9zZXRVcE5vZGVNb25pdG9yKCk7XG5cdFx0fVxuXG5cdFx0dGhpcy5fc2l6aW5nU3BlYyA9IHt9O1xuXHRcdGxldCBzcGVjID0gdGhpcy5idWlTaXppbmc7XG5cdFx0aWYgKHR5cGVvZiBzcGVjID09PSAnc3RyaW5nJykge1xuXHRcdFx0c3BlYyA9IHNwZWMuc3BsaXQoJywnKS5tYXAoayA9PiBrLnRyaW0oKSk7XG5cdFx0fVxuXG5cdFx0aWYgKEFycmF5LmlzQXJyYXkoc3BlYykpIHtcblx0XHRcdHNwZWMuZm9yRWFjaCgoYywgaSkgPT4ge1xuXHRcdFx0XHR0aGlzLl9zaXppbmdTcGVjW1NpemluZ0RpcmVjdGl2ZS5kZWZhdWx0U2l6aW5nQnJlYWtwb2ludHNbaV0gfHwgJ34nXSA9IGM7XG5cdFx0XHR9KTtcblx0XHR9IGVsc2UgaWYgKHNwZWMpIHtcblx0XHRcdHRoaXMuX3NpemluZ1NwZWMgPSBzcGVjO1xuXHRcdH1cblxuXHRcdHRoaXMuYnVpRml4ZWRIZWlnaHQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodGhpcy5idWlGaXhlZEhlaWdodCk7XG5cblx0XHR0aGlzLl9jYWxjdWxhdGVTaXplKCk7XG5cdH1cblxuXHRwcml2YXRlIF9zZXRVcE5vZGVNb25pdG9yKCkge1xuXHRcdHRoaXMuX3RlYXJEb3duTm9kZU1vbml0b3IoKTtcblx0XHRpZiAodGhpcy5fbW9uaXRvclRhcmdldCkge1xuXHRcdFx0dGhpcy5fb2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4gdGhpcy5fY2FsY3VsYXRlU2l6ZSgpKTtcblxuXHRcdFx0dGhpcy5fb2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl9tb25pdG9yVGFyZ2V0LCB7IGJveDogJ2JvcmRlci1ib3gnIH0pO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgX3RlYXJEb3duTm9kZU1vbml0b3IoKSB7XG5cdFx0aWYgKHRoaXMuX29ic2VydmVyKSB7XG5cdFx0XHR0aGlzLl9vYnNlcnZlci5kaXNjb25uZWN0KCk7XG5cdFx0XHR0aGlzLl9vYnNlcnZlciA9IHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIF9jYWxjdWxhdGVTaXplKCkge1xuXHRcdGNvbnN0IHdpZHRoQ2hhbmdlZCA9IHRoaXMuX3dpZHRoICE9PSB0aGlzLl9tb25pdG9yVGFyZ2V0LmNsaWVudFdpZHRoO1xuXHRcdGNvbnN0IGhlaWdodENoYW5nZWQgPSB0aGlzLl9oZWlnaHQgIT09IHRoaXMuX21vbml0b3JUYXJnZXQuY2xpZW50SGVpZ2h0O1xuXHRcdGlmICh3aWR0aENoYW5nZWQpIHtcblx0XHRcdHRoaXMuX3dpZHRoID0gdGhpcy5fbW9uaXRvclRhcmdldC5jbGllbnRXaWR0aDtcblxuXHRcdFx0Y29uc3QgYmtzID0gT2JqZWN0LmtleXModGhpcy5fc2l6aW5nU3BlYykuc29ydCgoYSwgYikgPT4gdGhpcy5fdG9OdW1iZXIoYSkgLSB0aGlzLl90b051bWJlcihiKSk7XG5cdFx0XHRsZXQgZm91bmQgPSBmYWxzZTtcblx0XHRcdGZvciAoY29uc3Qga2V5IG9mIGJrcykge1xuXHRcdFx0XHRjb25zdCBjbGFzc2VzID0gdGhpcy5fc2l6aW5nU3BlY1trZXldLnNwbGl0KC9cXHMrLykuZmlsdGVyKGMgPT4gISFjKTtcblx0XHRcdFx0aWYgKGNsYXNzZXMubGVuZ3RoKSB7XG5cdFx0XHRcdFx0dGhpcy5fZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKC4uLmNsYXNzZXMpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGNvbnN0IGV4cGVjdGVkV2lkdGggPSB0aGlzLl90b051bWJlcihrZXkpO1xuXHRcdFx0XHRpZiAodGhpcy5fd2lkdGggPD0gZXhwZWN0ZWRXaWR0aCAmJiAhZm91bmQpIHtcblx0XHRcdFx0XHRpZiAoY2xhc3Nlcy5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZCguLi5jbGFzc2VzKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Zm91bmQgPSB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKHdpZHRoQ2hhbmdlZCB8fCBoZWlnaHRDaGFuZ2VkKSB7XG5cdFx0XHR0aGlzLl9oZWlnaHQgPSB0aGlzLl9tb25pdG9yVGFyZ2V0LmNsaWVudEhlaWdodDtcblx0XHRcdGlmICh0aGlzLmJ1aUZpeGVkSGVpZ2h0KSB7XG5cdFx0XHRcdHRoaXMuX3JlZmxvd0ZyYW1lQ291bnQgPSAwO1xuXHRcdFx0XHR0aGlzLl9yZWZsb3dIZWlnaHQoKTtcblx0XHRcdH1cblx0XHRcdHRoaXMuYnVpUmVzaXplZC5lbWl0KHsgd2lkdGg6IHRoaXMuX3dpZHRoLCBoZWlnaHQ6IHRoaXMuX2hlaWdodCB9KTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIF9yZWZsb3dIZWlnaHQoKSB7XG5cdFx0Y29uc3QgY250ID0gdGhpcy5fcmVmbG93RnJhbWVDb3VudDtcblx0XHRpZiAoY250IDwgMTUpIHtcblx0XHRcdHJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLl9yZWZsb3dIZWlnaHQuYmluZCh0aGlzKSk7XG5cblx0XHRcdGlmIChjbnQgPT09IDApIHtcblx0XHRcdFx0dGhpcy5fZWxlbWVudC5zdHlsZS5oZWlnaHQgPSAnMCc7XG5cdFx0XHR9IGVsc2UgaWYgKGNudCA9PT0gMTQpIHtcblx0XHRcdFx0Y29uc3QgZ3QgPSBwYXJzZUludChcblx0XHRcdFx0XHRnZXRDb21wdXRlZFN0eWxlKHRoaXMuX21vbml0b3JUYXJnZXQpLmdldFByb3BlcnR5VmFsdWUoJ3BhZGRpbmctdG9wJykucmVwbGFjZSgvcHgkLywgJycpIHx8ICcwJyxcblx0XHRcdFx0XHQxMFxuXHRcdFx0XHQpO1xuXHRcdFx0XHRjb25zdCBnYiA9IHBhcnNlSW50KFxuXHRcdFx0XHRcdGdldENvbXB1dGVkU3R5bGUodGhpcy5fbW9uaXRvclRhcmdldCkuZ2V0UHJvcGVydHlWYWx1ZSgncGFkZGluZy1ib3R0b20nKS5yZXBsYWNlKC9weCQvLCAnJykgfHwgJzAnLFxuXHRcdFx0XHRcdDEwXG5cdFx0XHRcdCk7XG5cdFx0XHRcdHRoaXMuX2VsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gYCR7dGhpcy5faGVpZ2h0IC0gZ3QgLSBnYiAtIDV9cHhgO1xuXHRcdFx0fVxuXHRcdH1cblx0XHR0aGlzLl9yZWZsb3dGcmFtZUNvdW50Kys7XG5cdH1cblxuXHRwcml2YXRlIF90b051bWJlcihzOiBzdHJpbmcpIHtcblx0XHRyZXR1cm4gKHMgPT09ICd+JyA/IEluZmluaXR5IDogTnVtYmVyKHMpKSB8fCAtSW5maW5pdHk7XG5cdH1cbn1cbiJdfQ==
|
|
245
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l6aW5nLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL2JlaGF2aW9yL3NpemluZy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFDTixTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBSUwsUUFBUSxFQUNSLE1BQU0sRUFFTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFHcEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBSUgsTUFBTSxPQUFPLGVBQWU7SUFnRTNCLFlBQzJCLElBQWMsRUFDcEIsY0FBc0MsRUFDMUQsT0FBZ0MsRUFDeEIsS0FBYTtRQUhLLFNBQUksR0FBSixJQUFJLENBQVU7UUFDcEIsbUJBQWMsR0FBZCxjQUFjLENBQXdCO1FBRWxELFVBQUssR0FBTCxLQUFLLENBQVE7UUE5RHRCOzs7Ozs7OztXQVFHO1FBRUgsY0FBUyxHQUF1RCxFQUFFLENBQUM7UUFFbkU7OztXQUdHO1FBRUgsYUFBUSxHQUFvQyxNQUFNLENBQUM7UUFtQm5EOzs7O1dBSUc7UUFFSCxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQXFDLENBQUM7UUFFbkU7O1dBRUc7UUFFSCxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUlmLGdCQUFXLEdBQThCLEVBQUUsQ0FBQztRQUM1QyxXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsWUFBTyxHQUFHLENBQUMsQ0FBQztRQUNaLHNCQUFpQixHQUFHLENBQUMsQ0FBQztRQVM3QixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDdEMsSUFBSSxD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LEdBQUcsQ0FBQyxDQUFDOzRHQUoxQyxlQUFlLGtCQWlFbEIsUUFBUTtnR0FqRUwsZUFBZTsyRkFBZixlQUFlO2tCQUgzQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSx5REFBeUQ7aUJBQ25FOzBEQWtFaUMsUUFBUTswQkFBdkMsTUFBTTsyQkFBQyxRQUFROzswQkFDZixRQUFROzBGQWxEVixTQUFTO3NCQURSLEtBQUs7Z0JBUU4sUUFBUTtzQkFEUCxLQUFLO2dCQWFGLFdBQVc7c0JBRGQsS0FBSztnQkFjTixVQUFVO3NCQURULE1BQU07Z0JBT1AsY0FBYztzQkFEYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG5cdERpcmVjdGl2ZSxcblx0RWxlbWVudFJlZixcblx0RXZlbnRFbWl0dGVyLFxuXHRJbmplY3QsXG5cdElucHV0LFxuXHROZ1pvbmUsXG5cdE9uQ2hhbmdlcyxcblx0T25EZXN0cm95LFxuXHRPcHRpb25hbCxcblx0T3V0cHV0LFxuXHRTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU2l6aW5nTW9uaXRvckRpcmVjdGl2ZSB9IGZyb20gJy4vc2l6aW5nLW1vbml0b3IuZGlyZWN0aXZlJztcblxuLyoqXG4gKiBUaGlzIGRpcmVjdGl2ZSBtb25pdG9ycyB0aGUgY2hhbmdlcyBpbiB0aGUgd2lkdGggb2YgdGhlIGBzaXppbmdCeWAgdGFyZ2V0LCBhbmQgYXBwbHkgc3BlY2lmaWVkIHN0eWxlXG4gKiAgY2xhc3NlcyBhbmQvb3IgaW5saW5lIHN0eWxlcyB0byB0aGUgY3VycmVudCBlbGVtZW50IGR5bmFtaWNhbGx5LlxuICpcbiAqIEluIG9yZGVyIGZvciB0aGUgbGF5b3V0IGVuZ2luZSB0byBlZmZpY2llbnRseSBjYWxjdWxhdGUgYW5kIHN0YWJpbGl6ZSB0aGUgZGltZW5zaW9ucywgdGhlIGVmZmVjdGl2ZSBzdHlsZSBwcm9wZXJ0eVxuICogYGJveC1zaXppbmdgIG9mIHRoZSBgc2l6aW5nQnlgIHRhcmdldCBlbGVtZW50IG11c3QgYmUgc2V0IHRvIGBib3JkZXItYm94YC5cbiAqXG4gKiBUaGUgZGlyZWN0aXZlIHVzZXMgW1Jlc2l6ZU9ic2VydmVyIEFQSV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1Jlc2l6ZV9PYnNlcnZlcl9BUEkpXG4gKiB0byBjYXB0dXJlIHRoZSBldmVudHMgb2YgZWxlbWVudCByZXNpemluZy4gUGxlYXNlIHVzZSBhIHBvbHlmaWxsIGlmIHlvdSB3YW50IHRvIHN1cHBvcnQgb2xkZXIgYnJvd3NlcnNcbiAqIHRoYXQgZG8gbm90IGltcGxlbWVudCBSZXNpemVPYnNlcnZlciBBUEkuXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogYGBgaHRtbFxuICogPGRpdiAjcGFyZW50RWxlbWVudD5cbiAqICAgPGRpdiBbYnVpU2l6aW5nXT1cInsnNDAwJzogJ3NtYWxsJywgJzgwMCc6ICdtZWRpdW0nLCAnfic6ICdsYXJnZSd9XCIgW2J1aVNpemluZ0J5XT1cInBhcmVudEVsZW1lbnRcIj48L2Rpdj5cbiAqICAgPGRpdiBbYnVpU2l6aW5nXT1cIlsnc21hbGwnLCAnbWVkaXVtJywgJ2xhcmdlJ11cIiBbYnVpU2l6aW5nQnldPVwiJ3Jvb3QnXCI+PC9kaXY+XG4gKiAgIDxkaXYgW2J1aVNpemluZ109XCJ7JzY1MCc6ICdib3JkZXItY29sb3I6ICMyODU2OScsICd+JzogJ2JnLW11dGVkOyBib3JkZXItc3R5bGU6IGRvdHRlZCd9XCIgW2J1aVNpemluZ0J5XT1cInBhcmVudEVsZW1lbnRcIj48L2Rpdj5cbiAqIDwvZGl2PlxuICogYGBgXG4gKi9cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ1tidWlTaXppbmddLFtidWlSZXNpemVkXSxbYnVpU2l6aW5nQnldLFtidWlGaXhlZEhlaWdodF0nXG59KVxuZXhwb3J0IGNsYXNzIFNpemluZ0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcblx0LyoqXG5cdCAqIEBpZ25vcmVcblx0ICovXG5cdHN0YXRpYyBkZWZhdWx0U2l6aW5nQnJlYWtwb2ludHMgPSBbJzQwMCcsICc4MDAnLCAnfiddO1xuXG5cdC8qKlxuXHQgKiBTcGVjaWZpZXMgdGhlIGJyZWFrcG9pbnQgd2lkdGhzIGFuZCB0aGUgc3R5bGUgY2xhc3Nlcy5cblx0ICpcblx0ICogVGhlIHNpemluZyBzcGVjIGB7XCI0MDBcIjogXCJzbWFsbFwiLCBcIjgwMFwiOiBcIm1lZGl1bVwiLCBcIn5cIjogXCJsYXJnZVwifWAgdGVsbHMgdGhlIGRpcmVjdGl2ZSB0byBhcHBseVxuXHQgKiBhIHN0eWxlIGNsYXNzIGBzbWFsbGAgd2hlbiB0aGUgd2lkdGggb2YgdGhlIG1vbml0b3JlZCB0YXJnZXQgaXMgc21hbGxlciB0aGFuIDQwMCBwaXhlbHMsXG5cdCAqIGBtZWRpdW1gIHdoZW4gdGhlIHdpZHRoIGlzIGJldHdlZW4gNDAwIGFuZCA4MDAgcGl4ZWxzLCBhbmQgYGxhcmdlYCB3aGVuIGFib3ZlLlxuXHQgKlxuXHQgKiBAZXhhbXBsZSB7JzQwMCc6ICdzbWFsbCcsICc4MDAnOiAnbWVkaXVtJywgJ34nOiAnbGFyZ2UnfVxuXHQgKi9cblx0QElucHV0KClcblx0YnVpU2l6aW5nOiBzdHJpbmcgfCBBcnJheTxzdHJpbmc+IHwgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuXG5cdC8qKlxuXHQgKiBUaGUgYWxpYXMgb2YgYGJ1aVNpemluZ0J5YC5cblx0ICogQGRlZmF1bHQgJ3Jvb3QnXG5cdCAqL1xuXHRASW5wdXQoKVxuXHRzaXppbmdCeTogJ3Jvb3QnIHwgJ3BhcmVudCcgfCBIVE1MRWxlbWVudCA9ICdyb290JztcblxuXHQvKipcblx0ICogRGVzaWduYXRlIGFuIGVsZW1lbnQgdG8gYmUgbW9uaXRvcmVkIGZvciByZWNhbGN1bGF0aW5nIHRoZSBzdHlsZSBjbGFzc2VzIG9mIHRoZSBjdXJyZW50IGVsZW1lbnQuXG5cdCAqXG5cdCAqIC0gYHJvb3RgIHNwZWNpZmllcyB0aGUgZG9jdW1lbnQgcm9vdCBvciB0aGUgZW5jbG9zaW5nIHNoYWRvdyBob3N0LiBUaGlzIGlzIHRoZSBkZWZhdWx0IHZhbHVlLlxuXHQgKiAtIGBwYXJlbnRgIHNwZWNpZmllcyB0aGUgcGFyZW50IGVsZW1lbnQuXG5cdCAqXG5cdCAqIEBkZWZhdWx0ICdyb290J1xuXHQgKiBAYWxpYXMgc2l6aW5nQnlcblx0ICovXG5cdEBJbnB1dCgpXG5cdGdldCBidWlTaXppbmdCeSgpOiAncm9vdCcgfCAncGFyZW50JyB8IEhUTUxFbGVtZW50IHtcblx0XHRyZXR1cm4gdGhpcy5zaXppbmdCeTtcblx0fVxuXHRzZXQgYnVpU2l6aW5nQnkodGFyZ2V0OiAncm9vdCcgfCAncGFyZW50JyB8IEhUTUxFbGVtZW50KSB7XG5cdFx0dGhpcy5zaXppbmdCeSA9IHRhcmdldDtcblx0fVxuXG5cdC8qKlxuXHQgKiBFbWl0cyBge3dpZHRoLCBoZWlnaHR9YCB3aGVuIHRoZSBtb25pdG9yIHRhcmdldCBlbGVtZW50IHJlc2l6ZXMuXG5cdCAqXG5cdCAqIE5vdGUgdGhhdCB0aGUgZGltZW5zaW9ucyBlbWl0dGVkIGFyZSBvZiB0aGUgW3NpemluZ0J5XSB0YXJnZXQsIGJ1dCBub3QgdGhlIGN1cnJlbnQgZWxlbWVudC5cblx0ICovXG5cdEBPdXRwdXQoKVxuXHRidWlSZXNpemVkID0gbmV3IEV2ZW50RW1pdHRlcjx7IHdpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyIH0+KCk7XG5cblx0LyoqXG5cdCAqIFJlY2FsY3VsYXRlIHRoZSBoZWlnaHQgb2YgdGhpcyBlbGVtZW50IGFjY29yZGluZyB0byB0aGUgaGVpZ2h0IG9mIHRoZSBtb25pdG9yZWQgdGFyZ2V0LlxuXHQgKi9cblx0QElucHV0KClcblx0YnVpRml4ZWRIZWlnaHQgPSBmYWxzZTtcblxuXHRwcml2YXRlIF9tb25pdG9yVGFyZ2V0OiBIVE1MRWxlbWVudDtcblx0cHJpdmF0ZSBfb2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyIHwgdW5kZWZpbmVkO1xuXHRwcml2YXRlIF9zaXppbmdTcGVjOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG5cdHByaXZhdGUgX3dpZHRoID0gMDtcblx0cHJpdmF0ZSBfaGVpZ2h0ID0gMDtcblx0cHJpdmF0ZSBfcmVmbG93RnJhbWVDb3VudCA9IDA7XG5cdHByaXZhdGUgX2VsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgX2RvYzogRG9jdW1lbnQsXG5cdFx0QE9wdGlvbmFsKCkgcHJpdmF0ZSBfZGVmYXVsdFRhcmdldDogU2l6aW5nTW9uaXRvckRpcmVjdGl2ZSxcblx0XHRlbGVtUmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pixcblx0XHRwcml2YXRlIF96b25lOiBOZ1pvbmVcblx0KSB7XG5cdFx0dGhpcy5fZWxlbWVudCA9IGVsZW1SZWYubmF0aXZlRWxlbWVudDtcblx0XHR0aGlzLl9tb25pdG9yVGFyZ2V0ID0gdGhpcy5fZWxlbWVudDtcblx0fVxuXG5cdG5nT25DaGFuZ2VzKF86IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcblx0XHRjb25zdCBkaXNjb25uZWN0ZWQgPSB0aGlzLl9lbGVtZW50LmdldFJvb3ROb2RlKCkgaW5zdGFuY2VvZiBIVE1MRWxlbWVudDtcblx0XHRpZiAoZGlzY29ubmVjdGVkKSB7XG5cdFx0XHQvLyBkZWZlciBzaGFkb3cgZGV0ZWN0aW9uIHRpbGwgZG9tIGNvbm5lY3Rpb24gZXZlbnRcblx0XHRcdHRoaXMuX3pvbmUub25TdGFibGUucGlwZShkZWJvdW5jZVRpbWUoMTApLCB0YWtlKDEpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5faW5pdE9yUmVzZXQoKSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuX2luaXRPclJlc2V0KCk7XG5cdFx0fVxuXHR9XG5cblx0bmdPbkRlc3Ryb3koKTogdm9pZCB7XG5cdFx0dGhpcy5fdGVhckRvd25Ob2RlTW9uaXRvcigpO1xuXHR9XG5cblx0cHJpdmF0ZSBfaW5pdE9yUmVzZXQoKSB7XG5cdFx0Y29uc3Qgb3JpZ2luYWxUYXJnZXQgPSB0aGlzLl9tb25pdG9yVGFyZ2V0O1xuXHRcdGlmICh0aGlzLmJ1aVNpemluZ0J5IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcblx0XHRcdHRoaXMuX21vbml0b3JUYXJnZXQgPSB0aGlzLmJ1aVNpemluZ0J5O1xuXHRcdH0gZWxzZSBpZiAodGhpcy5fZGVmYXVsdFRhcmdldCkge1xuXHRcdFx0dGhpcy5fbW9uaXRvclRhcmdldCA9IHRoaXMuX2RlZmF1bHRUYXJnZXQuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuXHRcdH0gZWxzZSBpZiAodGhpcy5idWlTaXppbmdCeSA9PT0gJ3Jvb3QnKSB7XG5cdFx0XHRjb25zdCByb290ID0gdGhpcy5fZWxlbWVudC5nZXRSb290Tm9kZSgpO1xuXHRcdFx0aWYgKHJvb3QgaW5zdGFuY2VvZiBTaGFkb3dSb290KSB7XG5cdFx0XHRcdHRoaXMuX21vbml0b3JUYXJnZXQgPSByb290Lmhvc3QgYXMgSFRNTEVsZW1lbnQ7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLl9tb25pdG9yVGFyZ2V0ID0gdGhpcy5fZG9jLmRvY3VtZW50RWxlbWVudDtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5fbW9uaXRvclRhcmdldCA9IHRoaXMuX2VsZW1lbnQucGFyZW50RWxlbWVudCBhcyBhbnk7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuX21vbml0b3JUYXJnZXQgIT0gb3JpZ2luYWxUYXJnZXQpIHtcblx0XHRcdHRoaXMuX3NldFVwTm9kZU1vbml0b3IoKTtcblx0XHR9XG5cblx0XHR0aGlzLl9zaXppbmdTcGVjID0ge307XG5cdFx0bGV0IHNwZWMgPSB0aGlzLmJ1aVNpemluZztcblx0XHRpZiAodHlwZW9mIHNwZWMgPT09ICdzdHJpbmcnKSB7XG5cdFx0XHRzcGVjID0gc3BlYy5zcGxpdCgnLCcpLm1hcChrID0+IGsudHJpbSgpKTtcblx0XHR9XG5cblx0XHRpZiAoQXJyYXkuaXNBcnJheShzcGVjKSkge1xuXHRcdFx0c3BlYy5mb3JFYWNoKChjLCBpKSA9PiB7XG5cdFx0XHRcdHRoaXMuX3NpemluZ1NwZWNbU2l6aW5nRGlyZWN0aXZlLmRlZmF1bHRTaXppbmdCcmVha3BvaW50c1tpXSB8fCAnfiddID0gYztcblx0XHRcdH0pO1xuXHRcdH0gZWxzZSBpZiAoc3BlYykge1xuXHRcdFx0dGhpcy5fc2l6aW5nU3BlYyA9IHNwZWM7XG5cdFx0fVxuXG5cdFx0dGhpcy5idWlGaXhlZEhlaWdodCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh0aGlzLmJ1aUZpeGVkSGVpZ2h0KTtcblxuXHRcdHRoaXMuX2NhbGN1bGF0ZVNpemUoKTtcblx0fVxuXG5cdHByaXZhdGUgX3NldFVwTm9kZU1vbml0b3IoKSB7XG5cdFx0dGhpcy5fdGVhckRvd25Ob2RlTW9uaXRvcigpO1xuXHRcdGlmICh0aGlzLl9tb25pdG9yVGFyZ2V0KSB7XG5cdFx0XHR0aGlzLl9vYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB0aGlzLl9jYWxjdWxhdGVTaXplKCkpO1xuXG5cdFx0XHR0aGlzLl9vYnNlcnZlci5vYnNlcnZlKHRoaXMuX21vbml0b3JUYXJnZXQsIHsgYm94OiAnYm9yZGVyLWJveCcgfSk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBfdGVhckRvd25Ob2RlTW9uaXRvcigpIHtcblx0XHRpZiAodGhpcy5fb2JzZXJ2ZXIpIHtcblx0XHRcdHRoaXMuX29ic2VydmVyLmRpc2Nvbm5lY3QoKTtcblx0XHRcdHRoaXMuX29ic2VydmVyID0gdW5kZWZpbmVkO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgX2NhbGN1bGF0ZVNpemUoKSB7XG5cdFx0Y29uc3Qgd2lkdGhDaGFuZ2VkID0gdGhpcy5fd2lkdGggIT09IHRoaXMuX21vbml0b3JUYXJnZXQuY2xpZW50V2lkdGg7XG5cdFx0Y29uc3QgaGVpZ2h0Q2hhbmdlZCA9IHRoaXMuX2hlaWdodCAhPT0gdGhpcy5fbW9uaXRvclRhcmdldC5jbGllbnRIZWlnaHQ7XG5cdFx0aWYgKHdpZHRoQ2hhbmdlZCkge1xuXHRcdFx0dGhpcy5fd2lkdGggPSB0aGlzLl9tb25pdG9yVGFyZ2V0LmNsaWVudFdpZHRoO1xuXG5cdFx0XHRjb25zdCBia3MgPSBPYmplY3Qua2V5cyh0aGlzLl9zaXppbmdTcGVjKS5zb3J0KChhLCBiKSA9PiB0aGlzLl90b051bWJlcihhKSAtIHRoaXMuX3RvTnVtYmVyKGIpKTtcblx0XHRcdGxldCBmb3VuZCA9IGZhbHNlO1xuXHRcdFx0Zm9yIChjb25zdCBrZXkgb2YgYmtzKSB7XG5cdFx0XHRcdGNvbnN0IGNsYXNzZXNPclN0eWxlcyA9IHRoaXMuX3NpemluZ1NwZWNba2V5XS5zcGxpdCgvOysvKS5maWx0ZXIoYyA9PiBjKTtcblx0XHRcdFx0dGhpcy5fcmVtb3ZlQ2xhc3Nlc09yU3R5bGVzKGNsYXNzZXNPclN0eWxlcyk7XG5cdFx0XHRcdGNvbnN0IGV4cGVjdGVkV2lkdGggPSB0aGlzLl90b051bWJlcihrZXkpO1xuXHRcdFx0XHRpZiAodGhpcy5fd2lkdGggPD0gZXhwZWN0ZWRXaWR0aCAmJiAhZm91bmQpIHtcblx0XHRcdFx0XHR0aGlzLl9hcHBseUNsYXNzZXNPclN0eWxlcyhjbGFzc2VzT3JTdHlsZXMpO1xuXHRcdFx0XHRcdGZvdW5kID0gdHJ1ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmICh3aWR0aENoYW5nZWQgfHwgaGVpZ2h0Q2hhbmdlZCkge1xuXHRcdFx0dGhpcy5faGVpZ2h0ID0gdGhpcy5fbW9uaXRvclRhcmdldC5jbGllbnRIZWlnaHQ7XG5cdFx0XHRpZiAodGhpcy5idWlGaXhlZEhlaWdodCkge1xuXHRcdFx0XHR0aGlzLl9yZWZsb3dGcmFtZUNvdW50ID0gMDtcblx0XHRcdFx0dGhpcy5fcmVmbG93SGVpZ2h0KCk7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLmJ1aVJlc2l6ZWQuZW1pdCh7IHdpZHRoOiB0aGlzLl93aWR0aCwgaGVpZ2h0OiB0aGlzLl9oZWlnaHQgfSk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBfYXBwbHlDbGFzc2VzT3JTdHlsZXMoY2xzT3JTdHlsZXM6IHN0cmluZ1tdKSB7XG5cdFx0Y2xzT3JTdHlsZXMuZm9yRWFjaChzID0+IHtcblx0XHRcdGlmIChzLmluY2x1ZGVzKCc6JykpIHtcblx0XHRcdFx0Y29uc3QgW3Byb3AsIHZhbF0gPSBzLnNwbGl0KCc6Jyk7XG5cdFx0XHRcdHRoaXMuX2VsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkocHJvcC50cmltKCksIHZhbC50cmltKCkpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y29uc3QgY2xhc3NlcyA9IHMuc3BsaXQoL1xccysvKS5maWx0ZXIoYyA9PiBjKTtcblx0XHRcdFx0aWYgKGNsYXNzZXMubGVuZ3RoKSB7XG5cdFx0XHRcdFx0dGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKC4uLmNsYXNzZXMpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIF9yZW1vdmVDbGFzc2VzT3JTdHlsZXMoY2xzT3JTdHlsZXM6IHN0cmluZ1tdKSB7XG5cdFx0Y2xzT3JTdHlsZXMuZm9yRWFjaChzID0+IHtcblx0XHRcdGlmIChzLmluY2x1ZGVzKCc6JykpIHtcblx0XHRcdFx0Y29uc3QgW3Byb3BdID0gcy5zcGxpdCgnOicpO1xuXHRcdFx0XHR0aGlzLl9lbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KHByb3ApO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y29uc3QgY2xhc3NlcyA9IHMuc3BsaXQoL1xccysvKS5maWx0ZXIoYyA9PiBjKTtcblx0XHRcdFx0aWYgKGNsYXNzZXMubGVuZ3RoKSB7XG5cdFx0XHRcdFx0dGhpcy5fZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKC4uLmNsYXNzZXMpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIF9yZWZsb3dIZWlnaHQoKSB7XG5cdFx0Y29uc3QgY250ID0gdGhpcy5fcmVmbG93RnJhbWVDb3VudDtcblx0XHRpZiAoY250IDwgMTUpIHtcblx0XHRcdHJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLl9yZWZsb3dIZWlnaHQuYmluZCh0aGlzKSk7XG5cblx0XHRcdGlmIChjbnQgPT09IDApIHtcblx0XHRcdFx0dGhpcy5fZWxlbWVudC5zdHlsZS5oZWlnaHQgPSAnMCc7XG5cdFx0XHR9IGVsc2UgaWYgKGNudCA9PT0gMTQpIHtcblx0XHRcdFx0Y29uc3QgZ3QgPSBwYXJzZUludChcblx0XHRcdFx0XHRnZXRDb21wdXRlZFN0eWxlKHRoaXMuX21vbml0b3JUYXJnZXQpLmdldFByb3BlcnR5VmFsdWUoJ3BhZGRpbmctdG9wJykucmVwbGFjZSgvcHgkLywgJycpIHx8ICcwJyxcblx0XHRcdFx0XHQxMFxuXHRcdFx0XHQpO1xuXHRcdFx0XHRjb25zdCBnYiA9IHBhcnNlSW50KFxuXHRcdFx0XHRcdGdldENvbXB1dGVkU3R5bGUodGhpcy5fbW9uaXRvclRhcmdldCkuZ2V0UHJvcGVydHlWYWx1ZSgncGFkZGluZy1ib3R0b20nKS5yZXBsYWNlKC9weCQvLCAnJykgfHwgJzAnLFxuXHRcdFx0XHRcdDEwXG5cdFx0XHRcdCk7XG5cdFx0XHRcdHRoaXMuX2VsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gYCR7dGhpcy5faGVpZ2h0IC0gZ3QgLSBnYiAtIDV9cHhgO1xuXHRcdFx0fVxuXHRcdH1cblx0XHR0aGlzLl9yZWZsb3dGcmFtZUNvdW50Kys7XG5cdH1cblxuXHRwcml2YXRlIF90b051bWJlcihzOiBzdHJpbmcpIHtcblx0XHRyZXR1cm4gKHMgPT09ICd+JyA/IEluZmluaXR5IDogTnVtYmVyKHMpKSB8fCAtSW5maW5pdHk7XG5cdH1cbn1cbiJdfQ==
|
|
@@ -282,7 +282,7 @@ export class DiscreteInputComponent extends _DiscreteInputBase {
|
|
|
282
282
|
/** @ignore */
|
|
283
283
|
DiscreteInputComponent.nextId = 0;
|
|
284
284
|
DiscreteInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: DiscreteInputComponent, deps: [{ token: i1.FocusMonitor }, { token: i0.ElementRef }, { token: MAT_FORM_FIELD, optional: true }, { token: i2.NgControl, optional: true, self: true }, { token: i2.NgForm, optional: true }, { token: i2.FormGroupDirective, optional: true }, { token: i3.ErrorStateMatcher }], target: i0.ɵɵFactoryTarget.Component });
|
|
285
|
-
DiscreteInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.7", type: DiscreteInputComponent, selector: "bui-discrete-input", inputs: { type: "type", separator: "separator", accept: "accept", userAriaDescribedBy: ["aria-describedby", "userAriaDescribedBy"], sizeSpec: "sizeSpec", placeholder: "placeholder", required: "required", disabled: "disabled", value: "value" }, host: { classAttribute: "bui-discrete-input" }, providers: [{ provide: MatFormFieldControl, useExisting: DiscreteInputComponent }], viewQueries: [{ propertyName: "inputParts", predicate: ["part"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div\n\trole=\"group\"\n\tclass=\"bui-discrete-input-container\"\n\t[formGroup]=\"group\"\n\t[attr.aria-labelledby]=\"_formField?.getLabelId()\"\n>\n\t<ng-container [formArrayName]=\"'parts'\">\n\t\t<ng-template ngFor [ngForOf]=\"parts.controls\" let-p let-i=\"index\">\n\t\t\t<input\n\t\t\t\tclass=\"bui-discrete-input-element bui-outline-{{ _colorSuffix }}\"\n\t\t\t\t[formControlName]=\"i\"\n\t\t\t\tsize=\"1\"\n\t\t\t\tmaxLength=\"1\"\n\t\t\t\t[attr.aria-label]=\"'character ' + (i + 1)\"\n\t\t\t\t(input)=\"_handleInput(p, i)\"\n\t\t\t\t(beforeinput)=\"_handleBeforeInput(i, $event)\"\n\t\t\t\t(keydown.backspace)=\"_handleBackspace(p, i)\"\n\t\t\t\t(keydown.arrowup)=\"_consumeKey($event)\"\n\t\t\t\t(keydown.arrowdown)=\"_consumeKey($event)\"\n\t\t\t\t(keydown.arrowleft)=\"_leftArrow(i, $event)\"\n\t\t\t\t(keydown.arrowright)=\"_rightArrow(i, $event)\"\n\t\t\t\t[attr.placeholder]=\"_placeholderAt(i)\"\n\t\t\t\t#part\n\t\t\t\t(click)=\"$event.stopPropagation()\"\n\t\t\t\t(paste)=\"_onPaste($event)\"\n\t\t\t\t[type]=\"['text', 'number', 'password'].includes(type) ? type : 'text'\"\n\t\t\t\tautocapitalize=\"none\"\n\t\t\t/>\n\t\t\t<span *ngIf=\"_separatorRequired(i)\" class=\"bui-discrete-input-spacer\">{{ separator }}</span>\n\t\t</ng-template>\n\t</ng-container>\n</div>\n", styles: [".bui-discrete-input-container{display:flex;align-items:center}.bui-discrete-input-element{border:1px solid rgba(128,128,128,.4);border-radius:3px;background:none;padding:0;text-align:center;width:1.5em;height:1.5em;font-size:inherit;color:currentColor;caret-color:auto}.bui-discrete-input-element:not(:last-child){margin-right:.25em}.bui-discrete-input-element:focus-visible{outline-style:solid;outline-width:2px;outline-offset:-1px}.bui-discrete-input-element[type=number]::-webkit-inner-spin-button,.bui-discrete-input-element[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.bui-discrete-input-spacer{margin-right:.25em;vertical-align:middle}\n"], directives: [{ type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
285
|
+
DiscreteInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.7", type: DiscreteInputComponent, selector: "bui-discrete-input", inputs: { type: "type", separator: "separator", accept: "accept", userAriaDescribedBy: ["aria-describedby", "userAriaDescribedBy"], sizeSpec: "sizeSpec", placeholder: "placeholder", required: "required", disabled: "disabled", value: "value" }, host: { classAttribute: "bui-discrete-input bui-host" }, providers: [{ provide: MatFormFieldControl, useExisting: DiscreteInputComponent }], viewQueries: [{ propertyName: "inputParts", predicate: ["part"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div\n\trole=\"group\"\n\tclass=\"bui-discrete-input-container\"\n\t[formGroup]=\"group\"\n\t[attr.aria-labelledby]=\"_formField?.getLabelId()\"\n>\n\t<ng-container [formArrayName]=\"'parts'\">\n\t\t<ng-template ngFor [ngForOf]=\"parts.controls\" let-p let-i=\"index\">\n\t\t\t<input\n\t\t\t\tclass=\"bui-discrete-input-element bui-outline-{{ _colorSuffix }}\"\n\t\t\t\t[formControlName]=\"i\"\n\t\t\t\tsize=\"1\"\n\t\t\t\tmaxLength=\"1\"\n\t\t\t\t[attr.aria-label]=\"'character ' + (i + 1)\"\n\t\t\t\t(input)=\"_handleInput(p, i)\"\n\t\t\t\t(beforeinput)=\"_handleBeforeInput(i, $event)\"\n\t\t\t\t(keydown.backspace)=\"_handleBackspace(p, i)\"\n\t\t\t\t(keydown.arrowup)=\"_consumeKey($event)\"\n\t\t\t\t(keydown.arrowdown)=\"_consumeKey($event)\"\n\t\t\t\t(keydown.arrowleft)=\"_leftArrow(i, $event)\"\n\t\t\t\t(keydown.arrowright)=\"_rightArrow(i, $event)\"\n\t\t\t\t[attr.placeholder]=\"_placeholderAt(i)\"\n\t\t\t\t#part\n\t\t\t\t(click)=\"$event.stopPropagation()\"\n\t\t\t\t(paste)=\"_onPaste($event)\"\n\t\t\t\t[type]=\"['text', 'number', 'password'].includes(type) ? type : 'text'\"\n\t\t\t\tautocapitalize=\"none\"\n\t\t\t/>\n\t\t\t<span *ngIf=\"_separatorRequired(i)\" class=\"bui-discrete-input-spacer\">{{ separator }}</span>\n\t\t</ng-template>\n\t</ng-container>\n</div>\n", styles: [".bui-discrete-input-container{display:flex;align-items:center}.bui-discrete-input-element{border:1px solid rgba(128,128,128,.4);border-radius:3px;background:none;padding:0;text-align:center;width:1.5em;height:1.5em;font-size:inherit;color:currentColor;caret-color:auto}.bui-discrete-input-element:not(:last-child){margin-right:.25em}.bui-discrete-input-element:focus-visible{outline-style:solid;outline-width:2px;outline-offset:-1px}.bui-discrete-input-element[type=number]::-webkit-inner-spin-button,.bui-discrete-input-element[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.bui-discrete-input-spacer{margin-right:.25em;vertical-align:middle}\n"], directives: [{ type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
286
286
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: DiscreteInputComponent, decorators: [{
|
|
287
287
|
type: Component,
|
|
288
288
|
args: [{
|
|
@@ -291,7 +291,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImpor
|
|
|
291
291
|
styleUrls: ['discrete-input.component.scss'],
|
|
292
292
|
providers: [{ provide: MatFormFieldControl, useExisting: DiscreteInputComponent }],
|
|
293
293
|
host: {
|
|
294
|
-
class: 'bui-discrete-input'
|
|
294
|
+
class: 'bui-discrete-input bui-host'
|
|
295
295
|
}
|
|
296
296
|
}]
|
|
297
297
|
}], ctorParameters: function () { return [{ type: i1.FocusMonitor }, { type: i0.ElementRef }, { type: i5.MatFormField, decorators: [{
|
|
@@ -330,4 +330,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImpor
|
|
|
330
330
|
}], value: [{
|
|
331
331
|
type: Input
|
|
332
332
|
}] } });
|
|
333
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzY3JldGUtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvZGlzY3JldGUtaW5wdXQvZGlzY3JldGUtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvZGlzY3JldGUtaW5wdXQvZGlzY3JldGUtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUNOLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFFTCxRQUFRLEVBRVIsSUFBSSxFQUNKLFlBQVksRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR04sU0FBUyxFQUNULFdBQVcsRUFDWCxTQUFTLEVBSVQsVUFBVSxFQUNWLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFxQixlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RSxPQUFPLEVBQWdCLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFFL0Isa0ZBQWtGO0FBQ2xGLGNBQWM7QUFDZCxNQUFNLGtCQUFrQixHQUFHLGVBQWUsQ0FDekM7SUFDQztJQUNDLGNBQWMsQ0FBUSx5QkFBNEM7SUFDbEUsY0FBYyxDQUFRLFdBQW1CO0lBQ3pDLGNBQWMsQ0FBUSxnQkFBb0M7SUFDMUQsY0FBYyxDQUFRLFNBQW9CO1FBSHBCLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBbUI7UUFDNUMsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDbkIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFvQjtRQUNwQyxjQUFTLEdBQVQsU0FBUyxDQUFXO0lBQ3hDLENBQUM7Q0FDSixDQUNELENBQUM7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S0FBSzt1QkFBQyxrQkFBa0I7Z0JBRTJCLFVBQVU7c0JBQTdELFlBQVk7dUJBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFrQ3RDLFFBQVE7c0JBRFgsS0FBSztnQkE2QkYsV0FBVztzQkFEZCxLQUFLO2dCQVdGLFFBQVE7c0JBRFgsS0FBSztnQkFXRixRQUFRO3NCQURYLEtBQUs7Z0JBWUYsS0FBSztzQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNNb25pdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG5cdENvbXBvbmVudCxcblx0RWxlbWVudFJlZixcblx0SW5qZWN0LFxuXHRJbnB1dCxcblx0T25EZXN0cm95LFxuXHRPcHRpb25hbCxcblx0UXVlcnlMaXN0LFxuXHRTZWxmLFxuXHRWaWV3Q2hpbGRyZW5cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuXHRBYnN0cmFjdENvbnRyb2wsXG5cdENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuXHRGb3JtQXJyYXksXG5cdEZvcm1Db250cm9sLFxuXHRGb3JtR3JvdXAsXG5cdEZvcm1Hcm91cERpcmVjdGl2ZSxcblx0TmdDb250cm9sLFxuXHROZ0Zvcm0sXG5cdFZhbGlkYXRvcnNcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRXJyb3JTdGF0ZU1hdGNoZXIsIG1peGluRXJyb3JTdGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkLCBNYXRGb3JtRmllbGRDb250cm9sLCBNQVRfRk9STV9GSUVMRCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG4vLyBCb2lsZXJwbGF0ZSBmb3IgYXBwbHlpbmcgbWl4aW5zIHRvIGZvcm0gZmllbGQgY29udHJvbCBmb3IgZXJyb3Igc3RhdGUgY2hlY2tpbmcuXG4vKiogQGlnbm9yZSAqL1xuY29uc3QgX0Rpc2NyZXRlSW5wdXRCYXNlID0gbWl4aW5FcnJvclN0YXRlKFxuXHRjbGFzcyB7XG5cdFx0Y29uc3RydWN0b3IoXG5cdFx0XHQvKiogQGlnbm9yZSAqLyBwdWJsaWMgX2RlZmF1bHRFcnJvclN0YXRlTWF0Y2hlcjogRXJyb3JTdGF0ZU1hdGNoZXIsXG5cdFx0XHQvKiogQGlnbm9yZSAqLyBwdWJsaWMgX3BhcmVudEZvcm06IE5nRm9ybSxcblx0XHRcdC8qKiBAaWdub3JlICovIHB1YmxpYyBfcGFyZW50Rm9ybUdyb3VwOiBGb3JtR3JvdXBEaXJlY3RpdmUsXG5cdFx0XHQvKiogQGlnbm9yZSAqLyBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2xcblx0XHQpIHt9XG5cdH1cbik7XG5cbi8qKlxuICogQ3VzdG9tIGBNYXRGb3JtRmllbGRDb250cm9sYCB3aXRoIGFuIGluZGl2aWR1YWwgaW5wdXQgYm94IGZvciBlYWNoIGNoYXJhY3Rlciwgc3VpdGFibGUgZm9yIGZpeGVkLWxlbmd0aCBmaWVsZHMsXG4gKiBzdWNoIGFzIHNlY29uZGFyeSBQSU4gaW5wdXRzLCBURk5zLCBvciBCU0IgY29kZSBldGMuXG4gKlxuICogQWNjZXNzaWJpbGl0eSBmZWF0dXJlcyBhcmUgbm90IHlldCBmdWxseSBpbXBsZW1lbnRlZC5cbiAqXG4gKiBFeGFtcGxlOlxuICpcbiAqIGBgYGh0bWxcbiAqIDxtYXQtZm9ybS1maWVsZD5cbiAqICAgPGJ1aS1kaXNjcmV0ZS1pbnB1dD48L2J1aS1kaXNjcmV0ZS1pbnB1dD5cbiAqIDwvbWF0LWZvcm0tZmllbGQ+XG4gKiBgYGBcbiAqXG4gKi9cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2J1aS1kaXNjcmV0ZS1pbnB1dCcsXG5cdHRlbXBsYXRlVXJsOiAnZGlzY3JldGUtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnZGlzY3JldGUtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcblx0cHJvdmlkZXJzOiBbeyBwcm92aWRlOiBNYXRGb3JtRmllbGRDb250cm9sLCB1c2VFeGlzdGluZzogRGlzY3JldGVJbnB1dENvbXBvbmVudCB9XSxcblx0aG9zdDoge1xuXHRcdGNsYXNzOiAnYnVpLWRpc2NyZXRlLWlucHV0J1xuXHR9XG59KVxuZXhwb3J0IGNsYXNzIERpc2NyZXRlSW5wdXRDb21wb25lbnRcblx0ZXh0ZW5kcyBfRGlzY3JldGVJbnB1dEJhc2Vcblx0aW1wbGVtZW50cyBNYXRGb3JtRmllbGRDb250cm9sPHN0cmluZz4sIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkRlc3Ryb3lcbntcblx0LyoqIEBpZ25vcmUgKi9cblx0c3RhdGljIG5leHRJZCA9IDA7XG5cblx0LyoqIEBpZ25vcmUgKi9cblx0c3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2Rpc2FibGVkOiBib29sZWFuIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcblx0LyoqIEBpZ25vcmUgKi9cblx0c3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3JlcXVpcmVkOiBib29sZWFuIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcblxuXHQvKiogQGlnbm9yZSAqLyBwYXJ0czogRm9ybUFycmF5O1xuXHQvKiogQGlnbm9yZSAqLyBncm91cDogRm9ybUdyb3VwO1xuXHQvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBzdGF0ZSBjaGFuZ2VzLiAqL1xuXHRzdGF0ZUNoYW5nZXM6IFN1YmplY3Q8dm9pZD47XG5cdC8qKiBXaGV0aGVyIHRoZSBjb250cm9sIGlzIGZvY3VzZWQuICovXG5cdGZvY3VzZWQ6IGJvb2xlYW47XG5cblx0LyoqIFRoZSB0eXBlIG9mIGlucHV0IGJveGVzICovXG5cdEBJbnB1dCgpXG5cdHR5cGU6ICd0ZXh0JyB8ICdudW1iZXInIHwgJ3Bhc3N3b3JkJyA9ICd0ZXh0JztcblxuXHQvKiogSW5wdXQgYm94ZXMgYXJlIHNlcGFyYXRlZCBpbiBncm91cHMuIFRoaXMgc3BlY2lmaWVzIHRoZSBjaGFyYWN0ZXJzIGRpc3BsYXllZCBiZXR3ZWVuIHR3byBncm91cHMuICovXG5cdEBJbnB1dCgpXG5cdHNlcGFyYXRvciA9ICcgJztcblxuXHQvKipcblx0ICogQSBsaXN0IG9mIGNoYXJhY3RlcnMgYWNjZXB0ZWQgaW4gdGhlIGlucHV0cywgZm9yIGV4YW1wbGUgYDAtOWAsIGBhLXpBLVowLTlgXG5cdCAqIEBleGFtcGxlICcwLTknXG5cdCAqL1xuXHRASW5wdXQoKVxuXHRhY2NlcHQ/OiBzdHJpbmc7XG5cblx0LyoqIEBpZ25vcmUgKi8gaWQgPSBgYnVpLWRpc2NyZXRlLWlucHV0LSR7RGlzY3JldGVJbnB1dENvbXBvbmVudC5uZXh0SWQrK31gO1xuXG5cdC8qKiBWYWx1ZSBvZiBhcmlhLWRlc2NyaWJlZGJ5IHRoYXQgc2hvdWxkIGJlIG1lcmdlZCB3aXRoIHRoZSBkZXNjcmliZWQtYnkgaWRzIHdoaWNoIGFyZSBzZXQgYnkgdGhlIGZvcm0tZmllbGQuICovXG5cdEBJbnB1dCgnYXJpYS1kZXNjcmliZWRieScpIHVzZXJBcmlhRGVzY3JpYmVkQnk/OiBzdHJpbmc7XG5cblx0QFZpZXdDaGlsZHJlbigncGFydCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBwcml2YXRlIGlucHV0UGFydHMhOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50Pj47XG5cblx0LyoqQGlnbm9yZSAqL1xuXHRfZm9ybUZpZWxkOiBNYXRGb3JtRmllbGQ7XG5cblx0LyoqQGlnbm9yZSAqL1xuXHRuZ0NvbnRyb2w6IE5nQ29udHJvbDtcblxuXHRwcml2YXRlIF9zaXplU3BlYzogbnVtYmVyW10gPSBbXTtcblxuXHRwcml2YXRlIF9yZXF1aXJlZCA9IGZhbHNlO1xuXG5cdHByaXZhdGUgX3BsYWNlaG9sZGVyPzogc3RyaW5nO1xuXHRwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuXHRwcml2YXRlIF9zZXBhcmF0b3JQb3M6IG51bWJlcltdID0gW107XG5cblx0LyoqIEBpZ25vcmUgKi8gb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7fTtcblx0LyoqIEBpZ25vcmUgKi8gb25Ub3VjaGVkID0gKCkgPT4ge307XG5cblx0LyoqIEBpZ25vcmUgKi9cblx0Z2V0IHNob3VsZExhYmVsRmxvYXQoKSB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cblxuXHQvKiogQGlnbm9yZSAqL1xuXHRnZXQgZW1wdHkoKSB7XG5cdFx0cmV0dXJuIHRoaXMucGFydHMuY29udHJvbHMuZXZlcnkoYyA9PiAhYy52YWx1ZSk7XG5cdH1cblxuXHQvKipcblx0ICogRGVmaW5lcyB0aGUgbGVuZ3RoIGFuZCBncm91cGluZyBvZiB0aGUgaW5wdXQuXG5cdCAqIEBkZWZhdWx0IFsyLCAyLCAyXVxuXHQgKi9cblx0QElucHV0KClcblx0Z2V0IHNpemVTcGVjKCk6IG51bWJlcltdIHtcblx0XHRyZXR1cm4gdGhpcy5fc2l6ZVNwZWM7XG5cdH1cblx0c2V0IHNpemVTcGVjKHNwZWM6IG51bWJlcltdKSB7XG5cdFx0bGV0IHNpemUgPSAwO1xuXHRcdHRoaXMuX3NlcGFyYXRvclBvcyA9IFtdO1xuXHRcdHNwZWMuZm9yRWFjaCgobiwgaSkgPT4ge1xuXHRcdFx0c2l6ZSArPSBuO1xuXHRcdFx0aWYgKGkgPCBzcGVjLmxlbmd0aCAtIDEpIHtcblx0XHRcdFx0dGhpcy5fc2VwYXJhdG9yUG9zLnB1c2goc2l6ZSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0aWYgKHNpemUgIT09IHRoaXMucGFydHMubGVuZ3RoKSB7XG5cdFx0XHRjb25zdCB2ID0gdGhpcy52YWx1ZTtcblx0XHRcdHRoaXMucGFydHMuY2xlYXIoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBzaXplOyBpKyspIHtcblx0XHRcdFx0dGhpcy5wYXJ0cy5zZXRDb250cm9sKFxuXHRcdFx0XHRcdGksXG5cdFx0XHRcdFx0bmV3IEZvcm1Db250cm9sKG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCgxKSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMSldKVxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy52YWx1ZSA9IHY7XG5cdFx0XHR0aGlzLl9zaXplU3BlYyA9IHNwZWM7XG5cdFx0fVxuXHR9XG5cblx0LyoqIFRoZSBwbGFjZWhvbGRlciBmb3IgdGhpcyBjb250cm9sLiAqL1xuXHRASW5wdXQoKVxuXHRnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXIhO1xuXHR9XG5cdHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKSB7XG5cdFx0dGhpcy5fcGxhY2Vob2xkZXIgPSB2YWx1ZTtcblx0XHR0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG5cdH1cblxuXHQvKiogV2hldGhlciB0aGUgY29udHJvbCBpcyByZXF1aXJlZC4gKi9cblx0QElucHV0KClcblx0Z2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLl9yZXF1aXJlZDtcblx0fVxuXHRzZXQgcmVxdWlyZWQodmFsdWU6IGJvb2xlYW4pIHtcblx0XHR0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG5cdFx0dGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuXHR9XG5cblx0LyoqIFdoZXRoZXIgdGhlIGNvbnRyb2wgaXMgZGlzYWJsZWQuICovXG5cdEBJbnB1dCgpXG5cdGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG5cdH1cblx0c2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG5cdFx0dGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuXHRcdHRoaXMuX2Rpc2FibGVkID8gdGhpcy5wYXJ0cy5kaXNhYmxlKCkgOiB0aGlzLnBhcnRzLmVuYWJsZSgpO1xuXHRcdHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcblx0fVxuXG5cdC8qKiBUaGUgdmFsdWUgb2YgdGhlIGNvbnRyb2wuICovXG5cdEBJbnB1dCgpXG5cdGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLnBhcnRzLmNvbnRyb2xzXG5cdFx0XHQubWFwKGMgPT4gYy52YWx1ZSlcblx0XHRcdC5maWx0ZXIoYyA9PiBjKVxuXHRcdFx0LmpvaW4oJycpO1xuXHR9XG5cdHNldCB2YWx1ZSh2OiBzdHJpbmcpIHtcblx0XHR2ID0gdiB8fCAnJztcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucGFydHMuY29udHJvbHMubGVuZ3RoOyBpKyspIHtcblx0XHRcdHRoaXMucGFydHMuY29udHJvbHNbaV0/LnNldFZhbHVlKHZbaV0pO1xuXHRcdH1cblx0XHR0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG5cdH1cblxuXHQvKiogQGlnbm9yZSAqL1xuXHRnZXQgX2NvbG9yU3VmZml4KCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMuZXJyb3JTdGF0ZSA/ICd3YXJuJyA6IHRoaXMuX2Zvcm1GaWVsZD8uY29sb3IgfHwgJ3ByaW1hcnknO1xuXHR9XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0cHJpdmF0ZSBfZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IsXG5cdFx0cHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG5cdFx0QE9wdGlvbmFsKCkgQEluamVjdChNQVRfRk9STV9GSUVMRCkgZm9ybUZpZWxkOiBNYXRGb3JtRmllbGQsXG5cdFx0QE9wdGlvbmFsKCkgQFNlbGYoKSBjb250cm9sOiBOZ0NvbnRyb2wsXG5cdFx0QE9wdGlvbmFsKCkgX3BhcmVudEZvcm06IE5nRm9ybSxcblx0XHRAT3B0aW9uYWwoKSBfcGFyZW50Rm9ybUdyb3VwOiBGb3JtR3JvdXBEaXJlY3RpdmUsXG5cdFx0X2RlZmF1bHRFcnJvclN0YXRlTWF0Y2hlcjogRXJyb3JTdGF0ZU1hdGNoZXJcblx0KSB7XG5cdFx0c3VwZXIoX2RlZmF1bHRFcnJvclN0YXRlTWF0Y2hlciwgX3BhcmVudEZvcm0sIF9wYXJlbnRGb3JtR3JvdXAsIGNvbnRyb2wpO1xuXHRcdHRoaXMucGFydHMgPSBuZXcgRm9ybUFycmF5KFtdKTtcblx0XHR0aGlzLmdyb3VwID0gbmV3IEZvcm1Hcm91cCh7IHBhcnRzOiB0aGlzLnBhcnRzIH0pO1xuXHRcdHRoaXMuc2l6ZVNwZWMgPSBbMiwgMiwgMl07XG5cdFx0dGhpcy5fZm9ybUZpZWxkID0gZm9ybUZpZWxkO1xuXHRcdHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xuXHRcdHRoaXMuc3RhdGVDaGFuZ2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuXHRcdHRoaXMubmdDb250cm9sID0gY29udHJvbDtcblx0XHRpZiAodGhpcy5uZ0NvbnRyb2wgIT0gbnVsbCkge1xuXHRcdFx0dGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG5cdFx0fVxuXG5cdFx0dGhpcy5fZm9jdXNNb25pdG9yLm1vbml0b3IodGhpcy5fZWxlbWVudFJlZiwgdHJ1ZSkuc3Vic2NyaWJlKG9yaWdpbiA9PiB7XG5cdFx0XHRpZiAodGhpcy5mb2N1c2VkICYmICFvcmlnaW4pIHtcblx0XHRcdFx0dGhpcy5vblRvdWNoZWQoKTtcblx0XHRcdH1cblx0XHRcdHRoaXMuZm9jdXNlZCA9ICEhb3JpZ2luO1xuXHRcdFx0dGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuXHRcdH0pO1xuXHR9XG5cblx0LyoqIEBpZ25vcmUgKi8gZXJyb3JTdGF0ZSA9IGZhbHNlO1xuXHQvKiogQGlnbm9yZSAqLyBjb250cm9sVHlwZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0LyoqIEBpZ25vcmUgKi8gYXV0b2ZpbGxlZD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cblx0LyoqIEBpZ25vcmUgKi9cblx0bmdPbkRlc3Ryb3koKSB7XG5cdFx0dGhpcy5zdGF0ZUNoYW5nZXMuY29tcGxldGUoKTtcblx0XHR0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5fZWxlbWVudFJlZik7XG5cdH1cblxuXHQvKiogQGlnbm9yZSAqL1xuXHRzZXREZXNjcmliZWRCeUlkcyhpZHM6IHN0cmluZ1tdKSB7XG5cdFx0Y29uc3QgY29udHJvbEVsZW1lbnQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmJ1aS1kaXNjcmV0ZS1pbnB1dC1jb250YWluZXInKTtcblx0XHRjb250cm9sRWxlbWVudCEuc2V0QXR0cmlidXRlKCdhcmlhLWRlc2NyaWJlZGJ5JywgaWRzLmpvaW4oJyAnKSk7XG5cdH1cblxuXHQvKiogQGlnbm9yZSAqL1xuXHRvbkNvbnRhaW5lckNsaWNrKCkge1xuXHRcdGNvbnN0IGwgPSB0aGlzLnBhcnRzLmNvbnRyb2xzLmxlbmd0aDtcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGw7IGkrKykge1xuXHRcdFx0aWYgKHRoaXMucGFydHMuY29udHJvbHNbaV0uaW52YWxpZCB8fCBpID09PSBsIC0gMSkge1xuXHRcdFx0XHR0aGlzLl9mb2N1c01vbml0b3IuZm9jdXNWaWEodGhpcy5pbnB1dFBhcnRzLmdldChpKSEsICdwcm9ncmFtJyk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qKiBAaWdub3JlICovXG5cdHdyaXRlVmFsdWUodjogc3RyaW5nKTogdm9pZCB7XG5cdFx0dGhpcy52YWx1ZSA9IHY7XG5cdH1cblxuXHQvKiogQGlnbm9yZSAqL1xuXHRyZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcblx0XHR0aGlzLm9uQ2hhbmdlID0gZm47XG5cdH1cblxuXHQvKiogQGlnbm9yZSAqL1xuXHRyZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG5cdFx0dGhpcy5vblRvdWNoZWQgPSBmbjtcblx0fVxuXG5cdC8qKiBAaWdub3JlICovXG5cdHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuXHRcdHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuXHR9XG5cblx0LyoqIEBpZ25vcmUgKi9cblx0X2hhbmRsZUlucHV0KGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuXHRcdGxldCB2ID0gY29udHJvbC52YWx1ZSAmJiBjb250cm9sLnZhbHVlWzBdO1xuXHRcdGNvbnRyb2wuc2V0VmFsdWUodik7XG5cdFx0Y29uc3QgbmV4dEVsZW1lbnQgPSB0aGlzLmlucHV0UGFydHMuZ2V0KGluZGV4ICsgMSk7XG5cdFx0aWYgKCFjb250cm9sLmVycm9ycyAmJiBuZXh0RWxlbWVudCkge1xuXHRcdFx0dGhpcy5fZm9jdXNQYXJ0KG5leHRFbGVtZW50KTtcblx0XHR9XG5cblx0XHR0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuXHR9XG5cblx0LyoqIEBpZ25vcmUgKi9cblx0X2hhbmRsZUJlZm9yZUlucHV0KGluZGV4OiBudW1iZXIsIGV2ZW50OiBJbnB1dEV2ZW50KTogdm9pZCB7XG5cdFx0Y29uc3QgdiA9IGV2ZW50LmRhdGE7XG5cdFx0aWYgKHRoaXMuYWNjZXB0ICYmIHYgJiYgIW5ldyBSZWdFeHAoYFske3RoaXMuYWNjZXB0fV1gKS50ZXN0KHYpKSB7XG5cdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGNvbnN0IGlucCA9IHRoaXMuaW5wdXRQYXJ0cy5nZXQoaW5kZXgpIS5uYXRpdmVFbGVtZW50O1xuXHRcdGlmICh2ICYmIGlucC52YWx1ZSkge1xuXHRcdFx0aW5wLnZhbHVlID0gJyc7XG5cdFx0fVxuXHR9XG5cblx0LyoqIEBpZ25vcmUgKi9cblx0X2ZvY3VzUGFydChlbGVtUmVmOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+KSB7XG5cdFx0dGhpcy5fZm9jdXNNb25pdG9yLmZvY3VzVmlhKGVsZW1SZWYsICdwcm9ncmFtJyk7XG5cdH1cblxuXHQvKiogQGlnbm9yZSAqL1xuXHRfY29uc3VtZUtleShldmVudDogRXZlbnQpIHtcblx0XHRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHR9XG5cblx0LyoqIEBpZ25vcmUgKi9cblx0X2xlZnRBcnJvdyhpbmRleDogbnVtYmVyLCBldmVudDogRXZlbnQpIHtcblx0XHR0aGlzLl9jb25zdW1lS2V5KGV2ZW50KTtcblx0XHRjb25zdCBwcmV2RWxlbWVudCA9IHRoaXMuaW5wdXRQYXJ0cy5nZXQoaW5kZXggLSAxKTtcblx0XHRpZiAocHJldkVsZW1lbnQpIHtcblx0XHRcdHRoaXMuX2ZvY3VzUGFydChwcmV2RWxlbWVudCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqIEBpZ25vcmUgKi9cblx0X3JpZ2h0QXJyb3coaW5kZXg6IG51bWJlciwgZXZlbnQ6IEV2ZW50KSB7XG5cdFx0dGhpcy5fY29uc3VtZUtleShldmVudCk7XG5cdFx0Y29uc3QgbmV4dEVsZW1lbnQgPSB0aGlzLmlucHV0UGFydHMuZ2V0KGluZGV4ICsgMSk7XG5cdFx0aWYgKG5leHRFbGVtZW50KSB7XG5cdFx0XHR0aGlzLl9mb2N1c1BhcnQobmV4dEVsZW1lbnQpO1xuXHRcdH1cblx0fVxuXG5cdC8qKiBAaWdub3JlICovXG5cdF9oYW5kbGVCYWNrc3BhY2UoY29udHJvbDogQWJzdHJhY3RDb250cm9sLCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG5cdFx0Y29uc3QgcHJldkVsZW1lbnQgPSBpbmRleCAmJiB0aGlzLmlucHV0UGFydHMuZ2V0KGluZGV4IC0gMSk7XG5cdFx0aWYgKCFjb250cm9sLnZhbHVlICYmIHByZXZFbGVtZW50KSB7XG5cdFx0XHR0aGlzLl9mb2N1c01vbml0b3IuZm9jdXNWaWEocHJldkVsZW1lbnQsICdwcm9ncmFtJyk7XG5cdFx0fSBlbHNlIGlmIChjb250cm9sLnZhbHVlKSB7XG5cdFx0XHRjb250cm9sLnNldFZhbHVlKCcnKTtcblx0XHR9XG5cdH1cblxuXHQvKiogQGlnbm9yZSAqL1xuXHRfb25QYXN0ZShldmVudDogQ2xpcGJvYXJkRXZlbnQpIHtcblx0XHRsZXQgdGV4dCA9IGV2ZW50LmNsaXBib2FyZERhdGE/LmdldERhdGEoJ3RleHQnKTtcblx0XHRpZiAodGV4dCkge1xuXHRcdFx0aWYgKHRoaXMuYWNjZXB0KSB7XG5cdFx0XHRcdHRleHQgPSB0ZXh0LnJlcGxhY2UobmV3IFJlZ0V4cChgW14ke3RoaXMuYWNjZXB0fV1gLCAnZ2knKSwgJycpO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy52YWx1ZSA9IHRleHQ7XG5cdFx0XHR0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuXHRcdH1cblx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdHRoaXMub25Db250YWluZXJDbGljaygpO1xuXHR9XG5cblx0LyoqIEBpZ25vcmUgKi9cblx0X3NlcGFyYXRvclJlcXVpcmVkKGluZGV4OiBudW1iZXIpIHtcblx0XHRyZXR1cm4gdGhpcy5fc2VwYXJhdG9yUG9zLmluY2x1ZGVzKGluZGV4ICsgMSk7XG5cdH1cblxuXHQvKiogQGlnbm9yZSAqL1xuXHRfcGxhY2Vob2xkZXJBdChpbmRleDogbnVtYmVyKSB7XG5cdFx0cmV0dXJuIHRoaXMuX3BsYWNlaG9sZGVyICYmIHRoaXMuX3BsYWNlaG9sZGVyW2luZGV4XTtcblx0fVxuXG5cdC8qKiBAaWdub3JlICovXG5cdG5nRG9DaGVjaygpIHtcblx0XHRpZiAodGhpcy5uZ0NvbnRyb2wpIHtcblx0XHRcdC8vIFdlIG5lZWQgdG8gcmUtZXZhbHVhdGUgdGhpcyBvbiBldmVyeSBjaGFuZ2UgZGV0ZWN0aW9uIGN5Y2xlLCBiZWNhdXNlIHRoZXJlIGFyZSBzb21lXG5cdFx0XHQvLyBlcnJvciB0cmlnZ2VycyB0aGF0IHdlIGNhbid0IHN1YnNjcmliZSB0byAoZS5nLiBwYXJlbnQgZm9ybSBzdWJtaXNzaW9ucykuIFRoaXMgbWVhbnNcblx0XHRcdC8vIHRoYXQgd2hhdGV2ZXIgbG9naWMgaXMgaW4gaGVyZSBoYXMgdG8gYmUgc3VwZXIgbGVhbiBvciB3ZSByaXNrIGRlc3Ryb3lpbmcgdGhlIHBlcmZvcm1hbmNlLlxuXHRcdFx0dGhpcy51cGRhdGVFcnJvclN0YXRlKCk7XG5cdFx0fVxuXHR9XG59XG4iLCI8ZGl2XG5cdHJvbGU9XCJncm91cFwiXG5cdGNsYXNzPVwiYnVpLWRpc2NyZXRlLWlucHV0LWNvbnRhaW5lclwiXG5cdFtmb3JtR3JvdXBdPVwiZ3JvdXBcIlxuXHRbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiX2Zvcm1GaWVsZD8uZ2V0TGFiZWxJZCgpXCJcbj5cblx0PG5nLWNvbnRhaW5lciBbZm9ybUFycmF5TmFtZV09XCIncGFydHMnXCI+XG5cdFx0PG5nLXRlbXBsYXRlIG5nRm9yIFtuZ0Zvck9mXT1cInBhcnRzLmNvbnRyb2xzXCIgbGV0LXAgbGV0LWk9XCJpbmRleFwiPlxuXHRcdFx0PGlucHV0XG5cdFx0XHRcdGNsYXNzPVwiYnVpLWRpc2NyZXRlLWlucHV0LWVsZW1lbnQgYnVpLW91dGxpbmUte3sgX2NvbG9yU3VmZml4IH19XCJcblx0XHRcdFx0W2Zvcm1Db250cm9sTmFtZV09XCJpXCJcblx0XHRcdFx0c2l6ZT1cIjFcIlxuXHRcdFx0XHRtYXhMZW5ndGg9XCIxXCJcblx0XHRcdFx0W2F0dHIuYXJpYS1sYWJlbF09XCInY2hhcmFjdGVyICcgKyAoaSArIDEpXCJcblx0XHRcdFx0KGlucHV0KT1cIl9oYW5kbGVJbnB1dChwLCBpKVwiXG5cdFx0XHRcdChiZWZvcmVpbnB1dCk9XCJfaGFuZGxlQmVmb3JlSW5wdXQoaSwgJGV2ZW50KVwiXG5cdFx0XHRcdChrZXlkb3duLmJhY2tzcGFjZSk9XCJfaGFuZGxlQmFja3NwYWNlKHAsIGkpXCJcblx0XHRcdFx0KGtleWRvd24uYXJyb3d1cCk9XCJfY29uc3VtZUtleSgkZXZlbnQpXCJcblx0XHRcdFx0KGtleWRvd24uYXJyb3dkb3duKT1cIl9jb25zdW1lS2V5KCRldmVudClcIlxuXHRcdFx0XHQoa2V5ZG93bi5hcnJvd2xlZnQpPVwiX2xlZnRBcnJvdyhpLCAkZXZlbnQpXCJcblx0XHRcdFx0KGtleWRvd24uYXJyb3dyaWdodCk9XCJfcmlnaHRBcnJvdyhpLCAkZXZlbnQpXCJcblx0XHRcdFx0W2F0dHIucGxhY2Vob2xkZXJdPVwiX3BsYWNlaG9sZGVyQXQoaSlcIlxuXHRcdFx0XHQjcGFydFxuXHRcdFx0XHQoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcblx0XHRcdFx0KHBhc3RlKT1cIl9vblBhc3RlKCRldmVudClcIlxuXHRcdFx0XHRbdHlwZV09XCJbJ3RleHQnLCAnbnVtYmVyJywgJ3Bhc3N3b3JkJ10uaW5jbHVkZXModHlwZSkgPyB0eXBlIDogJ3RleHQnXCJcblx0XHRcdFx0YXV0b2NhcGl0YWxpemU9XCJub25lXCJcblx0XHRcdC8+XG5cdFx0XHQ8c3BhbiAqbmdJZj1cIl9zZXBhcmF0b3JSZXF1aXJlZChpKVwiIGNsYXNzPVwiYnVpLWRpc2NyZXRlLWlucHV0LXNwYWNlclwiPnt7IHNlcGFyYXRvciB9fTwvc3Bhbj5cblx0XHQ8L25nLXRlbXBsYXRlPlxuXHQ8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
|
|
333
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzY3JldGUtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvZGlzY3JldGUtaW5wdXQvZGlzY3JldGUtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvZGlzY3JldGUtaW5wdXQvZGlzY3JldGUtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUNOLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFFTCxRQUFRLEVBRVIsSUFBSSxFQUNKLFlBQVksRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR04sU0FBUyxFQUNULFdBQVcsRUFDWCxTQUFTLEVBSVQsVUFBVSxFQUNWLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFxQixlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RSxPQUFPLEVBQWdCLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFFL0Isa0ZBQWtGO0FBQ2xGLGNBQWM7QUFDZCxNQUFNLGtCQUFrQixHQUFHLGVBQWUsQ0FDekM7SUFDQztJQUNDLGNBQWMsQ0FBUSx5QkFBNEM7SUFDbEUsY0FBYyxDQUFRLFdBQW1CO0lBQ3pDLGNBQWMsQ0FBUSxnQkFBb0M7SUFDMUQsY0FBYyxDQUFRLFNBQW9CO1FBSHBCLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBbUI7UUFDNUMsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDbkIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFvQjtRQUNwQyxjQUFTLEdBQVQsU0FBUyxDQUFXO0lBQ3hDLENBQUM7Q0FDSixDQUNELENBQUM7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S0FBSzt1QkFBQyxrQkFBa0I7Z0JBRTJCLFVBQVU7c0JBQTdELFlBQVk7dUJBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFrQ3RDLFFBQVE7c0JBRFgsS0FBSztnQkE2QkYsV0FBVztzQkFEZCxLQUFLO2dCQVdGLFFBQVE7c0JBRFgsS0FBSztnQkFXRixRQUFRO3NCQURYLEtBQUs7Z0JBWUYsS0FBSztzQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNNb25pdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG5cdENvbXBvbmVudCxcblx0RWxlbWVudFJlZixcblx0SW5qZWN0LFxuXHRJbnB1dCxcblx0T25EZXN0cm95LFxuXHRPcHRpb25hbCxcblx0UXVlcnlMaXN0LFxuXHRTZWxmLFxuXHRWaWV3Q2hpbGRyZW5cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuXHRBYnN0cmFjdENvbnRyb2wsXG5cdENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuXHRGb3JtQXJyYXksXG5cdEZvcm1Db250cm9sLFxuXHRGb3JtR3JvdXAsXG5cdEZvcm1Hcm91cERpcmVjdGl2ZSxcblx0TmdDb250cm9sLFxuXHROZ0Zvcm0sXG5cdFZhbGlkYXRvcnNcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRXJyb3JTdGF0ZU1hdGNoZXIsIG1peGluRXJyb3JTdGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkLCBNYXRGb3JtRmllbGRDb250cm9sLCBNQVRfRk9STV9GSUVMRCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG4vLyBCb2lsZXJwbGF0ZSBmb3IgYXBwbHlpbmcgbWl4aW5zIHRvIGZvcm0gZmllbGQgY29udHJvbCBmb3IgZXJyb3Igc3RhdGUgY2hlY2tpbmcuXG4vKiogQGlnbm9yZSAqL1xuY29uc3QgX0Rpc2NyZXRlSW5wdXRCYXNlID0gbWl4aW5FcnJvclN0YXRlKFxuXHRjbGFzcyB7XG5cdFx0Y29uc3RydWN0b3IoXG5cdFx0XHQvKiogQGlnbm9yZSAqLyBwdWJsaWMgX2RlZmF1bHRFcnJvclN0YXRlTWF0Y2hlcjogRXJyb3JTdGF0ZU1hdGNoZXIsXG5cdFx0XHQvKiogQGlnbm9yZSAqLyBwdWJsaWMgX3BhcmVudEZvcm06IE5nRm9ybSxcblx0XHRcdC8qKiBAaWdub3JlICovIHB1YmxpYyBfcGFyZW50Rm9ybUdyb3VwOiBGb3JtR3JvdXBEaXJlY3RpdmUsXG5cdFx0XHQvKiogQGlnbm9yZSAqLyBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2xcblx0XHQpIHt9XG5cdH1cbik7XG5cbi8qKlxuICogQ3VzdG9tIGBNYXRGb3JtRmllbGRDb250cm9sYCB3aXRoIGFuIGluZGl2aWR1YWwgaW5wdXQgYm94IGZvciBlYWNoIGNoYXJhY3Rlciwgc3VpdGFibGUgZm9yIGZpeGVkLWxlbmd0aCBmaWVsZHMsXG4gKiBzdWNoIGFzIHNlY29uZGFyeSBQSU4gaW5wdXRzLCBURk5zLCBvciBCU0IgY29kZSBldGMuXG4gKlxuICogQWNjZXNzaWJpbGl0eSBmZWF0dXJlcyBhcmUgbm90IHlldCBmdWxseSBpbXBsZW1lbnRlZC5cbiAqXG4gKiBFeGFtcGxlOlxuICpcbiAqIGBgYGh0bWxcbiAqIDxtYXQtZm9ybS1maWVsZD5cbiAqICAgPGJ1aS1kaXNjcmV0ZS1pbnB1dD48L2J1aS1kaXNjcmV0ZS1pbnB1dD5cbiAqIDwvbWF0LWZvcm0tZmllbGQ+XG4gKiBgYGBcbiAqXG4gKi9cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2J1aS1kaXNjcmV0ZS1pbnB1dCcsXG5cdHRlbXBsYXRlVXJsOiAnZGlzY3JldGUtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnZGlzY3JldGUtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcblx0cHJvdmlkZXJzOiBbeyBwcm92aWRlOiBNYXRGb3JtRmllbGRDb250cm9sLCB1c2VFeGlzdGluZzogRGlzY3JldGVJbnB1dENvbXBvbmVudCB9XSxcblx0aG9zdDoge1xuXHRcdGNsYXNzOiAnYnVpLWRpc2NyZXRlLWlucHV0IGJ1aS1ob3N0J1xuXHR9XG59KVxuZXhwb3J0IGNsYXNzIERpc2NyZXRlSW5wdXRDb21wb25lbnRcblx0ZXh0ZW5kcyBfRGlzY3JldGVJbnB1dEJhc2Vcblx0aW1wbGVtZW50cyBNYXRGb3JtRmllbGRDb250cm9sPHN0cmluZz4sIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkRlc3Ryb3lcbntcblx0LyoqIEBpZ25vcmUgKi9cblx0c3RhdGljIG5leHRJZCA9IDA7XG5cblx0LyoqIEBpZ25vcmUgKi9cblx0c3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2Rpc2FibGVkOiBib29sZWFuIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcblx0LyoqIEBpZ25vcmUgKi9cblx0c3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3JlcXVpcmVkOiBib29sZWFuIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcblxuXHQvKiogQGlnbm9yZSAqLyBwYXJ0czogRm9ybUFycmF5O1xuXHQvKiogQGlnbm9yZSAqLyBncm91cDogRm9ybUdyb3VwO1xuXHQvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBzdGF0ZSBjaGFuZ2VzLiAqL1xuXHRzdGF0ZUNoYW5nZXM6IFN1YmplY3Q8dm9pZD47XG5cdC8qKiBXaGV0aGVyIHRoZSBjb250cm9sIGlzIGZvY3VzZWQuICovXG5cdGZvY3VzZWQ6IGJvb2xlYW47XG5cblx0LyoqIFRoZSB0eXBlIG9mIGlucHV0IGJveGVzICovXG5cdEBJbnB1dCgpXG5cdHR5cGU6ICd0ZXh0JyB8ICdudW1iZXInIHwgJ3Bhc3N3b3JkJyA9ICd0ZXh0JztcblxuXHQvKiogSW5wdXQgYm94ZXMgYXJlIHNlcGFyYXRlZCBpbiBncm91cHMuIFRoaXMgc3BlY2lmaWVzIHRoZSBjaGFyYWN0ZXJzIGRpc3BsYXllZCBiZXR3ZWVuIHR3byBncm91cHMuICovXG5cdEBJbnB1dCgpXG5cdHNlcGFyYXRvciA9ICcgJztcblxuXHQvKipcblx0ICogQSBsaXN0IG9mIGNoYXJhY3RlcnMgYWNjZXB0ZWQgaW4gdGhlIGlucHV0cywgZm9yIGV4YW1wbGUgYDAtOWAsIGBhLXpBLVowLTlgXG5cdCAqIEBleGFtcGxlICcwLTknXG5cdCAqL1xuXHRASW5wdXQoKVxuXHRhY2NlcHQ/OiBzdHJpbmc7XG5cblx0LyoqIEBpZ25vcmUgKi8gaWQgPSBgYnVpLWRpc2NyZXRlLWlucHV0LSR7RGlzY3JldGVJbnB1dENvbXBvbmVudC5uZXh0SWQrK31gO1xuXG5cdC8qKiBWYWx1ZSBvZiBhcmlhLWRlc2NyaWJlZGJ5IHRoYXQgc2hvdWxkIGJlIG1lcmdlZCB3aXRoIHRoZSBkZXNjcmliZWQtYnkgaWRzIHdoaWNoIGFyZSBzZXQgYnkgdGhlIGZvcm0tZmllbGQuICovXG5cdEBJbnB1dCgnYXJpYS1kZXNjcmliZWRieScpIHVzZXJBcmlhRGVzY3JpYmVkQnk/OiBzdHJpbmc7XG5cblx0QFZpZXdDaGlsZHJlbigncGFydCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBwcml2YXRlIGlucHV0UGFydHMhOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50Pj47XG5cblx0LyoqQGlnbm9yZSAqL1xuXHRfZm9ybUZpZWxkOiBNYXRGb3JtRmllbGQ7XG5cblx0LyoqQGlnbm9yZSAqL1xuXHRuZ0NvbnRyb2w6IE5nQ29udHJvbDtcblxuXHRwcml2YXRlIF9zaXplU3BlYzogbnVtYmVyW10gPSBbXTtcblxuXHRwcml2YXRlIF9yZXF1aXJlZCA9IGZhbHNlO1xuXG5cdHByaXZhdGUgX3BsYWNlaG9sZGVyPzogc3RyaW5nO1xuXHRwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuXHRwcml2YXRlIF9zZXBhcmF0b3JQb3M6IG51bWJlcltdID0gW107XG5cblx0LyoqIEBpZ25vcmUgKi8gb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7fTtcblx0LyoqIEBpZ25vcmUgKi8gb25Ub3VjaGVkID0gKCkgPT4ge307XG5cblx0LyoqIEBpZ25vcmUgKi9cblx0Z2V0IHNob3VsZExhYmVsRmxvYXQoKSB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cblxuXHQvKiogQGlnbm9yZSAqL1xuXHRnZXQgZW1wdHkoKSB7XG5cdFx0cmV0dXJuIHRoaXMucGFydHMuY29udHJvbHMuZXZlcnkoYyA9PiAhYy52YWx1ZSk7XG5cdH1cblxuXHQvKipcblx0ICogRGVmaW5lcyB0aGUgbGVuZ3RoIGFuZCBncm91cGluZyBvZiB0aGUgaW5wdXQuXG5cdCAqIEBkZWZhdWx0IFsyLCAyLCAyXVxuXHQgKi9cblx0QElucHV0KClcblx0Z2V0IHNpemVTcGVjKCk6IG51bWJlcltdIHtcblx0XHRyZXR1cm4gdGhpcy5fc2l6ZVNwZWM7XG5cdH1cblx0c2V0IHNpemVTcGVjKHNwZWM6IG51bWJlcltdKSB7XG5cdFx0bGV0IHNpemUgPSAwO1xuXHRcdHRoaXMuX3NlcGFyYXRvclBvcyA9IFtdO1xuXHRcdHNwZWMuZm9yRWFjaCgobiwgaSkgPT4ge1xuXHRcdFx0c2l6ZSArPSBuO1xuXHRcdFx0aWYgKGkgPCBzcGVjLmxlbmd0aCAtIDEpIHtcblx0XHRcdFx0dGhpcy5fc2VwYXJhdG9yUG9zLnB1c2goc2l6ZSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0aWYgKHNpemUgIT09IHRoaXMucGFydHMubGVuZ3RoKSB7XG5cdFx0XHRjb25zdCB2ID0gdGhpcy52YWx1ZTtcblx0XHRcdHRoaXMucGFydHMuY2xlYXIoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBzaXplOyBpKyspIHtcblx0XHRcdFx0dGhpcy5wYXJ0cy5zZXRDb250cm9sKFxuXHRcdFx0XHRcdGksXG5cdFx0XHRcdFx0bmV3IEZvcm1Db250cm9sKG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCgxKSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMSldKVxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy52YWx1ZSA9IHY7XG5cdFx0XHR0aGlzLl9zaXplU3BlYyA9IHNwZWM7XG5cdFx0fVxuXHR9XG5cblx0LyoqIFRoZSBwbGFjZWhvbGRlciBmb3IgdGhpcyBjb250cm9sLiAqL1xuXHRASW5wdXQoKVxuXHRnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXIhO1xuXHR9XG5cdHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKSB7XG5cdFx0dGhpcy5fcGxhY2Vob2xkZXIgPSB2YWx1ZTtcblx0XHR0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG5cdH1cblxuXHQvKiogV2hldGhlciB0aGUgY29udHJvbCBpcyByZXF1aXJlZC4gKi9cblx0QElucHV0KClcblx0Z2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLl9yZXF1aXJlZDtcblx0fVxuXHRzZXQgcmVxdWlyZWQodmFsdWU6IGJvb2xlYW4pIHtcblx0XHR0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG5cdFx0dGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuXHR9XG5cblx0LyoqIFdoZXRoZXIgdGhlIGNvbnRyb2wgaXMgZGlzYWJsZWQuICovXG5cdEBJbnB1dCgpXG5cdGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG5cdH1cblx0c2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG5cdFx0dGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuXHRcdHRoaXMuX2Rpc2FibGVkID8gdGhpcy5wYXJ0cy5kaXNhYmxlKCkgOiB0aGlzLnBhcnRzLmVuYWJsZSgpO1xuXHRcdHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcblx0fVxuXG5cdC8qKiBUaGUgdmFsdWUgb2YgdGhlIGNvbnRyb2wuICovXG5cdEBJbnB1dCgpXG5cdGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLnBhcnRzLmNvbnRyb2xzXG5cdFx0XHQubWFwKGMgPT4gYy52YWx1ZSlcblx0XHRcdC5maWx0ZXIoYyA9PiBjKVxuXHRcdFx0LmpvaW4oJycpO1xuXHR9XG5cdHNldCB2YWx1ZSh2OiBzdHJpbmcpIHtcblx0XHR2ID0gdiB8fCAnJztcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucGFydHMuY29udHJvbHMubGVuZ3RoOyBpKyspIHtcblx0XHRcdHRoaXMucGFydHMuY29udHJvbHNbaV0/LnNldFZhbHVlKHZbaV0pO1xuXHRcdH1cblx0XHR0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG5cdH1cblxuXHQvKiogQGlnbm9yZSAqL1xuXHRnZXQgX2NvbG9yU3VmZml4KCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMuZXJyb3JTdGF0ZSA/ICd3YXJuJyA6IHRoaXMuX2Zvcm1GaWVsZD8uY29sb3IgfHwgJ3ByaW1hcnknO1xuXHR9XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0cHJpdmF0ZSBfZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IsXG5cdFx0cHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG5cdFx0QE9wdGlvbmFsKCkgQEluamVjdChNQVRfRk9STV9GSUVMRCkgZm9ybUZpZWxkOiBNYXRGb3JtRmllbGQsXG5cdFx0QE9wdGlvbmFsKCkgQFNlbGYoKSBjb250cm9sOiBOZ0NvbnRyb2wsXG5cdFx0QE9wdGlvbmFsKCkgX3BhcmVudEZvcm06IE5nRm9ybSxcblx0XHRAT3B0aW9uYWwoKSBfcGFyZW50Rm9ybUdyb3VwOiBGb3JtR3JvdXBEaXJlY3RpdmUsXG5cdFx0X2RlZmF1bHRFcnJvclN0YXRlTWF0Y2hlcjogRXJyb3JTdGF0ZU1hdGNoZXJcblx0KSB7XG5cdFx0c3VwZXIoX2RlZmF1bHRFcnJvclN0YXRlTWF0Y2hlciwgX3BhcmVudEZvcm0sIF9wYXJlbnRGb3JtR3JvdXAsIGNvbnRyb2wpO1xuXHRcdHRoaXMucGFydHMgPSBuZXcgRm9ybUFycmF5KFtdKTtcblx0XHR0aGlzLmdyb3VwID0gbmV3IEZvcm1Hcm91cCh7IHBhcnRzOiB0aGlzLnBhcnRzIH0pO1xuXHRcdHRoaXMuc2l6ZVNwZWMgPSBbMiwgMiwgMl07XG5cdFx0dGhpcy5fZm9ybUZpZWxkID0gZm9ybUZpZWxkO1xuXHRcdHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xuXHRcdHRoaXMuc3RhdGVDaGFuZ2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuXHRcdHRoaXMubmdDb250cm9sID0gY29udHJvbDtcblx0XHRpZiAodGhpcy5uZ0NvbnRyb2wgIT0gbnVsbCkge1xuXHRcdFx0dGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG5cdFx0fVxuXG5cdFx0dGhpcy5fZm9jdXNNb25pdG9yLm1vbml0b3IodGhpcy5fZWxlbWVudFJlZiwgdHJ1ZSkuc3Vic2NyaWJlKG9yaWdpbiA9PiB7XG5cdFx0XHRpZiAodGhpcy5mb2N1c2VkICYmICFvcmlnaW4pIHtcblx0XHRcdFx0dGhpcy5vblRvdWNoZWQoKTtcblx0XHRcdH1cblx0XHRcdHRoaXMuZm9jdXNlZCA9ICEhb3JpZ2luO1xuXHRcdFx0dGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuXHRcdH0pO1xuXHR9XG5cblx0LyoqIEBpZ25vcmUgKi8gZXJyb3JTdGF0ZSA9IGZhbHNlO1xuXHQvKiogQGlnbm9yZSAqLyBjb250cm9sVHlwZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0LyoqIEBpZ25vcmUgKi8gYXV0b2ZpbGxlZD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cblx0LyoqIEBpZ25vcmUgKi9cblx0bmdPbkRlc3Ryb3koKSB7XG5cdFx0dGhpcy5zdGF0ZUNoYW5nZXMuY29tcGxldGUoKTtcblx0XHR0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5fZWxlbWVudFJlZik7XG5cdH1cblxuXHQvKiogQGlnbm9yZSAqL1xuXHRzZXREZXNjcmliZWRCeUlkcyhpZHM6IHN0cmluZ1tdKSB7XG5cdFx0Y29uc3QgY29udHJvbEVsZW1lbnQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmJ1aS1kaXNjcmV0ZS1pbnB1dC1jb250YWluZXInKTtcblx0XHRjb250cm9sRWxlbWVudCEuc2V0QXR0cmlidXRlKCdhcmlhLWRlc2NyaWJlZGJ5JywgaWRzLmpvaW4oJyAnKSk7XG5cdH1cblxuXHQvKiogQGlnbm9yZSAqL1xuXHRvbkNvbnRhaW5lckNsaWNrKCkge1xuXHRcdGNvbnN0IGwgPSB0aGlzLnBhcnRzLmNvbnRyb2xzLmxlbmd0aDtcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGw7IGkrKykge1xuXHRcdFx0aWYgKHRoaXMucGFydHMuY29udHJvbHNbaV0uaW52YWxpZCB8fCBpID09PSBsIC0gMSkge1xuXHRcdFx0XHR0aGlzLl9mb2N1c01vbml0b3IuZm9jdXNWaWEodGhpcy5pbnB1dFBhcnRzLmdldChpKSEsICdwcm9ncmFtJyk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qKiBAaWdub3JlICovXG5cdHdyaXRlVmFsdWUodjogc3RyaW5nKTogdm9pZCB7XG5cdFx0dGhpcy52YWx1ZSA9IHY7XG5cdH1cblxuXHQvKiogQGlnbm9yZSAqL1xuXHRyZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcblx0XHR0aGlzLm9uQ2hhbmdlID0gZm47XG5cdH1cblxuXHQvKiogQGlnbm9yZSAqL1xuXHRyZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG5cdFx0dGhpcy5vblRvdWNoZWQgPSBmbjtcblx0fVxuXG5cdC8qKiBAaWdub3JlICovXG5cdHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuXHRcdHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuXHR9XG5cblx0LyoqIEBpZ25vcmUgKi9cblx0X2hhbmRsZUlucHV0KGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuXHRcdGxldCB2ID0gY29udHJvbC52YWx1ZSAmJiBjb250cm9sLnZhbHVlWzBdO1xuXHRcdGNvbnRyb2wuc2V0VmFsdWUodik7XG5cdFx0Y29uc3QgbmV4dEVsZW1lbnQgPSB0aGlzLmlucHV0UGFydHMuZ2V0KGluZGV4ICsgMSk7XG5cdFx0aWYgKCFjb250cm9sLmVycm9ycyAmJiBuZXh0RWxlbWVudCkge1xuXHRcdFx0dGhpcy5fZm9jdXNQYXJ0KG5leHRFbGVtZW50KTtcblx0XHR9XG5cblx0XHR0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuXHR9XG5cblx0LyoqIEBpZ25vcmUgKi9cblx0X2hhbmRsZUJlZm9yZUlucHV0KGluZGV4OiBudW1iZXIsIGV2ZW50OiBJbnB1dEV2ZW50KTogdm9pZCB7XG5cdFx0Y29uc3QgdiA9IGV2ZW50LmRhdGE7XG5cdFx0aWYgKHRoaXMuYWNjZXB0ICYmIHYgJiYgIW5ldyBSZWdFeHAoYFske3RoaXMuYWNjZXB0fV1gKS50ZXN0KHYpKSB7XG5cdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGNvbnN0IGlucCA9IHRoaXMuaW5wdXRQYXJ0cy5nZXQoaW5kZXgpIS5uYXRpdmVFbGVtZW50O1xuXHRcdGlmICh2ICYmIGlucC52YWx1ZSkge1xuXHRcdFx0aW5wLnZhbHVlID0gJyc7XG5cdFx0fVxuXHR9XG5cblx0LyoqIEBpZ25vcmUgKi9cblx0X2ZvY3VzUGFydChlbGVtUmVmOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+KSB7XG5cdFx0dGhpcy5fZm9jdXNNb25pdG9yLmZvY3VzVmlhKGVsZW1SZWYsICdwcm9ncmFtJyk7XG5cdH1cblxuXHQvKiogQGlnbm9yZSAqL1xuXHRfY29uc3VtZUtleShldmVudDogRXZlbnQpIHtcblx0XHRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHR9XG5cblx0LyoqIEBpZ25vcmUgKi9cblx0X2xlZnRBcnJvdyhpbmRleDogbnVtYmVyLCBldmVudDogRXZlbnQpIHtcblx0XHR0aGlzLl9jb25zdW1lS2V5KGV2ZW50KTtcblx0XHRjb25zdCBwcmV2RWxlbWVudCA9IHRoaXMuaW5wdXRQYXJ0cy5nZXQoaW5kZXggLSAxKTtcblx0XHRpZiAocHJldkVsZW1lbnQpIHtcblx0XHRcdHRoaXMuX2ZvY3VzUGFydChwcmV2RWxlbWVudCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqIEBpZ25vcmUgKi9cblx0X3JpZ2h0QXJyb3coaW5kZXg6IG51bWJlciwgZXZlbnQ6IEV2ZW50KSB7XG5cdFx0dGhpcy5fY29uc3VtZUtleShldmVudCk7XG5cdFx0Y29uc3QgbmV4dEVsZW1lbnQgPSB0aGlzLmlucHV0UGFydHMuZ2V0KGluZGV4ICsgMSk7XG5cdFx0aWYgKG5leHRFbGVtZW50KSB7XG5cdFx0XHR0aGlzLl9mb2N1c1BhcnQobmV4dEVsZW1lbnQpO1xuXHRcdH1cblx0fVxuXG5cdC8qKiBAaWdub3JlICovXG5cdF9oYW5kbGVCYWNrc3BhY2UoY29udHJvbDogQWJzdHJhY3RDb250cm9sLCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG5cdFx0Y29uc3QgcHJldkVsZW1lbnQgPSBpbmRleCAmJiB0aGlzLmlucHV0UGFydHMuZ2V0KGluZGV4IC0gMSk7XG5cdFx0aWYgKCFjb250cm9sLnZhbHVlICYmIHByZXZFbGVtZW50KSB7XG5cdFx0XHR0aGlzLl9mb2N1c01vbml0b3IuZm9jdXNWaWEocHJldkVsZW1lbnQsICdwcm9ncmFtJyk7XG5cdFx0fSBlbHNlIGlmIChjb250cm9sLnZhbHVlKSB7XG5cdFx0XHRjb250cm9sLnNldFZhbHVlKCcnKTtcblx0XHR9XG5cdH1cblxuXHQvKiogQGlnbm9yZSAqL1xuXHRfb25QYXN0ZShldmVudDogQ2xpcGJvYXJkRXZlbnQpIHtcblx0XHRsZXQgdGV4dCA9IGV2ZW50LmNsaXBib2FyZERhdGE/LmdldERhdGEoJ3RleHQnKTtcblx0XHRpZiAodGV4dCkge1xuXHRcdFx0aWYgKHRoaXMuYWNjZXB0KSB7XG5cdFx0XHRcdHRleHQgPSB0ZXh0LnJlcGxhY2UobmV3IFJlZ0V4cChgW14ke3RoaXMuYWNjZXB0fV1gLCAnZ2knKSwgJycpO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy52YWx1ZSA9IHRleHQ7XG5cdFx0XHR0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuXHRcdH1cblx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdHRoaXMub25Db250YWluZXJDbGljaygpO1xuXHR9XG5cblx0LyoqIEBpZ25vcmUgKi9cblx0X3NlcGFyYXRvclJlcXVpcmVkKGluZGV4OiBudW1iZXIpIHtcblx0XHRyZXR1cm4gdGhpcy5fc2VwYXJhdG9yUG9zLmluY2x1ZGVzKGluZGV4ICsgMSk7XG5cdH1cblxuXHQvKiogQGlnbm9yZSAqL1xuXHRfcGxhY2Vob2xkZXJBdChpbmRleDogbnVtYmVyKSB7XG5cdFx0cmV0dXJuIHRoaXMuX3BsYWNlaG9sZGVyICYmIHRoaXMuX3BsYWNlaG9sZGVyW2luZGV4XTtcblx0fVxuXG5cdC8qKiBAaWdub3JlICovXG5cdG5nRG9DaGVjaygpIHtcblx0XHRpZiAodGhpcy5uZ0NvbnRyb2wpIHtcblx0XHRcdC8vIFdlIG5lZWQgdG8gcmUtZXZhbHVhdGUgdGhpcyBvbiBldmVyeSBjaGFuZ2UgZGV0ZWN0aW9uIGN5Y2xlLCBiZWNhdXNlIHRoZXJlIGFyZSBzb21lXG5cdFx0XHQvLyBlcnJvciB0cmlnZ2VycyB0aGF0IHdlIGNhbid0IHN1YnNjcmliZSB0byAoZS5nLiBwYXJlbnQgZm9ybSBzdWJtaXNzaW9ucykuIFRoaXMgbWVhbnNcblx0XHRcdC8vIHRoYXQgd2hhdGV2ZXIgbG9naWMgaXMgaW4gaGVyZSBoYXMgdG8gYmUgc3VwZXIgbGVhbiBvciB3ZSByaXNrIGRlc3Ryb3lpbmcgdGhlIHBlcmZvcm1hbmNlLlxuXHRcdFx0dGhpcy51cGRhdGVFcnJvclN0YXRlKCk7XG5cdFx0fVxuXHR9XG59XG4iLCI8ZGl2XG5cdHJvbGU9XCJncm91cFwiXG5cdGNsYXNzPVwiYnVpLWRpc2NyZXRlLWlucHV0LWNvbnRhaW5lclwiXG5cdFtmb3JtR3JvdXBdPVwiZ3JvdXBcIlxuXHRbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiX2Zvcm1GaWVsZD8uZ2V0TGFiZWxJZCgpXCJcbj5cblx0PG5nLWNvbnRhaW5lciBbZm9ybUFycmF5TmFtZV09XCIncGFydHMnXCI+XG5cdFx0PG5nLXRlbXBsYXRlIG5nRm9yIFtuZ0Zvck9mXT1cInBhcnRzLmNvbnRyb2xzXCIgbGV0LXAgbGV0LWk9XCJpbmRleFwiPlxuXHRcdFx0PGlucHV0XG5cdFx0XHRcdGNsYXNzPVwiYnVpLWRpc2NyZXRlLWlucHV0LWVsZW1lbnQgYnVpLW91dGxpbmUte3sgX2NvbG9yU3VmZml4IH19XCJcblx0XHRcdFx0W2Zvcm1Db250cm9sTmFtZV09XCJpXCJcblx0XHRcdFx0c2l6ZT1cIjFcIlxuXHRcdFx0XHRtYXhMZW5ndGg9XCIxXCJcblx0XHRcdFx0W2F0dHIuYXJpYS1sYWJlbF09XCInY2hhcmFjdGVyICcgKyAoaSArIDEpXCJcblx0XHRcdFx0KGlucHV0KT1cIl9oYW5kbGVJbnB1dChwLCBpKVwiXG5cdFx0XHRcdChiZWZvcmVpbnB1dCk9XCJfaGFuZGxlQmVmb3JlSW5wdXQoaSwgJGV2ZW50KVwiXG5cdFx0XHRcdChrZXlkb3duLmJhY2tzcGFjZSk9XCJfaGFuZGxlQmFja3NwYWNlKHAsIGkpXCJcblx0XHRcdFx0KGtleWRvd24uYXJyb3d1cCk9XCJfY29uc3VtZUtleSgkZXZlbnQpXCJcblx0XHRcdFx0KGtleWRvd24uYXJyb3dkb3duKT1cIl9jb25zdW1lS2V5KCRldmVudClcIlxuXHRcdFx0XHQoa2V5ZG93bi5hcnJvd2xlZnQpPVwiX2xlZnRBcnJvdyhpLCAkZXZlbnQpXCJcblx0XHRcdFx0KGtleWRvd24uYXJyb3dyaWdodCk9XCJfcmlnaHRBcnJvdyhpLCAkZXZlbnQpXCJcblx0XHRcdFx0W2F0dHIucGxhY2Vob2xkZXJdPVwiX3BsYWNlaG9sZGVyQXQoaSlcIlxuXHRcdFx0XHQjcGFydFxuXHRcdFx0XHQoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcblx0XHRcdFx0KHBhc3RlKT1cIl9vblBhc3RlKCRldmVudClcIlxuXHRcdFx0XHRbdHlwZV09XCJbJ3RleHQnLCAnbnVtYmVyJywgJ3Bhc3N3b3JkJ10uaW5jbHVkZXModHlwZSkgPyB0eXBlIDogJ3RleHQnXCJcblx0XHRcdFx0YXV0b2NhcGl0YWxpemU9XCJub25lXCJcblx0XHRcdC8+XG5cdFx0XHQ8c3BhbiAqbmdJZj1cIl9zZXBhcmF0b3JSZXF1aXJlZChpKVwiIGNsYXNzPVwiYnVpLWRpc2NyZXRlLWlucHV0LXNwYWNlclwiPnt7IHNlcGFyYXRvciB9fTwvc3Bhbj5cblx0XHQ8L25nLXRlbXBsYXRlPlxuXHQ8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
|
|
@@ -3,6 +3,8 @@ import { MatFormField, matFormFieldAnimations, MAT_FORM_FIELD } from '@angular/m
|
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@angular/common";
|
|
5
5
|
import * as i2 from "@angular/cdk/observers";
|
|
6
|
+
/** @ignore */
|
|
7
|
+
const TYPE_REF = forwardRef(() => FormFieldComponent);
|
|
6
8
|
/**
|
|
7
9
|
* Container for form controls that applies Material Design styling and behavior.
|
|
8
10
|
*
|
|
@@ -49,9 +51,9 @@ export class FormFieldComponent extends MatFormField {
|
|
|
49
51
|
}
|
|
50
52
|
}
|
|
51
53
|
FormFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: FormFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
52
|
-
FormFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.7", type: FormFieldComponent, selector: "bui-form-field", inputs: { color: "color" }, host: { listeners: { "click": "_hostClicked($event)" }, properties: { "class.mat-form-field-appearance-standard": "appearance == \"standard\"", "class.mat-form-field-appearance-fill": "appearance == \"fill\"", "class.mat-form-field-appearance-outline": "appearance == \"outline\"", "class.mat-form-field-appearance-detach": "appearance == \"detach\"", "class.mat-form-field-appearance-bound": "appearance == \"bound\"", "class.mat-form-field-appearance-legacy": "appearance == \"legacy\"", "class.mat-form-field-invalid": "_control.errorState", "class.mat-form-field-can-float": "_canLabelFloat()", "class.mat-form-field-should-float": "_shouldLabelFloat()", "class.mat-form-field-has-label": "_hasFloatingLabel()", "class.mat-form-field-hide-placeholder": "_hideControlPlaceholder()", "class.mat-form-field-disabled": "_control.disabled", "class.mat-form-field-autofilled": "_control.autofilled", "class.mat-focused": "_control.focused", "class.ng-untouched": "_shouldForward(\"untouched\")", "class.ng-touched": "_shouldForward(\"touched\")", "class.ng-pristine": "_shouldForward(\"pristine\")", "class.ng-dirty": "_shouldForward(\"dirty\")", "class.ng-valid": "_shouldForward(\"valid\")", "class.ng-invalid": "_shouldForward(\"invalid\")", "class.ng-pending": "_shouldForward(\"pending\")", "class._mat-animation-noopable": "!_animationsEnabled" }, classAttribute: "mat-form-field bui-form-field" }, providers: [
|
|
53
|
-
{ provide: MAT_FORM_FIELD, useExisting:
|
|
54
|
-
{ provide: MatFormField, useExisting:
|
|
54
|
+
FormFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.7", type: FormFieldComponent, selector: "bui-form-field", inputs: { color: "color" }, host: { listeners: { "click": "_hostClicked($event)" }, properties: { "class.mat-form-field-appearance-standard": "appearance == \"standard\"", "class.mat-form-field-appearance-fill": "appearance == \"fill\"", "class.mat-form-field-appearance-outline": "appearance == \"outline\"", "class.mat-form-field-appearance-detach": "appearance == \"detach\"", "class.mat-form-field-appearance-bound": "appearance == \"bound\"", "class.mat-form-field-appearance-legacy": "appearance == \"legacy\"", "class.mat-form-field-invalid": "_control.errorState", "class.mat-form-field-can-float": "_canLabelFloat()", "class.mat-form-field-should-float": "_shouldLabelFloat()", "class.mat-form-field-has-label": "_hasFloatingLabel()", "class.mat-form-field-hide-placeholder": "_hideControlPlaceholder()", "class.mat-form-field-disabled": "_control.disabled", "class.mat-form-field-autofilled": "_control.autofilled", "class.mat-focused": "_control.focused", "class.ng-untouched": "_shouldForward(\"untouched\")", "class.ng-touched": "_shouldForward(\"touched\")", "class.ng-pristine": "_shouldForward(\"pristine\")", "class.ng-dirty": "_shouldForward(\"dirty\")", "class.ng-valid": "_shouldForward(\"valid\")", "class.ng-invalid": "_shouldForward(\"invalid\")", "class.ng-pending": "_shouldForward(\"pending\")", "class._mat-animation-noopable": "!_animationsEnabled" }, classAttribute: "mat-form-field bui-form-field bui-host" }, providers: [
|
|
55
|
+
{ provide: MAT_FORM_FIELD, useExisting: TYPE_REF },
|
|
56
|
+
{ provide: MatFormField, useExisting: TYPE_REF }
|
|
55
57
|
], exportAs: ["buiFormField"], usesInheritance: true, ngImport: i0, template: "<div class=\"mat-form-field-wrapper\">\n\t<div class=\"mat-form-field-flex {{ _borderClass() }}\" #connectionContainer>\n\t\t<!-- Outline used for outline appearance. -->\n\t\t<ng-container *ngIf=\"appearance == 'outline'\">\n\t\t\t<div class=\"mat-form-field-outline\">\n\t\t\t\t<div class=\"mat-form-field-outline-start\"></div>\n\t\t\t\t<div class=\"mat-form-field-outline-gap\"></div>\n\t\t\t\t<div class=\"mat-form-field-outline-end\"></div>\n\t\t\t</div>\n\t\t\t<div class=\"mat-form-field-outline mat-form-field-outline-thick\">\n\t\t\t\t<div class=\"mat-form-field-outline-start\"></div>\n\t\t\t\t<div class=\"mat-form-field-outline-gap\"></div>\n\t\t\t\t<div class=\"mat-form-field-outline-end\"></div>\n\t\t\t</div>\n\t\t</ng-container>\n\n\t\t<div class=\"mat-form-field-prefix\" *ngIf=\"_prefixChildren.length\">\n\t\t\t<ng-content select=\"[matPrefix]\"></ng-content>\n\t\t</div>\n\n\t\t<div class=\"{{ _enhancedAppearance() ? 'bui-form-field-infix' : 'mat-form-field-infix' }}\" #inputContainer>\n\t\t\t<ng-content></ng-content>\n\n\t\t\t<span class=\"mat-form-field-label-wrapper\">\n\t\t\t\t<!-- We add aria-owns as a workaround for an issue in JAWS & NVDA where the label isn't\n\t\t\t read if it comes before the control in the DOM. -->\n\t\t\t\t<label\n\t\t\t\t\tclass=\"mat-form-field-label\"\n\t\t\t\t\t(cdkObserveContent)=\"updateOutlineGap()\"\n\t\t\t\t\t[cdkObserveContentDisabled]=\"appearance != 'outline'\"\n\t\t\t\t\t[id]=\"_labelId\"\n\t\t\t\t\t[attr.for]=\"_control.id\"\n\t\t\t\t\t[attr.aria-owns]=\"_control.id\"\n\t\t\t\t\t[class.mat-empty]=\"_control.empty && !_shouldAlwaysFloat()\"\n\t\t\t\t\t[class.mat-form-field-empty]=\"_control.empty && !_shouldAlwaysFloat()\"\n\t\t\t\t\t[class.mat-accent]=\"color == 'accent'\"\n\t\t\t\t\t[class.mat-warn]=\"color == 'warn'\"\n\t\t\t\t\t#label\n\t\t\t\t\t*ngIf=\"_hasFloatingLabel()\"\n\t\t\t\t\t[ngSwitch]=\"_hasLabel()\"\n\t\t\t\t>\n\t\t\t\t\t<!-- @breaking-change 8.0.0 remove in favor of mat-label element an placeholder attr. -->\n\t\t\t\t\t<ng-container *ngSwitchCase=\"false\">\n\t\t\t\t\t\t<ng-content select=\"mat-placeholder\"></ng-content>\n\t\t\t\t\t\t<span>{{ _control.placeholder }}</span>\n\t\t\t\t\t</ng-container>\n\n\t\t\t\t\t<ng-content select=\"mat-label\" *ngSwitchCase=\"true\"></ng-content>\n\n\t\t\t\t\t<!-- @breaking-change 8.0.0 remove `mat-placeholder-required` class -->\n\t\t\t\t\t<span\n\t\t\t\t\t\tclass=\"mat-placeholder-required mat-form-field-required-marker\"\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t*ngIf=\"!hideRequiredMarker && _control.required && !_control.disabled\"\n\t\t\t\t\t\t> *</span\n\t\t\t\t\t>\n\t\t\t\t</label>\n\t\t\t</span>\n\t\t</div>\n\n\t\t<div class=\"mat-form-field-suffix\" *ngIf=\"_suffixChildren.length\">\n\t\t\t<ng-content select=\"[matSuffix]\"></ng-content>\n\t\t</div>\n\t\t<div *ngIf=\"_enhancedAppearance()\" class=\"bui-form-field-right-filler\"></div>\n\t</div>\n\n\t<!-- Underline used for legacy, standard, and box appearances. -->\n\t<div class=\"mat-form-field-underline\" #underline *ngIf=\"appearance != 'outline'\">\n\t\t<span\n\t\t\tclass=\"mat-form-field-ripple\"\n\t\t\t[class.mat-accent]=\"color == 'accent'\"\n\t\t\t[class.mat-warn]=\"color == 'warn'\"\n\t\t></span>\n\t</div>\n\n\t<div class=\"mat-form-field-subscript-wrapper\" [ngSwitch]=\"_getDisplayedMessages()\" (click)=\"$event.stopPropagation()\">\n\t\t<div *ngSwitchCase=\"'error'\" [@transitionMessages]=\"_subscriptAnimationState\">\n\t\t\t<ng-content select=\"mat-error\"></ng-content>\n\t\t</div>\n\n\t\t<div class=\"mat-form-field-hint-wrapper\" *ngSwitchCase=\"'hint'\" [@transitionMessages]=\"_subscriptAnimationState\">\n\t\t\t<!-- TODO(mmalerba): use an actual <mat-hint> once all selectors are switched to mat-* -->\n\t\t\t<div *ngIf=\"hintLabel\" [id]=\"_hintLabelId\" class=\"mat-hint\">{{ hintLabel }}</div>\n\t\t\t<ng-content select=\"mat-hint:not([align='end'])\"></ng-content>\n\t\t\t<div class=\"mat-form-field-hint-spacer\"></div>\n\t\t\t<ng-content select=\"mat-hint[align='end']\"></ng-content>\n\t\t</div>\n\t</div>\n</div>\n", styles: [".bui-form-field.mat-form-field-appearance-bound .mat-form-field-flex{padding:.5em;align-items:center;border-radius:4px;border-style:solid}.bui-form-field.mat-form-field-appearance-bound .mat-form-field-flex:not(.bui-form-field-border-thick):not(:hover),.bui-form-field.mat-form-field-appearance-bound .mat-form-field-flex.bui-form-field-border-disabled{border-width:1px;margin:1px}.bui-form-field.mat-form-field-appearance-bound .mat-form-field-flex:not(.bui-form-field-border-thick):not(:hover) .bui-form-field-right-filler,.bui-form-field.mat-form-field-appearance-bound .mat-form-field-flex.bui-form-field-border-disabled .bui-form-field-right-filler{width:2px}.bui-form-field.mat-form-field-appearance-bound .mat-form-field-flex.bui-form-field-border-disabled{border-color:#80808033;border-style:dotted}.bui-form-field.mat-form-field-appearance-bound .mat-form-field-flex.bui-form-field-border-default{border-color:#80808066}.bui-form-field.mat-form-field-appearance-bound .mat-form-field-flex.bui-form-field-border-thick,.bui-form-field.mat-form-field-appearance-bound .mat-form-field-flex.bui-border-emphasis:hover{border-width:2px}.bui-form-field.mat-form-field-appearance-bound .mat-form-field-flex.bui-form-field-border-thick .bui-form-field-right-filler,.bui-form-field.mat-form-field-appearance-bound .mat-form-field-flex.bui-border-emphasis:hover .bui-form-field-right-filler{width:0}.bui-form-field.mat-form-field-appearance-detach,.bui-form-field.mat-form-field-appearance-bound{padding-top:.75em}.bui-form-field.mat-form-field-appearance-detach .mat-form-field-wrapper,.bui-form-field.mat-form-field-appearance-bound .mat-form-field-wrapper{padding-top:.5em}.bui-form-field.mat-form-field-appearance-detach .bui-form-field-infix,.bui-form-field.mat-form-field-appearance-bound .bui-form-field-infix{flex-grow:1}.bui-form-field.mat-form-field-appearance-detach .mat-form-field-label,.bui-form-field.mat-form-field-appearance-bound .mat-form-field-label{font-size:1.125em}.bui-form-field.mat-form-field-appearance-detach .mat-form-field-flex,.bui-form-field.mat-form-field-appearance-bound .mat-form-field-flex{align-items:center}.bui-form-field.mat-form-field-appearance-detach .mat-form-field-flex{padding:.125em 0;align-items:center}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i2.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }, { type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], animations: [matFormFieldAnimations.transitionMessages], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
56
58
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: FormFieldComponent, decorators: [{
|
|
57
59
|
type: Component,
|
|
@@ -62,7 +64,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImpor
|
|
|
62
64
|
styleUrls: ['./form-field.component.scss'],
|
|
63
65
|
animations: [matFormFieldAnimations.transitionMessages],
|
|
64
66
|
host: {
|
|
65
|
-
class: 'mat-form-field bui-form-field',
|
|
67
|
+
class: 'mat-form-field bui-form-field bui-host',
|
|
66
68
|
'[class.mat-form-field-appearance-standard]': 'appearance == "standard"',
|
|
67
69
|
'[class.mat-form-field-appearance-fill]': 'appearance == "fill"',
|
|
68
70
|
'[class.mat-form-field-appearance-outline]': 'appearance == "outline"',
|
|
@@ -90,8 +92,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImpor
|
|
|
90
92
|
encapsulation: ViewEncapsulation.None,
|
|
91
93
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
92
94
|
providers: [
|
|
93
|
-
{ provide: MAT_FORM_FIELD, useExisting:
|
|
94
|
-
{ provide: MatFormField, useExisting:
|
|
95
|
+
{ provide: MAT_FORM_FIELD, useExisting: TYPE_REF },
|
|
96
|
+
{ provide: MatFormField, useExisting: TYPE_REF }
|
|
95
97
|
]
|
|
96
98
|
}]
|
|
97
99
|
}], propDecorators: { _hostClicked: [{
|
|
@@ -99,4 +101,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImpor
|
|
|
99
101
|
args: ['click', ['$event']]
|
|
100
102
|
}] } });
|
|
101
103
|
FormFieldComponent.ɵcmp.styles.push(MatFormField.ɵcmp.styles);
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoSCxPQUFPLEVBQUUsWUFBWSxFQUFFLHNCQUFzQixFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7O0FBRXBHOzs7Ozs7R0FNRztBQXdDSCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsWUFBWTtJQUNuRDs7T0FFRztJQUNILGtCQUFrQjtRQUNqQixPQUFPLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVk7UUFDWCxJQUFLLElBQUksQ0FBQyxVQUFrQixLQUFLLE9BQU8sRUFBRTtZQUN6QyxPQUFPLDZCQUE2QixDQUFDO1NBQ3JDO1FBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRTtZQUMzQixPQUFPLGdDQUFnQyxDQUFDO1NBQ3hDO2FBQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRTtZQUNwQyxPQUFPLDZDQUE2QyxDQUFDO1NBQ3JEO2FBQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRTtZQUNqQyxPQUFPLGNBQWMsSUFBSSxDQUFDLEtBQUssSUFBSSxTQUFTLDhCQUE4QixDQUFDO1NBQzNFO2FBQU07WUFDTixPQUFPLG1EQUFtRCxDQUFDO1NBQzNEO0lBQ0YsQ0FBQztJQUVEOztPQUVHO0lBQ0gsbUJBQW1CO1FBQ2xCLE9BQVEsSUFBSSxDQUFDLFVBQWtCLEtBQUssUUFBUSxJQUFLLElBQUksQ0FBQyxVQUFrQixLQUFLLE9BQU8sQ0FBQztJQUN0RixDQUFDO0lBRUQsY0FBYztJQUVkLFlBQVksQ0FBQyxLQUFpQjtRQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekUsQ0FBQzs7K0dBckNXLGtCQUFrQjttR0FBbEIsa0JBQWtCLGc4Q0FMbkI7UUFDVixFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO1FBQzlFLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEVBQUU7S0FDNUUsNkVDL0NGLCsrSEF5RkEsaXBGRDFFYSxDQUFDLHNCQUFzQixDQUFDLGtCQUFrQixDQUFDOzJGQWtDM0Msa0JBQWtCO2tCQXZDOUIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixRQUFRLEVBQUUsY0FBYztvQkFDeEIsV0FBVyxFQUFFLDJCQUEyQjtvQkFDeEMsU0FBUyxFQUFFLENBQUMsNkJBQTZCLENBQUM7b0JBQzFDLFVBQVUsRUFBRSxDQUFDLHNCQUFzQixDQUFDLGtCQUFrQixDQUFDO29CQUN2RCxJQUFJLEVBQUU7d0JBQ0wsS0FBSyxFQUFFLCtCQUErQjt3QkFDdEMsNENBQTRDLEVBQUUsMEJBQTBCO3dCQUN4RSx3Q0FBd0MsRUFBRSxzQkFBc0I7d0JBQ2hFLDJDQUEyQyxFQUFFLHlCQUF5Qjt3QkFDdEUsMENBQTBDLEVBQUUsd0JBQXdCO3dCQUNwRSx5Q0FBeUMsRUFBRSx1QkFBdUI7d0JBQ2xFLDBDQUEwQyxFQUFFLHdCQUF3Qjt3QkFDcEUsZ0NBQWdDLEVBQUUscUJBQXFCO3dCQUN2RCxrQ0FBa0MsRUFBRSxrQkFBa0I7d0JBQ3RELHFDQUFxQyxFQUFFLHFCQUFxQjt3QkFDNUQsa0NBQWtDLEVBQUUscUJBQXFCO3dCQUN6RCx5Q0FBeUMsRUFBRSwyQkFBMkI7d0JBQ3RFLGlDQUFpQyxFQUFFLG1CQUFtQjt3QkFDdEQsbUNBQW1DLEVBQUUscUJBQXFCO3dCQUMxRCxxQkFBcUIsRUFBRSxrQkFBa0I7d0JBQ3pDLHNCQUFzQixFQUFFLDZCQUE2Qjt3QkFDckQsb0JBQW9CLEVBQUUsMkJBQTJCO3dCQUNqRCxxQkFBcUIsRUFBRSw0QkFBNEI7d0JBQ25ELGtCQUFrQixFQUFFLHlCQUF5Qjt3QkFDN0Msa0JBQWtCLEVBQUUseUJBQXlCO3dCQUM3QyxvQkFBb0IsRUFBRSwyQkFBMkI7d0JBQ2pELG9CQUFvQixFQUFFLDJCQUEyQjt3QkFDakQsaUNBQWlDLEVBQUUscUJBQXFCO3FCQUN4RDtvQkFDRCxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2pCLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsU0FBUyxFQUFFO3dCQUNWLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsQ0FBQyxFQUFFO3dCQUM5RSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsbUJBQW1CLENBQUMsRUFBRTtxQkFDNUU7aUJBQ0Q7OEJBb0NBLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7O0FBTWpDLGtCQUEwQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFFLFlBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSG9zdExpc3RlbmVyLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkLCBtYXRGb3JtRmllbGRBbmltYXRpb25zLCBNQVRfRk9STV9GSUVMRCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuXG4vKipcbiAqIENvbnRhaW5lciBmb3IgZm9ybSBjb250cm9scyB0aGF0IGFwcGxpZXMgTWF0ZXJpYWwgRGVzaWduIHN0eWxpbmcgYW5kIGJlaGF2aW9yLlxuICpcbiAqIFRoaXMgY29tcG9uZW50IGV4dGVuZHMgQW5ndWxhciBNYXRlcmlhbCdzIFttYXQtZm9ybS1maWVsZF0oaHR0cHM6Ly9tYXRlcmlhbC5hbmd1bGFyLmlvL2NvbXBvbmVudHMvZm9ybS1maWVsZCkgYW5kIHByb3ZpZGVzIHR3byBhZGRpdGlvbmFsIGFwcGVhcmFuY2VzXG4gKiBgYm91bmRgIGFuZCBgZGV0YWNoYC4gYGJvdW5kYCByZW5kZXJzIHRoZSBsYWJlbCBvdXRzaWRlIHRoZSBvdXRsaW5lZCBhcmVhIG9mIHRoZSBmaWVsZCwgd2hpbGUgYGRldGFjaGAgcmVtb3ZlIHRoZSBib3JkZXJzIGFsbCB0b2dldGhlci4gYGRldGFjaGBcbiAqIGlzIGdlbmVyYWxseSB1c2VkIHdpdGggZm9ybSBjb250cm9scyB0aGF0IHJlbmRlciB0aGVpciBvd24gYm9yZGVycy5cbiAqL1xuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnYnVpLWZvcm0tZmllbGQnLFxuXHRleHBvcnRBczogJ2J1aUZvcm1GaWVsZCcsXG5cdHRlbXBsYXRlVXJsOiAnZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCcsXG5cdHN0eWxlVXJsczogWycuL2Zvcm0tZmllbGQuY29tcG9uZW50LnNjc3MnXSxcblx0YW5pbWF0aW9uczogW21hdEZvcm1GaWVsZEFuaW1hdGlvbnMudHJhbnNpdGlvbk1lc3NhZ2VzXSxcblx0aG9zdDoge1xuXHRcdGNsYXNzOiAnbWF0LWZvcm0tZmllbGQgYnVpLWZvcm0tZmllbGQnLFxuXHRcdCdbY2xhc3MubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZF0nOiAnYXBwZWFyYW5jZSA9PSBcInN0YW5kYXJkXCInLFxuXHRcdCdbY2xhc3MubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsXSc6ICdhcHBlYXJhbmNlID09IFwiZmlsbFwiJyxcblx0XHQnW2NsYXNzLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZV0nOiAnYXBwZWFyYW5jZSA9PSBcIm91dGxpbmVcIicsXG5cdFx0J1tjbGFzcy5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWRldGFjaF0nOiAnYXBwZWFyYW5jZSA9PSBcImRldGFjaFwiJyxcblx0XHQnW2NsYXNzLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtYm91bmRdJzogJ2FwcGVhcmFuY2UgPT0gXCJib3VuZFwiJyxcblx0XHQnW2NsYXNzLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5XSc6ICdhcHBlYXJhbmNlID09IFwibGVnYWN5XCInLFxuXHRcdCdbY2xhc3MubWF0LWZvcm0tZmllbGQtaW52YWxpZF0nOiAnX2NvbnRyb2wuZXJyb3JTdGF0ZScsXG5cdFx0J1tjbGFzcy5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXRdJzogJ19jYW5MYWJlbEZsb2F0KCknLFxuXHRcdCdbY2xhc3MubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0XSc6ICdfc2hvdWxkTGFiZWxGbG9hdCgpJyxcblx0XHQnW2NsYXNzLm1hdC1mb3JtLWZpZWxkLWhhcy1sYWJlbF0nOiAnX2hhc0Zsb2F0aW5nTGFiZWwoKScsXG5cdFx0J1tjbGFzcy5tYXQtZm9ybS1maWVsZC1oaWRlLXBsYWNlaG9sZGVyXSc6ICdfaGlkZUNvbnRyb2xQbGFjZWhvbGRlcigpJyxcblx0XHQnW2NsYXNzLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkXSc6ICdfY29udHJvbC5kaXNhYmxlZCcsXG5cdFx0J1tjbGFzcy5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbGVkXSc6ICdfY29udHJvbC5hdXRvZmlsbGVkJyxcblx0XHQnW2NsYXNzLm1hdC1mb2N1c2VkXSc6ICdfY29udHJvbC5mb2N1c2VkJyxcblx0XHQnW2NsYXNzLm5nLXVudG91Y2hlZF0nOiAnX3Nob3VsZEZvcndhcmQoXCJ1bnRvdWNoZWRcIiknLFxuXHRcdCdbY2xhc3MubmctdG91Y2hlZF0nOiAnX3Nob3VsZEZvcndhcmQoXCJ0b3VjaGVkXCIpJyxcblx0XHQnW2NsYXNzLm5nLXByaXN0aW5lXSc6ICdfc2hvdWxkRm9yd2FyZChcInByaXN0aW5lXCIpJyxcblx0XHQnW2NsYXNzLm5nLWRpcnR5XSc6ICdfc2hvdWxkRm9yd2FyZChcImRpcnR5XCIpJyxcblx0XHQnW2NsYXNzLm5nLXZhbGlkXSc6ICdfc2hvdWxkRm9yd2FyZChcInZhbGlkXCIpJyxcblx0XHQnW2NsYXNzLm5nLWludmFsaWRdJzogJ19zaG91bGRGb3J3YXJkKFwiaW52YWxpZFwiKScsXG5cdFx0J1tjbGFzcy5uZy1wZW5kaW5nXSc6ICdfc2hvdWxkRm9yd2FyZChcInBlbmRpbmdcIiknLFxuXHRcdCdbY2xhc3MuX21hdC1hbmltYXRpb24tbm9vcGFibGVdJzogJyFfYW5pbWF0aW9uc0VuYWJsZWQnXG5cdH0sXG5cdGlucHV0czogWydjb2xvciddLFxuXHRlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0cHJvdmlkZXJzOiBbXG5cdFx0eyBwcm92aWRlOiBNQVRfRk9STV9GSUVMRCwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRm9ybUZpZWxkQ29tcG9uZW50KSB9LFxuXHRcdHsgcHJvdmlkZTogTWF0Rm9ybUZpZWxkLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGb3JtRmllbGRDb21wb25lbnQpIH1cblx0XVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRmllbGRDb21wb25lbnQgZXh0ZW5kcyBNYXRGb3JtRmllbGQge1xuXHQvKipcblx0ICogQGlnbm9yZVxuXHQgKi9cblx0X3Nob3VsZEFsd2F5c0Zsb2F0KCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBzdXBlci5fc2hvdWxkQWx3YXlzRmxvYXQoKSB8fCB0aGlzLl9lbmhhbmNlZEFwcGVhcmFuY2UoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBAaWdub3JlXG5cdCAqL1xuXHRfYm9yZGVyQ2xhc3MoKTogc3RyaW5nIHtcblx0XHRpZiAoKHRoaXMuYXBwZWFyYW5jZSBhcyBhbnkpICE9PSAnYm91bmQnKSB7XG5cdFx0XHRyZXR1cm4gJ2J1aS1mb3JtLWZpZWxkLWZsZXgtZGVmYXVsdCc7XG5cdFx0fVxuXHRcdGlmICh0aGlzLl9jb250cm9sLmRpc2FibGVkKSB7XG5cdFx0XHRyZXR1cm4gJ2J1aS1mb3JtLWZpZWxkLWJvcmRlci1kaXNhYmxlZCc7XG5cdFx0fSBlbHNlIGlmICh0aGlzLl9jb250cm9sLmVycm9yU3RhdGUpIHtcblx0XHRcdHJldHVybiAnYnVpLWJvcmRlci13YXJuIGJ1aS1mb3JtLWZpZWxkLWJvcmRlci10aGljayc7XG5cdFx0fSBlbHNlIGlmICh0aGlzLl9jb250cm9sLmZvY3VzZWQpIHtcblx0XHRcdHJldHVybiBgYnVpLWJvcmRlci0ke3RoaXMuY29sb3IgfHwgJ3ByaW1hcnknfSBidWktZm9ybS1maWVsZC1ib3JkZXItdGhpY2tgO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gJ2J1aS1mb3JtLWZpZWxkLWJvcmRlci1kZWZhdWx0IGJ1aS1ib3JkZXItZW1waGFzaXMnO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBAaWdub3JlXG5cdCAqL1xuXHRfZW5oYW5jZWRBcHBlYXJhbmNlKCkge1xuXHRcdHJldHVybiAodGhpcy5hcHBlYXJhbmNlIGFzIGFueSkgPT09ICdkZXRhY2gnIHx8ICh0aGlzLmFwcGVhcmFuY2UgYXMgYW55KSA9PT0gJ2JvdW5kJztcblx0fVxuXG5cdC8qKiBAaWdub3JlICovXG5cdEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcblx0X2hvc3RDbGlja2VkKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG5cdFx0dGhpcy5fY29udHJvbC5vbkNvbnRhaW5lckNsaWNrICYmIHRoaXMuX2NvbnRyb2wub25Db250YWluZXJDbGljayhldmVudCk7XG5cdH1cbn1cblxuKEZvcm1GaWVsZENvbXBvbmVudCBhcyBhbnkpLsm1Y21wLnN0eWxlcy5wdXNoKChNYXRGb3JtRmllbGQgYXMgYW55KS7JtWNtcC5zdHlsZXMpO1xuIiwiPGRpdiBjbGFzcz1cIm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJcIj5cblx0PGRpdiBjbGFzcz1cIm1hdC1mb3JtLWZpZWxkLWZsZXgge3sgX2JvcmRlckNsYXNzKCkgfX1cIiAjY29ubmVjdGlvbkNvbnRhaW5lcj5cblx0XHQ8IS0tIE91dGxpbmUgdXNlZCBmb3Igb3V0bGluZSBhcHBlYXJhbmNlLiAtLT5cblx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiYXBwZWFyYW5jZSA9PSAnb3V0bGluZSdcIj5cblx0XHRcdDxkaXYgY2xhc3M9XCJtYXQtZm9ybS1maWVsZC1vdXRsaW5lXCI+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJtYXQtZm9ybS1maWVsZC1vdXRsaW5lLXN0YXJ0XCI+PC9kaXY+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJtYXQtZm9ybS1maWVsZC1vdXRsaW5lLWdhcFwiPjwvZGl2PlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWF0LWZvcm0tZmllbGQtb3V0bGluZS1lbmRcIj48L2Rpdj5cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzcz1cIm1hdC1mb3JtLWZpZWxkLW91dGxpbmUgbWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGlja1wiPlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWF0LWZvcm0tZmllbGQtb3V0bGluZS1zdGFydFwiPjwvZGl2PlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWF0LWZvcm0tZmllbGQtb3V0bGluZS1nYXBcIj48L2Rpdj5cblx0XHRcdFx0PGRpdiBjbGFzcz1cIm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZW5kXCI+PC9kaXY+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L25nLWNvbnRhaW5lcj5cblxuXHRcdDxkaXYgY2xhc3M9XCJtYXQtZm9ybS1maWVsZC1wcmVmaXhcIiAqbmdJZj1cIl9wcmVmaXhDaGlsZHJlbi5sZW5ndGhcIj5cblx0XHRcdDxuZy1jb250ZW50IHNlbGVjdD1cIlttYXRQcmVmaXhdXCI+PC9uZy1jb250ZW50PlxuXHRcdDwvZGl2PlxuXG5cdFx0PGRpdiBjbGFzcz1cInt7IF9lbmhhbmNlZEFwcGVhcmFuY2UoKSA/ICdidWktZm9ybS1maWVsZC1pbmZpeCcgOiAnbWF0LWZvcm0tZmllbGQtaW5maXgnIH19XCIgI2lucHV0Q29udGFpbmVyPlxuXHRcdFx0PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG5cdFx0XHQ8c3BhbiBjbGFzcz1cIm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcIj5cblx0XHRcdFx0PCEtLSBXZSBhZGQgYXJpYS1vd25zIGFzIGEgd29ya2Fyb3VuZCBmb3IgYW4gaXNzdWUgaW4gSkFXUyAmIE5WREEgd2hlcmUgdGhlIGxhYmVsIGlzbid0XG5cdFx0XHQgICByZWFkIGlmIGl0IGNvbWVzIGJlZm9yZSB0aGUgY29udHJvbCBpbiB0aGUgRE9NLiAtLT5cblx0XHRcdFx0PGxhYmVsXG5cdFx0XHRcdFx0Y2xhc3M9XCJtYXQtZm9ybS1maWVsZC1sYWJlbFwiXG5cdFx0XHRcdFx0KGNka09ic2VydmVDb250ZW50KT1cInVwZGF0ZU91dGxpbmVHYXAoKVwiXG5cdFx0XHRcdFx0W2Nka09ic2VydmVDb250ZW50RGlzYWJsZWRdPVwiYXBwZWFyYW5jZSAhPSAnb3V0bGluZSdcIlxuXHRcdFx0XHRcdFtpZF09XCJfbGFiZWxJZFwiXG5cdFx0XHRcdFx0W2F0dHIuZm9yXT1cIl9jb250cm9sLmlkXCJcblx0XHRcdFx0XHRbYXR0ci5hcmlhLW93bnNdPVwiX2NvbnRyb2wuaWRcIlxuXHRcdFx0XHRcdFtjbGFzcy5tYXQtZW1wdHldPVwiX2NvbnRyb2wuZW1wdHkgJiYgIV9zaG91bGRBbHdheXNGbG9hdCgpXCJcblx0XHRcdFx0XHRbY2xhc3MubWF0LWZvcm0tZmllbGQtZW1wdHldPVwiX2NvbnRyb2wuZW1wdHkgJiYgIV9zaG91bGRBbHdheXNGbG9hdCgpXCJcblx0XHRcdFx0XHRbY2xhc3MubWF0LWFjY2VudF09XCJjb2xvciA9PSAnYWNjZW50J1wiXG5cdFx0XHRcdFx0W2NsYXNzLm1hdC13YXJuXT1cImNvbG9yID09ICd3YXJuJ1wiXG5cdFx0XHRcdFx0I2xhYmVsXG5cdFx0XHRcdFx0Km5nSWY9XCJfaGFzRmxvYXRpbmdMYWJlbCgpXCJcblx0XHRcdFx0XHRbbmdTd2l0Y2hdPVwiX2hhc0xhYmVsKClcIlxuXHRcdFx0XHQ+XG5cdFx0XHRcdFx0PCEtLSBAYnJlYWtpbmctY2hhbmdlIDguMC4wIHJlbW92ZSBpbiBmYXZvciBvZiBtYXQtbGFiZWwgZWxlbWVudCBhbiBwbGFjZWhvbGRlciBhdHRyLiAtLT5cblx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJmYWxzZVwiPlxuXHRcdFx0XHRcdFx0PG5nLWNvbnRlbnQgc2VsZWN0PVwibWF0LXBsYWNlaG9sZGVyXCI+PC9uZy1jb250ZW50PlxuXHRcdFx0XHRcdFx0PHNwYW4+e3sgX2NvbnRyb2wucGxhY2Vob2xkZXIgfX08L3NwYW4+XG5cdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XG5cblx0XHRcdFx0XHQ8bmctY29udGVudCBzZWxlY3Q9XCJtYXQtbGFiZWxcIiAqbmdTd2l0Y2hDYXNlPVwidHJ1ZVwiPjwvbmctY29udGVudD5cblxuXHRcdFx0XHRcdDwhLS0gQGJyZWFraW5nLWNoYW5nZSA4LjAuMCByZW1vdmUgYG1hdC1wbGFjZWhvbGRlci1yZXF1aXJlZGAgY2xhc3MgLS0+XG5cdFx0XHRcdFx0PHNwYW5cblx0XHRcdFx0XHRcdGNsYXNzPVwibWF0LXBsYWNlaG9sZGVyLXJlcXVpcmVkIG1hdC1mb3JtLWZpZWxkLXJlcXVpcmVkLW1hcmtlclwiXG5cdFx0XHRcdFx0XHRhcmlhLWhpZGRlbj1cInRydWVcIlxuXHRcdFx0XHRcdFx0Km5nSWY9XCIhaGlkZVJlcXVpcmVkTWFya2VyICYmIF9jb250cm9sLnJlcXVpcmVkICYmICFfY29udHJvbC5kaXNhYmxlZFwiXG5cdFx0XHRcdFx0XHQ+JiMzMjsqPC9zcGFuXG5cdFx0XHRcdFx0PlxuXHRcdFx0XHQ8L2xhYmVsPlxuXHRcdFx0PC9zcGFuPlxuXHRcdDwvZGl2PlxuXG5cdFx0PGRpdiBjbGFzcz1cIm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFwiICpuZ0lmPVwiX3N1ZmZpeENoaWxkcmVuLmxlbmd0aFwiPlxuXHRcdFx0PG5nLWNvbnRlbnQgc2VsZWN0PVwiW21hdFN1ZmZpeF1cIj48L25nLWNvbnRlbnQ+XG5cdFx0PC9kaXY+XG5cdFx0PGRpdiAqbmdJZj1cIl9lbmhhbmNlZEFwcGVhcmFuY2UoKVwiIGNsYXNzPVwiYnVpLWZvcm0tZmllbGQtcmlnaHQtZmlsbGVyXCI+PC9kaXY+XG5cdDwvZGl2PlxuXG5cdDwhLS0gVW5kZXJsaW5lIHVzZWQgZm9yIGxlZ2FjeSwgc3RhbmRhcmQsIGFuZCBib3ggYXBwZWFyYW5jZXMuIC0tPlxuXHQ8ZGl2IGNsYXNzPVwibWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lXCIgI3VuZGVybGluZSAqbmdJZj1cImFwcGVhcmFuY2UgIT0gJ291dGxpbmUnXCI+XG5cdFx0PHNwYW5cblx0XHRcdGNsYXNzPVwibWF0LWZvcm0tZmllbGQtcmlwcGxlXCJcblx0XHRcdFtjbGFzcy5tYXQtYWNjZW50XT1cImNvbG9yID09ICdhY2NlbnQnXCJcblx0XHRcdFtjbGFzcy5tYXQtd2Fybl09XCJjb2xvciA9PSAnd2FybidcIlxuXHRcdD48L3NwYW4+XG5cdDwvZGl2PlxuXG5cdDxkaXYgY2xhc3M9XCJtYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlclwiIFtuZ1N3aXRjaF09XCJfZ2V0RGlzcGxheWVkTWVzc2FnZXMoKVwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cblx0XHQ8ZGl2ICpuZ1N3aXRjaENhc2U9XCInZXJyb3InXCIgW0B0cmFuc2l0aW9uTWVzc2FnZXNdPVwiX3N1YnNjcmlwdEFuaW1hdGlvblN0YXRlXCI+XG5cdFx0XHQ8bmctY29udGVudCBzZWxlY3Q9XCJtYXQtZXJyb3JcIj48L25nLWNvbnRlbnQ+XG5cdFx0PC9kaXY+XG5cblx0XHQ8ZGl2IGNsYXNzPVwibWF0LWZvcm0tZmllbGQtaGludC13cmFwcGVyXCIgKm5nU3dpdGNoQ2FzZT1cIidoaW50J1wiIFtAdHJhbnNpdGlvbk1lc3NhZ2VzXT1cIl9zdWJzY3JpcHRBbmltYXRpb25TdGF0ZVwiPlxuXHRcdFx0PCEtLSBUT0RPKG1tYWxlcmJhKTogdXNlIGFuIGFjdHVhbCA8bWF0LWhpbnQ+IG9uY2UgYWxsIHNlbGVjdG9ycyBhcmUgc3dpdGNoZWQgdG8gbWF0LSogLS0+XG5cdFx0XHQ8ZGl2ICpuZ0lmPVwiaGludExhYmVsXCIgW2lkXT1cIl9oaW50TGFiZWxJZFwiIGNsYXNzPVwibWF0LWhpbnRcIj57eyBoaW50TGFiZWwgfX08L2Rpdj5cblx0XHRcdDxuZy1jb250ZW50IHNlbGVjdD1cIm1hdC1oaW50Om5vdChbYWxpZ249J2VuZCddKVwiPjwvbmctY29udGVudD5cblx0XHRcdDxkaXYgY2xhc3M9XCJtYXQtZm9ybS1maWVsZC1oaW50LXNwYWNlclwiPjwvZGl2PlxuXHRcdFx0PG5nLWNvbnRlbnQgc2VsZWN0PVwibWF0LWhpbnRbYWxpZ249J2VuZCddXCI+PC9uZy1jb250ZW50PlxuXHRcdDwvZGl2PlxuXHQ8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoSCxPQUFPLEVBQUUsWUFBWSxFQUFFLHNCQUFzQixFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7O0FBRXBHLGNBQWM7QUFDZCxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUV0RDs7Ozs7O0dBTUc7QUF3Q0gsTUFBTSxPQUFPLGtCQUFtQixTQUFRLFlBQVk7SUFDbkQ7O09BRUc7SUFDSCxrQkFBa0I7UUFDakIsT0FBTyxLQUFLLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUNqRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFZO1FBQ1gsSUFBSyxJQUFJLENBQUMsVUFBa0IsS0FBSyxPQUFPLEVBQUU7WUFDekMsT0FBTyw2QkFBNkIsQ0FBQztTQUNyQztRQUNELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUU7WUFDM0IsT0FBTyxnQ0FBZ0MsQ0FBQztTQUN4QzthQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUU7WUFDcEMsT0FBTyw2Q0FBNkMsQ0FBQztTQUNyRDthQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUU7WUFDakMsT0FBTyxjQUFjLElBQUksQ0FBQyxLQUFLLElBQUksU0FBUyw4QkFBOEIsQ0FBQztTQUMzRTthQUFNO1lBQ04sT0FBTyxtREFBbUQsQ0FBQztTQUMzRDtJQUNGLENBQUM7SUFFRDs7T0FFRztJQUNILG1CQUFtQjtRQUNsQixPQUFRLElBQUksQ0FBQyxVQUFrQixLQUFLLFFBQVEsSUFBSyxJQUFJLENBQUMsVUFBa0IsS0FBSyxPQUFPLENBQUM7SUFDdEYsQ0FBQztJQUVELGNBQWM7SUFFZCxZQUFZLENBQUMsS0FBaUI7UUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pFLENBQUM7OytHQXJDVyxrQkFBa0I7bUdBQWxCLGtCQUFrQix5OENBTG5CO1FBQ1YsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUU7UUFDbEQsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUU7S0FDaEQsNkVDbERGLCsrSEF5RkEsaXBGRHZFYSxDQUFDLHNCQUFzQixDQUFDLGtCQUFrQixDQUFDOzJGQWtDM0Msa0JBQWtCO2tCQXZDOUIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixRQUFRLEVBQUUsY0FBYztvQkFDeEIsV0FBVyxFQUFFLDJCQUEyQjtvQkFDeEMsU0FBUyxFQUFFLENBQUMsNkJBQTZCLENBQUM7b0JBQzFDLFVBQVUsRUFBRSxDQUFDLHNCQUFzQixDQUFDLGtCQUFrQixDQUFDO29CQUN2RCxJQUFJLEVBQUU7d0JBQ0wsS0FBSyxFQUFFLHdDQUF3Qzt3QkFDL0MsNENBQTRDLEVBQUUsMEJBQTBCO3dCQUN4RSx3Q0FBd0MsRUFBRSxzQkFBc0I7d0JBQ2hFLDJDQUEyQyxFQUFFLHlCQUF5Qjt3QkFDdEUsMENBQTBDLEVBQUUsd0JBQXdCO3dCQUNwRSx5Q0FBeUMsRUFBRSx1QkFBdUI7d0JBQ2xFLDBDQUEwQyxFQUFFLHdCQUF3Qjt3QkFDcEUsZ0NBQWdDLEVBQUUscUJBQXFCO3dCQUN2RCxrQ0FBa0MsRUFBRSxrQkFBa0I7d0JBQ3RELHFDQUFxQyxFQUFFLHFCQUFxQjt3QkFDNUQsa0NBQWtDLEVBQUUscUJBQXFCO3dCQUN6RCx5Q0FBeUMsRUFBRSwyQkFBMkI7d0JBQ3RFLGlDQUFpQyxFQUFFLG1CQUFtQjt3QkFDdEQsbUNBQW1DLEVBQUUscUJBQXFCO3dCQUMxRCxxQkFBcUIsRUFBRSxrQkFBa0I7d0JBQ3pDLHNCQUFzQixFQUFFLDZCQUE2Qjt3QkFDckQsb0JBQW9CLEVBQUUsMkJBQTJCO3dCQUNqRCxxQkFBcUIsRUFBRSw0QkFBNEI7d0JBQ25ELGtCQUFrQixFQUFFLHlCQUF5Qjt3QkFDN0Msa0JBQWtCLEVBQUUseUJBQXlCO3dCQUM3QyxvQkFBb0IsRUFBRSwyQkFBMkI7d0JBQ2pELG9CQUFvQixFQUFFLDJCQUEyQjt3QkFDakQsaUNBQWlDLEVBQUUscUJBQXFCO3FCQUN4RDtvQkFDRCxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2pCLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsU0FBUyxFQUFFO3dCQUNWLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFO3dCQUNsRCxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRTtxQkFDaEQ7aUJBQ0Q7OEJBb0NBLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7O0FBTWpDLGtCQUEwQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFFLFlBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSG9zdExpc3RlbmVyLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkLCBtYXRGb3JtRmllbGRBbmltYXRpb25zLCBNQVRfRk9STV9GSUVMRCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuXG4vKiogQGlnbm9yZSAqL1xuY29uc3QgVFlQRV9SRUYgPSBmb3J3YXJkUmVmKCgpID0+IEZvcm1GaWVsZENvbXBvbmVudCk7XG5cbi8qKlxuICogQ29udGFpbmVyIGZvciBmb3JtIGNvbnRyb2xzIHRoYXQgYXBwbGllcyBNYXRlcmlhbCBEZXNpZ24gc3R5bGluZyBhbmQgYmVoYXZpb3IuXG4gKlxuICogVGhpcyBjb21wb25lbnQgZXh0ZW5kcyBBbmd1bGFyIE1hdGVyaWFsJ3MgW21hdC1mb3JtLWZpZWxkXShodHRwczovL21hdGVyaWFsLmFuZ3VsYXIuaW8vY29tcG9uZW50cy9mb3JtLWZpZWxkKSBhbmQgcHJvdmlkZXMgdHdvIGFkZGl0aW9uYWwgYXBwZWFyYW5jZXNcbiAqIGBib3VuZGAgYW5kIGBkZXRhY2hgLiBgYm91bmRgIHJlbmRlcnMgdGhlIGxhYmVsIG91dHNpZGUgdGhlIG91dGxpbmVkIGFyZWEgb2YgdGhlIGZpZWxkLCB3aGlsZSBgZGV0YWNoYCByZW1vdmUgdGhlIGJvcmRlcnMgYWxsIHRvZ2V0aGVyLiBgZGV0YWNoYFxuICogaXMgZ2VuZXJhbGx5IHVzZWQgd2l0aCBmb3JtIGNvbnRyb2xzIHRoYXQgcmVuZGVyIHRoZWlyIG93biBib3JkZXJzLlxuICovXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdidWktZm9ybS1maWVsZCcsXG5cdGV4cG9ydEFzOiAnYnVpRm9ybUZpZWxkJyxcblx0dGVtcGxhdGVVcmw6ICdmb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcblx0c3R5bGVVcmxzOiBbJy4vZm9ybS1maWVsZC5jb21wb25lbnQuc2NzcyddLFxuXHRhbmltYXRpb25zOiBbbWF0Rm9ybUZpZWxkQW5pbWF0aW9ucy50cmFuc2l0aW9uTWVzc2FnZXNdLFxuXHRob3N0OiB7XG5cdFx0Y2xhc3M6ICdtYXQtZm9ybS1maWVsZCBidWktZm9ybS1maWVsZCBidWktaG9zdCcsXG5cdFx0J1tjbGFzcy5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLXN0YW5kYXJkXSc6ICdhcHBlYXJhbmNlID09IFwic3RhbmRhcmRcIicsXG5cdFx0J1tjbGFzcy5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGxdJzogJ2FwcGVhcmFuY2UgPT0gXCJmaWxsXCInLFxuXHRcdCdbY2xhc3MubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lXSc6ICdhcHBlYXJhbmNlID09IFwib3V0bGluZVwiJyxcblx0XHQnW2NsYXNzLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtZGV0YWNoXSc6ICdhcHBlYXJhbmNlID09IFwiZGV0YWNoXCInLFxuXHRcdCdbY2xhc3MubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1ib3VuZF0nOiAnYXBwZWFyYW5jZSA9PSBcImJvdW5kXCInLFxuXHRcdCdbY2xhc3MubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3ldJzogJ2FwcGVhcmFuY2UgPT0gXCJsZWdhY3lcIicsXG5cdFx0J1tjbGFzcy5tYXQtZm9ybS1maWVsZC1pbnZhbGlkXSc6ICdfY29udHJvbC5lcnJvclN0YXRlJyxcblx0XHQnW2NsYXNzLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdF0nOiAnX2NhbkxhYmVsRmxvYXQoKScsXG5cdFx0J1tjbGFzcy5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXRdJzogJ19zaG91bGRMYWJlbEZsb2F0KCknLFxuXHRcdCdbY2xhc3MubWF0LWZvcm0tZmllbGQtaGFzLWxhYmVsXSc6ICdfaGFzRmxvYXRpbmdMYWJlbCgpJyxcblx0XHQnW2NsYXNzLm1hdC1mb3JtLWZpZWxkLWhpZGUtcGxhY2Vob2xkZXJdJzogJ19oaWRlQ29udHJvbFBsYWNlaG9sZGVyKCknLFxuXHRcdCdbY2xhc3MubWF0LWZvcm0tZmllbGQtZGlzYWJsZWRdJzogJ19jb250cm9sLmRpc2FibGVkJyxcblx0XHQnW2NsYXNzLm1hdC1mb3JtLWZpZWxkLWF1dG9maWxsZWRdJzogJ19jb250cm9sLmF1dG9maWxsZWQnLFxuXHRcdCdbY2xhc3MubWF0LWZvY3VzZWRdJzogJ19jb250cm9sLmZvY3VzZWQnLFxuXHRcdCdbY2xhc3MubmctdW50b3VjaGVkXSc6ICdfc2hvdWxkRm9yd2FyZChcInVudG91Y2hlZFwiKScsXG5cdFx0J1tjbGFzcy5uZy10b3VjaGVkXSc6ICdfc2hvdWxkRm9yd2FyZChcInRvdWNoZWRcIiknLFxuXHRcdCdbY2xhc3MubmctcHJpc3RpbmVdJzogJ19zaG91bGRGb3J3YXJkKFwicHJpc3RpbmVcIiknLFxuXHRcdCdbY2xhc3MubmctZGlydHldJzogJ19zaG91bGRGb3J3YXJkKFwiZGlydHlcIiknLFxuXHRcdCdbY2xhc3MubmctdmFsaWRdJzogJ19zaG91bGRGb3J3YXJkKFwidmFsaWRcIiknLFxuXHRcdCdbY2xhc3MubmctaW52YWxpZF0nOiAnX3Nob3VsZEZvcndhcmQoXCJpbnZhbGlkXCIpJyxcblx0XHQnW2NsYXNzLm5nLXBlbmRpbmddJzogJ19zaG91bGRGb3J3YXJkKFwicGVuZGluZ1wiKScsXG5cdFx0J1tjbGFzcy5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZV0nOiAnIV9hbmltYXRpb25zRW5hYmxlZCdcblx0fSxcblx0aW5wdXRzOiBbJ2NvbG9yJ10sXG5cdGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRwcm92aWRlcnM6IFtcblx0XHR7IHByb3ZpZGU6IE1BVF9GT1JNX0ZJRUxELCB1c2VFeGlzdGluZzogVFlQRV9SRUYgfSxcblx0XHR7IHByb3ZpZGU6IE1hdEZvcm1GaWVsZCwgdXNlRXhpc3Rpbmc6IFRZUEVfUkVGIH1cblx0XVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRmllbGRDb21wb25lbnQgZXh0ZW5kcyBNYXRGb3JtRmllbGQge1xuXHQvKipcblx0ICogQGlnbm9yZVxuXHQgKi9cblx0X3Nob3VsZEFsd2F5c0Zsb2F0KCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBzdXBlci5fc2hvdWxkQWx3YXlzRmxvYXQoKSB8fCB0aGlzLl9lbmhhbmNlZEFwcGVhcmFuY2UoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBAaWdub3JlXG5cdCAqL1xuXHRfYm9yZGVyQ2xhc3MoKTogc3RyaW5nIHtcblx0XHRpZiAoKHRoaXMuYXBwZWFyYW5jZSBhcyBhbnkpICE9PSAnYm91bmQnKSB7XG5cdFx0XHRyZXR1cm4gJ2J1aS1mb3JtLWZpZWxkLWZsZXgtZGVmYXVsdCc7XG5cdFx0fVxuXHRcdGlmICh0aGlzLl9jb250cm9sLmRpc2FibGVkKSB7XG5cdFx0XHRyZXR1cm4gJ2J1aS1mb3JtLWZpZWxkLWJvcmRlci1kaXNhYmxlZCc7XG5cdFx0fSBlbHNlIGlmICh0aGlzLl9jb250cm9sLmVycm9yU3RhdGUpIHtcblx0XHRcdHJldHVybiAnYnVpLWJvcmRlci13YXJuIGJ1aS1mb3JtLWZpZWxkLWJvcmRlci10aGljayc7XG5cdFx0fSBlbHNlIGlmICh0aGlzLl9jb250cm9sLmZvY3VzZWQpIHtcblx0XHRcdHJldHVybiBgYnVpLWJvcmRlci0ke3RoaXMuY29sb3IgfHwgJ3ByaW1hcnknfSBidWktZm9ybS1maWVsZC1ib3JkZXItdGhpY2tgO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gJ2J1aS1mb3JtLWZpZWxkLWJvcmRlci1kZWZhdWx0IGJ1aS1ib3JkZXItZW1waGFzaXMnO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBAaWdub3JlXG5cdCAqL1xuXHRfZW5oYW5jZWRBcHBlYXJhbmNlKCkge1xuXHRcdHJldHVybiAodGhpcy5hcHBlYXJhbmNlIGFzIGFueSkgPT09ICdkZXRhY2gnIHx8ICh0aGlzLmFwcGVhcmFuY2UgYXMgYW55KSA9PT0gJ2JvdW5kJztcblx0fVxuXG5cdC8qKiBAaWdub3JlICovXG5cdEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcblx0X2hvc3RDbGlja2VkKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG5cdFx0dGhpcy5fY29udHJvbC5vbkNvbnRhaW5lckNsaWNrICYmIHRoaXMuX2NvbnRyb2wub25Db250YWluZXJDbGljayhldmVudCk7XG5cdH1cbn1cblxuKEZvcm1GaWVsZENvbXBvbmVudCBhcyBhbnkpLsm1Y21wLnN0eWxlcy5wdXNoKChNYXRGb3JtRmllbGQgYXMgYW55KS7JtWNtcC5zdHlsZXMpO1xuIiwiPGRpdiBjbGFzcz1cIm1hdC1mb3JtLWZpZWxkLXdyYXBwZXJcIj5cblx0PGRpdiBjbGFzcz1cIm1hdC1mb3JtLWZpZWxkLWZsZXgge3sgX2JvcmRlckNsYXNzKCkgfX1cIiAjY29ubmVjdGlvbkNvbnRhaW5lcj5cblx0XHQ8IS0tIE91dGxpbmUgdXNlZCBmb3Igb3V0bGluZSBhcHBlYXJhbmNlLiAtLT5cblx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiYXBwZWFyYW5jZSA9PSAnb3V0bGluZSdcIj5cblx0XHRcdDxkaXYgY2xhc3M9XCJtYXQtZm9ybS1maWVsZC1vdXRsaW5lXCI+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJtYXQtZm9ybS1maWVsZC1vdXRsaW5lLXN0YXJ0XCI+PC9kaXY+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJtYXQtZm9ybS1maWVsZC1vdXRsaW5lLWdhcFwiPjwvZGl2PlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWF0LWZvcm0tZmllbGQtb3V0bGluZS1lbmRcIj48L2Rpdj5cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzcz1cIm1hdC1mb3JtLWZpZWxkLW91dGxpbmUgbWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGlja1wiPlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWF0LWZvcm0tZmllbGQtb3V0bGluZS1zdGFydFwiPjwvZGl2PlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWF0LWZvcm0tZmllbGQtb3V0bGluZS1nYXBcIj48L2Rpdj5cblx0XHRcdFx0PGRpdiBjbGFzcz1cIm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZW5kXCI+PC9kaXY+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L25nLWNvbnRhaW5lcj5cblxuXHRcdDxkaXYgY2xhc3M9XCJtYXQtZm9ybS1maWVsZC1wcmVmaXhcIiAqbmdJZj1cIl9wcmVmaXhDaGlsZHJlbi5sZW5ndGhcIj5cblx0XHRcdDxuZy1jb250ZW50IHNlbGVjdD1cIlttYXRQcmVmaXhdXCI+PC9uZy1jb250ZW50PlxuXHRcdDwvZGl2PlxuXG5cdFx0PGRpdiBjbGFzcz1cInt7IF9lbmhhbmNlZEFwcGVhcmFuY2UoKSA/ICdidWktZm9ybS1maWVsZC1pbmZpeCcgOiAnbWF0LWZvcm0tZmllbGQtaW5maXgnIH19XCIgI2lucHV0Q29udGFpbmVyPlxuXHRcdFx0PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG5cdFx0XHQ8c3BhbiBjbGFzcz1cIm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcIj5cblx0XHRcdFx0PCEtLSBXZSBhZGQgYXJpYS1vd25zIGFzIGEgd29ya2Fyb3VuZCBmb3IgYW4gaXNzdWUgaW4gSkFXUyAmIE5WREEgd2hlcmUgdGhlIGxhYmVsIGlzbid0XG5cdFx0XHQgICByZWFkIGlmIGl0IGNvbWVzIGJlZm9yZSB0aGUgY29udHJvbCBpbiB0aGUgRE9NLiAtLT5cblx0XHRcdFx0PGxhYmVsXG5cdFx0XHRcdFx0Y2xhc3M9XCJtYXQtZm9ybS1maWVsZC1sYWJlbFwiXG5cdFx0XHRcdFx0KGNka09ic2VydmVDb250ZW50KT1cInVwZGF0ZU91dGxpbmVHYXAoKVwiXG5cdFx0XHRcdFx0W2Nka09ic2VydmVDb250ZW50RGlzYWJsZWRdPVwiYXBwZWFyYW5jZSAhPSAnb3V0bGluZSdcIlxuXHRcdFx0XHRcdFtpZF09XCJfbGFiZWxJZFwiXG5cdFx0XHRcdFx0W2F0dHIuZm9yXT1cIl9jb250cm9sLmlkXCJcblx0XHRcdFx0XHRbYXR0ci5hcmlhLW93bnNdPVwiX2NvbnRyb2wuaWRcIlxuXHRcdFx0XHRcdFtjbGFzcy5tYXQtZW1wdHldPVwiX2NvbnRyb2wuZW1wdHkgJiYgIV9zaG91bGRBbHdheXNGbG9hdCgpXCJcblx0XHRcdFx0XHRbY2xhc3MubWF0LWZvcm0tZmllbGQtZW1wdHldPVwiX2NvbnRyb2wuZW1wdHkgJiYgIV9zaG91bGRBbHdheXNGbG9hdCgpXCJcblx0XHRcdFx0XHRbY2xhc3MubWF0LWFjY2VudF09XCJjb2xvciA9PSAnYWNjZW50J1wiXG5cdFx0XHRcdFx0W2NsYXNzLm1hdC13YXJuXT1cImNvbG9yID09ICd3YXJuJ1wiXG5cdFx0XHRcdFx0I2xhYmVsXG5cdFx0XHRcdFx0Km5nSWY9XCJfaGFzRmxvYXRpbmdMYWJlbCgpXCJcblx0XHRcdFx0XHRbbmdTd2l0Y2hdPVwiX2hhc0xhYmVsKClcIlxuXHRcdFx0XHQ+XG5cdFx0XHRcdFx0PCEtLSBAYnJlYWtpbmctY2hhbmdlIDguMC4wIHJlbW92ZSBpbiBmYXZvciBvZiBtYXQtbGFiZWwgZWxlbWVudCBhbiBwbGFjZWhvbGRlciBhdHRyLiAtLT5cblx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJmYWxzZVwiPlxuXHRcdFx0XHRcdFx0PG5nLWNvbnRlbnQgc2VsZWN0PVwibWF0LXBsYWNlaG9sZGVyXCI+PC9uZy1jb250ZW50PlxuXHRcdFx0XHRcdFx0PHNwYW4+e3sgX2NvbnRyb2wucGxhY2Vob2xkZXIgfX08L3NwYW4+XG5cdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XG5cblx0XHRcdFx0XHQ8bmctY29udGVudCBzZWxlY3Q9XCJtYXQtbGFiZWxcIiAqbmdTd2l0Y2hDYXNlPVwidHJ1ZVwiPjwvbmctY29udGVudD5cblxuXHRcdFx0XHRcdDwhLS0gQGJyZWFraW5nLWNoYW5nZSA4LjAuMCByZW1vdmUgYG1hdC1wbGFjZWhvbGRlci1yZXF1aXJlZGAgY2xhc3MgLS0+XG5cdFx0XHRcdFx0PHNwYW5cblx0XHRcdFx0XHRcdGNsYXNzPVwibWF0LXBsYWNlaG9sZGVyLXJlcXVpcmVkIG1hdC1mb3JtLWZpZWxkLXJlcXVpcmVkLW1hcmtlclwiXG5cdFx0XHRcdFx0XHRhcmlhLWhpZGRlbj1cInRydWVcIlxuXHRcdFx0XHRcdFx0Km5nSWY9XCIhaGlkZVJlcXVpcmVkTWFya2VyICYmIF9jb250cm9sLnJlcXVpcmVkICYmICFfY29udHJvbC5kaXNhYmxlZFwiXG5cdFx0XHRcdFx0XHQ+JiMzMjsqPC9zcGFuXG5cdFx0XHRcdFx0PlxuXHRcdFx0XHQ8L2xhYmVsPlxuXHRcdFx0PC9zcGFuPlxuXHRcdDwvZGl2PlxuXG5cdFx0PGRpdiBjbGFzcz1cIm1hdC1mb3JtLWZpZWxkLXN1ZmZpeFwiICpuZ0lmPVwiX3N1ZmZpeENoaWxkcmVuLmxlbmd0aFwiPlxuXHRcdFx0PG5nLWNvbnRlbnQgc2VsZWN0PVwiW21hdFN1ZmZpeF1cIj48L25nLWNvbnRlbnQ+XG5cdFx0PC9kaXY+XG5cdFx0PGRpdiAqbmdJZj1cIl9lbmhhbmNlZEFwcGVhcmFuY2UoKVwiIGNsYXNzPVwiYnVpLWZvcm0tZmllbGQtcmlnaHQtZmlsbGVyXCI+PC9kaXY+XG5cdDwvZGl2PlxuXG5cdDwhLS0gVW5kZXJsaW5lIHVzZWQgZm9yIGxlZ2FjeSwgc3RhbmRhcmQsIGFuZCBib3ggYXBwZWFyYW5jZXMuIC0tPlxuXHQ8ZGl2IGNsYXNzPVwibWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lXCIgI3VuZGVybGluZSAqbmdJZj1cImFwcGVhcmFuY2UgIT0gJ291dGxpbmUnXCI+XG5cdFx0PHNwYW5cblx0XHRcdGNsYXNzPVwibWF0LWZvcm0tZmllbGQtcmlwcGxlXCJcblx0XHRcdFtjbGFzcy5tYXQtYWNjZW50XT1cImNvbG9yID09ICdhY2NlbnQnXCJcblx0XHRcdFtjbGFzcy5tYXQtd2Fybl09XCJjb2xvciA9PSAnd2FybidcIlxuXHRcdD48L3NwYW4+XG5cdDwvZGl2PlxuXG5cdDxkaXYgY2xhc3M9XCJtYXQtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlclwiIFtuZ1N3aXRjaF09XCJfZ2V0RGlzcGxheWVkTWVzc2FnZXMoKVwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cblx0XHQ8ZGl2ICpuZ1N3aXRjaENhc2U9XCInZXJyb3InXCIgW0B0cmFuc2l0aW9uTWVzc2FnZXNdPVwiX3N1YnNjcmlwdEFuaW1hdGlvblN0YXRlXCI+XG5cdFx0XHQ8bmctY29udGVudCBzZWxlY3Q9XCJtYXQtZXJyb3JcIj48L25nLWNvbnRlbnQ+XG5cdFx0PC9kaXY+XG5cblx0XHQ8ZGl2IGNsYXNzPVwibWF0LWZvcm0tZmllbGQtaGludC13cmFwcGVyXCIgKm5nU3dpdGNoQ2FzZT1cIidoaW50J1wiIFtAdHJhbnNpdGlvbk1lc3NhZ2VzXT1cIl9zdWJzY3JpcHRBbmltYXRpb25TdGF0ZVwiPlxuXHRcdFx0PCEtLSBUT0RPKG1tYWxlcmJhKTogdXNlIGFuIGFjdHVhbCA8bWF0LWhpbnQ+IG9uY2UgYWxsIHNlbGVjdG9ycyBhcmUgc3dpdGNoZWQgdG8gbWF0LSogLS0+XG5cdFx0XHQ8ZGl2ICpuZ0lmPVwiaGludExhYmVsXCIgW2lkXT1cIl9oaW50TGFiZWxJZFwiIGNsYXNzPVwibWF0LWhpbnRcIj57eyBoaW50TGFiZWwgfX08L2Rpdj5cblx0XHRcdDxuZy1jb250ZW50IHNlbGVjdD1cIm1hdC1oaW50Om5vdChbYWxpZ249J2VuZCddKVwiPjwvbmctY29udGVudD5cblx0XHRcdDxkaXYgY2xhc3M9XCJtYXQtZm9ybS1maWVsZC1oaW50LXNwYWNlclwiPjwvZGl2PlxuXHRcdFx0PG5nLWNvbnRlbnQgc2VsZWN0PVwibWF0LWhpbnRbYWxpZ249J2VuZCddXCI+PC9uZy1jb250ZW50PlxuXHRcdDwvZGl2PlxuXHQ8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -23,7 +23,7 @@ export class RadioPanelDirective extends MatRadioGroup {
|
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
RadioPanelDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: RadioPanelDirective, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
26
|
-
RadioPanelDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.7", type: RadioPanelDirective, selector: "bui-radio-panel", inputs: { color: "color" }, host: { attributes: { "role": "radiogroup" }, classAttribute: "bui-radio-panel" }, providers: [
|
|
26
|
+
RadioPanelDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.7", type: RadioPanelDirective, selector: "bui-radio-panel", inputs: { color: "color" }, host: { attributes: { "role": "radiogroup" }, classAttribute: "bui-radio-panel bui-host" }, providers: [
|
|
27
27
|
{
|
|
28
28
|
provide: NG_VALUE_ACCESSOR,
|
|
29
29
|
useExisting: forwardRef(() => RadioPanelDirective),
|
|
@@ -48,7 +48,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImpor
|
|
|
48
48
|
// tslint:disable-next-line: no-host-metadata-property
|
|
49
49
|
host: {
|
|
50
50
|
role: 'radiogroup',
|
|
51
|
-
class: 'bui-radio-panel'
|
|
51
|
+
class: 'bui-radio-panel bui-host'
|
|
52
52
|
}
|
|
53
53
|
}]
|
|
54
54
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { color: [{
|
|
@@ -57,4 +57,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImpor
|
|
|
57
57
|
type: ContentChildren,
|
|
58
58
|
args: [RadioPanelItemComponent, { descendants: true }]
|
|
59
59
|
}] } });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tcGFuZWwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvcmFkaW8tcGFuZWwvcmFkaW8tcGFuZWwuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTixlQUFlLEVBQ2YsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBSUwsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFDdkU7Ozs7Ozs7R0FPRztBQW1CSCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsYUFBYTtJQVVyRCxZQUFZLEVBQXFCO1FBQ2hDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxjQUFjO0lBQ2QsV0FBVyxDQUFDLE9BQXNCO1FBQ2pDLElBQUksT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7U0FDbkQ7SUFDRixDQUFDOztnSEFuQlcsbUJBQW1CO29HQUFuQixtQkFBbUIsa0tBZHBCO1FBQ1Y7WUFDQyxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUM7WUFDbEQsS0FBSyxFQUFFLElBQUk7U0FDWDtRQUNELEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDLEVBQUU7S0FDaEYsa0RBY2dCLHVCQUF1QjsyRkFQNUIsbUJBQW1CO2tCQWxCL0IsU0FBUzttQkFBQztvQkFDViwrQ0FBK0M7b0JBQy9DLFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFFBQVEsRUFBRSxlQUFlO29CQUN6QixTQUFTLEVBQUU7d0JBQ1Y7NEJBQ0MsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsb0JBQW9CLENBQUM7NEJBQ2xELEtBQUssRUFBRSxJQUFJO3lCQUNYO3dCQUNELEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxFQUFFO3FCQUNoRjtvQkFDRCxzREFBc0Q7b0JBQ3RELElBQUksRUFBRTt3QkFDTCxJQUFJLEVBQUUsWUFBWTt3QkFDbEIsS0FBSyxFQUFFLDBCQUEwQjtxQkFDakM7aUJBQ0Q7d0dBR1MsS0FBSztzQkFBYixLQUFLO2dCQU1OLE9BQU87c0JBRE4sZUFBZTt1QkFBQyx1QkFBdUIsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDaGFuZ2VEZXRlY3RvclJlZixcblx0Q29udGVudENoaWxkcmVuLFxuXHREaXJlY3RpdmUsXG5cdGZvcndhcmRSZWYsXG5cdElucHV0LFxuXHRPbkNoYW5nZXMsXG5cdFF1ZXJ5TGlzdCxcblx0U2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVGhlbWVQYWxldHRlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBNYXRSYWRpb0dyb3VwLCBNQVRfUkFESU9fR1JPVVAgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XG5pbXBvcnQgeyBSYWRpb1BhbmVsSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vcmFkaW8tcGFuZWwtaXRlbS5jb21wb25lbnQnO1xuLyoqXG4gKiBSYWRpbyBwYW5lbCBpcyBhIFtjb250cm9sIHZhbHVlIGFjY2Vzc29yXShodHRwczovL2FuZ3VsYXIuaW8vYXBpL2Zvcm1zL0NvbnRyb2xWYWx1ZUFjY2Vzc29yKVxuICogdGhhdCBleHRlbmRzIEFuZ3VsYXIgTWF0ZXJpYWwncyBbcmFkaW8gZ3JvdXAgY29tcG9uZW50XShodHRwczovL21hdGVyaWFsLmFuZ3VsYXIuaW8vY29tcG9uZW50cy9yYWRpby9vdmVydmlldykuXG4gKiBJdCBpbmhlcml0cyBhbGwgdGhlIGZlYXR1cmVzIG9mIGBNYXRSYWRpb0dyb3VwYCwgYW5kIGFycmFuZ2VzIHRoZSBjaGlsZCBpdGVtcyBpbiBwYW5lbHMsXG4gKiB3aXRoIHRoZSBgdGl0bGVgIGF0dHJpYnV0ZXMgcmVuZGVyZWQgYXMgY2FwdGlvbnMuIFRoZSBjaGVjayBib3ggaWNvbiBhbmQgdGhlIGJvcmRlcnMgd2lsbCBiZSBkaXNwbGF5ZWRcbiAqIGluIHRoZSBjb2xvciBzZWxlY3RlZCBieSB0aGUgdGhlbWUgYXR0cmlidXRlIGBjb2xvcmAuXG4gKlxuICovXG5ARGlyZWN0aXZlKHtcblx0Ly8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBkaXJlY3RpdmUtc2VsZWN0b3Jcblx0c2VsZWN0b3I6ICdidWktcmFkaW8tcGFuZWwnLFxuXHRleHBvcnRBczogJ2J1aVJhZGlvUGFuZWwnLFxuXHRwcm92aWRlcnM6IFtcblx0XHR7XG5cdFx0XHRwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcblx0XHRcdHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJhZGlvUGFuZWxEaXJlY3RpdmUpLFxuXHRcdFx0bXVsdGk6IHRydWVcblx0XHR9LFxuXHRcdHsgcHJvdmlkZTogTUFUX1JBRElPX0dST1VQLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSYWRpb1BhbmVsRGlyZWN0aXZlKSB9XG5cdF0sXG5cdC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8taG9zdC1tZXRhZGF0YS1wcm9wZXJ0eVxuXHRob3N0OiB7XG5cdFx0cm9sZTogJ3JhZGlvZ3JvdXAnLFxuXHRcdGNsYXNzOiAnYnVpLXJhZGlvLXBhbmVsIGJ1aS1ob3N0J1xuXHR9XG59KVxuZXhwb3J0IGNsYXNzIFJhZGlvUGFuZWxEaXJlY3RpdmUgZXh0ZW5kcyBNYXRSYWRpb0dyb3VwIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcblx0LyoqIFRoZW1lIGNvbG9yIGZvciBhbGwgb2YgdGhlIHJhZGlvIHBhbmVscyBpbiB0aGUgZ3JvdXAuICovXG5cdEBJbnB1dCgpIGNvbG9yOiBUaGVtZVBhbGV0dGU7XG5cblx0LyoqXG5cdCAqIEBpZ25vcmVcblx0ICovXG5cdEBDb250ZW50Q2hpbGRyZW4oUmFkaW9QYW5lbEl0ZW1Db21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcblx0X3JhZGlvcyE6IFF1ZXJ5TGlzdDxSYWRpb1BhbmVsSXRlbUNvbXBvbmVudD47XG5cblx0Y29uc3RydWN0b3IoY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7XG5cdFx0c3VwZXIoY2QpO1xuXHR9XG5cblx0LyoqIEBpZ25vcmUgKi9cblx0bmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuXHRcdGlmIChjaGFuZ2VzLmNvbG9yICYmIHRoaXMuX3JhZGlvcykge1xuXHRcdFx0dGhpcy5fcmFkaW9zLmZvckVhY2goaXRlbSA9PiBpdGVtLl9tYXJrRm9yQ2hlY2soKSk7XG5cdFx0fVxuXHR9XG59XG4iXX0=
|