@ecodev/natural 42.1.0 → 42.3.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/esm2020/lib/modules/avatar/component/avatar.component.mjs +18 -15
- package/esm2020/lib/modules/search/input/input.component.mjs +2 -2
- package/esm2020/lib/modules/select/select-enum/select-enum.component.mjs +9 -3
- package/fesm2015/ecodev-natural.mjs +26 -17
- package/fesm2015/ecodev-natural.mjs.map +1 -1
- package/fesm2020/ecodev-natural.mjs +26 -17
- package/fesm2020/ecodev-natural.mjs.map +1 -1
- package/lib/modules/avatar/component/avatar.component.d.ts +1 -0
- package/lib/modules/select/select-enum/select-enum.component.d.ts +7 -3
- package/package.json +1 -1
|
@@ -48,11 +48,11 @@ export class AvatarComponent {
|
|
|
48
48
|
}
|
|
49
49
|
const source = this.findNextSource();
|
|
50
50
|
if (!source) {
|
|
51
|
+
this.clearAvatar();
|
|
51
52
|
return;
|
|
52
53
|
}
|
|
53
54
|
if (source.isTextual()) {
|
|
54
55
|
this.buildTextAvatar(source);
|
|
55
|
-
this.avatarSrc = null;
|
|
56
56
|
}
|
|
57
57
|
else {
|
|
58
58
|
this.buildImageAvatar(source);
|
|
@@ -80,13 +80,20 @@ export class AvatarComponent {
|
|
|
80
80
|
};
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
|
+
clearAvatar() {
|
|
84
|
+
this.avatarSrc = null;
|
|
85
|
+
this.avatarText = null;
|
|
86
|
+
this.avatarStyle = {};
|
|
87
|
+
}
|
|
83
88
|
buildTextAvatar(avatarSource) {
|
|
89
|
+
this.clearAvatar();
|
|
84
90
|
this.avatarText = avatarSource.getAvatar(+this.textMaximumLength);
|
|
85
91
|
this.avatarStyle = this.getTextualStyle(avatarSource.getValue());
|
|
86
92
|
}
|
|
87
93
|
buildImageAvatar(avatarSource) {
|
|
88
|
-
this.
|
|
94
|
+
this.clearAvatar();
|
|
89
95
|
this.avatarSrc = avatarSource.getAvatar(+this.size);
|
|
96
|
+
this.avatarStyle = this.getImageStyle();
|
|
90
97
|
}
|
|
91
98
|
/**
|
|
92
99
|
* Returns initials style
|
|
@@ -118,7 +125,7 @@ AvatarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version:
|
|
|
118
125
|
AvatarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: AvatarComponent, selector: "natural-avatar", inputs: { image: "image", initials: "initials", gravatar: "gravatar", size: "size", textSizeRatio: "textSizeRatio", bgColor: "bgColor", fgColor: "fgColor", borderRadius: "borderRadius", textMaximumLength: "textMaximumLength" }, usesOnChanges: true, ngImport: i0, template: `
|
|
119
126
|
<div class="avatar-container" [ngStyle]="hostStyle">
|
|
120
127
|
<img
|
|
121
|
-
*ngIf="avatarSrc
|
|
128
|
+
*ngIf="avatarSrc"
|
|
122
129
|
[src]="avatarSrc"
|
|
123
130
|
[width]="size"
|
|
124
131
|
[height]="size"
|
|
@@ -127,11 +134,9 @@ AvatarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
|
|
|
127
134
|
class="avatar-content"
|
|
128
135
|
loading="lazy"
|
|
129
136
|
/>
|
|
130
|
-
<
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
</div>
|
|
134
|
-
</ng-template>
|
|
137
|
+
<div *ngIf="avatarText" class="avatar-content" [ngStyle]="avatarStyle">
|
|
138
|
+
{{ avatarText }}
|
|
139
|
+
</div>
|
|
135
140
|
</div>
|
|
136
141
|
`, isInline: true, styles: [":host{border-radius:50%}\n"], directives: [{ type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
137
142
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: AvatarComponent, decorators: [{
|
|
@@ -148,7 +153,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
|
|
|
148
153
|
template: `
|
|
149
154
|
<div class="avatar-container" [ngStyle]="hostStyle">
|
|
150
155
|
<img
|
|
151
|
-
*ngIf="avatarSrc
|
|
156
|
+
*ngIf="avatarSrc"
|
|
152
157
|
[src]="avatarSrc"
|
|
153
158
|
[width]="size"
|
|
154
159
|
[height]="size"
|
|
@@ -157,11 +162,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
|
|
|
157
162
|
class="avatar-content"
|
|
158
163
|
loading="lazy"
|
|
159
164
|
/>
|
|
160
|
-
<
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
</div>
|
|
164
|
-
</ng-template>
|
|
165
|
+
<div *ngIf="avatarText" class="avatar-content" [ngStyle]="avatarStyle">
|
|
166
|
+
{{ avatarText }}
|
|
167
|
+
</div>
|
|
165
168
|
</div>
|
|
166
169
|
`,
|
|
167
170
|
}]
|
|
@@ -184,4 +187,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
|
|
|
184
187
|
}], textMaximumLength: [{
|
|
185
188
|
type: Input
|
|
186
189
|
}] } });
|
|
187
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2F2YXRhci9jb21wb25lbnQvYXZhdGFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBMkIsTUFBTSxlQUFlLENBQUM7Ozs7QUFPekU7O0dBRUc7QUE4QkgsTUFBTSxPQUFPLGVBQWU7SUFvQnhCLFlBQW9DLGFBQTRCO1FBQTVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBZmhELFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUVsQixZQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ2pCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLHNCQUFpQixHQUFHLENBQUMsQ0FBQztRQUUvQixjQUFTLEdBQWtCLElBQUksQ0FBQztRQUNoQyxlQUFVLEdBQWtCLElBQUksQ0FBQztRQUNqQyxnQkFBVyxHQUFVLEVBQUUsQ0FBQztRQUN4QixjQUFTLEdBQVUsRUFBRSxDQUFDO1FBRXJCLGlCQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbEIsWUFBTyxHQUFhLEVBQUUsQ0FBQztJQUVvQyxDQUFDO0lBRXBFOztPQUVHO0lBQ0ksV0FBVyxDQUFDLE9BQXNCO1FBQ3JDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUN4QixLQUFLLE1BQU0sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUNoRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUNwQixTQUFTO2FBQ1o7WUFFRCxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsWUFBWSxDQUFD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QyxXQUFXLENBQUM7WUFDN0YsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxpQ0FBaUM7WUFDckYsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSTtTQUMvQixDQUFDO0lBQ04sQ0FBQztJQUVEOztPQUVHO0lBQ0ssYUFBYTtRQUNqQixPQUFPO1lBQ0gsUUFBUSxFQUFFLE1BQU07WUFDaEIsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLElBQUksTUFBTTtZQUN6QyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJO1lBQ3ZCLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUk7U0FDM0IsQ0FBQztJQUNOLENBQUM7OzRHQTdIUSxlQUFlO2dHQUFmLGVBQWUsK1NBcEJkOzs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FrQlQ7MkZBRVEsZUFBZTtrQkE3QjNCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsTUFBTSxFQUFFO3dCQUNKOzs7O1NBSUM7cUJBQ0o7b0JBQ0QsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FrQlQ7aUJBQ0o7b0dBRW1CLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUVVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsYUFBYTtzQkFBNUIsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFDVSxpQkFBaUI7c0JBQWhDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7U291cmNlfSBmcm9tICcuLi9zb3VyY2VzL3NvdXJjZSc7XG5pbXBvcnQge0F2YXRhclNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2UvYXZhdGFyLnNlcnZpY2UnO1xuXG50eXBlIFN0eWxlID0gUGFydGlhbDxDU1NTdHlsZURlY2xhcmF0aW9uPjtcblxuLyoqXG4gKiBTaG93IGFuIGF2YXRhciBmcm9tIGRpZmZlcmVudCBzb3VyY2VzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmF0dXJhbC1hdmF0YXInLFxuICAgIHN0eWxlczogW1xuICAgICAgICBgXG4gICAgICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgfVxuICAgICAgICBgLFxuICAgIF0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jb250YWluZXJcIiBbbmdTdHlsZV09XCJob3N0U3R5bGVcIj5cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAqbmdJZj1cImF2YXRhclNyYzsgZWxzZSB0ZXh0QXZhdGFyXCJcbiAgICAgICAgICAgICAgICBbc3JjXT1cImF2YXRhclNyY1wiXG4gICAgICAgICAgICAgICAgW3dpZHRoXT1cInNpemVcIlxuICAgICAgICAgICAgICAgIFtoZWlnaHRdPVwic2l6ZVwiXG4gICAgICAgICAgICAgICAgW25nU3R5bGVdPVwiYXZhdGFyU3R5bGVcIlxuICAgICAgICAgICAgICAgIChlcnJvcik9XCJ0cnlOZXh0U291cmNlKClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXZhdGFyLWNvbnRlbnRcIlxuICAgICAgICAgICAgICAgIGxvYWRpbmc9XCJsYXp5XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3RleHRBdmF0YXI+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImF2YXRhclRleHRcIiBjbGFzcz1cImF2YXRhci1jb250ZW50XCIgW25nU3R5bGVdPVwiYXZhdGFyU3R5bGVcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgYXZhdGFyVGV4dCB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgYCxcbn0pXG5leHBvcnQgY2xhc3MgQXZhdGFyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoKSBwdWJsaWMgaW1hZ2U/OiBzdHJpbmcgfCBudWxsO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpbml0aWFscz86IHN0cmluZyB8IG51bGw7XG4gICAgQElucHV0KCkgcHVibGljIGdyYXZhdGFyPzogc3RyaW5nIHwgbnVsbDtcblxuICAgIEBJbnB1dCgpIHB1YmxpYyBzaXplID0gNTA7XG4gICAgQElucHV0KCkgcHVibGljIHRleHRTaXplUmF0aW8gPSAzO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBiZ0NvbG9yOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHVibGljIGZnQ29sb3IgPSAnI0ZGRic7XG4gICAgQElucHV0KCkgcHVibGljIGJvcmRlclJhZGl1cyA9ICcnO1xuICAgIEBJbnB1dCgpIHB1YmxpYyB0ZXh0TWF4aW11bUxlbmd0aCA9IDA7XG5cbiAgICBwdWJsaWMgYXZhdGFyU3JjOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBwdWJsaWMgYXZhdGFyVGV4dDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgcHVibGljIGF2YXRhclN0eWxlOiBTdHlsZSA9IHt9O1xuICAgIHB1YmxpYyBob3N0U3R5bGU6IFN0eWxlID0ge307XG5cbiAgICBwcml2YXRlIGN1cnJlbnRJbmRleCA9IC0xO1xuICAgIHByaXZhdGUgc291cmNlczogU291cmNlW10gPSBbXTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGF2YXRhclNlcnZpY2U6IEF2YXRhclNlcnZpY2UpIHt9XG5cbiAgICAvKipcbiAgICAgKiBEZXRlY3QgaW5wdXRzIGNoYW5nZVxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc291cmNlcy5sZW5ndGggPSAwO1xuICAgICAgICBmb3IgKGNvbnN0IFtwcm9wTmFtZSwgY3JlYXRvcl0gb2YgdGhpcy5hdmF0YXJTZXJ2aWNlLmdldENyZWF0b3JzKCkpIHtcbiAgICAgICAgICAgIGlmICghY2hhbmdlc1twcm9wTmFtZV0pIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gY2hhbmdlc1twcm9wTmFtZV0uY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZSAmJiB0eXBlb2YgY3VycmVudFZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIHRoaXMuc291cmNlcy5wdXNoKG5ldyBjcmVhdG9yKGN1cnJlbnRWYWx1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gcmVpbml0aWFsaXplIHRoZSBhdmF0YXIgY29tcG9uZW50IHdoZW4gYSBzb3VyY2UgcHJvcGVydHkgdmFsdWUgaGFzIGNoYW5nZWRcbiAgICAgICAgLy8gdGhlIGZhbGxiYWNrIHN5c3RlbSBtdXN0IGJlIHJlLWludm9rZWQgd2l0aCB0aGUgbmV3IHZhbHVlcy5cbiAgICAgICAgdGhpcy5pbml0aWFsaXplQXZhdGFyKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmV0Y2ggYXZhdGFyIHNvdXJjZVxuICAgICAqL1xuICAgIHB1YmxpYyB0cnlOZXh0U291cmNlKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBwcmV2aW91c1NvdXJjZSA9IHRoaXMuc291cmNlc1t0aGlzLmN1cnJlbnRJbmRleF07XG4gICAgICAgIGlmIChwcmV2aW91c1NvdXJjZSkge1xuICAgICAgICAgICAgdGhpcy5hdmF0YXJTZXJ2aWNlLm1hcmtTb3VyY2VBc0ZhaWxlZChwcmV2aW91c1NvdXJjZSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzb3VyY2UgPSB0aGlzLmZpbmROZXh0U291cmNlKCk7XG4gICAgICAgIGlmICghc291cmNlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc291cmNlLmlzVGV4dHVhbCgpKSB7XG4gICAgICAgICAgICB0aGlzLmJ1aWxkVGV4dEF2YXRhcihzb3VyY2UpO1xuICAgICAgICAgICAgdGhpcy5hdmF0YXJTcmMgPSBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5idWlsZEltYWdlQXZhdGFyKHNvdXJjZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbmROZXh0U291cmNlKCk6IFNvdXJjZSB8IG51bGwge1xuICAgICAgICB3aGlsZSAoKyt0aGlzLmN1cnJlbnRJbmRleCA8IHRoaXMuc291cmNlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IHNvdXJjZSA9IHRoaXMuc291cmNlc1t0aGlzLmN1cnJlbnRJbmRleF07XG4gICAgICAgICAgICBpZiAoc291cmNlICYmICF0aGlzLmF2YXRhclNlcnZpY2Uuc291cmNlSGFzRmFpbGVkQmVmb3JlKHNvdXJjZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc291cmNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5pdGlhbGl6ZSB0aGUgYXZhdGFyIGNvbXBvbmVudCBhbmQgaXRzIGZhbGxiYWNrIHN5c3RlbVxuICAgICAqL1xuICAgIHByaXZhdGUgaW5pdGlhbGl6ZUF2YXRhcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdXJyZW50SW5kZXggPSAtMTtcbiAgICAgICAgaWYgKHRoaXMuc291cmNlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLnRyeU5leHRTb3VyY2UoKTtcbiAgICAgICAgICAgIHRoaXMuaG9zdFN0eWxlID0ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiB0aGlzLnNpemUgKyAncHgnLFxuICAgICAgICAgICAgICAgIGhlaWdodDogdGhpcy5zaXplICsgJ3B4JyxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGJ1aWxkVGV4dEF2YXRhcihhdmF0YXJTb3VyY2U6IFNvdXJjZSk6IHZvaWQge1xuICAgICAgICB0aGlzLmF2YXRhclRleHQgPSBhdmF0YXJTb3VyY2UuZ2V0QXZhdGFyKCt0aGlzLnRleHRNYXhpbXVtTGVuZ3RoKTtcbiAgICAgICAgdGhpcy5hdmF0YXJTdHlsZSA9IHRoaXMuZ2V0VGV4dHVhbFN0eWxlKGF2YXRhclNvdXJjZS5nZXRWYWx1ZSgpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGJ1aWxkSW1hZ2VBdmF0YXIoYXZhdGFyU291cmNlOiBTb3VyY2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hdmF0YXJTdHlsZSA9IHRoaXMuZ2V0SW1hZ2VTdHlsZSgpO1xuICAgICAgICB0aGlzLmF2YXRhclNyYyA9IGF2YXRhclNvdXJjZS5nZXRBdmF0YXIoK3RoaXMuc2l6ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBpbml0aWFscyBzdHlsZVxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0VGV4dHVhbFN0eWxlKGF2YXRhclZhbHVlOiBzdHJpbmcpOiBTdHlsZSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0ZXh0QWxpZ246ICdjZW50ZXInLFxuICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiB0aGlzLmJvcmRlclJhZGl1cyB8fCAnMTAwJScsXG4gICAgICAgICAgICB0ZXh0VHJhbnNmb3JtOiAndXBwZXJjYXNlJyxcbiAgICAgICAgICAgIGNvbG9yOiB0aGlzLmZnQ29sb3IsXG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoaXMuYmdDb2xvciA/IHRoaXMuYmdDb2xvciA6IHRoaXMuYXZhdGFyU2VydmljZS5nZXRSYW5kb21Db2xvcihhdmF0YXJWYWx1ZSksXG4gICAgICAgICAgICBmb250OiBNYXRoLmZsb29yKCt0aGlzLnNpemUgLyB0aGlzLnRleHRTaXplUmF0aW8pICsgJ3B4IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWYnLFxuICAgICAgICAgICAgbGluZUhlaWdodDogdGhpcy5zaXplICsgJ3B4JyxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGltYWdlIHN0eWxlXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRJbWFnZVN0eWxlKCk6IFN0eWxlIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG1heFdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICBib3JkZXJSYWRpdXM6IHRoaXMuYm9yZGVyUmFkaXVzIHx8ICcxMDAlJyxcbiAgICAgICAgICAgIHdpZHRoOiB0aGlzLnNpemUgKyAncHgnLFxuICAgICAgICAgICAgaGVpZ2h0OiB0aGlzLnNpemUgKyAncHgnLFxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
|
|
190
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2F2YXRhci9jb21wb25lbnQvYXZhdGFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBMkIsTUFBTSxlQUFlLENBQUM7Ozs7QUFPekU7O0dBRUc7QUE0QkgsTUFBTSxPQUFPLGVBQWU7SUFvQnhCLFlBQW9DLGFBQTRCO1FBQTVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBZmhELFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUVsQixZQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ2pCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLHNCQUFpQixHQUFHLENBQUMsQ0FBQztRQUUvQixjQUFTLEdBQWtCLElBQUksQ0FBQztRQUNoQyxlQUFVLEdBQWtCLElBQUksQ0FBQztRQUNqQyxnQkFBVyxHQUFVLEVBQUUsQ0FBQztRQUN4QixjQUFTLEdBQVUsRUFBRSxDQUFDO1FBRXJCLGlCQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbEIsWUFBTyxHQUFhLEVBQUUsQ0FBQztJQUVvQyxDQUFDO0lBRXBFOztPQUVHO0lBQ0ksV0FBVyxDQUFDLE9BQXNCO1FBQ3JDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUN4QixLQUFLLE1BQU0sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUNoRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUNwQixTQUFTO2FBQ1o7WUFFRCxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsWUFBWSxDQUFD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LFlBQVk7c0JBQTNCLEtBQUs7Z0JBQ1UsaUJBQWlCO3NCQUFoQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1NvdXJjZX0gZnJvbSAnLi4vc291cmNlcy9zb3VyY2UnO1xuaW1wb3J0IHtBdmF0YXJTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL2F2YXRhci5zZXJ2aWNlJztcblxudHlwZSBTdHlsZSA9IFBhcnRpYWw8Q1NTU3R5bGVEZWNsYXJhdGlvbj47XG5cbi8qKlxuICogU2hvdyBhbiBhdmF0YXIgZnJvbSBkaWZmZXJlbnQgc291cmNlc1xuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25hdHVyYWwtYXZhdGFyJyxcbiAgICBzdHlsZXM6IFtcbiAgICAgICAgYFxuICAgICAgICAgICAgOmhvc3Qge1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgYCxcbiAgICBdLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY29udGFpbmVyXCIgW25nU3R5bGVdPVwiaG9zdFN0eWxlXCI+XG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJhdmF0YXJTcmNcIlxuICAgICAgICAgICAgICAgIFtzcmNdPVwiYXZhdGFyU3JjXCJcbiAgICAgICAgICAgICAgICBbd2lkdGhdPVwic2l6ZVwiXG4gICAgICAgICAgICAgICAgW2hlaWdodF09XCJzaXplXCJcbiAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJhdmF0YXJTdHlsZVwiXG4gICAgICAgICAgICAgICAgKGVycm9yKT1cInRyeU5leHRTb3VyY2UoKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhdmF0YXItY29udGVudFwiXG4gICAgICAgICAgICAgICAgbG9hZGluZz1cImxhenlcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhdmF0YXJUZXh0XCIgY2xhc3M9XCJhdmF0YXItY29udGVudFwiIFtuZ1N0eWxlXT1cImF2YXRhclN0eWxlXCI+XG4gICAgICAgICAgICAgICAge3sgYXZhdGFyVGV4dCB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIGAsXG59KVxuZXhwb3J0IGNsYXNzIEF2YXRhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KCkgcHVibGljIGltYWdlPzogc3RyaW5nIHwgbnVsbDtcbiAgICBASW5wdXQoKSBwdWJsaWMgaW5pdGlhbHM/OiBzdHJpbmcgfCBudWxsO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBncmF2YXRhcj86IHN0cmluZyB8IG51bGw7XG5cbiAgICBASW5wdXQoKSBwdWJsaWMgc2l6ZSA9IDUwO1xuICAgIEBJbnB1dCgpIHB1YmxpYyB0ZXh0U2l6ZVJhdGlvID0gMztcbiAgICBASW5wdXQoKSBwdWJsaWMgYmdDb2xvcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBmZ0NvbG9yID0gJyNGRkYnO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBib3JkZXJSYWRpdXMgPSAnJztcbiAgICBASW5wdXQoKSBwdWJsaWMgdGV4dE1heGltdW1MZW5ndGggPSAwO1xuXG4gICAgcHVibGljIGF2YXRhclNyYzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgcHVibGljIGF2YXRhclRleHQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIHB1YmxpYyBhdmF0YXJTdHlsZTogU3R5bGUgPSB7fTtcbiAgICBwdWJsaWMgaG9zdFN0eWxlOiBTdHlsZSA9IHt9O1xuXG4gICAgcHJpdmF0ZSBjdXJyZW50SW5kZXggPSAtMTtcbiAgICBwcml2YXRlIHNvdXJjZXM6IFNvdXJjZVtdID0gW107XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBhdmF0YXJTZXJ2aWNlOiBBdmF0YXJTZXJ2aWNlKSB7fVxuXG4gICAgLyoqXG4gICAgICogRGV0ZWN0IGlucHV0cyBjaGFuZ2VcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICB0aGlzLnNvdXJjZXMubGVuZ3RoID0gMDtcbiAgICAgICAgZm9yIChjb25zdCBbcHJvcE5hbWUsIGNyZWF0b3JdIG9mIHRoaXMuYXZhdGFyU2VydmljZS5nZXRDcmVhdG9ycygpKSB7XG4gICAgICAgICAgICBpZiAoIWNoYW5nZXNbcHJvcE5hbWVdKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IGNoYW5nZXNbcHJvcE5hbWVdLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgIGlmIChjdXJyZW50VmFsdWUgJiYgdHlwZW9mIGN1cnJlbnRWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNvdXJjZXMucHVzaChuZXcgY3JlYXRvcihjdXJyZW50VmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHJlaW5pdGlhbGl6ZSB0aGUgYXZhdGFyIGNvbXBvbmVudCB3aGVuIGEgc291cmNlIHByb3BlcnR5IHZhbHVlIGhhcyBjaGFuZ2VkXG4gICAgICAgIC8vIHRoZSBmYWxsYmFjayBzeXN0ZW0gbXVzdCBiZSByZS1pbnZva2VkIHdpdGggdGhlIG5ldyB2YWx1ZXMuXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZUF2YXRhcigpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZldGNoIGF2YXRhciBzb3VyY2VcbiAgICAgKi9cbiAgICBwdWJsaWMgdHJ5TmV4dFNvdXJjZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcHJldmlvdXNTb3VyY2UgPSB0aGlzLnNvdXJjZXNbdGhpcy5jdXJyZW50SW5kZXhdO1xuICAgICAgICBpZiAocHJldmlvdXNTb3VyY2UpIHtcbiAgICAgICAgICAgIHRoaXMuYXZhdGFyU2VydmljZS5tYXJrU291cmNlQXNGYWlsZWQocHJldmlvdXNTb3VyY2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc291cmNlID0gdGhpcy5maW5kTmV4dFNvdXJjZSgpO1xuICAgICAgICBpZiAoIXNvdXJjZSkge1xuICAgICAgICAgICAgdGhpcy5jbGVhckF2YXRhcigpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNvdXJjZS5pc1RleHR1YWwoKSkge1xuICAgICAgICAgICAgdGhpcy5idWlsZFRleHRBdmF0YXIoc291cmNlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuYnVpbGRJbWFnZUF2YXRhcihzb3VyY2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaW5kTmV4dFNvdXJjZSgpOiBTb3VyY2UgfCBudWxsIHtcbiAgICAgICAgd2hpbGUgKCsrdGhpcy5jdXJyZW50SW5kZXggPCB0aGlzLnNvdXJjZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBzb3VyY2UgPSB0aGlzLnNvdXJjZXNbdGhpcy5jdXJyZW50SW5kZXhdO1xuICAgICAgICAgICAgaWYgKHNvdXJjZSAmJiAhdGhpcy5hdmF0YXJTZXJ2aWNlLnNvdXJjZUhhc0ZhaWxlZEJlZm9yZShzb3VyY2UpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNvdXJjZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemUgdGhlIGF2YXRhciBjb21wb25lbnQgYW5kIGl0cyBmYWxsYmFjayBzeXN0ZW1cbiAgICAgKi9cbiAgICBwcml2YXRlIGluaXRpYWxpemVBdmF0YXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VycmVudEluZGV4ID0gLTE7XG4gICAgICAgIGlmICh0aGlzLnNvdXJjZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy50cnlOZXh0U291cmNlKCk7XG4gICAgICAgICAgICB0aGlzLmhvc3RTdHlsZSA9IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogdGhpcy5zaXplICsgJ3B4JyxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHRoaXMuc2l6ZSArICdweCcsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGVhckF2YXRhcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hdmF0YXJTcmMgPSBudWxsO1xuICAgICAgICB0aGlzLmF2YXRhclRleHQgPSBudWxsO1xuICAgICAgICB0aGlzLmF2YXRhclN0eWxlID0ge307XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBidWlsZFRleHRBdmF0YXIoYXZhdGFyU291cmNlOiBTb3VyY2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbGVhckF2YXRhcigpO1xuICAgICAgICB0aGlzLmF2YXRhclRleHQgPSBhdmF0YXJTb3VyY2UuZ2V0QXZhdGFyKCt0aGlzLnRleHRNYXhpbXVtTGVuZ3RoKTtcbiAgICAgICAgdGhpcy5hdmF0YXJTdHlsZSA9IHRoaXMuZ2V0VGV4dHVhbFN0eWxlKGF2YXRhclNvdXJjZS5nZXRWYWx1ZSgpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGJ1aWxkSW1hZ2VBdmF0YXIoYXZhdGFyU291cmNlOiBTb3VyY2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbGVhckF2YXRhcigpO1xuICAgICAgICB0aGlzLmF2YXRhclNyYyA9IGF2YXRhclNvdXJjZS5nZXRBdmF0YXIoK3RoaXMuc2l6ZSk7XG4gICAgICAgIHRoaXMuYXZhdGFyU3R5bGUgPSB0aGlzLmdldEltYWdlU3R5bGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGluaXRpYWxzIHN0eWxlXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRUZXh0dWFsU3R5bGUoYXZhdGFyVmFsdWU6IHN0cmluZyk6IFN0eWxlIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gICAgICAgICAgICBib3JkZXJSYWRpdXM6IHRoaXMuYm9yZGVyUmFkaXVzIHx8ICcxMDAlJyxcbiAgICAgICAgICAgIHRleHRUcmFuc2Zvcm06ICd1cHBlcmNhc2UnLFxuICAgICAgICAgICAgY29sb3I6IHRoaXMuZmdDb2xvcixcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhpcy5iZ0NvbG9yID8gdGhpcy5iZ0NvbG9yIDogdGhpcy5hdmF0YXJTZXJ2aWNlLmdldFJhbmRvbUNvbG9yKGF2YXRhclZhbHVlKSxcbiAgICAgICAgICAgIGZvbnQ6IE1hdGguZmxvb3IoK3RoaXMuc2l6ZSAvIHRoaXMudGV4dFNpemVSYXRpbykgKyAncHggSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZicsXG4gICAgICAgICAgICBsaW5lSGVpZ2h0OiB0aGlzLnNpemUgKyAncHgnLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgaW1hZ2Ugc3R5bGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldEltYWdlU3R5bGUoKTogU3R5bGUge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbWF4V2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgIGJvcmRlclJhZGl1czogdGhpcy5ib3JkZXJSYWRpdXMgfHwgJzEwMCUnLFxuICAgICAgICAgICAgd2lkdGg6IHRoaXMuc2l6ZSArICdweCcsXG4gICAgICAgICAgICBoZWlnaHQ6IHRoaXMuc2l6ZSArICdweCcsXG4gICAgICAgIH07XG4gICAgfVxufVxuIl19
|
|
@@ -260,7 +260,7 @@ export class NaturalInputComponent {
|
|
|
260
260
|
};
|
|
261
261
|
const injectorTokens = this.createProviders(data);
|
|
262
262
|
const component = dropdownFacet.component;
|
|
263
|
-
this.dropdownRef = this.dropdownService.open(component, this.element, injectorTokens, dropdownFacet.showValidateButton
|
|
263
|
+
this.dropdownRef = this.dropdownService.open(component, this.element, injectorTokens, dropdownFacet.showValidateButton !== undefined ? dropdownFacet.showValidateButton : true);
|
|
264
264
|
this.dropdownRef.closed.subscribe(result => {
|
|
265
265
|
this.dropdownRef = null;
|
|
266
266
|
if (result !== undefined) {
|
|
@@ -325,4 +325,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
|
|
|
325
325
|
type: HostListener,
|
|
326
326
|
args: ['focus']
|
|
327
327
|
}] } });
|
|
328
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvc2VhcmNoL2lucHV0L2lucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL3NlYXJjaC9pbnB1dC9pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUlULFlBQVksRUFDWixZQUFZLEVBQ1osUUFBUSxFQUNSLEtBQUssRUFJTCxNQUFNLEVBR04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxXQUFXLEVBQTRELE1BQU0sZ0JBQWdCLENBQUM7QUFDdEcsT0FBTyxFQUFvQixTQUFTLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUVwRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUN2RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN0RSxPQUFPLEVBQ0gscUJBQXFCLEdBR3hCLE1BQU0sd0NBQXdDLENBQUM7QUFDaEQsT0FBTyxFQUFDLHNCQUFzQixFQUE2QixNQUFNLDRDQUE0QyxDQUFDOzs7Ozs7Ozs7O0FBSzlHLG9FQUFvRTtBQUNwRSxNQUFNLE9BQU8sdUJBQXVCO0lBQ3pCLFlBQVksQ0FBQyxPQUEyQixFQUFFLElBQXdDO1FBQ3JGLE9BQU8sQ0FBQyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDO0lBQ3hDLENBQUM7Q0FDSjtBQUVELFNBQVMsZ0JBQWdCLENBQUMsU0FBNEI7SUFDbEQsT0FBTyxHQUE0QixFQUFFO1FBQ2pDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDdEIsT0FBTyxFQUFDLFNBQVMsRUFB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U0FBUyxrTEMxRHhCLDZ5Q0FnQ0E7MkZEc0JhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDSSxlQUFlO29NQVFvQixNQUFNO3NCQUFsRCxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBS08sS0FBSztzQkFBL0MsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUtsQixXQUFXO3NCQUExQixLQUFLO2dCQUtVLGVBQWU7c0JBQTlCLEtBQUs7Z0JBS1UsU0FBUztzQkFBeEIsS0FBSztnQkFLVSxNQUFNO3NCQUFyQixLQUFLO2dCQUtvQixlQUFlO3NCQUF4QyxNQUFNO2dCQUttQixPQUFPO3NCQUFoQyxNQUFNO2dCQW1EQSxLQUFLO3NCQURYLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBDb21wb25lbnRSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFN0YXRpY1Byb3ZpZGVyLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1Db250cm9sLCBGb3JtR3JvdXBEaXJlY3RpdmUsIE5nRm9ybSwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yRm59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7RXJyb3JTdGF0ZU1hdGNoZXIsIE1hdFJpcHBsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQge0ZpbHRlckdyb3VwQ29uZGl0aW9uRmllbGR9IGZyb20gJy4uL2NsYXNzZXMvZ3JhcGhxbC1kb2N0cmluZS50eXBlcyc7XG5pbXBvcnQge2dldEZhY2V0RnJvbVNlbGVjdGlvbn0gZnJvbSAnLi4vY2xhc3Nlcy91dGlscyc7XG5pbXBvcnQge05hdHVyYWxEcm9wZG93blJlZn0gZnJvbSAnLi4vZHJvcGRvd24tY29udGFpbmVyL2Ryb3Bkb3duLXJlZic7XG5pbXBvcnQge1xuICAgIE5BVFVSQUxfRFJPUERPV05fREFUQSxcbiAgICBOYXR1cmFsRHJvcGRvd25EYXRhLFxuICAgIE5hdHVyYWxEcm9wZG93blNlcnZpY2UsXG59IGZyb20gJy4uL2Ryb3Bkb3duLWNvbnRhaW5lci9kcm9wZG93bi5zZXJ2aWNlJztcbmltcG9ydCB7RmFjZXRTZWxlY3RvckNvbXBvbmVudCwgRmFjZXRTZWxlY3RvckNvbmZpZ3VyYXRpb259IGZyb20gJy4uL2ZhY2V0LXNlbGVjdG9yL2ZhY2V0LXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQge0Ryb3Bkb3duQ29tcG9uZW50fSBmcm9tICcuLi90eXBlcy9kcm9wZG93bi1jb21wb25lbnQnO1xuaW1wb3J0IHtEcm9wZG93bkZhY2V0LCBGYWNldCwgRmxhZ0ZhY2V0LCBOYXR1cmFsU2VhcmNoRmFjZXRzfSBmcm9tICcuLi90eXBlcy9mYWNldCc7XG5pbXBvcnQge0Ryb3Bkb3duUmVzdWx0LCBOYXR1cmFsU2VhcmNoU2VsZWN0aW9ufSBmcm9tICcuLi90eXBlcy92YWx1ZXMnO1xuXG4vLyBSZXF1aXJlZCB0byBjaGVjayBpbnZhbGlkIGZpZWxkcyB3aGVuIGluaXRpYWxpemluZyBuYXR1cmFsLXNlYXJjaFxuZXhwb3J0IGNsYXNzIEFsd2F5c0Vycm9yU3RhdGVNYXRjaGVyIGltcGxlbWVudHMgRXJyb3JTdGF0ZU1hdGNoZXIge1xuICAgIHB1YmxpYyBpc0Vycm9yU3RhdGUoY29udHJvbDogRm9ybUNvbnRyb2wgfCBudWxsLCBmb3JtOiBGb3JtR3JvdXBEaXJlY3RpdmUgfCBOZ0Zvcm0gfCBudWxsKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIWNvbnRyb2wgJiYgY29udHJvbC5pbnZhbGlkO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gaXNDb21wb25lbnRWYWxpZChjb21wb25lbnQ6IERyb3Bkb3duQ29tcG9uZW50KTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgICBpZiAoIWNvbXBvbmVudC5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiB7Y29tcG9uZW50OiB0cnVlfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmF0dXJhbC1pbnB1dCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnB1dC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiBDb250cm9scyB0aGUgcmlwcGxlIGVmZmVjdCwgdXNlZCB3aGVuIG9wZW5pbmcgYSBkcm9wZG93blxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoTWF0UmlwcGxlLCB7c3RhdGljOiB0cnVlfSkgcHVibGljIHJpcHBsZSE6IE1hdFJpcHBsZTtcblxuICAgIC8qKlxuICAgICAqIE5hdGl2ZSBlbGVtZW50IHJlZiBmb3IgPGlucHV0PiByZWxhdGVkIHRvIHRoaXMgPG5hdHVyYWwtaW5wdXQ+IGNvbXBvbmVudFxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ2lucHV0Jywge3N0YXRpYzogdHJ1ZX0pIHB1YmxpYyBpbnB1dCE6IEVsZW1lbnRSZWY7XG5cbiAgICAvKipcbiAgICAgKiBMYWJlbCBmb3IgdGhpcyBmaWVsZFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlcj86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIGZpZWxkIG9uIHdoaWNoIGRvIGEgZ2xvYmFsIHNlYXJjaCAod2l0aG91dCBmYWNldClcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgc2VhcmNoRmllbGROYW1lID0gJ3NlYXJjaCc7XG5cbiAgICAvKipcbiAgICAgKiBTZWxlY3RlZCBzZXR0ZWQgZm9yIHRoaXMgY29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHNlbGVjdGlvbjogTmF0dXJhbFNlYXJjaFNlbGVjdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogQXZhaWxhYmxlIGZhY2V0cywgYWxsb3dzIHRoZSB1c2VyIHRvIHBpY2sgb25lLCB0aGFuIGdlbmVyYXRlZCB0aGVuIGEgc2VsZWN0aW9uXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGZhY2V0cyE6IE5hdHVyYWxTZWFyY2hGYWNldHM7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0cyB3aGVuIHVzZXIgYSBhZGRlZC91cGRhdGVkL2RlbGV0ZWQgYSBzZWFyY2ggKGZyb20gZ2xvYmFsIGNvbnRleHQgb3IgZnJvbSBmYWNldClcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8TmF0dXJhbFNlYXJjaFNlbGVjdGlvbj4oKTtcblxuICAgIC8qKlxuICAgICAqIEVtaXRzIHdoZW4gdXNlciByZW1vdmVzIHRoZSBzZWFyY2ggYnkgcHJlc3NpbmcgdGhlIGNyb3NzIGljb25cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IGNsZWFyZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE5hdHVyYWxJbnB1dENvbXBvbmVudD4oKTtcblxuICAgIC8qKlxuICAgICAqIFNlbGVjdGVkIGZhY2V0IGZyb20gdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIGZhY2V0c1xuICAgICAqL1xuICAgIHB1YmxpYyBmYWNldDogRmFjZXQgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIENvbnRyb2xsZXIgZm9yIHRoZSBpbnB1dCBmaWVsZFxuICAgICAqL1xuICAgIHB1YmxpYyBmb3JtQ3RybDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcblxuICAgIC8qKlxuICAgICAqIEN1c3RvbWVyIGVycm9yIG1hdGNoZXIgdGhhdCBzaG91bGQgdmFsaWRhdGUgb24gZWFjaCBjaGFuZ2UgKGluY2x1ZGluZyBpbml0aWFsaXNhdGlvbilcbiAgICAgKi9cbiAgICBwdWJsaWMgZXJyb3JNYXRjaGVyID0gbmV3IEFsd2F5c0Vycm9yU3RhdGVNYXRjaGVyKCk7XG5cbiAgICAvKipcbiAgICAgKiBSZWZlcmVuY2Ugb2YgdGhlIG9wZW5lZCBkcm9wZG93biBjb250YWluZXJcbiAgICAgKi9cbiAgICBwcml2YXRlIGRyb3Bkb3duUmVmOiBOYXR1cmFsRHJvcGRvd25SZWYgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFJlZmVyZW5jZSBvZiB0aGUgY29tcG9uZW50IGluc2lkZSB0aGUgZHJvcGRvd24gY29udGFpbmVyXG4gICAgICovXG4gICAgcHJpdmF0ZSBkcm9wZG93bkNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPERyb3Bkb3duQ29tcG9uZW50PiB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogIE1pbmltdW0gaW5wdXQgbGVuZ3RoIChudW1iZXIgb2YgY2hhcnMpXG4gICAgICogIFNlZSBsZW5ndGggYXR0cmlidXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBtaW5MZW5ndGggPSA1O1xuXG4gICAgLyoqXG4gICAgICogU2l6ZSBvZiB0aGUgaW5wdXQgKG51bWJlciBvZiBjaGFycylcbiAgICAgKiBNYXRjaCB0aGUgaW5wdXQuc2l6ZSBhdHRyaWJ1dGVcbiAgICAgKi9cbiAgICBwdWJsaWMgbGVuZ3RoID0gdGhpcy5taW5MZW5ndGg7XG5cbiAgICAvKipcbiAgICAgKiBGbGFnLCB0aGF0LCBpZiBtYXJrZWQgYXMgeWVzLCBwcmV2ZW50cyB0aGUgb3BlbmluZyBvZiB0aGUgZHJvcGRvd25cbiAgICAgKiBJcyB1c2VkIHRvIHByZXZlbnQgZHJvcGRvd24gb3BlbmluZyB3aGVuIG5hdHVyYWwtc2VhcmNoIHRha2VzIHRoZSBmb2N1cyBmcm9tIHBhcmVudCBjb250ZXh0IChsaWtlIG9uIG1vZGFsIG9wZW5pbmcpXG4gICAgICovXG4gICAgcHJpdmF0ZSBuZXV0cmFsaXplRHJvcGRvd25PcGVuaW5nID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBDdXN0b20gbWFuYWdlbWVudCBmb3IgdGFraW5nIHRoZSBmb2N1cyBmcm9tIHBhcmVudCBjb250ZXh0XG4gICAgICogV2hlbiBmb2N1c2luZyBtYW51YWxseSBvbiB0aGUgPGlucHV0PiwgYSBkcm9wZG93biBpcyBvcGVuZWRcbiAgICAgKiBCdXQgd2hlbiB0aGUgZm9jdXMgaXMgZ2l2ZW4gZnJvbSBhbmd1bGFyIGluIGEgcGFyZW50IGNvbnRleHQgKGxpa2UgYSBkaWFsb2cpIHRoZSBkcm9wZG93biB3b3VsZCBvcGVuIGFuZCB3ZSBkb24ndCB3YW50IGl0LlxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzJylcbiAgICBwdWJsaWMgZm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubmV1dHJhbGl6ZURyb3Bkb3duT3BlbmluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB0aGlzLm5ldXRyYWxpemVEcm9wZG93bk9wZW5pbmcgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBkcm9wZG93blNlcnZpY2U6IE5hdHVyYWxEcm9wZG93blNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICkge31cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vcGVuRHJvcGRvd24oKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmRyb3Bkb3duUmVmKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtQ3RybC52YWx1ZSAhPT0gJycpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRyb3Bkb3duUmVmLmNsb3NlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICghdGhpcy5wbGFjZWhvbGRlcikge1xuICAgICAgICAgICAgdGhpcy5wbGFjZWhvbGRlciA9ICRsb2NhbGl6ZWBSZWNoZXJjaGVgO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGxhY2Vob2xkZXJTaXplID0gKHRoaXMuZmFjZXQgPyB0aGlzLmZhY2V0LmRpc3BsYXkubGVuZ3RoIDogdGhpcy5wbGFjZWhvbGRlci5sZW5ndGgpICogMC42NjtcbiAgICAgICAgdGhpcy5sZW5ndGggPSBNYXRoLm1heCh0aGlzLm1pbkxlbmd0aCwgTWF0aC5jZWlsKHBsYWNlaG9sZGVyU2l6ZSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZHJvcGRvd25Db21wb25lbnRSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd25Db21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmZhY2V0cyAmJiB0aGlzLnNlbGVjdGlvbikge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmNsZWFyKCkpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZmFjZXRzICYmIHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmZhY2V0ID0gZ2V0RmFjZXRGcm9tU2VsZWN0aW9uKHRoaXMuZmFjZXRzLCB0aGlzLnNlbGVjdGlvbik7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmlzRHJvcGRvd24oKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRyb3Bkb3duQ29tcG9uZW50ID0gdGhpcy5jcmVhdGVDb21wb25lbnQodGhpcy5mYWNldCBhcyBEcm9wZG93bkZhY2V0PEZhY2V0U2VsZWN0b3JDb25maWd1cmF0aW9uPik7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1DdHJsLnNldFZhbGlkYXRvcnMoW2lzQ29tcG9uZW50VmFsaWQoZHJvcGRvd25Db21wb25lbnQpXSk7XG4gICAgICAgICAgICAgICAgZHJvcGRvd25Db21wb25lbnQucmVuZGVyZWRWYWx1ZS5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1DdHJsLnNldFZhbHVlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0ZsYWcoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybUN0cmwuc2V0VmFsdWUoJycpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbiAmJlxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uLmZpZWxkID09PSB0aGlzLnNlYXJjaEZpZWxkTmFtZSAmJlxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uLmNvbmRpdGlvbi5saWtlXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAvLyBnbG9iYWwgc2VhcmNoIG1vZGVcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1DdHJsLnNldFZhbHVlKHRoaXMuc2VsZWN0aW9uLmNvbmRpdGlvbi5saWtlLnZhbHVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gSWYgY29tcG9uZW50IGlzIGludmFsaWQgKG5vIGZhY2V0IGFuZCBub3QgYSBnbG9iYWwgc2VhcmNoKSwgY2xlYXIgZnJvbSByZXN1bHQgYW5kIGRlc3Ryb3kgY29tcG9uZW50XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmNsZWFyKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHNlYXJjaChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmZvcm1DdHJsLnZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc0Ryb3Bkb3duKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZvcm1DdHJsLnZhbGlkICYmIHRoaXMuZm9ybUN0cmwuZGlydHkpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQodGhpcy5nZXRTZWxlY3Rpb24oe2xpa2U6IHt2YWx1ZTogdGhpcy5mb3JtQ3RybC52YWx1ZX19KSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmFjZXQgPSBudWxsO1xuICAgICAgICB0aGlzLnNlbGVjdGlvbiA9IG51bGw7XG4gICAgICAgIHRoaXMuZm9ybUN0cmwuc2V0VmFsdWUobnVsbCk7XG4gICAgICAgIHRoaXMuY2xlYXJlZC5lbWl0KHRoaXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvcGVuRHJvcGRvd24oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRyb3Bkb3duUmVmIHx8IHRoaXMubmV1dHJhbGl6ZURyb3Bkb3duT3BlbmluZykge1xuICAgICAgICAgICAgLy8gUHJldmVudCB0byBvcGVuIG11bHRpcGxlIGRyb3Bkb3ducy5cbiAgICAgICAgICAgIC8vIEhhcHBlbnMgYXMgd2Ugb3BlbiBvbiBcImZvY3VzXCIsIGFuZCBhbHQrdGFiIHJlLWFjdGl2YXRlIGZvY3VzIG9uIGFuIGVsZW1lbnQgdGhhdCBhbHJlYWR5IGhhZFxuICAgICAgICAgICAgLy8gZm9jdXMgd2hlbiBsZWF2aW5nIHdpbmRvdyB3aXRoIGFub3RoZXIgYWx0K3RhYlxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5sYXVuY2hSaXBwbGUoKTtcblxuICAgICAgICAvLyBJZiB0aGVyZSBpcyBubyBmYWNldCBhbmQgbm8gc3RyaW5nIHR5cGVkLCBzaG93IHBhbmVsIHRvIHNlbGVjdCB0aGUgZmFjZXRcbiAgICAgICAgaWYgKCF0aGlzLmZhY2V0ICYmICF0aGlzLmZvcm1DdHJsLnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5GYWNldFNlbGVjdG9yRHJvcGRvd24oKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIElmIGEgZmFjZXQgaXMgc2VsZWN0ZWQsIG9wZW4gc3BlY2lmaWMgY29tcG9uZW50IGRyb3Bkb3duXG4gICAgICAgICAgICB0aGlzLm9wZW5UeXBlRHJvcGRvd24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBpc0Ryb3Bkb3duKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISEodGhpcy5mYWNldCAmJiAodGhpcy5mYWNldCBhcyBEcm9wZG93bkZhY2V0PHVua25vd24+KS5jb21wb25lbnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0ZsYWcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhISh0aGlzLmZhY2V0ICYmICh0aGlzLmZhY2V0IGFzIEZsYWdGYWNldCkuY29uZGl0aW9uKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUNvbXBvbmVudChmYWNldDogRHJvcGRvd25GYWNldDx1bmtub3duPik6IERyb3Bkb3duQ29tcG9uZW50IHtcbiAgICAgICAgLy8gQWx3YXlzIGRlc3Ryb3kgYW5kIHJlY3JlYXRlIGNvbXBvbmVudFxuICAgICAgICAvLyBUb2RvIDogdGVzdCBpZiBmYWNldCBoYXMgY2hhbmdlZCwgaWYgbm90IHJlLXVzZSB0aGUgY29tcG9uZW50XG4gICAgICAgIGlmICh0aGlzLmRyb3Bkb3duQ29tcG9uZW50UmVmKSB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duQ29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbmRpdGlvbiA9IHRoaXMuc2VsZWN0aW9uID8gKHRoaXMuc2VsZWN0aW9uLmNvbmRpdGlvbiBhcyBGaWx0ZXJHcm91cENvbmRpdGlvbkZpZWxkKSA6IG51bGw7XG4gICAgICAgIGNvbnN0IGRhdGE6IE5hdHVyYWxEcm9wZG93bkRhdGEgPSB7XG4gICAgICAgICAgICBjb25kaXRpb246IGNvbmRpdGlvbixcbiAgICAgICAgICAgIGNvbmZpZ3VyYXRpb246IGZhY2V0LmNvbmZpZ3VyYXRpb24sXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe3Byb3ZpZGVyczogdGhpcy5jcmVhdGVQcm92aWRlcnMoZGF0YSksIHBhcmVudDogdGhpcy5pbmplY3Rvcn0pO1xuICAgICAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3Rvcnk8RHJvcGRvd25Db21wb25lbnQ+KGZhY2V0LmNvbXBvbmVudCk7XG4gICAgICAgIHRoaXMuZHJvcGRvd25Db21wb25lbnRSZWYgPSBmYWN0b3J5LmNyZWF0ZShpbmplY3Rvcik7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZHJvcGRvd25Db21wb25lbnRSZWYuaW5zdGFuY2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVQcm92aWRlcnMoZGF0YTogTmF0dXJhbERyb3Bkb3duRGF0YSk6IFN0YXRpY1Byb3ZpZGVyW10ge1xuICAgICAgICAvLyBDdXN0b21pemUgaW5qZWN0b3IgdG8gYWxsb3cgZGF0YSBhbmQgZHJvcGRvd24gcmVmZXJlbmNlIGluamVjdGlvbiBpbiBjb21wb25lbnRcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBOYXR1cmFsRHJvcGRvd25SZWYsXG4gICAgICAgICAgICAgICAgdXNlVmFsdWU6IG51bGwsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByb3ZpZGU6IE5BVFVSQUxfRFJPUERPV05fREFUQSxcbiAgICAgICAgICAgICAgICB1c2VWYWx1ZTogZGF0YSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsYXVuY2hSaXBwbGUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJpcHBsZVJlZiA9IHRoaXMucmlwcGxlLmxhdW5jaCh7XG4gICAgICAgICAgICBwZXJzaXN0ZW50OiB0cnVlLFxuICAgICAgICAgICAgY2VudGVyZWQ6IHRydWUsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJpcHBsZVJlZi5mYWRlT3V0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvcGVuRmFjZXRTZWxlY3RvckRyb3Bkb3duKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZmFjZXRzIHx8ICh0aGlzLmZhY2V0cyAmJiAhdGhpcy5mYWNldHMubGVuZ3RoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGF0YTogTmF0dXJhbERyb3Bkb3duRGF0YTxGYWNldFNlbGVjdG9yQ29uZmlndXJhdGlvbj4gPSB7XG4gICAgICAgICAgICBjb25kaXRpb246IHt9LFxuICAgICAgICAgICAgY29uZmlndXJhdGlvbjoge1xuICAgICAgICAgICAgICAgIGZhY2V0czogdGhpcy5mYWNldHMsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGluamVjdG9yVG9rZW5zID0gdGhpcy5jcmVhdGVQcm92aWRlcnMoZGF0YSk7XG4gICAgICAgIHRoaXMuZHJvcGRvd25SZWYgPSB0aGlzLmRyb3Bkb3duU2VydmljZS5vcGVuKEZhY2V0U2VsZWN0b3JDb21wb25lbnQsIHRoaXMuZWxlbWVudCwgaW5qZWN0b3JUb2tlbnMsIGZhbHNlKTtcbiAgICAgICAgdGhpcy5kcm9wZG93blJlZi5jbG9zZWQuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duUmVmID0gbnVsbDtcbiAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuZmFjZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRGYWNldChyZXN1bHQuZmFjZXQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0LmNvbmRpdGlvbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFZhbHVlKHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9wZW5UeXBlRHJvcGRvd24oKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc0Ryb3Bkb3duKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRyb3Bkb3duRmFjZXQgPSB0aGlzLmZhY2V0IGFzIERyb3Bkb3duRmFjZXQ8dW5rbm93bj47XG5cbiAgICAgICAgY29uc3QgZGF0YTogTmF0dXJhbERyb3Bkb3duRGF0YSA9IHtcbiAgICAgICAgICAgIGNvbmRpdGlvbjogdGhpcy5zZWxlY3Rpb24gPyB0aGlzLnNlbGVjdGlvbi5jb25kaXRpb24gOiBudWxsLFxuICAgICAgICAgICAgY29uZmlndXJhdGlvbjogZHJvcGRvd25GYWNldC5jb25maWd1cmF0aW9uLFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGluamVjdG9yVG9rZW5zID0gdGhpcy5jcmVhdGVQcm92aWRlcnMoZGF0YSk7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IGRyb3Bkb3duRmFjZXQuY29tcG9uZW50O1xuICAgICAgICB0aGlzLmRyb3Bkb3duUmVmID0gdGhpcy5kcm9wZG93blNlcnZpY2Uub3BlbihcbiAgICAgICAgICAgIGNvbXBvbmVudCxcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudCxcbiAgICAgICAgICAgIGluamVjdG9yVG9rZW5zLFxuICAgICAgICAgICAgZHJvcGRvd25GYWNldC5zaG93VmFsaWRhdGVCdXR0b24gfHwgZmFsc2UsXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5kcm9wZG93blJlZi5jbG9zZWQuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duUmVmID0gbnVsbDtcbiAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUocmVzdWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRGYWNldChmYWNldDogRmFjZXQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mYWNldCA9IGZhY2V0O1xuXG4gICAgICAgIGlmICh0aGlzLmlzRHJvcGRvd24oKSkge1xuICAgICAgICAgICAgdGhpcy5vcGVuVHlwZURyb3Bkb3duKCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0ZsYWcoKSkge1xuICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZSh7XG4gICAgICAgICAgICAgICAgY29uZGl0aW9uOiAoZmFjZXQgYXMgRmxhZ0ZhY2V0KS5jb25kaXRpb24sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRWYWx1ZShyZXN1bHQ6IERyb3Bkb3duUmVzdWx0KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZhY2V0KSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHRoaXMuZ2V0U2VsZWN0aW9uKHJlc3VsdC5jb25kaXRpb24pKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2VsZWN0aW9uKGNvbmRpdGlvbjogTmF0dXJhbFNlYXJjaFNlbGVjdGlvblsnY29uZGl0aW9uJ10pOiBOYXR1cmFsU2VhcmNoU2VsZWN0aW9uIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uOiBOYXR1cmFsU2VhcmNoU2VsZWN0aW9uID0ge1xuICAgICAgICAgICAgZmllbGQ6IHRoaXMuZmFjZXQgPyB0aGlzLmZhY2V0LmZpZWxkIDogdGhpcy5zZWFyY2hGaWVsZE5hbWUsXG4gICAgICAgICAgICBjb25kaXRpb246IGNvbmRpdGlvbixcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAodGhpcy5mYWNldCAmJiB0aGlzLmZhY2V0Lm5hbWUpIHtcbiAgICAgICAgICAgIHNlbGVjdGlvbi5uYW1lID0gdGhpcy5mYWNldC5uYW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHNlbGVjdGlvbjtcbiAgICB9XG59XG4iLCI8IS0tIGNsaWNrIGNvbmRpdGlvbiBzaG91bGQgbWF0Y2ggdG8gYWxsb3cgY2xpY2sgYWN0aW9uIG9ubHkgd2hlbiBubyBvdGhlciBidXR0b24gaXMgdmlzaWJsZSAtLT5cbjxtYXQtZm9ybS1maWVsZCAjZmllbGQgbWF0UmlwcGxlIChjbGljayk9XCIhc2VsZWN0aW9uICYmICEoZmFjZXQgJiYgIXNlbGVjdGlvbikgPyBvcGVuRHJvcGRvd24oKSA6IG51bGxcIj5cbiAgICA8bWF0LWxhYmVsICpuZ0lmPVwiZmFjZXRcIj57eyBmYWNldC5kaXNwbGF5IH19PC9tYXQtbGFiZWw+XG4gICAgPG1hdC1sYWJlbCAqbmdJZj1cIiFmYWNldFwiPnt7IHBsYWNlaG9sZGVyIH19PC9tYXQtbGFiZWw+XG5cbiAgICA8aW5wdXRcbiAgICAgICAgI2lucHV0XG4gICAgICAgIChibHVyKT1cInNlYXJjaCgkZXZlbnQpXCJcbiAgICAgICAgKGtleWRvd24uZW50ZXIpPVwic2VhcmNoKCRldmVudClcIlxuICAgICAgICBbYXR0ci5zaXplXT1cImxlbmd0aFwiXG4gICAgICAgIFtlcnJvclN0YXRlTWF0Y2hlcl09XCJlcnJvck1hdGNoZXJcIlxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUN0cmxcIlxuICAgICAgICBbcmVhZG9ubHldPVwiKGlzRHJvcGRvd24oKSAmJiAhIXNlbGVjdGlvbikgfHwgaXNGbGFnKClcIlxuICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICBtYXRJbnB1dFxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgLz5cblxuICAgIDwhLS0gVE9ETyA6IHJlcGxhY2UgdGhpcyB2b2lkIGJ1dHRvbiAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwiIWZhY2V0ICYmICFzZWxlY3Rpb25cIiBjbGFzcz1cInNlYXJjaC1pY29uXCIgbWF0UHJlZml4PlxuICAgICAgICA8bmF0dXJhbC1pY29uIG5hbWU9XCJzZWFyY2hcIj48L25hdHVyYWwtaWNvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxidXR0b24gKGNsaWNrKT1cImNsZWFyKClcIiAqbmdJZj1cInNlbGVjdGlvblwiIG1hdC1pY29uLWJ1dHRvbiBtYXRTdWZmaXg+XG4gICAgICAgIDxuYXR1cmFsLWljb24gbmFtZT1cImNsb3NlXCI+PC9uYXR1cmFsLWljb24+XG4gICAgPC9idXR0b24+XG5cbiAgICA8YnV0dG9uIChjbGljayk9XCJjbGVhcigpXCIgKm5nSWY9XCJmYWNldCAmJiAhc2VsZWN0aW9uXCIgbWF0LWljb24tYnV0dG9uIG1hdFN1ZmZpeD5cbiAgICAgICAgPG5hdHVyYWwtaWNvbiBuYW1lPVwidW5kb1wiPjwvbmF0dXJhbC1pY29uPlxuICAgIDwvYnV0dG9uPlxuPC9tYXQtZm9ybS1maWVsZD5cbjxkaXYgY2xhc3M9XCJoaWRlXCI+e3sgZm9ybUN0cmwudmFsdWUgPyBmb3JtQ3RybC52YWx1ZSA6IGZhY2V0ID8gZmFjZXQuZGlzcGxheSA6IHBsYWNlaG9sZGVyIH19PC9kaXY+XG4iXX0=
|
|
328
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvc2VhcmNoL2lucHV0L2lucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL3NlYXJjaC9pbnB1dC9pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUlULFlBQVksRUFDWixZQUFZLEVBQ1osUUFBUSxFQUNSLEtBQUssRUFJTCxNQUFNLEVBR04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxXQUFXLEVBQTRELE1BQU0sZ0JBQWdCLENBQUM7QUFDdEcsT0FBTyxFQUFvQixTQUFTLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUVwRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUN2RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN0RSxPQUFPLEVBQ0gscUJBQXFCLEdBR3hCLE1BQU0sd0NBQXdDLENBQUM7QUFDaEQsT0FBTyxFQUFDLHNCQUFzQixFQUE2QixNQUFNLDRDQUE0QyxDQUFDOzs7Ozs7Ozs7O0FBSzlHLG9FQUFvRTtBQUNwRSxNQUFNLE9BQU8sdUJBQXVCO0lBQ3pCLFlBQVksQ0FBQyxPQUEyQixFQUFFLElBQXdDO1FBQ3JGLE9BQU8sQ0FBQyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDO0lBQ3hDLENBQUM7Q0FDSjtBQUVELFNBQVMsZ0JBQWdCLENBQUMsU0FBNEI7SUFDbEQsT0FBTyxHQUE0QixFQUFFO1FBQ2pDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDdEIsT0FBTyxFQUFDLFNBQVMsRUFB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Q0FBQztJQUNyQixDQUFDOztrSEFyVlEscUJBQXFCO3NHQUFyQixxQkFBcUIscVVBSW5CLFNBQVMsa0xDMUR4Qiw2eUNBZ0NBOzJGRHNCYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0ksZUFBZTtvTUFRb0IsTUFBTTtzQkFBbEQsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUtPLEtBQUs7c0JBQS9DLFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFLbEIsV0FBVztzQkFBMUIsS0FBSztnQkFLVSxlQUFlO3NCQUE5QixLQUFLO2dCQUtVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBS1UsTUFBTTtzQkFBckIsS0FBSztnQkFLb0IsZUFBZTtzQkFBeEMsTUFBTTtnQkFLbUIsT0FBTztzQkFBaEMsTUFBTTtnQkFtREEsS0FBSztzQkFEWCxZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBTdGF0aWNQcm92aWRlcixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtQ29udHJvbCwgRm9ybUdyb3VwRGlyZWN0aXZlLCBOZ0Zvcm0sIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0Vycm9yU3RhdGVNYXRjaGVyLCBNYXRSaXBwbGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHtGaWx0ZXJHcm91cENvbmRpdGlvbkZpZWxkfSBmcm9tICcuLi9jbGFzc2VzL2dyYXBocWwtZG9jdHJpbmUudHlwZXMnO1xuaW1wb3J0IHtnZXRGYWNldEZyb21TZWxlY3Rpb259IGZyb20gJy4uL2NsYXNzZXMvdXRpbHMnO1xuaW1wb3J0IHtOYXR1cmFsRHJvcGRvd25SZWZ9IGZyb20gJy4uL2Ryb3Bkb3duLWNvbnRhaW5lci9kcm9wZG93bi1yZWYnO1xuaW1wb3J0IHtcbiAgICBOQVRVUkFMX0RST1BET1dOX0RBVEEsXG4gICAgTmF0dXJhbERyb3Bkb3duRGF0YSxcbiAgICBOYXR1cmFsRHJvcGRvd25TZXJ2aWNlLFxufSBmcm9tICcuLi9kcm9wZG93bi1jb250YWluZXIvZHJvcGRvd24uc2VydmljZSc7XG5pbXBvcnQge0ZhY2V0U2VsZWN0b3JDb21wb25lbnQsIEZhY2V0U2VsZWN0b3JDb25maWd1cmF0aW9ufSBmcm9tICcuLi9mYWNldC1zZWxlY3Rvci9mYWNldC1zZWxlY3Rvci5jb21wb25lbnQnO1xuaW1wb3J0IHtEcm9wZG93bkNvbXBvbmVudH0gZnJvbSAnLi4vdHlwZXMvZHJvcGRvd24tY29tcG9uZW50JztcbmltcG9ydCB7RHJvcGRvd25GYWNldCwgRmFjZXQsIEZsYWdGYWNldCwgTmF0dXJhbFNlYXJjaEZhY2V0c30gZnJvbSAnLi4vdHlwZXMvZmFjZXQnO1xuaW1wb3J0IHtEcm9wZG93blJlc3VsdCwgTmF0dXJhbFNlYXJjaFNlbGVjdGlvbn0gZnJvbSAnLi4vdHlwZXMvdmFsdWVzJztcblxuLy8gUmVxdWlyZWQgdG8gY2hlY2sgaW52YWxpZCBmaWVsZHMgd2hlbiBpbml0aWFsaXppbmcgbmF0dXJhbC1zZWFyY2hcbmV4cG9ydCBjbGFzcyBBbHdheXNFcnJvclN0YXRlTWF0Y2hlciBpbXBsZW1lbnRzIEVycm9yU3RhdGVNYXRjaGVyIHtcbiAgICBwdWJsaWMgaXNFcnJvclN0YXRlKGNvbnRyb2w6IEZvcm1Db250cm9sIHwgbnVsbCwgZm9ybTogRm9ybUdyb3VwRGlyZWN0aXZlIHwgTmdGb3JtIHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISFjb250cm9sICYmIGNvbnRyb2wuaW52YWxpZDtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGlzQ29tcG9uZW50VmFsaWQoY29tcG9uZW50OiBEcm9wZG93bkNvbXBvbmVudCk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgICAgaWYgKCFjb21wb25lbnQuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4ge2NvbXBvbmVudDogdHJ1ZX07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25hdHVyYWwtaW5wdXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTmF0dXJhbElucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogQ29udHJvbHMgdGhlIHJpcHBsZSBlZmZlY3QsIHVzZWQgd2hlbiBvcGVuaW5nIGEgZHJvcGRvd25cbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKE1hdFJpcHBsZSwge3N0YXRpYzogdHJ1ZX0pIHB1YmxpYyByaXBwbGUhOiBNYXRSaXBwbGU7XG5cbiAgICAvKipcbiAgICAgKiBOYXRpdmUgZWxlbWVudCByZWYgZm9yIDxpbnB1dD4gcmVsYXRlZCB0byB0aGlzIDxuYXR1cmFsLWlucHV0PiBjb21wb25lbnRcbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCdpbnB1dCcsIHtzdGF0aWM6IHRydWV9KSBwdWJsaWMgaW5wdXQhOiBFbGVtZW50UmVmO1xuXG4gICAgLyoqXG4gICAgICogTGFiZWwgZm9yIHRoaXMgZmllbGRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBOYW1lIG9mIHRoZSBmaWVsZCBvbiB3aGljaCBkbyBhIGdsb2JhbCBzZWFyY2ggKHdpdGhvdXQgZmFjZXQpXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIHNlYXJjaEZpZWxkTmFtZSA9ICdzZWFyY2gnO1xuXG4gICAgLyoqXG4gICAgICogU2VsZWN0ZWQgc2V0dGVkIGZvciB0aGlzIGNvbXBvbmVudFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3Rpb246IE5hdHVyYWxTZWFyY2hTZWxlY3Rpb24gfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIEF2YWlsYWJsZSBmYWNldHMsIGFsbG93cyB0aGUgdXNlciB0byBwaWNrIG9uZSwgdGhhbiBnZW5lcmF0ZWQgdGhlbiBhIHNlbGVjdGlvblxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBmYWNldHMhOiBOYXR1cmFsU2VhcmNoRmFjZXRzO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgd2hlbiB1c2VyIGEgYWRkZWQvdXBkYXRlZC9kZWxldGVkIGEgc2VhcmNoIChmcm9tIGdsb2JhbCBjb250ZXh0IG9yIGZyb20gZmFjZXQpXG4gICAgICovXG4gICAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPE5hdHVyYWxTZWFyY2hTZWxlY3Rpb24+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0cyB3aGVuIHVzZXIgcmVtb3ZlcyB0aGUgc2VhcmNoIGJ5IHByZXNzaW5nIHRoZSBjcm9zcyBpY29uXG4gICAgICovXG4gICAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBjbGVhcmVkID0gbmV3IEV2ZW50RW1pdHRlcjxOYXR1cmFsSW5wdXRDb21wb25lbnQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBTZWxlY3RlZCBmYWNldCBmcm9tIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSBmYWNldHNcbiAgICAgKi9cbiAgICBwdWJsaWMgZmFjZXQ6IEZhY2V0IHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBDb250cm9sbGVyIGZvciB0aGUgaW5wdXQgZmllbGRcbiAgICAgKi9cbiAgICBwdWJsaWMgZm9ybUN0cmw6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG5cbiAgICAvKipcbiAgICAgKiBDdXN0b21lciBlcnJvciBtYXRjaGVyIHRoYXQgc2hvdWxkIHZhbGlkYXRlIG9uIGVhY2ggY2hhbmdlIChpbmNsdWRpbmcgaW5pdGlhbGlzYXRpb24pXG4gICAgICovXG4gICAgcHVibGljIGVycm9yTWF0Y2hlciA9IG5ldyBBbHdheXNFcnJvclN0YXRlTWF0Y2hlcigpO1xuXG4gICAgLyoqXG4gICAgICogUmVmZXJlbmNlIG9mIHRoZSBvcGVuZWQgZHJvcGRvd24gY29udGFpbmVyXG4gICAgICovXG4gICAgcHJpdmF0ZSBkcm9wZG93blJlZjogTmF0dXJhbERyb3Bkb3duUmVmIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBSZWZlcmVuY2Ugb2YgdGhlIGNvbXBvbmVudCBpbnNpZGUgdGhlIGRyb3Bkb3duIGNvbnRhaW5lclxuICAgICAqL1xuICAgIHByaXZhdGUgZHJvcGRvd25Db21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxEcm9wZG93bkNvbXBvbmVudD4gfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqICBNaW5pbXVtIGlucHV0IGxlbmd0aCAobnVtYmVyIG9mIGNoYXJzKVxuICAgICAqICBTZWUgbGVuZ3RoIGF0dHJpYnV0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbWluTGVuZ3RoID0gNTtcblxuICAgIC8qKlxuICAgICAqIFNpemUgb2YgdGhlIGlucHV0IChudW1iZXIgb2YgY2hhcnMpXG4gICAgICogTWF0Y2ggdGhlIGlucHV0LnNpemUgYXR0cmlidXRlXG4gICAgICovXG4gICAgcHVibGljIGxlbmd0aCA9IHRoaXMubWluTGVuZ3RoO1xuXG4gICAgLyoqXG4gICAgICogRmxhZywgdGhhdCwgaWYgbWFya2VkIGFzIHllcywgcHJldmVudHMgdGhlIG9wZW5pbmcgb2YgdGhlIGRyb3Bkb3duXG4gICAgICogSXMgdXNlZCB0byBwcmV2ZW50IGRyb3Bkb3duIG9wZW5pbmcgd2hlbiBuYXR1cmFsLXNlYXJjaCB0YWtlcyB0aGUgZm9jdXMgZnJvbSBwYXJlbnQgY29udGV4dCAobGlrZSBvbiBtb2RhbCBvcGVuaW5nKVxuICAgICAqL1xuICAgIHByaXZhdGUgbmV1dHJhbGl6ZURyb3Bkb3duT3BlbmluZyA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQ3VzdG9tIG1hbmFnZW1lbnQgZm9yIHRha2luZyB0aGUgZm9jdXMgZnJvbSBwYXJlbnQgY29udGV4dFxuICAgICAqIFdoZW4gZm9jdXNpbmcgbWFudWFsbHkgb24gdGhlIDxpbnB1dD4sIGEgZHJvcGRvd24gaXMgb3BlbmVkXG4gICAgICogQnV0IHdoZW4gdGhlIGZvY3VzIGlzIGdpdmVuIGZyb20gYW5ndWxhciBpbiBhIHBhcmVudCBjb250ZXh0IChsaWtlIGEgZGlhbG9nKSB0aGUgZHJvcGRvd24gd291bGQgb3BlbiBhbmQgd2UgZG9uJ3Qgd2FudCBpdC5cbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdmb2N1cycpXG4gICAgcHVibGljIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5ldXRyYWxpemVEcm9wZG93bk9wZW5pbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgdGhpcy5uZXV0cmFsaXplRHJvcGRvd25PcGVuaW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZHJvcGRvd25TZXJ2aWNlOiBOYXR1cmFsRHJvcGRvd25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMub3BlbkRyb3Bkb3duKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsICgpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5kcm9wZG93blJlZikge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybUN0cmwudmFsdWUgIT09ICcnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kcm9wZG93blJlZi5jbG9zZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIXRoaXMucGxhY2Vob2xkZXIpIHtcbiAgICAgICAgICAgIHRoaXMucGxhY2Vob2xkZXIgPSAkbG9jYWxpemVgUmVjaGVyY2hlYDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBsYWNlaG9sZGVyU2l6ZSA9ICh0aGlzLmZhY2V0ID8gdGhpcy5mYWNldC5kaXNwbGF5Lmxlbmd0aCA6IHRoaXMucGxhY2Vob2xkZXIubGVuZ3RoKSAqIDAuNjY7XG4gICAgICAgIHRoaXMubGVuZ3RoID0gTWF0aC5tYXgodGhpcy5taW5MZW5ndGgsIE1hdGguY2VpbChwbGFjZWhvbGRlclNpemUpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRyb3Bkb3duQ29tcG9uZW50UmVmKSB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duQ29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5mYWNldHMgJiYgdGhpcy5zZWxlY3Rpb24pIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jbGVhcigpKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmZhY2V0cyAmJiB0aGlzLnNlbGVjdGlvbikge1xuICAgICAgICAgICAgdGhpcy5mYWNldCA9IGdldEZhY2V0RnJvbVNlbGVjdGlvbih0aGlzLmZhY2V0cywgdGhpcy5zZWxlY3Rpb24pO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5pc0Ryb3Bkb3duKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkcm9wZG93bkNvbXBvbmVudCA9IHRoaXMuY3JlYXRlQ29tcG9uZW50KHRoaXMuZmFjZXQgYXMgRHJvcGRvd25GYWNldDxGYWNldFNlbGVjdG9yQ29uZmlndXJhdGlvbj4pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtQ3RybC5zZXRWYWxpZGF0b3JzKFtpc0NvbXBvbmVudFZhbGlkKGRyb3Bkb3duQ29tcG9uZW50KV0pO1xuICAgICAgICAgICAgICAgIGRyb3Bkb3duQ29tcG9uZW50LnJlbmRlcmVkVmFsdWUuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtQ3RybC5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNGbGFnKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1DdHJsLnNldFZhbHVlKCcnKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24gJiZcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5maWVsZCA9PT0gdGhpcy5zZWFyY2hGaWVsZE5hbWUgJiZcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5jb25kaXRpb24ubGlrZVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgLy8gZ2xvYmFsIHNlYXJjaCBtb2RlXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtQ3RybC5zZXRWYWx1ZSh0aGlzLnNlbGVjdGlvbi5jb25kaXRpb24ubGlrZS52YWx1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIElmIGNvbXBvbmVudCBpcyBpbnZhbGlkIChubyBmYWNldCBhbmQgbm90IGEgZ2xvYmFsIHNlYXJjaCksIGNsZWFyIGZyb20gcmVzdWx0IGFuZCBkZXN0cm95IGNvbXBvbmVudFxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jbGVhcigpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzZWFyY2goZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIGlmICghdGhpcy5mb3JtQ3RybC52YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNEcm9wZG93bigpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5mb3JtQ3RybC52YWxpZCAmJiB0aGlzLmZvcm1DdHJsLmRpcnR5KSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHRoaXMuZ2V0U2VsZWN0aW9uKHtsaWtlOiB7dmFsdWU6IHRoaXMuZm9ybUN0cmwudmFsdWV9fSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGNsZWFyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZhY2V0ID0gbnVsbDtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24gPSBudWxsO1xuICAgICAgICB0aGlzLmZvcm1DdHJsLnNldFZhbHVlKG51bGwpO1xuICAgICAgICB0aGlzLmNsZWFyZWQuZW1pdCh0aGlzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3BlbkRyb3Bkb3duKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kcm9wZG93blJlZiB8fCB0aGlzLm5ldXRyYWxpemVEcm9wZG93bk9wZW5pbmcpIHtcbiAgICAgICAgICAgIC8vIFByZXZlbnQgdG8gb3BlbiBtdWx0aXBsZSBkcm9wZG93bnMuXG4gICAgICAgICAgICAvLyBIYXBwZW5zIGFzIHdlIG9wZW4gb24gXCJmb2N1c1wiLCBhbmQgYWx0K3RhYiByZS1hY3RpdmF0ZSBmb2N1cyBvbiBhbiBlbGVtZW50IHRoYXQgYWxyZWFkeSBoYWRcbiAgICAgICAgICAgIC8vIGZvY3VzIHdoZW4gbGVhdmluZyB3aW5kb3cgd2l0aCBhbm90aGVyIGFsdCt0YWJcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubGF1bmNoUmlwcGxlKCk7XG5cbiAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gZmFjZXQgYW5kIG5vIHN0cmluZyB0eXBlZCwgc2hvdyBwYW5lbCB0byBzZWxlY3QgdGhlIGZhY2V0XG4gICAgICAgIGlmICghdGhpcy5mYWNldCAmJiAhdGhpcy5mb3JtQ3RybC52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5vcGVuRmFjZXRTZWxlY3RvckRyb3Bkb3duKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBJZiBhIGZhY2V0IGlzIHNlbGVjdGVkLCBvcGVuIHNwZWNpZmljIGNvbXBvbmVudCBkcm9wZG93blxuICAgICAgICAgICAgdGhpcy5vcGVuVHlwZURyb3Bkb3duKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgaXNEcm9wZG93bigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhKHRoaXMuZmFjZXQgJiYgKHRoaXMuZmFjZXQgYXMgRHJvcGRvd25GYWNldDx1bmtub3duPikuY29tcG9uZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNGbGFnKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISEodGhpcy5mYWNldCAmJiAodGhpcy5mYWNldCBhcyBGbGFnRmFjZXQpLmNvbmRpdGlvbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVDb21wb25lbnQoZmFjZXQ6IERyb3Bkb3duRmFjZXQ8dW5rbm93bj4pOiBEcm9wZG93bkNvbXBvbmVudCB7XG4gICAgICAgIC8vIEFsd2F5cyBkZXN0cm95IGFuZCByZWNyZWF0ZSBjb21wb25lbnRcbiAgICAgICAgLy8gVG9kbyA6IHRlc3QgaWYgZmFjZXQgaGFzIGNoYW5nZWQsIGlmIG5vdCByZS11c2UgdGhlIGNvbXBvbmVudFxuICAgICAgICBpZiAodGhpcy5kcm9wZG93bkNvbXBvbmVudFJlZikge1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93bkNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb25kaXRpb24gPSB0aGlzLnNlbGVjdGlvbiA/ICh0aGlzLnNlbGVjdGlvbi5jb25kaXRpb24gYXMgRmlsdGVyR3JvdXBDb25kaXRpb25GaWVsZCkgOiBudWxsO1xuICAgICAgICBjb25zdCBkYXRhOiBOYXR1cmFsRHJvcGRvd25EYXRhID0ge1xuICAgICAgICAgICAgY29uZGl0aW9uOiBjb25kaXRpb24sXG4gICAgICAgICAgICBjb25maWd1cmF0aW9uOiBmYWNldC5jb25maWd1cmF0aW9uLFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtwcm92aWRlcnM6IHRoaXMuY3JlYXRlUHJvdmlkZXJzKGRhdGEpLCBwYXJlbnQ6IHRoaXMuaW5qZWN0b3J9KTtcbiAgICAgICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5PERyb3Bkb3duQ29tcG9uZW50PihmYWNldC5jb21wb25lbnQpO1xuICAgICAgICB0aGlzLmRyb3Bkb3duQ29tcG9uZW50UmVmID0gZmFjdG9yeS5jcmVhdGUoaW5qZWN0b3IpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmRyb3Bkb3duQ29tcG9uZW50UmVmLmluc3RhbmNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlUHJvdmlkZXJzKGRhdGE6IE5hdHVyYWxEcm9wZG93bkRhdGEpOiBTdGF0aWNQcm92aWRlcltdIHtcbiAgICAgICAgLy8gQ3VzdG9taXplIGluamVjdG9yIHRvIGFsbG93IGRhdGEgYW5kIGRyb3Bkb3duIHJlZmVyZW5jZSBpbmplY3Rpb24gaW4gY29tcG9uZW50XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogTmF0dXJhbERyb3Bkb3duUmVmLFxuICAgICAgICAgICAgICAgIHVzZVZhbHVlOiBudWxsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBOQVRVUkFMX0RST1BET1dOX0RBVEEsXG4gICAgICAgICAgICAgICAgdXNlVmFsdWU6IGRhdGEsXG4gICAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHByaXZhdGUgbGF1bmNoUmlwcGxlKCk6IHZvaWQge1xuICAgICAgICBjb25zdCByaXBwbGVSZWYgPSB0aGlzLnJpcHBsZS5sYXVuY2goe1xuICAgICAgICAgICAgcGVyc2lzdGVudDogdHJ1ZSxcbiAgICAgICAgICAgIGNlbnRlcmVkOiB0cnVlLFxuICAgICAgICB9KTtcblxuICAgICAgICByaXBwbGVSZWYuZmFkZU91dCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb3BlbkZhY2V0U2VsZWN0b3JEcm9wZG93bigpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmZhY2V0cyB8fCAodGhpcy5mYWNldHMgJiYgIXRoaXMuZmFjZXRzLmxlbmd0aCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRhdGE6IE5hdHVyYWxEcm9wZG93bkRhdGE8RmFjZXRTZWxlY3RvckNvbmZpZ3VyYXRpb24+ID0ge1xuICAgICAgICAgICAgY29uZGl0aW9uOiB7fSxcbiAgICAgICAgICAgIGNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICAgICAgICBmYWNldHM6IHRoaXMuZmFjZXRzLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBpbmplY3RvclRva2VucyA9IHRoaXMuY3JlYXRlUHJvdmlkZXJzKGRhdGEpO1xuICAgICAgICB0aGlzLmRyb3Bkb3duUmVmID0gdGhpcy5kcm9wZG93blNlcnZpY2Uub3BlbihGYWNldFNlbGVjdG9yQ29tcG9uZW50LCB0aGlzLmVsZW1lbnQsIGluamVjdG9yVG9rZW5zLCBmYWxzZSk7XG4gICAgICAgIHRoaXMuZHJvcGRvd25SZWYuY2xvc2VkLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93blJlZiA9IG51bGw7XG4gICAgICAgICAgICBpZiAocmVzdWx0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmZhY2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0RmFjZXQocmVzdWx0LmZhY2V0KTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdC5jb25kaXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZShyZXN1bHQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvcGVuVHlwZURyb3Bkb3duKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNEcm9wZG93bigpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkcm9wZG93bkZhY2V0ID0gdGhpcy5mYWNldCBhcyBEcm9wZG93bkZhY2V0PHVua25vd24+O1xuXG4gICAgICAgIGNvbnN0IGRhdGE6IE5hdHVyYWxEcm9wZG93bkRhdGEgPSB7XG4gICAgICAgICAgICBjb25kaXRpb246IHRoaXMuc2VsZWN0aW9uID8gdGhpcy5zZWxlY3Rpb24uY29uZGl0aW9uIDogbnVsbCxcbiAgICAgICAgICAgIGNvbmZpZ3VyYXRpb246IGRyb3Bkb3duRmFjZXQuY29uZmlndXJhdGlvbixcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBpbmplY3RvclRva2VucyA9IHRoaXMuY3JlYXRlUHJvdmlkZXJzKGRhdGEpO1xuICAgICAgICBjb25zdCBjb21wb25lbnQgPSBkcm9wZG93bkZhY2V0LmNvbXBvbmVudDtcbiAgICAgICAgdGhpcy5kcm9wZG93blJlZiA9IHRoaXMuZHJvcGRvd25TZXJ2aWNlLm9wZW4oXG4gICAgICAgICAgICBjb21wb25lbnQsXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQsXG4gICAgICAgICAgICBpbmplY3RvclRva2VucyxcbiAgICAgICAgICAgIGRyb3Bkb3duRmFjZXQuc2hvd1ZhbGlkYXRlQnV0dG9uICE9PSB1bmRlZmluZWQgPyBkcm9wZG93bkZhY2V0LnNob3dWYWxpZGF0ZUJ1dHRvbiA6IHRydWUsXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5kcm9wZG93blJlZi5jbG9zZWQuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duUmVmID0gbnVsbDtcbiAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUocmVzdWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRGYWNldChmYWNldDogRmFjZXQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mYWNldCA9IGZhY2V0O1xuXG4gICAgICAgIGlmICh0aGlzLmlzRHJvcGRvd24oKSkge1xuICAgICAgICAgICAgdGhpcy5vcGVuVHlwZURyb3Bkb3duKCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0ZsYWcoKSkge1xuICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZSh7XG4gICAgICAgICAgICAgICAgY29uZGl0aW9uOiAoZmFjZXQgYXMgRmxhZ0ZhY2V0KS5jb25kaXRpb24sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRWYWx1ZShyZXN1bHQ6IERyb3Bkb3duUmVzdWx0KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZhY2V0KSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHRoaXMuZ2V0U2VsZWN0aW9uKHJlc3VsdC5jb25kaXRpb24pKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2VsZWN0aW9uKGNvbmRpdGlvbjogTmF0dXJhbFNlYXJjaFNlbGVjdGlvblsnY29uZGl0aW9uJ10pOiBOYXR1cmFsU2VhcmNoU2VsZWN0aW9uIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uOiBOYXR1cmFsU2VhcmNoU2VsZWN0aW9uID0ge1xuICAgICAgICAgICAgZmllbGQ6IHRoaXMuZmFjZXQgPyB0aGlzLmZhY2V0LmZpZWxkIDogdGhpcy5zZWFyY2hGaWVsZE5hbWUsXG4gICAgICAgICAgICBjb25kaXRpb246IGNvbmRpdGlvbixcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAodGhpcy5mYWNldCAmJiB0aGlzLmZhY2V0Lm5hbWUpIHtcbiAgICAgICAgICAgIHNlbGVjdGlvbi5uYW1lID0gdGhpcy5mYWNldC5uYW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHNlbGVjdGlvbjtcbiAgICB9XG59XG4iLCI8IS0tIGNsaWNrIGNvbmRpdGlvbiBzaG91bGQgbWF0Y2ggdG8gYWxsb3cgY2xpY2sgYWN0aW9uIG9ubHkgd2hlbiBubyBvdGhlciBidXR0b24gaXMgdmlzaWJsZSAtLT5cbjxtYXQtZm9ybS1maWVsZCAjZmllbGQgbWF0UmlwcGxlIChjbGljayk9XCIhc2VsZWN0aW9uICYmICEoZmFjZXQgJiYgIXNlbGVjdGlvbikgPyBvcGVuRHJvcGRvd24oKSA6IG51bGxcIj5cbiAgICA8bWF0LWxhYmVsICpuZ0lmPVwiZmFjZXRcIj57eyBmYWNldC5kaXNwbGF5IH19PC9tYXQtbGFiZWw+XG4gICAgPG1hdC1sYWJlbCAqbmdJZj1cIiFmYWNldFwiPnt7IHBsYWNlaG9sZGVyIH19PC9tYXQtbGFiZWw+XG5cbiAgICA8aW5wdXRcbiAgICAgICAgI2lucHV0XG4gICAgICAgIChibHVyKT1cInNlYXJjaCgkZXZlbnQpXCJcbiAgICAgICAgKGtleWRvd24uZW50ZXIpPVwic2VhcmNoKCRldmVudClcIlxuICAgICAgICBbYXR0ci5zaXplXT1cImxlbmd0aFwiXG4gICAgICAgIFtlcnJvclN0YXRlTWF0Y2hlcl09XCJlcnJvck1hdGNoZXJcIlxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUN0cmxcIlxuICAgICAgICBbcmVhZG9ubHldPVwiKGlzRHJvcGRvd24oKSAmJiAhIXNlbGVjdGlvbikgfHwgaXNGbGFnKClcIlxuICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICBtYXRJbnB1dFxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgLz5cblxuICAgIDwhLS0gVE9ETyA6IHJlcGxhY2UgdGhpcyB2b2lkIGJ1dHRvbiAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwiIWZhY2V0ICYmICFzZWxlY3Rpb25cIiBjbGFzcz1cInNlYXJjaC1pY29uXCIgbWF0UHJlZml4PlxuICAgICAgICA8bmF0dXJhbC1pY29uIG5hbWU9XCJzZWFyY2hcIj48L25hdHVyYWwtaWNvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxidXR0b24gKGNsaWNrKT1cImNsZWFyKClcIiAqbmdJZj1cInNlbGVjdGlvblwiIG1hdC1pY29uLWJ1dHRvbiBtYXRTdWZmaXg+XG4gICAgICAgIDxuYXR1cmFsLWljb24gbmFtZT1cImNsb3NlXCI+PC9uYXR1cmFsLWljb24+XG4gICAgPC9idXR0b24+XG5cbiAgICA8YnV0dG9uIChjbGljayk9XCJjbGVhcigpXCIgKm5nSWY9XCJmYWNldCAmJiAhc2VsZWN0aW9uXCIgbWF0LWljb24tYnV0dG9uIG1hdFN1ZmZpeD5cbiAgICAgICAgPG5hdHVyYWwtaWNvbiBuYW1lPVwidW5kb1wiPjwvbmF0dXJhbC1pY29uPlxuICAgIDwvYnV0dG9uPlxuPC9tYXQtZm9ybS1maWVsZD5cbjxkaXYgY2xhc3M9XCJoaWRlXCI+e3sgZm9ybUN0cmwudmFsdWUgPyBmb3JtQ3RybC52YWx1ZSA6IGZhY2V0ID8gZmFjZXQuZGlzcGxheSA6IHBsYWNlaG9sZGVyIH19PC9kaXY+XG4iXX0=
|
|
@@ -13,6 +13,10 @@ export class NaturalSelectEnumComponent extends AbstractSelect {
|
|
|
13
13
|
super(ngControl);
|
|
14
14
|
this.enumService = enumService;
|
|
15
15
|
this.ngControl = ngControl;
|
|
16
|
+
/**
|
|
17
|
+
* Whether the user should be allowed to select multiple options
|
|
18
|
+
*/
|
|
19
|
+
this.multiple = false;
|
|
16
20
|
}
|
|
17
21
|
ngOnInit() {
|
|
18
22
|
super.ngOnInit();
|
|
@@ -23,10 +27,10 @@ export class NaturalSelectEnumComponent extends AbstractSelect {
|
|
|
23
27
|
}
|
|
24
28
|
}
|
|
25
29
|
NaturalSelectEnumComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NaturalSelectEnumComponent, deps: [{ token: i1.NaturalEnumService }, { token: i2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
26
|
-
NaturalSelectEnumComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: NaturalSelectEnumComponent, selector: "natural-select-enum", inputs: { enumName: "enumName", nullLabel: "nullLabel", optionDisabled: "optionDisabled" }, usesInheritance: true, ngImport: i0, template: "<mat-form-field>\n <mat-label>{{ placeholder }}</mat-label>\n <mat-select\n (selectionChange)=\"propagateValue($event.value)\"\n [formControl]=\"internalCtrl\"\n (blur)=\"touch(); blur.emit()\"\n [errorStateMatcher]=\"matcher\"\n >\n <mat-option *ngIf=\"nullLabel\" [value]=\"null\">{{ nullLabel }}</mat-option>\n <mat-option\n *ngFor=\"let item of items | async\"\n [value]=\"item.value\"\n [disabled]=\"optionDisabled ? optionDisabled(item) : false\"\n >\n {{ item.name | capitalize }}\n </mat-option>\n </mat-select>\n\n <mat-error *ngIf=\"hasRequiredError()\" i18n>Ce champ est requis</mat-error></mat-form-field\n>\n", components: [{ type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i4.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i5.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i3.MatLabel, selector: "mat-label" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.MatError, selector: "mat-error", inputs: ["id"] }], pipes: { "async": i6.AsyncPipe, "capitalize": i7.NaturalCapitalizePipe } });
|
|
30
|
+
NaturalSelectEnumComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: NaturalSelectEnumComponent, selector: "natural-select-enum", inputs: { enumName: "enumName", nullLabel: "nullLabel", optionDisabled: "optionDisabled", multiple: "multiple" }, usesInheritance: true, ngImport: i0, template: "<mat-form-field>\n <mat-label>{{ placeholder }}</mat-label>\n <mat-select\n (selectionChange)=\"propagateValue($event.value)\"\n [formControl]=\"internalCtrl\"\n (blur)=\"touch(); blur.emit()\"\n [errorStateMatcher]=\"matcher\"\n [multiple]=\"multiple\"\n >\n <mat-option *ngIf=\"nullLabel\" [value]=\"null\">{{ nullLabel }}</mat-option>\n <mat-option\n *ngFor=\"let item of items | async\"\n [value]=\"item.value\"\n [disabled]=\"optionDisabled ? optionDisabled(item) : false\"\n >\n {{ item.name | capitalize }}\n </mat-option>\n </mat-select>\n\n <mat-error *ngIf=\"hasRequiredError()\" i18n>Ce champ est requis</mat-error></mat-form-field\n>\n", styles: [":host{display:flex;flex-direction:column}\n"], components: [{ type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i4.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i5.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i3.MatLabel, selector: "mat-label" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.MatError, selector: "mat-error", inputs: ["id"] }], pipes: { "async": i6.AsyncPipe, "capitalize": i7.NaturalCapitalizePipe } });
|
|
27
31
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NaturalSelectEnumComponent, decorators: [{
|
|
28
32
|
type: Component,
|
|
29
|
-
args: [{ selector: 'natural-select-enum', template: "<mat-form-field>\n <mat-label>{{ placeholder }}</mat-label>\n <mat-select\n (selectionChange)=\"propagateValue($event.value)\"\n [formControl]=\"internalCtrl\"\n (blur)=\"touch(); blur.emit()\"\n [errorStateMatcher]=\"matcher\"\n >\n <mat-option *ngIf=\"nullLabel\" [value]=\"null\">{{ nullLabel }}</mat-option>\n <mat-option\n *ngFor=\"let item of items | async\"\n [value]=\"item.value\"\n [disabled]=\"optionDisabled ? optionDisabled(item) : false\"\n >\n {{ item.name | capitalize }}\n </mat-option>\n </mat-select>\n\n <mat-error *ngIf=\"hasRequiredError()\" i18n>Ce champ est requis</mat-error></mat-form-field\n>\n" }]
|
|
33
|
+
args: [{ selector: 'natural-select-enum', template: "<mat-form-field>\n <mat-label>{{ placeholder }}</mat-label>\n <mat-select\n (selectionChange)=\"propagateValue($event.value)\"\n [formControl]=\"internalCtrl\"\n (blur)=\"touch(); blur.emit()\"\n [errorStateMatcher]=\"matcher\"\n [multiple]=\"multiple\"\n >\n <mat-option *ngIf=\"nullLabel\" [value]=\"null\">{{ nullLabel }}</mat-option>\n <mat-option\n *ngFor=\"let item of items | async\"\n [value]=\"item.value\"\n [disabled]=\"optionDisabled ? optionDisabled(item) : false\"\n >\n {{ item.name | capitalize }}\n </mat-option>\n </mat-select>\n\n <mat-error *ngIf=\"hasRequiredError()\" i18n>Ce champ est requis</mat-error></mat-form-field\n>\n", styles: [":host{display:flex;flex-direction:column}\n"] }]
|
|
30
34
|
}], ctorParameters: function () { return [{ type: i1.NaturalEnumService }, { type: i2.NgControl, decorators: [{
|
|
31
35
|
type: Optional
|
|
32
36
|
}, {
|
|
@@ -37,5 +41,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
|
|
|
37
41
|
type: Input
|
|
38
42
|
}], optionDisabled: [{
|
|
39
43
|
type: Input
|
|
44
|
+
}], multiple: [{
|
|
45
|
+
type: Input
|
|
40
46
|
}] } });
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWVudW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvc2VsZWN0L3NlbGVjdC1lbnVtL3NlbGVjdC1lbnVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL3NlbGVjdC9zZWxlY3QtZW51bS9zZWxlY3QtZW51bS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBVSxRQUFRLEVBQUUsSUFBSSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBSXZFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7Ozs7O0FBTzVELE1BQU0sT0FBTywwQkFDVCxTQUFRLGNBQWlEO0lBeUJ6RCxZQUNxQixXQUErQixFQUNaLFNBQTJCO1FBRS9ELEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUhBLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUNaLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBVG5FOztXQUVHO1FBQ2EsYUFBUSxHQUFZLEtBQUssQ0FBQztJQVMxQyxDQUFDO0lBRU0sUUFBUTtRQUNYLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRU0sWUFBWTtRQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUNuRCxDQUFDOzt1SEF4Q1EsMEJBQTBCOzJHQUExQiwwQkFBMEIsb01DWHZDLG13QkFxQkE7MkZEVmEsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNJLHFCQUFxQjs7MEJBZ0MxQixRQUFROzswQkFBSSxJQUFJOzRDQXJCTCxRQUFRO3NCQUF2QixLQUFLO2dCQUtVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBS1UsY0FBYztzQkFBN0IsS0FBSztnQkFLVSxRQUFRO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBPbkluaXQsIE9wdGlvbmFsLCBTZWxmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29udHJvbFZhbHVlQWNjZXNzb3IsIE5nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7SUVudW0sIE5hdHVyYWxFbnVtU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZW51bS5zZXJ2aWNlJztcbmltcG9ydCB7QWJzdHJhY3RTZWxlY3R9IGZyb20gJy4uL2Fic3RyYWN0LXNlbGVjdC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25hdHVyYWwtc2VsZWN0LWVudW0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QtZW51bS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LWVudW0uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTmF0dXJhbFNlbGVjdEVudW1Db21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0U2VsZWN0PElFbnVtWyd2YWx1ZSddIHwgSUVudW1bJ3ZhbHVlJ11bXT5cbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3JcbntcbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgZW51bSB0eXBlLCBlZzogYFwiQWN0aW9uU3RhdHVzXCJgXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGVudW1OYW1lITogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogSWYgZ2l2ZW4gYW4gZXh0cmEgb3B0aW9uIGlzIGFkZGVkIHRvIHNlbGVjdCBgbnVsbGAgd2l0aCBnaXZlbiBsYWJlbFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBudWxsTGFiZWw/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBGdW5jdGlvbnMgdGhhdCByZWNlaXZlcyBhbiBlbnVtIHZhbHVlIGFuZCByZXR1cm5zIHdoZXRoZXIgdGhhdCB2YWx1ZSBpcyBkaXNhYmxlZFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBvcHRpb25EaXNhYmxlZD86IChpdGVtOiBJRW51bSkgPT4gYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHVzZXIgc2hvdWxkIGJlIGFsbG93ZWQgdG8gc2VsZWN0IG11bHRpcGxlIG9wdGlvbnNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgbXVsdGlwbGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHB1YmxpYyBpdGVtcz86IE9ic2VydmFibGU8SUVudW1bXT47XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZW51bVNlcnZpY2U6IE5hdHVyYWxFbnVtU2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwdWJsaWMgcmVhZG9ubHkgbmdDb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICkge1xuICAgICAgICBzdXBlcihuZ0NvbnRyb2wpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuZW51bVNlcnZpY2UuZ2V0KHRoaXMuZW51bU5hbWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXREaXNwbGF5Rm4oKTogKGl0ZW06IElFbnVtWyd2YWx1ZSddIHwgSUVudW1bJ3ZhbHVlJ11bXSB8IG51bGwpID0+IHN0cmluZyB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVGhpcyBzaG91bGQgbmV2ZXIgYmUgY2FsbGVkJyk7XG4gICAgfVxufVxuIiwiPG1hdC1mb3JtLWZpZWxkPlxuICAgIDxtYXQtbGFiZWw+e3sgcGxhY2Vob2xkZXIgfX08L21hdC1sYWJlbD5cbiAgICA8bWF0LXNlbGVjdFxuICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cInByb3BhZ2F0ZVZhbHVlKCRldmVudC52YWx1ZSlcIlxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiaW50ZXJuYWxDdHJsXCJcbiAgICAgICAgKGJsdXIpPVwidG91Y2goKTsgYmx1ci5lbWl0KClcIlxuICAgICAgICBbZXJyb3JTdGF0ZU1hdGNoZXJdPVwibWF0Y2hlclwiXG4gICAgICAgIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXG4gICAgPlxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdJZj1cIm51bGxMYWJlbFwiIFt2YWx1ZV09XCJudWxsXCI+e3sgbnVsbExhYmVsIH19PC9tYXQtb3B0aW9uPlxuICAgICAgICA8bWF0LW9wdGlvblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXMgfCBhc3luY1wiXG4gICAgICAgICAgICBbdmFsdWVdPVwiaXRlbS52YWx1ZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwib3B0aW9uRGlzYWJsZWQgPyBvcHRpb25EaXNhYmxlZChpdGVtKSA6IGZhbHNlXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgaXRlbS5uYW1lIHwgY2FwaXRhbGl6ZSB9fVxuICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgPC9tYXQtc2VsZWN0PlxuXG4gICAgPG1hdC1lcnJvciAqbmdJZj1cImhhc1JlcXVpcmVkRXJyb3IoKVwiIGkxOG4+Q2UgY2hhbXAgZXN0IHJlcXVpczwvbWF0LWVycm9yPjwvbWF0LWZvcm0tZmllbGRcbj5cbiJdfQ==
|
|
@@ -6729,7 +6729,7 @@ class NaturalInputComponent {
|
|
|
6729
6729
|
};
|
|
6730
6730
|
const injectorTokens = this.createProviders(data);
|
|
6731
6731
|
const component = dropdownFacet.component;
|
|
6732
|
-
this.dropdownRef = this.dropdownService.open(component, this.element, injectorTokens, dropdownFacet.showValidateButton
|
|
6732
|
+
this.dropdownRef = this.dropdownService.open(component, this.element, injectorTokens, dropdownFacet.showValidateButton !== undefined ? dropdownFacet.showValidateButton : true);
|
|
6733
6733
|
this.dropdownRef.closed.subscribe(result => {
|
|
6734
6734
|
this.dropdownRef = null;
|
|
6735
6735
|
if (result !== undefined) {
|
|
@@ -7888,6 +7888,10 @@ class NaturalSelectEnumComponent extends AbstractSelect {
|
|
|
7888
7888
|
super(ngControl);
|
|
7889
7889
|
this.enumService = enumService;
|
|
7890
7890
|
this.ngControl = ngControl;
|
|
7891
|
+
/**
|
|
7892
|
+
* Whether the user should be allowed to select multiple options
|
|
7893
|
+
*/
|
|
7894
|
+
this.multiple = false;
|
|
7891
7895
|
}
|
|
7892
7896
|
ngOnInit() {
|
|
7893
7897
|
super.ngOnInit();
|
|
@@ -7898,10 +7902,10 @@ class NaturalSelectEnumComponent extends AbstractSelect {
|
|
|
7898
7902
|
}
|
|
7899
7903
|
}
|
|
7900
7904
|
NaturalSelectEnumComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NaturalSelectEnumComponent, deps: [{ token: NaturalEnumService }, { token: i5.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
7901
|
-
NaturalSelectEnumComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: NaturalSelectEnumComponent, selector: "natural-select-enum", inputs: { enumName: "enumName", nullLabel: "nullLabel", optionDisabled: "optionDisabled" }, usesInheritance: true, ngImport: i0, template: "<mat-form-field>\n <mat-label>{{ placeholder }}</mat-label>\n <mat-select\n (selectionChange)=\"propagateValue($event.value)\"\n [formControl]=\"internalCtrl\"\n (blur)=\"touch(); blur.emit()\"\n [errorStateMatcher]=\"matcher\"\n >\n <mat-option *ngIf=\"nullLabel\" [value]=\"null\">{{ nullLabel }}</mat-option>\n <mat-option\n *ngFor=\"let item of items | async\"\n [value]=\"item.value\"\n [disabled]=\"optionDisabled ? optionDisabled(item) : false\"\n >\n {{ item.name | capitalize }}\n </mat-option>\n </mat-select>\n\n <mat-error *ngIf=\"hasRequiredError()\" i18n>Ce champ est requis</mat-error></mat-form-field\n>\n", components: [{ type: i2$4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i2$5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i1$8.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i2$4.MatLabel, selector: "mat-label" }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$4.MatError, selector: "mat-error", inputs: ["id"] }], pipes: { "async": i6.AsyncPipe, "capitalize": NaturalCapitalizePipe } });
|
|
7905
|
+
NaturalSelectEnumComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: NaturalSelectEnumComponent, selector: "natural-select-enum", inputs: { enumName: "enumName", nullLabel: "nullLabel", optionDisabled: "optionDisabled", multiple: "multiple" }, usesInheritance: true, ngImport: i0, template: "<mat-form-field>\n <mat-label>{{ placeholder }}</mat-label>\n <mat-select\n (selectionChange)=\"propagateValue($event.value)\"\n [formControl]=\"internalCtrl\"\n (blur)=\"touch(); blur.emit()\"\n [errorStateMatcher]=\"matcher\"\n [multiple]=\"multiple\"\n >\n <mat-option *ngIf=\"nullLabel\" [value]=\"null\">{{ nullLabel }}</mat-option>\n <mat-option\n *ngFor=\"let item of items | async\"\n [value]=\"item.value\"\n [disabled]=\"optionDisabled ? optionDisabled(item) : false\"\n >\n {{ item.name | capitalize }}\n </mat-option>\n </mat-select>\n\n <mat-error *ngIf=\"hasRequiredError()\" i18n>Ce champ est requis</mat-error></mat-form-field\n>\n", styles: [":host{display:flex;flex-direction:column}\n"], components: [{ type: i2$4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i2$5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i1$8.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i2$4.MatLabel, selector: "mat-label" }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$4.MatError, selector: "mat-error", inputs: ["id"] }], pipes: { "async": i6.AsyncPipe, "capitalize": NaturalCapitalizePipe } });
|
|
7902
7906
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: NaturalSelectEnumComponent, decorators: [{
|
|
7903
7907
|
type: Component,
|
|
7904
|
-
args: [{ selector: 'natural-select-enum', template: "<mat-form-field>\n <mat-label>{{ placeholder }}</mat-label>\n <mat-select\n (selectionChange)=\"propagateValue($event.value)\"\n [formControl]=\"internalCtrl\"\n (blur)=\"touch(); blur.emit()\"\n [errorStateMatcher]=\"matcher\"\n >\n <mat-option *ngIf=\"nullLabel\" [value]=\"null\">{{ nullLabel }}</mat-option>\n <mat-option\n *ngFor=\"let item of items | async\"\n [value]=\"item.value\"\n [disabled]=\"optionDisabled ? optionDisabled(item) : false\"\n >\n {{ item.name | capitalize }}\n </mat-option>\n </mat-select>\n\n <mat-error *ngIf=\"hasRequiredError()\" i18n>Ce champ est requis</mat-error></mat-form-field\n>\n" }]
|
|
7908
|
+
args: [{ selector: 'natural-select-enum', template: "<mat-form-field>\n <mat-label>{{ placeholder }}</mat-label>\n <mat-select\n (selectionChange)=\"propagateValue($event.value)\"\n [formControl]=\"internalCtrl\"\n (blur)=\"touch(); blur.emit()\"\n [errorStateMatcher]=\"matcher\"\n [multiple]=\"multiple\"\n >\n <mat-option *ngIf=\"nullLabel\" [value]=\"null\">{{ nullLabel }}</mat-option>\n <mat-option\n *ngFor=\"let item of items | async\"\n [value]=\"item.value\"\n [disabled]=\"optionDisabled ? optionDisabled(item) : false\"\n >\n {{ item.name | capitalize }}\n </mat-option>\n </mat-select>\n\n <mat-error *ngIf=\"hasRequiredError()\" i18n>Ce champ est requis</mat-error></mat-form-field\n>\n", styles: [":host{display:flex;flex-direction:column}\n"] }]
|
|
7905
7909
|
}], ctorParameters: function () {
|
|
7906
7910
|
return [{ type: NaturalEnumService }, { type: i5.NgControl, decorators: [{
|
|
7907
7911
|
type: Optional
|
|
@@ -7914,6 +7918,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
|
|
|
7914
7918
|
type: Input
|
|
7915
7919
|
}], optionDisabled: [{
|
|
7916
7920
|
type: Input
|
|
7921
|
+
}], multiple: [{
|
|
7922
|
+
type: Input
|
|
7917
7923
|
}] } });
|
|
7918
7924
|
|
|
7919
7925
|
class NaturalSelectModule {
|
|
@@ -10273,11 +10279,11 @@ class AvatarComponent {
|
|
|
10273
10279
|
}
|
|
10274
10280
|
const source = this.findNextSource();
|
|
10275
10281
|
if (!source) {
|
|
10282
|
+
this.clearAvatar();
|
|
10276
10283
|
return;
|
|
10277
10284
|
}
|
|
10278
10285
|
if (source.isTextual()) {
|
|
10279
10286
|
this.buildTextAvatar(source);
|
|
10280
|
-
this.avatarSrc = null;
|
|
10281
10287
|
}
|
|
10282
10288
|
else {
|
|
10283
10289
|
this.buildImageAvatar(source);
|
|
@@ -10305,13 +10311,20 @@ class AvatarComponent {
|
|
|
10305
10311
|
};
|
|
10306
10312
|
}
|
|
10307
10313
|
}
|
|
10314
|
+
clearAvatar() {
|
|
10315
|
+
this.avatarSrc = null;
|
|
10316
|
+
this.avatarText = null;
|
|
10317
|
+
this.avatarStyle = {};
|
|
10318
|
+
}
|
|
10308
10319
|
buildTextAvatar(avatarSource) {
|
|
10320
|
+
this.clearAvatar();
|
|
10309
10321
|
this.avatarText = avatarSource.getAvatar(+this.textMaximumLength);
|
|
10310
10322
|
this.avatarStyle = this.getTextualStyle(avatarSource.getValue());
|
|
10311
10323
|
}
|
|
10312
10324
|
buildImageAvatar(avatarSource) {
|
|
10313
|
-
this.
|
|
10325
|
+
this.clearAvatar();
|
|
10314
10326
|
this.avatarSrc = avatarSource.getAvatar(+this.size);
|
|
10327
|
+
this.avatarStyle = this.getImageStyle();
|
|
10315
10328
|
}
|
|
10316
10329
|
/**
|
|
10317
10330
|
* Returns initials style
|
|
@@ -10343,7 +10356,7 @@ AvatarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version:
|
|
|
10343
10356
|
AvatarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: AvatarComponent, selector: "natural-avatar", inputs: { image: "image", initials: "initials", gravatar: "gravatar", size: "size", textSizeRatio: "textSizeRatio", bgColor: "bgColor", fgColor: "fgColor", borderRadius: "borderRadius", textMaximumLength: "textMaximumLength" }, usesOnChanges: true, ngImport: i0, template: `
|
|
10344
10357
|
<div class="avatar-container" [ngStyle]="hostStyle">
|
|
10345
10358
|
<img
|
|
10346
|
-
*ngIf="avatarSrc
|
|
10359
|
+
*ngIf="avatarSrc"
|
|
10347
10360
|
[src]="avatarSrc"
|
|
10348
10361
|
[width]="size"
|
|
10349
10362
|
[height]="size"
|
|
@@ -10352,11 +10365,9 @@ AvatarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
|
|
|
10352
10365
|
class="avatar-content"
|
|
10353
10366
|
loading="lazy"
|
|
10354
10367
|
/>
|
|
10355
|
-
<
|
|
10356
|
-
|
|
10357
|
-
|
|
10358
|
-
</div>
|
|
10359
|
-
</ng-template>
|
|
10368
|
+
<div *ngIf="avatarText" class="avatar-content" [ngStyle]="avatarStyle">
|
|
10369
|
+
{{ avatarText }}
|
|
10370
|
+
</div>
|
|
10360
10371
|
</div>
|
|
10361
10372
|
`, isInline: true, styles: [":host{border-radius:50%}\n"], directives: [{ type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
10362
10373
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: AvatarComponent, decorators: [{
|
|
@@ -10373,7 +10384,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
|
|
|
10373
10384
|
template: `
|
|
10374
10385
|
<div class="avatar-container" [ngStyle]="hostStyle">
|
|
10375
10386
|
<img
|
|
10376
|
-
*ngIf="avatarSrc
|
|
10387
|
+
*ngIf="avatarSrc"
|
|
10377
10388
|
[src]="avatarSrc"
|
|
10378
10389
|
[width]="size"
|
|
10379
10390
|
[height]="size"
|
|
@@ -10382,11 +10393,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
|
|
|
10382
10393
|
class="avatar-content"
|
|
10383
10394
|
loading="lazy"
|
|
10384
10395
|
/>
|
|
10385
|
-
<
|
|
10386
|
-
|
|
10387
|
-
|
|
10388
|
-
</div>
|
|
10389
|
-
</ng-template>
|
|
10396
|
+
<div *ngIf="avatarText" class="avatar-content" [ngStyle]="avatarStyle">
|
|
10397
|
+
{{ avatarText }}
|
|
10398
|
+
</div>
|
|
10390
10399
|
</div>
|
|
10391
10400
|
`,
|
|
10392
10401
|
}]
|