@klippa/ngx-enhancy-forms 2.0.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/klippa-ngx-enhancy-forms.umd.js +610 -536
- package/bundles/klippa-ngx-enhancy-forms.umd.js.map +1 -1
- package/bundles/klippa-ngx-enhancy-forms.umd.min.js +2 -3
- package/bundles/klippa-ngx-enhancy-forms.umd.min.js.map +1 -1
- package/esm2015/lib/elements/select/select.component.js +7 -5
- package/esm2015/lib/form/form-element/form-element.component.js +3 -1
- package/esm2015/lib/form/form-submit-button/form-submit-button.component.js +17 -6
- package/esm2015/lib/form/form.component.js +75 -19
- package/fesm2015/klippa-ngx-enhancy-forms.js +132 -63
- package/fesm2015/klippa-ngx-enhancy-forms.js.map +1 -1
- package/klippa-ngx-enhancy-forms.metadata.json +1 -1
- package/lib/elements/select/select.component.d.ts +2 -0
- package/lib/form/form.component.d.ts +17 -5
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, Host, Input, Optional } from '@angular/core';
|
|
1
|
+
import { Component, EventEmitter, Host, Input, Optional, Output } from '@angular/core';
|
|
2
2
|
import { ControlContainer, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
3
|
import { ValueAccessorBase } from "../value-accessor-base/value-accessor-base.component";
|
|
4
4
|
import { FormElementComponent } from "../../form/form-element/form-element.component";
|
|
@@ -10,14 +10,15 @@ export class SelectComponent extends ValueAccessorBase {
|
|
|
10
10
|
this.placeholder = 'Pick an option';
|
|
11
11
|
this.multiple = false;
|
|
12
12
|
this.clearable = true;
|
|
13
|
+
this.onSearch = new EventEmitter();
|
|
13
14
|
}
|
|
14
15
|
}
|
|
15
16
|
SelectComponent.decorators = [
|
|
16
17
|
{ type: Component, args: [{
|
|
17
18
|
selector: 'klp-form-select',
|
|
18
|
-
template: "<ng-select\n\t[placeholder]=\"placeholder\"\n\tbindLabel=\"name\"\n\tbindValue=\"id\"\n\t[items]=\"options\"\n\t[clearable]=\"clearable\"\n\t[(ngModel)]=\"innerValue\"\n\t[ngClass]=\"{showErrors: isInErrorState()}\"\n\t(change)=\"setInnerValueAndNotify(innerValue)\"\n\t[multiple]=\"multiple\"\n\t[disabled]=\"disabled\"\n\t(blur)=\"touch()\"\n\t[dropdownPosition]=\"dropdownPosition\"\n\t[searchFn]=\"customSearchFn\"\n>\n\t<ng-template let-item=\"item\" ng-option-tmp>\n\t\t{{ item.name }}\n\t\t<div *ngIf=\"item.description\" class=\"dropdown-item-description\">\n\t\t\t{{ item.description }}\n\t\t</div>\n\t</ng-template>\n</ng-select>\n",
|
|
19
|
+
template: "<ng-select\n\t[placeholder]=\"placeholder\"\n\tbindLabel=\"name\"\n\tbindValue=\"id\"\n\t[items]=\"options\"\n\t[clearable]=\"clearable\"\n\t[(ngModel)]=\"innerValue\"\n\t[ngClass]=\"{showErrors: isInErrorState()}\"\n\t(change)=\"setInnerValueAndNotify(innerValue)\"\n\t[multiple]=\"multiple\"\n\t[disabled]=\"disabled\"\n\t(blur)=\"touch()\"\n\t(search)=\"onSearch.emit($event.term)\"\n\t[dropdownPosition]=\"dropdownPosition\"\n\t[searchFn]=\"customSearchFn\"\n>\n\t<ng-template let-item=\"item\" ng-option-tmp>\n\t\t{{ item.name }}\n\t\t<div *ngIf=\"item.description\" class=\"dropdown-item-description\">\n\t\t\t{{ item.description }}\n\t\t</div>\n\t</ng-template>\n</ng-select>\n",
|
|
19
20
|
providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: SelectComponent, multi: true }],
|
|
20
|
-
styles: [":host{display:block}.showErrors ::ng-deep .ng-select-container{border-color:#ff8000}:host ::ng-deep ng-select.ng-select .ng-select-container{color:#888da8}:host ::ng-deep .ng-select.ng-select-opened>.ng-select-container{background:#fff;border-color:#3ed778}:host ::ng-deep .ng-select.ng-select-opened>.ng-select-container:hover{box-shadow:none}:host ::ng-deep .ng-select.ng-select-opened>.ng-select-container .ng-arrow{border-color:transparent transparent #999;border-width:0 5px 5px;top:-2px}:host ::ng-deep .ng-select.ng-select-opened>.ng-select-container .ng-arrow:hover{border-color:transparent transparent #666}:host ::ng-deep .ng-select.ng-select-opened.ng-select-bottom>.ng-select-container{border-bottom-left-radius:0;border-bottom-right-radius:0}:host ::ng-deep .ng-select.ng-select-opened.ng-select-top>.ng-select-container{border-top-left-radius:0;border-top-right-radius:0}:host ::ng-deep .ng-select.ng-select-disabled>.ng-select-container{background-color:#f9f9f9}:host ::ng-deep .ng-select .ng-has-value .ng-placeholder{display:none}:host ::ng-deep .ng-select .ng-select-container{align-items:center;background-clip:padding-box;background-color:#fff;border:1px solid #e6ecf5;border-radius:4px;border-radius:2px;box-shadow:none;box-sizing:border-box;color:#888da8;display:flex;flex-direction:row;font-size:1rem;font-size:14px;line-height:1.5;margin:0;min-height:42px;outline:none;overflow:visible;padding:.375rem .75rem;transition-delay:0s;transition-duration:.2s;transition-property:all;transition-timing-function:ease-in;width:100%}:host ::ng-deep .ng-select .ng-select-container:hover{box-shadow:0 1px 0 rgba(0,0,0,.06)}:host ::ng-deep .ng-select .ng-select-container .ng-value-container{align-items:center;overflow:hidden;padding-left:10px}:host ::ng-deep .ng-select .ng-select-container .ng-value-container .ng-placeholder{color:#aaa}:host ::ng-deep .ng-select.ng-select-single .ng-select-container{height:42px}:host ::ng-deep .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{left:0;padding-left:10px;padding-right:50px;top:5px}:host ::ng-deep .ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value{background-color:#f9f9f9;border:1px solid #e3e3e3}:host ::ng-deep .ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-label{padding:0 5px}:host ::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-left:7px;padding-right:10px;padding-top:2px}:host ::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{background-color:#e7faee;border:1px solid #93e8b3;border-radius:2px;display:flex;font-size:.9em;margin-bottom:5px;margin-right:5px;overflow:hidden}:host ::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled{background-color:#f9f9f9;border:1px solid #e3e3e3}:host ::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:5px}:host ::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-label{display:inline-block;overflow:hidden;padding:0 5px;text-overflow:ellipsis}:host ::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:inline-block;padding:0 5px}:host ::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon:hover{background-color:#93e8b3}:host ::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-right:1px solid #93e8b3}:host ::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:1px solid #c2e0ff}:host ::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding-bottom:3px;padding-left:3px}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{padding-bottom:3px;padding-left:3px;position:static;top:5px}:host ::ng-deep .ng-select .ng-clear-wrapper{color:#999}:host ::ng-deep .ng-select .ng-clear-wrapper .ng-clear:hover{color:#ff3c7e}:host ::ng-deep .ng-select .ng-spinner-zone{padding-right:5px;padding-top:5px}:host ::ng-deep .ng-select .ng-arrow-wrapper{padding-right:5px;width:25px}:host ::ng-deep .ng-select .ng-arrow-wrapper:hover .ng-arrow{border-top-color:#666}:host ::ng-deep .ng-select .ng-arrow-wrapper .ng-arrow{border-color:#999 transparent transparent;border-style:solid;border-width:5px 5px 2.5px}:host ::ng-deep .ng-dropdown-panel{background-color:#fff;border:1px solid #3ed778;box-shadow:0 1px 0 rgba(0,0,0,.06)}:host ::ng-deep .ng-dropdown-panel.ng-select-bottom{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-top-color:#e6e6e6;margin-top:-1px;top:100%}:host ::ng-deep .ng-dropdown-panel.ng-select-bottom .ng-dropdown-panel-items .ng-option:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px}:host ::ng-deep .ng-dropdown-panel.ng-select-top{border-bottom-color:#e6e6e6;border-top-left-radius:4px;border-top-right-radius:4px;bottom:100%;margin-bottom:-1px}:host ::ng-deep .ng-dropdown-panel.ng-select-top .ng-dropdown-panel-items .ng-option:first-child{border-top-left-radius:4px;border-top-right-radius:4px}:host ::ng-deep .ng-dropdown-panel .ng-dropdown-header{border-bottom:1px solid #ccc;padding:5px 7px}:host ::ng-deep .ng-dropdown-panel .ng-dropdown-footer{border-top:1px solid #ccc;padding:5px 7px}:host ::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items{margin-bottom:1px}:host ::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;color:rgba(0,0,0,.54);cursor:default;cursor:pointer;font-weight:500;padding:8px 10px;user-select:none}:host ::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-disabled{cursor:default}:host ::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-marked{background-color:#ebf5ff}:host ::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected{background-color:#f5faff;font-weight:600}:host ::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option{background-color:#fff;color:rgba(0,0,0,.87);padding:8px 10px}:host ::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected{background-color:#e7faee;color:#333}:host ::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected .ng-option-label{font-weight:600}:host ::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{background-color:#e7faee;color:#333}:host ::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-disabled{color:#ccc}:host ::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-left:22px}:host ::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{font-size:80%;font-weight:400;padding-right:5px}:host ::ng-deep ng-select.ng-select .ng-select-container .ng-value-container{padding-left:0}:host ::ng-deep ng-select.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{color:#888da8;top:9px}:host ::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option,:host ::ng-deep .ng-select .ng-select-container .ng-value-container .ng-input>input{color:#888da8}:host ::ng-deep .ng-select.ng-select-auto-grow{max-width:inherit}:host ::ng-deep .ng-select.ng-select-auto-grow .ng-dropdown-panel{width:auto}"]
|
|
21
|
+
styles: [":host{display:block}.showErrors ::ng-deep .ng-select-container,:host.showErrors ::ng-deep .ng-select-container{border-color:#ff8000}:host ::ng-deep ng-select.ng-select .ng-select-container{color:#888da8}:host ::ng-deep .ng-select.ng-select-opened>.ng-select-container{background:#fff;border-color:#3ed778}:host ::ng-deep .ng-select.ng-select-opened>.ng-select-container:hover{box-shadow:none}:host ::ng-deep .ng-select.ng-select-opened>.ng-select-container .ng-arrow{border-color:transparent transparent #999;border-width:0 5px 5px;top:-2px}:host ::ng-deep .ng-select.ng-select-opened>.ng-select-container .ng-arrow:hover{border-color:transparent transparent #666}:host ::ng-deep .ng-select.ng-select-opened.ng-select-bottom>.ng-select-container{border-bottom-left-radius:0;border-bottom-right-radius:0}:host ::ng-deep .ng-select.ng-select-opened.ng-select-top>.ng-select-container{border-top-left-radius:0;border-top-right-radius:0}:host ::ng-deep .ng-select.ng-select-disabled>.ng-select-container{background-color:#f9f9f9}:host ::ng-deep .ng-select .ng-has-value .ng-placeholder{display:none}:host ::ng-deep .ng-select .ng-select-container{align-items:center;background-clip:padding-box;background-color:#fff;border:1px solid #e6ecf5;border-radius:4px;border-radius:2px;box-shadow:none;box-sizing:border-box;color:#888da8;display:flex;flex-direction:row;font-size:1rem;font-size:14px;line-height:1.5;margin:0;min-height:42px;outline:none;overflow:visible;padding:.375rem .75rem;transition-delay:0s;transition-duration:.2s;transition-property:all;transition-timing-function:ease-in;width:100%}:host ::ng-deep .ng-select .ng-select-container:hover{box-shadow:0 1px 0 rgba(0,0,0,.06)}:host ::ng-deep .ng-select .ng-select-container .ng-value-container{align-items:center;overflow:hidden;padding-left:10px}:host ::ng-deep .ng-select .ng-select-container .ng-value-container .ng-placeholder{color:#aaa}:host ::ng-deep .ng-select.ng-select-single .ng-select-container{height:42px}:host ::ng-deep .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{left:0;padding-left:10px;padding-right:50px;top:5px}:host ::ng-deep .ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value{background-color:#f9f9f9;border:1px solid #e3e3e3}:host ::ng-deep .ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-label{padding:0 5px}:host ::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-left:7px;padding-right:10px;padding-top:2px}:host ::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{background-color:#e7faee;border:1px solid #93e8b3;border-radius:2px;display:flex;font-size:.9em;margin-bottom:5px;margin-right:5px;overflow:hidden}:host ::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled{background-color:#f9f9f9;border:1px solid #e3e3e3}:host ::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:5px}:host ::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-label{display:inline-block;overflow:hidden;padding:0 5px;text-overflow:ellipsis}:host ::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:inline-block;padding:0 5px}:host ::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon:hover{background-color:#93e8b3}:host ::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-right:1px solid #93e8b3}:host ::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:1px solid #c2e0ff}:host ::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding-bottom:3px;padding-left:3px}:host ::ng-deep ng-select.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{padding-bottom:3px;padding-left:3px;position:static;top:5px}:host ::ng-deep .ng-select .ng-clear-wrapper{color:#999}:host ::ng-deep .ng-select .ng-clear-wrapper .ng-clear:hover{color:#ff3c7e}:host ::ng-deep .ng-select .ng-spinner-zone{padding-right:5px;padding-top:5px}:host ::ng-deep .ng-select .ng-arrow-wrapper{padding-right:5px;width:25px}:host ::ng-deep .ng-select .ng-arrow-wrapper:hover .ng-arrow{border-top-color:#666}:host ::ng-deep .ng-select .ng-arrow-wrapper .ng-arrow{border-color:#999 transparent transparent;border-style:solid;border-width:5px 5px 2.5px}:host ::ng-deep .ng-dropdown-panel{background-color:#fff;border:1px solid #3ed778;box-shadow:0 1px 0 rgba(0,0,0,.06)}:host ::ng-deep .ng-dropdown-panel.ng-select-bottom{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-top-color:#e6e6e6;margin-top:-1px;top:100%}:host ::ng-deep .ng-dropdown-panel.ng-select-bottom .ng-dropdown-panel-items .ng-option:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px}:host ::ng-deep .ng-dropdown-panel.ng-select-top{border-bottom-color:#e6e6e6;border-top-left-radius:4px;border-top-right-radius:4px;bottom:100%;margin-bottom:-1px}:host ::ng-deep .ng-dropdown-panel.ng-select-top .ng-dropdown-panel-items .ng-option:first-child{border-top-left-radius:4px;border-top-right-radius:4px}:host ::ng-deep .ng-dropdown-panel .ng-dropdown-header{border-bottom:1px solid #ccc;padding:5px 7px}:host ::ng-deep .ng-dropdown-panel .ng-dropdown-footer{border-top:1px solid #ccc;padding:5px 7px}:host ::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items{margin-bottom:1px}:host ::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;color:rgba(0,0,0,.54);cursor:default;cursor:pointer;font-weight:500;padding:8px 10px;user-select:none}:host ::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-disabled{cursor:default}:host ::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-marked{background-color:#ebf5ff}:host ::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected{background-color:#f5faff;font-weight:600}:host ::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option{background-color:#fff;color:rgba(0,0,0,.87);padding:8px 10px}:host ::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected{background-color:#e7faee;color:#333}:host ::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected .ng-option-label{font-weight:600}:host ::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{background-color:#e7faee;color:#333}:host ::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-disabled{color:#ccc}:host ::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-left:22px}:host ::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{font-size:80%;font-weight:400;padding-right:5px}:host ::ng-deep ng-select.ng-select .ng-select-container .ng-value-container{padding-left:0}:host ::ng-deep ng-select.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{color:#888da8;top:9px}:host ::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option,:host ::ng-deep .ng-select .ng-select-container .ng-value-container .ng-input>input{color:#888da8}:host ::ng-deep .ng-select.ng-select-auto-grow{max-width:inherit}:host ::ng-deep .ng-select.ng-select-auto-grow .ng-dropdown-panel{width:auto}"]
|
|
21
22
|
},] }
|
|
22
23
|
];
|
|
23
24
|
SelectComponent.ctorParameters = () => [
|
|
@@ -30,6 +31,7 @@ SelectComponent.propDecorators = {
|
|
|
30
31
|
multiple: [{ type: Input }],
|
|
31
32
|
clearable: [{ type: Input }],
|
|
32
33
|
dropdownPosition: [{ type: Input }],
|
|
33
|
-
customSearchFn: [{ type: Input }]
|
|
34
|
+
customSearchFn: [{ type: Input }],
|
|
35
|
+
onSearch: [{ type: Output }]
|
|
34
36
|
};
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9uZ3gtZW5oYW5jeS1mb3Jtcy9uZ3gtZW5oYW5jeS1mb3Jtcy9wcm9qZWN0cy9rbGlwcGEvbmd4LWVuaGFuY3ktZm9ybXMvc3JjLyIsInNvdXJjZXMiOlsibGliL2VsZW1lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQVUsUUFBUSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQUN2RixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQWVwRixNQUFNLE9BQU8sZUFBZ0IsU0FBUSxpQkFBb0M7SUFTeEUsWUFDK0IsTUFBNEIsRUFDNUIsZ0JBQWtDO1FBRWhFLEtBQUssQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUhGLFdBQU0sR0FBTixNQUFNLENBQXNCO1FBQzVCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFWeEQsZ0JBQVcsR0FBVyxnQkFBZ0IsQ0FBQztRQUV2QyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFHVCxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQU92RCxDQUFDOzs7WUFwQkQsU0FBUyxTQUFDO2dCQUNWLFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLHdyQkFBc0M7Z0JBRXRDLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDOzthQUN0Rjs7O1lBZE8sb0JBQW9CLHVCQXlCekIsUUFBUSxZQUFJLElBQUk7WUEzQlYsZ0JBQWdCLHVCQTRCdEIsUUFBUSxZQUFJLElBQUk7OzswQkFWakIsS0FBSztzQkFDTCxLQUFLO3VCQUNMLEtBQUs7d0JBQ0wsS0FBSzsrQkFDTCxLQUFLOzZCQUNMLEtBQUs7dUJBQ0wsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3QsIElucHV0LCBPbkluaXQsIE9wdGlvbmFsLCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1ZhbHVlQWNjZXNzb3JCYXNlfSBmcm9tIFwiLi4vdmFsdWUtYWNjZXNzb3ItYmFzZS92YWx1ZS1hY2Nlc3Nvci1iYXNlLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtGb3JtRWxlbWVudENvbXBvbmVudH0gZnJvbSBcIi4uLy4uL2Zvcm0vZm9ybS1lbGVtZW50L2Zvcm0tZWxlbWVudC5jb21wb25lbnRcIjtcblxuZXhwb3J0IHR5cGUgQXBwU2VsZWN0T3B0aW9ucyA9IEFycmF5PHtcblx0aWQ6IGFueTtcblx0bmFtZTogc3RyaW5nO1xuXHRkZXNjcmlwdGlvbj86IHN0cmluZztcblx0ZGlzYWJsZWQ/OiBib29sZWFuO1xufT47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2tscC1mb3JtLXNlbGVjdCcsXG5cdHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi9zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcblx0cHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IFNlbGVjdENvbXBvbmVudCwgbXVsdGk6IHRydWUgfV0sXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdENvbXBvbmVudCBleHRlbmRzIFZhbHVlQWNjZXNzb3JCYXNlPHN0cmluZyB8IHN0cmluZ1tdPiB7XG5cdEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnUGljayBhbiBvcHRpb24nO1xuXHRASW5wdXQoKSBvcHRpb25zOiBBcHBTZWxlY3RPcHRpb25zO1xuXHRASW5wdXQoKSBtdWx0aXBsZSA9IGZhbHNlO1xuXHRASW5wdXQoKSBjbGVhcmFibGUgPSB0cnVlO1xuXHRASW5wdXQoKSBwdWJsaWMgZHJvcGRvd25Qb3NpdGlvbjogc3RyaW5nO1xuXHRASW5wdXQoKSBwdWJsaWMgY3VzdG9tU2VhcmNoRm46ICh0ZXJtOiBzdHJpbmcsIGl0ZW06IHsgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nOyBkZXNjcmlwdGlvbjogc3RyaW5nIH0pID0+IGJvb2xlYW47XG5cdEBPdXRwdXQoKSBwdWJsaWMgb25TZWFyY2ggPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRAT3B0aW9uYWwoKSBASG9zdCgpIHByb3RlY3RlZCBwYXJlbnQ6IEZvcm1FbGVtZW50Q29tcG9uZW50LFxuXHRcdEBPcHRpb25hbCgpIEBIb3N0KCkgcHJvdGVjdGVkIGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXIsXG5cdCkge1xuXHRcdHN1cGVyKHBhcmVudCwgY29udHJvbENvbnRhaW5lcik7XG5cdH1cbn1cbiJdfQ==
|
|
@@ -28,6 +28,8 @@ export class FormElementComponent {
|
|
|
28
28
|
}, message);
|
|
29
29
|
}
|
|
30
30
|
registerControl(formControl) {
|
|
31
|
+
// console.log('register');
|
|
32
|
+
// console.log(this.caption);
|
|
31
33
|
this.attachedControl = formControl;
|
|
32
34
|
this.parent.registerControl(formControl, this);
|
|
33
35
|
}
|
|
@@ -97,4 +99,4 @@ FormElementComponent.propDecorators = {
|
|
|
97
99
|
swapInputAndCaption: [{ type: Input }],
|
|
98
100
|
internalComponentRef: [{ type: ViewChild, args: ['internalComponentRef',] }]
|
|
99
101
|
};
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lbGVtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9uZ3gtZW5oYW5jeS1mb3Jtcy9uZ3gtZW5oYW5jeS1mb3Jtcy9wcm9qZWN0cy9rbGlwcGEvbmd4LWVuaGFuY3ktZm9ybXMvc3JjLyIsInNvdXJjZXMiOlsibGliL2Zvcm0vZm9ybS1lbGVtZW50L2Zvcm0tZWxlbWVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBYyxJQUFJLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQVUsUUFBUSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV0SCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFHaEQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxjQUFjLENBQXNCLHFCQUFxQixDQUFDLENBQUM7QUFFbEcsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQXNCO0lBQ3hELEdBQUcsRUFBRSxnQ0FBZ0M7SUFDckMsR0FBRyxFQUFFLGlDQUFpQztJQUN0QyxRQUFRLEVBQUUsd0JBQXdCO0lBQ2xDLEtBQUssRUFBRSwyQkFBMkI7SUFDbEMsU0FBUyxFQUFFLGdEQUFnRDtJQUMzRCxTQUFTLEVBQUUsaURBQWlEO0lBQzVELE9BQU8sRUFBRSx5QkFBeUI7SUFDbEMsYUFBYSxFQUFFLHNCQUFzQjtJQUNyQyxJQUFJLEVBQUUsb0JBQW9CO0NBQzFCLENBQUE7QUFPRCxNQUFNLE9BQU8sb0JBQW9CO0lBWWhDLFlBQzZCLE1BQXFCLEVBQ0EsY0FBbUM7UUFEeEQsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNBLG1CQUFjLEdBQWQsY0FBYyxDQUFxQjtRQVhyRSxjQUFTLEdBQThCLFlBQVksQ0FBQztRQUNwRCxtQkFBYyxHQUEyQixhQUFhLENBQUM7UUFDdkQsd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBSTlDLGtCQUFhLEdBQXNCLHNCQUFzQixDQUFDO1FBQzFELHdCQUFtQixHQUFzRCxFQUFFLENBQUM7SUFNbkYsQ0FBQztJQUVNLG9CQUFvQixDQUFDLE9BQWUsRUFBRSxVQUErQjtRQUMzRSxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQ2xELE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2pELENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFTSxlQUFlLENBQUMsV0FBd0I7UUFDOUMsMkJBQTJCO1FBQzNCLDZCQUE2QjtRQUM3QixJQUFJLENBQUMsZUFBZSxHQUFHLFdBQVcsQ0FBQztRQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVNLGlCQUFpQixDQUFDLFdBQXdCO1FBQ2hELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVNLGtCQUFrQjtRQUN4QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDN0IsQ0FBQztJQUVNLG9CQUFvQixDQUFDLEtBQWEsRUFBRSxXQUF1QjtRQUNqRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVNLGVBQWUsQ0FBQyxXQUF1QjtRQUM3QyxJQUFJLENBQUMsVUFBVSxHQUFHLFdBQVcsQ0FBQztJQUMvQixDQUFDO0lBRUQsY0FBYzs7UUFDYixJQUFJLE9BQUEsSUFBSSxDQUFDLGVBQWUsMENBQUUsT0FBTyxNQUFLLElBQUksV0FBSSxJQUFJLENBQUMsZUFBZSwwQ0FBRSxNQUFNLENBQUEsRUFBRTtZQUMzRSxPQUFPLE1BQU0sQ0FBQyxJQUFJLE9BQUMsSUFBSSxDQUFDLGVBQWUsMENBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDcEQ7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxLQUFhO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBYTtRQUM3QixPQUFPLElBQUksQ0FBQyxjQUFjLEVBQUUsS0FBSyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDO0lBQ3BHLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxJQUFJO1FBQ3ZCLElBQUksSUFBSSxJQUFJLElBQUksRUFBRTtZQUNqQixPQUFPLElBQUksQ0FBQztTQUNaO1FBQ0QsSUFBSSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDMUMsT0FBTyxJQUFJLENBQUM7U0FDWjthQUFNO1lBQ04sT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ2pEO0lBQ0YsQ0FBQztJQUVELFFBQVE7O1FBQ1AsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0QsK0RBQStEO1FBQy9ELE1BQUEsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsMENBQUUsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRTtJQUN0RixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsR0FBNEI7O1FBQzVDLHlCQUFPLElBQUksQ0FBQyxjQUFjLDBDQUFHLEdBQUcsc0ZBQVMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsRSxDQUFDOzs7WUF2RkQsU0FBUyxTQUFDO2dCQUNWLFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLHNwRUFBNEM7O2FBRTVDOzs7WUFyQk8sYUFBYSx1QkFtQ2xCLElBQUksWUFBSSxRQUFROzRDQUNoQixNQUFNLFNBQUMsbUJBQW1CLGNBQUcsUUFBUTs7O3NCQVp0QyxLQUFLO3dCQUNMLEtBQUs7NkJBQ0wsS0FBSztrQ0FDTCxLQUFLO21DQUNMLFNBQVMsU0FBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdCwgSW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgSW5wdXQsIE9uSW5pdCwgT3B0aW9uYWwsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtGb3JtQ29tcG9uZW50fSBmcm9tIFwiLi4vZm9ybS5jb21wb25lbnRcIjtcbmltcG9ydCB7Q3VzdG9tRXJyb3JNZXNzYWdlcywgRm9ybUVycm9yTWVzc2FnZXN9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuXG5leHBvcnQgY29uc3QgRk9STV9FUlJPUl9NRVNTQUdFUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxDdXN0b21FcnJvck1lc3NhZ2VzPignZm9ybS5lcnJvci5tZXNzYWdlcycpO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9FUlJPUl9NRVNTQUdFUzogRm9ybUVycm9yTWVzc2FnZXMgPSB7XG5cdG1pbjogXCJVc2UgYSBudW1iZXIgbGFyZ2VyIHRoYW4gJW1pbiVcIixcblx0bWF4OiBcIlVzZSBhIG51bWJlciBzbWFsbGVyIHRoYW4gJW1heCVcIixcblx0cmVxdWlyZWQ6IFwiVGhpcyBmaWVsZCBpcyByZXF1aXJlZFwiLFxuXHRlbWFpbDogXCJVc2UgYSB2YWxpZCBlbWFpbCBhZGRyZXNzXCIsXG5cdG1pbkxlbmd0aDogXCJIYXMgdG8gYmUgbG9uZ2VyIHRoYW4gJW1pbkxlbmd0aCUgY2hhcmFjdGVyKHMpXCIsXG5cdG1heExlbmd0aDogXCJIYXMgdG8gYmUgc2hvcnRlciB0aGFuICVtYXhMZW5ndGglIGNoYXJhY3RlcihzKVwiLFxuXHRwYXR0ZXJuOiBcIlRoaXMgaW5wdXQgaXMgbm90IHZhbGlkXCIsXG5cdG1hdGNoUGFzc3dvcmQ6IFwiUGFzc3dvcmRzIG11c3QgbWF0Y2hcIixcblx0ZGF0ZTogXCJFbnRlciBhIHZhbGlkIGRhdGVcIixcbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAna2xwLWZvcm0tZWxlbWVudCcsXG5cdHRlbXBsYXRlVXJsOiAnLi9mb3JtLWVsZW1lbnQuY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi9mb3JtLWVsZW1lbnQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUVsZW1lbnRDb21wb25lbnQge1xuXHRwdWJsaWMgYXR0YWNoZWRDb250cm9sOiBBYnN0cmFjdENvbnRyb2w7XG5cdEBJbnB1dCgpIHB1YmxpYyBjYXB0aW9uOiBTdHJpbmc7XG5cdEBJbnB1dCgpIHB1YmxpYyBkaXJlY3Rpb246ICdob3Jpem9udGFsJyB8ICd2ZXJ0aWNhbCcgPSAnaG9yaXpvbnRhbCc7XG5cdEBJbnB1dCgpIHB1YmxpYyBjYXB0aW9uU3BhY2luZzogJ3BlcmNlbnRhZ2VzJyB8ICdub25lJyA9ICdwZXJjZW50YWdlcyc7XG5cdEBJbnB1dCgpIHB1YmxpYyBzd2FwSW5wdXRBbmRDYXB0aW9uOiBib29sZWFuID0gZmFsc2U7XG5cdEBWaWV3Q2hpbGQoJ2ludGVybmFsQ29tcG9uZW50UmVmJykgcHVibGljIGludGVybmFsQ29tcG9uZW50UmVmOiBFbGVtZW50UmVmO1xuXG5cdHB1YmxpYyBjYXB0aW9uUmVmOiBFbGVtZW50UmVmO1xuXHRwdWJsaWMgZXJyb3JNZXNzYWdlczogRm9ybUVycm9yTWVzc2FnZXMgPSBERUZBVUxUX0VSUk9SX01FU1NBR0VTO1xuXHRwdWJsaWMgY3VzdG9tRXJyb3JIYW5kbGVyczogQXJyYXk8eyBlcnJvcjogc3RyaW5nOyB0ZW1wbGF0ZVJlZjogRWxlbWVudFJlZiB9PiA9IFtdO1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdEBIb3N0KCkgQE9wdGlvbmFsKCkgcHJpdmF0ZSBwYXJlbnQ6IEZvcm1Db21wb25lbnQsXG5cdFx0QEluamVjdChGT1JNX0VSUk9SX01FU1NBR0VTKSBAT3B0aW9uYWwoKSBwcml2YXRlIGN1c3RvbU1lc3NhZ2VzOiBDdXN0b21FcnJvck1lc3NhZ2VzXG5cdCkge1xuXHR9XG5cblx0cHVibGljIHN1YnN0aXR1dGVQYXJhbWV0ZXJzKG1lc3NhZ2U6IHN0cmluZywgcGFyYW1ldGVyczogUmVjb3JkPHN0cmluZywgYW55Pik6IHN0cmluZyB7XG5cdFx0cmV0dXJuIE9iamVjdC5rZXlzKHBhcmFtZXRlcnMpLnJlZHVjZSgobXNnLCBrZXkpID0+IHtcblx0XHRcdHJldHVybiBtc2cucmVwbGFjZShgJSR7a2V5fSVgLCBwYXJhbWV0ZXJzW2tleV0pO1xuXHRcdH0sIG1lc3NhZ2UpO1xuXHR9XG5cblx0cHVibGljIHJlZ2lzdGVyQ29udHJvbChmb3JtQ29udHJvbDogRm9ybUNvbnRyb2wpIHtcblx0XHQvLyBjb25zb2xlLmxvZygncmVnaXN0ZXInKTtcblx0XHQvLyBjb25zb2xlLmxvZyh0aGlzLmNhcHRpb24pO1xuXHRcdHRoaXMuYXR0YWNoZWRDb250cm9sID0gZm9ybUNvbnRyb2w7XG5cdFx0dGhpcy5wYXJlbnQucmVnaXN0ZXJDb250cm9sKGZvcm1Db250cm9sLCB0aGlzKTtcblx0fVxuXG5cdHB1YmxpYyB1bnJlZ2lzdGVyQ29udHJvbChmb3JtQ29udHJvbDogRm9ybUNvbnRyb2wpIHtcblx0XHR0aGlzLmF0dGFjaGVkQ29udHJvbCA9IG51bGw7XG5cdFx0dGhpcy5wYXJlbnQudW5yZWdpc3RlckNvbnRyb2woZm9ybUNvbnRyb2wpO1xuXHR9XG5cblx0cHVibGljIGdldEF0dGFjaGVkQ29udHJvbCgpIHtcblx0XHRyZXR1cm4gdGhpcy5hdHRhY2hlZENvbnRyb2w7XG5cdH1cblxuXHRwdWJsaWMgcmVnaXN0ZXJFcnJvckhhbmRsZXIoZXJyb3I6IHN0cmluZywgdGVtcGxhdGVSZWY6IEVsZW1lbnRSZWYpIHtcblx0XHR0aGlzLmN1c3RvbUVycm9ySGFuZGxlcnMucHVzaCh7IGVycm9yLCB0ZW1wbGF0ZVJlZiB9KTtcblx0fVxuXG5cdHB1YmxpYyByZWdpc3RlckNhcHRpb24odGVtcGxhdGVSZWY6IEVsZW1lbnRSZWYpIHtcblx0XHR0aGlzLmNhcHRpb25SZWYgPSB0ZW1wbGF0ZVJlZjtcblx0fVxuXG5cdGdldEVycm9yVG9TaG93KCkge1xuXHRcdGlmICh0aGlzLmF0dGFjaGVkQ29udHJvbD8udG91Y2hlZCA9PT0gdHJ1ZSAmJiB0aGlzLmF0dGFjaGVkQ29udHJvbD8uZXJyb3JzKSB7XG5cdFx0XHRyZXR1cm4gT2JqZWN0LmtleXModGhpcy5hdHRhY2hlZENvbnRyb2w/LmVycm9ycylbMF07XG5cdFx0fVxuXHRcdHJldHVybiBudWxsO1xuXHR9XG5cblx0Z2V0Q3VzdG9tRXJyb3JIYW5kbGVyKGVycm9yOiBzdHJpbmcpIHtcblx0XHRyZXR1cm4gdGhpcy5jdXN0b21FcnJvckhhbmRsZXJzLmZpbmQoKGUpID0+IGUuZXJyb3IgPT09IGVycm9yKTtcblx0fVxuXG5cdHNob3dEZWZhdWx0RXJyb3IoZXJyb3I6IHN0cmluZykge1xuXHRcdHJldHVybiB0aGlzLmdldEVycm9yVG9TaG93KCkgPT09IGVycm9yICYmICF0aGlzLmN1c3RvbUVycm9ySGFuZGxlcnMuc29tZSgoZSkgPT4gZS5lcnJvciA9PT0gZXJyb3IpO1xuXHR9XG5cblx0Z2V0U2Nyb2xsYWJsZVBhcmVudChub2RlKSB7XG5cdFx0aWYgKG5vZGUgPT0gbnVsbCkge1xuXHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0fVxuXHRcdGlmIChub2RlLnNjcm9sbEhlaWdodCA+IG5vZGUuY2xpZW50SGVpZ2h0KSB7XG5cdFx0XHRyZXR1cm4gbm9kZTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHRoaXMuZ2V0U2Nyb2xsYWJsZVBhcmVudChub2RlLnBhcmVudE5vZGUpO1xuXHRcdH1cblx0fVxuXG5cdHNjcm9sbFRvKCkge1xuXHRcdHRoaXMuaW50ZXJuYWxDb21wb25lbnRSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldyh0cnVlKTtcblx0XHQvLyB0byBnaXZlIHNvbWUgYnJlYXRoaW5nIHJvb20sIHdlIHNjcm9sbCAxMDBweCBtb3JlIHRvIHRoZSB0b3Bcblx0XHR0aGlzLmdldFNjcm9sbGFibGVQYXJlbnQodGhpcy5pbnRlcm5hbENvbXBvbmVudFJlZi5uYXRpdmVFbGVtZW50KT8uc2Nyb2xsQnkoMCwgLTEwMCk7XG5cdH1cblxuXHRnZXRFcnJvck1lc3NhZ2VzKGtleToga2V5b2YgRm9ybUVycm9yTWVzc2FnZXMpIHtcblx0XHRyZXR1cm4gdGhpcy5jdXN0b21NZXNzYWdlcz8uW2tleV0/LigpID8/IHRoaXMuZXJyb3JNZXNzYWdlc1trZXldO1xuXHR9XG59XG4iXX0=
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Component, Host, HostBinding, Input, Optional } from '@angular/core';
|
|
2
|
-
import { FormComponent } from "../form.component";
|
|
2
|
+
import { FormComponent, invalidFieldsSymbol } from "../form.component";
|
|
3
|
+
import { isNullOrUndefined } from "../../util/values";
|
|
3
4
|
export class FormSubmitButtonComponent {
|
|
4
5
|
constructor(parentForm) {
|
|
5
6
|
this.parentForm = parentForm;
|
|
@@ -15,11 +16,21 @@ export class FormSubmitButtonComponent {
|
|
|
15
16
|
.trySubmit()
|
|
16
17
|
.then((value) => {
|
|
17
18
|
this.isLoading = true;
|
|
18
|
-
this.submitCallback(value)
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
const submitCallbackResult = this.submitCallback(value);
|
|
20
|
+
if (isNullOrUndefined(submitCallbackResult)) {
|
|
21
|
+
throw new Error('No promise is returned in your submit function.');
|
|
22
|
+
}
|
|
23
|
+
return submitCallbackResult.then(() => (this.isLoading = false)).catch((e) => {
|
|
24
|
+
this.isLoading = false;
|
|
25
|
+
throw e;
|
|
26
|
+
});
|
|
21
27
|
})
|
|
22
|
-
.catch(() => {
|
|
28
|
+
.catch((e) => {
|
|
29
|
+
if (e === invalidFieldsSymbol) {
|
|
30
|
+
return; // swallow the error, the framework will scroll to the field that needs attention
|
|
31
|
+
}
|
|
32
|
+
throw e;
|
|
33
|
+
});
|
|
23
34
|
}
|
|
24
35
|
}
|
|
25
36
|
FormSubmitButtonComponent.decorators = [
|
|
@@ -39,4 +50,4 @@ FormSubmitButtonComponent.propDecorators = {
|
|
|
39
50
|
submitCallback: [{ type: Input }],
|
|
40
51
|
_: [{ type: HostBinding, args: ['class._fullWidth',] }]
|
|
41
52
|
};
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zdWJtaXQtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9uZ3gtZW5oYW5jeS1mb3Jtcy9uZ3gtZW5oYW5jeS1mb3Jtcy9wcm9qZWN0cy9rbGlwcGEvbmd4LWVuaGFuY3ktZm9ybXMvc3JjLyIsInNvdXJjZXMiOlsibGliL2Zvcm0vZm9ybS1zdWJtaXQtYnV0dG9uL2Zvcm0tc3VibWl0LWJ1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUFDLGFBQWEsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3JFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBT3BELE1BQU0sT0FBTyx5QkFBeUI7SUFVckMsWUFBd0MsVUFBeUI7UUFBekIsZUFBVSxHQUFWLFVBQVUsQ0FBZTtRQVRqRCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsWUFBTyxHQUFnQyxhQUFhLENBQUM7SUFPTSxDQUFDO0lBSnJFLElBQXFDLENBQUM7UUFDckMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3ZCLENBQUM7SUFJRCxVQUFVO1FBQ1QsSUFBSSxDQUFDLFVBQVU7YUFDYixTQUFTLEVBQUU7YUFDWCxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNmLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4RCxJQUFJLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLEVBQUU7Z0JBQzVDLE1BQU0sSUFBSSxLQUFLLENBQUMsaURBQWlELENBQUMsQ0FBQzthQUNuRTtZQUNELE9BQU8sb0JBQW9CLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUM1RSxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQTtnQkFDdEIsTUFBTSxDQUFDLENBQUM7WUFDVCxDQUFDLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ1osSUFBSSxDQUFDLEtBQUssbUJBQW1CLEVBQUU7Z0JBQzlCLE9BQU0sQ0FBQyxpRkFBaUY7YUFDeEY7WUFDRCxNQUFNLENBQUMsQ0FBQztRQUNULENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7O1lBckNELFNBQVMsU0FBQztnQkFDVixRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQyw4U0FBa0Q7O2FBRWxEOzs7WUFQTyxhQUFhLHVCQWtCUCxJQUFJLFlBQUksUUFBUTs7O3dCQVQ1QixLQUFLO3dCQUNMLEtBQUs7c0JBQ0wsS0FBSzs2QkFDTCxLQUFLO2dCQUVMLFdBQVcsU0FBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3QsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybUNvbXBvbmVudCwgaW52YWxpZEZpZWxkc1N5bWJvbH0gZnJvbSBcIi4uL2Zvcm0uY29tcG9uZW50XCI7XG5pbXBvcnQge2lzTnVsbE9yVW5kZWZpbmVkfSBmcm9tIFwiLi4vLi4vdXRpbC92YWx1ZXNcIjtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAna2xwLWZvcm0tc3VibWl0LWJ1dHRvbicsXG5cdHRlbXBsYXRlVXJsOiAnLi9mb3JtLXN1Ym1pdC1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi9mb3JtLXN1Ym1pdC1idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybVN1Ym1pdEJ1dHRvbkNvbXBvbmVudCB7XG5cdEBJbnB1dCgpIHB1YmxpYyBpc0xvYWRpbmcgPSBmYWxzZTtcblx0QElucHV0KCkgZnVsbFdpZHRoID0gZmFsc2U7XG5cdEBJbnB1dCgpIHZhcmlhbnQ6ICdncmVlbkZpbGxlZCcgfCAncmVkRmlsbGVkJyA9ICdncmVlbkZpbGxlZCc7XG5cdEBJbnB1dCgpIHB1YmxpYyBzdWJtaXRDYWxsYmFjazogKGFueSkgPT4gUHJvbWlzZTx2b2lkPjtcblxuXHRASG9zdEJpbmRpbmcoJ2NsYXNzLl9mdWxsV2lkdGgnKSBnZXQgXygpIHtcblx0XHRyZXR1cm4gdGhpcy5mdWxsV2lkdGg7XG5cdH1cblxuXHRjb25zdHJ1Y3RvcihASG9zdCgpIEBPcHRpb25hbCgpIHByaXZhdGUgcGFyZW50Rm9ybTogRm9ybUNvbXBvbmVudCkge31cblxuXHRzdWJtaXRGb3JtKCkge1xuXHRcdHRoaXMucGFyZW50Rm9ybVxuXHRcdFx0LnRyeVN1Ym1pdCgpXG5cdFx0XHQudGhlbigodmFsdWUpID0+IHtcblx0XHRcdFx0dGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuXHRcdFx0XHRjb25zdCBzdWJtaXRDYWxsYmFja1Jlc3VsdCA9IHRoaXMuc3VibWl0Q2FsbGJhY2sodmFsdWUpO1xuXHRcdFx0XHRpZiAoaXNOdWxsT3JVbmRlZmluZWQoc3VibWl0Q2FsbGJhY2tSZXN1bHQpKSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKCdObyBwcm9taXNlIGlzIHJldHVybmVkIGluIHlvdXIgc3VibWl0IGZ1bmN0aW9uLicpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBzdWJtaXRDYWxsYmFja1Jlc3VsdC50aGVuKCgpID0+ICh0aGlzLmlzTG9hZGluZyA9IGZhbHNlKSkuY2F0Y2goKGUpID0+IHtcblx0XHRcdFx0XHR0aGlzLmlzTG9hZGluZyA9IGZhbHNlXG5cdFx0XHRcdFx0dGhyb3cgZTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KVxuXHRcdFx0LmNhdGNoKChlKSA9PiB7XG5cdFx0XHRcdGlmIChlID09PSBpbnZhbGlkRmllbGRzU3ltYm9sKSB7XG5cdFx0XHRcdFx0cmV0dXJuIC8vIHN3YWxsb3cgdGhlIGVycm9yLCB0aGUgZnJhbWV3b3JrIHdpbGwgc2Nyb2xsIHRvIHRoZSBmaWVsZCB0aGF0IG5lZWRzIGF0dGVudGlvblxuXHRcdFx0XHR9XG5cdFx0XHRcdHRocm93IGU7XG5cdFx0XHR9KTtcblx0fVxufVxuIl19
|
|
@@ -1,62 +1,114 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import { FormArray, FormControl, FormGroup } from '@angular/forms';
|
|
3
|
-
|
|
1
|
+
import { Component, Input, Optional, SkipSelf } from '@angular/core';
|
|
2
|
+
import { FormArray, FormControl, FormGroup, FormGroupName } from '@angular/forms';
|
|
3
|
+
import { isValueSet } from '../util/values';
|
|
4
|
+
export const invalidFieldsSymbol = Symbol('Not all fields are valid');
|
|
5
|
+
// Only used as a 'marker' to define a property will be filled in by a sub form
|
|
6
|
+
export class SubForm extends FormGroup {
|
|
4
7
|
constructor() {
|
|
8
|
+
super({}, null);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export class FormComponent {
|
|
12
|
+
constructor(parent, surroundingFormGroupName) {
|
|
13
|
+
this.parent = parent;
|
|
14
|
+
this.surroundingFormGroupName = surroundingFormGroupName;
|
|
5
15
|
// we keep track of what form controls are actually rendered. Only those count when looking at form validation
|
|
6
16
|
this.activeControls = [];
|
|
7
17
|
}
|
|
18
|
+
ngOnInit() {
|
|
19
|
+
var _a;
|
|
20
|
+
if (this.parent) {
|
|
21
|
+
if (!isValueSet((_a = this.surroundingFormGroupName) === null || _a === void 0 ? void 0 : _a.name)) {
|
|
22
|
+
throw new Error('No surrounding groupname is found for a nested form');
|
|
23
|
+
}
|
|
24
|
+
const groupName = String(this.surroundingFormGroupName.name);
|
|
25
|
+
const groupToOverwrite = this.parent.formGroup.get(groupName);
|
|
26
|
+
if (!(groupToOverwrite instanceof SubForm)) {
|
|
27
|
+
throw new Error(`Surrounding groupname '${groupName}' is not a subFormSubstitute'`);
|
|
28
|
+
}
|
|
29
|
+
this.parent.formGroup.setControl(groupName, this.formGroup);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
8
32
|
registerControl(formControl, formElement) {
|
|
9
33
|
this.activeControls.push({ formControl, formElement });
|
|
34
|
+
if (this.parent) {
|
|
35
|
+
this.parent.registerControl(formControl, formElement);
|
|
36
|
+
}
|
|
10
37
|
}
|
|
11
38
|
unregisterControl(formControl) {
|
|
12
39
|
this.activeControls = this.activeControls.filter((e) => e.formControl !== formControl);
|
|
40
|
+
if (this.parent) {
|
|
41
|
+
this.parent.unregisterControl(formControl);
|
|
42
|
+
}
|
|
13
43
|
}
|
|
14
|
-
|
|
44
|
+
addFormGroupControls(formGroup, result) {
|
|
15
45
|
Object.values(formGroup.controls).forEach((value) => {
|
|
16
46
|
if (value instanceof FormGroup) {
|
|
17
|
-
this.
|
|
47
|
+
this.addFormGroupControls(value, result);
|
|
18
48
|
}
|
|
19
49
|
else if (value instanceof FormArray) {
|
|
20
|
-
this.
|
|
50
|
+
this.addFormArrayControls(value, result);
|
|
21
51
|
}
|
|
22
52
|
else if (value instanceof FormControl) {
|
|
23
|
-
this.
|
|
53
|
+
this.addFormControl(value, result);
|
|
24
54
|
}
|
|
25
55
|
});
|
|
26
56
|
}
|
|
27
|
-
|
|
57
|
+
addFormArrayControls(formArray, result) {
|
|
28
58
|
formArray.controls.forEach((value) => {
|
|
29
59
|
if (value instanceof FormGroup) {
|
|
30
|
-
this.
|
|
60
|
+
this.addFormGroupControls(value, result);
|
|
31
61
|
}
|
|
32
62
|
else if (value instanceof FormArray) {
|
|
33
|
-
this.
|
|
63
|
+
this.addFormArrayControls(value, result);
|
|
34
64
|
}
|
|
35
65
|
else if (value instanceof FormControl) {
|
|
36
|
-
this.
|
|
66
|
+
this.addFormControl(value, result);
|
|
37
67
|
}
|
|
38
68
|
});
|
|
39
69
|
}
|
|
70
|
+
getAllFormControls() {
|
|
71
|
+
const result = [];
|
|
72
|
+
this.addFormGroupControls(this.formGroup, result);
|
|
73
|
+
return result;
|
|
74
|
+
}
|
|
75
|
+
addFormControl(control, result) {
|
|
76
|
+
result.push(control);
|
|
77
|
+
}
|
|
40
78
|
disableInactiveFormControl(control) {
|
|
41
|
-
if (this.activeControls.some((e) => e.formControl === control)) {
|
|
42
|
-
control.enable();
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
79
|
+
if (!this.activeControls.some((e) => e.formControl === control)) {
|
|
45
80
|
control.disable();
|
|
46
81
|
}
|
|
47
82
|
}
|
|
48
83
|
trySubmit() {
|
|
49
84
|
var _a, _b;
|
|
50
85
|
this.formGroup.markAllAsTouched();
|
|
51
|
-
this.
|
|
86
|
+
const allControls = this.getAllFormControls();
|
|
87
|
+
const originalDisabledStates = allControls.map(e => {
|
|
88
|
+
return { control: e, disabled: e.disabled };
|
|
89
|
+
});
|
|
90
|
+
allControls.forEach(e => this.disableInactiveFormControl(e));
|
|
91
|
+
const values = this.formGroup.value;
|
|
52
92
|
if (this.formGroup.valid) {
|
|
53
|
-
|
|
93
|
+
this.setDisabledStatesForAllControls(originalDisabledStates);
|
|
94
|
+
return Promise.resolve(values);
|
|
54
95
|
}
|
|
55
96
|
else {
|
|
56
97
|
(_b = (_a = this.activeControls.find((e) => !e.formControl.valid)) === null || _a === void 0 ? void 0 : _a.formElement) === null || _b === void 0 ? void 0 : _b.scrollTo();
|
|
57
|
-
|
|
98
|
+
this.setDisabledStatesForAllControls(originalDisabledStates);
|
|
99
|
+
return Promise.reject(invalidFieldsSymbol);
|
|
58
100
|
}
|
|
59
101
|
}
|
|
102
|
+
setDisabledStatesForAllControls(originalDisabledStates) {
|
|
103
|
+
originalDisabledStates.forEach((e) => {
|
|
104
|
+
if (e.disabled) {
|
|
105
|
+
e.control.disable();
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
e.control.enable();
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
}
|
|
60
112
|
}
|
|
61
113
|
FormComponent.decorators = [
|
|
62
114
|
{ type: Component, args: [{
|
|
@@ -65,7 +117,11 @@ FormComponent.decorators = [
|
|
|
65
117
|
styles: [":host{display:block}:host.row{display:flex}"]
|
|
66
118
|
},] }
|
|
67
119
|
];
|
|
120
|
+
FormComponent.ctorParameters = () => [
|
|
121
|
+
{ type: FormComponent, decorators: [{ type: SkipSelf }, { type: Optional }] },
|
|
122
|
+
{ type: FormGroupName, decorators: [{ type: Optional }] }
|
|
123
|
+
];
|
|
68
124
|
FormComponent.propDecorators = {
|
|
69
125
|
formGroup: [{ type: Input }]
|
|
70
126
|
};
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvbmd4LWVuaGFuY3ktZm9ybXMvbmd4LWVuaGFuY3ktZm9ybXMvcHJvamVjdHMva2xpcHBhL25neC1lbmhhbmN5LWZvcm1zL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9mb3JtL2Zvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUW5FLE1BQU0sT0FBTyxhQUFhO0lBTDFCO1FBUUMsOEdBQThHO1FBQ3RHLG1CQUFjLEdBR2pCLEVBQUUsQ0FBQztJQWtEVCxDQUFDO0lBaERPLGVBQWUsQ0FBQyxXQUF3QixFQUFFLFdBQWlDO1FBQ2pGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVNLGlCQUFpQixDQUFDLFdBQXdCO1FBQ2hELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEtBQUssV0FBVyxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVPLGdDQUFnQyxDQUFDLFNBQW9CO1FBQzVELE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25ELElBQUksS0FBSyxZQUFZLFNBQVMsRUFBRTtnQkFDL0IsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzdDO2lCQUFNLElBQUksS0FBSyxZQUFZLFNBQVMsRUFBRTtnQkFDdEMsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzdDO2lCQUFNLElBQUksS0FBSyxZQUFZLFdBQVcsRUFBRTtnQkFDeEMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3ZDO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBQ08sZ0NBQWdDLENBQUMsU0FBb0I7UUFDNUQsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNwQyxJQUFJLEtBQUssWUFBWSxTQUFTLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUM3QztpQkFBTSxJQUFJLEtBQUssWUFBWSxTQUFTLEVBQUU7Z0JBQ3RDLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUM3QztpQkFBTSxJQUFJLEtBQUssWUFBWSxXQUFXLEVBQUU7Z0JBQ3hDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN2QztRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUNPLDBCQUEwQixDQUFDLE9BQW9CO1FBQ3RELElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEtBQUssT0FBTyxDQUFDLEVBQUU7WUFDL0QsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ2pCO2FBQU07WUFDTixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDbEI7SUFDRixDQUFDO0lBRUQsU0FBUzs7UUFDUixJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0RCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFO1lBQ3pCLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzdDO2FBQU07WUFDTixZQUFBLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLDBDQUFFLFdBQVcsMENBQUUsUUFBUSxHQUFHO1lBQy9FLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1NBQ2xEO0lBQ0YsQ0FBQzs7O1lBN0RELFNBQVMsU0FBQztnQkFDVixRQUFRLEVBQUUsVUFBVTtnQkFDcEIsOERBQW9DOzthQUVwQzs7O3dCQUVDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0Zvcm1FbGVtZW50Q29tcG9uZW50fSBmcm9tIFwiLi9mb3JtLWVsZW1lbnQvZm9ybS1lbGVtZW50LmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdrbHAtZm9ybScsXG5cdHRlbXBsYXRlVXJsOiAnLi9mb3JtLmNvbXBvbmVudC5odG1sJyxcblx0c3R5bGVVcmxzOiBbJy4vZm9ybS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtQ29tcG9uZW50IHtcblx0QElucHV0KCkgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG5cdC8vIHdlIGtlZXAgdHJhY2sgb2Ygd2hhdCBmb3JtIGNvbnRyb2xzIGFyZSBhY3R1YWxseSByZW5kZXJlZC4gT25seSB0aG9zZSBjb3VudCB3aGVuIGxvb2tpbmcgYXQgZm9ybSB2YWxpZGF0aW9uXG5cdHByaXZhdGUgYWN0aXZlQ29udHJvbHM6IEFycmF5PHtcblx0XHRmb3JtQ29udHJvbDogRm9ybUNvbnRyb2w7XG5cdFx0Zm9ybUVsZW1lbnQ6IEZvcm1FbGVtZW50Q29tcG9uZW50O1xuXHR9PiA9IFtdO1xuXG5cdHB1YmxpYyByZWdpc3RlckNvbnRyb2woZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sLCBmb3JtRWxlbWVudDogRm9ybUVsZW1lbnRDb21wb25lbnQpIHtcblx0XHR0aGlzLmFjdGl2ZUNvbnRyb2xzLnB1c2goeyBmb3JtQ29udHJvbCwgZm9ybUVsZW1lbnQgfSk7XG5cdH1cblxuXHRwdWJsaWMgdW5yZWdpc3RlckNvbnRyb2woZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sKSB7XG5cdFx0dGhpcy5hY3RpdmVDb250cm9scyA9IHRoaXMuYWN0aXZlQ29udHJvbHMuZmlsdGVyKChlKSA9PiBlLmZvcm1Db250cm9sICE9PSBmb3JtQ29udHJvbCk7XG5cdH1cblxuXHRwcml2YXRlIGRpc2FibGVJbmFjdGl2ZUZvcm1Hcm91cENvbnRyb2xzKGZvcm1Hcm91cDogRm9ybUdyb3VwKSB7XG5cdFx0T2JqZWN0LnZhbHVlcyhmb3JtR3JvdXAuY29udHJvbHMpLmZvckVhY2goKHZhbHVlKSA9PiB7XG5cdFx0XHRpZiAodmFsdWUgaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcblx0XHRcdFx0dGhpcy5kaXNhYmxlSW5hY3RpdmVGb3JtR3JvdXBDb250cm9scyh2YWx1ZSk7XG5cdFx0XHR9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgRm9ybUFycmF5KSB7XG5cdFx0XHRcdHRoaXMuZGlzYWJsZUluYWN0aXZlRm9ybUFycmF5Q29udHJvbHModmFsdWUpO1xuXHRcdFx0fSBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEZvcm1Db250cm9sKSB7XG5cdFx0XHRcdHRoaXMuZGlzYWJsZUluYWN0aXZlRm9ybUNvbnRyb2wodmFsdWUpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cdHByaXZhdGUgZGlzYWJsZUluYWN0aXZlRm9ybUFycmF5Q29udHJvbHMoZm9ybUFycmF5OiBGb3JtQXJyYXkpIHtcblx0XHRmb3JtQXJyYXkuY29udHJvbHMuZm9yRWFjaCgodmFsdWUpID0+IHtcblx0XHRcdGlmICh2YWx1ZSBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuXHRcdFx0XHR0aGlzLmRpc2FibGVJbmFjdGl2ZUZvcm1Hcm91cENvbnRyb2xzKHZhbHVlKTtcblx0XHRcdH0gZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBGb3JtQXJyYXkpIHtcblx0XHRcdFx0dGhpcy5kaXNhYmxlSW5hY3RpdmVGb3JtQXJyYXlDb250cm9scyh2YWx1ZSk7XG5cdFx0XHR9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wpIHtcblx0XHRcdFx0dGhpcy5kaXNhYmxlSW5hY3RpdmVGb3JtQ29udHJvbCh2YWx1ZSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblx0cHJpdmF0ZSBkaXNhYmxlSW5hY3RpdmVGb3JtQ29udHJvbChjb250cm9sOiBGb3JtQ29udHJvbCkge1xuXHRcdGlmICh0aGlzLmFjdGl2ZUNvbnRyb2xzLnNvbWUoKGUpID0+IGUuZm9ybUNvbnRyb2wgPT09IGNvbnRyb2wpKSB7XG5cdFx0XHRjb250cm9sLmVuYWJsZSgpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb250cm9sLmRpc2FibGUoKTtcblx0XHR9XG5cdH1cblxuXHR0cnlTdWJtaXQoKTogUHJvbWlzZTxhbnk+IHtcblx0XHR0aGlzLmZvcm1Hcm91cC5tYXJrQWxsQXNUb3VjaGVkKCk7XG5cdFx0dGhpcy5kaXNhYmxlSW5hY3RpdmVGb3JtR3JvdXBDb250cm9scyh0aGlzLmZvcm1Hcm91cCk7XG5cdFx0aWYgKHRoaXMuZm9ybUdyb3VwLnZhbGlkKSB7XG5cdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuZm9ybUdyb3VwLnZhbHVlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5hY3RpdmVDb250cm9scy5maW5kKChlKSA9PiAhZS5mb3JtQ29udHJvbC52YWxpZCk/LmZvcm1FbGVtZW50Py5zY3JvbGxUbygpO1xuXHRcdFx0cmV0dXJuIFByb21pc2UucmVqZWN0KCdOb3QgYWxsIGZpZWxkcyBhcmUgdmFsaWQnKTtcblx0XHR9XG5cdH1cbn1cbiJdfQ==
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvbmd4LWVuaGFuY3ktZm9ybXMvbmd4LWVuaGFuY3ktZm9ybXMvcHJvamVjdHMva2xpcHBhL25neC1lbmhhbmN5LWZvcm1zL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9mb3JtL2Zvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFrQixTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUMsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUM7QUFFdEUsK0VBQStFO0FBQy9FLE1BQU0sT0FBTyxPQUFRLFNBQVEsU0FBUztJQUNyQztRQUNDLEtBQUssQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDakIsQ0FBQztDQUNEO0FBT0QsTUFBTSxPQUFPLGFBQWE7SUFTekIsWUFDaUMsTUFBcUIsRUFDakMsd0JBQXVDO1FBRDNCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDakMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUFlO1FBUjVELDhHQUE4RztRQUN0RyxtQkFBYyxHQUdqQixFQUFFLENBQUM7SUFNUixDQUFDO0lBRUQsUUFBUTs7UUFDUCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFVBQVUsT0FBQyxJQUFJLENBQUMsd0JBQXdCLDBDQUFFLElBQUksQ0FBQyxFQUFFO2dCQUNyRCxNQUFNLElBQUksS0FBSyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7YUFDdkU7WUFDRCxNQUFNLFNBQVMsR0FBRyxN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T0FBTyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQzNDO0lBQ0YsQ0FBQztJQUVPLCtCQUErQixDQUFDLHNCQUE4RTtRQUNySCxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNwQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUU7Z0JBQ2YsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUNwQjtpQkFBTTtnQkFDTixDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQ25CO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzs7WUFsSEQsU0FBUyxTQUFDO2dCQUNWLFFBQVEsRUFBRSxVQUFVO2dCQUNwQiw4REFBb0M7O2FBRXBDOzs7WUFXeUMsYUFBYSx1QkFBcEQsUUFBUSxZQUFJLFFBQVE7WUE1QnFDLGFBQWEsdUJBNkJ0RSxRQUFROzs7d0JBVlQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbCwgU2tpcFNlbGZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheSwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgRm9ybUdyb3VwTmFtZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtGb3JtRWxlbWVudENvbXBvbmVudH0gZnJvbSAnLi9mb3JtLWVsZW1lbnQvZm9ybS1lbGVtZW50LmNvbXBvbmVudCc7XG5pbXBvcnQge2lzVmFsdWVTZXR9IGZyb20gJy4uL3V0aWwvdmFsdWVzJztcblxuZXhwb3J0IGNvbnN0IGludmFsaWRGaWVsZHNTeW1ib2wgPSBTeW1ib2woJ05vdCBhbGwgZmllbGRzIGFyZSB2YWxpZCcpO1xuXG4vLyBPbmx5IHVzZWQgYXMgYSAnbWFya2VyJyB0byBkZWZpbmUgYSBwcm9wZXJ0eSB3aWxsIGJlIGZpbGxlZCBpbiBieSBhIHN1YiBmb3JtXG5leHBvcnQgY2xhc3MgU3ViRm9ybSBleHRlbmRzIEZvcm1Hcm91cCB7XG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKHt9LCBudWxsKTtcblx0fVxufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdrbHAtZm9ybScsXG5cdHRlbXBsYXRlVXJsOiAnLi9mb3JtLmNvbXBvbmVudC5odG1sJyxcblx0c3R5bGVVcmxzOiBbJy4vZm9ybS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblx0QElucHV0KCkgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG5cdC8vIHdlIGtlZXAgdHJhY2sgb2Ygd2hhdCBmb3JtIGNvbnRyb2xzIGFyZSBhY3R1YWxseSByZW5kZXJlZC4gT25seSB0aG9zZSBjb3VudCB3aGVuIGxvb2tpbmcgYXQgZm9ybSB2YWxpZGF0aW9uXG5cdHByaXZhdGUgYWN0aXZlQ29udHJvbHM6IEFycmF5PHtcblx0XHRmb3JtQ29udHJvbDogRm9ybUNvbnRyb2w7XG5cdFx0Zm9ybUVsZW1lbnQ6IEZvcm1FbGVtZW50Q29tcG9uZW50O1xuXHR9PiA9IFtdO1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdEBTa2lwU2VsZigpIEBPcHRpb25hbCgpIHByaXZhdGUgcGFyZW50OiBGb3JtQ29tcG9uZW50LFxuXHRcdEBPcHRpb25hbCgpIHByaXZhdGUgc3Vycm91bmRpbmdGb3JtR3JvdXBOYW1lOiBGb3JtR3JvdXBOYW1lLFxuXHQpIHtcblx0fVxuXG5cdG5nT25Jbml0KCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLnBhcmVudCkge1xuXHRcdFx0aWYgKCFpc1ZhbHVlU2V0KHRoaXMuc3Vycm91bmRpbmdGb3JtR3JvdXBOYW1lPy5uYW1lKSkge1xuXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ05vIHN1cnJvdW5kaW5nIGdyb3VwbmFtZSBpcyBmb3VuZCBmb3IgYSBuZXN0ZWQgZm9ybScpO1xuXHRcdFx0fVxuXHRcdFx0Y29uc3QgZ3JvdXBOYW1lID0gU3RyaW5nKHRoaXMuc3Vycm91bmRpbmdGb3JtR3JvdXBOYW1lLm5hbWUpO1xuXHRcdFx0Y29uc3QgZ3JvdXBUb092ZXJ3cml0ZSA9IHRoaXMucGFyZW50LmZvcm1Hcm91cC5nZXQoZ3JvdXBOYW1lKTtcblx0XHRcdGlmICghKGdyb3VwVG9PdmVyd3JpdGUgaW5zdGFuY2VvZiBTdWJGb3JtKSkge1xuXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoYFN1cnJvdW5kaW5nIGdyb3VwbmFtZSAnJHtncm91cE5hbWV9JyBpcyBub3QgYSBzdWJGb3JtU3Vic3RpdHV0ZSdgKTtcblx0XHRcdH1cblx0XHRcdHRoaXMucGFyZW50LmZvcm1Hcm91cC5zZXRDb250cm9sKGdyb3VwTmFtZSwgdGhpcy5mb3JtR3JvdXApO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyByZWdpc3RlckNvbnRyb2woZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sLCBmb3JtRWxlbWVudDogRm9ybUVsZW1lbnRDb21wb25lbnQpOiB2b2lkIHtcblx0XHR0aGlzLmFjdGl2ZUNvbnRyb2xzLnB1c2goe2Zvcm1Db250cm9sLCBmb3JtRWxlbWVudH0pO1xuXHRcdGlmICh0aGlzLnBhcmVudCkge1xuXHRcdFx0dGhpcy5wYXJlbnQucmVnaXN0ZXJDb250cm9sKGZvcm1Db250cm9sLCBmb3JtRWxlbWVudCk7XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIHVucmVnaXN0ZXJDb250cm9sKGZvcm1Db250cm9sOiBGb3JtQ29udHJvbCk6IHZvaWQge1xuXHRcdHRoaXMuYWN0aXZlQ29udHJvbHMgPSB0aGlzLmFjdGl2ZUNvbnRyb2xzLmZpbHRlcigoZSkgPT4gZS5mb3JtQ29udHJvbCAhPT0gZm9ybUNvbnRyb2wpO1xuXHRcdGlmICh0aGlzLnBhcmVudCkge1xuXHRcdFx0dGhpcy5wYXJlbnQudW5yZWdpc3RlckNvbnRyb2woZm9ybUNvbnRyb2wpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgYWRkRm9ybUdyb3VwQ29udHJvbHMoZm9ybUdyb3VwOiBGb3JtR3JvdXAsIHJlc3VsdDogQXJyYXk8Rm9ybUNvbnRyb2w+KTogdm9pZCB7XG5cdFx0T2JqZWN0LnZhbHVlcyhmb3JtR3JvdXAuY29udHJvbHMpLmZvckVhY2goKHZhbHVlKSA9PiB7XG5cdFx0XHRpZiAodmFsdWUgaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcblx0XHRcdFx0dGhpcy5hZGRGb3JtR3JvdXBDb250cm9scyh2YWx1ZSwgcmVzdWx0KTtcblx0XHRcdH0gZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBGb3JtQXJyYXkpIHtcblx0XHRcdFx0dGhpcy5hZGRGb3JtQXJyYXlDb250cm9scyh2YWx1ZSwgcmVzdWx0KTtcblx0XHRcdH0gZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBGb3JtQ29udHJvbCkge1xuXHRcdFx0XHR0aGlzLmFkZEZvcm1Db250cm9sKHZhbHVlLCByZXN1bHQpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBhZGRGb3JtQXJyYXlDb250cm9scyhmb3JtQXJyYXk6IEZvcm1BcnJheSwgcmVzdWx0OiBBcnJheTxGb3JtQ29udHJvbD4pOiB2b2lkIHtcblx0XHRmb3JtQXJyYXkuY29udHJvbHMuZm9yRWFjaCgodmFsdWUpID0+IHtcblx0XHRcdGlmICh2YWx1ZSBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuXHRcdFx0XHR0aGlzLmFkZEZvcm1Hcm91cENvbnRyb2xzKHZhbHVlLCByZXN1bHQpO1xuXHRcdFx0fSBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEZvcm1BcnJheSkge1xuXHRcdFx0XHR0aGlzLmFkZEZvcm1BcnJheUNvbnRyb2xzKHZhbHVlLCByZXN1bHQpO1xuXHRcdFx0fSBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEZvcm1Db250cm9sKSB7XG5cdFx0XHRcdHRoaXMuYWRkRm9ybUNvbnRyb2wodmFsdWUsIHJlc3VsdCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIGdldEFsbEZvcm1Db250cm9scygpOiBBcnJheTxGb3JtQ29udHJvbD4ge1xuXHRcdGNvbnN0IHJlc3VsdCA9IFtdO1xuXHRcdHRoaXMuYWRkRm9ybUdyb3VwQ29udHJvbHModGhpcy5mb3JtR3JvdXAsIHJlc3VsdCk7XG5cdFx0cmV0dXJuIHJlc3VsdDtcblx0fVxuXG5cdHByaXZhdGUgYWRkRm9ybUNvbnRyb2woY29udHJvbDogRm9ybUNvbnRyb2wsIHJlc3VsdDogQXJyYXk8Rm9ybUNvbnRyb2w+KTogdm9pZCB7XG5cdFx0cmVzdWx0LnB1c2goY29udHJvbCk7XG5cdH1cblxuXHRwcml2YXRlIGRpc2FibGVJbmFjdGl2ZUZvcm1Db250cm9sKGNvbnRyb2w6IEZvcm1Db250cm9sKTogdm9pZCB7XG5cdFx0aWYgKCF0aGlzLmFjdGl2ZUNvbnRyb2xzLnNvbWUoKGUpID0+IGUuZm9ybUNvbnRyb2wgPT09IGNvbnRyb2wpKSB7XG5cdFx0XHRjb250cm9sLmRpc2FibGUoKTtcblx0XHR9XG5cdH1cblxuXHR0cnlTdWJtaXQoKTogUHJvbWlzZTxhbnk+IHtcblx0XHR0aGlzLmZvcm1Hcm91cC5tYXJrQWxsQXNUb3VjaGVkKCk7XG5cdFx0Y29uc3QgYWxsQ29udHJvbHM6IEFycmF5PEZvcm1Db250cm9sPiA9IHRoaXMuZ2V0QWxsRm9ybUNvbnRyb2xzKCk7XG5cdFx0Y29uc3Qgb3JpZ2luYWxEaXNhYmxlZFN0YXRlcyA9IGFsbENvbnRyb2xzLm1hcChlID0+IHtcblx0XHRcdHJldHVybiB7Y29udHJvbDogZSwgZGlzYWJsZWQ6IGUuZGlzYWJsZWR9O1xuXHRcdH0pO1xuXHRcdGFsbENvbnRyb2xzLmZvckVhY2goZSA9PiB0aGlzLmRpc2FibGVJbmFjdGl2ZUZvcm1Db250cm9sKGUpKTtcblx0XHRjb25zdCB2YWx1ZXMgPSB0aGlzLmZvcm1Hcm91cC52YWx1ZTtcblx0XHRpZiAodGhpcy5mb3JtR3JvdXAudmFsaWQpIHtcblx0XHRcdHRoaXMuc2V0RGlzYWJsZWRTdGF0ZXNGb3JBbGxDb250cm9scyhvcmlnaW5hbERpc2FibGVkU3RhdGVzKTtcblx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUodmFsdWVzKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5hY3RpdmVDb250cm9scy5maW5kKChlKSA9PiAhZS5mb3JtQ29udHJvbC52YWxpZCk/LmZvcm1FbGVtZW50Py5zY3JvbGxUbygpO1xuXHRcdFx0dGhpcy5zZXREaXNhYmxlZFN0YXRlc0ZvckFsbENvbnRyb2xzKG9yaWdpbmFsRGlzYWJsZWRTdGF0ZXMpO1xuXHRcdFx0cmV0dXJuIFByb21pc2UucmVqZWN0KGludmFsaWRGaWVsZHNTeW1ib2wpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgc2V0RGlzYWJsZWRTdGF0ZXNGb3JBbGxDb250cm9scyhvcmlnaW5hbERpc2FibGVkU3RhdGVzOiBBcnJheTx7IGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDsgZGlzYWJsZWQ6IGJvb2xlYW4gfT4pOiB2b2lkIHtcblx0XHRvcmlnaW5hbERpc2FibGVkU3RhdGVzLmZvckVhY2goKGUpID0+IHtcblx0XHRcdGlmIChlLmRpc2FibGVkKSB7XG5cdFx0XHRcdGUuY29udHJvbC5kaXNhYmxlKCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRlLmNvbnRyb2wuZW5hYmxlKCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
|