@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
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { isPlatformBrowser, isPlatformServer } from '@angular/common';
|
|
2
|
+
import { Directive, ENVIRONMENT_INITIALIZER, ElementRef, Injectable, PLATFORM_ID, effect, inject } from '@angular/core';
|
|
3
|
+
import { toObservable } from '@angular/core/rxjs-interop';
|
|
4
|
+
import { makeConfig } from '@ng-atomic/common/services/ui';
|
|
5
|
+
import { delay, filter, map, of } from 'rxjs';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class RootPropertyService {
|
|
8
|
+
static { this.Config = makeConfig(() => {
|
|
9
|
+
return (_, context) => {
|
|
10
|
+
switch (context.breakpoint) {
|
|
11
|
+
case 'xSmall': return {
|
|
12
|
+
'--primary-color': '#404040',
|
|
13
|
+
'--on-primary-color': '#f0f0f0',
|
|
14
|
+
'--surface-color': '#fff',
|
|
15
|
+
'--on-surface-color': '#404040',
|
|
16
|
+
'--background-color': '#fff',
|
|
17
|
+
'--menu-width': '220px',
|
|
18
|
+
'--page-width-lv1': '100vw',
|
|
19
|
+
'--page-width-lv2': '100vw',
|
|
20
|
+
'--page-width-lv3': '100vw',
|
|
21
|
+
'--page-width-lv4': '100vw',
|
|
22
|
+
'--page-height-lv1': '100vh',
|
|
23
|
+
};
|
|
24
|
+
case 'small':
|
|
25
|
+
case 'medium': return {
|
|
26
|
+
'--primary-color': '#404040',
|
|
27
|
+
'--on-primary-color': '#f0f0f0',
|
|
28
|
+
'--surface-color': '#fff',
|
|
29
|
+
'--on-surface-color': '#404040',
|
|
30
|
+
'--background-color': '#fff',
|
|
31
|
+
'--menu-width': '64px',
|
|
32
|
+
'--page-width-lv1': '360px',
|
|
33
|
+
'--page-width-lv2': 'max(calc(min(100vw, 1600px) - 360px - 64px), 360px)',
|
|
34
|
+
'--page-width-lv3': 'max(calc(min(100vw, 1600px) - 64px), 360px)',
|
|
35
|
+
'--page-width-lv4': '100vw',
|
|
36
|
+
'--page-height-lv1': '100vh',
|
|
37
|
+
};
|
|
38
|
+
case 'large':
|
|
39
|
+
case 'xLarge': return {
|
|
40
|
+
'--primary-color': '#404040',
|
|
41
|
+
'--on-primary-color': '#f0f0f0',
|
|
42
|
+
'--surface-color': '#fff',
|
|
43
|
+
'--on-surface-color': '#404040',
|
|
44
|
+
'--background-color': '#fff',
|
|
45
|
+
'--menu-width': '220px',
|
|
46
|
+
'--page-width-lv1': '360px',
|
|
47
|
+
'--page-width-lv2': 'max(calc(min(100vw, 1600px) - 360px - 220px), 360px)',
|
|
48
|
+
'--page-width-lv3': 'max(calc(min(100vw, 1600px) - 220px), 360px)',
|
|
49
|
+
'--page-width-lv4': '100vw',
|
|
50
|
+
'--page-height-lv1': '100vh',
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
}, ['root', 'properties']); }
|
|
55
|
+
constructor() {
|
|
56
|
+
this.config = RootPropertyService.Config.inject();
|
|
57
|
+
this.platformId = inject(PLATFORM_ID);
|
|
58
|
+
effect(() => {
|
|
59
|
+
if (isPlatformBrowser(this.platformId)) {
|
|
60
|
+
for (const [key, value] of Object.entries(this.config?.() ?? {})) {
|
|
61
|
+
document.documentElement.style.setProperty(key, value);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: RootPropertyService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
67
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: RootPropertyService, providedIn: 'root' }); }
|
|
68
|
+
}
|
|
69
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: RootPropertyService, decorators: [{
|
|
70
|
+
type: Injectable,
|
|
71
|
+
args: [{ providedIn: 'root' }]
|
|
72
|
+
}], ctorParameters: () => [] });
|
|
73
|
+
export function provideRootProperty(resolverFactoryFactory) {
|
|
74
|
+
return [
|
|
75
|
+
{
|
|
76
|
+
provide: ENVIRONMENT_INITIALIZER,
|
|
77
|
+
useFactory: () => {
|
|
78
|
+
return () => inject(RootPropertyService);
|
|
79
|
+
},
|
|
80
|
+
multi: true,
|
|
81
|
+
},
|
|
82
|
+
RootPropertyService.Config.provide(resolverFactoryFactory),
|
|
83
|
+
];
|
|
84
|
+
}
|
|
85
|
+
export class NgAtomicStyleDirective {
|
|
86
|
+
#el;
|
|
87
|
+
constructor(rootPropertyService) {
|
|
88
|
+
this.rootPropertyService = rootPropertyService;
|
|
89
|
+
this.#el = inject(ElementRef);
|
|
90
|
+
this.platformId = inject(PLATFORM_ID);
|
|
91
|
+
effect(() => {
|
|
92
|
+
for (const [key, value] of Object.entries(this.rootPropertyService.config?.() ?? {})) {
|
|
93
|
+
this.#el.nativeElement.style.setProperty(key, value);
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NgAtomicStyleDirective, deps: [{ token: RootPropertyService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
98
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: NgAtomicStyleDirective, isStandalone: true, selector: "[atomicStyle]", ngImport: i0 }); }
|
|
99
|
+
}
|
|
100
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NgAtomicStyleDirective, decorators: [{
|
|
101
|
+
type: Directive,
|
|
102
|
+
args: [{ standalone: true, selector: '[atomicStyle]' }]
|
|
103
|
+
}], ctorParameters: () => [{ type: RootPropertyService }] });
|
|
104
|
+
export class RootPropertyGuard {
|
|
105
|
+
constructor() {
|
|
106
|
+
this.properties = RootPropertyService.Config.inject();
|
|
107
|
+
this.properties$ = toObservable(this.properties);
|
|
108
|
+
this.platformId = inject(PLATFORM_ID);
|
|
109
|
+
}
|
|
110
|
+
canActivate() {
|
|
111
|
+
if (isPlatformServer(this.platformId))
|
|
112
|
+
return of(null);
|
|
113
|
+
return this.properties$.pipe(filter(properties => properties['--background-color'] === '#f0f0f0'), delay(500), map(() => true));
|
|
114
|
+
}
|
|
115
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: RootPropertyGuard, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
116
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: RootPropertyGuard, providedIn: 'root' }); }
|
|
117
|
+
}
|
|
118
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: RootPropertyGuard, decorators: [{
|
|
119
|
+
type: Injectable,
|
|
120
|
+
args: [{ providedIn: 'root' }]
|
|
121
|
+
}] });
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC1wcm9wZXJ0eS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9yb290LXByb3BlcnR5L3Jvb3QtcHJvcGVydHkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFZLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEksT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEVBQWMsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUcxRCxNQUFNLE9BQU8sbUJBQW1CO2FBQ2QsV0FBTSxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDdkMsT0FBTyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUNwQixRQUFRLE9BQU8sQ0FBQyxVQUFVLEVBQUU7Z0JBQzFCLEtBQUssUUFBUSxDQUFDLENBQUMsT0FBTztvQkFDcEIsaUJBQWlCLEVBQUUsU0FBUztvQkFDNUIsb0JBQW9CLEVBQUUsU0FBUztvQkFDL0IsaUJBQWlCLEVBQUUsTUFBTTtvQkFDekIsb0JBQW9CLEVBQUUsU0FBUztvQkFDL0Isb0JBQW9CLEVBQUUsTUFBTTtvQkFDNUIsY0FBYyxFQUFFLE9BQU87b0JBQ3ZCLGtCQUFrQixFQUFFLE9BQU87b0JBQzNCLGtCQUFrQixFQUFFLE9BQU87b0JBQzNCLGtCQUFrQixFQUFFLE9BQU87b0JBQzNCLGtCQUFrQixFQUFFLE9BQU87b0JBQzNCLG1CQUFtQixFQUFFLE9BQU87aUJBQzdCLENBQUM7Z0JBQ0YsS0FBSyxPQUFPLENBQUM7Z0JBQ2IsS0FBSyxRQUFRLENBQUMsQ0FBQyxPQUFPO29CQUNwQixpQkFBaUIsRUFBRSxTQUFTO29CQUM1QixvQkFBb0IsRUFBRSxTQUFTO29CQUMvQixpQkFBaUIsRUFBRSxNQUFNO29CQUN6QixvQkFBb0IsRUFBRSxTQUFTO29CQUMvQixvQkFBb0IsRUFBRSxNQUFNO29CQUM1QixjQUFjLEVBQUUsTUFBTTtvQkFDdEIsa0JBQWtCLEVBQUUsT0FBTztvQkFDM0Isa0JBQWtCLEVBQUUscURBQXFEO29CQUN6RSxrQkFBa0IsRUFBRSw2Q0FBNkM7b0JBQ2pFLGtCQUFrQixFQUFFLE9BQU87b0JBQzNCLG1CQUFtQixFQUFFLE9BQU87aUJBQzdCLENBQUM7Z0JBQ0YsS0FBSyxPQUFPLENBQUM7Z0JBQ2IsS0FBSyxRQUFRLENBQUMsQ0FBQyxPQUFPO29CQUNwQixpQkFBaUIsRUFBRSxTQUFTO29CQUM1QixvQkFBb0IsRUFBRSxTQUFTO29CQUMvQixpQkFBaUIsRUFBRSxNQUFNO29CQUN6QixvQkFBb0IsRUFBRSxTQUFTO29CQUMvQixvQkFBb0IsRUFBRSxNQUFNO29CQUM1QixjQUFjLEVBQUUsT0FBTztvQkFDdkIsa0JBQWtCLEVBQUUsT0FBTztvQkFDM0Isa0JBQWtCLEVBQUUsc0RBQXNEO29CQUMxRSxrQkFBa0IsRUFBRSw4Q0FBOEM7b0JBQ2xFLGtCQUFrQixFQUFFLE9BQU87b0JBQzNCLG1CQUFtQixFQUFFLE9BQU87aUJBQzdCLENBQUM7YUFDSDtRQUNILENBQUMsQ0FBQztJQUNKLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQyxBQTlDSixDQThDSztJQUszQjtRQUpTLFdBQU0sR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFN0MsZUFBVSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUd4QyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ3RDLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFO29CQUNoRSxRQUFRLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO2lCQUN4RDthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQTVEVSxtQkFBbUI7a0hBQW5CLG1CQUFtQixjQUROLE1BQU07OzJGQUNuQixtQkFBbUI7a0JBRC9CLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOztBQWdFbEMsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxzQkFBaUY7SUFFakYsT0FBTztRQUNMO1lBQ0UsT0FBTyxFQUFFLHVCQUF1QjtZQUNoQyxVQUFVLEVBQUUsR0FBRyxFQUFFO2dCQUNmLE9BQU8sR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDM0MsQ0FBQztZQUNELEtBQUssRUFBRSxJQUFJO1NBQ1o7UUFDRCxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDO0tBQzNELENBQUE7QUFDSCxDQUFDO0FBR0QsTUFBTSxPQUFPLHNCQUFzQjtJQUN4QixHQUFHLENBQXNCO0lBR2xDLFlBQW9CLG1CQUF3QztRQUF4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBSG5ELFFBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUd4QyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUU7Z0JBQ3BGLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQ3REO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQVZVLHNCQUFzQjtrR0FBdEIsc0JBQXNCOzsyRkFBdEIsc0JBQXNCO2tCQURsQyxTQUFTO21CQUFDLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFOztBQWdCMUQsTUFBTSxPQUFPLGlCQUFpQjtJQUQ5QjtRQUVVLGVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDakQsZ0JBQVcsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVDLGVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7S0FVMUM7SUFSQSxXQUFXO1FBQ1YsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQUUsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FDM0IsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLEtBQU0sU0FBUyxDQUFDLEVBQ3JFLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFDVixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQ2YsQ0FBQztJQUNILENBQUM7OEdBWlcsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FETCxNQUFNOzsyRkFDbEIsaUJBQWlCO2tCQUQ3QixVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyLCBpc1BsYXRmb3JtU2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgRU5WSVJPTk1FTlRfSU5JVElBTElaRVIsIEVsZW1lbnRSZWYsIEluamVjdGFibGUsIFBMQVRGT1JNX0lELCBQcm92aWRlciwgZWZmZWN0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IG1ha2VDb25maWcgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9zZXJ2aWNlcy91aSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBkZWxheSwgZmlsdGVyLCBtYXAsIG9mIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgUm9vdFByb3BlcnR5U2VydmljZSB7XG4gIHN0YXRpYyByZWFkb25seSBDb25maWcgPSBtYWtlQ29uZmlnKCgpID0+IHtcbiAgICByZXR1cm4gKF8sIGNvbnRleHQpID0+IHtcbiAgICAgIHN3aXRjaCAoY29udGV4dC5icmVha3BvaW50KSB7XG4gICAgICAgIGNhc2UgJ3hTbWFsbCc6IHJldHVybiB7XG4gICAgICAgICAgJy0tcHJpbWFyeS1jb2xvcic6ICcjNDA0MDQwJyxcbiAgICAgICAgICAnLS1vbi1wcmltYXJ5LWNvbG9yJzogJyNmMGYwZjAnLFxuICAgICAgICAgICctLXN1cmZhY2UtY29sb3InOiAnI2ZmZicsXG4gICAgICAgICAgJy0tb24tc3VyZmFjZS1jb2xvcic6ICcjNDA0MDQwJyxcbiAgICAgICAgICAnLS1iYWNrZ3JvdW5kLWNvbG9yJzogJyNmZmYnLFxuICAgICAgICAgICctLW1lbnUtd2lkdGgnOiAnMjIwcHgnLFxuICAgICAgICAgICctLXBhZ2Utd2lkdGgtbHYxJzogJzEwMHZ3JyxcbiAgICAgICAgICAnLS1wYWdlLXdpZHRoLWx2Mic6ICcxMDB2dycsXG4gICAgICAgICAgJy0tcGFnZS13aWR0aC1sdjMnOiAnMTAwdncnLFxuICAgICAgICAgICctLXBhZ2Utd2lkdGgtbHY0JzogJzEwMHZ3JyxcbiAgICAgICAgICAnLS1wYWdlLWhlaWdodC1sdjEnOiAnMTAwdmgnLFxuICAgICAgICB9O1xuICAgICAgICBjYXNlICdzbWFsbCc6XG4gICAgICAgIGNhc2UgJ21lZGl1bSc6IHJldHVybiB7XG4gICAgICAgICAgJy0tcHJpbWFyeS1jb2xvcic6ICcjNDA0MDQwJyxcbiAgICAgICAgICAnLS1vbi1wcmltYXJ5LWNvbG9yJzogJyNmMGYwZjAnLFxuICAgICAgICAgICctLXN1cmZhY2UtY29sb3InOiAnI2ZmZicsXG4gICAgICAgICAgJy0tb24tc3VyZmFjZS1jb2xvcic6ICcjNDA0MDQwJyxcbiAgICAgICAgICAnLS1iYWNrZ3JvdW5kLWNvbG9yJzogJyNmZmYnLFxuICAgICAgICAgICctLW1lbnUtd2lkdGgnOiAnNjRweCcsXG4gICAgICAgICAgJy0tcGFnZS13aWR0aC1sdjEnOiAnMzYwcHgnLFxuICAgICAgICAgICctLXBhZ2Utd2lkdGgtbHYyJzogJ21heChjYWxjKG1pbigxMDB2dywgMTYwMHB4KSAtIDM2MHB4IC0gNjRweCksIDM2MHB4KScsXG4gICAgICAgICAgJy0tcGFnZS13aWR0aC1sdjMnOiAnbWF4KGNhbGMobWluKDEwMHZ3LCAxNjAwcHgpIC0gNjRweCksIDM2MHB4KScsXG4gICAgICAgICAgJy0tcGFnZS13aWR0aC1sdjQnOiAnMTAwdncnLFxuICAgICAgICAgICctLXBhZ2UtaGVpZ2h0LWx2MSc6ICcxMDB2aCcsXG4gICAgICAgIH07XG4gICAgICAgIGNhc2UgJ2xhcmdlJzpcbiAgICAgICAgY2FzZSAneExhcmdlJzogcmV0dXJuIHtcbiAgICAgICAgICAnLS1wcmltYXJ5LWNvbG9yJzogJyM0MDQwNDAnLFxuICAgICAgICAgICctLW9uLXByaW1hcnktY29sb3InOiAnI2YwZjBmMCcsXG4gICAgICAgICAgJy0tc3VyZmFjZS1jb2xvcic6ICcjZmZmJyxcbiAgICAgICAgICAnLS1vbi1zdXJmYWNlLWNvbG9yJzogJyM0MDQwNDAnLFxuICAgICAgICAgICctLWJhY2tncm91bmQtY29sb3InOiAnI2ZmZicsXG4gICAgICAgICAgJy0tbWVudS13aWR0aCc6ICcyMjBweCcsXG4gICAgICAgICAgJy0tcGFnZS13aWR0aC1sdjEnOiAnMzYwcHgnLFxuICAgICAgICAgICctLXBhZ2Utd2lkdGgtbHYyJzogJ21heChjYWxjKG1pbigxMDB2dywgMTYwMHB4KSAtIDM2MHB4IC0gMjIwcHgpLCAzNjBweCknLFxuICAgICAgICAgICctLXBhZ2Utd2lkdGgtbHYzJzogJ21heChjYWxjKG1pbigxMDB2dywgMTYwMHB4KSAtIDIyMHB4KSwgMzYwcHgpJyxcbiAgICAgICAgICAnLS1wYWdlLXdpZHRoLWx2NCc6ICcxMDB2dycsXG4gICAgICAgICAgJy0tcGFnZS1oZWlnaHQtbHYxJzogJzEwMHZoJyxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbJ3Jvb3QnLCAncHJvcGVydGllcyddKTtcbiAgcmVhZG9ubHkgY29uZmlnID0gUm9vdFByb3BlcnR5U2VydmljZS5Db25maWcuaW5qZWN0KCk7XG5cbiAgcmVhZG9ubHkgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMuY29uZmlnPy4oKSA/PyB7fSkpIHtcbiAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoa2V5LCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVJvb3RQcm9wZXJ0eShcbiAgcmVzb2x2ZXJGYWN0b3J5RmFjdG9yeT86IFBhcmFtZXRlcnM8dHlwZW9mIFJvb3RQcm9wZXJ0eVNlcnZpY2UuQ29uZmlnLnByb3ZpZGU+WzBdLFxuKTogUHJvdmlkZXJbXSB7XG4gIHJldHVybiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogRU5WSVJPTk1FTlRfSU5JVElBTElaRVIsXG4gICAgICB1c2VGYWN0b3J5OiAoKSA9PiB7XG4gICAgICAgIHJldHVybiAoKSA9PiBpbmplY3QoUm9vdFByb3BlcnR5U2VydmljZSk7XG4gICAgICB9LFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICBSb290UHJvcGVydHlTZXJ2aWNlLkNvbmZpZy5wcm92aWRlKHJlc29sdmVyRmFjdG9yeUZhY3RvcnkpLFxuICBdXG59XG5cbkBEaXJlY3RpdmUoeyBzdGFuZGFsb25lOiB0cnVlLCBzZWxlY3RvcjogJ1thdG9taWNTdHlsZV0nIH0pXG5leHBvcnQgY2xhc3MgTmdBdG9taWNTdHlsZURpcmVjdGl2ZSB7XG4gIHJlYWRvbmx5ICNlbCA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcmVhZG9ubHkgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb290UHJvcGVydHlTZXJ2aWNlOiBSb290UHJvcGVydHlTZXJ2aWNlKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMucm9vdFByb3BlcnR5U2VydmljZS5jb25maWc/LigpID8/IHt9KSkge1xuICAgICAgICB0aGlzLiNlbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KGtleSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG5cblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgUm9vdFByb3BlcnR5R3VhcmQge1xuXHRyZWFkb25seSBwcm9wZXJ0aWVzID0gUm9vdFByb3BlcnR5U2VydmljZS5Db25maWcuaW5qZWN0KCk7XG5cdHJlYWRvbmx5IHByb3BlcnRpZXMkID0gdG9PYnNlcnZhYmxlKHRoaXMucHJvcGVydGllcyk7XG5cdHJlYWRvbmx5IHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuXG5cdGNhbkFjdGl2YXRlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuXHRcdGlmIChpc1BsYXRmb3JtU2VydmVyKHRoaXMucGxhdGZvcm1JZCkpIHJldHVybiBvZihudWxsKTtcdFxuXHRcdHJldHVybiB0aGlzLnByb3BlcnRpZXMkLnBpcGUoXG5cdFx0XHRmaWx0ZXIocHJvcGVydGllcyA9PiBwcm9wZXJ0aWVzWyctLWJhY2tncm91bmQtY29sb3InXSAgPT09ICcjZjBmMGYwJyksXG5cdFx0XHRkZWxheSg1MDApLFxuXHRcdFx0bWFwKCgpID0+IHRydWUpLFxuXHRcdCk7XG5cdH1cbn0iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './router.service';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3NlcnZpY2VzL3JvdXRlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yb3V0ZXIuc2VydmljZSc7XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbW1vbi1zZXJ2aWNlcy1yb3V0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3NlcnZpY2VzL3JvdXRlci9uZy1hdG9taWMtY29tbW9uLXNlcnZpY2VzLXJvdXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Injectable, inject } from '@angular/core';
|
|
2
|
+
import { Router } from '@angular/router';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export function walkActivatedRoute(route, callback) {
|
|
5
|
+
if (!callback(route))
|
|
6
|
+
return;
|
|
7
|
+
route.children.forEach(child => walkActivatedRoute(child, callback));
|
|
8
|
+
}
|
|
9
|
+
export class RouterService extends Router {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
this.router = inject(Router);
|
|
13
|
+
this.events$ = this.router.events;
|
|
14
|
+
}
|
|
15
|
+
back() {
|
|
16
|
+
history.back();
|
|
17
|
+
}
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: RouterService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
19
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: RouterService, providedIn: 'root' }); }
|
|
20
|
+
}
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: RouterService, decorators: [{
|
|
22
|
+
type: Injectable,
|
|
23
|
+
args: [{ providedIn: 'root' }]
|
|
24
|
+
}] });
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3NlcnZpY2VzL3JvdXRlci9yb3V0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWtCLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUV6RCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsS0FBcUIsRUFBRSxRQUE0QztJQUNwRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUFFLE9BQU87SUFDN0IsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztBQUN2RSxDQUFDO0FBR0QsTUFBTSxPQUFPLGFBQWMsU0FBUSxNQUFNO0lBRHpDOztRQUVXLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEIsWUFBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO0tBS3ZDO0lBSEMsSUFBSTtRQUNGLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUNoQixDQUFDOzhHQU5VLGFBQWE7a0hBQWIsYUFBYSxjQURELE1BQU07OzJGQUNsQixhQUFhO2tCQUR6QixVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmV4cG9ydCBmdW5jdGlvbiB3YWxrQWN0aXZhdGVkUm91dGUocm91dGU6IEFjdGl2YXRlZFJvdXRlLCBjYWxsYmFjazogKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSkgPT4gYm9vbGVhbik6IHZvaWQge1xuICBpZiAoIWNhbGxiYWNrKHJvdXRlKSkgcmV0dXJuO1xuICByb3V0ZS5jaGlsZHJlbi5mb3JFYWNoKGNoaWxkID0+IHdhbGtBY3RpdmF0ZWRSb3V0ZShjaGlsZCwgY2FsbGJhY2spKTtcbn1cblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgUm91dGVyU2VydmljZSBleHRlbmRzIFJvdXRlciB7XG4gIHJlYWRvbmx5IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICByZWFkb25seSBldmVudHMkID0gdGhpcy5yb3V0ZXIuZXZlbnRzO1xuXG4gIGJhY2soKTogdm9pZCB7XG4gICAgaGlzdG9yeS5iYWNrKClcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './secret.service';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3NlcnZpY2VzL3NlY3JldC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zZWNyZXQuc2VydmljZSc7XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbW1vbi1zZXJ2aWNlcy1zZWNyZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3NlcnZpY2VzL3NlY3JldC9uZy1hdG9taWMtY29tbW9uLXNlcnZpY2VzLXNlY3JldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Injectable, signal } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class SecretService {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.isSecret = signal(false);
|
|
6
|
+
}
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: SecretService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
8
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: SecretService, providedIn: 'root' }); }
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: SecretService, decorators: [{
|
|
11
|
+
type: Injectable,
|
|
12
|
+
args: [{
|
|
13
|
+
providedIn: 'root'
|
|
14
|
+
}]
|
|
15
|
+
}] });
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjcmV0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3NlcnZpY2VzL3NlY3JldC9zZWNyZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLbkQsTUFBTSxPQUFPLGFBQWE7SUFIMUI7UUFJVyxhQUFRLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ25DOzhHQUZZLGFBQWE7a0hBQWIsYUFBYSxjQUZaLE1BQU07OzJGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFNlY3JldFNlcnZpY2Uge1xuICByZWFkb25seSBpc1NlY3JldCA9IHNpZ25hbChmYWxzZSk7XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './side-app.service';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3NlcnZpY2VzL3NpZGUtYXBwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NpZGUtYXBwLnNlcnZpY2UnO1xuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbW1vbi1zZXJ2aWNlcy1zaWRlLWFwcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29tbW9uL3NyYy9saWIvc2VydmljZXMvc2lkZS1hcHAvbmctYXRvbWljLWNvbW1vbi1zZXJ2aWNlcy1zaWRlLWFwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Injectable, signal } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class SideAppService {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.opened = signal(false);
|
|
6
|
+
}
|
|
7
|
+
toggle() {
|
|
8
|
+
this.opened.set(!this.opened());
|
|
9
|
+
}
|
|
10
|
+
collapse() {
|
|
11
|
+
this.opened.set(false);
|
|
12
|
+
}
|
|
13
|
+
expand() {
|
|
14
|
+
this.opened.set(true);
|
|
15
|
+
}
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: SideAppService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
17
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: SideAppService, providedIn: 'root' }); }
|
|
18
|
+
}
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: SideAppService, decorators: [{
|
|
20
|
+
type: Injectable,
|
|
21
|
+
args: [{
|
|
22
|
+
providedIn: 'root'
|
|
23
|
+
}]
|
|
24
|
+
}] });
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1hcHAuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29tbW9uL3NyYy9saWIvc2VydmljZXMvc2lkZS1hcHAvc2lkZS1hcHAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLbkQsTUFBTSxPQUFPLGNBQWM7SUFIM0I7UUFJVyxXQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBYWpDO0lBWEMsTUFBTTtRQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUM7OEdBYlUsY0FBYztrSEFBZCxjQUFjLGNBRmIsTUFBTTs7MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2lkZUFwcFNlcnZpY2Uge1xuICByZWFkb25seSBvcGVuZWQgPSBzaWduYWwoZmFsc2UpO1xuXG4gIHRvZ2dsZSgpIHtcbiAgICB0aGlzLm9wZW5lZC5zZXQoIXRoaXMub3BlbmVkKCkpO1xuICB9XG5cbiAgY29sbGFwc2UoKSB7XG4gICAgdGhpcy5vcGVuZWQuc2V0KGZhbHNlKTtcbiAgfVxuXG4gIGV4cGFuZCgpIHtcbiAgICB0aGlzLm9wZW5lZC5zZXQodHJ1ZSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './side-nav-mode.service';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3NlcnZpY2VzL3NpZGUtbmF2LW1vZGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2lkZS1uYXYtbW9kZS5zZXJ2aWNlJztcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbW1vbi1zZXJ2aWNlcy1zaWRlLW5hdi1tb2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9zaWRlLW5hdi1tb2RlL25nLWF0b21pYy1jb21tb24tc2VydmljZXMtc2lkZS1uYXYtbW9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Injectable, signal } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class SideNavModeService {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.sideNavMode = signal('collapsed');
|
|
6
|
+
}
|
|
7
|
+
/** @deprecated use toggle() instead */
|
|
8
|
+
toggleSideNav() {
|
|
9
|
+
this.sideNavMode.set(this.sideNavMode() === 'expanded' ? 'collapsed' : 'expanded');
|
|
10
|
+
}
|
|
11
|
+
toggle() {
|
|
12
|
+
this.sideNavMode.set(this.sideNavMode() === 'expanded' ? 'collapsed' : 'expanded');
|
|
13
|
+
}
|
|
14
|
+
collapse() {
|
|
15
|
+
this.sideNavMode.set('collapsed');
|
|
16
|
+
}
|
|
17
|
+
expand() {
|
|
18
|
+
this.sideNavMode.set('expanded');
|
|
19
|
+
}
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: SideNavModeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
21
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: SideNavModeService, providedIn: 'root' }); }
|
|
22
|
+
}
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: SideNavModeService, decorators: [{
|
|
24
|
+
type: Injectable,
|
|
25
|
+
args: [{ providedIn: 'root' }]
|
|
26
|
+
}] });
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1uYXYtbW9kZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9zaWRlLW5hdi1tb2RlL3NpZGUtbmF2LW1vZGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHbkQsTUFBTSxPQUFPLGtCQUFrQjtJQUQvQjtRQUVXLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0tBa0I1QztJQWhCQyx1Q0FBdUM7SUFDdkMsYUFBYTtRQUNYLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuQyxDQUFDOzhHQWxCVSxrQkFBa0I7a0hBQWxCLGtCQUFrQixjQURMLE1BQU07OzJGQUNuQixrQkFBa0I7a0JBRDlCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgU2lkZU5hdk1vZGVTZXJ2aWNlIHtcbiAgcmVhZG9ubHkgc2lkZU5hdk1vZGUgPSBzaWduYWwoJ2NvbGxhcHNlZCcpO1xuXG4gIC8qKiBAZGVwcmVjYXRlZCB1c2UgdG9nZ2xlKCkgaW5zdGVhZCAqL1xuICB0b2dnbGVTaWRlTmF2KCkge1xuICAgIHRoaXMuc2lkZU5hdk1vZGUuc2V0KHRoaXMuc2lkZU5hdk1vZGUoKSA9PT0gJ2V4cGFuZGVkJyA/ICdjb2xsYXBzZWQnIDogJ2V4cGFuZGVkJyk7XG4gIH1cblxuICB0b2dnbGUoKSB7XG4gICAgdGhpcy5zaWRlTmF2TW9kZS5zZXQodGhpcy5zaWRlTmF2TW9kZSgpID09PSAnZXhwYW5kZWQnID8gJ2NvbGxhcHNlZCcgOiAnZXhwYW5kZWQnKTtcbiAgfVxuXG4gIGNvbGxhcHNlKCkge1xuICAgIHRoaXMuc2lkZU5hdk1vZGUuc2V0KCdjb2xsYXBzZWQnKTtcbiAgfVxuXG4gIGV4cGFuZCgpIHtcbiAgICB0aGlzLnNpZGVOYXZNb2RlLnNldCgnZXhwYW5kZWQnKTtcbiAgfVxufVxuIl19
|
|
@@ -3,13 +3,13 @@ import { CommonModule } from '@angular/common';
|
|
|
3
3
|
import { MatSnackBarModule } from '@angular/material/snack-bar';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class SnackBarModule {
|
|
6
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
7
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
6
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: SnackBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.2", ngImport: i0, type: SnackBarModule, imports: [CommonModule,
|
|
8
8
|
MatSnackBarModule] }); }
|
|
9
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
9
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: SnackBarModule, imports: [CommonModule,
|
|
10
10
|
MatSnackBarModule] }); }
|
|
11
11
|
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: SnackBarModule, decorators: [{
|
|
13
13
|
type: NgModule,
|
|
14
14
|
args: [{
|
|
15
15
|
declarations: [],
|
|
@@ -19,4 +19,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
19
19
|
]
|
|
20
20
|
}]
|
|
21
21
|
}] });
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2stYmFyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29tbW9uL3NyYy9saWIvc2VydmljZXMvc25hY2stYmFyL3NuYWNrLWJhci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBU2hFLE1BQU0sT0FBTyxjQUFjOzhHQUFkLGNBQWM7K0dBQWQsY0FBYyxZQUp2QixZQUFZO1lBQ1osaUJBQWlCOytHQUdSLGNBQWMsWUFKdkIsWUFBWTtZQUNaLGlCQUFpQjs7MkZBR1IsY0FBYztrQkFQMUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsRUFBRTtvQkFDaEIsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osaUJBQWlCO3FCQUNsQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBNYXRTbmFja0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW10sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0U25hY2tCYXJNb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTbmFja0Jhck1vZHVsZSB7IH1cbiJdfQ==
|
|
@@ -6,18 +6,18 @@ export class SnackBarService {
|
|
|
6
6
|
constructor(snackBar) {
|
|
7
7
|
this.snackBar = snackBar;
|
|
8
8
|
}
|
|
9
|
-
|
|
9
|
+
open(message, action) {
|
|
10
10
|
this.snackBar.open(message, action, {
|
|
11
11
|
duration: 2000,
|
|
12
12
|
});
|
|
13
13
|
}
|
|
14
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
15
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
14
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: SnackBarService, deps: [{ token: i1.MatSnackBar }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
15
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: SnackBarService, providedIn: 'root' }); }
|
|
16
16
|
}
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: SnackBarService, decorators: [{
|
|
18
18
|
type: Injectable,
|
|
19
19
|
args: [{
|
|
20
20
|
providedIn: 'root'
|
|
21
21
|
}]
|
|
22
|
-
}], ctorParameters:
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
}], ctorParameters: () => [{ type: i1.MatSnackBar }] });
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2stYmFyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3NlcnZpY2VzL3NuYWNrLWJhci9zbmFjay1iYXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7O0FBTTFELE1BQU0sT0FBTyxlQUFlO0lBRTFCLFlBQW9CLFFBQXFCO1FBQXJCLGFBQVEsR0FBUixRQUFRLENBQWE7SUFBRyxDQUFDO0lBRTdDLElBQUksQ0FBQyxPQUFlLEVBQUUsTUFBZTtRQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFO1lBQ2xDLFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FSVSxlQUFlO2tIQUFmLGVBQWUsY0FGZCxNQUFNOzsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTbmFja0JhclNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc25hY2tCYXI6IE1hdFNuYWNrQmFyKSB7fVxuXG4gIG9wZW4obWVzc2FnZTogc3RyaW5nLCBhY3Rpb24/OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNuYWNrQmFyLm9wZW4obWVzc2FnZSwgYWN0aW9uLCB7XG4gICAgICBkdXJhdGlvbjogMjAwMCxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
+
export * from './ui.helpers';
|
|
1
2
|
export * from './ui.service';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3NlcnZpY2VzL3VpL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi91aS5oZWxwZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vdWkuc2VydmljZSc7XG4iXX0=
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { ElementRef, InjectionToken, Injector, computed, effect, inject, isSignal, runInInjectionContext, signal } from "@angular/core";
|
|
2
|
+
import { UiService } from "./ui.service";
|
|
3
|
+
import { get, set } from "lodash-es";
|
|
4
|
+
import { ActivatedRoute, Router } from "@angular/router";
|
|
5
|
+
import { map, shareReplay, startWith } from "rxjs";
|
|
6
|
+
import { takeUntilDestroyed } from "@angular/core/rxjs-interop";
|
|
7
|
+
import { computedAsync } from "ngxtension/computed-async";
|
|
8
|
+
import { NavigationHistoryService } from "@ng-atomic/common/services/navigation-history";
|
|
9
|
+
export function scoped(source, path) {
|
|
10
|
+
const scopedSignal = signal(get(source(), path));
|
|
11
|
+
effect(() => {
|
|
12
|
+
scopedSignal.set(get(source(), path, source()));
|
|
13
|
+
}, { allowSignalWrites: true });
|
|
14
|
+
return computed(() => scopedSignal(), {
|
|
15
|
+
// equal: (a, b) => JSON.stringify(a) === JSON.stringify(b),
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
export function injectBreakpoint() {
|
|
19
|
+
return inject(UiService).breakpoint.breakpoint;
|
|
20
|
+
}
|
|
21
|
+
export function injectIsMobile() {
|
|
22
|
+
const breakpoint = injectBreakpoint();
|
|
23
|
+
return computed(() => ['xSmall', 'small'].includes(breakpoint()));
|
|
24
|
+
}
|
|
25
|
+
export var NavActionId;
|
|
26
|
+
(function (NavActionId) {
|
|
27
|
+
NavActionId["TOGGLE_SIDE_NAV"] = "[@ng-atomic/common/services/ui] TOGGLE_SIDE_NAV";
|
|
28
|
+
NavActionId["BACK"] = "[@ng-atomic/common/services/ui] BACK";
|
|
29
|
+
})(NavActionId || (NavActionId = {}));
|
|
30
|
+
export function injectIsRootPage$() {
|
|
31
|
+
const router = inject(Router);
|
|
32
|
+
const route = inject(ActivatedRoute);
|
|
33
|
+
return router.events.pipe(startWith(null), map(() => {
|
|
34
|
+
const components = [];
|
|
35
|
+
let route_ = route;
|
|
36
|
+
while (route_) {
|
|
37
|
+
if (!route_.parent)
|
|
38
|
+
break;
|
|
39
|
+
route_ = route_.parent;
|
|
40
|
+
if (route_.component) {
|
|
41
|
+
components.push(route_.component);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return !!(components?.length === 1);
|
|
45
|
+
}), map((route) => !!route), shareReplay(1), takeUntilDestroyed());
|
|
46
|
+
}
|
|
47
|
+
export function injectIsRootPage() {
|
|
48
|
+
const isRootPage$ = injectIsRootPage$();
|
|
49
|
+
const injector = inject(Injector);
|
|
50
|
+
return computedAsync(() => isRootPage$, { injector });
|
|
51
|
+
}
|
|
52
|
+
export function injectNavStartActions(isRootPage = signal(false)) {
|
|
53
|
+
const context = injectUiContext();
|
|
54
|
+
const navigationHistory = inject(NavigationHistoryService);
|
|
55
|
+
return computed(() => {
|
|
56
|
+
switch (context().breakpoint) {
|
|
57
|
+
case 'xLarge':
|
|
58
|
+
case 'large':
|
|
59
|
+
case 'medium':
|
|
60
|
+
case 'small': {
|
|
61
|
+
if (isRootPage()) {
|
|
62
|
+
return [];
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
if (navigationHistory.isInitial()) {
|
|
66
|
+
return [];
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
return [{ id: NavActionId.BACK, name: 'BACK', icon: 'arrow_back' }];
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
case 'xSmall': {
|
|
74
|
+
if (isRootPage()) {
|
|
75
|
+
return [{ id: NavActionId.TOGGLE_SIDE_NAV, name: 'メニュー', icon: 'menu' }];
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
if (navigationHistory.isInitial()) {
|
|
79
|
+
return [{ id: NavActionId.TOGGLE_SIDE_NAV, name: 'メニュー', icon: 'menu' }];
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
return [{ id: NavActionId.BACK, name: 'BACK', icon: 'arrow_back' }];
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
default: {
|
|
87
|
+
if (isRootPage())
|
|
88
|
+
return [];
|
|
89
|
+
return [{ id: NavActionId.BACK, name: 'BACK', icon: 'arrow_back' }];
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
export function injectUiContext() {
|
|
95
|
+
return inject(UiService).uiContext;
|
|
96
|
+
}
|
|
97
|
+
export const UI_CONFIG_REDUCER = new InjectionToken('UI_CONFIG_REDUCER');
|
|
98
|
+
export function call(signalOrValue) {
|
|
99
|
+
return isSignal(signalOrValue) ? signalOrValue() : signalOrValue;
|
|
100
|
+
}
|
|
101
|
+
export function provideUiConfig(reducerFactory, path = [], name = 'name') {
|
|
102
|
+
return {
|
|
103
|
+
provide: UI_CONFIG_REDUCER,
|
|
104
|
+
useFactory: (injector) => {
|
|
105
|
+
function _reducerFactory(hostInjector) {
|
|
106
|
+
const reducer = reducerFactory(injector, hostInjector);
|
|
107
|
+
return (config, context) => {
|
|
108
|
+
if (path.length === 0)
|
|
109
|
+
return reducer(config, context);
|
|
110
|
+
return set(config, path, reducer(get(config, path), context));
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
;
|
|
114
|
+
Object.defineProperty(_reducerFactory, 'name', { value: name, configurable: true });
|
|
115
|
+
return _reducerFactory;
|
|
116
|
+
},
|
|
117
|
+
deps: [Injector],
|
|
118
|
+
multi: true,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
export function injectRootConfig() {
|
|
122
|
+
const uiContext = injectUiContext();
|
|
123
|
+
const reducerFactories = injectReducers();
|
|
124
|
+
const hostInjector = inject(Injector);
|
|
125
|
+
const reducers = reducerFactories.map(reducerFactory => {
|
|
126
|
+
return runInInjectionContext(hostInjector, () => reducerFactory(hostInjector));
|
|
127
|
+
});
|
|
128
|
+
if (!reducers)
|
|
129
|
+
return undefined;
|
|
130
|
+
return computed(() => {
|
|
131
|
+
const context = uiContext();
|
|
132
|
+
return reducers.reduce((acc, reducer) => {
|
|
133
|
+
return runInInjectionContext(hostInjector, () => reducer(acc, context));
|
|
134
|
+
}, {});
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
export function injectUiConfig(paths = []) {
|
|
138
|
+
const rootConfig = injectRootConfig();
|
|
139
|
+
return scoped(rootConfig, paths);
|
|
140
|
+
}
|
|
141
|
+
export function makeConfig(defaultUseFactory, path) {
|
|
142
|
+
return {
|
|
143
|
+
provide: function provideConfig(useFactory, label = useFactory ? 'custom' : 'default') {
|
|
144
|
+
useFactory ??= defaultUseFactory;
|
|
145
|
+
return provideUiConfig(useFactory, path, `[${path.join('.')}] ${label}`);
|
|
146
|
+
},
|
|
147
|
+
inject: function injectConfig() {
|
|
148
|
+
return injectUiConfig(path);
|
|
149
|
+
},
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
export function injectReducers() {
|
|
153
|
+
return injectDeepMulti(UI_CONFIG_REDUCER);
|
|
154
|
+
}
|
|
155
|
+
export function injectDeepMulti(token, injector = inject(Injector)) {
|
|
156
|
+
const valueOrArray = injector.get(token, [], { optional: true });
|
|
157
|
+
const items = Array.isArray(valueOrArray) ? valueOrArray : [valueOrArray];
|
|
158
|
+
const parentInjector = injector.get(Injector, null, { skipSelf: true });
|
|
159
|
+
if (!parentInjector)
|
|
160
|
+
return items;
|
|
161
|
+
return [...new Set([...injectDeepMulti(token, parentInjector), ...items])];
|
|
162
|
+
}
|
|
163
|
+
export function debugInjector(injector = inject(Injector)) {
|
|
164
|
+
const getParent = (injector, n = 0) => {
|
|
165
|
+
while (injector && n-- > 0) {
|
|
166
|
+
injector = injector.get(Injector, null, { skipSelf: true });
|
|
167
|
+
}
|
|
168
|
+
return injector;
|
|
169
|
+
};
|
|
170
|
+
const getInjectorName = (injector) => {
|
|
171
|
+
const name = injector.get(ElementRef, null)?.nativeElement?.tagName?.toLowerCase();
|
|
172
|
+
if (name)
|
|
173
|
+
return `<${name}>`;
|
|
174
|
+
return `${injector['source']}`;
|
|
175
|
+
};
|
|
176
|
+
const isNodeInjector = (injector) => {
|
|
177
|
+
return injector.get(ElementRef, null) !== null;
|
|
178
|
+
};
|
|
179
|
+
const mapToNames = (reducers) => (reducers ?? []).map(reducer => reducer.name);
|
|
180
|
+
for (let i = 0; i < 20; i++) {
|
|
181
|
+
injector = getParent(injector, i);
|
|
182
|
+
if (injector === Injector.NULL)
|
|
183
|
+
break;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29tbW9uL3NyYy9saWIvc2VydmljZXMvdWkvdWkuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQW1DLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekssT0FBTyxFQUFhLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwRCxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVyQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFFekYsTUFBTSxVQUFVLE1BQU0sQ0FBeUMsTUFBaUIsRUFBRSxJQUFtQjtJQUNuRyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQVUsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDMUQsTUFBTSxDQUFDLEdBQUcsRUFBRTtRQUNWLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBWSxDQUFDLENBQUM7SUFDN0QsQ0FBQyxFQUFFLEVBQUMsaUJBQWlCLEVBQUUsSUFB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SUFBSSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7U0FDN0Q7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDLENBQUE7SUFFRCxNQUFNLGVBQWUsR0FBRyxDQUFDLFFBQWtCLEVBQVUsRUFBRTtRQUNyRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ25GLElBQUksSUFBSTtZQUFFLE9BQU8sSUFBSSxJQUFJLEdBQUcsQ0FBQztRQUM3QixPQUFPLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7SUFDakMsQ0FBQyxDQUFBO0lBRUQsTUFBTSxjQUFjLEdBQUcsQ0FBQyxRQUFrQixFQUFXLEVBQUU7UUFDckQsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUM7SUFDakQsQ0FBQyxDQUFBO0lBRUQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxRQUFhLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVwRixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQzNCLFFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLElBQUksUUFBUSxLQUFLLFFBQVEsQ0FBQyxJQUFJO1lBQUUsTUFBTTtLQUN2QztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3Rpb25Ub2tlbiwgSW5qZWN0b3IsIFByb3ZpZGVyLCBQcm92aWRlclRva2VuLCBTaWduYWwsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgaXNTaWduYWwsIHJ1bkluSW5qZWN0aW9uQ29udGV4dCwgc2lnbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFVJQ29udGV4dCwgVWlTZXJ2aWNlIH0gZnJvbSBcIi4vdWkuc2VydmljZVwiO1xuaW1wb3J0IHsgZ2V0LCBzZXQgfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tIFwiQG5nLWF0b21pYy9jb3JlXCI7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHsgbWFwLCBzaGFyZVJlcGxheSwgc3RhcnRXaXRoIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcFwiO1xuaW1wb3J0IHsgY29tcHV0ZWRBc3luYyB9IGZyb20gXCJuZ3h0ZW5zaW9uL2NvbXB1dGVkLWFzeW5jXCI7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uSGlzdG9yeVNlcnZpY2UgfSBmcm9tIFwiQG5nLWF0b21pYy9jb21tb24vc2VydmljZXMvbmF2aWdhdGlvbi1oaXN0b3J5XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBzY29wZWQ8VCBleHRlbmRzIG9iamVjdCwgVEtleSBleHRlbmRzIGtleW9mIFQ+KHNvdXJjZTogU2lnbmFsPFQ+LCBwYXRoOiBUS2V5IHwgW1RLZXldKTogU2lnbmFsPFRbVEtleV0+IHtcbiAgY29uc3Qgc2NvcGVkU2lnbmFsID0gc2lnbmFsPFRbVEtleV0+KGdldChzb3VyY2UoKSwgcGF0aCkpO1xuICBlZmZlY3QoKCkgPT4ge1xuICAgIHNjb3BlZFNpZ25hbC5zZXQoZ2V0KHNvdXJjZSgpLCBwYXRoLCBzb3VyY2UoKSkgYXMgVFtUS2V5XSk7XG4gIH0sIHthbGxvd1NpZ25hbFdyaXRlczogdHJ1ZX0pO1xuICByZXR1cm4gY29tcHV0ZWQoKCkgPT4gc2NvcGVkU2lnbmFsKCksIHtcbiAgICAvLyBlcXVhbDogKGEsIGIpID0+IEpTT04uc3RyaW5naWZ5KGEpID09PSBKU09OLnN0cmluZ2lmeShiKSxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RCcmVha3BvaW50KCkge1xuICByZXR1cm4gaW5qZWN0KFVpU2VydmljZSkuYnJlYWtwb2ludC5icmVha3BvaW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0SXNNb2JpbGUoKSB7XG4gIGNvbnN0IGJyZWFrcG9pbnQgPSBpbmplY3RCcmVha3BvaW50KCk7XG4gIHJldHVybiBjb21wdXRlZCgoKSA9PiAgWyd4U21hbGwnLCAnc21hbGwnXS5pbmNsdWRlcyhicmVha3BvaW50KCkpKTtcbn1cblxuZXhwb3J0IGVudW0gTmF2QWN0aW9uSWQge1xuICBUT0dHTEVfU0lERV9OQVYgPSAnW0BuZy1hdG9taWMvY29tbW9uL3NlcnZpY2VzL3VpXSBUT0dHTEVfU0lERV9OQVYnLFxuICBCQUNLID0gJ1tAbmctYXRvbWljL2NvbW1vbi9zZXJ2aWNlcy91aV0gQkFDSycsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RJc1Jvb3RQYWdlJCgpIHtcbiAgY29uc3Qgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIGNvbnN0IHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgcmV0dXJuIHJvdXRlci5ldmVudHMucGlwZShcbiAgICBzdGFydFdpdGgobnVsbCksXG4gICAgbWFwKCgpID0+IHtcbiAgICAgIGNvbnN0IGNvbXBvbmVudHMgPSBbXTtcbiAgICAgIGxldCByb3V0ZV8gPSByb3V0ZTsgXG4gICAgICB3aGlsZShyb3V0ZV8pIHtcbiAgICAgICAgaWYgKCFyb3V0ZV8ucGFyZW50KSBicmVhaztcbiAgICAgICAgcm91dGVfID0gcm91dGVfLnBhcmVudDtcbiAgICAgICAgaWYgKHJvdXRlXy5jb21wb25lbnQpIHtcbiAgICAgICAgICBjb21wb25lbnRzLnB1c2gocm91dGVfLmNvbXBvbmVudCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiAhIShjb21wb25lbnRzPy5sZW5ndGggPT09IDEpO1xuICAgIH0pLFxuICAgIG1hcCgocm91dGUpID0+ICEhcm91dGUpLFxuICAgIHNoYXJlUmVwbGF5KDEpLFxuICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0SXNSb290UGFnZSgpIHtcbiAgY29uc3QgaXNSb290UGFnZSQgPSBpbmplY3RJc1Jvb3RQYWdlJCgpO1xuICBjb25zdCBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIHJldHVybiBjb21wdXRlZEFzeW5jKCgpID0+IGlzUm9vdFBhZ2UkLCB7aW5qZWN0b3J9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdE5hdlN0YXJ0QWN0aW9ucyhcbiAgaXNSb290UGFnZTogU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKSxcbik6IFNpZ25hbDxBY3Rpb25bXT4ge1xuICBjb25zdCBjb250ZXh0ID0gaW5qZWN0VWlDb250ZXh0KCk7XG4gIGNvbnN0IG5hdmlnYXRpb25IaXN0b3J5ID0gaW5qZWN0KE5hdmlnYXRpb25IaXN0b3J5U2VydmljZSk7XG4gIHJldHVybiBjb21wdXRlZCgoKSA9PiB7XG4gICAgc3dpdGNoKGNvbnRleHQoKS5icmVha3BvaW50KSB7XG4gICAgICBjYXNlICd4TGFyZ2UnOlxuICAgICAgY2FzZSAnbGFyZ2UnOlxuICAgICAgY2FzZSAnbWVkaXVtJzpcbiAgICAgIGNhc2UgJ3NtYWxsJzoge1xuICAgICAgICBpZiAoaXNSb290UGFnZSgpKSB7XG4gICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChuYXZpZ2F0aW9uSGlzdG9yeS5pc0luaXRpYWwoKSkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gW3sgaWQ6IE5hdkFjdGlvbklkLkJBQ0ssIG5hbWU6ICdCQUNLJywgaWNvbjogJ2Fycm93X2JhY2snIH1dO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY2FzZSAneFNtYWxsJzoge1xuICAgICAgICBpZiAoaXNSb290UGFnZSgpKSB7XG4gICAgICAgICAgcmV0dXJuIFt7IGlkOiBOYXZBY3Rpb25JZC5UT0dHTEVfU0lERV9OQVYsIG5hbWU6ICfjg6Hjg4vjg6Xjg7wnLCBpY29uOiAnbWVudScgfV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKG5hdmlnYXRpb25IaXN0b3J5LmlzSW5pdGlhbCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gW3sgaWQ6IE5hdkFjdGlvbklkLlRPR0dMRV9TSURFX05BViwgbmFtZTogJ+ODoeODi+ODpeODvCcsIGljb246ICdtZW51JyB9XVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gW3sgaWQ6IE5hdkFjdGlvbklkLkJBQ0ssIG5hbWU6ICdCQUNLJywgaWNvbjogJ2Fycm93X2JhY2snIH1dO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBpZiAoaXNSb290UGFnZSgpKSByZXR1cm4gW107XG4gICAgICAgIHJldHVybiBbeyBpZDogTmF2QWN0aW9uSWQuQkFDSywgbmFtZTogJ0JBQ0snLCBpY29uOiAnYXJyb3dfYmFjaycgfV07XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFVpQ29udGV4dCgpOiBTaWduYWw8VUlDb250ZXh0PiB7XG4gIHJldHVybiBpbmplY3QoVWlTZXJ2aWNlKS51aUNvbnRleHQ7XG59XG5cbmV4cG9ydCB0eXBlIFVpQ29uZmlnUmVkdWNlcjxUIGV4dGVuZHMgb2JqZWN0IHwgc3RyaW5nLCBDIGV4dGVuZHMgVUlDb250ZXh0ID0gYW55PiA9IChjb25maWc6IFQsIGNvbnRleHQ6IEMpID0+IFQ7XG5leHBvcnQgY29uc3QgVUlfQ09ORklHX1JFRFVDRVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48VWlDb25maWdSZWR1Y2VyPGFueT4+KCdVSV9DT05GSUdfUkVEVUNFUicpO1xuZXhwb3J0IHR5cGUgUmVkdWNlckZhY3Rvcnk8VCBleHRlbmRzIG9iamVjdCB8IHN0cmluZywgSyBleHRlbmRzIFQgPSBhbnk+IFxuICA9IChpbmplY3RvcjogSW5qZWN0b3IsIGhvc3RJbmplY3RvcjogSW5qZWN0b3IpID0+IChjb25maWc6IEssIGNvbnRleHQ6IFVJQ29udGV4dCkgPT4gVDtcblxuZXhwb3J0IGZ1bmN0aW9uIGNhbGw8VD4oc2lnbmFsT3JWYWx1ZTogU2lnbmFsPFQ+IHwgVCk6IFQge1xuICByZXR1cm4gaXNTaWduYWwoc2lnbmFsT3JWYWx1ZSkgPyBzaWduYWxPclZhbHVlKCkgOiBzaWduYWxPclZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVVpQ29uZmlnPFQgZXh0ZW5kcyBvYmplY3QgfCBzdHJpbmc+KFxuICByZWR1Y2VyRmFjdG9yeTogUmVkdWNlckZhY3Rvcnk8VD4sXG4gIHBhdGg6IHN0cmluZ1tdID0gW10sXG4gIG5hbWUgPSAnbmFtZScsXG4pOiBQcm92aWRlciB7XG4gIHJldHVybiB7XG4gICAgcHJvdmlkZTogVUlfQ09ORklHX1JFRFVDRVIsXG4gICAgdXNlRmFjdG9yeTogKGluamVjdG9yOiBJbmplY3RvcikgPT4ge1xuICAgICAgZnVuY3Rpb24gX3JlZHVjZXJGYWN0b3J5KGhvc3RJbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgICAgY29uc3QgcmVkdWNlciA9IHJlZHVjZXJGYWN0b3J5KGluamVjdG9yLCBob3N0SW5qZWN0b3IpOyBcbiAgICAgICAgcmV0dXJuIChjb25maWc6IFQsIGNvbnRleHQ6IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChwYXRoLmxlbmd0aCA9PT0gMCkgcmV0dXJuICByZWR1Y2VyKGNvbmZpZywgY29udGV4dCk7XG4gICAgICAgICAgcmV0dXJuIHNldChjb25maWcgYXMgb2JqZWN0LCBwYXRoLCByZWR1Y2VyKGdldDxhbnksIGFueT4oY29uZmlnLCBwYXRoKSwgY29udGV4dCkpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KF9yZWR1Y2VyRmFjdG9yeSwgJ25hbWUnLCB7IHZhbHVlOiBuYW1lLCBjb25maWd1cmFibGU6IHRydWUgfSk7XG4gICAgICByZXR1cm4gX3JlZHVjZXJGYWN0b3J5O1xuICAgIH0sXG4gICAgZGVwczogW0luamVjdG9yXSxcbiAgICBtdWx0aTogdHJ1ZSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFJvb3RDb25maWc8VCBleHRlbmRzIG9iamVjdD4oKTogU2lnbmFsPFQ+IHtcbiAgY29uc3QgdWlDb250ZXh0ID0gaW5qZWN0VWlDb250ZXh0KCk7XG4gIGNvbnN0IHJlZHVjZXJGYWN0b3JpZXMgPSBpbmplY3RSZWR1Y2VycygpO1xuICBjb25zdCBob3N0SW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICBjb25zdCByZWR1Y2VycyA9IHJlZHVjZXJGYWN0b3JpZXMubWFwKHJlZHVjZXJGYWN0b3J5ID0+IHtcbiAgICByZXR1cm4gcnVuSW5JbmplY3Rpb25Db250ZXh0KGhvc3RJbmplY3RvciwgKCkgPT4gcmVkdWNlckZhY3RvcnkoaG9zdEluamVjdG9yKSk7XG4gIH0pO1xuICBpZiAoIXJlZHVjZXJzKSByZXR1cm4gdW5kZWZpbmVkO1xuICByZXR1cm4gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1aUNvbnRleHQoKTtcbiAgICByZXR1cm4gcmVkdWNlcnMucmVkdWNlKChhY2MsIHJlZHVjZXIpID0+IHtcbiAgICAgIHJldHVybiBydW5JbkluamVjdGlvbkNvbnRleHQoaG9zdEluamVjdG9yLCAoKSA9PiByZWR1Y2VyKGFjYywgY29udGV4dCkpO1xuICAgIH0sIHt9IGFzIFQpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFVpQ29uZmlnPFQgZXh0ZW5kcyBvYmplY3Q+KHBhdGhzOiBzdHJpbmdbXSA9IFtdKTogU2lnbmFsPFQ+IHtcbiAgY29uc3Qgcm9vdENvbmZpZyA9IGluamVjdFJvb3RDb25maWcoKTtcbiAgcmV0dXJuIHNjb3BlZChyb290Q29uZmlnLCBwYXRocyBhcyBhbnkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFrZUNvbmZpZzxUIGV4dGVuZHMgb2JqZWN0PihkZWZhdWx0VXNlRmFjdG9yeTogUmVkdWNlckZhY3Rvcnk8VD4sIHBhdGg6IHN0cmluZ1tdKSB7XG4gIHJldHVybiB7XG4gICAgcHJvdmlkZTogZnVuY3Rpb24gcHJvdmlkZUNvbmZpZyh1c2VGYWN0b3J5PzogUmVkdWNlckZhY3Rvcnk8VD4sIGxhYmVsID0gdXNlRmFjdG9yeSA/ICdjdXN0b20nIDogJ2RlZmF1bHQnKSB7XG4gICAgICB1c2VGYWN0b3J5ID8/PSBkZWZhdWx0VXNlRmFjdG9yeTtcbiAgICAgIHJldHVybiBwcm92aWRlVWlDb25maWc8VD4odXNlRmFjdG9yeSwgcGF0aCwgYFske3BhdGguam9pbignLicpfV0gJHtsYWJlbH1gKTtcbiAgICB9LFxuICAgIGluamVjdDogZnVuY3Rpb24gaW5qZWN0Q29uZmlnKCkge1xuICAgICAgcmV0dXJuIGluamVjdFVpQ29uZmlnPFQ+KHBhdGgpO1xuICAgIH0sXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFJlZHVjZXJzKCk6ICgoaG9zdEluamVjdG9yOiBJbmplY3RvcikgPT4gVWlDb25maWdSZWR1Y2VyPGFueT4pW10ge1xuICByZXR1cm4gaW5qZWN0RGVlcE11bHRpPChob3N0SW5qZWN0b3I6IEluamVjdG9yKSA9PiBVaUNvbmZpZ1JlZHVjZXI8YW55Pj4oVUlfQ09ORklHX1JFRFVDRVIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0RGVlcE11bHRpPFQ+KHRva2VuOiBQcm92aWRlclRva2VuPFQ+LCBpbmplY3RvcjogSW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpKTogVFtdIHtcbiAgY29uc3QgdmFsdWVPckFycmF5ID0gaW5qZWN0b3IuZ2V0KHRva2VuIGFzIFByb3ZpZGVyVG9rZW48VFtdPiwgW10sIHtvcHRpb25hbDogdHJ1ZX0pO1xuICBjb25zdCBpdGVtcyA9IEFycmF5LmlzQXJyYXkodmFsdWVPckFycmF5KSA/IHZhbHVlT3JBcnJheSA6IFt2YWx1ZU9yQXJyYXldO1xuICBjb25zdCBwYXJlbnRJbmplY3RvciA9IGluamVjdG9yLmdldChJbmplY3RvciwgbnVsbCwge3NraXBTZWxmOiB0cnVlfSk7XG4gIGlmICghcGFyZW50SW5qZWN0b3IpIHJldHVybiBpdGVtcztcbiAgcmV0dXJuIFsuLi5uZXcgU2V0KFsuLi5pbmplY3REZWVwTXVsdGkodG9rZW4sIHBhcmVudEluamVjdG9yKSwgLi4uaXRlbXNdKV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWJ1Z0luamVjdG9yKGluamVjdG9yOiBJbmplY3RvciB8IG51bGwgPSBpbmplY3QoSW5qZWN0b3IpKSB7XG4gICAgICBjb25zdCBnZXRQYXJlbnQgPSAoaW5qZWN0b3I6IEluamVjdG9yLCBuID0gMCk6IEluamVjdG9yIHwgbnVsbCA9PiB7XG4gICAgICB3aGlsZSAoaW5qZWN0b3IgJiYgbi0tID4gMCkge1xuICAgICAgICBpbmplY3RvciA9IGluamVjdG9yLmdldChJbmplY3RvciwgbnVsbCwgeyBza2lwU2VsZjogdHJ1ZSB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBpbmplY3RvcjtcbiAgICB9XG5cbiAgICBjb25zdCBnZXRJbmplY3Rvck5hbWUgPSAoaW5qZWN0b3I6IEluamVjdG9yKTogc3RyaW5nID0+IHtcbiAgICAgIGNvbnN0IG5hbWUgPSBpbmplY3Rvci5nZXQoRWxlbWVudFJlZiwgbnVsbCk/Lm5hdGl2ZUVsZW1lbnQ/LnRhZ05hbWU/LnRvTG93ZXJDYXNlKCk7XG4gICAgICBpZiAobmFtZSkgcmV0dXJuIGA8JHtuYW1lfT5gO1xuICAgICAgcmV0dXJuIGAke2luamVjdG9yWydzb3VyY2UnXX1gO1xuICAgIH1cblxuICAgIGNvbnN0IGlzTm9kZUluamVjdG9yID0gKGluamVjdG9yOiBJbmplY3Rvcik6IGJvb2xlYW4gPT4ge1xuICAgICAgcmV0dXJuIGluamVjdG9yLmdldChFbGVtZW50UmVmLCBudWxsKSAhPT0gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBtYXBUb05hbWVzID0gKHJlZHVjZXJzOiBhbnkpID0+IChyZWR1Y2VycyA/PyBbXSkubWFwKHJlZHVjZXIgPT4gcmVkdWNlci5uYW1lKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMjA7IGkrKykge1xuICAgICAgaW5qZWN0b3IgPSBnZXRQYXJlbnQoaW5qZWN0b3IsIGkpO1xuICAgICAgaWYgKGluamVjdG9yID09PSBJbmplY3Rvci5OVUxMKSBicmVhaztcbiAgICB9XG59XG4iXX0=
|