@ecodev/natural 45.5.0 → 46.0.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-controller.mjs +2 -2
- package/esm2020/lib/classes/abstract-detail.mjs +10 -3
- package/esm2020/lib/classes/abstract-navigable-list.mjs +1 -1
- package/esm2020/lib/classes/rxjs.mjs +1 -1
- package/esm2020/lib/classes/validators.mjs +2 -2
- package/esm2020/lib/modules/avatar/service/avatar.service.mjs +2 -2
- package/esm2020/lib/modules/avatar/service/md5.mjs +4 -4
- package/esm2020/lib/modules/columns-picker/columns-picker-column.directive.mjs +1 -1
- package/esm2020/lib/modules/common/pipes/swiss-date.pipe.mjs +1 -1
- package/esm2020/lib/modules/dropdown-components/type-date/type-date.component.mjs +3 -3
- package/esm2020/lib/modules/dropdown-components/type-date-range/type-date-range.component.mjs +4 -4
- package/esm2020/lib/modules/dropdown-components/type-hierarchic-selector/type-hierarchic-selector.component.mjs +1 -1
- package/esm2020/lib/modules/dropdown-components/type-text/type-text.component.mjs +2 -2
- package/esm2020/lib/modules/file/abstract-file.mjs +2 -2
- package/esm2020/lib/modules/file/component/file.component.mjs +32 -24
- package/esm2020/lib/modules/file/file-drop.directive.mjs +1 -1
- package/esm2020/lib/modules/file/file-select.directive.mjs +1 -1
- package/esm2020/lib/modules/fixed-button/fixed-button.component.mjs +2 -2
- package/esm2020/lib/modules/hierarchic-selector/classes/hierarchic-filters-configuration.mjs +1 -1
- package/esm2020/lib/modules/logger/error-handler.mjs +1 -1
- package/esm2020/lib/modules/panels/fallback-if-no-opened-panels.urlmatcher.mjs +2 -2
- package/esm2020/lib/modules/panels/panels.service.mjs +2 -2
- package/esm2020/lib/modules/panels/types.mjs +1 -1
- package/esm2020/lib/modules/relations/relations.component.mjs +2 -2
- package/esm2020/lib/modules/search/input/input.component.mjs +4 -4
- package/esm2020/lib/modules/search/search/search.component.mjs +2 -2
- package/esm2020/lib/modules/search/types/facet.mjs +1 -1
- package/esm2020/lib/modules/search/types/values.mjs +1 -1
- package/esm2020/lib/modules/select/abstract-select.component.mjs +2 -2
- package/esm2020/lib/modules/select/select/select.component.mjs +1 -1
- package/esm2020/lib/modules/select/select-enum/select-enum.component.mjs +1 -2
- package/esm2020/lib/modules/select/select-hierarchic/select-hierarchic.component.mjs +1 -1
- package/esm2020/lib/modules/sidenav/sidenav/sidenav.component.mjs +2 -3
- package/esm2020/lib/modules/sidenav/sidenav-content/sidenav-content.component.mjs +2 -3
- package/esm2020/lib/modules/sidenav/sidenav.service.mjs +1 -1
- package/esm2020/lib/modules/table-button/table-button.component.mjs +2 -2
- package/esm2020/lib/services/abstract-model.service.mjs +8 -1
- package/esm2020/lib/services/debounce.service.mjs +1 -1
- package/esm2020/lib/services/persistence.service.mjs +4 -2
- package/esm2020/lib/services/swiss-parsing-date-adapter.service.mjs +1 -1
- package/fesm2015/ecodev-natural.mjs +67 -46
- package/fesm2015/ecodev-natural.mjs.map +1 -1
- package/fesm2020/ecodev-natural.mjs +66 -46
- package/fesm2020/ecodev-natural.mjs.map +1 -1
- package/lib/classes/abstract-controller.d.ts +0 -1
- package/lib/modules/avatar/service/avatar.service.d.ts +0 -1
- package/lib/modules/dropdown-components/type-date-range/type-date-range.component.d.ts +1 -1
- package/lib/modules/dropdown-components/type-hierarchic-selector/type-hierarchic-selector.component.d.ts +1 -2
- package/lib/modules/dropdown-components/type-text/type-text.component.d.ts +2 -2
- package/lib/modules/file/abstract-file.d.ts +1 -1
- package/lib/modules/file/component/file.component.d.ts +32 -9
- package/lib/modules/fixed-button/fixed-button.component.d.ts +0 -1
- package/lib/modules/hierarchic-selector/classes/hierarchic-filters-configuration.d.ts +1 -2
- package/lib/modules/panels/types.d.ts +1 -2
- package/lib/modules/relations/relations.component.d.ts +2 -2
- package/lib/modules/search/input/input.component.d.ts +6 -5
- package/lib/modules/search/search/search.component.d.ts +2 -2
- package/lib/modules/search/types/facet.d.ts +1 -2
- package/lib/modules/search/types/values.d.ts +2 -4
- package/lib/modules/select/abstract-select.component.d.ts +2 -2
- package/lib/modules/select/select-enum/select-enum.component.d.ts +0 -1
- package/lib/modules/sidenav/sidenav/sidenav.component.d.ts +0 -1
- package/lib/modules/sidenav/sidenav-content/sidenav-content.component.d.ts +0 -1
- package/lib/modules/table-button/table-button.component.d.ts +2 -2
- package/lib/services/debounce.service.d.ts +1 -1
- package/package.json +1 -1
|
@@ -98,7 +98,9 @@ export class NaturalPersistenceService {
|
|
|
98
98
|
try {
|
|
99
99
|
result = JSON.parse(value);
|
|
100
100
|
}
|
|
101
|
-
catch (e) {
|
|
101
|
+
catch (e) {
|
|
102
|
+
// noop
|
|
103
|
+
}
|
|
102
104
|
return this.isValid(key, storageKey, result) ? result : null;
|
|
103
105
|
}
|
|
104
106
|
}
|
|
@@ -118,4 +120,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImpor
|
|
|
118
120
|
type: Inject,
|
|
119
121
|
args: [NATURAL_PERSISTENCE_VALIDATOR]
|
|
120
122
|
}] }]; } });
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc2lzdGVuY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9zZXJ2aWNlcy9wZXJzaXN0ZW5jZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFM0UsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUNoQyxPQUFPLEVBQWlCLGVBQWUsRUFBQyxNQUFNLDJDQUEyQyxDQUFDOzs7QUFVMUYsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsSUFBSSxjQUFjLENBQzNELHVJQUF1SSxDQUMxSSxDQUFDO0FBS0YsTUFBTSxPQUFPLHlCQUF5QjtJQUNsQyxZQUNxQixNQUFjLEVBQ1csY0FBOEIsRUFDSixPQUE2QjtRQUZoRixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ1csbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQ0osWUFBTyxHQUFQLE9BQU8sQ0FBc0I7UUFFakcsZ0NBQWdDO1FBQ2hDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7O09BR0c7SUFDSSxPQUFPLENBQ1YsR0FBVyxFQUNYLEtBQWMsRUFDZCxLQUFxQixFQUNyQixVQUFrQixFQUNsQixnQkFBbUM7UUFFbkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLEdBQUcsQ0FBQyxHQUFXLEVBQUUsS0FBcUIsRUFBRSxVQUFrQjtRQUM3RCxXQUFXO1FBQ1gsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDN0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDL0MsT0FBTyxNQUFNLENBQUM7U0FDakI7UUFFRCxlQUFlO1FBQ2YsTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzdCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN0QyxPQUFPLE1BQU0sQ0FBQztTQUNqQjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7T0FFRztJQUNJLFVBQVUsQ0FBQyxHQUFXLEVBQUUsS0FBcUI7UUFDaEQsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRS9DLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksWUFBWSxDQUNmLEdBQVcsRUFDWCxLQUFjLEVBQ2QsS0FBcUIsRUFDckIsZ0JBQW1DO1FBRW5DLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFbkYsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzNCLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3RCO2FBQU07WUFDSCxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN2QztRQUVELGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFFLEVBQUMsVUFBVSxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7UUFFOUUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFTSxjQUFjLENBQUMsR0FBVyxFQUFFLFVBQWtCO1FBQ2pELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFFL0UsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGdCQUFnQixDQUFDLEdBQVcsRUFBRSxLQUFjLEVBQUUsVUFBa0I7UUFDbkUsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7U0FDdkU7YUFBTTtZQUNILElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUMzRjtJQUNMLENBQUM7SUFFTyxhQUFhLENBQUMsR0FBVyxFQUFFLFVBQWtCO1FBQ2pELE9BQU8sVUFBVSxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDbEMsQ0FBQztJQUVELHVDQUF1QztJQUN2Qyx3REFBd0Q7SUFDeEQsZ0lBQWdJO0lBQ3hILGFBQWEsQ0FBQyxLQUFjO1FBQ2hDLE9BQU8sS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRSxDQUFDLENBQUMsOEJBQThCO0lBQ3hFLENBQUM7SUFFTyxXQUFXLENBQUksR0FBVyxFQUFFLFVBQXlCLEVBQUUsS0FBb0I7UUFDL0UsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNSLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFFRCxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSTtZQUNBLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzlCO1FBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRTtRQUVkLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNqRSxDQUFDOztzSEEzSFEseUJBQXlCLHdDQUd0QixlQUFlLGFBQ0gsNkJBQTZCOzBIQUo1Qyx5QkFBeUIsY0FGdEIsTUFBTTsyRkFFVCx5QkFBeUI7a0JBSHJDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFJUSxNQUFNOzJCQUFDLGVBQWU7OzBCQUN0QixRQUFROzswQkFBSSxNQUFNOzJCQUFDLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgTmF2aWdhdGlvbkV4dHJhcywgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtjbG9uZX0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7TmF0dXJhbFN0b3JhZ2UsIFNFU1NJT05fU1RPUkFHRX0gZnJvbSAnLi4vbW9kdWxlcy9jb21tb24vc2VydmljZXMvbWVtb3J5LXN0b3JhZ2UnO1xuXG4vKipcbiAqIFZhbGlkYXRvciBmb3IgcGVyc2lzdGVkIHZhbHVlcyByZXRyaWV2ZWQgZnJvbSBOYXR1cmFsUGVyc2lzdGVuY2VTZXJ2aWNlLiBJZiByZXR1cm5zIGZhbHNlLCB0aGUgcGVyc2lzdGVkIHZhbHVlXG4gKiB3aWxsIGJlIGlnbm9yZWQsIGFuZCBpbnN0ZWFkIGBudWxsYCB3aWxsIGJlIHJldHVybmVkLlxuICpcbiAqIGBzdG9yYWdlS2V5YCBpcyBvbmx5IGdpdmVuIGlmIHRoZSB2YWx1ZSBpcyBjb21pbmcgZnJvbSBzZXNzaW9uIHN0b3JhZ2UgKGFuZCBub3QgZnJvbSBVUkwpLlxuICovXG5leHBvcnQgdHlwZSBQZXJzaXN0ZW5jZVZhbGlkYXRvciA9IChrZXk6IHN0cmluZywgc3RvcmFnZUtleTogc3RyaW5nIHwgbnVsbCwgdmFsdWU6IHVua25vd24pID0+IGJvb2xlYW47XG5cbmV4cG9ydCBjb25zdCBOQVRVUkFMX1BFUlNJU1RFTkNFX1ZBTElEQVRPUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxQZXJzaXN0ZW5jZVZhbGlkYXRvcj4oXG4gICAgJ1ZhbGlkYXRvciBmb3IgcGVyc2lzdGVkIHZhbHVlIHJldHJpZXZlZCBmcm9tIE5hdHVyYWxQZXJzaXN0ZW5jZVNlcnZpY2UuIElmIHJldHVybnMgZmFsc2UsIHRoZSBwZXJzaXN0ZWQgdmFsdWUgd2lsbCBuZXZlciBiZSByZXR1cm5lZC4nLFxuKTtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTmF0dXJhbFBlcnNpc3RlbmNlU2VydmljZSB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgICAgICBASW5qZWN0KFNFU1NJT05fU1RPUkFHRSkgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uU3RvcmFnZTogTmF0dXJhbFN0b3JhZ2UsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTkFUVVJBTF9QRVJTSVNURU5DRV9WQUxJREFUT1IpIHByaXZhdGUgcmVhZG9ubHkgaXNWYWxpZDogUGVyc2lzdGVuY2VWYWxpZGF0b3IsXG4gICAgKSB7XG4gICAgICAgIC8vIEJ5IGRlZmF1bHQsIGFueXRoaW5nIGlzIHZhbGlkXG4gICAgICAgIHRoaXMuaXNWYWxpZCA9IHRoaXMuaXNWYWxpZCA/PyAoKCkgPT4gdHJ1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGVyc2lzdCBpbiB1cmwgYW5kIGxvY2FsIHN0b3JhZ2UgdGhlIGdpdmVuIHZhbHVlIHdpdGggdGhlIGdpdmVuIGtleS5cbiAgICAgKiBXaGVuIHN0b3JlZCBpbiBzdG9yYWdlLCB3ZSBuZWVkIG1vcmUgXCJrZXlcIiB0byBpZGVudGlmeSB0aGUgY29udHJvbGxlci5cbiAgICAgKi9cbiAgICBwdWJsaWMgcGVyc2lzdChcbiAgICAgICAga2V5OiBzdHJpbmcsXG4gICAgICAgIHZhbHVlOiB1bmtub3duLFxuICAgICAgICByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHN0b3JhZ2VLZXk6IHN0cmluZyxcbiAgICAgICAgbmF2aWdhdGlvbkV4dHJhcz86IE5hdmlnYXRpb25FeHRyYXMsXG4gICAgKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgIHRoaXMucGVyc2lzdEluU3RvcmFnZShrZXksIHZhbHVlLCBzdG9yYWdlS2V5KTtcbiAgICAgICAgcmV0dXJuIHRoaXMucGVyc2lzdEluVXJsKGtleSwgdmFsdWUsIHJvdXRlLCBuYXZpZ2F0aW9uRXh0cmFzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm4gb2JqZWN0IHdpdGggcGVyc2lzdGVkIGRhdGEgaW4gdXJsIG9yIGluIHNlc3Npb24gc3RvcmFnZVxuICAgICAqIFVybCBoYXMgcHJpb3JpdHkgb3ZlciBzZXNzaW9uIHN0b3JhZ2UgYmVjYXVzZSBvZiB1cmwgc2hhcmluZy4gV2hlbiB1cmwgaXMgcHJvdmlkZWQsIHNlc3Npb24gc3RvcmFnZSBpcyBpZ25vcmVkLlxuICAgICAqIFVybCBhbmQgc3RvcmFnZSBhcmUgc3luY2VkIHdoZW4gYXJyaXZpbmcgaW4gYSBjb21wb25lbnQgOlxuICAgICAqICAtIFdoZW4gbG9hZGluZyB3aXRoIHVybCBwYXJhbWV0ZXJzLCBzdG9yYWdlIGlzIHVwZGF0ZWQgdG8gc3RheSBzeW5jZWRcbiAgICAgKiAgLSBXaGVuIGxvYWRpbmcgd2l0aG91dCB1cmwsIGJ1dCB3aXRoIHN0b3JhZ2UgZGF0YSwgdGhlIHVybCBpcyB1cGRhdGVkXG4gICAgICovXG4gICAgcHVibGljIGdldChrZXk6IHN0cmluZywgcm91dGU6IEFjdGl2YXRlZFJvdXRlLCBzdG9yYWdlS2V5OiBzdHJpbmcpOiBhbnkgfCBudWxsIHtcbiAgICAgICAgLy8gRnJvbSB1cmxcbiAgICAgICAgbGV0IHBhcmFtcyA9IHRoaXMuZ2V0RnJvbVVybChrZXksIHJvdXRlKTtcbiAgICAgICAgaWYgKCF0aGlzLmlzRmFsc2V5VmFsdWUocGFyYW1zKSkge1xuICAgICAgICAgICAgdGhpcy5wZXJzaXN0SW5TdG9yYWdlKGtleSwgcGFyYW1zLCBzdG9yYWdlS2V5KTtcbiAgICAgICAgICAgIHJldHVybiBwYXJhbXM7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGcm9tIHN0b3JhZ2VcbiAgICAgICAgcGFyYW1zID0gdGhpcy5nZXRGcm9tU3RvcmFnZShrZXksIHN0b3JhZ2VLZXkpO1xuICAgICAgICBpZiAoIXRoaXMuaXNGYWxzZXlWYWx1ZShwYXJhbXMpKSB7XG4gICAgICAgICAgICB0aGlzLnBlcnNpc3RJblVybChrZXksIHBhcmFtcywgcm91dGUpO1xuICAgICAgICAgICAgcmV0dXJuIHBhcmFtcztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBnaXZlbiBrZXkgZnJvbSB0aGUgdXJsIHBhcmFtZXRlcnNcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0RnJvbVVybChrZXk6IHN0cmluZywgcm91dGU6IEFjdGl2YXRlZFJvdXRlKTogYW55IHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gcm91dGUuc25hcHNob3QucGFyYW1NYXAuZ2V0KGtleSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZGVzZXJpYWxpemUoa2V5LCBudWxsLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkL292ZXJyaWRlIGdpdmVuIHBhaXIga2V5LXZhbHVlIGluIHRoZSB1cmxcbiAgICAgKiBBbHdheXMgSlNPTi5zdHJpbmdpZnkoKSB0aGUgZ2l2ZW4gdmFsdWVcbiAgICAgKiBJZiB0aGUgdmFsdWUgaXMgZmFsc2V5LCB0aGUgcGFpciBrZXktdmFsdWUgaXMgcmVtb3ZlZCBmcm9tIHRoZSB1cmwuXG4gICAgICovXG4gICAgcHVibGljIHBlcnNpc3RJblVybChcbiAgICAgICAga2V5OiBzdHJpbmcsXG4gICAgICAgIHZhbHVlOiB1bmtub3duLFxuICAgICAgICByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIG5hdmlnYXRpb25FeHRyYXM/OiBOYXZpZ2F0aW9uRXh0cmFzLFxuICAgICk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICBjb25zdCBwYXJhbXMgPSBjbG9uZShyb3V0ZS5zbmFwc2hvdC51cmxbcm91dGUuc25hcHNob3QudXJsLmxlbmd0aCAtIDFdLnBhcmFtZXRlcnMpO1xuXG4gICAgICAgIGlmICh0aGlzLmlzRmFsc2V5VmFsdWUodmFsdWUpKSB7XG4gICAgICAgICAgICBkZWxldGUgcGFyYW1zW2tleV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwYXJhbXNba2V5XSA9IEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIG5hdmlnYXRpb25FeHRyYXMgPSBPYmplY3QuYXNzaWduKG5hdmlnYXRpb25FeHRyYXMgfHwge30sIHtyZWxhdGl2ZVRvOiByb3V0ZX0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4nLCBwYXJhbXNdLCBuYXZpZ2F0aW9uRXh0cmFzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RnJvbVN0b3JhZ2Uoa2V5OiBzdHJpbmcsIHN0b3JhZ2VLZXk6IHN0cmluZyk6IGFueSB8IG51bGwge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmdldFN0b3JhZ2VLZXkoa2V5LCBzdG9yYWdlS2V5KSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZGVzZXJpYWxpemUoa2V5LCBzdG9yYWdlS2V5LCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU3RvcmUgdmFsdWUgaW4gc2Vzc2lvbiBzdG9yYWdlLlxuICAgICAqIElmIHZhbHVlIGlzIGZhbHN5LCB0aGUgZW50cnkgaXMgcmVtb3ZlZFxuICAgICAqL1xuICAgIHB1YmxpYyBwZXJzaXN0SW5TdG9yYWdlKGtleTogc3RyaW5nLCB2YWx1ZTogdW5rbm93biwgc3RvcmFnZUtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRmFsc2V5VmFsdWUodmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLnNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5nZXRTdG9yYWdlS2V5KGtleSwgc3RvcmFnZUtleSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuZ2V0U3RvcmFnZUtleShrZXksIHN0b3JhZ2VLZXkpLCBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTdG9yYWdlS2V5KGtleTogc3RyaW5nLCBzdG9yYWdlS2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gc3RvcmFnZUtleSArICctJyArIGtleTtcbiAgICB9XG5cbiAgICAvLyBSZXR1cm5zIGlmIHRoZSBnaXZlbiB2YWx1ZSBpcyBmYWxzZXlcbiAgICAvLyBGYWxzZXkgdmFsdWVzIGFyZSA6IG51bGwsIHVuZGVmaW5lZCBhbmQgZW1wdHkgc3RyaW5nLlxuICAgIC8vIFRoaXMgY2F1c2UgdXN1YWxseSB0aGUgcGFyYW1ldGVyIHRvIGJlIHJlbW92ZWQgZnJvbSB1cmwvc3RvcmFnZSBpbnN0ZWFkIG9mIGJlaW5nIHN0b3JlZCB3aXRoIG5vIHZhbHVlLiBVcmwgd291bGQgYmUgcG9sbHV0ZWQuXG4gICAgcHJpdmF0ZSBpc0ZhbHNleVZhbHVlKHZhbHVlOiB1bmtub3duKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB2YWx1ZSA9PSBudWxsIHx8IHZhbHVlID09PSAnJzsgLy8gPT0gbWVhbnMgbnVsbCBvciB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXNlcmlhbGl6ZTxUPihrZXk6IHN0cmluZywgc3RvcmFnZUtleTogc3RyaW5nIHwgbnVsbCwgdmFsdWU6IHN0cmluZyB8IG51bGwpOiB1bmtub3duIHwgbnVsbCB7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHJlc3VsdCA9IG51bGw7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXN1bHQgPSBKU09OLnBhcnNlKHZhbHVlKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge31cblxuICAgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkKGtleSwgc3RvcmFnZUtleSwgcmVzdWx0KSA/IHJlc3VsdCA6IG51bGw7XG4gICAgfVxufVxuIl19
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc2lzdGVuY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9zZXJ2aWNlcy9wZXJzaXN0ZW5jZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFM0UsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUNoQyxPQUFPLEVBQWlCLGVBQWUsRUFBQyxNQUFNLDJDQUEyQyxDQUFDOzs7QUFVMUYsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsSUFBSSxjQUFjLENBQzNELHVJQUF1SSxDQUMxSSxDQUFDO0FBS0YsTUFBTSxPQUFPLHlCQUF5QjtJQUNsQyxZQUNxQixNQUFjLEVBQ1csY0FBOEIsRUFDSixPQUE2QjtRQUZoRixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ1csbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQ0osWUFBTyxHQUFQLE9BQU8sQ0FBc0I7UUFFakcsZ0NBQWdDO1FBQ2hDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7O09BR0c7SUFDSSxPQUFPLENBQ1YsR0FBVyxFQUNYLEtBQWMsRUFDZCxLQUFxQixFQUNyQixVQUFrQixFQUNsQixnQkFBbUM7UUFFbkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLEdBQUcsQ0FBQyxH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LFVBQWtCO1FBQ2pELE9BQU8sVUFBVSxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDbEMsQ0FBQztJQUVELHVDQUF1QztJQUN2Qyx3REFBd0Q7SUFDeEQsZ0lBQWdJO0lBQ3hILGFBQWEsQ0FBQyxLQUFjO1FBQ2hDLE9BQU8sS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRSxDQUFDLENBQUMsOEJBQThCO0lBQ3hFLENBQUM7SUFFTyxXQUFXLENBQUMsR0FBVyxFQUFFLFVBQXlCLEVBQUUsS0FBb0I7UUFDNUUsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNSLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFFRCxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSTtZQUNBLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzlCO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDUixPQUFPO1NBQ1Y7UUFFRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDakUsQ0FBQzs7c0hBN0hRLHlCQUF5Qix3Q0FHdEIsZUFBZSxhQUNILDZCQUE2QjswSEFKNUMseUJBQXlCLGNBRnRCLE1BQU07MkZBRVQseUJBQXlCO2tCQUhyQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBSVEsTUFBTTsyQkFBQyxlQUFlOzswQkFDdEIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIE5hdmlnYXRpb25FeHRyYXMsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7Y2xvbmV9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQge05hdHVyYWxTdG9yYWdlLCBTRVNTSU9OX1NUT1JBR0V9IGZyb20gJy4uL21vZHVsZXMvY29tbW9uL3NlcnZpY2VzL21lbW9yeS1zdG9yYWdlJztcblxuLyoqXG4gKiBWYWxpZGF0b3IgZm9yIHBlcnNpc3RlZCB2YWx1ZXMgcmV0cmlldmVkIGZyb20gTmF0dXJhbFBlcnNpc3RlbmNlU2VydmljZS4gSWYgcmV0dXJucyBmYWxzZSwgdGhlIHBlcnNpc3RlZCB2YWx1ZVxuICogd2lsbCBiZSBpZ25vcmVkLCBhbmQgaW5zdGVhZCBgbnVsbGAgd2lsbCBiZSByZXR1cm5lZC5cbiAqXG4gKiBgc3RvcmFnZUtleWAgaXMgb25seSBnaXZlbiBpZiB0aGUgdmFsdWUgaXMgY29taW5nIGZyb20gc2Vzc2lvbiBzdG9yYWdlIChhbmQgbm90IGZyb20gVVJMKS5cbiAqL1xuZXhwb3J0IHR5cGUgUGVyc2lzdGVuY2VWYWxpZGF0b3IgPSAoa2V5OiBzdHJpbmcsIHN0b3JhZ2VLZXk6IHN0cmluZyB8IG51bGwsIHZhbHVlOiB1bmtub3duKSA9PiBib29sZWFuO1xuXG5leHBvcnQgY29uc3QgTkFUVVJBTF9QRVJTSVNURU5DRV9WQUxJREFUT1IgPSBuZXcgSW5qZWN0aW9uVG9rZW48UGVyc2lzdGVuY2VWYWxpZGF0b3I+KFxuICAgICdWYWxpZGF0b3IgZm9yIHBlcnNpc3RlZCB2YWx1ZSByZXRyaWV2ZWQgZnJvbSBOYXR1cmFsUGVyc2lzdGVuY2VTZXJ2aWNlLiBJZiByZXR1cm5zIGZhbHNlLCB0aGUgcGVyc2lzdGVkIHZhbHVlIHdpbGwgbmV2ZXIgYmUgcmV0dXJuZWQuJyxcbik7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxQZXJzaXN0ZW5jZVNlcnZpY2Uge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgQEluamVjdChTRVNTSU9OX1NUT1JBR0UpIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvblN0b3JhZ2U6IE5hdHVyYWxTdG9yYWdlLFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE5BVFVSQUxfUEVSU0lTVEVOQ0VfVkFMSURBVE9SKSBwcml2YXRlIHJlYWRvbmx5IGlzVmFsaWQ6IFBlcnNpc3RlbmNlVmFsaWRhdG9yLFxuICAgICkge1xuICAgICAgICAvLyBCeSBkZWZhdWx0LCBhbnl0aGluZyBpcyB2YWxpZFxuICAgICAgICB0aGlzLmlzVmFsaWQgPSB0aGlzLmlzVmFsaWQgPz8gKCgpID0+IHRydWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBlcnNpc3QgaW4gdXJsIGFuZCBsb2NhbCBzdG9yYWdlIHRoZSBnaXZlbiB2YWx1ZSB3aXRoIHRoZSBnaXZlbiBrZXkuXG4gICAgICogV2hlbiBzdG9yZWQgaW4gc3RvcmFnZSwgd2UgbmVlZCBtb3JlIFwia2V5XCIgdG8gaWRlbnRpZnkgdGhlIGNvbnRyb2xsZXIuXG4gICAgICovXG4gICAgcHVibGljIHBlcnNpc3QoXG4gICAgICAgIGtleTogc3RyaW5nLFxuICAgICAgICB2YWx1ZTogdW5rbm93bixcbiAgICAgICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBzdG9yYWdlS2V5OiBzdHJpbmcsXG4gICAgICAgIG5hdmlnYXRpb25FeHRyYXM/OiBOYXZpZ2F0aW9uRXh0cmFzLFxuICAgICk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICB0aGlzLnBlcnNpc3RJblN0b3JhZ2Uoa2V5LCB2YWx1ZSwgc3RvcmFnZUtleSk7XG4gICAgICAgIHJldHVybiB0aGlzLnBlcnNpc3RJblVybChrZXksIHZhbHVlLCByb3V0ZSwgbmF2aWdhdGlvbkV4dHJhcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJuIG9iamVjdCB3aXRoIHBlcnNpc3RlZCBkYXRhIGluIHVybCBvciBpbiBzZXNzaW9uIHN0b3JhZ2VcbiAgICAgKiBVcmwgaGFzIHByaW9yaXR5IG92ZXIgc2Vzc2lvbiBzdG9yYWdlIGJlY2F1c2Ugb2YgdXJsIHNoYXJpbmcuIFdoZW4gdXJsIGlzIHByb3ZpZGVkLCBzZXNzaW9uIHN0b3JhZ2UgaXMgaWdub3JlZC5cbiAgICAgKiBVcmwgYW5kIHN0b3JhZ2UgYXJlIHN5bmNlZCB3aGVuIGFycml2aW5nIGluIGEgY29tcG9uZW50IDpcbiAgICAgKiAgLSBXaGVuIGxvYWRpbmcgd2l0aCB1cmwgcGFyYW1ldGVycywgc3RvcmFnZSBpcyB1cGRhdGVkIHRvIHN0YXkgc3luY2VkXG4gICAgICogIC0gV2hlbiBsb2FkaW5nIHdpdGhvdXQgdXJsLCBidXQgd2l0aCBzdG9yYWdlIGRhdGEsIHRoZSB1cmwgaXMgdXBkYXRlZFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQoa2V5OiBzdHJpbmcsIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgc3RvcmFnZUtleTogc3RyaW5nKTogYW55IHwgbnVsbCB7XG4gICAgICAgIC8vIEZyb20gdXJsXG4gICAgICAgIGxldCBwYXJhbXMgPSB0aGlzLmdldEZyb21Vcmwoa2V5LCByb3V0ZSk7XG4gICAgICAgIGlmICghdGhpcy5pc0ZhbHNleVZhbHVlKHBhcmFtcykpIHtcbiAgICAgICAgICAgIHRoaXMucGVyc2lzdEluU3RvcmFnZShrZXksIHBhcmFtcywgc3RvcmFnZUtleSk7XG4gICAgICAgICAgICByZXR1cm4gcGFyYW1zO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRnJvbSBzdG9yYWdlXG4gICAgICAgIHBhcmFtcyA9IHRoaXMuZ2V0RnJvbVN0b3JhZ2Uoa2V5LCBzdG9yYWdlS2V5KTtcbiAgICAgICAgaWYgKCF0aGlzLmlzRmFsc2V5VmFsdWUocGFyYW1zKSkge1xuICAgICAgICAgICAgdGhpcy5wZXJzaXN0SW5Vcmwoa2V5LCBwYXJhbXMsIHJvdXRlKTtcbiAgICAgICAgICAgIHJldHVybiBwYXJhbXM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgZ2l2ZW4ga2V5IGZyb20gdGhlIHVybCBwYXJhbWV0ZXJzXG4gICAgICovXG4gICAgcHVibGljIGdldEZyb21Vcmwoa2V5OiBzdHJpbmcsIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSk6IGFueSB8IG51bGwge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHJvdXRlLnNuYXBzaG90LnBhcmFtTWFwLmdldChrZXkpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmRlc2VyaWFsaXplKGtleSwgbnVsbCwgdmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZC9vdmVycmlkZSBnaXZlbiBwYWlyIGtleS12YWx1ZSBpbiB0aGUgdXJsXG4gICAgICogQWx3YXlzIEpTT04uc3RyaW5naWZ5KCkgdGhlIGdpdmVuIHZhbHVlXG4gICAgICogSWYgdGhlIHZhbHVlIGlzIGZhbHNleSwgdGhlIHBhaXIga2V5LXZhbHVlIGlzIHJlbW92ZWQgZnJvbSB0aGUgdXJsLlxuICAgICAqL1xuICAgIHB1YmxpYyBwZXJzaXN0SW5VcmwoXG4gICAgICAgIGtleTogc3RyaW5nLFxuICAgICAgICB2YWx1ZTogdW5rbm93bixcbiAgICAgICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBuYXZpZ2F0aW9uRXh0cmFzPzogTmF2aWdhdGlvbkV4dHJhcyxcbiAgICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgY29uc3QgcGFyYW1zID0gY2xvbmUocm91dGUuc25hcHNob3QudXJsW3JvdXRlLnNuYXBzaG90LnVybC5sZW5ndGggLSAxXS5wYXJhbWV0ZXJzKTtcblxuICAgICAgICBpZiAodGhpcy5pc0ZhbHNleVZhbHVlKHZhbHVlKSkge1xuICAgICAgICAgICAgZGVsZXRlIHBhcmFtc1trZXldO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGFyYW1zW2tleV0gPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBuYXZpZ2F0aW9uRXh0cmFzID0gT2JqZWN0LmFzc2lnbihuYXZpZ2F0aW9uRXh0cmFzIHx8IHt9LCB7cmVsYXRpdmVUbzogcm91dGV9KTtcblxuICAgICAgICByZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycuJywgcGFyYW1zXSwgbmF2aWdhdGlvbkV4dHJhcyk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEZyb21TdG9yYWdlKGtleTogc3RyaW5nLCBzdG9yYWdlS2V5OiBzdHJpbmcpOiBhbnkgfCBudWxsIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5nZXRTdG9yYWdlS2V5KGtleSwgc3RvcmFnZUtleSkpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmRlc2VyaWFsaXplKGtleSwgc3RvcmFnZUtleSwgdmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFN0b3JlIHZhbHVlIGluIHNlc3Npb24gc3RvcmFnZS5cbiAgICAgKiBJZiB2YWx1ZSBpcyBmYWxzeSwgdGhlIGVudHJ5IGlzIHJlbW92ZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgcGVyc2lzdEluU3RvcmFnZShrZXk6IHN0cmluZywgdmFsdWU6IHVua25vd24sIHN0b3JhZ2VLZXk6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0ZhbHNleVZhbHVlKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuZ2V0U3RvcmFnZUtleShrZXksIHN0b3JhZ2VLZXkpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmdldFN0b3JhZ2VLZXkoa2V5LCBzdG9yYWdlS2V5KSwgSlNPTi5zdHJpbmdpZnkodmFsdWUpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U3RvcmFnZUtleShrZXk6IHN0cmluZywgc3RvcmFnZUtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHN0b3JhZ2VLZXkgKyAnLScgKyBrZXk7XG4gICAgfVxuXG4gICAgLy8gUmV0dXJucyBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgZmFsc2V5XG4gICAgLy8gRmFsc2V5IHZhbHVlcyBhcmUgOiBudWxsLCB1bmRlZmluZWQgYW5kIGVtcHR5IHN0cmluZy5cbiAgICAvLyBUaGlzIGNhdXNlIHVzdWFsbHkgdGhlIHBhcmFtZXRlciB0byBiZSByZW1vdmVkIGZyb20gdXJsL3N0b3JhZ2UgaW5zdGVhZCBvZiBiZWluZyBzdG9yZWQgd2l0aCBubyB2YWx1ZS4gVXJsIHdvdWxkIGJlIHBvbGx1dGVkLlxuICAgIHByaXZhdGUgaXNGYWxzZXlWYWx1ZSh2YWx1ZTogdW5rbm93bik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdmFsdWUgPT0gbnVsbCB8fCB2YWx1ZSA9PT0gJyc7IC8vID09IG1lYW5zIG51bGwgb3IgdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVzZXJpYWxpemUoa2V5OiBzdHJpbmcsIHN0b3JhZ2VLZXk6IHN0cmluZyB8IG51bGwsIHZhbHVlOiBzdHJpbmcgfCBudWxsKTogdW5rbm93biB8IG51bGwge1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCByZXN1bHQgPSBudWxsO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmVzdWx0ID0gSlNPTi5wYXJzZSh2YWx1ZSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIC8vIG5vb3BcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQoa2V5LCBzdG9yYWdlS2V5LCByZXN1bHQpID8gcmVzdWx0IDogbnVsbDtcbiAgICB9XG59XG4iXX0=
|
|
@@ -60,4 +60,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImpor
|
|
|
60
60
|
providedIn: 'root',
|
|
61
61
|
}]
|
|
62
62
|
}] });
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpc3MtcGFyc2luZy1kYXRlLWFkYXB0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9zZXJ2aWNlcy9zd2lzcy1wYXJzaW5nLWRhdGUtYWRhcHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7O0FBRXpELE1BQU0sUUFBUSxHQUFzQjtJQUNoQyw0REFBNEQ7SUFDNUQsMERBQTBEO0lBQzFELDREQUE0RDtJQUM1RCw0REFBNEQ7SUFDNUQsb0JBQW9CO0lBQ3BCLGdEQUFnRDtDQUNuRCxDQUFDO0FBS0YsTUFBTSxPQUFPLDhCQUErQixTQUFRLGlCQUFpQjtJQUNqRTs7Ozs7O09BTUc7SUFDYSxLQUFLLENBQUMsS0FBYztRQUNoQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUMzQixPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzFCO1FBRUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDM0IsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBRTdCLEtBQUssTUFBTSxPQUFPLElBQUksUUFBUSxFQUFFO2dCQUM1QixNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNqQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUU7b0JBQ1gsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztvQkFDNUIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztvQkFDOUIsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztvQkFFMUIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztpQkFDbkQ7YUFDSjtTQUNKO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVPLGlCQUFpQixDQUFDLElBQVksRUFBRSxLQUFhLEVBQUUsSUFBWTtRQUMvRCxzQ0FBc0M7UUFDdEMsSUFBSSxJQUFJLEdBQUcsR0FBRyxFQUFFO1lBQ1osSUFBSSxJQUFJLElBQUksQ0FBQztTQUNoQjtRQUVELEtBQUssR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRTtZQUN0RCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztTQUM3QztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFZSxpQkFBaUI7UUFDN0IsNkZBQTZGO1FBQzdGLG9EQUFvRDtRQUNwRCxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7OzJIQWpEUSw4QkFBOEI7K0hBQTlCLDhCQUE4QixjQUYzQixNQUFNOzJGQUVULDhCQUE4QjtrQkFIMUMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOYXRpdmVEYXRlQWRhcHRlcn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5cbmNvbnN0IHBhdHRlcm5zOiByZWFkb25seSBSZWdFeHBbXSA9IFtcbiAgICAvXig/PGRheT5cXGR7MSwyfSlcXC4oPzxtb250aD5cXGR7MSwyfSlcXC4oPzx5ZWFyPlxcZHs0fXxcXGR7Mn0pJC8sXG4gICAgL14oPzxkYXk+XFxkezEsMn0pLSg/PG1vbnRoPlxcZHsxLDJ9KS0oPzx5ZWFyPlxcZHs0fXxcXGR7Mn0pJC8sXG4gICAgL14oPzxkYXk+XFxkezEsMn0pXFwvKD88bW9udGg+XFxkezEsMn0pXFwvKD88eWVhcj5cXGR7NH18XFxkezJ9KSQvLFxuICAgIC9eKD88ZGF5PlxcZHsxLDJ9KVxcXFwoPzxtb250aD5cXGR7MSwyfSlcXFxcKD88eWVhcj5cXGR7NH18XFxkezJ9KSQvLFxuICAgIC8vIHN0cmljdCBJU08gZm9ybWF0XG4gICAgL14oPzx5ZWFyPlxcZHs0fSktKD88bW9udGg+XFxkezJ9KS0oPzxkYXk+XFxkezJ9KSQvLFxuXTtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTmF0dXJhbFN3aXNzUGFyc2luZ0RhdGVBZGFwdGVyIGV4dGVuZHMgTmF0aXZlRGF0ZUFkYXB0ZXIge1xuICAgIC8qKlxuICAgICAqIFBhcnNlIGNvbW1vbmx5IGFjY2VwdGVkIHN3aXNzIGZvcm1hdCwgc3VjaCBhczpcbiAgICAgKlxuICAgICAqIC0gMjQuMTIuMjAxOFxuICAgICAqIC0gMS40LjE4XG4gICAgICogLSAyMDE4LTEyLTI0XG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIHBhcnNlKHZhbHVlOiB1bmtub3duKTogRGF0ZSB8IG51bGwge1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBjb25zdCB0cmltbWVkID0gdmFsdWUudHJpbSgpO1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHBhdHRlcm4gb2YgcGF0dGVybnMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtID0gdHJpbW1lZC5tYXRjaChwYXR0ZXJuKTtcbiAgICAgICAgICAgICAgICBpZiAobT8uZ3JvdXBzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHllYXIgPSArbS5ncm91cHMueWVhcjtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9udGggPSArbS5ncm91cHMubW9udGg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRheSA9ICttLmdyb3Vwcy5kYXk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRGF0ZUlmVmFsaWQoeWVhciwgbW9udGgsIGRheSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVEYXRlSWZWYWxpZCh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIGRhdGU6IG51bWJlcik6IERhdGUgfCBudWxsIHtcbiAgICAgICAgLy8gQXNzdW1lIHllYXIgMjAwMCBpZiBvbmx5IHR3byBkaWdpdHNcbiAgICAgICAgaWYgKHllYXIgPCAxMDApIHtcbiAgICAgICAgICAgIHllYXIgKz0gMjAwMDtcbiAgICAgICAgfVxuXG4gICAgICAgIG1vbnRoID0gbW9udGggLSAxO1xuICAgICAgICBpZiAobW9udGggPj0gMCAmJiBtb250aCA8PSAxMSAmJiBkYXRlID49IDEgJiYgZGF0ZSA8PSAzMSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRGF0ZSh5ZWFyLCBtb250aCwgZGF0ZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZ2V0Rmlyc3REYXlPZldlZWsoKTogbnVtYmVyIHtcbiAgICAgICAgLy8gQWx3YXlzIHN0YXJ0cyBvbiBNb25kYXksIGV2ZW4gdGhvdWdoIGl0IGlzIG5vdCB0cnVlIGZvciBDYW5hZGEsIFUuUy4sIE1leGljbyBhbmQgbWFueSBtb3JlXG4gICAgICAgIC8vIEFsc28gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L2VjbWE0MDIvaXNzdWVzLzZcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgfVxufVxuIl19
|
|
@@ -95,7 +95,7 @@ NaturalAbstractController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0"
|
|
|
95
95
|
NaturalAbstractController.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.1", type: NaturalAbstractController, ngImport: i0 });
|
|
96
96
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: NaturalAbstractController, decorators: [{
|
|
97
97
|
type: Directive
|
|
98
|
-
}]
|
|
98
|
+
}] });
|
|
99
99
|
|
|
100
100
|
class NaturalConfirmComponent {
|
|
101
101
|
constructor(data) {
|
|
@@ -2191,7 +2191,7 @@ function ifValid(control) {
|
|
|
2191
2191
|
// - is too lax because it accepts pretty much anything else
|
|
2192
2192
|
//
|
|
2193
2193
|
// but the TLD will be validated against a whitelist so that should make the whole thing acceptable
|
|
2194
|
-
const RFC_5322 = /^[a-zA-Z0-9.!#$%&'
|
|
2194
|
+
const RFC_5322 = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[^@ ]+\.[^@]+$/u;
|
|
2195
2195
|
/**
|
|
2196
2196
|
* Validate an email address according to RFC, and also that it is publicly deliverable (not "root@localhost" or "root@127.0.0.1")
|
|
2197
2197
|
*
|
|
@@ -2391,15 +2391,22 @@ class NaturalAbstractDetail extends NaturalAbstractPanel {
|
|
|
2391
2391
|
}), finalize(() => this.form.enable()))
|
|
2392
2392
|
.subscribe();
|
|
2393
2393
|
}
|
|
2394
|
-
|
|
2394
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2395
|
+
postUpdate(model) {
|
|
2396
|
+
// noop
|
|
2397
|
+
}
|
|
2395
2398
|
/**
|
|
2396
2399
|
* Returns an observable that will be subscribed to immediately and the
|
|
2397
2400
|
* redirect navigation will only happen after the observable completes.
|
|
2398
2401
|
*/
|
|
2402
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2399
2403
|
postCreate(model) {
|
|
2400
2404
|
return EMPTY;
|
|
2401
2405
|
}
|
|
2402
|
-
|
|
2406
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2407
|
+
preDelete(model) {
|
|
2408
|
+
// noop
|
|
2409
|
+
}
|
|
2403
2410
|
initForm() {
|
|
2404
2411
|
this.form = this.service.getFormGroup(this.data.model);
|
|
2405
2412
|
}
|
|
@@ -3077,10 +3084,10 @@ class TypeDateComponent extends NaturalAbstractController {
|
|
|
3077
3084
|
}
|
|
3078
3085
|
}
|
|
3079
3086
|
TypeDateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: TypeDateComponent, deps: [{ token: NATURAL_DROPDOWN_DATA }, { token: i1$4.DateAdapter }, { token: MAT_DATE_FORMATS }], target: i0.ɵɵFactoryTarget.Component });
|
|
3080
|
-
TypeDateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: TypeDateComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<form [formGroup]=\"form\">\n <mat-form-field>\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-form-field>\n <mat-label i18n>Date</mat-label>\n <input\n [formControl]=\"valueCtrl\"\n [matDatepicker]=\"value\"\n [max]=\"configuration.max\"\n [min]=\"configuration.min\"\n [required]=\"true\"\n matInput\n />\n <mat-datepicker-toggle [for]=\"value\" matSuffix></mat-datepicker-toggle>\n <mat-datepicker #value></mat-datepicker>\n <mat-error
|
|
3087
|
+
TypeDateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: TypeDateComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<form [formGroup]=\"form\">\n <mat-form-field>\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-form-field>\n <mat-label i18n>Date</mat-label>\n <input\n [formControl]=\"valueCtrl\"\n [matDatepicker]=\"value\"\n [max]=\"configuration.max\"\n [min]=\"configuration.min\"\n [required]=\"true\"\n matInput\n />\n <mat-datepicker-toggle [for]=\"value\" matSuffix></mat-datepicker-toggle>\n <mat-datepicker #value></mat-datepicker>\n <mat-error *ngIf=\"valueCtrl.hasError('min')\">< {{ configuration.min }}</mat-error>\n <mat-error *ngIf=\"valueCtrl.hasError('max')\">> {{ configuration.max }}</mat-error>\n <mat-error *ngIf=\"valueCtrl.hasError('required')\">*</mat-error>\n </mat-form-field>\n\n <mat-checkbox [formControl]=\"todayCtrl\" i18n>Aujourd'hui</mat-checkbox>\n</form>\n", styles: ["form{display:grid;grid:auto auto/4em auto;grid-gap:0 1em}form>*{align-self:end}form>mat-checkbox{grid-column-start:2;margin-bottom:.3em}\n"], dependencies: [{ kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4$2.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4$2.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4$2.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i6.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i7.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i7.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i7.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i4$3.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i1$4.MatOption, selector: "mat-option", exportAs: ["matOption"] }] });
|
|
3081
3088
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: TypeDateComponent, decorators: [{
|
|
3082
3089
|
type: Component,
|
|
3083
|
-
args: [{ template: "<form [formGroup]=\"form\">\n <mat-form-field>\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-form-field>\n <mat-label i18n>Date</mat-label>\n <input\n [formControl]=\"valueCtrl\"\n [matDatepicker]=\"value\"\n [max]=\"configuration.max\"\n [min]=\"configuration.min\"\n [required]=\"true\"\n matInput\n />\n <mat-datepicker-toggle [for]=\"value\" matSuffix></mat-datepicker-toggle>\n <mat-datepicker #value></mat-datepicker>\n <mat-error
|
|
3090
|
+
args: [{ template: "<form [formGroup]=\"form\">\n <mat-form-field>\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-form-field>\n <mat-label i18n>Date</mat-label>\n <input\n [formControl]=\"valueCtrl\"\n [matDatepicker]=\"value\"\n [max]=\"configuration.max\"\n [min]=\"configuration.min\"\n [required]=\"true\"\n matInput\n />\n <mat-datepicker-toggle [for]=\"value\" matSuffix></mat-datepicker-toggle>\n <mat-datepicker #value></mat-datepicker>\n <mat-error *ngIf=\"valueCtrl.hasError('min')\">< {{ configuration.min }}</mat-error>\n <mat-error *ngIf=\"valueCtrl.hasError('max')\">> {{ configuration.max }}</mat-error>\n <mat-error *ngIf=\"valueCtrl.hasError('required')\">*</mat-error>\n </mat-form-field>\n\n <mat-checkbox [formControl]=\"todayCtrl\" i18n>Aujourd'hui</mat-checkbox>\n</form>\n", styles: ["form{display:grid;grid:auto auto/4em auto;grid-gap:0 1em}form>*{align-self:end}form>mat-checkbox{grid-column-start:2;margin-bottom:.3em}\n"] }]
|
|
3084
3091
|
}], ctorParameters: function () {
|
|
3085
3092
|
return [{ type: undefined, decorators: [{
|
|
3086
3093
|
type: Inject,
|
|
@@ -3456,7 +3463,9 @@ class NaturalPersistenceService {
|
|
|
3456
3463
|
try {
|
|
3457
3464
|
result = JSON.parse(value);
|
|
3458
3465
|
}
|
|
3459
|
-
catch (e) {
|
|
3466
|
+
catch (e) {
|
|
3467
|
+
// noop
|
|
3468
|
+
}
|
|
3460
3469
|
return this.isValid(key, storageKey, result) ? result : null;
|
|
3461
3470
|
}
|
|
3462
3471
|
}
|
|
@@ -4174,24 +4183,28 @@ class NaturalAbstractModelService {
|
|
|
4174
4183
|
/**
|
|
4175
4184
|
* List of individual fields validators
|
|
4176
4185
|
*/
|
|
4186
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4177
4187
|
getFormValidators(model) {
|
|
4178
4188
|
return {};
|
|
4179
4189
|
}
|
|
4180
4190
|
/**
|
|
4181
4191
|
* List of individual async fields validators
|
|
4182
4192
|
*/
|
|
4193
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4183
4194
|
getFormAsyncValidators(model) {
|
|
4184
4195
|
return {};
|
|
4185
4196
|
}
|
|
4186
4197
|
/**
|
|
4187
4198
|
* List of grouped fields validators (like password + confirm password)
|
|
4188
4199
|
*/
|
|
4200
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4189
4201
|
getFormGroupValidators(model) {
|
|
4190
4202
|
return [];
|
|
4191
4203
|
}
|
|
4192
4204
|
/**
|
|
4193
4205
|
* List of async group fields validators (like unique constraint on multiple columns)
|
|
4194
4206
|
*/
|
|
4207
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4195
4208
|
getFormGroupAsyncValidators(model) {
|
|
4196
4209
|
return [];
|
|
4197
4210
|
}
|
|
@@ -4584,6 +4597,7 @@ class NaturalAbstractModelService {
|
|
|
4584
4597
|
*
|
|
4585
4598
|
* This is typically a site or state ID
|
|
4586
4599
|
*/
|
|
4600
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4587
4601
|
getPartialVariablesForCreation(object) {
|
|
4588
4602
|
return {};
|
|
4589
4603
|
}
|
|
@@ -4592,6 +4606,7 @@ class NaturalAbstractModelService {
|
|
|
4592
4606
|
*
|
|
4593
4607
|
* This is typically a site or state ID
|
|
4594
4608
|
*/
|
|
4609
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4595
4610
|
getPartialVariablesForUpdate(object) {
|
|
4596
4611
|
return {};
|
|
4597
4612
|
}
|
|
@@ -4600,6 +4615,7 @@ class NaturalAbstractModelService {
|
|
|
4600
4615
|
*
|
|
4601
4616
|
* This is typically a site or state ID
|
|
4602
4617
|
*/
|
|
4618
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4603
4619
|
getPartialVariablesForDelete(objects) {
|
|
4604
4620
|
return {};
|
|
4605
4621
|
}
|
|
@@ -6207,7 +6223,7 @@ class ExternalFormControlMatcher extends ErrorStateMatcher {
|
|
|
6207
6223
|
super();
|
|
6208
6224
|
this.component = component;
|
|
6209
6225
|
}
|
|
6210
|
-
isErrorState(
|
|
6226
|
+
isErrorState() {
|
|
6211
6227
|
var _a;
|
|
6212
6228
|
const externalCtrl = ((_a = this.component.ngControl) === null || _a === void 0 ? void 0 : _a.control) || this.component.internalCtrl;
|
|
6213
6229
|
if (externalCtrl) {
|
|
@@ -6601,7 +6617,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImpor
|
|
|
6601
6617
|
}] });
|
|
6602
6618
|
|
|
6603
6619
|
class InvalidWithValueStateMatcher$1 {
|
|
6604
|
-
isErrorState(control
|
|
6620
|
+
isErrorState(control) {
|
|
6605
6621
|
return control && control.invalid && control.value;
|
|
6606
6622
|
}
|
|
6607
6623
|
}
|
|
@@ -7062,7 +7078,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImpor
|
|
|
7062
7078
|
|
|
7063
7079
|
// Required to check invalid fields when initializing natural-search
|
|
7064
7080
|
class AlwaysErrorStateMatcher {
|
|
7065
|
-
isErrorState(control
|
|
7081
|
+
isErrorState(control) {
|
|
7066
7082
|
return !!control && control.invalid;
|
|
7067
7083
|
}
|
|
7068
7084
|
}
|
|
@@ -7164,7 +7180,7 @@ class NaturalInputComponent {
|
|
|
7164
7180
|
this.dropdownComponentRef.destroy();
|
|
7165
7181
|
}
|
|
7166
7182
|
}
|
|
7167
|
-
ngOnChanges(
|
|
7183
|
+
ngOnChanges() {
|
|
7168
7184
|
if (!this.facets && this.selection) {
|
|
7169
7185
|
setTimeout(() => this.clear());
|
|
7170
7186
|
}
|
|
@@ -7441,7 +7457,7 @@ class NaturalSearchComponent {
|
|
|
7441
7457
|
set selections(selections) {
|
|
7442
7458
|
this.innerSelections = selections && selections[0] ? deepClone(selections) : [[]];
|
|
7443
7459
|
}
|
|
7444
|
-
ngOnChanges(
|
|
7460
|
+
ngOnChanges() {
|
|
7445
7461
|
if (!this.facets) {
|
|
7446
7462
|
this.facets = [];
|
|
7447
7463
|
}
|
|
@@ -7914,7 +7930,7 @@ function toGreaterThanFrom(dateAdapter) {
|
|
|
7914
7930
|
/**
|
|
7915
7931
|
* Date range with mandatory bounding dates.
|
|
7916
7932
|
*
|
|
7917
|
-
* If you need
|
|
7933
|
+
* If you need optional bounding date, then use `TypeDateComponent` instead.
|
|
7918
7934
|
*/
|
|
7919
7935
|
class TypeDateRangeComponent {
|
|
7920
7936
|
constructor(data, dateAdapter, dateFormats) {
|
|
@@ -7998,10 +8014,10 @@ class TypeDateRangeComponent {
|
|
|
7998
8014
|
}
|
|
7999
8015
|
}
|
|
8000
8016
|
TypeDateRangeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: TypeDateRangeComponent, deps: [{ token: NATURAL_DROPDOWN_DATA }, { token: i1$4.DateAdapter }, { token: MAT_DATE_FORMATS }], target: i0.ɵɵFactoryTarget.Component });
|
|
8001
|
-
TypeDateRangeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: TypeDateRangeComponent, selector: "ng-component", ngImport: i0, template: "<form [formGroup]=\"form\">\n <mat-form-field>\n <input\n matInput\n [matDatepicker]=\"from\"\n placeholder=\"De\"\n [formControl]=\"fromCtrl\"\n [errorStateMatcher]=\"matcher\"\n [min]=\"configuration.min\"\n [max]=\"configuration.max\"\n />\n <mat-datepicker-toggle matSuffix [for]=\"from\"></mat-datepicker-toggle>\n <mat-datepicker #from></mat-datepicker>\n <mat-error
|
|
8017
|
+
TypeDateRangeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: TypeDateRangeComponent, selector: "ng-component", ngImport: i0, template: "<form [formGroup]=\"form\">\n <mat-form-field>\n <input\n matInput\n [matDatepicker]=\"from\"\n placeholder=\"De\"\n [formControl]=\"fromCtrl\"\n [errorStateMatcher]=\"matcher\"\n [min]=\"configuration.min\"\n [max]=\"configuration.max\"\n />\n <mat-datepicker-toggle matSuffix [for]=\"from\"></mat-datepicker-toggle>\n <mat-datepicker #from></mat-datepicker>\n <mat-error *ngIf=\"form.hasError('toGreaterThanFrom')\"\n >{{ render(fromCtrl.value) }} > {{ render(toCtrl.value) }}</mat-error\n >\n <mat-error *ngIf=\"fromCtrl.hasError('min') && !form.hasError('toGreaterThanFrom')\"\n >< {{ configuration.min }}</mat-error\n >\n <mat-error *ngIf=\"fromCtrl.hasError('max') && !form.hasError('toGreaterThanFrom')\"\n >> {{ configuration.max }}</mat-error\n >\n <mat-error *ngIf=\"fromCtrl.hasError('required')\">*</mat-error>\n </mat-form-field>\n\n <mat-form-field>\n <input\n matInput\n [matDatepicker]=\"to\"\n placeholder=\"\u00E0\"\n [formControl]=\"toCtrl\"\n [errorStateMatcher]=\"matcher\"\n [min]=\"configuration.min\"\n [max]=\"configuration.max\"\n />\n <mat-datepicker-toggle matSuffix [for]=\"to\"></mat-datepicker-toggle>\n <mat-datepicker #to></mat-datepicker>\n <mat-error *ngIf=\"toCtrl.hasError('min') && !form.hasError('toGreaterThanFrom')\">\n < {{ configuration.min }}</mat-error\n >\n <mat-error *ngIf=\"toCtrl.hasError('max') && !form.hasError('toGreaterThanFrom')\">\n > {{ configuration.max }}</mat-error\n >\n <mat-error *ngIf=\"toCtrl.hasError('required')\">*</mat-error>\n </mat-form-field>\n</form>\n", dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4$2.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4$2.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$2.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i7.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i7.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i7.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }] });
|
|
8002
8018
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: TypeDateRangeComponent, decorators: [{
|
|
8003
8019
|
type: Component,
|
|
8004
|
-
args: [{ template: "<form [formGroup]=\"form\">\n <mat-form-field>\n <input\n matInput\n [matDatepicker]=\"from\"\n placeholder=\"De\"\n [formControl]=\"fromCtrl\"\n [errorStateMatcher]=\"matcher\"\n [min]=\"configuration.min\"\n [max]=\"configuration.max\"\n />\n <mat-datepicker-toggle matSuffix [for]=\"from\"></mat-datepicker-toggle>\n <mat-datepicker #from></mat-datepicker>\n <mat-error
|
|
8020
|
+
args: [{ template: "<form [formGroup]=\"form\">\n <mat-form-field>\n <input\n matInput\n [matDatepicker]=\"from\"\n placeholder=\"De\"\n [formControl]=\"fromCtrl\"\n [errorStateMatcher]=\"matcher\"\n [min]=\"configuration.min\"\n [max]=\"configuration.max\"\n />\n <mat-datepicker-toggle matSuffix [for]=\"from\"></mat-datepicker-toggle>\n <mat-datepicker #from></mat-datepicker>\n <mat-error *ngIf=\"form.hasError('toGreaterThanFrom')\"\n >{{ render(fromCtrl.value) }} > {{ render(toCtrl.value) }}</mat-error\n >\n <mat-error *ngIf=\"fromCtrl.hasError('min') && !form.hasError('toGreaterThanFrom')\"\n >< {{ configuration.min }}</mat-error\n >\n <mat-error *ngIf=\"fromCtrl.hasError('max') && !form.hasError('toGreaterThanFrom')\"\n >> {{ configuration.max }}</mat-error\n >\n <mat-error *ngIf=\"fromCtrl.hasError('required')\">*</mat-error>\n </mat-form-field>\n\n <mat-form-field>\n <input\n matInput\n [matDatepicker]=\"to\"\n placeholder=\"\u00E0\"\n [formControl]=\"toCtrl\"\n [errorStateMatcher]=\"matcher\"\n [min]=\"configuration.min\"\n [max]=\"configuration.max\"\n />\n <mat-datepicker-toggle matSuffix [for]=\"to\"></mat-datepicker-toggle>\n <mat-datepicker #to></mat-datepicker>\n <mat-error *ngIf=\"toCtrl.hasError('min') && !form.hasError('toGreaterThanFrom')\">\n < {{ configuration.min }}</mat-error\n >\n <mat-error *ngIf=\"toCtrl.hasError('max') && !form.hasError('toGreaterThanFrom')\">\n > {{ configuration.max }}</mat-error\n >\n <mat-error *ngIf=\"toCtrl.hasError('required')\">*</mat-error>\n </mat-form-field>\n</form>\n" }]
|
|
8005
8021
|
}], ctorParameters: function () {
|
|
8006
8022
|
return [{ type: undefined, decorators: [{
|
|
8007
8023
|
type: Inject,
|
|
@@ -8305,7 +8321,6 @@ class NaturalSelectEnumComponent extends AbstractSelect {
|
|
|
8305
8321
|
constructor(enumService, ngControl) {
|
|
8306
8322
|
super(ngControl);
|
|
8307
8323
|
this.enumService = enumService;
|
|
8308
|
-
this.ngControl = ngControl;
|
|
8309
8324
|
/**
|
|
8310
8325
|
* Whether the user should be allowed to select multiple options
|
|
8311
8326
|
*/
|
|
@@ -8649,7 +8664,7 @@ class NaturalAbstractFile extends NaturalAbstractController {
|
|
|
8649
8664
|
this.multiple = false;
|
|
8650
8665
|
/**
|
|
8651
8666
|
* Comma-separated list of unique file type specifiers. Like the native element
|
|
8652
|
-
* it can be a
|
|
8667
|
+
* it can be a mix of mime-type and file extensions.
|
|
8653
8668
|
*
|
|
8654
8669
|
* See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#accept
|
|
8655
8670
|
*/
|
|
@@ -8982,23 +8997,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImpor
|
|
|
8982
8997
|
|
|
8983
8998
|
// @dynamic
|
|
8984
8999
|
class FileComponent {
|
|
8985
|
-
constructor(naturalFileService, sanitizer, document) {
|
|
9000
|
+
constructor(naturalFileService, alertService, sanitizer, document) {
|
|
8986
9001
|
this.naturalFileService = naturalFileService;
|
|
9002
|
+
this.alertService = alertService;
|
|
8987
9003
|
this.sanitizer = sanitizer;
|
|
8988
9004
|
this.document = document;
|
|
8989
9005
|
this.height = 250;
|
|
8990
9006
|
this.action = null;
|
|
8991
9007
|
this.backgroundSize = 'contain';
|
|
8992
9008
|
/**
|
|
8993
|
-
* Comma
|
|
9009
|
+
* Comma-separated list of unique file type specifiers. Like the native element
|
|
9010
|
+
* it can be a mix of mime-type and file extensions.
|
|
9011
|
+
*
|
|
9012
|
+
* See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#accept
|
|
8994
9013
|
*/
|
|
8995
9014
|
this.accept = 'image/bmp,image/gif,image/jpeg,image/pjpeg,image/png,image/svg+xml,image/svg,image/webp';
|
|
8996
9015
|
this.model = null;
|
|
8997
9016
|
/**
|
|
8998
|
-
* If provided, get updated
|
|
8999
|
-
*
|
|
9017
|
+
* If provided, its value will get updated when the model changes.
|
|
9018
|
+
* But its value is never read, so if you want to set a value use `[model]` instead.
|
|
9000
9019
|
*/
|
|
9001
9020
|
this.formCtrl = null;
|
|
9021
|
+
/**
|
|
9022
|
+
* This **must not** be used to mutate the server, because it is very likely it will never be called if the
|
|
9023
|
+
* human navigates away from the page before the upload is finished. Instead, you should use `[uploader]`.
|
|
9024
|
+
*/
|
|
9002
9025
|
this.modelChange = new EventEmitter();
|
|
9003
9026
|
this.imagePreview = null;
|
|
9004
9027
|
this.filePreview = null;
|
|
@@ -9012,20 +9035,20 @@ class FileComponent {
|
|
|
9012
9035
|
}
|
|
9013
9036
|
}
|
|
9014
9037
|
upload(file) {
|
|
9038
|
+
var _a, _b;
|
|
9015
9039
|
this.model = { file: file };
|
|
9016
9040
|
this.updateImage();
|
|
9017
9041
|
if (this.formCtrl) {
|
|
9018
9042
|
this.formCtrl.setValue(this.model);
|
|
9019
9043
|
}
|
|
9020
|
-
|
|
9021
|
-
|
|
9022
|
-
|
|
9023
|
-
|
|
9024
|
-
|
|
9025
|
-
|
|
9026
|
-
else {
|
|
9044
|
+
const observable = (_b = (_a = this.uploader) === null || _a === void 0 ? void 0 : _a.call(this, file).pipe(tap$1(() => this.alertService.info($localize `Mis à jour`)))) !== null && _b !== void 0 ? _b : of(this.model);
|
|
9045
|
+
observable.subscribe(result => {
|
|
9046
|
+
this.model = result;
|
|
9047
|
+
if (this.formCtrl) {
|
|
9048
|
+
this.formCtrl.setValue(this.model);
|
|
9049
|
+
}
|
|
9027
9050
|
this.modelChange.emit(this.model);
|
|
9028
|
-
}
|
|
9051
|
+
});
|
|
9029
9052
|
}
|
|
9030
9053
|
getDownloadLink() {
|
|
9031
9054
|
if (this.action !== 'download') {
|
|
@@ -9085,13 +9108,13 @@ class FileComponent {
|
|
|
9085
9108
|
return subject.asObservable();
|
|
9086
9109
|
}
|
|
9087
9110
|
}
|
|
9088
|
-
FileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: FileComponent, deps: [{ token: NaturalFileService }, { token: i2$2.DomSanitizer }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
|
|
9089
|
-
FileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: FileComponent, selector: "natural-file", inputs: { height: "height", action: "action", backgroundSize: "backgroundSize", accept: "accept",
|
|
9111
|
+
FileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: FileComponent, deps: [{ token: NaturalFileService }, { token: NaturalAlertService }, { token: i2$2.DomSanitizer }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
|
|
9112
|
+
FileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: FileComponent, selector: "natural-file", inputs: { height: "height", action: "action", backgroundSize: "backgroundSize", accept: "accept", uploader: "uploader", model: "model", formCtrl: "formCtrl" }, outputs: { modelChange: "modelChange" }, host: { properties: { "style.height.px": "this.height" } }, usesOnChanges: true, ngImport: i0, template: "<a\n (fileChange)=\"upload($event)\"\n naturalFileDrop\n [selectable]=\"true\"\n [accept]=\"accept\"\n [attr.href]=\"getDownloadLink()\"\n [class.has-action]=\"!!action\"\n [class.suggest-upload]=\"!model && action === 'upload'\"\n [fileSelectionDisabled]=\"action !== 'upload'\"\n [matRippleDisabled]=\"!action\"\n [style.backgroundImage]=\"imagePreview\"\n [style.backgroundSize]=\"backgroundSize\"\n matRipple\n target=\"_blank\"\n>\n <div *ngIf=\"filePreview\" class=\"file-preview\">\n <natural-icon [size]=\"height * 0.33\" name=\"attachment\"></natural-icon>\n {{ filePreview | uppercase }}\n </div>\n\n <div class=\"action-overlay\">\n <natural-icon *ngIf=\"action === 'upload'\" [size]=\"height * 0.66\" name=\"cloud_upload\"></natural-icon>\n <natural-icon *ngIf=\"action === 'download'\" [size]=\"height * 0.66\" name=\"get_app\"></natural-icon>\n {{ action | capitalize }}\n </div>\n</a>\n", styles: [":host{display:flex;flex-direction:row;overflow:hidden;position:relative}:host>a{position:relative;flex:1;background-position:center;background-repeat:no-repeat}:host>a.has-action{cursor:pointer}:host>a.has-action.suggest-upload .action-overlay{opacity:.66}:host>a.has-action:hover .action-overlay,:host>a.has-action.natural-file-over .action-overlay{opacity:1}:host .action-overlay,:host .file-preview{display:flex;flex-direction:column;position:absolute;top:0;left:0;right:0;bottom:0;justify-content:center;align-items:center;font-size:36px;line-height:1.3em;text-align:center}:host .action-overlay{opacity:0}:host .action-overlay>div{opacity:0;position:absolute;top:0;left:0;right:0;bottom:0;display:flex;justify-content:center;align-items:center}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NaturalIconComponent, selector: "natural-icon", inputs: ["label", "labelColor", "labelPosition", "name", "size"] }, { kind: "directive", type: i1$4.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "directive", type: NaturalFileDropDirective, selector: ":not([naturalFileSelect])[naturalFileDrop]", outputs: ["fileOver"] }, { kind: "pipe", type: i1$2.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: NaturalCapitalizePipe, name: "capitalize" }] });
|
|
9090
9113
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: FileComponent, decorators: [{
|
|
9091
9114
|
type: Component,
|
|
9092
9115
|
args: [{ selector: 'natural-file', template: "<a\n (fileChange)=\"upload($event)\"\n naturalFileDrop\n [selectable]=\"true\"\n [accept]=\"accept\"\n [attr.href]=\"getDownloadLink()\"\n [class.has-action]=\"!!action\"\n [class.suggest-upload]=\"!model && action === 'upload'\"\n [fileSelectionDisabled]=\"action !== 'upload'\"\n [matRippleDisabled]=\"!action\"\n [style.backgroundImage]=\"imagePreview\"\n [style.backgroundSize]=\"backgroundSize\"\n matRipple\n target=\"_blank\"\n>\n <div *ngIf=\"filePreview\" class=\"file-preview\">\n <natural-icon [size]=\"height * 0.33\" name=\"attachment\"></natural-icon>\n {{ filePreview | uppercase }}\n </div>\n\n <div class=\"action-overlay\">\n <natural-icon *ngIf=\"action === 'upload'\" [size]=\"height * 0.66\" name=\"cloud_upload\"></natural-icon>\n <natural-icon *ngIf=\"action === 'download'\" [size]=\"height * 0.66\" name=\"get_app\"></natural-icon>\n {{ action | capitalize }}\n </div>\n</a>\n", styles: [":host{display:flex;flex-direction:row;overflow:hidden;position:relative}:host>a{position:relative;flex:1;background-position:center;background-repeat:no-repeat}:host>a.has-action{cursor:pointer}:host>a.has-action.suggest-upload .action-overlay{opacity:.66}:host>a.has-action:hover .action-overlay,:host>a.has-action.natural-file-over .action-overlay{opacity:1}:host .action-overlay,:host .file-preview{display:flex;flex-direction:column;position:absolute;top:0;left:0;right:0;bottom:0;justify-content:center;align-items:center;font-size:36px;line-height:1.3em;text-align:center}:host .action-overlay{opacity:0}:host .action-overlay>div{opacity:0;position:absolute;top:0;left:0;right:0;bottom:0;display:flex;justify-content:center;align-items:center}\n"] }]
|
|
9093
9116
|
}], ctorParameters: function () {
|
|
9094
|
-
return [{ type: NaturalFileService }, { type: i2$2.DomSanitizer }, { type: Document, decorators: [{
|
|
9117
|
+
return [{ type: NaturalFileService }, { type: NaturalAlertService }, { type: i2$2.DomSanitizer }, { type: Document, decorators: [{
|
|
9095
9118
|
type: Inject,
|
|
9096
9119
|
args: [DOCUMENT]
|
|
9097
9120
|
}] }];
|
|
@@ -9106,7 +9129,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImpor
|
|
|
9106
9129
|
type: Input
|
|
9107
9130
|
}], accept: [{
|
|
9108
9131
|
type: Input
|
|
9109
|
-
}],
|
|
9132
|
+
}], uploader: [{
|
|
9110
9133
|
type: Input
|
|
9111
9134
|
}], model: [{
|
|
9112
9135
|
type: Input
|
|
@@ -9147,7 +9170,7 @@ NaturalFixedButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.
|
|
|
9147
9170
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: NaturalFixedButtonComponent, decorators: [{
|
|
9148
9171
|
type: Component,
|
|
9149
9172
|
args: [{ selector: 'natural-fixed-button', template: "<button\n [color]=\"color\"\n [disabled]=\"disabled\"\n [routerLink]=\"link\"\n class=\"floating-button bottom-right\"\n mat-fab\n mat-raised-button\n>\n <natural-icon [name]=\"icon\"></natural-icon>\n</button>\n", styles: [":host{position:fixed!important;z-index:999;bottom:32px;right:32px}\n"] }]
|
|
9150
|
-
}],
|
|
9173
|
+
}], propDecorators: { icon: [{
|
|
9151
9174
|
type: Input
|
|
9152
9175
|
}], link: [{
|
|
9153
9176
|
type: Input
|
|
@@ -9433,7 +9456,7 @@ class NaturalPanelsService {
|
|
|
9433
9456
|
const originalErrorHandler = this.router.errorHandler;
|
|
9434
9457
|
// Nullify error handler (will be de-neutralized after route redirection)
|
|
9435
9458
|
if (config) {
|
|
9436
|
-
this.router.errorHandler = () =>
|
|
9459
|
+
this.router.errorHandler = () => undefined;
|
|
9437
9460
|
}
|
|
9438
9461
|
// Navigate to same url + /risk/new Result : /risk/risk/new
|
|
9439
9462
|
const newUrl = config.map(conf => segmentsToString(conf.route.segments)).join('/');
|
|
@@ -9693,7 +9716,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImpor
|
|
|
9693
9716
|
* Url fallback matcher to be used instead of `path: '**'` when Panel system
|
|
9694
9717
|
* is used in the project.
|
|
9695
9718
|
*/
|
|
9696
|
-
const fallbackIfNoOpenedPanels = (segments
|
|
9719
|
+
const fallbackIfNoOpenedPanels = (segments) => {
|
|
9697
9720
|
if (!NaturalPanelsService.opened) {
|
|
9698
9721
|
return { consumed: segments };
|
|
9699
9722
|
}
|
|
@@ -9758,7 +9781,7 @@ class NaturalRelationsComponent extends NaturalAbstractController {
|
|
|
9758
9781
|
this.disabled = this.disabled || !this.main.permissions.update;
|
|
9759
9782
|
}
|
|
9760
9783
|
}
|
|
9761
|
-
ngOnChanges(
|
|
9784
|
+
ngOnChanges() {
|
|
9762
9785
|
if (this.service) {
|
|
9763
9786
|
this.queryItems();
|
|
9764
9787
|
}
|
|
@@ -10260,17 +10283,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImpor
|
|
|
10260
10283
|
}] } });
|
|
10261
10284
|
|
|
10262
10285
|
class NaturalSidenavContentComponent {
|
|
10263
|
-
constructor() { }
|
|
10264
10286
|
}
|
|
10265
10287
|
NaturalSidenavContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: NaturalSidenavContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10266
10288
|
NaturalSidenavContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: NaturalSidenavContentComponent, selector: "natural-sidenav-content", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [":host{flex:1;display:flex;flex-direction:column;overflow:auto}\n"] });
|
|
10267
10289
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: NaturalSidenavContentComponent, decorators: [{
|
|
10268
10290
|
type: Component,
|
|
10269
10291
|
args: [{ selector: 'natural-sidenav-content', template: '<ng-content></ng-content>', styles: [":host{flex:1;display:flex;flex-direction:column;overflow:auto}\n"] }]
|
|
10270
|
-
}]
|
|
10292
|
+
}] });
|
|
10271
10293
|
|
|
10272
10294
|
class NaturalSidenavComponent {
|
|
10273
|
-
constructor() { }
|
|
10274
10295
|
}
|
|
10275
10296
|
NaturalSidenavComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: NaturalSidenavComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10276
10297
|
NaturalSidenavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: NaturalSidenavComponent, selector: "natural-sidenav", ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
|
|
@@ -10280,7 +10301,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImpor
|
|
|
10280
10301
|
selector: 'natural-sidenav',
|
|
10281
10302
|
template: '<ng-content></ng-content>',
|
|
10282
10303
|
}]
|
|
10283
|
-
}]
|
|
10304
|
+
}] });
|
|
10284
10305
|
|
|
10285
10306
|
class NaturalSidenavModule {
|
|
10286
10307
|
}
|
|
@@ -10358,7 +10379,7 @@ class NaturalTableButtonComponent {
|
|
|
10358
10379
|
this.buttonClick = new EventEmitter();
|
|
10359
10380
|
this.type = 'none';
|
|
10360
10381
|
}
|
|
10361
|
-
ngOnChanges(
|
|
10382
|
+
ngOnChanges() {
|
|
10362
10383
|
var _a;
|
|
10363
10384
|
if (((_a = this.navigate) === null || _a === void 0 ? void 0 : _a.length) || Object.keys(this.queryParams).length) {
|
|
10364
10385
|
this.type = 'routerLink';
|
|
@@ -10621,11 +10642,11 @@ function addUnsigned(lX, lY) {
|
|
|
10621
10642
|
const lX4 = lX & 0x40000000;
|
|
10622
10643
|
const lY4 = lY & 0x40000000;
|
|
10623
10644
|
const lResult = (lX & 0x3fffffff) + (lY & 0x3fffffff);
|
|
10624
|
-
if (
|
|
10645
|
+
if (lX4 & lY4) {
|
|
10625
10646
|
return lResult ^ 0x80000000 ^ lX8 ^ lY8;
|
|
10626
10647
|
}
|
|
10627
|
-
if (
|
|
10628
|
-
if (
|
|
10648
|
+
if (lX4 | lY4) {
|
|
10649
|
+
if (lResult & 0x40000000) {
|
|
10629
10650
|
return lResult ^ 0xc0000000 ^ lX8 ^ lY8;
|
|
10630
10651
|
}
|
|
10631
10652
|
else {
|
|
@@ -10851,7 +10872,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImpor
|
|
|
10851
10872
|
args: [{
|
|
10852
10873
|
providedIn: 'root',
|
|
10853
10874
|
}]
|
|
10854
|
-
}]
|
|
10875
|
+
}] });
|
|
10855
10876
|
|
|
10856
10877
|
/**
|
|
10857
10878
|
* Show an avatar from different sources
|