@ng-atomic/common 16.2.0 → 16.3.1
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/directives/fallback-src/fallback-src.directive.d.ts +9 -0
- package/directives/fallback-src/index.d.ts +1 -0
- package/esm2022/directives/fallback-src/fallback-src.directive.mjs +25 -0
- package/esm2022/directives/fallback-src/index.mjs +2 -0
- package/esm2022/directives/fallback-src/ng-atomic-common-directives-fallback-src.mjs +5 -0
- package/esm2022/directives/ios-safari-scroll-buggyfill/ios-safari-scroll-buggyfill.directive.mjs +4 -4
- package/esm2022/directives/ios-safari-scroll-buggyfill/ios-safari-scroll-buggyfill.module.mjs +5 -5
- package/esm2022/interceptors/authorization/authorization.interceptor.mjs +4 -4
- package/esm2022/interceptors/index.mjs +2 -0
- package/esm2022/interceptors/interceptors.module.mjs +54 -0
- package/esm2022/interceptors/ng-atomic-common-interceptors.mjs +5 -0
- package/esm2022/interceptors/throttle/throttle.interceptor.mjs +8 -8
- package/esm2022/interceptors/token/authorization.interceptor.mjs +4 -4
- package/esm2022/models/index.mjs +1 -1
- package/esm2022/pipes/actions/actions.pipe.mjs +4 -4
- package/esm2022/pipes/data-accessor/data-accessor.pipe.mjs +14 -14
- package/esm2022/pipes/domain/domain.pipe.mjs +50 -21
- package/esm2022/pipes/error/error.pipe.mjs +4 -4
- package/esm2022/pipes/grouped-by/grouped-by.pipe.mjs +6 -4
- package/esm2022/pipes/index/index.mjs +2 -0
- package/esm2022/pipes/index/index.pipe.mjs +29 -0
- package/esm2022/pipes/index/ng-atomic-common-pipes-index.mjs +5 -0
- package/esm2022/pipes/index-length/index-length.pipe.mjs +22 -0
- package/esm2022/pipes/index-length/index.mjs +2 -0
- package/esm2022/pipes/index-length/ng-atomic-common-pipes-index-length.mjs +5 -0
- package/esm2022/pipes/keys/keys.pipe.mjs +4 -4
- package/esm2022/pipes/page/index.mjs +2 -0
- package/esm2022/pipes/page/ng-atomic-common-pipes-page.mjs +5 -0
- package/esm2022/pipes/page/page.pipe.mjs +25 -0
- package/esm2022/pipes/pagination/pagination.pipe.mjs +9 -9
- package/esm2022/pipes/query/query.pipe.mjs +14 -7
- package/esm2022/pipes/secret/index.mjs +2 -0
- package/esm2022/pipes/secret/ng-atomic-common-pipes-secret.mjs +5 -0
- package/esm2022/pipes/secret/secret.pipe.mjs +21 -0
- package/esm2022/pipes/select-id/select-id.pipe.mjs +6 -6
- package/esm2022/pipes/signal/signal.pipe.mjs +8 -4
- package/esm2022/pipes/smart-exp/smart-exp.module.mjs +5 -5
- package/esm2022/pipes/smart-exp/smart-exp.pipe.mjs +6 -6
- package/esm2022/pipes/smart-field/smart-field.pipe.mjs +21 -21
- package/esm2022/pipes/sort-by/index.mjs +2 -0
- package/esm2022/pipes/sort-by/ng-atomic-common-pipes-sort-by.mjs +5 -0
- package/esm2022/pipes/sort-by/sort-by.pipe.mjs +32 -0
- package/esm2022/pipes/yen/yen.pipe.mjs +4 -4
- package/esm2022/services/auth/auth.service.mjs +35 -20
- package/esm2022/services/chips-manager/chips.manager.mjs +4 -4
- package/esm2022/services/csv/csv.service.mjs +4 -4
- package/esm2022/services/form/pagination/pagination.service.mjs +4 -4
- package/esm2022/services/form/sort/sort.service.mjs +5 -5
- package/esm2022/services/loading/loading.service.mjs +42 -21
- package/esm2022/services/navigation-history/index.mjs +2 -0
- package/esm2022/services/navigation-history/navigation-history.service.mjs +50 -0
- package/esm2022/services/navigation-history/ng-atomic-common-services-navigation-history.mjs +5 -0
- package/esm2022/services/query-resolver/query-resolver.service.mjs +87 -25
- package/esm2022/services/root-property/index.mjs +2 -0
- package/esm2022/services/root-property/ng-atomic-common-services-root-property.mjs +5 -0
- package/esm2022/services/root-property/root-property.service.mjs +122 -0
- package/esm2022/services/router/index.mjs +2 -0
- package/esm2022/services/router/ng-atomic-common-services-router.mjs +5 -0
- package/esm2022/services/router/router.service.mjs +25 -0
- package/esm2022/services/secret/index.mjs +2 -0
- package/esm2022/services/secret/ng-atomic-common-services-secret.mjs +5 -0
- package/esm2022/services/secret/secret.service.mjs +16 -0
- package/esm2022/services/side-app/index.mjs +2 -0
- package/esm2022/services/side-app/ng-atomic-common-services-side-app.mjs +5 -0
- package/esm2022/services/side-app/side-app.service.mjs +25 -0
- package/esm2022/services/side-nav-mode/index.mjs +2 -0
- package/esm2022/services/side-nav-mode/ng-atomic-common-services-side-nav-mode.mjs +5 -0
- package/esm2022/services/side-nav-mode/side-nav-mode.service.mjs +27 -0
- package/esm2022/services/snack-bar/snack-bar.module.mjs +5 -5
- package/esm2022/services/snack-bar/snack-bar.service.mjs +6 -6
- package/esm2022/services/ui/index.mjs +2 -1
- package/esm2022/services/ui/ui.helpers.mjs +186 -0
- package/esm2022/services/ui/ui.service.mjs +55 -173
- package/esm2022/stores/entities/di.mjs +56 -0
- package/esm2022/stores/entities/entity-store-manager.mjs +42 -0
- package/esm2022/stores/entities/entity-store.mjs +127 -0
- package/esm2022/stores/entities/index.mjs +6 -2
- package/esm2022/stores/entities/proxy-id.service.mjs +29 -0
- package/esm2022/stores/entities/task-composer.mjs +71 -0
- package/esm2022/stores/pagination/pagination.store.mjs +5 -5
- package/esm2022/stores/query/query.store.mjs +7 -7
- package/esm2022/stores/selection/selection.store.mjs +5 -5
- package/esm2022/stores/sort/sort.store.mjs +5 -5
- package/esm2022/utils/form/form.mjs +26 -0
- package/esm2022/utils/form/index.mjs +2 -0
- package/esm2022/utils/get/get.mjs +2 -1
- package/esm2022/utils/index.mjs +5 -2
- package/esm2022/utils/inject/index.mjs +2 -0
- package/esm2022/utils/inject/inject.mjs +120 -0
- package/esm2022/utils/mat-dayjs-date/dayjs-date.adapter.mjs +3 -2
- package/esm2022/utils/mat-dayjs-date/dayjs-date.module.mjs +22 -26
- package/esm2022/utils/page/page.mjs +1 -1
- package/esm2022/utils/router/index.mjs +2 -0
- package/esm2022/utils/router/router.mjs +54 -0
- package/esm2022/utils/time.mjs +8 -0
- package/fesm2022/ng-atomic-common-directives-fallback-src.mjs +32 -0
- package/fesm2022/ng-atomic-common-directives-fallback-src.mjs.map +1 -0
- package/fesm2022/ng-atomic-common-directives-ios-safari-scroll-buggyfill.mjs +7 -7
- package/fesm2022/ng-atomic-common-directives-ios-safari-scroll-buggyfill.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-interceptors-authorization.mjs +3 -3
- package/fesm2022/ng-atomic-common-interceptors-authorization.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-interceptors-throttle.mjs +7 -7
- package/fesm2022/ng-atomic-common-interceptors-throttle.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-interceptors-token.mjs +3 -3
- package/fesm2022/ng-atomic-common-interceptors-token.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-interceptors.mjs +61 -0
- package/fesm2022/ng-atomic-common-interceptors.mjs.map +1 -0
- package/fesm2022/ng-atomic-common-pipes-actions.mjs +3 -3
- package/fesm2022/ng-atomic-common-pipes-actions.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-data-accessor.mjs +14 -14
- package/fesm2022/ng-atomic-common-pipes-data-accessor.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-domain.mjs +50 -21
- package/fesm2022/ng-atomic-common-pipes-domain.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-error.mjs +3 -3
- package/fesm2022/ng-atomic-common-pipes-error.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-grouped-by.mjs +5 -3
- package/fesm2022/ng-atomic-common-pipes-grouped-by.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-index-length.mjs +29 -0
- package/fesm2022/ng-atomic-common-pipes-index-length.mjs.map +1 -0
- package/fesm2022/ng-atomic-common-pipes-index.mjs +36 -0
- package/fesm2022/ng-atomic-common-pipes-index.mjs.map +1 -0
- package/fesm2022/ng-atomic-common-pipes-keys.mjs +3 -3
- package/fesm2022/ng-atomic-common-pipes-keys.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-page.mjs +32 -0
- package/fesm2022/ng-atomic-common-pipes-page.mjs.map +1 -0
- package/fesm2022/ng-atomic-common-pipes-pagination.mjs +8 -8
- package/fesm2022/ng-atomic-common-pipes-pagination.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-query.mjs +14 -7
- package/fesm2022/ng-atomic-common-pipes-query.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-secret.mjs +28 -0
- package/fesm2022/ng-atomic-common-pipes-secret.mjs.map +1 -0
- package/fesm2022/ng-atomic-common-pipes-select-id.mjs +5 -5
- package/fesm2022/ng-atomic-common-pipes-select-id.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-signal.mjs +8 -4
- package/fesm2022/ng-atomic-common-pipes-signal.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-smart-exp.mjs +9 -9
- package/fesm2022/ng-atomic-common-pipes-smart-exp.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-smart-field.mjs +21 -21
- package/fesm2022/ng-atomic-common-pipes-smart-field.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-pipes-sort-by.mjs +39 -0
- package/fesm2022/ng-atomic-common-pipes-sort-by.mjs.map +1 -0
- package/fesm2022/ng-atomic-common-pipes-yen.mjs +3 -3
- package/fesm2022/ng-atomic-common-pipes-yen.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-auth.mjs +35 -20
- package/fesm2022/ng-atomic-common-services-auth.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-chips-manager.mjs +3 -3
- package/fesm2022/ng-atomic-common-services-chips-manager.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-csv.mjs +3 -3
- package/fesm2022/ng-atomic-common-services-csv.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-form-pagination.mjs +3 -3
- package/fesm2022/ng-atomic-common-services-form-pagination.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-form-sort.mjs +4 -4
- package/fesm2022/ng-atomic-common-services-form-sort.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-loading.mjs +42 -21
- package/fesm2022/ng-atomic-common-services-loading.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-navigation-history.mjs +57 -0
- package/fesm2022/ng-atomic-common-services-navigation-history.mjs.map +1 -0
- package/fesm2022/ng-atomic-common-services-query-resolver.mjs +86 -25
- package/fesm2022/ng-atomic-common-services-query-resolver.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-root-property.mjs +129 -0
- package/fesm2022/ng-atomic-common-services-root-property.mjs.map +1 -0
- package/fesm2022/ng-atomic-common-services-router.mjs +32 -0
- package/fesm2022/ng-atomic-common-services-router.mjs.map +1 -0
- package/fesm2022/ng-atomic-common-services-secret.mjs +23 -0
- package/fesm2022/ng-atomic-common-services-secret.mjs.map +1 -0
- package/fesm2022/ng-atomic-common-services-side-app.mjs +32 -0
- package/fesm2022/ng-atomic-common-services-side-app.mjs.map +1 -0
- package/fesm2022/ng-atomic-common-services-side-nav-mode.mjs +34 -0
- package/fesm2022/ng-atomic-common-services-side-nav-mode.mjs.map +1 -0
- package/fesm2022/ng-atomic-common-services-snack-bar.mjs +9 -9
- package/fesm2022/ng-atomic-common-services-snack-bar.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-ui.mjs +237 -174
- package/fesm2022/ng-atomic-common-services-ui.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-stores-entities.mjs +297 -19
- package/fesm2022/ng-atomic-common-stores-entities.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-stores-pagination.mjs +4 -4
- package/fesm2022/ng-atomic-common-stores-pagination.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-stores-query.mjs +6 -6
- package/fesm2022/ng-atomic-common-stores-query.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-stores-selection.mjs +4 -4
- package/fesm2022/ng-atomic-common-stores-selection.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-stores-sort.mjs +4 -4
- package/fesm2022/ng-atomic-common-stores-sort.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-utils-page.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-utils.mjs +227 -124
- package/fesm2022/ng-atomic-common-utils.mjs.map +1 -1
- package/interceptors/index.d.ts +1 -0
- package/interceptors/interceptors.module.d.ts +7 -0
- package/models/index.d.ts +34 -0
- package/package.json +79 -7
- package/pipes/data-accessor/data-accessor.pipe.d.ts +7 -3
- package/pipes/domain/domain.pipe.d.ts +51 -5
- package/pipes/grouped-by/grouped-by.pipe.d.ts +1 -1
- package/pipes/index/index.d.ts +1 -0
- package/pipes/index/index.pipe.d.ts +11 -0
- package/pipes/index-length/index-length.pipe.d.ts +10 -0
- package/pipes/index-length/index.d.ts +1 -0
- package/pipes/page/index.d.ts +1 -0
- package/pipes/page/page.pipe.d.ts +11 -0
- package/pipes/query/query.pipe.d.ts +5 -4
- package/pipes/secret/index.d.ts +1 -0
- package/pipes/secret/secret.pipe.d.ts +8 -0
- package/pipes/signal/signal.pipe.d.ts +1 -0
- package/pipes/smart-field/smart-field.pipe.d.ts +48 -15
- package/pipes/sort-by/index.d.ts +1 -0
- package/pipes/sort-by/sort-by.pipe.d.ts +17 -0
- package/services/auth/auth.service.d.ts +32 -25
- package/services/loading/loading.service.d.ts +20 -8
- package/services/navigation-history/index.d.ts +1 -0
- package/services/navigation-history/navigation-history.service.d.ts +14 -0
- package/services/query-resolver/query-resolver.service.d.ts +25 -8
- package/services/root-property/index.d.ts +1 -0
- package/services/root-property/root-property.service.d.ts +91 -0
- package/services/router/index.d.ts +1 -0
- package/services/router/router.service.d.ts +10 -0
- package/services/secret/index.d.ts +1 -0
- package/services/secret/secret.service.d.ts +6 -0
- package/services/side-app/index.d.ts +1 -0
- package/services/side-app/side-app.service.d.ts +9 -0
- package/services/side-nav-mode/index.d.ts +1 -0
- package/services/side-nav-mode/side-nav-mode.service.d.ts +11 -0
- package/services/snack-bar/snack-bar.service.d.ts +1 -1
- package/services/ui/index.d.ts +1 -0
- package/services/ui/ui.helpers.d.ts +28 -0
- package/services/ui/ui.service.d.ts +42 -47
- package/stores/entities/di.d.ts +15 -0
- package/stores/entities/entity-store-manager.d.ts +12 -0
- package/stores/entities/entity-store.d.ts +86 -0
- package/stores/entities/index.d.ts +5 -1
- package/stores/entities/proxy-id.service.d.ts +10 -0
- package/stores/entities/task-composer.d.ts +35 -0
- package/stores/query/query.store.d.ts +3 -3
- package/utils/form/form.d.ts +10 -0
- package/utils/form/index.d.ts +1 -0
- package/utils/get/get.d.ts +1 -0
- package/utils/index.d.ts +4 -1
- package/utils/inject/index.d.ts +1 -0
- package/utils/inject/inject.d.ts +50 -0
- package/utils/mat-dayjs-date/dayjs-date.module.d.ts +2 -5
- package/utils/page/page.d.ts +1 -1
- package/utils/router/index.d.ts +1 -0
- package/utils/router/router.d.ts +4 -0
- package/utils/time.d.ts +1 -0
- package/esm2022/pipes/smart-sort-by/index.mjs +0 -4
- package/esm2022/pipes/smart-sort-by/ng-atomic-common-pipes-smart-sort-by.mjs +0 -5
- package/esm2022/pipes/smart-sort-by/smart-sort-by.module.mjs +0 -24
- package/esm2022/pipes/smart-sort-by/smart-sort-by.pipe.mjs +0 -28
- package/esm2022/pipes/smart-sort-by/smart-sort-by.transformer.mjs +0 -5
- package/esm2022/stores/entities/entities.store.mjs +0 -32
- package/esm2022/utils/query/index.mjs +0 -2
- package/esm2022/utils/query/query.resolver.mjs +0 -100
- package/fesm2022/ng-atomic-common-pipes-smart-sort-by.mjs +0 -60
- package/fesm2022/ng-atomic-common-pipes-smart-sort-by.mjs.map +0 -1
- package/pipes/smart-sort-by/index.d.ts +0 -3
- package/pipes/smart-sort-by/smart-sort-by.module.d.ts +0 -8
- package/pipes/smart-sort-by/smart-sort-by.pipe.d.ts +0 -11
- package/pipes/smart-sort-by/smart-sort-by.transformer.d.ts +0 -2
- package/stores/entities/entities.store.d.ts +0 -19
- package/utils/query/index.d.ts +0 -1
- package/utils/query/query.resolver.d.ts +0 -2
|
@@ -1,134 +1,15 @@
|
|
|
1
1
|
import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';
|
|
2
|
-
import { Injectable, computed, inject } from '@angular/core';
|
|
2
|
+
import { Injectable, PLATFORM_ID, computed, inject } from '@angular/core';
|
|
3
3
|
import { toSignal } from '@angular/core/rxjs-interop';
|
|
4
|
-
import {
|
|
5
|
-
import { combineLatest,
|
|
4
|
+
import { NavigationStart } from '@angular/router';
|
|
5
|
+
import { combineLatest, filter, map, startWith } from 'rxjs';
|
|
6
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
7
|
+
import { RouterService } from '@ng-atomic/common/services/router';
|
|
6
8
|
import * as i0 from "@angular/core";
|
|
7
|
-
|
|
8
|
-
switch (breakpoint) {
|
|
9
|
-
case 'xSmall':
|
|
10
|
-
return {
|
|
11
|
-
root: {
|
|
12
|
-
properties: {
|
|
13
|
-
'--menu-width': '220px',
|
|
14
|
-
'--page-width-lv1': '100vw',
|
|
15
|
-
'--page-width-lv2': '100vw',
|
|
16
|
-
'--page-width-lv3': '100vw',
|
|
17
|
-
},
|
|
18
|
-
},
|
|
19
|
-
frames: {
|
|
20
|
-
sideNav: {
|
|
21
|
-
frameType: 'drawer',
|
|
22
|
-
menuType: 'menu',
|
|
23
|
-
},
|
|
24
|
-
router: {
|
|
25
|
-
type: 'overlay',
|
|
26
|
-
},
|
|
27
|
-
},
|
|
28
|
-
templates: {
|
|
29
|
-
index: {
|
|
30
|
-
type: 'list',
|
|
31
|
-
width: 'var(--page-width-lv1)',
|
|
32
|
-
},
|
|
33
|
-
crud: {
|
|
34
|
-
type: 'form',
|
|
35
|
-
width: 'var(--page-width-lv1)',
|
|
36
|
-
},
|
|
37
|
-
menu: {
|
|
38
|
-
type: 'list',
|
|
39
|
-
width: '220px',
|
|
40
|
-
},
|
|
41
|
-
},
|
|
42
|
-
};
|
|
43
|
-
case 'small':
|
|
44
|
-
case 'medium':
|
|
45
|
-
return {
|
|
46
|
-
root: {
|
|
47
|
-
properties: {
|
|
48
|
-
'--menu-width': '64px',
|
|
49
|
-
'--page-width-lv1': '360px',
|
|
50
|
-
'--page-width-lv2': 'max(calc(min(100vw, 1440px) - 360px - 64px), 360px)',
|
|
51
|
-
'--page-width-lv3': 'max(calc(min(100vw, 1440px) - 64px), 360px)',
|
|
52
|
-
},
|
|
53
|
-
},
|
|
54
|
-
frames: {
|
|
55
|
-
sideNav: {
|
|
56
|
-
frameType: 'lineup',
|
|
57
|
-
menuType: 'icon-button-menu',
|
|
58
|
-
},
|
|
59
|
-
router: {
|
|
60
|
-
type: 'lineup',
|
|
61
|
-
},
|
|
62
|
-
},
|
|
63
|
-
templates: {
|
|
64
|
-
index: {
|
|
65
|
-
type: 'table',
|
|
66
|
-
width: 'var(--page-width-lv2)',
|
|
67
|
-
},
|
|
68
|
-
crud: {
|
|
69
|
-
type: 'form',
|
|
70
|
-
width: 'var(--page-width-lv1)',
|
|
71
|
-
},
|
|
72
|
-
menu: {
|
|
73
|
-
type: 'list',
|
|
74
|
-
width: '220px',
|
|
75
|
-
},
|
|
76
|
-
},
|
|
77
|
-
};
|
|
78
|
-
case 'large':
|
|
79
|
-
case 'xLarge':
|
|
80
|
-
return {
|
|
81
|
-
root: {
|
|
82
|
-
properties: {
|
|
83
|
-
'--menu-width': '220px',
|
|
84
|
-
'--page-width-lv1': '360px',
|
|
85
|
-
'--page-width-lv2': 'max(calc(min(100vw, 1440px) - 360px - 220px), 360px)',
|
|
86
|
-
'--page-width-lv3': 'max(calc(min(100vw, 1440px) - 220px), 360px)',
|
|
87
|
-
},
|
|
88
|
-
},
|
|
89
|
-
frames: {
|
|
90
|
-
sideNav: {
|
|
91
|
-
frameType: 'lineup',
|
|
92
|
-
menuType: 'menu',
|
|
93
|
-
},
|
|
94
|
-
router: {
|
|
95
|
-
type: 'lineup',
|
|
96
|
-
},
|
|
97
|
-
},
|
|
98
|
-
templates: {
|
|
99
|
-
index: {
|
|
100
|
-
type: 'table',
|
|
101
|
-
width: 'var(--page-width-lv2)',
|
|
102
|
-
},
|
|
103
|
-
crud: {
|
|
104
|
-
type: 'form',
|
|
105
|
-
width: 'var(--page-width-lv1)',
|
|
106
|
-
},
|
|
107
|
-
menu: {
|
|
108
|
-
type: 'list',
|
|
109
|
-
width: '220px',
|
|
110
|
-
},
|
|
111
|
-
},
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
export class UiService {
|
|
116
|
-
mapTo(path) {
|
|
117
|
-
return this.ui$.pipe(map((ui) => get(ui, path)));
|
|
118
|
-
}
|
|
119
|
-
/**@deprecated */
|
|
120
|
-
getSignal(path) {
|
|
121
|
-
return computed(() => get(this.ui(), path));
|
|
122
|
-
}
|
|
123
|
-
get$(path) {
|
|
124
|
-
return this.ui$.pipe(map((ui) => get(ui, path)));
|
|
125
|
-
}
|
|
126
|
-
get(path) {
|
|
127
|
-
return computed(() => get(this.ui(), path));
|
|
128
|
-
}
|
|
9
|
+
export class BreakPointService {
|
|
129
10
|
constructor() {
|
|
130
11
|
this.breakpointObserver = inject(BreakpointObserver);
|
|
131
|
-
this.
|
|
12
|
+
this.breakpointMap$ = combineLatest({
|
|
132
13
|
xSmall: this.breakpointObserver.observe(Breakpoints.XSmall),
|
|
133
14
|
small: this.breakpointObserver.observe(Breakpoints.Small),
|
|
134
15
|
medium: this.breakpointObserver.observe(Breakpoints.Medium),
|
|
@@ -137,63 +18,64 @@ export class UiService {
|
|
|
137
18
|
handset: this.breakpointObserver.observe(Breakpoints.Handset),
|
|
138
19
|
tablet: this.breakpointObserver.observe(Breakpoints.Tablet),
|
|
139
20
|
web: this.breakpointObserver.observe(Breakpoints.Web),
|
|
140
|
-
})
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
handset: this.breakpointObserver.isMatched(Breakpoints.Handset),
|
|
156
|
-
tablet: this.breakpointObserver.isMatched(Breakpoints.Tablet),
|
|
157
|
-
web: this.breakpointObserver.isMatched(Breakpoints.Web),
|
|
158
|
-
}), map((results) => {
|
|
159
|
-
if (results.xSmall)
|
|
21
|
+
});
|
|
22
|
+
this.breakpointMap = toSignal(this.breakpointMap$);
|
|
23
|
+
this.breakpoint = computed(() => {
|
|
24
|
+
const map = this.breakpointMap();
|
|
25
|
+
const test = {
|
|
26
|
+
xSmall: map.xSmall.matches ?? this.breakpointObserver.isMatched(Breakpoints.XSmall),
|
|
27
|
+
small: map.small.matches ?? this.breakpointObserver.isMatched(Breakpoints.Small),
|
|
28
|
+
medium: map.medium.matches ?? this.breakpointObserver.isMatched(Breakpoints.Medium),
|
|
29
|
+
large: map.large.matches ?? this.breakpointObserver.isMatched(Breakpoints.Large),
|
|
30
|
+
xLarge: map.xLarge.matches ?? this.breakpointObserver.isMatched(Breakpoints.XLarge),
|
|
31
|
+
handset: map.handset.matches ?? this.breakpointObserver.isMatched(Breakpoints.Handset),
|
|
32
|
+
tablet: map.tablet.matches ?? this.breakpointObserver.isMatched(Breakpoints.Tablet),
|
|
33
|
+
web: map.web.matches ?? this.breakpointObserver.isMatched(Breakpoints.Web),
|
|
34
|
+
};
|
|
35
|
+
if (test.xSmall)
|
|
160
36
|
return 'xSmall';
|
|
161
|
-
if (
|
|
37
|
+
if (test.small)
|
|
162
38
|
return 'small';
|
|
163
|
-
if (
|
|
39
|
+
if (test.medium)
|
|
164
40
|
return 'medium';
|
|
165
|
-
if (
|
|
41
|
+
if (test.large)
|
|
166
42
|
return 'large';
|
|
167
|
-
if (
|
|
43
|
+
if (test.xLarge)
|
|
168
44
|
return 'xLarge';
|
|
169
|
-
if (
|
|
45
|
+
if (test.handset)
|
|
170
46
|
return 'handset';
|
|
171
|
-
if (
|
|
47
|
+
if (test.tablet)
|
|
172
48
|
return 'tablet';
|
|
173
|
-
if (
|
|
49
|
+
if (test.web)
|
|
174
50
|
return 'web';
|
|
175
|
-
}));
|
|
176
|
-
this.ui$ = this.breakpoint$.pipe(map((breakpoint) => resolveUiConfig(breakpoint)), filter((ui) => !!ui), distinctUntilChanged(), shareReplay(1));
|
|
177
|
-
this.ui = toSignal(this.ui$);
|
|
178
|
-
this.ui$.subscribe((ui) => {
|
|
179
|
-
for (const [key, value] of Object.entries(ui.root.properties)) {
|
|
180
|
-
document.documentElement.style.setProperty(key, value);
|
|
181
|
-
}
|
|
182
51
|
});
|
|
183
52
|
}
|
|
184
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
185
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
53
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: BreakPointService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
54
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: BreakPointService, providedIn: 'root' }); }
|
|
186
55
|
}
|
|
187
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: BreakPointService, decorators: [{
|
|
188
57
|
type: Injectable,
|
|
189
|
-
args: [{
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
58
|
+
args: [{ providedIn: 'root' }]
|
|
59
|
+
}] });
|
|
60
|
+
export class UiService {
|
|
61
|
+
constructor() {
|
|
62
|
+
this.breakpoint = inject(BreakPointService);
|
|
63
|
+
this.router = inject(RouterService);
|
|
64
|
+
this.platformId = inject(PLATFORM_ID);
|
|
65
|
+
this.paths$ = this.router.events.pipe(filter(event => event instanceof NavigationStart), map((event) => event.url), startWith(isPlatformBrowser(this.platformId) ? window?.location?.pathname : ''), map(url => this.router.parseUrl(url)), map(urlTree => urlTree.root.children?.primary?.segments ?? []));
|
|
66
|
+
this.paths = toSignal(this.paths$);
|
|
67
|
+
this.snapshot$ = this.router.events.pipe(filter(event => event instanceof NavigationStart), map(() => this.router.routerState.snapshot.root));
|
|
68
|
+
this.snapshot = toSignal(this.snapshot$);
|
|
69
|
+
this.uiContext = computed(() => ({
|
|
70
|
+
breakpoint: this.breakpoint.breakpoint(),
|
|
71
|
+
paths: this.paths(),
|
|
72
|
+
}));
|
|
73
|
+
}
|
|
74
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: UiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
75
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: UiService, providedIn: 'root' }); }
|
|
198
76
|
}
|
|
199
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29tbW9uL3NyYy9saWIvc2VydmljZXMvdWkvdWkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFVBQVUsRUFBVSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQTJCLEdBQUcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZFLE9BQU8sRUFBYyxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQXFDNUcsU0FBUyxlQUFlLENBQ3RCLFVBQXNCO0lBRXRCLFFBQVEsVUFBVSxFQUFFO1FBQ2xCLEtBQUssUUFBUTtZQUNYLE9BQU87Z0JBQ0wsSUFBSSxFQUFFO29CQUNKLFVBQVUsRUFBRTt3QkFDVixjQUFjLEVBQUUsT0FBTzt3QkFDdkIsa0JBQWtCLEVBQUUsT0FBTzt3QkFDM0Isa0JBQWtCLEVBQUUsT0FBTzt3QkFDM0Isa0JBQWtCLEVBQUUsT0FBTztxQkFDNUI7aUJBQ0Q7Z0JBQ0YsTUFBTSxFQUFFO29CQUNOLE9BQU8sRUFBRTt3QkFDUCxTQUFTLEVBQUUsUUFBUTt3QkFDbkIsUUFBUSxFQUFFLE1BQU07cUJBQ2pCO29CQUNELE1BQU0sRUFBRTt3QkFDTixJQUFJLEVBQUUsU0FBUztxQkFDaEI7aUJBQ0Y7Z0JBQ0QsU0FBUyxFQUFFO29CQUNULEtBQUssRUFBRTt3QkFDTCxJQUFJLEVBQUUsTUFBTTt3QkFDWixLQUFLLEVBQUUsdUJBQXVCO3FCQUMvQjtvQkFD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TTtpQkFDbkI7O0FBZ0ZELE1BQU0sVUFBVSxlQUFlLENBQTRDLElBQU87SUFDaEYsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3RDLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUE0QyxJQUFPO0lBQy9FLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50cyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgU2lnbmFsLCBjb21wdXRlZCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IE5lc3RlZEdldFR5cGUsIFBhdGhLZXlzLCBnZXQgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi91dGlscyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIHNoYXJlUmVwbGF5LCBzdGFydFdpdGggfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGludGVyZmFjZSBVSUNvbmZpZyB7XG4gIHJvb3Q6IHtcbiAgIHByb3BlcnRpZXM6IHtcbiAgICAnLS1wYWdlLXdpZHRoLWx2MSc6IHN0cmluZyxcbiAgICAnLS1wYWdlLXdpZHRoLWx2Mic6IHN0cmluZyxcbiAgICAnLS1wYWdlLXdpZHRoLWx2Myc6IHN0cmluZyxcbiAgICAnLS1tZW51LXdpZHRoJzogc3RyaW5nLFxuICAgfSxcbiAgfSxcbiAgZnJhbWVzOiB7XG4gICAgc2lkZU5hdjoge1xuICAgICAgZnJhbWVUeXBlOiAnbGluZXVwJyB8ICdkcmF3ZXInLFxuICAgICAgbWVudVR5cGU6ICdpY29uLWJ1dHRvbi1tZW51JyB8ICdtZW51JyxcbiAgICB9LFxuICAgIHJvdXRlcjoge1xuICAgICAgdHlwZTogJ2xpbmV1cCcgfCAnb3ZlcmxheScsXG4gICAgfSxcbiAgfVxuICB0ZW1wbGF0ZXM6IHtcbiAgICBpbmRleDoge1xuICAgICAgdHlwZTogJ2xpc3QnIHwgJ3RhYmxlJztcbiAgICAgIHdpZHRoOiBzdHJpbmc7XG4gICAgfTtcbiAgICBjcnVkOiB7XG4gICAgICB0eXBlOiAnZm9ybScgfCAndGFibGUnO1xuICAgICAgd2lkdGg6IHN0cmluZztcbiAgICB9O1xuICAgIG1lbnU6IHtcbiAgICAgIHR5cGU6ICdsaXN0JyB8ICd0YWJsZSc7XG4gICAgICB3aWR0aDogc3RyaW5nO1xuICAgIH07XG4gIH1cbn1cbnR5cGUgQnJlYWtwb2ludCA9ICd4U21hbGwnIHwgJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJyB8ICd4TGFyZ2UnIHwgJ2hhbmRzZXQnIHwgJ3RhYmxldCcgfCAnd2ViJztcblxuZnVuY3Rpb24gcmVzb2x2ZVVpQ29uZmlnKFxuICBicmVha3BvaW50OiBCcmVha3BvaW50LFxuKTogVUlDb25maWcge1xuICBzd2l0Y2ggKGJyZWFrcG9pbnQpIHtcbiAgICBjYXNlICd4U21hbGwnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcm9vdDoge1xuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICctLW1lbnUtd2lkdGgnOiAnMjIwcHgnLCAgXG4gICAgICAgICAgICAnLS1wYWdlLXdpZHRoLWx2MSc6ICcxMDB2dycsXG4gICAgICAgICAgICAnLS1wYWdlLXdpZHRoLWx2Mic6ICcxMDB2dycsXG4gICAgICAgICAgICAnLS1wYWdlLXdpZHRoLWx2Myc6ICcxMDB2dycsXG4gICAgICAgICAgfSxcbiAgICAgICAgIH0sXG4gICAgICAgIGZyYW1lczoge1xuICAgICAgICAgIHNpZGVOYXY6IHtcbiAgICAgICAgICAgIGZyYW1lVHlwZTogJ2RyYXdlcicsXG4gICAgICAgICAgICBtZW51VHlwZTogJ21lbnUnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcm91dGVyOiB7XG4gICAgICAgICAgICB0eXBlOiAnb3ZlcmxheScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgdGVtcGxhdGVzOiB7XG4gICAgICAgICAgaW5kZXg6IHtcbiAgICAgICAgICAgIHR5cGU6ICdsaXN0JyxcbiAgICAgICAgICAgIHdpZHRoOiAndmFyKC0tcGFnZS13aWR0aC1sdjEpJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNydWQ6IHtcbiAgICAgICAgICAgIHR5cGU6ICdmb3JtJyxcbiAgICAgICAgICAgIHdpZHRoOiAndmFyKC0tcGFnZS13aWR0aC1sdjEpJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG1lbnU6IHtcbiAgICAgICAgICAgIHR5cGU6ICdsaXN0JyxcbiAgICAgICAgICAgIHdpZHRoOiAnMjIwcHgnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIGNhc2UgJ3NtYWxsJzpcbiAgICBjYXNlICdtZWRpdW0nOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcm9vdDoge1xuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICctLW1lbnUtd2lkdGgnOiAnNjRweCcsXG4gICAgICAgICAgICAnLS1wYWdlLXdpZHRoLWx2MSc6ICczNjBweCcsXG4gICAgICAgICAgICAnLS1wYWdlLXdpZHRoLWx2Mic6ICdtYXgoY2FsYyhtaW4oMTAwdncsIDE0NDBweCkgLSAzNjBweCAtIDY0cHgpLCAzNjBweCknLFxuICAgICAgICAgICAgJy0tcGFnZS13aWR0aC1sdjMnOiAnbWF4KGNhbGMobWluKDEwMHZ3LCAxNDQwcHgpIC0gNjRweCksIDM2MHB4KScsXG4gICAgICAgICAgfSxcbiAgICAgICAgIH0sXG4gICAgICAgIGZyYW1lczoge1xuICAgICAgICAgIHNpZGVOYXY6IHtcbiAgICAgICAgICAgIGZyYW1lVHlwZTogJ2xpbmV1cCcsXG4gICAgICAgICAgICBtZW51VHlwZTogJ2ljb24tYnV0dG9uLW1lbnUnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcm91dGVyOiB7XG4gICAgICAgICAgICB0eXBlOiAnbGluZXVwJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB0ZW1wbGF0ZXM6IHtcbiAgICAgICAgICBpbmRleDoge1xuICAgICAgICAgICAgdHlwZTogJ3RhYmxlJyxcbiAgICAgICAgICAgIHdpZHRoOiAndmFyKC0tcGFnZS13aWR0aC1sdjIpJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNydWQ6IHtcbiAgICAgICAgICAgIHR5cGU6ICdmb3JtJyxcbiAgICAgICAgICAgIHdpZHRoOiAndmFyKC0tcGFnZS13aWR0aC1sdjEpJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG1lbnU6IHtcbiAgICAgICAgICAgIHR5cGU6ICdsaXN0JyxcbiAgICAgICAgICAgIHdpZHRoOiAnMjIwcHgnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIGNhc2UgJ2xhcmdlJzogXG4gICAgY2FzZSAneExhcmdlJzpcbiAgICByZXR1cm4ge1xuICAgICAgcm9vdDoge1xuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgJy0tbWVudS13aWR0aCc6ICcyMjBweCcsXG4gICAgICAgICAgJy0tcGFnZS13aWR0aC1sdjEnOiAnMzYwcHgnLFxuICAgICAgICAgICctLXBhZ2Utd2lkdGgtbHYyJzogJ21heChjYWxjKG1pbigxMDB2dywgMTQ0MHB4KSAtIDM2MHB4IC0gMjIwcHgpLCAzNjBweCknLFxuICAgICAgICAgICctLXBhZ2Utd2lkdGgtbHYzJzogJ21heChjYWxjKG1pbigxMDB2dywgMTQ0MHB4KSAtIDIyMHB4KSwgMzYwcHgpJyxcbiAgICAgICAgfSxcbiAgICAgICB9LFxuICAgICAgZnJhbWVzOiB7XG4gICAgICAgIHNpZGVOYXY6IHtcbiAgICAgICAgICBmcmFtZVR5cGU6ICdsaW5ldXAnLFxuICAgICAgICAgIG1lbnVUeXBlOiAnbWVudScsXG4gICAgICAgIH0sXG4gICAgICAgIHJvdXRlcjoge1xuICAgICAgICAgIHR5cGU6ICdsaW5ldXAnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHRlbXBsYXRlczoge1xuICAgICAgICBpbmRleDoge1xuICAgICAgICAgIHR5cGU6ICd0YWJsZScsXG4gICAgICAgICAgd2lkdGg6ICd2YXIoLS1wYWdlLXdpZHRoLWx2MiknLFxuICAgICAgICB9LFxuICAgICAgICBjcnVkOiB7XG4gICAgICAgICAgdHlwZTogJ2Zvcm0nLFxuICAgICAgICAgIHdpZHRoOiAndmFyKC0tcGFnZS13aWR0aC1sdjEpJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVudToge1xuICAgICAgICAgIHR5cGU6ICdsaXN0JyxcbiAgICAgICAgICB3aWR0aDogJzIyMHB4JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfVxuICB9XG59XG5cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVWlTZXJ2aWNlIHtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYnJlYWtwb2ludE9ic2VydmVyID0gaW5qZWN0KEJyZWFrcG9pbnRPYnNlcnZlcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgYnJlYWtwb2ludCQ6IE9ic2VydmFibGU8QnJlYWtwb2ludD4gPSBjb21iaW5lTGF0ZXN0KHtcbiAgICB4U21hbGw6IHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLm9ic2VydmUoQnJlYWtwb2ludHMuWFNtYWxsKSxcbiAgICBzbWFsbDogdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIub2JzZXJ2ZShCcmVha3BvaW50cy5TbWFsbCksXG4gICAgbWVkaXVtOiB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5vYnNlcnZlKEJyZWFrcG9pbnRzLk1lZGl1bSksXG4gICAgbGFyZ2U6IHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLm9ic2VydmUoQnJlYWtwb2ludHMuTGFyZ2UpLFxuICAgIHhMYXJnZTogdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIub2JzZXJ2ZShCcmVha3BvaW50cy5YTGFyZ2UpLFxuICAgIGhhbmRzZXQ6IHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLm9ic2VydmUoQnJlYWtwb2ludHMuSGFuZHNldCksXG4gICAgdGFibGV0OiB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5vYnNlcnZlKEJyZWFrcG9pbnRzLlRhYmxldCksXG4gICAgd2ViOiB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5vYnNlcnZlKEJyZWFrcG9pbnRzLldlYiksXG4gIH0pLnBpcGUoXG4gICAgbWFwKChyZXN1bHRzKSA9PiAoe1xuICAgICAgeFNtYWxsOiByZXN1bHRzLnhTbWFsbC5tYXRjaGVzLFxuICAgICAgc21hbGw6IHJlc3VsdHMuc21hbGwubWF0Y2hlcyxcbiAgICAgIG1lZGl1bTogcmVzdWx0cy5tZWRpdW0ubWF0Y2hlcyxcbiAgICAgIGxhcmdlOiByZXN1bHRzLmxhcmdlLm1hdGNoZXMsXG4gICAgICB4TGFyZ2U6IHJlc3VsdHMueExhcmdlLm1hdGNoZXMsXG4gICAgICBoYW5kc2V0OiByZXN1bHRzLmhhbmRzZXQubWF0Y2hlcyxcbiAgICAgIHRhYmxldDogcmVzdWx0cy50YWJsZXQubWF0Y2hlcyxcbiAgICAgIHdlYjogcmVzdWx0cy53ZWIubWF0Y2hlcyxcbiAgICB9KSksXG4gICAgc3RhcnRXaXRoKHtcbiAgICAgIHhTbWFsbDogdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIuaXNNYXRjaGVkKEJyZWFrcG9pbnRzLlhTbWFsbCksXG4gICAgICBzbWFsbDogdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIuaXNNYXRjaGVkKEJyZWFrcG9pbnRzLlNtYWxsKSxcbiAgICAgIG1lZGl1bTogdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIuaXNNYXRjaGVkKEJyZWFrcG9pbnRzLk1lZGl1bSksXG4gICAgICBsYXJnZTogdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIuaXNNYXRjaGVkKEJyZWFrcG9pbnRzLkxhcmdlKSxcbiAgICAgIHhMYXJnZTogdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIuaXNNYXRjaGVkKEJyZWFrcG9pbnRzLlhMYXJnZSksXG4gICAgICBoYW5kc2V0OiB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5pc01hdGNoZWQoQnJlYWtwb2ludHMuSGFuZHNldCksXG4gICAgICB0YWJsZXQ6IHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLmlzTWF0Y2hlZChCcmVha3BvaW50cy5UYWJsZXQpLFxuICAgICAgd2ViOiB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5pc01hdGNoZWQoQnJlYWtwb2ludHMuV2ViKSxcbiAgICB9KSxcbiAgICBtYXAoKHJlc3VsdHMpID0+IHtcbiAgICAgIGlmIChyZXN1bHRzLnhTbWFsbCkgcmV0dXJuICd4U21hbGwnO1xuICAgICAgaWYgKHJlc3VsdHMuc21hbGwpIHJldHVybiAnc21hbGwnO1xuICAgICAgaWYgKHJlc3VsdHMubWVkaXVtKSByZXR1cm4gJ21lZGl1bSc7XG4gICAgICBpZiAocmVzdWx0cy5sYXJnZSkgcmV0dXJuICdsYXJnZSc7XG4gICAgICBpZiAocmVzdWx0cy54TGFyZ2UpIHJldHVybiAneExhcmdlJztcbiAgICAgIGlmIChyZXN1bHRzLmhhbmRzZXQpIHJldHVybiAnaGFuZHNldCc7XG4gICAgICBpZiAocmVzdWx0cy50YWJsZXQpIHJldHVybiAndGFibGV0JztcbiAgICAgIGlmIChyZXN1bHRzLndlYikgcmV0dXJuICd3ZWInO1xuICAgIH0pLFxuICApO1xuXG4gIHJlYWRvbmx5IHVpJDogT2JzZXJ2YWJsZTxVSUNvbmZpZz4gPSB0aGlzLmJyZWFrcG9pbnQkLnBpcGUoXG4gICAgbWFwKChicmVha3BvaW50KSA9PiByZXNvbHZlVWlDb25maWcoYnJlYWtwb2ludCkpLFxuICAgIGZpbHRlcigodWkpID0+ICEhdWkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSksXG4gICk7XG4gIHJlYWRvbmx5IHVpID0gdG9TaWduYWwodGhpcy51aSQpO1xuXG4gIG1hcFRvKHBhdGg6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLnVpJC5waXBlKG1hcCgodWkpID0+IGdldCh1aSwgcGF0aCBhcyBhbnkpKSk7XG4gIH1cblxuICAvKipAZGVwcmVjYXRlZCAqL1xuICBnZXRTaWduYWw8UCBleHRlbmRzIChrZXlvZiBhbnkpW10sIFQgPSBVSUNvbmZpZz4ocGF0aDogWy4uLlBdKTogU2lnbmFsPE5lc3RlZEdldFR5cGU8VCwgUD4+IHtcbiAgICByZXR1cm4gY29tcHV0ZWQoKCkgPT4gZ2V0KHRoaXMudWkoKSwgcGF0aCBhcyBhbnkpIGFzIGFueSk7XG4gIH1cblxuICBnZXQkPFQsIFAgZXh0ZW5kcyBQYXRoS2V5czxUPj4ocGF0aDogUCk6IE9ic2VydmFibGU8TmVzdGVkR2V0VHlwZTxULCBQPj4ge1xuICAgIHJldHVybiB0aGlzLnVpJC5waXBlKG1hcCgodWkpID0+IGdldDxULCBQPih1aSBhcyBULCBwYXRoKSkpO1xuICB9XG5cbiAgZ2V0PFQsIFAgZXh0ZW5kcyBQYXRoS2V5czxUPj4ocGF0aDogUCk6IFNpZ25hbDxOZXN0ZWRHZXRUeXBlPFQsIFA+PiB7XG4gICAgcmV0dXJuIGNvbXB1dGVkKCgpID0+IGdldDxULCBQPih0aGlzLnVpKCkgYXMgVCwgcGF0aCkpO1xuICB9XG4gXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMudWkkLnN1YnNjcmliZSgodWkpID0+IHtcbiAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHVpLnJvb3QucHJvcGVydGllcykpIHtcbiAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KGtleSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH0pXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFVpQ29uZmlnJDxUIGV4dGVuZHMgVUlDb25maWcsIFAgZXh0ZW5kcyBQYXRoS2V5czxUPj4ocGF0aDogUCk6IE9ic2VydmFibGU8TmVzdGVkR2V0VHlwZTxULCBQPj4ge1xuICByZXR1cm4gaW5qZWN0KFVpU2VydmljZSkuZ2V0JChwYXRoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFVpQ29uZmlnPFQgZXh0ZW5kcyBVSUNvbmZpZywgUCBleHRlbmRzIFBhdGhLZXlzPFQ+PihwYXRoOiBQKTogU2lnbmFsPE5lc3RlZEdldFR5cGU8VCwgUD4+IHtcbiAgcmV0dXJuIGluamVjdChVaVNlcnZpY2UpLmdldChwYXRoKTtcbn1cbiJdfQ==
|
|
77
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: UiService, decorators: [{
|
|
78
|
+
type: Injectable,
|
|
79
|
+
args: [{ providedIn: 'root' }]
|
|
80
|
+
}] });
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29tbW9uL3NyYy9saWIvc2VydmljZXMvdWkvdWkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQU8sTUFBTSxNQUFNLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOztBQVVsRSxNQUFNLE9BQU8saUJBQWlCO0lBRDlCO1FBRXFCLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzFELG1CQUFjLEdBQUcsYUFBYSxDQUFDO1lBQ3RDLE1BQU0sRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7WUFDM0QsS0FBSyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUN6RCxNQUFNLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDO1lBQzNELEtBQUssRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDekQsTUFBTSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztZQUMzRCxPQUFPLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDO1lBQzdELE1BQU0sRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7WUFDM0QsR0FBRyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQztTQUN0RCxDQUFDLENBQUM7UUFDTSxrQkFBYSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDOUMsZUFBVSxHQUFHLFFBQVEsQ0FBYSxHQUFHLEVBQUU7WUFDOUMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sSUFBSSxHQUFHO2dCQUNYLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7Z0JBQ25GLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7Z0JBQ2hGLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7Z0JBQ25GLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7Z0JBQ2hGLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7Z0JBQ25GLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUM7Z0JBQ3RGLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7Z0JBQ25GLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUM7YUFDM0UsQ0FBQztZQUVGLElBQUksSUFBSSxDQUFDLE1BQU07Z0JBQUUsT0FBTyxRQUFRLENBQUM7WUFDakMsSUFBSSxJQUFJLENBQUMsS0FBSztnQkFBRSxPQUFPLE9BQU8sQ0FBQztZQUMvQixJQUFJLElBQUksQ0FBQyxNQUFNO2dCQUFFLE9BQU8sUUFBUSxDQUFDO1lBQ2pDLElBQUksSUFBSSxDQUFDLEtBQUs7Z0JBQUUsT0FBTyxPQUFPLENBQUM7WUFDL0IsSUFBSSxJQUFJLENBQUMsTUFBTTtnQkFBRSxPQUFPLFFBQVEsQ0FBQztZQUNqQyxJQUFJLElBQUksQ0FBQyxPQUFPO2dCQUFFLE9BQU8sU0FBUyxDQUFDO1lBQ25DLElBQUksSUFBSSxDQUFDLE1BQU07Z0JBQUUsT0FBTyxRQUFRLENBQUM7WUFDakMsSUFBSSxJQUFJLENBQUMsR0FBRztnQkFBRSxPQUFPLEtBQUssQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztLQUNKOzhHQW5DWSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQURKLE1BQU07OzJGQUNuQixpQkFBaUI7a0JBRDdCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOztBQXVDbEMsTUFBTSxPQUFPLFNBQVM7SUFEdEI7UUFFVyxlQUFVLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDdkMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMvQixlQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRWpDLFdBQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3ZDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssWUFBWSxlQUFlLENBQUMsRUFDakQsR0FBRyxDQUFDLENBQUMsS0FBc0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUMxQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQy9FLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQ3JDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLElBQUksRUFBRSxDQUFDLENBQy9ELENBQUM7UUFDTyxVQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU5QixjQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUMxQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLFlBQVksZUFBZSxDQUFDLEVBQ2pELEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQ2pELENBQUM7UUFDTyxhQUFRLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVwQyxjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDbkMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFO1lBQ3hDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFO1NBQ3BCLENBQUMsQ0FBQyxDQUFDO0tBQ0w7OEdBeEJZLFNBQVM7a0hBQVQsU0FBUyxjQURJLE1BQU07OzJGQUNuQixTQUFTO2tCQURyQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJyZWFrcG9pbnRPYnNlcnZlciwgQnJlYWtwb2ludHMgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7IEluamVjdGFibGUsIFBMQVRGT1JNX0lELCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgTmF2aWdhdGlvblN0YXJ0IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGZpbHRlciwgbWFwLCBzdGFydFdpdGgsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUm91dGVyU2VydmljZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tbW9uL3NlcnZpY2VzL3JvdXRlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVUlDb250ZXh0IHtcbiAgYnJlYWtwb2ludDogQnJlYWtwb2ludDtcbiAgcGF0aHM6IGFueVtdO1xufVxuXG5leHBvcnQgdHlwZSBCcmVha3BvaW50ID0gJ3hTbWFsbCcgfCAnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnIHwgJ3hMYXJnZScgfCAnaGFuZHNldCcgfCAndGFibGV0JyB8ICd3ZWInO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEJyZWFrUG9pbnRTZXJ2aWNlIHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGJyZWFrcG9pbnRPYnNlcnZlciA9IGluamVjdChCcmVha3BvaW50T2JzZXJ2ZXIpO1xuICByZWFkb25seSBicmVha3BvaW50TWFwJCA9IGNvbWJpbmVMYXRlc3Qoe1xuICAgIHhTbWFsbDogdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIub2JzZXJ2ZShCcmVha3BvaW50cy5YU21hbGwpLFxuICAgIHNtYWxsOiB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5vYnNlcnZlKEJyZWFrcG9pbnRzLlNtYWxsKSxcbiAgICBtZWRpdW06IHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLm9ic2VydmUoQnJlYWtwb2ludHMuTWVkaXVtKSxcbiAgICBsYXJnZTogdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIub2JzZXJ2ZShCcmVha3BvaW50cy5MYXJnZSksXG4gICAgeExhcmdlOiB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5vYnNlcnZlKEJyZWFrcG9pbnRzLlhMYXJnZSksXG4gICAgaGFuZHNldDogdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIub2JzZXJ2ZShCcmVha3BvaW50cy5IYW5kc2V0KSxcbiAgICB0YWJsZXQ6IHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLm9ic2VydmUoQnJlYWtwb2ludHMuVGFibGV0KSxcbiAgICB3ZWI6IHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLm9ic2VydmUoQnJlYWtwb2ludHMuV2ViKSxcbiAgfSk7XG4gIHJlYWRvbmx5IGJyZWFrcG9pbnRNYXAgPSB0b1NpZ25hbCh0aGlzLmJyZWFrcG9pbnRNYXAkKTtcbiAgcmVhZG9ubHkgYnJlYWtwb2ludCA9IGNvbXB1dGVkPEJyZWFrcG9pbnQ+KCgpID0+IHtcbiAgICBjb25zdCBtYXAgPSB0aGlzLmJyZWFrcG9pbnRNYXAoKTtcbiAgICBjb25zdCB0ZXN0ID0ge1xuICAgICAgeFNtYWxsOiBtYXAueFNtYWxsLm1hdGNoZXMgPz8gdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIuaXNNYXRjaGVkKEJyZWFrcG9pbnRzLlhTbWFsbCksXG4gICAgICBzbWFsbDogbWFwLnNtYWxsLm1hdGNoZXMgPz8gdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIuaXNNYXRjaGVkKEJyZWFrcG9pbnRzLlNtYWxsKSxcbiAgICAgIG1lZGl1bTogbWFwLm1lZGl1bS5tYXRjaGVzID8/IHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLmlzTWF0Y2hlZChCcmVha3BvaW50cy5NZWRpdW0pLFxuICAgICAgbGFyZ2U6IG1hcC5sYXJnZS5tYXRjaGVzID8/IHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLmlzTWF0Y2hlZChCcmVha3BvaW50cy5MYXJnZSksXG4gICAgICB4TGFyZ2U6IG1hcC54TGFyZ2UubWF0Y2hlcyA/PyB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5pc01hdGNoZWQoQnJlYWtwb2ludHMuWExhcmdlKSxcbiAgICAgIGhhbmRzZXQ6IG1hcC5oYW5kc2V0Lm1hdGNoZXMgPz8gdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIuaXNNYXRjaGVkKEJyZWFrcG9pbnRzLkhhbmRzZXQpLFxuICAgICAgdGFibGV0OiBtYXAudGFibGV0Lm1hdGNoZXMgPz8gdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIuaXNNYXRjaGVkKEJyZWFrcG9pbnRzLlRhYmxldCksXG4gICAgICB3ZWI6IG1hcC53ZWIubWF0Y2hlcyA/PyB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5pc01hdGNoZWQoQnJlYWtwb2ludHMuV2ViKSxcbiAgICB9O1xuXG4gICAgaWYgKHRlc3QueFNtYWxsKSByZXR1cm4gJ3hTbWFsbCc7XG4gICAgaWYgKHRlc3Quc21hbGwpIHJldHVybiAnc21hbGwnO1xuICAgIGlmICh0ZXN0Lm1lZGl1bSkgcmV0dXJuICdtZWRpdW0nO1xuICAgIGlmICh0ZXN0LmxhcmdlKSByZXR1cm4gJ2xhcmdlJztcbiAgICBpZiAodGVzdC54TGFyZ2UpIHJldHVybiAneExhcmdlJztcbiAgICBpZiAodGVzdC5oYW5kc2V0KSByZXR1cm4gJ2hhbmRzZXQnO1xuICAgIGlmICh0ZXN0LnRhYmxldCkgcmV0dXJuICd0YWJsZXQnO1xuICAgIGlmICh0ZXN0LndlYikgcmV0dXJuICd3ZWInO1xuICB9KTtcbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBVaVNlcnZpY2Uge1xuICByZWFkb25seSBicmVha3BvaW50ID0gaW5qZWN0KEJyZWFrUG9pbnRTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlclNlcnZpY2UpO1xuICByZWFkb25seSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcblxuICByZWFkb25seSBwYXRocyQgPSB0aGlzLnJvdXRlci5ldmVudHMucGlwZShcbiAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpLFxuICAgIG1hcCgoZXZlbnQ6IE5hdmlnYXRpb25TdGFydCkgPT4gZXZlbnQudXJsKSxcbiAgICBzdGFydFdpdGgoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSA/IHdpbmRvdz8ubG9jYXRpb24/LnBhdGhuYW1lIDogJycpLFxuICAgIG1hcCh1cmwgPT4gdGhpcy5yb3V0ZXIucGFyc2VVcmwodXJsKSksXG4gICAgbWFwKHVybFRyZWUgPT4gdXJsVHJlZS5yb290LmNoaWxkcmVuPy5wcmltYXJ5Py5zZWdtZW50cyA/PyBbXSksXG4gICk7XG4gIHJlYWRvbmx5IHBhdGhzID0gdG9TaWduYWwodGhpcy5wYXRocyQpO1xuXG4gIHJlYWRvbmx5IHNuYXBzaG90JCA9IHRoaXMucm91dGVyLmV2ZW50cy5waXBlKFxuICAgIGZpbHRlcihldmVudCA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCksXG4gICAgbWFwKCgpID0+IHRoaXMucm91dGVyLnJvdXRlclN0YXRlLnNuYXBzaG90LnJvb3QpLFxuICApO1xuICByZWFkb25seSBzbmFwc2hvdCA9IHRvU2lnbmFsKHRoaXMuc25hcHNob3QkKTtcblxuICByZWFkb25seSB1aUNvbnRleHQgPSBjb21wdXRlZCgoKSA9PiAoe1xuICAgIGJyZWFrcG9pbnQ6IHRoaXMuYnJlYWtwb2ludC5icmVha3BvaW50KCksXG4gICAgcGF0aHM6IHRoaXMucGF0aHMoKSxcbiAgfSkpO1xufVxuIl19
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';
|
|
2
|
+
import { computed, inject } from '@angular/core';
|
|
3
|
+
import { getResolver, injectResolver$ } from '@ng-atomic/common/utils';
|
|
4
|
+
import { combineLatest, isObservable, of, filter, map, shareReplay, switchMap } from 'rxjs';
|
|
5
|
+
import { injectEntityStore } from './entity-store-manager';
|
|
6
|
+
export function injectOne$(Entity, params = {}, resolverType) {
|
|
7
|
+
if (resolverType) {
|
|
8
|
+
return combineLatest({
|
|
9
|
+
resolver: injectResolver$(resolverType, params),
|
|
10
|
+
Entity: injectEntityStore(Entity).mapToOne(params.id).pipe(filter((Entity) => !!Entity)),
|
|
11
|
+
}).pipe(map(({ resolver, Entity }) => resolver.resolve(Entity)), shareReplay(1), takeUntilDestroyed());
|
|
12
|
+
}
|
|
13
|
+
return injectEntityStore(Entity).mapToOne(params.id).pipe(shareReplay(1), takeUntilDestroyed());
|
|
14
|
+
}
|
|
15
|
+
function signalMapToObs(map) {
|
|
16
|
+
return Object.entries(map).reduce((acc, [key, value]) => {
|
|
17
|
+
acc[key] = toObservable(value);
|
|
18
|
+
return acc;
|
|
19
|
+
}, {});
|
|
20
|
+
}
|
|
21
|
+
export function injectOne(Entity, params = {}, resolverType) {
|
|
22
|
+
return toSignal(injectOne$(Entity, signalMapToObs(params), resolverType));
|
|
23
|
+
}
|
|
24
|
+
export function injectAll$(Entity, params = {}, resolverType) {
|
|
25
|
+
if (resolverType) {
|
|
26
|
+
return combineLatest({
|
|
27
|
+
resolver: injectResolver$(resolverType, params),
|
|
28
|
+
entities: injectEntityStore(Entity).entities$,
|
|
29
|
+
}).pipe(map(({ resolver, entities }) => resolver.resolveMany(entities)), shareReplay(1), takeUntilDestroyed());
|
|
30
|
+
}
|
|
31
|
+
return injectEntityStore(Entity).entities$.pipe(shareReplay(1), takeUntilDestroyed());
|
|
32
|
+
}
|
|
33
|
+
export const callSignalMap = (map) => {
|
|
34
|
+
return computed(() => Object.entries(map).reduce((acc, [key, value]) => {
|
|
35
|
+
return { ...acc, [key]: value() };
|
|
36
|
+
}, {}));
|
|
37
|
+
};
|
|
38
|
+
export function injectAll(Entity, params = {}, resolverType) {
|
|
39
|
+
const store = injectEntityStore(Entity);
|
|
40
|
+
if (resolverType) {
|
|
41
|
+
return computed(() => {
|
|
42
|
+
const resolver = getResolver(resolverType, callSignalMap(params)());
|
|
43
|
+
const items = resolver.resolveMany(store.entities());
|
|
44
|
+
return items;
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
return computed(() => store.entities(), {
|
|
48
|
+
// equal: (a, b) => JSON.stringify(a) === JSON.stringify(b),
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
export function mapToOne$(storeType, keyOrKey$) {
|
|
52
|
+
const store = inject(storeType, {});
|
|
53
|
+
const key$ = isObservable(keyOrKey$) ? keyOrKey$ : of(keyOrKey$);
|
|
54
|
+
return key$.pipe(switchMap(key => store.mapToOne(key)));
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3N0b3Jlcy9lbnRpdGllcy9kaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hGLE9BQU8sRUFBVSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBWSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDakYsT0FBTyxFQUFjLGFBQWEsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBTyxNQUFNLE1BQU0sQ0FBQztBQUc3RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUUzRCxNQUFNLFVBQVUsVUFBVSxDQUN4QixNQUFlLEVBQ2YsU0FBaUQsRUFBRSxFQUNuRCxZQUEyRTtJQUUzRSxJQUFJLFlBQVksRUFBRTtRQUNoQixPQUFPLGFBQWEsQ0FBQztZQUNuQixRQUFRLEVBQUUsZUFBZSxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUM7WUFDL0MsTUFBTSxFQUFFLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUN4RCxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FDN0I7U0FDRixDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQ3ZELFdBQVcsQ0FB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REFBNEQ7S0FDN0QsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUlELE1BQU0sVUFBVSxTQUFTLENBQ3ZCLFNBQW1DLEVBQ25DLFNBQW9DO0lBRXBDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBaUIsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDakUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQsIHRvT2JzZXJ2YWJsZSwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBTaWduYWwsIGNvbXB1dGVkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICdAbngtZGRkL2NvbW1vbi9kb21haW4vbW9kZWxzJztcbmltcG9ydCB7IFJlc29sdmVyLCBnZXRSZXNvbHZlciwgaW5qZWN0UmVzb2x2ZXIkIH0gZnJvbSAnQG5nLWF0b21pYy9jb21tb24vdXRpbHMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCwgaXNPYnNlcnZhYmxlLCBvZiwgZmlsdGVyLCBtYXAsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSAnLi90YXNrLWNvbXBvc2VyJztcbmltcG9ydCB7IEVudGl0eVN0b3JlIH0gZnJvbSAnLi9lbnRpdHktc3RvcmUnO1xuaW1wb3J0IHsgaW5qZWN0RW50aXR5U3RvcmUgfSBmcm9tICcuL2VudGl0eS1zdG9yZS1tYW5hZ2VyJztcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdE9uZSQ8VCBleHRlbmRzIEVudGl0eT4oXG4gIEVudGl0eTogVHlwZTxUPixcbiAgcGFyYW1zOiBSZWNvcmQ8c3RyaW5nIHwgJ2lkJywgT2JzZXJ2YWJsZTxhbnk+PiA9IHt9LFxuICByZXNvbHZlclR5cGU/OiBuZXcgKHBhcmFtczogUmVjb3JkPHN0cmluZywgT2JzZXJ2YWJsZTxhbnk+PikgPT4gUmVzb2x2ZXI8VD5cbik6IE9ic2VydmFibGU8VD4ge1xuICBpZiAocmVzb2x2ZXJUeXBlKSB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3Qoe1xuICAgICAgcmVzb2x2ZXI6IGluamVjdFJlc29sdmVyJChyZXNvbHZlclR5cGUsIHBhcmFtcyksXG4gICAgICBFbnRpdHk6IGluamVjdEVudGl0eVN0b3JlKEVudGl0eSkubWFwVG9PbmUocGFyYW1zLmlkKS5waXBlKFxuICAgICAgICBmaWx0ZXIoKEVudGl0eSkgPT4gISFFbnRpdHkpXG4gICAgICApLFxuICAgIH0pLnBpcGUoXG4gICAgICBtYXAoKHsgcmVzb2x2ZXIsIEVudGl0eSB9KSA9PiByZXNvbHZlci5yZXNvbHZlKEVudGl0eSkpLFxuICAgICAgc2hhcmVSZXBsYXkoMSksXG4gICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGluamVjdEVudGl0eVN0b3JlKEVudGl0eSkubWFwVG9PbmUocGFyYW1zLmlkKS5waXBlKFxuICAgIHNoYXJlUmVwbGF5KDEpLFxuICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICApO1xufVxuXG5mdW5jdGlvbiBzaWduYWxNYXBUb09icyhtYXA6IFJlY29yZDxzdHJpbmcsIFNpZ25hbDxhbnk+Pik6IFJlY29yZDxzdHJpbmcsIE9ic2VydmFibGU8YW55Pj4ge1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMobWFwKS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgYWNjW2tleV0gPSB0b09ic2VydmFibGUodmFsdWUpO1xuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9KTtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0T25lPFQgZXh0ZW5kcyBFbnRpdHk+KFxuICBFbnRpdHk6IFR5cGU8VD4sXG4gIHBhcmFtczogUmVjb3JkPHN0cmluZyB8ICdpZCcsIFNpZ25hbDxhbnk+PiA9IHt9LFxuICByZXNvbHZlclR5cGU/OiBuZXcgKHBhcmFtczogUmVjb3JkPHN0cmluZywgYW55PikgPT4gUmVzb2x2ZXI8VD5cbikge1xuICByZXR1cm4gdG9TaWduYWwoaW5qZWN0T25lJChFbnRpdHksIHNpZ25hbE1hcFRvT2JzKHBhcmFtcyksIHJlc29sdmVyVHlwZSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0QWxsJDxUIGV4dGVuZHMgRW50aXR5PihcbiAgRW50aXR5OiBUeXBlPFQ+LFxuICBwYXJhbXM6IFJlY29yZDxzdHJpbmcsIE9ic2VydmFibGU8YW55Pj4gPSB7fSxcbiAgcmVzb2x2ZXJUeXBlPzogbmV3IChwYXJhbXM6IFJlY29yZDxzdHJpbmcsIGFueT4pID0+IFJlc29sdmVyPFQ+XG4pIHtcbiAgaWYgKHJlc29sdmVyVHlwZSkge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KHtcbiAgICAgIHJlc29sdmVyOiBpbmplY3RSZXNvbHZlciQocmVzb2x2ZXJUeXBlLCBwYXJhbXMpLFxuICAgICAgZW50aXRpZXM6IGluamVjdEVudGl0eVN0b3JlKEVudGl0eSkuZW50aXRpZXMkLFxuICAgIH0pLnBpcGUoXG4gICAgICBtYXAoKHsgcmVzb2x2ZXIsIGVudGl0aWVzIH0pID0+IHJlc29sdmVyLnJlc29sdmVNYW55KGVudGl0aWVzKSksXG4gICAgICBzaGFyZVJlcGxheSgxKSxcbiAgICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gaW5qZWN0RW50aXR5U3RvcmUoRW50aXR5KS5lbnRpdGllcyQucGlwZShcbiAgICBzaGFyZVJlcGxheSgxKSxcbiAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgKTtcbn1cblxuZXhwb3J0IGNvbnN0IGNhbGxTaWduYWxNYXAgPSA8VCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIFNpZ25hbDxhbnk+Pj4obWFwOiBUKTogU2lnbmFsPFQ+ID0+ICB7XG4gIHJldHVybiBjb21wdXRlZCgoKSA9PiBPYmplY3QuZW50cmllcyhtYXApLnJlZHVjZSgoYWNjLCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICByZXR1cm4gey4uLmFjYywgW2tleV06IHZhbHVlKCl9O1xuICB9LCB7fSBhcyBUKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RBbGw8VCBleHRlbmRzIEVudGl0eT4oXG4gIEVudGl0eTogVHlwZTxUPixcbiAgcGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBTaWduYWw8YW55Pj4gPSB7fSxcbiAgcmVzb2x2ZXJUeXBlPzogbmV3IChwYXJhbXM6IFJlY29yZDxzdHJpbmcsIGFueT4pID0+IFJlc29sdmVyPFQ+XG4pIHtcbiAgY29uc3Qgc3RvcmUgPSBpbmplY3RFbnRpdHlTdG9yZShFbnRpdHkpO1xuICBpZiAocmVzb2x2ZXJUeXBlKSB7XG4gICAgcmV0dXJuIGNvbXB1dGVkKCgpID0+IHtcbiAgICAgIGNvbnN0IHJlc29sdmVyID0gZ2V0UmVzb2x2ZXIocmVzb2x2ZXJUeXBlLCBjYWxsU2lnbmFsTWFwKHBhcmFtcykoKSk7XG4gICAgICBjb25zdCBpdGVtcyA9IHJlc29sdmVyLnJlc29sdmVNYW55KHN0b3JlLmVudGl0aWVzKCkpO1xuICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgIH0pO1xuICB9XG4gIHJldHVybiBjb21wdXRlZCgoKSA9PiBzdG9yZS5lbnRpdGllcygpLCB7XG4gICAgLy8gZXF1YWw6IChhLCBiKSA9PiBKU09OLnN0cmluZ2lmeShhKSA9PT0gSlNPTi5zdHJpbmdpZnkoYiksXG4gIH0pO1xufVxuXG5leHBvcnQgdHlwZSBWYWx1ZU9yT2JzZXJ2YWJsZTxUPiA9IFQgfCBPYnNlcnZhYmxlPFQ+O1xuXG5leHBvcnQgZnVuY3Rpb24gbWFwVG9PbmUkPFQgZXh0ZW5kcyB7aWQ6IHN0cmluZ30+KFxuICBzdG9yZVR5cGU6IG5ldyAoKSA9PiBFbnRpdHlTdG9yZTxUPixcbiAga2V5T3JLZXkkOiBWYWx1ZU9yT2JzZXJ2YWJsZTxzdHJpbmc+LFxuKTogT2JzZXJ2YWJsZTxUPiB7XG4gIGNvbnN0IHN0b3JlID0gaW5qZWN0PEVudGl0eVN0b3JlPFQ+PihzdG9yZVR5cGUsIHt9KTtcbiAgY29uc3Qga2V5JCA9IGlzT2JzZXJ2YWJsZShrZXlPcktleSQpID8ga2V5T3JLZXkkIDogb2Yoa2V5T3JLZXkkKTtcbiAgcmV0dXJuIGtleSQucGlwZShzd2l0Y2hNYXAoa2V5ID0+IHN0b3JlLm1hcFRvT25lKGtleSkpKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Injectable, inject } from '@angular/core';
|
|
2
|
+
import { distinctUntilChanged } from 'rxjs/operators';
|
|
3
|
+
import { EntityStore } from './entity-store';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export const distinctUntilChangedArray = () => {
|
|
6
|
+
return distinctUntilChanged((pre, cur) => JSON.stringify(pre) === JSON.stringify(cur));
|
|
7
|
+
};
|
|
8
|
+
export class EntityStoreManager {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.storeMap = new Map();
|
|
11
|
+
}
|
|
12
|
+
resolve(Entity) {
|
|
13
|
+
if (!this.storeMap.has(Entity)) {
|
|
14
|
+
this.storeMap.set(Entity, new EntityStore(Entity));
|
|
15
|
+
}
|
|
16
|
+
return this.storeMap.get(Entity);
|
|
17
|
+
}
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: EntityStoreManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
19
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: EntityStoreManager, providedIn: 'root' }); }
|
|
20
|
+
}
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: EntityStoreManager, decorators: [{
|
|
22
|
+
type: Injectable,
|
|
23
|
+
args: [{ providedIn: 'root' }]
|
|
24
|
+
}] });
|
|
25
|
+
// export const ENTITY_STORE = new InjectionToken<{entity: Type<Entity>, factory: () => EntityStore<Entity>}[]>('ENTITY_STORE');
|
|
26
|
+
// export function provideEntityStore<E extends Entity>(
|
|
27
|
+
// entity: Type<E>,
|
|
28
|
+
// factory: () => EntityStore<E> = () => new EntityStore<E>(entity),
|
|
29
|
+
// ) {
|
|
30
|
+
// return {
|
|
31
|
+
// provide: ENTITY_STORE,
|
|
32
|
+
// useFactory: () => ({ entity, factory }),
|
|
33
|
+
// multi: true,
|
|
34
|
+
// };
|
|
35
|
+
// }
|
|
36
|
+
export function injectEntityStore(Entity) {
|
|
37
|
+
// const stores = inject(ENTITY_STORE, {optional: true}) ?? [];
|
|
38
|
+
// const factory = stores.find(({Entity: _entity}) => _entity === Entity)?.factory;
|
|
39
|
+
// if (factory) return factory() as EntityStore<E>;
|
|
40
|
+
return inject(EntityStoreManager).resolve(Entity);
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXN0b3JlLW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3N0b3Jlcy9lbnRpdGllcy9lbnRpdHktc3RvcmUtbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRTdDLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLEdBQU0sRUFBRTtJQUMvQyxPQUFPLG9CQUFvQixDQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDNUYsQ0FBQyxDQUFDO0FBR0YsTUFBTSxPQUFPLGtCQUFrQjtJQUQvQjtRQUVZLGFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBcUMsQ0FBQztLQVFuRTtJQU5DLE9BQU8sQ0FBbUIsTUFBZTtRQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7U0FDcEQ7UUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBbUIsQ0FBQztJQUNyRCxDQUFDOzhHQVJVLGtCQUFrQjtrSEFBbEIsa0JBQWtCLGNBRE4sTUFBTTs7MkZBQ2xCLGtCQUFrQjtrQkFEOUIsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUM7O0FBWWhDLGdJQUFnSTtBQUVoSSx3REFBd0Q7QUFDeEQscUJBQXFCO0FBQ3JCLHNFQUFzRTtBQUN0RSxNQUFNO0FBQ04sYUFBYTtBQUNiLDZCQUE2QjtBQUM3QiwrQ0FBK0M7QUFDL0MsbUJBQW1CO0FBQ25CLE9BQU87QUFDUCxJQUFJO0FBRUosTUFBTSxVQUFVLGlCQUFpQixDQUFtQixNQUFlO0lBQ2pFLCtEQUErRDtJQUMvRCxtRkFBbUY7SUFDbkYsbURBQW1EO0lBQ25ELE9BQU8sTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3BELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICdAbngtZGRkL2NvbW1vbi9kb21haW4vbW9kZWxzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSAnLi90YXNrLWNvbXBvc2VyJztcbmltcG9ydCB7IEVudGl0eVN0b3JlIH0gZnJvbSAnLi9lbnRpdHktc3RvcmUnO1xuXG5leHBvcnQgY29uc3QgZGlzdGluY3RVbnRpbENoYW5nZWRBcnJheSA9IDxUPigpID0+IHtcbiAgcmV0dXJuIGRpc3RpbmN0VW50aWxDaGFuZ2VkPFQ+KChwcmUsIGN1cikgPT4gSlNPTi5zdHJpbmdpZnkocHJlKSA9PT0gSlNPTi5zdHJpbmdpZnkoY3VyKSk7XG59O1xuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBFbnRpdHlTdG9yZU1hbmFnZXIge1xuICBwcm90ZWN0ZWQgc3RvcmVNYXAgPSBuZXcgTWFwPFR5cGU8RW50aXR5PiwgRW50aXR5U3RvcmU8RW50aXR5Pj4oKTtcblxuICByZXNvbHZlPEUgZXh0ZW5kcyBFbnRpdHk+KEVudGl0eTogVHlwZTxFPik6IEVudGl0eVN0b3JlPEU+IHtcbiAgICBpZiAoIXRoaXMuc3RvcmVNYXAuaGFzKEVudGl0eSkpIHtcbiAgICAgIHRoaXMuc3RvcmVNYXAuc2V0KEVudGl0eSwgbmV3IEVudGl0eVN0b3JlKEVudGl0eSkpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zdG9yZU1hcC5nZXQoRW50aXR5KSBhcyBFbnRpdHlTdG9yZTxFPjtcbiAgfVxufVxuXG4vLyBleHBvcnQgY29uc3QgRU5USVRZX1NUT1JFID0gbmV3IEluamVjdGlvblRva2VuPHtlbnRpdHk6IFR5cGU8RW50aXR5PiwgZmFjdG9yeTogKCkgPT4gRW50aXR5U3RvcmU8RW50aXR5Pn1bXT4oJ0VOVElUWV9TVE9SRScpO1xuXG4vLyBleHBvcnQgZnVuY3Rpb24gcHJvdmlkZUVudGl0eVN0b3JlPEUgZXh0ZW5kcyBFbnRpdHk+KFxuLy8gICBlbnRpdHk6IFR5cGU8RT4sXG4vLyAgIGZhY3Rvcnk6ICgpID0+IEVudGl0eVN0b3JlPEU+ID0gKCkgPT4gbmV3IEVudGl0eVN0b3JlPEU+KGVudGl0eSksXG4vLyApIHtcbi8vICAgcmV0dXJuIHtcbi8vICAgICBwcm92aWRlOiBFTlRJVFlfU1RPUkUsXG4vLyAgICAgdXNlRmFjdG9yeTogKCkgPT4gKHsgZW50aXR5LCBmYWN0b3J5IH0pLFxuLy8gICAgIG11bHRpOiB0cnVlLFxuLy8gICB9O1xuLy8gfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0RW50aXR5U3RvcmU8RSBleHRlbmRzIEVudGl0eT4oRW50aXR5OiBUeXBlPEU+KTogRW50aXR5U3RvcmU8RT4ge1xuICAvLyBjb25zdCBzdG9yZXMgPSBpbmplY3QoRU5USVRZX1NUT1JFLCB7b3B0aW9uYWw6IHRydWV9KSA/PyBbXTtcbiAgLy8gY29uc3QgZmFjdG9yeSA9IHN0b3Jlcy5maW5kKCh7RW50aXR5OiBfZW50aXR5fSkgPT4gX2VudGl0eSA9PT0gRW50aXR5KT8uZmFjdG9yeTtcbiAgLy8gaWYgKGZhY3RvcnkpIHJldHVybiBmYWN0b3J5KCkgYXMgRW50aXR5U3RvcmU8RT47XG4gIHJldHVybiBpbmplY3QoRW50aXR5U3RvcmVNYW5hZ2VyKS5yZXNvbHZlKEVudGl0eSk7XG59XG4iXX0=
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { toSignal } from '@angular/core/rxjs-interop';
|
|
2
|
+
import { InjectionToken, Injector, inject } from '@angular/core';
|
|
3
|
+
import { ComponentStore } from '@ngrx/component-store';
|
|
4
|
+
import { createEntityAdapter } from '@ngrx/entity';
|
|
5
|
+
import { ReplaySubject, Subject, isObservable, of } from 'rxjs';
|
|
6
|
+
import { bufferTime, filter, map, shareReplay, switchMap, tap } from 'rxjs/operators';
|
|
7
|
+
import { merge } from 'lodash-es';
|
|
8
|
+
import { TaskComposerService } from './task-composer';
|
|
9
|
+
import { ProxyIdService } from './proxy-id.service';
|
|
10
|
+
export class EntityStoreAdapter {
|
|
11
|
+
list() {
|
|
12
|
+
throw new Error('not implemented');
|
|
13
|
+
}
|
|
14
|
+
create(entity) {
|
|
15
|
+
throw new Error('not implemented');
|
|
16
|
+
}
|
|
17
|
+
update(entity) {
|
|
18
|
+
throw new Error('not implemented');
|
|
19
|
+
}
|
|
20
|
+
delete(entity) {
|
|
21
|
+
throw new Error('not implemented');
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export const ENTITY_STORE_ADAPTER = new InjectionToken('ENTITY_STORE_ADAPTER');
|
|
25
|
+
export function provideEntityStoreAdapter(entity, adapterFactory) {
|
|
26
|
+
return {
|
|
27
|
+
provide: ENTITY_STORE_ADAPTER,
|
|
28
|
+
multi: true,
|
|
29
|
+
useFactory: (injector) => {
|
|
30
|
+
return { entity, adapter: adapterFactory(injector) };
|
|
31
|
+
},
|
|
32
|
+
deps: [Injector]
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
export function injectEntityStoreAdapter(entity) {
|
|
36
|
+
const adapters = inject(ENTITY_STORE_ADAPTER, { optional: true }) ?? [];
|
|
37
|
+
return adapters.find(adapter => adapter.entity === entity)?.adapter;
|
|
38
|
+
}
|
|
39
|
+
export class BaseEntityStore extends ComponentStore {
|
|
40
|
+
constructor(entity, entityAdapter = createEntityAdapter({ selectId: (entity) => entity.id, sortComparer: false })) {
|
|
41
|
+
super(entityAdapter.getInitialState());
|
|
42
|
+
this.entity = entity;
|
|
43
|
+
this.entityAdapter = entityAdapter;
|
|
44
|
+
this.refresh$ = new ReplaySubject(1);
|
|
45
|
+
this.selectors = this.entityAdapter.getSelectors();
|
|
46
|
+
this.entities$ = this.select(this.selectors.selectAll);
|
|
47
|
+
this.entities = toSignal(this.entities$);
|
|
48
|
+
this.size$ = this.select(this.selectors.selectTotal);
|
|
49
|
+
this.addOne = this.updater((state, entity) => this.entityAdapter.addOne(entity, state));
|
|
50
|
+
this.addMany = this.updater((state, entities) => this.entityAdapter.addMany(entities, state));
|
|
51
|
+
this.updateOne = this.updater((state, update) => this.entityAdapter.updateOne(update, state));
|
|
52
|
+
this.updateMany = this.updater((state, updates) => this.entityAdapter.updateMany(updates, state));
|
|
53
|
+
this.upsertOne = this.updater((state, entity) => this.entityAdapter.upsertOne(entity, state));
|
|
54
|
+
this.upsertMany = this.updater((state, entities) => this.entityAdapter.upsertMany(entities, state));
|
|
55
|
+
this.removeOne = this.updater((state, id) => this.entityAdapter.removeOne(id, state));
|
|
56
|
+
this.removeMany = this.updater((state, ids) => this.entityAdapter.removeMany(ids, state));
|
|
57
|
+
this.removeAll = this.updater((state) => this.entityAdapter.removeAll(state));
|
|
58
|
+
this.setOne = this.updater((state, entity) => this.entityAdapter.setOne(entity, state));
|
|
59
|
+
this.setAll = this.updater((state, entities) => this.entityAdapter.setAll(entities, state));
|
|
60
|
+
this.getEntities = this.effect((refresh$) => refresh$.pipe(switchMap(() => this.adapter?.list() ?? of([])), tap((entities) => this.setAll(entities))));
|
|
61
|
+
this.adapter = injectEntityStoreAdapter(entity);
|
|
62
|
+
this.getEntities(this.refresh$);
|
|
63
|
+
this.refresh();
|
|
64
|
+
}
|
|
65
|
+
refresh() {
|
|
66
|
+
this.refresh$.next();
|
|
67
|
+
}
|
|
68
|
+
mapToOne(valueOrObs) {
|
|
69
|
+
const wrap = (valueOrObs) => isObservable(valueOrObs) ? valueOrObs : of(valueOrObs);
|
|
70
|
+
return wrap(valueOrObs).pipe(switchMap(id => this.select((state) => this.selectors.selectEntities(state)[id])));
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
export class EntityStore extends BaseEntityStore {
|
|
74
|
+
constructor(entity, entityAdapter = createEntityAdapter({ selectId: (entity) => entity.id, sortComparer: false })) {
|
|
75
|
+
super(entity, entityAdapter);
|
|
76
|
+
this.entity = entity;
|
|
77
|
+
this.entityAdapter = entityAdapter;
|
|
78
|
+
this.proxyId = inject(ProxyIdService, {});
|
|
79
|
+
this.composer = inject(TaskComposerService);
|
|
80
|
+
this.taskSubject$ = new Subject();
|
|
81
|
+
this.task$ = this.taskSubject$.pipe(map(task => {
|
|
82
|
+
switch (task.type) {
|
|
83
|
+
case 'create': return merge(task, { payload: { id: this.proxyId.proxyId(task.payload.id) } });
|
|
84
|
+
default: return task;
|
|
85
|
+
}
|
|
86
|
+
}), shareReplay(1));
|
|
87
|
+
this.composedTasks$ = this.task$.pipe(bufferTime(5 * 1000), filter(tasks => tasks.length > 0), map((tasks) => this.composer.composeTasks(tasks)));
|
|
88
|
+
this.task$.subscribe((task) => this.runTask(task));
|
|
89
|
+
this.composedTasks$.subscribe(tasks => this.runComposedTasks(tasks));
|
|
90
|
+
}
|
|
91
|
+
dispatch(action) {
|
|
92
|
+
this.taskSubject$.next(action);
|
|
93
|
+
}
|
|
94
|
+
async runTask(task) {
|
|
95
|
+
switch (task.type) {
|
|
96
|
+
case 'create': return this.addOne(task.payload);
|
|
97
|
+
case 'update': return this.updateOne({ id: task.payload.id, changes: task.payload });
|
|
98
|
+
case 'delete': return this.removeOne(task.payload.id);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
async runComposedTasks(tasks) {
|
|
102
|
+
return Promise.all(tasks.map((task) => {
|
|
103
|
+
switch (task.type) {
|
|
104
|
+
case 'create': return this.adapter.create(task.payload)
|
|
105
|
+
.then((entity) => {
|
|
106
|
+
this.proxyId.update(task.payload.id, entity.id);
|
|
107
|
+
const _entity = this.state().entities[task.payload.id];
|
|
108
|
+
this.removeOne(task.payload.id);
|
|
109
|
+
this.addOne({ ..._entity, id: entity.id });
|
|
110
|
+
});
|
|
111
|
+
case 'update': return this.adapter.update({
|
|
112
|
+
...task.payload,
|
|
113
|
+
id: this.proxyId.resolve(task.payload.id),
|
|
114
|
+
});
|
|
115
|
+
case 'delete': return this.adapter.delete({
|
|
116
|
+
...task.payload,
|
|
117
|
+
id: this.proxyId.resolve(task.payload.id),
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
}))
|
|
121
|
+
.then(() => this.onSyncSucceeded())
|
|
122
|
+
.catch(() => this.onSyncFailed());
|
|
123
|
+
}
|
|
124
|
+
onSyncFailed() { }
|
|
125
|
+
onSyncSucceeded() { }
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21tb24vc3JjL2xpYi9zdG9yZXMvZW50aXRpZXMvZW50aXR5LXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBOEIsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0UsT0FBTyxFQUFjLGFBQWEsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2xDLE9BQU8sRUFBZ0IsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFcEQsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixJQUFJO1FBQ0YsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxNQUFNLENBQUUsTUFBUztRQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsTUFBTSxDQUFFLE1BQWlDO1FBQ3ZDLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lB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Z3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIEluamVjdG9yLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICdAbngtZGRkL2NvbW1vbi9kb21haW4vbW9kZWxzJztcbmltcG9ydCB7IENvbXBvbmVudFN0b3JlIH0gZnJvbSAnQG5ncngvY29tcG9uZW50LXN0b3JlJztcbmltcG9ydCB7IEVudGl0eVN0YXRlLCBFbnRpdHlBZGFwdGVyLCBjcmVhdGVFbnRpdHlBZGFwdGVyIH0gZnJvbSAnQG5ncngvZW50aXR5JztcbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIFN1YmplY3QsIGlzT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGJ1ZmZlclRpbWUsIGZpbHRlciwgbWFwLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBtZXJnZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBFbnRpdHksIFRhc2ssIFRhc2tDb21wb3NlclNlcnZpY2UgfSBmcm9tICcuL3Rhc2stY29tcG9zZXInO1xuaW1wb3J0IHsgUHJveHlJZFNlcnZpY2UgfSBmcm9tICcuL3Byb3h5LWlkLnNlcnZpY2UnO1xuXG5leHBvcnQgY2xhc3MgRW50aXR5U3RvcmVBZGFwdGVyPEUgZXh0ZW5kcyBFbnRpdHk+IHtcbiAgbGlzdD8oKTogT2JzZXJ2YWJsZTxFW10+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgY3JlYXRlPyhlbnRpdHk6IEUpOiBQcm9taXNlPEU+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgdXBkYXRlPyhlbnRpdHk6IFBhcnRpYWw8RT4gJiB7aWQ6IHN0cmluZ30pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgZGVsZXRlPyhlbnRpdHk6IFBhcnRpYWw8RT4gICYge2lkOiBzdHJpbmd9KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdub3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgRU5USVRZX1NUT1JFX0FEQVBURVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48e1xuICBlbnRpdHk6IFR5cGU8RW50aXR5PixcbiAgYWRhcHRlcjogRW50aXR5U3RvcmVBZGFwdGVyPEVudGl0eT5cbn1bXT4oJ0VOVElUWV9TVE9SRV9BREFQVEVSJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlRW50aXR5U3RvcmVBZGFwdGVyPEUgZXh0ZW5kcyBFbnRpdHk+KFxuICBlbnRpdHk6IFR5cGU8RT4sXG4gIGFkYXB0ZXJGYWN0b3J5OiAoaW5qZWN0b3I6IEluamVjdG9yKSA9PiBFbnRpdHlTdG9yZUFkYXB0ZXI8RT4sXG4pIHtcbiAgcmV0dXJuIHtcbiAgICBwcm92aWRlOiBFTlRJVFlfU1RPUkVfQURBUFRFUixcbiAgICBtdWx0aTogdHJ1ZSxcbiAgICB1c2VGYWN0b3J5OiAoaW5qZWN0b3I6IEluamVjdG9yKSA9PiB7XG4gICAgICByZXR1cm4geyBlbnRpdHksIGFkYXB0ZXI6IGFkYXB0ZXJGYWN0b3J5KGluamVjdG9yKSB9O1xuICAgIH0sXG4gICAgZGVwczogW0luamVjdG9yXVxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0RW50aXR5U3RvcmVBZGFwdGVyPEUgZXh0ZW5kcyBFbnRpdHk+KGVudGl0eTogVHlwZTxFPik6IEVudGl0eVN0b3JlQWRhcHRlcjxFPiB7XG4gIGNvbnN0IGFkYXB0ZXJzID0gaW5qZWN0KEVOVElUWV9TVE9SRV9BREFQVEVSLCB7b3B0aW9uYWw6IHRydWV9KSA/PyBbXTtcbiAgcmV0dXJuIGFkYXB0ZXJzLmZpbmQoYWRhcHRlciA9PiBhZGFwdGVyLmVudGl0eSA9PT0gZW50aXR5KT8uYWRhcHRlciBhcyBFbnRpdHlTdG9yZUFkYXB0ZXI8RT47XG59XG5cbmV4cG9ydCBjbGFzcyBCYXNlRW50aXR5U3RvcmU8RSBleHRlbmRzIEVudGl0eT4gZXh0ZW5kcyBDb21wb25lbnRTdG9yZTxFbnRpdHlTdGF0ZTxFPj4ge1xuICBwcm90ZWN0ZWQgYWRhcHRlcjogRW50aXR5U3RvcmVBZGFwdGVyPEU+O1xuXG4gIHByb3RlY3RlZCByZWFkb25seSByZWZyZXNoJCA9IG5ldyBSZXBsYXlTdWJqZWN0PHZvaWQ+KDEpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VsZWN0b3JzID0gdGhpcy5lbnRpdHlBZGFwdGVyLmdldFNlbGVjdG9ycygpO1xuICByZWFkb25seSBlbnRpdGllcyQgPSB0aGlzLnNlbGVjdCh0aGlzLnNlbGVjdG9ycy5zZWxlY3RBbGwpO1xuICByZWFkb25seSBlbnRpdGllcyA9IHRvU2lnbmFsKHRoaXMuZW50aXRpZXMkKTtcbiAgcmVhZG9ubHkgc2l6ZSQgPSB0aGlzLnNlbGVjdCh0aGlzLnNlbGVjdG9ycy5zZWxlY3RUb3RhbCk7XG4gIHJlYWRvbmx5IGFkZE9uZSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGVudGl0eTogRSkgPT4gdGhpcy5lbnRpdHlBZGFwdGVyLmFkZE9uZShlbnRpdHksIHN0YXRlKSk7XG4gIHJlYWRvbmx5IGFkZE1hbnkgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBlbnRpdGllczogRVtdKSA9PiB0aGlzLmVudGl0eUFkYXB0ZXIuYWRkTWFueShlbnRpdGllcywgc3RhdGUpKTtcbiAgcmVhZG9ubHkgdXBkYXRlT25lID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgdXBkYXRlOiB7aWQ6IHN0cmluZywgY2hhbmdlczogUGFydGlhbDxFPn0pID0+IHRoaXMuZW50aXR5QWRhcHRlci51cGRhdGVPbmUodXBkYXRlLCBzdGF0ZSkpO1xuICByZWFkb25seSB1cGRhdGVNYW55ID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgdXBkYXRlczoge2lkOiBzdHJpbmcsIGNoYW5nZXM6IFBhcnRpYWw8RT59W10pID0+IHRoaXMuZW50aXR5QWRhcHRlci51cGRhdGVNYW55KHVwZGF0ZXMsIHN0YXRlKSk7XG4gIHJlYWRvbmx5IHVwc2VydE9uZSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGVudGl0eTogRSkgPT4gdGhpcy5lbnRpdHlBZGFwdGVyLnVwc2VydE9uZShlbnRpdHksIHN0YXRlKSk7XG4gIHJlYWRvbmx5IHVwc2VydE1hbnkgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBlbnRpdGllczogRVtdKSA9PiB0aGlzLmVudGl0eUFkYXB0ZXIudXBzZXJ0TWFueShlbnRpdGllcywgc3RhdGUpKTtcbiAgcmVhZG9ubHkgcmVtb3ZlT25lID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgaWQ6IHN0cmluZykgPT4gdGhpcy5lbnRpdHlBZGFwdGVyLnJlbW92ZU9uZShpZCwgc3RhdGUpKTtcbiAgcmVhZG9ubHkgcmVtb3ZlTWFueSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGlkczogc3RyaW5nW10pID0+IHRoaXMuZW50aXR5QWRhcHRlci5yZW1vdmVNYW55KGlkcywgc3RhdGUpKTtcbiAgcmVhZG9ubHkgcmVtb3ZlQWxsID0gdGhpcy51cGRhdGVyKChzdGF0ZSkgPT4gdGhpcy5lbnRpdHlBZGFwdGVyLnJlbW92ZUFsbChzdGF0ZSkpO1xuICByZWFkb25seSBzZXRPbmUgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBlbnRpdHk6IEUpID0+IHRoaXMuZW50aXR5QWRhcHRlci5zZXRPbmUoZW50aXR5LCBzdGF0ZSkpO1xuICByZWFkb25seSBzZXRBbGwgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBlbnRpdGllczogRVtdKSA9PiB0aGlzLmVudGl0eUFkYXB0ZXIuc2V0QWxsKGVudGl0aWVzLCBzdGF0ZSkpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBlbnRpdHk6IFR5cGU8RT4sXG4gICAgcHJvdGVjdGVkIGVudGl0eUFkYXB0ZXI6IEVudGl0eUFkYXB0ZXI8RT4gPSBjcmVhdGVFbnRpdHlBZGFwdGVyPEU+KHtzZWxlY3RJZDogKGVudGl0eSkgPT4gZW50aXR5LmlkLCBzb3J0Q29tcGFyZXI6IGZhbHNlfSksXG4gICkge1xuICAgIHN1cGVyKGVudGl0eUFkYXB0ZXIuZ2V0SW5pdGlhbFN0YXRlKCkpO1xuICAgIHRoaXMuYWRhcHRlciA9IGluamVjdEVudGl0eVN0b3JlQWRhcHRlcihlbnRpdHkpO1xuICAgIHRoaXMuZ2V0RW50aXRpZXModGhpcy5yZWZyZXNoJCk7XG4gICAgdGhpcy5yZWZyZXNoKCk7XG4gIH1cblxuICBnZXRFbnRpdGllcyA9IHRoaXMuZWZmZWN0KChyZWZyZXNoJDogT2JzZXJ2YWJsZTx2b2lkPikgPT4gcmVmcmVzaCQucGlwZShcbiAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5hZGFwdGVyPy5saXN0KCkgPz8gb2YoW10pKSxcbiAgICB0YXAoKGVudGl0aWVzOiBFW10pID0+IHRoaXMuc2V0QWxsKGVudGl0aWVzKSksXG4gICkpO1xuXG4gIHJlZnJlc2goKSB7XG4gICAgdGhpcy5yZWZyZXNoJC5uZXh0KCk7XG4gIH1cblxuICBtYXBUb09uZSh2YWx1ZU9yT2JzOiBzdHJpbmcgfCBPYnNlcnZhYmxlPHN0cmluZz4pOiBPYnNlcnZhYmxlPEU+IHtcbiAgICBjb25zdCB3cmFwID0gKHZhbHVlT3JPYnM6IHN0cmluZyB8IE9ic2VydmFibGU8c3RyaW5nPikgPT4gaXNPYnNlcnZhYmxlKHZhbHVlT3JPYnMpID8gdmFsdWVPck9icyA6IG9mKHZhbHVlT3JPYnMpO1xuICAgIHJldHVybiB3cmFwKHZhbHVlT3JPYnMpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoaWQgPT4gdGhpcy5zZWxlY3QoKHN0YXRlKSA9PiB0aGlzLnNlbGVjdG9ycy5zZWxlY3RFbnRpdGllcyhzdGF0ZSlbaWRdKSksXG4gICAgKTtcbiAgfVxuXG59XG5cbmV4cG9ydCBjbGFzcyBFbnRpdHlTdG9yZTxFIGV4dGVuZHMgRW50aXR5PiBleHRlbmRzIEJhc2VFbnRpdHlTdG9yZTxFPiB7XG4gIHByb3RlY3RlZCBwcm94eUlkID0gaW5qZWN0KFByb3h5SWRTZXJ2aWNlLCB7fSk7XG4gIHByb3RlY3RlZCBjb21wb3NlciA9IGluamVjdChUYXNrQ29tcG9zZXJTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIHRhc2tTdWJqZWN0JCA9IG5ldyBTdWJqZWN0PFRhc2s8RT4+KCk7XG4gIHByb3RlY3RlZCB0YXNrJDogT2JzZXJ2YWJsZTxUYXNrPEU+PiA9IHRoaXMudGFza1N1YmplY3QkLnBpcGUoXG4gICAgbWFwKHRhc2sgPT4ge1xuICAgICAgc3dpdGNoKHRhc2sudHlwZSkge1xuICAgICAgICBjYXNlICdjcmVhdGUnOiByZXR1cm4gbWVyZ2UodGFzaywge3BheWxvYWQ6IHtpZDogdGhpcy5wcm94eUlkLnByb3h5SWQodGFzay5wYXlsb2FkLmlkKX19KTtcbiAgICAgICAgZGVmYXVsdDogcmV0dXJuIHRhc2s7XG4gICAgICB9XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSksXG4gICk7XG4gIHByb3RlY3RlZCBjb21wb3NlZFRhc2tzJCA9IHRoaXMudGFzayQucGlwZShcbiAgICBidWZmZXJUaW1lKDUgKiAxMDAwKSxcbiAgICBmaWx0ZXIodGFza3MgPT4gdGFza3MubGVuZ3RoID4gMCksXG4gICAgbWFwKCh0YXNrcykgPT4gdGhpcy5jb21wb3Nlci5jb21wb3NlVGFza3ModGFza3MpKSxcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgZW50aXR5OiBUeXBlPEU+LFxuICAgIHByb3RlY3RlZCBlbnRpdHlBZGFwdGVyOiBFbnRpdHlBZGFwdGVyPEU+ID0gY3JlYXRlRW50aXR5QWRhcHRlcjxFPih7c2VsZWN0SWQ6IChlbnRpdHkpID0+IGVudGl0eS5pZCwgc29ydENvbXBhcmVyOiBmYWxzZX0pLFxuICApIHtcbiAgICBzdXBlcihlbnRpdHksIGVudGl0eUFkYXB0ZXIpO1xuICAgIHRoaXMudGFzayQuc3Vic2NyaWJlKCh0YXNrOiBUYXNrPEU+KSA9PiB0aGlzLnJ1blRhc2sodGFzaykpO1xuICAgIHRoaXMuY29tcG9zZWRUYXNrcyQuc3Vic2NyaWJlKHRhc2tzID0+IHRoaXMucnVuQ29tcG9zZWRUYXNrcyh0YXNrcykpO1xuICB9XG5cbiAgZGlzcGF0Y2goYWN0aW9uOiBUYXNrPEU+KSB7XG4gICAgdGhpcy50YXNrU3ViamVjdCQubmV4dChhY3Rpb24pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHJ1blRhc2sodGFzazogVGFzazxFPik6IFByb21pc2U8YW55PiB7XG4gICAgc3dpdGNoKHRhc2sudHlwZSkge1xuICAgICAgY2FzZSAnY3JlYXRlJzogcmV0dXJuIHRoaXMuYWRkT25lKHRhc2sucGF5bG9hZCk7XG4gICAgICBjYXNlICd1cGRhdGUnOiByZXR1cm4gdGhpcy51cGRhdGVPbmUoe2lkOiB0YXNrLnBheWxvYWQuaWQsIGNoYW5nZXM6IHRhc2sucGF5bG9hZH0pO1xuICAgICAgY2FzZSAnZGVsZXRlJzogcmV0dXJuIHRoaXMucmVtb3ZlT25lKHRhc2sucGF5bG9hZC5pZCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHJ1bkNvbXBvc2VkVGFza3ModGFza3M6IFRhc2s8RT5bXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBQcm9taXNlLmFsbCh0YXNrcy5tYXAoKHRhc2spID0+IHtcbiAgICAgIHN3aXRjaCh0YXNrLnR5cGUpIHtcbiAgICAgICAgY2FzZSAnY3JlYXRlJzogcmV0dXJuIHRoaXMuYWRhcHRlci5jcmVhdGUodGFzay5wYXlsb2FkKVxuICAgICAgICAgIC50aGVuKChlbnRpdHkpID0+IHtcbiAgICAgICAgICAgIHRoaXMucHJveHlJZC51cGRhdGUodGFzay5wYXlsb2FkLmlkLCBlbnRpdHkuaWQpO1xuICAgICAgICAgICAgY29uc3QgX2VudGl0eSA9IHRoaXMuc3RhdGUoKS5lbnRpdGllc1t0YXNrLnBheWxvYWQuaWRdO1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVPbmUodGFzay5wYXlsb2FkLmlkKTtcbiAgICAgICAgICAgIHRoaXMuYWRkT25lKHsuLi5fZW50aXR5LCBpZDogZW50aXR5LmlkfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIGNhc2UgJ3VwZGF0ZSc6IHJldHVybiB0aGlzLmFkYXB0ZXIudXBkYXRlKHtcbiAgICAgICAgICAuLi50YXNrLnBheWxvYWQsXG4gICAgICAgICAgaWQ6IHRoaXMucHJveHlJZC5yZXNvbHZlKHRhc2sucGF5bG9hZC5pZCksXG4gICAgICAgIH0pO1xuICAgICAgICBjYXNlICdkZWxldGUnOiByZXR1cm4gdGhpcy5hZGFwdGVyLmRlbGV0ZSh7XG4gICAgICAgICAgLi4udGFzay5wYXlsb2FkLFxuICAgICAgICAgIGlkOiB0aGlzLnByb3h5SWQucmVzb2x2ZSh0YXNrLnBheWxvYWQuaWQpLFxuICAgICAgICB9IGFzIGFueSk7XG4gICAgICB9XG4gICAgfSkpXG4gICAgLnRoZW4oKCkgPT4gdGhpcy5vblN5bmNTdWNjZWVkZWQoKSlcbiAgICAuY2F0Y2goKCkgPT4gdGhpcy5vblN5bmNGYWlsZWQoKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25TeW5jRmFpbGVkKCkgeyB9XG4gIHByb3RlY3RlZCBvblN5bmNTdWNjZWVkZWQoKSB7IH1cbn1cbiJdfQ==
|
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
export * from './
|
|
2
|
-
|
|
1
|
+
export * from './di';
|
|
2
|
+
export * from './entity-store-manager';
|
|
3
|
+
export * from './entity-store';
|
|
4
|
+
export * from './proxy-id.service';
|
|
5
|
+
export * from './task-composer';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3N0b3Jlcy9lbnRpdGllcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLE1BQU0sQ0FBQztBQUNyQixjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kaSc7XG5leHBvcnQgKiBmcm9tICcuL2VudGl0eS1zdG9yZS1tYW5hZ2VyJztcbmV4cG9ydCAqIGZyb20gJy4vZW50aXR5LXN0b3JlJztcbmV4cG9ydCAqIGZyb20gJy4vcHJveHktaWQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3Rhc2stY29tcG9zZXInO1xuIl19
|