@ng-atomic/common 18.4.0 → 18.6.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/esm2022/interceptors/authorization/authorization.interceptor.mjs +2 -2
- package/esm2022/pipes/data-accessor/data-accessor.pipe.mjs +4 -1
- package/esm2022/services/form/json-schema/json-schema.service.mjs +2 -1
- package/esm2022/stores/entities/entity-store-adapter.mjs +4 -1
- package/esm2022/stores/entities/entity-store.mjs +13 -1
- package/fesm2022/ng-atomic-common-interceptors-authorization.mjs +1 -1
- package/fesm2022/ng-atomic-common-interceptors-authorization.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-data-accessor.mjs +4 -1
- package/fesm2022/ng-atomic-common-pipes-data-accessor.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-form-json-schema.mjs +1 -0
- package/fesm2022/ng-atomic-common-services-form-json-schema.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-stores-entities.mjs +15 -0
- package/fesm2022/ng-atomic-common-stores-entities.mjs.map +1 -1
- package/package.json +2 -2
- package/pipes/data-accessor/data-accessor.pipe.d.ts +1 -0
- package/stores/entities/entity-store-adapter.d.ts +3 -6
- package/stores/entities/entity-store.d.ts +4 -0
|
@@ -24,9 +24,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
|
|
|
24
24
|
type: Injectable
|
|
25
25
|
}] });
|
|
26
26
|
export const authorizationInterceptor = (req, next) => {
|
|
27
|
-
const getAuth = inject(PROVIDE_AUTHORIZATION);
|
|
28
27
|
if (!req.url.startsWith('/api'))
|
|
29
28
|
return next(req);
|
|
29
|
+
const getAuth = inject(PROVIDE_AUTHORIZATION, { optional: true }) ?? null;
|
|
30
30
|
return from(getAuth()).pipe(take(1), mergeMap(token => next(token ? req.clone({ setHeaders: { Authorization: token } }) : req)));
|
|
31
31
|
};
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXphdGlvbi5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29tbW9uL3NyYy9saWIvaW50ZXJjZXB0b3JzL2F1dGhvcml6YXRpb24vYXV0aG9yaXphdGlvbi5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkUsT0FBTyxFQUFFLElBQUksRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUN4QyxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUdoRCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FBdUIsdUJBQXVCLENBQUMsQ0FBQztBQUd2RyxNQUFNLE9BQU8sd0JBQXdCO0lBRHJDO1FBR1UsWUFBTyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0tBYWpEO0lBWEMsU0FBUyxDQUFDLEdBQXlCLEVBQUUsSUFBaUI7UUFDcEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV6RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNiLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BHLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxHQUF5QixFQUFFLEtBQWE7UUFDbEUsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsVUFBVSxFQUFFLEVBQUMsYUFBYSxFQUFFLEtBQUssRUFBQyxFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDOzhHQWRVLHdCQUF3QjtrSEFBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQURwQyxVQUFVOztBQWtCWCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBc0IsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7SUFDdkUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUFFLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQztJQUUxRSxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDekIsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxVQUFVLEVBQUUsRUFBQyxhQUFhLEVBQUUsS0FBSyxFQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUN6RixDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cFJlcXVlc3QsIEh0dHBIYW5kbGVyLCBIdHRwRXZlbnQsIEh0dHBJbnRlcmNlcHRvciwgSHR0cEludGVyY2VwdG9yRm4gfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtZXJnZU1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IHR5cGUgUHJvdmlkZUF1dGhvcml6YXRpb24gPSAoKSA9PiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHwgT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPjtcbmV4cG9ydCBjb25zdCBQUk9WSURFX0FVVEhPUklaQVRJT04gPSBuZXcgSW5qZWN0aW9uVG9rZW48UHJvdmlkZUF1dGhvcml6YXRpb24+KCdQUk9WSURFX0FVVEhPUklaQVRJT04nKTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEF1dGhvcml6YXRpb25JbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG5cbiAgcHJpdmF0ZSBnZXRBdXRoID0gaW5qZWN0KFBST1ZJREVfQVVUSE9SSVpBVElPTik7XG5cbiAgaW50ZXJjZXB0KHJlcTogSHR0cFJlcXVlc3Q8dW5rbm93bj4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8dW5rbm93bj4+IHtcbiAgICBpZiAoIXJlcS51cmwuc3RhcnRzV2l0aCgnL2FwaScpKSByZXR1cm4gbmV4dC5oYW5kbGUocmVxKTtcblxuICAgIHJldHVybiBmcm9tKHRoaXMuZ2V0QXV0aCgpKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5waXBlKG1lcmdlTWFwKGlkVG9rZW4gPT4gbmV4dC5oYW5kbGUoaWRUb2tlbiA/IHRoaXMuZ2V0UmVxdWVzdFdpdGhUb2tlbihyZXEsIGlkVG9rZW4pIDogcmVxKSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRSZXF1ZXN0V2l0aFRva2VuKHJlcTogSHR0cFJlcXVlc3Q8dW5rbm93bj4sIHRva2VuOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gcmVxLmNsb25lKHsgc2V0SGVhZGVyczoge0F1dGhvcml6YXRpb246IHRva2VufSB9KTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgYXV0aG9yaXphdGlvbkludGVyY2VwdG9yOiBIdHRwSW50ZXJjZXB0b3JGbiA9IChyZXEsIG5leHQpID0+IHtcbiAgaWYgKCFyZXEudXJsLnN0YXJ0c1dpdGgoJy9hcGknKSkgcmV0dXJuIG5leHQocmVxKTtcbiAgY29uc3QgZ2V0QXV0aCA9IGluamVjdChQUk9WSURFX0FVVEhPUklaQVRJT04sIHsgb3B0aW9uYWw6IHRydWUgfSkgPz8gbnVsbDtcblxuICByZXR1cm4gZnJvbShnZXRBdXRoKCkpLnBpcGUoXG4gICAgdGFrZSgxKSxcbiAgICBtZXJnZU1hcCh0b2tlbiA9PiBuZXh0KHRva2VuID8gcmVxLmNsb25lKHsgc2V0SGVhZGVyczoge0F1dGhvcml6YXRpb246IHRva2VufSB9KSA6IHJlcSkpLFxuICApO1xufTtcbiJdfQ==
|
|
@@ -9,6 +9,9 @@ export function provideDataAccessor(useFactory = () => defaultDataAccessor) {
|
|
|
9
9
|
export function injectDataAccessor() {
|
|
10
10
|
return inject(DATA_ACCESSOR, { optional: true }) ?? defaultDataAccessor;
|
|
11
11
|
}
|
|
12
|
+
export function injectParentDataAccessor() {
|
|
13
|
+
return inject(DATA_ACCESSOR, { skipSelf: true, optional: true }) ?? defaultDataAccessor;
|
|
14
|
+
}
|
|
12
15
|
export class DataAccessorPipe {
|
|
13
16
|
constructor() {
|
|
14
17
|
this.dataAccessor = injectDataAccessor();
|
|
@@ -27,4 +30,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
|
|
|
27
30
|
standalone: true,
|
|
28
31
|
}]
|
|
29
32
|
}] });
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1hY2Nlc3Nvci5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21tb24vc3JjL2xpYi9waXBlcy9kYXRhLWFjY2Vzc29yL2RhdGEtYWNjZXNzb3IucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBR2hDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLGNBQWMsQ0FBb0IsZUFBZSxDQUFDLENBQUM7QUFDcEYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQXNCLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDeEYsTUFBTSxVQUFVLG1CQUFtQixDQUFJLGFBQW9DLEdBQUcsRUFBRSxDQUFDLG1CQUFtQjtJQUNsRyxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsQ0FBQztBQUNoRCxDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQjtJQUNoQyxPQUFPLE1BQU0sQ0FBQyxhQUFhLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsSUFBSSxtQkFBbUIsQ0FBQztBQUN4RSxDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QjtJQUN0QyxPQUFPLE1BQU0sQ0FBQyxhQUFhLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxJQUFJLG1CQUFtQixDQUFDO0FBQ3hGLENBQUM7QUFPRCxNQUFNLE9BQU8sZ0JBQWdCO0lBTDdCO1FBTVksaUJBQVksR0FBRyxrQkFBa0IsRUFBRSxDQUFDO0tBSy9DO0lBSEMsU0FBUyxDQUFDLElBQU8sRUFBRSxHQUFXLEVBQUUsS0FBYztRQUM1QyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM3QyxDQUFDOzhHQUxVLGdCQUFnQjs0R0FBaEIsZ0JBQWdCOzsyRkFBaEIsZ0JBQWdCO2tCQUw1QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxjQUFjO29CQUNwQixJQUFJLEVBQUUsSUFBSTtvQkFDVixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgUGlwZSwgaW5qZWN0LCBQaXBlVHJhbnNmb3JtIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IGdldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmV4cG9ydCB0eXBlIERhdGFBY2Nlc3NvcjxUPiA9IChvYmo6IFQsIGtleTogc3RyaW5nLCBpbmRleD86IG51bWJlcikgPT4gYW55O1xuZXhwb3J0IGNvbnN0IERBVEFfQUNDRVNTT1IgPSBuZXcgSW5qZWN0aW9uVG9rZW48RGF0YUFjY2Vzc29yPGFueT4+KCdEQVRBX0FDQ0VTU09SJyk7XG5leHBvcnQgY29uc3QgZGVmYXVsdERhdGFBY2Nlc3NvcjogRGF0YUFjY2Vzc29yPGFueT4gPSAob2JqLCBrZXkpID0+IGdldChvYmosIGtleSkgPz8gJyc7XG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZURhdGFBY2Nlc3NvcjxUPih1c2VGYWN0b3J5OiAoKSA9PiBEYXRhQWNjZXNzb3I8VD4gPSAoKSA9PiBkZWZhdWx0RGF0YUFjY2Vzc29yKSB7XG4gIHJldHVybiB7IHByb3ZpZGU6IERBVEFfQUNDRVNTT1IsIHVzZUZhY3RvcnkgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdERhdGFBY2Nlc3NvcjxUPigpOiBEYXRhQWNjZXNzb3I8VD4ge1xuICByZXR1cm4gaW5qZWN0KERBVEFfQUNDRVNTT1IsIHtvcHRpb25hbDogdHJ1ZX0pID8/IGRlZmF1bHREYXRhQWNjZXNzb3I7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RQYXJlbnREYXRhQWNjZXNzb3I8VD4oKTogRGF0YUFjY2Vzc29yPFQ+IHtcbiAgcmV0dXJuIGluamVjdChEQVRBX0FDQ0VTU09SLCB7c2tpcFNlbGY6IHRydWUsIG9wdGlvbmFsOiB0cnVlfSkgPz8gZGVmYXVsdERhdGFBY2Nlc3Nvcjtcbn1cblxuQFBpcGUoe1xuICBuYW1lOiAnZGF0YUFjY2Vzc29yJyxcbiAgcHVyZTogdHJ1ZSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRGF0YUFjY2Vzc29yUGlwZTxUPiBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBwcm90ZWN0ZWQgZGF0YUFjY2Vzc29yID0gaW5qZWN0RGF0YUFjY2Vzc29yKCk7XG5cbiAgdHJhbnNmb3JtKGRhdGE6IFQsIGtleTogc3RyaW5nLCBpbmRleD86IG51bWJlcik6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YUFjY2Vzc29yKGRhdGEsIGtleSwgaW5kZXgpO1xuICB9XG59XG5cbiJdfQ==
|
|
@@ -4,6 +4,7 @@ import { targetConstructorToSchema } from './json-schema';
|
|
|
4
4
|
import { merge } from "lodash-es";
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export function buildFormGroupByJsonSchema(schema, { fb = inject(FormBuilder).nonNullable, value = {}, } = {}) {
|
|
7
|
+
console.debug('[buildFormGroupByJsonSchema] schema:', schema);
|
|
7
8
|
if (!schema || !schema?.properties) {
|
|
8
9
|
return fb.group({});
|
|
9
10
|
}
|
|
@@ -136,4 +137,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
|
|
|
136
137
|
type: Injectable,
|
|
137
138
|
args: [{ providedIn: 'root' }]
|
|
138
139
|
}] });
|
|
139
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1zY2hlbWEuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29tbW9uL3NyYy9saWIvc2VydmljZXMvZm9ybS9qc29uLXNjaGVtYS9qc29uLXNjaGVtYS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQXFDLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDOztBQUVsQyxNQUFNLFVBQVUsMEJBQTBCLENBQUMsTUFBa0IsRUFBRSxFQUM3RCxFQUFFLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFdBQVcsRUFDcEMsS0FBSyxHQUFHLEVBQUUsTUFJUixFQUFFO0lBQ0osSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsQ0FBQztRQUNuQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUNELE1BQU0sS0FBSyxHQUFRLEVBQUUsQ0FBQztJQUV0QixLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQyxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUV0QixJQUFJLE1BQU0sQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNyRCxVQUFVLENBQUMsSUFBSSxDQUFDLFVB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Q0FBQztRQUNyRCxRQUFRLEVBQUUsNkJBQTZCLENBQUMsTUFBTSxFQUFFLEVBQUMsS0FBSyxFQUFFLFFBQVEsRUFBQyxDQUFDO0tBQ25FLENBQUM7QUFDSixDQUFDO0FBSUQsTUFBTSxPQUFPLHFCQUFxQjtJQURsQztRQUVVLE9BQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsV0FBVyxDQUFDO0tBb0I5QztJQWxCQyxLQUFLLENBQUMsTUFBa0IsRUFBRSxFQUN4QixFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFDWixLQUFLLEdBQUcsRUFBRSxNQUlSLEVBQUU7UUFDSixPQUFPLDBCQUEwQixDQUFDLE1BQU0sRUFBRSxFQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxhQUFhLENBQ1gsTUFBa0IsRUFDbEIsVUFFSSxFQUFFO1FBRU4sT0FBTyw2QkFBNkIsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEQsQ0FBQzs4R0FwQlUscUJBQXFCO2tIQUFyQixxQkFBcUIsY0FEUixNQUFNOzsyRkFDbkIscUJBQXFCO2tCQURqQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBOb25OdWxsYWJsZUZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBKc29uU2NoZW1hIH0gZnJvbSBcImpzb24tc2NoZW1hLWxpYnJhcnlcIjtcbmltcG9ydCB7IHRhcmdldENvbnN0cnVjdG9yVG9TY2hlbWEgfSBmcm9tICcuL2pzb24tc2NoZW1hJztcbmltcG9ydCB7IG1lcmdlIH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRGb3JtR3JvdXBCeUpzb25TY2hlbWEoc2NoZW1hOiBKc29uU2NoZW1hLCB7XG4gIGZiID0gaW5qZWN0KEZvcm1CdWlsZGVyKS5ub25OdWxsYWJsZSxcbiAgdmFsdWUgPSB7fSxcbn06IHtcbiAgZmI/OiBGb3JtQnVpbGRlciB8IE5vbk51bGxhYmxlRm9ybUJ1aWxkZXIsXG4gIHZhbHVlPzogb2JqZWN0LFxufSA9IHt9KTogRm9ybUdyb3VwIHtcbiAgaWYgKCFzY2hlbWEgfHwgIXNjaGVtYT8ucHJvcGVydGllcykge1xuICAgIHJldHVybiBmYi5ncm91cCh7fSk7XG4gIH1cbiAgY29uc3QgZ3JvdXA6IGFueSA9IHt9O1xuICBcbiAgZm9yIChjb25zdCBrZXkgaW4gc2NoZW1hLnByb3BlcnRpZXMpIHtcbiAgICBjb25zdCBwcm9wZXJ0eSA9IHNjaGVtYS5wcm9wZXJ0aWVzW2tleV07XG4gICAgY29uc3QgdmFsaWRhdG9ycyA9IFtdO1xuXG4gICAgaWYgKHNjaGVtYS5yZXF1aXJlZCAmJiBzY2hlbWEucmVxdWlyZWQuaW5jbHVkZXMoa2V5KSkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgIH1cbiAgICBncm91cFtrZXldID0gYnVpbGRGb3JtQnlKc29uU2NoZW1hUHJvcGVydHkocHJvcGVydHksIHtmYiwgdmFsdWU6IHZhbHVlPy5ba2V5XSwgdmFsaWRhdG9yc30pO1xuICB9XG4gIHJldHVybiBmYi5ncm91cChncm91cCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEZvcm1BcnJheUJ5SnNvblNjaGVtYShzY2hlbWE6IEpzb25TY2hlbWEsIHtcbiAgZmIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpLm5vbk51bGxhYmxlLFxuICB2YWx1ZSA9IFtdLFxufToge1xuICBmYj86IEZvcm1CdWlsZGVyIHwgTm9uTnVsbGFibGVGb3JtQnVpbGRlcixcbiAgdmFsdWU/OiBhbnlbXSxcbn0gPSB7fSk6IGFueSB7XG4gIGlmICghc2NoZW1hIHx8ICFzY2hlbWEuaXRlbXMpIHtcbiAgICByZXR1cm4gZmIuYXJyYXkoW10pO1xuICB9XG4gIGNvbnNvbGUuZGVidWcoJ1tidWlsZEZvcm1BcnJheUJ5SnNvblNjaGVtYV0gc2NoZW1hOicsIHNjaGVtYSk7XG4gIGNvbnN0IGFycmF5ID0gZmIuYXJyYXkoW1xuICAgIGJ1aWxkRm9ybUdyb3VwQnlKc29uU2NoZW1hKHNjaGVtYS5pdGVtcywge2ZifSksXG4gIF0pXG4gIHJldHVybiBhcnJheTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRm9ybUJ5SnNvblNjaGVtYVByb3BlcnR5KHByb3BlcnR5OiBKc29uU2NoZW1hLCB7XG4gIGZiID0gaW5qZWN0KEZvcm1CdWlsZGVyKS5ub25OdWxsYWJsZSxcbiAgdmFsdWUgPSBudWxsLFxuICB2YWxpZGF0b3JzID0gW10sXG59OiB7XG4gIGZiPzogRm9ybUJ1aWxkZXIgfCBOb25OdWxsYWJsZUZvcm1CdWlsZGVyLFxuICB2YWx1ZT86IG9iamVjdCB8IG9iamVjdFtdLFxuICB2YWxpZGF0b3JzPzogYW55W10sXG59ID0ge30pOiBhbnkge1xuICBpZiAocHJvcGVydHkudHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICBpZiAocHJvcGVydHkuZm9ybWF0ID09PSAnZGF0ZS10aW1lJykge1xuICAgICAgcmV0dXJuIGZiLmNvbnRyb2wodmFsdWUgPz8gcHJvcGVydHkuZGVmYXVsdCA/PyBudWxsLCB2YWxpZGF0b3JzKTtcbiAgICB9IGVsc2UgaWYgKHByb3BlcnR5LmZvcm1hdCA9PT0gJ2JpbmFyeScpIHtcbiAgICAgIHJldHVybiBmYi5jb250cm9sKHZhbHVlID8/IHByb3BlcnR5LmRlZmF1bHQgPz8gbnVsbCwgdmFsaWRhdG9ycyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYi5jb250cm9sKHZhbHVlID8/IHByb3BlcnR5LmRlZmF1bHQgPz8gJycsIHZhbGlkYXRvcnMpO1xuICAgIH1cbiAgfSBlbHNlIGlmIChwcm9wZXJ0eS50eXBlID09PSAnaW50ZWdlcicpIHtcbiAgICByZXR1cm4gZmIuY29udHJvbCh2YWx1ZSA/PyBwcm9wZXJ0eS5kZWZhdWx0ID8/IDAsIHZhbGlkYXRvcnMpO1xuICB9IGVsc2UgaWYgKHByb3BlcnR5LnR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIGZiLmNvbnRyb2wodmFsdWUgPz8gcHJvcGVydHkuZGVmYXVsdCA/PyAwLCB2YWxpZGF0b3JzKTtcbiAgfSBlbHNlIGlmIChwcm9wZXJ0eS50eXBlID09PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBidWlsZEZvcm1Hcm91cEJ5SnNvblNjaGVtYShwcm9wZXJ0eSwge2ZiLCB2YWx1ZTogKHZhbHVlIHx8IHt9KSBhcyBvYmplY3R9KTtcbiAgfVxuICBlbHNlIGlmIChwcm9wZXJ0eS50eXBlID09PSAnYXJyYXknKSB7XG4gICAgcmV0dXJuIGJ1aWxkRm9ybUFycmF5QnlKc29uU2NoZW1hKHByb3BlcnR5LCB7ZmIsIHZhbHVlOiAodmFsdWUgfHwgW10pIGFzIGFueVtdfSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRm9ybUZpZWxkTWFwQnlKc29uU2NoZW1hKFxuICBzY2hlbWE6IEpzb25TY2hlbWEsXG4gIG9wdGlvbnM6IHtcbiAgICBtZXJnZT86IHsgW2tleTogc3RyaW5nXTogYW55IH0sXG4gIH0gPSB7fSxcbik6IGFueSB7XG4gIGlmICghc2NoZW1hIHx8ICFzY2hlbWEucHJvcGVydGllcykge1xuICAgIHJldHVybiB7XG4gICAgICBpZDogeyB0eXBlOiAnaGlkZGVuJyB9LFxuICAgIH07XG4gIH1cbiAgY29uc3QgZmllbGRNYXA6IGFueSA9IHt9O1xuICBcbiAgZm9yIChjb25zdCBrZXkgaW4gc2NoZW1hLnByb3BlcnRpZXMpIHtcbiAgICBjb25zdCBwcm9wZXJ0eSA9IHNjaGVtYS5wcm9wZXJ0aWVzW2tleV07XG4gICAgaWYgKHByb3BlcnR5LnR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAocHJvcGVydHkuZW51bSkge1xuICAgICAgICBmaWVsZE1hcFtrZXldID0geyB0eXBlOiAnc2VsZWN0Jywgb3B0aW9uczogcHJvcGVydHkuZW51bS5tYXAoKHY6IHN0cmluZykgPT4gKHsgdmFsdWU6IHYsIG5hbWU6IHYgfSkpIH07XG4gICAgICB9IGVsc2UgaWYgKHByb3BlcnR5LmZvcm1hdCA9PT0gJ2RhdGUtdGltZScpIHtcbiAgICAgICAgZmllbGRNYXBba2V5XSA9IHsgdHlwZTogJ2RhdGUnIH07XG4gICAgICB9IGVsc2UgaWYgKHByb3BlcnR5LmZvcm1hdCA9PT0gJ2JpbmFyeScpIHtcbiAgICAgICAgZmllbGRNYXBba2V5XSA9IHsgdHlwZTogJ2ZpbGUnIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmaWVsZE1hcFtrZXldID0geyB0eXBlOiAndGV4dCcgfTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHByb3BlcnR5LnR5cGUgPT09ICdvYmplY3QnKSB7XG4gICAgICBjb25zdCBjaGlsZEZpZWxkTWFwID0gYnVpbGRGb3JtRmllbGRNYXBCeUpzb25TY2hlbWEocHJvcGVydHksIG9wdGlvbnMpO1xuICAgICAgZm9yIChjb25zdCBjaGlsZEtleSBpbiBjaGlsZEZpZWxkTWFwKSB7XG4gICAgICAgIGZpZWxkTWFwW2Ake2tleX0uJHtjaGlsZEtleX1gXSA9IGNoaWxkRmllbGRNYXBbY2hpbGRLZXldO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAocHJvcGVydHkudHlwZSA9PT0gJ2FycmF5Jykge1xuICAgICAgY29uc3QgY2hpbGRGaWVsZE1hcCA9IGJ1aWxkRm9ybUZpZWxkTWFwQnlKc29uU2NoZW1hKHByb3BlcnR5Lml0ZW1zLCBvcHRpb25zKTtcbiAgICAgIGZvciAoY29uc3QgY2hpbGRLZXkgaW4gY2hpbGRGaWVsZE1hcCkge1xuICAgICAgICAvLyBUT0RPOiDmraPopo/ooajnj77jgafjg5Hjgrnjg57jg4Pjg4HjgpLliKTlrprjgafjgY3jgovjgojjgYbjgavjgZnjgovjgIJcbiAgICAgICAgZmllbGRNYXBbYCR7a2V5fS5cXFxcZCsuJHtjaGlsZEtleX1gXSA9IGNoaWxkRmllbGRNYXBbY2hpbGRLZXldO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBmaWVsZE1hcFtrZXldID0geyB0eXBlOiBwcm9wZXJ0eS50eXBlIH07XG4gICAgfVxuICAgIC8vIGNvbnN0IHR5cGUgPSAgPyAnZGF0ZScgOiBwcm9wZXJ0eS50eXBlO1xuICB9XG5cbiAgY29uc29sZS5kZWJ1ZygnW2J1aWxkRm9ybUZpZWxkTWFwQnlKc29uU2NoZW1hXSBmaWVsZE1hcDonLCBmaWVsZE1hcCk7XG5cbiAgcmV0dXJuIG1lcmdlKGZpZWxkTWFwLCBvcHRpb25zLm1lcmdlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRm9ybUJ5SnNvblNjaGVtYShzY2hlbWE6IEpzb25TY2hlbWEsIHtcbiAgZmIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpLm5vbk51bGxhYmxlLFxuICB2YWx1ZSA9IHt9LFxuICBmaWVsZE1hcCA9IHt9LFxufToge1xuICBmYj86IEZvcm1CdWlsZGVyIHwgTm9uTnVsbGFibGVGb3JtQnVpbGRlcixcbiAgdmFsdWU/OiBvYmplY3QsXG4gIGZpZWxkTWFwPzogb2JqZWN0LFxufSA9IHt9KTogYW55IHtcbiAgcmV0dXJuIHtcbiAgICBmb3JtOiBidWlsZEZvcm1Hcm91cEJ5SnNvblNjaGVtYShzY2hlbWEsIHtmYiwgdmFsdWV9KSxcbiAgICBmaWVsZE1hcDogYnVpbGRGb3JtRmllbGRNYXBCeUpzb25TY2hlbWEoc2NoZW1hLCB7bWVyZ2U6IGZpZWxkTWFwfSksXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEZvcm1Hcm91cChrbGFzczogbmV3KCkgPT4gYW55LCB7XG4gIGZiID0gaW5qZWN0KEZvcm1CdWlsZGVyKS5ub25OdWxsYWJsZSxcbiAgdmFsdWUsXG59OiB7XG4gIGZiPzogRm9ybUJ1aWxkZXIgfCBOb25OdWxsYWJsZUZvcm1CdWlsZGVyLFxuICB2YWx1ZT86IG9iamVjdCxcbn0pOiBGb3JtR3JvdXAge1xuICBjb25zdCBzY2hlbWEgPSB0YXJnZXRDb25zdHJ1Y3RvclRvU2NoZW1hKGtsYXNzKTtcbiAgcmV0dXJuIGJ1aWxkRm9ybUdyb3VwQnlKc29uU2NoZW1hKHNjaGVtYSwge2ZiLCB2YWx1ZX0pO1xufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEZvcm1GaWVsZE1hcChrbGFzczogbmV3KCkgPT4gYW55LCBvcHRpb25zOiB7XG4gIG1lcmdlPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfSxcbn0pOiBhbnkge1xuICBjb25zdCBzY2hlbWEgPSB0YXJnZXRDb25zdHJ1Y3RvclRvU2NoZW1hKGtsYXNzKTtcbiAgY29uc3QgbWFwID0gYnVpbGRGb3JtRmllbGRNYXBCeUpzb25TY2hlbWEoc2NoZW1hLCBvcHRpb25zKTtcbiAgcmV0dXJuIG1lcmdlKG1hcCwgb3B0aW9ucy5tZXJnZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEZvcm0oa2xhc3M6IG5ldygpID0+IGFueSwge1xuICBmYiA9IGluamVjdChGb3JtQnVpbGRlcikubm9uTnVsbGFibGUsXG4gIHZhbHVlID0ge30sXG4gIGZpZWxkTWFwID0ge30sXG59OiB7XG4gIGZiPzogRm9ybUJ1aWxkZXIgfCBOb25OdWxsYWJsZUZvcm1CdWlsZGVyLFxuICB2YWx1ZT86IG9iamVjdCxcbiAgZmllbGRNYXA/OiBvYmplY3QsXG59ID0ge30pOiBhbnkge1xuICBjb25zdCBzY2hlbWEgPSB0YXJnZXRDb25zdHJ1Y3RvclRvU2NoZW1hKGtsYXNzKTtcbiAgcmV0dXJuIHtcbiAgICBmb3JtOiBidWlsZEZvcm1Hcm91cEJ5SnNvblNjaGVtYShzY2hlbWEsIHtmYiwgdmFsdWV9KSxcbiAgICBmaWVsZE1hcDogYnVpbGRGb3JtRmllbGRNYXBCeUpzb25TY2hlbWEoc2NoZW1hLCB7bWVyZ2U6IGZpZWxkTWFwfSksXG4gIH07XG59XG5cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBKc29uU2NoZW1hRm9ybVNlcnZpY2Uge1xuICBwcml2YXRlIGZiID0gaW5qZWN0KEZvcm1CdWlsZGVyKS5ub25OdWxsYWJsZTtcblxuICBidWlsZChzY2hlbWE6IEpzb25TY2hlbWEsIHtcbiAgICBmYiA9IHRoaXMuZmIsXG4gICAgdmFsdWUgPSB7fSxcbiAgfToge1xuICAgIGZiPzogRm9ybUJ1aWxkZXIgfCBOb25OdWxsYWJsZUZvcm1CdWlsZGVyLFxuICAgIHZhbHVlPzogb2JqZWN0LFxuICB9ID0ge30pOiBGb3JtR3JvdXAge1xuICAgIHJldHVybiBidWlsZEZvcm1Hcm91cEJ5SnNvblNjaGVtYShzY2hlbWEsIHtmYiwgdmFsdWV9KTtcbiAgfVxuXG4gIGJ1aWxkRmllbGRNYXAoXG4gICAgc2NoZW1hOiBKc29uU2NoZW1hLFxuICAgIG9wdGlvbnM6IHtcbiAgICAgIG1lcmdlPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfSxcbiAgICB9ID0ge30sXG4gICk6IGFueSB7XG4gICAgcmV0dXJuIGJ1aWxkRm9ybUZpZWxkTWFwQnlKc29uU2NoZW1hKHNjaGVtYSwgb3B0aW9ucyk7XG4gIH1cbn1cbiJdfQ==
|
|
140
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1zY2hlbWEuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29tbW9uL3NyYy9saWIvc2VydmljZXMvZm9ybS9qc29uLXNjaGVtYS9qc29uLXNjaGVtYS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQXFDLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDOztBQUVsQyxNQUFNLFVBQVUsMEJBQTBCLENBQUMsTUFBa0IsRUFBRSxFQUM3RCxFQUFFLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFdBQVcsRUFDcEMsS0FBSyxHQUFHLEVBQUUsTUFJUixFQUFFO0lBQ0osT0FBTyxDQUFDLEtBQUssQ0FBQyxzQ0FBc0MsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM5RCxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxDQUFDO1FBQ25DLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBQ0QsTUFBTSxLQUFLLEdBQVEsRUFBRSxDQUFDO0lBRXRCLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEMsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBRXRCLElBQUksTUFBTSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3JELFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7UUFDRCxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsNkJBQTZCLENBQUMsUUFBUSxFQUFFLEVBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFDRCxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDekIsQ0FBQztBQUVELE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxNQUFrQixFQUFFLEVBQzdELEVBQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsV0FBVyxFQUNwQyxLQUFLLEdBQUcsRUFBRSxNQUlSLEVBQUU7SUFDSixJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzdCLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxzQ0FBc0MsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM5RCxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ3JCLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQztLQUMvQyxDQUFDLENBQUE7SUFDRixPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxNQUFNLFVBQVUsNkJBQTZCLENBQUMsUUFBb0IsRUFBRSxFQUNsRSxFQUFFLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFdBQVcsRUFDcEMsS0FBSyxHQUFHLElBQUksRUFDWixVQUFVLEdBQUcsRUFBRSxNQUtiLEVBQUU7SUFDSixJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDL0IsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ3BDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksUUFBUSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDbkUsQ0FBQzthQUFNLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN4QyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLFFBQVEsQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ25FLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxRQUFRLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNqRSxDQUFDO0lBQ0gsQ0FBQztTQUFNLElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUN2QyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLFFBQVEsQ0FBQyxPQUFPLElBQUksQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7U0FBTSxJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDdEMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxRQUFRLENBQUMsT0FBTyxJQUFJLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNoRSxDQUFDO1NBQU0sSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3RDLE9BQU8sMEJBQTBCLENBQUMsUUFBUSxFQUFFLEVBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQVcsRUFBQyxDQUFDLENBQUM7SUFDcEYsQ0FBQztTQUNJLElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztRQUNuQyxPQUFPLDBCQUEwQixDQUFDLFFBQVEsRUFBRSxFQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFVLEVBQUMsQ0FBQyxDQUFDO0lBQ25GLENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLDZCQUE2QixDQUMzQyxNQUFrQixFQUNsQixVQUVJLEVBQUU7SUFFTixJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xDLE9BQU87WUFDTCxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO1NBQ3ZCLENBQUM7SUFDSixDQUFDO0lBQ0QsTUFBTSxRQUFRLEdBQVEsRUFBRSxDQUFDO0lBRXpCLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEMsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQy9CLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNsQixRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3pHLENBQUM7aUJBQU0sSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLFdBQVcsRUFBRSxDQUFDO2dCQUMzQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDbkMsQ0FBQztpQkFBTSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ3hDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNuQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ25DLENBQUM7UUFDSCxDQUFDO2FBQU0sSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sYUFBYSxHQUFHLDZCQUE2QixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUN2RSxLQUFLLE1BQU0sUUFBUSxJQUFJLGFBQWEsRUFBRSxDQUFDO2dCQUNyQyxRQUFRLENBQUMsR0FBRyxHQUFHLElBQUksUUFBUSxFQUFFLENBQUMsR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDM0QsQ0FBQztRQUNILENBQUM7YUFBTSxJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDckMsTUFBTSxhQUFhLEdBQUcsNkJBQTZCLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztZQUM3RSxLQUFLLE1BQU0sUUFBUSxJQUFJLGFBQWEsRUFBRSxDQUFDO2dCQUNyQywrQkFBK0I7Z0JBQy9CLFFBQVEsQ0FBQyxHQUFHLEdBQUcsU0FBUyxRQUFRLEVBQUUsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNoRSxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFDLENBQUM7UUFDRCwwQ0FBMEM7SUFDNUMsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFLLENBQUMsMkNBQTJDLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFFckUsT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQixDQUFDLE1BQWtCLEVBQUUsRUFDeEQsRUFBRSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxXQUFXLEVBQ3BDLEtBQUssR0FBRyxFQUFFLEVBQ1YsUUFBUSxHQUFHLEVBQUUsTUFLWCxFQUFFO0lBQ0osT0FBTztRQUNMLElBQUksRUFBRSwwQkFBMEIsQ0FBQyxNQUFNLEVBQUUsRUFBQyxFQUFFLEVBQUUsS0FBSyxFQUFDLENBQUM7UUFDckQsUUFBUSxFQUFFLDZCQUE2QixDQUFDLE1BQU0sRUFBRSxFQUFDLEtBQUssRUFBRSxRQUFRLEVBQUMsQ0FBQztLQUNuRSxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsS0FBbUIsRUFBRSxFQUNsRCxFQUFFLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFdBQVcsRUFDcEMsS0FBSyxHQUlOO0lBQ0MsTUFBTSxNQUFNLEdBQUcseUJBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEQsT0FBTywwQkFBMEIsQ0FBQyxNQUFNLEVBQUUsRUFBQyxFQUFFLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQztBQUN6RCxDQUFDO0FBR0QsTUFBTSxVQUFVLGlCQUFpQixDQUFDLEtBQW1CLEVBQUUsT0FFdEQ7SUFDQyxNQUFNLE1BQU0sR0FBRyx5QkFBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRCxNQUFNLEdBQUcsR0FBRyw2QkFBNkIsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0QsT0FBTyxLQUFLLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNuQyxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxLQUFtQixFQUFFLEVBQzdDLEVBQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsV0FBVyxFQUNwQyxLQUFLLEdBQUcsRUFBRSxFQUNWLFFBQVEsR0FBRyxFQUFFLE1BS1gsRUFBRTtJQUNKLE1BQU0sTUFBTSxHQUFHLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hELE9BQU87UUFDTCxJQUFJLEVBQUUsMEJBQTBCLENBQUMsTUFBTSxFQUFFLEVBQUMsRUFBRSxFQUFFLEtBQUssRUFBQyxDQUFDO1FBQ3JELFFBQVEsRUFBRSw2QkFBNkIsQ0FBQyxNQUFNLEVBQUUsRUFBQyxLQUFLLEVBQUUsUUFBUSxFQUFDLENBQUM7S0FDbkUsQ0FBQztBQUNKLENBQUM7QUFJRCxNQUFNLE9BQU8scUJBQXFCO0lBRGxDO1FBRVUsT0FBRSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxXQUFXLENBQUM7S0FvQjlDO0lBbEJDLEtBQUssQ0FBQyxNQUFrQixFQUFFLEVBQ3hCLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUNaLEtBQUssR0FBRyxFQUFFLE1BSVIsRUFBRTtRQUNKLE9BQU8sMEJBQTBCLENBQUMsTUFBTSxFQUFFLEVBQUMsRUFBRSxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELGFBQWEsQ0FDWCxNQUFrQixFQUNsQixVQUVJLEVBQUU7UUFFTixPQUFPLDZCQUE2QixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN4RCxDQUFDOzhHQXBCVSxxQkFBcUI7a0hBQXJCLHFCQUFxQixjQURSLE1BQU07OzJGQUNuQixxQkFBcUI7a0JBRGpDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIE5vbk51bGxhYmxlRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IEpzb25TY2hlbWEgfSBmcm9tIFwianNvbi1zY2hlbWEtbGlicmFyeVwiO1xuaW1wb3J0IHsgdGFyZ2V0Q29uc3RydWN0b3JUb1NjaGVtYSB9IGZyb20gJy4vanNvbi1zY2hlbWEnO1xuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEZvcm1Hcm91cEJ5SnNvblNjaGVtYShzY2hlbWE6IEpzb25TY2hlbWEsIHtcbiAgZmIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpLm5vbk51bGxhYmxlLFxuICB2YWx1ZSA9IHt9LFxufToge1xuICBmYj86IEZvcm1CdWlsZGVyIHwgTm9uTnVsbGFibGVGb3JtQnVpbGRlcixcbiAgdmFsdWU/OiBvYmplY3QsXG59ID0ge30pOiBGb3JtR3JvdXAge1xuICBjb25zb2xlLmRlYnVnKCdbYnVpbGRGb3JtR3JvdXBCeUpzb25TY2hlbWFdIHNjaGVtYTonLCBzY2hlbWEpO1xuICBpZiAoIXNjaGVtYSB8fCAhc2NoZW1hPy5wcm9wZXJ0aWVzKSB7XG4gICAgcmV0dXJuIGZiLmdyb3VwKHt9KTtcbiAgfVxuICBjb25zdCBncm91cDogYW55ID0ge307XG4gIFxuICBmb3IgKGNvbnN0IGtleSBpbiBzY2hlbWEucHJvcGVydGllcykge1xuICAgIGNvbnN0IHByb3BlcnR5ID0gc2NoZW1hLnByb3BlcnRpZXNba2V5XTtcbiAgICBjb25zdCB2YWxpZGF0b3JzID0gW107XG5cbiAgICBpZiAoc2NoZW1hLnJlcXVpcmVkICYmIHNjaGVtYS5yZXF1aXJlZC5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgfVxuICAgIGdyb3VwW2tleV0gPSBidWlsZEZvcm1CeUpzb25TY2hlbWFQcm9wZXJ0eShwcm9wZXJ0eSwge2ZiLCB2YWx1ZTogdmFsdWU/LltrZXldLCB2YWxpZGF0b3JzfSk7XG4gIH1cbiAgcmV0dXJuIGZiLmdyb3VwKGdyb3VwKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRm9ybUFycmF5QnlKc29uU2NoZW1hKHNjaGVtYTogSnNvblNjaGVtYSwge1xuICBmYiA9IGluamVjdChGb3JtQnVpbGRlcikubm9uTnVsbGFibGUsXG4gIHZhbHVlID0gW10sXG59OiB7XG4gIGZiPzogRm9ybUJ1aWxkZXIgfCBOb25OdWxsYWJsZUZvcm1CdWlsZGVyLFxuICB2YWx1ZT86IGFueVtdLFxufSA9IHt9KTogYW55IHtcbiAgaWYgKCFzY2hlbWEgfHwgIXNjaGVtYS5pdGVtcykge1xuICAgIHJldHVybiBmYi5hcnJheShbXSk7XG4gIH1cbiAgY29uc29sZS5kZWJ1ZygnW2J1aWxkRm9ybUFycmF5QnlKc29uU2NoZW1hXSBzY2hlbWE6Jywgc2NoZW1hKTtcbiAgY29uc3QgYXJyYXkgPSBmYi5hcnJheShbXG4gICAgYnVpbGRGb3JtR3JvdXBCeUpzb25TY2hlbWEoc2NoZW1hLml0ZW1zLCB7ZmJ9KSxcbiAgXSlcbiAgcmV0dXJuIGFycmF5O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRGb3JtQnlKc29uU2NoZW1hUHJvcGVydHkocHJvcGVydHk6IEpzb25TY2hlbWEsIHtcbiAgZmIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpLm5vbk51bGxhYmxlLFxuICB2YWx1ZSA9IG51bGwsXG4gIHZhbGlkYXRvcnMgPSBbXSxcbn06IHtcbiAgZmI/OiBGb3JtQnVpbGRlciB8IE5vbk51bGxhYmxlRm9ybUJ1aWxkZXIsXG4gIHZhbHVlPzogb2JqZWN0IHwgb2JqZWN0W10sXG4gIHZhbGlkYXRvcnM/OiBhbnlbXSxcbn0gPSB7fSk6IGFueSB7XG4gIGlmIChwcm9wZXJ0eS50eXBlID09PSAnc3RyaW5nJykge1xuICAgIGlmIChwcm9wZXJ0eS5mb3JtYXQgPT09ICdkYXRlLXRpbWUnKSB7XG4gICAgICByZXR1cm4gZmIuY29udHJvbCh2YWx1ZSA/PyBwcm9wZXJ0eS5kZWZhdWx0ID8/IG51bGwsIHZhbGlkYXRvcnMpO1xuICAgIH0gZWxzZSBpZiAocHJvcGVydHkuZm9ybWF0ID09PSAnYmluYXJ5Jykge1xuICAgICAgcmV0dXJuIGZiLmNvbnRyb2wodmFsdWUgPz8gcHJvcGVydHkuZGVmYXVsdCA/PyBudWxsLCB2YWxpZGF0b3JzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZiLmNvbnRyb2wodmFsdWUgPz8gcHJvcGVydHkuZGVmYXVsdCA/PyAnJywgdmFsaWRhdG9ycyk7XG4gICAgfVxuICB9IGVsc2UgaWYgKHByb3BlcnR5LnR5cGUgPT09ICdpbnRlZ2VyJykge1xuICAgIHJldHVybiBmYi5jb250cm9sKHZhbHVlID8/IHByb3BlcnR5LmRlZmF1bHQgPz8gMCwgdmFsaWRhdG9ycyk7XG4gIH0gZWxzZSBpZiAocHJvcGVydHkudHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gZmIuY29udHJvbCh2YWx1ZSA/PyBwcm9wZXJ0eS5kZWZhdWx0ID8/IDAsIHZhbGlkYXRvcnMpO1xuICB9IGVsc2UgaWYgKHByb3BlcnR5LnR5cGUgPT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGJ1aWxkRm9ybUdyb3VwQnlKc29uU2NoZW1hKHByb3BlcnR5LCB7ZmIsIHZhbHVlOiAodmFsdWUgfHwge30pIGFzIG9iamVjdH0pO1xuICB9XG4gIGVsc2UgaWYgKHByb3BlcnR5LnR5cGUgPT09ICdhcnJheScpIHtcbiAgICByZXR1cm4gYnVpbGRGb3JtQXJyYXlCeUpzb25TY2hlbWEocHJvcGVydHksIHtmYiwgdmFsdWU6ICh2YWx1ZSB8fCBbXSkgYXMgYW55W119KTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRGb3JtRmllbGRNYXBCeUpzb25TY2hlbWEoXG4gIHNjaGVtYTogSnNvblNjaGVtYSxcbiAgb3B0aW9uczoge1xuICAgIG1lcmdlPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfSxcbiAgfSA9IHt9LFxuKTogYW55IHtcbiAgaWYgKCFzY2hlbWEgfHwgIXNjaGVtYS5wcm9wZXJ0aWVzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiB7IHR5cGU6ICdoaWRkZW4nIH0sXG4gICAgfTtcbiAgfVxuICBjb25zdCBmaWVsZE1hcDogYW55ID0ge307XG4gIFxuICBmb3IgKGNvbnN0IGtleSBpbiBzY2hlbWEucHJvcGVydGllcykge1xuICAgIGNvbnN0IHByb3BlcnR5ID0gc2NoZW1hLnByb3BlcnRpZXNba2V5XTtcbiAgICBpZiAocHJvcGVydHkudHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGlmIChwcm9wZXJ0eS5lbnVtKSB7XG4gICAgICAgIGZpZWxkTWFwW2tleV0gPSB7IHR5cGU6ICdzZWxlY3QnLCBvcHRpb25zOiBwcm9wZXJ0eS5lbnVtLm1hcCgodjogc3RyaW5nKSA9PiAoeyB2YWx1ZTogdiwgbmFtZTogdiB9KSkgfTtcbiAgICAgIH0gZWxzZSBpZiAocHJvcGVydHkuZm9ybWF0ID09PSAnZGF0ZS10aW1lJykge1xuICAgICAgICBmaWVsZE1hcFtrZXldID0geyB0eXBlOiAnZGF0ZScgfTtcbiAgICAgIH0gZWxzZSBpZiAocHJvcGVydHkuZm9ybWF0ID09PSAnYmluYXJ5Jykge1xuICAgICAgICBmaWVsZE1hcFtrZXldID0geyB0eXBlOiAnZmlsZScgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZpZWxkTWFwW2tleV0gPSB7IHR5cGU6ICd0ZXh0JyB9O1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAocHJvcGVydHkudHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGNvbnN0IGNoaWxkRmllbGRNYXAgPSBidWlsZEZvcm1GaWVsZE1hcEJ5SnNvblNjaGVtYShwcm9wZXJ0eSwgb3B0aW9ucyk7XG4gICAgICBmb3IgKGNvbnN0IGNoaWxkS2V5IGluIGNoaWxkRmllbGRNYXApIHtcbiAgICAgICAgZmllbGRNYXBbYCR7a2V5fS4ke2NoaWxkS2V5fWBdID0gY2hpbGRGaWVsZE1hcFtjaGlsZEtleV07XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChwcm9wZXJ0eS50eXBlID09PSAnYXJyYXknKSB7XG4gICAgICBjb25zdCBjaGlsZEZpZWxkTWFwID0gYnVpbGRGb3JtRmllbGRNYXBCeUpzb25TY2hlbWEocHJvcGVydHkuaXRlbXMsIG9wdGlvbnMpO1xuICAgICAgZm9yIChjb25zdCBjaGlsZEtleSBpbiBjaGlsZEZpZWxkTWFwKSB7XG4gICAgICAgIC8vIFRPRE86IOato+imj+ihqOePvuOBp+ODkeOCueODnuODg+ODgeOCkuWIpOWumuOBp+OBjeOCi+OCiOOBhuOBq+OBmeOCi+OAglxuICAgICAgICBmaWVsZE1hcFtgJHtrZXl9LlxcXFxkKy4ke2NoaWxkS2V5fWBdID0gY2hpbGRGaWVsZE1hcFtjaGlsZEtleV07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGZpZWxkTWFwW2tleV0gPSB7IHR5cGU6IHByb3BlcnR5LnR5cGUgfTtcbiAgICB9XG4gICAgLy8gY29uc3QgdHlwZSA9ICA/ICdkYXRlJyA6IHByb3BlcnR5LnR5cGU7XG4gIH1cblxuICBjb25zb2xlLmRlYnVnKCdbYnVpbGRGb3JtRmllbGRNYXBCeUpzb25TY2hlbWFdIGZpZWxkTWFwOicsIGZpZWxkTWFwKTtcblxuICByZXR1cm4gbWVyZ2UoZmllbGRNYXAsIG9wdGlvbnMubWVyZ2UpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRGb3JtQnlKc29uU2NoZW1hKHNjaGVtYTogSnNvblNjaGVtYSwge1xuICBmYiA9IGluamVjdChGb3JtQnVpbGRlcikubm9uTnVsbGFibGUsXG4gIHZhbHVlID0ge30sXG4gIGZpZWxkTWFwID0ge30sXG59OiB7XG4gIGZiPzogRm9ybUJ1aWxkZXIgfCBOb25OdWxsYWJsZUZvcm1CdWlsZGVyLFxuICB2YWx1ZT86IG9iamVjdCxcbiAgZmllbGRNYXA/OiBvYmplY3QsXG59ID0ge30pOiBhbnkge1xuICByZXR1cm4ge1xuICAgIGZvcm06IGJ1aWxkRm9ybUdyb3VwQnlKc29uU2NoZW1hKHNjaGVtYSwge2ZiLCB2YWx1ZX0pLFxuICAgIGZpZWxkTWFwOiBidWlsZEZvcm1GaWVsZE1hcEJ5SnNvblNjaGVtYShzY2hlbWEsIHttZXJnZTogZmllbGRNYXB9KSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRm9ybUdyb3VwKGtsYXNzOiBuZXcoKSA9PiBhbnksIHtcbiAgZmIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpLm5vbk51bGxhYmxlLFxuICB2YWx1ZSxcbn06IHtcbiAgZmI/OiBGb3JtQnVpbGRlciB8IE5vbk51bGxhYmxlRm9ybUJ1aWxkZXIsXG4gIHZhbHVlPzogb2JqZWN0LFxufSk6IEZvcm1Hcm91cCB7XG4gIGNvbnN0IHNjaGVtYSA9IHRhcmdldENvbnN0cnVjdG9yVG9TY2hlbWEoa2xhc3MpO1xuICByZXR1cm4gYnVpbGRGb3JtR3JvdXBCeUpzb25TY2hlbWEoc2NoZW1hLCB7ZmIsIHZhbHVlfSk7XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRm9ybUZpZWxkTWFwKGtsYXNzOiBuZXcoKSA9PiBhbnksIG9wdGlvbnM6IHtcbiAgbWVyZ2U/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9LFxufSk6IGFueSB7XG4gIGNvbnN0IHNjaGVtYSA9IHRhcmdldENvbnN0cnVjdG9yVG9TY2hlbWEoa2xhc3MpO1xuICBjb25zdCBtYXAgPSBidWlsZEZvcm1GaWVsZE1hcEJ5SnNvblNjaGVtYShzY2hlbWEsIG9wdGlvbnMpO1xuICByZXR1cm4gbWVyZ2UobWFwLCBvcHRpb25zLm1lcmdlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRm9ybShrbGFzczogbmV3KCkgPT4gYW55LCB7XG4gIGZiID0gaW5qZWN0KEZvcm1CdWlsZGVyKS5ub25OdWxsYWJsZSxcbiAgdmFsdWUgPSB7fSxcbiAgZmllbGRNYXAgPSB7fSxcbn06IHtcbiAgZmI/OiBGb3JtQnVpbGRlciB8IE5vbk51bGxhYmxlRm9ybUJ1aWxkZXIsXG4gIHZhbHVlPzogb2JqZWN0LFxuICBmaWVsZE1hcD86IG9iamVjdCxcbn0gPSB7fSk6IGFueSB7XG4gIGNvbnN0IHNjaGVtYSA9IHRhcmdldENvbnN0cnVjdG9yVG9TY2hlbWEoa2xhc3MpO1xuICByZXR1cm4ge1xuICAgIGZvcm06IGJ1aWxkRm9ybUdyb3VwQnlKc29uU2NoZW1hKHNjaGVtYSwge2ZiLCB2YWx1ZX0pLFxuICAgIGZpZWxkTWFwOiBidWlsZEZvcm1GaWVsZE1hcEJ5SnNvblNjaGVtYShzY2hlbWEsIHttZXJnZTogZmllbGRNYXB9KSxcbiAgfTtcbn1cblxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEpzb25TY2hlbWFGb3JtU2VydmljZSB7XG4gIHByaXZhdGUgZmIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpLm5vbk51bGxhYmxlO1xuXG4gIGJ1aWxkKHNjaGVtYTogSnNvblNjaGVtYSwge1xuICAgIGZiID0gdGhpcy5mYixcbiAgICB2YWx1ZSA9IHt9LFxuICB9OiB7XG4gICAgZmI/OiBGb3JtQnVpbGRlciB8IE5vbk51bGxhYmxlRm9ybUJ1aWxkZXIsXG4gICAgdmFsdWU/OiBvYmplY3QsXG4gIH0gPSB7fSk6IEZvcm1Hcm91cCB7XG4gICAgcmV0dXJuIGJ1aWxkRm9ybUdyb3VwQnlKc29uU2NoZW1hKHNjaGVtYSwge2ZiLCB2YWx1ZX0pO1xuICB9XG5cbiAgYnVpbGRGaWVsZE1hcChcbiAgICBzY2hlbWE6IEpzb25TY2hlbWEsXG4gICAgb3B0aW9uczoge1xuICAgICAgbWVyZ2U/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9LFxuICAgIH0gPSB7fSxcbiAgKTogYW55IHtcbiAgICByZXR1cm4gYnVpbGRGb3JtRmllbGRNYXBCeUpzb25TY2hlbWEoc2NoZW1hLCBvcHRpb25zKTtcbiAgfVxufVxuIl19
|
|
@@ -12,6 +12,9 @@ export class EntityStoreAdapter {
|
|
|
12
12
|
delete(entity) {
|
|
13
13
|
throw new Error('not implemented');
|
|
14
14
|
}
|
|
15
|
+
save(entity) {
|
|
16
|
+
throw new Error('not implemented');
|
|
17
|
+
}
|
|
15
18
|
}
|
|
16
19
|
export const ENTITY_STORE_ADAPTER = new InjectionToken('ENTITY_STORE_ADAPTER');
|
|
17
20
|
export function provideEntityStoreAdapter(entity, adapterFactory) {
|
|
@@ -28,4 +31,4 @@ export function injectEntityStoreAdapter(entity) {
|
|
|
28
31
|
const adapters = inject(ENTITY_STORE_ADAPTER, { optional: true }) ?? [];
|
|
29
32
|
return adapters.find(adapter => adapter.entity === entity)?.adapter;
|
|
30
33
|
}
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXN0b3JlLWFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3N0b3Jlcy9lbnRpdGllcy9lbnRpdHktc3RvcmUtYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLakUsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixJQUFJO1FBQ0YsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxNQUFNLENBQUUsTUFBUztRQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsTUFBTSxDQUFFLE1BQWtDO1FBQ3hDLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsTUFBTSxDQUFFLE1BQXFCO1FBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxDQUFFLE1BQVM7UUFDYixNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDckMsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxjQUFjLENBR2pELHNCQUFzQixDQUFDLENBQUM7QUFFN0IsTUFBTSxVQUFVLHlCQUF5QixDQUN2QyxNQUFlLEVBQ2YsY0FBNkQ7SUFFN0QsT0FBTztRQUNMLE9BQU8sRUFBRSxvQkFBb0I7UUFDN0IsS0FBSyxFQUFFLElBQUk7UUFDWCxVQUFVLEVBQUUsQ0FBQyxRQUFrQixFQUFFLEVBQUU7WUFDakMsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDdkQsQ0FBQztRQUNELElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQztLQUNqQixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSx3QkFBd0IsQ0FBbUIsTUFBZTtJQUN4RSxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsb0JBQW9CLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEUsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsRUFBRSxPQUFnQyxDQUFDO0FBQy9GLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IEluamVjdGlvblRva2VuLCBJbmplY3RvciwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUeXBlIH0gZnJvbSAnQG54LWRkZC9jb21tb24vZG9tYWluL21vZGVscyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tICcuL3Rhc2stY29tcG9zZXInO1xuXG5leHBvcnQgY2xhc3MgRW50aXR5U3RvcmVBZGFwdGVyPEUgZXh0ZW5kcyBFbnRpdHk+IHtcbiAgbGlzdD8oKTogT2JzZXJ2YWJsZTxFW10+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgY3JlYXRlPyhlbnRpdHk6IEUpOiBQcm9taXNlPEU+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgdXBkYXRlPyhlbnRpdHk6IFBhcnRpYWw8RT4gJiBQaWNrPEUsICdpZCc+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdub3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxuXG4gIGRlbGV0ZT8oZW50aXR5OiBQaWNrPEUsICdpZCc+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdub3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxuXG4gIHNhdmU/KGVudGl0eTogRSk6IFByb21pc2U8RT4ge1xuICAgIHRocm93IG5ldyBFcnJvcignbm90IGltcGxlbWVudGVkJyk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IEVOVElUWV9TVE9SRV9BREFQVEVSID0gbmV3IEluamVjdGlvblRva2VuPHtcbiAgZW50aXR5OiBUeXBlPEVudGl0eT4sXG4gIGFkYXB0ZXI6IEVudGl0eVN0b3JlQWRhcHRlcjxFbnRpdHk+XG59W10+KCdFTlRJVFlfU1RPUkVfQURBUFRFUicpO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUVudGl0eVN0b3JlQWRhcHRlcjxFIGV4dGVuZHMgRW50aXR5PihcbiAgZW50aXR5OiBUeXBlPEU+LFxuICBhZGFwdGVyRmFjdG9yeTogKGluamVjdG9yOiBJbmplY3RvcikgPT4gRW50aXR5U3RvcmVBZGFwdGVyPEU+LFxuKSB7XG4gIHJldHVybiB7XG4gICAgcHJvdmlkZTogRU5USVRZX1NUT1JFX0FEQVBURVIsXG4gICAgbXVsdGk6IHRydWUsXG4gICAgdXNlRmFjdG9yeTogKGluamVjdG9yOiBJbmplY3RvcikgPT4ge1xuICAgICAgcmV0dXJuIHsgZW50aXR5LCBhZGFwdGVyOiBhZGFwdGVyRmFjdG9yeShpbmplY3RvcikgfTtcbiAgICB9LFxuICAgIGRlcHM6IFtJbmplY3Rvcl1cbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdEVudGl0eVN0b3JlQWRhcHRlcjxFIGV4dGVuZHMgRW50aXR5PihlbnRpdHk6IFR5cGU8RT4pOiBFbnRpdHlTdG9yZUFkYXB0ZXI8RT4ge1xuICBjb25zdCBhZGFwdGVycyA9IGluamVjdChFTlRJVFlfU1RPUkVfQURBUFRFUiwge29wdGlvbmFsOiB0cnVlfSkgPz8gW107XG4gIHJldHVybiBhZGFwdGVycy5maW5kKGFkYXB0ZXIgPT4gYWRhcHRlci5lbnRpdHkgPT09IGVudGl0eSk/LmFkYXB0ZXIgYXMgRW50aXR5U3RvcmVBZGFwdGVyPEU+O1xufVxuIl19
|
|
@@ -105,5 +105,17 @@ export class EntityStore extends BaseEntityStore {
|
|
|
105
105
|
}
|
|
106
106
|
onSyncFailed() { }
|
|
107
107
|
onSyncSucceeded() { }
|
|
108
|
+
create(payload) {
|
|
109
|
+
return this.adapter.create(payload);
|
|
110
|
+
}
|
|
111
|
+
update(payload) {
|
|
112
|
+
return this.adapter.update(payload);
|
|
113
|
+
}
|
|
114
|
+
delete(payload) {
|
|
115
|
+
return this.adapter.delete(payload);
|
|
116
|
+
}
|
|
117
|
+
save(payload) {
|
|
118
|
+
return this.adapter.save(payload);
|
|
119
|
+
}
|
|
108
120
|
}
|
|
109
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21tb24vc3JjL2xpYi9zdG9yZXMvZW50aXRpZXMvZW50aXR5LXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQThCLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQy9FLE9BQU8sRUFBYyxhQUFhLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUcsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQWdCLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBc0Isd0JBQXdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV0RixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxHQUFNLEVBQUU7SUFDL0MsT0FBTyxvQkFBb0IsQ0FBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzVGLENBQUMsQ0FBQztBQUVGLE1B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Q0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztpQkFDMUMsQ0FBQyxDQUFDO2dCQUNILEtBQUssUUFBUSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztvQkFDeEMsR0FBRyxJQUFJLENBQUMsT0FBTztvQkFDZixFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7aUJBQ25DLENBQUMsQ0FBQztZQUNaLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQzthQUNGLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7YUFDbEMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFUyxZQUFZLEtBQUssQ0FBQztJQUNsQixlQUFlLEtBQUssQ0FBQztDQUNoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUeXBlIH0gZnJvbSAnQG54LWRkZC9jb21tb24vZG9tYWluL21vZGVscyc7XG5pbXBvcnQgeyBDb21wb25lbnRTdG9yZSB9IGZyb20gJ0BuZ3J4L2NvbXBvbmVudC1zdG9yZSc7XG5pbXBvcnQgeyBFbnRpdHlTdGF0ZSwgRW50aXR5QWRhcHRlciwgY3JlYXRlRW50aXR5QWRhcHRlciB9IGZyb20gJ0BuZ3J4L2VudGl0eSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0LCBpc09ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBidWZmZXJUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IG1lcmdlIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEVudGl0eSwgVGFzaywgVGFza0NvbXBvc2VyU2VydmljZSB9IGZyb20gJy4vdGFzay1jb21wb3Nlcic7XG5pbXBvcnQgeyBQcm94eUlkU2VydmljZSB9IGZyb20gJy4vcHJveHktaWQuc2VydmljZSc7XG5pbXBvcnQgeyBFbnRpdHlTdG9yZUFkYXB0ZXIsIGluamVjdEVudGl0eVN0b3JlQWRhcHRlciB9IGZyb20gJy4vZW50aXR5LXN0b3JlLWFkYXB0ZXInO1xuXG5leHBvcnQgY29uc3QgZGlzdGluY3RVbnRpbENoYW5nZWRBcnJheSA9IDxUPigpID0+IHtcbiAgcmV0dXJuIGRpc3RpbmN0VW50aWxDaGFuZ2VkPFQ+KChwcmUsIGN1cikgPT4gSlNPTi5zdHJpbmdpZnkocHJlKSA9PT0gSlNPTi5zdHJpbmdpZnkoY3VyKSk7XG59O1xuXG5leHBvcnQgY2xhc3MgQmFzZUVudGl0eVN0b3JlPEUgZXh0ZW5kcyBFbnRpdHk+IGV4dGVuZHMgQ29tcG9uZW50U3RvcmU8RW50aXR5U3RhdGU8RT4+IHtcbiAgcHJvdGVjdGVkIGFkYXB0ZXI6IEVudGl0eVN0b3JlQWRhcHRlcjxFPjtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVmcmVzaCQgPSBuZXcgUmVwbGF5U3ViamVjdDx2b2lkPigxKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlbGVjdG9ycyA9IHRoaXMuZW50aXR5QWRhcHRlci5nZXRTZWxlY3RvcnMoKTtcbiAgcmVhZG9ubHkgYWxsJCA9IHRoaXMuc2VsZWN0KHRoaXMuc2VsZWN0b3JzLnNlbGVjdEFsbCk7XG4gIHJlYWRvbmx5IGFsbCA9IHRvU2lnbmFsKHRoaXMuYWxsJCk7XG4gIHJlYWRvbmx5IHRvdGFsJCA9IHRoaXMuc2VsZWN0KHRoaXMuc2VsZWN0b3JzLnNlbGVjdFRvdGFsKTtcbiAgcmVhZG9ubHkgdG90YWwgPSB0b1NpZ25hbCh0aGlzLnRvdGFsJCk7XG5cbiAgLyoqIEBkZXByZWNhdGVkIHVzZSBCYXNlRW50aXR5U3RvcmUuYWxsJCBpbnN0ZWFkLiAqL1xuICByZWFkb25seSBlbnRpdGllcyQgPSB0aGlzLmFsbCRcbiAgLyoqIEBkZXByZWNhdGVkIHVzZSBCYXNlRW50aXR5U3RvcmUuYWxsIGluc3RlYWQuICovXG4gIHJlYWRvbmx5IGVudGl0aWVzID0gdGhpcy5hbGw7XG4gIC8qKiBAZGVwcmVjYXRlZCB1c2UgQmFzZUVudGl0eVN0b3JlLnRvdGFsJCBpbnN0ZWFkLiAqL1xuICByZWFkb25seSBzaXplJCA9IHRoaXMudG90YWwkO1xuXG4gIHJlYWRvbmx5IGFkZE9uZSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGVudGl0eTogRSkgPT4gdGhpcy5lbnRpdHlBZGFwdGVyLmFkZE9uZShlbnRpdHksIHN0YXRlKSk7XG4gIHJlYWRvbmx5IGFkZE1hbnkgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBlbnRpdGllczogRVtdKSA9PiB0aGlzLmVudGl0eUFkYXB0ZXIuYWRkTWFueShlbnRpdGllcywgc3RhdGUpKTtcbiAgcmVhZG9ubHkgdXBkYXRlT25lID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgdXBkYXRlOiB7aWQ6IHN0cmluZywgY2hhbmdlczogUGFydGlhbDxFPn0pID0+IHRoaXMuZW50aXR5QWRhcHRlci51cGRhdGVPbmUodXBkYXRlLCBzdGF0ZSkpO1xuICByZWFkb25seSB1cGRhdGVNYW55ID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgdXBkYXRlczoge2lkOiBzdHJpbmcsIGNoYW5nZXM6IFBhcnRpYWw8RT59W10pID0+IHRoaXMuZW50aXR5QWRhcHRlci51cGRhdGVNYW55KHVwZGF0ZXMsIHN0YXRlKSk7XG4gIHJlYWRvbmx5IHVwc2VydE9uZSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGVudGl0eTogRSkgPT4gdGhpcy5lbnRpdHlBZGFwdGVyLnVwc2VydE9uZShlbnRpdHksIHN0YXRlKSk7XG4gIHJlYWRvbmx5IHVwc2VydE1hbnkgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBlbnRpdGllczogRVtdKSA9PiB0aGlzLmVudGl0eUFkYXB0ZXIudXBzZXJ0TWFueShlbnRpdGllcywgc3RhdGUpKTtcbiAgcmVhZG9ubHkgcmVtb3ZlT25lID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgaWQ6IHN0cmluZykgPT4gdGhpcy5lbnRpdHlBZGFwdGVyLnJlbW92ZU9uZShpZCwgc3RhdGUpKTtcbiAgcmVhZG9ubHkgcmVtb3ZlTWFueSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGlkczogc3RyaW5nW10pID0+IHRoaXMuZW50aXR5QWRhcHRlci5yZW1vdmVNYW55KGlkcywgc3RhdGUpKTtcbiAgcmVhZG9ubHkgcmVtb3ZlQWxsID0gdGhpcy51cGRhdGVyKChzdGF0ZSkgPT4gdGhpcy5lbnRpdHlBZGFwdGVyLnJlbW92ZUFsbChzdGF0ZSkpO1xuICByZWFkb25seSBzZXRPbmUgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBlbnRpdHk6IEUpID0+IHRoaXMuZW50aXR5QWRhcHRlci5zZXRPbmUoZW50aXR5LCBzdGF0ZSkpO1xuICByZWFkb25seSBzZXRBbGwgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBlbnRpdGllczogRVtdKSA9PiB0aGlzLmVudGl0eUFkYXB0ZXIuc2V0QWxsKGVudGl0aWVzLCBzdGF0ZSkpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBlbnRpdHk6IFR5cGU8RT4sXG4gICAgcHJvdGVjdGVkIGVudGl0eUFkYXB0ZXI6IEVudGl0eUFkYXB0ZXI8RT4gPSBjcmVhdGVFbnRpdHlBZGFwdGVyPEU+KHtzZWxlY3RJZDogKGVudGl0eSkgPT4gZW50aXR5LmlkLCBzb3J0Q29tcGFyZXI6IGZhbHNlfSksXG4gICkge1xuICAgIHN1cGVyKGVudGl0eUFkYXB0ZXIuZ2V0SW5pdGlhbFN0YXRlKCkpO1xuICAgIHRoaXMuYWRhcHRlciA9IGluamVjdEVudGl0eVN0b3JlQWRhcHRlcihlbnRpdHkpO1xuICAgIHRoaXMuZ2V0RW50aXRpZXModGhpcy5yZWZyZXNoJCk7XG4gICAgdGhpcy5yZWZyZXNoKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0RW50aXRpZXMgPSB0aGlzLmVmZmVjdCgocmVmcmVzaCQ6IE9ic2VydmFibGU8dm9pZD4pID0+IHJlZnJlc2gkLnBpcGUoXG4gICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuYWRhcHRlcj8ubGlzdCgpID8/IG9mKFtdKSksXG4gICAgdGFwKChlbnRpdGllczogRVtdKSA9PiB0aGlzLnNldEFsbChlbnRpdGllcykpLFxuICApKTtcblxuICByZWZyZXNoKCkge1xuICAgIHRoaXMucmVmcmVzaCQubmV4dCgpO1xuICB9XG5cbiAgbWFwVG9PbmUodmFsdWVPck9iczogc3RyaW5nIHwgT2JzZXJ2YWJsZTxzdHJpbmc+KTogT2JzZXJ2YWJsZTxFPiB7XG4gICAgY29uc3Qgd3JhcCA9ICh2YWx1ZU9yT2JzOiBzdHJpbmcgfCBPYnNlcnZhYmxlPHN0cmluZz4pID0+IGlzT2JzZXJ2YWJsZSh2YWx1ZU9yT2JzKSA/IHZhbHVlT3JPYnMgOiBvZih2YWx1ZU9yT2JzKTtcbiAgICByZXR1cm4gd3JhcCh2YWx1ZU9yT2JzKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKGlkID0+IHRoaXMuc2VsZWN0KChzdGF0ZSkgPT4gdGhpcy5zZWxlY3RvcnMuc2VsZWN0RW50aXRpZXMoc3RhdGUpW2lkXSkpLFxuICAgICk7XG4gIH1cblxufVxuXG5leHBvcnQgY2xhc3MgRW50aXR5U3RvcmU8RSBleHRlbmRzIEVudGl0eT4gZXh0ZW5kcyBCYXNlRW50aXR5U3RvcmU8RT4ge1xuICBwcm90ZWN0ZWQgcHJveHlJZCA9IGluamVjdChQcm94eUlkU2VydmljZSwge30pO1xuICBwcm90ZWN0ZWQgY29tcG9zZXIgPSBpbmplY3QoVGFza0NvbXBvc2VyU2VydmljZSk7XG4gIHByb3RlY3RlZCB0YXNrU3ViamVjdCQgPSBuZXcgU3ViamVjdDxUYXNrPEU+PigpO1xuICBwcm90ZWN0ZWQgdGFzayQ6IE9ic2VydmFibGU8VGFzazxFPj4gPSB0aGlzLnRhc2tTdWJqZWN0JC5waXBlKFxuICAgIG1hcCh0YXNrID0+IHtcbiAgICAgIHN3aXRjaCh0YXNrLnR5cGUpIHtcbiAgICAgICAgY2FzZSAnY3JlYXRlJzogcmV0dXJuIG1lcmdlKHRhc2ssIHtwYXlsb2FkOiB7aWQ6IHRoaXMucHJveHlJZC5wcm94eUlkKHRhc2sucGF5bG9hZC5pZCl9fSk7XG4gICAgICAgIGRlZmF1bHQ6IHJldHVybiB0YXNrO1xuICAgICAgfVxuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpLFxuICApO1xuICBwcm90ZWN0ZWQgY29tcG9zZWRUYXNrcyQgPSB0aGlzLnRhc2skLnBpcGUoXG4gICAgYnVmZmVyVGltZSg1ICogMTAwMCksXG4gICAgZmlsdGVyKHRhc2tzID0+IHRhc2tzLmxlbmd0aCA+IDApLFxuICAgIG1hcCgodGFza3MpID0+IHRoaXMuY29tcG9zZXIuY29tcG9zZVRhc2tzKHRhc2tzKSksXG4gICk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGVudGl0eTogVHlwZTxFPixcbiAgICBwcm90ZWN0ZWQgZW50aXR5QWRhcHRlcjogRW50aXR5QWRhcHRlcjxFPiA9IGNyZWF0ZUVudGl0eUFkYXB0ZXI8RT4oe3NlbGVjdElkOiAoZW50aXR5KSA9PiBlbnRpdHkuaWQsIHNvcnRDb21wYXJlcjogZmFsc2V9KSxcbiAgKSB7XG4gICAgc3VwZXIoZW50aXR5LCBlbnRpdHlBZGFwdGVyKTtcbiAgICB0aGlzLnRhc2skLnN1YnNjcmliZSgodGFzazogVGFzazxFPikgPT4gdGhpcy5ydW5UYXNrKHRhc2spKTtcbiAgICB0aGlzLmNvbXBvc2VkVGFza3MkLnN1YnNjcmliZSh0YXNrcyA9PiB0aGlzLnJ1bkNvbXBvc2VkVGFza3ModGFza3MpKTtcbiAgfVxuXG4gIGRpc3BhdGNoKGFjdGlvbjogVGFzazxFPikge1xuICAgIHRoaXMudGFza1N1YmplY3QkLm5leHQoYWN0aW9uKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBydW5UYXNrKHRhc2s6IFRhc2s8RT4pOiBQcm9taXNlPGFueT4ge1xuICAgIHN3aXRjaCh0YXNrLnR5cGUpIHtcbiAgICAgIGNhc2UgJ2NyZWF0ZSc6IHJldHVybiB0aGlzLmFkZE9uZSh0YXNrLnBheWxvYWQpO1xuICAgICAgY2FzZSAndXBkYXRlJzogcmV0dXJuIHRoaXMudXBkYXRlT25lKHtpZDogdGFzay5wYXlsb2FkLmlkLCBjaGFuZ2VzOiB0YXNrLnBheWxvYWR9KTtcbiAgICAgIGNhc2UgJ2RlbGV0ZSc6IHJldHVybiB0aGlzLnJlbW92ZU9uZSh0YXNrLnBheWxvYWQuaWQpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBydW5Db21wb3NlZFRhc2tzKHRhc2tzOiBUYXNrPEU+W10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwodGFza3MubWFwKCh0YXNrKSA9PiB7XG4gICAgICBzd2l0Y2godGFzay50eXBlKSB7XG4gICAgICAgIGNhc2UgJ2NyZWF0ZSc6IHJldHVybiB0aGlzLmFkYXB0ZXIuY3JlYXRlKHRhc2sucGF5bG9hZClcbiAgICAgICAgICAudGhlbigoZW50aXR5KSA9PiB7XG4gICAgICAgICAgICB0aGlzLnByb3h5SWQudXBkYXRlKHRhc2sucGF5bG9hZC5pZCwgZW50aXR5LmlkKTtcbiAgICAgICAgICAgIGNvbnN0IF9lbnRpdHkgPSB0aGlzLnN0YXRlKCkuZW50aXRpZXNbdGFzay5wYXlsb2FkLmlkXTtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlT25lKHRhc2sucGF5bG9hZC5pZCk7XG4gICAgICAgICAgICB0aGlzLmFkZE9uZSh7Li4uX2VudGl0eSwgaWQ6IGVudGl0eS5pZH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICBjYXNlICd1cGRhdGUnOiByZXR1cm4gdGhpcy5hZGFwdGVyLnVwZGF0ZSh7XG4gICAgICAgICAgLi4udGFzay5wYXlsb2FkLFxuICAgICAgICAgIGlkOiB0aGlzLnByb3h5SWQucmVzb2x2ZSh0YXNrLnBheWxvYWQuaWQpLFxuICAgICAgICB9KTtcbiAgICAgICAgY2FzZSAnZGVsZXRlJzogcmV0dXJuIHRoaXMuYWRhcHRlci5kZWxldGUoe1xuICAgICAgICAgIC4uLnRhc2sucGF5bG9hZCxcbiAgICAgICAgICBpZDogdGhpcy5wcm94eUlkLnJlc29sdmUodGFzay5wYXlsb2FkLmlkKSxcbiAgICAgICAgfSBhcyBhbnkpO1xuICAgICAgfVxuICAgIH0pKVxuICAgIC50aGVuKCgpID0+IHRoaXMub25TeW5jU3VjY2VlZGVkKCkpXG4gICAgLmNhdGNoKCgpID0+IHRoaXMub25TeW5jRmFpbGVkKCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uU3luY0ZhaWxlZCgpIHsgfVxuICBwcm90ZWN0ZWQgb25TeW5jU3VjY2VlZGVkKCkgeyB9XG59XG4iXX0=
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21tb24vc3JjL2xpYi9zdG9yZXMvZW50aXRpZXMvZW50aXR5LXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQThCLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQy9FLE9BQU8sRUFBYyxhQUFhLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUcsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQWdCLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBc0Isd0JBQXdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV0RixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxHQUFNLEVBQUU7SUFDL0MsT0FBTyxvQkFBb0IsQ0FBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzVGLENBQUMsQ0FBQztBQUVGLE1B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Q0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztpQkFDMUMsQ0FBQyxDQUFDO2dCQUNILEtBQUssUUFBUSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztvQkFDeEMsR0FBRyxJQUFJLENBQUMsT0FBTztvQkFDZixFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7aUJBQ25DLENBQUMsQ0FBQztZQUNaLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQzthQUNGLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7YUFDbEMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFUyxZQUFZLEtBQUssQ0FBQztJQUNsQixlQUFlLEtBQUssQ0FBQztJQUUvQixNQUFNLENBQUMsT0FBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFtQztRQUN4QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBc0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQVU7UUFDYixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUeXBlIH0gZnJvbSAnQG54LWRkZC9jb21tb24vZG9tYWluL21vZGVscyc7XG5pbXBvcnQgeyBDb21wb25lbnRTdG9yZSB9IGZyb20gJ0BuZ3J4L2NvbXBvbmVudC1zdG9yZSc7XG5pbXBvcnQgeyBFbnRpdHlTdGF0ZSwgRW50aXR5QWRhcHRlciwgY3JlYXRlRW50aXR5QWRhcHRlciB9IGZyb20gJ0BuZ3J4L2VudGl0eSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0LCBpc09ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBidWZmZXJUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IG1lcmdlIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEVudGl0eSwgVGFzaywgVGFza0NvbXBvc2VyU2VydmljZSB9IGZyb20gJy4vdGFzay1jb21wb3Nlcic7XG5pbXBvcnQgeyBQcm94eUlkU2VydmljZSB9IGZyb20gJy4vcHJveHktaWQuc2VydmljZSc7XG5pbXBvcnQgeyBFbnRpdHlTdG9yZUFkYXB0ZXIsIGluamVjdEVudGl0eVN0b3JlQWRhcHRlciB9IGZyb20gJy4vZW50aXR5LXN0b3JlLWFkYXB0ZXInO1xuXG5leHBvcnQgY29uc3QgZGlzdGluY3RVbnRpbENoYW5nZWRBcnJheSA9IDxUPigpID0+IHtcbiAgcmV0dXJuIGRpc3RpbmN0VW50aWxDaGFuZ2VkPFQ+KChwcmUsIGN1cikgPT4gSlNPTi5zdHJpbmdpZnkocHJlKSA9PT0gSlNPTi5zdHJpbmdpZnkoY3VyKSk7XG59O1xuXG5leHBvcnQgY2xhc3MgQmFzZUVudGl0eVN0b3JlPEUgZXh0ZW5kcyBFbnRpdHk+IGV4dGVuZHMgQ29tcG9uZW50U3RvcmU8RW50aXR5U3RhdGU8RT4+IHtcbiAgcHJvdGVjdGVkIGFkYXB0ZXI6IEVudGl0eVN0b3JlQWRhcHRlcjxFPjtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVmcmVzaCQgPSBuZXcgUmVwbGF5U3ViamVjdDx2b2lkPigxKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlbGVjdG9ycyA9IHRoaXMuZW50aXR5QWRhcHRlci5nZXRTZWxlY3RvcnMoKTtcbiAgcmVhZG9ubHkgYWxsJCA9IHRoaXMuc2VsZWN0KHRoaXMuc2VsZWN0b3JzLnNlbGVjdEFsbCk7XG4gIHJlYWRvbmx5IGFsbCA9IHRvU2lnbmFsKHRoaXMuYWxsJCk7XG4gIHJlYWRvbmx5IHRvdGFsJCA9IHRoaXMuc2VsZWN0KHRoaXMuc2VsZWN0b3JzLnNlbGVjdFRvdGFsKTtcbiAgcmVhZG9ubHkgdG90YWwgPSB0b1NpZ25hbCh0aGlzLnRvdGFsJCk7XG5cbiAgLyoqIEBkZXByZWNhdGVkIHVzZSBCYXNlRW50aXR5U3RvcmUuYWxsJCBpbnN0ZWFkLiAqL1xuICByZWFkb25seSBlbnRpdGllcyQgPSB0aGlzLmFsbCRcbiAgLyoqIEBkZXByZWNhdGVkIHVzZSBCYXNlRW50aXR5U3RvcmUuYWxsIGluc3RlYWQuICovXG4gIHJlYWRvbmx5IGVudGl0aWVzID0gdGhpcy5hbGw7XG4gIC8qKiBAZGVwcmVjYXRlZCB1c2UgQmFzZUVudGl0eVN0b3JlLnRvdGFsJCBpbnN0ZWFkLiAqL1xuICByZWFkb25seSBzaXplJCA9IHRoaXMudG90YWwkO1xuXG4gIHJlYWRvbmx5IGFkZE9uZSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGVudGl0eTogRSkgPT4gdGhpcy5lbnRpdHlBZGFwdGVyLmFkZE9uZShlbnRpdHksIHN0YXRlKSk7XG4gIHJlYWRvbmx5IGFkZE1hbnkgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBlbnRpdGllczogRVtdKSA9PiB0aGlzLmVudGl0eUFkYXB0ZXIuYWRkTWFueShlbnRpdGllcywgc3RhdGUpKTtcbiAgcmVhZG9ubHkgdXBkYXRlT25lID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgdXBkYXRlOiB7aWQ6IHN0cmluZywgY2hhbmdlczogUGFydGlhbDxFPn0pID0+IHRoaXMuZW50aXR5QWRhcHRlci51cGRhdGVPbmUodXBkYXRlLCBzdGF0ZSkpO1xuICByZWFkb25seSB1cGRhdGVNYW55ID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgdXBkYXRlczoge2lkOiBzdHJpbmcsIGNoYW5nZXM6IFBhcnRpYWw8RT59W10pID0+IHRoaXMuZW50aXR5QWRhcHRlci51cGRhdGVNYW55KHVwZGF0ZXMsIHN0YXRlKSk7XG4gIHJlYWRvbmx5IHVwc2VydE9uZSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGVudGl0eTogRSkgPT4gdGhpcy5lbnRpdHlBZGFwdGVyLnVwc2VydE9uZShlbnRpdHksIHN0YXRlKSk7XG4gIHJlYWRvbmx5IHVwc2VydE1hbnkgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBlbnRpdGllczogRVtdKSA9PiB0aGlzLmVudGl0eUFkYXB0ZXIudXBzZXJ0TWFueShlbnRpdGllcywgc3RhdGUpKTtcbiAgcmVhZG9ubHkgcmVtb3ZlT25lID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgaWQ6IHN0cmluZykgPT4gdGhpcy5lbnRpdHlBZGFwdGVyLnJlbW92ZU9uZShpZCwgc3RhdGUpKTtcbiAgcmVhZG9ubHkgcmVtb3ZlTWFueSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGlkczogc3RyaW5nW10pID0+IHRoaXMuZW50aXR5QWRhcHRlci5yZW1vdmVNYW55KGlkcywgc3RhdGUpKTtcbiAgcmVhZG9ubHkgcmVtb3ZlQWxsID0gdGhpcy51cGRhdGVyKChzdGF0ZSkgPT4gdGhpcy5lbnRpdHlBZGFwdGVyLnJlbW92ZUFsbChzdGF0ZSkpO1xuICByZWFkb25seSBzZXRPbmUgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBlbnRpdHk6IEUpID0+IHRoaXMuZW50aXR5QWRhcHRlci5zZXRPbmUoZW50aXR5LCBzdGF0ZSkpO1xuICByZWFkb25seSBzZXRBbGwgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBlbnRpdGllczogRVtdKSA9PiB0aGlzLmVudGl0eUFkYXB0ZXIuc2V0QWxsKGVudGl0aWVzLCBzdGF0ZSkpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBlbnRpdHk6IFR5cGU8RT4sXG4gICAgcHJvdGVjdGVkIGVudGl0eUFkYXB0ZXI6IEVudGl0eUFkYXB0ZXI8RT4gPSBjcmVhdGVFbnRpdHlBZGFwdGVyPEU+KHtzZWxlY3RJZDogKGVudGl0eSkgPT4gZW50aXR5LmlkLCBzb3J0Q29tcGFyZXI6IGZhbHNlfSksXG4gICkge1xuICAgIHN1cGVyKGVudGl0eUFkYXB0ZXIuZ2V0SW5pdGlhbFN0YXRlKCkpO1xuICAgIHRoaXMuYWRhcHRlciA9IGluamVjdEVudGl0eVN0b3JlQWRhcHRlcihlbnRpdHkpO1xuICAgIHRoaXMuZ2V0RW50aXRpZXModGhpcy5yZWZyZXNoJCk7XG4gICAgdGhpcy5yZWZyZXNoKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0RW50aXRpZXMgPSB0aGlzLmVmZmVjdCgocmVmcmVzaCQ6IE9ic2VydmFibGU8dm9pZD4pID0+IHJlZnJlc2gkLnBpcGUoXG4gICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuYWRhcHRlcj8ubGlzdCgpID8/IG9mKFtdKSksXG4gICAgdGFwKChlbnRpdGllczogRVtdKSA9PiB0aGlzLnNldEFsbChlbnRpdGllcykpLFxuICApKTtcblxuICByZWZyZXNoKCkge1xuICAgIHRoaXMucmVmcmVzaCQubmV4dCgpO1xuICB9XG5cbiAgbWFwVG9PbmUodmFsdWVPck9iczogc3RyaW5nIHwgT2JzZXJ2YWJsZTxzdHJpbmc+KTogT2JzZXJ2YWJsZTxFPiB7XG4gICAgY29uc3Qgd3JhcCA9ICh2YWx1ZU9yT2JzOiBzdHJpbmcgfCBPYnNlcnZhYmxlPHN0cmluZz4pID0+IGlzT2JzZXJ2YWJsZSh2YWx1ZU9yT2JzKSA/IHZhbHVlT3JPYnMgOiBvZih2YWx1ZU9yT2JzKTtcbiAgICByZXR1cm4gd3JhcCh2YWx1ZU9yT2JzKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKGlkID0+IHRoaXMuc2VsZWN0KChzdGF0ZSkgPT4gdGhpcy5zZWxlY3RvcnMuc2VsZWN0RW50aXRpZXMoc3RhdGUpW2lkXSkpLFxuICAgICk7XG4gIH1cblxufVxuXG5leHBvcnQgY2xhc3MgRW50aXR5U3RvcmU8RSBleHRlbmRzIEVudGl0eT4gZXh0ZW5kcyBCYXNlRW50aXR5U3RvcmU8RT4ge1xuICBwcm90ZWN0ZWQgcHJveHlJZCA9IGluamVjdChQcm94eUlkU2VydmljZSwge30pO1xuICBwcm90ZWN0ZWQgY29tcG9zZXIgPSBpbmplY3QoVGFza0NvbXBvc2VyU2VydmljZSk7XG4gIHByb3RlY3RlZCB0YXNrU3ViamVjdCQgPSBuZXcgU3ViamVjdDxUYXNrPEU+PigpO1xuICBwcm90ZWN0ZWQgdGFzayQ6IE9ic2VydmFibGU8VGFzazxFPj4gPSB0aGlzLnRhc2tTdWJqZWN0JC5waXBlKFxuICAgIG1hcCh0YXNrID0+IHtcbiAgICAgIHN3aXRjaCh0YXNrLnR5cGUpIHtcbiAgICAgICAgY2FzZSAnY3JlYXRlJzogcmV0dXJuIG1lcmdlKHRhc2ssIHtwYXlsb2FkOiB7aWQ6IHRoaXMucHJveHlJZC5wcm94eUlkKHRhc2sucGF5bG9hZC5pZCl9fSk7XG4gICAgICAgIGRlZmF1bHQ6IHJldHVybiB0YXNrO1xuICAgICAgfVxuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpLFxuICApO1xuICBwcm90ZWN0ZWQgY29tcG9zZWRUYXNrcyQgPSB0aGlzLnRhc2skLnBpcGUoXG4gICAgYnVmZmVyVGltZSg1ICogMTAwMCksXG4gICAgZmlsdGVyKHRhc2tzID0+IHRhc2tzLmxlbmd0aCA+IDApLFxuICAgIG1hcCgodGFza3MpID0+IHRoaXMuY29tcG9zZXIuY29tcG9zZVRhc2tzKHRhc2tzKSksXG4gICk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGVudGl0eTogVHlwZTxFPixcbiAgICBwcm90ZWN0ZWQgZW50aXR5QWRhcHRlcjogRW50aXR5QWRhcHRlcjxFPiA9IGNyZWF0ZUVudGl0eUFkYXB0ZXI8RT4oe3NlbGVjdElkOiAoZW50aXR5KSA9PiBlbnRpdHkuaWQsIHNvcnRDb21wYXJlcjogZmFsc2V9KSxcbiAgKSB7XG4gICAgc3VwZXIoZW50aXR5LCBlbnRpdHlBZGFwdGVyKTtcbiAgICB0aGlzLnRhc2skLnN1YnNjcmliZSgodGFzazogVGFzazxFPikgPT4gdGhpcy5ydW5UYXNrKHRhc2spKTtcbiAgICB0aGlzLmNvbXBvc2VkVGFza3MkLnN1YnNjcmliZSh0YXNrcyA9PiB0aGlzLnJ1bkNvbXBvc2VkVGFza3ModGFza3MpKTtcbiAgfVxuXG4gIGRpc3BhdGNoKGFjdGlvbjogVGFzazxFPikge1xuICAgIHRoaXMudGFza1N1YmplY3QkLm5leHQoYWN0aW9uKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBydW5UYXNrKHRhc2s6IFRhc2s8RT4pOiBQcm9taXNlPGFueT4ge1xuICAgIHN3aXRjaCh0YXNrLnR5cGUpIHtcbiAgICAgIGNhc2UgJ2NyZWF0ZSc6IHJldHVybiB0aGlzLmFkZE9uZSh0YXNrLnBheWxvYWQpO1xuICAgICAgY2FzZSAndXBkYXRlJzogcmV0dXJuIHRoaXMudXBkYXRlT25lKHtpZDogdGFzay5wYXlsb2FkLmlkLCBjaGFuZ2VzOiB0YXNrLnBheWxvYWR9KTtcbiAgICAgIGNhc2UgJ2RlbGV0ZSc6IHJldHVybiB0aGlzLnJlbW92ZU9uZSh0YXNrLnBheWxvYWQuaWQpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBydW5Db21wb3NlZFRhc2tzKHRhc2tzOiBUYXNrPEU+W10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwodGFza3MubWFwKCh0YXNrKSA9PiB7XG4gICAgICBzd2l0Y2godGFzay50eXBlKSB7XG4gICAgICAgIGNhc2UgJ2NyZWF0ZSc6IHJldHVybiB0aGlzLmFkYXB0ZXIuY3JlYXRlKHRhc2sucGF5bG9hZClcbiAgICAgICAgICAudGhlbigoZW50aXR5KSA9PiB7XG4gICAgICAgICAgICB0aGlzLnByb3h5SWQudXBkYXRlKHRhc2sucGF5bG9hZC5pZCwgZW50aXR5LmlkKTtcbiAgICAgICAgICAgIGNvbnN0IF9lbnRpdHkgPSB0aGlzLnN0YXRlKCkuZW50aXRpZXNbdGFzay5wYXlsb2FkLmlkXTtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlT25lKHRhc2sucGF5bG9hZC5pZCk7XG4gICAgICAgICAgICB0aGlzLmFkZE9uZSh7Li4uX2VudGl0eSwgaWQ6IGVudGl0eS5pZH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICBjYXNlICd1cGRhdGUnOiByZXR1cm4gdGhpcy5hZGFwdGVyLnVwZGF0ZSh7XG4gICAgICAgICAgLi4udGFzay5wYXlsb2FkLFxuICAgICAgICAgIGlkOiB0aGlzLnByb3h5SWQucmVzb2x2ZSh0YXNrLnBheWxvYWQuaWQpLFxuICAgICAgICB9KTtcbiAgICAgICAgY2FzZSAnZGVsZXRlJzogcmV0dXJuIHRoaXMuYWRhcHRlci5kZWxldGUoe1xuICAgICAgICAgIC4uLnRhc2sucGF5bG9hZCxcbiAgICAgICAgICBpZDogdGhpcy5wcm94eUlkLnJlc29sdmUodGFzay5wYXlsb2FkLmlkKSxcbiAgICAgICAgfSBhcyBhbnkpO1xuICAgICAgfVxuICAgIH0pKVxuICAgIC50aGVuKCgpID0+IHRoaXMub25TeW5jU3VjY2VlZGVkKCkpXG4gICAgLmNhdGNoKCgpID0+IHRoaXMub25TeW5jRmFpbGVkKCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uU3luY0ZhaWxlZCgpIHsgfVxuICBwcm90ZWN0ZWQgb25TeW5jU3VjY2VlZGVkKCkgeyB9XG5cbiAgY3JlYXRlKHBheWxvYWQ6IEUpOiBQcm9taXNlPEU+IHtcbiAgICByZXR1cm4gdGhpcy5hZGFwdGVyLmNyZWF0ZShwYXlsb2FkKTtcbiAgfVxuXG4gIHVwZGF0ZShwYXlsb2FkOiBQaWNrPEUsICdpZCc+ICYgUGFydGlhbDxFPik6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmFkYXB0ZXIudXBkYXRlKHBheWxvYWQpO1xuICB9XG5cbiAgZGVsZXRlKHBheWxvYWQ6IFBpY2s8RSwgJ2lkJz4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5hZGFwdGVyLmRlbGV0ZShwYXlsb2FkKTtcbiAgfVxuXG4gIHNhdmUocGF5bG9hZDogRSk6IFByb21pc2U8RT4ge1xuICAgIHJldHVybiB0aGlzLmFkYXB0ZXIuc2F2ZShwYXlsb2FkKTtcbiAgfVxufVxuIl19
|
|
@@ -25,9 +25,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
|
|
|
25
25
|
type: Injectable
|
|
26
26
|
}] });
|
|
27
27
|
const authorizationInterceptor = (req, next) => {
|
|
28
|
-
const getAuth = inject(PROVIDE_AUTHORIZATION);
|
|
29
28
|
if (!req.url.startsWith('/api'))
|
|
30
29
|
return next(req);
|
|
30
|
+
const getAuth = inject(PROVIDE_AUTHORIZATION, { optional: true }) ?? null;
|
|
31
31
|
return from(getAuth()).pipe(take(1), mergeMap(token => next(token ? req.clone({ setHeaders: { Authorization: token } }) : req)));
|
|
32
32
|
};
|
|
33
33
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-atomic-common-interceptors-authorization.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/interceptors/authorization/authorization.interceptor.ts","../../../../../packages/@ng-atomic/common/src/lib/interceptors/authorization/ng-atomic-common-interceptors-authorization.ts"],"sourcesContent":["import { Injectable, InjectionToken, inject } from '@angular/core';\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor, HttpInterceptorFn } from '@angular/common/http';\nimport { from, Observable } from 'rxjs';\nimport { mergeMap, take } from 'rxjs/operators';\n\nexport type ProvideAuthorization = () => Promise<string | null> | Observable<string | null>;\nexport const PROVIDE_AUTHORIZATION = new InjectionToken<ProvideAuthorization>('PROVIDE_AUTHORIZATION');\n\n@Injectable()\nexport class AuthorizationInterceptor implements HttpInterceptor {\n\n private getAuth = inject(PROVIDE_AUTHORIZATION);\n\n intercept(req: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\n if (!req.url.startsWith('/api')) return next.handle(req);\n\n return from(this.getAuth())\n .pipe(take(1))\n .pipe(mergeMap(idToken => next.handle(idToken ? this.getRequestWithToken(req, idToken) : req)));\n }\n\n private getRequestWithToken(req: HttpRequest<unknown>, token: string) {\n return req.clone({ setHeaders: {Authorization: token} });\n }\n}\n\nexport const authorizationInterceptor: HttpInterceptorFn = (req, next) => {\n
|
|
1
|
+
{"version":3,"file":"ng-atomic-common-interceptors-authorization.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/interceptors/authorization/authorization.interceptor.ts","../../../../../packages/@ng-atomic/common/src/lib/interceptors/authorization/ng-atomic-common-interceptors-authorization.ts"],"sourcesContent":["import { Injectable, InjectionToken, inject } from '@angular/core';\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor, HttpInterceptorFn } from '@angular/common/http';\nimport { from, Observable } from 'rxjs';\nimport { mergeMap, take } from 'rxjs/operators';\n\nexport type ProvideAuthorization = () => Promise<string | null> | Observable<string | null>;\nexport const PROVIDE_AUTHORIZATION = new InjectionToken<ProvideAuthorization>('PROVIDE_AUTHORIZATION');\n\n@Injectable()\nexport class AuthorizationInterceptor implements HttpInterceptor {\n\n private getAuth = inject(PROVIDE_AUTHORIZATION);\n\n intercept(req: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\n if (!req.url.startsWith('/api')) return next.handle(req);\n\n return from(this.getAuth())\n .pipe(take(1))\n .pipe(mergeMap(idToken => next.handle(idToken ? this.getRequestWithToken(req, idToken) : req)));\n }\n\n private getRequestWithToken(req: HttpRequest<unknown>, token: string) {\n return req.clone({ setHeaders: {Authorization: token} });\n }\n}\n\nexport const authorizationInterceptor: HttpInterceptorFn = (req, next) => {\n if (!req.url.startsWith('/api')) return next(req);\n const getAuth = inject(PROVIDE_AUTHORIZATION, { optional: true }) ?? null;\n\n return from(getAuth()).pipe(\n take(1),\n mergeMap(token => next(token ? req.clone({ setHeaders: {Authorization: token} }) : req)),\n );\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAMa,qBAAqB,GAAG,IAAI,cAAc,CAAuB,uBAAuB,EAAE;MAG1F,wBAAwB,CAAA;AADrC,IAAA,WAAA,GAAA;AAGU,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAajD,KAAA;IAXC,SAAS,CAAC,GAAyB,EAAE,IAAiB,EAAA;QACpD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;AAAE,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAEzD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;AACxB,aAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACb,aAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;KACnG;IAEO,mBAAmB,CAAC,GAAyB,EAAE,KAAa,EAAA;AAClE,QAAA,OAAO,GAAG,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,EAAC,aAAa,EAAE,KAAK,EAAC,EAAE,CAAC,CAAC;KAC1D;8GAdU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAAxB,wBAAwB,EAAA,CAAA,CAAA,EAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBADpC,UAAU;;MAkBE,wBAAwB,GAAsB,CAAC,GAAG,EAAE,IAAI,KAAI;IACvE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;AAAE,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,IAAA,MAAM,OAAO,GAAG,MAAM,CAAC,qBAAqB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;IAE1E,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CACzB,IAAI,CAAC,CAAC,CAAC,EACP,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,EAAC,aAAa,EAAE,KAAK,EAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CACzF,CAAC;AACJ;;AClCA;;AAEG;;;;"}
|
|
@@ -10,6 +10,9 @@ function provideDataAccessor(useFactory = () => defaultDataAccessor) {
|
|
|
10
10
|
function injectDataAccessor() {
|
|
11
11
|
return inject(DATA_ACCESSOR, { optional: true }) ?? defaultDataAccessor;
|
|
12
12
|
}
|
|
13
|
+
function injectParentDataAccessor() {
|
|
14
|
+
return inject(DATA_ACCESSOR, { skipSelf: true, optional: true }) ?? defaultDataAccessor;
|
|
15
|
+
}
|
|
13
16
|
class DataAccessorPipe {
|
|
14
17
|
constructor() {
|
|
15
18
|
this.dataAccessor = injectDataAccessor();
|
|
@@ -33,5 +36,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
|
|
|
33
36
|
* Generated bundle index. Do not edit.
|
|
34
37
|
*/
|
|
35
38
|
|
|
36
|
-
export { DATA_ACCESSOR, DataAccessorPipe, defaultDataAccessor, injectDataAccessor, provideDataAccessor };
|
|
39
|
+
export { DATA_ACCESSOR, DataAccessorPipe, defaultDataAccessor, injectDataAccessor, injectParentDataAccessor, provideDataAccessor };
|
|
37
40
|
//# sourceMappingURL=ng-atomic-common-pipes-data-accessor.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-atomic-common-pipes-data-accessor.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/pipes/data-accessor/data-accessor.pipe.ts","../../../../../packages/@ng-atomic/common/src/lib/pipes/data-accessor/ng-atomic-common-pipes-data-accessor.ts"],"sourcesContent":["import { InjectionToken, Pipe, inject, PipeTransform } from \"@angular/core\";\nimport { get } from 'lodash-es';\n\nexport type DataAccessor<T> = (obj: T, key: string, index?: number) => any;\nexport const DATA_ACCESSOR = new InjectionToken<DataAccessor<any>>('DATA_ACCESSOR');\nexport const defaultDataAccessor: DataAccessor<any> = (obj, key) => get(obj, key) ?? '';\nexport function provideDataAccessor<T>(useFactory: () => DataAccessor<T> = () => defaultDataAccessor) {\n return { provide: DATA_ACCESSOR, useFactory };\n}\n\nexport function injectDataAccessor<T>(): DataAccessor<T> {\n return inject(DATA_ACCESSOR, {optional: true}) ?? defaultDataAccessor;\n}\n\n@Pipe({\n name: 'dataAccessor',\n pure: true,\n standalone: true,\n})\nexport class DataAccessorPipe<T> implements PipeTransform {\n protected dataAccessor = injectDataAccessor();\n\n transform(data: T, key: string, index?: number): any {\n return this.dataAccessor(data, key, index);\n }\n}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAIa,aAAa,GAAG,IAAI,cAAc,CAAoB,eAAe,EAAE;AACvE,MAAA,mBAAmB,GAAsB,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG;SACxE,mBAAmB,CAAI,aAAoC,MAAM,mBAAmB,EAAA;AAClG,IAAA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AAChD,CAAC;SAEe,kBAAkB,GAAA;AAChC,IAAA,OAAO,MAAM,CAAC,aAAa,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,IAAI,mBAAmB,CAAC;AACxE,CAAC;MAOY,gBAAgB,CAAA;AAL7B,IAAA,WAAA,GAAA;QAMY,IAAY,CAAA,YAAA,GAAG,kBAAkB,EAAE,CAAC;AAK/C,KAAA;AAHC,IAAA,SAAS,CAAC,IAAO,EAAE,GAAW,EAAE,KAAc,EAAA;QAC5C,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;KAC5C;8GALU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,CAAA,EAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,cAAc;AACpB,oBAAA,IAAI,EAAE,IAAI;AACV,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;
|
|
1
|
+
{"version":3,"file":"ng-atomic-common-pipes-data-accessor.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/pipes/data-accessor/data-accessor.pipe.ts","../../../../../packages/@ng-atomic/common/src/lib/pipes/data-accessor/ng-atomic-common-pipes-data-accessor.ts"],"sourcesContent":["import { InjectionToken, Pipe, inject, PipeTransform } from \"@angular/core\";\nimport { get } from 'lodash-es';\n\nexport type DataAccessor<T> = (obj: T, key: string, index?: number) => any;\nexport const DATA_ACCESSOR = new InjectionToken<DataAccessor<any>>('DATA_ACCESSOR');\nexport const defaultDataAccessor: DataAccessor<any> = (obj, key) => get(obj, key) ?? '';\nexport function provideDataAccessor<T>(useFactory: () => DataAccessor<T> = () => defaultDataAccessor) {\n return { provide: DATA_ACCESSOR, useFactory };\n}\n\nexport function injectDataAccessor<T>(): DataAccessor<T> {\n return inject(DATA_ACCESSOR, {optional: true}) ?? defaultDataAccessor;\n}\n\nexport function injectParentDataAccessor<T>(): DataAccessor<T> {\n return inject(DATA_ACCESSOR, {skipSelf: true, optional: true}) ?? defaultDataAccessor;\n}\n\n@Pipe({\n name: 'dataAccessor',\n pure: true,\n standalone: true,\n})\nexport class DataAccessorPipe<T> implements PipeTransform {\n protected dataAccessor = injectDataAccessor();\n\n transform(data: T, key: string, index?: number): any {\n return this.dataAccessor(data, key, index);\n }\n}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAIa,aAAa,GAAG,IAAI,cAAc,CAAoB,eAAe,EAAE;AACvE,MAAA,mBAAmB,GAAsB,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG;SACxE,mBAAmB,CAAI,aAAoC,MAAM,mBAAmB,EAAA;AAClG,IAAA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AAChD,CAAC;SAEe,kBAAkB,GAAA;AAChC,IAAA,OAAO,MAAM,CAAC,aAAa,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,IAAI,mBAAmB,CAAC;AACxE,CAAC;SAEe,wBAAwB,GAAA;AACtC,IAAA,OAAO,MAAM,CAAC,aAAa,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,IAAI,mBAAmB,CAAC;AACxF,CAAC;MAOY,gBAAgB,CAAA;AAL7B,IAAA,WAAA,GAAA;QAMY,IAAY,CAAA,YAAA,GAAG,kBAAkB,EAAE,CAAC;AAK/C,KAAA;AAHC,IAAA,SAAS,CAAC,IAAO,EAAE,GAAW,EAAE,KAAc,EAAA;QAC5C,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;KAC5C;8GALU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,CAAA,EAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,cAAc;AACpB,oBAAA,IAAI,EAAE,IAAI;AACV,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;ACtBD;;AAEG;;;;"}
|
|
@@ -52,6 +52,7 @@ function targetConstructorToSchema(target, options = {}) {
|
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
function buildFormGroupByJsonSchema(schema, { fb = inject(FormBuilder).nonNullable, value = {}, } = {}) {
|
|
55
|
+
console.debug('[buildFormGroupByJsonSchema] schema:', schema);
|
|
55
56
|
if (!schema || !schema?.properties) {
|
|
56
57
|
return fb.group({});
|
|
57
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-atomic-common-services-form-json-schema.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/form/json-schema/json-schema.ts","../../../../../packages/@ng-atomic/common/src/lib/services/form/json-schema/json-schema.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/form/json-schema/ng-atomic-common-services-form-json-schema.ts"],"sourcesContent":["import { ValidationTypes } from \"class-validator\"\nimport { targetConstructorToSchema as _targetConstructorToSchema } from \"class-validator-jsonschema\"\nimport { IOptions } from \"class-validator-jsonschema/build/options\";\nimport { JSONSchema7 } from 'json-schema';\n// TODO(@NozomuMiyamoto): fix\n// @ts-ignore\n// const { defaultMetadataStorage } = require('class-transformer/cjs/storage');\nimport { defaultMetadataStorage } from 'class-transformer/esm5/storage';\n\nfunction getPropType(target: object, property: string) {\n return Reflect.getMetadata('design:type', target, property)\n}\n\nfunction targetToSchema(\n type: any,\n options: any\n): any {\n if (typeof type === 'function') {\n if (\n type.prototype === String.prototype ||\n type.prototype === Symbol.prototype\n ) {\n return { type: 'string' }\n } else if (type.prototype === Number.prototype) {\n return { type: 'number' }\n } else if (type.prototype === Boolean.prototype) {\n return { type: 'boolean' }\n }\n\n return targetConstructorToSchema(type, options)\n }\n}\n\nconst additionalConverters= {\n [ValidationTypes.NESTED_VALIDATION]: (meta: any, options: any) => {\n if (typeof meta.target === 'function') {\n const typeMeta = options.classTransformerMetadataStorage\n ? options.classTransformerMetadataStorage.findTypeMetadata(\n meta.target,\n meta.propertyName\n )\n : null\n const childType = typeMeta\n ? typeMeta.typeFunction()\n : getPropType(meta.target.prototype, meta.propertyName)\n return targetToSchema(childType, options)\n }\n },\n isDayjs: (meta: any): JSONSchema7 => {\n return {\n type: 'string',\n format: 'date-time', // JSON Schemaで日付型を指定\n };\n },\n};\n\nexport function targetConstructorToSchema(target: Function, options: Partial<IOptions> = {}) {\n return _targetConstructorToSchema(target, {\n ...options,\n additionalConverters,\n classTransformerMetadataStorage: defaultMetadataStorage,\n });\n}\n","import { Injectable, inject } from \"@angular/core\";\nimport { FormBuilder, FormGroup, NonNullableFormBuilder, Validators } from \"@angular/forms\";\nimport { JsonSchema } from \"json-schema-library\";\nimport { targetConstructorToSchema } from './json-schema';\nimport { merge } from \"lodash-es\";\n\nexport function buildFormGroupByJsonSchema(schema: JsonSchema, {\n fb = inject(FormBuilder).nonNullable,\n value = {},\n}: {\n fb?: FormBuilder | NonNullableFormBuilder,\n value?: object,\n} = {}): FormGroup {\n if (!schema || !schema?.properties) {\n return fb.group({});\n }\n const group: any = {};\n \n for (const key in schema.properties) {\n const property = schema.properties[key];\n const validators = [];\n\n if (schema.required && schema.required.includes(key)) {\n validators.push(Validators.required);\n }\n group[key] = buildFormByJsonSchemaProperty(property, {fb, value: value?.[key], validators});\n }\n return fb.group(group);\n}\n\nexport function buildFormArrayByJsonSchema(schema: JsonSchema, {\n fb = inject(FormBuilder).nonNullable,\n value = [],\n}: {\n fb?: FormBuilder | NonNullableFormBuilder,\n value?: any[],\n} = {}): any {\n if (!schema || !schema.items) {\n return fb.array([]);\n }\n console.debug('[buildFormArrayByJsonSchema] schema:', schema);\n const array = fb.array([\n buildFormGroupByJsonSchema(schema.items, {fb}),\n ])\n return array;\n}\n\nexport function buildFormByJsonSchemaProperty(property: JsonSchema, {\n fb = inject(FormBuilder).nonNullable,\n value = null,\n validators = [],\n}: {\n fb?: FormBuilder | NonNullableFormBuilder,\n value?: object | object[],\n validators?: any[],\n} = {}): any {\n if (property.type === 'string') {\n if (property.format === 'date-time') {\n return fb.control(value ?? property.default ?? null, validators);\n } else if (property.format === 'binary') {\n return fb.control(value ?? property.default ?? null, validators);\n } else {\n return fb.control(value ?? property.default ?? '', validators);\n }\n } else if (property.type === 'integer') {\n return fb.control(value ?? property.default ?? 0, validators);\n } else if (property.type === 'number') {\n return fb.control(value ?? property.default ?? 0, validators);\n } else if (property.type === 'object') {\n return buildFormGroupByJsonSchema(property, {fb, value: (value || {}) as object});\n }\n else if (property.type === 'array') {\n return buildFormArrayByJsonSchema(property, {fb, value: (value || []) as any[]});\n }\n}\n\nexport function buildFormFieldMapByJsonSchema(\n schema: JsonSchema,\n options: {\n merge?: { [key: string]: any },\n } = {},\n): any {\n if (!schema || !schema.properties) {\n return {\n id: { type: 'hidden' },\n };\n }\n const fieldMap: any = {};\n \n for (const key in schema.properties) {\n const property = schema.properties[key];\n if (property.type === 'string') {\n if (property.enum) {\n fieldMap[key] = { type: 'select', options: property.enum.map((v: string) => ({ value: v, name: v })) };\n } else if (property.format === 'date-time') {\n fieldMap[key] = { type: 'date' };\n } else if (property.format === 'binary') {\n fieldMap[key] = { type: 'file' };\n } else {\n fieldMap[key] = { type: 'text' };\n }\n } else if (property.type === 'object') {\n const childFieldMap = buildFormFieldMapByJsonSchema(property, options);\n for (const childKey in childFieldMap) {\n fieldMap[`${key}.${childKey}`] = childFieldMap[childKey];\n }\n } else if (property.type === 'array') {\n const childFieldMap = buildFormFieldMapByJsonSchema(property.items, options);\n for (const childKey in childFieldMap) {\n // TODO: 正規表現でパスマッチを判定できるようにする。\n fieldMap[`${key}.\\\\d+.${childKey}`] = childFieldMap[childKey];\n }\n } else {\n fieldMap[key] = { type: property.type };\n }\n // const type = ? 'date' : property.type;\n }\n\n console.debug('[buildFormFieldMapByJsonSchema] fieldMap:', fieldMap);\n\n return merge(fieldMap, options.merge);\n}\n\nexport function buildFormByJsonSchema(schema: JsonSchema, {\n fb = inject(FormBuilder).nonNullable,\n value = {},\n fieldMap = {},\n}: {\n fb?: FormBuilder | NonNullableFormBuilder,\n value?: object,\n fieldMap?: object,\n} = {}): any {\n return {\n form: buildFormGroupByJsonSchema(schema, {fb, value}),\n fieldMap: buildFormFieldMapByJsonSchema(schema, {merge: fieldMap}),\n };\n}\n\nexport function buildFormGroup(klass: new() => any, {\n fb = inject(FormBuilder).nonNullable,\n value,\n}: {\n fb?: FormBuilder | NonNullableFormBuilder,\n value?: object,\n}): FormGroup {\n const schema = targetConstructorToSchema(klass);\n return buildFormGroupByJsonSchema(schema, {fb, value});\n}\n\n\nexport function buildFormFieldMap(klass: new() => any, options: {\n merge?: { [key: string]: any },\n}): any {\n const schema = targetConstructorToSchema(klass);\n const map = buildFormFieldMapByJsonSchema(schema, options);\n return merge(map, options.merge);\n}\n\nexport function buildForm(klass: new() => any, {\n fb = inject(FormBuilder).nonNullable,\n value = {},\n fieldMap = {},\n}: {\n fb?: FormBuilder | NonNullableFormBuilder,\n value?: object,\n fieldMap?: object,\n} = {}): any {\n const schema = targetConstructorToSchema(klass);\n return {\n form: buildFormGroupByJsonSchema(schema, {fb, value}),\n fieldMap: buildFormFieldMapByJsonSchema(schema, {merge: fieldMap}),\n };\n}\n\n\n@Injectable({ providedIn: 'root' })\nexport class JsonSchemaFormService {\n private fb = inject(FormBuilder).nonNullable;\n\n build(schema: JsonSchema, {\n fb = this.fb,\n value = {},\n }: {\n fb?: FormBuilder | NonNullableFormBuilder,\n value?: object,\n } = {}): FormGroup {\n return buildFormGroupByJsonSchema(schema, {fb, value});\n }\n\n buildFieldMap(\n schema: JsonSchema,\n options: {\n merge?: { [key: string]: any },\n } = {},\n ): any {\n return buildFormFieldMapByJsonSchema(schema, options);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["_targetConstructorToSchema"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-atomic-common-services-form-json-schema.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/services/form/json-schema/json-schema.ts","../../../../../packages/@ng-atomic/common/src/lib/services/form/json-schema/json-schema.service.ts","../../../../../packages/@ng-atomic/common/src/lib/services/form/json-schema/ng-atomic-common-services-form-json-schema.ts"],"sourcesContent":["import { ValidationTypes } from \"class-validator\"\nimport { targetConstructorToSchema as _targetConstructorToSchema } from \"class-validator-jsonschema\"\nimport { IOptions } from \"class-validator-jsonschema/build/options\";\nimport { JSONSchema7 } from 'json-schema';\n// TODO(@NozomuMiyamoto): fix\n// @ts-ignore\n// const { defaultMetadataStorage } = require('class-transformer/cjs/storage');\nimport { defaultMetadataStorage } from 'class-transformer/esm5/storage';\n\nfunction getPropType(target: object, property: string) {\n return Reflect.getMetadata('design:type', target, property)\n}\n\nfunction targetToSchema(\n type: any,\n options: any\n): any {\n if (typeof type === 'function') {\n if (\n type.prototype === String.prototype ||\n type.prototype === Symbol.prototype\n ) {\n return { type: 'string' }\n } else if (type.prototype === Number.prototype) {\n return { type: 'number' }\n } else if (type.prototype === Boolean.prototype) {\n return { type: 'boolean' }\n }\n\n return targetConstructorToSchema(type, options)\n }\n}\n\nconst additionalConverters= {\n [ValidationTypes.NESTED_VALIDATION]: (meta: any, options: any) => {\n if (typeof meta.target === 'function') {\n const typeMeta = options.classTransformerMetadataStorage\n ? options.classTransformerMetadataStorage.findTypeMetadata(\n meta.target,\n meta.propertyName\n )\n : null\n const childType = typeMeta\n ? typeMeta.typeFunction()\n : getPropType(meta.target.prototype, meta.propertyName)\n return targetToSchema(childType, options)\n }\n },\n isDayjs: (meta: any): JSONSchema7 => {\n return {\n type: 'string',\n format: 'date-time', // JSON Schemaで日付型を指定\n };\n },\n};\n\nexport function targetConstructorToSchema(target: Function, options: Partial<IOptions> = {}) {\n return _targetConstructorToSchema(target, {\n ...options,\n additionalConverters,\n classTransformerMetadataStorage: defaultMetadataStorage,\n });\n}\n","import { Injectable, inject } from \"@angular/core\";\nimport { FormBuilder, FormGroup, NonNullableFormBuilder, Validators } from \"@angular/forms\";\nimport { JsonSchema } from \"json-schema-library\";\nimport { targetConstructorToSchema } from './json-schema';\nimport { merge } from \"lodash-es\";\n\nexport function buildFormGroupByJsonSchema(schema: JsonSchema, {\n fb = inject(FormBuilder).nonNullable,\n value = {},\n}: {\n fb?: FormBuilder | NonNullableFormBuilder,\n value?: object,\n} = {}): FormGroup {\n console.debug('[buildFormGroupByJsonSchema] schema:', schema);\n if (!schema || !schema?.properties) {\n return fb.group({});\n }\n const group: any = {};\n \n for (const key in schema.properties) {\n const property = schema.properties[key];\n const validators = [];\n\n if (schema.required && schema.required.includes(key)) {\n validators.push(Validators.required);\n }\n group[key] = buildFormByJsonSchemaProperty(property, {fb, value: value?.[key], validators});\n }\n return fb.group(group);\n}\n\nexport function buildFormArrayByJsonSchema(schema: JsonSchema, {\n fb = inject(FormBuilder).nonNullable,\n value = [],\n}: {\n fb?: FormBuilder | NonNullableFormBuilder,\n value?: any[],\n} = {}): any {\n if (!schema || !schema.items) {\n return fb.array([]);\n }\n console.debug('[buildFormArrayByJsonSchema] schema:', schema);\n const array = fb.array([\n buildFormGroupByJsonSchema(schema.items, {fb}),\n ])\n return array;\n}\n\nexport function buildFormByJsonSchemaProperty(property: JsonSchema, {\n fb = inject(FormBuilder).nonNullable,\n value = null,\n validators = [],\n}: {\n fb?: FormBuilder | NonNullableFormBuilder,\n value?: object | object[],\n validators?: any[],\n} = {}): any {\n if (property.type === 'string') {\n if (property.format === 'date-time') {\n return fb.control(value ?? property.default ?? null, validators);\n } else if (property.format === 'binary') {\n return fb.control(value ?? property.default ?? null, validators);\n } else {\n return fb.control(value ?? property.default ?? '', validators);\n }\n } else if (property.type === 'integer') {\n return fb.control(value ?? property.default ?? 0, validators);\n } else if (property.type === 'number') {\n return fb.control(value ?? property.default ?? 0, validators);\n } else if (property.type === 'object') {\n return buildFormGroupByJsonSchema(property, {fb, value: (value || {}) as object});\n }\n else if (property.type === 'array') {\n return buildFormArrayByJsonSchema(property, {fb, value: (value || []) as any[]});\n }\n}\n\nexport function buildFormFieldMapByJsonSchema(\n schema: JsonSchema,\n options: {\n merge?: { [key: string]: any },\n } = {},\n): any {\n if (!schema || !schema.properties) {\n return {\n id: { type: 'hidden' },\n };\n }\n const fieldMap: any = {};\n \n for (const key in schema.properties) {\n const property = schema.properties[key];\n if (property.type === 'string') {\n if (property.enum) {\n fieldMap[key] = { type: 'select', options: property.enum.map((v: string) => ({ value: v, name: v })) };\n } else if (property.format === 'date-time') {\n fieldMap[key] = { type: 'date' };\n } else if (property.format === 'binary') {\n fieldMap[key] = { type: 'file' };\n } else {\n fieldMap[key] = { type: 'text' };\n }\n } else if (property.type === 'object') {\n const childFieldMap = buildFormFieldMapByJsonSchema(property, options);\n for (const childKey in childFieldMap) {\n fieldMap[`${key}.${childKey}`] = childFieldMap[childKey];\n }\n } else if (property.type === 'array') {\n const childFieldMap = buildFormFieldMapByJsonSchema(property.items, options);\n for (const childKey in childFieldMap) {\n // TODO: 正規表現でパスマッチを判定できるようにする。\n fieldMap[`${key}.\\\\d+.${childKey}`] = childFieldMap[childKey];\n }\n } else {\n fieldMap[key] = { type: property.type };\n }\n // const type = ? 'date' : property.type;\n }\n\n console.debug('[buildFormFieldMapByJsonSchema] fieldMap:', fieldMap);\n\n return merge(fieldMap, options.merge);\n}\n\nexport function buildFormByJsonSchema(schema: JsonSchema, {\n fb = inject(FormBuilder).nonNullable,\n value = {},\n fieldMap = {},\n}: {\n fb?: FormBuilder | NonNullableFormBuilder,\n value?: object,\n fieldMap?: object,\n} = {}): any {\n return {\n form: buildFormGroupByJsonSchema(schema, {fb, value}),\n fieldMap: buildFormFieldMapByJsonSchema(schema, {merge: fieldMap}),\n };\n}\n\nexport function buildFormGroup(klass: new() => any, {\n fb = inject(FormBuilder).nonNullable,\n value,\n}: {\n fb?: FormBuilder | NonNullableFormBuilder,\n value?: object,\n}): FormGroup {\n const schema = targetConstructorToSchema(klass);\n return buildFormGroupByJsonSchema(schema, {fb, value});\n}\n\n\nexport function buildFormFieldMap(klass: new() => any, options: {\n merge?: { [key: string]: any },\n}): any {\n const schema = targetConstructorToSchema(klass);\n const map = buildFormFieldMapByJsonSchema(schema, options);\n return merge(map, options.merge);\n}\n\nexport function buildForm(klass: new() => any, {\n fb = inject(FormBuilder).nonNullable,\n value = {},\n fieldMap = {},\n}: {\n fb?: FormBuilder | NonNullableFormBuilder,\n value?: object,\n fieldMap?: object,\n} = {}): any {\n const schema = targetConstructorToSchema(klass);\n return {\n form: buildFormGroupByJsonSchema(schema, {fb, value}),\n fieldMap: buildFormFieldMapByJsonSchema(schema, {merge: fieldMap}),\n };\n}\n\n\n@Injectable({ providedIn: 'root' })\nexport class JsonSchemaFormService {\n private fb = inject(FormBuilder).nonNullable;\n\n build(schema: JsonSchema, {\n fb = this.fb,\n value = {},\n }: {\n fb?: FormBuilder | NonNullableFormBuilder,\n value?: object,\n } = {}): FormGroup {\n return buildFormGroupByJsonSchema(schema, {fb, value});\n }\n\n buildFieldMap(\n schema: JsonSchema,\n options: {\n merge?: { [key: string]: any },\n } = {},\n ): any {\n return buildFormFieldMapByJsonSchema(schema, options);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["_targetConstructorToSchema"],"mappings":"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"}
|
|
@@ -116,6 +116,9 @@ class EntityStoreAdapter {
|
|
|
116
116
|
delete(entity) {
|
|
117
117
|
throw new Error('not implemented');
|
|
118
118
|
}
|
|
119
|
+
save(entity) {
|
|
120
|
+
throw new Error('not implemented');
|
|
121
|
+
}
|
|
119
122
|
}
|
|
120
123
|
const ENTITY_STORE_ADAPTER = new InjectionToken('ENTITY_STORE_ADAPTER');
|
|
121
124
|
function provideEntityStoreAdapter(entity, adapterFactory) {
|
|
@@ -230,6 +233,18 @@ class EntityStore extends BaseEntityStore {
|
|
|
230
233
|
}
|
|
231
234
|
onSyncFailed() { }
|
|
232
235
|
onSyncSucceeded() { }
|
|
236
|
+
create(payload) {
|
|
237
|
+
return this.adapter.create(payload);
|
|
238
|
+
}
|
|
239
|
+
update(payload) {
|
|
240
|
+
return this.adapter.update(payload);
|
|
241
|
+
}
|
|
242
|
+
delete(payload) {
|
|
243
|
+
return this.adapter.delete(payload);
|
|
244
|
+
}
|
|
245
|
+
save(payload) {
|
|
246
|
+
return this.adapter.save(payload);
|
|
247
|
+
}
|
|
233
248
|
}
|
|
234
249
|
|
|
235
250
|
class EntityStoreService {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-atomic-common-stores-entities.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/stores/entities/proxy-id.service.ts","../../../../../packages/@ng-atomic/common/src/lib/stores/entities/task-composer.ts","../../../../../packages/@ng-atomic/common/src/lib/stores/entities/entity-store-adapter.ts","../../../../../packages/@ng-atomic/common/src/lib/stores/entities/entity-store.ts","../../../../../packages/@ng-atomic/common/src/lib/stores/entities/entity-store-manager.ts","../../../../../packages/@ng-atomic/common/src/lib/stores/entities/di.ts","../../../../../packages/@ng-atomic/common/src/lib/stores/entities/ng-atomic-common-stores-entities.ts"],"sourcesContent":["import { Injectable } from \"@angular/core\";\n\n@Injectable({providedIn: 'root'})\nexport class ProxyIdService {\n proxyMap = new Map<string, string>();\n\n isProxyId(id: string | null): boolean {\n return !!id?.startsWith('proxy-');\n }\n\n proxyId(_id: string): string {\n const id = this.isProxyId(_id) ? _id : `proxy-${this.proxyMap.size}`;\n if (!this.proxyMap.get(id)) this.proxyMap.set(id, id);\n return id;\n }\n\n update(proxyId: string, id: string) {\n this.proxyMap.set(proxyId, id);\n }\n\n resolve(proxyIdOrId: string): string {\n return this.isProxyId(proxyIdOrId) ? this.proxyMap.get(proxyIdOrId) : proxyIdOrId;\n }\n}\n","import { Injectable, inject } from \"@angular/core\";\nimport { merge } from \"lodash-es\";\nimport { ProxyIdService } from \"./proxy-id.service\";\n\nexport type Entity = {id: string};\n\ninterface BaseTask {\n type: 'create' | 'update' | 'delete' | 'noop';\n timestamp: number;\n}\n\ninterface CreateAction<T extends Entity> extends BaseTask {\n type: 'create';\n payload: T;\n}\n\ninterface UpdateAction<T extends Entity> extends BaseTask {\n type: 'update';\n payload: Partial<T> & Entity;\n}\n\ninterface DeleteAction extends BaseTask {\n type: 'delete';\n payload: Entity;\n}\n\ninterface NoopAction extends BaseTask {\n type: 'noop';\n payload: {};\n}\n\nexport type Task<T extends Entity> = CreateAction<T> | UpdateAction<T> | DeleteAction | NoopAction;\n\nexport function pushMap<T>(map: Map<string, T[]>, id: string, item: T): Map<string, T[]> {\n const items = map.get(id) ?? [];\n items.push(item);\n map.set(id, items);\n return map;\n}\n\n@Injectable({providedIn: 'root'})\nexport class TaskComposerService {\n readonly proxyId = inject(ProxyIdService);\n\n composeTasks<T extends Entity>(tasks: Task<T>[]): Task<T>[] {\n const map = new Map<string, Task<T>[]>();\n tasks.sort((a, b) => a.timestamp - b.timestamp).forEach((task) => {\n let id = (task.payload as any)?.id;\n switch(task.type) {\n case 'noop':\n break\n case 'create':\n id = this.proxyId.proxyId(task.payload.id);\n pushMap(map, id, {...task, payload: {...task.payload, id}} as Task<T>);\n break;\n case 'update':\n case 'delete':\n pushMap(map, this.proxyId.resolve(id), task);\n break;\n }\n });\n\n const _tasks: Task<T>[] = [];\n for (const tasks of map.values()) {\n _tasks.push(this.compose(tasks));\n }\n return _tasks.filter(task => task.type !== 'noop');\n }\n\n compose<T extends Entity>(tasks: Task<T>[]): Task<T> {\n let created = false;\n return tasks.reduce((a, b) => {\n switch(b.type) {\n case 'create':\n created = true;\n return {\n type: 'create',\n payload: b.payload,\n timestamp: b.timestamp,\n } as Task<T>;\n case 'update':\n return {\n type: created ? 'create' : 'update',\n payload: merge(a.payload, b.payload),\n timestamp: b.timestamp,\n } as Task<T>;\n case 'delete':\n return {\n type: created ? 'noop' : 'delete',\n payload: b.payload,\n timestamp: b.timestamp,\n } as Task<T>;\n }\n }, {type: 'noop', payload: {}} as Task<T>)\n }\n}\n","\nimport { InjectionToken, Injector, inject } from '@angular/core';\nimport { Type } from '@nx-ddd/common/domain/models';\nimport { Observable } from 'rxjs';\nimport { Entity } from './task-composer';\n\nexport class EntityStoreAdapter<E extends Entity> {\n list?(): Observable<E[]> {\n throw new Error('not implemented');\n }\n\n create?(entity: E): Promise<E> {\n throw new Error('not implemented');\n }\n\n update?(entity: Partial<E> & {id: string}): Promise<void> {\n throw new Error('not implemented');\n }\n\n delete?(entity: Partial<E> & {id: string}): Promise<void> {\n throw new Error('not implemented');\n }\n}\n\nexport const ENTITY_STORE_ADAPTER = new InjectionToken<{\n entity: Type<Entity>,\n adapter: EntityStoreAdapter<Entity>\n}[]>('ENTITY_STORE_ADAPTER');\n\nexport function provideEntityStoreAdapter<E extends Entity>(\n entity: Type<E>,\n adapterFactory: (injector: Injector) => EntityStoreAdapter<E>,\n) {\n return {\n provide: ENTITY_STORE_ADAPTER,\n multi: true,\n useFactory: (injector: Injector) => {\n return { entity, adapter: adapterFactory(injector) };\n },\n deps: [Injector]\n };\n}\n\nexport function injectEntityStoreAdapter<E extends Entity>(entity: Type<E>): EntityStoreAdapter<E> {\n const adapters = inject(ENTITY_STORE_ADAPTER, {optional: true}) ?? [];\n return adapters.find(adapter => adapter.entity === entity)?.adapter as EntityStoreAdapter<E>;\n}\n","import { toSignal } from '@angular/core/rxjs-interop';\nimport { inject } from '@angular/core';\nimport { Type } from '@nx-ddd/common/domain/models';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { EntityState, EntityAdapter, createEntityAdapter } from '@ngrx/entity';\nimport { Observable, ReplaySubject, Subject, isObservable, of } from 'rxjs';\nimport { bufferTime, distinctUntilChanged, filter, map, shareReplay, switchMap, tap } from 'rxjs/operators';\nimport { merge } from 'lodash-es';\nimport { Entity, Task, TaskComposerService } from './task-composer';\nimport { ProxyIdService } from './proxy-id.service';\nimport { EntityStoreAdapter, injectEntityStoreAdapter } from './entity-store-adapter';\n\nexport const distinctUntilChangedArray = <T>() => {\n return distinctUntilChanged<T>((pre, cur) => JSON.stringify(pre) === JSON.stringify(cur));\n};\n\nexport class BaseEntityStore<E extends Entity> extends ComponentStore<EntityState<E>> {\n protected adapter: EntityStoreAdapter<E>;\n\n protected readonly refresh$ = new ReplaySubject<void>(1);\n protected readonly selectors = this.entityAdapter.getSelectors();\n readonly all$ = this.select(this.selectors.selectAll);\n readonly all = toSignal(this.all$);\n readonly total$ = this.select(this.selectors.selectTotal);\n readonly total = toSignal(this.total$);\n\n /** @deprecated use BaseEntityStore.all$ instead. */\n readonly entities$ = this.all$\n /** @deprecated use BaseEntityStore.all instead. */\n readonly entities = this.all;\n /** @deprecated use BaseEntityStore.total$ instead. */\n readonly size$ = this.total$;\n\n readonly addOne = this.updater((state, entity: E) => this.entityAdapter.addOne(entity, state));\n readonly addMany = this.updater((state, entities: E[]) => this.entityAdapter.addMany(entities, state));\n readonly updateOne = this.updater((state, update: {id: string, changes: Partial<E>}) => this.entityAdapter.updateOne(update, state));\n readonly updateMany = this.updater((state, updates: {id: string, changes: Partial<E>}[]) => this.entityAdapter.updateMany(updates, state));\n readonly upsertOne = this.updater((state, entity: E) => this.entityAdapter.upsertOne(entity, state));\n readonly upsertMany = this.updater((state, entities: E[]) => this.entityAdapter.upsertMany(entities, state));\n readonly removeOne = this.updater((state, id: string) => this.entityAdapter.removeOne(id, state));\n readonly removeMany = this.updater((state, ids: string[]) => this.entityAdapter.removeMany(ids, state));\n readonly removeAll = this.updater((state) => this.entityAdapter.removeAll(state));\n readonly setOne = this.updater((state, entity: E) => this.entityAdapter.setOne(entity, state));\n readonly setAll = this.updater((state, entities: E[]) => this.entityAdapter.setAll(entities, state));\n\n constructor(\n protected entity: Type<E>,\n protected entityAdapter: EntityAdapter<E> = createEntityAdapter<E>({selectId: (entity) => entity.id, sortComparer: false}),\n ) {\n super(entityAdapter.getInitialState());\n this.adapter = injectEntityStoreAdapter(entity);\n this.getEntities(this.refresh$);\n this.refresh();\n }\n\n protected getEntities = this.effect((refresh$: Observable<void>) => refresh$.pipe(\n switchMap(() => this.adapter?.list() ?? of([])),\n tap((entities: E[]) => this.setAll(entities)),\n ));\n\n refresh() {\n this.refresh$.next();\n }\n\n mapToOne(valueOrObs: string | Observable<string>): Observable<E> {\n const wrap = (valueOrObs: string | Observable<string>) => isObservable(valueOrObs) ? valueOrObs : of(valueOrObs);\n return wrap(valueOrObs).pipe(\n switchMap(id => this.select((state) => this.selectors.selectEntities(state)[id])),\n );\n }\n\n}\n\nexport class EntityStore<E extends Entity> extends BaseEntityStore<E> {\n protected proxyId = inject(ProxyIdService, {});\n protected composer = inject(TaskComposerService);\n protected taskSubject$ = new Subject<Task<E>>();\n protected task$: Observable<Task<E>> = this.taskSubject$.pipe(\n map(task => {\n switch(task.type) {\n case 'create': return merge(task, {payload: {id: this.proxyId.proxyId(task.payload.id)}});\n default: return task;\n }\n }),\n shareReplay(1),\n );\n protected composedTasks$ = this.task$.pipe(\n bufferTime(5 * 1000),\n filter(tasks => tasks.length > 0),\n map((tasks) => this.composer.composeTasks(tasks)),\n );\n\n constructor(\n protected entity: Type<E>,\n protected entityAdapter: EntityAdapter<E> = createEntityAdapter<E>({selectId: (entity) => entity.id, sortComparer: false}),\n ) {\n super(entity, entityAdapter);\n this.task$.subscribe((task: Task<E>) => this.runTask(task));\n this.composedTasks$.subscribe(tasks => this.runComposedTasks(tasks));\n }\n\n dispatch(action: Task<E>) {\n this.taskSubject$.next(action);\n }\n\n protected async runTask(task: Task<E>): Promise<any> {\n switch(task.type) {\n case 'create': return this.addOne(task.payload);\n case 'update': return this.updateOne({id: task.payload.id, changes: task.payload});\n case 'delete': return this.removeOne(task.payload.id);\n }\n }\n\n protected async runComposedTasks(tasks: Task<E>[]): Promise<void> {\n return Promise.all(tasks.map((task) => {\n switch(task.type) {\n case 'create': return this.adapter.create(task.payload)\n .then((entity) => {\n this.proxyId.update(task.payload.id, entity.id);\n const _entity = this.state().entities[task.payload.id];\n this.removeOne(task.payload.id);\n this.addOne({..._entity, id: entity.id});\n });\n case 'update': return this.adapter.update({\n ...task.payload,\n id: this.proxyId.resolve(task.payload.id),\n });\n case 'delete': return this.adapter.delete({\n ...task.payload,\n id: this.proxyId.resolve(task.payload.id),\n } as any);\n }\n }))\n .then(() => this.onSyncSucceeded())\n .catch(() => this.onSyncFailed());\n }\n\n protected onSyncFailed() { }\n protected onSyncSucceeded() { }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Type } from '@nx-ddd/common/domain/models';\nimport { Entity } from './task-composer';\nimport { EntityStore } from './entity-store';\nexport { distinctUntilChangedArray } from './entity-store';\n\n@Injectable({providedIn: 'root'})\nexport class EntityStoreService {\n protected storeMap = new Map<Type<Entity>, EntityStore<Entity>>();\n\n get<E extends Entity>(Entity: Type<E>): EntityStore<E> {\n if (!this.storeMap.has(Entity)) {\n this.storeMap.set(Entity, new EntityStore(Entity));\n }\n return this.storeMap.get(Entity) as EntityStore<E>;\n }\n}\n\nexport function injectEntityStore<E extends Entity>(Entity: Type<E>): EntityStore<E> {\n return inject(EntityStoreService).get(Entity);\n}\n","import { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { Signal, computed, inject } from '@angular/core';\nimport { Type } from '@nx-ddd/common/domain/models';\nimport { Resolver, getResolver, injectResolver$ } from '@ng-atomic/common/utils';\nimport { Observable, combineLatest, isObservable, of, filter, map, shareReplay, switchMap, tap, distinctUntilChanged } from 'rxjs';\nimport { Entity } from './task-composer';\nimport { EntityStore } from './entity-store';\nimport { injectEntityStore } from './entity-store-manager';\nimport { computedAsync } from 'ngxtension/computed-async';\n\ntype OneProps<V> = {id: V, [key: string]: V};\ntype AllProps<V> = {[key: string]: V};\n\nexport function injectOne$<T extends Entity>(\n Entity: Type<T>,\n params: OneProps<Observable<any>>,\n resolverType?: new (params: Record<string, Observable<any>>) => Resolver<T>\n): Observable<T> {\n if (resolverType) {\n return combineLatest({\n resolver: injectResolver$(resolverType, params),\n Entity: injectEntityStore(Entity).mapToOne(params.id).pipe(\n filter((Entity) => !!Entity)\n ),\n }).pipe(\n map(({ resolver, Entity }) => resolver.resolve(Entity)),\n shareReplay(1),\n takeUntilDestroyed(),\n );\n }\n\n return injectEntityStore(Entity).mapToOne(params.id).pipe(\n shareReplay(1),\n takeUntilDestroyed(),\n );\n}\n\nfunction signalMapToObs(map: AllProps<Signal<any>>): AllProps<Observable<any>> {\n return Object.entries(map).reduce((acc, [key, value]) => {\n acc[key] = toObservable(value as any);\n return acc;\n }, {} as AllProps<Observable<any>>);\n}\n\n\nexport function injectOne<T extends Entity>(\n Entity: Type<T>,\n params: OneProps<Signal<any>>,\n resolverType?: new (params: Record<string, any>) => Resolver<T>\n) {\n return toSignal(injectOne$(Entity, signalMapToObs(params) as any, resolverType));\n}\n\nexport function injectAll$<T extends Entity>(\n Entity: Type<T>,\n params: Record<string, Observable<any>> = {},\n resolverType?: new (params: Record<string, any>) => Resolver<T>\n) {\n if (resolverType) {\n return combineLatest({\n resolver: injectResolver$(resolverType, params),\n entities: injectEntityStore(Entity).all$,\n }).pipe(\n map(({ resolver, entities }) => resolver.resolveMany(entities)),\n shareReplay(1),\n takeUntilDestroyed(),\n );\n }\n\n return injectEntityStore(Entity).entities$.pipe(\n shareReplay(1),\n takeUntilDestroyed(),\n );\n}\n\nexport const callSignalMap = <T extends Record<string, Signal<any>>>(map: T): Signal<T> => {\n return computed(() => Object.entries(map).reduce((acc, [key, value]) => {\n return {...acc, [key]: value()};\n }, {} as T));\n}\n\n// export function injectAll<T extends Entity>(\n// Entity: Type<T>,\n// params: Record<string, Signal<any>> = {},\n// resolverType?: new (params: Record<string, any>) => Resolver<T>\n// ) {\n// const store = injectEntityStore(Entity);\n// if (resolverType) {\n// return computed(() => {\n// const resolver = getResolver(resolverType, callSignalMap(params)());\n// const items = resolver.resolveMany(store.all());\n// return items;\n// });\n// }\n// return computed(() => store.all());\n// }\n\nexport function injectAll<T extends Entity>(\n Entity: Type<T>,\n params: AllProps<Signal<any>> = {},\n resolverType?: new (params: Record<string, any>) => Resolver<T>\n) {\n const $params = signalMapToObs(params);\n const all$ = injectAll$(Entity, $params, resolverType);\n return computedAsync(() => all$, {initialValue: []});\n}\n\nexport type ValueOrObservable<T> = T | Observable<T>;\n\nexport function mapToOne$<T extends {id: string}>(\n storeType: new () => EntityStore<T>,\n keyOrKey$: ValueOrObservable<string>,\n): Observable<T> {\n const store = inject<EntityStore<T>>(storeType, {});\n const key$ = isObservable(keyOrKey$) ? keyOrKey$ : of(keyOrKey$);\n return key$.pipe(switchMap(key => store.mapToOne(key)));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["filter","map","shareReplay","switchMap"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-atomic-common-stores-entities.mjs","sources":["../../../../../packages/@ng-atomic/common/src/lib/stores/entities/proxy-id.service.ts","../../../../../packages/@ng-atomic/common/src/lib/stores/entities/task-composer.ts","../../../../../packages/@ng-atomic/common/src/lib/stores/entities/entity-store-adapter.ts","../../../../../packages/@ng-atomic/common/src/lib/stores/entities/entity-store.ts","../../../../../packages/@ng-atomic/common/src/lib/stores/entities/entity-store-manager.ts","../../../../../packages/@ng-atomic/common/src/lib/stores/entities/di.ts","../../../../../packages/@ng-atomic/common/src/lib/stores/entities/ng-atomic-common-stores-entities.ts"],"sourcesContent":["import { Injectable } from \"@angular/core\";\n\n@Injectable({providedIn: 'root'})\nexport class ProxyIdService {\n proxyMap = new Map<string, string>();\n\n isProxyId(id: string | null): boolean {\n return !!id?.startsWith('proxy-');\n }\n\n proxyId(_id: string): string {\n const id = this.isProxyId(_id) ? _id : `proxy-${this.proxyMap.size}`;\n if (!this.proxyMap.get(id)) this.proxyMap.set(id, id);\n return id;\n }\n\n update(proxyId: string, id: string) {\n this.proxyMap.set(proxyId, id);\n }\n\n resolve(proxyIdOrId: string): string {\n return this.isProxyId(proxyIdOrId) ? this.proxyMap.get(proxyIdOrId) : proxyIdOrId;\n }\n}\n","import { Injectable, inject } from \"@angular/core\";\nimport { merge } from \"lodash-es\";\nimport { ProxyIdService } from \"./proxy-id.service\";\n\nexport type Entity = {id: string};\n\ninterface BaseTask {\n type: 'create' | 'update' | 'delete' | 'noop';\n timestamp: number;\n}\n\ninterface CreateAction<T extends Entity> extends BaseTask {\n type: 'create';\n payload: T;\n}\n\ninterface UpdateAction<T extends Entity> extends BaseTask {\n type: 'update';\n payload: Partial<T> & Entity;\n}\n\ninterface DeleteAction extends BaseTask {\n type: 'delete';\n payload: Entity;\n}\n\ninterface NoopAction extends BaseTask {\n type: 'noop';\n payload: {};\n}\n\nexport type Task<T extends Entity> = CreateAction<T> | UpdateAction<T> | DeleteAction | NoopAction;\n\nexport function pushMap<T>(map: Map<string, T[]>, id: string, item: T): Map<string, T[]> {\n const items = map.get(id) ?? [];\n items.push(item);\n map.set(id, items);\n return map;\n}\n\n@Injectable({providedIn: 'root'})\nexport class TaskComposerService {\n readonly proxyId = inject(ProxyIdService);\n\n composeTasks<T extends Entity>(tasks: Task<T>[]): Task<T>[] {\n const map = new Map<string, Task<T>[]>();\n tasks.sort((a, b) => a.timestamp - b.timestamp).forEach((task) => {\n let id = (task.payload as any)?.id;\n switch(task.type) {\n case 'noop':\n break\n case 'create':\n id = this.proxyId.proxyId(task.payload.id);\n pushMap(map, id, {...task, payload: {...task.payload, id}} as Task<T>);\n break;\n case 'update':\n case 'delete':\n pushMap(map, this.proxyId.resolve(id), task);\n break;\n }\n });\n\n const _tasks: Task<T>[] = [];\n for (const tasks of map.values()) {\n _tasks.push(this.compose(tasks));\n }\n return _tasks.filter(task => task.type !== 'noop');\n }\n\n compose<T extends Entity>(tasks: Task<T>[]): Task<T> {\n let created = false;\n return tasks.reduce((a, b) => {\n switch(b.type) {\n case 'create':\n created = true;\n return {\n type: 'create',\n payload: b.payload,\n timestamp: b.timestamp,\n } as Task<T>;\n case 'update':\n return {\n type: created ? 'create' : 'update',\n payload: merge(a.payload, b.payload),\n timestamp: b.timestamp,\n } as Task<T>;\n case 'delete':\n return {\n type: created ? 'noop' : 'delete',\n payload: b.payload,\n timestamp: b.timestamp,\n } as Task<T>;\n }\n }, {type: 'noop', payload: {}} as Task<T>)\n }\n}\n","\nimport { InjectionToken, Injector, inject } from '@angular/core';\nimport { Type } from '@nx-ddd/common/domain/models';\nimport { Observable } from 'rxjs';\nimport { Entity } from './task-composer';\n\nexport class EntityStoreAdapter<E extends Entity> {\n list?(): Observable<E[]> {\n throw new Error('not implemented');\n }\n\n create?(entity: E): Promise<E> {\n throw new Error('not implemented');\n }\n\n update?(entity: Partial<E> & Pick<E, 'id'>): Promise<void> {\n throw new Error('not implemented');\n }\n\n delete?(entity: Pick<E, 'id'>): Promise<void> {\n throw new Error('not implemented');\n }\n\n save?(entity: E): Promise<E> {\n throw new Error('not implemented');\n }\n}\n\nexport const ENTITY_STORE_ADAPTER = new InjectionToken<{\n entity: Type<Entity>,\n adapter: EntityStoreAdapter<Entity>\n}[]>('ENTITY_STORE_ADAPTER');\n\nexport function provideEntityStoreAdapter<E extends Entity>(\n entity: Type<E>,\n adapterFactory: (injector: Injector) => EntityStoreAdapter<E>,\n) {\n return {\n provide: ENTITY_STORE_ADAPTER,\n multi: true,\n useFactory: (injector: Injector) => {\n return { entity, adapter: adapterFactory(injector) };\n },\n deps: [Injector]\n };\n}\n\nexport function injectEntityStoreAdapter<E extends Entity>(entity: Type<E>): EntityStoreAdapter<E> {\n const adapters = inject(ENTITY_STORE_ADAPTER, {optional: true}) ?? [];\n return adapters.find(adapter => adapter.entity === entity)?.adapter as EntityStoreAdapter<E>;\n}\n","import { toSignal } from '@angular/core/rxjs-interop';\nimport { inject } from '@angular/core';\nimport { Type } from '@nx-ddd/common/domain/models';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { EntityState, EntityAdapter, createEntityAdapter } from '@ngrx/entity';\nimport { Observable, ReplaySubject, Subject, isObservable, of } from 'rxjs';\nimport { bufferTime, distinctUntilChanged, filter, map, shareReplay, switchMap, tap } from 'rxjs/operators';\nimport { merge } from 'lodash-es';\nimport { Entity, Task, TaskComposerService } from './task-composer';\nimport { ProxyIdService } from './proxy-id.service';\nimport { EntityStoreAdapter, injectEntityStoreAdapter } from './entity-store-adapter';\n\nexport const distinctUntilChangedArray = <T>() => {\n return distinctUntilChanged<T>((pre, cur) => JSON.stringify(pre) === JSON.stringify(cur));\n};\n\nexport class BaseEntityStore<E extends Entity> extends ComponentStore<EntityState<E>> {\n protected adapter: EntityStoreAdapter<E>;\n\n protected readonly refresh$ = new ReplaySubject<void>(1);\n protected readonly selectors = this.entityAdapter.getSelectors();\n readonly all$ = this.select(this.selectors.selectAll);\n readonly all = toSignal(this.all$);\n readonly total$ = this.select(this.selectors.selectTotal);\n readonly total = toSignal(this.total$);\n\n /** @deprecated use BaseEntityStore.all$ instead. */\n readonly entities$ = this.all$\n /** @deprecated use BaseEntityStore.all instead. */\n readonly entities = this.all;\n /** @deprecated use BaseEntityStore.total$ instead. */\n readonly size$ = this.total$;\n\n readonly addOne = this.updater((state, entity: E) => this.entityAdapter.addOne(entity, state));\n readonly addMany = this.updater((state, entities: E[]) => this.entityAdapter.addMany(entities, state));\n readonly updateOne = this.updater((state, update: {id: string, changes: Partial<E>}) => this.entityAdapter.updateOne(update, state));\n readonly updateMany = this.updater((state, updates: {id: string, changes: Partial<E>}[]) => this.entityAdapter.updateMany(updates, state));\n readonly upsertOne = this.updater((state, entity: E) => this.entityAdapter.upsertOne(entity, state));\n readonly upsertMany = this.updater((state, entities: E[]) => this.entityAdapter.upsertMany(entities, state));\n readonly removeOne = this.updater((state, id: string) => this.entityAdapter.removeOne(id, state));\n readonly removeMany = this.updater((state, ids: string[]) => this.entityAdapter.removeMany(ids, state));\n readonly removeAll = this.updater((state) => this.entityAdapter.removeAll(state));\n readonly setOne = this.updater((state, entity: E) => this.entityAdapter.setOne(entity, state));\n readonly setAll = this.updater((state, entities: E[]) => this.entityAdapter.setAll(entities, state));\n\n constructor(\n protected entity: Type<E>,\n protected entityAdapter: EntityAdapter<E> = createEntityAdapter<E>({selectId: (entity) => entity.id, sortComparer: false}),\n ) {\n super(entityAdapter.getInitialState());\n this.adapter = injectEntityStoreAdapter(entity);\n this.getEntities(this.refresh$);\n this.refresh();\n }\n\n protected getEntities = this.effect((refresh$: Observable<void>) => refresh$.pipe(\n switchMap(() => this.adapter?.list() ?? of([])),\n tap((entities: E[]) => this.setAll(entities)),\n ));\n\n refresh() {\n this.refresh$.next();\n }\n\n mapToOne(valueOrObs: string | Observable<string>): Observable<E> {\n const wrap = (valueOrObs: string | Observable<string>) => isObservable(valueOrObs) ? valueOrObs : of(valueOrObs);\n return wrap(valueOrObs).pipe(\n switchMap(id => this.select((state) => this.selectors.selectEntities(state)[id])),\n );\n }\n\n}\n\nexport class EntityStore<E extends Entity> extends BaseEntityStore<E> {\n protected proxyId = inject(ProxyIdService, {});\n protected composer = inject(TaskComposerService);\n protected taskSubject$ = new Subject<Task<E>>();\n protected task$: Observable<Task<E>> = this.taskSubject$.pipe(\n map(task => {\n switch(task.type) {\n case 'create': return merge(task, {payload: {id: this.proxyId.proxyId(task.payload.id)}});\n default: return task;\n }\n }),\n shareReplay(1),\n );\n protected composedTasks$ = this.task$.pipe(\n bufferTime(5 * 1000),\n filter(tasks => tasks.length > 0),\n map((tasks) => this.composer.composeTasks(tasks)),\n );\n\n constructor(\n protected entity: Type<E>,\n protected entityAdapter: EntityAdapter<E> = createEntityAdapter<E>({selectId: (entity) => entity.id, sortComparer: false}),\n ) {\n super(entity, entityAdapter);\n this.task$.subscribe((task: Task<E>) => this.runTask(task));\n this.composedTasks$.subscribe(tasks => this.runComposedTasks(tasks));\n }\n\n dispatch(action: Task<E>) {\n this.taskSubject$.next(action);\n }\n\n protected async runTask(task: Task<E>): Promise<any> {\n switch(task.type) {\n case 'create': return this.addOne(task.payload);\n case 'update': return this.updateOne({id: task.payload.id, changes: task.payload});\n case 'delete': return this.removeOne(task.payload.id);\n }\n }\n\n protected async runComposedTasks(tasks: Task<E>[]): Promise<void> {\n return Promise.all(tasks.map((task) => {\n switch(task.type) {\n case 'create': return this.adapter.create(task.payload)\n .then((entity) => {\n this.proxyId.update(task.payload.id, entity.id);\n const _entity = this.state().entities[task.payload.id];\n this.removeOne(task.payload.id);\n this.addOne({..._entity, id: entity.id});\n });\n case 'update': return this.adapter.update({\n ...task.payload,\n id: this.proxyId.resolve(task.payload.id),\n });\n case 'delete': return this.adapter.delete({\n ...task.payload,\n id: this.proxyId.resolve(task.payload.id),\n } as any);\n }\n }))\n .then(() => this.onSyncSucceeded())\n .catch(() => this.onSyncFailed());\n }\n\n protected onSyncFailed() { }\n protected onSyncSucceeded() { }\n\n create(payload: E): Promise<E> {\n return this.adapter.create(payload);\n }\n\n update(payload: Pick<E, 'id'> & Partial<E>): Promise<void> {\n return this.adapter.update(payload);\n }\n\n delete(payload: Pick<E, 'id'>): Promise<void> {\n return this.adapter.delete(payload);\n }\n\n save(payload: E): Promise<E> {\n return this.adapter.save(payload);\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Type } from '@nx-ddd/common/domain/models';\nimport { Entity } from './task-composer';\nimport { EntityStore } from './entity-store';\nexport { distinctUntilChangedArray } from './entity-store';\n\n@Injectable({providedIn: 'root'})\nexport class EntityStoreService {\n protected storeMap = new Map<Type<Entity>, EntityStore<Entity>>();\n\n get<E extends Entity>(Entity: Type<E>): EntityStore<E> {\n if (!this.storeMap.has(Entity)) {\n this.storeMap.set(Entity, new EntityStore(Entity));\n }\n return this.storeMap.get(Entity) as EntityStore<E>;\n }\n}\n\nexport function injectEntityStore<E extends Entity>(Entity: Type<E>): EntityStore<E> {\n return inject(EntityStoreService).get(Entity);\n}\n","import { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { Signal, computed, inject } from '@angular/core';\nimport { Type } from '@nx-ddd/common/domain/models';\nimport { Resolver, getResolver, injectResolver$ } from '@ng-atomic/common/utils';\nimport { Observable, combineLatest, isObservable, of, filter, map, shareReplay, switchMap, tap, distinctUntilChanged } from 'rxjs';\nimport { Entity } from './task-composer';\nimport { EntityStore } from './entity-store';\nimport { injectEntityStore } from './entity-store-manager';\nimport { computedAsync } from 'ngxtension/computed-async';\n\ntype OneProps<V> = {id: V, [key: string]: V};\ntype AllProps<V> = {[key: string]: V};\n\nexport function injectOne$<T extends Entity>(\n Entity: Type<T>,\n params: OneProps<Observable<any>>,\n resolverType?: new (params: Record<string, Observable<any>>) => Resolver<T>\n): Observable<T> {\n if (resolverType) {\n return combineLatest({\n resolver: injectResolver$(resolverType, params),\n Entity: injectEntityStore(Entity).mapToOne(params.id).pipe(\n filter((Entity) => !!Entity)\n ),\n }).pipe(\n map(({ resolver, Entity }) => resolver.resolve(Entity)),\n shareReplay(1),\n takeUntilDestroyed(),\n );\n }\n\n return injectEntityStore(Entity).mapToOne(params.id).pipe(\n shareReplay(1),\n takeUntilDestroyed(),\n );\n}\n\nfunction signalMapToObs(map: AllProps<Signal<any>>): AllProps<Observable<any>> {\n return Object.entries(map).reduce((acc, [key, value]) => {\n acc[key] = toObservable(value as any);\n return acc;\n }, {} as AllProps<Observable<any>>);\n}\n\n\nexport function injectOne<T extends Entity>(\n Entity: Type<T>,\n params: OneProps<Signal<any>>,\n resolverType?: new (params: Record<string, any>) => Resolver<T>\n) {\n return toSignal(injectOne$(Entity, signalMapToObs(params) as any, resolverType));\n}\n\nexport function injectAll$<T extends Entity>(\n Entity: Type<T>,\n params: Record<string, Observable<any>> = {},\n resolverType?: new (params: Record<string, any>) => Resolver<T>\n) {\n if (resolverType) {\n return combineLatest({\n resolver: injectResolver$(resolverType, params),\n entities: injectEntityStore(Entity).all$,\n }).pipe(\n map(({ resolver, entities }) => resolver.resolveMany(entities)),\n shareReplay(1),\n takeUntilDestroyed(),\n );\n }\n\n return injectEntityStore(Entity).entities$.pipe(\n shareReplay(1),\n takeUntilDestroyed(),\n );\n}\n\nexport const callSignalMap = <T extends Record<string, Signal<any>>>(map: T): Signal<T> => {\n return computed(() => Object.entries(map).reduce((acc, [key, value]) => {\n return {...acc, [key]: value()};\n }, {} as T));\n}\n\n// export function injectAll<T extends Entity>(\n// Entity: Type<T>,\n// params: Record<string, Signal<any>> = {},\n// resolverType?: new (params: Record<string, any>) => Resolver<T>\n// ) {\n// const store = injectEntityStore(Entity);\n// if (resolverType) {\n// return computed(() => {\n// const resolver = getResolver(resolverType, callSignalMap(params)());\n// const items = resolver.resolveMany(store.all());\n// return items;\n// });\n// }\n// return computed(() => store.all());\n// }\n\nexport function injectAll<T extends Entity>(\n Entity: Type<T>,\n params: AllProps<Signal<any>> = {},\n resolverType?: new (params: Record<string, any>) => Resolver<T>\n) {\n const $params = signalMapToObs(params);\n const all$ = injectAll$(Entity, $params, resolverType);\n return computedAsync(() => all$, {initialValue: []});\n}\n\nexport type ValueOrObservable<T> = T | Observable<T>;\n\nexport function mapToOne$<T extends {id: string}>(\n storeType: new () => EntityStore<T>,\n keyOrKey$: ValueOrObservable<string>,\n): Observable<T> {\n const store = inject<EntityStore<T>>(storeType, {});\n const key$ = isObservable(keyOrKey$) ? keyOrKey$ : of(keyOrKey$);\n return key$.pipe(switchMap(key => store.mapToOne(key)));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["filter","map","shareReplay","switchMap"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ng-atomic/common",
|
|
3
|
-
"version": "18.
|
|
3
|
+
"version": "18.6.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"peerDependencies": {
|
|
6
6
|
"@angular/cdk": "^18.0.0",
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"@angular/material": "^18.0.0",
|
|
12
12
|
"@angular/router": "^18.0.0",
|
|
13
13
|
"@ngrx/component-store": "^18.0.0",
|
|
14
|
-
"@nx-ddd/core": "18.
|
|
14
|
+
"@nx-ddd/core": "18.6.0",
|
|
15
15
|
"dayjs": "1.11.12",
|
|
16
16
|
"flat": "^6.0.0",
|
|
17
17
|
"lodash-es": "^4.17.15",
|
|
@@ -8,6 +8,7 @@ export declare function provideDataAccessor<T>(useFactory?: () => DataAccessor<T
|
|
|
8
8
|
useFactory: () => DataAccessor<T>;
|
|
9
9
|
};
|
|
10
10
|
export declare function injectDataAccessor<T>(): DataAccessor<T>;
|
|
11
|
+
export declare function injectParentDataAccessor<T>(): DataAccessor<T>;
|
|
11
12
|
export declare class DataAccessorPipe<T> implements PipeTransform {
|
|
12
13
|
protected dataAccessor: DataAccessor<unknown>;
|
|
13
14
|
transform(data: T, key: string, index?: number): any;
|
|
@@ -5,12 +5,9 @@ import { Entity } from './task-composer';
|
|
|
5
5
|
export declare class EntityStoreAdapter<E extends Entity> {
|
|
6
6
|
list?(): Observable<E[]>;
|
|
7
7
|
create?(entity: E): Promise<E>;
|
|
8
|
-
update?(entity: Partial<E> &
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
delete?(entity: Partial<E> & {
|
|
12
|
-
id: string;
|
|
13
|
-
}): Promise<void>;
|
|
8
|
+
update?(entity: Partial<E> & Pick<E, 'id'>): Promise<void>;
|
|
9
|
+
delete?(entity: Pick<E, 'id'>): Promise<void>;
|
|
10
|
+
save?(entity: E): Promise<E>;
|
|
14
11
|
}
|
|
15
12
|
export declare const ENTITY_STORE_ADAPTER: InjectionToken<{
|
|
16
13
|
entity: Type<Entity>;
|
|
@@ -64,4 +64,8 @@ export declare class EntityStore<E extends Entity> extends BaseEntityStore<E> {
|
|
|
64
64
|
protected runComposedTasks(tasks: Task<E>[]): Promise<void>;
|
|
65
65
|
protected onSyncFailed(): void;
|
|
66
66
|
protected onSyncSucceeded(): void;
|
|
67
|
+
create(payload: E): Promise<E>;
|
|
68
|
+
update(payload: Pick<E, 'id'> & Partial<E>): Promise<void>;
|
|
69
|
+
delete(payload: Pick<E, 'id'>): Promise<void>;
|
|
70
|
+
save(payload: E): Promise<E>;
|
|
67
71
|
}
|