@ecodev/natural 44.0.6 → 45.1.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/esm2020/lib/classes/abstract-detail.mjs +39 -40
- package/esm2020/lib/classes/abstract-navigable-list.mjs +6 -2
- package/esm2020/lib/classes/rxjs.mjs +2 -1
- package/esm2020/lib/classes/validators.mjs +2 -2
- package/esm2020/lib/modules/dropdown-components/type-date/type-date.component.mjs +1 -1
- package/esm2020/lib/modules/dropdown-components/type-date-range/type-date-range.component.mjs +1 -1
- package/esm2020/lib/modules/dropdown-components/type-number/type-number.component.mjs +7 -3
- package/esm2020/lib/modules/dropdown-components/type-select/type-select.component.mjs +8 -4
- package/esm2020/lib/modules/file/abstract-file.mjs +26 -29
- package/esm2020/lib/modules/file/utils.mjs +12 -1
- package/esm2020/lib/modules/fixed-button-detail/fixed-button-detail.component.mjs +22 -9
- package/esm2020/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.mjs +3 -3
- package/esm2020/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.service.mjs +3 -9
- package/esm2020/lib/services/abstract-model.service.mjs +8 -41
- package/esm2020/lib/services/debounce.service.mjs +128 -0
- package/esm2020/lib/services/swiss-parsing-date-adapter.service.mjs +21 -13
- package/esm2020/public-api.mjs +2 -1
- package/fesm2015/ecodev-natural.mjs +266 -141
- package/fesm2015/ecodev-natural.mjs.map +1 -1
- package/fesm2020/ecodev-natural.mjs +263 -139
- package/fesm2020/ecodev-natural.mjs.map +1 -1
- package/lib/modules/dropdown-components/type-date/type-date.component.d.ts +1 -1
- package/lib/modules/dropdown-components/type-date-range/type-date-range.component.d.ts +1 -1
- package/lib/modules/dropdown-components/type-number/type-number.component.d.ts +2 -1
- package/lib/modules/dropdown-components/type-select/type-select.component.d.ts +7 -3
- package/lib/modules/file/abstract-file.d.ts +0 -3
- package/lib/modules/file/utils.d.ts +1 -0
- package/lib/modules/fixed-button-detail/fixed-button-detail.component.d.ts +14 -6
- package/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.d.ts +5 -6
- package/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.service.d.ts +5 -14
- package/lib/services/abstract-model.service.d.ts +4 -6
- package/lib/services/debounce.service.d.ts +46 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -17,7 +17,6 @@ export class TypeNumberComponent {
|
|
|
17
17
|
constructor(data, dropdownRef) {
|
|
18
18
|
this.dropdownRef = dropdownRef;
|
|
19
19
|
this.renderedValue = new BehaviorSubject('');
|
|
20
|
-
this.configuration = {};
|
|
21
20
|
this.operatorCtrl = new FormControl('equal', { nonNullable: true });
|
|
22
21
|
this.valueCtrl = new FormControl();
|
|
23
22
|
this.matcher = new InvalidWithValueStateMatcher();
|
|
@@ -26,7 +25,12 @@ export class TypeNumberComponent {
|
|
|
26
25
|
value: this.valueCtrl,
|
|
27
26
|
});
|
|
28
27
|
this.operators = possibleComparableOperators;
|
|
29
|
-
this.
|
|
28
|
+
this.defaults = {
|
|
29
|
+
min: null,
|
|
30
|
+
max: null,
|
|
31
|
+
step: null,
|
|
32
|
+
};
|
|
33
|
+
this.configuration = { ...this.defaults, ...data.configuration };
|
|
30
34
|
merge(this.operatorCtrl.valueChanges, this.valueCtrl.valueChanges).subscribe(() => {
|
|
31
35
|
const rendered = this.getRenderedValue();
|
|
32
36
|
this.renderedValue.next(rendered);
|
|
@@ -101,4 +105,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImpor
|
|
|
101
105
|
type: Inject,
|
|
102
106
|
args: [NATURAL_DROPDOWN_DATA]
|
|
103
107
|
}] }, { type: i1.NaturalDropdownRef }]; } });
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1udW1iZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvZHJvcGRvd24tY29tcG9uZW50cy90eXBlLW51bWJlci90eXBlLW51bWJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9kcm9wZG93bi1jb21wb25lbnRzL3R5cGUtbnVtYmVyL3R5cGUtbnVtYmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBQyxXQUFXLEVBQUUsU0FBUyxFQUFlLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQy9FLE9BQU8sRUFBQyxlQUFlLEVBQUUsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRzVDLE9BQU8sRUFBQyxxQkFBcUIsRUFBc0IsTUFBTSxrREFBa0QsQ0FBQztBQUU1RyxPQUFPLEVBQUMsMkJBQTJCLEVBQWdDLE1BQU0sVUFBVSxDQUFDO0FBQ3BGLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7O0FBWXBELE1BQU0sT0FBTyxtQkFBbUI7SUFZNUIsWUFDbUMsSUFBa0QsRUFDdkUsV0FBK0I7UUFBL0IsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBYjdCLGtCQUFhLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDaEQsa0JBQWEsR0FBNEIsRUFBRSxDQUFDO1FBQzVDLGlCQUFZLEdBQUcsSUFBSSxXQUFXLENBQWdDLE9BQU8sRUFBRSxFQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUMs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WUFDWixPQUFPO1NBQ1Y7UUFFRCxLQUFLLE1BQU0sUUFBUSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkMsTUFBTSxpQkFBaUIsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2xELElBQUksaUJBQWlCLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDekMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDcEQ7U0FDSjtJQUNMLENBQUM7SUFFTyxnQkFBZ0I7UUFDcEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0UsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDNUMsT0FBTyxFQUFFLENBQUM7U0FDYjthQUFNO1lBQ0gsT0FBTyxRQUFRLENBQUMsS0FBSyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztTQUN0RDtJQUNMLENBQUM7O2dIQTVGUSxtQkFBbUIsa0JBYWhCLHFCQUFxQjtvR0FieEIsbUJBQW1CLG9EQ3JCaEMsK2tDQTJCQTsyRkROYSxtQkFBbUI7a0JBSi9CLFNBQVM7OzswQkFpQkQsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBtZXJnZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0ZpbHRlckdyb3VwQ29uZGl0aW9uRmllbGR9IGZyb20gJy4uLy4uL3NlYXJjaC9jbGFzc2VzL2dyYXBocWwtZG9jdHJpbmUudHlwZXMnO1xuaW1wb3J0IHtOYXR1cmFsRHJvcGRvd25SZWZ9IGZyb20gJy4uLy4uL3NlYXJjaC9kcm9wZG93bi1jb250YWluZXIvZHJvcGRvd24tcmVmJztcbmltcG9ydCB7TkFUVVJBTF9EUk9QRE9XTl9EQVRBLCBOYXR1cmFsRHJvcGRvd25EYXRhfSBmcm9tICcuLi8uLi9zZWFyY2gvZHJvcGRvd24tY29udGFpbmVyL2Ryb3Bkb3duLnNlcnZpY2UnO1xuaW1wb3J0IHtEcm9wZG93bkNvbXBvbmVudH0gZnJvbSAnLi4vLi4vc2VhcmNoL3R5cGVzL2Ryb3Bkb3duLWNvbXBvbmVudCc7XG5pbXBvcnQge3Bvc3NpYmxlQ29tcGFyYWJsZU9wZXJhdG9ycywgUG9zc2libGVDb21wYXJhYmxlT3BlcnRvcktleXN9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7SW52YWxpZFdpdGhWYWx1ZVN0YXRlTWF0Y2hlcn0gZnJvbSAnLi4vdHlwZS10ZXh0L3R5cGUtdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHtkZWNpbWFsfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL3ZhbGlkYXRvcnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVOdW1iZXJDb25maWd1cmF0aW9uIHtcbiAgICBtaW4/OiBudW1iZXIgfCBudWxsO1xuICAgIG1heD86IG51bWJlciB8IG51bGw7XG4gICAgc3RlcD86IG51bWJlciB8IG51bGw7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiAnLi90eXBlLW51bWJlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdHlwZS1udW1iZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVHlwZU51bWJlckNvbXBvbmVudCBpbXBsZW1lbnRzIERyb3Bkb3duQ29tcG9uZW50IHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgcmVuZGVyZWRWYWx1ZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbmZpZ3VyYXRpb246IFR5cGVOdW1iZXJDb25maWd1cmF0aW9uID0ge307XG4gICAgcHVibGljIHJlYWRvbmx5IG9wZXJhdG9yQ3RybCA9IG5ldyBGb3JtQ29udHJvbDxQb3NzaWJsZUNvbXBhcmFibGVPcGVydG9yS2V5cz4oJ2VxdWFsJywge25vbk51bGxhYmxlOiB0cnVlfSk7XG4gICAgcHVibGljIHJlYWRvbmx5IHZhbHVlQ3RybCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICAgIHB1YmxpYyByZWFkb25seSBtYXRjaGVyID0gbmV3IEludmFsaWRXaXRoVmFsdWVTdGF0ZU1hdGNoZXIoKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgZm9ybSA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICBvcGVyYXRvcjogdGhpcy5vcGVyYXRvckN0cmwsXG4gICAgICAgIHZhbHVlOiB0aGlzLnZhbHVlQ3RybCxcbiAgICB9KTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgb3BlcmF0b3JzID0gcG9zc2libGVDb21wYXJhYmxlT3BlcmF0b3JzO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KE5BVFVSQUxfRFJPUERPV05fREFUQSkgZGF0YTogTmF0dXJhbERyb3Bkb3duRGF0YTxUeXBlTnVtYmVyQ29uZmlndXJhdGlvbj4sXG4gICAgICAgIHByb3RlY3RlZCBkcm9wZG93blJlZjogTmF0dXJhbERyb3Bkb3duUmVmLFxuICAgICkge1xuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSBkYXRhLmNvbmZpZ3VyYXRpb24gfHwge307XG5cbiAgICAgICAgbWVyZ2UodGhpcy5vcGVyYXRvckN0cmwudmFsdWVDaGFuZ2VzLCB0aGlzLnZhbHVlQ3RybC52YWx1ZUNoYW5nZXMpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZW5kZXJlZCA9IHRoaXMuZ2V0UmVuZGVyZWRWYWx1ZSgpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlZFZhbHVlLm5leHQocmVuZGVyZWQpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmluaXRWYWxpZGF0b3JzKCk7XG4gICAgICAgIHRoaXMucmVsb2FkQ29uZGl0aW9uKGRhdGEuY29uZGl0aW9uKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q29uZGl0aW9uKCk6IEZpbHRlckdyb3VwQ29uZGl0aW9uRmllbGQge1xuICAgICAgICBjb25zdCBjb25kaXRpb246IEZpbHRlckdyb3VwQ29uZGl0aW9uRmllbGQgPSB7fTtcbiAgICAgICAgY29uZGl0aW9uW3RoaXMub3BlcmF0b3JDdHJsLnZhbHVlXSA9IHtcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLnZhbHVlQ3RybC52YWx1ZSxcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gY29uZGl0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1ZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLnZhbGlkO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0RpcnR5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLmRpcnR5O1xuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duUmVmLmNsb3NlKHtjb25kaXRpb246IHRoaXMuZ2V0Q29uZGl0aW9uKCl9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd25SZWYuY2xvc2UoKTsgLy8gdW5kZWZpbmVkIHZhbHVlLCBkaXNjYXJkIGNoYW5nZXMgLyBwcmV2ZW50IHRvIGFkZCBhIGNvbmRpdGlvbiAob24gbmV3IGZpZWxkc1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0VmFsaWRhdG9ycygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmFsaWRhdG9yczogVmFsaWRhdG9yRm5bXSA9IFtWYWxpZGF0b3JzLnJlcXVpcmVkXTtcbiAgICAgICAgaWYgKHRoaXMuY29uZmlndXJhdGlvbi5taW4pIHtcbiAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1pbih0aGlzLmNvbmZpZ3VyYXRpb24ubWluKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uLm1heCkge1xuICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4KHRoaXMuY29uZmlndXJhdGlvbi5tYXgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb24uc3RlcCkge1xuICAgICAgICAgICAgY29uc3QgZGVjaW1hbHMgPSAoJycgKyB0aGlzLmNvbmZpZ3VyYXRpb24uc3RlcCkubWF0Y2goL1xcLihcXGQrKSQvKT8uWzFdID8/ICcnO1xuICAgICAgICAgICAgY29uc3QgZGVjaW1hbENvdW50ID0gZGVjaW1hbHMubGVuZ3RoO1xuICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKGRlY2ltYWwoZGVjaW1hbENvdW50KSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnZhbHVlQ3RybC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVsb2FkQ29uZGl0aW9uKGNvbmRpdGlvbjogRmlsdGVyR3JvdXBDb25kaXRpb25GaWVsZCB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFjb25kaXRpb24pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3Qgb3BlcmF0b3Igb2YgdGhpcy5vcGVyYXRvcnMpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlbG9hZGVkQ29uZGl0aW9uID0gY29uZGl0aW9uW29wZXJhdG9yLmtleV07XG4gICAgICAgICAgICBpZiAocmVsb2FkZWRDb25kaXRpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wZXJhdG9yQ3RybC5zZXRWYWx1ZShvcGVyYXRvci5rZXkpO1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWVDdHJsLnNldFZhbHVlKHJlbG9hZGVkQ29uZGl0aW9uLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UmVuZGVyZWRWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBvcGVyYXRvciA9IHRoaXMub3BlcmF0b3JzLmZpbmQodiA9PiB2LmtleSA9PT0gdGhpcy5vcGVyYXRvckN0cmwudmFsdWUpO1xuICAgICAgICBpZiAodGhpcy52YWx1ZUN0cmwudmFsdWUgPT09IG51bGwgfHwgIW9wZXJhdG9yKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gb3BlcmF0b3IubGFiZWwgKyAnICcgKyB0aGlzLnZhbHVlQ3RybC52YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICAgIDxtYXQtZm9ybS1maWVsZCBzdHlsZT1cIm1heC13aWR0aDogNGVtOyBtYXJnaW4tcmlnaHQ6IDFlbVwiPlxuICAgICAgICA8bWF0LWxhYmVsIGkxOG49XCJNYXRoZW1hdGljYWwgb3BlcmF0b3IgPCA+ID1cIj5PcMOpcmF0ZXVyPC9tYXQtbGFiZWw+XG4gICAgICAgIDxtYXQtc2VsZWN0IFtmb3JtQ29udHJvbF09XCJvcGVyYXRvckN0cmxcIiBbcmVxdWlyZWRdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2Ygb3BlcmF0b3JzXCIgW3ZhbHVlXT1cIml0ZW0ua2V5XCI+XG4gICAgICAgICAgICAgICAge3sgaXRlbS5sYWJlbCB9fVxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1sYWJlbCBpMThuPlZhbGV1cjwvbWF0LWxhYmVsPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cImNsb3NlKClcIlxuICAgICAgICAgICAgW2Vycm9yU3RhdGVNYXRjaGVyXT1cIm1hdGNoZXJcIlxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInZhbHVlQ3RybFwiXG4gICAgICAgICAgICBbYXR0ci5tYXhdPVwiY29uZmlndXJhdGlvbi5tYXhcIlxuICAgICAgICAgICAgW2F0dHIubWluXT1cImNvbmZpZ3VyYXRpb24ubWluXCJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtzdGVwXT1cImNvbmZpZ3VyYXRpb24uc3RlcFwiXG4gICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgIC8+XG4gICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJ2YWx1ZUN0cmwuaGFzRXJyb3IoJ21pbicpXCI+PCB7eyBjb25maWd1cmF0aW9uLm1pbiB9fTwvbWF0LWVycm9yPlxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwidmFsdWVDdHJsLmhhc0Vycm9yKCdtYXgnKVwiPj4ge3sgY29uZmlndXJhdGlvbi5tYXggfX08L21hdC1lcnJvcj5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuPC9mb3JtPlxuIl19
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1udW1iZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvZHJvcGRvd24tY29tcG9uZW50cy90eXBlLW51bWJlci90eXBlLW51bWJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9kcm9wZG93bi1jb21wb25lbnRzL3R5cGUtbnVtYmVyL3R5cGUtbnVtYmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBQyxXQUFXLEVBQUUsU0FBUyxFQUFlLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQy9FLE9BQU8sRUFBQyxlQUFlLEVBQUUsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRzVDLE9BQU8sRUFBQyxxQkFBcUIsRUFBc0IsTUFBTSxrREFBa0QsQ0FBQztBQUU1RyxPQUFPLEVBQUMsMkJBQTJCLEVBQWdDLE1BQU0sVUFBVSxDQUFDO0FBQ3BGLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7O0FBWXBELE1BQU0sT0FBTyxtQkFBbUI7SUFrQjVCLFlBQ21DLElBQWtELEVBQ3ZFLFdBQStCO1FBQS9CLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQW5CN0Isa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUVoRCxpQkFBWSxHQUFHLElBQUksV0FBVyxDQUFnQyxPQUFPLEVBQUUsRUFBQyxXQUFXLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUM1RixjQUFTLEdBQUcs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QVMsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVPLGVBQWUsQ0FBQyxTQUEyQztRQUMvRCxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ1osT0FBTztTQUNWO1FBRUQsS0FBSyxNQUFNLFFBQVEsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ25DLE1BQU0saUJBQWlCLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNsRCxJQUFJLGlCQUFpQixFQUFFO2dCQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3BEO1NBQ0o7SUFDTCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3BCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdFLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQzVDLE9BQU8sRUFBRSxDQUFDO1NBQ2I7YUFBTTtZQUNILE9BQU8sUUFBUSxDQUFDLEtBQUssR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7U0FDdEQ7SUFDTCxDQUFDOztnSEFsR1EsbUJBQW1CLGtCQW1CaEIscUJBQXFCO29HQW5CeEIsbUJBQW1CLG9EQ3JCaEMsK2tDQTJCQTsyRkROYSxtQkFBbUI7a0JBSi9CLFNBQVM7OzswQkF1QkQsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBtZXJnZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0ZpbHRlckdyb3VwQ29uZGl0aW9uRmllbGR9IGZyb20gJy4uLy4uL3NlYXJjaC9jbGFzc2VzL2dyYXBocWwtZG9jdHJpbmUudHlwZXMnO1xuaW1wb3J0IHtOYXR1cmFsRHJvcGRvd25SZWZ9IGZyb20gJy4uLy4uL3NlYXJjaC9kcm9wZG93bi1jb250YWluZXIvZHJvcGRvd24tcmVmJztcbmltcG9ydCB7TkFUVVJBTF9EUk9QRE9XTl9EQVRBLCBOYXR1cmFsRHJvcGRvd25EYXRhfSBmcm9tICcuLi8uLi9zZWFyY2gvZHJvcGRvd24tY29udGFpbmVyL2Ryb3Bkb3duLnNlcnZpY2UnO1xuaW1wb3J0IHtEcm9wZG93bkNvbXBvbmVudH0gZnJvbSAnLi4vLi4vc2VhcmNoL3R5cGVzL2Ryb3Bkb3duLWNvbXBvbmVudCc7XG5pbXBvcnQge3Bvc3NpYmxlQ29tcGFyYWJsZU9wZXJhdG9ycywgUG9zc2libGVDb21wYXJhYmxlT3BlcnRvcktleXN9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7SW52YWxpZFdpdGhWYWx1ZVN0YXRlTWF0Y2hlcn0gZnJvbSAnLi4vdHlwZS10ZXh0L3R5cGUtdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHtkZWNpbWFsfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL3ZhbGlkYXRvcnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVOdW1iZXJDb25maWd1cmF0aW9uIHtcbiAgICBtaW4/OiBudW1iZXIgfCBudWxsO1xuICAgIG1heD86IG51bWJlciB8IG51bGw7XG4gICAgc3RlcD86IG51bWJlciB8IG51bGw7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiAnLi90eXBlLW51bWJlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdHlwZS1udW1iZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVHlwZU51bWJlckNvbXBvbmVudCBpbXBsZW1lbnRzIERyb3Bkb3duQ29tcG9uZW50IHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgcmVuZGVyZWRWYWx1ZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbmZpZ3VyYXRpb246IFJlcXVpcmVkPFR5cGVOdW1iZXJDb25maWd1cmF0aW9uPjtcbiAgICBwdWJsaWMgcmVhZG9ubHkgb3BlcmF0b3JDdHJsID0gbmV3IEZvcm1Db250cm9sPFBvc3NpYmxlQ29tcGFyYWJsZU9wZXJ0b3JLZXlzPignZXF1YWwnLCB7bm9uTnVsbGFibGU6IHRydWV9KTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgdmFsdWVDdHJsID0gbmV3IEZvcm1Db250cm9sKCk7XG4gICAgcHVibGljIHJlYWRvbmx5IG1hdGNoZXIgPSBuZXcgSW52YWxpZFdpdGhWYWx1ZVN0YXRlTWF0Y2hlcigpO1xuICAgIHB1YmxpYyByZWFkb25seSBmb3JtID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgIG9wZXJhdG9yOiB0aGlzLm9wZXJhdG9yQ3RybCxcbiAgICAgICAgdmFsdWU6IHRoaXMudmFsdWVDdHJsLFxuICAgIH0pO1xuICAgIHB1YmxpYyByZWFkb25seSBvcGVyYXRvcnMgPSBwb3NzaWJsZUNvbXBhcmFibGVPcGVyYXRvcnM7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRzOiBSZXF1aXJlZDxUeXBlTnVtYmVyQ29uZmlndXJhdGlvbj4gPSB7XG4gICAgICAgIG1pbjogbnVsbCxcbiAgICAgICAgbWF4OiBudWxsLFxuICAgICAgICBzdGVwOiBudWxsLFxuICAgIH07XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoTkFUVVJBTF9EUk9QRE9XTl9EQVRBKSBkYXRhOiBOYXR1cmFsRHJvcGRvd25EYXRhPFR5cGVOdW1iZXJDb25maWd1cmF0aW9uPixcbiAgICAgICAgcHJvdGVjdGVkIGRyb3Bkb3duUmVmOiBOYXR1cmFsRHJvcGRvd25SZWYsXG4gICAgKSB7XG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IHsuLi50aGlzLmRlZmF1bHRzLCAuLi5kYXRhLmNvbmZpZ3VyYXRpb259O1xuXG4gICAgICAgIG1lcmdlKHRoaXMub3BlcmF0b3JDdHJsLnZhbHVlQ2hhbmdlcywgdGhpcy52YWx1ZUN0cmwudmFsdWVDaGFuZ2VzKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVuZGVyZWQgPSB0aGlzLmdldFJlbmRlcmVkVmFsdWUoKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZWRWYWx1ZS5uZXh0KHJlbmRlcmVkKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5pbml0VmFsaWRhdG9ycygpO1xuICAgICAgICB0aGlzLnJlbG9hZENvbmRpdGlvbihkYXRhLmNvbmRpdGlvbik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENvbmRpdGlvbigpOiBGaWx0ZXJHcm91cENvbmRpdGlvbkZpZWxkIHtcbiAgICAgICAgY29uc3QgY29uZGl0aW9uOiBGaWx0ZXJHcm91cENvbmRpdGlvbkZpZWxkID0ge307XG4gICAgICAgIGNvbmRpdGlvblt0aGlzLm9wZXJhdG9yQ3RybC52YWx1ZV0gPSB7XG4gICAgICAgICAgICB2YWx1ZTogdGhpcy52YWx1ZUN0cmwudmFsdWUsXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIGNvbmRpdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNWYWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS52YWxpZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNEaXJ0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5kaXJ0eTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93blJlZi5jbG9zZSh7Y29uZGl0aW9uOiB0aGlzLmdldENvbmRpdGlvbigpfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duUmVmLmNsb3NlKCk7IC8vIHVuZGVmaW5lZCB2YWx1ZSwgZGlzY2FyZCBjaGFuZ2VzIC8gcHJldmVudCB0byBhZGQgYSBjb25kaXRpb24gKG9uIG5ldyBmaWVsZHNcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdFZhbGlkYXRvcnMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbVmFsaWRhdG9ycy5yZXF1aXJlZF07XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb24ubWluKSB7XG4gICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW4odGhpcy5jb25maWd1cmF0aW9uLm1pbikpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuY29uZmlndXJhdGlvbi5tYXgpIHtcbiAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1heCh0aGlzLmNvbmZpZ3VyYXRpb24ubWF4KSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uLnN0ZXApIHtcbiAgICAgICAgICAgIGNvbnN0IGRlY2ltYWxzID0gKCcnICsgdGhpcy5jb25maWd1cmF0aW9uLnN0ZXApLm1hdGNoKC9cXC4oXFxkKykkLyk/LlsxXSA/PyAnJztcbiAgICAgICAgICAgIGNvbnN0IGRlY2ltYWxDb3VudCA9IGRlY2ltYWxzLmxlbmd0aDtcbiAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChkZWNpbWFsKGRlY2ltYWxDb3VudCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy52YWx1ZUN0cmwuc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbG9hZENvbmRpdGlvbihjb25kaXRpb246IEZpbHRlckdyb3VwQ29uZGl0aW9uRmllbGQgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIGlmICghY29uZGl0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IG9wZXJhdG9yIG9mIHRoaXMub3BlcmF0b3JzKSB7XG4gICAgICAgICAgICBjb25zdCByZWxvYWRlZENvbmRpdGlvbiA9IGNvbmRpdGlvbltvcGVyYXRvci5rZXldO1xuICAgICAgICAgICAgaWYgKHJlbG9hZGVkQ29uZGl0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVyYXRvckN0cmwuc2V0VmFsdWUob3BlcmF0b3Iua2V5KTtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlQ3RybC5zZXRWYWx1ZShyZWxvYWRlZENvbmRpdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFJlbmRlcmVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qgb3BlcmF0b3IgPSB0aGlzLm9wZXJhdG9ycy5maW5kKHYgPT4gdi5rZXkgPT09IHRoaXMub3BlcmF0b3JDdHJsLnZhbHVlKTtcbiAgICAgICAgaWYgKHRoaXMudmFsdWVDdHJsLnZhbHVlID09PSBudWxsIHx8ICFvcGVyYXRvcikge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG9wZXJhdG9yLmxhYmVsICsgJyAnICsgdGhpcy52YWx1ZUN0cmwudmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIj5cbiAgICA8bWF0LWZvcm0tZmllbGQgc3R5bGU9XCJtYXgtd2lkdGg6IDRlbTsgbWFyZ2luLXJpZ2h0OiAxZW1cIj5cbiAgICAgICAgPG1hdC1sYWJlbCBpMThuPVwiTWF0aGVtYXRpY2FsIG9wZXJhdG9yIDwgPiA9XCI+T3DDqXJhdGV1cjwvbWF0LWxhYmVsPlxuICAgICAgICA8bWF0LXNlbGVjdCBbZm9ybUNvbnRyb2xdPVwib3BlcmF0b3JDdHJsXCIgW3JlcXVpcmVkXT1cInRydWVcIj5cbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIG9wZXJhdG9yc1wiIFt2YWx1ZV09XCJpdGVtLmtleVwiPlxuICAgICAgICAgICAgICAgIHt7IGl0ZW0ubGFiZWwgfX1cbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtbGFiZWwgaTE4bj5WYWxldXI8L21hdC1sYWJlbD5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJjbG9zZSgpXCJcbiAgICAgICAgICAgIFtlcnJvclN0YXRlTWF0Y2hlcl09XCJtYXRjaGVyXCJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJ2YWx1ZUN0cmxcIlxuICAgICAgICAgICAgW2F0dHIubWF4XT1cImNvbmZpZ3VyYXRpb24ubWF4XCJcbiAgICAgICAgICAgIFthdHRyLm1pbl09XCJjb25maWd1cmF0aW9uLm1pblwiXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbc3RlcF09XCJjb25maWd1cmF0aW9uLnN0ZXBcIlxuICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAvPlxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwidmFsdWVDdHJsLmhhc0Vycm9yKCdtaW4nKVwiPjwge3sgY29uZmlndXJhdGlvbi5taW4gfX08L21hdC1lcnJvcj5cbiAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cInZhbHVlQ3RybC5oYXNFcnJvcignbWF4JylcIj4+IHt7IGNvbmZpZ3VyYXRpb24ubWF4IH19PC9tYXQtZXJyb3I+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbjwvZm9ybT5cbiJdfQ==
|
|
@@ -29,6 +29,7 @@ export class TypeSelectComponent extends NaturalAbstractController {
|
|
|
29
29
|
this.defaults = {
|
|
30
30
|
items: [],
|
|
31
31
|
multiple: true,
|
|
32
|
+
operators: true,
|
|
32
33
|
};
|
|
33
34
|
this.configuration = { ...this.defaults, ...data.configuration };
|
|
34
35
|
// Immediately initValidators and everytime the operator change later
|
|
@@ -77,7 +78,7 @@ export class TypeSelectComponent extends NaturalAbstractController {
|
|
|
77
78
|
this.valueCtrl.updateValueAndValidity();
|
|
78
79
|
}
|
|
79
80
|
isMultiple() {
|
|
80
|
-
return
|
|
81
|
+
return this.configuration.multiple;
|
|
81
82
|
}
|
|
82
83
|
getItemById(id) {
|
|
83
84
|
return this.items.find(item => this.getId(item) === id);
|
|
@@ -125,6 +126,9 @@ export class TypeSelectComponent extends NaturalAbstractController {
|
|
|
125
126
|
return [operator.label, selection].filter(v => v).join(' ');
|
|
126
127
|
}
|
|
127
128
|
conditionToOperatorKey(condition) {
|
|
129
|
+
if (!this.configuration.operators) {
|
|
130
|
+
return 'is';
|
|
131
|
+
}
|
|
128
132
|
if (condition.in && !condition.in.not) {
|
|
129
133
|
return 'is';
|
|
130
134
|
}
|
|
@@ -155,10 +159,10 @@ export class TypeSelectComponent extends NaturalAbstractController {
|
|
|
155
159
|
}
|
|
156
160
|
}
|
|
157
161
|
TypeSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: TypeSelectComponent, deps: [{ token: NATURAL_DROPDOWN_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
158
|
-
TypeSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: TypeSelectComponent, selector: "ng-component", viewQueries: [{ propertyName: "list", first: true, predicate: MatSelectionList, descendants: true }], usesInheritance: true, ngImport: i0, template: "<form [formGroup]=\"form\">\n <mat-form-field style=\"max-width: 7em; margin-right: 1em\">\n <mat-label i18n=\"Mathematical operator < > =\">Op\u00E9rateur</mat-label>\n <mat-select [formControl]=\"operatorCtrl\" [required]=\"true\">\n <mat-option *ngFor=\"let item of operators\" [value]=\"item.key\">\n {{ item.label }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-selection-list *ngIf=\"requireValueCtrl\" [formControl]=\"valueCtrl\">\n <mat-list-option *ngFor=\"let item of items\" [value]=\"getId(item)\" checkboxPosition=\"before\">\n {{ getDisplay(item) }}\n </mat-list-option>\n </mat-selection-list>\n</form>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i4.MatSelectionList, selector: "mat-selection-list", inputs: ["disableRipple", "color", "compareWith", "disabled", "multiple"], outputs: ["selectionChange"], exportAs: ["matSelectionList"] }, { kind: "component", type: i4.MatListOption, selector: "mat-list-option", inputs: ["disableRipple", "checkboxPosition", "color", "value", "disabled", "selected"], outputs: ["selectedChange"], exportAs: ["matListOption"] }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }] });
|
|
162
|
+
TypeSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: TypeSelectComponent, selector: "ng-component", viewQueries: [{ propertyName: "list", first: true, predicate: MatSelectionList, descendants: true }], usesInheritance: true, ngImport: i0, template: "<form [formGroup]=\"form\">\n <mat-form-field style=\"max-width: 7em; margin-right: 1em\" *ngIf=\"configuration.operators\">\n <mat-label i18n=\"Mathematical operator < > =\">Op\u00E9rateur</mat-label>\n <mat-select [formControl]=\"operatorCtrl\" [required]=\"true\">\n <mat-option *ngFor=\"let item of operators\" [value]=\"item.key\">\n {{ item.label }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-selection-list *ngIf=\"requireValueCtrl\" [formControl]=\"valueCtrl\">\n <mat-list-option *ngFor=\"let item of items\" [value]=\"getId(item)\" checkboxPosition=\"before\">\n {{ getDisplay(item) }}\n </mat-list-option>\n </mat-selection-list>\n</form>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i4.MatSelectionList, selector: "mat-selection-list", inputs: ["disableRipple", "color", "compareWith", "disabled", "multiple"], outputs: ["selectionChange"], exportAs: ["matSelectionList"] }, { kind: "component", type: i4.MatListOption, selector: "mat-list-option", inputs: ["disableRipple", "checkboxPosition", "color", "value", "disabled", "selected"], outputs: ["selectedChange"], exportAs: ["matListOption"] }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }] });
|
|
159
163
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: TypeSelectComponent, decorators: [{
|
|
160
164
|
type: Component,
|
|
161
|
-
args: [{ template: "<form [formGroup]=\"form\">\n <mat-form-field style=\"max-width: 7em; margin-right: 1em\">\n <mat-label i18n=\"Mathematical operator < > =\">Op\u00E9rateur</mat-label>\n <mat-select [formControl]=\"operatorCtrl\" [required]=\"true\">\n <mat-option *ngFor=\"let item of operators\" [value]=\"item.key\">\n {{ item.label }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-selection-list *ngIf=\"requireValueCtrl\" [formControl]=\"valueCtrl\">\n <mat-list-option *ngFor=\"let item of items\" [value]=\"getId(item)\" checkboxPosition=\"before\">\n {{ getDisplay(item) }}\n </mat-list-option>\n </mat-selection-list>\n</form>\n" }]
|
|
165
|
+
args: [{ template: "<form [formGroup]=\"form\">\n <mat-form-field style=\"max-width: 7em; margin-right: 1em\" *ngIf=\"configuration.operators\">\n <mat-label i18n=\"Mathematical operator < > =\">Op\u00E9rateur</mat-label>\n <mat-select [formControl]=\"operatorCtrl\" [required]=\"true\">\n <mat-option *ngFor=\"let item of operators\" [value]=\"item.key\">\n {{ item.label }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-selection-list *ngIf=\"requireValueCtrl\" [formControl]=\"valueCtrl\">\n <mat-list-option *ngFor=\"let item of items\" [value]=\"getId(item)\" checkboxPosition=\"before\">\n {{ getDisplay(item) }}\n </mat-list-option>\n </mat-selection-list>\n</form>\n" }]
|
|
162
166
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
163
167
|
type: Inject,
|
|
164
168
|
args: [NATURAL_DROPDOWN_DATA]
|
|
@@ -166,4 +170,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImpor
|
|
|
166
170
|
type: ViewChild,
|
|
167
171
|
args: [MatSelectionList, { static: false }]
|
|
168
172
|
}] } });
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvZHJvcGRvd24tY29tcG9uZW50cy90eXBlLXNlbGVjdC90eXBlLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9kcm9wZG93bi1jb21wb25lbnRzL3R5cGUtc2VsZWN0L3R5cGUtc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLE1BQU0sRUFBYSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFDLGVBQWUsRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRTVELE9BQU8sRUFBQyxxQkFBcUIsRUFBc0IsTUFBTSxrREFBa0QsQ0FBQztBQUU1RyxPQUFPLEVBQUMsV0FBVyxFQUFFLFNBQVMsRUFBZSxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUMvRSxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQXlELHlCQUF5QixFQUFDLE1BQU0sVUFBVSxDQUFDOzs7Ozs7OztBQXFCM0csTUFBTSxPQUFPLG1CQUNULFNBQVEseUJBQXlCO0lBc0JqQyxZQUFrRCxJQUFrRDtRQUNoRyxLQUFLLEVBQUUsQ0FBQztRQXBCSSxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBRXpELHFCQUFnQixHQUFH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WUFDbEMsS0FBSyxPQUFPO2dCQUNSLE9BQU8sRUFBQyxFQUFFLEVBQUUsRUFBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUMsRUFBQyxDQUFDO1lBQzdDLEtBQUssS0FBSztnQkFDTixPQUFPLEVBQUMsSUFBSSxFQUFFLEVBQUMsR0FBRyxFQUFFLElBQUksRUFBQyxFQUFDLENBQUM7WUFDL0IsS0FBSyxNQUFNO2dCQUNQLE9BQU8sRUFBQyxJQUFJLEVBQUUsRUFBQyxHQUFHLEVBQUUsS0FBSyxFQUFDLEVBQUMsQ0FBQztZQUNoQztnQkFDSSxNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixHQUFHLEdBQUcsQ0FBQyxDQUFDO1NBQzNEO0lBQ0wsQ0FBQzs7Z0hBbkxRLG1CQUFtQixrQkF1QkQscUJBQXFCO29HQXZCdkMsbUJBQW1CLDBGQUtqQixnQkFBZ0IsdUVDbkMvQiw0dEJBZ0JBOzJGRGNhLG1CQUFtQjtrQkFIL0IsU0FBUzs7OzBCQTBCYyxNQUFNOzJCQUFDLHFCQUFxQjs0Q0FsQkssSUFBSTtzQkFBeEQsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgSW5qZWN0LCBPbkRlc3Ryb3ksIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01hdFNlbGVjdGlvbkxpc3R9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIG1lcmdlLCBPYnNlcnZhYmxlLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0ZpbHRlckdyb3VwQ29uZGl0aW9uRmllbGQsIFNjYWxhcn0gZnJvbSAnLi4vLi4vc2VhcmNoL2NsYXNzZXMvZ3JhcGhxbC1kb2N0cmluZS50eXBlcyc7XG5pbXBvcnQge05BVFVSQUxfRFJPUERPV05fREFUQSwgTmF0dXJhbERyb3Bkb3duRGF0YX0gZnJvbSAnLi4vLi4vc2VhcmNoL2Ryb3Bkb3duLWNvbnRhaW5lci9kcm9wZG93bi5zZXJ2aWNlJztcbmltcG9ydCB7RHJvcGRvd25Db21wb25lbnR9IGZyb20gJy4uLy4uL3NlYXJjaC90eXBlcy9kcm9wZG93bi1jb21wb25lbnQnO1xuaW1wb3J0IHtGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtOYXR1cmFsQWJzdHJhY3RDb250cm9sbGVyfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Fic3RyYWN0LWNvbnRyb2xsZXInO1xuaW1wb3J0IHttYXAsIHN0YXJ0V2l0aCwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1Bvc3NpYmxlRGlzY3JldGVPcGVyYXRvciwgUG9zc2libGVEaXNjcmV0ZU9wZXJhdG9yS2V5cywgcG9zc2libGVEaXNjcmV0ZU9wZXJhdG9yc30gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgdHlwZSBUeXBlU2VsZWN0SXRlbSA9XG4gICAgfCBTY2FsYXJcbiAgICB8IHtcbiAgICAgICAgICBpZDogU2NhbGFyO1xuICAgICAgICAgIG5hbWU6IFNjYWxhcjtcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgICB2YWx1ZTogU2NhbGFyO1xuICAgICAgICAgIG5hbWU6IFNjYWxhcjtcbiAgICAgIH07XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZVNlbGVjdENvbmZpZ3VyYXRpb24ge1xuICAgIGl0ZW1zOiBUeXBlU2VsZWN0SXRlbVtdIHwgT2JzZXJ2YWJsZTxUeXBlU2VsZWN0SXRlbVtdPjtcbiAgICBtdWx0aXBsZT86IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiAnLi90eXBlLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFR5cGVTZWxlY3RDb21wb25lbnRcbiAgICBleHRlbmRzIE5hdHVyYWxBYnN0cmFjdENvbnRyb2xsZXJcbiAgICBpbXBsZW1lbnRzIERyb3Bkb3duQ29tcG9uZW50LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3lcbntcbiAgICBwdWJsaWMgcmVhZG9ubHkgcmVuZGVyZWRWYWx1ZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gICAgQFZpZXdDaGlsZChNYXRTZWxlY3Rpb25MaXN0LCB7c3RhdGljOiBmYWxzZX0pIHB1YmxpYyBsaXN0ITogTWF0U2VsZWN0aW9uTGlzdDtcbiAgICBwdWJsaWMgcmVxdWlyZVZhbHVlQ3RybCA9IGZhbHNlO1xuICAgIHB1YmxpYyByZWFkb25seSBvcGVyYXRvcnMgPSBwb3NzaWJsZURpc2NyZXRlT3BlcmF0b3JzO1xuICAgIHB1YmxpYyByZWFkb25seSBvcGVyYXRvckN0cmwgPSBuZXcgRm9ybUNvbnRyb2w8UG9zc2libGVEaXNjcmV0ZU9wZXJhdG9yS2V5cz4oJ2lzJywge25vbk51bGxhYmxlOiB0cnVlfSk7XG4gICAgcHVibGljIHJlYWRvbmx5IHZhbHVlQ3RybCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICAgIHB1YmxpYyByZWFkb25seSBmb3JtID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgIG9wZXJhdG9yOiB0aGlzLm9wZXJhdG9yQ3RybCxcbiAgICAgICAgdmFsdWU6IHRoaXMudmFsdWVDdHJsLFxuICAgIH0pO1xuXG4gICAgcHVibGljIGl0ZW1zOiBUeXBlU2VsZWN0SXRlbVtdID0gW107XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWd1cmF0aW9uOiBUeXBlU2VsZWN0Q29uZmlndXJhdGlvbjtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdHM6IFR5cGVTZWxlY3RDb25maWd1cmF0aW9uID0ge1xuICAgICAgICBpdGVtczogW10sXG4gICAgICAgIG11bHRpcGxlOiB0cnVlLFxuICAgIH07XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoQEluamVjdChOQVRVUkFMX0RST1BET1dOX0RBVEEpIGRhdGE6IE5hdHVyYWxEcm9wZG93bkRhdGE8VHlwZVNlbGVjdENvbmZpZ3VyYXRpb24+KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IHsuLi50aGlzLmRlZmF1bHRzLCAuLi5kYXRhLmNvbmZpZ3VyYXRpb259O1xuXG4gICAgICAgIC8vIEltbWVkaWF0ZWx5IGluaXRWYWxpZGF0b3JzIGFuZCBldmVyeXRpbWUgdGhlIG9wZXJhdG9yIGNoYW5nZSBsYXRlclxuICAgICAgICB0aGlzLm9wZXJhdG9yQ3RybC52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgobnVsbCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLmluaXRWYWxpZGF0b3JzKCkpO1xuXG4gICAgICAgIG1lcmdlKHRoaXMub3BlcmF0b3JDdHJsLnZhbHVlQ2hhbmdlcywgdGhpcy52YWx1ZUN0cmwudmFsdWVDaGFuZ2VzKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVuZGVyZWQgPSB0aGlzLmdldFJlbmRlcmVkVmFsdWUoKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZWRWYWx1ZS5uZXh0KHJlbmRlcmVkKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5yZWxvYWRDb25kaXRpb24oZGF0YS5jb25kaXRpb24pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc011bHRpcGxlKCkgJiYgdGhpcy5saXN0KSB7XG4gICAgICAgICAgICAodGhpcy5saXN0LnNlbGVjdGVkT3B0aW9ucyBhcyBhbnkpLl9tdWx0aXBsZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldElkKGl0ZW06IFR5cGVTZWxlY3RJdGVtKTogU2NhbGFyIHtcbiAgICAgICAgaWYgKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiBpdGVtKSB7XG4gICAgICAgICAgICByZXR1cm4gKGl0ZW0gYXMgYW55KS5pZCB8fCAoaXRlbSBhcyBhbnkpLnZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGl0ZW0gYXMgU2NhbGFyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXREaXNwbGF5KGl0ZW06IFR5cGVTZWxlY3RJdGVtKTogU2NhbGFyIHtcbiAgICAgICAgaWYgKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiBpdGVtICYmIGl0ZW0ubmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW0ubmFtZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpdGVtIGFzIFNjYWxhcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q29uZGl0aW9uKCk6IEZpbHRlckdyb3VwQ29uZGl0aW9uRmllbGQge1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLnZhbHVlQ3RybC52YWx1ZTtcbiAgICAgICAgcmV0dXJuIHRoaXMub3BlcmF0b3JLZXlUb0NvbmRpdGlvbih0aGlzLm9wZXJhdG9yQ3RybC52YWx1ZSwgdmFsdWVzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNWYWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS52YWxpZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNEaXJ0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5kaXJ0eTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRWYWxpZGF0b3JzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCB3aGl0ZWxpc3Q6IFBvc3NpYmxlRGlzY3JldGVPcGVyYXRvcktleXNbXSA9IFsnaXMnLCAnaXNub3QnXTtcbiAgICAgICAgdGhpcy5yZXF1aXJlVmFsdWVDdHJsID0gd2hpdGVsaXN0LmluY2x1ZGVzKHRoaXMub3BlcmF0b3JDdHJsLnZhbHVlKTtcbiAgICAgICAgY29uc3QgdmFsaWRhdG9yczogVmFsaWRhdG9yRm5bXSA9IHRoaXMucmVxdWlyZVZhbHVlQ3RybCA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSA6IFtdO1xuXG4gICAgICAgIHRoaXMudmFsdWVDdHJsLnNldFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XG4gICAgICAgIHRoaXMudmFsdWVDdHJsLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzTXVsdGlwbGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuY29uZmlndXJhdGlvbi5tdWx0aXBsZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEl0ZW1CeUlkKGlkOiBTY2FsYXIpOiBUeXBlU2VsZWN0SXRlbSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLml0ZW1zLmZpbmQoaXRlbSA9PiB0aGlzLmdldElkKGl0ZW0pID09PSBpZCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWxvYWRDb25kaXRpb24oY29uZGl0aW9uOiBGaWx0ZXJHcm91cENvbmRpdGlvbkZpZWxkIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICBpZiAoY29uZGl0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBvcGVyYXRvcktleSA9IHRoaXMuY29uZGl0aW9uVG9PcGVyYXRvcktleShjb25kaXRpb24pO1xuICAgICAgICAgICAgdGhpcy5vcGVyYXRvckN0cmwuc2V0VmFsdWUob3BlcmF0b3JLZXkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQWx3YXlzIHJlbG9hZCB2YWx1ZSwgZXZlbiB3aXRob3V0IGNvbmRpdGlvbiBiZWNhdXNlIHdlIG5lZWQgdG8gbG9hZCBsaXN0IG9mIGF2YWlsYWJsZSBpdGVtcyBpbiBhbGwgY2FzZXNcbiAgICAgICAgdGhpcy5yZWxvYWRWYWx1ZShjb25kaXRpb24pLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlQ3RybC5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVkVmFsdWUubmV4dCh0aGlzLmdldFJlbmRlcmVkVmFsdWUoKSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbG9hZCB0aGUgdmFsdWUgZnJvbSBBUEkgKGBvcGVyYXRvckN0cmxgIHNob3VsZCBub3QgYmUgdG91Y2hlZClcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlbG9hZFZhbHVlKGNvbmRpdGlvbjogRmlsdGVyR3JvdXBDb25kaXRpb25GaWVsZCB8IG51bGwpOiBPYnNlcnZhYmxlPFNjYWxhcltdPiB7XG4gICAgICAgIGNvbnN0IHdhbnRlZElkcyA9IGNvbmRpdGlvbj8uaW4/LnZhbHVlcyA/PyBbXTtcblxuICAgICAgICBjb25zdCBpdGVtcyQgPSBBcnJheS5pc0FycmF5KHRoaXMuY29uZmlndXJhdGlvbi5pdGVtcylcbiAgICAgICAgICAgID8gb2YodGhpcy5jb25maWd1cmF0aW9uLml0ZW1zKVxuICAgICAgICAgICAgOiB0aGlzLmNvbmZpZ3VyYXRpb24uaXRlbXM7XG5cbiAgICAgICAgcmV0dXJuIGl0ZW1zJC5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG4gICAgICAgICAgICBtYXAoaXRlbXMgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMgPSBpdGVtcztcblxuICAgICAgICAgICAgICAgIC8vIFJlbG9hZCBzZWxlY3Rpb24sIGFjY29yZGluZyB0byBwb3NzaWJsZSB2YWx1ZXMgZnJvbSBjb25maWd1cmF0aW9uXG4gICAgICAgICAgICAgICAgY29uc3QgcG9zc2libGVJZHMgPSB0aGlzLml0ZW1zLm1hcChpdGVtID0+IHRoaXMuZ2V0SWQoaXRlbSkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHdhbnRlZEFuZFBvc3NpYmxlSWRzID0gd2FudGVkSWRzLmZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgaWQgPT4gdHlwZW9mIHBvc3NpYmxlSWRzLmZpbmQoaSA9PiBpID09PSBpZCkgIT09ICd1bmRlZmluZWQnLFxuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gd2FudGVkQW5kUG9zc2libGVJZHM7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFJlbmRlcmVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qgb3BlcmF0b3IgPSB0aGlzLm9wZXJhdG9ycy5maW5kKHYgPT4gdi5rZXkgPT09IHRoaXMub3BlcmF0b3JDdHJsLnZhbHVlKTtcbiAgICAgICAgaWYgKCFvcGVyYXRvciB8fCAhdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9XG4gICAgICAgICAgICB0aGlzLnZhbHVlQ3RybC52YWx1ZVxuICAgICAgICAgICAgICAgID8ubWFwKChpZDogU2NhbGFyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmdldEl0ZW1CeUlkKGlkKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldERpc3BsYXkoaXRlbSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5qb2luKCcsICcpID8/IG51bGw7XG5cbiAgICAgICAgcmV0dXJuIFtvcGVyYXRvci5sYWJlbCwgc2VsZWN0aW9uXS5maWx0ZXIodiA9PiB2KS5qb2luKCcgJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb25kaXRpb25Ub09wZXJhdG9yS2V5KGNvbmRpdGlvbjogRmlsdGVyR3JvdXBDb25kaXRpb25GaWVsZCk6IFBvc3NpYmxlRGlzY3JldGVPcGVyYXRvcktleXMge1xuICAgICAgICBpZiAoY29uZGl0aW9uLmluICYmICFjb25kaXRpb24uaW4ubm90KSB7XG4gICAgICAgICAgICByZXR1cm4gJ2lzJztcbiAgICAgICAgfSBlbHNlIGlmIChjb25kaXRpb24uaW4gJiYgY29uZGl0aW9uLmluLm5vdCkge1xuICAgICAgICAgICAgcmV0dXJuICdpc25vdCc7XG4gICAgICAgIH0gZWxzZSBpZiAoY29uZGl0aW9uLm51bGwgJiYgY29uZGl0aW9uLm51bGwubm90KSB7XG4gICAgICAgICAgICByZXR1cm4gJ2FueSc7XG4gICAgICAgIH0gZWxzZSBpZiAoY29uZGl0aW9uLm51bGwgJiYgIWNvbmRpdGlvbi5udWxsLm5vdCkge1xuICAgICAgICAgICAgcmV0dXJuICdub25lJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAnaXMnO1xuICAgIH1cblxuICAgIHByaXZhdGUgb3BlcmF0b3JLZXlUb0NvbmRpdGlvbihrZXk6IFBvc3NpYmxlRGlzY3JldGVPcGVyYXRvcktleXMsIHZhbHVlczogU2NhbGFyW10pOiBGaWx0ZXJHcm91cENvbmRpdGlvbkZpZWxkIHtcbiAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ2lzJzpcbiAgICAgICAgICAgICAgICByZXR1cm4ge2luOiB7dmFsdWVzOiB2YWx1ZXN9fTtcbiAgICAgICAgICAgIGNhc2UgJ2lzbm90JzpcbiAgICAgICAgICAgICAgICByZXR1cm4ge2luOiB7dmFsdWVzOiB2YWx1ZXMsIG5vdDogdHJ1ZX19O1xuICAgICAgICAgICAgY2FzZSAnYW55JzpcbiAgICAgICAgICAgICAgICByZXR1cm4ge251bGw6IHtub3Q6IHRydWV9fTtcbiAgICAgICAgICAgIGNhc2UgJ25vbmUnOlxuICAgICAgICAgICAgICAgIHJldHVybiB7bnVsbDoge25vdDogZmFsc2V9fTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCBvcGVyYXRvciBrZXk6ICcgKyBrZXkpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkIHN0eWxlPVwibWF4LXdpZHRoOiA3ZW07IG1hcmdpbi1yaWdodDogMWVtXCI+XG4gICAgICAgIDxtYXQtbGFiZWwgaTE4bj1cIk1hdGhlbWF0aWNhbCBvcGVyYXRvciA8ID4gPVwiPk9ww6lyYXRldXI8L21hdC1sYWJlbD5cbiAgICAgICAgPG1hdC1zZWxlY3QgW2Zvcm1Db250cm9sXT1cIm9wZXJhdG9yQ3RybFwiIFtyZXF1aXJlZF09XCJ0cnVlXCI+XG4gICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBvcGVyYXRvcnNcIiBbdmFsdWVdPVwiaXRlbS5rZXlcIj5cbiAgICAgICAgICAgICAgICB7eyBpdGVtLmxhYmVsIH19XG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgPG1hdC1zZWxlY3Rpb24tbGlzdCAqbmdJZj1cInJlcXVpcmVWYWx1ZUN0cmxcIiBbZm9ybUNvbnRyb2xdPVwidmFsdWVDdHJsXCI+XG4gICAgICAgIDxtYXQtbGlzdC1vcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIiBbdmFsdWVdPVwiZ2V0SWQoaXRlbSlcIiBjaGVja2JveFBvc2l0aW9uPVwiYmVmb3JlXCI+XG4gICAgICAgICAgICB7eyBnZXREaXNwbGF5KGl0ZW0pIH19XG4gICAgICAgIDwvbWF0LWxpc3Qtb3B0aW9uPlxuICAgIDwvbWF0LXNlbGVjdGlvbi1saXN0PlxuPC9mb3JtPlxuIl19
|
|
173
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvZHJvcGRvd24tY29tcG9uZW50cy90eXBlLXNlbGVjdC90eXBlLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9kcm9wZG93bi1jb21wb25lbnRzL3R5cGUtc2VsZWN0L3R5cGUtc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLE1BQU0sRUFBYSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFDLGVBQWUsRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRTVELE9BQU8sRUFBQyxxQkFBcUIsRUFBc0IsTUFBTSxrREFBa0QsQ0FBQztBQUU1RyxPQUFPLEVBQUMsV0FBVyxFQUFFLFNBQVMsRUFBZSxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUMvRSxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQStCLHlCQUF5QixFQUFDLE1BQU0sVUFBVSxDQUFDOzs7Ozs7OztBQXlCakYsTUFBTSxPQUFPLG1CQUNULFNBQVEseUJBQXlCO0lBdUJqQyxZQUFrRCxJQUFrRDtRQUNoRyxLQUFLLEVBQUUsQ0FBQztRQXJCSSxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBRXpELHFCQUFnQixHQUFH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RUFBRTtZQUNULEtBQUssSUFBSTtnQkFDTCxPQUFPLEVBQUMsRUFBRSxFQUFFLEVBQUMsTUFBTSxFQUFFLE1BQU0sRUFBQyxFQUFDLENBQUM7WUFDbEMsS0FBSyxPQUFPO2dCQUNSLE9BQU8sRUFBQyxFQUFFLEVBQUUsRUFBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUMsRUFBQyxDQUFDO1lBQzdDLEtBQUssS0FBSztnQkFDTixPQUFPLEVBQUMsSUFBSSxFQUFFLEVBQUMsR0FBRyxFQUFFLElBQUksRUFBQyxFQUFDLENBQUM7WUFDL0IsS0FBSyxNQUFNO2dCQUNQLE9BQU8sRUFBQyxJQUFJLEVBQUUsRUFBQyxHQUFHLEVBQUUsS0FBSyxFQUFDLEVBQUMsQ0FBQztZQUNoQztnQkFDSSxNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixHQUFHLEdBQUcsQ0FBQyxDQUFDO1NBQzNEO0lBQ0wsQ0FBQzs7Z0hBeExRLG1CQUFtQixrQkF3QkQscUJBQXFCO29HQXhCdkMsbUJBQW1CLDBGQUtqQixnQkFBZ0IsdUVDdkMvQiw4dkJBZ0JBOzJGRGtCYSxtQkFBbUI7a0JBSC9CLFNBQVM7OzswQkEyQmMsTUFBTTsyQkFBQyxxQkFBcUI7NENBbkJLLElBQUk7c0JBQXhELFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEluamVjdCwgT25EZXN0cm95LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNYXRTZWxlY3Rpb25MaXN0fSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBtZXJnZSwgT2JzZXJ2YWJsZSwgb2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtGaWx0ZXJHcm91cENvbmRpdGlvbkZpZWxkLCBTY2FsYXJ9IGZyb20gJy4uLy4uL3NlYXJjaC9jbGFzc2VzL2dyYXBocWwtZG9jdHJpbmUudHlwZXMnO1xuaW1wb3J0IHtOQVRVUkFMX0RST1BET1dOX0RBVEEsIE5hdHVyYWxEcm9wZG93bkRhdGF9IGZyb20gJy4uLy4uL3NlYXJjaC9kcm9wZG93bi1jb250YWluZXIvZHJvcGRvd24uc2VydmljZSc7XG5pbXBvcnQge0Ryb3Bkb3duQ29tcG9uZW50fSBmcm9tICcuLi8uLi9zZWFyY2gvdHlwZXMvZHJvcGRvd24tY29tcG9uZW50JztcbmltcG9ydCB7Rm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TmF0dXJhbEFic3RyYWN0Q29udHJvbGxlcn0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9hYnN0cmFjdC1jb250cm9sbGVyJztcbmltcG9ydCB7bWFwLCBzdGFydFdpdGgsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtQb3NzaWJsZURpc2NyZXRlT3BlcmF0b3JLZXlzLCBwb3NzaWJsZURpc2NyZXRlT3BlcmF0b3JzfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCB0eXBlIFR5cGVTZWxlY3RJdGVtID1cbiAgICB8IFNjYWxhclxuICAgIHwge1xuICAgICAgICAgIGlkOiBTY2FsYXI7XG4gICAgICAgICAgbmFtZTogU2NhbGFyO1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICAgIHZhbHVlOiBTY2FsYXI7XG4gICAgICAgICAgbmFtZTogU2NhbGFyO1xuICAgICAgfTtcblxuZXhwb3J0IGludGVyZmFjZSBUeXBlU2VsZWN0Q29uZmlndXJhdGlvbiB7XG4gICAgaXRlbXM6IFR5cGVTZWxlY3RJdGVtW10gfCBPYnNlcnZhYmxlPFR5cGVTZWxlY3RJdGVtW10+O1xuICAgIG11bHRpcGxlPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBJZiB0cnVlIChkZWZhdWx0KSBhIHNlbGVjdGJveCBhbGxvd3MgdG8gY2hvb3NlIGFuIG9wZXJhdG9yLiBPdGhlcndpc2UsIHRoZSBzZWxlY3Rib3ggaXMgaGlkZGVuIGFuZCB0aGUgb3BlcmF0b3Igd2lsbCBhbHdheXMgYmUgYGlzYC5cbiAgICAgKi9cbiAgICBvcGVyYXRvcnM/OiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogJy4vdHlwZS1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBUeXBlU2VsZWN0Q29tcG9uZW50XG4gICAgZXh0ZW5kcyBOYXR1cmFsQWJzdHJhY3RDb250cm9sbGVyXG4gICAgaW1wbGVtZW50cyBEcm9wZG93bkNvbXBvbmVudCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XG57XG4gICAgcHVibGljIHJlYWRvbmx5IHJlbmRlcmVkVmFsdWUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuICAgIEBWaWV3Q2hpbGQoTWF0U2VsZWN0aW9uTGlzdCwge3N0YXRpYzogZmFsc2V9KSBwdWJsaWMgbGlzdCE6IE1hdFNlbGVjdGlvbkxpc3Q7XG4gICAgcHVibGljIHJlcXVpcmVWYWx1ZUN0cmwgPSBmYWxzZTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgb3BlcmF0b3JzID0gcG9zc2libGVEaXNjcmV0ZU9wZXJhdG9ycztcbiAgICBwdWJsaWMgcmVhZG9ubHkgb3BlcmF0b3JDdHJsID0gbmV3IEZvcm1Db250cm9sPFBvc3NpYmxlRGlzY3JldGVPcGVyYXRvcktleXM+KCdpcycsIHtub25OdWxsYWJsZTogdHJ1ZX0pO1xuICAgIHB1YmxpYyByZWFkb25seSB2YWx1ZUN0cmwgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgZm9ybSA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICBvcGVyYXRvcjogdGhpcy5vcGVyYXRvckN0cmwsXG4gICAgICAgIHZhbHVlOiB0aGlzLnZhbHVlQ3RybCxcbiAgICB9KTtcblxuICAgIHB1YmxpYyBpdGVtczogVHlwZVNlbGVjdEl0ZW1bXSA9IFtdO1xuICAgIHB1YmxpYyByZWFkb25seSBjb25maWd1cmF0aW9uOiBSZXF1aXJlZDxUeXBlU2VsZWN0Q29uZmlndXJhdGlvbj47XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRzOiBSZXF1aXJlZDxUeXBlU2VsZWN0Q29uZmlndXJhdGlvbj4gPSB7XG4gICAgICAgIGl0ZW1zOiBbXSxcbiAgICAgICAgbXVsdGlwbGU6IHRydWUsXG4gICAgICAgIG9wZXJhdG9yczogdHJ1ZSxcbiAgICB9O1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKEBJbmplY3QoTkFUVVJBTF9EUk9QRE9XTl9EQVRBKSBkYXRhOiBOYXR1cmFsRHJvcGRvd25EYXRhPFR5cGVTZWxlY3RDb25maWd1cmF0aW9uPikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSB7Li4udGhpcy5kZWZhdWx0cywgLi4uZGF0YS5jb25maWd1cmF0aW9ufTtcblxuICAgICAgICAvLyBJbW1lZGlhdGVseSBpbml0VmFsaWRhdG9ycyBhbmQgZXZlcnl0aW1lIHRoZSBvcGVyYXRvciBjaGFuZ2UgbGF0ZXJcbiAgICAgICAgdGhpcy5vcGVyYXRvckN0cmwudmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKG51bGwpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5pbml0VmFsaWRhdG9ycygpKTtcblxuICAgICAgICBtZXJnZSh0aGlzLm9wZXJhdG9yQ3RybC52YWx1ZUNoYW5nZXMsIHRoaXMudmFsdWVDdHJsLnZhbHVlQ2hhbmdlcykuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlbmRlcmVkID0gdGhpcy5nZXRSZW5kZXJlZFZhbHVlKCk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVkVmFsdWUubmV4dChyZW5kZXJlZCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMucmVsb2FkQ29uZGl0aW9uKGRhdGEuY29uZGl0aW9uKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNNdWx0aXBsZSgpICYmIHRoaXMubGlzdCkge1xuICAgICAgICAgICAgKHRoaXMubGlzdC5zZWxlY3RlZE9wdGlvbnMgYXMgYW55KS5fbXVsdGlwbGUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRJZChpdGVtOiBUeXBlU2VsZWN0SXRlbSk6IFNjYWxhciB7XG4gICAgICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiYgaXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuIChpdGVtIGFzIGFueSkuaWQgfHwgKGl0ZW0gYXMgYW55KS52YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpdGVtIGFzIFNjYWxhcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RGlzcGxheShpdGVtOiBUeXBlU2VsZWN0SXRlbSk6IFNjYWxhciB7XG4gICAgICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiYgaXRlbSAmJiBpdGVtLm5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiBpdGVtLm5hbWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaXRlbSBhcyBTY2FsYXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENvbmRpdGlvbigpOiBGaWx0ZXJHcm91cENvbmRpdGlvbkZpZWxkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmFsdWVzID0gdGhpcy52YWx1ZUN0cmwudmFsdWU7XG4gICAgICAgIHJldHVybiB0aGlzLm9wZXJhdG9yS2V5VG9Db25kaXRpb24odGhpcy5vcGVyYXRvckN0cmwudmFsdWUsIHZhbHVlcyk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0udmFsaWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGlzRGlydHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uZGlydHk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0VmFsaWRhdG9ycygpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgd2hpdGVsaXN0OiBQb3NzaWJsZURpc2NyZXRlT3BlcmF0b3JLZXlzW10gPSBbJ2lzJywgJ2lzbm90J107XG4gICAgICAgIHRoaXMucmVxdWlyZVZhbHVlQ3RybCA9IHdoaXRlbGlzdC5pbmNsdWRlcyh0aGlzLm9wZXJhdG9yQ3RybC52YWx1ZSk7XG4gICAgICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSB0aGlzLnJlcXVpcmVWYWx1ZUN0cmwgPyBbVmFsaWRhdG9ycy5yZXF1aXJlZF0gOiBbXTtcblxuICAgICAgICB0aGlzLnZhbHVlQ3RybC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xuICAgICAgICB0aGlzLnZhbHVlQ3RybC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc011bHRpcGxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25maWd1cmF0aW9uLm11bHRpcGxlO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0SXRlbUJ5SWQoaWQ6IFNjYWxhcik6IFR5cGVTZWxlY3RJdGVtIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXRlbXMuZmluZChpdGVtID0+IHRoaXMuZ2V0SWQoaXRlbSkgPT09IGlkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbG9hZENvbmRpdGlvbihjb25kaXRpb246IEZpbHRlckdyb3VwQ29uZGl0aW9uRmllbGQgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIGlmIChjb25kaXRpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IG9wZXJhdG9yS2V5ID0gdGhpcy5jb25kaXRpb25Ub09wZXJhdG9yS2V5KGNvbmRpdGlvbik7XG4gICAgICAgICAgICB0aGlzLm9wZXJhdG9yQ3RybC5zZXRWYWx1ZShvcGVyYXRvcktleSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBbHdheXMgcmVsb2FkIHZhbHVlLCBldmVuIHdpdGhvdXQgY29uZGl0aW9uIGJlY2F1c2Ugd2UgbmVlZCB0byBsb2FkIGxpc3Qgb2YgYXZhaWxhYmxlIGl0ZW1zIGluIGFsbCBjYXNlc1xuICAgICAgICB0aGlzLnJlbG9hZFZhbHVlKGNvbmRpdGlvbikuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgIHRoaXMudmFsdWVDdHJsLnNldFZhbHVlKHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZWRWYWx1ZS5uZXh0KHRoaXMuZ2V0UmVuZGVyZWRWYWx1ZSgpKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVsb2FkIHRoZSB2YWx1ZSBmcm9tIEFQSSAoYG9wZXJhdG9yQ3RybGAgc2hvdWxkIG5vdCBiZSB0b3VjaGVkKVxuICAgICAqL1xuICAgIHByaXZhdGUgcmVsb2FkVmFsdWUoY29uZGl0aW9uOiBGaWx0ZXJHcm91cENvbmRpdGlvbkZpZWxkIHwgbnVsbCk6IE9ic2VydmFibGU8U2NhbGFyW10+IHtcbiAgICAgICAgY29uc3Qgd2FudGVkSWRzID0gY29uZGl0aW9uPy5pbj8udmFsdWVzID8/IFtdO1xuXG4gICAgICAgIGNvbnN0IGl0ZW1zJCA9IEFycmF5LmlzQXJyYXkodGhpcy5jb25maWd1cmF0aW9uLml0ZW1zKVxuICAgICAgICAgICAgPyBvZih0aGlzLmNvbmZpZ3VyYXRpb24uaXRlbXMpXG4gICAgICAgICAgICA6IHRoaXMuY29uZmlndXJhdGlvbi5pdGVtcztcblxuICAgICAgICByZXR1cm4gaXRlbXMkLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSxcbiAgICAgICAgICAgIG1hcChpdGVtcyA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtcyA9IGl0ZW1zO1xuXG4gICAgICAgICAgICAgICAgLy8gUmVsb2FkIHNlbGVjdGlvbiwgYWNjb3JkaW5nIHRvIHBvc3NpYmxlIHZhbHVlcyBmcm9tIGNvbmZpZ3VyYXRpb25cbiAgICAgICAgICAgICAgICBjb25zdCBwb3NzaWJsZUlkcyA9IHRoaXMuaXRlbXMubWFwKGl0ZW0gPT4gdGhpcy5nZXRJZChpdGVtKSk7XG4gICAgICAgICAgICAgICAgY29uc3Qgd2FudGVkQW5kUG9zc2libGVJZHMgPSB3YW50ZWRJZHMuZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICBpZCA9PiB0eXBlb2YgcG9zc2libGVJZHMuZmluZChpID0+IGkgPT09IGlkKSAhPT0gJ3VuZGVmaW5lZCcsXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiB3YW50ZWRBbmRQb3NzaWJsZUlkcztcbiAgICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UmVuZGVyZWRWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBvcGVyYXRvciA9IHRoaXMub3BlcmF0b3JzLmZpbmQodiA9PiB2LmtleSA9PT0gdGhpcy5vcGVyYXRvckN0cmwudmFsdWUpO1xuICAgICAgICBpZiAoIW9wZXJhdG9yIHx8ICF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uID1cbiAgICAgICAgICAgIHRoaXMudmFsdWVDdHJsLnZhbHVlXG4gICAgICAgICAgICAgICAgPy5tYXAoKGlkOiBTY2FsYXIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuZ2V0SXRlbUJ5SWQoaWQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGlzcGxheShpdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmpvaW4oJywgJykgPz8gbnVsbDtcblxuICAgICAgICByZXR1cm4gW29wZXJhdG9yLmxhYmVsLCBzZWxlY3Rpb25dLmZpbHRlcih2ID0+IHYpLmpvaW4oJyAnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbmRpdGlvblRvT3BlcmF0b3JLZXkoY29uZGl0aW9uOiBGaWx0ZXJHcm91cENvbmRpdGlvbkZpZWxkKTogUG9zc2libGVEaXNjcmV0ZU9wZXJhdG9yS2V5cyB7XG4gICAgICAgIGlmICghdGhpcy5jb25maWd1cmF0aW9uLm9wZXJhdG9ycykge1xuICAgICAgICAgICAgcmV0dXJuICdpcyc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29uZGl0aW9uLmluICYmICFjb25kaXRpb24uaW4ubm90KSB7XG4gICAgICAgICAgICByZXR1cm4gJ2lzJztcbiAgICAgICAgfSBlbHNlIGlmIChjb25kaXRpb24uaW4gJiYgY29uZGl0aW9uLmluLm5vdCkge1xuICAgICAgICAgICAgcmV0dXJuICdpc25vdCc7XG4gICAgICAgIH0gZWxzZSBpZiAoY29uZGl0aW9uLm51bGwgJiYgY29uZGl0aW9uLm51bGwubm90KSB7XG4gICAgICAgICAgICByZXR1cm4gJ2FueSc7XG4gICAgICAgIH0gZWxzZSBpZiAoY29uZGl0aW9uLm51bGwgJiYgIWNvbmRpdGlvbi5udWxsLm5vdCkge1xuICAgICAgICAgICAgcmV0dXJuICdub25lJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAnaXMnO1xuICAgIH1cblxuICAgIHByaXZhdGUgb3BlcmF0b3JLZXlUb0NvbmRpdGlvbihrZXk6IFBvc3NpYmxlRGlzY3JldGVPcGVyYXRvcktleXMsIHZhbHVlczogU2NhbGFyW10pOiBGaWx0ZXJHcm91cENvbmRpdGlvbkZpZWxkIHtcbiAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ2lzJzpcbiAgICAgICAgICAgICAgICByZXR1cm4ge2luOiB7dmFsdWVzOiB2YWx1ZXN9fTtcbiAgICAgICAgICAgIGNhc2UgJ2lzbm90JzpcbiAgICAgICAgICAgICAgICByZXR1cm4ge2luOiB7dmFsdWVzOiB2YWx1ZXMsIG5vdDogdHJ1ZX19O1xuICAgICAgICAgICAgY2FzZSAnYW55JzpcbiAgICAgICAgICAgICAgICByZXR1cm4ge251bGw6IHtub3Q6IHRydWV9fTtcbiAgICAgICAgICAgIGNhc2UgJ25vbmUnOlxuICAgICAgICAgICAgICAgIHJldHVybiB7bnVsbDoge25vdDogZmFsc2V9fTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCBvcGVyYXRvciBrZXk6ICcgKyBrZXkpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkIHN0eWxlPVwibWF4LXdpZHRoOiA3ZW07IG1hcmdpbi1yaWdodDogMWVtXCIgKm5nSWY9XCJjb25maWd1cmF0aW9uLm9wZXJhdG9yc1wiPlxuICAgICAgICA8bWF0LWxhYmVsIGkxOG49XCJNYXRoZW1hdGljYWwgb3BlcmF0b3IgPCA+ID1cIj5PcMOpcmF0ZXVyPC9tYXQtbGFiZWw+XG4gICAgICAgIDxtYXQtc2VsZWN0IFtmb3JtQ29udHJvbF09XCJvcGVyYXRvckN0cmxcIiBbcmVxdWlyZWRdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2Ygb3BlcmF0b3JzXCIgW3ZhbHVlXT1cIml0ZW0ua2V5XCI+XG4gICAgICAgICAgICAgICAge3sgaXRlbS5sYWJlbCB9fVxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgIDxtYXQtc2VsZWN0aW9uLWxpc3QgKm5nSWY9XCJyZXF1aXJlVmFsdWVDdHJsXCIgW2Zvcm1Db250cm9sXT1cInZhbHVlQ3RybFwiPlxuICAgICAgICA8bWF0LWxpc3Qtb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCIgW3ZhbHVlXT1cImdldElkKGl0ZW0pXCIgY2hlY2tib3hQb3NpdGlvbj1cImJlZm9yZVwiPlxuICAgICAgICAgICAge3sgZ2V0RGlzcGxheShpdGVtKSB9fVxuICAgICAgICA8L21hdC1saXN0LW9wdGlvbj5cbiAgICA8L21hdC1zZWxlY3Rpb24tbGlzdD5cbjwvZm9ybT5cbiJdfQ==
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Directive, EventEmitter, HostListener, Inject, Input, Output, } from '@angular/core';
|
|
2
|
-
import { acceptType, createInvisibleFileInputWrap, detectSwipe, eventToFiles, fileListToArray, isFileInput, stopEvent, } from './utils';
|
|
2
|
+
import { acceptType, createInvisibleFileInputWrap, detectSwipe, eventToFiles, fileListToArray, isDirectory, isFileInput, stopEvent, } from './utils';
|
|
3
3
|
import { NaturalAbstractController } from '../../classes/abstract-controller';
|
|
4
4
|
import { DOCUMENT } from '@angular/common';
|
|
5
|
+
import { forkJoin, map, of, tap } from 'rxjs';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
import * as i1 from "./file.service";
|
|
7
8
|
/**
|
|
@@ -19,10 +20,6 @@ export class NaturalAbstractFile extends NaturalAbstractController {
|
|
|
19
20
|
this.element = element;
|
|
20
21
|
this.naturalFileService = naturalFileService;
|
|
21
22
|
this.document = document;
|
|
22
|
-
this.validators = [
|
|
23
|
-
{ name: 'accept', fn: this.acceptValidator },
|
|
24
|
-
{ name: 'fileSize', fn: this.fileSizeValidator },
|
|
25
|
-
];
|
|
26
23
|
/**
|
|
27
24
|
* Whether we should accept a single file or multiple files
|
|
28
25
|
*/
|
|
@@ -119,8 +116,7 @@ export class NaturalAbstractFile extends NaturalAbstractController {
|
|
|
119
116
|
valid: [],
|
|
120
117
|
invalid: [],
|
|
121
118
|
};
|
|
122
|
-
|
|
123
|
-
const error = this.validate(file);
|
|
119
|
+
forkJoin(files.map(file => this.validate(file).pipe(tap(error => {
|
|
124
120
|
if (error) {
|
|
125
121
|
selection.invalid.push({
|
|
126
122
|
file: file,
|
|
@@ -130,17 +126,18 @@ export class NaturalAbstractFile extends NaturalAbstractController {
|
|
|
130
126
|
else {
|
|
131
127
|
selection.valid.push(file);
|
|
132
128
|
}
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
}
|
|
137
|
-
if (selection.valid.length || selection.invalid.length) {
|
|
138
|
-
this.filesChange.emit(selection);
|
|
139
|
-
if (this.broadcast) {
|
|
140
|
-
this.naturalFileService.filesChanged.next(selection);
|
|
129
|
+
})))).subscribe(() => {
|
|
130
|
+
if (selection.valid.length) {
|
|
131
|
+
this.fileChange.emit(selection.valid[0]);
|
|
141
132
|
}
|
|
142
|
-
|
|
143
|
-
|
|
133
|
+
if (selection.valid.length || selection.invalid.length) {
|
|
134
|
+
this.filesChange.emit(selection);
|
|
135
|
+
if (this.broadcast) {
|
|
136
|
+
this.naturalFileService.filesChanged.next(selection);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
this.getFileElement().value = '';
|
|
140
|
+
});
|
|
144
141
|
}
|
|
145
142
|
/**
|
|
146
143
|
* Called when input has files
|
|
@@ -187,18 +184,18 @@ export class NaturalAbstractFile extends NaturalAbstractController {
|
|
|
187
184
|
this.handleFiles(files);
|
|
188
185
|
}
|
|
189
186
|
validate(file) {
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
187
|
+
return forkJoin({
|
|
188
|
+
accept: of(acceptType(this.accept, file.type, file.name)),
|
|
189
|
+
fileSize: of(!(this.maxSize && file.size > this.maxSize)),
|
|
190
|
+
directory: isDirectory(file),
|
|
191
|
+
}).pipe(map(result => {
|
|
192
|
+
for (const [key, value] of Object.entries(result)) {
|
|
193
|
+
if (!value) {
|
|
194
|
+
return key;
|
|
195
|
+
}
|
|
193
196
|
}
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
}
|
|
197
|
-
acceptValidator(item) {
|
|
198
|
-
return acceptType(this.accept, item.type, item.name);
|
|
199
|
-
}
|
|
200
|
-
fileSizeValidator(item) {
|
|
201
|
-
return !(this.maxSize && item.size > this.maxSize);
|
|
197
|
+
return null;
|
|
198
|
+
}));
|
|
202
199
|
}
|
|
203
200
|
}
|
|
204
201
|
NaturalAbstractFile.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: NaturalAbstractFile, deps: [{ token: i0.ElementRef }, { token: i1.NaturalFileService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });
|
|
@@ -228,4 +225,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImpor
|
|
|
228
225
|
type: HostListener,
|
|
229
226
|
args: ['change', ['$event']]
|
|
230
227
|
}] } });
|
|
231
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2ZpbGUvYWJzdHJhY3QtZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFJTCxNQUFNLEdBRVQsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILFVBQVUsRUFDViw0QkFBNEIsRUFDNUIsV0FBVyxFQUNYLFlBQVksRUFDWixlQUFlLEVBQ2YsV0FBVyxFQUNYLFNBQVMsR0FDWixNQUFNLFNBQVMsQ0FBQztBQUVqQixPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUM1RSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7OztBQW1CekM7Ozs7Ozs7O0dBUUc7QUFFSCxNQUFNLE9BQWdCLG1CQUFvQixTQUFRLHlCQUF5QjtJQTJEdkUsWUFDcUIsT0FBZ0MsRUFDOUIsa0JBQXNDLEVBQ3RCLFFBQWtCO1FBRXJELEtBQUssRUFBRSxDQUFDO1FBSlMsWUFBTyxHQUFQLE9BQU8sQ0FBeUI7UUFDOUIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBNUR4QyxlQUFVLEdBQUc7WUFDMUIsRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFDO1lBQzFDLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFDO1NBQ2pELENBQUM7UUFFRjs7V0FFRztRQUNhLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakM7Ozs7O1dBS0c7UUFDYSxXQUFNLEdBQUcsRUFBRSxDQUFDO1FBRTVCOztXQUVHO1FBQ2EsWUFB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e1xuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgYWNjZXB0VHlwZSxcbiAgICBjcmVhdGVJbnZpc2libGVGaWxlSW5wdXRXcmFwLFxuICAgIGRldGVjdFN3aXBlLFxuICAgIGV2ZW50VG9GaWxlcyxcbiAgICBmaWxlTGlzdFRvQXJyYXksXG4gICAgaXNGaWxlSW5wdXQsXG4gICAgc3RvcEV2ZW50LFxufSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7TmF0dXJhbEZpbGVTZXJ2aWNlfSBmcm9tICcuL2ZpbGUuc2VydmljZSc7XG5pbXBvcnQge05hdHVyYWxBYnN0cmFjdENvbnRyb2xsZXJ9IGZyb20gJy4uLy4uL2NsYXNzZXMvYWJzdHJhY3QtY29udHJvbGxlcic7XG5pbXBvcnQge0RPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEludmFsaWRGaWxlIHtcbiAgICBmaWxlOiBGaWxlO1xuICAgIGVycm9yOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZVNlbGVjdGlvbiB7XG4gICAgLyoqXG4gICAgICogVGhlIGxpc3Qgb2YgZmlsZXMgdGhhdCBoYXZlIGJlZW4gc2VsZWN0ZWQuXG4gICAgICovXG4gICAgdmFsaWQ6IEZpbGVbXTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBsaXN0IG9mIGZpbGVzIHRoYXQgaGF2ZSBiZWVuIHNlbGVjdGVkIGJ1dCBhcmUgaW52YWxpZCBhY2NvcmRpbmcgdG8gdmFsaWRhdG9ycy5cbiAgICAgKi9cbiAgICBpbnZhbGlkOiBJbnZhbGlkRmlsZVtdO1xufVxuXG4vKipcbiAqIEEgbWFzdGVyIGJhc2Ugc2V0IG9mIGxvZ2ljIGludGVuZGVkIHRvIHN1cHBvcnQgZmlsZSBzZWxlY3QvZHJhZy9kcm9wIG9wZXJhdGlvbnNcbiAqXG4gKiBJbiBtb3N0IGNhc2VzIHlvdSBwcm9iYWJseSB3YW50IGNsaWNrLXRvLXNlbGVjdCBhbmQgZHJhZy10by1zZWxlY3QsIHNvIHlvdSBzaG91bGQgdXNlOlxuICpcbiAqICAgICA8ZGl2IG5hdHVyYWxGaWxlRHJvcCBbc2VsZWN0YWJsZV09XCJ0cnVlXCI+PC9kaXY+XG4gKlxuICogQGR5bmFtaWNcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTmF0dXJhbEFic3RyYWN0RmlsZSBleHRlbmRzIE5hdHVyYWxBYnN0cmFjdENvbnRyb2xsZXIgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgICBwcml2YXRlIGZpbGVFbGVtZW50PzogSFRNTElucHV0RWxlbWVudDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZhbGlkYXRvcnMgPSBbXG4gICAgICAgIHtuYW1lOiAnYWNjZXB0JywgZm46IHRoaXMuYWNjZXB0VmFsaWRhdG9yfSxcbiAgICAgICAge25hbWU6ICdmaWxlU2l6ZScsIGZuOiB0aGlzLmZpbGVTaXplVmFsaWRhdG9yfSxcbiAgICBdO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB3ZSBzaG91bGQgYWNjZXB0IGEgc2luZ2xlIGZpbGUgb3IgbXVsdGlwbGUgZmlsZXNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgbXVsdGlwbGUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIENvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHVuaXF1ZSBmaWxlIHR5cGUgc3BlY2lmaWVycy4gTGlrZSB0aGUgbmF0aXZlIGVsZW1lbnRcbiAgICAgKiBpdCBjYW4gYmUgYSBtaXhlZCBvZiBtaW1lLXR5cGUgYW5kIGZpbGUgZXh0ZW5zaW9ucy5cbiAgICAgKlxuICAgICAqIFNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVE1ML0VsZW1lbnQvaW5wdXQvZmlsZSNhY2NlcHRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgYWNjZXB0ID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBNYXhpbXVtIGZpbGUgc2l6ZSBpbiBieXRlcy4gMCBtZWFucyBubyB2YWxpZGF0aW9uIGF0IGFsbC5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgbWF4U2l6ZSA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBEaXNhYmxlIHRoZSBmaWxlIHNlbGVjdGlvbiBlbnRpcmVseVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBmaWxlU2VsZWN0aW9uRGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHVzZXIgY2FuIGNsaWNrIG9uIHRoZSBlbGVtZW50IHRvIHNlbGVjdCBzb21ldGhpbmdcbiAgICAgKlxuICAgICAqIFRoaXMgaGFzIG9ubHkgZWZmZWN0IGR1cmluZyBpbml0aWFsaXphdGlvbi4gU3Vic2VxdWVudCBjaGFuZ2VzIHdpbGwgaGF2ZVxuICAgICAqIG5vIGVmZmVjdC5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0YWJsZSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgdGhlIGZpbGUgc2VsZWN0aW9uIHdpbGwgYmUgYnJvYWRjYXN0IHRocm91Z2ggYE5hdHVyYWxGaWxlU2VydmljZS5maWxlc0NoYW5nZWRgLlxuICAgICAqXG4gICAgICogSXQgaXMgdXNlZnVsIHRvIHNldCB0aGlzIHRvIGZhbHNlIGlmIHRoZXJlIGlzIHR3byB1cGxvYWQgb24gYSBwYWdlIHdpdGggZGlmZmVyZW50IHB1cnBvc2VcbiAgICAgKiBhbmQgdGhlIHNlY29uZCB1cGxvYWQgc2hvdWxkIG5vdCBiZSBjb25mdXNlZCB3aXRoIHRoZSBmaXJzdCBvbmUuXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGJyb2FkY2FzdCA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgc2luZ2xlIHZhbGlkIGZpbGUgdGhhdCBoYXMgYmVlbiBzZWxlY3RlZC5cbiAgICAgKlxuICAgICAqIEl0IGlzIGZvciBjb252ZW5pZW5jZSBvZiB1c2UsIGFuZCB3aWxsIG9ubHkgZW1pdCBpZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmVcbiAgICAgKiB2YWxpZCBmaWxlLiBTZWUgYGZpbGVzQ2hhbmdlYCBmb3IgYSBtb3JlIGNvbXBsZXRlIG91dHB1dC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IGZpbGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGU+KCk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbGlzdCBvZiBmaWxlcyB0aGF0IGhhdmUgYmVlbiBzZWxlY3RlZC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IGZpbGVzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlU2VsZWN0aW9uPigpO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbmF0dXJhbEZpbGVTZXJ2aWNlOiBOYXR1cmFsRmlsZVNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgZGVsZXRlIHRoaXMuZmlsZUVsZW1lbnQ7IC8vIGZhc3RlciBtZW1vcnkgcmVsZWFzZSBvZiBkb20gZWxlbWVudFxuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0YWJsZSkge1xuICAgICAgICAgICAgdGhpcy5lbmFibGVTZWxlY3RpbmcoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZ2V0RmlsZUVsZW1lbnQoKS5tdWx0aXBsZSA9IHRoaXMubXVsdGlwbGU7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXMuYWNjZXB0KSB7XG4gICAgICAgICAgICB0aGlzLmdldEZpbGVFbGVtZW50KCkuc2V0QXR0cmlidXRlKCdhY2NlcHQnLCBjaGFuZ2VzLmFjY2VwdC5jdXJyZW50VmFsdWUgfHwgJyonKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RmlsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB7XG4gICAgICAgIGlmICh0aGlzLmZpbGVFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5maWxlRWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGVsbSBpcyBhIGZpbGUgaW5wdXRcbiAgICAgICAgaWYgKGlzRmlsZUlucHV0KHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KSkge1xuICAgICAgICAgICAgdGhpcy5maWxlRWxlbWVudCA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5maWxlRWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNyZWF0ZSBmb28gZmlsZSBpbnB1dFxuICAgICAgICBjb25zdCBsYWJlbCA9IGNyZWF0ZUludmlzaWJsZUZpbGVJbnB1dFdyYXAodGhpcy5kb2N1bWVudCk7XG4gICAgICAgIHRoaXMuZmlsZUVsZW1lbnQgPSBsYWJlbC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW5wdXQnKVswXTtcbiAgICAgICAgdGhpcy5maWxlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLmNoYW5nZUZuLmJpbmQodGhpcykpO1xuICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChsYWJlbCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBlbmFibGVTZWxlY3RpbmcoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVsbSA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgIGlmIChpc0ZpbGVJbnB1dChlbG0pKSB7XG4gICAgICAgICAgICBjb25zdCBiaW5kZWRIYW5kbGVyID0gKCk6IHZvaWQgPT4gdGhpcy5iZWZvcmVTZWxlY3QoKTtcbiAgICAgICAgICAgIGVsbS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGJpbmRlZEhhbmRsZXIpO1xuICAgICAgICAgICAgZWxtLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBiaW5kZWRIYW5kbGVyKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGJpbmRlZEhhbmRsZXIgPSAoZXZlbnQ6IEV2ZW50KTogYm9vbGVhbiA9PiB0aGlzLmNsaWNrSGFuZGxlcihldmVudCk7XG4gICAgICAgICAgICBlbG0uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBiaW5kZWRIYW5kbGVyKTtcbiAgICAgICAgICAgIGVsbS5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgYmluZGVkSGFuZGxlcik7XG4gICAgICAgICAgICBlbG0uYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBiaW5kZWRIYW5kbGVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBoYW5kbGVGaWxlcyhmaWxlczogRmlsZVtdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbjogRmlsZVNlbGVjdGlvbiA9IHtcbiAgICAgICAgICAgIHZhbGlkOiBbXSxcbiAgICAgICAgICAgIGludmFsaWQ6IFtdLFxuICAgICAgICB9O1xuXG4gICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgICAgICAgICAgY29uc3QgZXJyb3IgPSB0aGlzLnZhbGlkYXRlKGZpbGUpO1xuICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgc2VsZWN0aW9uLmludmFsaWQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGZpbGU6IGZpbGUsXG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiBlcnJvcixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc2VsZWN0aW9uLnZhbGlkLnB1c2goZmlsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc2VsZWN0aW9uLnZhbGlkLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5maWxlQ2hhbmdlLmVtaXQoc2VsZWN0aW9uLnZhbGlkWzBdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzZWxlY3Rpb24udmFsaWQubGVuZ3RoIHx8IHNlbGVjdGlvbi5pbnZhbGlkLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5maWxlc0NoYW5nZS5lbWl0KHNlbGVjdGlvbik7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmJyb2FkY2FzdCkge1xuICAgICAgICAgICAgICAgIHRoaXMubmF0dXJhbEZpbGVTZXJ2aWNlLmZpbGVzQ2hhbmdlZC5uZXh0KHNlbGVjdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmdldEZpbGVFbGVtZW50KCkudmFsdWUgPSAnJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgd2hlbiBpbnB1dCBoYXMgZmlsZXNcbiAgICAgKi9cbiAgICBwcml2YXRlIGNoYW5nZUZuKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIShldmVudC50YXJnZXQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmlsZUxpc3QgPSBldmVudC50YXJnZXQuZmlsZXM7XG5cbiAgICAgICAgaWYgKCFmaWxlTGlzdCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RvcEV2ZW50KGV2ZW50KTtcbiAgICAgICAgdGhpcy5oYW5kbGVGaWxlcyhmaWxlTGlzdFRvQXJyYXkoZmlsZUxpc3QpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsaWNrSGFuZGxlcihldmVudDogRXZlbnQpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZWxtID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGlmIChlbG0uZ2V0QXR0cmlidXRlKCdkaXNhYmxlZCcpIHx8IHRoaXMuZmlsZVNlbGVjdGlvbkRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBwcmV2ZW50IHRoZSBjbGljayBpZiBpdCBpcyBhIHN3aXBlXG4gICAgICAgIGlmIChkZXRlY3RTd2lwZShldmVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmlsZUVsbSA9IHRoaXMuZ2V0RmlsZUVsZW1lbnQoKTtcbiAgICAgICAgZmlsZUVsbS5jbGljaygpO1xuICAgICAgICB0aGlzLmJlZm9yZVNlbGVjdCgpO1xuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGJlZm9yZVNlbGVjdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmZpbGVFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBpZiBubyBmaWxlcyBpbiBhcnJheSwgYmUgc3VyZSBicm93c2VyIGRvZXNudCBwcmV2ZW50IHJlc2VsZWN0IG9mIHNhbWUgZmlsZSAoc2VlIGdpdGh1YiBpc3N1ZSAyNylcbiAgICAgICAgdGhpcy5maWxlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NoYW5nZScsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIG9uQ2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBmaWxlTGlzdCA9IHRoaXMuZ2V0RmlsZUVsZW1lbnQoKS5maWxlcztcbiAgICAgICAgY29uc3QgZmlsZXM6IEZpbGVbXSA9IGZpbGVMaXN0ID8gZmlsZUxpc3RUb0FycmF5KGZpbGVMaXN0KSA6IGV2ZW50VG9GaWxlcyhldmVudCk7XG5cbiAgICAgICAgaWYgKCFmaWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0b3BFdmVudChldmVudCk7XG4gICAgICAgIHRoaXMuaGFuZGxlRmlsZXMoZmlsZXMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmFsaWRhdGUoZmlsZTogRmlsZSk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICBmb3IgKGNvbnN0IHZhbGlkYXRvciBvZiB0aGlzLnZhbGlkYXRvcnMpIHtcbiAgICAgICAgICAgIGlmICghdmFsaWRhdG9yLmZuLmNhbGwodGhpcywgZmlsZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsaWRhdG9yLm5hbWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFjY2VwdFZhbGlkYXRvcihpdGVtOiBGaWxlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBhY2NlcHRUeXBlKHRoaXMuYWNjZXB0LCBpdGVtLnR5cGUsIGl0ZW0ubmFtZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaWxlU2l6ZVZhbGlkYXRvcihpdGVtOiBGaWxlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhKHRoaXMubWF4U2l6ZSAmJiBpdGVtLnNpemUgPiB0aGlzLm1heFNpemUpO1xuICAgIH1cbn1cbiJdfQ==
|
|
228
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2ZpbGUvYWJzdHJhY3QtZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFJTCxNQUFNLEdBRVQsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILFVBQVUsRUFDViw0QkFBNEIsRUFDNUIsV0FBVyxFQUNYLFlBQVksRUFDWixlQUFlLEVBQ2YsV0FBVyxFQUNYLFdBQVcsRUFDWCxTQUFTLEdBQ1osTUFBTSxTQUFTLENBQUM7QUFFakIsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDNUUsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxRQUFRLEVBQUUsR0FBRyxFQUErQixFQUFFLEVBQUUsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7QUFtQnpFOzs7Ozs7OztHQVFHO0FBRUgsTUFBTSxPQUFnQixtQkFBb0IsU0FBUSx5QkFBeUI7SUF1RHZFLFlBQ3FCLE9BQWdDLEVBQzlCLGtCQUFzQyxFQUN0QixRQUFrQjtRQUVyRCxLQUFLLEVBQUUsQ0FBQztRQUpTLFlBQU8sR0FBUCxPQUFPLENBQXlCO1FBQzlCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQXZEekQ7O1dBRUc7UUFDYSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpDOzs7OztXQUtHO1FBQ2EsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUU1Qjs7V0FFRztRQUNhLFlBQU8sR0FBRyxDQUFDLENBQUM7UUFFNUI7O1dBRUc7UUFDYSwwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFFOUM7Ozs7O1dB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VTtzQkFBbkMsTUFBTTtnQkFLbUIsV0FBVztzQkFBcEMsTUFBTTtnQkFzSkEsUUFBUTtzQkFEZCxZQUFZO3VCQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBhY2NlcHRUeXBlLFxuICAgIGNyZWF0ZUludmlzaWJsZUZpbGVJbnB1dFdyYXAsXG4gICAgZGV0ZWN0U3dpcGUsXG4gICAgZXZlbnRUb0ZpbGVzLFxuICAgIGZpbGVMaXN0VG9BcnJheSxcbiAgICBpc0RpcmVjdG9yeSxcbiAgICBpc0ZpbGVJbnB1dCxcbiAgICBzdG9wRXZlbnQsXG59IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHtOYXR1cmFsRmlsZVNlcnZpY2V9IGZyb20gJy4vZmlsZS5zZXJ2aWNlJztcbmltcG9ydCB7TmF0dXJhbEFic3RyYWN0Q29udHJvbGxlcn0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9hYnN0cmFjdC1jb250cm9sbGVyJztcbmltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge2ZvcmtKb2luLCBtYXAsIE9ic2VydmFibGUsIE9ic2VydmFibGVJbnB1dCwgb2YsIHRhcH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW52YWxpZEZpbGUge1xuICAgIGZpbGU6IEZpbGU7XG4gICAgZXJyb3I6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWxlU2VsZWN0aW9uIHtcbiAgICAvKipcbiAgICAgKiBUaGUgbGlzdCBvZiBmaWxlcyB0aGF0IGhhdmUgYmVlbiBzZWxlY3RlZC5cbiAgICAgKi9cbiAgICB2YWxpZDogRmlsZVtdO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGxpc3Qgb2YgZmlsZXMgdGhhdCBoYXZlIGJlZW4gc2VsZWN0ZWQgYnV0IGFyZSBpbnZhbGlkIGFjY29yZGluZyB0byB2YWxpZGF0b3JzLlxuICAgICAqL1xuICAgIGludmFsaWQ6IEludmFsaWRGaWxlW107XG59XG5cbi8qKlxuICogQSBtYXN0ZXIgYmFzZSBzZXQgb2YgbG9naWMgaW50ZW5kZWQgdG8gc3VwcG9ydCBmaWxlIHNlbGVjdC9kcmFnL2Ryb3Agb3BlcmF0aW9uc1xuICpcbiAqIEluIG1vc3QgY2FzZXMgeW91IHByb2JhYmx5IHdhbnQgY2xpY2stdG8tc2VsZWN0IGFuZCBkcmFnLXRvLXNlbGVjdCwgc28geW91IHNob3VsZCB1c2U6XG4gKlxuICogICAgIDxkaXYgbmF0dXJhbEZpbGVEcm9wIFtzZWxlY3RhYmxlXT1cInRydWVcIj48L2Rpdj5cbiAqXG4gKiBAZHluYW1pY1xuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBOYXR1cmFsQWJzdHJhY3RGaWxlIGV4dGVuZHMgTmF0dXJhbEFic3RyYWN0Q29udHJvbGxlciBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuICAgIHByaXZhdGUgZmlsZUVsZW1lbnQ/OiBIVE1MSW5wdXRFbGVtZW50O1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB3ZSBzaG91bGQgYWNjZXB0IGEgc2luZ2xlIGZpbGUgb3IgbXVsdGlwbGUgZmlsZXNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgbXVsdGlwbGUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIENvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHVuaXF1ZSBmaWxlIHR5cGUgc3BlY2lmaWVycy4gTGlrZSB0aGUgbmF0aXZlIGVsZW1lbnRcbiAgICAgKiBpdCBjYW4gYmUgYSBtaXhlZCBvZiBtaW1lLXR5cGUgYW5kIGZpbGUgZXh0ZW5zaW9ucy5cbiAgICAgKlxuICAgICAqIFNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVE1ML0VsZW1lbnQvaW5wdXQvZmlsZSNhY2NlcHRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgYWNjZXB0ID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBNYXhpbXVtIGZpbGUgc2l6ZSBpbiBieXRlcy4gMCBtZWFucyBubyB2YWxpZGF0aW9uIGF0IGFsbC5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgbWF4U2l6ZSA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBEaXNhYmxlIHRoZSBmaWxlIHNlbGVjdGlvbiBlbnRpcmVseVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBmaWxlU2VsZWN0aW9uRGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHVzZXIgY2FuIGNsaWNrIG9uIHRoZSBlbGVtZW50IHRvIHNlbGVjdCBzb21ldGhpbmdcbiAgICAgKlxuICAgICAqIFRoaXMgaGFzIG9ubHkgZWZmZWN0IGR1cmluZyBpbml0aWFsaXphdGlvbi4gU3Vic2VxdWVudCBjaGFuZ2VzIHdpbGwgaGF2ZVxuICAgICAqIG5vIGVmZmVjdC5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0YWJsZSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgdGhlIGZpbGUgc2VsZWN0aW9uIHdpbGwgYmUgYnJvYWRjYXN0IHRocm91Z2ggYE5hdHVyYWxGaWxlU2VydmljZS5maWxlc0NoYW5nZWRgLlxuICAgICAqXG4gICAgICogSXQgaXMgdXNlZnVsIHRvIHNldCB0aGlzIHRvIGZhbHNlIGlmIHRoZXJlIGlzIHR3byB1cGxvYWQgb24gYSBwYWdlIHdpdGggZGlmZmVyZW50IHB1cnBvc2VcbiAgICAgKiBhbmQgdGhlIHNlY29uZCB1cGxvYWQgc2hvdWxkIG5vdCBiZSBjb25mdXNlZCB3aXRoIHRoZSBmaXJzdCBvbmUuXG4gICAgICovXG4gICAgQElucHV0KCkgcHVibGljIGJyb2FkY2FzdCA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgc2luZ2xlIHZhbGlkIGZpbGUgdGhhdCBoYXMgYmVlbiBzZWxlY3RlZC5cbiAgICAgKlxuICAgICAqIEl0IGlzIGZvciBjb252ZW5pZW5jZSBvZiB1c2UsIGFuZCB3aWxsIG9ubHkgZW1pdCBpZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmVcbiAgICAgKiB2YWxpZCBmaWxlLiBTZWUgYGZpbGVzQ2hhbmdlYCBmb3IgYSBtb3JlIGNvbXBsZXRlIG91dHB1dC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IGZpbGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGU+KCk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbGlzdCBvZiBmaWxlcyB0aGF0IGhhdmUgYmVlbiBzZWxlY3RlZC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IGZpbGVzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlU2VsZWN0aW9uPigpO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbmF0dXJhbEZpbGVTZXJ2aWNlOiBOYXR1cmFsRmlsZVNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgZGVsZXRlIHRoaXMuZmlsZUVsZW1lbnQ7IC8vIGZhc3RlciBtZW1vcnkgcmVsZWFzZSBvZiBkb20gZWxlbWVudFxuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0YWJsZSkge1xuICAgICAgICAgICAgdGhpcy5lbmFibGVTZWxlY3RpbmcoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZ2V0RmlsZUVsZW1lbnQoKS5tdWx0aXBsZSA9IHRoaXMubXVsdGlwbGU7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXMuYWNjZXB0KSB7XG4gICAgICAgICAgICB0aGlzLmdldEZpbGVFbGVtZW50KCkuc2V0QXR0cmlidXRlKCdhY2NlcHQnLCBjaGFuZ2VzLmFjY2VwdC5jdXJyZW50VmFsdWUgfHwgJyonKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RmlsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB7XG4gICAgICAgIGlmICh0aGlzLmZpbGVFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5maWxlRWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGVsbSBpcyBhIGZpbGUgaW5wdXRcbiAgICAgICAgaWYgKGlzRmlsZUlucHV0KHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KSkge1xuICAgICAgICAgICAgdGhpcy5maWxlRWxlbWVudCA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5maWxlRWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNyZWF0ZSBmb28gZmlsZSBpbnB1dFxuICAgICAgICBjb25zdCBsYWJlbCA9IGNyZWF0ZUludmlzaWJsZUZpbGVJbnB1dFdyYXAodGhpcy5kb2N1bWVudCk7XG4gICAgICAgIHRoaXMuZmlsZUVsZW1lbnQgPSBsYWJlbC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW5wdXQnKVswXTtcbiAgICAgICAgdGhpcy5maWxlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLmNoYW5nZUZuLmJpbmQodGhpcykpO1xuICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChsYWJlbCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBlbmFibGVTZWxlY3RpbmcoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVsbSA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgIGlmIChpc0ZpbGVJbnB1dChlbG0pKSB7XG4gICAgICAgICAgICBjb25zdCBiaW5kZWRIYW5kbGVyID0gKCk6IHZvaWQgPT4gdGhpcy5iZWZvcmVTZWxlY3QoKTtcbiAgICAgICAgICAgIGVsbS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGJpbmRlZEhhbmRsZXIpO1xuICAgICAgICAgICAgZWxtLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBiaW5kZWRIYW5kbGVyKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGJpbmRlZEhhbmRsZXIgPSAoZXZlbnQ6IEV2ZW50KTogYm9vbGVhbiA9PiB0aGlzLmNsaWNrSGFuZGxlcihldmVudCk7XG4gICAgICAgICAgICBlbG0uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBiaW5kZWRIYW5kbGVyKTtcbiAgICAgICAgICAgIGVsbS5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgYmluZGVkSGFuZGxlcik7XG4gICAgICAgICAgICBlbG0uYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBiaW5kZWRIYW5kbGVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBoYW5kbGVGaWxlcyhmaWxlczogRmlsZVtdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbjogRmlsZVNlbGVjdGlvbiA9IHtcbiAgICAgICAgICAgIHZhbGlkOiBbXSxcbiAgICAgICAgICAgIGludmFsaWQ6IFtdLFxuICAgICAgICB9O1xuXG4gICAgICAgIGZvcmtKb2luKFxuICAgICAgICAgICAgZmlsZXMubWFwKGZpbGUgPT5cbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRlKGZpbGUpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRhcChlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb24uaW52YWxpZC5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZTogZmlsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I6IGVycm9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb24udmFsaWQucHVzaChmaWxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGlmIChzZWxlY3Rpb24udmFsaWQubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWxlQ2hhbmdlLmVtaXQoc2VsZWN0aW9uLnZhbGlkWzBdKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHNlbGVjdGlvbi52YWxpZC5sZW5ndGggfHwgc2VsZWN0aW9uLmludmFsaWQubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWxlc0NoYW5nZS5lbWl0KHNlbGVjdGlvbik7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5icm9hZGNhc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uYXR1cmFsRmlsZVNlcnZpY2UuZmlsZXNDaGFuZ2VkLm5leHQoc2VsZWN0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuZ2V0RmlsZUVsZW1lbnQoKS52YWx1ZSA9ICcnO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgd2hlbiBpbnB1dCBoYXMgZmlsZXNcbiAgICAgKi9cbiAgICBwcml2YXRlIGNoYW5nZUZuKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIShldmVudC50YXJnZXQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmlsZUxpc3QgPSBldmVudC50YXJnZXQuZmlsZXM7XG5cbiAgICAgICAgaWYgKCFmaWxlTGlzdCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RvcEV2ZW50KGV2ZW50KTtcbiAgICAgICAgdGhpcy5oYW5kbGVGaWxlcyhmaWxlTGlzdFRvQXJyYXkoZmlsZUxpc3QpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsaWNrSGFuZGxlcihldmVudDogRXZlbnQpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZWxtID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGlmIChlbG0uZ2V0QXR0cmlidXRlKCdkaXNhYmxlZCcpIHx8IHRoaXMuZmlsZVNlbGVjdGlvbkRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBwcmV2ZW50IHRoZSBjbGljayBpZiBpdCBpcyBhIHN3aXBlXG4gICAgICAgIGlmIChkZXRlY3RTd2lwZShldmVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmlsZUVsbSA9IHRoaXMuZ2V0RmlsZUVsZW1lbnQoKTtcbiAgICAgICAgZmlsZUVsbS5jbGljaygpO1xuICAgICAgICB0aGlzLmJlZm9yZVNlbGVjdCgpO1xuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGJlZm9yZVNlbGVjdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmZpbGVFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBpZiBubyBmaWxlcyBpbiBhcnJheSwgYmUgc3VyZSBicm93c2VyIGRvZXNudCBwcmV2ZW50IHJlc2VsZWN0IG9mIHNhbWUgZmlsZSAoc2VlIGdpdGh1YiBpc3N1ZSAyNylcbiAgICAgICAgdGhpcy5maWxlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NoYW5nZScsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIG9uQ2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBmaWxlTGlzdCA9IHRoaXMuZ2V0RmlsZUVsZW1lbnQoKS5maWxlcztcbiAgICAgICAgY29uc3QgZmlsZXM6IEZpbGVbXSA9IGZpbGVMaXN0ID8gZmlsZUxpc3RUb0FycmF5KGZpbGVMaXN0KSA6IGV2ZW50VG9GaWxlcyhldmVudCk7XG5cbiAgICAgICAgaWYgKCFmaWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0b3BFdmVudChldmVudCk7XG4gICAgICAgIHRoaXMuaGFuZGxlRmlsZXMoZmlsZXMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmFsaWRhdGUoZmlsZTogRmlsZSk6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVsbD4ge1xuICAgICAgICByZXR1cm4gZm9ya0pvaW48UmVjb3JkPHN0cmluZywgT2JzZXJ2YWJsZUlucHV0PGJvb2xlYW4+Pj4oe1xuICAgICAgICAgICAgYWNjZXB0OiBvZihhY2NlcHRUeXBlKHRoaXMuYWNjZXB0LCBmaWxlLnR5cGUsIGZpbGUubmFtZSkpLFxuICAgICAgICAgICAgZmlsZVNpemU6IG9mKCEodGhpcy5tYXhTaXplICYmIGZpbGUuc2l6ZSA+IHRoaXMubWF4U2l6ZSkpLFxuICAgICAgICAgICAgZGlyZWN0b3J5OiBpc0RpcmVjdG9yeShmaWxlKSxcbiAgICAgICAgfSkucGlwZShcbiAgICAgICAgICAgIG1hcChyZXN1bHQgPT4ge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGtleTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
|
|
@@ -69,6 +69,17 @@ function createFileInput(document) {
|
|
|
69
69
|
fileElem.type = 'file';
|
|
70
70
|
return fileElem;
|
|
71
71
|
}
|
|
72
|
+
export function isDirectory(file) {
|
|
73
|
+
return file
|
|
74
|
+
.slice(0, 1)
|
|
75
|
+
.text()
|
|
76
|
+
.then(text => {
|
|
77
|
+
// Firefox will return empty string for a folder, so we must check that special case.
|
|
78
|
+
// That means that any empty file will incorrectly be interpreted as a folder on all
|
|
79
|
+
// browsers, but that's tolerable because there is no real use-case to upload an empty file.
|
|
80
|
+
return text !== '';
|
|
81
|
+
}, () => false);
|
|
82
|
+
}
|
|
72
83
|
export function stopEvent(event) {
|
|
73
84
|
event.preventDefault();
|
|
74
85
|
event.stopPropagation();
|
|
@@ -104,4 +115,4 @@ export function eventToFiles(event) {
|
|
|
104
115
|
}
|
|
105
116
|
return [];
|
|
106
117
|
}
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9maWxlL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxVQUFVLENBQUMsTUFBYyxFQUFFLElBQVksRUFBRSxRQUFnQjtJQUNyRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ2hCLE9BQU8sSUFBSSxDQUFDO0tBQ2Y7SUFFRCxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFCLFFBQVEsR0FBRyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7SUFFbEMsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRTtRQUM1QyxlQUFlLEdBQUcsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3ZELElBQUksZUFBZSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNqQyxPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDN0M7YUFBTTtZQUNILDBCQUEwQjtZQUMxQixNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztZQUVyRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDOUI7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLEdBQWdCO0lBQ3hDLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFdEMsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxLQUFLLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxNQUFNLENBQUM7QUFDNUYsQ0FBQztBQUVELElBQUksa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO0FBQzNCLElBQUksa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO0FBRTNCLE1BQU0sVUFBVSxXQUFXLENBQUMsS0FBeUI7SUFDakQsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDeEUsSUFBSSxDQUFDLE9BQU8sRUFBRTtRQUNWLE9BQU8sS0FBSyxDQUFDO0tBQ2hCO0lBRUQsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFlBQVksRUFBRTtRQUM3QixrQkFBa0IsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ3hDLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFFeEMsT0FBTyxJQUFJLENBQUMsQ0FBQyw0QkFBNEI7S0FDNUM7U0FBTTtRQUNILHVDQUF1QztRQUN2QyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssVUFBVSxFQUFFO1lBQzNCLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDcEMsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUNwQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLGtCQUFrQixDQUFDLEdBQUcsRUFBRSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLGtCQUFrQixDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUM5RixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3hCLElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRTtvQkFDbEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2lCQUMxQjtnQkFFRCxPQUFPLEtBQUssQ0FBQzthQUNoQjtTQUNKO1FBRUQsT0FBTyxJQUFJLENBQUM7S0FDZjtBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsNEJBQTRCLENBQUMsUUFBa0I7SUFDM0QsTUFBTSxRQUFRLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7SUFDM0IsS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO0lBQ2xDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUNsQyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDaEMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQzFCLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUMzQixLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDNUIsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQzNCLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUM1QixLQUFLLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUVyQyxLQUFLLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRTVCLE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FBQyxRQUFrQjtJQUN2QyxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pELFFBQVEsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDO0lBRXZCLE9BQU8sUUFBUSxDQUFDO0FBQ3BCLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLEtBQVk7SUFDbEMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztBQUM1QixDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxRQUFrQjtJQUM5QyxNQUFNLE1BQU0sR0FBVyxFQUFFLENBQUM7SUFDMUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDdEMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5QixJQUFJLElBQUksRUFBRTtZQUNOLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDckI7S0FDSjtJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxTQUFTLDJCQUEyQixDQUFDLEtBQTJCO0lBQzVELE1BQU0sTUFBTSxHQUFXLEVBQUUsQ0FBQztJQUUxQiw0REFBNEQ7SUFDNUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDbkMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2xDLElBQUksSUFBSSxFQUFFO1lBQ04sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNyQjtLQUNKO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsS0FBd0I7SUFDakQsTUFBTSxRQUFRLEdBQUcsY0FBYyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3JFLElBQUksUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDekIsT0FBTyxlQUFlLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzFDO0lBRUQsSUFBSSxRQUFRLEVBQUU7UUFDVixPQUFPLDJCQUEyQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUN0RDtJQUVELE9BQU8sRUFBRSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBhY2NlcHRUeXBlKGFjY2VwdDogc3RyaW5nLCB0eXBlOiBzdHJpbmcsIGZpbGVuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoIWFjY2VwdC50cmltKCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgdHlwZSA9IHR5cGUudG9Mb3dlckNhc2UoKTtcbiAgICBmaWxlbmFtZSA9IGZpbGVuYW1lLnRvTG93ZXJDYXNlKCk7XG5cbiAgICByZXR1cm4gYWNjZXB0LnNwbGl0KCcsJykuc29tZShtaW1lT3JFeHRlbnNpb24gPT4ge1xuICAgICAgICBtaW1lT3JFeHRlbnNpb24gPSBtaW1lT3JFeHRlbnNpb24udHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmIChtaW1lT3JFeHRlbnNpb24uc3RhcnRzV2l0aCgnLicpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmlsZW5hbWUuZW5kc1dpdGgobWltZU9yRXh0ZW5zaW9uKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFRyYW5zZm9ybSBgKmAgaW50byBgLipgXG4gICAgICAgICAgICBjb25zdCBwYXR0ZXJuID0gbWltZU9yRXh0ZW5zaW9uLnJlcGxhY2UoL1xcKi9nLCAnLionKTtcblxuICAgICAgICAgICAgcmV0dXJuIHR5cGUubWF0Y2gocGF0dGVybik7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRmlsZUlucHV0KGVsbTogSFRNTEVsZW1lbnQpOiBlbG0gaXMgSFRNTElucHV0RWxlbWVudCB7XG4gICAgY29uc3QgdHlwZSA9IGVsbS5nZXRBdHRyaWJ1dGUoJ3R5cGUnKTtcblxuICAgIHJldHVybiBlbG0udGFnTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnaW5wdXQnICYmICEhdHlwZSAmJiB0eXBlLnRvTG93ZXJDYXNlKCkgPT09ICdmaWxlJztcbn1cblxubGV0IGluaXRpYWxUb3VjaFN0YXJ0WSA9IDA7XG5sZXQgaW5pdGlhbFRvdWNoU3RhcnRYID0gMDtcblxuZXhwb3J0IGZ1bmN0aW9uIGRldGVjdFN3aXBlKGV2ZW50OiBFdmVudCB8IFRvdWNoRXZlbnQpOiBib29sZWFuIHtcbiAgICBjb25zdCB0b3VjaGVzID0gJ2NoYW5nZWRUb3VjaGVzJyBpbiBldmVudCA/IGV2ZW50LmNoYW5nZWRUb3VjaGVzIDogbnVsbDtcbiAgICBpZiAoIXRvdWNoZXMpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmIChldmVudC50eXBlID09PSAndG91Y2hzdGFydCcpIHtcbiAgICAgICAgaW5pdGlhbFRvdWNoU3RhcnRYID0gdG91Y2hlc1swXS5jbGllbnRYO1xuICAgICAgICBpbml0aWFsVG91Y2hTdGFydFkgPSB0b3VjaGVzWzBdLmNsaWVudFk7XG5cbiAgICAgICAgcmV0dXJuIHRydWU7IC8vIGRvbid0IGJsb2NrIGV2ZW50IGRlZmF1bHRcbiAgICB9IGVsc2Uge1xuICAgICAgICAvLyBwcmV2ZW50IHNjcm9sbCBmcm9tIHRyaWdnZXJpbmcgZXZlbnRcbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICd0b3VjaGVuZCcpIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRYID0gdG91Y2hlc1swXS5jbGllbnRYO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudFkgPSB0b3VjaGVzWzBdLmNsaWVudFk7XG4gICAgICAgICAgICBpZiAoTWF0aC5hYnMoY3VycmVudFggLSBpbml0aWFsVG91Y2hTdGFydFgpID4gMjAgfHwgTWF0aC5hYnMoY3VycmVudFkgLSBpbml0aWFsVG91Y2hTdGFydFkpID4gMjApIHtcbiAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQuY2FuY2VsYWJsZSkge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUludmlzaWJsZUZpbGVJbnB1dFdyYXAoZG9jdW1lbnQ6IERvY3VtZW50KTogSFRNTExhYmVsRWxlbWVudCB7XG4gICAgY29uc3QgZmlsZUVsZW0gPSBjcmVhdGVGaWxlSW5wdXQoZG9jdW1lbnQpO1xuICAgIGNvbnN0IGxhYmVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGFiZWwnKTtcbiAgICBsYWJlbC5pbm5lckhUTUwgPSAndXBsb2FkJztcbiAgICBsYWJlbC5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XG4gICAgbGFiZWwuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgIGxhYmVsLnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG4gICAgbGFiZWwuc3R5bGUud2lkdGggPSAnMHB4JztcbiAgICBsYWJlbC5zdHlsZS5oZWlnaHQgPSAnMHB4JztcbiAgICBsYWJlbC5zdHlsZS5ib3JkZXIgPSAnbm9uZSc7XG4gICAgbGFiZWwuc3R5bGUubWFyZ2luID0gJzBweCc7XG4gICAgbGFiZWwuc3R5bGUucGFkZGluZyA9ICcwcHgnO1xuICAgIGxhYmVsLnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnLTEnKTtcblxuICAgIGxhYmVsLmFwcGVuZENoaWxkKGZpbGVFbGVtKTtcblxuICAgIHJldHVybiBsYWJlbDtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRmlsZUlucHV0KGRvY3VtZW50OiBEb2N1bWVudCk6IEhUTUxJbnB1dEVsZW1lbnQge1xuICAgIGNvbnN0IGZpbGVFbGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICBmaWxlRWxlbS50eXBlID0gJ2ZpbGUnO1xuXG4gICAgcmV0dXJuIGZpbGVFbGVtO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RvcEV2ZW50KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWxlTGlzdFRvQXJyYXkoZmlsZUxpc3Q6IEZpbGVMaXN0KTogRmlsZVtdIHtcbiAgICBjb25zdCByZXN1bHQ6IEZpbGVbXSA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZUxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgZmlsZSA9IGZpbGVMaXN0Lml0ZW0oaSk7XG4gICAgICAgIGlmIChmaWxlKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaChmaWxlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIGRhdGFUcmFuc2Zlckl0ZW1MaXN0VG9BcnJheShpdGVtczogRGF0YVRyYW5zZmVySXRlbUxpc3QpOiBGaWxlW10ge1xuICAgIGNvbnN0IHJlc3VsdDogRmlsZVtdID0gW107XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1mb3Itb2ZcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGZpbGUgPSBpdGVtc1tpXS5nZXRBc0ZpbGUoKTtcbiAgICAgICAgaWYgKGZpbGUpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKGZpbGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV2ZW50VG9GaWxlcyhldmVudDogRXZlbnQgfCBEcmFnRXZlbnQpOiBGaWxlW10ge1xuICAgIGNvbnN0IHRyYW5zZmVyID0gJ2RhdGFUcmFuc2ZlcicgaW4gZXZlbnQgPyBldmVudC5kYXRhVHJhbnNmZXIgOiBudWxsO1xuICAgIGlmICh0cmFuc2Zlcj8uZmlsZXM/Lmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gZmlsZUxpc3RUb0FycmF5KHRyYW5zZmVyLmZpbGVzKTtcbiAgICB9XG5cbiAgICBpZiAodHJhbnNmZXIpIHtcbiAgICAgICAgcmV0dXJuIGRhdGFUcmFuc2Zlckl0ZW1MaXN0VG9BcnJheSh0cmFuc2Zlci5pdGVtcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFtdO1xufVxuIl19
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9maWxlL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxVQUFVLENBQUMsTUFBYyxFQUFFLElBQVksRUFBRSxRQUFnQjtJQUNyRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ2hCLE9BQU8sSUFBSSxDQUFDO0tBQ2Y7SUFFRCxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFCLFFBQVEsR0FBRyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7SUFFbEMsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRTtRQUM1QyxlQUFlLEdBQUcsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3ZELElBQUksZUFBZSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNqQyxPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDN0M7YUFBTTtZQUNILDBCQUEwQjtZQUMxQixNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztZQUVyRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDOUI7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLEdBQWdCO0lBQ3hDLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFdEMsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxLQUFLLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxNQUFNLENBQUM7QUFDNUYsQ0FBQztBQUVELElBQUksa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO0FBQzNCLElBQUksa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO0FBRTNCLE1BQU0sVUFBVSxXQUFXLENBQUMsS0FBeUI7SUFDakQsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDeEUsSUFBSSxDQUFDLE9BQU8sRUFBRTtRQUNWLE9BQU8sS0FBSyxDQUFDO0tBQ2hCO0lBRUQsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFlBQVksRUFBRTtRQUM3QixrQkFBa0IsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ3hDLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFFeEMsT0FBTyxJQUFJLENBQUMsQ0FBQyw0QkFBNEI7S0FDNUM7U0FBTTtRQUNILHVDQUF1QztRQUN2QyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssVUFBVSxFQUFFO1lBQzNCLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDcEMsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUNwQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLGtCQUFrQixDQUFDLEdBQUcsRUFBRSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLGtCQUFrQixDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUM5RixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3hCLElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRTtvQkFDbEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2lCQUMxQjtnQkFFRCxPQUFPLEtBQUssQ0FBQzthQUNoQjtTQUNKO1FBRUQsT0FBTyxJQUFJLENBQUM7S0FDZjtBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsNEJBQTRCLENBQUMsUUFBa0I7SUFDM0QsTUFBTSxRQUFRLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7SUFDM0IsS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO0lBQ2xDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUNsQyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDaEMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQzFCLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUMzQixLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDNUIsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQzNCLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUM1QixLQUFLLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUVyQyxLQUFLLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRTVCLE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FBQyxRQUFrQjtJQUN2QyxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pELFFBQVEsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDO0lBRXZCLE9BQU8sUUFBUSxDQUFDO0FBQ3BCLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLElBQVU7SUFDbEMsT0FBTyxJQUFJO1NBQ04sS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDWCxJQUFJLEVBQUU7U0FDTixJQUFJLENBQ0QsSUFBSSxDQUFDLEVBQUU7UUFDSCxxRkFBcUY7UUFDckYsb0ZBQW9GO1FBQ3BGLDRGQUE0RjtRQUM1RixPQUFPLElBQUksS0FBSyxFQUFFLENBQUM7SUFDdkIsQ0FBQyxFQUNELEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FDZCxDQUFDO0FBQ1YsQ0FBQztBQUVELE1BQU0sVUFBVSxTQUFTLENBQUMsS0FBWTtJQUNsQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0FBQzVCLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLFFBQWtCO0lBQzlDLE1BQU0sTUFBTSxHQUFXLEVBQUUsQ0FBQztJQUMxQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUN0QyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlCLElBQUksSUFBSSxFQUFFO1lBQ04sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNyQjtLQUNKO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQztBQUVELFNBQVMsMkJBQTJCLENBQUMsS0FBMkI7SUFDNUQsTUFBTSxNQUFNLEdBQVcsRUFBRSxDQUFDO0lBRTFCLDREQUE0RDtJQUM1RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNuQyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbEMsSUFBSSxJQUFJLEVBQUU7WUFDTixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3JCO0tBQ0o7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUF3QjtJQUNqRCxNQUFNLFFBQVEsR0FBRyxjQUFjLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDckUsSUFBSSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUN6QixPQUFPLGVBQWUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDMUM7SUFFRCxJQUFJLFFBQVEsRUFBRTtRQUNWLE9BQU8sMkJBQTJCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3REO0lBRUQsT0FBTyxFQUFFLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGFjY2VwdFR5cGUoYWNjZXB0OiBzdHJpbmcsIHR5cGU6IHN0cmluZywgZmlsZW5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICghYWNjZXB0LnRyaW0oKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICB0eXBlID0gdHlwZS50b0xvd2VyQ2FzZSgpO1xuICAgIGZpbGVuYW1lID0gZmlsZW5hbWUudG9Mb3dlckNhc2UoKTtcblxuICAgIHJldHVybiBhY2NlcHQuc3BsaXQoJywnKS5zb21lKG1pbWVPckV4dGVuc2lvbiA9PiB7XG4gICAgICAgIG1pbWVPckV4dGVuc2lvbiA9IG1pbWVPckV4dGVuc2lvbi50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKG1pbWVPckV4dGVuc2lvbi5zdGFydHNXaXRoKCcuJykpIHtcbiAgICAgICAgICAgIHJldHVybiBmaWxlbmFtZS5lbmRzV2l0aChtaW1lT3JFeHRlbnNpb24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gVHJhbnNmb3JtIGAqYCBpbnRvIGAuKmBcbiAgICAgICAgICAgIGNvbnN0IHBhdHRlcm4gPSBtaW1lT3JFeHRlbnNpb24ucmVwbGFjZSgvXFwqL2csICcuKicpO1xuXG4gICAgICAgICAgICByZXR1cm4gdHlwZS5tYXRjaChwYXR0ZXJuKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNGaWxlSW5wdXQoZWxtOiBIVE1MRWxlbWVudCk6IGVsbSBpcyBIVE1MSW5wdXRFbGVtZW50IHtcbiAgICBjb25zdCB0eXBlID0gZWxtLmdldEF0dHJpYnV0ZSgndHlwZScpO1xuXG4gICAgcmV0dXJuIGVsbS50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdpbnB1dCcgJiYgISF0eXBlICYmIHR5cGUudG9Mb3dlckNhc2UoKSA9PT0gJ2ZpbGUnO1xufVxuXG5sZXQgaW5pdGlhbFRvdWNoU3RhcnRZID0gMDtcbmxldCBpbml0aWFsVG91Y2hTdGFydFggPSAwO1xuXG5leHBvcnQgZnVuY3Rpb24gZGV0ZWN0U3dpcGUoZXZlbnQ6IEV2ZW50IHwgVG91Y2hFdmVudCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHRvdWNoZXMgPSAnY2hhbmdlZFRvdWNoZXMnIGluIGV2ZW50ID8gZXZlbnQuY2hhbmdlZFRvdWNoZXMgOiBudWxsO1xuICAgIGlmICghdG91Y2hlcykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LnR5cGUgPT09ICd0b3VjaHN0YXJ0Jykge1xuICAgICAgICBpbml0aWFsVG91Y2hTdGFydFggPSB0b3VjaGVzWzBdLmNsaWVudFg7XG4gICAgICAgIGluaXRpYWxUb3VjaFN0YXJ0WSA9IHRvdWNoZXNbMF0uY2xpZW50WTtcblxuICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gZG9uJ3QgYmxvY2sgZXZlbnQgZGVmYXVsdFxuICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIHByZXZlbnQgc2Nyb2xsIGZyb20gdHJpZ2dlcmluZyBldmVudFxuICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ3RvdWNoZW5kJykge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudFggPSB0b3VjaGVzWzBdLmNsaWVudFg7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50WSA9IHRvdWNoZXNbMF0uY2xpZW50WTtcbiAgICAgICAgICAgIGlmIChNYXRoLmFicyhjdXJyZW50WCAtIGluaXRpYWxUb3VjaFN0YXJ0WCkgPiAyMCB8fCBNYXRoLmFicyhjdXJyZW50WSAtIGluaXRpYWxUb3VjaFN0YXJ0WSkgPiAyMCkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIGlmIChldmVudC5jYW5jZWxhYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSW52aXNpYmxlRmlsZUlucHV0V3JhcChkb2N1bWVudDogRG9jdW1lbnQpOiBIVE1MTGFiZWxFbGVtZW50IHtcbiAgICBjb25zdCBmaWxlRWxlbSA9IGNyZWF0ZUZpbGVJbnB1dChkb2N1bWVudCk7XG4gICAgY29uc3QgbGFiZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsYWJlbCcpO1xuICAgIGxhYmVsLmlubmVySFRNTCA9ICd1cGxvYWQnO1xuICAgIGxhYmVsLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICBsYWJlbC5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgbGFiZWwuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJztcbiAgICBsYWJlbC5zdHlsZS53aWR0aCA9ICcwcHgnO1xuICAgIGxhYmVsLnN0eWxlLmhlaWdodCA9ICcwcHgnO1xuICAgIGxhYmVsLnN0eWxlLmJvcmRlciA9ICdub25lJztcbiAgICBsYWJlbC5zdHlsZS5tYXJnaW4gPSAnMHB4JztcbiAgICBsYWJlbC5zdHlsZS5wYWRkaW5nID0gJzBweCc7XG4gICAgbGFiZWwuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICctMScpO1xuXG4gICAgbGFiZWwuYXBwZW5kQ2hpbGQoZmlsZUVsZW0pO1xuXG4gICAgcmV0dXJuIGxhYmVsO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVGaWxlSW5wdXQoZG9jdW1lbnQ6IERvY3VtZW50KTogSFRNTElucHV0RWxlbWVudCB7XG4gICAgY29uc3QgZmlsZUVsZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgIGZpbGVFbGVtLnR5cGUgPSAnZmlsZSc7XG5cbiAgICByZXR1cm4gZmlsZUVsZW07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0RpcmVjdG9yeShmaWxlOiBGaWxlKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGZpbGVcbiAgICAgICAgLnNsaWNlKDAsIDEpXG4gICAgICAgIC50ZXh0KClcbiAgICAgICAgLnRoZW4oXG4gICAgICAgICAgICB0ZXh0ID0+IHtcbiAgICAgICAgICAgICAgICAvLyBGaXJlZm94IHdpbGwgcmV0dXJuIGVtcHR5IHN0cmluZyBmb3IgYSBmb2xkZXIsIHNvIHdlIG11c3QgY2hlY2sgdGhhdCBzcGVjaWFsIGNhc2UuXG4gICAgICAgICAgICAgICAgLy8gVGhhdCBtZWFucyB0aGF0IGFueSBlbXB0eSBmaWxlIHdpbGwgaW5jb3JyZWN0bHkgYmUgaW50ZXJwcmV0ZWQgYXMgYSBmb2xkZXIgb24gYWxsXG4gICAgICAgICAgICAgICAgLy8gYnJvd3NlcnMsIGJ1dCB0aGF0J3MgdG9sZXJhYmxlIGJlY2F1c2UgdGhlcmUgaXMgbm8gcmVhbCB1c2UtY2FzZSB0byB1cGxvYWQgYW4gZW1wdHkgZmlsZS5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGV4dCAhPT0gJyc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKCkgPT4gZmFsc2UsXG4gICAgICAgICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdG9wRXZlbnQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbGVMaXN0VG9BcnJheShmaWxlTGlzdDogRmlsZUxpc3QpOiBGaWxlW10ge1xuICAgIGNvbnN0IHJlc3VsdDogRmlsZVtdID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlTGlzdC5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBmaWxlID0gZmlsZUxpc3QuaXRlbShpKTtcbiAgICAgICAgaWYgKGZpbGUpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKGZpbGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gZGF0YVRyYW5zZmVySXRlbUxpc3RUb0FycmF5KGl0ZW1zOiBEYXRhVHJhbnNmZXJJdGVtTGlzdCk6IEZpbGVbXSB7XG4gICAgY29uc3QgcmVzdWx0OiBGaWxlW10gPSBbXTtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLWZvci1vZlxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgZmlsZSA9IGl0ZW1zW2ldLmdldEFzRmlsZSgpO1xuICAgICAgICBpZiAoZmlsZSkge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2goZmlsZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXZlbnRUb0ZpbGVzKGV2ZW50OiBFdmVudCB8IERyYWdFdmVudCk6IEZpbGVbXSB7XG4gICAgY29uc3QgdHJhbnNmZXIgPSAnZGF0YVRyYW5zZmVyJyBpbiBldmVudCA/IGV2ZW50LmRhdGFUcmFuc2ZlciA6IG51bGw7XG4gICAgaWYgKHRyYW5zZmVyPy5maWxlcz8ubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBmaWxlTGlzdFRvQXJyYXkodHJhbnNmZXIuZmlsZXMpO1xuICAgIH1cblxuICAgIGlmICh0cmFuc2Zlcikge1xuICAgICAgICByZXR1cm4gZGF0YVRyYW5zZmVySXRlbUxpc3RUb0FycmF5KHRyYW5zZmVyLml0ZW1zKTtcbiAgICB9XG5cbiAgICByZXR1cm4gW107XG59XG4iXX0=
|
|
@@ -1,12 +1,25 @@
|
|
|
1
1
|
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/
|
|
4
|
-
import * as i2 from "
|
|
5
|
-
import * as i3 from "
|
|
3
|
+
import * as i1 from "@angular/router";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
import * as i3 from "../fixed-button/fixed-button.component";
|
|
6
|
+
import * as i4 from "@angular/material/tooltip";
|
|
6
7
|
export class NaturalFixedButtonDetailComponent {
|
|
7
|
-
constructor() {
|
|
8
|
+
constructor(route) {
|
|
9
|
+
this.canChange = true;
|
|
10
|
+
this.isCreation = false;
|
|
8
11
|
this.create = new EventEmitter();
|
|
9
12
|
this.delete = new EventEmitter();
|
|
13
|
+
route.params.subscribe(() => (this.canChange = true));
|
|
14
|
+
}
|
|
15
|
+
get model() {
|
|
16
|
+
return this._model;
|
|
17
|
+
}
|
|
18
|
+
set model(value) {
|
|
19
|
+
this._model = value;
|
|
20
|
+
if (this.canChange) {
|
|
21
|
+
this.isCreation = !this._model.id;
|
|
22
|
+
}
|
|
10
23
|
}
|
|
11
24
|
clickCreate() {
|
|
12
25
|
if (this.form.enabled) {
|
|
@@ -19,12 +32,12 @@ export class NaturalFixedButtonDetailComponent {
|
|
|
19
32
|
}
|
|
20
33
|
}
|
|
21
34
|
}
|
|
22
|
-
NaturalFixedButtonDetailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: NaturalFixedButtonDetailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
23
|
-
NaturalFixedButtonDetailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: NaturalFixedButtonDetailComponent, selector: "natural-fixed-button-detail", inputs: { model: "model", form: "form" }, outputs: { create: "create", delete: "delete" }, ngImport: i0, template: "<natural-fixed-button\n (click)=\"clickCreate()\"\n *ngIf=\"
|
|
35
|
+
NaturalFixedButtonDetailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: NaturalFixedButtonDetailComponent, deps: [{ token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
|
|
36
|
+
NaturalFixedButtonDetailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: NaturalFixedButtonDetailComponent, selector: "natural-fixed-button-detail", inputs: { model: "model", form: "form" }, outputs: { create: "create", delete: "delete" }, ngImport: i0, template: "<natural-fixed-button\n (click)=\"clickCreate()\"\n *ngIf=\"isCreation\"\n [disabled]=\"form.disabled\"\n [color]=\"form.valid ? 'accent' : 'warn'\"\n class=\"detail-speed-dial\"\n icon=\"save\"\n></natural-fixed-button>\n\n<natural-fixed-button\n (click)=\"clickDelete()\"\n *ngIf=\"!isCreation && (!model.permissions || model.permissions.delete)\"\n [disabled]=\"form.disabled\"\n class=\"detail-speed-dial\"\n color=\"warn\"\n icon=\"delete_forever\"\n i18n-matTooltip\n matTooltip=\"Supprimer d\u00E9finitivement\"\n matTooltipPosition=\"left\"\n></natural-fixed-button>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.NaturalFixedButtonComponent, selector: "natural-fixed-button", inputs: ["icon", "link", "color", "disabled"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
|
|
24
37
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: NaturalFixedButtonDetailComponent, decorators: [{
|
|
25
38
|
type: Component,
|
|
26
|
-
args: [{ selector: 'natural-fixed-button-detail', template: "<natural-fixed-button\n (click)=\"clickCreate()\"\n *ngIf=\"
|
|
27
|
-
}], propDecorators: { model: [{
|
|
39
|
+
args: [{ selector: 'natural-fixed-button-detail', template: "<natural-fixed-button\n (click)=\"clickCreate()\"\n *ngIf=\"isCreation\"\n [disabled]=\"form.disabled\"\n [color]=\"form.valid ? 'accent' : 'warn'\"\n class=\"detail-speed-dial\"\n icon=\"save\"\n></natural-fixed-button>\n\n<natural-fixed-button\n (click)=\"clickDelete()\"\n *ngIf=\"!isCreation && (!model.permissions || model.permissions.delete)\"\n [disabled]=\"form.disabled\"\n class=\"detail-speed-dial\"\n color=\"warn\"\n icon=\"delete_forever\"\n i18n-matTooltip\n matTooltip=\"Supprimer d\u00E9finitivement\"\n matTooltipPosition=\"left\"\n></natural-fixed-button>\n" }]
|
|
40
|
+
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }]; }, propDecorators: { model: [{
|
|
28
41
|
type: Input
|
|
29
42
|
}], form: [{
|
|
30
43
|
type: Input
|
|
@@ -33,4 +46,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImpor
|
|
|
33
46
|
}], delete: [{
|
|
34
47
|
type: Output
|
|
35
48
|
}] } });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4ZWQtYnV0dG9uLWRldGFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9maXhlZC1idXR0b24tZGV0YWlsL2ZpeGVkLWJ1dHRvbi1kZXRhaWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvZml4ZWQtYnV0dG9uLWRldGFpbC9maXhlZC1idXR0b24tZGV0YWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7OztBQWdCckUsTUFBTSxPQUFPLGlDQUFpQztJQXVCMUMsWUFBbUIsS0FBcUI7UUF0QmhDLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDbEIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQWtCQSxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNsQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUd4RCxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBckJELElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFDVyxLQUFLLENBQUMsS0FBWTtRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1NBQ3JDO0lBQ0wsQ0FBQztJQWFNLFdBQVc7UUFDZCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDdEI7SUFDTCxDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUN0QjtJQUNMLENBQUM7OzhIQXJDUSxpQ0FBaUM7a0hBQWpDLGlDQUFpQyw4SkNoQjlDLCttQkFvQkE7MkZESmEsaUNBQWlDO2tCQUw3QyxTQUFTOytCQUNJLDZCQUE2QjtxR0FhNUIsS0FBSztzQkFEZixLQUFLO2dCQVVVLElBQUk7c0JBQW5CLEtBQUs7Z0JBRW9CLE1BQU07c0JBQS9CLE1BQU07Z0JBQ21CLE1BQU07c0JBQS9CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybUdyb3VwfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG50eXBlIE1vZGVsID0ge1xuICAgIGlkPzogc3RyaW5nO1xuICAgIHBlcm1pc3Npb25zPzoge1xuICAgICAgICBkZWxldGU6IGJvb2xlYW47XG4gICAgfTtcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmF0dXJhbC1maXhlZC1idXR0b24tZGV0YWlsJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZml4ZWQtYnV0dG9uLWRldGFpbC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZml4ZWQtYnV0dG9uLWRldGFpbC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsRml4ZWRCdXR0b25EZXRhaWxDb21wb25lbnQge1xuICAgIHByaXZhdGUgY2FuQ2hhbmdlID0gdHJ1ZTtcbiAgICBwdWJsaWMgaXNDcmVhdGlvbiA9IGZhbHNlO1xuXG4gICAgcHVibGljIGdldCBtb2RlbCgpOiBNb2RlbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tb2RlbDtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgbW9kZWwodmFsdWU6IE1vZGVsKSB7XG4gICAgICAgIHRoaXMuX21vZGVsID0gdmFsdWU7XG4gICAgICAgIGlmICh0aGlzLmNhbkNoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5pc0NyZWF0aW9uID0gIXRoaXMuX21vZGVsLmlkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbW9kZWwhOiBNb2RlbDtcblxuICAgIEBJbnB1dCgpIHB1YmxpYyBmb3JtITogRm9ybUdyb3VwO1xuXG4gICAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBjcmVhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBkZWxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3Iocm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XG4gICAgICAgIHJvdXRlLnBhcmFtcy5zdWJzY3JpYmUoKCkgPT4gKHRoaXMuY2FuQ2hhbmdlID0gdHJ1ZSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbGlja0NyZWF0ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybS5lbmFibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZS5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY2xpY2tEZWxldGUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZvcm0uZW5hYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5kZWxldGUuZW1pdCgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPG5hdHVyYWwtZml4ZWQtYnV0dG9uXG4gICAgKGNsaWNrKT1cImNsaWNrQ3JlYXRlKClcIlxuICAgICpuZ0lmPVwiaXNDcmVhdGlvblwiXG4gICAgW2Rpc2FibGVkXT1cImZvcm0uZGlzYWJsZWRcIlxuICAgIFtjb2xvcl09XCJmb3JtLnZhbGlkID8gJ2FjY2VudCcgOiAnd2FybidcIlxuICAgIGNsYXNzPVwiZGV0YWlsLXNwZWVkLWRpYWxcIlxuICAgIGljb249XCJzYXZlXCJcbj48L25hdHVyYWwtZml4ZWQtYnV0dG9uPlxuXG48bmF0dXJhbC1maXhlZC1idXR0b25cbiAgICAoY2xpY2spPVwiY2xpY2tEZWxldGUoKVwiXG4gICAgKm5nSWY9XCIhaXNDcmVhdGlvbiAmJiAoIW1vZGVsLnBlcm1pc3Npb25zIHx8IG1vZGVsLnBlcm1pc3Npb25zLmRlbGV0ZSlcIlxuICAgIFtkaXNhYmxlZF09XCJmb3JtLmRpc2FibGVkXCJcbiAgICBjbGFzcz1cImRldGFpbC1zcGVlZC1kaWFsXCJcbiAgICBjb2xvcj1cIndhcm5cIlxuICAgIGljb249XCJkZWxldGVfZm9yZXZlclwiXG4gICAgaTE4bi1tYXRUb29sdGlwXG4gICAgbWF0VG9vbHRpcD1cIlN1cHByaW1lciBkw6lmaW5pdGl2ZW1lbnRcIlxuICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImxlZnRcIlxuPjwvbmF0dXJhbC1maXhlZC1idXR0b24+XG4iXX0=
|