@updevs/components 1.0.0-alpha.20 → 1.0.0-alpha.21
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/esm2022/button/button.component.mjs +2 -2
- package/esm2022/modal/components/modal-container/modal-container.component.mjs +3 -3
- package/fesm2022/updevs-components-button.mjs +1 -1
- package/fesm2022/updevs-components-button.mjs.map +1 -1
- package/fesm2022/updevs-components-modal.mjs +2 -2
- package/fesm2022/updevs-components-modal.mjs.map +1 -1
- package/package.json +20 -20
|
@@ -106,7 +106,7 @@ export class ButtonComponent {
|
|
|
106
106
|
return this.textService.getText(this._title());
|
|
107
107
|
}
|
|
108
108
|
get mainText() {
|
|
109
|
-
return this.textService.getText(this.text());
|
|
109
|
+
return this.textService.getText(this.model()?.text?.() || this.text());
|
|
110
110
|
}
|
|
111
111
|
get _iconModel() {
|
|
112
112
|
return this.model()?.iconModel?.() || this.iconModel();
|
|
@@ -154,4 +154,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
154
154
|
type: HostListener,
|
|
155
155
|
args: ['click', ['$event']]
|
|
156
156
|
}] } });
|
|
157
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9idXR0b24vc3JjL2J1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYnV0dG9uL3NyYy9idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsTUFBTSxFQUNOLFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBYSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7O0FBV3JELE1BQU0sT0FBTyxlQUFlO0lBTjVCO1FBZUk7Ozs7V0FJRztRQUNnQixZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVyRCxVQUFLLEdBQUcsS0FBSyxFQUFlLENBQUM7UUFDN0IsU0FBSSxHQUFHLEtBQUssRUFBYSxDQUFDO1FBQzFCLG9CQUFlLEdBQUcsS0FBSyxFQUFhLENBQUM7UUFDckMsa0JBQWEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNoQyxjQUFTLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLFlBQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsYUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixXQUFNLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RCLFdBQU0sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsY0FBUyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6Qjs7V0FFRztRQUNILFdBQU0sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEI7O1dB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QUFPO2dCQVNELE9BQU87c0JBQXpCLE1BQU07Z0JBc0lQLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBpbmplY3QsXG4gICAgaW5wdXQsXG4gICAgY29tcHV0ZWRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJY29uTW9kZWwgfSBmcm9tICdAdXBkZXZzL2ljb25zJztcbmltcG9ydCB7IFRleHRNb2RlbCwgVGV4dFNlcnZpY2UgfSBmcm9tICdAdXBkZXZzL3Nkayc7XG5pbXBvcnQgeyBCdXR0b25Nb2RlbCB9IGZyb20gJ0B1cGRldnMvc2RrL2xheW91dCc7XG5pbXBvcnQgeyBMZWZ0UmlnaHRUeXBlLCBPcHRpb25hbFR5cGUsIEJyYW5kVHlwZSwgQmdDb2xvclN0eWxlVHlwZSwgQnV0dG9uU2l6ZVR5cGUgfSBmcm9tICdAdXBkZXZzL3Nkay90eXBlcyc7XG5pbXBvcnQgeyBCYWRnZUNvbmZpZyB9IGZyb20gJ0B1cGRldnMvY29tcG9uZW50cy9iYWRnZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndXBkLWJ1dHRvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2J1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYnV0dG9uLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBCdXR0b25Db21wb25lbnQge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBnZXQgY2xhc3NlcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmJ1dHRvbkNsYXNzZXMoKTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ3RpdGxlJykgZ2V0IHRpdGxlQXR0cigpOiBPcHRpb25hbFR5cGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRTZXJ2aWNlLmdldFRleHQodGhpcy5fdGl0bGUoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRW1pdHRlZCB3aGVuIHRoZSBidXR0b24gaXMgY2xpY2tlZC5cbiAgICAgKiAqKk5PVEU6KiogVGhlIG5hbWUgb2YgdGhlIGV2ZW50IGNhbiBub3QgYmUgJ2NsaWNrJy4gSXQgd291bGQgZ2VuZXJhdGUgYSBjb25mbGljdCB3aXRoIHRoZSBIVE1MIGV2ZW50IG9mIHNhbWUgbmFtZS5cbiAgICAgKiBUaGF0IHdvdWxkIGNhdXNlIHN0cmFuZ2UgYmVoYXZpb3JzIGxpa2UgcHJldmVudGluZyBgaXNEaXNhYmxlZGAgZnJvbSB3b3JraW5nIGNvcnJlY3RseS5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgY2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgbW9kZWwgPSBpbnB1dDxCdXR0b25Nb2RlbD4oKTtcbiAgICB0ZXh0ID0gaW5wdXQ8VGV4dE1vZGVsPigpO1xuICAgIGJyYW5kQ29sb3JTdHlsZSA9IGlucHV0PEJyYW5kVHlwZT4oKTtcbiAgICBjdXN0b21DbGFzc2VzID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIGlzT3V0bGluZSA9IGlucHV0KGZhbHNlKTtcbiAgICBpc0dob3N0ID0gaW5wdXQoZmFsc2UpO1xuICAgIGlzU3F1YXJlID0gaW5wdXQoZmFsc2UpO1xuICAgIGlzUGlsbCA9IGlucHV0KGZhbHNlKTtcbiAgICBpc0ljb24gPSBpbnB1dChmYWxzZSk7XG4gICAgaXNMb2FkaW5nID0gaW5wdXQoZmFsc2UpO1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGJ1dHRvbiBzaG91bGQgYWN0IGFzIGEgbGlzdCAodG9wLWJvdHRvbSBhbGlnbm1lbnQgaW5zdGVhZCBvZiBsZWZ0LXJpZ2h0IHJlbGF0ZWQgdG8gbmVpZ2hib3JzKS5cbiAgICAgKi9cbiAgICBpc0xpc3QgPSBpbnB1dChmYWxzZSk7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgYnV0dG9uIHNob3VsZCBiZSBmbG9hdGluZyBpbiB0aGUgYm90dG9tIHJpZ2h0IGNvcm5lci5cbiAgICAgKi9cbiAgICBpc0Zsb2F0aW5nID0gaW5wdXQoZmFsc2UpO1xuICAgIGlzQWN0aW9uID0gaW5wdXQoZmFsc2UpO1xuICAgIGlzTmF2aWdhdGlvbkxpbmsgPSBpbnB1dChmYWxzZSk7XG4gICAgaXNMaW5rID0gaW5wdXQoZmFsc2UpO1xuICAgIHNob3VsZElnbm9yZUJ0bkNsYXNzID0gaW5wdXQoZmFsc2UpO1xuICAgIGljb25Nb2RlbCA9IGlucHV0PEljb25Nb2RlbD4oKTtcbiAgICBpY29uUG9zaXRpb24gPSBpbnB1dDxMZWZ0UmlnaHRUeXBlPignbGVmdCcpO1xuICAgIGlzRGlzYWJsZWQgPSBpbnB1dChmYWxzZSk7XG4gICAgaXNBY3RpdmUgPSBpbnB1dChmYWxzZSk7XG4gICAgYmFkZ2VDb25maWcgPSBpbnB1dDxCYWRnZUNvbmZpZz4oKTtcbiAgICBjb2xvclN0eWxlID0gaW5wdXQ8QmdDb2xvclN0eWxlVHlwZT4oKTtcbiAgICBzaXplID0gaW5wdXQ8QnV0dG9uU2l6ZVR5cGU+KCdyZWd1bGFyJyk7XG4gICAgdGl0bGUgPSBpbnB1dDxUZXh0TW9kZWw+KCk7XG5cbiAgICBnZXQgbWFpblRleHQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dFNlcnZpY2UuZ2V0VGV4dCh0aGlzLnRleHQoKSk7XG4gICAgfVxuXG4gICAgZ2V0IF9pY29uTW9kZWwoKTogT3B0aW9uYWxUeXBlPEljb25Nb2RlbD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlbCgpPy5pY29uTW9kZWw/LigpIHx8IHRoaXMuaWNvbk1vZGVsKCk7XG4gICAgfVxuXG4gICAgZ2V0IF9pY29uUG9zaXRpb24oKTogTGVmdFJpZ2h0VHlwZSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vZGVsKCk/Lmljb25Qb3NpdGlvbigpIHx8IHRoaXMuaWNvblBvc2l0aW9uKCk7XG4gICAgfVxuXG4gICAgZ2V0IF9pc0ljb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vZGVsKCk/LmlzSWNvbigpIHx8IHRoaXMuaXNJY29uKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgc2l6ZUNsYXNzKCk6IHN0cmluZyB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5fc2l6ZSgpKSB7XG4gICAgICAgICAgICBjYXNlICdsYXJnZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdidG4tbGcnO1xuICAgICAgICAgICAgY2FzZSAnc21hbGwnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnYnRuLXNtJztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2l6ZSA9IGNvbXB1dGVkKCgpID0+ICEhdGhpcy5tb2RlbCgpID8gdGhpcy5tb2RlbCgpIS5zaXplKCkgOiB0aGlzLnNpemUoKSk7XG4gICAgcHJpdmF0ZSBfdGl0bGUgPSBjb21wdXRlZCgoKSA9PiAhIXRoaXMubW9kZWwoKSAmJiAhIXRoaXMubW9kZWwoKT8udGl0bGUgPyB0aGlzLm1vZGVsKCkhLnRpdGxlISgpIDogdGhpcy50aXRsZSgpKTtcbiAgICBwcml2YXRlIF9jb2xvclN0eWxlID0gY29tcHV0ZWQoKCkgPT4gISF0aGlzLm1vZGVsKCkgJiYgISF0aGlzLm1vZGVsKCk/LmNvbG9yU3R5bGUgPyB0aGlzLm1vZGVsKCkhLmNvbG9yU3R5bGUhKCkgOiB0aGlzLmNvbG9yU3R5bGUoKSk7XG4gICAgcHJpdmF0ZSBfYnJhbmRDb2xvclN0eWxlID0gY29tcHV0ZWQoKCkgPT5cbiAgICAgICAgISF0aGlzLm1vZGVsKCkgJiYgISF0aGlzLm1vZGVsKCk/LmJyYW5kQ29sb3JTdHlsZSA/IHRoaXMubW9kZWwoKSEuYnJhbmRDb2xvclN0eWxlISgpIDogdGhpcy5icmFuZENvbG9yU3R5bGUoKVxuICAgICk7XG4gICAgcHJpdmF0ZSBidXR0b25DbGFzc2VzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBpc0xpbmsgPSB0aGlzLm1vZGVsKCk/LmlzTGluaygpIHx8IHRoaXMuaXNMaW5rKCk7XG4gICAgICAgIGNvbnN0IG91dGxpbmVDbHMgPSB0aGlzLm1vZGVsKCk/LmlzT3V0bGluZSgpIHx8IHRoaXMuaXNPdXRsaW5lKCkgPyAnb3V0bGluZS0nIDogJyc7XG4gICAgICAgIGNvbnN0IGdob3N0Q2xzID0gdGhpcy5tb2RlbCgpPy5pc0dob3N0KCkgfHwgdGhpcy5pc0dob3N0KCkgPyAnZ2hvc3QtJyA6ICcnO1xuICAgICAgICBjb25zdCBsQ2xhc3Nlczogc3RyaW5nW10gPSB0aGlzLm1vZGVsKCk/LnNob3VsZElnbm9yZUJ0bkNsYXNzKCkgfHwgdGhpcy5zaG91bGRJZ25vcmVCdG5DbGFzcygpID8gW10gOiBbJ2J0biddO1xuICAgICAgICBjb25zdCBjdXN0b21DbGFzc2VzID0gdGhpcy5tb2RlbCgpPy5jdXN0b21DbGFzc2VzPy4oKS5zcGxpdCgnICcpIHx8IHRoaXMuY3VzdG9tQ2xhc3NlcygpPy5zcGxpdCgnICcpIHx8IFtdO1xuXG4gICAgICAgIGlmICghaXNMaW5rICYmICghIW91dGxpbmVDbHMgfHwgISFnaG9zdENscyB8fCAhIXRoaXMuX2NvbG9yU3R5bGUoKSB8fCAhIXRoaXMuX2JyYW5kQ29sb3JTdHlsZSgpKSkge1xuICAgICAgICAgICAgbENsYXNzZXMucHVzaChgYnRuLSR7b3V0bGluZUNscyB8fCBnaG9zdENsc30ke3RoaXMuX2NvbG9yU3R5bGUoKSB8fCB0aGlzLl9icmFuZENvbG9yU3R5bGUoKX1gKTtcbiAgICAgICAgfSBlbHNlIGlmICghIXRoaXMuX2NvbG9yU3R5bGUoKSB8fCAhIXRoaXMuX2JyYW5kQ29sb3JTdHlsZSgpKSB7XG4gICAgICAgICAgICBsQ2xhc3Nlcy5wdXNoKGBsaW5rLSR7dGhpcy5fY29sb3JTdHlsZSgpIHx8IHRoaXMuX2JyYW5kQ29sb3JTdHlsZSgpfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubW9kZWwoKT8uaXNTcXVhcmUoKSB8fCB0aGlzLmlzU3F1YXJlKCkpIHtcbiAgICAgICAgICAgIGxDbGFzc2VzLnB1c2goJ2J0bi1zcXVhcmUnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1vZGVsKCk/LmlzUGlsbCgpIHx8IHRoaXMuaXNQaWxsKCkpIHtcbiAgICAgICAgICAgIGxDbGFzc2VzLnB1c2goJ2J0bi1waWxsJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5faXNJY29uKSB7XG4gICAgICAgICAgICBsQ2xhc3Nlcy5wdXNoKCdidG4taWNvbicpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubW9kZWwoKT8uaXNMb2FkaW5nKCkgfHwgdGhpcy5pc0xvYWRpbmcoKSkge1xuICAgICAgICAgICAgbENsYXNzZXMucHVzaCgnYnRuLWxvYWRpbmcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1vZGVsKCk/LmlzTGlzdCgpIHx8IHRoaXMuaXNMaXN0KCkpIHtcbiAgICAgICAgICAgIGxDbGFzc2VzLnB1c2goJ2J0bi1saXN0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5tb2RlbCgpPy5pc0Zsb2F0aW5nKCkgfHwgdGhpcy5pc0Zsb2F0aW5nKCkpIHtcbiAgICAgICAgICAgIGxDbGFzc2VzLnB1c2goJ2J0bi1mbG9hdGluZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubW9kZWwoKT8uaXNBY3Rpb24oKSB8fCB0aGlzLmlzQWN0aW9uKCkpIHtcbiAgICAgICAgICAgIGxDbGFzc2VzLnB1c2goJ2J0bi1hY3Rpb24nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1vZGVsKCk/LmlzTmF2aWdhdGlvbkxpbmsoKSB8fCB0aGlzLmlzTmF2aWdhdGlvbkxpbmsoKSkge1xuICAgICAgICAgICAgbENsYXNzZXMucHVzaCgnbmF2LWxpbmsnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0xpbmspIHtcbiAgICAgICAgICAgIGxDbGFzc2VzLnB1c2goJ2J0bi1saW5rJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5tb2RlbCgpPy5pc0FjdGl2ZSgpIHx8IHRoaXMuaXNBY3RpdmUoKSkge1xuICAgICAgICAgICAgbENsYXNzZXMucHVzaCgnYWN0aXZlJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5tb2RlbCgpPy5pc0Rpc2FibGVkKCkgfHwgdGhpcy5pc0Rpc2FibGVkKCkpIHtcbiAgICAgICAgICAgIGxDbGFzc2VzLnB1c2goJ2Rpc2FibGVkJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoISF0aGlzLmJhZGdlQ29uZmlnKCkgJiYgKHRoaXMuYmFkZ2VDb25maWcoKSEuaXNCbGlua2luZyB8fCB0aGlzLmJhZGdlQ29uZmlnKCkhLmlzTm90aWZpY2F0aW9uKSkge1xuICAgICAgICAgICAgbENsYXNzZXMucHVzaCgncG9zaXRpb24tcmVsYXRpdmUnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxDbGFzc2VzLnB1c2godGhpcy5zaXplQ2xhc3MpO1xuXG4gICAgICAgIHJldHVybiBbLi4ubENsYXNzZXMsIC4uLmN1c3RvbUNsYXNzZXNdO1xuICAgIH0pO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dFNlcnZpY2UgPSBpbmplY3QoVGV4dFNlcnZpY2UpO1xuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICAgIG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCEhdGhpcy5tb2RlbCgpICYmICEhdGhpcy5tb2RlbCgpPy5jbGlja0Z1bmN0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLm1vZGVsKCkhLmNsaWNrRnVuY3Rpb24hKHsgZXZlbnQsIGRhdGE6IHRoaXMgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNsaWNrZWQuZW1pdChldmVudCk7XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI3VzZXJDb250ZW50VHBsPlxuICAgIEBpZiAoISFfaWNvbk1vZGVsICYmIF9pY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xuICAgICAgICA8dXBkLWljb24gW21vZGVsXT1cIl9pY29uTW9kZWxcIiBbdGFibGVySWNvblNpemVdPVwiX2ljb25Nb2RlbC50YWJsZXJJY29uU2l6ZSB8fCAyMFwiXG4gICAgICAgICAgICBbaGVyb0ljb25TaXplXT1cIl9pY29uTW9kZWwuaGVyb0ljb25TaXplIHx8ICdzbWFsbCdcIj5cbiAgICAgICAgPC91cGQtaWNvbj5cbiAgICB9XG5cbiAgICA8ZGl2IFtjbGFzcy5teC0xXT1cIiEhX2ljb25Nb2RlbCAmJiAhX2lzSWNvblwiPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG5cbiAgICBAaWYgKCEhYmFkZ2VDb25maWcoKSkge1xuICAgICAgICA8dXBkLWJhZGdlIFtjb25maWddPVwiYmFkZ2VDb25maWcoKVwiPjwvdXBkLWJhZGdlPlxuICAgIH1cblxuICAgIEBpZiAoISFfaWNvbk1vZGVsICYmIF9pY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcbiAgICAgICAgPHVwZC1pY29uIFttb2RlbF09XCJfaWNvbk1vZGVsXCIgW3RhYmxlckljb25TaXplXT1cIl9pY29uTW9kZWwudGFibGVySWNvblNpemUgfHwgMjBcIlxuICAgICAgICAgICAgW2hlcm9JY29uU2l6ZV09XCJfaWNvbk1vZGVsLmhlcm9JY29uU2l6ZSB8fCAnc21hbGwnXCI+XG4gICAgICAgIDwvdXBkLWljb24+XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuQGlmICghbWFpblRleHQpIHtcbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInVzZXJDb250ZW50VHBsXCI+PC9uZy1jb250YWluZXI+XG59IEBlbHNlIHtcbiAgICBAaWYgKCEhX2ljb25Nb2RlbCAmJiBfaWNvblBvc2l0aW9uID09PSAnbGVmdCcpIHtcbiAgICAgICAgPHVwZC1pY29uIFttb2RlbF09XCJfaWNvbk1vZGVsXCIgW3RhYmxlckljb25TaXplXT1cIl9pY29uTW9kZWwudGFibGVySWNvblNpemUgfHwgMjBcIlxuICAgICAgICAgICAgW2hlcm9JY29uU2l6ZV09XCJfaWNvbk1vZGVsLmhlcm9JY29uU2l6ZSB8fCAnc21hbGwnXCI+XG4gICAgICAgIDwvdXBkLWljb24+XG4gICAgfVxuXG4gICAgPHNwYW4gW2NsYXNzLm14LTFdPVwiISFfaWNvbk1vZGVsXCI+XG4gICAgICAgIHt7IG1haW5UZXh0IH19XG4gICAgPC9zcGFuPlxuXG4gICAgQGlmICghIWJhZGdlQ29uZmlnKCkpIHtcbiAgICAgICAgPHVwZC1iYWRnZSBbY29uZmlnXT1cImJhZGdlQ29uZmlnKClcIj48L3VwZC1iYWRnZT5cbiAgICB9XG5cbiAgICBAaWYgKCEhX2ljb25Nb2RlbCAmJiBfaWNvblBvc2l0aW9uID09PSAncmlnaHQnKSB7XG4gICAgICAgIDx1cGQtaWNvbiBbbW9kZWxdPVwiX2ljb25Nb2RlbFwiIFt0YWJsZXJJY29uU2l6ZV09XCJfaWNvbk1vZGVsLnRhYmxlckljb25TaXplIHx8IDIwXCJcbiAgICAgICAgICAgIFtoZXJvSWNvblNpemVdPVwiX2ljb25Nb2RlbC5oZXJvSWNvblNpemUgfHwgJ3NtYWxsJ1wiPlxuICAgICAgICA8L3VwZC1pY29uPlxuICAgIH1cbn1cbiJdfQ==
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9idXR0b24vc3JjL2J1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYnV0dG9uL3NyYy9idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsTUFBTSxFQUNOLFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBYSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7O0FBV3JELE1BQU0sT0FBTyxlQUFlO0lBTjVCO1FBZUk7Ozs7V0FJRztRQUNnQixZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVyRCxVQUFLLEdBQUcsS0FBSyxFQUFlLENBQUM7UUFDN0IsU0FBSSxHQUFHLEtBQUssRUFBYSxDQUFDO1FBQzFCLG9CQUFlLEdBQUcsS0FBSyxFQUFhLENBQUM7UUFDckMsa0JBQWEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNoQyxjQUFTLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLFlBQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsYUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixXQUFNLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RCLFdBQU0sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsY0FBUyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6Qjs7V0FFRztRQUNILFdBQU0sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEI7O1dB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QUFXO3VCQUFDLE9BQU87Z0JBSU0sU0FBUztzQkFBbEMsV0FBVzt1QkFBQyxPQUFPO2dCQVNELE9BQU87c0JBQXpCLE1BQU07Z0JBc0lQLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBpbmplY3QsXG4gICAgaW5wdXQsXG4gICAgY29tcHV0ZWRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJY29uTW9kZWwgfSBmcm9tICdAdXBkZXZzL2ljb25zJztcbmltcG9ydCB7IFRleHRNb2RlbCwgVGV4dFNlcnZpY2UgfSBmcm9tICdAdXBkZXZzL3Nkayc7XG5pbXBvcnQgeyBCdXR0b25Nb2RlbCB9IGZyb20gJ0B1cGRldnMvc2RrL2xheW91dCc7XG5pbXBvcnQgeyBMZWZ0UmlnaHRUeXBlLCBPcHRpb25hbFR5cGUsIEJyYW5kVHlwZSwgQmdDb2xvclN0eWxlVHlwZSwgQnV0dG9uU2l6ZVR5cGUgfSBmcm9tICdAdXBkZXZzL3Nkay90eXBlcyc7XG5pbXBvcnQgeyBCYWRnZUNvbmZpZyB9IGZyb20gJ0B1cGRldnMvY29tcG9uZW50cy9iYWRnZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndXBkLWJ1dHRvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2J1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYnV0dG9uLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBCdXR0b25Db21wb25lbnQge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBnZXQgY2xhc3NlcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmJ1dHRvbkNsYXNzZXMoKTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ3RpdGxlJykgZ2V0IHRpdGxlQXR0cigpOiBPcHRpb25hbFR5cGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRTZXJ2aWNlLmdldFRleHQodGhpcy5fdGl0bGUoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRW1pdHRlZCB3aGVuIHRoZSBidXR0b24gaXMgY2xpY2tlZC5cbiAgICAgKiAqKk5PVEU6KiogVGhlIG5hbWUgb2YgdGhlIGV2ZW50IGNhbiBub3QgYmUgJ2NsaWNrJy4gSXQgd291bGQgZ2VuZXJhdGUgYSBjb25mbGljdCB3aXRoIHRoZSBIVE1MIGV2ZW50IG9mIHNhbWUgbmFtZS5cbiAgICAgKiBUaGF0IHdvdWxkIGNhdXNlIHN0cmFuZ2UgYmVoYXZpb3JzIGxpa2UgcHJldmVudGluZyBgaXNEaXNhYmxlZGAgZnJvbSB3b3JraW5nIGNvcnJlY3RseS5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgY2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgbW9kZWwgPSBpbnB1dDxCdXR0b25Nb2RlbD4oKTtcbiAgICB0ZXh0ID0gaW5wdXQ8VGV4dE1vZGVsPigpO1xuICAgIGJyYW5kQ29sb3JTdHlsZSA9IGlucHV0PEJyYW5kVHlwZT4oKTtcbiAgICBjdXN0b21DbGFzc2VzID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIGlzT3V0bGluZSA9IGlucHV0KGZhbHNlKTtcbiAgICBpc0dob3N0ID0gaW5wdXQoZmFsc2UpO1xuICAgIGlzU3F1YXJlID0gaW5wdXQoZmFsc2UpO1xuICAgIGlzUGlsbCA9IGlucHV0KGZhbHNlKTtcbiAgICBpc0ljb24gPSBpbnB1dChmYWxzZSk7XG4gICAgaXNMb2FkaW5nID0gaW5wdXQoZmFsc2UpO1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGJ1dHRvbiBzaG91bGQgYWN0IGFzIGEgbGlzdCAodG9wLWJvdHRvbSBhbGlnbm1lbnQgaW5zdGVhZCBvZiBsZWZ0LXJpZ2h0IHJlbGF0ZWQgdG8gbmVpZ2hib3JzKS5cbiAgICAgKi9cbiAgICBpc0xpc3QgPSBpbnB1dChmYWxzZSk7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgYnV0dG9uIHNob3VsZCBiZSBmbG9hdGluZyBpbiB0aGUgYm90dG9tIHJpZ2h0IGNvcm5lci5cbiAgICAgKi9cbiAgICBpc0Zsb2F0aW5nID0gaW5wdXQoZmFsc2UpO1xuICAgIGlzQWN0aW9uID0gaW5wdXQoZmFsc2UpO1xuICAgIGlzTmF2aWdhdGlvbkxpbmsgPSBpbnB1dChmYWxzZSk7XG4gICAgaXNMaW5rID0gaW5wdXQoZmFsc2UpO1xuICAgIHNob3VsZElnbm9yZUJ0bkNsYXNzID0gaW5wdXQoZmFsc2UpO1xuICAgIGljb25Nb2RlbCA9IGlucHV0PEljb25Nb2RlbD4oKTtcbiAgICBpY29uUG9zaXRpb24gPSBpbnB1dDxMZWZ0UmlnaHRUeXBlPignbGVmdCcpO1xuICAgIGlzRGlzYWJsZWQgPSBpbnB1dChmYWxzZSk7XG4gICAgaXNBY3RpdmUgPSBpbnB1dChmYWxzZSk7XG4gICAgYmFkZ2VDb25maWcgPSBpbnB1dDxCYWRnZUNvbmZpZz4oKTtcbiAgICBjb2xvclN0eWxlID0gaW5wdXQ8QmdDb2xvclN0eWxlVHlwZT4oKTtcbiAgICBzaXplID0gaW5wdXQ8QnV0dG9uU2l6ZVR5cGU+KCdyZWd1bGFyJyk7XG4gICAgdGl0bGUgPSBpbnB1dDxUZXh0TW9kZWw+KCk7XG5cbiAgICBnZXQgbWFpblRleHQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dFNlcnZpY2UuZ2V0VGV4dCh0aGlzLm1vZGVsKCk/LnRleHQ/LigpIHx8IHRoaXMudGV4dCgpKTtcbiAgICB9XG5cbiAgICBnZXQgX2ljb25Nb2RlbCgpOiBPcHRpb25hbFR5cGU8SWNvbk1vZGVsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vZGVsKCk/Lmljb25Nb2RlbD8uKCkgfHwgdGhpcy5pY29uTW9kZWwoKTtcbiAgICB9XG5cbiAgICBnZXQgX2ljb25Qb3NpdGlvbigpOiBMZWZ0UmlnaHRUeXBlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZWwoKT8uaWNvblBvc2l0aW9uKCkgfHwgdGhpcy5pY29uUG9zaXRpb24oKTtcbiAgICB9XG5cbiAgICBnZXQgX2lzSWNvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZWwoKT8uaXNJY29uKCkgfHwgdGhpcy5pc0ljb24oKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBzaXplQ2xhc3MoKTogc3RyaW5nIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLl9zaXplKCkpIHtcbiAgICAgICAgICAgIGNhc2UgJ2xhcmdlJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2J0bi1sZyc7XG4gICAgICAgICAgICBjYXNlICdzbWFsbCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdidG4tc20nO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9zaXplID0gY29tcHV0ZWQoKCkgPT4gISF0aGlzLm1vZGVsKCkgPyB0aGlzLm1vZGVsKCkhLnNpemUoKSA6IHRoaXMuc2l6ZSgpKTtcbiAgICBwcml2YXRlIF90aXRsZSA9IGNvbXB1dGVkKCgpID0+ICEhdGhpcy5tb2RlbCgpICYmICEhdGhpcy5tb2RlbCgpPy50aXRsZSA/IHRoaXMubW9kZWwoKSEudGl0bGUhKCkgOiB0aGlzLnRpdGxlKCkpO1xuICAgIHByaXZhdGUgX2NvbG9yU3R5bGUgPSBjb21wdXRlZCgoKSA9PiAhIXRoaXMubW9kZWwoKSAmJiAhIXRoaXMubW9kZWwoKT8uY29sb3JTdHlsZSA/IHRoaXMubW9kZWwoKSEuY29sb3JTdHlsZSEoKSA6IHRoaXMuY29sb3JTdHlsZSgpKTtcbiAgICBwcml2YXRlIF9icmFuZENvbG9yU3R5bGUgPSBjb21wdXRlZCgoKSA9PlxuICAgICAgICAhIXRoaXMubW9kZWwoKSAmJiAhIXRoaXMubW9kZWwoKT8uYnJhbmRDb2xvclN0eWxlID8gdGhpcy5tb2RlbCgpIS5icmFuZENvbG9yU3R5bGUhKCkgOiB0aGlzLmJyYW5kQ29sb3JTdHlsZSgpXG4gICAgKTtcbiAgICBwcml2YXRlIGJ1dHRvbkNsYXNzZXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGlzTGluayA9IHRoaXMubW9kZWwoKT8uaXNMaW5rKCkgfHwgdGhpcy5pc0xpbmsoKTtcbiAgICAgICAgY29uc3Qgb3V0bGluZUNscyA9IHRoaXMubW9kZWwoKT8uaXNPdXRsaW5lKCkgfHwgdGhpcy5pc091dGxpbmUoKSA/ICdvdXRsaW5lLScgOiAnJztcbiAgICAgICAgY29uc3QgZ2hvc3RDbHMgPSB0aGlzLm1vZGVsKCk/LmlzR2hvc3QoKSB8fCB0aGlzLmlzR2hvc3QoKSA/ICdnaG9zdC0nIDogJyc7XG4gICAgICAgIGNvbnN0IGxDbGFzc2VzOiBzdHJpbmdbXSA9IHRoaXMubW9kZWwoKT8uc2hvdWxkSWdub3JlQnRuQ2xhc3MoKSB8fCB0aGlzLnNob3VsZElnbm9yZUJ0bkNsYXNzKCkgPyBbXSA6IFsnYnRuJ107XG4gICAgICAgIGNvbnN0IGN1c3RvbUNsYXNzZXMgPSB0aGlzLm1vZGVsKCk/LmN1c3RvbUNsYXNzZXM/LigpLnNwbGl0KCcgJykgfHwgdGhpcy5jdXN0b21DbGFzc2VzKCk/LnNwbGl0KCcgJykgfHwgW107XG5cbiAgICAgICAgaWYgKCFpc0xpbmsgJiYgKCEhb3V0bGluZUNscyB8fCAhIWdob3N0Q2xzIHx8ICEhdGhpcy5fY29sb3JTdHlsZSgpIHx8ICEhdGhpcy5fYnJhbmRDb2xvclN0eWxlKCkpKSB7XG4gICAgICAgICAgICBsQ2xhc3Nlcy5wdXNoKGBidG4tJHtvdXRsaW5lQ2xzIHx8IGdob3N0Q2xzfSR7dGhpcy5fY29sb3JTdHlsZSgpIHx8IHRoaXMuX2JyYW5kQ29sb3JTdHlsZSgpfWApO1xuICAgICAgICB9IGVsc2UgaWYgKCEhdGhpcy5fY29sb3JTdHlsZSgpIHx8ICEhdGhpcy5fYnJhbmRDb2xvclN0eWxlKCkpIHtcbiAgICAgICAgICAgIGxDbGFzc2VzLnB1c2goYGxpbmstJHt0aGlzLl9jb2xvclN0eWxlKCkgfHwgdGhpcy5fYnJhbmRDb2xvclN0eWxlKCl9YCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5tb2RlbCgpPy5pc1NxdWFyZSgpIHx8IHRoaXMuaXNTcXVhcmUoKSkge1xuICAgICAgICAgICAgbENsYXNzZXMucHVzaCgnYnRuLXNxdWFyZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubW9kZWwoKT8uaXNQaWxsKCkgfHwgdGhpcy5pc1BpbGwoKSkge1xuICAgICAgICAgICAgbENsYXNzZXMucHVzaCgnYnRuLXBpbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9pc0ljb24pIHtcbiAgICAgICAgICAgIGxDbGFzc2VzLnB1c2goJ2J0bi1pY29uJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5tb2RlbCgpPy5pc0xvYWRpbmcoKSB8fCB0aGlzLmlzTG9hZGluZygpKSB7XG4gICAgICAgICAgICBsQ2xhc3Nlcy5wdXNoKCdidG4tbG9hZGluZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubW9kZWwoKT8uaXNMaXN0KCkgfHwgdGhpcy5pc0xpc3QoKSkge1xuICAgICAgICAgICAgbENsYXNzZXMucHVzaCgnYnRuLWxpc3QnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1vZGVsKCk/LmlzRmxvYXRpbmcoKSB8fCB0aGlzLmlzRmxvYXRpbmcoKSkge1xuICAgICAgICAgICAgbENsYXNzZXMucHVzaCgnYnRuLWZsb2F0aW5nJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5tb2RlbCgpPy5pc0FjdGlvbigpIHx8IHRoaXMuaXNBY3Rpb24oKSkge1xuICAgICAgICAgICAgbENsYXNzZXMucHVzaCgnYnRuLWFjdGlvbicpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubW9kZWwoKT8uaXNOYXZpZ2F0aW9uTGluaygpIHx8IHRoaXMuaXNOYXZpZ2F0aW9uTGluaygpKSB7XG4gICAgICAgICAgICBsQ2xhc3Nlcy5wdXNoKCduYXYtbGluaycpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzTGluaykge1xuICAgICAgICAgICAgbENsYXNzZXMucHVzaCgnYnRuLWxpbmsnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1vZGVsKCk/LmlzQWN0aXZlKCkgfHwgdGhpcy5pc0FjdGl2ZSgpKSB7XG4gICAgICAgICAgICBsQ2xhc3Nlcy5wdXNoKCdhY3RpdmUnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1vZGVsKCk/LmlzRGlzYWJsZWQoKSB8fCB0aGlzLmlzRGlzYWJsZWQoKSkge1xuICAgICAgICAgICAgbENsYXNzZXMucHVzaCgnZGlzYWJsZWQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghIXRoaXMuYmFkZ2VDb25maWcoKSAmJiAodGhpcy5iYWRnZUNvbmZpZygpIS5pc0JsaW5raW5nIHx8IHRoaXMuYmFkZ2VDb25maWcoKSEuaXNOb3RpZmljYXRpb24pKSB7XG4gICAgICAgICAgICBsQ2xhc3Nlcy5wdXNoKCdwb3NpdGlvbi1yZWxhdGl2ZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgbENsYXNzZXMucHVzaCh0aGlzLnNpemVDbGFzcyk7XG5cbiAgICAgICAgcmV0dXJuIFsuLi5sQ2xhc3NlcywgLi4uY3VzdG9tQ2xhc3Nlc107XG4gICAgfSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0U2VydmljZSA9IGluamVjdChUZXh0U2VydmljZSk7XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gICAgb25DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoISF0aGlzLm1vZGVsKCkgJiYgISF0aGlzLm1vZGVsKCk/LmNsaWNrRnVuY3Rpb24pIHtcbiAgICAgICAgICAgIHRoaXMubW9kZWwoKSEuY2xpY2tGdW5jdGlvbiEoeyBldmVudCwgZGF0YTogdGhpcyB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY2xpY2tlZC5lbWl0KGV2ZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjdXNlckNvbnRlbnRUcGw+XG4gICAgQGlmICghIV9pY29uTW9kZWwgJiYgX2ljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnKSB7XG4gICAgICAgIDx1cGQtaWNvbiBbbW9kZWxdPVwiX2ljb25Nb2RlbFwiIFt0YWJsZXJJY29uU2l6ZV09XCJfaWNvbk1vZGVsLnRhYmxlckljb25TaXplIHx8IDIwXCJcbiAgICAgICAgICAgIFtoZXJvSWNvblNpemVdPVwiX2ljb25Nb2RlbC5oZXJvSWNvblNpemUgfHwgJ3NtYWxsJ1wiPlxuICAgICAgICA8L3VwZC1pY29uPlxuICAgIH1cblxuICAgIDxkaXYgW2NsYXNzLm14LTFdPVwiISFfaWNvbk1vZGVsICYmICFfaXNJY29uXCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cblxuICAgIEBpZiAoISFiYWRnZUNvbmZpZygpKSB7XG4gICAgICAgIDx1cGQtYmFkZ2UgW2NvbmZpZ109XCJiYWRnZUNvbmZpZygpXCI+PC91cGQtYmFkZ2U+XG4gICAgfVxuXG4gICAgQGlmICghIV9pY29uTW9kZWwgJiYgX2ljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xuICAgICAgICA8dXBkLWljb24gW21vZGVsXT1cIl9pY29uTW9kZWxcIiBbdGFibGVySWNvblNpemVdPVwiX2ljb25Nb2RlbC50YWJsZXJJY29uU2l6ZSB8fCAyMFwiXG4gICAgICAgICAgICBbaGVyb0ljb25TaXplXT1cIl9pY29uTW9kZWwuaGVyb0ljb25TaXplIHx8ICdzbWFsbCdcIj5cbiAgICAgICAgPC91cGQtaWNvbj5cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuXG5AaWYgKCFtYWluVGV4dCkge1xuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidXNlckNvbnRlbnRUcGxcIj48L25nLWNvbnRhaW5lcj5cbn0gQGVsc2Uge1xuICAgIEBpZiAoISFfaWNvbk1vZGVsICYmIF9pY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xuICAgICAgICA8dXBkLWljb24gW21vZGVsXT1cIl9pY29uTW9kZWxcIiBbdGFibGVySWNvblNpemVdPVwiX2ljb25Nb2RlbC50YWJsZXJJY29uU2l6ZSB8fCAyMFwiXG4gICAgICAgICAgICBbaGVyb0ljb25TaXplXT1cIl9pY29uTW9kZWwuaGVyb0ljb25TaXplIHx8ICdzbWFsbCdcIj5cbiAgICAgICAgPC91cGQtaWNvbj5cbiAgICB9XG5cbiAgICA8c3BhbiBbY2xhc3MubXgtMV09XCIhIV9pY29uTW9kZWxcIj5cbiAgICAgICAge3sgbWFpblRleHQgfX1cbiAgICA8L3NwYW4+XG5cbiAgICBAaWYgKCEhYmFkZ2VDb25maWcoKSkge1xuICAgICAgICA8dXBkLWJhZGdlIFtjb25maWddPVwiYmFkZ2VDb25maWcoKVwiPjwvdXBkLWJhZGdlPlxuICAgIH1cblxuICAgIEBpZiAoISFfaWNvbk1vZGVsICYmIF9pY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcbiAgICAgICAgPHVwZC1pY29uIFttb2RlbF09XCJfaWNvbk1vZGVsXCIgW3RhYmxlckljb25TaXplXT1cIl9pY29uTW9kZWwudGFibGVySWNvblNpemUgfHwgMjBcIlxuICAgICAgICAgICAgW2hlcm9JY29uU2l6ZV09XCJfaWNvbk1vZGVsLmhlcm9JY29uU2l6ZSB8fCAnc21hbGwnXCI+XG4gICAgICAgIDwvdXBkLWljb24+XG4gICAgfVxufVxuIl19
|
|
@@ -186,11 +186,11 @@ export class ModalContainerComponent extends BaseComponent {
|
|
|
186
186
|
}
|
|
187
187
|
}
|
|
188
188
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ModalContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
189
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: ModalContainerComponent, selector: "upd-modal-container", host: { properties: { "id": "this.id", "class": "this.hostClass", "role": "this.role", "aria-hidden": "this.ariaHidden", "aria-modal": "this.ariaModal", "tabindex": "this.tabIndex", "style.display": "this.styleDisplay" } }, viewQueries: [{ propertyName: "dialog", first: true, predicate: ["dialog"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "content", first: true, predicate: ["content"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "bodyContentOutlet", first: true, predicate: NgComponentOutlet, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *transloco=\"let t; prefix: 'UpDevs.Modal'\">\n <div [ngClass]=\"classes\" #dialog>\n <div class=\"modal-content\" tabindex=\"-1\" #content>\n @if (!!contentType) {\n <ng-container [ngComponentOutlet]=\"contentType\" [ngComponentOutletInputs]=\"{modalRef: this, data: data}\"></ng-container>\n } @else {\n @if (!isAlert && (!!titleText || !!headerTemplateRef)) {\n <div class=\"modal-header\">\n @if (!!headerTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"headerTemplateRef\" [ngTemplateOutletContext]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else {\n <h5 class=\"modal-title\">{{ titleText }}</h5>\n @if (showCloseButton) {\n <ng-container [ngTemplateOutlet]=\"closeBtnTpl\"></ng-container>\n }\n }\n </div>\n } @else if (showCloseButton) {\n <ng-container [ngTemplateOutlet]=\"closeBtnTpl\"></ng-container>\n }\n\n <div class=\"modal-body py-4\" [class.text-center]=\"isTextCentered || isAlert\">\n @if (isAlert && !!titleText) {\n <div class=\"d-flex justify-content-center align-content-start\"\n [class.flex-row]=\"titleIconPosition === 'left' || titleIconPosition === 'right'\"\n [class.flex-column]=\"titleIconPosition === 'top' || titleIconPosition === 'bottom'\">\n @if (!!titleIcon && (titleIconPosition === 'top' || titleIconPosition === 'left')) {\n <upd-icon [model]=\"titleIcon\" [class.me-2]=\"titleIconPosition === 'left'\"\n [class.mb-2]=\"titleIconPosition === 'top'\"></upd-icon>\n }\n\n <span class=\"align-self-center fs-3 fw-bold\" [class.mb-3]=\"!!titleIcon && titleIconPosition === 'top'\">\n {{ titleText }}\n </span>\n\n @if (!!titleIcon && (titleIconPosition === 'bottom' || titleIconPosition === 'right')) {\n <upd-icon [model]=\"titleIcon\" [class.ms-2]=\"titleIconPosition === 'right'\"\n [class.mb-2]=\"titleIconPosition === 'bottom'\"></upd-icon>\n }\n </div>\n }\n\n @if (!!bodyTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"bodyTemplateRef!\" [ngTemplateOutletContext]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else if (!!bodyContentType) {\n <ng-container [ngComponentOutlet]=\"bodyContentType\" [ngComponentOutletInputs]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else {\n <div [innerHTML]=\"bodyText\" [class.text-secondary]=\"isAlert\"></div>\n }\n </div>\n\n @if (!!statusColor) {\n <div class=\"modal-status\" [style.position]=\"'relative'\" [ngClass]=\"statusColorClass\"></div>\n }\n\n @if (showCancelButton || actionButtons.length > 0 || !!footerTemplateRef) {\n <div class=\"modal-footer\">\n @if (!!footerTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"footerTemplateRef\" [ngTemplateOutletContext]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else {\n @switch (footerLayout) {\n @case ('full-width') {\n <div class=\"w-100\">\n <div class=\"row\">\n @if (showCancelButton) {\n <div class=\"col\">\n <upd-button class=\"w-100\" [isNavigationLink]=\"true\" (clicked)=\"close()\">\n {{ t('Cancel') }}\n </upd-button>\n </div>\n }\n\n @for (btn of actionButtons; track btn) {\n <div class=\"col\">\n <upd-button class=\"w-100\" [model]=\"btn\"></upd-button>\n </div>\n }\n </div>\n </div>\n }\n @case ('centered') {\n <div class=\"d-flex justify-content-center w-100\">\n <ng-container [ngTemplateOutlet]=\"buttonsTpl\"></ng-container>\n </div>\n }\n @default {\n <ng-container [ngTemplateOutlet]=\"buttonsTpl\"></ng-container>\n }\n }\n }\n </div>\n }\n }\n </div>\n </div>\n\n <ng-template #closeBtnTpl>\n <upd-button (clicked)=\"close()\" [shouldIgnoreBtnClass]=\"true\" customClasses=\"btn-close\"></upd-button>\n </ng-template>\n\n <ng-template #buttonsTpl>\n @if (showCancelButton) {\n <upd-button colorStyle=\"secondary\" [isLink]=\"true\" (clicked)=\"close()\">\n {{ t('Cancel') }}\n </upd-button>\n }\n\n @for (btn of actionButtons; track btn
|
|
189
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: ModalContainerComponent, selector: "upd-modal-container", host: { properties: { "id": "this.id", "class": "this.hostClass", "role": "this.role", "aria-hidden": "this.ariaHidden", "aria-modal": "this.ariaModal", "tabindex": "this.tabIndex", "style.display": "this.styleDisplay" } }, viewQueries: [{ propertyName: "dialog", first: true, predicate: ["dialog"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "content", first: true, predicate: ["content"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "bodyContentOutlet", first: true, predicate: NgComponentOutlet, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *transloco=\"let t; prefix: 'UpDevs.Modal'\">\n <div [ngClass]=\"classes\" #dialog>\n <div class=\"modal-content\" tabindex=\"-1\" #content>\n @if (!!contentType) {\n <ng-container [ngComponentOutlet]=\"contentType\" [ngComponentOutletInputs]=\"{modalRef: this, data: data}\"></ng-container>\n } @else {\n @if (!isAlert && (!!titleText || !!headerTemplateRef)) {\n <div class=\"modal-header\">\n @if (!!headerTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"headerTemplateRef\" [ngTemplateOutletContext]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else {\n <h5 class=\"modal-title\">{{ titleText }}</h5>\n @if (showCloseButton) {\n <ng-container [ngTemplateOutlet]=\"closeBtnTpl\"></ng-container>\n }\n }\n </div>\n } @else if (showCloseButton) {\n <ng-container [ngTemplateOutlet]=\"closeBtnTpl\"></ng-container>\n }\n\n <div class=\"modal-body py-4\" [class.text-center]=\"isTextCentered || isAlert\">\n @if (isAlert && !!titleText) {\n <div class=\"d-flex justify-content-center align-content-start\"\n [class.flex-row]=\"titleIconPosition === 'left' || titleIconPosition === 'right'\"\n [class.flex-column]=\"titleIconPosition === 'top' || titleIconPosition === 'bottom'\">\n @if (!!titleIcon && (titleIconPosition === 'top' || titleIconPosition === 'left')) {\n <upd-icon [model]=\"titleIcon\" [class.me-2]=\"titleIconPosition === 'left'\"\n [class.mb-2]=\"titleIconPosition === 'top'\"></upd-icon>\n }\n\n <span class=\"align-self-center fs-3 fw-bold\" [class.mb-3]=\"!!titleIcon && titleIconPosition === 'top'\">\n {{ titleText }}\n </span>\n\n @if (!!titleIcon && (titleIconPosition === 'bottom' || titleIconPosition === 'right')) {\n <upd-icon [model]=\"titleIcon\" [class.ms-2]=\"titleIconPosition === 'right'\"\n [class.mb-2]=\"titleIconPosition === 'bottom'\"></upd-icon>\n }\n </div>\n }\n\n @if (!!bodyTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"bodyTemplateRef!\" [ngTemplateOutletContext]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else if (!!bodyContentType) {\n <ng-container [ngComponentOutlet]=\"bodyContentType\" [ngComponentOutletInputs]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else {\n <div [innerHTML]=\"bodyText\" [class.text-secondary]=\"isAlert\"></div>\n }\n </div>\n\n @if (!!statusColor) {\n <div class=\"modal-status\" [style.position]=\"'relative'\" [ngClass]=\"statusColorClass\"></div>\n }\n\n @if (showCancelButton || actionButtons.length > 0 || !!footerTemplateRef) {\n <div class=\"modal-footer\">\n @if (!!footerTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"footerTemplateRef\" [ngTemplateOutletContext]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else {\n @switch (footerLayout) {\n @case ('full-width') {\n <div class=\"w-100\">\n <div class=\"row\">\n @if (showCancelButton) {\n <div class=\"col\">\n <upd-button class=\"w-100\" [isNavigationLink]=\"true\" (clicked)=\"close()\">\n {{ t('Cancel') }}\n </upd-button>\n </div>\n }\n\n @for (btn of actionButtons; track btn) {\n <div class=\"col\">\n <upd-button class=\"w-100\" [model]=\"btn\"></upd-button>\n </div>\n }\n </div>\n </div>\n }\n @case ('centered') {\n <div class=\"d-flex justify-content-center w-100\">\n <ng-container [ngTemplateOutlet]=\"buttonsTpl\"></ng-container>\n </div>\n }\n @default {\n <ng-container [ngTemplateOutlet]=\"buttonsTpl\"></ng-container>\n }\n }\n }\n </div>\n }\n }\n </div>\n </div>\n\n <ng-template #closeBtnTpl>\n <upd-button (clicked)=\"close()\" [shouldIgnoreBtnClass]=\"true\" customClasses=\"btn-close\"></upd-button>\n </ng-template>\n\n <ng-template #buttonsTpl>\n @if (showCancelButton) {\n <upd-button colorStyle=\"secondary\" [isLink]=\"true\" (clicked)=\"close()\">\n {{ t('Cancel') }}\n </upd-button>\n }\n\n @for (btn of actionButtons; track btn) {\n <upd-button [model]=\"btn\" (clicked)=\"buttonClick($event, btn)\"></upd-button>\n }\n </ng-template>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title"], outputs: ["clicked"] }, { kind: "component", type: i3.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] }); }
|
|
190
190
|
}
|
|
191
191
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ModalContainerComponent, decorators: [{
|
|
192
192
|
type: Component,
|
|
193
|
-
args: [{ selector: 'upd-modal-container', template: "<ng-container *transloco=\"let t; prefix: 'UpDevs.Modal'\">\n <div [ngClass]=\"classes\" #dialog>\n <div class=\"modal-content\" tabindex=\"-1\" #content>\n @if (!!contentType) {\n <ng-container [ngComponentOutlet]=\"contentType\" [ngComponentOutletInputs]=\"{modalRef: this, data: data}\"></ng-container>\n } @else {\n @if (!isAlert && (!!titleText || !!headerTemplateRef)) {\n <div class=\"modal-header\">\n @if (!!headerTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"headerTemplateRef\" [ngTemplateOutletContext]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else {\n <h5 class=\"modal-title\">{{ titleText }}</h5>\n @if (showCloseButton) {\n <ng-container [ngTemplateOutlet]=\"closeBtnTpl\"></ng-container>\n }\n }\n </div>\n } @else if (showCloseButton) {\n <ng-container [ngTemplateOutlet]=\"closeBtnTpl\"></ng-container>\n }\n\n <div class=\"modal-body py-4\" [class.text-center]=\"isTextCentered || isAlert\">\n @if (isAlert && !!titleText) {\n <div class=\"d-flex justify-content-center align-content-start\"\n [class.flex-row]=\"titleIconPosition === 'left' || titleIconPosition === 'right'\"\n [class.flex-column]=\"titleIconPosition === 'top' || titleIconPosition === 'bottom'\">\n @if (!!titleIcon && (titleIconPosition === 'top' || titleIconPosition === 'left')) {\n <upd-icon [model]=\"titleIcon\" [class.me-2]=\"titleIconPosition === 'left'\"\n [class.mb-2]=\"titleIconPosition === 'top'\"></upd-icon>\n }\n\n <span class=\"align-self-center fs-3 fw-bold\" [class.mb-3]=\"!!titleIcon && titleIconPosition === 'top'\">\n {{ titleText }}\n </span>\n\n @if (!!titleIcon && (titleIconPosition === 'bottom' || titleIconPosition === 'right')) {\n <upd-icon [model]=\"titleIcon\" [class.ms-2]=\"titleIconPosition === 'right'\"\n [class.mb-2]=\"titleIconPosition === 'bottom'\"></upd-icon>\n }\n </div>\n }\n\n @if (!!bodyTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"bodyTemplateRef!\" [ngTemplateOutletContext]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else if (!!bodyContentType) {\n <ng-container [ngComponentOutlet]=\"bodyContentType\" [ngComponentOutletInputs]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else {\n <div [innerHTML]=\"bodyText\" [class.text-secondary]=\"isAlert\"></div>\n }\n </div>\n\n @if (!!statusColor) {\n <div class=\"modal-status\" [style.position]=\"'relative'\" [ngClass]=\"statusColorClass\"></div>\n }\n\n @if (showCancelButton || actionButtons.length > 0 || !!footerTemplateRef) {\n <div class=\"modal-footer\">\n @if (!!footerTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"footerTemplateRef\" [ngTemplateOutletContext]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else {\n @switch (footerLayout) {\n @case ('full-width') {\n <div class=\"w-100\">\n <div class=\"row\">\n @if (showCancelButton) {\n <div class=\"col\">\n <upd-button class=\"w-100\" [isNavigationLink]=\"true\" (clicked)=\"close()\">\n {{ t('Cancel') }}\n </upd-button>\n </div>\n }\n\n @for (btn of actionButtons; track btn) {\n <div class=\"col\">\n <upd-button class=\"w-100\" [model]=\"btn\"></upd-button>\n </div>\n }\n </div>\n </div>\n }\n @case ('centered') {\n <div class=\"d-flex justify-content-center w-100\">\n <ng-container [ngTemplateOutlet]=\"buttonsTpl\"></ng-container>\n </div>\n }\n @default {\n <ng-container [ngTemplateOutlet]=\"buttonsTpl\"></ng-container>\n }\n }\n }\n </div>\n }\n }\n </div>\n </div>\n\n <ng-template #closeBtnTpl>\n <upd-button (clicked)=\"close()\" [shouldIgnoreBtnClass]=\"true\" customClasses=\"btn-close\"></upd-button>\n </ng-template>\n\n <ng-template #buttonsTpl>\n @if (showCancelButton) {\n <upd-button colorStyle=\"secondary\" [isLink]=\"true\" (clicked)=\"close()\">\n {{ t('Cancel') }}\n </upd-button>\n }\n\n @for (btn of actionButtons; track btn
|
|
193
|
+
args: [{ selector: 'upd-modal-container', template: "<ng-container *transloco=\"let t; prefix: 'UpDevs.Modal'\">\n <div [ngClass]=\"classes\" #dialog>\n <div class=\"modal-content\" tabindex=\"-1\" #content>\n @if (!!contentType) {\n <ng-container [ngComponentOutlet]=\"contentType\" [ngComponentOutletInputs]=\"{modalRef: this, data: data}\"></ng-container>\n } @else {\n @if (!isAlert && (!!titleText || !!headerTemplateRef)) {\n <div class=\"modal-header\">\n @if (!!headerTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"headerTemplateRef\" [ngTemplateOutletContext]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else {\n <h5 class=\"modal-title\">{{ titleText }}</h5>\n @if (showCloseButton) {\n <ng-container [ngTemplateOutlet]=\"closeBtnTpl\"></ng-container>\n }\n }\n </div>\n } @else if (showCloseButton) {\n <ng-container [ngTemplateOutlet]=\"closeBtnTpl\"></ng-container>\n }\n\n <div class=\"modal-body py-4\" [class.text-center]=\"isTextCentered || isAlert\">\n @if (isAlert && !!titleText) {\n <div class=\"d-flex justify-content-center align-content-start\"\n [class.flex-row]=\"titleIconPosition === 'left' || titleIconPosition === 'right'\"\n [class.flex-column]=\"titleIconPosition === 'top' || titleIconPosition === 'bottom'\">\n @if (!!titleIcon && (titleIconPosition === 'top' || titleIconPosition === 'left')) {\n <upd-icon [model]=\"titleIcon\" [class.me-2]=\"titleIconPosition === 'left'\"\n [class.mb-2]=\"titleIconPosition === 'top'\"></upd-icon>\n }\n\n <span class=\"align-self-center fs-3 fw-bold\" [class.mb-3]=\"!!titleIcon && titleIconPosition === 'top'\">\n {{ titleText }}\n </span>\n\n @if (!!titleIcon && (titleIconPosition === 'bottom' || titleIconPosition === 'right')) {\n <upd-icon [model]=\"titleIcon\" [class.ms-2]=\"titleIconPosition === 'right'\"\n [class.mb-2]=\"titleIconPosition === 'bottom'\"></upd-icon>\n }\n </div>\n }\n\n @if (!!bodyTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"bodyTemplateRef!\" [ngTemplateOutletContext]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else if (!!bodyContentType) {\n <ng-container [ngComponentOutlet]=\"bodyContentType\" [ngComponentOutletInputs]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else {\n <div [innerHTML]=\"bodyText\" [class.text-secondary]=\"isAlert\"></div>\n }\n </div>\n\n @if (!!statusColor) {\n <div class=\"modal-status\" [style.position]=\"'relative'\" [ngClass]=\"statusColorClass\"></div>\n }\n\n @if (showCancelButton || actionButtons.length > 0 || !!footerTemplateRef) {\n <div class=\"modal-footer\">\n @if (!!footerTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"footerTemplateRef\" [ngTemplateOutletContext]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else {\n @switch (footerLayout) {\n @case ('full-width') {\n <div class=\"w-100\">\n <div class=\"row\">\n @if (showCancelButton) {\n <div class=\"col\">\n <upd-button class=\"w-100\" [isNavigationLink]=\"true\" (clicked)=\"close()\">\n {{ t('Cancel') }}\n </upd-button>\n </div>\n }\n\n @for (btn of actionButtons; track btn) {\n <div class=\"col\">\n <upd-button class=\"w-100\" [model]=\"btn\"></upd-button>\n </div>\n }\n </div>\n </div>\n }\n @case ('centered') {\n <div class=\"d-flex justify-content-center w-100\">\n <ng-container [ngTemplateOutlet]=\"buttonsTpl\"></ng-container>\n </div>\n }\n @default {\n <ng-container [ngTemplateOutlet]=\"buttonsTpl\"></ng-container>\n }\n }\n }\n </div>\n }\n }\n </div>\n </div>\n\n <ng-template #closeBtnTpl>\n <upd-button (clicked)=\"close()\" [shouldIgnoreBtnClass]=\"true\" customClasses=\"btn-close\"></upd-button>\n </ng-template>\n\n <ng-template #buttonsTpl>\n @if (showCancelButton) {\n <upd-button colorStyle=\"secondary\" [isLink]=\"true\" (clicked)=\"close()\">\n {{ t('Cancel') }}\n </upd-button>\n }\n\n @for (btn of actionButtons; track btn) {\n <upd-button [model]=\"btn\" (clicked)=\"buttonClick($event, btn)\"></upd-button>\n }\n </ng-template>\n</ng-container>\n" }]
|
|
194
194
|
}], propDecorators: { id: [{
|
|
195
195
|
type: HostBinding,
|
|
196
196
|
args: ['id']
|
|
@@ -213,4 +213,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
213
213
|
type: HostBinding,
|
|
214
214
|
args: ['style.display']
|
|
215
215
|
}] } });
|
|
216
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tb2RhbC9zcmMvY29tcG9uZW50cy9tb2RhbC1jb250YWluZXIvbW9kYWwtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tb2RhbC9zcmMvY29tcG9uZW50cy9tb2RhbC1jb250YWluZXIvbW9kYWwtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBZSxNQUFNLEVBQVEsVUFBVSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ2xJLE9BQU8sRUFBRSxXQUFXLEVBQWEsTUFBTSxhQUFhLENBQUM7QUFDckQsT0FBTyxFQUNILEtBQUssSUFBSSxXQUFXLEVBQ3BCLGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsYUFBYSxFQUdoQixNQUFNLG9CQUFvQixDQUFDO0FBTTVCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7QUFJbkUsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDO0FBT3BCLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxhQUFhO0lBTDFEOztRQU11QixPQUFFLEdBQUcsU0FBUyxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBQzNCLGNBQVMsR0FBRyxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0MsU0FBSSxHQUFHLFFBQVEsQ0FBQztRQUNULGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbkIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNwQixhQUFRLEdBQUcs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S0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7Z0JBQ2xCLFFBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyQixDQUFDLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxjQUFjO1FBQ2xCLElBQUksSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQy9ELENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMvRCxDQUFDO0lBQ0wsQ0FBQzs4R0E5TVEsdUJBQXVCO2tHQUF2Qix1QkFBdUIsd1dBU2MsVUFBVSw2R0FDUixVQUFVLGlGQUNULGlCQUFpQix1RkN0Q3RFLGl5TUFvSEE7OzJGRHpGYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0kscUJBQXFCOzhCQUtaLEVBQUU7c0JBQXBCLFdBQVc7dUJBQUMsSUFBSTtnQkFDSyxTQUFTO3NCQUE5QixXQUFXO3VCQUFDLE9BQU87Z0JBQ0MsSUFBSTtzQkFBeEIsV0FBVzt1QkFBQyxNQUFNO2dCQUNTLFVBQVU7c0JBQXJDLFdBQVc7dUJBQUMsYUFBYTtnQkFDQyxTQUFTO3NCQUFuQyxXQUFXO3VCQUFDLFlBQVk7Z0JBQ0EsUUFBUTtzQkFBaEMsV0FBVzt1QkFBQyxVQUFVO2dCQUNPLFlBQVk7c0JBQXpDLFdBQVc7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5ULCBOZ0NvbXBvbmVudE91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBUZW1wbGF0ZVJlZiwgaW5qZWN0LCBUeXBlLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIsIHZpZXdDaGlsZCwgQ29tcG9uZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUZXh0U2VydmljZSwgVGV4dE1vZGVsIH0gZnJvbSAnQHVwZGV2cy9zZGsnO1xuaW1wb3J0IHtcbiAgICBVdGlscyBhcyBMYXlvdXRVdGlscyxcbiAgICBMYXlvdXRTZXJ2aWNlLFxuICAgIFNjcm9sbGJhclNlcnZpY2UsXG4gICAgQmFzZUNvbXBvbmVudCxcbiAgICBPdmVybGF5LFxuICAgIEJ1dHRvbk1vZGVsXG59IGZyb20gJ0B1cGRldnMvc2RrL2xheW91dCc7XG5pbXBvcnQgeyBUb3BCb3R0b21MZWZ0UmlnaHRUeXBlLCBPcHRpb25hbFR5cGUsIEJnQ29sb3JTdHlsZVR5cGUgfSBmcm9tICdAdXBkZXZzL3Nkay90eXBlcyc7XG5pbXBvcnQgeyBJY29uTW9kZWwgfSBmcm9tICdAdXBkZXZzL2ljb25zJztcblxuaW1wb3J0IHsgTW9kYWxTaXplVHlwZSB9IGZyb20gJy4uLy4uL3R5cGVzL21vZGFsLXNpemUudHlwZSc7XG5pbXBvcnQgeyBNb2RhbENvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVscy9tb2RhbC5jb25maWcnO1xuaW1wb3J0IHsgTW9kYWxDb25maWdNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9tb2RhbC1jb25maWcubW9kZWwnO1xuaW1wb3J0IHsgTW9kYWxGb290ZXJTdHlsZVR5cGUgfSBmcm9tICcuLi8uLi90eXBlcy9tb2RhbC1mb290ZXItc3R5bGUudHlwZSc7XG5pbXBvcnQgeyBNb2RhbFJlZiB9IGZyb20gJy4uLy4uL21vZGVscy9tb2RhbC1yZWYnO1xuXG5sZXQgY29udGFpbmVySWQgPSAxO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3VwZC1tb2RhbC1jb250YWluZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tb2RhbC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9tb2RhbC1jb250YWluZXIuY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIE1vZGFsQ29udGFpbmVyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE1vZGFsQ29uZmlnLCBNb2RhbFJlZiB7XG4gICAgQEhvc3RCaW5kaW5nKCdpZCcpIGlkID0gYG1vZGFsLSR7Y29udGFpbmVySWQrK31gO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBob3N0Q2xhc3MgPSBbJ21vZGFsJywgJ21vZGFsLWJsdXInLCAnZmFkZSddO1xuICAgIEBIb3N0QmluZGluZygncm9sZScpIHJvbGUgPSAnZGlhbG9nJztcbiAgICBASG9zdEJpbmRpbmcoJ2FyaWEtaGlkZGVuJykgYXJpYUhpZGRlbiA9IHRydWU7XG4gICAgQEhvc3RCaW5kaW5nKCdhcmlhLW1vZGFsJykgYXJpYU1vZGFsID0gZmFsc2U7XG4gICAgQEhvc3RCaW5kaW5nKCd0YWJpbmRleCcpIHRhYkluZGV4ID0gLTE7XG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5kaXNwbGF5Jykgc3R5bGVEaXNwbGF5Pzogc3RyaW5nO1xuXG4gICAgZGlhbG9nID0gdmlld0NoaWxkLnJlcXVpcmVkKCdkaWFsb2cnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSk7XG4gICAgY29udGVudCA9IHZpZXdDaGlsZC5yZXF1aXJlZCgnY29udGVudCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KTtcbiAgICBib2R5Q29udGVudE91dGxldCA9IHZpZXdDaGlsZDxOZ0NvbXBvbmVudE91dGxldD4oTmdDb21wb25lbnRPdXRsZXQpO1xuICAgIHNpemU6IE1vZGFsU2l6ZVR5cGUgPSAncmVndWxhcic7XG4gICAgaXNWZXJ0aWNhbGx5Q2VudGVyZWQgPSB0cnVlO1xuICAgIGlzU2Nyb2xsYWJsZSA9IGZhbHNlO1xuICAgIHNob3dDbG9zZUJ1dHRvbiA9IHRydWU7XG4gICAgc2hvd0NhbmNlbEJ1dHRvbiA9IGZhbHNlO1xuICAgIGlzVGV4dENlbnRlcmVkID0gdHJ1ZTtcbiAgICBzaG91bGREaXNtaXNzT25Fc2MgPSBmYWxzZTtcbiAgICBzaG91bGREaXNtaXNzT25PdXRzaWRlQ2xpY2sgPSBmYWxzZTtcbiAgICBpc0FsZXJ0ID0gZmFsc2U7XG4gICAgc3RhdHVzQ29sb3I/OiBCZ0NvbG9yU3R5bGVUeXBlO1xuICAgIGhlYWRlclRlbXBsYXRlUmVmPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBmb290ZXJUZW1wbGF0ZVJlZj86IFRlbXBsYXRlUmVmPGFueT47XG4gICAgYm9keVRlbXBsYXRlUmVmPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBib2R5Q29udGVudFR5cGU/OiBUeXBlPGFueT47XG4gICAgY29udGVudFR5cGU/OiBUeXBlPGFueT47XG4gICAgYm9keT86IFRleHRNb2RlbDtcbiAgICB0aXRsZT86IFRleHRNb2RlbDtcbiAgICB0aXRsZUljb24/OiBJY29uTW9kZWw7XG4gICAgdGl0bGVJY29uUG9zaXRpb24/OiBUb3BCb3R0b21MZWZ0UmlnaHRUeXBlID0gJ3RvcCc7XG4gICAgZm9vdGVyTGF5b3V0PzogTW9kYWxGb290ZXJTdHlsZVR5cGUgPSAnZGVmYXVsdCc7XG4gICAgYWN0aW9uQnV0dG9uczogQnV0dG9uTW9kZWxbXSA9IFtdO1xuICAgIG92ZXJsYXkhOiBPdmVybGF5O1xuICAgIG1vZGFsQ29udGFpbmVyUmVmITogQ29tcG9uZW50UmVmPE1vZGFsQ29udGFpbmVyQ29tcG9uZW50PjtcbiAgICBkYXRhPzogYW55O1xuICAgIGFmdGVyQ2xvc2U/OiAocmVzdWx0PzogYW55KSA9PiB2b2lkO1xuXG4gICAgZ2V0IGNsYXNzZXMoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ21vZGFsLWRpYWxvZycsXG4gICAgICAgICAgICB0aGlzLmlzVmVydGljYWxseUNlbnRlcmVkID8gJ21vZGFsLWRpYWxvZy1jZW50ZXJlZCcgOiAnJyxcbiAgICAgICAgICAgIHRoaXMuaXNTY3JvbGxhYmxlID8gJ21vZGFsLWRpYWxvZy1zY3JvbGxhYmxlJyA6ICcnLFxuICAgICAgICAgICAgdGhpcy5zaXplQ2xhc3NcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBnZXQgdGl0bGVUZXh0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRTZXJ2aWNlLmdldFRleHQodGhpcy50aXRsZSk7XG4gICAgfVxuXG4gICAgZ2V0IGJvZHlUZXh0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRTZXJ2aWNlLmdldFRleHQodGhpcy5ib2R5KTtcbiAgICB9XG5cbiAgICBnZXQgc3RhdHVzQ29sb3JDbGFzcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYGJnLSR7dGhpcy5zdGF0dXNDb2xvcn1gO1xuICAgIH1cblxuICAgIGdldCBzaXplQ2xhc3MoKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGNscyA9ICcnO1xuXG4gICAgICAgIHN3aXRjaCAodGhpcy5zaXplKSB7XG4gICAgICAgICAgICBjYXNlICdzbWFsbCc6XG4gICAgICAgICAgICAgICAgY2xzID0gJ21vZGFsLXNtJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2xhcmdlJzpcbiAgICAgICAgICAgICAgICBjbHMgPSAnbW9kYWwtbGcnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZXh0cmEtbGFyZ2UnOlxuICAgICAgICAgICAgICAgIGNscyA9ICdtb2RhbC14bCc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2xzO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVhZG9ubHkgb3BlbkNsYXNzID0gJ21vZGFsLW9wZW4nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dFNlcnZpY2UgPSBpbmplY3QoVGV4dFNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxheW91dFNlcnZpY2UgPSBpbmplY3QoTGF5b3V0U2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzY3JvbGxiYXJTZXJ2aWNlID0gaW5qZWN0KFNjcm9sbGJhclNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcblxuICAgIHByaXZhdGUgZ2V0IGVsZW1lbnQoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIHByZXBhcmVUb1Nob3coY29uZmlnPzogTW9kYWxDb25maWcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXR1cENvbmZpZyhjb25maWcpO1xuICAgICAgICB0aGlzLnNjcm9sbGJhclNlcnZpY2UuaGlkZSgpO1xuICAgICAgICB0aGlzLmxheW91dFNlcnZpY2UuYWRkQm9keUNsYXNzZXModGhpcy5vcGVuQ2xhc3MpO1xuICAgICAgICB0aGlzLmFkanVzdERpYWxvZygpO1xuICAgICAgICB0aGlzLnNldHVwQWN0aW9uQnV0dG9ucygpO1xuICAgIH1cblxuICAgIHNob3coKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0dXBMaXN0ZW5lcnMoKTtcblxuICAgICAgICB0aGlzLnN0eWxlRGlzcGxheSA9ICdibG9jayc7XG4gICAgICAgIHRoaXMuYXJpYUhpZGRlbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLmFyaWFNb2RhbCA9IHRydWU7XG4gICAgICAgIHRoaXMuZWxlbWVudC5zY3JvbGxUb3AgPSAwO1xuICAgICAgICB0aGlzLmRpYWxvZygpLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID0gMDtcblxuICAgICAgICBMYXlvdXRVdGlscy5yZWZsb3codGhpcy5lbGVtZW50KTtcblxuICAgICAgICBjb25zdCB0cmFuc2l0aW9uU3ViID0gTGF5b3V0VXRpbHMuZXhlY3V0ZUFmdGVyVHJhbnNpdGlvbih0aGlzLmVsZW1lbnQpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnc2hvdycpO1xuICAgICAgICAgICAgdGhpcy5jb250ZW50KCkubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmFkZFN1YnNjcmlwdGlvbnModHJhbnNpdGlvblN1Yik7XG4gICAgfVxuXG4gICAgY2xvc2UocmVzdWx0PzogYW55KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRyYW5zaXRpb25TdWIgPSBMYXlvdXRVdGlscy5leGVjdXRlQWZ0ZXJUcmFuc2l0aW9uKHRoaXMuZWxlbWVudCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc3R5bGVEaXNwbGF5ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgdGhpcy5hcmlhSGlkZGVuID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuYXJpYU1vZGFsID0gZmFsc2U7XG5cbiAgICAgICAgICAgIGlmICghIXRoaXMuYWZ0ZXJDbG9zZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWZ0ZXJDbG9zZShyZXN1bHQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLm92ZXJsYXkuaGlkZSgpO1xuICAgICAgICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLnJlbW92ZUJvZHlDbGFzc2VzKHRoaXMub3BlbkNsYXNzKTtcbiAgICAgICAgICAgIHRoaXMubW9kYWxDb250YWluZXJSZWYuZGVzdHJveSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnc2hvdycpO1xuICAgICAgICB0aGlzLmFkZFN1YnNjcmlwdGlvbnModHJhbnNpdGlvblN1Yik7XG4gICAgfVxuXG4gICAgYnV0dG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQsIGJ0bjogQnV0dG9uTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgaWYgKCEhYnRuLmNsaWNrRnVuY3Rpb24pIHtcbiAgICAgICAgICAgIGJ0bi5jbGlja0Z1bmN0aW9uKHsgZXZlbnQsIGRhdGE6IGJ0biB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldEJvZHlJbnN0YW5jZTxUPigpOiBPcHRpb25hbFR5cGU8VD4ge1xuICAgICAgICByZXR1cm4gPFQ+dGhpcy5ib2R5Q29udGVudE91dGxldCgpPy5bJ19jb21wb25lbnRSZWYnXS5pbnN0YW5jZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFkanVzdERpYWxvZygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaXNNb2RhbE92ZXJmbG93aW5nID0gdGhpcy5lbGVtZW50LnNjcm9sbEhlaWdodCA+IHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDtcbiAgICAgICAgY29uc3Qgc2Nyb2xsYmFyV2lkdGggPSB0aGlzLnNjcm9sbGJhclNlcnZpY2UuZ2V0V2lkdGgoKTtcbiAgICAgICAgY29uc3QgaXNCb2R5T3ZlcmZsb3dpbmcgPSBzY3JvbGxiYXJXaWR0aCA+IDA7XG5cbiAgICAgICAgaWYgKGlzQm9keU92ZXJmbG93aW5nICYmICFpc01vZGFsT3ZlcmZsb3dpbmcpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50LCAncGFkZGluZ1JpZ2h0JywgYCR7c2Nyb2xsYmFyV2lkdGh9cHhgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaXNCb2R5T3ZlcmZsb3dpbmcgJiYgaXNNb2RhbE92ZXJmbG93aW5nKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudCwgJ3BhZGRpbmdMZWZ0JywgYCR7c2Nyb2xsYmFyV2lkdGh9cHhgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0dXBDb25maWcoY29uZmlnPzogTW9kYWxDb25maWcpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFjb25maWcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbmZpZ01vZGVsID0gbmV3IE1vZGFsQ29uZmlnTW9kZWwoY29uZmlnKTtcbiAgICAgICAgdGhpcy5zaXplID0gY29uZmlnTW9kZWwuc2l6ZTtcbiAgICAgICAgdGhpcy5pc1ZlcnRpY2FsbHlDZW50ZXJlZCA9IGNvbmZpZ01vZGVsLmlzVmVydGljYWxseUNlbnRlcmVkO1xuICAgICAgICB0aGlzLmlzU2Nyb2xsYWJsZSA9IGNvbmZpZ01vZGVsLmlzU2Nyb2xsYWJsZTtcbiAgICAgICAgdGhpcy5zaG93Q2FuY2VsQnV0dG9uID0gY29uZmlnTW9kZWwuc2hvd0NhbmNlbEJ1dHRvbjtcbiAgICAgICAgdGhpcy5zaG93Q2xvc2VCdXR0b24gPSBjb25maWdNb2RlbC5zaG93Q2xvc2VCdXR0b247XG4gICAgICAgIHRoaXMuc2hvdWxkRGlzbWlzc09uRXNjID0gY29uZmlnTW9kZWwuc2hvdWxkRGlzbWlzc09uRXNjO1xuICAgICAgICB0aGlzLnNob3VsZERpc21pc3NPbk91dHNpZGVDbGljayA9IGNvbmZpZ01vZGVsLnNob3VsZERpc21pc3NPbk91dHNpZGVDbGljaztcbiAgICAgICAgdGhpcy5pc0FsZXJ0ID0gY29uZmlnTW9kZWwuaXNBbGVydDtcbiAgICAgICAgdGhpcy5pc1RleHRDZW50ZXJlZCA9IGNvbmZpZ01vZGVsLmlzVGV4dENlbnRlcmVkO1xuICAgICAgICB0aGlzLnN0YXR1c0NvbG9yID0gY29uZmlnTW9kZWwuc3RhdHVzQ29sb3I7XG4gICAgICAgIHRoaXMuaGVhZGVyVGVtcGxhdGVSZWYgPSBjb25maWdNb2RlbC5oZWFkZXJUZW1wbGF0ZVJlZjtcbiAgICAgICAgdGhpcy5mb290ZXJUZW1wbGF0ZVJlZiA9IGNvbmZpZ01vZGVsLmZvb3RlclRlbXBsYXRlUmVmO1xuICAgICAgICB0aGlzLmJvZHlUZW1wbGF0ZVJlZiA9IGNvbmZpZ01vZGVsLmJvZHlUZW1wbGF0ZVJlZjtcbiAgICAgICAgdGhpcy5ib2R5Q29udGVudFR5cGUgPSBjb25maWdNb2RlbC5ib2R5Q29udGVudFR5cGU7XG4gICAgICAgIHRoaXMuYm9keSA9IGNvbmZpZ01vZGVsLmJvZHk7XG4gICAgICAgIHRoaXMudGl0bGUgPSBjb25maWdNb2RlbC50aXRsZTtcbiAgICAgICAgdGhpcy50aXRsZUljb24gPSBjb25maWdNb2RlbC50aXRsZUljb247XG4gICAgICAgIHRoaXMudGl0bGVJY29uUG9zaXRpb24gPSBjb25maWdNb2RlbC50aXRsZUljb25Qb3NpdGlvbjtcbiAgICAgICAgdGhpcy5mb290ZXJMYXlvdXQgPSBjb25maWdNb2RlbC5mb290ZXJMYXlvdXQ7XG4gICAgICAgIHRoaXMuYWN0aW9uQnV0dG9ucyA9IGNvbmZpZ01vZGVsLmFjdGlvbkJ1dHRvbnM7XG4gICAgICAgIHRoaXMuZGF0YSA9IGNvbmZpZ01vZGVsLmRhdGE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXR1cEFjdGlvbkJ1dHRvbnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aW9uQnV0dG9ucy5mb3JFYWNoKGJ0biA9PiB7XG4gICAgICAgICAgICBjb25zdCBmbkJhY2t1cCA9IGJ0bi5jbGlja0Z1bmN0aW9uO1xuICAgICAgICAgICAgYnRuLmNsaWNrRnVuY3Rpb24gPSBldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgZXZlbnQuZGF0YSA9IHRoaXM7XG4gICAgICAgICAgICAgICAgZm5CYWNrdXAhKGV2ZW50KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0dXBMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnNob3VsZERpc21pc3NPbk91dHNpZGVDbGljaykge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5jbGlja0NhbGxiYWNrKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnNob3VsZERpc21pc3NPbkVzYykge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLmVzY0NhbGxiYWNrKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY2xpY2tDYWxsYmFjayA9IChldnQ6IEV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChldnQudGFyZ2V0ID09PSB0aGlzLmVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBwcml2YXRlIGVzY0NhbGxiYWNrID0gKGV2dDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZ0LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH07XG59XG4iLCI8bmctY29udGFpbmVyICp0cmFuc2xvY289XCJsZXQgdDsgcHJlZml4OiAnVXBEZXZzLk1vZGFsJ1wiPlxuICAgIDxkaXYgW25nQ2xhc3NdPVwiY2xhc3Nlc1wiICNkaWFsb2c+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCIgdGFiaW5kZXg9XCItMVwiICNjb250ZW50PlxuICAgICAgICAgICAgQGlmICghIWNvbnRlbnRUeXBlKSB7XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdDb21wb25lbnRPdXRsZXRdPVwiY29udGVudFR5cGVcIiBbbmdDb21wb25lbnRPdXRsZXRJbnB1dHNdPVwie21vZGFsUmVmOiB0aGlzLCBkYXRhOiBkYXRhfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgQGlmICghaXNBbGVydCAmJiAoISF0aXRsZVRleHQgfHwgISFoZWFkZXJUZW1wbGF0ZVJlZikpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICghIWhlYWRlclRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWFkZXJUZW1wbGF0ZVJlZlwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7bW9kYWxSZWY6IHRoaXMsIGRhdGE6IGRhdGF9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZVwiPnt7IHRpdGxlVGV4dCB9fTwvaDU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChzaG93Q2xvc2VCdXR0b24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjbG9zZUJ0blRwbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoc2hvd0Nsb3NlQnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2xvc2VCdG5UcGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBweS00XCIgW2NsYXNzLnRleHQtY2VudGVyXT1cImlzVGV4dENlbnRlcmVkIHx8IGlzQWxlcnRcIj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChpc0FsZXJ0ICYmICEhdGl0bGVUZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24tY29udGVudC1zdGFydFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmZsZXgtcm93XT1cInRpdGxlSWNvblBvc2l0aW9uID09PSAnbGVmdCcgfHwgdGl0bGVJY29uUG9zaXRpb24gPT09ICdyaWdodCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5mbGV4LWNvbHVtbl09XCJ0aXRsZUljb25Qb3NpdGlvbiA9PT0gJ3RvcCcgfHwgdGl0bGVJY29uUG9zaXRpb24gPT09ICdib3R0b20nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmICghIXRpdGxlSWNvbiAmJiAodGl0bGVJY29uUG9zaXRpb24gPT09ICd0b3AnIHx8IHRpdGxlSWNvblBvc2l0aW9uID09PSAnbGVmdCcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1cGQtaWNvbiBbbW9kZWxdPVwidGl0bGVJY29uXCIgW2NsYXNzLm1lLTJdPVwidGl0bGVJY29uUG9zaXRpb24gPT09ICdsZWZ0J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MubWItMl09XCJ0aXRsZUljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcIj48L3VwZC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWxpZ24tc2VsZi1jZW50ZXIgZnMtMyBmdy1ib2xkXCIgW2NsYXNzLm1iLTNdPVwiISF0aXRsZUljb24gJiYgdGl0bGVJY29uUG9zaXRpb24gPT09ICd0b3AnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHRpdGxlVGV4dCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoISF0aXRsZUljb24gJiYgKHRpdGxlSWNvblBvc2l0aW9uID09PSAnYm90dG9tJyB8fCB0aXRsZUljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0JykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVwZC1pY29uIFttb2RlbF09XCJ0aXRsZUljb25cIiBbY2xhc3MubXMtMl09XCJ0aXRsZUljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MubWItMl09XCJ0aXRsZUljb25Qb3NpdGlvbiA9PT0gJ2JvdHRvbSdcIj48L3VwZC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgQGlmICghIWJvZHlUZW1wbGF0ZVJlZikge1xuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJib2R5VGVtcGxhdGVSZWYhXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInttb2RhbFJlZjogdGhpcywgZGF0YTogZGF0YX1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICghIWJvZHlDb250ZW50VHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdDb21wb25lbnRPdXRsZXRdPVwiYm9keUNvbnRlbnRUeXBlXCIgW25nQ29tcG9uZW50T3V0bGV0SW5wdXRzXT1cInttb2RhbFJlZjogdGhpcywgZGF0YTogZGF0YX1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJib2R5VGV4dFwiIFtjbGFzcy50ZXh0LXNlY29uZGFyeV09XCJpc0FsZXJ0XCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIEBpZiAoISFzdGF0dXNDb2xvcikge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtc3RhdHVzXCIgW3N0eWxlLnBvc2l0aW9uXT1cIidyZWxhdGl2ZSdcIiBbbmdDbGFzc109XCJzdGF0dXNDb2xvckNsYXNzXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmIChzaG93Q2FuY2VsQnV0dG9uIHx8IGFjdGlvbkJ1dHRvbnMubGVuZ3RoID4gMCB8fCAhIWZvb3RlclRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoISFmb290ZXJUZW1wbGF0ZVJlZikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZm9vdGVyVGVtcGxhdGVSZWZcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie21vZGFsUmVmOiB0aGlzLCBkYXRhOiBkYXRhfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQHN3aXRjaCAoZm9vdGVyTGF5b3V0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnZnVsbC13aWR0aCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChzaG93Q2FuY2VsQnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVwZC1idXR0b24gY2xhc3M9XCJ3LTEwMFwiIFtpc05hdmlnYXRpb25MaW5rXT1cInRydWVcIiAoY2xpY2tlZCk9XCJjbG9zZSgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHQoJ0NhbmNlbCcpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91cGQtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChidG4gb2YgYWN0aW9uQnV0dG9uczsgdHJhY2sgYnRuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVwZC1idXR0b24gY2xhc3M9XCJ3LTEwMFwiIFttb2RlbF09XCJidG5cIj48L3VwZC1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdjZW50ZXJlZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciB3LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiYnV0dG9uc1RwbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGRlZmF1bHQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJidXR0b25zVHBsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctdGVtcGxhdGUgI2Nsb3NlQnRuVHBsPlxuICAgICAgICA8dXBkLWJ1dHRvbiAoY2xpY2tlZCk9XCJjbG9zZSgpXCIgW3Nob3VsZElnbm9yZUJ0bkNsYXNzXT1cInRydWVcIiBjdXN0b21DbGFzc2VzPVwiYnRuLWNsb3NlXCI+PC91cGQtYnV0dG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI2J1dHRvbnNUcGw+XG4gICAgICAgIEBpZiAoc2hvd0NhbmNlbEJ1dHRvbikge1xuICAgICAgICAgICAgPHVwZC1idXR0b24gY29sb3JTdHlsZT1cInNlY29uZGFyeVwiIFtpc0xpbmtdPVwidHJ1ZVwiIChjbGlja2VkKT1cImNsb3NlKClcIj5cbiAgICAgICAgICAgICAgICB7eyB0KCdDYW5jZWwnKSB9fVxuICAgICAgICAgICAgPC91cGQtYnV0dG9uPlxuICAgICAgICB9XG5cbiAgICAgICAgQGZvciAoYnRuIG9mIGFjdGlvbkJ1dHRvbnM7IHRyYWNrIGJ0bi5pZCkge1xuICAgICAgICAgICAgPHVwZC1idXR0b24gW21vZGVsXT1cImJ0blwiIChjbGlja2VkKT1cImJ1dHRvbkNsaWNrKCRldmVudCwgYnRuKVwiPjwvdXBkLWJ1dHRvbj5cbiAgICAgICAgfVxuICAgIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
216
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tb2RhbC9zcmMvY29tcG9uZW50cy9tb2RhbC1jb250YWluZXIvbW9kYWwtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tb2RhbC9zcmMvY29tcG9uZW50cy9tb2RhbC1jb250YWluZXIvbW9kYWwtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBZSxNQUFNLEVBQVEsVUFBVSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ2xJLE9BQU8sRUFBRSxXQUFXLEVBQWEsTUFBTSxhQUFhLENBQUM7QUFDckQsT0FBTyxFQUNILEtBQUssSUFBSSxXQUFXLEVBQ3BCLGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsYUFBYSxFQUdoQixNQUFNLG9CQUFvQixDQUFDO0FBTTVCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7QUFJbkUsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDO0FBT3BCLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxhQUFhO0lBTDFEOztRQU11QixPQUFFLEdBQUcsU0FBUyxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBQzNCLGNBQVMsR0FBRyxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0MsU0FBSSxHQUFHLFFBQVEsQ0FBQztRQUNULGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbkIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNwQixhQUFRLEdBQUcs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S0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7Z0JBQ2xCLFFBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyQixDQUFDLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxjQUFjO1FBQ2xCLElBQUksSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQy9ELENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMvRCxDQUFDO0lBQ0wsQ0FBQzs4R0E5TVEsdUJBQXVCO2tHQUF2Qix1QkFBdUIsd1dBU2MsVUFBVSw2R0FDUixVQUFVLGlGQUNULGlCQUFpQix1RkN0Q3RFLDh4TUFvSEE7OzJGRHpGYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0kscUJBQXFCOzhCQUtaLEVBQUU7c0JBQXBCLFdBQVc7dUJBQUMsSUFBSTtnQkFDSyxTQUFTO3NCQUE5QixXQUFXO3VCQUFDLE9BQU87Z0JBQ0MsSUFBSTtzQkFBeEIsV0FBVzt1QkFBQyxNQUFNO2dCQUNTLFVBQVU7c0JBQXJDLFdBQVc7dUJBQUMsYUFBYTtnQkFDQyxTQUFTO3NCQUFuQyxXQUFXO3VCQUFDLFlBQVk7Z0JBQ0EsUUFBUTtzQkFBaEMsV0FBVzt1QkFBQyxVQUFVO2dCQUNPLFlBQVk7c0JBQXpDLFdBQVc7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5ULCBOZ0NvbXBvbmVudE91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBUZW1wbGF0ZVJlZiwgaW5qZWN0LCBUeXBlLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIsIHZpZXdDaGlsZCwgQ29tcG9uZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUZXh0U2VydmljZSwgVGV4dE1vZGVsIH0gZnJvbSAnQHVwZGV2cy9zZGsnO1xuaW1wb3J0IHtcbiAgICBVdGlscyBhcyBMYXlvdXRVdGlscyxcbiAgICBMYXlvdXRTZXJ2aWNlLFxuICAgIFNjcm9sbGJhclNlcnZpY2UsXG4gICAgQmFzZUNvbXBvbmVudCxcbiAgICBPdmVybGF5LFxuICAgIEJ1dHRvbk1vZGVsXG59IGZyb20gJ0B1cGRldnMvc2RrL2xheW91dCc7XG5pbXBvcnQgeyBUb3BCb3R0b21MZWZ0UmlnaHRUeXBlLCBPcHRpb25hbFR5cGUsIEJnQ29sb3JTdHlsZVR5cGUgfSBmcm9tICdAdXBkZXZzL3Nkay90eXBlcyc7XG5pbXBvcnQgeyBJY29uTW9kZWwgfSBmcm9tICdAdXBkZXZzL2ljb25zJztcblxuaW1wb3J0IHsgTW9kYWxTaXplVHlwZSB9IGZyb20gJy4uLy4uL3R5cGVzL21vZGFsLXNpemUudHlwZSc7XG5pbXBvcnQgeyBNb2RhbENvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVscy9tb2RhbC5jb25maWcnO1xuaW1wb3J0IHsgTW9kYWxDb25maWdNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9tb2RhbC1jb25maWcubW9kZWwnO1xuaW1wb3J0IHsgTW9kYWxGb290ZXJTdHlsZVR5cGUgfSBmcm9tICcuLi8uLi90eXBlcy9tb2RhbC1mb290ZXItc3R5bGUudHlwZSc7XG5pbXBvcnQgeyBNb2RhbFJlZiB9IGZyb20gJy4uLy4uL21vZGVscy9tb2RhbC1yZWYnO1xuXG5sZXQgY29udGFpbmVySWQgPSAxO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3VwZC1tb2RhbC1jb250YWluZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tb2RhbC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9tb2RhbC1jb250YWluZXIuY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIE1vZGFsQ29udGFpbmVyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE1vZGFsQ29uZmlnLCBNb2RhbFJlZiB7XG4gICAgQEhvc3RCaW5kaW5nKCdpZCcpIGlkID0gYG1vZGFsLSR7Y29udGFpbmVySWQrK31gO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBob3N0Q2xhc3MgPSBbJ21vZGFsJywgJ21vZGFsLWJsdXInLCAnZmFkZSddO1xuICAgIEBIb3N0QmluZGluZygncm9sZScpIHJvbGUgPSAnZGlhbG9nJztcbiAgICBASG9zdEJpbmRpbmcoJ2FyaWEtaGlkZGVuJykgYXJpYUhpZGRlbiA9IHRydWU7XG4gICAgQEhvc3RCaW5kaW5nKCdhcmlhLW1vZGFsJykgYXJpYU1vZGFsID0gZmFsc2U7XG4gICAgQEhvc3RCaW5kaW5nKCd0YWJpbmRleCcpIHRhYkluZGV4ID0gLTE7XG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5kaXNwbGF5Jykgc3R5bGVEaXNwbGF5Pzogc3RyaW5nO1xuXG4gICAgZGlhbG9nID0gdmlld0NoaWxkLnJlcXVpcmVkKCdkaWFsb2cnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSk7XG4gICAgY29udGVudCA9IHZpZXdDaGlsZC5yZXF1aXJlZCgnY29udGVudCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KTtcbiAgICBib2R5Q29udGVudE91dGxldCA9IHZpZXdDaGlsZDxOZ0NvbXBvbmVudE91dGxldD4oTmdDb21wb25lbnRPdXRsZXQpO1xuICAgIHNpemU6IE1vZGFsU2l6ZVR5cGUgPSAncmVndWxhcic7XG4gICAgaXNWZXJ0aWNhbGx5Q2VudGVyZWQgPSB0cnVlO1xuICAgIGlzU2Nyb2xsYWJsZSA9IGZhbHNlO1xuICAgIHNob3dDbG9zZUJ1dHRvbiA9IHRydWU7XG4gICAgc2hvd0NhbmNlbEJ1dHRvbiA9IGZhbHNlO1xuICAgIGlzVGV4dENlbnRlcmVkID0gdHJ1ZTtcbiAgICBzaG91bGREaXNtaXNzT25Fc2MgPSBmYWxzZTtcbiAgICBzaG91bGREaXNtaXNzT25PdXRzaWRlQ2xpY2sgPSBmYWxzZTtcbiAgICBpc0FsZXJ0ID0gZmFsc2U7XG4gICAgc3RhdHVzQ29sb3I/OiBCZ0NvbG9yU3R5bGVUeXBlO1xuICAgIGhlYWRlclRlbXBsYXRlUmVmPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBmb290ZXJUZW1wbGF0ZVJlZj86IFRlbXBsYXRlUmVmPGFueT47XG4gICAgYm9keVRlbXBsYXRlUmVmPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBib2R5Q29udGVudFR5cGU/OiBUeXBlPGFueT47XG4gICAgY29udGVudFR5cGU/OiBUeXBlPGFueT47XG4gICAgYm9keT86IFRleHRNb2RlbDtcbiAgICB0aXRsZT86IFRleHRNb2RlbDtcbiAgICB0aXRsZUljb24/OiBJY29uTW9kZWw7XG4gICAgdGl0bGVJY29uUG9zaXRpb24/OiBUb3BCb3R0b21MZWZ0UmlnaHRUeXBlID0gJ3RvcCc7XG4gICAgZm9vdGVyTGF5b3V0PzogTW9kYWxGb290ZXJTdHlsZVR5cGUgPSAnZGVmYXVsdCc7XG4gICAgYWN0aW9uQnV0dG9uczogQnV0dG9uTW9kZWxbXSA9IFtdO1xuICAgIG92ZXJsYXkhOiBPdmVybGF5O1xuICAgIG1vZGFsQ29udGFpbmVyUmVmITogQ29tcG9uZW50UmVmPE1vZGFsQ29udGFpbmVyQ29tcG9uZW50PjtcbiAgICBkYXRhPzogYW55O1xuICAgIGFmdGVyQ2xvc2U/OiAocmVzdWx0PzogYW55KSA9PiB2b2lkO1xuXG4gICAgZ2V0IGNsYXNzZXMoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ21vZGFsLWRpYWxvZycsXG4gICAgICAgICAgICB0aGlzLmlzVmVydGljYWxseUNlbnRlcmVkID8gJ21vZGFsLWRpYWxvZy1jZW50ZXJlZCcgOiAnJyxcbiAgICAgICAgICAgIHRoaXMuaXNTY3JvbGxhYmxlID8gJ21vZGFsLWRpYWxvZy1zY3JvbGxhYmxlJyA6ICcnLFxuICAgICAgICAgICAgdGhpcy5zaXplQ2xhc3NcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBnZXQgdGl0bGVUZXh0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRTZXJ2aWNlLmdldFRleHQodGhpcy50aXRsZSk7XG4gICAgfVxuXG4gICAgZ2V0IGJvZHlUZXh0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRTZXJ2aWNlLmdldFRleHQodGhpcy5ib2R5KTtcbiAgICB9XG5cbiAgICBnZXQgc3RhdHVzQ29sb3JDbGFzcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYGJnLSR7dGhpcy5zdGF0dXNDb2xvcn1gO1xuICAgIH1cblxuICAgIGdldCBzaXplQ2xhc3MoKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGNscyA9ICcnO1xuXG4gICAgICAgIHN3aXRjaCAodGhpcy5zaXplKSB7XG4gICAgICAgICAgICBjYXNlICdzbWFsbCc6XG4gICAgICAgICAgICAgICAgY2xzID0gJ21vZGFsLXNtJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2xhcmdlJzpcbiAgICAgICAgICAgICAgICBjbHMgPSAnbW9kYWwtbGcnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZXh0cmEtbGFyZ2UnOlxuICAgICAgICAgICAgICAgIGNscyA9ICdtb2RhbC14bCc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2xzO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVhZG9ubHkgb3BlbkNsYXNzID0gJ21vZGFsLW9wZW4nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dFNlcnZpY2UgPSBpbmplY3QoVGV4dFNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxheW91dFNlcnZpY2UgPSBpbmplY3QoTGF5b3V0U2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzY3JvbGxiYXJTZXJ2aWNlID0gaW5qZWN0KFNjcm9sbGJhclNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcblxuICAgIHByaXZhdGUgZ2V0IGVsZW1lbnQoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIHByZXBhcmVUb1Nob3coY29uZmlnPzogTW9kYWxDb25maWcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXR1cENvbmZpZyhjb25maWcpO1xuICAgICAgICB0aGlzLnNjcm9sbGJhclNlcnZpY2UuaGlkZSgpO1xuICAgICAgICB0aGlzLmxheW91dFNlcnZpY2UuYWRkQm9keUNsYXNzZXModGhpcy5vcGVuQ2xhc3MpO1xuICAgICAgICB0aGlzLmFkanVzdERpYWxvZygpO1xuICAgICAgICB0aGlzLnNldHVwQWN0aW9uQnV0dG9ucygpO1xuICAgIH1cblxuICAgIHNob3coKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0dXBMaXN0ZW5lcnMoKTtcblxuICAgICAgICB0aGlzLnN0eWxlRGlzcGxheSA9ICdibG9jayc7XG4gICAgICAgIHRoaXMuYXJpYUhpZGRlbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLmFyaWFNb2RhbCA9IHRydWU7XG4gICAgICAgIHRoaXMuZWxlbWVudC5zY3JvbGxUb3AgPSAwO1xuICAgICAgICB0aGlzLmRpYWxvZygpLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID0gMDtcblxuICAgICAgICBMYXlvdXRVdGlscy5yZWZsb3codGhpcy5lbGVtZW50KTtcblxuICAgICAgICBjb25zdCB0cmFuc2l0aW9uU3ViID0gTGF5b3V0VXRpbHMuZXhlY3V0ZUFmdGVyVHJhbnNpdGlvbih0aGlzLmVsZW1lbnQpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnc2hvdycpO1xuICAgICAgICAgICAgdGhpcy5jb250ZW50KCkubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmFkZFN1YnNjcmlwdGlvbnModHJhbnNpdGlvblN1Yik7XG4gICAgfVxuXG4gICAgY2xvc2UocmVzdWx0PzogYW55KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRyYW5zaXRpb25TdWIgPSBMYXlvdXRVdGlscy5leGVjdXRlQWZ0ZXJUcmFuc2l0aW9uKHRoaXMuZWxlbWVudCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc3R5bGVEaXNwbGF5ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgdGhpcy5hcmlhSGlkZGVuID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuYXJpYU1vZGFsID0gZmFsc2U7XG5cbiAgICAgICAgICAgIGlmICghIXRoaXMuYWZ0ZXJDbG9zZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWZ0ZXJDbG9zZShyZXN1bHQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLm92ZXJsYXkuaGlkZSgpO1xuICAgICAgICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLnJlbW92ZUJvZHlDbGFzc2VzKHRoaXMub3BlbkNsYXNzKTtcbiAgICAgICAgICAgIHRoaXMubW9kYWxDb250YWluZXJSZWYuZGVzdHJveSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnc2hvdycpO1xuICAgICAgICB0aGlzLmFkZFN1YnNjcmlwdGlvbnModHJhbnNpdGlvblN1Yik7XG4gICAgfVxuXG4gICAgYnV0dG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQsIGJ0bjogQnV0dG9uTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgaWYgKCEhYnRuLmNsaWNrRnVuY3Rpb24pIHtcbiAgICAgICAgICAgIGJ0bi5jbGlja0Z1bmN0aW9uKHsgZXZlbnQsIGRhdGE6IGJ0biB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldEJvZHlJbnN0YW5jZTxUPigpOiBPcHRpb25hbFR5cGU8VD4ge1xuICAgICAgICByZXR1cm4gPFQ+dGhpcy5ib2R5Q29udGVudE91dGxldCgpPy5bJ19jb21wb25lbnRSZWYnXS5pbnN0YW5jZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFkanVzdERpYWxvZygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaXNNb2RhbE92ZXJmbG93aW5nID0gdGhpcy5lbGVtZW50LnNjcm9sbEhlaWdodCA+IHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDtcbiAgICAgICAgY29uc3Qgc2Nyb2xsYmFyV2lkdGggPSB0aGlzLnNjcm9sbGJhclNlcnZpY2UuZ2V0V2lkdGgoKTtcbiAgICAgICAgY29uc3QgaXNCb2R5T3ZlcmZsb3dpbmcgPSBzY3JvbGxiYXJXaWR0aCA+IDA7XG5cbiAgICAgICAgaWYgKGlzQm9keU92ZXJmbG93aW5nICYmICFpc01vZGFsT3ZlcmZsb3dpbmcpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50LCAncGFkZGluZ1JpZ2h0JywgYCR7c2Nyb2xsYmFyV2lkdGh9cHhgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaXNCb2R5T3ZlcmZsb3dpbmcgJiYgaXNNb2RhbE92ZXJmbG93aW5nKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudCwgJ3BhZGRpbmdMZWZ0JywgYCR7c2Nyb2xsYmFyV2lkdGh9cHhgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0dXBDb25maWcoY29uZmlnPzogTW9kYWxDb25maWcpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFjb25maWcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbmZpZ01vZGVsID0gbmV3IE1vZGFsQ29uZmlnTW9kZWwoY29uZmlnKTtcbiAgICAgICAgdGhpcy5zaXplID0gY29uZmlnTW9kZWwuc2l6ZTtcbiAgICAgICAgdGhpcy5pc1ZlcnRpY2FsbHlDZW50ZXJlZCA9IGNvbmZpZ01vZGVsLmlzVmVydGljYWxseUNlbnRlcmVkO1xuICAgICAgICB0aGlzLmlzU2Nyb2xsYWJsZSA9IGNvbmZpZ01vZGVsLmlzU2Nyb2xsYWJsZTtcbiAgICAgICAgdGhpcy5zaG93Q2FuY2VsQnV0dG9uID0gY29uZmlnTW9kZWwuc2hvd0NhbmNlbEJ1dHRvbjtcbiAgICAgICAgdGhpcy5zaG93Q2xvc2VCdXR0b24gPSBjb25maWdNb2RlbC5zaG93Q2xvc2VCdXR0b247XG4gICAgICAgIHRoaXMuc2hvdWxkRGlzbWlzc09uRXNjID0gY29uZmlnTW9kZWwuc2hvdWxkRGlzbWlzc09uRXNjO1xuICAgICAgICB0aGlzLnNob3VsZERpc21pc3NPbk91dHNpZGVDbGljayA9IGNvbmZpZ01vZGVsLnNob3VsZERpc21pc3NPbk91dHNpZGVDbGljaztcbiAgICAgICAgdGhpcy5pc0FsZXJ0ID0gY29uZmlnTW9kZWwuaXNBbGVydDtcbiAgICAgICAgdGhpcy5pc1RleHRDZW50ZXJlZCA9IGNvbmZpZ01vZGVsLmlzVGV4dENlbnRlcmVkO1xuICAgICAgICB0aGlzLnN0YXR1c0NvbG9yID0gY29uZmlnTW9kZWwuc3RhdHVzQ29sb3I7XG4gICAgICAgIHRoaXMuaGVhZGVyVGVtcGxhdGVSZWYgPSBjb25maWdNb2RlbC5oZWFkZXJUZW1wbGF0ZVJlZjtcbiAgICAgICAgdGhpcy5mb290ZXJUZW1wbGF0ZVJlZiA9IGNvbmZpZ01vZGVsLmZvb3RlclRlbXBsYXRlUmVmO1xuICAgICAgICB0aGlzLmJvZHlUZW1wbGF0ZVJlZiA9IGNvbmZpZ01vZGVsLmJvZHlUZW1wbGF0ZVJlZjtcbiAgICAgICAgdGhpcy5ib2R5Q29udGVudFR5cGUgPSBjb25maWdNb2RlbC5ib2R5Q29udGVudFR5cGU7XG4gICAgICAgIHRoaXMuYm9keSA9IGNvbmZpZ01vZGVsLmJvZHk7XG4gICAgICAgIHRoaXMudGl0bGUgPSBjb25maWdNb2RlbC50aXRsZTtcbiAgICAgICAgdGhpcy50aXRsZUljb24gPSBjb25maWdNb2RlbC50aXRsZUljb247XG4gICAgICAgIHRoaXMudGl0bGVJY29uUG9zaXRpb24gPSBjb25maWdNb2RlbC50aXRsZUljb25Qb3NpdGlvbjtcbiAgICAgICAgdGhpcy5mb290ZXJMYXlvdXQgPSBjb25maWdNb2RlbC5mb290ZXJMYXlvdXQ7XG4gICAgICAgIHRoaXMuYWN0aW9uQnV0dG9ucyA9IGNvbmZpZ01vZGVsLmFjdGlvbkJ1dHRvbnM7XG4gICAgICAgIHRoaXMuZGF0YSA9IGNvbmZpZ01vZGVsLmRhdGE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXR1cEFjdGlvbkJ1dHRvbnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aW9uQnV0dG9ucy5mb3JFYWNoKGJ0biA9PiB7XG4gICAgICAgICAgICBjb25zdCBmbkJhY2t1cCA9IGJ0bi5jbGlja0Z1bmN0aW9uO1xuICAgICAgICAgICAgYnRuLmNsaWNrRnVuY3Rpb24gPSBldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgZXZlbnQuZGF0YSA9IHRoaXM7XG4gICAgICAgICAgICAgICAgZm5CYWNrdXAhKGV2ZW50KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0dXBMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnNob3VsZERpc21pc3NPbk91dHNpZGVDbGljaykge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5jbGlja0NhbGxiYWNrKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnNob3VsZERpc21pc3NPbkVzYykge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLmVzY0NhbGxiYWNrKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY2xpY2tDYWxsYmFjayA9IChldnQ6IEV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChldnQudGFyZ2V0ID09PSB0aGlzLmVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBwcml2YXRlIGVzY0NhbGxiYWNrID0gKGV2dDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZ0LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH07XG59XG4iLCI8bmctY29udGFpbmVyICp0cmFuc2xvY289XCJsZXQgdDsgcHJlZml4OiAnVXBEZXZzLk1vZGFsJ1wiPlxuICAgIDxkaXYgW25nQ2xhc3NdPVwiY2xhc3Nlc1wiICNkaWFsb2c+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCIgdGFiaW5kZXg9XCItMVwiICNjb250ZW50PlxuICAgICAgICAgICAgQGlmICghIWNvbnRlbnRUeXBlKSB7XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdDb21wb25lbnRPdXRsZXRdPVwiY29udGVudFR5cGVcIiBbbmdDb21wb25lbnRPdXRsZXRJbnB1dHNdPVwie21vZGFsUmVmOiB0aGlzLCBkYXRhOiBkYXRhfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgQGlmICghaXNBbGVydCAmJiAoISF0aXRsZVRleHQgfHwgISFoZWFkZXJUZW1wbGF0ZVJlZikpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICghIWhlYWRlclRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWFkZXJUZW1wbGF0ZVJlZlwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7bW9kYWxSZWY6IHRoaXMsIGRhdGE6IGRhdGF9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZVwiPnt7IHRpdGxlVGV4dCB9fTwvaDU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChzaG93Q2xvc2VCdXR0b24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjbG9zZUJ0blRwbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoc2hvd0Nsb3NlQnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2xvc2VCdG5UcGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBweS00XCIgW2NsYXNzLnRleHQtY2VudGVyXT1cImlzVGV4dENlbnRlcmVkIHx8IGlzQWxlcnRcIj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChpc0FsZXJ0ICYmICEhdGl0bGVUZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24tY29udGVudC1zdGFydFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmZsZXgtcm93XT1cInRpdGxlSWNvblBvc2l0aW9uID09PSAnbGVmdCcgfHwgdGl0bGVJY29uUG9zaXRpb24gPT09ICdyaWdodCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5mbGV4LWNvbHVtbl09XCJ0aXRsZUljb25Qb3NpdGlvbiA9PT0gJ3RvcCcgfHwgdGl0bGVJY29uUG9zaXRpb24gPT09ICdib3R0b20nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmICghIXRpdGxlSWNvbiAmJiAodGl0bGVJY29uUG9zaXRpb24gPT09ICd0b3AnIHx8IHRpdGxlSWNvblBvc2l0aW9uID09PSAnbGVmdCcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1cGQtaWNvbiBbbW9kZWxdPVwidGl0bGVJY29uXCIgW2NsYXNzLm1lLTJdPVwidGl0bGVJY29uUG9zaXRpb24gPT09ICdsZWZ0J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MubWItMl09XCJ0aXRsZUljb25Qb3NpdGlvbiA9PT0gJ3RvcCdcIj48L3VwZC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWxpZ24tc2VsZi1jZW50ZXIgZnMtMyBmdy1ib2xkXCIgW2NsYXNzLm1iLTNdPVwiISF0aXRsZUljb24gJiYgdGl0bGVJY29uUG9zaXRpb24gPT09ICd0b3AnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHRpdGxlVGV4dCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoISF0aXRsZUljb24gJiYgKHRpdGxlSWNvblBvc2l0aW9uID09PSAnYm90dG9tJyB8fCB0aXRsZUljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0JykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVwZC1pY29uIFttb2RlbF09XCJ0aXRsZUljb25cIiBbY2xhc3MubXMtMl09XCJ0aXRsZUljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MubWItMl09XCJ0aXRsZUljb25Qb3NpdGlvbiA9PT0gJ2JvdHRvbSdcIj48L3VwZC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgQGlmICghIWJvZHlUZW1wbGF0ZVJlZikge1xuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJib2R5VGVtcGxhdGVSZWYhXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInttb2RhbFJlZjogdGhpcywgZGF0YTogZGF0YX1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICghIWJvZHlDb250ZW50VHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdDb21wb25lbnRPdXRsZXRdPVwiYm9keUNvbnRlbnRUeXBlXCIgW25nQ29tcG9uZW50T3V0bGV0SW5wdXRzXT1cInttb2RhbFJlZjogdGhpcywgZGF0YTogZGF0YX1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJib2R5VGV4dFwiIFtjbGFzcy50ZXh0LXNlY29uZGFyeV09XCJpc0FsZXJ0XCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIEBpZiAoISFzdGF0dXNDb2xvcikge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtc3RhdHVzXCIgW3N0eWxlLnBvc2l0aW9uXT1cIidyZWxhdGl2ZSdcIiBbbmdDbGFzc109XCJzdGF0dXNDb2xvckNsYXNzXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmIChzaG93Q2FuY2VsQnV0dG9uIHx8IGFjdGlvbkJ1dHRvbnMubGVuZ3RoID4gMCB8fCAhIWZvb3RlclRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoISFmb290ZXJUZW1wbGF0ZVJlZikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZm9vdGVyVGVtcGxhdGVSZWZcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie21vZGFsUmVmOiB0aGlzLCBkYXRhOiBkYXRhfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQHN3aXRjaCAoZm9vdGVyTGF5b3V0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnZnVsbC13aWR0aCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChzaG93Q2FuY2VsQnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVwZC1idXR0b24gY2xhc3M9XCJ3LTEwMFwiIFtpc05hdmlnYXRpb25MaW5rXT1cInRydWVcIiAoY2xpY2tlZCk9XCJjbG9zZSgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHQoJ0NhbmNlbCcpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91cGQtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChidG4gb2YgYWN0aW9uQnV0dG9uczsgdHJhY2sgYnRuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVwZC1idXR0b24gY2xhc3M9XCJ3LTEwMFwiIFttb2RlbF09XCJidG5cIj48L3VwZC1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdjZW50ZXJlZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciB3LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiYnV0dG9uc1RwbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGRlZmF1bHQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJidXR0b25zVHBsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctdGVtcGxhdGUgI2Nsb3NlQnRuVHBsPlxuICAgICAgICA8dXBkLWJ1dHRvbiAoY2xpY2tlZCk9XCJjbG9zZSgpXCIgW3Nob3VsZElnbm9yZUJ0bkNsYXNzXT1cInRydWVcIiBjdXN0b21DbGFzc2VzPVwiYnRuLWNsb3NlXCI+PC91cGQtYnV0dG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI2J1dHRvbnNUcGw+XG4gICAgICAgIEBpZiAoc2hvd0NhbmNlbEJ1dHRvbikge1xuICAgICAgICAgICAgPHVwZC1idXR0b24gY29sb3JTdHlsZT1cInNlY29uZGFyeVwiIFtpc0xpbmtdPVwidHJ1ZVwiIChjbGlja2VkKT1cImNsb3NlKClcIj5cbiAgICAgICAgICAgICAgICB7eyB0KCdDYW5jZWwnKSB9fVxuICAgICAgICAgICAgPC91cGQtYnV0dG9uPlxuICAgICAgICB9XG5cbiAgICAgICAgQGZvciAoYnRuIG9mIGFjdGlvbkJ1dHRvbnM7IHRyYWNrIGJ0bikge1xuICAgICAgICAgICAgPHVwZC1idXR0b24gW21vZGVsXT1cImJ0blwiIChjbGlja2VkKT1cImJ1dHRvbkNsaWNrKCRldmVudCwgYnRuKVwiPjwvdXBkLWJ1dHRvbj5cbiAgICAgICAgfVxuICAgIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
@@ -110,7 +110,7 @@ class ButtonComponent {
|
|
|
110
110
|
return this.textService.getText(this._title());
|
|
111
111
|
}
|
|
112
112
|
get mainText() {
|
|
113
|
-
return this.textService.getText(this.text());
|
|
113
|
+
return this.textService.getText(this.model()?.text?.() || this.text());
|
|
114
114
|
}
|
|
115
115
|
get _iconModel() {
|
|
116
116
|
return this.model()?.iconModel?.() || this.iconModel();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updevs-components-button.mjs","sources":["../../../../libs/components/button/src/button.component.ts","../../../../libs/components/button/src/button.component.html","../../../../libs/components/button/src/upd-button.module.ts","../../../../libs/components/button/src/updevs-components-button.ts"],"sourcesContent":["import {\n Component,\n ViewEncapsulation,\n Output,\n EventEmitter,\n HostBinding,\n HostListener,\n inject,\n input,\n computed\n} from '@angular/core';\nimport { IconModel } from '@updevs/icons';\nimport { TextModel, TextService } from '@updevs/sdk';\nimport { ButtonModel } from '@updevs/sdk/layout';\nimport { LeftRightType, OptionalType, BrandType, BgColorStyleType, ButtonSizeType } from '@updevs/sdk/types';\nimport { BadgeConfig } from '@updevs/components/badge';\n\n@Component({\n selector: 'upd-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class ButtonComponent {\n @HostBinding('class') get classes(): string[] {\n return this.buttonClasses();\n }\n\n @HostBinding('title') get titleAttr(): OptionalType<string> {\n return this.textService.getText(this._title());\n }\n\n /**\n * Emitted when the button is clicked.\n * **NOTE:** The name of the event can not be 'click'. It would generate a conflict with the HTML event of same name.\n * That would cause strange behaviors like preventing `isDisabled` from working correctly.\n */\n @Output() readonly clicked = new EventEmitter<any>();\n\n model = input<ButtonModel>();\n text = input<TextModel>();\n brandColorStyle = input<BrandType>();\n customClasses = input<string>();\n isOutline = input(false);\n isGhost = input(false);\n isSquare = input(false);\n isPill = input(false);\n isIcon = input(false);\n isLoading = input(false);\n /**\n * Whether the button should act as a list (top-bottom alignment instead of left-right related to neighbors).\n */\n isList = input(false);\n /**\n * Whether the button should be floating in the bottom right corner.\n */\n isFloating = input(false);\n isAction = input(false);\n isNavigationLink = input(false);\n isLink = input(false);\n shouldIgnoreBtnClass = input(false);\n iconModel = input<IconModel>();\n iconPosition = input<LeftRightType>('left');\n isDisabled = input(false);\n isActive = input(false);\n badgeConfig = input<BadgeConfig>();\n colorStyle = input<BgColorStyleType>();\n size = input<ButtonSizeType>('regular');\n title = input<TextModel>();\n\n get mainText(): string {\n return this.textService.getText(this.text());\n }\n\n get _iconModel(): OptionalType<IconModel> {\n return this.model()?.iconModel?.() || this.iconModel();\n }\n\n get _iconPosition(): LeftRightType {\n return this.model()?.iconPosition() || this.iconPosition();\n }\n\n get _isIcon(): boolean {\n return this.model()?.isIcon() || this.isIcon();\n }\n\n private get sizeClass(): string {\n switch (this._size()) {\n case 'large':\n return 'btn-lg';\n case 'small':\n return 'btn-sm';\n default:\n return '';\n }\n }\n\n private _size = computed(() => !!this.model() ? this.model()!.size() : this.size());\n private _title = computed(() => !!this.model() && !!this.model()?.title ? this.model()!.title!() : this.title());\n private _colorStyle = computed(() => !!this.model() && !!this.model()?.colorStyle ? this.model()!.colorStyle!() : this.colorStyle());\n private _brandColorStyle = computed(() =>\n !!this.model() && !!this.model()?.brandColorStyle ? this.model()!.brandColorStyle!() : this.brandColorStyle()\n );\n private buttonClasses = computed(() => {\n const isLink = this.model()?.isLink() || this.isLink();\n const outlineCls = this.model()?.isOutline() || this.isOutline() ? 'outline-' : '';\n const ghostCls = this.model()?.isGhost() || this.isGhost() ? 'ghost-' : '';\n const lClasses: string[] = this.model()?.shouldIgnoreBtnClass() || this.shouldIgnoreBtnClass() ? [] : ['btn'];\n const customClasses = this.model()?.customClasses?.().split(' ') || this.customClasses()?.split(' ') || [];\n\n if (!isLink && (!!outlineCls || !!ghostCls || !!this._colorStyle() || !!this._brandColorStyle())) {\n lClasses.push(`btn-${outlineCls || ghostCls}${this._colorStyle() || this._brandColorStyle()}`);\n } else if (!!this._colorStyle() || !!this._brandColorStyle()) {\n lClasses.push(`link-${this._colorStyle() || this._brandColorStyle()}`);\n }\n\n if (this.model()?.isSquare() || this.isSquare()) {\n lClasses.push('btn-square');\n }\n\n if (this.model()?.isPill() || this.isPill()) {\n lClasses.push('btn-pill');\n }\n\n if (this._isIcon) {\n lClasses.push('btn-icon');\n }\n\n if (this.model()?.isLoading() || this.isLoading()) {\n lClasses.push('btn-loading');\n }\n\n if (this.model()?.isList() || this.isList()) {\n lClasses.push('btn-list');\n }\n\n if (this.model()?.isFloating() || this.isFloating()) {\n lClasses.push('btn-floating');\n }\n\n if (this.model()?.isAction() || this.isAction()) {\n lClasses.push('btn-action');\n }\n\n if (this.model()?.isNavigationLink() || this.isNavigationLink()) {\n lClasses.push('nav-link');\n }\n\n if (isLink) {\n lClasses.push('btn-link');\n }\n\n if (this.model()?.isActive() || this.isActive()) {\n lClasses.push('active');\n }\n\n if (this.model()?.isDisabled() || this.isDisabled()) {\n lClasses.push('disabled');\n }\n\n if (!!this.badgeConfig() && (this.badgeConfig()!.isBlinking || this.badgeConfig()!.isNotification)) {\n lClasses.push('position-relative');\n }\n\n lClasses.push(this.sizeClass);\n\n return [...lClasses, ...customClasses];\n });\n private readonly textService = inject(TextService);\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent): void {\n if (!!this.model() && !!this.model()?.clickFunction) {\n this.model()!.clickFunction!({ event, data: this });\n } else {\n this.clicked.emit(event);\n }\n\n event.stopPropagation();\n }\n}\n","<ng-template #userContentTpl>\n @if (!!_iconModel && _iconPosition === 'left') {\n <upd-icon [model]=\"_iconModel\" [tablerIconSize]=\"_iconModel.tablerIconSize || 20\"\n [heroIconSize]=\"_iconModel.heroIconSize || 'small'\">\n </upd-icon>\n }\n\n <div [class.mx-1]=\"!!_iconModel && !_isIcon\">\n <ng-content></ng-content>\n </div>\n\n @if (!!badgeConfig()) {\n <upd-badge [config]=\"badgeConfig()\"></upd-badge>\n }\n\n @if (!!_iconModel && _iconPosition === 'right') {\n <upd-icon [model]=\"_iconModel\" [tablerIconSize]=\"_iconModel.tablerIconSize || 20\"\n [heroIconSize]=\"_iconModel.heroIconSize || 'small'\">\n </upd-icon>\n }\n</ng-template>\n\n@if (!mainText) {\n <ng-container [ngTemplateOutlet]=\"userContentTpl\"></ng-container>\n} @else {\n @if (!!_iconModel && _iconPosition === 'left') {\n <upd-icon [model]=\"_iconModel\" [tablerIconSize]=\"_iconModel.tablerIconSize || 20\"\n [heroIconSize]=\"_iconModel.heroIconSize || 'small'\">\n </upd-icon>\n }\n\n <span [class.mx-1]=\"!!_iconModel\">\n {{ mainText }}\n </span>\n\n @if (!!badgeConfig()) {\n <upd-badge [config]=\"badgeConfig()\"></upd-badge>\n }\n\n @if (!!_iconModel && _iconPosition === 'right') {\n <upd-icon [model]=\"_iconModel\" [tablerIconSize]=\"_iconModel.tablerIconSize || 20\"\n [heroIconSize]=\"_iconModel.heroIconSize || 'small'\">\n </upd-icon>\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { UpdIconsModule } from '@updevs/icons';\nimport { UpdBadgeModule } from '@updevs/components/badge';\n\nimport { ButtonComponent } from './button.component';\n\n@NgModule({\n imports: [\n CommonModule,\n UpdIconsModule,\n UpdBadgeModule\n ],\n declarations: [\n ButtonComponent\n ],\n exports: [\n ButtonComponent\n ]\n})\nexport class UpdButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"updevs-components-button.mjs","sources":["../../../../libs/components/button/src/button.component.ts","../../../../libs/components/button/src/button.component.html","../../../../libs/components/button/src/upd-button.module.ts","../../../../libs/components/button/src/updevs-components-button.ts"],"sourcesContent":["import {\n Component,\n ViewEncapsulation,\n Output,\n EventEmitter,\n HostBinding,\n HostListener,\n inject,\n input,\n computed\n} from '@angular/core';\nimport { IconModel } from '@updevs/icons';\nimport { TextModel, TextService } from '@updevs/sdk';\nimport { ButtonModel } from '@updevs/sdk/layout';\nimport { LeftRightType, OptionalType, BrandType, BgColorStyleType, ButtonSizeType } from '@updevs/sdk/types';\nimport { BadgeConfig } from '@updevs/components/badge';\n\n@Component({\n selector: 'upd-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class ButtonComponent {\n @HostBinding('class') get classes(): string[] {\n return this.buttonClasses();\n }\n\n @HostBinding('title') get titleAttr(): OptionalType<string> {\n return this.textService.getText(this._title());\n }\n\n /**\n * Emitted when the button is clicked.\n * **NOTE:** The name of the event can not be 'click'. It would generate a conflict with the HTML event of same name.\n * That would cause strange behaviors like preventing `isDisabled` from working correctly.\n */\n @Output() readonly clicked = new EventEmitter<any>();\n\n model = input<ButtonModel>();\n text = input<TextModel>();\n brandColorStyle = input<BrandType>();\n customClasses = input<string>();\n isOutline = input(false);\n isGhost = input(false);\n isSquare = input(false);\n isPill = input(false);\n isIcon = input(false);\n isLoading = input(false);\n /**\n * Whether the button should act as a list (top-bottom alignment instead of left-right related to neighbors).\n */\n isList = input(false);\n /**\n * Whether the button should be floating in the bottom right corner.\n */\n isFloating = input(false);\n isAction = input(false);\n isNavigationLink = input(false);\n isLink = input(false);\n shouldIgnoreBtnClass = input(false);\n iconModel = input<IconModel>();\n iconPosition = input<LeftRightType>('left');\n isDisabled = input(false);\n isActive = input(false);\n badgeConfig = input<BadgeConfig>();\n colorStyle = input<BgColorStyleType>();\n size = input<ButtonSizeType>('regular');\n title = input<TextModel>();\n\n get mainText(): string {\n return this.textService.getText(this.model()?.text?.() || this.text());\n }\n\n get _iconModel(): OptionalType<IconModel> {\n return this.model()?.iconModel?.() || this.iconModel();\n }\n\n get _iconPosition(): LeftRightType {\n return this.model()?.iconPosition() || this.iconPosition();\n }\n\n get _isIcon(): boolean {\n return this.model()?.isIcon() || this.isIcon();\n }\n\n private get sizeClass(): string {\n switch (this._size()) {\n case 'large':\n return 'btn-lg';\n case 'small':\n return 'btn-sm';\n default:\n return '';\n }\n }\n\n private _size = computed(() => !!this.model() ? this.model()!.size() : this.size());\n private _title = computed(() => !!this.model() && !!this.model()?.title ? this.model()!.title!() : this.title());\n private _colorStyle = computed(() => !!this.model() && !!this.model()?.colorStyle ? this.model()!.colorStyle!() : this.colorStyle());\n private _brandColorStyle = computed(() =>\n !!this.model() && !!this.model()?.brandColorStyle ? this.model()!.brandColorStyle!() : this.brandColorStyle()\n );\n private buttonClasses = computed(() => {\n const isLink = this.model()?.isLink() || this.isLink();\n const outlineCls = this.model()?.isOutline() || this.isOutline() ? 'outline-' : '';\n const ghostCls = this.model()?.isGhost() || this.isGhost() ? 'ghost-' : '';\n const lClasses: string[] = this.model()?.shouldIgnoreBtnClass() || this.shouldIgnoreBtnClass() ? [] : ['btn'];\n const customClasses = this.model()?.customClasses?.().split(' ') || this.customClasses()?.split(' ') || [];\n\n if (!isLink && (!!outlineCls || !!ghostCls || !!this._colorStyle() || !!this._brandColorStyle())) {\n lClasses.push(`btn-${outlineCls || ghostCls}${this._colorStyle() || this._brandColorStyle()}`);\n } else if (!!this._colorStyle() || !!this._brandColorStyle()) {\n lClasses.push(`link-${this._colorStyle() || this._brandColorStyle()}`);\n }\n\n if (this.model()?.isSquare() || this.isSquare()) {\n lClasses.push('btn-square');\n }\n\n if (this.model()?.isPill() || this.isPill()) {\n lClasses.push('btn-pill');\n }\n\n if (this._isIcon) {\n lClasses.push('btn-icon');\n }\n\n if (this.model()?.isLoading() || this.isLoading()) {\n lClasses.push('btn-loading');\n }\n\n if (this.model()?.isList() || this.isList()) {\n lClasses.push('btn-list');\n }\n\n if (this.model()?.isFloating() || this.isFloating()) {\n lClasses.push('btn-floating');\n }\n\n if (this.model()?.isAction() || this.isAction()) {\n lClasses.push('btn-action');\n }\n\n if (this.model()?.isNavigationLink() || this.isNavigationLink()) {\n lClasses.push('nav-link');\n }\n\n if (isLink) {\n lClasses.push('btn-link');\n }\n\n if (this.model()?.isActive() || this.isActive()) {\n lClasses.push('active');\n }\n\n if (this.model()?.isDisabled() || this.isDisabled()) {\n lClasses.push('disabled');\n }\n\n if (!!this.badgeConfig() && (this.badgeConfig()!.isBlinking || this.badgeConfig()!.isNotification)) {\n lClasses.push('position-relative');\n }\n\n lClasses.push(this.sizeClass);\n\n return [...lClasses, ...customClasses];\n });\n private readonly textService = inject(TextService);\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent): void {\n if (!!this.model() && !!this.model()?.clickFunction) {\n this.model()!.clickFunction!({ event, data: this });\n } else {\n this.clicked.emit(event);\n }\n\n event.stopPropagation();\n }\n}\n","<ng-template #userContentTpl>\n @if (!!_iconModel && _iconPosition === 'left') {\n <upd-icon [model]=\"_iconModel\" [tablerIconSize]=\"_iconModel.tablerIconSize || 20\"\n [heroIconSize]=\"_iconModel.heroIconSize || 'small'\">\n </upd-icon>\n }\n\n <div [class.mx-1]=\"!!_iconModel && !_isIcon\">\n <ng-content></ng-content>\n </div>\n\n @if (!!badgeConfig()) {\n <upd-badge [config]=\"badgeConfig()\"></upd-badge>\n }\n\n @if (!!_iconModel && _iconPosition === 'right') {\n <upd-icon [model]=\"_iconModel\" [tablerIconSize]=\"_iconModel.tablerIconSize || 20\"\n [heroIconSize]=\"_iconModel.heroIconSize || 'small'\">\n </upd-icon>\n }\n</ng-template>\n\n@if (!mainText) {\n <ng-container [ngTemplateOutlet]=\"userContentTpl\"></ng-container>\n} @else {\n @if (!!_iconModel && _iconPosition === 'left') {\n <upd-icon [model]=\"_iconModel\" [tablerIconSize]=\"_iconModel.tablerIconSize || 20\"\n [heroIconSize]=\"_iconModel.heroIconSize || 'small'\">\n </upd-icon>\n }\n\n <span [class.mx-1]=\"!!_iconModel\">\n {{ mainText }}\n </span>\n\n @if (!!badgeConfig()) {\n <upd-badge [config]=\"badgeConfig()\"></upd-badge>\n }\n\n @if (!!_iconModel && _iconPosition === 'right') {\n <upd-icon [model]=\"_iconModel\" [tablerIconSize]=\"_iconModel.tablerIconSize || 20\"\n [heroIconSize]=\"_iconModel.heroIconSize || 'small'\">\n </upd-icon>\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { UpdIconsModule } from '@updevs/icons';\nimport { UpdBadgeModule } from '@updevs/components/badge';\n\nimport { ButtonComponent } from './button.component';\n\n@NgModule({\n imports: [\n CommonModule,\n UpdIconsModule,\n UpdBadgeModule\n ],\n declarations: [\n ButtonComponent\n ],\n exports: [\n ButtonComponent\n ]\n})\nexport class UpdButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -224,11 +224,11 @@ class ModalContainerComponent extends BaseComponent {
|
|
|
224
224
|
}
|
|
225
225
|
}
|
|
226
226
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ModalContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
227
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: ModalContainerComponent, selector: "upd-modal-container", host: { properties: { "id": "this.id", "class": "this.hostClass", "role": "this.role", "aria-hidden": "this.ariaHidden", "aria-modal": "this.ariaModal", "tabindex": "this.tabIndex", "style.display": "this.styleDisplay" } }, viewQueries: [{ propertyName: "dialog", first: true, predicate: ["dialog"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "content", first: true, predicate: ["content"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "bodyContentOutlet", first: true, predicate: NgComponentOutlet, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *transloco=\"let t; prefix: 'UpDevs.Modal'\">\n <div [ngClass]=\"classes\" #dialog>\n <div class=\"modal-content\" tabindex=\"-1\" #content>\n @if (!!contentType) {\n <ng-container [ngComponentOutlet]=\"contentType\" [ngComponentOutletInputs]=\"{modalRef: this, data: data}\"></ng-container>\n } @else {\n @if (!isAlert && (!!titleText || !!headerTemplateRef)) {\n <div class=\"modal-header\">\n @if (!!headerTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"headerTemplateRef\" [ngTemplateOutletContext]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else {\n <h5 class=\"modal-title\">{{ titleText }}</h5>\n @if (showCloseButton) {\n <ng-container [ngTemplateOutlet]=\"closeBtnTpl\"></ng-container>\n }\n }\n </div>\n } @else if (showCloseButton) {\n <ng-container [ngTemplateOutlet]=\"closeBtnTpl\"></ng-container>\n }\n\n <div class=\"modal-body py-4\" [class.text-center]=\"isTextCentered || isAlert\">\n @if (isAlert && !!titleText) {\n <div class=\"d-flex justify-content-center align-content-start\"\n [class.flex-row]=\"titleIconPosition === 'left' || titleIconPosition === 'right'\"\n [class.flex-column]=\"titleIconPosition === 'top' || titleIconPosition === 'bottom'\">\n @if (!!titleIcon && (titleIconPosition === 'top' || titleIconPosition === 'left')) {\n <upd-icon [model]=\"titleIcon\" [class.me-2]=\"titleIconPosition === 'left'\"\n [class.mb-2]=\"titleIconPosition === 'top'\"></upd-icon>\n }\n\n <span class=\"align-self-center fs-3 fw-bold\" [class.mb-3]=\"!!titleIcon && titleIconPosition === 'top'\">\n {{ titleText }}\n </span>\n\n @if (!!titleIcon && (titleIconPosition === 'bottom' || titleIconPosition === 'right')) {\n <upd-icon [model]=\"titleIcon\" [class.ms-2]=\"titleIconPosition === 'right'\"\n [class.mb-2]=\"titleIconPosition === 'bottom'\"></upd-icon>\n }\n </div>\n }\n\n @if (!!bodyTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"bodyTemplateRef!\" [ngTemplateOutletContext]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else if (!!bodyContentType) {\n <ng-container [ngComponentOutlet]=\"bodyContentType\" [ngComponentOutletInputs]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else {\n <div [innerHTML]=\"bodyText\" [class.text-secondary]=\"isAlert\"></div>\n }\n </div>\n\n @if (!!statusColor) {\n <div class=\"modal-status\" [style.position]=\"'relative'\" [ngClass]=\"statusColorClass\"></div>\n }\n\n @if (showCancelButton || actionButtons.length > 0 || !!footerTemplateRef) {\n <div class=\"modal-footer\">\n @if (!!footerTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"footerTemplateRef\" [ngTemplateOutletContext]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else {\n @switch (footerLayout) {\n @case ('full-width') {\n <div class=\"w-100\">\n <div class=\"row\">\n @if (showCancelButton) {\n <div class=\"col\">\n <upd-button class=\"w-100\" [isNavigationLink]=\"true\" (clicked)=\"close()\">\n {{ t('Cancel') }}\n </upd-button>\n </div>\n }\n\n @for (btn of actionButtons; track btn) {\n <div class=\"col\">\n <upd-button class=\"w-100\" [model]=\"btn\"></upd-button>\n </div>\n }\n </div>\n </div>\n }\n @case ('centered') {\n <div class=\"d-flex justify-content-center w-100\">\n <ng-container [ngTemplateOutlet]=\"buttonsTpl\"></ng-container>\n </div>\n }\n @default {\n <ng-container [ngTemplateOutlet]=\"buttonsTpl\"></ng-container>\n }\n }\n }\n </div>\n }\n }\n </div>\n </div>\n\n <ng-template #closeBtnTpl>\n <upd-button (clicked)=\"close()\" [shouldIgnoreBtnClass]=\"true\" customClasses=\"btn-close\"></upd-button>\n </ng-template>\n\n <ng-template #buttonsTpl>\n @if (showCancelButton) {\n <upd-button colorStyle=\"secondary\" [isLink]=\"true\" (clicked)=\"close()\">\n {{ t('Cancel') }}\n </upd-button>\n }\n\n @for (btn of actionButtons; track btn
|
|
227
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: ModalContainerComponent, selector: "upd-modal-container", host: { properties: { "id": "this.id", "class": "this.hostClass", "role": "this.role", "aria-hidden": "this.ariaHidden", "aria-modal": "this.ariaModal", "tabindex": "this.tabIndex", "style.display": "this.styleDisplay" } }, viewQueries: [{ propertyName: "dialog", first: true, predicate: ["dialog"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "content", first: true, predicate: ["content"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "bodyContentOutlet", first: true, predicate: NgComponentOutlet, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *transloco=\"let t; prefix: 'UpDevs.Modal'\">\n <div [ngClass]=\"classes\" #dialog>\n <div class=\"modal-content\" tabindex=\"-1\" #content>\n @if (!!contentType) {\n <ng-container [ngComponentOutlet]=\"contentType\" [ngComponentOutletInputs]=\"{modalRef: this, data: data}\"></ng-container>\n } @else {\n @if (!isAlert && (!!titleText || !!headerTemplateRef)) {\n <div class=\"modal-header\">\n @if (!!headerTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"headerTemplateRef\" [ngTemplateOutletContext]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else {\n <h5 class=\"modal-title\">{{ titleText }}</h5>\n @if (showCloseButton) {\n <ng-container [ngTemplateOutlet]=\"closeBtnTpl\"></ng-container>\n }\n }\n </div>\n } @else if (showCloseButton) {\n <ng-container [ngTemplateOutlet]=\"closeBtnTpl\"></ng-container>\n }\n\n <div class=\"modal-body py-4\" [class.text-center]=\"isTextCentered || isAlert\">\n @if (isAlert && !!titleText) {\n <div class=\"d-flex justify-content-center align-content-start\"\n [class.flex-row]=\"titleIconPosition === 'left' || titleIconPosition === 'right'\"\n [class.flex-column]=\"titleIconPosition === 'top' || titleIconPosition === 'bottom'\">\n @if (!!titleIcon && (titleIconPosition === 'top' || titleIconPosition === 'left')) {\n <upd-icon [model]=\"titleIcon\" [class.me-2]=\"titleIconPosition === 'left'\"\n [class.mb-2]=\"titleIconPosition === 'top'\"></upd-icon>\n }\n\n <span class=\"align-self-center fs-3 fw-bold\" [class.mb-3]=\"!!titleIcon && titleIconPosition === 'top'\">\n {{ titleText }}\n </span>\n\n @if (!!titleIcon && (titleIconPosition === 'bottom' || titleIconPosition === 'right')) {\n <upd-icon [model]=\"titleIcon\" [class.ms-2]=\"titleIconPosition === 'right'\"\n [class.mb-2]=\"titleIconPosition === 'bottom'\"></upd-icon>\n }\n </div>\n }\n\n @if (!!bodyTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"bodyTemplateRef!\" [ngTemplateOutletContext]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else if (!!bodyContentType) {\n <ng-container [ngComponentOutlet]=\"bodyContentType\" [ngComponentOutletInputs]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else {\n <div [innerHTML]=\"bodyText\" [class.text-secondary]=\"isAlert\"></div>\n }\n </div>\n\n @if (!!statusColor) {\n <div class=\"modal-status\" [style.position]=\"'relative'\" [ngClass]=\"statusColorClass\"></div>\n }\n\n @if (showCancelButton || actionButtons.length > 0 || !!footerTemplateRef) {\n <div class=\"modal-footer\">\n @if (!!footerTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"footerTemplateRef\" [ngTemplateOutletContext]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else {\n @switch (footerLayout) {\n @case ('full-width') {\n <div class=\"w-100\">\n <div class=\"row\">\n @if (showCancelButton) {\n <div class=\"col\">\n <upd-button class=\"w-100\" [isNavigationLink]=\"true\" (clicked)=\"close()\">\n {{ t('Cancel') }}\n </upd-button>\n </div>\n }\n\n @for (btn of actionButtons; track btn) {\n <div class=\"col\">\n <upd-button class=\"w-100\" [model]=\"btn\"></upd-button>\n </div>\n }\n </div>\n </div>\n }\n @case ('centered') {\n <div class=\"d-flex justify-content-center w-100\">\n <ng-container [ngTemplateOutlet]=\"buttonsTpl\"></ng-container>\n </div>\n }\n @default {\n <ng-container [ngTemplateOutlet]=\"buttonsTpl\"></ng-container>\n }\n }\n }\n </div>\n }\n }\n </div>\n </div>\n\n <ng-template #closeBtnTpl>\n <upd-button (clicked)=\"close()\" [shouldIgnoreBtnClass]=\"true\" customClasses=\"btn-close\"></upd-button>\n </ng-template>\n\n <ng-template #buttonsTpl>\n @if (showCancelButton) {\n <upd-button colorStyle=\"secondary\" [isLink]=\"true\" (clicked)=\"close()\">\n {{ t('Cancel') }}\n </upd-button>\n }\n\n @for (btn of actionButtons; track btn) {\n <upd-button [model]=\"btn\" (clicked)=\"buttonClick($event, btn)\"></upd-button>\n }\n </ng-template>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title"], outputs: ["clicked"] }, { kind: "component", type: i3.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "directive", type: i1$1.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] }); }
|
|
228
228
|
}
|
|
229
229
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ModalContainerComponent, decorators: [{
|
|
230
230
|
type: Component,
|
|
231
|
-
args: [{ selector: 'upd-modal-container', template: "<ng-container *transloco=\"let t; prefix: 'UpDevs.Modal'\">\n <div [ngClass]=\"classes\" #dialog>\n <div class=\"modal-content\" tabindex=\"-1\" #content>\n @if (!!contentType) {\n <ng-container [ngComponentOutlet]=\"contentType\" [ngComponentOutletInputs]=\"{modalRef: this, data: data}\"></ng-container>\n } @else {\n @if (!isAlert && (!!titleText || !!headerTemplateRef)) {\n <div class=\"modal-header\">\n @if (!!headerTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"headerTemplateRef\" [ngTemplateOutletContext]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else {\n <h5 class=\"modal-title\">{{ titleText }}</h5>\n @if (showCloseButton) {\n <ng-container [ngTemplateOutlet]=\"closeBtnTpl\"></ng-container>\n }\n }\n </div>\n } @else if (showCloseButton) {\n <ng-container [ngTemplateOutlet]=\"closeBtnTpl\"></ng-container>\n }\n\n <div class=\"modal-body py-4\" [class.text-center]=\"isTextCentered || isAlert\">\n @if (isAlert && !!titleText) {\n <div class=\"d-flex justify-content-center align-content-start\"\n [class.flex-row]=\"titleIconPosition === 'left' || titleIconPosition === 'right'\"\n [class.flex-column]=\"titleIconPosition === 'top' || titleIconPosition === 'bottom'\">\n @if (!!titleIcon && (titleIconPosition === 'top' || titleIconPosition === 'left')) {\n <upd-icon [model]=\"titleIcon\" [class.me-2]=\"titleIconPosition === 'left'\"\n [class.mb-2]=\"titleIconPosition === 'top'\"></upd-icon>\n }\n\n <span class=\"align-self-center fs-3 fw-bold\" [class.mb-3]=\"!!titleIcon && titleIconPosition === 'top'\">\n {{ titleText }}\n </span>\n\n @if (!!titleIcon && (titleIconPosition === 'bottom' || titleIconPosition === 'right')) {\n <upd-icon [model]=\"titleIcon\" [class.ms-2]=\"titleIconPosition === 'right'\"\n [class.mb-2]=\"titleIconPosition === 'bottom'\"></upd-icon>\n }\n </div>\n }\n\n @if (!!bodyTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"bodyTemplateRef!\" [ngTemplateOutletContext]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else if (!!bodyContentType) {\n <ng-container [ngComponentOutlet]=\"bodyContentType\" [ngComponentOutletInputs]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else {\n <div [innerHTML]=\"bodyText\" [class.text-secondary]=\"isAlert\"></div>\n }\n </div>\n\n @if (!!statusColor) {\n <div class=\"modal-status\" [style.position]=\"'relative'\" [ngClass]=\"statusColorClass\"></div>\n }\n\n @if (showCancelButton || actionButtons.length > 0 || !!footerTemplateRef) {\n <div class=\"modal-footer\">\n @if (!!footerTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"footerTemplateRef\" [ngTemplateOutletContext]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else {\n @switch (footerLayout) {\n @case ('full-width') {\n <div class=\"w-100\">\n <div class=\"row\">\n @if (showCancelButton) {\n <div class=\"col\">\n <upd-button class=\"w-100\" [isNavigationLink]=\"true\" (clicked)=\"close()\">\n {{ t('Cancel') }}\n </upd-button>\n </div>\n }\n\n @for (btn of actionButtons; track btn) {\n <div class=\"col\">\n <upd-button class=\"w-100\" [model]=\"btn\"></upd-button>\n </div>\n }\n </div>\n </div>\n }\n @case ('centered') {\n <div class=\"d-flex justify-content-center w-100\">\n <ng-container [ngTemplateOutlet]=\"buttonsTpl\"></ng-container>\n </div>\n }\n @default {\n <ng-container [ngTemplateOutlet]=\"buttonsTpl\"></ng-container>\n }\n }\n }\n </div>\n }\n }\n </div>\n </div>\n\n <ng-template #closeBtnTpl>\n <upd-button (clicked)=\"close()\" [shouldIgnoreBtnClass]=\"true\" customClasses=\"btn-close\"></upd-button>\n </ng-template>\n\n <ng-template #buttonsTpl>\n @if (showCancelButton) {\n <upd-button colorStyle=\"secondary\" [isLink]=\"true\" (clicked)=\"close()\">\n {{ t('Cancel') }}\n </upd-button>\n }\n\n @for (btn of actionButtons; track btn
|
|
231
|
+
args: [{ selector: 'upd-modal-container', template: "<ng-container *transloco=\"let t; prefix: 'UpDevs.Modal'\">\n <div [ngClass]=\"classes\" #dialog>\n <div class=\"modal-content\" tabindex=\"-1\" #content>\n @if (!!contentType) {\n <ng-container [ngComponentOutlet]=\"contentType\" [ngComponentOutletInputs]=\"{modalRef: this, data: data}\"></ng-container>\n } @else {\n @if (!isAlert && (!!titleText || !!headerTemplateRef)) {\n <div class=\"modal-header\">\n @if (!!headerTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"headerTemplateRef\" [ngTemplateOutletContext]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else {\n <h5 class=\"modal-title\">{{ titleText }}</h5>\n @if (showCloseButton) {\n <ng-container [ngTemplateOutlet]=\"closeBtnTpl\"></ng-container>\n }\n }\n </div>\n } @else if (showCloseButton) {\n <ng-container [ngTemplateOutlet]=\"closeBtnTpl\"></ng-container>\n }\n\n <div class=\"modal-body py-4\" [class.text-center]=\"isTextCentered || isAlert\">\n @if (isAlert && !!titleText) {\n <div class=\"d-flex justify-content-center align-content-start\"\n [class.flex-row]=\"titleIconPosition === 'left' || titleIconPosition === 'right'\"\n [class.flex-column]=\"titleIconPosition === 'top' || titleIconPosition === 'bottom'\">\n @if (!!titleIcon && (titleIconPosition === 'top' || titleIconPosition === 'left')) {\n <upd-icon [model]=\"titleIcon\" [class.me-2]=\"titleIconPosition === 'left'\"\n [class.mb-2]=\"titleIconPosition === 'top'\"></upd-icon>\n }\n\n <span class=\"align-self-center fs-3 fw-bold\" [class.mb-3]=\"!!titleIcon && titleIconPosition === 'top'\">\n {{ titleText }}\n </span>\n\n @if (!!titleIcon && (titleIconPosition === 'bottom' || titleIconPosition === 'right')) {\n <upd-icon [model]=\"titleIcon\" [class.ms-2]=\"titleIconPosition === 'right'\"\n [class.mb-2]=\"titleIconPosition === 'bottom'\"></upd-icon>\n }\n </div>\n }\n\n @if (!!bodyTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"bodyTemplateRef!\" [ngTemplateOutletContext]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else if (!!bodyContentType) {\n <ng-container [ngComponentOutlet]=\"bodyContentType\" [ngComponentOutletInputs]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else {\n <div [innerHTML]=\"bodyText\" [class.text-secondary]=\"isAlert\"></div>\n }\n </div>\n\n @if (!!statusColor) {\n <div class=\"modal-status\" [style.position]=\"'relative'\" [ngClass]=\"statusColorClass\"></div>\n }\n\n @if (showCancelButton || actionButtons.length > 0 || !!footerTemplateRef) {\n <div class=\"modal-footer\">\n @if (!!footerTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"footerTemplateRef\" [ngTemplateOutletContext]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else {\n @switch (footerLayout) {\n @case ('full-width') {\n <div class=\"w-100\">\n <div class=\"row\">\n @if (showCancelButton) {\n <div class=\"col\">\n <upd-button class=\"w-100\" [isNavigationLink]=\"true\" (clicked)=\"close()\">\n {{ t('Cancel') }}\n </upd-button>\n </div>\n }\n\n @for (btn of actionButtons; track btn) {\n <div class=\"col\">\n <upd-button class=\"w-100\" [model]=\"btn\"></upd-button>\n </div>\n }\n </div>\n </div>\n }\n @case ('centered') {\n <div class=\"d-flex justify-content-center w-100\">\n <ng-container [ngTemplateOutlet]=\"buttonsTpl\"></ng-container>\n </div>\n }\n @default {\n <ng-container [ngTemplateOutlet]=\"buttonsTpl\"></ng-container>\n }\n }\n }\n </div>\n }\n }\n </div>\n </div>\n\n <ng-template #closeBtnTpl>\n <upd-button (clicked)=\"close()\" [shouldIgnoreBtnClass]=\"true\" customClasses=\"btn-close\"></upd-button>\n </ng-template>\n\n <ng-template #buttonsTpl>\n @if (showCancelButton) {\n <upd-button colorStyle=\"secondary\" [isLink]=\"true\" (clicked)=\"close()\">\n {{ t('Cancel') }}\n </upd-button>\n }\n\n @for (btn of actionButtons; track btn) {\n <upd-button [model]=\"btn\" (clicked)=\"buttonClick($event, btn)\"></upd-button>\n }\n </ng-template>\n</ng-container>\n" }]
|
|
232
232
|
}], propDecorators: { id: [{
|
|
233
233
|
type: HostBinding,
|
|
234
234
|
args: ['id']
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updevs-components-modal.mjs","sources":["../../../../libs/components/modal/src/models/base.modal.ts","../../../../libs/components/modal/src/models/modal-config.model.ts","../../../../libs/components/modal/src/components/modal-container/modal-container.component.ts","../../../../libs/components/modal/src/components/modal-container/modal-container.component.html","../../../../libs/components/modal/src/services/modal.service.ts","../../../../libs/components/modal/src/services/modal-alert.service.ts","../../../../libs/components/modal/src/upd-modal.module.ts","../../../../libs/components/modal/src/updevs-components-modal.ts"],"sourcesContent":["import { input, Directive } from '@angular/core';\n\nimport { ModalRef } from './modal-ref';\n\n@Directive()\nexport abstract class BaseModal<TData = any> {\n modalRef = input.required<ModalRef>();\n data = input.required<TData>();\n}\n","import { TemplateRef, Type } from '@angular/core';\nimport { ButtonModel } from '@updevs/sdk/layout';\nimport { TextModel } from '@updevs/sdk';\nimport { TopBottomLeftRightType, BgColorStyleType } from '@updevs/sdk/types';\nimport { IconModel } from '@updevs/icons';\n\nimport { ModalConfig } from './modal.config';\nimport { ModalSizeType } from '../types/modal-size.type';\nimport { ModalFooterStyleType } from '../types/modal-footer-style.type';\n\nexport class ModalConfigModel implements ModalConfig {\n size: ModalSizeType = 'regular';\n isVerticallyCentered = true;\n isScrollable = false;\n showCancelButton = false;\n showCloseButton = true;\n isTextCentered = true;\n shouldDismissOnEsc = false;\n shouldDismissOnOutsideClick = false;\n isAlert = false;\n statusColor?: BgColorStyleType;\n headerTemplateRef?: TemplateRef<any>;\n footerTemplateRef?: TemplateRef<any>;\n bodyTemplateRef?: TemplateRef<any>;\n bodyContentType?: Type<any>;\n body?: TextModel;\n title?: TextModel;\n titleIcon?: IconModel;\n titleIconPosition?: TopBottomLeftRightType = 'top';\n footerLayout?: ModalFooterStyleType = 'default';\n actionButtons: ButtonModel[] = [];\n data?: any;\n\n constructor(init?: Partial<ModalConfig>) {\n if (!!init) {\n Object.assign(this, init);\n }\n }\n}\n","import { DOCUMENT, NgComponentOutlet } from '@angular/common';\nimport { Component, HostBinding, TemplateRef, inject, Type, ElementRef, Renderer2, viewChild, ComponentRef } from '@angular/core';\nimport { TextService, TextModel } from '@updevs/sdk';\nimport {\n Utils as LayoutUtils,\n LayoutService,\n ScrollbarService,\n BaseComponent,\n Overlay,\n ButtonModel\n} from '@updevs/sdk/layout';\nimport { TopBottomLeftRightType, OptionalType, BgColorStyleType } from '@updevs/sdk/types';\nimport { IconModel } from '@updevs/icons';\n\nimport { ModalSizeType } from '../../types/modal-size.type';\nimport { ModalConfig } from '../../models/modal.config';\nimport { ModalConfigModel } from '../../models/modal-config.model';\nimport { ModalFooterStyleType } from '../../types/modal-footer-style.type';\nimport { ModalRef } from '../../models/modal-ref';\n\nlet containerId = 1;\n\n@Component({\n selector: 'upd-modal-container',\n templateUrl: './modal-container.component.html',\n styleUrl: './modal-container.component.scss'\n})\nexport class ModalContainerComponent extends BaseComponent implements ModalConfig, ModalRef {\n @HostBinding('id') id = `modal-${containerId++}`;\n @HostBinding('class') hostClass = ['modal', 'modal-blur', 'fade'];\n @HostBinding('role') role = 'dialog';\n @HostBinding('aria-hidden') ariaHidden = true;\n @HostBinding('aria-modal') ariaModal = false;\n @HostBinding('tabindex') tabIndex = -1;\n @HostBinding('style.display') styleDisplay?: string;\n\n dialog = viewChild.required('dialog', { read: ElementRef });\n content = viewChild.required('content', { read: ElementRef });\n bodyContentOutlet = viewChild<NgComponentOutlet>(NgComponentOutlet);\n size: ModalSizeType = 'regular';\n isVerticallyCentered = true;\n isScrollable = false;\n showCloseButton = true;\n showCancelButton = false;\n isTextCentered = true;\n shouldDismissOnEsc = false;\n shouldDismissOnOutsideClick = false;\n isAlert = false;\n statusColor?: BgColorStyleType;\n headerTemplateRef?: TemplateRef<any>;\n footerTemplateRef?: TemplateRef<any>;\n bodyTemplateRef?: TemplateRef<any>;\n bodyContentType?: Type<any>;\n contentType?: Type<any>;\n body?: TextModel;\n title?: TextModel;\n titleIcon?: IconModel;\n titleIconPosition?: TopBottomLeftRightType = 'top';\n footerLayout?: ModalFooterStyleType = 'default';\n actionButtons: ButtonModel[] = [];\n overlay!: Overlay;\n modalContainerRef!: ComponentRef<ModalContainerComponent>;\n data?: any;\n afterClose?: (result?: any) => void;\n\n get classes(): string[] {\n return [\n 'modal-dialog',\n this.isVerticallyCentered ? 'modal-dialog-centered' : '',\n this.isScrollable ? 'modal-dialog-scrollable' : '',\n this.sizeClass\n ];\n }\n\n get titleText(): string {\n return this.textService.getText(this.title);\n }\n\n get bodyText(): string {\n return this.textService.getText(this.body);\n }\n\n get statusColorClass(): string {\n return `bg-${this.statusColor}`;\n }\n\n get sizeClass(): string {\n let cls = '';\n\n switch (this.size) {\n case 'small':\n cls = 'modal-sm';\n break;\n case 'large':\n cls = 'modal-lg';\n break;\n case 'extra-large':\n cls = 'modal-xl';\n break;\n }\n\n return cls;\n }\n\n private readonly openClass = 'modal-open';\n private readonly textService = inject(TextService);\n private readonly elementRef = inject(ElementRef);\n private readonly layoutService = inject(LayoutService);\n private readonly scrollbarService = inject(ScrollbarService);\n private readonly renderer = inject(Renderer2);\n private readonly document = inject(DOCUMENT);\n\n private get element(): any {\n return this.elementRef.nativeElement;\n }\n\n prepareToShow(config?: ModalConfig): void {\n this.setupConfig(config);\n this.scrollbarService.hide();\n this.layoutService.addBodyClasses(this.openClass);\n this.adjustDialog();\n this.setupActionButtons();\n }\n\n show(): void {\n this.setupListeners();\n\n this.styleDisplay = 'block';\n this.ariaHidden = false;\n this.ariaModal = true;\n this.element.scrollTop = 0;\n this.dialog().nativeElement.scrollTop = 0;\n\n LayoutUtils.reflow(this.element);\n\n const transitionSub = LayoutUtils.executeAfterTransition(this.element).subscribe(() => {\n this.element.classList.add('show');\n this.content().nativeElement.focus();\n });\n\n this.addSubscriptions(transitionSub);\n }\n\n close(result?: any): void {\n const transitionSub = LayoutUtils.executeAfterTransition(this.element).subscribe(() => {\n this.styleDisplay = undefined;\n this.ariaHidden = true;\n this.ariaModal = false;\n\n if (!!this.afterClose) {\n this.afterClose(result);\n }\n\n this.overlay.hide();\n this.layoutService.removeBodyClasses(this.openClass);\n this.modalContainerRef.destroy();\n });\n\n this.element.classList.remove('show');\n this.addSubscriptions(transitionSub);\n }\n\n buttonClick(event: MouseEvent, btn: ButtonModel): void {\n if (!!btn.clickFunction) {\n btn.clickFunction({ event, data: btn });\n }\n }\n\n getBodyInstance<T>(): OptionalType<T> {\n return <T>this.bodyContentOutlet()?.['_componentRef'].instance;\n }\n\n private adjustDialog(): void {\n const isModalOverflowing = this.element.scrollHeight > this.document.documentElement.clientHeight;\n const scrollbarWidth = this.scrollbarService.getWidth();\n const isBodyOverflowing = scrollbarWidth > 0;\n\n if (isBodyOverflowing && !isModalOverflowing) {\n this.renderer.setStyle(this.element, 'paddingRight', `${scrollbarWidth}px`);\n }\n\n if (!isBodyOverflowing && isModalOverflowing) {\n this.renderer.setStyle(this.element, 'paddingLeft', `${scrollbarWidth}px`);\n }\n }\n\n private setupConfig(config?: ModalConfig): void {\n if (!config) {\n return;\n }\n\n const configModel = new ModalConfigModel(config);\n this.size = configModel.size;\n this.isVerticallyCentered = configModel.isVerticallyCentered;\n this.isScrollable = configModel.isScrollable;\n this.showCancelButton = configModel.showCancelButton;\n this.showCloseButton = configModel.showCloseButton;\n this.shouldDismissOnEsc = configModel.shouldDismissOnEsc;\n this.shouldDismissOnOutsideClick = configModel.shouldDismissOnOutsideClick;\n this.isAlert = configModel.isAlert;\n this.isTextCentered = configModel.isTextCentered;\n this.statusColor = configModel.statusColor;\n this.headerTemplateRef = configModel.headerTemplateRef;\n this.footerTemplateRef = configModel.footerTemplateRef;\n this.bodyTemplateRef = configModel.bodyTemplateRef;\n this.bodyContentType = configModel.bodyContentType;\n this.body = configModel.body;\n this.title = configModel.title;\n this.titleIcon = configModel.titleIcon;\n this.titleIconPosition = configModel.titleIconPosition;\n this.footerLayout = configModel.footerLayout;\n this.actionButtons = configModel.actionButtons;\n this.data = configModel.data;\n }\n\n private setupActionButtons(): void {\n this.actionButtons.forEach(btn => {\n const fnBackup = btn.clickFunction;\n btn.clickFunction = event => {\n event.data = this;\n fnBackup!(event);\n };\n });\n }\n\n private setupListeners(): void {\n if (this.shouldDismissOnOutsideClick) {\n this.element.addEventListener('click', this.clickCallback);\n }\n\n if (this.shouldDismissOnEsc) {\n this.element.addEventListener('keydown', this.escCallback);\n }\n }\n\n private clickCallback = (evt: Event) => {\n if (evt.target === this.element) {\n this.close();\n }\n };\n\n private escCallback = (evt: KeyboardEvent) => {\n if (evt.key === 'Escape') {\n this.close();\n }\n };\n}\n","<ng-container *transloco=\"let t; prefix: 'UpDevs.Modal'\">\n <div [ngClass]=\"classes\" #dialog>\n <div class=\"modal-content\" tabindex=\"-1\" #content>\n @if (!!contentType) {\n <ng-container [ngComponentOutlet]=\"contentType\" [ngComponentOutletInputs]=\"{modalRef: this, data: data}\"></ng-container>\n } @else {\n @if (!isAlert && (!!titleText || !!headerTemplateRef)) {\n <div class=\"modal-header\">\n @if (!!headerTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"headerTemplateRef\" [ngTemplateOutletContext]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else {\n <h5 class=\"modal-title\">{{ titleText }}</h5>\n @if (showCloseButton) {\n <ng-container [ngTemplateOutlet]=\"closeBtnTpl\"></ng-container>\n }\n }\n </div>\n } @else if (showCloseButton) {\n <ng-container [ngTemplateOutlet]=\"closeBtnTpl\"></ng-container>\n }\n\n <div class=\"modal-body py-4\" [class.text-center]=\"isTextCentered || isAlert\">\n @if (isAlert && !!titleText) {\n <div class=\"d-flex justify-content-center align-content-start\"\n [class.flex-row]=\"titleIconPosition === 'left' || titleIconPosition === 'right'\"\n [class.flex-column]=\"titleIconPosition === 'top' || titleIconPosition === 'bottom'\">\n @if (!!titleIcon && (titleIconPosition === 'top' || titleIconPosition === 'left')) {\n <upd-icon [model]=\"titleIcon\" [class.me-2]=\"titleIconPosition === 'left'\"\n [class.mb-2]=\"titleIconPosition === 'top'\"></upd-icon>\n }\n\n <span class=\"align-self-center fs-3 fw-bold\" [class.mb-3]=\"!!titleIcon && titleIconPosition === 'top'\">\n {{ titleText }}\n </span>\n\n @if (!!titleIcon && (titleIconPosition === 'bottom' || titleIconPosition === 'right')) {\n <upd-icon [model]=\"titleIcon\" [class.ms-2]=\"titleIconPosition === 'right'\"\n [class.mb-2]=\"titleIconPosition === 'bottom'\"></upd-icon>\n }\n </div>\n }\n\n @if (!!bodyTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"bodyTemplateRef!\" [ngTemplateOutletContext]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else if (!!bodyContentType) {\n <ng-container [ngComponentOutlet]=\"bodyContentType\" [ngComponentOutletInputs]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else {\n <div [innerHTML]=\"bodyText\" [class.text-secondary]=\"isAlert\"></div>\n }\n </div>\n\n @if (!!statusColor) {\n <div class=\"modal-status\" [style.position]=\"'relative'\" [ngClass]=\"statusColorClass\"></div>\n }\n\n @if (showCancelButton || actionButtons.length > 0 || !!footerTemplateRef) {\n <div class=\"modal-footer\">\n @if (!!footerTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"footerTemplateRef\" [ngTemplateOutletContext]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else {\n @switch (footerLayout) {\n @case ('full-width') {\n <div class=\"w-100\">\n <div class=\"row\">\n @if (showCancelButton) {\n <div class=\"col\">\n <upd-button class=\"w-100\" [isNavigationLink]=\"true\" (clicked)=\"close()\">\n {{ t('Cancel') }}\n </upd-button>\n </div>\n }\n\n @for (btn of actionButtons; track btn) {\n <div class=\"col\">\n <upd-button class=\"w-100\" [model]=\"btn\"></upd-button>\n </div>\n }\n </div>\n </div>\n }\n @case ('centered') {\n <div class=\"d-flex justify-content-center w-100\">\n <ng-container [ngTemplateOutlet]=\"buttonsTpl\"></ng-container>\n </div>\n }\n @default {\n <ng-container [ngTemplateOutlet]=\"buttonsTpl\"></ng-container>\n }\n }\n }\n </div>\n }\n }\n </div>\n </div>\n\n <ng-template #closeBtnTpl>\n <upd-button (clicked)=\"close()\" [shouldIgnoreBtnClass]=\"true\" customClasses=\"btn-close\"></upd-button>\n </ng-template>\n\n <ng-template #buttonsTpl>\n @if (showCancelButton) {\n <upd-button colorStyle=\"secondary\" [isLink]=\"true\" (clicked)=\"close()\">\n {{ t('Cancel') }}\n </upd-button>\n }\n\n @for (btn of actionButtons; track btn.id) {\n <upd-button [model]=\"btn\" (clicked)=\"buttonClick($event, btn)\"></upd-button>\n }\n </ng-template>\n</ng-container>\n","import { Injectable, inject, ViewContainerRef, ApplicationRef } from '@angular/core';\nimport { DynamicComponentLoaderService, OverlayService } from '@updevs/sdk/layout';\nimport { ComponentType } from '@updevs/sdk/types';\n\nimport { ModalContainerComponent } from '../components/modal-container/modal-container.component';\nimport { ModalConfig } from '../models/modal.config';\nimport { ModalRef } from '../models/modal-ref';\n\n@Injectable()\nexport class ModalService {\n private readonly dynamicComponentLoaderService = inject(DynamicComponentLoaderService);\n private readonly overlayService = inject(OverlayService);\n private readonly applicationRef = inject(ApplicationRef);\n\n open<T>(\n contentType?: ComponentType<T>,\n config?: ModalConfig,\n rootElement?: Element,\n shouldDisposeOnClick = false,\n shouldDisposeOnEsc = false\n ): ModalRef {\n const viewContainerRef = this.applicationRef.components[0].injector.get(ViewContainerRef);\n const modalContainerRef = this.dynamicComponentLoaderService.load(ModalContainerComponent, viewContainerRef);\n const overlay = this.overlayService.create({ rootElement, customClasses: ['modal-backdrop'] });\n\n modalContainerRef.instance.prepareToShow(config);\n\n modalContainerRef.instance.modalContainerRef = modalContainerRef;\n modalContainerRef.instance.overlay = overlay;\n modalContainerRef.instance.contentType = contentType;\n modalContainerRef.instance.shouldDismissOnOutsideClick = config?.shouldDismissOnOutsideClick || shouldDisposeOnClick;\n modalContainerRef.instance.shouldDismissOnEsc = config?.shouldDismissOnEsc || shouldDisposeOnEsc;\n\n overlay.show().subscribe(() => modalContainerRef.instance.show());\n\n return modalContainerRef.instance;\n }\n}\n","import { Injectable, inject, signal } from '@angular/core';\nimport { TextModel } from '@updevs/sdk';\nimport { ButtonModel } from '@updevs/sdk/layout';\nimport { TopBottomLeftRightType, BgColorStyleType } from '@updevs/sdk/types';\nimport { IconModel, TablerIconsType } from '@updevs/icons';\nimport { Observable, Subject } from 'rxjs';\n\nimport { ModalService } from './modal.service';\nimport { ModalSizeType } from '../types/modal-size.type';\nimport { ModalFooterStyleType } from '../types/modal-footer-style.type';\nimport { ModalRef } from '../models/modal-ref';\n\n@Injectable()\nexport class ModalAlertService {\n private readonly modalService = inject(ModalService);\n private readonly defaultIconModel: IconModel = { tablerIconWeight: 'medium-light', tablerIconSize: 48 };\n\n showWarning(message: TextModel, title?: TextModel, actionButtons: ButtonModel[] = []): ModalRef {\n return this.open(\n message,\n title || { text: 'UpDevs.ModalAlert.WarningTitle', isTranslated: false },\n 'alert-triangle',\n 'text-warning',\n 'warning',\n actionButtons\n );\n }\n\n showError(message: TextModel, title?: TextModel, actionButtons: ButtonModel[] = []): ModalRef {\n return this.open(\n message,\n title || { text: 'UpDevs.ModalAlert.ErrorTitle', isTranslated: false },\n 'exclamation-circle',\n 'text-danger',\n 'danger',\n actionButtons\n );\n }\n\n showInfo(message: TextModel, title?: TextModel, actionButtons: ButtonModel[] = []): ModalRef {\n return this.open(\n message,\n title || { text: 'UpDevs.ModalAlert.InfoTitle', isTranslated: false },\n 'info-circle',\n 'text-info',\n 'info',\n actionButtons\n );\n }\n\n showSuccess(message: TextModel, title?: TextModel, actionButtons: ButtonModel[] = []): ModalRef {\n return this.open(\n message,\n title || { text: 'UpDevs.ModalAlert.SuccessTitle', isTranslated: false },\n 'circle-check',\n 'text-success',\n 'success',\n actionButtons\n );\n }\n\n showConfirm(message: TextModel, title?: TextModel, actionButtons: ButtonModel[] = []): Observable<boolean> {\n // eslint-disable-next-line prefer-const\n let modalRef: ModalRef;\n const statusColor: BgColorStyleType = 'indigo';\n const result = new Subject<boolean>();\n\n if (actionButtons.length < 1) {\n actionButtons = [\n new ButtonModel({\n text: signal({ text: 'UpDevs.ModalAlert.ConfirmNo', isTranslated: false }),\n isOutline: signal(true),\n clickFunction: () => {\n result.next(false);\n modalRef.close();\n }\n }),\n new ButtonModel({\n text: signal({ text: 'UpDevs.ModalAlert.ConfirmYes', isTranslated: false }),\n colorStyle: signal(statusColor),\n clickFunction: () => {\n result.next(true);\n modalRef.close();\n }\n })\n ];\n }\n\n modalRef = this.open(\n message,\n title || { text: 'UpDevs.ModalAlert.ConfirmationTitle', isTranslated: false },\n 'checklist',\n 'text-indigo',\n statusColor,\n actionButtons,\n 'full-width'\n );\n\n return result;\n }\n\n showCustom(\n message: TextModel,\n title: TextModel,\n titleIcon: IconModel,\n titleIconPosition: TopBottomLeftRightType,\n statusColor: BgColorStyleType,\n actionButtons: ButtonModel[] = [],\n size: ModalSizeType = 'small',\n footerLayout: ModalFooterStyleType = 'default'\n ): ModalRef {\n return this.modalService.open(undefined, {\n isAlert: true,\n title,\n titleIcon,\n titleIconPosition,\n size,\n body: message,\n statusColor,\n footerLayout,\n actionButtons\n });\n }\n\n private open(\n message: TextModel,\n title: TextModel,\n titleIconType: TablerIconsType,\n titleIconColorClass: string,\n statusColor: BgColorStyleType,\n actionButtons: ButtonModel[],\n footerLayout: ModalFooterStyleType = 'default'\n ): ModalRef {\n // eslint-disable-next-line prefer-const\n let modalRef: ModalRef;\n const titleIcon: IconModel = {\n ...this.defaultIconModel,\n tablerIcon: titleIconType,\n colorClass: titleIconColorClass\n };\n\n if (actionButtons.length < 1) {\n actionButtons.push(\n new ButtonModel({\n text: signal({ text: 'UpDevs.ModalAlert.OkButtonTitle', isTranslated: false }),\n colorStyle: signal(statusColor),\n clickFunction: () => modalRef.close()\n })\n );\n }\n\n modalRef = this.modalService.open(undefined, {\n isAlert: true,\n title,\n titleIcon,\n titleIconPosition: 'top',\n size: 'small',\n body: message,\n statusColor,\n footerLayout,\n actionButtons,\n showCloseButton: false\n });\n\n return modalRef;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { UpdCoreLayoutModule } from '@updevs/sdk/layout';\nimport { UpdIconsModule } from '@updevs/icons';\nimport { UpdMessagesModule, MessagesService, MessageTypeEnum } from '@updevs/sdk/messages';\nimport { OptionalType } from '@updevs/sdk/types';\nimport { UpdButtonModule } from '@updevs/components/button';\nimport { TranslocoService, TranslocoDirective } from '@jsverse/transloco';\n\nimport * as en from './assets/i18n/en.json';\nimport * as pt from './assets/i18n/pt.json';\nimport { ModalService } from './services/modal.service';\nimport { ModalContainerComponent } from './components/modal-container/modal-container.component';\nimport { ModalAlertService } from './services/modal-alert.service';\nimport { ModalRef } from './models/modal-ref';\n\n@NgModule({\n imports: [\n CommonModule,\n UpdCoreLayoutModule,\n UpdButtonModule,\n UpdIconsModule,\n UpdMessagesModule,\n TranslocoDirective\n ],\n declarations: [\n ModalContainerComponent\n ],\n providers: [\n ModalService,\n ModalAlertService\n ]\n})\nexport class UpdModalModule {\n constructor(translocoService: TranslocoService, modalAlertService: ModalAlertService, messagesService: MessagesService) {\n translocoService.setTranslation(en, 'en');\n translocoService.setTranslation(pt, 'pt');\n this.setupMessagesService(modalAlertService, messagesService);\n }\n\n private setupMessagesService(modalAlertService: ModalAlertService, messagesService: MessagesService): void {\n messagesService.onNewMessage.subscribe(msg => {\n if (msg.isModal) {\n if (!!msg.onShown) {\n msg.onShown();\n }\n\n let modalRef: OptionalType<ModalRef>;\n\n switch (msg.type) {\n case MessageTypeEnum.Warning:\n modalRef = modalAlertService.showWarning(msg.message, msg.title);\n break;\n case MessageTypeEnum.Info:\n modalRef = modalAlertService.showInfo(msg.message, msg.title);\n break;\n case MessageTypeEnum.Error:\n modalRef = modalAlertService.showError(msg.message, msg.title);\n break;\n case MessageTypeEnum.Success:\n modalRef = modalAlertService.showSuccess(msg.message, msg.title);\n break;\n case MessageTypeEnum.Confirm:\n modalAlertService.showConfirm(msg.message, msg.title);\n break;\n }\n\n if (!!modalRef && !!msg.onHidden) {\n modalRef.afterClose = msg.onHidden;\n }\n }\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["LayoutUtils","i4","en","pt","i1","i2.ModalAlertService","i3"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"updevs-components-modal.mjs","sources":["../../../../libs/components/modal/src/models/base.modal.ts","../../../../libs/components/modal/src/models/modal-config.model.ts","../../../../libs/components/modal/src/components/modal-container/modal-container.component.ts","../../../../libs/components/modal/src/components/modal-container/modal-container.component.html","../../../../libs/components/modal/src/services/modal.service.ts","../../../../libs/components/modal/src/services/modal-alert.service.ts","../../../../libs/components/modal/src/upd-modal.module.ts","../../../../libs/components/modal/src/updevs-components-modal.ts"],"sourcesContent":["import { input, Directive } from '@angular/core';\n\nimport { ModalRef } from './modal-ref';\n\n@Directive()\nexport abstract class BaseModal<TData = any> {\n modalRef = input.required<ModalRef>();\n data = input.required<TData>();\n}\n","import { TemplateRef, Type } from '@angular/core';\nimport { ButtonModel } from '@updevs/sdk/layout';\nimport { TextModel } from '@updevs/sdk';\nimport { TopBottomLeftRightType, BgColorStyleType } from '@updevs/sdk/types';\nimport { IconModel } from '@updevs/icons';\n\nimport { ModalConfig } from './modal.config';\nimport { ModalSizeType } from '../types/modal-size.type';\nimport { ModalFooterStyleType } from '../types/modal-footer-style.type';\n\nexport class ModalConfigModel implements ModalConfig {\n size: ModalSizeType = 'regular';\n isVerticallyCentered = true;\n isScrollable = false;\n showCancelButton = false;\n showCloseButton = true;\n isTextCentered = true;\n shouldDismissOnEsc = false;\n shouldDismissOnOutsideClick = false;\n isAlert = false;\n statusColor?: BgColorStyleType;\n headerTemplateRef?: TemplateRef<any>;\n footerTemplateRef?: TemplateRef<any>;\n bodyTemplateRef?: TemplateRef<any>;\n bodyContentType?: Type<any>;\n body?: TextModel;\n title?: TextModel;\n titleIcon?: IconModel;\n titleIconPosition?: TopBottomLeftRightType = 'top';\n footerLayout?: ModalFooterStyleType = 'default';\n actionButtons: ButtonModel[] = [];\n data?: any;\n\n constructor(init?: Partial<ModalConfig>) {\n if (!!init) {\n Object.assign(this, init);\n }\n }\n}\n","import { DOCUMENT, NgComponentOutlet } from '@angular/common';\nimport { Component, HostBinding, TemplateRef, inject, Type, ElementRef, Renderer2, viewChild, ComponentRef } from '@angular/core';\nimport { TextService, TextModel } from '@updevs/sdk';\nimport {\n Utils as LayoutUtils,\n LayoutService,\n ScrollbarService,\n BaseComponent,\n Overlay,\n ButtonModel\n} from '@updevs/sdk/layout';\nimport { TopBottomLeftRightType, OptionalType, BgColorStyleType } from '@updevs/sdk/types';\nimport { IconModel } from '@updevs/icons';\n\nimport { ModalSizeType } from '../../types/modal-size.type';\nimport { ModalConfig } from '../../models/modal.config';\nimport { ModalConfigModel } from '../../models/modal-config.model';\nimport { ModalFooterStyleType } from '../../types/modal-footer-style.type';\nimport { ModalRef } from '../../models/modal-ref';\n\nlet containerId = 1;\n\n@Component({\n selector: 'upd-modal-container',\n templateUrl: './modal-container.component.html',\n styleUrl: './modal-container.component.scss'\n})\nexport class ModalContainerComponent extends BaseComponent implements ModalConfig, ModalRef {\n @HostBinding('id') id = `modal-${containerId++}`;\n @HostBinding('class') hostClass = ['modal', 'modal-blur', 'fade'];\n @HostBinding('role') role = 'dialog';\n @HostBinding('aria-hidden') ariaHidden = true;\n @HostBinding('aria-modal') ariaModal = false;\n @HostBinding('tabindex') tabIndex = -1;\n @HostBinding('style.display') styleDisplay?: string;\n\n dialog = viewChild.required('dialog', { read: ElementRef });\n content = viewChild.required('content', { read: ElementRef });\n bodyContentOutlet = viewChild<NgComponentOutlet>(NgComponentOutlet);\n size: ModalSizeType = 'regular';\n isVerticallyCentered = true;\n isScrollable = false;\n showCloseButton = true;\n showCancelButton = false;\n isTextCentered = true;\n shouldDismissOnEsc = false;\n shouldDismissOnOutsideClick = false;\n isAlert = false;\n statusColor?: BgColorStyleType;\n headerTemplateRef?: TemplateRef<any>;\n footerTemplateRef?: TemplateRef<any>;\n bodyTemplateRef?: TemplateRef<any>;\n bodyContentType?: Type<any>;\n contentType?: Type<any>;\n body?: TextModel;\n title?: TextModel;\n titleIcon?: IconModel;\n titleIconPosition?: TopBottomLeftRightType = 'top';\n footerLayout?: ModalFooterStyleType = 'default';\n actionButtons: ButtonModel[] = [];\n overlay!: Overlay;\n modalContainerRef!: ComponentRef<ModalContainerComponent>;\n data?: any;\n afterClose?: (result?: any) => void;\n\n get classes(): string[] {\n return [\n 'modal-dialog',\n this.isVerticallyCentered ? 'modal-dialog-centered' : '',\n this.isScrollable ? 'modal-dialog-scrollable' : '',\n this.sizeClass\n ];\n }\n\n get titleText(): string {\n return this.textService.getText(this.title);\n }\n\n get bodyText(): string {\n return this.textService.getText(this.body);\n }\n\n get statusColorClass(): string {\n return `bg-${this.statusColor}`;\n }\n\n get sizeClass(): string {\n let cls = '';\n\n switch (this.size) {\n case 'small':\n cls = 'modal-sm';\n break;\n case 'large':\n cls = 'modal-lg';\n break;\n case 'extra-large':\n cls = 'modal-xl';\n break;\n }\n\n return cls;\n }\n\n private readonly openClass = 'modal-open';\n private readonly textService = inject(TextService);\n private readonly elementRef = inject(ElementRef);\n private readonly layoutService = inject(LayoutService);\n private readonly scrollbarService = inject(ScrollbarService);\n private readonly renderer = inject(Renderer2);\n private readonly document = inject(DOCUMENT);\n\n private get element(): any {\n return this.elementRef.nativeElement;\n }\n\n prepareToShow(config?: ModalConfig): void {\n this.setupConfig(config);\n this.scrollbarService.hide();\n this.layoutService.addBodyClasses(this.openClass);\n this.adjustDialog();\n this.setupActionButtons();\n }\n\n show(): void {\n this.setupListeners();\n\n this.styleDisplay = 'block';\n this.ariaHidden = false;\n this.ariaModal = true;\n this.element.scrollTop = 0;\n this.dialog().nativeElement.scrollTop = 0;\n\n LayoutUtils.reflow(this.element);\n\n const transitionSub = LayoutUtils.executeAfterTransition(this.element).subscribe(() => {\n this.element.classList.add('show');\n this.content().nativeElement.focus();\n });\n\n this.addSubscriptions(transitionSub);\n }\n\n close(result?: any): void {\n const transitionSub = LayoutUtils.executeAfterTransition(this.element).subscribe(() => {\n this.styleDisplay = undefined;\n this.ariaHidden = true;\n this.ariaModal = false;\n\n if (!!this.afterClose) {\n this.afterClose(result);\n }\n\n this.overlay.hide();\n this.layoutService.removeBodyClasses(this.openClass);\n this.modalContainerRef.destroy();\n });\n\n this.element.classList.remove('show');\n this.addSubscriptions(transitionSub);\n }\n\n buttonClick(event: MouseEvent, btn: ButtonModel): void {\n if (!!btn.clickFunction) {\n btn.clickFunction({ event, data: btn });\n }\n }\n\n getBodyInstance<T>(): OptionalType<T> {\n return <T>this.bodyContentOutlet()?.['_componentRef'].instance;\n }\n\n private adjustDialog(): void {\n const isModalOverflowing = this.element.scrollHeight > this.document.documentElement.clientHeight;\n const scrollbarWidth = this.scrollbarService.getWidth();\n const isBodyOverflowing = scrollbarWidth > 0;\n\n if (isBodyOverflowing && !isModalOverflowing) {\n this.renderer.setStyle(this.element, 'paddingRight', `${scrollbarWidth}px`);\n }\n\n if (!isBodyOverflowing && isModalOverflowing) {\n this.renderer.setStyle(this.element, 'paddingLeft', `${scrollbarWidth}px`);\n }\n }\n\n private setupConfig(config?: ModalConfig): void {\n if (!config) {\n return;\n }\n\n const configModel = new ModalConfigModel(config);\n this.size = configModel.size;\n this.isVerticallyCentered = configModel.isVerticallyCentered;\n this.isScrollable = configModel.isScrollable;\n this.showCancelButton = configModel.showCancelButton;\n this.showCloseButton = configModel.showCloseButton;\n this.shouldDismissOnEsc = configModel.shouldDismissOnEsc;\n this.shouldDismissOnOutsideClick = configModel.shouldDismissOnOutsideClick;\n this.isAlert = configModel.isAlert;\n this.isTextCentered = configModel.isTextCentered;\n this.statusColor = configModel.statusColor;\n this.headerTemplateRef = configModel.headerTemplateRef;\n this.footerTemplateRef = configModel.footerTemplateRef;\n this.bodyTemplateRef = configModel.bodyTemplateRef;\n this.bodyContentType = configModel.bodyContentType;\n this.body = configModel.body;\n this.title = configModel.title;\n this.titleIcon = configModel.titleIcon;\n this.titleIconPosition = configModel.titleIconPosition;\n this.footerLayout = configModel.footerLayout;\n this.actionButtons = configModel.actionButtons;\n this.data = configModel.data;\n }\n\n private setupActionButtons(): void {\n this.actionButtons.forEach(btn => {\n const fnBackup = btn.clickFunction;\n btn.clickFunction = event => {\n event.data = this;\n fnBackup!(event);\n };\n });\n }\n\n private setupListeners(): void {\n if (this.shouldDismissOnOutsideClick) {\n this.element.addEventListener('click', this.clickCallback);\n }\n\n if (this.shouldDismissOnEsc) {\n this.element.addEventListener('keydown', this.escCallback);\n }\n }\n\n private clickCallback = (evt: Event) => {\n if (evt.target === this.element) {\n this.close();\n }\n };\n\n private escCallback = (evt: KeyboardEvent) => {\n if (evt.key === 'Escape') {\n this.close();\n }\n };\n}\n","<ng-container *transloco=\"let t; prefix: 'UpDevs.Modal'\">\n <div [ngClass]=\"classes\" #dialog>\n <div class=\"modal-content\" tabindex=\"-1\" #content>\n @if (!!contentType) {\n <ng-container [ngComponentOutlet]=\"contentType\" [ngComponentOutletInputs]=\"{modalRef: this, data: data}\"></ng-container>\n } @else {\n @if (!isAlert && (!!titleText || !!headerTemplateRef)) {\n <div class=\"modal-header\">\n @if (!!headerTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"headerTemplateRef\" [ngTemplateOutletContext]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else {\n <h5 class=\"modal-title\">{{ titleText }}</h5>\n @if (showCloseButton) {\n <ng-container [ngTemplateOutlet]=\"closeBtnTpl\"></ng-container>\n }\n }\n </div>\n } @else if (showCloseButton) {\n <ng-container [ngTemplateOutlet]=\"closeBtnTpl\"></ng-container>\n }\n\n <div class=\"modal-body py-4\" [class.text-center]=\"isTextCentered || isAlert\">\n @if (isAlert && !!titleText) {\n <div class=\"d-flex justify-content-center align-content-start\"\n [class.flex-row]=\"titleIconPosition === 'left' || titleIconPosition === 'right'\"\n [class.flex-column]=\"titleIconPosition === 'top' || titleIconPosition === 'bottom'\">\n @if (!!titleIcon && (titleIconPosition === 'top' || titleIconPosition === 'left')) {\n <upd-icon [model]=\"titleIcon\" [class.me-2]=\"titleIconPosition === 'left'\"\n [class.mb-2]=\"titleIconPosition === 'top'\"></upd-icon>\n }\n\n <span class=\"align-self-center fs-3 fw-bold\" [class.mb-3]=\"!!titleIcon && titleIconPosition === 'top'\">\n {{ titleText }}\n </span>\n\n @if (!!titleIcon && (titleIconPosition === 'bottom' || titleIconPosition === 'right')) {\n <upd-icon [model]=\"titleIcon\" [class.ms-2]=\"titleIconPosition === 'right'\"\n [class.mb-2]=\"titleIconPosition === 'bottom'\"></upd-icon>\n }\n </div>\n }\n\n @if (!!bodyTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"bodyTemplateRef!\" [ngTemplateOutletContext]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else if (!!bodyContentType) {\n <ng-container [ngComponentOutlet]=\"bodyContentType\" [ngComponentOutletInputs]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else {\n <div [innerHTML]=\"bodyText\" [class.text-secondary]=\"isAlert\"></div>\n }\n </div>\n\n @if (!!statusColor) {\n <div class=\"modal-status\" [style.position]=\"'relative'\" [ngClass]=\"statusColorClass\"></div>\n }\n\n @if (showCancelButton || actionButtons.length > 0 || !!footerTemplateRef) {\n <div class=\"modal-footer\">\n @if (!!footerTemplateRef) {\n <ng-container [ngTemplateOutlet]=\"footerTemplateRef\" [ngTemplateOutletContext]=\"{modalRef: this, data: data}\">\n </ng-container>\n } @else {\n @switch (footerLayout) {\n @case ('full-width') {\n <div class=\"w-100\">\n <div class=\"row\">\n @if (showCancelButton) {\n <div class=\"col\">\n <upd-button class=\"w-100\" [isNavigationLink]=\"true\" (clicked)=\"close()\">\n {{ t('Cancel') }}\n </upd-button>\n </div>\n }\n\n @for (btn of actionButtons; track btn) {\n <div class=\"col\">\n <upd-button class=\"w-100\" [model]=\"btn\"></upd-button>\n </div>\n }\n </div>\n </div>\n }\n @case ('centered') {\n <div class=\"d-flex justify-content-center w-100\">\n <ng-container [ngTemplateOutlet]=\"buttonsTpl\"></ng-container>\n </div>\n }\n @default {\n <ng-container [ngTemplateOutlet]=\"buttonsTpl\"></ng-container>\n }\n }\n }\n </div>\n }\n }\n </div>\n </div>\n\n <ng-template #closeBtnTpl>\n <upd-button (clicked)=\"close()\" [shouldIgnoreBtnClass]=\"true\" customClasses=\"btn-close\"></upd-button>\n </ng-template>\n\n <ng-template #buttonsTpl>\n @if (showCancelButton) {\n <upd-button colorStyle=\"secondary\" [isLink]=\"true\" (clicked)=\"close()\">\n {{ t('Cancel') }}\n </upd-button>\n }\n\n @for (btn of actionButtons; track btn) {\n <upd-button [model]=\"btn\" (clicked)=\"buttonClick($event, btn)\"></upd-button>\n }\n </ng-template>\n</ng-container>\n","import { Injectable, inject, ViewContainerRef, ApplicationRef } from '@angular/core';\nimport { DynamicComponentLoaderService, OverlayService } from '@updevs/sdk/layout';\nimport { ComponentType } from '@updevs/sdk/types';\n\nimport { ModalContainerComponent } from '../components/modal-container/modal-container.component';\nimport { ModalConfig } from '../models/modal.config';\nimport { ModalRef } from '../models/modal-ref';\n\n@Injectable()\nexport class ModalService {\n private readonly dynamicComponentLoaderService = inject(DynamicComponentLoaderService);\n private readonly overlayService = inject(OverlayService);\n private readonly applicationRef = inject(ApplicationRef);\n\n open<T>(\n contentType?: ComponentType<T>,\n config?: ModalConfig,\n rootElement?: Element,\n shouldDisposeOnClick = false,\n shouldDisposeOnEsc = false\n ): ModalRef {\n const viewContainerRef = this.applicationRef.components[0].injector.get(ViewContainerRef);\n const modalContainerRef = this.dynamicComponentLoaderService.load(ModalContainerComponent, viewContainerRef);\n const overlay = this.overlayService.create({ rootElement, customClasses: ['modal-backdrop'] });\n\n modalContainerRef.instance.prepareToShow(config);\n\n modalContainerRef.instance.modalContainerRef = modalContainerRef;\n modalContainerRef.instance.overlay = overlay;\n modalContainerRef.instance.contentType = contentType;\n modalContainerRef.instance.shouldDismissOnOutsideClick = config?.shouldDismissOnOutsideClick || shouldDisposeOnClick;\n modalContainerRef.instance.shouldDismissOnEsc = config?.shouldDismissOnEsc || shouldDisposeOnEsc;\n\n overlay.show().subscribe(() => modalContainerRef.instance.show());\n\n return modalContainerRef.instance;\n }\n}\n","import { Injectable, inject, signal } from '@angular/core';\nimport { TextModel } from '@updevs/sdk';\nimport { ButtonModel } from '@updevs/sdk/layout';\nimport { TopBottomLeftRightType, BgColorStyleType } from '@updevs/sdk/types';\nimport { IconModel, TablerIconsType } from '@updevs/icons';\nimport { Observable, Subject } from 'rxjs';\n\nimport { ModalService } from './modal.service';\nimport { ModalSizeType } from '../types/modal-size.type';\nimport { ModalFooterStyleType } from '../types/modal-footer-style.type';\nimport { ModalRef } from '../models/modal-ref';\n\n@Injectable()\nexport class ModalAlertService {\n private readonly modalService = inject(ModalService);\n private readonly defaultIconModel: IconModel = { tablerIconWeight: 'medium-light', tablerIconSize: 48 };\n\n showWarning(message: TextModel, title?: TextModel, actionButtons: ButtonModel[] = []): ModalRef {\n return this.open(\n message,\n title || { text: 'UpDevs.ModalAlert.WarningTitle', isTranslated: false },\n 'alert-triangle',\n 'text-warning',\n 'warning',\n actionButtons\n );\n }\n\n showError(message: TextModel, title?: TextModel, actionButtons: ButtonModel[] = []): ModalRef {\n return this.open(\n message,\n title || { text: 'UpDevs.ModalAlert.ErrorTitle', isTranslated: false },\n 'exclamation-circle',\n 'text-danger',\n 'danger',\n actionButtons\n );\n }\n\n showInfo(message: TextModel, title?: TextModel, actionButtons: ButtonModel[] = []): ModalRef {\n return this.open(\n message,\n title || { text: 'UpDevs.ModalAlert.InfoTitle', isTranslated: false },\n 'info-circle',\n 'text-info',\n 'info',\n actionButtons\n );\n }\n\n showSuccess(message: TextModel, title?: TextModel, actionButtons: ButtonModel[] = []): ModalRef {\n return this.open(\n message,\n title || { text: 'UpDevs.ModalAlert.SuccessTitle', isTranslated: false },\n 'circle-check',\n 'text-success',\n 'success',\n actionButtons\n );\n }\n\n showConfirm(message: TextModel, title?: TextModel, actionButtons: ButtonModel[] = []): Observable<boolean> {\n // eslint-disable-next-line prefer-const\n let modalRef: ModalRef;\n const statusColor: BgColorStyleType = 'indigo';\n const result = new Subject<boolean>();\n\n if (actionButtons.length < 1) {\n actionButtons = [\n new ButtonModel({\n text: signal({ text: 'UpDevs.ModalAlert.ConfirmNo', isTranslated: false }),\n isOutline: signal(true),\n clickFunction: () => {\n result.next(false);\n modalRef.close();\n }\n }),\n new ButtonModel({\n text: signal({ text: 'UpDevs.ModalAlert.ConfirmYes', isTranslated: false }),\n colorStyle: signal(statusColor),\n clickFunction: () => {\n result.next(true);\n modalRef.close();\n }\n })\n ];\n }\n\n modalRef = this.open(\n message,\n title || { text: 'UpDevs.ModalAlert.ConfirmationTitle', isTranslated: false },\n 'checklist',\n 'text-indigo',\n statusColor,\n actionButtons,\n 'full-width'\n );\n\n return result;\n }\n\n showCustom(\n message: TextModel,\n title: TextModel,\n titleIcon: IconModel,\n titleIconPosition: TopBottomLeftRightType,\n statusColor: BgColorStyleType,\n actionButtons: ButtonModel[] = [],\n size: ModalSizeType = 'small',\n footerLayout: ModalFooterStyleType = 'default'\n ): ModalRef {\n return this.modalService.open(undefined, {\n isAlert: true,\n title,\n titleIcon,\n titleIconPosition,\n size,\n body: message,\n statusColor,\n footerLayout,\n actionButtons\n });\n }\n\n private open(\n message: TextModel,\n title: TextModel,\n titleIconType: TablerIconsType,\n titleIconColorClass: string,\n statusColor: BgColorStyleType,\n actionButtons: ButtonModel[],\n footerLayout: ModalFooterStyleType = 'default'\n ): ModalRef {\n // eslint-disable-next-line prefer-const\n let modalRef: ModalRef;\n const titleIcon: IconModel = {\n ...this.defaultIconModel,\n tablerIcon: titleIconType,\n colorClass: titleIconColorClass\n };\n\n if (actionButtons.length < 1) {\n actionButtons.push(\n new ButtonModel({\n text: signal({ text: 'UpDevs.ModalAlert.OkButtonTitle', isTranslated: false }),\n colorStyle: signal(statusColor),\n clickFunction: () => modalRef.close()\n })\n );\n }\n\n modalRef = this.modalService.open(undefined, {\n isAlert: true,\n title,\n titleIcon,\n titleIconPosition: 'top',\n size: 'small',\n body: message,\n statusColor,\n footerLayout,\n actionButtons,\n showCloseButton: false\n });\n\n return modalRef;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { UpdCoreLayoutModule } from '@updevs/sdk/layout';\nimport { UpdIconsModule } from '@updevs/icons';\nimport { UpdMessagesModule, MessagesService, MessageTypeEnum } from '@updevs/sdk/messages';\nimport { OptionalType } from '@updevs/sdk/types';\nimport { UpdButtonModule } from '@updevs/components/button';\nimport { TranslocoService, TranslocoDirective } from '@jsverse/transloco';\n\nimport * as en from './assets/i18n/en.json';\nimport * as pt from './assets/i18n/pt.json';\nimport { ModalService } from './services/modal.service';\nimport { ModalContainerComponent } from './components/modal-container/modal-container.component';\nimport { ModalAlertService } from './services/modal-alert.service';\nimport { ModalRef } from './models/modal-ref';\n\n@NgModule({\n imports: [\n CommonModule,\n UpdCoreLayoutModule,\n UpdButtonModule,\n UpdIconsModule,\n UpdMessagesModule,\n TranslocoDirective\n ],\n declarations: [\n ModalContainerComponent\n ],\n providers: [\n ModalService,\n ModalAlertService\n ]\n})\nexport class UpdModalModule {\n constructor(translocoService: TranslocoService, modalAlertService: ModalAlertService, messagesService: MessagesService) {\n translocoService.setTranslation(en, 'en');\n translocoService.setTranslation(pt, 'pt');\n this.setupMessagesService(modalAlertService, messagesService);\n }\n\n private setupMessagesService(modalAlertService: ModalAlertService, messagesService: MessagesService): void {\n messagesService.onNewMessage.subscribe(msg => {\n if (msg.isModal) {\n if (!!msg.onShown) {\n msg.onShown();\n }\n\n let modalRef: OptionalType<ModalRef>;\n\n switch (msg.type) {\n case MessageTypeEnum.Warning:\n modalRef = modalAlertService.showWarning(msg.message, msg.title);\n break;\n case MessageTypeEnum.Info:\n modalRef = modalAlertService.showInfo(msg.message, msg.title);\n break;\n case MessageTypeEnum.Error:\n modalRef = modalAlertService.showError(msg.message, msg.title);\n break;\n case MessageTypeEnum.Success:\n modalRef = modalAlertService.showSuccess(msg.message, msg.title);\n break;\n case MessageTypeEnum.Confirm:\n modalAlertService.showConfirm(msg.message, msg.title);\n break;\n }\n\n if (!!modalRef && !!msg.onHidden) {\n modalRef.afterClose = msg.onHidden;\n }\n }\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["LayoutUtils","i4","en","pt","i1","i2.ModalAlertService","i3"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@updevs/components",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.21",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": "^18.0.1",
|
|
6
6
|
"@angular/core": "^18.0.1",
|
|
7
7
|
"@jsverse/transloco": "^7.4.2",
|
|
8
8
|
"@jsverse/transloco-messageformat": "^7.0.1",
|
|
9
9
|
"@updevs/icons": "^1.0.9",
|
|
10
|
-
"@updevs/sdk": "^1.0.0-alpha.
|
|
10
|
+
"@updevs/sdk": "^1.0.0-alpha.26"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"tslib": "^2.3.0"
|
|
@@ -34,30 +34,24 @@
|
|
|
34
34
|
"esm": "./esm2022/badge/updevs-components-badge.mjs",
|
|
35
35
|
"default": "./fesm2022/updevs-components-badge.mjs"
|
|
36
36
|
},
|
|
37
|
-
"./button": {
|
|
38
|
-
"types": "./button/index.d.ts",
|
|
39
|
-
"esm2022": "./esm2022/button/updevs-components-button.mjs",
|
|
40
|
-
"esm": "./esm2022/button/updevs-components-button.mjs",
|
|
41
|
-
"default": "./fesm2022/updevs-components-button.mjs"
|
|
42
|
-
},
|
|
43
37
|
"./calendar": {
|
|
44
38
|
"types": "./calendar/index.d.ts",
|
|
45
39
|
"esm2022": "./esm2022/calendar/updevs-components-calendar.mjs",
|
|
46
40
|
"esm": "./esm2022/calendar/updevs-components-calendar.mjs",
|
|
47
41
|
"default": "./fesm2022/updevs-components-calendar.mjs"
|
|
48
42
|
},
|
|
43
|
+
"./button": {
|
|
44
|
+
"types": "./button/index.d.ts",
|
|
45
|
+
"esm2022": "./esm2022/button/updevs-components-button.mjs",
|
|
46
|
+
"esm": "./esm2022/button/updevs-components-button.mjs",
|
|
47
|
+
"default": "./fesm2022/updevs-components-button.mjs"
|
|
48
|
+
},
|
|
49
49
|
"./card": {
|
|
50
50
|
"types": "./card/index.d.ts",
|
|
51
51
|
"esm2022": "./esm2022/card/updevs-components-card.mjs",
|
|
52
52
|
"esm": "./esm2022/card/updevs-components-card.mjs",
|
|
53
53
|
"default": "./fesm2022/updevs-components-card.mjs"
|
|
54
54
|
},
|
|
55
|
-
"./drag-and-drop": {
|
|
56
|
-
"types": "./drag-and-drop/index.d.ts",
|
|
57
|
-
"esm2022": "./esm2022/drag-and-drop/updevs-components-drag-and-drop.mjs",
|
|
58
|
-
"esm": "./esm2022/drag-and-drop/updevs-components-drag-and-drop.mjs",
|
|
59
|
-
"default": "./fesm2022/updevs-components-drag-and-drop.mjs"
|
|
60
|
-
},
|
|
61
55
|
"./form": {
|
|
62
56
|
"types": "./form/index.d.ts",
|
|
63
57
|
"esm2022": "./esm2022/form/updevs-components-form.mjs",
|
|
@@ -70,6 +64,12 @@
|
|
|
70
64
|
"esm": "./esm2022/dropdown/updevs-components-dropdown.mjs",
|
|
71
65
|
"default": "./fesm2022/updevs-components-dropdown.mjs"
|
|
72
66
|
},
|
|
67
|
+
"./drag-and-drop": {
|
|
68
|
+
"types": "./drag-and-drop/index.d.ts",
|
|
69
|
+
"esm2022": "./esm2022/drag-and-drop/updevs-components-drag-and-drop.mjs",
|
|
70
|
+
"esm": "./esm2022/drag-and-drop/updevs-components-drag-and-drop.mjs",
|
|
71
|
+
"default": "./fesm2022/updevs-components-drag-and-drop.mjs"
|
|
72
|
+
},
|
|
73
73
|
"./layout": {
|
|
74
74
|
"types": "./layout/index.d.ts",
|
|
75
75
|
"esm2022": "./esm2022/layout/updevs-components-layout.mjs",
|
|
@@ -154,17 +154,17 @@
|
|
|
154
154
|
"esm": "./esm2022/form-controls/select/updevs-components-form-controls-select.mjs",
|
|
155
155
|
"default": "./fesm2022/updevs-components-form-controls-select.mjs"
|
|
156
156
|
},
|
|
157
|
-
"./form-controls/time-picker": {
|
|
158
|
-
"types": "./form-controls/time-picker/index.d.ts",
|
|
159
|
-
"esm2022": "./esm2022/form-controls/time-picker/updevs-components-form-controls-time-picker.mjs",
|
|
160
|
-
"esm": "./esm2022/form-controls/time-picker/updevs-components-form-controls-time-picker.mjs",
|
|
161
|
-
"default": "./fesm2022/updevs-components-form-controls-time-picker.mjs"
|
|
162
|
-
},
|
|
163
157
|
"./form-controls/textarea": {
|
|
164
158
|
"types": "./form-controls/textarea/index.d.ts",
|
|
165
159
|
"esm2022": "./esm2022/form-controls/textarea/updevs-components-form-controls-textarea.mjs",
|
|
166
160
|
"esm": "./esm2022/form-controls/textarea/updevs-components-form-controls-textarea.mjs",
|
|
167
161
|
"default": "./fesm2022/updevs-components-form-controls-textarea.mjs"
|
|
162
|
+
},
|
|
163
|
+
"./form-controls/time-picker": {
|
|
164
|
+
"types": "./form-controls/time-picker/index.d.ts",
|
|
165
|
+
"esm2022": "./esm2022/form-controls/time-picker/updevs-components-form-controls-time-picker.mjs",
|
|
166
|
+
"esm": "./esm2022/form-controls/time-picker/updevs-components-form-controls-time-picker.mjs",
|
|
167
|
+
"default": "./fesm2022/updevs-components-form-controls-time-picker.mjs"
|
|
168
168
|
}
|
|
169
169
|
}
|
|
170
170
|
}
|